JP5436327B2 - Electronic circuit and wiring system - Google Patents

Electronic circuit and wiring system Download PDF

Info

Publication number
JP5436327B2
JP5436327B2 JP2010113234A JP2010113234A JP5436327B2 JP 5436327 B2 JP5436327 B2 JP 5436327B2 JP 2010113234 A JP2010113234 A JP 2010113234A JP 2010113234 A JP2010113234 A JP 2010113234A JP 5436327 B2 JP5436327 B2 JP 5436327B2
Authority
JP
Japan
Prior art keywords
layer
data
neuron
output
memory
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.)
Expired - Fee Related
Application number
JP2010113234A
Other languages
Japanese (ja)
Other versions
JP2011242930A (en
Inventor
新次郎 豊田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honda Motor Co Ltd
Original Assignee
Honda Motor Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honda Motor Co Ltd filed Critical Honda Motor Co Ltd
Priority to JP2010113234A priority Critical patent/JP5436327B2/en
Publication of JP2011242930A publication Critical patent/JP2011242930A/en
Application granted granted Critical
Publication of JP5436327B2 publication Critical patent/JP5436327B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Logic Circuits (AREA)

Description

本発明は、電子回路及び配線方式に関する。   The present invention relates to an electronic circuit and a wiring system.

脳の構造や機能を模倣した電子回路はニューラルネット又はニューロコンピュータと呼ばれ、演算素子である人工ニューロン(以後、混乱する恐れが有る場合を除き、ニューロンと称する)が、多数個同時並列に動作する計算機である。以下、脳の構造や機能を模倣した電子回路またはソフトウェアによるシミュレータをニューラルネットと称する。   An electronic circuit that mimics the structure and function of the brain is called a neural network or neurocomputer, and many artificial neurons (hereinafter referred to as neurons unless otherwise confused) operate in parallel. It is a computer to do. Hereinafter, an electronic circuit or software simulator that mimics the structure and function of the brain is referred to as a neural network.

ノイマン型計算機は、固定アルゴリズムによる逐次処理に適している。一方、ニューラルネットは、脳が持つ特徴を模倣できることから、金属の溶接制御や大規模プラントの運転制御などのように、その制御アルゴリズムを正確に記述することが難しい用途に利用できると考えられている。また、大量かつ曖昧で、欠落や変動幅が大きいデータの並列処理(例えば、画像認識や音声認識など)にも利用できると考えられている。人間の脳並みの規模と機能を持つニューラルネットを実現できれば、ロボットや自動車を大幅に高機能化できるだけでなく、あらゆる機械に人との親和性が高いインターフェース機能を付加したり、過去のデータから未来を予測したりすることもできるようになると期待されている。   The Neumann computer is suitable for sequential processing using a fixed algorithm. On the other hand, since neural networks can mimic the features of the brain, they can be used for applications where it is difficult to accurately describe their control algorithms, such as welding control of metals and operation control of large-scale plants. Yes. It is also considered that it can be used for parallel processing (for example, image recognition, voice recognition, etc.) of a large amount of data that is ambiguous and has a large amount of loss or fluctuation. If a neural network with the same scale and function as a human brain can be realized, not only robots and cars can be greatly enhanced, but also an interface function with high compatibility with humans can be added to all machines, and past data can be used. It is expected to be able to predict the future.

ニューラルネットの実現方法は主に2通りある。1つは、通常のノイマン型コンピュータ上に、ソフトウェアでシミュレータを構築する方法である。この方法では脳研究から得られる知見を生かした精密なモデルを作り、ニューロン及びニューラルネットの内部状態を観察又は制御しながら、ニューラルネットを動作させることができる。しかし、通常のコンピュータを用いたシミュレーション法である為、大規模(10,000ニューロン以上)なニューラルネットを、実時間(全ニューロンが4[ms]程度の時間で演算する)で動かすのは困難である。また、ニューラルネットの特長である、小型/低消費電力というメリットを享受することができない。よって、この方法は小規模なニューラルネットを、主に研究目的で使う場合に適している。   There are mainly two ways to implement a neural network. One is a method of building a simulator by software on a normal Neumann computer. In this method, a precise model that makes use of knowledge obtained from brain research can be created, and the neural network can be operated while observing or controlling the internal states of the neurons and the neural network. However, since it is a simulation method using a normal computer, it is difficult to move a large-scale (10,000 neurons or more) neural network in real time (all neurons calculate in about 4 ms). It is. In addition, the advantage of small size / low power consumption, which is a feature of the neural network, cannot be enjoyed. Therefore, this method is suitable when a small-scale neural network is mainly used for research purposes.

もう1つの実現方法は、ニューロンを電子回路でモデル化し、それを多数個実装したハードウェアとして実現する方法である。この方法では、多数(10,000個程度)のニューロンを並列に実時間動作させられる可能性が有る。   The other realization method is a method in which a neuron is modeled by an electronic circuit and is implemented as hardware in which a large number of the neurons are mounted. In this method, there is a possibility that a large number (about 10,000) neurons can be operated in parallel in real time.

従来のニューラルネットワークの例として、図21を用いてニューラルネットの一部を説明する。図21は、ニューラルネットの一部を表した模式図である。L1層はデータ入力層であり、ここには、例えば4ビット幅の入力データを、4[ms]周期のパルス列に変換するニューロン210(iは1から1,000までの整数)が、1,000個存在する。L2層はデータ処理層であり、データを演算処理するニューロン212(jは1から900までの整数)が、例えば900個存在する。 As an example of a conventional neural network, a part of the neural network will be described with reference to FIG. FIG. 21 is a schematic diagram showing a part of a neural network. The L1 layer is a data input layer. For example, a neuron 210 i (i is an integer from 1 to 1,000) that converts 4-bit wide input data into a pulse train having a period of 4 [ms] is 1 There are 1,000. The L2 layer is a data processing layer, and there are, for example, 900 neurons 212 j (j is an integer from 1 to 900) for processing data.

各ニューロン210からは1本の出力信号線211が出ている。出力信号線211は、ニューロン212の個数が900なので最大900に分岐し、シナプス結合213i,jを介してニューロン212と接続される。従って、シナプス結合213i,jはニューロン2121個当たり最大1,000個存在する。各信号線211で伝送されるデータa(L1層のi番目のニューロン210の出力)は1ビット信号である。 Each neuron 210 i has one output signal line 211 i . Since the number of neurons 212 j is 900, the output signal line 211 i branches to a maximum of 900 and is connected to the neuron 212 j via the synapse connection 213 i, j . Accordingly, there are a maximum of 1,000 synapse connections 213 i, j per neuron 212 j . Data a i (output of the i-th neuron 210 i in the L1 layer) transmitted through each signal line 211 i is a 1-bit signal.

各シナプス結合213i,jは、例えば8ビット幅の重みデータwi,j(L1層のニューロン210からの信号を受け取るL2層のj番目のニューロン212のシナプス結合の重み)を保持しており、aとの積a×wi,jを計算する。各ニューロン212では、それぞれに付属するシナプス結合で計算された最大1,000個の積a×wi,jのiについての総和を計算する。 Each synapse connection 213 i, j holds, for example, 8-bit width weight data w i, j (the weight of the synapse connection of the jth neuron 212 j in the L2 layer that receives a signal from the neuron 210 i in the L1 layer). and which calculates the product a i × w i, j and a i. Each neuron 212 j calculates the total sum of i of up to 1,000 products a i × w i, j calculated by the synaptic connections attached to each neuron 212 j .

そして、総和の値が予め決められている閾値θを超えると、その出力信号線214を1にし、閾値θを超えない場合は、その出力信号線214を0にする。これら一連の演算は4[ms]以内で終了することが理想である。上記のニューラルネットはニューロン数が1,900と少ないので、当該ニューラルネットをソフトウェアでシミュレーションする場合でも、当該ニューラルネットを電子回路で実装する場合でも、4[ms]でL2層のニューロン212それぞれが、前記一連の演算を1回行うことが可能である。 When the total value exceeds a predetermined threshold value θ, the output signal line 214 j is set to 1, and when the total value does not exceed the threshold value θ, the output signal line 214 j is set to 0. Ideally, a series of these operations is completed within 4 [ms]. Since the neural network has a small number of neurons of 1,900, whether the neural network is simulated by software or the neural network is implemented by an electronic circuit, each of the neurons 212 j in the L2 layer in 4 [ms]. However, the series of operations can be performed once.

以上の説明から明らかなように、L1層の1,000個のニューロン210は、L2層の900個のニューロン212と総当たりで結合するので、結合に使われるシナプス結合213i,jの個数は最大90万に達し、配線211の分岐の総数も最大90万に達する。 As is clear from the above description, the 1,000 neurons 210 i in the L1 layer are connected to the 900 neurons 212 j in the L2 layer in a round-robin manner, so that the synapse connection 213 i, j used for the connection The number reaches a maximum of 900,000, and the total number of branches of the wiring 211 i also reaches a maximum of 900,000.

ここで、実際のニューラルネットでは使われる用途や、学習の結果によって不要なシナプス結合が取り除かれるので、各ニューロン210の出力がどのニューロン212とシナプス結合213i,jを作るかは多様である。つまり、ニューロン210が選択的にニューロン212とシナプス結合213i,jを作れる機構が必要であり、これが配線問題をより困難にしている。 Here, since an unnecessary synapse connection is removed depending on a use used in an actual neural network and a learning result, it is various which neuron 212 j and synapse connection 213 i, j an output of each neuron 210 i forms. is there. That is, a mechanism is required that allows the neuron 210 i to selectively create the synapse connection 213 i, j with the neuron 212 j , which makes the wiring problem more difficult.

人間の脳では1個のニューロンが1,000〜10,000個のシナプス結合を持つと言われているので、人工ニューロンの数が増加した時に必要になる配線の数は、ニューロン数が1,000以下ではほぼ2乗に比例し、10,000以上ではほぼ1乗に比例すると考えられる。従って、脳並みの1億ニューロン規模のニューラルネットを実現しようとすると、1,000億〜1兆本程度の配線が必要になると推測できる。こうした膨大な配線を適当なルール、又は環境の下で適切に行う必要がある。   In the human brain, it is said that one neuron has 1,000 to 10,000 synaptic connections. Therefore, when the number of artificial neurons increases, the number of wirings required is 1, If it is less than 000, it is almost proportional to the square, and if it is 10,000 or more, it is considered to be almost proportional to the first power. Therefore, it can be estimated that about 100 billion to 1 trillion wirings are required to realize a neural network having a brain level of 100 million neurons. It is necessary to appropriately carry out such an enormous amount of wiring under appropriate rules or environments.

大規模なニューラルネットを実現する際に、ニューロン間の配線が問題になるという事情から、ニューロン間の配線を減らす方法が既に幾つか考案されている。例えば、特許文献1がある。この技術ではL1層内の全ニューロンの出力データを時分割多重化して1本の共通信号線に送出し、それをL2層内の全ニューロンが受け取って演算に使用している。この方法を用いると、2つの層を結ぶ信号線が1本で済むという顕著な効果がある。   In order to realize a large-scale neural network, several methods for reducing wiring between neurons have already been devised because wiring between neurons becomes a problem. For example, there is Patent Document 1. In this technique, the output data of all neurons in the L1 layer are time-division multiplexed and sent to one common signal line, which is received by all neurons in the L2 layer and used for computation. When this method is used, there is a remarkable effect that only one signal line connecting the two layers is required.

一方、中規模(10,000ニューロン程度)のニューラルネットは、回路の安定性や計算精度の観点からデジタル回路で作られることが多い。この規模のニューラルネットではニューロン間のデータ転送に、カリフォルニア工科大学のMead教授のグループが考案したAER(Address Event Representation)が使われることが多い(例えば、非特許文献1)。   On the other hand, a medium-scale (about 10,000 neurons) neural network is often made of a digital circuit from the viewpoint of circuit stability and calculation accuracy. In a neural network of this scale, AER (Address Event Representation) devised by a group of Professor Mead of California Institute of Technology is often used for data transfer between neurons (for example, Non-Patent Document 1).

図22を用いて、AERのフォーマットを説明する。図22は、AERにおいてニューロン間のデータ転送に使うデータフォーマットである。AERではニューロンに番号(Local address)を割り当て、そのニューロンが実装されているLSI(Large Scale Integration)、PCB(Printed―Circuit Board)又は機器等にも番号(Node address)を割り当てる。   The format of AER will be described with reference to FIG. FIG. 22 shows a data format used for data transfer between neurons in the AER. In the AER, a number (Local address) is assigned to a neuron, and a number (Node address) is assigned to an LSI (Large Scale Integration), a PCB (Printed-Circuit Board), or a device in which the neuron is mounted.

例えば、L1層として256個のニューロンを内蔵するLSIを4個搭載したPCBを仮定すると、以下の方法で1,024個のニューロンを識別できる。それは、4個のLSIを区別する為の2ビットのNode addressと、各LSI内の256個のニューロンを区別する8ビットのLocal addressとを組み合わせて、10ビットで1,024個のニューロンを識別するというものである。   For example, assuming a PCB on which four LSIs incorporating 256 neurons are mounted as the L1 layer, 1,024 neurons can be identified by the following method. It combines 10 bits to 1,024 neurons by combining 2 bits Node address to distinguish 4 LSIs and 8 bits Local address to distinguish 256 neurons in each LSI. It is to do.

L2層についても同様に、256個のニューロンを内蔵するLSIを4個搭載したPCBを仮定すると、L2層のニューロンは10ビットのアドレス情報で識別できる。
L1層の或るニューロン210から、L2層の或るニューロン212にデータを送る場合を考える。ニューロン212のアドレス指定に10ビット必要である。Payloadは2通りの使い方ができる。
Similarly for the L2 layer, assuming a PCB on which four LSIs incorporating 256 neurons are mounted, the neurons in the L2 layer can be identified by 10-bit address information.
Consider a case in which data is sent from a certain neuron 210 i in the L1 layer to a certain neuron 212 j in the L2 layer. Neurons 212 j addressing to be 10 bits required. Payload can be used in two ways.

第1の方法は、ニューロン210の識別番号ID(10[bit])をPayloadとする方法である。ニューロン212では、受け取った識別番号IDをインデックス情報として用いてシナプス結合の重みを格納するメモリにアクセスし、シナプス結合の重みui,jを決定できる。この方法では、一度のデータ伝送にアドレス情報を2つ送ることになるので、1つのデータ量は20[bit](=10[bit]+10[bit])になる。 The first method is a method in which the identification number ID i (10 [bit]) of the neuron 210 i is Payload. The neuron 212 j uses the received identification number ID i as index information to access a memory that stores synapse connection weights , thereby determining the synapse connection weights u i, j . In this method, two pieces of address information are sent for one data transmission, so one data amount is 20 [bit] (= 10 [bit] +10 [bit]).

平均してL1層からL2層の半分のニューロンにデータを送るとすると、全体では 20[bit]×(1,024÷2)×1,024=10,485,760[bit]=1.3[MB]のデータ伝送が必要になる。これを4[ms]で実行するには1.3[MB]÷4[ms]=328[MBps]のデータ転送速度が必要である。   On average, if data is sent from the L1 layer to half of the neurons in the L2 layer, the total is 20 [bit] × (1,024 ÷ 2) × 1,024 = 10,485,760 [bit] = 1.3 [MB] data transmission is required. In order to execute this in 4 [ms], a data transfer rate of 1.3 [MB] ÷ 4 [ms] = 328 [MBps] is required.

また、L1層ではL2層のどのニューロンにデータ転送するかを記憶していなければならないので、10[bit]×(1,024÷2)×1,024=5,242,880[bit]=655[KB]のメモリが必要になる。   Further, in the L1 layer, it is necessary to store which neuron in the L2 layer to transfer data, so 10 [bit] × (1,024 ÷ 2) × 1,024 = 5,242,880 [bit] = A memory of 655 [KB] is required.

第2の方法は、Payloadとしてa×ui,jを計算して送る方法である。aが1ビットでui,jが8ビットの場合、a×ui,jは8ビットなので、1つのデータ量は18[bit](=10[bit]+8[bit])になる。
従って、全体のデータ転送量は、18[bit]×(1,024÷2)×1,024=9,437,184[bit]=1.2[MB]である。全体のデータ転送量は、前記第1の方法の転送量よりも若干少なくなる。しかし、L1層に655[KB]のメモリが必要なことは変わらない。
The second method is a method of calculating and sending a i × u i, j as Payload. When a i is 1 bit and u i, j is 8 bits, since a i × u i, j is 8 bits, one data amount is 18 [bit] (= 10 [bit] +8 [bit]). .
Therefore, the total data transfer amount is 18 [bit] × (1,024 ÷ 2) × 1,024 = 9,437, 184 [bit] = 1.2 [MB]. The total data transfer amount is slightly smaller than the transfer amount of the first method. However, the need for 655 [KB] memory in the L1 layer remains the same.

特公平5−47870号公報Japanese Patent Publication No. 5-47870

Serrano-Gotarredona R, Oster M, Lichtsteiner P, Linares-Barranco A, Paz-Vicente R, Gomez-Rodriguez F, Camunas-Mesa L, Berner R, Rivas-Perez M, Delbruck T, Liu SC, Douglas R, Hafliger P, Jimenez-Moreno G, Civit Ballcels A, Serrano-Gotarredona T, Acosta-Jimenez AJ, Linares-Barranco B, "CAVIAR: a 45k neuron, 5M synapse, 12G connects/s AER hardware sensory-processing- learning-actuating system for high-speed visual object recognition and tracking." , IEEE Transactions on Neural Networks, Vol. 20, No.9, September, pp.1417-38, 2009.Serrano-Gotarredona R, Oster M, Lichtsteiner P, Linares-Barranco A, Paz-Vicente R, Gomez-Rodriguez F, Camunas-Mesa L, Berner R, Rivas-Perez M, Delbruck T, Liu SC, Douglas R, Hafliger P , Jimenez-Moreno G, Civit Ballcels A, Serrano-Gotarredona T, Acosta-Jimenez AJ, Linares-Barranco B, "CAVIAR: a 45k neuron, 5M synapse, 12G connects / s AER hardware sensory-processing- learning-actuating system for high-speed visual object recognition and tracking. ", IEEE Transactions on Neural Networks, Vol. 20, No.9, September, pp.1417-38, 2009.

ニューラルネットにはニューロン数が多くなると、ニューロン間の配線が膨大になるという基本的な問題が有る為に、従来技術では数万ニューロン程度を実現するのが限界であり、人間の脳並みの規模(100億から1000億ニューロン)を実現する見通しは全く立っていない。   The neural network has the basic problem that the wiring between neurons becomes enormous when the number of neurons increases, so the conventional technology has a limit of realizing about tens of thousands of neurons, and the scale of a human brain There is no prospect of realizing (10 billion to 100 billion neurons).

人間の脳には100億から1,000億のニューロンがあるが、実際に使われているのはその数%と言われているので、人工ニューロンの個数が1億以上あれば、少なくとも脳機能の一部(図形認識や言語認識など)をかなり正確に模倣できると思われる。   There are 10 to 100 billion neurons in the human brain, but it is said that only a few percent are actually used, so if there are more than 100 million artificial neurons, at least brain function It seems that it can imitate a part of (such as figure recognition and language recognition) fairly accurately.

しかしながら、次に述べる問題により、特許文献1の技術を用いて脳を模倣する1億ニューロン規模のニューラルネットを構築することは困難である。
第1の問題点は、L1層とL2層の結合形式が、全てのニューロン対全てのニューロンに固定されている点である。シナプス結合を作りたくないところは、シナプス結合の重みを0にすることで、実質的に結合をなくすことができるとされているが、このままでは非常に無駄が多い。
However, due to the problems described below, it is difficult to construct a 100 million neuron-scale neural network that mimics the brain using the technique of Patent Document 1.
The first problem is that the connection form of the L1 layer and the L2 layer is fixed to all neurons versus all neurons. Where it is not desired to create synaptic connections, it is said that the synaptic connection weight can be substantially eliminated by setting the synaptic connection weight to 0, but this is very wasteful.

1億ニューロンのニューラルネットを例えば、大脳皮質のモデルとして用いられる6層構造で実現し、各層に同数のニューロンを割り振るとすると、1層当たり約1,700万ニューロンになる。このデータを受け取るL2層中の1個のニューロンにとっては、約1,700万個中の1万個以下のデータにだけ意味があり、残りの約1,699万個のデータを無視しなければならない。無視すべきデータはL2層のニューロン毎に異なるので、この為に膨大な回路及び、L2層だけで8[bit]×1,699万×1,700万=289[TB]ものメモリが必要になる。   For example, if a neural network of 100 million neurons is realized by a six-layer structure used as a model of the cerebral cortex and the same number of neurons is allocated to each layer, the number of neurons is approximately 17 million neurons. For one neuron in the L2 layer that receives this data, only less than 10,000 of the approximately 17 million data are meaningful, and the remaining approximately 16,699,000 data must be ignored. Don't be. Since the data that should be ignored differs for each neuron of the L2 layer, a huge circuit and a memory of 8 [bit] × 16.99 million × 17 million = 289 [TB] are required only for the L2 layer. Become.

第2の問題点は、共通信号線のファンイン(入力数)とファンアウト(出力数)が膨大になる点である。第1の問題点と同様に1億ニューロンのニューラルネットを6層構造で実現したとすると1層当たり約1,700万ニューロンになる。つまり、共通バスのファンインは約1,700万であり、ファンアウトも約1,700万ということである。これを電子回路で実現するのは非常に難しい。   The second problem is that the fan-in (number of inputs) and fan-out (number of outputs) of the common signal line become enormous. As in the first problem, if a neural network of 100 million neurons is realized with a six-layer structure, there are about 17 million neurons per layer. That is, the fan-in of the common bus is about 17 million and the fan-out is about 17 million. It is very difficult to realize this with an electronic circuit.

また、約1,700万個のデータを作りだす回路部は物理的にかなり大きくなるので、無理に1本に纏めようとすると数段階に分けて纏め処理をしなければならず、その回路が膨大になる。共通信号線を1本ではなく数本にすることも考えられるが、そうすると共通線毎にどのニューロンを属させるかが問題となる。また異なる共通線を跨ぐ通信をどうするかも大きな問題になり、それを解決するのは困難である。   In addition, since the circuit unit that generates about 17 million pieces of data is physically quite large, if it is forced to combine it into one, it must be divided into several stages and the circuit is enormous. become. Although it is conceivable to use several common signal lines instead of one, it becomes a problem which neuron belongs to each common line. In addition, how to communicate over different common lines becomes a big problem, and it is difficult to solve it.

これらの問題から特許文献1の技術は、数十から数百ニューロン程度の小規模ニューラルネットには適しているが、数千ニューロン以上のニューラルネットへの適用は難しい。   Because of these problems, the technique of Patent Document 1 is suitable for a small-scale neural network having several tens to several hundreds of neurons, but is difficult to apply to a neural network having several thousand neurons or more.

一方、AER法ではニューロン間の接続に大量のデータ伝送が必要であり、更に送信元に宛先アドレスを記憶するメモリが必要になる。中規模ニューラルネットでは、伝送すべきデータ量がニューロン数のほぼ2乗に比例し、またアドレスのビット数も増える。   On the other hand, the AER method requires a large amount of data transmission for connection between neurons, and further requires a memory for storing a destination address in the transmission source. In a medium-scale neural network, the amount of data to be transmitted is proportional to the square of the number of neurons, and the number of bits of the address increases.

例えばL1層とL2層がそれぞれ10,000ニューロンになると、アドレスが14ビット以上必要になるので通信速度は、(14[bit]+8[bit])×5,000×10,000÷4[ms]=34.4[GB/s]必要になる。また、L1層には(14[bit]+8[bit])×5,000×10,000=138[MB]のメモリが必要になる。
このような事情から、AER法は数万ニューロン程度かつ、各ニューロンが数百個程度のシナプス結合を持つニューラルネットまでしか適用できなかった。
For example, if the L1 layer and the L2 layer each have 10,000 neurons, an address of 14 bits or more is required, so the communication speed is (14 [bit] +8 [bit]) × 5,000 × 10,000 ÷ 4 [ms. ] = 34.4 [GB / s] is required. Further, the memory of (14 [bit] +8 [bit]) × 5,000 × 10,000 = 138 [MB] is required for the L1 layer.
For this reason, the AER method can be applied only to a neural network having about several tens of thousands of neurons and each neuron having several hundred synaptic connections.

そこで本発明は、上記問題に鑑みてなされたものであり、ニューロン間の配線数を少なくする電子回路及び配線方式を提供することを課題とする。   Therefore, the present invention has been made in view of the above problems, and an object thereof is to provide an electronic circuit and a wiring system that reduce the number of wirings between neurons.

上記の課題を解決するために、請求項1に記載した発明は、複数の層と、前記層に存在する複数の人工ニューロンと、前記人工ニューロンと他の層に存在する人工ニューロンとを結びつけるシナプス結合とを有し、前記複数の層のうち第1の層の人工ニューロンの出力データと前記シナプス結合の重み情報との積を計算し、前記積を累積した結果に応じた出力を第2の層の人工ニューロンが出力するニューラルネットワークを実現する電子回路であって、二次元以上の仮想空間において当該仮想空間を任意の数の任意のポリトープ(例えば、実施形態における正六角形のセルCN)で分割し、前記ポリトープ毎に配置される回路ユニット(例えば、実施形態における回路ユニット10)と、隣接するポリトープに配置された前記回路ユニット間で、前記第1の層の人工ニューロンの出力データを送信する配線と、を備え、
前記回路ユニットは、第1の層に属する複数の人工ニューロンと第2の層に属する複数の人工ニューロンとを実装し、第1の層の人工ニューロンは、自身の出力データを時分割多重化し、該時分割多重化したデータを同一回路ユニット内の第2の層の人工ニューロンと、自身のポリトープに隣接するポリトープに配置された回路ユニットの第2の層の人工ニューロンとへ出力し、前記同一回路ユニット内の第2の層の人工ニューロンは、同一回路ユニット内の第1の層の人工ニューロンが出力した出力データと、自身のポリトープに隣接するポリトープに配置された回路ユニットの第1の層の人工ニューロンが出力した出力データとを入力データとして処理することを特徴とする電子回路である。
これにより、前記ニューロン間の配線に必要な信号線を、1つのポリトープ当り自身のポリトープに隣接するポリトープへの出力信号線1本にすることができる。
In order to solve the above problem, the invention described in claim 1 is a synapse that connects a plurality of layers, a plurality of artificial neurons existing in the layers, and the artificial neurons and artificial neurons existing in other layers. A product of the output data of the artificial neuron of the first layer of the plurality of layers and the weight information of the synaptic connection, and outputs an output corresponding to a result of accumulating the product to the second An electronic circuit that realizes a neural network that outputs an artificial neuron of a layer, and divides the virtual space by an arbitrary number of arbitrary polytopes (for example, regular hexagonal cells CN in the embodiment) in a virtual space of two or more dimensions And a circuit unit (for example, the circuit unit 10 in the embodiment) arranged for each polytope and the circuit unit arranged in an adjacent polytope. In, and a wiring for transmitting the output data of the artificial neurons of the first layer,
The circuit unit implements a plurality of artificial neurons belonging to the first layer and a plurality of artificial neurons belonging to the second layer, and the first layer artificial neurons time-division multiplex their output data, The time division multiplexed data is output to the second layer artificial neuron in the same circuit unit and the second layer artificial neuron of the circuit unit arranged in the polytope adjacent to its own polytope. The artificial neurons of the second layer in the circuit unit include the output data output from the artificial neurons of the first layer in the same circuit unit and the first layer of the circuit unit arranged in the polytope adjacent to its own polytope. In this electronic circuit, the output data output from the artificial neuron is processed as input data.
As a result, a signal line necessary for wiring between the neurons can be one output signal line to a polytope adjacent to its own polytope per one polytope.

請求項2に記載した発明は、請求項1に記載の発明において、前記回路ユニットは、前記第1の層の人工ニューロンの出力データを入力する必要がないシナプス結合では、その重み情報を0にすることを特徴とする。
これにより、第1の層の人工ニューロンの出力データを受けとる必要性の有無に拘わらず、第2の層の人工ニューロンに共通に前記第1の人工ニューロンからの出力データを与えることができ、前記第1の層の人工ニューロンからの情報が不要な前記第2の層の人工ニューロンへの配線をなくすことなく、当該第1の層の人工ニューロンから第2の層の人工ニューロンへの入力を遮断することができる。
In the invention described in claim 2, in the invention described in claim 1, in the synapse connection in which the circuit unit does not need to input the output data of the artificial neuron of the first layer, the weight information is set to 0. It is characterized by doing.
Thereby, the output data from the first artificial neuron can be given in common to the second layer artificial neuron regardless of the necessity of receiving the output data of the first layer artificial neuron, The input from the first layer artificial neuron to the second layer artificial neuron is blocked without losing the wiring to the second layer artificial neuron that does not require information from the first layer artificial neuron. can do.

請求項3に記載した発明は、請求項1または請求項2に記載の発明において、前記仮想空間は仮想二次元平面で構成し、前記ポリトープは正六角形で構成し、前記仮想二次元平面を任意の個数の前記正六角形で分割することを特徴とする。
これにより、仮想二次元平面を正六角形で隙間なく埋めることができる。また、仮想二次元平面内で各人工ニューロンは、ほぼ等距離内の人工ニューロンとの間でシナプス結合を作ることができる。
The invention described in claim 3 is the invention according to claim 1 or 2, wherein the virtual space is configured by a virtual two-dimensional plane, the polytope is configured by a regular hexagon, and the virtual two-dimensional plane is arbitrarily set. It divides | segments by the said regular hexagon of the number.
As a result, the virtual two-dimensional plane can be filled with regular hexagons without gaps. In addition, each artificial neuron in the virtual two-dimensional plane can form a synaptic connection with an artificial neuron within approximately the same distance.

請求項4に記載した発明は、請求項1から請求項3のいずれかに記載の発明において、前記回路ユニットは、第2の層の人工ニューロンの出力データを第2の層または第1の層の人工ニューロンへの入力データとすることを特徴とする。
これにより、或る層のニューロンの出力データを同じ層または該層より前の層のニューロンへフィードバックすることができる。
According to a fourth aspect of the present invention, in the invention according to any one of the first to third aspects, the circuit unit outputs the output data of the artificial neuron of the second layer to the second layer or the first layer. It is characterized by being input data to the artificial neuron.
Thereby, the output data of a neuron in a certain layer can be fed back to the neuron in the same layer or a layer before the layer.

請求項5に記載した発明は、請求項1から請求項4のいずれかに記載の発明において、前記回路ユニットは、第1の層の人工ニューロンの入力データを保持する第1の記憶部(例えば、実施形態におけるメモリ21)と、前記シナプス結合の重み情報を保持する第2の記憶部(例えば、実施形態におけるメモリ25)と、前記第1の層の人工ニューロンが前記入力データを時分割多重化して出力データとして同一回路ユニット内の第2の層の人工ニューロンに出力し、前記出力データを隣接するポリトープに配置された回路ユニット内の第2の層の人工ニューロンに出力する出力回路(例えば、実施形態におけるパルス列変調回路22)と、前記出力データと前記重み情報との積を算出する乗算回路(例えば、実施形態における乗算器50)と、前記積を一方の入力信号としてその総和を算出する加算器(例えば、実施形態における加算器27)と、前記総和と所定の閾値との比較結果に基づいて、第2の層の人工ニューロンの出力データを決定する大小比較器(例えば、実施形態における大小比較器29)と、を備えることを特徴とする。
これにより、第1の層に入力された情報に基づくデータ処理を、高速に実行することができる。
According to a fifth aspect of the present invention, in the invention according to any one of the first to fourth aspects, the circuit unit includes a first storage unit that holds input data of the first layer of artificial neurons (for example, The memory 21) in the embodiment, the second storage unit (for example, the memory 25 in the embodiment) that holds the weight information of the synapse connection, and the artificial neuron in the first layer time-division multiplex the input data. Output data to the second layer artificial neuron in the same circuit unit and output the output data to the second layer artificial neuron in the circuit unit arranged in the adjacent polytope (for example, The pulse train modulation circuit 22) in the embodiment and a multiplication circuit that calculates the product of the output data and the weight information (for example, the multiplier 50 in the embodiment) Based on the comparison result between the adder (for example, the adder 27 in the embodiment) that uses the product as one input signal and calculates the sum, and the sum and the predetermined threshold, And a magnitude comparator for determining output data (for example, the magnitude comparator 29 in the embodiment).
Thereby, the data processing based on the information input to the first layer can be executed at high speed.

請求項6に記載した発明は、請求項1から請求項5のいずれかに記載の発明において、前記回路ユニットは、第1の層の人工ニューロンの入力データを保持する第1の記憶部(例えば、実施形態におけるメモリ21)と、前記シナプス結合の重み情報を保持する第2の記憶部(例えば、実施形態におけるメモリ25)と、前記第1の層の人工ニューロンの出力データと前記重み情報との積を算出する乗算回路(例えば、実施形態におけるアンドゲート26)と、前記乗算回路が算出した積のうち所定の第1の層の人工ニューロンに対応する積を定数倍した値を算出する演算回路(例えば、実施形態における1ビット左シフタ36)と、前記定数倍した値を一方の入力信号としてその総和を算出する加算器(例えば、実施形態における加算器27)と、前記総和と所定の閾値との比較結果に基づいて、第2の層の人工ニューロン群の出力データを決定する大小比較器(例えば、実施形態における大小比較器29)と、を備えることを特徴とする。
これにより、通常のニューロンと通常のニューロンの2のべき乗倍の影響力を持つパワーニューロンとが混在するニューラルネットを実現するに際し、シナプス結合の重みの分解能を落とすことなく、シナプス結合の重み格納メモリに必要な容量を大幅に削減できる。
According to a sixth aspect of the present invention, in the invention according to any one of the first to fifth aspects, the circuit unit includes a first storage unit that holds input data of the first layer of artificial neurons (for example, , Memory 21) in the embodiment, a second storage unit (for example, memory 25 in the embodiment) that holds the weight information of the synapse connection, output data of the artificial neuron in the first layer, and the weight information A multiplication circuit (for example, the AND gate 26 in the embodiment) that calculates the product of the above and an operation that calculates a value obtained by multiplying the product corresponding to the predetermined first layer artificial neuron by a constant among the products calculated by the multiplication circuit A circuit (for example, the 1-bit left shifter 36 in the embodiment) and an adder (for example, the adder 2 in the embodiment) that calculates a sum of the values multiplied by the constant as one input signal ) And a size comparator (for example, the size comparator 29 in the embodiment) that determines output data of the artificial neuron group of the second layer based on a comparison result between the sum and a predetermined threshold value. It is characterized by.
As a result, when realizing a neural network in which a normal neuron and a power neuron having an influence that is a power of two times that of a normal neuron are mixed, a synaptic connection weight storage memory is obtained without reducing the resolution of the synaptic connection weight. The required capacity can be greatly reduced.

請求項7に記載した発明は、請求項5または請求項6のいずれかに記載の発明において、前記回路ユニットは、前記総和に所定の減衰量を乗算する乗算器(例えば、実施形態における乗算器52)と、前記乗算された乗算結果を保持する第3の記憶部(例えば、実施形態におけるメモリ53)とを更に備え、前記加算器は、前記第3の記憶部に保持した前記乗算結果を他方の入力信号とすることを特徴とする。
これにより、所定の時間までに加算器が出力した総和を所定の時定数で減衰させながら、当該加算器が総和計算を行う際の初期入力データとすることができる。
According to a seventh aspect of the present invention, in the invention according to the fifth or sixth aspect, the circuit unit is a multiplier that multiplies the sum by a predetermined attenuation amount (for example, the multiplier in the embodiment). and 52), a third storage unit for holding the multiplied multiplication result (e.g., memory 53) and further comprising a in the embodiment, the adder, the multiplication result held in the third storage unit The other input signal is used.
As a result, it is possible to obtain initial input data when the adder performs the summation calculation while attenuating the sum total output by the adder by a predetermined time constant.

請求項8に記載した発明は、請求項1から請求項7のいずれかに記載の発明において、前記回路ユニットは、第1の層の人工ニューロンの入力データを保持する第1の記憶部(例えば、実施形態におけるメモリ21)と、シナプス結合の重みの絶対値を保持する第2の記憶部(例えば、実施形態におけるメモリ25)と、前記第1の層の人工ニューロンの出力データと前記重みの絶対値との積を算出する乗算回路(例えば、実施形態におけるアンドゲート26)と、第1の層のニューロンが興奮性か抑制性かを表す前記シナプス結合の重みの符号情報を出力する符号情報出力回路(例えば、実施形態における符号格納器33、大小比較器34またはアンドゲート34B)と、前記符号情報に基づいて、前記積の値または前記積の負の値を一方の入力信号としてその総和を算出する加算器(例えば、実施形態における加減算器32)と、前記算出した総和と所定の閾値との比較結果に基づいて、第2の層の人工ニューロンの出力データを決定する大小比較器(例えば、実施形態における大小比較器29)と、を備えることを特徴とする。
これにより、興奮性と抑制性のニューロンが混在するニューラルネットを実現するに際し、シナプス結合の符合情報を格納するメモリに必要な容量を大幅に削減できる。
According to an eighth aspect of the present invention, in the invention according to any one of the first to seventh aspects, the circuit unit includes a first storage unit that holds input data of the first layer of artificial neurons (for example, , The memory 21) in the embodiment, the second storage unit (for example, the memory 25 in the embodiment) that holds the absolute value of the weight of the synapse connection, the output data of the artificial neuron in the first layer, and the weight Code information for outputting the sign information of the weight of the synapse connection indicating whether the multiplication circuit (for example, the AND gate 26 in the embodiment) for calculating the product of the absolute value and the first layer neuron is excitatory or inhibitory. Based on the output information (for example, the sign storage 33, the magnitude comparator 34 or the AND gate 34B in the embodiment) and the sign information, the product value or the negative value of the product is Based on the result of comparison between the adder (for example, the adder / subtractor 32 in the embodiment) that calculates the sum as an input signal and the calculated sum and a predetermined threshold, the output data of the artificial neuron in the second layer is determined. And a large / small comparator (for example, the large / small comparator 29 in the embodiment).
As a result, when realizing a neural network in which excitatory and inhibitory neurons are mixed, the capacity required for a memory for storing synaptic connection code information can be greatly reduced.

請求項9に記載した発明は、請求項1から請求項8のいずれかに記載の発明において、第2の層の人工ニューロン毎に予め定められた所定の値を保持し、更に前記人工ニューロン毎に疑似乱数を算出し、前記第2の層の人工ニューロンに共通に定められた所定の閾値に前記所定の値と前記疑似乱数を加算する閾値算出回路(例えば、実施形態における閾値算出回路38)を更に備えることを特徴とする。
これにより、前記人工ニューロンの閾値に、前記人工ニューロン毎に予め定められた所定の値を加算できるので、前記人工ニューロン毎に閾値を変更することができる。また、前記人工ニューロンの閾値に、前記人工ニューロン毎に算出した前記疑似乱数を加算できるので、前記人工ニューロン毎に閾値を疑似ランダムに変化させることができる。
The invention according to claim 9 is the invention according to any one of claims 1 to 8, wherein a predetermined value predetermined for each artificial neuron of the second layer is maintained, and further, for each artificial neuron. A threshold value calculation circuit that calculates the pseudo random number and adds the predetermined value and the pseudo random number to a predetermined threshold value commonly set for the second layer artificial neurons (for example, the threshold value calculation circuit 38 in the embodiment) Is further provided.
As a result, since a predetermined value predetermined for each artificial neuron can be added to the threshold value of the artificial neuron, the threshold value can be changed for each artificial neuron. Moreover, since the pseudo random number calculated for each artificial neuron can be added to the threshold value of the artificial neuron, the threshold value can be changed pseudo-randomly for each artificial neuron.

請求項10に記載した発明は、上記の課題を解決するために、複数の層と、前記層に存在する複数の人工ニューロンと、前記人工ニューロンと他の層に存在する人工ニューロンとを結びつけるシナプス結合を有し、前記複数の層のうち第1の層の人工ニューロンの出力データと前記シナプス結合の重み情報との積を計算し、前記積を累積した結果に応じた出力を第2の層の人工ニューロンが出力するニューラルネットワークを実現する配線方式であって、二次元以上の仮想空間において当該仮想空間を任意の数の任意のポリトープで分割し、前記ポリトープ毎に回路ユニットを配置し、隣接するポリトープに配置された前記回路ユニット間で前記第1の層の出力データを含む信号を送信するよう配置された第1の配線と、第1の層に属する複数の人工ニューロンと第2の層に属する複数の人工ニューロンとを実装し、第1の層の人工ニューロンは、自身の出力データを時分割多重化し、該時分割多重化したデータを、同一回路ユニットの第2の層の人工ニューロンと、自身のポリトープに隣接するポリトープに配置された回路ユニットの第2の層の人工ニューロンとへ出力し、前記同一回路ユニットの第2の層の人工ニューロンは、自身のポリトープに隣接するポリトープに配置された回路ユニットの第1の層の人工ニューロンが出力した出力データを入力するよう配線された第2の配線と、を有することを特徴とする配線方式である。
これにより、ニューラルネットを構成する人工ニューロン間の配線を、ポリトープ毎に1本のデータ出力線を用いて隣接するポリトープと接続できるので、ポリトープを追加しても既存のポリトープ間の通信は影響を受けない。したがって、人工ニューロン間のデータ通信速度を一定に保ったまま、任意の数の人工ニューロン間を配線できる。
In order to solve the above problem, the invention described in claim 10 is a synapse that connects a plurality of layers, a plurality of artificial neurons existing in the layers, and the artificial neurons and artificial neurons existing in other layers. A product of the output data of the artificial neurons of the first layer of the plurality of layers and the weight information of the synapse connection, and an output corresponding to a result of accumulating the products is output to the second layer A wiring system that realizes a neural network that outputs an artificial neuron in a virtual space of two or more dimensions, dividing the virtual space by an arbitrary number of arbitrary polytopes, arranging circuit units for each of the polytopes, and adjacent to each other A first wiring arranged to transmit a signal including the output data of the first layer between the circuit units arranged in the polytope, and a complex belonging to the first layer. And a plurality of artificial neurons belonging to the second layer, the first layer artificial neurons time-division multiplex their own output data, and the time-division multiplexed data is converted into the same circuit unit. To the second layer artificial neuron and the second layer artificial neuron of the circuit unit arranged in the polytope adjacent to its own polytope, and the second layer artificial neuron of the same circuit unit And a second wiring wired to input the output data output from the first layer artificial neuron of the circuit unit arranged in the polytope adjacent to the own polytope. .
As a result, the wiring between the artificial neurons constituting the neural network can be connected to the adjacent polytope using one data output line for each polytope, so that the communication between existing polytopes is not affected even if a polytope is added. I do not receive it. Therefore, any number of artificial neurons can be wired while keeping the data communication speed between the artificial neurons constant.

請求項1に記載した発明によれば、ニューロン間の配線を低速で少ない数の配線で行う電子回路を実現できる。   According to the first aspect of the present invention, it is possible to realize an electronic circuit in which wiring between neurons is performed at a low speed with a small number of wirings.

請求項2に記載した発明によれば、実質的にシナプス結合を無効にできるので、後からシナプス結合が無くなった部分の配線を物理的に無くす必要性がない。また、シナプス結合の重みが0の箇所は、必要に応じて新たにシナプス結合を発生することができる。   According to the second aspect of the present invention, the synapse connection can be substantially invalidated, so that it is not necessary to physically eliminate the wiring in the portion where the synapse connection is lost later. In addition, a synapse connection can be newly generated at a location where the weight of the synapse connection is 0 as necessary.

請求項3に記載した発明によれば、仮想二次元平面を正六角形で分割するので、各回路ユニットに含まれる各ニューロンは、仮想平面内でほぼ等距離内のニューロンとシナプス結合を作ることができる。   According to the invention described in claim 3, since the virtual two-dimensional plane is divided into regular hexagons, each neuron included in each circuit unit can form a synaptic connection with a neuron within a substantially equal distance in the virtual plane. it can.

請求項4に記載した発明によれば、第2の層の人工ニューロンの出力データを第2の層または第1の層へフィードバックできるので、信号の帰還回路が在るニューラルネットワークを電子回路で実装できる。   According to the invention described in claim 4, since the output data of the artificial neuron in the second layer can be fed back to the second layer or the first layer, a neural network having a signal feedback circuit is implemented by an electronic circuit. it can.

請求項5に記載した発明によれば、第1の層が興奮性ニューロンである大規模ニューラルネットワークを電子回路で実装できる。   According to the invention described in claim 5, a large-scale neural network in which the first layer is an excitatory neuron can be implemented by an electronic circuit.

請求項6に記載した発明によれば、通常の影響力を次層のニューロンに与える通常ニューロンと、通常ニューロンよりも大きな影響力を次層のニューロンに与えるパワーニューロンが混在するニューラルネットを電子回路で実装するに際し、シナプス結合の重み格納メモリに必要な容量を大幅に削減することができる。   According to the invention described in claim 6, a neural network in which a normal neuron that gives a normal influence to a neuron in the next layer and a power neuron that gives a larger influence to a neuron in the next layer is mixed with an electronic circuit. As a result, it is possible to greatly reduce the capacity required for the synaptic connection weight storage memory.

請求項7に記載した発明によれば、シナプス結合から受け取るデータの総和計算を行い、その結果ニューロンが発火しなかった場合に、前記総和計算結果を所定の時定数で減衰させて、次回の総和計算の初期値とするので、時間履歴を扱えるニューラルネットを電子回路で実装できる。   According to the seventh aspect of the present invention, the sum total calculation of the data received from the synapse connection is performed. As a result, when the neuron does not fire, the sum total calculation result is attenuated by a predetermined time constant, and the next sum total is calculated. Since it is the initial value of the calculation, a neural network that can handle the time history can be implemented with an electronic circuit.

請求項8に記載した発明によれば、符号情報を格納するメモリ手段を使うことにより、ニューラルネットワークを実装する電子回路は、興奮性人工ニューロンと抑制性人工ニューロンを模擬することができる。また、シナプス結合毎ではなくニューロン毎に符号情報をメモリに格納することにより、メモリ容量を削減することができる。   According to the eighth aspect of the invention, by using the memory means for storing the code information, the electronic circuit that implements the neural network can simulate the excitatory artificial neuron and the inhibitory artificial neuron. Further, the memory capacity can be reduced by storing the code information in the memory for each neuron instead of for each synapse connection.

請求項9に記載した発明によれば、第2の層の人工ニューロン毎に閾値の値を変更することができるので、第2の層の人工ニューロン毎に異なる閾値をもつニューラルネットワークを電子回路に実装できる。また、第2の層の人工ニューロン毎に閾値を疑似ランダムに変化させることができるので、ニューラルネットに学習させる際に、ローカルミニマムの状態に落ち込むのを防ぐことができる。   According to the invention described in claim 9, since the threshold value can be changed for each artificial neuron in the second layer, a neural network having a different threshold for each artificial neuron in the second layer can be used as an electronic circuit. Can be implemented. In addition, since the threshold value can be changed pseudo-randomly for each artificial neuron in the second layer, it is possible to prevent the local network from falling into a local minimum state when the neural network learns.

請求項10に記載した発明によれば、ニューロン間のデータ転送速度を一定に保ったまま、任意の数のニューロン間を配線できる。   According to the invention described in claim 10, it is possible to wire between an arbitrary number of neurons while keeping the data transfer rate between neurons constant.

本発明の実施例1におけるニューラルネットワークの模式図と、L1層の出力を時分割多重化した信号を説明するための図である。It is the figure for demonstrating the schematic diagram of the neural network in Example 1 of this invention, and the signal which time-division multiplexed the output of the L1 layer. 本発明の一実施形態による回路ユニット間の配線を説明するための図である。It is a figure for demonstrating the wiring between the circuit units by one Embodiment of this invention. 本発明の一実施形態による仮想平面を分割して、回路ユニット間の配線を説明するための図である。It is a figure for dividing a virtual plane by one embodiment of the present invention, and explaining wiring between circuit units. 本発明の一実施形態による仮想空間を立方体で分割して、回路ユニット間の配線を説明するための図である。It is a figure for divide | segmenting the virtual space by one Embodiment of this invention by a cube, and demonstrating the wiring between circuit units. 本発明の一実施形態による回路ユニットをパルスニューラルネットワークで用いるニューロン群を模擬した回路図である。It is a circuit diagram which simulated the neuron group which uses the circuit unit by one Embodiment of this invention with a pulse neural network. パルス列変調用メモリが保持するデータ変換テーブルを説明するための図である。It is a figure for demonstrating the data conversion table hold | maintained at the memory for pulse train modulation. 図5に示す回路の動作を説明するためのタイミングチャートである。6 is a timing chart for explaining the operation of the circuit shown in FIG. 5. 本発明の一実施形態による回路ユニットを、情報が複数ビットで表されるニューラルネットワークで用いるニューロン群を模擬した回路図である。It is a circuit diagram which simulated the neuron group which uses the circuit unit by one Embodiment of this invention in the neural network in which information is represented by multiple bits. シナプス結合が受け取った情報が、所定の時定数で減衰するニューロンを実現するための回路図である。FIG. 6 is a circuit diagram for realizing a neuron in which information received by a synaptic connection is attenuated with a predetermined time constant. 本発明の一実施形態による回路ユニットを、パルスニューラルネットワークで用いるニューロン群を模擬した別の回路図である。It is another circuit diagram which simulated the neuron group which uses the circuit unit by one Embodiment of this invention with a pulse neural network. 本発明の第2の実施例である興奮性ニューロン群と抑制性ニューロン群の混在した回路ユニットの回路図である。It is a circuit diagram of a circuit unit in which an excitatory neuron group and an inhibitory neuron group are mixed according to a second embodiment of the present invention. 本発明の第2の実施例の変形例である回路ユニットの回路図である。It is a circuit diagram of the circuit unit which is a modification of the 2nd example of the present invention. 興奮性ニューロン群と抑制性ニューロン群の混在したニューラルネットを、パルスニューラルネット以外で模擬した回路ユニットの回路図である。FIG. 6 is a circuit diagram of a circuit unit that simulates a neural network in which an excitatory neuron group and an inhibitory neuron group are mixed, other than a pulse neural network. 本発明の第3の実施例である通常ニューロン群とパワーニューロン群が混在した回路ユニットの回路図である。It is a circuit diagram of a circuit unit in which a normal neuron group and a power neuron group are mixed according to a third embodiment of the present invention. 本発明の第3の実施例の変形例である回路ユニットの回路図である。It is a circuit diagram of the circuit unit which is a modification of the 3rd example of the present invention. 本発明の第4の実施例である、閾値にオフセットと揺らぎを持たせたニューロン群を模擬した回路ユニットの回路図である。FIG. 10 is a circuit diagram of a circuit unit simulating a neuron group having offsets and fluctuations in threshold values according to a fourth embodiment of the present invention. 8ビット疑似乱数発生器(ガロアLFSR)の回路図である。It is a circuit diagram of an 8-bit pseudo random number generator (Galois LFSR). 本発明の実施例5におけるニューラルネットワークの模式図と、層間を流れる信号のフォーマットを説明するための図である。It is the figure for demonstrating the schematic diagram of the neural network in Example 5 of this invention, and the format of the signal which flows between layers. 本発明の第5の実施例である、L2層のニューロン群の出力をL2層のニューロン群へフィードバックするニューラルネットの回路ユニットの回路図である。FIG. 10 is a circuit diagram of a circuit unit of a neural network that feeds back an output of an L2 layer neuron group to an L2 layer neuron group according to a fifth embodiment of the present invention. 本発明の実施例5の変形例である、L3層のニューロン群の出力をL2層のニューロン群へフィードバックするニューラルネットの回路ユニットの回路図である。FIG. 10 is a circuit diagram of a circuit unit of a neural network that feeds back an output of an L3 layer neuron group to an L2 layer neuron group, which is a modification of the fifth embodiment of the present invention. ニューラルネットの一部を表した模式図である。It is a schematic diagram showing a part of the neural network. AERにおいてニューロン間のデータ転送に使うデータフォーマットである。This is a data format used for data transfer between neurons in AER. フィードバックループを持つ3層構造のニューラルネットを表した模式図である。It is a schematic diagram showing a neural network having a three-layer structure having a feedback loop.

以下、本発明の実施形態について、図面を参照して詳細に説明する。まず、本発明のニューラルネットワークの構成について説明する。図1(a)は、ニューラルネットワークの構成を表した図である。ニューラルネットワークは、L1層およびL2層の2つの層から構成されている。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. First, the configuration of the neural network of the present invention will be described. FIG. 1A is a diagram showing the configuration of a neural network. The neural network is composed of two layers, an L1 layer and an L2 layer.

ニューラルネットワークは、第1の層(L1層)のニューロン20(iは0から4,863の整数)と、第2の層(L2層)のニューロン22(jは0から4,863の整数)と、L1層のニューロン20からL2層のニューロン22への配線21と、配線21に対応したL2層のニューロン22のシナプス結合23i,jと、L2層のニューロン22の出力端子24とを有する。 The neural network includes a first layer (L1 layer) neuron 20 i (i is an integer from 0 to 4,863) and a second layer (L2 layer) neuron 22 j (j is 0 to 4,863). an integer), the wiring 21 i to neuron 22 j of the L2 layer from the neuron 20 i of the L1 layer, the synaptic connections 23 i of neuron 22 j of L2 layer corresponding to the wiring 21 i, and j, the L2 layer of neurons 22 j output terminals 24j .

シナプス結合には、L1層のニューロンの出力をL2層のニューロンへどの程度の割合で伝えるかというシナプス結合の重みwi,jがある。不要な結合についてはシナプス結合の重みwi,jを0にすることで、実質的にシナプス結合を無効にできる。 The synaptic connection includes a weight w i, j of the synaptic connection that determines how much the output of the neurons in the L1 layer is transmitted to the neurons in the L2 layer. For unnecessary connections, the synaptic connection weight w i, j can be set to 0 to substantially invalidate the synaptic connection.

L1層のニューロン20を同数ずつ19個のまとまり(以下、セルと称する)に分ける。そうすると、1つのセルあたりに存在するL1層のニューロン20は256個である。同様にして、L2層のニューロン22を19個のセルに分ける。そうすると、1つのセルあたりに存在するL2層のニューロン22は256個である。従って、図1(a)のニューラルネットワークは、19個のセルCN(Nは0から18までの整数)で分割される。 The same number of neurons 20 i in the L1 layer are divided into 19 groups (hereinafter referred to as cells). Then, the neuron 20 i of the L1 layer present on per single cell is 256. Similarly, the neuron 22 j in the L2 layer is divided into 19 cells. Then, there are 256 neurons in the L2 layer 22 j that exist per cell. Accordingly, the neural network of FIG. 1A is divided by 19 cells CN (N is an integer from 0 to 18).

図1(b)は、L1層の出力を時分割多重化した信号を説明するための図である。セルCNのL1層内の256個のニューロンの出力データは、図1(b)に示すように時分割多重化して、信号xi,tとしてP0端子から出力する。 FIG. 1B is a diagram for explaining a signal obtained by time-division multiplexing the output of the L1 layer. The output data of 256 neurons in the L1 layer of the cell CN is time-division multiplexed as shown in FIG. 1B, and is output from the P0 terminal as signals x i, t .

i,tはL1層のi番目(iは0から255の整数)のニューロンの、t番目(tは0以上の整数)ラウンドの出力である。すなわち、x0,tはニューロン20の出力、x1,tはニューロン20の出力,…,x255,tはニューロン20255の出力である。ここで、ラウンドとは256個のニューロンのデータを1回処理する処理単位のことである。 x i, t is the output of the t-th (t is an integer greater than or equal to 0) round of the i-th (i is an integer from 0 to 255) neuron in the L1 layer. That is, x 0, t is the output of the neuron 20 0 , x 1, t is the output of the neuron 20 1 ,..., X 255, t is the output of the neuron 20 255 . Here, a round is a processing unit for processing data of 256 neurons once.

図2は、本発明の一実施形態による回路ユニット間の配線を説明するための図である。脳内の神経細胞は基本的に、物理的に近くの神経細胞とシナプス結合を作っている。この特徴を参考にしてニューロン間の配線問題を解決する。   FIG. 2 is a diagram for explaining wiring between circuit units according to an embodiment of the present invention. Neurons in the brain basically make synaptic connections with physically close neurons. The wiring problem between neurons is solved by referring to this feature.

図2(a)は、仮想平面を複数のセルに分割した図である。図2(a)では、各セルは、正六角形の形状を有する。図2(b)は、セル間の配線を示した図である。各セル内に1つの回路ユニットが存在する。 FIG. 2A is a diagram in which the virtual plane is divided into a plurality of cells. In FIG. 2A, each cell has a regular hexagonal shape. FIG. 2B is a diagram showing wiring between cells. There is one circuit unit in each cell.

図1ではセルが19個在るので、L1層とL2層にそれぞれ256×19=4,864個のニューロン20、22が入っていることになる。各セルには1個の出力端子P0と、6個の入力端子P1〜P6とがある(図2(b))。セルの配置と入力端子への配線とには一定の規則がある。 Since there are 19 cells in FIG. 1, there are 256 × 19 = 4,864 neurons 20 i and 22 j in the L1 layer and the L2 layer, respectively. Each cell has one output terminal P0 and six input terminals P1 to P6 (FIG. 2B). There are certain rules regarding the arrangement of cells and the wiring to the input terminals.

図2(b)に示すように、或るセルの出力端子P0は隣接するセルとだけ接続する。また、各入力端子と、その入力端子に接続する信号を出力するセルの配置に一定の規則がある。ここでは、セルC0を例に説明する。図2(b)に示すように、セルC0の入力端子P1は、セルC0の真上に隣接するセルC1の出力端子P0と接続する。   As shown in FIG. 2B, an output terminal P0 of a certain cell is connected only to an adjacent cell. Further, there is a certain rule in the arrangement of each input terminal and a cell that outputs a signal connected to the input terminal. Here, the cell C0 will be described as an example. As shown in FIG. 2B, the input terminal P1 of the cell C0 is connected to the output terminal P0 of the cell C1 adjacent immediately above the cell C0.

同様にして、セルC0の入力端子P2は、セルC0の右上に隣接するセルC2の出力端子P0と接続する。セルC0の入力端子P3は、セルC0の右下に隣接するセルC3の出力端子P0と接続する。セルC0の入力端子P4は、セルC0の真下に隣接するセルC4の出力端子P0と接続する。セルC0の入力端子P5は、セルC0の左下に隣接するセルC5の出力端子P0と接続する。セルC0の入力端子P6は、セルC0の左上に隣接するセルC6の出力端子P0と接続する。   Similarly, the input terminal P2 of the cell C0 is connected to the output terminal P0 of the cell C2 adjacent to the upper right of the cell C0. The input terminal P3 of the cell C0 is connected to the output terminal P0 of the cell C3 adjacent to the lower right of the cell C0. The input terminal P4 of the cell C0 is connected to the output terminal P0 of the cell C4 adjacent immediately below the cell C0. The input terminal P5 of the cell C0 is connected to the output terminal P0 of the cell C5 adjacent to the lower left of the cell C0. The input terminal P6 of the cell C0 is connected to the output terminal P0 of the cell C6 adjacent to the upper left of the cell C0.

すなわち、或る回路ユニットの入力端子P1が受けとる入力データは、真上に隣接する回路ユニットの出力端子P0が出力したデータである。同様にして、或る回路ユニットの入力端子P2が受けとる入力データは、右上に隣接する回路ユニットの出力端子P0が出力したデータである。或る回路ユニットの入力端子P3が受けとる入力データは、右下に隣接する回路ユニットの出力端子P0が出力したデータである。或る回路ユニットの入力端子P4が受けとる入力データは、真下に隣接する回路ユニットの出力端子P0が出力したデータである。或る回路ユニットの入力端子P5が受けとる入力データは、左下に隣接する回路ユニットの出力端子P0が出力したデータである。或る回路ユニットの入力端子P6端子が受けとる入力データは、左上に隣接する回路ユニットの出力端子P0が出力したデータである。   That is, the input data received by the input terminal P1 of a certain circuit unit is the data output from the output terminal P0 of the circuit unit adjacent immediately above. Similarly, the input data received by the input terminal P2 of a certain circuit unit is data output from the output terminal P0 of the circuit unit adjacent to the upper right. The input data received by the input terminal P3 of a certain circuit unit is data output from the output terminal P0 of the circuit unit adjacent to the lower right. The input data received by the input terminal P4 of a certain circuit unit is the data output from the output terminal P0 of the circuit unit adjacent immediately below. The input data received by the input terminal P5 of a certain circuit unit is data output from the output terminal P0 of the circuit unit adjacent to the lower left. The input data received by the input terminal P6 of a certain circuit unit is data output from the output terminal P0 of the circuit unit adjacent to the upper left.

あるセルのL2層では、当該セルのL1層から入力される信号と、隣接セルから入力端子P1〜P6に入力される6本の信号とを使って、当該セル及び隣接セル内のL1層の全てのニューロンとシナプス結合を作る。つまり、図2(a)のセルC0のL2層の各ニューロンは、セルC0及び隣接する6個のセルC1〜C6内のL1層の256×7=1,792個のニューロンとシナプス結合を作る。   In the L2 layer of a certain cell, the signal input from the L1 layer of the cell and the six signals input to the input terminals P1 to P6 from the adjacent cell are used to transmit the L1 layer in the cell and the adjacent cell. Create synaptic connections with all neurons. That is, each neuron in the L2 layer of the cell C0 in FIG. 2A forms a synaptic connection with the cell C0 and 256 × 7 = 1,792 neurons in the L1 layer in the six adjacent cells C1 to C6. .

同様に、例えばセルC1内のL2層の各ニューロンは、セルC1及び隣接する6個のセルC8、C9、C2、C0、C6、C7内のL1層の全ニューロンとシナプス結合を作る。L2層の各ニューロンは、L1層の1,792個のニューロンとシナプス結合を作れるが、その中には不要なものも含まれる。   Similarly, for example, each neuron of the L2 layer in the cell C1 forms a synaptic connection with all the neurons of the L1 layer in the cell C1 and six adjacent cells C8, C9, C2, C0, C6, and C7. Each neuron in the L2 layer can make a synaptic connection with 1,792 neurons in the L1 layer, and some of them are unnecessary.

一般的に、L1層の各ニューロンは自セル及び仮想平面内で隣接するセル内のL2層のニューロンとのみ結合されているので、シナプス結合が不要な箇所は少なく、シナプス結合の重みWを0にする箇所は少ないと考えられる。   In general, since each neuron in the L1 layer is connected only to its own cell and the neuron in the L2 layer in the adjacent cell in the virtual plane, there are few places where the synapse connection is unnecessary, and the weight W of the synapse connection is 0. It is thought that there are few places to make.

図1の実施例ではL1層及びL2層に含まれるニューロン数を256としたが、本発明はこれに制限されるものではなく、一般的に2以上の任意の数でも適用できる。また、L1層とL2層のニューロン数が同数である必要は無い。本実施例では、図1(a)に示すように、ニューラルネットの階層数を2とする。なお、本発明はこれに制限されるものではなく、3層以上に拡張することも可能である。   In the embodiment of FIG. 1, the number of neurons included in the L1 layer and the L2 layer is 256. However, the present invention is not limited to this, and any number of 2 or more is generally applicable. Further, the number of neurons in the L1 layer and the L2 layer need not be the same. In the present embodiment, as shown in FIG. In addition, this invention is not restrict | limited to this, It is also possible to extend to three or more layers.

本実施例ではニューロンを並べる仮想平面を正六角形で分割したが、本発明はこれに制限されるものではない。図3は、本発明の一実施形態による仮想平面を分割して、回路ユニット間の配線を説明するための図である。例えば、図3(a)に示すように正方形で分割することも可能であるし、正三角形で分割することも可能である。   In this embodiment, the virtual plane on which neurons are arranged is divided into regular hexagons, but the present invention is not limited to this. FIG. 3 is a diagram for explaining wiring between circuit units by dividing a virtual plane according to an embodiment of the present invention. For example, as shown in FIG. 3A, it can be divided into squares, or can be divided into equilateral triangles.

また、同一の多角形を並べるのではなく、図3(b)に示すように複数種類(3種類)の多角形で分割することも可能である。更に、仮想平面は仮想的なものなので多角形間にオーバーラップが生じたり、或いは多角形間に隙間が生じたりしても特に問題はない。信号が入力されない入力端子はグランド電位に接続する。   Further, instead of arranging the same polygons, it is also possible to divide into a plurality of types (three types) of polygons as shown in FIG. Further, since the virtual plane is virtual, there is no particular problem even if overlap occurs between polygons or a gap occurs between polygons. The input terminal to which no signal is input is connected to the ground potential.

多角形の形状は1つのニューロンが形成できるシナプス結合の最大数に関係している。例えば正六角形の場合は隣接セルが6個なので、1個のセルのL1層に256個のニューロン含まれるとすると、L2層のニューロンでは最大256×7=1,792個のシナプス結合を形成する。   The shape of the polygon is related to the maximum number of synaptic connections that one neuron can form. For example, in the case of a regular hexagon, since there are six adjacent cells, assuming that 256 neurons are included in the L1 layer of one cell, a maximum of 256 × 7 = 1,792 synaptic connections are formed in the neurons of the L2 layer. .

一方、図3(a)の場合は隣接セルが8個になるので、最大256×9=2,304個のシナプス結合を形成する。図3(b)の場合は、最大シナプス結合数が異なる3種類の回路ユニットが混在していると解釈することもできるし、正五角形以外の隙間を無視することもできる。更に言えば、仮想平面を正多角形ではなく、任意形状の図形で分割しても、本発明を同様に適用できる。   On the other hand, in the case of FIG. 3A, since there are eight adjacent cells, a maximum of 256 × 9 = 2,304 synapse connections are formed. In the case of FIG. 3B, it can be interpreted that three types of circuit units having different maximum synapse coupling numbers are mixed, and a gap other than a regular pentagon can be ignored. Furthermore, the present invention can be similarly applied even if the virtual plane is divided by a figure of an arbitrary shape instead of a regular polygon.

本実施例の説明では、仮想二次元平面を考えて、そこにニューロンを分散配置するとして説明したが、本発明はこれに制限されるものではない。人間の脳を模倣する場合は二次元平面で十分だが、これを超える構造として三次元空間でも同様に本発明を適用できる。   In the description of the present embodiment, the virtual two-dimensional plane is considered and the neurons are distributed and arranged there. However, the present invention is not limited to this. When imitating the human brain, a two-dimensional plane is sufficient, but the present invention can be similarly applied to a three-dimensional space as a structure exceeding this.

図4は、本発明の一実施形態による仮想空間を立方体で分割して、回路ユニット間の配線を説明するための図である。例えば、図4に示すように、仮想三次元空間を立方体で分割し、任意の立方体のL1層のニューロンは、その立方体に隣接する立方体内のL2層のニューロンとシナプス結合を作る。   FIG. 4 is a diagram for explaining wiring between circuit units by dividing a virtual space according to an embodiment of the present invention into cubes. For example, as shown in FIG. 4, a virtual three-dimensional space is divided into cubes, and neurons in the L1 layer of an arbitrary cube make synaptic connections with neurons in the L2 layer in the cube adjacent to the cube.

図4に示すように、1つのセル毎に出力端子は上部に1個、入力端子は各面に1個存在する。あるセルに隣接するセルは前後上下左右方向に面で隣接する合計6個のセルである。或るセルの前後上下左右の面に1個ずつ存在する入力端子は、隣接するセルの出力端子と接続する。   As shown in FIG. 4, there is one output terminal at the top and one input terminal on each surface for each cell. A cell adjacent to a certain cell is a total of six cells adjacent in a front-back, up-down, left-right direction. One input terminal on each of the front, back, top, bottom, left and right surfaces of a cell is connected to the output terminal of an adjacent cell.

他の実施例としては、1つのセル毎に出力端子を上部に1個、入力端子は各面に1個(合計6個)、各辺に1個(合計12個)、各角に1個(合計8個)すなわち合計26個存在する。セルに隣接するセルは面、辺、角で隣接する合計26個のセルである。あるセルに存在する26個の入力端子は、それぞれ隣接する26個のセルの出力端子と接続する。   As another example, one output terminal per cell, one input terminal on each side (6 in total), 1 on each side (12 in total), 1 on each corner (8 in total), that is, 26 in total. A cell adjacent to a cell is a total of 26 cells adjacent to each other by a face, a side, and a corner. The 26 input terminals existing in a certain cell are connected to the output terminals of 26 adjacent cells, respectively.

また、三次元空間を立方体ではなく、一般的に任意の多面体で分割することもできる。このように、本発明は一般的に、二次元以上の任意の次数の空間を、任意のポリトープで分割する場合に適用可能である。なお、ポリトープとは、二次元の場合は多角形を表し、三次元の場合は多面体を表し、四次元以上の場合はポリトープを表す。一般的には、ポリトープは、二次元の多角形、三次元の多面体を一般次元へ一般化した図形である。但し、四次元以上の空間の場合に関しては、図示することができないので図を省略する。   Further, the three-dimensional space can be divided not by a cube but generally by an arbitrary polyhedron. As described above, the present invention is generally applicable to a case where an arbitrary degree space of two or more dimensions is divided by an arbitrary polytope. The polytope represents a polygon in the case of two dimensions, a polyhedron in the case of three dimensions, and a polytope in the case of four dimensions or more. In general, a polytope is a figure obtained by generalizing a two-dimensional polygon or a three-dimensional polyhedron into a general dimension. However, in the case of a four-dimensional or larger space, the illustration is omitted because it cannot be illustrated.

<回路ユニットの実施例1の説明>
次に、本発明の回路ユニットの第1の実施例について説明する。図5は、本発明の一実施形態による回路ユニットをパルスニューラルネットワークで用いるニューロン群を模擬した回路図である。図5の回路ユニット10全体が、図2(a)で示す1つのセルに存在する回路ユニット対応している。本実施例では各ニューロンは個別の電子回路ではなく、仮想の興奮性ニューロンとして層毎に256個のニューロンを纏めて実装している。
<Description of Example 1 of Circuit Unit>
Next, a first embodiment of the circuit unit of the present invention will be described. FIG. 5 is a circuit diagram simulating a neuron group using a circuit unit according to an embodiment of the present invention in a pulse neural network. The entire circuit unit 10 in FIG. 5 corresponds to the circuit unit existing in one cell shown in FIG. In this embodiment, each neuron is not a separate electronic circuit, but 256 neurons are collectively mounted for each layer as virtual excitatory neurons.

各層に256個のニューロンを実装する方法は、以下の通りである。L1層の256個のニューロンの入力データ(4[bit]データ)は、メモリ21に格納されている。L2層のニューロンのシナプス結合の重み(8[bit]データ)は、メモリ25に保存されている。一方、L2層の256個のニューロンの出力データは、0か1の1[bit]信号で表される。   A method for implementing 256 neurons in each layer is as follows. Input data (4 [bit] data) of 256 neurons in the L1 layer is stored in the memory 21. The synaptic connection weight (8 [bit] data) of the neurons in the L2 layer is stored in the memory 25. On the other hand, the output data of 256 neurons in the L2 layer is represented by a 1 [bit] signal of 0 or 1.

回路ユニット10は、L1層に属する8ビットカウンター20と、メモリ21と、パルス列変調回路22と、L2層に属する8ビットカウンター23Aと、8ビットカウンター23Bと、メモリ24Aと、メモリ24Bと、メモリ25と、アンドゲート26と、加算器27と、アンドゲート28と、大小比較器29と、ラッチ30と、カウンター31とを用いて構成されている。   The circuit unit 10 includes an 8-bit counter 20 belonging to the L1 layer, a memory 21, a pulse train modulation circuit 22, an 8-bit counter 23A belonging to the L2 layer, an 8-bit counter 23B, a memory 24A, a memory 24B, and a memory. 25, an AND gate 26, an adder 27, an AND gate 28, a magnitude comparator 29, a latch 30, and a counter 31.

8ビットカウンター20は入力端子41にカウントアップ信号が入力される毎に、カウント値を1ずつ増加させ、当該カウント値をメモリ21に出力する。8ビットカウンター20は図示しないリセット信号によって予め0になっており、255までカウントアップすると、次のカウントアップタイミングで0に戻る。   Each time the count-up signal is input to the input terminal 41, the 8-bit counter 20 increases the count value by 1 and outputs the count value to the memory 21. The 8-bit counter 20 is set to 0 in advance by a reset signal (not shown), and when it counts up to 255, it returns to 0 at the next count-up timing.

メモリ21はL1層のニューロン20の入力データを記憶している。L1層からは1ビット信号としてL2層へデータを送るので、4ビット幅のデータを15ビットのビット列に変換し、15ラウンドかけて転送する。ここで、値1は、ニューロンが発火することに相当する。1つの回路ユニットに含まれるL1層のニューロン20の個数は256個なので、メモリ21は4[bit]×256=1,024[bit]の容量を持つ。L1層のi番目のニューロンの入力データは、メモリ21のi番地に格納されている。 The memory 21 stores input data of the neurons 20 i in the L1 layer. Since data is sent from the L1 layer to the L2 layer as a 1-bit signal, 4-bit data is converted into a 15-bit bit string and transferred over 15 rounds. Here, a value of 1 corresponds to the firing of a neuron. Since the number of neurons 20 i in the L1 layer included in one circuit unit is 256, the memory 21 has a capacity of 4 [bits] × 256 = 1,024 [bits]. The input data of the i-th neuron in the L1 layer is stored at address i of the memory 21.

メモリ21は、8ビットカウンター20のカウント値が示す番地から4ビットデータを読み出して、当該データをパルス列変調回路22に送る。   The memory 21 reads 4-bit data from the address indicated by the count value of the 8-bit counter 20 and sends the data to the pulse train modulation circuit 22.

パルス列変調回路22は、メモリ21が読みだした4ビットデータを15ビットのパルス列に変換する。パルス列変調回路22は、データ変換テーブルを格納しているデータ変換用メモリを備えている。図6は、データ変換テーブルを説明するための図である。図6において、左側の4ビットデータとは、パルス列変調回路22が受け取るデータであり、データ変換用メモリへのアドレス信号になる。上部の15ビットデータとは、データ変換用メモリが記憶しているデータである。   The pulse train modulation circuit 22 converts the 4-bit data read by the memory 21 into a 15-bit pulse train. The pulse train modulation circuit 22 includes a data conversion memory that stores a data conversion table. FIG. 6 is a diagram for explaining the data conversion table. In FIG. 6, 4-bit data on the left is data received by the pulse train modulation circuit 22 and serves as an address signal to the data conversion memory. The upper 15-bit data is data stored in the data conversion memory.

パルス列変調回路22は、当該15ビットのデータ列のうちLSB(Least Siginificant bit)から順に、自セルのメモリ24Aと24Bに後述するラウンド毎に出力する。また、パルス列変調回路22は、P0端子を介して、当該データを隣接するセルの入力端子P1からP6に出力する。その後、自セル及び隣接セルにおいて、メモリ24Aと24Bを後述するラウンド毎に切り替えて、当該データを格納する。   The pulse train modulation circuit 22 outputs the LSB (Least Significant bit) from the 15-bit data train to the memories 24A and 24B of its own cell for each round to be described later. Further, the pulse train modulation circuit 22 outputs the data to the input terminals P1 to P6 of the adjacent cells via the P0 terminal. Thereafter, in the own cell and adjacent cells, the memories 24A and 24B are switched for each round to be described later to store the data.

パルス列変調回路22は、ラウンド数が増えるごとに、送信するビット位置を1ずつ増やし、当該ビット位置のデータを出力する。
ラウンド14で、前記15ビットデータのうち最上位ビットのデータを自セルのメモリ24Aと隣接するセルのメモリ24Aに転送が終わると、メモリ21に入っているデータのパルス列への変換と、その転送処理が終わる。
Each time the number of rounds increases, the pulse train modulation circuit 22 increases the bit position to be transmitted by 1 and outputs data at the bit position.
In round 14, when the most significant bit data of the 15-bit data is transferred to the memory 24A of the cell adjacent to the self-cell memory 24A, the data stored in the memory 21 is converted into a pulse train and transferred. Processing ends.

なお、本実施例では、最下位ビットから順にデータを出力したが、任意のビット位置から始めてもよい。また、出力するビット位置の順序も適当に決めてよい。L1層のニューロンの出力情報は、パルス列中に1が現れる頻度で表されるので、データが出力される順番は関係ないからである。   In this embodiment, data is output in order from the least significant bit, but it may start from an arbitrary bit position. Further, the order of the output bit positions may be determined appropriately. This is because the output information of the L1 layer neuron is represented by the frequency with which 1 appears in the pulse train, so the order in which the data is output is not relevant.

L2層に属する8ビットカウンター23Aの端子42Aと、8ビットカウンター23Bの端子42Bには、メモリ24Aまたはメモリ24Bにデータを書き込む際は、8ビットカウンター20の端子41に入力されるカウントアップ信号と、同一周波数のカウントアップ信号が入力される。8ビットカウンター23Aと8ビットカウンター23Bは、当該カウントアップ信号が入力される毎に、カウント値を1ずつ増加させ、当該カウント値をメモリ24Aまたはメモリ24Bに出力する。8ビットカウンター23Aと8ビットカウンター23Bは図示しない8ビットカウンター20のリセット信号と同一のリセット信号によって予め0になっており、255までカウントアップすると、次のカウントアップタイミングで0に戻る。   When data is written to the memory 24A or the memory 24B, the count-up signal input to the terminal 41 of the 8-bit counter 20 and the terminal 42A of the 8-bit counter 23A belonging to the L2 layer and the terminal 42B of the 8-bit counter 23B A count-up signal having the same frequency is input. Each time the count-up signal is input, the 8-bit counter 23A and the 8-bit counter 23B increment the count value by 1, and output the count value to the memory 24A or the memory 24B. The 8-bit counter 23A and the 8-bit counter 23B are set to 0 in advance by the same reset signal as the reset signal of the 8-bit counter 20 (not shown). When counting up to 255, the counter returns to 0 at the next count-up timing.

メモリ24Aとメモリ24B(それぞれ7[bit]×256[個]の容量)は、7本の信号線で伝送されてきたデータを、ラウンド毎に交互に格納する。ここで、端子P0に入力されたデータは、自セルのパルス列変調回路22が出力したデータである。また、端子P1からP6までに入力されたデータは、隣接セルのパルス列変調回路22が出力したデータである。   The memory 24A and the memory 24B (each 7 [bit] × 256 [capacity] capacity) alternately store the data transmitted through the seven signal lines for each round. Here, the data input to the terminal P0 is data output from the pulse train modulation circuit 22 of the own cell. The data input from terminals P1 to P6 is data output from the pulse train modulation circuit 22 of the adjacent cell.

8ビットカウンター23Aと8ビットカウンター23Bは、メモリ24Aまたはメモリ24Bからデータを読み出す際は、64[kHz]×256=16.384[MHz]の周波数でカウントアップする。メモリ24Aとメモリ24Bは、記憶している7ビット幅のデータを16.384[MHz]で読み出し、更に当該データを並直変換して7倍の114.7[MHz]の1ビット信号a´i,p,qにする。ここで、iは0から255までの整数、pはビット位置を表す0から14までの整数、qは入(出)力端子番号を表す0から6までの整数である。但し、1ラウンド中にiとqは変化するが、pは一定である。pはラウンドが変わる度に変化(本実施例では0から始まり1ずつ増加)する。当該1ビット信号a´i,p,qは1本の信号線により、アンドゲート26に送られる。 When reading data from the memory 24A or the memory 24B, the 8-bit counter 23A and the 8-bit counter 23B count up at a frequency of 64 [kHz] × 256 = 16.384 [MHz]. The memory 24A and the memory 24B read the stored 7-bit width data at 16.384 [MHz], and further parallel-converts the data to 7 times the 14.7-bit 1-bit signal a ′. i, p, q . Here, i is an integer from 0 to 255, p is an integer from 0 to 14 representing the bit position, and q is an integer from 0 to 6 representing the input (out) force terminal number. However, i and q change during one round, but p is constant. p changes every time the round changes (in this embodiment, it starts from 0 and increases by 1). The 1-bit signals a ′ i, p, q are sent to the AND gate 26 through one signal line.

カウンター31は、端子47に8ビットカウンター20の端子41に入力されるカウントアップ信号の7×256=1,792倍(114.7[MHz])のカウントアップ信号が入力する毎に、カウント値を1ずつ増加する。カウンター31のカウント値は、メモリ25のアドレス入力Aに入る。メモリ25は、当該カウント値に応じた番地から、シナプス結合の重みw´i,q,jを読みだす。jは0から255までの整数でL2層のニューロン番号を表す。添え字はiとqが先に変化し、1,792個のw´i,q,jを読みだす度に、jが1ずつ増加する。
カウンター31は、図示しない8ビットカウンター20のリセット信号と同一のリセット信号によって予め0になっている。
The counter 31 counts each time a count-up signal of 7 × 256 = 1,792 times (114.7 [MHz]) the count-up signal input to the terminal 41 of the 8-bit counter 20 is input to the terminal 47. Is increased by 1. The count value of the counter 31 enters the address input A of the memory 25. The memory 25 reads the synaptic connection weights w ′ i, q, j from the address corresponding to the count value. j is an integer from 0 to 255 and represents the L2 layer neuron number. The subscripts i and q change first, and j increases by 1 each time 1,792 w ′ i, q, j are read out.
The counter 31 is set to 0 in advance by the same reset signal as that of an 8-bit counter 20 (not shown).

メモリ25の記憶容量は、8[bit]×256×7×256=459[KB]である。L1層のi番目のニューロンからL2層のj番目のニューロンへのシナプス結合の重み
w´i,q,jは、図示しない回路によって、メモリ25の端子Iを通して予め格納されている。
The storage capacity of the memory 25 is 8 [bits] × 256 × 7 × 256 = 459 [KB]. The weights w ′ i, q, j of the synapse connection from the i-th neuron in the L1 layer to the j-th neuron in the L2 layer are stored in advance through the terminal I of the memory 25 by a circuit not shown.

メモリ25は、後述するCLK1の周波数である114.7[MHz]でシナプス結合の重みw´i,q,jを読みだし、アンドゲート26に送る。 The memory 25 reads the weight w ′ i, q, j of the synapse connection at 114.7 [MHz] which is the frequency of CLK1 described later, and sends it to the AND gate 26.

アンドゲート26は、メモリ24Aまたはメモリ24Bが読み出した1ビット信号a´i,p,qと、メモリ25が読み出した8ビット信号w´i,q,jとの乗算を行う。アンドゲート26は、乗算結果yi,p,q,j=a´i,p,q×w´i,q,jを加算器27に送る。 The AND gate 26 multiplies the 1-bit signal a ′ i, p, q read by the memory 24A or the memory 24B and the 8-bit signal w ′ i, q, j read by the memory 25. The AND gate 26 sends the multiplication result y i, p, q, j = a ′ i, p, q × w ′ i, q, j to the adder 27.

加算器27は、アンドゲート26の出力データyi,p,q,jを受け取り、L2層のj番目のニューロン毎に、iとqに関する総和を計算する。総和計算を行う際に、加算器27は、後述するCLK1の周波数である114.7[MHz]で順次、yi,p,q,jをその前のCLK1までに計算された部分和に加算する。部分和は、アンドゲート28が供給する。
加算器27は、L2層のj番目のニューロンの、yi,p,q,jのiとqに関する総和Yp,jを計算し終えると、当該和Yp,jを大小比較器29に送る。
The adder 27 receives the output data y i, p, q, j of the AND gate 26 and calculates the sum of i and q for each jth neuron in the L2 layer. When performing the sum calculation, the adder 27 sequentially adds y i, p, q, j to the partial sum calculated up to the previous CLK 1 at 114.7 [MHz] which is the frequency of CLK 1 described later. To do. The partial sum is supplied by the AND gate 28.
The adder 27, the j-th neuron of the L2 layer, y i, p, q, summation relating j i and q Y p, when finishes calculating the j, the sum Y p, the magnitude comparator 29 j send.

アンドゲート28は、L2層のj番目のニューロンの総和計算の最初に端子44に制御信号0が入力されると、0を加算器27の片側入力へ出力し、部分和が0の状態から総和計算が始まるように制御する。   When the control signal 0 is input to the terminal 44 at the beginning of the summation calculation of the jth neuron in the L2 layer, the AND gate 28 outputs 0 to the one-side input of the adder 27, and the summation starts from the state where the partial sum is 0. Control the calculation to start.

大小比較器29は、加算器27で計算された前記総和Yp,jを受け取り、端子43から図示しないレジスタまたは外部から供給される閾値データθよりも当該総和Yp,jが大きい場合に、1を出力する。大小比較器29は、それ以外の場合は、0を出力する。 The magnitude comparator 29 receives the sum Yp , j calculated by the adder 27, and when the sum Yp , j is larger than a threshold value θ supplied from a terminal (not shown) or externally from the terminal 43, 1 is output. The size comparator 29 outputs 0 in other cases.

ラッチ30は大小比較器29が出力した信号を受け取り、端子45から入力されたタイミング信号が0から1に変化したときに、当該出力信号を記憶する。ラッチ30は記憶した当該信号を端子46から出力し、当該出力信号は、L2層のニューロンの出力信号となる。   The latch 30 receives the signal output from the magnitude comparator 29, and stores the output signal when the timing signal input from the terminal 45 changes from 0 to 1. The latch 30 outputs the stored signal from the terminal 46, and the output signal becomes an output signal of the L2 layer neuron.

なお、シナプス結合の重みには正負があるが、本発明の効果に影響しないので、本実施例では正のデータだけとして説明する。   Although the weight of the synapse connection is positive or negative, it does not affect the effect of the present invention. Therefore, in this embodiment, only the positive data will be described.

続いて、本実施例の動作を説明する。図5のニューラルネットでの処理が始まる前に、図示しない任意の方法によって、予めL1層のニューロンの入力データがメモリ21に格納されており、シナプス結合の重みデータもメモリ25に格納されている。また、カウンター20とカウンター23Aとカウンター23Bとカウンター31は図示しないリセット信号によって予め0になっている。   Subsequently, the operation of the present embodiment will be described. Before the processing in the neural network of FIG. 5 starts, the input data of the neurons of the L1 layer is stored in the memory 21 in advance by an arbitrary method (not shown), and the weight data of the synapse connection is also stored in the memory 25. . The counter 20, the counter 23A, the counter 23B, and the counter 31 are set to 0 beforehand by a reset signal (not shown).

初めに、カウンター20のカウント値が0なので、メモリ21のアドレス入力が0になる。メモリ21はアドレス入力が0なので、0番地から(L1層の0番目のニューロンの)4ビットデータを読み出し、パルス列変調回路22に送る。   First, since the count value of the counter 20 is 0, the address input of the memory 21 becomes 0. Since the address input of the memory 21 is 0, the 4-bit data (of the 0th neuron in the L1 layer) is read from address 0 and sent to the pulse train modulation circuit 22.

パルス列変調回路22は、メモリ21から受け取った当該4ビットデータを15ビットデータに変換する。パルス列変調回路22は、当該15ビットデータの適当なビット位置のデータを選択し、自セルのメモリ24Aまたは24Bに出力する。同時に、P0端子を介して、当該選択したデータを隣接セルのメモリ24Aまたは24Bに出力する。   The pulse train modulation circuit 22 converts the 4-bit data received from the memory 21 into 15-bit data. The pulse train modulation circuit 22 selects data at an appropriate bit position of the 15-bit data and outputs it to the memory 24A or 24B of its own cell. At the same time, the selected data is output to the memory 24A or 24B of the adjacent cell via the P0 terminal.

次にデータの処理方法について、説明する。加算器27でa´i,p,q×w´i,q,jの総和を計算するに際して、データのビット位置pと、L2層のニューロンの番号であるjを固定し、L1層の番号iと入力端子の番号qについての総和を計算する。そのために、L2層に於いて端子P0〜P6から入力されるデータを一旦、メモリ24A又はメモリ24Bに格納し、最初のラウンド(ラウンド0)が終了した時点からL2層での処理に用いる。
ここで、ラウンドとは、L1層の0番から255番までのニューロンの各1つのデータ(1[bit]データ)をメモリ24Aまたは24Bに格納する一連の処理の単位である。
Next, a data processing method will be described. When the sum of a ′ i, p, q × w ′ i, q, j is calculated by the adder 27, the bit position p of data and j which is the number of the L2 layer neuron are fixed, and the number of the L1 layer is fixed. Calculate the sum of i and input terminal number q. For this purpose, data input from the terminals P0 to P6 in the L2 layer is temporarily stored in the memory 24A or the memory 24B and used for processing in the L2 layer from the time when the first round (round 0) is completed.
Here, the round is a unit of a series of processing for storing each piece of data (1 [bit] data) of neurons 0 to 255 of the L1 layer in the memory 24A or 24B.

続いて、データフローを説明する。図7は、図5に示す回路の動作を説明するためのタイミングチャートである。図7(a)において、一番上段は、64[kHz]で動作するクロックCLK0であり、4[ms]間のラウンド内に、256回オン、オフする。   Next, the data flow will be described. FIG. 7 is a timing chart for explaining the operation of the circuit shown in FIG. In FIG. 7A, the uppermost stage is a clock CLK0 operating at 64 [kHz], which is turned on and off 256 times within a round of 4 [ms].

2段目は、出力端子P0に出力される信号xi,k(iは0から255までの整数であり、L1層のニューロンの番号を表す。kは整数であり、ラウンド番号を表す)であり、ラウンドkにおける、i番目のニューロンの出力信号を表している。例えば、ラウンド0のクロック番号2では、端子P0から出力される信号はx2,0である。 The second stage is a signal x i, k (i is an integer from 0 to 255 and represents the number of a neuron in the L1 layer . K is an integer and represents a round number) output to the output terminal P0. Yes, it represents the output signal of the i-th neuron in round k. For example, in the clock number 2 of round 0, the signal output from the terminal P0 is x 2,0 .

3段目は、メモリ24Aに格納されたデータを表す。「Valid」は、1,792個の有効な値がメモリ24A中に揃ったことを表している。つまり、ラウンドが偶数番目の1番目のCLK0から次のラウンドにおける1番目のCLK0がオンになるまでに、入(出)力端子P0〜P6から入力されて、メモリ24Aに書き込まれたデータである。   The third row represents data stored in the memory 24A. “Valid” indicates that 1,792 valid values are arranged in the memory 24A. That is, the data is input from the input / output force terminals P0 to P6 and written in the memory 24A from the even-numbered first CLK0 to the first CLK0 in the next round being turned on. .

4段目は、メモリ24Bに格納されたデータを表す。「Valid」は、1,792個の有効な値がメモリ24B中に揃ったことを表している。つまり、ラウンドが奇数番目の1番目のCLK0から次のラウンドにおける1番目のCLK0がオンになるまでに、入(出)力端子P0〜P6から入力されて、メモリ24Bに書き込まれたデータである。   The fourth row represents data stored in the memory 24B. “Valid” indicates that 1,792 valid values are arranged in the memory 24B. That is, the data is input from the input / output force terminals P0 to P6 and written in the memory 24B from the odd first CLK0 in the round until the first CLK0 in the next round is turned on. .

図7(a)のタイミングチャートにおいて、ラウンド0では、パルス列変調回路22は、図6に示す15ビットデータのLSB、すなわちビット0を出力するよう制御する。パルス列変調回路22は、当該LSBを出力端子P0から隣接するセルに出力するとともに、当該パルス列変調回路22が属するセルのメモリ24Aに出力する。   In the timing chart of FIG. 7A, in round 0, the pulse train modulation circuit 22 controls to output LSB of 15-bit data shown in FIG. 6, that is, bit 0. The pulse train modulation circuit 22 outputs the LSB from the output terminal P0 to an adjacent cell and also outputs it to the memory 24A of the cell to which the pulse train modulation circuit 22 belongs.

なお、本実施例では、ラウンド0ではパルス列変調回路22は、毎CLK0の立ち上がりで、L1層の各ニューロンのデータを変換した15ビットデータのLSBを出力する。   In this embodiment, in round 0, the pulse train modulation circuit 22 outputs LSB of 15-bit data obtained by converting the data of each neuron in the L1 layer at the rising edge of every CLK0.

隣接セルのメモリ24Aでは、前記端子P0から出力されたデータを受信する。自セルのメモリ24Aでは、セルの配置が対称なので、入力端子P1〜P6から隣接セルのパルス列変調回路22が出力したデータを受信する。ここで、自セルのパルス列変調回路22の出力データと端子P1〜P6から入力されるデータとを合わせて7ビットのデータとし、メモリ24Aは、当該7ビットデータを0番地に格納する。   The adjacent cell memory 24A receives the data output from the terminal P0. In the memory 24A of the own cell, since the cell arrangement is symmetrical, the data output from the pulse train modulation circuit 22 of the adjacent cell is received from the input terminals P1 to P6. Here, the output data of the pulse train modulation circuit 22 of the own cell and the data input from the terminals P1 to P6 are combined into 7-bit data, and the memory 24A stores the 7-bit data at address 0.

図7(b)のタイミングチャートは、ラウンド1においてCLK0の1番目のクロックの時間幅を拡大したものである。図7(b)において、一番上段は、114.7[MHz]で動作するクロックCLK1であり、15.6[μs](=4[ms]÷256)中に、1,792回オン、オフする。   In the timing chart of FIG. 7B, the time width of the first clock of CLK0 in round 1 is expanded. In FIG. 7B, the top row is the clock CLK1 operating at 114.7 [MHz], and is turned on 1,792 times during 15.6 [μs] (= 4 [ms] ÷ 256). Turn off.

2段目は、端子42Aに入力されるカウントアップ信号である。15.6[μs]中に、256回オン、オフする。
3段目は、カウンター23Aが出力するデータQ−23Aである。端子42Aに入力されるカウント信号が立ち上がる度に1ずつ増加する。
The second stage is a count-up signal input to the terminal 42A. Turns on and off 256 times during 15.6 [μs].
The third level is data Q-23A output from the counter 23A. Each time the count signal input to the terminal 42A rises, it increases by one.

4段目は、メモリ24Aまたはメモリ24Bが出力する信号a´i,p,qである。 The fourth level is signals a ′ i, p, q output from the memory 24A or the memory 24B.

5段目は、メモリ25が出力するシナプス結合の重みw´i,q,jである。 The fifth row shows synaptic connection weights w ′ i, q, j output from the memory 25.

6段目は、加算器27の出力である。Σyi,qはyi,qのiとqに関する和である。ここで、yi,qは、あるCLK1の直前のクロックで出力されたa´i,p,qとw’i,q,jの積である。任意のL2層のニューロン22についての総和計算を行う間はpとjが一定なので、タイミングチャートを見やすくする為に、添え字pと添え字jの表示を省略している。 The sixth stage is the output of the adder 27. Σy i, q is the sum of y i, q with respect to i and q. Here, y i, q is the product of a ′ i, p, q and w ′ i, q, j output at the clock immediately before a certain CLK1. Since p and j are constant during the total calculation for the neuron 22 j in any L2 layer, the subscript p and the subscript j are not shown in order to make the timing chart easier to see.

加算器27は、アンドゲート26が出力したyi,qを受け取り、直前のクロックまでに算出したyi,qの部分和に、当該yi,qを加算する。従って、加算器27は、CLK1が1,792回オンすると、L2層のj番目のニューロンに入力される信号であるyi,qのiとqに関する和Yを算出する。ここで、添え字pの表示を省略している。
7段目は、ラッチ30が出力する端子46の信号を表している。「Valid」は、有効な値を表している。端子46の信号は、L2層のj番目のニューロンの出力を表している。ラッチ30は、L2層のj番目のニューロンの出力を端子46に15.6[μs]間出力する。
The adder 27 receives the y i, q of the AND gate 26 is outputted, y was calculated immediately before the clock i, the partial sum of q, and adds the y i, q. Accordingly, when CLK1 is turned on 1,792 times, the adder 27 calculates a sum Y j of y i, q that is input to the j-th neuron of the L2 layer with respect to i and q. Here, the display of the subscript p is omitted.
The seventh row represents the signal of the terminal 46 output from the latch 30. “Valid” represents a valid value. The signal at terminal 46 represents the output of the jth neuron in the L2 layer. The latch 30 outputs the output of the j-th neuron in the L2 layer to the terminal 46 for 15.6 [μs].

端子41に入力される信号と端子42Aに入力される信号が立ち上がり、8ビットカウンター20と8ビットカウンター23Aのカウント値がu(uは整数)になると、メモリ21は、u番地のデータを読みだし、パルス列変調回路22に出力する。
パルス列変調回路22は、メモリ21が出力した当該データを受け取り、15ビットデータに変換する。
When the signal input to the terminal 41 and the signal input to the terminal 42A rise and the count values of the 8-bit counter 20 and the 8-bit counter 23A become u (u is an integer), the memory 21 reads the data at address u. However, it is output to the pulse train modulation circuit 22.
The pulse train modulation circuit 22 receives the data output from the memory 21 and converts it into 15-bit data.

そして、パルス列変調回路22は、当該15ビットデータのうち、LSBだけをメモリ24Aに出力するとともに、端子P0を介して隣接するセルのメモリ24Aへ出力する。そして、メモリ24Aは、端子P0から出力されるデータと端子P1〜P6から入力されるデータとを合わせた7ビットのデータを、u番地に格納する。
このようにして、カウンター20とカウンター23Aが255を超えて0に戻るまで、データの転送が行われるとラウンド0が終了する。
Then, the pulse train modulation circuit 22 outputs only the LSB of the 15-bit data to the memory 24A and also outputs it to the memory 24A of the adjacent cell via the terminal P0. Then, the memory 24A stores 7-bit data in which the data output from the terminal P0 and the data input from the terminals P1 to P6 are combined at the u address.
In this way, the round 0 ends when the data transfer is performed until the counter 20 and the counter 23A exceed 255 and return to 0.

L1層からL2層へ256個(256ビット)のデータを4[ms]で転送するので、一連の処理速度は64[kHz]である。次のラウンド1では、パルス列変調回路22は15ビットデータのうち、最下位ビットから1ビット上位のデータをメモリ24Bに出力する。   Since 256 (256 bits) data is transferred from the L1 layer to the L2 layer in 4 [ms], a series of processing speeds is 64 [kHz]. In the next round 1, the pulse train modulation circuit 22 outputs 15 bits of data one bit higher than the least significant bit to the memory 24B.

メモリ24Bは、自セルのパルス列変調回路22が出力したデータと隣接したセルのパルス列変調回路22が出力したデータとを受け取り、当該データを格納する。
この様にして、ラウンドが切り替わるごとに、メモリ24Aと24Bが交互に使われる。
The memory 24B receives the data output from the pulse train modulation circuit 22 of its own cell and the data output from the pulse train modulation circuit 22 of the adjacent cell, and stores the data.
In this way, the memories 24A and 24B are used alternately each time the round is switched.

ラウンド14で、パルス列変調回路22が、前記15ビットデータのうち最上位ビットのデータを自セルのメモリ24Aと隣接するセルのメモリ24Aに転送し終わると、メモリ21に入っているデータの処理が終わる。更に、ニューラルネットでの処理を継続する場合は、図示していない外部回路により、メモリ21に新たなデータを書き込むか、又はメモリ21をダブルバッファ構造にして、ニューラルネットでの処理と並行して、外部回路により次のデータを書き込んでおく。ここまでで、L1層のニューロンの動作についての説明を終了する。   When the pulse train modulation circuit 22 finishes transferring the most significant bit data of the 15-bit data to the memory 24A of the cell adjacent to the self-cell memory 24A in round 14, the processing of the data stored in the memory 21 is performed. End. Further, when the processing in the neural network is continued, new data is written into the memory 21 by an external circuit (not shown), or the memory 21 is made to have a double buffer structure in parallel with the processing in the neural network. Then, the next data is written by an external circuit. This is the end of the description of the operation of the L1 layer neuron.

次に、L2層のニューロンの動作について説明する。図7(a)において、ラウンド0が終わり、メモリ24Aに1,792(=256[ニューロン]×7[セル])個のaが揃うと、ラウンド1における1番目のCLK0の立ち上がりから、L2層のニューロンにおける処理が始まる。 Next, the operation of the L2 layer neuron will be described. In FIG. 7A, when round 0 is completed and 1,792 (= 256 [neuron] × 7 [cell]) a i are arranged in the memory 24A, L2 from the rising edge of the first CLK0 in round 1 Processing in the neurons of the layer begins.

L2層側では1個のニューロン当たり、1,792回の積和演算をしなければならないので、図7(b)に示すようにL1層側の1,792倍のスピード即ち、114.7[MHz]で処理する。   On the L2 layer side, 1,792 product-sum operations must be performed for each neuron, so as shown in FIG. 7B, the speed is 1,792 times that of the L1 layer side, that is, 114.7 [ [MHz].

メモリ24Aは、64[kHz]の256倍の16.384[MHz]で7ビットのデータを読み出し、当該7ビットデータを並直変換して7倍の114.7[Mbps]の1ビット信号a´i,p,qにする(図7(b)4段目)。この動作とともに、メモリ25は、対応する8ビットのシナプス結合の重みデータw´i,q,jを114.7[MHz]で読み出し、アンドゲート26に出力する(図7(b)5段目)。 The memory 24A reads 7-bit data at 16.384 [MHz], which is 256 times 64 [kHz], and converts the 7-bit data into a parallel signal, thereby converting the 7-bit data by 114.7 [Mbps] into a 1-bit signal a. ' I, p, q (4th stage in FIG. 7B). Along with this operation, the memory 25 reads the corresponding 8-bit synapse connection weight data w ′ i, q, j at 114.7 [MHz] and outputs it to the AND gate 26 (FIG. 7B, the fifth stage). ).

アンドゲート26は、入力されたa´i,p,qとw´i,q,jが揃うと、当該入力同士を乗算して、8ビットのyi,q(=a´i,p,q×w´i,q,j)を算出する。ここで、L2層の1個のニューロンについての総和計算の間はpとjは一定なので、これらの表記を省略している。アンドゲート26は、算出したyi,qを加算器27に出力する。 When the input a ′ i, p, q and w ′ i, q, j are aligned, the AND gate 26 multiplies the inputs to obtain 8-bit y i, q (= a ′ i, p, q × w ′ i, q, j ) is calculated. Here, since p and j are constant during the summation calculation for one neuron in the L2 layer, these notations are omitted. The AND gate 26 outputs the calculated y i, q to the adder 27.

加算器27は、順次yi,qを、前のCLK1までに算出された部分和に加算して、次のCLK1の立ち上がりでiとqに関するyi,qの次の部分和を算出する(図7(b)6段目)。総和計算の最初に、端子44に0が入力され、加算器27の片側に入力されるデータが0になることによって、部分和が初期化される。 The adder 27 sequentially adds y i, q to the partial sum calculated up to the previous CLK1, and calculates the next partial sum of y i, q with respect to i and q at the next rising edge of CLK1 ( FIG. 7B (6th stage). At the beginning of the summation calculation, 0 is input to the terminal 44 and the data input to one side of the adder 27 becomes 0, whereby the partial sum is initialized.

総和計算が終わると、大小比較器29は、当該総和Yを閾値θと比較し、総和Yが閾値θよりも大きければ出力を1にし、小さければ出力を0にする。この出力は114.7[MHz]のパルス状に出る。しかし、そのままの出力ではその後の処理の際に扱いづらい。 When the summation calculation is completed, the magnitude comparator 29 compares the summation Yj with the threshold value θ, and sets the output to 1 if the summation Yj is larger than the threshold value θ, and sets the output to 0 if it is smaller. This output is in the form of a pulse of 114.7 [MHz]. However, the output as it is is difficult to handle in subsequent processing.

そこで、ラッチ30は、端子45から入力されるタイミング信号によって、大小比較器29が出力したデータを保持し、64[Kbps]の信号にして出力する。
例えば、Hebbの学習則によってメモリ25の内容を変化させる場合は、ラッチ30をメモリに置き換えて、L2層の出力データを当該メモリに記録する。
Therefore, the latch 30 holds the data output from the magnitude comparator 29 according to the timing signal input from the terminal 45, and outputs it as a signal of 64 [Kbps].
For example, when the contents of the memory 25 are changed according to the Hebb's learning rule, the latch 30 is replaced with the memory, and the output data of the L2 layer is recorded in the memory.

なお、シナプス結合の重みwi,jを格納するメモリ25は、自セルのL1層のニューロンについての重み情報と、隣接セルのニューロンについての重み情報とを混在して格納している。これが不便な場合は、端子P0〜P6毎にメモリ25を7個に分割することも可能である。そして、アンドゲート26と、加算器27と、アンドゲート28をそれぞれ7回路分用意すれば、メモリ25の内容が扱い易くなるだけでなく、加算器27の計算速度を1/7の16.4[MHz]にできる。 Note that the memory 25 for storing the synaptic connection weights w i, j stores a mixture of weight information for the neurons in the L1 layer of the own cell and weight information for the neurons of the adjacent cells. If this is inconvenient, the memory 25 can be divided into seven for each of the terminals P0 to P6. If seven AND gates 26, adders 27, and AND gates 28 are prepared for each of the seven circuits, not only the contents of the memory 25 are easy to handle, but also the calculation speed of the adder 27 is 16.4 of 1/7. [MHz] can be set.

本実施例では、L1層からL2層へはパルス列によって情報が伝わる、所謂パルスニューラルネットについて説明したが、本発明はこれに制限されるものではなく、情報を複数ビットによって伝えるニューラルネットでも同様に適用できる。その適用例を図8に示す。   In this embodiment, a so-called pulse neural network in which information is transmitted from the L1 layer to the L2 layer by a pulse train has been described. However, the present invention is not limited to this, and a neural network that transmits information by a plurality of bits is similarly used. Applicable. An example of the application is shown in FIG.

図8は、本発明の一実施形態による回路ユニットを信号が複数ビットで表されるニューラルネットワークで用いるニューロン群を模擬した回路図である。図8の回路は、L1層からL2層へ伝える信号a´i,qを1ビットから4ビットに変更した回路である。それに伴い図8の回路では、図5のアンドゲート26を乗算器50に置換し、端子P0〜P6からメモリ24Aまたはメモリ24Bへの配線を7本から28本に増加させ、メモリ24Aまたはメモリ24Bから乗算器50への配線を1本から4本に増加させたものである。 FIG. 8 is a circuit diagram simulating a neuron group that uses a circuit unit according to an embodiment of the present invention in a neural network in which a signal is represented by a plurality of bits. The circuit of FIG. 8 is a circuit in which the signals a ′ i, q transmitted from the L1 layer to the L2 layer are changed from 1 bit to 4 bits. Along with this, in the circuit of Figure 8, by replacing the multiplier 50 and the AND gate 26 of FIG. 5, it is increased from the terminal P0~P6 the wiring to the memory 24A or the memory 24B to 28 present the seven, memory 24A or the memory The number of wires from 24B to the multiplier 50 is increased from one to four.

図8の回路のうち、図5の回路と異なる点についてのみ、以下で説明する。
本実施例ではパルス列変調回路が不要なので、メモリ21から読み出したデータをそのまま、メモリ24A、メモリ24B及び出力端子P0に出力する。
Only the differences of the circuit of FIG. 8 from the circuit of FIG. 5 will be described below.
In this embodiment, since the pulse train modulation circuit is unnecessary, the data read from the memory 21 is output as it is to the memory 24A, the memory 24B, and the output terminal P0.

メモリ24Aとメモリ24Bは、28本の信号線を介して、4ビット幅の端子P0と入力端子P1〜P6から入力されるデータとを合わせて28ビット幅のデータとし、それらを順次格納する。従って、メモリ24Aとメモリ24Bの記憶容量はそれぞれ4倍(28[bit]×256)必要になる。
乗算器50は、メモリ24Aまたはメモリ24Bが読みだしたa´i,qと、メモリ25が読みだしたシナプス結合の重みw´i,q,jを乗算し、加算器27に出力する。このように、パルスニューラルネット以外でも、本発明は適用できる。
The memory 24A and the memory 24B combine the data input from the 4-bit width terminal P0 and the input terminals P1 to P6 through 28 signal lines into 28-bit width data, and sequentially store them. Accordingly, the storage capacities of the memory 24A and the memory 24B are each required to be four times (28 [bit] × 256).
The multiplier 50 multiplies the a ′ i, q read by the memory 24 A or the memory 24 B and the weight w ′ i, q, j of the synapse connection read by the memory 25, and outputs the result to the adder 27. Thus, the present invention can be applied to other than the pulse neural network.

上記例の場合、端子P0から出力される情報は64[kbps]という低速な4本の信号線で送られることになり、それを受け取るP1〜P6の入力端子はそれぞれ4ビット幅になる。一般的に、LSIの端子やPCB上の配線などを増設することはコストを高めるので、これでは無駄である。   In the case of the above example, the information output from the terminal P0 is sent through four low-speed signal lines of 64 [kbps], and the input terminals of P1 to P6 that receive it have a 4-bit width. In general, adding an LSI terminal or a wiring on a PCB increases costs, and this is useless.

そこで、メモリ21の出力部に並直変換器を入れてデータ伝送速度が4倍の1本の信号線にすれば、隣接セル間を1本の信号線で接続できる。並直変換された信号を受け取る側では、それをそのまま7ビットの信号として4倍の速度でメモリ24Aまたはメモリ24Bに書き込むこともできるし、或いは直並変換し直して、28ビット幅のデータとして書き込むこともできる。   Therefore, if a parallel-to-parallel converter is inserted in the output section of the memory 21 to form a single signal line with a data transmission rate of 4 times, adjacent cells can be connected by a single signal line. On the side of receiving the parallel-converted signal, it can be directly written into the memory 24A or the memory 24B as a 7-bit signal at a speed four times, or it can be converted again and again as 28-bit width data. You can also write.

また、図5および図8の本発明の実施例では、L2層の仮想ニューロンは前のラウンドでの処理結果を無視するものとして説明したが、時間履歴を考慮した処理をしてもよい。
図9は、総和計算結果の時間履歴を考慮するニューロンを実現するための回路図である。例えば、図8の回路の乗算器50から大小比較器29までの回路を図9の回路で置換した回路によって、加算器27が算出した総和が適当に減衰されて、次のラウンドでの総和計算の初期値になる。
In the embodiments of the present invention shown in FIGS. 5 and 8, the virtual neuron in the L2 layer has been described as ignoring the processing result in the previous round, but processing may be performed in consideration of the time history.
FIG. 9 is a circuit diagram for realizing a neuron that considers the time history of the summation calculation result. For example, the sum calculated by the adder 27 is appropriately attenuated by a circuit obtained by replacing the circuit from the multiplier 50 to the magnitude comparator 29 in the circuit of FIG. 8 with the circuit of FIG. It becomes the initial value of.

図9に示す総和計算結果の時間履歴を考慮する回路は、乗算器50と、加算器27と、大小比較器29と、乗算器52と、メモリ53と、累積加算の最初にメモリ53のデータを加える為のセレクタ51とを用いて構成されている。乗算器50と、大小比較器29とは図8と同じであるため、説明を省略する。   The circuit considering the time history of the sum calculation result shown in FIG. 9 includes a multiplier 50, an adder 27, a magnitude comparator 29, a multiplier 52, a memory 53, and data in the memory 53 at the beginning of cumulative addition. It is comprised using the selector 51 for adding. The multiplier 50 and the magnitude comparator 29 are the same as those in FIG.

メモリ53は、図示しない回路によって、初めに全てのアドレスに0が格納されている。メモリ53は、L2層のj番目のニューロンの総和計算の最初に、そのj番地に格納されている前回のラウンドでの総和計算結果が減衰されて格納されたデータを読みだして、セレクタ51のA入力へ送る。
セレクタ51は、L2層のj番目のニューロンの総和計算の最初に、端子48から入る信号が0になり、メモリ53から受けとった当該データを、端子Yに出力する。その後は、端子48から入る信号が1になり、加算器27が出力する部分和を端子Yに出力する。
加算器27は、L2層のj番目のニューロンの総和計算の最初にセレクタ51を介して、メモリ53に格納されている前回のラウンドでの総和計算結果が減衰されたデータを受け取り、別の入力から入るa´0,0×w´0,0,jとの部分和を計算する。その後セレクタ51は加算器27が算出する部分和を出力するので、順次a´i,q×w´i,q,jを累積加算する
乗算器52は、加算器27が計算した総和に、端子49から入力される図示しないレジスタ又は外部から供給される一定時間後の減衰率を与える信号を乗算し、当該乗算結果をメモリ53に出力する。但し、大小比較器29の出力が1になる場合は、即ちニューロンが発火したので、次回の総和計算を0から始める為に、乗算器52は、図示しない回路によってその出力を0にし、当該0をメモリ53へ送る。
In the memory 53, 0 is initially stored in all addresses by a circuit (not shown). At the beginning of the summation calculation of the j-th neuron in the L2 layer, the memory 53 reads the data stored after the summation calculation result stored in the j-th address is attenuated, and the selector 51 Send to A input.
At the beginning of the sum calculation of the j-th neuron in the L2 layer, the selector 51 outputs a signal received from the terminal 48 as 0 and the data received from the memory 53 to the terminal Y. Thereafter, the signal input from the terminal 48 becomes 1, and the partial sum output from the adder 27 is output to the terminal Y.
The adder 27 receives, via the selector 51, the attenuated sum calculation result in the previous round stored in the memory 53 via the selector 51 at the beginning of the sum calculation of the Lth layer jth neuron, and receives another input. To calculate the partial sum of a ′ 0,0 × w ′ 0,0, j . Thereafter, the selector 51 outputs the partial sum calculated by the adder 27, so that a ′ i, q × w ′ i, q, j are sequentially accumulated and added. The multiplier 52 adds the terminal sum to the sum calculated by the adder 27. Multiply by a register (not shown) input from 49 or a signal giving an attenuation factor after a certain time supplied from the outside, and the multiplication result is output to the memory 53. However, when the output of the magnitude comparator 29 becomes 1, that is, since the neuron has fired, in order to start the next summation calculation from 0, the multiplier 52 sets its output to 0 by a circuit (not shown). Is sent to the memory 53.

メモリ53は、乗算器52が出力した減衰された総和計算結果を受け取り、当該データをj番地に書き込む。   The memory 53 receives the attenuated sum calculation result output from the multiplier 52 and writes the data at address j.

セレクタ51は、端子48に入力された信号Sによって、メモリ53から入力された信号Aと加算器27から入力された信号を切り替え、当該切り替えた信号を端子Yから加算器27に出力する。   The selector 51 switches between the signal A input from the memory 53 and the signal input from the adder 27 according to the signal S input to the terminal 48, and outputs the switched signal from the terminal Y to the adder 27.

図9に示す出力の時間履歴を考慮する回路を用いると、前のラウンドで計算された総和に減衰率を掛けたデータを加算器27の片方の入力端子に入力させることができる。これによって、時間履歴を考慮した処理をさせることができる。   If the circuit considering the time history of the output shown in FIG. 9 is used, data obtained by multiplying the sum calculated in the previous round by the attenuation factor can be input to one input terminal of the adder 27. Thereby, it is possible to perform processing in consideration of the time history.

図5の実施例では、L2層に於いて、端子P0〜P6から入力されたデータを一旦、メモリ24A又はメモリ24Bに格納し、1回目のラウンドが終了した時点からL2層での処理に用いていた。これはL2層のj番目のニューロンに対するΣ(a´i,p,q×w´i,q,j)の計算を行うに際して、L2層のニューロンの番号であるjを固定し、L1層の番号iと端子番号qについての総和を一度に計算する為である。ところで、a´i,p,qが7個(a´i,p,0〜a´i,p,6)到着する度にa´i,p,q×w´i,q,jを全てのjについて計算し、それを前回のa´i―1,p,qが到着した時点までに計算した、L2層のニューロン毎の部分和に加算して新たな部分和とし、当該部分和を一旦メモリに格納し、次の、a´i+1,p,qが到着した時に前記メモリから当該部分和を読み出して新たな部分和の計算に用いる、という手順によって総和を計算することも可能である。 In the embodiment of FIG. 5, in the L2 layer, the data input from the terminals P0 to P6 is temporarily stored in the memory 24A or the memory 24B and used for processing in the L2 layer from the time when the first round is completed. It was. This is because when calculating Σ (a ′ i, p, q × w ′ i, q, j ) for the j-th neuron in the L2 layer, the number j of the L2 layer is fixed and j in the L1 layer is fixed. This is because the sum for the number i and the terminal number q is calculated at once. Incidentally, a'i, p, q are seven (a'i, p, 0 ~a' i, p, 6) a' every arriving i, p, q × w'i , q, all j J is added to the partial sum for each neuron of the L2 layer, which is calculated up to the time when the previous a ′ i−1, p, q arrives, and a new partial sum is obtained. It is also possible to calculate the total sum by a procedure in which it is once stored in the memory, and when the next a ′ i + 1, p, q arrives, the partial sum is read from the memory and used for calculating a new partial sum. .

その回路例を図10に示す。図10は、本発明の一実施形態による回路ユニットをパルスニューラルネットワークで用いるニューロン群を模擬した別の回路図である。図5の回路と比較して、メモリ24Aとメモリ24Bの代わりに、端子P0〜P6とアンドゲート26の間に並直変換回路54が挿入されており、アンドゲート28の代わりに、セレクタ51とメモリ55が挿入されている。図5の回路と異なる点についてのみ以下で説明する。   An example of the circuit is shown in FIG. FIG. 10 is another circuit diagram simulating a neuron group using a circuit unit according to an embodiment of the present invention in a pulse neural network. Compared with the circuit of FIG. 5, instead of the memory 24 </ b> A and the memory 24 </ b> B, a parallel-to-parallel conversion circuit 54 is inserted between the terminals P <b> 0 to P <b> 6 and the AND gate 26. A memory 55 is inserted. Only differences from the circuit of FIG. 5 will be described below.

並直変換回路54は端子P0〜P6から入力された7ビットのデータを並直変換し、1ビット信号a´i,p,qとしてアンドゲート26に出力する。
加算器27は、アンドゲート26が出力したデータとセレクタ51が出力したデータを受け取り、当該2つのデータを加算し、当該加算したデータをセレクタ51とメモリ55と大小比較器29に出力する。
The parallel-to-serial conversion circuit 54 performs parallel-to-serial conversion on the 7-bit data input from the terminals P0 to P6 and outputs the data to the AND gate 26 as 1-bit signals a ′ i, p, and q .
The adder 27 receives the data output from the AND gate 26 and the data output from the selector 51, adds the two data, and outputs the added data to the selector 51, the memory 55, and the magnitude comparator 29.

メモリ55は、加算器27が出力したj番目のニューロンの総和計算途中の部分和を受け取り、それを一時的にj番地に格納する。また、メモリ55は、図示されていない回路から端子Aに入力された信号に応じて、データを読み出してセレクタ51に出力する。
セレクタ51は、その入力端子48が0の場合は0を加算器27に送り、入力端子48が1の場合はメモリ55が出力したデータを加算器27に送り、入力端子48が2の場合は加算器27が出力したデータを加算器27に送る。
The memory 55 receives the partial sum during the sum calculation of the j-th neuron output from the adder 27 and temporarily stores it in the j-th address. Further, the memory 55 reads out data according to a signal input to the terminal A from a circuit (not shown) and outputs the data to the selector 51.
When the input terminal 48 is 0, the selector 51 sends 0 to the adder 27. When the input terminal 48 is 1, the selector 51 sends the data output from the memory 55 to the adder 27. The data output from the adder 27 is sent to the adder 27.

続いて、図10の回路の処理の流れを説明する。まず、L1層から0番目のニューロンのデータa´0,0,q(qは0〜6の整数)が7個到着すると、メモリ25はL2層のニューロン番号0の、端子P0からの信号に対応するシナプス結合の重みデータw´0,0,0から端子P6からの信号に対応するシナプス結合の重みデータデータw´0,6,0を順に読み出す。 Next, the process flow of the circuit of FIG. 10 will be described. First, when seven pieces of data a ′ 0,0, q (q is an integer of 0 to 6) of the zeroth neuron arrive from the L1 layer, the memory 25 receives the signal from the terminal P0 of the neuron number 0 of the L2 layer. The corresponding synapse connection weight data w ′ 0,0,0 is sequentially read out from the synapse connection weight data w ′ 0,6,0 corresponding to the signal from the terminal P6.

次に、アンドゲート26は、並直変換器54が出力したa´0,0,qとメモリ25が出力した重みデータw´0,q,0を乗算し、加算器27に出力するという処理を、qが0から6まで繰り返す。
セレクタ51の入力端子48は、qが0のタイミング即ち、a´0,0,0×w´0,0,0が加算器27に入る時に0になり、総和計算の初期値を0にする。その後、qが1から6のタイミングでは2になり、加算器27の出力a´0,0,q×w´0,q,0の累算を行う。
加算器27が、a´0,0,6×w´0,6,0までの累算を行うと、その計算結果(部分和)を、メモリ55が0番地に格納する。
以下同様にして、L2層のニューロン番号255まで同様の計算を行い、メモリ55が255番地に部分和を格納するまで、処理を繰り返す。
Next, the AND gate 26 multiplies the a ′ 0,0, q output from the parallel-to-serial converter 54 by the weight data w ′ 0, q, 0 output from the memory 25 and outputs the result to the adder 27. Is repeated from q to 0-6.
The input terminal 48 of the selector 51 becomes 0 when q is 0, that is, when a ′ 0,0,0 × w ′ 0,0,0 enters the adder 27, and sets the initial value of the sum calculation to 0. . Thereafter, q becomes 2 at the timing of 1 to 6, and the output a ′ 0,0, q × w ′ 0, q, 0 of the adder 27 is accumulated.
When the adder 27 performs accumulation up to a ′ 0,0,6 × w ′ 0,6,0 , the memory 55 stores the calculation result (partial sum) at address 0.
Similarly, the same calculation is performed up to the neuron number 255 of the L2 layer, and the process is repeated until the memory 55 stores the partial sum at address 255.

次に、L1層から1番目のニューロンのデータa´1,0,qが7個到着すると、同様に計算するが、前回の処理でセレクタ51の端子48が0になったタイミングで、端子48に入る信号は1になる。同時にメモリ55が、格納している部分和を読み出してセレクタ51に送る。そして、L1層の0番目のニューロンからの出力に応じて計算した部分和に、新たにL1層の1番目のニューロンからの出力に応じて計算したデータ(a´1,0,q×w´1,q,j)を加算し、その結果をメモリ55のj番地に記憶する。
以下、同様の操作をL1層の255番目のニューロンまで繰り返す。
Next, when seven pieces of data a ′ 1, 0, q of the first neuron arrive from the L1 layer, the same calculation is performed, but at the timing when the terminal 48 of the selector 51 becomes 0 in the previous processing, the terminal 48 The signal going into is 1. At the same time, the memory 55 reads the stored partial sum and sends it to the selector 51. Then, the data (a ′ 1, 0, q × w ′) newly calculated according to the output from the first neuron of the L1 layer is added to the partial sum calculated according to the output from the 0th neuron of the L1 layer. 1, q, j ) is added, and the result is stored at address j of the memory 55.
Thereafter, the same operation is repeated up to the 255th neuron in the L1 layer.

このように処理することで、L1層から255番目のデータが到着した時点で、L2層の全ての処理が終了する。なお、並直変換回路54は後段のアンドゲート26や加算器27などを7回路分用意すれば省略可能である。また、メモリ55は図9の実施例に於けるメモリ53と共用できる。また、L1層の255番目のデータまでの部分和は、即ち総和になる。当該総和が計算された時点で、コンパレータ29は当該総和と閾値θを比較し、当該比較結果をラッチ30に出力する。ラッチ30は、当該比較結果を図示しない回路から端子45に供給されるタイミング信号によってラッチし、当該ラッチした信号を端子46から出力する。従って、L2層の出力となる端子46の出力信号は、L1層の出力信号の256倍の速度でバースト的に出ることになる。ラッチ30を1[bit]×256のメモリに置き換え、大小比較器29のデータを前記メモリに一旦格納し、L1層の出力データと同じ速度で前記メモリからデータを読み出して出力することで、L1層と同じ速度でL2層から出力データを出力することもできる。   By processing in this way, when the 255th data arrives from the L1 layer, all the processing in the L2 layer is completed. Note that the parallel-to-serial conversion circuit 54 can be omitted if seven circuits such as the AND gate 26 and the adder 27 in the subsequent stage are prepared. The memory 55 can be shared with the memory 53 in the embodiment of FIG. The partial sum up to the 255th data in the L1 layer is the sum. When the sum is calculated, the comparator 29 compares the sum with the threshold value θ and outputs the comparison result to the latch 30. The latch 30 latches the comparison result with a timing signal supplied from a circuit (not shown) to the terminal 45, and outputs the latched signal from the terminal 46. Therefore, the output signal of the terminal 46, which is the output of the L2 layer, comes out in a burst manner at a speed 256 times that of the output signal of the L1 layer. The latch 30 is replaced with a 1 [bit] × 256 memory, the data of the large / small comparator 29 is temporarily stored in the memory, the data is read from the memory at the same speed as the output data of the L1 layer, and is output. Output data can also be output from the L2 layer at the same speed as the layer.

以上、説明したように本発明の別の実施例では、L1層からのデータを一時的に格納するメモリ24Aと24Bを省略できるが、計算途中のデータを格納するメモリ55が必要になる。加算器27がオーバーフローしない為には16ビット以上必要であるから、メモリ55の容量は16[bit]×256になる。   As described above, in another embodiment of the present invention, the memories 24A and 24B for temporarily storing data from the L1 layer can be omitted, but the memory 55 for storing data being calculated is required. Since the adder 27 does not overflow, 16 bits or more are necessary, so the capacity of the memory 55 is 16 [bit] × 256.

一方、メモリ24Aと24Bの容量はそれぞれ7[bit]×256である。メモリ24Aと24Bのワード数はL1層のニューロン数に比例し、メモリ55のワード数はL2層のニューロン数に比例する。L1層とL2層のニューロン数に応じて、図5の実施例か図10の実施例の、必要なメモリ量が少ない方を選ぶことができる。   On the other hand, the capacities of the memories 24A and 24B are 7 [bit] × 256, respectively. The number of words in the memories 24A and 24B is proportional to the number of neurons in the L1 layer, and the number of words in the memory 55 is proportional to the number of neurons in the L2 layer. Depending on the number of neurons in the L1 layer and the L2 layer, it is possible to select either the embodiment of FIG. 5 or the embodiment of FIG.

<実施例1の効果>
本実施例1の方法によれば、或るセルのL1層のニューロンが出力する出力データを、その出力信号が供給されるL2層の全てのニューロンが共有するので、データを受け取るL2層のニューロンを識別する必要がない。従って、出力データと一緒に、AER法で必要であった宛先アドレス情報を送る必要がなくなる。また、L1層とL2層間で同期してデータ転送を行い、L2層ではデータを受け取った時刻からL1層のニューロンの番号を識別するので、AER法でPayloadとして送っていた送信元アドレス情報も不要になる。L1層からL2層へ256[bit]のデータを4[ms]で送るとすると、データ転送速度は256[bit]÷4[ms]=64[Kbps]と非常に低速であるので、実装が容易である。
<Effect of Example 1>
According to the method of the first embodiment, the output data output by the L1 layer neuron of a certain cell is shared by all the neurons of the L2 layer to which the output signal is supplied. There is no need to identify. Therefore, it is not necessary to send the destination address information required by the AER method together with the output data. In addition, data is transferred synchronously between the L1 layer and the L2 layer, and the L2 layer identifies the number of the neuron in the L1 layer from the time when the data is received, so the source address information sent as Payload by the AER method is also unnecessary become. If 256 [bit] data is sent from the L1 layer to the L2 layer at 4 [ms], the data transfer rate is very low at 256 [bit] ÷ 4 [ms] = 64 [Kbps]. Easy.

また、L1層に必要であった宛先アドレス情報を記憶する為のメモリも不要になる。図2(b)から明らかなように、セル間の配線は隣接セルとの間のローカル配線であり、セルが配置されていない外周部に新たにセルを追加しても、既存の配線には全く影響を与えない。つまり、必要に応じてセルが追加可能であり、隣接するセル間でのみ配線するので、セル数を増加しても、既存のセル間に配線が増加することはない。ゆえに、セル間の通信速度及びセル内にある各ニューロンの演算速度は一定に保たれる。   Further, a memory for storing destination address information necessary for the L1 layer is also unnecessary. As is clear from FIG. 2 (b), the wiring between cells is a local wiring between adjacent cells. Even if a new cell is added to the outer periphery where no cell is arranged, the existing wiring No effect at all. That is, cells can be added as necessary, and wiring is performed only between adjacent cells. Therefore, even if the number of cells is increased, wiring does not increase between existing cells. Therefore, the communication speed between cells and the operation speed of each neuron in the cell are kept constant.

以上説明したように、本実施例の技術を使うと、1つのセル当たりL1層とL2層の間を1本の低速でローカルな信号線で接続することにより、L2層の1ニューロン当たり最大1,792個のシナプス結合を持つニューラルネットを容易に構成できる。1ニューロン当たりの最大シナプス結合数を増減したい場合には、セルの各層に存在するニューロン数を増減すれば良い。   As described above, when the technology of this embodiment is used, a maximum of 1 per neuron in the L2 layer can be obtained by connecting the L1 layer and the L2 layer per cell with one low-speed local signal line. , 792 neural networks having synaptic connections can be easily constructed. In order to increase or decrease the maximum number of synaptic connections per neuron, the number of neurons existing in each layer of the cell may be increased or decreased.

例えば、1個のセルのL1層とL2層にそれぞれ1,024個のニューロンを含めれば、L2層の1ニューロン当たり最大7,168(=1、024×7)個のシナプス結合が作れる。但し、L1層とL2層を接続する信号に必要なデータ転送速度は、L1層に含まれるニューロンの数に比例するので4倍の256[Kbps]になり、シナプス結合の重みを格納するメモリ25はL1層に含まれるニューロンの数と、L2層に含まれるニューロンの数の両方に比例するので、16倍の7[MB](=8[bit]×1,024×7×1,024)になる。   For example, if 1,024 neurons are included in each of the L1 layer and the L2 layer of one cell, a maximum of 7,168 (= 1, 024 × 7) synaptic connections can be made per neuron in the L2 layer. However, since the data transfer rate required for the signal connecting the L1 layer and the L2 layer is proportional to the number of neurons included in the L1 layer, the data transfer rate is 256 [Kbps], which is four times the memory 25 for storing the weight of the synapse connection. Is proportional to both the number of neurons included in the L1 layer and the number of neurons included in the L2 layer, so 16 times 7 [MB] (= 8 [bit] × 1,024 × 7 × 1,024) become.

また、メモリ25や加算器27等は16倍で動作させなければならないが、既に述べたようにメモリを分割し、加算器27等を複数個用意することで、回路の動作速度を低下させることができる。   In addition, the memory 25, the adder 27, etc. must be operated at 16 times. However, as described above, by dividing the memory and preparing a plurality of adders 27, etc., the operation speed of the circuit can be lowered. Can do.

本実施例では一回のデータ転送時間(若しくは計算時間)を4[ms]としたが、本発明はこれに制限されるものではなく、任意の時間を設定できる。セル間を結ぶ信号線におけるデータ転送速度は低速であるので、当該速度を上げることにより、システム全体を更に高速化することが可能である。   In this embodiment, one data transfer time (or calculation time) is 4 [ms], but the present invention is not limited to this, and an arbitrary time can be set. Since the data transfer speed on the signal line connecting the cells is low, the entire system can be further increased by increasing the speed.

ニューロンを仮想的な平面に並べ、その平面を正六角形(セル)で分割し、各セルに入るニューロンの個数を、例えば256(入力層L1)+256(中間層L2)とする。或るセルのL1層の出力は、そのセル及びそのセルに隣接する6個のセルのL2層のニューロンとだけ、且つL2層の全てのニューロンとシナプス結合を作る。   The neurons are arranged in a virtual plane, the plane is divided into regular hexagons (cells), and the number of neurons entering each cell is, for example, 256 (input layer L1) +256 (intermediate layer L2). The output of the L1 layer of a cell makes a synaptic connection only with the L2 layer neuron of that cell and the six cells adjacent to that cell, and with all the neurons of the L2 layer.

このように決めることで、L1層の1個のニューロンからは1ビットのデータをL2層に転送すればよい。L2層では7[bit]×256のメモリを2個用意し、L1層のニューロンからのデータ出力に同期して、このメモリに格納する。このアーキテクチャにより、従来のAER技術で必要であったアドレス情報を送る必要がなくなり、L1層の256個のニューロンから256ビットのデータを伝送するだけでよい。   By determining in this way, 1-bit data may be transferred to the L2 layer from one neuron in the L1 layer. In the L2 layer, two 7 [bit] × 256 memories are prepared and stored in this memory in synchronization with the data output from the neurons in the L1 layer. With this architecture, it is not necessary to send address information required in the conventional AER technology, and only 256-bit data needs to be transmitted from 256 neurons in the L1 layer.

1億ニューロンを持つニューラルネットを構築するには、例えば、L1層(512個)、L2層(512個)、L3層(512個)、L4(64個)の4階層のニューラルネットを用意し、L1層はニューロン数に数えないとすると、1セル当たり1,088ニューロンとなるので、約9万個のセルを連結すればよい。この場合、セル間を接続する信号線はL1層、L2層、L3層からの出力データを時分割多重化し、1,536(=512[bit]×3)ビットのデータを転送する。   To construct a neural network with 100 million neurons, for example, prepare a four-layer neural network of L1 layer (512), L2 layer (512), L3 layer (512), and L4 (64). If the L1 layer is not counted in the number of neurons, there are 1,088 neurons per cell, so it is sufficient to connect approximately 90,000 cells. In this case, the signal lines connecting the cells time-division-multiplex the output data from the L1, L2, and L3 layers, and transfer 1,536 (= 512 [bit] × 3) bit data.

図5の実施例から明らかなように、L2層の出力信号はL1層の出力信号と同じデータレートなので、時分割多重化は容易である。これを4[ms]で行う場合は、データ転送速度を384[Kbps]にする。つまり、この場合も1本の低速な信号線だけでセル間を接続でき、仮想ニューロン回路自体も少数の加算器とメモリで実現できるので、実時間で並列動作する大規模ニューラルネットを実現することができる。   As is clear from the embodiment of FIG. 5, the output signal of the L2 layer is the same data rate as the output signal of the L1 layer, so that time division multiplexing is easy. When this is performed at 4 [ms], the data transfer rate is set to 384 [Kbps]. That is, in this case as well, cells can be connected with only one low-speed signal line, and the virtual neuron circuit itself can be realized with a small number of adders and memories, so that a large-scale neural network that operates in parallel in real time can be realized. Can do.

本発明の技術ではシナプス結合の重みデータを格納するメモリの、数%から数10%に0を格納することになりメモリを多用することになるが、メモリを多用する代わりに演算部やデータ通信部を低速にすることができる。これまで、半導体のプロセス技術の進歩により、トランジスタの幅が一定ならば、ゲート長が短くなるのにほぼ反比例して、電流駆動能力が上昇してきた。そして、トランジスタの電流駆動能力の上昇にほぼ比例して、トランジスタのスイッチング速度が上がり、その結果、回路の動作速度も向上した。   In the technology of the present invention, 0 is stored in several percent to several tens of percent of memory for storing synaptic connection weight data, and the memory is used extensively. The part can be slowed down. Up to now, with the progress of semiconductor process technology, if the width of a transistor is constant, the current drive capability has increased in inverse proportion to the reduction in gate length. Then, the switching speed of the transistor increased substantially in proportion to the increase of the current driving capability of the transistor, and as a result, the operation speed of the circuit also improved.

しかし、最近ではトランジスタの電流駆動能力に比べて配線容量が相対的に大きくなり、プロセス技術が進歩しても回路の動作速度は向上し難くなっている。一方、トランジスタのサイズはゲート長の2乗にほぼ反比例するので、今後も使用できるメモリ量の増大が期待できる。従って、本発明のアーキテクチャは、これからの半導体の進歩による恩恵を受けられると考える。   However, recently, the wiring capacity is relatively larger than the current driving capability of the transistor, and it is difficult to improve the operation speed of the circuit even if the process technology advances. On the other hand, since the transistor size is almost inversely proportional to the square of the gate length, an increase in the amount of memory that can be used in the future can be expected. Thus, we believe that the architecture of the present invention can benefit from future semiconductor advances.

なお、特許第3586464号には、或るセルから近接するセルと同心円状に接続する方法が記されているが、この特許でいうセルは1個のニューロンに相当しているので、本発明で説明したセルとは全く異なる。この特許ではニューロン間を直接接続しているので、大規模なニューラルネットを構築することは困難である。   Patent No. 3586464 describes a method of concentrically connecting a certain cell to a neighboring cell. Since the cell in this patent corresponds to one neuron, It is completely different from the cell described. In this patent, since neurons are directly connected, it is difficult to construct a large-scale neural network.

<回路ユニットの実施例2の課題>
次に、本発明の回路ユニットの第2の実施例について、興奮性ニューロン群と抑制性ニューロン群の混在を実現する回路ユニット(セル)について説明する。図5に示す実施例1の回路では、メモリ25に格納されているシナプス結合の重みの値w´i,q,jは、アンドゲート26によってL1層からの信号a´i,p,qと乗算されてa´i,p,q×w´i,q,jとなり加算器27に入力される。この従来技術のままで抑制性ニューロンを実現するには、重みデータメモリ25に格納されている値w´i,q,jに符号情報を持たせる方法が一般的である。
<Problem of Embodiment 2 of Circuit Unit>
Next, a circuit unit (cell) that realizes a mixture of excitatory and inhibitory neuron groups will be described for a second embodiment of the circuit unit of the present invention. In the circuit of the first embodiment shown in FIG. 5, the synaptic connection weight values w ′ i, q, j stored in the memory 25 are converted into signals a ′ i, p, q from the L1 layer by the AND gate 26. The result of multiplication is a ′ i, p, q × w ′ i, q, j , which is input to the adder 27. In order to realize an inhibitory neuron with this conventional technique, a method of giving code information to the values w ′ i, q, j stored in the weight data memory 25 is general.

しかし、その方法ではメモリ25に必要な記憶容量が増大し、製造コストが上がってしまうという欠点がある。例えばメモリ25のビット幅を8とし、興奮性ニューロンとのシナプス結合の重みを表す正又は0の数に限定すれば、この8ビットデータを0〜255と解釈できるのでデータの分解能は1/255になる。   However, this method has the disadvantage that the storage capacity required for the memory 25 increases and the manufacturing cost increases. For example, if the memory 25 has a bit width of 8 and is limited to a positive or zero number representing the weight of the synaptic connection with the excitatory neuron, the 8-bit data can be interpreted as 0 to 255, so the data resolution is 1/255. become.

一方、重み情報が正負の値を持ち、負の数が2の補数で表されるとすると、この8ビットデータは−128〜127と解釈される。従って、興奮性ニューロンとのシナプス結合の重みを表す正又は0の値は0〜127となり、分解能が半分になってしまう。メモリ25のビット幅を8のままとすれば製造コストは増大しないが、シナプス結合の重みの分解能が半分になり、ニューラルネットとしての計算精度や記憶精度が低下してしまう。   On the other hand, if the weight information has a positive / negative value and the negative number is represented by 2's complement, the 8-bit data is interpreted as -128 to 127. Therefore, the value of positive or 0 indicating the weight of synaptic connection with the excitatory neurons is 0 to 127, and the resolution is halved. If the bit width of the memory 25 is kept at 8, the manufacturing cost does not increase, but the resolution of the synaptic connection weight is halved, and the calculation accuracy and storage accuracy as a neural network are lowered.

そこで、シナプス結合の重みデータの分解能を1/255に維持しようとすると、メモリ25のビット幅を9にしなければならず、9[bit]×256×7×256のメモリが必要になり、必要な記憶容量が458,752ビット分(12.5%分)増加してしまう。   Therefore, in order to maintain the resolution of the synaptic connection weight data at 1/255, the bit width of the memory 25 must be set to 9, and 9 [bit] × 256 × 7 × 256 is required. Large storage capacity is increased by 458,752 bits (12.5%).

本実施例2の回路は、ニューラルネットの計算精度や記憶精度の低下を抑えるとともに、製造コストの増加も極力抑えながら、抑制性ニューロンやパワーニューロンを実現する方法を提供するものである。ここでパワーニューロンとは、通常のニューロンに比べて2倍、4倍と大きな影響を、次段のニューロンに与えるニューロンのことである。   The circuit of the second embodiment provides a method for realizing an inhibitory neuron and a power neuron while suppressing a decrease in calculation accuracy and storage accuracy of a neural network and suppressing an increase in manufacturing cost as much as possible. Here, the power neuron is a neuron that has a large influence on the next-stage neuron, which is twice or four times as large as that of a normal neuron.

或るニューロンが興奮性であるか抑制性であるかは、ニューラルネットの構造を決定した時点で決まる。また、或るニューロンがパワーニューロンであるか通常のニューロンであるかは、ニューラルネットの構造を決定した時点で決めることとする。これらはニューラルネットの学習や自己組織化によって変化することはない。この事実を利用して、抑制性ニューロンやパワーニューロンを実現する際に必要なトランジスタ数の増加を抑えることとする。   Whether a certain neuron is excitable or inhibitory is determined when the structure of the neural network is determined. Whether a certain neuron is a power neuron or a normal neuron is determined when the structure of the neural network is determined. These do not change with neural network learning or self-organization. By utilizing this fact, an increase in the number of transistors required to realize an inhibitory neuron or a power neuron is suppressed.

<回路ユニットの実施例2の説明>
図11は、本発明の第2の実施例である興奮性ニューロン群と抑制性ニューロン群の混在した回路ユニットの回路図である。図5の興奮性ニューロンだけを模擬した回路と同じ個所には同じ番号が振られている。図5の回路と比較すると、図11の回路は、図5の回路に8ビットカウンター23Cと符号格納器33とが追加され、図5の加算器27が加減算器32に置き換えられている。
<Description of Example 2 of Circuit Unit>
FIG. 11 is a circuit diagram of a circuit unit in which an excitatory neuron group and an inhibitory neuron group are mixed according to the second embodiment of the present invention. The same number is assigned to the same part as the circuit simulating only the excitatory neuron of FIG. Compared with the circuit of FIG. 5, the circuit of FIG. 11 has an 8-bit counter 23 </ b> C and a sign storage 33 added to the circuit of FIG. 5, and the adder 27 of FIG.

符号格納器33は、L1層の各ニューロンに対応した符号情報(1[bit]×256のデータ)を記憶する。L1層の或る抑制性ニューロンがL2層のニューロン上に作るシナプス結合は、全て抑制性のシナプス結合になる。L1層の1個の抑制性ニューロンが、L2層の1,792個のニューロンと抑制性シナプス結合を作るとし、その重みデータ毎に符合ビットを持たせると、1,792ビットのデータが必要になる。一方、L1層の当該ニューロンが抑制性であるという情報を記憶すれば、1ニューロン当り1ビット記憶すれば良い。符号格納器33は、カウンター23Cが出力したデータに基づいて、そのデータに対応するアドレスにあるニューロンの符号情報を加減算器32へ出力する。
加減算器32は、符号格納器33が出力したニューロンの符号情報を受け取る。当該符号情報が0の場合、L1層のニューロンを興奮性ニューロンとみなして、加算器として動作し、アンドゲート26から受け取ったデータとアンドゲート28から受け取ったデータを加算し、加算後のデータをアンドゲート28と大小比較器29へ出力する。
The code storage 33 stores code information (1 [bit] × 256 data) corresponding to each neuron of the L1 layer. All synaptic connections made by certain inhibitory neurons in the L1 layer on neurons in the L2 layer become inhibitory synaptic connections. If one inhibitory neuron in the L1 layer forms an inhibitory synaptic connection with 1,792 neurons in the L2 layer, and if each weight data has a sign bit, 1,792 bits of data are required. Become. On the other hand, if information indicating that the neuron in the L1 layer is inhibitory is stored, one bit may be stored per neuron. Based on the data output from the counter 23C, the code storage 33 outputs to the adder / subtractor 32 the code information of the neuron at the address corresponding to the data.
The adder / subtractor 32 receives the neuron code information output from the code storage 33. When the sign information is 0, the L1 layer neuron is regarded as an excitatory neuron and operates as an adder, adds the data received from the AND gate 26 and the data received from the AND gate 28, and adds the data after the addition. The data is output to the AND gate 28 and the magnitude comparator 29.

当該符号情報が1の場合、抑制性ニューロンとみなして、減算器として処理し、アンドゲート28から受け取ったデータから、アンドゲート26から受け取ったデータを減算し、減算後の値をアンドゲート28と大小比較器29へ出力する。   When the sign information is 1, it is regarded as an inhibitory neuron, processed as a subtractor, subtracts the data received from the AND gate 26 from the data received from the AND gate 28, and sets the value after subtraction as the AND gate 28. Output to the large / small comparator 29.

続いて、図11の回路の動作について説明する。L1層のニューロンは仮想的に256個のニューロン分が纏めて実現されており、ニューロン番号毎に興奮性か抑制性かが決まっている。そこで、ニューラルネットでの処理が始まる前に、ニューロン番号iに応じて興奮性の場合はsを0に、抑制性の場合はsを1に、図示しない任意の方法によって予め符号格納器33に書き込んでおく。全てのセルのニューロンは同一構造をとるとしているので、隣接セルのL1層の情報を別途持つ必要はない。 Subsequently, the operation of the circuit of FIG. 11 will be described. The neurons in the L1 layer are virtually realized by combining 256 neurons, and excitability or inhibition is determined for each neuron number. Therefore, before the processing in the neural network starts, s i is set to 0 in the case of excitability according to the neuron number i, s i is set to 1 in the case of inhibition, and the code storage unit is previously stored by an arbitrary method (not shown). Write to 33. Since the neurons of all cells have the same structure, it is not necessary to separately have information on the L1 layer of adjacent cells.

L1層のニューロンの入力データがメモリ21に、シナプス結合の重みデータがメモリ25に、それぞれ図示しない任意の方法によって予め格納されている。カウンター20とカウンター23Aとカウンター23Bとカウンター23Cとは、図示しないリセット信号によって予め0になっている。なお、メモリ25に格納されているのは重みデータの絶対値|w´i,q,j|である。 The input data of the L1 layer neurons is stored in the memory 21 and the synaptic connection weight data is stored in advance in the memory 25 by any method not shown. The counter 20, the counter 23A, the counter 23B, and the counter 23C are set to 0 in advance by a reset signal (not shown). Note that the absolute value | w ′ i, q, j | of the weight data is stored in the memory 25.

計算が始まると、まずカウンター20がカウント値0をメモリ21に出力する。次に、メモリ21は、カウンター20から0のデータを受け取ると、0番地から4ビットデータを読み出してパルス列変調回路22へ出力する。   When the calculation starts, the counter 20 first outputs a count value 0 to the memory 21. Next, when receiving 0 data from the counter 20, the memory 21 reads 4-bit data from address 0 and outputs it to the pulse train modulation circuit 22.

パルス列変調回路22は、メモリ21から4ビットデータを受け取り、当該4ビットデータを15ビットデータに変換し、当該15ビットデータをラウンド毎にLSBから順次、出力端子P0経由で、メモリ24Aまたはメモリ24Bに出力する。   The pulse train modulation circuit 22 receives 4-bit data from the memory 21, converts the 4-bit data into 15-bit data, and sequentially converts the 15-bit data from the LSB in each round via the output terminal P0 to the memory 24A or the memory 24B. Output to.

最初のラウンド0では、図6に示すデータのLSBだけを転送する。このデータは出力端子P0から外部に出力されると同時に、メモリ24Aに送られる。端子P0から出たデータは隣接セルで受信される。回路は対称なので、自分自身のセルは、入力端子P1〜P6で隣接セルが出力するデータを受信する。   In the first round 0, only the LSB of the data shown in FIG. 6 is transferred. This data is output to the outside from the output terminal P0 and simultaneously sent to the memory 24A. Data output from terminal P0 is received by the adjacent cell. Since the circuit is symmetrical, its own cell receives data output by the adjacent cells at the input terminals P1 to P6.

そこで、パルス列変調回路22の出力データと端子P1〜P6からのデータとを束ねて7ビットのデータとし、当該データをメモリ24Aの0番地に格納する。その後、端子41に入力される信号と端子42Aに入力される信号がアクティブになりカウンター20とカウンター23Aが1になると、メモリ21は1番地のデータを読み出し、パルス列変調回路22に出力する。   Therefore, the output data of the pulse train modulation circuit 22 and the data from the terminals P1 to P6 are bundled into 7-bit data, and the data is stored in the address 0 of the memory 24A. Thereafter, when the signal input to the terminal 41 and the signal input to the terminal 42A become active and the counter 20 and the counter 23A become 1, the memory 21 reads the data at the first address and outputs it to the pulse train modulation circuit 22.

パルス列変調回路22は、メモリ21から1番地のデータを受け取り、当該データを15ビットデータに変換する。そして、パルス列変調回路22は、当該15ビットデータのうち、LSBをメモリ24Aへ出力する。また、その動作とともに、出力端子P0を介して、隣接するセルのメモリ24Aへ当該LSBを出力する。   The pulse train modulation circuit 22 receives data at address 1 from the memory 21 and converts the data into 15-bit data. Then, the pulse train modulation circuit 22 outputs LSB out of the 15-bit data to the memory 24A. Along with this operation, the LSB is output to the memory 24A of the adjacent cell via the output terminal P0.

そして、メモリ24Aは、パルス列変調回路22からのデータと端子P1〜P6からのデータとを束ねて7ビットのデータとして、メモリ24Aの1番地に格納する。このようにして、カウンター20とカウンター23Aのカウント値が255を超えて0に戻るまでデータの転送が行われると、ラウンド0が終了する。   Then, the memory 24A bundles the data from the pulse train modulation circuit 22 and the data from the terminals P1 to P6 and stores them as 7-bit data in the first address of the memory 24A. In this way, when data transfer is performed until the count values of the counter 20 and the counter 23A exceed 255 and return to 0, round 0 ends.

L1層からL2層へ256個(256[bit])のデータを4[ms]で転送するので、一連の処理速度は64[kHz]である。次のラウンド1では、パルス列変調回路22はビット1のデータを送出し、転送されたデータはメモリ24Bに書き込まれる。この様にして、メモリ24Aとメモリ24Bを交互に使いながら処理を行う。ラウンド14でビット14の転送が終わると、メモリ21に入っているデータの処理が終わる。   Since 256 (256 [bit]) data is transferred from the L1 layer to the L2 layer in 4 [ms], a series of processing speeds is 64 [kHz]. In the next round 1, the pulse train modulation circuit 22 transmits bit 1 data, and the transferred data is written in the memory 24B. In this way, processing is performed using the memory 24A and the memory 24B alternately. When the transfer of bit 14 ends in round 14, the processing of the data stored in memory 21 ends.

更に、ニューラルネットでの処理を継続する場合は、図示していない外部回路により、メモリ21に新たなデータを書き込むか、又はメモリ21をダブルバッファ構造にして、ニューラルネットでの処理と並行して、外部回路が次のデータを書き込んでおく。ここまでで、L1層のニューロンの動作についての説明を終了する。   Further, when the processing in the neural network is continued, new data is written into the memory 21 by an external circuit (not shown), or the memory 21 is made to have a double buffer structure in parallel with the processing in the neural network. The external circuit writes the next data. This is the end of the description of the operation of the L1 layer neuron.

次に、L2層のニューロンの動作について説明する。ラウンド0が終わりメモリ24Aに1,792個のa´i,p,qが揃うとL2層で計算が始まる。L2層側では1個のニューロン当たり1,792回の積和演算をしなければならないので、L1層側の1,792倍の速度即ち、114.7[MHz]で処理する。L2層のj番目の仮想ニューロンではΣ(a´i,p,q×w´i,q,j)を計算することとする。ここでΣはiとqについての総和を表している。 Next, the operation of the L2 layer neuron will be described. When round 0 ends and 1,792 a'i , p, q are prepared in the memory 24A, the calculation starts in the L2 layer. On the L2 layer side, 1,792 product-sum operations must be performed for each neuron, so processing is performed at a speed 1,792 times that of the L1 layer side, that is, 114.7 [MHz]. It is assumed that Σ (a ′ i, p, q × w ′ i, q, j ) is calculated in the j-th virtual neuron in the L2 layer. Here, Σ represents the sum of i and q.

メモリ24Aは、64[kHz]の256倍の16.384[MHz]で7ビットのデータを読み出し、それを並直変換して7倍の114.7[Mbps]の1ビット信号a´i,p,qにし、当該信号a´i,p,qをアンドゲート26に出力する。またそれと同じタイミングでメモリ25は、シナプス結合の8ビットの重みデータ|w´i,q,j|を114.7[MHz]で読み出し、アンドゲート26に出力する。 The memory 24A reads out 7-bit data at 16.384 [MHz], which is 256 times 64 [kHz], and converts it into a parallel signal, thereby converting the 7-bit 114.7 [Mbps] 1-bit signal a ′ i, The signals a ′ i, p, q are output to the AND gate 26. At the same timing, the memory 25 reads the 8-bit weight data | w ′ i, q, j | of the synapse connection at 114.7 [MHz] and outputs it to the AND gate 26.

アンドゲート26は、メモリ24Aが出力した信号a´i,p,qとメモリ25が出力した重みデータ|w´i,q,j|を受け取り、これらを乗算して、8ビットの0又は|w´i,q,j|し、加減算器32へ出力する。
更に、符号格納器33は、16.384[MHz]で1ビットの符号データ符号sを読み出し、それを加減算器32へ出力する。sはiが同一でqが0から6の7個のデータ|w´i,q,j|に対して共通に使う。
The AND gate 26 receives the signals a ′ i, p, q output from the memory 24A and the weight data | w ′ i, q, j | output from the memory 25, and multiplies them to obtain 8-bit 0 or | w ′ i, q, j | and outputs to the adder / subtractor 32.
Further, the code storage 33 reads a 1-bit code data code s i at 16.384 [MHz] and outputs it to the adder / subtractor 32. s i is commonly used for seven pieces of data | w ′ i, q, j | whose i is the same and q is 0 to 6.

符号sが0の場合は、加減算器32は、それまでに計算された部分和(アンドゲート28の出力)に当該a´i,p,q×|w´i,q,j|を足す。一方、符号sが1の場合は、それまで計算された部分和から当該a´i,p,q×|w´i,q,j|を引く。このようにして、jを固定して、iとqに対するa´i,p,q×w´i,q,jの和が計算される。 When the sign s i is 0, the adder / subtractor 32 adds the a ′ i, p, q × | w ′ i, q, j | to the partial sum calculated so far (output of the AND gate 28). . On the other hand, when the code s i is 1, the a ′ i, p, q × | w ′ i, q, j | is subtracted from the partial sum calculated so far. In this way, the sum of a ′ i, p, q × w ′ i, q, j for i and q is calculated with j fixed.

総和計算の最初にはアンドゲート28の端子44に入力される信号が0になり、加減算器32の片側入力端子に入力されるデータが0になる。iとqについての1,792回の総和計算が終わると、加減算器32は、当該総和を大小比較器29に出力する。   At the beginning of the summation calculation, the signal input to the terminal 44 of the AND gate 28 becomes 0, and the data input to one side input terminal of the adder / subtractor 32 becomes 0. When 1,792 times of sum calculation for i and q are completed, the adder / subtractor 32 outputs the sum to the magnitude comparator 29.

大小比較器29は、加減算器32が出力した総和を受け取り、当該総和を閾値θと比較し、総和が閾値θよりも大きければ出力を1にし、小さければ出力を0にする。この出力は114.7[MHz]の周波数で、256クロック毎に1クロック幅のパルス状に出るので、そのままでは使い難い。そこで、ラッチ30の端子45に64[kHz]立ち上がりパルスを印加し、ラッチ30に大小比較器29が出力した当該比較結果を保持し、64[Kbps]の信号にして端子46に出力する。   The magnitude comparator 29 receives the sum output from the adder / subtractor 32, compares the sum with the threshold θ, and sets the output to 1 if the sum is greater than the threshold θ, and sets the output to 0 if the sum is smaller. This output has a frequency of 114.7 [MHz] and is output in the form of a pulse having a width of 1 clock every 256 clocks. Therefore, a 64 [kHz] rising pulse is applied to the terminal 45 of the latch 30, the comparison result output from the magnitude comparator 29 is held in the latch 30, and is output to the terminal 46 as a 64 [Kbps] signal.

以上説明したように、本発明の第2の実施例を用いると、シナプス結合の重みデータを格納するメモリ25の容量を増やさずに、興奮性ニューロンと抑制性ニューロンが混在するニューラルネットを実現できる。但し、L1層のニューロンの符号情報を格納するメモリ33が新たに必要になる。   As described above, when the second embodiment of the present invention is used, a neural network in which excitatory neurons and inhibitory neurons are mixed can be realized without increasing the capacity of the memory 25 for storing synaptic connection weight data. . However, a new memory 33 for storing code information of the neurons in the L1 layer is required.

メモリ33は256(=1[bit]×256)ビットなので、シナプス結合の重みを符号情報まで含めてメモリ25に格納する場合に比べて、増加するメモリの容量は1/1,792である。また、加算器27を加減算器32にする必要があるが、ここに必要なのは8ビット分のイクシクルーシブOR回路であり、増加するトランジスタ数はニューラルネット全体に必要なトランジスタ数に比べて極めて僅かである。   Since the memory 33 is 256 (= 1 [bit] × 256) bits, the capacity of the memory to be increased is 1/1 and 792, compared to the case where the synapse connection weight including the code information is stored in the memory 25. Further, the adder 27 needs to be an adder / subtractor 32, but what is required here is an 8-bit exclusive OR circuit, and the number of transistors to be increased is very small compared to the number of transistors required for the entire neural network. It is.

図12(a)に本発明の第2の実施例の変形例1である回路ユニットの回路図を示す。図11の回路で示した第2の実施例と同じ素子には、同じ番号が振ってある。図11の回路と比較すると、図12の回路は、符号格納器33の代わりに、大小比較器34を挿入したものである。     FIG. 12A shows a circuit diagram of a circuit unit which is a modification 1 of the second embodiment of the present invention. The same elements as those in the second embodiment shown in the circuit of FIG. Compared with the circuit of FIG. 11, the circuit of FIG. 12 is obtained by inserting a magnitude comparator 34 instead of the code storage 33.

大小比較器34は、カウンター23Cが出力するL1層のニューロン番号i(8ビット)を受け取り、図示しないレジスタ又は外部から供給される値α(8ビット)を端子47bで受けとる。大小比較器34は、iとαを比較し、iがαよりも小さい場合に、出力sを1にして加減算器32に出力し、iがαより大きいか等しい場合に、出力sを0にして加減算器32に出力する。これによって、ニューロン番号iがαよりも小さい場合に、当該ニューロン番号を付されたニューロンは抑制性ニューロンとなる。   The magnitude comparator 34 receives the neuron number i (8 bits) of the L1 layer output from the counter 23C, and receives a value α (8 bits) supplied from a register (not shown) or from the outside at a terminal 47b. The magnitude comparator 34 compares i with α, and when i is smaller than α, the output s is set to 1 and output to the adder / subtractor 32. When i is greater than or equal to α, the output s is set to 0. To the adder / subtractor 32. As a result, when the neuron number i is smaller than α, the neuron assigned with the neuron number becomes an inhibitory neuron.

本発明の第2の実施例では、L1層の任意の番号のニューロンを抑制性ニューロンに設定できる。しかし、ニューロンの番号は仮想的なものなので、それ自体に意味はない。そこで、L1層のニューロンの番号がαより小さいものは全て抑制性のニューロンであるとしても、ニューラルネットの動作として不都合を生じない。大小比較器34の出力信号sは、カウンター23Cの値即ちL1層のニューロンの番号がαより小さい場合に1になり、加減算器32で減算が行われる。回路の詳細な動作説明は省略する。   In the second embodiment of the present invention, any number of neurons in the L1 layer can be set as inhibitory neurons. However, since the neuron number is virtual, it has no meaning in itself. Therefore, even if all the neurons in the L1 layer whose number is smaller than α are inhibitory neurons, there is no inconvenience as the operation of the neural network. The output signal s of the magnitude comparator 34 becomes 1 when the value of the counter 23C, that is, the neuron number of the L1 layer is smaller than α, and the adder / subtractor 32 performs subtraction. A detailed description of the operation of the circuit is omitted.

図12(b)には、本発明の第2の実施例の変形例2である回路ユニットの回路の一部を示す。図12(b)の回路は、図12(a)の大小比較器34の代わりに、アンドゲート34Bを挿入することとする。この例では、アンドゲート34Bは、カウンター23Cが出力する8ビットデータの最下位ビット(第0ビット)と最下位から1つ左に行ったビット(第1ビット)とを受け取り、アンドを取って、その結果を符号sとして、加減算器32に出力する。従って、番号が3、7、11、、、と、飛び飛びの番号のニューロンが抑制性になる。   FIG. 12B shows a part of a circuit of a circuit unit that is a second modification of the second embodiment of the present invention. In the circuit of FIG. 12B, an AND gate 34B is inserted instead of the magnitude comparator 34 of FIG. In this example, the AND gate 34B receives the least significant bit (0th bit) of the 8-bit data output from the counter 23C and the bit (first bit) left one from the least significant bit, and takes the AND. The result is output to the adder / subtractor 32 as a code s. Therefore, the neurons with the numbers 3, 7, 11, and so on become inhibitory.

なお、このアンドゲート34Bは必要に応じて、3入力や4入力にもできるし、アンドを取るビット位置を変更することもできる。或いは、L1層の半数を抑制性にする場合はアンドゲート34Bを省略し、カウンター23の出力の任意の1ビットを符号sとすることもできる。
カウンター23Cの使われないビットは実装する必要がない。具体的には、図12(b)に示す例では、8ビットカウンター23Cのビット2〜ビット7は使われないので、これらを実装する必要はなく、2ビットカウンターとして実装すれば十分である。
The AND gate 34B can have 3 inputs or 4 inputs as required, and can change the bit position of AND. Alternatively, when making half of the L1 layer suppressive, the AND gate 34B can be omitted, and any one bit of the output of the counter 23 can be set as the code s.
The unused bits of the counter 23C need not be implemented. Specifically, in the example shown in FIG. 12B, since bits 2 to 7 of the 8-bit counter 23C are not used, it is not necessary to mount them, and it is sufficient to mount them as a 2-bit counter.

本発明の実施例2、実施例2の変形例1および実施例2の変形例2では、L1層からL2層へはパルス列によって情報が伝わる、所謂パルスニューラルネットについて説明したが、本発明はこれに制限されるものではなく、情報を複数ビットによって伝えるニューラルネットでも同様に適用できる。   In the second embodiment of the present invention, the first modification of the second embodiment, and the second modification of the second embodiment, a so-called pulse neural network in which information is transmitted from the L1 layer to the L2 layer by a pulse train has been described. The present invention is not limited to this, and the present invention can be similarly applied to a neural network that transmits information by a plurality of bits.

パルスニューラルネット以外で、抑制性ニューロン群を実現する回路例を図13に示す。L1層の各ニューロンの4ビットデータは4[bit]×256のメモリ21に蓄えられており、順次メモリ21から読みだされて4ビット幅の出力端子P0から出力される。その動作とともに、4ビット幅の入力端子P1〜P6から入力されるデータと合わせて28ビット幅のデータとし、28[bit]×256のメモリ24Aまたはメモリ24Bに格納する。   FIG. 13 shows an example of a circuit that realizes an inhibitory neuron group other than the pulse neural network. The 4-bit data of each neuron in the L1 layer is stored in the 4 [bit] × 256 memory 21, and is sequentially read from the memory 21 and output from the output terminal P0 having a 4-bit width. Along with this operation, the data input from the input terminals P1 to P6 having a 4-bit width is combined with the 28-bit width data and stored in the memory 24A or the memory 24B of 28 [bits] × 256.

メモリ24Aまたはメモリ24Bから読みだしたa´i,qと、シナプス結合の重みメモリ25から読みだした|w´i,q,j|を乗算器50によって乗算し、当該乗算結果を加減算器32によって累積する。このように、パルスニューラルネット以外でも本発明は適用できる。 The a ′ i, q read from the memory 24A or the memory 24B and | w ′ i, q, j | read from the synaptic connection weight memory 25 are multiplied by the multiplier 50, and the multiplication result is added to the adder / subtractor 32. To accumulate. Thus, the present invention can be applied to other than the pulse neural network.

<回路ユニットの実施例2の効果>
従来技術では、興奮性か抑制性かに拘わらず、ニューロンからの信号を受け取るシナプス結合の重み情報は、全てシナプス結合の重みデータを記憶するメモリに格納されていた。1個のニューロンの出力は1,000〜10,000個のシナプス結合を作り、これらのシナプス結合の重みは基本的に異なるので、1,000〜10,000個の重み情報を格納するメモリが必要である。
<Effect of Embodiment 2 of Circuit Unit>
In the prior art, regardless of excitability or inhibition, all the synaptic connection weight information for receiving signals from neurons is stored in a memory for storing synaptic connection weight data. Since the output of one neuron creates 1,000 to 10,000 synapse connections, and the weights of these synapse connections are basically different, a memory for storing 1,000 to 10,000 weight information is provided. is necessary.

ところが、興奮性ニューロンから出る軸索は全て興奮性のシナプス結合を作り、抑制性ニューロンから出る軸索は全て抑制性のシナプス結合を作るので、1,000〜10,000個の重み情報の符号は全て同じである。従って、シナプス結合の重み情報を「符号」と「絶対値」に分けることで、符号情報を格納するメモリの容量を大幅に削減できる。本発明の第2の実施例では、この考えの下に符号情報を格納するメモリの容量を1/1,792に削減している。   However, since all axons coming out of excitatory neurons make excitatory synaptic connections, and all axons coming out of inhibitory neurons make inhibitory synaptic connections, the sign of 1,000 to 10,000 weight information Are all the same. Therefore, by dividing the synapse connection weight information into “code” and “absolute value”, the capacity of the memory for storing the code information can be greatly reduced. In the second embodiment of the present invention, the capacity of the memory for storing the code information is reduced to 1/1, 792 based on this idea.

本発明では、ニューロンを仮想ニューロンとして実装している。従って、個々のニューロンの番号に物理的な意味はない。従って、ニューラルネット全体の何割が抑制性ニューロンであるかという情報だけを使って、シナプス結合の符号情報を決定できる。本発明の実施例2の変形例1、実施例2の変形例2では、この考えの下に符号情報を格納するメモリそのものを省略することができる。これによって、回路面積を小さくすることができる。   In the present invention, neurons are implemented as virtual neurons. Therefore, the number of individual neurons has no physical meaning. Therefore, it is possible to determine the code information of synaptic connections using only information indicating what percentage of the entire neural network is inhibitory neurons. In the first modification of the second embodiment of the present invention and the second modification of the second embodiment, the memory itself for storing the code information can be omitted based on this idea. As a result, the circuit area can be reduced.

<回路ユニットの実施例3固有の課題>
次に、L1層の特定ニューロン(パワーニューロンと呼ぶ)が通常のニューロンに比べて、例えば2倍の影響力をL2層のニューロンに与える場合について考える。影響力を別の言い方をすれば、L1層の通常のニューロンがL2層のニューロンと作るシナプス結合の重みは0〜255であるが、 L1層のパワーニューロンがL2層のニューロンと作るシナプス結合の重みは、0から511まで取り得るということである。これを単純に実現する方法は、シナプス結合の重みデータメモリ25のビット幅を9にし、通常のニューロンが作るシナプス結合では、その重みの最大値を255に制限すれば良い。
<Problems Specific to Circuit Unit Example 3>
Next, consider a case where a specific neuron (referred to as a power neuron) in the L1 layer gives, for example, twice as much influence to a neuron in the L2 layer as compared to a normal neuron. In other words, the weight of the synaptic connection that the normal neurons in the L1 layer make with the neurons in the L2 layer is 0 to 255, but the synaptic connection that the power neurons in the L1 layer make with the neurons in the L2 layer The weight can be from 0 to 511. A method of simply realizing this is to set the bit width of the synaptic connection weight data memory 25 to 9 and limit the maximum value of the weight to 255 in the synaptic connection created by a normal neuron.

しかし、それでは抑制性ニューロンの場合と同様に、必要なメモリ容量が増大してニューラルネットの製造コストが増大してしまう。パワーニューロンの個数は全体の10%程度で十分であるので、この為にシナプス結合の重みメモリ全体が肥大化するのは不都合である。逆に、メモリ25のビット幅を8ビットに保ち、パワーニューロンについてのシナプス結合の重みを0〜255にすることもできるが、そうすると通常のニューロンの重みデータが0〜127となり、ニューラルネットとしての計算精度や記憶精度が低下してしまう。   However, as in the case of the inhibitory neuron, the necessary memory capacity increases and the manufacturing cost of the neural network increases. Since about 10% of the number of power neurons is sufficient, it is inconvenient for the entire weight memory for synaptic connections to enlarge. On the contrary, the bit width of the memory 25 can be kept at 8 bits and the weight of the synapse connection for the power neuron can be set to 0 to 255. However, the normal neuron weight data becomes 0 to 127, and as a neural network, Calculation accuracy and storage accuracy will be reduced.

<回路ユニットの実施例3の説明>
図14は、本発明の第3の実施例であるパワーニューロン群を模擬した回路ユニットの回路図である。図5と同じ素子には同じ番号が振られている。図5の通常ニューロン群だけを模擬した回路に比べ、図14の回路では、8ビットカウンター23Cとメモリ35と、1ビット左シフタ36が追加されている。第3の実施例では、入力信号を定数倍した値を算出する演算回路として、1ビット左シフタ36を用いる。なお、その演算回路は、1ビット左シフタ36に限らず、入力信号を定数倍して出力する回路であればよい。
<Description of Embodiment 3 of Circuit Unit>
FIG. 14 is a circuit diagram of a circuit unit simulating a power neuron group according to the third embodiment of the present invention. The same elements as those in FIG. 5 are given the same numbers. Compared to the circuit simulating only the normal neuron group in FIG. 5, an 8-bit counter 23C, a memory 35, and a 1-bit left shifter 36 are added in the circuit in FIG. In the third embodiment, a 1-bit left shifter 36 is used as an arithmetic circuit for calculating a value obtained by multiplying an input signal by a constant. The arithmetic circuit is not limited to the 1-bit left shifter 36, but may be any circuit that multiplies the input signal by a constant and outputs it.

カウンター23Cは、L1層のニューロン番号i(8ビットデータ)を生成し、メモリ35に出力する。
メモリ35は、L1層のニューロン毎のシフト情報(1[bit]×256)を記憶する。また、メモリ35は、カウンター23Cが出力するL1層のニューロン番号iを受け取り、i番地からシフトデータsft(1ビットデータ)を読み出して、1ビット左シフタ36に出力する。
The counter 23C generates a neuron number i (8-bit data) of the L1 layer and outputs it to the memory 35.
The memory 35 stores shift information (1 [bit] × 256) for each neuron in the L1 layer. The memory 35 receives the neuron number i of the L1 layer output from the counter 23C, reads the shift data sft i (1-bit data) from the address i, and outputs it to the 1-bit left shifter 36.

1ビット左シフタ36は、アンドゲート26が出力するデータと、メモリ35が出力するシフトデータsftとを受け取る。1ビット左シフタ36は、前記シフトデータが0ならば、アンドゲート26が出力するデータをそのまま加算器27に出力する。また、1ビット左シフタ36は、前記シフトデータがならば、アンドゲート26が出力するデータを1ビット左にシフトして、当該シフトしたデータを加算器27に出力する。 The 1-bit left shifter 36 receives the data output from the AND gate 26 and the shift data sft i output from the memory 35. If the shift data is 0, the 1-bit left shifter 36 outputs the data output from the AND gate 26 to the adder 27 as it is. The 1-bit left shifter 36 shifts the data output from the AND gate 26 1 bit to the left if the shift data is present, and outputs the shifted data to the adder 27.

L2層での計算が始まると、メモリ24Aは16.384[MHz]で7ビットのデータを読み出し、それを並直変換して7倍の114.7[Mbps]の1ビット信号a’i,p,qにし、アンドゲート26へ出力する。その動作とともに、シナプス結合の重みメモリ25は、対応する8ビットの重みデータw’i,q,jを114.7[MHz]で読み出し、アンドゲート26へ出力する。アンドゲート26は、当該1ビット信号a’i,p,qと当該8ビットの重みデータw’i,q,jを乗算して8ビットの0又はw’i,q,jにし、当該8ビットデータを左シフタ36に出力する。 When the calculation in the L2 layer starts, the memory 24A reads out 7-bit data at 16.384 [MHz], and converts it into a parallel signal, which is 7 times the 11-bit 1-bit signal a ′ i, p and q are output to the AND gate 26. At the same time, the synaptic connection weight memory 25 reads the corresponding 8-bit weight data w ′ i, q, j at 114.7 [MHz] and outputs it to the AND gate 26. The AND gate 26 multiplies the 1-bit signal a ′ i, p, q by the 8-bit weight data w ′ i, q, j to obtain 8-bit 0 or w ′ i, q, j , Bit data is output to the left shifter 36.

更に、メモリ35から16.384[MHz]で1ビットのシフトデータsftを読み出し、左シフタ36に出力する。左シフタ36に入ったアンドゲート26の出力データは、シフトデータsftが1であると1ビット左シフト、即ち2倍にされ、シフトデータsftが0であるとそのままで、加算器27に出力される。このようにして、通常のニューロンの2倍の影響力をもつニューロンを実現できる。なお、各セルの回路は同一なので、シフトデータsftはa’i,p,0〜a’i,p,6に共通である。 Further, 1-bit shift data sft i is read out from the memory 35 at 16.384 [MHz] and output to the left shifter 36. When the shift data sft i is 1, the output data of the AND gate 26 that has entered the left shifter 36 is shifted left by one bit, that is, doubled. If the shift data sft i is 0, the output data is left as it is. Is output. In this way, a neuron having twice the influence of a normal neuron can be realized. Since the circuit of each cell is the same, the shift data sft i is common to a ′ i, p, 0 to a ′ i, p, 6 .

以上説明したように、本発明の第3の実施例を用いると、シナプス結合の重みデータを格納するメモリ25の容量を増やさずに、パワーニューロンと通常ニューロンが混在するニューラルネットを作製できる。シフト情報を格納するメモリ35が新たに必要になるが、これは256(=1[bit]×256)ビットなので、重みデータメモリ25を9ビット幅にする場合に比べて、必要なメモリのサイズは1/1,792である。また、8ビットカウンター23Cと、左シフタ36が必要になるが、これらによって増加するトランジスタ数はニューラルネット全体に必要なトランジスタ数に比べて極めて僅かである。   As described above, by using the third embodiment of the present invention, it is possible to produce a neural network in which power neurons and normal neurons are mixed without increasing the capacity of the memory 25 for storing synaptic connection weight data. The memory 35 for storing the shift information is newly required. Since this is 256 (= 1 [bit] × 256) bits, the memory size required is smaller than when the weight data memory 25 is 9 bits wide. Is 1 / 1,792. Further, the 8-bit counter 23C and the left shifter 36 are required, but the number of transistors increased by these is extremely small compared to the number of transistors necessary for the entire neural network.

なお、ここではパワーニューロンは通常のニューロンの最大2倍の影響力を持つとしたので、シフト情報は1ビットであり、シフタも1ビット左シフタを用いた。しかし、例えばシフト情報を2ビットにし、シフタを2ビット左バレルシフタにすれば、通常の1倍、2倍、4倍、8倍の影響力を持つニューロンを混在させることが可能である。   Here, since the power neuron has an influence twice as large as that of a normal neuron, the shift information is 1 bit, and the shifter is a 1-bit left shifter. However, for example, if the shift information is 2 bits and the shifter is a 2 bit left barrel shifter, it is possible to mix neurons having influences that are 1 ×, 2 ×, 4 ×, and 8 × the normal.

図15は、本発明の第3の実施例の変形例である回路ユニットの回路図である。図15(a)に本発明の実施例3の変形例1である回路ユニットの回路図を示す。図14に示す実施例3の回路と同じ素子には、同じ番号が振ってある。図14の回路と比べて、図15(a)の回路では、メモリ35に代わりに、大小比較器37が挿入されている。   FIG. 15 is a circuit diagram of a circuit unit which is a modification of the third embodiment of the present invention. FIG. 15A shows a circuit diagram of a circuit unit which is a first modification of the third embodiment of the present invention. The same elements as those in the circuit of the third embodiment shown in FIG. Compared with the circuit of FIG. 14, in the circuit of FIG. 15A, a size comparator 37 is inserted instead of the memory 35.

大小比較器37は、カウンター23Cが出力するL1層のニューロン番号を示すデータiと、図示しないレジスタ又は外部から供給される値αとを受け取る。さらに、大小比較器37は、前記データiと前記αとを比較し、iがαよりも小さい場合に、その出力sftを1にし、当該sftを1ビット左シフタ36に出力する。   The magnitude comparator 37 receives data i indicating the neuron number of the L1 layer output from the counter 23C and a value α supplied from a register (not shown) or from the outside. Further, the magnitude comparator 37 compares the data i with the α, and when i is smaller than α, sets the output sft to 1 and outputs the sft to the 1-bit left shifter 36.

本発明の実施例3の変形例1では、L1層の任意の番号のニューロンをパワーニューロンに設定できる。しかし、ニューロンの番号は仮想的なものなので、それ自体に意味はない。つまり、L1層のニューロンの番号がαより小さいものは全てパワーニューロンであるとしても、ニューラルネットの動作として不都合は生じない。大小比較器37の出力sftは、カウンター23Cの値即ちニューロンの番号iがαより小さい場合に1になる。左シフタ36は、そのsft入力に1が入力されると、アンドゲート26が出力したデータの値を2倍にし、当該2倍にしたデータを加算器27に出力する。回路の詳細な動作説明は省略する。   In the first modification of the third embodiment of the present invention, any number of neurons in the L1 layer can be set as the power neuron. However, since the neuron number is virtual, it has no meaning in itself. That is, even if all of the neurons in the L1 layer whose number is smaller than α are power neurons, there is no inconvenience as the operation of the neural network. The output sft of the magnitude comparator 37 becomes 1 when the value of the counter 23C, that is, the neuron number i is smaller than α. When 1 is input to the sft input, the left shifter 36 doubles the value of the data output by the AND gate 26 and outputs the doubled data to the adder 27. A detailed description of the operation of the circuit is omitted.

図15(b)には、本発明の実施例3の変形例2である回路ユニットの回路の一部を示す。図15(b)の回路は、図15(a)の大小比較器37の代わりに、アンドゲート37Bが挿入されたものである。この例では、アンドゲート37Bは、カウンター23Cの出力の第0ビットと第1ビットのアンドをとって、当該アンドを取った値をシフトデータsftとして、1ビット左シフタ36に出力する。   FIG. 15B shows a part of a circuit of a circuit unit that is a second modification of the third embodiment of the present invention. In the circuit of FIG. 15B, an AND gate 37B is inserted instead of the size comparator 37 of FIG. In this example, the AND gate 37B takes AND of the 0th bit and the 1st bit of the output of the counter 23C, and outputs the value obtained by taking the AND to the 1-bit left shifter 36 as the shift data sft.

従って、番号が3、7、11、、、と、飛び飛びの番号のニューロンがパワーニューロンになる。アンドゲート37Bは必要に応じて、3入力や4入力にもできる。或いは、L1層の半数を抑制性にする場合は、アンドゲートを省略し、カウンター23Cの出力の任意の1ビットを符号sftにしても良い。
カウンター23Cの使われないビットは実装する必要がない。具体的には、図12(b)に示す例では、8ビットカウンター23Cのビット2〜ビット7は使われないので、これらを実装する必要はなく、2ビットカウンターとして実装すれば十分である。
Therefore, the neurons with the numbers 3, 7, 11, and so on become the power neurons. The AND gate 37B can have 3 inputs or 4 inputs as required. Alternatively, when half of the L1 layer is suppressed, the AND gate may be omitted and any one bit of the output of the counter 23C may be set to the code sft.
The unused bits of the counter 23C need not be implemented. Specifically, in the example shown in FIG. 12B, since bits 2 to 7 of the 8-bit counter 23C are not used, it is not necessary to mount them, and it is sufficient to mount them as a 2-bit counter.

<回路ユニットの実施例3の効果>
パワーニューロンであるか否かという情報を、シナプス結合の重みデータを記憶するメモリに格納するのではなく、別のメモリに格納することで必要なメモリ量の増加を抑えることができる。本発明の実施例3の変形例1では、この考えの下にパワーニューロン情報を格納するメモリの容量を、シナプス結合の重みメモリに格納する場合の1/1,792に削減している。
<Effect of Embodiment 3 of Circuit Unit>
By storing information on whether or not it is a power neuron in a memory that stores weight data of synapse connections, it is possible to suppress an increase in the required memory amount. In the first modification of the third embodiment of the present invention, the capacity of the memory storing the power neuron information is reduced to 1/1, 792 in the case of storing in the synaptic connection weight memory based on this idea.

また、実施例3では個々のニューロン毎にパワーニューロンであるか否かを設定しているが、単に割合だけで設定しても問題ない場合は、本発明の実施例3の変形例1、実施例3の変形例2に示すように、パワーニューロン情報を格納するメモリそのものを省略し、大小比較器又はアンドゲートで代用できる。   Further, in the third embodiment, whether or not each neuron is a power neuron is set. However, if there is no problem even if only setting a ratio, the first modification of the third embodiment of the present invention, the implementation As shown in Modification 2 of Example 3, the memory itself for storing power neuron information can be omitted, and a large / small comparator or an AND gate can be substituted.

本発明の実施例2と実施例3では、抑制性ニューロンとパワーニューロンを別々に実装しているが、これらを混在させて実現することもできる。また、抑制性で且つパワーニューロンというニューロンも容易に実現できる。   In the second and third embodiments of the present invention, the inhibitory neuron and the power neuron are separately mounted. However, they can be realized by mixing them. In addition, an inhibitory and neuron called a power neuron can be easily realized.

本発明の実施例では、実施例1を元に隣接セルとだけ結合を作る、フィードフォーワード型のニューラルネットを元に説明したが、後述する実施例5に示すフィードバックループを有するニューラルネットにも適用できる。     The embodiment of the present invention has been described based on a feedforward type neural network that creates a connection only with neighboring cells based on the first embodiment. However, the neural network having a feedback loop shown in the fifth embodiment, which will be described later, may also be used. Applicable.

<回路ユニットの実施例4固有の課題>
脳内のニューロンは、シナプス結合で受け取った情報をシナプス近傍の細胞膜の電位変化に変換し、多数のシナプス結合によるローカルな電位変化を細胞膜全体で加算し、その結果として軸索小丘付近の膜電位が閾値を超えると発火する。この過程は細胞膜に埋め込まれているイオンチャネル蛋白質やイオンポンプ蛋白質と、そこを通過するイオンの量と細胞膜内外のイオン濃度差などによって支配されている。
<Problems Specific to Embodiment 4 of Circuit Unit>
Neurons in the brain convert the information received at the synaptic connection into potential changes in the plasma membrane near the synapse, and add local potential changes due to numerous synaptic connections across the cell membrane, resulting in the membrane near the axon hill. Fires when the potential exceeds the threshold. This process is governed by the ion channel protein and ion pump protein embedded in the cell membrane, the amount of ions passing therethrough, and the ion concentration difference inside and outside the cell membrane.

従って、この過程には本質的に揺らぎがあり、全く同じ情報をシナプス結合で受け取ったとしても、シナプス近傍の膜電位変化や、多数の膜電位変化の合成である軸索小丘付近の膜電位、及び発火の閾値などが揺らいでいるため、発火するかどうかは一定ではない。また、脳のごく狭い領域内に存在する同一機能のニューロンでも、軸索小丘の形状や、そこに存在するイオンチャネル蛋白質等の数や分布などが異なるので、閾値も多様である。   Therefore, this process is inherently fluctuating, and even if exactly the same information is received through synaptic connections, the membrane potential changes near the synapse and the membrane potential near the axon hill, which is a combination of many membrane potential changes. Because the firing threshold is fluctuating, whether or not to ignite is not constant. Even in neurons of the same function that exist in a very narrow region of the brain, the axon hill shape, the number and distribution of ion channel proteins, etc. present in the axon mound are different, so the thresholds are also diverse.

ところが、従来のニューラルネットのハードウェアでは、これらの状態を模倣することができず、閾値は全てのニューロンで同一の固定値であった。その為、ニューラルネットの規模(ニューロン数とシナプス結合の数)を大きくしていくと、学習の過程でローカルミニマムに落ち込み易くなり、学習が進み難くなるという問題があった。   However, conventional neural network hardware cannot imitate these states, and the threshold value is the same fixed value for all neurons. Therefore, if the scale of the neural network (the number of neurons and the number of synapse connections) is increased, there is a problem that it becomes easy to fall into a local minimum during the learning process, and learning becomes difficult to proceed.

本発明の実施例4では、ニューロン毎にその閾値に適当なオフセット値を与えられるようにし、且つニューロン毎に閾値が揺らぐようにすることで、学習途中でローカルミニマムに落ち込むことが少ない、1億ニューロン程度の大規模ニューラルネットを実現できるようにすることを課題とする。   In the fourth embodiment of the present invention, an appropriate offset value is given to each threshold value for each neuron, and the threshold value fluctuates for each neuron. An object is to realize a large-scale neural network of a neuron level.

実施例1の図5で示した回路ユニットを使った場合、ニューロン間の配線問題を解決でき、大規模なニューラルネットを構築できるが、閾値θが一定であり、しかもL2層の全てのニューロンについて閾値θが同一になってしまうという問題がある。   When the circuit unit shown in FIG. 5 of the first embodiment is used, the wiring problem between neurons can be solved and a large-scale neural network can be constructed. However, the threshold θ is constant and all the neurons in the L2 layer are used. There is a problem that the threshold value θ becomes the same.

そこで、本発明の実施例4では、L2層のj番目のニューロンの閾値θが、θ=θ+δ+rj,vと表せるようになるハードウェア技術を提供する。ここで、θは閾値のベース値、δはj番目のニューロン毎のオフセット量、rj,vはj番目のニューロン毎の揺らぎであり、適当な周期V(v=[0:V−1])で疑似ランダムに変化する量である。 Therefore, in the fourth embodiment of the present invention, a hardware technique is provided in which the threshold θ j of the j-th neuron in the L2 layer can be expressed as θ j = θ 0 + δ j + r j, v . Here, θ 0 is a threshold base value, δ j is an offset amount for each j-th neuron, r j, v are fluctuations for each j-th neuron, and an appropriate period V (v = [0: V− 1]) is a pseudo-random amount.

<回路ユニットの実施例4の説明>
図16は、本発明の第4の実施例である、閾値にオフセットと揺らぎを持たせたニューロン群を模擬した回路ユニットの回路図である。図5と同じ素子には、図5と同じ番号が振られている。
<Description of Embodiment 4 of Circuit Unit>
FIG. 16 is a circuit diagram of a circuit unit simulating a neuron group having a threshold value having an offset and fluctuation, according to a fourth embodiment of the present invention. The same elements as in FIG. 5 are given the same numbers as in FIG.

閾値に揺らぎを持たせたニューロン群を模擬した回路ユニットは、8ビットカウンター20と、メモリ21と、パルス列変調回路22と、8ビットカウンター23Aと、8ビットカウンター23Bと、メモリ24Aと、メモリ24Bと、メモリ25と、アンドゲート26と、19ビット加算器27と、アンドゲート28と、大小比較器29と、大小比較器29の結果を保持するラッチ30と、19ビットカウンター31と、閾値算出回路38とを用いて構成されている。   A circuit unit that simulates a group of neurons having fluctuations in threshold values includes an 8-bit counter 20, a memory 21, a pulse train modulation circuit 22, an 8-bit counter 23A, an 8-bit counter 23B, a memory 24A, and a memory 24B. A memory 25, an AND gate 26, a 19-bit adder 27, an AND gate 28, a magnitude comparator 29, a latch 30 for holding the result of the magnitude comparator 29, a 19-bit counter 31, and a threshold calculation. The circuit 38 is used.

従って、閾値にオフセットと揺らぎを持たせたニューロン群を模擬した回路ユニットは、図5の回路に、閾値算出回路38が追加されたものである。
閾値算出回路38は、8ビットカウンター56と、閾値のオフセット量を記憶する8[bit]×256のメモリ57と、12ビット加算器58と、13ビット加算器59と、8ビット疑似乱数発生器60とを用いて構成されている。
Therefore, the circuit unit simulating the neuron group in which the threshold value has the offset and fluctuation is obtained by adding the threshold value calculation circuit 38 to the circuit of FIG.
The threshold calculation circuit 38 includes an 8-bit counter 56, an 8 [bit] × 256 memory 57 for storing a threshold offset amount, a 12-bit adder 58, a 13-bit adder 59, and an 8-bit pseudorandom number generator. 60.

8ビットカウンター56は、端子48bでカウントアップ信号を受け取るごとに、カウント値jを1ずつ増加させ、当該カウント値jをメモリ57へ出力する。
メモリ57は、L2層のニューロン毎の閾値のオフセット量を保持する。メモリ57は、カウンター56が出力するカウント値jを受け取り、当該カウント値jに対応する番地から、L2層のニューロンの閾値のオフセット量δを読み出し、当該オフセット量δを12ビット加算器58に出力する。
Each time the 8-bit counter 56 receives the count-up signal at the terminal 48 b, the 8-bit counter 56 increments the count value j by 1 and outputs the count value j to the memory 57.
The memory 57 holds a threshold offset amount for each L2 layer neuron. The memory 57 receives the count value j output from the counter 56, reads the threshold value offset amount δ j of the L2 layer neuron from the address corresponding to the count value j, and adds the offset amount δ j to the 12-bit adder 58. Output to.

12ビット加算器58は、メモリ57が出力したj番目のニューロンのオフセット量δを受け取り、当該オフセット量δと片側に入力された閾値のベース値θとを加算し、当該加算後のデータ(12ビットデータ)を13ビット加算器59へ出力する。
13ビット加算器59は、12ビット加算器58が出力したデータと、8ビット疑似乱数発生器が出力した疑似乱数rj,vとを受け取り、当該データと当該疑似乱数rj,vを加算し、加算後のデータを閾値θとして、大小比較器29に出力する。
The 12-bit adder 58 receives the offset amount δ j of the j-th neuron output from the memory 57, adds the offset amount δ j and the threshold base value θ b input to one side, Data (12-bit data) is output to the 13-bit adder 59.
The 13-bit adder 59 receives the data output from the 12-bit adder 58 and the pseudo-random numbers r j, v output from the 8-bit pseudo-random number generator , and adds the data and the pseudo-random numbers r j, v. , The data after the addition is output to the magnitude comparator 29 as the threshold θ j .

8ビット疑似乱数発生器60は、端子48bでカウント信号を受け取り、信号ckとして用いる。また、8ビット疑似乱数発生器60は、端子49bで固定化信号を受け取り、信号fixとして用いる。8ビット疑似乱数発生器60は、前記ckとfixとを用いて、擬似乱数rj,vを発生させ、当該擬似乱数rj,vを13ビット加算器59へ出力する。 The 8-bit pseudo random number generator 60 receives the count signal at the terminal 48b and uses it as the signal ck. The 8-bit pseudo random number generator 60 receives the fixed signal at the terminal 49b and uses it as the signal fix. The 8-bit pseudo random number generator 60 generates the pseudo random numbers r j, v using the ck and the fix and outputs the pseudo random numbers r j, v to the 13-bit adder 59.

8ビット疑似乱数発生器60の内部回路の例として、図17にガロア型LFSR(Linear Feedback Shift Register)を示す。この回路は0以外の初期値から出発すると、255回のck入力の立ち上がりで、1〜255の値が各1回だけ疑似乱数的に発生して初期値に戻る。     As an example of the internal circuit of the 8-bit pseudorandom number generator 60, FIG. 17 shows a Galois type LFSR (Linear Feedback Shift Register). When this circuit starts from an initial value other than 0, at the rise of 255 ck inputs, the value of 1 to 255 is generated pseudo-randomly once and returns to the initial value.

図17の回路例では信号fixが1になると最上位ビットはリセットされ、他のビットはセットされるのでx’7F’に初期化される。信号fixは2通りの目的で1になる。1つは、0以外の初期値を設定する為である。もう1つは、閾値を変動させたくない場合に、rj,vを変動幅のほぼ中間値であるx’7F’に固定する為である。後者については後で説明する。この疑似乱数発生器が255回で一巡することも重要であるが、それについても後で説明する。この回路自体は疑似乱数発生用に従来から使われているものなので、ここでは詳細な説明を省略する。 In the circuit example of FIG. 17, when the signal fix becomes 1, the most significant bit is reset and the other bits are set, so that they are initialized to x′7F ′. The signal fix becomes 1 for two purposes. One is to set an initial value other than zero. The other is to fix r j, v to x′7F ′, which is an approximately intermediate value of the fluctuation range , when it is not desired to change the threshold value. The latter will be described later. It is also important that this pseudo random number generator makes a round in 255 times, which will be described later. Since this circuit itself has been conventionally used for generating pseudo-random numbers, a detailed description thereof is omitted here.

本発明の動作を実施例に沿って説明する。計算が始まる前に図示しないリセット信号によって、カウンター20、カウンター23A、カウンター23B、カウンター31、及びカウンター56は0になっており、信号fixも一旦1になり疑似乱数発生器60の出力値がx’7F’に初期化されている。また、図示しない任意の手段によって、メモリ21にL1層の入力データが、メモリ25にシナプス結合の重みデータが、メモリ57にL2層のニューロンの閾値のオフセット量が、それぞれ格納されているものとする。   The operation of the present invention will be described with reference to examples. Before the calculation starts, the counter 20, counter 23A, counter 23B, counter 31, and counter 56 are set to 0 by a reset signal (not shown), the signal fix is also set to 1, and the output value of the pseudo random number generator 60 is x. Initialized to '7F'. In addition, the L1 layer input data is stored in the memory 21, the synaptic connection weight data is stored in the memory 25, and the threshold value offset amount of the L2 layer neuron is stored in the memory 57 by any means (not shown). To do.

計算が始まるとカウンター20が0なので、メモリ21の0番地(L1層の0番のニューロン)から4ビットデータを読み出し、パルス列変調回路22に送り、15ビットデータに変換する。この変換は、例えばメモリ21から送られて来たデータをアドレスとして、図6に示すデータが書き込まれているメモリから、15ビットのデータを読み出して行う。   Since the counter 20 is 0 when the calculation is started, 4-bit data is read from address 0 of the memory 21 (0th neuron of the L1 layer), sent to the pulse train modulation circuit 22, and converted to 15-bit data. This conversion is performed, for example, by reading 15-bit data from the memory in which the data shown in FIG. 6 is written using the data sent from the memory 21 as an address.

最初のラウンド0では、15ビットデータ中のビット0を転送する。このデータを出力端子P0から外部へ出力すると、その動作とともに、メモリ24Aに送る。   In the first round 0, bit 0 in the 15-bit data is transferred. When this data is output from the output terminal P0 to the outside, it is sent to the memory 24A together with the operation.

端子P0から出力されたデータは隣接セルで受信されるが、回路は対称なので、その動作とともに、入力端子P1〜P6から隣接セルのデータを受信できる。そこで、パルス列変調回路22からのデータと端子P1〜P6からのデータとを束ねて7ビットデータとし、メモリ24Aの0番地に格納する。   Although the data output from the terminal P0 is received by the adjacent cell, the circuit is symmetrical, so that the data of the adjacent cell can be received from the input terminals P1 to P6 together with the operation. Therefore, the data from the pulse train modulation circuit 22 and the data from the terminals P1 to P6 are bundled into 7-bit data and stored in the address 0 of the memory 24A.

その後、端子41に入力される信号がアクティブになると、カウンター20は1をメモリ21に出力する。メモリ21は、1番地のデータを読み出して、当該データをパルス列変調回路22に出力する。パルス列変調回路22は、メモリ21が出力したデータを15ビットデータに変換し、当該15ビットデータのビット0を端子P0へ送る。   Thereafter, when the signal input to the terminal 41 becomes active, the counter 20 outputs 1 to the memory 21. The memory 21 reads the data at address 1 and outputs the data to the pulse train modulation circuit 22. The pulse train modulation circuit 22 converts the data output from the memory 21 into 15-bit data, and sends bit 0 of the 15-bit data to the terminal P0.

端子41に入力される信号がアクティブになると同時に、端子42Aに入力される信号がアクティブになると、カウンター23Aは1をメモリ24Aに出力する。メモリ24Aは、パルス列変調回路22が出力したデータと端子P1〜P6から入力されたデータとを束ねて7ビットデータにし、当該7ビットデータを1番地に格納する。   When the signal input to the terminal 41 becomes active and the signal input to the terminal 42A becomes active, the counter 23A outputs 1 to the memory 24A. The memory 24A bundles the data output from the pulse train modulation circuit 22 and the data input from the terminals P1 to P6 into 7-bit data, and stores the 7-bit data in the first address.

この様に、カウンター20と23Aが255を超えて0に戻るまでデータ転送を行うと、ラウンド0が終了する。L1層からL2層へ256個のデータを4[ms]で転送するので、一連の処理速度は64[kHz]であり、P0端子から出る信号(1ビット)のデータレートは64[Kbps]である。
次のラウンド1では、パルス列変調回路22は15ビットデータ中のビット1を送出し、転送したデータはメモリ24Bに書き込む。
In this way, when data transfer is performed until the counters 20 and 23A exceed 255 and return to 0, round 0 ends. Since 256 data is transferred from the L1 layer to the L2 layer at 4 [ms], the series of processing speed is 64 [kHz], and the data rate of the signal (1 bit) output from the P0 terminal is 64 [Kbps]. is there.
In the next round 1, the pulse train modulation circuit 22 transmits bit 1 in the 15-bit data, and the transferred data is written in the memory 24B.

メモリ24Aと24Bをラウンド毎に交互に使ってデータ転送を続け、ラウンド14でビット14の転送が終わると、メモリ21に入っているデータの転送が終わる。ニューラルネットでの処理を継続したい場合は、メモリ21に新たなデータを書き込むか、又はメモリ21をダブルバッファ構造にしてニューラルネットでの処理と並行して次のデータを用意しておく。   Data transfer is continued by alternately using the memories 24A and 24B for each round. When the transfer of bit 14 is completed in round 14, the transfer of data stored in the memory 21 is completed. When it is desired to continue the processing in the neural network, new data is written in the memory 21 or the next data is prepared in parallel with the processing in the neural network with the memory 21 having a double buffer structure.

次に、L2層のニューロンの動作について説明する。ラウンド0が終わり、メモリ24Aに1,792個のa´i,0,qが揃うと、ラウンド1からL2層での処理が始まる。L2層のj番目のニューロンは、Σ(a´i,0,q×w´i,q,j)を計算する。ここでΣはiとqについての1,792回の総和計算を表している。 Next, the operation of the L2 layer neuron will be described. When round 0 ends and 1,792 a ′ i, 0, q are arranged in the memory 24A, processing in the L2 layer starts from round 1. The jth neuron in the L2 layer calculates Σ (a ′ i, 0, q × w ′ i, q, j ). Here, Σ represents 1,792 total sum calculations for i and q.

L2層には256個のニューロンが存在するので、結局458,752(=1,792×256)回の積和演算を4[ms]間でしなければならない。従って、この部分の回路は114.7[MHz]で動作させる。   Since there are 256 neurons in the L2 layer, 458,752 (= 1,792 × 256) product-sum operations must be performed in 4 [ms] after all. Therefore, the circuit of this part is operated at 114.7 [MHz].

ラウンド1になりL2層で計算が始まると、端子42Aに入力する信号を16.384[MHz]でアクティブにしてカウンター23Aをカウントアップし、メモリ24Aから16.384[MHz]で7ビットのデータを読み出し、それを並直変換して7倍の速度の114.7[Mbps]の1ビット信号a´i,0,qにする。 When the calculation starts in the L2 layer in round 1, the signal input to the terminal 42A is activated at 16.384 [MHz] and the counter 23A is counted up, and 7-bit data from the memory 24A at 16.384 [MHz] Is converted to a 1-bit signal a ′ i, 0, q of 74.7 [Mbps], which is 7 times faster.

その動作とともに、端子47に入力する信号を114.7[MHz]でアクティブにしてカウンター31を114.7[MHz]でカウントアップし、メモリ25から8ビットのシナプス結合の重みデータw´i,q,jを出力するよう制御する。アンドゲート26は入力されたa´i,0,qとw´i,q,jとを乗算して8ビットのデータ(0又はw´i,q,j)を算出し、当該データを加算器27へ出力する。 Along with this operation, the signal input to the terminal 47 is made active at 114.7 [MHz], the counter 31 is counted up at 114.7 [MHz], and the 8-bit synaptic connection weight data w ′ i, Control to output q and j . The AND gate 26 multiplies the input a ′ i, 0, q and w ′ i, q, j to calculate 8-bit data (0 or w ′ i, q, j ), and adds the data. To the device 27.

加算器27は、アンドゲート28からデータを受け取り、当該データにアンドゲート26が出力した当該8ビットデータを加算してΣ(a´i,0,q×w´i,q,j)を算出する。総和計算の最初にアンドゲート28の端子44を0にし、加算器27が出力してその片側入力に戻す部分和を0にする。iとqについての1,792回の総和計算が終わると、当該総和を大小比較器29に出力する。 The adder 27 receives data from the AND gate 28, adds the 8-bit data output from the AND gate 26 to the data, and calculates Σ (a ′ i, 0, q × w ′ i, q, j ). To do. At the beginning of the sum calculation, the terminal 44 of the AND gate 28 is set to 0, and the partial sum output from the adder 27 and returned to the one-side input is set to 0. When 1,792 times of sum calculation for i and q are completed, the sum is output to the magnitude comparator 29.

大小比較器29は、当該総和を閾値θと比較し、総和が閾値θよりも大きければ比較結果を1にし、小さければ比較結果を0にする。大小比較器29は、比較結果を114.7[MHz]のパルス状に出力するので、そのままでは後段で使い難い。そこで、大小比較器29の出力が出るタイミングでラッチ30の端子45に入力する信号を1にし、ラッチ30に比較結果を保持する。この結果、L2層の出力は64[Kbps]の信号になる。 The magnitude comparator 29 compares the sum with the threshold θ j, and sets the comparison result to 1 if the sum is greater than the threshold θ j , and sets the comparison result to 0 if the sum is smaller. The large / small comparator 29 outputs the comparison result in the form of a pulse of 114.7 [MHz]. Therefore, the signal input to the terminal 45 of the latch 30 is set to 1 at the timing when the output of the large / small comparator 29 is output, and the comparison result is held in the latch 30. As a result, the output of the L2 layer becomes a signal of 64 [Kbps].

最後に、閾値θの生成部について説明する。ラウンド1の初めに、カウンター56がカウント値0をメモリ57に出力する。メモリ57は、当該カウント値0を受け取り、0番地のデータ即ち、L2層の0番のニューロンの閾値のオフセット量δを読み出す。メモリ57は、当該オフセット量δを、加算器58に出力する。
加算器58は、前記メモリ57が出力したオフセット量δと、図示されないレジスタ又は外部から供給された閾値のベース値θとを受け取る。
Finally, the generation unit for the threshold θ j will be described. At the beginning of round 1, the counter 56 outputs a count value 0 to the memory 57. The memory 57 receives the count value 0 and reads the data at address 0, that is, the threshold offset amount δ 0 of the neuron at the L2 layer. The memory 57 outputs the offset amount δ 0 to the adder 58.
The adder 58, the offset [delta] 0 of the memory 57 is output, receives a base value theta b of supplied from a not shown register or an external threshold.

加算器58は、前記オフセット量δと前記ベース値θとを加算し、当該加算した値を加算器59に出力する。ここで、ベース値θは12ビット幅であり、オフセット値δは8ビット幅としている。両者のビット幅の差を4にする理由は、ベース値の1/16程度までのオフセット量を与えられるようにする為である。 The adder 58 adds the said offset amount [delta] 0 and the base value theta b, and outputs the added value to the adder 59. Here, the base value θ b is 12 bits wide, and the offset value δ 0 is 8 bits wide. The reason why the difference between the two bit widths is 4 is that an offset amount up to about 1/16 of the base value can be given.

一方、疑似乱数発生器60は疑似乱数r0,v(vはラウンド数)を生成し、当該疑似乱数r0,vを加算器59に出力する。
加算器59は、疑似乱数発生器60が出力した疑似乱数r0,vと、加算器58が出力したベース値θとオフセット量δとの和を受け取る。
On the other hand, the pseudo random number generator 60 generates pseudo random numbers r 0, v (v is the number of rounds) and outputs the pseudo random numbers r 0, v to the adder 59.
The adder 59 receives the sum of the pseudo random number r 0, v output from the pseudo random number generator 60, the base value θ b output from the adder 58, and the offset amount δ 0 .

加算器59は、前記疑似乱数r0,vとベース値θとオフセット量δとの和を加算し、加算した値θを大小比較器29に出力する。
大小比較器29で比較が終わるタイミング即ち、64[kHz]で図示しない回路から端子48bに入力する信号が立ち上がり、疑似乱数発生器60が新たな疑似乱数r1,vを生成する。
The adder 59 adds the sum of the pseudo random numbers r 0, v , the base value θ b, and the offset amount δ 0, and outputs the added value θ 0 to the magnitude comparator 29.
A signal input to the terminal 48b from a circuit (not shown) rises at the timing when the comparison by the large / small comparator 29 ends, that is, 64 [kHz], and the pseudo random number generator 60 generates new pseudo random numbers r 1 and v .

その動作とともに、カウンター56がカウントアップし、閾値のオフセット量格納メモリ57が新しいオフセット量δを読み出す。このようにして、L2層のニューロン毎にオフセット量δと疑似乱数rj,vを更新する。 Along with its operation, the counter 56 counts up, the offset amount storage memory 57 of the threshold reads new offset [delta] 1. In this way, the offset amount δ j and the pseudo random numbers r j, v are updated for each neuron of the L2 layer.

ここで、疑似乱数rj,vの添え字vについて説明する。既に説明したように、図17の疑似乱数発生回路はck入力が255回アクティブになると、1〜255の値を各1回だけ疑似ランダムに生成し、256回目に初期値に戻る。この疑似乱数列をR0、R1、R2、R3、、、、R254とする。 Here, the subscript v of the pseudo random numbers r j, v will be described. As described above, when the ck input becomes active 255 times, the pseudo random number generation circuit of FIG. 17 generates the values 1 to 255 pseudo-randomly only once and returns to the initial value at the 256th time. Let this pseudo-random number sequence be R0, R1, R2, R3,.

ラウンド1でL2層の0番のニューロンの閾値に、最初に加算される値は初期値R0である。L2層には256個のニューロンが在るので、端子48bに入力される信号は256回アクティブになり、ラウンド1の最後に255番のニューロンの閾値に加算される値もR0になる。   The value initially added to the threshold value of the 0th neuron in the L2 layer in round 1 is the initial value R0. Since there are 256 neurons in the L2 layer, the signal input to the terminal 48b becomes active 256 times, and the value added to the threshold value of the 255th neuron at the end of round 1 is also R0.

従って、次のラウンド2で0番のニューロンの閾値に加算される値はR1である。結局、0番のニューロンの閾値に加算される疑似乱数を観察すると、255ラウンドでR0〜R254の値が一巡する。   Therefore, the value added to the threshold value of the 0th neuron in the next round 2 is R1. Eventually, when the pseudo-random number added to the threshold value of the 0th neuron is observed, the values of R0 to R254 make a round in 255 rounds.

他のニューロンの閾値に加算される疑似乱数についても同様である。1回のラウンドについてみると、0番と255番のニューロンでは同じ値が使われるが、その他では重複しない1〜255の値が各1回だけ使われ、1個のニューロンについてみると、255ラウンドで1〜255の値が疑似乱数的に使われることになる。   The same applies to pseudorandom numbers added to the thresholds of other neurons. In the case of one round, the same value is used in the 0th and 255th neurons, but in other cases, the non-overlapping values of 1 to 255 are used only once each, and if one neuron is viewed, there are 255 rounds. Thus, a value of 1 to 255 is used pseudo-randomly.

このようにして、各ニューロンの閾値にほぼ重複しない(0番と255番のニューロンでは重複する)、疑似ランダムな揺らぎを与えることができる。0番と255番のニューロンで疑似乱数が重複しないようにするには、疑似乱数発生器に9ビット以上のガロアLFSRを用いるか、或いはL2層に含まれるニューロンの数を254個以下にするなどして、疑似乱数発生器が一巡する周期よりもL2層のニューロンの個数を少なくし、かつ両者の間のずれ量が、疑似乱数発生器が一巡する周期の約数にならないように設定すればよい。   In this way, it is possible to give a pseudo-random fluctuation that does not substantially overlap with the threshold value of each neuron (it overlaps with neurons No. 0 and No. 255). To prevent the pseudo-random numbers from overlapping between the 0th and 255th neurons, use a 9-bit or more Galois LFSR for the pseudo-random number generator, or reduce the number of neurons included in the L2 layer to 254 or less. Thus, if the number of neurons in the L2 layer is made smaller than the cycle of the pseudo random number generator and the shift amount between the two is set not to be a divisor of the cycle of the pseudo random number generator. Good.

閾値に揺らぎを与える主な目的は、学習過程においてシナプス結合の重みを変化させる際に、ローカルミニマムの状態に落ち込むのを防ぐ為である。また、学習を終了した後に、閾値に揺らぎを持ったままニューラルネットを使用することもできるが、そうすると全く同じ入力データに対して出力が同じにならない可能性がある。この現象を避けるには信号fixを1に固定し、閾値の揺らぎをほぼ平均値のx’7F’に固定すれば良い。   The main purpose of giving fluctuations to the threshold is to prevent falling into the local minimum state when changing the weight of the synaptic connection in the learning process. Further, after learning is completed, the neural network can be used with the threshold value fluctuated, but in this case, the output may not be the same for the same input data. In order to avoid this phenomenon, the signal fix may be fixed at 1 and the threshold fluctuation may be fixed at approximately the average value x'7F '.

また、閾値のオフセット量δを全てのニューロンで同じにしたい場合は、メモリ57に書き込むデータを全て同じにするか、或いは端子48bに入力する信号をノンアクティブのまま保持すれば良い。 If it is desired to make the threshold offset amount δ j the same for all neurons, all the data written to the memory 57 may be the same, or the signal input to the terminal 48b may be held inactive.

次に、加算器58、加算器59、オフセットメモリ57及び、大小比較器29のビット幅について説明する。既に説明したように本実施例では、疑似乱数発生器のビット幅は8以上が望ましい。閾値θに与える揺らぎの割合を例えば最大10%程度とすると、θのビット幅を疑似乱数発生器のビット幅よりも、3〜4ビット多くする必要がある。そこで、本実施例4ではθを12ビット幅とした。 Next, the bit widths of the adder 58, the adder 59, the offset memory 57, and the magnitude comparator 29 will be described. As already described, in this embodiment, the bit width of the pseudo random number generator is desirably 8 or more. If the ratio of fluctuation given to the threshold value θ j is , for example, about 10% at the maximum, the bit width of θ b needs to be 3 to 4 bits larger than the bit width of the pseudo random number generator. Therefore, in the fourth embodiment of the theta b was 12 bits wide.

次に、閾値θに最大10%程度のオフセットを与えるとして、メモリ57のビット幅を8とした。以上のような仮定により、本実施例では加算器58のビット幅を12、加算器59のビット幅は13、大小比較器29のビット幅は13とした。一方、加算器27の出力は19ビット幅なので、その上位13ビットか又は、総和として現れる最大の数を表せる最小のビット幅の、上位13ビットを大小比較器29のA入力に入れることとする。 Next, assuming that an offset of about 10% at maximum is given to the threshold θ j , the bit width of the memory 57 is set to 8. Based on the above assumptions, in this embodiment, the bit width of the adder 58 is 12, the bit width of the adder 59 is 13, and the bit width of the magnitude comparator 29 is 13. On the other hand, since the output of the adder 27 is 19 bits wide, the upper 13 bits of the adder 27 or the upper 13 bits of the minimum bit width that can represent the maximum number appearing as the sum is input to the A input of the magnitude comparator 29. .

或いは、大小比較器29で必用とされる分解能を先に決め、それを基に疑似乱数発生器60のビット幅などを決めることもできる。その場合、疑似乱数発生器60に8ビット幅よりも小さいものを使うことができるが、例えば7ビットのものを使うとL2層のニューロンの約半分ずつが、同じ揺らぎを持つことになる。   Alternatively, the resolution required by the magnitude comparator 29 can be determined first, and the bit width of the pseudorandom number generator 60 can be determined based on the resolution. In this case, a pseudo-random number generator 60 having a width smaller than 8 bits can be used, but if a 7-bit one is used, for example, about half of the neurons in the L2 layer have the same fluctuation.

本発明の実施例4では、閾値のオフセット量を暗黙の内に正又は0としたが、本発明はこれに制限されるものではなく、オフセットデータメモリ57のデータを2の補数表現として解釈し、加算器58を加減算器に変更すれば、閾値に正負のオフセット量を与えることができる。
本発明の実施例4では、閾値のオフセット量をL2層のニューロン毎に設定できるとしたが、本発明はこれに制限されるものではなく、オフセット量が同じ幾つかのグループでL2層のニューロンを分類すれば、メモリ57に必要なデータ数を前記グループの数分まで減らすことができる。
In the fourth embodiment of the present invention, the threshold offset amount is implicitly positive or zero, but the present invention is not limited to this, and the data in the offset data memory 57 is interpreted as a two's complement expression. If the adder 58 is changed to an adder / subtracter, a positive / negative offset amount can be given to the threshold value.
In the fourth embodiment of the present invention, the threshold offset amount can be set for each L2 layer neuron. However, the present invention is not limited to this, and the L2 layer neuron in several groups having the same offset amount. , It is possible to reduce the number of data required for the memory 57 to the number of the groups.

本発明の実施例4では、大小比較器29で総和と閾値θを比較する度に端子48bに入力する信号をアクティブにするとしたが、本発明はこれに制限されるものではなく、端子48bに入力する信号を一定値に保つことにより、全てのニューロンのオフセット量と揺らぎ量を同一にすることができる。 In Example 4 of the present invention, a signal to be inputted each time comparing the sum with a threshold value theta j in magnitude comparator 29 to the terminal 48b and to activate, the present invention is not limited thereto, the terminal 48b By keeping the signal input to the constant value, the offset amount and fluctuation amount of all neurons can be made the same.

本発明の実施例4では、疑似乱数の値を暗黙の内に正又は0としたが、本発明はこれに制限されるものではなく、疑似乱数を2の補数表現として解釈し、加算器59を加減算器に変更すれば、閾値に正負の揺らぎを与えることができる。   In the fourth embodiment of the present invention, the value of the pseudo random number is implicitly set to positive or 0. However, the present invention is not limited to this, and the pseudo random number is interpreted as a two's complement expression, and the adder 59 Is changed to an adder / subtracter, positive and negative fluctuations can be given to the threshold value.

本発明の実施例4では、fix信号が1になった時に疑似乱数発生器60の値がx’7F’になるとしたが、本発明はこれに制限されるものではなく、0以外の任意の値を初期値として設定できる。或いは、リセット信号入力を追加して、リセット信号がアクティブになった際に0以外の初期値になるようにすれば、fix信号が1になる際には0を含めた任意の値に固定することができる。また、疑似乱数の値を2の補数として解釈する場合は、揺らぎの中心が0に近い値になるので、fix信号が1になった時の初期値をx‘01’など、0に近い値にすることができる。   In the fourth embodiment of the present invention, the value of the pseudo random number generator 60 becomes x′7F ′ when the fix signal becomes 1, but the present invention is not limited to this, and any value other than 0 is possible. A value can be set as an initial value. Alternatively, if a reset signal input is added so that an initial value other than 0 is obtained when the reset signal becomes active, when the fix signal becomes 1, the value is fixed to an arbitrary value including 0. be able to. Further, when the value of the pseudo random number is interpreted as a two's complement, since the center of fluctuation becomes a value close to 0, the initial value when the fix signal becomes 1 is a value close to 0, such as x'01 '. Can be.

本発明の実施例4では、疑似乱数発生器60として8ビットガロアLFSRを用いたが、本発明はこれに制限されるものではなく、任意のビット幅の任意の方式の疑似乱数発生器を用いても、同様に閾値に揺らぎを与えることができる。   In the fourth embodiment of the present invention, the 8-bit Galois LFSR is used as the pseudo-random number generator 60. However, the present invention is not limited to this, and an arbitrary-type pseudo-random number generator having an arbitrary bit width is used. However, the threshold value can be similarly fluctuated.

本発明の実施例4では、暗黙の内にL1層のニューロンが全て興奮性ニューロンであるとして説明したが、本発明はこれに制限されるものではなく、例えばシナプス結合の重みデータメモリ25のデータを2の補数表現として解釈し、加算器27を加減算器に置き換えれば、興奮性ニューロンと抑制性ニューロンが混在するニューラルネットに対しても、同様に閾値にオフセットと揺らぎを与えることができる。   In the fourth embodiment of the present invention, it has been described that all the neurons of the L1 layer are implicitly excitatory neurons, but the present invention is not limited to this. For example, the data in the synaptic connection weight data memory 25 Is replaced with an adder / subtracter, and an offset and fluctuation can be similarly applied to the threshold value for a neural network in which excitatory neurons and inhibitory neurons are mixed.

また、本発明の実施例3で説明したパワーニューロンに対しても、同様に閾値にオフセットと揺らぎを与えることができる。例えば、図14のパワーニューロンを模擬した回路ユニットにおいて、大小比較器29の入力端子43に、図16の閾値算出回路38の加算器59の出力端子を接続すれば、実現できる。   Similarly, an offset and fluctuation can be given to the threshold value for the power neuron described in the third embodiment of the present invention. For example, in the circuit unit simulating the power neuron of FIG. 14, this can be realized by connecting the output terminal of the adder 59 of the threshold value calculation circuit 38 of FIG. 16 to the input terminal 43 of the magnitude comparator 29.

本発明の実施例4では、1個のセルに含まれるニューロン数をL1層、L2層ともに256としたが、本発明はこれに制限されるものではなく、各層に2個以上のニューロンが存在すれば同様に適用できる。また、L1層とL2層のニューロン数が同数である必要はない。   In the fourth embodiment of the present invention, the number of neurons included in one cell is 256 in both the L1 layer and the L2 layer, but the present invention is not limited to this, and there are two or more neurons in each layer. It can be applied similarly. Further, the number of neurons in the L1 layer and the L2 layer need not be the same.

本発明の実施例では、ニューラルネットが2層の層構造を持つとしたが、本発明はこれに制限されるものではなく、3層以上のニューラルネットに対しても、第2層以降の各層に同様に適用できる。
本発明の実施例では、L1層のニューロンの入力データを4ビット幅としたが、本発明はこれに制限されるものではなく、任意のビット幅を持つニューラルネットに適用できる。
In the embodiment of the present invention, the neural network has a two-layer structure. However, the present invention is not limited to this, and each layer after the second layer is also applied to a neural network having three or more layers. Applicable to as well.
In the embodiment of the present invention, the input data of the L1 layer neuron is 4 bits wide, but the present invention is not limited to this, and can be applied to a neural network having an arbitrary bit width.

本発明の実施例では、1ラウンドが4[ms]であるとして説明したが、本発明はこれに制限されるものではなく、任意の時間を設定できる。
本発明の実施例では、パルスニューラルネットであるとして説明したが、本発明はこれに制限されるものではなく、パルスニューラルネット以外のニューラルネットにも同様に適用できる。
In the embodiment of the present invention, it is described that one round is 4 [ms]. However, the present invention is not limited to this, and an arbitrary time can be set.
In the embodiments of the present invention, the pulse neural network has been described. However, the present invention is not limited to this, and can be similarly applied to a neural network other than the pulse neural network.

<回路ユニットの実施例4の効果>
本発明の実施例4の技術を使うと、大規模なニューラルネット内の各ニューロンの閾値に、個別に任意のオフセット量と疑似ランダムな揺らぎを与えることができ、ニューロンに多様性を持たせられるとともに、学習時にローカルミニマムに落ち込んで学習が進み難くなるのを防止する効果が有る。
<Effect of Embodiment 4 of Circuit Unit>
By using the technique according to the fourth embodiment of the present invention, an arbitrary offset amount and pseudo-random fluctuation can be individually given to the threshold value of each neuron in a large-scale neural network, and the neuron can have diversity. At the same time, there is an effect of preventing the learning from becoming difficult due to the local minimum during learning.

また、全く同じ入力データに対して、一定範囲内で揺らぎの有る反応を返すニューラルネットを実現できる。或いは、この揺らぎを無くして常に同じ反応を返すニューラルネットを実現することもできる。   Further, it is possible to realize a neural network that returns a response with fluctuation within a certain range with respect to exactly the same input data. Alternatively, it is possible to realize a neural network that eliminates this fluctuation and always returns the same reaction.

<回路ユニットの実施例5固有の課題>
本発明の実施例5では、ニューロン数が1億以上で、信号経路にフィードバックループが存在し、しかも実時間動作するニューラルネットを実現する為の回路ユニットを提供することを課題とする。
<Issues unique to the fifth embodiment of the circuit unit>
Embodiment 5 of the present invention has an object to provide a circuit unit for realizing a neural network having a number of neurons of 100 million or more, a feedback loop in a signal path, and operating in real time.

例として、フィードバックループを持つ3層構造のパルスニューラルネットを、図23を用いて説明する。図23は、フィードバックループを持つニューラルネットの一部を表した模式図である。L1層はデータ入力層であり、ここには例えば4ビット幅の入力データを、例えば4[ms]周期のパルス列に変換するニューロン230(iは1から1,000までの整数)が、例えば1,000個存在する。L2層は中間データ処理層であり、データを演算処理するニューロン232(jは1から900までの整数)が、例えば900個存在する。 As an example, a three-layer pulse neural network having a feedback loop will be described with reference to FIG. FIG. 23 is a schematic diagram showing a part of a neural network having a feedback loop. The L1 layer is a data input layer. Here, for example, a neuron 230 i (i is an integer from 1 to 1,000) that converts input data having a width of 4 bits into a pulse train having a period of 4 [ms], for example, There are 1,000. The L2 layer is an intermediate data processing layer, and there are, for example, 900 neurons 232 j (j is an integer from 1 to 900) for processing data.

L3層はデータ出力層であり、データを演算処理するニューロン236(mは1から200までの整数)が、例えば200個存在する。L1層の各ニューロン230からは1本の出力信号線231(神経細胞の軸索に相当)が出ている。出力信号線231は多数箇所(ニューロン232の個数が900なので最大900)に分岐して、シナプス結合233i,jを介してL2層のj番目のニューロン232に接続する。 The L3 layer is a data output layer, and there are, for example, 200 neurons 236 m (m is an integer from 1 to 200) that processes data. From each neuron 230 i in the L1 layer, one output signal line 231 i (corresponding to an axon of a nerve cell) comes out. The output signal line 231 i branches to many places (900 at the maximum because the number of neurons 232 j is 900) and is connected to the j-th neuron 232 j in the L2 layer via the synapse connection 233 i, j .

L2層のk番目のニューロン232からは1本の出力信号線235が出ており、その先は分岐してL2層のニューロン232へのフィードバック信号と、L3層のニューロン236への入力信号となる。出力信号線235は、シナプス結合234k,jを介してL2層のj番目のニューロン232と接続する。また、出力信号線235は、シナプス結合237k,mを介してL3層のm番目のニューロン236と接続する。従って、L2層のニューロン232のシナプス結合の数はニューロン毎に最大1,900(=1,000+900)個存在する。 One output signal line 235 k is output from the k-th neuron 232 k in the L2 layer, and the tip of the output signal line 235 k branches to the feedback signal to the neuron 232 j in the L2 layer and the neuron 236 m in the L3 layer. Input signal. The output signal line 235 k is connected to the j-th neuron 232 j in the L2 layer via the synapse connection 234 k, j . The output signal line 235 k is connected to the m-th neuron 236 m in the L3 layer via the synapse connection 237 k, m . Accordingly, the maximum number of synaptic connections of the L2 layer neuron 232 j is 1,900 (= 1,000 + 900) per neuron.

信号線231で伝送されるデータaは1ビット信号である。シナプス結合233i,jは、例えば8ビット幅の重みデータwi,jを保持しており、aとの積a×wi,jを計算する。 Data a i transmitted through the signal line 231 i is a 1-bit signal. Synaptic connections 233 i, j, for example the weight data w i of 8-bit width, holds the j, computes the product a i × w i, j and a i.

信号線235で伝送されるデータbは1ビット信号である。シナプス結合234k,jは8ビット幅の重みデータwk,jを保持しており、bとの積b×wk,jを計算する。 The data b k transmitted through the signal line 235 k is a 1-bit signal. Synaptic connections 234 k, j is the weighting data w k of 8-bit width, holds the j, computes the product b k × w k, j and b k.

ニューロン232は、そこに付属する全てのシナプス結合で計算した最大1,000個のa×wi,jと最大900個のb×wk,jとの総和を計算する。そして、ニューロン232は、総和の値が予め決められている閾値θを超えると、その出力信号線235に1を出力し、閾値θを超えない場合は、出力信号線235に0を出力する。 The neuron 232 j calculates the sum of a maximum of 1,000 a i × w i, j and a maximum of 900 b k × w k, j calculated for all the synaptic connections attached thereto. Then, the neuron 232 j may exceeds the threshold value theta value of the sum is predetermined, and outputs a 1 on its output signal line 235 j, if the threshold is not exceeded theta, a 0 to output signal line 235 j Output.

L2層の各ニューロン232からL3層に向かう信号線235は、多数箇所(ニューロン236の個数が200なので最大200)に分岐する。信号線235は、シナプス結合237kmを介してニューロン236と接続する。従って、シナプス結合237k,mはニューロン236ひとつ当たり最大900個存在する。 Signal line 235 k toward the L3 layer from each neuron 232 k of the L2 layer, branches number at locations (up to 200 because the number of neurons 236 m 200). The signal line 235 k is connected to the neuron 236 m through the synapse connection 237 km . Accordingly, there are a maximum of 900 synapse connections 237 k, m per neuron 236 m .

シナプス結合237k,mは、例えば8ビット幅の重みデータwk,mを保持しており、bとの積b×wk,mを計算する。各ニューロン236では、そこに付属するシナプスで計算された最大900個のb×wk,mのkについての総和を計算する。 Synaptic connections 237 k, m, for example the weight data w k of 8 bits wide, holds m, product b k × w k with b k, to calculate the m. In each neuron 236 m , the sum of up to 900 b k × w k, m calculated at the synapses attached thereto is calculated.

そして、総和の値が予め決められている閾値θを超えると、ニューロン236は、その出力信号線238に1を出力し、閾値θを超えない場合は、出力信号線238に0を出力する。これら一連の演算は4[ms]以内で終了する。 When the sum value exceeds a predetermined threshold value θ, the neuron 236 m outputs 1 to the output signal line 238 m . When the sum value does not exceed the threshold value θ, the neuron 236 m sets 0 to the output signal line 238 m. Output. A series of these operations is completed within 4 [ms].

以上の説明から明らかなように、L1層の1,000個のニューロンはL2層の900個のニューロンと基本的に総当たりで結合し、L2層の900個のニューロンもL2層の900個のニューロンと基本的に総当たりで結合するので、これらの結合に使われるシナプス結合の総数は最大171万個(=1,900 ×900)に達し、これらのシナプス結合へ行く配線の総数も最大171万本に達する。   As is apparent from the above description, the 1,000 neurons in the L1 layer are basically connected to 900 neurons in the L2 layer, and the 900 neurons in the L2 layer are also 900 neurons in the L2 layer. Since the connection is basically brute force with neurons, the total number of synaptic connections used for these connections reaches a maximum of 1.71 million (= 1,900 × 900), and the total number of wires going to these synaptic connections is also a maximum of 171. Reach 10,000.

同様に、L2層の900個のニューロンはL3層の200個のニューロンと基本的に総当たりで結合するので、これらの結合に使われるシナプス結合の総数は最大18万個(=900×200)に達し、これらのシナプス結合へ行く配線の総数も最大18万本に達する。実際のニューラルネットではその用途や、学習結果によって不要なシナプス結合が取り除かれるので、各ニューロン230やニューロン232の出力が、どのニューロン232やニューロン236とシナプス結合を作るかは多様である。 Similarly, since 900 neurons in the L2 layer basically connect with 200 neurons in the L3 layer, the total number of synaptic connections used for these connections is a maximum of 180,000 (= 900 × 200). The total number of wires going to these synaptic connections also reaches 180,000. In an actual neural network, unnecessary synapse connections are removed depending on the use and learning results, so the output of each neuron 230 i and neuron 232 k has various synapse connections with which neuron 232 j and neuron 236 m. is there.

つまり、ニューロン230が選択的にニューロン232とシナプス結合を作れ、ニューロン232も選択的にニューロン236とシナプス結合を作れ、更にニューロン232の出力を選択的にニューロン232ヘフィードバックできる機構が技術的に可能でなければならない。 That is, the neuron 230 i can selectively make a synapse connection with the neuron 232 j , the neuron 232 k can also selectively make a synapse connection with the neuron 236 m, and the output of the neuron 232 k can be selectively fed back to the neuron 232 j. The mechanism must be technically possible.

高々ニューロン数2,100(=1,000+900+200)のニューラルネットでさえ、必要な配線の数が最大189万本(=171万+18万)に達し、しかもそれらを選択的に行う必要がある。人間の脳には100億から1000億のニューロンが存在し、各ニューロンは1,000個〜10,000個のシナプス結合を持つと言われている。人間の脳並みの1億程度のニューロン数を持ち、それらのニューロン間にフィードバックループが在るニューラルネットを構築するには膨大な配線が必要であり、この技術的課題を解決できなければ脳並みの規模と機能を持つニューラルネットを実現することはできない。   Even in a neural network having at most 2,100 neurons (= 1,000 + 900 + 200), the number of necessary wirings reaches a maximum of 1.89 million (= 171,000 + 180,000), and it is necessary to selectively perform them. There are 10 to 100 billion neurons in the human brain, and each neuron is said to have 1,000 to 10,000 synaptic connections. To build a neural network that has about 100 million neurons as many as the human brain and that has feedback loops between those neurons, a huge amount of wiring is required. A neural network with the scale and function cannot be realized.

この配線問題を解決する為に、図5で実施例1の回路ユニットを説明した。しかし、実施例1では所謂フィードフォーワード型のニューラルネットは実現できるが、本実施例5が対象としているフィードバックループを含むニューラルネットは実現できないという問題がある。そこで、本実施例5は、前述の実施例1を拡張することにより、フィードバックループを持つ超大規模ニューラルネットを構築できるようにするための回路ユニットを提供する。   In order to solve this wiring problem, the circuit unit of the first embodiment has been described with reference to FIG. However, in the first embodiment, a so-called feedforward type neural network can be realized, but there is a problem that a neural network including a feedback loop targeted in the fifth embodiment cannot be realized. Therefore, the fifth embodiment provides a circuit unit for extending the above-described first embodiment so that an ultra large-scale neural network having a feedback loop can be constructed.

<回路ユニットの実施例5の説明>
前述の実施例1の回路ユニット(図5)は、例えばL1層からL2層への配線に関するものであるが、L2層からL3層への配線にも適用可能なことは容易に推測できる。この場合にL1層からL2層への配線と、L2層からL3層への配線とを別々の出力端子に出すことも可能であるが、そうすると出力端子が2個、入力端子も2倍の12個必要になる。
<Description of Example 5 of Circuit Unit>
The circuit unit (FIG. 5) of the first embodiment described above relates to the wiring from the L1 layer to the L2 layer, for example, but it can be easily estimated that it can be applied to the wiring from the L2 layer to the L3 layer. In this case, the wiring from the L1 layer to the L2 layer and the wiring from the L2 layer to the L3 layer can be output to separate output terminals, but in that case, the number of output terminals is two and the number of input terminals is doubled to 12 I need one.

近年の半導体技術の発展により、論理素子(トランジスタ)は安価に作れるが、素子間を接続する配線は相対的に素子よりも高価になる場合が多い。ここで対象としている回路では、2つの出力端子から出る信号が64[Kbps]と低速であるので、2つの信号を時分割多重化して、1本の信号線で伝送することにしても技術的な問題は生じない。信号の時分割多重化と、それを元に戻すためには余計なトランジスタが必要になるが、信号の時分割多重化によって配線数を減らす方がコスト的に有利である。   With recent developments in semiconductor technology, logic elements (transistors) can be made at low cost, but wirings connecting the elements are relatively more expensive than elements. In the circuit under consideration here, since the signals coming out from the two output terminals are as low as 64 [Kbps], it is technical even if the two signals are time-division multiplexed and transmitted through one signal line. No problem arises. An extra transistor is required to time-division-multiplex the signal and to restore it, but it is advantageous in terms of cost to reduce the number of wires by the time-division multiplexing of the signal.

図18(a)は、或るセルにおける本発明の実施例5におけるニューラルネットワークの模式図である。1つのセルは、L1層に属する256個のニューロン180(iは0から255の整数)と、L2層に属する256個のニューロン182(jは0から255の整数)と、L3層に属する32個のニューロン186(mは0から31の整数)とを有する。 FIG. 18A is a schematic diagram of a neural network according to the fifth embodiment of the present invention in a certain cell. One cell consists of 256 neurons 180 i belonging to the L1 layer (i is an integer from 0 to 255), 256 neurons 182 j belonging to the L2 layer (j is an integer from 0 to 255), and an L3 layer. It has 32 neurons 186 m to which it belongs (m is an integer from 0 to 31).

更に、前記セルは、L1層のニューロン180からL2層のニューロン182への配線181と、L1層のニューロン180からL2層のニューロン182へのシナプス結合183i,jと、L2層のニューロン182(kは0から255の整数)からL2層のニューロン182への配線185と、L2層のニューロン182からL2層のニューロン182へのシナプス結合184k,jと、L2層のニューロン182からL3層のニューロン186へのシナプス結合187k,mと、L3層のニューロン186の出力端子188とを有する。 Further, the cell includes a wiring 181 i to neuron 182 j of the L2 layer from the neuron 180 i of the L1 layer, the synaptic connections 183 i, j to the neuron 182 j of the L2 layer from the neuron 180 i of the L1 layer, L2 a wiring 185 k of the (k is from 0 255 integer) neurons 182 k layer to neuron 182 j from the L2 layer, synaptic connections 184 k to neurons 182 j of the L2 layer from the neuron 182 k of the L2 layer, and j , Synapse connection 187 k, m from the L2 layer neuron 182 k to the L3 layer neuron 186 m , and an output terminal 188 m of the L3 layer neuron 186 m .

図18(b)と図18(c)は、層間を流れる信号のフォーマットを説明するための図である。図18(b)に示すようにL1層からL2層へのデータzi,t(iは0から255までの整数)と、L2層からL3層へのデータyk,t(kは0から255までの整数)を時分割多重化した信号Sとして、出力端子P0から出力することにする。
ここで、zi,tはL1層のi番目のニューロンのt番目(tは0以上の整数)のラウンドの出力である。yk,tはL2層のk番目のニューロンのt番目のラウンドの出力である。
FIG. 18B and FIG. 18C are diagrams for explaining the format of a signal flowing between layers. As shown in FIG. 18B, data z i, t from the L1 layer to the L2 layer (i is an integer from 0 to 255) and data y k, t from the L2 layer to the L3 layer (k is from 0). (Integer up to 255) is output from the output terminal P0 as a signal S obtained by time division multiplexing.
Here, z i, t is the t-th (t is an integer equal to or greater than 0) round output of the i-th neuron of the L1 layer. y k, t is the output of the t th round of the k th neuron of the L2 layer.

或いは、L2層の出力データを一旦メモリに格納しておき、図18(c)に示すようにL1層のデータを2[ms]で出力し終えた後で、L2層のデータを纏めて出力することもできる。いずれにしても信号Sのデータ転送速度は(256[bit]+256[bit])÷4[ms]=128[Kbps]と2倍になるが、これでもかなり低速なので通常の銅配線で接続可能である。   Alternatively, the L2 layer output data is temporarily stored in the memory, and after the L1 layer data is output in 2 [ms] as shown in FIG. 18C, the L2 layer data is output together. You can also In any case, the data transfer rate of the signal S is doubled as (256 [bit] +256 [bit]) ÷ 4 [ms] = 128 [Kbps]. It is.

本発明は、L1層からL2層へ送られるデータと、L2層からL3層へ送られるデータとを時分割多重化して1本の信号線で伝送し、L2層からL3層へ送られるデータを、L2層からL2層へのフィードバックデータとしても利用することを特徴とする、ニューロン間の配線方式である。
なお、今後の説明では図18(b)の信号フォーマットを念頭に置くが、図18(c)の信号フォーマットでも同様に本発明を適用できる。
In the present invention, the data sent from the L1 layer to the L2 layer and the data sent from the L2 layer to the L3 layer are time-division multiplexed and transmitted through one signal line, and the data sent from the L2 layer to the L3 layer is transmitted. The inter-neuron wiring system is also used as feedback data from the L2 layer to the L2 layer.
In the following description, the signal format of FIG. 18B is taken into consideration, but the present invention can be similarly applied to the signal format of FIG. 18C.

図19は、本発明の第5の実施例である、L2層のニューロン群の出力をL2層のニューロン群へフィードバックするニューラルネットの回路ユニットの回路図である。図19の回路全体が、図2(a)中の1個の正六角形(セル)に対応している。本実施例では各ニューロンは個別の電子回路ではなく、仮想ニューロンとしてL1層(256個のニューロン)、L2層(256個のニューロン)、L3層(32個のニューロン)を、それぞれ纏めて実装している。   FIG. 19 is a circuit diagram of a circuit unit of a neural network that feeds back the output of the L2 layer neuron group to the L2 layer neuron group according to the fifth embodiment of the present invention. The entire circuit of FIG. 19 corresponds to one regular hexagon (cell) in FIG. In this embodiment, each neuron is not an individual electronic circuit, but a L1 layer (256 neurons), an L2 layer (256 neurons), and an L3 layer (32 neurons) are mounted together as virtual neurons. ing.

図19の回路ユニットは、L1層に属する8ビットカウンター20と、メモリ21と、パルス列変調回路22と、8ビットカウンター23Aと、8ビットカウンター23Bと、メモリ24Aと、メモリ24Bと、メモリ25と、アンドゲート26と、加算器27と、アンドゲート28と、メモリ69Aと、メモリ69Bと、メモリ70と、アンドゲート71と、加算器72と、アンドゲート73と、加算器74と、大小比較器75と、ラッチ76と、マルチプレクサ77と、メモリ78と、アンドゲート79と、加算器80と、アンドゲート81と、大小比較器82と、ラッチ83と、アンドゲート84と、を用いて構成されている。   The circuit unit of FIG. 19 includes an 8-bit counter 20 belonging to the L1 layer, a memory 21, a pulse train modulation circuit 22, an 8-bit counter 23A, an 8-bit counter 23B, a memory 24A, a memory 24B, and a memory 25. AND gate 26, adder 27, AND gate 28, memory 69A, memory 69B, memory 70, AND gate 71, adder 72, AND gate 73, adder 74, and size comparison And a latch 78, a multiplexer 77, a memory 78, an AND gate 79, an adder 80, an AND gate 81, a magnitude comparator 82, a latch 83, and an AND gate 84. Has been.

8ビットカウンター20と、メモリ21と、パルス列変調回路22と、8ビットカウンター23Aと、8ビットカウンター23Bと、メモリ24Aと、メモリ24Bと、メモリ25と、アンドゲート26と、加算器27と、アンドゲート28は、図5の回路と同じであるので、説明を省略する。なお、メモリ25にアドレスを供給するカウンター31は表示を省略している。   8-bit counter 20, memory 21, pulse train modulation circuit 22, 8-bit counter 23A, 8-bit counter 23B, memory 24A, memory 24B, memory 25, AND gate 26, adder 27, The AND gate 28 is the same as the circuit of FIG. Note that the display of the counter 31 that supplies an address to the memory 25 is omitted.

メモリ69Aとメモリ69Bは、端子P0〜P6を介して伝送されて来たL2層の出力データb´k,q(7[bit]×256)を格納する。ここで、qは入(出)力端子番号を表す0から6までの整数である。メモリ69Aと69Bは交互に使われる。
メモリ70はL2層からのフィードバック信号を受けるシナプス結合の重みw´k,q,j(8[bit]×256×7×256)を格納する。
The memory 69A and the memory 69B store output data b ′ k, q (7 [bit] × 256) of the L2 layer transmitted through the terminals P0 to P6. Here, q is an integer from 0 to 6 representing the input (out) force terminal number. The memories 69A and 69B are used alternately.
The memory 70 stores synaptic connection weights w ′ k, q, j (8 [bit] × 256 × 7 × 256) for receiving a feedback signal from the L2 layer.

アンドゲート71はアンドゲート84が出力したb´k,qと、メモリ70が出力したw´k,q,jを受け取り、当該b´k,qとw´k,q,jを乗算し、乗算後の値b´k,q×w´k,q,jを加算器72に出力する。 The AND gate 71 receives b′k, q output from the AND gate 84 and w ′ k, q, j output from the memory 70, multiplies the b ′ k, q and w ′ k, q, j , The multiplied values b ′ k, q × w ′ k, q, j are output to the adder 72.

加算器72は、L2層のニューロンj毎に、アンドゲート71が出力したb´k,q×w´k,q,jのkとqに関する総和を算出し、当該総和を加算器74に出力する。総和計算の途中では、加算器72は、部分和をアンドゲート73に出力する。
アンドゲート73は、L2層の1個分のニューロンの総和計算の最初に、加算器72に入る部分和を0にする。
The adder 72 calculates the sum of k ′ and q ′ of b ′ k, q × w ′ k, q, j output from the AND gate 71 for each neuron j in the L2 layer, and outputs the sum to the adder 74. To do. During the sum calculation, the adder 72 outputs the partial sum to the AND gate 73.
The AND gate 73 sets the partial sum that enters the adder 72 to 0 at the beginning of the total sum calculation of one neuron in the L2 layer.

加算器74は、L2層のニューロンj毎に、加算器27が出力したL1層からのデータを基にした総和と、加算器72が出力したL2層からのフィードバックデータを基にした総和とを受け取り、当該L1層からのデータの総和と当該L2層からのフィードバックデータの総和とを加算し、加算後のデータを大小比較器75に出力する。   For each neuron j in the L2 layer, the adder 74 calculates the sum based on the data from the L1 layer output from the adder 27 and the sum based on the feedback data from the L2 layer output from the adder 72. Then, the sum of the data from the L1 layer and the sum of the feedback data from the L2 layer are added, and the added data is output to the magnitude comparator 75.

大小比較器75は、加算器74が出力したデータを受け取り、当該データが端子64から入力された閾値θよりも大きい場合に、1をラッチ76に出力する。一方、大小比較器75は、前記加算器74が出力したデータが、前記閾値θ以下の場合に、0をラッチ76に出力する。   The magnitude comparator 75 receives the data output from the adder 74, and outputs 1 to the latch 76 when the data is greater than the threshold value θ input from the terminal 64. On the other hand, the magnitude comparator 75 outputs 0 to the latch 76 when the data output from the adder 74 is equal to or less than the threshold value θ.

ラッチ76は、大小比較器75が出力したデータを受け取り、端子65に入力された信号が立ち上がるときに前記データを保持する。
マルチプレクサ77はL1層の出力データa´i,pとL2層の出力データb´とを交互に選択し、図18(b)に示すように時分割多重化する。
The latch 76 receives the data output from the magnitude comparator 75 and holds the data when the signal input to the terminal 65 rises.
The multiplexer 77 alternately selects the output data a ′ i, p of the L1 layer and the output data b ′ j of the L2 layer, and performs time division multiplexing as shown in FIG.

メモリ78はL2層からの信号を受け取るL3層のニューロンのシナプス結合の重みw´k,q,m(8[bit]×256×7×32)を格納する。また、メモリ78は、図示されていないカウンターからの信号を受け取ると、当該信号に対応したシナプス結合の重みw´k,q,mを読み出して、当該重みをアンドゲート79に出力する。 The memory 78 stores the synaptic connection weights w ′ k, q, m (8 [bit] × 256 × 7 × 32) of the L3 layer neuron that receives the signal from the L2 layer. When the memory 78 receives a signal from a counter (not shown), the memory 78 reads the synaptic connection weight w ′ k, q, m corresponding to the signal and outputs the weight to the AND gate 79.

アンドゲート79は、アンドゲート84が出力したデータb´k,qと、メモリ78が出力したシナプス結合の重みw´k,q,mとを受け取り、当該b´k,qとw´k,q,mを乗算し、乗算後の値b´k,q×w´k,q,mを加算器80へ出力する。 The AND gate 79 receives the data b ′ k, q output from the AND gate 84 and the synaptic connection weights w ′ k, q, m output from the memory 78 , and the b ′ k, q and w ′ k, q, multiplied by m, and outputs the value b'k after multiplication, q × w'k, q, the m to the adder 80.

加算器80は、アンドゲート79が出力したb´k,q×w´k,q,mを、それまでのステップで計算した部分和に加算することで、Σ(b´k,q×w´k,q,m)のkとqに関する総和を算出し、当該総和を大小比較器82に出力する。また、加算器80は、計算途中の部分和をアンドゲート81に出力する。
アンドゲート81は、L3層の1個分のニューロンの総和計算の最初に加算器80の片側入力を0にする。
The adder 80, AND b'gate 79 has an output k, q × w'k, q , the m, by adding to the calculated partial sums in the previous steps, Σ (b'k, q × w ′ K, q, m ) is calculated for k and q, and the total is output to the magnitude comparator 82. Further, the adder 80 outputs the partial sum during the calculation to the AND gate 81.
The AND gate 81 sets the one-side input of the adder 80 to 0 at the beginning of the sum calculation of one neuron in the L3 layer.

大小比較器82は、加算器80が出力した総和と、端子64から入力される閾値θを受け取り、前記総和が閾値θよりも大きい場合に、1をラッチ83に出力する。一方、大小比較器82は、前記総和が閾値θ以下の場合に、0をラッチ83に出力する。
ラッチ83は大小比較器82が出力したデータを受け取り、端子65に入力される信号が立ち上がるときに前記データを保持し、その値を端子67に出力する。
The magnitude comparator 82 receives the sum output from the adder 80 and the threshold value θ input from the terminal 64, and outputs 1 to the latch 83 when the sum is larger than the threshold value θ. On the other hand, the magnitude comparator 82 outputs 0 to the latch 83 when the sum is equal to or less than the threshold value θ.
The latch 83 receives the data output from the magnitude comparator 82, holds the data when the signal input to the terminal 65 rises, and outputs the value to the terminal 67.

なお、シナプス結合の重みには正負があるが、本発明の効果に影響しないので、本実施例では正のデータだけとして説明する。また、ニューロン間の接続が無い箇所については、そこに対応するシナプス結合の重みw´i,q,j、w´k,q,j及びw´k,q,mは0になっているとする。 Although the weight of the synapse connection is positive or negative, it does not affect the effect of the present invention. Therefore, in this embodiment, only the positive data will be described. In addition, for a portion where there is no connection between neurons, the weights w ′ i, q, j , w ′ k, q, j and w ′ k, q, m corresponding to the synapse connection are 0. To do.

次に、本実施例の動作について説明する。図19のニューラルネットでの処理が始まる前に、図示しない任意の方法によって、予めL1層のニューロンの入力データがメモリ21に格納されており、シナプス結合の重みデータがメモリ25、メモリ70及び、メモリ78に格納されているとする。また、カウンター20とカウンター23Aとカウンター23Bは図示しないリセット信号によって予め0になっている。   Next, the operation of this embodiment will be described. Before the processing in the neural network of FIG. 19 is started, the input data of the neurons of the L1 layer is stored in advance in the memory 21 by an arbitrary method not shown, and the weight data of the synapse connection is stored in the memory 25, the memory 70, and Assume that it is stored in the memory 78. The counter 20, the counter 23A, and the counter 23B are set to 0 beforehand by a reset signal (not shown).

計算が始まるとカウンター20が0なので、メモリ21は、0番地の4ビットデータを読み出してパルス列変調回路22に送り、パルス列変調回路22は当該データを15ビットデータに変換する。この変換は、例えばメモリ21から送られて来るデータをアドレス情報として、図6に示すデータが書き込まれたメモリからデータを読み出すことで実現できる。   Since the counter 20 is 0 when the calculation starts, the memory 21 reads the 4-bit data at address 0 and sends it to the pulse train modulation circuit 22, which converts the data into 15-bit data. This conversion can be realized, for example, by reading data from the memory in which the data shown in FIG. 6 is written using the data sent from the memory 21 as address information.

最初のラウンド0では、図6に示す15ビットデータのLSBだけを転送する。このデータa´0,0をL2層の出力データb´と時分割多重し、図18(b)に示すフォーマットで出力端子P0から出力するが、ラウンド0ではL2層の出力データb´は不定である。 In the first round 0, only the LSB of 15-bit data shown in FIG. 6 is transferred. The data a'0,0 and time-division multiplexed output data b'0 of the L2 layer, but from the output terminal P0 in the format shown in FIG. 18 (b), the output data of the round 0 in the L2 layer b'0 Is undefined.

端子P0から出るデータは隣接セルで受信されるが、図2(b)に示すように回路は対称なので、その動作とともに、入力端子P1〜P6から隣接セルのデータを受信できる。メモリ24Aは、端子P0〜P6から入力されたL1層からのデータa´0,0,qをメモリ24Aの0番地に格納する。メモリ69Aは、L2層からのデータb´0、qをメモリ69Aの0番地に格納するが、ラウンド0では前記b´0、qは不定である。 Although the data output from the terminal P0 is received by the adjacent cell, since the circuit is symmetrical as shown in FIG. 2B, the data of the adjacent cell can be received from the input terminals P1 to P6 together with the operation. The memory 24A stores the data a ′ 0,0, q from the L1 layer input from the terminals P0 to P6 at the address 0 of the memory 24A. The memory 69A stores the data b′0 , q from the L2 layer at address 0 of the memory 69A, but the b′0 , q is indefinite in round 0.

その後、端子41に入力される信号と端子42Aに入力される信号がアクティブになりカウンター20とカウンター23Aが1になると、メモリ21の1番地のデータが読み出されてパルス列変調回路22に送られて15ビットデータに変換され、そのLSBだけが端子P0へ送られる。   Thereafter, when the signal input to the terminal 41 and the signal input to the terminal 42A become active and the counter 20 and the counter 23A become 1, the data at the first address in the memory 21 is read and sent to the pulse train modulation circuit 22. Is converted to 15-bit data, and only the LSB is sent to the terminal P0.

そして、端子P0〜P6からのデータが束ねられて7ビット幅のデータになり、L1層からのデータa´1,0,qがメモリ24Aの1番地に、L2層からのデータb´1、qがメモリ69Aの1番地に、それぞれ格納される。このようにして、カウンター20と23Aが255を超えて0に戻るまで、データの転送が行われるとラウンド0が終了する。 Then, the data from the terminals P0 to P6 are bundled to become 7-bit data, the data a ′ 1, 0, q from the L1 layer are stored in the first address of the memory 24A, the data b ′ 1, from the L2 layer , q is stored in the first address of the memory 69A. Thus, when data transfer is performed until counters 20 and 23A exceed 255 and return to 0, round 0 ends.

次のラウンド1では、パルス列変調回路22は15ビットデータのビット1のデータを送出し、転送されたデータはL1層のデータはメモリ24Bに書き込まれ、L2層の出力データはメモリ69Bに書き込まれる。この様にメモリ24Aと24B、及びメモリ69Aと69Bをそれぞれ交互に使ってデータ転送を行う。   In the next round 1, the pulse train modulation circuit 22 sends out bit 1 data of 15-bit data, the transferred data is written in the L1 layer data in the memory 24B, and the output data in the L2 layer is written in the memory 69B. . In this way, data transfer is performed using the memories 24A and 24B and the memories 69A and 69B alternately.

ラウンド14でビット14の転送が終わるとメモリ21に入っているデータの処理が終わる。ニューラルネットでの処理を継続したい場合は、メモリ21に新たなデータを書き込むか、メモリ21をダブルバッファ構造にしてニューラルネットでの処理と並行して次のデータを用意しておくか、或いはメモリ21の同じデータを使って処理を繰り返す。   When the transfer of bit 14 is completed in round 14, the processing of the data stored in memory 21 is completed. When it is desired to continue the processing in the neural network, new data is written in the memory 21, or the memory 21 is made a double buffer structure and the next data is prepared in parallel with the processing in the neural network, or the memory Repeat the process using the same 21 data.

次に、L2層のニューロンの動作について説明する。ラウンド0ではメモリ24Aのデータが不定なので、このデータを使って演算したL2層の出力は不定である。ラウンド0が終わりメモリ24Aに1,792個のa´i,0,qが揃うと、次のラウンド1でL2層のデータ処理を行う。 Next, the operation of the L2 layer neuron will be described. Since the data in the memory 24A is indefinite in round 0, the output of the L2 layer calculated using this data is indefinite. When round 0 ends and 1,792 a ′ i, 0, q are arranged in the memory 24A, data processing in the L2 layer is performed in the next round 1.

しかし、ラウンド0でL2層の出力が不定であったので、これを格納したメモリ69Aの内容は不定である。従って、この状態でL2層の演算を行うと、L2層の出力が再び不定になってしまう。これを防ぐためにラウンド1の間、端子68を0にして、アンドゲート84の出力を0に固定し、L2層からのフィードバック情報を無視する。L1層からのデータに関してL2層では1ニューロン当たり1,792回の積和演算をしなければならないので、L1層側の1,792倍のスピード即ち、114.7[MHz]で計算する。L2層のj番目の仮想ニューロンではΣ(a´i,0,q×w´i,q,j)を計算する。ここでΣはiとqに関する総和を表している。 However, since the output of the L2 layer was indefinite at round 0, the contents of the memory 69A storing this are indefinite. Therefore, if the operation of the L2 layer is performed in this state, the output of the L2 layer becomes unstable again. To prevent this, during round 1, the terminal 68 is set to 0, the output of the AND gate 84 is fixed to 0, and the feedback information from the L2 layer is ignored. With respect to data from the L1 layer, the L2 layer has to perform 1,792 product-sum operations per neuron, so the calculation is performed at a speed 1,792 times that of the L1 layer, that is, 114.7 [MHz]. In the jth virtual neuron of the L2 layer, Σ (a ′ i, 0, q × w ′ i, q, j ) is calculated. Here, Σ represents the sum of i and q.

メモリ24Aは、64[kHz]の256倍の16.384[MHz]で7ビットのデータを読み出し、それを並直変換して7倍の114.7[Mbps]の1ビット信号a´i,0,qにする。その動作とともに、シナプス結合の重みメモリ25から、対応する8ビットの重みデータw´i,q,jを114.7[MHz]で読み出し、アンドゲート26でa´i,0,qと乗算して8ビットの0又はw´i,q,jにする。 The memory 24A reads out 7-bit data at 16.384 [MHz], which is 256 times 64 [kHz], and converts it into a parallel signal, thereby converting the 7-bit 114.7 [Mbps] 1-bit signal a ′ i, Set to 0, q . Along with this operation, the corresponding 8-bit weight data w ′ i, q, j is read out from the synapse connection weight memory 25 at 114.7 [MHz], and is multiplied by a ′ i, 0, q by the AND gate 26. 8 bits 0 or w ′ i, q, j .

こうして得られたa´i,0,q×w´i,q,jを加算器27に入力し、Σ(a´i,0,q×w´i,q,j)を計算する。総和計算の最初に端子63に入力される信号が0になり、加算器27の片側入力は0になる。iとqについての1,792回の総和計算が終わると、加算器74を介して当該総和を大小比較器75へ送り、そこで閾値θと比較し、総和が閾値θよりも大きければ出力を1にし、小さければ出力を0にする。 The a ′ i, 0, q × w ′ i, q, j thus obtained is input to the adder 27 and Σ (a ′ i, 0, q × w ′ i, q, j ) is calculated. The signal input to the terminal 63 at the beginning of the summation is 0, and the one-side input of the adder 27 is 0. When 1,792 summation calculations for i and q are completed, the summation is sent to the magnitude comparator 75 via the adder 74, where it is compared with the threshold θ, and if the sum is greater than the threshold θ, the output is 1 If it is smaller, the output is set to 0.

この出力は114.7[MHz]のパルス状に出るので、そのままでは使い難い。そこで、これを適当なタイミング信号65によってラッチ76に保持し64[Kbps]の信号b´にする。つまり、ラウンド1では64[Kbps]のスピードでL2層のデータが生成され、P0端子から出力されてメモリ69Bに保存される。 Since this output appears in the form of a pulse of 114.7 [MHz], it is difficult to use as it is. Therefore, this is held in the latch 76 by an appropriate timing signal 65 to obtain a signal b ′ j of 64 [Kbps]. That is, in round 1, L2 layer data is generated at a speed of 64 [Kbps], output from the P0 terminal, and stored in the memory 69B.

ラウンド2ではメモリ69Bに格納されているL2層の出力データが有効である。そこで、端子68に入力する信号を1にし、L2層からのフィードバック情報を有効にする。メモリ69Bは、64[kHz]の256倍の16.384[MHz]で7ビットのデータを読み出し、それを並直変換して7倍の114.7[Mbps]の1ビット信号b´k,qにする。 In round 2, the output data of the L2 layer stored in the memory 69B is valid. Therefore, the signal input to the terminal 68 is set to 1, and the feedback information from the L2 layer is validated. The memory 69B reads out 7-bit data at 16.384 [MHz], which is 256 times 64 [kHz], and converts it into a parallel signal, thereby converting the 7-bit 114.7 [Mbps] 1-bit signal b ′ k, q .

その動作とともに、フィードバックループを形成するシナプス結合の重みメモリ70から、対応する8ビットの重みデータw´k,q,jを114.7[MHz]で読み出し、アンドゲート71でb´k,qと乗算して8ビットの0又はw´k,q,jにする。アンドゲート71は、算出したb´k,q×w´k,q,jを加算器72に出力する。 Along with this operation, the corresponding 8-bit weight data w ′ k, q, j is read out at 114.7 [MHz] from the synaptic connection weight memory 70 forming the feedback loop, and b ′ k, q is read out by the AND gate 71. And 8 bits of 0 or w ′ k, q, j . The AND gate 71 outputs the calculated b ′ k, q × w ′ k, q, j to the adder 72.

加算器72は、アンドゲート71から当該b´k,q×w´k,q,jを受け取り、kとqに関する総和Σ(b´k,q×w´k,q,j)を計算する。ここで、総和計算の最初に端子63に入力される信号が0になり、アンドゲート73の出力が0になり、その結果、加算器72の片側入力データは0になる。加算器72は、kとqについての1,792回の総和計算が終わると、当該総和を加算器74へ出力する。 The adder 72 receives the b ′ k, q × w ′ k, q, j from the AND gate 71 and calculates the sum Σ (b ′ k, q × w ′ k, q, j ) regarding k and q. . Here, the signal input to the terminal 63 at the beginning of the summation is 0, the output of the AND gate 73 is 0, and as a result, the one-side input data of the adder 72 is 0. The adder 72 outputs the sum to the adder 74 after 1,792 times of the sum calculation for k and q.

加算器74は、L2層からのフィードバック情報である加算器72の出力と、L1層からのデータの総和計算をした加算器27の出力とを加算し、加算後の和を大小比較器75へ出力する。   The adder 74 adds the output of the adder 72, which is feedback information from the L2 layer, and the output of the adder 27 that has calculated the sum of data from the L1 layer, and adds the sum after addition to the magnitude comparator 75. Output.

大小比較器75は、加算器74から前記和を受け取り、当該和を閾値θと比較し、和が閾値θよりも大きければ出力を1にし、小さければ出力を0にする。大小比較器75の出力は、端子65に入力されるタイミング信号によりラッチ76に保持され、64[Kbps]の信号b´として、セレクタ77に出力する。
ラウンド3以降は、メモリ24Aとメモリ24B、及びメモリ69Aとメモリ69Bをそれぞれ交互に使いながら、ラウンド2と同様の動作をする。
The magnitude comparator 75 receives the sum from the adder 74, compares the sum with the threshold θ, and sets the output to 1 if the sum is greater than the threshold θ, and sets the output to 0 if the sum is smaller. The output of the large / small comparator 75 is held in the latch 76 by the timing signal input to the terminal 65 and is output to the selector 77 as a signal b ′ j of 64 [Kbps].
In round 3 and later, the same operation as in round 2 is performed while the memories 24A and 24B and the memories 69A and 69B are alternately used.

次に、L3層のニューロンの動作について説明する。ラウンド0及びラウンド1ではメモリ69A、69Bとも値が不定なので、L3層では演算処理ができない。ラウンド1でL2層のニューロンの出力b´が確定し、それがメモリ69Bに格納されるので、ラウンド2からL3層でのデータ処理が可能になる。 Next, the operation of the L3 layer neuron will be described. Since the values of the memories 69A and 69B are indefinite in round 0 and round 1, the arithmetic processing cannot be performed in the L3 layer. Round 1 to confirm the output b'j neuron L2 layer, it therefore is stored in the memory 69B, it is possible to data processing in the round 2 L3 layer.

L2層からのデータに関してL3層では1ニューロン当たり1,792回の積和演算をしなければならないが、L3層のニューロン数はL2層の1/8(= 32/256)なので、L2層のデータ出力速度の224倍(= 1,792/8)の14.4MHzで積和演算をすれば良い。   For the data from the L2 layer, the L3 layer must perform 1,792 product-sum operations per neuron, but the number of neurons in the L3 layer is 1/8 (= 32/256) of the L2 layer. The product-sum operation may be performed at 14.4 MHz, which is 224 times the data output speed (= 1, 792/8).

しかし、メモリ69A、69BのデータはL2層へのフィードバック信号として114.7[MHz]でアンドゲート71に供給されるので、それと異なる速度でデータを読み出すのは不都合である。そこで、L3層の処理も114.7[MHz]で行うことにする。   However, since the data in the memories 69A and 69B is supplied to the AND gate 71 at 114.7 [MHz] as a feedback signal to the L2 layer, it is inconvenient to read the data at a different speed. Therefore, the processing of the L3 layer is also performed at 114.7 [MHz].

ラウンド2になると、メモリ69Bは、64[kHz]の256倍の16.384[MHz]で7ビットのデータを読み出し、それを並直変換して7倍の114.7[Mbps]の1ビット信号b´k,qにし、アンドゲート79に出力する。この信号はL2層へフィードバック信号として供給されるものと同じである。その動作とともに、L3層のシナプス結合の重みメモリ78は、対応するシナプス結合の重みデータw´k,q,mを114.7[MHz]で読み出し、アンドゲート79に出力する。アンドゲート79はL2層の出力データb´k,qとシナプス結合の重みデータw´k,q,mを乗算して8ビットの0又はw´k,q,mにする。 In round 2, the memory 69B reads out 7-bit data at 16.384 [MHz], which is 256 times 64 [kHz], and converts it into a parallel, which is 7 times 14.7 [Mbps]. The signals b ′ k and q are output to the AND gate 79. This signal is the same as that supplied as a feedback signal to the L2 layer. Along with this operation, the synaptic connection weight memory 78 in the L3 layer reads the corresponding synaptic connection weight data w ′ k, q, m at 114.7 [MHz] and outputs it to the AND gate 79. The AND gate 79 multiplies the output data b ′ k, q of the L2 layer and the weight data w ′ k, q, m of the synapse connection to make 8-bit 0 or w ′ k, q, m .

アンドゲート79は、こうして得られたb´k,q×w´k,q,mを加算器80に出力する。加算器80は受け取ったデータb´k,q×w´k,q,mのkとqに関する総和Σ(b´k,q×w´k,q,m)を計算する。総和計算の最初に端子63に入力される信号が0になり、アンドゲート81の出力が0になり、加算器80の片側入力データが0になる。kとqについての1,792回の総和計算が終わると、加算器80は、当該総和を大小比較器82へ出力する。 The AND gate 79 outputs the b ′ k, q × w ′ k, q, m thus obtained to the adder 80. The adder 80 is received data b'k, calculates q × w'k, q, k and q related to the sum Σ of m (b'k, q × w' k, q, m) and. The signal input to the terminal 63 at the beginning of the summation is 0, the output of the AND gate 81 is 0, and the one-side input data of the adder 80 is 0. When the 1,792 sum calculation for k and q is completed, the adder 80 outputs the sum to the magnitude comparator 82.

大小比較器82は、加算器80から当該総和を受け取り、当該総和と閾値θと比較する。大小比較器82は、前記総和が閾値θよりも大きければ、ラッチ83に1を出力し、前記総和が閾値θよりも小さければ、ラッチ83に0を出力する。   The magnitude comparator 82 receives the sum from the adder 80 and compares the sum with the threshold θ. The magnitude comparator 82 outputs 1 to the latch 83 if the sum is larger than the threshold θ, and outputs 0 to the latch 83 if the sum is smaller than the threshold θ.

ラッチ83は、大小比較器82が出力した値を、端子65に入力されるタイミング信号により保持し、64[Kbps]でL3層のm番目のニューロンの出力信号を端子67に出力する。但し、L3層のニューロン数は32なので、ラウンドの初めから32ビット目までのデータが有効である。ラウンド3以降はラウンド2と同様の動作になる。   The latch 83 holds the value output from the magnitude comparator 82 by the timing signal input to the terminal 65 and outputs the output signal of the mth neuron in the L3 layer to the terminal 67 at 64 [Kbps]. However, since the number of neurons in the L3 layer is 32, data from the beginning of the round to the 32nd bit is effective. The operations after round 3 are the same as those of round 2.

以上説明したように、L1層の出力データとL2層の出力データを時分割多重化し、1本の信号線を用いて隣接するセル間でデータ転送することにより、フィードバックループを持つ3層構造の大規模ニューラルネットを実現できる。その際に、L2層からL3層へ送るデータと、L2層からL2層へのフィードバックデータとを共通化できる。   As described above, the output data of the L1 layer and the output data of the L2 layer are time-division multiplexed, and the data is transferred between adjacent cells using one signal line, thereby having a three-layer structure having a feedback loop. A large-scale neural network can be realized. At that time, data sent from the L2 layer to the L3 layer and feedback data from the L2 layer to the L2 layer can be made common.

本実施例ではニューラルネットが3層構造であるとしたが、本発明はこれに制限されるものではなく、一般的に2層以上のニューラルネットに適用できる。その場合は図18(b)又は図18(c)に示すように、信号線Sに中間層又は出力層のニューロンからの出力データを時分割多重化すれば良い。   In this embodiment, the neural network has a three-layer structure. However, the present invention is not limited to this, and can be generally applied to a neural network having two or more layers. In that case, the output data from the neurons in the intermediate layer or the output layer may be time-division multiplexed on the signal line S as shown in FIG.

また、本実施例ではL2層からの出力データを同じL2層へフィードバックするとして説明したが、本発明はこれに制限されるものではない。一般的に或る層Aからの出力データが次段の層Bの入力になるとともに、層Cへのフィードバックデータとなる場合でも同様に適用できる。   In this embodiment, the output data from the L2 layer is described as being fed back to the same L2 layer, but the present invention is not limited to this. In general, output data from a certain layer A becomes input to the next layer B and also becomes feedback data to the layer C.

更に、本実施例ではフィードバックループが、一系統だけ(L2層からL2層へ)存在するとして説明したが、本発明はこれに制限されるものではない。一般的に複数系統のフィードバックループ(例えばL2層からL2層へと、L4層からL3層へ)を持つニューラルネット、或いは一つの層に複数の層からのフィードバックループ(例えばL2層とL3層からL2層へ)が有るニューラルネット、或いは1つの層から複数の層へのフィードバックループ(例えばL3層からL2層とL3層へ)が有るニューラルネットにも適用できる。   Furthermore, in the present embodiment, the feedback loop is described as having only one system (from the L2 layer to the L2 layer), but the present invention is not limited to this. Generally, a neural network having a plurality of feedback loops (for example, from the L2 layer to the L2 layer and from the L4 layer to the L3 layer), or a feedback loop from a plurality of layers in one layer (for example, from the L2 layer and the L3 layer) The present invention can also be applied to a neural network having (to the L2 layer) or a neural network having a feedback loop from one layer to a plurality of layers (for example, from the L3 layer to the L2 layer and the L3 layer).

また、本発明の実施例ではパルスニューラルネットについて説明したが、本発明はこれに制限されるものではない。
なお、図19では、L1層からの信号の総和計算結果と、L2層からのフィードバックの総和計算結果を加えるために加算器74を用いているが、例えば加算器27と加算器72の動作速度を114.7[MHz]ではなく、その1,793/1,792倍以上とすれば、加算器74を省略して加算器27で代行できる。
In the embodiments of the present invention, the pulse neural network has been described. However, the present invention is not limited to this.
In FIG. 19, the adder 74 is used to add the signal sum calculation result from the L1 layer and the feedback sum calculation result from the L2 layer. For example, the operation speeds of the adder 27 and the adder 72 are as follows. Is not 114.7 [MHz], but 1,793 / 1,792 times or more, the adder 74 can be omitted and the adder 27 can be substituted.

<回路ユニットの実施例5の変形例>
図20は、本発明の実施例5の変形例である、L3層のニューロン群の出力をL2層のニューロン群へフィードバックするニューラルネットの回路ユニットの回路図である。図19の回路と同じ素子には同じ番号が振ってある。図19の2入力セレクタ77を3入力セレクタ90に置き換え、出力端子P0からL1層の出力a´i,pとL2層の出力b´とL3層の出力c´を時分割多重化して出力する。また、7[bit]×32のメモリ91Aとメモリ92Bとアンドゲート92とを追加し、L2層へフィードバックするL3層の出力データc´m,qと、L3層への入力となるL2層の出力データb´k,qとを分離する。動作の詳細な説明については省略する。
<Modification of Example 5 of Circuit Unit>
FIG. 20 is a circuit diagram of a circuit unit of a neural network that is a modification of the fifth embodiment of the present invention and feeds back the output of the L3 layer neuron group to the L2 layer neuron group. The same elements as those in the circuit of FIG. The 2-input selector 77 in FIG. 19 is replaced with a 3-input selector 90, and the outputs a ′ i, p of the L1 layer, the output b ′ j of the L2 layer, and the output c ′ m of the L3 layer are time-division multiplexed from the output terminal P0. Output. Further, a 7 [bit] × 32 memory 91A, a memory 92B, and an AND gate 92 are added, and the output data c ′ m, q of the L3 layer fed back to the L2 layer and the input of the L2 layer as the input to the L3 layer The output data b ′ k and q are separated. Detailed description of the operation is omitted.

<回路ユニットの実施例5の効果>
ニューラルネット内の各人工ニューロンは、仮想空間内で近傍のニューロンとだけシナプス結合を作ると仮定することで、ニューロン間の配線がローカルな少数の信号線だけで行えるようになり、人間の脳のような超大規模なニューラルネットを実現する際の配線問題を解決できる。
<Effect of Embodiment 5 of Circuit Unit>
Assuming that each artificial neuron in the neural network forms a synaptic connection only with neighboring neurons in the virtual space, wiring between neurons can be performed with only a small number of local signal lines. It can solve the wiring problem when realizing such a super large-scale neural network.

更に、そのニューラルネットが多層構造と、異なる層間又は同一層へのフィードバックループ持つ場合でも、中間層の出力データを前述のローカルな信号線に時分割多重化することで、容易に配線問題を解決できる。
中間層ニューロンからの出力データは、次の層への入力データになるとともに、自分自身と同じ層又は他の層へのフィードバックデータになるが、これらを別々に伝送する必要はなく、伝送したデータは共通に利用可能である。
Furthermore, even when the neural network has a multi-layer structure and feedback loops to different layers or the same layer, the output problem of the intermediate layer is time-division multiplexed onto the local signal lines described above, so that the wiring problem can be easily solved. it can.
The output data from the intermediate layer neuron becomes the input data to the next layer and the feedback data to the same layer as itself or to other layers, but it is not necessary to transmit these separately, and the transmitted data Are commonly available.

また、シナプス結合の重みデータとの乗算回路に入るフィードバック信号は1ビット幅のデータなので、幾つかの層からの信号をセレクタによって容易に切り替えられる。例えば、L1層、L2層、L3層、L4層の4層構造のニューラルネットにおいて、或る用途ではL2層からL2層へのフィードバックが必要であり、別の用途ではL3層からL2層へのフィードバックが必要であるとする。   Further, since the feedback signal that enters the multiplication circuit with the synapse weight data is 1-bit width data, signals from several layers can be easily switched by the selector. For example, in a four-layer neural network of L1, L2, L3, and L4 layers, feedback from the L2 layer to the L2 layer is required in some applications, and from the L3 layer to the L2 layer in other applications. Suppose that feedback is needed.

この層構造を実現する為にはL1層、L2層、L3層の出力データを、図18(b)の信号Sを拡張する形で時分割多重化して1本の信号線として隣接セル間の配線に用いる。すると自分自身のセル及び、隣接セル内のL1層、L2層、L3層のデータが全て自セルのメモリに揃い、これらは1ビット幅の信号としてメモリから読み出される。   In order to realize this layer structure, the output data of the L1, L2, and L3 layers are time-division multiplexed in such a manner as to extend the signal S in FIG. Used for wiring. Then, the data of the own cell and the L1, L2, and L3 layers in the adjacent cells are all aligned in the memory of the own cell, and these are read from the memory as a 1-bit width signal.

そこで、L2層からのデータとL3層からのデータを切り替える1ビットセレクタを一つ用意し、これをニューラルネット内のレジスタ又は外部信号で制御すれば、フィードバック経路を容易に切り替えることができる。L4層が無い3層構造の場合でも、出力層L3のデータを隣接セル間の信号線に時分割多重化して出力し、その信号を受け取るメモリを用意すれば、同様にフィードバックループを切り替えることができる。   Therefore, if one 1-bit selector for switching data from the L2 layer and data from the L3 layer is prepared and controlled by a register in the neural network or an external signal, the feedback path can be easily switched. Even in the case of a three-layer structure without the L4 layer, the feedback loop can be switched in the same manner by preparing a memory for time division multiplexing and outputting the data of the output layer L3 to the signal line between adjacent cells and receiving the signal. it can.

なお、前述のセレクタを静的に制御してL2層からのフィードバックか、或いはL3層からのフィードバックかを二者択一で決定することもできるが、これを動的に制御し、L2層からフィードバックとL3層からのフィードバックを例えば半分ずつにする、ということも容易に実現できる。   Note that the above-mentioned selector can be controlled statically to determine whether feedback from the L2 layer or feedback from the L3 layer is an alternative, but this is dynamically controlled from the L2 layer. For example, the feedback and the feedback from the L3 layer can be easily halved.

また、本発明の実施例5のL2層のニューロンまたはL3層のニューロンの閾値にオフセットと揺らぎを与えることができる。例えば、図19の回路ユニットにおいて、大小比較器75の入力端子64に、図16の閾値算出回路38の加算器59の出力端子を接続すれば、L2層のニューロンの閾値にオフセットと揺らぎを与えることができる。   Further, an offset and fluctuation can be given to the threshold value of the L2 layer neuron or the L3 layer neuron of the fifth embodiment of the present invention. For example, in the circuit unit of FIG. 19, if the output terminal of the adder 59 of the threshold value calculation circuit 38 of FIG. 16 is connected to the input terminal 64 of the magnitude comparator 75, an offset and fluctuation are given to the threshold value of the L2 layer neuron. be able to.

<全実施例共通の変形例>
なお、本発明の実施例2から実施例5でも、図9に示す時間履歴を考慮する回路を挿入して、時間履歴を考慮したニューラルネットを実現することができる。
<Modification common to all embodiments>
In the second to fifth embodiments of the present invention, it is possible to realize a neural network considering the time history by inserting the circuit considering the time history shown in FIG.

なお、本発明の実施例では、シナプス結合の重みデータを8ビット幅としたが、本発明はこれに制限されるものではなく、任意のビット幅の重みデータを持つニューラルネットに適用できる。
本発明の実施例では、L1層のニューロンの入力データを4ビット幅としたが、本発明はこれに制限されるものではなく、任意のビット幅の入力データを扱うニューラルネットに適用できる。
In the embodiment of the present invention, the synapse connection weight data is 8 bits wide. However, the present invention is not limited to this, and can be applied to a neural network having weight data of an arbitrary bit width.
In the embodiment of the present invention, the input data of the neurons in the L1 layer has a 4-bit width, but the present invention is not limited to this, and can be applied to a neural network that handles input data having an arbitrary bit width.

本発明の実施例では、1個のセルに含まれるL1層のニューロン数とL2層のニューロン数をともに256としたが、本発明はこれに制限されるものではなく、L1層、L2層とも2以上の任意の数のニューロンを含むニューラルネットに適用できる。   In the embodiment of the present invention, the number of neurons in the L1 layer and the number of neurons in the L2 layer included in one cell are both 256, but the present invention is not limited to this, and both the L1 layer and the L2 layer The present invention can be applied to a neural network including an arbitrary number of two or more neurons.

以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。   As mentioned above, although embodiment of this invention was explained in full detail with reference to drawings, the concrete structure is not restricted to this embodiment, The design etc. of the range which does not deviate from the summary of this invention are included.

CN セル(ポリトープ)
10 回路ユニット
20 8ビットカウンター
21 メモリ(第1の記憶部)
22 パルス列変調回路(出力回路)
23A 8ビットカウンター
23B 8ビットカウンター
23C 8ビットカウンター
24A メモリ
24B メモリ
25 メモリ(第2の記憶部)
26 アンドゲート(乗算回路)
27 加算器(加算器)
28 アンドゲート
29 大小比較器
30 ラッチ
31 カウンター
32 加減算器(加算器)
33 符号格納器(符号情報出力回路)
34 大小比較器(符号情報出力回路)
34B アンドゲート(符号情報出力回路)
35 メモリ(パワーニューロン情報出力回路)
36 1ビット左シフタ(演算回路)
37 大小比較器(パワーニューロン情報出力回路)
37B アンドゲート(パワーニューロン情報出力回路)
38 閾値算出回路
50 乗算器(乗算回路)
51 セレクタ
52 乗算器
53 メモリ(第3の記憶部)
54 並直変換回路
55 メモリ(第4の記憶部)
56 8ビットカウンター
57 メモリ(閾値オフセット量記憶部)
58 12ビット加算器
59 13ビット加算器
60 8ビット疑似乱数発生器
69A メモリ
69B メモリ
70 メモリ(第5の記憶部)
71 アンドゲート(乗算回路)
72 加算器
73 アンドゲート
74 加算器
75 大小比較器
76 ラッチ
77 2入力マルチプレクサ
78 メモリ(第6の記憶部)
79 アンドゲート(乗算回路)
80 加算器
81 アンドゲート
82 大小比較器
83 ラッチ
84 アンドゲート
90 3入力マルチプレクサ
91A メモリ
91B メモリ
92 アンドゲート
CN cell (polytope)
10 circuit unit 20 8-bit counter 21 memory (first storage unit)
22 Pulse train modulation circuit (output circuit)
23A 8-bit counter 23B 8-bit counter 23C 8-bit counter 24A memory 24B memory 25 memory (second storage unit)
26 ANDGATE (multiplication circuit)
27 Adder (Adder)
28 AND GATE 29 Size comparator 30 Latch 31 Counter 32 Adder / Subtracter (Adder)
33 Code storage (code information output circuit)
34 Large / small comparator (sign information output circuit)
34B AND gate (code information output circuit)
35 Memory (Power neuron information output circuit)
36 1-bit left shifter (arithmetic circuit)
37 Size comparator (power neuron information output circuit)
37B ANDGATE (power neuron information output circuit)
38 threshold calculation circuit 50 multiplier (multiplication circuit)
51 Selector 52 Multiplier 53 Memory (Third Storage Unit)
54 Parallel-to-parallel conversion circuit 55 Memory (fourth storage unit)
56 8-bit counter 57 Memory (Threshold offset storage unit)
58 12-bit adder 59 13-bit adder 60 8-bit pseudo random number generator 69A Memory 69B Memory 70 Memory (fifth storage unit)
71 ANDGATE (multiplier circuit)
72 adder 73 and gate 74 adder 75 large / small comparator 76 latch 77 two-input multiplexer 78 memory (sixth storage unit)
79 AND GATE (Multiplier circuit)
80 adder 81 AND gate 82 large / small comparator 83 latch 84 AND gate 90 3-input multiplexer 91A memory 91B memory 92 AND gate

Claims (10)

複数の層と、前記層に存在する複数の人工ニューロンと、前記人工ニューロンと他の層に存在する複数の人工ニューロンとを結びつけるシナプス結合とを有し、前記複数の層のうち第1の層の人工ニューロンの出力データと前記シナプス結合の重み情報との積を計算し、前記積を累積した結果に応じた出力を第2の層の人工ニューロンが出力するニューラルネットワークを実現する電子回路であって、
二次元以上の仮想空間において当該仮想空間を任意の数の任意のポリトープで分割し、前記ポリトープ毎に配置される回路ユニットと、隣接するポリトープに配置された前記回路ユニット間で、前記第1の層の人工ニューロンの出力データを含む信号を送受信する配線と、を備え、
前記回路ユニットは、第1の層に属する複数の人工ニューロンと第2の層に属する複数の人工ニューロンとを実装し、第1の層の人工ニューロンは、自身の出力データを時分割多重化し、該時分割多重化したデータを、同一回路ユニット内の第2の層の人工ニューロンと、自身のポリトープに隣接するポリトープに配置された回路ユニットの第2の層の人工ニューロンとへ出力し、
前記同一回路ユニット内の第2の層の人工ニューロンは、同一回路ユニット内の第1の層の人工ニューロンが出力した出力データと、自身のポリトープに隣接するポリトープに配置された回路ユニットの第1の層の人工ニューロンが出力した出力データとを入力データとして処理することを特徴とする電子回路。
A plurality of layers, a plurality of artificial neurons existing in the layer, and a synapse connection that connects the artificial neurons and a plurality of artificial neurons existing in another layer, and the first layer of the plurality of layers This is an electronic circuit that realizes a neural network in which a product of the output data of the artificial neuron and the weight information of the synapse connection is calculated, and an output according to a result of accumulating the product is output by the artificial neuron of the second layer. And
In the virtual space of two or more dimensions, the virtual space is divided by an arbitrary number of arbitrary polytopes, and between the circuit units arranged for each polytope and the circuit units arranged in adjacent polytopes, the first Wiring for transmitting and receiving signals including output data of the artificial neurons of the layer,
The circuit unit implements a plurality of artificial neurons belonging to the first layer and a plurality of artificial neurons belonging to the second layer, and the first layer artificial neurons time-division multiplex their output data, Outputting the time-division multiplexed data to the second layer artificial neuron in the same circuit unit and the second layer artificial neuron of the circuit unit arranged in the polytope adjacent to its own polytope;
The second layer of artificial neurons in the same circuit unit includes the output data output from the first layer of artificial neurons in the same circuit unit and the first of the circuit units arranged in the polytope adjacent to its own polytope. An electronic circuit characterized by processing output data output from an artificial neuron in a layer as input data.
前記回路ユニットは、前記第1の層の人工ニューロンの出力データの入力が不要なシナプス結合の重み情報を0にすることを特徴とする請求項1に記載の電子回路。   2. The electronic circuit according to claim 1, wherein the circuit unit sets weight information of synapse connection that does not require input of output data of the artificial neuron of the first layer to 0. 3. 前記仮想空間は仮想二次元平面で構成し、前記ポリトープは正六角形で構成し、前記仮想二次元平面を任意の個数の前記正六角形で分割することを特徴とする請求項1または請求項2に記載の電子回路。   The virtual space is constituted by a virtual two-dimensional plane, the polytope is constituted by a regular hexagon, and the virtual two-dimensional plane is divided by an arbitrary number of the regular hexagons. The electronic circuit described. 前記回路ユニットは、第2の層の人工ニューロンの入力データを第2の層または第1の層の人工ニューロンの出力データとすることを特徴とする請求項1から請求項3のいずれかに記載の電子回路。   4. The circuit unit according to claim 1, wherein the input data of the artificial neuron in the second layer is output data of the artificial neuron in the second layer or the first layer. 5. Electronic circuit. 前記回路ユニットは、第1の層の人工ニューロンの入力データを保持する第1の記憶部と、前記シナプス結合の重み情報を保持する第2の記憶部と、
前記第1の層の人工ニューロンが前記入力データを時分割多重化して出力データとして同一回路ユニット内の第2の層の人工ニューロンに出力し、前記出力データを隣接するポリトープに配置された回路ユニット内の第2の層の人工ニューロンに出力する出力回路と、
前記出力データと前記重み情報との積を算出する乗算回路と、
前記積を一方の入力信号としてその総和を算出する加算器と、
前記総和と所定の閾値との比較結果に基づいて、第2の層の人工ニューロンの出力データを決定する大小比較器と、
を備えることを特徴とする請求項1から請求項4のいずれかに記載の電子回路。
The circuit unit includes: a first storage unit that holds input data of a first layer artificial neuron; a second storage unit that holds weight information of the synapse connection;
The first layer artificial neuron time-division-multiplexes the input data and outputs it as output data to the second layer artificial neuron in the same circuit unit, and the output data is arranged in an adjacent polytope. An output circuit for outputting to the second layer of artificial neurons,
A multiplication circuit for calculating a product of the output data and the weight information;
An adder for calculating the sum of the products as one input signal;
A magnitude comparator for determining output data of the artificial neurons of the second layer based on a comparison result between the sum and a predetermined threshold;
The electronic circuit according to claim 1, further comprising:
前記回路ユニットは、第1の層の人工ニューロンの入力データを保持する第1の記憶部と、前記シナプス結合の重み情報を保持する第2の記憶部と、前記第1の層の人工ニューロンの出力データと前記重み情報との積を算出する乗算回路と、前記乗算回路で算出された積のうち所定の第1の層の人工ニューロンに対応する積を定数倍した値を算出する演算回路と、前記定数倍した値を一方の入力信号としてその総和を算出する加算器と、前記総和と所定の閾値との比較に基づいて、第2の層の人工ニューロン群の出力データを決定する大小比較器と、を備えることを特徴とする請求項1から請求項5のいずれかに記載の電子回路。   The circuit unit includes a first storage unit that holds input data of a first layer artificial neuron, a second storage unit that holds weight information of the synaptic connection, and an artificial neuron of the first layer. A multiplication circuit for calculating a product of output data and the weight information; an arithmetic circuit for calculating a value obtained by multiplying a product corresponding to a predetermined first layer artificial neuron by a constant among the products calculated by the multiplication circuit; An adder that calculates the sum using the value multiplied by the constant as one input signal, and a magnitude comparison that determines the output data of the artificial neuron group in the second layer based on a comparison between the sum and a predetermined threshold value The electronic circuit according to claim 1, further comprising: 前記回路ユニットは、前記総和に所定の減衰量を乗算する乗算器と、前記乗算された乗算結果を保持する第3の記憶部を更に備え、
前記加算器は、前記第3の記憶部に保持した前記乗算結果を他方の入力信号とすることを特徴とする請求項5または請求項6のいずれかに記載の電子回路。
The circuit unit further includes a multiplier that multiplies the sum by a predetermined attenuation amount, and a third storage unit that holds the multiplied multiplication result.
The electronic circuit according to claim 5 , wherein the adder uses the multiplication result held in the third storage unit as the other input signal.
前記回路ユニットは、第1の層の人工ニューロンの入力データを保持する第1の記憶部と、シナプス結合の重みの絶対値を保持する第2の記憶部と、前記第1の層の人工ニューロンの出力データと前記重みの絶対値との積を算出する乗算回路と、第1の層のニューロンが興奮性か抑制性かを表す前記シナプス結合の重みの符号情報を出力する符号情報出力回路と、前記符号情報に基づいて、前記積の値または前記積の負の値を一方の入力信号としてその総和を算出する加算器と、前記算出した総和と所定の閾値との比較結果に基づいて、第2の層の人工ニューロンの出力データを決定する大小比較器と、を備えることを特徴とする請求項1から請求項7のいずれかに記載の電子回路。   The circuit unit includes: a first storage unit that holds input data of a first layer of artificial neurons; a second storage unit that holds absolute values of synaptic connection weights; and the first layer of artificial neurons A multiplication circuit that calculates a product of the output data of the first and the absolute value of the weight, and a sign information output circuit that outputs sign information of the weight of the synapse connection indicating whether the neurons of the first layer are excitable or inhibitory; Based on the sign information, an adder that calculates the sum of the product value or the negative value of the product as one input signal, and a comparison result between the calculated sum and a predetermined threshold value, The electronic circuit according to claim 1, further comprising: a magnitude comparator that determines output data of the second layer of artificial neurons. 第2の層の人工ニューロン毎に予め定められた所定の値を保持し、前記第2の層の人工ニューロン毎に疑似乱数を算出し、前記第2の層の人工ニューロンに共通に定められた所定の閾値に前記所定の値と前記疑似乱数を加算する閾値算出回路を更に備えることを特徴とする請求項1から請求項8のいずれかに記載の電子回路。 A predetermined value predetermined for each artificial neuron in the second layer is held, a pseudo random number is calculated for each artificial neuron in the second layer, and is determined in common for the artificial neurons in the second layer electronic circuit according to any one of claims 1 to 8, characterized by further comprising a threshold value calculating circuit for adding the predetermined value and the pseudo-random number to a predetermined threshold value. 複数の層と、前記層に存在する複数の人工ニューロンと、前記人工ニューロンと他の層に存在する人工ニューロンとを結びつけるシナプス結合を有し、前記複数の層のうち第1の層の人工ニューロンの出力データと前記シナプス結合の重み情報との積を計算し、前記積を累積した結果に応じた出力を第2の層の人工ニューロンが出力するニューラルネットワークを実現する配線方式であって、
二次元以上の仮想空間において、当該仮想空間を任意の数の任意のポリトープで分割し、前記ポリトープ毎に回路ユニットを配置し、隣接するポリトープに配置された前記回路ユニット間で前記第1の層の出力データを含む信号を送信するよう配置された第1の配線と、
第1の層に属する複数の人工ニューロンと第2の層に属する複数の人工ニューロンとを実装し、第1の層の人工ニューロンは、自身の出力データを時分割多重化し、該時分割多重化したデータを、同一回路ユニット内の第2の層の人工ニューロンと、自身のポリトープに隣接するポリトープに配置された回路ユニット内の第2の層の人工ニューロンとへ出力し、
前記同一回路ユニット内の第2の層の人工ニューロンは、自身のポリトープに隣接するポリトープに配置された回路ユニットの第1の層の人工ニューロンが出力した出力データを入力するよう配線された第2の配線と、を有することを特徴とする配線方式。
A plurality of layers, a plurality of artificial neurons existing in the layer, and a synaptic connection connecting the artificial neuron and an artificial neuron existing in another layer, and the first layer of the plurality of artificial neurons a wiring system of the product of the output data and the weight information of the synaptic connections to calculate, an output corresponding to a result obtained by accumulating the product artificial neurons of the second layer to realize a neural network output,
In a two-dimensional or more virtual space, the virtual space is divided by an arbitrary polytope any number of circuit units arranged in each of the polytope, the first layer among the circuit units arranged in adjacent polytope A first wiring arranged to transmit a signal including the output data of:
A plurality of artificial neurons belonging to the first layer and a plurality of artificial neurons belonging to the second layer are mounted. The artificial neurons of the first layer time-division-multiplex their own output data, and the time-division multiplexing Output the obtained data to a second layer artificial neuron in the same circuit unit and a second layer artificial neuron in a circuit unit arranged in a polytope adjacent to its own polytope,
The second layer artificial neuron in the same circuit unit is a second wired to input output data output from the first layer artificial neuron of the circuit unit arranged in the polytope adjacent to its own polytope. And a wiring system characterized by comprising:
JP2010113234A 2010-05-17 2010-05-17 Electronic circuit and wiring system Expired - Fee Related JP5436327B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010113234A JP5436327B2 (en) 2010-05-17 2010-05-17 Electronic circuit and wiring system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010113234A JP5436327B2 (en) 2010-05-17 2010-05-17 Electronic circuit and wiring system

Publications (2)

Publication Number Publication Date
JP2011242930A JP2011242930A (en) 2011-12-01
JP5436327B2 true JP5436327B2 (en) 2014-03-05

Family

ID=45409526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010113234A Expired - Fee Related JP5436327B2 (en) 2010-05-17 2010-05-17 Electronic circuit and wiring system

Country Status (1)

Country Link
JP (1) JP5436327B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03282960A (en) * 1990-03-30 1991-12-13 Mamoru Tanaka Associative neural network
JP2951382B2 (en) * 1990-09-14 1999-09-20 株式会社エヌ・ティ・ティ・データ Feature extraction method and its implementation device
JP4750313B2 (en) * 2001-05-31 2011-08-17 キヤノン株式会社 Signal processing circuit

Also Published As

Publication number Publication date
JP2011242930A (en) 2011-12-01

Similar Documents

Publication Publication Date Title
US6654730B1 (en) Neural network arithmetic apparatus and neutral network operation method
JP6912491B2 (en) Energy-saving multiple neural core circuits, methods and neurosynaptic systems
US10140571B2 (en) Hierarchical scalable neuromorphic synaptronic system for synaptic and structural plasticity
CN107918794A (en) Neural network processor based on computing array
JPH05505268A (en) Neural network with daisy chain control
US10650301B2 (en) Utilizing a distributed and parallel set of neurosynaptic core circuits for neuronal computation and non-neuronal computation
KR101803409B1 (en) Computing Method and Device for Multilayer Neural Network
JP6250054B2 (en) Neural core circuit
US9239984B2 (en) Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network
US9373073B2 (en) Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a universal substrate of adaptation
JP6050105B2 (en) Working memory device based on spike neurons
JP5393589B2 (en) Electronic circuit
TW202022644A (en) Operation device and operation method
US20160196488A1 (en) Neural network computing device, system and method
CN107533667A (en) Vector calculation unit in neural network processor
KR102588838B1 (en) Superconducting neuromorphic core
CN104145281A (en) Neural network computing apparatus and system, and method therefor
GB2287820A (en) Neural network
KR930020288A (en) Digital Neurons, Digital Neural Networks, and Digital Neural Network Learning Methods
CN104854602B (en) Neural network unit and relevant system and method
JP2019537093A (en) Scalable Stream Synapse Supercomputer for Extreme Throughput Neural Networks
JP5436327B2 (en) Electronic circuit and wiring system
JP5393588B2 (en) Electronic circuit and wiring system
JP2001117900A (en) Neural network arithmetic device
CN205827367U (en) Data processing equipment and server

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130917

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131008

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131210

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees