资源预览内容
第1页 / 共124页
第2页 / 共124页
第3页 / 共124页
第4页 / 共124页
第5页 / 共124页
第6页 / 共124页
第7页 / 共124页
第8页 / 共124页
第9页 / 共124页
第10页 / 共124页
亲,该文档总共124页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用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 40404040 20四人衣物一共要花 30+40*4+20=210分钟经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水线的基本概念n流水线技术:把一个重复的过程分解为若干个子过程,每个子程序可以与其他子过程同时进行n描述流水线的工作,最常用的方法是时间-空间图(时空图)q横坐标:表示时间,即各个任务在流水线中所经过的时间q纵坐标:表示空间,即流水线的各个子过程,也称为级、段、流水线深度(Stage)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水线的时空图经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水线的特点n流水线实际上是把一个功能部件分解成多个独立的子功能部件(一个任务也就分成了几个子任务,每个子任务由一个子功能部件完成),并依靠多个子功能部件并行工作来缩短所有任务的执行时间n流水线有助于提高整个程序(所有任务)的吞吐率,但并没有减少每个指令(任务)的执行时间n流水线各个功能段所需时间应尽量相等。否则,时间长的功能段将成为流水线的“瓶颈”,会造成流水线的“阻塞”(Stall)n流水线开始需要“通过时间” (Fill)和最后需要“排空时间”(Drain)。流水线只有处理连续不断的任务才能发挥其效率经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2 流水线分类流水线分类经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水线的分类(1)n按流水线所完成的功能分类q单功能流水线:只能完成一种固定功能的流水线q多功能流水线:流水线的各段可以进行不同的连接,使流水线在不同的时间,或者在同一时间完成不同的功能n例如: TI ASC的多功能流水线经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水线的分类(2)n按流水线在同一时间内各段的连接方式分类q静态流水线:n在同一时间内,多功能流水线各段只能按同一种功能连接。只有当按这种方式工作的所有任务都流出流水线之后,才能重新连接以实现其他功能。n在静态流水线中,只有当输入是一串相同的运算操作时,流水的效率才能得到发挥。n动画演示q动态流水线:n在同一时间内,多功能流水线各段可以按不同方式连接,同时执行多种功能 n动画演示经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用n动态流水线VS静态流水线q优点:能提高流水线的效率q缺点:会使流水线的控制变得复杂经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水线的分类(3)n按照流水线的级别来分n部件级流水线(运算操作流水线):q把处理机的算术逻辑部件分段,使得各种数据类型的操作能够进行流水。n处理机级流水线(指令流水线):q把指令的解释执行过程按照流水方式进行处理。n处理机间流水线(宏流水线):q它是指由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。动画解析经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水线的分类(4)n按流水线是否有反馈回路分类q线性流水线:流水线的各段逐个串接,输入数据从流水线一端输入从另一端输出;每个段都只流过一次。q非线性流水线:流水线的各段除有串接外,还有反馈回路;在一次流水过程中,有的段要被多次使用。(举例)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水线的分类(5)n按照数据表示来分n标量处理机:q不具有向量指令和向量数据表示,仅对标量进行流水处理的处理机。q例如:IBM360/91, Amdahl 470V/6 等n向量处理机:q具有向量指令和向量数据表示的处理机。q例如:TI ASC, CRAY-I 等经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水线的分类(6)n按照流动是否可以乱序来分n顺序流动流水线:q流水线输出端任务流出的顺序与输入端任务流入的顺序相同。n异步流动流水线(乱序流水线):q流水线输出端任务流出的顺序与输入端任务流入的顺序不同。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用3 MIPS五级流水线五级流水线经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用DLX(Dancing Links)nDLX DLX 是一种简单的指令集(教学、简单芯片)是一种简单的指令集(教学、简单芯片)n在不流水的情况下,如何实现在不流水的情况下,如何实现DLXDLX。q实现DLX指令的一种简单数据通路经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用MIPS的基本流水线nMIPS指令集结构用5个功能段实现,每个功能段用一个时钟周期1.取指令周期IF(Instruction Fetch)2.指令译码/读寄存器周期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 MUXDataMemoryMUXSignExtend4AdderZero?Next SEQ PCAddressNext PCWB DataInstRDRS1RS2Imm经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.一条MIPS指令最多需要以下5个时钟周期:q取指令周期(IF) 操作nIRMemPCnNPCPC+4q指令译码/读寄存器周期(ID) 操作nA RegsrsnB RegsrtnImm (IR16)16#IR16.31) 指令的译码操作和读寄存器操作是并行进行的。 原因:在MIPS指令格式中,操作码字段以及rs、rt 字段都是在固定的位置。 这种技术称为固定字段译码技术。 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用q执行/有效地址计算周期(EX) 不同指令所进行的操作不同:n存储器访问指令 操作 ALUoA + Immn寄存器寄存器ALU指令 操作 ALUoA func Bn寄存器立即值ALU指令 操作 ALUoA op Immn分支指令 操作 ALUoNPC+(Imm2); cond(A = = 0) 将有效地址计算周期和执行周期合并为一个时钟周期,这是因为MIPS指令集采用loadstore结构,没有任何指令需要同时进行数据有效地址的计算、转移目标地址的计算和对数据进行运算。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用q存储器访问/分支完成周期(MEM)n所有指令都要在该周期对PC进行更新。 除了分支指令,其他指令都是做PCNPCn在该周期内处理的MIPS指令仅仅有load、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单周期实现时,需要重复设置某些功能部件,而在多周期实现方案中,这些部件是可以共享的。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用q每一个时钟周期完成的工作看作是流水线的一段,每个时钟周期启动一条新的指令。n流水实现的数据通路q设置了流水寄存器n段与段之间设置流水寄存器n流水寄存器的命名 用其相邻的两个段的名称拼合而成。 例如:ID段与EX段之间的流水寄存器用ID/EX表示n每个流水寄存器是由若干个寄存器构成的 3.5.2 基本的MIPS流水线经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水实现的数据通路流水实现的数据通路经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用n寄存器的命名形式为:x.yn所包含的字段的命名形式为:x.ys 其中:x:流水寄存器名称 y:具体寄存器名称 s:字段名称 例如: ID/EX.IR:流水寄存器ID/EX中的子寄存器IR IRID/EX.IRop:该寄存器的op字段(即操作码字段)n流水寄存器的作用q将各段的工作隔开,使得它们不会互相干扰。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 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水段流水段流水线的每个流水段的操作所有指令类型所有指令类型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.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 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 + ID/EX.Imm2 ID/EX.Imm2;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.IRMEM/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; 流水线的每个流水段的操作(动画演示)(动画演示)(动画演示)(动画演示)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用4 流水线性能分析流水线性能分析经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水线性能分析n吞吐率(throughput rate)单位时间内流水线所完成的任务数或输出结果的数量n加速比(speedup ratio)完成一批任务,使用非流水线执行时间与使用流水线执行时间之比n效率(efficiency)(指流水线的设备利用率)从时空图看,就是n个任务占用的时空区和m个段总的时空区之比经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用1.吞吐率n单位时间内流水线所完成的任务数量最大吞吐率:流水线在连续流动达到稳定状态后所得到的吞吐率各段相等:TPmax=1/t0各段不等:TPmax=1/maxti最大吞吐率取决于流水线最慢的功能段所需的时间实际吞吐率假设m段时间相等t0的流水线完成n个任务 t0 (说明)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用例题 分析n一个具有7段流水线的CPU,各段的执行时间分别为2ns,2.2ns,2.5ns,2.2ns,2.3ns,2.1ns,2.3ns ,在该CPU上完成10个连续任务所需要的时间为( )ns, 该CPU的最高频率为( )MHz. 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水线优化思路n流水线各段时间不等带来性能损失q举例n消除瓶颈的方法 (举例)q细分瓶颈段 q重复设置瓶颈段 (时-空图)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2. 加速比n完成一批任务,使用非流水线执行时间与使用流水线执行时间之比假设m段时间相等t0的流水线完成n个任务经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用3. 效率n由于流水线有通过时间和排空时间,所以流水线的各段并不是一直满负荷地工作。n从时空图看,就是n个任务占用的时空区和m个段总的时空区之比假设m段时间相等t0的流水线完成n个任务(举例) 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用例题1n在静态流水线上计算 AiBi , (i=4) 求:吞吐率,加速比,效率。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用解: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在设计流水线时,要尽可能使各段时间相等。n流水线的额外开销p流水寄存器延迟p时钟偏移开销3.3.5 流水线设计中的若干问题经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用q流水寄存器需要建立时间和传输延迟n建立时间:在触发写操作的时钟信号到达之前,寄 存器输入必须保持稳定的时间。n传输延迟:时钟信号到达后到寄存器输出可用的时 间。q时钟偏移开销n流水线中,时钟到达各流水寄存器的最大差值时间。(时钟到达各流水寄存器的时间不是完全相同)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用有关流水线性能的若干问题n(1) 流水线并不能减少(而且一般是增加)单条指令的执行时间,但却能提高吞吐率。(2) 适当增加流水线的深度(段数)可以提高流水线的性能。(3) 流水线的深度受限于流水线的延迟和流水线的额外开销。(4) 相关问题。如果流水线中的指令相互独立,则可以充分发挥流水线的性能。但在实际中,指令间可能会是相互依赖,这会降低流水线的性能。下一节介绍如何解决相关问题。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用5 流水线相关流水线相关经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水线中的相关(1)n流水线中存在一些冲突(冒险Hazard,相关、依赖Dependence,竞争Competition)的情况,它使得下一条指令无法在预定设计的时钟周期内执行。这些冲突将降低流水线性能n主要有三种类型的冲突(相关)q结构相关(资源冲突):当指令重叠执行过程中,硬件资源满足不了指令重叠执行的要求q数据相关(数据冲突) :在同时执行的多条指令中,一条指令依赖前一条指令的执行结果(数据)q控制相关(控制冲突):流水线遇到分支指令或其他改变PC值的指令经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水线中的相关(2)n相关有可能会使流水线停顿。n当一条指令被暂停时,暂停在其后发射(流出)的指令,但继续执行在其前发射的指令。n消除相关的基本方法:q让流水线中的某些指令暂停,而让其它指令继续执行。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用结构相关n1. 在流水线机器中,为了使各种指令组合能顺利地重叠执行,需要把功能部件流水化,并把资源重复设置。n2. 如果某种指令组合因资源冲突而不能顺利重叠执行,则称该机器具有结构相关。n3. 常见的导致结构相关的原因:q功能部件不是全流水q重复设置的资源的份数不够经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用n4. 结构相关举例:访存冲突q当数据和指令存在同一存储器中时,访存指令会导致访存冲突。q解决办法: 插入暂停周期(“流水线气泡” ) 引入暂停后的时空图q解决方法: 设置相互独立的指令存储器和数据存储器或设置相互独立的指令Cache和数据Cache。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用n5. 避免结构相关q所有功能单元完全流水化q设置足够的硬件资源硬件代价很大n6. 有些设计方案允许有结构相关q降低成本q减少部件的延迟经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用数据相关n1. 数据相关简介q当指令在流水线中重叠执行时,流水线有可能改变指令读/写操作数的顺序,使之不同于它们在非流水实现时的顺序,这将导致数据相关。q举例q当两条指令对存储器同一单元进行读写时,也可能发生数据相关。但本章仅讨论有关寄存器的数据相关。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用n2. 利用定向技术减少数据相关引起的暂停q(1) 主要思路:在发生上述数据相关时,如果能够将计算结果从其产生的地方直接送到需要它的地方,就可以避免暂停。q(2) 当定向硬件检测到前面某条指令的结果寄存器就是当前指令的源寄存器时,控制逻辑会将前面那条指令的结果直接从其产生的地方定向到当前指令所需的位置。q(3) 工作过程演示q(4) 一个功能单元的输出不仅可以定向到其自身的输入,而且还可以定向到其它单元的输入。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) 并非所有的数据相关都可以用定向技术解决.举例n(2) 增加流水线互锁硬件,插入“暂停”。 当互锁硬件发现这种相关时,就 暂停流水线,直到相关消失。 举例:演示A(流水线)演示B(时空图)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用流水线的控制相关n分支指令主要有:q无条件分支指令:跳转、过程调用和过程返回q条件分支指令n执行分支指令,程序计数器PC值两种情况:qPC值改变为目标地址(转移成功)qPC值保持正常(转移失败,顺序执行)nPC值不定,所以流水线需要暂停,直到确定了新的PC值为止n在DLX流水线中,分支转移成功导致暂停3个时钟周期。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用n处理分支指令最简单的方法q一旦检测到分支指令(在ID段),就暂停执行其后的指令,直到分支指令到达MEM段,确定出新的PC值为止。n减少流水线处理分支指令时的暂停周期数:q流水线中尽早判断出转移成功或转移失败n判断往前移q尽早计算出转移成功的分支目标地址n多个加法器部件经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用降低流水线分支损失的方法n种简单的静态方法,编译时预测n(1)冻结(Freeze)或排空(Flush)流水线q暂停流水线直到分支目标地址确定n(2)预测分支失败q继续执行分支指令之后的指令q在知道分支结果之前,分支指令后的指令不能改变机器状态,或者改变了之后能够回退。q若分支失败,则照常执行;否则,从转移目标处开始取指令执行。qDLX流水线的处理过程5 5段段MIPSMIPS改进后采用改进后采用“预测分支失败预测分支失败”,分支,分支失败无停顿,分支成功有一个时钟周期的停顿;失败无停顿,分支成功有一个时钟周期的停顿;还可以采用一条延迟指令槽的延迟分支方法还可以采用一条延迟指令槽的延迟分支方法经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用n(3)预测分支成功q目标地址计算出之后,就开始执行目的地址处的指令q起作用的前题:先知道分支目标地址,后知道分支是否成功。q对DLX流水线没有任何好处。n(4)延迟分支(Delayed Branch)q把分支开销为n 的分支指令看成是延迟长度为n 的分支指令,其后紧跟有n 个延迟槽Branch-delay Slot 。流水线遇到分支指令时,按正常方式处理,顺带执行延迟槽中的指令,从而减少分支开销。q延迟分支以及指令的执行顺序q分支延迟槽中的指令“掩盖”了流水线原来必需插入的暂停周期q分支延迟指令的调度n任务:在延迟槽中放入有用的指令n糟糕的情况:在延迟槽放置空操作NOP指令n较好的情况:从分支指令前找到指令放置在延迟槽中,且不影响程序经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用6 高级流水线技术高级流水线技术经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用单发射与多发射单发射与多发射(issue)(issue) 单发射处理机: 每个周期只取一条指令、只译码一条指令,只执行一条指令,只写回一个运算结果。 取指令部件和指令译码部件各设置一套; 只设置一个多功能操作部件或设置多个独立的操作部件; 操作部件中可以采用流水线结构,也可以不采用流水线结构。 目标是每个时钟周期平均执行一条指令,ILP的期望值为1。 多发射处理机: 每个周期同时取多条指令、同时译码多条指令,同时执行多条指令,同时写回多个运算结果。 需要多个取指令部件,多个指令译码部件和多个写结果部件。 设置多个指令执行部件,有些指令执行部件采用流水线结构。 目标是每个时钟周期平均执行多条指令,ILP的期望值大于1。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用多指令流出技术n将等于1的理想CPI减小,必须实现一个时钟周期发射(流出issue)多条指令n超标量(Superscalar)处理器:每个时钟周期发射多条指令(18),可以采用编译器进行静态调度顺序执行,也可以采用硬件动态调度乱序执行n超长指令字(VLIW: Very Long Instruction Word):通过编译器调度无关的多条指令(416)形成一条长指令,每个时钟周期发射一条长指令n超级流水线(Super pipelining):将每个功能部件进一步流水化,使得一个功能部件在一个时钟周期中可以处理多条指令(可以简单地理解为很长的流水线)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用多发射流水线01234567T正常流水线正常流水线超标量流水线超标量流水线0123456T0123456T超长指令字流水线超长指令字流水线3个操作个操作01234567T超级流水线超级流水线经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用三种主流处理机: 超标量处理机:Intel公司的i860、i960、Pentium处理机,Motolora公司的MC88110,IBM公司的Power 6000,SUN公司的SPARC、 SuperSPARC、 UltraSPARC等。 超流水线处理机:SGI公司的MIPS R4000、R5000、R10000等。 超标量超流水线处理机:DEC公司的Alpha等。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用超标量处理机基本结构基本结构 一般流水线处理机: 一条指令流水线, 一个多功能操作部件, 每个时钟周期平均执行指令的条数小于1。 多操作部件处理机: 一条指令流水线, 多个独立的操作部件,可以采用流水线,也可以不流水。 多操作部件处理机的指令级并行度小于1。 超标量处理机典型结构: 多条指令流水线。 先进的超标量处理机有:定点处理部件CPU,浮点处理部件FPU,图形加速部件GPU,大量的通用寄存器,两个一级Cache。 超标量处理机的指令级并行度(ILP)大于1。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用 Motorola公司的MC88110。有10个操作部件。 两个寄存器堆:整数部件通用寄存器堆,32个32位寄存器; 浮点部件扩展寄存器堆,32个80位寄存器。 缓冲深度为4的先行读数栈,缓冲深度为3的后行写数栈。 两个独立的高速Cache中,各为8KB,采用两路组相联方式, 转移目标指令Cache,存放一条分支上的指令。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用 超标量处理机:一个时钟周期能同时发射多条指令的处理机 必须有两条或两条以上能够同时工作的指令流水线。 先行指令窗口:能够从指令Cache中预取多条指令, 能够对窗口内的指令进行数据相关性分析和功能部件冲突检测。 先行指令窗口的大小:一般为2至8条指令。 目前的指令调度技术,每个周期发射2至4条指令比较合理。 例如:Intel公司的i860、i960、Pentium,Motolora公司的MC88110,IBM公司的Power 6000等每个周期都发射两条指令; TI公司生产SuperSPARC,Pentium III每个周期发射三条指令。 操作部件的个数一般多于每个周期发射的指令条数。通常为4 个至16个操作部件。 超标量处理机的指令级并行度:1ILPm。 m为每个周期发射的指令条数。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用 多流水线调度多流水线调度 多条流水线的调度问题是一个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: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的整数指令流水线n5级指令流水线,每级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在满足指令配对的条件下,Pentium可以每个时钟周期执行完2条指令V流水线流水线U流水线流水线地址生成地址生成D2地址生成地址生成D2指令预取指令预取PF指令译码指令译码D1执行执行EX执行执行EX回写回写WB回写回写WB经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用Pentium的超标量结构转移指令地转移指令地址址寄寄存存器器V流水线流水线ALUU流水线流水线ALU移位器移位器指令译码和配对指令译码和配对控制单元控制单元分支目标分支目标缓冲器缓冲器V流水线流水线存储地址产生器存储地址产生器U流水线流水线存储地址产生器存储地址产生器队列队列B队列队列A指令指令Cache指令预取电路指令预取电路分支目标地分支目标地址址产生分支地产生分支地址址经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用Pentium的指令配对检测过程(近似表达)IFi1是简单指令并且i2也是简单指令并且i1不是转移指令并且i1和i2不存在数据相关THENi1发往U流水线i2发往V流水线ELSEi1发往U流水线i2做为下对指令的第1条指令i1经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用超流水线处理机两种定义: 在一个周期内能够分时发射多条指令的处理机 指令流水线的功能段数为8段或超过8段的流水线处理机提高处理机性能的不同方法: 超标量处理机:通过增加硬件资源来提高处理机性能 超流水线处理机:通过各部分硬件的重叠工作来提高处理机性能。两种不同并行性: 超标量处理机采用的是空间并行性。 超流水线处理机采用的是时间并行性。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用指令执行时序指令执行时序l每隔1/n个时钟周期发射一条指令, 即处理机的流水线周期为1/n个时钟周期。l在超流水线处理机中,流水线的有些功能段还可以进一步细分,例如:ID功能段,可以再细分为:译码、读第一操作数和读第二操作数三个流水段。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用 典型处理机结构典型处理机结构 MIPS R4000处理机,每个时钟周期包含两个流水段,每个时钟周期包含两个流水段, 是一种很标准的超流水线处理机结构。 指令流水线有8个流水段。 有两个Cache,指令Cache和数据Cache的容量各8KB, 每个时钟周期可以访问Cache两次, 因此在一个时钟周期内可以从指令Cache中读出两条指令, 从数据Cache中读出或写入两个数据。 主要运算部件有整数部件和浮点部件。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用超标量超流水线处理机把超标量与超流水线技术结合在一起,就成为超标量超流水线处理机超标量超流水线处理机在一个时钟周期内分时发射指令m次,每次同时发射指令n条超标量超流水线处理机每个时钟周期总共发射指令m n条 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用指令执行时序经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用典型处理机结构典型处理机结构l DEC公司的Alpha处理机采用超标量超流水线结构。 主要由四个功能部件和两个Cache组成。 四个功能部件是:整数部件EBOX、浮点部件FBOX、 地址部件ABOX和中央控制部件IBOX。l 中央控制部件IBOX能够同时读出两条指令, 同时对两条指令进行译码,作资源冲突检测,进行数据相关性 和控制相关性分析。如果资源和相关性允许,IBOX就把两条指 令同时发射给EBOX、ABOX和FBOX三个执行部件中的两个。l 指令流水线采用顺序发射乱序完成的控制方式。 在指令Cache中有一个转移历史表,实现条件转移的动态预测。 在EBOX内还有多条专用数据通路,可以把运算结果直接送到执行部件。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用 Alpha 21064处理机共有三条指令流水线, (1)整数操作流水线为7个流水段,其中, 取指令为2个流水段 分析指令为2个流水段 运算为2个流水段 写结果1个流水段 (2)访问存储器流水线为7个流水段, (3)浮点操作流水线分为10个流水段,其中, 浮点执行部件FBOX的延迟时间为6个流水段。 因为三条指令流水线的平均段数为8,且每个时钟周期发射两条指令。因此,Alpha 21064处理机是超标量超流水线处理机,所有指令执行部件,包括EBOX、IBOX、ABOX和FBOX中都设置有专用数据通路。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用3. 超长指令字超长指令字nVLIW (Very Long Instruction Word)q一种显式指令级并行指令系统q二维程序结构q指令级并行度高n指令级并行技术nVLIW的主要特点nVLIW处理机n目标代码兼容问题经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用什么是VLIWn1. VLIW (Very Long Instruction Word)的背的背景景q由美国J. A. Fisher教授于1981年首先提出,最初来源于水平微程序q由J. A. Fisher创建的Mutiflow公司研制了的世界上第一台VLIW处理机TRACE28/300。q一条指令中包含有多个能够同时执行的操作,TRACE28/300处理机的一条超长指令中最多有28条可以同时执行的指令。q算法和编译技术是关键经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2. 什么是什么是VLIW指令系统指令系统n一种显式指令级并行指令系统。n在一条VLIW指令中包含有多个相同或不同的操作字段(每个操作字段的功能相当于一般处理机中的一条指令)。n每个操作字段能够分别独立控制各自的功能部件同时工作。n二维程序结构n指令级并行度高经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用指令级并行n提出VLIW指令系统的主要目的是要开发程序中的指令级并行性(Instruction Level Parallelism)n1. 超标量(Superscalar)处理机依靠设置多条指令流水线,并通过同时发射多条指令来提高处理机的运算速度n2. 超流水线(Superpipelining)处理机通过分时使用同一条指令流水线的不同部分来提高处理机的运算速度n3. VLIW处理机经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用VLIW的主要特点的主要特点n1. 采用显式并行指令计算(EPIC:Explicitly Parallel Instruction Computing)方式。n在VLIW处理机上运行的程序是一个二维指令矩阵,每一行上的所有操作组成一条超长指令,他们之间没有数据相关、控制相关和功能部件冲突,这些指令可以在VLIW处理机上同时执行n超标量处理机和超流水线处理机通常采用隐式并行指令方式。程序是一维线性的指令序列,每条指令中一般只包含一个操作。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2 指令级并行度高n超标量处理机和超流水线处理机的指令级并行度一般为2左右,通常不超过4,n目前多数VLIW处理机的指令级并行度在4至8之间,有的已经达到几十。n由于在VLIW中通过并行编译器来开发程序中的指令级并行性,可以在一个循环、一个函数、甚至整个程序中寻找指令级并行性,而且,可以采用软件流水、循环展开等指令级并行度很高的方法充分开发程序中的多种并行性经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用n3. 硬件结构规整、简单nVLIW处理机主要由很规则的寄存器、存储器、运算部件和数据通路等组成,不规则的控制器很简单,而且,不需要复杂的指令并行调度窗口及多发射机制等。n4. 编译器的实现难度大nVLIW并行编译器主要依靠指令级并行算法、数据相关性分析算法、寄存器分配算法及并行编译技术等来显式开发程序中的指令级并行性,从而提高处理机的运行速度。要研制指令级并行度高的编译器难度很大。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用VLIW处理机处理机n1. 安腾(Intanium)处理机qIntel公司与HP公司联合研制q在Intel公司称为IA-64处理机q安腾(Intanium)处理机有自己独立的系统软件和应用软件n2. DAISY (Dynamically Architected Instruction Set from Yorktown) 处理机q由IBM公司研制q采用动态二进制转换技术实现与X86处理机兼容经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用n3. Crusoe处理机q由Transmeta公司研制q已经大量应用于笔记本计算机中,一个重要特点是功耗很低。q采用动态二进制转换技术把X86通用处理机的程序直接映射到Crusoe处理机的VLIW结构中执行。n4. 嵌入式、DSP、JAVA虚拟机q很多专用处理机采用VLIW体系结构经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用多指令流出多指令流出CPI1 高级流水线高级流水线4.4 多指令流出技术4.4.1 基于静态调度的多流出技术(*)4.4.2 基于动态调度的多流出技术4.4.3 超长指令字技术(VLIW)(*)4.4.4 多流出处理器受到的限制4.4.5 超流水线处理机(*)4.5 循环展开和指令调度经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用q一个时钟周期内流出多条指令, CPI1。q单流出和多流出处理机执行指令的时空图对比 4.4 多指令流出技术经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用单流出和多流出处理机执行指令的时空图单流出和多流出处理机执行指令的时空图 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用n多流出处理机有两种基本风格:q超标量(Superscalar)n在每个时钟周期流出的指令条数不固定,依代码的具体情况而定。(有上限)n设这个上限为n,就称该处理机为n流出。n可以通过编译器进行静态调度,也可以基于Tomasulo算法进行动态调度。 q超长指令字VLIW(Very Long Instruction Word)n在每个时钟周期流出的指令条数是固定的,这些指令构成一条长指令或者一个指令包。n指令包中,指令之间的并行性是通过指令显式地表示出来的。n指令调度是由编译器静态完成的。 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.超标量处理机与VLIW处理机相比有两个优点:q超标量结构对程序员是透明的,因为处理机能自己检测下一条指令能否流出,从而不需要重新排列指令来满足指令的流出。q即使是没有经过编译器针对超标量结构进行调度优化的代码或是旧的编译器生成的代码也可以运行,当然运行的效果不会很好。n要想达到很好的效果,方法之一: 使用动态超标量调度技术。3.下表列出了一些基本的多流出技术、这些技术的特点以及采用这些技术的处理机例子。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用技技 术术 流出流出结构结构 冲突冲突检测检测 调调 度度 主要特点主要特点 处理机实例处理机实例 超标量超标量(静态)(静态) 动态动态 硬件硬件 静态静态顺序执行顺序执行 Sun UltraSPARC/ 超标量超标量(动态)(动态) 动态动态 硬件硬件 动态动态部分乱序执行部分乱序执行 IBM Power2 超标量超标量(猜测)(猜测) 动态动态 硬件硬件 带有猜带有猜测的动测的动态执行态执行 带有猜测的带有猜测的乱序执行乱序执行 Pentium /4,MIPS R10K,Alpha 21264, HP PA 8500,IBM RS64 VLIW/LIW 静态静态 软件软件 静态静态流出包之间流出包之间没有冲突没有冲突 Trimedia,i860 EPIC 主要是主要是静态静态 主要是主要是软件软件 主要是主要是静态静态相关性被编译相关性被编译器显式地标记器显式地标记出来出来 Itanium 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用q在典型的超标量处理器中,每个时钟周期可流出1到8条指令。q指令按序流出,在流出时进行冲突检测。 在当前流出的指令序列中,不存在数据冲突或者相关冲突。举例:一个4流出的静态调度超标量处理机 q在取指令阶段,流水线将从取指令部件收到14条指令(称为流出包)。n在一个时钟周期内,这些指令有可能是全部都能流出,也可能是只有一部分能流出。4.4.1 基于静态调度的多流出技术经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用q流出部件检测结构冲突或者数据冲突。一般分两阶段实现:n第一阶段:进行流出包内的冲突检测,选出初步判定可以流出的指令。n第二阶段:检测所选出的指令与正在执行的指令是否有冲突。 MIPS处理机是怎样实现超标量的呢?假设:每个时钟周期流出两条指令: 1条整数型指令1条浮点操作指令n其中,把load指令、store指令、分支指令归类为整数型指令。 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用n要求:同时取两条指令(64位),译码两条指令(64位)。n对指令的处理包括以下步骤:q从Cache中取两条指令。q确定那几条指令可以流出(02条指令)。q把它们发送到相应的功能部件。n 双流出超标量流水线中指令的执行过程 q假设:所有的浮点指令都是加法指令,其执行时间为两个时钟周期。q为简单起见,下图中总是把整数指令放在浮点指令的前面。 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用指令类型指令类型 流水线工作情况流水线工作情况 整数指令整数指令 IF ID EX MEM WB 浮点指令浮点指令 IF ID EX EXMEMWB 整数指令整数指令 IF ID EX MEM WB 浮点指令浮点指令 IF ID EX EXMEMWB 整数指令整数指令 IF ID EX MEM WB 浮点指令浮点指令 IF ID EX EXMEMWB 整数指令整数指令 IF ID EX MEM WB 浮点指令浮点指令 IF ID EX EXMEM经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用4.采用“1条整数型指令1条浮点指令”并行流出的方式,需要增加的硬件很少。5.浮点load或浮点store指令将使用整数部件,会增加对浮点寄存器的访问冲突。 增设一个浮点寄存器的读/写端口。6.由于流水线中的指令多了一倍,定向路径也要增加。 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用7.限制超标量流水线的性能发挥的障碍。 qload指令 nload后续3条指令都不能使用其结果,否则就会引起停顿。 q分支延迟 n如果分支指令是流出包中的第一条指令,则其延迟是3个时钟周期;n否则就是流出包中的第二条指令,其延迟就是两个时钟周期。 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用q扩展Tomasulo算法:支持两路超标量n每个时钟周期流出两条指令;n一条是整数指令,另一条是浮点指令。n采用一种比较简单的方法:q指令按顺序流向保留站,否则会破坏程序语义。 q将整数所用的表结构与浮点用的表结构分离开,分别进行处理,这样就可以同时地流出一条浮点指令和一条整数指令到各自的保留站。 4.4.2 基于动态调度的多流出技术经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用n把能并行执行的多条指令组装成一条很长的指令。(100多位到几百位)n设置多个功能部件。n指令字被分割成一些字段,每个字段称为一个操作槽,直接独立地控制一个功能部件。n在VLIW处理机中,所有的处理和指令安排都是由编译器完成的。 4.4.3 超长指令字技术(VLIW)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用5.VLIW存在的一些问题 q程序代码长度增加了n提高并行性而进行的大量的循环展开。n指令字中的操作槽并非总能填满。 解决:采用指令共享立即数字段的方法,或者采用指 令压缩存储、调入Cache或译码时展开的方法。q采用了锁步机制 任何一个操作部件出现停顿时,整个处理机都要停顿。q机器代码的不兼容性经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用指令多流出处理器受哪些因素的限制呢? 主要受以下三个方面的影响:n程序所固有的指令级并行性。n硬件实现上的困难。n超标量和超长指令字处理器固有的技术限制。4.4.4 多流出处理器受到的限制经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用n将每个流水段进一步细分,这样在一个时钟周期内能够分时流出多条指令。这种处理机称为超流水线处理机。n对于一台每个时钟周期能流出n条指令的超流水线计算机来说,这n条指令不是同时流出的,而是每隔1/n个时钟周期流出一条指令。q实际上该超流水线计算机的流水线周期为1/n个时钟周期。 n一台每个时钟周期分时流出两条指令的超流水线计算机的时空图。 4.4.5 超流水线处理机经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用4.在有的资料上,把指令流水线级数为8或8以上的流水线处理机称为超流水线处理机。5.典型的超流水线处理器:SGI公司的MIPS系列R4000qR4000微处理器芯片内有2个Cache:n指令Cache和数据Cachen容量都是8 KBn每个Cache的数据宽度为64 b qR4000的核心处理部件:整数部件 n一个3232位的通用寄存器组n一个算术逻辑部件(ALU)n一个专用的乘法/除法部件 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用q浮点部件n一个执行部件q浮点乘法部件q浮点除法部件q浮点加法/转换/求平方根部件 (它们可以并行工作)n一个1664位的浮点通用寄存器组。浮点通用寄存器组也可以设置成32个32位的浮点寄存器。qR4000的指令流水线有8级经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用q各级的功能nIF:取指令的前半步,根据PC值去启动对指令Cache的访问。nIS:取指令的后半步,在这一级完成对指令Cache的访问。nRF:指令译码,访问寄存器组读取操作数,冲突检测,并判断指令Cache是否命中。nEX:指令执行。包括有效地址计算,ALU操作,分支目标地址计算,条件码测试。nDF:取数据的前半步,启动对数据Cache的访问。nDS:取数据的后半步,在这一级完成对数据Cache的访问。nTC:标识比较,判断对数据Cache的访问是否命中。nWB:load指令或运算型指令把结果写回寄存器组。 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用qMIPS R4000指令流水线时空图 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用q载入延迟为两个时钟周期
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号