संभवतः, यह किसी भी हबल-लोगों के लिए समाचार नहीं होगा कि वर्तमान डिजिटल तकनीक और उसके घटकों में निर्धारित मौलिक विचार और सिद्धांत कंप्यूटर मानकों द्वारा दूर के अतीत से आते हैं, अर्थात् पिछली शताब्दी के मध्य से। यह तब था जब उन नींव का आविष्कार किया गया था कि पिछले 50 वर्षों से आईटी क्षेत्र में सबसे बड़ी (और इतनी बड़ी) कंपनियों द्वारा सफलतापूर्वक विकसित, सुधार और बेचा नहीं गया है - इंटेल, निश्चित रूप से उनके रैंक में भी है। हालांकि, सभी सबूतों के साथ, यह स्थिति निश्चित रूप से निराशावादी रवैया पैदा करती है: क्या सभी महान विचार समाप्त हो गए हैं और हमारी पीढ़ी अतीत की महान विरासत में पेटीएम पिकिंग के लिए बर्बाद है?
इस ब्लॉग के लिए एक विशिष्ट और आश्चर्यजनक उदाहरण पर विचार करें - उन लोगों के विचारों पर एक नज़र डालें जो प्रोसेसर आर्किटेक्चर में सुधार के बारे में सोच रहे हैं।
सबसे पहले, हम आवश्यक स्पष्टीकरण देते हैं - सुपरस्केलरिटी की परिभाषा। सबसे सरल स्केलर कम्प्यूटेशनल ऑपरेशन में, दो ऑपरेंड शामिल होते हैं; एक वेक्टर ऑपरेशन में, यह संख्याओं के दो सेट पर किया जाता है। एक मध्यवर्ती (या मिश्रित) विकल्प है: एक ही समय में, विभिन्न प्रचालनों की अत्यधिक संख्या में प्रसंस्करण कोशिकाओं की उपस्थिति के कारण विभिन्न जोड़ों के स्केलर पर विभिन्न ऑपरेशन किए जाते हैं - इस दृष्टिकोण को सुपरस्लेकर कहा जाता है।
कमांडरों के सुपरस्केलर निष्पादन के योजनाबद्ध आरेखहम इस सवाल में नहीं उलझेंगे कि सबसे पहले सुपरसेलकर प्रोसेसर का निर्माण किसने किया - चाहे वह अमेरिकी या सोवियत वैज्ञानिक थे, और किस वर्ष में हुआ था। इससे भी महत्वपूर्ण बात यह है कि वर्तमान में सुपरसेलकर ड्राइव करता है, और अब तक यह वास्तविक प्रतिद्वंद्वी को दिखाई नहीं देता है। हालाँकि, सुपरसर्कर सिद्धांत का सीधा विकास अब एक वैचारिक सीमा पर हो गया है - वर्तमान दृष्टिकोण के साथ, हम इससे अधिक नहीं निचोड़ेंगे। सिद्धांत रूप में सुपरस्क्लेयर दृष्टिकोण, RISC और CISC वास्तुकला दोनों पर समान रूप से लागू होता है। आरआईएससी, एक सरल कमांड सिस्टम के आधार पर, अभी भी शास्त्रीय विकास पद्धति के ढांचे के भीतर ओवरक्लॉकिंग की क्षमता है - हम अब इसे एआरएम के उदाहरण के साथ देख रहे हैं, जिनकी कंप्यूटिंग शक्ति में वृद्धि की गतिशीलता प्रभावशाली है। हालाँकि, वहाँ और वहाँ दोनों, "शैली का संकट" अपरिहार्य है, क्योंकि यह सुपरसेलरिज्म के बहुत सार से निर्धारित होता है।
क्या समस्या है? प्रोसेसर द्वारा किए जाने वाले कार्य की जटिलता। फ्लाई पर एक सुपरस्कूलर सीरियल कोड को समानांतर करता है। लेकिन यह समतलीकरण प्रक्रिया वर्तमान प्रोसेसर क्षमताओं के लिए भी बहुत श्रमसाध्य है, और यह वह है जो मशीन के प्रदर्शन को सीमित करता है। प्रति चक्र निर्देशों की एक निश्चित संख्या की तुलना में इस रूपांतरण को तेजी से करना असंभव है। आप अधिक कर सकते हैं, लेकिन एक ही समय में, घड़ी की कल ड्रॉप होगी - यह दृष्टिकोण स्पष्ट रूप से व्यर्थ है। वर्तमान में सभी पक्षों से टीमों की संख्या की उचित सीमा का अध्ययन किया गया है और यह संशोधन के अधीन नहीं है।
एक सुपरस्कूलर को शानदार वास्तुकला कहा जा सकता है, लेकिन यह एक कार्यक्रम का एक बहुत अच्छा कार्यान्वयन है जिसे क्रमिक रूप से लिखा जाता है। परेशानी खुद सुपरस्क्लेयर में नहीं है, बल्कि कार्यक्रमों की प्रस्तुति में है। कार्यक्रम क्रमिक रूप से प्रस्तुत किए जाते हैं और निष्पादन के दौरान समानांतर निष्पादन में परिवर्तित होने चाहिए। सुपरस्लेकर की मुख्य समस्या इसकी जरूरतों के लिए इनपुट कोड की अक्षमता है। कर्नेल का एक समानांतर एल्गोरिथ्म और एक समानांतर संगठित हार्डवेयर है। हालांकि, उनके बीच, बीच में, एक निश्चित नौकरशाही संगठन है - एक सुसंगत प्रणाली। कंपाइलर प्रोग्राम को क्रमिक कमांड सिस्टम में परिवर्तित करता है; प्रक्रिया की समग्र गति उस क्रम पर निर्भर करेगी जिसमें वह ऐसा करता है। लेकिन कंपाइलर को ठीक से पता नहीं होता है कि मशीन कैसे काम करती है। इसलिए, आम तौर पर बोलना, आज संकलक का काम शर्मिंदगी है। वह बस देखता है: "यदि आप इसे पुनर्व्यवस्थित करते हैं, तो यह तेज होगा।" शायद।
यहाँ एक शिक्षाप्रद उदाहरण है।
प्रीफैच एक तकनीक है जो आपको प्रोसेसर कैश में डेटा को पूर्व-पढ़ने के लिए अनुमति देता है। यह लगभग 10 साल पहले आविष्कार किया गया था और सिस्टम प्रदर्शन के लिए बहुत फायदेमंद माना जाता था। और फिर यह पता चला कि प्रीफ़ैच को अक्षम करने के बाद, कंप्यूटर 1.5 गुना तेजी से काम करना शुरू कर देता है। बात यह है कि प्रीफ़ैच को एक सीपीयू मॉडल पर डिबग किया गया था, और दूसरों पर इस्तेमाल किया गया था (जहां प्रोसेसर कुछ स्वचालित प्रीफ़च चलाता है), और प्रोसेसर पार्क की वर्तमान विविधता के अनुकूल होने के लिए इसे बंद करना आसान है। और ऐसे मामले अब हर समय हो रहे हैं।
"एल्ब्रस -1 केबी" - सोवियत सुपरस्लेकर कंप्यूटरआप अंदाजा लगा सकते हैं कि कंपाइलर के लिए सुपरस्कूलर का प्रोग्राम बनाना कितना मुश्किल है। लेकिन उपकरण और भी मुश्किल है। देखें कि सुपरस्लेकर क्या करता है: यह निष्पादन कमांड की अनुक्रमिक प्रस्तुति को समानांतर में बदलना शुरू करता है। अनुक्रमिक प्रस्तुति में, सभी डेटा निर्भरताएं हटा दी जाती हैं। हालांकि, सही क्रम में रजिस्टर का उपयोग करना अभी भी आवश्यक है: उसी रजिस्टर तक पहुंच को पुनर्व्यवस्थित न करें। और टीमों को एक सुपरस्लेकर में फिर से व्यवस्थित करने के लिए, उन्हें सभी निर्भरताएं जानने की जरूरत है। इसलिए, यह संपूर्ण कंप्यूटिंग स्ट्रीम को वापस कनवर्ट करता है। डरावनी - आप इससे भी बदतर कल्पना नहीं कर सकते। और इसे अनुकूलित करने के प्रयास मूलभूत परिवर्तनों की तुलना में छेदों को अधिक पसंद करते हैं।
30 साल पहले भी, कंप्यूटर प्रौद्योगिकी के सोवियत डेवलपर्स, एल्ब्रस सिस्टम को डिजाइन करते हुए , समझ गए थे कि सुपरस्कूलर एक अच्छा वास्तुकला है, लेकिन जटिल, अनुचित रूप से जटिल है। और, इसके अलावा, गति सीमा होने। एक मौलिक रूप से नए दृष्टिकोण की आवश्यकता थी, और, सबसे महत्वपूर्ण बात, स्टंबलिंग ब्लॉक को हटाने के लिए आवश्यक था - टीम की एक सुसंगत प्रस्तुति। यह आवश्यक है कि मशीन समानांतर में सब कुछ प्राप्त करे, और यह एक बहुत ही सरल समाधान होगा। यह एकदम सही है। और पुराने कोड और नए आर्किटेक्चर के बीच संगतता समस्या को
बाइनरी संकलन का उपयोग करके हल किया जा सकता है।
इस दृष्टिकोण की एक और संभावना एक से अधिक कोर का उपयोग करने की क्षमता है। यह कंप्यूटिंग के लिए योजना नहीं बना रहा है, बल्कि केवल संसाधनों को साझा कर रहा है। हम संसाधनों को "कंप्यूटिंग भागों" में सांख्यिकीय रूप से विभाजित करते हैं; सुपरस्क्लेयर ऐसा नहीं कर सकता, क्योंकि भागों में अच्छी तरह से विभाजित करने के लिए, किसी को आगे देखने की जरूरत है (केवल एक प्रोग्राम ही कर सकता है)। वास्तव में, एक एकल धागे के बजाय, स्पष्ट समानता होती है। यह बहुत सारे प्रतिबंधों को समाप्त कर सकता है।
प्रोसेसर में हार्डवेयर समानता के वेरिएंट का विभिन्न अनुसंधान समूहों द्वारा बार-बार परीक्षण किया गया है, निश्चित रूप से, इस तरह के विकास इंटेल में भी किए जा रहे हैं; उनके परिणामों में से
एक वीएलआईडब्ल्यू आर्किटेक्चर (बहुत लंबा निर्देश शब्द) का उपयोग करके
एक इटेनियम प्रोसेसर था। वीएलआईडब्ल्यू उपरोक्त व्यक्त विचार का एक रासायनिक रूप से शुद्ध कार्यान्वयन है, जब समानता पैदा करने का पूरा भार कंपाइलर के कंधों पर पड़ता है, और प्रोसेसर पहले से ही निर्देशों के बड़े करीने और सक्षम समानांतर धारा प्राप्त करता है।
इंटेल इटेनियम 2 प्रोसेसरसमानांतर भविष्य की दिशा में आंदोलन की एक और आशाजनक दिशा बड़ी संख्या में माइक्रोन्यूक्लियो के साथ प्रोसेसर है, जहां मल्टीथ्रेडिंग सबसे हार्डवेयर-आधारित विधि द्वारा प्राप्त की जाती है, और प्रत्येक कोर सुपरसेलैरिटी तंत्र का भी समर्थन करता है। इंटेल में, इस तरह का विकास एमआईसी (
कई एकीकृत कोर वास्तुकला ) के झंडे के नीचे है। परियोजना विकास के कई चरणों से गुजरी, एक से दूसरे में संक्रमण के साथ, उत्पाद की प्राथमिकताएं और स्थिति थोड़ी बदल गई - जल्द ही इस सब के बारे में एक अलग कहानी होगी।
उप-योग का सारांश प्रस्तुत करना। क्या मौलिक विकास अब किए जा रहे हैं जो भविष्य में हमारे जीवन / प्रोसेसर की समझ को मौलिक रूप से बदल सकते हैं? हां, निस्संदेह, हमने आज के बारे में जो कुछ भी बात की है, वह 50 वर्षों में डिजिटल प्रौद्योगिकी के इतिहास पर पाठ्यपुस्तकों में शामिल होगी। ठीक है, हम इंटेल ब्लॉग पर (जहां और!) इस मोर्चे की प्रतीक्षा किए बिना, प्रोसेसर मोर्चों से समाचार पर आगे सूचित करने के लिए प्रतिबद्ध हैं।