KR102099242B1 - Reconfigurable neuromorphic system and method of neural network configuration - Google Patents

Reconfigurable neuromorphic system and method of neural network configuration Download PDF

Info

Publication number
KR102099242B1
KR102099242B1 KR1020170100384A KR20170100384A KR102099242B1 KR 102099242 B1 KR102099242 B1 KR 102099242B1 KR 1020170100384 A KR1020170100384 A KR 1020170100384A KR 20170100384 A KR20170100384 A KR 20170100384A KR 102099242 B1 KR102099242 B1 KR 102099242B1
Authority
KR
South Korea
Prior art keywords
neuron
array
unit
neural network
synaptic
Prior art date
Application number
KR1020170100384A
Other languages
Korean (ko)
Other versions
KR20190016311A (en
Inventor
박병국
김윤
김형진
위대훈
Original Assignee
서울대학교 산학협력단
부산대학교 산학협력단
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 서울대학교 산학협력단, 부산대학교 산학협력단 filed Critical 서울대학교 산학협력단
Priority to KR1020170100384A priority Critical patent/KR102099242B1/en
Publication of KR20190016311A publication Critical patent/KR20190016311A/en
Application granted granted Critical
Publication of KR102099242B1 publication Critical patent/KR102099242B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Logic Circuits (AREA)

Abstract

단일 시냅스 어레이 상에서 은닉층(hidden layer)의 개수를 확장할 수 있는 재구성 가능한 뉴로모픽 시스템(reconfigurable neuromorphic system) 및 이의 신경망 구성 방법이 개시된다. 본 발명의 실시예에 따른 재구성 가능한 뉴로모픽 시스템은 입력 신호들과 출력 신호들에 따라 가중치가 변화하는 시냅스 소자들로 이루어지는 시냅스 어레이(synapse array); 행 방향의 입력 신호들을 시냅스 소자들로 출력하고, 시냅스 소자들로부터 행 방향의 출력 신호들을 전달받는 제1 양방향 뉴런 회로; 열 방향의 입력 신호들을 시냅스 소자들로 출력하고, 시냅스 소자들로부터 열 방향의 출력 신호들을 전달받는 제2 양방향 뉴런 회로; 및 시냅스 어레이 상에서 어레이 영역들을 연속적으로 순차 할당하여 신경망을 구성하는 제어부;를 포함한다.Disclosed is a reconfigurable neuromorphic system capable of expanding the number of hidden layers on a single synaptic array and a method for constructing a neural network thereof. A reconfigurable neuromorphic system according to an embodiment of the present invention includes a synapse array composed of synaptic elements whose weights vary according to input signals and output signals; A first bidirectional neuron circuit that outputs input signals in the row direction to synaptic elements and receives output signals in the row direction from synaptic elements; A second bidirectional neuron circuit that outputs input signals in the column direction to synaptic elements and receives output signals in the column direction from synaptic elements; And a controller configured to sequentially allocate array regions on a synapse array to configure a neural network.

Description

재구성 가능한 뉴로모픽 시스템 및 이의 신경망 구성 방법{RECONFIGURABLE NEUROMORPHIC SYSTEM AND METHOD OF NEURAL NETWORK CONFIGURATION}RECONFIGURABLE NEUROMORPHIC SYSTEM AND METHOD OF NEURAL NETWORK CONFIGURATION}

본 발명은 뉴로모픽 시스템에 관한 것으로, 보다 상세하게는 단일 시냅스 어레이 상에서 심층 신경망의 은닉층을 확장할 수 있도록 구성되는 재구성 가능한 뉴로모픽 시스템(reconfigurable neuromorphic system) 및 이의 신경망 구성 방법에 관한 것이다.The present invention relates to a neuromorphic system, and more particularly, to a reconfigurable neuromorphic system configured to expand a hidden layer of a deep neural network on a single synaptic array and a method for constructing the neural network.

최근 인공 신경망(artificial neural network)을 기반으로 한 인공지능이 활발히 연구되고 있다. 인공 신경망은 신호를 집적하여 활성화 여부를 판단하는 뉴런층과 각각의 뉴런을 연결하는 시냅스로 구성된다. 뉴런층은 입력층과 출력층 및 이들 사이에 존재하는 은닉층으로 구성된다. 복잡한 문제를 해결하기 위해서는 많은 개수의 은닉층으로 구현된 심층 신경망(DNN; Deep Neural Network)을 필요로 한다. 심층 신경망을 기반으로 하는 딥러닝(deep learning)을 이용하면, 패턴인식, 음성인식, 상황판단, 자율주행 등 기존의 컴퓨터로는 하기 힘든 다양한 응용이 가능하다. 하지만, 신경망 계층 수를 늘리면 연산에 필요한 복잡도가 제곱 크기로 늘어나, 현재의 폰노이먼 기반의 컴퓨팅으로는 계산이 힘들어지게 된다.Recently, artificial intelligence based on artificial neural networks has been actively studied. The artificial neural network is composed of a neuron layer that determines whether to activate by integrating signals and synapses that connect each neuron. The neuron layer is composed of an input layer and an output layer and a hidden layer existing between them. In order to solve a complex problem, a deep neural network (DNN) implemented with a large number of hidden layers is required. Using deep learning based on deep neural networks, various applications that are difficult to do with existing computers such as pattern recognition, voice recognition, situation judgment, and autonomous driving are possible. However, if the number of neural network layers is increased, the complexity required for calculation increases to the square size, making calculation difficult with current phone-noman-based computing.

폰노이먼의 한계를 극복하고, 인공지능을 하드웨어적으로 구현하기 위하여, 뉴런(neuron)과 시냅스(synapse)를 모방하는 뉴로모픽 시스템(neuromorphic system)이 연구되고 있다. 뉴로모픽 시스템은 뉴런의 동작을 구현하기 위하여 CMOS 기반의 회로들로 개발되고 있으며, 시냅스 동작을 구현하기 위하여 다양한 메모리 소자들이 연구되고 있다. 도 1은 종래의 뉴로모픽 시스템을 보여주는 개념도이다. 종래의 뉴로모픽 시스템은 각 층별로 뉴런층(21~24, 41~44)과 시냅스 어레이(31~34)가 하나의 세트로 구성되어 있으며, 이들이 각 층 단위로 제어 유닛(50)과 연결된 형태로 배열되어 있다. 종래의 뉴로모픽 시스템은 뉴런층(21~24, 41~44)과 시냅스 어레이(31~34) 및 제어부(50) 간의 물리적 연결(routing)을 위하여 복잡한 배선이 필요하며, 전력 및 속도 측면에서 비효율적이다. 또한, 종래의 뉴로모픽 시스템은 구현 가능한 최대 은닉층의 개수가 고정되어 있으므로, 더 많은 은닉층이 필요한 응용에 대해서는 활용할 수 없다. 인공 신경망의 경우 목적과 기능에 따라 신경망 구조 및 은닉층 수가 달라지게 되는데, 이를 하드웨어적으로 고정시킬 경우 범용성 측면에서 굉장히 비효율적이다.In order to overcome the limitations of von Neumann and to implement artificial intelligence in hardware, a neuromorphic system that mimics neurons and synapses has been studied. Neuromorphic systems have been developed with CMOS-based circuits to implement neuron operation, and various memory devices have been studied to implement synaptic operation. 1 is a conceptual diagram showing a conventional neuromorphic system. In the conventional neuromorphic system, neuron layers 21 to 24, 41 to 44 and synaptic arrays 31 to 34 are formed for each layer, and they are connected to the control unit 50 in units of each layer. Arranged in the form. Conventional neuromorphic systems require complex wiring for physical routing between neuron layers 21-24, 41-44 and synaptic arrays 31-34 and controller 50, in terms of power and speed. Inefficient In addition, the conventional neuromorphic system has a fixed maximum number of hidden layers that can be implemented, and thus cannot be used for applications requiring more hidden layers. In the case of an artificial neural network, the neural network structure and the number of hidden layers vary depending on the purpose and function, but when fixed in hardware, it is very inefficient in terms of versatility.

본 발명은 단일 시냅스 어레이 상에서 은닉층(hidden layer)의 개수를 확장할 수 있는 재구성 가능한 뉴로모픽 시스템(reconfigureable neuromorphic system) 및 이의 신경망 구성 방법을 제공한다.The present invention provides a reconfigurable neuromorphic system capable of expanding the number of hidden layers on a single synaptic array and a method for constructing a neural network thereof.

본 발명이 해결하고자 하는 과제는 이상에서 언급된 과제로 제한되지 않는다. 언급되지 않은 다른 기술적 과제들은 이하의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above. Other technical problems not mentioned will be clearly understood by those skilled in the art from the following description.

본 발명의 일 측면에 따른 재구성 가능한 뉴로모픽 시스템은 입력 신호들과 출력 신호들에 따라 가중치가 변화하는 시냅스 소자들로 이루어지는 시냅스 어레이; 행 방향의 입력 신호들을 상기 시냅스 소자들로 출력하고, 상기 시냅스 소자들로부터 행 방향의 출력 신호들을 전달받는 제1 양방향 뉴런 회로; 열 방향의 입력 신호들을 상기 시냅스 소자들로 출력하고, 상기 시냅스 소자들로부터 열 방향의 출력 신호들을 전달받는 제2 양방향 뉴런 회로; 및 상기 시냅스 어레이 상에서 서로 중첩되지 않는 어레이 영역들을 연속적으로 순차 할당하여 신경망을 구성하는 제어부;를 포함한다.A reconfigurable neuromorphic system according to an aspect of the present invention includes a synaptic array composed of synaptic elements whose weights vary according to input signals and output signals; A first bidirectional neuron circuit that outputs input signals in the row direction to the synaptic elements and receives output signals in the row direction from the synaptic elements; A second bidirectional neuron circuit that outputs input signals in the column direction to the synaptic elements and receives output signals in the column direction from the synaptic elements; And a controller configured to configure neural networks by sequentially sequentially assigning array regions that do not overlap each other on the synaptic array.

상기 제어부는 상기 시냅스 어레이 상에 할당되는 어레이 영역들의 개수를 조절하여 상기 신경망의 은닉층의 개수를 조절할 수 있다.The controller may control the number of hidden layers of the neural network by adjusting the number of array regions allocated on the synaptic array.

상기 제어부는 심층 신경망의 계층 순으로 상기 어레이 영역들을 순차적으로 활성화하도록 구성될 수 있다.The control unit may be configured to sequentially activate the array regions in a hierarchical order of deep neural networks.

상기 제1 양방향 뉴런 회로 및 상기 제2 양방향 뉴런 회로 중 적어도 하나는 상기 시냅스 소자들에 연결되는 복수 개의 단위 뉴런 회로를 포함하고, 상기 단위 뉴런 회로는, 상기 시냅스 소자들로부터 전달되는 행 방향 또는 열 방향의 출력 신호들에 따라 발화하는 뉴런부; 상기 뉴런부에 의해 발화되어 생성되는 행 방향 또는 열 방향의 입력 신호들을 저장하는 저장부; 및 상기 제어부에 의해, 상기 단위 뉴런 회로를 입력 뉴런 또는 출력 뉴런으로 활성화시키거나, 비활성화시키는 스위치부;를 포함할 수 있다.At least one of the first bidirectional neuron circuit and the second bidirectional neuron circuit includes a plurality of unit neuron circuits connected to the synaptic elements, and the unit neuron circuit includes a row direction or a column transmitted from the synaptic elements. A neuron that ignites according to output signals in a direction; A storage unit for storing input signals in a row direction or a column direction generated and ignited by the neuron unit; And a switch unit for activating or deactivating the unit neuron circuit as an input neuron or an output neuron by the control unit.

상기 제어부는 상기 심층 신경망의 계층 순으로 활성화되는 하나의 어레이 영역을 제외한 나머지 어레이 영역이 비활성화되도록 상기 복수 개의 단위 뉴런 회로를 제어할 수 있다.The controller may control the plurality of unit neuron circuits such that the remaining array regions are deactivated except for one array region activated in the hierarchical order of the deep neural network.

상기 제어부는 상기 제1 양방향 뉴런 회로 및 상기 제2 양방향 뉴런 회로 중 비활성화되는 어레이 영역에 대응하는 단위 뉴런 회로에 전류가 흐르지 않도록 상기 단위 뉴런 회로를 플로팅시키거나 상기 단위 뉴런 회로에 설정된 전압을 인가할 수 있다.The control unit floats the unit neuron circuit or applies a voltage set to the unit neuron circuit so that current does not flow in a unit neuron circuit corresponding to an inactive array region of the first bidirectional neuron circuit and the second bidirectional neuron circuit. You can.

상기 제어부는 인접하는 두 개의 어레이 영역들 중 후행하는 어레이 영역의 입력 신호의 개수가 선행하는 어레이 영역의 출력 신호의 개수와 동일하도록, 상기 어레이 영역들을 할당할 수 있다.The controller may allocate the array regions such that the number of input signals of the succeeding array region among the two adjacent array regions is equal to the number of output signals of the preceding array region.

상기 제어부는 선행의 신경망 계층에서 출력 뉴런으로 활성화된 단위 뉴런 회로가 후행의 신경망 계층에서 입력 뉴런으로 활성화되도록 상기 스위치부를 제어할 수 있다.The control unit may control the switch unit such that a unit neuron circuit activated as an output neuron in a preceding neural network layer is activated as an input neuron in a subsequent neural network layer.

상기 제어부는 초기 어레이 영역으로부터 행 방향 및 열 방향으로 번갈아 가면서 상기 어레이 영역들을 연속적으로 순차 할당할 수 있다.The controller may sequentially allocate the array regions from the initial array region alternately in the row direction and the column direction.

본 발명의 다른 측면에 따르면, 시냅스 어레이에 연결되는 복수 개의 단위 뉴런 회로를 포함하고, 상기 시냅스 어레이의 시냅스 소자들에 신호들을 전달하거나 전달받는 양방향 뉴런 회로로서, 상기 단위 뉴런 회로는, 시냅스 어레이의 시냅스 소자들로부터 전달되는 신호들에 따라 발화하는 뉴런부; 상기 뉴런부에 의해 발화되어 생성되는 신호들을 저장하는 저장부; 및 상기 단위 뉴런 회로를 입력 뉴런 또는 출력 뉴런으로 활성화시키거나, 상기 단위 뉴런 회로를 비활성화시키는 스위치부;를 포함하는 양방향 뉴런 회로가 제공된다. 상기 스위치부는 상기 시냅스 어레이 상에 서로 중첩되지 않도록 할당된 어레이 영역들의 활성화 순서에 따라, 상기 단위 뉴런 회로를 입력 뉴런 또는 출력 뉴런으로 활성화시키거나 비활성화시킬 수 있다.According to another aspect of the present invention, a plurality of unit neuron circuits connected to a synaptic array, and bidirectional neuron circuits that transmit or receive signals to and from synaptic elements of the synaptic array, wherein the unit neuron circuit comprises: A neuron that ignites according to signals transmitted from synaptic elements; A storage unit for storing signals generated by ignition by the neuron unit; And a switch unit for activating the unit neuron circuit as an input neuron or an output neuron, or deactivating the unit neuron circuit. The switch unit may activate or deactivate the unit neuron circuit as an input neuron or an output neuron according to an activation order of array regions allocated so as not to overlap each other on the synaptic array.

상기 복수 개의 단위 뉴런 회로 중 심층 신경망의 계층 순으로 활성화되는 하나의 어레이 영역에 대응되는 단위 뉴런 회로들은 활성화되고, 활성화되는 상기 하나의 어레이 영역을 제외한 나머지 어레이 영역에 대응되는 단위 뉴런 회로들은 비활성화될 수 있다.Among the plurality of unit neuron circuits, unit neuron circuits corresponding to one array region activated in a hierarchical order of a deep neural network are activated, and unit neuron circuits corresponding to the remaining array regions other than the activated one array region are deactivated. You can.

비활성화되는 단위 뉴런 회로는 전류가 흐르지 않도록 플로팅되거나 설정된 전압이 인가될 수 있다.The deactivated unit neuron circuit may be floated so that current does not flow or a set voltage may be applied.

상기 스위치부는 선행의 신경망 계층에서 출력 뉴런으로 활성화된 단위 뉴런 회로를 후행의 신경망 계층에서 입력 뉴런으로 활성화시킬 수 있다.The switch unit may activate a unit neuron circuit activated as an output neuron in a preceding neural network layer as an input neuron in a subsequent neural network layer.

상기 스위치부는 상기 선행의 신경망 계층에서 입력 뉴런으로 활성화된 단위 뉴런 회로를 상기 후행의 신경망 계층에서 비활성화시킬 수 있다.The switch unit may deactivate the unit neuron circuit activated as an input neuron in the preceding neural network layer in the subsequent neural network layer.

본 발명의 또 다른 측면에 따르면, 입력 신호들과 출력 신호들에 따라 가중치가 변화하는 시냅스 소자들로 이루어지는 단일 시냅스 어레이 상에서 신경망의 계층 순으로 서로 중첩되지 않는 어레이 영역들을 연속적으로 순차 할당하여 상기 신경망을 구성하는 단계;를 포함하는 신경망 구성 방법이 제공된다.According to another aspect of the present invention, on a single synaptic array consisting of synaptic elements whose weights vary according to input signals and output signals, the array regions that do not overlap with each other in the order of neural networks are sequentially sequentially assigned to the neural network. A method of constructing a neural network including a step of constructing a method is provided.

상기 신경망을 구성하는 단계는 상기 시냅스 어레이 상에 할당되는 어레이 영역들의 개수를 조절하여 상기 신경망의 은닉층의 개수를 조절할 수 있다.The step of configuring the neural network may control the number of hidden layers of the neural network by adjusting the number of array regions allocated on the synaptic array.

상기 신경망 구성 방법은 상기 신경망의 계층 순으로 상기 어레이 영역들을 순차적으로 활성화하고, 상기 신경망의 계층 별로 활성화되는 하나의 어레이 영역을 제외한 나머지 어레이 영역을 비활성화하는 단계;를 더 포함할 수 있다.The neural network configuration method may further include the steps of sequentially activating the array regions in the order of the hierarchy of the neural network, and deactivating the remaining array regions except one array region activated for each layer of the neural network.

상기 신경망을 구성하는 단계는 인접하는 두 개의 어레이 영역들 중 후행하는 어레이 영역의 입력 신호의 개수가 선행하는 어레이 영역의 출력 신호의 개수와 동일하도록, 상기 어레이 영역들을 할당할 수 있다.In the configuring of the neural network, the array regions may be allocated such that the number of input signals of a succeeding array region among the two adjacent array regions is equal to the number of output signals of a preceding array region.

상기 신경망을 구성하는 단계는 초기 어레이 영역으로부터 행 방향 및 열 방향으로 번갈아 가면서 상기 어레이 영역들을 연속적으로 순차 할당할 수 있다.In the step of constructing the neural network, the array regions may be sequentially allocated from the initial array region alternately in the row direction and the column direction.

본 발명의 실시예에 의하면, 단일 시냅스 어레이 상에서 은닉층(hidden layer)의 개수를 확장할 수 있는 재구성 가능한 뉴로모픽 시스템(reconfigureable neuromorphic system) 및 이의 신경망 구성 방법이 제공된다.According to an embodiment of the present invention, a reconfigurable neuromorphic system capable of expanding the number of hidden layers on a single synaptic array and a method for constructing a neural network thereof are provided.

본 발명의 효과는 상술한 효과들로 제한되지 않는다. 언급되지 않은 효과들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects described above. Effects not mentioned will be clearly understood by those skilled in the art from the present specification and the accompanying drawings.

도 1은 종래의 뉴로모픽 시스템을 보여주는 개념도이다.
도 2는 본 발명의 일 실시예에 따른 재구성 가능한 뉴로모픽 시스템의 구성도이다.
도 3 내지 도 6은 본 발명의 실시예에 따른 뉴로모픽 시스템의 동작을 심층 신경망의 계층 순서에 따라 나타낸 것이다.
도 7은 본 발명의 실시예에 따른 재구성 가능한 뉴로모픽 시스템을 구성하는 양방향 뉴런 회로의 구성도이다.
도 8은 본 발명의 실시예에 따른 재구성 가능한 뉴로모픽 시스템을 구성하는 양방향 뉴런 회로의 단위 뉴런 회로가 출력 뉴런으로 활성화된 경우의 동작을 나타낸다.
도 9는 본 발명의 실시예에 따른 재구성 가능한 뉴로모픽 시스템을 구성하는 양방향 뉴런 회로의 단위 뉴런 회로가 입력 뉴런으로 활성화된 경우의 동작을 나타낸다.
도 10 및 도 11은 본 발명의 실시예에 따른 재구성 가능한 뉴로모픽 시스템을 구성하는 양방향 뉴런 회로 중 비활성화된 단위 뉴런 회로의 동작을 나타낸 것이다.
도 12는 본 발명의 다른 실시예에 따른 재구성 가능한 뉴로모픽 시스템을 구성하는 양방향 뉴런 회로의 구성도이다.
도 13은 도 12의 실시예에 따른 재구성 가능한 뉴로모픽 시스템을 구성하는 양방향 뉴런 회로의 단위 뉴런 회로가 출력 뉴런으로 동작하는 경우를 보여주는 도면이다.
도 14는 도 12의 실시예에 따른 재구성 가능한 뉴로모픽 시스템을 구성하는 양방향 뉴런 회로의 단위 뉴런 회로가 입력 뉴런으로 동작하는 경우를 보여주는 도면이다.
도 15는 본 발명의 실시예에 따른 뉴로모픽 시스템에 적용 가능한 온칩 학습 알고리즘(on-chip learning algorithm)을 나타낸 것이다.
도 16 내지 도 19는 본 발명의 다양한 실시예들에 따라 재구성 가능한 뉴로모픽 시스템의 어레이 영역들을 할당하는 예를 보여주는 개념도이다.
1 is a conceptual diagram showing a conventional neuromorphic system.
2 is a configuration diagram of a reconfigurable neuromorphic system according to an embodiment of the present invention.
3 to 6 show the operation of the neuromorphic system according to an embodiment of the present invention in a hierarchical order of deep neural networks.
7 is a block diagram of a bidirectional neuron circuit constituting a reconfigurable neuromorphic system according to an embodiment of the present invention.
8 shows an operation when a unit neuron circuit of a bidirectional neuron circuit constituting a reconfigurable neuromorphic system according to an embodiment of the present invention is activated as an output neuron.
9 shows an operation when a unit neuron circuit of a bidirectional neuron circuit constituting a reconfigurable neuromorphic system according to an embodiment of the present invention is activated as an input neuron.
10 and 11 illustrate the operation of a deactivated unit neuron circuit among bidirectional neuron circuits constituting a reconfigurable neuromorphic system according to an embodiment of the present invention.
12 is a configuration diagram of a bidirectional neuron circuit constituting a reconfigurable neuromorphic system according to another embodiment of the present invention.
FIG. 13 is a diagram illustrating a case where a unit neuron circuit of a bidirectional neuron circuit constituting a reconfigurable neuromorphic system according to the embodiment of FIG. 12 operates as an output neuron.
14 is a diagram illustrating a case where a unit neuron circuit of a bidirectional neuron circuit constituting a reconfigurable neuromorphic system according to the embodiment of FIG. 12 operates as an input neuron.
15 shows an on-chip learning algorithm applicable to a neuromorphic system according to an embodiment of the present invention.
16 to 19 are conceptual views illustrating an example of allocating array regions of a reconfigurable neuromorphic system according to various embodiments of the present invention.

본 발명의 다른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술하는 실시예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되지 않으며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 만일 정의되지 않더라도, 여기서 사용되는 모든 용어들(기술 혹은 과학 용어들을 포함)은 이 발명이 속한 종래 기술에서 보편적 기술에 의해 일반적으로 수용되는 것과 동일한 의미를 갖는다. 공지된 구성에 대한 일반적인 설명은 본 발명의 요지를 흐리지 않기 위해 생략될 수 있다. 본 발명의 도면에서 동일하거나 상응하는 구성에 대하여는 가급적 동일한 도면부호가 사용된다. 본 발명의 이해를 돕기 위하여, 도면에서 일부 구성은 다소 과장되거나 축소되어 도시될 수 있다.Other advantages and features of the present invention, and methods for achieving them will be clarified with reference to embodiments described below in detail together with the accompanying drawings. However, the present invention is not limited to the examples disclosed below, and the present invention is only defined by the scope of the claims. If not defined, all terms (including technical or scientific terms) used herein have the same meaning as generally accepted by universal technology in the prior art to which this invention belongs. The general description of known configurations may be omitted so as not to obscure the subject matter of the present invention. In the drawings of the present invention, the same reference numerals are used wherever possible. In order to facilitate understanding of the present invention, some components in the drawings may be somewhat exaggerated or reduced.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다", "가지다" 또는 "구비하다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms “include”, “have” or “have” are intended to indicate that there are features, numbers, steps, actions, components, parts or combinations thereof described in the specification, but one Or further features or numbers, steps, actions, components, parts, or combinations thereof, should not be excluded in advance.

본 명세서 전체에서 사용되는 '~부'는 적어도 하나의 기능이나 동작을 처리하는 단위로서, 예를 들어 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미할 수 있다. 그렇지만 '~부'가 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.The '~ unit' used throughout this specification is a unit that processes at least one function or operation, and may mean a hardware component such as software, FPGA, or ASIC. However, the '~ wealth' is not limited to software or hardware. The '~ unit' may be configured to be in an addressable storage medium or may be configured to reproduce one or more processors.

일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함할 수 있다. 구성요소와 '~부'에서 제공하는 기능은 복수의 구성요소 및 '~부'들에 의해 분리되어 수행될 수도 있고, 다른 추가적인 구성요소와 통합될 수도 있다.As an example, '~ unit' refers to components such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, and subs. It can include routines, segments of program code, drivers, firmware, microcode, circuitry, data, database, data structures, tables, arrays and variables. The functions provided by the component and the '~ unit' may be performed separately by a plurality of components and the '~ unit', or may be integrated with other additional components.

이하에서, 단일 시냅스 어레이(synapse array) 상에서 심층 신경망(DNN; Deep Neural Network)을 구현할 수 있으며, 심층 신경망의 은닉층(hidden layer)의 개수를 필요에 따라 다양하게 조절할 수 있는 재구성 가능한 뉴로모픽 시스템(reconfigurable neuromorphic system)의 실시예를 개시한다. 본 발명의 실시예에 따른 뉴로모픽 시스템은 뉴런층의 개수를 하드웨어적으로 고정시키지 않고, 재구성 가능하게 구성함으로써, 인공지능 시스템을 범용적으로 사용 가능하며 효율성을 향상시킬 수 있다.Hereinafter, a reconfigurable neuromorphic system capable of implementing a deep neural network (DNN) on a single synapse array and variously adjusting the number of hidden layers of the deep neural network as necessary. Disclosed is an embodiment of a (reconfigurable neuromorphic system). The neuromorphic system according to an embodiment of the present invention can be configured to be reconfigurable without fixing the number of neuron layers in hardware, so that the artificial intelligence system can be used universally and efficiency can be improved.

도 2는 본 발명의 일 실시예에 따른 재구성 가능한 뉴로모픽 시스템의 구성도이다. 도 2를 참조하면, 본 발명의 실시예에 따른 재구성 가능한 뉴로모픽 시스템(100)은 제1 양방향 뉴런 회로(bidirectional row neuron circuits)(110), 제2 양방향 뉴런 회로(120), 시냅스 어레이(130) 및 제어부(140)를 포함하여 구성된다.2 is a configuration diagram of a reconfigurable neuromorphic system according to an embodiment of the present invention. 2, the reconfigurable neuromorphic system 100 according to an embodiment of the present invention includes first bidirectional row neuron circuits 110, second bidirectional neuron circuits 120, and synaptic arrays. 130) and the control unit 140.

시냅스 어레이(130)는 입력 신호들과 출력 신호들에 따라 가중치(weight)가 변화하는 시냅스 소자들로 이루어질 수 있다. 시냅스 어레이(130)는 크로스바(cross-bar) 형태를 가지며, 각 교차점에 시냅스 소자가 존재한다. 시냅스 소자들은 복수의 행과 열을 이루어 격자 구조로 배열될 수 있다. 도면에서 시냅스 소자들의 도시는 생략되었다. 시냅스 소자는 양방향 전압 극성에서 모두 동작 가능한 소자로 제공될 수 있다.The synapse array 130 may be composed of synapse elements whose weight varies according to input signals and output signals. The synaptic array 130 has a cross-bar shape, and a synaptic element is present at each intersection. Synaptic elements may be arranged in a lattice structure by forming a plurality of rows and columns. In the drawings, the illustration of synaptic elements is omitted. The synaptic device may be provided as a device operable in both directions of voltage polarity.

일 실시예로, 시냅스 소자는 MRAM(Magnetic Random Access Memory), RRAM(Resistive Random Access Memory), PRAM(Phase-change Random Access Memory), FG 플래시 메모리(Floating-Gate Flash Memory), 차지-트랩 플래시 메모리(Charge-Trap Flash Memory), SRAM(Static Random Access Memory), DRAM(Dynamic Random Access Memory)과 같이 차세대 메모리를 기반으로 하는 멤리스터(memristor) 등의 다양한 정보 저장소자로 제공될 수 있다.In one embodiment, the synaptic device includes a magnetic random access memory (MRAM), a resistive random access memory (RRAM), a phase-change random access memory (PRAM), a floating-gate flash memory (FG), and a charge-trap flash memory. (Charge-Trap Flash Memory), SRAM (Static Random Access Memory), DRAM (Dynamic Random Access Memory) can be provided as a variety of information storage, such as a memristor (memristor) based on the next generation memory.

시냅스 어레이(130)에서 같은 행(row)에 배열된 시냅스 소자들의 일단은 제1 양방향 뉴런 회로(110) 중 대응하는 하나의 단위 뉴런과 전기신호적으로 연결되어 입력 신호를 제공받거나 출력 신호를 출력한다. 상이한 행에 배열된 시냅스 소자들의 일단은 제1 양방향 뉴런 회로(110) 중 서로 다른 단위 뉴런과 연결된다. 같은 행에 배열된 시냅스 소자들의 타단은 제2 양방향 뉴런 회로(120) 중 서로 다른 단위 뉴런과 전기신호적으로 연결되어 출력 신호를 출력하거나 입력 신호를 제공받는다.One end of the synaptic elements arranged in the same row in the synapse array 130 is electrically connected to a corresponding unit neuron of the first bidirectional neuron circuit 110 to receive an input signal or output an output signal. do. One end of the synaptic elements arranged in different rows is connected to different unit neurons of the first bidirectional neuron circuit 110. The other end of the synaptic elements arranged in the same row is electrically connected to different unit neurons of the second bidirectional neuron circuit 120 to output an output signal or receive an input signal.

같은 열(column)에 배열된 시냅스 소자들의 일단은 제1 양방향 뉴런 회로(110)의 서로 다른 단위 뉴런과 전기신호적으로 연결된다. 같은 열에 배열된 시냅스 소자들의 타단은 제2 양방향 뉴런 회로(120) 중 대응하는 하나의 단위 뉴런과 전기신호적으로 연결된다. 상이한 열에 배열된 시냅스 소자들의 타단은 제2 양방향 뉴런 회로(120) 중 서로 다른 단위 뉴런에 전기신호적으로 연결된다.One end of the synaptic elements arranged in the same column is electrically connected to different unit neurons of the first bidirectional neuron circuit 110. The other end of the synaptic elements arranged in the same row is electrically connected to a corresponding unit neuron of the second bidirectional neuron circuit 120. The other end of the synaptic elements arranged in different columns is electrically signally connected to different unit neurons of the second bidirectional neuron circuit 120.

제1 양방향 뉴런 회로(110)는 시냅스 어레이(130)의 시냅스 소자들로 행 방향의 입력 신호들을 출력하고, 시냅스 소자들로부터 행 방향의 출력 신호들을 전달받는다. 제1 양방향 뉴런 회로(110)의 단위 뉴런 회로들은 심층 신경망의 계층 순서에 따라, 입력 뉴런 또는 출력 뉴런으로 활성화되거나, 비활성화될 수 있다.The first bidirectional neuron circuit 110 outputs input signals in the row direction to the synaptic elements of the synaptic array 130 and receives output signals in the row direction from the synaptic elements. The unit neuron circuits of the first bidirectional neuron circuit 110 may be activated or deactivated as an input neuron or an output neuron according to a hierarchical order of deep neural networks.

제2 양방향 뉴런 회로(120)는 시냅스 어레이(130)의 시냅스 소자들로 열 방향의 입력 신호들을 출력하고, 시냅스 소자들로부터 열 방향의 출력 신호들을 전달받는다. 제2 양방향 뉴런 회로(120)의 단위 뉴런 회로들은 심층 신경망의 계층 순서에 따라, 입력 뉴런 또는 출력 뉴런으로 활성화되거나, 비활성화될 수 있다.The second bidirectional neuron circuit 120 outputs input signals in the column direction to the synaptic elements of the synaptic array 130 and receives output signals in the column direction from the synaptic elements. The unit neuron circuits of the second bidirectional neuron circuit 120 may be activated or deactivated as an input neuron or an output neuron according to a hierarchical order of deep neural networks.

