पिछले 20 वर्षों में L1 कैश का आकार बहुत अधिक क्यों नहीं बढ़ा है?


35

इंटेल i486 एल 1 कैश के 8 KB है। इंटेल Nehalem 32 KB एल 1 अनुदेश कैश और प्रति कोर 32 KB एल 1 डेटा कैश है।

L1 कैश की मात्रा लगभग उस दर से नहीं बढ़ी है, जब घड़ी की दर बढ़ी है।

क्यों नहीं?


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

अतिरिक्त कैश और प्रबंधन ओवरहेड एक सिस्टम को धीमा कर सकते हैं। वे मिठाई जगह मिल गया है और वहाँ यह रहेगा।
फियास्को लैब्स

जवाबों:


17

30K का विकिपीडिया पाठ उतना उपयोगी नहीं है, जितना कि कैश का बड़ा हिस्सा कम इष्टतम है। जब कैश कैश में किसी आइटम को खोजने के लिए विलंबता बड़ी हो जाती है (कैश इन मिसिंग फैक्टरिंग) मुख्य मेमोरी में आइटम देखने की विलंबता के लिए दृष्टिकोण करना शुरू कर देता है। मुझे नहीं पता कि सीपीयू डिजाइनर किस अनुपात का लक्ष्य रखते हैं, लेकिन मुझे लगता है कि यह 80-20 गाइडलाइन के अनुरूप है: आप 80% समय में कैश में अपना सबसे आम डेटा ढूंढना चाहेंगे, और अन्य 20 समय का% आपको इसे खोजने के लिए मुख्य मेमोरी पर जाना होगा। (या जो कुछ भी सीपीयू डिजाइनरों का इरादा अनुपात हो सकता है।)

संपादित करें: मुझे यकीन है कि यह कहीं 80% / 20% के पास है, इसलिए एक्स और 1-एक्स को स्थानापन्न करें। :)


6
"जब कैश कैश में एक आइटम खोजने के लिए विलंबता बड़ी हो जाती है (कैश मिसिंग में फैक्टरिंग) मुख्य मेमोरी में आइटम को देखने की विलंबता दृष्टिकोण करने के लिए शुरू होता है।" क्या तुम इसके बारे में निश्चित हो? उदाहरण के लिए, स्थापित रैम की मात्रा को दोगुना करने से निश्चित रूप से यह विलंबता नहीं बढ़ेगी, यह कैश के लिए सही क्यों होगा? और यह भी कि नए CPU के साथ L2 कैश बड़ा क्यों होगा, अगर यह एक समस्या है? मैं इसमें कोई विशेषज्ञ नहीं हूं, मैं वास्तव में जानना चाहता हूं :)
sYnfo

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

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

1
@ जेएमडी मैं उस विवरण में दिलचस्पी लेना चाहूंगा;) हालांकि टिप्पणियां शायद इसके लिए सबसे अच्छी जगह नहीं हैं, सच है। @ ब्रायन तो, अगर मैं इसे सही तरीके से समझता हूं, तो उन्होंने एल 1 कैश में कम ट्रांजिस्टर लगाने का फैसला किया और उसी समय एल 2 में बहुत अधिक डाल दिया, जो काफी धीमा है? कृपया कोई अपराध न करें, मैं बस उत्सुक हूं :)
sYnfo

10

एक कारक यह है कि एल 1 भ्रूण टीएलबी अनुवाद पूरा होने से पहले शुरू होता है ताकि विलंबता कम हो सके। छोटे पर्याप्त कैश और उच्च पर्याप्त तरीके से कैश के लिए सूचकांक बिट्स आभासी और भौतिक पते के बीच समान होंगे। यह संभवतः वस्तुतः अनुक्रमित, शारीरिक रूप से टैग किए गए कैश के साथ मेमोरी सुसंगतता को बनाए रखने की लागत को कम करता है।


1
सबसे दिलचस्प जवाब :)
GameDeveloper 16

