处理器的预取训练方法、处理装置、处理器和计算设备制造方法及图纸

技术编号:33131146 阅读:16 留言:0更新日期:2022-04-17 00:48
本公开的一些实施例提供了一种处理器的预取训练方法、处理装置、处理器和计算设备。该处理器的预取训练方法,包括:根据指令翻译规则,将指令翻译得到N个微指令,其中,N为大于1的正整数;以及基于所述N个微指令触发预取器进行一个或多个训练操作,其中,对于所述一个或多个训练操作中每一个训练操作,所述预取器基于该训练操作的参数进行预取训练。基于该训练操作的参数进行预取训练。基于该训练操作的参数进行预取训练。

【技术实现步骤摘要】
处理器的预取训练方法、处理装置、处理器和计算设备


[0001]本公开的一些实施例处理器的
,具体地,涉及一种处理器的预取训练方法、处理装置、处理器和计算设备。

技术介绍

[0002]在中央处理器(Central Processing Unit,CPU)架构中,程序指令与数据一般存储在诸如动态随机存取存储器(Dynamic Random Access Memory,DRAM)的内存中。通常,CPU的核心(Core)的运行频率高于内存的运行频率,因此,CPU从内存直接获取数据需要等待诸如上百个CPU时钟周期,这将会造成CPU由于无法继续处理相关指令或数据而产生空转,造成性能损失。因此,现代高性能CPU通常设置有多级缓存(Cache)架构,以存储最近被访问的数据。进一步地,针对多级缓存架构,还可以利用预取器来识别CPU访问数据的规律,提前地将可能被访问的数据预取到多级缓存架构的其中一级缓存中,以使得CPU能更快速地从缓存中读取数据。

技术实现思路

[0003]本公开的一些实施例提供了一种处理器的预取训练方法、处理装置、处理器和计算设备,用于提高预取效率以及预取准确性。
[0004]根据本公开的一方面,提供了一种处理器的预取训练方法,包括:根据指令翻译规则,将指令翻译得到N个微指令,其中,N为大于1的正整数;以及,基于N个微指令触发预取器进行一个或多个训练操作,其中,对于一个或多个训练操作中每一个训练操作,预取器基于该训练操作的数据宽度、地址以及属性进行预取训练。
[0005]根据本公开的一些实施例,该训练操作的参数包括以下参数中的一种或多种:数据宽度、地址以及属性。
[0006]根据本公开的一些实施例,指令翻译规则指示N个微指令所处理的数据是连续的并且N个微指令所对应的数据宽度的总和等于指令所对应的数据宽度,其中,基于N个微指令触发预取器进行一个或多个训练操作包括:基于N个微指令触发预取器进行一个训练操作,其中,该一个训练操作的数据宽度等于指令所对应的数据宽度,该一个训练操作的地址等于指令的地址,以及,该一个训练操作的属性等于N个微指令经微指令处理流水线处理得到的合并属性。
[0007]根据本公开的一些实施例,N个微指令中其地址等于指令的地址的微指令表示为第一微指令,N个微指令中其地址不等于指令的地址的微指令表示为第二微指令,该预取训练方法还包括:对于第一微指令,在用于预取器的地址输入队列中存在第二微指令经微指令处理流水线处理得到的属性的情况下,将第一微指令经微指令处理流水线处理得到的属性与第二微指令经微指令处理流水线处理得到的属性进行合并以作为合并属性写入地址输入队列;以及在用于预取器的地址输入队列中不存在第二微指令经微指令处理流水线处理得到的属性的情况下,将第一微指令经微指令处理流水线处理得到的属性作为合并属性
写入地址输入队列。
[0008]根据本公开的一些实施例,该预取训练方法还包括:对于第二微指令,在地址输入队列中存在合并属性的情况下,将合并属性与第二微指令经微指令处理流水线处理得到的属性进行合并以作为更新后的合并属性,其中,更新后的合并属性用于预取器进行预取训练;以及在地址输入队列中不存在合并属性的情况下,将第二微指令经微指令处理流水线处理得到的属性写入地址输入队列中的空闲位置。
[0009]根据本公开的一些实施例,指令翻译规则指示N个微指令所处理的数据是连续的并且N个微指令所对应的数据宽度的总和等于指令所对应的数据宽度,其中,基于N个微指令触发预取器进行一个或多个训练操作包括:基于N个微指令触发预取器进行一个训练操作,其中,该一个训练操作的数据宽度等于指令所对应的数据宽度,该一个训练操作的地址等于指令的地址,以及,该一个训练操作的属性等于N个微指令中其地址等于指令的地址的微指令经微指令处理流水线处理得到的属性。
[0010]根据本公开的一些实施例,指令翻译规则指示N个微指令中每个微指令所对应的数据宽度等于指令所对应的数据宽度,并且每个微指令的地址等于指令的地址,其中,基于N个微指令触发预取器进行一个或多个训练操作包括:基于N个微指令触发预取器进行一个训练操作,其中,该一个训练操作的数据宽度等于指令所对应的数据宽度,该一个训练操作的地址等于指令的地址,以及,该一个训练操作的属性等于N个微指令之一经微指令处理流水线处理得到的属性。
[0011]根据本公开的一些实施例,指令翻译规则指示N个微指令所处理的数据是不连续的并且N个微指令所对应的数据宽度的总和等于指令所对应的数据宽度,其中,基于N个微指令触发预取器进行一个或多个训练操作包括:基于N个微指令触发预取器进行N个训练操作,其中,N个训练操作与N个微指令一一对应,对于N个训练操作中的每个训练操作,该训练操作的数据宽度等于与之对应的微指令所对应的数据宽度,该训练操作的地址等于与之对应的微指令的地址,该训练操作的属性等于与之对应的微指令经微指令处理流水线处理得到的属性。
[0012]根据本公开的一些实施例,该预取训练方法还包括:对于N个微指令增加标记信息,其中,标记信息用于指示一个或多个训练操作的数据宽度、地址以及属性。
[0013]根据本公开的一些实施例,该预取训练方法还包括:将一个或多个训练操作的参数写入用于预取器的地址输入队列,用于预取器基于地址输入队列中的参数进行预取训练。
[0014]根据本公开的另一方面,还提供了一种执行预取训练的处理装置,包括:翻译单元,配置成根据指令翻译规则,将指令翻译得到N个微指令,其中,N为大于1的正整数;以及处理单元,配置成基于N个微指令触发预取器进行一个或多个训练操作,其中,对于一个或多个训练操作中每一个训练操作,预取器基于该训练操作的参数进行预取训练。
[0015]根据本公开的一些实施例,该训练操作的参数包括以下参数中的一种或多种:数据宽度、地址以及属性。
[0016]根据本公开的一些实施例,指令翻译规则指示N个微指令所处理的数据是连续的并且N个微指令所对应的数据宽度的总和等于指令所对应的数据宽度,其中,处理单元基于N个微指令触发预取器进行一个或多个训练操作包括:基于N个微指令触发预取器进行一个
训练操作,其中,该一个训练操作的数据宽度等于指令所对应的数据宽度,该一个训练操作的地址等于指令的地址,以及,该一个训练操作的属性等于N个微指令经微指令处理流水线处理得到的合并属性。
[0017]根据本公开的一些实施例,N个微指令中其地址等于指令的地址的微指令表示为第一微指令,N个微指令中其地址不等于指令的地址的微指令表示为第二微指令,处理单元还配置成:对于第一微指令,在用于预取器的地址输入队列中存在第二微指令经微指令处理流水线处理得到的属性的情况下,将第一微指令经微指令处理流水线处理得到的属性与第二微指令经微指令处理流水线处理得到的属性进行合并以作为合并属性写入地址输入队列;以及,在用于预取器的地址输入队列中不存在第二微指令经微指令处理流水线处理得到的属性的情况下,将第一微指令经微指令处理流水线处理得到的属性作为合并属本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理器的预取训练方法,包括:根据指令翻译规则,将指令翻译得到N个微指令,其中,N为大于1的正整数;以及基于所述N个微指令触发预取器进行一个或多个训练操作,其中,对于所述一个或多个训练操作中每一个训练操作,所述预取器基于该训练操作的参数进行预取训练。2.根据权利要求1所述的方法,其特征在于,所述训练操作的参数包括以下参数中的一种或多种:数据宽度、地址以及属性。3.如权利要求2所述的方法,其特征在于,所述指令翻译规则指示所述N个微指令所处理的数据是连续的并且所述N个微指令所对应的数据宽度的总和等于所述指令所对应的数据宽度,其中,所述基于所述N个微指令触发预取器进行一个或多个训练操作包括:基于所述N个微指令触发预取器进行一个训练操作,其中,所述一个训练操作的数据宽度等于所述指令所对应的数据宽度,所述一个训练操作的地址等于所述指令的地址,所述一个训练操作的属性等于所述N个微指令经微指令处理流水线处理得到的合并属性。4.如权利要求3所述的方法,其特征在于,所述N个微指令中其地址等于所述指令的地址的微指令表示为第一微指令,所述N个微指令中其地址不等于所述指令的地址的微指令表示为第二微指令,所述方法还包括:对于所述第一微指令,在用于所述预取器的地址输入队列中存在所述第二微指令经微指令处理流水线处理得到的属性的情况下,将所述第一微指令经微指令处理流水线处理得到的属性与所述第二微指令经微指令处理流水线处理得到的属性进行合并以作为所述合并属性写入所述地址输入队列;以及在用于所述预取器的地址输入队列中不存在所述第二微指令经微指令处理流水线处理得到的属性的情况下,将所述第一微指令经微指令处理流水线处理得到的属性作为所述合并属性写入所述地址输入队列。5.如权利要求4所述的方法,其特征在于,所述方法还包括:对于所述第二微指令,在所述地址输入队列中存在所述合并属性的情况下,将所述合并属性与所述第二微指令经微指令处理流水线处理得到的属性进行合并以作为更新后的合并属性,其中,所述更新后的合并属性用于所述预取器进行预取训练;以及在所述地址输入队列中不存在所述合并属性的情况下,将所述第二微指令经微指令处理流水线处理得到的属性写入所述地址输入队列中的空闲位置。6.如权利要求2所述的方法,其特征在于,所述指令翻译规则指示所述N个微指令所处理的数据是连续的并且所述N个微指令所对应的数据宽度的总和等于所述指令所对应的数据宽度,其中,所述基于所述N个微指令触发预取器进行一个或多个训练操作包括:基于所述N个微指令触发预取器进行一个训练操作,其中,所述一个训练操作的数据宽度等于所述指令所对应的数据宽度,所述一个训练操作的地址等于所述指令的地址,所述一个训练操作的属性等于所述N个微指令中其地址等于所述指令的地址的微指令经微指令处理流水线处理得到的属性。7.如权利要求2所述的方法,其特征在于,所述指令翻译规则指示所述N个微指令中每个微指令所对应的数据宽度等于所述指令所对应的数据宽度,并且所述每个微指令的地址等于所述指令的地址,其中,所述基于所述N个微指令触发预取器进行一个或多个训练操作包括:基于所述N个微指令触发预取器进行一个训练操作,其中,所述一个训练操作的数据
宽度等于所述指令所对应的数据宽度,所述一个训练操作的地址等于所述指令的地址,所述一个训练操作的属性等于所述N个微指令之一经微指令处理流水线处理得到的属性。8.如权利要求2所述的方法,其特征在于,所述指令翻译规则指示所述N个微指令所处理的数据是不连续的并且所述N个微指令所对应的数据宽度的总和等于所述指令所对应的数据宽度,其中,所述基于所述N个微指令触发预取器进行一个或多个训练操作包括:基于所述N个微指令触发预取器进行N个训练操作,其中,所述N个训练操作与所述N个微指令一一对应,对于所述N个训练操作中的每个训练操作,该训练操作的数据宽度等于与之对应的微指令所对应的数据宽度,该训练操作的地址等于与之对应的微指令的地址,该训练操作的属性等于与之对应的微指令经微指令处理流水线处理得到的属性。9.如权利要求2所述的方法,其特征在于,所述方法还包括:对于所述N个微指令增加标记信息,其中,所述标记信息用于指示所述一个或多个训练操作的数据宽度、地址以及属性。10.如权利要求1

9中任一项所述的方法,其特征在于,所述方法还包括:将所述一个或多个训练操作的参数写入用于所述预取器的地址输入队列,用于所述预取器基于所述地址输入队列中的参数进行预取训练。11.一种执行预取训练的处理装置,包括:翻译单元,配置成根据指令翻译规则,将指令翻译得到N个微指令,其中,N为大于1的正整数;以及处理单元,配置成基于所述N个微指令触发预取器进行一个或多个训练操作,其中,对于所述一个或多个训练操作中每一个训练操作,所述预取器基于该训练操作的数据宽度、地址以及属性进行预取训练。12.根据权利要求11所述的处...

【专利技术属性】
技术研发人员:崔泽汉薛大庆
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

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

1