运用于类神经网络系统的乘积累加电路的控制电路的制作方法

文档序号:23055835发布日期:2020-11-25 17:34阅读:124来源:国知局
运用于类神经网络系统的乘积累加电路的控制电路的制作方法

本发明是有关于一种运用于类神经网络系统的电路,且特别是有关于一种运用于类神经网络系统的乘积累加电路的控制电路。



背景技术:

近年来,类神经网络系统(neuralnetworksystem)已经广泛的运用在人工智能的用途(aiapplication)以提供智能处理能力,例如图形辨识(patternrecognition)、数据辨识(dataclassification)和物件侦测(objectdetection)。以下先简单介绍具备辨识数字能力的类神经网络系统。

请参照图1,其所绘示为辨识数字的类神经网络系统示意图。利用类神经网络系统100可运用于辨识手写板102上所书写的数字,其中手写板102是由784(28×28)个感应点(sensepoint)所建构而成。

类神经网络系统100包括输入层(inputlayer)110、隐藏层(hiddenlayer)120与输出层(outputlayer)130。基本上,手写板102上的每个感应点会对应到输入层的一个输入神经元(inputneuron),因此输入层110共有784(28×28)个输入神经元i0~i783,并可视为输入层110的大小(size)为784。

由于类神经网络系统100需要辨识0~9的十个数字,因此输出层130共有10个输出神经元(outputneuron)o0~o9,并可视为输出层130的大小(size)为10。

再者,类神经网络系统100的隐藏层120被设计为具有30个神经元h0~h29,亦即隐藏层130的大小(size)为30。因此,类神经网络系统100的尺寸为784-30-10。

每个神经元之间的连线皆代表一个神经元连接权重(neuronconnectionweight)。如图1所示,输入层110中的784个输入神经元i0~i783连接至隐藏层120的神经元h0,而对应的784个神经元连接权重为(ih0,0~ih783,0)。同理,输入层110中的784个输入神经元i0~i783对应地连接至隐藏层120的30个神经元h0~h29。因此,输入层110与隐藏层120之间有734×30个神经元连接权重(ih0,0~ih783,0)、(ih0,1~ih783,1)~(ih0,29~ih783,29)。

同理,隐藏层120的30个神经元h0~h29对应地连接至输出层130的10个神经元o0~o9。因此,隐藏层120与输出层130之间有30×10个神经元连接权重(ho0,0~ho29,0)~(ho0,9~ho29,9)。其中,类神经网络系统100中所有的神经元连接权重(ih0,0~ih783,0)~(ih0,29~ih783,29)与(ho0,0~ho29,0)~(ho0,9~ho29,9)即组合成为一权重群组(weightgroup)。

基本上,将前一层(previouslayer)的每个神经元数值乘以对应的神经元连接权重后并加总之后即可获得下一层(nextlayer)的神经元数值。以隐藏层120的神经元数值h0为例,同理,隐藏层120中其他神经元h1~h29也是以相同的方式来计算。

相同地,输出层130的输出神经元数值o0即为,而输出层130其他输出神经元数值o1~o9也是以相同的方式来计算。

在实际应用类神经网络系统100之前,需要进行训练程序(trainingphase),以获得权重群组中所有的神经元连接权重。举例来说,经过多次的迭代训练(iterationsoftraining)并获得所有神经元连接权重后,即可获得一个训练完成的(well-trained)类神经网络系统100。

在应用程序(applicationphase)时,即可在手写板102上写入数字,并由类神经网络系统100来进行辨识。如图1所示,于手写板102上写入数字7后,输出层130中的输出神经元o7数值最高,亦即类神经网络系统100辨识出数字7。

当然,图1的类神经网络系统100仅是一个范例。对于更复杂的类神经网络系统,可以使用多个隐藏层来让类神经网络系统具备更佳的辨识能力,而每个隐藏层的尺寸也不限定。

由于类神经网络系统中需要不断的进行乘法与加法运算,因此利用计算机系统可以进行上述的运算。举例来说,将所有的神经元连接权重储存于计算机系统的存储器中。接着,利用计算机系统的中央处理单元(cpu)来存取(access)存储器中的神经元连接权重,并进行乘法与加法运算后即可计算出所有神经元数值。

然而,当类神经网络系统的尺寸越大时,存储器的容量也必须增加以便用来储存神经元连接权重以及神经元数值。并且,由于中央处理单元必须不断地存取存储器中的数据,使得计算机系统的效能大幅地降低且耗费大量的功耗(powerconsumption)。

现今,针对类神经网络系统的特性,已发展出一种乘积累加电路(multiplyaccumulatecircuit,简称mac),用来计算神经元数值。

请参照图2a至图2c,其所绘示为乘积累加电路器的方块图(blockdiagram)、已知乘积累加电路组(macgroup)与控制电路示意图。

如图2a所示,乘积累加电路200中,每个输入数值x1~xn乘上对应的权重w1,j~wn,j后,将结果加总即获得输出数值yj。亦即,

应用到类神经网络系统时,乘积累加电路200中的权重w1,j~wn,j即为神经元连接权重。将前一层(previouslayer)的多个神经元数值即为输入数值,而乘积累加电路200的输出数值yj即为下一层(nextlayer)的神经元数值。

如图2b所示,乘积累加电路组250包括j个乘积累加电路251~25j,此乘积累加电路组250可以进行类神经网络系统中前一层大小(size)n,下一层的大小(size)j的运算。

以乘积累加电路251为例来作说明,乘积累加电路251包括n个电导(electricalconductance),其电导值(conductancevalue)分别为g1,1~gn,1。其中,每个电导皆由可变电阻(variableresistor)所组成。而调整后(tuned)的可变电阻,其电阻值(resistancevalue)的倒数即为电导值。举例来说,调整好的电阻值为5欧姆(ohm,ω),其电导值为0.2西门子(siemens,s)。再者,根据类神经网络系统中的神经元连接权重来调整对应的电导值g1,1~gn,1。

再者,乘积累加电路251的n个输入端接收n个输入电压v1~vn,每个电压值v1~vn分别代表前一层的n个神经元数值,乘积累加电路251的输出端产生一个输出电流i1代表下一层的神经元数值。乘积累加电路251的n个输入端与输出端之间连接对应的电导g1,1~gn,1。再者,乘积累加电路252~25j也有相同的结构,此处不再赘述。

于类神经网络系统的训练程序(trainingphase)时,可调整每个乘积累加电路251~25j中的所有n×j个电导值g1,1~gn,j作为n×j个神经元连接权重。

于类神经网络系统的应用程序(applicationphase)时,所有乘积累加电路251~25j的输入端接收n个输入电压v1~vn,所有输出端连接至接地电压(未绘示)。因此,所有乘积累加电路251~25j的输出端产生的输出电流i1~ij即代表下一层的j个神经元数值。

以乘积累加电路251为例,n个电导g1,1~gn,j接收对应的n个输入电压v1~vn后,产生n个电流i1,1~in,1。而叠加的(superposed)n个电流i1,1~in,1即为输出电流i1,亦即

如图2c所示,控制电路290包括数字模拟转换器(digital-to-analogconverter,dac)260、乘积累加电路组250、模拟数字转换器(analog-to-digitalconverter,adc)270。其中,数字模拟转换器260可将数字数值转换为模拟电压,模拟数字转换器270可将模拟电流转换成数字数值。

首先,前一层的n个神经元数值din_1~din_n输入数字模拟转换器260,并转换为对应的n个输入电压v1~vn。再者,乘积累加电路组250接收n个输入电压v1~vn,并产生j个输出电流i1~ij。之后,模拟数字转换器270接收j个输出电流i1~ij,并转换为下一层的j个神经元数值do_1~do_j。其中,神经元数值din_1~din_n、do_1~do_j皆为数字数值。

换言之,任意尺寸的类神经网络系统即可利用图2c的控制电路290来组成。以图1的类神经网络系统100为例,其尺寸为784-30-10。因此,类神经网络系统100包括二个控制电路。第一个控制电路接收输入层110的748个神经元数值i0~i783,并产生隐藏层120的30个神经元数值h0~h29。第二个控制电路接收隐藏层120的30个神经元数值h0~h29,并产生输出层130的10个神经元数值o0~o9。



技术实现要素:

本发明的目的在于提出一种全新架构的乘积累加电路,运用于类神经网络系统以及相关的控制电路。

本发明有关于一种运用于类神经网络系统的控制电路,包括:一第一乘积累加电路,包括n个忆阻性记忆胞,每个忆阻性记忆胞的一第一端接收一供应电压,每个忆阻性记忆胞的一第二端连接至一第一位线,该n个忆阻性记忆胞的控制端连接至对应的n条字线;一第一神经元数值储存电路,连接至该n条字线,该第一神经元数值储存电路包括n个寄存器对应地储存一第一层的n个神经元数值;一第一处理器,连接至该第一位线;其中,于该类神经网络系统的一应用程序时,该第一神经元数值储存电路根据该n个神经元数值的二进制码来控制该n条字线,使得该第一乘积累加电路产生多个第一位线电流经由该第一位线至该第一处理器,且该第一处理器利用模拟计算的方式,将该些第一位线电流转换为一输出电流后,再将该输出电流转换为一第二层的一第一神经元数值。

为了对本发明的上述及其他方面有更佳的了解,下文特举较佳实施例,并配合附图,作详细说明如下:

附图说明

图1为辨识数字的类神经网络系统示意图。

图2a至图2c为乘积累加电路器的方块图、已知乘积累加电路组与控制电路示意图。

图3a至图3c为忆阻性记忆胞的各种范例以及相关的记忆胞阵列。

图4为本发明的控制电路。

图5a为处理器示意图。

图5b为电流电压转换器的一实施例。

图5c与图5d为模拟数字转换器的二个实施例。

图6为处理器的另一实施例。

符号说明

100:类神经网络系统

102:手写板

110:输入层

120:隐藏层

130:输出层

200,251~25j,421~42j:乘积累加电路

250:乘积累加电路组

260:数字模拟转换器

270:模拟数字转换器

290,400:控制电路

310,320:忆阻性记忆胞

410,450:神经元数值储存电路

411~41n,451~45j:寄存器

420:记忆胞阵列

430:处理电路

431~43j,431':处理器

510,610:电压钳位电路

520,620:电流电压转换器

530,630:模拟计算电路

5300~530l-1,6300~630l-1:放大电路

540,640:模拟数字转换器

具体实施方式

众所周知,忆阻器(memristor)为一种电子元件,其具有电阻(resistor)的特性。再者,利用特定偏压来设定忆阻器,可使得忆阻器具有特定电阻值。当此特定偏压消失后,忆阻器的电阻值仍会维持在特定电阻值而不会改变。如果要再次改变忆阻器的电阻值,则需要提供其他的偏压至忆阻器。一般来说,忆阻器可运用于非易失性存储器,例如可变电阻式存储器(resistiverandomaccessmemory,简称rram或者reram)或者浮动栅晶体管(floatinggatetransistor)所构成的非易失性存储器。

请参照图3a至图3c,其所绘示为忆阻性记忆胞(memristivecell)的各种范例以及相关的记忆胞阵列(cellarray)。如图3a所示,忆阻性记忆胞310包括一开关晶体管m以及一忆阻器r。开关晶体管m的第一漏/源极端(drain/sourceterminal)作为忆阻性记忆胞310的第一端t1。开关晶体管m的第二漏/源极端连接至忆阻器r的第一端,忆阻器r的第二端作为忆阻性记忆胞310的第二端t2。再者,开关晶体管m的栅极端作为忆阻性记忆胞310的控制端tc。其中,经由提供特定偏压至忆阻性记忆胞310的三个端t1、t2、tc,可以控制忆阻器r的电阻值。

另外,图3a的忆阻性记忆胞310,其开关晶体管m为n型晶体管,当然开关晶体管也可以利用p型晶体管来实现。再者,忆阻器r也可以由n型浮动栅晶体管或者p型浮动栅晶体管来实现。

如图3b所示,忆阻性记忆胞320包括一开关晶体管m以及一浮动栅晶体管f。开关晶体管m的第一漏/源极端作为忆阻性记忆胞320的第一端t1。开关晶体管m的第二漏/源极端连接至浮动栅晶体管的第一漏/源极端,浮动栅晶体管的第二漏/源极端作为忆阻性记忆胞320的第二端t2。再者,开关晶体管m的栅极端作为忆阻性记忆胞320的控制端tc。经由提供特定偏压至忆阻性记忆胞320的三个端t1、t2、tc,可以控制特定数量的热载子(hotcarrier)注入浮动栅极(floatinggate),用以控制浮动栅晶体管的内电阻值(internalresistancevalue)。其中,热载子为电子。

另外,利用上述忆阻性记忆胞310、320或者其他形态的忆阻性记忆胞可以组成记忆胞阵列(cellarray)。以下以忆阻性记忆胞320为例来进行说明,当然记忆胞阵列也可以由其他忆阻性记忆胞所组成。

如图3c所示,记忆胞阵列350包括n×j个忆阻性记忆胞c11~cnj,每个忆阻性记忆胞c11~cnj中包括一开关晶体管m1,1~mn,j以及一浮动栅晶体管f1,1~fn,j。再者,每个忆阻性记忆胞c11~cnj的结构相同于图3b的忆阻性记忆胞320,其详细结构不再赘述。其中,每个忆阻性记忆胞c11~cnj的第一端皆接收供应电压vs。

在记忆胞阵列350中,第一行j个忆阻性记忆胞c11~c1j的控制端皆连接至字线wl1,而第二端连接至对应的位线bl1~blj。第二行j个忆阻性记忆胞c21~c2j的控制端皆连接至字线wl2,而第二端连接至对应的位线bl1~blj。同理,其他行的忆阻性记忆胞也有类似的连接关系,此处不再赘述。

基本上,记忆胞阵列350可运用于非易失性存储器用来储存或者读取数据。当于非易失性存储器的编程动作(programaction)或者读取动作(readaction)时,记忆胞阵列350中n条字线wl1~wln中仅有一条字线会动作(activated),其他字线则不会动作。举例来说,于编程动作时,字线wl1动作。此时,提供各种偏压至位线bl1~blj,使得不同数量的热载子注入第一行的j个忆阻性记忆胞c11~c1j中浮动栅晶体管f1,1~f1,j的浮动栅极,用以控制浮动栅晶体管f1,1~f1,j的内电阻值(internalresistancevalue)。

本发明利用图3c的记忆胞阵列350来实现乘积累加电路。实际上,本发明利用不同于非易失性存储器的记忆胞阵列350操作控制,将记忆胞阵列结合其他电路来形成控制电路,用来作为类神经网络系统的乘积累加电路。

请参照图4,其所绘示为本发明的控制电路。控制电路400包括第一神经元数值储存电路410、记忆胞阵列420、处理电路(processingcircuit)430与第二神经元数值储存电路450。

第一神经元数值储存电路410包括n个寄存器(register)411~41n,每一个寄存器411~41n储存前一层的n个神经元数值din_1~din_n。其中,n个神经元数值din_1~din_n为数字数值。

记忆胞阵列420包括n×j个忆阻性记忆胞c11~cnj,每个忆阻性记忆胞c11~cnj的结构相同于图3b的忆阻性记忆胞320。当然,记忆胞阵列420也可以由图3a的忆阻性记忆胞310组成,或者由其他结构的忆阻性记忆胞组成。以忆阻性记忆胞c11为例,忆阻性记忆胞c11包括一开关晶体管m1,1与一浮动栅晶体管f1,1。忆阻性记忆胞c11的第一端接收供应电压vs,第二端连接至位线bl1,控制端连接至字线wl1。

记忆胞阵列420的字线wl1~wln连接至第一神经元数值储存电路410。再者,记忆胞阵列420中,每一列(column)的n个忆阻性记忆胞组成一乘积累加电路。亦即,记忆胞阵列420包括j个乘积累加电路421~42j连接至n条字线wl1~wln,并连接至对应的位线bl1~blj。以乘积累加电路421为例,乘积累加电路421包括n个忆阻性记忆胞c11~cn1,n个忆阻性记忆胞c11~cn1的第一端接收供应电压vs,第二端连接至位线bl1,控制端连接至对应的字线wl1~wln。同理,其他乘积累加电路422~42j也有类似结构,此处不再赘述。

处理电路430包括j个处理器(processor)431~43j,连接至对应的位线bl1~blj。第二神经元数值储存电路450包括j个寄存器451~45j,每一个寄存器451~45j储存j个处理器431~43j输出的下一层的神经元数值do_1~do_j。其中,j个神经元数值do_1~do_j为数字数值。

根据本发明的实施例,记忆胞阵列420的n条字线wl1~wln直接根据n个神经元数值din_1~din_n运作。亦即,n个神经元数值din_1~din_n不需经过数字转模拟转换器(dac)的转换。记忆胞阵列420直接根据神经元数值din_1~din_n的二进制码(binarycode)来控制对应字线wl1~wln的动作或者不动作。换句话说,记忆胞阵列420中同时动作的字线wl1~wln数目可能会大于2条以上。

再者,由于神经元数值din_1~din_n为数字数值,乘积累加电路421~42j会根据神经元数值din_1~din_n的位数目(bitnumber)进行多次运作(operation)。举例来说,神经元数值din_1~din_n为8位(8bit),乘积累加电路421~42j会进行8次运作,并于对应的位线bl1~blj上产生8次的位线电流。

另外,处理电路430中的处理器431~43j,会多次接收对应位线bl1~blj上的位线电流,并利用模拟计算的方式来进行运算以产生神经元数值do_1~do_j,并储存至第二神经元数值储存电路450的j个寄存器451~45j。

以下仅以单一乘积累加电路421搭配单处理器431来说明乘积累加电路421与处理器431的运作。

请参照图5a,其所绘示为处理器示意图。处理器431包括一电压钳位电路(voltageclampingcircuit)510、电流电压转换器(currenttovoltageconverter)520、模拟计算电路(analogcomputingcircuit)530以及模拟数字转换器(adc)540。其中,模拟数字转换器540可将模拟电流转换成数字数值。

在处理器431中,电流电压转换器520连接至电压钳位电路510,用以接收位线电流ibl1,并产生转换电压va(convertedvoltage)。也就是说,电流电压转换器520的输入端可接收乘积累加电路421所产生的位线电流ibl1,并于电压转换器520的输出端产生转换电压va至模拟计算电路530。

电压钳位电路510包括一控制晶体管mc与一运算放大器512,控制晶体管mc的第一漏/源极端连接至位线bl1,控制晶体管mc的第二漏/源极端连接至电流电压转换器520的输入端,运算放大器512的正输入端接收一偏压电压(biasvoltage)vb,运算放大器512的负输入端连接至控制晶体管mc的第一漏/源极端,运算放大器512的输出端连接至控制晶体管mc的栅极端。因此,当乘积累加电路421在运作时,位线bl1会被固定在偏压电压vb。

当然,在实际的设计上,处理器431也可以将压钳位电路510予以省略,并将电流电压转换器520的输入端连接至位线bl1,使得电流电压转换器520直接接收乘积累加电路421产生的位线电流ibl1并产生转换电压va。

模拟计算电路530连接于电流电压转换器520与模拟数字转换器(adc)540之间。模拟计算电路530包括l个放大电路(amplifyingcircuit)5300~530l-1,每个放大电路皆有相同的构造。以放大电路5300为例,放大电路5300包括一开关sw0、一电容器c0、一放大晶体管(amplifyingtransistor)m0。开关sw0的第一端连接至电压转换器520的输出端,开关sw0的第二端连接至电容器c0的第一端以及放大晶体管m0的栅极端,电容器c0的第二端连接至接地端gnd,放大晶体管m0的第一漏/源端连接至节点d,放大晶体管m0的第二漏/源极端连接至接地端gnd,节点d连接至模拟数字转换器(adc)540。再者,模拟计算电路530接收开关信号s,而l个放大电路5300~530l-1中的开关sw0~swl-1根据开关信号s运作。

根据本发明的实施例,放大电路5300~530l-1中的放大晶体管m0~ml-1的长宽比(aspectratio)有固定的幂次方(power)关系。举例来说,放大晶体管m0的长宽比为20×(w/l)、放大晶体管m1的长宽比为21×(w/l),依此类推,放大晶体管ml-1的长宽比为2l-1×(w/l)。

首先,于类神经网络系统的训练程序(trainingphase)时,可调整每个乘积累加电路421中所有n个浮动栅晶体管f1,1~fn,1的内电阻值。举例来说,浮动栅晶体管f1,1~fn,1的内电阻值被调整为r1,1~rn,1。因此,在忆阻性记忆胞c11中,当字线wl1动作时,开关晶体管m1,1开启(turnon),忆阻性记忆胞c11产生的记忆胞电流(cellcurrent)i1,1即为[(vs-vb)/r1,1]。同理,乘积累加电路421中,其他忆阻性记忆胞c21~cn1分别产生不同的记忆胞电流i2,1~in,1。

另外,当字线wl1未动作时,忆阻性记忆胞c11不会产生记忆胞电流i1,1,亦即i1,1=0。同理,当其他字线wl2~wln未动作时,对应的忆阻性记忆胞c21~cn1不会产生记忆胞电流i2,1~in,1。

根据本发明的实施例,于类神经网络系统的应用程序(applicationphase)时,乘积累加电路421会根据神经元数值din_1~din_n的位数目(bitnumber)进行多次运作(operation)。每一次运作会产生一位线电流ibl1至处理器431,使得处理器431根据所有的位线电流ibl1来产生神经元数值do_1。

举例来说,神经元数值din_1~din_n为8位(8bits)。第一神经元数值储存电路410会依序提供神经元数值din_1~din_n内的一个位用来控制对应的n条字线wl1~wln,使得乘积累加电路421中的忆阻性记忆胞c11~cn1产生记忆胞电流i1,1~in,1,并且加总后成为位线电流ibl1经由位线bl1传递至处理器431。由于神经元数值din_1~din_n为8位(8bit),所以乘积累加电路421共会产生8个位线电流ibl1依序输入处理器431。在处理器431内部,电流电压转换器520依序将8个位线电流ibl1转换成8笔转换电压va并输入至模拟计算电路530,使得模拟计算电路530产生一输出电流iout。之后,模拟数字转换器(adc)540根据输出电流iout产生下一层的神经元数值do_1。

同理,当神经元数值din_1~din_n为l位(lbits)时,乘积累加电路421共会产生l个位线电流ibl1依序输入处理器431。在处理器431内部,电流电压转换器520依序将l个位线电流ibl1转换成l笔转换电压va并输入至模拟计算电路530。之后,模拟计算电路530即产生一输出电流iout至模拟数字转换器(adc)540,使得模拟数字转换器(adc)540产生下一层的神经元数值do_1。

以下更详细地介绍乘积累加电路421的运算。首先,第一神经元数值储存电路410会根据寄存器411~41n中每一个位的数值来控制对应的字线wl1~wln。

以寄存器411为例来作说明。寄存器411储存l位的神经元数值din_1,其二进制码(binarycode)由最高位(msb)至最低位(lsb)的数值依序为"a1,l-1、...、a1,1、a1,0"。当二进制码的数值为"1"时,则字线wl1会动作(activated)使得开关晶体管m1,1开启(turnon),并且忆阻性记忆胞c11输出记忆胞电流i1,1。反之,当二进制码的数值为"0"时,则字线wl1会不动作(inactivated)使得开关电晶体管m1,1关闭(turnoff),并且忆阻性记忆胞c11不输出记忆胞电流i1,1。当然,本发明也可以利用相反的控制方式来实现,亦即当二进制码的数值为"0"时,字线wl1会动作(activated);当二进制码的数值为"1"时,字线wl1会不动作(inactivated)。

另外,根据寄存器411提供二进制码(binarycode)的顺序,开关信号s控制模拟计算电路530中的开关sw0~swl-1。举例来说,寄存器411提供二进制码(binarycode)的顺序是由最高位(msb)至最低位(lsb),则开关信号s依序将开关swl-1~sw0控制为闭合状态(closestate)。换句话说,当寄存器411提供最高位(msb)时,开关信号s控制开关swl-1为闭合状态,其他开关swl-2~sw0则为开路状态(openstate)。依此类推,当寄存器411提供最低位(lsb)时,开关信号s控制开关sw0为闭合状态,其他开关swl-1~sw1则为开路状态。当然,如果寄存器411提供二进制码(binarycode)的顺序是由最低位(lsb)至最高位(msb)时,则开关信号s依序将开关sw0~swl-1控制为闭合状态。

在乘积累加电路421第一次运作时,第一神经元数值储存电路410提供寄存器411~41n的最高位(msb)来控制字线wl1~wln。亦即,第一神经元数值储存电路410根据寄存器411提供的"a1,l-1"来控制字线wl1,根据寄存器412提供的"a2,l-1"来控制字线wl2,依此类推,根据寄存器41n提供的"an,l-1"来控制字线wln。因此,乘积累加电路421第一次运作时所产生的位线电流ibl1即为,

接着,电流电压转换器520将位线电流ibl1转换成第一笔转换电压va至模拟计算电路530。由于开关swl-1为闭合状态,所以放大电路530l-1的电容器cl-1储存转换电压va。其中,转换电压va正比例于(proportional)位线电流ibl1。亦即,位线电流ibl1越大,转换电压va越大。

依此类推,在乘积累加电路421倒数第二次[第(l-1)次]运作时,第一神经元数值储存电路410提供寄存器411~41n的第二位来控制字线wl1~wln。亦即,第一神经元数值储存电路410根据寄存器411提供的"a1,1"来控制字线wl1,根据寄存器412提供的"a2,1"来控制字线wl2,依此类推,根据寄存器41n提供的"an,1"来控制字线wln。因此,乘积累加电路421第(l-1)次运作时所产生的位线电流ibl1即为,

接着,电流电压转换器520将位线电流ibl1转换成第(l-1)笔转换电压va并储存至放大电路5301的电容器c1。相同地,转换电压va正比例于位线电流ibl1。

同理,在乘积累加电路421最后一次[第l次]运作时,第一神经元数值储存电路410提供寄存器411~41n的最低位(lsb)来控制字线wl1~wln。亦即,第一神经元数值储存电路410根据寄存器411提供的"a1,0"来控制字线wl1,根据寄存器412提供的"a2,0"来控制字线wl2,依此类推,根据寄存器41n提供的"an,0"来控制字线wln。因此,乘积累加电路421第l次运作时所产生的位线电流ibl即为,

接着,电流电压转换器520将位线电流ibl1转换成第l笔转换电压va,并储存至放大电路5300的电容器c0。相同地,转换电压va正比例于位线电流ibl1。

当乘积累加电路421进行l次运作后,放大电路5300~530l-1的电容器c0~cl-1皆储存各自的转换电压va。接着,模拟数字转换器540接收致能信号en而开始运作,而模拟计算电路530产生输出电流iout,使得模拟数字转换器540根据输出电流iout产生下一层的神经元数值do_1。详细说明如下。

由于放大电路5300~530l-1中的放大晶体管m0~ml-1的长宽比(aspectratio)有固定的幂次方(power)关系,所以放大电路5300产生的放大电流i0与转换电压va之间的关系为i0=20×p1×va2,放大电路5301产生的放大电流i1与转换电压va之间的关系为i1=21×p1×va2,依此类推,放大电路530l-1产生的放大电流il-1与转换电压va之间的关系为il-1=2l-1×p1×va2。其中,放大晶体管m0~ml-1操作在饱和区(saturationregion),且p1为常数(constant)。举例来说,p1可为晶体管m0的元件参数(deviceparameter)。

因此,输出电流iout即为,

在上式中,由于c为常数,因此(c×ii,1)即为神经元连接权重。其中,i为整数且1≦i≦n。换言之,调整n个记忆胞电流i1,1~in,1即可调整对应的n神经元连接权重。另外,模拟数字转换器540将输出电流iout进行转换后确实可产生数字的神经元数值do_1。

请参照图5b,其所绘示为电流电压转换器的一实施例。电流电压转换器520包括二极管式连接(diodeconnected)的晶体管md。晶体管md的第一漏/源极端接收位线电流ibl1,晶体管md的第二/源极端连接至接地端gnd,晶体管md的栅极端与第一漏/源极端相互连接。因此,转换电压va=rmd×ibl1。其中,rmd即为二极管式连接的晶体管md的内阻值。当然本发明并不限定电流电压转换器的实际架构,除了图5b的电流电压转换器520之外,在此领域的技术人员也可以利用其他电流电压转换器来进行电流与电压之间的转换。

请参照图5c,其所绘示为模拟数字转换器的一实施例。模拟数字转换器540可将模拟电流转换成数字数值。模拟数字转换器540包括一晶体管me、一电阻r与一电压式模拟数字转换器(voltageanalogtodigitalconverter,adc_v)550。

晶体管me的第一漏/源极端接收供应电压vs,晶体管me的第二/源极端连接至节点c,晶体管me晶体管md的栅极端接收致能信号en。电阻r的第一端连接至节点c,第二端连接至节点d用以接收输出电流iout。另外,电压式模拟数字转换器550的输入端连接至节点c,电压式模拟数字转换器550的输出端产生数字的神经元数值do_1。

基本上,当致能信号en动作时(例如低电平的致能信号en),晶体管me开启(turnon),且节点c的电压vc即为r×iout。因此,电压式模拟数字转换器550即将节点c的电压vc转换为数字的神经元数值do_1。当然本发明并不限定模拟数字转换器的实际架构,除了图5c的模拟数字转换器530之外,在此领域的技术人员也可以利用其他模拟数字转换器来实现本发明。

请参照图5d,其所绘示为模拟数字转换器的另一实施例。模拟数字转换器540可将模拟电流转换成数字数值。模拟数字转换器540包括一电流镜555、一电阻r与一电压式模拟数字转换器(voltageanalogtodigitalconverter,adc_v)550。

电流镜555的电流接收端连接至节点d用以接收输出电流iout。电流镜555的控制端接收致能信号en。电流镜555的电流镜射端连接至节点c。电流镜555根据致能信号en,在电流镜555的电流镜射端产生输出电流iout。电阻r的第一端连接至节点c,第二端连接至接地端gnd。另外,电压式模拟数字转换器550的输入端连接至节点c,电压式模拟数字转换器550的输出端产生数字的神经元数值do_1。

另外,电流镜555包括晶体管me1~me4。晶体管me1的第一漏/源极端接收供应电压vs,晶体管me1的第二/源极端连接至晶体管me2的第一漏/源极端,晶体管me1的栅极端连接至节点d。晶体管me2的第二漏/源极端连接至节点d,晶体管me2的栅极端接收致能信号en。晶体管me3的第一漏/源极端接收供应电压vs,晶体管me3的第二/源极端连接至晶体管me4的第一漏/源极端,晶体管me3的栅极端连接至节点d。晶体管me4的第二漏/源极端连接至节点c,晶体管me4的栅极端接收致能信号en。

当致能信号en动作时(例如低电平的致能信号en),电流镜555被致能,使得节点c的电压vc为r×iout。因此,电压式模拟数字转换器550即将节点c的电压vc转换为数字的神经元数值do_1。

参照图6,其所绘示为处理器的另一实施例。此处理器431'是改变图5a中处理器431内晶体管的形态后所组成,亦即将p型晶体管改为n型晶体管,将n型晶体管改为p型晶体管。

如图6所示,处理器431'包括一电压钳位电路610、电流电压转换器620、模拟计算电路630以及模拟数字转换器640。其中,电压钳位电路610中包括一运算放大器612,且模拟计算电路630中包括l个放大电路6300~630l-1。再者,模拟数字转换器640可将模拟电流转换成数字数值。

基本上,处理器431'的连接关系与运作原理皆类似于图5a中处理器431,所以此处不再赘述其运作原理。

由以上的说明可知,本发明提出一种运用于类神经网络系统的乘积累加电路及其相关控制电路。在本发明的控制电路中,利用前一层神经元数值din_1~din_n的二进制码来依序控制记忆胞阵列420中的乘积累加电路421~42j。再者,处理电路430接收乘积累加电路421~42j所产生的多个位线电流,经过模拟计算电路运算之后,产生下一层的神经元数值do_1~do_j。

综上所述,虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中普通技术人员,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视所附的权利要求书所界定者为准。

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