计算机系统结构(第六讲)_第1页
计算机系统结构(第六讲)_第2页
计算机系统结构(第六讲)_第3页
计算机系统结构(第六讲)_第4页
计算机系统结构(第六讲)_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

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

文档简介

计算机系统结构

(第六讲)

厦门大学计算机科学系陆达

2004年n月20日

第五章标量处理机

什么是标量处理机?

只有标量数据表示和标量指令系统的处理机称为标

量处理机

提高处理机指令执行速度的途径有三种:

(1)、提高处理机的工作主频

(2)、采用更好的算法和设计更好的功能部件

(3)、多条指令并行执行,称为指令级并行技术

a、流水线处理机、超流水线处理机

(superpipelining)

b、多操作部件处理机、超标量处理机

(superscalar)

超标量超流水线处理机(a+b)

c、超长指令字(VLIW)

•本章主要内容:

(1)、流水线技术(先行控制技术、流水

线原理、流水线性能分析、非线性流水线

的调度方法、局部数据相关和全局数据相

关的处理方法)

(2)、超标量处理机

(3)、超流水线处理机

5」先行控制技术

•先行控制(look-ahead)技术

・超流水线处理机、超标量处理机

・缓冲技术、预处理技术

•指令分析器、指令执行部件

5.1.1指令的重叠执行方式

图5,1:一条指令的执行过程

三个阶段都可能访问存储器

指令的执行方式:

(1)、顺序执行方式图5.2(a)

T=3nt

取指令A分析卜执行后取指令人+1分析h+1执行上+1

(a)顺序执行方式

2)、一次重叠执行方式图5.2(b)

T=(l+2n)t

取指令6分析力执行/

取指令6+1分析k+1执行A+l

取指令归+2分析归+2执行左+2

(b)一次重叠执行方式

(3)、二次重叠执行方式图52(c)

T=(2+n)t

取指令G分析人执行R

取指令力+i分析e+i执行A+I

取指\+2分析2+2执自+2

(C)二次重叠执行方式

5.1.2先行控制方式的原理和结构

•要解决两个问题:

(1)、要有独立的取指令部件、指令分析

部件和指令执行部件

存储控制器(存控)、指令控制器(指

控)、运算控制器(运控)

(2)、要解决访问主存储器的冲突问题

a、把主存储器分成两个独立编制的存储器

指令存储器(指存)、数据存储器(数

存)

指令Cache、数据Cache(哈佛结构)

b、指令和数据仍然混合存放在同一个主

存储器内

低位交叉存取方式

3、先行控制技术

缓冲技术:在工作速度不固定的两个功

能部件之间设置缓冲栈,用以平滑它们的

工作(设置四个缓冲栈)

预处理技术:把进入运算器的指令都处

理成寄存器■寄存器型(R-R型)指令,它

与缓冲技术相结合,为进入运算器的指令

准备好所需要的全部操作数

5.1.2.1处理机结构

图5.3:采用先行控制方式的处理机结构

图5.3采用先行控制方式的处理机机构

图5,4:指令缓冲栈(先行指令缓冲栈)的组成

指令缓冲寄存器(存储器)堆、先行程序计数器PQ、

现行程序计数器PC

图5.4先行指令缓冲栈的组成

图5,5:先行控制方式的一次重叠执行

这里的“分析”=前面的“取指令+分析”

T重叠=(l+n)t

•有三个问题需要解决:

(1)、指令分析部件和指令执行部件经常要

相互等待,从而造成功能部件的浪费

(2)、数据相关,控制相关,变址相关

(3)、当出现转移或转子程序指令时,程序

的执行过程就不是顺序的

5.1.2.2指令执行时序

图5.6:分析指令和执行指令时间不相等时的一次

重叠执行方式

图5.7:采用先行缓冲栈的指令执行过程

先行缓冲栈:先行指令缓冲栈、先行读数栈、先

行操作栈、后行写数栈

图5,8:采用先行缓冲栈时指令执行过程的一种

表示方法(图5.7的另一种表示方法)

nn

7先行"分析1+):"执行

七乙\'t执行

i=1i=1

5.123先行缓冲栈

先行指令缓冲栈(指令缓冲栈):用于平滑主存储器

和指令分析器的工作

