प्रोसेसर रजिस्टर

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

प्रोसेसर रजिस्टर आमतौर पर मेमोरी पदानुक्रम के शीर्ष पर होते हैं, और डेटा तक पहुंचने का सबसे तेज़ तरीका प्रदान करते हैं। शब्द सामान्य रूप से केवल आवंटन रजिस्टर करें  समूह को संदर्भित करता है जो सीधे निर्देश के हिस्से के रूप में एन्कोड किए जाते हैं, जैसा कि निर्देश सेट द्वारा परिभाषित किया गया है। हालांकि, आधुनिक उच्च-प्रदर्शन सीपीयू में अक्सर इन आर्किटेक्चरल रजिस्टरों के डुप्लिकेट होते हैं ताकि रजिस्टर का नाम बदलकर प्रदर्शन में सुधार किया जा सके, समानांतर और  सट्टा निष्पादन  की अनुमति दी जा सके। आधुनिक x 86  डिज़ाइन ने इन तकनीकों को 1995 के आसपास  Pentium Pro,  Cyrix 6x86 ,  Nx586 , और  AMD K5  के रिलीज़ के साथ हासिल किया।

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

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

प्रकार
एक प्रोसेसर में अक्सर कई प्रकार के रजिस्टर होते हैं, जिन्हें उनकी सामग्री या उन पर काम करने वाले निर्देशों के अनुसार वर्गीकृत किया जा सकता है:


 * उपयोगकर्ता-सुलभ रजिस्टर मशीन निर्देशों द्वारा पढ़ा या लिखा जा सकता है। उपयोगकर्ता-सुलभ रजिस्टरों का सबसे आम विभाजन डेटा रजिस्टरों और पता रजिस्टरों में है।
 * Data registers डेटा (कंप्यूटिंग)  जैसे  पूर्णांक (कंप्यूटर विज्ञान)  और, कुछ आर्किटेक्चर में, फ्लोटिंग-पॉइंट मान, साथ ही वर्ण (कंप्यूटिंग), छोटे बिट सरणियाँ और अन्य डेटा धारण कर सकता है। कुछ पुराने आर्किटेक्चर में, जैसे  आईबीएम 704,  आईबीएम 709  और उत्तराधिकारी,  पीडीपी-1 ,  पीडीपी-4 / पीडीपी-7 / पीडीपी-9 / पीडीपी-15 ,  पीडीपी-5 / पीडीपी-8 , और  एचपी 2100 , एक विशेष डेटा रजिस्टर जिसे  संचायक (कंप्यूटिंग)  के रूप में जाना जाता है, का उपयोग कई कार्यों के लिए परोक्ष रूप से किया जाता है।
 * Address registers  मेमोरी एड्रेस को होल्ड करता है और उन निर्देशों द्वारा उपयोग किया जाता है जो अप्रत्यक्ष रूप से प्राथमिक मेमरी  तक पहुंचते हैं।
 * कुछ प्रोसेसर में रजिस्टर होते हैं जिनका उपयोग केवल एक पता रखने के लिए या केवल संख्यात्मक मान रखने के लिए किया जा सकता है (कुछ मामलों में एक सूचकांक रजिस्टर  के रूप में उपयोग किया जाता है जिसका मूल्य किसी पते से ऑफसेट के रूप में जोड़ा जाता है); अन्य रजिस्टरों को किसी भी प्रकार की मात्रा रखने की अनुमति देते हैं। एक ऑपरेंड के प्रभावी पते को निर्दिष्ट करने के लिए उपयोग किए जाने वाले संभावित  एड्रेसिंग मोड  की एक विस्तृत विविधता मौजूद है।
 * स्टेक सूचक का उपयोग  रन-टाइम स्टैक  को प्रबंधित करने के लिए किया जाता है। शायद ही, अन्य  स्टैक (डेटा संरचना)  को समर्पित पता रजिस्टरों द्वारा संबोधित किया जाता है ( ढेर मशीन  देखें)।
 * सामान्य प्रयोजन के रजिस्टर (जीपीआर') डेटा और पते दोनों को स्टोर कर सकते हैं, यानी, वे संयुक्त डेटा/पता रजिस्टर हैं; कुछ आर्किटेक्चर में, रजिस्टर फाइल  एकीकृत'' होती है ताकि जीपीआर  चल बिन्दु संख्या ों को भी स्टोर कर सके।
 *  स्थिति रजिस्टर  सत्य मान रखता है जो अक्सर यह निर्धारित करने के लिए उपयोग किया जाता है कि कुछ निर्देश निष्पादित किया जाना चाहिए या नहीं।
 * Floating-point registers (FORs) कई आर्किटेक्चर में चल बिन्दु संख्या  स्टोर करते हैं।
 * निरंतर (कंप्यूटर प्रोग्रामिंग) रजिस्टर केवल-पढ़ने के लिए मान रखता है जैसे शून्य, एक, या अनुकरणीय आई।
 *  सिंगल इंस्ट्रक्शन, मल्टीपल डेटा इंस्ट्रक्शन (सिंगल इंस्ट्रक्शन, मल्टीपल डेटा) द्वारा किए गए वेक्टर प्रोसेसर के लिए डेटा होल्ड करें।
 * विशेष प्रयोजन के रजिस्टर (एसपीआर) कार्यक्रम की स्थिति को पकड़ें; उनमें आमतौर पर कार्यक्रम गणक, जिसे इंस्ट्रक्शन पॉइंटर भी कहा जाता है, और स्टेटस रजिस्टर शामिल होते हैं; प्रोग्राम काउंटर और स्टेटस रजिस्टर को  कार्यक्रम की स्थिति शब्द  (PSW) रजिस्टर में जोड़ा जा सकता है। उपरोक्त स्टैक पॉइंटर को कभी-कभी इस समूह में भी शामिल किया जाता है। एंबेडेड माइक्रोप्रोसेसरों में विशेष हार्डवेयर तत्वों के अनुरूप रजिस्टर भी हो सकते हैं।
 * कुछ आर्किटेक्चर में, मॉडल-विशिष्ट रजिस्टर (जिसे मशीन-विशिष्ट रजिस्टर भी कहा जाता है) प्रोसेसर से संबंधित डेटा और सेटिंग्स को ही स्टोर करता है। चूंकि उनके अर्थ एक विशिष्ट प्रोसेसर के डिजाइन से जुड़े होते हैं, इसलिए उनसे प्रोसेसर पीढ़ियों के बीच मानक बने रहने की उम्मीद नहीं की जा सकती है।
 *  मेमोरी टाइप रेंज रजिस्टर  (''एमटीआरआर')
 * आंतरिक रजिस्टर - निर्देश द्वारा पहुंच योग्य नहीं है, प्रोसेसर संचालन के लिए आंतरिक रूप से उपयोग किया जाता है।
 *  निर्देश रजिस्टर , वर्तमान में निष्पादित किए जा रहे निर्देश को धारण करता है।
 * यादृच्छिक अभिगम स्मृति से जानकारी प्राप्त करने से संबंधित रजिस्टर, सीपीयू से अलग चिप्स पर स्थित स्टोरेज रजिस्टरों का एक संग्रह:
 *  मेमोरी बफर रजिस्टर  (एमबीआर), जिसे मेमोरी डेटा रजिस्टर (एमडीआर) के रूप में भी जाना जाता है।
 *  मेमोरी एड्रेस रजिस्टर  (MAR)
 * वास्तुकला रजिस्टर - एमआईपीएस वास्तुकला  द्वारा परिभाषित सॉफ्टवेयर को दिखाई देने वाले रजिस्टर भौतिक हार्डवेयर के अनुरूप नहीं हो सकते हैं, यदि अंतर्निहित हार्डवेयर द्वारा रजिस्टर का नामकरण किया जा रहा है।

हार्डवेयर रजिस्टर समान होते हैं, लेकिन सीपीयू के बाहर होते हैं।

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

उदाहरण
निम्न तालिका कई मुख्यधारा के सीपीयू आर्किटेक्चर में रजिस्टरों की संख्या दिखाती है। ध्यान दें कि x86-संगत प्रोसेसर में स्टैक पॉइंटर (ESP) को एक पूर्णांक रजिस्टर के रूप में गिना जाता है, भले ही सीमित संख्या में निर्देश हों जिनका उपयोग इसकी सामग्री पर संचालित करने के लिए किया जा सकता है। अधिकांश आर्किटेक्चर पर समान चेतावनी लागू होती है।

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

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

यह भी देखें

 * सीपीयू कैश
 * पंजीकरण आवंटन
 * रजिस्टर फाइल
 * शिफ्ट का रजिस्टर

संदर्भ
==