一种用于神经网络处理器的加法器和乘法器制造技术

技术编号:17812482 阅读:41 留言:0更新日期:2018-04-28 05:21
本发明专利技术提供一种用于神经网络处理器的加法器和乘法器。其中所述加法器,包括:至少一个加法装置,所述加法装置包括一个异或非门、第一与非门和第二与非门,所述异或非门以两个比特位Ai和Bi为输入,所述第一与非门以两个比特位Ai‑1和Bi‑1为输入,所述第二与非门以所述异或非门的输出和所述第一与非门的输出为输入,所述第二与非门的输出为所述加法装置的输出位Si;其中,Ai和Ai‑1为加数中相邻的两个比特,Bi和Bi‑1为被加数中相邻的两个比特,i大于等于0。

【技术实现步骤摘要】
一种用于神经网络处理器的加法器和乘法器
本专利技术涉及神经网络处理器,尤其涉及对神经网络处理器中加法器和乘法器的改进。
技术介绍
在计算机对信号进行处理的过程中往往包含许多复杂的运算,这些复杂的运算可以被拆解为加法和乘法运算的组合。以神经网络中的卷积运算为例,一次卷积运算需要执行多次读取数据、加法、乘法的操作,以最终实现卷积运算。传统的加法器逐位地对加数以及被加数执行加的运算、传统的乘法器将乘数与被乘数中的每一位分别相乘再通过移位以及传统的加法器将所得的结果相加以执行乘法运算,尽管上述传统的加法器和乘法器能够获得具有很高的准确性的计算结果,然而,采用这样的加法器和乘法器对于诸如神经网络这样包含大量计算的应用而言会带来非常高的延时、能耗。在神经网络中包含多个网络层,网络层对神经网络的输入或者对前一个网络层的输出执行诸如卷积、以及其他复杂运算,以获得针对该网络层的输出,通过多个网络层的计算最终获得学习、分类、识别、处理等相应的结果。可以理解,神经网络中多个网络层的计算量非常大,并且这样的计算往往需要使用较早执行的计算结果,采用上述传统的加法器和乘法器会占用神经网络处理器中大量的资源,带来极高的延时、能耗。
技术实现思路
因此,本专利技术的目的在于克服上述现有技术的缺陷,提供一种用于神经网络处理器的加法器,包括:至少一个加法装置,所述加法装置包括一个异或非门、第一与非门和第二与非门,所述异或非门以两个比特位Ai和Bi为输入,所述第一与非门以两个比特位Ai-1和Bi-1为输入,所述第二与非门以所述异或非门的输出和所述第一与非门的输出为输入,所述第二与非门的输出为所述加法装置的输出位Si;其中,Ai和Ai-1为加数中相邻的两个比特,Bi和Bi-1为被加数中相邻的两个比特,i大于等于0。优选地,根据所述加法器,其中包括一个所述加法装置,用于在对具有k个比特位的加数Ak-1Ak…A0和被加数Bk-1Bk…B0执行逻辑计算,k大于等于2,逐一地取i=0,1,2…,k-1,分别将Ai和Bi作为所述异或非门的输入、将Ai-1和Bi-1作为所述第一与非门的输入,按照比特位从高到低逐一顺序排列得到的所述第二与非门的输出Sk-1Sk…S0,以作为所述加数Ak-1Ak…A0和被加数Bk-1Bk…B0的和。优选地,根据所述加法器,其中包括k个所述加法装置,其序号j分别为j=0,1,2…,k-1,用于在具有k个比特位的加数Ak-1Ak…A0和被加数Bk-1Bk…B0执行逻辑计算,k大于等于2,其中,加法装置j用于将分别将Aj和Bj作为所述加法装置j的异或非门的输入、将Aj-1和Bj-1作为所述加法装置j的第一与非门的输入,按照比特位从高到低顺序排列由所述k个所述加法装置中的每一个得到的所述第二与非门的输出位Sk-1Sk…S0,以作为所述加法器的计算结果。优选地,根据所述加法器,其中所述加法装置用于在i=0时将Ai-1取0和Bi-1取0。优选地,根据所述加法器,其中所述加法装置用于在i大于所述加数或所述被加数的最高比特位时,将对应的Ai或Bi取0。以及,一种用于神经网络处理器的乘法器,包括:部分积产生器、移位器、和累加器;其中,所述累加器中包含至少一个上述任意一项所述的加法器。优选地,根据所述乘法器,其中所述累加器中还包括至少一个寄存器,用于对所述加法器输出的结果进行缓存并输入到所述加法器中,以执行累加操作。优选地,根据所述乘法器,其中所述累加器中包含的各个加法器采用累加树的方式连接。优选地,根据所述乘法器,用于对N比特的乘数和被乘数执行以下处理:产生N个部分积,N个部分积两两一组分为N/2组,每组数据采用所述加法器进行加法操作,产生N/2个部分和;将得到的所述N/2个部分和两两一组分为N/4组,每组数据采用所述加法器进行加法操作;重复上述步骤,直至得到最终的一个累加计算结果。优选地,根据所述乘法器,在所述处理中,将在移动位数后相邻的两个部分积组合在一起,并且,凡是已处于一个组合中的部分积将不再被划分到其他组合中。与现有技术相比,本专利技术的优点在于:提供了一种能够提升神经网络处理系统的运算速度并降低能耗、使得神经网络处理系统性能更加高效的加法器以及相应的乘法器,其克服了神经网络处理器中加法器以及乘法器存在的设计复杂度高、运算速度差、能量效率低这一问题,通过引入近似计算技术,降低了加法以及乘法操作的能量损耗,提高了运算速度。附图说明以下参照附图对本专利技术实施例作进一步说明,其中:图1是根据本专利技术的一个实施例用于加法器的加法装置的逻辑电路;图2(a)、(b)是根据本专利技术的实施例的加法器;图2是本专利技术的一个实施例可提供误差位的用于加法器的加法装置的逻辑电路;图3是本专利技术的一个实施例的乘法器的示意图;图4是由乘数和被乘数生成部分积的示意图;图5是根据本专利技术的一个实施例乘法器中累加装置的示意图。具体实施方式下面结合附图和具体实施方式对本专利技术作详细说明。专利技术人通过研究神经网络算法发现,神经网络模型的算法本身对于计算所产生的中间结果存在一定的容错性,其会对中间结果进行进一步的加工处理,即便在计算过程中的某些运算结果并不完全准确,也不会影响最终输出的计算结果。基于上述发现,专利技术人提出可以采用能够执行近似加法运算的硬件来代替传统的加法器,并将这样的加法器硬件应用到乘法器中,从而减少硬件执行运算的延时、以及电路的整体能耗。根据本专利技术的一个实施例,提供了一种用于神经网络处理器的加法器,其能够提供近似的加法计算结果。图1示出了所述加法器中的一个加法装置的示例,所述加法装置能够对加数中的相邻两位以及被加数中对应的两位进行逻辑运算,获得与所述相邻两位中较高一位对应的加法运算的近似计算结果。可以看到,所述加法装置中包括一个异或非门(XNOR)、两个与非门(NAND),其中异或非门以Ai和Bi为输入并且其输出被连接作为第一与非门的一个输入,第二与非门以Ai-1和Bi-1为输入并且其输出被连接作为第一与非门的另一个输入,所述第一与非门的输出位为Si。由此,可以将输出位Si以及Ai、BiAi-1和Bi-1之间的逻辑关系表示为:Si=(AiXNORBi)NAND(Ai-1NANDBi-1);图1所提供的加法装置可以提供近似的加法运算结果,以A=1010和B=0011两个数相加为例:当i=0时,Ai=0,Bi=1,Ai-1和Bi-1置为0,得到S0=1;当i=1时,Ai=1,Bi=1,Ai-1=0,Bi-1=1,得到S1=0;当i=2时,Ai=0,Bi=0,Ai-1=1,Bi-1=1,得到S2=1;当i=3时,Ai=1,Bi=0,Ai-1=0,Bi-1=0,得到S3=1。分别将A和B的各个比特输入到图1所提供的加法装置中,可以获得对应的输出位,将这些输出位按照从高到低的比特位顺序地排列在一起可以获得最终的求和结果S3S2S1S0=1101。这里当i=0时,i-1小于比特位的最小标号0,在计算时将Ai-1和Bi-1置为0以作为所述加法装置中异或非门的输入。根据本专利技术的一个实施例,可以采用多个上述加法器并行进行计算。例如如图2(a)所示,当i的最大值为3时,可以采用4个图1所示的加法装置,并行地对i=0、1、2、3的比特位按照图1所示执行加的运算,将相应的输出位Si逐位连接,得到本文档来自技高网...
一种用于神经网络处理器的加法器和乘法器

