资源描述
,*,*,*,计算机组成原理,Principles of,Computer Organization,广义双语教学课程,青岛理工大学,校级精品课程,http:/ 中央处理器,Chapter,6 Central Processing Unit,The description of the basic operation of a CPU offered in the previous section describes the simplest form that a CPU can take.This type of CPU,usually referred to as subscalar,operates on and executes one instruction on one or two pieces of data at a time.,Model of a subscalar CPU.,(5),3,This process gives rise to an inherent inefficiency in subscalar CPUs.Since only one instruction is executed at a time,the entire CPU must wait for that instruction to complete before proceeding to the next instruction.,This design,wherein the CPUs execution resources can operate on only one instruction at a time,can only possibly reach scalar performance(one instruction per clock).,Model of a subscalar CPU.,However,the performance is nearly always subscalar(less than one instruction per cycle).,4,6.5 流水线工作原理,指令的解释,计算机的速度可以用,每秒执行,的,指令条数,来表示。,为了加快单条指令的解释过程可采用的方法有:,选用更高速的器件,减少解释过程所需拍数,使解释过程的各个动作并行执行,指令的解释可以有三种,控制方式:顺序,重叠,流水。,怎样加快一条指令的解释过程?,5,1顺序方式,各条机器指令间顺序串行执行,。,一条指令执行完之后,,,才取下条指令来执行,。,指令内的各条微指令也是顺序串行执行的,。,例如,把解释一条机器指令分为:,取指,分析,执行,3个子过程。,取指k,分析k,执行k,取指k+1,分析k+1,执行k+1,取指k+1,取指k+2,顺序方式的优点是控制简单。,缺点是速度上不去,机器各部件的利用率不高。,6,2,重叠方式,Overlap,在,解释,第,k条指令,的,操作完成,之,前,,,就可,开始解释,第,k+1条指令,。,例如,,,把解释一条机器指令分为,:,取指,,,执行,,,两个子过程,。,取指k,执行k,执行k+1,取指k+1,取指k+2,执行k+2,重叠,解释不能加快一条指令的实现,但能加快相邻两条指令以至一段程序的解释。,重叠方式把,一条指令的解释过程分解成,“,取指,”,“,执行,”,两个子过程,。,若每个子过程需t时间,,,一条指令需2,t时间完成,。,机器每隔t时间完成,一条指令的解释,。,吞吐率提高一倍,。,t,7,取指k,执行k,执行k+1,取指k+1,取指k+2,执行k+2,取指k+3,执行k+3,取指k,执行k,执行k+1,取指k+1,取指k+2,执行k+2,取指k+3,执行k+3,重叠方式与顺序方式的比较,取指k,执行k,执行k+1,取指k+1,取指k+2,执行k+2,一次重叠,理想情况,实际情况?,不同指令在各个阶段所需时间不同,8,3,流水方式,Pipelining,将一个重复的时序过程分解成为多个,子过程,Subprocess。,每个子过程都可有效地在其专用功能段上与其它子过程同时执行。,取指令,指令,译码,取操,作数,执行,入口,出口,例如,,分成4个,功能段,Segment:,One of the simplest methods used to accomplish increased parallelism is to begin the first steps of instruction fetching and decoding before the prior instruction finishes executing.,This is the simplest form of a technique known as instruction pipelining,and is utilized in almost all modern general-purpose CPUs.,9,取指令,指令,译码,取操,作数,执行,时空图,Space-Time-Diagram,1,1,1,1,2,2,2,2,3,4,3,4,3,4,3,4,5,6,5,6,5,6,5,6,7,8,9,7,8,9,7,8,9,7,8,9,空间,(功能段),取指,分析,取数,执行,时间,通过时间,排空时间,断流,t,0,t,1,t,2,t,3,t,4,t,5,t,6,t,7,t,8,t,9,t,10,t,11,t,12,t,13,t,14,入口,出口,各功能段时间相等,4个,功能段,Segment:,10,各功能段时间不等,1,1,1,1,2,2,2,2,3,3,3,3,空间,(功能段),取指,分析,取数,执行,时间,t,0,t,1,t,2,t,3,t,4,t,5,t,6,t,7,t,8,t,9,t,10,t,11,t,12,t,13,t,14,4,4,4,4,气泡,时空图,Space-Time-Diagram,Bubble,In computing,a pipeline is a set of data processing elements connected in series,so that the output of one element is the input of the next one.The elements of a pipeline are often executed in parallel or in time-sliced fashion.,11,流水线的主要技术指标有,:,吞吐率,,,加速比,,,效率,,,等,。,吞吐率,Throughput Rate,最大吞吐率:,如果,各功能段时间,都,相等,,,t,i,=t,0,TP,max,=1/t,0,如果,各功能段时间不相等,,,TP,max,=1/max(t,i,),取决于,最慢,的,段,。,当流水线在连续流动达到稳定状态后的吞吐率。,单位时间内流水线所能处理的任务数(或指令数),或流水线能输出的结果的数量。,12,加速比,Speedup Ratio,m段流水线的速度与等效的非流水线的速度之比。,若各段时间相等,完成n个任务的时间:,T,流水,=mt,0,+(n-1)t,0,T,非流水,=nmt,0,加速比:,13,加速比 Speedup Ratio,m段流水线的速度与等效的非流水线的速度之比。,若各段时间不等,加速比:,t,j,是最慢的一,段时间,14,效率,Efficiency,设,各段时间相等,每段,效率e,i,相等,,,e,0,=e,1,=e,m,:,整个流水线的效率,若各段时间不等,,,则各段的效率也不等,,,整个流水线的效率,e,0,=,nt,0,/T=n/(m+(n-1),流水线上的设备利用率就是效率。,流水线上的各段有,“通过时间”和“排空时间”,,并非都是满负荷工作。,15,In the best case scenario,this pipeline can sustain a completion rate of one instruction per cycle.,Pipelining allows more than one instruction to be executed at any given time by breaking down the execution pathway into discrete stages.This separation can be compared to an assembly line,in which an instruction is made more complete at each stage until it exits the execution pipeline and is retired.,Basic five-stage pipeline.,Instruction level parallelism,16,流水技术的特点,流水线可分成若干个互有联系的,子过程,分别由专用功能段实现。,实现子过程的功能段所需时间尽可能相等,避免因不等而产生处理的瓶颈,形成流水线的断流。,形成,流水处理需要一段准备时间,称为“通过时间”。此后,流水过程才能稳定。,指令流发生不是顺序执行时,会使流水过程中断。再形成流水过程需“通过时间”。要提高效率,不应常,断流。,流水线技术适用于大量重复的程序过程。只有在输入端能连续地提供任务,流水线效率才能充分发挥。,17,流水线结构,指令流水线,Instruction Pipeline,要求指令部件每个节拍输出一条指令给执行部件。指令流水过程要分成更多的子过程。,在指令流水过程中要不断访存,所需时间不确定,难以用统一的时钟控制各段工作。,取指令部件,指令译码部件,地址形成部件,取操作数部件,回写结果部件,修改指令指针部件,操作执行部件,18,流水线结构,运算操作流水线,Arithmetic Pipelining,按照指令的要求,选择合适的算法,把运算过程分成多个子过程。使各个子过程的时间尽量相等。,各段与一个统一的时钟同步。,在各段间增加锁存器。,对阶功能部件,锁 存 器,尾数加部件,锁 存 器,规格化部件,锁 存 器,19,流水线要解决的技术问题,要实现重叠和流水,还要解决,:,访存冲突,相关,等问题,。,1访存冲突,Resource Conflicts,在同一时间段,“分析k”在形成操作数有效地址后要访存取操作数,而“取指k+1”也需访存取指令。,取指k,分析k,执行k,取指k+1,分析k+1,执行k+1,取指k+1,取指k+1,分析k+2,执行k+2,取指k+2,20,解决访存冲突的方法:,采用“哈佛结构”。指令和操作数分别存放在2个独立编址且可同时访问的存储器内。,采用多体交叉存储器。使第k条指令的操作数与第k+1条指令不在同一个存储体内。,设置指令缓冲寄存器组。把若干条指令预先从主存取到指缓。取指令部件从指缓取指令,执行部件从主存取操作数,互相不干扰。只要指缓不满,就自动从主存预取指令。,取指k,分析k,执行k,取指k+1,分析k+1,执行k+1,取指k+1,取指k+1,分析k+2,执行k+2,取指k+2,21,2流水线相关处理,造成流水线断流的原因,除了编译形成的目标程序不能发挥流水结构的作用,或存储系统供应不上为连续流动所需的指令和操作数外,就是由于出现了相关、转移和中断等问题。,转移和中断等现象与它们之后的指令有关联,从而不能同时解释,称为全局性相关,Global Dependency,。,与主存操作数或者通用寄存器的读写等关联的,称为局部性相关,Local Dependency,。,22,数相关,Data Dependency,如果第k+1条指令的操作数地址M正好是第k条指令存放运算结果的地址(主存单元或寄存器),称为“先写后读”相关。,取指k,分析k,
展开阅读全文