云昴

【体系结构】记分牌

| | 【专业·学习】体系结构

Code

    ld f6, a
    ld f2, xtop
    multd f0, f2, f4
    subd f8, f6, f2
    divd f10, f0, f6
    addd f6,f8,f2

配图

第一周期

指令状态表:读取ld指令,处于流出阶段
功能部件状态表:知道目标寄存器位F6,源寄存器为R0,Rj为yes表示没有读取R0
结果寄存器状态表:F6为integer

第二周期

第一条指令进入Read周期,数据可用,所以Rj为no; 第二条指令需要用到功能部件integer,所以无法进入Issue周期。

第四周期

写结果周期。

第六周期

第六个周期,第二条ld指令进入Read阶段,蓝色所示,其余同第一条指令的Read阶段。 第三条指令进入流出(Issue)阶段,其操作是f0<-f2*f4,所以Fi为f0,Fj为f2,Fk为f4(又因为查结果寄存器可知,f2由integer决定,所以为Qj为integer) Rj为no因为操作数未准备就绪

第七个周期,第三条指令因为无法读取f2无法继续下去,第四条指令进入流入阶段,第二条指令进入执行阶段。

第八个周期,第五条指令进入流入阶段,第二条指令进入写结果阶段。

第九个周期

multd指令的功能部件状态改变。

云昴