第11章_指令级并行技术

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

EX3 WB EX ID IF M EX ID X
M EX IF
WB M WB ID X IF
指令次序重组
采用指令次序重组和延迟转移技术, 采用指令次序重组和延迟转移技术,将 上述程序修改如下: 上述程序修改如下:
memory[r1+0]= Loop:load f0,0(r1);f0 memory[r1+0]=x[i] r2subicc r2,r2,1;r2 r2-1, 循环计数值减一 f0+f1, fadd f0,f0,f1;f0 f0+f1,f1=s 地址增量, addi r1,r1,4;r1 r1+4,地址增量,指向下一数据 loop;计数值不为 则转至loop继续。 计数值不为0 loop继续 bnez loop;计数值不为0则转至loop继续。 f0,-4(r1);memory[r1f0= store f0,-4(r1);memory[r1-4] f0=x[i]+s
超标量处理机
超标量处理机
通常把一个时钟周期内能够同时发射多条指令的处理机称为超 标量处理机。 标量处理机。 为了能够在一个时钟周期内同时发射多条指令, 为了能够在一个时钟周期内同时发射多条指令,超标量处理机 必须有两条或者两条以上能够同时工作的指令流水线。 必须有两条或者两条以上能够同时工作的指令流水线。 高性能超标量处理机一般还有一个先行指令窗口,它能够从指 高性能超标量处理机一般还有一个先行指令窗口, 令Cache中预取多条指令,而且能够对这些指令进行数据相关 Cache中预取多条指令, 中预取多条指令 性分析和功能部件冲突检测。 性分析和功能部件冲突检测。 超标量处理机开发空间并行性, 超标量处理机开发空间并行性,在每个时钟周期可以平均执行 完成多条指令。 完成多条指令。如果一台超标量处理机每个时钟周期同时发射 条指令,则它的指令级并行度ILP的期望值就为m ILP的期望值就为 m条指令,则它的指令级并行度ILP的期望值就为m。但由于资 源冲突、数据相关、控制相关等原因,实际的ILP不可能达到m ILP不可能达到 源冲突、数据相关、控制相关等原因,实际的ILP不可能达到m, 通常是1 ILP< 通常是1<ILP<m。
指令次序重组
引例: 为浮点向量, 为浮点标量,下列程序段把x 引例:x为浮点向量,s为浮点标量,下列程序段把x 的每个每个元素都加上s 的每个每个元素都加上s。 for(i=0;i<1000;i++) x[i]=x[i]+s; 可用如下的汇编程序实现上述功能: 可用如下的汇编程序实现上述功能: memory[r1+0]= Loop:load f0,0(r1);f0 memory[r1+0]=x[i] f0+f1, fadd f0,f0,f1;f0 f0+f1,f1=s f0= store f0,0(r1);memory[r1+0] f0=x[i]+s 地址增量, addi r1,r1,4;r1 r1+4,地址增量,指向下一数据 r2subicc r2,r2,1;r2 r2-1, 循环计数值减一 loop;计数值不为 则转至loop继续。 计数值不为0ቤተ መጻሕፍቲ ባይዱloop继续 bnez loop;计数值不为0则转至loop继续。 问题:r1和r2的初始值应该设为多少 的初始值应该设为多少? 问题:r1和r2的初始值应该设为多少?
( a) 基准标量处理机时空图
( b) 超标量处理机时空图
超流水线处理机
超流水线处理机
一般把在一个时钟周期内能够分时发射多条指令的处理机称为 超流水线处理机。另外,也把指令流水线的段数大于等于8 超流水线处理机。另外,也把指令流水线的段数大于等于8的 流水线处理机称为超流水线处理机。 流水线处理机称为超流水线处理机。 超标量处理机是通过重复设置多个部件, 超标量处理机是通过重复设置多个部件,并且让这些部件能够 同时工作来提高指令的执行速度; 同时工作来提高指令的执行速度;而超流水线处理机则只是通 过增加少量硬件, 过增加少量硬件,通过各部分硬件的充分重叠工作来提高处理 机的性能。 机的性能。 超标量处理机采用的是空间并行性,而超流水线处理机是开发 超标量处理机采用的是空间并行性, 时间并行性,通过各部分硬件的充分重叠来提高机器性能。一 时间并行性,通过各部分硬件的充分重叠来提高机器性能。 台并行度ILP为n的超流水线处理机,它在一个时钟周期内能够 台并行度ILP为 的超流水线处理机, ILP 发射n条指令。但是n条指令不是同时发射,而是每隔1/n个时 发射n条指令。但是n条指令不是同时发射,而是每隔1 钟周期发射一条指令。 钟周期发射一条指令。
( d) 超标量超流水线处理机时空图
各种指令级并行处理机的比较
超长指令字处理机
超长指令字处理机
超长指令字(VLIW) 超长指令字(VLIW)是一种单指令流多操作码多数据的 系统结构, 系统结构,由编译程序在编译时找出指令间潜在的并行 进行适当调度安排, 性,进行适当调度安排,把多个能并行执行的操作组合 在一起,成为一条具有多个操作段的超长指令。 在一起,成为一条具有多个操作段的超长指令。由这条 超长指令去控制VLIW VLIW处理机中多个互相独立工作的功能 超长指令去控制VLIW处理机中多个互相独立工作的功能 部件,每个操作段控制一个功能部件, 部件,每个操作段控制一个功能部件,相当于同时执行 多条指令。 多条指令。
指令级并行技术简介
多指令发射技术 超标量(Superscalar) 超标量(Superscalar)处理机 超流水线(Superpipelining)处理机 超流水线(Superpipelining) 超标量超流水线( 超标量超流水线(Superscalar Superpipeling) Superpipeling)处理机 超长指令字( Word) 超长指令字(Very Long Instruction Word) 处理机
超长指令字处理机
超长指令字处理机特点 1.超长指令字的生成是由编译器来完成的 超长指令字的生成是由编译器来完成的, 1.超长指令字的生成是由编译器来完成的,由它将 串行的操作序列合并为可并行执行的指令序列, 串行的操作序列合并为可并行执行的指令序列, 以最大限度实现操作并行性。 以最大限度实现操作并行性。 2.单一的控制流,只有一个控制器,每个时钟周期 2.单一的控制流,只有一个控制器, 单一的控制流 启动一条长指令。 启动一条长指令。 3.超长指令字被分成多个控制字段 超长指令字被分成多个控制字段, 3.超长指令字被分成多个控制字段,每个字段直接 独立地控制每个功能部件。 独立地控制每个功能部件。 4.含有大量的数据通路和功能部件 含有大量的数据通路和功能部件。 4.含有大量的数据通路和功能部件。由于编译器在 编译时间已解决可能出现的数据相关和资源冲突, 编译时间已解决可能出现的数据相关和资源冲突, 故控制硬件比较简单。 故控制硬件比较简单。
指令次序重组
修改后的程序的执行时序: 修改后的程序的执行时序:
周期: 周期: 1 2 3 4 5 1. load: IF ID EX M WB 2. subicc: IF ID EX M 3. fadd: IF ID EX1 4. addi: IF ID 5. bnez: IF 6. store: load: 6 WB EX2 EX ID IF 7 8 9 10 11
EX3 WB M WB ID IF EX ID M EX M
WB
执行一次循环需要6个时钟周期,性能提高了 执行一次循环需要6个时钟周期, 10/6100%=67%。 (10/6-1)*100%=67%。 问题:指令次序重组的思想是什么? 问题:指令次序重组的思想是什么?
第11章 11章
指令级并行技术
指令级并行技术简介
当指令不相关时,它们在流水线中是重叠执行的。 当指令不相关时,它们在流水线中是重叠执行的。这种指 令序列中存在的潜在并行性称为指令级并行 指令级并行。 令序列中存在的潜在并行性称为指令级并行。 指令级并行度ILP ILP( Parallelism), 指令级并行度ILP(Instruction Level Parallelism), 它定义为在一个时钟周期内流水线上流出的指令数。 它定义为在一个时钟周期内流水线上流出的指令数。 衡量指令级并行性的一个指标是CPI CPI( 衡量指令级并行性的一个指标是CPI(Clock Cycles Per Instruction), ),它定义为流水线中执行一条指令所需的 Instruction),它定义为流水线中执行一条指令所需的 时钟周期数。 时钟周期数。 为了达到CPI CPI= 这样的理想情况, 为了达到CPI=1这样的理想情况,必须采用相应的技术减 少数据相关和控制相关,静态调度和动态调度, 少数据相关和控制相关,静态调度和动态调度,从软件和 硬件两个方面解决问题。 硬件两个方面解决问题。 要进一步提高流水线的吞吐率,获得更高的性能, 要进一步提高流水线的吞吐率,获得更高的性能,就必须 CPI< 使CPI<1 。如果流水线在一个时钟周期内能够有多条指 令流出的话,目的就可以实现了, 令流出的话,目的就可以实现了,多指令流处理器就有效 的解决了这个问题。 的解决了这个问题。
超标量超流水线处理机
超标量超流水线处理机
指令 每个时钟周期发射9条指令, ILP= 9 I9 I8 I7 I6 I5 I4 I3 I2 I1 IF IF IF 1 IF IF IF ID ID ID 2 IF IF IF ID ID ID EX EX EX 3 ID ID ID EX EX EX MEM MEM MEM 4 EX EX EX MEM MEM MEM WB WB WB 5 6 7 8 时钟周期 MEM MEM MEM WB WB WB WB WB WB
超流水线处理机
超流水线处理机
超标量超流水线处理机
超标量超流水线处理机
可以把超标量技术与超流水线技术结合在一起, 可以把超标量技术与超流水线技术结合在一起,这就 是超标量超流水线处理机。 是超标量超流水线处理机。它在一个时钟周期内要发 射指令m 每次发射指令n 射指令m次,每次发射指令n条,故每个时钟周期中总 共发射指令m 。(见下图 见下图) 共发射指令m×n条。(见下图) 超标量超流水线处理机既开发空间并行性, 超标量超流水线处理机既开发空间并行性,又开发时 间并行性。 间并行性。前者在重复设置的操作部件上同时执行多 个操作来提高程序的执行速度, 个操作来提高程序的执行速度,后者在同一操作部件 上重叠多个操作, 上重叠多个操作,通过使用较快时钟周期的深度流水 线来加快程序的执行速度。其并行度期望值为m 线来加快程序的执行速度。其并行度期望值为m×n。
超标量处理机
超标量处理机
指令 每个时钟周期发射1条指令, ILP= 1 I4 I3 I2 I1 IF 1 指令 每个时钟周期发射3条指令, ILP= 3 I9 I8 I7 I6 I5 I4 I3 I2 I1 IF IF IF 1 IF IF IF ID ID ID 2 IF IF IF ID ID ID EX EX EX 3 ID ID ID EX EX EX MEM MEM MEM 4 EX EX EX MEM MEM MEM WB WB WB 5 6 7 8 时钟周期 MEM MEM MEM WB WB WB WB WB WB IF ID 2 IF ID EX 3 IF ID EX MEM 4 ID EX MEM WB 5 6 7 8 时钟周期 EX MEM WB MEM WB WB
指令次序重组
引例的执行时序: 引例的执行时序:采用内部前推技术 周期: 周期: 1 2 3 4 5 6 1. load: IF ID EX M WB 2. X 3. fadd: IF ID EX1 EX2 4. X 5. store: IF ID 6. addi: IF 7. subicc: 8. 9. bnez: 10. load: 执行一次循环需要10个时钟周期。 10个时钟周期 执行一次循环需要10个时钟周期。 7 8 9 10 11
相关文档
最新文档