赞
踩
重命名中出现的影子寄存器(shadow registers)具有专有用处,例如作为计数寄存器,链接寄存器的重命名等。
分派阶段停顿的产生原因:寄存器读端口饱和,保留站饱和,重命名缓冲饱和,完成缓冲饱和,多于一条指令分派到同一单元(保留站只有一个写端口),串行化限制
串行化限制:某些指令要求之前的指令必须在该指令执行之前完成分派/执行,之后的指令必须在该指令执行结束之后才能够分派/执行
MSHR(the miss status holding register):保存cache失效后要处理的操作,直到cache miss处理完成。
对于分支预测器,16K的一位项的性能要好于8K的两位项
ROB必须要检查给定的IA32指令的边界,确定它们是否严格地遵守原子性规则。(某些微操作被标记为第一个微操作或者是最后一个微操作)
当对组成IA32指令的一系列微操作进行提交时,不能处理外部的事件,所有外部事件必须等待。当时在两个IA32指令之间,处理器必须能够捕获中断,断点,自陷和处理错误等。
IA32体系结构允许对通用整数寄存器(EAX,AX,AH)进行部分的读取和写入,因此在寄存器重命名实现上就会产生问题。当部分宽度的写操作后面跟有一个更长宽度的读操作时,更长宽度的读操作所需要的数据必须额能够得到前面多个写操作针对寄存器不同部分的更新。
由于RS是乱序分派微操作,其空闲表项典型的分布方式是分散在已经使用或者已经分配的表项之间,所以不能使用正常的循环缓冲模型,取而代之的是一种位图方法,每一个RS表项对应着RS分配池中的一位数据。通过这种方法,这些表项可以在分配池中以任何顺序被移动或者替代。RS的搜索方式是从地址0开始扫描,直到发现空闲表项为止。
超标量发展时间表
六种级别的复杂程度的超标量技术
Alpha为底层软件提供了一种特殊模式,称为特权体系结构库(PAL,privileged architecture library)。这些例程具有强制的入口点并且执行的时候不允许中断。尽管它们是由一般的Alpha指令所组成的,但也可以访问隐藏实现的寄存器和指令。
HP的PA-RISC(Precision architecture精确体系结构)是最早的RISC体系结构之一。
如果处理器执行指令的速率只受限于真数据相关,则称该处理器运行在处理器的极限状态。在程序动态数据流图中,只要指令的操作数就绪,则该指令就被执行,在这种情况下,该处理器则达到了数据流极限。
给定一个数据流图,可以通过计算数据流图的高度(存在的最长路径的长度)来计算程序执行时间的下限。数据流极限就是这个下限,并且决定了指令执行可获得的最大速率或者ILP。该速率定义为程序中指令的数量除以数据流图的高度
程序的值局部性:大部分真实程序产生和消耗的值由有限的值集合构成
值局部性出现的经验统计场景:
非预测的值局部性利用
重用历史机制
处理器使用重用机制的难点
数据流区域重用:使用指针嵌入到重用缓冲中来连接具有数据相关的指令。对数据流图而言,因为重用属性可以传递,可以通过遍历这些指针来重用数据流图的整个子图,因此任何指令,只要它的数据流的前项都是重用候选,则它也是重用候选。
强相关模型:
弱相关模型:
弱相关模型的优点:由CFG和DFG指明的程序语义在机器能处理指令之前不需要完全确定,更进一步,只要矫正措施随时可以恢复预测错误,机器就可以主动预测或者暂时违背相关关系。从概念上说,使用弱相关模型的机器有两个相互作用的引擎。前段引擎采用弱相关模型并采用推测执行,后端引擎仍然使用强相关引擎来验证推断的有效性。
值预测单元:为处理器核心的推断计算产生正确的预测值。值预测单元的效果主要由两个因素决定:准确率和覆盖率。准确性度量预测器能够避免预测发生错误的能力,而覆盖率则度量预测器预测指令输出的能力。准确率和覆盖率一般不可兼得。
提高预测器准确性:置信度估计技术
置信度估计技术将置信度和每个值预测联系在一起,并使用这些置信度来过滤不正确的预测,以此来提高预测的准确性。如果预测超过某个置信度阈值后,则处理器核心将采用该预测值,否则忽略预测值并不带推测地执行。
置信度是通过历史机制来建立的,该机制在推测正确时使计数器加1,推测不正确时将计数器减1或者重置计数器。
基于历史的预测器:最简单的基于历史的预测器值只记住特定静态指令最近写入的值,并且推测该指令的下一个动态实例会计算相同的结果。更复杂的预测器提供了相应的方法为每条静态指令存储多个不同的值,然后使用一些策略从这些值中选择一个作为预测值
计算预测器:试图捕捉一条静态指令产生的值序列的可预测模式,然后计算序列中的下一个实例。与基于历史的预测器的区别在于,能够预测在前面程序执行中没有发生的值。
预测验证的两个目的:
预测错误恢复
数据流主动执行的错误恢复:只要非推测性的操作数就绪,相关指令就将推测性地重新执行,即相关指令存在第二个”影子发射“,就好像前面没有发生推测发射一样。预测验证和第二次发射并行执行,在预测正确的情况下,影子发射将停止,否则影子发射将继续,就像没有发生推测一样执行。问题在于消耗的执行资源太多。
选择性重发射的问题:
值预测的性能影响因素:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。