एक एम्बेडेड एप्लिकेशन में, हमारे पास एक लक्ष्य तालिका है जो विभिन्न पता श्रेणियों का वर्णन करती है जो लक्ष्य लक्ष्य बोर्ड पर मान्य हैं। इस तालिका का उपयोग MMU को सेटअप करने के लिए किया जाता है।
रैम पता श्रेणी को कैश करने योग्य के रूप में चिह्नित किया गया है, लेकिन अन्य क्षेत्रों को कैश करने योग्य नहीं चिह्नित किया गया है। ऐसा क्यों है?मेमोरी का एक क्षेत्र गैर कैश्ड क्यों चिह्नित किया जाएगा?
उत्तर
एक स्मृति क्षेत्र हार्डवेयर और सॉफ्टवेयर दोनों एक साथ द्वारा पहुँचा होता है (उदा: हार्डवेयर विन्यास रजिस्टर या बिखराव डीएमए के लिए सूची को इकट्ठा), इस क्षेत्र के रूप में गैर-कैश परिभाषित किया जाना चाहिए। वास्तविक डीएमए के लिए, मेमोरी बफर को कैश के रूप में परिभाषित किया जा सकता है, और ज्यादातर मामलों में बफर को कैश करने के लिए सलाह दी जाती है ताकि आवेदन स्तर को उस बफर तक त्वरित पहुंच की अनुमति मिल सके। डीएमए या आवेदन में बफर पास करने से पहले कैश को फ्लश/अमान्य करने की चालक की ज़िम्मेदारी है।
शायद यह स्मृति-मैप किए गए I/O के लिए उपयोग किया जाता है?
डीएमए या अन्य हार्डवेयर इंटरैक्शन के लिए उपयोग किए जाने वाले किसी मेमोरी क्षेत्र को कैश नहीं किया जाना चाहिए।
ऐसा किया जाता है ताकि प्रोसेसर कैशिंग के कारण पुराने मूल्यों का उपयोग न करे। जब आप (नियमित) कैश रैम तक पहुंचते हैं, तो प्रोसेसर आपके द्वारा उपयोग किए जाने वाले मान को "याद" कर सकता है। अगली बार जब आप उसी स्मृति स्थान को देखते हैं, तो प्रोसेसर उस मान को वापस लाएगा जो इसे याद किए बिना याद करता है। यह कैशिंग है।
यदि स्थान की सामग्री प्रोसेसर के बिना बदल सकती है, तो यह मामला हो सकता है कि यदि आपके पास मेमोरी मैप किए गए डिवाइस (उदाहरण के लिए कुछ डेटा पैकेट लौटाते हुए एक एफपीजीए) है, तो प्रोसेसर वापस लौटा सकता है, मान को "याद किया गया" आखिरी बार, जो गलत होगा।
इस समस्या से बचने के लिए, आप उस पता स्थान को गैर-कैश करने योग्य के रूप में चिह्नित करते हैं। यह बीमा करता है कि प्रोसेसर मूल्य को याद रखने की कोशिश नहीं करता है।
फ्लैश जैसे कुछ क्षेत्रों को एक चक्र में पढ़ा जा सकता है, इसलिए कैश होने की आवश्यकता नहीं है।
मुझे इनमें से कुछ 1 एनसीसी फ्लैश चाहिए। – stark
आधुनिक नियंत्रक डीएमए के लिए एल 2 कैश का उपयोग कर सकते हैं, जिसका अर्थ है कि वे डीएमए एक्सेस के लिए उपयोग किए गए कैश किए गए मेमोरी क्षेत्र की समेकन को संरक्षित करते हैं। इसे नियंत्रक द्वारा संचालित "स्नूप-सक्षम मेमोरी लेनदेन" के रूप में भी जाना जाता है (डीएमए के माध्यम से)।
- 1. कैश्ड गैर CORS प्रतिक्रिया संघर्ष का अनुरोध
- 2. मेमोरी उपलब्ध होने पर मेमोरी अपवाद को आउट क्यों किया जाएगा?
- 3. कारण क्यों ASP.NET AJAX अक्षम किया जाएगा
- 4. विधि का निपटान कब नहीं किया जाएगा?
- 5. एक विनाशक को एक सूचक के साथ घोषित किया जाएगा या नहीं घोषित किया जाएगा? सी ++
- 6. सूची "ठंड" मेमोरी क्षेत्र
- 7. मान्य गैर मॉडल क्षेत्र
- 8. ब्रेडक्रंब कैश्ड विचारों
- 9. क्यों ऑटो-मुक्केबाजी चेतावनी के रूप में चिह्नित किया गया?
- 10. खुली परियोजनाओं को ग्रहण क्यों नहीं किया जाएगा?
- 11. इस टॉगल बटन पर क्यों चेक नहीं किया जाएगा?
- 12. ACTION_OUTSIDE कब ट्रिगर किया जाएगा?
- 13. गैर खाली फ़ाइल इनपुट क्षेत्र
- 14. आवंटित स्मृति को 0xCC की तरह क्यों चिह्नित नहीं किया जाता है?
- 15. गलत तरीके से गठबंधन या एक गैर वस्तु क्षेत्र त्रुटि
- 16. ऑर्डर किस क्रम में कॉल किया जाएगा?
- 17. क्या ArrayList.size() विधि कैश्ड है?
- 18. गैर मैप किया तत्वों
- 19. नियंत्रक का एक उदाहरण कब बनाया जाएगा?
- 20. स्ट्रीमिंग लोड और गैर यूएसडब्ल्यूसी मेमोरी
- 21. विजुअल स्टूडियो ने मेरी कक्षा को एक घटक के रूप में क्यों चिह्नित किया है?
- 22. डीबी फ़ाइल। क्या इसे अपडेट किया जाएगा?
- 23. देखें कि एक गिट कमांड में क्या विलय किया जाएगा?
- 24. आरडीबीएमएस में निर्धारित कार्यक्रमों का प्रतिनिधित्व कैसे किया जाएगा?
- 25. स्रोत प्ले में संकलित किया जाएगा 2
- 26. डीबी में शून्य मूल्य से कितनी मेमोरी पर कब्जा किया जाएगा?
- 27. एक क्षेत्र
- 28. क्यों यह स्पष्ट एक टेम्पलेट समारोह इन्स्टेन्शियशन inlined है कि नहीं किया जाएगा?
- 29. iScroll आइटम को क्लिक नहीं किया जाएगा
- 30. 'php pyrus.phar' निष्पादित नहीं किया जाएगा
मैं ऐसी एक एम्बेडेड परियोजना पर काम कर रहा हूं, जहां मेरे डीआरएएम का एक हिस्सा गैर-कैशबल छाया स्मृति के रूप में चिह्नित किया गया है। यह वास्तव में मेरी भौतिक स्मृति का एक हिस्सा है और मेमोरी मैप किए गए डिवाइस नहीं है। स्क्रैचपैड और त्रुटि जांच के लिए उपयोग किए जाने वाले ऐसे मेमोरी क्षेत्र कैश किए जाएंगे। – RohitMat