Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 标准规范 > 流水线设计中的关键技术研究

流水线设计中的关键技术研究

收藏

本作品内容为流水线设计中的关键技术研究,格式为 docx ,大小 289860 KB ,页数为 30页

流水线设计中的关键技术研究


('0流水线设计中的关键技术研究..................................................................................................................................1摘要.............................................................................................................................................................................1第1章流水线简介....................................................................................................................................................21.1流水线产生背景............................................................................................................................................21.2流水线概念....................................................................................................................................................21.2.1指令重叠.............................................................................................................................................31.2.1流水线的特点.....................................................................................................................................41.2.3时空图.................................................................................................................................................41.3流水线的具体分类........................................................................................................................................51.4流水线的相关问题及解决办法....................................................................................................................61.4.1资源相关.............................................................................................................................................61.4.2数据相关.............................................................................................................................................71.4.3控制相关.............................................................................................................................................91.5流水线的主要性能........................................................................................................................................91.5.1吞吐率.................................................................................................................................................91.5.2实际吞吐率和加速比.......................................................................................................................101.5.3效率...................................................................................................................................................111.6影响因素......................................................................................................................................................12第2章现代RISC中的流水线技术..........................................................................................................................132.1超流水线技术..............................................................................................................................................132.2超标量技术..................................................................................................................................................132.3超长指令字..................................................................................................................................................142.4向量机..........................................................................................................................................................152.5SIMD技术....................................................................................................................................................152.6流水技术在Pentium系列微处理器中的实现...........................................................................................15第3章中断处理与流水线调度..............................................................................................................................173.1中断处理......................................................................................................................................................173.2流水线调度..................................................................................................................................................17第4章指令流水线设计..........................................................................................................................................204.1流水线理想假设..........................................................................................................................................204.1.1一致的运算分量...............................................................................................................................214.1.2重复的运算.......................................................................................................................................214.1.3独立的运算.......................................................................................................................................224.2指令流水线..................................................................................................................................................224.2.1指令流水线设计...............................................................................................................................224.2.2指令集体系结构的影响...................................................................................................................234.2.3流水线分级的考虑...........................................................................................................................244.3流水线处理器设计......................................................................................................................................254.3.1保持流水段均衡...............................................................................................................................254.3.2统一指令类型...................................................................................................................................254.3.3减少流水线停顿...............................................................................................................................28第5章总结与展望..................................................................................................................................................29参考文献....................................................................................................................................................................301流水线设计中的关键技术研究摘要本文详细阐述了流水线技术的产生背景、概念、特点、具体分类、主要性能以及相关问题和解决办法。其中针对流水线的时空图、吞吐率、加速比和效率结合图和数学公式进行了深刻而详细的说明。同时对现代RISC中的流水线技术进行了多方面介绍。然后就流水线的中断与流水线调度进行了研究,其中关于调度问题主要讲了非流水线技术的调度,结合预约表来详细说明非流水线是如何调度的。最后主要介绍了指令流水线设计,包括流水线理想设计、指令流水线、流水线处理器设计等。流水线是指在程序执行时多条指令重叠进行操作的一种技术,指令流水执行是将指令执行分成几个子过程,每个子过程对应一个工位,称为流水级或流水节拍,这个工位在计算机里就是可以重叠工作的功能部件,称为流水部件。这些不同的功能部件同时处理不同指令的同子过程。流水级一个连着一个形成一个流水线,一条指令流过所有的流水级,就完成了他的任务。他通过提高各流水部件的利用率提高指令的平均执行速度,在CPU流水线中,有一些称为冲突的情形,他使得指令流中下一条指令无法在设计的时钟周期内执行,这些冲突将会降低流水线可能获得的理想性关键字:流水线技术;RISC;中断处理;流水线调度;指令流水线设计;2第1章流水线简介1.1流水线产生背景借鉴了工业流水线制造的思想,现代CPU也采用了流水线设计。在工业制造中采用流水线可以提高单位时间的生产量;同样在CPU中采用流水线设计也有助于提高CPU的频率。先以汽车装配为例来解释流水线的工作方式。假设装配一辆汽车需要4个步骤:1.冲压:制作车身外壳和底盘等部件,2.焊接:将冲压成形后的各部件焊接成车身,3.涂装:将车身等主要部件清洗、化学处理、打磨、喷漆和烘干,4.总装:将各部件(包括发动机和向外采购的零部件)组装成车;同时对应地需要冲压、焊接、涂装和总装四个工人。采用流水线的制造方式,同一时刻四辆汽车在装配。如果不采用流水线,那么第一辆汽车依次经过上述四个步骤装配完成之后,下一辆汽车才开始进行装配,最早期的工业制造就是采用的这种原始的方式。未采用流水线的原始制造方式,同一时刻只有一辆汽车在装配。不久之后就发现,某个时段中一辆汽车在进行装配时,其它三个工人处于闲置状态,显然这是对资源的极大浪费!于是开始思考能有效利用资源的方法:在第一辆汽车经过冲压进入焊接工序的时候,立刻开始进行第二辆汽车的冲压,而不是等到第一辆汽车经过全部四个工序后才开始。之后的每一辆汽车都是在前一辆冲压完毕后立刻进入冲压工序,这样在后续生产中就能够保证四个工人一直处于运行状态,不会造成人员的闲置。这样的生产方式就好似流水川流不息,因此被称为流水线。CPU的工作也可以大致分为指令的获取、解码、运算和结果的写入四个步骤,采用流水线设计之后,指令(好比待装配的汽车)就可以连续不断地进行处理。在同一个较长的时间段内,显然拥有流水线设计的CPU能够处理更多的指令。1.2流水线概念计算机中的流水线是把一个重复的过程分解为若干个子过程,每个子过程与其他子过程并行进行。由于这种工作方式与工厂中的生产流水线十分相似,因此称为流水线技术。流水线技术是一种非常经济、对提高计算机的运算速度非常有效的技术。采用流水线技术只需增加少量硬件就能把计算机的运算速度提高几倍,成为计算机中普遍使用的一种并行处理技术。计算机各个部分几乎都可以采用流水线技术,运算器中的操作部件,如浮点加法器、浮点乘法器等可以采用流水线,称为操作部件流水线。多个计算机之间,通过存储器连接,也可以采用流水线,称为宏流水线。如果指令的执行过程可以采用流水线,那么称为指令流水线[1]。3图1.1浮点加法流水线的时空图如图1.1只用1-8八个时钟周期就完成了1-5五条指令的运行。流水线技术的指挥控制方法有三种:序列的方法,重叠,运行模式。顺序法是指机器指令序列之间的串行执行的机器指令,和每个微指令的执行顺序。虽然这种方法的优点是控制简单但速度上不去,利用率低的机器零件。重叠模式是指解释第钾指令操作完成之前开始的钾解释。通常使用的重叠,即在任何时间,命令解析单元和指令执行部只有相邻指令重叠的解释。这意味着指令解释速度增加,控制不是很复杂,但出现冲突,转移,相关的问题,这些都是需要在设计解决。水是一个并行或并行嵌入计算机系统中的一种形式。它是重叠的连续过程分解为一个进程的个数,每个进程的特殊模块独立有效的并行工程技术。“流”可以被视为“重叠”的延伸。不同的是一个“重叠”只是一个指令的解释是分解成2个过程,与“水”分解为多个子过程。1.2.1指令重叠一个指令执行过程可以分为取指令,类型和执行一三个过程(图1.2)。取指令,取出指令,指令寄存器。教学分析指指令的操作码进行译码,解决和地址字段地址操作数的真正形成,这是地址读取操作,但准备取下一条指令是预先形成的下一条指令的地址。指令执行是指一些操作,加工业务,或存储操作结果。指令的重叠解释方法是指,在解释的指令操作完成之前,开始解释钾。假设这三个过程,分别以不同的硬件(命令控制器,分析和执行单元),当K线指令在分析阶段,该控制器在空闲状态,这个时候可以为钾到取指令操作,当K线的指令被执行时,解析器在空闲状态,并可以进行钾分析(图1.3)。显然,重叠的解释方式和不能加快指令来实现的,但可以加速相邻的指令和程序的解释[2]。取指令k分析k执行k取指令k+1分析k+1执行k+1图1.2机器指令的顺序执行方式图1.3指令的重叠解释方式取指令k+2分析k+2执行k+241.2.1流水线的特点流水线技术的采用的目的只有一个:使指令的执行速度或数据的处理速度更快。在处理机采用流水线方式与采用传统的串行方式相比,具有如下特点:1、在流水线中处理的必须是连续任务,只有连续不断地提供任务才能充分发挥流水线的效率。2、把一个任务(一条指令或一个操作)分解为几个有联系的子任务,每个子任务由一个专门的功能部件来实现。因此,流水线实际上是把一个大的功能部件分解为多个独立的功能部件,并依靠多个功能部件并行工作来缩短程序的执行时间。在流水线中,一个子任务通常称为一个子过程,或流水线中的一个功能段。3、在流水线的每一个功能部件的后面都要有一个缓冲寄存器,用于保存本段的执行结果。4、流水线中各段的时间应尽量相等,否则将引起“堵塞”、“断流”等。在理想情况下,各流水线所需要的时间是相等的,流水线填满后每隔△t时间就会有一个结果流出流水线。5、流水线的工作一般分为3个阶段,即建立(填入)、填满和排空。简单地说,流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指令的另一些操作步骤。这样显然可加速一段程序的运行过程。1.2.3时空图描述流水线的工作,最常用的方法是采用“时空图”,即解释指令的时(间)-空(间)关系。图1.4描述流水线工作过程的时空图在时空图中,横坐标表示时间,也就是输入到流水线中的各个任务在流水线中所经过的时间。当流水线中的各个功能部件的执行时间都相等时,横坐标被分割成相等长度的时间段。纵坐标表示空间,即流水线的各个子过程。在时空图中,流水线中一个子过程通常称为“功能段”。从图1.4的流水线时空图中可以看出各个任务在流水线的各段中流动的过程。图中的1、2表示处理机所处理的第1、2条指令,从横坐标方向看,流水线中的各个功能部件在逐个部件地完成自己的任务,例如,在完成“1”任务之后,紧接着完成任务“2”、任务“3”、任务“4”;从纵坐标方向看,在同一个时间段内有多的功能段在同时工作,例如,在第二个时间段期5间,规格化部件在做第1个任务的第2个子任务的同时,也在做第2个任务的第1个子任务。用图3的时空图就可以非常清楚地看出,非流水方式与流水线方式的效率差别很大:图1.5顺序方式和流水方式的时空图从图1.5可以清楚地计算出,同样完成4个任务,顺序方式用16个时间段,但流水方式却只用7个时间段。1.3流水线的具体分类流水线功能繁杂,种类也非常多;如果按照处理级别来分类,流水线可以有操作部件级、指令级和处理机级;如果按照流水线可以完成的动作的数量来分类,又可以分为单功能和多功能流水线;如果按照流水线内部的功能部件的连接方式来分类,则有线性流水线和非线性流水线;按照可处理对象来分类,还可以有标量流水线和向量流水线。流水线的分类:1、按处理级别分:(1)功能部件级:在实现较为复杂的运算时采用。(2)指令级:将一条指令执行过程分为多个阶段。(3)处理器间级:每个处理器完成其专门的任务。2、按完成的功能分类:6(1)单功能流水线:只完成一种如乘法或浮点运算等,多用于数字信号处理器(DSP),各处理器可并行完成各自的功能,加快整机处理速度。(2)多功能流水线:在不同情况下可完成不同功能。3、按连接的方式分类:(1)静态流水线:同一时间内,多功能结构只能按一种功能的连接方式工作。(1)动态流水线:同一时间内,可以有多种功能的连接方式同时工作。4、按处理的数据类型分类:(1)标量流水线:一般数据。(2)向量流水线:矢量数据。X+Y=Z每一个代表一维数据。5、流水线结构上分类:(1)线性流水线:指各功能模块顺序串行连接,无反馈回路,如前面介绍的。(2)非线性流水线:带有反馈回路的流水线。1.4流水线的相关问题及解决办法在指令流水线中经常有一些被称为"相关"的情况发生,它使得指令序列中下一条指令无法按照设计的时钟周期执行,这些"相关"可能会降低流水线可以获得的理想性能。流水线中的相关可以分为以下三种类型:第一种是资源相关,是指令在重叠执行的过程中,硬件资源满足不了指令重叠执行的要求,发生硬件资源冲突而产生的相关。第二种是数据相关,是指在同时重叠执行的几条指令中,一条指令依赖于前面指令执行结果数据,但是又得不到时发生的相关。第三种是控制相关,它是指流水线中的分支指令或者其他需要改写PC的指令造成的相关。流水线相关问题是流水线执行过程中的主要障碍,会给流水线中指令序列的顺利执行带来许多不利的影响。如果不能较好的处理流水线相关问题,就可能影响流水线的性能,甚至使程序运行产生错误的结果[3]。1.4.1资源相关资源相关是指多条指令进入流水线后在同一个Δt内争用同一功能部件所发生的相关。假设在程序次序中指令I2紧跟指令I1,如果两条指令之间存在资源相关,则用“”表示。解决存储器资源相关的方法主要有以下五种:(1)从时间上推后下一条指令的访存操作。(2)让操作数和指令分别存放于两个独立编址且可同时访问的主存储器中。(3)仍然维持指令和操作数混存,但采用多模块交叉主存结构。(4)在CPU内增设指令Cache。(5)在CPU内增设指令Cache和数据Cache。71.4.2数据相关数据相关是指由于相邻的两条或多条指令使用了相同的数据地址(包括寄存器地址和存储单元地址)而发生的关联,它用来说明指令间的有序关系。常见的数据相关包括先写后读(RAW)相关、先读后写(WAR)相关和写写(WAW)相关。(1)先写后读相关如果指令I1到指令I2存在执行通路,即I1执行完后,一定可以执行I2,而且如果I1的输出(寄存器或赋值变量)与I2的某一个输入(用作操作数)相同,则称指令I2与指令I1存在先写后读相关,用“”表示。(2)先读后写相关如果在程序次序中,指令I2在指令I1之后,而且如果I2的输出(寄存器或赋值变量)与I1的某一个输入(用作操作数)相同,则称指令I2与指令I1存在先读后写相关,用“”表示。(3)写写相关在流水解释指令时,若是按指令顺序逐条顺序发射顺序解释,则在解决数据相关时只需要考虑先写后读相关,而不必考虑先读后写相关和写写相关;在指令乱序解释时,除了考虑先写后读相关外,还必须考虑先读后写相关和写写相关。例如,有如图1.6所示是三条指令依次流入的流水线:图1.6三条指令依次流入的流水线如图1.7三条指令流水解释的时空图I1:ADDR1,R2,R3/(R2)+(R3)→R1/I2:SUBR1,R4,R5/(R4)-(R5)→R1/I3:ANDR4,R1,R7/(R1)(R7)→R4/∧I1:ADDR1,R2,R3I2:SUBR1,R4,R5I3:ANDR4,R1,R78解决先写后读相关的方法主要有以下两种:(1)推后相关单元的读。这里所指相关单元既包括寄存器也包括存储单元。图1.8三条指令流水解释的时空图(用方法1解决数据相关)图1.9三条指令流水解释的时空图(用方法2解决数据相关)1.4.3控制相关控制相关是指由转移指令引起的相关。解决控制相关的方法主要有以下两种:(1)延迟转移技术。由编译程序重排指令序列来实现,它将转移指令与其前面的与转移指令无关的一条或几条指令对换位置,让成功转移总是在紧跟的指令被执行之后发生,从而使预取的指令不作废。I1:ADDR1,R2,R3I2:SUBR1,R4,R5I3:ANDR4,R1,R79(2)转移预测技术。直接由硬件来实现,转移预测技术可分为静态转移预测和动态转移预测两种。1.5流水线的主要性能1.5.1吞吐率吞吐率指单位时间内流水线能处理的指令条数或能输出的数据量。吞吐率越高,计算机系统的处理能力就越强。对流水线而言,吞吐率就是单位时间内能流出的任务数或能流出的结果数。最大吞吐率是指在流水线正常满负荷工作时,单位时间内机器所能处理的最多指令条数或机器能输出的最多结果数。如图1.10所是一个简单流水线的过程。图1.10简单流水线的过程如果指令的解释细分为n个子过程,且各个子过程所需的时间分别为Δt1、Δt2、Δt3、…、Δtn,时钟周期应当为max{Δt1、Δt2、Δt3、…、Δtn},对应于流水线的最大吞吐率为:由此可以看出,流水线的最大吞吐率取决于最慢子过程所需要的时间。我们把流水线中经过时间最长的子过程称为“瓶颈”子过程。为了提高流水线的最大吞吐率,应当设法消除此瓶颈子过程。消除瓶颈子过程的方法有两种:(1)将瓶颈子过程再细分;(2)重复设置多套瓶颈段并联。1.5.2实际吞吐率和加速比流水线的实际吞吐率是指从启动流水线处理机开始到流水线操作结束,在单位时间内能流出的任务数或能流出的结果数。加速比是指流水线工作相对于等效的非流水线顺序串行工作方式,速度提高的比值。10(1)设指令流水线由m段组成,且各段经过的时间均为Δt,在不发生任何相关的前提下完成n条指令的解释1)流水线的实际吞吐率为:由以上表达式可以看出,实际吞吐率总是小于最大吞吐率,并且只有当n>>m时,才能使实际吞吐率趋近于最大吞吐率。2)流水线的加速比为:由以上表达式可以看出,当n>>m时,流水线的加速比Sp才接近于流水线的段数m,也就是说,当流水线各段时间都一样时,其最大加速比等于流水线的段数m。因此,在n>>m的前提下,增大流水线的段数m,可以提高流水线的加速比Sp。(2)设指令流水线由m段组成,但各段经过的时间不相等,其中“瓶颈”段时间为,在不发生任何相关的前提下完成n条指令的解释。1)流水线的实际吞吐率为:112)流水线的加速比为:1.5.3效率效率是指流水线的设备利用率。由于流水线需要有建立时间和排空时间,在连续完成n个任务的时间里,各段并不是满负荷工作的,因此流水线的效率一定小于1。以下分两种情况来讨论整个流水线的效率:(1)设指令流水线由m段组成,且各段经过的时间均为Δt,在不发生任何相关的前提下完成n条指令的解释,如图1.11所示。图1.11m段指令流水线(2)设指令流水线由m段组成,但各段经过的时间不相等,其中“瓶颈”段时间为,在不发生任何相关的前提下完成n条指令的解释由于流水线的效率实际上就是n个任务占用的时空区和m个段总的时空区面积之比,因此,整个流水线的效率为:12比较各种公式,可以得出如下三个结论:TP=流水解释的指令总数或流出的结果数流水解释所花的时间Sp=顺序串行解释所花的时间流水解释所花的时间1.6影响因素流水线处理方式是一种时间重叠并行处理的处理技术,具体地说,就是流水线可以在同一个时间启动2个或以上的操作,借此来提高性能。为了实现这一点,流水线必须要时时保存畅通,让任务充分流水,但在实际中,会出现2种情况使流水线停顿下来或不能启动:1、多个任务在同一时间周期内争用同一个流水段。例如,假如在指令流水线中,如果数据和指令是放在同一个储存器中,并且访问接口也只有一个,那么,两条指令就会争用储存器;在一些算数流水线中,有些运算会同时访问一个运算部件。2、数据依赖。比如,A运算必须得到B运算的结果,但是,B运算还没有开始,A运算动作就必须等待,直到B运算完成,两次运算不能同时执行。解决方案:第一种情况,增加运算部件的数量来使他们不必争用同一个部件;第二种情况,用指令调度的方法重新安排指令或运算的顺序。η=顺序串行解释所花的时间流水线的段数×流水解释所花的时间=Sp/m13第2章现代RISC中的流水线技术2.1超流水线技术超级流水线(SuperPipeline)又叫做深度流水线,它是提高cpu速度通常采取的一种技术。CPU处理指令是通过Clock来驱动的,每个clock完成一级流水线操作。每个周期所做的操作越少,需要的时间就越短,时间越短,频率就可以提得越高。超级流水线就是将cpu处理指令是得操作进一步细分,增加流水线级数来提高频率。频率高了,当流水线开足马力运行时平均每个周期完成一条指令(单发射情况下),这样cpu处理得速度就提高了。当然,这是理想情况下,一般是流水线级数越多,重叠执行的执行就越多,那么发生竞争冲突得可能性就越大,对流水线性能有一定影响现在很多cpu都是将超标量和超级流水线技术一起使用,例如pentiumIV,流水线达到20级,频率最快已经超过3GHZ。教科书上用于教学的经典MIPS只有5级流水。超级流水线(超级流水线集)技术是用在一个并行处理技术。在他稀疏的水,增加的数量和提高频率,从而在每个机器周期完成一个或2个浮点操作。其实质是以时间换取空间。超纯水机的特点是在所有的功能单位只使用水,并具有更高的时钟频率和更深的水的深度[4]。2.2超标量技术超标量(SuperScalar)技术是RISC采用的有一种处理技术。它通过内装多条流水线来同时执行多个处理。其实质就是以空间换取时间。将一条指令分成若干个周期处理以达到多条指令重叠处理,从而提高cpu部件利用率的技术叫做标量流水技术。超级标量是指cpu内一般能有多条流水线,这些流水线能够并行处理。在单流水线结构中,指令虽然能够重叠执行,但仍然是顺序的,每个周期只能发射(issue)或退休(retire)一条指令。超级标量结构的cpu支持指令级并行,每个周期可以发射多条指令(2-4条居多)。可以使得cpu的IPC(InstructionPerClock),从而提高cpu处理速度。超级标量机能同时对若干条指令进行译码,将可以并行执行的指令送往不同的执行部件,在程序运行期间,由硬件(通常是状态记录部件和调度部件)来完成指令调度。超级标量机主要是借助硬件资源重复(例如有两套译码器和ALU等)来实现空间的并行操作。熟知的pentium系列(可能是p-II开始),还有SUNSPARC系列的较高级型号,以及MIPS若干型号等都采用了超级标量技术。流水线实现中的问题及解决:这是一个问题的连续流动,这似乎并没有流下,从而获得更高的效率。停止的原因很多,除了编译生成的目标程序可以发挥结构的作用,水,或存储系统可以提供一个连续流动所需的指令和操作数,基本上还出现相关,转移和中断指令相关的。解偏相关有2种方法:后退方法和路径的方法;解决全球相互关系有三种方法:猜测转移,加快推进形成条件代码,加快短循环程序处理。142.3超长指令字超长指令字(VLIW:VeryLongInstructionWord)是由美国Yale大学教授Fisher提出的。它有点类似于超级标量,是一条指令来实现多个操作的并行执行,之所以放到一条指令是为了减少内存访问。通常一条指令多达上百位,有若干操作数,每条指令可以做不同的几种运算。那些指令可以并行执行是由编译器来选择的。通常VLIW机只有一个控制器,每个周期启动一条长指令,长指令被分为几个字段,每个字段控制相应的部件。由于编译器需要考虑数据相关性,避免冲突,并且尽可能利用并行,完成指令调度,所以硬件结构较简单。如图2.1所示是VLIW的流水执行。图2.1超长指令字(VLIW)的流水执行VLIW机的工作很像超标量机,但有三点区别:(1)VLIW指令译码比超标量指令更容易;(2)当超标量机可用的指令级并行性比由VLIW机可开发的相应值小时,超标量机的代码密度更为紧凑;(3)超标量机可做到和很多非并行机系列的目标代码兼容。相反,VLIW机开发不同数量的并行性时总是需要不同的指令系统。VLIW处理机的优点:VLIW机对超标量机在以下几个方面做了改进:(1)VLIW指令中并行操作的同步全在编译时间完成,这可使它比超标量处理机有更高的处理机效率;(2)当短格式用户代码中有高的可用ILP时,VLIW程序的代码长度要短得多;这就意味着经编译的VLIW程序有短得多的执行时间。(3)大大简化了运行时的资源调度,因为VLIW体系结构中的指令并行性和数据移动完全是在编译时间说明的。VLIW的主要缺陷:(1)需要智能编译器的支持;(2)软件兼容性差;(3)软件的可移植性差。如下表2.2是对VLIW与超标量体系结构性能的比较表2.2VLIW与超标量体系结构性能的比较15体系结构硬件支持并行性开发时间代码密度平均CPI兼容性可移植性VLIW简单编译时差低无无超标量复杂运行时好高有有2.4向量机平时接触的计算机都是标量机,向量机都是大型计算机,一般用于军事工业,气象预报,以及其他大型科学计算领域,这也说明了向量机都很贵。国产的银河计算机就是向量机普通的计算机所做的计算,例如加减乘除,只能对一组数据进行操作,被称为标量运算。向量运算一般是若干同类型标量运算的循环。向量运算通常是对多组数据成批进行同样运算,所得结果也是一组数据。很多做科学计算的大(巨)型机都是向量机。2.5SIMD技术单指令多数据(SingleInstructionMultipleData)简称SIMD。SIMD结构的CPU有多个执行部件,但都在同一个指令部件的控制下。SIMD在性能优势呢:以加法指令为例,单指令单数据(SISD)的CPU对加法指令译码后,执行部件先访问内存,取得第一个操作数;之后再一次访问内存,取得第二个操作数;随后才能进行求和运算。而在SIMD型CPU中,指令译码后几个执行部件同时访问内存,一次性获得所有操作数进行运算。这个特点使得SIMD特别适合于多媒体应用等数据密集型运算。AMD公司的3DNOW!技术其实质就是SIMD,这使K6-2处理器在音频解码、视频回放、3D游戏等应用中显示出优异性能。2.6流水技术在Pentium系列微处理器中的实现流水线技术早在英特尔凌动芯片已经实现。奔腾系列处理器产品是一个高级的超标量处理器。它是建筑在一般整数流水线和一个浮点单元在线,这使处理器执行整数指令。一对透明的软件动态分支预测机制可以使分支流水线堵塞最小化。奔腾处理器可以在一个时钟周期内完成2指示,流水线完成命令。第一个逻辑管叫“你”的流水线,一次电话“五”流水线。在任何一个给定的指令解码时,它是安排后面的指令将被检查。和,如果可能的话,第一个指令被分配到“你”流水线执行指令,其次是分配到“胜利”的流水线执行。如果不是,那么第一个指令设置为“你”“五”流水线流水线执行,不安排指令操作。教学中的操作和流水线的顺序执行所产生的效果是完全一样的。当流水线堵塞,随后的指令指令是阻止任何流水线。技术的奔腾处理器的整数流水线增加一个额外的处理阶段。指令代码缓冲区缓存预取,美联储的“预”(公积金)阶段,并在“提取”(女)阶段的教学语法分析。此外,所有前缀的解码阶段。在教学第一先出(先进先出)指令缓冲区中的语法分析和指令解码分开,缓冲区位于的阶段,the1stage(D1)之间的解码。先进先出缓冲空间指令处理最多四个指示。16先进先出缓冲区是透明的,当它是空的,没有额外的延迟。在每个时钟周期的指令,指令缓冲区(按有效代码字节,和其他因素,如前缀)。然后,对指令的先进先出缓冲射出去,到d1stage。由于指令的平均执行效率为每个时钟周期不超过2指令,所以通常全是先进先出。只要是先进先出,你可以防止取指令和语法分析产生阻塞。如果这阻塞,先进先出也可以使阻塞的执行管线阶段发生。但如果是先进先出空,因为没有指令流水线操作,这可能导致执行一个块。长指令或一个前缀可以在先进先出入口产生阻塞。超流水线(SuperPipeline)在本质上仍为一种流水线技术,但它做了以下的改进:1、流水线条数从奔腾的两条增至三条,还有十一个独立的执行单元并行支持。2、在实施无序执行(采取所有加工)技术。当一个指令需要一些数据并不能立即执行,它将被删除线和等数据,处理器是立即执行的指示下,就像在装配线发现产品不合格,但被淘汰,等原因。这样,可以防止无法执行命令影响整个生产线的效率。3、在p6instruction分为更细的相位,使逻辑设计,工艺等更为简化,提高了速度。在486chip,指令一般分为五个部分,奔腾也是如此。在六,由于采用了类似的精简指令集计算机技术,一个指令分为十四阶段。这大大提高了线速度。17第3章中断处理与流水线调度中断处理和非线性流水线及多功能流水线调度问题也是设计指令流水线时非常值得注意的两个大问题,在本章,我们将对这两大问题进行初步的研究。3.1中断处理中断导致线路断开。然而,它的概率比条件的概率要低得多,这也是一个随机事件。因此,机加工中断是如何处理现场的保护和断点恢复,而不是如何缩短线路断开时间。在执行指令在我中断,应在执行结束指令指示我,我+1已经没有开始执行的地方,但水是在同一时间机器解释多个指令,指示我,我++1…可能已进入流水线和部分解释。一个流,其中的一些指令流的命令我吧。早期水机,如360/91,为简化中断处理,采用不精确断点”方法。无论是否命令我,线路中断,不再允许后续指令尚未进入进入,但已在流水线不断流动的所有指令执行,然后转移到中断处理程序。在这方面,断点当然不会是我,可能背后我+1,2+1…断点是不确定的。只有当指令在第一段中断时,我的反应,断点是准确的。这种“不精确断点”方法不好的编程和程序的调试。后来,水机多采用“精确断点”的方法,如amdahl470/6。无论我在教学中,响应中断,中断处理程序领域所有相应的我,我到流水线指令的原始场均可以恢复。这种方法需要许多支持注册,保证线路的每个指令能够恢复原来的领域。如前所述,这些寄存器也”指令重试”,不需要另外设置。3.2流水线调度由于线性线在每个任务的执行,每个通过只有一个,所以每个镜头都是一个新的任务,这些任务的线,没有竞争相同的水段。非线性流水线是不同的。如图3.1表示的是非线性流水线的流程。因为部分是安排之间的反馈回路,一个任务在运行过程中,可反复通过同一段或在一定的时期。所以,如果每一次的线到一个新的任务,将产生几个任务竞争同一时期使用的功能冲突现象。为了不冲突,有适当的间隔数目的节拍,以进入下一个任务。什么间隔几个电影和进入下一个任务,既不能正常使用的部分的冲突,而且还可以使线有一个较高的吞吐量和效率,这是流水线调度问题需要解决。时间功能段12345S1XS2XS3XXS4X18图3.1非线性流水线为了能对流水线的任务进行优化调度和控制,1971年E.S.Ddavidson提出使用一个二维的预约表。(如图3.2)图3.2预约表示例预约表用于非线性流水线,是一张二维的表格,其横坐标表示流水线工作的时钟周期,纵坐标表示流水线的功能段,中间画“√”表示该功能段在这一时钟周期处于工作状态,空白的地方表示该功能段在这个时钟周期不工作。值得说明的是:(1)一张非线性流水线的预约表可能与多个非线性流水线连接图相对应;(2)一个非线性流水线的连接图也可能对应多张预约表。因此,一条非线性流水线一般需要一个各功能段之间的连接图和一张预约表来共同表示。根据预定表可以很容易地得出一个任务使用所需的间隔数目的节拍。为例一节分隔的3pat,2segments分隔3beat。然后的任务是打到流水线将与the1section和2节。我们将在所有章节的桌子上一个任务流将竞争同一时期的时间间隔几个在一起,构成一个延迟表F如为{3.4}。也就是说,如果线不会出现在每一节的争夺冲突,相邻的任务线间距击败不能是3,4,间隔应被禁止使用击败。另一个冲突向量的概念,这是一个n-1bit向量(……),我位状态表明,我拍线区间为后继任务是否发生的功能部分使用冲突。如果不发生冲突,使位是“0”;否则,该位是“1”,表示禁令。不难看出,进入后续任务拍摄所需的数量和任务的流水线已进行了几个电影。当第一个任务的第一枪进入流水线,根据禁止形式={2,4},可以形成碰撞矢量丙(101010),表示这只是流入线时,碰撞初始向量。由此可以看出,从第一次task1,3,5shot任务为线,因为冲突向量对应于“0”,表示将不再有冲突。当次任务,应该有一个新的碰撞矢量。在决定第三个7101010715377111111101111531010115非线性流水线的状态图19任务可以分开的许多射进线,不仅进入了一个行的第一次任务,功能区,这样的顺序类推。怎样判断一个向量的冲突?与线第一个任务在每个推进,原本从二任务为线在不同的时间间隔对应观看心跳。这意味着,碰撞初始向量移位,抓住每一个逻辑right1,左移到空的“0”,表示如果间隔6拍到后续任务,一个任务必须是脱节的无功能组件使用冲突。因此,随着任务的路线前进,将继续构成的动态冲突矢量。如果你选择在第一次任务的间隔1shooting进线,次任务,冲突矢量右移1became(010101)。因此为了使第三个任务为线,既不与第一个任务冲突,也不与任务冲突,新的冲突矢量应该是第一任务目前的初始向量冲突(010101)和一次任务中的碰撞初始向量(101010)由一个“,或”的结果(111111)的。因此,根据前面的一个向量的冲突和冲突后,向量。按照这样的思路,以各种可能的拍数流入新的任务,从而又可以产生新的冲突向量,一直进行到不再产生不同的冲突向量为止。由此可以画出用冲突向量表示的流水线状态转移图。本例的流水线状态转移图如图3.2所示。图3.2状态转移图因此,只要按流水线状态图中由初始状态出发,能构成一种间隔拍数呈周期性重复的方案来进行流水线调度,都不会发生功能段的使用冲突。然而,我们还希望能寻找一种最佳的调度方案,以便使流水线的吞吐率最高。显然,只需要分别计算出每种调度方案的平均间隔拍数,或者称之为平均启动距离,找出其中最小者,就是流水线各后续任务流入流水线所用间隔的最佳调度。本例的几种调度方案如图3.3所示。简单循环平均启动距离(1,7)4(3,7)5(5,7)6(3,5,7)5(5,3,7)5(3,5)4(5)520(7)7图3.3调度方案以上只是结合单功能流水线讨论了有关流水线调度的基本思想和方法。在此基础上不难解决多个功能流水线的调度。对于一个多功能流水线,只需要将对应每种功能的预约表都重叠在一起,组成一张新的预约表,然后在按照此方法进行调度即可[5]。第4章指令流水线设计我们做任何事情,都希望能够达到理想状态,但这往往是不现实的,我们研究理想状态的意义就在于给出一个衡量的标准,并且努力向这个标准靠近,这在指令流水线的设计过程中也不例外。4.1流水线理想假设为目的的指令流水线,我们希望能够最大限度地提高系统性能。然而在实践中,但往往不这样做,因为只有在理想的条件下,等级度流水线设计可以提高吞吐量的时间,理想的情况是主要基于三假说,我们称它为“线理想的假设”,他是正确评估流水线设计。设计各种方案解决实际线和线之间的矛盾,理想的假设,它们构成的主要工艺流水线的设计[6]。流水线的理想假设包括:(1)一致的运算分量:要完成的整个运算量可以均匀的分成延迟一只的若干分量。(2)重复的运算:输入数据有大量相同的、重复的运算。(3)独立的运算:所有相同的重复运算之间没有相关性。4.1.1一致的运算分量第一行的理想的假说解释,会使计算部分水均匀地分为钾延迟相同的组件。这意味着以前的设计可以分为钾平衡水段。如果以前的总计算延迟,不是设计类型的水循环,然后钾流水线设计风格的周期是钾,也就是流水在每一段的延迟。基于这一假设,时钟频率可以增加,并提高吞吐量倍。在实际的流水线设计,这种假设可能不成立。总操作组件完全均匀的分成几个部分是不可能的。在3级流水线浮点加法器的例子,设置总延迟for500ns,线分为3个部分,每个部分都200ns延迟,容错,200ns。显然,总延误是不均匀分布在整个线路的三段。因为线路时钟周期决定推迟最长延迟时间较短,所以会有一些无效或失败时。如浮点加法器的后半部分,这是100ns的无效时间,我们可以称它为“内部碎片”。由于内部分裂,执行同样的操作延迟将增加。有一种内在的假设,即水段之间引入缓冲不会带来额外的延迟线时钟信号,也不引入额外的延迟。同样,假设在实践中是不成立的。在一些例子中,为了保证信号的时钟信号准确21地成立的,注册成立,所以总时钟周期延长,从而导致实际业绩可能不到3次。第一行的理想假设主要包含以下两点:以前的操作部件分为多个部分,不引入一个无效的时间;一个缓冲和时钟不会带来额外的延迟介绍。在芯片级设计,可以使用一些锁,如·锁可以使时钟产生延迟尽可能小。那么如何来操作均匀分成各种水段构成的流水线设计的第一个挑战。我们的目标是,尽可能使所有水段保持平衡,减少内部分裂。由于各水段不能完全平衡内部分裂是不满足第一行的理想假设的主要原因,这将是一个架空,并导致钾级管线设计吞吐量增长达到理想的倍。4.1.2重复的运算第二线的理想的假说解释,线反复执行相同的操作。这意味着在一组输入数据,一些运营商是相同的,这些操作执行。每次执行时,线路提供组件执行顺序是相同的。因为浮点加法器的例子,将含有大量浮点数在一起,对每一个操作数是通过same3线。这一集,每次重复计算可以使用所有的小节线。在我们的例子,这显然是建立。浮点加法满足这个假设,因为本线只完成一个功能,例如,浮点加法运算。如果你想设计一个流水线完成多种功能,这种假设是不满意。例如,设计一个可以计算加法和乘法运算流水线可以计算。多功能流水线,一个单独的功能可能不需要所有的流动部分,可由水段的不同子集完成不同的功能。因为输入的数据在一个同步的方式通过流水线,有些数据可能不需要一些水段,当他们经过一段,什么也不做。这并没有使用或自由流动的部分带来另一种形式的流水线,可称为“外碎片”。和内部分裂的外部碎片是类似的,一个流水线架空,应尽量减少。第二线的理想假设所有水段总是充分利用。除了表明不存在外部碎片,这个假设也说明了数据的处理是许多。第一数据线最后一段需要钾钾循环周期,称为“填充”。最后的数据线的第一段,也需要钾定期排空流水线。在灌装和排空过程中,并不是所有的流水线阶段的工作状态。如果有大量输入数据的处理,可以使线的填充和排空时间只有一小部分的总时间。因此,许多水段可认为一直处于工作状态。4.1.3独立的运算第三线假说解释,线加工操作是相互独立的。这意味着,所有同一时间居住在流水线的操作是不相关的,也就是说,任何两者之间不存在的数据或控制。这一假设保证线在“流动”的工作方法,即后面操作不是因为存在相关性而等待操作完成。因为浮点加法器的例子,这个假设是成立的。如果有更多的操作数在一起,一对操作数的增加不是因为另一个加法的结果。这些操作可以依照“流”的处理。这一假设的一些行可能不成立。后面的操作可能需要在前面的结果,和2个操作也可能居住在流水线。如果是后者的经营已进入了结果所需的水,但这次在术前尚未到达产生的结果流动段,这是背后的操作必须等待期。这是被称为“流水线摊位”。如果一个操作暂停线一定时间,随后的所有操作可能被迫停顿。流水线摊位不可避免地导致一些处于闲置状态,它可被视为一个动态外部碎片,从而使吞吐量率降低。如果相关是不可避免的,设计时,尽量多的停止线。224.2指令流水线前三行是行的理想假设。在大多数情况下,算术流水线的实际情况与理想的假设是不太大。然而,对指令流水线,和实际情况之间的差距会更理想的假设。而连接过桥正式指令管线设计有趣和有挑战性的地方。设计中的流水线处理器,三个假设成为三大挑战。三大挑战,同时与探索的流水线处理器的设计理念。4.2.1指令流水线设计设计中的命令行,三行,成为设计目标。一个指令处理是精简业务,它必须被分成多个作为辅助操作,得到的平衡线。处理指令延迟时间成为“指令周期”,每一段时间延迟决定了机器周期。”。指令周期是一个逻辑概念,它指的是执行的指令周期。一个程序,包括一个多元化的指令,程序的执行相当于相应的操作重复执行。机器周期是一个物理概念,它包含了数字逻辑电路的存储单元的时钟,同时它也是流水线时钟周期。指令流水线设计的主要任务可以看作是将逻辑指令周期映射到物理机器周期。换句话说,就是将指令周期所对应的运算分成一个子运算的序列,由流水线的各段运行。要有效的进行这种分割或者映射,必须考虑三条流水线的理想假设。符合业务的组成部分,我们将指令周期分为多个机器周期的过程称为“定量水段”。在量化的流动部分,以尽量减少内部分裂。如果在量化流动部分是不充分的考虑,将引入内部碎片,从而影响线的利用率。第一行的理想假设带来的指令流水线设计的第一个挑战,称为平衡线。线平衡,减少内部分裂。重复的运算与单一功能的算术的流水线是不一样的,指令流水线是一种天然多功能流水线,即它必须能够处理各种不同类型的指令。不同类型的指令需要稍微不同的子操作序列,相应的硬件资源的不同。指令流水线的设计挑战二连接,或整合不同类型不同的资源需求。线应该能够支持所有类型的指示;同时应尽量减少对每种类型的指令是无效的或空的机器周期,也是降低外部碎片。独立的运算运算流水线是一个数组的数据,他们一般是不相关的。和算术流水线是不同的,指令流水线处理指令不完全是相互独立的。因此,指令流水线必须有一套内部机制,用来检测指令发生之间的相关和有关的指令不会导致错误。相关的指令可能导致流水线摊位,导致失败。如前所述,流水线停滞在动态外部碎片,这会降低流水线的吞吐量。因此,指令流水线设计的第三大挑战是减少流水线摊位。4.2.2指令集体系结构的影响在正式讨论指令流水线设计的三个主要挑战之前,简单的考虑一下指令集体系结构对于指令流水线的影响,将很有启发意义。下面将一次考虑三条流水线理想假设。一致的运算分量使水段保持均衡的第一个挑战,必须确保组件的延迟是一致的。研究教学过程的所有操作元件,有部分的长期拖延,以及部分不易破碎成细计算组件。在一个流水线处理器的设计,关键部件是访问内存。由于速度的差异之间的处理器和内存,内存访问将成为关键运算部件。为使指令流水线的效率更高,应在寻址模式进行优化,并应能够紧跟高速缓存的处理器速度。重复的运算第一个挑战是不同类型的指令的资源要求是统一的,它的主要目的是精简23指令集计算机系统结构。减少指令类型的复杂性和多样性的整合不同的指令类型可以减少困难的任务。复杂寻址模式不仅需要额外的内存,并增加了对资源的需求的多样性。所有这些资源整合到一个指令管线的看法相当困难,和线的许多教学效率很低。这些指示将产生外部碎片,从而降低线路的利用率。一个精简指令集计算机系统结构的流水线,整合资源,简单的把线更有效,减少外部碎片。独立的运算第三个挑战是尽量减少相关指令所造成的流水线摊位,这可能是一个流水线处理器的设计是最吸引人的地方。正确地完成操作,指令流水线必须检测和解决相关的指令。复杂的处理方式,特别是与内存访问模式,因为内存地址标识符问题引起了相关检测是非常困难的。一般来说,比较容易发现因为寄存器,寄存器的指令是明确指出。简单和桩适合指令解码和相关检测。相关检测和解决可以是静态的,也可以从本机运行的硬件动态完整。编译和运行分别决定如何处理,在动静态界面(接口)定义。定义接口,将导致许多有趣的和微妙的平衡。平衡,必须被编译,(微)结构和微处理器设计紧密结合起来。4.2.3流水线分级的考虑理想流动性能和流水线的深度(即,线段)是成正比的,因此似乎是最好的设计,增加行数。然而,由于时钟约束,线分段数总是有一个物理限制。线的每一部分可以被视为一个组合逻辑加上最后锁存器,信号通过后的锁。定义的最大传输延时,即通过长度的延迟信号路径;为的最小传输延迟,即通过短的信号路径延迟;为建立正确的时钟信号所需的时间,包括必要的建立和保持时间,保证正确的锁存器,同时也包括可能的时钟偏移,满足不同锁存时钟沿最大时间差。第一组信号时的作用,假设在一个级别的输入,然后输出的最新有效。当另一组信号在时间的输入端子,以最快的时间就可以存L保证二组信号不覆盖第一组的信号,必须满足:该公式说明,信号2X可能到达的最早时刻不能早于信号1X正确锁存的时刻。该不等式可以重写为:其中12TT\uf02d就是最短时钟周期T。因此,时钟周期T必须比LmMTTT\uf02b\uf02d大,而最大时钟频率不能超过1/T。从中我们可以看到,时钟最终决定管线深度,除了这一限制,如果考虑价格,即流水线间接成本,最好的设计通常不是最大的流水线深度。在一个流水线系统的硬件设计,必须考虑价格和性能的权衡。一般来说,价格相对深度的流水线流水线成线性增长。流水线深度一直是影响处理器效率的重要因素,流水线深度的增加可以让处理器时钟频率进一步提高,但随着流水线深度的增长带来的处理器的单周期执行效率降低、发热量上升,同时容易产生分支预测等问题反面影响也会加剧,因此流水线长度的尺度把握一直是处理器设计中的一个重要核心问题。在设计流水线,要综合各方面的因素,根据最佳性价比的要求来选择流水线的最佳段数。244.3流水线处理器设计流水线处理器设计中的主要问题就是缩小实际情况与理想假设之间的差异。所有关于流水线处理器的设计技术,都可以看作是为解决这三个挑战而进行的努力。4.3.1保持流水段均衡要流水化的运算就是每个指令周期所要进行的工作。一个典型的指令周期可以根据功能划分成以下5个基本分量:1、取指(IF,Instructionfetch)2、译码(ID,Instructiondecode)3、取操作数(OF,Operand(ds)fetch)4、执行(EX,Instructionexecution)5、存储(OS,Operandstore)一个典型的指示,从取指令周期开始,然后解码,它决定了指令完成操作。一个指令是通常带有一个或多个操作数,操作数在寄存器或内存,这取决于使用的寻址方式。一旦所需的错误计数都准备好了,你可以执行指定的操作指令。实施所产生的结果存储起来,就算结束指令周期。分段指令周期是一个自然的方式是按照5个基本算术元件划分,每个业务组件对应一个流动部分,造成a5stage指令流水线,我们称这些为基本指令流水线,简称枪花线。在与流水线,逻辑指令周期将被映射到5个物理机器周期。机器周期,指令周期的比例为5,这是反映了流动的程度和水段大小。定量的水段设计成指令周期分割平衡水段,以便尽量减少一些内部分裂。定量的水部分的自然功能分区开始。作为基本算术组件。多个延迟更小的组件可以组合成一个新的组成部分,以获取更平衡线。另外一个平衡线方法是相反的,不是有一个较短的延迟元件组合,但会延迟较长的操作部件被分成多个短时延的组成部分。该方法延迟短的组成部分为参考,长潜伏期操作部件分成较小的部分,使每一个组件的延迟和参考元件延迟几乎。这将导致在一个机器周期粒度更细,在更高程度。在具体进行指令流水线设计的时候,这两种方法可以结合起来使用。不管在什么情况下,量化流水段的目标都是尽量减小内部碎片的开销[7]。4.3.2统一指令类型第二线的理想假设需要线应重复同样的操作。为广大的指令流水线,重复相同的操作理想的假设是不成立的。指令流水线指令重复处理不同的指令类型。虽然指令周期重复,但每次过程的不同类型的指令。不同的指令类型有不同的资源要求,每个组成部分的业务订单可能不一样。指令流水线的要求,满足不同需求,您必须提供所有类型的指令所需的所有操作元件的超集。一个单一的指令类型可能不需要所有的流动剖面线。一个单一的指令类型,不需要水段为某种形式的失败或架空,即外部碎片。目的的统一指挥,是尽量减少所有指令式外碎片。要完成一次运算,计算机必须完成一下三个基本任务:1、算术操作252、数据移动3、指令定序算术运算包括指定的操作执行算术和逻辑运算,它最突出的部分操作,所以经常和整个操作是等同的。一个处理器能够支持大量的算术运算式。数据移动将负责操作数和结果存储在地址的移动。通常是内存地址的层次和专业指示移动数据。指令序列负责指令序列的测定。通常的运作程序,含有大量的指令,通过执行一系列指令需要完成操作。该指令序列,或打电话程序,可以通过指令本身的确定。如何将这三个基本任务分派给ISA中的各种指令,是指令集实际中的关键问题。受RISC体系结果的影响,现在的大多数指令集体系结构都有一些共同的特征。这些体系结果包括Hewlett-Packard的Precision体系结构,IBM的Power体系结构,IBM/Motorola的PowerPC体系结构,还有Digital的Alpha体系结构。这些现代ISA倾向于采用定长指令、正交的指令格式、load/store型体系结构和简单的寻址模式。这些体系结构中的大多数都能与指令流水线很好的协调起来。在一个典型的现代RISC体系结构中,指令集采用一种专门的指令类型来完成三个基本任务中的一个,也就是说,每一种指令类型只完成三个基本任务中的一个。根据三个基本任务,可以将指令分成三种类型:1、ALU指令完成算术和逻辑运算2、Load/store指令完成数据在寄存器及存储器间的移动3、分支指令控制执行指令的顺序ALU指令所执行的算术逻辑操作严格地针对寄存器操作数进行,只有load和store指令能访问数据存储器。Load/store指令和分支指令都采用比较简单的寻址模式,通常只支持带偏移量的寄存器间接寻址模式。对于分支指令,还支持PC相对寻址。在下面列出关于前两种指令类型的详细规范,其中假设使用了指令cache(I-cache)和数据cache(D-cache)。比较表4.1与表4.2中的两种主要指令类型规范,我们可以看到,两种指令类型的初始化分量比较类似,然而后面的分量有些差异。这些语意上的差异将导致不同的资源需求。基本运算分量ALU指令类型IF取指令(访问I-cache)ID解码指令OF访问寄存器文件EX执行ALU操作OS回写寄存器文件表4.1ALU指令类型规范基本运算分量Load指令store指令IF取指令(访问I-cache)取指令(访问I-cache)ID解码指令解码指令OF访问寄存器文件(基地址)访问FP寄存器文件26生成有效地址(基地址+偏移量)访问(读)内存(访问D-cache)(寄存器操作数及基地址)EXOS回写寄存器文件生成有效地址(基地址+偏移量)访问(写)内存(访问D-cache)表4.2Load/store指令类型规范统一不同指令类型主要是将不同资源需求有效的整合到一条指令流水线中去,使得这条流水线适合于所有的指令类型。整合的目标是,尽量减少流水线所需要的资源总数,同时尽量提高流水线中所有资源的利用率。通常,资源的整合过程包含以下三个步骤。1、分析每种指令类型的运算分量序列,确定相应的资源需求。2、找出指令类型之间的共性,合并相同的运算分量,已使用相同的流水段。3、如果在不违背指令语意的情况下存在一定的灵活性,可以改变或者重新排列分量的顺序,以便进一步的整合。可以将这一过程应用到表4.1和表4.2中。ALU,load,store指令类型的规范总结如图4.3所示。现在我们由上至下实施统一的过程,检查3个分量的序列合要求提供支持的硬件资源。这个过程产生了指令流水线各段的定义。ALULOADSTORE取指令取指令取指令更新PC更新PC更新PCIF解码解码解码ID读寄存器读寄存器读寄存器RDALU.Op生成地址生成地址ALU读内存写内存MEM写寄存器写寄存器WB图4.3ALU,load,store指令类型的规范总结所有3种指令类型都有相同的IF和ID分量,因此,这两个运算分量可以很容易的合并起来,并用来定义流水线的前两个段,即IF和ID段,从而完成取指和译码工作。所有3种指令类型的OF分量都要读寄存器文件。ALU指令访问两个寄存器并且获得寄存器操作数;load指令访问一个寄存器并获得地址;store指令访问一个寄存器并且获得操作数,访问另外一个寄存器以获得基地址。在3中情况下都要访问一个或者两个寄存器,这些相似的分量可以合并到流水线的第三段,成RD段并从寄存器文件读取最多两个寄存器操作数。因此寄存器文件在每个时钟周期内必须支持两个独立的并行操作数。27ALU指令要求有一个ALU功能单元来完成必要的算术逻辑运算。虽然load,store指令不需要执行这样的操作,但是他们需要生成有效的地址来访存。可以看出,地址生成可以由ALU功能单元来完成。因此,这些分量可以合并到流水线第4段,成为ALU段并包含一个ALU功能单元,完成算术逻辑运算或者有效地址的生成。ALU和load指令都需要想寄存器写回结果,这是他们的最后一个运算分量。ALU指令将寄存器操作的结果写回寄存器,load将访存的数据写入到目标寄存器。ALU指令不需要访存,因此,理论上向目标寄存器回写这一过程可以在ALU段之后立即进行。然而为了load指令回写分量统一起来,ALU指令的寄存器回写分量向后推迟了一段,在流水线的第6段进行,成为WB段。这将导致ALU指令在MEM段产生一个空闲周期。这是一种外部碎片并将给流水线带来一些效率损失。通过对不同指令类型的整合,可以得到一条6级流水线,如图3.3右侧所示。4.3.3减少流水线停顿第三线理想的假说认为,流水线执行的操作是相互独立的。在一个等级的流水线,可能有不同的操作处理的指令流水线,具有最大钾不同的指示,同时在流水线。这些指令可能不是相互独立的。事实上,这些指令通常与。如果流水线指令不相关,将有助于流水线流动,或者说,指令通过线路没有任何流水线摊位。如果指令相关的,它必须检测和解决有关。该解决方案可能需要流水线摊位。设计的挑战,目的是减少流量减少流水线摊位,防止通量下降率。第5章总结与展望本文第一章详细阐述了流水线技术的产生背景、概念、特点、具体分类、主要性能以及相关问题和解决办法。其中针对流水线的时空图、吞吐率、加速比和效率结合图和数学公式进行了深刻而详细的说明。第二章主要讲了现代RISC中的流水线技术,包括:超流水线技术、超标量技术、超长指令技术、向量机以及SIMD技术,最后讨论了流水奇数在Pentium系列微处理机中的实现。第三章主要讲了流水线的中断与流水线调度,其中关于调度问题主要讲了非流水线技术的调度,结合预约表来详细说明非流水线是如何调度的。第四章主要讲了指令流水线设计,包括流水线理想设计、指令流水线、流水线处理器设计等。流水线技术是一项可以应用于任何ISA的微体系结构技术。RISC体系结构的特性确定确实能够使流水线的设计更加容易。流水线技术已经被证明是提高处理器性能的一项十分强大的技术,并且在流水线深度方面仍然有很多上升空间。不难想象,以后还会有更深的流水线出现。流水线性能的主要障碍是指令相关引起的流水线停顿。其中,控制相关引起的分支开销是最主要的部分。随着流水线深度的增加,分支开销也会增大并成为主要的挑战。另外,流28水线处理器设计将传统CPU设计中的数据通路设计和控制通路设计放到了一起进行处理,它们可以被合并到一条流水线来实现。CPU中指令流水线技术是现代计算机中提高处理机运行速度的关键性技术,也是超标量流水线技术与超流水线技术的基础。在目前,国内计算机硬件技术,特别是CPU的研究起步较晚,技术相对比较落后。在这种形势下进行CPU中指令流水线技术进行学习研究,其意义是及其重要的,同时困难和挑战也是比较大的。对我来说,这是一个非常好学习的过程,很多的基本知识,基础理论都让我受益匪浅。无论在以后的工作或者是学习中,这些宝贵的经验都将一直伴随着我。虽然我们国家目前在此领域的研究还比较落后,但是我相信以后会有更多的人投入进来,我们的资料和技术也会一天天的发展起来,最后达到甚至超过国际先进水平也未可知。29参考文献[1]王爱英.计算机组成与结构[M].北京:清华大学出版社,2001:210-214.[2]张大发,曹庆华,傅翠娇.解决CPU流水线冲突技术的设计与实现[J].现代电子技术,2008(4):21-23.[3]孙启良.CPU流水线技术中的结构相关和数据相关[J].福建电脑,2010(7):49-50.[4]杨振华,陈明,赵建勋.计算机中的流水线技术[J].科技信息,2009(3):79-80.[5]黄璟璟.浅谈流水线技术[J].无锡南洋学院学报,2007,6(4):36-39.[6]曹学飞.流水线设计中的关键技术研究[J].微处理机,2011,10(5):78-80.[7]李钊,郑红,李业德.基于运行时间与资源消耗的流水线优化方法[J].仪器仪表学报,2014,9(9):2137-2143.[8]薛杨.流水席那技术性能评价与最佳段数选择[J].吉林省教育学院学报,2011(10):141-144.',)


  • 编号:1700827768
  • 分类:标准规范
  • 软件: wps,office word
  • 大小:30页
  • 格式:docx
  • 风格:商务
  • PPT页数:289860 KB
  • 标签:

广告位推荐

相关标准规范更多>