使用半导体存储元件的神经网络运算电路的制作方法

文档序号:20605923发布日期:2020-05-01 22:05阅读:153来源:国知局
使用半导体存储元件的神经网络运算电路的制作方法

本发明涉及使用半导体存储元件的神经网络运算电路,例如涉及用于这样的运算电路的字线选择电路等。



背景技术:

随着信息通信技术的进展,所有的事物与因特网相连的iot(internetofthings)技术受到关注。在iot技术中,通过将各种电子设备连接到因特网,期待设备的高性能化,但作为实现更高性能化的技术,近年来活跃地开展电子设备自己进行学习和判断的人工智能(ai:artificialintelligence)技术的研究开发。

在人工智能技术中,使用对人的脑型信息处理进行工学上的模仿的神经网络技术,并且以高速、低功耗执行神经网络运算的半导体集成电路的研究开发正在火热地进行。

神经网络电路由将多个输入以分别具有不同的耦合权重系数的被称作突触(synapse)的耦合来连接的被称作神经元(neuron)的基本元件构成,通过将多个神经元相互连接,能够进行图像识别及声音识别这样的高级的运算动作。在神经元中,进行对将各输入与各耦合权重系数相乘后的值全部进行相加的乘加运算动作。

在非专利文献1中,公开了一种将神经网络的耦合权重系数保存到电阻变化型非易失性存储器元件中的神经网络的运算电路的结构。

其是将神经网络的耦合权重系数保存到可设定模拟电阻值的电阻变化型非易失性存储器元件中的结构,向非易失性存储器元件施加相当于输入数据的模拟电压值,利用此时流过的模拟电流值。

神经元中进行的乘加运算动作通过如下处理来进行:将耦合权重系数作为模拟电阻值保存到多个非易失性存储器元件中,向多个非易失性存储器元件施加相当于输入数据的多个模拟电压值,作为乘加运算结果而得到将流过的电流值合计的模拟电流值。

由于能够同时执行多个神经元的乘加运算动作,所以能够进行低耗电、高速动作,但由于神经元的输入及输出被用模拟电压值或模拟电流值处理,所以在神经元间的信息传递时,需要使用模拟-数字变换电路(ad变换器电路)将模拟值变换为数字值,再使用数字-模拟变换电路(da变换器电路)将数字值变换为模拟值,有大规模的神经网络电路向半导体集成电路的安装较困难、即大规模的半导体集成化较困难的问题。

在非专利文献2中,公开了将神经网络的耦合权重系数保存到电阻变化型非易失性存储器元件中的神经网络的运算电路的另一结构。

使用将保存着正侧的耦合权重系数的电阻变化型非易失性存储器元件以阵列状排列的存储器阵列(正侧存储器阵列)和将保存着负侧的耦合权重系数的非易失性存储器元件以阵列状排列的存储器阵列(负侧存储器阵列)的字线的选择状态作为神经网络的神经元的输入数据,将在相当于输入数据的字线的选择状态下向多个非易失性存储器元件施加电压而流过的电流值合计的模拟电流值通过与正侧存储器阵列、负侧存储器阵列各自的位线连接的判定电路分别变换为电压值,将比较了其结果的结果作为神经元的乘加运算结果的输出数据而得到数字值,由此进行乘加运算动作。

输入数据及输出数据被以数字值处理,神经元间的信息传递也能够以数字值进行,不需要另外搭载模拟-数字变换电路(ad变换器电路)及数字-模拟变换电路(da变换器电路),相对于将输入数据及输出数据进行模拟处理的非专利文献1的结构,半导体集成化比较容易。

另一方面,在神经网络的运算动作中,需要将神经元的输出结果作为神经元的耦合目的地的神经元的输入数据的运算动作。为了实现这一点,采用另行准备正侧存储器阵列、负侧存储器阵列及进行模拟电流值向电压的变换和比较的电路结构整套的结构。此外,为了实现相当于输入数据的字线的选择状态,需要有选择任意的多个字线的字线选择电路,并按每个字线搭载1个触发器(flip-flop)。

在专利文献1中,作为同时选择多个字线的结构而公开了按存储器阵列的每个字线设置闩锁的结构。

现有技术文献

专利文献

专利文献1:日本特开平11-203894号公报

非专利文献

非专利文献1:m.prezioso,etal.,“trainingandoperationofanintegratedneuromorphicnetworkbasedonmetal-oxidememristors,”nature,no.521,pp.61-64,2015

非专利文献2:f.su,etal.,“a462gops/jrram-basednonvolatileintelligentprocessorforenergyharvestingioesystemfeaturingnonvolatilelogicsandprocessing-in-memory,”symposiumonvlsicircuitsdigestoftechnicalpapers,c260-c261,2017



技术实现要素:

发明要解决的课题

但是,在非专利文献2所公开的神经网络运算电路的字线选择电路中,能够一次实现1个选择状态,为了进行将在神经网络的运算动作中需要的神经元的输出结果作为输入数据的神经元的运算动作,需要准备多个如下的整套周边电路:存储器阵列及进行模拟电流值向电压值的变换和比较的电路及字线选择电路,所以有在实现大规模的神经网络的运算电路的情况下周边电路增大而导致面积的增大的问题。

此外,在使用专利文献1所公开的按每个字线设置闩锁、同时选择多个字线的结构的情况下也有同样的问题。

本发明是鉴于上述问题而做出的,目的是提供一种能够不导致面积的增大而实现大规模的神经网络运算动作的使用半导体存储元件的神经网络运算电路。

用来解决课题的手段

为了解决上述问题,有关本发明的一技术方案的使用半导体存储元件的神经网络运算电路的特征在于,具备:存储器阵列,具有以矩阵状配置的多个存储器单元,多个存储器单元分别连接于多条字线中的1条和多条位线中的1条;字线多路选择电路,将多条字线中的任意的字线设为选择或非选择;n个(n为1以上的整数)判定电路,进行神经网络的神经元的运算动作;列选择电路,将多条位线中的1条以上的位线连接于n个判定电路各自;以及控制电路,控制字线多路选择电路;多条字线以n条为1个单位在逻辑上被划分为多个字线区;字线多路选择电路包括按多个字线区的每个字线区将字线区内的字线设为选择或非选择的多个区内字线多路选择电路;区内字线多路选择电路按每条字线包括第1闩锁及第2闩锁,根据由控制电路控制的区选择信号、区内字线控制信号、第1闩锁的控制信号、第2闩锁的控制信号及字线选择信号,决定第1闩锁及第2闩锁的置位状态,并基于第1闩锁的置位状态,将对应的字线设为选择或非选择状态;判定电路在由字线多路选择电路选择的字线多路选择状态下,进行基于由列选择电路连接的位线的电压状态或位线中流过的电流状态,将第1逻辑值或第2逻辑值作为神经元的运算动作的输出数据来输出的判定动作。

此外,在有关本发明的一技术方案的使用半导体存储元件的神经网络运算电路中,控制电路可以将判定动作在相同的字线多路选择状态下执行多次;一边切换区选择信号,一边依次执行基于由1次判定动作得到的n个结果来决定根据区选择信号选择的区内字线多路选择电路内的n个第2闩锁的置位状态的动作;在多次的判定动作完成后,将第2闩锁的置位状态向第1闩锁传送并置位。

此外,在有关本发明的一技术方案的使用半导体存储元件的神经网络运算电路中,可以是,字线多路选择状态对应于神经网络的神经元的输入数据。

此外,在有关本发明的一技术方案的使用半导体存储元件的神经网络运算电路中,也可以是,存储器单元保存有神经网络的耦合权重系数。

此外,在有关本发明的一技术方案的使用半导体存储元件的神经网络运算电路中,也可以是,存储器单元是由电阻变化元件形成的电阻变化型非易失性存储器元件,将神经网络的耦合权重系数作为电阻值来保存。

此外,有关本发明的一技术方案的使用半导体存储元件的神经网络运算电路的特征在于,具备:存储器阵列,具有以矩阵状配置的多个存储器单元,多个存储器单元分别连接于多条字线中的1条和多条位线中的1条;字线多路选择电路,将多条字线中的任意的字线设为选择或非选择;n个(n是1以上的整数)判定电路,进行神经网络的神经元的运算动作;1个以上的读出电路,判定存储器单元的逻辑状态;列选择电路,将多条位线中的1条以上的位线连接于n个判定电路各自或读出电路;以及控制电路,控制字线多路选择电路;多条字线以n条为1个单位在逻辑性上被划分为多个字线区;字线多路选择电路包括能够按多个字线区的每个字线区切换神经网络运算动作模式和存储器动作模式这两个动作而动作的多个区内字线多路选择电路,神经网络运算动作模式中将字线区内的字线设为选择或非选择,存储器动作模式中将字线区内的1条字线设为选择或非选择;区内字线多路选择电路按每个字线包括第1闩锁、第2闩锁及与第1闩锁的输出连接的切换电路;区内字线多路选择电路根据由控制电路控制的区选择信号、区内字线控制信号、第1闩锁的控制信号、第2闩锁的控制信号、字线选择信号及模式切换信号,在模式切换信号为与神经网络运算动作模式对应的信号状态时,作为神经网络运算动作模式而决定第1闩锁及第2闩锁的置位状态,并基于第1闩锁的置位状态,经由切换电路将对应的字线设为选择或非选择状态;区内字线多路选择电路在模式切换信号为与存储器动作模式对应的信号状态时,作为存储器动作模式而基于区选择信号、区内字线控制信号及字线选择信号,经由切换电路将对应的字线设为选择或非选择状态;判定电路在神经网络运算动作模式时,在由字线多路选择电路选择的字线多路选择状态下,进行基于由列选择电路连接的位线的电压状态或位线中流过的电流状态,输出第1逻辑值或第2逻辑值作为神经元的运算动作的输出数据的判定动作;读出电路在存储器动作模式时,在选择了由字线多路选择电路选择的1条字线的状态下,进行基于由列选择电路连接的位线的电压状态或位线中流过的电流状态,将第1逻辑值或第2逻辑值作为存储器数据来输出的读出判定动作。

此外,在有关本发明的一技术方案的使用半导体存储元件的神经网络运算电路中,也可以是,控制电路将判定动作在相同的字线多路选择状态下执行多次;一边切换区选择信号,一边依次执行基于由1次判定动作得到的n个结果来决定根据区选择信号选择的区内字线多路选择电路内的n个第2闩锁的置位状态的动作;在多次的判定动作完成后,将第2闩锁的置位状态向第1闩锁传送并置位。

此外,在有关本发明的一技术方案的使用半导体存储元件的神经网络运算电路中,也可以是,神经网络运算动作模式时的字线多路选择状态对应于神经网络的神经元的输入数据。

此外,在有关本发明的一技术方案的使用半导体存储元件的神经网络运算电路中,也可以是,存储器单元保存有神经网络的耦合权重系数或保存有存储器数据。

此外,在有关本发明的一技术方案的使用半导体存储元件的神经网络运算电路中,也可以是,存储器单元是由电阻变化元件形成的电阻变化型非易失性存储器元件,将神经网络的耦合权重系数作为电阻值来保存或保存有存储器数据。

发明效果

有关本发明的一技术方案的使用半导体存储元件的神经网络运算电路是神经元的输入数据和输出数据能够取“0”或“1”数据的2值的数字值的神经网络电路,耦合权重系数保存在以矩阵状配置的存储器阵列内的各存储器单元中,由字线多路选择电路选择的字线的多路选择状态与神经元的输入数据对应,各神经元的运算使用在字线的多路选择状态下判定与判定电路连接的位线中流过的电流状态或电压状态的输出数据来执行。

这里,为了削减安装面积,使判定电路为作为比存储器阵列的位线数少的数量的n个,通过1次判定动作得到的输出数据是n个。

另一方面,在神经网络运算中,将多个神经元的输出数据设为耦合目的地的神经元的输入数据即字线的多路选择状态而进行运算动作即判定动作,但在进行耦合目的地的神经元的输入数据比n个大的神经网络的运算动作的情况下,通过在相同字线的多路选择状态下一边切换与判定电路连接的位线一边执行多次判定动作,确定耦合目的地的神经元的输入数据。

这里,字线多路选择电路由以通过1次判定动作得到的n个输出数据数为1个单位的多个区内字线选择电路构成,在区内字线选择电路中,按每个字线具备第1闩锁及第2闩锁。

通过采用本结构,每执行1次由第1闩锁的置位状态选择的字线的多路选择状态下的判定动作,就以n个单位依次置位为第2闩锁。

由此,将在多次判定动作后确定的第2闩锁的置位状态向第1闩锁传送并设为置位状态,然后通过进行字线多路选择状态的切换,能够进行神经元的运算动作,所以在进行大规模的神经网络的运算的情况下,不用准备多组判定电路等周边电路等导致面积增大就能够实现。

此外,有关本发明的一技术方案的使用半导体存储元件的神经网络运算电路相对于上述结构,能够进行神经网络运算动作模式和存储器动作模式这2个模式的动作及切换,具有除了在神经网络运算动作模式时进行上述神经网络运算动作的功能以外,在存储器动作模式时,判定并输出存储器数据的功能,可以根据动作目的来进行切换动作。

附图说明

图1是表示有关第1实施方式的使用半导体存储元件的神经网络运算电路的结构的图。

图2是表示图1所示的字线多路选择电路11的结构的图。

图3是表示图2所示的区内字线多路选择电路21的结构的图。

图4是表示图3所示的第1闩锁31及第2闩锁32的结构的图。

图5是表示图1所示的存储器阵列10的结构的图。

图6是表示图5所示的存储器单元51的结构的图。

图7是表示深度神经网络的图。

图8是表示神经网络运算中的神经元的计算的图。

图9是表示有关第1实施方式的使用半导体存储元件的神经网络运算电路的一例的图。

图10是表示图9所示的字线多路选择电路11的结构的图。

图11是表示图10所示的区内字线多路选择电路21的结构的图。

图12是表示利用有关第1实施方式的使用半导体存储元件的神经网络运算电路进行运算动作的神经网络的一例的图。

图13是表示与在图12所示的神经网络中进行的运算动作有关的输入层72的输入数据、隐藏层73的神经元的运算结果及输出层74的输出数据的一例的图。

图14是表示作为图12所示的神经网络使用的、有关本发明的第1实施方式的使用半导体存储元件的神经网络运算电路的运算动作的图。

图15是表示利用有关第1实施方式的使用半导体存储元件的神经网络运算电路进行运算动作的神经网络的一例的图。

图16是表示有关第1实施方式的神经网络的神经元的输入数据及输出数据的另一例的图。

图17是表示有关第1实施方式的使用半导体存储元件的神经网络运算电路的动作的另一例的图。

图18是表示有关第2实施方式的使用半导体存储元件的神经网络运算电路的结构的图。

图19是表示图18所示的字线多路选择电路181的结构的图。

图20是表示图19所示的区内字线多路选择电路191的结构的图。

具体实施方式

以下,参照附图对本发明的实施方式进行说明。

首先,对神经网络运算的基础动作进行说明。

图7是表示深度神经网络的结构的图。图7的深度神经网络由供输入数据输入的输入层72、接受输入层72的输入数据而进行运算处理的隐藏层73、接受隐藏层73的输出数据而进行运算处理的输出层74构成。

在输入层72、隐藏层73、输出层74各自中,存在许多被称作神经元70的神经网络的基本元件,各个神经元70经由耦合权重71被连接。

多个耦合权重71各自具有不同的耦合权重系数,将神经元间耦合。

神经元70中被输入多个输入数据,神经元70对这些多个输入数据进行与对应的耦合权重系数的乘加运算动作,将其结果作为输出数据输出。

这里,隐藏层73是将多级(在图7中是3级)神经元连结的结构,在形成了深度的神经网络这个意义上被称作深度神经网络。

图8是表示神经网络运算中的神经元的计算的图,将神经元70进行的计算式表示在图8的式(1)、式(2)中。

神经元70通过具有耦合权重系数w1~wk的耦合权重与k个输入x1~xk连接,进行与输入x1~xk的乘加运算。

神经元70具有激活函数f,对输入x1~xk与耦合权重系数w1~wk的乘加运算结果进行激活函数的运算处理,将输出y输出。

这里,有关本发明的实施方式的神经网络运算中的神经元的激活函数f是在乘加运算结果为一定值以上的情况下为“1”、在小于一定值的情况下为“0”的阶跃函数,假设各神经元70的输入数据及输出数据是“0”或“1”这2值而进行说明。

<第1实施方式>

图1是表示有关第1实施方式的使用半导体存储元件的神经网络运算电路的结构的图。图1的运算电路具有存储器阵列10、字线多路选择电路11、n个(n是1以上的整数)判定电路151~15n、列选择电路14和控制电路16。

存储器阵列10具有以矩阵状配置的多个存储器单元,多个存储器单元分别连接于多个字线12中的1条和多个位线13中的1条。字线多路选择电路11将多个字线12中的任意的字线设为选择或非选择。列选择电路14将多个位线13中的1条以上与n个判定电路151~15n各自连接。控制电路16对字线多路选择电路11、列选择电路14及判定电路151~15n进行控制。字线多路选择电路11被用作用于实现图7的神经网络运算电路的字线选择电路。

判定电路151~15n分别是以由字线多路选择电路11选择的字线多路选择状态为神经元的输入数据,进行基于由列选择电路14分别连接的位线13的电压状态或位线13中流过的电流状态,作为神经元的乘加运算动作的结果而将第1逻辑值(“0”)或第2逻辑值(“1”)作为输出数据的判定动作的电路,由所配置的n个判定电路同时输出n个输出数据(判定结果)17。

多个字线12以n条为1个单位在逻辑上被划分为多个组(字线区),这里假设被划分为m个(m是1以上的整数)字线区。

图2是表示图1所示的字线多路选择电路11的结构的图。多个字线12(wl[1][n:1]~wl[m][n:1])被划分为m个字线区。字线多路选择电路11包括与m个字线区分别对应的m个区内字线多路选择电路21。例如wl[m][n:1]表示与第m个字线区对应的字线中的第1个到第n个字线。

图3是表示图2所示的区内字线多路选择电路21的结构的图,表示m个区内字线多路选择电路21中的与wl[1][n:1]对应的区内字线多路选择电路[1]的结构。第1闩锁31及第2闩锁32按字线区内的每个字线而配置。

在第1闩锁31的输入e上经由2个not电路连接着第1闩锁的控制信号latsr1,作为第2闩锁32的输出q的节点l2[1][n:1]被连接于n个第1闩锁31各自的输入d。

在第2闩锁32的输入e上,经由2个nand电路及1个not电路连接着字线区选择信号area_sel[1]、第2闩锁的控制信号lats2及latr2这3个控制信号,作为输入d而区内字线控制信号in[n:1]分别连接到n个第2闩锁。

作为上述的控制信号的第1闩锁的控制信号latsr1、字线区选择信号area_sel[1]、第2闩锁的控制信号lats2、latr2及区内字线控制信号in[n:1]被控制电路16控制。

图4是表示图3所示的第1闩锁31及第2闩锁32的结构的图。第1闩锁31及第2闩锁32由数据闩锁构成,根据输入d、e的逻辑状态决定及保持输出q的置位状态。

图5是表示图1所示的存储器阵列10的结构的图。在存储器阵列10中,作为半导体存储元件的存储器单元51被配置为矩阵状。各存储器单元连接于多个字线12中的1条和多个位线13中的1条。

多个字线12由wl[m:1][n:1]表示,以n条为1个单位,在逻辑上划分为m个组。

多个位线13以u条(u是1以上的整数)位线为1个单位,在逻辑上划分为n个组,位线中的1条以上通过列选择电路14分别连接于n个判定电路151~15n。

例如,在1个判定电路151上连接着u条位线bl11~bl1u中的1条以上的位线,在判定电路152上连接着整数u条位线bl21~bl2u中的1条以上的位线,以下同样,对于判定电路15n连接u条位线bln1~blnu中的1条以上的位线。

多个存储器单元51被配置为矩形状,连接于作为多个字线12的wl[m:1][n:1]、作为多个位线13的bl11~blnu、以及与多个位线13对应设置的多个源极线sl11~slnu。

图6是表示图5所示的存储器单元51的结构的图。存储器单元51是将字线连接到栅极上的晶体管t0与电阻变化元件r串联连接而成的电阻变化型非易失性存储器元件(reram),在电阻变化元件r的一端连接着位线bl,在晶体管t0的一端连接着源极线sl。

在电阻变化元件r中,将神经网络中的神经元的耦合权重系数作为电阻值保存,电阻值由在图1中没有图示的写入电路设定、保存。

以上,对本发明的使用半导体存储元件的神经网络运算电路的结构进行了说明。

以下,详细地说明具体的实施方式及动作。

图9是表示有关第1实施方式的使用半导体存储元件的神经网络运算电路的结构的一例的图。图9的神经网络运算电路是对于图1所示的使用半导体存储元件的神经网络运算电路,将判定电路作为判定电路151~154而配置了4个的结构,相当于1以上的整数n是4的情况。

此外,多个字线12被划分为4个字线区,相当于1以上的整数m是4的情况。

图10是表示图9所示的字线多路选择电路11的结构的图。在字线多路选择电路11的字线多路选择电路11中,对于图2所示的字线多路选择电路11,以与图9对应的方式将n及m设为4而配置区内字线多路选择电路21。

图11是表示图10所示的区内字线多路选择电路21的结构的图,表示4个区内字线多路选择电路21中的与wl[1][4:1]对应的电路。图11的区内字线多路选择电路21是对于图3所示的区内字线多路选择电路将n设为4的结构。

第1闩锁31及第2闩锁32与图3所示同样,由图4所示的数据闩锁构成。

图12是表示利用有关第1实施方式的使用半导体存储元件的神经网络运算电路进行运算动作的神经网络的一例的图。图12的神经网络在图7的深度神经网络中,将输入层72设为8输入,将隐藏层73在1级中设为8神经元,将输出层74设为2神经元、2输出。

输入层72中记载的a1~a8表示神经网络的输入数据,隐藏层73中记载的b1~b8表示隐藏层73的8个神经元70的输出。这些各输出是将各神经元的输入设为a1~a8,是a1~a8与对应于它们各自的耦合权重71的耦合权重系数的乘加运算结果。

输出层74中记载的c1、c2表示输出层74的2个神经元70的输出。这些各输出是将各神经元的输入设为b1~b8,是b1~b8与对应于它们各自的耦合权重71的耦合权重系数的乘加运算结果。

在本实施方式中,各神经元70的输入数据及输出数据是“0”或“1”这2个值。

图13表示与在图12所示的神经网络中的进行的运算动作有关的、输入层72的输入数据a1~a8、隐藏层73的神经元的运算结果b1~b8及输出层74的输出数据c1、c2的一例。

此外,对于在图5中表示的存储器阵列10,4条字线wl[1][1]~wl[1][4]的选择状态分别对应于输入数据a1~a4,4条字线wl[2][1]~wl[2][4]的选择状态分别对应于输入数据a5~a8,在8条字线wl[2:1][4:1]与由列选择电路14向判定电路151~154各自连接1条以上的位线的交点处连接的存储器单元51中保存着输入数据a1~a8与隐藏层73的8个神经元70的耦合权重71的权重系数。

这里,分别分散而在与连接在判定电路151上的1条以上的位线的交点处连接的存储器单元51中保存着数据a1~a8与b1间的耦合权重系数、和a1~a8与b5间的耦合权重系数,同样在与连接在判定电路152上的1条以上的位线的交点处连接的存储器单元51中保存着数据a1~a8与b2间的耦合权重系数、和a1~a8与b6间的耦合权重系数,在与连接在判定电路153上的1条以上的位线的交点处连接的存储器单元51中保存着数据a1~a8与b3间的耦合权重系数、和a1~a8与b7间的耦合权重系数,在与连接在判定电路154上的1条以上的位线的交点处连接的存储器单元51中保存着数据a1~a8与b4间的耦合权重系数、和a1~a8与b8间的耦合权重系数。

wl[3][1]~wl[3][4]这4条字线选择状态分别对应于隐藏层73的8个神经元的输出数据、即输出层74的2个神经元的输入数据b1~b8中的b1~b4,wl[4][1]~wl[4][4]这4条字线的选择状态分别对应于b5~b8,在wl[4:3][4:1]这8条字线与由列选择电路14对判定电路151~152各自连接1条以上的位线的交点处连接的存储器单元51中,保存着隐藏层73的8个神经元与隐藏层73的2个神经元70的耦合权重71的权重系数。

这里,在与连接在判定电路151上的1条以上的位线的交点处连接的存储器单元51中,保存着数据b1~b8与c1间的耦合权重系数,在与连接在判定电路152上的1条以上的位线的交点处连接的存储器单元51中,保存着数据b1~b8与c2间的耦合权重系数。

与此同时,在与判定电路153及判定电路154分别连接的1条以上的位线上,在交点处连接的存储器单元51中没有保存耦合权重系数。

图14是表示作为图12所示的神经网络使用的有关本实施方式的神经网络运算电路的动作的图。图14对应于图13的数据。

表示了作为图10所示的字线多路选择电路11的控制信号的字线区选择信号area_sel[4:1]、区内字线控制信号in[4:1]、第1闩锁的控制信号latsr1、第2闩锁的控制信号lats2、latr2、字线选择信号wl_en、字线wl[4:1][4:1],和图11所示的第1闩锁的输出信号l1[4:1][4:1]、第2闩锁的输出信号l2[4:1][4:1]的动作波形及判定电路151~154的输出信号y[4:1]。

area_sel[4:1]等总线记述的信号用2进制数的逻辑来表示选择状态,在对应的信号是“h”的情况下用“1”记载,在“l”的情况下用“0”记载。

通过动作步骤140~148这9个动作步骤进行图12的神经网络的运算动作。

动作步骤140是初始状态,在动作步骤141~动作步骤146中进行隐藏层73的8个神经元70的运算动作,在动作步骤147、动作步骤148中进行输出层74的2个神经元70的运算动作。

以下,对各动作步骤进行说明。

在动作步骤141中,将area_sel[4:1]设为“0001b”,将in[4:1]设为作为与8个输入数据a1~a8中的a1~a4对应的数据的“1101b”,通过将lats2从“l”电平转变为“h”电平、从“h”电平转变为“l”电平,区内字线多路选择电路21中的与wl[1][4:1]对应的区内字线多路选择电路[1]内的第2闩锁32的输出信号即l2[1][4:1]成为“1101b”的置位状态。

接着,在动作步骤142中,将area_sel[4:1]设为“0010b”,将in[4:1]设为作为与8个输入数据a1~a8中的a8~a5对应的数据的“1001b”,通过将lats2从“l”电平转变为“h”电平、从“h”电平转变为“l”电平,区内字线多路选择电路21中的与wl[2][4:1]对应的区内字线多路选择电路[2]内的第2闩锁32的输出信号即l2[2][4:1]成为“1001b”的置位状态。

在本动作步骤后,成为与8个输入数据a1~a8对应的信号作为第2闩锁32的输出信号被置位为l2[1][4:1]、l2[2][4:1]的状态。

接着,在动作步骤143中,通过将latsr1从“l”电平转变为“h”电平、从“h”电平转变为“l”电平,区内字线多路选择电路21内的第2闩锁的输出信号l2[4:1][4:1]分别被向所连接的第1闩锁的输出信号l1[4:1][4:1]传送并置位,l1[1][4:1]成为“1101b”的置位状态,l1[2][4:1]成为“1001b”的置位状态。

接着,在动作步骤144中,通过将wl_en从“l”电平转变为“h”电平,对于字线wl[1][4:1]、字线wl[2][4:1],选择分别与输入数据a1~a4、a5~a8对应的字线。

在该字线多路选择状态下,由列选择电路14将存储器阵列10的多个位线中的、连接有如下存储器单元51的1条以上的位线连接到各个判定电路151~154,上述存储器单元51保存有输入层72与隐藏层73中的输出数据为b1~b4的神经元70间的耦合权重71的耦合权重系数。

判定电路151~154基于所连接的位线的电压状态或位线中流动的电流状态,由1个判定电路将1个输出数据作为神经元的乘加运算动作的结果向y[4:1]输出。

这里,作为与隐藏层73的8个各神经元70的输出数据b1~b8中的b1~b4对应的4个输出数据,将y[4:1]作为“0110b”输出。

同时,将in[4:1]设为“0000b”,将latr2从“l”电平转变为“h”电平、从“h”电平转变为“l”电平,由此使第2闩锁32的输出信号l2[4:1][4:1]全部成为“0”状态。

通过本动作步骤,确定作为隐藏层73的8个神经元的乘加运算动作的结果的8个输出数据b1~b8中的4个输出数据b1~b4。

另一方面,为了进行输出层74的2个神经元70的乘加运算动作,需要将b1~b8的8个数据作为输入数据,在接着叙述的动作步骤145中确定b5~b8这4个输出数据。

在动作步骤145中,通过将wl_en从“l”电平转变为“h”电平,对于字线wl[1][4:1]、字线wl[2][4:1],选择分别与输入数据a1~a4、a5~a8对应的字线。

在该字线多路选择状态下,列选择电路14从存储器阵列10的多个位线中,将连接有如下存储器单元51的1条以上的位线连接到各个判定电路151~154,上述存储器单元51保存有输入层72与隐藏层73中的输出数据为b5~b8的神经元70间的耦合权重71的耦合权重系数。

判定电路151~154基于所连接的位线的电压状态或在位线中流过的电流状态,由1个判定电路将1个输出数据作为神经元的乘加运算动作的结果向y[4:1]输出。

这里,作为与隐藏层73的8个各神经元70的输出数据b1~b8中的b5~b8对应的4个输出数据,将y[4:1]作为“1101b”输出。

此时,将area_sel[4:1]设为“0100b”,将作为在动作步骤144中得到的输出数据b1~b4的“0110b”设定为in[4:1],将lats2从“l”电平转变为“h”电平、从“h”电平转变为“l”电平,由此区内字线多路选择电路21中的与wl[3][4:1]对应的区内字线多路选择电路[3]内的第2闩锁32的输出信号l2[3][4:1]成为“0110b”的置位状态。

接着,在动作步骤146中,将area_sel[4:1]设为“1000b”,将作为在动作步骤145中得到的输出数据b5~b8的“1101b”设定为in[4:1],将lats2从“l”电平转变为“h”电平、从“h”电平转变为“l”电平,由此区内字线多路选择电路21中的与wl[4][4:1]对应的区内字线多路选择电路[4]内的第2闩锁32的输出信号l2[4][4:1]成为“1101b”的置位状态。

在本动作步骤后,确定作为隐藏层73的输出数据的b1~b8,成为作为第2闩锁32的输出信号被置位为l2[3][4:1]、l2[4][4:1]的状态。

接着,在动作步骤147中,通过将latsr1从“l”电平转变为“h”电平、从“h”电平转变为“l”电平,区内字线多路选择电路21内的第2闩锁的输出信号l2[4:1][4:1]作为分别连接的第1闩锁的输出信号l1[4:1][4:1]被传送并置位,l1[1][4:1]成为“0110b”的置位状态,l1[2][4:1]成为“1101b”的置位状态。

接着,在动作步骤148中,通过将字线选择信号wl_en从“l”电平转变为“h”电平,对于字线wl[3][4:1]、字线wl[4][4:1],选择分别与b1~b4、b5~b8对应的字线。

在该字线多路选择状态下,列选择电路14从存储器阵列10的多个位线中,将连接着保存有隐藏层73与输出层74的神经元70间的耦合权重71的耦合权重系数的存储器单元51的1条以上的位线与各个判定电路151、判定电路152连接。

判定电路151、152基于所连接的位线的电压状态或位线中流过的电流状态进行判定,分别将1个判定结果作为神经元的运算动作的输出数据向y[2:1]输出。

由于在与判定电路153、154同时连接的位线的存储器单元51中没有保存耦合权重系数,所以输出数据y[4:3]是无效的输出数据,这里输出“00b”,将y[4:1]设为“0001b”而输出。

4个输出数据中的有效的输出数据c1、c2是y[2:1]的两个,对于作为无效的输出数据的y[4:3],由控制电路16进行忽视的控制。

通过以上说明的动作步骤140~148,能够进行图12的神经网络的运算动作。

特别是,在同时进行神经元的乘加运算动作的判定电路的数量比神经网络的输入层72、隐藏层73、输出层74的各层的神经元的数量少的情况下,也基于按每个字线配置的第1闩锁31的置位状态在所选择的字线多路选择状态下进行多次判定动作,进而基于1次判定动作的结果依次反复进行第2闩锁32的置位状态的决定,由此实现神经网络的运算动作。

在以上说明的利用有关本发明的第1实施方式的使用半导体存储元件的神经网络运算电路进行运算动作的例子中,输入层72为8输入,隐藏层73为8神经元,作为字线区内的字线数的n为4的整数倍,但如果输入层72的输入数及隐藏层73的神经元数是整数n(这里是4)的整数倍以外也能够动作,以下对该情况下的动作进行说明。

图15是表示利用有关第1实施方式的使用半导体存储元件的神经网络运算电路进行运算动作的神经网络的另一例的图。在图15的神经网络中,对于图7的深度神经网络,将输入层72设为7输入,将隐藏层73在1级中设为7神经元,将输出层74设为2输出。

其是输入层72的输入数及隐藏层73的神经元数不为n(这里是4)的整数倍的例子。

输入层72中记载的a1~a7表示神经网络的输入数据,隐藏层73中记载的b1~b7表示隐藏层73的7个神经元70的输出,将各神经元的输入设为a1~a7,是a1~a7与分别对应的耦合权重71的耦合权重系数的乘加运算结果。

输出层74中记载的c1、c2表示输出层74的2个神经元70的输出,将各神经元的输入设为b1~b7,是b1~b7与分别对应的耦合权重71的耦合权重系数的乘加运算结果。

在本实施方式中,各神经元70的输入数据及输出数据是“0”或“1”这2个值。

图16表示与在图15所示的神经网络中进行的运算动作有关的、输入层72的输入数据a1~a7、隐藏层73的神经元的运算结果b1~b7及输出层74的输出数据c1、c2的一例。

此外,对于在图5中表示的存储器阵列10,wl[1][1]~wl[1][4]这4条字线选择状态分别对应于输入数据a1~a4,wl[2][1]~wl[2][3]这3条字线的选择状态分别对应于输入数据a5~a7,在wl[2][3:1]、wl[1][4:1]的7条字线与由列选择电路14对判定电路151~154各自连接1条以上的位线的交点处的存储器单元51中,保存着输入数据a1~a7与隐藏层73的8个神经元70的耦合权重71的权重系数。

这里,分别分散而在与连接在判定电路151上的1条以上的位线的交点处连接的存储器单元51中保存着数据a1~a7与b1间的耦合权重系数、和a1~a7与b5间的耦合权重系数,同样在与连接在判定电路152上的1条以上的位线的交点处连接的存储器单元51中保存着数据a1~a7与b2间的耦合权重系数、和a1~a7与b6间的耦合权重系数,在与连接在判定电路153上的1条以上的位线的交点处连接的存储器单元51中保存着数据a1~a7与b3间的耦合权重系数、和a1~a7与b7间的耦合权重系数,在与连接在判定电路154上的1条以上的位线的交点处连接的存储器单元51中保存着数据a1~a7与b4间的耦合权重系数。

wl[3][1]~wl[3][4]这4条字线选择状态分别对应于隐藏层73的7个神经元的输出数据即输出层74的2个神经元的输入数据b1~b7中的b1~b4,wl[4][1]~wl[4][3]这3条字线的选择状态分别对应于b5~b7,在wl[4][3:1]、wl[3][4:1]这7条字线与由列选择电路14对判定电路151~152分别连接1条以上的位线的交点处连接的存储器单元51中,保存着隐藏层的8个神经元与隐藏层73的2个神经元70的耦合权重71的权重系数。

这里,在与连接在判定电路151上的1条以上的位线的交点处连接的存储器单元51中,保存着数据b1~b7与c1间的耦合权重系数,在与连接在判定电路152上的1条以上的位线的交点处连接的存储器单元51中,保存着数据b1~b7与c2间的耦合权重系数。

与此同时,在与判定电路153及判定电路154分别连接的1条以上的位线中,在交点处连接的存储器单元51中没有保存耦合权重系数。

图17是表示被用作图15所示的神经网络的有关本实施方式的神经网络运算电路的动作的图。图17与图16的数据对应。图17的各信号的名称与图14是同样的。

通过动作步骤170~178这9个动作步骤,进行图15的神经网络的运算动作。

动作步骤170是初始状态,在动作步骤171~动作步骤176中,进行隐藏层73的7个神经元70的运算动作,在动作步骤177、动作步骤178中,进行输出层74的2个神经元70的运算动作。

以下,说明各动作步骤的详细情况。

在动作步骤171中,将area_sel[4:1]设为“0001b”,将in[4:1]设为作为与7个输入数据a1~a7中的a1~a4对应的数据的“1101b”,将lats2从“l”电平转变为“h”电平、从“h”电平转变为“l”电平,由此区内字线多路选择电路21中的与wl[1][4:1]对应的区内字线多路选择电路[1]内的第2闩锁32的输出信号即l2[1][4:1]成为“1101b”的置位状态。

接着,在动作步骤172中,将area_sel[4:1]设为“0010b”,将in[3:1]设为作为与7个输入数据a1~a7中的a7~a5对应的数据的“001b”,将不存在对应的输入数据的in[4]固定为“0b”,将lats2从“l”电平转变为“h”电平、从“h”电平转变为“l”电平,由此区内字线多路选择电路21中的与wl[2][4:1]对应的区内字线多路选择电路[2]内的第2闩锁32的输出信号即l2[2][4:1]成为“0001b”的置位状态。

在本动作步骤后,成为与7个输入数据a1~a7对应的信号作为第2闩锁32的输出信号而被置位为l2[1][4:1]、l2[2][3:1]的状态。

接着,在动作步骤173中,通过将latsr1从“l”电平转变为“h”电平、从“h”电平转变为“l”电平,区内字线多路选择电路21内的第2闩锁的输出信号l2[4:1][4:1]被向分别连接的第1闩锁的输出信号l1[4:1][4:1]传送并置位,l1[1][4:1]成为“1101b”的置位状态,l1[2][4:1]成为“0001b”的置位状态。

接着,在动作步骤174中,通过将wl_en从“l”电平转变为“h”电平,对于字线wl[1][4:1]、字线wl[2][3:1],分别选择与输入数据a1~a4、a5~a7对应的字线。

在该字线多路选择状态下,由列选择电路14将存储器阵列10的多个位线中的连接有如下存储器单元51的1条以上的位线连接到各个判定电路151~154,上述存储器单元51保存有输入层72与隐藏层73中的输出数据为b1~b4的神经元70间的耦合权重71的耦合权重系数。

判定电路151~154基于所连接的位线的电压状态或位线中流过的电流状态,由1个判定电路将1个输出数据作为神经元的乘加运算动作的结果向y[4:1]输出。

这里,作为与隐藏层73的7个各神经元70的输出数据b1~b7中的b1~b4对应的4个输出数据,将y[4:1]设为“0110b”而输出。

同时,将in[4:1]设为“0000b”,将latr2从“l”电平转变为“h”电平、从“h”电平转变为“l”电平,由此使第2闩锁32的输出信号l2[4:1][4:1]全部成为“0”状态。

通过本动作步骤,确定作为隐藏层73的7个神经元的乘加运算动作的结果的8个输出数据b1~b7中的4个输出数据b1~b4。

另一方面,为了进行输出层74的2个神经元70的乘加运算动作,需要将b1~b7的7个数据作为输入数据,通过以下所述的动作步骤175确定b5~b7的3个输出数据。

在动作步骤175中,通过将wl_en从“l”电平转变为“h”电平,对于字线wl[1][4:1]、字线wl[2][3:1],选择分别与输入数据a1~a4、a5~a7对应的字线。

在该字线多路选择状态下,列选择电路14从存储器阵列10的多个位线中,将连接有如下存储器单元51的1条以上的位线连接到各个判定电路151~153,上述存储器单元51保存有输入层72与隐藏层73中的输出数据为b5~b7的神经元70间的耦合权重71的耦合权重系数。

在与判定电路154同时连接的位线中没有保存耦合权重系数。

判定电路151~153基于所连接的位线的电压状态或位线中流过的电流状态,由1个判定电路将1个输出数据作为神经元的乘加运算动作的结果向y[3:1]输出。

这里,作为与隐藏层73的8个各神经元70的输出数据b1~b7中的b5~b7对应的3个输出数据,将y[3:1]作为“101b”而输出。

这里,由于在与判定电路154连接的位线的存储器单元51中没有保存耦合权重系数,所以输出数据y[4]是无效的输出数据,这里输出“0b”,将y[4:1]设为“0101b”而输出。

此时,将area_sel[4:1]设为“0100b”,将作为在动作步骤174中得到的输出数据b1~b4的“0110b”设定为in[4:1],通过将lats2从“l”电平转变为“h”电平、从“h”电平转变为“l”电平,区内字线多路选择电路21中的与wl[3][4:1]对应的区内字线多路选择电路[3]内的第2闩锁32的输出信号l2[3][4:1]成为“0110b”的置位状态。

接着,在动作步骤146中,将area_sel[4:1]设为“1000b”,将作为在动作步骤145中得到的输出数据b5~b7的“101b”设定为in[3:1]。

此时,不论y[4]的值如何都将in[4]固定为“0b”,将in[4:1]设定为“0101b”,通过将lats2从“l”电平转变为“h”电平、从“h”电平转变为“l”电平,区内字线多路选择电路21中的与wl[4][4:1]对应的区内字线多路选择电路[4]内的第2闩锁32的输出信号l2[4][4:1]成为“0101b”的置位状态。

在本动作步骤后,确定作为隐藏层73的输出数据的b1~b7,成为作为第2闩锁32的输出信号而被置位为l2[3][4:1]、l2[4][3:1]的状态。

接着,在动作步骤177中,通过将latsr1从“l”电平转变为“h”电平、从“h”电平转变为“l”电平,区内字线多路选择电路21内的第2闩锁的输出信号l2[4:1][4:1]被作为分别连接的第1闩锁的输出信号l1[4:1][4:1]传送并置位,l1[1][4:1]成为“0110b”的置位状态,l1[2][3:1]成为“101b”的置位状态。

接着,在动作步骤178中,通过将字线选择信号wl_en从“l”电平转变为“h”电平,对于字线wl[3][4:1]、字线wl[4][3:1],选择分别与b1~b4、b5~b7对应的字线。

