一种指令提取的方法及相关装置与流程
- 国知局
- 2024-10-21 14:58:06
本技术涉及处理器,尤其涉及一种指令提取的方法及相关装置。
背景技术:
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、第六方面,本技术还提供一种芯片,包括处理器,所述处理器与存储器耦合,用于执行所述存储器中存储的计算机程序指令,使得所述芯片执行前述任一方面或任一方面的任意可能的实现方式中提供的方法。
本文地址:https://www.jishuxx.com/zhuanli/20241021/319984.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。