CN116414352A - 电路、乘加器和电路优化方法 - Google Patents

电路、乘加器和电路优化方法 Download PDF

Info

Publication number
CN116414352A
CN116414352A CN202111676335.1A CN202111676335A CN116414352A CN 116414352 A CN116414352 A CN 116414352A CN 202111676335 A CN202111676335 A CN 202111676335A CN 116414352 A CN116414352 A CN 116414352A
Authority
CN
China
Prior art keywords
bit
circuit
analog
bits
value
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.)
Pending
Application number
CN202111676335.1A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202111676335.1A priority Critical patent/CN116414352A/zh
Priority to PCT/CN2022/130963 priority patent/WO2023124561A1/zh
Publication of CN116414352A publication Critical patent/CN116414352A/zh
Pending legal-status Critical Current

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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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/544Methods 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 for evaluating functions by calculation
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

本申请公开了一种电路、乘加器和电路优化方法,涉及电子设备领域,用于实现乘加器的功耗与精度的平衡。该电路包括数字加法电路和模拟加法电路;数字加法电路,用于将多组部分积中属于第一比特位范围的比特位按位进行数字累加,多组部分积为多个第一数值与多个第二数值分别相乘得到,第一比特位范围指一个第一数值和一个第二数值的乘积值的S个比特位,S为正整数,乘积值为一组部分积进行移位后按比特位累加得到;模拟加法电路,用于将多组部分积中属于第二比特位范围的各比特位的数值对应的模拟量按位进行模拟累加,第二比特位范围指乘积值的与第一比特位范围不重合的T个比特位,T为正整数,S+T小于或等于乘积值的位数。

Description

电路、乘加器和电路优化方法
技术领域
本申请涉及电子设备领域,尤其涉及一种电路、乘加器和电路优化方法。
背景技术
乘加器是一种对两个组数值按比特位相乘后得到乘积值,再将乘积值按照对应比特位相加的电路结构。如果乘加器用数字电路来实现加法则功耗较高,如果乘加器用模拟电路来实现加法则精度较低。
发明内容
本申请实施例提供一种电路、乘加器和电路优化方法,用于实现通过电路实现加法时的功耗与精度的平衡。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种电路,包括数字加法电路和模拟加法电路;数字加法电路,用于将多组部分积中属于第一比特位范围的比特位按位进行数字累加;多组部分积为多个第一数值与多个第二数值分别相乘得到;第一比特位范围指一个第一数值和一个第二数值的乘积值的S个比特位;S为正整数;乘积值为一组部分积进行移位后按比特位累加得到;模拟加法电路,用于将多组部分积中属于第二比特位范围的各比特位的数值对应的模拟量按位进行模拟累加;第二比特位范围指乘积值的与第一比特位范围不重合的T个比特位;T为正整数,S+T小于或等于乘积值的位数。
本申请实施例提供的电路,多组部分积中属于第一比特位范围的比特位通过数字加法电路按位进行数字累加,多组部分积中属于第二比特位范围的比特位的数值对应的模拟量通过模拟加法电路按位进行模拟累加,第一比特位范围指一个第一数值和一个第二数值的乘积值的S个比特位,第二比特位范围指乘积值的与第一比特位范围不重合的T个比特位。现有技术中,在对多组部分积中的与乘积值同一个比特位对应的数值进行累加时,出现部分数值采用数字累加另一部分数值采用模拟累加的情况,在这种情况下,对于该比特位来说,由于存在模拟累加的缘故体现不出数字累加的精度高的优势,又由于存在数字累加的缘故体现不出模拟累加功耗低的优势。而本申请实施例提供的电路,由于对多组部分积中的与乘积值同一个比特位对应的数值进行累加时,只采用数字累加或模拟累加中的一种,对于精度和功耗是可控的,即如果需要提高精度就采用数字累加,如果需要降低功耗就采用模拟累加,通过电路实现加法时做到了的功耗与精度的平衡。
在一种可能的实施方式中,还包括模数转换器;模数转换器,用于对模拟加法电路输出的至少一个求和模拟量进行模数转换得到至少一个第二求和值。通过将求和模拟量转换为数字量,便于与数字加法电路输出结果进行合并输出。
在一种可能的实施方式中,还包括移位电路,移位电路用于将至少一个第二求和值以及数字加法电路输出的至少一个第一求和值进行移位后相加。实现了模拟加法电路和数字加法电路输出结果的合并输出。
在一种可能的实施方式中,还包括乘法器;乘法器用于将多个第一数值与多个第二数值分别相乘,得到多组部分积。提供了一种如何得到部分积的方式。
在一种可能的实施方式中,第一比特位范围的比特位高于第二比特位范围的比特位。由于数字加法电路的精度高于模拟加法电路的精度,所以采用数字加法电路计算乘积值的高位有助于保证通过电路实现加法的精度大于阈值。
在一种可能的实施方式中,第一比特位范围指乘积值的最高S个比特位;第二比特位范围指乘积值的低于S个比特位的T个比特位。由于数字加法电路的精度高于模拟加法电路的精度,所以采用数字加法电路计算乘积值的高位有助于保证通过电路实现加法的精度大于阈值。
在一种可能的实施方式中,S+T小于乘积值的位数。乘积值的低位对应的部分积可以不被计算也可以不进行累加(即可以被截断),从而进一步降低功耗。
在一种可能的实施方式中,模拟量为电流。
在一种可能的实施方式中,乘法器包括存储器中的多条字线、多条位线和多个存储单元,一条字线耦合多个存储单元,一条位线耦合多个存储单元,模拟加法电路包括与多条位线分别耦合的多个缓存电路;与一条字线耦合的多个存储单元分别用于存储一个第二数值的一个比特位,一条字线用于输入一个第一数值的各个比特位;与一条位线耦合的多个存储单元分别用于向与一条位线耦合的缓存电路输出部分积中一个比特位对应的电流,与一条位线耦合的缓存电路用于对电流进行模拟累加,并输出给另一条位线耦合的缓存电路。该存储器可以为例如静态随机存取存储器(static random access memory,SRAM)、寄存器、锁存器、嵌入式存储器(embedded flash,eFlash)、阻变式随机存取存储器(resistive random access memory,RRAM)、相变存储器(phase change memory,PCM)等。
在一种可能的实施方式中,还包括与多条位线分别耦合的多个第一开关。当第一开关闭合时,第一开关所耦合的位线向该位线所耦合的缓存电路输出电流,当第一开关断开时,第一开关所耦合的位线不向该位线所耦合的缓存电路输出电流。通过控制第一开关的闭合或断开,可以实现不同求和模拟量的输出。
在一种可能的实施方式中,模拟量为电荷。
在一种可能的实施方式中,乘法器包括多组与门,模拟加法电路包括与多组与门的输出端分别耦合的多个电容;与门的两个输入端分别用于输入一个第一数值的第M比特位以及一个第二数值的第N比特位,同一组与门对应的M加N之和相同,同一组与门的输出端耦合的电容用于对多组部分积中一个比特位对应的电荷进行模拟累加。模拟加法电路通过对乘法器输出部分积对应的电荷进行累加的方式来实现对部分积的累加。
在一种可能的实施方式中,同一组与门耦合的电容的电容值相同。从而可以采用小电容值以提高精度。而传统加法电路中为了实现移位累加将与门输出端耦合的电容的电容值设置为呈2倍递增关系,电容值越大则精度越差面积也越大,造成精度很差并且面积非常大。
在一种可能的实施方式中,模拟加法电路,还用于:将多组部分积中第一比特位的数值对应的模拟量进行模拟累加后乘以系数,再与多组部分积中第二比特位的数值对应的模拟量进行累加后的数值相加,得到一个求和模拟量,第一比特位和第二比特位为第二比特位范围中的相邻比特位。可以充分利用模数转换器的级数,从而降低电路的功耗。
第二方面,提供了一种乘加器,包括如第一方面及其任一实施方式所述的加法电路。第二方面的技术效果参照第一方面及其任一实施方式的技术效果。
第三方面,提供了一种电路优化方法,应用于如第二方面所述的乘加器,该方法包括:计算乘加器在每个数据对下的功耗;每个数据对包括乘加器进行数字累加的第一比特位范围以及进行模拟累加的第二比特位范围;根据最优数据对生成优化后的乘加器;最优数据对为乘加器功耗最低时的第一比特位范围和第二比特位范围。此时生成的乘加器除了具有第一方面及其任一实施方式的技术效果,功耗是最低的。
在一种可能的实施方式中,还包括:根据乘加器在不同第一比特位范围下的精度,得到候选的第一比特位范围,第一比特位范围小于或等于乘积值的位数,乘积值为用于输入乘加器的两个数值相乘得到;根据乘加器在候选的第一比特位范围以及不同的第二比特位范围下的精度,得到候选的第二比特位范围;数据对包括候选的第一比特位范围和候选的第二比特位范围,乘加器在候选的第一比特位范围下的最小精度小于乘加器在候选的第一比特位范围以及不同的第二比特位范围下的最小精度。此时生成的乘加器均衡了精度和功耗。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在计算机上被执行时,使得计算机执行如第三方面及其任一实施方式所述的方法。
第五方面,提供了一种包含指令的计算机程序产品,当指令在计算机上被执行时,使得计算机执行如第三方面及其任一实施方式所述的方法。
关于第四方面至第五方面的技术效果参照第三方面及其任一实施方式的技术效果,在此不再赘述。
附图说明
图1为本申请实施例提供的一种乘加器的结构示意图;
图2为本申请实施例提供的一种多组乘积值的示意图;
图3为本申请实施例提供的另一种多组乘积值的示意图;
图4为本申请实施例提供的又一种多组乘积值的示意图;
图5为本申请实施例提供的一种乘法器的结构示意图;
图6为本申请实施例提供的另一种乘法器的结构示意图;
图7为本申请实施例提供的一种通过布斯编码实现第一数值与第二数值相乘得到一组部分积的示意图;
图8为本申请实施例提供的另一种通过布斯编码实现第一数值与第二数值相乘得到一组部分积的示意图;
图9为本申请实施例提供的一种电路优化方法的流程示意图;
图10为本申请实施例提供的另一种电路优化方法的流程示意图。
具体实施方式
需要说明的是,本申请实施例涉及的术语“第一”、“第二”等仅用于区分同一类型特征的目的,不能理解为用于指示相对重要性、数量、顺序等。
本申请实施例涉及的术语“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例涉及的术语“耦合”、“连接”应做广义理解,例如,可以指物理上的直接连接,也可以指通过电子器件实现的间接连接,例如通过电阻、电感、电容或其他电子器件实现的连接。
首先对本申请涉及的一些概念进行描述:
部分积:一个第一数值和一个第二数值相乘得到一组部分积,每个部分积可以包括多个比特位。当不进行压缩编码时,一个部分积可以为第一数值中每个比特位与第二数值中一个比特位相乘得到的值;或者,一个部分积可以为第二数值中每个比特位与第一数值中一个比特位相乘得到的值。当进行压缩编码时,一个部分积可以为第一数值与第二数值经过压缩编码相乘后得到的一个值。
乘积值:一个第一数值和一个第二数值相乘得到一组部分积,一组部分积进行移位后按比特位进行累加即可以得到一个第一数值和一个第二数值相乘后的乘积值。
乘加:由于一组部分积进行移位后按比特位进行累加即可以得到一个第一数值和一个第二数值相乘后的乘积值,所以多组部分积进行移位后按比特位进行累加即可以得到多个第一数值与多个第二数值分别相乘后的乘积值之和,这个过程即为乘加。
数字累加:通过数字电路实现两个比特位的数值相加即为数字累加。
模拟累加:通过模拟电路实现两个比特位的数值对应的模拟量相加即为模拟累加。
如图1所示,本申请实施例提供了一种乘加器(或称乘累加器(multiply andaccumulation,MAC)),包括:乘法器11、数字加法电路12、模拟加法电路13、模数转换器(analog to digital converter,ADC)14和移位电路15;K为正整数。
乘法器11用于将多个第一数值与多个第二数值分别相乘,得到多组部分积;多个第一数值的位数相同,多个第二数值的位数相同。
在一种可能的实施方式中,不进行压缩编码时,乘法器11可以为比特位相乘的乘法器,例如可以为与门,或者,可以为存储器中的存储单元,该存储器可以为例如静态随机存取存储器(static random access memory,SRAM)、寄存器、锁存器、嵌入式存储器(embedded flash,eFlash)、阻变式随机存取存储器(resistive random access memory,RRAM)、相变存储器(phase change memory,PCM)等。此时,在一个第一数值和一个第二数值相乘得到的一组部分积中,一个部分积可以为第一数值中每个比特位与第二数值中一个比特位相乘得到的值,例如图2中的x1[3]y1[0]x1[2]y1[0]x1[1]y1[0]x1[0]y1[0];或者,一个部分积可以为第二数值中每个比特位与第一数值中一个比特位相乘得到的值。
在另一种可能的实施方式中,为了降低乘法器的硬件开销,减少部分积的数量,乘法器11可以为压缩编码乘法器,例如可以为布斯(Booth)编码乘法器、正则有符号数编码(canonic signed digit,CSD)乘法器等等,此时,在一个第一数值和一个第二数值相乘得到的一组部分积中,一个部分积可以为第一数值与第二数值经过压缩编码相乘后得到的一个值,例如图8中的-Y、2Y、-2Y、Y中的一个。
假设第一数值的位数为E,第二数值的位数为F,则一个第一数值和一个第二数值的乘积值的位数为E+F。示例性的,以乘法器11为比特位相乘的乘法器为例,如图2-图4所示,假设多个第一数值分别为x1-x4,多个第二数值分别为y1-y4,第一数值和第二数值各占4位,第一数值x1的4位可以分别表示为x1[0]、x1[1]、x1[2]、x1[3],第二数值y1的4位可以分别表示为y1[0]、y1[1]、y1[2]、y1[3],以此类推。一个第一数值和一个第二数值的乘积值(例如x1*y1、x2*y2、x3*y3、x4*y4)的位数为4+4=8。
示例性的,如图2-图4所示,多组部分积中与一个第一数值和一个第二数值的乘积值(后文简称乘积值)的第0位对应的数值分别为x1[0]y1[0]、x2[0]y2[0]、x3[0]y3[0]、x4[0]y4[0]。多组部分积中与乘积值的第1位对应的数值分别为x1[1]y1[0]、x1[0]y1[1]、x2[1]y2[0]、x2[0]y2[1]、x3[1]y3[0]、x3[0]y3[1]、x4[1]y4[0]、x4[0]y4[1]。多组部分积中与乘积值的第2位对应的数值分别为x1[2]y1[0]、x1[1]y1[1]、x1[0]y1[2]、x2[2]y2[0]、x2[1]y1[1]、x2[0]y2[2]、x3[2]y3[0]、x3[1]y1[1]、x3[0]y3[2]、x4[2]y4[0]、x4[1]y1[1]、x4[0]y4[2]。以此类推,多组部分积中与乘积值的第6位对应的数值分别为x1[3]y1[3]、x2[3]y2[3]、x3[3]y3[3]、x4[3]y4[3]。
数字加法电路12用于将多组部分积中属于第一比特位范围的比特位按位进行数字累加,得到至少一个(例如S个,S为正整数)第一求和值。本申请不限定数字加法电路的具体形式,例如可以是阵列乘法器、进位保留加法器(carry save adder,CSA)、行波进位加法器(carry ripple adder,CRA)、华莱士树乘法器、近似加法器等电路中的加法树结构。第一比特位范围指一个第一数值和一个第二数值的乘积值的S个比特位。特别地,第一比特位范围指一个第一数值和一个第二数值的乘积值的最高S个比特位。由于数字加法电路12的精度高于模拟加法电路13的精度,所以采用数字加法电路12计算乘积值的高位有助于保证乘加器的精度大于阈值。
示例性的,对于图2来说,S=4,数字加法电路12可以对乘积值的第3位对应的16个部分积进行数字累加,得到一个第一求和值;数字加法电路12可以对乘积值的第4位对应的12个部分积进行数字累加,得到一个第一求和值;数字加法电路12可以对乘积值的第5位对应的8个部分积进行数字累加,得到一个第一求和值;数字加法电路12可以对乘积值的第6位对应的4个部分积进行数字累加,得到一个第一求和值。对于图3和图4来说,S=2,数字加法电路12可以对乘积值的第5位对应的8个部分积进行数字累加,得到一个第一求和值;数字加法电路12可以对乘积值的第6位对应的4个部分积进行数字累加,得到一个第一求和值。
一个比特位取0和1所对应的模拟量是不同的。模拟加法电路13用于将多组部分积中属于第二比特位范围的各比特位的数值对应的模拟量按位进行模拟累加,得到至少一个(例如T个,T为正整数)求和模拟量,模拟量可以为电荷、电流、电压、时间、脉冲个数等,本申请不作限定;第二比特位范围指乘积值的与第一比特位范围不重合的T个比特位,S+T小于或等于乘积值的位数。第一比特位范围的比特位高于所述第二比特位范围的比特位。在一种可能的实施方式或,第二比特位范围指一个第一数值和一个第二数值的乘积值的低于S个比特位的T个比特位。由于模拟加法电路13的功耗低于数字加法电路12的功耗,所以采用模拟加法电路13计算乘积值的低位有助于降低乘加器的功耗,实现精度与功耗的平衡。
示例性的,对于图2来说,T=2,模拟加法电路13可以对乘积值的第1位对应的8个部分积对应的模拟量进行模拟累加,得到一个求和模拟量;模拟加法电路13可以对乘积值的第2位对应的12个部分积对应的模拟量进行模拟累加,得到一个求和模拟量。对于图3来说,T=4,模拟加法电路13可以对乘积值的第1位对应的8个部分积对应的模拟量进行模拟累加,得到一个求和模拟量;模拟加法电路13可以对乘积值的第2位对应的12个部分积对应的模拟量进行模拟累加,得到一个求和模拟量;模拟加法电路13可以对乘积值的第3位对应的16个部分积对应的模拟量进行模拟累加,得到一个求和模拟量;模拟加法电路13可以对乘积值的第4位对应的12个部分积对应的模拟量进行模拟累加,得到一个求和模拟量。对于图4来说,T=3,模拟加法电路13可以对乘积值的第2位对应的12个部分积对应的模拟量进行模拟累加,得到一个求和模拟量;模拟加法电路13可以对乘积值的第3位对应的16个部分积对应的模拟量进行模拟累加,得到一个求和模拟量;模拟加法电路13可以对乘积值的第4位对应的12个部分积对应的模拟量进行模拟累加,得到一个求和模拟量。
可选的,模拟加法电路13还可以将多组部分积中第一比特位的数值对应的模拟量进行模拟累加后乘以系数,再与多组部分积中第二比特位的数值对应的模拟量进行累加后的数值相加,得到一个求和模拟量,其中,第一比特位和所述第二比特位为第二比特位范围中的相邻比特位。可以充分利用模数转换器14的级数,从而降低乘加器的功耗。示例性的,如图3所示,模拟加法电路13可以将第4位对应的模拟量进行模拟累加后乘以系数2,再与第3位对应的模拟量进行累加后的数值相加,从而得到一个求和模拟量;模拟加法电路13可以将第2位对应的模拟量进行模拟累加后乘以系数2,再与第1位对应的模拟量进行累加后的数值相加,从而得到一个求和模拟量。
另外,在乘加器满足精度的条件下,S+T可以小于或等于一个第一数值和一个第二数值的乘积值的位数K,即S+T≤K,乘积值的最高S+T位为有效位(即被最终保留),乘积值的最低K-(S+T)位对应的部分积可以不被计算也可以不进行累加(即可以被截断),从而进一步降低功耗。示例性的,对于图2和图3来说,第一数值和第二数值的乘积值的第0位被截断,对于图4来说,第一数值和第二数值的乘积值的第0位和第1位被截断。
模数转换器14用于对模拟加法电路13输出的至少一个求和模拟量进行模数转换,得到至少一个(例如T个)第二求和值,以便和第一求和值统一为数字形式的求和值。由于有T个求和模拟量进行模数转换,模数转换器14的级数为2T,相对于E+F位全部采用模拟求和时的模数转换器的级数2E+F,以及,相对于S+T位全部采用模拟求和时的模数转换器的级数2S+T,本申请实施例提供的模数转换器14可以大幅降低级数,降低模数转换器的功耗,可以采用动态范围更小精度更高的模数转换器,从而提高乘加器的精度并降低乘加器的功耗,实现乘加器的功耗与精度的平衡。
移位电路15用于将至少一个第一求和值和至少一个第二求和值进行移位后相加得到目标数据,目标数据的位数即为S+T。由于之前计算的每个求和值均未考虑在目标数据中所处位数,因此结合每个求和值在目标数据中所处位数就需要对每个求和值进行移位后再相加,才能得到目标数据。例如,假设目标数据的位数为4,四个求和值分别为A、B、C、D,则最终得到的目标数据为8*A+4*B+2*C+D。
下面对乘法器11和模拟加法电路13的几种可能实施方式进行说明:
在一种可能的实施方式中,模拟量为电流,模拟加法电路13可以通过对乘法器11输出部分积对应的电流进行累加的方式来实现对部分积的累加。如图5所示,乘法器11可以包括存储器中的多条字线(word line,WL)(例如WL0-WL3)、多条位线(bit line,BL)(例如BL0-BL3)和多个存储单元(例如SRAM中的8晶体管(transistor,8T)存储单元)111,一条字线可以耦合多个存储单元111(例如一行的存储单元111),一条位线也可以耦合多个存储单元111(例如一列的存储单元111)。一条字线耦合的多个存储单元111分别用于存储一个第二数值的一个比特位,例如,与字线WL0耦合的多个存储单元111分别用于存储第二数值y1的比特位y1[0]、y1[1]、y1[2]。一条字线用于分时依次输入一个第一数值的各个比特位(先输入低位后输入高位),例如,字线WL0用于分时依次输入第一数值x1的比特位x1[0]、x1[1]、x1[2]。与一条位线耦合的多个存储单元111分别用于向该位线输出部分积中一个比特位(即第一数值的一个比特位与第二数值的一个比特位相乘的部分积)对应的电流,例如,与位线BL2耦合的多个存储单元111分别用于向位线BL2输出部分积x1[0]*y1[2]、x2[0]*y2[2]、x3[0]*y3[2]、x4[0]*y4[2]对应的电流。
模拟加法电路13包括与多条位线分别耦合的多个缓存电路131(例如C0-C2),与一条位线耦合的第一缓存电路131用于对上述电流进行模拟累加,并输出给另一条位线耦合的第二缓存电路131,也就是说,第二缓存电路131不仅对所耦合的位线中的电流进行模拟累加,还累加了来自第一缓存电路131的电荷。最终,第二缓存电路131向ADC 14输出一个求和模拟量。例如,如图5中A所示,缓存电路C2将位线BL2中的电流进行模拟累加,并输出给缓存电路C1,缓存电路C1将位线BL1中的电流进行模拟累加,并输出给缓存电路C0,则缓存电路C0向ADC 14输出的求和模拟量包括了位线BL2、位线BL1以及位线BL0中的电流的累加。
可选的,该乘加器还可以包括分别与多条位线耦合的多个第一开关(例如K0-K2)。当第一开关闭合时,第一开关所耦合的位线向该位线所耦合的缓存电路131输出电流,当第一开关断开时,第一开关所耦合的位线不向该位线所耦合的缓存电路131输出电流。通过控制第一开关的闭合或断开,可以实现不同求和模拟量的输出。
示例性的,如图5中A所示,当第一开关K2、第一开关K1和第一开关K0均闭合时,位线BL2、位线BL1和位线BL0均可以输出电流。字线BL2所耦合的存储单元中分别存储y1[2]、y2[2]、y3[2]、y4[2],在第一个周期,四条字线(WL0-WL3)分别输入x1[0]、x2[0]、x3[0]、x4[0],则字线BL2所耦合的缓存电路C2累加的电荷对应的求和模拟量为x1[0]*y1[2]+x2[0]*y2[2]+x3[0]*y3[2]+x4[0]*y4[2]。字线BL1所耦合的存储单元中分别存储y1[1]、y2[1]、y3[1]、y4[1],在第二个周期,四条字线(WL0-WL3)分别输入x1[1]、x2[1]、x3[1]、x4[1],并且缓存电路C2累加的电荷转移至缓存电路C1,所以缓存电路C1累加的电荷对应的求和模拟量为(x1[0]*y1[2]+x2[0]*y2[2]+x3[0]*y3[2]+x4[0]*y4[2])+(x1[1]*y1[1]+x2[1]*y2[1]+x3[1]*y3[1]+x4[1]*y4[1])。字线BL0所耦合的存储单元中分别存储y1[0]、y2[0]、y3[0]、y4[0],在第三个周期,四条字线(WL0-WL3)分别输入x1[2]、x2[2]、x3[2]、x4[2],并且缓存电路C1累加的电荷转移至缓存电路C0,所以缓存电路C0累加的电荷对应的求和模拟量为(x1[0]*y1[2]+x2[0]*y2[2]+x3[0]*y3[2]+x4[0]*y4[2])+(x1[1]*y1[1]+x2[1]*y2[1]+x3[1]*y3[1]+x4[1]*y4[1])(x1[2]*y1[0]+x2[2]*y2[0]+x3[2]*y3[0]+x4[2]*y4[0])。该电路结构可以输出图2中乘积值的第2位的求和模拟量。缓存电路C0累加的电荷对应的求和模拟量通过ADC2输出即为一个第二求和值。
示例性的,如图5中B所示,当第一开关K2断开,第一开关K1和第一开关K0闭合时,第一开关K2所耦合的位线BL2不输出电流。字线BL1所耦合的存储单元中分别存储y1[1]、y2[1]、y3[1]、y4[1],在第一个周期,四条字线(WL0-WL3)分别输入x1[0]、x2[0]、x3[0]、x4[0],所以缓存电路C1累加的电荷对应的求和模拟量为(x1[0]*y1[1]+x2[0]*y2[1]+x3[0]*y3[1]+x4[0]*y4[1])。字线BL0所耦合的存储单元中分别存储y1[0]、y2[0]、y3[0]、y4[0],在第二个周期,四条字线(WL0-WL3)分别输入x1[1]、x2[1]、x3[1]、x4[1],并且缓存电路C1累加的电荷转移至缓存电路C0,所以缓存电路C0累加的电荷对应的求和模拟量为(x1[0]*y1[1]+x2[0]*y2[1]+x3[0]*y3[1]+x4[0]*y4[1])(x1[1]*y1[0]+x2[1]*y2[0]+x3[1]*y3[0]+x4[1]*y4[0])。该电路结构可以输出图2中乘积值的第1位的求和模拟量。缓存电路C0累加的电荷对应的求和模拟量通过ADC2输出即为一个第二求和值。
在另一种可能的实施方式中,模拟量为电荷,模拟加法电路13可以通过对乘法器11输出部分积对应的电荷进行累加的方式来实现对部分积的累加。如图6所示,乘法器11包括多组与门112,模拟加法电路13包括与多组与门112的输出端分别耦合的多个电容132,以及,与多个电容132耦合的多个第二开关133。各个电容132的电容值可以相同,从而可以采用小电容值以提高精度。而传统乘加器中为了实现移位累加将与门输出端耦合的电容的电容值设置为呈2倍递增关系,电容值越大则精度越差面积也越大,造成乘加器精度很差并且面积非常大。
其中,与门112的两个输入端分别用于输入一个第一数值的第M比特位以及一个第二数值的第N比特位,与门112的输出端用于输出部分积的一个比特位,同一组与门对应的M加N之和相同,同一组与门的输出端耦合的电容132用于对多组部分积中一个比特位对应的电荷进行模拟累加。如图6中A所示,当M=2时N=0,则M+N=2,例如第一个与门实现x1[2]*y1[0];当M=1时N=1,则M+N=2,例如第二个与门实现x1[1]*y1[1];当M=0时N=2,则M+N=2,例如第三个与门实现x1[0]*y1[2]。当第二开关133断开时,同一组与门的输出端通过电容132耦合至ADC 14,并向ADC 144输出求和模拟量,当完成一次求和模拟量输出后,第二开关133闭合来实现对电容132放电,准备下一次模拟累加。
示例性的,如图6中A所示,该电路结构可以输出图2中乘积值的第2位的求和模拟量。如图6中B所示,该电路结构可以输出图2中乘积值的第1位的求和模拟量。
乘法器11还可以采用各种编码电路来得到部分积,例如,布斯(Booth)编码、正则有符号数编码(canonic signed digit,CSD)编码等。
示例性的,如图7所示,提供了如何通过布斯编码实现第一数值与第二数值相乘得到一组部分积。布斯编码可以包括基4(Radix-4)布斯编码、基8(Radix-8)布斯编码等。以基4布斯编码为例,可以将第一数值X或第二数值Y中一个数值的每三个比特位作为乘法器11的一组输入,将另一个数值作为乘法器11的另一个输入,经过该乘法器11压缩编码后得到多个部分积。例如将第一数值X中的三个比特位{x2i+1,x2i,x2i-1}作为乘法器11的一组输入,i为整数,在图7中i可以取值0-3;将第二数值Y作为乘法器11的另一个输入,经过该乘法器11压缩编码后得到多个部分积。
该乘法器11的真值表见表1。其中,部分积Y表示与输入的Y相同,部分积2Y表示将输入的Y的所有比特位左移一位,部分积-Y表示取输入的Y的补码(即对Y取反加1),部分积-2Y表示将输入的Y的所有比特位左移一位后再取补码,部分积0表示各比特位为0。
表1
Figure BDA0003451436600000081
如图8所示,假设第一数值X=100111,第二数值Y=011001,则第一数值的四组{x2i+1,x2i,x2i-1}分别为{1,1,0}(i=0时)、{0,1,1}(i=1时)、{1,0,0}(i=2时)、{0,0,1}(i=3时),查表1可得到对应的多个部分积分别为-Y、2Y、-2Y、Y,通过对这些部分积的符号位进行扩展后,可以得到多个部分积-Y=111111100111、2Y=0000110010、-2Y=11001110、Y=011001,对这些部分积进行累加可以得到第一数值X和第二数值Y的乘积值为X*Y=001111001111。
本申请实施例还提供了一种电路优化方法,用于生成前文所述的乘加器并进行优化,可以应用于电子设计自动化(electronic design automation,EDA)中。如图9所示,该方法包括:
S101、获取第一位数和第二位数。
第一位数和第二位数指进行相乘的两个数值(例如前文所述的第一数值和第二数值)得到的乘积值的位数。
S102、根据第一位数和第二位数得到多个数据对。
前文所述的乘加器在每个数据对下的精度均大于阈值;每个数据对包括乘加器进行数字累加的第一比特位范围以及进行模拟累加的第二比特位范围。第一比特位范围小于或等于乘积值的位数。
具体的,如图10所示,步骤S102可以包括:
S1021、根据第一位数E和第二位数F确定乘加器输出的两个数值的乘积值的位数为E+F。
S1022、根据乘加器在不同第一比特位范围下的精度,得到候选的第一比特位范围。
例如,初始状态下令进行数字累加的第一比特位范围等于乘积值的位数E+F,并计算乘加器的精度,然后逐渐减小第一比特位范围并计算乘加器的精度,如果乘加器的精度大于第一阈值则将该第一比特位范围加入上述集合,直至乘加器的精度不大于第一阈值为止,停止将第一比特位范围加入该集合。该集合即包括所有候选的第一比特位范围。
需要说明的是,在计算乘加器的精度时,进行数字累加的第一比特位范围指两个数值的乘积值的最高S位。乘加器的精度可以通过与完全(即E+F位)采用数字累加的乘加器之间的误差来表示。
S1023、根据乘加器在候选的第一比特位范围以及不同的第二比特位范围下的精度,得到候选的第二比特位范围。
从该集合中选择一个候选的第一比特位范围,计算乘加器在该候选的第一比特位范围以及不同的第二比特位范围下的精度,将候选的第二比特位范围(精度大于第二阈值时的最小的第二比特位范围)以及该候选的第一比特位范围加入一个数据对。其中,乘加器在候选的第一比特位范围下的最小精度小于乘加器在候选的第一比特位范围以及不同的第二比特位范围下的最小精度。
例如,从该集合中选择一个候选的第一比特位范围S后,令进行模拟累加的第二比特位范围T为E+F-S,然后逐渐减小进行模拟累加的第二比特位范围T并计算乘加器的精度,直至乘加器的精度不大于第二阈值(第二阈值大于第一阈值)为止,则可以确定进行模拟累加的最小的第二比特位范围。
由于集合中候选的第一比特位范围可以有多个,所以确定的数据对也可以有多个。
S103、计算乘加器在每个数据对下的功耗,并从中确定最优数据对。
乘加器的功耗主要包括数字加法电路的功耗(受进行数字累加的第一比特位范围的影响)、模拟加法电路的功耗(受进行模拟累加的位数T的影响)以及ADC的功耗(受ADC输出的数字量的位数的影响)。特别地,ADC的功耗与ADC输出的数字量的位数并不是线性关系,例如输出的数字量为5比特的ADC的功耗比输出的数字量为4比特的ADC的功耗仅上升20%,但是输出的数字量为12比特的ADC的功耗比输出的数字量为11比特的ADC的功耗上升许多倍。
因此需要对这些功耗的影响因素综合计算,从而确定整体功耗最低时的数据对(第一比特位范围和第二比特位范围)作为最优数据对。
S104、根据最优数据对生成优化后的乘加器。
在确定最优数据对后,即可以生成前文所述的乘加器,主要影响数字加法电路的位数和模拟加法电路的位数。
需要说明的是,本申请涉及的乘加器可以应用于基于存储单元的存内计算或近存计算实现乘累加的架构,存储单元可以为例如静态随机存取存储器(static randomaccess memory,SRAM)、寄存器、锁存器、嵌入式存储器(embedded flash,eFlash)、阻变式随机存取存储器(resistive random access memory,RRAM)、相变存储器(phase changememory,PCM)等存储器中的存储单元。可以应用于第二数值变化不频繁,第一数值变化较频繁的场景,例如流处理加速芯片、神经网络加速芯片等。还可以应用于第二数值和第一数值变化均较频繁的场景,例如通信领域的信号处理芯片、神经网络芯片中的低延时乘加核等。
本申请实施例提供的电路、乘加器和电路优化方法,本申请实施例提供的加法电路,多组部分积中属于第一比特位范围的比特位通过数字加法电路按位进行数字累加,多组部分积中属于第二比特位范围的比特位的数值对应的模拟量通过模拟加法电路按位进行模拟累加,第一比特位范围指一个第一数值和一个第二数值的乘积值的S个比特位,第二比特位范围指乘积值的与第一比特位范围不重合的T个比特位。现有技术中,在对多组部分积中的与乘积值同一个比特位对应的数值进行累加时,出现部分数值采用数字累加另一部分数值采用模拟累加的情况,在这种情况下,对于该比特位来说,由于存在模拟累加的缘故体现不出数字累加的精度高的优势,又由于存在数字累加的缘故体现不出模拟累加功耗低的优势。而本申请实施例提供的加法电路,由于对多组部分积中的与乘积值同一个比特位对应的数值进行累加时,只采用数字累加或模拟累加中的一种,对于精度和功耗是可控的,即如果需要提高精度就采用数字累加,如果需要降低功耗就采用模拟累加,因此在通过电路实现加法时做到了功耗与精度的平衡。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在计算机上被执行时,使得计算机执行图9-图10中的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当指令在计算机上被执行时,使得计算机执行图9-图10中的方法。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个设备,或者也可以分布到多个设备上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个设备中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (17)

1.一种电路,其特征在于,包括数字加法电路和模拟加法电路;
所述数字加法电路,用于将多组部分积中属于第一比特位范围的比特位按位进行数字累加,所述多组部分积为多个第一数值与多个第二数值分别相乘得到,所述第一比特位范围指一个所述第一数值和一个所述第二数值的乘积值的S个比特位,S为正整数,所述乘积值为一组部分积进行移位后按比特位累加得到;
所述模拟加法电路,用于将所述多组部分积中属于第二比特位范围的各比特位的数值对应的模拟量按位进行模拟累加,所述第二比特位范围指所述乘积值的与所述第一比特位范围不重合的T个比特位,T为正整数,S+T小于或等于所述乘积值的位数。
2.根据权利要求1所述的电路,其特征在于,还包括模数转换器;
所述模数转换器,用于对所述模拟加法电路输出的至少一个求和模拟量进行模数转换得到至少一个第二求和值。
3.根据权利要求2所述的电路,其特征在于,还包括移位电路,所述移位电路用于将所述至少一个第二求和值以及所述数字加法电路输出的至少一个第一求和值进行移位后相加。
4.根据权利要求1-3任一项所述的电路,其特征在于,还包括乘法器,所述乘法器用于将多个第一数值与多个第二数值分别相乘,得到所述多组部分积。
5.根据权利要求1-4任一项所述的电路,其特征在于,所述第一比特位范围的比特位高于所述第二比特位范围的比特位。
6.根据权利要求5所述的电路,其特征在于,所述第一比特位范围指所述乘积值的最高S个比特位,所述第二比特位范围指所述乘积值的低于所述S个比特位的T个比特位。
7.根据权利要求1-6任一项所述的电路,其特征在于,S+T小于所述乘积值的位数。
8.根据权利要求1-7任一项所述的电路,其特征在于,所述模拟量为电流。
9.根据权利要求8所述的电路,其特征在于,所述乘法器包括存储器中的多条字线、多条位线和多个存储单元,一条字线耦合多个存储单元,一条位线耦合多个存储单元,
所述模拟加法电路包括与所述多条位线分别耦合的多个缓存电路;
与一条字线耦合的多个存储单元分别用于存储一个所述第二数值的一个比特位,所述一条字线用于输入一个所述第一数值的各个比特位;
与一条位线耦合的多个存储单元分别用于向与所述一条位线耦合的缓存电路输出所述部分积中一个比特位对应的电流,与所述一条位线耦合的缓存电路用于对所述电流进行模拟累加。
10.根据权利要求9所述的电路,其特征在于,还包括与所述多条位线分别耦合的多个第一开关。
11.根据权利要求1-7任一项所述的电路,其特征在于,所述模拟量为电荷。
12.根据权利要求11所述的电路,其特征在于,所述乘法器包括多组与门,所述模拟加法电路包括与所述多组与门的输出端分别耦合的多个电容;
所述与门的两个输入端分别用于输入一个所述第一数值的第M比特位以及一个所述第二数值的第N比特位,同一组与门对应的M加N之和相同,同一组与门的输出端耦合的电容用于对所述多组部分积中一个比特位对应的电荷进行模拟累加。
13.根据权利要求12所述的电路,其特征在于,同一组与门耦合的电容的电容值相同。
14.根据权利要求1-13任一项所述的电路,其特征在于,所述模拟加法电路,还用于:
将所述多组部分积中第一比特位的数值对应的模拟量进行模拟累加后乘以系数,再与所述多组部分积中第二比特位的数值对应的模拟量进行累加后的数值相加,得到一个求和模拟量,所述第一比特位和所述第二比特位为所述第二比特位范围中的相邻比特位。
15.一种乘加器,其特征在于,包括如权利要求1-14任一项所述的电路。
16.一种电路优化方法,应用于如权利要求15所述的乘加器,其特征在于,所述方法包括:
计算所述乘加器在每个数据对下的功耗,每个数据对包括所述乘加器进行数字累加的第一比特位范围以及进行模拟累加的第二比特位范围;
根据最优数据对生成优化后的所述乘加器,所述最优数据对为所述乘加器功耗最低时的第一比特位范围和第二比特位范围。
17.根据权利要求16所述的方法,其特征在于,还包括:
根据所述乘加器在不同第一比特位范围下的精度,得到候选的第一比特位范围,所述第一比特位范围小于或等于乘积值的位数,所述乘积值为用于输入所述乘加器的两个数值相乘得到;
根据所述乘加器在所述候选的第一比特位范围以及不同的第二比特位范围下的精度,得到候选的第二比特位范围;
所述数据对包括所述候选的第一比特位范围和所述候选的第二比特位范围,所述乘加器在所述候选的第一比特位范围下的最小精度小于所述乘加器在所述候选的第一比特位范围以及不同的第二比特位范围下的最小精度。
CN202111676335.1A 2021-12-31 2021-12-31 电路、乘加器和电路优化方法 Pending CN116414352A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111676335.1A CN116414352A (zh) 2021-12-31 2021-12-31 电路、乘加器和电路优化方法
PCT/CN2022/130963 WO2023124561A1 (zh) 2021-12-31 2022-11-09 电路、乘加器和电路优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111676335.1A CN116414352A (zh) 2021-12-31 2021-12-31 电路、乘加器和电路优化方法

