计算机体系结构实验报告
- 格式:pdf
- 大小:189.25 KB
- 文档页数:4
计算机体系结构实验报告
实验⼆结构相关
⼀、实验⽬的:
通过本实验,加深对结构相关的理解,了解结构相关对CPU性能的影响。
⼆、实验内容:1. ⽤WinDLX模拟器运⾏程序structure_d.s 。
2. 通过模拟,找出存在结构相关的指令对以及导致结构相关的部件。
3. 记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执⾏
周期数的百分⽐。4. 论述结构相关对CPU性能的影响,讨论解决结构相关的⽅法。
三、实验程序structure_d.sLHI R2, (A>>16)&0xFFFF 数据相关
ADDUI R2, R2, A&0xFFFF
LHI R3, (B>>16)&0xFFFF
ADDUI R3, R3, B&0xFFFF
ADDU R4, R0, R3
loop:
LD F0, 0(R2)
LD F4, 0(R3)
ADDD F0, F0, F4 ;浮点运算,两个周期,结构相关
ADDD F2, F0, F2 ; <- A stall is found (an example of how to answer
your questions)
ADDI R2, R2, #8
ADDI R3, R3, #8
SUB R5, R4, R2
BNEZ R5, loop ;条件跳转
TRAP #0 ;; Exit <- this is a comment !!
A: .double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
B: .double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
四、实验过程
打开软件,load structure_d.s⽂件,进⾏单步运⾏。经过分析,此程序⼀
次循环中共有五次结构相关。(R-stall 数据相关Stall- 结构相关)1)第⼀个结构相关:addd f2,,f0,f2
由于前⾯的数据相关,导致上⼀条指令addd f0,f0,f4暂停在ID阶段,所以下⼀条指令addd f2,,f0,f2发⽣结构相关,导致相关的部件:译码部件。
2)第⼆个结构相关:ADDI R2, R2, #8,与第⼀个结构相关类似。由于数据相关,
上⼀条指令暂停在ID阶段,所以导致下⼀条指令发⽣结构相关。
3)第三、四、五个结构相关:ADDI R2, R2, #8
ADDI R3, R3, #8SUB R5, R4, R2
第三个:ADDI R2, R2, #8访存冲突,由于上⼀条指令处在访存阶段,所以此条指令需要暂停,为存储器结构相关冲突。
第四个结构相关:ADDI R3, R3, #8
与第⼀个和第⼆个相关类似,但此处为执⾏部件冲突的结构相关。
第五个:SUB R5, R4, R2
与第⼀个类似,为译码部件结构相关。
由于这三个相关在同⼀时钟周期发⽣,所以算⼀个。4)计算暂停时钟周期数占总执⾏周期数的百分⽐。
由上图统计信息可知:此程序⼀共有139个周期,⽽程序⼀共循环10次,每次有5个结构相关,但后三个在同⼀时钟周期发⽣,⼀次相关暂停⼀个周期,所以,
暂停时钟周期数占总执⾏周期数的百分⽐为:3*10/139=21.6%.5)论述结构相关对CPU性能的影响,讨论解决结构相关的⽅法。
发⽣结构相关时,必然会导致流⽔线效率的降低,如果处理不当甚⾄会发⽣错误。解决的⽅法主要有:
(1)流⽔化功能单元;(2)资源重复;(3)暂停流⽔线。
五、实验⼼得
本次实验主要是通过具体的程序实例向我们展⽰了流⽔线中的结构相关冲突。通过本次实验,更加深刻地认识了结构相关是怎么发⽣的,包括流⽔线单步执⾏、每个流⽔段功能、流⽔线建⽴与排空、定向技术等内容有了很好的掌握;知道其运⾏情况,以及结构相关在此程序中导致的延迟。