DLX流水线技术数据相关与结构相关
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
DLX流水线数据相关

由上面实验可知,定向技术带来的加速比: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
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
计算机体系结构试题库—判断题

计算机体系结构试题库判断题(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定律揭示的性能递减规则说明如果仅仅对计算机中的一部分做性能改进,则改进越多,系统获得的效果越小。
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 。
这个程序说明浮点指令的使用。
该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。
该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。
实验结果:在载入fact.s和input.s之后,不设置任何断点运行。
a.不采用重新定向技术,我们得到的结果b.采用定向技术,我们得到的结果:从上面的数据我们可以看出定向的作用:在定向技术存在的情况下Statistics 窗口中的各种统计数字:总的周期数(215) 和暂停数(17 RAW, 25 Control, 12 Trap; 54 Total)在定向技术不存在时候,控制暂停和Trap 暂停仍然是同样的值,而RAW暂停从17变成了53,总的模拟周期数增加到236。
所以定向技术带来的加速比:236 / 215 = 1.098DLX forwarded比DLX not forwarded快9.8%。
流水线技术——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流水线暂停
流水线技术——DLX流水线数据通路

四种不同的数据相关
• 两条指令i 和j,都会访问同一寄存器R, 假设i 先进入流水线,则它们对R有四种不 同的访问顺序: • (1)写后读(RAW )——i写j读
–如果j 在i 完成写之前从R 中读出数据,将得 到错误的结果! –最常见的数据相关,严重制约了CPU的性能, 是程序最重要的特征之一!
1
2
2
3 … … n-1 n
时间
3 … … n-1 n (n-1) Dt
3 … … n-1 n
mD t
nDt
T
(m-1)Dt
• 相关的概念
–现代汉语词典 • 彼此关连;互相牵涉 –流水线中的相关 • 指相邻或相近的两条指令因存在某种关联, 后一条指令不能在原指定的时钟周期开始执 行。
• 三种相关
• 资源相关(又称结构相关)
流水线技术——DLX流水线数据通 路
(IF) (ID) (EX) (MEM)
(WB)
IF
ID EX MEM WB
• 性能指标
– 吞吐率(TP, Thoughput Rate) – 加速比(Speed Ratio) – 效率(Efficiency)
空间
S4 1 2 3 … … n-1 n
S3
S2 S1 1 1 2
流水线技术——DLX流水线数据通 路
(IF) (ID) (EX) (MEM)
(WB)
• • • •
通过定向技术减少数据相关带来的暂停 定向(forwarding),也称为旁路(bypassing) 工作过程 主要思路:将计算结果从其产生的地方直 接送到真正需要它的地方,就可以避免暂 停。
–寄存器文件EX/MEM中的ALU运算结果总是回送 到ALU的输入寄存器 –从定向通路得到输入数据的ALU操作不必从源 寄存器中读取操作数
北邮高级计算机系统结构实验二三四五

实验二指令流水线相关性分析·实验目的通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC 处理器的特点的理解。
·实验原理:指令流水线中主要有结构相关、数据相关、控制相关。
相关影响流水线性能。
·实验步骤一.使用WinDLX模拟器,对Fact.s做如下分析:(1)观察程序中出现的数据/控制/结构相关。
指出程序中出现上述现象的指令组合。
(2)考察增加浮点运算部件对性能的影响。
(3)考察增加forward部件对性能的影响。
(4)观察转移指令在转移成功和转移不成功时候的流水线开销。
·实验过程一.使用WinDLX模拟器,对Fact.s做如下分析:浮点加、乘、除部件都设置为1,浮点数运算部件的延时都设置为4,如图1:图1 初始设置将fact.s和input.s加载至WinDLX中,如图2示。
图2 加载程序1.观察程序中出现的数据/控制/结构相关;指出程序中出现上述现象的指令组合。
1)数据相关点击F7,使程序单步执行,当出现R-Stall时停止,运行过程中出现下图3所示,输入整数6。
图3 输入整数6打开Clock Diagram,可以清楚的看到指令执行的流水线如图4所示。
图4 指令流水线双击第一次出现R-Stall的指令行,如图5所示。
图5 指令详细信息对以上出现的情况分析如下:程序发生了数据相关,R-Stall(R-暂停)表示引起暂停的原因是RAW。
lbu r3,0×0(r2)要在WB周期写回r3中的数据;而下一条指令seqi r5,r3,0×a要在intEX周期中读取r3中的数据。
上述过程发生了WR冲突,即写读相关。
为了避免此类冲突,seq r5,r4,0×a的intEX指令延迟了一个周期进行。
由此,相关指令为:2)控制相关由图6可以看出,在第4时钟周期:第一条指令处于MEM段,第二条命令处于intEX段,第三条指令出于aborted状态,第四条命令处于IF段。
WinDLX实验指导书

