您好、欢迎来到现金彩票网!
当前位置:2019跑狗图高清彩图 > 先行指令站 >

计算机系统结构第3章(流水技术与流水处理机)pptx

发布时间:2019-07-07 18:06 来源:未知 编辑:admin

  1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

  【学习目标】1.理解指令交叉方式的工作原理,以及处理机处理机在结构上必须解决的问题.2.掌握流水方式的工作原理,掌握利用时空图计算流水线的吞吐率、加速比和效率的方法;了解从不同角度对流水线的分类及其定义,了解消除流水线.掌握单功能非线性流水线的最优调度方法,求解最优调度及其流水线的吞吐率、加速比和效率的方法.了解双功能非线性流水线的最优调度方法及无冲突调度的实现方法.4.掌握流水线发生局部相关和全局相关的原因及其处理方法.5.理解超标量处理机、超流水线处理机、超标量超流水线处理机三种处理机在指令级上并行的工作原理,以及它们分别相对于标量流水处理机加速比的计算方法.6.了解超长指令字处理机的基本工作原理.7.了解向量的3种处理方式,掌握向量流水处理机上的一串向量指令序列的指令并行和指令链接的条件,以及计算指令序列执行时间的方法.3.1指令重叠与先行控制提高处理机执行指令速度的途径,通常有三种途径:(1)提高处理机的工作频率(2)采用RISC技术减少指令执行的平均周期数(3)多条指令并行执行—指令级并行技术①流水线处理机或超流水线处理机(super pipelining processor)②多操作部件处理机或超标量处理机(superscalar)③超长指令字(Very Long Instruction Word ,VLIW)技术3.1.1指令的顺序执行方式与重叠执行方式3.1.2.先行控制技术指令的顺序执行方式与重叠执行方式1.指令的顺序执行方式 一条指令执行过程 :一条指令的执行分为三个阶段:取指令、分析与执行.三个阶段都可能访问主存指令计数器访问主存取出一条指令指令寄存器取指令:分析指令:操作码译码读取操作数(从主存或寄存器)形成操作数地址指令执行:结果写入主存或寄存器完成指令规定的功能指令的顺序执行方式与重叠执行方式1.指令的顺序执行方式 指令之间顺序串行,且指令内的各阶段之间也是顺序串行的方式. 如果取指、分析、执行3个阶段所需时间均为t,那么顺序执行n条指令所用的时间为: =3nt 顺序执行方式的优点指令之间相互关联关系易于控制和处理,结构设计与组成实现简便易行. 缺点是执行的速度慢,系统各部件的利用率低.取指令i分析i执行i取指令i+1分析i+1执行i+1指令的顺序执行方式与重叠执行方式2.指令的重叠执行方式一次重叠执行方式 一次重叠方式是指第i条指令和第i+1条指令的执行有一段的执行是重叠的。例如第i条指令的执行指令阶段同时也是第i+1条指令的取指令阶段.假设执行一条指令的三个过程的时间都为t,可以看出:除了第一条指令外,每经过两段就会完成一条指令。2.指令的重叠执行方式一次重叠执行方式优点: 一是提高了功能部件的利用率; 二是明显提高了指令的执行速度。缺点: 需要增加一些硬件; 控制过程比较复杂.2.指令的重叠执行方式两次重叠执行方式 两次重叠方式和一次重叠方式的道理是一样的,不过重叠的是指令的两个阶段.执行n条指令所用的时间如果执行一条指令的三个过程所用的时间相等,则执行n条指令的时间为:T=(2+n)t优缺点:执行时间缩短了将近三分之二。处理机的机构要作比较大的改变,要采用先行控制方式.3.1.2 先行控制技术需要解决的问题: 采用二次重叠执行方式,在处理机中同时有三条指令分别在取指令、分析和执行。要使指令能够正确地重叠执行,必须解决如下两个问题: 第一,为了实现取指令,分析指令和执行指令同时进行,需要有独立的取指令部件、指令分析部件和指令执行部件。 因此,要把顺序执行方式中的一个集中的指令控制器,分解成三个相对独立的控制器,它们是:存储控制器,简称存控;指令控制器,简称指控;运算控制器,简称运控。先行控制技术需要解决的问题: 第二,要解决访问主存储器的冲突问题。例如,取指令时要访问主存储器,分析指令时可能要取操作数,执行指令时可能要向主存储器写运算结果。常规的主存储器体系结构无法实现指令的重叠执行。如何解决先行控制技术解决访问存储器冲突的方法:把主存储器分成两个独立编址的存储器,一个专门存放指令,称为指令存储器,简称指存;另一个专门存放操作数,称为数据存储器,简称数存。两个存储器可以同时独立访问;这样,就解决了取指令和读操作数的冲突。指令和数据仍然混合存放在同一个主存储器内,采用低位交叉存取方式,在一个存储器周期中可以访问多个存储单元。如果处理机同时执行的取指令和读操作数所访问的不是同一个存储体,则可以实现指令重叠执行。如果正好访问同一个存储体,则指令无法重叠执行。 先行控制技术先行指令缓冲栈指令分析器存储控制器主存储器先行操作栈通用寄存器先行读数栈运算控制器后行写数栈运算器采用先行控制技术的处理机结构先行指令缓冲栈 作为主存与指令分析器之间之间的缓冲部件,用以平滑主存和指令分析器的工作速度的差异.先行操作栈 是指令分析器与运算控制器之间的一个缓冲存储器,由指令分析器对指令进行预处理后送入先行操作栈.各种运算型指令、移位指令、数据传输指令等都要处理成RR型指令,为了与指令系统中原有的RR型指令相区别,通常将送入先行操作栈的指令称为RR*型指令.运算控制器从先行操作栈取出RR*型指令,运算器需要的操作数来自先行读数栈或通用寄存器.先行控制技术先行指令缓冲栈指令分析器存储控制器主存储器先行操作栈通用寄存器先行读数栈运算控制器后行写数栈运算器采用先行控制技术的处理机结构先行读数栈 是主存和运算器之间的一种缓冲存储器,用来平滑运算器与主存的工作速度差异.对于先行的指令而言,是把后续的指令要用到的操作数“先行”从主存读取,所以称为先行读数栈,原来要访存取操作数变为访问先行读数栈中的寄存器,大大加快了指令的执行速度.先行控制技术先行指令缓冲栈指令分析器存储控制器主存储器先行操作栈通用寄存器先行读数栈运算控制器后行写数栈运算器采用先行控制技术的处理机结构后行写数栈 当指令分析器遇到向主存写数的指令,则把形成的主存有效地址送入后行写数栈的后行地址缓冲器中,并把预处理好的RR*型指令送入先行操作栈,这条RR*型指令中的目标寄存器就是后行写数栈的缓冲寄存器编号.当运算器执行这条RR*型指令时,把原定写到主存中去的数据送入后行写数栈的相应后行数据缓冲寄存器中即可,而由后行写数栈负责把数据缓冲器中的数据按地址缓冲器中的主存地址送入主存.这样,运算器不必等待数据写回主存,就可以继续执行后续指令.因此,后行写数栈也是主存与运算器之间的一种缓冲存储器..先行控制技术先行指令缓冲栈指令分析器存储控制器主存储器先行操作栈通用寄存器先行读数栈运算控制器后行写数栈运算器采用先行控制技术的处理机结构 可以看出,先行控制技术实质上是缓冲技术和预处理技术相结合的技术.通过对指令和数据的预处理和缓冲,使指令分析器和指令执行部件能够独立地工作,并始终处于忙碌状态,从而大大提高了指令重叠执行的速度. 通常把先行指令缓冲栈、先行读数栈、先行操作栈和后行写数栈统称为先行控制器.先行控制器与指令分析器一起构成先行控制方式中的指令控制部件.而原来的运算器及运算控制器一起组成指令执行部件.3.2 流水线线.效率流水线的分类 流水线可按不同的观点进行分类,一般来说流水线可以分为如下几种类型: (1)线性流水线和非线性流水线按照流水线的各个功能段之间是否有反馈信号分类线性流水线(linear pipelining)是指流水线的各段串行连接,数据从流水线的一端进入,从另一端输出,在各个功能段流过时仅流过一次,没有反馈回路。流水线)线性流水线和非线性流水线非线性流水线 流水线中除有串行连接的通路处,还有反馈回路或前馈回路。下面的非线性流水线带有反馈回线)单功能流水线和多功能流水线 这是按照流水线所完成的功能来分类的。 单功能流水线,是指只能完成一种固定功能的流水线。要完成多种功能,可采用多个单功能流水线。 多功能流水线,是指同一流水线的各个段之间可以进行不同的连接,从而使流水线在不同的时间,或者在同一时间完成不同的功能。 流水线)部件级、处理机级及系统级流水线 是按照流水线使用的级别来进行分类。部件级流水线,又叫运算操作流水线。它是指部件内部各子部件组成的流水线.如指令分析部件中各子部件组成的指令分析部件流水线。处理机级流水线,又叫指令流水线。它是指处理机内各部件之间的流水线,把执行指令的过程按照流水方式处理,取指部件、指令分析部件和指令执行部件组成的指令流水线。处理机间级流水线,又叫宏流水线。它是由两个以上的处理机串行地对同一数据流进行处理,每个处理机对数据流的不同部分分别进行处理。 流水线)静态流水线和动态流水线在多功能流水线中,按照同一时间内是否能够连接成多种方式,同时执行多种功能来分类:静态流水线,是指在同一时间内,流水线的各段只能按同一种功能的连接方式工作。动态流水线,是指在同一时间内,当某些段上在实现某种运算(如定乘)时,另一些段却在实现另一种运算(如浮加),这样就不是非得相同运算的一串操作才能流水处理。 流水线)标量流水处理机与向量处理机 流水处理机按是否具有向量数据表示和相应的向量指令,可分为标量流水处理机和向量流水处理机. 标量流水处理机(Scalar Pipeline Processor),只有流水线,没有向量数据表示和相应的向量指令. 向量流水处理机是向量数据表示与向量指令流水线的结合.出入求阶差对阶尾数加规格化流水线.时空图(Time-Space Diagram) 流水线的工作常用“时空图”来描述,用横轴代表时间,纵轴表示流水线的各功能部件。四段浮点加法器流水线时空图加法器流水线尾数加3尾数加4尾数加5对阶1对阶2对阶3对阶4对阶5求阶差1求阶差2求阶差3求阶差4求阶差50时间时空图多功能流水线的时空图流水线A BA BA BA B输入输入输入输入求阶差求阶差求阶差求阶差对阶对阶对阶对阶尾数加尾数加尾数加尾数加规格化规格化规格化规格化尾数乘尾数乘尾数乘尾数乘累加累加累加累加输出输出输出输出定点乘g=f(A,B)浮点加浮点点积多功能流水线的时空图静态时空图空间输出累加尾数乘规格化尾数加对阶求阶差输入浮点加定点乘123……n-1n1…12…123…123……n-1n123……n-1n123……n-1n123……n-1n123……n-1n1234…时间多功能流水线的时空图动态时空图空间输出累加尾数乘规格化尾数加对阶求阶差输入浮点加定点乘123……n-1n123…1234…12345…123……n-1n123……n-1n123……n-1n123……n-1n123……n-1n123456…时间线性流水线的性能计算吞吐率 流水线的吞吐率( throughput rate, ),是指单位时间内流水线完成的任务数或输出的结果. 分子表示n个任务,分母表示完成n个任务所用的时间。(1)各段执行时间相的吞吐率.输入连续任务情况下完成n个连续任务需要的总时间为: Tk= (k+n-1) Dt k为流水线的段数,D t为时钟周期流水线的吞吐率输出端输入端从流水线的输出端看,用k个周期输出第一个任务,以后是每个时钟周期输出一个任务,即用n-1个时钟完成其余的 n-1个任务.从输入端看,因为是任务之间隔一个时钟周期,因此要用n个时钟周期向流水线输入n个任务,另外还要用k-1个时钟周期为流水线的排空时间(即最后一个任务出流水线).各段执行时间相等,输入连续任务 吞吐率:最大吞吐率为:最大吞吐率与吞吐率之间的关系结论:流水线的实际吞吐率与哪些因素有关?吞吐率(2)流水线)各段执行时间不相等、输入连续任务情况吞吐率为:最大吞吐率为:实际吞吐率和最大吞吐率主要由流水线中执行时间最长的那个功能块决定.这个功能块成了整个流水线的“瓶颈”.吞吐率解决流水线的“瓶颈”问题的方法一是将“瓶颈”流水段细分(如果可分的话)二是将 “瓶颈”流水段重复设置空间123456…-2-1nS4123456…-2-1nS336…nS2-325…n-1S2-214…n-2S2-1123456…-2-1nS1时间流水段重复设置的流水线时空图最大吞吐率:线.加速比 流水线的加速比是指等功能的非流水线的速度与具有m段流水线的速度之比。加速比的基本公式为: 分子是采用非流水线用的时间,分母是采用流水线)各段执行时间相等的加速比在等效的非流水线=n·k·Δt 所以,对于各功能段执行时间均相等,有K段的流水线完成n个连续任务时的加速比S为: 2.加速比最大加速比:从上式可以看出,当nk时,流水线的最大加速比等于流水线的段数。即: 最小加速比:当n=1时,加速比为为1,最小 与流水线段流水线段的流水线是否流水线的段数可以不受限制的增加呢?加速比(2)各段执行时间不等的加速比如果各段时间不等,则有:线.效率(Efficiency)定义:效率是指流水线的设备利用率。时空图表示:在时空图上,流水线的效率表示为n个任务占用的时空区与k个功能段总的时空区之比. 流水线的效率与其包含的时间、空间两方面的因素有关.表达式:n个任务占用的时空区就是顺序执行n个任务所使用的总的时间T0,而一条k段的流水线完成n个任务的总的时空区为KTk.其中Tk是流水线完成n个任务使用的总时间.则一条k段的流水线)各段执行时间相等,n个任务连续,一条k段的流水线的效率为:上式的分母是时空图中完成n个任务所用的时间与k个功能所围成的总面积;而分子是时空图中n个任务实际占用的面积。当nk时,E≈1。这个结论和上面分析吞吐率及加速比的结论是一致的.线性流水线的性能计算三个性能标准的之间的关系 从以上的分析很容易可以得出关于流水线的三个性能标准的之间的关系。效率和吞吐率之间的关系可以表示为:当时钟周期△t不变时,流水线的效率与吞吐率成正比。这就是说,为了提高流水线的效率而采取的措施,同时也提高了流水线的吞吐率。效率和加速比之间的关系可以表示为:3.效率(2)各段执行时间不等的效率例3.3非线非线性流水线的最优调度方法与性能计算1.单功能非线性流水线的最优调度方法及其性能计算2.多功能非线性流水线的最优调度方法及其性能计算3.3.2非线非线性流水线的动态调度的实现流水线的相关问题与相关处理 所谓相关是指在一段程序的相近指令之间有某种关系,这种关系可能影响指令的重叠执行.通常把相关分为两大类:局部相关(Local Correlation),仅涉及到相关指令前后的一条或几条指令的执行.全局相关(Global Correlation)指影响整个程序执行方向的相关,主要是转移类指令和中断引起的相关.3.4.1局部相关及处理3.4.2全局相关及处理3.4.3相关对流水线局部相关及处理局部相关主要有:“先写后读”相关“先读后写”相关“写-写”相关这些相关问题的出现同对象序列在流水线.顺序流动的“先写后读”相关及处理 顺序流动是指对象从流水线流出的次序与它们流入流水线的次序一样.nKkjjjm空il空hk空iihh(异步流动)(顺序流动)(判出j,h 相关)指令读取写段入出18存储单元如果指令h写入结果的目的地址同指令j读操作数的源地址是同一个存储单元或寄存器,称这两条指令有“先写后读”要求.若指令j到达读段时,指令h还没有到达写段完成写操作,则指令j读出的数据就是错误的,这就是“先写后读”相关.解决的方法当指令j到达读段时,若通过比较地址码发现与指令h相关,则指令j及其后面的指令停止流动直到指令h流过写段再继续流动.2.异步流动的局部相关 异步流动是指对象从流水线流出的次序同它们流入流水线的次序不同.异步流动也称乱序(Out of Order)流动或错序流动. 对于解决顺序流动中的“先写后读”相关,异步流动可提高流水线的吞吐率和效率,但会出现两种新的相关: “写-写”相关和 “先读后写”相关. 若指令i和指令k都有写操作,且写入的目的地址是同一存储单元或同一寄存器,顺序执行时是i先写,而k后写.但是,采用异步流动时,可能k先于到达写段,那么该存储单元或寄存器的内容最后是由i写入,这就是“写-写”相关. 若指令i的读操作和指令k写操作是同一个存储单元或寄存器,则这两条指令有“先读后写”要求.采用异步流动,可能出现指令k的写操作先于i的读操作,造成“先读后写”相关. 解决的方法,同样可采用延迟方法.3.相关专用通路 解决“先写后读”相关的另一种方法是建立相关专用通路,即在流水线的读段和写段之间增加一条专用的数据通路.对于“先写后读” 数据相关,先A→B,然后B→C;等效于A→B→C.如果采用设置专用路径的方法, 新增加一条从A到C的专用路径,撤消原来从B到C的路径.这样可避免“先写后读”数据相关,或者缩短发生“先写后读”数据相关的时间。延迟的方法是以增加时间为代价,降低速度来解决问题;相关专用通路是以增加设备为代价,提高成本来解决问题全局相关及处理 由于程序的执行方向改变而引起的相关,例如条件转移或程序中断引起的相关,叫全局相关,是对整个程序的大的改变。 在目前的处理机当中程序的执行方向改变主要有转移子程序,转移和中断三种情况。 条件转移指令在一般的程序中占有比较大比例. 中断所占的比例不大,但中断发生在程序的哪一条指令,发生在指令执行过程中的哪一个功能段都是不确定的,因此处理好条件转移和中断所引起的全局相关是很重要的.1.条件转移的处理2.中断处理条件转移的处理(1)转移的影响无条件转移,就是在流水线里,碰到一条无条件转移指令(通常是JMP指令),无条件的转移到别的地方。 条件转移指令有两种,即一般条件转移指令和复合条件转移指令。其中,一般条件转移指令的转移条件来自上一条指令,或来自更前面的指令。而复合型条件转移指令直接根据本条指令的执行结果决定是否转移。 无论哪种情况,一般都要在转移指令执行到流水线的最后功能段时,转移条件才能建立.因此,在条件转移指令进入流水线之后,到形成转移条件之前,后续指令不能进入流水线.条件转移的处理转移的影响用“猜测法”解决由于条件转移使流水线“断流”问题时间输出i+1i+2…i+k-3i+k-2输入i-1i转移不成功转移成功形成条件码输出…pP+1P+k-4P+k-3形成条件码的指令条件转移指令猜测的分支固定在转移不成功方向.如果形成的条件码是对应于转移不成功,猜测正确,吞吐和效率不受影响;如果形成的条件码对应于转移成功,则猜测错误,有k-2个功能段是浪费的.条件转移的处理转移的影响更严重的情况:如果第i+1指令是 (R1)+(R2)→R1 一旦这条指令执行完成,寄存器R1的内容就被破坏,使程序的执行结果发生错误. 为避免之,采取两种做法: 只进行指令译码和准备好操作数,在转移条件没有形成之前不执行运算;一直执行到运算完成,但不送回运算结果.在一些典型程序中,转移指令所占的比例为p=20%,转移成功率为q=60%,对于一个有8个功能段的流水线,由于条件转移的影响,流水线)减少转移影响的措施减少条件转移指令对流水线影响的措施延迟转移技术.是RISC的关键技术.它是依靠编译器把转移指令之前的一条或几条没有数据相关的指令调整到转移指令的后面.一般用于段数较少的流水线中.据统计,编译器只调整一条指令的成功概率在90%以上,调整两条指令的成功概率只有40%左右.当没有合适的指令可供调整时,编译器只能在转移指令后面插入空操作指令.静态转移预测技术.在两个方向都预取指令,增设一定数量的缓冲寄存器堆栈,以减少转移方向猜测错误是造成的影响.条件转移的处理(2)减少转移影响的措施减少条件转移指令对流水线影响的措施动态转移预测技术.是根据近期转移是否成功的历史记录来预测下一次转移的方向.能够随程序的执行过程动态地改变转移的预测方向.其关键技术:一是如何记录转移的历史记录;二是如何根据记录的历史信息预测转移的方向. 一种方法是在指令Cache中专门设置一个字段,称为“历史转移表”,将转移成功或不成功的信息记录在表中.提前形成条件码.由编译器调整指令序列,把产生条件码的运算型指令与使用这个条件码的条件转移指令分离开来,提前执行这个运算形指令.全局相关及处理2.中断处理 中断不能预知,在流水线处理机中,同时有多条指令被执行,每一条指令在流水线中都不断地改变着现场.因此,当有一个中断源的中断请求被响应时,选择哪一条指令作为断点指令?需要保存的现场信息是哪一些指令的现场?有两种处理方法:不精确断点方法.进入流水线的指令都执行完,断点是该指令序列中最后进入流水线的那条指令.提出中断请求的指令可能并不是最后那条指令. 这种方法保存现场和恢复现场的工作量较小;但是有两个问题:一是程序执行的结果可能出错;二是程序员无法看到自己设置的断点初的现场.精确断点法.对于在流水线中同时执行的多条指令,由哪一条指令的程序性错误或故障发出的中断请求,断点就是这条指令.其前尚在流水线中已完全执行或部分执行的指令的执行情况都作为现场保存起来.硬件代价高,控制复杂.3.4.3相关对流水线性能的影响 流水线处理对象之间的相关将导致流水线的性能下降.对此应尽可能采取措施减少流水线性能下降的程度.下面通过几个例子,说明用时空图来表示流水处理过程和对流水线:在一台流水处理机上执行下述的指令序列,每条指令的取指令和指令译码各需1个时钟周期,MOVE、ADD和MUL的执行分别需要2个、3个和4个时钟周期,且都在第一个时钟周期从通用寄存器中读取操作数,在最后一个时钟周期把目的操作数写到通用寄存器中. k: MOVE R1,R0 ;R1←(R0) k+1: MUL R0,R2,R1 ;R0←(R2) ×(R1) k+2 ADD R0,R2,R3 ;R0←(R2)+(R3)(1)就程序本身而言,哪些指令之间发生何种数据相关?(2)画出按指令序列的顺序流动的时空图,共使用了多少个时钟周期?解: (1)若3条指令顺序流动,则指令k与指令k+1对寄存器R1发生操作数的“先写后读”相关.若3条指令异步流动,则指令k+1与指令 k对寄存器R1发生“先读后写” 相关,指令k+2与指令k+1对寄存器R0发生“写-写”相关. (2)若3条指令顺序流动,则流水线的时空图如下:执行译码取指kkK+1K+1K+1K+1K+2K+2K+2kK+1K+2kK+1K+2T( )由图可以看出,由于指令k与指令k+1之间的“先写后读”相关,指令k+1多延迟了2个时钟周期.3条指令顺序流动共需要13个时钟周期.例2:一条线个功能段组成,加法操作使用其中的1、2、3、6功能段,乘法操作使用其中的1、4、5、6功能段,每个功能段的执行时间均为.流水线的输出与输入端之间有直接数据通路,且设置有足够的缓冲寄存器.试用尽可能短的时间计算,画流水线时空图,并计算流水线的实际吞吐率、加速比和效率. 解:为了减少流水线中发生先写后读相关的次数,使流水线完成计算的时间尽可能短,采用下列算法计算F:F=(a1×b1+a2×b2)+(a3×b3+a4×b4)+(a5×b5+a6×b6)先计算括号内的6次乘法,再做括号内的3次加法,然后再做括号外的两次加法.7891011S6S5S4S3S2S1t由时空图可得的实际吞吐率、加速比和效率分别为:3.5多发射处理机及其性能常规的流水处理机是单发射处理机,即处理机在一个时钟周期只解释一条指令,通常将一个时钟周期平均发射指令的条数称为处理机的指令级并行度(Instruction level Paralleism , ILP).单发射处理机的指令级并行度ILP=1,实际上小于1.为了提高处理机的ILP值,从而提高处理机的性能,在单发射技术的基础上进一步开发指令流水线的并行性,出现了多发射技术.多发射是指处理机在一个时钟周期可发射多条指令,其指令级并行度ILP≥23.5多发射处理机及其性能3.5.1超标量处理机及其性能计算3.5.2超流水处理机及其性能计算3.5.3超标量超流水处理机及其性能计算3.5.4超长指令字处理机的基本结构与特征3.5.5多发射处理机的性能比较3.5.1超标量处理机及其性能计算1.超标量处理机( Superscalar processor)指令流水线. 超标量处理机性能超标量处理机指令流水线)单发射处理机时空图处理机一个时钟周期只能发射一条指令,每个时钟周期只取一条指令(IF),只对一条指令进行译码(ID),只执行一条指令(EX),只写回一个运算结果。这样的处理机叫做单发射处理机。单发射处理机单发射处理机的结构 一套取指令部件和指令译码部件;而操作部件可以只设置一个多功能操作部件,也可以设置多个独立的操作部件. 指令级流水线结构:而在操作部件中,有的机器不一定采用流水线结构。 单发射处理机的设计目标是每个时钟周期平均执行一条指令,即它的指令级并行度ILP的期望值为1,实际上就是有k段流水线的普通标量处理机.超标量处理机指令流水线)超标量处理机超标量处理机一个时钟周期同时发射多条指令,经过一个周期再同时发射多条指令。这样就需要有多套硬件来保障,假如一个周期发射三条指令就要有三套同样的硬件来保障指令的发射。时空图一个时钟周期内能够同时发射多条指令,同时对多条指令进行译码,执行多条指令,写回多个运算结果。超标量处理机指令流水线的结构超标量处理机处理机的结构 多套取指令部件和指令译码部件; 必须两条或两条以上能够同时工作的指令流水线。 控制逻辑比较复杂。超标量处理机性能在理想情况下,N条没有资源冲突、没有数据相关和控制相关的指令在单流水线普通标量处理机上的执行时间为:其中,k是流水线的级数, △ t是一个时钟周期的时间长度。 如果把相同的N条指令在一台每个时钟周期发射m条指令的超标量处理机上执行,所需要的时间为:其中,第1项是第一批m条指令同时通过m条流水线项是执行其余N-m条指令所需要的时间,这时每一个时钟周期有m条指令分别通过m条指令流水线.因此,超标量处理机相对于单流水线普通标量处理机的加速比为:当N→∞时,超标量处理机的加速比的最大值为:超流水处理机及其性能计算(超流水线处理机 Super pipeline processor)在一般标量流水线处理机中,通常把一条指令的执行过程分解为“取指令”、“译码”、“执行”和“写回”四级流水线。如果把其中的每级流水线再细分,例如,可以再分解为两级延迟时间更短的流水线,则一条指令的执行过程就要经过8级流水线。这样,在一个基本时钟周期内就能够“取指令”两条,“译码”、“执行”和“写回”各两条指令。 超流水线处理机就是在一个基本时钟周期内分时发射多条指令的处理机。从时空图上看,超标量处理机采用的是空间并行性,而超流水线处理机采用的是时间并行性.超流水处理机及其性能计算(1)指令执行时序 超标量处理机一个时钟周期发射的指令的条数称为并行度。一个并行度为n的超流水线处理机在一个时钟周期内可以发射n条指令,也就是每隔1/n个时钟周期就发射一条指令。采用超流水线技术比采用超标量技术节省了大量的硬件。因为超标量处理机一个时钟周期同时发射多条指令,经过一个周期再同时发射多条指令。这样就需要有多套硬件来保障,假如一个周期发射三条指令就要有三套同样的硬件来保障指令的发射。超流水线则不同,它采用的是时间并行,只需增加少量的硬件,通过各硬件的重叠工作来提高处理机的性能。 超流水线处理机的指令执行时空图。超流水线处理机的指令执行时空图说明:这是原理上的指令执行时空图,实际上,功能段 还要细分,分成多个流水级,每个流水级也都有 名称,如“译码”功能段可再细分为“译码”流水级、 “取第一个操作数”流水级和“取第二个操作数” 流水级.通常把指令流水线个以上流 水级的处理机称为超流水线位Cache,指令Cache和数据Cache容量各8K字节,一个时钟周期可以从指令Cache中读出两条指令,从数据Cache中读出或写入两个数据。整数部件为核心处理部件,它主要包括32个32位的通用寄存器,一个ALU,一个专用的乘法/除法部件。 基本结构浮点部件.包括一个浮点通用寄存器堆和一个执行部件。浮点通用寄存器堆由16个64位的通用寄存器组成,它也可以设置成32个32位的浮点寄存器。浮点执行部件由浮点乘法部件、浮点除法部件和浮点加法/转换/求平方根部件等三个独立的部件组成,这三个浮点部件可以并行工作。浮点操作主要包括浮点加法、减法、乘法、除法、求平方根、定点与浮点格式的转换、浮点格式之间的转换、浮点数比较等15种。 流水线的指令流水线级超流水线结构,取指令和访问数据都要跨越两个流水级;实际上,每个时钟周期包含两个流水级,处理器取第一条指令(IF)和取第二条指令(IS)两个流水级都要访问指令Cache,这两个流水级为一个时钟周期。在寄存器流水级(RF)的开始,指令已经读到了指令寄存器中,因此可以进行译码,并且访问寄存器堆。另外,由于指令Cache是采用直接映象方式的,因此,从指令Cache中读出的区号要与访问存储器的物理地址进行比较;如果相等,表示指令Cache命中。对于非存储器操作指令,如果指令Cache命中,指令可以在指令执行(EX)流水级执行,指令的执行结果可以在EX流水级的末尾得到。 在正常情况下,一条指令的执行过程经历8个流水线周期(流水级)。由于一个主时钟周期包含有两个流水线周期,因此,也可以认为每4 个主时钟周期执行完一条指令。 工作时序工作时序从输入端看,每1个流水线条指令;同样,从输出端看,每1个流水线条指令。当流水线条指令在同时执行。如果把两个流水线周期看作一个时钟周期,则在一个时钟周期内,处理机分时发射了两条指令,并在一个时钟周期内,执行完成了两条指令。因此,是1种典型的超流水线处理机。输出端输入端(3) 超流水线处理机性能 在一台指令级并行度为(1,n)的超流水线处理机上,执行N条没有数据相关和控制相关的指令所需要的时间为:其中,k是指令流水线的功能段数或执行一条指令所需要的时钟周期数,而不是流水线级数。在一般超流水线处理机中,指令流水线的段数为kn。式中的头一项是第一条指令通过指令流水线执行完成所需要的时间,而第二项是执行其余N一1条指令所需要的时间,这时,每一个时钟周期有n条指令要在指令流水线中执行完成,也就是每一个流水线周期执行完成一条指令。 超流水线处理机相对于单流水线普通标量处理机的加速比为:当N→∞时,理想情况下,超流水线机的加速比的最大值为:超标量超流水线处理机及其性能计算 (super pipelining super scalar processor) 为了进一步提高处理机的指令级并行度,可以把超标量技术与超流水线技术结合在一起,这就是超标量超流水线处理机。下面介绍超标量超流水线处理机的工作原理、处理机结构和主要性能。 (1)指令执行时序(2)典型处理机结构(3)超标量超流水线处理机性能指令执行时序它在一个时钟周期内要发射指令n次,每次发射指令m条,因此,超标量超流水线处理机每个时钟周期总共要发射指令m×n条。图中,每一个时钟周期分为3个流水线周期,每一个流水线条指令。在理想情况下,每个时钟周期能够发射并执行完成9条指令。即超标量超流水线处理机执行程序的速度应该是超标量处理机和超流水线处理机执行程序速度的乘积。DEC公司的Alpha 处理机采用了超标量超流水结构.它主要由四个部件和两个Cache组成。四个部件是整数执行部件EBOX、浮点执行部件FBOX、地址部件ABOX和中央控制部件IBOX。典型处理机结构四个部件地址部件ABOX包括地址发生器、存储管理部件、读数缓冲栈和写数缓冲栈。中央控制部件IBOX负责取指令、指令译码、指令发射、流水线控制、程序计数器PC的计算等。IBOX可以同时从指令Cache中读入两条指令,同时对读入的两条指令进行译码,并对这两条指令作资源冲突检测,进行数据相关性和控制相关性分析。如果资源和相关性允许,IBOX就把两条指令同时发射给EBOX、ABOX和FBOX三个指令执行部件中的两个。 四个部件整数执行部件EBOX内有一个由32个64位寄存器组成的定点寄存器堆,这个寄存器堆有四个读出端口和两个写入端口,它可以同时把两个源操作数或结果送到整数操作部件及地址部件ABOX中。操作部件的数据宽度为64位,包括加法器、桶式移位器、逻辑部件和整数乘法器等。在EBOX内还有多条专用数据通路,可以把运算结果直接送到执行部件,而不必先写到寄存器中。 四个部件浮点执行部件FBOX采用流水线结构,它有两套浮点操作指令,一套是针对DEC浮点数格式的,而另一套是针对IEEE754浮点数格式的,共有36条浮点操作指令。FBOX内有一个32X64位的浮点寄存器堆,这个寄存器堆有三个输出端口和两个输入端口。另外,还有一个用户可以访问的控制寄存器FPCR。FPCR包含有舍入控制、陷阱允许和异常事故标志信息等。除了除法指令之外,FBOX每个流水线周期可以接受一条指令,执行指令的延迟时间是6个流水线周期。在FBOX内也设置有专用数据通路,当有数据相关时,可以通过专用数据通路把运算结果直接写到执行部件中。 2个Cache芯片内有两个Cache,一个指令Cache,一个数据Cache。容量均为8KB,由于都采用直接映象方式,因此,每个Cache中都包含有一个区号字段。另外,由于采用动态转移预测技术,在指令Cache中,每个数据块(32B)包含有一个8位的转移历史字段。它与中央控制部件IBOX中的转移预测逻辑一起实现条件转移的动态预测。指令Cache的每个存储单元中设置有一个“转移历史位”,在执行转移指令时,把转移发生或不发生的情况记录在这个“转移历史位”中,当下次再执行到这条指令时,根据“转移历史位”中记录的信息预测是否发生转移。指令流水线处理机共有三条流水线,每一条指令流水线实际上是把一条指令的执行过程分成了两部分。一部分是4个流水级的静态流水线,在中央控制部件IBOX中执行,另一部分是动态流水线。对于整数操作部件EBOX和地址部件ABOX动态流水线个流水级,对于浮点操作部件FBOX动态流水线个流水级。 由于资源冲突、数据相关或控制相关等原因,指令在静态流水线中可以停留若干个流水线周期。当指令进入动态流水线之后必须一直往前流动,不允许停留。因此,每一条指令必须在静态流水线中,即在中央控制部件IBOX中完成全部的资源冲突检测,数据相关性和控制相关性分析,在指令从静态流水线发射到动态流水线时,指令整个执行过程所要求的资源、数据相关性和控制相关性都应该是没有问题的。 从图可以看到,Alpha 21064处理机的三条指令流水线级,而且,每个时钟周期能够发射两条指令。Alpha 21064处理机应该是超标量超流水线处理机。超标量超流水线处理机性能 在一台指令级并行度为(m,n)的超标量超流水线处理机上,连续执行N条没有资源冲突、没有数据相关和控制相关的指令所需要的时间为:其中,k是指令流水线的时钟周期数,而不是流水线级数。例如,在Alpha 21064超标量超流水线。△t是一个时钟周期的时间长度。式中的第一项是开始m条指令通过指令流水线所需要的时间,第二项是执行其余N—m条指令所需要的时间,这时,每一个时钟周期平均执行完成m×n条指令,也就是每一个流水线周期平均执行完成m条指令。 超标量超流水线处理机相对于单流水线标量处理机的加速比为:当N→∞时,3.5.4超长指令字处理机的基本结构与特征(Very Long Instruction Word ) 超长指令字(VLIW)处理机的超长指令字的机器指令长度达数百位.VLIW处理方式是把一个足够长的指令分割成多个字段,每个字段都可以独立地控制各自的运算器、寄存器、互连网络(矩阵开关)和存储器等.例如,有代表性的VLIW处理机QA-2有256位的超长指令,一条超长指令可以同时译出4个不同的的算术逻辑运算控制、4个不同的主存地址的访问控制. 1.超长指令字处理机的基本结构2.超长指令字处理方式的主要特征运算器0运算器1运算器2运算器n-1存储模块寄存器堆/结合网超长指令字处理机1.超长指令字处理机的基本结构运算器控制字段存储器控制字段其他控制字段指令012…n-101…m-1可以看出:一个超长指令容纳有可并行执行的 n个运算控制指令字段、若干个访问存储器控制指令字段和其他控制字段. n个运算控制指令字段控制相应指定的n个运算部件(FU). 各个运算部件所需要的操作数或产生的结果可以来自或存入寄存器,也可以由存储器指令段对指定存储模块的存储单元读出或写入.运算器0运算器1运算器2运算器n-1存储模块寄存器堆/结合网超长指令字处理机1.超长指令字处理机的基本结构运算器控制字段存储器控制字段其他控制字段指令012…n-101…m-1可以看出:结合网(开关矩阵)在其他控制字段的控制下,提供指定的存储模块与运算部件之间的数据链接,结合网也可以为运算部件之间提供提供直接的数据链路,把一个运算部件的输出设置成其他运算部件的输入.由于VLIW处理机可以在一个周期发射多条指令,故也是多发射处理机.PU0FU0PU1FU1PU2FU2PU3FU3超长指令字处理机VLIW与超标量处理方式的比较LVIW处理机可在一个时钟周期执行一条超长指令,即它在一个时钟周期可发射n条短指令,由n个运算部件执行.从在一个周期同时发射多条指令的特点来看,它与超标量处理方式有些相似,但它们的基本工作原理是有区别的.LVIW机器指令指令0指令1指令2指令3指令0指令1指令2指令3 超标量方式PU:处理模块 LVIW方式FU:功能模块超长指令字处理机VLIW与超标量处理方式的比较LVIW方式与超标量方式 的区别(1)LVIW方式是由编译程序对原程序中的指令判断并行运算的可能性,编译时从原程序的相邻指令抽出可并行的若干指令组成一条超长指令.LVIW处理机中的FU的个数是固定的,要想提高LVIW处理机同时发射指令的条数,需要重新设计新的LVIW指令格式,并重新设计编译. 超标量处理机依靠多个指令处理模块PU来支持多指令发射,一个PU 可以是一个指令流水线,每个PU 各自处理一条程序指令.程序运行时,指令的可并行性由PU硬件来检测,无需由编译来保证.因此,增加PU 的个数就可以提高超标量处理机的同时发射指令的条数.超长指令字处理机VLIW与超标量处理方式的比较LVIW方式与超标量方式 的区别(2)LVIW处理机中的各个PU一般分别是整数逻辑运算部件、浮点小数运算部件、访存操作部件及顺序控制部件等专用单功能部件,各PU是非同构的.若LVIW处理机中只有一个浮点小数运算部件,而程序中有2条相邻可并行浮点运算指令,那么,编译只能将它们组装到2条超长指令中.另外,若程序中连续若干条指令中都没有浮点运算指令,此时,超长指令中相应的浮点小数运算指令字段只能空缺.可以看出,虽然LVIW处理机的专用异构的PU会使硬件结构简单,但使得超长指令的指令字段的利用率不高. 超标量处理机的各FU必须是能实现所有程序指令功能的通用部件,一定是同构的,只要指令是可并行的,就可同时发射m条指令.超长指令字处理机VLIW与超标量处理方式的比较LVIW方式与超标量方式 的区别(3)LVIW方式是由编译抽出程序中可并行的操作嵌入LVIW指令中,编译对指令并行的调度是静态调度.因此,LVIW方式的处理性能在很大程度上取决于优化编译的能力.另外,由于是静态调度,指令中的访存等操作没有运行就不可能知道程序的物理地址流,也就不能完全解决数据相关问题.因此,经编译生成的LVIW指令中还有不可并行执行的操作,这就是造成LVIW指令字段实际利用率不高的重要原因. 超标量处理方式虽然也需要优化编译的支持,但是,这种支持是辅助性的.程序指令的并行调度主要是由超标量处理机的硬件来检测和动态调度的,即是对程序指令序列边执行边进行指令并行调度.超标量处理机只发射可执行的并行操作.超长指令字处理机VLIW与超标量处理方式的比较LVIW方式与超标量方式 的区别(4)LVIW指令格式固定,因此LVIW指令的译码比超标量译码容易.(5)超标量处理机的兼容性优于LVIW处理机. 超长指令字处理机2.超长指令字处理方式的主要特征(1)依靠编译组装超长指令 VLIW处理方式是在编译时判定程序的并行运算可能性,编译程序从原程序中抽出可能的并行运算组成一条超长指令,可以得到接近LVIW处理机中并行运算器数n的并行度.但是,在程序并行度较低时,LVIW指令中的运算器控制指令字段就有空闲,降低了指令字段的率.LVIW处理方式的并行运算的程度依赖于编译的并行化能力及应用程序本身的并行性程度.(2)硬件结构简单 因为程序指令的并行调度是由编译完成的,所以在运行时不需要采用硬件对运行程序的指令序列进行并行性检测和动态调度,硬件结构也比较简单.超长指令字处理机2.超长指令字处理方式的主要特征(3)适合细粒度的并行处理 VLIW处理方式用指令字段直接控制多个运算部件在指令这一级进行细粒度并行处理,而且,在LVIW处理机中,有多条总线连着运算器,用指令字段直接控制着这些总线的控制器,为运算器提供需要的数据链路,所以,通信开销很小.故LVIW处理方式适合于面向低级运算粒度并行处理.(4)指令系统的非兼容性 LVIW处理方式的超长指令格式是根据LVIW处理机中并行运算部件数来设计的,LVIW 处理机的硬件组成确定后,LVIW指令格式也就固定了,这可使LVIW处理机的指令系统和指令译码简单,但这也使得LVIW的指令系统同其他类型的处理机指令系统不兼容,即使是用LVIW处理方式开发不同并行性的LVIW处理机时也需要设计不同的指令系统.由于LVIW处理机缺乏对传统机硬件和软件的兼容性,尽管LVIW处理方式的并行思想在理论上是合理的,但至今无法进入计算机的主流.3.5.5多发射处理机的性能比较4种不同类型处理机的性能比较机器类型单发射处理机超标量处理机超流水处理机超标量超流水处理机流水线周期同时发射指令条数指令发射等待时间指令级并行度ILP1个时钟周期1条1个时钟周期11个时钟周期m条1个时钟周期m1/n时钟周期1条1/n时钟周期n1/n时钟周期m条1/n时钟周期m×n结论: 第一,超标量处理机的相对性能最高,其次是超标量超流水线处理机,超流水线处理机的相对性能最低,主要原因是: 1.超标量处理机在每个时钟周期的一开始就同时发射多条指令,而超流水线处理机则要把一个时钟周期平均分成多个流水线周期,每个流水线周期发射一条指令。因此,超流水线处理机的启动延迟比超标量处理机大。 2.条件转移造成的损失,超流水线处理机要比超标量处理机大。 3.在指令执行过程中的每一个功能段,超标量处理机都重复设置有多个相同的指令执行部件,而超流水线处理机只是把同一个指令执行部件分解为多个流水级。因此,超标量处理机指令执行部件的冲突要比超流水线处理机小。结论:第二,在实际设计超标量、超流水线、超标量超流水线处理机的指令级并行度时要适当,否则,有可能造成花费了大量的硬件,但实际上处理机所能达到的指令级并行度并不高。目前,一般认为m和n都不要超过4。第三,一个特定程序由于受到本身的数据相关和控制相关的限制,它的指令级并行度的最大值是确定的。这个最大值主要由程序自身的语义来决定,与这个程序运行在那一种处理机上无关。结论: 一个程序能够达到的实际指令级并行度还与所采用的调度算法有关。目前,国际上已经提出了多种开发指令级并行性的优化调度算法.对于没有条件转移操作,没有输入输出,没有程序调用和程序中断,单入口单出口的基本块程序,实现最优调度并不十分困难。 但是,对于一般程序,要充分开发程序中的指令级并行性,实现最优调度非常复杂,已经证明,这是一个NP完全问题。另外,实现最优调度所需要的代价很大,包括硬件代价和软件代价,通常需要编译器和硬件的结合才能获得比较好的调度效果。目前,开发程序指令级并行性的许多优化调度算法及编译技术还在进一步研究中。例3.103.6向量流水处理机及其性能什么是向量处理? 向量运算在数值运算中十分常见。(矩阵运算,FFT,图像图形,模拟仿真等等) 下面通过一个简单的例子来说明向量处理与标量处理的差别。先考察一个用FORTRAN语言编写的程序: DO 100 I=1,N A( I ) = B( I ) + C( I ) 100 B(I)= 2*A( I +1)什么是向量处理?一般机器可用下列指令序列来实现: INITIALIZE I = 110 READ B( I ) READ C( I ) ADD B( I ) + C( I ) STORE A( I ) ←B( I ) + C( I ) READ A( I + 1) MULTIPLY 2*A( I + 1 ) STORE B( I ) ←2 * A( I + 1) INCREMENT I ← I + 1; IF I ≤N GOTO 10 STOP标量标量指令序列标量处理一条标量指令只能处理一个或一对操作数向量程序上面的程序如果在向量处理机上进行编译,则只需几条指令向量指令: A(1:N)=B(1:N)+C(1:N) TEMP(1:N)=A(2:N+1) B(1:N)=2*TEMP(1:N) 向量:相互独立的数 向量处理:利用向量指令对相互独立的数的处理 向量指令:一条向量指令可以处理N个或N对操作数 显然向量指令的效率比标量指令的效率在此类运算中要高得多.向量流水处理机及其性能3.6.1向量处理方式3.6.2向量流水处理机的结构3.6.3向量流水处理机的性能向量处理方式 按照数组中各计算相继的次序,可以把向量处理方法分为三种: 1.横向处理方式; 2.纵向处理方式; 3.纵横处理方式.例:有四个长度为N的向量A、B、C、D。要完成下面的运算: D=A*(B+C) D=(d1,d2,…,dn) A=(a1,a2,…,an) B=(b1,b2,…,bn) C=(c1,c2,…,cn)问题:采用何种方式,才能最充分发挥流水线.横向处理方式计算是按行的方式从左向右横向地进行 先算d1=a1 * (b1 + c1) 再算d2=a2* (b2 + c2) … 最后算dn=an * (bn + cn)计算过程: bi + ci ? ki ki * ai ? di显然,流水线不能连续流动,WR相关频繁,适于标量处理机,不适于并行处理。——标量处理机处理方式.向量处理方式2.纵向处理方式按列方式从上到下纵向进行 b1 + c1? k1 b2 + c2 ? k2 … bn + cn ? kn k1 * a1 ? d1 k2 * a2? d2 … kn * an ? dn垂直纵向方式,流水线连续流动,无相关,无切换,只是对中间结果的存放需要更多的存储单元或寄存器组适于向量处理机,向量长度N 不受限制。缺点:对存储器流量要求高(相同的运算都用一条向量指令)向量处理方式3.纵横处理方式纵向处理和横向处理相结合(分组加工) 当前最常用1组: b 1~n + c 1~n ? u 1~n u 1~n * a 1~n ? d 1~n 2组: b n+1~2n + c n+1~2n ? u n+1~2n u n+1~2n * a n+1~2n ? d n+1~2n K+1组: b kn+1~N + c kn+1~N ? u kn+1~N u kn+1~N * a kn+1~N ? d kn+1~N N太长,超出了向量寄存器组纵寄存器的个数,可分组计算(把长度为N的向量分成长度为n的K个组。)N = k * n + r共k+1组 组内纵向,组间横向优点:减少了访存次数,降低了对存储器信息流量的要求,减少了因访存发生的冲突,提高了处理速度;对向量长度无限制。缺点:横向处理慢AB多端口存储器系统流水结构加法器C = A + B向量处理机的结构 为实现向量化处理,向量处理机的操作部件一般都采用流水线结构。下面是典型的向量加法器结构:一种能实现2个向量相加的流水结构的加法器实现时,存储器系统必须能为运算器提供连续的数据流,并接收来自运算器的运算结果.采取的所有技术都是为此目的。向量处理机要解决两个问题:设法维持连续的数据流(提供连续的A和B)。设法降低对存储器的压力。 向量处理机的结构向量处理机一般采取以下技术措施:提高存储器的带宽。例STAR-100,32体。增设高速中间存储器—— 向量寄存器。例(银河)YH-1,有8组向量寄存器,每组128个单元(每个单元64位)。 按向量操作对象及结果主要存放在寄存器中还是存放在存储器中,可分为两大类: 1.存储器——存储器结构2.寄存器——寄存器结构向量处理机的结构1.存储器-存储器结构主存储器由8个模块构成,它的带宽是单个模块的8倍。流水线运算器与主存储器系统之间有三条相互独立的数据通路,各数据通路可以同时工作,但是一个存储器模块在某一时刻只能为一个通路服务。(1)基本结构1.存储器-存储器结构 设向量A、B、C各由八个分量组成,计算C=A+B最理想的方法是:A[0],A[1],…,A[7]分别存放在模块0,模块1,…,模块7; B[0]存放在模块2,B [1]存放在模块3,…,B[5]存放在模块7,B[6]存放在模块0,B[7]存放在模块1; C[0]存放在模块4,C[3]存放在模块7,C[4]存放在模块0,…,C[7]存放在模块3。 这样存放便于计算地址. 也防止发生冲突。 (2)向量运算的实现向量在存储系统中的存放1.存储器-存储器结构横轴代表时间,纵轴代表存储器模块和流水线部件的工作情况。假设运算流水线分为四段,输入数据进入流水线四个时钟周期之后产生相应的输出值。数据充满之后,流水线就一直处于忙状态。图中相应格内用数字标出的段表示正在工作,符号“RA0”表示正在从该模块读出向量A的下标为0的元素。(2)向量运算的实现执行时序向量处理机的结构2.寄存器-寄存器结构 使主存有较高带宽的另一种方法是由一级或多级中间存储器形成一个层次结构的存储器系统,其中带宽最高的这一级存储器安排在距处理器最近的位置。当处理器需要向量时,把向量从主存送到速度最快的这一级存储器。中间几级存储器起着把数据送往最快速存储器时或使用后送回主存储器时中间存储的作用,即寄存器一寄存器结构。 美国Cray公司1976 推出的产品Cray-l系统,是一台运算速度达亿次/秒以上的巨型机。速度高的一个原因是它采用了层次结构的存储器系统。 它使计算机模拟成为重要的科学研究方法之一. 现在的向量机大多采用寄存器-寄存器工作方式. Cray-2, Cray x-Mp, CrayY-MP, C-90(4个机群,64Gflops) , NEC SX-X, 富士通的vP-2000,VPP500(335 Gflops) 中国的YH(银河机)向量处理机的结构2.寄存器-寄存器结构以Cray-l系统为例Cray-1 由中央处理机、 诊断维护控制处理机、大容量磁盘存储子系统、前端处理机组成的功能分布异构型多处理机。其简化框图如下图.Cray-l系统结构在主存和运算器之间有一级或两级的中间存储器对于向量运算:中间存储器由V寄存器组成,即向量寄存器,由8个具有64个分量的寄存器组成,每个分量为一个64位寄存器。向量指令能对向量寄存器的分量进行连续的重复处理。执行向量指令时,流水结构运算器在一个时钟周期内从两个V寄存器得到一对操作数,完成某种操作后用一个时钟周期的时间把结果送入另一个V寄存器。主存储器与V寄存器之间的数据传送以成组传送的方式进行。向量流水线是从向量寄存器而不是从主存储器取数据。同样,从流水线输出的结果向量也是送回向量寄存器。Cray-l系统结构对于标量运算:有两级中间存储器。速度快的一级是8个64位的S寄存器,它是标量寄存器。直接与标量运算流水线相连,为标量运算和逻辑运算提供源寄存器和结果寄存器。 另一级速度稍慢,但仍具很高速的中间存储器T寄存器。它由64个标量寄存器组成,每个寄存器字长64位。主存储器与T寄存器之间以成组传送的方式进行数据传送。由T寄存器组成的标量存储器的作用与Cache存储器相同,都是为了保存那些在高速的标量存储器中装不下的数据。同样,新的数据也可以在被运算器使用之前就预取到中间标量存储器中。Cray-l系统结构A寄存器:8个24位,用作访问存储器的地址寄存器和变址寄存器,还可以用来提供移位的计数值和循环控制值.B寄存器:64个24位,用作A寄存器的中间存储器,可以存放需要重复使用的数据,如循环记数值.主存储器与B寄存器之间的数据传送是成组传送方式进行.指令缓冲器:256个16位的寄存器组成,用来存放指令执行之前预取的指令.向量处理机的结构3.两种结构的简单比较第一种结构是依靠主存来保证流水线所需要的操作数。因此主存必须具有至少和运算器所要求带宽一样高的带宽。这就要求主存或者存取速度足够快,或者分为多个独立的存储模块,或者两者都具备,因为运算器要求的最大带宽非常高.第二种结构是通过容量比主存小得多的中间存储器即寄存器来保证很高的带宽。这样,低速存取的主存就不会妨碍流水结构运算器的连续运行。第二种结构的另一好处是流水结构运算器可以重叠进行,因为高速寄存器的带宽足以满足几个流水结构运算部件的带宽要求.向量流水处理机的性能1. 向量指令的处理时间Tvp2. 向量长度为无穷大时的向量处理机的最大性能R?3. 半性能向量长度n1/24. 向量方式的工作速度优于标量串行方式工作时所需的向量长度临界值nv1.向量指令的处理时间Tvp在向量处理机上,执行一条向量长度为 n的向量指令的时间,可表示为: Tvp=Ts+ Tvf+(n-1)×Tc 其中: Tvp 执行一条向量指令的时间。 Ts 向量流水线的建立时间,包括向量起始地址的设置、计数器加1、条件转移指令执行等。 Tvf 向量流水线的流过时间,一条指令从开始译码到流过流水线个结果元素的时间。 Tc向量流水线瓶颈段的执行时间。 n向量长度 向量指令的处理时间Tvp如果无瓶颈,则有: Tvp=[s+e+(n-1)]×△t 其中: s 向量流水线的建立时间所需的时钟周期数 e 向量流水线的流过时间所需的时钟周期数 n 向量长度, △t时钟周期一组向量操作的执行时间主要取决于: 向量长度 流水功能部件冲突 数据相关编队:能在一个时钟周期内一起开始执行的多条向量指令成为一个编队.一个编队中的向量指令一定不存在流水功能部件的冲突和数据的相关性.向量指令的处理时间Tvp例 1:下面操作能分成几个编队?每种流水功能部件只有一个: LV V1, Rx ; 取向量x MULTSV V2, F0, V1 ; 向量×标量 LV V3, Ry ; 取向量y ADDV V4, V2, V3 ; 加法 SV Ry, V4 ; 存结果解:能并行的一组向量指令为一个编队。 有4个编队: (1) LV (2) MULTSV LV (3) ADDV (4) SV 例2:在向量流水处理机上,执行下述3条向量指令来计算向量D=A×(B+C),其中,结果向量D的元素di=ai×(bi+ci),i=1,2,…,N.N为向量元素个数.①V3←存储器;访存取A送入向量寄存器V3②V2←V0+V1 ;B+C→K③V4←V2*V3 ;K*A→D 设启动寄存器、启动乘/加流水线、数据打入寄存器各需时△t,向量加流水线△t,向量乘流水线△t. 求出分别采用下列2种工作方式时,完成3条指令所需的时间.(1)3条指令依序串行.(2)指令①与指令②并行执行完后,再执行指令③.解:(1)向量指令V3←存储器 所需流水线建立的时间为启动存储器所需时钟周期数,即有S1=1;访存取向量A并打入向量寄存器V3中,流水操作打入A的第一个元素所需时钟周期数为6△t+△t=7 △t,即e1=7;完成向量A其余N-1个元素的打入所需时钟周期数为(N-1).因此,该向量指令单独流水执行所需时间 T1=[s1+e1+(N-1)] △t=[1+7+(N-1)] △t=(7+N) △t向量指令V2 ←V0+V1单独流水执行所需时间 T2=[s2+e2+(N-1)] △t=[1+(6+1)+(N-1)] △t=(7+N) △t向量指令V4←V2*V3单独流水执行所需时间 T3=[1+(7+1)+(N-1)] △t=(8+N) △t因此,3条指令之间串行执行,共需时间 T=T1+T2+T3=(22+3N) △t(2)由于指令①和指令②同时执行,所需时间T’=max(T1,T2)= (7+N) △t,然后执行指令③,因此,共需时间 T=T’+T3= (15+2N) △t向量指令的处理时间Tvp一个编队的执行时间: Tchime,与向量长度无关一组m个编队的执行时间: m ×Tchime,向量长度为n时,整个程序的向量操作的执行时间为: n × m时钟周期 考虑向量的启动时间Tstart:向量操作流水线的延迟,等于流水功能部件的流水段数,即流水线.最大性能R∞R∞ 表示 当向量长度为无穷大时的向量流水线的最大性能,如峰值速度 MFLOPS: 3. 半性能向量长度n1/2定义:达到一半R∞ 值所需的向量长度, 它是评价向量流水线建立时间对性能影响的参数,即为建立流水线而导致的性能损失。若向量长度 n=n ?,表示整个向量流水处理时间中只有一半时间在作有效工作。 希望n ?较小好,Cray-1: 10~20 Cyber-205: 1004. 向量方式的工作速度优于标量串行方式工作是所需的向量长度临界值nv向量流水线方式的工作速度优于标量串行方式工作时所需的向量长度临界值,用于衡量建立时间,标量、向量速度比对性能的影响。

  “原创力文档”前称为“文档投稿赚钱网”,本网站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】

http://deafbook.net/xianxingzhilingzhan/292.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有