यदि आप कंप्यूटर में विशेष रूप से रुचि नहीं रखते हैं, तो आपको यह मानने के लिए क्षमा किया जाएगा कि कंप्यूटर में मेमोरी के एकमात्र रूप हार्ड ड्राइव और रैम थे। आप में से जो लोग कंप्यूटर में रुचि रखते हैं, वे शायद जानते होंगे कि ऐसा नहीं है, और यह कि CPU में कैश का एक सेट भी होता है जो RAM से डेटा को कैश करने के लिए उपयोग किया जाता है ताकि CPU इसे एक्सेस कर सके और तेज। ये सभी विज्ञापित विशेषताएं हैं, मुख्यतः क्योंकि गति और/या क्षमता एक अच्छा विक्रय बिंदु है और आम तौर पर प्रदर्शन स्तरों को प्रभावित करती है।
हालांकि वास्तव में स्मृति की एक और परत है। जितना आप सोच सकते हैं कि L1 कैश वास्तविक प्रोसेसिंग कोर के जितना संभव हो उतना करीब है, मेमोरी पदानुक्रम में एक और उच्च परत है। ये सीपीयू रजिस्टर हैं। इनका वास्तव में विज्ञापन या उल्लेख नहीं करने का कारण यह है कि वे वास्तव में बिल्कुल भी नहीं बदले हैं। तकनीकी रूप से, वे हो सकते हैं, हालांकि, रजिस्टरों की संख्या और आकार वास्तव में वास्तुकला के लिए मौलिक है। इसका मतलब है कि सभी x86-64 CPU में रजिस्टरों की संख्या समान है। उनका विपणन नहीं किया जाता है क्योंकि वे एक प्रतिस्पर्धी बिंदु नहीं हैं।
एक रजिस्टर क्या करता है?
एक रजिस्टर प्रोसेसर के लिए जल्दी से उपलब्ध भंडारण स्थान है। शून्य विलंबता के साथ एक रजिस्टर तक पहुंच तत्काल है, जबकि एल 1 कैश में आधुनिक सीपीयू में लगभग 4-5 चक्र विलंबता है। एक्सेस की यह तात्कालिकता रजिस्टरों के उपयोग के मामले में संकेत देती है। सीपीयू द्वारा सक्रिय रूप से संचालित किए जा रहे निर्देशों को संग्रहीत करने के लिए रजिस्टरों का उपयोग किया जाता है। वे डेटा बिंदुओं को भी संग्रहीत करते हैं जिन्हें संसाधित किया जाना है। कुछ रजिस्टर सामान्य उद्देश्य होते हैं, जबकि अन्य का एक बहुत ही विशिष्ट उद्देश्य होता है। एक विशेष प्रयोजन रजिस्टर का एक उदाहरण प्रोग्राम काउंटर होगा, जहां प्रोसेसर अपने प्रोग्राम अनुक्रम में अपनी स्थिति को ट्रैक करता है।
कई रजिस्टरों को उपयोगकर्ता के लिए सुलभ माना जाता है। इसका मतलब यह नहीं है कि कंप्यूटर का उपयोगकर्ता चुन सकता है कि उनमें क्या मूल्य रखा जाए। इसका मतलब है कि चल रहा सॉफ्टवेयर इन रजिस्टरों में लोड किए जाने वाले डेटा को निर्दिष्ट कर सकता है। कम संख्या में रजिस्टर आंतरिक होते हैं, जिसका अर्थ है कि सॉफ्टवेयर उन्हें बिल्कुल भी संबोधित नहीं कर सकता है। निर्देश रजिस्टर, जो वर्तमान में निष्पादित किए जा रहे निर्देशों को संग्रहीत करता है, एक आंतरिक रजिस्टर का एक उदाहरण है।
नाम बदलकर रजिस्टर करें
जबकि एक सीपीयू आर्किटेक्चर केवल रजिस्टरों के एकल कॉन्फ़िगरेशन की अनुमति दे सकता है, वास्तव में इसमें थोड़ी सी बारीकियां हैं। सभी आधुनिक सीपीयू रजिस्टर के नामकरण का उपयोग करते हैं। यह एक ऐसी तकनीक है जहां आप अधिक भौतिक रजिस्टर रख सकते हैं और उनका उपयोग डेटा को प्री-लोड करने या आउट-ऑफ-ऑर्डर निर्देश से संबंधित डेटा स्टोर करने के लिए कर सकते हैं जो अन्यथा अधिलेखित हो जाता। जब सीपीयू इस बिंदु पर पहुंच जाता है कि उसे अतिरिक्त रजिस्टरों में डेटा की आवश्यकता होती है, तो वह इसका नाम बदल देता है ताकि यह पता करने योग्य हो, साथ ही साथ पहले से पता करने योग्य रजिस्टर को अप्राप्य बना सके।
आउट-ऑफ-ऑर्डर निष्पादन के लिए रजिस्टर का नाम बदलने की प्रक्रिया बहुत मददगार हो सकती है। उदाहरण के लिए, यदि किसी स्मृति स्थान को तब से पढ़ने के लिए प्रोग्राम किया गया है, और उस क्रम में निर्देश निष्पादित किए गए हैं तो यह ठीक है। यदि, हालांकि, निर्देशों को पहले लिखने के लिए पुन: व्यवस्थित किया जाता है, तो पढ़ने के निर्देश को गलत मान मिलेगा। इसे रोकने के लिए, पढ़ा जाने वाला मूल मान एक अप्रयुक्त रजिस्टर में संग्रहीत किया जाता है, जिसे संबंधित निर्देश संसाधित होने पर फिर से नाम दिया जाता है।
निष्कर्ष
मेमोरी पदानुक्रम में रजिस्टर उच्चतम स्तर हैं। वे सीपीयू द्वारा सीधे संबोधित करने योग्य एकमात्र हिस्सा हैं और कोई विलंबता नहीं है। सीपीयू द्वारा सक्रिय रूप से निष्पादित किए जा रहे डेटा को संग्रहीत करने के लिए रजिस्टरों का उपयोग किया जाता है। उनका उपयोग अन्य डेटा बिंदुओं को संग्रहीत करने के लिए भी किया जाता है जैसे कि प्रोग्राम काउंटर जो ट्रैक करता है कि कौन सा निर्देश निष्पादित किया जाना है। AVX-512 समर्थित होने के आधार पर 16 सामान्य प्रयोजन रजिस्टरों और 16 या 32 फ्लोटिंग पॉइंट रजिस्टरों वाले x86-64 आर्किटेक्चर के साथ बहुत सीमित संख्या में रजिस्टर उपलब्ध हैं।