实验二指令流水线相关性分析 一、 实验目的: 通过使用 WINDLX 模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和 RISC 处理器的特点的理解
二、 实验设备环境: WinDLX模拟器可以装入 DLX汇编语言程序,然后单步、设置断点或者连续执行该程序
CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来
模拟器还提供了对流水线操作的统计功能
该模拟器对理解流水线和 RISC处理器的特点很有帮助
三、 实验原理: 指令流水线中主要有结构相关、数据相关、控制相关
相关影响流水线性能
数据相关:由于流水线中各条指令的重叠操作使得原来对操作数的访问顺序发生了变化而导致了数据相关的冲突
控制相关:由条件转移指令引起的相关
结构相关(资源相关):多条指令进入流水线后在同一机器周期内争用同一功能部件所发生的冲突
四、实验过程及结果分析: 4
1 观察程序中出现的数据/控制/结构相关,指出程序中出现上述现象的指令组合
程序中出现的数据相关: 1)截图及分析: 红箭头表示需要一个暂停,箭头指向处显示了暂停的原因
R-Stall(R-暂停)表示引起暂停的原因是 RAW
lbu r3,0x0(r2)需要在执行IntEX 周期之后才能将r3 值传送给seqi 指令,而后续指令seqi r5,r3,0x0a 在ID 周期读取r3 寄存器的值,故seqi r5,r3,0x0a 与lbu r3,0x0(r2)发生了读写相关
所以为了避免冲突,将seqi r5,r3,0x0a 指令的intEx延迟一个周期执行
2)相关指令组合: lbu r3,0x0(r2) seqi r5,r3,0x0a 程序中出现的控制相关: 1)截图及分析: 在窗口中,模拟处于第四时钟周期
第3 条命令指示为:“aborted”