本发明涉及数据采集领域,特别是涉及一种操作数收集器、处理器、操作数收集方法及可读存储介质。
背景技术:
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、本发明还提供了一种处理器、操作数收集方法及计算机可读存储介质,具有如上的操作数收集器相同的有益效果。
1.一种操作数收集器,其特征在于,包括:
2.根据权利要求1所述的操作数收集器,其特征在于,所述收集装置包括:
3.根据权利要求2所述的操作数收集器,其特征在于,所述操作数管理装置包括:
4.根据权利要求3所述的操作数收集器,其特征在于,所述寄存器文件缓存装置包括:
5.根据权利要求4所述的操作数收集器,其特征在于,按照预设转换策略将所述缓存器存储的操作结果数转换至操作数管理装置包括:
6.根据权利要求4所述的操作数收集器,其特征在于,所述发射仲裁器具体用于:
7.根据权利要求4至6任一项所述的操作数收集器,其特征在于,所述控制器还用于:
8.一种处理器,其特征在于,包括如权利要求1至7任一项所述的操作数收集器,还包括分别与所述操作数收集器连接的译码单元以及执行单元;
9.一种操作数收集方法,其特征在于,应用于操作数收集器中的收集装置,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求9所述操作数收集方法的步骤。