计算机系统结构实验指导手册李静梅、吴艳霞哈尔滨工程大学目录1.实验内容 (1)1.1实验一流水线中的相关 (1)1.2实验二循环展开及指令调度 (3)2.模拟器安装方法 (4)3.演示例程 (4)3.1 配置WinDLX (4)3.2 装载测试程序 (5)3.3 模拟步骤 (5)4.WINDLX汇编语言简介 (8)5.WINDLX汇编语言语言示例 (10)5.1 数据定向和结构相关例程 (10)5.2 指令再定序例程 (11)6.大作业封面模板 (13)7.DLX指令集 (14)1.实验内容1.1实验一流水线中的相关实验目的1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;2. 加深对计算机流水线基本概念的理解;3. 进一步了解DLX基本流水线各段的功能以及基本操作;4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。
实验平台WinDLX模拟器实验内容和步骤(做实验前请先认真阅读WinDLX教程)1.用WinDLX模拟器执行下列三个程序(任选一个):●求阶乘程序fact.s●求最大公倍数程序gcm.s●求素数程序prim.s分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU 中寄存器和存储器的内容。
熟练掌握WinDLX的操作和使用。
注意:fact.s中调用了input.s中的输入子程序。
load程序时,要两个程序一起装入(都select 后再点击load)。
gcm.s也是如此。
2.用WinDLX运行程序structure_d.s,通过模拟:●找出存在结构相关的指令对以及导致结构相关的部件;●记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;●论述结构相关对CPU性能的影响,讨论解决结构相关的方法。
3.在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),用WinDLX运行程序data_d.s。
DLX流水线中相关问题的研究

值 范 围不 同的属 性 在 分类 机 中起 到 相 同 的作 用 , 从 而避 免分类 机倾 向于看重 取值 较大 的属性 .
4 结 束 语
.
本 文尝试 在 入 侵检 测 领 域 利用 支 持 向量 机 , 构建基 于支持 向量 机 的入 侵 检 测 系统 模 型. 对 并
入 侵检 测系统 模 型 的分 析 , 以及 目前 国内外 研 究 表明, 与传统 的异 常检 测 系统 相 比, 于 S 基 VM 的 入 侵检 测系统 具 有 较少 的检 测 时 间 , 先验 知 识 在 不 足 的情况下 , 有较好 的分 类正 确率 , 仍 在异 常检 测 领域 S VM 是 一 种 有 效 的 入 侵 检 测 方 法 , 网 在 络入侵 检测 系统 中和 L NUX主 机入 侵 检 测 系统 I
摘 要 : 绍 DI 流 水 线 中的 结 构相 关 、 据 相 关 以 及控 制 相 关 的 产 生 , 针 对 不 同 的相 关 问题 提 出 解 决 介 x 数 并
方 法, 以提 高 流 水 线 的 效 率. 关 键 词 : I 流 水 线 相 关 ; 令 级 并 行 D X; 指
址 相同 的数据包 , 将接收到 的数据 包交 给高层协 并 议来 处理 , 而对 于除广播数据包 以外 的其他 包一律
系 , 网络会 话矢 量转 化为 输入特 征矢 量 , 进行 将 并 归一化 处理 . 一化 处 理 的 目的就 是 使 得 各个 取 归
丢弃. 在混杂模 式下 , 所有 接 收到 的数 据包 都 会交 给高层协议 , 而不 判断 数据包 中的 MAC地 址与 主 机适配器 的 MAC地 址 是否 一 致. 这样 , 可 以通 就 过将 网络适配器设 置为混杂模式 , 达到监 听并采 来 集网段上传输 的所 有数据包 的 目的. 个 网络会 话 的描 述 特 征 有很 多 , 如连 接 长 度 、 议类 型 、 据包 大小等 , 的是数 字 , 网络 协 数 有 如 会话 长 度与 大小 , 的是 字符 , 有 如协 议类 型. 用 利 支持 向量机 进行 人 侵 检测 , 就是 正 确 的 分类 网络 会话 , 持 向量 机 的输 入 向量 均 为 数 字 形 式 , 支 因 此 , 把字 符属性 转化 为相应 的数 字属 性 , 键词 须 关 表就是 字符 属性 与转化 后 的数字 属性之 间 的对应
深圳大学--集成电路设计与集成系统--计算机体系结构—简答题(1)

简答题(100题)1.简述CISC结构计算机的缺点。
答:●在CISC结构的指令系统中,各种指令的使用频率相差悬殊。
据统计,有20%的指令使用频率最大,占运行时间的80%。
也就是说,有80%的指令在20%的运行时间内才会用到。
●CISC结构指令系统的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。
●CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。
●CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。
●在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术(如流水技术)来提高系统的性能。
2.RISC结构计算机的设计原则。
答:A.选取使用频率最高的指令,并补充一些最有用的指令;B.每条指令的功能应尽可能简单,并在一个机器周期内完成;C.所有指令长度均相同;D.只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行;E.以简单有效的方式支持高级语言。
3.影响现代微处理器主频提升的主要原因由哪些?答:线延迟、功耗。
4.指令集格式设计时,有哪三种设计方法?答:固定长度编码、可变长编和混合编码)三种设计方法。
5.简述存储程序计算机(冯·诺依曼结构)的特点。
答:(1)机器以运算器为中心。
(2)采用存储程序原理。
(3)存储器是按地址访问的、线性编址的空间。
(4)控制流由指令流产生。
(5)指令由操作码和地址码组成。
(6)数据以二进制编码表示,采用二进制运算。
6.在进行计算机系统设计时,一个设计者应该考虑哪些因素对设计的影响?答:在进行计算机系统设计时,设计者应该考虑到如下三个方面因素的影响:●技术的发展趋势;●计算机使用的发展趋势;●计算机价格的发展趋势。
7.简述程序翻译技术的特点。
答:翻译技术是先把N+1级程序全部变换成N级程序后,再去执行新产生的N级程序,在执行过程中N+1级程序不再被访问。
计算机系统结构实验-循环展开和指令调度.

中央民族大学实验报告
八、实验数据及结果分析:
一、用指令调度技术解决流水线中的结构相关与数据相关:
1、instruction.s文件的代码:
2、运行程序部分截图
3、未用指令调度技术之前程序执行过程中的相关:
4、运行结果数据统计
5、采用指令调度后的程序代码
6、采用调度技术后发生的关联
7、运行结果数据统计
二、用循环展开、寄存器换名以及指令调度提高性能:
1、test.s文件的源代码如下:
2、运行test.s文件,记录运行过程中存在的相关,以及运行总的时钟周期数
3、将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的修改。
然后对新的循环体进行寄存器换名和指令调度,代码如下:
4、记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数:。
《计算机系统结构》课程教学大纲

《计算机系统结构》课程教学大纲一、课程基本信息课程代码:课程名称:计算机系统结构英文名称:Computer Architecture课程类别: 专业课学时:72(其中实验18学时)学分: 3.5适用对象: 计算机科学与技术、网络工程专业考核方式:考试(其中平时成绩占30%,期末考试成绩占70%)先修课程:计算机组成原理、操作系统二、课程简介本课程是计算机专业一门重要的专业基础课,对于培养学生的抽象思维能力和自顶向下、系统地分析和解决问题的能力有非常重要的作用。
其目标是使学生掌握计算机系统结构的基本概念、基本原理、基本结构、基本设计和分析方法,并对计算机系统结构的发展历史和现状有所了解。
通过学习本课程,能把在“计算机组成原理”等课程中所学的软、硬件知识有机地结合起来,从而建立起计算机系统的完整概念。
This course is a computer professional important foundation for the professional class, for training students in abstract thinking, and top-down, System analysis and the ability to solve problems is a very important role. The goal is to enable students to master computer system structure the basic concepts, basic principles and basic structure, basic design and analysis methods and computer system architecture and the history of the development of an understanding of the status quo. Through the study of this course, can in "Principles of Computer Organization", y the school curriculum of the software and hardware knowledge combined organic, Computer systems in order to establish the integrity of the concept.三、课程性质与教学目的《计算机系统结构》的教学对象为计算机相关专业的高年级本科生专业技术基础课程,目的是介绍计算机体系结构的概念、技术和最新动态,着重介绍软,硬件功能分配以及如何最佳、最合理地实现软、硬件功能分配。
经典:计算机系统结构-流水线技术---3.2-DLX的基本流水线

