搜档网
当前位置:搜档网 › 计算机组成原理实验五

计算机组成原理实验五

计算机组成原理实验五
计算机组成原理实验五

计算机组成原理

实验报告

学院(系):软件学院

专业:软件工程

班级:13级1班

学号:1315925031

姓名:王浩

2015年11月17 日

实验5 指令调度和延迟分支

一.实验目的

(1)加深对指令调度技术的理解。

(2)加深对延迟分支技术的理解。

(3)熟练掌握用指令调度技术解决流水线中的数据冲突的方法。

(4)进一步理解指令调度技术对性能的改进。

(5)进一步理解延迟分支技术对性能的改进。

二.实验内容和步骤:

(1)、启动。

(2)、根据前面的相关知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义。

(3)、选择“配置”->“流水方式”选项,使模拟器工作于流水方式下。

(4)、用指令调度技术解决流水线中的数据冲突。

1)启动。

2)加载。

3)关闭定向功能。

4)执行所载入的程序。通过查看统计数据和时钟周期图,找出并记录程序执行过程中各种冲突发生的次数、发生冲突的指令组合以及程序执行的总时钟周期数。

执行总周期数为33,其中停顿16次、停顿6次、自陷停顿1次。

停顿总周期占程序执行周期的:51.51515%

发生冲突的指令组合:

$r1,$r0

$r2,0($r1)与上条写后读冲突;

$r4,$r0,$r2

$r4,0($r1)与上条指令写后读冲突;

$r6,4($r1)

$r8,$r6,$r1同样,与上条指令写后读冲突;

$r12,$r10,$r1

$r16,$r12,$r1同样,与上条指令写后读冲突;

$r18,$r16,$r1 与上条指令组件冲突

$r18,16($r1) 同样,与上条指令写后读冲突;

$r20,8($r1)

$r22,$r20,$r14同样,与上条指令写后读冲突;

5)采用指令调度技术对程序进行指令调度,消除冲突。将调度后的程序存到中。内容如下:

:

$r1,$r0

$r2,0($r1)

$r12,$r10,$r1

$r4,$r0,$r2

$r4,0($r1)

$r6,4($r1)

$r8,$r6,$r1

$r24,$r26,$r14

$r16,$r12,$r1

$r20,8($r1)

$r18,$r16,$r1

$r18,16($r1)

$r22,$r20,$r14

$r0,$r0

A:

4,6,8

6)载入。

7)执行该程序。观察程序在流水线中的执行情况,记录程序执行的总时钟周期数。

总时钟周期数:27

8)根据记录结果,比较调度前和调度后的性能。论述指令调度对于提高性能的作用。

指令调度使得指令之间的相互不利影响降到最低,减少空闲时间,从而使得得到最大程度的使用,提高了性能。

(5)、用延迟分支减少分支指令对性能的影响。

1)启动。

2)载入。

3)关闭延迟分支功能。

4)执行该程序。观察并记录发生分支延迟的时刻。5)记录执行该程序所用的总时钟周期数。

15个时钟周期时, $r5发生分支延迟;

30个时钟周期时, $r5发生分支延迟

总的时钟周期:38

6)假设延迟槽有1个,对进行指令调度,然后保存到“”中。内容如下

:

$r2,$r0,1024

$r3,$r0,$r0

$r4,$r0,8

:

$r1,$r1,1

$r1,0($r2)

$r3,$r3,4

$r5,$r4,$r3

$r5

$r1,0($r2)

$r7,$r0,$r6

$r0,$r0

7)载入。

8)打开延迟分支功能。

9)执行该程序。观察其时钟周期图。

10)记录执行该程序所用的总时钟周期数。

相关主题