제어부(140)는 단일 시냅스 어레이(130) 상에서 어레이 영역들(131, 132, 133, 134)을 연속적으로 순차 할당하여 신경망을 구성한다. 제어부(140)는 시냅스 어레이(130) 상에 할당되는 어레이 영역들(131, 132, 133, 134)의 개수를 조절하여 신경망의 은닉층의 개수를 조절할 수 있다.The controller 140 configures a neural network by sequentially allocating array regions 131, 132, 133, and 134 on a single synapse array 130. The control unit 140 may control the number of hidden regions of the neural network by adjusting the number of array regions 131, 132, 133, and 134 allocated on the synapse array 130.

제어부(140)는 신경망 계층 순서에 따라 어레이 영역들(131, 132, 133, 134) 중 활성화되고 있는 하나의 어레이 영역을 제외한 나머지 어레이 영역은 비활성화할 수 있다. 제어부(140)는 심층 신경망의 계층 순으로 어레이 영역들(131, 132, 133, 134)을 순차적으로 활성화할 수 있다.The controller 140 may deactivate the remaining array areas except one of the array areas 131, 132, 133, and 134 which is activated according to the neural network layer order. The controller 140 may sequentially activate the array regions 131, 132, 133, and 134 in the order of the layer of the deep neural network.

제어부(140)는 어레이 영역(131, 132, 133, 134)의 활성화를 위해, 제1 양방향 뉴런 회로(110)와 제2 양방향 뉴런 회로(120) 중 심층 신경망의 계층 순으로 활성화되는 하나의 어레이 영역의 행과 열에 대응되는 단위 뉴런 회로들을 입력 뉴런 또는 출력 뉴런으로 활성화시키고, 나머지 어레이 영역이 비활성화되도록 제1 양방향 뉴런 회로(110) 및 제2 양방향 뉴런 회로(120)의 단위 뉴런 회로들을 제어할 수 있다.In order to activate the array regions 131, 132, 133, and 134, the controller 140 is one array activated in the hierarchical order of the deep neural networks among the first bidirectional neuron circuit 110 and the second bidirectional neuron circuit 120. Activate unit neuron circuits corresponding to rows and columns of the region as input neurons or output neurons, and control unit neuron circuits of the first bidirectional neuron circuit 110 and the second bidirectional neuron circuit 120 so that the remaining array regions are deactivated. You can.

제어부(140)는 인접하는 두 개의 시냅스 어레이 영역들 중 후행하는 시냅스 어레이 영역의 입력 신호의 개수가 선행하는 시냅스 어레이 영역의 출력 신호의 개수와 동일하도록, 시냅스 어레이 영역들(131, 132, 133, 134)을 할당할 수 있다.The control unit 140 may control the number of synaptic array regions 131, 132, and 133, such that the number of input signals of the succeeding synaptic array region among the two adjacent synapse array regions is equal to the number of output signals of the preceding synaptic array region. 134).

이를 위해, 제어부(140)는 미리 설정된 초기 어레이 영역(131)으로부터 행 방향 및 열 방향으로 번갈아 가면서 어레이 영역들(131, 132, 133, 134)을 순차 할당하도록 구성될 수 있다.To this end, the control unit 140 may be configured to sequentially allocate the array regions 131, 132, 133, and 134 alternately in a row direction and a column direction from the preset initial array region 131.

제1 양방향 뉴런 회로(110) 및 제2 양방향 뉴런 회로(120) 중 비활성화되는 어레이 영역에 대응하는 단위 뉴런 회로들은 해당 시냅스 소자에 전류가 흐르지 않도록 플로팅(floating)되거나 설정된 전압이 인가된다.Among the first bidirectional neuron circuit 110 and the second bidirectional neuron circuit 120, unit neuron circuits corresponding to an inactive array region are floated or a set voltage is applied so that current does not flow through a corresponding synaptic device.

도 3 내지 도 6은 본 발명의 실시예에 따른 뉴로모픽 시스템의 동작을 심층 신경망의 계층 순서에 따라 나타낸 것이다. 도 3은 시냅스 어레이(130)의 첫 번째 어레이 영역(131)을 활성화하고 시냅스 어레이(130)의 나머지 영역을 비활성화하는 동작을 나타낸 것이다. 도 3을 참조하면, 제1 양방향 뉴런 회로(110) 중 첫 번째 어레이 영역(131)의 입력 뉴런에 해당하는 라인들만 활성화가 되며, 이를 통해 a개의 입력 신호가 시냅스 어레이(130)의 첫 번째 어레이 영역(131)의 a개의 시냅스 소자들로 들어가게 된다. 이때, 제1 양방향 뉴런 회로(110) 중 비활성화된 단위 뉴런 회로들에는 전류가 흐르지 않도록 플로팅(floating) 상태로 만들어주거나, 특정 전압(Vinhibit)을 인가할 수 있다.3 to 6 show the operation of the neuromorphic system according to an embodiment of the present invention in a hierarchical order of deep neural networks. 3 shows an operation of activating the first array region 131 of the synapse array 130 and deactivating the remaining regions of the synapse array 130. Referring to FIG. 3, only the lines corresponding to the input neurons of the first array region 131 of the first bidirectional neuron circuit 110 are activated, through which a number of input signals are the first array of the synaptic array 130 It enters into a number of synaptic elements in the region 131. In this case, the deactivated unit neuron circuits of the first bi-directional neuron circuit 110 may be made to float to prevent current from flowing, or a specific voltage (V inhibit ) may be applied.

활성화된 단위 뉴런 회로들을 통하여 첫 번째 어레이 영역(131)으로 들어간 신호들은 첫 번째 어레이 영역(131)의 시냅스 소자들을 지나면서 해당 가중치만큼 변경되어 제2 양방향 뉴런 회로(120)의 단위 뉴런 회로들로 출력된다. 이때, 제2 양방향 뉴런 회로(120) 중 첫 번째 어레이 영역(131)의 열 방향 개수와 동일한 b개의 단위 뉴런 회로들만 활성화되어 출력 뉴런으로 동작하게 된다. 제1 양방향 뉴런 회로(110)와 마찬가지로, 제2 양방향 뉴런 회로(120) 중 비활성화된 라인(단위 뉴런 회로들)에는 플로팅(floating) 상태 또는 전류가 흐르지 않도록 특정 전압(Vinhibit)이 인가된다.Signals entering the first array region 131 through the activated unit neuron circuits are changed by a corresponding weight while passing through the synaptic elements of the first array region 131 to the unit neuron circuits of the second bidirectional neuron circuit 120. Is output. In this case, only b unit neuron circuits equal to the number of column directions of the first array region 131 among the second bidirectional neuron circuits 120 are activated to operate as an output neuron. Similar to the first bidirectional neuron circuit 110, a specific voltage V inhibit is applied to the inactive line (unit neuron circuits) of the second bidirectional neuron circuit 120 so that a floating state or a current does not flow.

도 4는 시냅스 어레이(130)의 두 번째 어레이 영역(132)을 활성화하고 시냅스 어레이(130)의 나머지 영역을 비활성화하는 동작을 나타낸 것이다. 첫 번째 어레이 영역(131)의 시냅스 소자들의 동작에 따라 b개의 출력 뉴런 결과 값들은 동일한 개수만큼 별도의 이동 없이 다음 계층의 입력 신호들로 활용되어, 곧바로 시냅스 어레이(130)의 두 번째 어레이 영역(132)으로 전달된다. 이때, 제2 양방향 뉴런 회로(120)의 단위 뉴런 회로들 중 첫 번째 어레이 영역(131)과 대응되는 b개의 단위 뉴런 회로가 입력 뉴런으로 활성화된다.4 shows an operation of activating the second array region 132 of the synapse array 130 and deactivating the remaining regions of the synapse array 130. According to the operation of the synaptic elements of the first array region 131, the b output neuron result values are utilized as input signals of the next layer without separate movement by the same number, so that the second array region of the synapse array 130 immediately ( 132). At this time, b unit neuron circuits corresponding to the first array region 131 of the unit neuron circuits of the second bidirectional neuron circuit 120 are activated as input neurons.

입력 뉴런으로 활성화된 단위 뉴런 회로들로부터 출력되는 입력 신호들은 새롭게 할당된 두 번째 어레이 영역(132)의 시냅스 소자들로 들어가며, 이때 제1 양방향 뉴런 회로(110)의 단위 뉴런 회로들 중 c개의 단위 뉴런 회로가 출력 뉴런으로 활성화되어, 시냅스 연산이 이루어진다. 시냅스 어레이(130) 중 신경망 계층 순서에 부합되는 하나의 어레이 영역(132)만 동작하도록, 해당 어레이 영역(132)에 연결된 단위 뉴런 회로들만 활성화되고, 나머지는 비활성화된다.The input signals output from the unit neuron circuits activated by the input neurons enter synaptic elements of the newly allocated second array region 132, where c units of the unit neuron circuits of the first bidirectional neuron circuit 110 The neuron circuit is activated as an output neuron, and a synaptic operation is performed. Of the synaptic array 130, only the unit neuron circuits connected to the corresponding array region 132 are activated so that only one array region 132 that satisfies the neural network layer order is activated, and the rest are deactivated.

이후의 시냅스 어레이(130)의 세 번째 어레이 영역(133)과 네 번째 어레이 영역(134)의 동작은 앞선 동작들과 동일한 방식으로 이루어지며, 각각 도 5 및 도 6에 도시되었다. 계층별 신호가 이동될 때에 있어, 앞선 층의 출력 신호의 개수와 전달받는 뒤 층의 입력 신호 개수는 동일하게 유지된다.Subsequent operations of the third array region 133 and the fourth array region 134 of the synaptic array 130 are performed in the same manner as the previous operations, respectively, and are illustrated in FIGS. 5 and 6. When the signal for each layer is moved, the number of output signals of the previous layer and the number of input signals of the received layer remain the same.

본 실시예에 따른 재구성 가능한 뉴로모픽 시스템(100)은 단일 시냅스 어레이(130)와, 양방향 동작이 가능한 뉴런 회로(110, 120)를 구성함으로써, 단일 시냅스 어레이(130) 내에서 복수 개의 신경망 층을 구현할 수 있다.The reconfigurable neuromorphic system 100 according to the present embodiment comprises a single synapse array 130 and a plurality of neural network layers within a single synapse array 130 by constructing neuron circuits 110 and 120 capable of bidirectional operation. You can implement

본 실시예에 의하면, 행 방향 뉴런 회로와 열 방향 뉴런 회로가 입력 뉴런 동작과 출력 뉴런 동작이 모두 가능한 양방향 뉴런 회로로 구성된다. 이에 따라, 이전 층의 출력 뉴런으로부터 다음 층의 입력 뉴런으로의 데이터 이동에 따른 시간이나 전력을 획기적으로 줄일 수 있다.According to this embodiment, the row-direction neuron circuit and the column-direction neuron circuit are configured as bidirectional neuron circuits capable of both input and output neuron operations. Accordingly, it is possible to drastically reduce the time or power of moving data from the output neuron of the previous layer to the input neuron of the next layer.

