मुख्य मेमोरी लाने के इंतजार के दौरान प्रोसेसर क्या करता है


26

एल 1 और एल 2 कैश अनुरोधों के परिणामस्वरूप एक मिस हो जाता है, क्या प्रोसेसर तब तक स्टाल करता है जब तक कि मुख्य मेमोरी एक्सेस नहीं की जाती है?

मैंने दूसरे धागे पर स्विच करने के विचार के बारे में सुना, यदि ऐसा है तो रुके हुए धागे को जगाने के लिए क्या उपयोग किया जाता है?


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

@ राफेल मैं मुख्य रूप से सिर्फ स्टीव आर्किटेक्टर द्वारा कंप्यूटर आर्किटेक्चर की किताबें, एआरएम सिस्टम-ऑन-चिप आर्किटेक्चर पढ़ रहा हूं, शायद सबसे व्यापक था जिसे मैंने पूरी तरह से पढ़ा है। हालाँकि मैंने कंप्यूटर आर्किटेक्चर पढ़ना शुरू कर दिया है: एक मात्रात्मक दृष्टिकोण। यह थ्रेड स्विचिंग, OOE और आउट ऑफ ऑर्डर मेमोरी ऑपरेशंस जैसे स्टालिंग से बचने के लिए तकनीकों को बताता है, हालांकि यह वास्तव में आधुनिक डिजाइनों की पेचीदगियों के बारे में बहुत कुछ नहीं देता है, जैसे कि ज्यादातर पाठ्यपुस्तकें या तो पुराने आर्किटेक्चर को कवर करती हैं या इन चीजों के बारे में अस्पष्ट सुझाव देती हैं। कार्यान्वित और एक साथ काम करते हैं।
102948239408

मेरे प्रश्न का विस्तार करते हुए, लगता है कि कैश में छोटी-छोटी अव्यक्तियाँ हैं और उनकी प्रतिक्रिया में नियतात्मक है, लेकिन भौतिक पता प्राप्त करने के लिए सबसे खराब स्थिति पृष्ठ तालिका चलने के मामले में, हजारों निर्देश पूरे हो सकते हैं, कुछ उसी धागे से ILP द्वारा निकाले गए हैं। प्रोसेसर पर क्या हार्डवेयर इंटरैक्शन होते हैं यह तय करने के लिए कि यह एक और थ्रेड शेड्यूल कर सकता है और ऐसा होने पर उस थ्रेड को जगाने के लिए किस संचार का उपयोग किया जाता है। आगे भी अगर थ्रेड्स स्विच करते समय पूर्ण परिणाम कतार से निपटने के लिए एक तकनीक है?
102948239408

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

1
मैंने सामान्य अवधारणाओं के बारे में उत्तर दिया है, लेकिन आपकी टिप्पणियों को देखते हुए, आप अधिक उन्नत विचारों के बाद हो सकते हैं। हालाँकि, यदि आप अधिक उन्नत उत्तर चाहते हैं, तो आपको अपने प्रश्न को विशेष आर्किटेक्चर और तकनीकों के प्रकारों के लिए और अधिक विशिष्ट बनाने की आवश्यकता होगी।
गिलेस एसओ- बुराई को रोकना '

जवाबों:


28

मेमोरी लेटेंसी कंप्यूटर आर्किटेक्चर रिसर्च में पढ़ाई जाने वाली मूलभूत समस्याओं में से एक है।

सट्टा निष्पादन

