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

下载本文档

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

文档简介

1、第五章流水和指令级高度并行的超级机5.1 重叠方式5.2 流水方式5.3向量的流水处理与向量流水处理机5.4 指令级高度并行的超级处理机只有标量数据表示和标量指令系统的处理机称为标量处理机提高指令执行速度的主要途径:(1) 提高处理机的工作主频(2) 采用更好的算法和设计更好的功能部件(3) 采用指令级并行技术三种指令级并行处理机:(1) 流水线处理机和超流水线(Super- pipelining)处理机(2) 超标量(Superscalar)处理机(3) 超长指令字(VLIW: Very Long Instruction Word)处理机 (4)超标量超流水线处理机5.1重叠方式指令的重叠解

2、释使机器语言程序的执行速度会比采用顺序解释有较大的提高。一条指令的执行过程可以分为多个阶段,如:取指分析执行可以有多种处理方式:5.1.1重叠原理与一次重叠1、顺序执行方式执行n条指令所用的时间为:如果每段时间都为t,则执行n条指令所用的时间为: T=3ntniiiitttT1()执行分析取指令取指令k 分析k 执行k 取指令k+1 分析k+1执行k+1主要优点:控制简单,节省设备。主要缺点:执行指令的速度慢,功能部件的利用率很低。2、一次重叠执行方式一种最简单的流水线方式如果两个过程的时间相等,则执行n条指令的时间为:T=(1+2n)t取指 分析 执行取指 分析 执行取指 分析 执行主要优点

3、:指令的执行时间缩短功能部件的利用率明显提高主要缺点:需要增加一些硬件控制过程稍复杂3、二次重叠执行方式如果三过程的时间相等,执行n条指令的时间为:T=(2+n)t理想情况下同时有三条指令在执行处理机的结构要作比较大的改变,必须采用先行控制方式取指k+2 分析k+2 执行k+2取指k+1 分析k+1 执行k+1取指k分析k执行k1 1、采用指令的重叠执行方式,必须解决几个问题:、采用指令的重叠执行方式,必须解决几个问题: (1) (1) 要解决访问主存储器的冲突问题要解决访问主存储器的冲突问题 取指令、分析指令、执行指令都可能要访问存储器 ( (2) 2) 要解决要解决“分析分析”与与“执行执

4、行”操作的并行操作的并行 有独立的取指令部件、指令分析部件和指令执行部件 独立的控制器: 存储控制器、指令控制器、运算控制器存储控制器、指令控制器、运算控制器 ( (3) 3) 要解决要解决“分析分析”与与“执行执行”操作控制上的同步操作控制上的同步 需在硬件中解决控制上的同步,保证任何时候只是“执 行”与“分析”重叠。 (4)(4) 要解决指令间各种相关的处理。 解决访存冲突的方法:解决访存冲突的方法:(1) (1) 采用低位交叉存取方式采用低位交叉存取方式 这种方法不能根本解决冲突问题。这种方法不能根本解决冲突问题。 取指令、读操作数、写结果。取指令、读操作数、写结果。(2) (2) 两个

5、独立的存储器两个独立的存储器:独立的指令存储器和数据存储器。独立的指令存储器和数据存储器。如果再规定,执行指令所需要的操作数和执行结果只写到如果再规定,执行指令所需要的操作数和执行结果只写到通用寄存器,那么,取指令、分析指令和执行指令就可以通用寄存器,那么,取指令、分析指令和执行指令就可以同时进行。同时进行。 在许多高性能处理机中,有独立的指令在许多高性能处理机中,有独立的指令CacheCache和数据和数据CacheCache。 这种结构被称为这种结构被称为哈佛结构。哈佛结构。 (3) (3) 采用先行控制技术。采用先行控制技术。 先行控制技术的关键是先行控制技术的关键是缓冲技术缓冲技术和和

