सिस्टोलिक सरणी

A systolic array typically consists of a large monolithic network of primitive computing nodes which can be hardwired or software configured for a specific applicationसमांतर कंप्यूटिंग कंप्यूटर स्थापत्य में एक सिस्टोलिक शृंखला दृढ़ता युग्मित डाटा प्रोसेसिंग यूनिट (डीपीयू) का एक सजातीय नेटवर्क(असतत गणित) है जिसे सेल या नोड (कंप्यूटर विज्ञान) कहा जाता है। प्रत्येक नोड या डीपीयू स्वतंत्र रूप से अपने अपस्ट्रीम सह्योगियों से प्राप्त डेटा के एक फंक्शन के रूप में आंशिक परिणाम की गणना करता है, परिणाम को अपने भीतर संग्रहीत करता है और इसे डाउनस्ट्रीम पारित करता है। सिस्टोलिक सारणियों का प्रथम बार उपयोग  कोलोसस में   किया गया था, जो द्वितीय विश्व युद्ध के समय जर्मन लॉरेंज सिफर सिफर को समाप्त के लिए प्रयुक्त किया जाने वाला एक प्रारंभिक कंप्यूटर था। कोलोसस की वर्गीकृत प्रकृति के कारण, वे स्वतंत्र रूप से एचटी कुंग और चार्ल्स लीजरसन के माध्यम से  आविष्कार या फिर से खोजे गए थे, जिन्होंने बैंडेड मैट्रिसेस के लिए अनेक घने रैखिक बीजगणित गणनाओं (आव्यूह परिणाम, रैखिक समीकरणों की प्रणाली को हल करना, एलयू अपघटन, आदि) के लिए सरणियों का वर्णन किया था। प्रारंभिक अनुप्रयोगों में पूर्णांकों और बहुपदों के अधिकतम सामान्य विभाजकों की गणना करना शामिल है। उन्हें कभी-कभी फ्लिन की वर्गीकरण के तहत एकाधिक-निर्देश एकल-डेटा (एमआईएसडी) स्थापत्य के रूप में वर्गीकृत किया जाता है, लेकिन यह वर्गीकरण संशयात्मक है क्योंकि फ्लिन की चार श्रेणियों में से किसी से सिस्टोलिक शृंखला को भिन्न करने के लिए एक दृढ़ तर्क दिया जा सकता है: एसआईएसडी, एसआईएमडी, एमआईएसडी, एमआईएमडी, जैसा कि इस आलेख में बाद में विचार की गई है।

समानांतर इनपुट डेटा यंत्रस्थ माइक्रोप्रोसेसर नोड्स के एक नेटवर्क के माध्यम से प्रवाहित होता है, जो एक व्युत्पन्न परिणाम में इनपुट डेटा को संयोजित, संसाधित, विलय एल्गोरिथ्म या अलग एल्गोरिथ्म करता है। क्योंकि एक सिस्टोलिक शृंखला के माध्यम से डेटा का तरंग जैसा प्रसार मानव संचार प्रणाली की  नाडी जैसा दिखता है, सिस्टोलिक नाम चिकित्सा शब्दावली से लिया गया था। यह नाम हृदय के माध्यम से  रक्त के नियमित स्पंदित के सादृश्य के रूप में सिस्टोल से लिया गया है।

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

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

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

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

लक्ष्य और लाभ
सिस्टोलिक सरणियों का एक प्रमुख लाभ यह है कि सभी संकार्य डेटा और आंशिक परिणाम प्रोसेसर शृंखला के भीतर (प्रासंगिक ) संग्रहीत होते हैं। वॉन न्यूमैन या  हार्वर्ड स्थापत्य अनुक्रमिक यंत्रों के मामले में प्रत्येक संचालन के समय बाहरी बसों, मुख्य मेमोरी या आंतरिक कैश तक पहुंचने की कोई आवश्यकता नहीं है। अमदाहल सिद्धांत के माध्यम से निर्धारित समानांतर कंप्यूटिंग प्रदर्शन पर अनुक्रमिक सीमाएँ भी उसी तरह से लागू नहीं होती हैं, क्योंकि डेटा निर्भरता को प्रोग्राम योग्य नोड (कंप्यूटर विज्ञान)  अन्तर्संबद्ध के माध्यम से  नियंत्रित किया जाता है और अत्यधिक समानांतर डेटा प्रवाह के प्रबंधन में कोई अनुक्रमिक चरण नहीं होते हैं।

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

