本发明专利技术提供一种预测Load指令执行延迟的方法及系统。所述方法包括:将所派发的Load指令与缓冲内的输入进行比较,判断是否匹配;若匹配,则将预测结果存入发射队列,判断预测结果是否正确,若正确,则不更新缓冲内相应的输入,若不正确,则更新缓冲内相应的输入;若不匹配,则判断Load指令是否为可缓存的访问,若是,则不在缓冲内创建相应的输入,若不是,则在缓冲内创建相应的输入。本发明专利技术能够提高预测的准确度,减少因为预测错误带来的不利影响。
The method and system of predicting the execution delay of load instruction
【技术实现步骤摘要】
预测Load指令执行延迟的方法及系统
本专利技术涉及计算机架构
,尤其涉及一种预测Load指令执行延迟的方法及系统。
技术介绍
现代处理器中为了减小指令间的数据依赖(DataDependency)对性能的影响,都会提前计算前一条指令何时能够提供源操作数(SourceData),这样与前一条指令有依赖关系的后续指令可以提前发射。但是如果前一条指令是Load指令(从内存中读取数据的指令),情况会稍显复杂。Load指令的访问属性可能为Non-Cacheable(不可缓存的访问)或者Device(外设访问),那么其需要到处理器外部总线上去读取数据,所需要的延迟时间(Latency)是无法估计的。另外,即使Load指令的访问属性为Cacheable(可缓存的访问),其也可能会有L1DataCacheMiss(一级数据缓存命中),那所需要的延迟时间也是无法估计的。现有的方案是直接预测Load指令的访问属性为可缓存的访问,且一定会一级数据缓存命中。那么与其有依赖关系的后续指令可以依据此计算最早能够发射的时间,但是这种预测方法准确度不高,会带来较多的流水线Stall(停顿)和Flush(刷新),导致不必要的功耗损耗和性能下降。
技术实现思路
本专利技术提供的预测Load指令执行延迟的方法及系统,能够提高预测的准确度,减少因为预测错误带来的不利影响。第一方面,本专利技术提供一种预测Load指令执行延迟的方法,包括:将所派发的Load指令与缓冲内的输入进行比较,判断是否匹配;若匹配,则将预测结果存入发射队列,判断预测结果是否正确,若正确,则不更新缓冲内相应的输入,若不正确,则更新缓冲内相应的输入;若不匹配,则判断Load指令是否为可缓存的访问,若是,则不在缓冲内创建相应的输入,若不是,则在缓冲内创建相应的输入。可选地,所述缓冲内的每个输入包括四个域:PC[48:12]、PC[11:1]、MASK[3:0]和有效位,其中,有效位指示此输入是否有效,无效输入不能提供预测结果,PC[48:1]和PC[11:1]是指令的PC[48:12]和PC[11:1],MASK[3:0]是在比较时屏蔽掉PC[11:1]部分位。可选地,所述将预测结果存入发射队列包括:将发射队列内的un-pred位置为1’b1。可选地,所述更新缓冲内相应的输入包括:找到预测出错Load指令的PC[11:1]中从左到右最后一个1’b1所对应的位N,则需要屏蔽的位为PC[11:N],然后找到MASK[3:0]所对应的值,即为屏蔽所要更新的值;如果MASK[3:0]已经为4’b0000,则有效位变为1’b0。可选地,所创建的相应的输入的PC[48:12]和PC[11:1]置为所述Load指令的PC[48:12]和PC[11:1],MASK[3:0]置为4’b1011,有效位置为1’b1。第二方面,本专利技术提供一种预测Load指令执行延迟的系统,包括:指令派发模块,用于对处理器内的Load指令进行派发;延迟时间预测模块,用于将所派发的Load指令与缓冲内的输入进行比较,判断是否匹配,当判定匹配时将预测结果存入发射队列,判断预测结果是否正确,当判定预测结果不正确时更新缓冲内相应的输入;当判定不匹配时判断所述Load指令是否为可缓存的访问,当判定所述Load指令不是可缓存的访问时在缓冲内创建相应的输入;发射队列指令发射模块,由多个输入组成,每一个输入存储从指令派发模块派发的Load指令,并将Load指令发射到后续执行模块。可选地,所述缓冲内的每个输入包括四个域:PC[48:12]、PC[11:1]、MASK[3:0]和有效位,其中,有效位指示此输入是否有效,无效输入不能提供预测结果,PC[48:1]和PC[11:1]是指令的PC[48:12]和PC[11:1],MASK[3:0]是在比较时屏蔽掉PC[11:1]部分位。可选地,所述延迟时间预测模块集成了缓冲存储和比较逻辑,缓冲存储预测所需要的信息,比较逻辑输出比较结果。所述比较逻辑包括:PC[48:12]比较逻辑,比较每一个输入内的PC[48:12]是否与派发的Load指令的PC[48:12]一致;MaskedPC[11:1]比较逻辑,根据MASK[3:0]的值,将PC[11:1]的某些位屏蔽后再进行比较;只有两个比较逻辑都得到匹配的结果,最后的比较结果才为匹配。可选地,所述延迟时间预测模块包括:缓冲存储子模块,由多个输入组成,内部存储的PC是与不可缓存的访问或者外设访问关联;比较逻辑子模块,将所述缓冲存储子模块的每个输入的PC与从所述指令派发模块派发的Load指令的PC相比较,得出是否匹配的结果。可选地,所述系统还包括:Load/Store执行模块,用于得到所述发射队列指令发射模块发射的Load指令的访问属性,并将所述访问属性返回给所述延迟时间预测模块。本专利技术实施例提供的预测Load指令执行延迟的方法及系统,在Load指令发射时,能够预测出它是否可能会有数据缓存命中,能够提高预测的准确度,减少流水线的停顿和刷新,避免因为预测错误而带来的功耗损耗和性能下降。附图说明图1为本专利技术实施例提供的预测Load指令执行延迟的系统的结构示意图;图2为本专利技术实施例提供的输入的组成结构示意图;图3为本专利技术实施例提供的比较逻辑的结构示意图;图4为本专利技术实施例提供的预测Load指令执行延迟的方法的流程图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。根据ARMv8-A架构规定,当MMU(MemoryManagementUnit,内存管理单元)OFF或者DataCache(数据缓存)OFF时,所有的DataMemory(数据存储器)访问都应为外设访问或者不可缓存的访问类型。对于这两种类型的Load指令,没有固定的执行延迟时间,因此需要根据MMU及数据缓存的状态,分场景进行设计。本专利技术分了三个场景。场景1:MMUOFF当MMUOFF时,所有的数据存储器访问为外设访问类型。在这种情况下,Load指令没有固定的执行延迟时间,因此后续有数据依赖的指令不能够提前发射,需要等到Load指令的数据真正返回时才能够发射。场景2:DataCacheOFF当DataOFF时,所有的数据存储器访问为不可缓存的访问或者外设访问类型。在这种情况下,Load指令没有固定的执行延迟时间,因此后续有数据依赖的指令不能够提前发射,需要等到Load指令的数据真正返回时才能够发射。场景3:MMUON和DataCache本文档来自技高网...
【技术保护点】
1.一种预测Load指令执行延迟的方法,其特征在于,包括:/n将所派发的Load指令与缓冲内的输入进行比较,判断是否匹配;/n若匹配,则将预测结果存入发射队列,判断预测结果是否正确,若正确,则不更新缓冲内相应的输入,若不正确,则更新缓冲内相应的输入;/n若不匹配,则判断Load指令是否为可缓存的访问,若是,则不在缓冲内创建相应的输入,若不是,则在缓冲内创建相应的输入。/n
【技术特征摘要】
1.一种预测Load指令执行延迟的方法,其特征在于,包括:
将所派发的Load指令与缓冲内的输入进行比较,判断是否匹配;
若匹配,则将预测结果存入发射队列,判断预测结果是否正确,若正确,则不更新缓冲内相应的输入,若不正确,则更新缓冲内相应的输入;
若不匹配,则判断Load指令是否为可缓存的访问,若是,则不在缓冲内创建相应的输入,若不是,则在缓冲内创建相应的输入。
2.根据权利要求1所述的方法,其特征在于,所述缓冲内的每个输入包括四个域:PC[48:12]、PC[11:1]、MASK[3:0]和有效位,其中,有效位指示此输入是否有效,无效输入不能提供预测结果,PC[48:1]和PC[11:1]是指令的PC[48:12]和PC[11:1],MASK[3:0]是在比较时屏蔽掉PC[11:1]部分位。
3.根据权利要求2所述的方法,其特征在于,所述将预测结果存入发射队列包括:将发射队列内的un-pred位置为1’b1。
4.根据权利要求2所述的方法,其特征在于,所述更新缓冲内相应的输入包括:
找到预测出错Load指令的PC[11:1]中从左到右最后一个1’b1所对应的位N,则需要屏蔽的位为PC[11:N],然后找到MASK[3:0]所对应的值,即为屏蔽所要更新的值;
如果MASK[3:0]已经为4’b0000,则有效位变为1’b0。
5.根据权利要求2所述的方法,其特征在于,所创建的相应的输入的PC[48:12]和PC[11:1]置为所述Load指令的PC[48:12]和PC[11:1],MASK[3:0]置为4’b1011,有效位置为1’b1。
6.一种预测Load指令执行延迟的系统,其特征在于,包括:
指令派发模块,用于对处理器内的Load指令进行派发;
延迟时间预测模块,用于将所派发的Load指令与缓冲内的输入进行比较,判断是否匹配,当判定匹配时将预测...
【专利技术属性】
技术研发人员:孙浩,刘权胜,余红斌,
申请(专利权)人:展讯通信上海有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。