CN113721979A - 可配置位宽的寄存器电路及方法、解码电路和芯片 - Google Patents
可配置位宽的寄存器电路及方法、解码电路和芯片 Download PDFInfo
- Publication number
- CN113721979A CN113721979A CN202010447247.3A CN202010447247A CN113721979A CN 113721979 A CN113721979 A CN 113721979A CN 202010447247 A CN202010447247 A CN 202010447247A CN 113721979 A CN113721979 A CN 113721979A
- Authority
- CN
- China
- Prior art keywords
- register
- bit
- bit width
- registers
- narrow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000003079 width control Methods 0.000 claims abstract description 80
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明提供一种可配置位宽的寄存器电路及方法、解码电路和芯片。寄存器电路包括:可配置位宽的寄存器区域和解码单元,所述解码单元用于根据接收到的寄存器地址信号以及位宽控制信号在所述寄存器区域中选择相应位宽的寄存器。本发明的寄存器电路,可以极度灵活的配置寄存器宽度,满足不同位宽的要求。由于寄存器可复用,从而节省了电路成本。由于窄寄存器的个数多于宽寄存器的个数,所以在程序中,能够更加灵活和高效的发挥处理器性能。也可以将多个窄寄存器组成一组,作为一个向量寄存器使用,向量寄存器中元素的个数即此组窄寄存器的个数。
Description
技术领域
本发明属于寄存器技术领域,具体涉及一种可配置位宽的寄存器电路、一种配置寄存器位宽的方法、一种解码电路以及一种芯片。
背景技术
在集成电路中(如用于神经网络的专用集成电路(ApplicationSpecificIntegrated Circuit,ASIC)),经常会一个芯片支持多种位宽的数据操作。
在相关技术一中,针对每一种位宽的数据,会有独立的对应位宽的寄存器,例如针对8位数据位宽和16位数据位宽分别设计出对应的8位寄存器和16位寄存器等。显然,在这种方案中,不同位宽的寄存器都是独立存在,使得硬件开销大,芯片成本高。
在相关技术二中,宽位宽寄存器被直接用作窄位宽寄存器,但是,由于窄位宽的寄存器只用了宽位宽寄存器的一部分,因此,在当作窄位宽寄存器使用时,部分寄存器被浪费。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一,提供一种可配置位宽的寄存器电路、一种配置寄存器位宽的方法、一种解码电路以及一种芯片。
本发明的一个方面,提供一种可配置位宽的寄存器电路,包括:
可配置位宽的寄存器区域;
解码单元,用于根据接收到的位宽控制信号和寄存器地址信号在所述寄存器区域中选择相应位宽的寄存器。
在可选地一些实施方式中,所述位宽控制信号基于待执行指令中的至少一个位宽控制位生成,所述位宽控制位与所述待执行指令处理的数据的位宽相对应;
所述寄存器地址信号基于所述待执行指令中的寄存器信息生成。
在可选地一些实施方式中,所述寄存器区域包括多个窄寄存器;
所述解码单元包括多个选通控制单元,所述多个选通控制单元分别对应所述多个窄寄存器。
在可选地一些实施方式中,每个所述选通控制单元均用于接收至少两个寄存器地址信号和至少一个位宽控制信号,并基于所述至少两个寄存器地址信号和所述至少一个位宽控制信号从所述寄存器区域中选择所述相应位宽的寄存器。
在可选地一些实施方式中,所述寄存器地址信号为两个,所述位宽控制信号为一个;
在所述位宽控制信号为第一电平信号时,所述多个选通控制单元根据两个所述寄存器地址信号从所述多个窄寄存器中单独选通一个所述窄寄存器进行配置,以得到第一寄存器;以及,
在所述位宽控制信号为第二电平信号时,所述多个选通控制单元根据两个所述寄存器地址信号从所述多个窄寄存器中选通至少两个所述窄寄存器进行组合配置,以得到第二寄存器;
所述第一电平信号和所述第二电平信号中的一者为高电平信号,另一者为低电平信号。
在可选地一些实施方式中,所述多个窄寄存器形成一组向量寄存器,所述向量寄存器中元素的个数为所述多个窄寄存器的个数。
本发明的另一方面,提供一种解码电路,包括:
指令解码单元,用于接收并解码指令,基于所述指令生成位宽控制信号和寄存器地址信号;
如前文记载的所述的寄存器电路,用于基于所述位宽控制信号和所述寄存器地址信号在所述寄存器区域中选择相应位宽的寄存器。
在可选地一些实施方式中,所述基于所述指令生成位宽控制信号,包括:
基于所述指令中包括的待处理的数据的位宽信息生成所述位宽控制信号。
本发明的另一方面,提供一种配置寄存器位宽的方法,包括:
接收寄存器地址信号以及位宽控制信号;
根据所述位宽控制信号和所述寄存器地址信号,在可配置位宽的寄存器区域中选择相应位宽的寄存器。
在可选地一些实施方式中,所述位宽控制信号基于待执行指令中的至少一个位宽控制位生成,所述位宽控制位与所述待执行指令处理的数据的位宽相对应;
所述寄存器地址信号基于所述待执行指令中的寄存器信息生成。
在可选地一些实施方式中,所述寄存器地址信号为两个,所述位宽控制信号为一个,所述寄存器区域包括多个窄寄存器,所述根据所述位宽控制信号和所述寄存器地址信号,在可配置位宽的寄存器区域中选择相应位宽的寄存器,包括:
在所述位宽控制信号为第一电平信号时,根据两个所述寄存器地址信号从所述多个窄寄存器中单独选通一个所述窄寄存器进行配置,以得到第一寄存器;以及,
在所述位宽控制信号为第二电平信号时,根据两个所述寄存器地址信号从所述多个窄寄存器中选通至少两个所述窄寄存器进行组合配置,以得到第二寄存器;
所述第一电平信号和所述第二电平信号中的一者为高电平信号,另一者为低电平信号。
本发明的另一方面,提供一种芯片,包括前文记载的所述的寄存器电路,或包括前文记载的所述解码电路。
本发明的另一个方面,提供一种电子设备,包括:
一个或多个处理器;
一个存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现根据前文记载的所述的方法。
本发明的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时能实现根据前文记载的所述的方法。
本发明的另一个方面,提供一种计算机程序,所述计算机程序在被处理器执行时能实现根据前文记载的所述的方法。
本发明的配置位宽的寄存器电路及方法、解码电路和芯片,可以极度灵活的组合配置寄存器,满足不同位宽的要求,由于寄存器可复用,从而节省了电路成本,由于窄寄存器的个数多余宽寄存器的个数,所以在程序中,能够更加灵活和高效的发挥处理器性能,可以将多个窄寄存器组成一组,作为一个向量寄存器使用,向量寄存器中元素的个数即此组窄寄存器的个数。
附图说明
图1为本发明一实施例的电子设备的组成示意框图;
图2为本发明另一实施例的可配置位宽的寄存器电路的结构示意图;
图3为本发明另一实施例的寄存器组合示意图;
图4为本发明另一实施例的寄存器单独配置示意图;
图5为本发明另一实施例的寄存器组合配置示意图;
图6为本发明另一实施例的可配置位宽的寄存器电路的结构示意图;
图7为本发明另一实施例的配置寄存器位宽的方法的流程图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
首先,参照图1来描述用于实现本发明实施例的可配置位宽的寄存器电路、配置寄存器位宽的方法的示例电子设备。
如图1所示,电子设备200包括一个或多个处理器210、一个或多个存储装置220、一个或多个输入装置230、一个或多个输出装置240等,这些组件通过总线系统250和/或其他形式的连接机构互连。应当注意,图1所示的电子设备的组件和结构只是示例性的,而非限制性的,根据需要,电子设备也可以具有其他组件和结构。
处理器210可以是中央处理单元(CPU)、或者可以是由多个处理核构成、或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备200中的其他组件以执行期望的功能。
存储装置220可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如,所述应用程序使用和/或产生的各种数据等。
输入装置230可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
输出装置240可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
下面,将参考图2描述根据本发明一实施例的用于配置寄存器位宽的寄存器电路。
如图2所示,一种可配置位宽的寄存器电路REG_var_W,包括:可配置位宽的寄存器区域REG Array和解码单元DEC。寄存器区域REG Array可以包括多个窄寄存器阵列。解码单元DEC用于根据所述位宽控制信号和所述寄存器地址信号在所述寄存器区域REG Array中选择相应位宽的寄存器。
本发明实施例,通过上述寄存器电路,可以根据接收的指令,解析出位宽控制信号和寄存器地址信号,并根据位宽控制信号和寄存器地址信号从寄存器区域中灵活组合匹配出相应位宽的寄存器。
在可配置位宽的寄存器区域REG Array中,多个窄(位宽)寄存器可以组合成不同位宽的宽(位宽)寄存器。
示例性的,如图3所示,假设寄存器区域REG Array中窄寄存器的位宽为Mbit,宽寄存器的位宽为Nbit,M和N都是2的整数次方,则根据本实施例,多个窄寄存器能够匹配出一个宽寄存器,也能匹配出多个次宽寄存器。例如,假设N=32,M=8,则4个8bit的窄寄存器,能够匹配出一个32bit的宽寄存器,而两个8bit的窄寄存器可以匹配出两个16bit的次宽寄存器。
传统地,在处理器中,要么设置m个宽寄存器(m为大于0的整数),要么设置m个窄寄存器,或者宽寄存器当作窄寄存器使用。但在本实施例中,如果保持16bit位宽的宽寄存器为32个,则8bit位宽的窄寄存器的数量则需要64个,因为一个宽寄存器需要由两个窄寄存器组成,因此,窄寄存器的个数会多于宽寄存器的个数,我们可以将多个窄寄存器组成一组,作为一个向量寄存器使用,向量寄存器中元素的个数即此组窄寄存器的个数,这样能够有效提升处理器性能。
下文将以窄寄存器数量为4个,且M=8,N=16为例进行说明本实施例实现过程。
如图4所示,当作为窄寄存器使用时,寄存器区域中一共有四个窄寄存器,其寄存器地址分别为00b,01b,10b和11b。当组合成宽寄存器后,如图5所示,为两个16bit的宽寄存器,其寄存器地址分别为0b和1b。
在可配置的寄存器区域中匹配窄寄存器还是宽寄存器,由指令中的位宽控制位决定。将指令中至少一个预设位作为位宽控制位,将位宽控制位设置为与待匹配寄存器的位宽相对应的编码,这样在执行指令时,就能通过该预设位生成位宽控制信号,从而根据位宽控制信号匹配相应位宽的寄存器。
以指令编码是32位,窄寄存器位宽为8bit,宽寄存器位宽为16bit为例,可以将指令编码中的第14位作为与寄存器位宽对应的位宽控制位,此处不难理解,根据指令编码以及寄存器位宽的不同,还可以设置指令编码中的任意位作为与寄存器位宽对应的位宽控制位。
例如,执行8bit数据的加法,加法指令使用x8后缀,格式可以为add.x8 rd,rs1,rs2,其中,add表示加法指令的指令名,x8表示8bit数据,rd表示目的寄存器,rs1表示第一源操作数寄存器,rs2表示第二源操作数寄存器。此时,设置指令编码中的第14位为0,其指令编码具体如下:
此时,指令解码器解码该指令后,根据位宽控制位(第14位)的取值生成位宽控制信号(此时为低电平信号),根据指令的其余位取值生成寄存器地址信号,进而通过解码单元DEC匹配出四个位宽为8bit的窄寄存器。
当执行16bit数据的加法时,加法指令会使用.x16后缀,格式可以为add.x16 rd,rs1,rs2,其中add表示加法指令的指令名,x16表示16bit数据,rd表示目的寄存器,rs1表示第一源操作数寄存器,rs2表示第二源操作数寄存器。此时,设置指令编码中的第14位为1,其指令编码具体如下:
此时,指令解码器解码该指令后,根据位宽控制位(第14位)的取值生成位宽控制信号(高电平信号),根据其余位取值生成寄存器地址信号,进而通过解码器DEC匹配出两个位宽为16bit的宽寄存器。
由上述不难可以看出,在需要使用不同位宽的寄存器时,可以根据指令编码中至少一位作为位宽控制位,对其取不同数值(或高低电平信号等),从而匹配出不同位宽的寄存器。
本实施例的寄存器电路,可以极度灵活的组合配置寄存器,满足不同位宽的要求,由于寄存器可复用,从而节省了电路成本,由于窄寄存器的个数多余宽寄存器的个数,所以在程序中,能够更加灵活和高效的发挥处理器性能,可以将多个窄寄存器组成一组,作为一个向量寄存器使用,向量寄存器中元素的个数即此组窄寄存器的个数。
下文以8bit窄寄存器和16bit宽寄存器的复用为例进行描述。示例性的,如图6所示,所述解码单元DEC包括四个选通控制单元,分别为第一选通控制单元110、第二选通控制单元120、第三选通控制单元130和第四选通控制单元140。该四个选通控制单元分别对应四个窄寄存器,也即第一选通控制单元110对应窄寄存器210,第二选通控制单元120对应窄寄存器220,第三选通控制单元130对应窄寄存器230,第四选通控制单元140对应窄寄存器240。每个选通控制单元都用于接收第一寄存器地址信号Addr[1]、第二寄存器地址信号Addr[0]和位宽控制信号Tc。
其中,在所述位宽控制信号Tc为第一电平信号时,所述多个选通控制单元根据所述第一寄存器地址信号Addr[1]和所述第二寄存器地址信号Addr[0]从四个窄寄存器中单独选通一个窄寄存器进行配置,得到第一寄存器,该第一寄存器的位宽与窄寄存器的位宽相同。以及,在所述位宽控制信号Tc为第二电平信号时,所述多个选通控制单元根据所述第一寄存器地址信号Addr[1]和所述第二寄存器地址信号Addr[0]从四个窄寄存器中选通两个窄寄存器进行组合配置,以得到第二寄存器。所述第一电平信号和所述第二电平信号中的一者为高电平信号,另一者为低电平信号,具体可以根据实际需要设定。
本实施例的寄存器电路,通过设置多个选通控制单元,每个选通控制单元对应一个窄寄存器,可以根据位宽控制信号的电平信号,根据第一寄存器地址信号和第二寄存器地址信号选择性地将其对应的窄寄存器选通,以实现寄存器位宽的灵活配置。
需要说明的是,对于三种以上位宽的寄存器进行复用时,解码单元除了如图6所示包括四个选通控制单元以外,还要根据实际需要设计其他数量的选通控制单元,以及不同数量的位宽控制信号和寄存器地址信号。本实施例对此并不限制,凡是利用本发明实施例中借助位宽控制信号实现自由组合以获得不同位宽寄存器的情况,皆在本发明的保护范围之内。
示例性的,如图6所示,所述选通控制单元包括输入单元150、选择单元160和输出单元170,其中,所述输入单元150的输入端选择性地与所述第一寄存器地址信号Addr[1]和所述第二寄存器地址信号Addr[0]相连。所述选择单元160的第一输入端选择性地与所述输入单元150的输出端以及所述第二寄存器地址信号Addr[0]相连,所述选择单元160的第二输入端与所述位宽控制信号Tc相连。所述输出单元170的第一输入端选择性地与所述输入单元150的输出端和所述第一寄存器地址信号Addr[1]相连,所述输出单元170的第二输入端与所述选择单元160的输出端相连,所述输出单元170的输出端与对应的所述窄寄存器相连。
作为一个具体示例,所述输入单元150采用非门,所述选择单元160采用或门,所述输出单元170采用与门。当然,除此以外,本领域技术人员还可以根据实际需要,设计其他一些电路实现选通控制功能。
示例性的,如图6所示,所述第一选通控制单元110包括第一非门F1、第二非门F2、第一或门H1和第一与门Y1。所述第二选通控制单元120包括第三非门F3、第二或门H2和第二与门Y2。所述第三选通控制单元130包括第四非门F4、第三或门H3和第三与门Y3。所述第四选通控制单元140包括第四或门H4和第四与门Y4。
具体地,如图6所示,所述第一非门F1的输入端与所述第一寄存器地址信号Addr[1]相连,所述第一非门F1的输出端与所述第一与门Y1的第一输入端相连,所述第二非门F2的输入端与所述第二寄存器地址信号Addr[0]相连,所述第二非门F2的输出端与所述第一或门H1的第一输入端相连,所述第一或门H1的第二输入端与所述位宽控制信号Tc相连,所述第一或门H1的输出端与所述第一与门Y1的第二输入端相连,所述第一与门Y1的输出端与窄寄存器210相连。
所述第三非门F3的输入端与所述第一寄存器地址信号Addr[1]相连,所述第三非门F3的输出端与所述第二与门Y2的第一输入端相连,所述第二或门H2的第一输入端与所述第二寄存器地址信号Addr[0]相连,所述第二或门H2的第二输入端与所述位宽控制信号Tc相连,所述第二或门H2的输出端与所述第二与门Y2的第二输入端相连,所述第二与门Y2的输出端与窄寄存器220相连。
所述第四非门F4的输入端与所述第二寄存器地址信号Addr[0]相连,所述第四非门F4的输出端与所述第三或门H3的第一输入端相连,所述第三或门H3的第二输入端与所述位宽控制信号Tc相连,所述第三或门H3的输出端与所述第三与门Y3的第二输入端相连,所述第三与门Y3的第一输入端与所述第一寄存器地址信号Addr[1]相连,所述第三与门Y3的输出端与窄寄存器230相连。
所述第四或门H4的第一输入端与所述第二寄存器地址信号Addr[0]相连,所述第四或门H4的第二输入端与所述位宽控制信号端Tc相连,所述第四或门H4的输出端与所述第四与门Y4的第二输入端相连,所述第四与门Y4的第一输入端与所述第一寄存器地址信号Addr[1]相连,所述第四与门Y4的输出端与窄寄存器240相连。
如图6所示,在寄存器作为8bit寄存器使用时,此时,位宽控制信号Tc为低电平信号0,在第一寄存器地址信号Addr[1]与第二寄存器地址信号Addr[0]的电平信号满足[0,0]时,第一非门F1的输出端将高电平信号输入至第一与门Y1的第一输入端,第二非门F2的输出端将高电平信号输入至第一或门H1,第一或门H1将高电平信号输入至第一与门Y1的第二输出端,此时选通窄寄存器210,由于第二与门Y2、第三与门Y3和第四与门Y4的两个输入端中均存在低电平信号,因此,其余窄寄存器均处于关断状态。
在第一寄存器地址信号Addr[1]和第二寄存器地址信号Addr[0]的电平信号满足[0,1]时,第三非门F3的输出端将高电平信号输入至第二与门Y2的第一输入端,第二或门H2将高电平信号输入至第二与门Y2的第二输出端,此时选中窄寄存器220,由于第一与门Y1、第三与门Y3和第四与门Y4的两个输入端均存在一个低电平信号,因此其余窄寄存器均处于关断状态。
依次类推,在第一寄存器地址信号Addr[1]和第二寄存器地址信号Addr[0]的电平信号满足[1,0]时,选通窄寄存器230。在第一寄存器地址信号Addr[1]和第二寄存器地址信号Addr[0]的电平信号满足[1,1]时,选通窄寄存器240。
反之,在寄存器作为16bit寄存器使用时,此时位宽控制信号Tc的电平信号为高电平信号1,在第一寄存器地址信号Addr[1]和第二寄存器地址信号Addr[0]的电平信号满足[0,b]时,其中b可以取0或1,第一非门F1的输出端将高电平信号输入至第一与门Y1的第一输入端,第二非门F2的输出端将高电平信号输入至第一或门H1,第一或门H1将高电平信号输入至第一与门Y1的第二输出端,第三非门F3将高电平信号传输至第二与门Y2的第一输入端,由于第二或门H2的第二输入端直接接收位宽控制信号Tc的高电平信号,因此,其会忽略或屏蔽掉第二寄存器地址信号Addr[0]的影响,该第二或门H2将输出的高电平信号传递至第二与门Y2的第二输入端,从而可以同时选中窄寄存器210和窄寄存器220,得到位宽为16bit的宽寄存器。
依次类推,在第一寄存器地址信号Addr[1]和第二寄存器地址信号Addr[0]的电平信号满足[1,b],b可以取0或1,第三或门H3和第四或门H4会屏蔽第二寄存器地址信号Addr[0]的影响,从而选通窄寄存器230和窄寄存器240作为位宽为16bit的宽寄存器。
本发明的另一方面,如图1和图6所示,提供一种解码电路,该解码电路包括指令解码单元ID和寄存器电路REG_var_W,寄存器电路REG_var_W具体结构以及原理可以参考前文相关记载,在此不作赘述。指令解码单元ID用于接收并解码指令Instr,并根据该指令Instr生成位宽控制信号Tc[K-1:0]和寄存器地址信号Addr[L-1:0]。
本实施例的解码电路,包括前文记载的寄存器电路,可以根据接收的指令,解析出位宽控制信号和寄存器地址信号,并根据位宽控制信号和寄存器地址信号从寄存器区域中灵活组合匹配出相应位宽的寄存器。
示例性性的,所述基于所述指令生成位宽控制信号,包括基于所述指令中包括的待处理的数据的位宽信息生成所述位宽控制信号,例如,待处理的数据的位宽信息为8位,则位宽控制信号也应当是表征8位寄存器的一个控制信号。
本发明的另一方面,如图7所示,提供一种配置寄存器位宽的方法S100,该方法可以采用前文记载的寄存器电路,具体可以参考前文相关记载,在此不作赘述。该配置寄存器位宽的方法S100,具体包括:
S110、接收寄存器地址信号以及位宽控制信号。
S120、根据所述位宽控制信号和所述寄存器地址信号,在可配置位宽的寄存器区域中选择相应位宽的寄存器。
本实施例的配置寄存器位宽的方法,可以极度灵活的组合配置寄存器,满足不同位宽的要求,由于寄存器可复用,从而节省了电路成本,由于窄寄存器的个数多余宽寄存器的个数,所以在程序中,能够更加灵活和高效的发挥处理器性能,可以将多个窄寄存器组成一组,作为一个向量寄存器使用,向量寄存器中元素的个数即此组窄寄存器的个数。
在可选地一些实施方式中,所述位宽控制信号基于待执行指令中的至少一个位宽控制位生成,所述位宽控制位与所述指令处理的数据的位宽相对应。所述寄存器地址信号基于所述待执行指令中的寄存器信息生成。
在可选地一些实施方式中,所述寄存器地址信号为两个,所述位宽控制信号为一个,所述寄存器区域包括多个窄寄存器,所述根据所述位宽控制信号和所述寄存器地址信号,在可配置位宽的寄存器区域中选择相应位宽的寄存器,包括:
在所述位宽控制信号为第一电平信号时,根据两个所述寄存器地址信号从所述多个窄寄存器中单独选通一个所述窄寄存器进行配置,以得到第一寄存器;以及,
在所述位宽控制信号为第二电平信号时,根据两个所述寄存器地址信号选通至少两个所述窄寄存器进行组合配置,以得到第二寄存器;
所述第一电平信号和所述第二电平信号中的一者为高电平信号,另一者为低电平信号。
本发明的另一方面,提供一种芯片,包括前文记载的所述的寄存器电路。
本实施例的芯片,具有前文记载的寄存器电路,可以极度灵活的组合配置寄存器,满足不同位宽的要求,由于寄存器可复用,从而节省了电路成本,由于窄寄存器的个数多余宽寄存器的个数,所以在程序中,能够更加灵活和高效的发挥处理器性能,可以将多个窄寄存器组成一组,作为一个向量寄存器使用,向量寄存器中元素的个数即此组窄寄存器的个数。
本发明的另一个方面,提供一种电子设备,包括:
一个或多个处理器;
一个存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现根据前文记载的方法。
本发明的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时能实现根据前文记载的所述的方法。
其中,计算机可读介质可以是本发明的装置、设备、系统中所包含的,也可以是单独存在。
其中,计算机可读存储介质可是任何包含或存储程序的有形介质,其可以是电、磁、光、电磁、红外线、半导体的系统、装置、设备,更具体的例子包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、光纤、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或它们任意合适的组合。
其中,计算机可读存储介质也可包括在基带中或作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码,其具体的例子包括但不限于电磁信号、光信号,或它们任意合适的组合。
本发明的另一个方面,提供一种计算机程序,所述计算机程序被处理器执行时能实现根据前文记载的所述的方法。
可以理解的是,计算机程序可以存储于计算机存储介质中,如前文记载的随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)等等。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (10)
1.一种可配置位宽的寄存器电路,其特征在于,包括:
可配置位宽的寄存器区域;
解码单元,用于根据接收到的位宽控制信号和寄存器地址信号在所述寄存器区域中选择相应位宽的寄存器。
2.根据权利要求1所述的寄存器电路,其特征在于,所述位宽控制信号基于待执行指令中的至少一个位宽控制位生成,所述位宽控制位与所述待执行指令处理的数据的位宽相对应;
所述寄存器地址信号基于所述待执行指令中的寄存器信息生成。
3.根据权利要求1或2所述的寄存器电路,其特征在于,
所述寄存器区域包括多个窄寄存器;
所述解码单元包括多个选通控制单元,所述多个选通控制单元分别对应所述多个窄寄存器。
4.根据权利要求3所述的寄存器电路,其特征在于,每个所述选通控制单元均用于接收至少两个寄存器地址信号和至少一个位宽控制信号,并基于所述至少两个寄存器地址信号和所述至少一个位宽控制信号从所述寄存器区域中选择所述相应位宽的寄存器。
5.根据权利要求4所述的寄存器电路,其特征在于,所述寄存器地址信号为两个,所述位宽控制信号为一个;
在所述位宽控制信号为第一电平信号时,所述多个选通控制单元根据两个所述寄存器地址信号从所述多个窄寄存器中单独选通一个所述窄寄存器进行配置,以得到第一寄存器;以及,
在所述位宽控制信号为第二电平信号时,所述多个选通控制单元根据两个所述寄存器地址信号从所述多个窄寄存器中选通至少两个所述窄寄存器进行组合配置,以得到第二寄存器;
所述第一电平信号和所述第二电平信号中的一者为高电平信号,另一者为低电平信号。
6.根据权利要求3所述的寄存器电路,其特征在于,所述多个窄寄存器形成一组向量寄存器,所述向量寄存器中元素的个数为所述多个窄寄存器的个数。
7.一种解码电路,其特征在于,包括:
指令解码单元,用于接收并解码指令,基于所述指令生成位宽控制信号和寄存器地址信号;
如权利要求1至6任一项所述的寄存器电路,用于基于所述位宽控制信号和所述寄存器地址信号在所述寄存器区域中选择相应位宽的寄存器。
8.一种配置寄存器位宽的方法,其特征在于,包括:
接收寄存器地址信号以及位宽控制信号;
根据所述位宽控制信号和所述寄存器地址信号,在可配置位宽的寄存器区域中选择相应位宽的寄存器。
9.一种芯片,其特征在于,包括权利要求1至6任一项所述的寄存器电路;或,
包括权利要求7所述的解码电路。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现根据权利要求8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010447247.3A CN113721979A (zh) | 2020-05-25 | 2020-05-25 | 可配置位宽的寄存器电路及方法、解码电路和芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010447247.3A CN113721979A (zh) | 2020-05-25 | 2020-05-25 | 可配置位宽的寄存器电路及方法、解码电路和芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113721979A true CN113721979A (zh) | 2021-11-30 |
Family
ID=78671478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010447247.3A Pending CN113721979A (zh) | 2020-05-25 | 2020-05-25 | 可配置位宽的寄存器电路及方法、解码电路和芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113721979A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0072373A2 (en) * | 1981-08-19 | 1983-02-23 | International Business Machines Corporation | Improved microprocessor |
CN1501292A (zh) * | 2002-09-11 | 2004-06-02 | �����ɷ� | 寄存器文件和设计寄存器文件的方法 |
CN101930355A (zh) * | 2010-08-24 | 2010-12-29 | 中国航天科技集团公司第九研究院第七七一研究所 | 实现寄存器文件分组编址、读写控制方法的寄存器电路 |
CN108304217A (zh) * | 2018-03-09 | 2018-07-20 | 中国科学院计算技术研究所 | 将长位宽操作数指令转换为短位宽操作数指令的方法 |
CN109992240A (zh) * | 2017-12-29 | 2019-07-09 | 英特尔公司 | 用于多加载和多存储向量指令的方法和装置 |
CN110300957A (zh) * | 2017-02-23 | 2019-10-01 | Arm有限公司 | 数据处理装置中的加宽算数 |
-
2020
- 2020-05-25 CN CN202010447247.3A patent/CN113721979A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0072373A2 (en) * | 1981-08-19 | 1983-02-23 | International Business Machines Corporation | Improved microprocessor |
CN1501292A (zh) * | 2002-09-11 | 2004-06-02 | �����ɷ� | 寄存器文件和设计寄存器文件的方法 |
CN101930355A (zh) * | 2010-08-24 | 2010-12-29 | 中国航天科技集团公司第九研究院第七七一研究所 | 实现寄存器文件分组编址、读写控制方法的寄存器电路 |
CN110300957A (zh) * | 2017-02-23 | 2019-10-01 | Arm有限公司 | 数据处理装置中的加宽算数 |
CN109992240A (zh) * | 2017-12-29 | 2019-07-09 | 英特尔公司 | 用于多加载和多存储向量指令的方法和装置 |
CN108304217A (zh) * | 2018-03-09 | 2018-07-20 | 中国科学院计算技术研究所 | 将长位宽操作数指令转换为短位宽操作数指令的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101050554B1 (ko) | 개발 인터페이스에 대한 적용성을 가진 데이터 처리 시스템내의 마스킹 | |
US6611220B1 (en) | Architecture for decimation algorithm | |
JP6154824B2 (ja) | ステートマシンラチスにおけるブール型論理 | |
KR101551045B1 (ko) | 요소 이용을 위한 상태 그룹화 | |
KR20110012804A (ko) | 데이터 마스크 시스템 및 데이터 마스크 방법 | |
JP2549601B2 (ja) | レジスタ制御回路 | |
CN107851022B (zh) | 向量长度查询指令 | |
WO2019023910A1 (zh) | 数据处理方法和设备 | |
CN113721979A (zh) | 可配置位宽的寄存器电路及方法、解码电路和芯片 | |
KR101220423B1 (ko) | 명령어의 즉시값 지정 방법 | |
JP2007207075A (ja) | Cpu、集積回路装置、マイクロコンピュータ、電子機器、及びcpuの制御方法 | |
JP3867804B2 (ja) | 集積回路装置 | |
US6081869A (en) | Bit-field peripheral | |
JPH03271829A (ja) | 情報処理装置 | |
JP2008123410A (ja) | デジタル信号処理装置 | |
JP2010097356A (ja) | 演算処理装置、それを搭載した通信装置および放送受信装置、ならびに情報処理装置 | |
KR100207651B1 (ko) | 메모리 엑세스 장치 | |
JP2007026091A (ja) | 割込み制御回路およびその制御方法 | |
CN114115805A (zh) | 乘累加运算装置和乘累加运算方法 | |
JP5263497B2 (ja) | 信号処理プロセッサ及び半導体装置 | |
JP5263498B2 (ja) | 信号処理プロセッサ及び半導体装置 | |
KR100471137B1 (ko) | 단축된 레지스터 클리어 인스트럭션 실행 사이클을 갖는 데이터처리 장치 | |
KR20150062877A (ko) | 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치 | |
JP2002140192A (ja) | 演算処理装置 | |
JP2004206326A (ja) | 演算処理回路及びそれを用いた半導体装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Country or region after: China Address after: Room 201, No. 6 Fengtong Heng Street, Huangpu District, Guangzhou City, Guangdong Province Applicant after: Guangzhou Ximu Semiconductor Technology Co.,Ltd. Address before: Building 202-24, No. 6, Courtyard 1, Gaolizhang Road, Haidian District, Beijing Applicant before: Beijing SIMM Computing Technology Co.,Ltd. Country or region before: China |
|
CB02 | Change of applicant information |