कंट्रोल यूनिट

कंट्रोल यूनिट (CU) कंप्यूटर की सेंट्रल प्रोसेसिंग यूनिट (CPU) का घटक है जो प्रोसेसर के संचालन को निर्देशित करता है। सीयू सामान्यतः कोडित निर्देशों को समय और नियंत्रण संकेतों में परिवर्तित करने के लिए बाइनरी डिकोडर का उपयोग करता है जो अन्य इकाइयों (मेमोरी, अंकगणितीय तर्क इकाई और इनपुट और आउटपुट डिवाइस इत्यादि) के संचालन को निर्देशित करता है।

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

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

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

नियंत्रण इकाई में नियंत्रण इकाई के तर्क को बताने के लिए एक बाइनरी काउंटर सम्मिलित हो सकता है कि उसे क्या कदम उठाना चाहिए।

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

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

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

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

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

पाइपलाइन नियंत्रण इकाइयां
कई मध्यम-जटिलता वाले कंप्यूटर सूक्ष्म वास्तुकला#निर्देश पाइपलाइनिंग। यह डिज़ाइन अपनी किफायत और गति के कारण लोकप्रिय है।

एक पाइपलाइन कंप्यूटर में, कंप्यूटर के माध्यम से निर्देश प्रवाहित होते हैं। इस डिज़ाइन के कई चरण हैं। उदाहरण के लिए, इसमें वॉन न्यूमैन चक्र के प्रत्येक चरण के लिए एक चरण हो सकता है। एक पाइपलाइन कंप्यूटर में सामान्यतः प्रत्येक चरण के पश्चात पाइपलाइन रजिस्टर होते हैं। ये एक स्टेज द्वारा परिकलित बिट्स को स्टोर करते हैं ताकि अगले चरण के लॉजिक गेट अगले चरण को करने के लिए बिट्स का उपयोग कर सकें।

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

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

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

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

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

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

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

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

कुछ नियंत्रण इकाइयां सट्टा निष्पादन कर सकती हैं, जिसमें एक कंप्यूटर में दो या दो से अधिक पाइपलाइन हो सकती हैं, शाखा की दोनों दिशाओं की गणना कर सकती हैं, और फिर अप्रयुक्त दिशा की गणनाओं को त्याग सकती हैं।

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

इसकी मदद के लिए, डेटा उपलब्ध होते ही उसे प्रोसेस करने के लिए आउट-ऑफ-ऑर्डर सीपीयू और कंट्रोल यूनिट विकसित किए गए। (अगला भाग देखें)

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

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

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

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

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

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

जारी करने वाले लॉजिक में मेमोरी या रजिस्टर एक्सेस को सम्मिलित करके रिटायरिंग लॉजिक को जारी करने वाले स्कोरबोर्ड या टोमासुलो कतार में भी डिज़ाइन किया जा सकता है।

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

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

नियंत्रण इकाइयों का अनुवाद
कुछ कंप्यूटर प्रत्येक एकल निर्देश को सरल निर्देशों के अनुक्रम में अनुवादित करते हैं। इसका लाभ यह है कि जटिल मल्टी-स्टेप निर्देशों को संभालते हुए, एक खराब कंप्यूटर अपने तर्क के बड़े हिस्से में सरल हो सकता है। पेंटियम प्रो के पश्चात से x86 इंटेल सीपीयू जटिल CISC x86 निर्देशों को अधिक RISC-जैसे आंतरिक माइक्रो-ऑपरेशंस में अनुवादित करता है।

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

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

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

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

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

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

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

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

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

रिसाव को प्रबंधित करना अधिक कठिन है, क्योंकि इससे पहले कि तर्क को बंद किया जा सके, इसमें मौजूद डेटा को किसी प्रकार के कम-रिसाव भंडारण में स्थानांतरित किया जाना चाहिए।

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

पुराने डिज़ाइन CPU स्थिति को मेमोरी, या डिस्क में कॉपी कर देते थे, कभी-कभी विशेष सॉफ़्टवेयर के साथ। बहुत ही सरल एम्बेडेड सिस्टम कभी-कभी पुनः आरंभ करते हैं।

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

एक आधुनिक सीपीयू में एक इंटरप्ट कंट्रोलर भी सम्मिलित होता है। यह सिस्टम बस से इंटरप्ट सिग्नल को हैंडल करता है। कंट्रोल यूनिट कंप्यूटर का वह हिस्सा है जो इंटरप्ट का जवाब देता है।

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

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

अधिकांश PDP-8 मॉडल में एक डेटा बस थी जिसे I/O उपकरणों को नियंत्रण इकाई की मेमोरी पढ़ने और तर्क लिखने के लिए उधार लेने के लिए डिज़ाइन किया गया था। इसने उच्च गति I/O नियंत्रकों की जटिलता और खर्च को कम किया, उदा। डिस्क के लिए।

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

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

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

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

जैसे-जैसे कंप्यूटर विकसित हुए हैं, वैसे-वैसे हार्डवार्ड दृष्टिकोण कम लोकप्रिय होता गया है। पहले, सीपीयू के लिए नियंत्रण इकाइयां तदर्थ तर्क का उपयोग करती थीं, और उन्हें डिजाइन करना कठिन था।

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

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

यह भी देखें

 * प्रोसेसर डिजाइन
 * कंप्यूटर आर्किटेक्चर
 * रिचर्ड्स नियंत्रक
 * नियंत्रक (कंप्यूटिंग) (बहुविकल्पी)|नियंत्रक (कंप्यूटिंग)