体系结构实验报告

  • 格式:doc
  • 大小:431.00 KB
  • 文档页数:26

下载文档原格式

  / 26
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北京邮电大学

实验报告

课程名称:高级计算机系统结构

学号:2015140454姓名:罗一皓

实验二指令流水线相关性分析

一.实验类别:

验证试验

二.实验目的:

通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC处理器的特点的理解。

三.实验学时:

4

四.实验人数:

1

五.实验设备环境:

WinDLX模拟器可以装入DLX汇编语言程序,然后单步、设置断点或者连续执行该程序。CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来。模拟器还提供了对流水线操作的统计功能。该模拟器对理解流水线和RISC处理器的特点很有帮助。

六.实验原理:

指令流水线中主要有结构相关、数据相关、控制相关。相关影响流水线性能。

结构相关:当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突时,将产生“结构相关”。

数据相关:当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起“数据相关”。

控制相关:由条件指令引起的相关。

七.实验内容和要求:

使用WinDLX模拟器,对求阶乘程序Fact.s做分析

八.实验步骤:

(1)观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。

数据相关:

在第24个周期时,在Clock Cycle Diagram 中有橙黄色的R-Stall,

点开之后,我们发现有

相关指令组合:

lbu r3,0x0(r2)

seqi r5,r3,0xa

控制相关:

在第4个时钟周期中,第一条命令正在MEM段,在第二条命令在intEXcellent 段,第四条命令在IF段。而第三条命令指示为“aborted”。

其原因是:在第二条命令(jal)是无条件分支指令,但只有在第三个时钟周期,jal指令被译码后才知道,这时,下一条命令movi2fp已经取出,但须执行的下一条命令在另一个地址处,因而,movi2fp的执行应被取消,在流水线中留下气泡。此处发生了控制相关。

相关的指令组合:

addi r1,r0,0x1000

jal InputUnsigned

movi2fp f10,r1

sw SaveR2[r0],r2

结构相关:

在这个流水线图中可以发现

点开之后,会发现

addi r2,r2,0x1 该指令在它面前的一条指令add r1,r1,r3 发生了结构相关。由于上一条指令由于数据相关需要停4个周期,在ID段后停滞,不能进入intEX段,故addi r2,r2,0x1 就不能进入ID,译码部分已经被占用。故发生了结构相关。

相关指令:

add r1,r1,r3

addi r2,r2,0x1

(2)考察增加浮点运算部件对性能的影响。

N=4时,浮点运算部件均为1时:

N=4,浮点运算器都变为2时:

比较个数据,发现没有发生变化。对于该程序,指令组合涉及不到多个浮点器的结构相关。

(3)考察增加forward部件对性能的影响。

在载入fact.s和input.s之后,不设置任何断点运行。

①不采用重新定向技术,我们得到

② 采用定向技术,我们得到的结果是:

从上面的数据我们可以看出定向的作用:

增加forward 部件后的109个时钟周期比增加前的137个少了28个时钟周期。 增加forward 部件使得RAW 相关变为15个,比增加前的41个减少了26个,RAW 相关的比例从总时钟周期的29.93%减为13.76%。

增加forward 部件使得控制相关比例增加了,由原来占总时钟周期的8.03%增至10.09%。

总之,使用forward 部件后,总的时钟周期减少,数据相关减少,流水线的性能得到一定的改善。

(4)观察转移指令在转移成功和转移不成功时候的流水线开销。转移成功的情况:

在一条由4个流水段组成的流水线中,第I-1条指令要等到第I+2条指令进入流水线时才能形成条件码。如果形成的条件码是“转移不成功”的,则猜测正确,流水线的吞吐率和效率没有降低;如果形成的条件码是“转移成功”的,则猜测错误,必须沿下面分支方向进行。此时,首先作废流水线已经执行的第I+1,I+2条指令,然后再从分支点开始,执行第P,P+1,…各条指令。在这种情况下,每执行一条条件转移指令,一条4段流水线就有2个流水段被浪费。吞吐率下降为:

D=3pq/1+3pq

九.实验总结:

本次实验,通过模拟和分析对N的阶乘的程序,根据pipeline图和clock图和相关的数据对数据相关,结构相关,控制相关进行了逐个的分析。分析结果之后,对于老师上课讲到的内容有了更加形象化的理解,对于学习挤塑机体系结构大有帮助。

实验三 DLX处理器程序设计

一、实验目的

学习使用DLX 汇编语言编程,进一步分析相关现象。

二、实验设备环境

DLX汇编语言环境

三、实验内容和要求

自编一段汇编代码,完成一维向量加法运算,并输出结果。观察程序中出现的数据/控制/结构相关。(注:使用一维数组表示一维向量。)

四、代码清单及注释

*双精度浮点加法求和设计*

1、代码及注释

.data

;***store the vector

ReadBuffer1: .space 120 ;store vector in byte

ReadPar1: .word 0,ReadBuffer1,120

ReadBuffer2: .space 120 ;store vector in byte

ReadPar2: .word 0,ReadBuffer2,120

;***msg for output

Prompt0: .asciiz "Add two vector:\n\n"

Prompt1: .asciiz "vector1:(element seperated by space)\n"

Prompt2: .asciiz "vector2:(element seperated by space)\n"

Prompt3: .asciiz "vectorSum: "

;*** Data for Printf-Trap

PrintfFormat: .asciiz "%f " ;used to output the result

.align 4

PrintfPar: .word PrintfFormat

PrintfValue: .space 8

PrintfPar2: .space 4

.text

.global main

main: