CN112612446B - 一种基于布斯编码的16*8近似乘法器片上动态计算系统 - Google Patents
一种基于布斯编码的16*8近似乘法器片上动态计算系统 Download PDFInfo
- Publication number
- CN112612446B CN112612446B CN202011480410.2A CN202011480410A CN112612446B CN 112612446 B CN112612446 B CN 112612446B CN 202011480410 A CN202011480410 A CN 202011480410A CN 112612446 B CN112612446 B CN 112612446B
- Authority
- CN
- China
- Prior art keywords
- multiplier
- multiplicand
- bit width
- effective
- module
- 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
- 238000004364 calculation method Methods 0.000 claims abstract description 80
- 238000004458 analytical method Methods 0.000 claims abstract description 7
- 238000011156 evaluation Methods 0.000 claims description 19
- 238000000034 method Methods 0.000 claims description 15
- 239000003973 paint Substances 0.000 claims 1
- 238000003909 pattern recognition Methods 0.000 claims 1
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000003068 static effect Effects 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/46—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using electromechanical counter-type accumulators
- G06F7/462—Multiplying; dividing
-
- 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5334—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
- G06F7/5336—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
- G06F7/5338—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于布斯编码的16*8近似乘法器片上动态计算系统,属于计算、推算或计数的技术领域。本发明中,输入的运算数据经过数据预加载模块读出有效位宽;将读到的有效位宽再输入相应的数据计算模式动态预解析模块,根据有效位宽将输入数据分为不同的类型,并作为配置近似方案的重要依据;将此前得到的数据位宽输入容许误差计算模块,计算最大容许误差;近似乘法器结构动态配置运算模块根据数据类型给出基础近似方案;比较该方案对应误差与最大容许误差,根据比较结果不断调整近似方案,最终得到最适合的方案,算出近似结果。在误差容许范围内找到最适合的近似配置方案,实时对乘法运算进行动态配置,使精度和功耗的选择更加灵活。
Description
技术领域
本发明涉及动态可配置近似乘法计算技术,具体地,涉及一种基于布斯编码的16*8近似乘法器片上动态计算系统,属于计算、推算或计数的技术领域。
背景技术
近年来,节能设计越来越受到人们的重视,这是因为大量的应用都需要低功耗的定制设计,但是这些硬件需要处理的数据量急剧增加,为了同时满足这两个要求,近似计算成为一种有效的解决方案。
随着神经网路、机器学习等与人类感知相关应用的日益普及,片上硬件的计算量逐渐增大,但在精度上并不要求完全的准确性和正确性,这是由于神经网络具有天然的容错性,因此,使用近似计算可以进一步地降低功耗,提升电路性能。
神经网络具有大量复杂的、并行的乘加运算,需要消耗大量的计算资源。在传统的近似电路中,近似配置往往是不可调的,对所有的输入数据不加区分地用同种方案近似,这通常会导致功耗收益不明显或计算精度超过容许范围。例如,对于一个复杂的神经网络,不同网络层对误差的容错范围不同,因此,对不同网络层配置不同的近似方案可以实现收益的最大化。
现有近似乘法动态配置方案有两种:一种方法是通过配置迭代次数控制计算精度,这种方案需要反复迭代,配置时间长,不能保证计算的实时性;另一种方案是根据数据位宽配置近似位数,但可调节的范围和结果具有盲目性。本申请旨在提出一种基于布斯编码的16*8近似乘法器片上动态计算系统以克服现有近似乘法动态配置方案的缺陷。
发明内容
本发明的发明目的是针对上述背景技术的不足,提供了一种基于布斯编码的16*8近似乘法器片上动态计算系统,在近似计算技术中根据输入系统的数据有效位宽动态调整近似乘法运算的配置,在误差容许范围内找到最适合的近似配置方案,实现了近似乘法运算进行动态配置,使精度和功耗的选择更加灵活,解决了现有近似乘法动态配置方案精度不佳的技术问题。
本发明为实现上述发明目的采用如下技术方案:
基于布斯编码的16*8近似乘法器片上动态计算系统,动态可配置地对多种输入数据实现近似计算。本发明的特点是在近似计算模块的基础上,新设计了一款动态误差配置系统,针对每组运算的数据都根据其数据特点找到最合适的近似方案,确保对每一组数据的近似误差都是在可接受范围内,大大提升了近似方案的可靠性。本发明核心模块为数据预加载模块、数据计算模式动态预解析模块、实时误差计算比较评估模块以及近似乘法器结构动态配置运算模块。
数据预加载模块包括首位判断电路子模块、先导0计数器电路子模块、先导1计数器电路子模块和减法电路子模块,串行地处理16bit乘数和8bit被乘数,先处理16bit乘数,再处理8bit被乘数,两次串行处理仅在最后的减法部分有差异;由首位判断电路子模块进行符号位的判断,将首位判断电路子模块判断为正数的数据送入先导0计数器电路子模块,将首位判断子模块判断为负数的数据送入先导1计数器电路子模块,将先导0计数器或先导1计数器读取到的数据再送入减法电路运算,计算公式如下:其中,t1和t2是先导0/1计数器读取到的值(t1为正整数,取值范围从1到16;t2为正整数,取值范围从1到8)。
16bit的数据读取器的有效位宽计算公式为:
16-t1+1 (1),
8bit的数据读取器的有效位宽计算公式为:
8-t2+1 (2)。
数据计算模式动态预解析模块包括16位乘数分类子模块和8位被乘数编码分类子模块。16位乘数分类子模块包括两个5bit数据比较器以及一个2bit结果寄存器;2bit结果寄存器初值置‘10’,16bit数据有效位宽首先进入第一个5bit数据比较器和5比较,小于或等于5时,2bit寄存器置00,比较结束,配置为全精度模式;16bit数据有效位宽大于5时,2bit寄存器低位置1。第二个5bit数据比较器的使能端连接2bit寄存器的低位,2bit寄存器低位是‘0’时,第二个5bit数据比较器不开启,分类模块工作结束;2bit寄存器低位是‘1’时,第二个比较器开始工作,将16bit数据有效位宽和10比较,16bit数据有效位宽小于或等于10时,2bit寄存器高位置‘0’,配置为高精度模式;16bit数据有效位宽大于10时,2bit寄存器高位置‘1’,配置为低精度模式。总结为:当16bit数据有效位宽为0~5时,配置为全精度模式,输出分类结果为‘00’;16bit数据有效位宽为6~10时,配置为高精度模式,输出分类结果为‘01’;16bit数据有效位宽为11~16时,配置为低精度模式,输出分类结果为‘11’。
8位被乘数编码分类子模块包括两个4bit数据比较器以及一个2bit寄存器;8位被乘数经过布斯编码将产生4组编码结果。当编码结果对应‘0’操作时,记为‘0’,当编码结果对应非‘0’操作时,记为‘x’。2bit寄存器初值置‘10’,8bit数据有效位宽首先进入第一个4bit数据比较器和3比较,8bit数据有效位宽小于或等于3时,2bit寄存器置‘00’,比较结束,8位被乘数的布斯编码为两位有效编码‘00xx’;8bit数据有效位宽大于3时,2bit寄存器低位置1。第二个4bit数据比较器的使能端连接2bit寄存器的低位,是‘0’的话,第二个4bit数据比较器不开启,分类模块工作结束;是‘1’时,第二个4bit数据比较器开始工作,将8bit数据有效位宽和6比较,8bit数据有效位宽小于或等于6时,2bit寄存器高位置‘0’,8位被乘数的布斯编码为三位有效编码‘0xxx’;8bit数据有效位宽大于6时,2bit寄存器高位置‘1’,8位被乘数的布斯编码为四位有效编码‘xxxx’。总结为:4位编码结果可被分类为:两位有效编码‘00xx’,输出分类结果为‘00’;三位有效编码‘0xxx’,输出分类结果为‘01’;四位有效编码‘xxxx’,输出分类结果为‘11’。
实时误差计算比较评估模块包括容许误差计算模块和当前误差比较模块,其中,容许误差计算模块由一系列运算器构成,运算逻辑根据16位乘数分类子模块的分类结果选择。对于全精度模式,最大容许误差值为0;对于高精度模式和低精度模式,最大容许误差会根据读取到的数据有效位宽对应得出,计算方法是取当前位宽乘法计算的可能的最大值时,绝对误差约为0.75%的情况,k1是16位乘数的有效位宽(k1是正整数,取值范围从1到16),k2是8位被乘数的有效位宽(k2是正整数,取值范围从1到8):
当前误差比较模块也根据16位乘数分类子模块的分类结果选择计算方式,在全精度模式下,当前误差为0,在高精度或低精度模式下计算当前误差的方法如下述公式,其中,v表示进位舍弃线的值,k1是16位乘数的有效位宽(k1是正整数,取值范围从1到16),k2是8位被乘数有效位宽(k2是正整数,取值范围从1到8):
比较当前误差和最大容许误差,当前误差大于最大容许误差时,输出结果‘1’,当前误差小于最大容许误差时,输出结果‘0’,误差比较结果输入到近似乘法器结构动态配置运算模块,用于进一步配置近似方案。
近似乘法器结构动态配置运算模块,包括若干1位全加器、若干1位或门加法器以及若干1位与门加法器组成的可配置加法运算单元以及参数配置模块。对于全精度模式,进位舍弃线初始设定为0;对于高精度模式,进位舍弃线初始设定为8;对于低精度模式,进位舍弃线初始设定为12。进位舍弃线将进一步根据误差计算比较模块的输出结果调整。具体包括步骤101至步骤105
步骤101:设定初始进位舍弃线的值,对于全精度模式,进位舍弃线初始设定为0;对于高精度模式,进位舍弃线初始设定为8;对于低精度模式,进位舍弃线初始设定为12。
步骤102:计算此时进位舍弃线取值下的当前误差,并比较当前误差和最大容许误差,如果当前误差大于最大容许误差,进入步骤103a,否则进入步骤103b。
步骤103a:发送误差比较结果至参数配置模块,进位舍弃线的值减1,进入步骤102;
步骤103b:发送误差比较结果至参数配置模块,参数配置模块检查之前是否出现过当前误差大于最大容许误差的情况,如果出现,进入步骤105,否则进入步骤104。
步骤104:进位舍弃线值加一,计算此时进位舍弃线取值下的当前误差,并比较当前误差和最大容许误差。如果当前误差大于最大容许误差,进入步骤103a,否则进入步骤103b。
步骤105:确定最终的进位舍弃线值,完成近似方案的动态配置。
近似乘法器结构动态配置运算模块包括三组可配置加法运算单元,根据8位被乘数编码分类模块的结果,可以进一步配置三组运算单元的开启情况,减少运算量。
在编码是0的情况下,对应该行的加数先乘以‘0’再送入加法单元运算,运算的加数都是‘0’,那么实际上该行的加法单元开启不开启都不会影响最后的结果,动态地根据布斯编码结果选择性地开启加法单元可以有效节省能耗。当8位被乘数编码分类结果为两位有效编码‘00xx’时,只需要开启第一组加法运算单元;同理,三位有效编码‘0xxx’时,开启第一组和第二组加法运算单元;四位有效编码‘xxxx’时,则开启全部加法运算单元。仅当在全精度模式下,电路不配置进位舍弃线。在高精度模式下,即对应16位数据分类模块结果为‘01’,此时进位舍弃线初值为‘8’,进位舍弃线可取的范围是“5、6、7、8、9、10、11、12”,为了便于配置乘法运算单元,将这8个数用3位二进制编码得:
编码 | 进位舍弃线 | 编码 | 进位舍弃线 |
000 | 5 | 100 | 9 |
001 | 6 | 101 | 10 |
010 | 7 | 110 | 11 |
011 | 8 | 111 | 12 |
在低精度模式下,即对应16位数据分类模块结果为‘11’,此时进位舍弃线初值为‘12’,进位舍弃线可取的范围是“9、10、11、12、13、14、15、16”,为了便于配置乘法运算单元,将这8个数用3位二进制编码得:
编码 | 进位舍弃线 | 编码 | 进位舍弃线 |
000 | 9 | 100 | 13 |
001 | 10 | 101 | 14 |
010 | 11 | 110 | 15 |
011 | 12 | 111 | 16 |
综合考虑可得,配置参数模块需要7bit的输入,其进位舍弃线配置参数和输入二进制码的低五位对应关系为:
编码 | 进位舍弃线 | 编码 | 进位舍弃线 | 编码 | 进位舍弃线 | 编码 | 进位舍弃线 |
01000 | 5 | 01100 | 9 | 11000 | 9 | 11100 | 13 |
01001 | 6 | 01101 | 10 | 11001 | 10 | 11101 | 14 |
01010 | 7 | 01110 | 11 | 11010 | 11 | 11110 | 15 |
01011 | 8 | 01111 | 12 | 11011 | 12 | 11111 | 16 |
7bit输入的高两位是读取8bit数据分类模块的结果,有:
进一步提出,整个系统的工作流程为:
步骤201:数据预加载模块读入乘数和被乘数,得到数据和有效位宽,并将结果输入数据计算模式动态预解析模块;
步骤202:16位乘数分类子模块根据16bit乘数有效位宽,将计算模式分为全精度、高精度和低精度三种模式,并将分类结果输入实时误差计算比较评估模块和近似乘法器结构动态配置运算模块;
步骤203:8位被乘数编码分类子模块将编码分为三种有效位模式,并将分类结果输入近似乘法器结构动态配置运算模块,同时依据基4布斯编码原理,把8位被乘数编码成4位;
步骤204:实时误差计算比较评估模块根据计算模式和有效位宽得出最大容许误差和当前误差,并将两个误差计算值进行比较,再将比较结果输入到近似乘法器结构动态配置运算模块;
步骤205:近似乘法器结构动态配置运算模块根据数据计算模式动态预解析模块的结果,初步选择近似方案,并根据实时误差计算比较评估模块的结果进一步调整近似方案;
步骤206:重复步骤204、205,直到得出最优近似方案,并输出最终计算结果。
本发明采用上述技术方案,具有以下有益效果:
(1)本发明提供了一种基于布斯编码的16*8近似乘法器片上动态计算系统,可根据输入数据有效位宽大小动态调整乘法运算单元参数配置,首先根据16bit乘数有效位宽配置计算模式,在确定的计算模式下结合乘数和被乘数的有效位宽计算当前误差和最大容许误差,根据误差比较结果动态配置进位舍弃线取值,克服了仅根据数据位宽配置近似位数的近似方案未考虑计算精度存在调节范围不明确的缺陷。
(2)本申请在处理部分积时,引入了布斯编码对8位被乘数进行编码压缩,并根据8位被乘数的有效布斯编码动态选择计算网络,将原先8位的乘数压成4位编码,原本会产生8个部分积的16*8乘数在编码后只会产生4个部分积,加入一个小的编码模块换取了整个运算模块的面积减半,动态选择计算网络则开启操作8位被乘数有效布斯编码的加法单元,在误差容许范围内动态选择最合适的近似配置方案,拥有比传统精确运算神经网络更小的硬件资源占用率,同时相比静态近似电路能够更加灵活地选择精度和功耗。
(3)本申请通过数据预加载模块、数据计算模式动态预解析模块、实时误差计算比较评估模块以及近似乘法器结构动态配置运算模块的配合动态调整配置方案,使得计算网络工作于满足精度要求且快速进行近似乘法运算的状态,是一种能够实现动态配置、快速近似乘法计算的片上动态计算技术,具有功耗低、模块面积小、检测精度高的优点。
附图说明
图1为本发明公开的16*8近似乘法器片上动态计算系统的整体架构图。
图2为本发明配置近似方案的流程图。
图3为本发明中16位乘数分类子模块的工作流程图。
图4为本发明中8位被乘数编码分类子模块的工作流程图。
图5为本发明动态配置运算网络的示意图。
图6为本发明16*8近似乘法器片上动态计算系统的整体工作流程图。
具体实施方式
下面结合附图对发明的技术方案进行详细说明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明做出的各种等价形式的修改均落入本申请所附权利要求所限定的范围。
本申请公开的基于布斯编码的16*8近似乘法器片上动态计算系统如图1所示,在内部各模块之间的协调控制下,根据输入数据的有效位宽,实现动态调节16*8近似乘法器参数配置的目的,即实现计算精度的动态调节并计算出当前数据位宽情况下最适合的近似结果,动态配置的整体工作流程如图6所示。
这里选取两个二进制数输入做示例,分别是16bit的‘0001 0101 0111 1111’和8bit的‘1110 1010’,首先将两个数据输入至数据预加载模块,数据预加载模块中的16bit数据读取器先处理16位数,首位判断电路读出符号位是‘0’,则表示16位数是正数,将16位数送入先导0计数器,计数得3个先导0,所以根据公式(1)得出16bit数的有效位宽是:16-3+1=14。16bit数据读取器输出16bit数及其有效位宽至数据计算模式动态预解析模块。
接着,数据预加载模块中的8bit数据读取器处理8位数,首位判断电路读出符号位是‘1’,则表示8位数是负数,将8位数送入先导1计数器,计数得3个先导1,所以根据公式(2)得出8位数的有效位宽是:8-3+1=6。8bit数据读取器输出8bit数及其有效位宽至数据计算模式动态预解析模块。
数据计算模式动态预解析模块中的16位乘数分类子模块处理16bit数有效位宽得到计算精度模式分类结果的流程如图3所示,将16bit数有效位宽14输入第一个5bit数据比较器和5比较,比较结果大于5,2bit寄存器的低位置‘1’,需要继续比较,继续将14输入第二个5bit数据比较器和10比较,比较结果大于10,2bit寄存器的高位置‘1’,确认需要低精度工作模式,寄存器值为‘11’。
数据计算模式动态预解析模块中的8位被乘数编码分类子模块处理8bit数有效位宽得到8bit数布斯编码分类结果的流程如图4所示,将8bit数有效位宽6输入第一个4bit数据比较器和3比较,比较结果大于3,2bit寄存器的低位置‘1’,需要继续比较,继续将6输入第二个4bit数据比较器和6比较,比较结果小于等于6,2bit寄存器的高位置‘0’,确认是三位有效编码,寄存器值为‘01’。
动态配置近似方案的流程如图2所示,包括如下八个步骤:
步骤一:实时误差计算比较评估模块用数据预加载模块读取到的数据有效位宽计算当前情况下对应的最大容许误差,按照公式(3)有:26+14-7=213=8192。
步骤二:近似乘法器结构动态配置运算模块中的参数配置模块读取16位乘数分类子模块的寄存器,读出‘11’,需要工作在低精度模式,进位舍弃线初值取12,近似乘法器结构动态配置运算模块将这个初值发给实时误差计算比较评估模块,根据公式(4)得到低精度时的当前误差为:ε=220-10+6·212-4=2560。
步骤三:实时误差计算比较评估模块中的误差比较模块将低精度时的当前误差和最大容许误差作比较,得2560<8192,误差比较模块输出‘0’,近似乘法器结构动态配置运算模块中的参数配置模块检查误差比较模块之前的输出结果,之前的输出结果未出现过‘1’并且当前比较误差小于最大容许误差,参数配置模块将进位舍弃线加一得到13并反馈13至实时误差计算比较评估模块中的当前误差计算模块,当前误差计算模块根据公式(4)再次计算当前误差得:ε=220-10+6·213-4=4096。
步骤四:实时误差计算比较评估模块中的误差比较模块将4096和最大容许误差作比较,得4096<8192,误差比较模块输出‘0’,近似乘法器结构动态配置运算模块中的参数配置模块检查误差比较模块之前的输出结果,之前的输出结果未出现过‘1’并且当前比较误差小于最大容许误差,参数配置模块将进位舍弃线加一得到14并返回14至实时误差计算比较评估模块中的当前误差计算模块,当前误差计算模块根据公式(4)计算当前误差得:ε=220-10+6·214-4=7168。
步骤五:实时误差计算比较评估模块中的误差比较模块将7168和最大容许误差作比较,得7168<8192,误差比较模块输出‘0’,近似乘法器结构动态配置运算模块中的参数配置模块检查误差比较模块之前的输出结果,之前的输出结果未出现过‘1’并且当前比较误差小于最大容许误差,参数配置模块将进位舍弃线加一得到15并反馈15至实时误差计算比较评估模块中的当前误差计算模块,当前误差计算模块根据公式(4)计算当前误差得:ε=220-10+6·215-4=13312。
步骤六:实时误差计算比较评估模块中的误差比较模块将13312和最大容许误差作比较,得13312>8192,误差比较模块输出‘1’,发送误差比较模块输出结果至近似乘法器结构动态配置运算模块中的参数配置模块,参数配置模块将进位舍弃线减一得到14并反馈14至实时误差计算比较评估模块中的当前误差计算模块,当前误差计算模块根据公式(4)计算当前误差得:ε=220-10+6·214-4=7168。
步骤七:实时误差计算比较评估模块中的误差比较模块将7168和最大容许误差作比较,得7168<8192,误差比较模块输出‘0’,近似乘法器结构动态配置运算模块检查误差比较模块之前的输出结果,之前的输出结果出现过‘1’,则表示进位舍弃线等于14时的低精度工作模式是最适合当前位宽的近似方案,参数配置模块发送最适合当前位宽的近似方案的进位舍弃线取值至运算网络控制器。
步骤八:近似乘法器结构动态配置运算模块中的运算网络控制器接收进位舍弃线取值的同时读取8位被乘数编码分类子模块的寄存器,读到‘01’,对应三位有效编码‘0xxx’,即,需要对8bit被乘数布斯编码的低三位进行乘法运算,采用图5所示运算网络对16bit乘数和8bit被乘数布斯编码的低三位进行加法运算,该运算网络包括三组可配置的加法运算单元后,第一组加法单元表示对16bit乘数和8bit被乘数布斯编码的低两位00xx进行加法运算,第二组加法单元表示对16bit乘数和8bit被乘数布斯编码的次高位0x00进行加法运算,第三组加法单元表示对16bit乘数和8bit被乘数布斯编码的最高位x000进行加法运算,本例中8位被乘数编码分类子模块分类结果表示8bit被乘数布斯编码为三位有效编码‘0xxx’,因此只需要只开启运算网络的第一组和第二组加法运算单元,给控制器输入编码‘0111101’,网络就会开启第一组合第二组加法运算单元并配置进位舍弃线等于14,进行近似计算,输出最后计算结果。
Claims (10)
1.一种基于布斯编码的16*8近似乘法器片上动态计算系统,其特征在于,包括:
数据预加载模块,其输入端接收16bit乘数和8bit被乘数,输出16bit乘数的有效位宽和8bit被乘数的有效位宽;
数据计算模式动态预解析模块,其输入端接收16bit乘数的有效位宽和8bit被乘数的有效位宽,对16bit乘数的有效位宽进行分类处理后得到计算模式识别结果,对8bit被乘数的布斯编码进行分类处理后得到8bit被乘数的有效布斯编码;
实时误差计算比较评估模块,其输入端接收16bit乘数的有效位宽和8bit被乘数的有效位宽以及计算模式识别结果,根据16bit乘数的有效位宽和8bit被乘数的有效位宽计算最大容许误差,根据计算16bit乘数的有效位宽和8bit被乘数的有效位宽、计算模式识别结果以及进位舍弃线初始值计算当前误差,输出当前误差和最大容许误差的误差比较结果;及,
近似乘法器结构动态配置运算模块,其输入端接收计算模式识别结果、8bit被乘数的有效布斯编码、误差比较结果,以减小进位舍弃线取值使得当前误差小于最大容许误差为原则更新进位舍弃线取值,输出更新后的进位舍弃线取值至实时误差计算比较评估模块,根据更新后的进位舍弃线取值以及8bit被乘数的有效布斯编码配置运算网络,所述运算网络按照配置参数接入相应取值的进位舍弃线,并开启运算网络中对16bit乘数和8bit被乘数有效布斯编码进行运算的加法单元。
2.根据权利要求1所述一种基于布斯编码的16*8近似乘法器片上动态计算系统,其特征在于,所述数据预加载模块包括:
首位判断电路子模块,其输入端接收16bit乘数或8bit被乘数,输出16bit乘数或8bit被乘数的符号位判断结果;
先导0计数器电路子模块,其输入端接收符号位判断结果为正数的数据,读取输入数据中0的个数;
先导1计数器电路子模块,其输入端接收符号位判断结果为负数的数据,读取输入数据中1的个数;及,
减法电路子模块,其输入端接收先导0计数器电路子模块的输出结果或先导1计数器电路子模块的输出结果,输出16bit乘数或8bit被乘数的有效位宽。
3.根据权利要求1所述一种基于布斯编码的16*8近似乘法器片上动态计算系统,其特征在于,所述数据计算模式动态预解析模块包括16位乘数分类子模块,16位乘数分类子模块包括:
第一5bit数据比较器,其输入端接收16bit乘数的有效位宽,在16bit乘数有效位宽小于或等于5时置结果寄存器为00,在16bit乘数有效位宽大于5时置结果寄存器的低位为1;
第二5bit数据比较器,其使能端连接结果寄存器的低位,其输入端接第一5bit数据比较器的输出端,在结果寄存器低位为1且16bit乘数有效位宽大于5但小于10时置结果寄存器的高位为0,在结果寄存器低位为1且16bit乘数有效位宽大于10时置结果寄存器的高位为1;及,
结果寄存器,存储表示全精度计算模式的00、表示高精度计算模式的01、表示低精度计算模式的11。
4.根据权利要求1所述一种基于布斯编码的16*8近似乘法器片上动态计算系统,其特征在于,所述数据计算模式动态预解析模块包括8位被乘数编码分类子模块,8位被乘数编码分类子模块包括:
第一4bit数据比较器,其输入端接8bit被乘数有效位宽,在8bit被乘数有效位宽小于或等于3时置结果寄存器为00,在8bit被乘数有效位宽大于3时置结果寄存器的低位为1;
第二4bit数据比较,其使能端连接结果寄存器的低位,其输入端接收第一4bit数据比较器的输出端,在结果寄存器的低位为1且8bit被乘数有效位宽大于3但小于6时置结果寄存器的高位为0,在结果寄存器的低位为1且8bit被乘数有效位宽大于6时置结果寄存器的高位为1;及,
结果寄存器,存储表示8bit被乘数有效布斯编码为‘00xx’的00、表示8bit被乘数有效布斯编码为‘0xxx’的01、表示8bit被乘数有效布斯编码为‘xxxx’的11,其中,x表示布斯编码的有效位,0表示布斯编码的无效位。
5.根据权利要求1所述一种基于布斯编码的16*8近似乘法器片上动态计算系统,其特征在于,根据16bit乘数的有效位宽和8bit被乘数的有效位宽计算最大容许误差的公式为:其中,ε容许为最大容许误差,k1为16bit乘数的有效位宽,k2为8bit被乘数的有效位宽,k1、k2为正整数,1≤k1≤16,1≤k2≤8。
6.根据权利要求1所述一种基于布斯编码的16*8近似乘法器片上动态计算系统,其特征在于,根据计算16bit乘数的有效位宽和8bit被乘数的有效位宽、计算模式识别结果以及进位舍弃线初始值计算当前误差的公式为:其中,ε高精度、ε低精度为高精度计算模式下的当前误差、低精度计算模式下的当前误差,k1为16bit乘数的有效位宽,k2为8bit被乘数的有效位宽,k1、k2为正整数,1≤k1≤16,1≤k2≤8,v为进位舍弃线的取值。
7.根据权利要求1所述一种基于布斯编码的16*8近似乘法器片上动态计算系统,其特征在于,以减小进位舍弃线取值使得当前误差小于最大容许误差为原则更新进位舍弃线取值的具体方法包括如下步骤:
A、根据计算模式识别结果初始化进位舍弃线的值;
B、根据进位舍弃线初始值计算当前误差并比较当前误差和最大容许误差;
C、在当前误差大于最大容许误差时将进位舍弃线的取值减1,返回B;
D、在当前误差小于或等于最大容许误差且之前计算的当前误差超过最大容许误差时保留当前进位舍弃线的取值;
E、在当前误差小于或等于最大容许误差且之前计算的当前误差未超过最大容许误差时将进位舍弃线的取值加1,返回B。
8.根据权利要求7所述一种基于布斯编码的16*8近似乘法器片上动态计算系统,其特征在于,步骤A中,全精度计算模式下的进位舍弃线初始值设定为0,高精度计算模式下的进位舍弃线初始值设定为8,低精度计算模式下的进位舍弃线初始值设定为12。
9.根据权利要求4所述一种基于布斯编码的16*8近似乘法器片上动态计算系统,其特征在于,所述运算网络包括:对16bit乘数和8bit被乘数布斯编码的低两位00xx进行加法运算的第一组加法单元,对16bit乘数和8bit被乘数布斯编码的次高位0x00进行加法运算的第二组加法单元,对16bit乘数和8bit被乘数布斯编码的最高位x000进行加法运算的第三组加法单元。
10.根据权利要求9所述一种基于布斯编码的16*8近似乘法器片上动态计算系统,其特征在于,根据更新后的进位舍弃线取值以及8bit被乘数的有效布斯编码配置运算网络的方法为:当8bit被乘数有效布斯编码为‘00xx’时开启第一组加法单元并生效相应取值的进位舍弃线,当8bit被乘数有效布斯编码为‘0xxx’时开启第一组加法单元和第二组加法单元并生效相应取值的进位舍弃线,当8bit被乘数有效布斯编码为‘xxxx’时开启所有加法单元并生效相应取值的进位舍弃线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011480410.2A CN112612446B (zh) | 2020-12-15 | 2020-12-15 | 一种基于布斯编码的16*8近似乘法器片上动态计算系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011480410.2A CN112612446B (zh) | 2020-12-15 | 2020-12-15 | 一种基于布斯编码的16*8近似乘法器片上动态计算系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112612446A CN112612446A (zh) | 2021-04-06 |
CN112612446B true CN112612446B (zh) | 2024-02-23 |
Family
ID=75239325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011480410.2A Active CN112612446B (zh) | 2020-12-15 | 2020-12-15 | 一种基于布斯编码的16*8近似乘法器片上动态计算系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612446B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360131A (zh) * | 2021-06-07 | 2021-09-07 | 东南大学 | 面向卷积神经网络加速器的对数近似乘累加器 |
CN113504892B (zh) * | 2021-06-13 | 2024-07-12 | 山东云海国创云计算装备产业创新中心有限公司 | 一种设计乘法器查找表的方法、系统、设备及介质 |
CN116401069A (zh) * | 2023-05-08 | 2023-07-07 | 深圳市欧朗博科技有限公司 | 一种精度可调整及数据自整合的基带芯片架构方法 |
CN117910421B (zh) * | 2024-03-15 | 2024-07-16 | 南京美辰微电子有限公司 | 一种基于神经网络的动态近似电路计算部署方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258544A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN111488133A (zh) * | 2020-04-15 | 2020-08-04 | 电子科技大学 | 高基数近似布斯编码方法和混合基数布斯编码近似乘法器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6978426B2 (en) * | 2002-04-10 | 2005-12-20 | Broadcom Corporation | Low-error fixed-width modified booth multiplier |
-
2020
- 2020-12-15 CN CN202011480410.2A patent/CN112612446B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258544A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN111488133A (zh) * | 2020-04-15 | 2020-08-04 | 电子科技大学 | 高基数近似布斯编码方法和混合基数布斯编码近似乘法器 |
Non-Patent Citations (1)
Title |
---|
一种混合结构的新型近似加法器;王保坤;班恬;;电子设计工程(第18期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112612446A (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112612446B (zh) | 一种基于布斯编码的16*8近似乘法器片上动态计算系统 | |
TWI701612B (zh) | 用於神經網路中激勵函數的電路系統及其處理方法 | |
CN109214509B (zh) | 一种用于深度神经网络高速实时量化结构和运算实现方法 | |
CN1079555C (zh) | 图象处理系统的边缘检测方法与装置 | |
US20210349692A1 (en) | Multiplier and multiplication method | |
CN108510063B (zh) | 一种应用于卷积神经网络的加速方法和加速器 | |
CN111832719A (zh) | 一种定点量化的卷积神经网络加速器计算电路 | |
CN110717585B (zh) | 神经网络模型的训练方法、数据处理方法和相关产品 | |
WO1995002215A1 (en) | Improved method and apparatus for digital multiplication based on sums and differences of finite sets of powers of two | |
CN114647399B (zh) | 一种低能耗高精度近似并行定宽乘法累加装置 | |
CN110428048A (zh) | 一种基于模拟延时链的二值化神经网络累加器电路 | |
CN111488133A (zh) | 高基数近似布斯编码方法和混合基数布斯编码近似乘法器 | |
CN117337432A (zh) | 用于使用神经网络对经编码数据进行解码的解码器及系统 | |
CN110751278A (zh) | 一种神经网络比特量化方法和系统 | |
CN109614074B (zh) | 基于概率转移矩阵模型的近似加法器可靠度计算方法 | |
Ge et al. | BNReLU: Combine batch normalization and rectified linear unit to reduce hardware overhead | |
Alaghi et al. | Computing with randomness | |
CN113780523A (zh) | 图像处理方法、装置、终端设备及存储介质 | |
CN110728365B (zh) | 多位宽pe阵列计算位宽的选择方法及计算精度控制电路 | |
CN110837885B (zh) | 一种基于概率分布的Sigmoid函数拟合方法 | |
CN110825346A (zh) | 一种低逻辑复杂度的无符号近似乘法器 | |
CN115826911A (zh) | 基于多类型近似计算单元的可变位宽加法器树生成系统 | |
US20060277242A1 (en) | Combining circuitry | |
CN113780545A (zh) | 神经网络激活函数的通用拟合方法及装置 | |
CN113516171A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |