System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及电子,尤其涉及一种数据缓存指令的指令合并电路、方法及芯片。
技术介绍
1、目前,在处理器执行数据缓存操作时,每接收到一个数据缓存指令即可执行一次实时的数据缓存处理。
2、然而,当处理器所接收到的数据缓存指令较多时,仍采用逐一执行的数据缓存方式容易导致数据缓存效率较低,且未被实时执行的数据缓存指令也会占用较多的存储空间,导致设备存储资源无法得到有效利用。
技术实现思路
1、本申请提供的数据缓存指令的指令合并电路、方法及芯片,用以确保数据缓存的准确性,提高指令存储队列资源利用率。
2、第一方面,本申请提供一种数据缓存指令的指令合并方法,所述方法包括:
3、响应于当前时刻下接收到的第一指令,确定所述第一指令指示的缓存地址、第一线程标识以及指令类型;所述第一指令表征需要进行数据缓存处理;所述缓存地址用于指示待缓存数据对应的缓存行的地址;所述第一线程标识为执行所述第一指令的线程的标识;
4、若确定所述指令类型为可合并类型,则在第一队列中,确定具有所述缓存地址和所述第一线程标识的数据缓存指令为第二指令;所述第一队列中包括至少一个数据缓存指令;
5、若确定所述第一指令和所述第二指令可以进行合并,则合并所述第一指令和所述第二指令,得到合并后的指令,并基于所述合并后的指令替换所述第一队列中的所述第二指令。
6、一个示例中,确定所述第一指令和所述第二指令可以进行合并,包括:
7、确定当前时刻下所述第二指令的合
8、若合并状态表征当前可以进行合并处理,则确定所述第一指令和所述第二指令可以进行合并。
9、一个示例中,确定当前时刻下所述第二指令的合并状态,包括:
10、若确定历史时段内曾接收到第一类型的缓存指令,或者,第二类型的缓存指令,或者,所述第二指令的指令类型为不可合并类型,则确定当前时刻下所述第二指令的合并状态为不可合并状态;所述历史时段为在当前时刻之前,所述第一队列的目标通道中存储有具有所述缓存地址的数据缓存指令的时段;
11、所述第一类型的缓存指令为具有所述缓存地址,且与所述第二指令所指示的第二线程标识不同的缓存指令;所述第二类型的缓存指令为具有所述缓存地址,且指令类型为不可合并类型的缓存指令;所述目标通道为所述第二指令当前在所述第一队列中所对应的存储通道。
12、一个示例中,所述方法还包括:
13、若确定所述历史时段内未接收到所述第一类型的缓存指令,且未接收到所述第二类型的缓存指令,所述第二指令的指令类型为可合并类型,则确定当前时刻下所述第二指令所对应的计时时长;所述计时时长用于表征所述目标通道中,存储有具有所述缓存地址的缓存指令的时长;
14、若确定所述计时时长小于预设阈值,则确定所述第二指令的合并状态为可合并状态。
15、一个示例中,所述方法还包括:
16、若确定所述历史时段内未接收到所述第一类型的缓存指令,且未接收到所述第二类型的缓存指令,所述第二指令的指令类型为可合并类型,则确定当前时刻下所述第二指令所对应的数据量;所述数据量用于指示所述第二指令所指示的待缓存数据所占用的存储空间;
17、若所述数据量表征所述第二指令所指示的待缓存数据所占用的存储空间与缓存行所对应的存储空间相同,则确定所述第二指令的合并状态为不可合并状态。
18、一个示例中,所述方法还包括:
19、若确定所述指令类型为不可合并类型,则在第一队列中,确定具有所述缓存地址的数据缓存指令为第三指令;
20、调整所述第三指令的合并状态为不可合并状态;所述合并状态用于表征当前是否可以进行合并处理。
21、一个示例中,所述方法还包括:
22、将所述第一指令写入第二队列中。
23、一个示例中,所述方法还包括:
24、若确定所述指令类型为可合并类型,且所述第一队列中不存在第二指令,则确定具有所述缓存地址,且不具有所述第一线程标识的数据缓存指令为第四指令;
25、调整所述第四指令的合并状态为不可合并状态;所述合并状态用于表征当前是否可以进行合并处理;
26、将所述第一指令写入所述第一队列中未被占用的存储空间处,并确定所述第一指令的合并状态为可合并状态。
27、一个示例中,所述方法还包括:
28、确定第一队列中各通道所对应的优先级;所述优先级表征所述通道中所存储的指令的执行顺序,且所述优先级与所述通道中的指令所对应的更新时间呈负相关;所述更新时间为所述通道中的指令被替换时所对应的替换时间中的最大值。
29、第二方面,本申请提供一种数据缓存指令的指令合并电路,所述电路包括:
30、第一确定模块,用于响应于当前时刻下接收到的第一指令,确定所述第一指令指示的缓存地址、第一线程标识以及指令类型;所述第一指令表征需要进行数据缓存处理;所述缓存地址用于指示待缓存数据对应的缓存行的地址;所述第一线程标识为执行所述第一指令的线程的标识;
31、第二确定模块,用于若确定所述指令类型为可合并类型,则在第一队列中,确定具有所述缓存地址和所述第一线程标识的数据缓存指令为第二指令;所述第一队列中包括至少一个数据缓存指令;
32、合并模块,用于若确定所述第一指令和所述第二指令可以进行合并,则合并所述第一指令和所述第二指令,得到合并后的指令;
33、替换模块,用于基于所述合并后的指令替换所述第一队列中的所述第二指令。
34、一个示例中,合并模块,包括:
35、第一确定单元,用于确定当前时刻下所述第二指令的合并状态;所述合并状态用于表征当前是否可以进行合并处理;
36、第二确定单元,用于若合并状态表征当前可以进行合并处理,则确定所述第一指令和所述第二指令可以进行合并;
37、合并单元,用于合并所述第一指令和所述第二指令,得到合并后的指令。
38、一个示例中,第一确定单元,具体用于:
39、若确定历史时段内曾接收到第一类型的缓存指令,或者,第二类型的缓存指令,或者,所述第二指令的指令类型为不可合并类型,则确定当前时刻下所述第二指令的合并状态为不可合并状态;所述历史时段为在当前时刻之前,所述第一队列的目标通道中存储有具有所述缓存地址的数据缓存指令的时段;
40、所述第一类型的缓存指令为具有所述缓存地址,且与所述第二指令所指示的第二线程标识不同的缓存指令;所述第二类型的缓存指令为具有所述缓存地址,且指令类型为不可合并类型的缓存指令;所述目标通道为所述第二指令当前在所述第一队列中所对应的存储通道。
41、一个示例中,所述第一确定单元,还用于:
42、若确定所述历史时段内未接收到所述第一类型的缓存指令,且未接收到所述第二类型的缓存指令,所述第二指令的本文档来自技高网...
【技术保护点】
1.一种数据缓存指令的指令合并电路,其特征在于,包括:
2.根据权利要求1所述的电路,其特征在于,合并模块,包括:
3.根据权利要求2所述的电路,其特征在于,第一确定单元,具体用于:
4.根据权利要求3所述的电路,其特征在于,所述第一确定单元还用于:
5.根据权利要求3所述的电路,其特征在于,所述第一确定单元还用于:
6.根据权利要求1所述的电路,其特征在于,所述电路还包括:
7.根据权利要求6所述的电路,其特征在于,所述电路还包括:
8.根据权利要求1-7中任一项所述的电路,其特征在于,所述电路还包括:
9.一种数据缓存指令的指令合并方法,其特征在于,包括:
10.一种处理器芯片,其特征在于,所述处理器芯片包括权1-8中任一项所述的电路。
【技术特征摘要】
1.一种数据缓存指令的指令合并电路,其特征在于,包括:
2.根据权利要求1所述的电路,其特征在于,合并模块,包括:
3.根据权利要求2所述的电路,其特征在于,第一确定单元,具体用于:
4.根据权利要求3所述的电路,其特征在于,所述第一确定单元还用于:
5.根据权利要求3所述的电路,其特征在于,所述第一确定单元还用于:
【专利技术属性】
技术研发人员:吴鹏向,乔栩,沈秀红,涂冰,刘洋,刘丹,
申请(专利权)人:上海合芯数字科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。