خط الأنابيب (الحوسبة)

في مجال الحوسبة ، يُعرف خط الأنابيب ، أو خط أنابيب البيانات ، بأنه مجموعة من عناصر معالجة البيانات المتصلة على التوالي، حيث يكون مُخرَج كل عنصر مُدخلاً للعنصر التالي. غالبًا ما تُنفَّذ عناصر خط الأنابيب بالتوازي أو على مراحل زمنية. ويُضاف عادةً قدر من التخزين المؤقت بين العناصر.

المفهوم والدافع

يُعدّ مفهوم خطوط الإنتاج المتسلسلة شائع الاستخدام في الحياة اليومية. فعلى سبيل المثال، في خط تجميع السيارات، تُنفّذ كل مهمة محددة - مثل تركيب المحرك، وغطاء المحرك، والعجلات - عادةً في محطة عمل منفصلة. تُنفّذ المحطات مهامها بالتوازي، كلٌّ على سيارة مختلفة. بمجرد إنجاز مهمة ما، تنتقل السيارة إلى المحطة التالية. ويمكن استيعاب الاختلافات في الوقت اللازم لإنجاز المهام من خلال "التخزين المؤقت" (إيقاف سيارة أو أكثر في مساحة بين المحطات) و/أو "التوقف المؤقت" (إيقاف المحطات السابقة مؤقتًا)، إلى حين توفر المحطة التالية.

لنفترض أن تجميع سيارة واحدة يتطلب ثلاث مهام تستغرق 20 و10 و15 دقيقة على التوالي. إذا تم تنفيذ المهام الثلاث جميعها بواسطة محطة واحدة، فسينتج المصنع سيارة واحدة كل 45 دقيقة. أما باستخدام خط إنتاج من ثلاث محطات، فسينتج المصنع السيارة الأولى في 45 دقيقة، ثم سيارة جديدة كل 20 دقيقة.

كما يوضح هذا المثال، فإنّ تقنية خطوط الأنابيب لا تُقلّل من زمن الاستجابة ، أي إجمالي الوقت اللازم لمعالجة عنصر واحد عبر النظام بأكمله. ولكنها تزيد من إنتاجية النظام ، أي معدل معالجة العناصر الجديدة بعد العنصر الأول.

في مجال الحوسبة

خط أنابيب رسومات الحاسوب

في مجال الحوسبة ، تُعرف سلسلة معالجة البيانات [ 1 ] بأنها مجموعة من عناصر معالجة البيانات المتصلة على التوالي، حيث يكون مُخرَج كل عنصر مُدخلاً للعنصر التالي. غالبًا ما تُنفَّذ عناصر سلسلة المعالجة بالتوازي أو على مراحل زمنية. ويُضاف عادةً قدر من التخزين المؤقت بين العناصر.

تشمل خطوط المعالجة المتعلقة بالحاسوب ما يلي:

إذا كانت سلسلة العمليات تتكون من خطوات متكررة ، فيمكن إعادة تشغيلها دون تغيير النتيجة بعد التشغيل الأولي. وهذا مفيد من حيث الموثوقية والصيانة.

اعتبارات التصميم

موازنة المراحل

بما أن إنتاجية خط الإنتاج لا يمكن أن تتجاوز إنتاجية أبطأ عنصر فيه، ينبغي على المصمم محاولة توزيع العمل والموارد بين المراحل بحيث تستغرق جميعها نفس الوقت لإنجاز مهامها. في مثال تجميع السيارات المذكور أعلاه، إذا استغرقت كل مهمة من المهام الثلاث 15 دقيقة، بدلاً من 20 و10 و15 دقيقة، فسيظل زمن الاستجابة 45 دقيقة، ولكن سيتم حينها الانتهاء من سيارة جديدة كل 15 دقيقة، بدلاً من 20 دقيقة.

التخزين المؤقت

في الظروف المثالية، إذا كانت جميع عناصر المعالجة متزامنة وتستغرق نفس المدة الزمنية للمعالجة، فيمكن لكل عنصر استقبال كل عنصر فور إرساله من العنصر السابق، في دورة ساعة واحدة . وبهذه الطريقة، تتدفق العناصر عبر خط المعالجة بسرعة ثابتة، كالأمواج في قناة مائية. في مثل هذه "خطوط المعالجة الموجية" [ 2 ] ، لا حاجة إلى تزامن أو تخزين مؤقت بين المراحل، باستثناء مساحة التخزين اللازمة لعناصر البيانات.