1
मेरा मानना ​​है कि यह कारण है, लेकिन मुझे संख्या दें। पृष्ठ आकार x86 आर्किटेक्चर पर 4096 बाइट्स है। कैश कैशे बकेट को चुनना चाहता है जिसमें पेज ट्रांसलेशन पूरा होने से पहले कैशे लाइन (64 बाइट्स) की एंट्री देखनी है। एक बाल्टी में बहुत अधिक प्रविष्टियों के बीच निर्णय लेना महंगा होगा, इसलिए प्रत्येक बाल्टी में केवल 8 प्रविष्टियाँ हैं। नतीजतन, पिछले दस वर्षों के लिए, सभी महंगे x86 cpus के पास अपने L1 डेटा कैश में 32768 बाइट्स (512 कैश लाइनें) हैं।
b_jonas 19

चूंकि यह बढ़ाना बहुत कठिन है, cpus कैश के मध्य स्तर को जोड़ता है, इसलिए अब हमारे पास L2 और L3 कैश अलग हैं। इसके अलावा, L1 कोड कैश और L1 डेटा कैश अलग हैं, क्योंकि सीपीयू जानता है कि यह कोड या डेटा एक्सेस कर रहा है या नहीं।
b_jonas 19

8

कैश का आकार कई कारकों से प्रभावित होता है:

  1. विद्युत संकेतों की गति (यदि प्रकाश की गति नहीं होनी चाहिए, परिमाण के समान क्रम की कुछ):

    • एक माइक्रोसेकंड में 300 मीटर।
    • एक नैनोसेकंड में 30 सेंटीमीटर।
  2. आर्थिक लागत (विभिन्न कैश स्तरों पर सर्किट भिन्न हो सकते हैं और कुछ निश्चित कैश आकार अयोग्य हो सकते हैं)

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

यदि L1 कैश आकार 64kb के बाद नहीं बदला है, क्योंकि यह अब लायक नहीं था। यह भी ध्यान दें कि अब कैश के बारे में अधिक "संस्कृति" है और कई प्रोग्रामर "कैश-फ्रेंडली" कोड लिखते हैं और / या विलंबता को कम करने के लिए प्रीफेटेक निर्देशों का उपयोग करते हैं।

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


6

मेरा मानना ​​है कि कैश को जितना बड़ा कहा जा सकता है, उतनी ही आसानी से किया जा सकता है। तो एक बड़ा कैश बस मदद नहीं करता है क्योंकि एक कैश रैम को धीमा बस संचार को कम करने के लिए डिज़ाइन किया गया है।

चूंकि प्रोसेसर की गति तेजी से बढ़ रही है, उसी आकार के कैश को तेजी से और तेजी से प्रदर्शन करना चाहिए ताकि इसे बनाए रखा जा सके। तो कैश काफी बेहतर हो सकता है (गति के मामले में) लेकिन भंडारण के मामले में नहीं।

(मैं एक सॉफ्टवेयर आदमी बहुत उम्मीद है कि यह बहुत गलत नहीं है)


3

से एल 1 कैश :

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

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

1997 के प्रारंभ में लॉन्च किया गया इंटेल का P55 MMX प्रोसेसर, अपने स्तर 1 कैश के आकार को 32KB तक बढ़ाने के लिए उल्लेखनीय था। एएमडी के 6 और सिरिक्स एम 2 चिप्स ने बाद में उस वर्ष लॉन्च किया था, जो 64KB के स्तर 1 कैश प्रदान करके आगे बढ़ाया गया था। 64Kb मानक L1 कैश आकार का बना हुआ है, हालांकि कई मल्टी-कोर प्रोसेसर इसका अलग-अलग उपयोग कर सकते हैं।

संपादित करें: कृपया ध्यान दें कि यह उत्तर 2009 से है और पिछले 10 वर्षों में सीपीयू काफी विकसित हुए हैं। यदि आप इस पोस्ट पर आये हैं, तो हमारे सभी उत्तरों को यहाँ भी गंभीरता से न लें।


