文档详情

计算机系统结构实验三加法乘法动态多功能流水线调度.doc

发布:2016-04-27约8.8千字共13页下载文档
文本预览下载声明
计算机专业类课程 实验报告 课程名称:计算机系统结构 学  院:计算机科学与工程 专  业:计算机科学与技术 学生姓名:林怡 学  号:2012060020023 指导教师:叶娅兰 日  期: 2015年 6月 5日 电 子 科 技 大 学 实 验 报 告 实验三 实验名称:加法乘法动态多功能流水线调度 实验学时:4 实验内容和目的: 实验目的: 掌握加法乘法动态双功能指令调度的方式, 理解静态多功能流水线和动态多功能流水线在调度模式上的区别, 了解指令并行度上限的概念。 实验内容: (一)给定要执行的任务和执行该任务的流水线结构 流水线的调度方式能够提高任务的并行度,但是针对不同的任务,由于相关的存在,其并行度的提高是不一致的。在开始程序设计前,我们首先要给定所要完成的任务: 这里我们使用矩阵点积运算任务, aibi。 n的数值可以变化,通过变换n的值用同一程序进行多次模拟。 给定流水线: 流水线分五个步骤,每个步骤的执行时间均为一个单位时间;其中1-2-3-5组成加法流水线,1-4-5组成乘法流水线。加法和乘法可以同时执行 (二)对任务进行分解 动态多功能流水线不同于静态多功能流水线,流水线中同时只能有多种种操作的指令,因此不能将其划分为两个相互独立的加法流水线和乘法流水线。 我们考虑设计一个加法乘法混合运算器,加法4步,乘法三步,在送入源数据时应指明执行哪种运算。 (三)任务分解程序模拟的思路 在实验二的基础上。我们对设计进行变更。 加法乘法有一个类实现,称之为加乘法类。乘法的数据源为两个队列,加法的数据源为一个队列。 加法器的源数据队列初始为空,乘法器的源数据队列初始分别放入A1-An和B1-Bn。 (四)加乘法流水线的设计 模拟程序的目的是为了计算总的执行时间,因此对于每个步骤执行的功能并不需要关心。 为此设计一个能够同时执行加法和乘法的运算器类,每次接收两个输入数据,对于加法,经过4个时间片,输出加法的结果;对于乘法,经过3个时间片,输出加法的结果。时间片可以用定时器来模拟。 (五)乘法流水线的设计 乘法流水线分为三个步骤,每个步骤时间花费是一个单位时间。模拟程序的目的是为了计算总的执行时间,因此对于每个步骤执行的功能并不需要关心。 为此设计一个总步数为三步的加法器,接收两个输入数据,经过3个时间片,输出乘法的结果。时间片可以用定时器来模拟。 (五)程序设计 程序应包括三个队列,一个加乘法类,一个定时器,一个输出对话框。 两个乘法队列用于存放源数据,一开始将A1-An和B1-Bn分别放入两个乘法队列。 启动定时器,每一个时间片从两个乘法队列中各取出一个源数据、或者从加法队列中取出两个数据源(依次只能是两者中的一种,可以考虑首先从加法队列中取,请思考为什么加法优先?),送入加乘法器(可以通过调用乘法器中对应的加法接口函数或者乘法接口函数,把源数据作为参数传入)。 构造加乘法器类,可以考虑用一个长度对5的执行队列来模拟流水线的5个步骤,对于队列的元素,除了要表示两个源数据外,还需要表示对应这两个数据所要执行的操作(乘法或加法),每个时间片将队列的数据根据执行的操作依次下压一格(加法下压的顺序是1-2-3-5,乘法下压的顺序是1-4-5),队列尾的数据进行对应的计算,并将结果压入加法器源数据队列。 当乘法源队列和乘法源队列均为空且加乘法器的执行队列也为空(所有运算执行完毕)时,任务执行完毕。 用一个记数值表示时间开销,每个时间片对该记数值加1。最后的记数值是任务的总的时间开销。 (五)多次模拟 可以通过循环的方式对n从4-20进行循环,将每次模拟运行的时间开销值在对话框中显示出来。如果可能将结果打印。 实验原理: 程序设计及数据结构: 实验程序共有6个类,分别是: DynamicPiplineTest 公共类,测试程序,每一个n的循环,将计时器清零并初始化 长度为n的乘法操作数队列A与B,每个时间片从乘法操作数队列中取出Ai与Bi,进行乘法操作,并将结果送入加法器的操作数队列。当乘法器的源操作数队列为空时开始执行加法操作,当加法操作数队列只剩一个操作数且加法器的执行队列为空的时候,程序结束,输出n和计时器timercounter的值,以及最终的计算结果sum; OperaQueue 操作数队列类,包括一个操作数队列数据结构、队列初始化函数 OperaQueue(int queueLength)、从队列中取一个源操作数函数getOperationNum()和将加法器计算的结果压入队尾的函数pushOperationNum(int op); Addition 加法器类(也可以作乘法器类),一个加法(乘法)执行队列additionQueue, 一个用于暂存操作数的队列addOp
显示全部
相似文档