用于神经网络的算术设备的制作方法

文档序号:24931874发布日期:2021-05-04 11:21阅读:80来源:国知局
相关申请的交叉引用本申请要求于2019年10月31日提交的韩国专利申请10-2019-0138114、于2020年1月8日提交的美国临时专利申请62/958,614、于2020年1月8日提交的美国临时专利申请62/958,609、于2020年1月10日提交的美国临时专利申请62/959,574和于2020年1月10日提交的美国临时专利申请62/959,593的优先权,其通过引用整体合并于此。本公开的实施例总体而言涉及用于神经网络的算术设备(arithmeticdevice)。
背景技术
::在神经网络中,在数学上被建模为类似于人脑的神经元彼此连接以形成网络。最近,神经网络技术得到了快速发展。因此,已经有很多努力集中于在各种电子设备中使用神经网络技术来分析输入数据并提取有用的信息。技术实现要素:根据一个实施例,一种算术设备可以包括命令解码器和激活函数(activationfunction,af)电路。命令解码器对外部命令进行解码,以产生表设定信号(tablesetsignal)、输入选择信号和表输入信号。af电路可以包括第一表储存电路。当表设定信号被激活时,af电路将表输入信号以查找表形式储存到在第一表储存电路中所包括的多个可变锁存器之中的、基于输入选择信号选择的一个可变锁存器中。af电路基于输入分配信号来提取由查找表实现的第一激活函数的结果值,以将所提取的结果值输出作为用于产生输出分配信号的第一表输出信号。根据另一实施例,一种算术设备可以包括外部数据解码器和af电路。外部数据解码器对外部数据进行解码以产生表设定信号、输入选择信号和表输入信号。af电路可以包括第一表储存电路。当表设定信号被激活时,af电路将表输入信号以查找表形式储存到在第一表储存电路中所包括的多个可变锁存器之中的、基于输入选择信号选择的一个可变锁存器中。af电路基于输入分配信号来提取由查找表实现的第一激活函数的结果值,以将所提取的结果值输出作为用于产生输出分配信号的第一表输出信号。根据又一实施例,一种算术设备可以包括模式寄存器和af电路。模式寄存器经由模式寄存器设定(moderegisterset)而储存表设定信号、输入选择信号和表输入信号。af电路可以包括第一表储存电路。当表设定信号被激活时,af电路将表输入信号以查找表形式储存到在第一表储存电路中所包括的多个可变锁存器之中的、基于输入选择信号选择的一个可变锁存器中。af电路基于输入分配信号来提取由查找表实现的第一激活函数的结果值,以将所提取的结果值输出作为用于产生输出分配信号的第一表输出信号。附图说明图1是示出根据本公开的一个实施例的算术设备的配置的框图。图2是示出图1的算术设备中包括的mac电路的配置的框图。图3是示出图1的算术设备中包括的af电路的配置的框图。图4示出了图3的af电路中包括的第一表储存电路的配置。图5和图6是示出图4的第一表储存电路中包括的表输出电路的示例的电路图。图7是示出图3的af电路中包括的第二表储存电路的配置的框图。图8是示出根据本公开的另一实施例的算术设备的配置的框图。图9是示出根据本公开的又一实施例的算术设备的配置的框图。具体实施方式在下文中将参考附图来描述本公开的各种实施例。然而,本文中所描述的实施例仅用于说明性目的,并不旨在限制本公开的范围。如图1所示,算术设备100可以包括命令解码器101、模式寄存器103、数据输入/输出电路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可以被产生以选择用于神经网络的各种激活函数之一。用于神经网络的各种激活函数可以包括但不限于:s形(即,s形函数),tanh(即,双曲正切激活函数),relu(即,修正线性单元函数),带泄漏relu(即,带泄漏修正线性单元函数),maxout(即,最大输出激活函数)和基于外部命令ecmd输入的激活函数。函数选择信号fs中包括的比特位的数量可以根据实施例而被设置为不同。模式寄存器103可以位于算术设备100的外部,例如,位于主机或存储器控制器上。数据输入/输出电路105可以从算术设备100的外部接收外部数据da,并且经由数据线107将外部数据da传送到数据储存电路109和mac电路111中的至少一个。数据输入/输出电路105可以经由数据线107将来自数据储存电路109、mac电路111和af电路113中的至少一个的数据输出为外部数据da。在写入操作中,数据储存电路109可以通过经由数据线107接收从数据输入/输出电路105接收的外部数据da而进行内部储存。在读取操作中,数据储存电路109可以通过数据线107将已内部储存的数据传送到数据输入/输出电路105并将其输出为外部数据da。mac电路111可以接收矢量数据(vectordata)vd和权重数据(weightdata)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。基于表设定信号tsc、输入选择信号isel和表输入信号tin,af电路113可以将用于神经网络的激活函数以查找表形式储存到第一表储存电路(图3的133)中。储存在af电路113中的查找表包括与输入分配信号idst和输出分配信号odst之间的关系有关的信息。输出分配信号odst可以被限定为在输入分配信号idst被应用到激活函数时导出的值。当表设定信号tsc被激活时,af电路113可以将表输入信号tin储存到第一可变锁存器至第n可变锁存器(图4的149_1至149_n)之中的、由输入选择信号isel选择的一个可变锁存器中。用于神经网络的各种激活函数(例如,s形、tanh、relu、带泄漏relu和maxout)可以被硬接线(hardwire)到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包含对应于整数的比特位和对应于小数部分的比特位时,输入分配信号idst可以被选择作为包含在算术结果信号mout中的比特位之中的、对应于整数的比特位。算术结果信号mout的比特位的数量可以根据实施例而被设置为不同。另外,输入分配信号idst的比特位的数量也可以根据实施例而被设置为不同。输入分配信号idst的比特位的数量可以被设置为比算术结果信号mout的比特位的数量小。参考图3,af电路113可以包括输入解码器131、第一表储存电路133、第二表储存电路134、第三表储存电路135、第四表储存电路137和输出分配信号选择电路139。输入解码器131可以基于表设定信号tsc和输入选择信号isel来产生解码输入信号idec。当表设定信号tsc被激活时,输入解码器131可以对输入选择信号isel进行解码以产生解码输入信号idec。基于解码输入信号idec和输入分配信号idst,第一表储存电路133可以储存表输入信号tin并且可以输出第一表输出信号tout1。基于解码输入信号idec,第一表储存电路133可以将表输入信号tin储存为具有查找表形式的第一激活函数。基于输入分配信号idst,第一表储存电路133可以将第一激活函数的结果值输出作为第一表输出信号tout1。将参考图4至图6描述第一表储存电路133的配置和操作。第二激活函数可以被硬接线到第二表储存电路134中。第二表储存电路134可以包括以具有第二激活函数的硬件实现的逻辑电路。第二激活函数可以被设置为s形、tanh、relu、带泄漏relu和maxout之一。第二表储存电路134可以基于输入分配信号idst来输出以查找表形式储存的第二激活函数的结果值作为第二表输出信号tout2。将参考图7描述第二表储存电路134的配置和操作。第三激活函数可以被硬接线到第三表储存电路135中。第三表储存电路135可以包括以具有第三激活函数的硬件实现的逻辑电路。第三激活函数可以被设置为s形、tanh、relu、带泄漏relu和maxout之一。第三激活函数可以被设置为不同于第二激活函数。第三表储存电路135可以基于输入分配信号idst来输出以查找表形式储存的第三激活函数的结果值作为第三表输出信号tout3。第四激活函数可以被硬接线到第四表储存电路137中。第四表储存电路137可以包括以具有第四激活函数的硬件实现的逻辑电路。第四激活函数可以被设置为s形、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中的每个可以是用于以查找表形式储存s形、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可以将基于输入分配信号idst而由函数选择信号fs选择的激活函数的结果值输出作为输出分配信号odst。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可以将基于输入分配信号idst而由函数选择信号fs选择的激活函数的结果值输出作为输出分配信号odst。af电路183的配置和操作可以与图1所示的af电路113的配置和操作相同。因此,在下文中将省略对af电路183的描述。具有前述配置的算术设备100b可以基于储存在模式寄存器181中的信息而以查找表形式储存关于用于神经网络的激活函数的信息。因此,被设置为与彼此不同的各种激活函数可以应用于神经网络,而无需任何设计改变。图1所示的算术设备100、图8所示的算术设备100a和图9所示的算术设备100b可以被包括在通过主机和存储器控制器接收外部命令的存储器模块中。存储器模块可以被实现为单列直插式存储器模块(simm)、双列直插式存储器模块(dimm)和高带宽存储器(hbm)。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1