माइक्रोआर्किटेक्चर

कंप्यूटर इंजीनियरिंग में, माइक्रोआर्किटेक्चर, जिसे कंप्यूटर संगठन भी कहा जाता है और कभी-कभी इसे μarch या uarch के रूप में संक्षिप्त किया जाता है, विशेष केंद्रीय प्रसंस्करण इकाई में दिए गए निर्देश सेट आर्किटेक्चर ( आईएसए) को प्रयुक्त  करने का विधि  है। किसी दिए गए  आईएसए को विभिन्न माइक्रोआर्किटेक्चर के साथ कार्यान्वित किया जा सकता है;  किसी दिए गए डिज़ाइन के विभिन्न लक्ष्यों या प्रौद्योगिकी में परिवर्तन  के कारण कार्यान्वयन भिन्न हो सकते हैं। इस प्रकार से कंप्यूटर आर्किटेक्चर माइक्रोआर्किटेक्चर और इंस्ट्रक्शन सेट आर्किटेक्चर का संयोजन है।

निर्देश सेट वास्तुकला से संबंध
इंस्ट्रक्शन सेट आर्किटेक्चर सामान्यतः  प्रोसेसर के प्रोग्रामिंग मॉडल के समान है जैसा कि  असेंबली  लैन्गवेग  प्रोग्रामर या कंपाइलर लेखक द्वारा देखा जाता है। इस प्रकार से आईएसए में अन्य चीजों के अतिरिक्त    इंस्ट्रक्शन सेट आर्किटेक्चर या निर्देश, निष्पादन मॉडल, प्रोसेसर रजिस्टर, पता और डेटा प्रारूप भी  सम्मिलित   हैं। किन्तु  माइक्रोआर्किटेक्चर में प्रोसेसर के घटक भाग सम्मिलित  होते  हैं और ये आईएसए को प्रयुक्त  करने के लिए कैसे आपस में जुड़ते हैं और कैसे संचालित होते हैं।

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

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

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

अतः सिद्धांत रूप में, एकल माइक्रोआर्किटेक्चर माइक्रोकोड या राइटेबल कंट्रोल स्टोर्स में केवल मामूली परिवर्तन  के साथ अनेक अलग-अलग आईएसए निष्पादित कर सकता है।

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

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

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

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

निर्देश चक्र
इस प्रकार से प्रोग्राम चलाने के लिए, सभी सिंगल- या मल्टी-चिप सीपीयू:
 * 1) निर्देश पढ़ें और उसे डिकोड करें
 * 2) निर्देश को संसाधित करने के लिए आवश्यक कोई भी संबद्ध डेटा खोजे
 * 3) निर्देश पर कार्रवाई करें
 * 4) परिणाम लिखें

इस प्रकार विद्युत बंद होने तक निर्देश चक्र निरंतर  दोहराया जाता है।

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

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

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

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

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

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

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

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

आरआईएससी निर्देश प्रक्रिया के प्रत्येक चरण को सफाई से अलग करके और उन्हें समान समय - चक्र - बनाकर पाइपलाइनों को छोटा और निर्माण करना बहुत आसान बनाता है। संपूर्ण प्रोसेसर  समनुक्रम फैशन में काम करता है, जिसमें निर्देश  तरफ से आते हैं और परिणाम दूसरी तरफ से आते हैं। क्लासिक आरआईएससी पाइपलाइन की कम जटिलता के कारण, पाइपलाइनयुक्त कोर और  निर्देश कैश को  ही आकार के डाई पर रखा जा सकता है जो अन्यथा सीआईएससी डिजाइन पर अकेले कोर को फिट करेगा। यही वास्तविक कारण था कि आरआईएससी तेज़ था। SPARC और MIPS आर्किटेक्चर जैसे प्रारंभिक  डिज़ाइन प्रायः  समान क्लॉक स्पीड और कीमत पर इंटेल और MOTOROLA CISC समाधानों की तुलना में 10 गुना अधिक तेज़ चलते थे।

पाइपलाइनें किसी भी तरह से आरआईएससी डिज़ाइन तक सीमित नहीं हैं। 1986 तक टॉप-ऑफ़-द-लाइन VAX कार्यान्वयन (VAX 8000) भारी पाइपलाइन डिज़ाइन था, जो पहले वाणिज्यिक MIPS और SPARC डिज़ाइनों से थोड़ा पहले का था। अधिकांश आधुनिक सीपीयू (यहां तक ​​​​कि एम्बेडेड सीपीयू) अब पाइपलाइन में हैं, और बिना पाइपलाइन वाले माइक्रोकोडेड सीपीयू केवल सबसे अधिक क्षेत्र-बाधित एम्बेडेड प्रोसेसर में देखे जाते हैं। VAX 8800 से लेकर आधुनिक पेंटियम 4 और एथलॉन तक बड़ी CISC मशीनें, माइक्रोकोड और पाइपलाइन दोनों के साथ कार्यान्वित की जाती हैं। पाइपलाइनिंग और कैशिंग में सुधार दो प्रमुख माइक्रोआर्किटेक्चरल प्रगति हैं जिन्होंने प्रोसेसर के प्रदर्शन को सर्किट तकनीक के साथ तालमेल बनाए रखने में सक्षम बनाया है जिस पर वे आधारित हैं।

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

