多指令流出技术.ppt

上传人:小飞机 文档编号:4898906 上传时间:2023-05-22 格式:PPT 页数:32 大小:645KB
返回 下载 相关 举报
多指令流出技术.ppt_第1页
第1页 / 共32页
多指令流出技术.ppt_第2页
第2页 / 共32页
多指令流出技术.ppt_第3页
第3页 / 共32页
多指令流出技术.ppt_第4页
第4页 / 共32页
多指令流出技术.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《多指令流出技术.ppt》由会员分享,可在线阅读,更多相关《多指令流出技术.ppt(32页珍藏版)》请在三一办公上搜索。

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

2、超流水线处理机:SGI公司的MIPS R4000、R5000、R10000等。超标量超流水线处理机:DEC公司的Alpha等。,超标量处理机 超标量处理机典型结构:多条指令流水线。先进的超标量处理机有:定点处理部件CPU,浮点处理部件FPU,图形加速部件GPU,大量的通用寄存器,两个一级Cache。超标量处理机指令级并行度(ILP)大于1。,Motorola公司的MC88110。有10个操作部件。两个寄存器堆:整数部件通用寄存器堆,32个32位寄存器;浮点部件扩展寄存器堆,32个80位寄存器。缓冲深度为4的先行读数栈,缓冲深度为3的后行写数栈。两个独立的高速Cache中,各为8KB,采用两路组

3、相联方式,转移目标指令Cache,存放一条分支上的指令。,单发射与多发射 单发射处理机:每个周期只取一条指令、只译码一条指令,只执行一条指令,只写回一个运算结果。取指令部件和指令译码部件各设置一套;只设置一个多功能操作部件或设置多个独立的操作部件;操作部件中可以采用流水线结构,也可以不采用流水线结构。目标是每个时钟周期平均执行一条指令,ILP的期望值为1。多发射处理机:每个周期同时取多条指令、同时译码多条指令,同时执行多条指令,同时写回多个运算结果。需要多个取指令部件,多个指令译码部件和多个写结果部件。设置多个指令执行部件,有些指令执行部件采用流水线结构。目标是每个时钟周期平均执行多条指令,I

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

5、通常为4 个至16个操作部件。超标量处理机的指令级并行度:1ILPm。m为每个周期发射的指令条数。,超标量处理机性能单流水线普通标量处理机的指令级并行度记作(1,1),超标量处理机的指令级并行度记作(m,1),超流水线处理机的指令级并行度记作(1,n),而超标量超流水线处理机的指令级并行度记作(m,n)。在理想情况下,N条指令在单流水线标量处理机上的执行时间为:T(1,1)(kN1)t在每个周期发射m条指令的超标量处理机上执行的时间为:T(m,1)(k)t超标量处理机相对于单流水线标量处理机的加速比为:S(m,1)超标量处理机的加速比的最大值为:S(m,1)MAXm,超流水线处理机,两种定义:

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

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

8、时钟周期内分时发射指令n次,每次同时发射指令m条超标量超流水线处理机每个时钟周期总共发射指令m n条,指令执行时序,典型处理机结构 DEC公司的Alpha处理机采用超标量超流水线结构。主要由四个功能部件和两个Cache组成。四个功能部件是:整数部件EBOX、浮点部件FBOX、地址部件ABOX和中央控制部件IBOX。中央控制部件IBOX能够同时读出两条指令,同时对两条指令进行译码,作资源冲突检测,进行数据相关性 和控制相关性分析。如果资源和相关性允许,IBOX就把两条指 令同时发射给EBOX、ABOX和FBOX三个执行部件中的两个。指令流水线采用顺序发射乱序完成的控制方式。在指令Cache中有一

9、个转移历史表,实现条件转移的动态预测。在EBOX内还有多条专用数据通路,可以把运算结果直接送到执行部件。,Alpha 21064处理机共有三条指令流水线,(1)整数操作流水线为7个流水段,其中,取指令为2个流水段 分析指令为2个流水段 运算为2个流水段 写结果1个流水段(2)访问存储器流水线为7个流水段,(3)浮点操作流水线分为10个流水段,其中,浮点执行部件FBOX的延迟时间为6个流水段。因为三条指令流水线的平均段数为8,且每个时钟周期发射两 条指令。因此,Alpha 21064处理机是超标量超流水线处理机 所有指令执行部件,包括EBOX、IBOX、ABOX和FBOX中都设置 有专用数据通路

10、。,超标量超流水线处理机性能 指令级并行度为(m,n)的超标量超流水线处理机,连续执行N条指令所需要的时间为:超标量超流水线处理机相对于单流水线标量处理机的 加速比为:在理想情况下,超标量超流水线处理机加速比的最大值为:S(m,n)MAXm n,例:计算100条指令分别在k=4的标量流水处理机和m=2,k=4的超标量流水处理机上执行所需的时间T,吞吐率P,效率E和加速比 S.,DLX处理器的超标量技术,两路超标量指令流:一条指令可以是取指令,存指令,分支指令或整数运算指令.另一条指令可以是任意的浮点指令.,例:下面是前面我们使用的循环程序段,在超标量DLX流水线上将如何调度?,for(i=1;

11、i=1000;i+)x(i)=x(i)+s;,Loop:LDF0,0(R1);F0=vector element ADDD F4,F0,F2;add scalar from F2 SD0(R1),F4;store result SUBI R1,R1,8;decrement pointer 8B(DW)BNEZ R1,Loop;branch R1!=zero,1 Loop:LDF0,0(R1)2 LDF6,-8(R1)3 LDF10,-16(R1)4 LDF14,-24(R1)5 LDF18,-32(R1)6 ADDD F4,F0,F27 ADDD F8,F6,F28 ADDD F12,F10,

12、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-24(R1),F1216 BNEZ R1,LOOP17 SD8(R1),F20;,循环展开5次调度后的代码:,在DLX超标量流水线上展开并调度后的代码,超长指令字处理机,超长指令字VLIW方法的思路是:由编译程序在编译时找出指令间潜在的并行性,进行适当调度安排,把多个能并行执行的操作组合在一起,成为一条具有多个操作段的超长指令。由这条超长指令去控制VLIW处理机中多个互相独立工作的功能部件

13、,每个操作段控制一个功能部件,相当于同时执行多条指令.,VLIW处理机是一种单指令多操作码多数据的系统结构 VLIW处理机用一条长指令实现多个操作的并行执行,以减少对存储器的访问。,VLIW处理机的主要特点是:,1.超长指令字的生成是由编译器来完成的,由它将串行的操作序列合并为可并行执行的指令序列,以最大限度实现操作并行性。2.单一的控制流,只有一个控制器,每个时钟周期启动一条长指令。3.超长指令字被分成多个控制字段,每个字段直接独立地控制每个功能部件。4.含有大量的数据通路和功能部件。由于编译器在编译时间已解决可能出现的数据相关和资源冲突,故控制硬件比较简单。,例:假设超长指令字每个时钟周期可同时流出两条访存指令,两条浮点指令和一条整数指令或分支指令,对循环展开5次后的代码进行调度.,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号