欢迎来到天天文库
浏览记录
ID:48166726
大小:391.50 KB
页数:28页
时间:2020-01-17
《Branch Predication.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、4.3控制相关的动态解决技术处理器一个时钟周期流出多条指令受到以下两个因素的限制:流出n条指令的处理器中,遇到分支指令的速度也快了n倍;根据Amdahl定律可知,随着机器CPI的降低,控制相关对性能的影响越来越大。第四章指令级并行本节着重于:通过硬件技术,动态地进行分支处理,对程序运行时的分支行为进行预测,提前对分支操作做出反应,加快分支处理的速度。分支的最终延迟取决于流水线的结构、预测的方法和预测错误后恢复所采取的策略。4.3控制相关的动态解决技术4.3.1分支预测缓冲动态分支预测必须解决
2、两个问题:如何记录一个分支操作的历史。决定预测的走向。记录分支历史的方法有以下几种:(1)仅仅记录最近一次或最近几次的分支历史;(2)记录分支成功的目标地址;(3)记录分支历史和分支目标地址,相当于前面两种方式的结合;(4)记录分支目标地址的一条或若干条指令。4.3控制相关的动态解决技术分支预测缓冲技术(Branch-PredictionBuffer或者BranchHistoryTable,简写为BTB或者BHT):目前广泛使用的最简单的动态分支预测技术。使用一片存储区域,记录最近一次或几次分
3、支特征的历史。1.只有1个预测位的分支预测缓冲索引:分支指令地址的低位。存储区:1位的分支历史记录位,又称为预测位,记录该指令最近一次分支是否成功。4.3控制相关的动态解决技术状态转换图“0”记录分支不成功“1”记录分支成功图4.9只有1个预测位的分支预测缓冲状态转换图4.3控制相关的动态解决技术2.分支预测缓冲技术包括两个步骤分支预测如果当前缓冲记录的预测位为“1”,则预测分为成功;如果预测位为“0”,则预测分支为不成功。预测位修改如果当前分支成功,则预测位置为“1”;如果当前分支不成功
4、,预测位置为“0”。3.分支预测错误时,预测位就被修改,并且需要恢复现场,程序从分支指令处重新执行。4.3控制相关的动态解决技术图4.10分支预测执行不成功和重新执行过程4.3控制相关的动态解决技术例4.6一个循环共循环10次,它将分支成功9次,1次不成功。假设此分支的预测位始终在缓冲区中。那么分支预测的准确性是多少?解这种固定的预测将会在第一次和最后一次循环中出现预测错误。第一次预测错误是源于上次程序的执行,因为上一次程序最后一次分支是不成功的。最后一次预测错误是不可避免的,因为前面的分
5、支总是成功,共九次。因此,尽管分支成功的比例率是90%,但分支预测的准确性为80%(两次不正确,8次确)。4.3控制相关的动态解决技术4.1位预测机制的缺点只要预测出错,往往是连续两次而不是一次。5.解决方法采用两个预测位的预测机制。在两个预测位的分支预测中,更改对分支的预测必须有两次连续预测错误。两位分支预测的状态转换图4.3控制相关的动态解决技术图4.11具有两个分支预测位的分支预测缓冲状态转换机制4.3控制相关的动态解决技术6.n位分支预测缓冲采用n位计数器,则计数器的值在0到2n-1之
6、间:当计数器的值大于或等于最大值的一半(2n-1)时,则预测下一次分支成功;否则预测下一次分支不成功。预测位的修改和两位预测时相同:当分支成功时计数器的值加1,不成功时减1。研究表明:n位分支预测的性能和两位分支预测差不多,因而大多数处理器都只采用两位分支预测。4.3控制相关的动态解决技术7.对于真实的应用程序,两位的分支预测的准确率可达到多少呢?SPEC89标准程序的测试:在使用4096个记录项的缓冲区时,分支预测准确率可达到99%到82%。使用无穷多历史记录项的分支预测缓冲,只有少量
7、程序的分支预测准确率仅仅比4096个记录项提高1%,多数程序的预测精度是相同的。因此,对于SPEC89应用环境而言,4K的缓冲区是恰当的。8.上述分支预测机制对于改进后的DLX流水线没有帮助。4.3控制相关的动态解决技术4.3.2分支目标缓冲目标:将分支的开销降为零。方法:分支目标缓冲将分支成功的分支指令的地址和它的分支目标地址都放到一个缓冲区中保存起来,缓冲区以分支指令的地址作为标示;取指令阶段,所有指令地址都与保存的标示作比较,一旦相同,我们就认为本指令是分支指令,且认为它转移成功,并且
8、它的分支目标(下一条指令)地址就是保存在缓冲区中的分支目标地址。这个缓冲区就是分支目标缓冲区(Branch-TargetBuffer,简记为BTB,或者Branch-TargetCache)。4.3控制相关的动态解决技术1.分支目标缓冲结构和工作过程图4.12分支目标缓冲的结构和工作过程2.在流水线的各个阶段中,具有分支目标缓冲的工作分配如图4.13。问题:解决预测错误或不命中的延迟。3.采用BTB技术时指令在各种情况下的延迟指令在BTB中?是是不是不是预测结果成功成功实际的动作
此文档下载收益归作者所有