एक विशिष्ट SRAM सेल छह MOSFETs से बना है। SRAM में प्रत्येक बिट चार ट्रांजिस्टर (एम 1, एम 2, एम 3, एम 4) पर संग्रहीत होता है जो दो क्रॉस-युग्मित इनवर्टर बनाते हैं। स्रोत दूसरा स्रोत
lukecampbell

यह सिर्फ स्थिति का वर्णन है, और क्यों इसके बारे में कुछ भी नहीं बताता है।
एओनिल

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

-4

वास्तव में L1 कैश आकार आधुनिक कंप्यूटरों में गति के लिए सबसे बड़ी अड़चन है। मूल्य के लिए पैथेटिक रूप से छोटे L1 कैश आकार मिठाई हो सकता है, लेकिन प्रदर्शन नहीं। L1 कैश को GHz आवृत्तियों पर एक्सेस किया जा सकता है, प्रोसेसर संचालन के समान, रैम एक्सेस 400x धीमे के विपरीत। वर्तमान 2 आयामी डिजाइन में लागू करना महंगा और कठिन है, हालांकि, यह तकनीकी रूप से उल्लेखनीय है, और पहली कंपनी जो इसे सफलतापूर्वक करती है, में 100 गुना तेजी से कंप्यूटर होगा और अभी भी शांत चल रहा है, जो कुछ में कई नवाचारों का उत्पादन करेगा फ़ील्ड और केवल ASIC / FPGA कॉन्फ़िगरेशन को प्रोग्राम करने के लिए महंगे और मुश्किल से एक्सेस योग्य हैं। इन मुद्दों में से कुछ मालिकाना / आईपी मुद्दों और कॉर्पोरेट लालच के साथ अब दशकों से कर रहे हैं, जहां अभियंताओं का एक दंडनीय और निष्प्रभावी कैडर होता है, जो आंतरिक कामकाज तक पहुंच वाले होते हैं, और जिन्हें ज्यादातर लागत प्रभावी ऑब्जर्स्ड संरक्षणवादी बकवास को निचोड़ने के लिए मार्चिंग आदेश दिए जाते हैं। अत्यधिक निजीकृत अनुसंधान हमेशा ऐसे तकनीकी ठहराव या थ्रॉटलिंग की ओर जाता है (जैसा कि हमने बड़े निर्माताओं द्वारा एयरोस्पेस और ऑटो में देखा है और जल्द ही फार्मा बनने वाला है)। ओपन सोर्स और अधिक समझदार पेटेंट और ट्रेड सीक्रेट रेगुलेशन से इन्वेस्टर्स और पब्लिक (कंपनी मालिकों और स्टॉकहोल्डर्स के बजाय) को बहुत फायदा होता है। यह विकास के लिए बहुत बड़ा एल -1 कैश बनाने के लिए एक दिमाग नहीं होना चाहिए और इसे दशकों पहले विकसित किया जाना चाहिए था। हम कंप्यूटर और कई वैज्ञानिक क्षेत्रों में बहुत आगे होंगे यदि उनका उपयोग किया गया था। और जो ज्यादातर लागत प्रभावी obfuscated संरक्षणवादी बकवास निचोड़ करने के लिए मार्चिंग आदेश दिए जाते हैं। अत्यधिक निजीकृत अनुसंधान हमेशा ऐसे तकनीकी ठहराव या थ्रॉटलिंग की ओर जाता है (जैसा कि हमने बड़े निर्माताओं द्वारा एयरोस्पेस और ऑटो में देखा है और जल्द ही फार्मा बनने वाला है)। ओपन सोर्स और अधिक समझदार पेटेंट और ट्रेड सीक्रेट रेगुलेशन से इन्वेस्टर्स और पब्लिक (कंपनी मालिकों और स्टॉकहोल्डर्स के बजाय) को बहुत फायदा होता है। यह विकास के लिए बहुत बड़ा एल -1 कैश बनाने के लिए एक दिमाग नहीं होना चाहिए और इसे दशकों पहले विकसित किया जाना चाहिए था। हम कंप्यूटर और कई वैज्ञानिक क्षेत्रों में बहुत आगे होंगे यदि उनका उपयोग किया गया था। और जो ज्यादातर लागत प्रभावी obfuscated संरक्षणवादी बकवास निचोड़ करने के लिए मार्चिंग आदेश दिए जाते हैं। अत्यधिक निजीकृत अनुसंधान हमेशा ऐसे तकनीकी ठहराव या थ्रॉटलिंग की ओर जाता है (जैसा कि हमने बड़े निर्माताओं द्वारा एयरोस्पेस और ऑटो में देखा है और जल्द ही फार्मा बनने वाला है)। ओपन सोर्स और अधिक समझदार पेटेंट और ट्रेड सीक्रेट रेगुलेशन से इन्वेस्टर्स और पब्लिक (कंपनी मालिकों और स्टॉकहोल्डर्स के बजाय) को बहुत फायदा होता है। यह विकास के लिए बहुत बड़ा एल -1 कैश बनाने के लिए एक दिमाग नहीं होना चाहिए और इसे दशकों पहले विकसित किया जाना चाहिए था। हम कंप्यूटर और कई वैज्ञानिक क्षेत्रों में बहुत आगे होंगे यदि उनका उपयोग किया गया था। अत्यधिक निजीकृत अनुसंधान हमेशा ऐसे तकनीकी ठहराव या थ्रॉटलिंग की ओर जाता है (जैसा कि हमने बड़े निर्माताओं द्वारा एयरोस्पेस और ऑटो में देखा है और जल्द ही फार्मा बनने वाला है)। ओपन सोर्स और अधिक समझदार पेटेंट और ट्रेड सीक्रेट रेगुलेशन से इन्वेस्टर्स और पब्लिक (कंपनी मालिकों और स्टॉकहोल्डर्स के बजाय) को बहुत फायदा होता है। यह विकास के लिए बहुत बड़ा एल -1 कैश बनाने के लिए एक दिमाग नहीं होना चाहिए और इसे दशकों पहले विकसित किया जाना चाहिए था। हम कंप्यूटर और कई वैज्ञानिक क्षेत्रों में बहुत आगे होंगे यदि उनका उपयोग किया गया था। अत्यधिक निजीकृत अनुसंधान हमेशा ऐसे तकनीकी ठहराव या थ्रॉटलिंग की ओर जाता है (जैसा कि हमने बड़े निर्माताओं द्वारा एयरोस्पेस और ऑटो में देखा है और जल्द ही फार्मा बनने वाला है)। ओपन सोर्स और अधिक समझदार पेटेंट और ट्रेड सीक्रेट रेगुलेशन से इन्वेस्टर्स और पब्लिक (कंपनी मालिकों और स्टॉकहोल्डर्स के बजाय) को बहुत फायदा होता है। यह विकास के लिए बहुत बड़ा एल -1 कैश बनाने के लिए एक दिमाग नहीं होना चाहिए और इसे दशकों पहले विकसित किया जाना चाहिए था। हम कंप्यूटर और कई वैज्ञानिक क्षेत्रों में बहुत आगे होंगे, यदि हम उनके उपयोग करते हैं। यह विकास के लिए बहुत बड़ा एल -1 कैश बनाने के लिए एक दिमाग नहीं होना चाहिए और इसे दशकों पहले विकसित किया जाना चाहिए था। हम कंप्यूटर और कई वैज्ञानिक क्षेत्रों में बहुत आगे होंगे, यदि हम उनके उपयोग करते हैं। यह विकास के लिए बहुत बड़ा एल -1 कैश बनाने के लिए एक दिमाग नहीं होना चाहिए और इसे दशकों पहले विकसित किया जाना चाहिए था। हम कंप्यूटर और कई वैज्ञानिक क्षेत्रों में बहुत आगे होंगे, यदि हम उनके उपयोग करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.