目录
记分牌算法的四个阶段
Issue:解析指令,检查是否存在结构相关(structural hazards)及写后写数据相关(WAW)。
Read Operands:检查是否存在写后读数据相关(RAW),若没有,读操作数。
满足前两个阶段即可进入下一阶段,无需等待。即按序发出,乱序执行。
Execution:收到操作数后执行。
Write Result:检查是否存在读后写数据相关(WAR),若没有,写入。
记分牌算法的三个状态表
Instruction status:记录指令处于四个阶段中的哪一个。
Functional unit status:指示功能单元的状态,共9个字段。
- Busy-指示功能单元是否忙。
- Op-指示功能单元执行的操作。
- Fi-目的地寄存器
- Fj,Fk-源寄存器编号
- Qj,Qk-产生源寄存器Fj,Fk的功能单元
- Rj,Rk-Fj,Fk准备就绪的标志
Register result status:指示哪个功能单元将写入寄存器,没有时显示空白。
指令执行周期
指令 | 周期 |
LD | 1 |
SD | 1 |
ADDD | 2 |
SUBD | 2 |
MULT | 10 |
DIVD | 40 |
代码分享
代码使用
程序导入Pycharm,python manage.py runserver。如果有缺包问题,请看package.txt。
上课演示
仅需展示前端每个功能部件的功能,挑几个周期讲解下指令为什么执行到这一步,有哪些数据相关。
注意项:1.不用打开后端,给王老师(如果你也是她的学生,记得前端多改点)讲某个变量什么意思,没人愿意听这个。
2.前端界面一定要对比清楚,颜色比较合适。
3.在我的代码基础上可以增加类似Windlx的统计窗口,会有加分。
4.教三的是VGA接口,就是那个双排的,现在电脑一般都没有了,如果你的没有,记得拿转接头。
结果