计算机方面 单多流水线

来源:百度知道 编辑:UC知道 时间:2024/05/22 18:47:03
在下列不同的处理机上执行6*6的矩阵乘法C=A*B,计算所需要的最短时间.只计算乘法指令和加法指令的执行时间,不计算取操作数,数据传送和程序控制等指令的执行时间.加法部件和乘法部件的延迟时间都是3个时钟周期,另外,加法指令和乘法指令还要经过"取指令"和"指令译码"的时钟周期,每个时钟周期为20ns,C的初始值为"0".各操作部件的输出端有直接数据通路连接到有关操作部件的输入端,在操作部件的输出端设置有足够容量的缓冲寄存器.如果处理机内只有一个通用操作部件,采用顺序执行指令,那么所需要的时间为多少?如果单流水线标量处理机,有一条两个功能的表态流水线,流水线每个功能的延迟时间均为一个时钟周期,加法操作和乘法操作各经过3个功能段,那么所需要的时间为多少?
希望高手们尽量详细讲解,本人感激不尽

一、计算矩阵所需操作数(需了解矩阵乘法相关计算不另行复述)
乘法:6x6x6=216 加法:6x6x5=180
二、顺序执行的情况
先取值和指令译码用掉2时钟周期,然后无论是乘法还是加法还要用掉3时钟周期,也就是无论做乘法还是加法都是一次运算要用5时钟周期
(216+180)x5x20ns=39600ns
三、单标处理机的情况(需了解流水线相关知识不另行复述)
第一条指令进入流水线,先取值和指令译码用掉2时钟周期;然后执行乘法,第一次用掉3时钟周期;注意接下来的乘法运算不再需3个时钟周期,只需1时钟周期,那做乘法一共用掉216-1时钟周期;乘法做完轮到加法,第一次加法运算也要用掉3时钟周期,接下来的运算跟乘法的情况类似,会用掉180-1时钟周期
全部时间就是:(2+3+216-1+3+180-1)x20ns=402x20=8040ns