प्रक्रमक रजिस्टर

एक प्रोसेसर रजिस्टर कंप्यूटर के प्रोसेसर के लिए उपलब्ध एक जल्दी सुलभ स्थान है। रजिस्टरों में आमतौर पर थोड़ी मात्रा में फास्ट स्टोरेज होता है, हालांकि कुछ रजिस्टरों में विशिष्ट हार्डवेयर फ़ंक्शन होते हैं, और केवल पढ़ने या केवल लिख सकते हैं। कंप्यूटर आर्किटेक्चर में, रजिस्टरों को आमतौर पर मुख्य मेमोरी के अलावा अन्य तंत्रों द्वारा संबोधित किया जाता है, लेकिन कुछ मामलों में मेमोरी पता सौंपा जा सकता है उदा। DEC PDP-10, ICT 1900 श्रृंखला | ICT 1900

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

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

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

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

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


 *  उपयोगकर्ता-सुलभ रजिस्टर  मशीन निर्देशों द्वारा पढ़ा या लिखा जा सकता है।उपयोगकर्ता-सुलभ रजिस्टरों का सबसे आम विभाजन डेटा रजिस्टर और पते रजिस्टरों में है।
 * Data registerS  Numeric डेटा मानों जैसे कि पूर्णांक और, कुछ आर्किटेक्चर, फ्लोटिंग-पॉइंट मानों, साथ ही वर्ण, छोटे बिट सरणियों और अन्य डेटा को पकड़ सकता है।कुछ पुराने मेंऔर लो-एंड सीपीयू, एक विशेष डेटा रजिस्टर, जिसे संचायक के रूप में जाना जाता है, का उपयोग कई कार्यों के लिए स्पष्ट रूप से किया जाता है।
 * Address registerS  पते पकड़ते हैं और उन निर्देशों द्वारा उपयोग किए जाते हैं जो अप्रत्यक्ष रूप से प्राथमिक मेमोरी तक पहुंचते हैं।
 * कुछ प्रोसेसर में ऐसे रजिस्टर होते हैं जिनका उपयोग केवल एक पते को रखने के लिए या केवल संख्यात्मक मान रखने के लिए किया जा सकता है (कुछ मामलों में एक इंडेक्स रजिस्टर के रूप में उपयोग किया जाता है जिसका मान कुछ पते से ऑफसेट के रूप में जोड़ा जाता है);अन्य लोग रजिस्टरों को या तो तरह की मात्रा को धारण करने की अनुमति देते हैं।संभावित पते वाले मोड की एक विस्तृत विविधता, एक ऑपरेटर के प्रभावी पते को निर्दिष्ट करने के लिए उपयोग किया जाता है, मौजूद है।
 * स्टैक पॉइंटर का उपयोग रन-टाइम स्टैक को प्रबंधित करने के लिए किया जाता है।शायद ही, अन्य डेटा स्टैक को समर्पित एड्रेस रजिस्टरों (स्टैक मशीन देखें) द्वारा संबोधित किया जाता है।
 *  सामान्य-उद्देश्य रजिस्टर  ( जीपीआर ') डेटा और पते दोनों को संग्रहीत कर सकते हैं, अर्थात, वे संयुक्त डेटा/पता रजिस्टर हैं;कुछ आर्किटेक्चर में, रजिस्टर फाइल  यूनिफाइड '' है ताकि जीपीआरएस फ्लोटिंग-पॉइंट नंबरों को भी स्टोर कर सके।
 *  स्टेटस रजिस्टर  सत्य मूल्यों को पकड़ते हैं जो अक्सर यह निर्धारित करने के लिए उपयोग किए जाते हैं कि कुछ निर्देशों को निष्पादित किया जाना चाहिए या नहीं किया जाना चाहिए।
 * Floating-point registerS  ('' के लिए) कई आर्किटेक्चर में फ्लोटिंग पॉइंट नंबर स्टोर करें।
 *  निरंतर रजिस्टर  केवल शून्य, एक, या पाई जैसे पढ़ने के मूल्यों को पकड़ते हैं।
 *  एकल निर्देश, एकाधिक डेटा द्वारा किए गए वेक्टर प्रसंस्करण के लिए डेटा पकड़ें। SIMD निर्देश (एकल निर्देश, एकाधिक डेटा)।
 *  विशेष-उद्देश्य रजिस्टर  ('' spr ') होल्ड प्रोग्राम स्टेट; वे आमतौर पर प्रोग्राम काउंटर को शामिल करते हैं, जिसे इंस्ट्रक्शन पॉइंटर भी कहा जाता है, और स्टेटस रजिस्टर; प्रोग्राम काउंटर और स्टेटस रजिस्टर को प्रोग्राम स्टेटस वर्ड (PSW) रजिस्टर में जोड़ा जा सकता है। उपरोक्त स्टैक पॉइंटर को कभी -कभी इस समूह में भी शामिल किया जाता है। एम्बेडेड माइक्रोप्रोसेसरों में विशेष हार्डवेयर तत्वों के अनुरूप रजिस्टर भी हो सकते हैं।
 * कुछ आर्किटेक्चर में,  मॉडल-विशिष्ट रजिस्टर  (जिसे  मशीन-विशिष्ट रजिस्टर  भी कहा जाता है) को प्रोसेसर से संबंधित डेटा और सेटिंग्स स्टोर करें। क्योंकि उनके अर्थ एक विशिष्ट प्रोसेसर के डिजाइन से जुड़े होते हैं, इसलिए उनसे प्रोसेसर पीढ़ियों के बीच मानक बने रहने की उम्मीद नहीं की जा सकती है।
 *  मेमोरी टाइप रेंज रजिस्टर  ('' एमटीआरआर ')
 *  आंतरिक रजिस्टर  - रजिस्टर निर्देशों द्वारा सुलभ नहीं, प्रोसेसर संचालन के लिए आंतरिक रूप से उपयोग किया जाता है।
 *  इंस्ट्रक्शन रजिस्टर , वर्तमान में निष्पादित किए जा रहे निर्देश को पकड़े हुए।
 * रैम से जानकारी प्राप्त करने से संबंधित रजिस्टर, सीपीयू से अलग चिप्स पर स्थित भंडारण रजिस्टरों का एक संग्रह:
 *  मेमोरी बफर रजिस्टर  ( एमबीआर ), जिसे 'मेमोरी डेटा रजिस्टर'                   ''
 *  मेमोरी एड्रेस रजिस्टर  ('मार'                         '' '
 *  आर्किटेक्चरल रजिस्टर  - आर्किटेक्चर द्वारा परिभाषित सॉफ़्टवेयर के लिए दिखाई देने वाले रजिस्टर भौतिक हार्डवेयर के अनुरूप नहीं हो सकते हैं, यदि अंतर्निहित हार्डवेयर द्वारा किए जा रहे रजिस्टर का नामकरण किया जाता है।

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

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

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

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

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

यह भी देखें

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