计算机体系结构实验报告
实验一 流水线中的相关
一.实验目的
1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;
2. 加深对计算机流水线基本概念的理解;
3. 进一步了解DLX基本流水线各段的功能以及基本操作;
4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;
5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。
二.实验平台
WinDLX模拟器
三.预备知识
1. WinDLX
WinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线
是如何工作的。该模拟器可以装载DLX汇编语言程序(后缀为“.s”的文件),然后单步、设
断点或是连续执行该程序。CPU的寄存器、流水线、I/O和存储器都可以用图形表示出来,
以形象生动的方式描述DLX流水线的工作过程。模拟器还提供了对流水线操作的统计功能,
便于对流水线进行性能分析。
有关WinDLX的详细介绍,见WinDLX教程。
2. 熟悉WinDLX指令集和WinDLX源代码的编写
3. 复习和掌握教材中相应的内容
(1)DLX基本流水线
(2)流水线的结构相关与数据相关
� 结构相关:当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,
发生资源冲突时,将产生“结构相关”。
� 数据相关:当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中
重叠执行时,就可能引起“数据相关”。
(3)定向技术的主要思想:在发生数据相关时,等待前面计算结果的指令并不一定真的
马上就用到该计算结果,如果能够将该计算结果从其产生的地方直接送到其他指令
需要它的地方,就可以避免暂停。
四.实验内容及结果
1. 用 WinDLX 模拟器执行下列三个程序(任选一个):
� 求阶乘程序 fact.s
� 求最大公倍数程序 gcm.s
� 求素数程序 prim.s
分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,
观察CPU 中寄存器和存储器的内容。熟练掌握WinDLX 的操作和使用。
注意:fact.s 中调用了input.s 中的输入子程序。load 程序时,要两个程序一起装入
(都select 后再点击load)。gcm.s 也是如此。
说明:此实验我们选择:求阶乘程序fact.s
1)用 WinDLX 模拟器执行求阶乘程序 fact.s 。
2)程序的作用:这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其
阶乘,然后将结果输出。该程序中调用了 input.s 中的输入子程序,这个子程序用于读入正
整数。