Publications (1)

Publication Number Publication Date
CN116414352A true CN116414352A (zh) 2023-07-11

Family

ID=86997589

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111676335.1A Pending CN116414352A (zh) 2021-12-31 2021-12-31 电路、乘加器和电路优化方法

Country Status (2)

Country Link
CN (1) CN116414352A (zh)
WO (1) WO2023124561A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535901B1 (en) * 2000-04-26 2003-03-18 Sigmatel, Inc. Method and apparatus for generating a fast multiply accumulator
CN105808206B (zh) * 2016-03-04 2019-01-08 广州海格通信集团股份有限公司 基于ram实现乘法运算的方法及其系统
US10402168B2 (en) * 2016-10-01 2019-09-03 Intel Corporation Low energy consumption mantissa multiplication for floating point multiply-add operations
CN114424198A (zh) * 2019-09-17 2022-04-29 安纳富来希股份有限公司 乘法累加器

Also Published As

Publication number Publication date
WO2023124561A1 (zh) 2023-07-06

Similar Documents

Publication Publication Date Title
CN110209375B (zh) 一种基于radix-4编码和差分权重存储的乘累加电路
CN111431536B (zh) 子单元、mac阵列、位宽可重构的模数混合存内计算模组
TWI779285B (zh) 用於執行向量矩陣乘法的方法和設備,及向量矩陣乘法電路
WO2018113597A1 (zh) 矩阵乘加运算装置、神经网络运算装置和方法
US20200125328A1 (en) Charge-scaling multiplier circuit with dual scaled capacitor sets
US11809837B2 (en) Integer matrix multiplication based on mixed signal circuits
CN110941185B (zh) 一种用于二值神经网络的双字线6tsram单元电路
CN113627601A (zh) 子单元、mac阵列、位宽可重构的模数混合存内计算模组
CN113741858A (zh) 存内乘加计算方法、装置、芯片和计算设备
Choi et al. SRAM-based computing-in-memory macro with fully parallel one-step multibit computation
US10658993B2 (en) Charge-scaling multiplier circuit with digital-to-analog converter
CN114330694A (zh) 实现卷积运算的电路及其方法
CN111611529B (zh) 电容容量可变的电流积分和电荷共享的多位卷积运算模组
CN116414352A (zh) 电路、乘加器和电路优化方法
Huang et al. PACES: A partition-centering-based symmetry placement for binary-weighted unit capacitor arrays
US10348320B1 (en) Charge-scaling adder circuit
US11764801B2 (en) Computing-in-memory circuit
CN111611528B (zh) 电流值可变的电流积分和电荷共享的多位卷积运算模组
CN113741857A (zh) 一种乘累加运算电路
Choi et al. A low energy two-step successive approximation algorithm for ADC design
CN113672854A (zh) 一种基于电流镜和存储单元的存内运算方法、卷积运算方法、装置及其应用
Jeong et al. A Ternary Neural Network computing-in-Memory Processor with 16T1C Bitcell Architecture
Zheng et al. A novel two-split capacitor array with linearity analysis for high-resolution SAR ADCs
CN113031916A (zh) 乘法器、数据处理方法、装置及芯片
CN115756388B (zh) 多模式存算一体电路、芯片及计算装置

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