买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:芯来科技(武汉)有限公司
摘要:本发明公开了一种用于低功耗内核的乘除法器,包括:译码器,译码器用于将乘法指令译码成乘法操作、将除法指令译码成除法操作,还包括:运算逻辑电路,运算逻辑电路用于接收译码器传输来的乘法操作和除法操作,运算逻辑电路还用于接收外部传输来的操作数并根据指令计算得出乘法和或除法的运算结果,运算逻辑电路包括:第一寄存器、第二寄存器和数据运算选择单元,第一寄存器与数据运算选择单元连接,第二寄存器与数据运算选择单元连接,数据运算选择单元用于对操作数进行运算,通过复用加法器和寄存器,使用同一套硬件资源完成乘法操作和除法操作,以达到使用同一套硬件资源完成乘法操作和除法操作,提高运算性能,节约面积减小功耗的目的。
主权项:1.一种用于低功耗内核的乘除法器,所述乘除法器包括:译码器,所述译码器用于将乘法指令译码成乘法操作、将除法指令译码成除法操作,其特征在于,所述乘除法器还包括:运算逻辑电路,所述运算逻辑电路用于接收译码器传输来的乘法操作和除法操作,所述运算逻辑电路还用于接收外部传输来的操作数并根据指令计算得出乘法和或除法的运算结果,所述运算逻辑电路包括:第一寄存器、第二寄存器和数据运算选择单元,所述第一寄存器与数据运算选择单元连接,所述第二寄存器与数据运算选择单元连接,所述数据运算选择单元用于对操作数进行运算,其中,所述第一寄存器,设置有三个输出端,所述第一寄存器的三个输出端分别与算法电路、第一数据选择器和加法器连接,所述第一寄存器上与第一数据选择器连接的输出端还与第三数据选择器连接,用于存储被除数、乘数、积、商和余数,所述第一寄存器的低三位存储的数值用于判断符号;所述第二寄存器,设置有三个输出端,所述第二寄存器的三个输出端分别与算法电路、第一数据选择器和二输入异或门连接,所述第二寄存器与第一数据选择器连接的电路分为两路,其中一路上设置有非门,另一路直接与第一数据选择器连接,用于存储除数和被乘数,所述第二寄存器的最高位为符号位;所述数据运算选择单元包括:算法电路、非门、第一数据选择器、第二数据选择器、第三数据选择器、二输入异或门和加法器,其中,所述算法电路与加法器组成乘法运算电路,所述算法电路设置有两个输出端,所述算法电路的两个输出端分别与第二数据选择器和第三数据选择器连接,所述算法电路中的算法为基4布思算法,所述非门、第一数据选择器和加法器组成除法运算电路,所述第二数据选择器和第三数据选择器用于实现加法器的复用,所述第一数据选择器的输出端与第二数据选择器连接;所述第二数据选择器的输出端与加法器连接,所述第三数据选择器的输出端与加法器连接;所述二输入异或门的输出端与第一寄存器连接,所述加法器设置有两个输出端,所述加法器的两个输出端分别与第一寄存器和二输入异或门连接;所述加法器用于乘法运算和除法运算。
全文数据:用于低功耗内核的乘除法器技术领域本发明涉及低功耗处理器运算技术领域,具体涉及一种用于低功耗内核的乘除法器。背景技术乘法与除法是常用的基本运算。由于在实际应用中,乘法使用频率大大高于除法,以及考虑到硬件实现的复杂度与性价比,在处理器内核实现时,会实现乘法器而不实现除法器。因此,乘法多由硬件乘法器完成,而除法器多由软件库指令来模拟完成。但是一旦遇到除法运算,软件库指令来模拟完成除法运算,则需耗费数十至数百个指令周期,造成性能低下。而如果单独设计除法器则又会耗费面积且由于除法器使用频率不高而丧失性价比。发明内容为解决上述技术问题,本发明提出了一种用于低功耗内核的乘除法器,以达到使用同一套硬件资源完成乘法操作和除法操作,提高运算性能,节约面积减小功耗的目的。为达到上述目的,本发明的技术方案如下:一种用于低功耗内核的乘除法器,所述乘除法器包括:译码器,所述译码器用于将乘法指令译码成乘法操作、将除法指令译码成除法操作,所述乘除法器还包括:运算逻辑电路,所述运算逻辑电路用于接收译码器传输来的乘法操作和除法操作,所述运算逻辑电路还用于接收外部传输来的操作数并根据指令计算得出乘法和或除法的运算结果,所述运算逻辑电路包括:第一寄存器、第二寄存器和数据运算选择单元,所述第一寄存器与数据运算选择单元连接,所述第二寄存器与数据运算选择单元连接,所述数据运算选择单元用于对操作数进行运算。进一步地,所述所述第一寄存器用于存储被除数、乘数、积、商和余数,所述第二寄存器用于存储除数和被乘数。进一步地,所述数据运算选择单元包括:算法电路、非门、第一数据选择器、第二数据选择器、第三数据选择器、二输入异或门和加法器,所述算法电路与加法器组成乘法运算电路,所述非门、第一数据选择器和加法器组成除法运算电路,所述加法器用于乘法运算和除法运算,所述第二数据选择器和第三数据选择器用于实现加法器的复用。进一步地,所述第一寄存器设置有三个输出端,所述第一寄存器的三个输出端分别与算法电路、第一数据选择器和加法器连接,所述第一寄存器上与第一数据选择器连接的输出端还与第三数据选择器连接;所述第二寄存器设置有三个输出端,所述第二寄存器的三个输出端分别与算法电路、第一数据选择器和二输入异或门连接,所述第二寄存器与第一数据选择器连接的电路分为两路,其中一路上设置有非门,另一路直接与第一数据选择器连接;所述算法电路设置有两个输出端,所述算法电路的两个输出端分别与第二数据选择器和第三数据选择器连接;所述第一数据选择器的输出端与第二数据选择器连接;所述第二数据选择器的输出端与加法器连接,所述第三数据选择器的输出端与加法器连接;所述加法器设置有两个输出端,所述加法器的两个输出端分别与第一寄存器和二输入异或门连接;所述二输入异或门的输出端与第一寄存器连接。进一步地,所述算法电路中的算法为基4布思算法。进一步地,所述第一寄存器的低三位存储的数值用于判断符号。进一步地,所述第二寄存器的最高位为符号位。进一步地,对于对于多周期的乘法器:对于有符号整数乘法操作,使用基4booth编码产生部分积,然后使用迭代的方法,每个周期使用加法器对部分积进行累加,经过多个周期的迭代之后得到最终的乘积。对于无符号整数乘法操作,进行一位符号扩展后统一当做有符号进行运算。其中,对于多周期的除法器:对于有符号整数除法操作,使用常用的加减交替法,然后使用迭代的方法,每个周期使用加法器生成部分余数,经过多个周期的迭代之后得到最终商和余数。对于无符号整数除法操作,同样进行一位符号扩展后,统一当做有符号进行运算。通过对多周期乘法器和多周期除法器的实现进行比较可以发现,其结构非常类似,二者同样使用加法器作为主要的运算通路,使用一组寄存器保存部分积或者部分余数,因此二者可以进行资源复用,从而节省面积开销。由于二进制乘法与除法有很大的相似性,利用该相似性,通过复用运算单元与寄存器,设计出高效的多功能乘除法器。本发明具有如下优点:1.本发明通过复用加法器和寄存器,使用同一套硬件资源完成乘法操作和除法操作,节省了面积开销,节约了成本,提高了运算性能。2.本发明通过对乘法运算采用基4Radix-4的booth编码,减少了乘法器所需周期,提高了性能。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。图1为本发明实施例公开的用于低功耗内核的乘除法器结构示意图;图2为本发明实施例公开的运算逻辑电路结构示意图;图3为本发明实施例公开的乘法运算电路结构示意图;图4为本发明实施例公开的除法运算电路结构示意图;图中数字和字母所表示的相应部件名称:1、译码器;2、运算逻辑电路;3、第一寄存器;4、第二寄存器;5、数据运算选择单元;6、算法电路;7、非门;8、第一数据选择器;9、第二数据选择器;10、第三数据选择器;11、二输入异或门;12、加法器。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。本发明提供了一种用于低功耗内核的乘除法器,其工作原理是通过复用加法器和寄存器,使用同一套硬件资源完成乘法操作和除法操作,以达到使用同一套硬件资源完成乘法操作和除法操作,提高运算性能,节约面积减小功耗的目的。下面结合实施例和具体实施方式对本发明作进一步详细的说明。用于乘法操作的基4布思算法符号数如下:我们知道:以补码表示的二进制数据,扩展其最高位,并无影响。对于N位的补码数A与B,求D=A*B。乘数A位宽为N,若N为奇数,将A作符号扩展为A',使其位宽为偶数。设定:经过处理以后,乘数A'宽度为H,H为偶数且不得小于N。其中,En=-2A'[2n+1]+A'[2n]+A'[2n-1]0≤n≤H2-1,A'[-1]=0其值表如下所示:A’[2n+1]A’[2n]A’[2n-1]En000-0+0+0=0001-0+0+1=1010-0+1+0=1011-0+1+1=2100-2+0+0=-2101-2+0+1=-1110-2+1+0=-1111-2+1+1=-0则:可以看到:基4布思编码一次考虑了三位:本位、相邻高位、相邻低位;处理了两位,确定运算量0、1B、2B,形成H2项编码项、乘积项。对于2B的实现,只需要将B左移一位。因此,基4算法方便且快捷。加减交替法如下:对于N比特的补码除法,被除数用z表示为2N比特,除数用d表示为N比特,所得商用q表示为N比特,若所得商多于N比特,则为结果溢出。该法N比特除法需进行N次迭代,假设二进制数以定点小数表示整数除法过程与之无异,迭代原则为:如果某次迭代结果部分余数的符号与除数相同,则商1,且下一次迭代中减除数;如果部分余数的符号与除数相异,则商-1,且下一次迭代中加除数。迭代表达式如下:使用加减交替法需要注意如下三点:1商的数制转换:由于商的数制实际为{1,-1}数制,而非传统的{1,0}数制,因此如上述示例中所示,在最后一次迭代中,需要将{1,-1}数制的商-1由0表示转换成传统的{1,0}数制的商。其转换方法为:左移一位,最高位取反,最末位置1。2商的校正:采用加减交替法得到的商末位存在误差,因此还需要进行商的判断与矫正。3溢出判断:经转换方法转换得到的商有N+1比特,若第N+1比特与第N比特相异,则所得商溢出。如图1-图4所示,一种用于低功耗内核的乘除法器,所述乘除法器包括:译码器1,所述译码器1用于将乘法指令译码成乘法操作、将除法指令译码成除法操作,所述乘除法器还包括:运算逻辑电路2,所述运算逻辑电路2用于接收译码器1传输来的乘法操作和除法操作,所述运算逻辑电路2还用于接收外部传输来的操作数并根据指令计算得出乘法和或除法的运算结果,所述运算逻辑电路2包括:第一寄存器3、第二寄存器4和数据运算选择单元5,所述第一寄存器3与数据运算选择单元5连接,所述第二寄存器4与数据运算选择单元5连接,所述数据运算选择单元5用于对操作数进行运算。其中,乘除法指令共有8条,其中4条乘法指令经过或门,被译码成乘法操作;4条除法指令,经过或门,被译码成除法操作,在不同的电路设计中,指令的数量可以调整。其中,所述所述第一寄存器3用于存储被除数、乘数、积、商和余数,所述第二寄存器4用于存储除数和被乘数。其中,所述数据运算选择单元5包括:算法电路6、非门7、第一数据选择器8、第二数据选择器9、第三数据选择器10、二输入异或门11和加法器12,所述算法电路6与加法器12组成乘法运算电路,所述非门7、第一数据选择器8和加法器12组成除法运算电路,所述加法器12用于乘法运算和除法运算乘法运算和除法运算都可以处理成多步加法运算,所述第二数据选择器9和第三数据选择器10用于实现加法器12的复用。其中,所述第一寄存器3设置有三个输出端,所述第一寄存器3的三个输出端分别与算法电路6、第一数据选择器8和加法器12连接,所述第一寄存器3上与第一数据选择器8连接的输出端还与第三数据选择器10连接;所述第二寄存器4设置有三个输出端,所述第二寄存器4的三个输出端分别与算法电路6、第一数据选择器8和二输入异或门11连接,所述第二寄存器4与第一数据选择器8连接的电路分为两路,其中一路上设置有非门7,另一路直接与第一数据选择器8连接;上述寄存器的输入即为写入寄存器,寄存器的输出即为读出寄存器。所述算法电路6设置有两个输出端,所述算法电路6的两个输出端分别与第二数据选择器9和第三数据选择器10连接;所述第一数据选择器8的输出端与第二数据选择器9连接;所述第二数据选择器9的输出端与加法器12连接,所述第三数据选择器10的输出端与加法器12连接;所述加法器12设置有两个输出端,所述加法器12的两个输出端分别与第一寄存器3和二输入异或门11连接;所述二输入异或门11的输出端与第一寄存器3连接。其中,所述算法电路6中的算法为基4布思算法。其中,所述第一寄存器3的低三位存储的数值用于判断符号。其中,所述第二寄存器4的最高位为符号位。本发明实现了32比特的乘法和除法。其中,二进制乘法分为无符号数乘法与有符号数乘法,对于无符号数乘法,可对其最高位进行一位符号扩展后按照有符号数处理,同样,二进制除法也分为符号数除法与有符号数除法,对于无符号数除法进行一位符号扩展后统一当做有符号数进行运算。如图2所示为本发明实例的运算逻辑电路结构示意图,电路可以同时实现乘法和除法操作。该乘除法器操作数为32bits。支持有符号数与无符号数操作,为了实现二者统一兼容,设置一输入端指示操作数是否为有符号数,若为无符号数则对其进行一位0扩展,若为有符号数则将其符号扩展为33bits,故事实上进行33bits操作。乘除法器根据输入的指令,通过一个译码电路,译码出该进行乘法操作还是除法操作,并且使用统一的状态机控制多周期乘法和除法操作,该状态机有5个状态:状态0:判断操作为乘法还是除法;状态1:执行命令;状态2:判断是否需要进行校正;状态3:进行商的校正;状态4:进行余数的校正。初始状态为状态0,花费1个周期,判断操作类型,然后进入状态1。状态1为执行命令,若为除法操作,执行完操作之后进入状态2,否则,跳回到状态1,继续进行下一次的操作数类型判断。若进入到状态2,判断是否需要校正,若不需要校正,则跳转到状态0,继续进行下一次的操作类型判断,否则进入状态3,进行商的校正,继而进入状态4,进行余数的校正。状态4执行完后,回到状态0,继续进行下一次的操作数类型判断。在状态1执行操作时,乘法需要17迭代个时钟周期,除法需要33个迭代时钟周期。设置有一个迭代周期计数信号,当计数使能时,每迭代一个周期,计数信号加1,当迭代到最后一个迭代时钟周期时,即乘法运算迭代到第17个时钟周期,除法运算迭代到第33个时钟周期,触发状态1退出使能信号,继而退出状态1。二进制乘法运算和除法运算具有很高的相似性,都需要用到加法器进行迭代,利用二进制乘法运算和除法运算的这一相似性,本发明使乘法器和除法器电路复用一个加法器。乘法运算采用基4的booth编码,每个迭代周期进行加法或是减法,由加法减法指示信号来判定。除法运算采用传统的加减交替法,跟乘法运算类似,也是由加法减法指示信号来判定每个迭代周期进行加法或是减法。由于乘除法器与其他子单元共用数据通路,我们将乘法运算和除法运算的加法减法指示信号通过一个并行选择器发送给运算数据通路进行运算。如图2所示为本发明实例的乘除法器电路图,对于乘法操作,乘数寄存器每个迭代周期右移2位,判断寄存器低3位的值,如表一所示:booth_code值0000001101010112100-2101-1110-1111-0表一当booth_code[2]=1时,减法指示信号为1,即进行减法操作,否则,加法指示信号为1,即进行加法操作。通过图2中的Booth4电路,第二数据选择器将选择“被乘数*值”的值送给加法器,其中,booth_code对应的值为-2和2,直接通过将操作数左移1位完成。经过加法器相加后产生部分积,再送回到乘数寄存器,进行下一次的迭代。对于除法操作,每次迭代会产生一个商,若商1,则减法指示信号为1,即进行减法操作,否则,加法指示信号为1,即进行加法操作。如图2所示第一数据选择器处,通过加法减法指示信号,第一数据选择器判断输出除数或者除数取反的值。此时,第二数据选择器选择除法通路,经过加法器产生部分余数,再送回到部分余数寄存器,进行下一次的迭代。进入到状态2,判断是否需要进行商和余数的校正,此时,乘法运算已经完成。在状态2,若余数等于除数,或余数等于除数的相反数,或余数为零时,部分余数和被除数的符号位异号,则需要进行商和余数的校正,进入到状态3,否则判断为除法运算已得到正确值,除法运算结束,直接跳回到状态0。在状态3和状态4,分别进行商的校正和余数的校正,商的校正和余数的校正都需要用到加法器来完成,将操作数和操作数类型发送给共享的数据通路分别计算1个周期来完成商和余数的校正。以上所述的仅是本发明所公开的一种用于低功耗内核的乘除法器的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
权利要求:1.一种用于低功耗内核的乘除法器,所述乘除法器包括:译码器,所述译码器用于将乘法指令译码成乘法操作、将除法指令译码成除法操作,其特征在于,所述乘除法器还包括:运算逻辑电路,所述运算逻辑电路用于接收译码器传输来的乘法操作和除法操作,所述运算逻辑电路还用于接收外部传输来的操作数并根据指令计算得出乘法和或除法的运算结果,所述运算逻辑电路包括:第一寄存器、第二寄存器和数据运算选择单元,所述第一寄存器与数据运算选择单元连接,所述第二寄存器与数据运算选择单元连接,所述数据运算选择单元用于对操作数进行运算。2.根据权利要求1所述的用于低功耗内核的乘除法器,其特征在于,所述第一寄存器用于存储被除数、乘数、积、商和余数,所述第二寄存器用于存储除数和被乘数。3.根据权利要求1或2所述的用于低功耗内核的乘除法器,其特征在于,所述数据运算选择单元包括:算法电路、非门、第一数据选择器、第二数据选择器、第三数据选择器、二输入异或门和加法器,所述算法电路与加法器组成乘法运算电路,所述非门、第一数据选择器和加法器组成除法运算电路,所述加法器用于乘法运算和除法运算,所述第二数据选择器和第三数据选择器用于实现加法器的复用。4.根据权利要求3所述的用于低功耗内核的乘除法器,其特征在于,所述第一寄存器设置有三个输出端,所述第一寄存器的三个输出端分别与算法电路、第一数据选择器和加法器连接,所述第一寄存器上与第一数据选择器连接的输出端还与第三数据选择器连接;所述第二寄存器设置有三个输出端,所述第二寄存器的三个输出端分别与算法电路、第一数据选择器和二输入异或门连接,所述第二寄存器与第一数据选择器连接的电路分为两路,其中一路上设置有非门,另一路直接与第一数据选择器连接;所述算法电路设置有两个输出端,所述算法电路的两个输出端分别与第二数据选择器和第三数据选择器连接;所述第一数据选择器的输出端与第二数据选择器连接;所述第二数据选择器的输出端与加法器连接,所述第三数据选择器的输出端与加法器连接;所述加法器设置有两个输出端,所述加法器的两个输出端分别与第一寄存器和二输入异或门连接;所述二输入异或门的输出端与第一寄存器连接。5.根据权利要求4所述的用于低功耗内核的乘除法器,其特征在于,所述算法电路中的算法为基4布思算法。6.根据权利要求4所述的用于低功耗内核的乘除法器,其特征在于,所述第一寄存器的低三位存储的数值用于判断符号。7.根据权利要求4所述的用于低功耗内核的乘除法器,其特征在于,所述第二寄存器的最高位为符号位。
百度查询: 芯来科技(武汉)有限公司 用于低功耗内核的乘除法器
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。