KR20210004343A - Method for operating spikes in a neuromodule device - Google Patents

Method for operating spikes in a neuromodule device Download PDF

Info

Publication number
KR20210004343A
KR20210004343A KR1020190080627A KR20190080627A KR20210004343A KR 20210004343 A KR20210004343 A KR 20210004343A KR 1020190080627 A KR1020190080627 A KR 1020190080627A KR 20190080627 A KR20190080627 A KR 20190080627A KR 20210004343 A KR20210004343 A KR 20210004343A
Authority
KR
South Korea
Prior art keywords
address
neuron
synaptic
spiking
index
Prior art date
Application number
KR1020190080627A
Other languages
Korean (ko)
Other versions
KR102355611B1 (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 KR1020190080627A priority Critical patent/KR102355611B1/en
Publication of KR20210004343A publication Critical patent/KR20210004343A/en
Application granted granted Critical
Publication of KR102355611B1 publication Critical patent/KR102355611B1/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements

Landscapes

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

Abstract

The present invention relates to a method for operating spikes in a neuromorphic device, comprising the steps of: (a) receiving an address of a spiking neuron; (b) providing an index address concurrently designating a previous and a posterior neuron element existing at each of a plurality of parallel look-up table (LUT) modules divided according to a first synapse address among synapse addresses; (c) providing at least one between a presynaptic neuron address and a postsynaptic neuron address existing at the previous and the posterior neuron element according to the index address; (d) comparing the spiking neuron address with one between the presynaptic neuron address and the postsynaptic neuron address; and (e) when a coincidence is generated through the comparison, merging the first synapse address with the index address outputs the merged address as the address of a synapse connected to the spiking neuron. The present invention processes spike routing rapidly to provide arbitrary updates with respect to a synapse weighting factor.

Description

뉴로모픽 장치의 스파이크 연산 방법{METHOD FOR OPERATING SPIKES IN A NEUROMODULE DEVICE}Spikes calculation method of neuromorphic device {METHOD FOR OPERATING SPIKES IN A NEUROMODULE DEVICE}

본 발명은 뉴로모픽 장치의 스파이크 연산 기술에 관한 것으로, 보다 상세하게는 룩업 테이블 기반의 재구성 가능한 신경망 아키텍쳐를 기초로 뉴런 및 시냅스 간의 스파이크 연산을 수행하는 뉴로모픽 장치의 스파이크 연산 방법에 관한 것이다.The present invention relates to a technique for calculating a spike in a neuromorphic device, and more particularly, to a method for calculating a spike in a neuromorphic device that performs a spike operation between a neuron and a synapse based on a reconfigurable neural network architecture based on a lookup table. .

딥러닝(deep learning) 기술은 고정밀 얼굴인식, 자동 이미지 색상화 및 게임 마스터링 등 다양한 작업에서 뛰어난 성공으로 인해 엄청난 관심을 모으고 있다. 이러한 성공은 심층 신경망에 주로 기인한다. 일반적으로, 그러한 네트워크들은 비록 텐서 프로세싱 유닛과 같은 애플리케이션에 특화된 집적회로에 의해 주로 전원이 공급되지만 사실상 범용 하드웨어 상에서 구축된다. 이러한 지속적인 성공에도 불구하고, 작업 복잡성과 관련하여 필요한 기계 성능의 천문학적인 예상치에 따라 회의적인 견해가 나타나고 있다. 이와 반대로, 인간의 뇌는 단지 약 15W를 소비하는 제한된 시냅스 연산들(약 1015 SynOP/s)에 의해 높은 복잡성의 작업을 수행할 수 있다. Deep learning technology is attracting tremendous attention due to its outstanding success in various tasks such as high-precision face recognition, automatic image colorization and game mastering. This success is mainly due to deep neural networks. In general, such networks are built on general purpose hardware, although primarily powered by application-specific integrated circuits such as tensor processing units. Despite this continued success, skepticism has emerged with astronomical estimates of the required machine performance in relation to the complexity of the operation. Conversely, the human brain can perform high-complexity tasks with limited synaptic operations (about 1015 SynOP/s) that consume only about 15W.

뉴로모픽 엔지니어링(Neuromorphic engineering)은 인간의 두뇌와 같이 에너지 효율적인 방식으로 작업을 수행하는 기능을 실현하기 위해 실리콘 웨이퍼에 생물학적으로 그럴듯한 스파이크 신경망(SNN)을 구축하는 것을 목표로 하고 있다. 뉴로모픽 시스템은 시냅스를 통해 상호 연결되는 뉴런을 사용하여 구축될 수 있다. 뉴런과 시냅스의 구현은 다양하며, 표준 CMOS 기술에 기반한 아날로그 및/또는 디지털 집적 회로(IC)가 일반적이다.Neuromorphic engineering aims to build biologically plausible Spike Neural Networks (SNNs) on silicon wafers to realize the ability to perform tasks in an energy-efficient way like the human brain. Neuromorphic systems can be built using neurons that are interconnected through synapses. The implementation of neurons and synapses varies, and analog and/or digital integrated circuits (ICs) based on standard CMOS technology are common.

한국공개특허 제10-2018-0093245(2018.08.21)호는 뉴로모픽 연산 장치에 관한 것으로, 아날로그 방식으로 처리된 연산의 결과를 디지털 값으로 변환하여 출력하는 뉴로모픽 연산 장치를 제공하는 기술을 개시하고 있다.Korean Patent Laid-Open Publication No. 10-2018-0093245 (2018.08.21) relates to a neuromorphic calculation device, a technology providing a neuromorphic calculation device that converts and outputs a result of an operation processed in an analog manner into a digital value. Is being disclosed.

한국공개특허 제10-2019-0008670(2019.01.25)호는 뉴런회로 및 이를 포함하는 뉴로모픽 시스템에 관한 것으로, 비선형적 저항 특성을 가지는 시냅스 소자의 인식률 향상을 위한 뉴런회로를 제공하고, 뉴런회로를 포함하는 뉴로모픽 시스템을 제공하는 기술을 개시하고 있다.Korean Patent Laid-Open Publication No. 10-2019-0008670 (2019.01.25) relates to a neuron circuit and a neuromorphic system including the same, and provides a neuron circuit for improving the recognition rate of a synaptic device having a nonlinear resistance characteristic. Disclosed is a technology for providing a neuromorphic system including a circuit.

한국공개특허 제10-2018-0093245(2018.08.21)호Korean Patent Publication No. 10-2018-0093245 (2018.08.21) 한국공개특허 제10-2019-0008670(2019.01.25)호Korean Patent Publication No. 10-2019-0008670 (2019.01.25)

본 발명의 일 실시예는 룩업 테이블 기반의 재구성 가능한 신경망 아키텍쳐를 기초로 뉴런 및 시냅스 간의 스파이크 연산을 수행하는 뉴로모픽 장치의 스파이크 연산 방법을 제공하고자 한다.An embodiment of the present invention is to provide a method for calculating a spike in a neuromorphic device that performs a spike operation between a neuron and a synapse based on a reconfigurable neural network architecture based on a lookup table.

본 발명의 일 실시예는 온칩 학습을 위하여 룩업 테이블 판독 기술을 이용하여 스파이크 라우팅을 처리할 수 있는 뉴로모픽 장치의 스파이크 연산 방법을 제공하고자 한다.An embodiment of the present invention is to provide a spike calculation method of a neuromorphic device capable of processing spike routing by using a lookup table reading technique for on-chip learning.

본 발명의 일 실시예는 다수의 분할된 파티션에 대해 병렬적인 탐색을 수행함으로써 스파이크 라우팅을 고속으로 처리하여 시냅스 가중치에 대한 임의 업데이트를 제공할 수 있는 뉴로모픽 장치의 스파이크 연산 방법을 제공하고자 한다.An embodiment of the present invention is to provide a method for calculating a spike in a neuromorphic device capable of providing random updates to synaptic weights by processing spike routing at high speed by performing parallel search on a plurality of partitions. .

실시예들 중에서, 뉴로모픽 장치의 스파이크 연산 방법은(a) 스파이킹 뉴런의 주소를 수신하는 단계, (b) 시냅스 주소 중 제1 시냅스 주소로 분할된 복수의 병렬 LUT(Look-up Table) 모듈들 각각에 있는 전후 뉴런 엘리먼트를 동시에 지정하는 인덱스 주소를 제공하는 단계, (c) 상기 인덱스 주소에 따라 상기 전후 뉴런 엘리먼트에 있는 프리시냅틱 뉴런 및 포스트시냅틱 뉴런의 주소 중 적어도 하나를 제공하는 단계, (d) 상기 스파이킹 뉴런의 주소를 상기 프리시냅틱 뉴런 또는 상기 포스트시냅틱 뉴런의 주소 중 하나와 비교하는 단계 및 (e) 상기 비교를 통해 일치가 발생되면 상기 제1 시냅스 주소와 상기 인덱스 주소를 병합하여 상기 스파이킹 뉴런과 연결된 시냅스의 주소로서 출력하는 단계를 포함한다.Among the embodiments, a method for calculating a spike of a neuromorphic device includes: (a) receiving an address of a spiking neuron, (b) a plurality of parallel look-up tables (LUTs) divided into a first synaptic address among synaptic addresses. Providing an index address that simultaneously designates anterior and posterior neuron elements in each of the modules, (c) providing at least one of addresses of presynaptic neurons and post-synaptic neurons in the anterior and posterior neuron elements according to the index address, (d) comparing the address of the spiking neuron with one of the addresses of the presynaptic neuron or the post-synaptic neuron, and (e) merging the first synaptic address and the index address when a match occurs through the comparison And outputting the address of the synapse connected to the spiking neuron.

상기 (b) 단계는 상기 전후 뉴런 엘리먼트를 처음부터 끝까지 순차적으로 지정하여 상기 인덱스 주소를 제공하는 단계를 포함할 수 있다.The step (b) may include providing the index address by sequentially designating the front and rear neuron elements from start to finish.

상기 (b) 단계는 상기 비교를 통해 상기 일치가 발생되면 상기 인덱스 주소의 제공을 잠시 멈춤하는 단계를 더 포함할 수 있다.The step (b) may further include temporarily stopping the provision of the index address when the match occurs through the comparison.

상기 (b) 단계는 상기 일치와 연관되어 시냅스의 주소에 관한 출력이 완료된 경우 상기 인덱스 주소의 제공을 재개하는 단계를 포함할 수 있다.The step (b) may include restarting the provision of the index address when the output of the synaptic address is completed in association with the match.

상기 (c) 단계는 상기 인덱스 주소에 따라 상기 전후 뉴런 엘리먼트에 있는 프리시냅틱 뉴런 및 포스트시냅틱 뉴런의 주소를 함께 제공하는 단계를 포함할 수 있다.The step (c) may include providing addresses of presynaptic neurons and post synaptic neurons in the front and rear neuron elements according to the index address.

상기 (d) 단계는 상기 비교를 통해 상기 일치가 발생되면 시냅스 갱신을 위한 트리거 신호를 출력하는 단계를 포함할 수 있다.The step (d) may include outputting a trigger signal for synaptic update when the match occurs through the comparison.

상기 (d) 단계는 상기 일치가 발생한 뉴런이 프리시냅틱 뉴런인지 포스트시냅틱 뉴런인지에 따라 스파이크 진행 신호를 결정하는 단계를 포함할 수 있다.The step (d) may include determining a spike progress signal according to whether the matched neuron is a presynaptic neuron or a post-synaptic neuron.

상기 (e) 단계는 상기 제1 시냅스 주소를 상위 비트열로 상기 인덱스 주소를 하위 비트열로 병합하여 상기 시냅스의 주소를 완성하는 단계를 포함할 수 있다.The step (e) may include completing the address of the synapse by merging the first synaptic address into an upper bit string and the index address into a lower bit string.

실시예들 중에서, 뉴로모픽 장치의 스파이크 연산 방법은 (a) 스파이킹 뉴런을 검출하는 단계, (b) 상기 스파이킹 뉴런의 주소를 수신하는 단계, (c) 상기 스파이킹 뉴런의 주소를 기초로 복수의 병렬 LUT(Look-up Table) 모듈들 각각을 동시에 지정하여 프리시냅틱 뉴런 및 포스트시냅틱 뉴런의 주소 중 적어도 하나를 결정하는 단계, (d) 상기 스파이킹 뉴런의 주소 및 상기 프리시냅틱 뉴런 또는 포스트시냅틱 뉴런의 주소를 비교하는 단계 및 (e) 상기 비교를 통해 일치가 발생되면 해당 병렬 LUT 모듈의 모듈 주소와 상기 해당 병렬 LUT 모듈에서 상기 프리시냅틱 뉴런 또는 포스트시냅틱 뉴런의 주소에 해당하는 인덱스 주소를 병합하여 상기 스파이킹 뉴런과 연결된 시냅스의 주소로서 출력하는 단계를 포함한다.Among the embodiments, a method of calculating a spike of a neuromorphic device includes (a) detecting a spiking neuron, (b) receiving an address of the spiking neuron, (c) based on the address of the spiking neuron. Determining at least one of addresses of a presynaptic neuron and a postsynaptic neuron by simultaneously designating each of a plurality of parallel Look-up Table (LUT) modules, (d) the address of the spiking neuron and the presynaptic neuron or Comparing the address of the post-synaptic neuron and (e) if a match occurs through the comparison, the module address of the parallel LUT module and the index address corresponding to the address of the presynaptic neuron or the post-synaptic neuron in the parallel LUT module And outputting as an address of a synapse connected to the spiking neuron by merging.

개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technology can have the following effects. However, since it does not mean that a specific embodiment should include all of the following effects or only the following effects, it should not be understood that the scope of the rights of the disclosed technology is limited thereby.

본 발명의 일 실시예에 따른 뉴로모픽 장치의 스파이크 연산 방법은 온칩 학습을 위하여 룩업 테이블 판독 기술을 이용하여 스파이크 라우팅을 처리할 수 있다.The spike calculation method of a neuromorphic device according to an embodiment of the present invention may process spike routing using a lookup table reading technique for on-chip learning.

본 발명의 일 실시예에 따른 뉴로모픽 장치의 스파이크 연산 방법은 다수의 분할된 파티션에 대해 병렬적인 탐색을 수행함으로써 스파이크 라우팅을 고속으로 처리하여 시냅스 가중치에 대한 임의 업데이트를 제공할 수 있다.The spike calculation method of a neuromorphic device according to an embodiment of the present invention may perform spike routing at high speed by performing parallel search on a plurality of partitioned partitions to provide arbitrary updates to synaptic weights.

도 1은 본 발명의 일 실시예에 따른 뉴로모픽 장치를 설명하는 도면이다.
도 2는 뉴런 및 시냅스로 구성된 네트워크의 일 실시예를 설명하는 도면이다.
도 3은 도 1의 토폴로지 블록에서 사용되는 LUT를 설명하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 뉴로모픽 장치에서 사용하는 신호들을 설명하는 도면이다.
도 5는 RAM 기법 및 CAM 기법을 설명하는 도면이다.
도 6은 도 1의 토폴로지 블록에서의 동작을 설명하는 도면이다.
도 7은 서로 다른 라우팅 기법들에 대해 최대 네트워크 크기에 관한 실험 결과를 설명하는 도면이다.
도 8은 본 발명의 일 실시예에 따른 뉴로모픽 장치의 기능적 구성을 설명하는 블록도이다.
도 9는 본 발명의 일 실시예에 따른 뉴로모픽 장치에서 수행되는 스파이킹 연산 과정을 설명하는 순서도이다.
1 is a diagram illustrating a neuromorphic device according to an embodiment of the present invention.
2 is a diagram illustrating an embodiment of a network composed of neurons and synapses.
3 is a diagram illustrating an LUT used in the topology block of FIG. 1.
4 is a diagram illustrating signals used in a neuromorphic device according to an embodiment of the present invention.
5 is a diagram illustrating a RAM technique and a CAM technique.
6 is a diagram for explaining an operation in the topology block of FIG. 1.
7 is a diagram illustrating experimental results for a maximum network size for different routing techniques.
8 is a block diagram illustrating a functional configuration of a neuromorphic device according to an embodiment of the present invention.
9 is a flowchart illustrating a spiking operation process performed in a neuromorphic device according to an embodiment of the present invention.

본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.Since the description of the present invention is merely an embodiment for structural or functional description, the scope of the present invention should not be construed as being limited by the embodiments described in the text. That is, since the embodiments can be variously changed and have various forms, the scope of the present invention should be understood to include equivalents capable of realizing the technical idea. In addition, since the object or effect presented in the present invention does not mean that a specific embodiment should include all of them or only those effects, the scope of the present invention should not be understood as being limited thereto.

한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of terms described in the present application should be understood as follows.

"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as "first" and "second" are used to distinguish one component from other components, and the scope of rights is not limited by these terms. For example, a first component may be referred to as a second component, and similarly, a second component may be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being "connected" to another component, it should be understood that although it may be directly connected to the other component, another component may exist in the middle. On the other hand, when it is mentioned that a certain component is "directly connected" to another component, it should be understood that no other component exists in the middle. On the other hand, other expressions describing the relationship between the constituent elements, that is, "between" and "just between" or "neighboring to" and "directly neighboring to" should be interpreted as well.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions are to be understood as including plural expressions unless the context clearly indicates otherwise, and terms such as “comprise” or “have” refer to implemented features, numbers, steps, actions, components, parts, or It is to be understood that it is intended to designate that a combination exists and does not preclude the presence or addition of one or more other features or numbers, steps, actions, components, parts, or combinations thereof.

각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (for example, a, b, c, etc.) is used for convenience of explanation, and the identification code does not describe the order of each step, and each step has a specific sequence clearly in context. Unless otherwise stated, it may occur differently from the stated order. That is, each of the steps may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can be embodied as computer-readable codes on a computer-readable recording medium, and the computer-readable recording medium includes all types of recording devices storing data that can be read by a computer system. . Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices. Further, the computer-readable recording medium is distributed over a computer system connected by a network, so that the computer-readable code can be stored and executed in a distributed manner.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the field to which the present invention belongs, unless otherwise defined. Terms defined in commonly used dictionaries should be construed as having meanings in the context of related technologies, and cannot be construed as having an ideal or excessive formal meaning unless explicitly defined in the present application.

뉴로모픽(neuromorphic) 시스템은 시냅스를 통해 상호 연결되는 뉴런을 사용하여 구축될 수 있다. 뉴런과 시냅스의 구현은 다양하며, 표준 CMOS(complementary metal oxide semiconductor) 기술에 기반한 아날로그 및/또는 디지털 집적 회로(IC)가 일반적이다. 몇몇 새로운 접근들로는 상변화 메모리(phasechange memory), 자기 터널 접합(magnetic tunnel junctions), 휘발성 임계 스위치(volatile threshold switches) 및 플로팅 게이트 트랜지스터(floating-gate transistors) 등의 새로운 장치들을 이용하고 있다. 뉴런들 간의 이벤트 라우팅(event routing) 방법은 일반적으로 i)전용 라우팅 방식과 ii)LUT(lookup table) 기반 라우팅 방식으로 분류할 수 있다.Neuromorphic systems can be built using neurons that are interconnected through synapses. Neurons and synapses are implemented in various ways, and analog and/or digital integrated circuits (ICs) based on standard CMOS (complementary metal oxide semiconductor) technology are common. Some new approaches are using new devices such as phase change memory, magnetic tunnel junctions, volatile threshold switches and floating-gate transistors. In general, event routing between neurons can be classified into i) a dedicated routing method and ii) a lookup table (LUT) based routing method.