项目调研与实践
5/66
项目调研与实践
3.2 DLX的基本流水线
(3)执行/有效地址计算周期(EX) 在这个周期,不同的指令有不同的操作。
项目调研与实践
7/66
◆ 存储器访问 ALUOutput ← A+Imm
操作
项目调研与实践
◆ 寄存器―寄存器 ALU 操作 ALUOutput ← A op B
例3.1 在静态流水线上计算 ∑i=4A1 iBi ,
求:吞吐率,加速比,效率。
53/66
3.2 DLX的基本流水线
54/66
3.2 DLX的基本流水线
解:(1) 确定适合于流水处理的计算过程 (2) 画时空图
(3) 计算性能
吞吐率 TP=7/(20△t) 加速比 S=(34△t)/(20△t)=1.7 效率 E=(4×4+3×6)/(8×20)=0.21
◆ 消除瓶颈的方法 (举例)
细分瓶颈段 重复设置瓶颈段 (时-空图)
38/66
重复设置瓶颈段(时-空图举例)
3.2 DLX的基本流水线
(2) 实际吞吐率TP
流水线的实际吞吐率小于最大吞吐率。
◆ 第一种情况:各段时间相等(设为△t0) 假设流水线由 m 段组成,完成 n 个任务。
时空图
完成 n 个任务所需的时间 T流水=m△t0+(n-1)△t0
ID
ID/EX.NPC ← IF/ID.NPC; ID/EX.IR ← IF/ID.IR; ID/EX.Imm ← (IR16)16##IR16..31;
(动画演示)
ALU 指令
Load/Store 指令
分支指令
EX/MEM.IR ← ID/EX.IR;
EX
计算机体系结构 指令流水线相关性分析 实验报告

实验二指令流水线相关性分析实验类别:验证实验实验目的:通过使用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的阶乘,分别是运算部件为都为一个,运算部件都为两个的数据统计。
实验作业3:DLX流水线实验报告

实验作业3:DLX流水线实验报告计算机体系结构姓名:学号:班级:班级号:《计算机系统结构》第三次实验作业一、实验目的本次实验的主要目的是熟悉dlx流水线以及结构相关、数据相关、控制相关、前送(forwarding)等概念和技术。
二、实验内容1.了解各种指令在dlx流水线中的运行过程;2.流水线相关实验;3.转发技术对对流水线性能的影响;4.调查更改部件数量和延迟次数对性能的影响。
三、实验步骤及结果分析1.了解Dlx管线中各种指令的操作流程如上次实验那样,读入并运行fact.s和input.s。
请从程序中选择有代表性的5条不同类型的指令,并描述每条指令在5段流水线中每步完成的工作。
(1)(2)(3)(4)(5)2.流水线相关实验在管道窗口中观察,分别找出结构相关性、数据相关性和控制相关性,并描述风险情况以及如何在windlx中解决这些风险。
(1)结构相关在循环期间执行subdf0、F0、F4和jfact时,硬件资源无法满足jfact,因为Alu被占用,循环进入ex阶段并承担结构风险。
Windlx通过阻止EX1循环来解决这个问题。
(2)数据相关性bnezr5,input.finish需要使用seqi的计算结果r5,所以产生数据相关的冒险。
winddlx通过阻塞解决问题。
(3)控制相关语句lwr2、saver2(R0)被中止,这是由控制相关风险引起的。
因为前面的语句jinput Loop是一个跳转语句,并且在解码后可以知道指定给ex stage的语句的函数,所以执行该指令的LW语句被取消。
3.前送(forwarding)技术对流水线性能的影响(1)打开转发:没有开启forwarding:。
计算机体系结构第三章答案

