一种处理器内核结构的制作方法

文档序号:15685393发布日期:2018-10-16 21:00阅读:133来源:国知局

本发明涉及集成电路领域,尤其涉及一种处理器内核结构。



背景技术:

在现有的处理器内核结构中,累加器通常为专用寄存器,处理器内核结构通常包括专用的累加器和通用寄存器组。

但是,随着技术的发展,对于大数据长度处理和执行的效率提高需求也来越大,现有的处理器内核结构的效率有待提升。



技术实现要素:

本发明解决的技术问题是提升处理器内核结构的效率。

为解决上述技术问题,本发明实施例提供一种处理器内核结构,包括:一种处理器内核结构,其特征在于,包括:数据总线组、至少一个累加器、以及逻辑运算单元;每个所述累加器均包括至少两个第一通用寄存器,每一所述第一通用寄存器的位数相同;所述累加器经由所述数据总线组连接至所述逻辑运算单元的输入端;其中,所述数据总线组包括多个第一数据总线,所述第一数据总线的数量与每个所述累加器中的所述第一通用寄存器的数量相等,每个所述第一数据总线的位数与所述第一通用寄存器的位数相同,所述累加器中的每个所述第一通用寄存器连接至对应的所述第一数据总线。

可选的,所述逻辑运算单元适于通过所述数据总线组读取所述累加器的数据。

可选的,所述逻辑运算单元适于通过所述第一数据总线读取所述累加器中与所述第一数据总线连接的所述第一通用寄存器的数据。

可选的,所述数据总线组的数量为至少两个。

可选的,所述逻辑运算单元适于响应于一条指令的指示,通过所述数据总线组读取至少两个累加器的数据并进行运算。

可选的,所述逻辑运算单元的输出端连接至所述至少一个累加器。

可选的,所述逻辑运算单元适于将运算结果写入所述累加器或写入所述累加器中包括的所述第一通用寄存器。

可选的,所述处理器内核结构还包括:乘加单元,所述乘加单元的输入端连接至所述数据总线组中的至少部分所述第一数据总线,所述乘加单元的输出端连接至所述逻辑运算单元。

可选的,所述处理器内核结构还包括:通用寄存器组,所述通用寄存器组包括多个第二通用寄存器;所述通用寄存器组通过第二数据总线连接至所述乘加单元。

可选的,所述处理器内核结构还包括:所述逻辑运算单元的输出端连接至所述通用寄存器组中的所述第二通用寄存器。

可选的,所述处理器内核结构还包括:所述处理器内核结构为dsc内核结构。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

在本发明实施例中,处理器内核结构的每个累加器均包括至少两个所述第一通用寄存器,每一所述第一通用寄存器的位数相同,累加器经由数据总线组连接至逻辑运算单元的输入端,所述累加器中的每个所述第一通用寄存器连接至对应的所述第一数据总线。由于累加器经由数据总线组连接至逻辑运算单元的输入端,每个累加器均包括至少两个第一通用寄存器,故累加器的位数更多,可以一次进行操作的累加数据的位数更多,从而可以提升处理器内核结构的效率。另外,每个所述第一数据总线的位数与所述第一通用寄存器的位数相同,逻辑运算单元可以通过第一数据总线单独对每个第一通用寄存器进行读取,从而可以解决现有的处理器内核结构的用户运算的寄存器数量较少的问题,进而可以避免在进行多数据处理时需要进行的额外的保存和读取过程,进一步可以提升处理器内核的执行效率。

进一步,在现有技术中通常只能有一个累加器参与运算,限制了处理器内核的效率,当需要读取两个累加器的数据时,需要分时进行,造成了处理器内核的功耗增加。而在本发明实施例中,由于所述数据总线组的数量为至少两个,故逻辑运算单元可以同时读取至少两个累加器的数据,进而可以提升处理器内核的效率,同时也可以减少功耗。

附图说明

图1是本发明实施例中一种处理器内核结构的结构示意图。

