系统实验三-Read.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
系统实验三-Read.doc

组员:许 主 洪 980119 计81 安 东 981290 计81 李 章晶981299 计81 PAGE PAGE 2 2002系统结构实验三 第 PAGE 2 页 (共 NUMPAGES 13 页) 2002-1-14 设计实现Tomasulo调度算法 组员:计81许主洪 980119 计 81 安 东 981290 计 81李章晶 981299 【 文档目录 】 实验要求 运行环境 实验原理 程序功能 程序运行说明 程序实现 实验总结 【 实验要求 】 设计实现Tomasulo算法,显示指令执行过程中的数据流向以及寄存器值变化情况,指 示出各时钟周期各浮点部件的工作状态。 【 运行环境 】 程序在Mircosoft Windows 2000下使用Borland Delphi 6编写调试完成。 【 实验原理 】 Tomasulo算法: Tomasulo 算法又称公共数据总线法(或令牌法),采用乱序流动方式执行指令, 来提高流水线的吞吐率和效率,并通过分散控制的办法处理数据相关。 IBM360/91处理机实现基本原理: IBM360/91处理机的浮点处理部件中,有一个浮点加法器和一个浮点乘/除法器。 加法器为两段流水线,输入端有三个保存站A1、A2、A3,乘/除法器为六段流水线 ,输入端有两个保存站M1,M2。保存站采用随机方式工作,由保存站中的控制部件 控制。当任意一个保存站中的两个源操作数到齐后,如果对应的操作部件空闲,可 以把两个操作数立即送到浮点操作部件中执行。 IBM360/91处理机的浮点处理部件采用先行控制方式。浮点先行操作站中存放的是 经过指令分析部件预处理之后的寄存器-寄存器型指令,这类指令中的源操作数 可能来自浮点通用计数器,也可能来自浮点先行读数站,运算结果送到公共数据总 线,送入浮点通用寄存器、浮点加法器的保存站或浮点乘/除法的保存站等;最终运 算结果一般送到浮点后行写数站,由浮点后行写数站负责写到主存储器中。 本实验实现的模拟机实现原理: 在我们所实现的浮点处理模拟机,浮点处理部件有三个浮点加法器和两个浮点乘/除法器。(这两种处理部件的个数可以由用户需求设置)。 首先,先往指令队列输入指令(模拟先行指令缓冲站),然后指令队列察看是否有空闲的功能单元可用。如果有,发射,否则,等待直到有需要的执行功能单元空闲。 运行状态纪录每条指令的执行状态,记录三种状态:发射周期,浮点运算完周期和写回结果周期。 指令发射时,如果时Load指令,则送到Load缓冲栈;如果时Store,,则送到Load缓冲栈;其他浮点运算送到相应的保存站RS。当等待的数据有效时,各执行单元的计数器启动,每个一个时钟周期Time减1。当某个部件的Time减为0时,表示执行完毕,则置执行完毕标志为当前的时钟,同时进入写会结果阶段。 在结果写回阶段,功能部件把数据广播到总线上(用BroadCast方法模拟)。每个功能部件都同时检查总线是否等待的数据出现,如果检查到想要的结果,计Vj or Vk的数据为AVAILABLE状态。当Vj 和Vk同时为AVAILABLE(或STORE的Qi为AVAILABLE),该功能部件就可以开始执行。 在该模拟机上,内存采用数组模拟,有两组寄存器,浮点寄存器和整型寄存器,具体运行功能如下详述! 【 程序功能 】 可支持任意输入指令 自动演示功能,可动态调整时钟周期大小 有带值计算和表达式计算两种运行模式 支持对内存,寄存器的赋值操作 能指示出时钟周期各浮点部件的工作状态 能显示指令执行过程的数据流 界面十分友好,易操作性强 良好程序数据结构,扩展性强 【 程序运行说明 】 程序运行在Windows操作系统下,运行后显示如下主窗口: 各部分的内容在图上一目了然。分别表示了指令,状态,内存以及寄存器等得内容,下面根据该模拟程序的具体操作来说明各个部分的运行方式。 首先是寄存器和内存的赋值 选择菜单中的赋值[S]下的寄存器赋值[R]为寄存器赋值,内存赋值[M]为内存赋值,或者直接点击工具栏上的按钮。选择菜单后将会跳出如下窗口: 选择适当的寄存器后输入数据或者输入内存地址并输入地址,然后点击修改键确定输入。可以连续输入多个数据,输入完毕后点击结束键关闭该窗口。比如我们将寄存器F0设置为60,F1设置为250,将内存地址100设置为123.456,将内存地址300设置为654.321,然后点击结束。这个时候主窗口的也会作相应的变化,内存的显示部分如下: 寄存器的显示部分如下: 然后是程序指令的输入 选择菜单项输入指令[I]可以执行与指令相关的各种操作。子菜单缺省输入[D]将指令设置为一个已经确定的指令序列。子菜单动态输入[M]为使用者动态的

您可能关注的文档

文档评论(0)

zhongshanmen002 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档