DLX流水线数据相关
流水线的相关问题

流水线只有连续不断地流动,不出现断流,才能获得高效率。
如果处理不当,使流水线产生“断流”,就会使流水效率显著下降。
流水过程中因为相关问题而产生冲突,是导致流水线断流的主要原因。
一般来讲,流水线的相关主要分为以下三种类型。
1. 结构相关结构相关是指当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,两条或两条以上指令争用同一资源而引起的冲突,因此,结构相关又称为资源相关。
例如,假设一条指令流水线由5段组成,分别为取指令(IF)、指令译码(ID)、取操作数(MEM)、执行运算(EX)和写寄存器(WR)。
该流水线的时空图如图8-12所示。
图8-12 5段指令流水线从图中可以看出,指令I2的取操作数和指令I4的取指令都需要访问存储器。
若机器中只有一个单端口存储模块,那么I2的取操作数和指令I4的取指令就产生了访存冲突,两个操作无法同时进行,这就是一种典型的资源冲突。
一种解决这种冲突的方法是在机器中增加存储器模块,如使用双端口存储器,使指令和数据分别存放在不同的存储器模块中,这样,取指令和取操作数就不会发生冲突。
另一种方法是,当发生取指令或取操作数冲突时,将其中一个操作的执行时间推迟,如图8-13所示。
当然,这样的话也就是发生了流水线的断流,流水线的吞吐率就下降了。
图8-13 访存相关引起流水线断流2. 数据相关当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行时,就有可能产生数据相关。
在流水计算机中,指令的处理是重叠进行的,前一条指令还没有结束,第二、三条指令就陆续地开始工作。
由于多条指令的重叠处理,当后继指令所需的操作数,刚好是前一指令的运算结果时,便发生数据相关冲突。
例如,某一时间以下3条指令在图8-12的流水线中执行。
ADD R1, R2, R3 ;(R2)+(R3)→R1SUB R4, R1, R5 ;(R1)-(R5)→R4AND R6, R1, R7 ;(R1)∧(R7)→R6其中,SUB指令的EX段需要执行R1减R5,而同一时间,其上一条指令正在执行写结果到R1的操作。
DLX处理器浮点数流水线性能的研究

1
2
3
4
5
6
7
8
9
系统结构的共 同特点 ,还将体现未来一些机器 的设计 思想 D X虚拟微处理机提供 了一个基于 P L C机 的研究 平台,研究 者可 以在 P C机 上模拟新 的处理机技术 。此 ,研究 D X虚 L
1 I E ME F D X M WB
8 , ne 8 0, I S M/ 2 A, I S M/ 0 0, 01 l t l 6 M P I 0 i M P l 0 Mo o o l 8 t r a a8 K,
R S , D 6 , P R s t n 1 S n410 S n42 0等 ) IC I GI /0 S A C t i 一, u 一/1 , u 一/6 S 4 ao
[ bt c]Wi e L oe o s n Cmc cm u r eer e n i le r ic r onwpoesr h aefsirdcs A s at r tt Xp cs r ae o ioo pt , sa hra mu t a ht t e f e r s . e pritn oue hh D r s b d P r er c c s a c eu c o T p r t
维普资讯
第 3 卷 第 9 2 期
、 l 2 ,。 o 3
9
计
算
机
工
程
20 06年 5月
M a 06 y2 0
Co p trEn i e rn m ue gn eig
・ 工程应用技术与实现 ・
 ̄I l , 0 _ 4 ( 0o_ 2 — 3 文 标 码t Nq 1 3 806 _ 2 0 22 ) o 2 献 识 A
WinDLX实验报告

