4.7.3 [10] <§4.4> What is the latency of LDUR? (Check your answer carefully.
Many students place extra muxes on the critical path.)یادداشت: سوال از ما زمان تاخیر دستور LDUR را میخواهد. همان طور که میدانیم دستور LDUR در پردازنده برای گرفتن داده از حافظه جانبی و ریختن آن در ثبات استفاده میشود.
در ادامه به حل تشریحی این سوال میپردازیم.
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.4 MUX choose PC = 25ps
از آنجا که دستور ما از دستورات ارجاع یا Branch نیست پس مولتی پلکسر نیز همان شمارنده اصلی برنامه که آدرس دستور بعدی را در خود جای داده است را برای ذخیره در ثبات شمارنده انتخاب میکند.
2.3 PC Register Read = 30ps
از آنجا که ثبات شمارنده پس از ذخیره شدن باید سریع در خروجی ظاهر شود تا دستور بعدی را اجرا کند، این زمان را به طور کلی خواندن ثبات می نامند که فقط برای ثبات PC است.
3. turn on Register file = 150ps
دسترسی به داده های ثباتها در فایل ثبات میسر می شود. و مدت زمان 150 پیکو ثانیه میکشد تا به داده های ثباتی که در دستور آمده دسترسی پیدا کنیم.
4. Sign extend = 50ps
5. MUX choose sign-extended value = 25ps
6. The ALU computes the sum of the value read from the register file and the
Sign-extended 9 bits of the instruction (offset) = 200ps
7. The sum from the ALU is used as the address for the Data Memory = 250ps
8. MUX choose Read memory data = 25ps
9. Write back registe (Register Setup) = 20ps
داده ای که از مموری بیرون آمده حالا منتظر کلاک است تا در فایل ثبات ها ثبت شود. این کار 20 پیکو ثانیه به طول می انجامد.
منبع سوال: کتاب Computer Organization and Design ARM® EDITION