डेटाफ़्लो आर्किटेक्चर

From alpha
Jump to navigation Jump to search

डेटा प्रवाह आर्किटेक्चर एक डेटाफ़्लो-आधारित कंप्यूटर आर्किटेक्चर है जो सीधे पारंपरिक वॉन न्यूमैन वास्तुकला या नियंत्रण प्रवाह आर्किटेक्चर के विपरीत है। अवधारणा में, डेटाफ़्लो आर्किटेक्चर में कोई कार्यक्रम गणक नहीं है: निर्देशों की निष्पादन क्षमता और निष्पादन पूरी तरह से निर्देशों के लिए इनपुट तर्कों की उपलब्धता के आधार पर निर्धारित किया जाता है,[1] ताकि निर्देश निष्पादन के क्रम की भविष्यवाणी करना कठिन हो सके।

हालाँकि किसी भी व्यावसायिक रूप से सफल सामान्य-उद्देश्य वाले कंप्यूटर हार्डवेयर ने डेटाफ़्लो आर्किटेक्चर का उपयोग नहीं किया है, इसे अंकीय संकेत प्रक्रिया , नेटवर्क रूटिंग, ग्राफ़िक्स प्रसंस्करण , टेलीमेटरी और हाल ही में डेटा वेयरहाउसिंग और कृत्रिम बुद्धिमत्ता जैसे विशेष हार्डवेयर में सफलतापूर्वक लागू किया गया है। : बहुरूपी डेटा प्रवाह[2] कन्वोल्यूशन इंजन,[3] संरचना-संचालित,[4] डेटाफ़्लो शेड्यूलिंग (कंप्यूटिंग)[5]). यह आज डेटाबेस इंजन डिज़ाइन और समानांतर कंप्यूटिंग फ्रेमवर्क सहित कई सॉफ्टवेयर आर्किटेक्चर में भी बहुत प्रासंगिक है।[citation needed]

सिंक्रोनस डेटाफ़्लो आर्किटेक्चर वास्तविक समय डेटा पथ अनुप्रयोगों जैसे वायर स्पीड पैकेट फ़ॉरवर्डिंग द्वारा प्रस्तुत कार्यभार से मेल खाने के लिए ट्यून होता है। डेटाफ़्लो आर्किटेक्चर जो प्रकृति में नियतात्मक हैं, प्रोग्रामर को प्रोसेसर लोड संतुलन, सिंक्रनाइज़ेशन और सामान्य संसाधनों तक पहुंच जैसे जटिल कार्यों को प्रबंधित करने में सक्षम बनाते हैं।[6] इस बीच, शब्दावली का टकराव है, क्योंकि डेटाफ़्लो शब्द का उपयोग समानांतर प्रोग्रामिंग के एक उपक्षेत्र के लिए किया जाता है: डेटाफ्लो प्रोग्रामिंग के लिए।

इतिहास

1970 और 1980 के दशक की शुरुआत में डेटाफ़्लो के लिए हार्डवेयर आर्किटेक्चर कंप्यूटर आर्किटेक्चर अनुसंधान में एक प्रमुख विषय था। मैसाचुसेट्स की तकनीकी संस्था के जैक डेनिस ने मैनचेस्टर डेटाफ़्लो मशीन के दौरान स्थैतिक डेटाफ़्लो आर्किटेक्चर के क्षेत्र का नेतृत्व किया[7] और एमआईटी टैग्ड टोकन आर्किटेक्चर गतिशील डेटाफ्लो में प्रमुख परियोजनाएं थीं।

हालाँकि, शोध ने कभी भी इससे संबंधित समस्याओं पर काबू नहीं पाया:

  • बड़े पैमाने पर समानांतर प्रणाली में डेटा टोकन को कुशलतापूर्वक प्रसारित करना।
  • बड़े पैमाने पर समानांतर प्रणाली में निर्देश टोकन को कुशलतापूर्वक भेजना।
  • एक वास्तविक प्रोग्राम की सभी निर्भरताओं को रखने के लिए पर्याप्त बड़ी सामग्री-एड्रेसेबल मेमोरी (सीएएम) का निर्माण।

