联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2020-03-24 11:13

Tomasulo PROJECT ASSIGNMENT

ECE 6100-RSZ, Spring 2019

Project Description (some details)

In this project you will write a program (use any language that you prefer) that

simulates of the application of Tomasulo’s algorithm for scheduling a block of MIPStype

Load/Store/Arithmetic instructions. The input to your program should be a short

text file that lists up to 16 such instructions (you may restrict/simplify the MIPs syntax

if you find it convenient to do so). Each instruction may be: Load, Store, Add, Subtract,

Multiply, or Divide. The typical number of clock cycles for each of these instructions

is shown in the long (57-cycle) example that we discussed in lecture. You may use these

as default values in your program, but you should treat them as adjustable parameters

(so that you can easily tailor your program to many specific hardware architectures).

After writing and debugging your program you will write and turn in a REPORT that

includes the following:

(1) A summary (text description possibly including figures) of the algorithm

implemented by your program.

(2) The well-commented SOURCE-CODE of your program (in a standard text, WORD,

or pdf file). I suggest that you make this a separate text file from the main body of your

report, but reference it as an appendix.

(3) A summary of several example runs of the program, showing the scheduling of

instructions on a cycle-by-cycle basis for each example block of code. Be sure to

include a summary table (such as shown in the long example) that lists the cycle

numbers for each instruction (a) issue, (b) execution start, (c) execution complete, (d)

write result to CDB. Double-check the results of your program by hand to make sure

that the calculated cycles are correct. Also, make sure (check by hand) that the

numerical results of the arithmetic functions are correct. You should pick a few simple

examples that demonstrate the ability to handle WAR, RAW, and WAW potential

hazards. Use the long example from lecture as another example. Try a few other

complicated examples of your choosing. Try to force stalls (due to resource limitations

and contentions), and see if your program responds correctly.

For this assignment generally follow the long example that we discussed in class.

Observe the following specific rules:

(1)instructions should be issued in program order, limited to one instruction per clock

cycle (at most).

(2)instructions cannot be issued until there is an appropriate Reservation Station

available. Priority should be given to the lower-numbered instructions (maintaining

program order for issue). Other instructions should stall if necessary.

(3)instructions may begin execution in the cycle following the cycle when all its

operands are known (present in the RS if there is a contention for a specific functional

unit. The other RSs should stall. Notice that execution might not necessarily follow

program order.

(4 Start counting the number of cycles for each function with the first cycle of execution.

(5)End the count with the cycle in which the execution completes, taking into account

stall cycles (if any).

(6)Assume that the results of an arithmetic function may be written to the CDB on the

cycle following execution completion, assuming that he CDB is available on that cycle.

It is possible that two or more functions might request the CDB on the same cycle. In

that case, give priority to the functional unit with the lower-numbered RS. The others

must stall.

Please note: Do NOT send your program code in anything other than standard text

formats (.doc, .pdf, .txt). Otherwise, the security-checking software may reject these

attachments in your email.

Please submit an electronic version of your project report (WORD format is preferred,

pdf or txt is acceptable). The projects reports are due on March 26 .


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp