【精选】计算机系统结构第四章
计算机系统结构第4章
例:有四个中断源D1、D2、D3和D4,它们的中断(响 应)优先级从高到低分别是1级、2级、3级和4级。这 些中断源的正常中断屏蔽码和改变后的中断屏蔽码见 下表。每个中断源一位,共4位屏蔽码。1表示不允许 中断,0表示允许中断
中断源名称 中断优先级
D1
1
D2
2
D3
3
D4
4
正常中断屏蔽码 D1 D2 D3 D4 1111 0111 0011 0001
(2)直接存取方式:(真正的DMA方式) 整个工作流程全部用硬件完成。 优点与缺点正好与周期窃取方式相反。
(3)数据块传送方式: 在设备控制器中设置一个比较大的数据缓冲存储器。 设备控制器与主存储器之间的数据交换以数据块为 单位,并采用程序中断方式进行。 实际并不是DMA方式,只是中断过程以数据块为单位 处理。
4.2.4 中断现场的保存和恢复
现场信息分为三类: (1)程序计数器PC,必须由硬件来完成保存 (2)处理机状态字、基址寄存器、中断屏蔽码等 保存与恢复方法有:主存固定区域,压入系统堆栈、 交换处理机状态字。 (3)软件现场:在中断服务程序中被破坏的通用寄存器 中内容。一般采用软件来保存和恢复现场。
特点: (1)CPU与外围设备能够并行工作。 (2)能够处理意外事件。 (3)数据的输入和输出都要经过CPU。 (4)用于连接低速外围设备。
3.直接存储器访问方式 DMA(Direct Memory Access),主要用来连接高速外 围设备。如磁盘存储器等。 主存和外设间有直接数据通路。 DMA控制器
(6)实时过程控制产生的中断。 (7)实时钟的定时中断。 (8)多处理机系统中,从其它处理机发送来的中断。 (9)程序调试过程中,由断点产生的中断。 (10)硬件故障中断。 (11)电源故障中断。
计算机系统结构多媒体教程课件_第四章 存储系统
结论:CPU在执行程序时, 所用到的指令和数据的MEM 单元地址分布不会是随机的, 而是相对集中成自然的块或 页面(MEM中较小的连续单元 区)。
2013-8-31
《计算机系统结构》多媒体课件
5
Embedded , desktop, server computers
2013-8-31 《计算机系统结构》多媒体课件 6
1、MEM容量、速度、价 格的矛盾 2、存贮体系层次 3、程序的局部性 4、存贮体系的性能参数
2013-8-31 《计算机系统结构》多媒体课件 7
2013-8-31
《计算机系统结构》多媒体课件
2
introduction
In 1980 microprocessors were often design without caches,while many come with two levels of caches on the chip. Why? !!!!
A A
Tm
2013-8-31
Tm
9
《计算机系统结构》多媒体课件
(3)频宽Bm: * MEM连续访问时,每单位时间内存取的信 息量以bit/s OR Byte/s为单位。 * 单体MEM :Bm =W/TM * 多体并行MEM :Bm =W·m/TM 理想状态下MEM满负荷工作的最大频宽。 * 实际上由于MEM不可能一直处于RD/WR , 所以实际频宽 < 最大频宽。
1、MEM 容量 * Sm=W*L*m * W:MEM 存储体字长(以 bit OR Byte 为单位) L:单个存贮体字数 m:并行工作的MEM 体个 数 * Sm 单位为***bit OR ***B
计算机系统结构 第四章自考练习题答案
A.随机算法B.近期最少使用算法C.先进后出算法D.OPT算法
17.并行主存系统不包括(C)。
A.单体多字B.多体单字C.单体单字D.多体多字
18.在虚拟存储器中,不能用作地址映象和变换的辅助表是(B)。
A.段表B.主存页面表C.内页表D.外页表
24.在主、辅存之间增加一级电子磁盘,使级间(r)值不会过大,有利于降低(对H的要求),以获得同样的e。
25.访Cache的时间一般是访主存时间的(1/4)至(1/10)。
26.页式虚拟存储器把(程序)空间和(主存)空间都机械等分成相同大小的页面。
27.段页式虚拟存储器的内部地址映象表机构有(段)表和(页)表两部分。
9.在Cache存储器中常用的地址映象方式是(C)。
A.全相联映象B.页表法映象C.组相联映象D.段页表映象
10.下列关于虚拟存储器的说法比较正确的应当是(D)。
A.更换替换算法能提高命中率B.访主存命中率随主存容量增大而提高
C.访主存命中率随页面大小增大而提高
D.在主存命中率低时,改用堆栈型替换算法,并增大主存容量,可提高命中率
13.页式虚拟存储器中,影响命中率的因素有(替换)算法、程序地址流及分配给该程序的(实页)数等。
14.FIFO、OPT、LRU算法中,属堆栈型算法的是(LRU)和(OPT)法。
15.页面失效频率(PFF)法是通过动态调节分配给各道程序的实页数来提高系统效率的,其依据是LRU替换算法,它属于(堆栈)型的替换算法,有命中率H随分配的实页数增大而(单调上升)这一特点。
31.在虚拟存储器中,地址的映象是指将每个虚存单元按什么规则装入(实存);地址的变换是指程序执行中,将多用户虚地址如何变换成对应的(实地址)。
计算机系统结构 第四章(习题解答)
1. 假设一条指令的执行过程分为“取指令”、“分析”和“执行”三段,每一段的时间分别是△t 、2△t 和3△t 。
在下列各种情况下,分别写出连续执行n 条指令所需要的时间表达式。
⑴ 顺序执行方式。
⑵ 仅“取指令”和“执行”重叠。
⑶ “取指令”、“分析”和“执行”重叠。
答:⑴ 顺序执行方式12 ......1 2 12T =∑=++n1i i i i )t t t (执行分析取址=n(△t +2△t +3△t)=6n △t⑵ 仅“取指令”和“执行”重叠12 ......1 212T =6△t +∑=+1-n 1i i i )t t (执行分析=6△t +(n-1)(2△t +3△t)=(5n +1)△t⑶ “取指令”、“分析”和“执行”重叠12 34 ......1 2 3 41234△t2△t3△t△t2△t3△t△t2△t3△tT =6△t +∑=1-n 1i i )t (执行=6△t +(n-1)(3△t)=(3n +3)△t2. 一条线性流水线有4个功能段组成,每个功能段的延迟时间都相等,都为△t 。
开始5个任务,每间隔一个△t 向流水线输入一个任务,然后停顿2个△t ,如此重复。
求流水线的实际吞吐率、加速比和效率。
答:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15...1 2 3 4 5 6 7 8 9 10 11 12 13 14 151 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 56 7 8 9 10 11 12 13 14 151 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23我们可以看出,在(7n+1)Δt 的时间内,可以输出5n 个结果,如果指令的序列足够长(n →∞),并且指令间不存在相关,那么,吞吐率可以认为满足:)n (t75t )n /17(5t )1n 7(n 5TP ∞→∆=∆+=∆+=加速比为:)n (720n /17201n 7n 20t )1n 7(t 4n 5S ∞→=+=+=∆+∆⨯=从上面的时空图很容易看出,效率为:)n (75n /1751n 7n 5t )1n 7(4t 4n 5E ∞→=+=+=∆+⨯∆⨯=3. 用一条5个功能段的浮点加法器流水线计算∑==101i i A F 。
计算机系统结构 第4章
4.1.4 存贮体系的性能参数
图 4.9 二级存贮体系的评价
设 ci 为 Mi 的每位价格, SMi 为 Mi 的以位计算的存贮容量, TAi 为 CPU 访问到 Mi 中的信息所需要的时间。为评价存贮层次 的性能,引入存贮层次的每位价格 c 、命中率 H 和等效访问时 间TA。
存贮层次的每位平均价格
第 4 章 存储系统
4.1 存贮体系的形成与性能 4.2 虚拟存贮器 4.3 高速缓冲存贮器(Cache) 4.4 主存保护
4.1 存储系统的形成与性能
冯诺依曼机的改进:
运算器为中心 存储器为中心
目的:存放计算机系统中所需要处理的程序与数据 。
主存储器:用以存放正在运行的程序与数据 。
辅助存储器:存放等待运行的程序与数据。 通用寄存器组:是存放那些最经常用到的数据。 存储系统:两个或两个以上的速度、容量、价格不同的存 储器采用硬件,软件或软、硬件结合的办法联接成一个系 统。
TA HTA1 (1 H )TA2
设CPU对存贮层次相邻二级的访问时间比r=TA2/TA1,则
1 e TA HTA1 (1 H )TA2 H (1 H )r
TA1
TA1
如果要使存储系统的 速度与相对较快的那 个存储系统接近,途 径: 1.提高H 2.使构成存储系统的 两个存储器的速度之 比不要太大.
在多任务或多用户系统中,可以把不同的任务分配在不同的存 储器中来提高存储器的访问速度。
低位交叉访问
MDR0 低位部分:存储体体号 b=log2m 高位部分:体内地址 a=log2n 0 m 2m 3m … (n-1)m
W
MDR1 1 m+1 2m+1 3m+1 … (n-1)m+1
计算机系统结构第四章
第四章输入输出系统(P208)输入输出系统是计算机系统中实现各种输入输出任务的资源总称。
它包括各种输入输出设备、相关的管理软件等等。
由于输入输出设备的特殊工作性质使其数据吞吐率通常远低于主机,设计输入输出系统就是要建立数据交换的最佳方案,使双方都能高效率地工作。
本章重点是中断优先级管理、通道流量设计。
4.1 I/O原理•定义:在计算机系统中,通常把处理机和主存之外的部分称为I/O系统,它包括I/O设备、I/O接口、I/O 软件等。
•I/O系统能够提供处理机与外部世界进行交往或通信的各种手段。
•外部世界指处理机以外的需要与处理机交换信息的人和物。
I/O系统的特点1.异步性:外围设备相对于处理机通常是异步工作的。
原因:当设备准备好与处理机交往时,要向处理机申请服务。
但处理机申请对于处理机来说,这个时间一般是随意的,两次申请时间之间可能经过很长时间,这就造成输入输出相对于处理机的异步性和时间上的任意性。
2.实时性:当外围设备与处理机交往时,由于设备的类型不同,他们的工作步调是不相同的,处理机必须按照不同设备所要求传送方式和传输速率不失时机地为设备提供服务,这就要求实时性控制。
处理机为了能够为各种不同类型的设备提供服务,必须具有相配合的工作方式,包括程序控制方式、中断方式、直接存储器方式等。
3.与设备无关性:各种外部设备必须根据其特点和要求选择一种标准接口和处理机进行连接,他们之间的差别必须由设备本身的控制器通过硬件和软件来填补。
这样,处理机本身无须了解外设的具体细节,可以采用统一的硬件和软件对其管理。
I/O系统的组织方式根据各种外围设备的不同特点处理异步性、实时性、与设备无关性的关系,就是I/O系统组织的基本内容。
自治控制:针对异步性。
实际上也就是把外围设备所要完成的功能分散开,即把设备的输入输出功能最大限度地从处理机中分离出,由专门的设备控制器通过它自身的硬件和软件去完成,从而使处理机能够摆脱繁重的输入输出任务。
计算机组成原理4第四章存储器PPT课件精选全文
4.2
11
4.2
请问: 主机存储容量为4GB,按字节寻址,其地址线 位数应为多少位?数据线位数多少位? 按字寻址(16位为一个字),则地址线和数据线 各是多少根呢?
12
数据在主存中的存放
设存储字长为64位(8个字节),即一个存 取周期最多能够从主存读或写64位数据。
读写的数据有4种不同长度:
字节 半字 单字 双字
34
3. 动态 RAM 和静态 RAM 的比较
主存
DRAM
SRAM
存储原理
电容
触发器
集成度
高
低
芯片引脚
少
多
功耗
小
大
价格
低
高
速度
慢
快
刷新
有
无
4.2
缓存
35
内容回顾: 半导体存储芯片的基本结构 4.2
…… ……
地
译
存
读
数
址
码
储
写
据
线
驱
矩
电
线
动
阵
路
片选线
读/写控制线
地址线(单向) 数据线(双向) 芯片容量
D0
…… D 7
22
(2) 重合法(1K*1位重合法存储器芯片)
0 A4
0,00
…
0,31
0 A3
X 地
X0
32×32
… …
0址
矩阵
A2
译
0码
31,0
…
31,31
A1
器 X 31
0 A0
Y0 Y 地址译码器 Y31 A 9 0A 8 0A 7 0A 6 0A 5 0
计算机系统结构(ch-4)解析
34
4.3.1资源相关
❖资源相关:多条指令进入流水线后在同一个Δt内争用
同一功能部件发生的相关。
•用I1
I2表示
在第4个周期, 指令1、4争用
访存部件
35
4.3.1资源相关
❖解决存储器资源相关的方法主要有以下五种: • 从时间上推后下一条指令的访存操作。 • 让操作数和指令分别存放于两个独立编址且可同时访问的主 存储器中。称哈弗结构。 • 仍然维持指令和操作数混存,但采用多模块交叉主存结构。 • 在CPU内增设I-Cache,乘主存空闲时预取指令。 • 在CPU内增设I-Cache和D-Cache。
n-1 n
S1 1 2 3
n-1 n
建立
满载
排空
时间
19
4.2.3 流水线的分类
1、按连接方式分类 ❖线性流水线(Linear Pipelining)
•每个流水段都流过一次,且仅流过一次 •线性流水线能够用流水线连接图唯一表示
❖非线性流水线(Nonlinear Pipelining)
•在流水线的某些流水段之间有反馈回路或前馈回路 •必须用流水线连接图、预约表等共同表示
•时间开销:流水线的执行时间加长 •硬件开销:流水线中需要增加的主要硬件之一 ❖各流水段的时间应尽量相等 •流水线处理机的基本时钟周期等于时间最长的流水段时间长度 ❖流水线工作可以分为建立、满载和排空3个阶段,如图所示。
18
流水线的建立、满载和排空
空间
S4
123
n-1 n
S3
123
n-1 n
S2
123
33
4.3 相关问题及解决方法
计算机系统结构 第四章(习题解答)讲解
1. 假设一条指令的执行过程分为“取指令”、“分析”和“执行”三段,每一段的时间分别是△t 、2△t 和3△t 。
在下列各种情况下,分别写出连续执行n 条指令所需要的时间表达式。
⑴ 顺序执行方式。
⑵ 仅“取指令”和“执行”重叠。
⑶ “取指令”、“分析”和“执行”重叠。
答:⑴ 顺序执行方式12 ......1 2 12T =∑=++n1i i i i )t t t (执行分析取址=n(△t +2△t +3△t)=6n △t⑵ 仅“取指令”和“执行”重叠12 ......1 212T =6△t +∑=+1-n 1i i i )t t (执行分析=6△t +(n-1)(2△t +3△t)=(5n +1)△t⑶ “取指令”、“分析”和“执行”重叠12 34 ......1 2 3 41234△t2△t3△t△t2△t3△t△t2△t3△tT =6△t +∑=1-n 1i i )t (执行=6△t +(n-1)(3△t)=(3n +3)△t2. 一条线性流水线有4个功能段组成,每个功能段的延迟时间都相等,都为△t 。
开始5个任务,每间隔一个△t 向流水线输入一个任务,然后停顿2个△t ,如此重复。
求流水线的实际吞吐率、加速比和效率。
答:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15...1 2 3 4 5 6 7 8 9 10 11 12 13 14 151 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 56 7 8 9 10 11 12 13 14 151 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23我们可以看出,在(7n+1)Δt 的时间内,可以输出5n 个结果,如果指令的序列足够长(n →∞),并且指令间不存在相关,那么,吞吐率可以认为满足:)n (t75t )n /17(5t )1n 7(n 5TP ∞→∆=∆+=∆+=加速比为:)n (720n /17201n 7n 20t )1n 7(t 4n 5S ∞→=+=+=∆+∆⨯=从上面的时空图很容易看出,效率为:)n (75n /1751n 7n 5t )1n 7(4t 4n 5E ∞→=+=+=∆+⨯∆⨯=3. 用一条5个功能段的浮点加法器流水线计算∑==101i i A F 。
计算机系统结构第4章
第4章 存贮体系 图4-1主存-辅存存储层次
第4章 存贮体系
虚拟存储器是从主存容量满足不了要求提出来的。在主 存和辅存之间,增设辅助的软、硬件设备,让它们构成一个 整体,所以也称为主存-辅存存储层次。如图4-1所示。从 CPU看,速度是接近于主存的,容量是辅存的,每位价格是 接近于辅存的。从CPU看,速度是接近于主存的,容量是辅 存的,每位价格是接近于辅存的。从速度上看,主存的访问 时间约为磁盘的访问时间的10-5,即快10万倍。从价格上看, 主存的每位价格约为磁盘的每位价格的103,即贵1000倍。如 果存储层次能以接近辅存的每位价格去构成等于辅存容量的 快速主存,就会大大提高存储器系统的性能价格比。
序(多用户)环境,而Cache存储器既可以是单用户环境也可以 是多用户环境。
第4章 存贮体系
4.1.3
为简单起见,以图4-4的二级体系(M1,M2)为例来分析。 设ci为Mi的每位价格,SMi为Mi的以位计算的存储容量,TAi为 CPU访问到Mi中的信息所需的时间。为评价存储层次性能, 引入存储层次的每位价格c、命中率H和等效访问时间TA。
第4章 存贮体系
为了进行段式管理,每道程序在系统中都有一个段(映 像)表来存放该道程序各段装入主存的状况信息。参看图4-6, 段表中的每一项(对应表中的每一行)描述该道程序一个段的 基本状况,由若干个字段提供。段名字段用于存放段的名称, 段名一般是有其逻辑意义的,也可以转换成用段号指明。由 于段号从0开始顺序编号,正好与段表中的行号对应,如2段 必是段表中的第3行,这样,段表中就可不设段号(名)字段。 装入位字段用来指示该段是否已经调入主存,“1”表示已装 入,“0”表示未装入。在程序的执行过程中,各段的装入位 随该段是否活跃而动态变化。
计算机体系结构第四章练习题参考解答
计算机体系结构第四章练习题参考解答第四章4.52 浮点数系统使⽤的阶码基值r e =2,阶值位数q=2,尾数基值r m =10,尾数位数p ′=1,即按照使⽤的⼆进制位数来说,等价于p=4。
计算在⾮负阶、正尾数、规格化情况下的最⼩尾数值、最⼤尾数值、最⼤阶值、可表⽰的最⼩值和最⼤值及可表⽰数的个数。
解: 最⼩尾数值:r m -1 = 10-1 = 0.1最⼤尾数值:1- r m -p ′ =1-10-1 = 0.9 最⼤阶值:2q -1=3可表⽰数的最⼩值:1×r m -1 = 10-1 = 0.1 可表⽰数的最⼤值:r m 2q-1×(1- r m -p ′)=103(1-10-1)= 900可表⽰数的个数:2q ×r m p ′(r m -1)/r m = 22×101(10-1)/10 = 364.53 ⼀台机器要求浮点数的字长的精度不低于10-7.2,表数的范围正数不⼩于1038,且正负对称。
尾数⽤原码、纯⼩数表⽰,阶码⽤移码、整数表⽰。
设计这种浮点数的格式。
解依题意,取表数范围N =1038,表数精度δ=10-7.2。
由式(4-4)得:37log(log10log 21)log 2q +> = 6.99,上取整,得到阶码字长q=7。
由式(4-5)得:16log1053.2log 2p -->=,上取整,得到尾数字长p=24。
从⽽加上⼀个尾数符号位和⼀个阶码符号位,浮点数的总字长为:p+q+2=24+7+2=33。
实际浮点数总字长应为8的倍数,故取浮点数总字长为40位。
多出的7位可以加到尾数字长p 中⽤于提⾼浮点数的表数精度,也可以加到阶码字长q 中来扩⼤浮点数的表数范围。
暂且让p 增加6位,q 增加1位,即p=30,q=8。
如图4-8所⽰是设计出来的浮点数格式。
图4-8 例4.2浮点数的设计格式4.58 ⽤于⽂字处理的某专⽤机,每个⽂字符⽤4位⼗进制数字(0~9)编码表⽰,空格⽤︼表⽰。
计算机体系结构第2版课件第4章 第5讲
FPS-164是较新的机器,它的每个指令字含有 对应于10个不同功能单元的10条指令
VLIW基本机构
VLIW采用多个独立的功能单元,多个不同 的操作封装在一条长指令字中,每个功能单 元在VLIW指令中都有一定的对应区域
在超标量流水线上对上述代码进行调度,以 获取更多地指令机并行度
Loop:
整数指令
LD LD LD LD LD SD SD SD SD SUBI BNEZ SD
F0(R1) F6,-8(R1) F10,-16(R1) F14,-24(R1) F18,-32(R1) 0(R1),F4 -8(R1),F8 -16(R1),F12 -24(R1),F16 R1,R1,#40 R1,Loop -32(R1),F20
Mem Ref2 L.D F6,-8(R1)
FP1
ADD.D F4,F0,F2 ADD.D F12,F10,F2
FP2 ADD.D F8,F6,F2
S.D F4,24(R1) S.D F12,8(R1)
S.D F8,16(R1)
Int/branch
DADDUI R1,R1,#-24 BNE R1,R2,Loop
一般每个功能单元占用16-24位 例如:2个整数、2个浮点、2个访存、1个分支
,则该指令的长度为112-168位
VLIW硬件只是简单地将指令字中对应的部 分送给各个功能单元,功能单元在哪一个时 钟周期执行什么操作由编译器来确定
如果某个功能单元在某个周期没有任务,则执行 NOP指令
VLIW例子
Int/branch DADDUI R1,R1,#-80 BNE R1,R2,Loop
计算机系统结构第4章部分习题参考答案
第4章部分习题参考答案4.1 解释下列术语⏹存储器最大频宽-存储器连续工作时所能达到的频宽。
⏹存储器实际频宽-存储器实际工作时达到的频宽,它一般小于存储器最大频宽。
⏹模m交叉编址-交叉访问存储器由多个存储体(m个存储模块)组成一个大容量的存储器,对多个存储体的存储单元采用交叉编址方式,组成交叉访问存储器。
通常有两种交叉编址方式,一是地址的高位交叉编址,一般使用较少转型是低位交叉编址,即由m个存储体组成的低位交叉存储器的存储单元地址的低log2m位称为体号k,高log2n位称为体内地址j,存储单元地址A的计算公式为:A=m×j×k。
若已知地址A,可计算出对应的体号k=A mod m,体内j=[A/m]地址。
高位交叉编址主要用于扩展常规主存的容量,而低位交叉编址主要用于提高常规主存的访问速度。
⏹程序局部性-程序中对于存储空间90%的访问局限于存储空间的10%的区域中,而另外10的访问则分布在存储空间的其余90%的区域中。
这就是通常说的程序局部性原理。
访存的局部性规律包括两个方面,一是时间局部性:如果一个存储项被访问,则可能该项会很快被再次访问;二是空间局部性:如果一个存储项被访问,则该项及其邻近的项也可能很快被访问。
⏹虚拟存储器-即“主存-辅存”存储层次,主要目的是为了弥补主存容量的不足,可以为程序员提供大量的程序空间。
其部分功能采用硬件,其余则由操作系统的存储管理软件来实现,对于系统程序员不透明。
⏹段式管理-把主存按段分配的存储管理方式。
它是一促模块化的存储管理方式,每个用户程序模块可分到一个段,该程序模块博只能访问分配给该模块的段所对应的主存空间。
段长可以任意设定,并可放大和缩小。
系统中通过一个段表指明保段在主存中的位置。
段表中包括段名(段号)、段起点、装入位和段长等。
段表本身也是一个段。
段一般是程序模块划分的。
⏹页式管理-把虚拟存储空间和实际存储空间等分成固定大小的页,各虚拟页可装入主存中的不同实际页面位置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
F4
F2
ADD1
F0
MUL1
6
5
操作总线
4
A3DD3 3
A2DD2 2 SUB D, B 1ADD1 1 ADD MUL1, C
地址
标识
保 留2 站 1 MUL A, B
标识
MUL2 MUL1
浮点加法器
浮点乘法器
公共数据总线(CDB)
从指令部件来
MUL FO,F2,F4
指 令 队 列 d/store 操作
• 对于每一个操作数来说,V或Q字段只有一个有效。
– A:仅load和store缓冲器有该字段。开始是存放指 令中的立即数字段,地址计算后存放有效地址。
– Qi:寄存器状态表。
• 每个寄存器在该表中有对应的一项,用于存放将 把结果写入该寄存器的保留站的站号。
• 为0表示当前没有正在执行的指令要写入该寄存 器,也即该寄存器中的内容就绪。
3. Tomasulo算法举例
每个保留站有以下6个字段:(P121 图4.2)
– Busy:为“yes”表示本保留站或缓冲单元“忙”。 – Op:要对源操作数进行的操作。
– Vj,Vk:源操作数的值。
– Qj,Qk:将产生源操作数的保留站号。
• 等于0表示操作数已经就绪且在Vj或Vk中,或者 不需要操作数。
• 相关包括:名相关,数据相关,控制相关。
2. 冲突( HAZARDS,也称为冒险)
• 冲突是指由于相关的存在,使得指令流中的下一条 指令不能在指定的时钟周期执行。
• 具体一次相关是否会导致实际冲突的发生以及该冲 突会带来多长的停顿,则是流水线的属性。
• 流水线冲突包括:结构冲突,数据冲突,控制冲突。
在前面的基本流水线中:
ID
检测结构冲突 检测数据冲突
• 一旦一条指令受阻,其后的指令都将停顿。 • 解决办法:
允许乱序执行
4.2 指令的动态调度
为了允许乱序执行,我们将5段流水线的译码 阶段再分为两个阶段:
– 流出(Issue,IS):指令译码,检查是 否存在结构冲突。 (in-order issue)
4.2 指令的动态调度
对于下述指令序列,给出当第一条指令完成 并写入结果时,Tomasulo算法所用的各信息 表中的内容。
L.D F6,34(R2) L.D F2,45(R3) MUL.D F0,F2,F4 SUB.D F8,F2,F6 DIV.D F10,F0,F6 ADD.D F6,F8,F2
– 在一条指令流出到保留站的时候,如果该 指令的源操作数已经在寄存器中就绪,则 将之取到该保留站中。
– 如果操作数还没有计算出来,则在该保留 站中记录将产生这个操作数的保留站的标 识。
浮点加法器有3个保留站:ADD1,ADD2, ADD3
浮点乘法器有两个保留站:MULT1,MULT2 每个保留站都有一个标识字段,唯一地标
存在反相关F6
SUB.D ADD.D DIV.D
F10, F4, F6
FS6,, F8, F14
FT1,0, F1, F3
存在数据相关F4 存在输出相关F10
消除名相关:引入两个临时寄存器S和T,分别 将第一个F10换成S,将后一个F6换成T。
基于Tomasulo算法的MIPS处理器浮点部件的 基本结构
4.2 指令的动态调度
3. 冲突的解决
1)结构冲突:停顿(流水线气泡)
2)数据冲突:
• 定向传送技术
• 定向传送与停顿相结合
• 指令调度(依靠编译器): 前提:在乱序流动的流水线中。 不足:可能会产生新的WAR或WAW冲突。
3)控制冲突: • 预测分支失败
静态调度
• 预测分支成功 都是通过编译器来实现
究的重点之一 最基本的开发循环级并行的技术
– 循环展开(loop unrolling)技术 – 采用向量指令和向量数据表示
2. 相关与流水线冲突
静态指令调度 动态指令调度
4.1 指令级并行的概念
3. 对于正确地执行程序来说,必须保持的最关键 的两个属性是:数据流和异常行为。
数据流:指数据值从其产生者指令到其消 费者指令的实际流动。
站 1 MUL A, B
MUL1
标识
浮点加法器
浮点乘法器
公共数据总线(CDB)
从指令部件来
MUL FO,F2,F4
d/store 操作
指
浮点寄存器 FP
令
D
队 列
SUB F6,F8,F4
C B
A
浮点操作
地址部件 load 缓冲器
操作数总线
Qi
F8
F6
ADD2
ADD F2,F0,F6 SUB F6,F8,F4
+ 停顿控制冲突
理想CPI是衡量流水线最高性能的一个指标。 通过减少右边各项,就能减小总的CPI,从 而提高IPC。
IPC:Instructions Per Cycle (每个时钟周期完成的指令条数)
4.1 指令级并行的概念
1. 循环级并行:
使一个循环中的不同循环体并行执行。 开发循环体中存在的并行性是指令级并行研
F0
地址部件 load 缓冲器
操作数总线
6
5
操作总线
4
A3DD3 3 A2DD2 2
1
ADD1Biblioteka 1地址标识
保 留2 站1
标识
MUL FO,F2,F4
Qi
ADD F2,F0,F6
SUB F6,F8,F4
MUL2 MUL1
浮点加法器
浮点乘法器
公共数据总线(CDB)
从指令部件来
MUL FO,F2,F4
指 令
保持异常行为是指:无论怎么改变指令的 执行顺序,都不能改变程序中异常的发生 情况。
即原来程序中是怎么发生的,改变执行 顺序后还是怎么发生。
弱化为:指令执行顺序的改变不能导致 程序中发生新的异常。
4.2 指令的动态调度
内容回顾: 1. 相关
• 相关是指两条指令之间存在某种依赖关系,是程序 固有的一种属性。
F4, F0, F2 F10, F4, F6
F6, F8, F14
存在数据相关 存在输出相关
WAR冲突
DIV.D F10, F1, F3
WAW冲突
SUB.D F10, F4, F6
Tomasulo算法可以通过使用寄存器重命名来消除。
4.2 指令的动态调度
二、Tomasulo算法
1.基本思想 核心思想:
第四章 指令级并行
4.1 指令级并行的概念 4.2 指令的动态调度 4.3 动态分支预测技术 4.4 多指令流出技术 4.5 循环展开和指令调度
4.1 指令级并行的概念
几乎所有的处理机都利用流水线来使指令重 叠并行执行,以达到提高性能的目的。这种 指令之间存在的潜在并行性称为指令级并行。
(ILP:Instruction-Level Parallelism)
标识
MUL2 MUL1
浮点加法器
浮点乘法器
公共数据总线(CDB)
4.2 指令的动态调度
Tomasulo算法具有以下两个特点: 1)冲突检测和指令执行控制是分布的。
每个功能部件的保留站中的信息决定了 什么时候指令可以在该功能部件开始执 行。
2)计算结果通过CDB直接从产生它的保留站
传送到所有需要它的功能部件,而不用经 过寄存器。
从指令部件来
指 令 队 列 load/store 操作
store 缓冲器 数据
地址部件
load 缓冲器
6
5
4
3 2 1
地址
3 2 1
标识
浮点寄存器 FP
浮点操作 操作数总线 操作总线 保 留2 站1 标识
存储部件
浮点加法器
浮点乘法器
公共数据总线(CDB)
1)保留站(reservation station) 每个保留站中保存一条已经流出并等待到本 功能部件执行的指令(相关信息)。 包括:操作码、操作数以及用于检测和解决 冲突的信息。
需要更多地依赖于硬件。 – IBM 360体系结构只有4个双精度浮点寄存
器,限制了编译器调度的有效性。 – 360/91的访存时间和浮点计算时间都很长。
(也是Tomasulo算法要解决的问题)
4.2 指令的动态调度
寄存器换名可以消除WAR冲突和WAW冲突。
考虑之前的代码: DIV.D F4, F0, F2
– 读操作数(Read Operands,RO):等待 数据冲突消失,然后读操作数。
(out of order execution)
IS
RO
检测结构冲突 检测数据冲突
4.2 指令的动态调度
有的代码在采用乱序执行后可能会发生WAR冲突 和WAW冲突。
例如,考虑下面的代码
存在反相关
DIV.D SUB.D ADD.D
本章研究:如何通过各种可能的技术,获得 更多的指令级并行性。
硬件+软件技术
必须要硬件技术和软件技术互相配合,才 能够最大限度地挖掘出程序中存在的指令 级并行。
4.1 指令级并行的概念
流水线处理机的实际CPI
理想流水线的CPI加上各类停顿的时钟周期 数:
CPI流水线 = CPI理想 + 停顿结构冲突 + 停顿数据冲突
– 指令流出到保留站后,其操作数寄存器号 或者换成了数据本身(如果该数据已经就 绪),或者换成了保留站的标识,不再与 寄存器有关系。
从指令部件来
指
浮点寄存器 FP
d/store 操作
令 队 SUB F6,F8,F4 列 ADD F2,F0,F6
MUL FO,F2,F4