用于高运算速度的累加器制造技术

技术编号:37785097 阅读:9 留言:0更新日期:2023-06-09 09:15
一种累加器包括:输入锁存电路,第一输入锁存器,其能够锁存和输出输入数据;第二输入锁存器,其能够锁存和输出奇数锁存数据;以及第三输入锁存器,其能够锁存和输出偶数锁存数据。累加器还包括累加电路,其被配置为将输入数据和从输入锁存电路输出的奇数锁存数据相加以输出奇数累加数据,并且被配置为将输入数据和偶数锁存数据相加以输出偶数累加数据。累加器还包括输出锁存电路,输出锁存电路包括能够锁存从累加电路输出的奇数累加数据并输出奇数锁存数据的第一输出锁存器,并且输出锁存电路包括能够锁存从累加电路输出的偶数累加数据并输出偶数锁存数据的第二输出锁存器。数据并输出偶数锁存数据的第二输出锁存器。数据并输出偶数锁存数据的第二输出锁存器。

【技术实现步骤摘要】
用于高运算速度的累加器
[0001]相关申请的交叉引用
[0002]本申请要求于2021年12月1日提交的韩国申请第10

2021

0169849号的优先权,其整体通过引用并入本文。


[0003]本公开的各种实施例总体上涉及一种累加器,并且更具体地,涉及一种用于高运算速度的累加器、运算逻辑电路以及包括该累加器的存储器中处理(以下称为“PIM(processing

in

memory)”)装置。

技术介绍

[0004]最近,不仅在信息技术(IT)行业,而且在金融和医疗行业,对人工智能的兴趣正在迅速增加。因此,人工智能的引入,更准确地说是深度学习,正在各个领域被考虑和原型化。通常,深度学习是有效地学习神经网络(DNN)或深度网络的技术的统称,它增加了传统神经网络中的层数,并将它们用于模式识别或推理。在执行深度学习时,利用乘法累加(以下称为“MAC”)运算。MAC运算可以通过乘法运算、加法运算和累加运算的过程来执行。在执行累加运算的累加器中,当累加器中执行累加运算的速度低于向累加器输入数据的速度时,执行整体MAC运算的速度可能会降低。

技术实现思路

