计算机系统结构winDLX流水线实验报告

合集下载

计算机体系结构实验

计算机体系结构实验
gtd f2,f10 ;f2>1?
bfpf InputArray1;若不大于1,跳到InputArray1,此时r9为10的n次方
mult r9,r7,r9
subi r2,r2,1
j Loop1 ; Loop1用来求出10的n次方(n为输入的位数),n随后面的循环逐渐减1
InputArray1:
div r11,r5,r9
2、程序中出现数据相关因为下面两条指令,第二条指令要读r1而执行到此操作时第一条指令仍对r1进行操作
lw r4,PrintfValue(r3)
sw Printf,r4
图4.数据相关
程序中出现控制相关,当程序执行下面指令时,第二条指令出现跳转指令时,第一条指令还没有执行完,所以出现控制相关
subi r2,r2,1
add r2,r8,r0 ;将r8中的数值放到r2寄存器中
addi r9,r0,1 ;r9置1;
j Loop1 ;跳转Loop1
Output: ;输出结果
lw r4,PrintfValue(r3)
sw Printf,r4 ;将寄存器r4中的内容存Printf地址单元中
addi r14,r0,PrintPar ;将要输出的数据格式输到寄存器r14中
点击zui3.s
点击select按钮
点击input.s
点击select按钮
点击load按钮
3、按F7键程序顺序执行观察6个子窗口的情况。
七、实验数据及结果分析:
1、先装入zui3.s再转入input.s时,因为程序顺序执行,地址顺序符合程序执行顺序,程序能够正确执行;顺序相反时,因为input.s的地址高,而程序顺序执行到input.s时将没有正确的输入窗口,程序执行到输出结果时,也不会出现结果

计算机系统结构 实验报告 (截图 分析 总结)

计算机系统结构 实验报告 (截图 分析 总结)

实验一流水线中的相关一、实验目的1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;2. 加深对计算机流水线基本概念的理解;3. 进一步了解DLX基本流水线各段的功能以及基本操作;4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停二、实验平台WinDLX 模拟器三、实验内容和步骤1.用WinDLX模拟器执行下列三个程序:(分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。

熟练掌握WinDLX的操作和使用。

)●求阶乘程序fact.s⏹步进的运行方式:步进的运行方式是指,每次控制只执行一条语句,快捷键为F7键:图1-1 单步运行测试⏹设置断点的运行方式:鼠标点击某行,按下“Insert键”,设置断点:图1-2 设置断点图1-3 断点设置成功,按F5运行至断点⏹连续的运行方式:通过按下F5键,可直接运行至断点处;按下F8键,并在对话框内键入跳跃的步数,可以直接跳转指定的步数:图1-4 设置跳转步数●求最大公倍数程序gcm.s,观察程序在流水线中的执行情况:●求素数程序prim.s,观察CPU 中寄存器和存储器的内容2. 用WinDLX运行程序structure_d.s通过模拟找出存在资源相关的指令对以及导致资源相关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。

●存在资源相关的指令、导致资源相关的部件⏹两条指令同时访问寄存器f4,造成资源相关:⏹两条指令同时访问ALU,造成资源相关:●由资源相关引起的暂停时钟周期数、暂停时钟周期数占总执行周期数的百分比由资源相关引起的暂停时钟周期数:30;总执行周期数:139;暂停时钟周期数占总执行周期数的百分比:21.6%3. 在采用、以及不采用定向技术的情况下,分别用WinDLX 运行程序data_d.s(记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;并计算采用定向技术后性能提高的倍数)●采用定向技术:(左下图)⏹计算暂停时钟周期数占总执行周期数的百分比:30/128=23.4%图3-1 采用定向技术图3-2 不采用定向技术●不采用定向技术:(右上图)⏹计算暂停时钟周期数占总执行周期数的百分比:104/202=51.5%●采用定向技术后性能提高的倍数:202/128=1.58倍四、实验总结●资源相关对CPU性能的影响、讨论解决资源相关的方法资源相关使相关指令在流水线上停滞,降低了执行效率;为解决这一问题,应在编写代码时尽量避免总是使用同一寄存器;并通过指令调度,使相关的代码执行距离拉开。

体系结构windlx流水线实验报告

体系结构windlx流水线实验报告

实验一基本实验----by 王琳PB072104321. 实验目的:1)熟悉计算机流水线基本概念2)了解DLX基本流水线的各段的功能3)了解各种不同指令在流水线中的实际流动情况4)对流水线做性能分析5)了解影响流水线效率的因素——数据相关、结构相关、控制相关,了解相关的种类6)了解解决数据相关的方法2. 实验平台:WinDLX仿真器WinDLX简介:●是一个图形化、交互式的DLX流水线仿真器。

●可以装入DLX汇编语言程序,然后单步,设断点或是连续执行该程序.●CPU的寄存器,流水线,I/O和存储器都可以用图形表示出来●提供了对流水线操作的统计功能.●可以装载文件名为*.s的文件.●要求的硬件平台是IBM-PC兼容机.●WinDLX是一个Windows应用程序,运行DOS3.3以上和Windows3.0以上的操作系统.●WinDLX软件包中带有说明文件及教程,可以供使用者进一步了解仿真器的使用方法和DLX处理器的原理.大家再进行实验前应该仔细阅读这些文档.3. 实验内容:1)在仿真器上分别运行单条指令:Load指令、Store指令、分支指令、寄存器ALU指令、立即数ALU指令,记录它们在流水线中的执行情况●Lw:观察此流水线时空图,可以发现:转移指令引起的延迟仅为1 clocks,另2 stalls 是trap指令引起的,这个执行结果似与不采用forwarding技术的前提相违,只能理解为对于无条件的转移指令,新的PC值在EX阶段即已被写入。

●Sw:●Beqz:由此图可见,对于分支指令,总是用not-taken的策略来处理,并且也认为新的PC值也在EX阶段即已被写入,且cond条件也在EX段被算出(这显然是一个极不合理的假设,究竟为何分支指令的延迟为1 stall有待进一步探究)●寄存器ALU指令●立即数ALU指令2)仿真器运行一段无相关的程序,记录它的执行情况,计算流水线的加速比、吞吐率与效率。

系统结构-流水线工作分析报告

系统结构-流水线工作分析报告

系统结构-流水线工作分析报告第一篇:系统结构-流水线工作分析报告《计算机系统结构课内实验》实验报告一、实验目的及要求1、加深对计算机流水线基本概念的理解;2、理解MIPS结构如何用5段流水线来实现,理解各段的功能和基本操作;3、加深对数据冲突、结构冲突的理解,理解这两类冲突对CPU 性能的影响。

4、进一步理解解决数据冲突的方法,掌握如何应用定向技术来减少数据冲突引起的停顿。

加深对计算机流水线基本概念的理解;二、实验环境采用指令级和流水线操作级模拟器WinDLX;三、实验内容1、用WinDLX模拟器进行结构相关的分析①生成汇编程序structure_d.s。

用WinDLX模拟器运行该程序。

②通过模拟,找出存在结构相关的指令对,以及导致结构相关的部件。

③记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。

2、用WinDLX模拟器进行数据相关分析①添加data.s程序。

②通过Configuration菜单中的选项,设定在不采用定向技术的情况下,用WinDLX模拟器运行程序data_d.s。

记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。

③在采用定向技术的情况下,用WinDLX模拟器再次运行程序data_d.s。

记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。

3、用WinDLX模拟器分析指令调度①生成schedule-before.s及schedule-after.s程序。

②通过Configuration菜单中的选项,将除法单元数设置为3,将加法﹑乘法﹑除法的延迟设置为3个时钟周期。

③用WinDLX模拟器运行调度前的程序schedule-before.s。

记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。

④用WinDLX模拟器运行调度后的程序schedule-after.s,记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。

计算机体系结构实验报告

计算机体系结构实验报告

计算机体系结构实验报告实验⼆结构相关⼀、实验⽬的:通过本实验,加深对结构相关的理解,了解结构相关对CPU性能的影响。

⼆、实验内容:1. ⽤WinDLX模拟器运⾏程序structure_d.s 。

2. 通过模拟,找出存在结构相关的指令对以及导致结构相关的部件。

3. 记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执⾏周期数的百分⽐。

4. 论述结构相关对CPU性能的影响,讨论解决结构相关的⽅法。

