What is the latency of B?
مطابق شکل مدار پایین صفحه چقدر طول میکشد تا دستور B در پردازنده اجرا شود؟ دستور B از دستورات ارجاع بدون شرط در زبان اسمبلی است.
در ادامه به حل تشریحی این سوال در مدار مورد نظر میپردازیم.
راه حل:
1. An instruction is fetched from the Instruction memory(I-Mem) = 250ps
دستور فعلی از مخزن دستورات برداشت میشود. این کار 250 پیکو ثانیه به طول می انجامد.
2.1 Control Unit + ALU Control Unit = 50sp
واحدهای کنترل که شامل مداراتی منطقی هستند با توجه به دستور جدید خروجی های جدید را بیرون میدهند تا در واحد های دیگر مانند واحد ALU مورد استفاده قرار گیرند.
2.2 The value of PC is added to the sign-extended, the result is the branch target address = 50ps
2.3 Adder calculate PC+4 (PC is incremented) = 150ps
یک جمع کننده شمارنده برنامه را با 4 جمع میکند. با این کار شمارنده برنامه (PC) آدرس دستور بعدی را در خود دارد.
2.4 19 bits of the instruction (offset) are shifted left by two (Single gate) = 5ps
2.5 Adder calculate PC + (shifted value) = 150ps
2.6 MUX ALU result
از آنجا که دستور ما از نوع R است و از دستورات ارجاع یا Branch نیست پس مولتی پلکسر نیز همان شمارنده اصلی برنامه که آدرس دستور بعدی را در خود جای داده است را برای ذخیره در ثبات شمارنده انتخاب میکند.
2.7 PC Register Read = 30ps
دسترسی به داده های ثباتها در فایل ثبات میسر می شود. و مدت زمان 150 پیکو ثانیه میکشد تا به داده های ثباتی که در دستور آمده دسترسی پیدا کنیم.
منبع سوال: کتاب Computer Organization and Design ARM® EDITION