先行操作栈:指令分析器对已经存放在先行指令缓冲

栈里的指令进行预处理,把处理之后的指令送入先行

操作栈;先行操作栈是指令分析器和运算控制器之间

的一个缓冲存储器;先行操作栈采用先进先出(FIFO)

的方式工作,它由一个先行指令寄存器堆和有关控制

逻辑等组成

预处理技术(RR型、RX型、RS型、RI型->RR*型)

先行读数栈:是主存储器与运算器之间的一种缓

冲存储器,用来平滑运算器与主存储器的工作;

由一组缓冲寄存器和有关控制逻辑等组成;每一

个缓冲寄存器由先行地址缓冲寄存器、先行操作

数缓冲寄存器和标志字段等三部分组成

后行写数栈:是主存储器和运算器之间的一个缓

冲存储器;由一组缓冲寄存器和有关控制逻辑等

组成;每一个缓冲寄存器由后行地址缓冲寄存器、

后行数据缓冲寄存器和标志字段等三部分组成

图5S:采用先行控制方式时一个程序的执行过程

•”令控制部件:先行控制器(先行指令缓

捺先行读数栈、先行操作栈、后行写

数T栈)+指令分析器

指令执行部件:运算器+运算控制器

5.1.2.4缓冲深度的设计

樊渭深度问题:各个缓冲栈中的缓冲寄存器个数设置多少

•缓冲深度的静态分析方法:

(1)、先行指令缓冲栈已经完全充满

Li*ti=(L/Di)*t2

Di=[L15t2七)八21

(2)、先行指令缓冲栈原来是空的

(1_2一立)七12咬2,

e=匕*(维,电')/5

除眩患指金J强色要指含篁工京型旨令分析器中就直接执

仃兀成,不需要送到运算器中执行

•例:

Li=9,tx=l,t2=4Dj=7

图5.10:先行指令缓冲栈的工作时间关系图

提高主存储器的访问速度,对减少缓冲深

度很有效42减少->工减少)

Di(先行指令缓冲栈)NDc(先行操纵栈)

2DR(先行读数栈)>DW(先行写数栈)

5.1.3数据相关

什么是/目关(correlation)?

是指在一段程序的相近指令之间有某种关系,这种关

系可能影响指令的重叠执行

相关分为两大类:

(1)、数据相关

(2)、控制相关

数据相关:包括指令相关、主存操作数相关、通用寄

荐器相关、变址始关

解决数据相关的方法:

(1)、推后分析法

(2)、设置专用路径

5.1,3.1指令相关

例:结果地址(k)=指令地址(k+1)

由于第k+1条指令本身的内容取决于第k条指令的执

行结果,从而产生指令相关

判断是否发生了指令相关:把每一条指令的结果地

址与先行操作栈中、指令分析器中、先行指令缓冲

栈中的所有指令地址进行比较

解决填令相关的根本方法:在程序设计中不允许修

改指岑

IBM370,有一条“执行”指令能够解决指令相关,

又允许在程序执行过程中修改指令

5.1.3.2主存操作数相关

•例:结果地址(k)二主存操作数地址(k+1)

•当指令的执行结果写到主存储器,所读取的操

作数也取自主存储器时,就有可能发生主存操

作数相关

•Ai(k)=A2(k+1)

A1(k)=A3(k+1)

解决主存操作数相关的方法:推后处理法

图5.11:主存操作数相关及其处理方法

•对设置有先行操作栈的处理机,解决操作

数相关的办法:

对于刚进入先行操作栈中的指令在向主

存读操作数之前,首先要把访问主存的地

址与后行写数栈中的所有主存地址进行比

较,如果发现有相等的,则先行操作栈的

读操作数要暂缓进行,等到发生操作数相

关的指令执行完成,并把结果写回到主存

之后再开始读操作数

.133通用寄存器数据相关

•在RR型指令和RS型指令的执行过程中,可

能发生通用寄存器数据相关

•Ri(k)=R(k+1),称为《数据相关

Ri(k)=R2(k+1),称为R2数据相关

•解决通用寄存器数据相关的方法(共有四种):

(1)、通用寄存器是用D型触发器构成的,而且在通用寄存

器到运算器之间建立有直接数据通路,即不设置缓冲寄存

器或锁存器,则不会发生通用寄存器数据相关