आरआईएससी डिज़ाइनों ने 1980 के दशक के मध्य से अंत तक कैश जोड़ना शुरू किया, प्रायः कुल मिलाकर केवल 4 केबी। समय के साथ यह संख्या बढ़ती गई, और सामान्य सीपीयू में अब कम से कम 2 एमबी होते हैं, जबकि अधिक शक्तिशाली सीपीयू 4 या 6 या 12 एमबी या यहां तक ​​कि 32 एमबी या उससे अधिक के साथ आते हैं, जिनमें से सबसे अधिक 768 एमबी नई जारी ईपीवाईसी मिलान-एक्स लाइन में है, जो कि आयोजित किया गया है। स्मृति पदानुक्रम के एकाधिक स्तर। सामान्यतया, कम रुकावट के कारण अधिक कैश का मतलब अधिक प्रदर्शन है।

कैश और पाइपलाइन दूसरे से बिल्कुल मेल खाते थे। पहले, ऐसी पाइपलाइन बनाने का कोई मतलब नहीं था जो ऑफ-चिप मेमोरी की एक्सेस विलंबता से तेज़ चल सके। इसके बजाय ऑन-चिप कैश मेमोरी का उपयोग करने का मतलब है कि  पाइपलाइन कैश एक्सेस विलंबता की गति से चल सकती है, जो समय की बहुत छोटी लंबाई है। इससे प्रोसेसर की ऑपरेटिंग आवृत्तियों को ऑफ-चिप मेमोरी की तुलना में बहुत तेज दर से बढ़ने की अनुमति मिली।

शाखा पूर्वानुमान
निर्देश-स्तरीय समानता के माध्यम से उच्च प्रदर्शन प्राप्त करने में बाधा शाखाओं के कारण पाइपलाइन स्टालों और फ्लश से उत्पन्न होती है। सामान्यतः , सशर्त शाखा ली जाएगी या नहीं, यह पाइपलाइन में देर तक ज्ञात नहीं होता है क्योंकि सशर्त शाखाएं  रजिस्टर से आने वाले परिणामों पर निर्भर करती हैं। उस समय से जब प्रोसेसर के निर्देश डिकोडर को पता चला है कि उसे  सशर्त शाखा निर्देश का सामना करना पड़ा है, उस समय तक जब निर्णायक रजिस्टर मान को पढ़ा जा सकता है, पाइपलाइन को कई चक्रों के लिए रोकना होगा, या यदि ऐसा नहीं है और शाखा है लिया गया, पाइपलाइन को फ्लश करने की आवश्यकता है। जैसे-जैसे घड़ी की गति बढ़ती है, पाइपलाइन की गहराई भी इसके साथ बढ़ती है, और कुछ आधुनिक प्रोसेसर में 20 चरण या अधिक हो सकते हैं। औसतन, निष्पादित प्रत्येक पांचवां निर्देश  शाखा है, इसलिए बिना किसी हस्तक्षेप के, यह बहुत अधिक मात्रा में रुकावट है।

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

सुपरस्केलर
यहां तक ​​कि ऊपर उल्लिखित अवधारणाओं का समर्थन करने के लिए आवश्यक सभी अतिरिक्त जटिलताओं और गेटों के साथ, सेमीकंडक्टर निर्माण में सुधार ने जल्द ही और भी अधिक लॉजिक गेट्स का उपयोग करने की अनुमति दी।

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

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

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

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

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

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

यह समानता कैसे हासिल की जाती है इसकी तकनीक बहु सिस्टम, कई सीपीयू वाले कंप्यूटर सिस्टम के माध्यम से है।  बार हाई-एंड मेनफ़्रेम कंप्यूटर और सुपर कंप्यूटर के लिए आरक्षित होने के बाद, छोटे पैमाने के (2-8) मल्टीप्रोसेसर सर्वर छोटे व्यवसाय बाजार के लिए आम हो गए हैं। बड़े निगमों के लिए, बड़े पैमाने (16-256) मल्टीप्रोसेसर आम हैं। यहां तक ​​कि कई सीपीयू वाले निजी कंप्यूटर भी 1990 के दशक से सामने आए हैं।

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

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

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

और वृद्धि साथ मल्टीथ्रेडिंग है। यह तकनीक सुपरस्केलर सीपीयू को  ही चक्र में  साथ विभिन्न प्रोग्राम/थ्रेड से निर्देशों को निष्पादित करने की अनुमति देती है।

यह भी देखें

 * नियंत्रण यूनिट
 * हार्डवेयर वास्तुकला
 * हार्डवेयर विवरण लैन्गवेग        (एचडीएल)
 * निर्देश-स्तरीय समानता (आईएलपी)
 * एएमडी सीपीयू माइक्रोआर्किटेक्चर की सूची
 * इंटेल सीपीयू माइक्रोआर्किटेक्चर की सूची
 * प्रोसेसर डिज़ाइन
 * स्ट्रीम प्रोसेसिंग
 * वीएचडीएल
 * बहुत बड़े पैमाने पर एकीकरण (वीएलएसआई)
 * Verilog