전용 라우팅 기법에서, 뉴런은 하드와이어(hardwires) 또는 인코더-디코더 쌍(encoder-decoder pairs)에 의해 직접 할당되는 시냅스 집합을 통해 연결될 수 있다. 이러한 방식은 세미 또는 완전 병렬(semi- or fully parallel) 이벤트 라우팅 프로토콜이 빠른 뉴런 및 시냅스 IC를 목표로 하지 않더라도 SNN의 실시간 연산을 지원할 수 있다는 장점을 가질 수 있다.In a dedicated routing scheme, neurons can be connected via hardwires or a set of synapses that are directly assigned by encoder-decoder pairs. This method may have the advantage that a semi- or fully parallel event routing protocol can support real-time computation of SNNs even if they do not target fast neurons and synaptic ICs.

그러나, 제한적인 재구성 가능성(reconfigurability)은 N2 프로그램 가능한 시냅스들이 N개의 뉴런들에 대해 적용되지 않을 경우 단점으로 작용할 수 있다. 완전 연결 네트워크의 사용은 관심 네트워크에 따라 제한될 수 있고, 예를 들어, 피드백 연결을 갖는 보상 예측 네트워크는 특정한 고유 시냅스 경로를 보유하고, 학습은 그러한 경로를 따라 가중치를 변화시킬 수 있다. 따라서, N2 시냅스들의 오직 일부만이 이 경우에 사용될 수 있고 시냅스 중복(synapse redundancy) 문제에 노출될 수 있다. However, the limited reconfigurability can act as a disadvantage if N 2 programmable synapses are not applied to N neurons. The use of a fully connected network may be limited depending on the network of interest, for example, a reward prediction network with a feedback connection has a specific unique synaptic path, and learning may change weights along that path. Thus, only some of the N 2 synapses can be used in this case and can be exposed to the problem of synapse redundancy.

