一种数据处理的方法和设备与流程

文档序号:12040426阅读:210来源:国知局
一种数据处理的方法和设备与流程
本发明涉及数据处理领域,尤其涉及一种数据处理的方法和设备。

背景技术:
目前,通用数据处理设备采用寄存器堆的架构存储指令运行过程的中间结果及数据处理设备运行状态,是数据处理设备体系架构的一个重要组成部分。寄存器堆缓存技术已经日益成为一种重要的寄存器堆设计技术,在现有寄存器堆缓存技术中,寄存器堆的架构一般由寄存器堆缓存和主寄存器堆组成,主寄存器堆包括多个寄存器,其中,寄存器堆缓存中缓存有最近频繁使用的寄存器的数据,而主寄存器堆则存放所有寄存器的数据,数据处理设备在读取寄存器堆时,首先读取速度较快的寄存器堆缓存中的数据,如果寄存器堆缓存访问命中(即从该寄存器堆缓存中读取到对应的数据),则对该数据进行运算处理,如果发生寄存器堆缓存访问不命中(即没有从该寄存器堆缓存中读取到对应的数据),则继续读取速度较慢的主寄存器堆中的数据,并在对读取到的数据进行运算处理的同时,将该数据缓存至寄存器堆缓存中。但是,由于大部分寄存器数值中的数据在被使用一次后就无效了,因此寄存器堆缓存发生访问不命中后,读取的主寄存器堆中的数据在缓存后就再也不被使用而使得缓存的数据无效,并且由于该缓存的数据会替换掉寄存器堆缓存中原本有用的数据,从而导致寄存器堆缓存的使用效率下降,降低了数据处理设备对数据处理的效率,另外,由于数据处理设备对数据的缓存增加了数据处理设备的功耗,因此,在缓存上述无效的数据时,会造成数据处理设备功耗的浪费。

技术实现要素:
本发明的实施例提供一种数据处理的方法和设备,以提高数据处理设备对数据处理的效率,并减少数据处理过程中的功耗。为达到上述目的,本发明的实施例采用如下技术方案:第一方面,本发明实施例提供一种数据处理的方法,包括:数据处理设备读取寄存器中的数据,并获取所述寄存器的状态信息;若根据所述寄存器的状态信息确定所述寄存器不缓存所述数据,对所述数据进行处理;若根据所述寄存器的状态信息确定所述寄存器缓存所述数据,缓存所述数据,并对所述数据进行处理。在第一方面第一种可能的实现方式中,所述获取所述寄存器的状态信息包括:获取所述寄存器的标识信息;在数据处理设备读取寄存器中的数据,并获取所述寄存器的状态信息前,还包括:在寄存器堆中确定待缓存寄存器,其中,所述待缓存寄存器为在所述待缓存寄存器中的数据被读取后进行数据缓存的寄存器;将所述待缓存寄存器的标识信息调整为预设寄存器标识集合中的标识信息;其中,所述预设寄存器标识集合包括确定进行数据缓存的寄存器的标识信息;所述根据所述标识信息确定不缓存所述寄存器中的数据包括:在确定所述预设寄存器标识集合不包括所述寄存器的标识信息时,确定不缓存所述寄存器中的数据;所述根据所述标识信息确定缓存所述寄存器中的数据包括:在确定所述预设寄存器标识集合包括所述寄存器的标识信息时,确定缓存所述寄存器中的数据。结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述在寄存器堆中确定待缓存寄存器包括:根据程序指令确定所述寄存器堆中各寄存器的第一生命周期,并确定所述寄存器堆中各寄存器在所述第一生命周期对应数据的读取次数;其中,所述第一生命周期为所述各寄存器中被读取次数最多的数据对应的生命周期;根据所述读取次数由大到小的顺序确定所述待缓存寄存器,其中,所述待缓存寄存器的数量与所述预设寄存器标识集合中的元素数相同。结合第一方面第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:当所述寄存器堆中的任两个寄存器在所述第一生命周期对应的读取次数相同时,分别获取所述任两个寄存器在所述第一生命周期内对应的数据的最后一次被读取的位置至所述第一生命周期的起始位置之间程序指令的数量;将数量最少的程序指令对应的寄存器优先确定为待缓存寄存器。结合第一方面,在第一方面第四种可能的实现方式中,所述获取所述寄存器的状态信息包括:获取所述寄存器的读取次数标志位;其中,所述读取次数标志位用于记录所述寄存器被读取的次数;所述获取所述寄存器的读取次数标志位包括:在所述数据处理设备读取所述寄存器中的数据后,将所述寄存器的读取次数标志位加1;所述根据所述标识信息确定不缓存所述寄存器中的数据包括:在确定所述读取次数标志位的数值小于预设阈值时,确定不缓存所述寄存器中的数据;所述根据所述标识信息确定缓存所述寄存器中的数据包括:在确定所述读取次数标志位的数值大于或等于所述预设阈值时,确定缓存所述寄存器中的数据。结合第一方面第四种可能的实现方式,在第五种可能的实现方式中,所述在对所述数据进行处理后,还包括:在将所述处理后的数据写入所述寄存器后,对所述读取次数标志位进行清零。第二方面,提供一种数据处理设备,包括:寄存器堆,用于通过寄存器存储数据;处理单元,用于读取所述寄存器中的数据并获取所述寄存器的状态信息;若根据所述寄存器的状态信息确定不缓存所述寄存器中的数据,则将所述数据发送至运算处理单元;若根据所述寄存器的状态信息确定缓存所述寄存器中的数据,则将所述数据发送至缓存单元和运算处理单元;运算处理单元,用于对所述处理单元发送的数据进行处理;缓存单元,用于缓存所述处理单元发送的数据。在第二方面第一种可能的实现方式中,所述处理单元具体用于,获取所述寄存器的标识信息;所述处理单元还用于,在寄存器堆中确定待缓存寄存器,将所述待缓存寄存器的标识信息调整为预设寄存器标识集合中的标识信息;在确定所述预设寄存器标识集合不包括所述寄存器的标识信息时,确定不缓存所述寄存器中的数据;在确定所述预设寄存器标识集合包括所述寄存器的标识信息时,确定缓存所述寄存器中的数据;其中,所述待缓存寄存器为在所述待缓存寄存器中的数据被读取后进行数据缓存的寄存器;所述预设寄存器标识集合包括确定进行数据缓存的寄存器的标识信息。结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述处理单元具体用于,根据程序指令确定所述寄存器堆中各寄存器的第一生命周期,并确定所述寄存器堆中各寄存器在所述第一生命周期对应数据的读取次数,并根据所述读取次数由大到小的顺序确定所述待缓存寄存器,其中,所述待缓存寄存器的数量与所述预设寄存器标识集合中的元素数相同;所述第一生命周期为所述各寄存器中被读取次数最多的数据对应的生命周期。结合第二方面第二种可能的实现方式,在第三种可能的实现方式中,所述处理单元还用于,当所述寄存器堆中的任两个寄存器在所述第一生命周期对应的读取次数相同时,分别获取所述任两个寄存器在所述第一生命周期内对应的数据的最后一次被读取的位置至所述第一生命周期的起始位置之间程序指令的数量,并将数量最少的程序指令对应的寄存器优先确定为待缓存寄存器。所述处理单元还用于将数量最少的所述程序指令数量对应的寄存器调整为所述待缓存寄存器。结合第二方面,在第二方面第四种可能的实现方式中,所述处理单元具体用于,获取所述寄存器的读取次数标志位,其中,所述读取次数标志位用于记录所述寄存器被读取的次数;所述处理单元还用于,在读取所述寄存器中的数据后,将所述寄存器的读取次数标志位加1;在确定所述读取次数标志位的数值小于预设阈值时,确定不缓存所述寄存器中的数据;在确定所述读取次数标志位的数值大于或等于所述预设阈值时,确定缓存所述寄存器中的数据。结合第二方面第四种可能的实现方式,在第五种可能的实现方式中,所述运算处理单元还用于,在对所述数据进行处理后,将所述处理后的数据写入所述寄存器堆中对应的寄存器;所述寄存器堆在将所述数据写入对应的寄存器后,所述寄存器对所述读取次数标志位进行清零。通过采用上述方案,数据处理设备在读取寄存器中的数据时,获取该寄存器的状态信息,并根据该状态信息确定是否缓存该寄存器中的数据,这样,保证了缓存的寄存器数据的有效性,从而提高了数据处理设备对数据处理的效率,另外,当数据处理设备确定不缓存该寄存器中的数据时,则该数据处理设备直接对该数据进行运算处理,而不进行缓存,从而减小了数据处理设备在对数据处理过程中的功耗。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种数据处理的方法示意图;图2为本发明实施例提供的一种数据处理方法的流程示意图;图3为本发明实施例提供的另一种数据处理方法的流程示意图;图4为本发明实施例提供的一种数据处理设备的结构示意图;图5为本发明实施例提供的另一种数据处理设备的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供一种数据处理的方法,如图1所示,该方法的执行主体为数据处理设备,该方法包括:S101、数据处理设备读取寄存器中的数据,并获取该寄存器的状态信息。其中,该寄存器的状态信息可以是该寄存器的标识信息(如寄存器号)或者该寄存器的读取次数标志位,该寄存器可以是寄存器堆中的寄存器。S102、若根据该寄存器的状态信息确定该寄存器不缓存该数据,对该数据进行处理。S103、若根据该寄存器的状态信息确定该寄存器缓存该数据,缓存该数据,并对该数据进行处理。在本发明一种可能的实现方式中,若该寄存器的状态信息为该寄存器的标识信息,则上述数据处理设备获取该寄存器的状态信息即为该数据处理设备获取该寄存器的标识信息。在该数据处理设备读取寄存器中的数据,并获取该寄存器的状态信息前,该数据处理设备在寄存器堆中确定待缓存寄存器,并将该待缓存寄存器的标识信息调整为预设寄存器标识集合中的标识信息。其中,该待缓存寄存器为在该待缓存寄存器中的数据被读取后进行数据缓存的寄存器;该预设寄存器标识集合包括确定进行数据缓存的寄存器的标识信息。数据处理设备在确定该预设寄存器标识集合不包括该寄存器的标识信息时,确定不缓存该寄存器中的数据,在确定该预设寄存器标识集合包括该寄存器的标识信息时,则确定缓存该寄存器中的数据。示例地,该待缓存寄存器的标识信息可以为寄存器号,例如数据处理设备确定的该待缓存寄存器的寄存器号为R12,若预设寄存器标识集合中的寄存器号为R5至R8(也就是说,当数据处理设备获取到的寄存器号为R5至R8中的任一寄存器号时,则在读取该寄存器号对应的寄存器中的数据后,进行数据缓存),则数据处理设备将该待缓存寄存器的寄存器号调整为R5至R8中的任一寄存器号。进一步地,数据处理设备根据程序指令确定该寄存器堆中各寄存器的第一生命周期,并确定该寄存器堆中各寄存器在该第一生命周期对应数据的读取次数,并根据该读取次数由大到小的顺序确定该待缓存寄存器,其中,该第一生命周期为该各寄存器中被读取次数最多的数据对应的生命周期,该待缓存寄存器的数量与该预设寄存器标识集合中的元素数相同。该生命周期为数据在写入寄存器到被改写之间的时间。具体地,数据处理设备通过对程序指令的解析获得寄存器堆中各寄存器对应数据的读取次数,并确定读取次数最多的数据对应的生命周期为第一生命周期,并将各寄存器的第一生命周期对应的数据的读取次数进行比较,按照由大到小的顺序确定待缓存寄存器。需要说明的是,由于预设寄存器标识集合中的元素数是提前预设的,因此,数据处理设备确定的待缓存寄存器的数量与该元素数相同,例如,预设寄存器标识集合中的标识信息为R5至R8四个标识信息,则该数据处理设备根据该读取次数确定四个寄存器为待缓存寄存器。示例地,数据处理设备通过解析程序指令获得寄存器R1中的数据A1在对应的生命周期T1内的读取次数为M1,在寄存器R1中的数据由A1被改写为A2时,获得寄存器R1中的数据A2在对应的生命周期T2内的读取次数为M2,同样地,数据处理设备通过解析该程序指令获得寄存器R2中的数据B1在对应的生命周期S1内的读取次数为N1,在寄存器R2中的数据由B1被改写为B2时,获得寄存器R2中的数据B2在对应的生命周期S2内的读取次数为N2;数据处理设备通过解析该程序指令获得寄存器R3中的数据C1在对应的生命周期W1内的读取次数为P1,在寄存器R3中的数据由C1被改写为C2时,获得寄存器R3中的数据C2在对应的生命周期W2内的读取次数为P2,若M1大于M2,则确定生命周期T1为寄存器R1的第一生命周期,若N1大于N2,则确定生命周期S1为寄存器R2的第一生命周期,若P1大于P2,则确定生命周期W1为寄存器R2的第一生命周期,此时,若M1大于N1,N1大于P1,当预设寄存器标识集合包括三个标识信息时,则该数据处理设备确定寄存器R1、寄存器R2和寄存器R3为待缓存寄存器,当预设寄存器标识集合包括两个标识信息时,则该数据处理设备确定寄存器R1和寄存器R2为待缓存寄存器。这里只是举例说明,不作限定。另外,当该寄存器堆中的任两个寄存器在该第一生命周期对应的读取次数相同时,数据处理设备分别获取该任两个寄存器在所述第一生命周期内对应的数据的最后一次被读取的位置至该第一生命周期的起始位置之间程序指令的数量,并将数量最少的程序指令对应的寄存器优先确定为待缓存寄存器。具体地,数据处理设备通过解析程序指令,获得寄存器对应第一生命周期的数据最后一次被读取的指令地址,从而获知该寄存器在该第一生命周期内对应的数据的最后一次被读取的位置,并获取起始位置至该最后一次被读取的位置之间程序指令的数量,将数量最少的程序指令对应的寄存器优先确定为待缓存寄存器。示例地,若寄存器R1在对应的第一生命周期T1内的读取次数M1与寄存器R2在对应的第一生命周期S1内的读取次数N1相同,则数据处理设备确定该第一生命周期T1对应的数据的最后一次被读取的位置,并获取该第一生命周期的起始位置至该最后一次被读取的位置之间程序指令的数量X1,同样地,数据处理设备确定该第一生命周期S1对应的数据的最后一次被读取的位置,并获取该第一生命周期的起始位置至该最后一次被读取的位置之间程序指令的数量Y1,若X1小于Y1,则优先确定寄存器R1为待缓存寄存器。需要说明的是,若在确定寄存器R1为待缓存寄存器后,若此时待缓存寄存器的数量和预设寄存器标识集合中的元素数相同,则该寄存器R1为最后一个确定的待缓存寄存器,若在确定寄存器R1为待缓存寄存器后,若此时待缓存寄存器的数量小于预设寄存器标识集合中的元素数,则在优先确定寄存器R1为待缓存寄存器后,确定寄存器R2为待缓存寄存器,例如,若数据处理设备已经确定寄存器R3、寄存器R4和寄存器R5为待缓存寄存器且预设寄存器标识集合中的元素数为四个,而寄存器R1和寄存器R2在各自的第一生命周期对应的读取次数相同,并确定寄存器R1在第一生命周期的起始位置至最后一次被读取的位置之间程序指令的数量小于寄存器R2在第一生命周期的起始位置至最后一次被读取的位置之间程序指令的数量,则确定寄存器R1为待缓存寄存器,此时,由于待缓存寄存器的数量(R1、R3、R4和R5)与预设寄存器标识集合中的元素数相同,则确定寄存器R2不是待缓存寄存器;若数据处理设备已经确定寄存器R3和寄存器R4为待缓存寄存器且预设寄存器标识集合中的元素数为四个,而寄存器R1和寄存器R2在各自的第一生命周期对应的读取次数相同,并确定寄存器R1在第一生命周期的起始位置至最后一次被读取的位置之间程序指令的数量小于寄存器R2在第一生命周期的起始位置至最后一次被读取的位置之间程序指令的数量,则确定寄存器R1为待缓存寄存器,此时,由于待缓存寄存器的数量(R1、R3和R4)小于预设寄存器标识集合中的元素数,因此,则确定寄存器R2也是待缓存寄存器,从而使得带寄存器的数量与于预设寄存器标识集合中的元素数相同。在本发明另一种可能的实现方式中,若该寄存器的状态信息为该寄存器的读取次数标志位,则上述数据处理设备获取该寄存器的状态信息即为该数据处理设备获取该寄存器的读取次数标志位。其中,该读取次数标志位用于记录该寄存器被读取的次数,该读取次数标志位的初始值为0。在该数据处理设备读取该寄存器中的数据后,数据处理设备将该寄存器的读取次数标志位的值加1;在确定该读取次数标志位的数值小于预设阈值时,确定不缓存该寄存器中的数据,在确定该读取次数标志位的数值大于或等于该预设阈值时,确定缓存该寄存器中的数据。具体地,寄存器中设置有计数器,在该寄存器被读取时,则该计数器将对应的读取次数标志位的值加1。示例地,若该预设阈值为3,则数据处理设备在读取寄存器时,将该寄存器对应的读取次数标志位加1,并获取该寄存器此时对应的读取次数标志位,若此时对应的读取次数标志位大于等于3,则该数据处理设备在读取该寄存器中的数据后,缓存该数据;若该读取次数标志位小于3,则该数据处理设备在读取该寄存器中的数据后,不缓存该数据。进一步地,数据处理设备在对该数据进行处理后,将该处理后的数据写入该寄存器,并对该读取次数标志位进行清零。具体地,数据处理设备在读取到寄存器中的数据后,对该数据进行运算处理,并将处理后的结果写入该寄存器,从而覆盖原先寄存器中的数据,并对该读取次数标志位进行清零,以保证在运行后续的程序指令时,重新根据该读取次数标志位确定是否缓存读取的数据。采用上述执行主体为数据处理设备的方案,数据处理设备在读取寄存器中的数据时,获取该寄存器的状态信息,并根据该状态信息确定是否缓存该寄存器中的数据,这样,保证了缓存的寄存器数据的有效性,从而提高了数据处理设备对数据处理的效率,另外,当数据处理设备确定不缓存该寄存器中的数据时,则该数据处理设备直接对该数据进行运算处理,而不进行缓存,从而减小了数据处理设备在对数据处理过程中的功耗。本发明实施例提供一种数据处理的方法,如图2所示,在本发明实施例中,该方法实施例中的寄存器的状态信息可以是寄存器的标识信息,包括:S201、数据处理设备根据程序指令确定寄存器堆中各寄存器的第一生命周期。其中,该第一生命周期为该各寄存器中被读取次数最多的数据对应的生命周期,该生命周期为数据在写入寄存器到被改写之间的时间。S202、数据处理设备确定该寄存器堆中各寄存器在该第一生命周期对应数据的读取次数,并根据该读取次数由大到小的顺序确定该待缓存寄存器。其中,该待缓存寄存器的数量与该预设寄存器标识集合中的元素数相同,该待缓存寄存器为在该待缓存寄存器中的数据被读取后进行数据缓存的寄存器。具体地,数据处理设备通过对程序指令的解析获得寄存器堆中各寄存器对应数据的读取次数,并确定读取次数最多的数据对应的生命周期为第一生命周期,并将各寄存器的第一生命周期对应的数据的读取次数进行比较,按照由大到小的顺序确定待缓存寄存器。示例地,数据处理设备通过解析程序指令获得寄存器R1中的数据A1在对应的生命周期T1内的读取次数为M1,在寄存器R1中的数据由A1被改写为A2时,获得寄存器R1中的数据A2在对应的生命周期T2内的读取次数为M2,同样地,数据处理设备通过解析该程序指令获得寄存器R2中的数据B1在对应的生命周期S1内的读取次数为N1,在寄存器R2中的数据由B1被改写为B2时,获得寄存器R2中的数据B2在对应的生命周期S2内的读取次数为N2;数据处理设备通过解析该程序指令获得寄存器R3中的数据C1在对应的生命周期W1内的读取次数为P1,在寄存器R3中的数据由C1被改写为C2时,获得寄存器R3中的数据C2在对应的生命周期W2内的读取次数为P2,若M1大于M2,则确定生命周期T1为寄存器R1的第一生命周期,若N1大于N2,则确定生命周期S1为寄存器R2的第一生命周期,若P1大于P2,则确定生命周期W1为寄存器R2的第一生命周期,此时,若M1大于N1,N1大于P1,当预设寄存器标识集合包括三个标识信息时,则该数据处理设备确定寄存器R1、寄存器R2和寄存器R3为待缓存寄存器,当预设寄存器标识集合包括两个标识信息时,则该数据处理设备确定寄存器R1和寄存器R2为待缓存寄存器。这里只是举例说明,不作限定。另外,当该寄存器堆中的任两个寄存器在该第一生命周期对应的读取次数相同时,数据处理设备分别获取该任两个寄存器在所述第一生命周期内对应的数据的最后一次被读取的位置至该第一生命周期的起始位置之间程序指令的数量,并将数量最少的程序指令对应的寄存器优先确定为待缓存寄存器。具体地,数据处理设备通过解析程序指令,获得寄存器对应第一生命周期的数据最后一次被读取的指令地址,从而获知该寄存器在该第一生命周期内对应的数据的最后一次被读取的位置,并获取起始位置至该最后一次被读取的位置之间程序指令的数量,将数量最少的程序指令对应的寄存器优先确定为待缓存寄存器。示例地,若寄存器R1在对应的第一生命周期T1内的读取次数M1与寄存器R2在对应的第一生命周期S1内的读取次数N1相同,则数据处理设备确定该第一生命周期T1对应的数据的最后一次被读取的位置,并获取该第一生命周期的起始位置至该最后一次被读取的位置之间程序指令的数量X1,同样地,数据处理设备确定该第一生命周期S1对应的数据的最后一次被读取的位置,并获取该第一生命周期的起始位置至该最后一次被读取的位置之间程序指令的数量Y1,若X1小于Y1,则优先确定寄存器R1为待缓存寄存器。需要说明的是,若在确定寄存器R1为待缓存寄存器后,若此时待缓存寄存器的数量和预设寄存器标识集合中的元素数相同,则该寄存器R1为最后一个确定的待缓存寄存器,若在确定寄存器R1为待缓存寄存器后,若此时待缓存寄存器的数量小于预设寄存器标识集合中的元素数,则在优先确定寄存器R1为待缓存寄存器后,确定寄存器R2为待缓存寄存器,例如,若数据处理设备已经确定寄存器R3、寄存器R4和寄存器R5为待缓存寄存器且预设寄存器标识集合中的元素数为四个,而寄存器R1和寄存器R2在各自的第一生命周期对应的读取次数相同,并确定寄存器R1在第一生命周期的起始位置至最后一次被读取的位置之间程序指令的数量小于寄存器R2在第一生命周期的起始位置至最后一次被读取的位置之间程序指令的数量,则确定寄存器R1为待缓存寄存器,此时,由于待缓存寄存器的数量(R1、R3、R4和R5)与预设寄存器标识集合中的元素数相同,则确定寄存器R2不是待缓存寄存器;若数据处理设备已经确定寄存器R3和寄存器R4为待缓存寄存器且预设寄存器标识集合中的元素数为四个,而寄存器R1和寄存器R2在各自的第一生命周期对应的读取次数相同,并确定寄存器R1在第一生命周期的起始位置至最后一次被读取的位置之间程序指令的数量小于寄存器R2在第一生命周期的起始位置至最后一次被读取的位置之间程序指令的数量,则确定寄存器R1为待缓存寄存器,此时,由于待缓存寄存器的数量(R1、R3和R4)小于预设寄存器标识集合中的元素数,因此,则确定寄存器R2也是待缓存寄存器,从而使得待寄存器的数量与于预设寄存器标识集合中的元素数相同。S203、数据处理设备将该待缓存寄存器的标识信息调整为预设寄存器标识集合中的标识信息。其中,该预设寄存器标识集合包括确定进行数据缓存的寄存器的标识信息。例如,数据处理设备确定的该待缓存寄存器的寄存器号为R12,若预设寄存器标识集合中的寄存器号为R5至R8(也就是说,当数据处理设备获取到的寄存器号为R5至R8中的任一寄存器号时,则在读取该寄存器号对应的寄存器中的数据后,进行数据缓存),则数据处理设备将该待缓存寄存器的寄存器号调整为R5至R8中的任一寄存器号。需要说明的是,由于预设寄存器标识集合中的元素数是提前预设的,因此,数据处理设备确定的待缓存寄存器的数量与该元素数相同,例如,预设寄存器标识集合中的标识信息为R5至R8四个标识信息,则该数据处理设备根据该读取次数确定四个寄存器为待缓存寄存器。S204、数据处理设备读取寄存器堆中寄存器的数据,并获取该寄存器的标识信息。S205、若该数据处理设备确定该寄存器的标识信息在该预设寄存器标识集合内,则缓存该数据,并对该数据进行处理。S206、若该数据处理设备确定该寄存器的标识信息不在该预设寄存器标识集合内,则对该数据进行处理。其中,该数据处理设备确定该寄存器的标识信息不在该预设寄存器标识集合内,直接对该数据进行处理,不进行缓存。S207、数据处理设备在对该数据进行处理后,将该数据写入该寄存器。这样,保证了缓存的寄存器数据的有效性,从而提高了数据处理设备对数据处理的效率,另外,当数据处理设备确定不缓存该寄存器中的数据时,则该数据处理设备直接对该数据进行运算处理,而不进行缓存,从而减小了数据处理设备在对数据处理过程中的功耗。需要说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。本发明实施例提供一种数据处理的方法,如图3所示,该方法实施例中的寄存器的状态信息可以为读取次数标志位,该方法包括:S301、数据处理设备读取寄存器堆中寄存器的数据,并将该寄存器的读取次数标志位的值加1.其中,该读取次数标志位用于记录该寄存器被读取的次数,该读取次数标志位的初始值为0。具体地,寄存器中设置有计数器,在该寄存器被读取时,则该计数器将对应的读取次数标志位的值加1。S302、数据处理设备在确定该读取次数标志位的数值大于或等于预设阈值时,确定缓存该寄存器中的数据,并缓存该寄存器中的数据。S303、数据处理设备在确定该读取次数标志位的数值小于该预设阈值时,确定不缓存该寄存器中的数据。示例地,若该预设阈值为3,则数据处理设备在读取寄存器时,将该寄存器对应的读取次数标志位加1,并获取该寄存器此时对应的读取次数标志位,若此时对应的读取次数标志位大于等于3,则该数据处理设备在读取该寄存器中的数据后,缓存该数据;若该读取次数标志位小于3,则该数据处理设备在读取该寄存器中的数据后,不缓存该数据。S304、数据处理设备对该数据进行处理,并将该处理后的数据写入该寄存器。S305、数据处理设备将该读取次数标志位清零。具体地,数据处理设备在读取到寄存器中的数据后,对该数据进行运算处理,并将处理后的结果写入该寄存器,从而覆盖原先寄存器中的数据,并对该读取次数标志位进行清零,以保证在运行后续的程序指令时,重新根据该读取次数标志位确定是否缓存读取的数据。这样,保证了缓存的寄存器数据的有效性,从而提高了数据处理设备对数据处理的效率,另外,当数据处理设备确定不缓存该寄存器中的数据时,则该数据处理设备直接对该数据进行运算处理,而不进行缓存,从而减小了数据处理设备在对数据处理过程中的功耗。需要说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。本发明实施例提供一种数据处理设备40,如图4所示,包括:寄存器堆41,用于通过寄存器存储数据。处理单元42,用于读取该寄存器中的数据并获取该寄存器的状态信息,若根据该寄存器的状态信息确定不缓存该寄存器中的数据,则将该数据发送至运算处理单元;若根据该寄存器的状态信息确定缓存该寄存器中的数据,则将该数据发送至缓存单元和运算处理单元。其中,该寄存器的状态信息可以是该寄存器的标识信息(如寄存器号)或者该寄存器的读取次数标志位,该寄存器可以是寄存器堆中的寄存器。运算处理单元43,用于对该处理单元42发送的数据进行处理。缓存单元44,用于缓存该处理单元42发送的数据。可选地,该处理单元42具体用于,获取该寄存器的标识信息;该处理单元42还用于,在寄存器堆中确定待缓存寄存器,将该待缓存寄存器的标识信息调整为预设寄存器标识集合中的标识信息,若确定该预设寄存器标识集合不包括该寄存器的标识信息,则确定不缓存该寄存器中的数据;若确定该预设寄存器标识集合包括该寄存器的标识信息,则确定缓存该寄存器中的数据。其中,该待缓存寄存器为在该待缓存寄存器中的数据被读取后进行数据缓存的寄存器;该预设寄存器标识集合包括确定进行数据缓存的寄存器的标识信息。示例地,该待缓存寄存器的标识信息可以为寄存器号,例如数据处理设备确定的该待缓存寄存器的寄存器号为R12,若预设寄存器标识集合中的寄存器号为R5至R8(也就是说,当数据处理设备获取到的寄存器号为R5至R8中的任一寄存器号时,则在读取该寄存器号对应的寄存器中的数据后,进行数据缓存),则数据处理设备将该待缓存寄存器的寄存器号调整为R5至R8中的任一寄存器号。进一步地,该处理单元42具体用于,根据程序指令确定该寄存器堆中各寄存器的第一生命周期,并确定该寄存器堆中各寄存器在该第一生命周期对应数据的读取次数,并根据该读取次数由大到小的顺序确定该待缓存寄存器。其中,该待缓存寄存器的数量与该预设寄存器标识集合中的元素数相同;该第一生命周期为该各寄存器中被读取次数最多的数据对应的生命周期。该生命周期为数据在写入寄存器到被改写之间的时间。需要说明的是,由于预设寄存器标识集合中的元素数是提前预设的,因此,数据处理设备确定的待缓存寄存器的数量与该元素数相同,例如,预设寄存器标识集合中的标识信息为R5至R8四个标识信息,则该数据处理设备根据该读取次数确定四个寄存器为待缓存寄存器。示例地,数据处理设备通过解析程序指令获得寄存器R1中的数据A1在对应的生命周期T1内的读取次数为M1,在寄存器R1中的数据由A1被改写为A2时,获得寄存器R1中的数据A2在对应的生命周期T2内的读取次数为M2,同样地,数据处理设备通过解析该程序指令获得寄存器R2中的数据B1在对应的生命周期S1内的读取次数为N1,在寄存器R2中的数据由B1被改写为B2时,获得寄存器R2中的数据B2在对应的生命周期S2内的读取次数为N2;数据处理设备通过解析该程序指令获得寄存器R3中的数据C1在对应的生命周期W1内的读取次数为P1,在寄存器R3中的数据由C1被改写为C2时,获得寄存器R3中的数据C2在对应的生命周期W2内的读取次数为P2,若M1大于M2,则确定生命周期T1为寄存器R1的第一生命周期,若N1大于N2,则确定生命周期S1为寄存器R2的第一生命周期,若P1大于P2,则确定生命周期W1为寄存器R2的第一生命周期,此时,若M1大于N1,N1大于P1,当预设寄存器标识集合包括三个标识信息时,则该数据处理设备确定寄存器R1、寄存器R2和寄存器R3为待缓存寄存器,当预设寄存器标识集合包括两个标识信息时,则该数据处理设备确定寄存器R1和寄存器R2为待缓存寄存器。这里只是举例说明,不作限定。更进一步地,该处理单元42还用于,当该寄存器堆中的任两个寄存器在该第一生命周期对应的读取次数相同时,分别获取该任两个寄存器在该第一生命周期内对应的数据的最后一次被读取的位置至该第一生命周期的起始位置之间程序指令的数量,并将数量最少的程序指令对应的寄存器优先确定为待缓存寄存器。该处理单元42还用于将数量最少的该程序指令数量对应的寄存器调整为该待缓存寄存器。示例地,若寄存器R1在对应的第一生命周期T1内的读取次数M1与寄存器R2在对应的第一生命周期S1内的读取次数N1相同,则数据处理设备确定该第一生命周期T1对应的数据的最后一次被读取的位置,并获取该第一生命周期的起始位置至该最后一次被读取的位置之间程序指令的数量X1,同样地,数据处理设备确定该第一生命周期S1对应的数据的最后一次被读取的位置,并获取该第一生命周期的起始位置至该最后一次被读取的位置之间程序指令的数量Y1,若X1小于Y1,则优先确定寄存器R1为待缓存寄存器。需要说明的是,若在确定寄存器R1为待缓存寄存器后,若此时待缓存寄存器的数量和预设寄存器标识集合中的元素数相同,则该寄存器R1为最后一个确定的待缓存寄存器,若在确定寄存器R1为待缓存寄存器后,若此时待缓存寄存器的数量小于预设寄存器标识集合中的元素数,则在优先确定寄存器R1为待缓存寄存器后,确定寄存器R2为待缓存寄存器,例如,若数据处理设备已经确定寄存器R3、寄存器R4和寄存器R5为待缓存寄存器且预设寄存器标识集合中的元素数为四个,而寄存器R1和寄存器R2在各自的第一生命周期对应的读取次数相同,并确定寄存器R1在第一生命周期的起始位置至最后一次被读取的位置之间程序指令的数量小于寄存器R2在第一生命周期的起始位置至最后一次被读取的位置之间程序指令的数量,则确定寄存器R1为待缓存寄存器,此时,由于待缓存寄存器的数量(R1、R3、R4和R5)与预设寄存器标识集合中的元素数相同,则确定寄存器R2不是待缓存寄存器;若数据处理设备已经确定寄存器R3和寄存器R4为待缓存寄存器且预设寄存器标识集合中的元素数为四个,而寄存器R1和寄存器R2在各自的第一生命周期对应的读取次数相同,并确定寄存器R1在第一生命周期的起始位置至最后一次被读取的位置之间程序指令的数量小于寄存器R2在第一生命周期的起始位置至最后一次被读取的位置之间程序指令的数量,则确定寄存器R1为待缓存寄存器,此时,由于待缓存寄存器的数量(R1、R3和R4)小于预设寄存器标识集合中的元素数,因此,则确定寄存器R2也是待缓存寄存器,从而使得带寄存器的数量与于预设寄存器标识集合中的元素数相同。可选地,该处理单元42具体用于,获取该寄存器的读取次数标志位。其中,该读取次数标志位用于记录该寄存器被读取的次数;该处理单元42还用于,在读取该寄存器中的数据后,将该寄存器的读取次数标志位的数值加1,在确定该读取次数标志位的数值小于预设阈值时,确定不缓存该寄存器中的数据;在确定该读取次数标志位的数值大于或等于该预设阈值时,确定缓存该寄存器中的数据。示例地,若该预设阈值为3,则数据处理设备在读取寄存器时,将该寄存器对应的读取次数标志位加1,并获取该寄存器此时对应的读取次数标志位,若此时对应的读取次数标志位大于等于3,则该数据处理设备在读取该寄存器中的数据后,缓存该数据;若该读取次数标志位小于3,则该数据处理设备在读取该寄存器中的数据后,不缓存该数据。进一步地,该运算处理单元43还用于,在对该数据进行处理后,将该处理后的数据写入该寄存器堆中对应的寄存器,该寄存器堆在将该数据写入对应的寄存器后,该寄存器对该读取次数标志位进行清零。采用上述数据处理设备,数据处理设备在读取寄存器中的数据时,获取该寄存器的状态信息,并根据该状态信息确定是否缓存该寄存器中的数据,这样,保证了缓存的寄存器数据的有效性,从而提高了数据处理设备对数据处理的效率,另外,当数据处理设备确定不缓存该寄存器中的数据时,则该数据处理设备直接对该数据进行运算处理,而不进行缓存,从而减小了数据处理设备在对数据处理过程中的功耗。本发明提供的一种数据处理设备50,如图5所示,该数据处理设备50包括:处理器(processor)51、通信接口(CommunicationsInterface)52、存储器(memory)53和通信总线54;其中,所述处理器51、所述通信接口52和所述存储器53通过所述通信总线104完成相互间的通信。处理器51可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器53用于存放程序代码,所述程序代码包括计算机操作指令。存储器53可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。所述通信接口52,用于实现这些装置之间的连接通信。所述处理器51执行程序代码,用于读取寄存器中的数据,并获取该寄存器的状态信息,若根据该寄存器的状态信息确定该寄存器不缓存该数据,对该数据进行处理;若根据该寄存器的状态信息确定该寄存器缓存该数据,缓存该数据,并对该数据进行处理。可选地,该处理器51具体用于,获取该寄存器的标识信息;在寄存器堆中确定待缓存寄存器,并将该待缓存寄存器的标识信息调整为预设寄存器标识集合中的标识信息,在确定该预设寄存器标识集合不包括该寄存器的标识信息时,则确定不缓存该寄存器中的数据;在确定该预设寄存器标识集合包括该寄存器的标识信息时,则确定缓存该寄存器中的数据。其中,该待缓存寄存器为在该待缓存寄存器中的数据被读取后进行数据缓存的寄存器,该预设寄存器标识集合包括确定进行数据缓存的寄存器的标识信息。可选地,该处理器51具体用于,根据程序指令确定该寄存器堆中各寄存器的第一生命周期,并确定该寄存器堆中各寄存器在该第一生命周期对应数据的读取次数,并根据该读取次数由大到小的顺序确定该待缓存寄存器,其中,该待缓存寄存器的数量与该预设寄存器标识集合中的元素数相同。其中,该第一生命周期为该各寄存器中被读取次数最多的数据对应的生命周期。可选地,该处理器51还用于,当该寄存器堆中的任两个寄存器在该第一生命周期对应的读取次数相同时,分别获取该任两个寄存器在该第一生命周期内对应的数据的最后一次被读取的位置至该第一生命周期的起始位置之间程序指令的数量,并将数量最少的程序指令对应的寄存器优先确定为待缓存寄存器。可选地,该处理器51具体用于,获取该寄存器的读取次数标志位;其中,该读取次数标志位用于记录该寄存器被读取的次数;在该数据处理设备读取该寄存器中的数据后,将该寄存器的读取次数标志位加1;在确定该读取次数标志位的数值小于预设阈值时,确定不缓存该寄存器中的数据;在确定该读取次数标志位的数值大于或等于该预设阈值时,确定缓存该寄存器中的数据。可选地,该处理器51还用于,在将该处理后的数据写入该寄存器后,对该读取次数标志位进行清零。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1