आउट-ऑफ-ऑर्डर निर्देश मुद्दे के साथ सट्टा निष्पादन अक्सर एक एल 1 कैश हिट के दौरान विलंबता को भरने के लिए उपयोगी कार्य खोजने में सक्षम होता है, लेकिन आमतौर पर 10 या 20 चक्रों या उसके बाद उपयोगी काम से बाहर चला जाता है। लंबे समय तक विलंबता के दौरान काम की मात्रा बढ़ाने के लिए कई प्रयास किए गए हैं। एक विचार मूल्य भविष्यवाणी (लिप्स्ती, विल्करसन और शेन, (ASPLOS-VII): 138-147, 1996) करने की कोशिश करने का था । यह विचार कुछ समय के लिए अकादमिक वास्तुकला अनुसंधान हलकों में बहुत फैशनेबल था लेकिन व्यवहार में काम नहीं करता है। इतिहास के डस्टबिन से मूल्य पूर्वानुमान को बचाने के लिए एक अंतिम- हांस्प प्रयास किया गया था(मुटलु, स्टार्क, विल्करसन, और पैट (एचपीसीए -9): 129, 2003)। रनहेड निष्पादन में आप पहचानते हैं कि आपकी मूल्य भविष्यवाणियां गलत होने वाली हैं, लेकिन सट्टा वैसे भी निष्पादित होता है और फिर भविष्यवाणी के आधार पर सभी काम बाहर फेंक देते हैं, इस सिद्धांत पर कि आप कम से कम कुछ पूर्व-निर्धारण शुरू करेंगे जो अन्यथा एल 2 कैश है छूट जाए। यह पता चलता है कि रनहेड इतनी ऊर्जा बर्बाद करता है कि यह इसके लायक नहीं है।

इस नस में एक अंतिम दृष्टिकोण जो उद्योग में कुछ कर्षण प्राप्त कर सकता है, जिसमें लंबे समय तक लंबे बफ़र्स बनाना शामिल है। निर्देशों को शाखा भविष्यवाणी के आधार पर सट्टा निष्पादित किया जाता है, लेकिन कोई मूल्य भविष्यवाणी नहीं की जाती है। इसके बजाय सभी निर्देश जो एक लंबी-विलंबता लोड मिस सिट पर निर्भर होते हैं और पुन: बफर में प्रतीक्षा करते हैं। लेकिन चूंकि रिफ़ंड बफर इतना बड़ा है कि आप निर्देश प्राप्त कर सकते हैं यदि शाखा प्रेडिक्टर एक सभ्य काम कर रहा है तो आप कभी-कभी निर्देश स्ट्रीम में बहुत बाद में उपयोगी काम पा सकेंगे। इस क्षेत्र में एक प्रभावशाली शोध पत्र सतत प्रवाह पाइपलाइन था(श्रीनिवासन, रजवार, अक्करी, गांधी और अप्टन (ASPLOS-XI): १० ,-११९, २००४)। (इस तथ्य के बावजूद कि लेखक सभी इंटेल से हैं, मेरा मानना ​​है कि विचार को एएमडी में अधिक कर्षण मिला है।)

बहु सूत्रण

विलंबता सहिष्णुता के लिए कई थ्रेड्स का उपयोग करने का एक लंबा इतिहास है, जिसमें उद्योग में बहुत अधिक सफलता है। सभी सफल संस्करण मल्टीथ्रेडिंग के लिए हार्डवेयर समर्थन का उपयोग करते हैं। सरल (और सबसे सफल) इस के संस्करण क्या अक्सर FGMT कहा जाता है ( ठीक कणों का बहु सूत्रण ) या interleaved बहु सूत्रण । प्रत्येक हार्डवेयर कोर कई थ्रेड संदर्भों का समर्थन करता है (एक संदर्भ अनिवार्य रूप से रजिस्टर स्थिति है, जिसमें अनुदेश सूचक और किसी भी निहित झंडे रजिस्टर जैसे रजिस्टर शामिल हैं)। एक महीन दाने वाले मल्टी थ्रेडिंग प्रोसेसर में प्रत्येक थ्रेड को संसाधित किया जाता है-order। प्रोसेसर इस बात पर नज़र रखता है कि कौन से थ्रेड लंबे-विलंबता लोड मिस पर रोक दिए गए हैं और जो उनके अगले निर्देश के लिए तैयार हैं और यह प्रत्येक चक्र पर एक सरल FIFO शेड्यूलिंग रणनीति का उपयोग करता है जो उस चक्र को निष्पादित करने के लिए तैयार धागे का चयन करता है। बड़े पैमाने पर इसका प्रारंभिक उदाहरण बर्टन स्मिथ का HEP प्रोसेसर था (बर्टन स्मिथ ने टेरा सुपरकंप्यूटर को आर्किटेक्ट किया, जो कि एक बढ़िया अनाज वाला मल्टी-थ्रेडिंग प्रोसेसर था)। लेकिन यह विचार बहुत पीछे चला जाता है, 1960 के दशक में, मुझे लगता है।

