System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及但不限于处理器,尤其涉及一种数据处理方法、设备及装置、电子设备和存储介质。
技术介绍
1、为了平衡指令操作的功能和存储成本,大部分处理会采用可变长度指令集,例如,risc-v中包括32位的指令、16位的指令等。
2、相关技术中,由于指令在数据块中的位置是不确定的,即:指令边界是未知的,那么会使得指令预测、指令解码等阶段的时序紧张,从而导致处理器周期变长、降低了运行频率,严重影响处理器的性能。
技术实现思路
1、本公开实施例至少提供一种数据处理方法、设备及装置、电子设备和存储介质。
2、本公开实施例的技术方案是这样实现的:
3、本公开实施例提供一种数据处理方法,所述方法包括:
4、基于取指指令,从指令高速缓冲存储器存储的指令块的多个子块中确定第一子块;
5、基于所述第一子块在所述指令块中的位置信息,确定所述第一子块的第一预解码信息;其中,所述第一子块的第一预解码信息表征所述第一子块中存储的指令是否为指令边界;
6、在所述指令高速缓冲存储器中存储的所述第一子块的第二预解码信息与所述第一子块的第一预解码信息不相同的情况下,基于所述第一子块的第一预解码信息,修复所述指令块中至少一个目标子块的第二预解码信息。
7、在一些实施方式中,所述基于所述第一子块在所述指令块中的位置信息,确定所述第一子块的第一预解码信息,包括以下至少之一:在所述位置信息表征所述第一子块为所述指令块中的首个子块的情况下,基于上一
8、在一些实施方式中,所述基于上一指令块,确定所述第一子块的第一预解码信息,包括:获取所述上一指令块中最后一个子块存储的指令信息;在所述指令信息表征所述最后一个子块存储指令的低位比特的情况下,将第二信息作为所述第一子块的第一预解码信息;其中,所述第二信息表征所述第一子块存储的指令为非指令边界;在所述指令信息表征所述最后一个子块存储指令的高位比特或指令的全比特的情况下,将第一信息作为所述第一子块的第一预解码信息。
9、在一些实施方式中,所述至少一个目标子块包括所述第一子块,所述基于所述第一子块的第一预解码信息,修复所述指令块中至少一个目标子块的第二预解码信息,包括:基于所述第一子块的第一预解码信息,修复所述第一子块的第二预解码信息;在所述至少一个目标子块包括至少一个第二子块的情况下,针对每一第二子块,基于所述第二子块的前一子块存储的指令信息,确定所述第二子块的第一预解码信息,基于所述第二子块的第一预解码信息,修复所述第二子块的第二预解码信息;将修复后的所述至少一个目标子块的第二预解码信息写回所述指令高速缓冲存储器中。
10、在一些实施方式中,所述基于所述第一子块的第一预解码信息,修复所述第一子块的第二预解码信息,包括:将所述第一子块的第二预解码信息更新为所述第一子块的第一预解码信息。
11、在一些实施方式中,所述基于所述第二子块的前一子块存储的指令信息,确定所述第二子块的第一预解码信息,包括以下至少之一:在所述指令信息表征所述前一子块存储指令的低位比特的情况下,将第二信息作为所述第二子块的第一预解码信息;在所述指令信息表征所述前一子块存储指令的高位比特或指令的全比特的情况下,将第一信息作为所述第二子块的第一预解码信息。
12、在一些实施方式中,所述基于所述第二子块的第一预解码信息,修复所述第二子块的第二预解码信息,包括:从所述指令高速缓冲存储器中读取所述第二子块的第二预解码信息;在所述第二子块的第二预解码信息与所述第二子块的第一预解码信息不相同的情况下,将所述第二子块的第二预解码信息更新为所述第二子块的第一预解码信息;在所述第二子块的第二预解码信息与所述第二子块的第一预解码信息相同的情况下,保持所述第二子块的第二预解码信息不变。
13、在一些实施方式中,所述方法还包括:从存储器中获取所述指令块;确定每一所述子块的第二预解码信息,并将每一所述子块和每一所述子块的第二预解码信息存储至所述指令高速缓冲存储器中。
14、在一些实施方式中,确定每一所述子块的第二预解码信息,包括:将第一信息作为首个子块的第二预解码信息;针对所述指令块中的每一第三子块,基于所述第三子块的前一子块存储的指令信息,确定所述第三子块的第二预解码信息;其中,每一所述第三子块均为非首个子块。
15、在一些实施方式中,所述基于所述第三子块的前一子块存储的指令信息,确定所述第三子块的第二预解码信息,包括以下至少之一:在所述指令信息表征所述前一子块存储指令的低位比特的情况下,将第二信息作为所述第三子块的第一预解码信息;在所述指令信息表征所述前一子块存储指令的高位比特或指令的全比特的情况下,将第一信息作为所述第三子块的第一预解码信息。
16、本公开实施例提供一种数据处理设备,包括指令高速缓冲存储器、预解码电路、预解码检查电路及预解码修复电路,其中:
17、所述预解码电路,用于基于取指指令,从所述指令高速缓冲存储器存储的指令块的多个子块中确定第一子块;基于所述第一子块在所述指令块中的位置信息,确定所述第一子块的第一预解码信息;其中,所述第一子块的第一预解码信息表征所述第一子块中存储的指令是否为指令边界;
18、所述预解码检查电路,用于从所述指令高速缓冲存储器中获取所述第一子块的第二预解码信息;基于所述第一子块的第一预解码信息和所述第一子块的第二预解码信息,确定所述第一子块对应的检查结果;在所述第一子块对应的检查结果为第一检查结果的情况下,将所述第一检查结果传递至所述预解码修复电路;其中,所述第一检查结果表征所述第一子块的第一预解码信息与所述第一子块的第二预解码信息不相同;
19、所述预解码修复电路,用于基于所述第一子块的第一预解码信息,修复所述指令块中至少一个目标子块的第二预解码信息,将修复后的所述至少一个目标子块的第二预解码信息写回所述指令高速缓冲存储器中。
20、在一些实施方式中,所述预解码检查电路,还用于在所述第一子块对应的检查结果为第二检查结果的情况下,将所述第一子块中存储的指令存储至预设的指令队列中。
21、在一些实施方式中,所述预解码检查电路,还用于以下至少之一:在所述位置信息表征所述第一子块为所述指令块中的首个子块的情况下,基于上一指令块,确定所述第一子块的第一预解码信息;在所述位置信息表征所述第一子块为所述指令块中的非首个子块的情况下,将第一信息作为所述第一子块的第一预解码信息;其中,所述第一信息表征所述第一子块存储的指令为指令边界。
22、在一些实施方式中,所述预解码电路,还用于:获取所述上一指令块中最后一个子块存储的指令信息;在所述指令信息表征所述最后一个子块存储指令的低位比特的情本文档来自技高网...
【技术保护点】
1.一种数据处理设备,其特征在于,包括指令高速缓冲存储器、预解码电路、预解码检查电路及预解码修复电路,其中:
2.根据权利要求1所述的设备,其特征在于,
3.根据权利要求1所述的设备,其特征在于,所述预解码检查电路,还用于以下至少之一:
4.根据权利要求3所述的设备,其特征在于,
5.根据权利要求1所述的设备,其特征在于,所述至少一个目标子块包括所述第一子块;
6.根据权利要求5所述的设备,其特征在于,
7.根据权利要求5所述的设备,其特征在于,所述预解码修复电路,还用于以下至少之一:
8.根据权利要求5所述的设备,其特征在于,
9.根据权利要求1至8中任一项所述的设备,其特征在于,
10.根据权利要求9所述的设备,其特征在于,
11.根据权利要求10所述的设备,其特征在于,所述预解码电路,还用于以下至少之一:
12.一种数据处理方法,其特征在于,所述方法包括:
13.一种数据处理装置,其特征在于,所述装置包括:
14.一种电
15.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该计算机程序被处理器执行时如权利要求12所述方法被实现。
16.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时如权利要求12所述方法被实现。
...【技术特征摘要】
1.一种数据处理设备,其特征在于,包括指令高速缓冲存储器、预解码电路、预解码检查电路及预解码修复电路,其中:
2.根据权利要求1所述的设备,其特征在于,
3.根据权利要求1所述的设备,其特征在于,所述预解码检查电路,还用于以下至少之一:
4.根据权利要求3所述的设备,其特征在于,
5.根据权利要求1所述的设备,其特征在于,所述至少一个目标子块包括所述第一子块;
6.根据权利要求5所述的设备,其特征在于,
7.根据权利要求5所述的设备,其特征在于,所述预解码修复电路,还用于以下至少之一:
8.根据权利要求5所述的设备,其特征在于,
9.根据权利要求1至8中任一项所述的设备,其特征在于,
10...
【专利技术属性】
技术研发人员:常春雷,高伟杰,
申请(专利权)人:北京奕斯伟计算技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。