第三章答案三、流水线技术(80空)1、对阶尾数相加2、求阶差规格化3、时间流水线的各段4、尽量相等流水线的瓶颈5、通过时间大量重复的时序输入端能连续地提供任务6、静态动态7、部件级处理机级8、标量流水处理机向量流水处理机9、线性流水线非线性流水线10、执行/有效地址计算周期存储器访问/分支完成周期11、译码读寄存器12、ALUoutput←A op B ALUoutput←NPC + Imm13、分支 STORE指令14、ALU指令 LOAD指令15、单周期多周期16、重复设置指令执行功能部件流水17、吞吐率等功能非流水线18、通过时间排空时间19、流水线寄存器的延迟时钟扭曲20、数据相关控制相关21、结构相关数据相关22、结构数据23、硬件开销功能单元的延迟24、写后读读后写写后读25、写后读读后写26、PC值改变为分支转移的目标地址 PC值保持正常(等于当前值加4)27、目标地址分支转移条件不成立28、8 存储器29、多功能线性 830、水平处理方式垂直处理方式31、纵向处理方式纵横处理方式32、存储器向量寄存器33、访问存储器的次数对存储器带宽的要求34、每秒执行多少指令(MIPS)每秒取得多少个浮点运算结果(MFLOPS)35、512 836、链接技术向量循环或分段开采技术37、源向量结果向量38、向量功能部件标量寄存器向量寄存器块39、向量寄存器向量功能部件3.1 流水线的基本概念1、流水线:将一个重复的时序过程,分解为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其他子过程同时执行。
2、单功能流水线:只能完成一种固定功能的流水线。
3、多功能流水线:流水线的各段可以进行不同的连接,从而使流水线在不同的时间,或者在同一时间完成不同的功能。
4、静态流水线:同一时间内,流水线的各段只能按同一种功能的连接方式工作。
5、动态流水线:同一时间内,当某些段正在实现某种运算时,另一些段却在实现另一种运算。
基于DLX指令集的5级流水线CPU设计与实现

