【技术实现步骤摘要】
本专利技术涉及现代微处理器及其应用系统的设计,尤其涉及实现现代处理器预执行的方法及相应的装置。
技术介绍
随着集成电路制造工艺的飞速发展,处理器设计将面临日趋严重的功耗、线延迟和设计复杂度等挑战,按序执行处理器凭借其在能耗、面积以及复杂度等方面的优势,获得了广泛的应用。但是,按序执行流水线在遇到缓存失效等事件时将被迫停顿,从而限制了处理器的性能,尤其是单线程性能。随着处理器与存储器之间速度差距的日益扩大,访存延时逐渐成为制约处理器单线程性能的主要瓶颈。预执行技术是一种典型的对访存延时包容的技术。当发生长延时缓存失效时,预执行技术利用处理器等待访存完成的空闲周期预先执行发生长延时缓存失效的访存指令 (以下简称失效访存指令)的后续指令,通过将多个访存延时相重叠来提升访存性能。根据预执行过程中指令提交方式的不同,预执行技术可主要分为以下两类第一类为非阻塞执行技术,即在预执行过程中,与失效访存指令数据无关的指令能够继续执行并提交,与失效访存指令数据相关的指令则退出流水线并被单独保存,等到访存完成后再重新进入流水线执行并提交。由于要实现指令的乱序提交,该类技术需要处理器支持访存指令重执行、寄存器相关和存储相关跟踪等机制以确保程序执行的正确性, 这大大增加了设计复杂度和硬件开销。第二类技术以Rimahead(意指预先运行)技术为典型代表,即在预执行过程中, 与失效访存指令数据无关的指令能够继续执行,并提前发起存储访问或产生有效的计算结果,与失效访存指令数据相关的指令则直接被移出流水线;所有预执行的指令均不提交。当引发预执行的失效访存指令完成访存后,处理器退出预执行, ...
【技术保护点】
1.一种实现处理器预执行的方法,其特征在于,包括处理器执行的以下步骤:在正常执行指令期间,当检测到发生长延时缓存失效时备份寄存器;在预执行指令期间,对预执行的每一指令标记预执行结果的状态;对引发所述长延时缓存失效的Load指令进行值预测,并使用经所述值预测的预测值预执行与所述Load指令数据相关的后续指令;按程序顺序将所述预执行结果保存在指令复用队列IRQ,并根据标记的所述状态设置相应的标志。
【技术特征摘要】
1.一种实现处理器预执行的方法,其特征在于,包括处理器执行的以下步骤 在正常执行指令期间,当检测到发生长延时缓存失效时备份寄存器;在预执行指令期间,对预执行的每一指令标记预执行结果的状态;对引发所述长延时缓存失效的Load指令进行值预测,并使用经所述值预测的预测值预执行与所述Load指令数据相关的后续指令;按程序顺序将所述预执行结果保存在指令复用队列IRQ,并根据标记的所述状态设置相应的标志。2.按照权利要求1所述的方法,其特征在于,所述当检测到发生长延时缓存失效时备份寄存器,具体包括当检测到发生所述长延时缓存失效时,建立检查点,并为所述寄存器配置状态标志域;使用所述检查点备份寄存器堆中的所述寄存器。3.按照权利要求2所述的方法,其特征在于,在预执行指令期间对预执行的指令标记的所述预执行结果的状态,包括通过所述状态标志域标记的无效状态、预测可复用状态、预测不可复用状态以及有效状态中的一种。4.按照权利要求3所述的方法,其特征在于,在预执行指令期间对引发所述长延时缓存失效的Load指令进行值预测,并使用经所述值预测的预测值预执行与所述Load指令数据相关的后续指令,具体包括对于引发所述预执行的Load指令且成功地从Load值预测器LVP获得预测值,则将该预测值作为值预测结果写入目标寄存器,并标记该目标寄存器为所述预测可复用状态,以及将使用该值预测结果对与该Load指令数据相关的指令预执行的结果标记为所述预测可复用状态;若引发所述预执行的不是所述Load指令,或者是所述Load指令但未成功地从所述LVP获得预测值,则标记所述目标寄存器为所述无效状态;对于在所述预执行期间引发所述长延时缓存失效的Load指令,通过查询所述LVP预测该Load指令的读数据,作为值预测结果写入目标寄存器,并标记该目标寄存器为所述预测不可复用状态,以及将使用该值预测结果对与该Load指令数据相关的指令预执行的结果标记为所述预测不可复用状态。5.按照权利要求4所述的方法,其特征在于,通过所述LVP对符合Mride模式和/或 AVD模式的引发所述长延时缓存失效的Load指令的读数据进行捕获和值预测,所述LVP包括多个表项,每一表项包括标签域,用于通过保存指令地址的高位值标识所述Load指令; 表项有效标识域,用于标识本表项是否有效;最近读值域、读值差域和预测阶段标识域用于实现所述^ride模式的值预测,其中 最近读值域,用于记录所述Load指令最近一次执行的读数据; 读值差域,用于记录所述Load指令相邻两次执行的读数据之差; 预测阶段标识域,用于标识所述Mride模式的值预测当前是处于训练阶段或预测阶段;AVD域、可信度域用于实现所述AVD模式的值预测,其中 AVD域,用于记录所述Load指令最近一次执行的访存地址与读数据之差; 可信度域,用于表示所述AVD模式的值预测的可信度值,当该可信度值高于可信度阈值上,进行所述AVD模式的值预测。6.按照权利要求5所述的方法,其特征在于,通过所述LVP对符合Mride模式和/或 AVD模式的引发所述长延时缓存失效的Load指令的读数据进行捕获和值预测,具体包括对于所述引发所述长延时缓存失效的Load指令,用该Load指令的地址查询所述LVP 的标签域,若有命中表项,且所述预测阶段标识域标识出是处于所述预测阶段,则用所述最近读值域的值与所述读值差域的值之和作为预测值读取;若所述预测阶段标识域标识出是处于所述训练阶段,则查询所述可信度域的可信度值,若该可信度值大于所述可信度阈值, 则用该Load指令的访存地址与所述AVD域的值之和作为预测值读取;若所述可信度值不大于所述可信度阈值,则表明该Load指令不可值预测;若所述查询没有未命中表项,则为该 Load指令在所述LVP创建新的表项,并初始化所述LVP的各域;对于成功读取所述预测值的所述Load指令,用所述预测值更新相应的目标寄存器,并且,对于所述引发预执行的Load指令标记该目标寄存器为所述预测可复用状态,对于所述在预执行期间引发所述长延时缓存失效的Load指令标记该目标寄存器为所述预测不可复用状态;对于不可值预测的所述Load指令以及所述查询没有命中表项,则标记相应的目标寄存器为所述无效状态;在所述Load指令获取真实的读数据时,使用该Load指令的地址查询所述LVP的标签域,若...
【专利技术属性】
技术研发人员:程旭,党向磊,王箫音,佟冬,陆俊林,易江芳,王克义,
申请(专利权)人:北京北大众志微系统科技有限责任公司,
类型:发明
国别省市:11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。