计算机体系结构实验报告

实验一 流水线中的相关

一.实验目的

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中的输入子程序,这个子程序用于读入正 整数。

3)实验结果:

i . 分别以步进、连续、设置断点的方式运行程序

图1. 求阶乘程序fact.s运行统计数据步进方式运行

图2 求阶乘程序fact.s运行统计数据连续方式运行

图3 求阶乘程序fact.s运行统计数据连续方式运行 ii. 数据统计

图1.1.4 求阶乘程序fact.s运行统计数据

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4