कार्यक्रम गणक

From Vigyanwiki
Revision as of 15:46, 28 December 2022 by alpha>Ayush Mishra
आईबीएम 701 कंप्यूटर का फ्रंट पैनल 1952 में पेश किया गया था। बीच में रोशनी विभिन्न रजिस्टरों की सामग्री प्रदर्शित करती है। निर्देश काउंटर निचले बाएँ पर है।

प्रोग्राम काउंटर (PC), जिसे आमतौर पर इंटेल x86 और इटेनियम माइक्रोप्रोसेसरों में इंस्ट्रक्शन पॉइंटर (IP) कहा जाता है, और कभी-कभी इंस्ट्रक्शन एड्रेस रजिस्टर (IAR),[1] इंस्ट्रक्शन काउंटर,[2] या इंस्ट्रक्शन सीक्वेंसर का सिर्फ एक हिस्सा कहा जाता है।[3] एक प्रोसेसर रजिस्टर है जो इंगित करता है कि कंप्यूटर अपने प्रोग्राम अनुक्रम में कहां है।[nb 1]

आमतौर पर, पीसी एक निर्देश प्राप्त करने के बाद बढ़ जाता है, और अगले निर्देश का स्मृति पता ("इंगित करता है") रखता है जिसे निष्पादित किया जाएगा।[4][nb 2]

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

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

हार्डवेयर कार्यान्वयन

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

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

यदि पीसी एक बाइनरी काउंटर है, तो यह तब बढ़ सकता है जब इसके काउंट यूपी इनपुट पर एक पल्स लगाया जाता है, या सीपीयू कुछ अन्य मान की गणना कर सकता है और इसे एक पल्स द्वारा इसके लोड इनपुट में लोड कर सकता है।[10]

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

मशीन आर्किटेक्चर में परिणाम

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

इस शोध से पारंपरिक, पीसी-आधारित, सीपीयू को तेजी से चलाने के तरीके भी सामने आए, जिनमें शामिल हैं:

उच्च स्तरीय प्रोग्रामिंग में परिणाम

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

हालाँकि, नए प्रोग्रामिंग मॉडल अनुक्रमिक-निष्पादन प्रोग्रामिंग को पार करते हैं:

  • एक मल्टी-थ्रेडेड प्रोग्राम लिखते समय, प्रोग्रामर प्रत्येक थ्रेड को निर्देशों के अनुक्रम के रूप में अन्य थ्रेड्स में निर्देशों के सापेक्ष किसी भी निर्देश के समय को निर्दिष्ट किए बिना लिख ​​सकता है।
  • घटना-संचालित प्रोग्रामिंग में, प्रोग्रामर प्रोग्राम के लिए समग्र अनुक्रम निर्दिष्ट किए बिना घटनाओं का जवाब देने के लिए निर्देशों के अनुक्रम लिख सकता है।
  • डेटाफ्लो प्रोग्रामिंग में, प्रोग्रामर कंप्यूटिंग पाइपलाइन के प्रत्येक खंड को अन्य अनुभागों के सापेक्ष समय निर्दिष्ट किए बिना लिख ​​सकता है।

प्रतीक

असेंबली लैंग्वेज प्रोग्राम में प्रोग्राम काउंटर के प्रतीक के लिए विक्रेता विभिन्न वर्णों का उपयोग करते हैं। जबकि इंटेल, ज़िलॉग , टेक्सास इंस्ट्रूमेंट्स, तोशिबा, एनईसी, सीमेंस और एएमडी प्रोसेसर प्रलेखन में "$" वर्ण का उपयोग प्रचलित है, मोटोरोला, रॉकवेल सेमीकंडक्टर, माइक्रोचिप प्रौद्योगिकी और हिताची इसके बजाय "*" वर्ण का उपयोग करते हैं,[9] जबकि एसजीएस-थॉमसन माइक्रोइलेक्ट्रॉनिक "पीसी" का उपयोग करता है।[9]

यह भी देखें

टिप्पणियाँ

  1. For modern processors, the concept of "where it is in its sequence" is too simplistic, as instruction-level parallelism and out-of-order execution may occur.
  2. In a processor where the incrementation precedes the fetch, the PC points to the current instruction being executed. In some processors, the PC points some distance beyond the current instruction; for instance, in the ARM7, the value of PC visible to the programmer points beyond the current instruction and beyond the delay slot.[5]


इस पेज में लापता आंतरिक लिंक की सूची

  • सूचक (कंप्यूटर प्रोग्रामिंग)
  • स्मृति पता
  • वॉन न्यूमैन टोंटी
  • बहाव को काबू करें
  • घटना (कंप्यूटिंग)
  • रॉकवेल सेमीकंडक्टर
  • निर्देश निर्धारण

संदर्भ

  1. Mead, Carver; Conway, Lynn (1980). Introduction to VLSI Systems. Reading, USA: Addison-Wesley. ISBN 0-201-04358-0.
  2. Principles of Operation, Type 701 and Associated Equipment (PDF). IBM. 1953.
  3. Harry Katzan (1971), Computer Organization and the System/370, Van Nostrand Reinhold Company, New York, USA, LCCCN 72-153191
  4. Silberschatz, Abraham; Gagne, Greg; Galvin, Peter B. (April 2018). Operating System Concepts. United States: Wiley. pp. 27, G-29. ISBN 978-1-119-32091-3.
  5. "ARM Developer Suite, Assembler Guide. Version 1.2". ARM Limited. 2001. Retrieved 2019-10-18.
  6. John L. Hennessy and David A. Patterson (1990), Computer Architecture: a quantitative approach, Morgan Kaufmann Publishers, Palo Alto, USA, ISBN 1-55860-069-8
  7. B. Randall (1982), The Origins of Digital Computers, Springer-Verlag, Berlin, D
  8. C. Gordon Bell and Allen Newell (1971), Computer Structures: Readings and Examples, McGraw-Hill Book Company, New York, USA
  9. 9.0 9.1 9.2 Arnold, Alfred (2020) [1996, 1989]. "E. Predefined Symbols". Macro Assembler AS – User's Manual. V1.42. Translated by Arnold, Alfred; Hilse, Stefan; Kanthak, Stephan; Sellke, Oliver; De Tomasi, Vittorio. p. Table E.3: Predefined Symbols – Part 3. Archived from the original on 2020-02-28. Retrieved 2020-02-28. 3.2.12. WRAPMODE […] AS will assume that the processor's program counter does not have the full length of 16 bits given by the architecture, but instead a length that is exactly sufficient to address the internal ROM. For example, in case of the AT90S8515, this means 12 bits, corresponding to 4 Kwords or 8 Kbytes. This assumption allows relative branches from the ROM's beginning to the end and vice versa which would result in an out-of-branch error when using strict arithmetics. Here, they work because the carry bits resulting from the target address computation are discarded. […] In case of the abovementioned AT90S8515, this option is even necessary because it is the only way to perform a direct jump through the complete address space […]
  10. Walker, B. S. (1967). Introduction to Computer Engineering. London, UK: University of London Press. ISBN 0-340-06831-0.
  11. F. B. Chambers, D. A. Duce and G. P. Jones (1984), Distributed Computing, Academic Press, Orlando, USA, ISBN 0-12-167350-2
  12. Douglas Hofstadter (1980), Gödel, Escher, Bach: an eternal golden braid, Penguin Books, Harmondsworth, UK, ISBN 0-14-005579-7

श्रेणी: नियंत्रण प्रवाह श्रेणी: सेंट्रल प्रोसेसिंग यूनिट श्रेणी:डिजिटल रजिस्टर