本发明专利技术公开了一种缓存(Cache)预测执行的处理器与装置及方法。该处理器包括:多级缓存,访存部件以及主存储器,还包括缓存预测执行装置;所述缓存预测执行装置,包括缓存命中比较单元,预测执行单元,预测执行回滚提交单元;以及预测数据块寄存器,处理器预测执行位,指令预测执行位。其比较访存地址对应的缓存块的状态位是否为有效(Valid),决定是否缓存预测;当发生缓存预测时,进行预测执行,控制访存部件取回访存结果;根据访存结果,决定将预测执行结果直接提交,还是或者进行回滚,从预测点重新执行。该装置可以有效地降低了处理器的平均访存延时,提高了处理器的性能。
【技术实现步骤摘要】
本专利技术涉及实现一种计算机处理器
,尤其是一种当发生缓存(Cache)块无效时的。
技术介绍
随着处理器内部主频的提高以及结构的优化,处理器的运算性能越来越高,但是,主存的访问速度却没有同步的增长速度, 于是出现了访存墙(Memory Wall)的问题。为了解决该问题,现代处理器一般都是通过增加多级缓存(Cache)来缓和问题。在多核处理器中,各个处理器核一般都有其私有缓存(Cache),这会导致不同处理器核中私有缓存(cache)数据备份不一致的问题。为了解决该问题,现代处理器都支持各种缓存(Cache) —致性协议,这些协议的基本思想和实现都是,当一个处理器核对一地址发生写时,会发送无效请求(invalidate)给所有含有相同缓存(Cache)的处理器核,将对应其他处理器核上的对应缓存块(又称缓存行,Cache Line)的状态位置为无效(invalid)。之后,当发生访问该无效的缓存块的访存请求时,需要从上一级缓存或主存取回最新的值,对应指令才能继续执行。但是,这种方法存在一个伪共享的问题,为了节省缓存(Cache)空间,提高缓存(Cache)利用率,现代处理器核的缓存块(Cache Line) 一般都是256位,或者512位,而实际的访存操作,往往才访问8位,16位或者32位的数据。而由于无效是按缓存块为单位进行无效的,导致即使修改了整个缓存块的I位数据,整个缓存块都会无效,以后其他处理器即使访问该缓存块的其他部分数据,也必须从上一级缓存或者主存取回来,指令才能继续执行,大大浪费时间和效率,降低处理器的性能。
技术实现思路
本专利技术的目的在于提供一种缓存(Cache)预测执行的处理器与装置及方法,其有效地降低了处理器的平均访存延时,提高了处理器的性能。为实现本专利技术目的而提供的一种缓存预测执行的处理器,包括多级缓存,以及主存储器,还包括缓存预测执行装置;所述缓存预测执行装置,包括缓存命中比较单元,预测执行单元,预测执行回滚提交单元;以及预测数据块寄存器,处理器预测执行位,指令预测执行位;其中所述缓存命中比较单元,用于将发起访存的指令的访存地址的低位对应的缓存块的标签(Tag)和TLB出来的高位地址比较,根据比较结果置位处理器预测执行位,决定处理器是否进入预测执行模式,并在进入预测执行模式后启动预测执行单元,置位所述发起访存的指令的指令预测执行位有效;所述预测执行单元,用于当发生缓存预测时,进行预测执行,根据后续指令与所述发起访存的指令的依赖关系,决定是否将对应的后续指令的指令预测执行位置有效(I),并发射访存指令及其后续指令,并在预测执行的同时,控制所述访存部件向上一级缓存或者内部存储器取回所述发起访存的指令的访存结果;所述预测执行回滚提交单元,用于在所述访存部件取回访存结果返回后,通过和预测的数据块进行比较,决定是否回滚或者提交,并将处理器预测执行位和指令预测执行位置无效;所述预测数据块寄存器,用于存储引起预测执行的访存所访问的数据的位置;所述处理器预测执行位,用于表示整个处理器是否处于预测执行状态,用于控制预测执行单元是否工作;所述指令预测执行位,对应于所述处理器执行的指令,用于表示该指令是否属于预测执行指令。为实现本专利技术目的还提供一种缓存预测执行装置,包括缓存命中比较单元,预测 执行单元,预测执行回滚提交单元;以及预测数据块寄存器,处理器预测执行位,指令预测执行位;其中所述缓存命中比较单元,用于将发起访存的指令的访存地址的低位对应的缓存块的标签(TAG)和TLB出来的高位地址比较,根据比较结果置位处理器预测执行位,决定处理器是否进入预测执行模式,并在进入预测执行模式后启动预测执行单元,置位所述发起访存的指令的指令预测执行位有效;所述预测执行单元,用于当发生缓存预测时,进行预测执行,根据后续指令与所述发起访存的指令的依赖关系,决定是否将对应的后续指令的指令预测执行位置有效,并发射访存指令及其后续指令,并在预测执行的同时,控制所述访存部件向上一级缓存或者内部存储器取回所述发起访存的指令的访存结果;所述预测执行回滚提交单元,用于在所述访存部件取回访存结果返回后,通过和预测的数据块进行比较,决定是否回滚或者提交,并将处理器预测执行位和指令预测执行位置无效;所述预测数据块寄存器,用于存储引起预测执行的访存所访问的数据的位置;所述处理器预测执行位,用于表示整个处理器是否处于预测执行状态,用于控制预测执行单元是否工作;所述指令预测执行位,对应于所述处理器执行的指令,用于表示该指令是否属于预测执行指令。较优地,所述缓存命中比较单元包括比较子单元,有效处理子单元,无效处理子单元,其中所述比较子单元,用于根据发起访存的指令访存地址的低位找到对应的缓存块,并将缓存块的标签(Tag)和TLB出来的高位地址比较判断是否命中;所述有效处理子单元,用于根据比较子单元比较结果进行处理,如果标签不命中,则往上一级缓存或主存储器取数;如果标签命中且缓存块状态为有效,则将数取到对应寄存器,正常执行,并将处理器预测执行位置位标记为O ;所述无效处理子单元,用于根据比较子单元判断结果进行处理,如果标签命中且缓存块的状态位为无效,则将处理器预测执行位置位标记为1,并记录该访存地址的偏移量以及数据位宽,同时向上一级缓存或主存储器发送访存请求,而且将发起访存的指令的指令预测执行位置位为1,并记录该指令访问的具体数据块地址和位宽,存在预测数据块寄存器中。较优地,所述预测执行单元,包括启动子单元,检测子单元和执行子单元,其中所述启动子单元,用于在缓存命中比较单元将处理器预测执行位置位为1,发生缓存预测执行时,启动进入预测执行模式;所述检测子单元,用于在进入预测执行模式后,每次发射指令时,检测处理器预测执行位是否为I ; 所述执行子单元,用于根据检测子单元的检测结果判断进行处理,若否,所述指令正常发射;若有,则根据是否存在数据依赖判断该指令所依赖的指令的指令预测执行位是否有效;若无,正常发射该指令;若有,置该指令的指令预测执行位为1,之后再发射该指令。较优地,所述预测执行回滚提交单元,包括取数子单元,判断子单元,处理子单元,其中所述取数子单元,用于根据发起访存请求地址的索引,取出对应索引的缓存块,并根据预测数据块寄存器,在对应索引的缓存块中得到对应偏移量以及位宽的数据,记为预测数据;同时,对取回的数据,也根据预测数据块寄存器,在取回的缓存块中得到对应偏移量以及位宽的数据,记为实际数据;所述判断子单元,用于判断实际数据和预测数据,如果实际数据和预测数据一样,记为一致,预测命中,否则,则不一致,预测不命中;所述处理子单元,用于根据判断子单元的判断结果进行处理,如果一致,则预测提交,将所有的指令预测标记位清O ;也将处理器预测执行位清O ;如果不一致,则将预测回滚,将所有指令预测执行位为I的指令返回发射队列,按现有技术中的方法,重新发射执行,不再预测执行,并将所有的指令预测标记位清O ;也将处理器预测执行位清O。为实现本专利技术目的,更提供一种缓存预测执行方法,包括如下步骤步骤S100,发起访存的指令的访存地址的低位对应的缓存块的标签和TLB出来的高位地址比较,根据比较结果置位处理器预测执行位,决定是否进入预测执行模式,并在进入预测执本文档来自技高网...
【技术保护点】
一种缓存预测执行的处理器,包括多级缓存,访存部件以及主存储器,其特征在于,还包括缓存预测执行装置;所述缓存预测执行装置,包括缓存命中比较单元,预测执行单元,预测执行回滚提交单元;以及预测数据块寄存器,处理器预测执行位,指令预测执行位;其中:所述缓存命中比较单元,用于将发起访存的指令的访存地址的低位对应的缓存块的标签和TLB出来的高位地址比较,根据比较结果置位处理器预测执行位,决定处理器是否进入预测执行模式,并在进入预测执行模式后启动预测执行单元,置位所述发起访存的指令的指令预测执行位有效;所述预测执行单元,用于当发生缓存预测时,进行预测执行,根据后续指令与所述发起访存的指令的依赖关系,决定是否将对应的后续指令的指令预测执行位置有效,并发射访存指令及其后续指令,并在预测执行的同时,控制所述访存部件向上一级缓存或者内部存储器取回所述发起访存的指令的访存结果;所述预测执行回滚提交单元,用于在所述访存部件取回访存结果返回后,通过和预测的数据块进行比较,决定是否回滚或者提交,并将处理器预测执行位和指令预测执行位置无效;所述预测数据块寄存器,用于存储引起预测执行的访存所访问的数据的位置;所述处理器预测执行位,用于表示整个处理器是否处于预测执行状态,用于控制预测执行单元是否工作;所述指令预测执行位,对应于所述处理器执行的指令,用于表示该指令是否属于预测执行指令。...
【技术特征摘要】
【专利技术属性】
技术研发人员:刘道福,陈云霁,郭崎,胡伟武,
申请(专利权)人:龙芯中科技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。