图5.12:一种典型的运算器结构

2)、分析指令推后一个周期执行

图5.13:IBM370机的指令分析与执行的时间关系

(3)、分析指令仅推后一个节拍

图5.14:分析指令仅推后一个节拍的时间关系

(4)、设置专用数据通路

图5.15:设置专用数据通路解决通用寄存器数据

相关

设置专用数据通路是通过增加硬件为代价来解决

寄存器数据相关

5.1.3.4变址相关

•把通用寄存器兼作变址寄存器使用,由于

在变址寄存器中存放的变址量在指令分析

过程中要用它来计算有效地址,有可能发

生变址相关

称为一次变址相关

Ri(k)=X2(k+1),

称为二次变址相关

Ri(k)=X2(k+2),

图5.16:一次变址相关和二次变址相关的时间关

系(当△ti>Zkt2时,将发生二次变址相关)

解决变址相关的方法:

(1)、推后分析

(2)、设置专用通路、

图5.17:用变址相关专用通路解决变址相关

•解决各种数据相关的方法:

(1)、采用硬件或软件的办法尽量避免数据

相关发生

(2)、在确保指令正确执行的前提下,推后

指令分析(推后分析法)

(3)、设置相关专用通路来解决数据相关

(设置专用路径)

5.1.4控制相关

什么是控制相关?

因为程序的执行方向可能改变而引起的相关称为

控制相关

无条件转移指令、一般条件转移指令、复合条件

转移指令、子程序调用指令、中断指令

数据相关:称为局部相关

控制相关:称为全局相关

“吸收型”指令(无条件转移指令、一般条件转

移指令):在指令分析器就执行完成,不需要送

入先行操作栈和指令执行部件

5.1.4.1无条件转移

无条件转移指令一般能够在指令分析器中就执行

完成

•图5.18:无条件转移指令的执行时序

(无条件转移指令对程序执行速度的影响很小)

5.1.4.2一般条件转移

•条件转移指令:

(1)、一般条件转移指令

(2)、复合条件转移指令

•图5.19:一般条件转移指令的执行时序

一般条件转移指令称为“吸收型”指令

转移不成功对先行控制器的影响不大,而当转移

成功时,不仅指令执行过程变成了完全串行,而

且要作废已经取到先行指令缓冲栈中的大量指令,

从而白白地增加了处理机与主存之间的通信量

5.1.4.3复合条件转移

•复合型条件转移指令不是“吸收型”指令

•图5.20:复合型条件转移指令的执行时序

(如果转移成功,对先行控制器造成的影响比一般条

件转移指令还要大得多)

5.1.4.4转移预测技术

•RISC关键技术:

(1)、延迟转移技术(pll8)

(2)、指令取消技术(pll9)

•在采用先行控制方式的处理机中,采用的

技大:

(1)、软件“猜测法”

(2)、硬件“猜测法”

(3)、两个先行指令缓冲栈

1、软件“猜测法”

•要尽量降低转移成功出现的概率

图5.21:用编译器支持条件转移指令的执行

2、硬件“猜测法”

在先行指令缓冲栈的入口处再增设一个简单的指

令分析器,当这个指令分析器检测到转移指令时,

就把转移目标地址L送入先行程序计数器PC1中,

同时保留当前PQ中的内容到另一个寄存器中,以

备猜错时恢复原来的程序执行方向

软件“猜测法”和硬件“猜测法”共同配合,软

件和硬件都往同一个方向去猜测

3、两个先行指令缓冲栈

•对于普通条件转移指令(如IF语句),转移成功与不成功

的概率一般各为50%

•在先行指令缓冲栈中增加一个先行目标缓冲栈,当指令分

析器分析到条件转移指令时,按照转移成功的方向预取指

令到这个先行目标缓冲栈中,原来的先行指令缓冲栈仍然

按照转移不成功的方向继续预取指令

•AIB:新增加的先行目标缓冲栈

•IB:原来的指令缓冲栈

•TRi、TR2:暂存寄存器

图5.22:两个先行指令缓冲栈的条件转移指令执行

流程

5.1.4.5短循环程序的处理

•对于短循环程序,一般先行指令缓冲栈的

效率很低

•短循环程序满足的三个条件:

(1)、循环体的长度小于等于先行指令缓冲

