2010-08-19 16 views
15

रजिस्टर चर त्वरित पहुंच प्राप्त करने के लिए एक प्रसिद्ध तरीका हैं (register int i)। लेकिन पदानुक्रम के शीर्ष पर पंजीयक क्यों हैं (रजिस्टरों, कैश, मुख्य स्मृति, माध्यमिक स्मृति)? रजिस्टरों तक इतनी तेजी से पहुंचने वाली सभी चीजें क्या हैं?सीपीयू रजिस्टरों का उपयोग क्यों तेजी से कर रहे हैं?

+4

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

+0

एक रजिस्टर सीधे सीपीयू में संग्रहीत किया जाता है! – NoName

+0

एएलयू पर अधिक जानकारी: https: //en.wikipedia।संगठन/विकी/Arithmetic_logic_unit –

उत्तर

9

रजिस्टर्स सीपीयू का मुख्य हिस्सा हैं, और सीपीयू के अधिकांश निर्देश सेट को मेमोरी स्थानों की बजाय रजिस्टरों के खिलाफ काम करने के लिए तैयार किया जाएगा। एक रजिस्टर के मूल्य तक पहुंचने के लिए आमतौर पर बहुत कम घड़ी चक्र (संभवतः 1) की आवश्यकता होती है, जैसे ही स्मृति का उपयोग किया जाता है, चीजें अधिक जटिल होती हैं और कैश नियंत्रक/मेमोरी बसें शामिल होती हैं और ऑपरेशन में काफी समय लग रहा है।

1

रजिस्टर्स अनिवार्य रूप से आंतरिक CPU मेमोरी हैं। तो रजिस्टरों तक पहुंच किसी अन्य प्रकार की मेमोरी एक्सेस की तुलना में आसान और तेज होती है।

19

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

register सी में कीवर्ड कुछ भी उपयोगी नहीं है और आपको इसका उपयोग नहीं करना चाहिए। संकलक निर्णय लेता है कि रजिस्टरों और कब में चर क्या होना चाहिए।

+2

वायरस (और एमयूएक्स) निष्पादन इकाइयों को सीधे एक-दूसरे से जोड़ने के लिए अग्रेषण या बाईपास नेटवर्क कहा जाता है, क्योंकि यह रजिस्ट्रारों को लिखने के लिए विलंबता को छोड़ देता है और फिर रजिस्टर फ़ाइल से पढ़ता है। इस प्रकार एक 'add' निर्देश में एक पाइपलाइन सीपीयू में भी 1 सी विलंबता हो सकती है। (देखें [विकिपीडिया की क्लासिक आरआईएससी पाइपलाइन] (https://en.wikipedia.org/wiki/Classic_RISC_pipeline#Solution_A._Bypassing) आलेख। विचार आउट-ऑफ-ऑर्डर सुपरस्काकर सीपीयू में भी वही है, लेकिन एकाधिक निष्पादन इकाइयां एक दूसरे के समानांतर में अग्रेषित करें।) –

0

प्रत्येक माइक्रोकंट्रोलर के पास बिल के रूप में एक सीपीयू है, जिसमें एएलयू के बुनियादी घटक हैं, कुछ रैम के साथ-साथ इसके संचालन में सहायता के लिए स्मृति के अन्य रूप भी हैं। रैम वह है जिसे आप मुख्य स्मृति के रूप में संदर्भित कर रहे हैं।

एएलयू सभी आर्थिमेटिक लॉजिकल ऑपरेशंस को संभालने और इन गणनाओं को करने के लिए किसी भी ऑपरेंड पर काम करने के लिए, यह ऑपरेटरों को रजिस्टरों में लोड करता है, इन पर संचालन करता है, और फिर आपका प्रोग्राम सीधे इन रजिस्टरों में संग्रहीत परिणाम तक पहुंचता है या परोक्ष रूप से।

चूंकि पंजीयक सीपीयू (ए.के.ए. आपके प्रोसेसर का मस्तिष्क) के दिल के सबसे नज़दीक हैं, इसलिए वे श्रृंखला में अधिक होते हैं और सीधे रजिस्टरों पर किए गए अभ्यास संचालन कम से कम घड़ी चक्र लेते हैं।

1

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

एक मशीन जो एक छोटी तेज़ रजिस्टर फ़ाइल से अधिकतर जानकारी अनुरोधों को संभाल सकती है, वह सब से अधिक तेज होगी जो सब कुछ के लिए धीमी स्मृति का उपयोग करती है।

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