لماذا هذه المنطقة من الذاكرة يتم وضع علامة غير مؤقتا?

StackOverflow https://stackoverflow.com/questions/90204

  •  01-07-2019
  •  | 
  •  

سؤال

في جزءا لا يتجزأ من التطبيق لدينا الجدول وصف مختلف نطاقات عناوين صالحة على متن الهدف.هذا الجدول يستخدم لإعداد MMU.
رام نطاق العنوان هو علامة cacheable ، ولكن مناطق أخرى يتم وضع علامة على عدم cacheable.لماذا هذا ؟

هل كانت مفيدة؟

المحلول

إذا كانت الذاكرة المنطقة يتم الوصول إليها من قبل كل من الأجهزة والبرمجيات في وقت واحد (على سبيل المثال:تكوين جهاز تسجيل أو مبعثر-جمع قائمة DMA), هذه المنطقة يجب أن يمكن تعريفها بأنها غير المخزنة مؤقتا.الفعلية DMA الذاكرة العازلة يمكن تعريفها بأنها مؤقتا, في معظم الحالات, فإنه من المستحسن بالنسبة المخزن المؤقت أن يكون مؤقتا للسماح مستوى التطبيق الوصول السريع إلى المخزن المؤقت.إنه السائق مسؤولية دافق/إبطال ذاكرة التخزين المؤقت قبل تمرير العازلة إلى DMA أو التطبيق.

التحديث صغير فوق يجب أن ليس صحيحا في حالة لدينا الأجهزة المتخصصة ، أيذاكرة التخزين المؤقت الترابط ترابط (CCI) التي سيتم مزامنة الوصول إلى مختلف الأجهزة كتل الذاكرة.

نصائح أخرى

هذا هو فعل ذلك أن المعالج لا معنى لها بسبب التخزين المؤقت.عند الوصول إلى (العادية) التخزين المؤقت ذاكرة الوصول العشوائي ، يمكن للمعالج "تذكر" القيمة التي يمكنك الوصول إليها.في المرة القادمة نظرتم في نفس موقع الذاكرة المعالج سيعود قيمة يتذكر دون النظر في ذاكرة الوصول العشوائي.هذا هو التخزين المؤقت.

إذا كان محتوى الموقع يمكن أن تتغير من دون المعالج مع العلم كما قد يكون الحال إذا كان لديك تعيين ذاكرة الجهاز (وهو FPGA إعادة بعض حزم البيانات على سبيل المثال) ، المعالج يمكن أن تعود قيمة هو "تذكر" من المرة الأخيرة التي سيكون من الخطأ.

لتجنب هذه المشكلة يمكنك وضع علامة مساحة العنوان غير cacheable.هذا يؤمن المعالج لا تحاول أن تذكر قيمة.

أي ذاكرة المنطقة استخدام DMA أو غيرها من الأجهزة التفاعلات لا ينبغي أن يكون مؤقتا.

ربما يستخدم الذاكرة المعنونة I/O ؟

بعض المناطق مثل فلاش يمكن أن تقرأ في دورة واحدة, لذلك لا تحتاج إلى أن يكون مؤقتا.

الحديث وحدات التحكم يمكن استخدام L2 ذاكرة التخزين المؤقت إلى DMA ، بمعنى أنها تحافظ على الاتساق من الذاكرة المخبأة المنطقة استخدام DMA يصل.وهذا هو أيضا ما يسمى "سنوب-على الذاكرة المعاملات" التي يقوم بها المراقب المالي (عبر DMA).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top