LUT 기반 라우팅 기법은 연결을 물리적으로 구현하는 대신 LUT의 전체 뉴런의 연결들을 표로 작성하고 LUT에 따라 이벤트를 전송함으로써 이 문제를 해결할 수 있다. 즉, 시냅스 배열의 모든 시냅스들은 재구성 가능성을 최대한 활용하도록 해당 네트워크 아키텍처에 따라 임의의 쌍의 뉴런에 사용될 수 있다.The LUT-based routing technique solves this problem by tabulating the connections of all neurons in the LUT and sending events according to the LUT, instead of physically implementing the connection. In other words, all synapses in the synaptic array can be used for any pair of neurons according to the network architecture in order to maximize the reconfigurability.

결과적으로, N2보다 훨씬 적은 수의 내장된 시냅스들로 재구성 가능성이 유지될 수 있다. 이 라우팅 기법은 단일 뉴로모픽 코어뿐만 아니라 SpiNNaker, TrueNorth, Neurogrid, HiAER, DYNAPs 및 Loihi와 같은 대규모 멀티코어 뉴로모픽 시스템에도 적용될 수 있다. 대부분의 이러한 예들은 각 스파이크에 방출 뉴런의 주소를 표시하고 순차 전송을 위해 스파이크를 큐에 넣는 AER (Address Event Representation) 프로토콜을 기반으로 한다. As a result, the possibility of reconfiguration can be maintained with a much smaller number of embedded synapses than N 2 . This routing technique can be applied not only to single neuromorphic cores, but also to large multicore neuromorphic systems such as SpiNNaker, TrueNorth, Neurogrid, HiAER, DYNAPs and Loihi. Most of these examples are based on the Address Event Representation (AER) protocol, which marks each spike with the address of the emitting neuron and queues the spikes for sequential transmission.

AER 프로토콜은 표준 메모리 기술을 사용하여 쉽게 적용할 수 있지만 높은 클럭 속도를 필요로 한다. 더욱이, 대규모 뉴로모픽 시스템들은 종종 "추론"(온칩 학습은 포함되지 않음)에만 적합할 수 있다. 온칩 로컬 학습은 지역 정보에만 의존하는 로컬 학습 규칙에서 시냅스 가중치 업데이트를 기반으로 할 수 있고, 실시간 온칩 로컬 학습의 주된 어려움은 상당한 시간을 소비하여 실시간 학습을 방해하는 역-룩업 (inverse lookup)으로부터 발생할 수 있다.The AER protocol is easily adaptable using standard memory technology, but requires a high clock rate. Moreover, large-scale neuromorphic systems are often only suitable for "inference" (not including on-chip learning). On-chip local learning can be based on updating synaptic weights in local learning rules that rely only on local information, and the main difficulty of real-time on-chip local learning arises from inverse lookup, which consumes considerable time and interferes with real-time learning. I can.

도 1은 본 발명의 일 실시예에 따른 뉴로모픽 장치를 설명하는 도면이다.1 is a diagram illustrating a neuromorphic device according to an embodiment of the present invention.

도 1을 참조하면, 뉴로모픽 장치(100)는 시냅스 블록, 뉴런 블록, 큐 레지스터 블록(110) 및 토폴로지 블록을 포함할 수 있다.Referring to FIG. 1, the neuromorphic device 100 may include a synapse block, a neuron block, a queue register block 110 and a topology block.

뉴로모픽 장치(100)는 재구성 가능한 스파이킹 신경망의 집적화를 위해 신경망 내 신호 전달을 위한 아키텍쳐에 해당할 수 있다. 또한, 뉴로모픽 장치(100)는 뉴로모픽 코어(neuromorphic core)에 해당할 수 있고, 하나의 시스템으로 구현되어 동작할 수 있다.The neuromorphic device 100 may correspond to an architecture for signal transmission in a neural network in order to integrate a reconfigurable spiking neural network. In addition, the neuromorphic device 100 may correspond to a neuromorphic core, and may be implemented and operated as a single system.

뉴로모픽 장치(100)에서 동작하는 스파이크(spike)의 신호 전달은 다음과 같이 동작할 수 있다. 스파이크가 발생한 뉴런의 주소(address)가 큐 레지스터(Queue register) 블록에 임시로 저장되어 핸드셰이킹 프로토콜(handshaking protocol)을 따라 토폴로지 블록의 허가(ACK)를 기다릴 수 있다. 토폴로지 블록의 허가와 동시에 뉴런의 주소가 토폴로지 블록으로 전달되어 모든 뉴런의 연결 정보를 기록하고 있는 룩업 테이블(LookUp Table, 이하 LUT)을 읽기 시작하며 이 뉴런과 연결을 하고 있는 모든 뉴런의 정보를 검색할 수 있다. 연결 관계에 있는 뉴런의 정보를 순차적으로 파악하여 즉시 해당 뉴런을 스파이크를 전달하며 이 때, 시냅스 블록에 해당 연결의 연결 가중치가 더해져 시냅스 후(postsynaptic) 뉴런으로 정보가 전달되며 이와 동시에 시냅스후 뉴런의 멤브레인 전위를 증가시킬 수 있다.Signal transmission of a spike operating in the neuromorphic device 100 may operate as follows. The address of the neuron where the spike has occurred is temporarily stored in a queue register block, so that it can wait for an acknowledgment (ACK) of the topology block according to the handshaking protocol. Upon permission of the topology block, the address of the neuron is transferred to the topology block and starts reading the LookUp Table (LUT), which records the connection information of all neurons, and retrieves information of all neurons connected to this neuron. can do. The information of neurons in the connection relationship is sequentially identified and the spike is immediately transmitted to the neuron. At this time, the connection weight of the connection is added to the synaptic block, and the information is transferred to the postsynaptic neuron. At the same time, the information is transferred to the postsynaptic neuron. It can increase the membrane potential.

뉴로모픽 장치(100)는 추론(inference) 뿐 아니라 온칩학습(on-chip learning)의 구현을 가능하게 하며, 시냅스의 연결 관계 및 시냅스 전/후(pre and postsynaptic) 뉴런의 스파이크 타이밍을 고려하여 온칩학습이 가능한 실시간 연결가중치 업데이트가 가능한 장점이 있다.The neuromorphic device 100 enables implementation of on-chip learning as well as inference, and considers the connection relationship of synapses and spike timing of pre and postsynaptic neurons. It has the advantage of enabling real-time connection weight updates that enable on-chip learning.

시냅스 블록은 복수의 시냅스들로 구성된 시냅스 배열(array)을 포함할 수 있고, 복수의 시냅스들 각각은 시냅스 주소를 고유적으로 가질 수 있다. 즉, 시냅스 배열은 특정 시냅스를 나타내는 S_ADR 포인터로 지정될 수 있다.The synaptic block may include a synaptic array composed of a plurality of synapses, and each of the plurality of synapses may uniquely have a synaptic address. That is, the synaptic arrangement may be designated as an S_ADR pointer indicating a specific synapse.

뉴런 블록은 복수의 뉴런들로 구성된 뉴런 배열을 포함할 수 있고, 복수의 뉴런들 각각은 뉴런의 주소를 고유적으로 가질 수 있다. 즉, 뉴런 배열은 특정 뉴런을 나타내는 POST_ADR 포인터로 지정될 수 있다. 또한, 각 뉴런들은 외부에서 EXT_ADR 포인터를 통해 지정될 수 있고, EXT_SPIKE 신호에 의해 시뮬레이션될 수 있다.The neuron block may include a neuron array composed of a plurality of neurons, and each of the plurality of neurons may uniquely have an address of a neuron. That is, the neuron array may be designated as a POST_ADR pointer indicating a specific neuron. In addition, each neuron may be externally designated through the EXT_ADR pointer, and may be simulated by the EXT_SPIKE signal.

큐 레지스터 블록(110)은 스파이크의 순차적인 전송을 위하여 뉴런에서 발생한 스파이킹 시간 순서에 따라 뉴런의 주소를 저장하는 표준 FIFO(First In First Out) 버퍼에 해당할 수 있다. 특정 뉴런이 스파이크를 발생시킨 경우 해당 뉴런의 주소(N_ADR)가 전송되어 큐 레지스터 블록(110)에 저장될 수 있다. 큐 레지스터 블록(110)은 핸드셰이크 프로토콜을 통해 토폴로지 블록과 통신할 수 있다. 스파이크에 관한 이벤트를 수신한 경우, 큐 레지스터 블록(110)은 큐(queue)로부터 이벤트를 제거하기 위하여 토폴로지 블록에게 라우팅 요청 신호(REQ)를 전송할 수 있고, 토폴로지 블록으로부터 승인 신호(ACK)를 기다릴 수 있다.The queue register block 110 may correspond to a standard FIFO (First In First Out) buffer that stores addresses of neurons according to a spiking time sequence generated by neurons for sequential transmission of spikes. When a specific neuron generates a spike, the address (N_ADR) of the neuron may be transmitted and stored in the queue register block 110. The queue register block 110 may communicate with the topology block via a handshake protocol. When receiving an event related to a spike, the queue register block 110 may transmit a routing request signal (REQ) to the topology block to remove the event from the queue, and wait for an acknowledgment signal (ACK) from the topology block. I can.

토폴로지 블록은 이벤트 라우팅(routing) LUT(s)을 저장하는 메모리 배열에 해당할 수 있다. SRAM은 LUT 메모리로 사용되므로 클록 속도 범위(10 ~ 200 MHz)에서 단일 클록 사이클 내에서 읽을 수 있도록 충분히 빠를 수 있다. 일반적으로 사용되는 LUT은 2열 테이블이며 각 열의 길이는 해당 네트워크의 총 시냅스 수와 같을 수 있다. 큐 레지스터 블록(110)으로부터 REQ를 수신한 경우 토폴로지 블록은 유휴(idle) 상태인 경우 ACK를 전송할 수 있고, N_ADR을 읽어 해당 뉴런과 관련된 팬인 및/또는 팬아웃 연결들을 LUT에서 탐색할 수 있다. The topology block may correspond to a memory array that stores event routing LUT(s). Since SRAM is used as LUT memory, it can be fast enough to read within a single clock cycle over the clock rate range (10 to 200 MHz). A commonly used LUT is a two-column table, and the length of each row can be equal to the total number of synapses in the network. When the REQ is received from the queue register block 110, the topology block may transmit an ACK when in an idle state, and the LUT may search for fan-in and/or fan-out connections related to a corresponding neuron by reading N_ADR.

도 2는 뉴런 및 시냅스로 구성된 네트워크의 일 실시예를 설명하는 도면이다. 도 3은 도 1의 토폴로지 블록에서 사용되는 LUT를 설명하는 도면이다.2 is a diagram illustrating an embodiment of a network composed of neurons and synapses. 3 is a diagram illustrating an LUT used in the topology block of FIG. 1.

