1、1北京信息科技大学计算机体系结构3 流水线技术张伟计算机学院计算机体系结构北京信息科技大学大纲n1 概念定义n2 流水线分类n3 MIPS五级流水线n4 性能分析n5 流水线相关n6 高级流水线技术计算机体系结构北京信息科技大学1 概念概念定义定义计算机体系结构北京信息科技大学洗衣店的例子nA, B, C, D 均有一些衣物要均有一些衣物要 n清洗,甩干,折叠清洗,甩干,折叠n清洗要花30 分钟n甩干要用40 分钟n叠衣物也需要20 分钟n四人衣物一共要花 4*(30+40+20)=360分钟计算机体系结构北京信息科技大学流水线的基本概念ABCD6 PM789TaskOrderTime30 4
2、0404040 20四人衣物一共要花 30+40*4+20=210分钟计算机体系结构北京信息科技大学流水线的基本概念n流水线技术:把一个重复的过程分解为若干个子过程,每个子程序可以与其他子过程同时进行n描述流水线的工作,最常用的方法是时间-空间图(时空图)q横坐标:表示时间,即各个任务在流水线中所经过的时间q纵坐标:表示空间,即流水线的各个子过程,也称为级、段、流水线深度(Stage)计算机体系结构北京信息科技大学流水线的时空图计算机体系结构北京信息科技大学流水线的特点n流水线实际上是把一个功能部件分解成多个独立的子功能部件(一个任务也就分成了几个子任务,每个子任务由一个子功能部件完成),并依
3、靠多个子功能部件并行工作来缩短所有任务的执行时间n流水线有助于提高整个程序(所有任务)的吞吐率,但并没有减少每个指令(任务)的执行时间n流水线各个功能段所需时间应尽量相等。否则,时间长的功能段将成为流水线的“瓶颈”,会造成流水线的“阻塞”(Stall)n流水线开始需要“通过时间” (Fill)和最后需要“排空时间”(Drain)。流水线只有处理连续不断的任务才能发挥其效率计算机体系结构北京信息科技大学2 流水线分类流水线分类计算机体系结构北京信息科技大学流水线的分类(1)n按流水线所完成的功能分类q单功能流水线:只能完成一种固定功能的流水线q多功能流水线:流水线的各段可以进行不同的连接,使流水
4、线在不同的时间,或者在同一时间完成不同的功能n例如: TI ASC的多功能流水线计算机体系结构北京信息科技大学多功能流水线计算机体系结构北京信息科技大学流水线的分类(2)n按流水线在同一时间内各段的连接方式分类q静态流水线:n在同一时间内,多功能流水线各段只能按同一种功能连接。只有当按这种方式工作的所有任务都流出流水线之后,才能重新连接以实现其他功能。n在静态流水线中,只有当输入是一串相同的运算操作时,流水的效率才能得到发挥。n动画演示q动态流水线:n在同一时间内,多功能流水线各段可以按不同方式连接,同时执行多种功能 n动画演示计算机体系结构北京信息科技大学n动态流水线VS静态流水线q优点:能
5、提高流水线的效率q缺点:会使流水线的控制变得复杂计算机体系结构北京信息科技大学静态和动态流水线 时空图对比计算机体系结构北京信息科技大学流水线的分类(3)n按照流水线的级别来分n部件级流水线(运算操作流水线):q把处理机的算术逻辑部件分段,使得各种数据类型的操作能够进行流水。n处理机级流水线(指令流水线):q把指令的解释执行过程按照流水方式进行处理。n处理机间流水线(宏流水线):q它是指由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。动画解析计算机体系结构北京信息科技大学流水线的分类(4)n按流水线是否有反馈回路分类q线性流水线:流水线的各段逐个串接,输入数据从流水线一端
6、输入从另一端输出;每个段都只流过一次。q非线性流水线:流水线的各段除有串接外,还有反馈回路;在一次流水过程中,有的段要被多次使用。(举例)计算机体系结构北京信息科技大学非线性流水线计算机体系结构北京信息科技大学流水线的分类(5)n按照数据表示来分n标量处理机:q不具有向量指令和向量数据表示,仅对标量进行流水处理的处理机。q例如:IBM360/91, Amdahl 470V/6 等n向量处理机:q具有向量指令和向量数据表示的处理机。q例如:TI ASC, CRAY-I 等计算机体系结构北京信息科技大学流水线的分类(6)n按照流动是否可以乱序来分n顺序流动流水线:q流水线输出端任务流出的顺序与输入
7、端任务流入的顺序相同。n异步流动流水线(乱序流水线):q流水线输出端任务流出的顺序与输入端任务流入的顺序不同。计算机体系结构北京信息科技大学3 MIPS五级流水线五级流水线计算机体系结构北京信息科技大学DLX(Dancing Links)nDLX DLX 是一种简单的指令集(教学、简单芯片)是一种简单的指令集(教学、简单芯片)n在不流水的情况下,如何实现在不流水的情况下,如何实现DLXDLX。q实现DLX指令的一种简单数据通路计算机体系结构北京信息科技大学MIPS的基本流水线nMIPS指令集结构用5个功能段实现,每个功能段用一个时钟周期1.取指令周期IF(Instruction Fetch)2
8、.指令译码/读寄存器周期ID(Instruction Decode)3.执行/地址计算周期EX(Execute)v存储器访问(计算有效地址)v寄存器寄存器ALU操作v寄存器立即数ALU操作4.存储器访问周期MEM(Memory Access)5.写回周期WB(Write Back)计算机体系结构北京信息科技大学MIPS的简单实现MemoryAccessWriteBackInstructionFetchInstr. DecodeReg. FetchExecuteAddr. CalcLMDALUMUXMemoryReg FileMUX MUXDataMemoryMUXSignExtend4Adde
9、rZero?Next SEQ PCAddressNext PCWB DataInstRDRS1RS2Imm计算机体系结构北京信息科技大学2.一条MIPS指令最多需要以下5个时钟周期:q取指令周期(IF) 操作pIRMemPCpNPCPC+4q指令译码/读寄存器周期(ID) 操作nA RegsrsnB RegsrtnImm (IR16)16#IR16.31) 指令的译码操作和读寄存器操作是并行进行的。 原因:在MIPS指令格式中,操作码字段以及rs、rt 字段都是在固定的位置。 这种技术称为固定字段译码技术。 计算机体系结构北京信息科技大学q执行/有效地址计算周期(EX) 不同指令所进行的操作不
10、同:n存储器访问指令 操作 ALUoA + Immn寄存器寄存器ALU指令 操作 ALUoA func Bn寄存器立即值ALU指令 操作 ALUoA op Immn分支指令 操作 ALUoNPC+(Imm2); cond(A = = 0) 将有效地址计算周期和执行周期合并为一个时钟周期,这是因为MIPS指令集采用loadstore结构,没有任何指令需要同时进行数据有效地址的计算、转移目标地址的计算和对数据进行运算。计算机体系结构北京信息科技大学q存储器访问/分支完成周期(MEM)n所有指令都要在该周期对PC进行更新。 除了分支指令,其他指令都是做PCNPCn在该周期内处理的MIPS指令仅仅有l
11、oad、store和分支三种指令。n存储器访问指令 操作 LMDMemALUo 或者 MemALUoBn分支指令 操作 if (cond) PC ALUo else PCNPC计算机体系结构北京信息科技大学q写回周期(WB)不同的指令在写回周期完成的工作也不一样。n寄存器寄存器ALU指令 操作 Regsrd ALUon寄存器立即数ALU指令 操作 Regsrt ALUonload指令 操作 Regsrt LMD计算机体系结构北京信息科技大学3.不采用单周期实现方案的主要原因q对于大多数CPU来说,单周期实现效率很低,因为不同的指令所需完成的操作差别相当大,因而所需要的时钟周期时间也大不一样。q
12、单周期实现时,需要重复设置某些功能部件,而在多周期实现方案中,这些部件是可以共享的。计算机体系结构北京信息科技大学q每一个时钟周期完成的工作看作是流水线的一段,每个时钟周期启动一条新的指令。n流水实现的数据通路q设置了流水寄存器n段与段之间设置流水寄存器n流水寄存器的命名 用其相邻的两个段的名称拼合而成。 例如:ID段与EX段之间的流水寄存器用ID/EX表示n每个流水寄存器是由若干个寄存器构成的 3.5.2 基本的MIPS流水线计算机体系结构北京信息科技大学 MEM/WB 数据 存储器 通用寄存器组 符号 位 扩展 ALU PC =0? ADD 16 32 4 存储器 分之 结果 M U X
13、1 M U X 2 M U X 3 M U X 4 IR A B Imm IRrs IRrt MEM/WB.IR NPC NPC IR cond ALUo B IR LMD ALUo IR EX/MEM ID/EX IF/ID 指令 流水实现的数据通路流水实现的数据通路计算机体系结构北京信息科技大学n寄存器的命名形式为:x.yn所包含的字段的命名形式为:x.ys 其中:x:流水寄存器名称 y:具体寄存器名称 s:字段名称 例如: ID/EX.IR:流水寄存器ID/EX中的子寄存器IR IRID/EX.IRop:该寄存器的op字段(即操作码字段)n流水寄存器的作用q将各段的工作隔开,使得它们不会
14、互相干扰。q保存相应段的处理结果。计算机体系结构北京信息科技大学例如:EX/MEM.ALUo:保存EX段ALU的运算结果MEM/WB.LMD:保存MEM段从数据存储器读出的数据q向后传递后面将要用到的数据或者控制信息 所有有用的数据和控制信息每个时钟周期 会随着指令在流水线中的流动往后流动一段。q 增加了向后传递IR和从MEM/WB.IR回送到通用寄存 器组的连接。q 将对PC的修改移到了IF段,以便PC能及时地加 4,为取下一条指令做好准备。 计算机体系结构北京信息科技大学2.每一个流水段进行的操作nIRrsIR6.10nIRrtIR11.15nIRrdIR16.20 计算机体系结构北京信息
15、科技大学流水段流水段流水线的每个流水段的操作所有指令类型所有指令类型ALU ALU 指令指令load/store load/store 指令指令分支指令分支指令IFIFIDIDEXEXIF/ID.IR MemPCIF/ID.IR MemPCIF/ID.NPC, PC IF/ID.NPC, PC (ifif( EX/MEM.IRop = branch EX/MEM.IRop = branch )& & EX/MEM.condEX/MEM.cond)EX/MEM.ALUo else PC+4EX/MEM.ALUo else PC+4);); ID/EX.A RegsIF/ID.IRrsID/EX.
16、A RegsIF/ID.IRrs;ID/EX.B RegsIF/ID.IRrtID/EX.B RegsIF/ID.IRrt;ID/EX.NPC IF/ID.NPCID/EX.NPC IF/ID.NPC;ID/EX.IR IF/ID.IRID/EX.IR IF/ID.IR;ID/EX.Imm ID/EX.Imm (IF/ID.IRIF/ID.IR1616) )1616#IF/ID.IR#IF/ID.IR16.3116.31; EX/MEM.IR ID/EX.IREX/MEM.IR ID/EX.IR;EX/MEM.ALUo EX/MEM.ALUo ID/EX.A ID/EX.A funcfunc
17、ID/EX.B ID/EX.B或或EX/MEM.ALUo EX/MEM.ALUo ID/EX.A ID/EX.A opop ID/EX.Imm ID/EX.Imm; EX/MEM.IR ID/EX.IREX/MEM.IR ID/EX.IR;EX/MEM.ALUo EX/MEM.ALUo ID/EX.A + ID/EX.Imm ID/EX.A + ID/EX.Imm;EX/MEM.BID/EX.BEX/MEM.BID/EX.B; EX/MEM.IR ID/EX.IREX/MEM.IR ID/EX.IR;EX/MEM.ALUo EX/MEM.ALUo ID/EX.NPC + ID/EX.NPC +
18、 ID/EX.Imm ID/EX.Imm2 2;EX/MEM.cond EX/MEM.cond (ID/EX.A ID/EX.A =0 0);); (动画演示)(动画演示)(动画演示)(动画演示)(动画演示)计算机体系结构北京信息科技大学流水段流水段任何指令类型任何指令类型ALU ALU 指令指令load/store load/store 指令指令分支指令分支指令MEMMEMWBWBMEM/WB.IR EX/MEM.IRMEM/WB.IR EX/MEM.IR;MEM/WB.ALUo MEM/WB.ALUo EX/MEM.ALUo EX/MEM.ALUo; MEM/WB.IR EX/MEM.IR
19、MEM/WB.IR EX/MEM.IR;MEM/WB.LMD MEM/WB.LMD MemEX/MEM.ALUo MemEX/MEM.ALUo;或或MemEX/MEM.ALUo MemEX/MEM.ALUo EX/MEM.B EX/MEM.B; RegsMEM/WB.IRrd RegsMEM/WB.IRrd MEM/WB.ALUo MEM/WB.ALUo;或或RegsMEM/WB.IRrt RegsMEM/WB.IRrt MEM/WB.ALUo MEM/WB.ALUo; RegsMEM/WB.IRrt RegsMEM/WB.IRrt MEM/WB.LMD MEM/WB.LMD; 流水线的每个流
20、水段的操作(动画演示)(动画演示)(动画演示)(动画演示)计算机体系结构北京信息科技大学4 流水线性能分析流水线性能分析计算机体系结构北京信息科技大学流水线性能分析n吞吐率(throughput rate)单位时间内流水线所完成的任务数或输出结果的数量n加速比(speedup ratio)完成一批任务,使用非流水线执行时间与使用流水线执行时间之比n效率(efficiency)(指流水线的设备利用率)从时空图看,就是n个任务占用的时空区和m个段总的时空区之比计算机体系结构北京信息科技大学1.吞吐率n单位时间内流水线所完成的任务数量最大吞吐率:流水线在连续流动达到稳定状态后所得到的吞吐率各段相等:
21、TPmax=1/t0各段不等:TPmax=1/maxti最大吞吐率取决于流水线最慢的功能段所需的时间实际吞吐率假设m段时间相等t0的流水线完成n个任务 t0 (说明)00) 1(tntmnTnTP流水计算机体系结构北京信息科技大学例题 分析n一个具有7段流水线的CPU,各段的执行时间分别为2ns,2.2ns,2.5ns,2.2ns,2.3ns,2.1ns,2.3ns ,在该CPU上完成10个连续任务所需要的时间为( )ns, 该CPU的最高频率为( )MHz. 计算机体系结构北京信息科技大学流水线优化思路n流水线各段时间不等带来性能损失q举例n消除瓶颈的方法 (举例)l细分瓶颈段 l重复设置瓶
22、颈段 (时-空图)计算机体系结构北京信息科技大学2. 加速比n完成一批任务,使用非流水线执行时间与使用流水线执行时间之比假设m段时间相等t0的流水线完成n个任务1) 1(000nmmntntmtmnTTS流水非流水计算机体系结构北京信息科技大学3. 效率n由于流水线有通过时间和排空时间,所以流水线的各段并不是一直满负荷地工作。n从时空图看,就是n个任务占用的时空区和m个段总的时空区之比假设m段时间相等t0的流水线完成n个任务10nmnTmtnmmnE流水个段总时空区个任务时空区(举例) 计算机体系结构北京信息科技大学例题1n在静态流水线上计算 AiBi , (i=4) 求:吞吐率,加速比,效率
23、。计算机体系结构北京信息科技大学解:n(1) 确定适合于流水处理的计算过程n(2) 画时空图n(3) 计算性能q吞吐率 TP7(20t) q加速比 S(34t)(20t)1.7q效率 E(4436)(820)0.21 A1B1+ A2B2+ A3B3+ A4B4计算机体系结构北京信息科技大学进一步优化n可以看出,在求解此问题时,该流水线的效率不高。 (原因)n动态流水线的时空图 举例 n这样行不行? n正确答案计算机体系结构北京信息科技大学n瓶颈问题q理想情况下,流水线在工作时,其中的任务是同步地每一个时钟周期往前流动一段。q当流水线各段不均匀时,机器的时钟周期取决于瓶颈段的延迟时间。q在设计
24、流水线时,要尽可能使各段时间相等。n流水线的额外开销p流水寄存器延迟p时钟偏移开销3.3.5 流水线设计中的若干问题计算机体系结构北京信息科技大学q流水寄存器需要建立时间和传输延迟n建立时间:在触发写操作的时钟信号到达之前,寄 存器输入必须保持稳定的时间。n传输延迟:时钟信号到达后到寄存器输出可用的时 间。q时钟偏移开销n流水线中,时钟到达各流水寄存器的最大差值时间。(时钟到达各流水寄存器的时间不是完全相同)计算机体系结构北京信息科技大学有关流水线性能的若干问题n(1) 流水线并不能减少(而且一般是增加)单条指令的执行时间,但却能提高吞吐率。(2) 适当增加流水线的深度(段数)可以提高流水线的
25、性能。(3) 流水线的深度受限于流水线的延迟和流水线的额外开销。(4) 相关问题。如果流水线中的指令相互独立,则可以充分发挥流水线的性能。但在实际中,指令间可能会是相互依赖,这会降低流水线的性能。下一节介绍如何解决相关问题。计算机体系结构北京信息科技大学5 流水线相关流水线相关计算机体系结构北京信息科技大学流水线中的相关(1)n流水线中存在一些冲突(冒险Hazard,相关、依赖Dependence,竞争Competition)的情况,它使得下一条指令无法在预定设计的时钟周期内执行。这些冲突将降低流水线性能n主要有三种类型的冲突(相关)q结构相关(资源冲突):当指令重叠执行过程中,硬件资源满足不
26、了指令重叠执行的要求q数据相关(数据冲突) :在同时执行的多条指令中,一条指令依赖前一条指令的执行结果(数据)q控制相关(控制冲突):流水线遇到分支指令或其他改变PC值的指令计算机体系结构北京信息科技大学流水线中的相关(2)n相关有可能会使流水线停顿。n当一条指令被暂停时,暂停在其后发射(流出)的指令,但继续执行在其前发射的指令。n消除相关的基本方法:q让流水线中的某些指令暂停,而让其它指令继续执行。计算机体系结构北京信息科技大学结构相关n1. 在流水线机器中,为了使各种指令组合能顺利地重叠执行,需要把功能部件流水化,并把资源重复设置。n2. 如果某种指令组合因资源冲突而不能顺利重叠执行,则称
27、该机器具有结构相关。n3. 常见的导致结构相关的原因:q功能部件不是全流水q重复设置的资源的份数不够计算机体系结构北京信息科技大学n4. 结构相关举例:访存冲突q当数据和指令存在同一存储器中时,访存指令会导致访存冲突。q解决办法: 插入暂停周期(“流水线气泡” ) 引入暂停后的时空图q解决方法: 设置相互独立的指令存储器和数据存储器或设置相互独立的指令Cache和数据Cache。计算机体系结构北京信息科技大学n5. 避免结构相关q所有功能单元完全流水化q设置足够的硬件资源硬件代价很大n6. 有些设计方案允许有结构相关q降低成本q减少部件的延迟计算机体系结构北京信息科技大学数据相关n1. 数据相
28、关简介q当指令在流水线中重叠执行时,流水线有可能改变指令读/写操作数的顺序,使之不同于它们在非流水实现时的顺序,这将导致数据相关。q举例q当两条指令对存储器同一单元进行读写时,也可能发生数据相关。但本章仅讨论有关寄存器的数据相关。计算机体系结构北京信息科技大学n2. 利用定向技术减少数据相关引起的暂停q(1) 主要思路:在发生上述数据相关时,如果能够将计算结果从其产生的地方直接送到需要它的地方,就可以避免暂停。q(2) 当定向硬件检测到前面某条指令的结果寄存器就是当前指令的源寄存器时,控制逻辑会将前面那条指令的结果直接从其产生的地方定向到当前指令所需的位置。q(3) 工作过程演示q(4) 一个
29、功能单元的输出不仅可以定向到其自身的输入,而且还可以定向到其它单元的输入。q(5)所有的定向发生在: (图示) ALU或DM输出 ALU输入,DM输入,“O”检测部件计算机体系结构北京信息科技大学数据相关的分类n按照指令对寄存器的读写顺序,可以将数据相关分为以下三种类型:n(考虑两条指令i和j,假设i先进入流水线)n(1) 写后读相关 (RAW) (命名规则) n在 i 写入之前,j 先去读。j 读出的内容是错误的。这是最常见的相关。n(2) 写后写相关 (WAW)n(3) 读后写相关 (WAR)计算机体系结构北京信息科技大学n4. 需要暂停的数据相关n(1) 并非所有的数据相关都可以用定向技
30、术解决.举例n(2) 增加流水线互锁硬件,插入“暂停”。 当互锁硬件发现这种相关时,就 暂停流水线,直到相关消失。 举例:演示A(流水线)演示B(时空图)计算机体系结构北京信息科技大学流水线的控制相关n分支指令主要有:q无条件分支指令:跳转、过程调用和过程返回q条件分支指令n执行分支指令,程序计数器PC值两种情况:qPC值改变为目标地址(转移成功)qPC值保持正常(转移失败,顺序执行)nPC值不定,所以流水线需要暂停,直到确定了新的PC值为止n在DLX流水线中,分支转移成功导致暂停3个时钟周期。计算机体系结构北京信息科技大学n处理分支指令最简单的方法q一旦检测到分支指令(在ID段),就暂停执行
31、其后的指令,直到分支指令到达MEM段,确定出新的PC值为止。n减少流水线处理分支指令时的暂停周期数:q流水线中尽早判断出转移成功或转移失败n判断往前移q尽早计算出转移成功的分支目标地址n多个加法器部件计算机体系结构北京信息科技大学降低流水线分支损失的方法n种简单的静态方法,编译时预测n(1)冻结(Freeze)或排空(Flush)流水线q暂停流水线直到分支目标地址确定n(2)预测分支失败q继续执行分支指令之后的指令q在知道分支结果之前,分支指令后的指令不能改变机器状态,或者改变了之后能够回退。q若分支失败,则照常执行;否则,从转移目标处开始取指令执行。qDLX流水线的处理过程5 5段段MIPS
32、MIPS改进后采用改进后采用“预测分支失败预测分支失败”,分支,分支失败无停顿,分支成功有一个时钟周期的停顿;失败无停顿,分支成功有一个时钟周期的停顿;还可以采用一条延迟指令槽的延迟分支方法还可以采用一条延迟指令槽的延迟分支方法计算机体系结构北京信息科技大学n(3)预测分支成功q目标地址计算出之后,就开始执行目的地址处的指令q起作用的前题:先知道分支目标地址,后知道分支是否成功。q对DLX流水线没有任何好处。n(4)延迟分支(Delayed Branch)q把分支开销为n 的分支指令看成是延迟长度为n 的分支指令,其后紧跟有n 个延迟槽Branch-delay Slot 。流水线遇到分支指令时
33、,按正常方式处理,顺带执行延迟槽中的指令,从而减少分支开销。q延迟分支以及指令的执行顺序q分支延迟槽中的指令“掩盖”了流水线原来必需插入的暂停周期q分支延迟指令的调度n任务:在延迟槽中放入有用的指令n糟糕的情况:在延迟槽放置空操作NOP指令n较好的情况:从分支指令前找到指令放置在延迟槽中,且不影响程序计算机体系结构北京信息科技大学6 高级流水线技术高级流水线技术计算机体系结构北京信息科技大学单发射与多发射单发射与多发射(issue)(issue) 单发射处理机: 每个周期只取一条指令、只译码一条指令,只执行一条指令,只写回一个运算结果。 取指令部件和指令译码部件各设置一套; 只设置一个多功能操
34、作部件或设置多个独立的操作部件; 操作部件中可以采用流水线结构,也可以不采用流水线结构。 目标是每个时钟周期平均执行一条指令,ILP的期望值为1。 多发射处理机: 每个周期同时取多条指令、同时译码多条指令,同时执行多条指令,同时写回多个运算结果。 需要多个取指令部件,多个指令译码部件和多个写结果部件。 设置多个指令执行部件,有些指令执行部件采用流水线结构。 目标是每个时钟周期平均执行多条指令,ILP的期望值大于1。计算机体系结构北京信息科技大学单单发发射射处处理理机机的的指指令令流流水水线线时时空空图图 1 2 3 4 5 6 I1 IF ID EX WR 时时钟钟周周期期 I2 IF ID
35、EX WR I3 IF ID EX WR 指指令令 多多发发射射处处理理机机的的指指令令流流水水线线时时空空图图 1 2 3 4 5 6 I1 IF ID EX WR 时时钟钟周周期期 I2 IF ID EX WR I3 IF ID EX WR I4 IF ID EX WR I5 IF ID EX WR I6 IF ID EX WR I7 IF ID EX WR I8 IF ID EX WR I9 IF ID EX WR 指指令令 计算机体系结构北京信息科技大学l 单单发发射射处处理理机机的的指指令令流流水水线线取取指指令令指指令令译译码码执执行行指指令令EX写写回回结结果果FA1FA2FA3
36、浮浮点点加加法法部部件件来来自自指指令令CacheIFIDMD1 MD2 MD3WR通通用用寄寄存存器器后后行行写写数数栈栈乘乘除除法法部部件件AL定定点点算算术术逻逻辑辑部部件件LS取取数数存存数数部部件件计算机体系结构北京信息科技大学l 同时发射两条指令的多发射处理机的指令流水线同时发射两条指令的多发射处理机的指令流水线取指令取指令指令译码指令译码执行指令执行指令写回结果写回结果FA1FA2FA3浮点加法部件浮点加法部件来自指令来自指令CacheIF1ID1MD1 MD2 MD3WR1通用寄存器通用寄存器后行写数栈后行写数栈乘除法部件乘除法部件来自指令来自指令CacheIF2ID2ALWR
37、2通用寄存器通用寄存器后行写数栈后行写数栈定点算术逻辑部件定点算术逻辑部件LS取数存数部件取数存数部件计算机体系结构北京信息科技大学多指令流出技术n将等于1的理想CPI减小,必须实现一个时钟周期发射(流出issue)多条指令n超标量(Superscalar)处理器:每个时钟周期发射多条指令(18),可以采用编译器进行静态调度顺序执行,也可以采用硬件动态调度乱序执行n超长指令字(VLIW: Very Long Instruction Word):通过编译器调度无关的多条指令(416)形成一条长指令,每个时钟周期发射一条长指令n超级流水线(Super pipelining):将每个功能部件进一步流
38、水化,使得一个功能部件在一个时钟周期中可以处理多条指令(可以简单地理解为很长的流水线)计算机体系结构北京信息科技大学多发射流水线01234567T正常流水线正常流水线超标量流水线超标量流水线0123456T0123456T超长指令字流水线超长指令字流水线3个操作个操作01234567T超级流水线超级流水线计算机体系结构北京信息科技大学三种主流处理机: 超标量处理机:Intel公司的i860、i960、Pentium处理机,Motolora公司的MC88110,IBM公司的Power 6000,SUN公司的SPARC、 SuperSPARC、 UltraSPARC等。 超流水线处理机:SGI公司
39、的MIPS R4000、R5000、R10000等。 超标量超流水线处理机:DEC公司的Alpha等。计算机体系结构北京信息科技大学超标量处理机基本结构基本结构 一般流水线处理机: 一条指令流水线, 一个多功能操作部件, 每个时钟周期平均执行指令的条数小于1。 多操作部件处理机: 一条指令流水线, 多个独立的操作部件,可以采用流水线,也可以不流水。 多操作部件处理机的指令级并行度小于1。 超标量处理机典型结构: 多条指令流水线。 先进的超标量处理机有:定点处理部件CPU,浮点处理部件FPU,图形加速部件GPU,大量的通用寄存器,两个一级Cache。 超标量处理机的指令级并行度(ILP)大于1。
40、计算机体系结构北京信息科技大学整整 数数部部 件件整整 数数部部 件件位位 操操作作浮浮 点点加加乘乘 法法部部 件件除除 法法部部 件件图图 形形部部 件件图图 形形部部 件件内内 部部 总总 线线读读 数数 存存 数数部部 件件通通 用用 寄寄存存 器器 堆堆扩扩 展展寄寄 存存 器器 堆堆目目 标标指指 令令指指 令令 分分 配配 转转 移移 部部 件件数数 据据 C Ca ac ch he e( 8 8K KB B)指指 令令 C Ca ac ch he e( 8 8K KB B)3 32 2 位位 地地 址址 总总 线线6 64 4 位位 数数 据据 总总 线线 系系 统统 总总 线
41、线超超 标标 量量 处处 理理 机机 M MC C8 88 81 11 10 0 的的 结结 构构 Motorola公司的MC88110。有10个操作部件。 两个寄存器堆:整数部件通用寄存器堆,32个32位寄存器; 浮点部件扩展寄存器堆,32个80位寄存器。 缓冲深度为4的先行读数栈,缓冲深度为3的后行写数栈。 两个独立的高速Cache中,各为8KB,采用两路组相联方式, 转移目标指令Cache,存放一条分支上的指令。计算机体系结构北京信息科技大学 超标量处理机:一个时钟周期能同时发射多条指令的处理机 必须有两条或两条以上能够同时工作的指令流水线。 先行指令窗口:能够从指令Cache中预取多条
42、指令, 能够对窗口内的指令进行数据相关性分析和功能部件冲突检测。 先行指令窗口的大小:一般为2至8条指令。 目前的指令调度技术,每个周期发射2至4条指令比较合理。 例如:Intel公司的i860、i960、Pentium,Motolora公司的MC88110,IBM公司的Power 6000等每个周期都发射两条指令; TI公司生产SuperSPARC,Pentium III每个周期发射三条指令。 操作部件的个数一般多于每个周期发射的指令条数。通常为4 个至16个操作部件。 超标量处理机的指令级并行度:1ILPm。 m为每个周期发射的指令条数。计算机体系结构北京信息科技大学l 有先行指令窗口的超
43、标量处理机的流水线结构有先行指令窗口的超标量处理机的流水线结构取指令取指令指令译码指令译码执行指令执行指令写回结果写回结果FA1FA2FA3浮点加法部件浮点加法部件指令指令CacheIF1ID1MD1 MD2 MD3WR1通用寄存器通用寄存器后行写数栈后行写数栈乘除法部件乘除法部件指令指令CacheIF2ID2ALWR2通用寄存器通用寄存器后行写数栈后行写数栈定点算术逻辑部件定点算术逻辑部件IF3ID3LS先行指令窗口先行指令窗口取数存数部件取数存数部件FAFA:浮点加减法运算,:浮点加减法运算,MDMD:乘除法运算,:乘除法运算,ALAL:定点算术逻辑运算,:定点算术逻辑运算,LSLS 取数
44、存数取数存数计算机体系结构北京信息科技大学 多流水线调度多流水线调度 多条流水线的调度问题是一个NP完全问题, 顺序发射(in-order issue)与乱序发射(out-order issue): 指令发射顺序是按照程序中指令排列顺序进行的称为顺序发射 顺序完成(in-order completion)与乱序完成(out-order completion) 指令完成顺序是按照程序中指令排列顺序进行的称为顺序完成 多流水线的调度主要有三种方法: 顺序发射顺序完成,顺序发射乱序完成,乱序发射乱序完成。I1:LOAD R1, A ;R1(A)I2:FADD R2, R1 ;R2(R2)(R1)I3
45、:FMUL R3, R4 ;R3(R3)(R4)I4:FADD R4, R5 ;R4(R4)(R5)I5:DEC R6 ;R6(R6)1I6:FMUL R6, R7 ;R6(R6)(R7)计算机体系结构北京信息科技大学普通标量处理机,希望相同操作连续出现。 只有连续出现相同操作的指令序列时,流水线才能不“断流”,功能部件的效率才能得到充分发挥。超标量处理机则正好相反,希望相同操作不要连续出现。 相同操作的指令序列连续出现时,会发生资源冲突; 要求相同操作的指令能够相对均匀地分布在程序中。超标量处理机的这种要求正好符合一般标量程序的特点。计算机体系结构北京信息科技大学80486的整数指令流水线n
46、5级指令流水线,每级1个时钟周期 PF指令预取(prefetch) D1指令译码1(decode stage 1)对所有操作码和寻址方式信息进行译码 D2指令译码2(decode stage 2)将操作码扩展为ALU的控制信号,存储器地址计算EX指令执行(execute)完成ALU操作和Cache存取WB回写(write back)更新在EX步骤得到的寄存器数据和状态标志计算机体系结构北京信息科技大学Pentium的超标量流水线n类似80486的5级流水线,后3级可以在两个流水线同时进行n指令预取PF和指令译码D1步骤可以并行取出、译码2条简单指令,然后分别发向U和V流水线n在满足指令配对的条
47、件下,Pentium可以每个时钟周期执行完2条指令V流水线流水线U流水线流水线地址生成地址生成D2地址生成地址生成D2指令预取指令预取PF指令译码指令译码D1执行执行EX执行执行EX回写回写WB回写回写WB计算机体系结构北京信息科技大学Pentium的超标量结构转移指令地转移指令地址址寄寄存存器器V流水线流水线ALUU流水线流水线ALU移位器移位器指令译码和配对指令译码和配对控制单元控制单元分支目标分支目标缓冲器缓冲器V流水线流水线存储地址产生器存储地址产生器U流水线流水线存储地址产生器存储地址产生器队列队列B队列队列A指令指令Cache指令预取电路指令预取电路分支目标地分支目标地址址产生分支
48、地产生分支地址址计算机体系结构北京信息科技大学Pentium的指令配对检测过程(近似表达)IFi1是简单指令并且i2也是简单指令并且i1不是转移指令并且i1和i2不存在数据相关THENi1发往U流水线i2发往V流水线ELSEi1发往U流水线i2做为下对指令的第1条指令i1计算机体系结构北京信息科技大学超流水线处理机两种定义: 在一个周期内能够分时发射多条指令的处理机 指令流水线的功能段数为8段或超过8段的流水线处理机提高处理机性能的不同方法: 超标量处理机:通过增加硬件资源来提高处理机性能 超流水线处理机:通过各部分硬件的重叠工作来提高处理机性能。两种不同并行性: 超标量处理机采用的是空间并行
49、性。 超流水线处理机采用的是时间并行性。计算机体系结构北京信息科技大学指令执行时序指令执行时序l每隔1/n个时钟周期发射一条指令, 即处理机的流水线周期为1/n个时钟周期。l在超流水线处理机中,流水线的有些功能段还可以进一步细分,例如:ID功能段,可以再细分为:译码、读第一操作数和读第二操作数三个流水段。每每个个时时钟钟周周期期分分时时发发射射 3 3 条条指指令令的的超超流流水水线线处处理理机机的的指指令令执执行行时时空空图图 1 1 2 2 3 3 4 4 5 5 6 6 I1 IF I ID D EX WR 时时钟钟周周期期 I2 IF ID EX W WR R I3 IF ID EX
50、WR I4 IF ID EX WR I5 IF ID EX WR I6 IF ID EX WR I7 IF ID EX WR I8 IF ID EX WR 指指令令 I9 IF ID EX WR 计算机体系结构北京信息科技大学 典型处理机结构典型处理机结构 MIPS R4000处理机,每个时钟周期包含两个流水段,每个时钟周期包含两个流水段, 是一种很标准的超流水线处理机结构。 指令流水线有8个流水段。 有两个Cache,指令Cache和数据Cache的容量各8KB, 每个时钟周期可以访问Cache两次, 因此在一个时钟周期内可以从指令Cache中读出两条指令, 从数据Cache中读出或写入两个