分段式除法器、分段式除法运算方法、以及电子设备与流程

文档序号:13861484阅读:283来源:国知局
本公开涉及数字信号处理
技术领域
,尤其涉及一种分段式除法器、分段式除法运算方法、以及电子设备。
背景技术
:除法器是算术运算电路中最常用的电路之一,相比于减法运算和乘法运算,除法运算的实现难度更大。技术实现要素:本公开的目的在于提供一种分段式除法器、分段式除法运算方法、以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。对于除法运算而言,操作数的位宽将会直接影响到除法器电路系统所支持的最高频率。发明人发现,在操作数的位宽较小例如小于64bit的情况下,操作数位宽的增大对除法器电路所支持的最高频率的影响较小,基本上不会对除法器电路系统的频率造成明显的影响;但在操作数的位宽较大例如大于64bit甚至超过120bit的情况下,操作数位宽的增大将会严重影响到除法器电路系统所支持的最高频率。例如,基于alteracycloneivfpga(field-programmablegatearray,现场可编程门阵列)芯片,对于延迟较小的基于移位、比较、减法运算算法的除法器而言,32bit的位宽所支持频率可达160mhz,而基于相同算法、相同结构的除法器电路,当其操作数的位宽增加至120bit时,其所支持的频率则会降低至80mhz以下。根据本公开的一个方面,提供一种分段式除法器,包括:第一移位寄存模块,包括多个级联的第一寄存器,所述第一移位寄存模块用于逐位接收被除数数据;第二移位寄存模块,包括多个级联的第二寄存器,所述第二移位寄存模块用于接收并存储除数数据;计算模块,包括多个级联的计算单元,所述计算单元用于根据级联顺序对所述第一寄存器中的寄存数据和所述第二寄存器中的寄存数据进行比较,以根据比较结果进行预设操作并产生运算结果;第三移位寄存模块,包括多个级联的第三寄存器,所述第三移位寄存模块用于逐位接收并寄存所述运算结果;移位控制模块,用于在每次产生所述运算结果之后控制所述第一移位寄存模块和所述第三移位寄存模块进行移位操作;计数模块,用于在每次移位操作之后对所述移位操作的次数进行累加,并在累加结果等于目标位数时发送一输出信号至输出模块以结束运算,而在所述累加结果不等于所述目标位数时发送一计算信号至所述计算模块以继续运算;所述输出模块,用于在接收到所述输出信号时输出目标结果;其中,所述目标结果包括商数,所述商数为接收到所述输出信号时所述第三移位寄存模块中寄存的数据。本公开的一种示例性实施例中,所述目标位数等于被除数数据的位数时,所述目标结果还包括余数,所述余数为接收到所述输出信号时所述第一移位寄存模块中寄存的数据。本公开的一种示例性实施例中,所述第一寄存器、所述第二寄存器、以及所述计算单元的数量相同,且所述第一寄存器和所述第二寄存器的位宽相同。本公开的一种示例性实施例中,所述第二寄存器的数量为n,其中,为向上取整函数。本公开的一种示例性实施例中,所述计算单元包括:比较子单元,用于根据级联顺序依次对每一级所述第一寄存器中的寄存数据和所述第二寄存器中的寄存数据进行比较;减法子单元,用于在所述第一移位寄存模块中的寄存数据大于所述第二移位寄存模块中的寄存数据时,针对所有第一寄存器中的寄存数据和所有第二寄存器中的寄存数据进行减法运算,并以所述减法运算的差值结果替代所述第一寄存器中的寄存数据,同时在所述第三移位寄存模块的最低位加1以作为所述运算结果;其中,在所述第一移位寄存模块中的寄存数据小于所述第二移位寄存模块中的寄存数据时,在所述第三移位寄存模块的最低位加0以作为所述运算结果。本公开的一种示例性实施例中,所述根据级联顺序对所述第一寄存器中的寄存数据和所述第二寄存器中的寄存数据进行比较包括:针对非最低级的所述第一寄存器和所述第二寄存器,在所述第一寄存器中的寄存数据等于所述第二寄存器中的寄存数据时,由下一级所述比较子单元对下一级所述第一寄存器中的寄存数据和下一级所述第二寄存器中的寄存数据进行比较。本公开的一种示例性实施例中,所述第一移位寄存模块还包括:缓存单元,连接在所述第一寄存器的前端,用于接收所述被除数数据,并在计算过程中逐位向所述第一寄存器输出数据;其中,所述第一寄存器在接收所述缓存单元的数据时,最高级的所述第一寄存器剔除最高位数据,所述缓存单元在向所述第一寄存器输出数据之后最低位补零。本公开的一种示例性实施例中,所述缓存单元包括多个级联的缓存寄存器,所有缓存寄存器的位数之和等于所述被除数数据的位数。本公开的一种示例性实施例中,所述移位控制模块用于控制所述缓存寄存器、所述第一寄存器、以及所述第三寄存器进行左移操作。本公开的一种示例性实施例中,所述分段式除法器还包括连接所述输出模块的符号控制模块;其中,所述符号控制模块包括:第一符号单元,用于存储被除数的符号;第二符号单元,用于存储除数的符号;以及,符号输出单元,用于根据被除数的符号与除数的符号进行位异或运算,以得到商数的符号。本公开的一种示例性实施例中,所述分段式除法器还包括:使能模块,用于控制所述计算模块开始工作;结束模块,用于标记所述分段式除法器结束工作;复位模块,用于对所述分段式除法器的各个模块进行复位;以及,时钟模块,用于为所述分段式除法器提供时钟信号。根据本公开的一个方面,提供一种分段式除法运算方法,应用于上述的分段式除法器;所述分段式除法运算方法包括:利用计算模块根据级联顺序对第一寄存器中的寄存数据和第二寄存器中的寄存数据进行比较,以根据比较结果进行预设操作并产生运算结果;利用移位控制模块在每次产生所述运算结果之后控制所述第一移位寄存模块和所述第三移位寄存模块进行移位操作;利用计数模块在每次移位操作之后对所述移位操作的次数进行累加,并在累加结果等于目标位数时发送一输出信号至输出模块以结束运算,而在所述累加结果不等于所述目标位数时发送一计算信号至所述计算模块以继续运算;利用所述输出模块在接收到所述输出信号时输出目标结果;其中,所述目标结果包括商数,所述商数为接收到所述输出信号时所述第三移位寄存模块中寄存的数据。根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的分段式除法运算方法。本公开示例性实施方式所提供的分段式除法器以及分段式除法运算方法,采用分割操作数的方式将被除数、除数、以及商均进行分割,并分别采用级联结构的移位寄存器进行相应操作数的分段存储。这样一来,在运算过程中,根据级联顺序通过逐步移位、比较操作和减法操作等简单的运算操作即可实现大位宽操作数的除法运算功能,同时还能明显提升除法器电路所支持的最高频率。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示意性示出本公开示例性实施例中分段式除法器的运算架构示意图;图2示意性示出本公开示例性实施例中分段式除法器的顶层模块示意图;图3示意性示出本公开示例性实施例中分段式除法器的工作流程图;图4示意性示出本公开示例性实施例中分段式除法运算方法的流程图;图5示意性示出基于alteracycloneivfpga芯片采用三段式除法器与未采用分段式除法器的电路最高频率对比图;图6示意性示出基于xilinxkintex7芯片采用三段式除法器与未采用分段式除法器的电路最高频率对比图;图7示意性示出本公开示例性实施例中电子设备的模块示意图。具体实施方式现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施例使得本公开将更加全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免使本公开的各方面变得模糊。此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。附图中各层的厚度和形状不反映真实比例,仅是为了便于说明本公开的内容。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。本示例实施方式提供了一种分段式除法器,如图1所示,该分段式除法器可以包括:第一移位寄存模块,包括多个级联的第一寄存器100,所述第一移位寄存模块用于逐位接收被除数数据;第二移位寄存模块,包括多个级联的第二寄存器200,所述第二移位寄存模块用于接收并存储除数数据;计算模块,包括多个级联的计算单元300,所述计算单元300用于根据级联顺序对第一寄存器100中的寄存数据和第二寄存器200中的寄存数据进行比较,以根据比较结果进行预设操作并产生运算结果;第三移位寄存模块,包括多个级联的第三寄存器400,所述第三移位寄存模块用于逐位接收并寄存运算结果;移位控制模块,用于在每次产生运算结果之后控制第一移位寄存模块和第三移位寄存模块进行移位操作;计数模块500用于在每次移位操作之后对移位操作的次数进行累加,并在累加结果等于目标位数时发送一输出信号至输出模块以结束运算,而在累加结果不等于目标位数时发送一计算信号至计算模块以继续运算;输出模块,用于在接收到输出信号时输出目标结果;其中,所述目标结果包括商数,所述商数为接收到输出信号时第三移位寄存模块中级联的第三寄存器400中寄存的数据。需要说明的是:所述被除数数据和所述除数数据是指被除数和除数中略去符号即正号或负号之外的数据部分。本示例实施方式中,所述目标位数等于被除数数据的位数时,所述目标结果还可以包括余数,所述余数为接收到输出信号时第一移位寄存模块中级联的第一寄存器100中寄存的数据。本公开示例性实施方式所提供的分段式除法器,采用分割操作数的方式将被除数、除数、以及商均进行分割,并分别采用级联结构的移位寄存器进行相应操作数的分段存储。这样一来,在运算过程中,根据级联顺序通过逐步移位、比较操作和减法操作等简单的运算操作即可实现大位宽操作数的除法运算功能,同时还能明显提升除法器电路所支持的最高频率。本示例实施方式中,第一寄存器100、第二寄存器200、以及计算单元300的数量均相同,且第一寄存器100和第二寄存器200的位宽也相同,从而保证同位宽数据的运算。其中,第二寄存器200的数量n可以根据除数数据的位数以及第二寄存器200的位宽决定,即:这里的为向上取整函数。例如,除数数据的位数为12bit,第二寄存器200的位宽为4bit,则所需的第二寄存器200的数量即为3个;又如,除数数据的位数为14bit,第二寄存器200的位宽为4bit,则所需的第二寄存器200的数量仍为3个。考虑到除法器电路布局的复杂程度,本实施例优选将第一寄存器100和第二寄存器200的数量设置为二至四个,从而简化该除法器的电路结构。基于此,本实施例也可根据设定的寄存器数量来调节其位宽,以期获得最佳的寄存器位宽与数量的匹配。本示例实施方式中,所述分段式除法器还可以包括与输出模块相连的符号控制模块。所述符号控制模块可以包括用于存储被除数符号位的第一符号单元,用于存储除数符号位的第二符号单元,以及用于存储商数符号位的符号输出单元;其中,所述商数的符号可根据被除数的符号与除数的符号进行位异或运算而得到。下面结合附图对本示例实施方式所提供的分段式除法器进行详细的解释说明。参考图1所示,所述第一移位寄存模块用于逐位接收被除数数据是指,第一移位寄存模块在每个计算周期仅接收一位被除数数据的移位,且随着计算周期的增加,第一移位寄存模块接收的被除数数据的位数随之增加。也就是说,被除数数据并不是直接输入至第一移位寄存模块的,而是在整个运算过程中通过逐步移位实现其在第一移位寄存模块中的寄存的,例如162bit的被除数数据需要经过162次移位才能完全加载至第一移位寄存模块中。在此基础上,参考图1所示,所述第一移位寄存模块还可以包括连接在第一寄存器100前端的缓存单元,该缓存单元可用于接收被除数数据并在运算过程中逐位向第一寄存器100输出数据,以实现被除数数据的逐位传递。其中,第一寄存器100在接收该缓存单元的数据时,最高级的第一寄存器100会剔除最高位数据,而该缓存单元在向第一寄存器100输出数据之后会在最低位补零。本实施例中,所述缓存单元可以包括多个级联的缓存寄存器600,且每个缓存寄存器600的位宽与第一寄存器100的位宽相同,所有缓存寄存器600的位宽之和等于被除数数据的位数。需要说明的是,本实施例可将缓存寄存器600的数量设定为与第一寄存器100相同或者不同,例如缓存单元可以仅包括一个缓存寄存器600,且该缓存寄存器600的位宽等于被除数数据的位数。参考图1所示,所述第二移位寄存模块用于接收并存储除数数据是指,第二移位寄存模块在运算开始时就接收并存储了完整的除数数据,例如162bit的除数数据在整个运算过程中都存储在第二移位寄存模块中。参考图1所示,所述第三移位寄存模块用于逐位接收并寄存运算结果是指,由于被除数数据是逐位加载的,因此每次得到的运算结果仅为基于当前加载的被除数数据与除数数据而得到的运算结果,且该运算结果会在每次移位操作时与被除数数据同时进行移位。基于以上描述,所述移位控制模块可在每次产生运算结果之后控制第一移位寄存模块和第三移位寄存模块进行移位操作,具体可控制缓存寄存器600、第一寄存器100、以及第三寄存器400进行左移操作。其中,所述左移操作具体可以包括数据的左移(例如同一寄存器的内部数据向高位方向移位,或者在级联寄存器之间较低级寄存器的最高位数据向较高级寄存器的最低位移位),最高位的舍弃和最低位的补零。这样一来,在每次产生运算结果之后,被除数数据和运算结果都得以进位,以便于进行下一计算周期的除法运算。本示例实施方式中,所述输出模块用于在接收到输出信号时输出目标结果,所述目标结果可以包括商数,所述目标位数等于被除数数据的位数时,还可以进一步包括余数。其中,所述商数的位数可与被除数数据的位数和除数数据的位数相同,但由于最终的运算结果中可能同时包含有整数和小数,因此所述目标结果的实际位数不仅包括商数的整数位数,还包括商数的小数位数,故其实际位数大于被除数数据的位数和除数数据的位数,例如被除数数据和除数数据均为162bit,而目标位数大于被除数数据的位数,如180bit时,目标结果为180bit,其中整数部分为前162bit数据、小数部分为后18bit数据。本示例实施方式中,参考图1所示,所述计算模块包括多个级联的计算单元300,所述计算单元300可用于根据级联顺序对第一寄存器100中的寄存数据和第二寄存器200中的寄存数据进行比较,以根据比较结果进行预设操作并产生运算结果。由于第一寄存器100、第二寄存器200、以及计算单元300均为级联结构,且计算单元300会与同级的第一寄存器100和第二寄存器200相连,因此所述计算单元300会按照由最高级至最低级(即高位至低位)的顺序逐级对第一寄存器100中的寄存数据和第二寄存器200中的寄存数据进行比较,例如先由最高级的计算单元300对最高级的第一寄存器100中的寄存数据和第二寄存器200中的寄存数据进行比较,再根据比较结果指示下一级第一寄存器100中的寄存数据和第二寄存器200中的寄存的计算单元300对下一级的数据进行比较,以此类推。这里需要说明的是,在当前级计算单元300完成数据比较之后是否进入下一级计算单元300还需根据当前级的比较结果而定。在此基础上,根据当前级计算单元300对第一寄存器100中的寄存数据和第二寄存器200中的寄存数据的比较结果可指示下一步操作,该下一步操作可能是本级数据的减法操作、下一级数据的比较操作、或者不进行任何操作等;与此同时,根据该比较结果还可产生一当前运算结果即0或1。参考图1所示,所述计算单元300具体可以包括:比较子单元301,用于根据级联顺序对第一寄存器100中的寄存数据和第二寄存器200中的寄存数据进行比较以产生一比较结果;减法子单元302,用于在第一寄存器100中的寄存数据大于第二寄存器200中的寄存数据时针对所有第一寄存器100中的寄存数据和所有第二寄存器200中的寄存数据进行减法运算,并以减法运算的差值结果替代第一寄存器100中的寄存数据,同时在第三移位寄存模块的最低位加1以作为运算结果;其中,在第一寄存器100中的寄存数据小于第二寄存器200中的寄存数据时,在第三移位寄存模块的最低位加0以作为运算结果。基于此,根据级联顺序对第一寄存器100中的寄存数据和第二寄存器200中的寄存数据进行比较可以包括:针对非最低级的第一寄存器100和第二寄存器200,在第一寄存器100中的寄存数据等于第二寄存器200中的寄存数据时,由下一级的比较子单元301对下一级第一寄存器100中的寄存数据和下一级第二寄存器200中的寄存数据进行比较。图2示出了本示例实施方式所提供的分段式除法器的顶层模块示意图。参考图2所示,所述分段式除法器可以包括:多个被除数数据输入端口701(701-0、701-1和701-2),每个被除数数据输入端口可连接至对应的缓存寄存器600;多个除数数据输入端口702(702-0、702-1和702-2),每个除数数据输入端口可连接至对应的第二寄存器200;多个商数数据输出端口703(703-0、703-1和703-2),每个商数数据输出端口可连接至对应的第三寄存器400;被除数符号输入端口704-a,连接至存储被除数符号位的第一符号单元;除数符号输入端口704-b,连接至存储除数符号位的第二符号单元;商数输出端口704-c,连接至存储商数符号位的符号输出单元;使能信号端705,连接至使能模块,所述使能模块用于控制计算模块30开始工作;结束信号端706,连接至结束模块,所述结束模块用于标记分段式除法器结束工作;复位信号端707,连接至复位模块,所述复位模块用于对分段式除法器的各个模块进行复位;以及,时钟信号端708,连接至时钟模块,所述时钟模块用于为分段式除法器提供时钟信号。下面结合附图对所述分段式除法器的工作过程进行示例性说明。以图1所示的三段式除法器为例,第一移位寄存模块包括三个级联的第一寄存器100,第二移位寄存模块包括三个级联的第二寄存器200,第三移位寄存模块包括三个级联的第三寄存器400,计算模块包括三个级联的计算单元300且每个计算单元300均包括比较子单元301和减法子单元302。其中,以被除数为十进制的3017、除数为十进制的177为例,采用12bit位宽的操作数进行说明。表1示出了12bit位宽的被除数与除数的十进制数值和二进制数值。表112bit位宽操作数十进制数值二进制数值被除数数据3017101111001001除数数据177000010110001基于此,所述分段式除法器的工作过程如图3所示。在第一阶段,同步加载被除数数据和除数数据。即,在使能信号的控制下将被除数数据和除数数据分别同步加载至缓存寄存器600和第二寄存器200。表2示出了被除数数据和除数数据的加载结果。其中,缓存寄存器0代表第0级(即最低级)缓存寄存器,缓存寄存器1代表第1级(即中间级)缓存寄存器,缓存寄存器2代表第2级(即最高级)缓存寄存器;第二寄存器0代表第0级(即最低级)第二寄存器,第二寄存器1代表第1级(即中间级)第二寄存器,第二寄存器2代表第2级(即最高级)第二寄存器。表2在第二阶段,基于分段移位、比较操作和减法操作实现除法运算。其中,所述第二阶段可分为12步进行,每步均需要4个时钟周期完成。第1步,参考图3所示,首先在第1个时钟周期对缓存寄存器600、第一寄存器100和第三寄存器400进行同步移位操作,之后再分3个时钟周期对移位后的数据进行计算,例如在第2个时钟周期对最高级的数据进行比较运算并根据比较结果进行减法运算或者其它操作,在第3个时钟周期对中间级的数据进行比较运算并根据比较结果进行减法运算或者其它操作,以及在第4个时钟周期对最低级的数据进行比较运算并根据比较结果进行减法运算或者结束本步骤以进入下一步。具体而言,缓存寄存器600的最高位数据移位至最低级第一寄存器100的最低位,此时缓存寄存器600中的数据整体向高位移位1bit且最低位补0;与此同时,每一第一寄存器100中的数据整体向高位移位1bit,级联寄存器之间较低级第一寄存器100的最高位数据向较高级第一寄存器100的最低位移位,且最高级第一寄存器100的最高位移出舍去;每一第三寄存器400中的数据整体向高位移位1bit,级联寄存器之间较低级第三寄存器400的最高位数据向较高级第三寄存器400的最低位移位,且最高级第三寄存器400的最高位移出舍去。移位之后,对第一寄存器100中的数据和第二寄存器200中的数据进行比较,以根据比较结果进行减法操作、或者下一级数据的比较操作、或者不进行任何操作直接进入下一步。例如,参考图3所示,通过最高级比较子单元301对最高级第一寄存器100中的数据和最高级第二寄存器200中的数据进行比较,在最高级第一寄存器100中的数据大于最高级第二寄存器200中的数据时,针对所有第一寄存器100中的数据和所有第二寄存器200中的数据进行减法操作,并产生1作为当前运算结果;在最高级第一寄存器100中的数据等于最高级第二寄存器200中的数据时,进入下一级比较子单元301的比较操作;在最高级第一寄存器100中的数据小于最高级第二寄存器200中的数据时,不进行任何操作直接进入下一步骤。需要说明的是:本实施例也可同时对第一寄存器100中的数据和第二寄存器200中的数据进行比较,以根据比较结果确定第一移位寄存模块中的数据和第二移位寄存模块中的数据的大小关系。例如,若第一移位寄存模块中的数据大于或者等于第二移位寄存模块中的数据,则可利用三个时钟周期实现分段式三步(对应三级寄存器)减法运算,并以每段减法运算的差值结果替换该段第一寄存器100中的数据,同时在第三移位寄存模块的最低位加1;若第一移位寄存模块中的数据小于第二移位寄存模块中的数据,则直接进入下一步。在本实施例中,由于本次比较结果中第一移位寄存模块中的数据小于第二移位寄存模块中的数据,因此无需进行减法运算,可直接进入下一步。表3示出了经过第一次移位操作和比较运算之后各个寄存器中的数据。其中,第一寄存器0代表第0级(即最低级)第一寄存器,第一寄存器1代表第1级(即中间级)第一寄存器,第一寄存器2代表第2级(即最高级)第一寄存器;第三寄存器0代表第0级(即最低级)第三寄存器,第三寄存器1代表第1级(即中间级)第三寄存器,第三寄存器2代表第2级(即最高级)第三寄存器。表3第2步,参考图3所示,具体过程与第1步类似,这里不再赘述。在本实施例中,由于本次比较结果中第一移位寄存模块中的数据小于第二移位寄存模块中的数据,因此无需进行减法运算,可直接进入下一步。表4示出了经过第二次移位操作和比较运算之后各个寄存器中的数据。表4第3步,参考图3所示,具体过程与第1步类似,这里不再赘述。在本实施例中,由于本次比较结果中第一移位寄存模块中的数据小于第二移位寄存模块中的数据,因此无需进行减法运算,可直接进入下一步。表5示出了经过第三次移位操作和比较运算之后各个寄存器中的数据。表5第4步,参考图3所示,具体过程与第1步类似,这里不再赘述。在本实施例中,由于本次比较结果中第一移位寄存模块中的数据小于第二移位寄存模块中的数据,因此无需进行减法运算,可直接进入下一步。表6示出了经过第四次移位操作和比较运算之后各个寄存器中的数据。表6第5步,参考图3所示,具体过程与第1步类似,这里不再赘述。在本实施例中,由于本次比较结果中第一移位寄存模块中的数据小于第二移位寄存模块中的数据,因此无需进行减法运算,可直接进入下一步。表7示出了经过第五次移位操作和比较运算之后各个寄存器中的数据。表7第6步,参考图3所示,具体过程与第1步类似,这里不再赘述。在本实施例中,由于本次比较结果中第一移位寄存模块中的数据小于第二移位寄存模块中的数据,因此无需进行减法运算,可直接进入下一步。表8示出了经过第六次移位操作和比较运算之后各个寄存器中的数据。表8第7步,参考图3所示,具体过程与第1步类似,这里不再赘述。在本实施例中,由于本次比较结果中第一移位寄存模块中的数据小于第二移位寄存模块中的数据,因此无需进行减法运算,可直接进入下一步。表9示出了经过第七次移位操作和比较运算之后各个寄存器中的数据。表9第8步,参考图3所示,具体过程与第1步类似,这里不再赘述。在本实施例中,由于本次比较结果中第一移位寄存模块中的数据大于第二移位寄存模块中的数据,因此需要进行减法运算,之后再进入下一步。表10示出了经过第八次移位操作和比较运算之后各个寄存器中的数据。表11示出了经过第八次移位操作、比较运算和减法运算之后各个寄存器中的数据。表10表11第9步,参考图3所示,具体过程与第1步类似,这里不再赘述。在本实施例中,由于本次比较结果中第一移位寄存模块中的数据小于第二移位寄存模块中的数据,因此无需进行减法运算,直接进入下一步。表12示出了经过第九次移位操作和比较运算之后各个寄存器中的数据。表12第10步,参考图3所示,具体过程与第1步类似,这里不再赘述。在本实施例中,由于本次比较结果中第一移位寄存模块中的数据小于第二移位寄存模块中的数据,因此无需进行减法运算,可直接进入下一步。表13示出了经过第十次移位操作和比较运算之后各个寄存器中的数据。表13第11步,参考图3所示,具体过程与第1步类似,这里不再赘述。在本实施例中,由于本次比较结果中第一移位寄存模块中的数据小于第二移位寄存模块中的数据,因此无需进行减法运算,可直接进入下一步。表14示出了经过第十一次移位操作和比较运算之后各个寄存器中的数据。表14第12步,参考图3所示,具体过程与第1步类似,这里不再赘述。在本实施例中,由于本次比较结果中第一移位寄存模块中的数据大于第二移位寄存模块中的数据,因此需要进行减法运算。减法运算结束后,计数模块500的累加结果为12,此时结束模块产生1个时钟周期的高电平表示运算结束。表15示出了经过第十二次移位操作和比较运算之后各个寄存器中的数据。表16示出了经过第十二次移位操作、比较运算和减法运算之后各个寄存器中的数据。表15表16经过以上12次的移位操作、比较运算和减法运算,即可实现本示例实施方式所提供的分段式除法运算,所得到的目标结果如下:所述商数={000000010001},即十进制的17;所述余数={000000001000},即十进制的8。本示例实施方式还提供了一种分段式除法运算方法,应用于上述的分段式除法器;如图4所示,所述分段式除法运算方法可以包括:s1、利用计算模块根据级联顺序对第一寄存器100中的寄存数据和第二寄存器200中的寄存数据进行比较,以根据比较结果进行预设操作并产生运算结果;s2、利用移位控制模块在每次产生所述运算结果之后控制第一移位寄存模块和第三移位寄存模块进行移位操作;s3、利用计数模块500在每次移位操作之后对移位操作的次数进行累加,并在累加结果等于目标位数时发送一输出信号至输出模块以结束运算,而在累加结果不等于目标位数时发送一计算信号至计算模块以继续运算;s4、利用输出模块在接收到输出信号时输出目标结果;其中,所述目标结果包括商数,所述商数为接收到输出信号时第三移位寄存模块中级联的第三寄存器400中寄存的数据。其中,在s4步骤中,当所述目标位数等于被除数数据的位数时,所述目标结果包括商数和余数,所述商数为接收到输出信号时第三移位寄存模块中级联的第三寄存器400中寄存的数据,所述余数为接收到输出信号时第一移位寄存模块中级联的第一寄存器100中寄存的数据。本公开示例性实施方式所提供的分段式除法运算方法,采用分割操作数的方式将被除数、除数、以及商均进行分割,并分别采用级联结构的移位寄存器进行相应操作数的分段存储。这样一来,在运算过程中,根据级联顺序通过逐步移位、比较操作和减法操作等简单的运算操作即可实现大位宽操作数的除法运算功能,同时还能明显提升除法器电路所支持的最高频率。图5和图6为采用本实施例的三段式除法器与未采用分段式除法器的电路最高频率对比图。其中,图5为基于alteracycloneivfpga(field-programmablegatearray,现场可编程门阵列)芯片的对比结果。根据图5可知,当操作数的位宽由30bit增大至150bit后,未采用分段式除法运算的电路最高频率由160mhz急剧降低至60mhz,而采用三段式除法运算的电路最高频率仍然大于100mhz。图6为基于xilinxkintex7芯片的对比结果。根据图6可知,当操作数的位宽由30bit增大至150bit后,未采用分段式除法运算的电路最高频率约为120mhz,而采用三段式除法运算的电路最高频率仍然大于200mhz。基于此可知,采用本示例实施方式所提供的分段式除法器以及分段式除法运算方法,能够明显的提升电路所支持的最高工作频率。需要说明的是:所述分段式除法运算方法的具体细节已经在对应的分段式除法器中进行了详细的描述,这里不再赘述。本公开示例性实施方式所提供的分段式除法器适用于大位宽尤其是位宽超过64bit的除法运算,例如vr(virtualreality,虚拟现实)或人工智能等前沿领域,这些领域的数学模型普遍具有运算数据量大以及运算基数大的特点,经常涉及到大位宽数据的除法运算,而除法器往往是限制整个硬件电路系统工作频率的最关键部分。基于此,采用本示例所提供的分段式除法器,即可促使基于大操作数除法运算的硬件电路最高工作频率得到明显的提升。参考图5所示,以三段式除法器为例,基于162bit位宽的操作数,在alteracycloneivfpga芯片上实现了105mz的工作频率,从而满足了整个眼球追踪硬件系统的工作频率不低于100mhz的要求。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。在本公开的示例性实施例中,还提供了一种能够实现上述分段式除法运算方法的电子设备。所属
技术领域
的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。下面参照图7来描述根据本发明的这种实施方式的电子设备800。图7显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图7所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830。其中,所述存储单元820存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述示例性方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图4中所示的步骤s1、利用计算模块根据级联顺序对第一寄存器100中的寄存数据和第二寄存器200中的寄存数据进行比较,以根据比较结果进行预设操作并产生运算结果;步骤s2、利用移位控制模块在每次产生所述运算结果之后控制第一移位寄存模块和第三移位寄存模块进行移位操作;步骤s3、利用计数模块500在每次移位操作之后对移位操作的次数进行累加,并在累加结果等于目标位数时发送一输出信号至输出模块以结束运算,而在累加结果不等于目标位数时发送一计算信号至计算模块以继续运算;步骤s4、利用输出模块在接收到输出信号时输出目标结果;其中,所述目标位数等于被除数数据的位数时,所述目标结果包括商数和余数,所述商数为接收到输出信号时第三移位寄存模块中级联的第三寄存器400中寄存的数据,所述余数为接收到输出信号时第一移位寄存模块中级联的第一寄存器100中寄存的数据。存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(rom)8203。存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口850进行。并且,电子设备800还可以通过网络适配器880与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器880通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1