CN114237550A - 一种基于Wallace树的多输入移位求和累加器 - Google Patents

一种基于Wallace树的多输入移位求和累加器 Download PDF

Info

Publication number
CN114237550A
CN114237550A CN202111337903.5A CN202111337903A CN114237550A CN 114237550 A CN114237550 A CN 114237550A CN 202111337903 A CN202111337903 A CN 202111337903A CN 114237550 A CN114237550 A CN 114237550A
Authority
CN
China
Prior art keywords
input data
wallace
tree
accumulation register
compressor
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.)
Granted
Application number
CN202111337903.5A
Other languages
English (en)
Other versions
CN114237550B (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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202111337903.5A priority Critical patent/CN114237550B/zh
Publication of CN114237550A publication Critical patent/CN114237550A/zh
Application granted granted Critical
Publication of CN114237550B publication Critical patent/CN114237550B/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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Abstract

本发明属于智能处理器技术领域,具体提供一种基于Wallace树的多输入移位求和累加器,包括:异或门阵列、初始进位向量生成模块、Wallace压缩树、4‑2压缩器、累加寄存器及加法器;本发明通过异或门阵列和初始进位向量生成模块将原码和减法操作一次性转换为补码加法用于Wallace树,提供对多数据格式和加减法的原生支持,节省硬件开销;再基于4‑2压缩器与累加寄存器实现累加,4‑2压缩器将Wallace树的2个输出值与累加寄存器中存储值进行压缩得到2个中间结果、并输出至累加寄存器中更新存储值,节省了对Wallace树结果求和的进位链开销,同时在累加寄存器前移除了全加器进位链,极大地方便了流水线的设计,有利于提高时钟频率和累加效率。

Description

一种基于Wallace树的多输入移位求和累加器
技术领域
本发明属于智能处理器技术领域,涉及多输入累加器,具体提供一种便于设计流水线、支持原码格式和减法的基于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压缩器、累加寄存器及加法器;其特征在于:
多个输入数据输入至异或门阵列,针对每一个输入数据,所述异或门阵列将该输入数据的每一比特数据与对应的操作符(0为加、1为减)做逻辑异或操作,并输出至Wallace压缩树;所述初始进位向量生成模块基于对应于多个输入数据的操作符生成初始进位向量、并输出至Wallace压缩树,所述初始进位向量位宽与移位后输入数据位宽保持一致、对应于任一移位后输入数据最低有效位(LSB)的比特置为该输入数据的操作符,其余比特均为0;
所述Wallace压缩树将输入进行压缩得到2个输出值,并输出至4-2压缩器;
所述4-2压缩器将2个输出值与累加寄存器中存储值进行压缩得到2个中间结果,并输出至累加寄存器中更新存储值;
所述加法器将累加寄存器中存储值相加得到累加结果。
CN202111337903.5A 2021-11-10 2021-11-10 一种基于Wallace树的多输入移位求和累加器 Active CN114237550B (zh)

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 true CN114237550A (zh) 2022-03-25
CN114237550B 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114816531A (zh) * 2022-04-18 2022-07-29 海飞科(南京)信息技术有限公司 使用窄加法数据通道实现大位宽加操作数取数加操作的方法

Citations (7)

* Cited by examiner, † Cited by third party
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
US20080281897A1 (en) * 2007-05-07 2008-11-13 Messinger Daaven S Universal execution unit
CN102681815A (zh) * 2012-05-11 2012-09-19 深圳市清友能源技术有限公司 用加法器树状结构的有符号乘累加算法的方法
US20130007075A1 (en) * 2011-06-29 2013-01-03 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
US20200089472A1 (en) * 2018-09-19 2020-03-19 Xilinx, Inc. Multiply and accumulate circuit

Patent Citations (7)

* Cited by examiner, † Cited by third party
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
US20080281897A1 (en) * 2007-05-07 2008-11-13 Messinger Daaven S Universal execution unit
US20130007075A1 (en) * 2011-06-29 2013-01-03 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
CN102681815A (zh) * 2012-05-11 2012-09-19 深圳市清友能源技术有限公司 用加法器树状结构的有符号乘累加算法的方法
US20200089472A1 (en) * 2018-09-19 2020-03-19 Xilinx, Inc. Multiply and accumulate circuit

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
钱柳羲: "高斯随机数发生器的研究与设计", no. 11, pages 137 - 57 *
顾荣荣;: "高性能可重构乘加单元设计", no. 02, pages 28 - 30 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114816531A (zh) * 2022-04-18 2022-07-29 海飞科(南京)信息技术有限公司 使用窄加法数据通道实现大位宽加操作数取数加操作的方法

Also Published As

Publication number Publication date
CN114237550B (zh) 2023-10-13

Similar Documents

Publication Publication Date Title
US20210349692A1 (en) Multiplier and multiplication method
CN111832719A (zh) 一种定点量化的卷积神经网络加速器计算电路
CN112540743B (zh) 面向可重构处理器的有无符号乘累加器及方法
CN109753268B (zh) 多粒度并行运算乘法器
CN101625634A (zh) 一种可重构的乘法器
CN105183425B (zh) 一种具有高精度低复杂度特性的固定位宽乘法器
CN116400883A (zh) 一种可切换精度的浮点乘加器
CN114237550A (zh) 一种基于Wallace树的多输入移位求和累加器
CN1781076A (zh) 组合多项式和自然乘法的乘法器架构
CN116450217A (zh) 一种多功能定点乘法和乘累加运算装置及方法
CN102184086B (zh) 一种Booth编码器及乘法器
CN115145536A (zh) 一种低位宽输入-低位宽输出的加法器树单元及近似乘加方法
CN116205244B (zh) 一种数字信号处理结构
CN110825346B (zh) 一种低逻辑复杂度的无符号近似乘法器
CN101110016A (zh) 子字并行整数乘法器
CN113157247B (zh) 一种可重构整型-浮点型乘法器
CN115526131A (zh) 多级编码近似计算Tanh函数的方法及装置
CN114089949A (zh) 一种可直接支持多操作数加法运算的数字信号处理器
Kumar et al. Complex multiplier: implementation using efficient algorithms for signal processing application
CN115438614A (zh) 高层次综合的快速线性规划方法
CN116126283B (zh) 一种fpga卷积加速器的资源占用率优化方法
US7840628B2 (en) Combining circuitry
CN112685001A (zh) 一种Booth乘法器及其运算方法
CN112732224A (zh) 一种面向卷积神经网络的可重构近似张量乘加单元及方法
Hossain et al. A fast and compact binary to BCD converter 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