CN110688094B - 一种基于并行循环压缩的余数运算电路及方法 - Google Patents

一种基于并行循环压缩的余数运算电路及方法 Download PDF

Info

Publication number
CN110688094B
CN110688094B CN201910861698.9A CN201910861698A CN110688094B CN 110688094 B CN110688094 B CN 110688094B CN 201910861698 A CN201910861698 A CN 201910861698A CN 110688094 B CN110688094 B CN 110688094B
Authority
CN
China
Prior art keywords
carry
save
adder
bit
modulo
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
Application number
CN201910861698.9A
Other languages
English (en)
Other versions
CN110688094A (zh
Inventor
高剑刚
刘骁
赵冠一
张昆
唐勇
谢军
朱巍
王之辰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201910861698.9A priority Critical patent/CN110688094B/zh
Publication of CN110688094A publication Critical patent/CN110688094A/zh
Application granted granted Critical
Publication of CN110688094B publication Critical patent/CN110688094B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明属于计算机整数乘法校验设计技术领域,特别涉及一种基于并行压缩循环的余数运算电路及方法。包括多个输入端,分别用于输入多个同位宽的二进制数;模加法器,用于输出求余结果;一层或多层进位保留加法器组件,设置在多个输入端和模加法器之间;每一层进位保留加法器组件包括一个或者多个进位保留加法器;最上层的进位保留加法器的两个输出连接至模加法器的输入,其余每层进位保留加法器的和输出作为下层进位保留加法器的输入,其余每层进位保留加法器的进位输出向最左移动1位以后作为下层进位保留加法器的输入;同位宽的二进制数由整数拆分而成。仅在最后输出一级采用了模加法器,而中间级均采用进位保留加法器提高了电路的时序性能。

Description

一种基于并行循环压缩的余数运算电路及方法
技术领域
本发明属于计算机整数乘法校验设计技术领域,特别涉及一种基于并行循环压缩的余数运算电路及方法。
背景技术
整数乘法部件时序紧张,其可靠运行能力对全芯片影响巨大。通过对整数乘法部件进行实时检错,可实现进一步的容错操作。余数编码校验是整数运算部件中常用的检错技术,通过对输入数据、运算结果进行编码和校验,能达到对运算过程进行检错的目的。但由于校验过程需要对运算结果进行实时余数编码和比较,对整数乘法校验部件的时序提出了较高的要求。
现有技术中,通常采用模数M=2k-1对整数乘法的运算结果进行校验。对于n位的二进制数X=(xn-1,xn-2,…,x1,x0),若n=mk,可得
Figure DEST_PATH_IMAGE002
。其中,
Figure DEST_PATH_IMAGE004
,所以
Figure DEST_PATH_IMAGE006
在余数码生成逻辑中实现移位操作会导致较大面积开销。针对这一问题,可以根据性质
Figure DEST_PATH_IMAGE008
,将余数码中的p位左移等效为
Figure DEST_PATH_IMAGE009
位左移,从而相应减少移位器开销。
以32位二进制数的余数求解为例进行描述。 由公式
Figure DEST_PATH_IMAGE010
可知,一个32位数X除以M(=15)求余数的求解可由一个4层的模15加法器树实现。基于模15加法器树的余数生成逻辑如图1所示,由于每个模加法器的延迟要大于同位宽的并行加法器及2:1多路选择器的延迟,基于模加法器树的余数生成逻辑的时序列一般较为紧张。常用的并行加法器有行波进位(RIP)加法器、跳跃进位加法器(CSKA:Carry-SKip Adders)、进位选择加法器(CSLA:Caurry-SeLect AdderS)、超前进位加法器(CLA:Carry-Lookahead Adders)等。
发明内容
本发明为了解决上述技术问题,对余数运算电路进行组织优化,提供一种基于并行循环压缩的余数运算电路及方法。
一种基于并行循环压缩的余数运算电路,其特征在于,包括:
多个输入端,分别用于输入多个同位宽的二进制数;
模加法器,用于输出求余结果;
至少两层进位保留加法器组件,设置在所述多个输入端和所述模加法器之间;
每一层所述进位保留加法器组件包括一个或者多个进位保留加法器;
最上层的进位保留加法器的两个输出连接至所述模加法器的输入,其余每一层进位保留加法器的和输出作为上层进位保留加法器的输入,其余每一层进位保留加法器的进位输出向最左循环移动1位以后作为上层进位保留加法器的输入;
所述同位宽的二进制数由整数拆分而成。
上述技术方案中,仅在最后输出一级采用了模加法器,而中间级均采用进位保留加法器提高了电路的时序性能。
进一步的,所述多个输入端分别连接最底层的进位保留加法器的输入。
进一步的,所述多个输入端分别连接最底层的进位保留加法器的输入以及一个倒数第二层的进位保留加法器的输入。
作为优选,所述进位保留加法器为3:2进位保留加法器。
作为优选,所述进位保留加法器为4:2进位保留加法器。
作为优选,所述同位宽的二进制数的位数为k;所述模加法器为2k-1模加法器。
本发明还提供一种基于并行循环压缩的余数运算方法,其特征在于,包括:
步骤S1,将整数拆分为等位宽的多个二进制数并列进行进位保留运算;
步骤S2,将并列进行的一个或者多个进位保留运算的进位输出向最高位循环移1位以后的结果,以及,一个或者多个进位保留运算的和输出进行进位保留运算;
步骤S3,重复步骤S2直到仅剩一个进位输出和一个和输出;
步骤S4,将所述步骤S3得到的所述进位输出向最高位循环移1位以后的结果,以及,步骤S3得到的和输出进行模加法运算;
步骤S5,将步骤S4模加法运算的结果输出作为余数结果。
上述技术方案中,仅在最后输出步骤中进行模加法运算,而中间步骤均采用进位保留加法运算提高了电路的时序性能。
作为优选,所述步骤S2中,将每三个二进制数组合在一起进行进位保留运算。
作为优选,所述步骤S2中,将每四个二进制数组合在一起进行进位保留运算。
作为优选,所述步骤S1中,将整数拆分成多个k位二进制数并列进行进位保留运算;所述步骤S3中,将所述步骤S3得到的所述进位输出向最高位循环移1位以后的结果,以及,步骤S3得到的和输出进行模2k-1加法运算。
本发明具有下述有益效果:
本申请的余数电路减少了模加法器的使用,能在面积开销基本不增加的情况下,优化余数生成的逻辑时序。
附图说明
图 1是现有技术的余数电路示意图。
图2是本申请实施例的余数电路示意图。
具体实施方式
这里使用的术语仅用于描述特定实施例的目的,而不意图限制本发明。 除非另外定义,否则本文使用的所有术语具有与本发明所属领域的普通技术人员通常理解的相同的含义。 将进一步理解的是,常用术语应该被解释为具有与其在相关领域和本公开内容中的含义一致的含义。本公开将被认为是本发明的示例,并且不旨在将本发明限制到特定实施例。
实施例一
一种基于并行循环压缩的余数运算方法,其特征在于,包括:
步骤S1,将整数拆分为等位宽的多个二进制数并列进行进位保留运算。整数乘法运算的结果通常为32位或者64位整数。本实施例中以32位整数取余为例进行描述,可以将32位整数由按照高位至低位方向或者由低位至高位方向每4bit作为一个二进制数,从而将这个整数拆分成8个4bit的二进制数。当然,也可以将32位整采用相似的方法拆分成16个2bit的二进制数,或者4个8bit的二进制数,甚至也可以通过补位的方式拆分成11个3bit的二进制数。
步骤S2,将并列进行的一个或者多个进位保留运算的进位输出向最高位循环移1位以后的结果,以及,一个或者多个进位保留运算的和输出进行进位保留运算。当采用3:2进位保留加法器(Carry Save Adder,CSA)时,步骤S1中拆分出的多个二进制数每3个组成一组,每组二进制数中的3个二进制数被输入到同一个3:2CSA中,得到一个和输出和一个进位输出。当采用4:2进位保留加法器(Carry Save Adder,CSA)时,则步骤S1中拆分出的多个二进制数每4个组成一组,每组二进制数中的4个二进制数被输入到同一个4:2CSA中得到一个和输出和一个进位输出,和输出以及进位输出同样也为4bit二进制数。下文以采用3:2CSA进行进位保留加法运算为例进行描述,采用4:2CSA进行进位保留加法的运算与其类似,将不再赘述。
步骤S3,重复步骤S2直到仅剩一个进位输出和一个和输出。各CSA的进位输出朝着最高位方向循环移动1位的结果,各CSA的和输出,以及如果步骤S1中拆分出的二进制数的个数不是3的整数时(例如拆分成8个4bit二进制数时)则还包括多余的两个4bit二进制数,再次每3个数组成一组输出到另外一批3:2CSA中得到输出。由于3:2CSA输入3个数以后仅输出2个数作为结果,因此每通过步骤S2进行一次并行的进位保留加法运算,并行输出的输出值数量会减少一部分。再在并行输出的输出值基础上重复步骤S2,如此循环直到仅剩一个和输出及其对应的进位输出。
步骤S4,将所述步骤S3得到的所述进位输出向最高位循环移1位以后的结果,以及,步骤S3得到的和输出进行模加法运算。如果步骤S1中将整数拆分成多个k位二进制数,则该步骤中将步骤S3中进行模2k-1加法运算。例如,本实施例的步骤S1中将整数拆分成8个4bit二进制数时,步骤S3中则对应进行模15加法运算。
步骤S5,将步骤S3模加法运算的结果输出作为余数结果。
4bit的3:2CSA的运算可以表示为:
inputA[3:0]+inputB[3:0]+inputC[3:0]=SUM[3:0]+{CARRY[3:0],1'b0};
其中,inputA[3:0]、inputB[3:0]、inputC[3:0],分别表示输入3:2CSA的三个4bit二进制数A、B、C;
SUM[3:0]表示3:2CSA的和输出;
CARRY[3:0]表示3:2的进位输出;
{CARRY[3:0],1'b0}表示将CARRY[3:0]朝着最高位方向移1位的结果。
由于(inputA[3:0]+ inputB[3:0]+ inputC[3:0])的余数码和(SUM[3:0]+{CARRY[3:0],1'b0})的余数码是相同的。结合公式
Figure DEST_PATH_IMAGE012
可以得知,模加法运算中{CARRY[3:0],1'b0}与 {CARRY[2:0], CARRY[3]}的余数码一致。基于以上推导,可以采用CSA代替模加法器搭建树结构,仅在最顶层的输出级采用一个模加法器进行模加运算即可。
实施例二
一种基于并行循环压缩的余数运算电路,用于实现实施例一所述的余数运算方法,可用于对整数乘法部件进行余数校验。如图2所示,本实施例的余数运算电路包括多个输入端、一个模加法器、以及设置在该模加法器和多个输入端之间的一层或多层CSA组件。多个输入端,分别用于输入整数拆分成的多个同位宽的二进制数,例如在本实施例中用于输入32位整数拆成的8个4bit二进制数。每一层CSA组件包括一个或者多个CSA器件,例如,为3:2CSA或者为4:2CSA。本实施例中最底层的CSA组件包括两个3:2CSA器件,倒数第二层CSA组件也包括两个3:2CSA器件,倒数第三层CSA组件包括一个3:2CSA器件,最上层CSA组件也包括一个3:2CSA器件。
最上层的进位保留加法器的两个输出连接至模加法器的输入,模加法器对两个输入进行模加法运算以后的输出结果作为被拆分的整数的取余结果被输出。当输入的二进制数为整数拆分成的多个k位二进制数时,模加法器相应地为模2k-1加法器。
在输入端和模加法器之间的CSA器件的搭建规则为:其余每一层CSA的和输出SUM[3:0]作为上层CSA(下一层CSA或者下面第二层CSA)的输入,其余每一层CSA的进位输出CARRY[3:0]向最左循环移动1位以后(即{CARRY[2:0], CARRY[3]})作为上一层CSA的输入。例如本实施例中,将8个输入端输入的二进制数每3个一组(总共两组,并剩余两个输入端)输入到最底层的同一个3:2CSA中;最底层的两个3:2CSA的和输出SUM[3:0]、最底层两个3:2CSA的进位输出CARRY[3:0]向最左循环移动1位以后(即{CARRY[2:0], CARRY[3]})、以及剩余的两个输入端输入的2个二进制数据每3个一组,总共分为两组输入到倒数第二层的两个3:2CSA;倒数第二层的两个3:2CSA的和输出SUM[3:0]、最底层两个3:2CSA的进位输出CARRY[3:0]向最左循环移动1位以后(即{CARRY[2:0], CARRY[3]}),总共分为一组输入到倒数第三层的两个3:2CSA中;倒数第三层的3:2CSA的和输出SUM[3:0]、进位输出CARRY[3:0]向最左循环移动1位以后(即{CARRY[2:0], CARRY[3]})、以及倒数第二层剩余的一个输出总共分为一组输入到最顶层的3:2CSA中;最顶层的3:2CSA的和输出SUM[3:0]、进位输出CARRY[3:0]向最左循环移动1位以后输入到模加法器中。
虽然描述了本发明的实施方式,但是本领域普通技术人员可以在所附权利要求的范围内做出各种变形或修改。

Claims (6)

1.一种基于并行循环压缩的余数运算电路,其特征在于,包括:
多个输入端,分别用于输入多个同位宽的二进制数;
模加法器,用于输出求余结果;
至少两层进位保留加法器组件,设置在所述多个输入端和所述模加法器之间;
每一层所述进位保留加法器组件包括一个或者多个进位保留加法器;
所有所述进位保留加法器的输入分别连接至所述的多个输入端或其下层所述进位保留加法器的输出;最上层的进位保留加法器的两个输出连接至所述模加法器的输入,其余每一层进位保留加法器的和输出作为上层进位保留加法器的输入,其余每一层进位保留加法器的进位输出向最左循环移动1位以后作为上层进位保留加法器的输入;
所述同位宽的二进制数由整数按照高位至低位方向或者由低位至高位方向每k位作为一个二进制数拆分而成,使得所述同位宽的二进制数的位数为k,所述模加法器为2k-1模加法器;
所述多个输入端分别连接最底层的进位保留加法器的输入或者,所述多个输入端分别连接最底层的进位保留加法器的输入以及一个倒数第二层的进位保留加法器的输入。
2.根据权利要求1所述的一种基于并行循环压缩的余数运算电路,其特征在于:
所述进位保留加法器为3:2进位保留加法器。
3.根据权利要求1所述的一种基于并行循环压缩的余数运算电路,其特征在于:
所述进位保留加法器为4:2进位保留加法器。
4.一种基于并行循环压缩的余数运算方法,其特征在于,应用于权利要求1-3中任一项所述的余数运算电路,包括:
步骤S1,将整数拆分为等位宽的多个二进制数并列进行进位保留运算;
步骤S2,将并列进行的一个或者多个进位保留运算的进位输出向最高位循环移1位以后的结果,以及,一个或者多个进位保留运算的和输出进行进位保留运算;
步骤S3,重复步骤S2直到仅剩一个进位输出和一个和输出;
步骤S4,将所述步骤S3得到的所述进位输出向最高位循环移1位以后的结果,以及,步骤S3得到的和输出进行模加法运算;
步骤S5,将步骤S4模加法运算的结果输出作为余数结果;
所述步骤S1中,将整数拆分成多个k位二进制数并列进行进位保留运算;
所述步骤S3中,将所述步骤S3得到的所述进位输出向最高位循环移1位以后的结果,以及,步骤S3得到的和输出进行模2k-1加法运算。
5.根据权利要求4所述的一种基于并行循环压缩的余数运算方法,其特征在于:
所述步骤S2中,将每三个二进制数组合在一起进行进位保留运算。
6.根据权利要求4所述的一种基于并行循环压缩的余数运算方法,其特征在于:
所述步骤S2中,将每四个二进制数组合在一起进行进位保留运算。
CN201910861698.9A 2019-09-12 2019-09-12 一种基于并行循环压缩的余数运算电路及方法 Active CN110688094B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910861698.9A CN110688094B (zh) 2019-09-12 2019-09-12 一种基于并行循环压缩的余数运算电路及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910861698.9A CN110688094B (zh) 2019-09-12 2019-09-12 一种基于并行循环压缩的余数运算电路及方法

Publications (2)

Publication Number Publication Date
CN110688094A CN110688094A (zh) 2020-01-14
CN110688094B true CN110688094B (zh) 2021-01-26

Family

ID=69109227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910861698.9A Active CN110688094B (zh) 2019-09-12 2019-09-12 一种基于并行循环压缩的余数运算电路及方法

Country Status (1)

Country Link
CN (1) CN110688094B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113630236A (zh) * 2021-07-21 2021-11-09 浪潮电子信息产业股份有限公司 一种sm3的数据加密方法及相关装置
CN113434115B (zh) * 2021-07-22 2024-03-22 无锡江南计算技术研究所 一种浮点数尾数域余数运算电路及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699729A (zh) * 2013-12-17 2014-04-02 电子科技大学 模乘法器
CN109947393A (zh) * 2017-12-20 2019-06-28 航天信息股份有限公司 基于求余器的运算方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973470B2 (en) * 2001-06-13 2005-12-06 Corrent Corporation Circuit and method for performing multiple modulo mathematic operations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699729A (zh) * 2013-12-17 2014-04-02 电子科技大学 模乘法器
CN109947393A (zh) * 2017-12-20 2019-06-28 航天信息股份有限公司 基于求余器的运算方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Fast modulo 2n+1 multi-operand adders and residue generators;Vergos H T等;《Integration the Vlsi Journal》;20101231;正文第45页第2栏第2段、第46页第4节、图3、4 *

Also Published As

Publication number Publication date
CN110688094A (zh) 2020-01-14

Similar Documents

Publication Publication Date Title
EP0448367B1 (en) High speed digital parallel multiplier
US6938061B1 (en) Parallel counter and a multiplication logic circuit
TWI783295B (zh) 乘法器及乘法運算方法
US4623982A (en) Conditional carry techniques for digital processors
CN110688094B (zh) 一种基于并行循环压缩的余数运算电路及方法
CN112434801B (zh) 一种按照比特精度进行权重拆分的卷积运算加速方法
JP2005252820A (ja) 符号化方法および装置
EP2138931A1 (en) Combined polynomial and natural multiplier architecture
EP3885897B1 (en) Float division by constant integer using a predetermined number of modulo units
US20190278566A1 (en) System and method for long addition and long multiplication in associative memory
EP0467524B1 (en) Lookahead adder
US3842250A (en) Circuit for implementing rounding in add/subtract logic networks
JPH0312738B2 (zh)
US6978290B2 (en) Carry ripple adder
JP2001195235A (ja) 乗算装置
US10067821B2 (en) Apparatus and method for cyclic redundancy check
US5883825A (en) Reduction of partial product arrays using pre-propagate set-up
JPH03228122A (ja) 加算回路
EP1710689A1 (en) Combining circuitry for multipliers
US8583994B2 (en) Coding apparatus and method for handling quasi-cyclical codes
JP2608600B2 (ja) 2つの数の和のパリティビットの計算装置
JP4408727B2 (ja) ディジタル回路
US20030033343A1 (en) Carry-ripple adder
CN116762056A (zh) 脉动阵列中的乘法器和加法器
Coulston et al. Addition of BCD digits using non-standard codes

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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Gao Jiangang

Inventor after: Liu Xiao

Inventor after: Zhao Guanyi

Inventor after: Zhang Kun

Inventor after: Tang Yong

Inventor after: Xie Jun

Inventor after: Zhu Wei

Inventor after: Wang Zhichen

Inventor before: Liu Xiao

Inventor before: Zhao Guanyi

Inventor before: Zhang Kun

Inventor before: Tang Yong

Inventor before: Xie Jun

Inventor before: Zhu Wei

Inventor before: Wang Zhichen

GR01 Patent grant
GR01 Patent grant