流水线与超标量

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• • 一次重叠执行的时间
• T=(3+2(N-1))t=(1+2N)t.
• 二次重叠执行的时间为 • T=(3+(N-1))t=(2+N)t.
• 指令重叠执行的效果:成倍提高CPI指标(t看作 时钟周期)
2020/8/16
14
•第2二.章1.2流水先线与行超标控量处制理机原理
现代计算机体系结构
• 引入流水线结构,目的在于消除CPU内部人为的 顺序(串行)操作瓶颈,提高速度指标。
2020/8/16
27
•第而二章对流于水线数与超据标量运处理算机 型指令,指令分析器要现代将计算它机体们系结变构 换成寄存器寄存器型(RR型)指令,即将内存单元
中的源操作数预先存到寄存器中,使指令能快速 执行。
• 指令分析器的操作逻辑:
• 1)如果源操作数为立即数寻址,数据直接放入 先行读数栈;
• 2)如果源操作数为对存贮器寻址:分析器计算
• 5)完成预处理后,指令成为RR*型指令,并被 送入先行操作栈,由运算控制器按次序执行。
2020/8/16
29
•第(二章3)流水先线与行超标读量处理数机栈
现代计算机体系结构
• 先行读数栈由一组缓冲寄存器和控制逻辑组成. 一个缓冲寄存器包括先行地址寄存器、先行读数 寄存器和标志字段三个部分.
• 地址部分和数据部分在有些体系结构中是复用的, 由标志位表明其为地址还是数据.
2020/8/16
上一张 返回 22
第二章 流水线与超标量处理机
现代计算机体系结构
• 当缓冲栈尚未满时,前置部件可以不管后置部件
的工作进展,不断地自主运行将结果注入缓冲栈
中。
• 而后置部件则每次都向栈中取数,只要栈中不空, 后置部件就不会发生等待的现象。
• 缓冲栈好象弹簧一样,可以拉紧,也可以放松, 从而达到前后两个部件能以自已最佳的速度运行, 所以缓冲栈有时也称作弹性寄存器。
发生存储器访问冲突,形成暂时瓶颈。
2020/8/16
17
•第(二章2)流水部线与件超标间量处速理机度差异
现代计算机体系结构
• 实际的CPU中,各个部件的操作速度不可能完全 一致,如果部件之间存在速度差异,则存在部件 之间的等待,也就产生了暂时瓶颈。
• 图2-3形象地表示了这种情况所造成的影响。
2020/8/16
前正执行的唯一的一条指令决定,各部件被当前 指令按顺序使用。
• 当前指令未执行完毕之前,没有任何后续指令使 用CPU中任何部件。
• 结论:任何时刻CPU中至多只有一个部件访问总
线或存储器,不会因部件争用总线而形成暂时瓶 颈。
2020/8/16
16
• 第前二章提流:水线采与用超标重量处叠理机方式执行指令时,需要将统现一代计的算机指体令系结控构 制器分解成三个控制器,即存储控制器、指令控制器
18
第二章 流水线与超标量处理机
现代计算机体系结构
第k+2条指令 第k+1条指令 第k条指令
分析
分析 执行
分析 执行
执行
图2-3 当分析和执行时间不相等时的重叠执行
2020/8/16
上一张 返回 19
•第上二章述流两水线个与超问标量题处理:机 总线争用(或存储器争现代用计算)机体、系结部构 件间的速度差异,它们有着共同的特征。
分析
取指 执行
分析
取指 执行
分析
执行
第k + 2条指令 第k + 1条指令 第k条指令
2020/8/16
(b) 一次重叠执行方式
取指
取指 分析
取指 分析 执行
分析 执行
执行
(c) 二次重叠执行方式
图2-2 指令执行的几种方式
上一张 返回 13
•第如二章果流三水线个与超阶标量段处理所机 需时间t相等,N条指令顺现代序计算执机体行系结构 的时间为 T=3Nt.
2020/8/16
23
第二章 流水线与超标量处理机
现代计算机体系结构
• 使用缓冲栈的最佳场合:前置部件与后置部件的 平均速度相当,但是在某个具体的时刻又经常出 现较大的速度差异。
• 如果缓冲栈的长度设计恰当,可以保证前后部件 的运行速度不受损失。
• 不适合的场合:前置部件与后置部件的平均速度 差异太大;在每个时刻,二者速度总是大致相等。
2020/8/16
8
第二章 流水线与超标量处理机
2.1 先行控制技术
现代计算机体系结构
2.2 流水线技术
2.3 超标量技术
2.4 超流水线技术
2.5 RISC处理机
2.6 超标量处理机Pentium Ⅱ
2020/8/16
9
第二章 流水线与超标量处理机
现代计算机体系结构
2.1 先行控制技术
2.1.1 指令的重叠执行 2.1.2 先行控制原理 2.1.3 转移及转移预测 2.1.4 数据相关
内存操作数的地址并保存到先行读数栈队尾,并 加上地址标志。
2020/8/16
28
第二章 流水线与超标量处理机
现代计算机体系结构
• 3)如果目的操作数为存储器寻址,则计算地址 并保存到后行写数栈的队尾,并置数据标志无效。
• 4)指令中原先的内存单元地址全部被替换为寄 存器地址(先行读数栈队首地址或后行写数栈队 首地址)。
• (2)不改变模块间的关联,根据加速比的计算 公式可知,这样的改进同时能够提升整个系统的 速度指标。
• 在系统的核心模块内采用流水线机制对系统速度 的提高起着重要的作用。
2020/8/16
5
第二章 流水线与超标量处理机
现代计算机体系结构
• 以CPU为例说明流水线机制的原理。
• 提高单机性能(速度)的一个重要方法是流水线, 即同一时刻中处理机内同时运行多条指令,同时 运行的多条指令处于不同的处理步骤,分别位于 不同的指令处理部件(CPU子模块)。
2020/8/16
31
• 第(二章4)流水后线与行超写标量数处理栈机
现代计算机体系结构
• 后行写数栈也是一个自主行动的部件,由一组寄存器和 控制逻辑组成。每个寄存器中有地址寄存器和数据寄存
器,且两者不能合用。
• 标志寄存器表明对应寄存器中的地址和数据是否有效.
2020/8/16
24
第二章 流水线与超标量处理机
3.先行控制原理
(1)先行指令栈
现代计算机体系结构
在存储控制器和指令分析器之间加了一个指令缓冲
栈,其中所存的是指令分析器以后要用的指令,所以 称其为先行指令栈。
2020/8/16
25
•第先二章行流指水线令与超栈标量中处理有机 一个自己专用的指令计现代数计算器机体,系结称构 为先行指令计数器PC1,它始终指向下一条将要
2020/8/16
30
•第先二章行流读水线数与超栈标量的处理操机 作逻辑:
现代计算机体系结构
• 1)先行读数栈的控制逻辑由队首至队尾循环查 找栈中地址标志
• 2)找到后按对应地址通过总线从存贮器中读取 数据,并存入先行读数栈中替换先前保存的地址, 把地址标志改为数据标志。
• 运算器直接从该栈的队首获取源操作数。
2020/8/16
上一张 返回 10
第二章 流水线与超标量处理机
现代计算机体系结构
2.1.1 指令的重叠执行
一条指令的执行过程可以粗略地分为:取指令、译 码和执行三个阶段,且这个次序不能改变,如图2-1所 示。用Ti表示执行一条指令所需的时间:
Ti = t取指令 + t分析 + t执行。
取指令 分析
• 这种体系结构也是针对串行机制提出的改进结构,与流 水线不同,理想的超标量结构同时执行的多个原子操作
处于相同的步骤,在时间上完全重叠,在空间上完全隔 离,没有复用关系。
2020/8/16
7
第二章 流水线与超标量处理机
现代计算机体系结构
• 在实际的系统设计中,流水线与超标量两种体系 结构经常结合使用,目的在于把模块的内部处理 速度推至极限,同时保持良好的性能价格比。
第二章 流水线与超标量处理机
现代计算机体系结构
第二章
流水线与超标量处理机
2020/8/16
1
• 流水线 第二章 流水线与超标量处理机
现代计算机体系结构
• 提高单个模块速度指标的一个重要方法是在模块 内部采用流水线机制。
• 流水线是什么?
• 是针对串行操作机制提出来的一种改进体系结构, 目的在于提高模块的速度指标。
2020/8/16
6
• 超标量 第二章 流水线与超标量处理机
现代计算机体系结构
• 提高模块速度指标,且不改变模块外部关联的另一种方 法为成倍增加执行原子操作所需的各种子模块,从而成 倍提高模块内部的并行操作程度、速度。
• 这种体系结构经常出现在现代的标量处理机中,是对传 统标量处理机的改进,所以常成为超标量体系结构。
现代计算机体系结构
• 同时执行的各个原子操作在同一时刻处于不同步 骤,由不同子模块处理。
• 多个原子操作的执行在时间上是交错重叠的,在 空间上是分步骤隔离的,各子模块是被原子操作 分时复用的。
2020/8/16
4
•第产二章生流流水线水与超线标量处这理机种体系结构的原因: 现代计算机体系结构
• (1)相对于串行操作机制,提高模块内部操作 的并行程度,从而提高模块的速度指标。
执行
t
Ti
图2-1 一条指令的执行过程
2020/8/16
上一张 返回 11
•第如二章果流连水线续与超执标量行处理一机 段程序,计算机对前后现代相计算邻机体指系结令构 的执行过程可以有两种不同的选择。
• 最简单的是采用顺序执行方式,即等前一条 指令执行完毕,紧接着执行下一条指令,如图22(a)所示。
• 另一种方式是让前后连续的指令在处理机内 以重叠的方式执行,图2-2的(b)和(c)分别 表示了两种不同程度的重叠。
2020/8/16
12
第二章 流水线与超标量处理机
现代计算机体系结构
取指
分析 k
执行
取指
分析 k+ 1
执行
(a) 顺序执行方式
第k + 2条指令 第k + 1条指令 第k条指令 取指
(指控)和运算控制器,分别控制存储器存取、指令分 析和指令执行三个不同的步骤。
• 三个部件完全同时独立地运行,并且保证每个部件只运 行进入本部件的指令中所规定的操作。
• 取指令时:读下一条指令; • 分析指令时:可能需要从存储器中读取源操作数; • 执行指令时:可能要求将运算结果写回存储器。
• 结论:处理机中三个独立的部件正在执行的是三条不同 的指令,它们可能同时提出对存储器读写的请求,从而
• 但是引入流水线之后,产生了一些新的瓶颈,这 些瓶颈在顺序结构中是没有的。
• 为了避免“得不偿失”,引入先行控制技术,将 这些新瓶颈的一部分缓解或消除。
2020/8/16
15
•第1二.章 实流水现线与指超标令量处理重机叠执行必须解决的问题现代计算机体系结构 • (1)存储器访问冲突
• 前提:顺序执行时,CPU中所有部件的操作都由当
先行指令栈



址 线







先行读数栈

后行写数栈
指令分析器
先行操作栈



运算控制器


运算器
2020/8/16
图2-4 采用先行控制方式的处理机框图
上一张 返回 21
第二章 流水线与超标量处理机
缓冲栈
前置部件
①②③
现代计算机体系结构 后置部件
图2-5 缓冲栈工作示意图
缓冲栈实际上是一个以先进先出(FIFO)方式工作的移 位寄存器组,图2-5表示了缓冲栈所处的地位。前置部件 的输出不直接送入后置部件,而是通过缓冲栈暂存后才 输出。
读取的指令。
• 指令分析器所使用的指令计数器称为现行指令计 数器PC,它始终指向下一条将要分析的指令。
• 先行指令栈是一个自主行动的部件,它的控制逻 辑保证缓冲栈能实现正常的先进先出工作,并控
制及时、正确地从存储器中取得指令填补栈中的 空缺。
2020/8/16
26
•第(二章2)流水指线与令超标分量处析理机器
• 总线争用:总线成为系统运转的瓶颈。
• 部件间速度差异:慢速部件成为快速部件的瓶颈。
• 解决问题的关键:使用某种技术从一定程度上减 缓或消除CPU内外的瓶颈,从而进一步提高流水 线的速度。(先行控制技术产生的原因)
2020/8/16
20
第二章 流水线与超标量处理机
2.采用先行控制技术的处理机
现代计算机体系结构
现代计算机体系结构
• 指令分析器是一个自主行动的部件,它的作用是 对取自先行指令栈的指令进行预处理,生成改造 后的指令代码,并送入先行操作栈。
• 对于程序控制类的指令,如转移指令,指今分析 器可以直接完成指令的执行(复合条件转移指令
除外),因为只有需要执行运算操作、写内存操 作的指令才需要进入先行操作栈。
2020/8/16
2
第二章 流水线与超标量处理机
• 原理:
现代计算机体系结构
• 把模块的原子操作分为多个步骤(阶段),每个 步骤分别由一个子模块来完成。
• 各个子模块同时运行,从而使多个原子操作在时 间上形成交错重叠,提高模块的速度指标。
2020/8/16
3
• 本质: 第二章 流水线与超标量处理机
相关文档
最新文档