具体实施方式

如前所述,在现有的处理器内核结构中,处理器内核结构通常包括专用的累加器和通用寄存器组,累加器中的寄存器无法被用作通用寄存器单独访问。但是,随着技术的发展,对于大数据长度处理和执行的效率提高需求也来越大,现有的处理器内核结构的效率有待提升。

在本发明实施例中,处理器内核结构的每个累加器均包括至少两个所述第一通用寄存器,每一所述第一通用寄存器的位数相同,累加器经由数据总线组连接至逻辑运算单元的输入端,所述累加器中的每个所述第一通用寄存器连接至对应的所述第一数据总线。

由于累加器经由数据总线组连接至逻辑运算单元的输入端,每个累加器均包括至少两个第一通用寄存器,故累加器的位数更多,可以一次进行操作的累加数据的位数更多,从而可以提升处理器内核结构的效率。

另外,每个所述第一数据总线的位数与所述第一通用寄存器的位数相同逻辑运算单元可以单独对每个第一通用寄存器进行读取,从而可以解决现有的处理器内核结构的用户运算的寄存器数量较少的问题,进而可以避免在进行多数据处理时需要进行的额外的保存和读取过程,进一步可以提升处理器内核的执行效率。

为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图1是本发明实施例中一种处理器内核结构的结构示意图,以下参照图1进行说明。

处理器内核结构可以包括数据总线组和累加器。其中,数据总线组可以是一个或多个,例如可以是图1中数据总线组12和数据总线组13,或总线组的数量也可以是其他任意数量;累加器同样可以是一个或多个,例如可以是图1中的累加器acc0至acc7,累加器的数量也可以是其他任意数量。一个或多个累加器共同形成累加器组11,虽然图1中示出的累加器组11包含8个累加器,但累加器组中也可以包含其他数量的累加器。处理器内核结构还可以包括逻辑运算单元(alu)14。

每个累加器均可以包括至少两个第一通用寄存器。图1中的每个累加器均包括两个第一通用寄存器,r16至r31均为第一通用寄存器。虽然图中未示出,但每一累加器也可以包括更多个第一通用寄存器,例如可以包括3个第一通用寄存器,具体第一通用寄存器的数量可以根据对累加器位数的需求和每个第一通用寄存器的位数确定。

每个数据总线组中包含的第一数据总线的数量与每个所述累加器中的所述第一通用寄存器的数量相等,每个所述第一数据总线的位数与所述第一通用寄存器的位数相同。例如,当累加器中包含的第一通用寄存器的位数为32位时,第一数据总线的位数也为32位。

累加器经由数据总线组连接至逻辑运算单元14的输入端,可以是任一累加器通过多个数据总线组中的任一数据总线组连接至逻辑单元14的输入端。

例如,图1中累加器acc0至acc7中的任一累加器,均可以通过数据总线组12或者数据总线组13(例如,通过多路选择器的控制进行选择)连接至逻辑运算单元14。

累加器中的每个所述第一通用寄存器连接至对应的所述第一数据总线,具体地,对应的所述第一数据总线,可以是与累加器相连接的数据总线组中的第一数据总线。

在一个非限定性的例子中,可以对累加器中的第一通用寄存器进行进一步区分,该区分可以依据第一通用寄存器在累加器中的数据位进行。例如,对于64位累加器中的第一通用寄存器可以分为高32位寄存器和低32位寄存器。

类似地,可以对数据总线组中的第一数据总线进行进一步的区分,区分方式与对累加器中的第一通用寄存器相对应,例如当数据总线组为64位时,可以分为高32位数据总线和低32位数据总线。

在连接时,可以仅将进行上述划分后具有对应关系的第一通用寄存器和第一数据总线相连接。例如,高32位寄存器仅与高32位数据总线相连接,低32位寄存器仅与低32位数据总线相连接。