基于DLX指令集的5级流水线CPU设计与实现一、渊源 (1)二、基础 (2)1、从系统角度和程序执行角度体会CPU概貌 (2)2、CPU设计的重点:指令集和流水线,指令集就是协议 (3)3、流水线—20世纪最伟大的发明 (10)4、流水线带来的烦恼—相关 (16)5、流水线结构的颠覆:记分牌与tomasulo算法(与设计无关) (21)三、设计与实现 (26)一、渊源诞生于1977年的英特尔8086以现在微电子专业本科生的水平完全可以做出来,龙芯的负责人胡伟武的毕业设计作品就是8086CPU。
我们学过的大三的时候看了《编码》后觉得比较有感觉就写了一篇文章叫作《从零开始构建一台计算机》,主要说了一下对编码思想的理解,只记得当时心情相当激动,好像二进制世界刚刚向我打开。
很重要的一部分是以自己的理解说了一下CPU与接口的相互作用关系,这是因为那时与单片机正打得火热。
当时对于CPU的理解几乎为零,所以一笔带过了CPU的构造与工作原理,骗自己说那是非常复杂的东西,一直把它奉作系统大脑,却从不知道它到底是什么。
但对CPU原理的理解对于写出高效的程序是很关键的。
上个学期,一个“神童”级的人物出现了,王超。
这个感觉还不如我们年龄大的科大博士后,教我们《现代微处理器体系结构》,不得不说收获很大,对如何设计、实现、测试、分析、评估、优化一个CPU有了比较清晰的认识。
考试完之后一直想整理整理,一直懒得动,这项任务像一块石头一样堵在心口,现在我想好好写写,作为上个学期的真正结束。
基础部分主要是之前课上课下的的笔记,实现部分主要是实验室老大单麾扬的杰作,他用了两天时间在modelsim下用verlog语言编写了整个工程,这个西工大的哥哥,真是各种令人折服。
二、基础1、从系统角度和程序执行角度体会CPU概貌我们沿用至今的冯诺依曼提出的计算机系统硬件结构:运算器、控制器、存储器、输入设备、输出设备。
其中运算器和控制器从功能角度来说就是中央处理单元CPU。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 的输入寄存器),那么就可以避免暂停。
基于这种考虑,定向技术的要点可以归纳为:(1) 寄存器文件EX/MEM 中的ALU 的运算结果总是回送到ALU 的输入寄存器。
(2) 当定向硬件检测到前一个ALU 运算结果的写入寄存器就是当前ALU 操作的源寄存器时,那么控制逻辑将前一个ALU 运算结果定向到ALU 的输入端,后一个ALU 操作就不必从源寄存器中读取操作数。
图3.3.4还表明,流水线中的指令所需要的定向结果可能并不仅仅是前一条指令的计算结果,而且还有可能是前面与其不相邻指令的计算结果,图3.3.5是采用了定向技术后上述例子的执行情况,其中寄存器文件和功能单元之间的箭头表示定向路径。
上述指令序列可以在图3.3.5中顺利执行而无需暂停。
上述定向技术可以推广到更一般的情况,可以将一个结果直接传送到所有需要它的功能单元。
也就是说,一个结果不仅可以从某一功能单元的输出定向到其自身的输入,而且还可以从某一功能单元的输出定向到其它功能单元的输入。
(1) 写后读相关(RAW:Read After Write)(命名规则):j 的执行要用到i 的计算结果,当它们在流水线中重叠执行时,j 可能在i 写入其计算结果之前就先行对保存该结果的寄存器进行读操作,从而得到错误的值。
这是最常见的一种数据相关,图3.3.6和图3.3.7中采用定向技术消除的数据相关就属于这种类型。
(2) 写后写相关(WAW:Write After Write ):j 和i 的目的寄存器相同,当它们在流水线中重叠执行时,j 可能在i 写入其计算结果之前就先行对该结果寄存器进行写操作,从而导致写入顺序错误,在目的寄存器中留下的是i 写入的值,而不是j 写入的值。
如果在流水线中不只一个段可以进行写操作,或者当流水线暂停某条指令时,允许该指令之后的指令继续前进,就可能会产生这种类型的数据相关。
由于DLX 流水线只在WB 段写寄存器,所以在DLX 流水线中执行的指令不会发生这种类型的数据相关。
如果我们对DLX流水线作如下改变,在DLX流水线中执行的指令就有可能发生WAW相关。
首先,将ALU 运算结果的写回操作移到MEM 段进行,因为这时计算结果已经有效;其次,假设访问数据存储器占两个流水段。
下面是两条指令在修改后的DLX 流水线中执行的情况:可以看出,在修改后的DLX 流水线中执行上述指令序列后,寄存器R1 中的内容是第一条指令(LW)的写入结果,而不是ADD 指令的写入结果。
这就是由于WAW 相关所带来的错误执行结果。
(3) 读后写相关(WAR:Write After Read ):j 可能在i 读取某个源寄存器的内容之前就先对该寄存器进行写操作,导致i 后来读取到的值是错误的。
由于DLX 流水线在ID 段完成所有的读操作,在WB 段完成所有的写操作。
所以,在DLX 流水线中不会产生这种类型的数据相关。
基于上面修改后的DLX 流水线,考察下面两条指令的执行情况:如果SW 指令在MEM2 段的后半部分读取寄存器R2 的值,ADD 指令在WB 段的前半部分将计算结果写回寄存器R2,则SW 将读取错误的值,将ADD 指令的计算结果写入存储器中。
值得注意的是,在读后读(RAR:Read After Read)的情况下,不存在数据相关问题。
4. 需要暂停的数据相关前面我们讨论了如何利用定向技术消除由于数据相关带来的暂停。
但是,并不是所有数据相关带来的暂停都可以通过定向技术消除。
为了保证流水线正确执行上述指令序列,可以设置一个称为流水线互锁(pipeline interlo ck)的功能部件。
一旦流水线互锁检测到上述数据相关,流水线暂停执行LW指令之后的所有指令,直到能够通过定向解决该数据相关为止。
图3.3.12为流水线互锁插入暂停后流水线数据通路;图3.3.13是加入暂停前后的流水线时空图。
下面讨论如何利用编译器技术来减少这种必须的暂停,然后论述如何在流水线中实现数据相关检测和定向。
5. 对数据相关的编译器调度方法流水线常常会遇到许多种类型的暂停。
比如,采用典型的代码生成方法对A = B + C这种常用的表达式进行处理,可以得到如图3.3.14所示的指令序列。
从图3.3.14可以看出,在ADD 指令的流水过程中必须插入一个暂停时钟周期,以保证变量C的读入值有效。
既然定向无法消除指令序列中所包含的这种暂停,那么能否让编译器在进行代码生成时就消除这些潜在的暂停呢?实际上,编译器的确可以通过重新组织代码顺序来消除这种暂停。
通常称这种重新组织代码顺序消除暂停的技术为流水线调度(pipeline scheduling)或指令调度(instruction schedulin g)。
例3.6 请为下列表达式生成没有暂停的DLX代码序列。
假设载入延迟为1个时钟周期。
a =b - c;d =e - f;解:调度前后的指令序列如表3.2所示。
可以看出,两条ALU指令(ADD Ra,Rb,R c 和SUB Rd,Re,Rf)分别和两条Load指令(LW Rc,c和LW Rf,f)之间存在数据相关。
为了保证流水线正确执行调度前的指令序列,必须在指令执行过程中插入两个时钟周期的暂停。
但是考察调度后的指令序列不难发现,由于流水线允许定向,就不必在指令执行过程中插入任何暂停周期。
6. 对DLX流水线控制的实现让一条指令从流水线的指令译码段(ID)移动到执行段(EX)的过程通常称为指令发射,而经过了该过程的指令为已发射的指令。
对于DLX 标量流水线而言,所有的数据相关均可以在流水线的ID段检测到,如果存在数据相关,指令在其发射之前就会被暂停。
这样,我们可以在ID段决定需要什么样的定向,然后设置相应的控制。
在流水线中较早地检测到相关,可以降低实现流水线的硬件复杂度,因为这样不必在流水过程中被迫将一条已经改变了机器状态的指令挂起。
另外一种方法是在使用一个操作数的时钟周期开始(DLX 流水线的EX 和MEM 段的开始)检测相关,确定必需的定向。
为了说明这两种方法的不同,我们将以Load 指令所引起的RAW 相关为例,论述如何通过在ID段的检测来实现流水线控制,其中到ALU 输入的定向路径可以在EX 段。
表3.3列出了流水线相关检测硬件可以检测到的各种相关情况。
现在来看看如何实现流水线互锁。
如果某条指令和Load 指令有一个RAW 相关时,该指令处于ID段,Load 指令处于EX段。
我们可以用表3.4来描述此时所有可能的相关情况。
一旦硬件检测到上述RAW 相关,流水线互锁必须在流水线中插入暂停周期,使正处于IF 和ID段的指令不再前进。
另外,还必须暂停向前传送IF/ID 寄存器组的内容,使得流水线能够保持被暂停的指令。
对定向而言,虽然可能要考虑许多情况,但是定向逻辑的实现方法是类似的。
实现定向逻辑的关键是,流水线寄存器不仅包含了被定向的数据,而且包含了目标和源寄存器域。
从上面的讨论可知,所有定向都是从ALU 或数据存储器的输出到ALU、数据存储器或0检测单元的输入的定向,我们可以分别将EX/MEM 和MEM/WB 段的寄存器IR 同ID/EX 和EX/MEM 段中的寄存器IR 相比较,决定是否需要定向,从而实现必需的定向控制。
定向的控制硬件除了需要用比较器和组合逻辑来确定什么时候打开哪一条定向路径之外,还需要在ALU 输入端采用具有多个输入的多路器,并增加相应的定向路径连接通路。
改进图3.2.17中的相关硬件,可以得到图3.3.15,图中画出了所增设的定向路径。
在DLX 中,任何流水线寄存器到任何功能单元的输入都可能需要定向路径。
前面的一些数据相关的实例均是有关寄存器操作数的,但是数据相关也有可能发生在一对指令对存储器同一单元进行读写的时候。
不过,本章仅讨论有关寄存器的数据相关。
3. 数据相关的分类根据指令对寄存器的读写顺序,可以将数据相关分为三类。
习惯上,这些相关是根据流水线所必须保持的访问顺序来命名的。
考虑流水线中的两条指令i 和j ,且i 在j 之前进入流水线,由此可能带来的数据相关有:。