浙江工商大学计算机体系结构第2章指令级并行及其开发PPT课件.ppt
《浙江工商大学计算机体系结构第2章指令级并行及其开发PPT课件.ppt》由会员分享,可在线阅读,更多相关《浙江工商大学计算机体系结构第2章指令级并行及其开发PPT课件.ppt(62页珍藏版)》请在咨信网上搜索。
1、浙江工商大学浙江工商大学计算机体系结计算机体系结构第构第2 2章指令级章指令级并行及其开发并行及其开发2.1 指令级并行概念o指令级并行(ILP,instruction-level parallelism)产生于80年代中期,处理器采用流水线方式使指令的执行可以重叠进行,可以将指令间的关系看做是并行的,指令间潜在的重叠称为 指令级并行方法分为两类:一种依赖于硬件,动态地发现和开发指令级并行;另一种依赖于软件技术,在编译阶段静态地发现并行。前一种占主导地位,后一种局限于科学或特定领域。2.1 指令级并行概念o循环级并行 为了提高指令级并行,最常用的方法是将一个循环中的各次迭代并行执行,通常将这类
2、并行称为循环级并行。在循环中,每个迭代可以与其他任何一次迭代重叠执行,在每次迭代内部没有重叠。2.1 指令级并行概念o数据相关和冒险 要判断一段程序蕴含多少并行度,判断指令的相关性是一个关键问题,特别是在开发指令级并行时必须明确哪些指令是可以并行执行的。两条指令是并行的是指流水线有充足资源的情况下,这两条指令可以在任意深度的流水线上并行执行而不会产生停顿。两条指令是相关的,是指它们只能以顺序的方式执行,尽管它们之间只存在部分重叠。2.1 指令级并行概念o数据相关 相关有三种不同的类型:数据相关、名字相关和控制相关 数据相关数据相关,也称为真数据相关,比如有两条指令j和i,指令j可能会引用指令i
3、的结果或指令j数据相关于指令K,而指令k数据相关于指令i,则称指令j数据相关于指令i2.1 指令级并行概念o数据相关 数据相关的两条指令是不能同时执行或完全重叠的,相关意味着在两条指令之间可能可能存在一条由一个或多个数据冒险组成的相关链(见附录A);同时执行数据相关的指令会使内部互锁流水线的处理器检测到冒险,造成停顿,从而减小甚至消除指令间的重叠度 数据相关传递三方面的信息:1)数据相关表明存在冒险的可能,2)数据相关决定了必须遵循的执行顺序,3)数据相关决定了可以达到并行度的上限2.1 指令级并行概念o名字相关 名字相关发生在使用相同存储器或存储单元(称为名字)的两条指令之间,但名字相关的指
4、令间不存在数据流,名字相关有两种类型(假设指令i位于指令j之前):1、反相关 指令 i 读一个寄存器或存储单元,而指令j写该寄存器或存储单元,必须保护原始的指令执行顺序。2、输出相关 指令i和指令j写相同的寄存器时,为了保证该寄存器的值最后是由指令j写入的,必须保护指令的执行顺序。2.1 指令级并行概念o控制相关 控制相关决定了于转移指令有关的指令的执行顺序,从而使与转移有关的指令只在应当被执行时按程序顺序执行,最简单的控制相关例子:if p1 S1;if p2 S2;2.1 指令级并行概念o控制相关 控制相关会带来两类限制:1、与某一转移相关的指令不能被移动到该转移之前,这样的移动会使指令的
5、执行不再受控于该转移,比如不能将if语句的then 部分中的指令移动到if语句之前 2、与某一转移相关的指令不能被移动到该转移之后,这样的移动会使指令的执行受到该转移的控制,不能将if语句之前的指令移动到受控于该if语句的then 部分中 2.1 指令级并行概念o数据冒险 依据指令读写顺序,数据冒险可以分为三类,写后读、写后写、读后写。写后读()J试图在i写一个数据之前读取它,这时j将错误地读出旧值,是最常见的冒险类型,它对应于真实的数据相关 写后写(WAW)J试图在i写一个数据之前写该数据,这时,如果执行顺序错误,那么当写操作结束时,留下的值将是i写的结果,而程序的本意是留下j写的值2.1
6、指令级并行概念o数据冒险 读后写(WA R)J试图在i读一个数据之前写该数据,这时,i将错误地读出新值,这类冒险是由反相关引起的。WA R不会发生在静态流水线中,因为在静态流水线中,所以的读操作发生的早,写操作发生的晚(见附录A)。只有在指令流水过程中一些指令的写操作提前完成、或者其他指令的读操作滞后完成、或者指令顺序被改变的情况下,才会发生WA R冒险 读后读(RAR)不产生冒险2.2 支持指令级并行的基本编译技术o基本流水线调度 为了避免流水线停顿,要去发现可以流水重叠的不相关的指令序列,将指令代码中相关的指令加以分离,使其相隔的时钟周期能正好等于原来指令在流水执行时的时延。编译器进行这类
7、调度的能力既依赖于程序的指令级并行度,也依赖于流水线中功能单元的时延。2.2 支持指令级并行的基本编译技术o循环展开 循环展开可以增加有效操作对转移和开销指令的比重,展开可以通过多次复制循环体和调整循环中止代码来实现。循环展开也可以用来改进调度的效果,由于它消除了转移,因此来自不同迭代的指令可以被一起调度,可以在迭代内加入不相关的指令来消除数据相关引起的停顿。2.2 支持指令级并行的基本编译技术o循环展开和调度小结 1、如果迭代之间是互不相关的,则可以判定循环展开是有意义的;2、为不同的计算使用相同的寄存器会引起额外的限制,需要使用不同的寄存器来避免这类限制;3、消除额外的测试和转移指令,调整
8、循环终止和迭代代码;4、如果来自不同循环体的load和store是互不相关的,则可以在循环展开中将两者交换 5、调度代码,保持相关性,确保与原始代码结果相同 2.2 支持指令级并行的基本编译技术o循环展开和调度小结 循环展开的效果受制于三因素:展开使额外开销降低、代码量的大小和编译器的限制。循环展开次数越多,则额外开销的时钟周期越小;代码量的增长,特别是在规模较大的循环中,当代码量的增长使指令Cache的缺失率增加时,这类问题就更加明显;如果将展开和大规模调度相结合,寄存器不足是一个亟待解决的问题,特别是在多发射处理器中,由于要重叠执行更多的独立指令序列,寄存器不足带来的挑战更为严峻循环展开对
9、简单流水线、超标量多发射结构、VLIW均适用2.3 采用预测技术减小转移开销o可以通过转移预测技术来减小转移引起的性能损耗,转移预测既可以在编译阶段静态完成,也可以由硬件在执行阶段动态完成,有些处理器,转移行为在编译阶段是高度可预测的,静态转移预测既可以应用于此类处理器,也可以用来辅助动态转移预测2.3 采用预测技术减小转移开销o静态转移预测 为了重组转移周围的代码以获得更高的性能,需要在程序编译阶段静态预测转移行为,最简单的方法是预测转移总是被选中,这种方法的错误率等于转移不被选中的比率;另一种技术是通过分析转移的历史表现来进行转移预测,这种技术拥有更高的准确率,它的依据在于转移的表现通常遵
10、循双峰分布,图2.3表明通过这种策略进行转移预测是成功的。2.3 采用预测技术减小转移开销o动态转移预测 动态预测最简单的方法是转移预测缓存,它是一小块由转移指令低位地址索引的存储单元,用来记录转移指令在最近的一次执行中是否被选中,这种方法是缓存中最简单的一种,没有标志位,而且只有当转移延迟高于计算目标所花的时间时才起作用。2.3 采用预测技术减小转移开销o动态转移预测 1bit预测在性能上有不足之处,假设一个转移几乎总是被选中,而当他偶尔未被选中时,错误预测会使预测位空翻,从而使预测错误两次而不是一次。通常使用2bit预测法来弥补这个缺陷,在这种预测法中,仅当错误两次时才改变预测方向,图2.
11、4为2bit预测法的有限状态机。2.3 采用预测技术减小转移开销o动态转移预测 转移预测缓存可以作为一个在IF流水阶段通过指令地址访问的专用Cache来实现,也可以附属于指令Cache中的每一块随指令一起读取。如果经过译码后发现指令为转移指令,并且预测转移将被选中,则应立刻从预测方向上开始取指令,否则继续按顺序取指令和执行,如图2.4所示,预测错误时改变预测位。n bit 计数器当计数器值大于或等于2n-1的一半时,预测转移被选中,反之不被选中。2.3 采用预测技术减小转移开销oTournament预测器 又称整体局部自适应预测器,为了解决标准2bit预测只考虑局部信息而引起的在一些重要转移上
12、预测失败的问题而产生的,该预测器使用多个预测器,一个基于全局信息,另一个基于局部信息,通过一个选择器将二者结合。Tournament预测器以中等大小(8K-32K)的预测位获得更高的准确率,同时可以有效地利用大量预测位。2.4 采用动态调度克服数据冒险o动态调度 动态调度是通过硬件对指令执行顺序进行重组,在保持数据流和异常行为的同时减少停顿。动态调度优势:可以处理一些在编译阶段无法预见的相关情况,如存储器引用等,同时它简化了编译器的设计。更重要的是,它可以在等待时执行一些其他的代码,允许在别的流水线机器上编译的指令在不同的流水线上有效地运行,但动态调度会使硬件复杂度显著增加。2.4 采用动态调
13、度克服数据冒险o动态调度 动态调度虽然不能改变数据流,但它会在相关性出现时尽力避免停顿,而由编译器执行的静态流水线调度则是将相关指令分离,使它们不再引起冒险,从而将停顿减至最小。简单流水线技术的主要限制是按序发射和执行指令,指令以程序顺序发射,一旦指令在流水线中停顿,后续指令就无法再执行,比如当指令i的执行时间很长,则在指令i完成、指令j可以执行之前,指令j之后的指令都必须暂停。2.4 采用动态调度克服数据冒险o动态调度 乱序执行:指令的发射仍采用按序的方式,但指令在它的操作数可用时马上开始执行,流水线采用乱序执行使得指令的结束也是乱序的,乱序执行会产生WAR和WAW冒险。指令的乱序完成会使异
14、常处理变得复杂,异常行为必须保护,以确保除严格按照程序顺序执行时出现的异常之外,不会出现新的异常。即使异常行为被保护,动态调度也会产生一些不精确的异常。2.4 采用动态调度克服数据冒险o动态调度 不精确异常:是指当产生异常时,处理器的状态与严格按照程序顺序执行时的处理器状态不同,不精确异常的发生有下面两种可能:1、异常指令执行之前,流水线提前完成了后面的指令 2、异常指令完成之前,流水线还没有完成前面的指令2.4 采用动态调度克服数据冒险o动态调度 为了实现乱序执行,需要将五级流水线的ID流水阶段分割为以下两个部分:1、发射 译码指令,检测结构冒险 2、读操作数 等到不存在数据冒险时读操作数
15、在动态调度流水线中,所有的指令在发射阶段都是按序发射,但在读操作数阶段,则可能产生停顿,即进入乱序执行。重点讨论Tomasulo算法2.4 采用动态调度克服数据冒险o用Tomasulo方法进行动态调度 算法由Robert Tomasulo 提出,通过对操作数何时可用进行跟踪以减少RAW冒险,通过引入寄存器重命名减少WAW和WAR冒险。该方法的改进版本的共同特点是通过跟踪指令的相关性使指令在操作数可用时立即开始执行,通过寄存器重命名减少数据冒险。寄存器重命名寄存器重命名是指通过重命名所有的目标寄存器,包括指令序列中位置靠前的指令将要读和写的寄存器。2.4 采用动态调度克服数据冒险o保留站保留站:
16、在Tomasulo算法中,寄存器重命名是通过保留站实现的,保留站为等待发射的指令保存操作数。基本思想是:1、当操作数可用时,保留站马上取操作数并将其缓存,从而避免从寄存器中读操作数避免从寄存器中读操作数;2、即将执行的指令指定保留站为其提供数据输入指定保留站为其提供数据输入;3、当对寄存器的后续写操作在执行过程中发生重叠时,只允许最后一个实际更新寄存器。在指令被发射后,它所需要的操作数所对应的寄存器被寄存器被重命名为保留站的名字重命名为保留站的名字 2.4 采用动态调度克服数据冒险o保留站保留站 保留站与寄存器堆相比有两个重要特点,首先,冒险检测和执行控制是分布的,一个单元中的指令何时可以开始
17、执行是由该单元保留站所掌保留站所掌握的信息决定的握的信息决定的;其次,结果将从缓存它们的保留站中直接传送给功能单元保留站中直接传送给功能单元,而不是通过寄存器传送,这是通过一条公共结果总线/公共数公共数据总线据总线实现的,它使得等待操作数的所有单元可以同时取到操作数。2.4 采用动态调度克服数据冒险oTomasulo算法处理器结构 该处理器基本结构见图2.9,包括浮点单元和load-store单元。每个保留站保存一条已经被发射并等待执行的指令,如果指令所需要的操作数已经被计算出来,那么保留站需要保存该操作数,否则要保存将要提供该操作数的保留站的名字。load-store缓存保存从存储器中读出或
18、即将要保存到存储器中去的数据或数据地址。浮点寄存器通过一对总线和功能单元相连,通过一条单独的总线和store缓存相连。从功能单元和存储器中得到的结果被送往公共数据总线。保留站均设置标签域,用于流水线控制。2.4 采用动态调度克服数据冒险o指令运行的三个阶段 1、发射:从指令队列中取到下一条指令,指令队列按FIFO顺序维护,以保证正确的数据流。如果有匹配的空闲保留站,并且指令的操作数的值也保存在寄存器中,则将指令和操作数的值一起发射到该保留站中一起发射到该保留站中。如果没有空闲的保留站,则说明发生结构冒险,指令会被停顿,直至出现可用的保留站或缓存。如果操作数不在寄存器中,则需要跟踪将要产生该操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙江 工商大学 计算机体系结构 指令 并行 及其 开发 PPT 课件
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。