- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机系统结构试验大纲
计算机系统结构实验指导书
王雁东 王华 编
电子科技大学计算机学院
2005年8月
目 录
实验一……………………………..2
实验……………………………….6
实验……………………………. 10
实验……………………12
附录 实验报告……………………………………………………………15
实验一
一.实验目的:
1. 通过本实验,理解指令调度的方法。
2.掌握使用VC开发平台模拟处理机内部指令流调度的编程策略。
二.实验内容:
(一)给定要执行的任务和执行该任务的流水线结构
流水线的调度方式能够提高任务的并行度,但是针对不同的任务,由于相关的存在,其并行度的提高是不一致的。在开始程序设计前,我们首先要给定所要完成的任务:
这里我们使用最简单的累加操作 。 n的数值可以变化,通过变换n的值用同一程序进行多次模拟。
给定流水线:
流水线分四个步骤,每个步骤的执行时间均为一个单位时间。
(二)对任务进行分解
任务分解的目的是为了减少相关。例如n=4时,任务分解为 A1+A2、A3+A4、
A1+A2+A3+A4 三个加法操作。
如果n的大小是未知的,任务该怎样分解呢?换而言之,在程序模拟中,有没有一种通行的分解处理方式,可以实现对任意数目的源数据的累加的分解?
(三)任务分解程序模拟的思路
首先,Ai是对称的,Ai和Aj都是一个源操作,任意更换其相对位置,计算的累加和的结果是不变的。每次的加法操作能执行的必要条件是存在两个源数据,因此我们可以把所有的源数据放入一个队列中,只要该队列中有两个源,那么就执行加法,加法计算的结果是下一次计算的源数据,我们把它再放回源数据队列,直到对列中只剩一个数据、同时加法流水线中没有执行加法操作时,整个累加过程完成。
(四)加法流水线的设计
加法流水线分为四个步骤,每个步骤时间花费是一个单位时间。模拟程序的目的是为了计算总的执行时间,因此对于每个步骤执行的功能并不需要关心。
为此设计一个总步数为4步的加法器,接收两个输入数据,经过4个时间片,输出加法的结果。时间片可以用定时器来模拟。
(五)程序设计
程序应包括一个队列,一个加法类,一个定时器,一个输出对话框。
队列用于存放源数据,一开始将n个源数据A1-An放入。
启动定时器,每一个时间片从队列中取出两个源数据,送入加法器(可以通过调用加法器中接口函数,把源数据作为参数传入)。
构造加法器类,可以考虑用一个长度对4的执行队列来模拟4个步骤,每个时间片将队列的数据依次下压一格,队列尾的数据进行加法计算并将结果压入源数据队列。
用一个记数值表示时间开销,每个时间片对该记数值加1。
当源队列只剩一个数据且加法器的执行队列为空时,整个程序结束,记数器的值就是任务执行的总体时间花费。
(五)多次模拟
可以通过循环的方式对n从4-20进行循环,将每次模拟运行的时间开销值在对话框中显示出来。如果可能将结果打印。
三.实验要求:
实验前要做好充分准备,包括对开发环境的了解,程序设计的思路,以及输出的格式。
四.调试步骤
1.编辑源程序,建立一个基于对话框的VC工程.
2.创建队列、定时器、加法器类。
3.创建显示对话框。
4.编码、编译、调试。
五.时空图模拟
用时空图模拟计算执行任务所花费的时间。
六.结果对比
对比程序模拟和时空图模拟的结果,如果应该是一致的。
七、实验报告:
1、程序说明。说明程序的设计、数据结构、类。
2、画出程序框图。
3、写出源程序清单和执行结果。
实验
(一)给定要执行的任务和执行该任务的流水线结构
流水线的调度方式能够提高任务的并行度,但是针对不同的任务,由于相关的存在,其并行度的提高是不一致的。在开始程序设计前,我们首先要给定所要完成的任务:
这里我们使用矩阵点积运算任务, aibi。 n的数值可以变化,通过变换n的值用同一程序进行多次模拟。
给定流水线:
流水线分五个步骤,每个步骤的执行时间均为一个单位时间;其中1-2-3-5组成加法流水线,1-4-5组成乘法流水线。加法和乘法不能同时执行
(二)对任务进行分解
对于静态多功能流水线,由于在流水线中同时只能有一种操作的指令,因此在任务分解中首先要把相同类型的指令集中起来执行。显然乘法的结果是加法计算的源数据,因此先执行乘法后执行加法。
加法和乘法不同时执行,因此虽然是一个加法乘法多功能流水线,把它分成两个单独的加法和乘法流水线看待是可以的。
(三)任务分解程序模拟的思路
首先,Ai是对称的,Ai和Aj都是一个源操作,任意更换其相对位置,计算的结果是不变的,对Bi也是同样,但是乘法运算只能是Ai×Bi。因此,我们必须把Ai和Bi分开存放,且只能将下标相同的两个数据配对进行乘法,而加法的所有源数据是完全对称的,可以按照实验一的方式处理。
对于
文档评论(0)