पूर्णिमा लल्लन शर्मा फाउंडेशन · स्थापना 2021
PLS FoundationPLS FOUNDATIONज्ञान। सामर्थ्य। सेवा।

क्वांटम शर्मा · सिलिकॉन एटलस

CPU के भीतर: कोर, निर्देश और कैश

एक निर्देश को कंट्रोल, रजिस्टर और ALU से गुजरते देखें; फिर समझें कि कैश और मेमोरी के कनेक्शन प्रोसेसर तक डेटा कैसे पहुँचाते हैं।

सिलिकॉन एटलस का अध्ययन-वृक्ष →

CPU में साथ काम करने वाले भाग

सिलिकॉन एक पदार्थ है। CPU उस पदार्थ पर बने उपकरणों और कनेक्शन की डिज़ाइन की हुई प्रणाली है। इसके ट्रांज़िस्टर से गेट, डेटा सँभालने वाले सर्किट और बड़े भाग बनते हैं। कोर निर्देश चलाने वाला इंजन है; CPU उत्पाद में अनेक कोर और साझा सहायक हार्डवेयर हो सकते हैं।

बहु-कोर CPU और मुख्य मेमोरी का वैचारिक चित्रदो उदाहरण कोर इंटरकनेक्ट से साझा कैश और मेमोरी कंट्रोलर तक जुड़े हैं। DRAM दिखाई गई CPU सीमा के बाहर है।CPU की उदाहरण सीमाकोर 0कंट्रोल / डिकोडALU + रजिस्टरस्थानीय L1 कैशकोर 1कंट्रोल / डिकोडALU + रजिस्टरस्थानीय L1 कैशसाझा कैश का उदाहरणइंटरकनेक्ट: अनुरोध और डेटा का रास्तामेमोरी कंट्रोलरमुख्य मेमोरी की DRAM चिप
मूल वैचारिक चित्र; कनेक्शन और स्थान सरल किए गए हैं, यह चिप का भौतिक लेआउट नहीं है। छोटी स्क्रीन पर चित्र को दाएँ-बाएँ सरकाएँ।
भाग को उसके काम से समझें
भागउसका काम
कंट्रोल और डिकोडनिर्देश के बिट समझना और आवश्यक कार्यों को व्यवस्थित करना।
ALUपूर्णांक गणना, तुलना और बिट-स्तर लॉजिक करना। दशमलव गणना के लिए दूसरे निष्पादन भाग हो सकते हैं।
रजिस्टरगणना के मान, पते और बीच की अवस्था निष्पादन के पास रखना।
कैशनिर्देश और डेटा की चुनी प्रतियाँ रखकर धीमी मेमोरी तक पहुँच घटाना।

मूल स्रोत पढ़ें: Arm: CPU के घटक ↗ · Arm: एक कोर और कैश के घटक ↗

प्रोग्राम से निर्देश तक

कंपाइलर प्रोग्राम को इंस्ट्रक्शन-सेट आर्किटेक्चर (ISA) के निर्देशों में बदलता है। ISA सॉफ़्टवेयर को दिखाई देने वाली क्रियाएँ और अवस्था तय करता है। माइक्रोआर्किटेक्चर उसकी बनावट है: निर्देश कैसे डिकोड, शेड्यूल और निष्पादित होंगे तथा कौन-सी पाइपलाइन और कैश होंगे। समान ISA वाले दो CPU भीतर से अलग हो सकते हैं।

मूल स्रोत पढ़ें: Arm: आर्किटेक्चर और माइक्रोआर्किटेक्चर ↗

सीखने के लिए fetch → decode → execute → write back का रास्ता देखें। वास्तविक प्रोसेसर अनेक निर्देशों के ये चरण साथ चला सकता है। कुछ CPU शाखाओं का अनुमान लगाते हैं और तैयार क्रियाएँ क्रम बदलकर चलाते हैं; दूसरे सरल क्रमबद्ध डिज़ाइन उपयोग करते हैं। शिक्षण क्रम परिणाम समझाता है, हर क्लॉक में एक निर्देश पूरा होने का वादा नहीं करता।

मूल स्रोत पढ़ें: Arm: CPU के घटक ↗

रजिस्टर, SRAM कैश और DRAM अलग हैं

निर्देश रजिस्टरों का नाम लेकर या सीधे उनका उपयोग करते हैं। कैश मेमोरी की चुनी प्रतियाँ और उनके पते अपने-आप सँभालता है। मुख्य DRAM, CPU के आगे बड़ा कार्य-स्थान देती है। सामान्य कैश SRAM सेल उपयोग करते हैं; एक प्रचलित SRAM बिट सेल में छह ट्रांज़िस्टर होते हैं। पता चुनने, टैग, पढ़ने और सुरक्षा के लिए अतिरिक्त सर्किट होते हैं।

