क्लब और PCOMMIT

क्लब और PCOMMIT


इंटेल मैनुअल के नवीनतम संस्करण में एसएसडी जैसे गैर-वाष्पशील भंडारण के लिए कुछ नए निर्देश हैं। वह किस बारे में है?

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

पहले अंक पर टोडर मोलोव, लुईस आइजनर, अरुप डे, जोएल कोबर्न और स्टीवन स्वानसन का एक अच्छा पेपर है; मैं नीचे उनका एक ग्राफ़ प्रस्तुत करने जा रहा हूँ।

क्लब और PCOMMIT

हर चीज़ “मोनेटा” कहती है क्योंकि यह उनके सिस्टम का नाम है (जो बहुत अच्छा है, बीटीडब्ल्यू; मैं यह देखने के लिए पेपर पढ़ने की सलाह देता हूं कि उन्होंने यह कैसे किया)। उनका “बेसलाइन” मामला आपके स्टॉक सिस्टम से निकलने की तुलना में काफी बेहतर है। उन्होंने कई अनुकूलन किए (उदाहरण के लिए, लिनक्स के आईओ अनुसूचक को दरकिनार करना और जहां संभव हो संदर्भ स्विच को हटाना), जो सादे पुराने लिनक्स पर विलंबता को 62% तक कम कर देता है। इसके बावजूद, लेन-देन की हार्डवेयर + डीएमए लागत (बार का सफेद भाग) ओवरहेड द्वारा बौनी हो जाती है। ध्यान दें कि वे डीएमए की लागत को हार्डवेयर ओवरहेड का हिस्सा मानते हैं।

वे ओएस को पूरी तरह से बायपास करने और ओवरहेड को कम करने में सक्षम हैं, लेकिन यह अभी भी सच है कि लिखने की अधिकांश लागत ओवरहेड है।

एनवीआरएएम संचालन के लिए ओएस बायपास स्पीडअप

सभी ओवरहेड्स से छुटकारा पाने में सक्षम नहीं होने के बावजूद, उन्हें छोटे माइक्रोबेंचमार्क और वास्तविक कोड दोनों पर काफी महत्वपूर्ण स्पीडअप मिलते हैं। तो यह एक समस्या है. जब आपका I/O डिवाइस वास्तव में तेज़ होता है तो OS I/O पर काफी बड़ा कर लगाता है।

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

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

रफ मेमोरी पदानुक्रम आरेख

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

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

डालने CLFLUSH निर्देश हर जगह काम करते हैं, लेकिन वह कितना ओवरहेड है?

पढ़ने और लिखने पर दृढ़ता

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

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

मुझे ऐसा कभी-कभी करना पड़ा क्योंकि मैं एक चिप कंपनी के लिए काम करता था, और जब हमें पहली बार चिप वापस मिली, तो हमें अक्सर यह नहीं पता था कि बग के आसपास काम करने के लिए हमें किन बिट्स को अक्षम करना होगा। प्रगति करने का सबसे सरल तरीका अक्सर कैश को पूरी तरह से अक्षम करना होता है। वह “काम करता है”, लेकिन DOS जैसे न्यूनतम OS भी WB मेमोरी के बिना बूट करने में काफी धीमे होते हैं। मेरी याददाश्त यह है कि Win 3.1 एक घंटे का बड़ा हिस्सा लेता है, और Win 95 एक कई घंटे की प्रक्रिया है।

_b बेंचमार्क स्मृति में दृश्यमान होने के लिए लिखने को बाध्य करता है। डब्ल्यूबी मामले के लिए, इसमें एक शामिल है MFENCE इसके बाद ए CLFLUSH. दृश्यता बाधाओं के साथ WB अन्य विकल्पों की तुलना में काफी धीमा है। यह डब्ल्यूबी पर परिमाण की कई क्रम की मंदी है जब लिखने के लिए ऑर्डर करने और फ्लश करने की आवश्यकता नहीं होती है।

वे कुछ वास्तविक डेटा संरचनाओं पर बेंचमार्क भी चलाते हैं, इस शर्त के साथ कि डेटा लगातार दिखाई देना चाहिए।

डेटा संरचना संचालन पर दृढ़ता ओवरहेड

नियमित WB मेमोरी का प्रदर्शन बहुत धीमा हो सकता है: कैश के बिना चलने के प्रदर्शन के 2 गुना के भीतर। और यह केवल कैश पदानुक्रम से बाहर निकलने का ओवरहेड है – यह सच है, भले ही आपका लगातार भंडारण असीम रूप से तेज़ हो।

अब, आइए देखें कि इंटेल ने इसे कैसे संबोधित करने का निर्णय लिया। दो नए निर्देश हैं, CLWB और PCOMMIT.

CLWB जैसा कार्य करता है CLFLUSHइसमें यह डेटा को मेमोरी में लिखे जाने के लिए मजबूर करता है। हालाँकि, यह कैश को डेटा फेंकने के लिए बाध्य नहीं करता है, जिससे भविष्य में पढ़ना और लिखना बहुत तेज़ हो जाता है। भी, CLFLUSH के संबंध में ही आदेश दिया गया है MFENCEलेकिन CLWB के संबंध में भी आदेश दिया गया है SFENCE. यहां उनका विवरण दिया गया है CLWB:

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

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

सीएलडब्ल्यूबी अनुदेश केवल स्टोर-फेंसिंग संचालन द्वारा आदेशित किया जाता है। उदाहरण के लिए, सॉफ़्टवेयर यह सुनिश्चित करने के लिए SFENCE, MFENCE, XCHG, या LOCK-उपसर्ग निर्देशों का उपयोग कर सकता है कि पिछले स्टोर राइट-बैक में शामिल हैं। CLWB अनुदेश को किसी अन्य CLWB या CLFLUSHOPT अनुदेश द्वारा आदेशित करने की आवश्यकता नहीं है। सीएलडब्ल्यूबी को तार्किक प्रोसेसर द्वारा उसी पते पर निष्पादित पुराने स्टोरों के साथ अंतर्निहित रूप से ऑर्डर किया गया है।

CLWB के निष्पादन PCOMMIT के निष्पादन के साथ परस्पर क्रिया करते हैं। PCOMMIT निर्देश कुछ स्टोर-टू-मेमोरी ऑपरेशंस पर काम करता है जिन्हें मेमोरी में स्वीकार किया गया है। CLWB को पुराने स्टोर के समान कैश लाइन के लिए निष्पादित किया जाता है, जिसके कारण स्टोर मेमोरी में स्वीकार हो जाता है जब CLWB निष्पादन विश्व स्तर पर दृश्यमान हो जाता है।

PCOMMIT संपूर्ण मेमोरी रेंज पर लागू किया जाता है और यह सुनिश्चित करता है कि मेमोरी रेंज में सब कुछ लगातार स्टोरेज के लिए प्रतिबद्ध है। यहां उनका विवरण दिया गया है PCOMMIT:

PCOMMIT निर्देश कुछ स्टोर-टू-मेमोरी ऑपरेशंस को लगातार मेमोरी रेंज को लगातार (पावर विफलता संरक्षित) बनने का कारण बनता है। 1 विशेष रूप से, PCOMMIT उन स्टोर्स पर लागू होता है जिन्हें मेमोरी में स्वीकार किया गया है।

जबकि सभी स्टोर-टू-मेमोरी ऑपरेशन अंततः मेमोरी में स्वीकार किए जाते हैं, निम्नलिखित आइटम उन क्रियाओं को निर्दिष्ट करते हैं जिन्हें सॉफ़्टवेयर यह सुनिश्चित करने के लिए ले सकता है कि वे स्वीकार किए जाते हैं:

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

यदि PCOMMIT को एक स्टोर के बाद एक सतत मेमोरी रेंज को मेमोरी में स्वीकार किए जाने के बाद निष्पादित किया जाता है, तो PCOMMIT विश्व स्तर पर दृश्यमान होने पर स्टोर लगातार बन जाता है। इसका तात्पर्य यह है कि, यदि PCOMMIT का निष्पादन विश्व स्तर पर दिखाई देता है जब एक बाद के स्टोर को लगातार मेमोरी में निष्पादित किया जाता है, तो वह स्टोर उन स्टोर्स से पहले लगातार नहीं बन सकता है जिन पर PCOMMIT लागू होता है।

निम्नलिखित आइटम PCOMMIT और अन्य परिचालनों के बीच ऑर्डर का विवरण देते हैं:

एक तार्किक प्रोसेसर यह सुनिश्चित नहीं करता है कि PCOMMIT का निष्पादन शुरू करने से पहले CLFLUSHOPT और CLWB (उस तार्किक प्रोसेसर द्वारा) के पिछले स्टोर और निष्पादन विश्व स्तर पर दिखाई दे रहे हैं। इसका तात्पर्य यह है कि सॉफ़्टवेयर को PCOMMIT निष्पादित करने से पहले पिछले स्टोर-टू-मेमोरी संचालन और लगातार मेमोरी रेंज के लिए CLFLUSHOPT और CLWB निष्पादन सुनिश्चित करने के लिए उचित बाड़ लगाने के निर्देश (उदाहरण के लिए, SFENCE) का उपयोग करना चाहिए (ताकि वे मेमोरी में स्वीकार किए जाएं)।

एक तार्किक प्रोसेसर यह सुनिश्चित नहीं करता है कि PCOMMIT का निष्पादन बाद के स्टोर शुरू करने से पहले विश्व स्तर पर दिखाई दे। सॉफ़्टवेयर जिसके लिए आवश्यक है कि ऐसे स्टोर PCOMMIT से पहले विश्व स्तर पर दृश्यमान न हों (उदाहरण के लिए, क्योंकि युवा स्टोर PCOMMIT द्वारा किए गए स्टोर से पहले स्थिर नहीं होने चाहिए) PCOMMIT और बाद के स्टोर के बीच एक उचित बाड़ लगाने के निर्देश (उदाहरण के लिए, SFENCE) का उपयोग करके सुनिश्चित कर सकते हैं।

PCOMMIT के निष्पादन का आदेश SFENCE, MFENCE, XCHG या LOCK-उपसर्ग निर्देशों के निष्पादन और क्रमबद्ध निर्देशों (उदाहरण के लिए, CPUID) के संबंध में दिया जाता है।

लोड संचालन के संबंध में PCOMMIT के निष्पादन का आदेश नहीं दिया गया है। सॉफ़्टवेयर PCOMMIT के साथ लोड ऑर्डर करने के लिए MFENCE का उपयोग कर सकता है।

PCOMMIT का निष्पादन अनुदेश धारा को क्रमबद्ध नहीं करता है।

कितना CLWB और PCOMMIT वास्तव में प्रदर्शन में सुधार उनके कार्यान्वयन पर निर्भर करेगा। इन्हें बेंचमार्क करना और देखना दिलचस्प होगा कि वे कैसा प्रदर्शन करते हैं। किसी भी स्थिति में, यह WB/NVRAM प्रतिबाधा बेमेल समस्या को हल करने का एक प्रयास है। यह सीधे तौर पर ओएस ओवरहेड समस्या का समाधान नहीं करता है, लेकिन काफी हद तक अतिरिक्त हार्डवेयर के बिना इस पर काम किया जा सकता है।

यदि आपको यह पोस्ट पसंद आई है, तो संभवतः आपको ब्रॉडवेल और नए इंटेल सर्वर भागों में कैश विभाजन के बारे में पढ़ने में भी आनंद आएगा.

मैनुअल में इसे पहचानने और इंगित करने के लिए एरिक ब्रॉन को धन्यवाद, और टाइपो को ढूंढने के लिए लिआ हैनसन, नैट रोवे और ‘अनविंड’ को धन्यवाद।

यदि आपके पास पर्याप्त कागजात नहीं हैं, तो ज़्वोनिमिर बैंडिक ने एक प्रकार के एनवीआरएएम से 1.4 यूएस विलंबता और 700k आईओपीएस प्राप्त करने पर डेजन वुसिनिक, क्विंगबो वांग, सिरिल गयोट, रॉबर्ट माटेस्कु, फिलिप ब्लागोजेविक, लुइज़ फ्रैंका-नेटो, डेमियन ले मोल, ट्रेवर बंकर, जियान जू और स्टीवन स्वानसन के एक पेपर की ओर इशारा किया।

यदि आपको यह पोस्ट पसंद आया, तो आपको “नई” सीपीयू सुविधाओं पर यह संबंधित पोस्ट भी पसंद आ सकती है।



Source link

Postagens Similares

  • Manton Reece – GitHub’tan henüz ayrılmıyorum

    Bazı insanlar GitHub’tan uzaklaşıyor. Kev Quirk de bu konuyu düşünüyor: Bu Facebook’tan ayrılmak gibi bir şey; bunu düşünürken arkadaşlarımı özler miyim, yoksa konunun dışında mı kalırım diye endişelendim. Bu noktada on yıldan fazla zaman geçti ve bunu bir parça bile özlemiyorum; hiçbir pişmanlık duymuyorum. GitHub’tan ayrılmanın da aynı olacağını düşünüyorum. Benim için en çok blogumu…

  • Post-middelgrote publicatie

    September 2009 Alle soorten uitgevers, van nieuws tot muziek, zijn er niet blij mee dat consumenten niet meer voor inhoud willen betalen. Tenminste, zo zien zij het. In feite betaalden consumenten nooit echt voor inhoud, en uitgevers verkochten deze ook niet echt. Als de inhoud was wat ze verkochten, waarom was de prijs van boeken,…

  • Agen AI Memublikasikan Artikel Menarik tentang Saya – The Shamblog

    Ringkasan: Seorang agen AI yang kepemilikannya tidak diketahui secara mandiri menulis dan menerbitkan artikel hit yang dipersonalisasi tentang saya setelah saya menolak kodenya, mencoba merusak reputasi saya dan mempermalukan saya agar menerima perubahannya ke dalam pustaka python umum. Hal ini merupakan studi kasus pertama mengenai perilaku AI yang tidak selaras di alam liar, dan meningkatkan…

  • 尔湾 Nep Cafe 的 Dot Com 午餐

    Nep 咖啡馆将传统风味与现代烹饪技术融为一体,提供创新的现代越南美食。他们有两个地点。一个在芳泉谷,第二个在尔湾,这是我们吃午餐的地方。 Nep 的越南美食方法具有创新性,超越传统界限,呈现当代越南餐饮体验。对于那些想要探索越南美食的当前和未来趋势的人来说,这家咖啡馆是理想的目的地。 Nep 提供大多数传统越南菜肴,但它们以现代、高档的方式呈现。 我们的午餐以海鲜酸橘汁腌鱼开胃菜开始,由扇贝、虾、鱿鱼制成,搭配由泰国辣椒、芒果和椰子制成的汤姆百胜酱。它与一些米片搭配用作容器。将酸橘汁腌鱼放入薯片中,然后将其全部吃掉。非常好吃! 接下来是 Nep 的大蒜面条。这道菜由大蒜黄油酱油、柠檬草沙爹和大蒜制成,会让您想起为什么越南菜是世界上最好的菜之一。这道菜可以选择虾肉或蟹肉。我们和虾一起去了。它被完美地烧焦了,和面条很相配。 最后一道菜是我们来到Nep的第一个原因:Bánh Mì Chao。这道菜包括各种肉类(最受欢迎的通常是牛肉bò né)、香肠、鸡蛋和煎锅上的肉酱,与面包一起食用。它基本上是一个解构的越南潜艇。 我们的 Bánh Mì Chao 配有黑胡椒酱菲力牛排、两个单面鸡蛋、猪肉卷、肉酱和西红柿。面包放在侧边的篮子里。可以单独吃,也可以和主菜一起吃。 两人的午餐价格为每人 40 美元多一点,比典型的越南餐厅要高,但就质量和服务水平而言,仍然物有所值。尔湾并不缺少亚洲餐厅。在这座城市里需要很多的脱颖而出。 Nep Cafe 凭借其独特的越南风味成功做到了这一点。 Source link

  • RECENSIONE: Circondato da idioti (Thomas Erikson)

    Circondato da idioti: i quattro tipi di comportamento umano e come comunicare efficacemente con ciascuno negli affari (e nella vita) di Thomas Erikson presenta un modello di quattro tipi di comportamento – Rosso (dominante, motivato), Giallo (ottimista, sociale), Verde (calmo, solidale) e Blu (analitico, attento ai dettagli) – per spiegare perché le persone si fraintendono…

  • Dustin Mierau

    Un sitio web para mis pensamientos, fotografías, biblioteca, arte y trabajo.Navega alrededor. Deja una marca. Programas Blog Reloj Globo Biblioteca Fotos Cartera Rompecabezas Rolodex Sellos Hablar Terminal TELEVISOR Blog Hola, me he creado un sitio web. Fotos Biblioteca Arco — Ugo Bienvenu En arco iris – Radiohead Recuerdos de acceso aleatorio – Daft Punk Accidente…

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *