掌桥专利:专业的专利平台
掌桥专利
首页

基于数字域存内计算的电路

文献发布时间:2023-06-19 10:46:31


基于数字域存内计算的电路

技术领域

本公开涉及计算机技术领域,尤其是一种基于数字域存内计算的电路。

背景技术

随着人工智能(Artificial Intelligent, AI)和物联网(Internet of Things,IoT)应用的快速发展,中央处理器(CPU)和存储电路(Memory)之间需要经由有限的总线带宽进行频繁且大量的数据传输,这也被公认为目前传统的冯诺依曼架构体系中的最大的瓶颈。深度神经网络作为目前在人工智能领域中应用于图像识别的最成功的算法之一,它需要对输入特征数据和权重数据做大量的读写,乘法和加法运算。这也意味着需要更大数目的数据传输和更多的能量消耗。值得注意的是,在不同的AI任务下,读写数据所消耗的能量远远大于计算数据的能量。如在基于传统的冯诺依曼架构的深度神经网络处理器中,不管是输入特征数据(input activation)还是权重数据(weight),都需要先存储在对应的存储器单元中,然后经由总线送到对应的数字运算单元进行乘加(Multiplicaiton andComputation, MAC)的运算,最后再把运算结果读出。由于有限的存储器读取接口(memoryinterface)数目,权重数据的读取带宽(单位周期所能读取到的权重的数目)没办法做到很高,从而限制了单位周期所进行的MAC运算数目,进一步地,系统整体的吞吐量(throughput)也将收到很大的影响。

为了打破冯诺依曼架构中的这一瓶颈,存算一体架构被提出。这种系统架构不仅保留了存储电路本身所具有的存储和读写功能,同时可以支持不同的逻辑或者乘加运算,从而在很大程度上减少了中央处理器和存储器电路之间频繁的总线交互,也进一步降低了大量的数据搬移量,提升了系统的能耗效率。在目前的基于存算一体架构的深度神经网络处理器中,权重数据可以不经过读取就直接进行MAC运算,并直接得出最终的乘加结果。因此系统的吞吐量将不再受限于有限的存储器读取接口。

发明内容

本公开的实施例提供了一种基于数字域存内计算的电路,该电路包括:计算存储单元阵列,其中,计算存储单元包括一一对应的预设数量个数据存储单元和预设数量个单比特乘法器,预设数量个数据存储单元分别用于存储权重数据包括的单比特位,并将存储的单比特位输入对应的单比特乘法器,预设数量个单比特乘法器分别用于对输入的权重数据包括的单比特位和输入特征数据包括的单比特位相乘,得到乘积数据;加法树,用于将各个计算存储单元输出的乘积数据累加,得到累加结果;多比特输入转换单元,用于将加法树输出的、对应于输入特征数据包括的各个单比特位的累加结果转换为多比特输入特征数据和多比特权重数据的乘加结果。

在一些实施例中,该电路还包括:至少一个字线驱动器,分别对应于一组计算存储单元;地址译码器,用于根据外部输入的地址信号,从计算存储单元阵列中选择目标计算存储单元;数据读写接口,用于向目标计算存储单元写入权重数据;至少一个输入线驱动器,用于将输入特征数据包括的各个单比特位分别输入预设数量个单比特乘法器。

在一些实施例中,该电路还包括:时序控制单元,用于输出时钟信号;至少一个输入线驱动器,进一步用于根据时钟信号,依次将输入特征数据包括的各个单比特位分别输入预设数量个单比特乘法器;加法树,进一步用于根据时钟信号,依次将各个计算存储单元输出的乘积数据累加,得到累加结果;多比特输入转换单元,进一步用于根据时钟信号,依次将加法树输出的、对应于输入特征数据包括的各个单比特位的累加结果进行转换。

在一些实施例中,加法树包括至少两个子树,并且对于至少两个子树中的每个子树,该子树用于将各个计算存储单元输出的乘积数据包括的、与该子树对应的比特位累加,得到该子树对应的子累加结果;电路还包括:乘法累加器,用于将各个子累加结果进行乘法累加运算,得到累加结果。

