KR102800421B1 - Electric device configured to support high speed interface for expanding neural network - Google Patents
Electric device configured to support high speed interface for expanding neural network Download PDFInfo
- Publication number
- KR102800421B1 KR102800421B1 KR1020220023514A KR20220023514A KR102800421B1 KR 102800421 B1 KR102800421 B1 KR 102800421B1 KR 1020220023514 A KR1020220023514 A KR 1020220023514A KR 20220023514 A KR20220023514 A KR 20220023514A KR 102800421 B1 KR102800421 B1 KR 102800421B1
- Authority
- KR
- South Korea
- Prior art keywords
- neurons
- arbiter
- signals
- row
- response
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
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)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Small-Scale Networks (AREA)
Abstract
본 개시에 따른 뉴럴 네트워크를 지원하도록 구성된 전자 장치는 복수의 뉴런들을 포함하는 뉴런 어레이, 상기 복수의 뉴런들으로부터 복수의 스파이크 신호들을 수신하고, 상기 수신된 복수의 스파이크 신호들에 응답하여, 복수의 요청 신호들을 출력하도록 구성된 행 주소 인코더, 및 상기 행 주소 인코더로부터 상기 복수의 요청 신호들을 수신하고, 상기 수신된 복수의 요청 신호들에 응답하여, 복수의 응답 신호들을 출력하도록 구성된 행 아비터 트리를 포함하고, 행 아비터 트리는 상기 복수의 요청 신호들 중 제1 및 제2 요청 신호들을 중재하도록 구성된 제1 아비터, 상기 제1 아비터의 상태를 저장하도록 구성된 제1 래치 회로, 상기 복수의 요청 신호들 중 제3 및 제4 요청 신호들을 중재하도록 구성된 제2 아비터, 상기 제2 아비터의 상태를 저장하도록 구성된 제2 래치 회로, 및 상기 제1 및 제2 래치 회로들에 저장된 정보를 기반으로 상기 제1 및 제2 아비터들로 응답 신호를 전달하도록 구성된 제3 아비터를 포함한다. An electronic device configured to support a neural network according to the present disclosure includes a neuron array including a plurality of neurons, a row address encoder configured to receive a plurality of spike signals from the plurality of neurons and output a plurality of request signals in response to the received plurality of spike signals, and a row arbiter tree configured to receive the plurality of request signals from the row address encoder and output a plurality of response signals in response to the received plurality of request signals, wherein the row arbiter tree includes a first arbiter configured to arbitrate first and second request signals among the plurality of request signals, a first latch circuit configured to store a state of the first arbiter, a second arbiter configured to arbitrate third and fourth request signals among the plurality of request signals, a second latch circuit configured to store a state of the second arbiter, and a third arbiter configured to transmit a response signal to the first and second arbiters based on information stored in the first and second latch circuits.
Description
본 발명은 뉴럴 네트워크에 관한 것으로, 좀 더 상세하게는, 뉴럴 네트워크 확장을 위한 고속 인터페이스를 지원하도록 구성된 전자 장치에 관한 것이다. The present invention relates to neural networks, and more particularly, to an electronic device configured to support a high-speed interface for neural network expansion.
인간의 사고, 추론, 및 학습 과정을 전자 장치에 적용하여 정보를 처리하는 인공지능 기술에 대한 관심이 증가하고 있다. 예를 들어, 인간의 뇌를 모사한 뉴런들 또는 시냅스들 사이의 신호 처리에 관한 연구가 진행되고 있다. 스파이크 기반의 신경망(Neural network)은 입력 스파이크를 기반으로 학습 및 추론하는 방식을 기반으로 개발되었다. 그러나 인간의 높은 지능을 모사하기 위해서는, 다수의 뉴런들이 요구되나, 하나의 반도체 칩에 다수의 뉴런들을 집적하는데 있어서, 면적, 소모 전력, 또는 공정 이슈 등으로 인한 한계가 존재한다.There is increasing interest in artificial intelligence technology that processes information by applying human thinking, reasoning, and learning processes to electronic devices. For example, research is being conducted on signal processing between neurons or synapses that mimic the human brain. Spike-based neural networks were developed based on a method of learning and inferring based on input spikes. However, in order to mimic high human intelligence, a large number of neurons are required, but there are limitations in integrating a large number of neurons into a single semiconductor chip due to area, power consumption, or process issues.
본 발명의 목적은 향상된 신뢰성 및 향상된 성능을 갖는 뉴럴 네트워크 확장을 위한 고속 인터페이스를 지원하도록 구성된 전자 장치를 제공하는데 있다.An object of the present invention is to provide an electronic device configured to support a high-speed interface for neural network extension with improved reliability and improved performance.
본 개시의 일 실시 예에 따른 뉴럴 네트워크를 지원하도록 구성된 전자 장치는: 복수의 뉴런들을 포함하는 뉴런 어레이; 상기 복수의 뉴런들으로부터 복수의 스파이크 신호들을 수신하고, 상기 수신된 복수의 스파이크 신호들에 응답하여, 복수의 요청 신호들을 출력하도록 구성된 행 주소 인코더; 및 상기 행 주소 인코더로부터 상기 복수의 요청 신호들을 수신하고, 상기 수신된 복수의 요청 신호들에 응답하여, 복수의 응답 신호들을 출력하도록 구성된 행 아비터 트리를 포함하고, 상기 행 아비터 트리는: 상기 복수의 요청 신호들 중 제1 및 제2 요청 신호들을 중재하도록 구성된 제1 아비터; 상기 제1 아비터의 상태를 저장하도록 구성된 제1 래치 회로; 상기 복수의 요청 신호들 중 제3 및 제4 요청 신호들을 중재하도록 구성된 제2 아비터; 상기 제2 아비터의 상태를 저장하도록 구성된 제2 래치 회로; 및 상기 제1 및 제2 래치 회로들에 저장된 정보를 기반으로 상기 제1 및 제2 아비터들로 응답 신호를 전달하도록 구성된 제3 아비터를 포함한다.An electronic device configured to support a neural network according to one embodiment of the present disclosure comprises: a neuron array including a plurality of neurons; a row address encoder configured to receive a plurality of spike signals from the plurality of neurons and to output a plurality of request signals in response to the received plurality of spike signals; and a row arbiter tree configured to receive the plurality of request signals from the row address encoder and to output a plurality of response signals in response to the received plurality of request signals, wherein the row arbiter tree comprises: a first arbiter configured to arbitrate first and second request signals among the plurality of request signals; a first latch circuit configured to store a state of the first arbiter; a second arbiter configured to arbitrate third and fourth request signals among the plurality of request signals; a second latch circuit configured to store a state of the second arbiter; and a third arbiter configured to transmit a response signal to the first and second arbiters based on information stored in the first and second latch circuits.
일 실시 예에서, 상기 행 주소 인코더는: 상기 복수의 스파이크 신호들 중, 상기 복수의 뉴런들 중 제1 행에 위치한 뉴런들로부터 수신된 스파이크 신호에 응답하여 상기 제1 요청 신호를 생성하고; 상기 복수의 스파이크 신호들 중, 상기 복수의 뉴런들 중 제2 행에 위치한 뉴런들로부터 수신된 스파이크 신호에 응답하여 상기 제2 요청 신호를 생성하고; 상기 복수의 스파이크 신호들 중 상기 복수의 뉴런들 중 제3 행에 위치한 뉴런들로부터 수신된 스파이크 신호에 응답하여 상기 제3 요청 신호를 생성하고; 상기 복수의 스파이크 신호들 중 상기 복수의 뉴런들 중 제4 행에 위치한 뉴런들로부터 수신된 스파이크 신호에 응답하여 상기 제4 요청 신호를 생성한다.In one embodiment, the row address encoder: generates the first request signal in response to a spike signal received from neurons located in a first row among the plurality of neurons, among the plurality of spike signals; generates the second request signal in response to a spike signal received from neurons located in a second row among the plurality of neurons, among the plurality of spike signals; generates the third request signal in response to a spike signal received from neurons located in a third row among the plurality of neurons, among the plurality of spike signals; and generates the fourth request signal in response to a spike signal received from neurons located in a fourth row among the plurality of neurons, among the plurality of spike signals.
일 실시 예에서, 상기 행 주소 인코더는 상기 복수의 응답 신호들에 응답하여, 상기 복수의 뉴런들 중 상기 복수의 응답 신호들에 대응하는 뉴런들의 행에 대한 정보를 가리키는 행 신호를 출력하도록 구성된다.In one embodiment, the row address encoder is configured to, in response to the plurality of response signals, output a row signal indicating information about a row of neurons among the plurality of neurons corresponding to the plurality of response signals.
일 실시 예에서, 상기 제1 아비터는 상기 제1 및 제2 요청 신호들 중 상기 제1 요청 신호를 수신하고, 상기 복수의 응답 신호들 중 상기 제1 요청 신호에 대한 제1 응답 신호를 출력하기 전에, 상기 제1 및 제2 요청 신호들 중 어느 하나를 수신하도록 더 구성되고, 상기 제2 아비터는 상기 제3 및 제4 요청 신호들 중 상기 제3 요청 신호를 수신하고, 상기 복수의 응답 신호들 중 상기 제3 요청 신호에 대응하는 제3 응답 신호를 출력하기 전에, 상기 제3 및 제4 요청 신호들 중 어느 하나를 수신하도록 더 구성된다.In one embodiment, the first arbiter is further configured to receive one of the first and second request signals before receiving the first request signal among the first and second request signals and outputting a first response signal to the first request signal among the plurality of response signals, and the second arbiter is further configured to receive one of the third and fourth request signals before receiving the third request signal among the third and fourth request signals and outputting a third response signal corresponding to the third request signal among the plurality of response signals.
일 실시 예에서, 상기 제3 아비터의 상태를 저장하도록 구성된 제3 래치 회로를 더 포함한다.In one embodiment, the circuit further comprises a third latch circuit configured to store a state of the third arbiter.
일 실시 예에서, 상기 행 주소 인코더는 상기 복수의 응답 신호들에 응답하여, 상기 복수의 뉴런들로부터 수신된 상기 복수의 스파이크 신호들을 행 신호로서 순차적으로 외부로 출력하도록 더 구성된다.In one embodiment, the row address encoder is further configured to sequentially output the plurality of spike signals received from the plurality of neurons as row signals in response to the plurality of response signals.
일 실시 예에서, 상기 복수의 뉴런들으로부터 상기 복수의 스파이크 신호들을 수신하고, 상기 수신된 복수의 스파이크 신호들에 응답하여, 복수의 요청 신호들을 출력하도록 구성된 열 주소 인코더; 및 상기 열 주소 인코더로부터 상기 복수의 요청 신호를 수신하고, 상기 열 주소 인코더로부터 상기 수신된 복수의 요청 신호들에 응답하여, 복수의 응답 신호들을 출력하도록 구성된 열 아비터 트리를 더 포함한다.In one embodiment, the apparatus further comprises a column address encoder configured to receive the plurality of spike signals from the plurality of neurons and to output a plurality of request signals in response to the received plurality of spike signals; and a column arbiter tree configured to receive the plurality of request signals from the column address encoder and to output a plurality of response signals in response to the received plurality of request signals from the column address encoder.
일 실시 예에서, 상기 열 주소 인코더는 상기 열 아비터 트리로부터 수신된 상기 복수의 응답 신호들에 응답하여, 상기 복수의 뉴런들 중 상기 복수의 응답 신호들에 대응하는 뉴런들의 열에 대한 정보를 가리키는 열 신호를 출력하도록 구성된다.In one embodiment, the column address encoder is configured to, in response to the plurality of response signals received from the column arbiter tree, output a column signal indicating information about a column of neurons among the plurality of neurons corresponding to the plurality of response signals.
본 개시의 일 실시 예에 따르면, 뉴럴 네트워크를 지원하도록 구성된 전자 장치는 복수의 뉴런들을 포함하는 뉴런 어레이; 및 상기 복수의 뉴런들로부터 생성된 복수의 스파이크 신호들을 외부 장치로 병렬로 전송하도록 구성된 인터페이스 회로를 포함하고, 상기 인터페이스 회로는: 상기 복수의 스파이크 신호들에 대응하는 복수의 요청 신호들을 중재하도록 구성된 행 아비터 트리를 포함하고, 상기 행 아비터 트리는: 상기 복수의 요청 신호들 중 제1 및 제2 요청 신호들에 응답하여 제1 토큰을 반환하도록 구성된 제1 아비터; 및 상기 복수의 요청 신호들 중 제3 및 제4 요청 신호들에 응답하여 제2 토큰을 반환하도록 구성된 제2 아비터를 포함하고, 상기 제1 및 제2 요청 신호들 중 상기 제1 토큰을 반환받은 요청 신호에 대응하는 스파이크 신호는 제1 경로를 통해 상기 외부 장치로 전송되고, 상기 제3 및 제4 요청 신호들 중 상기 제2 토큰을 반환 받은 요청 신호에 대응하는 스파이크 신호는 상기 제1 경로와 병렬로 구현된 제2 경로를 통해 상기 외부 장치로 전송된다.According to one embodiment of the present disclosure, an electronic device configured to support a neural network includes: a neuron array including a plurality of neurons; and an interface circuit configured to transmit a plurality of spike signals generated from the plurality of neurons in parallel to an external device, wherein the interface circuit includes: a row arbiter tree configured to arbitrate a plurality of request signals corresponding to the plurality of spike signals, wherein the row arbiter tree includes: a first arbiter configured to return a first token in response to first and second request signals among the plurality of request signals; and a second arbiter configured to return a second token in response to third and fourth request signals among the plurality of request signals, wherein a spike signal corresponding to a request signal for which the first token is returned among the first and second request signals is transmitted to the external device through a first path, and a spike signal corresponding to a request signal for which the second token is returned among the third and fourth request signals is transmitted to the external device through a second path implemented in parallel with the first path.
일 실시 예에서, 상기 인터페이스 회로는: 상기 행 아비터 트리의 중재를 기반으로, 상기 제1 및 제2 경로들을 통해 상기 외부 장치로 상기 복수의 스파이크 신호들을 병렬로 전송하도록 구성된 행 주소 인코더를 더 포함한다. In one embodiment, the interface circuit further comprises a row address encoder configured to transmit the plurality of spike signals in parallel to the external device through the first and second paths based on arbitration of the row arbiter tree.
일 실시 예에서, 상기 행 아비터 트리는: 상기 제1 아비터의 상태를 저장하도록 구성된 제1 래치 회로; 및 상기 제2 아비터의 상태를 저장하도록 구성된 제2 래치 회로를 더 포함한다. In one embodiment, the row arbiter tree further comprises: a first latch circuit configured to store a state of the first arbiter; and a second latch circuit configured to store a state of the second arbiter.
일 실시 예에서, 상기 행 주소 인코더는 상기 제1 및 제2 래치 회로들에 저장된 정보를 기반으로 상기 제1 및 제2 토큰들의 반환 순서를 식별하도록 더 구성된다.In one embodiment, the row address encoder is further configured to identify a return order of the first and second tokens based on information stored in the first and second latch circuits.
본 개시에 따르면, 향상된 신뢰성 및 향상된 성능을 갖는 뉴럴 네트워크 확장을 위한 고속 인터페이스를 지원하도록 구성된 전자 장치가 제공된다.According to the present disclosure, an electronic device is provided that is configured to support a high-speed interface for neural network extension with improved reliability and improved performance.
도 1은 본 개시의 일 실시 예에 따른, 뉴럴 네트워크의 동작을 설명하기 위한 도면이다.
도 2는 도 1의 뉴럴 네트워크를 구현한 AER(Address-Event-Representative) 프로토콜 기반의 전자 장치를 보여주는 블록도이다.
도 3은 도 2의 행 아비터 트리의 구조를 보여주는 블록도이다.
도 4는 도 2의 행 아비터 트리의 구조를 보여주는 블록도이다.
도 5는 도 3의 행 아비터 트리에서 사용되는 다중 토큰(multi-token) 및 다중 경로(multi-path)를 설명하기 위한 도면이다.
도 6은 도 5의 다중 다중 토큰(multi-token) 및 다중 경로(multi-path)를 사용하는 행 아비터 트리의 구조를 보여주는 블록도이다.
도 7은 본 개시의 실시 예에 따른 전자 장치를 보여주는 블록도이다.FIG. 1 is a diagram for explaining the operation of a neural network according to one embodiment of the present disclosure.
FIG. 2 is a block diagram showing an electronic device based on the Address-Event-Representative (AER) protocol that implements the neural network of FIG. 1.
Figure 3 is a block diagram showing the structure of the row arbiter tree of Figure 2.
Figure 4 is a block diagram showing the structure of the row arbiter tree of Figure 2.
FIG. 5 is a diagram for explaining the multi-token and multi-path used in the row arbiter tree of FIG. 3.
Figure 6 is a block diagram showing the structure of a row arbiter tree using multi-tokens and multi-paths of Figure 5.
FIG. 7 is a block diagram showing an electronic device according to an embodiment of the present disclosure.
이하에서, 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시를 용이하게 실시할 수 있을 정도로, 본 개시의 실시 예들이 명확하고 상세하게 기재될 것이다.Hereinafter, embodiments of the present disclosure will be described clearly and in detail to such an extent that a person skilled in the art can easily practice the present disclosure.
이하에서, 첨부한 도면들을 참조하여, 본 개시의 바람직한 실시 예를 보다 상세하게 설명하고자 한다. 본 개시를 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 유사한 구성요소에 대해서는 유사한 참조부호가 사용되고, 그리고 유사한 구성요소에 대해서 중복된 설명은 생략된다.Hereinafter, with reference to the attached drawings, preferred embodiments of the present disclosure will be described in more detail. In order to facilitate an overall understanding in describing the present disclosure, similar reference numerals are used for similar components in the drawings, and redundant descriptions of similar components are omitted.
이하의 도면들 또는 상세한 설명에서의 모듈들은 도면에 도시되거나 또는 상세한 설명에 기재된 구성 요소 이외에 다른 것들과 연결될 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 직접적 또는 비직접적일 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 통신에 의한 연결이거나 또는 물리적인 접속일 수 있다.The modules in the drawings or detailed description below may be connected to other components other than those depicted in the drawings or described in the detailed description. The connection between the modules or components may be direct or indirect, respectively. The connection between the modules or components may be a connection by communication or a physical connection, respectively.
상세한 설명에서 사용되는 부 또는 유닛(unit), 모듈(module), 계층(layer) 등의 용어를 참조하여 설명되는 구성 요소들은 소프트웨어, 또는 하드웨어, 또는 그것들의 조합의 형태로 구현될 수 있다. 예시적으로, 소프트웨어는 기계 코드, 펌웨어, 임베디드 코드, 및 에플리케이션 소프트웨어일 수 있다. 예를 들어, 하드웨어는 전기 회로, 전자 회로, 프로세서, 컴퓨터, 집적 회로 코어들, 압력 센서, 관성 센서, 멤즈(Micro Electro Mechanical System; MEMS), 수동 소자, 또는 그것들의 조합을 포함할 수 있다.Components described with reference to terms such as unit, module, layer, etc. used in the detailed description may be implemented in the form of software, hardware, or a combination thereof. For example, software may be machine code, firmware, embedded code, and application software. For example, hardware may include electrical circuits, electronic circuits, processors, computers, integrated circuit cores, pressure sensors, inertial sensors, MEMS (Micro Electro Mechanical Systems), passive components, or a combination thereof.
본 개시에 따르면, 스파이크 기반의 뉴럴 네트워크를 구동하도록 구성된 전자 장치는 복수의 뉴런들을 포함할 수 있다. 복수의 뉴런들 각각은 스파이크 신호를 발생시킬 수 있으며, 발생된 스파이크 신호들은 외부로 전송될 수 있다. 이 때, 본 개시에 따른 전자 장치는 복수의 뉴런들로부터 발생된 복수의 스파이크 신호들의 전송 속도 저하를 방지할 수 있다. 예를 들어, 뉴럴 네트워크는 복잡한 구조로 병렬 연결된 복수의 뉴런들을 포함할 수 있다. 이에 따라 복수의 뉴런들로 발생되는 복수의 스파이크 신호들 또한 병렬 형태로 지속적으로 발생할 수 있다. 종래의 뉴럴 네트워크 기반의 전자 장치에서는, AER(Address-Event-Representative) 회로를 사용하여, 복수의 스파이크 신호들을 직렬화하고, 직렬화된 신호들을 외부로 전송한다. 이 경우, 병렬 형태로 발생되는 복수의 스파이크 신호들이 직렬 형태로 변환됨으로써, 전송 속도 저하가 발생된다. 반면에, 본 개시에 따른 전자 장치는 복수의 스파이크 전송에 관한 왜곡을 최소화하면서, 뉴럴 네트워크 사이의 뉴런을 확장시키기 위한 고속 AER 인터페이스 기법을 제공할 수 있다. According to the present disclosure, an electronic device configured to drive a spike-based neural network may include a plurality of neurons. Each of the plurality of neurons may generate a spike signal, and the generated spike signals may be transmitted to the outside. At this time, the electronic device according to the present disclosure may prevent a decrease in the transmission speed of the plurality of spike signals generated from the plurality of neurons. For example, the neural network may include a plurality of neurons connected in parallel with a complex structure. Accordingly, the plurality of spike signals generated from the plurality of neurons may also be continuously generated in a parallel form. In a conventional neural network-based electronic device, an AER (Address-Event-Representative) circuit is used to serialize the plurality of spike signals and transmit the serialized signals to the outside. In this case, a decrease in the transmission speed occurs because the plurality of spike signals generated in a parallel form are converted to a serial form. On the other hand, the electronic device according to the present disclosure may provide a high-speed AER interface technique for expanding neurons between neural networks while minimizing distortion related to the transmission of the plurality of spikes.
도 1은 본 개시의 일 실시 예에 따른, 뉴럴 네트워크의 동작을 설명하기 위한 도면이다. 도 1을 참조하면, 뉴럴 네트워크(NN; neural network)는 제1 레이어(L1), 제2 레이어(L2), 및 시냅스들(S)을 포함할 수 있다. 일 실시 예에서, 뉴럴 네트워크(NN)는 스파이크 신호에 기반된 스파이킹 뉴럴 네트워크일 수 있다. 그러나 본 개시의 범위가 이에 한정되는 것은 아니며, 뉴럴 네트워크(NN)는 다양한 신경망 또는 기계 학습을 지원하도록 구성될 수 있다.FIG. 1 is a diagram for explaining the operation of a neural network according to an embodiment of the present disclosure. Referring to FIG. 1, a neural network (NN) may include a first layer (L1), a second layer (L2), and synapses (S). In one embodiment, the neural network (NN) may be a spiking neural network based on spike signals. However, the scope of the present disclosure is not limited thereto, and the neural network (NN) may be configured to support various neural networks or machine learning.
제1 레이어(L1)는 복수의 액손들(A1~An)을 포함할 수 있고, 제2 레이어(L2)는 복수의 뉴런들(N1~Nm)을 포함할 수 있다. 시냅스들(S)은 복수의 액손들(A1~An) 및 복수의 뉴런들(N1~Nm)을 연결하도록 구성될 수 있다. 여기서, m 및 n 각각은 임의의 자연수일 수 있으며, m 및 n은 서로 같은 수이거나 또는 서로 다른 수 일 수 있다.The first layer (L1) may include a plurality of axons (A1 to An), and the second layer (L2) may include a plurality of neurons (N1 to Nm). Synapses (S) may be configured to connect the plurality of axons (A1 to An) and the plurality of neurons (N1 to Nm). Here, each of m and n may be any natural number, and m and n may be the same number or different numbers.
제1 레이어(L1)에 포함된 액손들(A1~An)은 각각 스파이크(spike) 신호를 출력할 수 있다. 시냅스들(S)은 출력된 스파이크 신호를 기반으로 제2 레이어(L2)에 포함된 뉴런들(N1~Nm)에게 시냅틱 가중치가 가중된 스파이크 신호를 전달할 수 있다. 하나의 액손으로부터 스파이크 신호가 출력되더라도, 시냅스들(S) 각각의 연결 강도인 시냅틱 가중치에 따라서 시냅스들(S) 각각으로부터 뉴런들(N1~Nm)로 전달되는 스파이크 신호는 달라질 수 있다. 예를 들어, 제1 시냅스의 시냅틱 가중치가 제2 시냅스의 시냅틱 가중치보다 큰 경우, 제1 시냅스와 연결된 뉴런은 제2 시냅스와 연결된 뉴런보다 더 큰 값의 스파이크 신호를 수신할 수 있다.Each of the axons (A1 to An) included in the first layer (L1) can output a spike signal. The synapses (S) can transmit spike signals with weighted synaptic weights to the neurons (N1 to Nm) included in the second layer (L2) based on the output spike signals. Even if a spike signal is output from one axon, the spike signal transmitted from each of the synapses (S) to the neurons (N1 to Nm) can vary depending on the synaptic weight, which is the connection strength of each of the synapses (S). For example, when the synaptic weight of the first synapse is greater than the synaptic weight of the second synapse, the neuron connected to the first synapse can receive a spike signal with a larger value than the neuron connected to the second synapse.
제2 레이어(L2)에 포함된 뉴런들(N1~Nm) 각각은 시냅스들(S)로부터 전달된 스파이크 신호를 수신할 수 있다. 스파이크 신호를 수신한 각각의 뉴런들(N1~Nm)은 수신된 스파이크 신호에 기초하여 뉴런 스파이크를 출력할 수 있다. 예시적으로, 제2 뉴런(N2)에 수신된 스파이크 신호의 누적 값이 임계 값보다 커지는 경우, 제2 뉴런(N2)은 뉴런 스파이크를 출력할 수 있다.Each of the neurons (N1 to Nm) included in the second layer (L2) can receive a spike signal transmitted from the synapses (S). Each of the neurons (N1 to Nm) receiving the spike signal can output a neuron spike based on the received spike signal. For example, when the accumulated value of the spike signal received by the second neuron (N2) becomes greater than a threshold value, the second neuron (N2) can output a neuron spike.
예를 들어, 도 1에 도시된 바와 같이, 제2 액손(A2)이 스파이크 신호를 출력하는 경우, 제2 액손(A2)과 연결된 시냅스들(S)은 뉴런들(N1~Nm)로 스파이크 신호를 전달할 수 있다. 전달되는 스파이크 신호는 제2 액손(A2)과 연결된 시냅스들(S) 각각의 시냅틱 가중치에 따라 다를 수 있다. 제2 액손(A2)과 제2 뉴런(N2)을 연결하는 시냅스(S22)로부터 제2 뉴런(N2)으로 스파이크 신호가 전달되고, 전달된 스파이크 신호에 따라 제2 뉴런(N2)의 누적된 스파이크 신호 값이 임계 값보다 커지는 경우, 제2 뉴런(N2)은 뉴런 스파이크를 출력할 수 있다.For example, as illustrated in FIG. 1, when the second axon (A2) outputs a spike signal, the synapses (S) connected to the second axon (A2) can transmit the spike signal to the neurons (N1 to Nm). The transmitted spike signal may vary depending on the synaptic weight of each of the synapses (S) connected to the second axon (A2). When a spike signal is transmitted to the second neuron (N2) from the synapse (S22) connecting the second axon (A2) and the second neuron (N2), and the accumulated spike signal value of the second neuron (N2) becomes greater than a threshold value according to the transmitted spike signal, the second neuron (N2) can output a neuron spike.
도 1에 도시된 바와 같이, 본 개시의 실시 예들에 있어서, 액손들(A1~An)이 포함된 레이어는 뉴런들(N1~Nm)이 포함된 레이어보다 이전의 레이어일 수 있다. 또한, 뉴런들(N1~N)이 포함된 레이어는 액손들(A1~An)이 포함된 레이어보다 이후의 레이어일 수 있다. 따라서, 액손들(A1~An)로부터 출력되는 스파이크 신호에 가중된 시냅틱 가중치에 따라 다음 레이어의 뉴런들(N1~Nm)로 스파이크 신호가 전달되고, 뉴런들(N1~Nm)은 전달된 스파이크 신호에 기초하여 뉴런 스파이크를 출력할 수 있다.As illustrated in FIG. 1, in the embodiments of the present disclosure, a layer including axons (A1 to An) may be a layer prior to a layer including neurons (N1 to Nm). Additionally, a layer including neurons (N1 to N) may be a layer subsequent to a layer including axons (A1 to An). Accordingly, spike signals output from axons (A1 to An) are transmitted to neurons (N1 to Nm) of the next layer according to weighted synaptic weights, and the neurons (N1 to Nm) can output neuron spikes based on the transmitted spike signals.
도 1에 도시되지는 않았지만, 제2 레이어(L2)에서의 뉴런 스파이크의 출력에 따라서 그 다음 레이어의 뉴런들로 스파이크 신호가 전달될 수 있다. 예를 들어, 제2 레이어(L2)에서 제3 레이어로 스파이크 신호가 전달되는 경우, 뉴런 스파이크의 출력에 따라 제2 레이어(L2)의 액손들이 스파이크 신호를 출력하고, 출력된 스파이크 신호에 기초하여 제3 레이어의 뉴런들로 시냅틱 가중치가 가중된 스파이크 신호가 전달될 수 있다. 제3 레이어의 뉴런들은 전달된 스파이크 신호의 누적 값이 임계 값보다 큰 경우 뉴런 스파이크를 출력할 수 있다. 즉, 하나의 레이어는 액손들 및 뉴런들을 모두 포함하거나, 액손들 또는 뉴런들 중 하나를 포함할 수 있다.Although not illustrated in FIG. 1, spike signals may be transmitted to neurons in the next layer based on the output of the neuron spike in the second layer (L2). For example, when a spike signal is transmitted from the second layer (L2) to the third layer, axons in the second layer (L2) may output spike signals based on the output of the neuron spike, and spike signals with synaptic weights may be transmitted to neurons in the third layer based on the output spike signals. Neurons in the third layer may output neuron spikes when the accumulated value of the transmitted spike signals is greater than a threshold value. That is, one layer may include both axons and neurons, or may include either axons or neurons.
도 2는 도 1의 뉴럴 네트워크를 구현한 AER(Address-Event-Representative) 프로토콜 기반의 전자 장치를 보여주는 블록도이다. 도 1 및 도 2를 참조하면, 전자 장치(100)는 뉴런 어레이(110), 행 주소 인코더(120), 행 아비터 트리(130), 열 주소 인코더(140), 및 열 아비터 트리(150)를 포함할 수 있다.FIG. 2 is a block diagram showing an electronic device based on the Address-Event-Representative (AER) protocol that implements the neural network of FIG. 1. Referring to FIGS. 1 and 2, the electronic device (100) may include a neuron array (110), a row address encoder (120), a row arbiter tree (130), a column address encoder (140), and a column arbiter tree (150).
일 실시 예에서, 도 2의 전자 장치(100)는 AER(Address-Event-Representative) 프로토콜 기반의 통신 구조를 지원하도록 구성될 수 있다. AER 프로토콜은 스파이크가 발화된 뉴런의 스파이크 정보를 다른 뉴런으로 비동기적으로 전달할 수 있는 포인트-투-포인트(Point-to-Point) 프로토콜이다. 하나의 뉴런에서 발화된 스파이크에 대한 정보가 다른 뉴런으로 전달됨으로써, 도 1의 시냅스들(S)에 의한 시냅스 연결이 구현될 수 있다. 전달되는 정보는 스파이크가 발화된 타이밍에 대한 정보와 스파이크가 발화된 뉴런의 주소를 포함할 수 있다.In one embodiment, the electronic device (100) of FIG. 2 may be configured to support a communication structure based on the Address-Event-Representative (AER) protocol. The AER protocol is a point-to-point protocol that can asynchronously transmit spike information of a neuron in which a spike has been fired to another neuron. By transmitting information about a spike fired from one neuron to another neuron, synaptic connections by the synapses (S) of FIG. 1 can be implemented. The transmitted information may include information about the timing at which the spike was fired and the address of the neuron in which the spike was fired.
일 실시 예에서, 도 2의 전자 장치(100)에서, 뉴런 어레이(110)를 제외한 나머지 구성 요소들(예를 들어, 행 주소 인코더(120), 행 아비터 트리(130), 열 주소 인코더(140), 및 열 아비터 트리(150))는 뉴런 어레이(110)에서 발생된 스파이크 신호들을 전자 장치(100)의 외부 또는 다른 전자 장치로 전송하도록 구성된 인터페이스 회로 또는 AER 인터페이스 회로를 가리킬 수 있다. In one embodiment, in the electronic device (100) of FIG. 2, the remaining components (e.g., row address encoder (120), row arbiter tree (130), column address encoder (140), and column arbiter tree (150)) excluding the neuron array (110) may refer to an interface circuit or AER interface circuit configured to transmit spike signals generated in the neuron array (110) to the outside of the electronic device (100) or to another electronic device.
뉴런 어레이(110)는 복수의 뉴런들(N11~N44)을 포함할 수 있다. 전자 장치(100)의 집적도 향상을 위해, 복수의 뉴런들(N11~N44)은 각각 행 방향 및 열 방향으로 배열될 수 있다. 도면의 간결성을 위하여, 도 2의 복수의 뉴런들(N11~N4)은 4개의 행들 및 4개의 열들로 배열된 것으로 도시되나, 본 개시의 범위가 이에 한정되는 것은 아니다. 뉴런 어레이(11)에 포함된 뉴런들의 개수, 뉴런들이 배열되는 행들의 개수 및 열들의 개수는 증가 또는 감소될 수 있다. 일 실시 예에서, 뉴런 어레이(110)는 도 2에 도시된 배열과 다른 다양한 형태의 배열을 가질 수 있다.The neuron array (110) may include a plurality of neurons (N11 to N44). In order to improve the integration of the electronic device (100), the plurality of neurons (N11 to N44) may be arranged in the row direction and the column direction, respectively. For the simplicity of the drawing, the plurality of neurons (N11 to N4) of FIG. 2 are illustrated as being arranged in four rows and four columns, but the scope of the present disclosure is not limited thereto. The number of neurons included in the neuron array (11), the number of rows in which the neurons are arranged, and the number of columns may be increased or decreased. In one embodiment, the neuron array (110) may have various arrangements different from the arrangement illustrated in FIG. 2.
뉴런 어레이(110)에 포함된 복수의 뉴런들(N11~N44) 각각은 도 1의 뉴런(예를 들어, N1~Nm 중 하나)이거나 또는 도 1의 액손(A1~An) 중 하나일 수 있으며, 스파이크 신호를 출력할 수 있다. 스파이크 신호를 출력하는 과정은 스파이크가 발화된 뉴런 블록의 주소를 출력함으로써 구현될 수 있다. 출력되는 주소는 행에 대한 주소 및 열에 대한 주소를 포함할 수 있다. 일 실시 예에서, 행에 대한 주소는 열에 대한 주소보다 우선하여 순차적으로 처리될 수 있다. 또는 열에 대한 주소는 행에 대한 주소보다 우선하여 순차적으로 처리될 수 있다. 또는, 행에 대한 주소 및 열에 대한 주소는 동시에 또는 병렬적으로 처리될 수 있다.Each of the plurality of neurons (N11 to N44) included in the neuron array (110) may be a neuron (for example, one of N1 to Nm) of FIG. 1 or one of the axons (A1 to An) of FIG. 1, and may output a spike signal. The process of outputting the spike signal may be implemented by outputting the address of the neuron block in which the spike is fired. The output address may include an address for a row and an address for a column. In one embodiment, the address for a row may be processed sequentially with priority over the address for a column. Alternatively, the address for a column may be processed sequentially with priority over the address for a row. Alternatively, the address for a row and the address for a column may be processed simultaneously or in parallel.
예를 들어, 뉴런 어레이(110)에 포함된 복수의 뉴런들(N11~N44)은 스파이크 신호를 출력할 수 있다. 복수의 뉴런들(N11~N44)로부터 출력된 스파이크 신호는 행 주소 인코더(120) 및 열 주소 인코더(140)로 제공될 수 있다. 행 주소 인코더(120)는 행 아비터 트리(130)를 사용하여, 복수의 뉴런들(N11~N44)로부터 출력된 스파이크 신호를 순차적으로 처리하여, 행 신호(SIG_row)를 출력할 수 있다. 열 주소 인코더(140)는 열 아비터 트리(150)를 사용하여, 복수의 뉴런들(N11~N44)로부터 출력된 스파이크 신호를 순차적으로 처리하여, 열 신호(SIG_col)를 출력할 수 있다.For example, a plurality of neurons (N11 to N44) included in a neuron array (110) can output spike signals. Spike signals output from the plurality of neurons (N11 to N44) can be provided to a row address encoder (120) and a column address encoder (140). The row address encoder (120) can sequentially process spike signals output from the plurality of neurons (N11 to N44) using a row arbiter tree (130) to output a row signal (SIG_row). The column address encoder (140) can sequentially process spike signals output from the plurality of neurons (N11 to N44) using a column arbiter tree (150) to output a column signal (SIG_col).
예를 들어, 행 주소 인코더(120)는 복수의 뉴런들(N11~N44) 중 제1 행에 위치한 뉴런들(예를 들어, N11, N12, N13, N14)로부터 발화된 스파이크 신호에 응답하여, 제1 요청 신호를 출력할 수 있고, 복수의 뉴런들(N11~N44) 중 제2 행에 위치한 뉴런들(예를 들어, N21, N22, N23, N24)로부터 발화된 스파이크 신호에 응답하여, 제2 요청 신호를 출력할 수 있고, 복수의 뉴런들(N11~N44) 중 제3 행에 위치한 뉴런들(예를 들어, N31, N32, N33, N34)로부터 발화된 스파이크 신호에 응답하여, 제3 요청 신호를 출력할 수 있고, 복수의 뉴런들(N11~N44) 중 제4 행에 위치한 뉴런들(예를 들어, N41, N42, N43, N44)로부터 발화된 스파이크 신호에 응답하여, 제4 요청 신호를 출력할 수 있다. 행 주소 인코더(120)는 생성된 요청 신호를 행 아비터 트리(130)로 제공할 수 있고, 행 아비터 트리(130)는 요청 신호에 응답하여, 요청 신호에 대응하는 응답 신호를 행 주소 인코더(120)로 제공할 수 있다. 행 주소 인코더(120)는 수신된 요청 신호에 대응하는 뉴런들의 행에 대한 정보를 기반으로 행 신호(SIG_row)를 출력할 수 있다.For example, the row address encoder (120) can output a first request signal in response to a spike signal fired from neurons (e.g., N11, N12, N13, N14) located in a first row among a plurality of neurons (N11 to N44), can output a second request signal in response to a spike signal fired from neurons (e.g., N21, N22, N23, N24) located in a second row among a plurality of neurons (N11 to N44), can output a third request signal in response to a spike signal fired from neurons (e.g., N31, N32, N33, N34) located in a third row among a plurality of neurons (N11 to N44), and can output a fourth request signal in response to a spike signal fired from neurons (e.g., N41, N42, N43, N44) located in a fourth row among a plurality of neurons (N11 to N44). can. The row address encoder (120) can provide the generated request signal to the row arbiter tree (130), and the row arbiter tree (130) can provide a response signal corresponding to the request signal to the row address encoder (120) in response to the request signal. The row address encoder (120) can output a row signal (SIG_row) based on information about the row of neurons corresponding to the received request signal.
이와 유사하게, 열 주소 인코더(140)는 복수의 뉴런들(N11~N44) 중 제1 열에 위치한 뉴런들(예를 들어, N11, N21, N31, N41)로부터 발화된 스파이크 신호에 응답하여, 제1 요청 신호를 출력할 수 있고, 복수의 뉴런들(N11~N44) 중 제2 열에 위치한 뉴런들(예를 들어, N12, N22, N32, N42)로부터 발화된 스파이크 신호에 응답하여, 제2 요청 신호를 출력할 수 있고, 복수의 뉴런들(N11~N44) 중 제3 열에 위치한 뉴런들(예를 들어, N13, N23, N33, N43)로부터 발화된 스파이크 신호에 응답하여, 제3 요청 신호를 출력할 수 있고, 복수의 뉴런들(N11~N44) 중 제4 열에 위치한 뉴런들(예를 들어, N14, N24, N34, N44)로부터 발화된 스파이크 신호에 응답하여, 제4 요청 신호를 출력할 수 있다. 열 주소 인코더(140)는 생성된 요청 신호를 열 아비터 트리(150)로 제공할 수 있고, 열 아비터 트리(150)는 요청 신호에 응답하여, 요청 신호에 대응하는 응답 신호를 열 소 인코더(14)로 제공할 수 있다. 열 주소 인코더(140)는 수신된 요청 신호에 대응하는 뉴런들의 열에 대한 정보를 기반으로 열 신호(SIG_col)를 출력할 수 있다.Similarly, the column address encoder (140) can output a first request signal in response to a spike signal fired from neurons located in a first column (e.g., N11, N21, N31, N41) among the plurality of neurons (N11 to N44), can output a second request signal in response to a spike signal fired from neurons located in a second column (e.g., N12, N22, N32, N42) among the plurality of neurons (N11 to N44), can output a third request signal in response to a spike signal fired from neurons located in a third column (e.g., N13, N23, N33, N43) among the plurality of neurons (N11 to N44), and can output a fourth request signal in response to a spike signal fired from neurons located in a fourth column (e.g., N14, N24, N34, N44) among the plurality of neurons (N11 to N44). The column address encoder (140) can provide the generated request signal to the column arbiter tree (150), and the column arbiter tree (150) can provide a response signal corresponding to the request signal to the column small encoder (14) in response to the request signal. The column address encoder (140) can output a column signal (SIG_col) based on information about the columns of neurons corresponding to the received request signal.
일 실시 예에서, 행 신호(SIG_row) 및 열 신호(SIG_col)를 기반으로 스파이크 신호가 출력된 뉴런 또는 뉴런의 위치가 결정될 수 있으며, 결정된 뉴런 및 뉴런의 위치에 대응하는 시냅스(S)를 통해 가중치가 반영된 스파이크 신호가 다른 뉴런(예를 들어, 전자 장치(100)에 포함된 다른 뉴런들 또는 다른 전자 장치에 포함된 뉴런들)로 제공될 수 있다.In one embodiment, a neuron or a position of a neuron that outputs a spike signal can be determined based on a row signal (SIG_row) and a column signal (SIG_col), and a spike signal with a weight reflected thereon can be provided to another neuron (e.g., other neurons included in the electronic device (100) or neurons included in another electronic device) through a synapse (S) corresponding to the determined neuron or position of the neuron.
일 실시 예에서, 행 아비터 트리(130)는 행 주소 인코더(120)로부터 제공된 스파이크 신호들의 출력 순서에 따라 행 신호(SIG_row)가 출력되도록 스파이크 신호들을 중재하는 역할을 수행할 수 있다. 열 아비터 트리(150)는 열 주소 인코더(140)로부터 제공된 스파이크 신호들의 출력 순서에 따라 열 신호(SIG_col)가 출력되도록 스파이크 신호들을 중재하는 역할을 수행할 수 있다. 이하에서 본 개시의 실시 예들을 간결하게 설명하기 위해, 행 아비터 트리(130)의 구조가 중점적으로 설명된다. 일 실시 예에서, 행 아비터 트리(130) 및 열 아비터 트리(150)의 구조는 서로 유사할 수 있다.In one embodiment, the row arbiter tree (130) may play a role of arbitrating spike signals so that the row signal (SIG_row) is output according to the output order of the spike signals provided from the row address encoder (120). The column arbiter tree (150) may play a role of arbitrating spike signals so that the column signal (SIG_col) is output according to the output order of the spike signals provided from the column address encoder (140). In order to concisely describe the embodiments of the present disclosure below, the structure of the row arbiter tree (130) will be primarily described. In one embodiment, the structures of the row arbiter tree (130) and the column arbiter tree (150) may be similar to each other.
도 3은 도 2의 행 아비터 트리의 구조를 보여주는 블록도이다. 도면의 간결성 및 설명의 편의를 위해, 행 아비터 트리를 설명하는데 불필요한 구성 요소(예를 들어, 행 어드레스 인코더)은 생략되며, 행 아비터 트리는 뉴런들(N11~N41)로부터 스파이크 신호의 출력을 위한 요청을 직접 수신하고, 요청에 대한 응답을 직접 제공하는 것으로 가정한다. 그러나 본 개시의 범위가 이에 한정되는 것은 아니며, 뉴런들(N11~N41)로부터 출력된 스파이크 신호들은 행 어드레스 인코더(120)로 제공되고, 행 어드레스 인코더(120)는 스파이크 신호들의 출력을 위한 요청을 행 아비터 트리로 제공하고, 응답을 행 아비터 트리로부터 수신할 수 있다.FIG. 3 is a block diagram showing the structure of the row arbiter tree of FIG. 2. For the sake of simplicity of the drawing and convenience of explanation, unnecessary components (e.g., row address encoders) for explaining the row arbiter tree are omitted, and it is assumed that the row arbiter tree directly receives a request for outputting a spike signal from the neurons (N11 to N41) and directly provides a response to the request. However, the scope of the present disclosure is not limited thereto, and the spike signals output from the neurons (N11 to N41) may be provided to the row address encoder (120), and the row address encoder (120) may provide a request for outputting spike signals to the row arbiter tree and receive a response from the row arbiter tree.
행 아비터 트리(10)는 제1 내지 제4 뉴런들(N11, N21, N31, N41)로부터 요청들을 수신하고, 스파이크 신호의 수신 순서 또는 발화 순서에 따라 대응하는 응답을 출력하도록 구성될 수 있다.The row arbiter tree (10) can be configured to receive requests from the first to fourth neurons (N11, N21, N31, N41) and output corresponding responses according to the reception order or firing order of spike signals.
예를 들어, 행 아비터 트리(10)는 제1 내지 제3 아비터들(ABT1~ABT3)을 포함할 수 있다. 제1 아비터(ABT1)는 제1 및 제2 뉴런들(N11, N21)과 연결될 수 있고, 제2 아비터(ABT2)는 제3 및 제4 뉴런들(N31, N41)과 연결될 수 있고, 제3 아비터(ABT3)는 제1 및 제2 아비터들(ABT1, ABT2)과 연결될 수 있다.For example, the row arbiter tree (10) may include first to third arbiters (ABT1 to ABT3). The first arbiter (ABT1) may be connected to the first and second neurons (N11, N21), the second arbiter (ABT2) may be connected to the third and fourth neurons (N31, N41), and the third arbiter (ABT3) may be connected to the first and second arbiters (ABT1, ABT2).
제1 내지 제3 아비터들(ABT1, ABT2, ABT3) 각각은 수신된 신호들의 수신 순서 또는 발생 순서에 따라, 대응하는 구성 요소에 대한 동작 우선권을 중재하도록 구성될 수 있다. 예를 들어, 제1 아비터(ABT1)는 제1 및 제2 뉴런들(N11, N21)로부터 응답 신호를 수신할 수 있다. 제1 아비터(ABT1)는 제1 및 제2 뉴런들(N11, N21) 중 먼저 발화된 뉴런에 대한 동작 우선권을 제공하도록 구성될 수 있다. 제2 아비터(ABT2)는 제3 및 제4 뉴런들(N31, N41) 중 먼저 발화된 뉴런에 대한 동작 우선권을 제공하도록 구성될 수 있다. 제3 아비터(ABT3)는 제1 및 제2 아비터들(ABT1, ABT2) 중 먼저 스파이크 신호를 출력한 아비터에 대한 동작 우선권을 제공하도록 구성될 수 있다. Each of the first to third arbiters (ABT1, ABT2, ABT3) may be configured to mediate operation priorities for corresponding components according to the reception order or generation order of the received signals. For example, the first arbiter (ABT1) may receive response signals from the first and second neurons (N11, N21). The first arbiter (ABT1) may be configured to provide operation priorities to a neuron that fires first among the first and second neurons (N11, N21). The second arbiter (ABT2) may be configured to provide operation priorities to a neuron that fires first among the third and fourth neurons (N31, N41). The third arbiter (ABT3) may be configured to provide operation priorities to an arbiter that outputs a spike signal first among the first and second arbiters (ABT1, ABT2).
즉, 제1 내지 제3 아비터들(ABT1, ABT2, ABT3)이 트리 구조로 연결됨으로써, 제1 내지 제4 뉴런들(N11~N412)에 대한 동작 우선권(예를 들어, 제1 내지 제4 뉴런들(N11~N41)로부터 발화된 스파이크 신호들의 출력 순서)이 중재될 수 있다.That is, by connecting the first to third arbiters (ABT1, ABT2, ABT3) in a tree structure, the operation priority (e.g., the output order of spike signals fired from the first to fourth neurons (N11 to N41)) for the first to fourth neurons (N11 to N412) can be mediated.
좀 더 상세한 예로서, 제1 내지 제4 뉴런들(N11~N41) 중 제1 뉴런(N11)이 가장 먼저 발화한 것으로 가정한다. 이 경우, 제1 뉴런(N11)에 대응하는 요청 신호가 제1 아비터(ABT1)로 제공될 수 있다. 제1 아비터(ABT1)는 제1 뉴런(N11)에 대응하는 요청 신호에 응답하여, 제1 뉴런(N11)이 스파이크 신호를 발화하였음을 가리키는 정보(이하에서, 설명의 편의를 위해 "제1 뉴런(N11)의 위치"라 칭함.)를 저장하고, 요청 신호를 출력할 수 있다. 일 실시 예에서, 제1 아비터(ABT1)가 제1 뉴런(N11)의 위치에 대한 정보를 저장하는 구성은 제1 아비터(ABT1)가 응답 신호를 수신하고 응답 신호를 전달하는 경로를 제1 뉴런(N11)에 대응하도록 유지함으로써 구현될 수 있다. As a more detailed example, it is assumed that the first neuron (N11) among the first to fourth neurons (N11 to N41) fires first. In this case, a request signal corresponding to the first neuron (N11) can be provided to the first arbiter (ABT1). In response to the request signal corresponding to the first neuron (N11), the first arbiter (ABT1) can store information indicating that the first neuron (N11) fired a spike signal (hereinafter, referred to as “the position of the first neuron (N11)” for convenience of explanation) and output the request signal. In one embodiment, the configuration in which the first arbiter (ABT1) stores information on the position of the first neuron (N11) can be implemented by maintaining a path along which the first arbiter (ABT1) receives a response signal and transmits the response signal so as to correspond to the first neuron (N11).
제1 아비터(ABT1)로부터 출력된 요청 신호는 제3 아비터(ABT3)로 제공된다. 제3 아비터(ABT3)는 제1 아비터(ABT1)로부터 수신된 요청 신호에 응답하여, 토큰(TK)을 반환할 수 있다. 예를 들어, 토큰(TK)이 반환되는 것은 제3 아비터(ABT3)가 토큰(TK)에 대한 정보를 포함하는 응답 신호를 제1 아비터(ABT1)로 전달함으로써 구현될 수 있다. 제1 아비터(ABT1)는 제3 아비터(ABT3)로부터 수신된 응답 신호에 응답하여, 수신된 응답 신호를 제1 뉴런(N11)으로 제공할 수 있다. 제1 뉴런(N11)은 제1 아비터(ABT1)로부터 수신된 응답 신호에 응답하여, 발화된 스파이크 신호를 외부 또는 다른 뉴런으로 제공할 수 있다. 또는, 응답 신호에 응답하여, 행 어드레스 인코더(120)는 대응하는 행 신호(SIG_row)를 출력할 수 있다.A request signal output from the first arbiter (ABT1) is provided to the third arbiter (ABT3). The third arbiter (ABT3) can return a token (TK) in response to the request signal received from the first arbiter (ABT1). For example, the return of the token (TK) can be implemented by the third arbiter (ABT3) transmitting a response signal including information about the token (TK) to the first arbiter (ABT1). The first arbiter (ABT1) can provide the received response signal to the first neuron (N11) in response to the response signal received from the third arbiter (ABT3). The first neuron (N11) can provide the fired spike signal to the outside or to another neuron in response to the response signal received from the first arbiter (ABT1). Alternatively, in response to the response signal, the row address encoder (120) may output a corresponding row signal (SIG_row).
상술된 바와 같이, 행 아비터 트리(10)는 제1 내지 제4 뉴런들(N11~N412)에 대한 동작 우선권(예를 들어, 제1 내지 제4 뉴런들(N11~N41)로부터 발화된 스파이크 신호들의 출력 순서)을 중재할 수 있다. 그러나, 행 아비터 트리(10)에 대응하는 뉴런들의 개수가 증가하는 경우(즉, 행 아비터 트리(10)로 입력되는 요청 신호들의 개수가 많아지는 경우), 행 아비터 트리(10)에 포함된 아비터들의 개수 및 아비터 스테이지들의 개수가 증가하게 된다. 이 경우, 하나의 요청 신호에 대한 응답 신호(또는 토큰)가 반환되는 시간이 증가할 수 있다. 또한, 하나의 요청 신호에 대한 응답 신호(또는 토큰)가 반환될 때까지, 특정 뉴런들은 특정 상태(예를 들어, 리셋 상태)로 대기해야 하며, 다른 뉴런들에 대응하는 요청 신호들 또한 행 아비터 트리(10)로 제공될 수 없다. As described above, the row arbiter tree (10) can mediate the operation priority (e.g., the output order of spike signals fired from the first to fourth neurons (N11 to N41)) for the first to fourth neurons (N11 to N412). However, when the number of neurons corresponding to the row arbiter tree (10) increases (i.e., when the number of request signals input to the row arbiter tree (10) increases), the number of arbiters and the number of arbiter stages included in the row arbiter tree (10) also increase. In this case, the time for a response signal (or token) to be returned to one request signal may increase. In addition, until a response signal (or token) to one request signal is returned, specific neurons must wait in a specific state (e.g., a reset state), and request signals corresponding to other neurons also cannot be provided to the row arbiter tree (10).
즉, 도 3의 행 아비터 트리(10)의 구조에 따르면, 하나의 요청 신호에 대응하는 응답 신호가 반환될 때까지 다른 뉴런들에 대한 요청 신호는 처리될 수 없으며, 이에 따라 전체적인 신호 처리 시간이 증가하게 된다. 또한, 특정 뉴런에 대한 요청 신호가 처리되는 동안, 다른 뉴런들에서 스파이크 신호가 발화된 경우, 다른 뉴런들의 발화 순서가 유지될 수 없기 때문에, 신호 처리의 왜곡이 발생하게 된다. That is, according to the structure of the row arbiter tree (10) of Fig. 3, request signals for other neurons cannot be processed until a response signal corresponding to one request signal is returned, and thus the overall signal processing time increases. In addition, if spike signals are fired from other neurons while a request signal for a specific neuron is being processed, the firing order of other neurons cannot be maintained, and therefore, distortion of signal processing occurs.
도 4는 도 2의 행 아비터 트리의 구조를 보여주는 블록도이다. 도 2 및 도 4를 참조하면, 행 아비터 트리(130)는 제1 내지 제3 아비터들(ABT1, ABT2, ABT3), 및 제1 내지 제3 래치들(LAT1, LAT2, LAT3)을 포함할 수 있다.FIG. 4 is a block diagram showing the structure of the row arbiter tree of FIG. 2. Referring to FIG. 2 and FIG. 4, the row arbiter tree (130) may include first to third arbiters (ABT1, ABT2, ABT3) and first to third latches (LAT1, LAT2, LAT3).
도면의 간결성 및 설명의 편의를 위해, 행 아비터 트리를 설명하는데 불필요한 구성 요소(예를 들어, 행 어드레스 인코더)은 생략되며, 행 아비터 트리는 뉴런들(N11~N41)로부터 스파이크 신호의 출력을 위한 요청을 직접 수신하고, 요청에 대한 응답을 직접 제공하는 것으로 가정한다. 그러나 본 개시의 범위가 이에 한정되는 것은 아니며, 뉴런들(N11~N41)로부터 출력된 스파이크 신호들은 행 어드레스 인코더(120)로 제공되고, 행 어드레스 인코더(120)는 스파이크 신호들의 출력을 위한 요청을 행 아비터 트리로 제공하고, 응답을 행 아비터 트리로부터 수신할 수 있다.For the sake of brevity of the drawing and convenience of explanation, unnecessary components (e.g., row address encoders) for describing the row arbiter tree are omitted, and it is assumed that the row arbiter tree directly receives a request for outputting a spike signal from the neurons (N11 to N41) and directly provides a response to the request. However, the scope of the present disclosure is not limited thereto, and the spike signals output from the neurons (N11 to N41) may be provided to the row address encoder (120), and the row address encoder (120) may provide a request for outputting spike signals to the row arbiter tree and receive a response from the row arbiter tree.
행 아비터 트리(10)는 제1 내지 제4 뉴런들(N11, N21, N31, N41)로부터 요청들을 수신하고, 스파이크 신호의 수신 순서 또는 발화 순서에 따라 대응하는 응답을 출력하도록 구성될 수 있다.The row arbiter tree (10) can be configured to receive requests from the first to fourth neurons (N11, N21, N31, N41) and output corresponding responses according to the reception order or firing order of spike signals.
예를 들어, 행 아비터 트리(10)는 제1 내지 제3 아비터들(ABT1~ABT3)을 포함할 수 있다. 제1 아비터(ABT1)는 제1 및 제2 뉴런들(N11, N21)과 연결될 수 있고, 제2 아비터(ABT2)는 제3 및 제4 뉴런들(N31, N41)과 연결될 수 있다.For example, the row arbiter tree (10) may include first to third arbiters (ABT1 to ABT3). The first arbiter (ABT1) may be connected to the first and second neurons (N11, N21), and the second arbiter (ABT2) may be connected to the third and fourth neurons (N31, N41).
일 실시 예에서, 도 3의 행 아비터 트리(10)와 달리, 도 4의 행 아비터 트리(130)에서, 제1 아비터(ABT1)는 제1 래치(LAT1)와 요청 신호 및 응답 신호를 주고 받을 수 있고, 제2 아비터(ABT2)는 제2 래치(LAT2)와 요청 신호 및 응답 신호를 주고 받을 수 있다. 제3 아비터(ABT3)는 제1 및 제2 래치들(LAT1, LAT2)과 연결될 수 있고, 제3 래치(LAT3)와 요청 신호 및 응답 신호를 주고 받을 수 있다. 즉, 도 4의 행 아비터 트리(130)에 포함된 아비터들(ABT1, ABT2, ABT3)의 트리 구조 상에서, 제1 내지 제3 래치들(LAT1, LAT2, LAT3)이 추가될 수 있다.In one embodiment, unlike the row arbiter tree (10) of FIG. 3, in the row arbiter tree (130) of FIG. 4, the first arbiter (ABT1) can exchange a request signal and a response signal with the first latch (LAT1), and the second arbiter (ABT2) can exchange a request signal and a response signal with the second latch (LAT2). The third arbiter (ABT3) can be connected to the first and second latches (LAT1, LAT2), and can exchange a request signal and a response signal with the third latch (LAT3). That is, in the tree structure of the arbiters (ABT1, ABT2, ABT3) included in the row arbiter tree (130) of FIG. 4, the first to third latches (LAT1, LAT2, LAT3) can be added.
제1 내지 제3 래치들(LAT1, LAT2, LAT3)은 제1 내지 제3 아비터들(ABT1, ABT2, ABT3)의 상태를 저장하도록 구성될 수 있다. 예를 들어, 제1 래치(LAT1)는 제1 아비터(ABT1)의 상태를 저장하도록 구성될 수 있고, 제2 래치(LAT2)는 제2 아비터(ABT2)의 상태를 저장하도록 구성될 수 있고, 제3 래치(LAT3)는 제3 아비터(ABT3)의 상태를 저장하도록 구성될 수 있다. 이 경우, 도 3의 행 아비터 트리(10)와 달리, 도 4의 행 아비터 트리(130)에서, 제1 내지 제3 아비터들(ABT1, ABT2, ABT3) 각각은 자신의 상태(즉, 요청 신호가 수신된 뉴런의 위치)를 저장할 필요가 없으며, 이후의 스테이지에서 응답 신호가 수신되기 이전에 다른 뉴런에 대한 응답 신호를 수신할 수 있다. The first to third latches (LAT1, LAT2, LAT3) may be configured to store the states of the first to third arbiters (ABT1, ABT2, ABT3). For example, the first latch (LAT1) may be configured to store the state of the first arbiter (ABT1), the second latch (LAT2) may be configured to store the state of the second arbiter (ABT2), and the third latch (LAT3) may be configured to store the state of the third arbiter (ABT3). In this case, unlike the row arbiter tree (10) of FIG. 3, in the row arbiter tree (130) of FIG. 4, each of the first to third arbiters (ABT1, ABT2, ABT3) does not need to store its own state (i.e., the position of the neuron from which the request signal is received), and can receive a response signal for another neuron before a response signal is received in a subsequent stage.
좀 더 상세한 예로서, 제1 뉴런(N11)에서 스파이크 신호가 발화한 것으로 가정한다. 이 경우, 제1 뉴런(N11)에 대응하는 요청 신호가 제1 아비터(ABT1)로 전달될 수 있다. 제1 아비터(ABT1)는 제1 뉴런(N11)에 대응하는 요청 신호에 응답하여, 제1 뉴런(N11)의 위치에 대한 정보를 제1 래치(LAT1)에 저장할 수 있다. 이후에, 제1 아비터(ABT1)는 제2 뉴런(N21)에 대응하는 요청 신호를 받을 수 있는 상태로 전환된다. 즉, 제1 아비터(ABT1)는, 현재 상태(즉, 제1 뉴런(N11)의 위치에 대한 정보)를 제1 래치(LAT1)에 저장함으로써, 제1 뉴런(N11)에 대응하는 요청 신호에 대한 응답 신호의 수신 또는 출력 없이, 제2 뉴런(N21)에 대응하는 요청 신호를 받을 수 있다. As a more detailed example, it is assumed that a spike signal is fired from the first neuron (N11). In this case, a request signal corresponding to the first neuron (N11) can be transmitted to the first arbiter (ABT1). The first arbiter (ABT1) can store information about the position of the first neuron (N11) in the first latch (LAT1) in response to the request signal corresponding to the first neuron (N11). Thereafter, the first arbiter (ABT1) switches to a state in which it can receive the request signal corresponding to the second neuron (N21). That is, the first arbiter (ABT1) can receive the request signal corresponding to the second neuron (N21) without receiving or outputting a response signal to the request signal corresponding to the first neuron (N11) by storing the current state (i.e., information about the position of the first neuron (N11)) in the first latch (LAT1).
제1 래치(LAT1)에 저장된 정보를 기반으로 요청 신호가 제3 아비터(ABT3)로 제공될 수 있다. 제3 아비터(ABT3)는 제1 래치(LAT1)로부터 제공된 요청 신호에 응답하여, 제3 아비터(ABT3)의 상태를 제3 래치(LAT3)에 저장할 수 있다. 일 실시 예에서, 제3 아비터(ABT3)가 최종 스테이지인 경우, 제3 아비터(ABT3)는 요청 신호에 응답하여 응답 신호를 제1 래치(LAT1)로 제공할 수 있다. 제1 래치(LAT1)는 제3 아비터(ABT3)로부터 수신된 응답 신호에 응답하여, 저장된 제1 아비터(ABT1)의 상태 정보를 기반으로, 응답 신호를 제1 뉴런(N11)으로 제공할 수 있다. A request signal may be provided to the third arbiter (ABT3) based on the information stored in the first latch (LAT1). The third arbiter (ABT3) may store the state of the third arbiter (ABT3) in the third latch (LAT3) in response to the request signal provided from the first latch (LAT1). In one embodiment, when the third arbiter (ABT3) is a final stage, the third arbiter (ABT3) may provide a response signal to the first latch (LAT1) in response to the request signal. The first latch (LAT1) may provide the response signal to the first neuron (N11) based on the stored state information of the first arbiter (ABT1) in response to the response signal received from the third arbiter (ABT3).
상술된 바와 같이, 제1 래치(LAT1)가 제1 아비터(ABT1)의 상태를 저장하도록 구성되고, 제2 래치(LAT2)가 제2 아비터(ABT2)의 상태를 저장하도록 구성되고, 제3 래치(LAT3)가 제3 아비터(ABT3)의 상태를 저장하도록 구성된 경우, 제1 내지 제3 아비터들(ABT1, ABT2, ABT3) 각각은 입력되는 요청 신호들의 순서만 판단하고, 추가적인 응답 신호를 수신하기 전에, 다른 뉴런들로부터의 요청 신호를 수신할 수 있다. 또한, 복수의 뉴런들(N11, N21, N31, N41)은 행 아비터 트리(130)로부터 응답 신호를 수신할 때까지 리셋 상태로 대기할 필요가 없다. 즉, 도 4의 행 아비터 트리(130)의 구조를 통해, 복수의 뉴런들(N11, N21, N31, N41)로부터 발화된 스파이크 신호들에 대한 병렬 처리가 가능하며, 복수의 뉴런들(N11, N21, N31, N41)로부터 발화된 스파이크 신호들의 발화 순서가 정상적으로 식별될 수 있다.As described above, when the first latch (LAT1) is configured to store the state of the first arbiter (ABT1), the second latch (LAT2) is configured to store the state of the second arbiter (ABT2), and the third latch (LAT3) is configured to store the state of the third arbiter (ABT3), each of the first to third arbiters (ABT1, ABT2, ABT3) can only determine the order of input request signals and receive request signals from other neurons before receiving an additional response signal. In addition, the plurality of neurons (N11, N21, N31, N41) do not need to wait in a reset state until receiving a response signal from the row arbiter tree (130). That is, through the structure of the row arbiter tree (130) of Fig. 4, parallel processing of spike signals fired from multiple neurons (N11, N21, N31, N41) is possible, and the firing order of spike signals fired from multiple neurons (N11, N21, N31, N41) can be normally identified.
도 5는 도 3의 행 아비터 트리에서 사용되는 다중 토큰(multi-token) 및 다중 경로(multi-path)를 설명하기 위한 도면이다. 도 6은 도 5의 다중 다중 토큰(multi-token) 및 다중 경로(multi-path)를 사용하는 행 아비터 트리의 구조를 보여주는 블록도이다. FIG. 5 is a diagram for explaining the multi-token and multi-path used in the row arbiter tree of FIG. 3. FIG. 6 is a block diagram showing the structure of the row arbiter tree using the multi-token and multi-path of FIG. 5.
도 2, 도 4, 도 5, 및 도 6을 참조하면, 행 아비터 트리(130-1)는 다중 토큰(multi-token) 및 다중 경로(multi-path)를 사용하여, 복수의 뉴런들(N11~N41)에 대한 동작을 중재할 수 있다.Referring to FIGS. 2, 4, 5, and 6, the row arbiter tree (130-1) can mediate operations for multiple neurons (N11 to N41) using multi-tokens and multi-paths.
예를 들어, 도 3을 참조하여 설명된 행 아비터 트리(10)는 하나의 토큰(TK)을 사용하여 복수의 뉴런들(N11~N41)에 대한 동작을 중재한다. 이 경우, 복수의 뉴런들(N11~N41) 중 가장 먼저 발화한 뉴런이 행 아비터 트리(10)의 전체 구조를 사용(예를 들어, winner takes all)한다.For example, the row arbiter tree (10) described with reference to FIG. 3 arbitrates actions for multiple neurons (N11 to N41) using one token (TK). In this case, the neuron that fires first among the multiple neurons (N11 to N41) uses the entire structure of the row arbiter tree (10) (e.g., winner takes all).
반면에, 도 5 및 도 6에 도시된 바와 같이, 행 아비터 트리(130-1)가 다중 토큰(multi-token) 및 다중 경로(multi-path)를 사용할 경우, 최초 발화된 뉴런에 대한 동작 뿐만 아니라, 이후 시점에 발화된 뉴런들에 대한 동작을 동시에 또는 병렬적으로 중재할 수 있다.On the other hand, as shown in FIGS. 5 and 6, when the row arbiter tree (130-1) uses multi-tokens and multi-paths, it can simultaneously or in parallel arbitrate not only the action for the initially fired neuron, but also the actions for neurons fired at later points in time.
예를 들어, 도 6에 도시된 바와 같이, 행 아비터 트리(130-1)는 제1 내지 제3 아비터들(ABT1, ABT2, ABT3) 및 제1 내지 제3 래치들(LAT1, LAT2, LAT3)을 포함할 수 있다. 제1 아비터(ABT1)는 제1 및 제2 뉴런들(N11, N21)로부터 발화된 스파이크 신호들을 중재하도록 구성될 수 있다. 제2 아비터(ABT2)는 제3 및 제4 뉴런들(N31, N41)로부터 발화된 스파이크 신호들을 중재하도록 구성될 수 있다. 제3 아비터(ABT3)는 제1 및 제2 아비터들(ABT1, ABT2)로부터의 출력을 중재하도록 구성될 수 있다.For example, as illustrated in FIG. 6, the row arbiter tree (130-1) may include first to third arbiters (ABT1, ABT2, ABT3) and first to third latches (LAT1, LAT2, LAT3). The first arbiter (ABT1) may be configured to arbitrate spike signals fired from the first and second neurons (N11, N21). The second arbiter (ABT2) may be configured to arbitrate spike signals fired from the third and fourth neurons (N31, N41). The third arbiter (ABT3) may be configured to arbitrate outputs from the first and second arbiters (ABT1, ABT2).
도 2의 행 아비터 트리(10)의 구조와 달리, 도 6의 행 아비터 트리(130-1)에서, 제1 내지 제3 아비터들(ABT1, ABT2, ABT3) 각각에 대하여 토큰 반환(TK)이 수행될 수 있다. 예를 들어, 제1 아비터(ABT1)는 제1 및 제2 뉴런들(N11, N21)에 대한 요청 신호에 응답하여, 토큰(TK) 반환을 직접 수행할 수 있다. 이 경우, 제1 아비터(ABT1)는 이후 스테이지(예를 들어, 제3 아비터(ABT3)로부터의 응답 신호를 수신하는 것 없이, 다른 뉴런들에 대한 요청 신호를 받을 수 있다. 일 실시 예에서, 제1 아비터(ABT1)의 상태(또는 연산 결과)는 복수의 래치 회로들(LAT1~LAT3)에 저장될 수 있다. 복수의 래치 회로(LAT1~LAT3)에 저장된 제1 아비터(ABT1)의 상태는 다음 스테이지(예를 들어, 제3 아비터(ABT3)로 전달될 수 있다. 다음 스테이지(예를 들어, 제3 아비터(ABT3))는 복수의 래치 회로들(LAT1~LAT3)에 저장된 정보를 기반으로 토큰(TK) 반환을 수행할 수 있다. 즉, 행 아비터 트리(130-1)는 복수의 아비터들(ABT1~ABT3) 각각에 대하여 복수의 토큰들(TK1~TKn)(또는 개별적인 토큰)을 사용함으로써, 행 아비터 트리(130-1)에서 다수의 요청 신호들이 동시에 또는 병렬적으로 처리될 수 있다. 또한, 복수의 래치 회로들(LAT1~LAT3)에 저장된 정보를 기반으로 복수의 토큰들(TK1~TKn)의 반환 순서가 결정 또는 식별될 수 있다. 일 실시 예에서, 행 주소 인코더(120)는 복수의 래치 회로들(LAT1~LAT3)에 저장된 정보를 기반으로 복수의 토큰들(TK1~TKn)의 반환 순서(즉, 대응하는 스파이크 신호의 발생 순서 또는 전송 순서)를 식별할 수 있다. Unlike the structure of the row arbiter tree (10) of Fig. 2, in the row arbiter tree (130-1) of Fig. 6, token return (TK) can be performed for each of the first to third arbiters (ABT1, ABT2, ABT3). For example, the first arbiter (ABT1) can directly perform token (TK) return in response to a request signal for the first and second neurons (N11, N21). In this case, the first arbiter (ABT1) can receive a request signal for other neurons without receiving a response signal from a subsequent stage (e.g., a third arbiter (ABT3). In one embodiment, the state (or operation result) of the first arbiter (ABT1) can be stored in a plurality of latch circuits (LAT1 to LAT3). The state of the first arbiter (ABT1) stored in the plurality of latch circuits (LAT1 to LAT3) can be transferred to the next stage (e.g., a third arbiter (ABT3)). The next stage (e.g., the third arbiter (ABT3)) can perform token (TK) return based on the information stored in the plurality of latch circuits (LAT1 to LAT3). That is, the row arbiter tree (130-1) uses a plurality of tokens (TK1 to TKn) (or individual tokens) for each of the plurality of arbiters (ABT1 to ABT3), thereby performing a row arbiter tree (130-1). In the arbiter tree (130-1), a plurality of request signals can be processed simultaneously or in parallel. In addition, the return order of the plurality of tokens (TK1 to TKn) can be determined or identified based on the information stored in the plurality of latch circuits (LAT1 to LAT3). In one embodiment, the row address encoder (120) can identify the return order (i.e., the occurrence order or transmission order of the corresponding spike signals) of the plurality of tokens (TK1 to TKn) based on the information stored in the plurality of latch circuits (LAT1 to LAT3).
일 실시 예에서, 상술된 복수의 토큰들(TK1~TKn)을 사용하는 행 아비터 트리(130-1)는, 복수의 경로들(예를 들어, 제1 경로, 제2 경로, 제3 경로)을 관리할 수 있다. 일 실시 예에서, 복수의 경로들(예를 들어, 제1 경로, 제2 경로, 및 제3 경로) 각각은 요청 신호(Req), 응답 신호(Ack), 및 어드레스(Address)(예를 들어, 대응하는 뉴런의 위치에 대응하는 어드레스)가 송수신되는 경로를 의미할 수 있다. In one embodiment, a row arbiter tree (130-1) using a plurality of tokens (TK1 to TKn) described above can manage a plurality of paths (e.g., a first path, a second path, a third path). In one embodiment, each of the plurality of paths (e.g., the first path, the second path, and the third path) can mean a path through which a request signal (Req), a response signal (Ack), and an address (e.g., an address corresponding to a location of a corresponding neuron) are transmitted and received.
복수의 경로들((예를 들어, 제1 경로, 제2 경로, 제3 경로)은 복수의 토큰들(TK1~TKn)에 대응될 수 있으며, 복수의 래치들(LAT1~LAT3)에 저장된 상태 정보를 기반으로 복수의 뉴런들(N11~N41)의 스파이크 신호 발화 순서에 따라 복수의 경로들(예를 들어, 제1 경로, 제2 경로, 및 제3 경로)를 통해 복수의 뉴런들(N11~N41)로부터 발화된 스파이크 신호가 외부로 전달될 수 있다. 즉, 본 개시에 따른 전자 장치(100)는 하나의 전송 경로가 아닌, 복수의 경로들을 통해 스파이크 신호들을 송수신할 수 있기 때문에, 스파이크 신호의 전송 속도가 향상될 수 있다.A plurality of paths (e.g., a first path, a second path, and a third path) may correspond to a plurality of tokens (TK1 to TKn), and spike signals fired from the plurality of neurons (N11 to N41) may be transmitted to the outside through the plurality of paths (e.g., a first path, a second path, and a third path) according to the spike signal firing order of the plurality of neurons (N11 to N41) based on the state information stored in the plurality of latches (LAT1 to LAT3). That is, since the electronic device (100) according to the present disclosure can transmit and receive spike signals through a plurality of paths, not a single transmission path, the transmission speed of the spike signal may be improved.
일 실시 예에서, 비록 도면에 도시되지는 않았으나, 복수의 토큰들의 개수 및 복수의 경로들의 개수는 서로 동일할 수 있다. 또는 복수의 토큰들의 개수는 복수의 경로들의 개수보다 많을 수 있다. 이 경우, 복수의 경로들 각각은 적어도 하나의 이상의 토큰들에 대응하는 스파이크 신호를 출력하도록 구성될 수 있다. In one embodiment, although not shown in the drawing, the number of the plurality of tokens and the number of the plurality of paths may be equal to each other. Or, the number of the plurality of tokens may be greater than the number of the plurality of paths. In this case, each of the plurality of paths may be configured to output a spike signal corresponding to at least one or more tokens.
도 7은 본 개시의 실시 예에 따른 전자 장치를 보여주는 블록도이다. 도 7을 참조하면, 전자 장치(1000)는 뉴럴 프로세서(1100), 프로세서(1200), RAM(random access memory)(1300), 및 저장 장치(1400)를 포함할 수 있다. 뉴럴 프로세서(1100)는 프로세서(1200)의 제어에 따라, 다양한 뉴럴 네트워크 알고리즘을 기반으로 추론 또는 예측 동작을 수행할 수 있다. 예를 들어, 뉴럴 프로세서(1100)는 뉴럴 네트워크에 기반한 연산들을 처리하기 위한 연산기 또는 가속기를 포함할 수 있다. 뉴럴 프로세서(1100)는 RAM(1300) 또는 저장 장치(1400)로부터 다양한 종류의 입력 데이터를 수신할 수 있고, 그리고 수신된 입력 데이터에 기반하여, 댜앙?h 학습을 수행하거나 또는 다양한 데이터를 추론할 수 있다. 일 실시 예에서, 뉴럴 프로세서(1100)는 도 1 내지 도 6을 참조하여 설명된 뉴럴 네트워크(NN)를 구동하도록 구성되거나 또는 도 1 내지 도 6을 참조하여 설명된 전자 장치(100)를 포함할 수 있다. 또는 뉴럴 프로세서(1100)는 도 1 내지 도 6을 참조하여 설명된 전자 장치(100)를 복수 개 포함할 수 있으며, 뉴럴 프로세서(1100)에 포함된 전자 장치들 각각은 도 1 내지 도 6을 참조하여 설명된 동작을 기반으로 신호를 주고 받을 수 있다. FIG. 7 is a block diagram showing an electronic device according to an embodiment of the present disclosure. Referring to FIG. 7, the electronic device (1000) may include a neural processor (1100), a processor (1200), a random access memory (RAM) (1300), and a storage device (1400). The neural processor (1100) may perform inference or prediction operations based on various neural network algorithms under the control of the processor (1200). For example, the neural processor (1100) may include a calculation unit or an accelerator for processing operations based on a neural network. The neural processor (1100) may receive various types of input data from the RAM (1300) or the storage device (1400), and may perform neural learning or infer various data based on the received input data. In one embodiment, the neural processor (1100) may be configured to drive a neural network (NN) as described with reference to FIGS. 1 to 6 or may include an electronic device (100) as described with reference to FIGS. 1 to 6. Alternatively, the neural processor (1100) may include a plurality of electronic devices (100) as described with reference to FIGS. 1 to 6, and each of the electronic devices included in the neural processor (1100) may transmit and receive signals based on the operations described with reference to FIGS. 1 to 6.
프로세서(1200)는 전자 장치(1000)의 동작에 필요한 다양한 연산들을 수행할 수 있다. 예를 들어, 프로세서(1200)는 RAM(1300)에 로드된 펌웨어, 소프트웨어, 또는 프로그램 코드들을 실행할 수 있다. 프로세서(1200)는 RAM(1300)에 로드된 펌웨어, 소프트웨어, 또는 프로그램 코드들을 실행함으로써, 전자 장치(1000)를 제어할 수 있다. 프로세서(1200)는 실행들의 결과를 RAM(1300) 또는 저장 장치(1400)에 저장할 수 있다.The processor (1200) can perform various operations required for the operation of the electronic device (1000). For example, the processor (1200) can execute firmware, software, or program codes loaded into the RAM (1300). The processor (1200) can control the electronic device (1000) by executing the firmware, software, or program codes loaded into the RAM (1300). The processor (1200) can store the results of the executions in the RAM (1300) or a storage device (1400).
RAM(1300)은 뉴럴 프로세서(1100) 또는 프로세서(1200)에 의해 처리될 예정인 데이터, 뉴럴 프로세서(1100) 또는 프로세서(1200)에 의해 실행될 수 있는 다양한 프로그램 코드들 또는 명령어들, 또는 뉴럴 프로세서(1100) 또는 프로세서(1200)에 의해 처리된 데이터를 저장할 수 있다. RAM(1300)은 SRAM(Static Random Access Memory) 또는 DRAM(Dynamic Random Access Memory)을 포함할 수 있다RAM (1300) can store data to be processed by the neural processor (1100) or processor (1200), various program codes or instructions that can be executed by the neural processor (1100) or processor (1200), or data processed by the neural processor (1100) or processor (1200). RAM (1300) can include SRAM (Static Random Access Memory) or DRAM (Dynamic Random Access Memory).
저장 장치(1400)는 뉴럴 프로세서(1100) 또는 프로세서(1200)가 연산을 수행하는 데 필요한 데이터 또는 정보를 저장할 수 있다. 저장 장치(1400)는 뉴럴 프로세서(1100) 또는 프로세서(1200)에 의해 처리된 데이터를 저장할 수 있다. 저장 장치(1400)는 뉴럴 프로세서(1100) 또는 프로세서(1200)에 의해 실행될 수 있는 소프트웨어, 펌웨어, 프로그램 코드, 또는 명령어들을 저장할 수 있다. 저장 장치(1400)는 DRAM, SRAM 등과 같은 휘발성 메모리 또는 플래시 메모리 등과 같은 불휘발성 메모리일 수 있다.The storage device (1400) can store data or information required for the neural processor (1100) or the processor (1200) to perform operations. The storage device (1400) can store data processed by the neural processor (1100) or the processor (1200). The storage device (1400) can store software, firmware, program codes, or instructions that can be executed by the neural processor (1100) or the processor (1200). The storage device (1400) can be a volatile memory such as a DRAM, an SRAM, or a nonvolatile memory such as a flash memory.
상술된 바와 같이, 뉴럴 네트워크는 스파이크 신호를 기반으로 학습 및 추론을 수행한다. 그러나, 인간의 고도의 지능을 모사하기 위해서는, 다수의 뉴런들이 요구되며, 이에 따라, 뉴럴 네트워크를 외부 인터페이스를 통해 확장하여, 뉴럴 네트워크에 기반된 인공 지능의 성능을 향상시킬 수 있다. 일 예로서, AER(Address-Event-Representative) 인터페이스를 사용하여, 뉴럴 네트워크가 확장될 수 있다. AER 인터페이스는 이벤트를 기반으로 스파이크 신호를 처리하기 때문에, 소모 전력이 작으며, 스파이크 신호를 직렬화하여 전송하기 때문에, 하드웨어 자원을 최소로 사용할 수 있다. 그러나, AER 인터페이스는 뉴럴 네트워크 상에서 병렬 형태로 발생하는 스파이크 신호들을 직렬화하여 출력하기 때문에, 스파이크 신호들의 발생 시간 또는 발생 순서에 대한 정보를 왜곡시키는 문제점이 있다. As described above, the neural network performs learning and inference based on spike signals. However, in order to simulate the advanced intelligence of humans, a large number of neurons are required, and accordingly, the performance of artificial intelligence based on the neural network can be improved by extending the neural network through an external interface. As an example, the neural network can be extended using the Address-Event-Representative (AER) interface. Since the AER interface processes spike signals based on events, it consumes little power, and since it serializes and transmits spike signals, it can use minimal hardware resources. However, since the AER interface serializes and outputs spike signals that occur in parallel on the neural network, there is a problem of distorting information about the occurrence time or occurrence order of spike signals.
본 개시에 따른, 뉴럴 네트워크 확장을 위한 고속 인터페이스를 지원하도록 구성된 전자 장치는, 복수의 뉴런들에서 발생한 스파이크 신호의 발생 시간 또는 발생 순서에 대한 왜곡을 최소화하면서, 외부로 신호를 전송하는 속도를 최대화하도록 구성될 수 있다. 본 개시에 따르면, 전자 장치에 포함된 아비터 트리는 별도의 래치를 통해 신호 전송 지연을 최소화할 수 있으며, 스파이크 신호의 발생 순서를 가리키는 토큰을 다수 확보하여 스파이크 신호의 발생 순서에 관한 정보를 유지할 수 있으며, 외부로 신호를 송수신하기 위한 신호 전송 경로를 다수 확보함으로써, 신호 전송 속도가 개선될 수 있다. According to the present disclosure, an electronic device configured to support a high-speed interface for neural network expansion can be configured to maximize a speed of transmitting signals to the outside while minimizing distortion of the generation time or generation order of spike signals generated from a plurality of neurons. According to the present disclosure, an arbiter tree included in the electronic device can minimize signal transmission delay through a separate latch, secure a plurality of tokens indicating the generation order of spike signals to maintain information about the generation order of spike signals, and secure a plurality of signal transmission paths for transmitting and receiving signals to the outside, thereby improving a signal transmission speed.
상술된 내용은 본 개시를 실시하기 위한 구체적인 실시 예들이다. 본 개시는 상술된 실시 예들 뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 개시는 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 개시의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 개시의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.The above-described contents are specific embodiments for carrying out the present disclosure. The present disclosure will include not only the above-described embodiments, but also embodiments that are simply designed or can be easily changed. In addition, the present disclosure will also include techniques that can be easily modified and implemented using the embodiments. Therefore, the scope of the present disclosure should not be limited to the above-described embodiments, but should be determined by the claims described below as well as the equivalents of the claims of this disclosure.
NN: 뉴럴 네트워크
A1~An: 복수의 액손들
N1~Nm: 복수의 뉴런들
L1: 제1 레이어
L2: 제2 레이어
S: 시냅스
100: 전자 장치
110: 뉴런 어레이
120: 행 주소 인코더
130: 행 아비터 트리
140: 열 주소 인코더
150: 열 아비터 트리NN: Neural Network
A1~An: Multiple axons
N1~Nm: Multiple neurons
L1: First layer
L2: Second layer
S: Synapse
100: Electronic devices
110: Neuron Array
120: Row address encoder
130: Row Arbiter Tree
140: Column address encoder
150: Ten Arbiter Trees
Claims (12)
복수의 뉴런들을 포함하는 뉴런 어레이;
상기 복수의 뉴런들으로부터 복수의 스파이크 신호들을 수신하고, 상기 수신된 복수의 스파이크 신호들에 응답하여, 복수의 요청 신호들을 출력하도록 구성된 행 주소 인코더; 및
상기 행 주소 인코더로부터 상기 복수의 요청 신호들을 수신하고, 상기 수신된 복수의 요청 신호들을 중재하도록 구성된 행 아비터 트리를 포함하고,
상기 행 아비터 트리는:
상기 복수의 요청 신호들 중 제1 및 제2 요청 신호들에 응답하여 제1 토큰을 반환하도록 구성된 제1 아비터;
상기 제1 아비터의 상태를 저장하도록 구성된 제1 래치 회로;
상기 복수의 요청 신호들 중 제3 및 제4 요청 신호들에 응답하여 제2 토큰을 반환하도록 구성된 제2 아비터;
상기 제2 아비터의 상태를 저장하도록 구성된 제2 래치 회로; 및
상기 제1 및 제2 래치 회로들에 저장된 정보를 기반으로 상기 제1 및 제2 아비터들로 제3 토큰을 반환하도록 구성된 제3 아비터를 포함하는 전자 장치.
In an electronic device configured to support a neural network,
A neuron array comprising multiple neurons;
A row address encoder configured to receive a plurality of spike signals from the plurality of neurons and output a plurality of request signals in response to the received plurality of spike signals; and
A row arbiter tree configured to receive the plurality of request signals from the row address encoder and to arbitrate the received plurality of request signals,
The above row arbiter tree is:
A first arbiter configured to return a first token in response to first and second request signals among the plurality of request signals;
A first latch circuit configured to store the state of the first arbiter;
A second arbiter configured to return a second token in response to third and fourth request signals among the plurality of request signals;
a second latch circuit configured to store the state of the second arbiter; and
An electronic device comprising a third arbiter configured to return a third token to the first and second arbiters based on information stored in the first and second latch circuits.
상기 행 주소 인코더는:
상기 복수의 스파이크 신호들 중, 상기 복수의 뉴런들 중 제1 행에 위치한 뉴런들로부터 수신된 스파이크 신호에 응답하여 상기 제1 요청 신호를 생성하고;
상기 복수의 스파이크 신호들 중, 상기 복수의 뉴런들 중 제2 행에 위치한 뉴런들로부터 수신된 스파이크 신호에 응답하여 상기 제2 요청 신호를 생성하고;
상기 복수의 스파이크 신호들 중 상기 복수의 뉴런들 중 제3 행에 위치한 뉴런들로부터 수신된 스파이크 신호에 응답하여 상기 제3 요청 신호를 생성하고;
상기 복수의 스파이크 신호들 중 상기 복수의 뉴런들 중 제4 행에 위치한 뉴런들로부터 수신된 스파이크 신호에 응답하여 상기 제4 요청 신호를 생성하는 전자 장치.
In paragraph 1,
The above row address encoder is:
Generating the first request signal in response to a spike signal received from neurons located in a first row among the plurality of neurons, among the plurality of spike signals;
Generating the second request signal in response to a spike signal received from neurons located in a second row among the plurality of neurons, among the plurality of spike signals;
Generating the third request signal in response to a spike signal received from neurons located in a third row among the plurality of neurons among the plurality of spike signals;
An electronic device that generates the fourth request signal in response to a spike signal received from neurons located in a fourth row among the plurality of neurons among the plurality of spike signals.
상기 행 주소 인코더는 상기 제1 및 제2 토큰들에 응답하여, 상기 복수의 뉴런들 중 상기 복수의 응답 신호들에 대응하는 뉴런들의 행에 대한 정보를 가리키는 행 신호를 출력하도록 구성된 전자 장치.
In paragraph 1,
An electronic device wherein the row address encoder is configured to output, in response to the first and second tokens, a row signal indicating information about a row of neurons among the plurality of neurons corresponding to the plurality of response signals.
상기 제3 아비터의 상태를 저장하도록 구성된 제3 래치 회로를 더 포함하는 전자 장치.
In paragraph 1,
An electronic device further comprising a third latch circuit configured to store a state of the third arbiter.
상기 행 주소 인코더는 상기 제1 및 제2 토큰들에 응답하여, 상기 복수의 뉴런들로부터 수신된 상기 복수의 스파이크 신호들을 행 신호로서 순차적으로 외부로 출력하도록 더 구성된 전자 장치.
In paragraph 1,
An electronic device wherein the row address encoder is further configured to sequentially output the plurality of spike signals received from the plurality of neurons as row signals in response to the first and second tokens.
상기 복수의 뉴런들으로부터 상기 복수의 스파이크 신호들을 수신하고, 상기 수신된 복수의 스파이크 신호들에 응답하여, 복수의 요청 신호들을 출력하도록 구성된 열 주소 인코더; 및
상기 열 주소 인코더로부터 상기 복수의 요청 신호를 수신하고, 상기 열 주소 인코더로부터 상기 수신된 복수의 요청 신호들에 응답하여, 복수의 응답 신호들을 출력하도록 구성된 열 아비터 트리를 더 포함하는 전자 장치.
In paragraph 1,
A column address encoder configured to receive the plurality of spike signals from the plurality of neurons and output the plurality of request signals in response to the received plurality of spike signals; and
An electronic device further comprising a column arbiter tree configured to receive the plurality of request signals from the column address encoder and output a plurality of response signals in response to the plurality of request signals received from the column address encoder.
상기 열 주소 인코더는 상기 열 아비터 트리로부터 수신된 상기 복수의 응답 신호들에 응답하여, 상기 복수의 뉴런들 중 상기 복수의 응답 신호들에 대응하는 뉴런들의 열에 대한 정보를 가리키는 열 신호를 출력하도록 구성된 전자 장치.
In paragraph 7,
An electronic device wherein the column address encoder is configured to output a column signal indicating information about a column of neurons corresponding to the plurality of response signals among the plurality of neurons, in response to the plurality of response signals received from the column arbiter tree.
상기 행 주소 인코더는 상기 제1 및 제2 래치 회로들에 저장된 정보를 기반으로 상기 제1 및 제2 토큰들의 반환 순서를 식별하도록 더 구성된 전자 장치.
In paragraph 1,
An electronic device wherein the above row address encoder is further configured to identify a return order of the first and second tokens based on information stored in the first and second latch circuits.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/965,393 US20230140256A1 (en) | 2021-10-29 | 2022-10-13 | Electric device configured to support high speed interface for expanding neural network |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR20210146574 | 2021-10-29 | ||
| KR1020210146574 | 2021-10-29 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20230062328A KR20230062328A (en) | 2023-05-09 |
| KR102800421B1 true KR102800421B1 (en) | 2025-04-29 |
Family
ID=86409076
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020220023514A Active KR102800421B1 (en) | 2021-10-29 | 2022-02-23 | Electric device configured to support high speed interface for expanding neural network |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR102800421B1 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180174032A1 (en) | 2016-12-20 | 2018-06-21 | Intel Corporation | Neuromorphic core and chip traffic control |
| US20190377997A1 (en) * | 2012-03-29 | 2019-12-12 | International Business Machines Corporation | Synaptic, dendritic, somatic, and axonal plasticity in a network of neural cores using a plastic multi-stage crossbar switching |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20200132444A (en) * | 2019-05-17 | 2020-11-25 | 한국전자통신연구원 | Spiking neural network communication device |
| KR102355612B1 (en) * | 2019-07-04 | 2022-01-27 | 한국과학기술연구원 | Neuromodule device and queuing method performed on the same |
-
2022
- 2022-02-23 KR KR1020220023514A patent/KR102800421B1/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190377997A1 (en) * | 2012-03-29 | 2019-12-12 | International Business Machines Corporation | Synaptic, dendritic, somatic, and axonal plasticity in a network of neural cores using a plastic multi-stage crossbar switching |
| US20180174032A1 (en) | 2016-12-20 | 2018-06-21 | Intel Corporation | Neuromorphic core and chip traffic control |
Non-Patent Citations (1)
| Title |
|---|
| A. Syutkin. "Hardware Implementation of Spiking Neural Networks". A Thesis in the department of electrical and computer engineering, Concordia University* |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20230062328A (en) | 2023-05-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11410017B2 (en) | Synaptic, dendritic, somatic, and axonal plasticity in a network of neural cores using a plastic multi-stage crossbar switching | |
| US10521714B2 (en) | Multi-compartment neurons with neural cores | |
| US8515885B2 (en) | Neuromorphic and synaptronic spiking neural network with synaptic weights learned using simulation | |
| TWI515670B (en) | Devices, systems and computer program products for enhanced learning | |
| US8738554B2 (en) | Event-driven universal neural network circuit | |
| Imam et al. | A digital neurosynaptic core using event-driven qdi circuits | |
| US20190156209A1 (en) | Scalable neural hardware for the noisy-or model of bayesian networks | |
| US9965718B2 (en) | Providing transposable access to a synapse array using a recursive array layout | |
| US10198690B2 (en) | Transform architecture for multiple neurosynaptic core circuits | |
| US8918351B2 (en) | Providing transposable access to a synapse array using column aggregation | |
| US10832121B2 (en) | Transform for a neurosynaptic core circuit | |
| KR102800421B1 (en) | Electric device configured to support high speed interface for expanding neural network | |
| KR20200132444A (en) | Spiking neural network communication device | |
| US20230140256A1 (en) | Electric device configured to support high speed interface for expanding neural network | |
| CN117634564A (en) | A pulse delay measurement method and system based on programmable neuromorphic core | |
| Ying et al. | A scalable hardware architecture for multi-layer spiking neural networks |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20220223 |
|
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20220629 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20220223 Comment text: Patent Application |
|
| PG1501 | Laying open of application | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20240704 Patent event code: PE09021S01D |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20250226 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20250421 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20250422 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration |