2008-09-18 10 views
8

एक एम्बेडेड एप्लिकेशन में, हमारे पास एक लक्ष्य तालिका है जो विभिन्न पता श्रेणियों का वर्णन करती है जो लक्ष्य लक्ष्य बोर्ड पर मान्य हैं। इस तालिका का उपयोग MMU को सेटअप करने के लिए किया जाता है।
रैम पता श्रेणी को कैश करने योग्य के रूप में चिह्नित किया गया है, लेकिन अन्य क्षेत्रों को कैश करने योग्य नहीं चिह्नित किया गया है। ऐसा क्यों है?मेमोरी का एक क्षेत्र गैर कैश्ड क्यों चिह्नित किया जाएगा?

उत्तर

2

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

1

शायद यह स्मृति-मैप किए गए I/O के लिए उपयोग किया जाता है?

4

डीएमए या अन्य हार्डवेयर इंटरैक्शन के लिए उपयोग किए जाने वाले किसी मेमोरी क्षेत्र को कैश नहीं किया जाना चाहिए।

13

ऐसा किया जाता है ताकि प्रोसेसर कैशिंग के कारण पुराने मूल्यों का उपयोग न करे। जब आप (नियमित) कैश रैम तक पहुंचते हैं, तो प्रोसेसर आपके द्वारा उपयोग किए जाने वाले मान को "याद" कर सकता है। अगली बार जब आप उसी स्मृति स्थान को देखते हैं, तो प्रोसेसर उस मान को वापस लाएगा जो इसे याद किए बिना याद करता है। यह कैशिंग है।

यदि स्थान की सामग्री प्रोसेसर के बिना बदल सकती है, तो यह मामला हो सकता है कि यदि आपके पास मेमोरी मैप किए गए डिवाइस (उदाहरण के लिए कुछ डेटा पैकेट लौटाते हुए एक एफपीजीए) है, तो प्रोसेसर वापस लौटा सकता है, मान को "याद किया गया" आखिरी बार, जो गलत होगा।

इस समस्या से बचने के लिए, आप उस पता स्थान को गैर-कैश करने योग्य के रूप में चिह्नित करते हैं। यह बीमा करता है कि प्रोसेसर मूल्य को याद रखने की कोशिश नहीं करता है।

+0

मैं ऐसी एक एम्बेडेड परियोजना पर काम कर रहा हूं, जहां मेरे डीआरएएम का एक हिस्सा गैर-कैशबल छाया स्मृति के रूप में चिह्नित किया गया है। यह वास्तव में मेरी भौतिक स्मृति का एक हिस्सा है और मेमोरी मैप किए गए डिवाइस नहीं है। स्क्रैचपैड और त्रुटि जांच के लिए उपयोग किए जाने वाले ऐसे मेमोरी क्षेत्र कैश किए जाएंगे। – RohitMat

0

फ्लैश जैसे कुछ क्षेत्रों को एक चक्र में पढ़ा जा सकता है, इसलिए कैश होने की आवश्यकता नहीं है।

+0

मुझे इनमें से कुछ 1 एनसीसी फ्लैश चाहिए। – stark

0

आधुनिक नियंत्रक डीएमए के लिए एल 2 कैश का उपयोग कर सकते हैं, जिसका अर्थ है कि वे डीएमए एक्सेस के लिए उपयोग किए गए कैश किए गए मेमोरी क्षेत्र की समेकन को संरक्षित करते हैं। इसे नियंत्रक द्वारा संचालित "स्नूप-सक्षम मेमोरी लेनदेन" के रूप में भी जाना जाता है (डीएमए के माध्यम से)।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^