多指令流出技术

上传人:m**** 文档编号:578206437 上传时间:2024-08-23 格式:PPT 页数:32 大小:658.53KB
返回 下载 相关 举报
多指令流出技术_第1页
第1页 / 共32页
多指令流出技术_第2页
第2页 / 共32页
多指令流出技术_第3页
第3页 / 共32页
多指令流出技术_第4页
第4页 / 共32页
多指令流出技术_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《多指令流出技术》由会员分享,可在线阅读,更多相关《多指令流出技术(32页珍藏版)》请在金锄头文库上搜索。

1、第三章第三章 多指令流出技术多指令流出技术 指令级并行性指令级并行性:程序中的指令是顺序安排的,当这些指令间不存在相关而能在流水线中通过时间重叠方法来并行执行时,则存在指令级并行性指令级并行性. 指令级并行度指令级并行度ILP:它定义为在一个时钟周期内流水线上流出的指令数。 第三章第三章 多指令流出技术多指令流出技术第一节 超标量处理机第二节 超流水线处理机第三节 超标量超流水线处理机第四节 超长指令字处理机第五节 DLX处理器的超标量技术三种主流处理机:三种主流处理机: 超标量处理机超标量处理机:Intel公司的i860、i960、Pentium处理机, Motolora公司的MC88110

2、,IBM公司的Power 6000, SUN公司的SPARC、 SuperSPARC、 UltraSPARC等。 超流水线处理机超流水线处理机:SGI公司的MIPS R4000、R5000、R10000等。 超标量超流水线处理机超标量超流水线处理机:DEC公司的Alpha等。超标量处理机超标量处理机 超标量处理机典型结构:超标量处理机典型结构: 多条指令流水线多条指令流水线。 先进的超标量处理机有:定点处理部件CPU,浮点处理部件FPU,图形加速部件GPU,大量的通用寄存器,两个一级Cache。 超标量处理机超标量处理机指令级并行度(指令级并行度(ILP)大于大于1。 Motorola公司的M

3、C88110。有10个操作部件。 两个寄存器堆:整数部件通用寄存器堆,32个32位寄存器; 浮点部件扩展寄存器堆,32个80位寄存器。 缓冲深度为4的先行读数栈,缓冲深度为3的后行写数栈。 两个独立的高速Cache中,各为8KB,采用两路组相联方式, 转移目标指令Cache,存放一条分支上的指令。单发射与多发射单发射与多发射 单发射处理机:单发射处理机: 每个周期只取一条指令、只译码一条指令,只执行一条指令,每个周期只取一条指令、只译码一条指令,只执行一条指令,只写回一个运算结果。只写回一个运算结果。 取指令部件和指令译码部件各设置一套; 只设置一个多功能操作部件或设置多个独立的操作部件; 操

4、作部件中可以采用流水线结构,也可以不采用流水线结构。 目标是每个时钟周期平均执行一条指令,ILP的期望值为1。 多发射处理机:多发射处理机: 每个周期同时取多条指令、同时译码多条指令,同时执行多条每个周期同时取多条指令、同时译码多条指令,同时执行多条指令,同时写回多个运算结果指令,同时写回多个运算结果。 需要多个取指令部件,多个指令译码部件和多个写结果部件。需要多个取指令部件,多个指令译码部件和多个写结果部件。 设置多个指令执行部件,设置多个指令执行部件,有些指令执行部件采用流水线结构。 目标是每个时钟周期平均执行多条指令,ILP的期望值大于1。 超标量处理机:超标量处理机:一个时钟周期能同时

5、发射多条指令的处理机一个时钟周期能同时发射多条指令的处理机 必须有两条或两条以上能够同时工作的指令流水线。 先行指令窗口先行指令窗口:能够从指令Cache中预取多条指令, 能够对窗口内的指令进行数据相关性分析和功能部件冲突检测。 先行指令窗口的大小:一般为2至8条指令。 目前的指令调度技术,每个周期发射2至4条指令比较合理。 例如:例如:Intel公司的i860、i960、Pentium,Motolora公司的MC88110,IBM公司的Power 6000等每个周期都发射两条指令; TI公司生产SuperSPARC,Pentium III每个周期发射三条指令。 操作部件的个数一般多于每个周期

6、发射的指令条数。通常为4 个至16个操作部件。 超标量处理机的指令级并行度:超标量处理机的指令级并行度:1ILPm。 m为每个周期发射的指令条数。超标量处理机性能超标量处理机性能单流水线普通标量处理机的指令级并行度记作单流水线普通标量处理机的指令级并行度记作(1,1)(1,1),超标量处理机的指令级并行度记作超标量处理机的指令级并行度记作( (m,1),1),超流水线处理机的指令级并行度记作超流水线处理机的指令级并行度记作(1,(1,n) ),而超标量超流水线处理机的指令级并行度记作而超标量超流水线处理机的指令级并行度记作( (m, ,n) )。在理想情况下,N条指令在单流水线标量处理机上的执

7、行时间为:T(1,1)(kN1)t在每个周期发射m条指令的超标量处理机上执行的时间为: T(m,1)(k )t超标量处理机相对于单流水线标量处理机的加速比为: S(m,1)超标量处理机的加速比的最大值为:S( (m,1),1)MAXm超流水线处理机超流水线处理机两种定义:两种定义: 在一个周期内能够分时发射多条指令的处理机在一个周期内能够分时发射多条指令的处理机 指令流水线的功能段数为指令流水线的功能段数为8 8段或超过段或超过8 8段的流水线处理机段的流水线处理机提高处理机性能的不同方法:提高处理机性能的不同方法: 超标量处理机:通过增加硬件资源来提高处理机性能超标量处理机:通过增加硬件资源

8、来提高处理机性能 超流水线处理机:通过各部分硬件的重叠工作来提高超流水线处理机:通过各部分硬件的重叠工作来提高 处理机性能。处理机性能。两种不同并行性:两种不同并行性: 超标量处理机采用的是空间并行性。超标量处理机采用的是空间并行性。 超流水线处理机采用的是时间并行性。超流水线处理机采用的是时间并行性。指令执行时序指令执行时序每隔1/n个时钟周期发射一条指令, 即处理机的流水线周期为1/n个时钟周期。在超标量处理机中,流水线的有些功能段还可以进一步细分, 例如:ID功能段,可以再细分为:译码、读第一操作数和读 第二操作数三个流水段。典型处理机结构典型处理机结构 MIPS R4000处理机,每个

9、时钟周期包含两个流水段,每个时钟周期包含两个流水段, 是一种很标准的超流水线处理机结构。 指令流水线有8个流水段。 有两个Cache,指令Cache和数据Cache的容量各8KB, 每个时钟周期可以访问Cache两次, 因此在一个时钟周期内可以从指令Cache中读出两条指令, 从数据Cache中读出或写入两个数据。 主要运算部件有整数部件和浮点部件。超流水线处理机性能超流水线处理机性能指令级并行度为(1,n)的超流水线处理机,执行N条指令 所的时间为:超流水线处理机相对于单流水线普通标量处理机的 加速比为: 即:超流水线处理机的加速比的最大值为:S(1,n)(1,n)MAXn超标量超流水线处理

10、机超标量超流水线处理机把超标量与超流水线技术结合在一起,就成为超标量超流水线处理机超标量超流水线处理机在一个时钟周期内分时超标量超流水线处理机在一个时钟周期内分时发射指令发射指令n次,次, 每次同时发射指令每次同时发射指令m条条超标量超流水线处理机每个时钟周期总共发射指令m n条 指令执行时序指令执行时序典型处理机结构典型处理机结构 DEC公司的Alpha处理机采用超标量超流水线结构超标量超流水线结构。 主要由四个功能部件和两个Cache组成。 四个功能部件是:整数部件EBOX、浮点部件FBOX、 地址部件ABOX和中央控制部件IBOX。 中央控制部件IBOX能够同时读出两条指令, 同时对两条

11、指令进行译码,作资源冲突检测,进行数据相关性 和控制相关性分析。如果资源和相关性允许,IBOX就把两条指 令同时发射给EBOX、ABOX和FBOX三个执行部件中的两个。 指令流水线采用顺序发射乱序完成顺序发射乱序完成的控制方式。 在指令Cache中有一个转移历史表,实现条件转移的动态预测。 在EBOX内还有多条专用数据通路,可以把运算结果直接送到执行部件。 Alpha 21064处理机共有三条指令流水线三条指令流水线, (1)整数操作流水线为7个流水段,其中, 取指令为2个流水段 分析指令为2个流水段 运算为2个流水段 写结果1个流水段 (2)访问存储器流水线为7个流水段, (3)浮点操作流水

12、线分为10个流水段,其中, 浮点执行部件FBOX的延迟时间为6个流水段。 因为三条指令流水线的平均段数为三条指令流水线的平均段数为8 8,且每个时钟周期发射两 条指令。因此,Alpha 21064处理机是超标量超流水线处理机 所有指令执行部件,包括EBOX、IBOX、ABOX和FBOX中都设置 有专用数据通路。超标量超流水线处理机性能超标量超流水线处理机性能 指令级并行度为(m,n)的超标量超流水线处理机, 连续执行N条指令所需要的时间为: 超标量超流水线处理机相对于单流水线标量处理机的 加速比为: 在理想情况下,超标量超流水线处理机加速比的最大值为: S(m,n)(m,n)MAXm n例:计

13、算100条指令分别在k=4的标量流水处理机和m=2,k=4的超标量流水处理机上执行所需的时间T,吞吐率P,效率E和加速比 S.DLX处理器的超标量技术两路超标量指令流: 一条指令可以是取指令,存指令,分支指令或整数运算指令. 另一条指令可以是任意的浮点指令.例:下面是前面我们使用的循环程序段,在超标量DLX流水线上将如何调度?for (i=1; i=1000; i+) x(i) = x(i) + s; Loop:LD F0,0(R1) ; F0=vector element ADDD F4,F0,F2 ;add scalar from F2 SD0(R1),F4 ;store result S

14、UBI R1,R1,8 ;decrement pointer 8B (DW) BNEZ R1,Loop ;branch R1!=zero 1 Loop:LD F0,0(R1)2 LD F6,-8(R1)3 LD F10,-16(R1)4 LD F14,-24(R1)5 LD F18,-32(R1)6 ADDD F4,F0,F27 ADDD F8,F6,F28 ADDD F12,F10,F29 ADDD F16,F14,F210 ADDD F20,F18,F211 SD 0(R1),F412 SD -8(R1),F813 SD -16(R1),F1214 SUBI R1,R1,#4015 SD

15、-24(R1),F1216 BNEZ R1,LOOP17 SD 8(R1),F20; 循环展开5次调度后的代码:整数指令浮点指令时钟周期 LOOP:LD F0,0(R1)1LD F6,-8(R1)2LD F10,-16(R1)ADDD F4,F0,F23LD F14,-24(R1)ADDD F8,F6,F24LD F18,-32(R1)ADDD F12,F10,F25SD 0(R1),F4ADDD F16,F14,F26SD -8(R1),F8ADDD F20,F18,F27SD-16(R1),F128SUBI R1,R1,#409SD -24(R1),F1610BNEZ R1,LOOP11S

16、D8(R1),F2012在在DLXDLX超标量流水线上展开并调度后的代码超标量流水线上展开并调度后的代码超长指令字处理机 超长指令字超长指令字VLIW方法的思路是:由编译程序在编译时找出指令间潜在的并行性,进行适当调度安排,把多个能并行执行的操作组合在一起,成为一条具有多个操作段的超长指令。由这条超长指令去控制VLIW处理机中多个互相独立工作的功能部件,每个操作段控制一个功能部件,相当于同时执行多条指令.VLIW处理机是一种单指令多操作码多数据的系统结构 VLIW处理机用一条长指令实现多个操作的并行执行,以减少对存储器的访问。 VLIW处理机的主要特点是: 1.超长指令字的生成是由编译器来完成

17、的,由它将串行的操作序列合并为可并行执行的指令序列,以最大限度实现操作并行性。2.单一的控制流,只有一个控制器,每个时钟周期启动一条长指令。3.超长指令字被分成多个控制字段,每个字段直接独立地控制每个功能部件。4.含有大量的数据通路和功能部件。由于编译器在编译时间已解决可能出现的数据相关和资源冲突,故控制硬件比较简单。例:假设超长指令字每个时钟周期可同时流出两条访存指令,两条浮点指令和一条整数指令或分支指令,对循环展开5次后的代码进行调度.访存指令1访存指令2浮点指令1浮点指令2整数/转移指令LD F0,0(R1)LD F6,-8(R1)LD F10,-16(R1)LD F14,-24(R1)LD F18,-32(R1)ADDD F4,F0,F2ADDD F8,F6,F2ADDD F12,F10,F2ADDD F16,F14,F2ADDD F20,F18,F2SD 0(R1),F4SD-8(R1),F8SD -16(R1),F12SD -24(R1),F16SUBI R1,R1,#40SD 8(R1),F20BNEZ R1,LOOP

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号