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

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

أجهزة تدفق البيانات الثابتة

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

المصرف

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

البرامج

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

التعليمات

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