बड़े नेटवर्क में प्रभावी ढंग से वितरित करने के लिए निर्देश और उनकी डेटा निर्भरताएँ इतनी बारीक साबित हुईं। अर्थात्, निर्देशों और टैग किए गए परिणामों को एक बड़े कनेक्शन नेटवर्क के माध्यम से यात्रा करने में लगने वाला समय कई गणनाएँ करने में लगने वाले समय से अधिक था।

बहरहाल, 1990 के दशक से आउट-ऑफ-ऑर्डर निष्पादन (ओओई) प्रमुख कंप्यूटिंग प्रतिमान बन गया है। यह प्रतिबंधित डेटाफ़्लो का एक रूप है। इस प्रतिमान ने एक निष्पादन विंडो का विचार प्रस्तुत किया। निष्पादन विंडो वॉन न्यूमैन आर्किटेक्चर के अनुक्रमिक क्रम का पालन करती है, हालांकि विंडो के भीतर, निर्देशों को डेटा निर्भरता क्रम में पूरा करने की अनुमति है। यह CPU में पूरा किया जाता है जो निष्पादन विंडो में कोड की डेटा निर्भरता को गतिशील रूप से टैग करता है। डेटा निर्भरता पर गतिशील रूप से नज़र रखने की तार्किक जटिलता, आउट-ऑफ़-ऑर्डर निष्पादन सीपीयू को निष्पादन इकाइयों की एक छोटी संख्या (2-6) तक सीमित करती है और निष्पादन विंडो आकार को 32 से 200 निर्देशों की सीमा तक सीमित करती है, जो कि इससे बहुत छोटा है। पूर्ण डेटा प्रवाह मशीनों के लिए कल्पना की गई।[citation needed]

डेटाफ़्लो आर्किटेक्चर विषय

स्थिर और गतिशील डेटा प्रवाह मशीनें

ऐसे डिज़ाइन जो पारंपरिक मेमोरी पतों को डेटा निर्भरता टैग के रूप में उपयोग करते हैं, स्थिर डेटाफ़्लो मशीन कहलाते हैं। ये मशीनें एक ही रूटीन के कई उदाहरणों को एक साथ निष्पादित करने की अनुमति नहीं देती थीं क्योंकि साधारण टैग उनके बीच अंतर नहीं कर सकते थे।

ऐसे डिज़ाइन जो कंटेंट-एड्रेसेबल मेमोरी (CAM) का उपयोग करते हैं, डायनेमिक डेटाफ़्लो मशीन कहलाते हैं। वे समानता की सुविधा के लिए मेमोरी में टैग का उपयोग करते हैं।

संकलक

आम तौर पर, नियंत्रण प्रवाह वास्तुकला में, कंपाइलर बाइनरी आउटपुट फ़ाइलों में निर्देश अनुक्रमों को बेहतर ढंग से व्यवस्थित करने के लिए निर्देशों के बीच डेटा निर्भरता के लिए प्रोग्राम स्रोत कोड का विश्लेषण करते हैं। निर्देश क्रमिक रूप से व्यवस्थित होते हैं लेकिन निर्भरता की जानकारी बायनेरिज़ में दर्ज नहीं की जाती है। डेटाफ़्लो मशीन के लिए संकलित बायनेरिज़ में यह निर्भरता जानकारी होती है।

एक डेटाफ्लो कंपाइलर परिवर्तनीय नामों का उपयोग करने के बजाय प्रत्येक निर्भरता के लिए अद्वितीय टैग बनाकर इन निर्भरताओं को रिकॉर्ड करता है। प्रत्येक निर्भरता को एक अद्वितीय टैग देकर, यह बाइनरी में गैर-निर्भर कोड खंडों को क्रम से बाहर और समानांतर में निष्पादित करने की अनुमति देता है। कंपाइलर डेटा प्रवाह के लिए लूप, ब्रेक स्टेटमेंट और विभिन्न प्रोग्रामिंग नियंत्रण सिंटैक्स का पता लगाता है।

