https://www.bilibili.com/video/av19929862?p=17
https://www.icourses.cn/web/sword/portal/shareDetails?&cId=3266#/course/chapter
第1个周期
第1条LD指令流出,占用第1个Load部件,读出的值需要写到F6
第2个周期
第2条LD指令流出,占用第2个Load部件
此时第1条指令进入地址计算阶段
第3个周期
MULTD指令流出,占用Mult1部件。第一个操作数F2没有就绪,等待Load2部件的结果。第二个操作数F4是就绪的,直接读入
第4个周期
第1条LD指令访存完成,数据写入F6
SUBD指令使用加法保留站,有空闲单元,可以流出。目标操作数F8,标志由Add1产生结果。第一个源操作数F6已经就绪,写入Vj,第二个源操作数F2需等待Load2的结果
(LD指令取数据后,由公共数据总线写到F6,同时也写到需要Load结果的Add1部件)
第5个周期
第2条LD指令也完成了写,Load缓冲都空闲了
Ld的数据由公共数据总线写到F2和需要使用Load结果的加法和乘法部件
减法计算需要2个时钟周期,乘法计算需要10个时钟周期,分别开始计时
DIVD指令流出,第一个源操作数F0需等待乘法的结果,第二个源操作数F6已经就绪
第6个周期
加法指令流出,第一个操作数F8结果需等待减法产生,第二个操作数F2已经就绪,可以直接取数
减法计算还剩1个时钟周期,乘法计算还剩9个时钟周期
第7个周期
减法计算完成,下一周期该结果将被送到公共数据总线
第8个周期
减法结果送到F8,以及需要该结果的Add2部件
Add2部件所有源操作数就绪,进入计算阶段,需要2个时钟周期
第9个周期
加法计算还剩1个时钟周期,乘法计算还需6个时钟周期
除法还在等待操作数产生,不能执行
第10个周期
加法计算完成
第11个周期
加法计算结果写入F6
第12个周期
乘法继续计算
第13个周期
乘法继续计算
第14个周期
乘法继续计算
第15个周期
乘法计算完成
第16个周期
乘法结果写到F0,以及除法部件
除法指令的两个源操作数都就绪,进入计算,需要40个时钟周期
第55个周期
除法计算还剩1个时钟周期
第56个周期
除法计算完成
第57个周期
除法结果写入F10
至此,所有指令结束
指令顺序流出,乱序执行,乱序结束