指令处理方法及装置、电子设备与流程

文档序号:36258844发布日期:2023-12-05 12:00阅读:33来源:国知局
指令处理方法及装置与流程

本公开的实施例涉及指令处理方法及装置、电子设备。


背景技术:

1、现代cpu核通过流水线技术提高指令间并行度(instruction levelparallelism)来达到高性能。cpu核内部一般有多个流水阶段,比如分支预测(branchprediction)、指令提取(instruction fetch)、指令译码(decode)、指令分发与重命名(dispatch and rename)、指令执行(execute),指令结束(retire)等。为了支持高运行频率,每一个流水阶段又可能包含多个流水级(也就是时钟周期)。每个流水级执行有限的操作,这样每个时钟可以做到最短,通过提高cpu的运行频率来提高cpu核的性能。每个流水级也可以通过容纳更多条指令(成为超标量superscalar)来进一步提高cpu性能。


技术实现思路

1、本公开至少一个实施例提供一种指令处理方法,包括:对对象指令译码得到所述对象指令对应的对象微操作段;获取所述对象指令所在的对象地址页的访问动态参数;以及根据所述访问动态参数,判断所述对象微操作段是否插入微操作高速缓存。

2、例如,在本公开一实施例提供的指令处理方法中,获取所述对象指令所在的所述对象地址页的所述访问动态参数,包括:根据所述对象指令的指令地址,确定所述对象地址页;根据指令页参数表,确定所述对象地址页的访问动态参数,,所述指令页参数表包括所述对象地址页与所述访问动态参数之间的对应关系。

3、例如,在本公开一实施例提供的指令处理方法中,根据所述访问动态参数,判断所述对象微操作段是否插入所述微操作高速缓存,包括:响应于所述访问动态参数为第一值,将所述对象微操作段插入所述微操作高速缓存;响应于所述访问动态参数为第二值,所述对象微操作段不插入所述微操作高速缓存,所述访问动态参数为所述第一值时所述对象地址页的访问热度高于所述访问动态参数为所述第二值时所述对象地址页的访问热度。

4、例如,在本公开一实施例提供的指令处理方法中,微操作高速缓存具有组相联映射结构,根据所述访问动态参数,判断所述对象微操作段是否插入所述微操作高速缓存,还包括:响应于所述访问动态参数为第三值,判断在所述微操作高速缓存中所述对象指令的指令地址命中的组中是否有替换项,所述替换项的访问动态参数小于或者等于所述第三值;响应于在所述微操作高速缓存中所述对象指令的指令地址命中的组中有所述替换项,使用所述对象微操作段替换所述替换项中的内容,并且设置微操作高速缓存中所述对象微操作段对应的所述访问动态参数为所述第三值,所述访问动态参数为所述第三值时所述对象地址页的访问热度高于所述访问动态参数为所述第二值时所述对象地址页的访问热度,且小于所述访问动态参数为所述第一值时所述对象地址页的访问热度。

5、例如,在本公开一实施例提供的指令处理方法中,根据所述访问动态参数,判断所述对象微操作段是否插入所述微操作高速缓存,还包括:响应于在所述微操作高速缓存中所述对象指令的指令地址命中的组中不存在所述替换项,按照替换策略从所述指令地址命中的组中选择待替换项;将所述待替换项的访问动态参数设置为所述第三值,并且所述对象微操作段不插入所述微操作高速缓存。

6、本公开至少一个实施例提供一种指令处理方法,包括:在处理器核执行程序期间,收集所述处理器核对系统中至少一个地址页的指令访问信息;以及根据所述至少一个地址页的指令访问信息,确定所述至少一个地址页每个的访问动态参数,以根据每个地址页的所述访问动态参数判断位于对象地址页的对象指令对应的对象微操作段是否插入微操作高速缓存。

7、例如,在本公开一实施例提供的指令处理方法中,在所述处理器核执行所述程序期间,收集所述处理器核对所述系统中所述至少一个地址页的所述指令访问信息,包括:所述处理器核执行所述程序被划分为多个阶段,在每个阶段分别重新收集所述至少一个指令页的所述指令访问信息,根据所述至少一个地址页的所述指令访问信息,确定所述至少一个地址页每个的所述访问动态参数,包括:在所述每个阶段收集所述指令访问信息完成后,根据所述每个阶段的所述指令访问信息,确定所述至少一个地址页每个的所述访问动态参数。

8、例如,在本公开一实施例提供的指令处理方法中,指令访问信息包括所述每个地址页的指令访问个数或者所述每个地址页的访问次数。

9、例如,在本公开一实施例提供的指令处理方法中,在每个阶段分别重新收集所述至少一个指令页的所述指令访问信息,包括:针对所述每个阶段,在所述至少一个指令中的目标指令执行结束后,根据所述目标指令的指令地址计算所述目标指令所在的地址页;根据所述目标指令所在的所述地址页,更新指令页信息表,其中,所述指令页信息表包括所述至少一个指令页的所述指令访问信息。

10、例如,在本公开一实施例提供的指令处理方法中,所述指令页信息表包括多个信息项,每个信息项包括用于区分不同地址页的标签域和用于记录计数值的计数域,更新所述指令页信息表包括:响应于所述目标指令所在的地址页命中所述指令页信息表中的目标标签域,将该目标标签域所在的信息项的计数值加1。

11、例如,在本公开一实施例提供的指令处理方法中,所述指令页信息表具有组相连映射结构,所述每个信息项还包括有效域,所述有效域用于指示所述每个信息项是否被使用;更新所述指令页信息表还包括:响应于所述目标指令所在的地址页未命中所述指令页信息表中的标签域,根据所述有效域,判断所述目标地址所在的组中是否存在未被使用的信息项;响应于所述目标地址所在的组中存在未被使用的信息项,基于所述目标地址所在的地址页,设置所述未被使用的项的所述标签域,并且所述未被使用的项的所述计数值设置为第三值。

12、例如,在本公开一实施例提供的指令处理方法中,更新所述指令页信息表还包括:响应于所述目标地址所在的组中不存在未被使用的信息项,丢弃所述目标地址。

13、例如,在本公开一实施例提供的指令处理方法中,所述标签域的内容为所述目标地址的高m域的哈希值,其中,同一地址页中的多个地址的高m域相同,m为正整数。

14、例如,在本公开一实施例提供的指令处理方法中,根据所述每个阶段的所述指令访问信息,确定所述至少一个地址页每个的所述访问动态参数,包括:基于所述每个阶段的所述至少一个地址页每个的所述计数值,确定所述每个阶段中所述至少一个地址页每个的所述访问动态参数。

15、例如,在本公开一实施例提供的指令处理方法中,基于所述每个阶段的所述计数值,确定所述每个阶段中所述至少一个地址页每个的所述访问动态参数,包括:将所述计数值大于等于第一阈值的地址页对应的访问动态参数设置为第一值;将所述计数值小于等于第二阈值的地址页对应的访问动态参数设置为第二值;将所述计数值位于所述第一阈值和所述第二阈值之间的地址页对应的访问动态参数设置为所述第三值。

16、例如,在本公开一实施例提供的指令处理方法中,所述第一阈值通过第一比例系数和每个阶段内所有地址页中最多的访问次数确定;所述第二阈值通过第二比例系数和所述最多的访问次数确定,第一比例系数大于第二比例系数。

17、例如,在本公开一实施例提供的指令处理方法中,还包括:根据所述访问动态参数,确定指令页参数表,其中,所述指令页参数表至少包括所述指令页信息表中的所述标签域、所述有效域和所述访问动态参数。

18、例如,在本公开一实施例提供的指令处理方法中,还包括:获取分支预测流水线阶段提供的指令段,其中,所述指令段包括多个待译码指令,所述待译码指令包括所述对象指令;查找所述指令页参数表,确定所述多个待译码指令的多个访问动态参数,以用于在对所述多个待译码指令中的所述对象指令译码后,根据所述多个访问动态参数判断位于对象地址页的对象指令对应的对象微操作段是否插入微操作高速缓存。

19、本公开至少一个实施例提供一种处理装置,包括:译码单元,配置为对对象指令译码得到所述对象指令对应的对象微操作段;参数获取单元,配置为获取所述对象指令所在的对象地址页的访问动态参数;以及微操作高速缓存,配置为根据所述访问动态参数存储所述对象微操作段或者不存储所述对象微操作段。

20、本公开至少一个实施例提供一种处理装置,包括:指令页信息缓存,配置为在处理器核执行程序期间,收集所述处理器核对系统中至少一个地址页的指令访问信息;以及动态参数确定单元,配置为根据所述至少一个地址页的指令访问信息,确定所述至少一个地址页每个的访问动态参数,以根据每个地址页的所述访问动态参数判断位于对象地址页的对象指令对应的对象微操作段是否插入微操作高速缓存。

21、例如,在本公开一实施例提供的处理装置中,还包括:指令页热度缓存,配置为存储指令页参数表,其中,所述指令页参数表至少包括所述指令页信息表中的所述标签域、所述有效域和所述访问动态参数。

22、例如,在本公开一实施例提供的处理装置中,还包括:存储寄存器,配置为存储所述每个阶段内所有地址页中最多的访问次数。

23、本公开至少一个实施例提供一种电子设备,包括所述处理器用于实现本公开任一实施例提供的指令处理方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1