在该字线多路选择状态下,列选择电路14从存储器阵列10的多个位线中,将连接着保存有隐藏层73与输出层74的神经元70间的耦合权重71的耦合权重系数的存储器单元51的1条以上的位线连接到各个判定电路151、判定电路152。

判定电路151、152基于所连接的位线的电压状态或位线中流过的电流状态,分别将1个输出数据向y[2:1]输出。

由于在与判定电路153、154同时连接的位线的存储器单元51中没有保存耦合权重系数,所以输出数据y[4:3]是无效的输出数据,这里输出“00b”,将y[4:1]设为“0001b”而输出。

4个输出数据中的有效的输出数据c1、c2是y[2:1]的两个,对于作为无效的输出数据的y[4:3],由控制电路16进行忽视的控制。

通过以上说明的动作步骤170~178,如图15那样,在输入层72的输入数、隐藏层73的神经元数不是n(这里是4)的整数倍的情况下,也能够实现神经网络的运算动作。

以上说明了本发明的实施方式,但本发明的使用半导体存储元件的神经网络运算电路并不仅限定于上述例子,对于在不脱离本发明的主旨的范围内加以各种变更等的形态也是有效的。

例如,为了说明的容易化,设为判定电路的个数为4个、字线区的数量m为4个的例子而说明了具体的实施方式及动作,但整数n及m可以由任意的数构成。

此外,假设隐藏层73为1级而进行了说明,但在多级的情况下也能够进行同样的动作。

<第2实施方式>

图18是表示有关第2实施方式的使用半导体存储元件的神经网络运算电路的结构的图。

其为能够进行2个模式的切换动作的结构,该2个模式为,进行神经网络运算动作的神经网络运算动作模式和读出保存在存储器单元中的存储器数据的存储器动作模式。

字线多路选择电路181在神经网络运算动作模式时,进行将多个字线12中的任意的字线设为选择或非选择的动作,在存储器动作模式时,进行将多个字线12中的1条的字线设为选择或非选择的动作。

列选择电路184在神经网络运算动作模式时,选择多个位线13中的1条以上位线,并与配置了1以上的整数n个的判定电路151~15n各自连接,在存储器动作模式时,进行选择多个位线13中的1条以上并与读出电路188连接的动作。

控制电路186对字线多路选择电路181、列选择电路184及判定电路151~15n进行控制。

读出电路188是在存储器动作模式时将在由字线多路选择电路181选择的字线与由列选择电路184连接的位线的交点处连接的存储器单元的数据状态向存储器数据189输出的存储器的读出电路。

其他存储器阵列10、判定电路151~15n与在第1实施方式中说明的图1所示的结构同样。

图19是表示图18所示的字线多路选择电路181的结构的图。字线多路选择电路181是对图2所示的字线多路选择电路11还输入神经网络动作模式信号(模式切换信号)nn_en的结构,包括与m个多个字线区分别对应的多个区内字线多路选择电路191。

图20是表示图19所示的区内字线多路选择电路191的结构的图,表示m个区内字线多路选择电路191中的与wl[1][n:1]对应的区内字线多路选择电路[1]的结构。按字线区内的每个字线配置有第1闩锁31及第2闩锁的情况与在第1实施方式中说明的图3是同样的,但在图20的电路中,在第1闩锁31的输出信号上连接着切换电路203。

切换电路203在用“0”、“1”记载的2个输入中的“0”侧,分别连接有作为区选择信号area_sel[1]与区内字线控制信号in[n:1]的and输出的rsel[1][n:1],在“1”侧分别连接有作为第1闩锁31的输出的l1[1][n:1],当神经网络动作模式信号nn_en为“h”状态时,作为神经网络运算动作模式而输出连接在“1”侧的l1[1][n:1],在“l”状态时,作为存储器动作模式而输出rsel[1][n:1]。

在神经网络运算动作模式时,控制电路186将nn_en设为“h”状态。此时,通过进行与在第1实施方式中说明的动作同样的动作,进行神经网络的运算动作。

在存储器动作模式时,控制电路186将nn_en设为“l”状态,对于区选择信号area_sel[m:1]及区内字线控制信号in[n:1],分别将与作为读出对象的字线对应的信号设为“h”状态,将字线选择信号设为“h”状态。与作为读出对象的字线对应的区内字线多路选择电路191将1条字线设为选择状态。读出电路188进行基于由列选择电路连接的位线的电压状态或位线中流过的电流状态,将第1逻辑值或第2逻辑值作为存储器数据输出的读出判定动作。结果,能够得到对象的存储器单元的数据状态作为存储器数据189。

通过利用以上说明的有关第2实施方式的使用半导体存储元件的神经网络运算电路,除了在第1实施方式中实现的神经网络运算动作以外,还能够附加进行存储器单元的读出动作的功能。

以上,说明了本发明的实施方式,但本发明的使用半导体存储元件的神经网络运算电路并不仅限定于上述的例示,对于在不脱离本发明的主旨的范围内加以各种变更等的形态也是有效的。

例如,上述实施方式的使用半导体存储元件的神经网络运算电路是电阻变化型非易失性存储器(reram)的例子,但本发明在磁阻型非易失性存储器(mram)、相变型非易失性存储器(pram)、强电介质型非易失性存储器(feram)等的电阻变化型存储器以外的非易失性半导体存储元件中也能够应用。

产业上的可利用性

有关本发明的使用半导体存储元件的神经网络运算电路能够不导致因准备多套以往的判定电路等的周边电路整套带来的面积增大而实现大规模的神经网络的运算。

因而,具有能够以小面积实现神经网络运算电路的大规模集成化的效果,例如对于搭载有自己进行学习和判断的人工智能(ai:artificialintelligence)技术的半导体集成电路及搭载有这些的电子设备等是有用的。

标号说明

10存储器阵列

12字线

13位线

151~15n判定电路

17判定电路的输出数据y[n:1]

31第1闩锁

32第2闩锁

51存储器单元

70神经元

71耦合权重

72输入层

73隐藏层

74输出层

203切换电路

area_sel[m:1]字线区选择信号

in[n:1]区内字线控制信号

latsr1第1闩锁的控制信号

lats2、latr2第2闩锁的控制信号

wl_en字线选择信号

wl[m:1][n:1]字线

bl11~blnu位线

sl11~slnu源极线

t0晶体管

r电阻变化元件

nn_en神经网络动作模式信号

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1