بنية تدفق البيانات
تُعدّ بنية تدفق البيانات بنية حاسوبية قائمة على تدفق البيانات ، وتُخالف بشكلٍ مباشر بنية فون نيومان التقليدية أو بنية تدفق التحكم . لا تحتوي بنى تدفق البيانات على عداد للبرنامج ، من حيث المفهوم: إذ يتم تحديد قابلية تنفيذ التعليمات وتنفيذها بناءً على توافر وسائط الإدخال للتعليمات فقط، [ 1 ] مما يجعل من الصعب التنبؤ بترتيب تنفيذ التعليمات.
على الرغم من عدم وجود أجهزة حاسوب عامة ناجحة تجاريًا تستخدم بنية تدفق البيانات، فقد تم تطبيقها بنجاح في أجهزة متخصصة مثل معالجة الإشارات الرقمية ، وتوجيه الشبكات ، ومعالجة الرسومات ، والقياس عن بُعد ، ومؤخرًا في مستودعات البيانات والذكاء الاصطناعي (مثل: تدفق البيانات متعدد الأشكال [ 2 ] ، ومحرك الالتفاف [ 3 ] ، والبنية الموجهة [ 4 ] ، وجدولة تدفق البيانات [ 5 ] ). كما أنها ذات أهمية بالغة في العديد من بنى البرمجيات اليوم، بما في ذلك تصميمات محركات قواعد البيانات وأطر الحوسبة المتوازية .
تتكيف بنى تدفق البيانات المتزامنة مع حجم العمل الذي تفرضه تطبيقات مسار البيانات في الوقت الفعلي، مثل إعادة توجيه الحزم بسرعة فائقة. وتُمكّن بنى تدفق البيانات ذات الطبيعة الحتمية المبرمجين من إدارة مهام معقدة مثل موازنة حمل المعالج ، والمزامنة، والوصول إلى الموارد المشتركة. [ 6 ]
في الوقت نفسه، هناك تضارب في المصطلحات، حيث يتم استخدام مصطلح تدفق البيانات لمجال فرعي من البرمجة المتوازية: لبرمجة تدفق البيانات .
تاريخ
كانت بنى الأجهزة لتدفق البيانات موضوعًا رئيسيًا في أبحاث هندسة الحاسوب في السبعينيات وأوائل الثمانينيات. وقد كان جاك دينيس من معهد ماساتشوستس للتكنولوجيا رائدًا في مجال بنى تدفق البيانات الثابتة، بينما كانت آلة مانشستر لتدفق البيانات [ 7 ] وبنية MIT Tagged Token مشاريع رئيسية في تدفق البيانات الديناميكي.
إلا أن البحث لم يتغلب قط على المشاكل المتعلقة بما يلي:
- بث رموز البيانات بكفاءة في نظام متوازٍ بشكل كبير.
- إرسال رموز التعليمات بكفاءة في نظام متوازٍ بشكل كبير.
- بناء ذاكرة قابلة للعنونة بالمحتوى (CAM) كبيرة بما يكفي لاحتواء جميع تبعيات برنامج حقيقي.
تبين أن التعليمات وبياناتها المرتبطة بها دقيقة للغاية بحيث لا يمكن توزيعها بفعالية في شبكة كبيرة. بمعنى آخر، كان الوقت اللازم لانتقال التعليمات والنتائج الموسومة عبر شبكة اتصال واسعة أطول من الوقت اللازم لإجراء العديد من العمليات الحسابية.
كتب موريس ويلكس في عام 1995 أن "تدفق البيانات يتميز بكونه أكثر مناهج التوازي جذرية، ولكنه الأقل نجاحًا. ... إذا ظهرت أي آلة عملية تعتمد على أفكار تدفق البيانات وتوفر قوة حقيقية، فستكون مختلفة تمامًا عما كان يتصوره مبتكرو هذا المفهوم." [ 8 ]
أصبح التنفيذ خارج الترتيب (OOE) النموذج الحسابي السائد منذ تسعينيات القرن الماضي. وهو شكل من أشكال تدفق البيانات المقيد. وقد قدم هذا النموذج فكرة نافذة التنفيذ . تتبع نافذة التنفيذ الترتيب التسلسلي لبنية فون نيومان، ولكن ضمن هذه النافذة، يُسمح بإكمال التعليمات وفقًا لترتيب تبعية البيانات. ويتحقق ذلك في وحدات المعالجة المركزية التي تُحدد تبعيات البيانات للتعليمات البرمجية في نافذة التنفيذ بشكل ديناميكي. إن التعقيد المنطقي لتتبع تبعيات البيانات ديناميكيًا، يُقيد وحدات المعالجة المركزية التي تعتمد على التنفيذ خارج الترتيب بعدد قليل من وحدات التنفيذ (2-6)، ويُحد من أحجام نافذة التنفيذ إلى نطاق يتراوح بين 32 و200 تعليمة، وهو أصغر بكثير مما كان مُتصورًا لأجهزة تدفق البيانات الكامل.
مواضيع هندسة تدفق البيانات
آلات تدفق البيانات الثابتة والديناميكية
تُسمى التصاميم التي تستخدم عناوين الذاكرة التقليدية كعلامات لتبعية البيانات بآلات تدفق البيانات الثابتة. لم تسمح هذه الآلات بتنفيذ نسخ متعددة من نفس الإجراءات في وقت واحد لأن العلامات البسيطة لم تكن قادرة على التمييز بينها.
تُسمى التصاميم التي تستخدم ذاكرة الوصول العشوائي للمحتوى (CAM) بآلات تدفق البيانات الديناميكية. وهي تستخدم علامات في الذاكرة لتسهيل التوازي.
المترجم
في بنية التحكم في التدفق، عادةً ما تُحلل المُترجمات شفرة المصدر للبرنامج بحثًا عن تبعيات البيانات بين التعليمات، وذلك لتحسين تنظيم تسلسلات التعليمات في ملفات الإخراج الثنائية. تُنظم التعليمات بشكل تسلسلي، لكن معلومات التبعية نفسها لا تُسجل في الملفات الثنائية. أما الملفات الثنائية المُترجمة لآلة تدفق البيانات، فتحتوي على هذه المعلومات.
يقوم مُجمِّع تدفق البيانات بتسجيل هذه التبعيات عن طريق إنشاء علامات فريدة لكل تبعية بدلاً من استخدام أسماء المتغيرات. وبإعطاء كل تبعية علامة فريدة، يسمح بتنفيذ أجزاء التعليمات البرمجية غير التابعة في الملف الثنائي بشكل متوازٍ ودون ترتيب. كما يكتشف المُجمِّع الحلقات، وعبارات التوقف، وصيغ التحكم البرمجية المختلفة لتدفق البيانات.
البرامج
يتم تحميل البرامج في ذاكرة الوصول العشوائي (CAM) لحاسوب ذي تدفق بيانات ديناميكي. عندما تصبح جميع المعاملات الموسومة للتعليمات متاحة (أي مخرجات التعليمات السابقة و/أو مدخلات المستخدم)، يتم وضع علامة على التعليمات بأنها جاهزة للتنفيذ بواسطة وحدة التنفيذ .
يُعرف هذا بتفعيل أو تنفيذ التعليمات. بمجرد أن تُكمل وحدة التنفيذ تنفيذ التعليمات، تُرسل بياناتها (مع علامتها) إلى ذاكرة الوصول العشوائي (CAM). تُعلّم أي تعليمات تعتمد على هذه البيانات (المحددة بقيمة علامتها) بأنها جاهزة للتنفيذ. وبهذه الطريقة، تُنفذ التعليمات اللاحقة بالترتيب الصحيح، مما يمنع حدوث حالات التزامن . قد يختلف هذا الترتيب عن الترتيب التسلسلي الذي وضعه المبرمج.
تعليمات
تُرسل التعليمات، مع بياناتها المطلوبة، إلى وحدة التنفيذ على شكل حزمة، تُسمى أيضًا رمز التعليمات . وبالمثل، تُرسل بيانات الإخراج إلى ذاكرة الوصول العشوائي (CAM) على شكل رمز البيانات . يتيح تقسيم التعليمات والنتائج إلى حزم تنفيذًا متوازيًا للتعليمات الجاهزة على نطاق واسع.
تقوم شبكات تدفق البيانات بتوصيل رموز التعليمات إلى وحدات التنفيذ، وإعادة رموز البيانات إلى ذاكرة الوصول العشوائي (CAM). وعلى عكس بنية فون نيومان التقليدية ، لا تُخزَّن رموز البيانات بشكل دائم في الذاكرة، بل هي رسائل مؤقتة لا توجد إلا أثناء انتقالها إلى وحدة تخزين التعليمات.
تاريخياً
على النقيض مما سبق، اعتمدت محللات الإشارات التفاضلية التناظرية كليًا على مكونات مادية في شكل بنية تدفق البيانات، حيث لم تكن البرمجة والحسابات تتم بواسطة أي مجموعة من التعليمات، ولم تكن هناك عادةً أي قرارات تعتمد على الذاكرة في هذه البرامج. تعتمد البرمجة فقط على التكوين من خلال الربط المادي لعناصر الحوسبة المتخصصة، مما يُنشئ أساسًا شكلًا من أشكال بنية تدفق البيانات السلبية.
في أكتوبر 2024، أعلنت شركة نيكست سيليكون رسميًا عن إطلاق مُسرِّع مافريك-2، وهو شريحة مُخصصة لتدفق البيانات مُصممة لأحمال العمل عالية الأداء. ومنذ إطلاقه، تعاونت نيكست سيليكون مع مختبرات سانديا الوطنية لتثبيت الشريحة في حاسوب سبيكترا العملاق.
في يوليو 2025، أفيد أن شركة Efficient Computer الناشئة قد قامت ببناء شريحة تدفق البيانات تسمى Electron E1. [ 9 ]
انظر أيضاً
مراجع
- ↑ فين، آرثر هـ. (ديسمبر 1986). "معمارية آلة تدفق البيانات" . مجلة ACM Computing Surveys . 18 (4): 365-396 . doi : 10.1145/27633.28055 . S2CID 5467025. تاريخ الاسترجاع: 5 مارس 2019 .
- ↑ ماكسفيلد، ماكس (24 ديسمبر 2020). "تعرّف على بنية تدفق البيانات متعددة الأشكال في Deep Vision". مجلة الهندسة الإلكترونية . Techfocus media.
- ↑ "كينارا (المعروفة سابقًا باسم ديب فيجن)" . كينارا . 2022. تم الاسترجاع في 11 ديسمبر 2022 .
- ^ "هايلو" . هايلو . تم الاسترجاع بتاريخ 2022-12-11 .
- ↑ إس. لي، "نظرة معمقة على بنية سيريبراس: أول نظرة على التصميم المشترك للأجهزة والبرمجيات للتعلم العميق : أنظمة سيريبراس"، ندوة IEEE Hot Chips 34 لعام 2022 (HCS) ، كوبرتينو، كاليفورنيا، الولايات المتحدة الأمريكية، 2022، الصفحات 1-34، doi: 10.1109/HCS55958.2022.9895479. https://ieeexplore.ieee.org/document/9895479
- ↑ "عائلة HX300 من وحدات معالجة الشبكات ومفاتيح إيثرنت القابلة للبرمجة لسوق الوصول إلى الألياف الضوئية" . EN-Genius (بيان صحفي). 18 يونيو 2008. مؤرشف من الأصل في 22 يوليو 2011.
- ↑ مشروع مانشستر لأبحاث تدفق البيانات، تقارير الأبحاث: الملخصات، سبتمبر 1997
- ↑ MV Wilkes, Computing Perspectives , Morgan Kaufmann, 1995, ISBN 1-55860-317-4, page 79.
- ↑ كاتريس، د. إيان (24 يوليو 2025). "معالج Electron E1 من شركة Efficient Computer" . موقع More Than Moore . تاريخ الاسترجاع: 5 أغسطس 2025 .
- تسريع الأجهزة
- فئات الحواسيب
- هندسة الحاسوب
