计算机系统结构实验三课件.doc

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

计算机系统结构实验 实验三:DLX 流水线运行分析 一、实验目的 通过本实验,熟悉 WinDLX 模拟器的操作和使用,了解 DLX 指令集结构及其特点。 二、实验内容 (1) 用 WinDLX 模拟器执行求阶乘程序 fact.s 。执行步骤详见“WinDLX教程” 。 这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。该程序中调用了 input.s 中的输入子程序,这个子程序用于读入正整数。 (2) 输入数据 “3” 采用单步执行方法, 完成程序并通过上述使用 WinDLX, 总结 WinDLX的特点。 注意观察变量说明语句所建立的数据区,理解 WinDLX 指令系统。 三、实验步骤 1.双击 Code 图标,从左到右依次为代表存储器内容的三栏信息:地址 (符号或数字)、命令的十六进制机器代码和汇编命令。 点击主窗口中的 Execution 开始模拟。按 F7 键开始执行。这时,窗口中带有地址“$TEXT”的第一行变成黄色。按下 F7 键,模拟就向前执行一步,第一行的颜色变成橘黄色,下一行变成黄色。这些不同颜色指明命令处于流水线的哪一段。命令“jalInputUnsigned”在 IF 段, “addi r1, r0, 0x1000”在第二段 ID。其他方框中带有一个“X”标志,表明没有处理有效信息。 2.再次按下 F7 键,代码窗口中的颜色会再改变,红色表明命令处入第三段“intEX”。 再按下 F7,在代码窗口中,黄色出现在更下面的位置,并且是唯一彩色行。 打开 Clock Cycle Diagram 窗口。它显示流水线的时空图。 第一条命令正在 MEM 段,第二条命令在 intEX 段,第四条命令在 IF 段。而第三条命令指示为“aborted”。其原因是:第二条命令(jal)是无条件分支指令,但只有在第三个时钟周期, jal 指令被译码后才知道,这时,下一条命令 movi2fp 已经取出,但需执行的下一条命令在另一个地址处,因而,movi2fp 的执行应被取消,在流水线中留下气泡。 3.当通过 Code 窗口观察代码时,接下来的几条指令几近一样,它们都是 sw-操作:将寄存器中的数写入存储器中。重复按 F7 将很枯燥,因此使用断点加快此过程。现在,指向 Code 窗口中包含命令 trap 0x5 的 0x0000013c 行,此命令是写屏幕的系统调用。单击命令行,然后点击主窗口菜单 Code,单击 Set Breakpoint (确保命令行仍被标记!),将弹出一个新的“Set Breakpoint”窗口。通过此窗口,你可以选择命令运行到流水线的哪一阶段时,程序停止执行。缺省为 ID 段。点击 OK 关闭窗口。 在 Code 窗口中, trap 0x5 行上出现 了“BID”,它表示当本指令在译码段时,程序中止执行。 现在点击 Execution / Run 或按 F5,模拟就继续运行,弹出窗口,输入14。 会出现一个对话框提示你“ID-Stage: reached at Breakpoint #1”,按确认按钮关闭。 点击 Clock cycle diagram 窗口中的 trap 0x5 行,你将看到模拟正处于时钟周期 14。 trap 0x5 行如下所示: 原因是:无论何时遇到一条trap 指令时,DLX 处理器中的流水线将被清空。在Information 窗口(双击trap 行弹出)中,在IF 段显示消息“3 stall(s) because of Trap-Pipeline-Clearing!”。 指令 trap 0x5 已经写到屏幕上,你可以通过点击主窗口菜单条上的 Execute /Display DLX-I/O 来查看。 四、实验要求 为进一步模拟,点击 Code 窗口,用箭头键或鼠标向下滚动到地址为 0的那一行(指令是 lw r2, SaveR2(r0)),点击此行,点击 Code / Set Breakpoint / OK,在这一行上设置一个断点。采用同样的方法,在地址 0x000001a4(指令 jar r31)处设置断点。 现在按 F5 继续运行。 这时, 会弹出 DLX-Standard-I/O 窗口,键入 20 然后按 Enter,模拟继续运行到断点 # 2 处。 在Clock cycle diagram 窗口中,在指令之间出现了红和绿的箭头。红色箭头表示需要一个暂停,箭头指向处显示了暂停的原因。R-Stall(R-暂停)表示引起暂停的原因是RAW。绿色箭头表示定向技术的使用。 双击主窗口中的Register 图标。Register 窗口会显示各个寄存器中的内容。看一下R1 到R5 的值。

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档