实验二加法乘法静态多功能流水线调度一.实验目的:1、掌握静态多功能流水线指令调度的方式
2、理解重构指令序列对指令执行性能的影响,3、了解在处理机中指令调度的一般方式
二.实验内容:(一)给定要执行的任务和执行该任务的流水线结构流水线的调度方式能够提高任务的并行度,但是针对不同的任务,由于相关的存在,其并行度的提高是不一致的
在开始程序设计前,我们首先要给定所要完成的任务:这里我们使用矩阵点积运算任务,aibi
n的数值可以变化,通过变换n的值用同一程序进行多次模拟
给定流水线:流水线分五个步骤,每个步骤的执行时间均为一个单位时间;其中1-2-3-5组成加法流水线,1-4-5组成乘法流水线
加法和乘法不能同时执行(二)对任务进行分解对于静态多功能流水线,由于在流水线中同时只能有一种操作的指令,因此在任务分解中首先要把相同类型的指令集中起来执行
显然乘法的结果是加法计算的源数据,因此先执行乘法后执行加法
加法和乘法不同时执行,因此虽然是一个加法乘法多功能流水线,把它分成两个单独的加法和乘法流水线看待是可以的
(三)任务分解程序模拟的思路首先,Ai是对称的,Ai和Aj都是一个源操作,任意更换其相对位置,计算的结果是不变的,对Bi也是同样,但是乘法运算只能是Ai×Bi
因此,我们必须把Ai和Bi分开存放,且只能将下标相同的两个数据配对进行乘法,而加法的所有源数据是完全对称的,可以按照实验一的方式处理
对于乘法,对应两个源阵列,每次从两个原矩阵的对列中各取出一个源数据,送入乘法器
计算的结果送入加法器的源数据队列
加法器的源数据队列初始为空,乘法器的源数据队列初始分别放入A1-An和B1-Bn
(四)加法流水线的设计12354XY加法流水线分为四个步骤,每个步骤时间花费是一个单位时间
模拟程序的目的是为了计算总的执行时间,因此对于每个步骤执行的功能并不需要关心
为此设计一个总步数为