कंट्रोल यूनिट: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 15: Line 15:
नियंत्रण इकाई में नियंत्रण इकाई के नियम को बताने के लिए बाइनरी काउंटर सम्मिलित हो सकता है कि उसे क्या कदम उठाना चाहिए।
नियंत्रण इकाई में नियंत्रण इकाई के नियम को बताने के लिए बाइनरी काउंटर सम्मिलित हो सकता है कि उसे क्या कदम उठाना चाहिए।


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


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


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


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


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


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


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


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


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


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


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


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


पाइपलाइन को पूर्ण रखने और स्टालों से बचने के लिए नियंत्रण इकाइयां कई तरीकों का उपयोग करती हैं। उदाहरण के लिए, यहां तक ​​कि सरल नियंत्रण इकाइयां भी मान सकती हैं कि एक पिछली शाखा, कम संख्या वाले, पहले के निर्देश के लिए, एक लूप है, और दोहराया जाएगा।<ref name=riscv>{{cite book |last1=Asanovic |first1=Krste |title=आरआईएससी वी निर्देश सेट मैनुअल|date=2017 |publisher=RISC-V Foundation |location=Berkeley |edition=2.2 |url=https://content.riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdf}}</ref> तो, इस डिजाइन के साथ एक नियंत्रण इकाई हमेशा पाइपलाइन को पीछे की ओर शाखा पथ से भर देगी। यदि एक कंपाइलर किसी शाखा की सबसे अधिक बार-बार ली जाने वाली दिशा का पता लगा सकता है, तो कंपाइलर केवल निर्देश दे सकता है ताकि सबसे अधिक बार ली जाने वाली शाखा शाखा की पसंदीदा दिशा हो। इसी तरह, एक नियंत्रण इकाई को [[संकलक]] से संकेत मिल सकते हैं: कुछ कंप्यूटरों में ऐसे निर्देश होते हैं जो शाखा की दिशा के बारे में संकलक से संकेतों को सांकेतिक शब्दों में बदल सकते हैं।<ref>{{cite book |title=पावर आईएसए (टीएम)|date=2017 |publisher=IBM |location=Austin |edition=3.0B |url=https://ibm.ent.box.com/s/1hzcwkwf8rbju5h9iyf44wm94amnlcrv |access-date=26 December 2019}}</ref>
पाइपलाइन को पूर्ण रखने और स्टालों से बचने के लिए नियंत्रण इकाइयां कई प्रविधियो का उपयोग करती हैं। उदाहरण के लिए, यहां तक ​​कि सरल नियंत्रण इकाइयां भी मान सकती हैं कि एक पिछली शाखा, कम संख्या वाले, पूर्व के निर्देश के लिए, एक लूप है, और दोहराया जाएगा।<ref name=riscv>{{cite book |last1=Asanovic |first1=Krste |title=आरआईएससी वी निर्देश सेट मैनुअल|date=2017 |publisher=RISC-V Foundation |location=Berkeley |edition=2.2 |url=https://content.riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdf}}</ref> तो, इस डिजाइन के साथ एक नियंत्रण इकाई हमेशा पाइपलाइन को पीछे की ओर शाखा पथ से भर देगी। यदि एक कंपाइलर किसी शाखा की सबसे अधिक बार-बार ली जाने वाली दिशा का पता लगा सकता है, तो कंपाइलर केवल निर्देश दे सकता है जिससे सबसे अधिक बार ली जाने वाली शाखा शाखा की पसंदीदा दिशा हो। इसी तरह, एक नियंत्रण इकाई को [[संकलक]] से संकेत मिल सकते हैं: कुछ कंप्यूटरों में ऐसे निर्देश होते हैं जो शाखा की दिशा के बारे में संकलक से संकेतों को सांकेतिक शब्दों में बदल सकते हैं।<ref>{{cite book |title=पावर आईएसए (टीएम)|date=2017 |publisher=IBM |location=Austin |edition=3.0B |url=https://ibm.ent.box.com/s/1hzcwkwf8rbju5h9iyf44wm94amnlcrv |access-date=26 December 2019}}</ref>
कुछ नियंत्रण इकाइयाँ [[शाखा भविष्यवक्ता]] करती हैं: एक नियंत्रण इकाई हाल की शाखाओं की एक इलेक्ट्रॉनिक सूची रखती है, जो शाखा निर्देश के पते से एन्कोडेड होती है।<ref name=riscv />इस सूची में प्रत्येक शाखा के लिए उस दिशा को याद रखने के लिए कुछ अंश हैं जो हाल ही में लिए गए थे।
कुछ नियंत्रण इकाइयाँ [[शाखा भविष्यवक्ता]] करती हैं: एक नियंत्रण इकाई हाल की शाखाओं की एक इलेक्ट्रॉनिक सूची रखती है, जो शाखा निर्देश के पते से एन्कोडेड होती है।<ref name=riscv />इस सूची में प्रत्येक शाखा के लिए उस दिशा को याद रखने के लिए कुछ अंश हैं जो हाल ही में लिए गए थे।


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


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


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


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


जब एक नियंत्रण इकाई [[थ्रेड (कंप्यूटिंग)]] की अनुमति देती है, तो सॉफ़्टवेयर को भी उन्हें संभालने के लिए डिज़ाइन किया जाना चाहिए। पीसी और स्मार्टफोन जैसे सामान्य-उद्देश्य वाले सीपीयू में, थ्रेड्स को सामान्यतः सामान्य टाइम-स्लाइस्ड प्रक्रियाओं की तरह दिखने के लिए बनाया जाता है। अधिक से अधिक, ऑपरेटिंग सिस्टम को उनके बारे में कुछ जागरूकता की आवश्यकता हो सकती है। जीपीयू में, थ्रेड शेड्यूलिंग को सामान्यतः एप्लिकेशन सॉफ़्टवेयर से छुपाया नहीं जा सकता है, और इसे प्रायः एक विशेष सबरूटीन लाइब्रेरी के साथ नियंत्रित किया जाता है।
जब एक नियंत्रण इकाई [[थ्रेड (कंप्यूटिंग)]] की अनुमति देती है, तो सॉफ़्टवेयर को भी उन्हें संभालने के लिए डिज़ाइन किया जाना चाहिए। पीसी और स्मार्टफोन जैसे सामान्य-उद्देश्य वाले सीपीयू में, थ्रेड्स को सामान्यतः सामान्य टाइम-स्लाइस्ड प्रक्रियाओं की तरह दिखने के लिए बनाया जाता है। अधिक से अधिक, ऑपरेटिंग सिस्टम को उनके बारे में कुछ जागरूकता की आवश्यकता हो सकती है। जीपीयू में, थ्रेड शेड्यूलिंग को सामान्यतः एप्लिकेशन सॉफ़्टवेयर से छुपाया नहीं जा सकता है, और इसे प्रायः एक विशेष सबरूटीन लाइब्रेरी के साथ नियंत्रित किया जाता है।
Line 68: Line 68:
विशिष्ट निष्पादन इकाइयों का होना आम बात है। उदाहरण के लिए, मामूली कीमत वाले कंप्यूटर में केवल एक फ़्लोटिंग-पॉइंट निष्पादन इकाई हो सकती है, क्योंकि फ़्लोटिंग पॉइंट इकाइयाँ महंगी होती हैं। एक ही कंप्यूटर में कई पूर्णांक इकाइयाँ हो सकती हैं, क्योंकि ये अपेक्षाकृत सस्ती होती हैं, और बड़ी मात्रा में निर्देश दे सकती हैं।
विशिष्ट निष्पादन इकाइयों का होना आम बात है। उदाहरण के लिए, मामूली कीमत वाले कंप्यूटर में केवल एक फ़्लोटिंग-पॉइंट निष्पादन इकाई हो सकती है, क्योंकि फ़्लोटिंग पॉइंट इकाइयाँ महंगी होती हैं। एक ही कंप्यूटर में कई पूर्णांक इकाइयाँ हो सकती हैं, क्योंकि ये अपेक्षाकृत सस्ती होती हैं, और बड़ी मात्रा में निर्देश दे सकती हैं।
   
   
जारी करने के लिए एक प्रकार की नियंत्रण इकाई इलेक्ट्रॉनिक तर्क, एक स्कोरबोर्ड की एक सरणी का उपयोग करती है<ref>{{cite book |last1=Thornton |first1=J.E. |title=Design of a Computer: The CDC 6600 |url=https://archive.org/details/designcomputerco6600thor |url-access=limited |date=1970 |publisher=Scott, Foreman and Co. |location=Atlanta |page=[https://archive.org/details/designcomputerco6600thor/page/n134 125]|isbn=9780673059536 }}</ref>यह पता लगाता है कि निर्देश कब जारी किया जा सकता है। सरणी की ऊंचाई निष्पादन इकाइयों की संख्या है, और लंबाई और चौड़ाई प्रत्येक ऑपरेंड के स्रोतों की संख्या है। जब सभी आइटम एक साथ आते हैं, तो ऑपरेंड और एक्जीक्यूशन यूनिट के सिग्नल क्रॉस हो जाएंगे। इस चौराहे पर तर्क यह पता लगाता है कि निर्देश काम कर सकता है, इसलिए नि: शुल्क निष्पादन इकाई को निर्देश जारी किया जाता है। नियंत्रण इकाई जारी करने की एक वैकल्पिक शैली [[टोमासुलो एल्गोरिथम]] को लागू करती है, जो निर्देशों की एक हार्डवेयर कतार को तत्पश्चात से व्यवस्थित करती है। कुछ अर्थों में, दोनों शैलियाँ कतार का उपयोग करती हैं। स्कोरबोर्ड निर्देशों की कतार को एन्कोड और पुन: व्यवस्थित करने का एक वैकल्पिक तरीका है, और कुछ डिज़ाइनर इसे कतार तालिका कहते हैं।<ref name="leighton">{{cite web |last1=Leighton |first1=Luke |title=लिबर आरआईएससी-वी एम-क्लास|url=https://www.crowdsupply.com/libre-risc-v/m-class/updates/modernising-1960s-computer-technology-learning-from-the-cdc-6600 |website=Crowd Supply |access-date=16 January 2020}}</ref><ref name="rv5via6600">{{cite web |last1=Alsup |first1=Mitch |last2=Leighton |first2=Luke |last3=Zaruba |first3=Florian |last4=Thornton |first4=James |last5=Kimmitt |first5=Jonathon |last6=Petrisko |first6=Dan |last7=Takano |first7=S. |last8=Falvo |first8=Samuel |title=RISC-V HW Dev, 6600-style out-of-order scoreboard |url=https://groups.google.com/a/groups.riscv.org/forum/#!msg/hw-dev/b4pPvlzBzu0/7hDfxArEAgAJ |website=Google Groups |publisher=RISC-V Foundation |access-date=16 January 2020}}</ref>
जारी करने के लिए एक प्रकार की नियंत्रण इकाई इलेक्ट्रॉनिक तर्क, एक स्कोरबोर्ड की एक सरणी का उपयोग करती है<ref>{{cite book |last1=Thornton |first1=J.E. |title=Design of a Computer: The CDC 6600 |url=https://archive.org/details/designcomputerco6600thor |url-access=limited |date=1970 |publisher=Scott, Foreman and Co. |location=Atlanta |page=[https://archive.org/details/designcomputerco6600thor/page/n134 125]|isbn=9780673059536 }}</ref>यह पता लगाता है कि निर्देश कब जारी किया जा सकता है। सरणी की ऊंचाई निष्पादन इकाइयों की संख्या है, और लंबाई और चौड़ाई प्रत्येक ऑपरेंड के स्रोतों की संख्या है। जब सभी आइटम एक साथ आते हैं, तो ऑपरेंड और एक्जीक्यूशन यूनिट के सिग्नल क्रॉस हो जाएंगे। इस चौराहे पर तर्क यह पता लगाता है कि निर्देश कार्य कर सकता है, इसलिए नि: शुल्क निष्पादन इकाई को निर्देश जारी किया जाता है। नियंत्रण इकाई जारी करने की एक वैकल्पिक शैली [[टोमासुलो एल्गोरिथम]] को लागू करती है, जो निर्देशों की एक हार्डवेयर कतार को तत्पश्चात से व्यवस्थित करती है। कुछ अर्थों में, दोनों शैलियाँ कतार का उपयोग करती हैं। स्कोरबोर्ड निर्देशों की कतार को एन्कोड और पुन: व्यवस्थित करने का एक वैकल्पिक तरीका है, और कुछ डिज़ाइनर इसे कतार तालिका कहते हैं।<ref name="leighton">{{cite web |last1=Leighton |first1=Luke |title=लिबर आरआईएससी-वी एम-क्लास|url=https://www.crowdsupply.com/libre-risc-v/m-class/updates/modernising-1960s-computer-technology-learning-from-the-cdc-6600 |website=Crowd Supply |access-date=16 January 2020}}</ref><ref name="rv5via6600">{{cite web |last1=Alsup |first1=Mitch |last2=Leighton |first2=Luke |last3=Zaruba |first3=Florian |last4=Thornton |first4=James |last5=Kimmitt |first5=Jonathon |last6=Petrisko |first6=Dan |last7=Takano |first7=S. |last8=Falvo |first8=Samuel |title=RISC-V HW Dev, 6600-style out-of-order scoreboard |url=https://groups.google.com/a/groups.riscv.org/forum/#!msg/hw-dev/b4pPvlzBzu0/7hDfxArEAgAJ |website=Google Groups |publisher=RISC-V Foundation |access-date=16 January 2020}}</ref>
कुछ अतिरिक्त तर्कों के साथ, एक स्कोरबोर्ड निष्पादन पुन: क्रमांकन, नाम बदलने और सटीक अपवादों और व्यवधानों को पंजीकृत कर सकता है। इसके अलावा यह Tomasulo एल्गोरिथम द्वारा उपयोग की जाने वाली शक्ति-भूख, जटिल सामग्री-पता योग्य मैमोरी के बिना ऐसा कर सकता है।<ref name="leighton" /><ref name="rv5via6600" />
कुछ अतिरिक्त तर्कों के साथ, एक स्कोरबोर्ड निष्पादन पुन: क्रमांकन, नाम बदलने और सटीक अपवादों और व्यवधानों को पंजीकृत कर सकता है। इसके अलावा यह Tomasulo एल्गोरिथम द्वारा उपयोग की जाने वाली शक्ति-भूख, जटिल सामग्री-पता योग्य मैमोरी के बिना ऐसा कर सकता है।<ref name="leighton" /><ref name="rv5via6600" />


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


जारी करने वाले लॉजिक में मेमोरी या रजिस्टर एक्सेस को सम्मिलित करके रिटायरिंग लॉजिक को जारी करने वाले स्कोरबोर्ड या टोमासुलो कतार में भी डिज़ाइन किया जा सकता है।<ref name="leighton" /><ref name="rv5via6600" />
जारी करने वाले लॉजिक में मेमोरी या रजिस्टर एक्सेस को सम्मिलित करके रिटायरिंग लॉजिक को जारी करने वाले स्कोरबोर्ड या टोमासुलो कतार में भी डिज़ाइन किया जा सकता है।<ref name="leighton" /><ref name="rv5via6600" />


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


इसके अलावा, क्रम से बाहर सीपीयू को ब्रांचिंग से स्टॉल के साथ और भी अधिक समस्याएँ होती हैं, क्योंकि वे प्रति घड़ी चक्र में कई निर्देश पूरे कर सकते हैं, और सामान्यतः प्रगति के विभिन्न चरणों में कई निर्देश होते हैं। इसलिए, ये नियंत्रण इकाइयां पाइपलाइन किए गए प्रोसेसरों द्वारा उपयोग किए जाने वाले सभी समाधानों का उपयोग कर सकती हैं।<ref name="rv5boomreuse">{{cite web |last1=Celio |first1=Chris |title=बूम डॉक्स, रॉकेटशिप एसओसी जेनरेटर|url=https://docs.boom-core.org/en/latest/sections/intro-overview/rocket-chip.html |access-date=16 January 2020}}</ref>
इसके अलावा, क्रम से बाहर सीपीयू को ब्रांचिंग से स्टॉल के साथ और भी अधिक समस्याएँ होती हैं, क्योंकि वे प्रति घड़ी चक्र में कई निर्देश पूरे कर सकते हैं, और सामान्यतः प्रगति के विभिन्न चरणों में कई निर्देश होते हैं। इसलिए, ये नियंत्रण इकाइयां पाइपलाइन किए गए प्रोसेसरों द्वारा उपयोग किए जाने वाले सभी समाधानों का उपयोग कर सकती हैं।<ref name="rv5boomreuse">{{cite web |last1=Celio |first1=Chris |title=बूम डॉक्स, रॉकेटशिप एसओसी जेनरेटर|url=https://docs.boom-core.org/en/latest/sections/intro-overview/rocket-chip.html |access-date=16 January 2020}}</ref>
Line 84: Line 84:
कुछ कंप्यूटर प्रत्येक एकल निर्देश को सरल निर्देशों के अनुक्रम में अनुवादित करते हैं। इसका लाभ यह है कि जटिल मल्टी-स्टेप निर्देशों को संभालते हुए, एक खराब कंप्यूटर अपने तर्क के बड़े हिस्से में सरल हो सकता है। [[पेंटियम प्रो]] के पश्चात से x[[86]] इंटेल सीपीयू जटिल CISC x86 निर्देशों को अधिक RISC-जैसे आंतरिक माइक्रो-ऑपरेशंस में अनुवादित करता है।
कुछ कंप्यूटर प्रत्येक एकल निर्देश को सरल निर्देशों के अनुक्रम में अनुवादित करते हैं। इसका लाभ यह है कि जटिल मल्टी-स्टेप निर्देशों को संभालते हुए, एक खराब कंप्यूटर अपने तर्क के बड़े हिस्से में सरल हो सकता है। [[पेंटियम प्रो]] के पश्चात से x[[86]] इंटेल सीपीयू जटिल CISC x86 निर्देशों को अधिक RISC-जैसे आंतरिक माइक्रो-ऑपरेशंस में अनुवादित करता है।


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


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


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


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


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


इन तरीकों को डिजाइन करना अपेक्षाकृत आसान है, और इतना सामान्य हो गया है कि वाणिज्यिक लाभ के लिए दूसरों का आविष्कार किया गया। कई आधुनिक कम-शक्ति वाले [[सीएमओएस]] सीपीयू आवश्यक निर्देश के आधार पर विशेष निष्पादन इकाइयों और बस इंटरफेस को रोकते हैं और शुरू करते हैं। कुछ कंप्यूटर<ref>{{cite book |title=MAXQ आर्किटेक्चर का परिचय|publisher=Maxim Integrated Inc. |location=Dallas |url=https://www.maximintegrated.com/en/design/technical-documents/app-notes/3/3222.html |access-date=26 December 2019}}</ref> ट्रांसफर-ट्रिगर मल्टीप्लेक्सर्स का उपयोग करने के लिए सीपीयू के सूक्ष्म वास्तुकला को भी व्यवस्थित करें ताकि प्रत्येक निर्देश केवल आवश्यक तर्क के सटीक टुकड़ों का उपयोग करे।
इन प्रविधियो को डिजाइन करना अपेक्षाकृत आसान है, और इतना सामान्य हो गया है कि वाणिज्यिक लाभ के लिए दूसरों का आविष्कार किया गया। कई आधुनिक कम-शक्ति वाले [[सीएमओएस]] सीपीयू आवश्यक निर्देश के आधार पर विशेष निष्पादन इकाइयों और बस इंटरफेस को रोकते हैं और प्रारम्भ करते हैं। कुछ कंप्यूटर<ref>{{cite book |title=MAXQ आर्किटेक्चर का परिचय|publisher=Maxim Integrated Inc. |location=Dallas |url=https://www.maximintegrated.com/en/design/technical-documents/app-notes/3/3222.html |access-date=26 December 2019}}</ref> ट्रांसफर-ट्रिगर मल्टीप्लेक्सर्स का उपयोग करने के लिए सीपीयू के सूक्ष्म वास्तुकला को भी व्यवस्थित करें जिससे प्रत्येक निर्देश केवल आवश्यक तर्क के सटीक टुकड़ों का उपयोग करे।


एक सामान्य तरीका यह है कि लोड को कई सीपीयू में फैला दिया जाए, और लोड कम होने पर अप्रयुक्त सीपीयू को बंद कर दिया जाए। ऑपरेटिंग सिस्टम का टास्क स्विचिंग लॉजिक सीपीयू के डेटा को मेमोरी में सेव करता है। कुछ मामलों में,<ref>{{cite book |title=एआरएम तकनीकी संदर्भ, कॉर्टेक्स|publisher=ARM Ltd |edition=v8}}</ref> सीपीयू में से एक सरल और छोटा हो सकता है, शाब्दिक रूप से कम लॉजिक गेट्स के साथ। तो, इसमें कम रिसाव होता है, और यह सबसे आखिरी में बंद होता है, और सबसे पहले चालू होता है। इसके अलावा यह एकमात्र सीपीयू है जिसके लिए विशेष कम-शक्ति सुविधाओं की आवश्यकता होती है। अधिकांश पीसी में इसी तरह की विधि का उपयोग किया जाता है, जिसमें सामान्यतः एक सहायक एम्बेडेड सीपीयू होता है जो पावर सिस्टम का प्रबंधन करता है। हालाँकि, पीसी में, सॉफ्टवेयर सामान्यतः BIOS में होता है, ऑपरेटिंग सिस्टम में नहीं।
एक सामान्य तरीका यह है कि लोड को कई सीपीयू में फैला दिया जाए, और लोड कम होने पर अप्रयुक्त सीपीयू को बंद कर दिया जाए। ऑपरेटिंग सिस्टम का टास्क स्विचिंग लॉजिक सीपीयू के डेटा को मेमोरी में सेव करता है। कुछ मामलों में,<ref>{{cite book |title=एआरएम तकनीकी संदर्भ, कॉर्टेक्स|publisher=ARM Ltd |edition=v8}}</ref> सीपीयू में से एक सरल और छोटा हो सकता है, शाब्दिक रूप से कम लॉजिक गेट्स के साथ। तो, इसमें कम रिसाव होता है, और यह सबसे आखिरी में बंद होता है, और सबसे पूर्व चालू होता है। इसके अलावा यह एकमात्र सीपीयू है जिसके लिए विशेष कम-शक्ति सुविधाओं की आवश्यकता होती है। अधिकांश पीसी में इसी तरह की विधि का उपयोग किया जाता है, जिसमें सामान्यतः एक सहायक एम्बेडेड सीपीयू होता है जो पावर सिस्टम का प्रबंधन करता है। हालाँकि, पीसी में, सॉफ्टवेयर सामान्यतः BIOS में होता है, ऑपरेटिंग सिस्टम में नहीं।


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


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


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


कुछ सीपीयू<ref name="armv6">{{cite book |title=एआरएम (टीएम) तकनीकी संदर्भ मैनुअल|publisher=ARM Ltd. |location=Cambridge |edition=v6, r0}}</ref> एक विशेष प्रकार के फ्लिप-फ्लॉप (थोड़ा स्टोर करने के लिए) का उपयोग करें जो एक धीमी, बड़ी (महंगी) कम-रिसाव वाली सेल के लिए एक तेज, उच्च-रिसाव भंडारण सेल को जोड़ता है। इन दो कोशिकाओं ने बिजली की आपूर्ति को अलग कर दिया है। जब CPU पावर सेविंग मोड में प्रवेश करता है (उदाहरण के लिए एक रुकावट के कारण जो रुकावट की प्रतीक्षा करता है), डेटा को कम-रिसाव कोशिकाओं में स्थानांतरित कर दिया जाता है, और अन्य बंद कर दिए जाते हैं। जब सीपीयू कम-रिसाव मोड छोड़ता है (उदाहरण के लिए एक बाधा के कारण), तो प्रक्रिया उलट जाती है।
कुछ सीपीयू<ref name="armv6">{{cite book |title=एआरएम (टीएम) तकनीकी संदर्भ मैनुअल|publisher=ARM Ltd. |location=Cambridge |edition=v6, r0}}</ref> एक विशेष प्रकार के फ्लिप-फ्लॉप (थोड़ा स्टोर करने के लिए) का उपयोग करें जो एक धीमी, बड़ी (महंगी) कम-रिसाव वाली सेल के लिए एक तेज, उच्च-रिसाव भंडारण सेल को जोड़ता है। इन दो कोशिकाओं ने बिजली की आपूर्ति को भिन्न कर दिया है। जब CPU पावर सेविंग मोड में प्रवेश करता है (उदाहरण के लिए एक रुकावट के कारण जो रुकावट की प्रतीक्षा करता है), डेटा को कम-रिसाव कोशिकाओं में स्थानांतरित कर दिया जाता है, और अन्य बंद कर दिए जाते हैं। जब सीपीयू कम-रिसाव मोड छोड़ता है (उदाहरण के लिए एक बाधा के कारण), तो प्रक्रिया उलट जाती है।


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


== कंप्यूटर के साथ एकीकरण ==
== कंप्यूटर के साथ एकीकरण ==


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


एक आधुनिक सीपीयू में एक इंटरप्ट कंट्रोलर भी सम्मिलित होता है। यह सिस्टम बस से इंटरप्ट सिग्नल को हैंडल करता है। कंट्रोल यूनिट कंप्यूटर का वह हिस्सा है जो इंटरप्ट का जवाब देता है।
एक आधुनिक सीपीयू में एक इंटरप्ट कंट्रोलर भी सम्मिलित होता है। यह सिस्टम बस से इंटरप्ट सिग्नल को हैंडल करता है। कंट्रोल यूनिट कंप्यूटर का वह हिस्सा है जो इंटरप्ट का जवाब देता है।
Line 122: Line 122:
अधिकांश [[PDP-8]] मॉडल में एक डेटा बस थी जिसे I/O उपकरणों को नियंत्रण इकाई की मेमोरी पढ़ने और तर्क लिखने के लिए उधार लेने के लिए डिज़ाइन किया गया था।<ref>{{cite book |title=PDP-8L Maintenance Manual |date=1970 |publisher=Digital Equipment Corp. |location=Maynard Mass. |url=http://bitsavers.trailing-edge.com/pdf/dec/pdp8/pdp8l/DEC-8L-HR1B-D_8LmaintVol1.pdf |archive-url=https://web.archive.org/web/20150422211242/http://bitsavers.trailing-edge.com/pdf/dec/pdp8/pdp8l/DEC-8L-HR1B-D_8LmaintVol1.pdf |archive-date=2015-04-22 |url-status=live |access-date=26 December 2019}}</ref> इसने उच्च गति I/O नियंत्रकों की जटिलता और खर्च को कम किया, उदा। डिस्क के लिए।
अधिकांश [[PDP-8]] मॉडल में एक डेटा बस थी जिसे I/O उपकरणों को नियंत्रण इकाई की मेमोरी पढ़ने और तर्क लिखने के लिए उधार लेने के लिए डिज़ाइन किया गया था।<ref>{{cite book |title=PDP-8L Maintenance Manual |date=1970 |publisher=Digital Equipment Corp. |location=Maynard Mass. |url=http://bitsavers.trailing-edge.com/pdf/dec/pdp8/pdp8l/DEC-8L-HR1B-D_8LmaintVol1.pdf |archive-url=https://web.archive.org/web/20150422211242/http://bitsavers.trailing-edge.com/pdf/dec/pdp8/pdp8l/DEC-8L-HR1B-D_8LmaintVol1.pdf |archive-date=2015-04-22 |url-status=live |access-date=26 December 2019}}</ref> इसने उच्च गति I/O नियंत्रकों की जटिलता और खर्च को कम किया, उदा। डिस्क के लिए।


[[ज़ेरॉक्स ऑल्टो]] में एक मल्टीटास्किंग माइक्रोप्रोग्रामेबल कंट्रोल यूनिट थी जो लगभग सभी I / O का प्रदर्शन करती थी।<ref>{{cite book |title=ऑल्टो हार्डवेयर मैनुअल|date=1976 |publisher=Xerox |url=http://bitsavers.informatik.uni-stuttgart.de/pdf/xerox/alto/Alto_Hardware_Manual_Aug76.pdf |archive-url=https://web.archive.org/web/20101207201936/http://bitsavers.informatik.uni-stuttgart.de/pdf/xerox/alto/Alto_Hardware_Manual_Aug76.pdf |archive-date=2010-12-07 |url-status=live}}</ref> इस डिज़ाइन ने इलेक्ट्रॉनिक लॉजिक के केवल एक अल्प से अंश के साथ एक आधुनिक पीसी की अधिकांश सुविधाएँ प्रदान कीं। डुअल-थ्रेड कंप्यूटर दो निम्नतम-प्राथमिकता वाले माइक्रोथ्रेड्स द्वारा चलाया गया था। जब भी I/O की आवश्यकता नहीं थी, ये गणना करते थे। वीडियो, नेटवर्क, डिस्क, आवधिक टाइमर, माउस और कीबोर्ड प्रदान किए गए (घटती प्राथमिकता में) उच्च प्राथमिकता वाले माइक्रोथ्रेड। माइक्रोप्रोग्राम ने I/O डिवाइस के जटिल लॉजिक के साथ-साथ कंप्यूटर के साथ डिवाइस को एकीकृत करने के लिए लॉजिक किया। वास्तविक हार्डवेयर I/O के लिए, माइक्रोप्रोग्राम अधिकांश I/O के लिए शिफ्ट रजिस्टर पढ़ता और लिखता है, कभी-कभी प्रतिरोधक नेटवर्क और ट्रांजिस्टर के साथ आउटपुट वोल्टेज स्तर (जैसे वीडियो के लिए) को स्थानांतरित करने के लिए। बाहरी घटनाओं को संभालने के लिए, माइक्रोकंट्रोलर के पास थ्रेड के चक्र के अंत में थ्रेड्स को स्विच करने के लिए माइक्रोइंटरप्ट्स थे, उदा। एक निर्देश के अंत में, या एक शिफ्ट-रजिस्टर तक पहुँचने के पश्चात। माइक्रोप्रोग्राम को तत्पश्चात से लिखा और पुनः स्थापित किया जा सकता था, जो एक शोध कंप्यूटर के लिए बहुत उपयोगी था।
[[ज़ेरॉक्स ऑल्टो]] में एक मल्टीटास्किंग माइक्रोप्रोग्रामेबल कंट्रोल यूनिट थी जो लगभग सभी I / O का प्रदर्शन करती थी।<ref>{{cite book |title=ऑल्टो हार्डवेयर मैनुअल|date=1976 |publisher=Xerox |url=http://bitsavers.informatik.uni-stuttgart.de/pdf/xerox/alto/Alto_Hardware_Manual_Aug76.pdf |archive-url=https://web.archive.org/web/20101207201936/http://bitsavers.informatik.uni-stuttgart.de/pdf/xerox/alto/Alto_Hardware_Manual_Aug76.pdf |archive-date=2010-12-07 |url-status=live}}</ref> इस डिज़ाइन ने इलेक्ट्रॉनिक लॉजिक के केवल एक अल्प से अंश के साथ एक आधुनिक पीसी की अधिकांश सुविधाएँ प्रदान कीं। डुअल-थ्रेड कंप्यूटर दो निम्नतम-प्राथमिकता वाले माइक्रोथ्रेड्स द्वारा चलाया गया था। जब भी I/O की आवश्यकता नहीं थी, ये गणना करते थे। वीडियो, नेटवर्क, डिस्क, आवधिक टाइमर, माउस और कीबोर्ड प्रदान किए गए (घटती प्राथमिकता में) उच्च प्राथमिकता वाले माइक्रोथ्रेड। माइक्रोप्रोग्राम ने I/O डिवाइस के जटिल लॉजिक के साथ-साथ कंप्यूटर के साथ डिवाइस को एकीकृत करने के लिए लॉजिक किया। वास्तविक हार्डवेयर I/O के लिए, माइक्रोप्रोग्राम अधिकांश I/O के लिए शिफ्ट रजिस्टर पढ़ता और लिखता है, कभी-कभी प्रतिरोधक नेटवर्क और ट्रांजिस्टर के साथ आउटपुट वोल्टेज स्तर (जैसे वीडियो के लिए) को स्थानांतरित करने के लिए। बाहरी घटनाओं को संभालने के लिए, माइक्रोकंट्रोलर के पास थ्रेड के चक्र के अंत में थ्रेड्स को स्विच करने के लिए माइक्रोइंटरप्ट्स थे, उदा। एक निर्देश के अंत में, या एक शिफ्ट-रजिस्टर तक पहुँचने के पश्चात। माइक्रोप्रोग्राम को तत्पश्चात से लिखा और पुनः स्थापित किया जा सकता था, जो एक शोध कंप्यूटर के लिए अधिक उपयोगी था।


== नियंत्रण इकाई के कार्य ==
== नियंत्रण इकाई के कार्य ==


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


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


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


जैसे-जैसे कंप्यूटर विकसित हुए हैं, वैसे-वैसे हार्डवार्ड दृष्टिकोण कम लोकप्रिय होता गया है। पहले, सीपीयू के लिए नियंत्रण इकाइयां तदर्थ तर्क का उपयोग करती थीं, और उन्हें डिजाइन करना कठिन था।<ref>{{Cite journal |last1=Williams |first1=R. D. |last2=Klenke |first2=R. H. |last3=Aylor |first3=J. H. |date=May 2003 |title=वर्चुअल प्रोटोटाइपिंग का उपयोग करके कंप्यूटर डिजाइन सिखाना|journal=IEEE Transactions on Education |volume=46 |issue=2 |pages=296–301 |doi=10.1109/te.2002.808278 |issn=0018-9359 }}</ref>
जैसे-जैसे कंप्यूटर विकसित हुए हैं, वैसे-वैसे हार्डवार्ड दृष्टिकोण कम लोकप्रिय होता गया है। पूर्व, सीपीयू के लिए नियंत्रण इकाइयां तदर्थ तर्क का उपयोग करती थीं, और उन्हें डिजाइन करना कठिन था।<ref>{{Cite journal |last1=Williams |first1=R. D. |last2=Klenke |first2=R. H. |last3=Aylor |first3=J. H. |date=May 2003 |title=वर्चुअल प्रोटोटाइपिंग का उपयोग करके कंप्यूटर डिजाइन सिखाना|journal=IEEE Transactions on Education |volume=46 |issue=2 |pages=296–301 |doi=10.1109/te.2002.808278 |issn=0018-9359 }}</ref>





Revision as of 12:11, 3 June 2023

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

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


बहुचक्र कंट्रोल यूनिट

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

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

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

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

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

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

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

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

पाइपलाइन नियंत्रण इकाइयां

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

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

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

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

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

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

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

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

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

स्टालों को रोकना

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

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

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

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

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

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

आउट ऑफ ऑर्डर कंट्रोल यूनिट

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

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

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

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

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

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

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

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


नियंत्रण इकाइयों का अनुवाद

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

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

कम शक्ति वाले कंप्यूटरों के लिए नियंत्रण इकाइयाँ

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

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

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

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

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

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

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

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

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

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

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

कंप्यूटर के साथ एकीकरण

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

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

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

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

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

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

नियंत्रण इकाई के कार्य

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

हार्डवेयर्ड कंट्रोल यूनिट

एक एलडीए-अनुदेश निष्पादित करने वाली एक साधारण हार्डवेयर्ड नियंत्रण इकाई के नियंत्रण मैट्रिक्स का एनिमेशन

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

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

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

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


माइक्रोप्रोग्राम कंट्रोल यूनिट

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


डिजाइन के संयोजन तरीके

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

यह भी देखें

संदर्भ

  1. von Neumann, John (1945), First Draft of a Report on the EDVAC (PDF), Moore School of Electrical Engineering, University of Pennsylvania, archived from the original (PDF) on March 14, 2013
  2. Astha Singh (24 September 2018). "कंप्यूटर संगठन - नियंत्रण इकाई और डिजाइन". GeeksforGeeks. Retrieved 25 May 2019.
  3. 3.0 3.1 Asanovic, Krste (2017). आरआईएससी वी निर्देश सेट मैनुअल (PDF) (2.2 ed.). Berkeley: RISC-V Foundation.
  4. पावर आईएसए (टीएम) (3.0B ed.). Austin: IBM. 2017. Retrieved 26 December 2019.
  5. Thornton, J.E. (1970). Design of a Computer: The CDC 6600. Atlanta: Scott, Foreman and Co. p. 125. ISBN 9780673059536.
  6. 6.0 6.1 6.2 6.3 6.4 Leighton, Luke. "लिबर आरआईएससी-वी एम-क्लास". Crowd Supply. Retrieved 16 January 2020.
  7. 7.0 7.1 7.2 7.3 7.4 Alsup, Mitch; Leighton, Luke; Zaruba, Florian; Thornton, James; Kimmitt, Jonathon; Petrisko, Dan; Takano, S.; Falvo, Samuel. "RISC-V HW Dev, 6600-style out-of-order scoreboard". Google Groups. RISC-V Foundation. Retrieved 16 January 2020.
  8. Celio, Chris. "बूम डॉक्स, रॉकेटशिप एसओसी जेनरेटर". Retrieved 16 January 2020.
  9. MAXQ आर्किटेक्चर का परिचय. Dallas: Maxim Integrated Inc. Retrieved 26 December 2019.
  10. एआरएम तकनीकी संदर्भ, कॉर्टेक्स (v8 ed.). ARM Ltd.
  11. एआरएम (टीएम) तकनीकी संदर्भ मैनुअल (v6, r0 ed.). Cambridge: ARM Ltd.
  12. PDP-8L Maintenance Manual (PDF). Maynard Mass.: Digital Equipment Corp. 1970. Archived (PDF) from the original on 2015-04-22. Retrieved 26 December 2019.
  13. ऑल्टो हार्डवेयर मैनुअल (PDF). Xerox. 1976. Archived (PDF) from the original on 2010-12-07.
  14. "MICRO-PROGRAMMED VERSUS HARDWIRED CONTROL UNITS;". www.cs.binghamton.edu. Archived from the original on 2017-04-30. Retrieved 2017-02-17.
  15. Williams, R. D.; Klenke, R. H.; Aylor, J. H. (May 2003). "वर्चुअल प्रोटोटाइपिंग का उपयोग करके कंप्यूटर डिजाइन सिखाना". IEEE Transactions on Education. 46 (2): 296–301. doi:10.1109/te.2002.808278. ISSN 0018-9359.
  16. Barkalov, Alexander (2009). Logic synthesis for FSM based control units / Alexander Barkalov and Larysa Titarenko. Berlin: Springer. ISBN 978-3-642-04308-6.
  17. Wiśniewski, Remigiusz (2009). प्रोग्राम करने योग्य उपकरणों के लिए रचनात्मक माइक्रोप्रोग्राम नियंत्रण इकाइयों का संश्लेषण. Zielona Góra: University of Zielona Góra. p. 153. ISBN 978-83-7481-293-1.