当累加器和数据总线组均为多个时,累加器可以与不同的数据总线组相连接,累加器中的第一通用寄存器可以与不同的数据总线组中的对应的第一数据总线相连接。

以图1为例,累加器acc0至acc7均包括两个第一通用寄存器,分别为通用寄存器r16和r17、r18和r19、r20和r21……直至r30和r31,其中r17、r19……r31可以是高32位寄存器,其中r18、r20……r30可以是低32位寄存器;数据总线组的数目为2,分别是图1中数据总线组12和数据总线组13,数据总线组12中包含数据总线d1及数据总线d2,数据总线组13中包含数据总线d3及数据总线d4,其中,数据总线d1以及数据总线d3可以对应于高32位寄存器,数据总线d3及数据总线d4可以对应于低32位寄存器。

第一通用寄存器r17、r19……至r31可以通过多路选择器的控制连接至数据总线d1和d3,第一通用寄存器r17、r19……至r31可以通过多路选择器的控制连接至数据总线d1以及数据总线d3。

如此,数据总线组可以被不同的累加器复用,且数据总线组中仅部分总线与同一第一寄存器相连接,可以减少总线连接部分的布线面积,节省资源。

可以理解的是,数据总线d1至d4中的每个数据总线也可以均连接至累加器中的各个第一通用寄存器,也即第一通用寄存器r16至r31中任意一个,从而可以选中第一通用寄存器r16至r31中任意一个寄存器。

在本发明实施例中,所述逻辑运算单元适于通过所述数据总线组读取所述累加器的数据,还适于通过所述第一数据总线读取所述累加器中与所述第一数据总线连接的所述第一通用寄存器的数据。

故本发明实施例中的累加器的位数可以是通用寄存器位数的整数倍,例如,当通用寄存器为32位时,累加器可以是64位,从而可以提供64位数据的处理方式。由于在本发明中的累加器中的每个第一通用寄存器均可以作为处理器内核的通用寄存器使用,故在同样处理器内核资源供给的情况下,可以增加通用寄存器的数量,例如在图1中,在不使用累加操作时,可以支持累加器acc0至acc7中的16个第一通用寄存器作为处理器内核的通用寄存器使用,使得在不同的情况硬件都能充分利用,且提供了更多更灵活的寄存器使用方式。

在具体实施中,数据总线组的数量可以为至少两个。相应地,所述逻辑运算单元适于响应于一条指令的指示,通过所述数据总线组读取至少两个累加器的数据并进行运算。

在现有技术中通常只能有一个累加器参与运算,限制了处理器内核的效率,当需要读取两个累加器的数据时,需要分时进行,造成了处理器内核的功耗增加。而在本发明实施例中,由于所述数据总线组的数量为至少两个,并且发明中的处理器架构支持两个或两个以上的总线组同时进行读写,故逻辑运算单元可以同时读取至少两个累加器的数据,进而可以提升处理器内核的效率,同时也可以减少功耗。通过设置至少两个数据总线组,进行多总线组的并行工作,也可以增加单位时间数据的吞吐量,提高处理器内核结构的指令执行效率。

本领域技术人员可以理解的是,在其它变形例中,数据总线组的数量可以根据需要设置,例如也可以仅设置一个数据总线组。另外,虽然每个数据总线组中包括多个第一数据总线,但在对单一操作数进行操作时,也可以仅利用一个第一数据总线,或者,也可以仅利用第二总线对第二通用寄存器进行操作。

逻辑运算单元14的输出端可以连接至累加器,相应的,所述逻辑运算单元14适于将运算结果写入所述累加器或写入所述累加器中包括的所述第一通用寄存器。

本发明实施例中的处理器内核结构还可以包括乘加单元15,所述乘加单元15的输入端可以连接至所述数据总线组中的至少部分所述第一数据总线,可以连接至数据总线组的全部第一数据总线,或其中部分第一数据总线。当数据总线组为多个时,可以连接至其中一个数据总线组的全部第一数据总线,例如图1中,可以连接至数据总线组13中的全部数据总线。所述乘加单元的输出端连接至所述逻辑运算单元14。