도 2를 참조하면, LUT는 시냅스 인덱스(또는 주소)에 따라 정렬될 수 있다. 도 2의 네트워크의 경우, 시냅스 73은 각각 1 및 2의 PRE_ADR 및 POST_ADR을 가질 수 있다. 따라서, 도 3에서, 네트워크의 LUT에는 각각 왼쪽과 오른쪽 열에 1과 2가 있는 73번째 행이 존재할 수 있다. 주어진 뉴런이 시냅스 후 뉴런(postsynaptic neuron, 이하 포스트시냅틱 뉴런)인 경우 해당 시냅스는 그 뉴런의 팬인(fan-in) 시냅스에 해당할 수 있다. 예를 들어, 도 2에서, 뉴런 2의 경우 시냅스 74와 75가 이에 해당할 수 있다. 주어진 뉴런이 시냅스 전 뉴런(presynaptic neuron, 이하 프리시냅틱 뉴런)인 시냅스는 팬아웃(fan-out) 시냅스에 해당할 수 있다. 예를 들어, 뉴런 2의 경우 시냅스 73 및 77이 이에 해당할 수 있다.Referring to FIG. 2, LUTs may be aligned according to synaptic indexes (or addresses). In the case of the network of FIG. 2, synapse 73 may have PRE_ADR and POST_ADR of 1 and 2, respectively. Accordingly, in FIG. 3, in the LUT of the network, a 73 th row with 1 and 2 in the left and right columns, respectively, may exist. If a given neuron is a postsynaptic neuron (hereinafter referred to as a postsynaptic neuron), the synapse may correspond to a fan-in synapse of the neuron. For example, in FIG. 2, in the case of neuron 2, synapses 74 and 75 may correspond to this. A synapse in which a given neuron is a presynaptic neuron (hereinafter referred to as a presynaptic neuron) may correspond to a fan-out synapse. For example, in the case of neuron 2, synapses 73 and 77 may correspond to this.

도 4는 본 발명의 일 실시예에 따른 뉴로모픽 장치에서 사용하는 신호들을 설명하는 도면이다.4 is a diagram illustrating signals used in a neuromorphic device according to an embodiment of the present invention.

도 4를 참조하면, 뉴로모픽 장치(100)에서 사용되는 신호들의 표기를 구체적으로 확인할 수 있다. 대표적으로, N_ADR은 이벤트 주소(Event address)에 해당할 수 있고, POST_ADR은 포스트시냅틱 뉴런의 주소에 해당할 수 있으며, S_ADR은 시냅스 주소에 해당할 수 있다. 또한, S_W는 시냅스 가중치에 해당할 수 있다. PRE_ADR은 프리시냅틱 뉴런의 주소에 해당할 수 있고, S_UPD는 시냅스 갱신 신호에 해당할 수 있다. UPD_SEL은 S-ADR이 지정하는 시냅스가 팬인 시냅스인지 팬아웃 시냅스인지를 나타내는 신호에 해당할 수 있다.Referring to FIG. 4, the indication of signals used in the neuromorphic device 100 can be confirmed in detail. Representatively, N_ADR may correspond to an event address, POST_ADR may correspond to an address of a post-synaptic neuron, and S_ADR may correspond to a synaptic address. In addition, S_W may correspond to a synaptic weight. PRE_ADR may correspond to the address of a presynaptic neuron, and S_UPD may correspond to a synaptic update signal. UPD_SEL may correspond to a signal indicating whether the synapse designated by S-ADR is a fan-in synapse or a fan-out synapse.

도 5는 RAM 기법 및 CAM 기법을 설명하는 도면이다. 도 7은 서로 다른 라우팅 기법들에 대해 최대 네트워크 크기에 관한 실험 결과를 설명하는 도면이다.5 is a diagram illustrating a RAM technique and a CAM technique. 7 is a diagram illustrating experimental results for a maximum network size for different routing techniques.

LUT 탐색은 시간을 소비하는 동작에 해당할 수 있다. 즉, 네트워크를 구성하는 시냅스가 많을수록 더 큰 LUT가 필요하므로 더 많은 시간을 소비할 수 있다. 따라서, 이벤트가 큐 레지스터 블록(110)에 쌓일수록 라우팅에서 지연이 발생할 가능성이 높아질 수 있다. 이를 방지하기 위해 총 이벤트 라우팅 시간(Tsrch + Tsend + Tupd)은 큐 레지스터 블록(110)에 동일한 파이프 라인을 공유하는 모든 뉴런으로부터의 모든 스파이크에 대한 평균 ISI(Inter Spike Interval)보다 짧을 필요가 있다. 스파이크 전송이 푸아송(갱신) 과정을 따르는 푸아송 뉴런을 가정하면, 이 상태는 다음의 수학식 1과 같이 표현될 수 있다.LUT discovery may correspond to a time consuming operation. In other words, the more synapses constituting the network, the more time can be consumed because a larger LUT is required. Accordingly, as events accumulate in the queue register block 110, the possibility of a delay in routing may increase. To prevent this, the total event routing time (T srch + T send + T upd ) needs to be shorter than the average Inter Spike Interval (ISI) for all spikes from all neurons sharing the same pipeline in the queue register block 110. There is. Assuming a Poisson neuron in which spike transmission follows a Poisson (update) process, this state can be expressed as Equation 1 below.

[수학식 1][Equation 1]

Figure pat00001
Figure pat00001

여기에서, 1/aN은 푸아송 스파이크에 대한 평균 ISI이며, a와 N은 각 뉴런의 스파이킹 행위(spiking activity)와 총 뉴런 수에 해당할 수 있다. 따라서, 트래픽 정체없이 SNN 크기(N)를 늘리려면 Tsrch, Tsend 및/또는 Tupd를 줄일 필요가 있다. Here, 1/aN is the average ISI for Poisson spikes, and a and N may correspond to the spiking activity of each neuron and the total number of neurons. Therefore, in order to increase the SNN size (N) without traffic congestion, it is necessary to reduce T srch , T send and/or T upd .

도 5를 참조하면, 도 1의 토폴로지 블록에 대해 적용될 수 있는 이벤트 라우팅 기법으로서 RAM 및 CAM 기법을 확인할 수 있다. RAM 및 CAM 기법은 극단적인 두 가지 경우로 LUT의 완전 순차 탐색 및 병렬 탐색을 각각 지원할 수 있다.Referring to FIG. 5, RAM and CAM techniques can be identified as event routing techniques applicable to the topology block of FIG. 1. The RAM and CAM techniques can support full sequential search and parallel search of the LUT in two extreme cases, respectively.

도 5의 그림 (a)에서, RAM 기법은 도 3과 동일하게 구성된 LUT에 대해 단일 RAM 어레이를 사용할 수 있다. LUT는 S*2 행렬(S는 시냅스의 수)에 해당할 수 있다. 시냅스의 수는 네트워크를 구성하는 모든 N개의 뉴런들에 있어서 팬인 뉴런(Fin)의 개수의 합에 해당할 수 있고, 팬아웃 뉴런(Fout)의 개수의 합에 해당할 수 있으며, 다음의 수학식 2와 같이 표현될 수 있다.In Figure 5 (a), the RAM scheme can use a single RAM array for the LUT configured in the same manner as in Figure 3. The LUT may correspond to an S*2 matrix (S is the number of synapses). The number of synapses may correspond to the sum of the number of fan neurons (F in ) in all N neurons constituting the network, and may correspond to the sum of the number of fan-out neurons (F out ). It can be expressed as in Equation 2.

[수학식 2][Equation 2]

Figure pat00002
Figure pat00002

여기에서, Fin i와 Fout i의 위 첨자 i는 뉴런 인덱스에 해당할 수 있다. LUT는 특정 N_ADR을 포함하는 행을 검색하기 위해 주소 포인터(S_ADR)에 의해 접근될 수 있다. 주소 포인터는 인덱스 주소 생성기(ADR GEN)에 의해 생성될 수 있다. LUT는 각 행의 PRE_ADR 및 POST_ADR을 출력하면서 순차적으로 행 단위로 판독될 수 있다. Here, the superscript i of F in i and F out i may correspond to the neuron index. The LUT can be accessed by an address pointer (S_ADR) to retrieve a row containing a specific N_ADR. The address pointer can be generated by the index address generator (ADR GEN). The LUT can be sequentially read row by row while outputting PRE_ADR and POST_ADR of each row.

또한, 비교기(COMP)는 N_ADR과 PRE_ADR(POST_ADR) 사이의 매칭을 검출할 수 있고, 매칭이 검출되면 비교기는 업데이트를 위한 트리거인 S_UPD(= 1)를 출력할 수 있다. 각 열은 단일 클록 사이클 내에서 동시에 판독되고 비교되므로, LUT 탐색 시간은 S/fclk, 즉 Tsrch = S/fclk에 해당할 수 있다. In addition, the comparator COMP may detect a match between N_ADR and PRE_ADR (POST_ADR), and when a match is detected, the comparator may output S_UPD (= 1) as a trigger for updating. Since each column is read and compared simultaneously within a single clock cycle, the LUT seek time may correspond to S/f clk , i.e. T srch = S/f clk .

또한, 스파이크 전송 및 업데이트 프로세스는 모두 LUT 탐색과 동시에 수행할 수 있으므로 Tsend 및 Tupd는 0에 해당할 수 있고, 이 경우, 수학식 1은 S ≤ fclk/(aN)이 되어 최대 시냅스 수는 (Smax)에 해당할 수 있으며, 다음의 수학식 3과 같이 표현될 수 있다.In addition, since both the spike transmission and update process can be performed simultaneously with the LUT search, T send and T upd may correspond to 0, and in this case, Equation 1 becomes S ≤ f clk /(aN), so that the maximum number of synapses May correspond to (S max ), and may be expressed as Equation 3 below.

[수학식 3][Equation 3]

Figure pat00003
Figure pat00003

상이한 클럭 속도에 대한 이러한 관계는 a = 50Hz에 대해 도 7의 그림 a에서 확인할 수 있다. 균일한 뉴런의 상호 연결(uniform neuronal interconnection)을 가정하면, 수학식 2는 S = NFin = NFout에 해당할 수 있다. 이 경우, 최대로 허용된 Fout(Fout_max)은 Fout_max = fclk/(aN2)(도 7의 그림 b)로서 수학식 3으로부터 도출될 수 있다. 즉, RAM 기법은 200MHz 클럭 속도에서 총 200개의 뉴런 각각에 대해 100의 Fout_max를 지원할 수 있다. 이러한 이론적인 추정은 50MHz 클럭 속도로 FPGA에서 구현된 네트워크(N = 100)에서의 실시간 모니터링 이벤트 라우팅에 의해 검증될 수 있다.This relationship for different clock rates can be seen in Figure a in Figure 7 for a = 50 Hz. Assuming uniform neuronal interconnection, Equation 2 may correspond to S = NF in = NF out . In this case, the maximum allowed F out (F out_max ) can be derived from Equation 3 as F out_max = f clk /(aN 2 ) (Fig. 7 b). That is, the RAM technique can support an F out_max of 100 for each of a total of 200 neurons at a clock speed of 200 MHz. This theoretical estimate can be verified by routing of real-time monitoring events in a network (N = 100) implemented in an FPGA at a 50MHz clock rate.