三、实验程序structure_d.sLHI R2, (A>>16)&0xFFFF 数据相关ADDUI R2, R2, A&0xFFFFLHI R3, (B>>16)&0xFFFFADDUI R3, R3, B&0xFFFFADDU R4, R0, R3loop: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 answeryour questions)ADDI R2, R2, #8ADDI R3, R3, #8SUB R5, R4, R2BNEZ R5, loop ;条件跳转TRAP #0 ;; Exit <- this is a comment !!A: .double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10B: .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发⽣结构相关,导致相关的部件:译码部件。

计算机系统结构winDLX流水线实验报告

计算机系统结构winDLX流水线实验报告

计算机科学与技术学院《计算机体系结构》课程实验学号:班级:专业:学生姓名:年月日实验报告seqi r5,r3,10下面两条指令中,因为加法指令要读r1,而执行到此操作时乘法指令仍对r进行操作,因此出现了数据相关multu r1,r1,r4add r1,r1,r3图1 数据相关(2)控制相关:以图2中出现的控制相关为例下面两条指令中,因为第一条指令出现跳转指令时,存储指令的取指将作废,所以出现控制相关jal InputUnsignedsw PrintfValue(r3),r1图2 控制相关(3)结构相关:以图3中出现的结构相关为例下面两条指令中,因为当第二条乘法指令需要使用乘法器时,第一条乘法指令仍在使用乘法器,所以出现结构相关mult r2,r0,r0mult r3,r0,r0图3 结构相关3、主程序Variance.s的代码.data ;.data标识下面的数据放在数据区中;输入语句,指示你输入要求多少个数的方差Prompt: .asciiz "Please input An integer which is array's size value>0: ";输入语句,指示你输入要求方差的数PromptLast: .asciiz "Please input the integer :";输出格式,表示求出的方差按什么格式输出PrintfFormat: .asciiz "the Variance is : %g ";表示下面采用字对齐.align 2;求出方差存入r11中div r11,r2,r8output:;将方差存入Variance所指存储空间中sw Variance,r11;转换为双精度并输出lf f2,Variancecvti2d f0,f2sd Printf,f0addi r14,r0,PrintfPartrap 5 ;调用中断,格式化输出转化为标准输出over:trap 0 ;调用系统中断,0表示程序执行结束4、样例输出,以图4中数据为例输入需要求方差数的个数为4,4个数分别为3,5,6,2,输出结果为2图4 输出界面5、尽量减少和消除程序中出现的相关。

计算机体系结构实验报告——实验二

计算机体系结构实验报告——实验二

计算机体系结构实验报告——实验二1.实验目的:通过本实验,熟练掌握WinDLX模拟器的操作和使用,清楚WinDLX五段流水线在执行具体程序时的流水情况,熟悉DLX指令集结构及其特点。

2.实验内容:(1)用WinDLX模拟器执行程序gcm.s。

该程序从标准输入读入两个整数,求他们的greatest common measure,然后将结果写到标准输出。

该程序中调用了input.s中的输入子程序。

(2).给出两组数6、3和6、1,分别在main+0x8(add r2,r1,r0)、gcm.loop(seg r3,r1,r2)和result+0xc(trap0x0)设断点,采用单步和连续混合执行的方法完成程序,注意中间过程和寄存器的变化情况,然后单击主菜单execute/display dlx-i/0,观察结果。

3.实验程序求最大公约数程序:gcm.s;***********WINDLX Ex.1:Greatest common measure*************;------------------------------------------------------------------------;Program begins at symbol main;requires module INPUT;Read two positive integer numbers from stdin,calculate the gcm;and write the result to stdout;------------------------------------------------------------------------.data;***Prompts for inputPrompt1:.asciiz“First Number:”Prompt2:.asciiz“Second Number:“;***Data for printf-TrapPrintfFormat:.asciiz“gcM=%d\n\n”.align2PrintfPar:.word PrintfFormatPrintfValue:.space4.text.global mainmain:;***Read two positive integer numbers into R1and R2 addi r1,r0,Prompt1jal InputUnsigned;read uns.-integer into R1add r2,r1,r0;R2<-R1addi r1,r0,Prompt2jal InputUnsigned;read uns.-integer into R1Loop:;***Compare R1and R2seq r3,r1,r2;R1==R2?bnez r3,Resultsgt r3,r1,r2;R1>R2?bnez r3,r1Greaterr2Greater:;***subtract r1from r2sub r2,r2,r1j Loopr1Greater:;***subtract r2from r1sub r1,r1,r2j LoopResult:;***Write the result(R1)sw PrintfValue,r1addi r14,r0,PrintfPartrap5;***endtrap0该程序中调用了input.s中的输入子程序。