वर्गीकरण विवाद
जबकि सिस्टोलिक सरणियों को आधिकारिक तौर पर एकाधिक निर्देश, एकल डेटा के रूप में वर्गीकृत किया जाता है, उनका वर्गीकरण कुछ हद तक समस्याग्रस्त है। क्योंकि इनपुट आमतौर पर एक वेक्टर होता है स्वतंत्र मूल्यों की, सिस्टोलिक शृंखला निश्चित रूप से एकल निर्देश, एकल डेटा नहीं है। चूंकि इन इनपुट (कंप्यूटर विज्ञान) मूल्यों को विलय कर दिया जाता है और परिणाम (नों) में जोड़ दिया जाता है और वे अपनी स्वतंत्रता को बनाए नहीं रखते हैं क्योंकि वे एक एकल निर्देश, अनेक डेटा वेक्टर प्रोसेसिंग यूनिट में होते हैं,  शृंखला डेटा संरचना को इस तरह वर्गीकृत नहीं किया जा सकता है। नतीजतन,  शृंखला को एकाधिक निर्देश, एकाधिक डेटा के रूप में वर्गीकृत नहीं किया जा सकता है, क्योंकि MIMD को छोटे SISD और एकल निर्देश, एकाधिक डेटा यंत्रों के संग्रह के रूप में देखा जा सकता है।

अंत में, क्योंकि डेटा झुंड रूपांतरित हो जाता है क्योंकि यह नोड (कंप्यूटर विज्ञान) से नोड तक शृंखला से गुजरता है, एक ही डेटा पर अनेक नोड काम नहीं कर रहे हैं, जो MISD वर्गीकरण को एक मिथ्या नाम बनाता है। एक सिस्टोलिक  शृंखला को MISD के रूप में योग्य नहीं होने का दूसरा कारण वही है जो इसे SISD श्रेणी से अयोग्य घोषित करता है: इनपुट डेटा आमतौर पर एक वेक्टर होता है न कि एकल डेटा मान, हालांकि कोई यह तर्क दे सकता है कि कोई भी इनपुट वेक्टर है डेटा का एक आइटम।

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

सिस्टोलिक सारणियाँ एक पूर्व-निर्धारित कम्प्यूटेशनल फ़्लो ग्राफ़ का उपयोग करती हैं जो उनके नोड्स को जोड़ता है। कहन प्रक्रिया नेटवर्क एक समान प्रवाह ग्राफ का उपयोग करते हैं, लेकिन सिस्टोलिक शृंखला में लॉक-स्टेप में काम करने वाले नोड्स के माध्यम से  प्रतिष्ठित होते हैं: कान नेटवर्क में, फीफो कतारें होती हैं प्रत्येक नोड के बीच।