또한, 본 실시예에 의하면, 뉴런층의 개수가 하드웨어적으로 고정된 것이 아니라, 단일 시냅스 어레이(130)에서 각 층에 필요한 어레이 영역을 온칩(on-chip)으로 할당함으로써 뉴런층의 개수를 확장할 수 있다. 따라서, 본 실시예에 의하면, 단일 시냅스 어레이(130) 상에서 심층 신경망의 구현이 가능하며, 은닉층의 개수를 필요에 따라 다양하게 확장 가능하다.In addition, according to the present embodiment, the number of neuron layers is not fixed in hardware, but the number of neuron layers is extended by allocating an array area required for each layer on-chip in a single synaptic array 130. can do. Therefore, according to the present embodiment, it is possible to implement a deep neural network on a single synapse array 130, and the number of hidden layers can be variously expanded as necessary.

도 7은 본 발명의 실시예에 따른 재구성 가능한 뉴로모픽 시스템을 구성하는 양방향 뉴런 회로의 구성도이다. 도 7은 제1 양방향 뉴런 회로(110) 또는 제2 양방향 뉴런 회로(120)를 보다 구체적으로 보여준다.7 is a block diagram of a bidirectional neuron circuit constituting a reconfigurable neuromorphic system according to an embodiment of the present invention. 7 shows the first bidirectional neuron circuit 110 or the second bidirectional neuron circuit 120 in more detail.

양방향 뉴런 회로(110, 120)는 입력 뉴런 또는 출력 뉴런으로 활성화 가능하여 양방향 동작이 가능하도록 구성된다. 양방향 뉴런 회로(110, 120)는 복수 개의 단위 뉴런 회로를 포함한다. 일 실시예에서, 단위 뉴런 회로는 뉴런부(N1), 저장부(L1) 및 스위치부(SW1, SW2, SW3)를 포함하여 구성될 수 있다.The bidirectional neuron circuits 110 and 120 can be activated as input neurons or output neurons, and are configured to enable bidirectional operation. The bidirectional neuron circuits 110 and 120 include a plurality of unit neuron circuits. In one embodiment, the unit neuron circuit may include a neuron unit N1, a storage unit L1, and switch units SW1, SW2, and SW3.

뉴런부(N1)는 시냅스 어레이(130) 중 어레이 영역에 해당하는 시냅스 소자들로부터 전달받은 행 방향 또는 열 방향의 출력 신호들을 합산(integrate)하고, 활성화 함수(activation function)에 따른 결과 신호를 생성(fire)하는 단위 뉴런으로 구성될 수 있다.The neuron unit N1 integrates output signals in a row direction or a column direction received from synaptic elements corresponding to an array region of the synapse array 130, and generates a result signal according to an activation function (fire) may be composed of unit neurons.

저장부(L1)는 뉴런부(N1)에 의해 발화되어 생성되는 행 방향 또는 열 방향의 신호(뉴런부의 출력 결과 값)을 임시 저장한다. 일 실시예로, 저장부(L1)는 래치(latch)로 구성될 수 있다. 단위 뉴런 회로에는 저장부(L1)와 함께 파형 생성기(waveform generator)가 구비될 수 있다. 파형 생성기는 뉴런부(N1)에서 발화된 신호를 원하는 전압이나 특정 파형으로 변환하여 다음 신경망 계층에 입력될 입력 신호를 생성할 수 있다.The storage unit L1 temporarily stores a signal (output result value of the neuron unit) in a row direction or a column direction generated by ignition by the neuron unit N1. In one embodiment, the storage unit L1 may be configured as a latch. The unit neuron circuit may be provided with a waveform generator together with the storage unit L1. The waveform generator may generate an input signal to be input to the next neural network layer by converting the signal uttered in the neuron unit N1 into a desired voltage or a specific waveform.

스위치부(SW1, SW2, SW3)는 단위 뉴런 회로를 입력 뉴런 또는 출력 뉴런으로 활성화시키거나, 단위 뉴런 회로를 비활성화시킬 수 있다. 스위치부(SW1, SW2, SW3)는 제어부(140)의 제어신호에 따라 시냅스 어레이(130)의 시냅스 소자들로부터 전달되는 행 방향 또는 열 방향의 출력 신호들을 뉴런부(N1)로 전달하거나 차단할 수 있다. 또한, 스위치부(SW1, SW2, SW3)는 제어부(140)의 제어신호에 따라 저장부(L1)에 저장된 행 방향 또는 열 방향의 입력 신호들을 시냅스 소자들로 전달하거나 차단할 수 있다.The switch units SW1, SW2, and SW3 may activate the unit neuron circuit as an input neuron or an output neuron, or deactivate the unit neuron circuit. The switch units SW1, SW2, and SW3 may transmit or block output signals in the row direction or column direction from the synaptic elements of the synaptic array 130 to the neuron unit N1 according to the control signal of the control unit 140. have. In addition, the switch units SW1, SW2, and SW3 may transmit or block input signals in the row direction or column direction stored in the storage unit L1 to synaptic elements according to the control signal of the control unit 140.

일 실시예에서, 스위치부는 3개의 스위치들(SW1, SW2, SW3)과, 이 스위치들(SW1, SW2, SW3)을 제어하는 제어 회로(110a, 120a)로 구성될 수 있다. 제1 스위치(SW1)는 시냅스 소자들과 뉴런부(N1) 간을 연결 혹은 차단하거나, 시냅스 소자들과 저장부(L1) 간을 연결 혹은 차단시키도록 구성될 수 있다. 제1 스위치(SW1)는 SPDT(Single-Pole Double Throw)의 스위치 형태로 제공될 수 있다.In one embodiment, the switch unit may be composed of three switches SW1, SW2, and SW3, and control circuits 110a and 120a that control the switches SW1, SW2, and SW3. The first switch SW1 may be configured to connect or block the synaptic elements and the neuron part N1, or to connect or block the synaptic elements and the storage part L1. The first switch SW1 may be provided in the form of a single-pole double throw (SPDT) switch.

제2 스위치(SW2)는 뉴런부(N1)와 저장부(L1) 간을 연결 혹은 차단시키도록 제공될 수 있다. 제3 스위치(SW3)는 시냅스 소자들과 저장부(L1) 간을 연결 혹은 차단시키도록 제공될 수 있다. 제2 스위치(SW2) 및 제3 스위치(SW3)는 SPST(Single pole single throw)의 형태로 제공될 수 있다.The second switch SW2 may be provided to connect or block the neuron part N1 and the storage part L1. The third switch SW3 may be provided to connect or block the synaptic elements and the storage unit L1. The second switch SW2 and the third switch SW3 may be provided in the form of a single pole single throw (SPST).

스위치부(SW1, SW2, SW3)는 제어회로(110a, 120a)에 의해 온/오프 제어될 수 있다. 제어 회로(110a, 120a)는 제어부(140)에 설정된 신경망 계층 순서에 따라 제어될 수 있다.The switch units SW1, SW2, and SW3 may be controlled on / off by the control circuits 110a and 120a. The control circuits 110a and 120a may be controlled according to the neural network layer order set in the control unit 140.

제어부(140)는 선행의 신경망 계층에서 출력 뉴런으로 활성화된 단위 뉴런 회로가 후행의 신경망 계층에서 입력 뉴런으로 활성화되도록 스위치부(SW1, SW2, SW3)를 제어할 수 있다.The control unit 140 may control the switch units SW1, SW2, and SW3 such that the unit neuron circuit activated as an output neuron in the preceding neural network layer is activated as an input neuron in a subsequent neural network layer.

또한, 제어부(140)는 선행의 신경망 계층에서 입력 뉴런으로 활성화된 단위 뉴런 회로가 후행의 신경망 계층에서 비활성화되도록 스위치부(SW1, SW2, SW3)를 제어할 수 있다.In addition, the control unit 140 may control the switch units SW1, SW2, and SW3 such that the unit neuron circuit activated as an input neuron in a preceding neural network layer is deactivated in a subsequent neural network layer.

도 8은 본 발명의 실시예에 따른 재구성 가능한 뉴로모픽 시스템을 구성하는 양방향 뉴런 회로의 단위 뉴런 회로가 출력 뉴런으로 활성화된 경우의 동작을 나타낸다. 이 경우, 제1 스위치(SW1)는 단자 a(Na)와 연결되며, 제2 스위치(SW2)는 닫히고 제3 스위치(SW3)는 열리게 된다. 이에 따라, 시냅스 어레이(130) 중 어레이 영역에서 동작하는 시냅스 소자들에서 출력되는 출력 신호(O1)가 뉴런부(N1)로 전달되어 합산되어 발화되며, 뉴런부(N1)의 결과값은 제2 스위치(SW2)를 통해 전달되어 저장부(L1)에 임시 저장된다.8 shows an operation when a unit neuron circuit of a bidirectional neuron circuit constituting a reconfigurable neuromorphic system according to an embodiment of the present invention is activated as an output neuron. In this case, the first switch SW1 is connected to the terminal a (Na), the second switch SW2 is closed and the third switch SW3 is opened. Accordingly, the output signal O1 output from the synaptic elements operating in the array region of the synaptic array 130 is transferred to the neuron unit N1, summed and ignited, and the resulting value of the neuron unit N1 is second. It is transmitted through the switch SW2 and temporarily stored in the storage unit L1.

도 9는 본 발명의 실시예에 따른 재구성 가능한 뉴로모픽 시스템을 구성하는 양방향 뉴런 회로의 단위 뉴런 회로가 입력 뉴런으로 활성화된 경우의 동작을 나타낸다. 이 경우, 제1 스위치(SW1)는 단자 b(Nb)와 연결되고, 제2 스위치(SW2)가 열리고, 제3 스위치(SW3)는 닫히게 된다. 이후, 저장부(L1)에 저장되어 있는 결과 값을 참고하여 동작을 위한 전압 파형의 입력 신호(I1)가 생성되고, 제3 스위치(SW3)와 제1 스위치(SW1)를 통해 시냅스 어레이(130) 중 어레이 영역에 해당하는 시냅스 소자들로 입력된다.9 shows an operation when a unit neuron circuit of a bidirectional neuron circuit constituting a reconfigurable neuromorphic system according to an embodiment of the present invention is activated as an input neuron. In this case, the first switch SW1 is connected to the terminal b (Nb), the second switch SW2 is opened, and the third switch SW3 is closed. Thereafter, an input signal I1 of a voltage waveform for operation is generated by referring to the result value stored in the storage unit L1, and the synaptic array 130 is provided through the third switch SW3 and the first switch SW1. ) Are input to synaptic elements corresponding to the array region.

도 10 및 도 11은 본 발명의 실시예에 따른 재구성 가능한 뉴로모픽 시스템을 구성하는 양방향 뉴런 회로 중 비활성화된 단위 뉴런 회로의 동작을 나타낸 것이다. 비활성화되는 단위 뉴런 회로의 경우, 플로팅(floating) 되거나 특정 전압(Vinhibit)이 인가될 수 있다. 도 10은 플로팅이 된 경우로써, 제1 스위치(SW1)는 단자 b(Nb)와 연결되고, 제2 스위치(SW2)와 제3 스위치(SW3)는 모두 열려 있는 상태이다.10 and 11 illustrate the operation of a deactivated unit neuron circuit among bidirectional neuron circuits constituting a reconfigurable neuromorphic system according to an embodiment of the present invention. In the case of a deactivated unit neuron circuit, floating or a specific voltage (V inhibit ) may be applied. 10 is a floating case, the first switch SW1 is connected to the terminal b (Nb), and the second switch SW2 and the third switch SW3 are both open.

도 11은 시냅스 소자로 전류가 흐르지 않도록 하는 특정 전압(Vinhibit)을 단위 뉴런 회로에 인가하는 경우를 나타낸 것이다. 이 경우, 파형 생성기(Waveform Generator)에서 생성된 특정 전압이 제3 스위치(SW3)와 제1 스위치(SW1)를 통하여 시냅스 어레이(130)의 시냅스 소자에 전달됨으로써, 어레이 영역에 해당하지 않은 나머지 시냅스 소자들을 비활성화하게 된다. 비활성화되는 시냅스 소자는 가중치가 변화하지 않게 될 것이다.11 shows a case in which a specific voltage (V inhibit ) that prevents a current from flowing through a synaptic device is applied to a unit neuron circuit. In this case, the specific voltage generated by the waveform generator is transmitted to the synaptic element of the synaptic array 130 through the third switch SW3 and the first switch SW1, so that the remaining synapses that do not correspond to the array region The devices are deactivated. Inactive synaptic devices will not have a weight change.

도 12는 본 발명의 다른 실시예에 따른 재구성 가능한 뉴로모픽 시스템을 구성하는 양방향 뉴런 회로의 단위 뉴런 회로의 구성도이고, 도 13 내지 도 14는 각각 양방향 뉴런 회로의 단위 뉴런 회로가 출력 뉴런과 입력 뉴런으로 동작하는 경우를 보여주는 도면이다. 도 12 내지 도 14를 참조하면, 양방향 뉴런 회로(110, 120)의 스위치부는 1개의 스위치(SW1)로 구현되는 점에서 앞서 설명한 실시예와 차이가 있다.12 is a block diagram of a unit neuron circuit of a bidirectional neuron circuit constituting a reconfigurable neuromorphic system according to another embodiment of the present invention, and FIGS. 13 to 14 are unit neurons circuits of a bidirectional neuron circuit, respectively, and output neurons. This diagram shows the case of operating as an input neuron. 12 to 14, the switch part of the bidirectional neuron circuits 110 and 120 is different from the above-described embodiment in that it is implemented by one switch SW1.

저장부(L1)에 신호를 저장할 필요가 없거나, 파형 생성기(Waveform Generator)에서 별도의 저장 방식이 있을 경우, 도 12의 도시와 같이, 뉴런부(N1)와 저장부(L1)가 직접적으로 연결될 수 있다. 또한, 파형 생성기에서 발생하는 파형을 별도의 변형 없이 활용할 경우에도 별도의 스위치 없이 입력 뉴런으로 활용이 가능하다. 상기 설명한 두 방식 모두 양방향 뉴런 회로를 동작시키기 위한 실시예들 중의 일부로서, 다른 형태로 스위치부가 구현되는 것도 가능하다.When it is not necessary to store a signal in the storage unit L1, or when there is a separate storage method in the waveform generator, as illustrated in FIG. 12, the neuron unit N1 and the storage unit L1 are directly connected. You can. In addition, even when the waveform generated by the waveform generator is used without any modification, it can be used as an input neuron without a separate switch. Both of the above-described methods are some of the embodiments for operating the bidirectional neuron circuit, and it is also possible to implement the switch unit in other forms.

딥러닝에서 문제가 주어졌을 때, 은닉층의 개수와 뉴런의 개수(각 층의 크기)를 몇 개로 설정해야 성공적으로 학습을 수행할 수 있는가를 미리 아는 것은 매우 힘들다. 따라서, 은닉층의 개수나 뉴런의 개수가 하드웨어적으로 고정되어 있는 상황에서 다양한 문제에 대응하는 것은 매우 어렵다. 하지만, 본 발명의 실시예에 의하면, 은닉층의 개수를 자유롭게 재구성 가능하며, 각 층에서의 뉴런 개수 또한 자유롭게 설정 가능하다.When given a problem in deep learning, it is very difficult to know in advance how many hidden layers and the number of neurons (the size of each layer) should be set in order to successfully learn. Therefore, it is very difficult to cope with various problems in a situation where the number of hidden layers or the number of neurons is fixed in hardware. However, according to an embodiment of the present invention, the number of hidden layers can be freely reconstructed, and the number of neurons in each layer can also be freely set.

도 15는 본 발명의 실시예에 따른 뉴로모픽 시스템에 적용 가능한 온칩 학습 알고리즘(on-chip learning algorithm)을 나타낸 것이다. 도 15를 참조하면, 초기에 신경망의 계층 순에 따라 시냅스 어레이 영역들을 할당하고(S10), 시냅스 소자들에 초기 가중치를 설정하여(S20) 인공 신경망을 설정하고, 설정된 인공 신경망을 이용하여 학습을 수행한다(S30 내지 S50). 시냅스 소자의 학습은 입력 신호와 출력 신호의 타이밍 차이에 따라 가중치가 증감하여 업데이트되는 방식으로 이루어질 수 있으며, 설정한 학습 횟수(에포크)에 도달할 때까지 학습을 반복한다(S60).15 shows an on-chip learning algorithm applicable to a neuromorphic system according to an embodiment of the present invention. Referring to FIG. 15, synaptic array regions are initially allocated according to the hierarchical order of neural networks (S10), initial weights are set for synaptic elements (S20), an artificial neural network is set, and learning is performed using the set artificial neural network. Perform (S30 to S50). Learning of the synaptic device may be performed in a manner that the weight is increased or decreased according to the timing difference between the input signal and the output signal, and the learning is repeated until the set number of learning (epoch) is reached (S60).

바둑 학습을 예로 들면, 학습을 시키고자 하는 많은 개수의 기보들이 존재하는데, 이들을 한 번씩 학습을 시킬 때 1 에포크(epoch)가 진행되었다고 표현한다. 설정한 에포크 동안에 원하는 만큼의 성능(작은 에러)이 나오지 않을 경우에는 현재의 신경망 층의 개수로는 해당 문제를 해결하기가 힘든 것으로 판단할 수 있고, 새로운 층(layer)을 추가하게 된다(S70).Taking Go learning as an example, there are a large number of notations that you want to learn, but when you learn them once, it is expressed that 1 epoch has progressed. If the desired amount of performance (small error) does not appear during the set epoch, it can be determined that the current neural network layer is difficult to solve the problem, and a new layer is added (S70). .

이때, 단일 평면 시냅스 어레이에 새로운 주소를 할당함으로써 새로운 층을 추가할 수 있다. 이때, 추가되는 층의 크기(뉴런의 개수) 또한 자유롭게 설정이 가능하다. 따라서, 본 발명의 학습 알고리즘을 이용하게 되면, 좀 더 다양한 문제에 대해 유연하게 대처할 수 있는 뉴로모픽 시스템의 구현이 가능하다.At this time, a new layer can be added by assigning a new address to the single-plane synapse array. At this time, the size of the layer to be added (the number of neurons) can also be set freely. Therefore, when the learning algorithm of the present invention is used, it is possible to implement a neuromorphic system that can flexibly cope with more various problems.

예를 들어, 보유한 학습 샘플들에 대해 모두 2번씩 학습을 진행하면, 2 에포크 진행이 되는데, 보통 이 에포크, 즉 학습 반복 횟수가 늘어날수록 성능이 좋아지지만, 학습 성능이 수렴(saturation)되는 특성이 있다. 일반적으로는 100 ~ 200회 정도의 에포크에서 성능이 수렴하는 경우가 많다. 설정한 최대 에포크 동안 학습을 진행한 후 성능을 평가하였을 때, 기대 이하의, 또는 원하는 만큼의 성능(에러)이 나오지 않을 경우 신경망 계층을 추가한다.For example, if learning is performed twice for all of the training samples held, 2 epochs are progressed. Usually, this epoch, that is, performance increases as the number of training iterations increases, but the characteristic that the learning performance saturates have. In general, performance often converges at about 100 to 200 epochs. When the performance is evaluated after learning for the set maximum epoch, the neural network layer is added if the performance (error) is less than expected or desired.

신경망은 층의 개수가 늘어나면 늘어날수록 성능이 좋아지지만, 무조건 많아진다고 계속 좋아지는 것은 아니며, 이 또한 수렴하는 형태를 띤다. 은닉층 필요 이상으로 많을 경우 시스템의 크기가 커져서 속도가 느려지거나 전력 소모가 커지는 단점이 따라오게 된다. 결국 원하는 정도의 성능을 얻기 위한 최소한의 층수 설정이 가장 중요한 부분 중 하나이다.The neural network has better performance as the number of layers increases, but it does not continuously improve as it increases unconditionally, and it also has a converging form. If there are more than the need for the hidden layer, the size of the system increases, which slows down the speed or increases the power consumption. After all, setting the minimum number of floors to achieve the desired performance is one of the most important parts.

본 발명의 경우, 층 수 변경이 하드웨어 기반 시스템 내에서 자유자재로 가능하기 때문에 성능을 평가하고 그에 맞춰서 층 수를 늘려나갈 수 있다. 예를 들어, 사람 얼굴 인식을 진행한다고 하였을 때 최대 에포크 만큼 학습하였음에도 얼굴 인식률이 90% 수준이고 원하는 수준의 인식율은 97%라 한다면 층 수를 늘릴 수 있다.In the case of the present invention, since the number of layers can be changed freely in a hardware-based system, performance can be evaluated and the number of layers can be increased accordingly. For example, if the face recognition rate is 90% when the face recognition rate is 90% and the desired recognition rate is 97% even though the maximum epoch is learned, the number of layers can be increased.

다시 바둑 예시를 들면, 이 경우에도 최대 에포크 만큼 학습했지만 승률이 50% 에 불과하고 원하는 승률의 수준은 90%라면, 층 수를 늘릴 수 있다. 반대로, 최대 에포크 만큼 학습하였을 때 92%의 승률이 나오면 더 이상 층 수를 늘리지 않고 학습을 끝낼 수 있다.Again, for the Go example, in this case, if you have learned as much as the maximum epoch, but the win rate is only 50% and the desired level of win rate is 90%, you can increase the number of floors. Conversely, if you learn 92% of the maximum epoch, and you get a 92% win rate, you can finish learning without increasing the number of floors.

도 16 내지 도 19는 본 발명의 다양한 실시예들에 따라 재구성 가능한 뉴로모픽 시스템의 어레이 영역들을 할당하는 예를 보여주는 개념도이다. 도 16 내지 도 19를 참조하면, 본 발명의 실시예에 따라 신경망의 계층들(A1~A6)이 확장되는 다양한 패턴들이 개시된다.16 to 19 are conceptual views illustrating an example of allocating array regions of a reconfigurable neuromorphic system according to various embodiments of the present invention. 16 to 19, various patterns in which the layers A1 to A6 of the neural network are expanded according to an embodiment of the present invention are disclosed.

도시된 신경망 구성 및 계층 확장 방법에서 공통되는 점은 다음 층의 입력의 개수가 이전 층의 출력의 개수와 같게 설정되며, 신경망의 계층 확장은 연속적으로 이루어지는 것이다. 즉, 초기 어레이 영역으로부터 행 방향 및 열 방향으로 번갈아 가면서 단일 사각 평면 상의 시냅스 어레이(130) 상에서 어레이 영역들(A1~A6)이 연속적으로 순차 할당된다.What is common in the illustrated neural network configuration and layer expansion method is that the number of inputs of the next layer is set equal to the number of outputs of the previous layer, and the layer expansion of the neural network is continuously performed. That is, the array regions A1 to A6 are sequentially sequentially allocated on the synaptic array 130 on a single quadrangular plane alternately from the initial array region in the row direction and the column direction.