FGMT स्ट्रीमिंग वर्कलोड पर विशेष रूप से प्रभावी है। सभी आधुनिक जीपीयू (ग्राफिक्स प्रोसेसिंग यूनिट) मल्टीकोर हैं, जहां प्रत्येक कोर एफजीएमटी है, और अवधारणा को अन्य कंप्यूटिंग डोमेन में भी व्यापक रूप से उपयोग किया जाता है। Sun का T1 भी मल्टीकोर FMGT था, और ऐसा ही है Intel का Xeon Phi (प्रोसेसर जिसे अभी भी "MIC" कहा जाता है और जिसे "Larabee" कहा जाता है)।

के विचार एक साथ बहु सूत्रण () Tullsen, एग्गर्स, और लेवी, (आईएससीए-22: 392-403, 1995) सट्टा निष्पादन के साथ हार्डवेयर बहु सूत्रण को जोड़ती है। प्रोसेसर में कई थ्रेड संदर्भ होते हैं, लेकिन प्रत्येक थ्रेड को सट्टा और आउट-ऑफ-ऑर्डर निष्पादित किया जाता है। एक और अधिक परिष्कृत अनुसूचक तब उपयोगी कार्य ( मलिक, अग्रवाल, धार, और फ्रैंक, (एचपीसीए -14: 50-61), 2008 ) के लिए सबसे अधिक संभावना है कि धागे से लाने के लिए विभिन्न अनुमानों का उपयोग कर सकते हैं । एक निश्चित बड़ी अर्धचालक कंपनी ने एक साथ मल्टीथ्रेडिंग के लिए हाइपरथ्रेडिंग शब्द का उपयोग करना शुरू कर दिया , और यह नाम इन दिनों सबसे अधिक व्यापक रूप से इस्तेमाल होने वाला लगता है।

निम्न-स्तर की सूक्ष्मजैविक चिंताओं

मुझे एहसास हुआ कि आपकी टिप्पणी के बाद आपको प्रोसेसर और मेमोरी के बीच सिग्नलिंग में दिलचस्पी है। आधुनिक कैश आमतौर पर एक साथ कई मिसाइलों को बकाया होने की अनुमति देता है। इसे लॉकअप-फ्री कैश (क्रॉफ्ट, (ISCA-8): 81-87, 1981) कहा जाता है। (लेकिन पेपर ऑनलाइन खोजना मुश्किल है, और पढ़ने में कुछ कठिन है। लघु उत्तर: इसमें बहुत सी किताब-कीपिंग है लेकिन आप इससे निपटते हैं। हार्डवेयर बुक-कीपिंग स्ट्रक्चर को MSHR कहा जाता है (मिस इंफॉर्मेशन / स्टेटस होल्डिंग रजिस्टर) ), जो नाम क्रॉफ्ट ने अपने 1981 के पेपर में दिया है।)


धन्यवाद वास्तव में व्यापक जवाब, मैं कोशिश करूंगा और लॉकअप-मुक्त कैश में देखूंगा। मेरा बुरी तरह से बोला गया सवाल वास्तव में पुष्टि करने के लिए देख रहा था कि प्रोसेसर मुख्य मेमोरी एक्सेस के दौरान लोड और स्टोर के साथ जारी रहे और ऐसा करने के लिए माइक्रोआर्किटेक्टुरल तकनीकों का उपयोग किया गया था।
102948239408