本发明实施例中的处理器内核结构还可以包括通用寄存器组16,所述通用寄存器组包括多个第二通用寄存器;所述通用寄存器组通过第二数据总线17连接至所述乘加单元15。

第二数据总线17的数量可以是一个或多个,第二数据总线17可以连接至通用寄存器组16中的每个第二通用寄存器,也即可以连接至第二通用寄存器r0至r15中的每一个。从而通过第二数据总线17可以选中通用寄存器组16中的任一个第二通用寄存器。

其中,第一通用寄存器和第二通用寄存器可以采用相同或者不同的寄存器结构,例如现有技术中任何适当的寄存器结构。作为一个优选的实施例,第一通用寄存器和第二通用寄存器的结构可以相同,而且第一通用寄存器和第二通用寄存器可以具有相同的位数。

在具体实施中,所述逻辑运算单元14的输出端可以通过数据总线18连接至所述通用寄存器组中的所述第二通用寄存器,以使得逻辑运算单元14的输出结果可以写回至通用寄存器组。

基于本发明实施例中的处理器内核结构,一条指令可以仅对累加器、仅对第一通用寄存器或者仅对第二通用寄存器进行操作,也可以同时对累加器、第一通用寄存器或者第二通用寄存器中的任意两个进行操作,其具体实现可以根据指令的需要而不同。

本发明实施例中的处理器内核结构可以是dsc内核结构,现有的dsc内核结构(mcu+dsp结构)系统的操作数位宽一般为40位或低于40位,在处理64位的数据时,通常需要将64位数据分成32位来处理。在数据运算时,通用寄存器的数量一般为16个,且部分寄存器的使用方式固定(如程序寄存器、连接寄存器、堆栈指针寄存器等),实际可采用的用于运算的寄存器数量较少,在需要进行多数据处理时可能需要引入额外的保存与读取的过程,降低了执行的效率。

在现有技术中,累加器和通用寄存器是相互独立使用的,在不使用累加器时,累加器处于空闲状态,导致硬件的使用效率较低从而提高了硬件成本。在现有技术中,每次只能有一个累加器参与运算,限制了程序的执行效率,也造成了功耗的增加。

随着技术的发展,对于大数据长度处理和执行的效率提高需求也来越大。而在本发明实施例中的处理器内核结构是带累加器的内核系统结构,当第一寄存器的位数为32位时,2个32位的第一寄存器可以组合成一个64位的累加器,同时可以完成两个16位(或32位)乘法的结果和一个64位的累加器相加,并且把结果保存在64位的累加器中。

以下以第一通用寄存器和第二通用寄存器均为32位通用寄存器为例,对图1中处理器内核结构的应用进行说明。图1中的处理器内核结构可以完成以下任一种操作:

单周期实现任意2个64位累加器的加减运算并将结果一次性写入相应的累加器或通用寄存器中,例如可以通过数据总线组12和数据总线组13同时读取累加器acc0至acc7中任意两个累加器中的数据,并将二者进行加减运算,并可以将运算结果写回累加器acc0至acc7中任意一个累加器或写入通用寄存器组16中的第二通用寄存器;

单周期实现任意2个32位通用寄存器的加减运算并将结果一次性写入相应的累加器或通用寄存器中,例如,可以通过第二数据总线17同时读取通用寄存器组16中任意两个寄存器的数据,进行加减运算,并将结果写入寄存器组16中任意一个寄存器或写入累加器acc0至acc7中任意一个累加器;

单周期实现任意1个64位累加器和任意1个32位通用寄存器的加减运算并将结果一次性写入相应的累加器或通用寄存器中,例如,可以通过第二数据总线17通用寄存器组16中任意一个寄存器的数据,并同时通过数据总线组同时读取累加器中的数据,由逻辑运算单元14进行加减运算,并将结果写入累加器组11中的累加器或通用寄存器组16中的第二通用寄存器;

