جدول المحتويات:

تصميم وحدة تحكم بسيطة في ذاكرة التخزين المؤقت رباعية الاتجاهات في VHDL: 4 خطوات
تصميم وحدة تحكم بسيطة في ذاكرة التخزين المؤقت رباعية الاتجاهات في VHDL: 4 خطوات

فيديو: تصميم وحدة تحكم بسيطة في ذاكرة التخزين المؤقت رباعية الاتجاهات في VHDL: 4 خطوات

فيديو: تصميم وحدة تحكم بسيطة في ذاكرة التخزين المؤقت رباعية الاتجاهات في VHDL: 4 خطوات
فيديو: نظم التشغيل الدرس الثاني 2024, شهر نوفمبر
Anonim
تصميم وحدة تحكم بسيطة في ذاكرة التخزين المؤقت رباعية الاتجاهات في VHDL
تصميم وحدة تحكم بسيطة في ذاكرة التخزين المؤقت رباعية الاتجاهات في VHDL

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

الخطوة 1: المواصفات

تحديد
تحديد

نظرة سريعة على مواصفات وحدة التحكم في ذاكرة التخزين المؤقت المعروضة هنا:

  • أربعة اتجاهات تعيين Associative Cache Controller (انتقل إلى هذا الرابط إذا كنت تبحث عن Direct Mapped Cache Controller).
  • بنك واحد ، حظر ذاكرة التخزين المؤقت.
  • سياسة الكتابة على زيارات الكتابة.
  • سياسة الكتابة حول أخطاء الكتابة.
  • سياسة استبدال الشجرة Pseudo-LRU (pLRU).
  • صفيف العلامات داخل وحدة التحكم.
  • معلمات قابلة للتكوين.

المواصفات الافتراضية لذاكرة التخزين المؤقت والذاكرة الرئيسية هي نفسها من المواصفات السابقة. يرجى الرجوع إليهم.

الخطوة 2: عرض RTL للنظام بأكمله

عرض RTL للنظام بأكمله
عرض RTL للنظام بأكمله

يظهر تمثيل RTL الكامل للوحدة العلوية في الشكل (باستثناء المعالج). المواصفات الافتراضية للحافلات هي:

  • جميع حافلات البيانات هي حافلات 32 بت.
  • ناقل العنوان = ناقل 32 بت (ولكن فقط 10 بتات قابلة للعنونة هنا بواسطة الذاكرة).
  • كتلة البيانات = 128 بت (ناقل النطاق الترددي العريض للقراءة).
  • يتم تشغيل جميع المكونات بواسطة نفس الساعة.

الخطوة 3: نتائج الاختبار

تم اختبار الوحدة النمطية العلوية باستخدام منضدة الاختبار ، التي تعمل ببساطة على تصميم معالج غير مدمج ، تمامًا كما فعلنا في آخر تعليمات. يقوم جهاز الاختبار بإنشاء طلبات قراءة / كتابة بيانات إلى الذاكرة بشكل متكرر. هذا يسخر من تعليمات "التحميل" و "التخزين" النموذجية الشائعة في جميع البرامج التي ينفذها المعالج.

نجحت نتائج الاختبار في التحقق من وظيفة وحدة التحكم في ذاكرة التخزين المؤقت. فيما يلي إحصائيات الاختبار التي تمت ملاحظتها:

  • تم إنشاء جميع إشارات القراءة / الكتابة Miss و Hit بشكل صحيح.
  • كانت جميع عمليات قراءة / كتابة البيانات ناجحة بجميع الطرق الأربعة.
  • تم التحقق من خوارزمية pLRU بنجاح لاستبدال خطوط ذاكرة التخزين المؤقت.
  • لم يتم الكشف عن مشاكل عدم اتساق البيانات / عدم تناسقها.
  • تم التحقق من توقيت التصميم بنجاح لـ Maxm. تردد التشغيل على مدار الساعة = 100 ميجا هرتز في لوحة Xilinx Virtex-4 ML-403 (نظام كامل) ، 110 ميجا هرتز لوحدة التحكم في ذاكرة التخزين المؤقت وحدها.
  • تم استنتاج كتلة ذاكرة الوصول العشوائي للذاكرة الرئيسية. تم تنفيذ جميع المصفوفات الأخرى على طرفية المستعملين (LUTs).

الخطوة 4: الملفات المرفقة

الملفات التالية مرفقة هنا مع هذه المدونة:

  • ملفات VHD لوحدة التحكم في ذاكرة التخزين المؤقت ، وصفيف بيانات ذاكرة التخزين المؤقت ، ونظام الذاكرة الرئيسي.
  • اختبار مقاعد البدلاء.
  • التوثيق على وحدة التحكم في ذاكرة التخزين المؤقت.

ملحوظات:

  • راجع الوثائق لفهم كامل لمواصفات Cache Controller المعروضة هنا.
  • أي تغييرات في الكود لها اعتماد على الوحدات النمطية الأخرى. لذلك ، يجب إجراء التغييرات بحكمة.
  • انتبه إلى جميع التعليقات والعناوين التي قدمتها.
  • إذا لم يتم الاستدلال على كتل RAM لأي سبب من الأسباب للذاكرة الرئيسية ، فقم بتقليل حجم الذاكرة ، متبوعًا بالتغييرات في عرض ناقل العنوان عبر الملفات وما إلى ذلك. بحيث يمكن تنفيذ نفس الذاكرة إما على جداول البحث أو ذاكرة الوصول العشوائي الموزعة. سيوفر هذا وقت التوجيه والموارد. أو انتقل إلى وثائق FPGA المحددة وابحث عن الكود المتوافق لـ Block RAM وقم بتحرير الكود وفقًا لذلك ، واستخدم نفس مواصفات عرض ناقل العنوان. نفس الأسلوب لـ Altera FPGAs.

موصى به: