好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

44多指令流出技术.ppt

25页
  • 卖家[上传人]:博****1
  • 文档编号:584763421
  • 上传时间:2024-08-31
  • 文档格式:PPT
  • 文档大小:345.52KB
  • / 25 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1/254.4 多指令流出技术 ¿ 一个时钟周期内流出多条指令,一个时钟周期内流出多条指令, CPICPI<<1 1¿ 多指令流出处理器有多指令流出处理器有三种基本结构三种基本结构:: • 超标量超标量((SuperscalarSuperscalar)) 每个时钟周期流出的指令数不定,它既可每个时钟周期流出的指令数不定,它既可 以通过编译器静态调度,也可以通过记分牌或以通过编译器静态调度,也可以通过记分牌或 TomasuloTomasulo算法动态调度,算法动态调度,• 超流水超流水((Super PipelineSuper Pipeline)) 将每个功能部件进一步流水化,特别是取将每个功能部件进一步流水化,特别是取 指令或指令流出被分解为多个段,使得一个功指令或指令流出被分解为多个段,使得一个功 能部件在一拍中可以处理多条指令能部件在一拍中可以处理多条指令第四章 指令级并行 2/25• 超长指令字超长指令字VLIWVLIW((Very Long Instruction Very Long Instruction Word Word,,简记为简记为VLIWVLIW)) 每个时钟周期流出的指令数是固定的,它每个时钟周期流出的指令数是固定的,它 们构成一条长指令,或说是一个混合指令包,们构成一条长指令,或说是一个混合指令包, 这种处理器目前只能通过编译静态调度。

      这种处理器目前只能通过编译静态调度 4.4 多指令流出技术 3/25¿ 采采用用前前面面假假设设的的流流水水线线延延迟迟,,并并且且采采用用相相同同的的代代 码,即将码,即将1 1个标量和数组相加:个标量和数组相加: Loop:Loop:LDLDF0,0(R1)F0,0(R1);F0=;F0=数组元素数组元素 ADDDADDDF4,F0,F2F4,F0,F2; ;加上在加上在F2F2中的标量中的标量 SDSD0(R1),F40(R1),F4; ;存结果存结果 SUBISUBIR1,R1R1,R1,, #8#8 ; ;将指针减少将指针减少8(8(每个每个DWDW)) BNEZBNEZR1,LoopR1,Loop;R1;R1不等于不等于0 0,转移,转移4.4 多指令流出技术 4/254.4.1 静态超标量技术 ¿ 在在典典型型的的超超标标量量处处理理器器中中,,每每个个时时钟钟周周期期可可 流出流出1 1到到8 8条指令。

      条指令¿ 流出的指令必须不相关且满足某些限制条件流出的指令必须不相关且满足某些限制条件¿ 超超标标量量处处理理器器的的指指令令序序列列可可以以采采用用静静态态调调度度 或动态调度或动态调度¿ DLXDLX处处 理理 器器 是是 怎怎 样样 实实 现现 超超 标标 量量 的的 呢呢 ?? 假设:每个时钟周期流出两条指令:假设:每个时钟周期流出两条指令: ① ① 取(取(loadload))指令、存(指令、存(storestore))指指 令、分支指令或整数运算操作,令、分支指令或整数运算操作, ② ② 任意的浮点操作任意的浮点操作 4.4 多指令流出技术 5/251. 1. 要求:要求:¿ 取指令和解码部件都是取指令和解码部件都是6464位¿ 编译结果要求指令按要求组合成对,且与编译结果要求指令按要求组合成对,且与6464位边位边 界对齐,整数指令顺序在前界对齐,整数指令顺序在前¿ 只有第一条指令流出后才可以流出第二条指令只有第一条指令流出后才可以流出第二条指令 如果第二条指令不满足条件就只流出第一条指令如果第二条指令不满足条件就只流出第一条指令。

      2. 2. DLXDLX两路超标量指令流的示意图两路超标量指令流的示意图 4.4 多指令流出技术 6/25指令整数指令浮点指令整数指令浮点指令整数指令浮点指令整数指令浮点指令IFIFIDIDIFIFEXEXIDIDIFIFMEMMEMEXEXIDIDIFIFWBWBMEMMEMEXEXIDIDWBWBMEMMEMEXEXWBWBMEMMEMWBWB流水线工作情况 图图4.16 4.16 两路超标量指令执行示意图两路超标量指令执行示意图 4.4 多指令流出技术 7/253.3.通过对指令流出部件采用流水技术,可以很大地通过对指令流出部件采用流水技术,可以很大地 提高指令流出的速率,但同时必须采用流水化的提高指令流出的速率,但同时必须采用流水化的 功能部件或多个独立的功能部件功能部件或多个独立的功能部件4.4.并行流出一条整数指令和一条浮点指令,除了一并行流出一条整数指令和一条浮点指令,除了一 般的冲突监测机制,只要增加少量的硬件般的冲突监测机制,只要增加少量的硬件5.5.指令相关情况指令相关情况 ¿ 浮点数据访存指令将使用整数部件,会增浮点数据访存指令将使用整数部件,会增 加访存的加访存的结构冲突结构冲突。

      监测是否存在结构相监测是否存在结构相 关只需检查两条指令的操作码关只需检查两条指令的操作码¿ 浮点寄存器端口的浮点寄存器端口的访问冲突访问冲突:: 4.4 多指令流出技术 8/25•限制浮点数据存取(访存)指令单独执行限制浮点数据存取(访存)指令单独执行•给每个浮点寄存器设置两个的端口,一个读端口,给每个浮点寄存器设置两个的端口,一个读端口,一条写端口,通过增加资源来消除一条写端口,通过增加资源来消除结构相关结构相关¿ 当当指指令令组组合合中中包包含含浮浮点点取取指指令令,,且且后后面面的的浮浮点点指指令令 与与之之相相关关时时,,硬硬件件必必须须能能够够检检测测出出来来,,从从而而限限制制后后 面面浮浮点点指指令令的的流流出出除除了了这这种种情情况况,,其其它它可可能能存存在在 的的相相关关检检测测和和单单流流出出流流水水线线是是相相同同的的另另外外,,还还需需 要要添添加加一一些些额额外外的的相相关关专专用用通通路路来来避避免免不不必必要要的的流流 水线空转水线空转¿ 限制超标量流水线的性能发挥的障碍:限制超标量流水线的性能发挥的障碍: 4.4 多指令流出技术 9/25•取操作指令的结果不能在本周期或下一个周期使取操作指令的结果不能在本周期或下一个周期使用,所以后续三条指令不能使用其结果。

      用,所以后续三条指令不能使用其结果•分支延迟也变为三条指令,因为分支指令肯定是分支延迟也变为三条指令,因为分支指令肯定是指令组合的第一条指令指令组合的第一条指令 例例4.94.9 下下面面是是前前面面我我们们使使用用的的循循环环程程序序段段,,在在超超标标 量量DLXDLX流水线上将如何调度?流水线上将如何调度? Loop: LD F0,0(R1) ;F0=;F0=数组元素数组元素 ADDDF4,F0,F2 ; ;加上在加上在F2F2中的标量中的标量 SD0(R1),F4 ;存结果存结果 SUBIR1,R1, #8 ; ;将指针减少将指针减少8 8(每个(每个DWDW)) BNEZR1,Loop ;R1;R1不等于不等于0 0,转移,转移 4.4 多指令流出技术 解:解:展开并经过调度的指令序列如图展开并经过调度的指令序列如图4.174.17所示 Loop: LDLDLDLDLDSDSDSDSDSUBIBNEZSDF0(R1)F6,-8(R1)F10,-16(R1)F14,-24(R1)F18,-32(R1)0(R1),F4-8(R1),F8-16(R1),F12-24(R1),F16 R1,R1,#40R1,Loop8(R1),F20ADDDADDDADDDADDDADDDF4,F0,F2F8,F6,F2F12,F10,F2F16,F14,F2F20,F18,F2123456789101112 整数指令 浮点指令 时钟周期 11/25 超标量流水线上展开的代码每次循环需超标量流水线上展开的代码每次循环需1212个个时钟时钟周期,即每个迭代是周期,即每个迭代是2.42.4个个时钟周期。

      而在普通的时钟周期而在普通的DLXDLX流水线上,没有调度的迭代流水线上,没有调度的迭代1 1次次为为9 9个个时钟周期,性能时钟周期,性能提高了提高了3.753.75倍;调度后为倍;调度后为6 6个个时钟周期,性能提高了时钟周期,性能提高了2.52.5倍;展开倍;展开4 4次次并调度后每个迭代为并调度后每个迭代为3.53.5个时钟周期,个时钟周期,性能提高了性能提高了1.41.4倍 4.4 多指令流出技术 12/256.6.超标量处理器与超长指令字处理器相比有两个超标量处理器与超长指令字处理器相比有两个 优点:优点: ((1 1)超标量结构对程序员是透明的,因为处理)超标量结构对程序员是透明的,因为处理 器能自己检测下一条指令能否流出,从而器能自己检测下一条指令能否流出,从而 不需要排列指令来满足指令流出;不需要排列指令来满足指令流出; ((2 2)即使是没有经过编译器对超标量结构进行)即使是没有经过编译器对超标量结构进行 调度优化的代码或是旧的编译器生成的代调度优化的代码或是旧的编译器生成的代 码也可以运行,当然运行的效果不会很好。

      码也可以运行,当然运行的效果不会很好 要想达到很好的效果,方法之一要想达到很好的效果,方法之一: : 使用使用动态超标量调度技术动态超标量调度技术4.4 多指令流出技术 13/254.4.2 动态多指令流出技术 扩展扩展TomasuloTomasulo算法:算法:支持两路超标量支持两路超标量 即每个时钟周期流出两条指令即每个时钟周期流出两条指令 (一条是整数指令,另一条是浮点指令)(一条是整数指令,另一条是浮点指令) 1.1.要求要求¿ 指指令令按按顺顺序序流流向向保保留留站站,,否否则则信信息息记记录录机机制制 会太复杂会太复杂¿ 将将整整数数寄寄存存器器和和浮浮点点寄寄存存器器分分开开,,只只要要不不使使 用用相相同同的的寄寄存存器器就就可可同同时时将将一一条条整整数数指指令令和和 一条浮点指令送到它们的保留站中去一条浮点指令送到它们的保留站中去¿ 限制相关指令的并行执行限制相关指令的并行执行 4.4 多指令流出技术 14/252.2.有有两种方式两种方式可以实现两路超标量。

      可以实现两路超标量 (1) (1) 将指令流出段进一步流水化,使指令流出的将指令流出段进一步流水化,使指令流出的 速度是基本机器周期的速度是基本机器周期的两倍两倍 (2) (2) 对流出的指令组合进行限制对流出的指令组合进行限制. .只有浮点的取只有浮点的取 操作指令或是从整数寄存器将数据送入浮点寄操作指令或是从整数寄存器将数据送入浮点寄 存器的传送操作,才会产生相关而导致两条指存器的传送操作,才会产生相关而导致两条指 令不能同时执行如果对流出的指令组合限制令不能同时执行如果对流出的指令组合限制 减少,指令组合的复杂度增加,可能出现的相减少,指令组合的复杂度增加,可能出现的相 关情况会更多,对硬件相关检测的要求就会大关情况会更多,对硬件相关检测的要求就会大 提高4.4 多指令流出技术 15/253.3.使使用用结结果果队队列列可可以以减减少少存存储储器器取取操操作作或或数数据据传传送送操操作作对对保保留留站站的的需需求求量量,,可可以以使使等等待待操操作作数数的的存存操操作指令提早流出。

      作指令提早流出4.4.动态调度对数据传送是最有效的,而静态调度对动态调度对数据传送是最有效的,而静态调度对寄存器寄存器- -寄存器操作的代码序列最有效寄存器操作的代码序列最有效 通过队列实现存储器操作和数据传送操作,而通过队列实现存储器操作和数据传送操作,而脱离对其他功能部件的保留站依赖的结构,称为脱离对其他功能部件的保留站依赖的结构,称为解解耦(耦(decoupleddecoupled,,也可称为退耦)结构也可称为退耦)结构 4.4 多指令流出技术 16/25例例4.104.10 下下面面的的代代码码运运行行于于采采用用TomasuloTomasulo算算法法的的两两路路动态超标量动态超标量DLXDLX流水线上现做以下假设:流水线上现做以下假设:((1 1))无无论论是是否否相相关关,,每每个个时时钟钟周周期期能能流流出出一一条条整整 数指令和一条浮点指令;数指令和一条浮点指令;((2 2))有有1 1个个整整数数部部件件,,用用于于整整数数运运算算和和地地址址计计算算;; 有有1 1个个独立的浮点功能部件;独立的浮点功能部件;((3 3)指令流出和写结果各占用)指令流出和写结果各占用1 1个个时钟周期;时钟周期;((4 4))有有1 1个个具具有有独独立立分分支支预预测测能能力力的的分分支支预预测测部部件件,, 分支指令只能单独流出,没有分支延迟;分支指令只能单独流出,没有分支延迟;((5 5)因为写结果占用)因为写结果占用1 1个个周期,所以产生结果的延周期,所以产生结果的延 迟为:整数运算迟为:整数运算1 1个个周期,存储器取数操作周期,存储器取数操作2 2 个个周期,浮点运算周期,浮点运算3 3个个周期;周期; 4.4 多指令流出技术 17/25 列列表表表表示示出出循循环环前前面面三三遍遍循循环环各各个个指指令令的的流流出出、、开开始始执执行行、、访访存存和和将将结结果果写写到到CDBCDB的的时时间间。

      需需要要分分析析的源代码为:的源代码为: Loop:Loop:LDLDF0,0(R1)F0,0(R1);F0=;F0=数组元素数组元素 ADDDADDDF4,F0,F2F4,F0,F2; ;加上在加上在F2F2中的标量中的标量 SDSD0(R1),F40(R1),F4; ;存结果存结果 SUBISUBIR1,R1R1,R1,,#8#8 ; ;将指针减少将指针减少8 8(每个(每个DWDW)) BNEZBNEZR1,LoopR1,Loop;R1;R1不等于不等于0 0,转移,转移解解 运行结果如图运行结果如图4.184.18所示 4.4 多指令流出技术 111112222233333LDADDDSDSUBIBNEZLDADDDSDSUBIBNEZLDADDDSDSUBIBNEZF0,0(R1)F4,F0,F20(R1), F4R1,R1,#8R1,LoopF0,0(R1)F4,F0,F20(R1), F4R1,R1,#8R1,LoopF0,0(R1)F4,F0,F20(R1), F4R1,R1,#8R1,Loop流出112234455677889执行2534671089111215131416访存3 9  8 14  13 19写CDB48 5 913 10 1418 15 说明流出第一条指令等待LD的结果等待ADDD的结果等待SD计算0(R1)的ALU等待SUBI的结果等待BNEZ流出和结果等待LD的结果0(R1)等待ALU,等待ADDD的结果等待ALU等待SUBI的结果等待BNEZ流出和结果等待LD的结果0(R1)等待ALU,等待ADDD的结果等待ALU等待SUBI的结果遍数 指 令 19/25 从图中可以看出:从图中可以看出: 程序基本可以达到程序基本可以达到3 3拍拍流出流出5 5条条指令,指令, IPC=5/3=1.67IPC=5/3=1.67条条/ /拍拍 虽然指令的流出率比较高,但是执行效率并不虽然指令的流出率比较高,但是执行效率并不是很高,是很高,1616拍拍共执行共执行1515条条指令,平均指令执行速度指令,平均指令执行速度为为15/16=0.9415/16=0.94条条/ /拍拍。

      4.4 多指令流出技术 20/254.4.3 超长指令字技术 ¿ 采采用用多多个个独独立立的的功功能能部部件件,,将将多多条条指指令令的的操操作作 组组装装成成固固定定格格式式的的指指令令包包,,形形成成一一条条非非常常长长的的 指令¿ 超超长长指指令令字字的的格格式式固固定定,,处处理理过过程程简简单单,,采采用用 超长指令字的处理器所需硬件量比超标量要少超长指令字的处理器所需硬件量比超标量要少¿ 下面讨论流出通道较宽的超长指令字处理器下面讨论流出通道较宽的超长指令字处理器 4.4 多指令流出技术 21/251.1.超长指令字处理器的指令包括:超长指令字处理器的指令包括: 两个整数操作、两个浮点操作、两个访存操两个整数操作、两个浮点操作、两个访存操作和一个分支操作,作和一个分支操作, 每个操作可能占用每个操作可能占用1616到到2424位,从而指令长度位,从而指令长度达到达到112112到到168168位2.2.指令中每一个操作字段称为指令中每一个操作字段称为操作槽操作槽3.3.超超长长指指令令字字处处理理器器中中功功能能部部件件的的数数量量和和指指令令中中包包含的操作数量是对应的。

      含的操作数量是对应的4.4.假假设设有有一一种种技技术术可可以以产产生生满满足足超超长长指指令令字字要要求求的的代码段,这个代码段用来构建超长指令字代码段,这个代码段用来构建超长指令字 5.5.下下面面看看一一个个最最基基本本的的超超长长指指令令字字处处理理器器的的操操作作过过程 4.4 多指令流出技术 22/25例例4.114.11 假假设设超超长长指指令令字字每每个个时时钟钟周周期期可可同同时时流流出出两两 条条访访存存指指令令、、两两条条浮浮点点指指令令和和一一条条整整数数指指令令 或或分分支支指指令令给给出出在在此此处处理理器器上上数数组组元元素素循循 环环加加一一个个标标量量的的展展开开后后的的代代码码序序列列尽尽可可能能 展展开开循循环环以以消消除除空空操操作作,,忽忽略略分分支支指指令令的的延延 迟槽 解解 代码序列入图代码序列入图4.194.19所示,展开所示,展开5 5遍遍循环可以循环可以 消除空操作消除空操作 4.4 多指令流出技术 LDLDLD  SDSDSDF0,0(R1)F10,-16(R1)F18,-32(R1)  0(R1),F4-16(R1),F128(R1),F20LDLD   SDSDF6,-8(R1)F14,-24(R1)   -8(R1),F8–24(R1),F16ADDDADDDADDDF4,F0,F2F12,F10,F2F20,F18,F2ADDDADDDF8,F6,F2F16,F14,F2SUBIBNEZR1,R1,#40R1,Loop访存指令1 访存指令2 浮点指令1 浮点指令2 整数/转移指令 这段程序的运行时间为这段程序的运行时间为8 8个个时钟周期,每遍循环平均时钟周期,每遍循环平均1.61.6个个时钟周期。

      时钟周期8 8个个时钟周期内流出了时钟周期内流出了1717条条指令,每个指令,每个时钟周期时钟周期2.12.1条条8 8个时钟周期共有操作槽个时钟周期共有操作槽8 8 5=405=40个个,有,有效槽的比例为效槽的比例为42.5%42.5% 功能部件使用效率不高是超长指令字的不足之一功能部件使用效率不高是超长指令字的不足之一 24/254.4.4 多流出处理器受到的限制 1.1.处理器中指令流出能力是有限的,它主要受处理器中指令流出能力是有限的,它主要受 以下方面的影响:以下方面的影响: (1) (1) 程序内在的指令级并行性;程序内在的指令级并行性; ( (最简单、最根本的因素最简单、最根本的因素) ) 所需要的无关指令数等于流水线的深度所需要的无关指令数等于流水线的深度 乘以可以同时工作的功能部件数乘以可以同时工作的功能部件数 (2) (2) 硬件实现的困难;硬件实现的困难; 多指令流出的处理器需要大量的硬件资源多指令流出的处理器需要大量的硬件资源。

      (3) (3) 超标量和超长指令字处理器固有的技术限制超标量和超长指令字处理器固有的技术限制 4.4 多指令流出技术 25/252. 2. 设计多流出处理器的主要难点:设计多流出处理器的主要难点: ¿ 访存的开销访存的开销¿ 硬件的复杂性硬件的复杂性¿ 编译器技术的难度编译器技术的难度 4.4 多指令流出技术 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.