在一些实施例中,至少两个子树包括第一子树和第二子树,第一子树对应于乘积数据的、对应位数的高比特位,第二子树对应于乘积数据的、对应位数的低比特位;乘法累加器包括乘法单元和第一加法单元,乘法单元用于将第一子树对应的子累加结果与预设数值相乘,第一加法单元用于将乘法单元输出的结果与第二子树对应的子累加结果相加,得到累加结果。

在一些实施例中,对应位数的高比特位为乘积数据的最高位,对应位数的低比特位为乘积数据中的除最高位以外的其他位。

在一些实施例中,多比特输入转换单元包括移位单元和第二加法单元,移位单元和第二加法单元用于循环执行如下操作:将输入特征数据的最高比特位对应的累加结果输入移位单元,将移位后的累加结果与相邻的低比特位对应的累加结果输入第二加法单元,将相加后的累加结果输入移位单元,再次将移位后的累加结果与相邻的低比特位对应的累加结果输入第二加法单元,直到将输入特征数据的最低比特位对应的累加结果与移位后的累加结果输入第二加法单元,得到乘加结果。

在一些实施例中,多比特输入转换单元包括目标数量个移位单元和第三加法单元,目标数量为输入特征数据包括的比特位数减一;目标数量个移位单元分别用于对输入的累加结果进行对应位数的移位操作;第三加法单元用于将目标数量个移位单元分别输出的移位后的累加结果相加,得到乘加结果。

在一些实施例中,电路还包括模式选择单元,用于根据输入的模式选择信号选择电路当前的工作模式,工作模式包括普通读写模式和多比特乘加计算模式;在普通读写模式下,地址译码器,还用于根据外部输入的写地址信号或读地址信号,从至少一个字线驱动器中选择目标字线驱动器;数据读写接口,还用于基于写地址信号,向所选择的目标字线驱动器对应的各个计算存储单元包括的数据存储单元写入数据;或者,基于读地址信号,从所选择的目标字线驱动器对应的各个计算存储单元包括的数据存储单元读出数据。

在一些实施例中,单比特乘法器包括或非门,或非门用于对取反后的权重数据包括的单比特位和取反后的输入特征数据包括的单比特位进行或非运算,得到单比特乘积数据。

本公开上述实施例提供的基于数字域存内计算的电路,利用多比特数据乘法的原理,在计算存储单元阵列中设置单比特乘法器,将各个数据存储单元中存储的权重数据包括的每个单比特位和输入特征数据包括的每个单比特位分别相乘,得到多个乘积数据,再利用加法树对每个比特位对应的各个乘积数据累加,得到多个累加结果,最后利用多比特输入转换单元,对各个累加结果进行相应的移位以及累加操作,最终得到权重数据和输入特征数据的乘加结果。本公开的实施例实现了对多比特的权重数据和输入特征数据的存内乘加计算,提高了存内计算的效率和能效密度。相比于现有技术利用两个位线之间的电压差实现乘加,本公开的实施例可以避免位线上的电压变化导致的读干扰写问题,提高计算的稳定性。将该电路应用到深度神经网络的计算,可以大大提高神经网络的识别速度。

下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。

附图说明

通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。

图1是本公开一示例性实施例提供的基于数字域存内计算的电路的结构示意图。

图2是本公开一示例性实施例提供的基于数字域存内计算的电路的另一结构示意图。

图3是本公开一示例性实施例提供的基于数字域存内计算的电路的一个时序图。

图4是本公开一示例性实施例提供的基于数字域存内计算的电路的一个加法树的示例性结构示意图。

图5是本公开一示例性实施例提供的基于数字域存内计算的电路的乘法累加器的示例性结构示意图。

图6是本公开一示例性实施例提供的基于数字域存内计算的电路的多比特输入转换单元的示例性结构示意图。

图7是本公开一示例性实施例提供的基于数字域存内计算的电路的另一个多比特输入转换单元的示例性结构示意图。

具体实施方式

下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。

应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。

还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。

还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。

另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。

还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

申请概述

现有的基于6T SRAM(Static Random-Access Memory,静态随机存取存储器)的存内计算设计,它所适用的场合是基于单比特权重的分类器。它能够支持的函数为:

其中Dout是分类器的输出结果,N为同时进行乘加MAC操作的个数,sgn为激活函数,

该分类器的主要组成部分有:128

跟一般的存内设计电路相同,该设计可以工作在两种模式下,一种是SRAM模式,另一种是分类模式。当工作在SRAM模式下,该电路可以对SRAM单元作正常的读写操作,这跟传统的SRAM电路相同。当工作在分类模式下,128个5bit输入特征数据会经由WLDAC转换到128条WL(WL

受PVT的影响,BL和BLB上的电压差会跟理论上的5bit输入IN和1bit权重W的乘加结果存在误差,同时比较器的offset也会影响判断结果,因此对于每一列来说,其组成的是一个相对性能比较弱的分类器(weak classifier)。为了改善分类器的性能,该设计利用了多个比较弱的分类器来组成一个相对性能更好的强分类器(boosted strongclassifier)。

该电路包括如下缺陷:

1.当多条WL被并行打开时,BL上的电压值会随着计算结果的变化而变化,如果这一电压值低于单个SRAM单元的写容限(Write Margin),原本存1的单元可能会被误写0,所以该设计仍然存在一个“读干扰写(read disturb write)”;

2. 由于每一个强分类器由M个弱分类器组成,且每一个强分类器只能做两种分类结果的判断,因而对于一个包含n个分类结果的数据集来说,需要包含[n×(n-1)]/2个强分类器才能进行一次分类结果的判断。对于MNIST数据集来说,n=10,因而需要45个强分类器才能组成一个完整的分类器。这样会导致面积开销过大,尤其是随着识别数据集中分类结果数目的增加;

3.受限于运算结果精度的影响,对于需要更高精度计算结果的神经网络模型,尤其是卷积型神经网络,该设计不能很好的支持。

示例性结构

图1是本公开一示例性实施例提供的基于数字域存内计算的电路的结构示意图。该电路包含的各个组成部分可以集成到一个芯片中,也可以设置到不同的芯片或电路板中,这些芯片或电路板之间建立数据通信的链路。如图1所示,该电路包括:计算存储单元阵列101、加法树102、多比特输入转换单元103(Multi Input Transfer Logic,MITL)。计算存储单元阵列101由多个计算存储单元1011组成。作为示例,如图2所示,计算存储单元阵列201由512行、128列的计算存储单元组成。其中,计算存储单元阵列201中的计算存储单元包括一一对应的预设数量个数据存储单元(如图2中2011所示)和预设数量个单比特乘法器(如图2中2012所示)。如图2所示,预设数量为四,则128列计算存储单元中的每列包括4列数据存储单元。在计算存储单元2011中,包括四个6T SRAM数据存储单元和四个单比特乘法器(单比特乘法器包括4T或非门,因此用NOR表示)。每个数据存储单元的数据输出端与单比特乘法器的一个数据输入端连接。

在本实施例中,预设数量个数据存储单元分别用于存储权重数据包括的单比特位,并将存储的单比特位输入对应的单比特乘法器。其中,权重数据通常是神经网络中的权重数据。作为示例,图2中2011包括的四个数据存储单元分别存储一个4比特的权重数据包括的四个单比特位W

在本实施例中,预设数量个单比特乘法器分别用于对输入的权重数据包括的单比特位和输入特征数据包括的单比特位相乘,得到乘积数据。

其中,输入特征数据的位数与权重数据的位数通常相同,例如均为4比特数据。作为示例,假设权重数据W

在本实施例中,加法树102用于将各个计算存储单元输出的乘积数据累加,得到累加结果。如图2所示,每列计算存储单元对应一个加法树202,INB[0]~ INB[511]为512个4比特输入特征数据。图2中的加法树202包括512个加法子树(Adder),每个加法子树对应一个计算存储单元,用于存储相应的乘积数据,加法树202输出累加结果。需要说明的是,每个计算周期取512个4比特输入特征数据中的1个单比特位进行乘法运算,即四个计算周期可以将全部512个4比特输入特征数据计算完毕,四个计算周期分别对应的累加结果为:

其中,

在本实施例中,多比特输入转换单元103用于将加法树102输出的、对应于输入特征数据包括的各个单比特位的累加结果转换为多比特输入特征数据和多比特权重数据的乘加结果。如图2所示,多比特输入转换单元203接收累加结果PSUM_M和PSUM_L,输出乘加结果MAC,其中,关于PSUM_M和PSUM_L的描述请参见下述可选的实现方式。

通常,可以将各个累加结果进行移位累加,得到权重数据和输入特征数据的乘加结果。作为示例,根据多比特数据乘法的原理,上述S0~S3需要分别左移0位、1位、2位、3位,再将移位后的数据相加,最终得到多比特的数据的乘加结果。上述移位累加的方式可以通过在电路中设置移位单元和加法器实现。

本公开的上述实施例提供的方法,利用多比特数据乘法的原理,在计算存储单元阵列中设置单比特乘法器,将各个数据存储单元中存储的权重数据包括的每个单比特位和输入特征数据包括的每个单比特位分别相乘,得到多个乘积数据,再利用加法树对每个比特位对应的各个乘积数据累加,得到多个累加结果,最后利用多比特输入转换单元,对各个累加结果进行相应的移位以及累加操作,最终得到权重数据和输入特征数据的乘加结果。本公开的实施例实现了对多比特的权重数据和输入特征数据的存内乘加计算,提高了存内计算的效率和能效密度。相比于现有技术利用两个位线之间的电压差实现乘加,本公开的实施例可以避免位线上的电压变化导致的读干扰写问题,提高计算的稳定性。将该电路应用到深度神经网络的计算,可以大大提高神经网络的识别速度。

在一些可选的实现方式中,如图1所示,该电路还可以包括:

至少一个字线驱动器104(WL driver),分别对应于一组计算存储单元。其中,一组计算存储单元包括的计算存储单元的数量可以是至少一个。作为示例,如图2所示,每个字线驱动器204对应于一行计算存储单元(128个)。

地址译码器1071(通常包含在时序控制单元107中),用于根据外部输入的地址信号,从计算存储单元阵列中选择目标计算存储单元。

数据读写接口105(Normal Read/Write IO),用于向目标计算存储单元写入权重数据。作为示例,外部输入的地址信号首先通过时序控制单元中的地址译码器转换到对应的字线驱动器,从而开启行地址所选择的字线,然后写入的权重数据通过数据读写接口中的写接口输送到对应的行上的位线(BL/BLB),最后通过位线上的输入电压写入到数据存储单元,

至少一个输入线驱动器106(IN driver),用于将输入特征数据包括的各个单比特位分别输入预设数量个单比特乘法器。如图2所示,多个输入线驱动器205将输入特征数据INB包括的单比特位输入对应的单比特乘法器。

本实现方式通过在电路中设置字线驱动器、输入线驱动器、地址译码器和数据读写接口,可以将权重数据按照通用的数据读写方式写入数据存储单元,同时控制输入特征数据包括的各个单比特位的输入,从而实现了精准高效地控制数据乘加的流程,提高了计算的准确性和效率。

在一些可选的实现方式中,该电路还包括:时序控制单元107(Time Controller),用于输出时钟信号。

至少一个输入线驱动器106,进一步用于根据时钟信号,依次将输入特征数据包括的各个单比特位分别输入预设数量个单比特乘法器。

加法树102,进一步用于根据时钟信号,依次将各个计算存储单元输出的乘积数据累加,得到累加结果。

多比特输入转换单元103,进一步用于根据时钟信号,依次将加法树输出的、对应于输入特征数据包括的各个单比特位的累加结果进行转换。

如图3所示,其示出了本公开的实施例的一个时序图。其中,CLK为时钟信号,CIMEN为存内计算使能信号,高电平有效,IN为输入特征数据,PSUM为累加结果,SUM为对累加结果进行多比特输入转换后的数据,SRDY乘加计算完毕指示信号,MAC为乘加结果。图3所示场景为对4比特数据进行乘加的过程,四个时钟周期处理一个4比特数据,如图3所示,每个时钟周期接收输入特征数据IN[0]~IN[511]分别包括的一个单比特位,并且在每个周期分别进行各个输入特征数据包括的对应比特位的累加,得到累加结果S3、S2、S1、S0,然后将各个累加结果进行移位累加,最终将乘加结果(即

本实现方式通过在电路中设置时序控制单元107,可以使存内计算过程在时钟信号的控制下按照单比特位的顺序进行乘加运算,从而节约接收输入特征数据所占用的单比特乘法器,节约片上资源,提高运算效率。

在一些可选的实现方式中,该电路还可以包括模式选择单元108,用于根据输入的模式选择信号选择电路当前的工作模式,工作模式包括普通读写模式和多比特乘加计算模式。例如,当模式选择信号选择当前模式为多比特乘加计算模式时,使用输入线驱动器、单比特乘法器、加法树、多比特输入转换单元等进行多比特乘加计算。

在普通读写模式下,地址译码器1071,还用于根据外部输入的写地址信号或读地址信号,从至少一个字线驱动器中选择目标字线驱动器。数据读写接口105,还用于基于写地址信号,向所选择的目标字线驱动器对应的各个计算存储单元包括的数据存储单元写入数据;或者,基于读地址信号,从所选择的目标字线驱动器对应的各个计算存储单元包括的数据存储单元读出数据。

例如,在普通读写模式下的写操作时,外部输入的地址信号首先通过时序控制单元107中的地址译码器1071转换到对应的字线驱动器,从而开启行地址所选择的字线,然后写入的数据通过数据读写接口中的写接口输送到对应的数据存储单元上的位线(BL/BLB),最后通过位线上的输入电压写入到数据存储单元。

在普通读写模式下的读操作时,外部输入的地址信号首先通过时序控制单元中的地址译码器转换到对应的字线驱动器,从而开启行地址所选择的字线,然后对应数据存储单元的存储数据表现在对应的位线(BL/BLB)上,最后通过数据读写接口中的读接口读取出来。

本实现方式通过设置模式选择单元108,可以灵活地使用计算存储单元阵列进行普通数据读写或存内多比特乘加计算,从而提高了计算存储单元阵列的使用灵活性,并丰富了计算存储单元阵列的应用场景。

在一些可选的实现方式中,加法树102包括至少两个子树,并且对于至少两个子树中的每个子树,该子树用于将各个计算存储单元输出的乘积数据包括的、与该子树对应的比特位累加,得到该子树对应的子累加结果;

电路还包括:

乘法累加器,用于将各个子累加结果进行乘法累加运算,得到累加结果。

作为示例,加法树的数量可以与乘积数据的比特位数相同。例如包括四个加法树,每个加法树用于对多个乘积数据的相同位置的单比特位进行相加,得到四个累加结果s0、s1、s2、s3。利用乘法累加器进行如下计算得到累加结果:PSUM= s3*8+s2*4+s1*2+s0。

本实现方式通过将加法树设置为至少两个子树,可以对累加计算的过程进行分布计算,降低设置加法树的复杂度。

在一些可选的实现方式中,至少两个子树包括第一子树和第二子树,第一子树对应于乘积数据的、对应位数的高比特位,第二子树对应于乘积数据的、对应位数的低比特位。作为示例,第一子树对应于乘积数据的高两位,第二子树对应于乘积数据的低两位,即第一子树对各个乘积数据的高两位数据相加,第二子树对各个乘积数据的低两位数据相加。

乘法累加器包括乘法单元和第一加法单元,乘法单元用于将第一子树对应的子累加结果与预设数值相乘,第一加法单元用于将乘法单元输出的结果与第二子树对应的子累加结果相加,得到累加结果。

作为示例,假设乘积数据为4比特位数据,第一子树输出的子累加结果为a,第二子树输出的子累加结果为b,则累加结果为:PSUM =a*4+b。

本实现方式通过将加法树设置为两个子树,可以在降低设置加法树的复杂度的基础上,减少乘法运算的次数,有助于提高计算效率。

在一些可选的实现方式中,对应位数的高比特位为乘积数据的最高位,对应位数的低比特位为乘积数据中的除最高位以外的其他位。如图4所示,401为最高位对应的子树,输入特征数据包括Y

本实现方式通过对最高位进行单独累加,可以实现在乘积数据为有符号数时对有符号的最高位的单独处理,从而提高了数据累加的灵活性。

在一些可选的实现方式中,如图6所示,多比特输入转换单元包括移位单元601和第二加法单元602,移位单元和第二加法单元用于循环执行如下操作:

将输入特征数据的最高比特位对应的累加结果输入移位单元,将移位后的累加结果与相邻的低比特位对应的累加结果输入第二加法单元,将相加后的累加结果输入移位单元,再次将移位后的累加结果与相邻的低比特位对应的累加结果输入第二加法单元,直到将输入特征数据的最低比特位对应的累加结果与移位后的累加结果输入第二加法单元,得到乘加结果。

作为示例,假设输入特征数据为4比特数据,最高位对应的累加结果S3首先输入移位单元601,并将S3移位后的累加结果和次高位对应的累加结果S2输入第二加法单元602,得到第一次移位累加后的数据sum1。然后,将sum1再次输入移位单元601,并将sum1移位后和累加结果S1输入第二加法单元602,得到第二次移位累加后的数据sum2。再然后,将sum2再次输入移位单元601,并将sum2移位后和累加结果S0输入第二加法单元602,得到第三次移位累加后的数据sum3,sum3即为最终的乘加结果MAC。

本实现方式通过将多比特输入转换单元设置为一个移位单元和一个加法单元的组合,可以循环地对各个累加结果进行移位累加,从而实现了使用少量的硬件完成多比特输入转换,节省了电路占用的空间,降低了硬件成本。

在一些可选的实现方式中,多比特输入转换单元包括目标数量个移位单元和第三加法单元,目标数量为输入特征数据包括的比特位数减一。例如,目标数量为3。

目标数量个移位单元分别用于对输入的累加结果进行对应位数的移位操作。

第三加法单元用于将目标数量个移位单元分别输出的移位后的累加结果相加,得到乘加结果。

如图7所示,移位单元和第三加法单元的数量均为3,累加结果S3输入第一个移位单元701,再将移位后的数据和累加结果S2输入第一个第三加法单元704;然后,将相加后的结果输入第二个移位单元702,再将移位后的数据和累加结果S1输入第二个第三加法单元705;最后,将相加后的结果输入第三个移位单元703,再将移位后的数据和累加结果S0输入第三个第三加法单元706,最终得到的数据即为乘加结果MAC。

在一些可选的实现方式中,单比特乘法器包括或非门,或非门用于对取反后的权重数据包括的单比特位和取反后的输入特征数据包括的单比特位进行或非运算,得到单比特乘积数据。

通常,可以从存储权重数据包括的单比特位W的6T SRAM中提取反相数据W_B,再对输入特征数据包括的单比特位IN取反,得到IN_B,然后将W_B和W_B输入或非门,输出单比特乘积数据。具体的真值表如下:

本实现方式通过使用或非门实现单比特乘法计算,其实现方式简单,可以降低电路的复杂度,降低电路实现的成本。

以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。

可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。

还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。

提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。

为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

相关技术
  • 基于数字域存内计算的电路
  • 基于非易失器件的电路和电荷域存内计算方法
技术分类

06120112670098