WinDLX基础实验1.实验目的:1)熟悉计算机流水线基本概念2)了解DLX基本流水线的各段的功能了解各种不同指令在流水线中的实际流动情况3)对流水线做性能分析4)了解影响流水线效率的因素——数据相关、结构相关、控制相关,了解相关的种类5)了解决数据相关的方法2.实验内容:1)在仿真器上分别运行单条指令:Load指令、Store指令、分支指令、寄存器ALU指令、立即数ALU指令,记录它们在流水线中的执行情况2)仿真器运行一段无相关的程序,记录执行情况,计算流水线的加速比、吞吐率与效率。
3)在仿真器运行一段程序,统计该程序在流水线中出现的各种相关个数,及其引起的流水线暂停周期数4)在流水线中设置定向路径来消除数据相关,运行程序并统计在流水线中出现的相关个数,及其引起的流水线暂停周期数5)通过对程序进行编译优化并结合其他相关解决方法——分支预测与延迟槽,运行程序并统计在流水线中出现的相关个数,及其引起的流水线暂停周期数。
3.实验步骤:1.)熟悉WinDLX的使用用WinDLX模拟器执行求阶乘程序fact.s。
开始模拟之前的准备工作:(1) 通过双击WinDLX 图标启动WinDLX,将出现一个带有六个图标的主窗口:(2)进行初始化模拟器, 点击File菜单中的Reset all菜单项,弹出一个“Reset DLX”对话框。
然后点击窗口中的“确认”按钮即可。
(3)在开始模拟之前,至少应装入一个程序到主存。
为此,选择File / Load Code or Data,窗口中会列出目录中所有汇编程序。
fact.s计算一个整型值的阶乘;input.s中包含一个子程序,它读标准输入(键盘)并将值存入DLX处理器的通用寄存器R1中。
按如下步骤操作,把fact.s和input.s加载入主存。
•点击fact.s•点击select按钮•点击input.s•点击select按钮•点击load按钮得到如下图:弹出一下询问对话框,点击“是”。
DLX虚拟处理器流水线性能分析

CHEN —u KOU n —h n, NG o l n W U n Li n, j Yig z a DI Gu —i g, a Ya g
( p rme t fC mp trEn ie r g Or n n eEn ie r gColg , hj z u n 0 0 0 , ia De at n o ue gn ei , d a c gn ei l e S iah a g o n n e i 5 0 3 Chn )
Ab t a t Th s p p ri t o c st e s r t ec a a t roft e DLX r u lpr c s ora heprn— s r c : i a e n r du e h t uc ur h r c e h vit a o e s nd t i cpl ft p ln n An e a l fma rx muli lc to i u a e h i e i i g pe f r n e i e o hepi e i i g. x mp e o t i tp i a i n sm l t s t e p p ln n r o ma c ofa p og a i h r r m n t e DLX it a r c s or Usng t e s a itct o n t eDLX ,hi a e n l z s v r u lp o e s . i h t ts i o li h t sp p ra a y e
第 2 3卷第 1 期
21 0 1年 2月
军
械
工
程
学
院
学
报
V 0.2 No I 3 .1
J u n 1o ld a e n i e rn l g o r a fCr n n e E g n e i g Co l e e
DLX流水线技术数据相关与结构相关

3.3.2流水线的数据相关1. 数据相关简介当指令在流水线中重叠执行时,流水线有可能改变指令读/写操作数的顺序,使得读/写操作顺序不同于它们非流水实现的顺序,这将导致数据相关。
首先让我们考虑下列指令在流水线中的执行情况:ADD R1,R2,R3SUB R4,R5,R1AND R6,R1,R7OR R8,R1,R9XOR R10,R1,R11ADD指令后的所有指令都要用到ADD指令的计算结果,如图3.3.4所示,ADD 指令在WB 段才将计算结果写入寄存器R1 中,但是SUB 指令在其ID 段就要从寄存器R1 中读取该计算结果,这种情况就叫做数据相关。
除非有措施防止这一情况出现,否则SUB 指令读到的是错误的值。
所以,为了保证上述指令序列的正确执行,流水线只好暂停ADD 指令之后的所有指令,直到ADD 指令将计算结果写入寄存器R1 之后,再启动ADD指令之后的指令继续执行。
从图3.3.4还可以看到,AND 指令同样也将受到这种相关关系的影响。
ADD 指令只有到第五个时钟周期末尾才能结束对寄存器R1 的写操作,所以AND 指令在第四个时钟周期从寄存器R1 中读出的值也是错误的。
而XOR 指令则可以正常操作,因为它是在第六个时钟周期读寄存器R1 的内容。
另外,利用DLX流水线的一种简单技术,可以使流水线顺利执行OR 指令。
这种技术就是:在DLX 流水线中,约定在时钟周期的后半部分进行寄存器文件的读操作,而在时钟周期的前半部分进行寄存器文件的写操作。
在本章的图中,我们将寄存器文件的边框适当地画成虚线来表示这种技术。
2. 通过定向技术减少数据相关带来的暂停图3.3.4中的数据相关问题可以采用一种称为定向(也称为旁路或短路)的简单技术来解决(动画演示)。
定向技术的主要思想是:在某条指令(如图3.3.4中的ADD 指令)产生一个计算结果之前,其它指令(如图3.3.4中的SUB 和AND 指令)并不真正需要该计算结果,如果能够将该计算结果从其产生的地方(寄存器文件EX/MEM)直接送到其它指令需要它的地方(ALU 的输入寄存器),那么就可以避免暂停。
流水线技术--DLX的基本流水线