कार्यक्रम

प्रोग्राम को डायनामिक डेटाफ़्लो कंप्यूटर के CAM में लोड किया जाता है। जब किसी निर्देश के सभी टैग किए गए ऑपरेंड उपलब्ध हो जाते हैं (अर्थात, पिछले निर्देशों और/या उपयोगकर्ता इनपुट से आउटपुट), तो निर्देश को निष्पादन इकाई द्वारा निष्पादन के लिए तैयार के रूप में चिह्नित किया जाता है।

इसे निर्देश को सक्रिय करना या सक्रिय करना कहा जाता है। एक बार एक निष्पादन इकाई द्वारा एक निर्देश पूरा हो जाने पर, इसका आउटपुट डेटा (इसके टैग के साथ) सीएएम को भेजा जाता है। कोई भी निर्देश जो इस विशेष डेटाम (इसके टैग मान द्वारा पहचाना गया) पर निर्भर होता है, उसे निष्पादन के लिए तैयार के रूप में चिह्नित किया जाता है। इस तरह, दौड़ की स्थिति से बचते हुए, बाद के निर्देशों को उचित क्रम में निष्पादित किया जाता है। यह क्रम मानव प्रोग्रामर द्वारा परिकल्पित अनुक्रमिक क्रम, प्रोग्राम किए गए क्रम से भिन्न हो सकता है।

निर्देश

एक निर्देश, अपने आवश्यक डेटा ऑपरेंड के साथ, एक निष्पादन इकाई को एक पैकेट के रूप में प्रेषित किया जाता है, जिसे निर्देश टोकन भी कहा जाता है। इसी प्रकार, आउटपुट डेटा को CAM में डेटा टोकन के रूप में वापस प्रेषित किया जाता है। निर्देशों और परिणामों का पैकेटीकरण बड़े पैमाने पर तैयार निर्देशों के समानांतर निष्पादन की अनुमति देता है।

डेटाफ्लो नेटवर्क निष्पादन इकाइयों को निर्देश टोकन वितरित करते हैं और डेटा टोकन सीएएम को लौटाते हैं। पारंपरिक वॉन न्यूमैन आर्किटेक्चर के विपरीत, डेटा टोकन स्थायी रूप से मेमोरी में संग्रहीत नहीं होते हैं, बल्कि वे क्षणिक संदेश होते हैं जो केवल अनुदेश भंडारण में पारगमन के दौरान मौजूद होते हैं।

यह भी देखें

संदर्भ

  1. Veen, Arthur H. (December 1986). "डेटाफ़्लो मशीन आर्किटेक्चर". ACM Computing Surveys. 18 (4): 365–396. doi:10.1145/27633.28055. S2CID 5467025. Retrieved 5 March 2019.
  2. Maxfield, Max (24 December 2020). "डीप विज़न के पॉलीमॉर्फिक डेटाफ़्लो आर्किटेक्चर को नमस्ते कहें". Electronic Engineering Journal. Techfocus media.
  3. "किनारा (पूर्व में डीप विजन)". Kinara. 2022. Retrieved 2022-12-11.
  4. "हेलो". हेलो. Retrieved 2022-12-11.
  5. Lie, Sean (29 August 2022). Cerebras Architecture Deep Dive: First Look Inside the HW/SW Co-Design for Deep Learning. Cerebras (Report).
  6. "HX300 Family of NPUs and Programmable Ethernet Switches to the Fiber Access Market". EN-Genius (Press release). June 18, 2008. Archived from the original on 2011-07-22.
  7. Manchester Dataflow Research Project, Research Reports: Abstracts, September 1997