또한, S를 6000에서 14000으로 변경하고(도 7의 그림 a에서 빨간색 파선을 따라) 평균적으로 라우팅 트래픽 정체를 평가할 수 있다-초당 뉴런당 큐 레지스터 블록(110)에 쌓여 있는 평균 이벤트 수 (B)로 파라미터화 될 수 있다. B는 트래픽 정체없이 0에 해당할 수 있다. 모든 뉴런은 a = 50Hz에서 푸아송 스파이크를 만들기 위해 외부에서 시뮬레이션될 수 있다. 도 7의 그림 c에서, S가 수학식 3에서 Smax와 같은 10,000을 초과할 때 이벤트 빌드업(트래픽 정체)이 명백하다는 이론적인 추정을 뒷받침할 수 있다.In addition, we can change S from 6000 to 14000 (along the red dashed line in Figure 7 in Figure 7) and evaluate routing traffic congestion on average-average number of events stacked in queue register block 110 per neuron per second (B). Can be parameterized with B can correspond to 0 without traffic congestion. All neurons can be simulated externally to create Poisson spikes at a = 50Hz. In Fig. 7 c, it is possible to support the theoretical estimation that event build-up (traffic congestion) is apparent when S exceeds 10,000, such as S max in Equation 3.

도 5의 그림 (b)에서, LUT(S*2 행렬)는 CAM 어레이에 저장될 수 있다. 한편, 각 메모리 행은 독립적인 비교기를 가질 수 있다. 스파이크 라우팅 중에 LUT의 모든 행들은 N_ADR을 포함하는 행을 탐색하는 과정에서 한 번에 검색될 수 있고, 모든 행에 대한 검색 결과- “0”(일치하지 않음) 또는 “1”(일치함) -는 버퍼(BUF)에 임시로 저장될 수 있다. In Figure 5 (b), the LUT (S*2 matrix) can be stored in the CAM array. Meanwhile, each memory row can have an independent comparator. During spike routing, all rows in the LUT can be retrieved at once in the process of searching for rows containing N_ADR, and the search result for all rows-“0” (does not match) or “1” (matches)- May be temporarily stored in the buffer BUF.

버퍼는 S개의 엘리먼트 메모리 배열- LUT의 각 행에 대해 하나의 엔트리 -에 해당할 수 있고, 매칭된 시냅스 주소(S_ADR)를 출력하는 우선순위 인코더(priority encoder)에 연결될 수 있다. 버퍼에 있는 “1”의 각 엔트리는 우선순위 인코더에 의해 해당 주소(S_ADR)로 변환될 수 있고, S_UPD(= 1)과 함께 동시에 전송될 수 있다. 다음 클럭 사이클에서, 버퍼에 있는 해당 엔트리는 삭제되고, “1”의 다음 엔트리(존재한다면)가 한번에 전송될 수 있다. 이러한 과정은 버퍼가 공백이 될 때까지 반복될 수 있다.The buffer may correspond to an S element memory array-one entry for each row of the LUT-and may be connected to a priority encoder that outputs the matched synaptic address S_ADR. Each entry of “1” in the buffer can be converted to a corresponding address (S_ADR) by the priority encoder, and can be transmitted simultaneously with S_UPD (= 1). On the next clock cycle, the corresponding entry in the buffer is deleted, and the next entry of "1" (if any) can be transmitted at once. This process can be repeated until the buffer becomes empty.

CAM 기법의 검색 시간 Tsrch는 CAM 매칭 대기시간(latency)과 매칭 데이터를 버퍼에 전송하는데 필요한 시간을 합한 것에 해당할 수 있다. CAM이 클럭 속도 범위 내에서 충분히 빠르다고 가정하면, 상기 두 동작 모두 단일 클럭 사이클 내에서 수행될 수 있고, 따라서, Tsrch = 1/fclk에 해당할 수 있다. The search time T srch of the CAM scheme may correspond to the sum of the CAM matching latency and the time required to transmit the matching data to the buffer. Assuming that the CAM is fast enough within the clock speed range, both of the above operations can be performed within a single clock cycle, and thus, T srch = 1/f clk .

또한, 스파이크 전송 시간 Tsend는 버퍼의 모든 매칭들을 지정하는데 필요한 시간에 해당할 수 있다. 균일한 뉴런의 상호연결을 위해 이벤트 당 2Fout(Fout = Fin) 매칭이 존재하므로 Tsend = 2Fout/fclk이고, 여기에서 Fout = S/N에 해당할 수 있다.Also, the spike transmission time T send may correspond to the time required to designate all matches of the buffer. For uniform neuron interconnection, 2F out (F out = F in ) matches exist per event, so T send = 2F out /f clk , where F out = S/N.

또한, 뉴런 및 시냅스 업데이트는 스파이크 전송과 동시에 발생하므로 효과적으로 Tupd = 0이 될 수 있다. 따라서, 이 기법에 대한 수학식 1은 다음의 수학식 4와 같이 표현되는 Smax 및 Fout_max를 적용하여 S ≤ fclk/(2a) - N/2에 해당할 수 있다.In addition, neuron and synaptic updates occur simultaneously with spike transmission, so that T upd = 0 can be effectively achieved . Therefore, Equation 1 for this technique may correspond to S ≤ f clk /(2a)-N/2 by applying S max and F out_max expressed as in Equation 4 below.

[수학식 4][Equation 4]

Figure pat00004
Figure pat00004

도 7의 그림 d는 서로 다른 클럭 속도에 대해 N과 관련하여 Smax를 확인할 수 있고, 이 경우 a는 50Hz로 설정될 수 있다. 추정된 Smax값은 RAM 기법의 값을 몇 배 더 초과하며(도 7의 그림 b), 보다 많은 뉴런과 시냅스를 수용할 수 있다. 도 7의 그림 e는 더 큰 Fout_max의 성능을 나타낼 수 있다. Figure d of FIG. 7 can confirm S max in relation to N for different clock speeds, in which case a can be set to 50 Hz. The estimated S max value exceeds the value of the RAM technique several times more (Fig. 7 b), and can accommodate more neurons and synapses. Figure e of FIG. 7 may indicate the performance of a larger F out_max .

예를 들어, 20,000개의 뉴런 각각은 라우팅 트래픽 정체없이 200MHz fclk에서 100의 Fout을 가질 수 있다. 이론적인 추정은 10MHz 클럭 속도에서 500개의 뉴런들(a = 50Hz)로 구성된 네트워크에 대한 이벤트 라우팅을 시뮬레이션 하여 검증할 수 있다. For example, each of 20,000 neurons can have a F out of 100 at 200 MHz f clk without congestion in routing traffic. The theoretical estimate can be verified by simulating event routing for a network of 500 neurons (a = 50 Hz) at a 10 MHz clock rate.

이 경우 B는 60,000에서 140,000까지 다양한 S값으로 모니터링 될 수 있다(도 7의 그림 d의 빨간색 파선을 따라). 도 7의 그림 f는 Smax(약 100,000) 이하의 S에 대한 이벤트 라우팅에서 지연이 없음을 나타낼 수 있다. 이론적인 추정은 FPGA 보드 상의 CAM 구현이 작은 SNN으로 제한되는 점에서 오직 시뮬레이션에 의해서만 검증될 수 있다.In this case, B can be monitored with various S values from 60,000 to 140,000 (along the red dashed line in Fig. 7 d). Figure f of FIG. 7 may indicate that there is no delay in event routing for S of S max (about 100,000) or less. Theoretical estimates can only be verified by simulation as the CAM implementation on the FPGA board is limited to a small SNN.

도 6은 도 1의 토폴로지 블록에서의 동작을 설명하는 도면이다.6 is a diagram for explaining an operation in the topology block of FIG. 1.

도 6을 참조하면, 본 발명의 일 실시예에 따른 뉴로모픽 장치(100)는 전체 LUT(S*2 행렬)를 M개의 하위 LUT들로 분할할 수 있고, 각 하위 LUT는 도 3에서와 같이 P*2개의 엔트리들(P = S/M)을 포함할 수 있다. 분할된 각 파티션은 RAM 어레이(예를 들어, RAM_0 또는 RAM_1)과 비교기(COMP)로 구성될 수 있다. 모든 파티션은 한 번에 모든 M개의 하위 LUT들에 대해 특정 행을 지정하는 동일한 주소 포인터(PTR)을 공유할 수 있다. Referring to FIG. 6, the neuromorphic apparatus 100 according to an embodiment of the present invention may divide the entire LUT (S*2 matrix) into M lower LUTs, and each lower LUT as in FIG. 3 Likewise, it may include P*2 entries (P = S/M). Each divided partition may be composed of a RAM array (for example, RAM_0 or RAM_1) and a comparator COMP. All partitions can share the same address pointer (PTR) specifying a specific row for all M sub-LUTs at once.

예를 들어, 도 3에서, ADR GEN에 의해 생성된 PTR(= 2)은 동시에 M개의 하위 LUT들의 모든 제2행을 지정할 수 있다. 다음으로, 각 하위 LUT의 출력인 PRE_ADR 및 POST_ADR을 N_ADR과 비교하여 일치하는 엔트리를 검출할 수 있다. 이 때, 모든 파티션에 대한 모든 M 비교는 병렬적으로 수행될 수 있다. PTR은 P행까지 생성될 수 있고, 각 행에 대한 일치 결과- “0”(불일치) 및 “1”(일치) -가 버퍼(BUF)로 전송될 수 있다.For example, in FIG. 3, a PTR (= 2) generated by ADR GEN may designate all second rows of M lower LUTs at the same time. Next, it is possible to detect a matching entry by comparing PRE_ADR and POST_ADR, which are outputs of each lower LUT, with N_ADR. In this case, all M comparisons for all partitions may be performed in parallel. The PTR may be generated up to P rows, and a match result for each row-"0" (disconsistency) and "1" (match)-may be transmitted to the buffer BUF.

RAM 어레이는 각각이 프리시냅틱 뉴런과 포스트시냅틱 뉴런의 주소들로 구성된 전후 뉴런 엘리먼트를 포함할 수 있다. RAM 어레이는 PTR이 지정하는 전후 뉴런 엘리먼트에서 프리시냅틱 뉴런 주소로서 PRE_ADR과 포스트시냅틱 뉴런 주소로서 POST_ADR을 출력하는 출력기(OUTPUT)를 포함할 수 있다.The RAM array may include front and rear neuron elements, each consisting of addresses of presynaptic neurons and post synaptic neurons. The RAM array may include an output unit (OUTPUT) that outputs PRE_ADR as a presynaptic neuron address and POST_ADR as a post-synaptic neuron address in the front and rear neuron elements designated by the PTR.

