北邮计算机系统结构_第1页
北邮计算机系统结构_第2页
北邮计算机系统结构_第3页
北邮计算机系统结构_第4页
北邮计算机系统结构_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——北邮计算机系统结构试验报告

学院:计算机学院

课程名称:计算机系统结构试验名称:WINDLX模拟器试验班级:姓名:学号:

试验一WINDLX模拟器安装及使用

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

一.试验类别

验证明验

二.试验目的

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

三.试验环境

WindowsXP操作系统WinDLX模拟器

四.试验原理

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

(1)数据相关

定义:原有先后顺序的两条指令(I1,I2)在对共享变量(位置)进行读、写时,指令流水线中实际完成的读、写顺序与原有顺序不一致,导致流水线输出错误。

三类数据相关:

写读(WR)相关读写(RW)相关写写(WW)相关

解决方法技术:

1.使某些流水线指令延迟、停顿一或多个周期。

2.双端口存储器:假使指令和数据放在同一个存储器。3.设置两个存储器:一个数据存储,一个为指令存储器。4.软件优化编译:通过指令重新排序,消除数据相关。

5.定向技术:又称旁路技术或专用通路技术,是使后续指令提前得到前指令的运算结果(适合ALU类指令)

(2)结构相关

定义:假使某指令在流水线重叠执行过程中,硬件资源满足不了

指令重叠执行的要求,会产生资源冲突或竞争,称为流水线结构相关

解决方法技术:

1.延迟技术:使某些指令延迟、停顿一或多个时钟周期2.双端口存储器:允许同时读两个数据或指令3.设置双存储器(哈弗结构):一个数据存储,一个指令存储。4软件优化编译:通过指令重新排序消除结构相关。

(3)控制相关

定义:控制相关是指因程序执行转移类指令而引起的冲突相关。

包括无条件转移、条件转移、子程序调用、中断等,它们属于分支指令,执行中可能改变程序方向,造成流水线断流。

解决方法技术:

1、静态分支技术?

静态转移预计技术(猜测法);?延迟转移;?

提前形成条件码,生成转移目标地址;?改进循环程序;

2、动态分支预计技术?

转移历史表BHT;?转移目标缓冲栈(BTB);转移目标指令缓冲栈BTIB;

五.试验步骤

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

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

(4)观测转移指令在转移成功和转移不成功时候的流水线开销。注意:除(2)以外,浮点加、乘、除部件都只有一个;本问题中所有浮点运算部件的延时都请设定为4个周期。

六.试验过程

在开始模拟之前,将fact.s和input.s加载至WinDLX中。

加载完后点击Code后可以看到如下图所示。证明加载成功,即可进行以下试验。

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

1.1.数据相关如下图

lbur3,0×0(r2)

要在WB周期写回r3中的数据;而下一条指令seqir5,r3,0×a

要在intEX周期中读取r3中的数据。

上述过程发生了WR冲突,即写读相关。为了避免此类冲突,seqr5,r4,0×a的intEX指令延迟了一个周期进行。则发生数据相关的指令为

1.2控制相关

可知第0*00000130条指令jfact.Loop为循环指令,指令在EX时刻才能判别指令是否发生转移,此时发生了控制相关。如下所示,此时指令跳转成功,故顺序取出的指令必需中断,并且转向取出转移到的指令。

jfact.Loop在EX时发现跳转成功,则在EX阶段马上终止指令顺序取出的指令sdPrintfValue(r0),f0,转而执行ledf0/4指令的取指阶段ID。由于此控制相关使得流水线断流一个时钟周期。

1.3结构相关

上图说明白addir2,r2,0×1的详细信息。该指令与它前一条指令addr1,r1,r3发生了结构相关。并且由于此处的冲突,需要暂停2个周期。在ID段暂停后,则开始进图intEX段。所以这条指令(addir2,r2,0×1)你不能进入ID流水段,译码部分占用,发生了结构相关。该部分的指令为:

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

取N=12

设置浮点运算部件的配置。由于试验手册上面要求Delay=4,所以我们将Delay这一栏改成4,而Count可以任意,为了对比,我们第一次浮点运算部件取全部为2,其次次浮点运算部件取全部为4。

分别运行50个cycles后,数据对比如下:

比较各个数据,发现没有变化。无论怎么增加浮点运算部件,统计结果都一样。原因在于此程序中浮点计算指令没有重叠,所以并行度没有增加,性能没有提高。

所以,浮点运算部件的增减对效率无影响。

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