بشكل عام، يُعد التخزين المؤقت بين مراحل خط المعالجة ضروريًا عندما تكون أوقات المعالجة غير منتظمة، أو عندما يتم إنشاء عناصر أو حذفها أثناء عملية المعالجة. على سبيل المثال، في خط معالجة الرسومات الذي يعالج المثلثات لعرضها على الشاشة، قد يتجاهل عنصرٌ ما، يتحقق من رؤية كل مثلث، المثلث إذا كان غير مرئي، أو قد يُخرج جزأين مثلثيين أو أكثر من العنصر إذا كانت مخفية جزئيًا. كما أن التخزين المؤقت ضروري أيضًا لاستيعاب التفاوتات في معدلات تغذية التطبيق للعناصر إلى المرحلة الأولى واستهلاكه لمخرجات المرحلة الأخيرة.

قد يكون المخزن المؤقت بين مرحلتين مجرد سجل مادي مزود بمنطق تزامن وإشارة مناسب بين المرحلتين. عندما تخزن المرحلة (أ) عنصر بيانات في السجل، فإنها ترسل إشارة "البيانات متاحة" إلى المرحلة التالية (ب). بمجرد أن تستخدم (ب) تلك البيانات، فإنها ترد بإشارة "تم استلام البيانات" إلى (أ). تتوقف (أ) مؤقتًا، منتظرةً هذه الإشارة، قبل تخزين عنصر البيانات التالي في السجل. تتوقف (ب) مؤقتًا، منتظرةً إشارة "البيانات متاحة"، إذا كانت جاهزة لمعالجة العنصر التالي ولكن (أ) لم توفره بعد.

إذا كانت أوقات معالجة عنصر ما متغيرة، فقد يتوقف خط المعالجة بأكمله في كثير من الأحيان، بانتظار أن يستهلك هذا العنصر وجميع العناصر السابقة له العناصر الموجودة في مخازن الإدخال الخاصة بها. يمكن تقليل تكرار حالات توقف خط المعالجة هذه بتوفير مساحة لأكثر من عنصر واحد في مخزن الإدخال لتلك المرحلة. عادةً ما يتم تنفيذ مخزن الإدخال متعدد العناصر هذا كطابور يعمل وفق مبدأ "الأول في الأول خارج" . قد تظل المرحلة السابقة بحاجة إلى التوقف عند امتلاء الطابور، ولكن سيقل تكرار هذه الأحداث مع زيادة عدد خانات التخزين المؤقت. يمكن لنظرية الطوابير تحديد عدد خانات التخزين المؤقت المطلوبة، بناءً على تباين أوقات المعالجة والأداء المطلوب.

خطوط الأنابيب غير الخطية

إذا استغرقت إحدى المراحل (أو قد تستغرق) وقتًا أطول بكثير من المراحل الأخرى، ولم يكن بالإمكان تسريعها، فيمكن للمصمم توفير عنصرين أو أكثر للمعالجة لتنفيذ تلك المهمة بالتوازي، باستخدام مخزن إدخال واحد ومخزن إخراج واحد. عند انتهاء كل عنصر من معالجة عنصر البيانات الحالي، يُرسله إلى مخزن الإخراج المشترك، ويأخذ عنصر البيانات التالي من مخزن الإدخال المشترك. يتجلى مفهوم خط الأنابيب "غير الخطي" أو "الديناميكي" في المتاجر أو البنوك التي تضم اثنين أو أكثر من أمناء الصندوق الذين يخدمون العملاء من طابور انتظار واحد.

التبعيات بين العناصر

في بعض التطبيقات، قد تعتمد معالجة العنصر Y في المرحلة A على نتائج أو تأثير معالجة العنصر X السابق في مرحلة لاحقة B من مسار المعالجة. في هذه الحالة، لا تستطيع المرحلة A معالجة العنصر Y بشكل صحيح حتى يتم الانتهاء من معالجة العنصر X في المرحلة B.

يحدث هذا الموقف كثيرًا في مسارات تنفيذ التعليمات. على سبيل المثال، لنفترض أن Y هي تعليمة حسابية تقرأ محتويات سجل كان من المفترض أن يتم تعديله بواسطة تعليمة سابقة X. ولتكن A هي المرحلة التي تجلب معاملات التعليمة ، وB هي المرحلة التي تكتب النتيجة إلى السجل المحدد. إذا حاولت المرحلة A معالجة التعليمة Y قبل أن تصل التعليمة X إلى المرحلة B، فقد يظل السجل يحتوي على القيمة القديمة، وبالتالي سيكون تأثير Y غير صحيح.

لضمان معالجة هذه التعارضات بشكل صحيح، يجب تزويد خط الأنابيب بدوائر أو منطق إضافي لكشفها واتخاذ الإجراء المناسب. وتشمل استراتيجيات القيام بذلك ما يلي:

  • التوقف: يتم إيقاف كل مرحلة متأثرة، مثل المرحلة أ، حتى يتم حل التبعية - أي حتى تتوفر المعلومات المطلوبة و/أو يتم تحقيق الحالة المطلوبة.
  • إعادة ترتيب العناصر: بدلاً من التوقف، قد تقوم المرحلة أ بوضع العنصر ص جانبًا والبحث عن أي عنصر لاحق ع في مسار الإدخال الخاص بها والذي لا توجد له أي تبعيات معلقة مع أي عنصر سابق. في مسارات التعليمات، تُسمى هذه التقنية بالتنفيذ خارج الترتيب .
  • التخمين والتراجع: من الأمثلة المهمة على التبعية بين العناصر معالجة تعليمات التفرع الشرطي X بواسطة خط أنابيب التعليمات. لا تستطيع المرحلة الأولى A من خط الأنابيب، التي تجلب التعليمات التالية Y المراد تنفيذها، أداء مهمتها حتى تجلب X معاملها وتحدد ما إذا كان سيتم تنفيذ التفرع أم لا. قد يستغرق ذلك عدة دورات ساعة، لأن معامل X قد يعتمد بدوره على التعليمات السابقة التي تجلب البيانات من الذاكرة الرئيسية.
بدلاً من التوقف بانتظار انتهاء تنفيذ X، قد تُخمّن المرحلة A ما إذا كان سيتم تنفيذ التفرع أم لا، وتستدعي التعليمات التالية Y بناءً على هذا التخمين. إذا تبيّن لاحقًا أن التخمين خاطئ (وهو أمر نادر الحدوث لحسن الحظ)، فسيتعين على النظام التراجع واستئناف التنفيذ بالخيار الصحيح. أي أنه سيتعين التراجع عن جميع التغييرات التي أُجريت على حالة الجهاز بواسطة المرحلة A والمراحل اللاحقة بناءً على هذا التخمين، ومسح التعليمات التي تلي X الموجودة بالفعل في مسار التنفيذ، وإعادة تشغيل المرحلة A بمؤشر التعليمات الصحيح . تُعدّ استراتيجية التنبؤ بالتفرع هذه حالة خاصة من التنفيذ التخميني .

تطبيقات البرمجيات النموذجية

لضمان فعالية تنفيذ مسارات البيانات، يلزم وجود استراتيجية جدولة لوحدة المعالجة المركزية لتوزيع العمل على أنوية المعالجة المتاحة، بالإضافة إلى استخدام هياكل البيانات التي ستعمل عليها مراحل المسار. على سبيل المثال، قد تقوم أنظمة التشغيل المشتقة من يونكس بربط أوامر الإدخال/الإخراج القياسية لمختلف العمليات، باستخدام الأنابيب التي يوفرها نظام التشغيل. قد توفر بعض أنظمة التشغيل صيغة شبيهة بيونكس لربط عدة برامج في مسار واحد، ولكنها تنفذ ذلك كتنفيذ تسلسلي بسيط، بدلاً من التنفيذ المتسلسل الحقيقي - أي بالانتظار حتى ينتهي كل برنامج قبل بدء البرنامج التالي.

قد تعتمد الأساليب ذات المستوى الأدنى على الخيوط التي يوفرها نظام التشغيل لجدولة العمل على المراحل: كلا التنفيذين القائمين على مجمع الخيوط أو على خيط واحد لكل مرحلة قابلان للتطبيق وموجودان بالفعل. [ 3 ]

