系统结构与分析第十四章指令并行性和超标量处理器

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

按序发射,无序完成(框图)
无序发射,无序完成
解耦流水线的译码段和执行段 可以持续取指、译码直到流水线满 当一个功能单元空闲时,某条指令即可执行 因为指令已经被译码,处理器可以提前判决
无序发射,无序完成(框图)
反相关性
读-写相关性
R3:=R3 + R5; (I1) R4:=R3 + 1; (I2) R3:=R5 + 1; (I3) R7:=R3 + R4; (I4) i3 不能在 i2 开始之前完成,因为 i2 需要 R3 的
跟踪 cache
微代码 ROM




换微

名 操 调组
/
作度
分 配
队 列
器 浮 点




Pentium 4 操作
Pentium 4 的操作能总结成如下几点:
处理器以静态程序的顺序由存储器取指令。 每条指令被译成一个或多个定长的RISC指令,它们被
称为微操作(micro-op)。 处理器在超标量流水组织上执行微操作,故微操作以
因为第二条指令的完成需要第一条指令产 生的数据,这种情况称为真实数据相关性
过程相关性
转移(发生或不发生)之后的指令有对转 移的过程相关性,而且直到转移指令被执 行之前它们不能去执行
而且,如果使用变长指令,在取下一条指 令之前,指令必须被译码,以确定还需要 几个取指阶段
这就妨碍了指令同时取
资源冲突
第十四章 指令并行性和超标量处理器
14.1 概述
何谓超标量
普通指令 (算术, load/store, 条件转移) 能够同时启动 并独立执行
对 RISC & CISC 均适用 然而,几乎所有已实现的超标量都是在RISC 体系上
完成的
为什么使用超标量技术
大多数应用中,大多操作是对标量进行的 因此,超标量方法代表了高性能通用处理器的趋势
是指处理器获取指令级并行性好处的能力的大小 受制于流水线的数目
指令发射策略
指令发射是指启动指令去处理器功能单元执行的 过程
指令发射策略表示启动指令执行时所采用的协议 三种类型的排序:
取指令的顺序 指令执行的顺序 指令改变寄存器和存储器位置内容的顺序
按序发射,按序完成
按照能实现顺序执行的那个顺序发射指令 (按序发射),并以同样的顺序写结果 (按序完成)
超标量方法依赖于并行执行多条指令的能力 硬件技术与编译器优化技术的结合能够达到最
大程度的指令级并行性 并行性受到以下因素的限制:
真实数据相关性 过程相关性 资源冲突 输出相关性 反相关性
真实数据相关性
考虑如下两条指令:
ADD r1, r2 MOVE r3, r1
第二条指令可以并行完成取指、译码,但 直到第一条指令执行之后才能执行
作为源操作数访问那个寄存器值的后续指令必须通过 一个重命名过程:这些指令中的寄存器引用部分必须 修改成对含有所需值寄存器的引用。
于是,若准备使用不同值,不同指令中的同样原始寄 存器引用可能引用到不同的实际寄存器。
寄存器重命名举例
R3b:=R3a + R5a (I1) R4b:=R3b + 1 (I2) R3c:=R5a + 1 (I3) R7b:=R3c + R4b (I4) 不带下标的寄存器引用指的是指令中找到的逻
辑寄存器 带下标的寄存器饮用指向被分配来保持新值的
硬件寄存器
机器并行性
在超标量处理器中增强性能的三种硬件技术:
资源复制 无序发射 重命名
机器并行性的重要结论:
没有寄存器重命名的话,添加功能单元可能没有价值 指令窗口需要足够大 (大于8)
转移预测
任何高性能的流水式机器必须解决转移问题。 RISC 采用延迟转移策略 超标量机器又转回到 RISC 以前的技术 ——
效率不是很高
按序发射,按序完成(框图)
按序发射,无序完成
产生了输出相关性
R3:= R3 + R5; (I1) R4:= R3 + 1; (I2) R3:= R5 + 1; (I3) I2 依靠 I1 的计算结果 – 数据相关性 如果 I3 在 I1 之前完成, I1 的计算结果就会出错 –
输出相关性
浮点单元 64位
转移处理单元
Power PC 601
流水线 结构
PowerPC 601 流水线
转移指令

派遣、译码 执行、预测
整数指令

派遣、 译码
执行
写回
Load/Store 指令

派遣、 地址
译码
生成
写回
浮点指令

派遣 译码 执行1 执行2 写回
无序(或乱序)方式来执行。 处理器以原程序流的顺序将每个微操作的执行结果托
交到处理器的寄存器组。
CISC 的外壳,RISC 的内核 RISC 内核的流水线至少20个段 :
某些微操作要求多个执行段,导致流水线更长
Pentium 4 流水
TC Next lP = trace cache next instruction pointer (跟踪cache下一指令指针) TC Fetch = tmcecachefetch(跟踪cache取) RF = register file(寄存器文件,或寄存器组) BrCK = branch check(转移检查) MMX = multi-media extension(多媒体扩展)
PowerPC 结构的最初实现是601。 PowerPC的后来模式更进一步采用了超标量概念。 本节集中于601,它提供了基于RISC超标量设计
的优秀例子。
PowerPC 601 框图
128位 256位 统一的
L2/总线
指令/数据
接口
cache(32KB)
256位 取指和派遣
32位
整数单元 32位
数据,而 i3 改变了 R3 的值
寄存器重命名
输出相关性和反相关性的出现是因为寄存器的 内容可能不再反映被程序流指定的值顺序
寄存器重命名:
本质上,寄存器由处理器硬件动态分配,并且它们与 各时间点指令所需值相关。
当一个新寄存器值产生时(即,具有目标操作数为寄存 器的指令执行时),一个新寄存器分配给那个值。
转移预测。
某些机器,像PowerPC 601,采用简单的静态转移预测 技术。
更为复杂的机器,像 PowerPC 620 和 Pentium 4 ,采 用基于转移历史分析的动态转移预测技术。
超标量执行
静态程序
指令取和 转移预测
指令派遣
指令发射
指令执行 指令重排 序和托收
执行窗口
超标量实现
同时取多条指令的取指令策略,经常要有预测条件转 移指令结果和超前取的功能,这要求使用多个取和译 码流水段及转移预测逻辑。
两个或更多指令在同一时间竞争同一资源
e.g. 两个算术指令
可以设置两套资源
e.g. 有两个运算单元

无相关性

数据相关性

i0使用i0计算的数据


过程相关性
资源冲突 i0和i1使用同一单元
14.2 设Байду номын сангаас考虑
指令级并行性
顺序中的指令是独立的 可以重叠执行 受制于数据和过程相关性
机器并行性
Pentium 4 流水线操作 (1)
(a) 微操作生成
(b) 跟踪cache下一指令指针
Pentium 4 流水线操作 (2)
(c) 跟踪cache取
(d) 驱动
Pentium 4 流水线操作 (3)
(e) 分配:寄存器换名
(f) 微操作排队
Pentium 4 流水线操作 (4)
(g) 微操作调度
通常的超标量组织
整数寄存器
浮点寄存器
流水线的 功能单元
存储器
超级流水线
超级流水线利用了如下事实:
多数流水阶段所完成的任务只需不到半个时钟周 期的时间
于是,双倍的内部时钟速率允许在一个外部时钟 周期内完成两个任务
超标量允许指令并行执行



vs
连 续






线
基点机器 超级流水线
超标量
限制
(h) 派遣
Pentium 4 流水线操作 (5)
(i) 寄存器组
(j)执行:控制
Pentium 4 流水线操作 (6)
(k) 转移检查
(l) 转移检查结果
14.4 PowerPC
PowerPC 体系结构是 IBM 801、RTPC 和 RS/ 6000 的直系后代。
所有这些都是 RISC 机器,但此系列中第一个示 超标量特征的是 RS/6000。
使用两个分立的整数执行单元
Pentium Pro – 引入了全面的超标量设计理念 后续的型号具有更精炼、功能更强的超标量设

Pentium 4 处理器框图
L1 D cache D-TLB

系 统 界 面
取 / 译 码
AGU=地址生成器 BTB=转换目标缓冲器 TLB=转换后援缓冲器
L2 cache 和控制
确定有关寄存器值真相关性的逻辑,以及执行期间这 些值与需要它们的位置之间的相互联络机制。
并行启动或发射多条指令的机制。 多条指令并行执行所需的资源,这包括多个流水式的
功能单元以及为多个存储器访问同时提供服务的存储 器层次结构。 以正确顺序托收进程状态的机制。
14.3 Pentium 4
80486 – CISC,没有超标量部件 Pentium – 具有了一定的超标量能力
相关文档
最新文档