栈的深度

(2)、循环次数的控制采用计数转移指令实

(3)、控制循环的条件转移指令一般是向后

转移的指令

•必须解决好三个问题:

(1)、指令分析器如何发现短循环程序

(2)、如何控制短循环程序在先行指令缓冲栈中不被清除

(3)、如何控制循环体的执行次数,即处理好循环程序的

出口

•两种方法:

(1)、在指令系统中设置专门的短循环程序的开门指令和

关门指令

短循环标志触发器「

(2)、用专门的硬件来识别短循环程序,目的是使短循环

程序的处理对程序员透明

•一级Cache:一级指令Cache、一级数据Cache

可以有效地提高循序程序的执行速度

5.2流水线处理机

空间并行性:

在一个处理机内设置多个独立的操作部件,并让

这些操作部件并行工作

多操作部件处理机和超标量处理机

时间并行性:

采用流水线技术

流水线的基本原理、特点、分类、性能分析;非

线性流水线的调度问题;流水线中的局部相关和

全局相关的处理方法

5.2.1流水线工作原理

什么是流水线工作方式?

把一个重复的过程分解为若干个子过程,

每个子过程可以与其他子过程同时进行

指令流水线

操作部件流水线

访问主存储器部件也可以采用流水线

在处理机之间,机器之间也可以采用流水

线

5.2.1.1从重叠到流水线

•图5,23:一种简单的流水线

指令分析器、指令执行部件

图5.24:一种指令流水线

一条指令分为6个子过程

图5.25:浮点加法器流水线

图5.24的执行过程分解为4个小子过程

5.2-1.2时空图

•图5.26:描述流水线工作过程的时空图

横坐标:表示时间

纵坐标:表示空间,即流水线的各个子过程

“功能段”:流水线的一个子过程

图5.27:浮点加法器流水线的时空图

5.2.1.3流水线的特点

(1)、在流水线中处理的必须是连续任务

(2)、把一个任务(一条指令或一个操作)分解为

几个有联系的子任务,每个子任务由一个专门的

功能部件来实现

(3)、在流水线的每一个功能部件的后面都要有一

个缓冲寄存器(锁存器、闸门寄存器),用于保

存本段的执行结果

(4)、流水线中各段的时间应尽量相等,否则将引

起“堵塞”、“断流”等

(5)、流水线需要有“装入时间”和“排空时间”

5.2.2流水线的分类

5.2.2.1线性流水线与非线性流水线

线性流水线(linearpipelining)

将流水线的各段逐个串接起来,输入数据从流水

线的一端进入,从另一端输出

非线性流水线(nonlinearpipelining)

在流水线的各个功能段之间除了有串行的连接之

外,还有反馈回路

非线性流水线常用于递归调用,或构成多功能流

水线等

图5.28:一种简单的非线性流水线

图529:非线性流水线的预约表

一条非线性流水线可以有很多张预约表,一张预约

表实际上仅表示了一条非线性流水线的一种工作方

5.2.2.2流水线的级别

(1)、功能部件级流水线(部件级流水线):也称运算操作

流水线(arithmeticpipelining),如前面的图5.25

(2)、处理机级流水线:也称指令流水线(instruction

pipelining)

流水线处理机或超流水线处理机:

在指令执行部件中采用了流水线的处理机

多操作部件处理机或超标量处理机:

在指令执行部件中设置有多个操作部件的处理机

图5.30:先行控制方式中的指令流水线

包括指令控制部件(先行控制器+指令分析器)、

指令执行部件

(3)、处理机间流水线:也称宏流水线(macro

pipelining)

图5.31:一种宏流水线

5.2.2.3单功能与多功能流水线

单功能流水线(unifunctionpipelining):一条流

水线只能完成一种固定的功能

Cray-1、YH-1、Pentium>Alpha21064

多功能流水线(multifunctionpipelining):流水

线的各段可以进行不同的连接,在不同时间内,

或在同一时间内,通过不同的连接方式实现不同

的功能

Texas仪器公司的ASC

•图5.32:TI-ASC计算机的多功能流水线

图5.32(a):8段流水线

图5.32(b):定点乘法

图5.32(c):浮点加法

图5.32(d):浮点点积,实际上是一条带有

反馈回路的非线性流水线

•多功能流水线、设置多条专门的单功能流

水线

5.2,2.4静态流水线与动态流水线

・静态流水线(staticpipelining)

在同一段时间内,多功能流水线中的各个

功能段只能按照一种固定的方式连接,实

现一种固定的功能

图5.33:静态流水线时空图

・动态流水线(dynamicpipelining)

在同一段时间内,多功能流水线中的各段可

以按照不同的方式连接,同时执行多种功

图5.34:动态流水线时空图

•按照不同的数据表示方式:

(1)、标量流水线:用于标量处理机中

(2)、向量流水线:用于向量处理机中

•按照对流水线的控制方式不同:

(1)、同步流水线:

(2)、异步流水线:一般的宏流水线多采用异步流水线方式

图5.35:一种异步流水线

•按照流水线输出端流出的任务与流水线输

入端流入的任务的顺序是否相同:

(1)、顺序流水线:

(2)、乱序流水线:也称无序流水线、错序

流水线、异步流水线

5.2.3线性流水线的性能分析

•衡量流水线性能的主要指标有:

(1)、吞吐率

(2)、加速比

(3)、效率

(4)、流水线的最佳段数

5.2.3.1吞吐率

•吞吐率(thoughputrate,TP):是指在单

位时间内流水线所完成的任务数量或输出

的结果数量

TP=n/Tk

n:任务数

处理完成个任务所用的时间

Tk:n

图5.36:各段执行时间均相等的流水线时空图

TP=n/[(k+n-l)*At]

TPmax=l/At

TP=[n/(k+n-l)]*TPmax

图5.37:各段执行时间不相等的流水线及其时

空图

n

TP=---------------------------------------

k

2△"+(〃—1)max(△[,△乙)

i=1

TP1

max=/max(At1,At2,■一,Atk)

TPmax=l/(3*At)

当流水线中各个功能段的执行时间不完全相等时,

流水线的最大吞吐率与实际吞吐率主要是由流水

线中执行时间最长的那个功能段来决定,这个功

能段就成了整个流水线的“瓶颈”

解决流水线“瓶颈”问题的方法:

(1)、将流水线的“瓶颈”部分再细分,如图5.38

(2)、通过重复设置“瓶颈”功能段,让多个“瓶

颈”功能段并行工作,如图5.39

图5.38:“瓶颈”功能段再次细分

TPmax=VAt

图5.39:“瓶颈”功能段重复设置的流水线

TPmax=1/At

由于流水线存在有装入和排空时间,输入

的任务往往不是连续的,程序本身存在有

数据相关,多功能流水线在完成某一种功

能时有的功能段不使用等,是流水线的实

际吞吐率要低于最大吞吐率

5.2.3.2加速比

・加速比(speedupratio):完成一批任务,

不使用流水线所用的时间与使用流水线所

用的时间之比称为流水线的加速比

•S=T0/Tk

•各个功能段执行时间均相等的一条k段流水

线完成n个连续任务时的实际加速比为:

S=k*n*At/[(k+n-l)*At]=k*n/(k+n-l)

最大加速比:Smax=k

图5.40:任务个数与加速比的关系

当流水线的各个功能段的执行时间不相等时,

一条k段线性流水线完成n个连续任务时的实际

加速比为:

k

n•):△t,

i=1

S=

k

):△2.+(n-1)-max(,△晨)

i=1

5.23.3效率

效率(efficiency):是指流水线的设备利

用率;在时空图上,流水线的效率定义为n

个任务占用的时空区与k个功能段总的时空

区之比;流水线的效率包括有时间和空间

两方面的因素

E=n个任务占用的时空区/k个流水段的总的

时空区=T0/(k*Tk)

流水线的各段执行时间均相等:

E=k*n*At/[k*(k+n-l)*At]=n/(k+n-l)

Emax=1

E=TP*At,TP=E/At

当时钟周期不变时,流水线的效率与吞吐率成

正比

E=S/k,S=k*E

流水线的效率是流水线实际加速比S与它的最大加

速比k之比

流水线的各段执行时间不相等:

n•):△t,

E=----------------------------------------------------------------------------------------------------------------------------------------

「41

n1

k-IZ+(—)•max(AZt,AZ2,---,△

温馨提示

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

评论

0/150

提交评论