+1, 1. यदि राउंड-रॉबिन शेड्यूलिंग का उपयोग नहीं किया जाता है तो क्या यह वास्तव में बैरल प्रोसेसिंग है? विकिपीडिया इसे FGMT का पर्याय बनाता है। (मैं लंघन के साथ राउंड रॉबिन के लिए "बैरल प्रोसेसर" लागू करना स्वीकार कर सकता हूं, हालांकि यह एक टूटी हुई सीढ़ी के रूप में सादृश्य को तोड़ता है (सीएफ नहीं-तैयार धागा) एक बैरल की परिधि को अनुबंधित नहीं करता है। (मुझे लगता है कि "सच" बैरल प्रोसेसर)। दुर्लभ- शायद सीडीसी 6600 के लिए परिधीय प्रोसेसर? -क्योंकि वे एक चक्र बर्बाद करते हैं, लेकिन यह हार्डवेयर को सरल बनाता है।) 2. इटेम के हाइपर-थ्रेडिंग और आईबीएम के नॉर्थस्टार एट अल जैसे SoEMT का उल्लेख विशेष रूप से उपयुक्त प्रश्न लगता है।
पॉल A. क्लेटन

@ 102948239408, आप के लिए एक और चीज़ हो सकती है, जैसे "हिट अंडर मिस" और "मिस अंडर मिस" (दूसरा विकल्प "स्टाल अंडर मिस" है, लेकिन मैंने इसे आज़माया है और यह उपयोगी कुछ भी नहीं है।) ऐसे शब्द जो वर्तमान में (कुछ) वास्तुकारों द्वारा उपयोग किए जाने वाले कैश के विभिन्न विकल्पों के लिए उपयोग किए जा सकते हैं।
लॉजिक लॉजिक

@ पॉलए। क्लेटन, शब्दावली निश्चित रूप से मेरा मजबूत सूट नहीं है। मैं आपसे सहमत हूं कि बैरल प्रोसेसिंग का मतलब राउंड-रॉबिन होना चाहिए। लेकिन मैं किसी अन्य शब्द के बारे में नहीं सोच सकता जिसका अर्थ है: इन-ऑर्डर थ्रेड्स के एक समूह का चक्र-दर-चक्र इंटरलेविंग (जो कि GPUs, Xeon Phi और Sun T1 सभी करते हैं)। क्या यह एफजीएमटी है? मैंने हमेशा FGMT को SMT सहित माना है, (यानी, यह निर्दिष्ट नहीं करता है कि थ्रेड्स को क्रम में निष्पादित किया जाना चाहिए) लेकिन शायद FGMT इस मामले के लिए "बैरल प्रोसेसर" से बेहतर है?
लॉजिक लॉजिक

विकिपीडिया के बैरल प्रोसेसर लेख में कहा गया है: "जिसे" इंटरलेव्ड "या" फाइन-ग्रेन्ड "टेम्पोरल मल्टीथ्रेडिंग" के रूप में भी जाना जाता है, इसलिए आईएमटी और एफजीएमटी कम से कम मान्यता प्राप्त शब्द हैं। मुझे लगता है कि मैंने "interleaved" से अधिक "ठीक-ठीक" पढ़ा है, लेकिन interleaved असामान्य नहीं है। मैंने आमतौर पर एफजी का उपयोग किया है (मुझे "दानेदार" से तात्पर्य एसएमटी प्रदान करने की तुलना में अधिक पृथक्करण से है); FG का वह लाभ है जो Intereaeaved SoEMT पर लागू हो सकता है। मुझे संदेह है कि यह "बैरल प्रोसेसर" के उपयोग में बदलाव है जिसे मुझे मुस्कराना होगा (मेरे दांतों को) और सहन करना होगा।
पॉल ए। क्लेटन

