چنار کامپیوتر

چنار کامپیوتر
طبقه بندی موضوعی
  • ۱
  • ۰

 

 

4.7.2 [5] <§4.4> What is the latency of an R-type instruction (i.e., how long must
the clock period be to ensure that this instruction works correctly)?

 یادداشت: سوال از ما زمان تاخیر دستورات از نوع R-type را میخواهد. همان طور که میدانیم دستورات نوع R در پردازنده برای محاسبات ریاضی جمع و ضرب و... استفاده میشوند. 

در ادامه به حل تشریحی این سوال میپردازیم.

 

 

راه حل:

 

 با توجه به نمونه ساده پردازنده که در تصویرپایین آمده است، یک دستور از نوع R مانند ADD x1, x2, x3 باید مراحل زیر را بگذراند تا کاملا اجرا شود و پردازنده به سراغ دستور بعدی برود.

توجه: شماره گذاری لزوما بر اساس ترتیب انجام کارها در پردازنده نیست. توجه کنید که ملاک اصلی انجام هر مرحله رسیدن کامل جریان الکتریکی به قطعات و گیتهای منطقی آن مرحله است.

 

1. An instruction is fetched from the Instruction memory(I-Mem) = 250ps

دستور فعلی از مخزن دستورات برداشت میشود. این کار 250 پیکو ثانیه به طول می انجامد.

 

2.1 Control Unit + ALU Control Unit = 100sp

واحدهای کنترل که شامل مداراتی منطقی هستند با توجه به دستور جدید خروجی های جدید را بیرون میدهند تا در واحد های دیگر مانند واحد ALU مورد استفاده قرار گیرند.

 

2.2 Adder calculate PC+4 (PC is incremented) = 150ps

یک جمع کننده شمارنده برنامه را با 4 جمع میکند. با این کار شمارنده برنامه (PC) آدرس دستور بعدی را در خود دارد.

 

2.3 MUX choose PC = 25ps 

از آنجا که دستور ما از نوع R است و از دستورات ارجاع یا Branch نیست پس مولتی پلکسر نیز همان شمارنده اصلی برنامه که آدرس دستور بعدی را در خود جای داده است را برای ذخیره در ثبات شمارنده انتخاب میکند.

 

2.4 PC Register Read  = 30ps

از آنجا که ثبات شمارنده پس از ذخیره شدن باید سریع در خروجی ظاهر شود تا دستور بعدی را اجرا کند، این زمان را به طور کلی خواندن ثبات می نامند که فقط برای ثبات PC است.

 

3. turn on Register file = 150ps

دسترسی به داده های ثباتها در فایل ثبات میسر می شود. و مدت زمان 150 پیکو ثانیه میکشد تا به داده های ثباتی که در دستور آمده دسترسی پیدا کنیم.

 

4. MUX choose read data 2 = 25ps

از آنجا که دستورات نوع R از دو ثبات استفاده میکنند پس مولتی پلکسر نیز از واحد کنترل مطلع میشود که باید داده ثبات شماره دو را برای ورودی واحد پردازی (ALU) ارسال کند.

 

5. ALU operates on the data from the register file = 200ps

خب حالا که دو داده برای واحد پردازش از فایل ثباتها آماده شده است، او میتواند پردازش خود را بر روی داده های ورودی شروع کند؛ پردازش واحد کنترل 200 پیکو ثانیه طول میکشد.

 

6. MUX choose ALU result = 25ps

به دلیل اینکه دستورات نوع R به حافظه داده (Data memory) نیازی ندارند و واحد کنترل نیز این را تشخیص داده و برای مولتی پلکسر ارسال میکند. مولتی پلکسر داده خروجی از واحد پردازش را انتخاب میکند و داده به سمت فایل ثباتها میرود.

 

7. register’s data input must be stable before the rising edge of the clock (Register Setup) = 20ps

داده ورودی فایل ثبات باید کمی منتظر بماند تا لبه کلاک بالا برود و داده برای نوشته شدن به داخل فایل ثبات برود.

 

نتیجه: این چرخه در پردازنده به همین صورت برای دستورات مختلف درحال جریان است؛ قطعات استفاده شده در پردازنده ها با کلاک زمانبندی شده اند، یعنی برای پردازش و رفتن به مرحله بعدی منتظر لبه بالارونده کلاک هستند. با هر کلاک جریان الکتریکی به مدارات ترکیبی که در درس مدار منطقی آمده اند رفته و با کلاک بعدی به خروجی یا مرحله بعدی (مدار ترکیبی بعدی) میروند.

 

 

r-type-instruction-datapath

 


منبع سوال: کتاب Computer Organization and Design ARM® EDITION

 

 

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی