联系方式

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

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

日期:2019-03-22 09:12

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 MIPS-type 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:

(i) instructions should be issued in program order, limited to one instruction per clock cycle (at most).

(ii) 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.

(iii) instructions may begin execution in the cycle following the cycle when all its operands are known (present in the

RS), assuming that an appropriate functional unit is available in that cycle. Priority should be given to the lowernumbered

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.

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

(v) End the count with the cycle in which the execution completes, taking into account stall cycles (if any).

(vi) 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 22. I prefer to get these by e-mail.


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

python代写
微信客服:codinghelp