CN112749796B - 用于神经网络的计算设备 - Google Patents
用于神经网络的计算设备 Download PDFInfo
- Publication number
- CN112749796B CN112749796B CN202011183018.1A CN202011183018A CN112749796B CN 112749796 B CN112749796 B CN 112749796B CN 202011183018 A CN202011183018 A CN 202011183018A CN 112749796 B CN112749796 B CN 112749796B
- Authority
- CN
- China
- Prior art keywords
- signal
- output
- bit group
- circuit
- input
- 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
- 238000013528 artificial neural network Methods 0.000 title abstract description 24
- 230000004913 activation Effects 0.000 claims abstract description 145
- 238000004364 calculation method Methods 0.000 claims abstract description 133
- 238000012937 correction Methods 0.000 claims description 82
- 239000000284 extract Substances 0.000 abstract description 13
- 230000006870 function Effects 0.000 description 152
- 238000013500 data storage Methods 0.000 description 37
- ATJFFYVFTNAWJD-UHFFFAOYSA-N Tin Chemical compound [Sn] ATJFFYVFTNAWJD-UHFFFAOYSA-N 0.000 description 27
- 238000010586 diagram Methods 0.000 description 20
- 230000005540 biological transmission Effects 0.000 description 17
- 101100191136 Arabidopsis thaliana PCMP-A2 gene Proteins 0.000 description 16
- 101100422768 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SUL2 gene Proteins 0.000 description 16
- 101100048260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UBX2 gene Proteins 0.000 description 16
- 239000011159 matrix material Substances 0.000 description 12
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 11
- 102100040577 Dermatan-sulfate epimerase-like protein Human genes 0.000 description 10
- 101000816741 Homo sapiens Dermatan-sulfate epimerase-like protein Proteins 0.000 description 10
- 238000009825 accumulation Methods 0.000 description 7
- 230000003213 activating effect Effects 0.000 description 5
- 210000004027 cell Anatomy 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 201000008103 leukocyte adhesion deficiency 3 Diseases 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Logic Circuits (AREA)
Abstract
本公开提供一种用于神经网络的计算设备。一种计算设备包括乘法累加(MAC)运算器和激活函数(AF)电路。MAC运算器对权重数据和向量数据执行MAC计算操作以生成计算结果信号。AF电路从计算结果信号中提取第一比特位组和第二比特位组。另外,AF电路基于第一比特位组和第二比特位组来生成输入分配信号。此外,AF电路基于激活函数来选择并输出与输入分配信号相对应的输出分配信号。
Description
相关申请的交叉引用
本申请是2020年7月17日提交的美国专利申请序列号16/932,400的部分继续申请,是2020年7月2日提交的美国专利申请序列号16/919,786的部分继续申请,本申请要求2019年10月31日提交的韩国专利申请10-2019-0138114的优先权,2020年1月8日提交的美国临时专利申请62/958,614的优先权,2020年1月10日提交的美国临时专利申请62/959,574的优先权,2020年1月10日提交的美国临时专利申请62/959,593的优先权,其全部内容通过引用合并于此。
技术领域
本公开的实施例总体上涉及用于神经网络的计算设备。
背景技术
在神经网络中,在数学上建模为类似于人脑的神经元彼此连接以形成网络。最近,神经网络技术得到了快速发展。因此,已经在通过利用各种电子器件中的神经网络技术来分析输入数据和提取有用信息上进行了大量努力。
发明内容
根据一个实施例,一种计算设备包括乘法累加(MAC)运算器和激活函数(AF)电路。MAC运算器被配置为对权重数据和向量数据执行MAC计算操作以生成计算结果信号。AF电路被配置为从计算结果信号中提取第一比特位组和第二比特位组,被配置为基于第一比特位组和第二比特位组来生成输入分配信号,以及被配置为基于激活函数来选择并输出与输入分配信号相对应的输出分配信号。
根据另一实施例,一种计算设备包括比特位组选择器、校正码生成器、输入分配信号生成器和输出分配信号生成器。比特位组选择器被配置为从由乘法累加(MAC)计算操作生成的计算结果信号中提取第一比特位组和第二比特位组,以输出第一比特位组和第二比特位组。校正码生成器被配置为基于第二比特位组来生成校正码。输入分配信号生成器被配置为将校正码加至第一比特位组以生成输入分配信号。输出分配信号生成器被配置为基于激活函数来选择并输出与输入分配信号相对应的输出分配信号。
根据又一实施例,一种计算设备包括:比特位组选择器,其被配置为从由乘法累加(MAC)计算操作生成的计算结果信号中提取第一比特位组和第二比特位组,以输出第一比特位组和第二比特位组;校正码生成器,其被配置为基于第一比特位组和第二比特位组来生成校正码;输入分配信号生成器,其被配置为将校正码加至第一比特位组,以生成输入分配信号;以及输出分配信号生成器,其被配置为基于激活函数来选择并输出与输入分配信号相对应的输出分配信号。
附图说明
图1是示出根据本公开的实施例的计算设备的配置的框图。
图2是示出图1的计算设备中包括的MAC电路的配置的框图。
图3是示出图1的计算设备中包括的AF电路的配置的框图。
图4示出了图3的AF电路中包括的第一表储存电路的配置。
图5和图6是示出图4的第一表储存电路中包括的表输出电路的示例的电路图。
图7是示出图3的AF电路中包括的第二表储存电路的配置的框图。
图8是示出根据本公开的另一实施例的计算设备的配置的框图。
图9是示出根据本公开的又一实施例的计算设备的配置的框图。
图10是示出根据本公开的又一实施例的计算设备的配置的框图。
图11是示出图10的计算设备中包括的MAC电路的配置的框图。
图12是示出图10的计算设备中包括的AF电路的配置的框图。
图13是示出图12的AF电路中包括的输出分配信号生成电路的配置的框图。
图14是示出图13中所示的输出分配信号生成电路的操作的表。
图15是示出图12的AF电路中包括的输出分配信号补偿电路的配置的框图。
图16是示出图15中所示的输出分配信号补偿电路的操作的曲线图。
图17是示出根据本公开的又一实施例的用于神经网络的计算设备的配置的框图。
图18示出了由图17的计算设备中包括的MAC运算器执行的MAC计算操作的示例。
图19示出了可应用于图17的计算设备中包括的激活函数(AF)电路的各种激活函数。
图20是示出用于实现图19中所示的双曲正切(Tanh)激活函数的查找表的示例的表。
图21是示出用于实现可应用于图17的计算设备中包括的AF电路的激活函数的查找表的示例的表。
图22是示出图17的计算设备中包括的AF电路的配置的框图。
图23和图24是示出用于从图22的AF电路中的计算结果信号选择第一比特位组和第二比特位组的操作的表。
图25是示出图22的AF电路中包括的校正码生成器的配置的电路图。
图26是示出图25中所示的校正码生成器的操作的表。
图27至图30示出了包括图25的校正码生成器的AF电路的操作。
图31是示出图22的AF电路中包括的校正码生成器的另一个示例的操作的表。
图32至图34示出了参照图31描述的包括校正码生成器的AF电路的操作。
图35是示出图17的计算设备中包括的与AF电路的另一个示例相对应的AF电路的配置的框图。
图36是示出图35的AF电路中包括的校正码生成器的操作的表。
具体实施方式
在下面的实施例的描述中,当参数被称为“预定的”时,其可以旨在表示当在过程或算法中使用该参数时预先确定该参数的值。该参数的值可以在过程或算法开始时被设定,或者可以在执行过程或算法的时段内被设定。
将理解的是,尽管本文中使用术语“第一”、“第二”、“第三”等来描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件和另一个元件区分开。因此,在不脱离本公开的教导的情况下,在一些实施例中的第一元件可以在其他实施例中被称为第二元件。
此外,将理解的是,当一个元件被称为“连接”或“耦接”到另一元件时,其可以直接连接或耦接到另一元件,或者可以存在中间元件。相反地,当一个元件被称为“直接连接”或“直接耦接”至另一元件时,则不存在中间元件。
逻辑“高”电平和逻辑“低”电平可以用于描述电信号的逻辑电平。具有逻辑“高”电平的信号可以与具有逻辑“低”电平的信号区分开。例如,当具有第一电压的信号对应于具有逻辑“高”电平的信号时,具有第二电压的信号对应于具有逻辑“低”电平的信号。在一个实施例中,逻辑“高”电平的电压电平可以被设定为高于逻辑“低”电平的电压电平。另外,信号的逻辑电平可以根据实施例而被设定为不同或相反。例如,在一个实施例中具有逻辑“高”电平的某个信号在另一实施例中可以被设定为具有逻辑“低”电平。
在下文中将参考附图来描述本公开的各种实施例。然而,本文中所描述的实施例仅用于说明性目的,并非旨在限制本公开的范围。
如图1中所示,计算设备13可以包括命令解码器101、模式寄存器103、数据输入/输出(I/O)电路105、数据线107、数据储存电路109、MAC电路111和AF电路113。
命令解码器101可以基于外部命令ECMD来生成表设置信号TSC、输入选择信号ISEL和表输入信号TIN。包括在输入选择信号ISEL中的比特位数可以根据实施例而被设置为不同。包括在表输入信号TIN中的比特位数可以根据实施例而被设置为不同。
命令解码器101可以对外部命令ECMD进行解码以生成表设置信号TSC。表设置信号TSC可以被激活以将用于神经网络的激活函数以查找表形式储存到第一表储存电路(图3的133)中。包括在用于激活表设置信号TSC的外部命令ECMD中的比特位数可以根据实施例而被设置为不同。另外,用于激活表设置信号TSC的外部命令ECMD的逻辑电平组合可以根据实施例而被设置为不同。查找表具有包含关于输入值和与该输入值相对应的输出值的信息的表格形式。当利用查找表时,可以直接打印与输入值相对应的输出值,而无需进行任何计算,从而提高了计算速度。
命令解码器101可以对外部命令ECMD进行解码以生成输入选择信号ISEL和表输入信号TIN。输入选择信号ISEL和表输入信号TIN可以被生成为以查找表形式将激活函数储存到第一表储存电路(图3的133)包括的第一可变锁存器至第N可变锁存器(图4的149_1至149_N)中。表输入信号TIN可以被储存在第一可变锁存器至第N可变锁存器(图4的149_1至149_N)之中的由输入选择信号ISEL选择的一个可变锁存器中用于设置表输入信号TIN的逻辑电平组合的外部命令ECMD的逻辑电平组合可以基于实施例而被设置为不同。用于设置输入选择信号ISEL的逻辑电平组合的外部命令ECMD的逻辑电平组合可以基于实施例而被设置为不同。
模式寄存器103可以通过模式寄存器设置来储存函数选择信号FS。模式寄存器103可以通过模式寄存器读取来输出函数选择信号FS。模式寄存器设置和模式寄存器读取是针对模式寄存器103的通用操作,因此省略具体描述。模式寄存器103可以将函数选择信号FS施加到AF电路113。函数选择信号FS可以被生成为选择用于神经网络的各种激活函数之一。用于神经网络的各种激活函数可以包括但不限于,Sigmoid(即,Sigmoid函数)、Tanh(即,双曲正切激活函数)、ReLU(即,校正的线性单元函数)、泄漏ReLU(即,泄漏校正的线性单元函数)、Maxout(即,最大输出激活函数)和基于外部命令ECMD输入的激活函数。在函数选择信号FS中包括的比特位数可以根据实施例而被设置为不同。模式寄存器103可以位于计算设备13的外部,例如,位于主机或存储器控制器上。
数据输入/输出电路105可以从计算设备13的外部侧接收外部数据DA,并且通过数据线107将外部数据DA发送到数据储存电路109和MAC电路111中的至少一个。数据输入/输出电路105可以通过数据线107将来自数据储存电路109、MAC电路111和AF电路113中的至少一个的数据输出为外部数据DA。
在写入操作中,数据储存电路109可以将通过数据线107接收从数据输入/输出电路105接收的外部数据DA进行内部储存。在读取操作中,数据储存电路109可以通过数据线107将内部储存的数据发送到数据输入/输出电路105,并且将其输出为外部数据DA。
MAC电路111可以接收向量数据VD和权重数据WD。MAC电路111可以从数据输入/输出电路105或数据储存电路109接收向量数据VD。MAC电路111可以从数据输入/输出电路105或数据储存电路109接收权重数据WD。MAC电路111可以对向量数据VD和权重数据WD执行MAC计算操作,并且基于MAC计算操作的结果来生成输入分配信号IDST。
MAC计算操作可以包括针对向量数据VD和权重数据WD的乘法运算和累加运算。当向量数据VD和权重数据WD以矩阵格式实现时,MAC计算操作可以包括用于包含在实现了向量数据VD的矩阵中的元素和包含在实现了权重数据WD的矩阵中的元素的多个乘法运算和多个累加运算。在神经网络中,MAC计算操作被执行以将包含在输入层中的特征分类为包含在输出层中的结果值。向量数据VD可以包含关于在输入层中包含的特征的信息。权重数据WD可以包含关于对将输入层的特征分类为输出层中包含的结果有影响的信息。当在感知器中应用多层时,MAC电路111可以从AF电路113接收输出分配信号ODST作为向量数据VD。
AF电路113可以基于表设置信号TSC、输入选择信号ISEL和表输入信号TIN,以查询表形式将用于神经网络的激活函数储存在第一表储存电路(图3的133)中。储存在AF电路113中的查找表包括关于输入分配信号IDST与输出分配信号ODST之间的关系的信息。输出分配信号ODST可以被定义为在将输入分配信号IDST应用到激活函数时得出的值。当表设置信号TSC被激活时,AF电路113可以将表输入信号TIN储存到在第一可变锁存器至第N可变锁存器(图4的149_1至149_N)之中的由输入选择信号ISEL选择的一个可变锁存器中。用于神经网络的各种激活函数(例如,sigmoid、Tanh、ReLU、泄漏ReLU和Maxout)可以被硬接线到AF电路113中。被硬接线在AF电路113中的激活函数的数量可以根据实施例而被设置为不同。
AF电路113可以基于函数选择信号FS来选择各种激活函数中的一个。AF电路113可以基于输入分配信号IDST来生成由函数选择信号FS所选择的激活函数提供的结果值。AF电路113可以从应用了由函数选择信号FS选择的激活函数的查找表中提取与输入分配信号IDST相对应的结果值,从而将结果值输出为输出分配信号ODST。将参照图3至图7来描述AF电路113的配置和操作。
参考图2,MAC电路111可以包括MAC运算器121和输入分配信号生成电路123。MAC运算器121可以接收向量数据VD和权重数据WD,并且可以执行包括乘法运算和累加运算的MAC计算操作,以生成计算结果信号MOUT。输入分配信号生成电路123可以仅提取计算结果信号MOUT的比特位之中的一些比特位,以生成输入分配信号IDST。例如,当计算结果信号MOUT包含与整数相对应的比特位和与小数部分(decimal part)相对应的比特位时,输入分配信号IDSR可以被选择作为在计算结果信号MOUT中包含的比特位之中的与整数相对应的比特位。计算结果信号MOUT的比特位数可以根据实施例而被设置为不同。另外,输入分配信号IDST的比特位数也可以根据实施例而被设置为不同。输入分配信号IDST的比特位数可以被设置为少于计算结果信号MOUT的比特位数。
参考图3,AF电路113可以包括输入解码器131、第一表储存电路133、第二表储存电路134、第三表储存电路135、第四表储存电路137和输出分配信号选择电路139。
输入解码器131可以基于表设置信号TSC和输入选择信号ISEL来生成解码的输入信号IDEC。当表设置信号TSC被激活时,输入解码器131可以对输入选择信号ISEL进行解码以生成解码的输入信号IDEC。
第一表储存电路133可以基于解码的输入信号IDEC和输入分配信号IDST来储存表输入信号TIN并且可以输出第一表输出信号TOUT1。第一表储存电路133可以基于解码的输入信号IDEC而利用查找表形式将表输入信号TIN储存为第一激活函数。第一表储存电路133可以基于输入分配信号IDST而将第一激活函数的结果值输出为第一表输出信号TOUT1。将参照图4至图6来描述第一表储存电路133的配置和操作。
第二激活函数可以硬接线到第二表储存电路134中。第二表储存电路134可以包括以具有第二激活函数的硬件实现的逻辑电路。第二激活函数可以被设置为sigmoid、Tanh、ReLU、泄漏ReLU和Maxout中的一种。第二表储存电路134可以基于输入分配信号IDST来将以查找表形式储存的第二激活函数的结果值输出作为第二表输出信号TOUT2。将参照图7来描述第二表储存电路134的配置和操作。
第三激活函数可以硬接线到第三表储存电路135中。第三表储存电路135可以包括以具有第三激活函数的硬件实现的逻辑电路。第三激活函数可以被设置为sigmoid、Tanh、ReLU、泄漏ReLU和Maxout中的一种。第三激活函数可以被设置为不同于第二激活函数。第三表储存电路135可以基于输入分配信号IDST来将以查找表形式储存的第三激活函数的结果值输出作为第三表输出信号TOUT3。
第四激活函数可以硬接线到第四表储存电路137中。第四表储存电路137可以包括以具有第四激活函数的硬件实现的逻辑电路。第四激活函数可以被设置为sigmoid、Tanh、ReLU、泄漏ReLU和Maxout中的一种。第四激活函数可以被设置为不同于第二激活函数和第三激活函数。第四表储存电路137可以基于输入分配信号IDST来将以查找表形式储存的第四激活函数的结果值输出作为第四表输出信号TOUT4。
输出分配信号选择电路139可以基于函数选择信号FS而从第一表输出信号TOUT1、第二表输出信号TOUT2、第三表输出信号TOUT3和第四表输出信号TOUT4生成输出分配信号ODST。当函数选择信号FS具有第一逻辑电平组合时,输出分配信号选择电路139可以输出第一表输出信号TOUT1作为输出分配信号ODST。当函数选择信号FS具有第二逻辑电平组合时,输出分配信号选择电路139可以输出第二表输出信号TOUT2作为输出分配信号ODST。当函数选择信号FS具有第三逻辑电平组合时,输出分配信号选择电路139可以输出第三表输出信号TOUT3作为输出分配信号ODST。当函数选择信号FS具有第四逻辑电平组合时,输出分配信号选择电路139可以输出第四表输出信号TOUT4作为输出分配信号ODST。
参考图4,第一表储存电路133可以包括解码信号输入电路141、可变锁存器电路143和表输出电路145。
解码信号输入电路141可以包括反相器147_1至147_N和传输门148_1至148_N。反相器147_1可以反相缓冲解码的输入信号IDEC<1>的第一比特位信号,以输出解码的输入信号IDEC<1>的第一比特位信号的反相缓冲信号。反相器147_2可以反相缓冲解码的输入信号IDEC<2>的第二比特位信号,以输出解码的输入信号IDEC<2>的第二比特位信号的反相缓冲信号。反相器147_N可以反相缓冲解码的输入信号IDEC<N>的第N比特位信号,以输出解码的输入信号IDEC<N>的第N比特位信号的反相缓冲信号。当解码的输入信号IDEC<1>的第一比特位信号具有逻辑“高”电平时,传输门148_1可以被导通以将表输入信号TIN发送到第一可变锁存器149_1。当解码的输入信号IDEC<2>的第二比特位信号具有逻辑“高”电平时,传输门148_2可以被导通以将表输入信号TIN发送到第二可变锁存器149_2。当解码的输入信号IDEC<N>的第N比特位信号具有逻辑“高”电平时,传输门148_N可以被导通以将表输入信号TIN发送到第N可变锁存器149_N。
解码信号输入电路141可以基于解码的输入信号IDEC来将表输入信号TIN发送到可变锁存器电路143中包括的第一可变锁存器149_1至第N可变锁存器149_N。解码信号输入电路141可以通过由解码的输入信号IDEC选择的路径来接收表输入信号TIN,以将表输入信号TIN发送到可变锁存器电路143中包括的第一可变锁存器149_1至第N可变锁存器149_N。
可变锁存器电路143可以包括第一可变锁存器149_1至第N可变锁存器149_N。第一可变锁存器149_1可以通过在解码的输入信号IDEC的第一比特位信号IDEC<1>具有逻辑“高”电平时被导通的传输门148_1来接收并储存表输入信号TIN,并且可以输出所储存的表输入信号TIN作为第一可变锁存器信号SLAT1。第二可变锁存器149_2可以通过在解码的输入信号IDEC的第二比特位信号IDEC<2>具有逻辑“高”电平时被导通的传输门148_2来接收并储存表输入信号TIN,并且可以输出所储存的表输入信号TIN作为第二可变锁存器信号SLAT2。第N可变锁存器149_N可以通过在解码的输入信号IDEC的第N比特位信号IDEC<N>具有逻辑“高”电平时被导通的传输门148_N来接收并储存表输入信号TIN,并且可以输出所储存的表输入信号TIN作为第N可变锁存器信号SLATN。
表输出电路145可以基于输入分配信号IDST来选择第一可变锁存器信号SLAT1至第N可变锁存器信号SLATN中的一个作为激活函数的结果值,从而输出选中的可变锁存器信号作为第一表输出信号TOUT1。表输出电路145可以被实现为基于输入分配信号IDST的逻辑电平组合或基于输入分配信号IDST的解码信号来选择第一可变锁存器信号SLAT1至第N可变锁存器信号SLATN中的一个作为第一表输出信号TOUT1。将参照图5和图6来描述表输出电路145的配置和操作。
参考图5,与表输出电路145的示例相对应的表输出电路145a可以包括反相器151_1、151_2、…和151_N以及传输门153_1、153_2、…和153_N。反相器151_1可以反相缓冲输入分配信号IDST<1>的第一比特位信号,以输出输入分配信号IDST<1>的第一比特位信号的反相缓冲信号。反相器151_2可以反相缓冲输入分配信号IDST<2>的第二比特位信号,以输出输入分配信号IDST<2>的第二比特位信号的反相缓冲信号。反相器151_N可以反相缓冲输入分配信号IDST<N>的第N比特位信号,以输出输入分配信号IDST<N>的第N比特位信号的反相缓冲信号。当输入分配信号IDST<1>的第一比特位信号具有逻辑“高”电平时,传输门153_1可以被导通以输出第一可变锁存器信号SLAT1作为第一表输出信号TOUT1。当输入分配信号IDST<2>的第二比特位信号具有逻辑“高”电平时,传输门153_2可以被导通以输出第二可变锁存器信号SLAT2作为第一表输出信号TOUT1。当输入分配信号IDST<N>的第N比特位信号具有逻辑“高”电平时,传输门153_N可以被导通以输出第N可变锁存器信号SLATN作为第一表输出信号TOUT1。
参考图6,与表输出电路145的另一示例相对应的表输出电路145b可以包括输出选择解码器155和解码信号输出电路157。输出选择解码器155可以对输入分配信号IDST进行解码,以生成解码的选择信号DSEL。解码信号输出电路157可以包括反相器158_1、158_2、…和158_N以及传输门159_1、159_2、…和159_N。反相器158_1可以反相缓冲解码的选择信号DSEL<1>的第一比特位信号,以输出解码的选择信号DSEL<1>的第一比特位信号的反相缓冲信号。反相器158_2可以反相缓冲解码的选择信号DSEL<2>的第二比特位信号,以输出解码的选择信号DSEL<2>的第二比特位信号的反相缓冲信号。反相器158_N可以反相缓冲解码的选择信号DSEL<N>的第N比特位信号,以输出解码的选择信号DSEL<N>的第N比特位信号的反缓冲信号。当解码的选择信号DSEL<1>的第一比特位信号具有逻辑“高”电平时,传输门159_1可以被导通以输出第一可变锁存器信号SLAT1作为第一表输出信号TOUT1。当解码的选择信号DSEL<2>的第二比特位信号具有逻辑“高”电平时,传输门159_2可以被导通以输出第二可变锁存器信号SLAT2作为第一表输出信号TOUT1。当解码的选择信号DSEL<N>的第N比特位信号具有逻辑“高”电平时,传输门159_N可以被导通以输出第N可变锁存器信号SLATN作为第一表输出信号TOUT1。
参考图7,第二表储存电路134可以包括固定锁存器电路161和固定表输出电路163。固定锁存器电路161可以包括第一固定锁存器161_1至第N固定锁存器161_N。第一固定锁存器信号FLAT1可以作为硬件硬接线在第一固定锁存器161_1中。第二固定锁存器信号FLAT2可以作为硬件硬接线在第二固定锁存器161_2中。第N固定锁存器信号FLATN可以作为硬件硬接线在第N固定锁存器161_N中。储存在第一固定锁存器161_1至第N固定锁存器161_N中的第一固定锁存器信号FLAT1至第N固定锁存器信号FLATN的每个可以是用于以查找表形式储存sigmoid、Tanh、ReLU、泄漏ReLU和Maxout中的一个的结果值。输入分配信号IDST的逻辑电平组合可以被设置为分别对应于第一固定锁存器信号FLAT1至第N固定锁存器信号FLATN。固定表输出电路163可以基于输入分配信号IDST来选择第一固定锁存器信号FLAT1至第N固定锁存器信号FLATN中的一个作为激活函数的结果值,从而输出选中的可变锁存器信号作为第二表输出信号TOUT2。图3中所示的第三表储存电路25和第四表储存电路26中的每个可以被实现为具有与图7中所示的第二表储存电路134相同的配置。
具有前述配置的计算设备100可以接收关于用于神经网络的激活函数的信息作为命令和地址,以采用查找表形式储存该信息。因此,可以将设置为彼此不同的各种激活函数应用于神经网络,而无需进行任何设计更改。
参考图8,根据另一实施例的计算设备100a可以包括外部数据解码器171和AF电路173。
外部数据解码器171可以接收外部数据DA以设置和输出表设置信号TSC、输入选择信号ISEL、表输入信号TIN和函数选择信号FS。外部数据解码器171可以从被顺序输入到外部数据解码器171的外部数据DA生成表设置信号TSC、输入选择信号ISEL、表输入信号TIN和函数选择信号FS。
AF电路173可以基于表设置信号TSC、输入选择信号ISEL和表输入信号TIN,以查找表形式储存用于神经网络的激活函数。各种激活函数可以硬接线在AF电路173中。AF电路173可以输出激活函数的结果值作为输出分配信号ODST,所述激活函数的结果值是基于输入分配信号IDST而由函数选择信号FS选择的。AF电路173的配置和操作可以与图1中所示的AF电路113的配置和操作相同。因此,在下文中将省略对AF电路173的描述。
具有前述配置的计算设备100a可以接收关于用于神经网络的激活函数的信息作为数据,以采用查找表形式储存该信息。因此,可以将设置为彼此不同的各种激活函数应用于神经网络,而无需进行任何设计更改。
参考图9,根据又一实施例的计算设备100b可以包括模式寄存器181和AF电路183。
模式寄存器181可通过模式寄存器设置来储存表设置信号TSC、输入选择信号ISEL、表输入信号TIN和函数选择信号FS。模式寄存器181可以通过模式寄存器读取来输出表设置信号TSC、输入选择信号ISEL、表输入信号TIN和函数选择信号FS。
AF电路183可以基于表设置信号TSC、输入选择信号ISEL和表输入信号TIN,以查找表形式储存用于神经网络的激活函数。各种激活函数可以硬接线在AF电路183中。AF电路183可以输出激活函数的结果值作为输出分配信号ODST,所述激活函数的结果值是基于输入分配信号IDST而由函数选择信号FS选择的。AF电路183的配置和操作可以与图1中所示的AF电路113的配置和操作相同。因此,在下文中将省略对AF电路183的描述。
具有前述配置的计算设备100b可以基于储存在模式寄存器181中的信息,以查找表形式储存关于用于神经网络的激活函数的信息。因此,可以将设置为彼此不同的各种激活函数应用于神经网络,而无需进行任何设计更改。
图1中所示的计算设备100、图8中所示的计算设备100a、图9中所示的计算设备100b可以被包括在通过主机和存储器控制器接收外部命令的存储器模块中。存储器模块可以实现为单列直插式存储器模块(SIMM)、双列直插式存储器模块(DIMM)和高带宽存储器(HBM)。
如图10中所示,计算设备200可以包括:数据输入/输出电路201、数据线203、数据储存电路205、MAC电路207和AF电路209。
数据输入/输出电路201可以从计算设备13的外部侧接收外部数据DA,并且将外部数据DA经由数据线203发送到数据储存电路205和MAC电路207中的至少一个。数据输入/输出电路201可以将数据经由数据线203从数据储存电路205、MAC电路207和AF电路209中的至少一个输出为外部数据DA。
在写入操作中,数据储存电路205可以将通过数据线203接收从数据输入/输出电路201接收到的外部数据DA进行内部储存。在读取操作中,数据储存电路205可以将内部储存的数据经由数据线203发送到数据输入/输出电路201,并且将其输出为外部数据DA。
MAC电路207可以接收向量数据VD和权重数据WD。MAC电路207可以从数据输入/输出电路201或数据储存电路205接收向量数据VD。MAC电路207可以从数据输入/输出电路201或数据储存电路205接收权重数据WD。MAC电路207可以对向量数据VD和权重数据WD执行MAC计算操作,并且基于MAC计算操作的结果来生成输入分配信号IDST和补偿信号COR。当在感知器中应用多层时,MAC电路207可以从AF电路209接收经补偿的分配信号CODST作为向量数据VD。
AF电路209可以采用查找表形式储存用于神经网络的激活函数。储存在AF电路209中的查找表包括关于输入分配信号IDST与输出分配信号ODST之间的关系的信息。输出分配信号ODST可以被定义为在将输入分配信号IDST应用到激活函数时得出的值。用于神经网络的各种激活函数(例如,sigmoid、Tanh,ReLU、泄漏ReLU和Maxout)可以被硬接线到AF电路209中。被硬接线在AF电路209中的激活函数的数量可以根据实施例而被设置为不同。
AF电路209可以基于输入分配信号IDST和补偿信号COR来生成经补偿的分配信号CODST。AF电路209可以通过利用内部储存的激活函数而基于输入分配信号IDST来生成第一输出分配信号ODST1和第二输出分配信号ODST2。AF电路209可以通过基于补偿信号COR、第一输出分配信号ODST1和第二输出分配信号ODST2而补偿第一输出分配信号ODST1来生成经补偿的分配信号CODST。
参考图11,MAC电路207可以包括MAC运算器211和输入分配信号生成电路213。MAC运算器211可以接收向量数据VD和权重数据WD,并且可以执行包括乘法运算和累加运算的MAC计算操作,以生成计算结果信号MOUT。输入分配信号生成电路213可以仅提取计算结果信号MOUT的比特位中的一些比特位,以生成输入分配信号IDST和补偿信号COR。例如,当计算结果信号MOUT包含与整数相对应的比特位和与小数部分相对应的比特位时,输入分配信号IDST可以被选择作为包括在计算结果信号MOUT的比特位之中的与整数相对应的比特位,并且补偿信号COR可以被选择作为包含在计算结果信号MOUT的比特位之中的与整数相对应的比特位。计算结果信号MOUT的比特位数可以根据实施例而被设置为不同。另外,输入分配信号IDST的比特位数也可以根据实施例而被设置为不同。输入分配信号IDST的比特位数可以被设置为少于计算结果信号MOUT的比特位数。
参考图12,AF电路209可以包括输出分配信号生成电路221和输出分配信号补偿电路223。
输出分配信号生成电路221可以基于输入分配信号IDST来生成第一输出分配信号ODST1和第二输出分配信号ODST2。输出分配信号生成电路221可以采用查找表形式来储存激活函数。输出分配信号生成电路221可以将输入分配信号IDST应用到激活函数,以生成第一输出分配信号ODST1。输出分配信号生成电路221可以将通过将预定值加至输入分配信号IDST而获得的值应用于激活函数,以生成第二输出分配信号ODST2。
输出分配信号补偿电路223可以基于第一输出分配信号ODST1、第二输出分配信号ODST2和补偿信号COR来生成经补偿的分配信号CODST。输出分配信号补偿电路223可以通过将补偿信号COR的值与第一输出分配信号ODST1和第二输出分配信号ODST2之间的差值相乘来生成经补偿的分配信号CODST。由于输出分配信号补偿电路223基于补偿信号COR来补偿第一输出分配信号ODST1,以生成经补偿的分配信号CODST,因此可以提高激活函数的准确性。
如图13所示,输出分配信号生成电路221可以包括码锁存器电路231、加法器233、第一选择/输出电路235和第二选择/输出电路237。
码锁存器电路231可以包括第一码锁存器至第十五码锁存器231(1:15),并且可以采用查找表形式来储存激活函数。第一码锁存器231(1)可以锁存并输出第一锁存码LC1、第二码锁存器231(2)可以锁存并输出第二锁存码LC2,依此类推。
加法器233可以将预定值加至输入分配信号IDST,以生成经相加的输入分配信号IDSTA。加法器233可以将二进制数“1”加至输入分配信号IDST,以生成经相加的输入分配信号IDSTA。例如,当将输入分配信号IDST<4:1>设置为二进制码“1001”时,经相加的输入分配信号IDSTA<4:1>可以被生成为具有二进制码“1010”。在一些实施例中,加至输入分配信号IDST的预定值可以被设置为二进制数“10”。
第一选择/输出电路235可以基于输入分配信号IDST来选择并输出第一锁存码LC1至第十五锁存码LC15中的一个作为第一输出分配信号ODST1。第一选择/输出电路235可以基于激活函数而在第一锁存码LC1至第十五锁存码LC15之中选择并输出与输入分配信号IDST的逻辑电平组合相对应的码作为第一输出分配信号ODST1。
第二选择/输出电路237可以基于经相加的输入分配信号IDSTA来选择并输出第一锁存码LC1至第十五锁存码LC15中的一个作为第二输出分配信号ODST2。第二选择/输出电路237可以基于激活函数而在第一锁存码LC1至第十五锁存码LC15之中选择并输出与经相加的输入分配信号IDSTA的逻辑电平组合相对应的码作为第二输出分配信号ODST2。
参考图14,在查找表中列出了基于激活函数而通过输入分配信号IDST<4:1>的逻辑电平组合选择的输出选择信号ODST的设定值。当输入分配信号IDST<4:1>的逻辑电平组合具有二进制数“0001”(对应于十进制数“1”)时,输出选择信号ODST的设定值可以为“Y1”,而当输入分配信号IDST<4:1>的逻辑电平组合具有二进制数“0010”(对应于十进制数“2”)时,输出选择信号ODST的设定值可以为“Y2”。另外,当输入分配信号IDST<4:1>的逻辑电平组合具有二进制数“1001”(对应于十进制数“9”)时,输出选择信号ODST的设定值可以为“Y9”,并且当输入分配信号IDST<4:1>的逻辑电平组合具有二进制数“1010”(对应于十进制数“10”)时,输出选择信号ODST的设定值可以为“Y10”。此外,当输入分配信号IDST<4:1>的逻辑电平组合具有二进制数“1111”(对应于十进制数“15”)时,输出选择信号ODST的设定值可以为“Y15”。值“Y1”可以是第一锁存码LC1的设定值,并且值“Y2”可以是第二锁存码LC2的设定值。另外,值“Y9”可以是第九锁存码LC9的设定值,并且值“Y10”可以是第十锁存码LC10的设定值。此外,值“Y15”可以是第十五锁存码LC15的设定值。当输入分配信号IDST<4:1>的逻辑电平组合具有二进制数“1001”(对应于十进制数“9”)时,从加法器233输出的经相加的输入分配信号IDSTA<4:1>可以被设置为二进制数“1010”。在这种情况下,基于输入分配信号IDST<4:1>而从第一选择/输出电路235输出的第一输出分配信号ODST1可以是“Y9”,并且基于经相加的输入分配信号IDSTA<4:1>而从第二选择/输出电路237输出的第二输出分配信号ODST2可以是“Y10”。在本实施例中,包括4比特位的输入分配信号IDST仅是示例,并且不限于此。由输出选择信号ODST和锁存码LC1-LC15设置的设定值Y1-Y15的组合可以根据包括在输入分配信号IDST中的比特位数而变化。
如图15所示,输出分配信号补偿电路223可以包括减法器241、相加码生成电路243和补偿分配信号生成电路245。
减法器241可以从第二输出分配信号ODST2减去第一输出分配信号ODST1,以生成相减码SUB。相减码SUB可以被生成为具有与第一输出分配信号ODST1和第二输出分配信号ODST2之间的差相对应的逻辑电平组合。例如,当第一输出分配信号ODST1与第二输出分配信号ODST2之间的差是十进制数“4”时,相减码SUB可以被生成为具有与二进制数“100”相对应的逻辑电平组合。
相加码生成电路243可以基于相减码SUB和补偿信号COR来生成相加码ADD_C。相加码生成电路243可以将相减码SUB乘以补偿值,以生成相减/补偿值,所述补偿值是由补偿信号COR设置的。相加码生成电路243可以生成具有与由相减/补偿值选择的整数相对应的逻辑电平组合的相加码ADD_C。由补偿信号COR设置的补偿值可以将补偿信号COR的逻辑电平组合的总数量设置为其分母,并且可以将与补偿信号COR的逻辑电平组合相对应的值设置为其分子。相加码ADD_C可以被设置为具有与包括在相减/补偿值中的整数相对应的逻辑电平组合。例如,当相减/补偿值具有值“1.5”时,相加码ADD_C可以被设置为具有与整数“1”相对应的逻辑电平组合“01”。在一些实施例中,相加码ADD_C可以被设置为具有与通过将相减/补偿值的分数(不小于0.5)提高到一个单位而获得的整数相对应的逻辑电平组合。例如,当相减/补偿值具有值“1.5”时,相加码ADD_C可以被设置为具有与整数“2”相对应的逻辑值组合“10”。
补偿分配信号生成电路245可以将相加码ADD_C加至第一输出分配信号ODST1,以生成经补偿的分配信号CODST。例如,当第一输出分配信号ODST1具有逻辑电平组合“10”并且相加码ADD_C具有值“1”时,经补偿的分配信号CODST可以被设置为具有逻辑电平组合“11”。
图16是示出输出分配信号补偿电路223的操作的图。在图16的曲线图中,横坐标表示输入分配信号IDST和经相加的输入分配信号IDSTA的值,而纵坐标表示第一输出分配信号ODST1、第二输出分配信号ODST2和经补偿的分配信号CODST的值。在下文中,将结合输入分配信号IDST具有值“9”并且经相加的输入分配信号IDSTA具有值“10”的情况,参照图16来描述用于生成经补偿的分配信号CODST的操作。
在该实施例中,当输入分配信号IDST具有值“9”时,第一输出分配信号ODST1可以基于激活函数而被生成为具有值“10”,并且当经相加的输入分配信号IDSTA具有值“10”时,第二输出分配信号ODST2可以基于激活函数而被生成为具有值“12”。因此,相减码SUB可以被设置为“2”。当补偿信号COR具有值“11000”时,补偿值可以被设置为“24/32”。因此,因为相减码SUB具有值“2”,所以可以通过公式“2×24/32=48/32=1+16/32”来计算相减/补偿值。因为相加码ADD_C被设置为相减/补偿值的整数部分,所以相加码ADD_C可以具有值“1”。经补偿的分配信号CODST可以被设置为与通过将相加码ADD_C加到第一输出分配信号ODST1而获得的值相对应的值“11”。
如上所述,计算设备200可以通过将基于补偿信号COR生成的相加码ADD_C加至基于沿激活函数的输入分配信号IDST选择并输出的第一输出分配信号ODST1来生成经补偿的分配信号CODST。因此,可以提高激活函数的准确性。
如图17所示,根据又一实施例的计算设备300可以包括:命令/地址接收电路(CA_RX)301、命令解码器(COM_DEC)303、地址解码器(ADD_DEC)305、数据I/O电路(DA_I/O)307、数据I/O线309、数据储存电路(DATA_STG)311、MAC运算器(MAC_OP)313和AF电路315。命令/地址接收电路301可以从在计算设备300外部的外部设备接收命令/地址信号CA以执行各种内部操作。外部设备可以包括主机、控制器或测试装置。各种内部操作可以包括:计算激活操作、计算读取操作、MAC计算操作和激活操作。命令/地址信号CA可以包括命令和地址。命令/地址接收电路301可以从命令/地址信号CA提取命令,以输出经提取的命令作为内部命令ICMD。命令/地址接收电路301可以从命令/地址信号CA提取地址,以输出经提取的地址作为内部地址IADD。
命令解码器303可以从命令/地址接收电路301接收内部命令ICMD。命令解码器303可以对内部命令ICMD进行解码,以生成计算激活信号M_ACT、计算读取信号M_RD、计算控制信号M_EN和激活控制信号A_EN。计算激活信号M_ACT可以被激活为执行计算激活操作,以激活包括在数据储存电路311中的至少一个存储体。计算读取信号M_RD可以被激活为执行计算读取操作,以从包括在数据储存电路311的存储体之中的由计算激活操作激活的存储体输出向量数据VD和权重数据WD。计算控制信号M_EN可以被激活为对在计算读取操作期间从数据储存电路311输出的向量数据VD和权重数据WD执行MAC计算操作。激活控制信号A_EN可以被激活为执行激活操作,将激活函数应用于由MAC计算操作生成的计算结果信号MOUT,以生成输出分配信号ODST。命令解码器303可以从命令/地址接收电路301接收内部命令ICMD,以顺序地激活计算激活信号M_ACT、计算读取信号M_RD、计算控制信号M_EN和激活控制信号A_EN。
地址解码器305可以对内部地址IADD进行解码,以生成选择地址SADD。选择地址SADD可以包括存储体选择信号、行地址和列地址,以激活包括在数据储存电路311中的至少一个存储体。在一些实施例中,可以通过选择地址SADD来选择并激活包括在数据储存电路311中的一个存储体。可选地,在一些其他实施例中,可以通过选择地址SADD来选择并激活包括在数据储存电路311的存储体之中的两个或更多个存储体。
数据I/O电路307可以从计算设备300的外部侧接收外部数据DA,并且可以将外部数据DA经由数据I/O线309发送到数据储存电路311、MAC运算器313和AF电路315中的至少一个。数据I/O电路307可以输出经由数据I/O线309从数据储存电路311、MAC运算器313和AF电路315中的至少一个输出的数据作为外部数据DA。数据I/O电路307可以包括数据I/O缓冲器、数据输入驱动器、数据输出驱动器和解串行器,以接收或输出外部数据DA。
数据储存电路311可以包括多个存储体(未示出)。尽管结合数据储存电路311利用存储体作为存储器储存区的情况描述了本实施例,但是本公开不限于此。例如,在一些其他实施例中,数据储存电路311可以被设计为包括除了存储体之外的各种存储器储存区。包括在数据储存电路311中的每个存储体可以基于选择地址SADD而被独立地激活,以输出储存在其中的数据或者接收和储存该数据。可以通过利用交错设计方案来操作包括在数据储存电路311中的每个存储体。包括在数据储存电路311中的存储体的数量可以基于实施例而被设置为不同。包括在数据储存电路311中的每个存储体可以包括多个存储单元阵列,并且每个存储单元阵列可以包括多个存储单元,每个存储单元耦接到多个字线中的一个和多个位线中的一个。可以通过包括在选择地址SADD中的存储体选择信号来选择至少一个存储体。可以通过包括在选择地址SADD中的行地址来选择多个字线中的一个,并且可以通过包括在选择地址SADD中的列地址来选择位线中的至少一个。
数据储存电路311可以基于计算激活信号M_ACT和选择地址SADD来执行计算激活操作,以激活包括在数据储存电路311中的至少一个存储体。数据储存电路311可以基于计算读取信号M_RD和选择地址SADD来执行计算读取操作,以从激活的存储体中输出向量数据VD和/或权重数据WD。
MAC运算器313可以在计算读取操作期间从数据储存电路311接收向量数据VD和/或权重数据WD。MAC运算器313可以从数据I/O电路307接收向量数据VD和/或权重数据WD。MAC运算器313可以基于计算控制信号M_EN而对向量数据VD和权重数据WD执行MAC计算操作,以生成计算结果信号MOUT。MAC运算器313可以在MAC计算操作期间对向量数据VD和权重数据WD执行乘法运算和累加运算,以生成计算结果信号MOUT。当在感知器中应用多层时,MAC运算器313可以接收从AF电路315输出的输出分配信号ODST作为向量数据VD。
AF电路315可以在MAC计算操作期间从MAC运算器313接收计算结果信号MOUT。AF电路315可以基于激活控制信号A_EN来执行激活操作,以从计算结果信号MOUT生成输出分配信号ODST。AF电路315可以采用查找表形式储存在激活操作期间使用的激活函数。当激活操作被执行时,AF电路315可以基于应用激活函数的查找表来选择并输出与计算结果信号MOUT相对应的输出分配信号ODST。在本实施例中,储存在AF电路315中的用于激活函数的查找表可以被实现为仅包括关于输出分配信号ODST的信息,所述输出分配信号ODST对应于包括在计算结果信号MOUT的比特位之中的第一比特位组。因此,可以提高激活操作的速度并减少用于储存激活函数所需的储存空间。AF电路315可以利用包括在计算结果信号MOUT的比特位之中的第二比特位组来补偿提取输出分配信号ODST的操作,所述输出分配信号ODST对应于包括在计算结果信号MOUT的比特位之中的第一比特位组。该补偿可以提高激活操作的准确性。在一些其他实施例中,AF电路315可以利用包括在计算结果信号MOUT的比特位之中的第一比特位组和第二比特位组来补偿提取输出分配信号ODST的操作,从而可以提高激活操作的准确性,所述输出分配信号ODST对应于包括在计算结果信号MOUT的比特位之中的第一比特位组。AF电路315可以将输出分配信号ODST输出到数据I/O线309。被加载在数据I/O线309上的输出分配信号ODST可以通过数据I/O电路307被输出为外部数据DA。在一些其他实施例中,输出分配信号ODST可以被发送到数据储存电路311并储存在数据储存电路311中,或者可以被发送到MAC运算器313。
图18示出了由MAC运算器313执行的MAC计算操作的示例。由MAC运算器313执行的MAC计算操作可以包括乘法运算和累加运算(例如,累计相加运算),并且可以通过利用矩阵乘法计算来执行。如图18所示,可以通过权重数据WD和向量数据VD的矩阵乘法计算来执行MAC计算操作。权重数据WD可以被实现为具有包括权重元素W0.0至W7.7的“M×N”矩阵形式。在包括权重元素W0.0至W7.7的“M×N”矩阵形式中,“M”表示“M×N”矩阵形式中的行数,“N”表示“M×N”矩阵形式中的列数。向量数据VD可以被实现为具有包括特征元素V0.0至V7.0的“N×1”矩阵形式。在包括特征元素V0.0至V7.0的“N×1”矩阵形式中,“N”表示“N×1”矩阵形式中的行数。权重元素W0.0至W7.7和/或特征元素V0.0至V7.0可以从包括在数据储存电路311中的至少一个存储体(未示出)中输出。权重元素W0.0至W7.7和/或特征元素V0.0至V7.0可以经由数据I/O电路307输入。
图19示出了应用于AF电路315的各种激活函数。如图19所示,可以将各种激活函数,例如Sigmoid(即,Sigmoid函数)、Tanh(即,双曲正切激活函数),ReLU(即,校正的线性单元函数)、泄漏ReLU(即,泄漏校正的线性单元函数)和Maxout(即,最大输出激活函数)应用于AF电路315。可以通过利用非线性函数来实现sigmoid激活函数和双曲正切激活函数中的每个,校正的线性单元函数、泄漏校正的线性单元函数和最大输出激活函数中的每个可以被实现为包括按区域具有不同斜率的线性函数。
图20是示出图19中所示的双曲正切(Tanh)激活函数的查找表的示例的表。参考图20,列出了基于输入到双曲正切(Tanh)激活函数的计算结果信号MOUT选择的输出分配信号ODST的各种值。例如,当计算结果信号MOUT的值在“0.390625”到“0.453125”的范围内时,可以输出具有值“0.4049”的输出分配信号ODST(参考图20所示的查找表的第一行),并且当计算结果信号MOUT的值在“0.453125”至“0.515625”的范围内时,可以输出具有值“0.4558”的输出分配信号ODST(参考图20所示的查找表的第二行)。类似地,当计算结果信号MOUT的值等于或大于“2.90625”时,可以输出具有值“1”的输出分配信号ODST(参考图20所示的查找表的第十五行)。
图21是示出应用于AF电路315的用于激活函数的查找表的示例的表。参考图21,基于计算结果信号MOUT的各种设定值(8比特位二进制流数据),列出了与激活函数的应用结果相对应的输出分配信号ODST的各种设定值。例如,当具有与十进制数“0”相对应的8比特位二进制流数据“00000000”的计算结果信号MOUT被应用到激活函数时,第一设定值ODST0可以被选择作为输出分配信号ODST,并且当具有与十进制数“1”相对应的8比特位二进制流数据“00000001”的计算结果信号MOUT被应用到激活函数时,第二设定值ODST1可以被选择作为输出分配信号ODST。类似地,当具有与十进制数“256”相对应的8比特位二进制流数据“11111111”的计算结果信号MOUT被应用到激活函数时,第256设定值ODST255可以被选择作为输出分配信号ODST。尽管结合在具有8比特位二进制流数据的计算结果信号MOUT被应用于激活函数时设置的查找表来说明图21的示例,但是本公开不限于图21的示例。即,计算结果信号MOUT可以基于实施例而被设置为具有各种类型的数据中的任意一种。
图22是示出计算设备300中包括的AF电路315的配置的框图。如图22所示,AF电路315可以从计算结果信号MOUT提取第一比特位组,并且可以选择并输出与第一比特位组相对应的输出分配信号ODST的设定值。由于AF电路315仅需要用于激活函数的查找表,该查找表能够选择与包括在计算结果信号MOUT中的第一比特位组相对应的输出分配信号ODST,因此可以提高激活操作的速度,并减少储存激活函数所需的储存空间。另外,AF电路315可以从计算结果信号MOUT中提取第一比特位组和第二比特位组,并且可以补偿利用计算结果信号MOUT的第二比特位组来选择与计算结果信号MOUT的第一比特位组相对应的输出分配信号ODST的操作,这提高了激活操作的准确性。可选地,AF电路315可以从计算结果信号MOUT中提取第一比特位组和第二比特位组,并且可以补偿利用计算结果信号MOUT的第一比特位组和第二位比特组来选择与计算结果信号MOUT的第一比特位组相对应的输出分配信号ODST的操作,这提高了激活操作的准确性。为了获得上述优点,AF电路315可以被设计为包括比特位组选择器321、校正码生成器323、输入分配信号生成器325和输出分配信号生成器327。尽管结合计算结果信号MOUT被设置为8比特位二进制流数据、第一比特位组被设置为4比特位二进制流数据以及第二比特位组被设置为2比特位二进制流数据的情况描述了以下实施例,但是本公开不限于以下实施例。即,包括在计算结果信号MOUT中的比特位数、包括在第一比特位组中的比特位数以及包括在第二比特位组中的比特位数可以基于实施例而被设置为不同。
比特位组选择器321可以从计算结果信号MOUT<8:1>中提取第一比特位组MSB<4:1>和第二比特位组SHB<2:1>。比特位组选择器321可以选择并输出与包括在计算结果信号MOUT<8:1>的比特位之中的最高有效位相对应的四个比特位作为第一比特位组MSB<4:1>。比特位组选择器321可以选择并输出与包括在计算结果信号MOUT<8:1>的比特位之中的第二最高有效位相对应的两个比特位作为第二比特位组SHB<2:1>。在本实施例中,尽管第一比特位组被选择为具有计算结果信号MOUT的最高有效位,并且第二比特位组被选择为具有计算结果信号MOUT的第二最高有效位,但是本公开不限于此。即,在一些实施例中,可以通过利用各种方法从包括在计算结果信号MOUT的比特位中选择第一比特位组和第二比特位组中的每个。例如,当计算结果信号MOUT包括与整数相对应的比特位和与小数相对应的比特位时,第一比特位组可以被选择为具有与整数相对应的比特位,并且第二比特位组可以被选择为具有与小数相对应的比特位。
在下文中,将参照图23来描述用于从计算结果信号MOUT<8:1>中提取第一比特位组MSB<4:1>和第二比特位组SHB<2:1>的操作。如图23所示,计算结果信号MOUT<8:1>的第八比特位至第五比特位MOUT<8:5>可以分别对应于十进制数“27”、“26”、“25”和“24”,以对应于包括在计算结果信号MOUT<8:1>的比特位之中的具有相对最大值的四个比特位。因此,计算结果信号MOUT<8:1>的第八比特位至第五比特位MOUT<8:5>可以被选择作为第一比特位组MSB<4:1>。另外,计算结果信号MOUT<8:1>的第四比特位和第三比特位MOUT<4:3>可以分别对应于十进制数“23”和“22”,以对应于包括在计算结果信号MOUT<8:1>的比特位之中的具有第二最大值的两个比特位。因此,计算结果信号MOUT<8:1>中的的第四比特位和第三比特位MOUT<4:3>可以被选择作为第二比特位组SHB<2:1>。尽管结合从计算结果信号MOUT<8:1>(其被设置为具有8比特位二进制流数据)中提取具有四比特位的第一比特位组MSB<4:1>和从计算结果信号MOUT<8:1>(其被设置为具有8比特位二进制流数据)中提取具有两比特位的第二比特位组SHB<2:1>的情况描述了本实施例,但是本公开不限制于本实施例。即,包括在计算结果信号MOUT中的比特位数可以根据实施例而被设置为不同;包括在第一比特位组中的比特位数可以根据实施例而被设置为不同;以及,包括在第二比特位组中的比特位数可以根据实施例而被设置为不同。
参考图24,列出了基于计算结果信号MOUT<8:1>而选择的、被设置为具有二进制流数据的第一比特位组MSB<4:1>和第二比特位组SHB<2:1>。例如,当计算结果信号MOUT<8:1>具有数据“00000000”时,第一比特位组MSB<4:1>可以被选择为具有数据“0000”,而第二比特位组SHB<2:1>可以被选择为具有数据“00”。此外,当计算结果信号MOUT<8:1>具有数据“00000100”时,第一比特位组MSB<4:1>可以被选择为具有数据“0000”,而第二比特位组SHB<2:1>可以被选择为具有数据“01”。类似地,当计算结果信号MOUT<8:1>具有数据“11110000”时,第一比特位组MSB<4:1>可以被选择为具有数据“1111”,而第二比特位组SHB<2:1>可以被选择为具有数据“00”。
参考图22,校正码生成器323可以从比特位组选择器321接收第二比特位组SHB<2:1>。校正码生成器323可以生成校正码COR以补偿来自第二比特位组SHB<2:1>的输入分配信号IDST<4:1>。校正码生成器323可以基于第二比特位组SHB<2:1>而将校正码COR驱动到电源电压VDD,以生成具有二进制数“1”的校正码COR,或者可以基于第二比特位组SHB<2:1>而将校正码COR驱动至接地电压VSS,以生成具有二进制数“0”的校正码COR。
再次参考图22,输入分配信号生成器325可以从比特位组选择器321接收第一比特位组MSB<4:1>,并且可以从校正码生成器323接收校正码COR。输入分配信号生成器325可以将校正码COR加至第一比特位组MSB<4:1>,以生成输入分配信号IDST<4:1>。当校正码COR被设置为具有二进制数“0”时,输入分配信号生成器325可以输出第一比特位组MSB<4:1>作为输入分配信号IDST<4:1>。当校正码COR被设置为具有二进制数“1”时,输入分配信号生成器325可以将二进制数“1”加至第一比特位组MSB<4:1>,以生成输入分配信号IDST<4:1>。
仍参考图22,输出分配信号生成器327可以从输入分配信号生成器325接收输入分配信号IDST<4:1>。输出分配信号生成器327可以包括具有关于激活函数的信息的查找表。输出分配信号生成器327可以基于查找表来选择并输出与输入分配信号IDST<4:1>的设定值相对应的输出分配信号ODST的设定值。包括在输出分配信号生成器327中的查找表可以包括关于输出分配信号ODST的设定值的信息,该输出分配信号ODST的设定值对应于激活函数相对于输入分配信号IDST<4:1>的设定值的应用结果。因此,与针对计算结果信号MOUT<8:1>的查找表(其被设置为具有8比特位二进制流数据)相比,包括在输出分配信号生成器327的查找表中的信息量可以大大减少。另外,输出分配信号生成器327可以选择与输入分配信号IDST<4:1>相对应的输出分配信号ODST。因此,与选择与计算结果信号MOUT<8:1>相对应的输出分配信号ODST的情况相比,可以相对更快地执行激活操作。输入分配信号IDST<4:1>可以由从第二比特位组SHB<2:1>生成的校正码COR来补偿,这提高了激活操作的准确性。
图25是示出校正码生成器323的配置的电路图,并且图26是示出校正码生成器323的操作的表。
如图25所示,校正码生成器323可以包括第一驱动选择信号生成电路331、第二驱动选择信号生成电路333和校正码输出电路335。第一驱动选择信号生成电路331可以执行反相操作、AND运算和OR运算。具体地,第一驱动选择信号生成电路331可以包括反相器331_1和331_2、与门331_3和331_4以及或门331_5。反相器331_1可以反相缓冲第二比特位组SHB<2:1>的第一比特位SHB<1>,以输出第二比特位组SHB<2:1>的第一比特位SHB<1>的反相缓冲信号。反相器331_2可以反相缓冲第二比特位组SHB<2:1>的第二比特位SHB<2>,以输出第二比特位组SHB<2:1>的第二比特位SHB<2>的反相缓冲信号。与门331_3可以对反相器331_1的输出信号和反相器331_2的输出信号执行逻辑与运算。与门331_4可以对第二比特位组SHB<2:1>的第一比特位SHB<1>和反相器331_2的输出信号执行逻辑与运算。或门331_5可以对与门331_3的输出信号和与门331_4的输出信号执行逻辑或运算,以生成第一驱动选择信号SEL1。第二驱动选择信号生成电路333可以包括与门333_1和333_2以及或门333_3。与门333_1可以对反相器331_1的输出信号和第二比特位组SHB<2:1>的第二比特位SHB<2>执行逻辑与运算。与门333_2可以对第二比特位组SHB<2:1>的第一比特位SHB<1>和第二比特位组SHB<2:1>的第二比特位SHB<2>执行逻辑与运算。或门331_5可以对与门333_1的输出信号和与门333_2的输出信号执行逻辑或运算,以生成第二驱动选择信号SEL2。校正码输出电路335可以包括反相器335_1和335_3以及传输门335_2和335_4。反相器335_1可以反相缓冲第一驱动选择信号SEL1,以输出第一驱动选择信号SEL1的反相缓冲信号。反相器335_3可以反相缓冲第二驱动选择信号SEL2,以输出第二驱动选择信号SEL2的反相缓冲信号。当第一驱动选择信号SEL1具有逻辑“高”电平时,传输门335_2可以被导通以将校正码COR驱动到与接地电压VSS相对应的逻辑“低”电平。当第二驱动选择信号SEL2具有逻辑“高”电平时,传输门335_4可以被导通以将校正码COR驱动到与电源电压VDD相对应的逻辑“高”电平。
如图26中所示,当第二比特位组SHB<2:1>被设置为具有二进制流数据“00”或“01”时,第一驱动选择信号SEL1可以被生成为具有逻辑“高(H)”电平,而第二驱动选择信号SEL2可以被生成为具有逻辑“低(L)”电平。在这种情况下,可以通过具有逻辑“高(H)”电平的第一驱动选择信号SEL1将校正码COR驱动到逻辑“低(L)”电平,从而将其设置为二进制数“0”。当第二比特位组SHB<2:1>被设置为具有二进制流数据“10”或“11”时,第一驱动选择信号SEL1可以被生成为具有逻辑“低(L)”电平,而第二驱动选择信号SEL2可以被生成为具有逻辑“高(H)”电平。在这种情况下,可以通过具有逻辑“高(H)”电平的第二驱动选择信号SEL2来将校正码COR驱动到逻辑“高(H)”电平,从而将其设置为二进制数“1”。
以下将参照图27至图30来描述包括参考图25和图26所述的校正码生成器323的AF电路315的操作。
参考图27和图28,列出了通过基于第一比特位组MSB<4:1>和第二比特位组SHB<2:1>而应用激活函数来选择的输出分配信号ODST的设定值。出于易于和便于解释的目的,可以假设激活函数是图28中所示的线性函数。因为在第一比特位组MSB<4:1>被设置为具有二进制流“0001”并且第二比特位组SHB<2:1>被设置为具有二进制流“00”的状态“x1”下,校正码COR被生成为具有值“0”,所以输入分配信号IDST<4:1>可以被生成为具有与第一比特位组MSB<4:1>的二进制流相同的二进制流“00001”。在这种情况下,与状态“x1”相对应的激活函数的函数值“f(x1)”可以被选择为具有与输入分配信号IDST<4:1>的设定值“0001”相对应的输出分配信号ODST的第十六设定值“ODST16”。因为在第一比特位组MSB<4:1>被设置为具有二进制流“0001”并且第二比特位组SHB<2:1>被设置为具有二进制流“01”的状态“x2”下,校正码COR被生成为具有值“0”,所以输入分配信号IDST<4:1>可以被生成为具有与第一比特位组MSB<4:1>的二进制流相同的二进制流“0001”。在这种情况下,与状态“x2”相对应的激活函数的函数值“f(x2)”可以被选择为具有与输入分配信号IDST<4:1>的设定值“0001”相对应的输出分配信号ODST的第十六设定值“ODST16”。因为在第一比特位组MSB<4:1>被设置为具有二进制流“0001”并且第二比特位组SHB<2:1>被设置为具有二进制流“10”的状态“x3”下,校正码COR被生成为具有值“1”,所以输入分配信号IDST<4:1>可以被生成为具有通过将值“1”加到第一比特位组MSB<4:1>而获得的二进制流“0010”。在这种情况下,与状态“x3”相对应的激活函数的函数值“f(x3)”可以被选择为具有与输入分配信号IDST<4:1>的设定值“0010”相对应的输出分配信号ODST的第三十二设定值“ODST32”。因为在第一比特位组MSB<4:1>被设置为具有二进制流“0001”并且第二比特位组SHB<2:1>被设置为具有二进制流“11”的状态“x4”下,校正码COR被生成为具有值“1”,所以输入分配信号IDST<4:1>可以被生成为具有通过将值“1”加到第一比特位组MSB<4:1>而获得的二进制流“0010”。在这种情况下,与状态“x4”相对应的激活函数的函数值“f(x4)”可以被选择为具有与输入分配信号IDST<4:1>的设定值“0010”相对应的输出分配信号ODST的第三十二设定值“ODST32”。因为在第一比特位组MSB<4:1>被设置为具有二进制流“0010”并且第二比特位组SHB<2:1>被设置为具有二进制流“00”的状态“x5”下,校正码COR被生成为具有值“0”,所以输入分配信号IDST<4:1>可以被生成为具有与第一比特位组MSB<4:1>的二进制流相同的二进制流“0010”。在这种情况下,与状态“x5”相对应的激活函数的函数值“f(x5)”可以被选择为具有与输入分配信号IDST<4:1>的设定值“0010”相对应的输出分配信号ODST的第三十二设定值“ODST32”。
参考图29和图30,详细示出了在计算结果信号MOUT<8:1>被设置为具有二进制流“00011011”的状态下由AF电路315执行的操作。如图29所示,比特位组选择器321可以从被设置为具有二进制流“00011011”的MOUT<8:1>中提取被设置为二进制流“0001”的第一比特位组MSB<4:1>和被设置为二进制流“10”的第二比特位组SHB<2:1>。校正码生成器323可以从被设置为二进制流“10”的第二比特位组SHB<2:1>生成具有值“1”的校正码COR。输入分配信号生成器325可以将值“1”加至第一比特位组MSB<4:1>,以生成被设置为具有二进制流“0010”的输入分配信号IDST<4:1>。再次参考图27,输出分配信号ODST的第十六设定值“ODST16”可以对应于通过激活函数设置为具有二进制流“0001”的输入分配信号IDST<4:1>,并且输出分配信号ODST的第三十二设定值“ODST32”可以对应于通过激活函数设置为具有二进制流“0010”的输入分配信号IDST<4:1>。当第二比特位组SHB<2:1>被设置为二进制流“10”时,校正码COR可以被生成为具有值“1”,并且输入分配信号IDST<4:1>可以通过将值“1”加至第一比特位组MSB<4:1>来补偿为具有二进制流“0010”。因此,AF电路315可以选择并输出输出分配信号ODST的第三十二设定值“ODST32”。在本实施例中,当将激活函数应用到从计算结果信号MOUT<8:1>提取的第一比特位组MSB<4:1>所生成的输入分配信号IDST<4:1>时,AF电路315可以通过利用第二比特位组SHB<2:1>来补偿输入分配信号IDST<4:1>,这提高了激活操作的准确性。
图31是示出与校正码生成器323的另一示例相对应的校正码生成器(未示出)的操作的表。如图31所示,当第二比特位组SHB<2:1>被设置为具有二进制流“00”、“01”和“10”中的任意一个时,第一驱动选择信号SEL1可以被生成为具有逻辑“高(H)”电平,并且第二驱动选择信号SEL2可以被生成为具有逻辑“低(L)”电平。在这种情况下,可以通过具有逻辑“高(H)”电平的第一驱动选择信号SEL1来将校正码COR驱动到逻辑“低(L)”电平,从而将其设置为二进制数“0”。当第二比特位组SHB<2:1>被设置为具有二进制流“11”时,第一驱动选择信号SEL1可以被生成为具有逻辑“低(L)”电平并且第二驱动选择信号SEL2可以被生成为具有逻辑“高(H)”电平。在这种情况下,可以通过具有逻辑“高(H)”电平的第二驱动选择信号SEL2来将校正码COR驱动到逻辑“高(H)”电平,从而将其设置为二进制数“1”。
在下文中将参照图32至图34来描述包括参照图31所述的校正码生成器的AF电路的操作。
参考图32,列出了通过基于第一比特位组MSB<4:1>和第二比特位组SHB<2:1>而应用激活函数来选择的输出分配信号ODST的设定值。因为在第一比特位组MSB<4:1>被设置为具有二进制流“0001”并且第二比特位组SHB<2:1>被设置为具有二进制流“00”的状态“x1”下,校正码COR被生成为具有值“0”,所以输入分配信号IDST<4:1>可以被生成为具有与第一比特位组MSB<4:1>的二进制流相同的二进制流“0001”。在这种情况下,与状态“x1”相对应的激活函数的函数值“f(x1)”可以被选择为具有与输入分配信号IDST<4:1>的设定值“0001”相对应的输出分配信号ODST的第十六设定值“ODST16”。因为在第一比特位组MSB<4:1>被设置为具有二进制流“0001”并且第二比特位组SHB<2:1>被设置为具有二进制流“01”的状态“x2”下,校正码COR被生成为具有值“0”,所以输入分配信号IDST<4:1>可以生成为具有与第一比特位组MSB<4:1>的二进制流相同的二进制流“0001”。在这种情况下,与状态“x2”相对应的激活函数的函数值“f(x2)”可以被选择为具有与输入分配信号IDST<4:1>的设定值“0001”相对应的输出分配信号ODST的第十六设定值“ODST16”。因为在第一比特位组MSB<4:1>被设置为具有二进制流“0001”并且第二比特位组SHB<2:1>被设置为二进制流“10”状态“x3”下,校正码COR被生成为具有值“0”,所以输入分配信号IDST<4:1>可以被生成为具有与第一比特位组MSB<4:1>的二进制流相同的二进制流“0001”。在这种情况下,与状态“x3”相对应的激活函数的函数值“f(x3)”可以被选择为具有与输入分配信号IDST<4:1>的设定值“0001”相对应的输出分配信号ODST的第十六设定值“ODST16”。因为在第一比特位组MSB<4:1>被设置为具有二进制流“0001”并且第二比特位组SHB<2:1>被设置为具有二进制流“11”的状态“x4”下,校正码COR被生成为具有值“1”,所以输入分配信号IDST<4:1>可以被生成为具有通过将值“1”加至第一比特位组MSB<4:1>而获得的二进制流“0010”。在这种情况下,与状态“x4”相对应的激活函数的函数值“f(x4)”可以被选择为具有与输入分配信号IDST<4:1>的设定值“0010”相对应的输出分配信号ODST的第三十二设定值“ODST32”。因为在第一比特位组MSB<4:1>被设置为具有二进制流“0010”并且第二比特位组SHB<2:1>被设置为具有二进制流“00”的状态“x5”下,校正码COR被生成为具有值“0”,所以输入分配信号IDST<4:1>可以被生成具有与第一比特位组MSB<4:1>的二进制流相同的二进制流“0010”。在这种情况下,与状态“x5”相对应的激活函数的函数值“f(x5)”可以被选择为具有与输入分配信号IDST<4:1>的设定值“0010”相对应的输出分配信号ODST的第三十二设定值“ODST32”。
参考图33和图34,详细示出了在计算结果信号MOUT<8:1>被设置为具有二进制流“00011011”的状态下由AF电路315执行的操作。如图33所示,比特位组选择器321可以从被设置为具有二进制流“00011011”的计算结果信号MOUT<8:1>中提取被设置为二进制流“0001”的第一比特位组MSB<4:1>和被设置为二进制流“10”的第二比特位组SHB<2:1>。校正码生成器(未示出)可以从被设置为二进制流“10”的第二比特位组SHB<2:1>中生成具有值“0”的校正码COR。输入分配信号生成器325可以生成输入分配信号IDST<4:1>,其被设置为具有与第一比特位组MSB<4:1>的二进制流相同的二进制流“0010”。如图34所示,当第二比特位组SHB<2:1>被设置为二进制流“10”时,校正码COR可以被生成为具有值“0”,并且输入分配信号IDST<4:1>可以被生成为具有与第一比特位组MSB<4:1>的二进制流相同的二进制流“0001”。因此,AF电路315可以选择并输出输出分配信号ODST的第十六设定值“ODST16”。
图35是示出计算设备300中包括的与AF电路315的另一示例相对应的AF电路315a的配置的框图。如图35所示,AF电路315a可以被设计为包括比特位组选择器321a、校正码生成器323a、输入分配信号生成器325a和输出分配信号生成器327a。
比特位组选择器321a可以从计算结果信号MOUT<8:1>中提取第一比特位组MSB<4:1>和第二比特位组SHB<2:1>。比特位组选择器321a可以选择并输出与包括在计算结果信号MOUT<8:1>的比特位之中的最高有效位相对应的四个比特位作为第一比特位组MSB<4:1>。比特位组选择器321a可以选择并输出与包括在计算结果信号MOUT<8:1>的比特位之中的第二最高有效位相对应的两个比特位作为第二比特位组SHB<2:1>。
校正码生成器323a可以从比特位组选择器321a接收第一比特位组MSB<4:1>的第四比特位MSB<4>和第二比特位组SHB<2:1>的所有比特位。校正码生成器323a可以生成校正码COR以补偿来自第一比特位组MSB<4:1>的第四比特位MSB<4>和第二比特位组SHB<2:1>的所有比特位的输入分配信号IDST<4:1>。校正码生成器323a可以基于第一比特位组MSB<4:1>的第四比特位MSB<4>和第二比特位组SHB<2:1>的所有比特位而将校正码COR驱动到电源电压VDD,以生成具有二进制数“1”的校正码COR,或者可以基于第一比特位组MSB<4:1>的第四比特位MSB<4>和第二比特位组SHB<2:1>的所有比特位而将校正码COR驱动到接地电压VSS,以生成具有二进制数“0”的校正码COR。
输入分配信号生成器325a可以从比特位组选择器321a接收第一比特位组MSB<4:1>,并且可以从校正码生成器323a接收校正码COR。输入分配信号生成器325a可以将校正码COR加至第一比特位组MSB<4:1>,以生成输入分配信号IDST<4:1>。
输出分配信号生成器327a可以从输入分配信号生成器325a接收输入分配信号IDST<4:1>。输出分配信号生成器327a可以包括具有关于激活函数的信息的查找表。输出分配信号生成器327a可以基于查找表来选择并输出与输入分配信号IDST<4:1>的设定值相对应的输出分配信号ODST的设定值。输入分配信号IDST<4:1>可以由从第一比特位组MSB<4:1>的第四比特位MSB<4>和第二比特位组SHB<2:1>中的所有比特位生成的校正码COR来补偿,这提高了激活操作的准确性。
图36是示出校正码生成器323a的操作的表。如图36所示,当第一比特位组MSB<4:1>的第四比特位MSB<4>被设置为具有二进制数“1”并且第二比特位组SHB<2:1>被设置为具有二进制流“00”或“01”时,第一驱动选择信号SEL1可以被生成为具有逻辑“高(H)”电平并且第二驱动选择信号SEL2可以被生成为具有逻辑“低(L)”电平。在这种情况下,可以通过具有逻辑“高(H)”电平的第一驱动选择信号SEL1来将校正码COR设置为具有值“0”。当第一比特位组MSB<4:1>的第四比特位MSB<4>设置为二进制数“1”,并且第二比特位组SHB<2:1>设置为二进制流“10或“11”,第一驱动选择信号SEL1可以被生成为具有逻辑“低(L)”电平,并且第二驱动选择信号SEL2可以被生成为具有逻辑“高(H)”电平。在这种情况下,可以通过具有逻辑“高(H)”电平的第二驱动选择信号SEL2来将校正码COR设置为具有值“1”。当第一比特位组MSB<4:1>的第四比特位MSB<4>被设置为二进制数“0”,并且第二比特位组SHB<2:1>被设置为二进制流“00”、“01”或“10”时,第一驱动选择信号SEL1可以被生成为具有逻辑“高(H)”电平,并且第二驱动选择信号SEL2可以被生成为具有逻辑“低(L)”电平。在这种情况下,可以通过具有逻辑“高(H)”电平的第一驱动选择信号SEL1来将校正码COR设置为具有值“0”。当第一比特位组MSB<4:1>的第四比特位MSB<4>被设置为二进制数“0”,并且第二比特位组SHB<2:1>被设置为二进制流“11”时,第一驱动选择信号SEL1可以被生成为具有逻辑“低(L)”电平,并且第二驱动选择信号SEL2可以被生成为具有逻辑“高(H)”电平。在这种情况下,可以通过具有逻辑“高(H)”电平的第二驱动选择信号SEL2来将校正码COR设置为具有值“1”。
如上所述,当将激活函数应用于从计算结果信号MOUT<8:1>提取的第一比特位组MSB<4:1>生成的输入分配信号IDST<4:1>时,AF电路315a可以通过利用第一比特位组MSB<4:1>的第四比特位MSB<4>和第二比特位组SHB<4:1>的所有比特位来补偿输入分配信号IDST<4:1>,这提高了激活操作的准确性。在上述本实施例中,尽管第一比特位组MSB<4:1>的第四比特位MSB<4>用于补偿输入分配信号IDST<4:1>,但是本实施例仅是本公开的示例。例如,基于实施例,包括在第一比特位组MSB<4:1>的比特位之中的除了第四比特位MSB<4>之外的至少一个比特位可以用于补偿输入分配信号IDST<4:1>。
Claims (5)
1.一种计算设备,包括:
乘法累加运算器,其被配置为对权重数据和向量数据执行乘法累加计算操作,以生成计算结果信号;以及
激活函数电路,其被配置为从所述计算结果信号中提取第一比特位组和第二比特位组,被配置为基于所述第一比特位组和所述第二比特位组来生成输入分配信号,以及被配置为基于激活函数来选择并输出与所述输入分配信号相对应的输出分配信号,其中,基于所述第二比特位组,所述输入分配信号被生成为具有与所述第一比特位组相同的数据,或者所述输入分配信号通过将校正码加至所述第一比特位组来生成。
2.根据权利要求1所述的计算设备,
其中,所述第一比特位组包括在所述计算结果信号中包含的比特位之中的至少一个最高有效位;以及
其中,所述第二比特位组包括在所述计算结果信号中包含的比特位之中的至少一个第二最高有效位。
3.根据权利要求1所述的计算设备,
其中,当所述第二比特位组被设置为具有第一状态时,所述输入分配信号被生成为具有与所述第一比特位组相同的数据;以及
其中,当所述第二比特位组被设置为具有第二状态时,所述输入分配信号通过将所述校正码加至所述第一比特位组来生成。
4.根据权利要求3所述的计算设备,
其中,当所述第二比特位组被设置为具有第一状态时,所述校正码被设置为具有值“0”;以及
其中,当所述第二比特位组被设置为具有第二状态时,所述校正码被设置为具有值“1”。
5.一种计算设备,包括:
乘法累加运算器,其被配置为对权重数据和向量数据执行乘法累加计算操作,以生成计算结果信号;以及
激活函数电路,其被配置为从所述计算结果信号中提取第一比特位组和第二比特位组,被配置为基于所述第一比特位组和所述第二比特位组来生成输入分配信号,以及被配置为基于激活函数来选择并输出与所述输入分配信号相对应的输出分配信号,其中,基于所述第一比特位组和所述第二比特位组,所述输入分配信号被生成为具有与所述第一比特位组相同的数据,或者所述输入分配信号通过将校正码加至所述第一比特位组来生成。
Applications Claiming Priority (16)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0138114 | 2019-10-31 | ||
KR1020190138114A KR20210052059A (ko) | 2019-10-31 | 2019-10-31 | 반도체장치 |
KR10-2019-0160238 | 2019-12-04 | ||
KR1020190160238A KR20210070139A (ko) | 2019-12-04 | 2019-12-04 | 반도체장치 |
US202062958614P | 2020-01-08 | 2020-01-08 | |
US202062958609P | 2020-01-08 | 2020-01-08 | |
US62/958,609 | 2020-01-08 | ||
US62/958,614 | 2020-01-08 | ||
US202062959593P | 2020-01-10 | 2020-01-10 | |
US202062959574P | 2020-01-10 | 2020-01-10 | |
US62/959,574 | 2020-01-10 | ||
US62/959,593 | 2020-01-10 | ||
US16/919,786 | 2020-07-02 | ||
US16/919,786 US11915125B2 (en) | 2019-10-31 | 2020-07-02 | Arithmetic devices for neural network |
US16/932,400 | 2020-07-17 | ||
US16/932,400 US12014184B2 (en) | 2019-10-31 | 2020-07-17 | Arithmetic devices for neural network including an input distribution signal generation circuit, an output distribution signal generation circuit, and an output distribution signal compensation circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112749796A CN112749796A (zh) | 2021-05-04 |
CN112749796B true CN112749796B (zh) | 2024-06-11 |
Family
ID=75648816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011183018.1A Active CN112749796B (zh) | 2019-10-31 | 2020-10-29 | 用于神经网络的计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112749796B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9013572D0 (en) * | 1989-06-20 | 1990-08-08 | Samsung Electronics Co Ltd | Real-time multipliers |
EP0575716A1 (en) * | 1993-04-08 | 1993-12-29 | Andrzej Cichocki | A neural network and signal processing units |
KR20180070187A (ko) * | 2016-12-16 | 2018-06-26 | 에스케이하이닉스 주식회사 | 신경망 장치의 정규화 장치 및 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013023068A1 (en) * | 2011-08-11 | 2013-02-14 | Greenray Industries, Inc. | Neural network frequency control |
FR3045892B1 (fr) * | 2015-12-21 | 2018-06-22 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Circuit neuronal optimise, architecture et procede pour l'execution des reseaux de neurones. |
-
2020
- 2020-10-29 CN CN202011183018.1A patent/CN112749796B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9013572D0 (en) * | 1989-06-20 | 1990-08-08 | Samsung Electronics Co Ltd | Real-time multipliers |
US5181184A (en) * | 1989-06-20 | 1993-01-19 | Samsung Electronics Co., Ltd. | Apparatus for multiplying real-time 2's complement code in a digital signal processing system and a method for the same |
EP0575716A1 (en) * | 1993-04-08 | 1993-12-29 | Andrzej Cichocki | A neural network and signal processing units |
KR20180070187A (ko) * | 2016-12-16 | 2018-06-26 | 에스케이하이닉스 주식회사 | 신경망 장치의 정규화 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN112749796A (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210132954A1 (en) | Arithmetic devices for neural network | |
US10860682B2 (en) | Binary, ternary and bit serial compute-in-memory circuits | |
US11521050B2 (en) | Control circuit for multiply accumulate circuit of neural network system | |
US4189767A (en) | Accessing arrangement for interleaved modular memories | |
US20210132910A1 (en) | Arithmetic devices for neural network | |
US20210132953A1 (en) | Arithmetic devices for neural network | |
KR20170047363A (ko) | 대입 카운트를 결정하기 위한 장치들 및 방법들 | |
KR20210096679A (ko) | 인코딩된 데이터를 디코딩하기 위한 신경망 및 시스템 | |
US10783963B1 (en) | In-memory computation device with inter-page and intra-page data circuits | |
US20220188604A1 (en) | Method and Apparatus for Performing a Neural Network Operation | |
US11954457B2 (en) | Arithmetic devices for neural network including a function storage circuit and an activation function circuit | |
US11605417B2 (en) | Arithmetic devices conducting auto-load operation for writing the activation functions | |
US10825512B1 (en) | Memory reads of weight values | |
US11922295B2 (en) | Arithmetic devices for neural network | |
US11056191B2 (en) | Nonvolatile memory device having different DQ lines receiving DQ line codes and method of operating nonvolatile memory device using different threshold voltages or error margins | |
US11662980B2 (en) | In-memory arithmetic processors | |
CN112749793B (zh) | 用于神经网络的算术设备 | |
CN112749794B (zh) | 用于神经网络的算术设备 | |
WO2021231069A1 (en) | Memory device to train neural networks | |
CN112749796B (zh) | 用于神经网络的计算设备 | |
US7464131B2 (en) | Logical calculation circuit, logical calculation device, and logical calculation method | |
CN114072775B (zh) | 存储器处理单元和包括零位跳过的计算点积的方法 | |
TWI771014B (zh) | 記憶體電路及其操作方法 | |
US20220277783A1 (en) | Arithmetic devices conducting auto-load operation | |
CN116601643A (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 |