CN114237550B - 一种基于Wallace树的多输入移位求和累加器 - Google Patents
一种基于Wallace树的多输入移位求和累加器 Download PDFInfo
- Publication number
- CN114237550B CN114237550B CN202111337903.5A CN202111337903A CN114237550B CN 114237550 B CN114237550 B CN 114237550B CN 202111337903 A CN202111337903 A CN 202111337903A CN 114237550 B CN114237550 B CN 114237550B
- Authority
- CN
- China
- Prior art keywords
- input data
- wallace
- accumulation
- compressor
- accumulation register
- 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
- 238000009825 accumulation Methods 0.000 claims abstract description 48
- 230000006835 compression Effects 0.000 claims abstract description 23
- 238000007906 compression Methods 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims description 11
- 230000000295 complement effect Effects 0.000 abstract description 12
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 238000007792 addition Methods 0.000 description 13
- 238000007781 pre-processing Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 1
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/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明属于智能处理器技术领域,具体提供一种基于Wallace树的多输入移位求和累加器,包括:异或门阵列、初始进位向量生成模块、Wallace压缩树、4‑2压缩器、累加寄存器及加法器;本发明通过异或门阵列和初始进位向量生成模块将原码和减法操作一次性转换为补码加法用于Wallace树,提供对多数据格式和加减法的原生支持,节省硬件开销;再基于4‑2压缩器与累加寄存器实现累加,4‑2压缩器将Wallace树的2个输出值与累加寄存器中存储值进行压缩得到2个中间结果、并输出至累加寄存器中更新存储值,节省了对Wallace树结果求和的进位链开销,同时在累加寄存器前移除了全加器进位链,极大地方便了流水线的设计,有利于提高时钟频率和累加效率。
Description
技术领域
本发明属于智能处理器技术领域,涉及多输入累加器,具体提供一种便于设计流水线、支持原码格式和减法的基于Wallace树的多输入移位求和累加器。
背景技术
流水线是一种提高硬件吞吐率的技术,通过在电路的适当位置插入流水寄存器,实现时钟频率的提高和处理数据量的提升。原码格式是一种采用符号和绝对值表示数值的数据格式,是浮点数格式中使用的数值表示方式;该数据格式往往将最高权重位作为符号位,其余位表示绝对值,符号位0为正数、1为负数。Wallace树是一种对多输入快速求和的电路结构,该结构通常基于3-2压缩器或4-2压缩器工作,只能计算加法,不能计算减法;3-2压缩器的实质是半加器,其功能是将3个输入数据的对应比特相加,并生成相应的进位值(C)、本位值(S);4-2压缩器与3-2压缩器的功能类似,将4个输入数据和1比特来自低位4-2压缩器的进位(Cin)相加,生成1个保留的本位值(S),一个保留的进位值(C),和一个输入高位4-2压缩器的进位值(Cout)。
移位求和累加是一种进行乘加运算时必不可少的计算步骤,是一个对每组内多个数据先进行固定偏移量的移位后再进行求和,并对多组数据的部分和进行累加的过程。基于Wallac e树的移位求和累加器的设计,目前主要是针对补码格式的求和运算,涉及原码或减法时,需要先将原码或减数转换为相应的补码,再进行移位求和累加操作;现有结构如图1所示,在处理大位宽数据时,需要将输入数据转化为补码进行操作,如图1中虚线框1所示,而补码转换需要很大的加法器来完成、如多组全加器进位链,电路面积较大,电路时延也不可忽视;同时在涉及流水线设计时,该结构先通过Wallace树级联加法器求得一组数据的部分和,再通过后续的独立累加器进行累加,如图1中虚线框2所示,即整个结构需要两个加法器来进行运算,在处理大位宽数据时,电路时钟和流水线设计较难控制。
发明内容
本发明的目的在于针对现有基于Wallace树的移位求和累加器存在的诸多问题,提供一种新型的基于Wallace树的多输入移位求和累加器,该结构便于设计流水线、支持原码格式和减法。本发明通过内置的异或门阵列和初始进位向量生成模块将原码和减法操作一次性转换为补码加法,提供原码格式和减法原生支持;通过Wallace树进行多级压缩,将所有输入数据压缩成2个中间值,并与累加寄存器保留2个中间值进行4-2压缩生成2个新的中间值保留,避免了累加寄存器前的全加器进位链,保证了更加简单的流水线切分和更加规整的电路。
为实现上述目的,本发明采用的技术方案如下:
一种基于Wallace树的多输入移位求和累加器,包括:异或门阵列、初始进位向量生成模块、Wallace压缩树、4-2压缩器、累加寄存器及加法器;其特征在于,
多个输入数据输入至异或门阵列,针对每一个输入数据,所述异或门阵列将该输入数据的每一比特数据与对应的操作符(0为加、1为减)做逻辑异或操作,并输出至Wallace压缩树;所述初始进位向量生成模块基于对应于多个输入数据的操作符生成初始进位向量、并输出至Wallace压缩树,所述初始进位向量位宽与移位后输入数据位宽保持一致、对应于任一移位后输入数据最低有效位(LSB)的比特置为该输入数据的操作符,其余比特均为0;
所述Wallace压缩树将输入进行压缩得到2个输出值,并输出至4-2压缩器;
所述4-2压缩器将2个输出值与累加寄存器中存储值进行压缩得到2个中间结果,并输出至累加寄存器中更新存储值;
所述加法器将累加寄存器中存储值相加得到累加结果。
相比于现有技术,本发明的有益效果在于:
本发明提供一种基于Wallace树的多输入移位求和累加器,将原码格式和减法操作拆分成反码和初始进位,即通过异或门阵列和初始进位向量生成模块将原码和减法操作一次性转换为补码加法用于Wallace树,提供了对多数据格式和加减法的原生支持,节省了硬件开销;再基于4-2压缩器与累加寄存器实现累加,4-2压缩器将Wallace树的2个输出值与累加寄存器中存储值进行压缩得到2个中间结果、并输出至累加寄存器中更新存储值,节省了对Wallace树结果求和的进位链开销,同时在累加寄存器前移除了全加器进位链,极大地方便了流水线的设计,有利于提高时钟频率和累加效率。
附图说明
图1为现有基于Wallace树的移位求和累加器的结构示意图。
图2为本发明基于Wallace树的多输入移位求和累加器的结构示意图。
图3为本发明基于Wallace树的多输入移位求和累加器中初始进位向量生成模块的原理示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步详细说明。
本实施例提供一种便于设计流水线、支持原码格式和减法的基于Wallace树的多输入移位求和累加器,如图2所示,具体包括:异或门阵列、初始进位向量生成模块、Wallace压缩树、4-2压缩器、累加寄存器及加法器;其中,
所述移位求和累加器包括x+1个输入数据,依次为:A0[i],A1[i],…,Ax[i];输入数据输入至异或门阵列,针对每一个输入数据,所述异或门阵列将该输入数据的每一比特数据与其对应的操作符(0为加、1为减)做逻辑异或操作,并输出至Wallace压缩树;即对需要进行数学减操作的输入数据取反码、对需要进行数学加操作的输入数据保留;例如,针对输入数据Ax[i],所述异或门阵列将每一比特数据与操作符opx做逻辑异或操作,得到对需要进行数学减操作的输入数据取反码、对需要进行数学加操作的输入数据保留的输入数据;所述操作符指原码中的符号位;
所述初始进位向量生成模块基于对应于输入数据的x+1个操作符生成初始进位向量、并输出至Wallace压缩树;所述初始进位向量位宽与移位后输入数据位宽保持一致、对应于任一移位后输入数据最低有效位(LSB)的比特置为该输入数据的操作符、其余比特均为0,即初始进位向量的后x+1比特依次为第x+1至第1个输入数据的操作符、其余比特均为0;具体如图3所示,以3个输入数据为例,每个输入数据为4比特,第1至第3个输入数据的操作符依次表示为op0、op1、op2,移位后输入数据的位宽为6特比,则初始进位向量位宽为6比特,初始进位向量中对应于移位后第1个输入数据的最低有效位为其倒数第1比特、置为op0,初始进位向量中对应于移位后第2个输入数据的最低有效位为其倒数第2比特、置为op1,初始进位向量中对应于移位后第3个输入数据的最低有效位为其倒数第3比特、置为op2;
所述Wallace压缩树将x+2个输入进行压缩得到2个输出值,并输出至4-2压缩器;
所述4-2压缩器将2个输出值与累加寄存器中存储值进行压缩得到2个中间结果,并输出至累加寄存器中更新存储值;
所述加法器将累加寄存器中存储值相加得到累加结果。
基于上述多输入移位求和累加器,其工作过程分为4个处理阶段:预处理阶段、压缩阶段、累加阶段、求和阶段,具体来讲:
所述预处理阶段由异或门阵列、初始进位向量生成模块实现:反码转换:将需要进行数学减操作的输入数据取反码,具体操作是对输入数据的每个二进制位与该输入数据的操作符(0为减,1为加)做逻辑异或操作;生成初始进位向量:生成一串二进制位,将所有需要进行数学减操作的数据的最低权重位对应的二进制位设置为1,其余二进制位均设置为0,具体操作是将每个输入数据的操作符放置在最低权重位对应的二进制位;预处理阶段的目的在于将求相反数的步骤拆解成“按位取反码”和“最低位加一”两个步骤,并利用移位累加各输入呈阶梯状对齐的特性,将各输入最低位应加上的1展开成一个向量,从而将原码、补码的加法和减法统一转换为适合Wallace树结构的补码加法;
所述压缩阶段由Wallace压缩树实现:将所有输入通过Wallace压缩算法进行高效求和,得到两个输出;此阶段的目的在于将预处理阶段中逻辑异或得到的数据和由操作符产生的初始进位向量等同视为待压缩数据进行压缩,直到剩余2个输出为止;Wallace树的的具体实现方式并无限制;
所述累加阶段由4-2压缩器与累加寄存器实现:4-2压缩器将压缩阶段产生的两个输出与累加寄存器中的两个暂存值进行压缩,得到两个新的中间结果;累加寄存器用于暂存本阶段4-2压缩器产生的2个中间结果;此阶段的目的在于完成累加,并移除累加寄存器前组合逻辑中的任何全加器进位链;
所述求和阶段由加法器(全加器进位链)实现:通过全加器进位链对累加寄存器中存储值进行求和,得到最终的二进制补码形式表示的累加结果。
更进一步的,下面以23输入通道、第n个通道左移n比特为例进行说明:
阶段1:预处理阶段;
a)反码转换:将23个输入数据的每个比特与相应的操作符(0为加、1为减)做逻辑异或操作,即对需要进行数学减操作的数据取反码,对需要进行数学加操作的数据保留;
b)生成初始进位向量:将23个操作符放在后23比特,与输入数据LSB权重对应比特位上,其余二进制位均置为0,组成初始进位向量;
阶段2:压缩阶段;
a)Wallace树:将23个经过逻辑异或操作的数和初始进位向量共24个数据通过Wallac e树进行压缩;本实施例中,第一层为3-2压缩器、输出16个数据,第二层为4-2压缩器、输出8个数据,第三层为4-2压缩器、输出4个数据,第四层为4-2压缩器、输出2个数据;
b)流水线:对Wallace树进行流水线切分,在第二层之后和第四层之后插入流水寄存器,两级流水寄存器之间均为大约8个异或门的时延;
阶段3:累加阶段:
a)4-2压缩器:将Wallace树产生的两个输出,与累加寄存器中的两个暂存值进行4-2压缩,输出2个新数据;
b)累加寄存器:存储当前阶段4-2压缩器产生的2个新数据;
阶段4:求和阶段;
a)全加器进位链:对累加寄存器中的2个数据求和,得到补码表示的移位累加结果。
综上所述,本发明提供一种基于Wallace树的多输入移位求和累加器本发明通过内置的异或门阵列和初始进位向量生成模块将原码和减法操作一次性转换为补码加法,提供原码格式和减法原生支持;通过Wallace树进行多级压缩,将所有输入数据压缩成2个中间值,并与累加寄存器保留2个中间值进行4-2压缩生成2个新的中间值保留,避免了累加寄存器前的全加器进位链,保证了更加简单的流水线切分。
以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。
Claims (1)
1.一种基于Wallace树的多输入移位求和累加器,包括:异或门阵列、初始进位向量生成模块、Wallace压缩树、4-2压缩器、累加寄存器及加法器;其特征在于:
多个输入数据输入至异或门阵列,针对每一个输入数据,所述异或门阵列将该输入数据的每一比特数据与对应的操作符做逻辑异或操作,并输出至Wallace压缩树;所述初始进位向量生成模块基于对应于多个输入数据的操作符生成初始进位向量,并输出至Wallace压缩树,所述初始进位向量位宽与移位后输入数据位宽保持一致,对应于任一移位后输入数据最低有效位的比特置为该输入数据的操作符,其余比特均为0;
所述Wallace压缩树将输入进行压缩得到2个输出值,并输出至4-2压缩器;
所述4-2压缩器将2个输出值与累加寄存器中存储值进行压缩得到2个中间结果,并输出至累加寄存器中更新存储值;
所述加法器将累加寄存器中存储值相加得到累加结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111337903.5A CN114237550B (zh) | 2021-11-10 | 2021-11-10 | 一种基于Wallace树的多输入移位求和累加器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111337903.5A CN114237550B (zh) | 2021-11-10 | 2021-11-10 | 一种基于Wallace树的多输入移位求和累加器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114237550A CN114237550A (zh) | 2022-03-25 |
CN114237550B true CN114237550B (zh) | 2023-10-13 |
Family
ID=80749193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111337903.5A Active CN114237550B (zh) | 2021-11-10 | 2021-11-10 | 一种基于Wallace树的多输入移位求和累加器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114237550B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816531B (zh) * | 2022-04-18 | 2023-05-02 | 海飞科(南京)信息技术有限公司 | 使用窄加法数据通道实现大位宽加操作数取数加操作的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666300A (en) * | 1994-12-22 | 1997-09-09 | Motorola, Inc. | Power reduction in a data processing system using pipeline registers and method therefor |
US6353843B1 (en) * | 1999-10-08 | 2002-03-05 | Sony Corporation Of Japan | High performance universal multiplier circuit |
US6611856B1 (en) * | 1999-12-23 | 2003-08-26 | Intel Corporation | Processing multiply-accumulate operations in a single cycle |
CN102681815A (zh) * | 2012-05-11 | 2012-09-19 | 深圳市清友能源技术有限公司 | 用加法器树状结构的有符号乘累加算法的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080281897A1 (en) * | 2007-05-07 | 2008-11-13 | Messinger Daaven S | Universal execution unit |
US8838664B2 (en) * | 2011-06-29 | 2014-09-16 | Advanced Micro Devices, Inc. | Methods and apparatus for compressing partial products during a fused multiply-and-accumulate (FMAC) operation on operands having a packed-single-precision format |
US10747502B2 (en) * | 2018-09-19 | 2020-08-18 | Xilinx, Inc. | Multiply and accumulate circuit |
-
2021
- 2021-11-10 CN CN202111337903.5A patent/CN114237550B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666300A (en) * | 1994-12-22 | 1997-09-09 | Motorola, Inc. | Power reduction in a data processing system using pipeline registers and method therefor |
US6353843B1 (en) * | 1999-10-08 | 2002-03-05 | Sony Corporation Of Japan | High performance universal multiplier circuit |
US6611856B1 (en) * | 1999-12-23 | 2003-08-26 | Intel Corporation | Processing multiply-accumulate operations in a single cycle |
CN102681815A (zh) * | 2012-05-11 | 2012-09-19 | 深圳市清友能源技术有限公司 | 用加法器树状结构的有符号乘累加算法的方法 |
Non-Patent Citations (2)
Title |
---|
钱柳羲. 高斯随机数发生器的研究与设计.《中国优秀硕士学位论文全文数据库 信息科技辑》.2009,(第11期),I137-57. * |
顾荣荣 ; .高性能可重构乘加单元设计.大众科技.2010,(第02期),28-30. * |
Also Published As
Publication number | Publication date |
---|---|
CN114237550A (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210349692A1 (en) | Multiplier and multiplication method | |
CN111832719A (zh) | 一种定点量化的卷积神经网络加速器计算电路 | |
CN112540743B (zh) | 面向可重构处理器的有无符号乘累加器及方法 | |
CN102043760B (zh) | 数据处理方法及系统 | |
CN114237550B (zh) | 一种基于Wallace树的多输入移位求和累加器 | |
CN116400883A (zh) | 一种可切换精度的浮点乘加器 | |
US7912891B2 (en) | High speed low power fixed-point multiplier and method thereof | |
CN115658008A (zh) | 一种资源复用型超越函数运算实现方法 | |
CN116205244B (zh) | 一种数字信号处理结构 | |
CN110825346A (zh) | 一种低逻辑复杂度的无符号近似乘法器 | |
CN114089949A (zh) | 一种可直接支持多操作数加法运算的数字信号处理器 | |
US7840628B2 (en) | Combining circuitry | |
CN113157247B (zh) | 一种可重构整型-浮点型乘法器 | |
CN115438614A (zh) | 高层次综合的快速线性规划方法 | |
CN116090513A (zh) | 矩阵乘法的运算方法及装置 | |
CN110399117B (zh) | 一种混合乘法加法处理方法及装置 | |
CN116126283B (zh) | 一种fpga卷积加速器的资源占用率优化方法 | |
Naregal et al. | Design and implementation of high efficiency vedic binary multiplier circuit based on squaring circuits | |
KR101318992B1 (ko) | 모듈로 n 연산방법 및 그 장치 | |
Patronik et al. | Design of residue generators with CLA/compressor trees and multi-bit EAC | |
CN116151340B (zh) | 并行随机计算神经网络系统及其硬件压缩方法、系统 | |
CN116991359B (zh) | Booth乘法器、混合Booth乘法器及运算方法 | |
CN117555513A (zh) | 一种基于分段查表法的fpga浮点数乘积解算方法 | |
CN219179915U (zh) | 多项式运算电路和信号处理装置 | |
Nithyashree et al. | Design of an efficient vedic binary squaring circuit |
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 |