2013-04-01 46 views
28

प्रोग्राम काउंटर उस निर्देश का पता रखता है जिसे अगले निष्पादित किया जाना चाहिए, जबकि निर्देश रजिस्टर को वास्तविक निर्देश निष्पादित किया जाना चाहिए। उनमें से एक पर्याप्त नहीं होगा?कार्यक्रम काउंटर और निर्देश रजिस्टर

और इन रजिस्टरों में से प्रत्येक की लंबाई क्या है?

धन्यवाद।

उत्तर

45

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

कारण है कि आप की जरूरत दोनों है, क्योंकि यदि आप केवल एक कार्यक्रम काउंटर था और दोनों उद्देश्यों आप निम्नलिखित परेशानी प्रणाली मिलेगा लिए इसका इस्तेमाल किया:

[प्रोग्राम निष्पादन की शुरुआत]

  1. पीसी 0x00000000 (कहते हैं कि यह स्मृति में प्रोग्राम का प्रारंभ पता है)
  2. एनकोडेड निर्देश स्मृति से प्राप्त किया जाता है और पीसी में रखा जाता है।
  3. निर्देश डीकोड और निष्पादित किया गया है।
  4. अब अगली निर्देश पर जाने का समय है ताकि हम अगले निर्देश के पते को देखने के लिए पीसी पर वापस जाएं। हालांकि, हमें एक समस्या है क्योंकि पीसी का पिछला पता हटा दिया गया था, इसलिए हमें पता नहीं है कि अगला निर्देश कहां है।

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

पीएस रजिस्टरों की चौड़ाई आर्किटेक्चर के शब्द आकार के आधार पर भिन्न होती है। उदाहरण के लिए, 32-बिट प्रोसेसर के लिए, शब्द का आकार 32-बिट है। इसलिए, सीपीयू पर रजिस्ट्रार 32 बिट होंगे। निर्देश रजिस्ट्रार आयामों में अलग नहीं हैं। अंतर व्यवहार और व्याख्या में है। निर्देश विभिन्न रूपों में एन्कोड किए गए हैं, हालांकि, वे अभी भी 32-बिट रजिस्टर पर कब्जा कर रहे हैं। उदाहरण के लिए, अल्टेरा से निओस II प्रोसेसर में 3 अलग-अलग निर्देश प्रकार होते हैं, प्रत्येक अलग-अलग एन्कोड किए जाते हैं।ftp://ftp.altera.com/up/pub/Tutorials/DE2/Computer_Organization/tut_nios2_introduction.pdf

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

5

जैसा कि आपने कहा है, Program Counter (PC) निष्पादित करने के लिए अगले निर्देश का पता रखता है, और Instruction Register (IR) वास्तविक निर्देश को निष्पादित करने के लिए संग्रहीत करता है (लेकिन इसका पता नहीं)।

इन रजिस्टरों की लंबाई से संबंधित, मौजूदा मशीनों में 64-बिट पीसी हैं। आईआर (देखने के एक तार्किक बिंदु से) की लंबाई वास्तुकला पर निर्भर करता है:

  • RISC मशीनों आमतौर पर है निश्चित लंबाई निर्देश। उदाहरण के लिए, अधिकांश SPARC निर्देश 32-बिट स्वरूपों में एन्कोड किए गए हैं।
  • सीआईएससी मशीन (इंटेल, एएमडी) में चर-लंबाई निर्देश हैं। इन मशीनों को लाने, डिकोड और कई निर्देश हर चक्र निष्पादित करने में सक्षम हैं उदाहरण के लिए, Intel® 64 and IA-32 Architectures Software Developer Manuals

देखते हैं, आईआर के भौतिक कार्यान्वयन में कुछ लाइनों में वर्णन करने के लिए आसान नहीं है।

+0

या अधिक सटीक रूप से, वास्तव में कोई भौतिक "निर्देश रजिस्टर" नहीं है, क्योंकि आधुनिक सुपरस्कालर (esp। OOO) में कोड-फ़ेच बड़े CPU में होता है। मुझे नहीं लगता कि मैंने कभी भी शब्द सुना है, और यह भी वर्णन नहीं किया गया है कि कैसे x86 CPUs आंतरिक रूप से काम करते हैं। ([एग्नेर फोग का माइक्रोआर्क पीडीएफ] (http://agner.org/optimize/), या इंटेल के अनुकूलन मैनुअल, या [x86 टैग विकी] में अन्य लिंक (http://stackoverflow.com/tags/x86/info) जब तक कि आप वास्तव में हार्डवेयर (सरल) डिज़ाइन नहीं कर रहे हैं, यह संभवतः सीपीयू कैसे काम करता है यह समझने के लिए उपयोगी शब्द नहीं है। –

संबंधित मुद्दे