विस्तृत विवरण
एक सिस्टोलिक शृंखला डेटा प्रोसेसिंग इकाइयों की आव्यूह जैसी पंक्तियों से बनी होती है जिन्हें सेल कहा जाता है। डेटा प्रोसेसिंग यूनिट (डीपीयू) सेंट्रल प्रोसेसिंग यूनिट (सीपीयू) के समान हैं, (प्रोग्राम गणना की सामान्य कमी को छोड़कर, चूंकि संचालन परिवहन ट्रिगर स्थापत्य है | ट्रांसपोर्ट-ट्रिगर, यानी डेटा ऑब्जेक्ट के आने से)। प्रत्येक सेल प्रसंस्करण के तुरंत बाद अपने पड़ोसियों के साथ सूचना साझा करता है। सिस्टोलिक  शृंखला अक्सर आयताकार होती है जहां डेटा पड़ोसी डेटा प्रोसेसिंग इकाइयों के बीच  शृंखला में प्रवाहित होता है, अक्सर भिन्न-भिन्न दिशाओं में भिन्न-भिन्न डेटा प्रवाहित होता है।  शृंखला के बंदरगाहों में प्रवेश करने और छोड़ने वाली डेटा धाराएं ऑटो-अनुक्रमण स्मृति इकाइयों, एएसएम के माध्यम से  उत्पन्न होती हैं। प्रत्येक ASM में एक डेटा गणना (डिजिटल) शामिल होता है।  अंतः स्थापित प्रणाली  में एक डेटा स्ट्रीम इनपुट और/या बाहरी स्रोत से आउटपुट भी हो सकता है।

आव्यूह गुणन के लिए सिस्टोलिक कलन विधि  का एक उदाहरण तैयार किया जा सकता है। एक आव्यूह (गणित) को  शृंखला के शीर्ष से एक समय में एक पंक्ति में खिलाया जाता है और  शृंखला के नीचे पारित किया जाता है, अन्य आव्यूह को  शृंखला के बाईं ओर से एक कॉलम में खिलाया जाता है और बाईं ओर से गुजरता है सही। डमी मान तब तक पारित किए जाते हैं जब तक कि प्रत्येक प्रोसेसर ने एक पूरी पंक्ति और एक पूरा कॉलम नहीं देखा हो। इस बिंदु पर, गुणन का परिणाम  शृंखला में संग्रहीत किया जाता है और अब एक समय में एक पंक्ति या एक स्तंभ का परिणामन किया जा सकता है, नीचे या  शृंखला के पार। सिस्टोलिक सारणियाँ डेटा प्रोसेसिंग इकाइयों की सारणियाँ होती हैं जो एक जाल जैसी टोपोलॉजी में निकटतम पड़ोसी DPUs की एक छोटी संख्या से जुड़ी होती हैं। DPU उन डेटा पर संचालन का एक क्रम करते हैं जो उनके बीच प्रवाहित होते हैं। क्योंकि बीजगणितीय एल्गोरिदम के माध्यम से पारंपरिक सिस्टोलिक  शृंखला संश्लेषण विधियों का अभ्यास किया गया है, केवल रैखिक पाइपों के साथ केवल समान  शृंखला प्राप्त की जा सकती है, ताकि सभी डीपीयू में स्थापत्य समान हों। परिणाम यह है कि शास्त्रीय सिस्टोलिक सरणियों पर केवल नियमित डेटा निर्भरता वाले अनुप्रयोगों को लागू किया जा सकता है। सिंगल इंस्ट्रक्शन की तरह, मल्टीपल डेटा यंत्र, क्लॉक्ड सिस्टोलिक एरे प्रत्येक प्रोसेसर के साथ वैकल्पिक गणना करने वाले लॉक-स्टेप में गणना करते हैं। चरणों का संचार करें। लेकिन DPUs के बीच अतुल्यकालिक हैंडशेक के साथ सिस्टोलिक सरणियों को वेवफ्रंट सारणियाँ कहा जाता है। एक प्रसिद्ध सिस्टोलिक ऐरे कार्नेगी मेलॉन यूनिवर्सिटी का iWarp प्रोसेसर है, जिसे इंटेल के माध्यम से निर्मित किया गया है। एक iWarp सिस्टम में दोनों दिशाओं में जाने वाली डेटा बसों से जुड़ा एक रैखिक  शृंखला प्रोसेसर होता है।

