加法乘法动态多功能流水线调度

上传人:m**** 文档编号:199471339 上传时间:2023-04-11 格式:DOCX 页数:8 大小:156.89KB
返回 下载 相关 举报
加法乘法动态多功能流水线调度_第1页
第1页 / 共8页
加法乘法动态多功能流水线调度_第2页
第2页 / 共8页
加法乘法动态多功能流水线调度_第3页
第3页 / 共8页
点击查看更多>>
资源描述
实验报告学生姓名:学号:一、实验室名称:计算机学院计算中心二、实验项目名称: 加法乘法动态多功能流水线调度三、实验原理:把加法和乘法流水线分开,完成乘法流水线后再进行加法流水线。把一个乘法任务分成三个部分,然后同时执行多个任务以模拟指令的流水线调度。三个步骤每同时完 成一次任务执行总时间就加一,直到最后一个操作数进入流水线,此时加法流水线开始工作。把一个加法任务分成四个部分,然后同时执行多个任务以模拟指令的流水线调度。四个步骤每同时完 成一次任务执行总时间就加一,直到没有任务时停止,看此时的时间与理论上的流水线调度时间的差距来 判别程序是否成功模拟了流水线指令的调度。四、实验目的:1、 掌握加法乘法动态双功能指令调度的方式,2、理解静态多功能流水线和动态多功能流水线在调度模式上的区别,3、了解指令并行度上限的概念。五、实验内容:(一)给定要执行的任务和执行该任务的流水线结构流水线的调度方式能够提高任务的并行度,但是针对不同的任务,由于相关的存在,其并 行度的提高是不一致的。在开始程序设计前,我们首先要给定所要完成的任务:这里我们使用矩阵点积运算任务,E aibi。n的数值可以变化,通过变换n的值用同1=1一程序进行多次模拟。给定流水线:XY流水线分五个步骤,每个步骤的执行时间均为一个单位时间;其中1-2-3-5组成加法流 水线,1-4-5组成乘法流水线。加法和乘法可以同时执行(二)对任务进行分解动态多功能流水线不同于静态多功能流水线,流水线中同时只能有多种种操作的指 令,因此不能将其划分为两个相互独立的加法流水线和乘法流水线。我们考虑设计一个加法乘法混合运算器,加法4步,乘法三步,在送入源数据时应 指明执行哪种运算。(三)任务分解程序模拟的思路在实验二的基础上。我们对设计进行变更。加法乘法有一个类实现,称之为加乘法类。乘法的数据源为两个队列,加法的数据 源为一个队列。加法器的源数据队列初始为空,乘法器的源数据队列初始分别放入AlAn和BiBn o(四)加乘法流水线的设计模拟程序的目的是为了计算总的执行时间,因此对于每个步骤执行的功能并不需要 关心。为此设计一个能够同时执行加法和乘法的运算器类,每次接收两个输入数据,对于 加法,经过4个时间片,输出加法的结果;对于乘法,经过3个时间片,输出加法的结 果。时间片可以用定时器来模拟。(五)乘法流水线的设计乘法流水线分为三个步骤,每个步骤时间花费是一个单位时间。模拟程序的目的是为了计算总的执行时间,因此对于每个步骤执行的功能并不需要关心。为此设计一个总步数为三步的加法器,接收两个输入数据,经过3个时间片,输出 乘法的结果。时间片可以用定时器来模拟。(五)程序设计程序应包括三个队列,一个加乘法类,一个定时器,一个输出对话框。两个乘法队列用于存放源数据,一开始将AlAn和Bl-Bn分别放入两个乘法队列。启动定时器,每一个时间片从两个乘法队列中各取出一个源数据、或者从加法队列 中取出两个数据源(依次只能是两者中的一种,可以考虑首先从加法队列中取,请思考 为什么加法优先?),送入加乘法器(可以通过调用乘法器中对应的加法接口函数或者乘 法接口函数,把源数据作为参数传入)。构造加乘法器类,可以考虑用一个长度对5的执行队列来模拟流水线的5个步骤, 对于队列的元素,除了要表示两个源数据外,还需要表示对应这两个数据所要执行的操 作(乘法或加法),每个时间片将队列的数据根据执行的操作依次下压一格(加法下压的 顺序是1-2-3-5,乘法下压的顺序是1-4-5),队列尾的数据进行对应的计算,并将结果 压入加法器源数据队列。当乘法源队列和乘法源队列均为空且加乘法器的执行队列也为空(所有运算执行完 毕)时,任务执行完毕。用一个记数值表示时间开销,每个时间片对该记数值加1。最后的记数值是任务的 总的时间开销。(五)多次模拟可以通过循环的方式对n从4 20进行循环,将每次模拟运行的时间开销值在对话 框中显示出来。如果可能将结果打印。六、实验器材(设备、元器件):PC 机一台,Visual StudioC+2010七、实验步骤及操作:给定流水线:1. 算法原理阐述(包括如何实现流水线,如何实现队列,数据相关的分解策略);实现流水线的方法:通过三个乘法子程序和四个加法子程序模拟流水线的各个步骤。实现队列:两个数据源队列和一个结果队列,前两个数据源对应位相乘后结果放进结果队列,然后加 法流水线从结果队列取数据运算。数据相关的分解策略:从键盘读入数据个数,进行乘法流水线时每次取对应的两个数据源数据进行运算。然后加 法流水线时每次开始时取两个数,可操作数减二,执行完最后一步可操作数加一。2. 算法流程图(如何模拟加法流水线在每个单位时间的流动);3.关键数据结构的定义和解释;int count=0; 数据个数(n)int scount=0;控制乘法数据个数int time=O; 总时间int templ=l;记录是否有加法步骤在执行任务 int temp2=l;记录是否有乘法步骤在执行任务int tl;/ti为每个加法步骤的返回值 int tt1;/tti为每个乘法步骤的返回值 int source115;两个数据源 int source215;int result15;每步乘法结果保留区 int Add1()/Addi 为加法步骤 i int Mul1()Mul为乘法步骤i八、实验数据及结果分析:(给出5组及以上实验数据,5n15,画出每组数据的时空图)任务表达式程序模拟时间时空图计算时间i=1aiXY艺 ai*bii = 11717工 ai*bii = 11919工 ai*bii = 12121工 ai*bii = 12323工 ai*bii = 12525N=56789二234567091234:567S91234567S91234567S91011121314151617N=910111213141516171234567891011121314:1516171234:567S910111213141516171234567891011121314:1516171234567091011121314151617IS19202122232425E:VC_proj ecttestDebugt est. exe目回!nPlease tinput anumberkvi T ime is17,andresultis551I?j vuuant toexit -OPNnPleaseinput anumber右LnT ime is19,andresultis91vuuant toexit -OPNHPleaseinput anumberPT ime is21,andresultis14SPa vuuant toexit -OPNnPleaseinput anumber8T ime is23,andresultis2S4Pa vuuant toexit -OPNnPleaseinput anumber9T ime is25,andresultis285Do you uant to exit : or NLd九、实验结论:由实验模拟的时空图,所得的结果和通过绘出时空图所得的结果是一致的。即所用 的时间是一样的。所以程序是正确的。通过多组数据,正确的模拟出了实验结果。十、总结及心得体会:通过本实验的学习,更深入的理解了时空图的概念。更了解了指令执行中的相关的 概念,明白了通过指令的分解可以减少相关的做法。十一、对本实验过程及方法、手段的改进建议:可以考虑其他的分解指令流程的方法。建议老师或助教多一点,这样可以更快和解答同学们的问题。报告评分:指导教师签字:
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!