CN114840175B - 一种实现取余运算的装置、方法及运算芯片 - Google Patents
一种实现取余运算的装置、方法及运算芯片 Download PDFInfo
- Publication number
- CN114840175B CN114840175B CN202210754558.3A CN202210754558A CN114840175B CN 114840175 B CN114840175 B CN 114840175B CN 202210754558 A CN202210754558 A CN 202210754558A CN 114840175 B CN114840175 B CN 114840175B
- Authority
- CN
- China
- Prior art keywords
- dividend
- stage
- remainder
- operation unit
- unit
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
技术领域
本申请实施例涉及集成电路设计领域,尤其涉及一种实现取余运算的装置、方法及运算芯片。
背景技术
支持工作量证明(Proof Of Work,简称POW)机制的芯片在用硬件实现Ethash算法时,需要做被除数最大位宽为32位,除数最小位宽为22位的二进制整数的取余运算。对于32位二进制整数取余,相关技术中的解决方案是使用除法器进行取余运算,除法器一般采用32级运算单元构成的流水线结构,但是32级流水线结构占用资源过多,运算速度较慢,影响了POW芯片的运算性能。
发明内容
本申请实施例提供了一种实现取余运算的装置,包括:输入模块、运算模块和输出模块;
输入模块,配置为接收原始被除数和原始除数并转换为二进制无符号整数形式,比较原始被除数和原始除数的大小,当原始被除数等于原始除数时,将余数设置为0并输出给输出模块;当原始被除数小于原始除数时,将余数设置为原始被除数并输出给输出模块;当原始被除数大于原始除数时,将原始被除数和原始除数输出给运算模块;
运算模块,配置为确定原始被除数的有效位宽和原始除数的有效位宽,调用至多个级联的运算单元进行减法运算得到余数,将最后一级运算单元计算得到的余数输出给输出模块;其中,第级运算单元进行减法运算得到位余数;第一级运算单元截取原始被除数中从最高不为0的位开始的高位数据作为本级被除数;除第一级运算单元外的第级运算单元将上一级运算单元生成的位余数和原始被除数中的位数据组合为被除数,所述位余数作为被除数的高位部分,所述位原始被除数的数据作为被除数的低位部分;所有运算单元的除数为原始除数;所有运算单元按照从高位到低位的顺序依次从原始被除数中截取位数据,任意两个运算单元截取的原始被除数的数据位之间没有交集;;;;;;;二进制无符号整数的有效位宽是从最高不为0的位开始至最低位的比特序列的位数;
输出模块,配置为输出余数。
本申请实施例提供了一种实现取余运算的方法,包括:
输入模块接收原始被除数和原始除数并转换为二进制无符号整数形式,比较原始被除数和原始除数的大小,当原始被除数等于原始除数时,将余数设置为0并输出给输出模块;当原始被除数小于原始除数时,将余数设置为原始被除数并输出给输出模块;当原始被除数大于原始除数时,将原始被除数和原始除数输出给运算模块;
如果运算模块获取到原始被除数和原始除数,则确定原始被除数的有效位宽和原始除数的有效位宽,调用至多个级联的运算单元进行减法运算得到余数,将最后一级运算单元计算得到的余数输出给输出模块;其中,第级运算单元进行减法运算得到位余数;第一级运算单元截取原始被除数中从最高不为0的位开始的高位数据作为本级被除数;除第一级运算单元外的第级运算单元将上一级运算单元生成的位余数和原始被除数中的位数据组合为被除数,所述位余数作为被除数的高位部分,所述位原始被除数的数据作为被除数的低位部分;所有运算单元的除数为原始除数;所有运算单元按照从高位到低位的顺序依次从原始被除数中截取位数据,任意两个运算单元截取的原始被除数的数据位之间没有交集;;;;;;;二进制无符号整数的有效位宽是从最高不为0的位开始至最低位的比特序列的位数;
输出模块输出余数。
本申请实施例提供了一种运算芯片,包括上述实现取余运算的装置。
本申请实施例提供的实现取余运算的装置包括输入模块、运算模块和输出模块。输入模块通过分类处理节省了原始被除数小于或等于原始除数时的求余运算的时间。和相关技术中被除数为N位位宽的除法器不同,本申请实施例的运算模块通过确定原始被除数的有效位宽和原始除数的有效位宽,第一级运算单元从原始被除数中可以直接获取位高位数据作为本级运算单元的被除数,实现了动态调用至多个级联的运算单元(也即级流水线结构)完成取余运算,通过减少流水线结构的级数,能够减少资源的占用并缩短取余运算的运算时间。
在阅读并理解了附图和详细描述后,可以明白其他方面。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请实施例的一种实现取余运算的装置的结构示意图;
图2为本申请实施例的一种运算模块的结构示意图;
图3为本申请实施例的另一种运算模块的结构示意图;
图4为本申请实施例的另一种运算模块的结构示意图;
图5为本申请实施例的另一种运算模块的结构示意图;
图6为本申请实施例的一种实现取余运算的方法的流程图。
具体实施方式
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由所附权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由所附权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
本申请实施例提供了一种实现取余运算的装置。如图1所示,一种实现取余运算的装置,包括:输入模块、运算模块和输出模块;
输入模块,配置为接收原始被除数和原始除数并转换为二进制无符号整数形式,比较原始被除数和原始除数的大小,当原始被除数等于原始除数时,将余数设置为0并输出给输出模块;当原始被除数小于原始除数时,将余数设置为原始被除数并输出给输出模块;当原始被除数大于原始除数时,将原始被除数和原始除数输出给运算模块;
运算模块,配置为确定原始被除数的有效位宽和原始除数的有效位宽,调用至多个级联的运算单元进行减法运算得到余数,将最后一级运算单元计算得到的余数输出给输出模块;其中,第级运算单元进行减法运算得到位余数;第一级运算单元截取原始被除数中从最高不为0的位开始的高位数据作为本级被除数;除第一级运算单元外的第级运算单元将上一级运算单元生成的位余数和原始被除数中的位数据组合为被除数,所述位余数作为被除数的高位部分,所述位原始被除数的数据作为被除数的低位部分;所有运算单元的除数为原始除数;所有运算单元按照从高位到低位的顺序依次从原始被除数中截取位数据,任意两个运算单元截取的原始被除数的数据位之间没有交集;;;;;;;二进制无符号整数的有效位宽是从最高不为0的位开始至最低位的比特序列的位数;
输出模块,配置为输出余数。
本申请实施例提供的实现取余运算的装置包括输入模块、运算模块和输出模块。输入模块通过分类处理节省了原始被除数小于或等于原始除数时的求余运算的时间。和相关技术中被除数为N位位宽的除法器不同,本申请实施例的运算模块通过确定原始被除数的有效位宽和原始除数的有效位宽,第一级运算单元从原始被除数中可以直接获取位高位数据作为本级运算单元的被除数,实现动态调用至多个级联的运算单元(也即级流水线结构)完成取余运算,通过减少流水线结构的级数,能够减少资源的占用并缩短取余运算的运算时间。
二进制无符号整数的有效位宽是从最高不为0的位开始至最低位的比特序列的位数。比如,一个最大位宽为8位的非零二进制无符号整数()是“00101110”,其最高不为0的位是,从到最低位的比特序列的位数为6位,因此,“00101110”的有效位宽是6位。二进制无符号整数0的有效位宽为0位。
在一些应用场景下,原始除数为最小位宽为M的无符号二进制整数。比如Ethash算法中要求除数的最小位宽为22。本申请实施例提供的运算装置在除数的最小位宽较大时能够明显缩短取余运算的时间。
如图2和图3所示,在一些示例性的实施方式中,所述运算模块包括:移位寄存器21、移位指针控制器22和多个级联的运算单元23;
移位寄存器,配置为存储原始被除数从最高不为0的位开始至最低位的比特序列,在移位指针控制器的控制下向左移出一位或多位数据;
调用任意一级运算单元时,如果所述运算单元是第一级运算单元,则从移位寄存器中按照从高位到低位的顺序连续向左移出m位数据至所述运算单元;如果所述运算单元不是第一级运算单元,则从移位寄存器中按照从高位到低位的顺序向左移出1位数据至所述运算单元。
调用任意一级运算单元时,如果所述运算单元是第一级运算单元,则从移位寄存器中按照从高位到低位的顺序连续向左移出m位数据至所述运算单元;如果所述运算单元不是第一级运算单元,则确定所述运算单元的上一级运算单元生成的余数的有效位宽,如果,则确定移位寄存器中剩余数据的有效位宽t,如果,则从移位寄存器中按照从高位到低位的顺序向左移出所有数据至所述运算单元,如果,则从移位寄存器中按照从高位到低位的顺序向左移出有效位宽为m的多位数据至所述运算单元;如果,则确定移位寄存器中剩余数据的位宽t,如果,则从移位寄存器中按照从高位到低位的顺序向左移出t位数据至所述运算单元;如果-a,则从移位寄存器中按照从高位到低位的顺序向左移出位数据至所述运算单元;其中,移位寄存器中剩余数据的有效位宽是从最高不为0的位开始至最低位的比特序列的位数,移位寄存器中剩余数据的位宽是剩余数据从最高位开始至最低位的比特序列的位数。
在一些示例性的实施方式中,所述移位指针控制器,还配置为调用任意一级运算单元时,如果所述运算单元是最后一级运算单元,则控制所述运算单元向输出模块输出本级运算单元生成的余数,如果所述运算单元不是最后一级运算单元,则控制所述运算单元向下一级运算单元输出本级运算单元生成的余数。
在一些示例性的实施方式中,移位指针控制器,配置为采用以下方式判断所述运算单元是否为最后一级运算单元:
如果移位寄存器向所述运算单元移出数据后,移位寄存器中剩余0位数据,则判定所述运算单元为最后一级运算单元;
如果移位寄存器向所述运算单元移出数据后,移位寄存器中剩余至少一位数据,则判定所述运算单元不是最后一级运算单元。
如图4所示,所述运算模块包括:移位寄存器21、移位指针控制器22和多个级联的运算单元23;
移位寄存器,配置为存储原始被除数从最高不为0的位开始至最低位的比特序列,在移位指针控制器的控制下向左移出一位或多位数据;
移位指针控制器,配置为确定原始被除数的有效位宽和原始除数的有效位宽,调用个级联的运算单元进行减法运算得到余数,按照从高位到低位的顺序依次从移位寄存器中向左移出位数据至第级运算单元:调用任意一级运算单元时,如果所述运算单元是第一级运算单元,则从移位寄存器中按照从高位到低位的顺序连续向左移出m位数据至所述运算单元;如果所述运算单元不是第一级运算单元,则从移位寄存器中按照从高位到低位的顺序向左移出1位数据至所述运算单元;调用任意一级运算单元时,如果所述运算单元是最后一级运算单元,则控制所述运算单元向输出模块输出本级运算单元生成的余数,如果所述运算单元不是最后一级运算单元,则控制所述运算单元向下一级运算单元输出本级运算单元生成的余数;;;;;;
所述运算单元包括:被除数高位存储单元1、被除数低位存储单元2、被除数组合单元3,除数存储单元4,比较器5,减法器6和余数存储单元7;
除第一级运算单元外的任意一级运算单元的被除数高位存储单元,配置为从上一级运算单元的余数存储单元获取数据作为本级被除数的高位部分;第一级运算单元的被除数高位存储单元,配置为不存储数据;
任意一级运算单元的被除数低位存储单元,配置为从移位寄存器获取一位或多位数据作为本级被除数的低位部分;
任意一级运算单元的被除数组合单元,配置为将被除数低位存储单元中的数据和被除数高位存储单元中的数据进行组合生成本级被除数,被除数低位存储单元中的数据作为本级被除数的低位部分,被除数高位存储单元中的数据作为本级被除数的高位部分;
任意一级运算单元的除数存储单元,配置为获取原始除数并作为本级除数进行存储;
任意一级运算单元的比较器,配置为比较被除数组合单元中的本级被除数与除数存储单元中的本级除数的大小,如果本级被除数大于或等于本级除数,则将本级被除数和本级除数发送至减法器;如果本级被除数小于本级除数,则将本级被除数作为本级余数发送至余数存储单元;
任意一级运算单元的减法器,配置为用本级被除数减去本级除数得到差值,将所述差值作为本级余数发送至余数存储单元;
任意一级运算单元的余数存储单元,配置为存储本级余数;
除最后一级运算单元外的任意一级运算单元的余数存储单元,还配置为在移位指针控制器的控制下向下一级运算单元输出本级余数;
最后一级运算单元的余数存储单元,还配置为在移位指针控制器的控制下向输出模块输出本级余数。
上述实施例提供的运算模块,移位指针控制器确定原始被除数的有效位宽和原始除数的有效位宽,调用个级联的运算单元进行减法运算得到余数,移位指针控制器控制第一级运算单元从移位寄存器获取位原始被除数的高位数据作为本级运算单元的被除数,其他级运算单元按照从高位到低位的顺序依次从移位寄存器获取1位数据作为本级运算单元的被除数的低位部分,移位指针控制器控制最后一级运算单元之前的所有级运算单元的余数存储单元向下一级运算单元的被除数高位存储单元输出数据,移位指针控制器控制最后一级运算单元的余数存储单元向输出模块输出数据(最终的余数)。运算模块动态调用级运算单元进行运算,减少了资源的占用并缩短了取余运算的运算时间。
第一级运算单元的被除数低位存储单元从移位寄存器获取到原始被除数从最高不为0的位开始的高4位数据,也即,第一级运算单元的被除数高位存储单元没有数据,第一级运算单元的被除数为。假设第一级运算单元生成的余数为。
第二级运算单元的被除数高位存储单元从第一级运算单元的余数存储单元获取第一级运算单元生成的余数作为本级被除数的高位部分,第二级运算单元的被除数低位存储单元从移位寄存器获取到原始被除数的第3位数据作为本级被除数的低位部分,则组合成的第二级运算单元的被除数为。假设第二级运算单元生成的余数为。
第三级运算单元的被除数高位存储单元从第二级运算单元的余数存储单元获取第二级运算单元生成的余数作为本级被除数的高位部分,第三级运算单元的被除数低位存储单元从移位寄存器获取到原始被除数的第2位数据作为本级被除数的低位部分,则组合成的第三级运算单元的被除数为。因为第三级运算单元的被除数小于除数B,因此,第三级运算单元生成的余数为。
第四级运算单元的被除数高位存储单元从第三级运算单元的余数存储单元获取第三级运算单元生成的余数作为本级被除数的高位部分,第四级运算单元的被除数低位存储单元从移位寄存器获取到原始被除数的第1位数据作为本级被除数的低位部分,则组合成的第四级运算单元的被除数为。假设第四级运算单元生成的余数为,则运算模块最终的余数为,运算模块将余数输出给输出模块。
现有技术中,假设被除数的最大位宽为32位,则被除数无论实际位宽为多少,都通过在高位补零成为32位二进制数,除法器通常采用固定级数(32级)的流水线结构完成取余运算。因此,相较于现有技术中的固定级数(32级)流水线结构,本申请通过动态调用4级()流水线结构完成取余运算,大大节省了资源的占用和运算时间。
在一些示例性的实施方式中,如图5所示,所述运算模块包括:移位寄存器21、移位指针控制器22和多个级联的运算单元23;
移位寄存器,配置为存储原始被除数,在移位指针控制器的控制下向左移出一位或多位数据;
移位指针控制器,配置为确定原始被除数的有效位宽和原始除数的有效位宽,调用至多个级联的运算单元进行减法运算得到余数,按照从高位到低位的顺序依次从移位寄存器中向左移出位数据至第级运算单元:调用任意一级运算单元时,如果所述运算单元是第一级运算单元,则从移位寄存器中按照从高位到低位的顺序连续向左移出m位数据至所述运算单元;如果所述运算单元不是第一级运算单元,则确定所述运算单元的上一级运算单元生成的余数的有效位宽,如果,则确定移位寄存器中剩余数据的有效位宽t,如果,则从移位寄存器中按照从高位到低位的顺序向左移出所有数据至所述运算单元,如果,则从移位寄存器中按照从高位到低位的顺序向左移出有效位宽为m的多位数据至所述运算单元;如果,则确定移位寄存器中剩余数据的位宽t,如果,则从移位寄存器中按照从高位到低位的顺序向左移出t位数据至所述运算单元;如果,则从移位寄存器中按照从高位到低位的顺序向左移出位数据至所述运算单元;调用任意一级运算单元时,如果所述运算单元是最后一级运算单元,则控制所述运算单元向输出模块输出本级运算单元生成的余数,如果所述运算单元不是最后一级运算单元,则控制所述运算单元向下一级运算单元输出本级运算单元生成的余数;其中,移位寄存器中剩余数据的有效位宽是从最高不为0的位开始至最低位的比特序列的位数,移位寄存器中剩余数据的位宽是剩余数据从最高位开始至最低位的比特序列的位数;;;;;
所述运算单元包括:被除数高位存储单元1、被除数低位存储单元2、被除数组合单元3,除数存储单元4,比较器5,减法器6和余数存储单元7;
除第一级运算单元外的任意一级运算单元的被除数高位存储单元,配置为从上一级运算单元的余数存储单元获取数据作为本级被除数的高位部分;第一级运算单元的被除数高位存储单元,配置为不存储数据;
任意一级运算单元的被除数低位存储单元,配置为从移位寄存器获取一位或多位数据作为本级被除数的低位部分;
任意一级运算单元的被除数组合单元,配置为将被除数低位存储单元中的数据和被除数高位存储单元中的数据进行组合生成本级被除数,被除数低位存储单元中的数据作为本级被除数的低位部分,被除数高位存储单元中的数据作为本级被除数的高位部分;
任意一级运算单元的除数存储单元,配置为获取原始除数并作为本级除数进行存储;
任意一级运算单元的比较器,配置为比较被除数组合单元中的本级被除数与除数存储单元中的本级除数的大小,如果本级被除数大于或等于本级除数,则将本级被除数和本级除数发送至减法器;如果本级被除数小于本级除数,则将本级被除数作为本级余数发送至余数存储单元;
任意一级运算单元的减法器,配置为用本级被除数减去本级除数得到差值,将所述差值作为本级余数发送至余数存储单元;
任意一级运算单元的余数存储单元,配置为存储本级余数;确定所述本级余数的有效位宽,将所述本级余数的有效位宽信息发送给移位指针控制器;
除最后一级运算单元外的任意一级运算单元的余数存储单元,还配置为在移位指针控制器的控制下向下一级运算单元输出本级余数;
最后一级运算单元的余数存储单元,还配置为在移位指针控制器的控制下向输出模块输出本级余数。
上述实施例提供的运算模块,移位指针控制器确定原始被除数的有效位宽和原始除数的有效位宽,每一级运算单元通过向移位指针控制器反馈本级运算单元生成的余数的位宽信息,使得移位指针控制器至多调用个级联的运算单元进行减法运算得到余数,移位指针控制器控制第一级运算单元从移位寄存器获取位原始被除数的高位数据作为本级运算单元的被除数,其他级运算单元按照从高位到低位的顺序依次从移位寄存器获取一位或多位数据作为本级运算单元的被除数的低位部分,移位指针控制器控制最后一级运算单元之前的所有级运算单元的余数存储单元向下一级运算单元的被除数高位存储单元输出数据,移位指针控制器控制最后一级运算单元的余数存储单元向输出模块输出数据(最终的余数)。运算模块动态调用至多级运算单元进行运算,减少了资源的占用并缩短了取余运算的运算时间。
第一级运算单元的被除数低位存储单元从移位寄存器获取到原始被除数从最高不为0的位开始的高4位数据,也即,第一级运算单元的被除数高位存储单元没有数据,第一级运算单元的被除数为。假设第一级运算单元生成的余数R为,的有效位宽a为1。
第二级运算单元的被除数高位存储单元从第一级运算单元的余数存储单元获取第一级运算单元生成的余数作为本级被除数的高位部分,因为第一级运算单元生成的余数R的有效位宽,则确定移位寄存器中剩余数据的位宽为12,因为,所以第二级运算单元的被除数低位存储单元从移位寄存器获取到移位寄存器中剩余数据中从高到低的位数据()作为本级被除数的低位部分,组合成的第二级运算单元的被除数为。假设第二级运算单元生成的余数R为0,R的有效位宽a为0。
第三级运算单元的被除数高位存储单元从第二级运算单元的余数存储单元获取第二级运算单元生成的余数0作为本级被除数的高位部分,因为第二级运算单元生成的余数R的有效位宽,则确定移位寄存器中剩余数据的有效位宽为7(假设两位均为0),因为 ,所以第三级运算单元的被除数低位存储单元从移位寄存器获取到移位寄存器中剩余数据中从高到低的位数据()作为本级被除数的低位部分,的有效位宽为4,组合成的第三级运算单元的被除数为(两位均为0)。假设第三级运算单元生成的余数R为,的有效位宽a为2。
第四级运算单元的被除数高位存储单元从第三级运算单元的余数存储单元获取第三级运算单元生成的余数作为本级被除数的高位部分,因为第三级运算单元生成的余数R的有效位宽,则确定移位寄存器中剩余数据的位宽为3,因为,所以第四级运算单元的被除数低位存储单元从移位寄存器获取到移位寄存器中剩余数据中从高到低的位数据()作为本级被除数的低位部分,组合成的第四级运算单元的被除数为。假设第四级运算单元生成的余数R为0,R的有效位宽a为0。
第五级运算单元的被除数高位存储单元从第四级运算单元的余数存储单元获取第四级运算单元生成的余数作为本级被除数的高位部分,因为第四级运算单元生成的余数R的有效位宽,则确定移位寄存器中剩余数据的有效位宽为1,因为,所以第五级运算单元的被除数低位存储单元从移位寄存器获取到移位寄存器中剩余数据中的所有数据作为本级被除数的低位部分,组合成的第五级运算单元的被除数为。因为第五级运算单元的被除数小于除数B,因此,第五级运算单元生成的余数为,则运算模块最终的余数为,运算模块将余数输出给输出模块。
现有技术中,假设被除数的最大位宽为32位,则被除数无论实际位宽为多少,都通过在高位补零成为32位二进制数,除法器通常采用固定级数(32级)的流水线结构完成取余运算。因此,相较于现有技术中的固定级数(32级)流水线结构,本申请通过动态调用5级流水线结构完成取余运算,大大节省了资源的占用和运算时间。
在一些示例性的实施方式中,移位指针控制器,还配置为向除最后一级运算单元外的所有级运算单元的余数存储单元发送第一使能信号,向最后一级运算单元的余数存储单元发送第二使能信号;
在一些示例性的实施方式中,任意一级运算单元的余数存储单元,还配置为如果接收到第一使能信号,则向下一级运算单元输出本级运算单元生成的余数,如果接收到第二使能信号,则向输出模块输出本级运算单元生成的余数。
本申请实施例提供一种实现取余运算的方法。如图6所示,一种实现取余运算的方法,包括:
步骤S10,输入模块接收原始被除数和原始除数并转换为二进制无符号整数形式,比较原始被除数和原始除数的大小,当原始被除数等于原始除数时,将余数设置为0并输出给输出模块;当原始被除数小于原始除数时,将余数设置为原始被除数并输出给输出模块;当原始被除数大于原始除数时,将原始被除数和原始除数输出给运算模块;
步骤S20,如果运算模块获取到原始被除数和原始除数,则确定原始被除数的有效位宽和原始除数的有效位宽,调用至多个级联的运算单元进行减法运算得到余数,将最后一级运算单元计算得到的余数输出给输出模块;其中,第级运算单元进行减法运算得到位余数;第一级运算单元截取原始被除数中从最高不为0的位开始的高位数据作为本级被除数;除第一级运算单元外的第级运算单元将上一级运算单元生成的位余数和原始被除数中的位数据组合为被除数,所述位余数作为被除数的高位部分,所述位原始被除数的数据作为被除数的低位部分;所有运算单元的除数为原始除数;所有运算单元按照从高位到低位的顺序依次从原始被除数中截取位数据,任意两个运算单元截取的原始被除数的数据位之间没有交集;;;;;;;二进制无符号整数的有效位宽是从最高不为0的位开始至最低位的比特序列的位数;
步骤S30,输出模块输出余数。
本申请实施例提供的实现取余运算的方法,输入模块通过分类处理节省了原始被除数小于或等于原始除数时的求余运算的时间。和相关技术中被除数为N位位宽的除法运算不同,本申请实施例的运算模块不需要每次运算都使用N级流水线结构,而可以通过确定原始被除数的有效位宽和原始除数的有效位宽动态调用至多个级联的运算单元(也即级流水线结构)完成取余运算,通过减少流水线结构的级数,能够减少资源的占用并缩短取余运算的运算时间。
移位寄存器存储原始被除数从最高不为0的位开始至最低位的比特序列;移位指针控制器确定原始被除数的有效位宽和原始除数的有效位宽,调用至多个级联的运算单元进行减法运算得到余数,按照从高位到低位的顺序依次从移位寄存器中向左移出位数据至第级运算单元;;;;;
其中,所述运算模块包括:移位寄存器、移位指针控制器和多个级联的运算单元。
移位指针控制器调用任意一级运算单元时,如果所述运算单元是第一级运算单元,则从移位寄存器中按照从高位到低位的顺序连续向左移出m位数据至所述运算单元;如果所述运算单元不是第一级运算单元,则从移位寄存器中按照从高位到低位的顺序向左移出1位数据至所述运算单元。
除第一级运算单元外的任意一级运算单元的被除数高位存储单元从上一级运算单元的余数存储单元获取数据作为本级被除数的高位部分;第一级运算单元的被除数高位存储单元不存储数据;
任意一级运算单元的被除数低位存储单元从移位寄存器获取一位或多位数据作为本级被除数的低位部分;
任意一级运算单元的被除数组合单元将被除数低位存储单元中的数据和被除数高位存储单元中的数据进行组合生成本级被除数,被除数低位存储单元中的数据作为本级被除数的低位部分,被除数高位存储单元中的数据作为本级被除数的高位部分;
任意一级运算单元的除数存储单元获取原始除数并作为本级除数进行存储;
任意一级运算单元的比较器比较被除数组合单元中的本级被除数与除数存储单元中的本级除数的大小,如果本级被除数大于或等于本级除数,则将本级被除数和本级除数发送至减法器;如果本级被除数小于本级除数,则将本级被除数作为本级余数发送至余数存储单元;
任意一级运算单元的减法器用本级被除数减去本级除数得到差值,将所述差值作为本级余数发送至余数存储单元;
任意一级运算单元的余数存储单元存储本级余数;
除最后一级运算单元外的任意一级运算单元的余数存储单元在移位指针控制器的控制下向下一级运算单元输出本级余数;最后一级运算单元的余数存储单元在移位指针控制器的控制下向输出模块输出本级余数;
其中,所述运算单元包括:被除数高位存储单元、被除数低位存储单元、被除数组合单元,除数存储单元,比较器,减法器和余数存储单元。
移位指针控制器调用任意一级运算单元时,如果所述运算单元是第一级运算单元,则从移位寄存器中按照从高位到低位的顺序连续向左移出m位数据至所述运算单元;如果所述运算单元不是第一级运算单元,则确定所述运算单元的上一级运算单元生成的余数的有效位宽,如果,则确定移位寄存器中剩余数据的有效位宽t,如果,则从移位寄存器中按照从高位到低位的顺序向左移出所有数据至所述运算单元,如果,则从移位寄存器中按照从高位到低位的顺序向左移出有效位宽为m的多位数据至所述运算单元;如果,则确定移位寄存器中剩余数据的位宽t,如果,则从移位寄存器中按照从高位到低位的顺序向左移出t位数据至所述运算单元;如果,则从移位寄存器中按照从高位到低位的顺序向左移出位数据至所述运算单元;其中,移位寄存器中剩余数据的有效位宽是从最高不为0的位开始至最低位的比特序列的位数,移位寄存器中剩余数据的位宽是剩余数据从最高位开始至最低位的比特序列的位数。
除第一级运算单元外的任意一级运算单元的被除数高位存储单元从上一级运算单元的余数存储单元获取数据作为本级被除数的高位部分;第一级运算单元的被除数高位存储单元不存储数据;
任意一级运算单元的被除数低位存储单元从移位寄存器获取一位或多位数据作为本级被除数的低位部分;
任意一级运算单元的被除数组合单元将被除数低位存储单元中的数据和被除数高位存储单元中的数据进行组合生成本级被除数,被除数低位存储单元中的数据作为本级被除数的低位部分,被除数高位存储单元中的数据作为本级被除数的高位部分;
任意一级运算单元的除数存储单元获取原始除数并作为本级除数进行存储;
任意一级运算单元的比较器比较被除数组合单元中的本级被除数与除数存储单元中的本级除数的大小,如果本级被除数大于或等于本级除数,则将本级被除数和本级除数发送至减法器;如果本级被除数小于本级除数,则将本级被除数作为本级余数发送至余数存储单元;
任意一级运算单元的减法器用本级被除数减去本级除数得到差值,将所述差值作为本级余数发送至余数存储单元;
任意一级运算单元的余数存储单元存储本级余数;确定所述本级余数的有效位宽,将所述本级余数的有效位宽信息发送给移位指针控制器;
除最后一级运算单元外的任意一级运算单元的余数存储单元在移位指针控制器的控制下向下一级运算单元输出本级余数;最后一级运算单元的余数存储单元在移位指针控制器的控制下向输出模块输出本级余数;
其中,所述运算单元包括:被除数高位存储单元、被除数低位存储单元、被除数组合单元,除数存储单元,比较器,减法器和余数存储单元。
在一些示例性的实施方式中,所述移位指针控制器调用至多个级联的运算单元进行减法运算得到余数,包括:移位指针控制器调用任意一级运算单元时,如果所述运算单元是最后一级运算单元,则控制所述运算单元向输出模块输出本级运算单元生成的余数,如果所述运算单元不是最后一级运算单元,则控制所述运算单元向下一级运算单元输出本级运算单元生成的余数。
在一些示例性的实施方式中,所述移位指针控制器调用至多个级联的运算单元进行减法运算得到余数,包括:如果移位寄存器向所述运算单元移出数据后,移位寄存器中剩余0位数据,则移位指针控制判定所述运算单元为最后一级运算单元;如果移位寄存器向所述运算单元移出数据后,移位寄存器中剩余至少一位数据,则移位指针控制判定所述运算单元不是最后一级运算单元。
本申请实施例提供了一种运算芯片,包括上述实现取余运算的装置。
在一些示例性的实施方式中,所述运算芯片支持工作量证明机制(Proof OfWork,简称POW)。
在一些示例性的实施方式中,所述运算芯片通过所述取余运算的装置实现Ethash算法中的取余运算。
本领域普通技术人员可以理解,上文中所公开的装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (13)
1.一种实现取余运算的装置,包括:输入模块、运算模块和输出模块;
输入模块,配置为接收原始被除数和原始除数并转换为二进制无符号整数形式,比较原始被除数和原始除数的大小,当原始被除数等于原始除数时,将余数设置为0并输出给输出模块;当原始被除数小于原始除数时,将余数设置为原始被除数并输出给输出模块;当原始被除数大于原始除数时,将原始被除数和原始除数输出给运算模块;
运算模块,配置为确定原始被除数的有效位宽n和原始除数的有效位宽m,调用至多n-m
+1个级联的运算单元进行减法运算得到余数,将最后一级运算单元计算得到的余数输出给
输出模块;其中,第j级运算单元进行减法运算得到位余数;第一级运算单元截取原始被
除数中从最高不为0的位开始的高位数据作为本级被除数;除第一级运算单元外的第i级
运算单元将上一级运算单元生成的位余数和原始被除数中的位数据组合为被除
数,所述位余数作为被除数的高位部分,所述位原始被除数的数据作为被除数的低
位部分;所有运算单元的除数为原始除数;所有运算单元按照从高位到低位的顺序依次从
原始被除数中截取位数据,任意两个运算单元截取的原始被除数的数据位之间没有交
集;;;;;;;二进制无符号整数的
有效位宽是从最高不为0的位开始至最低位的比特序列的位数;
输出模块,配置为输出余数;
所述运算模块包括:移位寄存器、移位指针控制器和多个级联的运算单元;
移位寄存器,配置为存储原始被除数从最高不为0的位开始至最低位的比特序列,在移位指针控制器的控制下向左移出一位或多位数据;
3.如权利要求2所述的装置,其特征在于:
所述移位指针控制器,还配置为调用任意一级运算单元时,如果所述运算单元是最后一级运算单元,则控制所述运算单元向输出模块输出本级运算单元生成的余数,如果所述运算单元不是最后一级运算单元,则控制所述运算单元向下一级运算单元输出本级运算单元生成的余数;
所述运算单元包括:被除数高位存储单元、被除数低位存储单元、被除数组合单元,除数存储单元,比较器,减法器和余数存储单元;
除第一级运算单元外的任意一级运算单元的被除数高位存储单元,配置为从上一级运算单元的余数存储单元获取数据作为本级被除数的高位部分;第一级运算单元的被除数高位存储单元,配置为不存储数据;
任意一级运算单元的被除数低位存储单元,配置为从移位寄存器获取一位或多位数据作为本级被除数的低位部分;
任意一级运算单元的被除数组合单元,配置为将被除数低位存储单元中的数据和被除数高位存储单元中的数据进行组合生成本级被除数,被除数低位存储单元中的数据作为本级被除数的低位部分,被除数高位存储单元中的数据作为本级被除数的高位部分;
任意一级运算单元的除数存储单元,配置为获取原始除数并作为本级除数进行存储;
任意一级运算单元的比较器,配置为比较被除数组合单元中的本级被除数与除数存储单元中的本级除数的大小,如果本级被除数大于或等于本级除数,则将本级被除数和本级除数发送至减法器;如果本级被除数小于本级除数,则将本级被除数作为本级余数发送至余数存储单元;
任意一级运算单元的减法器,配置为用本级被除数减去本级除数得到差值,将所述差值作为本级余数发送至余数存储单元;
任意一级运算单元的余数存储单元,配置为存储本级余数;
除最后一级运算单元外的任意一级运算单元的余数存储单元,还配置为在移位指针控制器的控制下向下一级运算单元输出本级余数;
最后一级运算单元的余数存储单元,还配置为在移位指针控制器的控制下向输出模块输出本级余数。
4.如权利要求1所述的装置,其特征在于:
调用任意一级运算单元时,如果所述运算单元是第一级运算单元,则从移位寄存器中
按照从高位到低位的顺序连续向左移出m位数据至所述运算单元;如果所述运算单元不是
第一级运算单元,则确定所述运算单元的上一级运算单元生成的余数的有效位宽,如果,则确定移位寄存器中剩余数据的有效位宽t,如果,则从移位寄存器中按照
从高位到低位的顺序向左移出所有数据至所述运算单元,如果,则从移位寄存器中
按照从高位到低位的顺序向左移出有效位宽为m的多位数据至所述运算单元;如果,
则确定移位寄存器中剩余数据的位宽t,如果,则从移位寄存器中按照从高位到
低位的顺序向左移出t位数据至所述运算单元;如果,则从移位寄存器中按照从
高位到低位的顺序向左移出m-a位数据至所述运算单元;其中,移位寄存器中剩余数据的有
效位宽是从最高不为0的位开始至最低位的比特序列的位数,移位寄存器中剩余数据的位
宽是剩余数据从最高位开始至最低位的比特序列的位数。
5.如权利要求3所述的装置,其特征在于:
所述移位指针控制器,还配置为调用任意一级运算单元时,如果所述运算单元是最后一级运算单元,则控制所述运算单元向输出模块输出本级运算单元生成的余数,如果所述运算单元不是最后一级运算单元,则控制所述运算单元向下一级运算单元输出本级运算单元生成的余数;
所述运算单元包括:被除数高位存储单元、被除数低位存储单元、被除数组合单元,除数存储单元,比较器,减法器和余数存储单元;
除第一级运算单元外的任意一级运算单元的被除数高位存储单元,配置为从上一级运算单元的余数存储单元获取数据作为本级被除数的高位部分;第一级运算单元的被除数高位存储单元,配置为不存储数据;
任意一级运算单元的被除数低位存储单元,配置为从移位寄存器获取一位或多位数据作为本级被除数的低位部分;
任意一级运算单元的被除数组合单元,配置为将被除数低位存储单元中的数据和被除数高位存储单元中的数据进行组合生成本级被除数,被除数低位存储单元中的数据作为本级被除数的低位部分,被除数高位存储单元中的数据作为本级被除数的高位部分;
任意一级运算单元的除数存储单元,配置为获取原始除数并作为本级除数进行存储;
任意一级运算单元的比较器,配置为比较被除数组合单元中的本级被除数与除数存储单元中的本级除数的大小,如果本级被除数大于或等于本级除数,则将本级被除数和本级除数发送至减法器;如果本级被除数小于本级除数,则将本级被除数作为本级余数发送至余数存储单元;
任意一级运算单元的减法器,配置为用本级被除数减去本级除数得到差值,将所述差值作为本级余数发送至余数存储单元;
任意一级运算单元的余数存储单元,配置为存储本级余数;确定所述本级余数的有效位宽,将所述本级余数的有效位宽信息发送给移位指针控制器;
除最后一级运算单元外的任意一级运算单元的余数存储单元,还配置为在移位指针控制器的控制下向下一级运算单元输出本级余数;
最后一级运算单元的余数存储单元,还配置为在移位指针控制器的控制下向输出模块输出本级余数。
6.如权利要求1或2或3所述的装置,其特征在于:
所述移位指针控制器,还配置为调用任意一级运算单元时,如果所述运算单元是最后一级运算单元,则控制所述运算单元向输出模块输出本级运算单元生成的余数,如果所述运算单元不是最后一级运算单元,则控制所述运算单元向下一级运算单元输出本级运算单元生成的余数。
7.如权利要求6所述的装置,其特征在于:
移位指针控制器,配置为采用以下方式判断所述运算单元是否为最后一级运算单元:
如果移位寄存器向所述运算单元移出数据后,移位寄存器中剩余0位数据,则判定所述运算单元为最后一级运算单元;
如果移位寄存器向所述运算单元移出数据后,移位寄存器中剩余至少一位数据,则判定所述运算单元不是最后一级运算单元。
8.一种实现取余运算的方法,包括:
输入模块接收原始被除数和原始除数并转换为二进制无符号整数形式,比较原始被除数和原始除数的大小,当原始被除数等于原始除数时,将余数设置为0并输出给输出模块;当原始被除数小于原始除数时,将余数设置为原始被除数并输出给输出模块;当原始被除数大于原始除数时,将原始被除数和原始除数输出给运算模块;
如果运算模块获取到原始被除数和原始除数,则确定原始被除数的有效位宽n和原始
除数的有效位宽m,调用至多n-m+1个级联的运算单元进行减法运算得到余数,将最后一级
运算单元计算得到的余数输出给输出模块;其中,第j级运算单元进行减法运算得到位余
数;第一级运算单元截取原始被除数中从最高不为0的位开始的高位数据作为本级被除
数;除第一级运算单元外的第i级运算单元将上一级运算单元生成的位余数和原始被
除数中的位数据组合为被除数,所述位余数作为被除数的高位部分,所述位原始
被除数的数据作为被除数的低位部分;所有运算单元的除数为原始除数;所有运算单元按
照从高位到低位的顺序依次从原始被除数中截取位数据,任意两个运算单元截取的原始
被除数的数据位之间没有交集;;;;;;;二进制无符号整数的有效位宽是从最高不为0的位开始至最低位的比特序列的位
数;
输出模块输出余数;
其中,运算模块调用至多n-m+1个级联的运算单元进行减法运算得到余数,包括:
移位寄存器存储原始被除数从最高不为0的位开始至最低位的比特序列;移位指针控
制器确定原始被除数的有效位宽n和原始除数的有效位宽m,调用至多n-m+1个级联的运算
单元进行减法运算得到余数,按照从高位到低位的顺序依次从移位寄存器中向左移出位
数据至第级运算单元;
所述运算模块包括:移位寄存器、移位指针控制器和多个级联的运算单元。
10.如权利要求9所述的方法,其特征在于:
除第一级运算单元外的任意一级运算单元的被除数高位存储单元从上一级运算单元的余数存储单元获取数据作为本级被除数的高位部分;第一级运算单元的被除数高位存储单元不存储数据;
任意一级运算单元的被除数低位存储单元从移位寄存器获取一位或多位数据作为本级被除数的低位部分;
任意一级运算单元的被除数组合单元将被除数低位存储单元中的数据和被除数高位存储单元中的数据进行组合生成本级被除数,被除数低位存储单元中的数据作为本级被除数的低位部分,被除数高位存储单元中的数据作为本级被除数的高位部分;
任意一级运算单元的除数存储单元获取原始除数并作为本级除数进行存储;
任意一级运算单元的比较器比较被除数组合单元中的本级被除数与除数存储单元中的本级除数的大小,如果本级被除数大于或等于本级除数,则将本级被除数和本级除数发送至减法器;如果本级被除数小于本级除数,则将本级被除数作为本级余数发送至余数存储单元;
任意一级运算单元的减法器用本级被除数减去本级除数得到差值,将所述差值作为本级余数发送至余数存储单元;
任意一级运算单元的余数存储单元存储本级余数;
除最后一级运算单元外的任意一级运算单元的余数存储单元在移位指针控制器的控制下向下一级运算单元输出本级余数;最后一级运算单元的余数存储单元在移位指针控制器的控制下向输出模块输出本级余数;
其中,所述运算单元包括:被除数高位存储单元、被除数低位存储单元、被除数组合单元,除数存储单元,比较器,减法器和余数存储单元。
11.如权利要求8所述的方法,其特征在于:
移位指针控制器调用任意一级运算单元时,如果所述运算单元是第一级运算单元,则
从移位寄存器中按照从高位到低位的顺序连续向左移出m位数据至所述运算单元;如果所
述运算单元不是第一级运算单元,则确定所述运算单元的上一级运算单元生成的余数的有
效位宽,如果,则确定移位寄存器中剩余数据的有效位宽t,如果,则从移位
寄存器中按照从高位到低位的顺序向左移出所有数据至所述运算单元,如果,则从
移位寄存器中按照从高位到低位的顺序向左移出有效位宽为m的多位数据至所述运算单
元;如果,则确定移位寄存器中剩余数据的位宽t,如果,则从移位寄存器
中按照从高位到低位的顺序向左移出t位数据至所述运算单元;如果,则从移位
寄存器中按照从高位到低位的顺序向左移出m-a位数据至所述运算单元;其中,移位寄存器
中剩余数据的有效位宽是从最高不为0的位开始至最低位的比特序列的位数,移位寄存器
中剩余数据的位宽是剩余数据从最高位开始至最低位的比特序列的位数。
12.如权利要求11所述的方法,其特征在于:
除第一级运算单元外的任意一级运算单元的被除数高位存储单元从上一级运算单元的余数存储单元获取数据作为本级被除数的高位部分;第一级运算单元的被除数高位存储单元不存储数据;
任意一级运算单元的被除数低位存储单元从移位寄存器获取一位或多位数据作为本级被除数的低位部分;
任意一级运算单元的被除数组合单元将被除数低位存储单元中的数据和被除数高位存储单元中的数据进行组合生成本级被除数,被除数低位存储单元中的数据作为本级被除数的低位部分,被除数高位存储单元中的数据作为本级被除数的高位部分;
任意一级运算单元的除数存储单元获取原始除数并作为本级除数进行存储;
任意一级运算单元的比较器比较被除数组合单元中的本级被除数与除数存储单元中的本级除数的大小,如果本级被除数大于或等于本级除数,则将本级被除数和本级除数发送至减法器;如果本级被除数小于本级除数,则将本级被除数作为本级余数发送至余数存储单元;
任意一级运算单元的减法器用本级被除数减去本级除数得到差值,将所述差值作为本级余数发送至余数存储单元;
任意一级运算单元的余数存储单元存储本级余数;确定所述本级余数的有效位宽,将所述本级余数的有效位宽信息发送给移位指针控制器;
除最后一级运算单元外的任意一级运算单元的余数存储单元在移位指针控制器的控制下向下一级运算单元输出本级余数;最后一级运算单元的余数存储单元在移位指针控制器的控制下向输出模块输出本级余数;
其中,所述运算单元包括:被除数高位存储单元、被除数低位存储单元、被除数组合单元,除数存储单元,比较器,减法器和余数存储单元。
13.一种运算芯片,包括权利要求1-7中任一项所述的实现取余运算的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210754558.3A CN114840175B (zh) | 2022-06-30 | 2022-06-30 | 一种实现取余运算的装置、方法及运算芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210754558.3A CN114840175B (zh) | 2022-06-30 | 2022-06-30 | 一种实现取余运算的装置、方法及运算芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114840175A CN114840175A (zh) | 2022-08-02 |
CN114840175B true CN114840175B (zh) | 2022-09-13 |
Family
ID=82574945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210754558.3A Active CN114840175B (zh) | 2022-06-30 | 2022-06-30 | 一种实现取余运算的装置、方法及运算芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114840175B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09274560A (ja) * | 1996-04-05 | 1997-10-21 | Oki Micro Design Miyazaki:Kk | べき乗剰余演算回路及びべき乗剰余演算システム及びべき乗剰余演算のための演算方法 |
CN111813375A (zh) * | 2020-08-14 | 2020-10-23 | Oppo广东移动通信有限公司 | 求模运算处理方法及相关产品 |
KR102241252B1 (ko) * | 2020-12-03 | 2021-04-15 | 국민대학교산학협력단 | 모듈러 연산 방법, 장치 및 시스템 |
CN113805846A (zh) * | 2021-09-02 | 2021-12-17 | 哲库科技(北京)有限公司 | 取模运算方法、电路、电子设备和计算机可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763241B (zh) * | 2010-01-20 | 2012-02-08 | 西安电子科技大学 | 实现ecc密码体制中签名算法的大整数求模运算装置及求模方法 |
CN107766031B (zh) * | 2017-11-14 | 2020-06-19 | 京东方科技集团股份有限公司 | 分段式除法器、分段式除法运算方法、以及电子设备 |
CN108334305B (zh) * | 2018-01-18 | 2020-06-30 | 上海达梦数据库有限公司 | 一种除法运算方法、装置、设备和存储介质 |
-
2022
- 2022-06-30 CN CN202210754558.3A patent/CN114840175B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09274560A (ja) * | 1996-04-05 | 1997-10-21 | Oki Micro Design Miyazaki:Kk | べき乗剰余演算回路及びべき乗剰余演算システム及びべき乗剰余演算のための演算方法 |
CN111813375A (zh) * | 2020-08-14 | 2020-10-23 | Oppo广东移动通信有限公司 | 求模运算处理方法及相关产品 |
KR102241252B1 (ko) * | 2020-12-03 | 2021-04-15 | 국민대학교산학협력단 | 모듈러 연산 방법, 장치 및 시스템 |
CN113805846A (zh) * | 2021-09-02 | 2021-12-17 | 哲库科技(北京)有限公司 | 取模运算方法、电路、电子设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114840175A (zh) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8495119B2 (en) | Efficient check node message transform approximation for LDPC decoder | |
US20210349692A1 (en) | Multiplier and multiplication method | |
US20200218509A1 (en) | Multiplication Circuit, System on Chip, and Electronic Device | |
US20220334798A1 (en) | Floating-point number multiplication computation method and apparatus, and arithmetic logic unit | |
KR20170008149A (ko) | 공유 하드웨어 로직 유닛 및 그것의 다이 면적을 줄이는 방법 | |
CN111813375A (zh) | 求模运算处理方法及相关产品 | |
US9009209B2 (en) | Processor, control method of processor, and computer readable storage medium storing processing program for division operation | |
CN114840175B (zh) | 一种实现取余运算的装置、方法及运算芯片 | |
US6151612A (en) | Apparatus and method for converting floating point number into integer in floating point unit | |
US4038538A (en) | Integer and floating point to binary converter | |
US5945657A (en) | Constant divider | |
CN114168106A (zh) | 基于卷积神经网络的数据处理方法、装置及设备 | |
US20190286418A1 (en) | Architecture and instruction set to support integer division | |
US20050010632A1 (en) | Digital signal processor based on jumping floating-point arithmetic | |
US20190332355A1 (en) | Method and apparatus for pre-rounding in a multiplier-accumulator | |
US20140280405A1 (en) | Conversion of a normalized n-bit value into a normalized m-bit value | |
JP2991788B2 (ja) | 復号器 | |
US20060277246A1 (en) | Multiplication circuitry | |
US20230368496A1 (en) | Super resolution device and method | |
US11042359B2 (en) | Semiconductor device including an adder | |
CN111124312B (zh) | 数据去重的方法及其装置 | |
US20230325150A1 (en) | Multiple-input floating-point number processing method and apparatus | |
US8346840B2 (en) | Flexible accumulator for rational division | |
US9379735B1 (en) | Method and apparatus for signal saturation | |
JP2000010763A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230425 Address after: 10 Jialeng Road, Singapore # 09-11 Patentee after: Shenglong (Singapore) Pte. Ltd. Address before: 1605, floor 16, No. 9, North Fourth Ring West Road, Haidian District, Beijing 100080 Patentee before: SUNLUNE TECHNOLOGY DEVELOPMENT (BEIJING) Co.,Ltd. |