Dataflow architecture
ڈیٹا فلو فن تعمیر ایک ڈیٹا فلو پر مبنی کمپیوٹر فن تعمیر ہے جو روایتی وان نیومن فن تعمیر یا کنٹرول فلو فن تعمیر سے براہ راست متصادم ہے۔ ڈیٹا فلو آرکیٹیکچرز کا کوئی پروگرام کاؤنٹر نہیں ہے، تصور میں: ہدایات پر عمل درآمد اور ان پر عمل درآمد کا تعین صرف ہدایات پر ان پٹ دلائل کی دستیابی کی بنیاد پر کیا جاتا ہے، تاکہ ہدایات پر عمل درآمد کی ترتیب کی پیش گوئی کرنا مشکل ہو۔ اگرچہ کسی بھی تجارتی طور پر کامیاب عام مقصد والے کمپیوٹر ہارڈ ویئر نے ڈیٹا فلو فن تعمیر کا استعمال نہیں کیا ہے، لیکن اسے خصوصی ہارڈ ویئر جیسے ڈیجیٹل سگنل پروسیسنگ، نیٹ ورک روٹنگ، گرافکس پروسیسنگ، ٹیلی میٹری، اور حال ہی میں ڈیٹا ویئر ہاؤسنگ، اور مصنوعی ذہانت میں کامیابی کے ساتھ نافذ کیا گیا ہے۔ یہ آج بہت سے سافٹ ویئر آرکیٹیکچرز میں بھی بہت متعلقہ ہے جس میں ڈیٹا بیس انجن ڈیزائن اور متوازی کمپیوٹنگ فریم ورک شامل ہیں۔ مطابقت پذیر ڈیٹا فلو آرکیٹیکچرز حقیقی وقت کے ڈیٹا پاتھ ایپلی کیشنز جیسے تار سپیڈ پیکٹ فارورڈنگ کے ذریعہ پیش کردہ کام کے بوجھ سے ملنے کے لیے ٹیون کرتے ہیں۔ ڈیٹا فلو آرکیٹیکچرز جو فطرت میں تعیناتی ہیں پروگرامرز کو پیچیدہ کاموں جیسے پروسیسر لوڈ بیلنسنگ، مطابقت پذیری اور عام وسائل تک رسائی کا انتظام کرنے کے قابل بناتے ہیں۔ دریں اثنا، اصطلاحات کا تصادم ہے، کیونکہ ڈیٹا فلو کی اصطلاح متوازی پروگرامنگ کے ذیلی علاقے کے لیے استعمال ہوتی ہے: ڈیٹا فلو پروگرامنگ کے لیے۔ ڈیٹا فلو کے لیے ہسٹری ہارڈ ویئر آرکیٹیکچرز 1970 اور 1980 کی دہائی کے اوائل میں کمپیوٹر آرکیٹیکچر ریسرچ کا ایک اہم موضوع تھا۔ ایم آئی ٹی کے جیک ڈینس نے جامد ڈیٹا فلو آرکیٹیکچرز کے شعبے کا آغاز کیا جبکہ مانچسٹر ڈیٹا فلو مشین اور ایم آئی ٹی ٹیگڈ ٹوکن آرکیٹیکچر متحرک ڈیٹا فلو میں بڑے منصوبے تھے۔ تاہم، تحقیق نے کبھی بھی اس سے متعلق مسائل پر قابو نہیں پایا: بڑے پیمانے پر متوازی نظام میں ڈیٹا ٹوکن کو موثر طریقے سے نشر کرنا۔ بڑے پیمانے پر متوازی نظام میں موثر طریقے سے انسٹرکشن ٹوکن بھیجنا۔ کسی حقیقی پروگرام کے تمام انحصار کو برقرار رکھنے کے لیے کافی بڑی مواد ایڈریس ایبل میموری (سی اے ایم) بنانا۔ ہدایات اور ان کے ڈیٹا پر انحصار ایک بڑے نیٹ ورک میں مؤثر طریقے سے تقسیم کرنے کے لیے بہت عمدہ ثابت ہوئے۔ یعنی، ایک بڑے کنکشن نیٹ ورک کے ذریعے سفر کرنے کے لیے ہدایات اور ٹیگ کیے گئے نتائج کا وقت بہت سے حسابات کرنے کے وقت سے زیادہ تھا۔ بہر حال، آؤٹ آف آرڈر ایگزیکیوشن (او او ای) 1990 کی دہائی سے کمپیوٹنگ کا غالب نمونہ بن گیا ہے۔ یہ محدود ڈیٹا فلو کی ایک شکل ہے۔ اس نمونے نے ایک ایگزیکیوشن ونڈو کا خیال متعارف کرایا۔ پھانسی کی کھڑکی وان نیومن فن تعمیر کے ترتیب وار ترتیب کی پیروی کرتی ہے، تاہم کھڑکی کے اندر، ہدایات کو ڈیٹا انحصار کے ترتیب میں مکمل کرنے کی اجازت ہے۔ یہ سی پی یوز میں انجام دیا جاتا ہے جو عمل درآمد ونڈو میں کوڈ کے ڈیٹا انحصار کو متحرک طور پر ٹیگ کرتے ہیں۔ ڈیٹا انحصار پر متحرک طور پر نظر رکھنے کی منطقی پیچیدگی، او او ای سی پی یوز کو ایک چھوٹی سی تعداد میں عمل درآمد یونٹس (2-6) تک محدود کرتی ہے اور عمل درآمد ونڈو کے سائز کو 32 سے 200 ہدایات کی حد تک محدود کرتی ہے، جو مکمل ڈیٹا فلو مشینوں کے تصور سے بہت کم ہے۔ ڈیٹا فلو فن تعمیر کے موضوعات جامد اور متحرک ڈیٹا فلو مشینیں وہ ڈیزائن جو روایتی میموری پتے کو ڈیٹا انحصار ٹیگز کے طور پر استعمال کرتے ہیں انہیں جامد ڈیٹا فلو مشینیں کہا جاتا ہے۔ ان مشینوں نے ایک ہی معمولات کی متعدد مثالوں کو بیک وقت انجام دینے کی اجازت نہیں دی کیونکہ سادہ ٹیگز ان کے درمیان فرق نہیں کر سکتے تھے۔ ایسے ڈیزائن جو مواد ایڈریس ایبل میموری (سی اے ایم) کا استعمال کرتے ہیں انہیں ڈائنامک ڈیٹا فلو مشینیں کہا جاتا ہے۔ وہ متوازییت کو آسان بنانے کے لیے میموری میں ٹیگز کا استعمال کرتے ہیں۔ مرتب عام طور پر، کنٹرول فلو آرکیٹیکچر میں، مرتب کرنے والے بائنری آؤٹ پٹ فائلوں میں ہدایات کے سلسلے کو بہتر طریقے سے منظم کرنے کے لیے ہدایات کے درمیان ڈیٹا انحصار کے لیے پروگرام سورس کوڈ کا تجزیہ کرتے ہیں۔ ہدایات ترتیب وار ترتیب دی جاتی ہیں لیکن انحصار کی معلومات خود بائنری میں درج نہیں کی جاتی ہیں۔ ڈیٹا فلو مشین کے لیے مرتب کردہ بائنری میں یہ انحصار کی معلومات ہوتی ہیں۔ ڈیٹا فلو مرتب متغیر ناموں کو استعمال کرنے کے بجائے ہر انحصار کے لیے منفرد ٹیگز بنا کر ان انحصار کو ریکارڈ کرتا ہے۔ ہر انحصار کو ایک منفرد ٹیگ دے کر، یہ بائنری میں غیر منحصر کوڈ کے حصوں کو ترتیب سے باہر اور متوازی طور پر انجام دینے کی اجازت دیتا ہے۔ مرتب ڈیٹا کے بہاؤ کے لیے لوپس، بریک اسٹیٹمنٹ اور مختلف پروگرامنگ کنٹرول نحو کا پتہ لگاتا ہے۔ پروگراموں کو متحرک ڈیٹا فلو کمپیوٹر کے سی اے ایم میں لوڈ کیا جاتا ہے۔ جب کسی ہدایت کے تمام ٹیگ شدہ آپریینڈ دستیاب ہو جاتے ہیں (یعنی، پچھلی ہدایات اور/یا صارف کے ان پٹ سے آؤٹ پٹ)، تو ہدایت کو ایک ایگزیکیوشن یونٹ کے ذریعہ عمل درآمد کے لیے تیار کے طور پر نشان زد کیا جاتا ہے۔ اسے ہدایات کو چالو کرنے یا چلانے کے نام سے جانا جاتا ہے۔ ایک بار جب ایک ایگزیکیوشن یونٹ کے ذریعے کوئی ہدایت مکمل ہو جاتی ہے، تو اس کا آؤٹ پٹ ڈیٹا (اس کے ٹیگ کے ساتھ) سی اے ایم کو بھیجا جاتا ہے۔ کوئی بھی ہدایات جو اس مخصوص ڈیٹم پر منحصر ہوتی ہیں (اس کی ٹیگ ویلیو سے شناخت کی جاتی ہے) پھر اسے عمل درآمد کے لیے تیار کے طور پر نشان زد کیا جاتا ہے۔ اس طرح، نسل کے حالات سے گریز کرتے ہوئے، بعد کی ہدایات کو مناسب ترتیب میں انجام دیا جاتا ہے۔ یہ ترتیب انسانی پروگرامر، پروگرام شدہ ترتیب کے تصور کردہ ترتیب وار ترتیب سے مختلف ہو سکتی ہے۔ ہدایات ایک ہدایت، اس کے مطلوبہ ڈیٹا آپریڈز کے ساتھ، ایک پیکٹ کے طور پر ایک ایگزیکیوشن یونٹ میں منتقل کی جاتی ہے، جسے انسٹرکشن ٹوکن بھی کہا جاتا ہے۔ اسی طرح آؤٹ پٹ ڈیٹا کو ڈیٹا ٹوکن کے طور پر سی اے ایم میں واپس منتقل کیا جاتا ہے۔ ہدایات اور نتائج کی پیکیٹائزیشن بڑے پیمانے پر تیار ہدایات کے متوازی نفاذ کی اجازت دیتی ہے۔ ڈیٹا فلو نیٹ ورک انسٹرکشن ٹوکن کو ایگزیکیوشن یونٹس تک پہنچاتے ہیں اور ڈیٹا ٹوکن کو سی اے ایم کو واپس کرتے ہیں۔ روایتی وان نیومن فن تعمیر کے برعکس، ڈیٹا ٹوکن میموری میں مستقل طور پر محفوظ نہیں ہوتے ہیں، بلکہ وہ عارضی پیغامات ہوتے ہیں جو صرف اس وقت موجود ہوتے ہیں جب انسٹرکشن اسٹوریج میں منتقل ہوتے ہیں۔ متوازی کمپیوٹنگ ایس آئی ایس اے ایل بائنری ماڈیولر ڈیٹا فلو مشین (بی ایم ڈی ایف ایم) سسٹولک ایرے ٹرانسپورٹ ٹرگرڈ آرکیٹیکچر نیٹ ورک آن اے چپ (این او سی) سسٹم آن اے چپ (ایس او سی) ان میموری کمپیوٹنگ حوالہ جات ہارڈ ویئر ایکسلریشن کمپیوٹر فن تعمیر کی کلاسیں