토폴로지 블록에서 수행되는 이벤트 당 총 검색 시간은 Tsrch = P/fclk로 표시될 수 있다. 총 이벤트 전송 시간은 CAM 기법의 경우와 동일하며, 균일한 뉴런 상호연결에 대해 Fout = S/N인 Tsend = 2Fout/fclk에 해당할 수 있다. 또한, 뉴런 및 시냅스 업데이트는 이벤트 전송과 동시에 발생될 수 있다. 그러므로, 본 발명의 방법에 대해 Smax와 Fout_max를 다음의 수학식 5로 표현할 수 있다.The total search time per event performed in the topology block may be expressed as T srch = P/f clk . The total event transmission time is the same as in the case of the CAM technique, and may correspond to T send = 2F out /f clk with F out = S/N for uniform neuron interconnection. In addition, neuron and synaptic updates can occur simultaneously with event transmission. Therefore, S max and F out_max can be expressed by the following equation (5) for the method of the present invention.

[수학식 5][Equation 5]

Figure pat00005
Figure pat00005

도 7의 그림 g는 a = 50Hz와 P = 256에 대한 관계를 나타낼 수 있다. 뉴런 당 Fout_max는 도 7의 그림 h에서 확인할 수 있다. 그림 h의 빨간색 파선으로 표시된 바와 같이, 약 9,000개의 뉴런들 각각에 대해 100의 Fout_max는 200MHz 클럭 속도에서 본 발명의 방법으로 지원될 수 있다. 따라서, 그 용량은 RAM과 CAM 기법 사이에 해당할 수 있다(도 7의 그림 h와 그림 b, e 비교 참조). Figure g of FIG. 7 can show the relationship between a = 50Hz and P = 256. F out_max per neuron can be seen in Figure h of FIG. 7. As indicated by the red dashed line in Figure h, for each of about 9,000 neurons, an F out_max of 100 can be supported by the method of the present invention at a clock rate of 200 MHz. Thus, the capacity may correspond between RAM and CAM techniques (see comparison of Figures h and b, e in Figure 7).

P = 1일 때, 본 발명의 방법은 CAM 기법과 동일해지고, 수학식 5는 수학식 4와 동일할 수 있다. 이 이론적인 추정을 검증하기 위해, 본 발명의 방법(20MHz 클럭 속도로 FPGA 보드에 구현됨)이 적용된 네트워크(N = 500, a = 50Hz 및 P = 256)를 실시간으로 모니터링하여 S(80,000 ~ 210,000)에 관한 이벤트 빌드업 B를 분석할 수 있다. 도 7의 그림 i의 결과는 라우팅 트래픽 정체가 이론상 Smax값과 동일한 136,000 시냅스에서 시작된다는 점에서 수학식 5를 검증할 수 있다.When P = 1, the method of the present invention becomes the same as the CAM technique, and Equation 5 may be the same as Equation 4. To verify this theoretical estimate, the network (N = 500, a = 50 Hz and P = 256) to which the method of the present invention is applied (implemented on an FPGA board at a clock rate of 20 MHz) is monitored in real time to obtain S (80,000 to 210,000) ), the event buildup B can be analyzed. The result of Figure i of FIG. 7 can verify Equation 5 in that routing traffic congestion starts at 136,000 synapses equal to the theoretical S max value.

도 8은 본 발명의 일 실시예에 따른 뉴로모픽 장치의 기능적 구성을 설명하는 블록도이다.8 is a block diagram illustrating a functional configuration of a neuromorphic device according to an embodiment of the present invention.

도 8을 참조하면, 뉴로모픽 장치(100)는 뉴런 주소 수신부(810), 인덱스 주소 제공부(820), 매칭 검출부(830), 시냅스 주소 출력부(840) 및 제어부(850)를 포함할 수 있다.Referring to FIG. 8, the neuromorphic device 100 includes a neuron address receiving unit 810, an index address providing unit 820, a matching detection unit 830, a synaptic address output unit 840, and a control unit 850. I can.

뉴런 주소 수신부(810)는 스파이킹 뉴런의 주소를 수신할 수 있다. 특정 뉴런이 스파이크(spike)를 발생시키는 경우 스파이킹 뉴런에 해당할 수 있고, 해당 특정 뉴런의 주소가 큐 레지스터 블록(110)을 통해 토폴로지 블록으로 전송될 수 있고 뉴런 주소 수신부(810)는 해당 특정 뉴런의 주소를 수신하여 스파이킹 연산의 동작을 개시할 수 있다. 여기에서, 스파이킹 연산은 신경망을 통해 스파이크가 전송되는 동작을 처리하는 것에 해당할 수 있다. 뉴런 주소 수신부(810)는 스파이킹 뉴런의 주소를 매칭 검출부(830)에 제공할 수 있다.The neuron address receiver 810 may receive an address of a spiking neuron. When a specific neuron generates a spike, it may correspond to a spiking neuron, and the address of the specific neuron may be transmitted to the topology block through the queue register block 110, and the neuron address receiver 810 By receiving the neuron's address, it can initiate the spiking operation. Here, the spiking operation may correspond to processing an operation in which a spike is transmitted through a neural network. The neuron address receiver 810 may provide the address of the spiking neuron to the matching detector 830.

인덱스 주소 제공부(820)는 시냅스 주소 중 제1 시냅스 주소로 분할된 복수의 병렬 LUT(Look-up Table) 모듈들 각각에 있는 전후 뉴런 엘리먼트를 동시에 지정하는 인덱스 주소를 제공할 수 있다. 여기에서, 병렬 LUT(Look-up Table) 모듈은 메모리 배열을 복수개로 분할하여 생성될 수 있고, 각각 분할된 LUT를 저장할 수 있으며, LUT 탐색을 병렬로 수행할 수 있도록 배치될 수 있다. 즉, 병렬 LUT 모듈은 파티션된 램(partitioned RAM)에 해당할 수 있다. 병렬 LUT 모듈은 시냅스 주소 중 일부에 해당하는 제1 시냅스 주소에 의해 지정될 수 있고, 병렬 LUT 모듈에 저장된 전후 뉴런 엘리먼트는 인덱스 주소 제공부(820)에 의해 제공된 인덱스 주소에 의해 지정될 수 있다.The index address providing unit 820 may provide an index address for simultaneously designating front and rear neuron elements in each of a plurality of parallel look-up table (LUT) modules divided into a first synaptic address among synaptic addresses. Here, the parallel look-up table (LUT) module may be generated by dividing a memory array into a plurality of memory arrays, may store each divided LUT, and may be arranged to perform LUT search in parallel. That is, the parallel LUT module may correspond to a partitioned RAM. The parallel LUT module may be designated by a first synaptic address corresponding to some of the synaptic addresses, and the front and rear neuron elements stored in the parallel LUT module may be designated by an index address provided by the index address providing unit 820.

병렬 LUT 모듈은 전후 뉴런 엘리먼트를 저장할 수 있고, 전후 뉴런 엘리먼트는 프리시냅틱 뉴런과 포스트시냅틱 뉴런의 주소 포함할 수 있다. 전후 뉴런 엘리먼트는 병렬 LUT 모듈에 저장되는 단위로서 각 병렬 LUT 모듈은 동일한 개수의 전후 뉴런 엘리먼트를 저장할 수 있다. 예를 들어, 전체 시냅스의 수가 S이고 병렬 LUT 모듈의 수가 M이면 각 병렬 LUT 모듈은 S/M(= P) 개의 전후 뉴런 엘리먼트들을 저장할 수 있다.The parallel LUT module may store anterior and posterior neuron elements, and the anterior and posterior neuronal elements may contain addresses of presynaptic neurons and post-synaptic neurons. The anteroposterior neuron element is a unit stored in a parallel LUT module, and each parallel LUT module can store the same number of anteroposterior neuron elements. For example, if the total number of synapses is S and the number of parallel LUT modules is M, each parallel LUT module can store S/M (= P) front and rear neuron elements.

일 실시예에서, 인덱스 주소 제공부(820)는 전후 뉴런 엘리먼트를 처음부터 끝까지 순차적으로 지정하여 인덱스 주소를 제공할 수 있다. 예를 들어, 인덱스 주소 제공부(820)는 0부터 P-1까지 1씩 증가시키면서 인덱스 주소 PTR을 생성할 수 있고, 각 병렬 LUT 모듈은 PTR에 의해 지정되는 전후 뉴런 엘리먼트를 처음부터 끝까지 순차적으로 탐색할 수 있다. 도 6에서, 램 어레이 RAM_0과 RAM_1은 모두 4개의 전후 뉴런 엘리먼트를 저장할 수 있고, 각 전후 뉴런 엘리먼트는 0부터 3까지의 인덱스로 지정될 수 있다. 이 경우, 인덱스 주소 제공부(820)는 인덱스 주소로서 0부터 3까지 순차적으로 제공할 수 있다.In an embodiment, the index address providing unit 820 may provide an index address by sequentially designating front and rear neuron elements from start to finish. For example, the index address providing unit 820 may generate the index address PTR while increasing by 1 from 0 to P-1, and each parallel LUT module sequentially sequentially selects the front and rear neuron elements designated by the PTR. You can explore. In FIG. 6, both of the RAM arrays RAM_0 and RAM_1 may store four front-rear neuron elements, and each front-rear neuron element may be designated as an index from 0 to 3. In this case, the index address providing unit 820 may sequentially provide 0 to 3 as index addresses.

일 실시예에서, 인덱스 주소 제공부(820)는 비교를 통해 일치가 발생되면 인덱스 주소의 제공을 잠시 멈춤할 수 있다. 만약 매칭이 검출된 경우 해당 매칭에 따라 스파이크를 다음 뉴런에게 전파하는 연산을 위해 현재의 인덱스 주소를 기초로 시냅스 주소를 연산하게 되며, 따라서 현재의 인덱스 주소가 변경되지 않도록 인덱스 주소 제공부(820)는 동작을 일시 정지할 수 있다.In one embodiment, the index address providing unit 820 may temporarily stop providing the index address when a match occurs through comparison. If a match is detected, the synaptic address is calculated based on the current index address in order to propagate the spike to the next neuron according to the matching, and thus the index address providing unit 820 so that the current index address is not changed. Can pause the operation.

일 실시예에서, 인덱스 주소 제공부(820)는 일치와 연관되어 시냅스의 주소에 관한 출력이 완료된 경우 인덱스 주소의 제공을 재개할 수 있다. 스파이킹 연산은 스파이킹 뉴런과 연결된 모든 뉴런에 대해 수행될 수 있고, 스파이킹 뉴런과 연결된 모든 뉴런을 탐색하기 위하여 인덱스 주소 제공부(820)는 특정 인덱스 주소에 대한 처리가 완료된 다음 인덱스 주소를 제공하기 위해 동작을 재개할 수 있다.In an embodiment, the index address providing unit 820 may resume providing the index address when output of the synaptic address is completed in association with matching. The spiking operation may be performed on all neurons connected to the spiking neuron, and the index address providing unit 820 provides an index address after processing for a specific index address is completed to search for all neurons connected to the spiking neuron. In order to do so, you can resume the operation.

