هل تأخذ تعليمات دورة واحدة دورة واحدة ، حتى لو كانت ذاكرة الوصول العشوائي بطيئة؟

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

  •  20-09-2019
  •  | 
  •  

سؤال

أنا أستخدم معالج RISC مضمن. هناك شيء أساسي واحد لدي مشكلة في معرفة.

ينص دليل وحدة المعالجة المركزية بوضوح على أن التعليمات ld r1, [p1] (في C: R1 = *P1) يأخذ دورة واحدة. حجم السجل R1 هو 32 بت. ومع ذلك ، فإن حافلة الذاكرة بعرض 16 بت فقط. فكيف يمكن أن تجلب جميع البيانات في دورة واحدة؟

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

المحلول

تُفترض أوقات الساعة ذاكرة الحالة الكاملة للانتظار. الوقت الذي يستغرقه تنفيذ هذه التعليمات هي دورة ساعة واحدة.

كان هناك وقت أخذ فيه كل تعليمات عددًا مختلفًا من دورات الساعة. كانت الذاكرة سريعة نسبيا ثم ، عادة صفر حالة الانتظار. كان هناك وقت قبل خطوط الأنابيب وكذلك حيث اضطررت إلى حرق دورة الساعة ، ثم فك تشفير دورة الساعة ، ثم تنفيذ دورة الساعة ، بالإضافة إلى دورات الساعة الإضافية للحصول على تعليمات متغيرة الطول ودورات الساعة الإضافية إذا كانت التعليمات لديها عملية ذاكرة.

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

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

نصائح أخرى

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

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