实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一熟悉WinDLX的使用

实验目的:

通过本实验,熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点。

实验内容:

1. 参考《WinDLX 教程》,熟悉掌握WinDLX的配置和使用,掌握“Register”,

“Code”,“Pipeline”,“Clock Cycle Diagram”,“Statistics”和“Breakpoints”

等窗口的特性和用法。

2. 用WinDLX模拟器执行求阶乘程序fact.s。

这个程序说明浮点指令的使用。该程序从标准输入端读入一个整数,求其阶乘,然后将结果输出。

该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。

3. 查阅资料,熟悉理解DLX指令,画出各程序的流程图。

实验结果如图所示:

实验二结构相关

实验目的:

(1)了加深对计算机流水线基本概念的理解。

(2)理解DLX结构如何用5段流水线来实现,理解各段的功能和基本操作。

(3)加深对结构相关的理解,了解结构相关对CPU性能的影响

实验内容和步骤:

1.理解预备知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌

握各流水寄存器的含义(查看WinDLX软件中的help)。(用鼠标双击各段,可以看到各流水寄存器的内容)。

填写下列各寄存器的含义:

IMAR:__指令内存地址寄存器_____________________

IR:____指令寄存器________________

A,B:____ALU操作数寄存器A和B__________________

BTA:___分支目标地址寄存器___________________

ALU:______ALU输出寄存器________________

DMAR:_____数据内存地址寄存器________________

SDR:_______存数据寄存器____________

LDR:_______取数据寄存器____________________

2.观察程序在流水线中的执行情况,步骤如下:

①加载程序structure_d.s。

②关闭“Enable Forwarding”定向功能。

③选定“Absolute Cycle Count”项。

④用单步执行一个周期的方式执行该程序,观察每一个周期中,各段流水寄存器内容

的变化、指令的执行情况(“Code”窗口)以及时钟周期图。

⑤当执行到第25个时钟周期时,各段分别正在处理的指令是:

IF:___IMAR<-PC(=loop+0x18)__ IR<-Mem[MAR](=0x00822822)

PC<-PC+4(=loop+0x1c)_______

ID:____________(空)_________________

intEX:_____ALU<-A+(8)(=0x190)(A=0x188)_______________________

MEM:_______Noting to do_____________________

WB:_________D2<-ALU(=2)_____________________

⑥这时各流水寄存器中的内容为:

IMAR:____0x0000012c______________________

IR:_______0x00822822______________________

A,B:______0x00000188____0x00000000__________________

ALU:_____0x00000190______________________

3.观察和分析结构相关对CPU性能的影响,步骤如下:

①重新加载程序structure_d.s。

②执行该程序,找出存在结构相关的指令对以及导致结构相关的部件。

③记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百

分比。

④把浮点加法器的个数改为4个。

⑤再次重复执行①~③的工作。

⑥记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百

分比。

⑦分析结构相关对CPU性能的影响,讨论解决结构相关的方法。

实验三数据相关

实验目的:

(1)了加深对计算机流水线基本概念的理解。

(2)理解DLX结构如何用5段流水线来实现,理解各段的功能和基本操作。

(3)加深对数据相关的理解,了解数据相关对CPU性能的影响。

(4)掌握如何使用定向技术来减少数据带来的暂停。

实验内容和步骤:

1. 启动WinDLX。

2. 观察不采用定向技术的情况下的数据相关,步骤如下:

①全部复位。

②加载程序data_d.s。

③关闭定向功能,通过Configuration菜单中的Enable Forwarding选项设置。

④用单步执行一个周期的方式执行该程序,同时查看时钟周期图,列出在什么时候发生了RAW冲突。

⑤记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。

3. 观察采用定向技术的情况下的数据相关,步骤如下:

①全部复位。

③打开定向功能,通过Configuration菜单中的Enable Forwarding选项设置。

④用单步执行一个周期的方式执行该程序,同时查看时钟周期图,列出在什么时候发生了RAW冲突,并与步骤2-④的结果进行比较。

⑤记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。

4. 根据上面记录的数据,计算采用定向技术后性能提高的倍数。

实验结果:

关闭定向功能时发生RAW冲突的时钟周期为7,11和14;程序执行的总时钟周期数为15,暂停时钟周期数为3,比率为3/15=0.2

打开定向功能时发生RAW冲突的时钟周期为2,3,6,7,10,11,13,14;程序执行的总时钟周期数为15,暂停时钟周期数为8,比率为8/15=0.5625

实验四指令调度

实验目的:

(1)加深对指令调度的理解。

相关文档
最新文档