基于结果冗余解决数据相关的新技术

时间:2024-01-15 点赞:51929 浏览:106504 作者原创标记本站原创

本文是一篇指令论文范文,关于指令方面毕业论文模板,关于基于结果冗余解决数据相关的新技术相关本科论文范文。适合指令及技术及通信工程方面的的大学硕士和本科毕业论文以及指令相关开题报告范文和职称论文写作参考文献资料下载。

摘 要:本文由流水线技术的相关问题引出基于结果冗余避免暂停的值预测技术和指令用技术,并通过实例将这两种技术和重定向技术比较,验证二者的优越性.最后对两种技术进行了比较、总结,并提出两种技术可改进性的看法.

关 键 词:结果冗余;值预测技术;指令用技术

中图分类号:TP393文献标识码:A文章编号:1674-7712(2013)18-0000-02

流水线技术是把一个重复的时序过程分解为若干个子过程,而每一个子过程都可以有效的在其专用功能段上与其他子过程并行执行.

流水线技术在一定程度上能提高指令的执行速度,但如果处理不好,指令的运行将达不到预期的结果,因为流水线的各个段之间存在较强的依赖关系.这些依赖关系主要体现在数据相关、控制相关和资源相关三种相关.微处理器硬件资源的丰富和分支预测技术的进步比较有效的解决了控制相关和资源相关的问题,而数据相关是提高指令级并行的重要技术手段之一.

一、目前解决数据相关的技术

在指令的执行过程中,经常出现这样一种情况:后续指令的操作数或变址偏移量正好是或依赖于前面指令的执行结果,那么必须进入等待状态,直到前面指令执行完成并将结果存储到通用寄存器中,这种现象称为数据相关性.数据相关性极大地影响了程序的执行效率和稳定性.

目前,消除数据相关主要通过数据重定向技术来实现.数据重定向技术也称数据旁路技术.因为往往在某条指令产生结果之前,其它指令未必真正需要其计算结果,通过设置相关的专用通路,直接把前一条指令的ALU计算机结果作为下一条指令的输入数据开始计算,这样就不用必须等待前一条指令完全执行完成后将计算结果写回寄存器组,使原本需要暂停等待的操作变得可以继续执行,缩短了时间提高了效率.

虽然重定向技术在一定程度上减少了指令间相互等待的时间,提高了并行速度,但仍然有其局限性.它并不能使有数据相关的串行化指令并行执行,串行化指令仍需等待,对于有丰富流水线资源能同时发射多条指令的处理器而言,其发挥空间受到限制.

二、基于结果冗余的两种方法的提出

(一)理论背景

程序执行过程中各指令可产生三种类型的结果:首次生成的新结果;与之前结果值相同的结果;可由其他结果推导生成的结果.这三种结果对应三种指令名称:独特型指令、重复型指令和可推导型指令,重复型指令和可推导型指令的集合又称为冗余指令.

经实验统计[1],:只有很少量的指令(<5%)能生产出新的结果,绝大部分指令(80%~90%)生产的是重复的结果,另有一部分指令(<5%)生产的结果是可推导的,即程序中存在大量的执行结果冗余.因此,我们可以利用结果冗余,提出解决数据相关的技术:值预测技术和指令重用技术.

(二)值预测技术

值预测技术是一种推断技术.值预测技术首先要借助存储值预测表来存储指令的预测值.在取指阶段,用先行指令的地址PC索引值预测表;在译码阶段从值预测表中获取先行指令的预测值,然后立刻将该预测值送至正在等待该操作数的后继指令,后续指令就利用这个预测值进行运算,这样即使两条指令存在数据相关性仍能并发执行.当先行指令计算出结果后,将该结果与之前的预测值进行对比,若结果与预测值不符,则说明之前的预测值是错误的,必须取消所有使用预测值的运算指令,并重新发射新的后继指令,将正确的结果作为新指令执行的操作数.若结果与预测值相同,则说明之前的运算都是基于正确的操作数进行的,无需回退,可以继续后继指令的执行,从而实现存在数据相关性的两条指令的并发执行.因此,值预测技术先推断先行指令的结果,后使先行指令与后继指令并行执行,从而消除了数据相关、提高了指令级并行.


其流水线结构如下图:

例1假设有相关指令:I1:DECR1;I2:FADDR2,R1;

