配置方法技术

技术编号:39570754 阅读:7 留言:0更新日期:2023-12-03 19:21
本公开涉及分支目标缓存的配置方法

【技术实现步骤摘要】
配置方法、分支预测器、指令识别器和电子设备


[0001]本公开的实施例涉及分支目标缓存的配置方法

指令识别器的配置方法

分支预测器

及指令识别器和电子设备


技术介绍

[0002]现代
CPU
核通过流水线技术提高指令间并行度
(Instruction Level Parallelism)
来达到高性能
。CPU
核内部一般有多个流水阶段,比如分支预测
(Branch prediction)、
指令提取
(Instruction fetch)、
指令译码
(Decode)、
指令分发与重命名
(Dispatch and Rename)、
指令执行
(Execute)
,指令结束
(Retire)


为了支持高运行频率,每一个流水阶段又可能包含多个流水级
(
也就是时钟周期
)。
每个流水级执行有限的操作,这样每个时钟可以做到最短,通过提高
CPU
的运行频率来提高
CPU
核的性能

每个流水级也可以通过容纳更多条指令
(
成为超标量
superscalar)
来进一步提高
CPU
性能


技术实现思路

[0003]本公开至少一个实施例提供一种分支目标缓存的配置方法,包括:获取待插入所述分支目标缓存的对象分支指令,所述分支目标缓存包括至少一个信息项;判断所述对象分支指令是否命中所述至少一个信息项中的命中信息项,所述命中信息项包括命中指令的命中指令信息;以及响应于所述对象分支指令命中所述至少一个信息项中的命中信息项且为位于所述命中指令之前的目标类型分支指令,从所述分支目标缓存删除所述命中信息项,并且将所述对象分支指令的对象指令信息插入所述分支目标缓存,所述目标类型分支指令为跳转概率大于预设阈值的条件跳转指令

[0004]例如,在本公开一实施例提供的配置方法中,还包括:查询指令识别器获取所述对象分支指令的跳转参数,所述跳转参数用于指示所述对象分支指令的跳转概率;以及基于所述跳转参数,确定所述对象分支指令是否为所述目标类型分支指令

[0005]例如,在本公开一实施例提供的配置方法中,将所述对象分支指令的所述对象指令信息插入所述分支目标缓存,包括:响应于所述对象分支指令为第一类型指令,将所述对象分支指令的对象指令信息以第一信息项类型插入分支目标缓存,所述第一类型指令为指令地址和跳转目标地址的高
M
位不相同的分支指令,所述第一信息项类型用于指示所针对的一条分支指令的完整跳转目标地址被存储于所述分支目标缓存;以及响应于所述对象分支指令为第二类型指令,将所述对象分支指令的对象指令信息以第二信息项类型插入分支目标缓存,所述第二类型指令为指令地址和跳转目标地址的高
M
位相同的分支指令,所述第二信息项类型用于指示所述针对的一条分支指令的跳转目标地址中除所述高
M
位之外的低位被存储于所述分支目标缓存;
M
为正整数

[0006]例如,在本公开一实施例提供的配置方法中,还包括:响应于所述对象分支指令命中所述至少一个信息项中的命中信息项且不满足所述对象分支指令为位于所述命中指令之前的目标类型分支指令,判断所述对象分支指令是否满足所述命中信息项包括多条命中
指令的命中指令信息并且所述对象分支指令位于所述多条命中指令的后面;以及响应于所述对象分支指令满足所述命中信息项包括所述多条命中指令的命中指令信息并且所述对象分支指令位于所述多条命中指令的后面,则丢弃对象分支指令的对象指令信息

[0007]例如,在本公开一实施例提供的配置方法中,还包括:还包括:响应于所述对象分支指令不满足所述命中信息项包括所述多条命中指令的命中指令信息并且所述对象分支指令位于所述多条命中指令的后面,判断所述对象分支指令是否满足所述对象分支指令位于所述命中指令之后并且所述命中指令为无条件分支指令或者所述目标类型分支指令;以及响应于所述对象分支指令满足所述对象分支指令位于所述命中指令之后,并且所述命中指令为无条件分支指令或者所述目标类型分支指令,丢弃对象分支指令的指令信息

[0008]例如,在本公开一实施例提供的配置方法中,命中信息项包括两条命中指令,所述方法还包括:响应于所述对象分支指令不满足所述对象分支指令位于所述命中指令之后并且所述命中指令为无条件分支指令或者所述目标类型分支指令,将所述对象分支指令与所述两条命中指令中的第一条命中指令组成指令对,并且删除所述命中信息项,所述第一条命中指令为所述两条命中指令中地址最小的指令;判断所述指令对中地址最小的分支指令是否为所述目标类型分支指令;以及响应于所述指令对中地址最小的分支指令为所述目标类型分支指令,所述指令对中地址最小的分支指令以第二信息项类型存储到所述分支目标缓存

[0009]例如,在本公开一实施例提供的配置方法中,还包括:响应于所述指令对中地址最小的分支指令不为所述目标类型分支指令,判断所述指令对中的每条分支指令是否都是第二类型指令;以及响应于所述指令对中的每条分支指令都是第二类型指令,将所述指令对中的两条分支指令的指令信息合并后以第三信息项类型存储到所述分支目标缓存中,所述第三信息项类型用于指示所针对的多条分支指令的指令信息被存储于所述分支目标缓存

[0010]例如,在本公开一实施例提供的配置方法中,还包括:响应于所述指令对中存在所述第一类型指令,判断所述指令对中地址最小的指令是否为所述第一类型指令;响应于所述指令对中地址最小的指令为所述第一类型指令,将所述指令对中地址最小的分支指令的指令信息以所述第一信息项类型插入所述分支目标缓存;以及响应于所述指令对中地址最小的指令不为所述第一类型指令,将所述指令对中地址最小的分支指令的指令信息以所述第二信息项类型插入所述分支目标缓存

[0011]例如,在本公开一实施例提供的配置方法中,还包括:响应于所述对象分支指令命中所述至少一个信息项中的命中信息项且为位于所述命中指令之前的无条件分支指令,从所述分支目标缓存删除所述命中信息项,并且判断所述对象分支指令是否为所述第一类型指令;响应于所述对象分支指令为所述第一类型指令,将所述对象分支指令以所述第一信息项类型插入所述分支目标缓存;以及响应于所述对象分支指令为所述第二类型指令,将所述对象分支指令以所述第二信息项类型插入所述分支目标缓存

[0012]例如,在本公开一实施例提供的配置方法中,还包括:响应于所述对象分支指令未命中所述至少一个信息项,判断所述对象分支指令是否为所述第一类型指令;响应于所述对象分支指令为所述第一类型指令,将所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种分支目标缓存的配置方法,包括:获取待插入所述分支目标缓存的对象分支指令,其中,所述分支目标缓存包括至少一个信息项;判断所述对象分支指令是否命中所述至少一个信息项;以及响应于所述对象分支指令命中所述至少一个信息项中的命中信息项,且所述对象分支指令为位于所述命中信息项对应的命中指令之前的目标类型分支指令,从所述分支目标缓存删除所述命中信息项,并且将所述对象分支指令的对象指令信息插入所述分支目标缓存,其中,所述目标类型分支指令为跳转概率大于预设阈值的条件跳转指令
。2.
根据权利要求1所述的配置方法,还包括:查询指令识别器获取所述对象分支指令的跳转参数,其中,所述跳转参数用于指示所述对象分支指令的跳转概率;以及基于所述跳转参数,确定所述对象分支指令是否为所述目标类型分支指令
。3.
根据权利要求1或2所述的配置方法,其中,将所述对象分支指令的所述对象指令信息插入所述分支目标缓存,包括:响应于所述对象分支指令为第一类型指令,将所述对象分支指令的对象指令信息以第一信息项类型插入分支目标缓存,其中,所述第一类型指令为指令地址和跳转目标地址的高
M
位不相同的分支指令,所述第一信息项类型用于指示所针对的一条分支指令的完整跳转目标地址被存储于所述分支目标缓存;以及响应于所述对象分支指令为第二类型指令,将所述对象分支指令的对象指令信息以第二信息项类型插入分支目标缓存,其中,所述第二类型指令为指令地址和跳转目标地址的高
M
位相同的分支指令,所述第二信息项类型用于指示所述针对的一条分支指令的跳转目标地址中除所述高
M
位之外的低位被存储于所述分支目标缓存;其中,
M
为正整数
。4.
根据权利要求3所述的配置方法,还包括:响应于所述对象分支指令命中所述至少一个信息项中的命中信息项且不满足所述对象分支指令为位于所述命中指令之前的目标类型分支指令,判断所述对象分支指令是否满足所述命中信息项包括多条命中指令的命中指令信息并且所述对象分支指令位于所述多条命中指令的后面;以及响应于所述对象分支指令满足所述命中信息项包括所述多条命中指令的命中指令信息并且所述对象分支指令位于所述多条命中指令的后面,则丢弃对象分支指令的对象指令信息
。5.
根据权利要求4所述的配置方法,还包括:响应于所述对象分支指令不满足所述命中信息项包括所述多条命中指令的命中指令信息并且所述对象分支指令位于所述多条命中指令的后面,判断所述对象分支指令是否满足所述对象分支指令位于所述命中指令之后并且所述命中指令为无条件分支指令或者所述目标类型分支指令;以及响应于所述对象分支指令满足所述对象分支指令位于所述命中指令之后,并且所述命中指令为无条件分支指令或者所述目标类型分支指令,丢弃对象分支指令的指令信息