इतिहास
सिस्टोलिक सरणियों (वेवफ्रंट प्रोसेसर के रूप में भी जाना जाता है), को प्रथम बार एच.टी. कुंग और चार्ल्स ई. लीजर्सन के माध्यम से वर्णित किया गया था, जिन्होंने 1979 में सिस्टोलिक  शृंखला का वर्णन करने वाला पहला पेपर प्रकाशित किया था। हालांकि, इसी तरह की तकनीक का उपयोग करने वाली प्रथम यंत्र कोलोसस कंप्यूटर थी। 1944.

एप्लीकेशन उदाहरण
बहुपद मूल्यांकन

बहुपद के मूल्यांकन के लिए हॉर्नर का नियम है:



y = ( \ldots ( ( (a_n \cdot x + a_{n-1}) \cdot x + a_{n-2}) \cdot x + a_{n-3}) \cdot x + \ldots + a_1) \cdot x + a_0. $$ एक रैखिक सिस्टोलिक शृंखला जिसमें प्रोसेसर जोड़े में व्यवस्थित होते हैं: एक इसके इनपुट को गुणा करता है $$x$$ और परिणाम को दाईं ओर पारितकरता है, अगला जोड़ता है $$a_j$$ और परिणाम को दाईं ओर पारितकरता है।

फायदे और नुकसान
पेशेवरों दोष
 * सामान्य प्रयोजन के प्रोसेसर की तुलना में तेज़
 * मापनीय
 * महँगा, पैमाने की कम मितव्ययता के कारण
 * अत्यधिक विशिष्ट, कस्टम हार्डवेयर की आवश्यकता होती है और अक्सर एप्लिकेशन विशिष्ट होती है।
 * व्यापक रूप से लागू नहीं किया गया
 * कार्यक्रमों और एल्गोरिदम का सीमित कोड आधार। (सभी एल्गोरिदम को सिस्टोलिक सरणियों के रूप में लागू नहीं किया जा सकता है। ऐसे एल्गोरिदम को सिस्टोलिक शृंखला पर मैप करने के लिए अक्सर ट्रिक्स की आवश्यकता होती है।)

कार्यान्वयन

 * सिस्को पीएक्सएफ नेटवर्क प्रोसेसर आंतरिक रूप से सिस्टोलिक शृंखला के रूप में व्यवस्थित है।
 * Google की Tensor Processing Unit भी एक सिस्टोलिक शृंखला के आसपास डिज़ाइन की गई है।
 * पैरासेल FDF4T टेस्टफाइंडर टेक्स्ट सर्च सिस्टम
 * Paracel FDF4G GeneMatcher जैविक (डीएनए और प्रोटीन) खोज प्रणाली
 * Amazon Web Services पर Inferentia चिप
 * MIT Eyeriss दृढ़ तंत्रिका नेटवर्क के लिए एक सिस्टोलिक शृंखला त्वरक है।

यह भी देखें

 * एकाधिक निर्देश, एकल डेटा - एकाधिक निर्देश एकल डेटा, उदाहरण: सिस्टोलिक शृंखला
 * iWarp - सिस्टोलिक ऐरे कंप्यूटर, VLSI, Intel/CMU
 * WARP (सिस्टोलिक ऐरे) - सिस्टोलिक ऐरे कंप्यूटर, GE/CMU
 * टेन्सर प्रोसेसिंग यूनिट - एआई त्वरक एएसआईसी

संदर्भ

 * H. T. Kung, C. E. Leiserson: Algorithms for VLSI processor arrays; in: C. Mead, L. Conway (eds.): Introduction to VLSI Systems; Addison-Wesley, 1979
 * S. Y. Kung: VLSI Array Processors; Prentice-Hall, Inc., 1988
 * N. Petkov: Systolic Parallel Processing; North Holland Publishing Co, 1992

बाहरी संबंध

 * Instruction Systolic Array (ISA)
 * 'A VLSI Architecture for Image Registration in Real Time' (Based on systolic array), Vol. 15, September 2007