16

संक्षिप्त उत्तर है: कुछ भी नहीं, प्रोसेसर स्टाल।

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

जबकि प्रोसेसर ठप है, टाइमर चलना जारी है, इसलिए टाइमर में रुकावट हो सकती है, या अन्य बाह्य उपकरणों से एक बाधा हो सकती है। इसलिए एक संदर्भ स्विच मुख्य मेमोरी एक्सेस के दौरान कैश एक्सेस के दौरान होने की अधिक संभावना है, लेकिन केवल इसलिए कि इसमें अधिक समय लगता है।

फिर भी, आधुनिक कंप्यूटर मुख्य मेमोरी के इंतजार में प्रोसेसर में बर्बाद होने वाले समय को कम करने की कोशिश करने के लिए कई तरह की तकनीकों को शामिल करते हैं। स्टालिंग होता है, लेकिन केवल जब इसे टाला नहीं जा सकता।

एक तकनीक सट्टा लाने वाला है: प्रोसेसर अनुमान लगाने की कोशिश करता है कि कौन सी मेमोरी लोकेशन एक्सेस की जाएगी, और इसे समय से पहले कैश करने के लिए लाया जाता है। उदाहरण के लिए, मेमोरी ब्लॉक पर लूप सामान्य हैं, इसलिए यदि मेमोरी एड्रेस 0x12340000, 0x12340010 और 0x12340020 के लिए कैश लाइनें लोड की गई हैं, तो 0x12340030 के लिए लाइन लोड करना एक अच्छा विचार हो सकता है। कंपाइलर प्रीफ़ैच निर्देशों को उत्पन्न करके मदद कर सकता है जो लोड की तरह हैं सिवाय इसके कि वे मुख्य मेमोरी से केवल कैश में डेटा ट्रांसफर करते हैं, न कि प्रोसेसर रजिस्टर में।

एक अन्य तकनीक सट्टा निष्पादन है । लोड होने से पहले प्रोसेसर अगले निर्देश को निष्पादित करना शुरू कर देता है। यह वैसे भी स्वाभाविक रूप से होता है क्योंकि निर्देशों के पाइपलाइनिंग के कारण । केवल निर्देश जो लोड किए गए मूल्य पर निर्भर नहीं करते हैं, उन्हें इस तरह से निष्पादित किया जा सकता है: प्रोसेसर को एक निर्भरता विश्लेषण करना चाहिए। सशर्त निर्देशों के लिए (उदाहरण के लिए लोड r1; शाखा यदि r1, 0), प्रोसेसर यह अनुमान लगाने के लिए शाखा भविष्यवाणी अनुमान लगाते हैं कि मूल्य क्या होगा। यदि लोड एक गर्भपात को ट्रिगर करता है, तो लोड के बाद सट्टा निष्पादन को फिर से आगे बढ़ाने की आवश्यकता हो सकती है।

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

हाइपरथ्रेडिंग में दूसरे थ्रेड पर स्विच करने से हाई-एंड x86 प्रोसेसर पाया जाता है। यह एक हार्डवेयर डिज़ाइन तकनीक है: प्रत्येक प्रोसेसर कोर में दो अलग-अलग रजिस्टर बैंक होते हैं (प्रत्येक कार्य संदर्भ के अनुरूप), लेकिन अन्य तत्वों का एक भी उदाहरण, ताकि यह दो स्वतंत्र निष्पादन थ्रेड्स का समर्थन कर सके, लेकिन केवल एक पर निर्देशों को प्रभावी ढंग से निष्पादित करता है एक वक़्त। जहां एक धागा बंद हो जाता है, वहीं दूसरा धागा आगे बढ़ता है। सॉफ्टवेयर के दृष्टिकोण से, दो स्वतंत्र प्रोसेसर हैं; यह सिर्फ ऐसा होता है कि उन प्रोसेसर हुड के तहत कई घटकों को साझा करते हैं।