【技术保护点】
一种用于神经网络处理器的加法器,包括:至少一个加法装置,所述加法装置包括一个异或非门、第一与非门和第二与非门,所述异或非门以两个比特位Ai和Bi为输入,所述第一与非门以两个比特位Ai‑1和Bi‑1为输入,所述第二与非门以所述异或非门的输出和所述第一与非门的输出为输入,所述第二与非门的输出为所述加法装置的输出位Si;其中,Ai和Ai‑1为加数中相邻的两个比特,Bi和Bi‑1为被加数中相邻的两个比特,i大于等于0。

【技术特征摘要】
1.一种用于神经网络处理器的加法器,包括:至少一个加法装置,所述加法装置包括一个异或非门、第一与非门和第二与非门,所述异或非门以两个比特位Ai和Bi为输入,所述第一与非门以两个比特位Ai-1和Bi-1为输入,所述第二与非门以所述异或非门的输出和所述第一与非门的输出为输入,所述第二与非门的输出为所述加法装置的输出位Si;其中,Ai和Ai-1为加数中相邻的两个比特,Bi和Bi-1为被加数中相邻的两个比特,i大于等于0。2.根据权利要求1所述的加法器,其中包括一个所述加法装置,用于在对具有k个比特位的加数Ak-1Ak…A0和被加数Bk-1Bk…B0执行逻辑计算,k大于等于2,逐一地取i=0,1,2…,k-1,分别将Ai和Bi作为所述异或非门的输入、将Ai-1和Bi-1作为所述第一与非门的输入,按照比特位从高到低逐一顺序排列得到的所述第二与非门的输出Sk-1Sk…S0,以作为所述加数Ak-1Ak…A0和被加数Bk-1Bk…B0的和。3.根据权利要求1所述的加法器,其中包括k个所述加法装置,其序号j分别为j=0,1,2…,k-1,用于在具有k个比特位的加数Ak-1Ak…A0和被加数Bk-1Bk…B0执行逻辑计算,k大于等于2,其中,加法装置j用于将分别将Aj和Bj作为所述加法装置j的异或非门的输入、将Aj-1和Bj-1作为所述加法装置j的第一与非门的输入,按照比特位从高到低...

【专利技术属性】
技术研发人员:韩银和许浩博王颖
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1