CN117971160B - 一种包括错误预测的乘法器 - Google Patents
一种包括错误预测的乘法器 Download PDFInfo
- Publication number
- CN117971160B CN117971160B CN202410372881.3A CN202410372881A CN117971160B CN 117971160 B CN117971160 B CN 117971160B CN 202410372881 A CN202410372881 A CN 202410372881A CN 117971160 B CN117971160 B CN 117971160B
- Authority
- CN
- China
- Prior art keywords
- data
- gate
- threshold
- bit
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 17
- 239000000047 product Substances 0.000 claims description 13
- 239000012467 final product Substances 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000001364 causal effect Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种包括错误预测的乘法器,该乘法器包括:乘法模块,用于对待处理数据进行乘法运算得到运算结果;第一编码模块,用于对所述运算结果进行编码得到第一编码结果,还对所述乘法器的内部进位向量进行编码得到第一中间码,且还对所述待处理数据中第一待相乘数据进行编码得到第二中间码,对所述待处理数据中第二待相乘数据进行编码得到第三中间码;第二编码模块,用于基于所述第一中间码、第二中间码和第三中间码生成第二编码结果。比对模块,用于将所述第一编码结果和第二编码结果进行比对,能够实现发现乘法运算结果是否错误,提高了乘法器的可靠性。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种包括错误预测的乘法器。
背景技术
随着人工智能技术的发展和成熟,其已逐步普及到各类服务器等终端设备中,而人工智能技术对终端设备中的各处理器的计算能力要求较高,乘法器作为处理器的核心计算单元,扮演着越来越重要的角色。
现有技术中提出的乘法器主要包括基于加法树乘法器、基于并行运算乘法器、基于查找表的乘法器和基于移位相加的乘法器四种,这些乘法器都是面向高性能的设计,但是在空天等极端环境领域的应用中,现有技术中的乘法器可靠性不高,在极端环境中的处理相比常规应用场景中容易出错,并且在出现错误的时候乘法器本身无法发现,只会固定的输出对应结果。
因此,如何提供一种可靠性高,能够发现计算错误的乘法器,是本领域技术人员有待解决的技术问题。
发明内容
本发明的目的是为了解决现有技术中乘法器的可靠性不高,无法及时发现计算错误的技术问题。
为实现上述技术目的,本发明提供了一种包括错误预测的乘法器,该乘法器包括:
乘法模块,用于对待处理数据进行乘法运算得到运算结果;
第一编码模块,用于对所述运算结果进行编码得到第一编码结果,还对所述乘法器的内部进位向量进行编码得到第一中间码,且还对所述待处理数据中第一待相乘数据进行编码得到第二中间码,对所述待处理数据中第二待相乘数据进行编码得到第三中间码;
第二编码模块,用于基于所述第一中间码、第二中间码和第三中间码生成第二编码结果。
比对模块,用于将所述第一编码结果和第二编码结果进行比对。
进一步地,所述第一编码模块具体通过以下公式进行编码:
,
式中,为编码的第k位,/>和/>中,若编码位数有t位,则k=1,2,3…,t,/>为m位待编码数据x的第i位,待编码数据为所述乘法器内部进位向量或运算结果或第一待相乘数据或第二待相乘数据,mod表示取余运算。
进一步地,所述第二编码模块具体通过如下公式进行编码:
,
式中,为第二编码结果,n为第一待相乘数据或第二待相乘数据的位数,/>为第二中间码,/>为第三中间码,/>为第一中间码。
进一步地,所述乘法模块包括:
精度选择子模块,用于获取所述待处理数据的需求精度;
乘法子模块,用于根据所述需求精度选择对应的乘法电路单元将所述待处理数据进行运算并得到部分积,所述乘法电路单元的基本单元为2位乘法电路;
求和子模块,用于将所述部分积进行求和得到最终积,并将所述最终积输入至输出模块;
所述输出子模块,用于将所述需求精度对应的最终积进行输出。
进一步地,所述精度选择子模块通过输入端接收的多精度使能信号、精度选择信号0和精度选择信号1来确定所述待处理数据的需求精度。
进一步地,所述第一编码模块或通过编码器对待编码数据进行编码,所述待编码数据为所述乘法器内部进位向量或运算结果或第一待相乘数据或第二待相乘数据,所述编码器包括依次连接的第一级阈值门和第二级阈值门,所述第一级阈值门包括16个依次排列的一级阈值门,其中,16个一级阈值门的阈值以2开始,第u个一级阈值门的阈值为第一个一级阈值门阈值的u倍,第二阈值门包括B0位阈值门、B1位阈值门、B2位阈值门、B3位阈值门、B4位阈值门和B5位阈值门,其中,B0位阈值门的输入为所有一级阈值门输出取反的数据和待编码数据,B0位阈值门中阈值为33,对来自一级阈值门的数据的权值为2,B1位阈值门的阈值为34,对来自一级阈值门的数据的权值为4,其输入为第一级阈值门中阈值为B1位阈值门权值的倍数的阈值门的输出取反,并加上待编码数据逐项累加后的值,B2位阈值门的阈值为36,对来自一级阈值门的数据的权值为8,其输入为第一级阈值门中阈值为B2位阈值门权值的倍数的阈值门的输出取反,并加上待编码数据逐项累加后的值,B3位阈值门的阈值为40,对来自一级阈值门的数据的权值为16,其输入为第一级阈值门中阈值为B3位阈值门权值的倍数的阈值门的输出取反,并加上待编码数据逐项累加后的值,B4位阈值门的阈值为48,对来自一级阈值门的数据的权值为32,其输入为第一级阈值门中阈值为16的阈值门的输出取反,并加上待编码数据逐项累加后的值,B5位阈值门的阈值为32,其输入仅为待编码数据,对该待编码数据的权值为1,其中,B0位阈值门、B1位阈值门、B2位阈值门和B3位阈值门中对待编码数据逐项累加后的值的权值为1;
其中,所述待编码数据的位数为偶数,当所述待编码数据的位数小于32位时,则将第一级阈值门中阈值大于待编码数据位数的阈值门进行置零。
本发明提供的一种包括错误预测的乘法器,与现有技术相比,本申请乘法器包括:乘法模块,用于对待处理数据进行乘法运算得到运算结果;第一编码模块,用于对运算结果进行编码得到第一编码结果,还对所述乘法器内部进位向量进行编码得到第一中间码,且还对待处理数据中第一待相乘数据进行编码得到第二中间码,对待处理数据中第二待相乘数据进行编码得到第三中间码;第二编码模块,用于基于所述第一中间码、第二中间码和第三中间码生成第二编码结果。比对模块,用于将所述第一编码结果和第二编码结果进行比对,能够自主发现乘法运算结果是否错误,提高了乘法器的可靠性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本说明书实施例提供的包括错误预测的乘法器的结构示意图;
图2所示为本说明书实施例中32位编码器的结构示意图;
图3所示为本说明书实施例中阵列乘法器的结构示意图;
图4所示为本说明书实施例中乘法电路单元的内部结构示意图;
图5所示为本说明书实施例中精度选择子模块的结构示意图。
具体实施方式
为了使本领域普通技术人员更好地理解本说明书中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示为本说明实施例提供的包括错误预测的乘法器的结构示意图,虽然本说明提供了如下实施例或附图中所示装置结构,但基于常规或无需创造性劳动在所述装置中可以包括更多或者部分合并后更少的模块单元,在逻辑性上不存在必要因果关系结构中,这些装置的模块结构不限于本说明书实施例或附图所示模块结构。所述模块结构在实际中的装置、服务器或终端产品应用时,可以按照实施例或者附图所示的模块结构进行顺序执行或者并行执行。
本说明实施例中提供的包括错误预测的乘法器方法可以应用在客户端和服务器等终端设备中,如图1所示,其包括乘法模块、第一编码模块、第二编码模块和比对模块。
乘法模块,用于对待处理数据进行乘法运算得到运算结果。
其中,所述乘法模块包括:
精度选择子模块,用于获取所述待处理数据的需求精度;
乘法子模块,用于根据所述需求精度选择对应的乘法电路单元将所述待处理数据进行运算并得到部分积,所述乘法电路单元的基本单元为2位乘法电路;
求和子模块,用于将所述部分积进行求和得到最终积,并将所述最终积输入至输出模块;
所述输出子模块,用于将所述需求精度对应的最终积进行输出。
所述精度选择子模块通过输入端接收的多精度使能信号、精度选择信号0和精度选择信号1来确定所述待处理数据的需求精度。
具体的,三位信号可以配置为110b,多精度使能信号为1时,表示可以进行精度选择,如图5所示为精度选择子模块的结构示意图,多精度使能信号为0,表示不进行精度选择,直接进行32位数据乘法运算,精度选择信号0和精度选择信号1分别是一个高位信号和低位信号,这两个选择信号的后缀0和1仅是区分该两个选择信号的标识,无其他数值的含义,通过该两个选择信号可实现选择2位、4位、8位和16位的精度选择也可以由本领域技术人员根据实际情况灵活设置。并且精度选择子模块选择精度后,选中的电路开始工作,未选中的电路不工作,在同一时间,乘法资源根据位宽可变,节省不需要的开销,达到低开销的目的。
由精度选择子模块来确定待处理数据所需要的需求精度,也即乘法器需要处理的数据位宽,该位宽包括2位、4位、8位、16位和32位,相应的,根据本申请的结构,可进行扩展到更高精度的运算,确定出需求精度后,乘法模块根据需求精度选择对应的乘法电路单元将所述待处理数据也即图4中的乘法数据进行运算并得到部分积,乘法电路单元的基本单元为2位乘法电路,2位乘法电路是最小运算单元,如图4所示为乘法电路单元的内部结构示意图,4位乘法电路单元包括4个2位乘法电路,8位乘法电路单元包括8个2位乘法电路,以此类推,每个最小运算单元运算固定因数的部分积,每2位数据为一组求出部分积,将部分积输入到求和子模块,在需求精度下开展求和操作,根据需求精度来确定最小运算单元的运行数量,从而实现乘法器的精度可控。
第一编码模块,用于对所述运算结果进行编码得到第一编码结果,还对所述乘法器的内部进位向量进行编码得到第一中间码,且还对待处理数据中第一待相乘数据进行编码得到第二中间码,对待处理数据中第二待相乘数据进行编码得到第三中间码。
具体的,Berger编码是能够检测所有单向错误的检测编码,Berger编码可以有两种方式来生成:1)B0:信息中0的个数的二进制表示;2)B1:信息中1的个数的二进制表示进行逐位取反作为编码,在本发明中的Berger编码结构是基于B0模式的编码。对于d位数据而言,其中0最多有d个,最少有0个,也就是说会有d+1个Berger编码的可能,为了能够进行错误的检测,也就是说能区分这些校验编码,最多需要位Berger码。
编码原理为:首先对输入n位数据进行按位取反,作为检“1”计数器的输入,检得“1”的个数就是对应数据的B0编码。其中“1”的个数的计数电路,其实质上是一个(m,n)计数器,对于m位的二进制输入,对其中的"1”进行计数,并将该值用对应的n位二进制表示输出。该(m,n)计数器输出的第k位用阈值函数的余数r来表示,具体可通过以下公式进行编码:
,
式中,为编码的第k位,/>和/>中,若编码位数有t位,则k=1,2,3…,t,/>为m位待编码数据x的第i位,待编码数据为所述乘法器内部进位向量或运算结果或第一待相乘数据或第二待相乘数据,mod表示取余运算。
或者,所述第一编码模块或通过编码器对待编码数据进行编码,所述待编码数据为所述乘法器内部进位向量或运算结果或第一待相乘数据或第二待相乘数据,所述编码器包括依次连接的第一级阈值门和第二级阈值门,所述第一级阈值门包括16个依次排列的一级阈值门,其中,16个一级阈值门的阈值以2开始,第u个一级阈值门的阈值为第一个一级阈值门阈值的u倍,第二阈值门包括B0位阈值门、B1位阈值门、B2位阈值门、B3位阈值门、B4位阈值门和B5位阈值门,其中,B0位阈值门的输入为所有一级阈值门输出取反的数据和待编码数据,B0位阈值门中阈值为33,对来自一级阈值门的数据的权值为2,B1位阈值门的阈值为34,对来自一级阈值门的数据的权值为4,其输入为第一级阈值门中阈值为B1位阈值门权值的倍数的阈值门的输出取反,并加上待编码数据逐项累加后的值,B2位阈值门的阈值为36,对来自一级阈值门的数据的权值为8,其输入为第一级阈值门中阈值为B2位阈值门权值的倍数的阈值门的输出取反,并加上待编码数据逐项累加后的值,B3位阈值门的阈值为40,对来自一级阈值门的数据的权值为16,其输入为第一级阈值门中阈值为B3位阈值门权值的倍数的阈值门的输出取反,并加上待编码数据逐项累加后的值,B4位阈值门的阈值为48,对来自一级阈值门的数据的权值为32,其输入为第一级阈值门中阈值为16的阈值门的输出取反,并加上待编码数据逐项累加后的值,B5位阈值门的阈值为32,其输入仅为待编码数据,对该待编码数据的权值为1,其中,B0位阈值门、B1位阈值门、B2位阈值门和B3位阈值门中对待编码数据逐项累加后的值的权值为1;
其中,所述待编码数据的位数为偶数,当所述待编码数据的位数小于32位时,则将第一级阈值门中阈值大于待编码数据位数的阈值门进行置零。
具体的,32位Berger编码器的内部结构如图2所示,该电路通过两级阈值门网络实现,编码器包括依次连接的第一级阈值门和第二级阈值门,所述第一级阈值门包括16个一级阈值门,其中,第一级16个阈值门每一个都接受32位的数据输入,相应位的权值都为“1”,第一级的16个阈值门的阈值分别为2,4,6,8,...,32,取反后的第一级阈值门输出作为第二级对应B0位的阈值门的输入,对应这16位输入的权值为“2”,阈值为33;第一级阈值为4,8,12,...,32阈值门对应的输出取反作为对应B1位的阈值门的输入,对应这8位输入的权值为“4”,阈值为“34”;对应B2和B3位也是基于同样的模式;B4位的阈值门对应被编码数据中"0”的个数大于16,而小于32的情况,可以通过第一级阈值为32的门输出信号取反和阈值为16的门输出信号的逻辑与来得到;被编码数据中"0”的个数等于32的情况可以直接从第一级阈值为32的门输出来得到,从而B5B4B3B2B1B0即是32位数据的Berger编码,在待编码数据小于32位时,将第一级阈值门中阈值大于待编码数据位数的阈值门进行置零依旧执行上述操作,最后得到对应的编码。
在本方案中,乘法模块产生的乘法结果、所有中间进位以及操作数X,Y一同送往编码模块进行编码,编码模块的输出作为乘法路径错误预测与检测电路的输入,错误预测与检测电路根据现有编码结果对求和结果的编码PB进行预测,若检测到预测编码P’B也即第二编码结果与实际编码PB也即第一编码结果相等则直接输出求和结果,不相等则说明计算存在错误。
第二编码模块,用于对所述运算结果进行编码得到运算编码结果;
为了实现乘法操作的Berger编码和预测,首先对图3所示乘法器阵列结构中产生的中间结果进行分析。对于两个n位的二进制数的乘法X×Y(以n=16为例)操作,其中ci,j和si,j分别对应于图3中所标识的加法器产生的结果和进位。那么,对于第一行的加法器有:x0^y0=p0,x1^y1+x0^y1=2c(1,1)+p1,x2^y0+x1^y1=2c(2,1)+s(2,1),…,xn-2^y0+xn-3^y1=2c(n-2,1)+s(n-2,1),xn-1^y0+x1^yn-2=2c(n-1,1)+s(n-1,1);对于第二行而言,有:x0^y2+s(2,1)+c(1,1)=2c(1,2)+p2,x1^y2+s(3,1)+c(2,1)=2c(2,2)+s(2,2),…,xn-3^y2+s(n-1,1)+c(n-2,1)=2c(n-2,2)+s(n-2,2),xn-1^y1+xn-2^y2+c(n-1,1)=2c(n-1,2)+s(n-1,2);对于第n-1行而言,有:x0^yn-1+c(1,n-2)+s(2,n-2)=2c(1,n-1)+pn-1,x1^yn-1+c(2,n-2)+s(3,n-2)=2c(2,n-1)+s(2,n-1),…,xn-3^yn-1+c(n-2,n-2)+s(n-1,n-2)=2c(n-2,n-1)+s(n-2,n-),xn-1^yn-2+xn-2^yn-1+c(n-1,n-2)=2c(n-1,n-1)+s(n-1,n-1);对于最后一行加法器有:c(1,n-1)+s(2,n-1)=2c(1,n)+pn,c(2,n-1)+s(3,n-1)=2c(2,n)+pn+1,…,xn-1^yn-1+c(n-1,n-1)=2c(n-1,n)+p2n-2+p2n-1;将以上结构的公式应用到所有行,并将所有的公式加起来有:++/>+/>=/>+/>++/>+/>,整理得到:,又,代入前式得到:,故对于X×Y的乘积的Berger编码可以表示为:===,其中,/>为数据P中1的个数,P为X和Y的乘积,/>为数据X中的1的个数,/>为数据Y中1的个数,即通过Xb,Yb,n,/>之间的数学运算得到了乘法运算结果的Berger码预测公式,具体到本发明中所用的多精度低开销乘法器,预测公式可写为:/>。其中Cb为内部进位向量C=(cn·(n-1),cn·(n-2),…,cn,cn-1,…,c1)的Berger编码,需要说明的是此处的进位由所有2位乘法器和部分积求和产生,n为操作数的位数。
比对模块,用于将所述第一编码结果和第二编码结果进行比对,一致则说明运算结果正确。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书实施例并不局限于必须是符合行业通信标准、标准计算机资源数据更新和数据存储规则或本说明书一个或多个实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书实施例的可选实施方案范围之内。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc 625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或插件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
这些计算机程序指令也可装载到计算机或其他可编程资源数据更新设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参考即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参考方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
Claims (5)
1.一种包括错误预测的乘法器,其特征在于,所述乘法器包括:
乘法模块,用于对待处理数据进行乘法运算得到运算结果;
第一编码模块,用于对运算结果进行编码得到第一编码结果,还对所述乘法器内部进位向量进行编码得到第一中间码,且还对待处理数据中第一待相乘数据进行编码得到第二中间码,对待处理数据中第二待相乘数据进行编码得到第三中间码;
第二编码模块,用于基于所述第一中间码、第二中间码和第三中间码生成第二编码结果;
比对模块,用于将所述第一编码结果和第二编码结果进行比对;
其中,所述第一编码模块或通过编码器对待编码数据进行编码,所述待编码数据为所述乘法器内部进位向量或运算结果或第一待相乘数据或第二待相乘数据,所述编码器包括依次连接的第一级阈值门和第二级阈值门,所述第一级阈值门包括16个依次排列的一级阈值门,其中,16个一级阈值门的阈值以2开始,第u个一级阈值门的阈值为第一个一级阈值门阈值的u倍,第二阈值门包括B0位阈值门、B1位阈值门、B2位阈值门、B3位阈值门、B4位阈值门和B5位阈值门,其中,B0位阈值门的输入为所有一级阈值门输出取反的数据和待编码数据,B0位阈值门中阈值为33,对来自一级阈值门的数据的权值为2, B1位阈值门的阈值为34,对来自一级阈值门的数据的权值为4,其输入为第一级阈值门中阈值的值为B1位阈值门权值的值的倍数的阈值门的输出取反,并加上待编码数据逐项累加后的值,B2位阈值门的阈值为36,对来自一级阈值门的数据的权值为8,其输入为第一级阈值门中阈值的值为B2位阈值门权值的值的倍数的阈值门的输出取反,并加上待编码数据逐项累加后的值,B3位阈值门的阈值为40,对来自一级阈值门的数据的权值为16,其输入为第一级阈值门中阈值的值为B3位阈值门权值的值的倍数的阈值门的输出取反,并加上待编码数据逐项累加后的值,B4位阈值门的阈值为48,对来自一级阈值门的数据的权值为4,其输入为第一级阈值门中阈值为16的阈值门的输出取反,并加上待编码数据逐项累加后的值, B5位阈值门的阈值为32,其输入仅为待编码数据,对该待编码数据的权值为1,其中, B0位阈值门、B1位阈值门、B2位阈值门和B3位阈值门中对待编码数据逐项累加后的值的权值为1;
其中,所述待编码数据的位数为偶数,当所述待编码数据的位数小于32位时,则将第一级阈值门中阈值大于待编码数据位数的阈值门进行置零。
2.如权利要求1所述的包括错误预测的乘法器,其特征在于,所述第一编码模块具体通过以下公式进行编码:
,
式中,为编码的第k位,/>为m位待编码数据x的第i位,待编码数据为所述乘法器内部进位向量或运算结果或第一待相乘数据或第二待相乘数据,mod表示取余运算。
3.如权利要求1所述的包括错误预测的乘法器,其特征在于,所述第二编码模块具体通过如下公式进行编码:
,
式中,为第二编码结果,n为第一待相乘数据或第二待相乘数据的位数,/>为第二中间码,/>为第三中间码,/>为第一中间码。
4.如权利要求1所述的包括错误预测的乘法器,其特征在于,所述乘法模块包括:
精度选择子模块,用于获取待处理数据的需求精度;
乘法子模块,用于根据所述需求精度选择对应的乘法电路单元将所述待处理数据进行运算并得到部分积,所述乘法电路单元的基本单元为2位乘法电路;
求和子模块,用于将所述部分积进行求和得到最终积,并将所述最终积输入至输出模块;
所述输出子模块,用于将所述需求精度对应的最终积进行输出。
5.如权利要求4所述的包括错误预测的乘法器,其特征在于,所述精度选择模块通过输入端接收的多精度使能信号、精度选择信号0和精度选择信号1来确定所述待处理数据的需求精度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410372881.3A CN117971160B (zh) | 2024-03-29 | 2024-03-29 | 一种包括错误预测的乘法器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410372881.3A CN117971160B (zh) | 2024-03-29 | 2024-03-29 | 一种包括错误预测的乘法器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117971160A CN117971160A (zh) | 2024-05-03 |
CN117971160B true CN117971160B (zh) | 2024-06-14 |
Family
ID=90849971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410372881.3A Active CN117971160B (zh) | 2024-03-29 | 2024-03-29 | 一种包括错误预测的乘法器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971160B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109753267A (zh) * | 2019-01-14 | 2019-05-14 | 深圳市网心科技有限公司 | 一种冗余编码的方法、装置、设备及计算机可读存储介质 |
WO2022179588A1 (zh) * | 2021-02-27 | 2022-09-01 | 华为技术有限公司 | 一种数据编码方法以及相关设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149130B (zh) * | 2023-10-31 | 2024-01-30 | 中科亿海微电子科技(苏州)有限公司 | 一种应用于fpga嵌入式dsp的多精度浮点乘法器结构 |
-
2024
- 2024-03-29 CN CN202410372881.3A patent/CN117971160B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109753267A (zh) * | 2019-01-14 | 2019-05-14 | 深圳市网心科技有限公司 | 一种冗余编码的方法、装置、设备及计算机可读存储介质 |
WO2022179588A1 (zh) * | 2021-02-27 | 2022-09-01 | 华为技术有限公司 | 一种数据编码方法以及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117971160A (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11720783B2 (en) | Multiplication and addition device for matrices, neural network computing device, and method | |
US5553012A (en) | Exponentiation circuit utilizing shift means and method of using same | |
US20210349692A1 (en) | Multiplier and multiplication method | |
US6601077B1 (en) | DSP unit for multi-level global accumulation | |
CN108139885B (zh) | 浮点数舍入 | |
CN111796870B (zh) | 数据格式转换装置、处理器、电子设备及模型运行方法 | |
CN110109646B (zh) | 数据处理方法、装置和乘加器及存储介质 | |
EP3769208B1 (en) | Stochastic rounding logic | |
CN100517213C (zh) | 乘法装置 | |
CN110798230A (zh) | 一种游程检测方法、装置及电子设备 | |
CN114640354A (zh) | 数据压缩方法、装置、电子设备及计算机可读存储介质 | |
CN117971160B (zh) | 一种包括错误预测的乘法器 | |
US9009209B2 (en) | Processor, control method of processor, and computer readable storage medium storing processing program for division operation | |
CN101361278B (zh) | 奇偶校验位生成电路、计数电路以及计数方法 | |
CN114816335B (zh) | 一种忆阻器阵列符号数乘法实现方法、装置及设备 | |
Solomko et al. | Study of carry optimization while adding binary numbers in the rademacher number-theoretic basis | |
KR19990074385A (ko) | 부동소수점 곱셈기에서 반올림과 덧셈을 동시에 수행하는 장치및 방법 | |
US6446101B1 (en) | Apparatus for fast determination of a prescribable number of highest value signals | |
RU2233024C2 (ru) | Способ и устройство для сжатия сигналов в формате с фиксированной запятой без введения смещения | |
EP1251434A2 (en) | Method and device for learning correlation matrix | |
CN117667010B (zh) | 用于电路的二进制数的前导零个数确定方法和电路 | |
US20240118866A1 (en) | Shift array circuit and arithmetic circuit including the shift array circuit | |
KR20240029249A (ko) | 연산 에러를 정정할 수 있는 곱셈 및 누산 연산기 | |
KR20240102915A (ko) | 부동소수점 연산 방법 및 연산 장치 | |
CN112862086A (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 |