संक्षिप्त उत्तर
निर्देश को डिकोड करने और निष्पादित करने के चरणों को पिछले निर्देश के अगले चरण के साथ समानांतर में निष्पादित किया जाता है। इस तकनीक को पाइपलाइनिंग के रूप में जाना जाता है। देखें पर RISC प्रोसेसर नीचे।
एक सिंगल-इश्यू RISC आर्किटेक्चर आमतौर पर प्रतीक्षा अवस्थाओं और लोड / स्टोर ऑपरेशंस के लिए लिया गया एक चक्र से एक निर्देश प्रति चक्र से कम औसत रहेगा जो मेमोरी को रजिस्टर करने के बजाय केवल हिट करने के लिए होता है। देरी स्लॉट आपको एक वास्तुशिल्प हुक देते हैं जो आपको इस समय से कुछ वापस लाने की अनुमति दे सकते हैं। देखें पर RISC प्रोसेसर नीचे।
एक अनुदेश चक्र एक अनुदेश को निष्पादित करने के लिए आवश्यक समय की लंबाई है। यह वास्तुकला और (कुछ मामलों में) निर्देशों के साथ अलग-अलग होगा। उदाहरण के लिए, MIPS R2000 / 3000 जैसी किसी चीज़ पर अधिकांश निर्देश एक चक्र लेते हैं। मेमोरी एक्सेस (लोड / स्टोर, ब्रांच) से जुड़े निर्देश एक से अधिक चक्र लेते हैं, हालांकि देरी स्लॉट का मतलब है कि आप देरी स्लॉट में कुछ और (संभवतः सिर्फ एक एनओपी) निष्पादित कर सकते हैं। गैर-पाइपलाइन वाले आर्किटेक्चर में कई घड़ी चक्रों के निर्देश चक्र हो सकते हैं, जो अक्सर एड्रेसिंग मोड के साथ भिन्न होते हैं। नीचे देखें RISC प्रोसेसर, पारंपरिक CISC आर्किटेक्चर और हार्डवार्ड आर्किटेक्चर ।
कई-मुद्दे डिजाइन समानांतर में एक से अधिक निर्देशों को निष्पादित करके इस अवधारणा को कुछ हद तक धुंधला कर सकते हैं।
CISC प्रोसेसर में ऐसे निर्देश हो सकते हैं जो अलग-अलग लंबाई के हों। घड़ी चक्र की सही संख्या वास्तुकला और निर्देशों पर निर्भर करती है। CISC ISAs पर ली गई घड़ी चक्रों की बदलती संख्या एक कारण है कि वे भारी पाइपलाइन वाले आर्किटेक्चर में निर्माण करना कठिन हैं। देखें पारंपरिक CISC आर्किटेक्चर नीचे।
लंबा जवाब
किसी एकल समस्या MIPS, SPARC या अन्य CPU के लिए, सभी (पहले सन्निकटन के लिए) निर्देश एक चक्र में जारी करते हैं, हालांकि उन्हें 'विलंब स्लॉट' के रूप में जाना जा सकता है।
RISC प्रोसेसर्स पर
इस संदर्भ में, एक एकल समस्या सीपीयू वह है जहां सीपीयू किसी भी प्रकार की निर्भरता विश्लेषण नहीं करता है और आधुनिक सीपीयू जिस तरह से करते हैं, उसके निर्देशों को समानांतर जारी करते हैं, अर्थात उनके पास सिर्फ एक निष्पादन इकाई है जो निर्देशों को निष्पादित करता है। आदेश वे मेमोती से पढ़े जाते हैं। इस पर और बाद में।
अधिकांश पुराने RISC प्रोसेसर सिंगल-इश्यू डिज़ाइन हैं, और इन प्रकारों का अभी भी व्यापक रूप से एम्बेडेड सिस्टम में उपयोग किया जाता है। एक 32-बिट सिंगल-इश्यू पूर्णांक RISC कोर को लगभग 25,000-30,000 गेट्स में लागू किया जा सकता है, इसलिए इस प्रकार के CPU कोर में बहुत कम बिजली की खपत होती है और बहुत छोटे पैरों के निशान होते हैं। यह उन्हें एसओसी (सिस्टम-ऑन-चिप) उत्पादों में एकीकृत करने के लिए आसान और सस्ता बनाता है।
आरआईएससी सीपीयू डिज़ाइन को पाइपलाइन किया जाता है - निर्देश को संसाधित करना कई चरणों में किया जाता है, प्रत्येक निर्देश के साथ पाइपलाइन को अगले चरण में हर घड़ी चक्र में पारित किया जाता है। ज्यादातर मामलों में एक एकल-जारी पाइपलाइज्ड सीपीयू प्रति घड़ी चक्र में एक निर्देश के करीब कुछ निष्पादित करेगा।
कुछ आर्किटेक्चर के पास मेमोरी से ब्रांचिंग या लोड / स्टोर जैसे निर्देश हैं जहां मेमोरी एक्सेस द्वारा लिया गया अतिरिक्त चक्र कोड को दिखाई देता है।
उदाहरण के लिए, SPARC V7 / V8 में शाखा के लगने से पहले एक शाखा वास्तव में निष्पादित होने के बाद अगला निर्देश डिजाइन करती है। आमतौर पर आप शाखा के बाद स्लॉट में एक एनओपी डालते हैं, लेकिन यदि आप कुछ करने के लिए उपयोगी पा सकते हैं तो आप इसमें एक और निर्देश डाल सकते हैं।
MIPS R2000 / R3000 वास्तुकला में लोड / स्टोर निर्देशों में एक समान देरी स्लॉट था। यदि आपने मेमोरी से मान लोड किया है, तो यह वास्तव में दूसरे चक्र के लिए रजिस्टर में नहीं दिखाई देगा। आप स्लॉट में एक एनओपी डाल सकते हैं या कुछ और कर सकते हैं यदि आपको ऐसा करने के लिए कुछ उपयोगी मिल सकता है जो आपके द्वारा जारी किए गए लोड ऑपरेशन पर निर्भर नहीं था।
यदि मेमोरी सीपीयू की तुलना में धीमी थी, जो अक्सर होता था, तो आपको मेमोरी एक्सेस पर अतिरिक्त प्रतीक्षा स्थिति मिल सकती है । जब तक मेमोरी एक्सेस पूरा नहीं हो जाता है तब तक प्रतीक्षा करें एक या अधिक घड़ी चक्र के लिए सीपीयू को फ्रीज करें। व्यवहार में, ये प्रतीक्षा अवस्थाएं और मेमोरी एक्सेस के लिए अतिरिक्त समय का मतलब है कि सिंगल-इश्यू सीपीयू डिज़ाइन प्रति घड़ी चक्र में एक निर्देश से थोड़ा कम औसत है। विलंब स्लॉट आपको स्मृति के संचालन के दौरान कुछ अन्य निर्देशों को निष्पादित करके कोड को अनुकूलित करने के कुछ संभावित अवसर प्रदान करते हैं।
पारंपरिक CISC प्रोसेसर
CISC प्रोसेसर ऐसे डिजाइन थे जो अलग-अलग लंबाई के निर्देश ले सकते थे। अक्सर उनके पास हार्डवेयर में सीधे लागू होने वाले अधिक जटिल निर्देश होते थे जो कि RISC CPU पर सॉफ़्टवेयर में किए जाते थे।
अधिकांश मेनफ्रेम आर्किटेक्चर और बहुत अधिक सभी पीसी डिजाइन M68K और इंटेल 386 तक पारंपरिक माइक्रोकोडेड CISC CPU थे। ये डिज़ाइन प्रति घड़ी धीमी साबित हुई और RISC CPU की तुलना में अधिक फाटकों का उपयोग किया गया।
माइक्रोकोड
एक एमुकोडेड आर्किटेक्चर (एमओएस 6502) का एक उदाहरण यहां अनुकरण में देखा जा सकता है । छवि के शीर्ष पर माइक्रोकोड देखा जा सकता है।
निर्देशों को निष्पादित करने के लिए सीपीयू के भीतर सक्रिय किए गए डेटा प्रवाह और कार्यों को माइक्रोकोड नियंत्रित करता है। माइक्रोकोड में चरणों के माध्यम से लूप करके आप सीपीयू के कुछ हिस्सों को सक्रिय कर सकते हैं, एएलयू के माध्यम से डेटा स्थानांतरित कर सकते हैं या अन्य चरणों को पूरा कर सकते हैं। सीपीयू में पुन: प्रयोज्य घटकों को एक निर्देश को निष्पादित करने के लिए कई घड़ी चक्रों पर समन्वित किया जा सकता है। 6502 के मामले में कुछ पाइपलाइन किए गए कार्यों को माइक्रोकोड द्वारा भी निष्पादित किया जा सकता है।
एक निर्देश को पूरा करने के लिए संभावित रूप से कई घड़ी चक्र लेने की कीमत पर हार्ड-वायर्ड चिप्स की तुलना में माइक्रोकॉक्ड डिजाइन ने कम सिलिकॉन का उपयोग किया। डिजाइन के आधार पर, ये सीपीयू प्रत्येक निर्देश के अनुसार अलग-अलग लंबाई लेते हैं।
कठोर वास्तुदोष
कठोर डिजाइन (आवश्यक रूप से माइक्रोकोड के साथ पारस्परिक रूप से अनन्य नहीं) एक अनुदेश को समान रूप से निष्पादित करते हैं, या कई घड़ी चक्रों में कुछ करने के लिए अपने स्वयं के समन्वयक हो सकते हैं। वे आम तौर पर अधिक समर्पित हार्डवेयर की कीमत पर तेजी से होते हैं और इस प्रकार समतुल्य कार्यक्षमता के माइक्रोकोडेड डिज़ाइन की तुलना में लागू करने के लिए अधिक महंगे होते हैं।
इसका एक प्रसिद्ध उदाहरण मूल Amdahl 470/6 CPU था, जो कुछ IBM System / 370 मॉडल पर CPU के लिए एक ड्रॉप-इन प्रतिस्थापन था। Amdahl CPU एक हार्डवेयर्ड डिज़ाइन था, जब IBM के 370 CPU माइक्रोकोड पर आधारित थे। Amdahl CPU IBM के CPU की तुलना में लगभग 3 गुना तेज था।
कहने की जरूरत नहीं है, आईबीएम को खुश नहीं किया गया था और इसके परिणामस्वरूप एक अदालती लड़ाई हुई जो आईबीएम को अपनी मेनफ्रेम वास्तुकला को खोलने के लिए मजबूर कर दिया, जब तक कि सहमति डिक्री कुछ साल पहले समाप्त नहीं हुई।
आमतौर पर, इस प्रकार का एक हार्डवॉयर डिज़ाइन अभी भी RISC CPU के रूप में तेज घड़ी-घड़ी के रूप में नहीं था क्योंकि अलग-अलग इंस्ट्रक्शन टाइमिंग और फॉर्मेट RISC डिज़ाइन के रूप में पाइपलाइनिंग के लिए अधिक स्कोप की अनुमति नहीं देता है।
कई-मुद्दे डिजाइन
अधिकांश आधुनिक CPU एक से अधिक समस्या वाले आर्किटेक्चर हैं जो एक ही थ्रेड के भीतर एक समय में एक से अधिक निर्देशों को प्रोसेस कर सकते हैं। चिप आने वाली अनुदेश धारा पर एक गतिशील निर्भरता विश्लेषण कर सकता है और समानांतर में निर्देश जारी कर सकता है जहां पिछले गणना के परिणाम पर कोई निर्भरता नहीं है।
इन चिप्स का थ्रूपुट इस बात पर निर्भर करता है कि कोड में कितना समानता प्राप्त किया जा सकता है लेकिन अधिकांश आधुनिक CPU अधिकांश कोड पर प्रति चक्र कई निर्देशों को औसत करेंगे।
आधुनिक इंटेल और अन्य x86 / X64 ISA CPU में एक परत होती है जो पुराने स्कूल CISC अनुदेश को सूक्ष्म निर्देशों में सेट करती है जो कि पाइपलाइज्ड RISC- स्टाइल मल्टीपल इश्यू कोर के माध्यम से फीड की जा सकती है। यह कुछ ओवरहेड को जोड़ता है जो कि आईएसएएस के साथ सीपीयू पर मौजूद नहीं है जो पाइपलाइनिंग के लिए डिज़ाइन किए गए हैं (जैसे कि एआरएम या पावरपीसी जैसे आरआईएससी आर्किटेक्चर)।
वीएलआईडब्ल्यू डिजाइन
वीएलआईडब्ल्यू डिज़ाइन, जिनमें से इंटेल इटेनियम शायद सबसे अच्छी तरह से जाना जाता है, को मुख्यधारा के आर्किटेक्चर के रूप में कभी नहीं लिया गया, लेकिन आईआईआरसी में कई डीएसपी आर्किटेक्चर हैं जो इस प्रकार के डिजाइन का उपयोग करते हैं। एक वीएलआईडब्ल्यू डिज़ाइन एक निर्देश शब्द के साथ कई मुद्दों को स्पष्ट करता है जिसमें एक से अधिक निर्देश होते हैं जो समानांतर में जारी किए जाते हैं।
ये अच्छे अनुकूलन वाले संकलक पर निर्भर थे, जिन्होंने समानता और समानता के लिए अवसरों की पहचान की, प्रत्येक निर्देश शब्द पर उपलब्ध कई स्लॉट्स में निर्देशों को छोड़ दिया।
वीएलआईडब्ल्यू आर्किटेक्चर संख्यात्मक अनुप्रयोगों के लिए काफी अच्छी तरह से काम करते हैं क्योंकि मैट्रिक्स / सरणी ऑप्स व्यापक समानता के लिए अवसर प्रदान करते हैं। इटेनियम का थोड़ी देर के लिए सुपरकंप्यूटिंग अनुप्रयोगों में एक आला बाजार था, और कम से कम एक सुपर कंप्यूटर वास्तुकला - मल्टीफ़्लो ट्रिक - इस प्रकार के आईएसए का उपयोग करके उत्पादित किया गया था।
मेमोरी और कैशिंग
आधुनिक सीपीयू मेमोरी की तुलना में बहुत तेज़ हैं, इसलिए मेमोरी से डायरेक्ट रीड सैकड़ों प्रतीक्षा अवस्थाएँ उत्पन्न कर सकते हैं जो मेमोरी पूरी होने तक सीपीयू को ब्लॉक कर देती हैं। कैशिंग, अब कई परतों में किया जाता है, कैश में सबसे हाल ही में उपयोग किए जाने वाले मेमोरी स्थानों को रखता है। जैसा कि सीपीयू आमतौर पर लूप्स में कोड निष्पादित करने के विशाल समय का उपयोग करते हैं, इसका मतलब है कि आपको हाल ही में उपयोग किए गए मेमोरी स्थानों का फिर से उपयोग करने की अच्छी हिट दरें मिलती हैं। इस संपत्ति को 'संदर्भ का इलाका' कहा जाता है।
जहां आपको संदर्भ का स्थान मिलता है, सीपीयू इष्टतम गति के करीब काम कर सकता है। कैश अगले स्तर तक छूट जाता है, और कई राज्यों में प्रतीक्षा की जा रही है; मुख्य मेमोरी में कैश की कमी सैकड़ों लोगों को कर सकती है।
इस प्रकार, सीपीयू चिप्स का वास्तविक थ्रूपुट मेमोरी एक्सेस पैटर्न की दक्षता पर बहुत अधिक निर्भर हो सकता है। संपूर्ण पुस्तकें इसके लिए कोड के अनुकूलन पर लिखी गई हैं, और यह अपने आप में एक जटिल विषय है।