根据值预测技术,I1和I2同时取指,同时根据I1的地址PC索引值预测表;在两条指令译码的同时,把值预测表中的值送到等待该操作数的I2指令;两条指令并行执行,得出I1与I2的值;执行后把I1的结果与预测值比较,如果是相同的,则I2的值就可确认,如果不相同,则用I1的值重新计算I2.下图显示了重定向技术与值预测技术预测正确情况下的流程:

可见,在预测成功的前提下,值预测技术比重定向技术更有消除数据相关的潜力,它能使存在数据相关性的两条指令实现真正的并发执行,实现无缝连接,极大地提高了执行效率.

(三)指令重用技术

指令重用技术是一种非推断执行技术.指令重用技术借助重用缓冲器,存储某初次执行的指令的结果.当同样的指令再次出现(即指令的PC和操作数均相同)时,不必再次对其执行运算,而是在取指的同时直接赋值;在译码的同时用生用检验机制检查指令当前操作数的值与以前执行过的操作数是否相同,如果相同,等待结果确认后就可退出流水线,如果不同,则执行指令.

仍然以例1为例,可得到下面的比较表:

三、值预测技术与指令重用技术的比较

二者都是基于结果冗余的解决数据相关问题的技术,通过这两种技术,后继指令不必等先行指令执行出结果后再发射和执行,提高了指令级并行,缓解了数据流限制.但二者还是存在明显不同:(1)前者先推断使用预测值,在计算得到先行指令结果后再检验预测值的正确性;而后者是非推断执行的,在使用重用结果前就进行检验.(2)前者适用的情况更多.比如,操作数还未到位的情况,以及两条指令结果相同但操作数不同的情况,值预测技术能预测出这两种情况的结果,但不能用指令重用技术.(3)前者预测失败会带来损失,但后者不会出现任何因预测错误带来的损失.因为指令重用在执行前就进行了验证;值预测技术是在执行后才检验出的,如果出错,则要重新执行,因此对资源需求也较大.(4)前者会增加分支预测错误的损失,当它出现错误时不仅会造成更多的错误预测,还会延迟分支预测;而后者由于在较早时间就能检验到分支错误,因此能减少损失.(5)通过实例的流水线执行情况来看两个技术的执行延迟,明显指令重用技术减少了执行时间,缩短了一个周期,因此它的执行延迟被降低了;但值预测技术较重定向技术的执行延迟是没有变化的.

四、结论

值预测技术和指令重用技术是对解决数据相关问题技术的扩展,但这两种技术对硬件提出了更高的要求,当流水线规模较小,或数据相关不严重时用这两种方法的硬件性价并不划算;指令重用技术空闲的执行周期可能导致竞争资源,将会引发其他的数据相关;而且指令重用技术存在着预测失败的风险,所以对某些特定指令用重定位的代价可能更小.

针对值预测的失败风险,本人认为可以通过改进值预测表的形成以及值预测表的大小来提高预测成功率.一、指令产生结果的历史信息具有一定的分析利用价值,需要更大的存储空间进行存储,因此,值预测器的存储空间需要增大.二、多条指令会在同一时钟周期查询和更新值预测器,为了减少冲突的产生,需要为值预测器设计多端口访问机制,以满足多条指令的需求.要实现上述功能,可以尝试通过减少值历史表的表项数量、限制访问端口数量等方法来提高值预测机制的可用性.

相关论文

基于风电数据仓库的ETL技术

该文是论文格式专业数据库论文范文,主要论述了关于数据库类本科毕业论文范文,与基于风电数据仓库的ETL技术相关论文例文,适合数据库及信息。

大数据:电商新武器

本文关于电子商务网站及大数据营销及数据方面的免费优秀学术论文范文,关于电子商务网站论文范文参考文献,与大数据:电商新武器相关研究生毕。

P2P网络数据污染识别防御技术

本论文是一篇关于网络论文格式模板下载,关于P2P网络数据污染识别防御技术相关大学毕业论文范文。免费优秀的关于网络及文件及节点方面论文范。

计算机网络数据通信系统构建技术

本文是一篇计算机论文范文,计算机有关毕业论文开题报告,关于计算机网络数据通信系统构建技术相关大学毕业论文范文。适合计算机及可靠性及通。

电子商务:解决三农问题新视角

本文是一篇电子商务论文范文,电子商务方面函授毕业论文,关于电子商务:解决三农问题新视角相关电大毕业论文范文。适合电子商务及农产品及电。