بنية المعالج الصغري

من ويكي الهندسة المعلوماتية
اذهب إلى: تصفح، ابحث
Mipsabstract.JPG

مفاهيم في المنطق الرقمي

العناصر التوافقية والعناصر التتابعية

يوجد لدينا في معالج MIPS نوعين من العناصر المنطقية:

  • عناصر تتعامل مع قيم معطيات، وتسمى عناصر توافقية combinational elements.
  • وعناصر تقوم بتخزين نوع ما من المعطيات، وتسمى عناصر حالة state elements، كما تسمى أحياناً بعناصر تتابعية sequential، لأن خرجها يعتمد على كل من الدخل وحالتها الداخلية السابقة.

منهجية التوقيت

تحدد منهجية التوقيت clocking methodology متى يمكن للإشارات أن تقرأ، ومتى يمكن أن تكتب. سنفترض للتبسيط منهيجة المسماة edge-triggered clocking

ممر المعطيات وحيد الدور

العناصر اللازمة لجلب التعليمات، وربطها مع بعضها لتحقيق الوظيفة المطلوبة

سنستعرض أولاً العناصر اللازمة لبناء ممر معطيات

مرحلة الجلب

يجب أن نجلب التعليمات، ولذلك سنحتاج إلى ذاكرة التعليمات instruction memory، بالإضافة إلى عداد نخزن فيه التعليمات نسميه عداد البرنامج program counter، كما سنحتاج إلى جامع لحساب موقع التعليمة القادمة.

العمليات الحسابية

الآن لنتأمل تعليمات المعالج MIPS من النمط R، أو تعليمات الحساب والمنطق، سنجد أننا نحتاج إلى ثلاثة سجلات، فلا بد إذاً من وجود ما نسميه بملف السجلات register file، بالإضافة إلى وحدة حساب ومنطق تقوم بتنفيذ العملية المطلوبة بين سجلين، وتخرج النتيجة إلى السجل الثالث.

يتألف ملف السجلات من 32 سجل مرمز على 32 بت:

  • مدخلان يرمز كل منهما على 32 بت busA and busB
  • مدخل للكتابة busW

ويتم انتقاء السجل من خلال:

  • RA (number) من أجل المخرج busA
  • RB (number) من أجل المخرج busB
  • RW (number) من أجل انتقاء سجل الكتابة busW 1

عمليات التخزين والتحميل

تنفيذ تعليمة التفريع

ولنتأمل تعليمات التحميل والتخزين في الذاكرة. تقوم هذه التعليمات بحساب عنوان الذاكرة المخصص للقراءة أو الكتابة، وذلك من خلال جمع قيمة ثابتة إلى قيمة السجل القاعدي base register. لهذا سنحتاج إلى كل من ملف السجلات ووحدة الحساب والمنطق. كما أننا سنحتاج إلى موسع إشارة sign extender، بحيث يحول القيمة الثابتة المخزنة على 16 بتاً إلى 32 بتاً. وبالطبع سنحتاج إلى ربط كل من العنوان المحسوب، والقيمة المراد تخزينها أو قراءتها بالذاكرة.

عملية التفريع

أما بالنسبة لعملية التفريع beq، والتي تأخذ قيمتي سجلين، وتجعل المعالج يذهب إلى مكان معين في الذاكرة إذا تساوت هاتين القيمتين. فتقوم التعليمة باستخدام وحدة الحساب والمنطق ALU لحساب نتيجة المقارنة، والتي تظهر في خرج مستقل هو ALU Zero. كما تستخدم جامعاً خاصاً لجمع قيمة العلامة label إلى العنوان الحالي الموجود في عدد البرنامج. وبالطبع فإننا أثناء التعامل مع عنوان العلامة label المكتوب على 16 بتاً، فإننا سنلجأ إلى عملية توسيع إشارة إلى 32 بتاً.

حساب الأداء في ممر المعطيات وحيد الدور

ممر معطيات وحيد الدور
  • فكرة الممر الحرج.

مثال: يتطلب النفاذ إلى الذاكرة زمناً قدره 2ns، وإلى وحدة الحساب والمنطق والجامع زمناً قدره 2ns، وإلى ملف السجلات زمناً قدره 1ns. ما هو دور ساعة العمل المناسب لهذا المعالج؟ الحل التعليمة الأطول وهي تعليمة القراءة load. مراحل التعليمة :

Fetch -> Register -> ALU -> Memory -> Register

الزمن اللازم لتنفيذ هذه التعليمة هو : 8ns

إن الدور المناسب هو : 8ns.

ويكون التردد هو : 125MHz

ممر المعطيات متعدد الأدوار

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

  • مرحلة الجلب
  • مرحلة التفكيك
  • مرحلة النفاذ إلى الذاكرة
  • مرحلة الكتابة في السجلات

وحدة التحكم

يمكن نمذجة وحدة التحكم وفق نموذج الآلة المنتهية الحالات finite state machine أو اختصاراً FSM.

حساب الأداء في ممر المعطيات متعدد الأدوار

ليكن لدينا المعالج:

Type CPIi Frequency جداء التردد بالـCPI
Arith/Logic 4 40% 1.6
Load 5 30% 1.5
Store 4 10% 0.4
branch 3 20% 0.6

وبالتالي يكون CPI الوسطي هو: 4.1