System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种处理器取指令方法、装置、设备和存储介质。
技术介绍
1、现代处理器的指令集架构(instruction set architecture,isa)设计中,为了降低程序代码的大小并提高代码密度,引入了压缩(compressed)指令(简称c指令)。这些压缩指令能够减少指令高速缓存(instruction cache)的缺失率,从而提高处理器的性能、降低功耗、减小芯片面积和成本。
2、例如,采用risc-v指令集(reduced instruction set computer five,第五代精简指令集)的压缩指令子集(rvc,包括rv64c、rv32c)可以使程序代码段大小减少25%~30%,减少20%~25%的指令cache缺失,相当于指令cache容量翻倍的性能提升。高级精简指令集计算机架构(advanced risc machines,arm)和无互锁流水线阶段的微处理器架构(microprocessor without interlocked pipeline stages,mips)也通过提供16位的压缩指令集(如arm的thumb和thumb2,mips的mips16和micromips)来减小代码大小,相对于它们的32位标准指令集,压缩后的isa可以减少大约25%~30%的代码大小。
3、然而,压缩指令的使用带来了新的问题:由于普通指令和压缩指令长度不同,存在一条指令跨两个高速缓存cache行的情况,这增加了取指令部件的设计难度。
4、因此,如何
技术实现思路
1、本专利技术提供一种处理器取指令方法、装置、设备和存储介质,有效实现了跨高速缓存行取指令,提高了处理器性能。
2、本专利技术提供一种处理器取指令方法,应用于电子设备中的处理器,所述电子设备包括所述处理器和存储器,所述存储器包括高速缓存器;该方法包括如下步骤:
3、接收取指令请求;所述取指令请求的指令块中包括普通指令和压缩指令;
4、根据所述取指令请求,确定所述取指令请求的有效结果;所述有效结果用于表征所述取指令请求是否需要从所述高速缓存器中跨行取指令;所述高速缓存器中包括奇体存储体和偶体存储体,以使所述高速缓存器中连续的两个高速缓存行的地址处于两个不同的奇偶体存储体上;
5、在所述有效结果为有效的情况下,根据所述取指令请求从所述指令块所在的连续两个所述高速缓存行中取出目标指令;所述指令块为基于所述取指令请求中的取指地址确定的;
6、在所述有效结果为无效的情况下,根据所述取指令请求从所述指令块所在的所述高速缓存行中取出所述目标指令。
7、根据本专利技术提供的一种处理器取指令方法,所述根据所述取指令请求,确定所述取指令请求的有效结果,包括:
8、根据所述取指地址,确定所述指令块的标识位;所述标识位用于标记所述指令块中是否包含跨行指令,所述跨行指令为所述跨行指令的全部字节落在两个不同的所述高速缓存行中;
9、根据所述指令块的标识位,确定所述取指令请求的有效结果。
10、根据本专利技术提供的一种处理器取指令方法,所述标识位的取值包括1或0,所述根据所述指令块的标识位,确定所述取指令请求的有效结果,包括:
11、在所述标识位的取值为1的情况下,将所述有效结果确定为有效;
12、在所述标识位的取值为0的情况下,将所述有效结果确定为无效。
13、根据本专利技术提供的一种处理器取指令方法,所述取指令请求中包括所述取指地址,所述取指地址为所述取指令请求对应的目标高速缓存行的访问地址,所述取指地址包括标签、索引、块内偏移,所述标签用于与所述高速缓存器中的所述高速缓存行做多路标签比较,所述索引用于指示所述取指令请求对应的所述高速缓存行的行号,所述索引包含高位索引和低位索引,所述高位索引用于指示所述高速缓存行的行地址,所述低位索引用于指示存储体的地址,所述块内偏移(block offset)用于指示所述取指令请求的所述指令块在所述高速缓存行内的具体位置;
14、所述根据所述取指令请求从所述指令块所在的连续两个所述高速缓存行中取出目标指令,包括:
15、根据所述取指地址中的标签,确定所述取指令请求对应的路;
16、根据所述取指地址中的索引以及所述对应的路,确定所述取指令请求对应的所述高速缓存行以及对应的存储体;其中,每个所述高速缓存行对应有所述高速缓存行的标签存储体和所述高速缓存行的数据存储体,所述标签存储体用于存储每个所述高速缓存行的标签信息,所述数据存储体用于存储每个所述高速缓存行中的指令;
17、根据所述取指令请求对应的所述高速缓存行、对应的存储体以及所述块内偏移,取出所述目标指令。
18、根据本专利技术提供的一种处理器取指令方法,所述接收取指令请求之前,还包括:
19、接收指令预取请求,所述指令预取请求中包含预取请求的预取地址;
20、将所述预取地址在所述高速缓存器中进行查询,得到匹配结果;
21、在所述匹配结果为未匹配到的情况下,则进行指令预取操作。
22、根据本专利技术提供的一种处理器取指令方法,所述存储器还包括下一级存储系统;所述进行指令预取操作,包括:
23、利用指令预取器向跨高速缓存行预取项发送分配请求,所述分配请求用于供所述跨高速缓存行预取项为所述预取请求申请分配一项预取项;
24、根据所述预取项,向所述下一级存储系统发送所述预取请求;所述预取请求用于供所述下一级存储系统根据所述预取请求以及所述高速缓存行的历史标志位预测得到指令访问请求;所述指令访问请求包括单高速缓存行的访问请求或跨高速缓存行的访问请求。
25、根据本专利技术提供的一种处理器取指令方法,所述根据所述预取项,向所述下一级存储系统发送所述预取请求,包括:
26、根据所述预取项,对所述预取请求的预取标志位进行预测;所述预取标志位用于表征所述预取请求是否需要进行跨高速缓存行进行预取指令。
27、根据本专利技术提供的一种处理器取指令方法,所述根据所述预取项,对所述预取请求的预取标志位进行预测,包括:
28、将所述预取请求对应的所有高速缓存行的预取标志位初始设置为1;
29、在所述预取请求对应的高速缓存行中任一所述高速缓存行未发生跨行预取指令的第一目标次数达到第一次数阈值的情况下,将所述高速缓存行的预取标志位确定为0;所述高速缓存行的预取标志位为0表征所述高速缓存行不再进行跨行预取指令;
30、在所述预取请求对应的高速缓存行中任一所述高速缓存行发生跨行预取指令的第二目标次数达到第二次数阈值的情况下,将所述高速缓存行的预取标志位确定为1;所述高速缓存行的预取标志位为1表征所述高速缓存行恢复跨行预取指令。
31、根据本专利技术提供的一种处理器取指令方法,所本文档来自技高网...
【技术保护点】
1.一种处理器取指令方法,其特征在于,应用于电子设备中的处理器,所述电子设备包括所述处理器和存储器,所述存储器包括高速缓存器;所述方法包括:
2.根据权利要求1所述的处理器取指令方法,其特征在于,所述根据所述取指令请求,确定所述取指令请求的有效结果,包括:
3.根据权利要求2所述的处理器取指令方法,其特征在于,所述标识位的取值包括1或0,所述根据所述指令块的标识位,确定所述取指令请求的有效结果,包括:
4.根据权利要求1所述的处理器取指令方法,其特征在于,所述取指令请求中包括所述取指地址,所述取指地址为所述取指令请求对应的目标高速缓存行的访问地址,所述取指地址包括标签、索引、块内偏移,所述标签用于与所述高速缓存器中的所述高速缓存行做多路标签比较,所述索引用于指示所述取指令请求对应的所述高速缓存行的行号,所述索引包含高位索引和低位索引,所述高位索引用于指示所述高速缓存行的行地址,所述低位索引用于指示存储体的地址,所述块内偏移用于指示所述取指令请求的所述指令块在所述高速缓存行内的具体位置;
5.根据权利要求1-4任一项所述的处理器取指令
6.根据权利要求5所述的处理器取指令方法,其特征在于,所述存储器还包括下一级存储系统;所述进行指令预取操作,包括:
7.根据权利要求6所述的处理器取指令方法,其特征在于,所述根据所述预取项,向所述下一级存储系统发送所述预取请求,包括:
8.根据权利要求7所述的处理器取指令方法,其特征在于,所述根据所述预取项,对所述预取请求的预取标志位进行预测,包括:
9.根据权利要求5所述的处理器取指令方法,其特征在于,所述将所述预取地址在所述高速缓存器中进行查询,得到匹配结果,包括:
10.一种处理器取指令装置,其特征在于,应用于电子设备中的处理器,所述电子设备包括所述处理器和存储器,所述存储器包括高速缓存器;所述装置包括:
11.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至9任一项所述处理器取指令方法。
12.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述处理器取指令方法。
...【技术特征摘要】
1.一种处理器取指令方法,其特征在于,应用于电子设备中的处理器,所述电子设备包括所述处理器和存储器,所述存储器包括高速缓存器;所述方法包括:
2.根据权利要求1所述的处理器取指令方法,其特征在于,所述根据所述取指令请求,确定所述取指令请求的有效结果,包括:
3.根据权利要求2所述的处理器取指令方法,其特征在于,所述标识位的取值包括1或0,所述根据所述指令块的标识位,确定所述取指令请求的有效结果,包括:
4.根据权利要求1所述的处理器取指令方法,其特征在于,所述取指令请求中包括所述取指地址,所述取指地址为所述取指令请求对应的目标高速缓存行的访问地址,所述取指地址包括标签、索引、块内偏移,所述标签用于与所述高速缓存器中的所述高速缓存行做多路标签比较,所述索引用于指示所述取指令请求对应的所述高速缓存行的行号,所述索引包含高位索引和低位索引,所述高位索引用于指示所述高速缓存行的行地址,所述低位索引用于指示存储体的地址,所述块内偏移用于指示所述取指令请求的所述指令块在所述高速缓存行内的具体位置;
5.根据权利要求1-4任一项所述的处理器取指令方法,其特征在于,所述接收取指令请求之前,还包括...
【专利技术属性】
技术研发人员:李祖松,郇丹丹,商家玮,
申请(专利权)人:北京微核芯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。