计算机体系结构实验报告

计算机体系结构实验报告

实验一流水线中的相关一.实验目的1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;2. 加深对计算机流水线基本概念的理解;3. 进一步了解DLX基本流水线各段的功能以及基本操作;4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。

二.实验平台WinDLX模拟器三.预备知识1. WinDLXWinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线是如何工作的。

该模拟器可以装载DLX汇编语言程序(后缀为“.s”的文件),然后单步、设断点或是连续执行该程序。

CPU的寄存器、流水线、I/O和存储器都可以用图形表示出来,以形象生动的方式描述DLX流水线的工作过程。

模拟器还提供了对流水线操作的统计功能,便于对流水线进行性能分析。

有关WinDLX的详细介绍,见WinDLX教程。

2. 熟悉WinDLX指令集和WinDLX源代码的编写3. 复习和掌握教材中相应的内容(1)DLX基本流水线(2)流水线的结构相关与数据相关结构相关:当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突时,将产生“结构相关”。

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

(3)定向技术的主要思想:在发生数据相关时,等待前面计算结果的指令并不一定真的马上就用到该计算结果,如果能够将该计算结果从其产生的地方直接送到其他指令需要它的地方,就可以避免暂停。

四.实验内容及结果1. 用 WinDLX 模拟器执行下列三个程序(任选一个):求阶乘程序 fact.s求最大公倍数程序 gcm.s求素数程序 prim.s分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU 中寄存器和存储器的内容。

熟练掌握WinDLX 的操作和使用。

DLX流水线实验报告

DLX流水线实验报告

DLX流水线实验报告北京交通大学计算机与信息技术学院计科1104(进修生)03班房皓134108012014/4/23一.实验目的1.了解各种指令在DLX流水线中的运行过程;2.掌握结构相关、数据相关、控制相关,并会观察冒险情况以及这些冒险在winDLX是如何解决的;3.理解前送(forwarding)技术对流水线性能的影响。

二.实验内容1. 了解各种指令在DLX流水线中的运行过程如上次实验那样,读入并运行fact.s和input.s。

请从程序中选择有代表性的5条不同类型的指令,并描述每条指令在5段流水线中每步完成的工作。

2. 流水线相关实验在流水线窗口中观察,分别找出结构相关、数据相关、控制相关各一种,并描述冒险情况以及这些冒险在winDLX是如何解决的。

3. 前送(forwarding)技术对流水线性能的影响分别在forwarding选项打开和关闭的情况下运行程序,考察两种情况下的性能数据并比较。

并找出两个具体情况来说明forwarding是如何通过消除冒险来提高性能的。

4. 考察改变部件数量和延迟数对性能的影响通过configuration→floating point stages可施加各种改变。

该实验由你自己设计实验计划,得出结果和结论。

三.实验要求♦任务1,2,3必做,任务4选作。

四.实验结果1、各种指令在DLX流水线中的运行过程,如图所示:指令:led f0,f4指令:multd f2,f2,f0 指令:subd f0,f0,f4指令:sd PrintfValue(r0),f2 指令:j fact.Loop2、结构相关:分析:通过“气泡”(阻塞一个周期)解决,使不同指令不在同一周期对资源进行访问;数据相关:分析:通过阻塞解决,防止后面的指令使用已经被修改的内容。

控制相关:分析:通过“跳转”解决3、前送(forwarding)技术对流水线性能的影响开启forwarding:关闭forwarding:开启forwarding后总周期数由166减少到155 (1)开启forwarding:没有开启forwarding:lbur r3,0x0(r2) ……①seqi r5,r3,0xa ……②对比在开启和关闭forwarding的情况下以上两条语句的执行,由于语句2需要使用语句1计算的结果r3作为输入,产生数据冒险。

北邮计算机系统结构-WINDLX模拟器实验 报告

北邮计算机系统结构-WINDLX模拟器实验 报告

实验报告学院:计算机学院课程名称:计算机系统结构实验名称:WINDLX模拟器实验班级:姓名:学号:实验一 WINDLX模拟器安装及使用略实验二指令流水线相关性分析一.实验类别验证实验二.实验目的通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC处理器的特点的理解。

