- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高体大题整理by cookie
指令级并行
以硬件为主的动态技术
广泛用在桌面电脑和服务器处理器中
动态调度法,即由硬件动态调整指令执行顺序以减少停顿的影响。
好处:
能够处理某些在编译阶段无法知道的相关关系(如涉及内存引用时),并简化编译设计;
能够允许一个流水线机器上编译的指令,在另一个流水线上也能有效运行。
——无法消除真数据相关时,它会尽量避免相关所带来的停顿。
动态调度思想:
指令执行时,资源冲突和数据冲突均在指令译码(ID)阶段进行检测,若一条指令可以正确执行,才会从ID发射出去。这使得,一旦两条紧挨着的指令存在相关,则后面那条指令将在流水线中被停顿,这使得后续指令也都无法继续前行。
为了解决前面的问题,将把发射阶段分离成两个阶段:检测资源冲突和等待数据冲突消除。ID阶段分为两部分——
发射 ——译码指令,并检测资源冲突的情况;
读操作数 ——等待直到不存在数据冲突,并读出操作数。
这样,所有指令在发射阶段均是按序发射的,但读操作数阶段可能会被停顿,或在读操作数阶段相互旁路,从而可以乱序执行、乱序完成。
乱序执行会带来WAR和WAW冒险,又需要一些技术来控制这些冒险。记分板通过旁路解决(旁路思想的一般化,是把结果直接送到需要它的功能部件,即硬件支持功能部件之间的数据流动),Tomasulo算法通过寄存器重命名来避免。
乱序执行的一个主要困难在异常处理上——必须保持程序的异常行为,猜测解决。
以软件为主的静态相关技术
更多地用在嵌入式处理器中
——依赖于编译器的静态流水线调度法,则是尽量通过分离相关的指令使它们不会导致冲突,从而减少停顿的影响。
数据相关、数据冲突(数据冒险)、流水线冒险
相关性是程序的特性,一个相关是否会导致实际的冒险,该冒险是否会造成停顿,这是流水线结构的基本特征。
1)、相关性预示着存在冒险的可能性;
2)、相关性决定必须遵循的计算顺序;
3)、数据相关性决定可被利用的并行性的上限,决定了指令级的并行性在多大程度上能够得到利用。
若两条指令是可并行的,假定流水线资源充足,那么它们可以在流水线上同时执行而不会造成停顿,若两条指令是相关的,那么它们是不可并行的(尽管有时可以部分重叠执行)。所以,判断指令之间是否存在相关性很重要。
检测相关性:
数据在指令中的流动既可能通过寄存器也可能通过内存。
当数据流发生在寄存器中时,由于指令中的寄存器名均是固定的,因而相关关系可以简单明了的检测出来;
而涉及到内存操作的数据流之间的相关关系时,则相对较难被检测出来,因而即使两个形式上完全不相同的地址,也有可能指向同一个内存地址单元(而有效地址在不同执行时刻,其地址也可能不同),这些都使得相关性检测工作进一步复杂化。
真数据相关:后面的指令的源操作数是前面指令的目的操作数,即后面指令需要用到前面指令产生的结果。
如果指令中存在数据相关,反映出产生该指令序列的程序源代码中也存在这种相关关系,这种源代码的相关性一般是不存在破坏的。所以,如果两条指令之间存在数据相关,它们就不能同时执行或完全重叠执行。
编译器不能调度相关指令是它们完全的重叠执行,因为那样会使执行结果出错。
硬件:在无法消除真数据相关时,它会尽量避免相关所带来的停顿。
软件:依赖于编译器的静态流水线调度法,则是尽量通过分离相关的指令使它们不会导致冲突,从而减少停顿的影响。
名称相关:当两条指令使用同一个寄存器或是同一个内存地址,但指令之间不存在数据流(即不交换数据)时,即存在名称相关。
名称相关有两种:反相关、输出相关
与真正的数据相关不同,名称相关中指令间没有相互传递数值,因而有名称相关的指令是可以同时执行或进行重新排序的。对指令中寄存器进行重命名,就能使指令之间不再存在这种冲突。
寄存器重命名可以由编译器静态实现,也可以由硬件动态完成。
相关与冒险
相关并不一定引起冒险。
存在相关性,
且相关指令的执行时间相近时,可能会在流水线中重叠操作
指令的重新排序改变了有相关的操作数的访问顺序
这时就会发生数据冒险。
真数据相关可能引起RAW冒险;反相关可能引起WAR冒险;输出相关可能引起WAW冒险。
控制相关:决定了跟分支指令有关的指令的执行顺序,即非分支指令只能在该执行的时候才执行。所以,它会带来两方面的限制——控制相关与一个分支指令的指令不能被移到分支之前执行,没有控制相关与一个分支指令的指令不能移到分支指令之后去执行(本来不受控制,改变后会变得受控制)。
动态硬件预测技术减少分支开销。
猜测法和条件指令,在保证数据流不变的情况下,改变控制相关从而解决异常情况的。
注意:
改变控制相关可以既不影响异常行为也不影响数据流。
比如,若控制相关与分支指令的指令中用到的目标寄存器,在后面不会被用到,那么在分支指令之前就改变那个寄存器的值也不会影响到数据流状况。对于这种情况,就可以把控制相关的
您可能关注的文档
最近下载
- 2025煤矿安全规程新旧修改条款对照学习课件.pptx
- 第一章 第一节物质的分类及转化 课后作业题— 高一化学上学期人教版(2019)必修第一册.docx VIP
- ZY_T 001.8-1994中医皮肤科病证诊断疗效标准.pdf
- 2024年全国“红旗杯”班组长大赛(复赛)备考试题库(简答、案例分析题).docx VIP
- 押礼先生交礼时的讲话雅词集锦.docx VIP
- 佳能微单eos m3使用说明书-新.pdf VIP
- 小学生品德发展与道德教育(首都师范)中国大学MOOC慕课 客观题答案.pdf VIP
- 浙江省宁波市2024-2025学年高二上学期10月月考物理试卷含答案.docx VIP
- 品管圈PDCA参赛作品-血透中心提升维持性血液透析患者钙磷甲状旁腺激素合格率医院品质管理案例(1).pptx
- 《东莞市普洱茶干仓仓贮技术规范》.doc VIP
文档评论(0)