为了对比有无forward部件的性能。需要在勾选enableforwarding,以及不勾选enableconfiguration来看性能数据的对比。

不使用forward部件:使用forward部件:

从上面的数据我们可以看出增加forward部件后,总的周期数由200减少至158,RAW由原来占总时钟周期的32.5%减少至16.46%,RAW个数由原来的65减少至26。增加forward部件使得控制相关比例增加了。

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

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

可知条件分支指令总共有15条,其中有2条转移成功(13.33%),有13条转移不成功。

转移不成功的指令就顺序执行,故不会影响程序的运行,不会导致流水线断流;而转移成功的指令会导致流水线的断流,要废弃预先读入的指令,重新从转移成功处读入指令,执行效率会下降。经分析可知,两次断流都会导致一个周期的流水线断流。

七.试验总结

1.在流水线中,硬件资源满足不了指令重叠执行的要求,会产生资源冲突或竞争,称为流水线结构相关,而解决流水线相关的途径之一是设置双存储器(哈弗结构):一个数据存储,一个指令存储。实际上,本身实现DLX指令的硬件设备已经考虑到了这一点,本身已有两个存储器,一个为数据存储器,一个为指令存储器。故本身就解决了部分结构相关问题。并且fact.s中的指令并不会导致其他资源冲突,故无法表达资源相关。试验中多参与浮点数部件,运行效率等没有变化。通过观测指令的运行状况,由于不会发生结构相关(硬件资源冲突),在流水线中的部件线性使用,故参与部件也不会对结果有直接的影响。

2.本次试验,主要通过对于三种相关的观测,分析出现相关时的指令,分析浮点运算部件和forward部件对性能的影响,观测转移指令在转移成功和不成功时的流水线开销,这些试验一步一步,通过WinDLX形象生动的表示,使我在实践中更加深入的认识了流水线。

3.通过本次试验,我熟悉了指令执行的每个阶段的任务,对时空图的理解也更深了一步,对流水线中的三种相关性问题有了认识,同时通过此试验学习到了解决这些相关问题的方法,从而对课上所学的知识有了更系统的认识。

试验三DLX处理器程序设计

一.试验类别

综合型试验

二.试验目的

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

三.试验环境

WindowsXP操作系统

DLX汇编语言环境

四.试验原理

把握向量运算算法和编程方法。

五.试验步骤

(1)熟悉DLX汇编语言。

(2)编写两双精度浮点一维向量的加法运算程序。(3)

对此程序完成上面试验二中1)、2)、3)、4)方面的分析。

六.试验过程

(1)代码清单和解释说明

.data

VectorLength:.word16

Vector1:.word1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16Vector2:.word1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;声明向量长度以及声明向量1、2Printf1:.asciiz\Printf2:.asciiz\.align2

PrintPrompt:.wordPrintf1PrintPar:.wordPrintf2

Result:.space4;存放打印数据的空间申请.textmain:

addir14,r0,PrintPrompttrap5

lwr20,VectorLengthaddir2,r0,0Loop:

ldf10,Vector1(r2)

ldf12,Vector2(r2);循环体中读入向量cvti2df0,f10cvti2df2,f12

adddf4,f2,f0;加法运算

Finish:;****Finish,writeresultintostdoutsdResult,f4

addir14,r0,PrintPar

trap5;系统中断,输出结果addir2,r2,4subir20,r20,1bnezr20,Loop;Endtrap0

运行结果

2)观测程序中出现的数据/控制/结构相关。指出程序中

无结构相关,有控制相关15次和数据相关64次。

(出现上述现象的指令组合。数据相关:以当对当前指令的操作数寄放器进行操作(EX)的时候,前几条指令的运算结果还未写回(WB)结果寄放器,由此产生数据相关。结构相关:由于只做了一次加法,所以没有产生结构相关

第一条命令在WB段,其次条命令在intEX段,第四条命令在IF段。而第三条命令指示为\。此处发生了控制相关。

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

设置浮点运算部件的配置。由于试验手册上面要求Delay=4,所以我们将Delay这一栏改成4,而Count可以任意,为了对比,我们第一次浮点运算部件取全部为2,其次次浮点运算部件取全部为4。

数据对比如下:

比较各个数据,发现没有变化。无论怎么增加浮点运算部件,统计结果都一样。原因在于此程序中浮点计算指令没有重叠,所以并行度没有增加,性能没有提高。

所以,浮点运算部件的增减对效率无影响。

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

为了对比有无forward部件的性能。需要在勾选enableforwarding,以及不勾选enableconfiguration来看性能数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论