6.
根据权利要求5所述的配置方法,其中,所述命中信息项包括两条命中指令,所述方法还包括:响应于所述对象分支指令不满足所述对象分支指令位于所述命中指令之后并且所述命中指令为无条件分支指令或者所述目标类型分支指令,将所述对象分支指令与所述两条命中指令中的第一条命中指令组成指令对,并且删除所述命中信息项,其中,所述第一条命中指令为所述两条命中指令中地址最小的指令;判断所述指令对中地址最小的分支指令是否为所述目标类型分支指令;以及响应于所述指令对中地址最小的分支指令为所述目标类型分支指令,所述指令对中地址最小的分支指令以第二信息项类型存储到所述分支目标缓存
。7.
根据权利要求6所述的配置方法,还包括:响应于所述指令对中地址最小的分支指令不为所述目标类型分支指令,判断所述指令对中的每条分支指令是否都是第二类型指令;以及响应于所述指令对中的每条分支指令都是第二类型指令,将所述指令对中的两条分支指令的指令信息合并后以第三信息项类型存储到所述分支目标缓存中,其中,所述第三信息项类型用于指示所针对的多条分支指令的指令信息被存储于所述分支目标缓存
。8.
根据权利要求7所述的配置方法,还包括:响应于所述指令对中存在所述第一类型指令,判断所述指令对中地址最小的指令是否为所述第一类型指令;响应于所述指令对中地址最小的指令为所述第一类型指令,将所述指令对中地址最小的分支指令的指令信息以所述第一信息项类型插入所述分支目标缓存;以及响应于所述指令对中地址最小的指令不为所述第一类型指令,将所述指令对中地址最小的分支指令的指令信息以所述第二信息项类型插入所述分支目标缓存
。9.
根据权利要求3所述的配置方法,还包括:响应于所述对象分支指令命中所述至少一个信息项中的命中信息项且为位于所述命中指令之前的无条件分支指令,从所述分支目标缓存删除所述命中信息项,并且判断所述对象分支指令是否为所述第一类型指令;响应于所述对象分支指令为所述第一类型指令,将所述对象分支指令以所述第一信息项类型插入所述分支目标缓存;以及响应于所述对象分支指令为所述第二类型指令,将所述对象分支指令以所述第二信息项类型插入所述分支目标缓存
。10.
根据权利要求3所述的配置方法,还包括:响应于所述对象分支指令未命中所述至少一个信息项,判断所述对象分支指令是否为所述第一类型指令;响应于所述对象分支指令为所述第一类型指令,将所述对象分支指令以所述第一信息项类型插入所述分支目标缓存;以及响应于所述对象分支指令为所述第二类型指令,将所述对象分支指令以所述第二信息项类型插入所述分支目标缓存
。11.
一种指令识别器的配置方法,其中,所述指令识别器用于存储至少一个识别信息
项,所述方法包括:获取目标条件分支指令;判断所述目标条件分支指令是否命中所述至少一个识别信息项;响应于所述目标条件分支指令命中所述至少一个识别信息项,更新所述条件分支指令命中的命中识别信息项,以根据所述至少一个识别信息项判断待插入分...

【专利技术属性】
技术研发人员:胡世文金伟松
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1