मेमोरी कैश पदानुक्रम पर स्वैप एक और स्तर है: स्वैप मेमोरी के लिए मुख्य मेमोरी को कैश के रूप में देखा जा सकता है। स्वैपिंग के साथ, तंत्र और प्रदर्शन अनुपात अलग हैं। यदि किसी कार्य को स्वैप से लोड करने के लिए डेटा की आवश्यकता होती है, तो लोड निर्देश एक जाल को ट्रिगर करता है जो रैम में एक पेज आवंटित करने और डिस्क से इसकी सामग्री को लोड करने के लिए कर्नेल कोड निष्पादित करता है। ऐसा होने पर, कर्नेल अच्छी तरह से दूसरे कार्य पर जाने का निर्णय ले सकता है।


पहले और दूसरे-से-अंतिम पैराग्राफ के विपरीत, "ट्रिक" यह है कि कोई भी वास्तविक संदर्भ स्विच हाइपरथ्रेडिंग के साथ होने की आवश्यकता नहीं है, है ना? CPU पूरी तरह से एक ही समय में दो संदर्भों को बनाए रखता है।
राफेल

1
@ राफेल राइट: जहां तक ​​सॉफ्टवेयर की बात है, सब कुछ लेकिन प्रदर्शन के लिए, दो सीपीयू हैं।
गिल्स एसओ- बुराई को रोकना '

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

@RussellBorogove हाँ, मैंने इसका उल्लेख नहीं किया क्योंकि गैर-हाइपरथ्रेडेड सीपीयू में कई ALU / FPU / ... हो सकते हैं और इसके अलावा अलग-अलग कोर कभी-कभी FPU आदि को भी साझा करते हैं
Gilles 'SO- रोक जा रहा है बुराई'

5

इस प्रश्न का उत्तर प्रश्न में वास्तुकला के साथ अलग-अलग होगा। जबकि कई CPU स्टाल (ARM, x86 w / o हाइपरथ्रेडिंग इत्यादि) को रोक देंगे क्योंकि उन्हें थ्रेड को स्विच करने में बहुत लंबा समय लगता है, यह हर आर्किटेक्चर द्वारा लिया गया दृष्टिकोण नहीं है। कुछ आर्किटेक्चर में, सीपीयू पर निर्धारित प्रत्येक थ्रेड की अपनी स्वतंत्र रजिस्टर फ़ाइल होती है, इसलिए प्रोसेसर बस एक थ्रेड से काम को निष्पादित कर सकता है जो मेमोरी एक्सेस पर इंतजार नहीं कर रहा है। यह मेरी समझ है कि यह एक सीमित सीमा तक है, जो x86 हाइपरथ्रेडिंग करता है (केवल 2 थ्रेड्स का उपयोग करके), लेकिन यह GPGPU पर कहीं अधिक सामान्य हैआर्किटेक्चर। CUDA के विशेष मामले में, कम से कम दर्जनों, यदि सैकड़ों नहीं, तो थ्रेड्स का ताना-बाना आमतौर पर किसी दिए गए मल्टीप्रोसेसर पर किसी भी समय लोड किया जाता है, जिसके प्रत्येक धागे (सैकड़ों या हजारों) में स्वयं के रजिस्टर होते हैं। जब आर्किटेक्चर किसी दिए गए थ्रेड को मेमोरी एक्सेस जारी करता है, तो आर्किटेक्चर अगले चक्र पर दूसरे थ्रेड से एक निर्देश निष्पादित करने की अनुमति देता है। इसलिए, जब तक पर्याप्त रूप से कई थ्रेड लोड किए जाते हैं, प्रोसेसर कोर मेमोरी एक्सेस के लिए कभी बेकार नहीं होता है। देखें प्रदर्शन दिशानिर्देश और मेमोरी पदानुक्रम में अधिक जानकारी के लिए।

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