第一种描述(类似于时空图)
第二种描述(按时间错开的数据通路序列)
虚拟存储器的特点
22/66
3.2 DLX的基本流水线
虚拟存储器的特点
23/66
按时间错开的数据通路序列
虚拟存储器的特点
3.2 DLX的基本流水线
3. 采用流水技术还应解决好以下几个问题:
(1)应保证不会在同一个时钟周期内在同一数据 通路资源上做不同的操作。 例如,不能要求一个ALU同时既做有效 地址计算,又做减法操作。 上述简单DLX流水线中:
ID
EX
EX/MEM.IR ← ID/EX.IR; EX/MEM.ALUOutput ← EX/MEM.ALUOutput ← EX/MEM.IR ← ID/EX.NPC + ID/EX.A op ID/EX.B ID/EX.IR; ID/EX.Imm; 或 EX/MEM.ALUOutput ← EX/MEM.cond ← EX/MEM.ALUOutput ← ID/EX.A + ID/EX.Imm; (ID/EX.A op 0); ID/EX.A op ID/EX.Imm; EX/MEM.cond ← 0; (动画演示) (动画演示) (动画演示)
◆ 流水线各段之间需设置流水线寄存器
(也称为锁存器) ◆ 流水线寄存器组及其所含寄存器的命名 例如,ID段和EX段之间的流水线寄存 器组中的IR寄存器的名称为:ID/EX.IR ◆ 流水线寄存器的作用 把数据和控制信息从一个流水段传 送到下一个流水段。
虚拟存储器的特点 30/66
虚拟存储器的特点
◆ 流水线寄存器的构成
虚拟存储器的特点
17/66
寄存器―寄存器型 ALU 指令 Regs[IR16 ..20] ← ALUOutput
计算机体系结构试题库—判断题

计算机体系结构试题库判断题(102题)1.(√)执行时间不是唯一的性能指标,但它是最普遍的性能表示形式。
2.(×)根据Moore定律,DRAM的周期时间是每三年降低四倍。
3.(×)MIPS是测量计算机性能的一致性指标。
4.(√)在计算机性能测量中,调和平均的含义是单位时间机器能够执行的程序数。
5.(×)可以用典型程序来设计和优化指令集。
6.(×)增加流水线的级数总可以增加流水线的性能。
7.(×)多处理机系统中的素数模低位交叉存储器可以避免所有访存冲突。
8.(√)部件的可靠性通常可以用平均无故障时间来衡量。
9.(√)在向量处理机中,链接只能在顺序的Convoy(向量指令并行集)之间进行。
10.(×)n维超立方体单级互连网络中的节点数为n。
11.(×)MIPS和MFLOPS是计算机性能衡量的两个可靠指标。
12.(×)RISC结构的机器性能一定要比CISC结构的机器性能高。
13.(×)平均每条指令的执行周期数(CPI)与程序无关。
14.(√)CPU性能公式中指令条数(IC)与指令集格式和编译器有关。
15.(√)CPU的组织在一定程度上会影响CPU所能达到的频率。
16.(√)解释执行比翻译执行花的时间多,但存储空间占用较少。
17.(×)计算机体系结构设计这不必关心指令集具体实现。
18.(×)当前没有任何一种指令集结构是堆栈型结构,因为它已经过时了。
19.(√)虽然结构相关会影响流水线的性能,但是我们在具体的流水线设计中仍然允许一定的结构相关存在。
20.(×)程序的时间局部性指程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。
21.(×)程序的空间局部性指程序即将用到的信息很可能就是目前正在使用的信息。
22.(√)Amdahl定律揭示的性能递减规则说明如果仅仅对计算机中的一部分做性能改进,则改进越多,系统获得的效果越小。
流水线技术——DLX流水线数据通路

• 3. 数据相关的分类 • (3) 读后写(WAR ) —— i 读j 写
将读出错误的结果! –如果j 先将数据写入R,i 将读出错误的结果! 如果 –DLX流水线不会出现这种类型的相关! DLX流水线不会出现这种类型的相关 DLX流水线不会出现这种类型的相关! –当有些指令在流水段后半部分读源操作数,另 当有些指令在流水段后半部分读源操作数, 当有些指令在流水段后半部分读源操作数 一些指令在流水线前半部分写结果, 一些指令在流水线前半部分写结果,可能引起 这种类型的相关。 这种类型的相关。
流水线技术——DLX流水线数据通 路
(IF) ) (ID) ) (EX) ) ) (MEM) (WB) )
• • • •
通过定向技术减少数据相关带来的暂停 定向(forwarding),也称为旁路(bypassing) 工作过程 主要思路:将计算结果从其产生的地方直 接送到真正需要它的地方,就可以避免暂 停。
流水线技术——DLX流水线数据通 路
(IF) ) (ID) ) (EX) ) ) (MEM) (WB) )
IF
ID EX MEMWB
• 性能指标
– 吞吐率(TP, Thoughput Rate) – 加速比(Speed Ratio) – 效率(Efficiency)
空间 S4 S3 S2 S1 1 1 2 1 2 1 2 2 3 … … n-1 n
• (4) 读后读(RAR ) —— i 读j 读
–不引起数据相关! 不引起数据相关! 不引起数据相关
控制相关
• 1. 分支指令的实现
–一旦分支转移成功,正确的地址要在Mem段的 一旦分支转移成功,正确的地址要在Mem段的 一旦分支转移成功 Mem 末尾才会被写入 才会被写入PC 末尾才会被写入PC –一旦ID段检测到分支指令,就暂停执行其后的 一旦ID段检测到分支指令, 一旦ID段检测到分支指令 指令,直到分支指令达到Mem Mem段 确定新的PC 指令,直到分支指令达到Mem段,确定新的PC 为止 –分支转移成功将导致DLX流水线暂停3个周期 分支转移成功将导致DLX流水线暂停3 分支转移成功将导致DLX流水线暂停
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由上面实验可知,定向技术带来的加速比:202 / 128 = 1.578,即DLXforwarded比DLXnotforwarded快57.8%。因此,我们得出结论:使用定向技术,减少了数据相关,较明显减少周期暂停提高系统执行效率。
6、数据相关的data程序
3、在采用定向技术的情况下,用WinDLX模拟器再次运行程序data_d.s。
3.1.执行结果时空图:
4、记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时
钟周期数占总执行周期数的百分比。
4.1.Statistics窗口如图:
由图可知,程序总共执行了128个周期,数据相关引起的暂停时钟周期数RAW stalls为30个,暂停时钟周期数占总执行周期数的百分比=23.44%
实验总结:
实验评语:
实验成绩
教师签名
1.2.执行结果时空图:
2、记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时
钟周期数占总执行周期数的百分比。
2.1.Statistics窗口如图:
由图可知,程序总共执行了202个周期,数据相关引起的暂停时钟周期数RAW stalls为104个,暂停时钟周期数占总执行周期数的百分比=51.48%
计算机科学与工程学院学生实验报告
专业
班级
学验名称
DLX流水线数据相关
实验目的:
1、理解流水线的数据相关
2、掌握如何使用定向技术来减少数据相关带来的暂停
实验内容:
1、在不采用定向技术的情况下,用WinDLX模拟器运行程序data_d.s.。
1.1.装入程序data d.s