5-超标量超流水线

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

I5 IF1 I6 IF2
指令
IF:取指令,ID:指令译码, 数存数,FA:浮点加减法运算, IF:取指令,ID:指令译码,LS 取数存数,FA:浮点加减法运算, MD:乘除法运算,AL: WR: MD:乘除法运算,AL:定点算术逻辑运算 WR:写回运算结果
19/46
5.5 超标量处理机
2. 顺序发射乱序完成 总的执行时间为9个时钟周期, 节省了一个时钟周期。少了5个空闲时钟周期。
22/46
5.5 超标量处理机
操作部件不采用流水线: 操作部件不采用流水线: 做完4条指令总共用了11个周期, 有5个空闲周期。
空闲周期
7 8 9 10 11 时钟周期
双流水线超标量处理机, 双流水线超标量处理机,操作部件不采用流水线的时空图
1 2 3 4 5 6 流水线1 流水线 I1 IF1 ID1 流水线2 流水线 I2 IF2 ID2 流水线1 流水线 流水线2 流水线 I3 IF1 ID1 I4 IF2 ID2
10/46
5.5 超标量处理机
2.多发射处理机 每个周期同时取多条指令、同时译码多条指令,同时 执行多条指令,同时写回多个运算结果。 多个取指令部件,多个指令译码部件和多个写结果部 件。 设置多个指令执行部件,有些指令执行部件采用流水 线结构。 目标是每个时钟周期平均执行多条指令,ILP的期望值 大于1。
WR2
IF3
ID3
LS 取数存数部件
先行指令窗口
FA:浮点加减法运算,MD:乘除法运算,AL:定点算术逻辑运算, FA:浮点加减法运算,MD:乘除法运算,AL:定点算术逻辑运算,LS 取数存数
16/46
5.5 超标量处理机
5.5.3 多流水线调度
(P326) P326)
在有多条流水线同时工作时,指令的发射顺序和完成顺序对 提高超标量处理机的性能非常重要。 顺序发射(in-order issue)与乱序发射 与乱序发射(out-order issue) 顺序发射 与乱序发射 顺序发射:指令发射顺序是按照程序中指令排列顺序进行的。 顺序完成(in-order completion)与乱序完成 与乱序完成(out-order completion) 顺序完成 与乱序完成 顺序完成:指令完成顺序是按照程序中指令排列顺序进行的 多流水线的调度主要有三种方法: 顺序发射顺序完成 顺序发射乱序完成 乱序发射乱序完成
17/46
5.5 超标量处理机
以如下6条指令组成的程序为例,说明这三种调度方法 I1:LOAD R1, A ;R1←(A) I2:FADD R2, R1 ;R2←(R2)+(R1) I3:FMUL R3, R4 ;R3←(R3)×(R4) I4:FADD R4, R5 ;R4←(R4)+(R5) I5:DEC R6 ;R6←(R6)-1 I6:FMUL R6, R7 ;R6←(R6)+(R7) 6条指令中有4个数据相关,包括2个写读相关,1个读写相关 和1个写写相关。
parallelism
7/46
5.5 超标量处理机
典型超标量处理机的结构: 典型超标量处理机的结构:
整数 部件 整数 部件 位操 作 浮点 加 乘法 部件 除法 部件 图形 部件 图形 部件
内部总线
读数/ 读数/存数 部件
通用寄 存器堆
扩展 寄存器堆
目标 指令
指令分配/ 指令分配/ 转移部件
Cache(8KB 数据 Cache(8KB)
第五章 标量处理机
1/46
第五章 标量处理机
教学目的: 教学目的: 1、掌握超标量处理机的工作原理; 2、掌握超流水线处理机的工作原理; 3、掌握超标量超流水线处理机的原理与性能分析。
2/46
第五章 标量处理机
教学重点: 教学重点: 1、超标量处理机的工作原理; 2、超流水线处理机的工作原理; 3、超标量超流水线处理机工作原理; 4、各种处理机性能分析。
取指令 指令译码 执行指令 写回结果
FA1 FA2 FA3 浮点加法部件
来自指令 IF1 Cache
ID1
MD1 MD2 MD3 乘除法部件
WR1
通用寄存器 后行写数栈 通用寄存器 后行写数栈
来自指令 IF2 Cache
ID2
AL 定点算术逻辑部件 LS 取数存数部件
WR2
14/46
5.5 超标量处理机
Cache(8KB 指令 Cache(8KB)
系统总线 32 位地址总线 64 位数据总线
超标量处理机 MC88110 的结构
8/46
5.5 超标量处理机
Motorola公司的MC88110结构: 有10个操作部件 两个寄存器堆 整数部件通用寄存器堆,32个32位寄存器 浮点部件扩展寄存器堆,32个80位寄存器 缓冲深度为4的先行读数栈 缓冲深度为3的后行写数栈 两个独立的高速Cache中,各为8KB,采用两路组相联方式 转移目标指令Cache,用于存放另一条分支上的指令
水线 量 机, 双流 超标 处理 , 部件 流水 的时 机 操作 采用 线 空图 1 2 3 4 5 6 7 8 流水线1 I1 IF1 ID1 FADD1 FADD2 FADD3 WR1 流水线 时钟周期
9/46
5.5 超标量处理机
5.5.2 单发射与多发射 1.单发射处理机:
(P323) P323)
每个周期只取一条指令、只译码一条指令,只执行 一条指令,只写回一个运算结果。 取指令部件和指令译码部件各设置一套; 只设置一个多功能操作部件或设置多个独立的操作 部件; 操作部件中可以采用流水线结构,也可以不采用流 水线结构。 目标是每个时钟周期平均执行一条指令,ILP的期望 值为1。
3. 超标量处理机 定义:一个时钟周期内能够同时发射多条指令的处理机。 定义:一个时钟周期内能够同时发射多条指令的处理机。 有两条或两条以上能同时工作的指令流水线 先行指令窗口:能够从指令Cache中预取多条指令,能够 对窗口内的指令进行数据相关性分析和功能部件冲突检测。 操作部件的个数一般多于每个周期发射的指令条数。通常 为4 个至16个操作部件。 超标量处理机的指令级并行度:1<ILP<m
FADD FMUL
WR1 WR2 FADD WR1 FMUL
WR2
指令 IF:取指令,ID:指令译码,FADD:浮点加法,FMUL:浮点乘法,WR: IF:取指令,ID:指令译码,FADD:浮点加法,FMUL:浮点乘法,WR:写回结果
23/46
5.5 超标量处理机
操作部件采用流水线: 操作部件采用流水线: 做完4条指令共用8个周期, 少用3个周期。
机器类型 机器流水线周期 同时发射指令条数 指令级并行度 ILP k 段流水线 m度 n度 (m,n)度超标量 标量处理机 超标量处理机 超流水线处理机超流水线处理机 1 个时钟周期 1条 1 m 1 m 1/n 1 1/n n 1/n m 1/n m×n
6/46
指令发射等待时间 1 个时钟周期 1
3/46
第五章 标量处理机
教学内容: 教学内容:
5.5 超标量处理机 5.6 超流水线处理机 5.7 超标量超流水线处理机
4/46
第五章 标量处理机
5.5 超标量处理机
5.5.1 基本结构 5.5.2 单发射与多发射 5.5.3 多流水线调度 5.5.4 资源冲突 5.5.5 超标量处理机性能
5/46
15/46
5.5 超标量处理机
有先行指令窗口的超标量处理机的流水线结构
取指令 指令译码 执行指令 写回结果
FA1 FA2 FA3 浮点加法部件
指令 Cache
IF1
ID1
MD1 MD2 MD3 乘除法部件
WR1
通用寄存器 后行写数栈 通用寄存器 后行写数栈
指令 Cache
IF2
ID2
AL 定点算术逻辑部件
第五章 标量处理机
三种主流处理机:(P321) 超标量处理机:superscalar processor 超流水线处理机:superpipelining processor 超标量超流水线处理机:superpipelining superscalar processor
以一台 k 段流水线的普通标量处理机为基准 超标量处理机、超流水线处理机和超标量超流水线处理机的主要性能: 超标量处理机、超流水线处理机和超标量超流水线处理机的主要性能:
WR2 WR1 FA3 WR1 MD2 MD3 WR1
指令在流水线中的发射次序 指令在流水线中的发射次序
时钟周 流水线 1 流水线 2 先行窗口 1 I1 I3 I4 2 I2 I5 3 I6
指令在流水线中的完成次序
时钟周期 流水线 1 流水线 2 4 I1 5 I5 6 I4 I3 7 I2 8 I6
18/46
5.5 超标量处理机
1. 顺序发射顺序完成 共用10个时钟周期完成 还有8个空闲的时钟周期
顺序发射顺序完成的指令流水线时空图
1 2 3 4 5 6 7 8 9 10 时钟周期
I1 IF1 I2 IF2
ID1 ID2
LS
WR1 FA1 FA2 FA2 WR2
I3 IF1 I4 IF2
ID1 MD1 MD2 MD3 WR1 ID2 FA1 FA2 FA3 WR2 ID1 ID2 AL MD1 MD2 MD3 WR1 WR2
11/46
单发射与多发射处理机时空图
单发射处理机的指令流水线时空图
I1 I2 I3 指令 1 IF 2 ID IF 3 EX ID IF 4 WR EX ID 5 WR EX WR 6 时钟周期
多发射处理机的指令流水线时空图
I1 I2 I3 I4 I5 I6 I7 I8 I9 指令 1 IF IF IF 2 ID ID ID IF IF IF 3 EX EX EX ID ID ID IF IF IF 4 WR WR WR EX EX EX ID ID ID WR WR WR EX EX EX WR WR WR 5 6 时钟周期
12/46
5.5 超标量处理机
单发射处理机的指令流水线
取指令 指令译码 执行指令 EX 写回结果
FA1 FA2 FA3 浮点加法部件
来自指令 Cache
IF
ID
MD1 MD2 MD3 乘除法部件 AL 定点算术逻辑部件 LS 取数存数部件
WR
通用寄存器 后行写数栈
13/46
5.5 超标量处理机
同时发射两条指令的多发射处理机的指令流水线
顺序发射乱序完成的流水线时空图
1 2 3 4 5 6 7 8 9 时钟周期
I1 I2
IF1 IF2 I3 I4
ID1 ID2 IF1 IF2 I5 I6
Fra Baidu bibliotek
WR1 FA1 FA2 FA2 ID1 MD1 MD2 MD3 ID2 FA1 FA2 IF1 ID1 AL WR1 IF2 ID2 MD1
LS
WR2 WR1 FA3 WR2 MD2 MD3 WR2
第五章 标量处理机
5.5.1 基本结构 普通标量流水线处理机: 一条指令流水线,一个多功能操作部件, 每个时钟周期平均执行指令的条数小于1。 多操作部件标量处理机: 一条指令流水线,多个独立的操作部件, 指令级并行度小于1。 超标量处理机典型结构: 多条并行工作的指令流水线,多个独立的操作部件, 指令级并行度(ILP)大于1。 ILP: instruction level
指令
顺序发射乱序完成的指令完成次序
时钟周期 流水线 1 流水线 2 4 I1 5 6 I5 7 I3 I2 8 I4 9 I6
20/46
5.5 超标量处理机
3. 乱序发射乱序完成 没有空闲周期,功能部件得到充分利用。 总的执行时间为8个周期,节省2个周期。
乱序发射乱序完成调度方法的流水线时空图
1 流水线 1 I1 IF1 流水线 2 I3 IF2 先行窗口 I4 IF3 I2 I5 指令 2 ID1 ID2 ID3 IF1 IF2 I6 3 LS MD1 FA1 ID1 ID2 IF1 4 WR1 MD2 FA2 FA1 AL ID1 5 MD3 FA3 FA2 WR2 MD1 6 7 8 时钟周期
21/46
5.5 超标量处理机
5.5.4 资源冲突 如果操作部件采用流水线结构 操作部件采用流水线结构,发生资源冲突的可能性很小; 操作部件采用流水线结构 如果不采用流水线结构,发生资源冲突的可能性就比较大。 下面是一个由4条指令的程序例子: I1:FADD I2:FMUL I3:FADD I4:FMUL R0, R2, R4, R6, R1 R3 R5 R7 ;R0←(R0)+(R1) ;R2←(R2)×(R3) ;R4←(R4)+(R5) ;R6←(R6)+(R7)
相关文档
最新文档