6、预处理技术预处理技术。 缓冲技术是在工作速度不固定的两个功能部件之间设置缓缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲栈,用以平滑它们的工作。冲栈,用以平滑它们的工作。 在采用了缓冲技术和预处理技术之后,运算器能够专心于在采用了缓冲技术和预处理技术之后,运算器能够专心于数据的运算,从而大幅度提高程序的执行速度。数据的运算,从而大幅度提高程序的执行速度。解决指令间各种相关的处理解决指令间各种相关的处理什么是相关?什么是相关?分析k执行k分析k+1结果转移不成功取指k+1执行k+1当转移成功且指令m在指缓中时分析m取指m执行m当转移成功且指令m不在指缓中分析m执行m取指m1转移指令的处理5

7、.1.2 相关处理相关处理 如果采用Von Neumann型机器上指令可修改的办法经第k条指令的执行来形成第k+1条指令,如 k: 存 通用寄存器, k+1; (通用寄存器)k+1 k+1: 由于在“执行k”的末尾才形成第k+1条指令,按照一次重叠的时间关系,“分析k+1”所分析的是早已取进指缓的第k+1条指令的旧内容,这就会出错。为了避免出错,第k、k+1条指令就不能同时解释,我们称此时这两条指令之间发生了“指令相关”。 特别是当指令缓冲器可缓冲存放n条指令情况下,执行到第k条指令时,与已预取进指缓的第k+1到第k+n条指令都有可能发生指令相关。指缓容量越大,或者说指令预处理能力愈强的机器发

8、生指令相关的概率就愈高。 指令相关指令相关指令相关的处理指令相关的处理 “执行”指令是IBM 370机器为此设置的一条指令,其形式为 执行R1X2B2D2当执行到“执行”指令时,按第二操作数(X2)+(B2)+D2地址取出操作数区中单元的内容作为指令来执行。 0812162031图 5-6 IBM 370“执行”指令的执行 3. 主存空间数主存空间数相关的处理相关的处理 图图 5.7 主存数相关的处理主存数相关的处理 4. 通用寄存器组相关的处理通用寄存器组相关的处理设机器的基本指令格式为 操作码L1L3B2d2或 操作码L1L3L2图图 5.8 指令解释过程中与通用寄存器内容有关的微操作时间

9、关系指令解释过程中与通用寄存器内容有关的微操作时间关系图图 5.9 “执行执行k”、 “分析分析k+1”重叠时,访问通用寄存器组的时间关系重叠时,访问通用寄存器组的时间关系 执行k结果送入L3分析k+1L1送入BL2送入C图 5.10 用相关专用通路解决通 用寄存器组的数相关 设操作数的有效地址设操作数的有效地址 222)0000()()(dBBXd由分析器内的地址加法器形成。由于通常情况下,由分析器内的地址加法器形成。由于通常情况下,“分析分析”周期等于主存周期,所以,周期等于主存周期,所以,从时间关系上要求在从时间关系上要求在“分析分析”周周期的前半段,就能由通用寄存器输出总线取得期的前半

10、段,就能由通用寄存器输出总线取得(B2),送入地址送入地址加法器。由于加法器。由于运算结果是在运算结果是在“执行执行”周期的末尾才送入通用周期的末尾才送入通用寄存器组的寄存器组的,它当然不能立即出现在通用寄存器输出总线上。,它当然不能立即出现在通用寄存器输出总线上。也就是说,在也就是说,在“执行执行k”得到的、送入通用寄存器的运算结果得到的、送入通用寄存器的运算结果来不及作为来不及作为“分析分析k+2”的基址值用,更不用说作为的基址值用,更不用说作为“分析分析k+1”的基址值用。因此,虽然是一次重叠,但基址值相关的基址值用。因此,虽然是一次重叠,但基址值相关(B相关相关)就不止会出现一次相关,

11、还会出现二次相关。即当出现就不止会出现一次相关,还会出现二次相关。即当出现B(k+1)=L3 ( k)时,称为发生了时,称为发生了B一次相关;而当出现一次相关;而当出现B(k+2)=L3(k)时,称为发生了时,称为发生了B二次相关,如图二次相关,如图5.11所示。所示。 图 5.11 B一次相关与二次相关 图 5.12 B一次、 二次相关的推后处理 执行k分析k+2执行k+2没有B二次相关有B二次相关执行k分析k+1执行k+1没有B一次相关有B一次相关图 5.13 B相关专用通路法 5.2 流水方式5.2.1 基本概念5.2.2 标量流水线的主要性能5.2.3 标量流水机的相关处理和控制机构5

12、.2.1 基本概念基本概念 1. 流水是重叠的引申流水是重叠的引申 图 5.14 指令分解为“分析”与“执行”子过程 指令一次重叠指令一次重叠图 5.15 流水处理 流水可以看成是重叠的引申。差别只在于“一次重叠”是把一条指令的解释分为两个子过程,而流水是分为更多个子过程。流水的最大吞吐率 与m/T成正比(m为把指令的解释分成时间相等的m个子过程)流水的实际吞吐率 受限于流水线启动时间、速度最慢子部件时间、为平滑各子部件速度差而存在的锁存器存取时间以及延迟等,比最大吞吐率小,且m不宜过大(不宜超过10)。2 流水线的分类从不同角度对流水进行不同的分类:向下扩展,指把子过程进一步细分,让每个子过

13、程经过的时间都同等程度减少,进一步提高吞吐率。(与完全重复设置多套分析部件和执行部件来提高指令的并行度不同,增加的设备量明显要少)。向上扩展,可理解为在多个处理机之间流水。1、按照流水线的级别来分处理机级流水线, 又称为指令流水线 (Instruction Pipelining)例如:在采用先行控制器的处理机中,各功能部件之间的流水线先行指令缓冲栈输入先行控制方式中的指令流水线先行指令分析器先行读数栈先行操作栈取指译码取操作数指令执行部件后行写数栈输出执行写结果部件级流水线(操作流水线),如浮点加法器流水线处理机之间的流水线称为宏流水线 (Macro Pipelining)每个处理机对同一个数

14、据流的不同部分分别进行处理求阶差输入输出t1对阶尾数加规格化t2t3t4P1输入任务1MMP2任务2MP3任务3输出2、线性流水线与非线性流水线流水线的各个流水段之间是否有反馈信号线性流水线(Linear Pipelining)每个流水段都流过一次,且仅流过一次非线性流水线(Nonlinear Pipelining)在流水线的某些流水段之间有反馈回路或前馈回路线性流水线能够用流水线连接图唯一表示非线性流水线必须用流水线连接图流水线预约表等共同表示S1输入S2S3输出前馈回路反馈回路一种简单的非线性流水线3、单功能流水线与多功能流水线单功能流水线:只能完成一种固定功能的流水线Cray-1计算机中

15、有12条;YH-1计算机有18条;Pentium有一条5段的定点和一条8段的浮点流水线;Pentium有三条指令流水线,其中两条定点指令流水线,一条浮点指令流水线。多功能流水线:流水线的各段通过不同连接实现不同功能 Texas公司的ASC计算机中的8段流水线,能够实现:定点加减法、定点乘法、浮点加法、浮点乘法、逻辑运算、移位操作、数据转换、向量运算等。图 5.17 ASC机运算器的流水线 4、静态流水线与动态流水线静态流水线:同一段时间内,多功能流水线中的各个功能段只能按照一种固定的方式连接,实现一种固定的功能。只有连续出现同一种运算时,流水线的效率才能得到充分的发挥。动态流水线:在同一段时间

16、内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能。静态多功能流水线时空图动态多功能流水线时空图5、标量流水线和向量流水线标量流水机 没有向量数据表示,只能用标量循环方式来处理向量和数组。向量流水机 机器有向量数据表示,设置有向量指令和向量运算硬件,能流水的处理向量和数组中的各个元素。6、多维流水线与一维流水线5.2.2 标量流水线的主要性能衡量流水线性能的主要指标有:吞吐率、加速比和效率1、吞吐率(Through Put)定义:单位时间内能处理的指令条数或能输出的数据量。吞吐率越高,计算机系统的处理能力就越强。就流水线而言,吞吐率就是单位时间内能流出的任务数或能流出的结果数。求

17、流水线吞吐率的最基本公式:TP = n / T n为任务数, T为完成n个任务所用时间11112222333344441112223334例5.1有一个4段的指令流水线,其中,1、3、4段的经过时间均为t0,2段的经过时间为3t01234t03t0t0t01234空间时间各段执行时间不相等,输入连续任务情况:11231112222333344444空间时间41iit41iit41iit+11122233303) 1(tn403) 1(tnTT=),max(121maxkPtttT 各段执行时间不相等、输入连续任务情况下最大吞吐率为:jkiiptntnT) 1(1其中时间最长的子过程为瓶颈子过程

18、。 tj=max(t1, t2, tk)实际吞吐率为:134t0t0t021t022t023t021 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 5t0121222334瓶颈子过程再细分1234t03t0t0t0221 2 3 4 5 6 7 8 9 10147258369101 2 3 4 5 6 7 8 9 101 2 3 4 5 6 7 8 9 10瓶颈子过程并联t01 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 5空间时间6 t6 t(5-1) t+(5-1) tTT=各

19、段执行时间相等,输入连续任务情况各段执行时间相等,输入连续任务情况下完成n个连续任务需要的总时间为:T= (k+n-1) t k为流水线的段数, t为时钟周期吞吐率:最大吞吐率为:tnknTP) 1(ttnknLimTPn1) 1(max2、加速比(Speedup)计算流水线加速比的基本公式:Sp = 顺序执行时间T0 / 流水线执行时间T各段执行时间相等,输入连续任务情况下加速比为: 最大加速比为:各段执行时间不等,输入连续任务情况下实际加速比为:1) 1(nknktnktnkSpknknkLimSnp1max),max()12111kmiimiiptttnttnS (3、效率(Effici

20、ency)定义:设备的利用率,直接反映了处理机结构有效程度。计算流水线效率的一般公式:各流水段执行时间相等,输入n个连续任务流水线的效率为: 流水线的最高效率为:各流水段执行时间不等,输入n个连续任务流水线的效率为:TkTkn0个流水段的总的时空区个任务占用的时空区1) 1(nkntnkktnk11maxnknLimn流水线各段的设备量或各段的时间不相等时:流水线的效率为:即:其中,ai N ) GOTO 20read bIread cIadd bI+cI store aIbI+cIread aI+1multiply 2*aI+1store bI 2*aI+1increment I I+1go

21、to 10Stop上述程序用向量化指令序列实现为:上述程序用向量化指令序列实现为: a1:n=b1:n+c1:n temp1:n=a2:n+1 b1:n=2*temp1:n将将n个独立的数构成的整体称为个独立的数构成的整体称为向量向量,对,对这一组数的运算称为这一组数的运算称为向量处理向量处理。一条向。一条向量处理指令可以处理量处理指令可以处理n个或个或n对操作数。对操作数。 将长度为将长度为n的向量分成若干组,每组长度为的向量分成若干组,每组长度为m,组内按纵向方式处理,依次处理各组。,组内按纵向方式处理,依次处理各组。用于寄存器用于寄存器-寄存器结构的向量处理机中寄存器结构的向量处理机中向

22、量寄存器的长度是有限的,例如,每向量寄存器的长度是有限的,例如,每个向量寄存器有个向量寄存器有64个寄存器。当向量长度个寄存器。当向量长度N大于向量寄存器长度大于向量寄存器长度n时,需要分组处理。时,需要分组处理。分组方法:分组方法:nKm+r,其中:,其中:r为余数,共分为余数,共分k+1组。组。组内采用纵向处理方式,组间采用横向组内采用纵向处理方式,组间采用横向处理方式。因此,也称为分组处理方式,纵处理方式。因此,也称为分组处理方式,纵横向加工方式等。横向加工方式等。可变延迟器可变延迟器可变延迟器可变延迟器主存主存储器储器流水结流水结构加法构加法器器ABC把存储器把存储器-存储器结构中的缓

23、冲栈改为向量寄存器,存储器结构中的缓冲栈改为向量寄存器,运运算部件需要的操作数从向量寄存器中读取,运算的算部件需要的操作数从向量寄存器中读取,运算的中间结果也写到向量寄存器中。中间结果也写到向量寄存器中。向量寄存器与标量寄存器的主要差别是:向量寄存器与标量寄存器的主要差别是:一个向量寄存器能够保存一个向量,一个向量寄存器能够保存一个向量,例如:例如:512个个64位寄存器,分成位寄存器,分成8组,编号组,编号V0V7。每个向量寄存器组可存放最多含。每个向量寄存器组可存放最多含64个分量的长向个分量的长向量,因此可同时存放量,因此可同时存放8个向量。个向量。可连续访问一个向量的各个分量。可连续访

24、问一个向量的各个分量。需要有标量寄存器和地址寄存器等。需要有标量寄存器和地址寄存器等。采用寄存器采用寄存器-寄存器结构的寄存器结构的主要优点:降低主存储器的主要优点:降低主存储器的流量。流量。以CRAY-1机为例12条可并行单功能流水线向量寄存器组V0V7,标题寄存器组,标题寄存器组S0S7和地址寄存器组和地址寄存器组A0A7 。为向量运算提供整数加、逻辑运算、移位为向量运算提供整数加、逻辑运算、移位、浮点加、浮点乘、浮点迭代求倒数,、浮点加、浮点乘、浮点迭代求倒数,其流水经过时间分别为其流水经过时间分别为3、2、4、6、7、14,一拍,一拍12.5ns。向量、标量指令共向量、标量指令共128

25、条。其中有四种向条。其中有四种向量指令如下:量指令如下:.Vi.Vj12.n.Vk.ViSj.Vk存储器.Vk.Vi存储器功功能能部部件件功功能能部部件件功功能能部部件件功功能能部部件件12.n12.n12.n第第1种种向量向量-向量指令向量指令第第2种种向量向量-标量指令标量指令第第3种种向量向量-存储器指令存储器指令运算流水线运算流水线第第4种种向量向量-存储器指令存储器指令多功能部件并行操作多功能部件并行操作提高相邻的两条或多提高相邻的两条或多条向量指令的执行速条向量指令的执行速度度链接技术链接技术加快条件语句和稀疏矩阵的加快条件语句和稀疏矩阵的处理处理使循环向量化,以提使循环向量化,以

26、提高向量处理的速度高向量处理的速度加快向量的归约操作加快向量的归约操作多功能部件的并行操作多功能部件的并行操作1. 向量寄存器冲突(向量寄存器冲突(Vi冲突)冲突)2. 功能部件冲突功能部件冲突 向量寄存器冲突(向量寄存器冲突(Vi冲突)冲突):并行工作的各向量指令的源向并行工作的各向量指令的源向量或者结果向量使用相同的量或者结果向量使用相同的Vi。包括源向量冲突、结果向。包括源向量冲突、结果向量冲突、先读后写的向量冲突和源目向量相关。量冲突、先读后写的向量冲突和源目向量相关。V3 V1V2 V3 V1V2V6 V1*V5 V3 V4 * V5源向量冲突源向量冲突 结果向量冲突结果向量冲突 V

27、3 V1V2 V3 V1V2V1 V4*V5 V5 V3 * V4先读后写的向量冲突先读后写的向量冲突 源目向量相关源目向量相关发生源目向量相关的两条指令在不发生其它发生源目向量相关的两条指令在不发生其它Vi冲突和功能部件冲突和功能部件冲突的前提下,可通过链接机构将两条向量指令的处理过冲突的前提下,可通过链接机构将两条向量指令的处理过程链接起来,实现两条指令的流水处理。程链接起来,实现两条指令的流水处理。功能部件冲突:功能部件冲突:指同一功能部件被一条以上的要求并行工作的向量指令所指同一功能部件被一条以上的要求并行工作的向量指令所使用。如下面两条指令由于都使用了向量加法部件,因此,存在向量加法

28、使用。如下面两条指令由于都使用了向量加法部件,因此,存在向量加法部件使用冲突。部件使用冲突。V3 V1V2V6 V4 +V5向量链接技术向量链接技术(chaining) 指在不出现向量寄存器冲突和功能部件冲突时,通过链接机构将指在不出现向量寄存器冲突和功能部件冲突时,通过链接机构将有源目向量相关的前后两条或多条向量指令进行链接而实现并行处理有源目向量相关的前后两条或多条向量指令进行链接而实现并行处理的技术。的技术。 机器会自动检查每一条向量指令是否可能与它前一条或两条向量机器会自动检查每一条向量指令是否可能与它前一条或两条向量指令(两个向量长度相同且首元素时间对准时)存在指令(两个向量长度相同

29、且首元素时间对准时)存在源目向量相关源目向量相关(同时无向量寄存器冲突和功能部件冲突),若存在,则在前一条或(同时无向量寄存器冲突和功能部件冲突),若存在,则在前一条或两条指令的第一个结果分量都到达向量寄存器组且可以作为本条向量两条指令的第一个结果分量都到达向量寄存器组且可以作为本条向量指令的源操作数时,立即启动本条指令工作而形成链。有了链接技术,指令的源操作数时,立即启动本条指令工作而形成链。有了链接技术,就可以使一些存在源目向量相关的指令也能并行处理。就可以使一些存在源目向量相关的指令也能并行处理。CRAY-1共有共有8个向量寄存器组,一般可以有个向量寄存器组,一般可以有2-5个功能部件链

30、接在一起工作。个功能部件链接在一起工作。 例如:求向量运算例如:求向量运算D=A*(B+C),若向量的长度),若向量的长度N=64,向量的分量为浮,向量的分量为浮点熟,且向量点熟,且向量B、C已取到已取到V0、V1中。试分析采用下述三条指令实现功能而中。试分析采用下述三条指令实现功能而采用的链接技术。采用的链接技术。V3 A/访存取访存取A向量向量/V2 V0V1/B向量和向量和C向量相加向量相加/V4 V2V3/浮点乘,存浮点乘,存D向量向量/分析分析:第一、二条指令没有向量寄存器冲突和功能部件冲突,故这两条向第一、二条指令没有向量寄存器冲突和功能部件冲突,故这两条向量指令可以并行执行;第三

31、条指令与第一、二条指令均无功能部件冲突,但量指令可以并行执行;第三条指令与第一、二条指令均无功能部件冲突,但存在向量寄存器冲突,由于向量寄存器冲突属于源目向量相关,因此只要第存在向量寄存器冲突,由于向量寄存器冲突属于源目向量相关,因此只要第一条指令中的结果一条指令中的结果V3的第一个分量与第二条指令的结果响亮的第一个分量与第二条指令的结果响亮V2的第一个分的第一个分量均产生,就可以通过链接机构将这一对分量直接送往浮点乘功能部件,链量均产生,就可以通过链接机构将这一对分量直接送往浮点乘功能部件,链接执行第三条指令。接执行第三条指令。 如下页图所示,访存与浮点加并行执行,再与浮点乘链接执行,执行上

32、如下页图所示,访存与浮点加并行执行,再与浮点乘链接执行,执行上述三条指令,获得第一个结果分量并存入述三条指令,获得第一个结果分量并存入V4,所需要的拍数(也称为链接流,所需要的拍数(也称为链接流水线的流水时间)为:水线的流水时间)为:.V0.V112.6.V2存储器.V3浮浮点点加加访访存存12.6并行与链接操作过程图并行与链接操作过程图12.7.V4浮浮点点乘乘送浮乘部件送浮乘部件存存V2浮加浮加送浮加部件送浮加部件由于每一拍可取得一个由于每一拍可取得一个结果分量存入结果分量存入V4,因此因此获得全部结果分量所需获得全部结果分量所需拍数为拍数为17+(N-1)存存V4浮乘浮乘送浮乘部件送浮乘

33、部件存存V3访存访存启动访存启动访存17拍拍=171161实现链接的条件实现链接的条件:(1) 没有向量寄存器冲突和运算部件冲突。没有向量寄存器冲突和运算部件冲突。(2) 只有第一个结果送入向量寄存器的那一个周期可以链接。只有第一个结果送入向量寄存器的那一个周期可以链接。(3) 先行的两条指令产生运算结果的时间必须相等。先行的两条指令产生运算结果的时间必须相等。(4) 两条向量指令的向量长度必须相等。两条向量指令的向量长度必须相等。例:例:在在CRAY-1机上,设向量的长度均为机上,设向量的长度均为64;所用浮点功能部件的执行时间;所用浮点功能部件的执行时间分别为:相加需分别为:相加需6拍,相

34、乘需拍,相乘需7拍,从存储器读数需拍,从存储器读数需6拍,存入寄存器及启动拍,存入寄存器及启动功能部件各需功能部件各需1拍。问下列各指令组中,组内哪些指令可以链接?哪些指令拍。问下列各指令组中,组内哪些指令可以链接?哪些指令不可以链接?不能链接的原因是什么?并分别计算出下列各指令组全部完成不可以链接?不能链接的原因是什么?并分别计算出下列各指令组全部完成所需要的拍数。所需要的拍数。(1)V2V0*V1V3存储器 V4V3+V5(2)V0存储器V1V2+V3 V4V5*V6(3)V0存储器V2V0*V1 V3V0+V4解解:(1)第三条向量指令与第二条向量指令有源目向量相关,可以链接执行;第三条

35、向量指令与第二条向量指令有源目向量相关,可以链接执行;第一条向量指令与第二、三条向量指令无关,可以与它们并行执行。第一条向量指令与第二、三条向量指令无关,可以与它们并行执行。16116164-1=79拍拍启动访启动访存存访存访存存存V3送浮加部送浮加部件件浮加浮加存存V4第第一分量一分量送浮乘部送浮乘部件件浮乘浮乘浮乘浮乘存存V2送浮送浮加部件加部件(2)三条向量指令都无关,所以,三条向量指令可以并行执行。三条向量指令都无关,所以,三条向量指令可以并行执行。161164-1=72拍拍启动访存启动访存送浮加部件送浮加部件送浮加部件送浮加部件送浮乘部件送浮乘部件送浮乘部件送浮乘部件访存访存浮加浮加

36、浮乘浮乘存存V0存存V1浮乘浮乘存存V4第一第一分量分量存存V4其它分其它分量量(3)第二条向量指令与第一条向量指令有源目向量相关,可以链接执行;第第二条向量指令与第一条向量指令有源目向量相关,可以链接执行;第三条向量指令与第二条向量指令有源向量冲突,故只能等到第二条向量指三条向量指令与第二条向量指令有源向量冲突,故只能等到第二条向量指令执行完毕后,才能执行第三条向量指令。令执行完毕后,才能执行第三条向量指令。16117164-116164-1= 151拍拍启动启动访存访存访访存存存存V0送浮乘部件送浮乘部件送浮乘部件送浮乘部件浮浮乘乘存存V2送浮加部件送浮加部件送浮加部件送浮加部件浮浮加加存

37、存V3注意:注意:1)在分析向量指令的处理时,特别关注)在分析向量指令的处理时,特别关注无关向量指令的并行执行无关向量指令的并行执行,源目向量相关的向量指令的链接执行,源目向量相关的向量指令的链接执行,除源目向量相关外其它发生除源目向量相关外其它发生向量寄存向量寄存器冲突的向量指令的串行执行,功能部件冲突的向量指令的串行执行器冲突的向量指令的串行执行,功能部件冲突的向量指令的串行执行以及向以及向量内部各分量流水处理之间的区别。量内部各分量流水处理之间的区别。 2)启动、输出延迟(各)启动、输出延迟(各1拍)拍)加快稀疏矩阵的执行速度加快稀疏矩阵的执行速度稀疏矩阵:许多元素为稀疏矩阵:许多元素为

38、0的矩阵。的矩阵。解决办法:稀疏向量解决办法:稀疏向量程序段程序段DO 10 I=1,NA(K(I)=A(K(I)B(K(I)完成对稀疏向量完成对稀疏向量A和和B求和,其中求和,其中K、M为指标向量,指明为指标向量,指明A、B中的非中的非0元素。元素。4100425160040025020002004000600250010010110210310410510612341234I=I=存存储储器器地地址址稠密向量寄存器稠密向量寄存器A(K(I)稀疏向量稀疏向量A(I)指标向量寄存器指标向量寄存器K(I)VL寄存器寄存器基址寄存器基址寄存器聚合操作聚合操作41004251600400250200

39、02004000600250010010110210310410510612341234I=I=存存储储器器地地址址稠密向量寄存器稠密向量寄存器A(K(I)稀疏向量稀疏向量A(I)指标向量寄存器指标向量寄存器K(I)VL寄存器寄存器基址寄存器基址寄存器散射操作散射操作向量递归技术一个向量寄存器用来同时存放源操作数和结果操作数不可向量化的操作采用递归技术例:求递归向量和5.4指令级调度并行的超级处理机指令级并行处理机:超标量处理机 m超长指令字处理机 m超流水线处理机 n超标量超流水线处理机 (m,n)ILP指令级并行度区别:一般流水线处理机,具有一个多功能的操作部件。ILP1多操作部件处理机,

40、具有多个独立的操作部件。ILP15.3.1 超标量处理机1 2 3 41 2 3 45 65 61 2 3 4 5 61 2 3 4 5 6t部件6条指令共需时9 t常规(m=1)标量流水机时空图1 42 53 61 42 53 61 42 53 6t部件6条指令共需时5 t度(m=3)超标量流水机时空图1 42 53 6超标量处理机性能如有一k段流水线的m度超标量处理机,执行完N条指令的时间为:超标量处理机相对于普通标量处理机的加速比为:N趋向无穷大时,tmNkmT) 1() 1 ,()() 1() 1() 1() 1 ,(mNmkNkmtmNktNkmSpmmSp) 1 ,(max5.3.

41、2 超长指令字处理机(VLIW)1 2 3 41 2 3 41 2 3 41 2 3 41 2 3 41 2 3 4部件t度(m=3)VLIW流水机时空图单指令多操作码多数据的系统结构(SIMOMD)如有一k段流水线的m度超长指令字处理机,执行完N条指令的时间为:超标量处理机相对于普通标量处理机的加速比为:N趋向无穷大时,N 条指令经过压缩,则可视为仅有N/m条指令tmNkmT) 1() 1 ,()() 1() 1() 1() 1 ,(mNmkNkmtmNktNkmSpmmSp) 1 ,(max5.3.3超流水线处理机两种定义(1):一个周期内能够分时发射多条指令的处理机称为超流水线处理机与超

42、标量处理机不同并行性:超标量处理机采用的是空间并行性超流水线处理机采用的是时间并行性每隔1/n个t发射一条指令,流水线周期为1/n个t在超标量处理机中,流水线的有些功能段还可以进一步细分例如:ID功能段可以再细分为译码、读第一操作数和读第二操作数三个流水段。也有些功能段不能再细分,如WR功能段一般不再细分。因此有超流水线的另外一种定义(2):有8个或8个以上流水段的处理机称为超流水线处理机14710部件t 每t流出一条指令且度(m=3)超流水线处理机时空图2581136912147102581136912147102581136912147102581136912t1234567超流水线处理机性能如有一k段流水线的m度超流水线处理机,执行完N条指令的时间为:超流水线处理机相对于单流水线普通标量处理机的加速比为:N趋向无穷大时,tmNkmT)1(), 1 () 1() 1()1() 1(), 1 (NmkNkmtmNktNkmSpmmSp), 1 (max5.3.4 超标量超流水线处理机把超标量与

温馨提示

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

评论

0/150

提交评论