# بنية تدفق البيانات

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

## معلومات تاريخية

كانت هياكل مكونات الحاسوب لتدفق البيانات من بين الموضوعات الرئيسة في أبحاث معمارية الحاسوب التي أجريت في سبعينيات وأوائل ثمانينيات القرن العشرين. كان جاك دينيس الذي كان يعمل في معهد ماساتشوستس للتقنية من أوائل العاملين في مجال هياكل تدفق البيانات الثابتة بينما كان جهاز مانشستر لتدفق البيانات وهيكل معهد ماساتشوستس للتقنية الرمزي من بين المشروعات الرئيسة في مجال التدفق الديناميكي للبيانات.
على الرغم من ذلك، لم تتمكن الأبحاث من معالجة المشكلات المتعلقة ب:
* إرسال رموز البيانات بشكل فعال في النظم شديدة التوازي.
* إرسال رموز التعليمات بشكل فعال في النظم شديدة التوازي.
* إنشاء برامج بمساعدة الحاسوب كبيرة بما يكفي للقيام بكل المهام التي يقوم بها البرنامج الحقيقي.
التعليمات ومهام البيانات الخاصة بها التي تثبت قدرتها وسلاستها الفائقة وقابليتها للتوزيع في شبكة عمل كبيرة. بمعنى، أن الوقت اللازم للتعليمات والنتائج الموسومة للانتقال عبر شبكة عمل كبيرة كان أطول من الوقت الفعلي اللازم لإجراء الحسابات.
على الرغم من ذلك، أصبح التنفيذ العشوائي هو النموذج الحسابي السائد منذ تسعينيات القرن العشرين. وهي عبارة عن شكل تدفق البيانات المقيد. وقد أدى هذا النموذج إلى إثارة فكرة نافذة التنفيذ. تتبع نافذة التنفيذ الترتيب التتابعي لهيكلة فون نيومان، ولكن التعليمات في إطار هذه النافذة يمكن استكمالها وفقًا لنظام ترتيب البيانات. ويتحقق هذا في وحدات المعالجة المركزية في الحاسوب التي تقوم بوسم مهام البيانات بالكود الموجود في نافذة التنفيذ بصورة ديناميكية. يؤدي التعقيد المنطقي لتتبع مهام البيانات بصورة ديناميكية إلى تحديد وحدات المعالجة المركزية في الحاسوب ذات التنفيذ العشوائي إلى عدد محدود من وحدات التنفيذ (التي تتراوح من 2-6) كما أنها تحدد من أحجام نوافذ التنفيذ إلى ما يتراوح من 32 إلى 200 عنصر من التعليمات، وهو عدد يقل كثيرًا عن العدد المتوقع لأجهزة تدفق البيانات المتكاملة.

## الموضوعات المتعلقة بهياكل تدفق البيانات
### أجهزة تدفق البيانات الثابتة

يُطلق على التصميمات التي تستخدم موجهات الذاكرة التقليدية كعلامات لمهمات البيانات، يُطلق عليها أجهزة تدفق البيانات الثابتة. لا تسمح هذه الأجهزة بتنفيذ حالات متعددة للمسارات نفسها في وقت متزامن لأن العلامات البسيطة لا يمكنها التمييز بينها.
يُطلق على التصميمات التي تستخدم ذاكرة ذات محتوى قابل للقصد (CAM)، يُطلق عليها أجهزة تدفق البيانات الديناميكة. وتستخدم هذه التصميمات العلامات الموجودة في الذاكرة لتسهيل عملية التوازي.

### المصرف

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

### البرامج

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

### التعليمات

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