对于采用了Tomasulo算法和多流出技术的MIPS流水线,考虑以下简单循环的执行。该程序把F2中的标量加到一个向量的每个元素上。 Loop: L.D F0,0(R1) //取一个数组元素放入F0 ADD.D F4,F0,F2 //加上在F2中的标量 S.D F4,0(R1) //存结果 DADDIU R1,R1,-8 //指针减8(每个数据占8个字节) BNE R1,R2,Loop //若R1不等于R2,表示尚未结束,转移 //到Loop继续 现做以下假设。 ①每个时钟周期能流出一条整数型指令和一条浮点操作指令,即使它们相关也是如此。 ②整数ALU运算和地址计算共用一个整数部件,并且对于每一种浮点操作类型都有一个独立的流水化了的浮点功能部件。 ③指令流出和写结果各占用一个时钟周期。 ④具有动态分支预测部件和一个独立的计算分支条件的功能部件。 ⑤跟大多数动态调度处理器一样,写回段的存在意味着实际的指令延迟会比按序流动的简单流水线多一个时钟周期。所以,从产生结果数据的源指令到使用该结果数据的指令之间的延迟为:整数运算1个周期,load指令2个周期,浮点加法运算3个周期。要求: ①列出该程序前面3遍循环中各条指令的流出、开始执行和将结果写到CDB上的时间。 ②如果分支指令单流出,没有采用延迟分支,但分支预测是完美的。请列出整数部件、浮点部件、数据Cache以及CDB的资源使用情况。
答案不对?请尝试站内搜索