第六章中央控制器(6-7,8,9)_第1页
第六章中央控制器(6-7,8,9)_第2页
第六章中央控制器(6-7,8,9)_第3页
第六章中央控制器(6-7,8,9)_第4页
第六章中央控制器(6-7,8,9)_第5页
已阅读5页,还剩141页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机组成与结构计算机组成与结构本科生课程教学本科生课程教学计算机学院计算机学院q本课程主要讲授计算机系统的硬件和软件构成方法,包括硬件系统中运算器、控制器、存储器、输入设备和输出设备和总线系统的构成原理等;并与当代先进的计算机技术相结合。是计算机科学与技术本科专业核心课程。q 本课程着重计算机系统组成与结构方面的教学和研究。本课程着重计算机系统组成与结构方面的教学和研究。计算机结构定义为系统程序员所能见到的计算机硬件特性;计算机组成是指计算机硬件的具体实现。计算机学院计算机学院q计算机的硬件系统q控制器的组成q微程序控制的计算机q微程序设计技术q硬布线控制的计算机q控制器的控制方式q流水线工

2、作原理流水线工作原理qCPU举例举例q计算机的加电及控制过程计算机的加电及控制过程计算机学院计算机学院q本章主要研究计算机控制器的组成原理。q要求掌握在计算机运行过程中各硬件部件的作用,了解CPU中各部件的操作过程及其实现方法;重点掌握控制器如何实现各指令的功能,如何保证逐条指令的连续执行过程。计算机学院计算机学院q分析程序中各条指令的执行过程可以发现,机器的各部分在某些周期内在进行操作,而在某些周期内是空闲的。q以图6.7的加法指令时序图为例,在四个机器周期内,取指与取数周期访问存储器,而运算器不工作;计算地址与加法运算周期,运算器进行操作而存储器空闲。q如果控制器调度恰当,让各个部件紧张工

3、作,就可提高计算机运行速度,于是在大型计算机中首先研究并采用了流水线结构,如今已推广到小型、微型计算机中。计算机学院计算机学院一、流水线基本工作原理一、流水线基本工作原理q计算机执行程序是按顺序的方式进行的,即程序中各条机器指令是按顺序串行执行的。如按四个周期完成一条指令来考虑,其执行过程如下:计算机学院计算机学院q其中下标1表示第1条指令,下标2表示第2条指令。在某些计算机中在某些计算机中,CPU分成指令部件分成指令部件I和执行部件和执行部件E,指令部件完成取指和指令译码,指令部件完成取指和指令译码等操作,执行部件完成运算和保存结果等操作。等操作,执行部件完成运算和保存结果等操作。q在现代计

4、算机中,指令译码很快,尤其是在现代计算机中,指令译码很快,尤其是RISC机更是这样,因此在机更是这样,因此在前面讨论指令执行过程时,将指令译码的时间忽略了。前面讨论指令执行过程时,将指令译码的时间忽略了。q如按指令部件和执行部件顺序操作来考虑可将程序的执行过程表示成如按指令部件和执行部件顺序操作来考虑可将程序的执行过程表示成:计算机学院计算机学院q顺序执行的优点是控制简单,但是机器各部分的利用率不高。顺序执行的优点是控制简单,但是机器各部分的利用率不高。q例如,指令部件(I)工作时,执行部件(E)基本空闲;而执行部件工作时,指令部件基本空闲。q如果把两条指令或若干条指令在时间上重叠起来进行如图

5、如果把两条指令或若干条指令在时间上重叠起来进行如图6.37所示,将大幅度提高程序的执行速度。所示,将大幅度提高程序的执行速度。计算机学院计算机学院计算机学院计算机学院q从图6.37(a)可以看到,当指令部件完成对第一条指令的操作后,交给执行部件去继续处理,同时进行第二条指令的取指操作。假如每个部件完成操作所需的时间为了,那么尽管每条指令的执行时间为2T,但当第一条指令处理完后,每隔了时间就能得到一条指令的处理结果,相当于把处理速度提高一倍。q在图6.37(b),将一条指令分成4段,若每段所需时间为t,那么一条指令的执行时间为4t,但当第一条指令处理完后每隔时间就能得到一条指令的处理结果,平均速

6、度提高到4倍,其过程相当于现代工业生产装配线上的流水作业,因此把这种处理机称之为流水线处理机。流水线处理机。计算机学院计算机学院二、流水线时空图二、流水线时空图q流水线技术:流水线技术:把一个重复的过程分解为若干个子过程,每个子程序可以与其他子过程同时进行。q描述流水线的工作,最常用的方法是时间-空间图(时空图)横坐标:表示时间,即各个任务在流水线中所经过的时间纵坐标:表示空间,即流水线的各个子过程,也称为级、段、流水线深度(Stage)计算机学院计算机学院q非流水计算机的时空图每每4 4个机器周期才有一个输出结果个机器周期才有一个输出结果计算机学院计算机学院q流水计算机的时空图每个机器周期可

7、以输出一个结果每个机器周期可以输出一个结果计算机学院计算机学院三、流水线的分类三、流水线的分类q从不同的角度和观点,可以把流水线分成多种不同的种类。1、单功能流水线与多功能流水线、单功能流水线与多功能流水线q这是按照流水线所完成的功能来分类的方法。(1)单功能流水线)单功能流水线(unifunction pipelines):只能完成一种固定功能的流水线。计算机学院计算机学院q【例】浮点加法流水线:(把浮点加法的全过程分解为求阶差求阶差、对阶、尾数、相加、规格化、对阶、尾数、相加、规格化4个子过程。 理想情况:速度提速度提高高3倍倍)q若要完成多种功能,可采用多条单功能流水线实现。例如,Cra

8、y-1巨型机有12条单功能流水线。 求阶差求阶差 对对 阶阶 尾数相加尾数相加 规格化规格化 t t t t 入入 出出 计算机学院计算机学院(2)多功能流水线)多功能流水线(multifunction pipelines):流水线的各段可以进行不同的连接,以实现不同的功能。q【例】一个典型例子是流水线处理机(TI ASC)处理机中采用的运算流水线,它有8个功能段,按不同的连接可以实现浮点加减运算和定点乘法运算。如下图所示:计算机学院计算机学院 求求 阶阶 差差 对对 阶阶 相相 加加 规规 格格 化化 相相 乘乘 累累 加加 输输 出出 1 2 3 4 6 5 7 8 输输 入入 输输 入入

9、 相相 加加 规规 格格 化化 输输 出出 输输 出出 累累 加加 相相 乘乘 输输 入入 求求 阶阶 差差 对对 阶阶 2 3 4 5 6 7 8 6 7 8 ( b ) 浮浮 点点 连连 接接 ( a ) 分分 段段 ( c ) 定定 乘乘 连连 接接 1 1 2 3 4 5 计算机学院计算机学院2、静态流水线与动态流水线、静态流水线与动态流水线q按照同一时间内各段之间的连接方式对多功能流水线做进一步的分类的方法。(1)静态流水线)静态流水线(static pipelines):在同一时间内,多功能流水线中的各段只能按同一种功能的连接方式工作。q对于静态流水线来说,只有当输入的是一串相同的

10、运算任务时,流水的效率才能得到充分的发挥。q【例如】上述TI ASC的8段只能是按浮点加减运算连接方式工作,或者按定点乘法运算连接方式工作。当要在n个浮点运算后面进行定点乘法时,必须等最后一个浮点加法(n)做完、流水线排空后,才能改变连接,开始新的运算。如下图所示:计算机学院计算机学院计算机学院计算机学院(2)动态流水线)动态流水线(dynamic pipelines):在同一时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能。如上图所示。 q优点优点: 灵活,能够提高流水线各段的使用率,从而提高处理速度。q缺点缺点: 控制复杂。计算机学院计算机学院3、部件级、处理机级及处理

11、机间流水线、部件级、处理机级及处理机间流水线q按照流水的级别来进行分类的方法。(1)部件级流水线:又称运算)部件级流水线:又称运算流水线流水线q它是指运算操作步骤并行指运算操作步骤并行。把处理机的算术逻辑运算部件分段,使得各种类型的运算操作能够按流水方式进行。如流水线加法器、流水线乘法器等。q【例如】执行浮点加法运算,可以分成“对阶”,“尾数加”及“结果规格化”三段,每一段设置有专门的逻辑电路完成指定操作,并将其输出保存在锁存器中,作为下段的输入,如图6.38所示。q 当浮点加法对阶运算完成后,将结果送入锁存器,然后就可进行下一条浮点指令的阶码运算,实现流水线操作。计算机学院计算机学院计算机学

12、院计算机学院q由于流水线相邻两段在执行不同的指令(或操作),因此无论是指令流水线或运算操作流水线,在相邻两段之间必须设置锁存器或寄存器,以保证在一个周期内流水线的输入信号不变。当流水线各段工作饱满时,能发挥最大作用。q在流水线计算机中,当任务饱满时,任务源源不断地输入流水线,不论有多少级过程段,每隔一个时钟周期都能输出一个任务,从理论上说,一个具有k级过程段的流水线处理n个任务需要的时钟周期数为:Tkk(n1) 计算机学院计算机学院q其中k个时钟周期用于处理第一个任务,k个周期后,流水线被装满,剩余的n1个任务只需n1个周期就完成了。如果用非流水线处理器来处理这n个任务,则所需时钟周期数为:

13、TLnk q我们将TL和Tk的比率定义为k级线性流水处理器的加速比: Ck = TL/ Tkq当nk时,Ck k,这就是说,理论上k级线性流水线处理器几乎可以提高k倍速度。但实际上由于存储器冲突、数据相关、程序分支和中断,这个理想的加速比不一定能达到。计算机学院计算机学院q【例如】假设一条指令的解释分为取指、分析与执行3步,每步相应的时间为t取指、t分析和t执行,分析以下三种情况下执行完50条指令所需时间的一般关系式。 (1) 顺序方式。 (2) 如果“执行k”与“取指k1 ”重叠。 (3) 如果“执行k”、“分析k1”与 “取指k2”重叠。q【解答】 (K1)取指与K执行重叠如下图(a);

14、(K2)取指、(K1)分析、K执行重叠如下图(b)。计算机学院计算机学院 第1条 取指 分析 执行 第2条 取指 分析 执行 第3条 取指 分析 执行 第48条 取指 分析 执行 第49条 取指 分析 执行 第50条 取指 分析 执行 (a) (K1)取指与K执行重叠50条指令执行情况 计算机学院计算机学院. 取指 分析 执行 第1条 取指 分析 执行 第2条 取指 分析 执行 第3条 取指 分析 执行 第4条 取指 分析 执行 第47条 取指 分析 执行 第48条 取指 分析 执行 第49条 取指 分析 执行 第50条 ( (b b) ) (K2)取指、(Kl)分析、K执行重叠时50条指令执

15、行情况 计算机学院计算机学院q(1) 顺序方式50条指令需要: 50(T取T分T执)。q(2) 100条指令需要: T取50T分49 max(T取,T执)T执q(3) 50条指令需要: T取max(T分,T取)48max(T执,T分,T取)max(T执,T分)T执计算机学院计算机学院q【例】指令流水线有取指(IF:Instruction Fetch)、译码(ID: Instruction Decode)、执行(EX: Execute)、访存(MEM: Memory Access)、写回寄存器堆(WB: Write Back)五个过程段,共有12条指令连续输入此流水线。 (1) 画出流水处理的时

16、空图,假设时钟周期100ns。 (2) 求流水线的实际吞吐率(单位时间里执行完毕的指令数)。 (3) 求流水处理器的加速比。q【解答】 (1) 12条指令连续进入流水线的时空图如下:计算机学院计算机学院 IF ID EX MEM WB 第 1 条 IF ID EX MEM WB 第 2 条 IF ID EX MEM WB 第 3 条 IF ID EX MEM WB 第 4 条 IF ID EX MEM WB 第 5 条 IF ID EX MEM WB 第 6 条 IF ID EX MEM WB 第 7 条 IF ID EX MEM WB 第 8 条 IF ID EX MEM WB 第 9 条

17、IF ID EX MEM WB 第 10 条 IF ID EX MEM WB 第11条 IF ID EX MEM WB 第12条 12条指令连续进入流水线的时空图 计算机学院计算机学院q(2) 流水线在16个时钟周期中执行完12条指令,故实际吞吐率为 12/(16100ns)=75 105 条指令sq(3) k级流水线处理n个任务所需的时钟周期数为:Tk=k(n1) 非流水处理器处理n个任务所需的时钟周期周期数为:TL=nk k级流水线处理器的加速比为Ck=TL/Tk=nk/(k(n1) 代入已知数据 n=12 , k=5, 则Ck = 125/(511)=60/16=3.75计算机学院计算机

18、学院(2)处理机级流水线:又称)处理机级流水线:又称指令流水线指令流水线q它是指指令步骤并行指指令步骤并行。把指令的解释执行过程按照流水方式处理。把一条指令的执行过程分解为若干个子过程,每个子过程在独立的功能部件中执行。q例如将指令流的处理过程划分为取指、译码、取操作数、执行这几个并行处理的过程段,如图6.37所示。在程序开始执行时,由于流水线未装满,有的功能部件没有工作,速度较低;在图6.37(b)中,在开始3t时间内得不到指令的处理结果,因此只有在流水线装满的稳定状态下,才能保证最高处理速率。计算机学院计算机学院q 当将一条指令的执行过程分成4段,每段有各自的功能部件执行时,每个功能部件的

19、执行时间是不可能完全相等的。例如,从存储器取指或取数的时间与运算时间可能就不一样,而在流水线装满的情况下,各个功能部件同时都在工作,为了保证完成指定的操作,t值应取4段中最长的时间,此时有些功能段便会长时间处于等待状态,而达不到所有功能段全面忙碌的要求,影响流水线作用的发挥。为了解决这一问题可采用将几个时间较短的功能段合并成一个功能段或将时间较长的功能段分成几段等方法,其目的是最终使各段所需的时间相差不大。q 图6.37(a)为两级流水线,(b)为4级流水线。q 目前,几乎所有的高性能计算机都采用了指令流水。计算机学院计算机学院(3)处理机间的流水线:又称)处理机间的流水线:又称宏流水线宏流水

20、线q处理机间流水线又称为宏流水线,是指程序步骤的并行指程序步骤的并行。它是由两个或者两个以上的处理机串行连接起来,对同一数据流进行处理,每个处理机完成整个任务中的一部分。q它由一串级联的处理机构成流水线的各个过程段,每台处理机负责某一特定的任务,数据流从第一台处理机输入,经处理后被送入与第二台处理机相联的缓冲存储器中;第二台处理机从该存储器中取出数据进行处理,然后传送给第三台处理机;如此串联下去。 如下图所示:计算机学院计算机学院 数据流数据流 处理机处理机 1 处理机处理机 2 处理机处理机 n 存储器存储器 存储器存储器 存储器存储器 任务任务 1 任务任务 2 任务任务 n 计算机学院计

21、算机学院4、线性流水线与非线性流水线、线性流水线与非线性流水线q按照流水线中是否有反馈回路来进行分类的方法。(1)线性流水线)线性流水线(linear pipelines):q流水线的各段串行连接,没有反馈回路。数据通过流水线中的各段时,每一个段最多只流过一次。(2)非线性流水线)非线性流水线(nonlinear pipelines):q流水线中除了有串行的连接外,还有反馈回路。q非线性流水线的调度问题:确定什么时候向流水线引进新的任务,才能使该任务不会与先前进入流水线的任务发生冲突争争用流水段。用流水段。计算机学院计算机学院计算机学院计算机学院5、顺序流水线与乱序流水线、顺序流水线与乱序流水

22、线q根据任务流入和流出的顺序是否相同来进行分类的方法。(1)顺序流水线)顺序流水线(in-order pipelines):流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。每一个任务在流水线的各段中是一个跟着一个顺序流动的。(2)乱序流水线)乱序流水线(out-of-order pipelines):流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,允许后进入流水 线的任务先完成(从输出端流出)。也称为无序流水线、错序流水线、异步流水线。计算机学院计算机学院四、流水线中的相关问题四、流水线中的相关问题q流水线不能连续工作的原因,除了编译形成的程序不能发挥流水线的作用或存储器供

23、应不上为连续流动所需的指令和数据以外,还因为出现了“相关相关”情况或遇到了程序转移指令。q流水线中存在一些相关(冲突、冒险Hazard,相关、依赖Dependence,竞争Competition)的情况,它使得下一条指令无法在设计的时钟周期内执行。这些相关将降低流水线性能。计算机学院计算机学院q主要有三种类型的相关(冲突)主要有三种类型的相关(冲突)结构相关(资源冲突):结构相关(资源冲突):当指令重叠执行过程中,硬件资源满足不了指令重叠执行的要求。数据相关(数据冲突)数据相关(数据冲突) :在同时执行的多条指令中,一条指令依赖前一条指令的执行结果(数据)却无法得到。控制相关(控制冲突):控制

24、相关(控制冲突):流水线遇到分支指令或其他改变PC值的指令。计算机学院计算机学院1 1、资源相关、资源相关q资源相关资源相关是指多条指令进入流水线后,在同一机器时钟周期内是指多条指令进入流水线后,在同一机器时钟周期内争用同一个功能部件所发生的冲突。争用同一个功能部件所发生的冲突。 【例例】假定一条指令流水线由五段组成,且仅有假定一条指令流水线由五段组成,且仅有IF过程和过程和MEM过过程需要访问存储器程需要访问存储器 。计算机学院计算机学院I1与I4两条指令在时钟4争用存储器资源的相关冲突计算机学院计算机学院2 2、数据相关、数据相关【例例】ADD R1, R2, R3; R2R3R1 SUB

25、 R4, R1, R5; R1R5R4 AND R6, R1, R7; R1R7R0指令发生数据相关冲突 计算机学院计算机学院q【例如】在图6.37(b)的4级流水线中,假如第2条指令的操作数地址即为第一条指令保存结果的地址,那么取操作数2的动作需要等待t时间才能进行,否则取得的数据是错误的,这种情况称这种情况称为数据相关,该数据可以是存放在存储器中或通用寄存器中,为数据相关,该数据可以是存放在存储器中或通用寄存器中,分别称为存储器数据相关或寄存器数据相关。分别称为存储器数据相关或寄存器数据相关。此时流水线中指令流动情况将如图6.39(a)所示。计算机学院计算机学院计算机学院计算机学院q为了改

26、善流水线工作情况,一般设置相关专用通路,即当发生为了改善流水线工作情况,一般设置相关专用通路,即当发生数据相关时,第数据相关时,第2条指令的操作数直接从数据处理部件得到,而条指令的操作数直接从数据处理部件得到,而不是存入后再读取,这样指令能按图不是存入后再读取,这样指令能按图6.39(b)流动。流动。由于数据不相关时,仍需到存储器或寄存器中取数,因此增加了控制的复杂性。另外由于计算机内有较多指令存在,其繁简程度不一,执行时间及流水线级数不同,相关的情况各异,有时避免不了产生不能连续工作的情况,这种现象称为流水线阻塞或产生了“气泡”。q一般来说,流水线级数越多,情况越复杂,而两级流水线则不一般来

27、说,流水线级数越多,情况越复杂,而两级流水线则不存在数据相关现象。存在数据相关现象。计算机学院计算机学院3 3、控制相关、控制相关q控制相关冲突由转移指令(分支指令)引起q执行转移指令时,依据转移条件的产生结果可能为顺序取下条指令也可能转移到新的目标地址取指令地址不定,流水线需要暂停、发生断流q转移指令主要有:无条件转移指令:跳转、过程调用和返回条件分支指令 计算机学院计算机学院五、程序转移对流水线的影响五、程序转移对流水线的影响q在大多数流水线机器中,当遇到条件转移指令时,确定转移与否的条件码往往由条件转移指令本身或由它前一条指令形成,只有当它流出流水线时,才能建立转移条件并决定下条指令地址

28、。q因此当条件转移指令进入流水线后直到确定下一地址之前,流水线不能继续处理后面的指令而处于等待状态,因而影响流水线效率。计算机学院计算机学院q 在某些计算机中采用了“猜测法猜测法”技术技术,机器先选定转移分支中的一个,按它继续取指并处理,假如条件码生成后,说明猜测是正确的,那么流水线可继续进行下去,时间得到充分利用,假如猜错了,那么要返回分支点,并要保证在分支点后已进行的工作不能破坏原有现场,否则将产生错误。q 编译程序可根据硬件上采取的措施,使猜测正确的概率尽量高些。计算机学院计算机学院q 在计算机运行时,当IO设备有中断请求或机器有故障时,要求中止当前程序的执行而转入中断处理。在流水线机器

29、中,在流水线中存在几条指令,因此就有一个如何“断流断流”的问题。q 当IO系统提出中断时,可以考虑把流水线中的指令全部完成,而新指令则按中断程序要求取出;但当出现诸如地址错、存储器错、运算错而中断时,假如这些错误是由第i条指令发生的,那么在其后的虽已进入流水线的第i+1条指令、第i十2条指令,.也是不应该再执行的。计算机学院计算机学院q 流水线机器处理中断的方法有两种:不精确断点法不精确断点法和精确断点法精确断点法。q 有些机器为简化中断处理,采用了“不精确断点法不精确断点法”,对那时还未进入流水线的后续指令不允许其再进入,但已在流水线中的所有指令则仍执行完毕,然后转入中断处理程序。q 由于集

30、成电路的发展,允许增加硬件的复杂性,因此当前大部分流水线计算机采用“精确断点法精确断点法”,即不待已进入流水线的指令执行完毕,尽早转入中断处理。计算机学院计算机学院q【例如】流水线中有三类数据相关冲突:写后读(RAW)相关;读后写(WAR)相关;写后写(WAW)相关。判断以下三组指令各存在哪种类型的数据相关。q(1) I1 ADD R1,R2,R3 ; (R2R3)R1 I2 SUB R4,R1,R5 ; (R1R5)R4q(2) I3 STA M(x),R3 ; (R3) M(x), M(x)是存储器单元 I4 ADD R3,R4, R5 ; (R4R5)R3q(3) I5 MUL R3,R

31、1,R2 ; (R1)(R2) R3 I6 ADD R3,R4,R5 ; (R4R5)R3计算机学院计算机学院q【解答】:q第(1)组指令中,I1指令运算结果应先写入R1,然后在I2指令中读出R1内容。由于I2指令进入流水线,变成I2指令在I1指令写入R1前就读出R1内容,发生RAW相关。q第(2)组指令中,I3指令应先读出R3内容并存入存储单元M(x),然后在I4指令中将运算结果写入R3。但由于I4指令进入流水线,变成I4指令在I3指令读出R3内容前就写入R3,发生WAR相关。q第(3)组指令中,如果I6指令的加法运算完成时间早于I5指令的乘法运算时间,变成指令I6在指令I5写入R3前就写入

32、R3,导致R3的内容错误,发生WAW相关。计算机学院计算机学院六、流水线中的多发技术六、流水线中的多发技术q进一步改进指令流水线,实现一个时钟周期发射(流出issue)多条指令q超标量超标量(Super Scalar)处理器:处理器:每个时钟周期发射多条指令(18)q超长指令字超长指令字(VLIW: Very Long Instruction Word):通过编译器调度无关的多条指令(416)形成一条长指令,每个时钟周期发射一条长指令q超级流水线超级流水线(Super Pipe Lining):将每个功能部件进一步流水化,使得一个功能部件在一个时钟周期中可以处理多条指令(可以简单地理解为很长的

33、流水线)计算机学院计算机学院q多发射流水线01234567T正常流水线正常流水线超标量流水线超标量流水线0123456T0123456T超长指令字流水线超长指令字流水线3个操作个操作01234567T超级流水线超级流水线计算机学院计算机学院1 1、超标量流水技术、超标量流水技术q超标量技术是指在每个时钟周期内可同时并发多条独立指令,即以并行操作方式将两条或两条以上的指令编译执行。q实现超标量技术,要求处理机中配置多个功能部件和指令译码器,以及多个寄存器端口和总线,以便能实现同时执行多个操作,此外还要编译程序决定哪几条相邻指令可并行执行。计算机学院计算机学院q【例如】下面两个程序段: 程序段1:

34、 程序段2: MOV BL,8 INC AX ADD AX,1756H ADD AX,BX ADD CL,4EH MOV DS,AXq程序段1中的3条指令相互独立,不存在数据相关,可实现指令级并行;程序段2中存在数据相关,不能并行执行。超标量计算机不能重新安排指令的执行顺序,但可以通过编译优化。计算机学院计算机学院2 2、超流水线技术、超流水线技术q超流水线技术是将一些流水线寄存器插入到流水线段中,好比流水线再分段,使流水线的处理周期比普通流水线的处理周期短,这样在原来的时钟周期内,功能部件被使用多次,使流水线N倍于原来时钟周期的速度运行。3 3、超长指令字技术、超长指令字技术q超长指令字(V

35、LIW)技术和超标量技术都是采用多条指令在多个部件中并行处理,在一个时钟周期内能流出多条指令。超标量的指令来自同一标准指令流,VLIW则由编译程序在编译时挖掘出指令间潜在的并行性后,把多条能并行操作的指令组合成一条具有多个操作码字段的超长指令,由它控制VLIW机中多个独立工作的功能部件。VLIW比超标量具有更高的并行处理能力,对优化编译器的要求更高,对Cache的容量要求更大。计算机学院计算机学院七、指令的调度策略七、指令的调度策略q简单指令流水线技术的一个主要局限:指令顺序发射指令顺序发射(in-order issue)按序发射按序发射指令顺序执行指令顺序执行(in-order execut

36、ion)如果一条指令在流水线中,与之相关的指令及其后面的指令都不能进行处理。q改进指令流水线,只要指令操作数就绪就执行,指令乱序执行指令乱序执行(out-of-order execution)指令乱序结束指令乱序结束(out-of-order completion)计算机学院计算机学院q为了减少指令相关性对执行速度的影响,可在保证程序正确性的前提下调整指令的顺序,即进行指令调度。指令调度可以由编译程序进行,也可以由硬件在执行的时候进行,分别称为静态指令调度和动态指令调度。1.1.静态指令调度静态指令调度q编译程序可以通过调整指令的顺序来提高程序的执行速度。q例如,下面C程序: for(i=1;

37、ik k时,才有时,才有TPTPTPTPmaxmax。 计算机学院计算机学院q(2)(2)各段时间不完全相等的流水线各段时间不完全相等的流水线 各段时间不等的流水线及其时空图,如下图所示。各段时间不等的流水线及其时空图,如下图所示。 一条一条4 4段段的流水线的流水线S1S1,S3S3,S4S4各段的时间:各段的时间:t tS2S2的时间:的时间:33t t (瓶颈段)瓶颈段)流水线中这种时间最长的段称为流水线的流水线中这种时间最长的段称为流水线的瓶颈段。瓶颈段。 计算机学院计算机学院计算机学院计算机学院q各段时间不等的流水线的实际吞吐率:各段时间不等的流水线的实际吞吐率: ( t ti i为

38、第为第i i段的时间,共有段的时间,共有k k个段个段 )流水线的最大吞吐率为kikitttntnTP121),max() 1(),max(121maxktttTP计算机学院计算机学院q【例如】一条4段的流水线中,S1,S2,S4各段的时间都是t,唯有S3的时间是3t。 q 最大吞吐率为 S1 S3 S2 S4 入入 出出 t t 3t t tTP31max计算机学院计算机学院2 2、加速比、加速比q加速比:加速比:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比。q假设:假设:不使用流水线(即顺序执行)所用的间为Ts,使用流水线后所用的时间为Tk,则该流水线的加速比为ksT

39、TS 计算机学院计算机学院q(1)流水线各段时间相等(都是流水线各段时间相等(都是t t)一条一条k k段流水线完成段流水线完成n n个连续任务个连续任务 所需要的时间为所需要的时间为 T Tk k = ( = (k kn n-1)-1)t t顺序执行顺序执行n n个个任务任务 所需要的时间:所需要的时间: T Ts s= = nknkt t流水线的实际加速比为:流水线的实际加速比为:1nknkS计算机学院计算机学院q最大加速比最大加速比: :knknkSn1limmax当当n nk k时,时,S S k k思考:思考:流水线的段数愈多愈好?流水线的段数愈多愈好? 计算机学院计算机学院q(2)

40、流水线的各段时间不完全相等时流水线的各段时间不完全相等时一条k段流水线完成n个连续任务的实际加速比为kikikiitttnttnS1211),max() 1(计算机学院计算机学院3 3、效率、效率q效率:流水线中的设备实际使用时间与整个运行时间的比值,即流水线设备的利用率。 由于流水线有通过时间和排空时间,所以在连续完成n个任务的时间内,各段并不是满负荷地工作。q(1 1)各段时间相等)各段时间相等各段的效率各段的效率e ei i相同相同121nknTtneeekk计算机学院计算机学院q整条流水线的效率为整条流水线的效率为q可以写成可以写成q 最高效率为最高效率为kkkTtknkkekeeeE

41、1211nknE11limmaxnknEn 当当n nk k时,时,E E11。 计算机学院计算机学院q当流水线各段时间相等时,流水线的效率与吞吐率成正比。 E E= =TPTPt t q(2 2)流水线的效率是流水线的实际加速比)流水线的效率是流水线的实际加速比S S与它的最大加速比与它的最大加速比k k的比的比值。值。 当当E E=1=1时,时,S S= =k k,实际加速比达到最大,实际加速比达到最大。kSE 计算机学院计算机学院q(3 3)从时空图上看,效率就是)从时空图上看,效率就是n n个任务占用的时空面积和个任务占用的时空面积和k k个段总的个段总的时空面积之比。时空面积之比。q

42、当各段时间不相等时当各段时间不相等时个段总的时空区区个任务实际占用的时空knE kikikiitttntktnE1211),max() 1(计算机学院计算机学院q流水线的性能分析举例流水线的性能分析举例q【例】设在下图所示的静态流水线上计算: 流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中,试计算其吞吐率、加速比和效率。)(41iiiBA 1 2 3 4 5 乘法乘法 加减法加减法 6 7 8 ( (每段的时间都为每段的时间都为t t) )计算机学院计算机学院q解解:(:(1 1)选择适合于流水线工作的算法选择适合于流水线工作的算法先计算先计算A A1 1+ +B B1 1、A A2

43、 2+ +B B2 2、A A3 3+ +B B3 3和和A A4 4+ +B B4 4;再计算再计算( (A A1 1+ +B B1 1) )( (A A2 2+ +B B2 2) )和和( (A A3 3+ +B B3 3) )( (A A4 4+ +B B4 4) );然后求总的乘积结果。然后求总的乘积结果。 (2 2)画出时空图)画出时空图 计算机学院计算机学院 时间 段 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 输 入 A1 B1 A2 B2 A3 B3 A4 B4 A B C D A B C D A

44、B CD AB CD ABCD A=A1+B1 B=A2+B2 C=A3+B3 D=A4+B4 tTP18721836ttS25. 01884364E计算机学院计算机学院q(3)计算性能)计算性能q在在1818个个t t时间中,给出了时间中,给出了7 7个个结果。吞吐率为:结果。吞吐率为:q不用流水线,由于一次求和需不用流水线,由于一次求和需6 6t t,一次求积需一次求积需4 4t t, 则产生上述则产生上述7 7个结果共需个结果共需(4 46+36+34 4)t t = 36 = 36t t 加速比为加速比为tTP18721836ttS计算机学院计算机学院q 流水线的效率流水线的效率 q可

45、以看出,在求解此问题时,该流水线的效率不高。主要原因主要原因多功能流水线在做某一种运算时,总有一些段是空闲的。静态流水线在进行功能切换时,要等前一种运算全部流出流水线后才能进行后面的运算。运算之间存在关联,后面有些运算要用到前面运算的结果。流水线的工作过程有建立与排空部分。 25. 01884364E计算机学院计算机学院q【例】有一条动态多功能流水线由有一条动态多功能流水线由5 5段组成,加法用段组成,加法用1 1、3 3、4 4、5 5段,乘法用段,乘法用1 1、2 2、5 5段,第段,第2 2段的时间为段的时间为2 2t t,其余各段时间,其余各段时间均为均为t t,而且流水线的输出可以直

46、接返回输入端或暂存于相,而且流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中。若在该流水线上计算应的流水寄存器中。若在该流水线上计算: : 试计算其吞吐率、加速比和效率。试计算其吞吐率、加速比和效率。)(41iiiBA 1 2 3 4 5 乘法乘法 加法加法 t 2t t t t 计算机学院计算机学院q解解: (1) : (1) 选择适合于流水线工作的算法选择适合于流水线工作的算法p应先计算应先计算A A1 1B B1 1、A A2 2B B2 2、A A3 3B B3 3和和A A4 4B B4 4;p再计算再计算( (A A1 1B B1)1)( (A A2 2B B2)2) (

47、(A A3 3B B3)3)( (A A4 4B B4)4);p然后求总的累加结果。然后求总的累加结果。 (2) (2) 画出时空图画出时空图 (3) (3) 计算性能计算性能计算机学院计算机学院 时间 段 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 输 入 A1 B1 A2 B2 A3 B3 A4 B4 A B C D A B C D AB CD AB CD ABCD A=A1B1 B=A2B2 C=A3B3 D=A4B4 18 56. 11828ttStTP18731. 01854344E计算机学院计算机学院一、一、RISCR

48、ISC的的CPUCPUq本节主要以Sun微系统公司的SPARC结构为例来说明PU(RISC)的构成,并进一步讲述一些基本原理。qSPARC是Scalarable Processor ARChitecture的缩写。其指令系统已在第5章中介绍过。q在RISC机的指令系统已确定的前提下,为了达到高速运算的目的,在硬件实施方面采取流水线组织尽量使大多数指令在一个机器周期内完成,并尽量缩短机器周期时间。 计算机学院计算机学院q SPARC的体系结构是Sun微系统公司设计的,但Sun微系统公司本身并不进行集成电路设计,也不进行生产,而有多家半导体厂商为之生产,如:Fujitsu公司、Cypress/Ro

49、ss 公司、德州仪器公司、LSI Logic公司等。1 1、SPARCSPARC的逻辑图的逻辑图q图6.40是Fujitsu公司于1989年生产的基于SPARC的MB86901芯片的逻辑框图,主频为25MHz。图6.40的右半部分基本上是运算器,左半部分为控制器。计算机学院计算机学院计算机学院计算机学院qALU是32位算术逻辑运算部件。qShifter是移位器,在一个机器周期内可完成031 位之间的任意位移位操作。q寄存器组RegFile(或称寄存器集、寄存器文件)的容量为120X 32位。算术逻辑指令的源操作数来自寄存器组,运算结果也送往寄存器组。qResult为结果寄存器,ALU及Shif

50、ter的处理结果先保存于此,然后送往寄存器组。另外来自存储器的数据D以及送往存储器的数据D也是经过Result寄存器再传送的。qAlign为对齐电路,SPARC 支持存取字节和存取半字操作,但是字节与半字的数据存放格式在存储器中与在寄存器中 有不同的规定。计算机学院计算机学院q例如,字节在寄存器组中只允许存放在一个字的最低字节位置(其他三字节为“空”),而在存储器中则可存放在一个字的4个字节中的任一字节位置,为此加入Align 电路来调整位置。q图6.40的左上角为一组指令寄存器,而前面所讲的CPU中只有一个指令寄存器,这是因为采用流水线工作方式,几条指令同时执行的缘故。在流水线的每一级都应该

51、有一相应的指令寄存器(图中的D,E,W)以保持每一级工作的独立性。D1,B。是两个指令缓冲寄存器。Addr,Gen为地址生成器,具有加法功能,在此形成指令地址或数据地址送往存储器,并将此地址保存在ADR寄存器中,如果为指令地址,则在下一节拍送往DPC,如为数据地址,则不送DPC。DPC,EPF和WPC是一组程序计数器,存放的是分别与D,E,W指令寄存器内容相对应的指令地址。Control(控制)部件根据指令内容产生控制信号,采用硬布线控制技术实现。计算机学院计算机学院q图6.40中有4个专用寄存器: Y寄存器用来配合进行乘法运算。 TBR提供中断程序入口地址的高位部分。 WIM中存放的是与寄存

52、器组有关的窗口寄存器编号,此内容将在后面讨论。 PSR为程序状态寄存器,共有32位,安排如下:计算机学院计算机学院q第31位 24位:IMPL,ver在某些SPARC芯片中恒为“0”。q第23位20位:为整数条件码,包括N(负数)、Z(零)、V(溢出)和C(进位),根据运算结果置成1或0。q第19位14位:保留。q第13位:EC。当EC=1时,允许协处理器工作;当EC0时,不允许协处理器工作。SPARC是一个整数运算部件,允许有一个浮点部件和一个协处理器部件配合它一起工作。当SPARC取到一条浮点指令或协处理器指令时,将转交给相应部件执行。若取到一条协处理器指令而EC0,或者此计算机系统没有配

53、备协处理器,计算机将进入陷阱,执行Trap程序,依靠程序完成这条指令的功能。计算机学院计算机学院q第12位:EF。当EF1时,允许浮点部件工作;当EF=0时,不允许浮点部件工作。当SPARC取到一条浮点指令,而EF=0,或者计算机没配置浮点部件,计算机将进入陷阱,执行Trap程序。q第11位8位:PIL。当前处理器的中断级,用于屏蔽某些中断。只有当提出中断请求的中断源级别高于PIL的值时,CPU才予以响应。q第7位:S。管理方式。当S=1时,处理器处于管理方式,允许执行系统程序和用户程序;当S=0时,处理器处于用户方式,只允许执行用户程序。q第6位:PS。保存以前的S值。当产生陷阱Trap时,

54、将S值保留在PS中;当从陷阱返回时,将PS送回S,恢复原来工作方式(管理方式或用户方式)。q第5位:ET。允许中断。当ET1时,允许响应中断;ET=0时,不允许响应中断。q第40位:CWP。当前窗口寄存器。在本节中还要作进一步讨论。q可以看到PSR的内容将影响整机工作,一般不允许用户修改,因此SPARC的“写PSR”指令为特权指令。计算机学院计算机学院2 2、RISCRISC的通用寄存器的通用寄存器q据统计,在据统计,在CISCCISC中,当程序运行时,访问存储器的指令占总数中,当程序运行时,访问存储器的指令占总数一半以上一半以上( (有时达有时达7070) ),增加寄存器数可减少访存次数。,

55、增加寄存器数可减少访存次数。 怎样使用寄存器,不同的RISC机采取不同的策略。例如,SPARC,Pyramid等机器着重于硬件解决,采用较大容量的寄存器组,组成若干个窗口,并利用重叠寄存器窗口技术来加快程序的运转;MIPS和HPPA等机器则偏重于软件解决,利用一套分配寄存器的算法以及编译程序的优化处理来充分利用寄存器资源。寄存器数量及管理策略不同的会影响访问存储器指令在总指令数中所占的比例。这里主要讨论硬件解决方法。qFujitsuFujitsu公司的公司的MB86901MB86901的寄存器组内有的寄存器组内有120120个寄存器,分成个寄存器,分成7 7个窗口。个窗口。计算机学院计算机学院

56、qSPARC机指令的寄存器地址码字段长度为5位,允许访问32个寄存器,称之为逻辑寄存器。在计算机运行时,有些数据是整个程序都要用到的,称为全局数据,有些数据限于当前程序段所用(类似PASCAL程序中的过程或函数)称为局部数据;同样,所有程序段都能访问的寄存器称为全局寄存器,限于一个程序段所用的寄存器称为局部寄存器。qSPARC机将32个逻辑寄存器分成两部分:其中8个称为全局寄存器(逻辑地址07),和其余24个寄存器(逻辑地址831)组成一个窗口(window)。计算机学院计算机学院q通常在CISC机中,当程序调用过程或子程序时需要传递二些数据,并将原程序中的某些寄存器中的数据保存于存储器或堆栈

57、中,以便腾出寄存器给被调用的过程或子程序使用。当从被调用过程或子程序返回原程序时要恢复原寄存器的内容;为此设置调用(Call)和返回(Return)指令,分别完成上述调用与返回时所需进行的工作。据加州伯克莱大学对用C语言编写的程序所作的统计,Call/Return语句约占语句总数的12,而每条Call/Return语句耍访问存储器多次,所以这类指令占总的存储器访问次数的45左右,处理好Call/Return指令对提高机器速度的影响很大。SPARC利用寄存器组而不是存储器来完成上述的传递参数和保留、恢复现场工作,并采用改变窗口指针的办法而省略了在寄存器之间传送的操作,因此使速度大为加快。计算机学

58、院计算机学院qSPARC允许设置若干个窗口(632个之间),窗口数取决于硬件设计者所选定的物理 (实际)寄存器数量。有一个指针指出当前程序所访问的窗口号,在指令地址所指出的32个 逻辑寄存器中,ror7为全局寄存器,r8r31)为一个窗口中的24个寄存器,并将它分成输入ins(r24r31)、局部locals(r L16一r23)和输出outs (r8r15)三部分。q图6.41表示三个过程A,B,C所占用的寄存器以及逻辑寄存器和物理寄存器的对应关系(举例)。图中过程A调用过程B,过程B调用过程C,为三层嵌套程序,全局寄存器(物 理寄存器)为三个过程公用,逻辑寄存器与物理寄存器的关系如表6.5

59、所示。计算机学院计算机学院计算机学院计算机学院q 当过程A调用过程B时,将要传递的参数预先送入outs部分(逻辑寄存器r8r15),即物理寄存器r40r47,过程A所用的局部数据仍留在locals部分,即物理寄存器r48r55,然后调用过程B。由于过程A的outs与过程B的ins的物理寄存器重叠,因此过程B可直接从r40r47取得参数,然后使用它自己的局部寄存器locals(逻辑寄存器r16r23,物理寄存器f32一r39),由于它所用的物理寄存器与过程A不同,所以不必保存现场;同样,当过程B调用过程C时,将输出参数送到过程B的outs部分,也就是过程C的ins部分。计算机学院计算机学院q下面

60、我们讨论程序返回时的情况:下面我们讨论程序返回时的情况:当从过程C返回到过程B时,将返回参数送入过程C的ins,由于寄存器窗口重叠,因此过程B可直接从它本身窗口的outs部分得到返回参数。由上述方法实现程序嵌套时,Call/Return指令操作非常简单,不需要为传递参数以及保留恢复现场而访问存储器,因而可用一个机器周期完成指令所规定的操作。q每一窗口给一编号,且予以循环处理。MB86901有7个窗口,编号从06(W0W6),那么第5窗口的上一窗口为6;而第6窗口的上一窗口编号为0。q上例假设每个窗口的ins,locals,outs三个部分各为8个寄存器,可根据需要调整。计算机学院计算机学院q逻

温馨提示

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

评论

0/150

提交评论