单周期实现任意1个64位累加器和任意2个32位通用寄存器的加减运算并将结果一次性写入相应的累加器或通用寄存器中,例如,可以通过第二数据总线17同时读取通用寄存器组16中任意2个第二通用寄存器的数据,第二通用寄存器中的两个32位数据可以进行加减运算;并可以通过数据总线组12或13读取任意一个累加器的数据,通过逻辑运算单元14与前述运算的结果做加减运算,并将结果写入累加器组11中的累加器或通用寄存器组16中的第二通用寄存器;

单周期实现任意2个32位的通用寄存器的(有符号或者无符号)乘法运算,并将结果一次性保存到相应的累加器或者通用寄存器中,例如可以通过第二数据总线17通用寄存器组16中任意2个第二通用寄存器的数据,进行乘法运算,并将结果保存到累加器组11中的累加器或通用寄存器组16中的第二通用寄存器;

单周期实现任意1个32位通用寄存器的高16位和低16位相乘的(有符号或者无符号)乘法运算,例如可以通过数据总线17同时读取通用寄存器组16中任意1个第二通用寄存器的数据,将该数据的高16位和低16位相乘,并将结果写入累加器组11的累加器中,或写入通用寄存器组16中的第二通用寄存器中;单周期实现任意2个32位通用寄存器的高低16位交叉相乘的(有符号或者无符号)乘法运算,并实现两个乘法结果的相加/相减运算,并将结果一次性保存到相应的累加器或者通用寄存器中,例如可以通过第二数据总线17同时读取通用寄存器组16中任意2个第二通用寄存器的数据,将二者中的数据的高低16位进行交叉相乘,并可以对乘法结果进行相加/相减运算,并可以将结果保存到累加器组11中的累加器或通用寄存器组16中的第二通用寄存器;

单周期实现任意2个32位通用寄存器的高16位和高16位相乘且低16位和低16位相乘的(有符号或者无符号)乘法运算,并实现两个乘法结果的相加/相减运算,并将结果一次性保存到相应的累加器或者通用寄存器中,例如,可以通过第二数据总线17同时读取通用寄存器组16中任意2个第二通用寄存器的数据,将二者中的数据的高16位和高16位相乘且低16位和低16位相乘,实现两个乘法结果的相加/相减运算,并可以将结果保存到累加器组11中的累加器或通用寄存器组16中的第二通用寄存器;

也可以单周期实现第前述的乘加(或乘法)结果和任意1个64位的累加器(或1个32位的通用寄存器)的加/减运算,并将结果一次性保存到相应的累加器或者通用寄存器中;

并且可以在不使用累加器的情况下累加器中的第一通用寄存器可以作为32个32位的通用寄存器来处理数据。

本领域技术人员可以理解的是,第一存储器和第二存储器的位数可以也可以是16位或64位,或者也可以是其他位数的存储器,累加器可以由3个或更多的第一存储器组成,数据总线组和第二数据总线的数目也可以根据需要进行设置。

综上,在本发明实施例中,处理器内核结构的每个累加器均包括至少两个所述第一通用寄存器,每一所述第一通用寄存器的位数相同,累加器经由数据总线组连接至逻辑运算单元的输入端,所述累加器中的每个所述第一通用寄存器连接至对应的所述第一数据总线。由于累加器经由数据总线组连接至逻辑运算单元的输入端,每个累加器均包括至少两个第一通用寄存器,故累加器的位数更多,可以一次进行操作的累加数据的位数更多,从而可以提升处理器内核结构的效率。另外,每个所述第一数据总线的位数与所述第一通用寄存器的位数相同,逻辑运算单元可以单独对每个第一通用寄存器进行读取,从而可以解决现有的处理器内核结构的用户运算的寄存器数量较少的问题,进而可以避免在进行多数据处理时需要进行的额外的保存和读取过程,进一步可以提升处理器内核的执行效率。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1