多指令流出技术_第1页
多指令流出技术_第2页
多指令流出技术_第3页
多指令流出技术_第4页
多指令流出技术_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多指令流出技术第一页,共三十二页,编辑于2023年,星期五2023/5/27第三章多指令流出技术第一节超标量处理机第二节超流水线处理机第三节超标量超流水线处理机第四节超长指令字处理机第五节DLX处理器的超标量技术第二页,共三十二页,编辑于2023年,星期五2023/5/27三种主流处理机:超标量处理机:Intel公司的i860、i960、Pentium处理机,

Motolora公司的MC88110,IBM公司的Power6000,

SUN公司的SPARC、SuperSPARC、UltraSPARC等。超流水线处理机:SGI公司的MIPSR4000、R5000、R10000等。超标量超流水线处理机:DEC公司的Alpha等。第三页,共三十二页,编辑于2023年,星期五超标量处理机超标量处理机典型结构:

多条指令流水线。先进的超标量处理机有:定点处理部件CPU,浮点处理部件FPU,图形加速部件GPU,大量的通用寄存器,两个一级Cache。

超标量处理机指令级并行度(ILP)大于1。第四页,共三十二页,编辑于2023年,星期五

Motorola公司的MC88110。有10个操作部件。两个寄存器堆:整数部件通用寄存器堆,32个32位寄存器;浮点部件扩展寄存器堆,32个80位寄存器。缓冲深度为4的先行读数栈,缓冲深度为3的后行写数栈。两个独立的高速Cache中,各为8KB,采用两路组相联方式,转移目标指令Cache,存放一条分支上的指令。第五页,共三十二页,编辑于2023年,星期五单发射与多发射

单发射处理机:

每个周期只取一条指令、只译码一条指令,只执行一条指令,只写回一个运算结果。取指令部件和指令译码部件各设置一套;只设置一个多功能操作部件或设置多个独立的操作部件;操作部件中可以采用流水线结构,也可以不采用流水线结构。目标是每个时钟周期平均执行一条指令,ILP的期望值为1。多发射处理机:

每个周期同时取多条指令、同时译码多条指令,同时执行多条指令,同时写回多个运算结果。

需要多个取指令部件,多个指令译码部件和多个写结果部件。

设置多个指令执行部件,有些指令执行部件采用流水线结构。目标是每个时钟周期平均执行多条指令,ILP的期望值大于1。第六页,共三十二页,编辑于2023年,星期五第七页,共三十二页,编辑于2023年,星期五

超标量处理机:一个时钟周期能同时发射多条指令的处理机必须有两条或两条以上能够同时工作的指令流水线。

先行指令窗口:能够从指令Cache中预取多条指令,能够对窗口内的指令进行数据相关性分析和功能部件冲突检测。先行指令窗口的大小:一般为2至8条指令。目前的指令调度技术,每个周期发射2至4条指令比较合理。

例如:Intel公司的i860、i960、Pentium,Motolora公司的MC88110,IBM公司的Power6000等每个周期都发射两条指令;

TI公司生产SuperSPARC,PentiumIII每个周期发射三条指令。操作部件的个数一般多于每个周期发射的指令条数。通常为4个至16个操作部件。

超标量处理机的指令级并行度:1<ILP<m。

m为每个周期发射的指令条数。第八页,共三十二页,编辑于2023年,星期五2023/5/27超标量处理机性能单流水线普通标量处理机的指令级并行度记作(1,1),超标量处理机的指令级并行度记作(m,1),超流水线处理机的指令级并行度记作(1,n),而超标量超流水线处理机的指令级并行度记作(m,n)。在理想情况下,N条指令在单流水线标量处理机上的执行时间为:T(1,1)=(k+N-1)t在每个周期发射m条指令的超标量处理机上执行的时间为:

T(m,1)=(k+)t超标量处理机相对于单流水线标量处理机的加速比为:

S(m,1)=超标量处理机的加速比的最大值为:S(m,1)MAX=m第九页,共三十二页,编辑于2023年,星期五超流水线处理机两种定义:

在一个周期内能够分时发射多条指令的处理机

指令流水线的功能段数为8段或超过8段的流水线处理机提高处理机性能的不同方法:

超标量处理机:通过增加硬件资源来提高处理机性能

超流水线处理机:通过各部分硬件的重叠工作来提高处理机性能。两种不同并行性:

超标量处理机采用的是空间并行性。

超流水线处理机采用的是时间并行性。第十页,共三十二页,编辑于2023年,星期五2023/5/27指令执行时序每隔1/n个时钟周期发射一条指令,即处理机的流水线周期为1/n个时钟周期。在超标量处理机中,流水线的有些功能段还可以进一步细分,例如:ID功能段,可以再细分为:译码、读第一操作数和读第二操作数三个流水段。第十一页,共三十二页,编辑于2023年,星期五

典型处理机结构

MIPSR4000处理机,每个时钟周期包含两个流水段,是一种很标准的超流水线处理机结构。指令流水线有8个流水段。有两个Cache,指令Cache和数据Cache的容量各8KB,每个时钟周期可以访问Cache两次,因此在一个时钟周期内可以从指令Cache中读出两条指令,从数据Cache中读出或写入两个数据。主要运算部件有整数部件和浮点部件。第十二页,共三十二页,编辑于2023年,星期五2023/5/27第十三页,共三十二页,编辑于2023年,星期五第十四页,共三十二页,编辑于2023年,星期五2023/5/27第十五页,共三十二页,编辑于2023年,星期五超流水线处理机性能指令级并行度为(1,n)的超流水线处理机,执行N条指令所的时间为:超流水线处理机相对于单流水线普通标量处理机的加速比为:

即:超流水线处理机的加速比的最大值为:S(1,n)MAX=n第十六页,共三十二页,编辑于2023年,星期五2023/5/27超标量超流水线处理机把超标量与超流水线技术结合在一起, 就成为超标量超流水线处理机超标量超流水线处理机在一个时钟周期内分时发射指令n次,每次同时发射指令m条超标量超流水线处理机每个时钟周期总共发射指令mn条

第十七页,共三十二页,编辑于2023年,星期五2023/5/27指令执行时序第十八页,共三十二页,编辑于2023年,星期五典型处理机结构

DEC公司的Alpha处理机采用超标量超流水线结构。主要由四个功能部件和两个Cache组成。四个功能部件是:整数部件EBOX、浮点部件FBOX、地址部件ABOX和中央控制部件IBOX。中央控制部件IBOX能够同时读出两条指令,同时对两条指令进行译码,作资源冲突检测,进行数据相关性和控制相关性分析。如果资源和相关性允许,IBOX就把两条指令同时发射给EBOX、ABOX和FBOX三个执行部件中的两个。指令流水线采用顺序发射乱序完成的控制方式。在指令Cache中有一个转移历史表,实现条件转移的动态预测。在EBOX内还有多条专用数据通路,可以把运算结果直接送到执行部件。第十九页,共三十二页,编辑于2023年,星期五第二十页,共三十二页,编辑于2023年,星期五

Alpha21064处理机共有三条指令流水线,

(1)整数操作流水线为7个流水段,其中,取指令为2个流水段分析指令为2个流水段运算为2个流水段写结果1个流水段

(2)访问存储器流水线为7个流水段,

(3)浮点操作流水线分为10个流水段,其中,浮点执行部件FBOX的延迟时间为6个流水段。因为三条指令流水线的平均段数为8,且每个时钟周期发射两条指令。因此,Alpha21064处理机是超标量超流水线处理机所有指令执行部件,包括EBOX、IBOX、ABOX和FBOX中都设置有专用数据通路。第二十一页,共三十二页,编辑于2023年,星期五2023/5/27第二十二页,共三十二页,编辑于2023年,星期五超标量超流水线处理机性能指令级并行度为(m,n)的超标量超流水线处理机,连续执行N条指令所需要的时间为:超标量超流水线处理机相对于单流水线标量处理机的加速比为:在理想情况下,超标量超流水线处理机加速比的最大值为:

S(m,n)MAX=mn第二十三页,共三十二页,编辑于2023年,星期五

例:计算100条指令分别在k=4的标量流水处理机和m=2,k=4的超标量流水处理机上执行所需的时间T,吞吐率P,效率E和加速比S.

第二十四页,共三十二页,编辑于2023年,星期五2023/5/27DLX处理器的超标量技术两路超标量指令流:

一条指令可以是取指令,存指令,分支指令或整数运算指令.

另一条指令可以是任意的浮点指令.第二十五页,共三十二页,编辑于2023年,星期五2023/5/27例:下面是前面我们使用的循环程序段,在超标量DLX流水线上将如何调度?

for (i=1;i<=1000;i++)

x(i)=x(i)+s;

Loop: LD F0,0(R1)

;

F0=vectorelement ADDD

F4,F0,F2

;addscalarfromF2 SD 0(R1),F4

;storeresult SUBI

R1,R1,8

;decrementpointer8B(DW) BNEZ

R1,Loop

;branchR1!=zero

第二十六页,共三十二页,编辑于2023年,星期五2023/5/271Loop:LD F0,0(R1)2

LD F6,-8(R1)3

LD F10,-16(R1)4

LD F14,-24(R1)5LD F18,-32(R1)6

ADDDF4,F0,F27

ADDD

F8,F6,F28

ADDD

F12,F10,F29

ADDD

F16,F14,F210ADDD

F20,F18,F211

SD

0(R1),F412

SD

-8(R1),F813SD

-16(R1),F1214

SUBI

R1,R1,#4015

SD

-24(R1),F1216

BNEZ

R1,LOOP17

SD

8(R1),F20

;循环展开5次调度后的代码:第二十七页,共三十二页,编辑于2023年,星期五2023/5/27整数指令浮点指令时钟周期

LOOP:LD

F0,0(R1)1LD

F6,-8(R1)2LD

F10,-16(R1)ADDDF4,F0,F23LD

F14,-24(R1)ADDDF8,F6,F24LD

F18,-32(R1)ADDDF12,F10,F25SD

0(R1),F4ADDDF16,F14,F26SD-8(R1),F8ADDDF20,F18,F27SD-16(R1),F128SUBI

R1,R1,#409SD

-24(R1),F1610BNEZ

R1,LOOP11SD

8(R1),F2012在DLX超标量流水线上展开并调度后的代码第二十八页,共三十二页,编辑于2023年,星期五2023/5/27超长指令字处理机超长指令字VLIW方法的思路是:由编译程序在编译时找出指令间潜在的并行性,进行适当调度安排,把多个能并行执行的操作组合在一起,成为一条具有多个操作段的超长指令。由这条超长指令去控制VLIW处理机中多个互相独立工作的功能部件,每个操作段控制一个功能部件,相当于同时执行多条指令.第二十九页,共三十二页,编辑于2023年,星期五2023/5/27VLIW处理机是一种单指令多操作码多数据的系统结构

VLIW处理机用一条长指令实现多个操作的并行执行,以减少对存储器的访问。

第三十页,共三十二页,编辑于2023年,星期五2023/5/27VLIW处理机的主要特点是:

1.超长指令字的生成是由编译器来

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论