[0005]根据本公开的实施例,一种累加器可以包括输入锁存电路、累加电路和输出锁存电路。所述输入锁存电路可以包括锁存并输出输入数据的第一输入锁存器、锁存并输出奇数锁存数据的第二输入锁存器以及锁存并输出偶数锁存数据的第三输入锁存器。所述累加电路可以将所述输入数据和从所述输入锁存电路输出的所述奇数锁存数据相加以输出奇数累加数据,并且将所述输入数据和所述偶数锁存数据相加以输出偶数累加数据。所述输出锁存电路可以包括:第一输出锁存器,其锁存从所述累加电路输出的奇数累加数据并输出所述奇数锁存数据;以及第二输出锁存器,其锁存从所述累加电路输出的偶数累加数据并输出所述偶数锁存数据。
[0006]根据本公开的另一实施例,累加器可以包括输入锁存电路、累加电路、输出锁存电路和附加加法器。所述输入锁存电路可以包括:锁存并输出输入数据的第一输入锁存器、锁存并输出奇数锁存数据的第二输入锁存器以及锁存并输出偶数锁存数据的第三输入锁存器。所述累加电路可以将所述输入数据和从所述输入锁存电路输出的奇数锁存数据相加以输出奇数累加数据,并且将所述输入数据和所述偶数锁存数据相加以输出偶数累加数据。所述输出锁存电路可以包括:第一输出锁存器,其锁存从所述累加电路输出的所述奇数累加数据并输出所述奇数锁存数据;以及第二输出锁存器,其锁存从所述累加电路输出的所述偶数累加数据并输出所述偶数锁存数据。所述附加加法器可以将从所述第一输出锁存器输出的所述奇数锁存数据之中的最后一个奇数锁存数据与从所述第二输出锁存器输出的
所述偶数锁存数据之中的最后一个偶数锁存数据相加,并输出累加数据。
[0007]根据本公开的另一实施例,一种累加器可以包括选择器、输入锁存电路、累加电路和输出锁存电路。所述选择器可以输出从输入数据和奇数锁存数据中选择的选中数据。所述输入锁存电路可以包括:第一输入锁存器,其锁存并输出从所述选择器发送的所述选中数据;第二输入锁存器,其锁存并输出所述奇数锁存数据;以及第三输入锁存器,其锁存并输出偶数锁存数据。所述累加电路可以将从所述输入锁存电路输出的所述选中数据和所述奇数锁存数据相加以输出奇数累加数据,并且将所述选中数据和所述偶数锁存数据相加以输出偶数累加数据。所述输出锁存电路可以包括:第一输出锁存器,其锁存从所述累加电路输出的所述奇数累加数据并输出所述奇数锁存数据,以及第二输出锁存器,其锁存从所述累加电路输出的所述偶数累加数据并输出所述偶数锁存数据。
[0008]根据本公开的另一实施例,MAC运算器可以包括:乘法电路,其被配置为对第一输入数据和第二输入数据执行乘法运算并输出相乘数据;加法器树,其被配置为对所述相乘数据执行执行加法运算并输出乘加数据;以及累加器,其被配置为对所述乘加数据和锁存数据执行累加运算。所述累加器可以包括选择器、输入锁存电路、累加电路和输出锁存电路。所述选择器可以输出从所述乘加数据和奇数锁存数据中选择的选中数据。所述输入锁存电路可以包括:第一输入锁存器,其锁存并输出从所述选择器发送的所述选中数据;第二输入锁存器,其锁存并输出所述奇数锁存数据,以及第三输入锁存器,其锁存并输出偶数锁存数据。所述累加电路可以将所述选中数据和从所述输入锁存电路输出的所述奇数锁存数据相加以输出奇数累加数据,并且将所述选中数据和所述偶数锁存数据相加以输出偶数累加数据。所述输出锁存电路可以包括:第一输出锁存器,其锁存从所述累加电路输出的所述奇数累加数据并输出所述奇数锁存数据,以及第二输出锁存器,其锁存从所述累加电路输出的所述偶数累加数据并输出所述偶数锁存数据。
[0009]根据本公开的另一实施例,一种PIM装置可以包括:存储电路,其被配置为提供权重数据和向量数据;乘法电路,其被配置为对所述权重数据和所述向量数据执行乘法运算并输出相乘数据;加法器树,其被配置为对所述相乘数据执行加法运算并输出乘加数据;以及累加器,其被配置为对所述乘加数据和锁存数据执行累加运算。所述累加器可以包括选择器、输入锁存电路、累加电路和输出锁存电路。所述选择器可以输出从所述乘加数据和奇数锁存数据中选择的选中数据。所述输入锁存电路可以包括:第一输入锁存器,其锁存并输出从所述选择器发送的所述选中数据;第二输入锁存器,其锁存并输出所述奇数锁存数据;以及第三输入锁存器,其锁存并输出偶数锁存数据。所述累加电路可以将从所述输入锁存电路输出的所述选中数据和所述奇数锁存数据相加以输出奇数累加数据,并且将所述选中数据和所述偶数锁存数据相加以输出偶数累加数据。所述输出锁存电路可以包括:第一输出锁存器,其锁存从所述累加电路输出的所述奇数累加数据并输出所述奇数锁存数据;以及第二输出锁存器,其锁存从所述累加电路输出的所述偶数累加数据并输出所述偶数锁存数据。
[0010]根据本公开的另一个实施例,一种PIM装置可以包括:第一存储电路,其被配置为包括提供左权重数据的左存储体和提供右权重数据的右存储体;第二存储电路,其被配置为包括提供左向量数据的第一全局缓冲器和提供右向量数据的第二全局缓冲器;左乘法电路,其被配置为对所述左权重数据和所述左向量数据执行乘法运算并输出左相乘数据;左
加法器树,其被配置为对所述左相乘数据执行加法运算并输出左乘加数据;左累加器,其被配置为对所述左乘加数据和左锁存数据执行累加运算;右乘法电路,其被配置为对所述右权重数据和所述右向量数据执行乘法运算并输出右相乘数据;右加法器树,其被配置为对所述右相乘数据执行加法运算并输出右乘加数据;以及右累加器,其被配置为对所述右乘加数据和右锁存数据执行累加运算。所述左累加器和右累加器中的每一个可以包括选择器、输入锁存电路、累加电路和输出锁存电路。所述选择器可以输出从所述乘加数据和奇数锁存数据中选择的选中数据。输入锁存电路可以包括:第一输入锁存器,其锁存并输出从所述选择器发送的所述选中数据;第二输入锁存器,其本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种累加器,包括:输入锁存电路,其包括能够锁存和输出输入数据的第一输入锁存器、能够锁存和输出奇数锁存数据的第二输入锁存器以及能够锁存和输出偶数锁存数据的第三输入锁存器;累加电路,其被配置为将所述输入数据与从所述输入锁存电路输出的所述奇数锁存数据相加以输出奇数累加数据,并且被配置为将所述输入数据与所述偶数锁存数据相加以输出偶数累加数据;以及输出锁存电路,其包括能够锁存从所述累加电路输出的奇数累加数据并输出所述奇数锁存数据的第一输出锁存器,以及包括能够锁存从所述累加电路输出的所述偶数累加数据并输出所述偶数锁存数据的第二输出锁存器。2.根据权利要求1所述的累加器,其中,所述第一输入锁存器:包括能够接收所述输入数据的输入端、能够接收第一时钟信号的时钟输入端以及耦接至所述累加电路的第一输入端的输出端,并且被配置为与所述第一时钟信号同步地通过所述输出端向所述累加电路发送所述输入数据。3.根据权利要求2所述的累加器,其中,所述第二输入锁存器:包括能够接收所述奇数锁存数据的输入端、能够接收第二时钟信号的时钟输入端以及耦接至所述累加电路的第二输入端的输出端,并且被配置为与所述第二时钟信号同步地通过所述输出端将所述奇数锁存数据传送至所述累加电路。4.根据权利要求3所述的累加器,其中,所述第三输入锁存器:包括能够接收所述偶数锁存数据的输入端、能够接收第三时钟信号的时钟输入端以及耦接至所述累加电路的所述第二输入端的输出端,以及被配置为与所述第三时钟信号同步地通过所述输出端将所述偶数锁存数据传送至所述累加电路。5.根据权利要求4所述的累加器,其中,所述第二时钟信号具有与所述第一时钟信号的奇数编号脉冲相同的脉冲,并且其中,所述第三时钟信号具有与所述第一时钟信号的偶数编号脉冲相同的脉冲。6.根据权利要求5所述的累加器,其中,所述累加电路包括能够输出所述奇数累加数据的第一输出端和能够输出所述偶数累加数据的第二输出端,以及其中,所述累加电路的第一输出端耦接至所述第一输出锁存器的输入端,并且所述累加电路的第二输出端耦接至所述第二输出锁存器的输入端。7.根据权利要求6所述的累加器,其中,所述输入数据具有由第一符号位、第一指数位和第一尾数位组成的浮点格式,其中,所述奇数锁存数据和所述偶数锁存数据中的每一个具有由第二符号位、第二指数位和第二尾数位组成的浮点格式,其中,所述奇数累加数据和所述偶数累加数据中的每一个具有由第三符号位、第三指数位和第三尾数位组成的浮点格式,并且其中,所述累加电路包括:
指数运算电路,其被配置为对从所述输入锁存电路发送的第一指数位和第二指数位执行指数计算运算,并且生成最大指数位、第一移位位和第二移位位;尾数运算电路,其被配置为对所述第一尾数位和所述第二尾数位执行尾数计算运算,并且生成第三符号位和中间尾数加法位;以及归一化器,其被配置为利用所述最大指数位、所述中间尾数加法位和所述第三符号位执行归一化运算,并且生成所述第三指数位和所述第三尾数位。8.根据权利要求7所述的累加器,其中,所述指数运算电路包括:指数减法电路,其被配置为执行从所述第一指数位减去所述第二指数位的减法运算以生成指数减法位,并输出所述指数减法位的最高有效位和低位;2的补码电路,其被配置为生成用于从所述指数减法电路输出的低位的2的补码位;第一选择器,其被配置为根据从所述指数减法电路输出的所述最高有效位的值来输出“0”或所述指数减法位的低位作为所述第一移位位;第二选择器,其被配置为根据从所述指数减法电路输出的所述最高有效位的值输出用于低位的2的补码位或“0”作为第二移位位;以及第三选择器,其被配置为根据从所述指数减法电路输出的所述最高有效位的值来输出所述第一指数位或所述第二指数位作为所述最大指数位。9.根据权利要求8所述的累加器,其中,所述指数减法电路包括:2的补码电路,其被配置为生成用于所述第二指数位的2的补码位;指数加法器,其被配置为将用于所述第二指数位的2的补码位和所述第一指数位相加,并输出所述指数减法位的最高位和低位;以及指数比较电路,其被配置为生成根据所述最高有效位确定的符号位。10.根据权利要求9所述的累加器,其中,所述指数比较电路被配置为当所述最高有效位为“0”时输出“1”作为符号位,并且当最高有效位为“1”时输出“0”作为符号位。11.根据权利要求10所述的累加器,其中,当所述符号位为“0”时,所述第一选择器、所述第二选择器和所述第三选择器被配置为输出“0”、用于指数减法位的低位的2的补码位以及第一指数位分别作为所述第一移位位、所述第二移位位和所述最大指数位,以及其中,当所述符号位为“1”时,所述第一选择器、所述第二选择器和所述第三选择器被配置为输出所述指数减法位的低位、“0”以及所述2的补码位分别作为所述第一移位位、所述第二移位位以及所述最大指数位。12.根据权利要求7所述的累加器,其中,所述尾数运算电路包括:负数处理电路,其被配置为对所述第一尾数位和所述第二尾数位执行负数处理,并输出第一中间尾数位和第二中间尾数位;移位电路,其被配置为将所述第一中间尾数位移位与所述第一移位位的绝对值相对应的位数并且生成第三中间尾数位,以及将所述第二中间尾数位移位与所述第二移位位的绝对值相对应的位数并且生成第四中间尾数位;以及尾数加法电路,其被配置为接收所述第一符号位、所述第二符号位、所述第三中间尾数位和所述第四中间尾数位并且生成所述第三符号位和所述中间尾数加法位。13.根据权利要求12所述的累加器,其中,负数处理电路包括:
第一2的补码电路,其被配置为输出所述第一尾数位的2的补码位;第二2的补码电路,其被配置为输出所述第二尾数位的2的补码位;第一选择器,其被配置为根据所述第一符号位的值来输出所述第一尾数位或者所述第一尾数位的2的补码...

【专利技术属性】
技术研发人员:李性柱
申请(专利权)人:爱思开海力士有限公司
类型:发明
国别省市:

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

1