क्या ऐसे कोई प्रोसेसर हैं जिनके पास विशिष्ट डेटा के लिए कैश को बाईपास करने के निर्देश हैं? This question में एक उत्तर भी है जो बताता है कि SSE4.2 निर्देश कैश को बाईपास करते हैं। क्या कोई मुझे उस पर प्रबुद्ध कर सकता है?क्या ऐसे कोई प्रोसेसर हैं जिनके पास कैश को बाईपास करने के निर्देश हैं?
उत्तर
विशिष्ट डेटा की आपकी परिभाषा के आधार पर, हां। प्रोसेसर में आम तौर पर कैश कंट्रोल रजिस्टर्स/टेबल होते हैं जिन्हें परिभाषित करने के लिए उपयोग किया जाता है कि स्मृति के किन क्षेत्रों को कैश किया जा सकता है, जिसे कैश नहीं किया जाना चाहिए। आम तौर पर, उपयोगकर्ता स्थान में चल रहा कोड उन तालिकाओं तक पहुंचने में सक्षम नहीं है।
क्या ऐसे कोई प्रोसेसर हैं जिनके पास विशिष्ट डेटा के लिए कैश को बाईपास करने के निर्देश हैं?
सुपरएच परिवार (या कम से कम सुपरएच -2) में इसकी कैश मेमोरी दोनों को स्पष्ट और स्पष्ट रूप से छोड़ दिया गया है। यह विशेष निर्देशों के बजाय स्मृति पता स्थान के विभिन्न क्षेत्रों का उपयोग करके किया जाता है।
001
पर किसी पते के शीर्ष 3 बिट्स सेट करके आप कैश-थ्रू उसी पते के दर्पण को अधिकतम 3 बिट्स के साथ साफ़ कर देंगे। और कुछ क्षेत्रों (जैसे मेमोरी मैप किए गए I/O रजिस्ट्रार) कभी कैश नहीं होते हैं।
सामान्य रूप से, कैशिंग नीति मेमोरी मैनेजमेंट यूनिट (एमएमयू) द्वारा नियंत्रित होती है। प्रत्येक पता सीमा के लिए, एक कैशिंग नीति का फैसला किया जाता है। इन टेबलों को ओएस द्वारा प्रबंधित किया जाता है और सिस्टम स्पेस में उपलब्ध हैं। एक प्रश्न के साइडबार के जवाब के रूप में, जिसे आप पूछने का इरादा रखते हैं, आर्किटेक्चर के लिए जिनके पास कैश है, आमतौर पर सीपीयू कमांड सिंक्रनाइज़िंग/अमान्य/कैश फ्लश करने के लिए उपलब्ध होते हैं। हालांकि, एमएमयू टेबल जितना अधिक, ये आदेश केवल सिस्टम स्पेस में उपलब्ध हैं।
थोड़ा स्पष्टीकरण; x86 पर, 'clflush' निर्देश (_single_ cacheline को अमान्य करने के लिए) _not_ विशेषाधिकार प्राप्त है। और, जैसा कि मूल पोस्टर का उल्लेख है, 'movnt' एसएसई निर्देश कैश-बाईपासिंग _stores_ को अनुमति देते हैं - http://stackoverflow.com/questions/37070/what-is-the-meaning-of-non-temporal-memory-accesses देखें विवरण के लिए -in-x86। –
अल्टेरा निओस II आर्किटेक्चर में कैश को बाईपास करने वाले लोड/स्टोर के लिए 2 विशिष्ट निर्देश ldio
और stio
हैं। इसका उपयोग स्मृति-मैप किए गए आईओ के लिए किया जाता है।
http://www.csun.edu/~glaw/ee525/Lecture03Nios.pdf
एनआईओएस द्वितीय एक नरम प्रोसेसर आम तौर पर Altera के FPGA बोर्डों के लिए और प्रयोग किया जाता है, हालांकि यह भी कठिन एएसआईसी उपकरणों के लिए लाइसेंस प्राप्त किया जा सकता है, लेकिन मैं इस वास्तुकला
के आधार पर किसी भी व्यावसायिक सीपीयू पता नहीं है एसएसई कैश-बाईपास स्टोर निर्देश एक ऐसे क्षेत्र में लिखते समय कैश को प्रदूषित करने से बचने के लिए हैं जो जल्द ही फिर से नहीं छुआ जाएगा। जैसे आप डेटा को बेदखल नहीं करना चाहते हैं जिसका उपयोग फिर से किया जाएगा।
इसके अलावा, कैश लाइन के किसी भी हिस्से में लिखने पर x86 कार्यान्वयन सामान्य रूप से पूरे कैश लाइन में पढ़ते हैं। यदि कैश लाइन की पिछली सामग्री अनियंत्रित है, तो यह मेमोरी बैंडविड्थ का अपशिष्ट है। (उदाहरण के लिए dest
memcpy
या memset
का तर्क।) मुझे memcpy
लागू करने के लिए इस लेखन-बैक (डिफ़ॉल्ट) बनाम लिखने के संयोजन (movntq
/movntdq
) के some old discussion मिला। इसका उपयोग करने से सावधान रहें यदि कुछ और memcpy
के आउटपुट को तुरंत पढ़ेगा।
स्ट्रीमिंग लोड केवल reading from USWC regions के लिए काम करते हैं, सामान्य memcpy
उस मामले में बहुत ही काम करता है। सामान्य से स्ट्रीमिंग लोड (डब्ल्यूबी (फीडबैक)) वर्तमान में विशेष नहीं हैं, और नियमित movdqa
लोड की तरह काम करते हैं। (यानी एनटी संकेत को अनदेखा किया जाता है)। इंटेल के ऑप्टिमाइज़ेशन मैनुअल का कहना है कि आप प्रदूषण-घटाने वाले भारों के लिए prefetchnta
का उपयोग कर सकते हैं।
IDK अगर यह एक पढ़ने ट्रिगर किए बिना (बल्कि movnt
साथ दरकिनार से) कैश में लिखने के लिए संभव है। संभवतः AVX512 memcpy
के लिए इस समस्या को हल करेगा, क्योंकि 512b जेएमएम रजिस्टर 64bytes है, यानी एक पूर्ण कैश लाइन है। एक जेडएमएम रजिस्टर से एक 64-बाइट गठबंधन स्टोर मेमोरी में पंजीकृत है जो पहले से ही कैश नहीं किया गया था को इस तरह से कार्यान्वित किया जा सकता है जिसने पहले रैम नहीं पढ़ा था, और अभी भी स्टोर को सिस्टम में अन्य CPU कोरों को तुरंत दिखाई देता है ।
(। AVX-512Knight's Landing में Skylake Xeon (नहीं अन्य Skylake सीपीयू में होने की) जा रहा है इसके अलावा, बड़े पैमाने पर समानांतर उच्च throughput जिऑन फी त्वरक बात की गणना।)
- 1. बूलियन के दो संभावित मूल्य हैं। क्या ऐसे तीन प्रकार हैं जिनके पास तीन संभावित मूल्य हैं?
- 2. उदाहरण वेबसाइट जिनके पास अमान्य प्रमाणपत्र हैं
- 3. gzip_proxied निर्देश के लिए विकल्प क्या हैं?
- 4. क्या ग्राफिक कार्ड के पास स्वयं के निर्देश सेट हैं?
- 5. 64-बिट प्रोसेसर के फायदे क्या हैं?
- 6. डिज़ाइनिंग डीटीओ जिनके पास विदेशी कुंजी संबंध हैं
- 7. x86 आर्किटेक्चर में "गैर-वर्चुअलाइज करने योग्य" निर्देश क्या हैं?
- 8. क्या ऐसे कार्यक्रम हैं जो नए कार्यक्रम लिखते हैं?
- 9. क्या ऐसे कोई कानून हैं जो लाइसेंस के अभाव वाले कोड के उपयोग को नियंत्रित करते हैं?
- 10. क्या एकाधिक प्रोसेसर पर थ्रेड निष्पादित हैं?
- 11. क्या ऐसे गुण हैं जो सीएलआर को जेआईटी संकलन के दौरान अनुकूलित करते हैं?
- 12. परमाणु निर्देश स्ट्रैड कैश लाइनों कर सकते हैं?
- 13. आलसी लोडिंग बच्चे, जिनके पास
- 14. पंक्तियों को खोजें जिनके पास अन्य कॉलम में समान मान हैं - पायथन
- 15. क्या ऐसे उपकरण हैं जो # शामिल करने में सहायता करते हैं?
- 16. क्या रूबी के पास कोई संख्या स्वरूपण कक्षाएं हैं?
- 17. पंक्तियों को खोजें जिनके पास MySQL
- 18. कोई प्रोसेसर में असममित रजिस्ट्रार क्यों नहीं हैं?
- 19. क्या ऐसे चयनकर्ता हैं जो कुछ ग्रिड स्थितियों में तत्वों को लक्षित करते हैं?
- 20. क्या फ़्यूज़न पैसेंजर से यूनिकॉर्न में माइग्रेट करने के लिए कोई आसान निर्देश हैं?
- 21. एंगुलर 2 निर्देश हैंडलिंग को संशोधित करने के लिए निर्देश
- 22. क्या मैवेन कमांडलाइन निर्देश चला सकते हैं?
- 23. क्या वर्डनेट के पास "स्तर" हैं? (एनएलपी)
- 24. क्या file_get_contents कैश का उपयोग करते हैं?
- 25. क्या स्कैला के पास गार्ड हैं?
- 26. प्रोसेसर कोड को अनुकूलित करने के लिए कुछ चाल क्या हैं?
- 27. ऐसे लेटर्स के साथ लेबल कैसे उपयोग किए जाते हैं जो लूप नहीं हैं?
- 28. साक्षात्कार में प्रश्नों का उत्तर कैसे देते हैं जिनके लिए आप सोचते हैं, वे मूर्ख हैं?
- 29. आज x86 पर कितने निर्देश हैं?
- 30. क्या एक्सएसएलटी प्रोसेसर बहु-थ्रेडेड हो सकते हैं?
मैं उत्सुक हूँ: क्या व्यावहारिक अनुप्रयोग के लिए है कैश को छोड़कर? जो कुछ भी दिमाग में आता है वह निर्देश समय की भविष्यवाणी में सुधार कर रहा है। क्या वहां कुछ हैं? – wallyk
2 मामले मैं आम तौर पर मुठभेड़ अलग-अलग कोरों पर चलने वाले धागे के बीच समय-संवेदनशील डेटा साझा कर रहा हूं, और अन्य हार्डवेयर (जैसे यूएआरटी आईसी) –
@wallyk के साथ इंटरफेस करने के लिए मेमोरी-मैप किए गए रजिस्टरों को लिख रहा हूं: सामान्य उद्देश्य कैश प्रदूषण को रोकने के लिए है (उदाहरण के लिए यदि आप बहुत सारे डेटा लिख रहे हैं और इसे "जल्द ही" पढ़ने की उम्मीद नहीं करते हैं, और वह डेटा नहीं चाहते हैं जिसे आपको कैश से बाहर निकालने की आवश्यकता होगी)। – Brendan