매칭 검출부(830)는 인덱스 주소에 따라 전후 뉴런 엘리먼트에 있는 프리시냅틱 뉴런 및 포스트시냅틱 뉴런의 주소 중 적어도 하나를 제공하고, 스파이킹 뉴런의 주소를 프리시냅틱 뉴런 또는 포스트시냅틱 뉴런의 주소 중 하나와 비교할 수 있다. 일 실시예에서, 매칭 검출부(830)는 인덱스 주소에 따라 전후 뉴런 엘리먼트에 있는 프리시냅틱 뉴런 및 포스트시냅틱 뉴런의 주소를 함께 제공할 수 있다.The matching detection unit 830 provides at least one of the addresses of presynaptic neurons and post-synaptic neurons in the front and rear neuron elements according to the index address, and compares the address of the spiking neuron with one of the addresses of presynaptic neurons or post-synaptic neurons. I can. In one embodiment, the matching detection unit 830 may provide addresses of presynaptic neurons and post-synaptic neurons in front and rear neuron elements according to the index address.

도 6에서, 매칭 검출부(830)는 ADR GEN에 의해 인덱스 주소로서 PTR = 0이 제공된 경우 RAM_0 및 RAM_1의 인덱스 0에 저장된 전후 뉴런 엘리먼트의 프리시냅틱 뉴런의 주소 PRE_ADR과 포스트 시냅틱 뉴런의 주소 POST_ADR을 각각 출력으로 제공할 수 있고(도 6의 OUTPUT), 뉴런 주소 수신부(810)에 의해 수신된 스파이킹 뉴런의 주소 N_ADR과 비교하여 일치 여부를 결정할 수 있다(도 6의 COMP). 이 때, OUTPUT에 의해 제공되는 PRE_ADR과 POST_ADR는 각각 독립적으로 제공될 수 있고, 동시에 제공될 수 있다.In FIG. 6, when PTR = 0 is provided as an index address by ADR GEN, the matching detection unit 830 sets the address PRE_ADR of the presynaptic neuron of the front and rear neuron element stored in the index 0 of RAM_0 and RAM_1 and the address of the post synaptic neuron POST_ADR, respectively It may be provided as an output (OUTPUT in FIG. 6), and it may be compared with the address N_ADR of the spiking neuron received by the neuron address receiver 810 to determine whether to match (COM of FIG. 6). In this case, PRE_ADR and POST_ADR provided by OUTPUT may be provided independently, respectively, and may be provided simultaneously.

일 실시예에서, 매칭 검출부(830)는 비교를 통해 일치가 발생되면 시냅스 갱신을 위한 트리거 신호를 출력할 수 있다. 도 6에서, 매칭 검출부(830)는 비교기 COMP를 통해 매칭이 검출된 경우 그 결과를 출력할 수 있고, 이와 함께 시냅스 업데이트를 위한 트리거 신호로서 S_UPD를 출력할 수 있다.In an embodiment, the matching detection unit 830 may output a trigger signal for synapse update when a match occurs through comparison. In FIG. 6, when a match is detected through the comparator COMP, the matching detection unit 830 may output a result thereof, and output S_UPD as a trigger signal for synaptic update.

일 실시예에서, 매칭 검출부(830)는 일치가 발생한 뉴런이 프리시냅틱 뉴런인지 포스트시냅틱 뉴런인지에 따라 스파이크 진행 신호를 결정할 수 있다. 보다 구체적으로, 매칭 검출부(830)는 스파이킹 뉴런의 주소 N_ADR이 프리시냅틱 뉴런의 주소 PRE_ADR와 일치하는 경우 스파이크 진행 신호 UPD_SEL = 1로 결정할 수 있다. 즉, UPD_SEL = 1인 경우 토폴로지 블록으로부터 출력되는 시냅스 주소 S_ADR에 의해 지정되는 시냅스는 팬아웃 시냅스에 해당할 수 있다.In an embodiment, the matching detection unit 830 may determine a spike progress signal according to whether the neuron in which the match has occurred is a pre-synaptic neuron or a post-synaptic neuron. More specifically, when the address N_ADR of the spiking neuron matches the address PRE_ADR of the presynaptic neuron, the matching detection unit 830 may determine the spike progress signal UPD_SEL = 1. That is, when UPD_SEL = 1, the synapse designated by the synaptic address S_ADR output from the topology block may correspond to a fan-out synapse.

시냅스 주소 출력부(840)는 비교를 통해 일치가 발생되면 제1 시냅스 주소와 인덱스 주소를 병합하여 스파이킹 뉴런과 연결된 시냅스의 주소로서 출력할 수 있다. 보다 구체적으로, 시냅스 주소 출력부(840)는 제1 시냅스 주소에 해당하는 비트열과 인덱스 주소에 해당하는 비트열을 하나로 통합하여 시냅스 주소를 생성할 수 있다. 이 때, 인덱스 주소를 생성하는 ADR GEN은 동작을 일시적으로 중단할 수 있다.When a match occurs through comparison, the synaptic address output unit 840 may merge the first synaptic address and the index address to output the synaptic address connected to the spiking neuron. More specifically, the synaptic address output unit 840 may generate a synaptic address by integrating a bit string corresponding to the first synaptic address and a bit string corresponding to the index address into one. At this time, the ADR GEN that generates the index address may temporarily stop the operation.

일 실시예에서, 시냅스 주소 출력부(840)는 제1 시냅스 주소를 상위 비트열로 인덱스 주소를 하위 비트열로 병합하여 시냅스의 주소를 완성할 수 있다. 도 6에서, 제1 시냅스 주소는 매칭이 검출된 RAM_1에 대한 주소로서 PART = 1에 해당하고, 인덱스 주소는 매칭이 검출된 전후 뉴런 엘리먼트의 인덱스 주소로서 PTR = 0에 해당할 수 있다. 이 경우, 시냅스 주소 출력부(840)는 PART = 1에 해당하는 비트열 ”1”과 PTR = 0에 해당하는 비트열 “00”을 서로 연결하여 시냅스의 주소로서 “100”을 생성할 수 있고, 그 결과 시냅스 주소 S_ADR = 4가 출력될 수 있다.In an embodiment, the synaptic address output unit 840 may complete the synaptic address by merging the first synaptic address into the upper bit string and the index address into the lower bit string. In FIG. 6, the first synaptic address may correspond to PART = 1 as an address for RAM_1 where matching is detected, and the index address may correspond to PTR = 0 as an index address of a neuron element before and after a match is detected. In this case, the synaptic address output unit 840 may generate “100” as the address of the synapse by connecting the bit string “1” corresponding to PART = 1 and the bit string “00” corresponding to PTR = 0 with each other. , As a result, the synaptic address S_ADR = 4 may be output.

제어부(850)는 뉴로모픽 장치(100)의 전체적인 동작을 제어하고, 뉴런 주소 수신부(810), 인덱스 주소 제공부(820), 매칭 검출부(830) 및 시냅스 주소 출력부(840) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.The control unit 850 controls the overall operation of the neuromorphic device 100, and a control flow between the neuron address receiving unit 810, the index address providing unit 820, the matching detection unit 830, and the synaptic address output unit 840 Or you can manage the data flow.

도 9는 본 발명의 일 실시예에 따른 뉴로모픽 장치에서 수행되는 스파이킹 연산 과정을 설명하는 순서도이다.9 is a flowchart illustrating a spiking operation process performed in a neuromorphic device according to an embodiment of the present invention.

도 9를 참조하면, 뉴로모픽 장치(100)는 뉴런 주소 수신부(810)를 통해 스파이킹 뉴런의 주소를 수신할 수 있다(단계 S910). 뉴로모픽 장치(100)는 인덱스 주소 제공부(820)를 통해 시냅스 주소 중 제1 시냅스 주소로 분할된 복수의 병렬 LUT(Look-up Table) 모듈들 각각에 있는 전후 뉴런 엘리먼트를 동시에 지정하는 인덱스 주소를 제공할 수 있다(단계 S930). 뉴로모픽 장치(100)는 매칭 검출부(830)를 통해 인덱스 주소에 따라 전후 뉴런 엘리먼트에 있는 프리시냅틱 뉴런 및 포스트시냅틱 뉴런의 주소 중 적어도 하나를 제공할 수 있다(단계 S950).Referring to FIG. 9, the neuromorphic device 100 may receive an address of a spiking neuron through the neuron address receiver 810 (step S910). The neuromorphic device 100 is an index that simultaneously designates front and rear neuron elements in each of a plurality of parallel look-up table (LUT) modules divided into a first synaptic address among synaptic addresses through the index address providing unit 820 An address can be provided (step S930). The neuromorphic device 100 may provide at least one of the addresses of presynaptic neurons and postsynaptic neurons in the front and rear neuron elements according to the index address through the matching detection unit 830 (step S950).

또한, 뉴로모픽 장치(100)는 매칭 검출부(830)를 통해 스파이킹 뉴런의 주소를 프리시냅틱 뉴런 또는 포스트시냅틱 뉴런의 주소 중 하나와 비교할 수 있다(단계 S970). 뉴로모픽 장치(100)는 시냅스 주소 출력부(840)를 통해 비교를 통해 일치가 발생되면 제1 시냅스 주소와 인덱스 주소를 병합하여 스파이킹 뉴런과 연결된 시냅스의 주소로서 출력할 수 있다(단계 S990).Further, the neuromorphic device 100 may compare the address of the spiking neuron with one of the addresses of a presynaptic neuron or a post-synaptic neuron through the matching detection unit 830 (step S970). When a match occurs through comparison through the synaptic address output unit 840, the neuromorphic device 100 may merge the first synaptic address and the index address and output it as an address of a synapse connected to the spiking neuron (step S990. ).

일 실시예에서, 뉴로모픽 장치(100)는 스파이킹 뉴런을 검출하는 단계, 스파이킹 뉴런의 주소를 수신하는 단계, 스파이킹 뉴런의 주소를 기초로 복수의 병렬 LUT(Look-up Table) 모듈들 각각을 동시에 지정하여 프리시냅틱 뉴런 및 포스트시냅틱 뉴런의 주소 중 적어도 하나를 결정하는 단계, 스파이킹 뉴런의 주소와 프리시냅틱 뉴런 또는 포스트시냅틱 뉴런의 주소를 비교하는 단계 및 비교를 통해 일치가 발생되면 해당 병렬 LUT 모듈의 모듈 주소와 해당 병렬 LUT 모듈에서 프리시냅틱 뉴런 또는 포스트시냅틱 뉴런의 주소에 해당하는 인덱스 주소를 병합하여 스파이킹 뉴런과 연결된 시냅스의 주소로서 출력하는 단계를 수행함으로써 스파이킹 연산을 처리할 수 있다.In one embodiment, the neuromorphic device 100 detects a spiking neuron, receives an address of a spiking neuron, a plurality of parallel look-up table (LUT) modules based on the address of the spiking neuron Determining at least one of the addresses of presynaptic neurons and post-synaptic neurons by designating each of them simultaneously, comparing the addresses of spiking neurons with the addresses of presynaptic neurons or post-synaptic neurons, and when matching occurs The spiking operation is processed by merging the module address of the parallel LUT module and the index address corresponding to the address of the presynaptic neuron or post-synaptic neuron in the parallel LUT module and outputting it as the address of the synapse connected to the spiking neuron. can do.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to preferred embodiments of the present invention, those skilled in the art will variously modify and change the present invention within the scope not departing from the spirit and scope of the present invention described in the following claims. You will understand that you can do it.

100: 뉴로모픽 장치 110: 큐 레지스터 블록
810: 뉴런 주소 수신부 820: 인덱스 주소 제공부
830: 매칭 검출부 840: 시냅스 주소 출력부
850: 제어부
100: neuromorphic device 110: queue register block
810: neuron address receiving unit 820: index address providing unit
830: matching detection unit 840: synaptic address output unit
850: control unit

Claims (9)

(a) 스파이킹(spiking) 뉴런의 주소를 수신하는 단계;
(b) 시냅스 주소 중 제1 시냅스 주소로 분할된 복수의 병렬 LUT(Look-up Table) 모듈들 각각에 있는 전후 뉴런 엘리먼트를 동시에 지정하는 인덱스 주소를 제공하는 단계;
(c) 상기 인덱스 주소에 따라 상기 전후 뉴런 엘리먼트에 있는 프리시냅틱(presynaptic) 뉴런 및 포스트시냅틱(postsynaptic) 뉴런의 주소 중 적어도 하나를 제공하는 단계;
(d) 상기 스파이킹 뉴런의 주소를 상기 프리시냅틱 뉴런 또는 상기 포스트시냅틱 뉴런의 주소 중 하나와 비교하는 단계; 및
(e) 상기 비교를 통해 일치가 발생되면 상기 제1 시냅스 주소와 상기 인덱스 주소를 병합하여 상기 스파이킹 뉴런과 연결된 시냅스의 주소로서 출력하는 단계를 포함하는 뉴로모픽(neuromorphic) 장치의 스파이크 연산 방법.
(a) receiving an address of a spiking neuron;
(b) providing an index address for simultaneously designating anterior and posterior neuron elements in each of a plurality of parallel look-up table (LUT) modules divided into a first synaptic address among synaptic addresses;
(c) providing at least one of an address of a presynaptic neuron and a postsynaptic neuron in the anterior and posterior neuron element according to the index address;
(d) comparing the address of the spiking neuron with one of the addresses of the presynaptic neuron or the post-synaptic neuron; And
(e) when a match occurs through the comparison, the first synaptic address and the index address are merged and output as an address of a synapse connected to the spiking neuron. .
제1항에 있어서, 상기 (b) 단계는
상기 전후 뉴런 엘리먼트를 처음부터 끝까지 순차적으로 지정하여 상기 인덱스 주소를 제공하는 단계를 포함하는 것을 특징으로 하는 뉴로모픽 장치의 스파이크 연산 방법.
The method of claim 1, wherein step (b)
And providing the index address by sequentially designating the front and rear neuron elements from the beginning to the end of the neuromorphic device.
제1항에 있어서, 상기 (b) 단계는
상기 비교를 통해 상기 일치가 발생되면 상기 인덱스 주소의 제공을 잠시 멈춤하는 단계를 더 포함하는 것을 특징으로 하는 뉴로모픽 장치의 스파이크 연산 방법.
The method of claim 1, wherein step (b)
And temporarily stopping the provision of the index address when the match occurs through the comparison.
제3항에 있어서, 상기 (b) 단계는
상기 일치와 연관되어 시냅스의 주소에 관한 출력이 완료된 경우 상기 인덱스 주소의 제공을 재개하는 단계를 포함하는 것을 특징으로 하는 뉴로모픽 장치의 스파이크 연산 방법.
The method of claim 3, wherein step (b) is
And resuming the provision of the index address when the output of the synaptic address is completed in association with the matching.
제1항에 있어서, 상기 (c) 단계는
상기 인덱스 주소에 따라 상기 전후 뉴런 엘리먼트에 있는 프리시냅틱 뉴런 및 포스트시냅틱 뉴런의 주소를 함께 제공하는 단계를 포함하는 것을 특징으로 하는 뉴로모픽 장치의 스파이크 연산 방법.
The method of claim 1, wherein step (c)
And providing the addresses of the presynaptic neurons and the post-synaptic neurons in the front and rear neuron elements according to the index address.
제1항에 있어서, 상기 (d) 단계는
상기 비교를 통해 상기 일치가 발생되면 시냅스 갱신을 위한 트리거 신호를 출력하는 단계를 포함하는 것을 특징으로 하는 뉴로모픽 장치의 스파이크 연산 방법.
The method of claim 1, wherein step (d)
And outputting a trigger signal for synaptic update when the match occurs through the comparison.
제6항에 있어서, 상기 (d) 단계는
상기 일치가 발생한 뉴런이 프리시냅틱 뉴런인지 포스트시냅틱 뉴런인지에 따라 스파이크 진행 신호를 결정하는 단계를 포함하는 것을 특징으로 하는 뉴로모픽 장치의 스파이크 연산 방법.
The method of claim 6, wherein step (d)
And determining a spike progress signal according to whether the matched neuron is a pre-synaptic neuron or a post-synaptic neuron.
제1항에 있어서, 상기 (e) 단계는
상기 제1 시냅스 주소를 상위 비트열로 상기 인덱스 주소를 하위 비트열로 병합하여 상기 시냅스의 주소를 완성하는 단계를 포함하는 것을 특징으로 하는 뉴로모픽 장치의 스파이크 연산 방법.
The method of claim 1, wherein step (e)
And completing the address of the synapse by merging the first synaptic address into an upper bit string and the index address into a lower bit string.
복수의 시냅스들 및 복수의 뉴런들을 포함하는 뉴로모픽 장치의 스파이크 연산 방법에 있어서,
(a) 스파이킹 뉴런을 검출하는 단계;
(b) 상기 스파이킹 뉴런의 주소를 수신하는 단계;
(c) 상기 스파이킹 뉴런의 주소를 기초로 복수의 병렬 LUT(Look-up Table) 모듈들 각각을 동시에 지정하여 프리시냅틱 뉴런 및 포스트시냅틱 뉴런의 주소 중 적어도 하나를 결정하는 단계;
(d) 상기 스파이킹 뉴런의 주소 및 상기 프리시냅틱 뉴런 또는 포스트시냅틱 뉴런의 주소를 비교하는 단계; 및
(e) 상기 비교를 통해 일치가 발생되면 해당 병렬 LUT 모듈의 모듈 주소와 상기 해당 병렬 LUT 모듈에서 상기 프리시냅틱 뉴런 또는 포스트시냅틱 뉴런의 주소에 해당하는 인덱스 주소를 병합하여 상기 스파이킹 뉴런과 연결된 시냅스의 주소로서 출력하는 단계를 포함하는 뉴로모픽 장치의 스파이크 연산 방법.

In the method for calculating a spike of a neuromorphic device including a plurality of synapses and a plurality of neurons,
(a) detecting spiking neurons;
(b) receiving the address of the spiking neuron;
(c) simultaneously designating each of a plurality of parallel Look-up Table (LUT) modules based on the address of the spiking neuron to determine at least one of the addresses of the presynaptic neuron and the postsynaptic neuron;
(d) comparing the address of the spiking neuron and the address of the presynaptic neuron or the post-synaptic neuron; And
(e) When a match occurs through the comparison, the module address of the parallel LUT module and the index address corresponding to the address of the presynaptic neuron or the post-synaptic neuron in the parallel LUT module are merged to be connected to the spiking neuron. Spike calculation method of a neuromorphic device comprising the step of outputting as an address of.

KR1020190080627A 2019-07-04 2019-07-04 Method for operating spikes in a neuromodule device KR102355611B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190080627A KR102355611B1 (en) 2019-07-04 2019-07-04 Method for operating spikes in a neuromodule device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190080627A KR102355611B1 (en) 2019-07-04 2019-07-04 Method for operating spikes in a neuromodule device

Publications (2)

Publication Number Publication Date
KR20210004343A true KR20210004343A (en) 2021-01-13
KR102355611B1 KR102355611B1 (en) 2022-01-27

Family

ID=74142671

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190080627A KR102355611B1 (en) 2019-07-04 2019-07-04 Method for operating spikes in a neuromodule device

Country Status (1)

Country Link
KR (1) KR102355611B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180093245A (en) 2017-02-10 2018-08-21 한국전자통신연구원 Neuromorphic arithmetic device
KR20190008670A (en) 2017-07-17 2019-01-25 포항공과대학교 산학협력단 Neuron Circuit and Neuromorphic System comprising The Same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180093245A (en) 2017-02-10 2018-08-21 한국전자통신연구원 Neuromorphic arithmetic device
KR20190008670A (en) 2017-07-17 2019-01-25 포항공과대학교 산학협력단 Neuron Circuit and Neuromorphic System comprising The Same

Also Published As

Publication number Publication date
KR102355611B1 (en) 2022-01-27

Similar Documents

Publication Publication Date Title
US10891544B2 (en) Event-driven universal neural network circuit
US10628732B2 (en) Reconfigurable and customizable general-purpose circuits for neural networks
US9373073B2 (en) Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a universal substrate of adaptation
US8812414B2 (en) Low-power event-driven neural computing architecture in neural networks
US9239984B2 (en) Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network
CN108334942B (en) Data processing method, device, chip and storage medium of neural network
Zhang et al. An asynchronous reconfigurable SNN accelerator with event-driven time step update
KR102380970B1 (en) Neuromodule device and signaling method performed on the same
KR102301041B1 (en) Neuromorphic device
KR102380584B1 (en) Neuromodule device and signaling method performed on the same
KR102402255B1 (en) Multi-core neuromodule device and global routing method performed on the same
Ding et al. A hybrid-mode on-chip router for the large-scale FPGA-based neuromorphic platform
KR102355611B1 (en) Method for operating spikes in a neuromodule device
CN109800872B (en) Neuromorphic processor based on segmented multiplexing and parameter quantification sharing
KR20210004344A (en) Neuromodule device and queuing method performed on the same
Khalil et al. Architecture of a novel low-cost hardware neural network
KR102402253B1 (en) Multi-core neuromodule device and global routing method performed on the same
Kang et al. Hotspot prediction of network-on-chip for neuromorphic processor with liquid state machine
US11947959B2 (en) Re-using processing elements of an artificial intelligence processor
RU2768543C1 (en) Data traffic monitoring device
KR20240105073A (en) Light-weight artificial intelligence calculation processing device for various applications and operation method thereof
CN117390442A (en) Training method of artificial intelligent model and related equipment
CN114521264A (en) Hardware architecture and method of operation for a spiking neural network
JPH05216859A (en) Signal processor
JPH05120254A (en) Signal processor

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right