توجد استراتيجيات أخرى تعتمد على تعدد المهام التعاوني ، لا تتطلب سلاسل تنفيذ متعددة، وبالتالي لا تحتاج إلى أنوية معالجة إضافية، مثل استخدام مُجدوِل التناوب الدوري مع إطار عمل قائم على الروتينات الفرعية. في هذا السياق، يمكن إنشاء كل مرحلة بروتين فرعي خاص بها، مما يُعيد التحكم إلى المُجدوِل بعد انتهاء مهمته الدورية. قد يتطلب هذا النهج تحكمًا دقيقًا في مراحل العملية لتجنب إساءة استخدام حصتها الزمنية.

التكاليف والعيوب

يتطلب النظام ذو البنية الأنبوبية عادةً موارد أكثر (عناصر الدوائر، ووحدات المعالجة، وذاكرة الكمبيوتر، وما إلى ذلك) من النظام الذي ينفذ دفعة واحدة في كل مرة، لأن مراحله لا يمكنها مشاركة تلك الموارد، ولأن التخزين المؤقت ومنطق التزامن الإضافي قد يكون مطلوبًا بين العناصر.

علاوة على ذلك، قد يؤدي نقل العناصر بين عناصر المعالجة المنفصلة إلى زيادة زمن الاستجابة، خاصة بالنسبة لخطوط الأنابيب الطويلة.

قد تكون تكلفة التعقيد الإضافية لتقنية خطوط الأنابيب كبيرةً إذا كانت هناك تبعيات بين معالجة العناصر المختلفة، خاصةً إذا استُخدمت استراتيجية التخمين والتراجع للتعامل معها. في الواقع، دفعت تكلفة تطبيق هذه الاستراتيجية على مجموعات التعليمات المعقدة إلى ظهور بعض المقترحات الجذرية لتبسيط بنية الحاسوب ، مثل RISC و VLIW . كما أُنيطت بالمترجمات مهمة إعادة ترتيب تعليمات الآلة لتحسين أداء خطوط أنابيب التعليمات.

التقنيات الجديدة

في السنوات الأخيرة، ازدادت متطلبات التطبيقات وأجهزتها الأساسية بشكل كبير. فعلى سبيل المثال، لم يعد من الممكن إنشاء مسارات بيانات باستخدام تطبيقات أحادية العقدة تقوم بمعالجة البيانات صفًا صفًا نظرًا لحجم وتنوع البيانات الضخمة . ومع ذلك، مع ظهور محركات تحليل البيانات مثل هادوب ، أو أباتشي سبارك مؤخرًا ، أصبح من الممكن توزيع مجموعات البيانات الكبيرة على عدة عقد معالجة، مما يسمح للتطبيقات بتحقيق مستويات كفاءة تفوق ما كان يُعتقد سابقًا بمئات المرات. ونتيجة لذلك، أصبح بإمكان حتى أجهزة الكمبيوتر متوسطة المواصفات التي تستخدم المعالجة الموزعة بهذه الطريقة التعامل مع إنشاء وتشغيل مسارات البيانات الضخمة. [ 4 ]

انظر أيضاً

مراجع

  1. تطوير خط أنابيب البيانات، مؤرشف بتاريخ 24 مايو 2018 في أرشيف الإنترنت (Wayback Machine) ، منشور بواسطة داتيفا، تم استرجاعه في 24 مايو 2018
  2. أ. هاوك؛ سورين أ. هوس؛ م. غارغ (1999). "خطوط أنابيب الموجات غير المتزامنة ثنائية الطور وتطبيقها على محول جيب التمام المنفصل ثنائي الأبعاد". وقائع الندوة الدولية الخامسة حول البحوث المتقدمة في الدوائر والأنظمة غير المتزامنة . الصفحات 219-228 . doi : 10.1109/ASYNC.1999.761536 . ISBN  0-7695-0031-5. S2CID 206515615 . 
  3. "MTDP" . GitHub . سبتمبر 2022.
  4. ما هي قناة البيانات؟ نُشر بواسطة Data Pipelines، تم الاطلاع عليه بتاريخ 11 مارس 2021

فهرس