三.实验环境Windows XP操作系统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)观察程序中出现的数据/控制/结构相关。

计算机系统结构第一,二次实验报告范文

计算机系统结构第一,二次实验报告范文

班别:学号:姓名:袁凯琦1.实验一WINDLX模拟器安装及使用1.1实验类别:综合实验1.2实验目的:建立实验环境,了解WINDLX模拟器的结构及使用1.3实验设备环境:WinDLX要求的硬件平台是IBM PC兼容机,WinDLX是一个Windows应用程序,运行于Windows 3.0以上的操作系统。

1.4实验原理:WinDLX软件包中带有说明文件,供安装程序时候使用。

1.5要点与难点:软件包中还有WinDLX教程和联机帮助,可以通过它们进一步了解模拟器的使用方法和DLX处理器的原理。

大家在进行模拟实验以前应该仔细阅读这些文档。

1.6实验内容和要求:阅读模拟器Help文档和相关资料,利用Fact.s及Input.s代码熟悉模拟器的配置、各项工具使用、寄存器设置及指令系统。

1.7实验步骤:(1)WINDLX模拟器安装WinDLX是一个基于Windows的模拟器, 能够演示DLX流水线是如何工作的。

WinDLX 包含windlx.exe和windlx.hlp文件。

同时,还需要一些扩展名为.s的汇编代码文件。

按以下步骤在Windows下安装WinDLX: WinDLX创建目录,例如E:\WINDLX解压WinDLX软件包或拷贝所有的WinDLX文件(至少包含 windlx.exe, windlx.hlp)到这个WinDLX 目录。

(2)熟悉模拟器的配置启动和配置WinDLX: 双击WinDLX图标,将出现一个带有六个图标的主窗口,双击这些图标会弹出子窗口.(3)利用Fact.s及Input.s代码熟悉各工具的使用1)导入求阶乘程序fact.sFile--> Load code or Data,然后出现以下界面,双击fact.s,input.s(由于fact.s调用了input.s),点击Load键即可导入按F7,单步运行程序,通过观察各个窗口的信息,理解fact.s的运行情况显示的是各个寄存器的名称及内容PC:程序计数器;IMAR:指令内存地址寄存器;IR:指令寄存器;A,B:ALU操作数寄存器;BTA:分支地址寄存器;ALU:ALU输出寄存器,ALUI(伪)寄存器;FPSR:用来保存有关浮点数操作结果的信息;DMAR:数据内存地址寄存器;SDR:存数据寄存器,SDRI (伪)寄存器;LDR:去素聚寄存器,LDRI(伪)寄存器;R0~R31:32位通用寄存器,R0永远为0;F0~F31:浮点寄存器。

北邮计算机系统结构WINDLX模拟器实验 报告

北邮计算机系统结构WINDLX模拟器实验 报告

实验报告学院: 计算机学院课程名称: 计算机系统结构实验名称: WINDLX模拟器实验班级:姓名:学号:实验一 WINDLX模拟器安装及使用略实验二指令流水线相关性分析一.实验类别验证实验二.实验目的通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线与RISC处理器的特点的理解。

三.实验环境Windows XP操作系统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) 观察程序中出现的数据/控制/结构相关。

计算机系统结构WinDlx实验报告

计算机系统结构WinDlx实验报告

计算机组成与系统结构课程设计题目:流水线指令设计及页面置换算法在WinDLX软件中的应用学校:专业:学号:姓名:指导教师:***2011 年 6 月22 号目录1、实验一.....................21.1实验目的.......................21.2实验平台.......................21.3 预备知识.......................21.4实验内容和步骤....................21.5实验程序.......................41.6 实验报告要求.....................62、实验二.........................92.1 实验目的.......................92.2 实验平台.......................10 2.3 预备知识.......................10 2.4 实验内容和步骤....................10 2.5 实验程序.......................10 2.5.1 源程序.....................11 2.5.2 程序分析.....................11 2.5.3 结果截图.....................112.6 实验报告要求.....................123、实验三.........................13 3.1 实验目的.......................13 3.2 实验平台.......................13 3.3 预备知识.......................13 3.4 实验内容和步骤....................13 3.5 实验程序.......................13 3.5.1 源程序......................14 3.5.2 没有采用定向技术分析...............14 3.5.3 采用定向技术分析.................14 3.5.4 结果截图.....................153.6 实验报告要求.....................154、实验四.........................16 4.1 实验目的.......................16 4.2 实验平台......................16 4.3 预备知识.......................16 4.3.1 调页策略.....................16 4.3.2 页面置换算法...................17 4.4 实验内容和步骤....................18 4.5 实验程序.......................19 4.5.1 源程序......................19 4.5.2 程序流程图....................22 4.5.3 结果截图.....................234.6 实验报告要求.....................235、实验总结........................236、参考资料.......................23实验一 WinDLX模拟器与DLX指令的使用1.1实验目的1.1.1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;1.1.2. 加深对计算机流水线基本概念的理解;1.1.3. 了解DLX基本流水线各段的功能以及基本操作;1.2实验平台WinDLX模拟器1.3预备知识1.3.1. WinDLXWinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线是如何工作的。

计算机体系结构 指令流水线相关性分析 实验报告

计算机体系结构  指令流水线相关性分析 实验报告

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

实验学时:4实验组人数:1/1实验设备环境:WinDLX模拟器可以装入DLX汇编语言程序,然后单步、设置断点或者连续执行该程序。

CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来。

模拟器还提供了对流水线操作的统计功能。

该模拟器对理解流水线和RISC处理器的特点很有帮助。

实验原理:指令流水线中主要有结构相关、数据相关、控制相关。

相关影响流水线性能。

实验内容和要求:使用WinDLX模拟器,对求阶乘程序Fact.s做分析。

实验步骤:1、观察程序中出现的数据/控制/结构相关程序中出现的数据相关lbu r3,0x0(r2)需要在WB周期才能将值写入r3里,而后续的指令seqi r5,r3,0x0a在intEx周期里读取r3寄存器的值,发生了读写相关。

所以为了避免冲突,将seqi r5,r3,0x0a的指令的intEx延迟一个周期执行。

程序中出现的控制相关movi2fp f10,r1在IF指令周期后为aborted。

原因在于:第二条指令jal InputUnsigned 为无条件转移指令,但只有在该指令译码的时候才可以知道转移的位置。

但是此时movif2p f10,r1指令已经取出,所以需要将该指令流水清空,由于是刚执行了IF指令,所以只需要重新取新的指令就可以了。

程序中出现的结构相关由于上条指令add r1,r1,r3的intEx的执行延迟了4个指令周期,所以addi,r2,r2,0x1指令就不能在add r1,r1,r3的intEx的执行前进入ID指令译码的执行。

所以这里出现了指令译码器的争用。

因而发生了结构相关。

2、考察增加浮点运算部件对性能的影响下面两组数据来自Statistics窗口,都是算5的阶乘,分别是运算部件为都为一个,运算部件都为两个的数据统计。

计算机系统结构实验一实验报告

计算机系统结构实验一实验报告

宁夏师范学院数学与计算机科学学院《计算机系统结构》实验报告实验序号:实验一实验项目名称:WinDLX模拟器与DLX指令的使用学号姓名专业、班级实验地点文科楼224指导教师时间2015.5.19一、实验目的及要求1.熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;2.加深对计算机流水线基本概念的理解;3.了解DLX基本流水线各段的功能以及基本操作;二、实验平台及要求WinDLX模拟器1.WinDLXWinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线是如何工作的。

该模拟器可以装载DLX汇编语言程序(后缀为“.s”的文件),然后单步、设断点或是连续执行该程序。

CPU的寄存器、流水线、I/O和存储器都可以用图形表示出来,以形象生动的方式描述DLX流水线的工作过程。

模拟器还提供了对流水线操作的统计功能,便于对流水线进行性能分析。

有关WinDLX的详细介绍,见附录(WinDLX教程)。

2.熟悉WinDLX指令集和WinDLX源代码的编写三、实验内容与步骤用WinDLX模拟器执行求最大公倍数程序gcm.s分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。

熟练掌握WinDLX的操作和使用。

注意:gcm.s中调用了input.s中的输入子程序。

load程序时,要两个程序一起装入(都select后再点击load)。

如:给出两组数6、3和6、1,分别在main+0x8(add r2,r1,r0)、gcm.loop(seg r3,r1,r2)和result+0xc(trap0x0)设置断点,采用单步和连续混合执行的方法完成程序,注意中间过程和寄存器的变化情况,然后单击主菜单execute/display dlx-i/o,观察结果。

四、实验结果与数据处理321实验程序实验源程序见文件gcm.s和input.s结果截图如下:五、分析与讨论通过本实验我掌握了WinDLX模拟器的基本操作和使用,了解了DLX 指令集结构及其特点,更加深入的了解计算机体系流水线的工作过程。

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

计算机科学与技术学院《计算机体系结构》课程实验
学号:
班级:
专业:
学生姓名:
年月日
实验报告
七、实验数据及结果分析:
1、先装入Variance.s再转入Input.s时,因为程序顺序执行,地址顺序符合程序执行顺序,程序能够正确执行;顺序相反时,因为Input.s的地址高,而程序顺序执行到Input.s 时将没有正确的输入窗口,程序执行到输出结果时,也不会出现结果
2、程序中出现的三种相关
(1)数据相关:以图1中出现的两个数据相关为例
下面两条指令中,因为第二条指令要读r3,而执行到此操作时加载指令仍对r3进行操作,因此出现了数据相关
lbu r3,0(r2)
seqi r5,r3,10
下面两条指令中,因为加法指令要读r1,而执行到此操作时乘法指令仍对r进行操作,因此出现了数据相关
multu r1,r1,r4
add r1,r1,r3
图1 数据相关
(2)控制相关:以图2中出现的控制相关为例
下面两条指令中,因为第一条指令出现跳转指令时,存储指令的取指将作废,所以出现控制相关
jal InputUnsigned
sw PrintfValue(r3),r1
图2 控制相关
(3)结构相关:以图3中出现的结构相关为例
下面两条指令中,因为当第二条乘法指令需要使用乘法器时,第一条乘法指令仍在使用乘法器,所以出现结构相关
mult r2,r0,r0
mult r3,r0,r0
图3 结构相关
3、主程序Variance.s的代码
.data ;.data标识下面的数据放在数据区中
;输入语句,指示你输入要求多少个数的方差
Prompt: .asciiz "Please input An integer which is array's size value>0: "
;输入语句,指示你输入要求方差的数
PromptLast: .asciiz "Please input the integer :"
;输出格式,表示求出的方差按什么格式输出
PrintfFormat: .asciiz "the Variance is : %g "
;表示下面采用字对齐
.align 2
;.word在存储器中顺序存放列出的字
PrintfPar: .word PrintfFormat
;在存储区中空出相应大小的区域
Printf: .space 8
Variance: .space 8
PrintfValue: .space 1024
.text ;.text标识下面的代码存放在代码区中
.global main ;.global标识main可以被全局访问
main:
;将Prompt字符串首地址放入r1寄存器中
addi r1,r0,Prompt
;跳转向InputUnsigned标识的地址,调用input子函数读取数组大小的值 jal InputUnsigned
;将input函数读取的数放入寄存器中
add r5,r0,r1
add r6,r0,r1
add r7,r0,r1
add r8,r0,r1
addi r3,r3,4
subi r7,r7,1
;无条件跳转向Loop2标识的指令地址
j Loop2
Average2:
;求出方差存入r11中
div r11,r2,r8
output:
;将方差存入Variance所指存储空间中
sw Variance,r11
;转换为双精度并输出
lf f2,Variance
cvti2d f0,f2
sd Printf,f0
addi r14,r0,PrintfPar
trap 5 ;调用中断,格式化输出转化为标准输出over:
trap 0 ;调用系统中断,0表示程序执行结束
4、样例输出,以图4中数据为例
输入需要求方差数的个数为4,4个数分别为3,5,6,2,输出结果为2
图4 输出界面
5、尽量减少和消除程序中出现的相关
(1)消除数据相关
a.采用定向技术:在发生数据相关时,等待前面计算结果的指令并不一定真的马上就用到该计算结果,如果能够将该计算结果从其产生的地方直接送到其他指令需要它的地方,就可以避免暂停。

具体操作为,在WinDLX模拟器中选中Configuration菜单中的Enable Forwarding选项。

b.手动优化:以图1中的一个数据相关为例,交换两条加法指令的顺序可消除数据相关。

multu r1,r1,r4 multu r1,r1,r4
add r1,r1,r3 addi r2,r2,1
addi r2,r2,1 add r1,r1,r3。

相关文档
最新文档