시냅스 어레이(130) 상에 할당되는 어레이 영역들(A1~A6)의 개수를 조절하여 신경망의 은닉층의 개수 조절이 가능하다. 예를 들어, 어레이 영역들(A1~A6)의 개수가 6개인 경우, 첫 번째 어레이 영역은 입력층, 마지막 어레이 영역은 출력층이 되고, 어레이 영역들의 개수 중 2개를 제외한 나머지 4개의 어레이 영역들이 은닉층이 된다.It is possible to control the number of hidden layers of the neural network by adjusting the number of array regions A1 to A6 allocated on the synaptic array 130. For example, when the number of the array regions A1 to A6 is 6, the first array region is the input layer, the last array region is the output layer, and the remaining 4 array regions except 2 of the number of array regions are Become a hidden layer.

시냅스 어레이(130) 상에 어레이 영역들(A1~A6)이 할당되면, 신경망의 계층 순으로 어레이 영역들(A1~A6)의 시냅스 소자들이 순차적으로 활성화되어 학습이 수행된다. 각 계층에서 활성화되는 하나의 어레이 영역을 제외한 나머지 어레이 영역은 비활성화되며, 비활성되되는 어레이 영역의 시냅스 소자들은 학습이 수행되지 않는다.When the array regions A1 to A6 are allocated on the synapse array 130, the synaptic elements of the array regions A1 to A6 are sequentially activated in the order of the neural network hierarchy to perform learning. The array areas other than one array area activated in each layer are deactivated, and synaptic elements of the inactive array area are not learned.

선행하는 계층에서 후행하는 계층으로의 확장은 한 방향으로만 가능한 것이 아니라, 매번 확장되었던 방향에 수직한 두 방향(도 17, 도 19의 도면부호 E1, E2) 중 어느 하나의 방향으로 선택이 가능하다. 단, 이미 형성되어 있는 어레이가 차지하고 있는 영역에 따라 한 방향의 방향 선택만 가능한 경우, 해당 방향으로 새로운 어레이 영역이 추가될 수도 있다.Expansion from the preceding layer to the succeeding layer is not only possible in one direction, but can be selected in any one of two directions perpendicular to the expanded direction (reference numerals E1 and E2 in FIGS. 17 and 19). Do. However, if only one direction selection is possible according to the area occupied by the already formed array, a new array area may be added in the corresponding direction.

본 발명의 실시예에 따른 방법은 예를 들어 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 컴퓨터로 읽을 수 있는 기록매체는 SRAM(Static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등과 같은 휘발성 메모리, ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM)과 같은 불휘발성 메모리, 플로피 디스크, 하드 디스크 또는 광학적 판독 매체 예를 들어 시디롬, 디브이디 등과 같은 형태의 저장매체일 수 있으나, 이에 제한되지는 않는다.The method according to an embodiment of the present invention can be implemented in a general-purpose digital computer that can be written in a program executable on a computer and operates the program using a computer-readable recording medium. Computer-readable recording media include volatile memory such as static RAM (SRAM), dynamic RAM (DRAM), and synchronous memory (SDRAM), read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), Nonvolatile memory, floppy disks, hard disks, such as Electrically Erasable and Programmable ROM (EEPROM), flash memory devices, phase-change RAM (PRAM), magnetic RAM (MRAM), rational RAM (RRAM), and ferroelectric RAM (FRAM) The optical reading medium may be, for example, a storage medium in the form of CD-ROM, DVD, or the like, but is not limited thereto.

이상의 실시예들은 본 발명의 이해를 돕기 위하여 제시된 것으로, 본 발명의 범위를 제한하지 않으며, 이로부터 다양한 변형 가능한 실시예들도 본 발명의 범위에 속하는 것임을 이해하여야 한다. 본 발명의 기술적 보호범위는 특허청구범위의 기술적 사상에 의해 정해져야 할 것이며, 본 발명의 기술적 보호범위는 특허청구범위의 문언적 기재 그 자체로 한정되는 것이 아니라 실질적으로는 기술적 가치가 균등한 범주의 발명까지 미치는 것임을 이해하여야 한다.The above embodiments are presented to help the understanding of the present invention, and the scope of the present invention is not limited, and it should be understood that various modified examples belong to the scope of the present invention. The technical protection scope of the present invention should be determined by the technical spirit of the claims, and the technical protection scope of the present invention is not limited to the literary description of the claims, but is a category in which technical value is substantially equal. It should be understood that it extends to the invention of.

100: 재구성 가능한 뉴로모픽 시스템
110: 제1 양방향 뉴런 회로
120: 제2 양방향 뉴런 회로
130: 시냅스 어레이
131, 132, 133, 134: 어레이 영역
140: 제어부
N1: 뉴런부
L1: 저장부
SW1-3: 스위치부
100: reconfigurable neuromorphic system
110: first bidirectional neuron circuit
120: second bidirectional neuron circuit
130: synapse array
131, 132, 133, 134: array area
140: control unit
N1: neuron section
L1: storage
SW1-3: Switch part

Claims (20)

입력 신호들과 출력 신호들에 따라 가중치가 변화하는 시냅스 소자들로 이루어지는 시냅스 어레이;
행 방향의 입력 신호들을 상기 시냅스 소자들로 출력하고, 상기 시냅스 소자들로부터 행 방향의 출력 신호들을 전달받는 제1 양방향 뉴런 회로;
열 방향의 입력 신호들을 상기 시냅스 소자들로 출력하고, 상기 시냅스 소자들로부터 열 방향의 출력 신호들을 전달받는 제2 양방향 뉴런 회로; 및
상기 시냅스 어레이 상에서 서로 중첩되지 않는 어레이 영역들을 연속적으로 순차 할당하여 신경망을 구성하는 제어부;를 포함하고,
상기 제1 양방향 뉴런 회로 및 상기 제2 양방향 뉴런 회로 중 적어도 하나는 상기 시냅스 소자들에 연결되는 복수 개의 단위 뉴런 회로를 포함하고,
상기 제어부는,
심층 신경망의 계층 순으로 상기 어레이 영역들을 순차적으로 활성화하고; 그리고
상기 심층 신경망의 계층 순으로 활성화되는 하나의 어레이 영역을 제외한 나머지 어레이 영역이 비활성화되도록 상기 복수 개의 단위 뉴런 회로를 제어하는 재구성 가능한 뉴로모픽 시스템.
A synapse array composed of synaptic elements whose weights vary according to input signals and output signals;
A first bidirectional neuron circuit that outputs input signals in the row direction to the synaptic elements and receives output signals in the row direction from the synaptic elements;
A second bidirectional neuron circuit that outputs input signals in the column direction to the synaptic elements and receives output signals in the column direction from the synaptic elements; And
Includes; a controller configured to configure the neural network by sequentially sequentially assigning array regions that do not overlap each other on the synaptic array.
At least one of the first bidirectional neuron circuit and the second bidirectional neuron circuit includes a plurality of unit neuron circuits connected to the synaptic elements,
The control unit,
Sequentially activating the array regions in a hierarchical order of deep neural networks; And
A reconfigurable neuromorphic system that controls the plurality of unit neuron circuits so that the remaining array regions are deactivated except for one array region activated in the hierarchical order of the deep neural network.
제 1 항에 있어서,
상기 제어부는 상기 시냅스 어레이 상에 할당되는 어레이 영역들의 개수를 조절하여 상기 신경망의 은닉층의 개수를 조절하는 재구성 가능한 뉴로모픽 시스템.
According to claim 1,
The controller is a reconfigurable neuromorphic system that controls the number of hidden layers of the neural network by adjusting the number of array regions allocated on the synaptic array.
삭제delete 제 1 항에 있어서,
상기 단위 뉴런 회로는,
상기 시냅스 소자들로부터 전달되는 행 방향 또는 열 방향의 출력 신호들에 따라 발화하는 뉴런부;
상기 뉴런부에 의해 발화되어 생성되는 행 방향 또는 열 방향의 입력 신호들을 저장하는 저장부; 및
상기 제어부에 의해, 상기 단위 뉴런 회로를 입력 뉴런 또는 출력 뉴런으로 활성화시키거나, 비활성화시키는 스위치부;를 포함하는 재구성 가능한 뉴로모픽 시스템.
According to claim 1,
The unit neuron circuit,
A neuron igniting according to output signals in a row direction or a column direction transmitted from the synaptic elements;
A storage unit for storing input signals in a row direction or a column direction generated and ignited by the neuron unit; And
And a switch unit for activating or deactivating the unit neuron circuit as an input neuron or an output neuron by the control unit.
입력 신호들과 출력 신호들에 따라 가중치가 변화하는 시냅스 소자들로 이루어지는 시냅스 어레이;
행 방향의 입력 신호들을 상기 시냅스 소자들로 출력하고, 상기 시냅스 소자들로부터 행 방향의 출력 신호들을 전달받는 제1 양방향 뉴런 회로;
열 방향의 입력 신호들을 상기 시냅스 소자들로 출력하고, 상기 시냅스 소자들로부터 열 방향의 출력 신호들을 전달받는 제2 양방향 뉴런 회로; 및
상기 시냅스 어레이 상에서 어레이 영역들을 연속적으로 순차 할당하여 신경망을 구성하는 제어부;를 포함하고,
상기 제어부는 심층 신경망의 계층 순으로 상기 어레이 영역들을 순차적으로 활성화하도록 구성되고,
상기 제1 양방향 뉴런 회로 및 상기 제2 양방향 뉴런 회로 중 적어도 하나는 상기 시냅스 소자들에 연결되는 복수 개의 단위 뉴런 회로를 포함하고,
상기 단위 뉴런 회로는,
상기 시냅스 소자들로부터 전달되는 행 방향 또는 열 방향의 출력 신호들에 따라 발화하는 뉴런부;
상기 뉴런부에 의해 발화되어 생성되는 행 방향 또는 열 방향의 입력 신호들을 저장하는 저장부; 및
상기 제어부에 의해, 상기 단위 뉴런 회로를 입력 뉴런 또는 출력 뉴런으로 활성화시키거나, 비활성화시키는 스위치부;를 포함하고,
상기 제어부는 상기 심층 신경망의 계층 순으로 활성화되는 하나의 어레이 영역을 제외한 나머지 어레이 영역이 비활성화되도록 상기 복수 개의 단위 뉴런 회로를 제어하는 재구성 가능한 뉴로모픽 시스템.
A synapse array composed of synaptic elements whose weights vary according to input signals and output signals;
A first bidirectional neuron circuit that outputs input signals in the row direction to the synaptic elements and receives output signals in the row direction from the synaptic elements;
A second bidirectional neuron circuit that outputs input signals in the column direction to the synaptic elements and receives output signals in the column direction from the synaptic elements; And
Includes; a controller configured to configure the neural network by sequentially sequentially assigning array regions on the synapse array.
The control unit is configured to sequentially activate the array regions in a hierarchical order of deep neural networks,
At least one of the first bidirectional neuron circuit and the second bidirectional neuron circuit includes a plurality of unit neuron circuits connected to the synaptic elements,
The unit neuron circuit,
A neuron igniting according to output signals in a row direction or a column direction transmitted from the synaptic elements;
A storage unit for storing input signals in a row direction or a column direction generated and ignited by the neuron unit; And
It includes, by the control unit, a switch unit for activating or deactivating the unit neuron circuit as an input neuron or an output neuron.
The control unit is a reconfigurable neuromorphic system that controls the plurality of unit neuron circuits such that the remaining array regions are deactivated except for one array region activated in the hierarchical order of the deep neural network.
제 5 항에 있어서,
상기 제어부는 상기 제1 양방향 뉴런 회로 및 상기 제2 양방향 뉴런 회로 중 비활성화되는 어레이 영역에 대응하는 단위 뉴런 회로에 전류가 흐르지 않도록 상기 단위 뉴런 회로를 플로팅시키거나 상기 단위 뉴런 회로에 설정된 전압을 인가하는 재구성 가능한 뉴로모픽 시스템.
The method of claim 5,
The control unit floats the unit neuron circuit or applies a voltage set to the unit neuron circuit so that current does not flow in the unit neuron circuit corresponding to the inactive array region of the first bidirectional neuron circuit and the second bidirectional neuron circuit. Reconfigurable neuromorphic system.
제 4 항에 있어서,
상기 제어부는 인접하는 두 개의 어레이 영역들 중 후행하는 어레이 영역의 입력 신호의 개수가 선행하는 어레이 영역의 출력 신호의 개수와 동일하도록, 상기 어레이 영역들을 할당하는 재구성 가능한 뉴로모픽 시스템.
The method of claim 4,
The control unit is a reconfigurable neuromorphic system that allocates the array regions such that the number of input signals of a subsequent array region among the two adjacent array regions is equal to the number of output signals of a preceding array region.
제 7 항에 있어서,
상기 제어부는 선행의 신경망 계층에서 출력 뉴런으로 활성화된 단위 뉴런 회로가 후행의 신경망 계층에서 입력 뉴런으로 활성화되도록 상기 스위치부를 제어하는 재구성 가능한 뉴로모픽 시스템.
The method of claim 7,
The control unit is a reconfigurable neuromorphic system that controls the switch unit so that a unit neuron circuit activated by an output neuron in a preceding neural network layer is activated as an input neuron in a subsequent neural network layer.
제 1 항에 있어서,
상기 제어부는 초기 어레이 영역으로부터 행 방향 및 열 방향으로 번갈아 가면서 상기 어레이 영역들을 연속적으로 순차 할당하는 재구성 가능한 뉴로모픽 시스템.
According to claim 1,
The control unit is a reconfigurable neuromorphic system that sequentially allocates the array areas sequentially, alternately in the row direction and the column direction from the initial array area.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 제 1 항, 제 2 항, 제 4 항 내지 제 9 항 중 어느 한 항의 재구성 가능한 뉴로모픽 시스템에 의해 수행되는 신경망 구성 방법으로서,
입력 신호들과 출력 신호들에 따라 가중치가 변화하는 시냅스 소자들로 이루어지는 단일 시냅스 어레이 상에서 신경망의 계층 순으로 서로 중첩되지 않는 어레이 영역들을 연속적으로 순차 할당하여 상기 신경망을 구성하는 단계;를 포함하고,
상기 신경망을 구성하는 단계는,
제어부에 의해, 심층 신경망의 계층 순으로 상기 어레이 영역들을 순차적으로 활성화하는 단계; 및
상기 제어부에 의해, 상기 심층 신경망의 계층 순으로 활성화되는 하나의 어레이 영역을 제외한 나머지 어레이 영역이 비활성화되도록 상기 시냅스 소자들에 연결되는 복수 개의 단위 뉴런 회로를 제어하는 단계를 포함하는 신경망 구성 방법.
A method of constructing a neural network performed by the reconfigurable neuromorphic system of any one of claims 1, 2, 4 to 9,
Including a step of sequentially configuring the neural network by sequentially allocating array regions that do not overlap with each other in a hierarchical order of neural networks on a single synaptic array consisting of synaptic elements whose weights vary according to input signals and output signals.
The step of constructing the neural network,
Sequentially activating the array regions in a hierarchical order of deep neural networks by a control unit; And
And controlling, by the control unit, a plurality of unit neuron circuits connected to the synaptic elements so that the remaining array regions except for one array region activated in the hierarchical order of the deep neural network are deactivated.
제 16 항에 있어서,
상기 신경망을 구성하는 단계는 상기 시냅스 어레이 상에 할당되는 어레이 영역들의 개수를 조절하여 상기 신경망의 은닉층의 개수를 조절하는 신경망 구성 방법.
The method of claim 16,
The step of configuring the neural network is a method of configuring a neural network to control the number of hidden layers of the neural network by adjusting the number of array regions allocated on the synaptic array.
삭제delete 제 16 항에 있어서,
상기 신경망을 구성하는 단계는 인접하는 두 개의 어레이 영역들 중 후행하는 어레이 영역의 입력 신호의 개수가 선행하는 어레이 영역의 출력 신호의 개수와 동일하도록, 상기 어레이 영역들을 할당하는 신경망 구성 방법.
The method of claim 16,
The method of configuring the neural network is to allocate the array regions such that the number of input signals of a succeeding array region among the two adjacent array regions is equal to the number of output signals of a preceding array region.
제 16 항에 있어서,
상기 신경망을 구성하는 단계는 초기 어레이 영역으로부터 행 방향 및 열 방향으로 번갈아 가면서 상기 어레이 영역들을 연속적으로 순차 할당하는 신경망 구성 방법.
The method of claim 16,
The step of constructing the neural network is a method of constructing a neural network which sequentially allocates the array areas sequentially, alternately in the row direction and the column direction from the initial array area.
KR1020170100384A 2017-08-08 2017-08-08 Reconfigurable neuromorphic system and method of neural network configuration KR102099242B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170100384A KR102099242B1 (en) 2017-08-08 2017-08-08 Reconfigurable neuromorphic system and method of neural network configuration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170100384A KR102099242B1 (en) 2017-08-08 2017-08-08 Reconfigurable neuromorphic system and method of neural network configuration

Publications (2)

Publication Number Publication Date
KR20190016311A KR20190016311A (en) 2019-02-18
KR102099242B1 true KR102099242B1 (en) 2020-04-10

Family

ID=65561437

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170100384A KR102099242B1 (en) 2017-08-08 2017-08-08 Reconfigurable neuromorphic system and method of neural network configuration

Country Status (1)

Country Link
KR (1) KR102099242B1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102449896B1 (en) * 2019-04-01 2022-09-30 삼성전자주식회사 Neuron network semiconductor device based on phase change material
KR102314079B1 (en) * 2019-05-23 2021-10-18 포항공과대학교 산학협력단 Artificial Neural Network Hardware System using Fuse Device and Pruning Method Using the Same
KR102380584B1 (en) * 2019-07-04 2022-03-31 한국과학기술연구원 Neuromodule device and signaling method performed on the same
US11630992B2 (en) 2019-07-05 2023-04-18 Electronics And Telecommunications Research Institute Neural network generation method for neuromorphic computing and apparatus for the same
US11054997B2 (en) * 2019-08-12 2021-07-06 Micron Technology, Inc. Artificial neural networks in memory
KR102344974B1 (en) * 2020-06-30 2021-12-29 연세대학교 산학협력단 Neuromorphic device and neuromorphic device array
KR102644026B1 (en) * 2023-06-16 2024-03-06 주식회사 킨스텍 Ai-based lonely death management system and control box included in the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100445264B1 (en) 2002-11-06 2004-08-21 학교법인 인하학원 Hardware of reconfigurable and expandable neural networks
US20100241601A1 (en) 2009-03-20 2010-09-23 Irvine Sensors Corporation Apparatus comprising artificial neuronal assembly
US20120317062A1 (en) * 2011-04-08 2012-12-13 International Business Machines Corporation Reconfigurable and customizable general-purpose circuits for neural networks
KR101701250B1 (en) * 2015-08-03 2017-02-01 서울대학교산학협력단 Multi-layered neuron array for deep belief network and neuron array operating method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH064504A (en) * 1992-06-18 1994-01-14 Matsushita Electric Ind Co Ltd Neural network circuit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100445264B1 (en) 2002-11-06 2004-08-21 학교법인 인하학원 Hardware of reconfigurable and expandable neural networks
US20100241601A1 (en) 2009-03-20 2010-09-23 Irvine Sensors Corporation Apparatus comprising artificial neuronal assembly
US20120317062A1 (en) * 2011-04-08 2012-12-13 International Business Machines Corporation Reconfigurable and customizable general-purpose circuits for neural networks
KR101701250B1 (en) * 2015-08-03 2017-02-01 서울대학교산학협력단 Multi-layered neuron array for deep belief network and neuron array operating method

Also Published As

Publication number Publication date
KR20190016311A (en) 2019-02-18

Similar Documents

Publication Publication Date Title
KR102099242B1 (en) Reconfigurable neuromorphic system and method of neural network configuration
US10741258B2 (en) Memory configured to generate a data value from a data line connected to more than one string of series-connected memory cells
KR102608248B1 (en) Neural network hardware accelerator architectures and operating method thereof
US11361216B2 (en) Neural network circuits having non-volatile synapse arrays
JP6844013B2 (en) Neural network arithmetic circuit and operation method using semiconductor memory element
US11620505B2 (en) Neuromorphic package devices and neuromorphic computing systems
US20210125045A1 (en) Stacked neuromorphic devices and neuromorphic computing systems
JPH01223559A (en) N-dimensional coulomb nerve network
US20210183438A1 (en) Three-dimensional neuromorphic device including switching element and resistive element
KR102121562B1 (en) Neuromorphic device using 3d crossbar memory
KR102567160B1 (en) Neural network circuit with non-volatile synaptic array
Kang et al. A spiking neural network with a global self-controller for unsupervised learning based on spike-timing-dependent plasticity using flash memory synaptic devices
US11437103B2 (en) Memory cells configured to generate weighted inputs for neural networks
KR20200110582A (en) Synapse string and synapse string array for neural networks
CN112819134B (en) Memory device including neural network processing circuitry
KR20190131403A (en) Neuromorphic apparatus having 3d stacked synaptic structure and memory apparatus having the same
KR102114356B1 (en) Neuromorphic device using 3d crossbar memory
EP4216218A1 (en) Spiking neural network device, nonvolatile memory device, and operation method thereof
KR20230005309A (en) Efficient Tile Mapping for Row-by-Row Convolutional Neural Network Mapping for Analog Artificial Intelligence Network Inference
CN117271435B (en) Memristor-based in-memory logic circuit and full-array parallel computing method
KR20230106484A (en) Spiking neural network device, nonvolatile memory device and operation method thereof
KR102612011B1 (en) Artificial Neuromorphic Device and Methode of operating the same
TWI734604B (en) Inference operation method and controlling circuit of 3d nand artificial intelligence accelerator
CN111656371B (en) Neural network circuit with nonvolatile synaptic arrays
US11210582B2 (en) Neuromorphic device having a plurality of synapse blocks sharing a common logic element

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)