(1)列出程序中可能出现的所有数据相关。(2)采用顺序发射顺序完成调度方法,画出流水线的时空图,并计算执行这个程序所用的时间。(3)采用顺序发射乱序完成调度方法,画出流水线的时空图和各操作的完成时间图,并计算执行这个程序所用的时间。(4)如果再增加一个能够存放7条指令的先行指令窗口,采用乱序发射乱序完成调度方法,画出流水线的时空图、各操作的发射时间图和完成时间图,并计算执行这个程序所用的时间。
时间: 2023-12-14 21:40:16 浏览: 322
程序代码如下:
```
ADD R1, R2, R3
SUB R4, R5, R6
MUL R7, R8, R9
DIV R10, R11, R12
```
(1)程序中可能出现的所有数据相关如下:
- RAW(Read After Write): R1, R2, R3;R4, R5, R6;R7, R8, R9;R10, R11, R12
- WAR(Write After Read): 无
- WAW(Write After Write): 无
(2)采用顺序发射顺序完成调度方法,流水线的时空图如下:
| 时钟周期 | 指令1 | 指令2 | 指令3 | 指令4 |
| -------- | ------ | ------ | ------ | ------ |
| 1 | IF | | | |
| 2 | ID | IF | | |
| 3 | EX | ID | IF | |
| 4 | MEM | EX | ID | IF |
| 5 | WB | MEM | EX | ID |
执行这个程序所用的时间为5个时钟周期。
(3)采用顺序发射乱序完成调度方法,流水线的时空图如下:
| 时钟周期 | 指令1 | 指令2 | 指令3 | 指令4 |
| -------- | ------ | ------ | ------ | ------ |
| 1 | IF | | | |
| 2 | ID | IF | | |
| 3 | | ID | IF | |
| 4 | | | ID | IF |
| 5 | EX | | | |
| 6 | MEM | EX | | |
| 7 | WB | MEM | EX | |
| 8 | | WB | MEM | EX |
| 9 | | | WB | MEM |
| 10 | | | | WB |
各操作的完成时间图如下:
| 操作 | 完成时间 |
| ------ | -------- |
| ADD | 5 |
| SUB | 9 |
| MUL | 6 |
| DIV | 10 |
执行这个程序所用的时间为10个时钟周期。
(4)如果再增加一个能够存放7条指令的先行指令窗口,采用乱序发射乱序完成调度方法,流水线的时空图、各操作的发射时间图和完成时间图如下:
流水线的时空图:
| 时钟周期 | 指令1 | 指令2 | 指令3 | 指令4 | 指令5 | 指令6 | 指令7 |
| -------- | ------ | ------ | ------ | ------ | ------ | ------ | ------ |
| 1 | IF | | | | | | |
| 2 | ID | IF | | | | | |
| 3 | | ID | IF | | | | |
| 4 | | | ID | IF | | | |
| 5 | EX | | | ID | IF | | |
| 6 | MEM | EX | | | ID | IF | |
| 7 | WB | MEM | EX | | | ID | IF |
| 8 | | WB | MEM | EX | | | ID |
| 9 | | | WB | MEM | EX | | |
| 10 | | | | WB | MEM | EX | |
| 11 | | | | | WB | MEM | EX |
| 12 | | | | | | WB | MEM |
| 13 | | | | | | | WB |
各操作的发射时间图:
| 操作 | 发射时间 |
| ------ | -------- |
| ADD | 1 |
| SUB | 4 |
| MUL | 3 |
| DIV | 7 |
各操作的完成时间图:
| 操作 | 完成时间 |
| ------ | -------- |
| ADD | 7 |
| SUB | 10 |
| MUL | 8 |
| DIV | 13 |
执行这个程序所用的时间为13个时钟周期。
阅读全文