CPU कैश मेमोरी इतनी तेज़ क्यों है?


58

CPU कैश मेमोरी को मुख्य मेमोरी की तुलना में बहुत तेज क्या बनाता है? मैं एक tiered कैश सिस्टम में कुछ लाभ देख सकते हैं। यह समझ में आता है कि एक छोटा कैश खोज करने के लिए तेज़ है। लेकिन इसमें और भी बहुत कुछ होना चाहिए।


2
मुख्य स्मृति से आपका क्या तात्पर्य है ?
marcocs

1
@marcocs स्पष्टता के लिए संपादित किया गया। मैं सीपीयू कैश मेमोरी और मुख्य सिस्टम मेमोरी, यानी अधिकांश मदरबोर्ड पर हटाने योग्य डिम की बात कर रहा हूं।
ConditionRacer


2
@ratchetfreak उह ... ओपी स्पष्ट रूप से एक अनुमानित कारण के लिए पूछ रहा है, अंतिम कारण नहीं।
काइल स्ट्रैंड

1
वाह मुझे नहीं लगता था कि मैं कभी अपने कंप्यूटर इंजीनियरिंग की डिग्री का उपयोग करूंगा। स्वीकृत उत्तर वास्तव में एक उत्तर नहीं है। ऐसा इसलिए है क्योंकि सीपीयू कैश बहुत अधिक क्लॉक रेट (सीपीयू क्लॉक रेट, 4 जीएचजेड के आसपास) पर संचालित होता है, जबकि मुख्य मेमोरी बस क्लॉक रेट (लगभग 1600 मेगाहर्ट्ज) पर संचालित होती है। इतना ही नहीं, लेकिन सीपीयू कैश 4 घड़ी चक्रों में पढ़ सकता है, लेकिन सिस्टम रैम 100 सिस्टम घड़ी चक्र ले सकता है। इसके अलावा, सिस्टम रैम में डिस्क या नेटवर्क जैसे अन्य बाह्य उपकरणों के साथ विवाद है, जबकि सीपीयू कैश समर्पित है। तार जितना लंबा होगा, घड़ी की गति उतनी धीमी हो सकती है। smallurl.com/zkdsstd
च्लोए

जवाबों:


115

सीपीयू कैश के मामले में, यह तेज़ है क्योंकि यह प्रोसेसर के समान ही मर जाता है। दूसरे शब्दों में, अनुरोधित डेटा को प्रोसेसर पर नहीं होना चाहिए; यह पहले से ही है।

हार्ड ड्राइव पर कैश के मामले में, यह तेज़ है क्योंकि यह ठोस स्थिति मेमोरी में है, और अभी भी घूमने वाले प्लैटर्स पर नहीं है।

एक वेब साइट पर कैश के मामले में, यह तेज़ है क्योंकि डेटा पहले ही डेटाबेस से पुनर्प्राप्त कर लिया गया है (जो, कुछ मामलों में, दुनिया में कहीं भी स्थित हो सकता है)।

तो यह स्थानीयता के बारे में है , ज्यादातर। कैश डेटा ट्रांसफर स्टेप को खत्म करता है ।

स्थानीयता डेटा को कहने का एक शानदार तरीका है जो समय या स्थान में "एक साथ करीब" है। एक छोटी, तेज़ (लेकिन आमतौर पर अधिक महंगी) मेमोरी के साथ कैशिंग करना काम करता है क्योंकि आम तौर पर समग्र डेटा की अपेक्षाकृत कम मात्रा वह डेटा होता है जिसे सबसे अधिक बार एक्सेस किया जा रहा है।

विकिपीडिया पर आगे पढ़ना
कैश (कम्प्यूटिंग)


29
मुझे लगता है कि यह एक अच्छा जवाब है। हालांकि, यह जोड़ने लायक है कि कैश के लिए एक लागत पदानुक्रम भी है: नेटवर्क भंडारण स्थानीय हार्ड ड्राइव की तुलना में सस्ता है, जो रैम की तुलना में सस्ता है, जो ऑन-सीपीयू कैश की तुलना में बहुत सस्ता है। यदि यह इस के लिए नहीं था, तो हम सिर्फ 120GB मेमोरी ऑन-चिप के साथ CPU बना सकते हैं, और इसके साथ किया जाएगा।
चार्ल्स ई। ग्रांट

1
@ कोंडरिशनर: समान कारण। L1 तेज है, लेकिन अधिक महंगा है, इसलिए वे आपको थोड़ा महंगा L1 देते हैं, और कम महंगे, लेकिन धीमे L2 के अधिक। Stackoverflow.com/questions/3699582/…
रॉबर्ट हार्वे

