试验四 DLX流水线指令调度

时间:2022-11-20 23:27:49 作者:壹号 字数:2249字

实验四 DLX流水线指令调度

实验目的

1. 加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解; 2. 熟悉用指令调度技术来解决流水线中的数据相关的方法; 3. 了解循环展开、指令调度等技术对CPU性能的改进。

实验平台

WinDLX模拟器

实验内容和步骤

1.用指令调度技术解决流水线中的结构相关与数据相关 (1) 用DLX汇编语言编写代码文件*.s,程序中应包括数据相关与结构相关(假设:加

法﹑乘法﹑除法部件各有2个,延迟时间都是3个时钟周期) (2) 通过Configuration菜单中的 “Floating point stages” 选项,把加法﹑乘法﹑除

法部件的个数设置为2个,把延迟都设置为3个时钟周期; (3) 用WinDLX运行程序。记录程序执行过程中各种相关发生的次数、发生相关的指

令组合,以及程序执行的总时钟周期数; (4) 采用指令调度技术对程序进行指令调度,消除相关; (5) 用WinDLX运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行

的总时钟周期数; (6) 根据记录结果,比较调度前和调度后的性能。论述指令调度对于提高CPU性能的

意义。

2. 用循环展开、寄存器换名以及指令调度提高性能 (1) 用DLX汇编语言编写代码文件*.s,程序中包含一个循环次数为4的整数倍的简单

…… 此处隐藏0字 ……

循环; (2) 用WinDLX运行该程序。记录执行过程中各种相关发生的次数以及程序执行的总

时钟周期数; (3) 将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的

修改。然后对新的循环体进行寄存器换名和指令调度; (4) 用WinDLX运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执

行的总时钟周期数; (5) 根据记录结果,比较循环展开、指令调度前后的性能。

预备知识

1. WinDLX模拟器的相关知识。详见相关的文档。 2. 复习和掌握教材中相应的内容 (1) 循环级并行性 (2) 指令调度 (3) 循环展开 (4) 寄存器换名