मेमोरी लेटेंसी कंप्यूटर आर्किटेक्चर रिसर्च में पढ़ाई जाने वाली मूलभूत समस्याओं में से एक है।
सट्टा निष्पादन
आउट-ऑफ-ऑर्डर निर्देश मुद्दे के साथ सट्टा निष्पादन अक्सर एक एल 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 के पेपर में दिया है।)