9
"L1 की तुलना में L1 क्यों तेज है" - यह सवाल प्रोग्रामर्स के लिए टॉपिक बन जाता है। ई।, और इलेक्ट्रॉनिक्स से पूछा जाना चाहिए।
ईएस

5
@ConditionRacer IIRC, यह मेमोरी को लागू करने के लिए उपयोग की जाने वाली तकनीक के साथ करना है। मुझे लगता है कि L2 ऑन-चिप DRAM है, जबकि L1 SRAM या ऐसा ही कुछ है; बहुत अधिक महंगा है, लेकिन बहुत तेजी से। सीपीयू डिज़ाइन में काम करने के बाद से यह एक दशक से अधिक है ...
डोनल फेलो

4
@ चार्ल्स.ग्रंथ: जबकि लागत पदानुक्रम एक अच्छा उदाहरण है, एक और कारण है कि हमारे पास 120 जीबी ऑन-चिप कैश नहीं है: बड़ी मेमोरी को संबोधित करने के लिए बड़े पते की आवश्यकता होती है, इसलिए या तो बड़े निर्देश या अधिक सीपीयू चक्र। तो सबसे तेज़ होने के लिए, रजिस्टरों की संख्या अपेक्षाकृत कम रहने की आवश्यकता है। बेशक, कोई भी रजिस्टरों के अलावा ऑन-चिप मेमोरी हो सकता है , लेकिन सबसे तेज टियर को छोटा ही रहना होगा, अन्यथा यह अब तेजी से नहीं होगा।
vsz

33

यह तेज है क्योंकि यह करीब है और क्योंकि यह SRAM है DRAM नहीं।

SRAM है और DRAM की तुलना में काफी तेज हो सकता है क्योंकि मानों को सांख्यिकीय रूप से ( S RAM में S ) रखा जाता है, इसलिए उन्हें ताज़ा नहीं करना पड़ता है जो चक्र को दूर ले जाता है। DRAM गतिशील है, छोटे रिचार्जेबल बैटरी की तरह, आपको नियमित रूप से रिचार्ज करना होगा ताकि वे दूर न जाएं और शून्य हो जाएं। यह चक्र का समय चुराता है इसके अलावा आपको बिट्स कैसे एक्सेस करना है, आदि।

प्रोसेसर के पास या उससे कम उम्र में ही मरने के कारण, राउंड ट्रिप कम हो जाती है, L1 और L2 दोनों एक्सेस के नजरिए से DRAM से तेज हैं।

SRAM सेब की तुलना में DRAM द्वारा लिए गए सेब की तुलना में अधिक तेज़ है, और कैश आमतौर पर चिप या नज़दीकी या तेज़ ब्रास पर होता है, जो DRAM की तुलना में पहुँच के समय को तेज़ बनाता है।


1
SRAM भी अधिक शक्ति-भूख प्रति बिट है, इसलिए आपको इसमें रेडिएटर जोड़ना होगा, और बैटरी-संचालित कुछ भी भुगतना होगा।
9000

1
इस तथ्य का उल्लेख नहीं है कि SRAM को बड़ा बनाने से यह धीमा हो जाता है।
डार्कहॉग

सहमत, अधिक शक्ति, और अन्य श्रम के सापेक्ष धीमी। मुझे लगता है कि यह श्रम के लिए प्रति बिट 4 ट्रांजिस्टर और नाटक के लिए प्रति बिट 1 है। नाटक गर्भ में समाई पर निर्भर करता है, जहां श्रम अच्छे पुराने जमाने के तर्क पर निर्भर करता है। इसलिए आपको हर समय उन सभी ट्रांजिस्टर को शक्ति देना होगा और न केवल आवधिक रूप से चार्ज करना चाहिए।
Old_timer

4
आमतौर पर कैश में SRAM 6T है, 4T नहीं। इसके अलावा, SRAM (निश्चित रूप से 6T वेरिएंट) अधिक ऊर्जा कुशल है। डीआरएएम में वास्तविक शक्ति आकर्षित ताज़ा चक्र है, और एसआरएएम को इसकी आवश्यकता नहीं है। SRAM ट्रांजिस्टर स्विच करते समय बिजली खींचता है, DRAM कैपेसिटर हर समय लीक होता है। यदि आप DRAM की टपका हुआ टोपी की जगह लेते हैं, तो आप EEPROM के साथ समाप्त होते हैं, लेकिन यह तेज़ नहीं है: यदि चार्ज के लिए लीक करना कठिन है, तो इसे सामान्य तरीके से निकालना भी मुश्किल है।
एमएसल्टर्स

यदि वे खुले या बंद अवस्था में हैं, तो @dwelch CMOS FETs बिजली की निकासी नहीं करते हैं, इसलिए बिजली की खपत के बारे में तर्क अमान्य है। इसके अलावा, यह सीएमओएस लॉजिक स्विचिंग है, जो सीपीयू को अपनी अधिकांश शक्ति - मध्यवर्ती स्थिति (गैर -1 और गैर-0) में वर्तमान चोटियों को नाली बना देता है, इसलिए स्थिति विपरीत है जो आप कहते हैं :)
रुस्लान

21

स्पष्ट रूप से उल्लेख किया जाना चाहिए कि एक चीज प्रकाश की गति का प्रभाव है। में इस वीडियो को अनुग्रह हूपर एक फुट लंबी है, जो कितनी दूर एक विद्युत संकेत nanosecond एक में यात्रा कर सकते हैं * है के बारे में तार का एक टुकड़ा पता चलता है। यदि सीपीयू 3 जीएचजेड पर काम कर रहा है, तो इसका मतलब है कि प्रति घड़ी चक्र की दूरी 4 "है। यह मेमोरी एक्सेस स्पीड के लिए एक कठिन शारीरिक सीमा है। सीपीयू के करीब होने (एल 1 कैश के रूप में) का एक बड़ा हिस्सा यह अनुमति देता है। याददाश्त तेज होना।

EDIT * वास्तव में एक वैक्यूम में कितनी दूर तक यात्रा कर सकता है, तांबा / सिलिकॉन के माध्यम से दूरी कम है।


2
तांबे के लिए कठोर सीमा। यह एक अच्छा बिंदु है, हालांकि, मैंने इस बात पर विचार नहीं किया कि आधुनिक प्रोसेसर कितने हास्यास्पद हैं।
ConditionRacer

@ कोंडिशनरेज़र मैंने अभी एक सुधार जोड़ा है, 11.8 इंच एक वैक्यूम में हल्का है।
मैथ्यू फिनेले

2
आपको उस नंबर को आधा करने की आवश्यकता है क्योंकि आपको स्मृति को पुनः प्राप्त करने के लिए एक गोल-यात्रा की आवश्यकता है। तो यह वैक्यूम में विलंबता के प्रति चक्र के प्रति केवल 5 सेमी नहीं 10 सेमी है ।
कोडइन्चोअर्स

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

5

अन्य उत्तर पहले से ही सभी प्रासंगिक बिट्स को कवर करते हैं: स्थानीयता (और संबंधित डेटा ट्रांसफर लागत, बस की चौड़ाई और घड़ी, और इसी तरह); प्रकाश की गति (फिर से, स्थानांतरण लागत और बस की चौड़ाई और थ्रूपुट से जुड़ी); विभिन्न स्मृति प्रौद्योगिकी (SRAM बनामDRAM)। यह सब लागत / प्रदर्शन संतुलन की रोशनी में देखा गया ।

एक बिट जो छोड़ दिया गया था और यह सिर्फ डार्कहॉग टिप्पणी में उल्लिखित है: बड़े कैश में बेहतर हिट दर लेकिन अधिक विलंबता है। कैश के कई स्तर जहां इस ट्रेडऑफ को संबोधित करने के लिए पेश किए गए हैं।

इलेक्ट्रॉनिक्स एसई पर इस बिंदु पर एक उत्कृष्ट सवाल और जवाब है

जवाबों से, यह मुझे लगता है कि हाइलाइट किया जाने वाला एक बिंदु है: एक तर्क जो कैश रीड के लिए सभी आवश्यक संचालन करता है, वह इतना आसान नहीं है (विशेषकर अगर कैश सेट-एसोसिएटिव है, जैसे अधिकांश कैश आज)। इसके लिए द्वार, और तर्क की आवश्यकता होती है। इसलिए, भले ही हम लागत और मरने के स्थान से इनकार करते हैं

यदि कोई हास्यास्पद रूप से बड़े एल 1 कैश को लागू करने की कोशिश करेगा, तो तर्क जो कैश रीड के लिए सभी आवश्यक संचालन करता है, वह भी बड़ा हो जाएगा। कुछ बिंदु पर, इस सभी तर्क के माध्यम से प्रसार में देरी बहुत लंबी होगी और जो ऑपरेशन पहले से एक ही घड़ी चक्र ले चुके थे, उन्हें कई घड़ी चक्रों में विभाजित करना होगा। यह विलंबता को बढ़ाएगा।


5

अन्य उत्तरों में बहुत सारे अच्छे अंक उठाए गए हैं, लेकिन एक कारक गायब प्रतीत होता है: पता डिकोडिंग विलंबता।

निम्नलिखित एक विशाल ओवरसाइम्प्लीफिकेशन है कि मेमोरी एड्रेस डिकोडिंग कैसे काम करता है, लेकिन यह एक अच्छा विचार देता है कि बड़े DRAM चिप्स आमतौर पर बहुत धीमे क्यों होते हैं।

जब प्रोसेसर को मेमोरी एक्सेस करने की आवश्यकता होती है, तो यह उस विशिष्ट शब्द का चयन करने के लिए मेमोरी चिप को एक कमांड भेजता है जिसे वह उपयोग करना चाहता है। इस कमांड को एक कॉलम एड्रेस सिलेक्ट कहा जाता है (हम अभी के लिए पंक्ति पतों की उपेक्षा करेंगे)। मेमोरी चिप को अब अनुरोध किए गए कॉलम को सक्रिय करना होगा, जो यह करता है कि एक एकल लिखने के लिए तर्क गेट्स के एक झरने के नीचे पता भेजकर जो स्तंभ में सभी कोशिकाओं से जुड़ता है। यह कैसे लागू किया जाता है इसके आधार पर, प्रत्येक बिट पते के लिए एक निश्चित मात्रा में देरी होगी, जब तक कि परिणाम दूसरे छोर से नहीं निकलता। इसे मेमोरी का CAS लेटेंसी कहा जाता है। क्योंकि उन बिट्स की क्रमिक रूप से जांच की जानी है, यह प्रक्रिया एक प्रोसेसर चक्र की तुलना में बहुत अधिक समय लेती है (जिसके लिए प्रतीक्षा करने के लिए आमतौर पर केवल कुछ ट्रांजिस्टर होते हैं)। यह एक बस चक्र की तुलना में बहुत अधिक समय लेता है (जो आमतौर पर प्रोसेसर चक्र की तुलना में कुछ गुना धीमा होता है)। एक विशिष्ट मेमोरी चिप पर कैस कमांड 5ns (IIRC के ऑर्डर पर लेने की संभावना है - यह कुछ समय हो गया है जब मैंने टाइमिंग को देखा), जो कि एक, प्रोसेसर चक्र की तुलना में परिमाण के क्रम से अधिक है।

सौभाग्य से, हम तीन भागों (स्तंभ, पंक्ति और बैंक) में पते तोड़ते हैं जो प्रत्येक भाग को छोटा बनाते हैं और उन भागों को समवर्ती रूप से संसाधित करते हैं, अन्यथा विलंबता और भी लंबी होगी।

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


-2

जिन अध्ययनों का मैंने अध्ययन किया, उनमें से एक अधिकतम-थ्रूपुट-इन-न्यूनतम-हार्डवेयर आंदोलन था जब हम किसी भी कैश आधारित मेमोरी के बारे में बात करते हैं, तो यह सीपीयू कैश, बफर कैश या मेमोरी कैश हो। बुनियादी मकसद तब हासिल किया जाता है जब डेटा को प्राप्त / पढ़ने / लिखने के लिए कम से कम या कोई हार्डवेयर आंदोलन नहीं होता है और ऑपरेशन तेजी से पूरा होता है।

डेटा डिस्क से स्थानांतरित होता है -> मुख्य मेमोरी (रैम) (अस्थायी भंडारण) -> सीपीयू कैश (अक्सर एक्सेस किए गए डेटा के लिए सीपीयू के पास छोटा अस्थायी भंडारण) -> सीपीयू (प्रसंस्करण)।

CPU कैश एक छोटा, तेज़ मेमोरी स्पेस है जो हाल ही में उपयोग किए गए मुख्य मेमोरी स्थानों से डेटा की प्रतियां संग्रहीत करता है।

बफ़र कैश एक मुख्य मेमोरी क्षेत्र है जो हाल ही में उपयोग किए गए डिस्क स्थानों से डेटा की प्रतियां संग्रहीत करता है।

ब्राउज़र कैश निर्देशिका या समान स्थान है जो उपयोगकर्ताओं द्वारा हाल ही में देखी गई वेबसाइटों से डेटा की प्रतियां संग्रहीत करता है।

संदर्भ: कंप्यूटर मेमोरी कैसे काम करती है


"ऑपरेटिंग सिस्टम दर्शन है ..." - क्या यह केवल आपकी राय है या आप इसे किसी तरह वापस कर सकते हैं?
gnat

मौरिस बाख द्वारा यूनिक्स का अध्ययन करते समय इस बारे में पढ़ाया गया था। दुर्भाग्य से कोई सहायक दस्तावेज नहीं। संपादित ..
रोशन ४० Mar४

5
विश्वसनीय तकनीकी जानकारी प्राप्त करने के लिए howstuffworks बेहद अविश्वसनीय है। वे सकल सरलीकरण के लिए अच्छे हैं जो औसत जो और जेन समझ सकते हैं, लेकिन इसके बारे में है।
jwenting
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.