मूल स्रोत पढ़ें: UC Berkeley: SRAM सेल शोध, अध्याय 1 ↗

कैश hit में माँगी प्रति मिलती है; miss में अगला स्तर या मुख्य मेमोरी चाहिए। L1 प्रायः कोर के पास होता है; आगे के कैश की बनावट बदल सकती है। अनेक कोर को coherence प्रणाली चाहिए हो सकती है, ताकि कैश की प्रतियाँ प्रणाली के मेमोरी नियम मानें। कोर संख्या के साथ कैश क्षमता, पास के डेटा का पुनःउपयोग और पहुँच का क्रम भी मायने रखते हैं।

मूल स्रोत पढ़ें: Arm: एक कोर और कैश के घटक ↗

कोर को आसपास की प्रणाली चाहिए

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

मूल स्रोत पढ़ें: Arm: एक कोर और कैश के घटक ↗ · Micron: SDRAM और DDR मेमोरी ↗

भौतिक कोर और सॉफ़्टवेयर थ्रेड भी अलग हैं। थ्रेड अपने निष्पादन संदर्भ वाला निर्देशों का क्रम है। हार्डवेयर मल्टीथ्रेडिंग में एक कोर कई संदर्भ रख सकता है और कुछ निष्पादन संसाधन साझा कर सकता है। इसलिए दिखाई गई थ्रेड संख्या दोगुनी होने से स्वतंत्र हार्डवेयर अपने-आप दोगुना नहीं होता।

मूल स्रोत पढ़ें: Arm: CPU के घटक ↗

हल किया उदाहरण: दो सहेजी संख्याएँ जोड़ें

एक छोटे शिक्षण CPU में मेमोरी x = 5 और y = 7 मानें। नीचे के प्रतीकात्मक निर्देश सीखने के लिए बनाए गए हैं, ये किसी वास्तविक ISA का पूरा विवरण नहीं हैं। हर पंक्ति उस क्रिया के बाद अपेक्षित दिखाई देने वाली अवस्था बताती है।

चार चरण में जोड़ का रास्ता
क्रियाक्रिया के बाद अवस्था
LOAD R1, [x]R1 = 5; मेमोरी के स्तरों से x का मान लें।
LOAD R2, [y]R2 = 7।
ADD R3, R1, R2गणना भाग R3 = 12 बनाता है।
STORE [z], R3मेमोरी प्रणाली को z में 12 लिखने का अनुरोध मिलता है।

तीन आसान लेकिन गलत निष्कर्ष

  • “अधिक GHz हमेशा बेहतर है।” क्लॉक आवृत्ति केवल एक पहलू है; निर्देश का काम, मेमोरी का इंतज़ार और कार्य भी मायने रखते हैं।
  • “हर ट्रांज़िस्टर एक ALU है।” बहुत-से ट्रांज़िस्टर बिट सँभालते या डेटा का रास्ता नियंत्रित करते हैं।
  • “CPU केवल सिलिकॉन पर जोड़ा सॉफ़्टवेयर है।” सॉफ़्टवेयर चलने से पहले भौतिक सर्किट में आवश्यक लॉजिक, अवस्था और इंटरफ़ेस बने होने चाहिए।

मूल स्रोत पढ़ें: Arm: CPU के घटक ↗ · Arm: आर्किटेक्चर और माइक्रोआर्किटेक्चर ↗

अनुमान लगाएँ, फिर छोटा भाग बनाएँ

समझ को प्रोजेक्ट से जोड़ें

पहले ऐसा एक भाग चुनें जिसे आप समझा और जाँच सकें। डिज़ाइन बढ़ाने से पहले इनपुट, अपेक्षित आउटपुट और सीमाएँ नोटबुक में लिखें।

एक लॉजिक भाग बनाएँ

चयनकर्ता या हाफ ऐडर बनाकर इनपुट का हर संयोजन जाँचें।

लॉजिक लैब खोलें →

बनाने का रास्ता जानें

जानें कि जाँचा डिज़ाइन लेआउट, निर्माण प्रक्रिया और असली हार्डवेयर तक कैसे पहुँचता है।

बनाना समझें →

ट्रांज़िस्टर, बाइनरी जोड़ या CPU निर्देश का मॉडल आजमाएँ →