KR20200132444A - 스파이킹 뉴럴 네트워크 통신 장치 - Google Patents

스파이킹 뉴럴 네트워크 통신 장치 Download PDF

Info

Publication number
KR20200132444A
KR20200132444A KR1020190057985A KR20190057985A KR20200132444A KR 20200132444 A KR20200132444 A KR 20200132444A KR 1020190057985 A KR1020190057985 A KR 1020190057985A KR 20190057985 A KR20190057985 A KR 20190057985A KR 20200132444 A KR20200132444 A KR 20200132444A
Authority
KR
South Korea
Prior art keywords
neuron
output
address
arbiter
signal
Prior art date
Application number
KR1020190057985A
Other languages
English (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 KR1020190057985A priority Critical patent/KR20200132444A/ko
Publication of KR20200132444A publication Critical patent/KR20200132444A/ko

Links

Images

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • 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)
  • Logic Circuits (AREA)

Abstract

본 발명의 하나의 실시 예에 따른 스파이킹 뉴럴 네트워크 통신장치는 복수의 행들 및 복수의 열들로 배열된 복수의 뉴런 블록들을 포함하는 뉴런 어레이, 복수의 뉴런 블록들 중 스파이크가 발화된 뉴런 블록들로부터 제1 송신 요구 신호들을 수신하고, 수신된 제1 송신 요구 신호들에 대응되는 전류의 크기를 기반으로 복수의 행들 중 특정 행을 선택하고, 선택된 특정 행에 대한 그랜트 신호를 출력하도록 구성된 아비터, 출력된 그랜트 신호에 응답하여, 선택된 특정 행에 대응하는 제1 주소를 출력하도록 구성된 제1 주소인코더, 스파이크가 발화된 뉴런 블록들 중에서 선택된 특정 행에 포함된 뉴런 블록들로부터의 제2 송신 요구 신호들에 응답하여, 스파이크가 발화된 뉴런 블록들 중에서 선택된 특정 행에 포함된 뉴런 블록들의 열들에 대응하는 복수의 제2 주소들을 출력하도록 구성된 제2 주소인코더, 복수의 제2 주소들을 순차적으로 출력하도록 구성된 송신큐, 및 제1 주소 및 복수의 제2 주소들을 기반으로 대상 뉴런의 주소를 판별하고, 대상 뉴런의 판별된 주소를 출력하도록 구성된 송신부를 포함한다.

Description

스파이킹 뉴럴 네트워크 통신 장치{SPIKING NEURAL NETWORK COMMUNICATION DEVICE}
본 발명은 머신 러닝에 관한 것으로, 좀 더 상세하게는 스파이킹 뉴럴 네트워크 통신 장치에 관한 것이다.
뇌는 수천억 개의 신경 세포, 즉 뉴런(neuron)을 포함한다. 뉴런은 시냅스 (synapse)를 통해 다른 뉴런과 신호를 주고 받으면서 정보를 학습하고 기억할 수 있다. 뉴런은 수상돌기를 통해서 입력된 시냅스 전위들의 합이 임계 전위보다 크면, 활동 전위를 발생시켜 액손(axon)을 통해서 다른 뉴런으로 신호를 전달할 수 있다. 이러한 과정이 뉴런의 스파이킹(spiking)이다.
스파이킹 뉴럴 네트워크(Spiking Neural Network)는 인간의 뇌세포를 모사하여 실리콘에 인공 지능을 구현한 것이다. 스파이킹 뉴럴 네트워크에서, 뉴런 레이어들은 서로 완전 연결(Fully-Connected)되지 않고 시냅스 가중치가 일정 값 이상인 경우에만 연결된다.
본 발명의 목적은 스파이킹 정보 송신의 우선순위를 정하는 아비트레이션에 의한 지연을 감소시킬 수 있는 스파이킹 뉴럴 네트워크 통신 장치를 제공하는 데 있다.
본 발명의 하나의 실시 예에 따른 스파이킹 뉴럴 네트워크 통신장치는 복수의 행들 및 복수의 열들로 배열된 복수의 뉴런 블록들을 포함하는 뉴런 어레이; 상기 복수의 뉴런 블록들 중 스파이크가 발화된 뉴런 블록들로부터 제1 송신 요구 신호들을 수신하고, 상기 수신된 제1 송신 요구 신호들에 대응되는 전류의 크기를 기반으로 상기 복수의 행들 중 특정 행을 선택하고, 상기 선택된 특정 행에 대한 그랜트 신호를 출력하도록 구성된 아비터; 상기 출력된 그랜트 신호에 응답하여, 상기 선택된 특정 행에 대응하는 제1 주소를 출력하도록 구성된 제1 주소인코더; 상기 스파이크가 발화된 뉴런 블록들 중에서 상기 선택된 특정 행에 포함된 뉴런 블록들로부터의 제2 송신 요구 신호들에 응답하여, 상기 스파이크가 발화된 뉴런 블록들 중에서 상기 선택된 특정 행에 포함된 상기 뉴런 블록들의 열들에 대응하는 복수의 제2 주소들을 출력하도록 구성된 제2 주소인코더; 상기 제2 주소인코더로부터 상기 복수의 제2 주소들을 수신하고, 상기 수신된 복수의 제2 주소들을 순차적으로 출력하도록 구성된 송신큐; 및 상기 제1 주소인코더로부터 상기 제1 주소를 수신하고, 상기 송신큐로부터 상기 복수의 제2 주소들을 순차적으로 수신하고, 상기 수신된 제1 주소 및 상기 순차적으로 수신된 복수의 제2 주소들을 기반으로 대상 뉴런의 주소를 판별하고, 상기 대상 뉴런의 상기 판별된 주소를 출력하도록 구성된 송신부를 포함한다.
본 발명의 실시 예에 따른 스파이킹 뉴럴 네트워크 통신장치는 아비트레이션을 단축하여 통신 지연을 줄이고, 통신 지연에 따른 스파이크 신호의 누락을 줄일 수 있다.
또한, 본 발명의 실시 예에 따른 아비터 게이트를 아날로그 회로로 구현하는 경우, 네트워크 칩 면적을 줄이면서 전력 소모를 최소화 할 수 있다.
도 1은 본 발명의 실시 예에 따른 스파이킹 뉴럴 네트워크의 동작을 설명하기 위한 도면이다.
도 2는 AER(Address Event Representation) 프로토콜 기반의 뉴런 어레이 통신 구조를 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 AER 프로토콜 기반의 뉴런 어레이 통신 구조를 보여주는 블록도이다.
도 4는 도 3의 송신 요구 신호의 처리 과정을 설명하는 도면이다.
도 5는 도 4의 송신 요구 신호에 대응되는 그랜트 신호의 처리 과정을 설명하는 도면이다.
도 6은 도 3의 아비터를 보여주는 블록도이다.
도 7은 도 6의 아비터의 동작을 설명하기 위한 도면이다.
도 8은 전류크기 비교기를 이용하여 도 6의 아비터 동작을 구체화하는 도면이다.
도 9는 도 6의 아비터를 예시적으로 보여주는 블록도이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
이하의 도면들 또는 상세한 설명에서의 모듈들은 도면에 도시되거나 또는 상세한 설명에 기재된 구성 요소 이외에 다른 것들과 연결될 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 직접적 또는 비직접적일 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 통신에 의한 연결이거나 또는 물리적인 접속일 수 있다.
상세한 설명에서 사용되는 부 또는 유닛(unit), 모듈(module), 계층(layer) 등의 용어를 참조하여 설명되는 구성 요소들은 소프트웨어, 또는 하드웨어, 또는 그것들의 조합의 형태로 구현될 수 있다. 예시적으로, 소프트웨어는 기계 코드, 펌웨어, 임베디드 코드, 및 에플리케이션 소프트웨어일 수 있다. 예를 들어, 하드웨어는 전기 회로, 전자 회로, 프로세서, 컴퓨터, 집적 회로 코어들, 압력 센서, 관성 센서, 멤즈(Micro Electro Mechanical System; MEMS), 수동 소자, 또는 그것들의 조합을 포함할 수 있다.
도 1은 본 발명의 실시 예에 따른 스파이킹 뉴럴 네트워크의 동작을 설명하기 위한 도면이다. 도 1을 참조하면, 스파이킹 뉴럴 네트워크(SNN; Spiking Neural Network)는 제1 레이어(L1), 제2 레이어(L2), 및 시냅스들(S)을 포함할 수 있다. 제1 레이어(L1)는 m개의 액손들(A1~Am)을 포함할 수 있고, 제2 레이어(L2)는 n개의 뉴런들(N1~Nn)을 포함할 수 있다. 시냅스들(S)은 액손들(A1~Am)과 뉴런들(N1~Nn)을 연결할 수 있다. 여기서, m 및 n은 임의의 자연수일 수 있으며, m과 n은 서로 다른 수 또는 서로 같은 수일 수 있다.
제1 레이어(L1)에 포함된 액손들(A1~Am)은 각각 액손 스파이크(spike)를 출력할 수 있다. 시냅스들(S)은 출력된 액손 스파이크에 기초하여 제2 레이어(L2)에 포함된 뉴런들(N1~Nn)에게 시냅틱 가중치가 가중된 스파이크 신호를 전달할 수 있다. 하나의 액손으로부터 액손 스파이크가 출력되더라도, 시냅스들(S) 각각의 연결 강도인 시냅틱 가중치에 따라서 시냅스들(S) 각각으로부터 뉴런들(N1~Nn)로 전달되는 스파이크 신호는 달라질 수 있다. 예를 들어, 제1 시냅스의 시냅틱 가중치가 제2 시냅스의 시냅틱 가중치보다 큰 경우, 제1 시냅스와 연결된 뉴런은 제2 시냅스와 연결된 뉴런보다 더 큰 값의 스파이크 신호를 수신할 수 있다.
제2 레이어(L2)에 포함된 뉴런들(N1~Nn) 각각은 시냅스들(S)로부터 전달된 스파이크 신호를 수신할 수 있다. 스파이크 신호를 수신한 각각의 뉴런들(N1~Nn)은 수신된 스파이크 신호에 기초하여 뉴런 스파이크를 출력할 수 있다. 예시적으로, 제2 뉴런(N2)에 수신된 스파이크 신호의 누적 값이 임계 값보다 커지는 경우, 제2 뉴런(N2)은 뉴런 스파이크를 출력할 수 있다.
예를 들어, 도 1에 도시된 바와 같이, 제2 액손(A2)이 액손 스파이크를 출력하는 경우, 제2 액손(A2)과 연결된 시냅스들(S)은 뉴런들(N1~Nn)로 스파이크 신호를 전달할 수 있다. 전달되는 스파이크 신호는 제2 액손(A2)과 연결된 시냅스들(S) 각각의 시냅틱 가중치에 따라 다를 수 있다. 제2 액손(A2)과 제2 뉴런(N2)을 연결하는 시냅스(S22)로부터 제2 뉴런(N2)으로 스파이크 신호가 전달되고, 전달된 스파이크 신호에 따라 제2 뉴런(N2)의 누적된 스파이크 신호 값이 임계 값보다 커지는 경우, 제2 뉴런(N2)은 뉴런 스파이크를 출력할 수 있다.
도 1에 도시된 바와 같이, 본 발명의 실시 예들에 있어서, 액손들(A1~Am)이 포함된 레이어는 뉴런들(N1~Nn)이 포함된 레이어보다 이전의 레이어일 수 있다. 또한, 뉴런들(N1~Nn)이 포함된 레이어는 액손들(A1~Am)이 포함된 레이어보다 이후의 레이어일 수 있다. 따라서, 액손들(A1~Am)로부터 출력되는 액손 스파이크에 가중된 시냅틱 가중치에 따라 다음 레이어의 뉴런들(N1~Nn)로 스파이크 신호가 전달되고, 뉴런들(N1~Nn)은 전달된 스파이크 신호에 기초하여 뉴런 스파이크를 출력할 수 있다.
도 1에 도시되지는 않았지만, 제2 레이어(L2)에서의 뉴런 스파이크의 출력에 따라서 그 다음 레이어의 뉴런들로 스파이크 신호가 전달될 수 있다. 예를 들어, 제2 레이어(L2)에서 제3 레이어로 스파이크 신호가 전달되는 경우, 뉴런 스파이크의 출력에 따라 제2 레이어(L2)의 액손들이 액손 스파이크를 출력하고, 출력된 액손 스파이크에 기초하여 제3 레이어의 뉴런들로 시냅틱 가중치가 가중된 스파이크 신호가 전달될 수 있다. 제3 레이어의 뉴런들은 전달된 스파이크 신호의 누적 값이 임계 값보다 큰 경우 뉴런 스파이크를 출력할 수 있다. 즉, 하나의 레이어는 액손들 및 뉴런들을 모두 포함하거나, 액손들 또는 뉴런들 중 하나를 포함할 수 있다.
도 2는 AER(Address Event Representation) 프로토콜 기반의 뉴런 어레이 통신 구조를 보여주는 블록도이다. 도 2를 참조하면, AER 프로토콜 기반의 뉴런 어레이 통신 구조(10)는 뉴런 어레이(11), 제1 아비터(12), 제1 주소인코더(13), 제2 아비터(14), 제2 주소인코더(15), 송신부(16)를 포함할 수 있다.
뉴런 어레이 통신 구조(10)는 AER 프로토콜을 기반으로 구현될 수 있다. AER 프로토콜은 스파이크가 발화된 뉴런의 스파이크 정보를 다른 뉴런으로 비동기적으로 전달할 수 있는 포인트-투-포인트(Point-to-Point) 프로토콜이다. 하나의 뉴런에서 발화된 스파이크에 대한 정보가 다른 뉴런으로 전달됨으로써, 도 1의 시냅스들(S)에 의한 시냅스 연결이 구현될 수 있다. 전달되는 정보는 스파이크가 발화된 타이밍에 대한 정보와 스파이크가 발화된 뉴런의 주소를 포함할 수 있다.
뉴런 어레이(11)는 복수의 뉴런 블록들(N11~N55)을 포함할 수 있다. 네트워크 칩의 집적도를 높이기 위해, 복수의 뉴런 블록들(N11~N55)은 각각 행 방향 및 열 방향으로 배열될 수 있다. 도면의 간결성을 위하여, 도 2의 복수의 뉴런 블록들(N11~N55)은 제1 내지 제5 행들(ROW1~ROW5) 및 제1 내지 제5 열들(COL1~COL5)로 배열된 것으로 도시되나, 본 발명의 범위가 이에 한정되는 것은 아니다. 뉴런 어레이(11)에 포함된 뉴런 블록들의 개수, 뉴런 블록들이 배열되는 행들의 개수 및 열들의 개수는 증가 또는 감소될 수 있다.
뉴런 어레이(11)에 포함된 뉴런 블록(예를 들어, N22)들은 각각 뉴런 및 액손을 포함할 수 있으며, 액손 스파이크를 출력할 수 있다. 액손 스파이크를 출력하는 과정은 스파이크가 발화된 뉴런 블록의 주소를 출력함으로써 구현될 수 있다. 출력되는 주소는 행에 대한 주소 및 열에 대한 주소를 포함할 수 있다. 예시적인 실시 예에서, 행에 대한 주소는 열에 대한 주소보다 우선하여 순차적으로 처리될 수 있다. 또는 열에 대한 주소는 행에 대한 주소보다 우선하여 순차적으로 처리될 수 있다.
예를 들어, 특정 뉴런 블록(N22)에서 스파이크가 발화된 경우, 특정 뉴런 블록(N22)은 제1 송신 요구 신호(RQ1)를 출력하고, 제1 그랜트 신호(GR1)를 수신하고, 제2 송신 요구 신호(RQ2)를 출력할 수 있다. 이 때, 제1 송신 요구 신호(RQ1)는 특정 뉴런 블록(N22)의 행(ROW2) 주소 전송을 요구하는 신호이고, 제1 그랜트 신호(GR1)는 행(ROW2) 주소 전송 요구를 승낙하는 신호이며, 제2 송신 요구 신호(RQ2)는 승낙된 행(ROW2) 중에서 스파이크가 발화된 뉴런 블록(N22)의 열(COL2) 주소 전송을 요구하는 신호이다.
제1 아비터(12)는 뉴런 어레이(11)로부터 적어도 하나의 제1 송신 요구 신호(RQ1)를 수신할 수 있고, 우선순위가 높은 특정 행을 선택할 수 있으며, 선택된 특정 행으로 제1 그랜트 신호(GR1)를 출력할 수 있다. 뉴런 어레이(11)로부터 출력되는 제1 송신 요구 신호(RQ1)의 수는 2보다 많을 수 있으며, 우선순위는 제1 송신 요구 신호(RQ1)를 기반으로 판단될 수 있다.
예를 들어, 뉴런 어레이(11)에 포함된 뉴런 블록들로부터 동시 다발적으로 스파이크가 발화될 수 있다. 스파이크가 발화된 뉴런 블록의 주소들은 패킷(packet)의 형태로 순차적으로 전송되므로, 뉴런 블록의 주소들은 동시에 처리되기 어렵다. 제1 아비터(12)는 처리될 주소들 중에서 우선적으로 처리될 주소를 선택하기 위해 우선순위가 높은 뉴런 블록의 행을 선택하는 연산, 즉, 아비트레이션(arbitration)을 할 수 있다. 이 때, 우선순위는 제1 송신 요구 신호(RQ1)를 시간적으로 먼저 출력하는 행이 늦게 출력하는 행보다 높다.
예를 들어, 특정 뉴런 블록(N22)에서 스파이크가 발화된 후 다른 뉴런 블록(N32)에서 스파이크가 발화된 경우, 제1 송신 요구 신호(RQ1)는 제2 행(ROW2) 및 제3 행(ROW3)에서 발생할 수 있다. 이 경우, 제1 아비터(12)는 수신된 제1 송신 요구 신호(RQ1)들의 시간을 기반으로, 먼저 제1 송신 요구 신호(RQ1)를 출력한 제2 행(ROW2)을 선택하고, 제2 행(ROW2)으로 제1 그랜트 신호(GR1)를 출력할 수 있다.
제1 주소인코더(13)는 제1 아비터(12)로부터 제1 그랜트 신호(GR1)를 수신할 수 있고, 스파이크가 발화된 뉴런 블록의 제1 주소(ADR1)를 출력할 수 있다. 제1 주소(ADR1)는 제1 아비터(12)에 의해서 선택된 행의 주소를 포함한다. 예를 들어, 제1 아비터(12)가 제2 행(ROW2)에 대응하는 제1 그랜트 신호(GR1)를 출력하는 경우, 제1 주소인코더(13)는 제1 아비터(12)로부터 출력된 제1 그랜트 신호(GR1)를 수신할 수 있고, 제2 행(ROW2)의 주소를 포함하는 제1 주소(ADR1)를 송신부(16)로 출력할 수 있다.
제2 아비터(14)는 뉴런 어레이(11)로부터 적어도 하나의 제2 송신 요구 신호(RQ2)를 수신할 수 있고, 우선순위가 높은 특정 열을 선택할 수 있으며, 선택된 특정 열로 제2 그랜트 신호(GR2)를 출력할 수 있다. 제2 송신 요구 신호(RQ2)는 열 주소 전송을 요구하는 신호이고, 제2 그랜트 신호(GR2)는 열 주소 전송 요구를 승낙하는 신호이다. 출력되는 제2 그랜트 신호(GR2)는 제2 주소인코더(15)로 전달될 수 있다.
예를 들어, 뉴런 어레이(11)에 속한 특정 뉴런 블록(N22)에서 스파이크가 발화된 경우, 특정 뉴런 블록(N22)은 제1 아비터(12)로부터 제1 그랜트 신호(GR1)를 수신할 수 있고, 제2 송신 요구 신호(RQ2)를 출력할 수 있다. 제2 아비터(14)는 특정 뉴런 블록(N22)에서 출력된 제2 송신 요구 신호(RQ2)를 수신할 수 있고, 아비트레이션을 수행하여 제2 열(COL2)을 선택할 수 있고, 선택된 열(COL2)에 대응하는 제2 그랜트 신호(GR2)를 출력할 수 있다. 즉, 제2 아비터(14)에 의한 아비트레이션은 제1 아비터(12)에 의한 아비트레이션보다 늦게 수행될 수 있다.
제2 주소인코더(15)는 제2 아비터(14)로부터 제2 그랜트 신호(GR2)를 수신할 수 있고, 스파이크가 발화된 뉴런 블록의 제2 주소(ADR2)를 출력할 수 있다. 제2 주소(ADR2)는 제2 아비터(14)에 의해서 선택된 열의 주소를 포함한다. 예를 들어, 제2 아비터(14)가 제2 열(COL2)에 대응하는 제2 그랜트 신호(GR2)를 출력하는 경우, 제2 주소인코더(15)는 제2 열(COL2)에 대응하는 열 주소인 제2 주소(ADR2)를 송신부(16)로 전송할 수 있다.
송신부(16)는 스파이크가 발화된 뉴런 블록의 주소들(ADR1, ADR2)을 수신할 수 있고, 스파이크 발화 정보가 전달되어야 할 목적지 대상 뉴런 블록의 주소에 대한 패킷(packet)을 출력할 수 있다. 제1 주소(ADR1)는 스파이크가 발화된 뉴런 블록의 행 주소를 의미하고, 제2 주소(ADR2)는 스파이크가 발화된 뉴런 블록의 열 주소를 의미한다. 송신부(16)는 배선테이블(16-1)과 패킷생성기(16-2)를 포함할 수 있다.
배선테이블(16-1)은 스파이크가 발화된 뉴런 블록의 주소들(ADR1, ADR2)을 수신할 수 있고, 스파이크 발화 정보가 전달되어야 할 목적지 대상 뉴런 블록의 주소(ADRO)를 출력할 수 있다. 출력되는 목적지 대상 뉴런 블록의 주소(ADRO)는 제1 주소인코더(13)로부터 수신된 행 주소 및 제2 주소인코더(15)로부터 수신된 열 주소를 기반으로 결정될 수 있다. 배선테이블(16-1)은 목적지 대상 뉴런 블록의 주소(ADRO)를 판별하기 위해 목적지 대상 뉴런 블록의 주소, 시냅스 가중치, 및 시냅스 연결 관계에 대한 정보를 포함할 수 있다.
패킷생성기(16-2)는 목적지 대상 뉴런 블록의 주소(ADRO)를 수신할 수 있고, 수신한 목적지 대상 뉴런 블록의 주소(ADRO)를 패킷(packet)으로 변환하여 출력할 수 있다. 패킷에 포함된 목적지 대상 뉴런 블록의 주소는 스파이크가 발화된 뉴런 블록이 존재하는 뉴런 어레이(11)에 한정되지 않는다. 목적지 대상 뉴런 블록은 스파이크가 발화된 뉴런 블록과 동일한 뉴런 어레이(11) 또는 다른 뉴런 어레이에 존재할 수 있다. 각각의 뉴런 블록은 서로 AER 버스 또는 NoC(Network-on-Chip)를 통해서 연결될 수 있다. 즉, 패킷생성기(16-2)에 의해서 생성된 패킷은 AER 버스 또는 NoC를 통해서 목적지 대상 뉴런 블록으로 전송될 수 있다.
도 3은 본 발명의 실시 예에 따른 AER 프로토콜 기반의 뉴런 어레이 통신 구조를 보여주는 블록도이다. 도 3을 참조하면, AER 프로토콜 기반의 뉴런 어레이 통신 구조(100)는 뉴런 어레이(110), 아비터(120), 제1 주소인코더(130), 제2 주소인코더(140), 송신큐(150), 송신부(160)를 포함할 수 있다.
뉴런 어레이(110)에 포함된 뉴런 블록(예를 들어, N22)들 각각은 액손 스파이크를 출력할 수 있고, 액손 스파이크를 출력하는 과정은 스파이크가 발화된 뉴런 블록의 주소를 출력함으로써 구현될 수 있다. 예를 들어, 특정 뉴런 블록(N22)에서 스파이크가 발화된 경우, 특정 뉴런 블록(N22)은 순차적으로 제1 송신 요구 신호(RQ1)를 출력하고, 그랜트 신호(GR)를 수신하고, 제2 송신 요구 신호(RQ2)를 출력할 수 있다.
제1 송신 요구 신호(RQ1)는 특정 뉴런 블록(N22)의 행(ROW2) 주소 전송을 요구하는 신호이고, 그랜트 신호(GR)는 특정 뉴런 블록(N22)의 행(ROW2) 주소 전송 요구를 승낙하는 신호이며, 제2 송신 요구 신호는 특정 뉴런 블록(N22)의 열(COL2) 주소 전송을 요구하는 신호이다. 이 때, 특정 뉴런 블록(N22)의 열(COL2) 주소 전송에 대해 아비트레이션이 수행되지 않으므로, 특정 뉴런 블록(N22)으로부터 출력되는 제2 송신 요구 신호(RQ2)는 별도의 아비터를 거치지 않고 직접 제2 주소인코더(140)로 전달될 수 있다.
아비터(120)는 뉴런 어레이(110)로부터 적어도 하나의 제1 송신 요구 신호(RQ1)를 수신할 수 있고, 수신된 제1 송신 요구 신호(RQ1)를 기반으로 복수의 행들 중 특정 행을 선택할 수 있으며, 선택된 행에 대응하는 그랜트 신호(GR)를 출력할 수 있다. 제1 송신 요구 신호(RQ1)는 행 주소 전송을 요구하는 신호이고, 그랜트 신호(GR)는 행 주소 전송 요구를 승낙하는 신호이다. 출력되는 그랜트 신호(GR)는 제1 주소인코더(130) 및 스파이크가 발화된 뉴런 블록(예를 들어, N22)으로 전달될 수 있다
예를 들어, 아비터(120)는 뉴런 어레이(110)로부터 수신된 적어도 하나의 제1 송신 요구 신호(RQ1)를 기반으로, 각각의 행에서 스파이크가 발화된 뉴런 블록들의 수를 판별할 수 있다. 아비터(120)는 판별된 뉴런 블록들의 수를 기반으로 특정 행을 선택하고, 선택된 행으로 그랜트 신호(GR)를 출력할 수 있다. 출력되는 그랜트 신호(GR)는 제1 주소인코더(130) 및 스파이크가 발화된 뉴런 블록으로 전달될 수 있다.
좀 더 상세한 예로서, 특정 뉴런 블록들(N22, N23, N33)에서 스파이크가 동시에 또는 특정 시간 구간 동안에 발화된 경우, 제2 행(ROW2) 및 제3 행(ROW3)에서 제1 송신 요구 신호(RQ1)들이 동시에 또는 특정 시간 구간 동안에 발생할 수 있다. 이 경우, 아비터(120)는 스파이크가 발화된 뉴런 블록들이 더 많은 제2 행(ROW2)을 선택할 수 있고, 선택된 제2 행(ROW2)으로 그랜트 신호(GR)를 출력할 수 있다. 출력되는 그랜트 신호(GR)에 의해서, 스파이크가 발화된 뉴런 블록들이 상대적으로 많은 제2 행(ROW2)의 주소가 제3 행(ROW3)의 주소보다 먼저 처리될 수 있다.
스파이킹 뉴럴 네트워크 통신의 특성상, 특정 뉴런 블록에서 스파이크가 발화되면 동일한 뉴런 블록에서 연속적으로 스파이크가 다시 발화될 가능성이 높다. 이 경우, 스파이크가 발화된 뉴런 블록의 주소가 저장되기 전에 스파이크가 다시 발화되면 이전의 스파이크 발화 정보가 손실될 수 있다. 도 3의 통신 구조(100)에서 스파이크가 발화된 뉴런 블록의 주소는 우선순위가 높은 행 단위로 송신큐(150)에 전송 및 저장될 수 있다. 즉, 스파이크가 발화된 뉴런 블록의 수를 고려하여 통신 우선순위가 결정되면, 스파이크 발화 정보가 손실될 가능성이 감소될 수 있다.
제1 주소인코더(130)는 그랜트 신호(GR)를 수신할 수 있고, 스파이크가 발화된 뉴런 블록의 제1 주소(ADR1)를 출력할 수 있다. 제1 주소(ADR1)는 아비터(120)에 의해서 선택된 행의 주소를 포함할 수 있다. 예를 들어, 아비터(120)가 제2 행(ROW2)에 대응하는 그랜트 신호(GR)를 출력하는 경우, 제1 주소인코더(130)는 제2 행(ROW2)의 주소를 포함하는 제1 주소(ADR1)를 송신부(160)로 전송할 수 있다.
제2 주소인코더(140)는 적어도 하나의 제2 송신 요구 신호(RQ2)를 수신할 수 있고, 적어도 하나의 제2 주소(ADR2)를 출력할 수 있다. 제2 송신 요구 신호(RQ2)는 열 주소 전송을 요구하는 신호이고, 제2 주소(ADR2)는 아비터(120)에 의해서 선택된 행에 포함된 뉴런 블록들 중 스파이크가 발화된 뉴런 블록의 열 주소를 포함한다. 출력되는 적어도 하나의 제2 주소(ADR2)는 뉴런 어레이(110)로부터 수신된 적어도 하나의 제2 송신 요구 신호(RQ2)에 대응된다.
스파이크가 발화된 뉴런 블록은 아비터(120)로부터 그랜트 신호(GR)를 수신할 수 있고, 열 방향으로 제2 송신 요구 신호(RQ2)를 출력할 수 있다. 동시 또는 특정 시간 구간 동안에 뉴런 어레이(110)로부터 출력되는 제2 송신 요구 신호(RQ2)의 수는 2보다 많을 수 있다. 제2 주소인코더(140)는 복수의 제2 송신 요구 신호(RQ2)를 동시에 수신할 수 있으며, 복수의 제2 주소(ADR2)를 동시에 출력할 수 있다.
예를 들어, 뉴런 어레이(110)의 특정 뉴런 블록들(N22, N23, N33)에서 스파이크가 동시에 또는 특정 시간 구간 동안에 발화되고, 아비터(120)가 제2 행(ROW2)을 선택할 수 있다. 이 경우, 선택된 행(ROW2)의 스파이크가 발화된 뉴런 블록들(N22, N23) 각각은 그랜트 신호(GR)를 수신할 수 있고, 각각의 특정 열들(COL2, COL3)의 방향으로 제2 송신 요구 신호(RQ2)를 출력할 수 있다.
제2 주소인코더(140)는 특정 열들(COL2, COL3)의 방향으로 제2 송신 요구 신호(RQ2)들을 동시에 수신할 수 있고, 수신된 제2 송신 요구 신호(RQ2)들에 대응되는 제2 주소(ADR2)들(즉, COL2 및 COL3)을 동시에 출력할 수 있다. 이 때, 열 주소에 대한 아비트레이션 없이, 제2 주소(ADR2)가 출력될 수 있다.
대규모 뉴로모픽 시스템에서 스파이크는 동시 또는 특정 시간 구간 동안에 발화될 수 있다. 스파이크가 발화된 뉴런 블록의 주소를 전송할 순서를 정하기 위해 아비트레이션이 수행될 수 있고, 수행될 아비트레이션에 의한 통신 지연이 발생할 수 있으며, 통신 지연 시간 증가로 인해서 스파이크가 발화된 정보가 누락되거나, 또는 네트워크 칩이 오작동을 할 수 있다. 즉, 도 3의 통신 구조(100)에서 열 주소에 대한 아비트레이션이 생략될 수 있으므로, 아비트레이션에 의한 통신 지연이 감소될 수 있다.
그러나, 아비트레이션이 생략된 복수의 제2 송신 요구 신호(RQ2)들을 수신하는 제2 주소인코더(140)는 복수의 제2 주소(ADR2)들을 동시에 출력할 수 있다. 통신 구조(100)는 AER 프로토콜을 기반으로 구성되므로, 스파이크가 발화된 뉴런 블록들의 주소는 순차적으로 전송될 수 있다. 즉, 동시에 출력되는 복수의 제2 주소(ADR2)들을 수신하고, 순차적으로 제2 주소(ADR2)를 출력하는 모듈이 요구될 수 있다.
송신큐(150)는 제2 주소인코더(140)로부터 적어도 하나의 제2 주소(ADR2)를 수신할 수 있고, 순차적으로 제2 주소(ADR2)를 출력할 수 있다. 송신큐(150)로부터 출력되는 제2 주소(ADR2)는 순차적으로 1개씩 송신부(160)로 전송될 수 있다. 즉, 송신큐(150)는 제2 주소인코더(140)로부터 수신된 적어도 하나의 제2 주소(ADR2)를 순차적으로 모두 출력하기 전까지 출력되지 않은 제2 주소(ADR2)를 저장할 수 있다.
예를 들어, 특정 뉴런 블록들(N22, N23, N33)에서 스파이크가 동시에 또는 특정 시간 구간 동안에 발화되고, 아비터(120), 제1 주소인코더(130), 및 제2 주소인코더(140)가 연산을 수행한 경우, 송신큐(150)는 일부 특정 뉴런 블록들(N22, N23)의 열들(COL2, COL3)에 대응하는 제2 주소(ADR2)들을 동시에 수신할 수 있다. 송신큐(150)는 순차적으로 제2 주소(ADR2)를 출력할 수 있고, 제3 열(COL3)에 대응하는 제2 주소(ADR2)를 출력하는 동안 제2 열(COL2)에 대응하는 제2 주소(ADR2)를 저장할 수 있다.
만약, 송신큐(150)에 저장된 제2 주소(ADR2)들이 송신부(160)로 전송되기 전, 이미 스파이크가 발화했던 뉴런 블록들(N22, N23, N33)에서 다시 스파이크가 발화된 경우, 일부 특정 뉴런 블록들(N22, N23)의 종전 스파이크 발화 정보는 이미 송신큐(150)에 저장되었으므로 손실되지 않지만, 다른 일부 특정 뉴런 블록(N33)의 종전 스파이크 발화 정보는 손실될 수 있다.
스파이킹 뉴럴 네트워크 통신의 특성상 스파이크가 발화된 뉴런 블록에서 다시 스파이크가 발화될 가능성이 높다. 아비터(120)에 의해서 스파이크가 발화된 뉴런 블록의 수를 기반으로 특정 행이 선택되고, 선택된 특정 행의 스파이크가 발화된 뉴런 블록의 열 주소가 송신큐(150)에 저장됨으로써 스파이크 발화 정보가 손실될 가능성이 감소될 수 있다.
송신부(160)는 스파이크가 발화된 뉴런 블록의 주소들(ADR1, ADR2)을 수신할 수 있고, 스파이크 발화 정보가 전달되어야 할 목적지 대상 뉴런 블록의 주소에 대한 패킷(packet)을 출력할 수 있다. 제1 주소(ADR1)는 스파이크가 발화된 뉴런 블록의 행 주소를 의미하고, 제2 주소(ADR2)는 스파이크가 발화된 뉴런 블록의 열 주소를 의미한다. 송신부(160)는 배선테이블(161)과 패킷생성기(162)를 포함할 수 있다.
배선테이블(161)은 스파이크가 발화된 뉴런 블록의 주소들(ADR1, ADR2)을 수신할 수 있고, 스파이크 발화 정보가 전달되어야 할 목적지 대상 뉴런 블록의 주소(ADRO)를 출력할 수 있다. 출력되는 목적지 대상 뉴런 블록의 주소(ADRO)는 시냅스 연결 관계, 수신된 제1 주소(ADR1), 및 수신된 제2 주소(ADR2)를 기반으로 결정될 수 있다.
시냅스 연결은 스파이크가 발화된 하나의 뉴런 블록과 스파이크 발화 정보가 전달되어야 할 하나의 목적지 대상 뉴런 블록 사이에서 구현될 수 있다. 따라서, 배선테이블(161)은 목적지 대상 뉴런 블록의 주소(ADRO)를 순차적으로 판별하기 위해, 제2 주소인코더(140)가 동시에 출력하는 적어도 하나의 제2 주소(ADR2) 대신 송신큐(150)가 순차적으로 출력하는 제2 주소(ADR2)를 수신할 수 있다.
패킷생성기(162)는 목적지 대상 뉴런 블록의 주소(ADRO)를 수신할 수 있고, 수신한 목적지 대상 뉴런 블록의 주소(ADRO)를 패킷(packet)으로 변환하여 출력할 수 있다. 패킷에 포함된 목적지 대상 뉴런 블록의 주소는 스파이크가 발화된 뉴런 블록이 존재하는 뉴런 어레이(110)에 한정되지 않는다. 목적지 대상 뉴런 블록은 스파이크가 발화된 뉴런 블록과 동일한 뉴런 어레이(110) 또는 다른 뉴런 어레이에 존재할 수 있다. 각각의 뉴런 블록은 서로 AER 버스 또는 NoC(Network-on-Chip)를 통해서 연결될 수 있다. 즉, 패킷생성기(162)에 의해서 생성된 패킷은 AER 버스 또는 NoC를 통해서 목적지 대상 뉴런 블록으로 전송될 수 있다.
상술된 바와 같이, 본 발명의 실시 예에 따르면, 도 3의 AER 프로토콜 기반의 뉴런 어레이 통신 구조(100)는 1회의 아비트레이션을 통해 스파이크가 발화된 뉴런 블록의 주소를 처리할 수 있다. 예를 들어, 아비터(120)는 복수의 행들 중에서 우선순위가 높은 행을 선택할 수 있다. 선택된 행에 속한 스파이크가 발화된 뉴런 블록들에 대해서 열 주소들의 우선순위를 판단하지 않고, 열 주소들을 수신 및 저장하고 열 주소를 순차적으로 출력하는 송신큐(150)를 사용함으로써, 열 주소에 대한 아비트레이션이 생략될 수 있다.
도 4는 도 3의 송신 요구 신호의 처리 과정을 설명하는 도면이다. 설명의 편의 및 도면의 간결성을 위하여, 송신 요구 신호의 처리 과정을 설명하는데 불필요한 구성 요소들 및 그것들에 대한 상세한 설명은 생략된다. 도 4를 참조하면, 뉴런 어레이(111)는 복수의 뉴런 블록들(N11~N25)을 포함할 수 있다. 아비터(120)는 아비터 게이트(121)와 상위 레벨 신호처리부(122)를 포함할 수 있다.
뉴런 어레이(111)에 포함된 뉴런 블록들(N11~N25) 각각은 스파이크가 발화되면 제1 송신 요구 신호를 출력할 수 있다. 출력되는 제1 송신 요구 신호는 행 방향으로 전송될 수 있고, 같은 행의 스파이크가 발화된 다른 뉴런 블록에서 출력되는 제1 송신 요구 신호와 합쳐질 수 있다. 송신 요구 입력 신호들(RQI1, RQI2)은 대응하는 행에서 출력되는 모든 제1 송신 요구 신호를 합친 신호이며, 송신 요구 입력 신호는 특정 행의 스파이크 발화수를 포함할 수 있다. 스파이크 발화수는 스파이크가 발화된 뉴런 블록의 수를 의미한다.
예를 들어, 제1 행(ROW1)의 특정 뉴런 블록들(N11, N13, N15)에서 스파이크가 발화된 경우, 특정 뉴런 블록들(N11, N13, N15) 각각은 제1 송신 요구 신호를 출력할 수 있다. 제1 송신 요구 입력 신호(RQI1)는 제1 행(ROW1)의 특정 뉴런 블록들(N11, N13, N15) 각각으로부터 출력된 제1 송신 요구 신호들이 합쳐진 신호이다. 제1 송신 요구 입력 신호(RQI1)는 제1 행(ROW1)의 스파이크 발화수가 '3'이라는 정보를 포함할 수 있고, 아비터 게이트(121)로 전송될 수 있다.
아비터 게이트(121)는 뉴런 어레이(111)의 제1 행(ROW1) 및 제2 행(ROW2)으로부터 송신 요구 신호들(RQI1, RQI2)을 수신할 수 있고, 우선순위가 높은 특정 행을 선택할 수 있고, 선택된 특정 행에 대응되는 송신 요구 출력 신호(RQO)를 출력할 수 있다. 송신 요구 입력 신호(예를 들어, RQI1)는 특정 행의 주소 전송을 요구하는 신호이고 특정 행의 스파이크 발화수를 포함할 수 있다. 아비터 게이트(121)는 수신된 송신 요구 입력 신호를 기반으로 스파이크 발화수가 큰 행을 선택할 수 있다. 송신 요구 출력 신호(RQO)는 아비터 게이트(121)에 의해서 선택된 행의 주소 전송을 요구하는 신호이다.
예를 들어, 특정 뉴런 블록들(N11, N13, N15, N23)에서 스파이크가 발화된 경우, 아비터 게이트(121)는 제1 송신 요구 입력 신호(RQI1) 및 제2 송신 요구 입력 신호(RQI2)를 수신할 수 있다. 이 때, 제1 송신 요구 입력 신호(RQI1)는 제1 행(ROW1)의 스파이크 발화수가 '3'이라는 정보를 포함할 수 있고, 제2 송신 요구 입력 신호(RQI2)는 제2 행(ROW2)의 스파이크 발화수가 '1'이라는 정보를 포함할 수 있다. 아비터 게이트(121)는 스파이크 발화수가 큰 행(ROW1)을 선택할 수 있고, 선택된 행(ROW1)에 대응하는 송신 요구 출력 신호(RQO)를 출력할 수 있다.
상위 레벨 신호처리부(122)는 뉴런 어레이(111)에 포함된 모든 행들의 우선순위를 관리하는 유닛일 수 있다. 예를 들어, 상위 레벨 신호처리부(122)는 아비터 게이트(121)에서 출력되는 송신 요구 출력 신호(RQO) 및 다른 아비터 게이트에서 출력되는 다른 송신 요구 출력 신호를 수신하고 우선순위가 높은 행을 선택하는 상위 레벨의 아비터 게이트를 포함할 수 있다.
만약, 아비터 게이트(121)가 뉴런 어레이(111)에 포함된 모든 행들의 우선순위를 관리하는 경우, 상위 레벨 신호처리부(122)는 생략될 수 있다. 도 5는 도 4의 송신 요구 신호에 대응되는 그랜트 신호의 처리 과정을 설명하는 도면이다. 도 5를 참조하면, 뉴런 어레이(111)는 복수의 뉴런 블록들(N11~N25)을 포함할 수 있고, 아비터(120)는 아비터 게이트(121)와 상위 레벨 신호처리부(122)를 포함할 수 있다.
상위 레벨 신호처리부(122)는 뉴런 어레이(111)에 포함된 모든 행들의 우선순위를 관리하는 유닛일 수 있다. 상술된 바와 같이, 상위 레벨 신호처리부(122)는 뉴런 어레이(111)의 행들 중 우선순위가 가장 높은 행을 선택할 수 있다. 상위 레벨 신호처리부(122)는 선택된 행에 대응되는 송신 요구 신호를 처리하기 위한 그랜트 입력 신호(GRI)를 출력할 수 있다. 만약, 아비터 게이트(121)가 뉴런 어레이(111)에 포함된 모든 행들의 우선순위를 관리하는 경우, 상위 레벨 신호처리부(122)는 생략될 수 있고, 아비터 게이트(121)에서 그랜트 신호가 직접 출력될 수 있다.
아비터 게이트(121)는 상위 레벨 신호처리부(122)로부터 그랜트 입력 신호(GRI)를 수신할 수 있고, 제1 행(ROW1) 및 제2 행(ROW2) 중 우선순위가 높은 특정 행을 선택할 수 있으며, 선택된 특정 행으로 그랜트 출력 신호(예를 들어, GRO1)를 출력할 수 있다. 특정 행을 선택하는 과정은 이전에 송신 요구 신호를 처리하면서 수행되었을 수 있다. 아비터 게이트(121)로부터 출력되는 그랜트 출력 신호(예를 들어, GRO1)는 제1 주소인코더 및 뉴런 어레이(111)의 선택된 특정 행으로 전달될 수 있다. 도면의 간결성을 위해, 제1 주소인코더는 도 5에서 생략되지만, 그랜트 출력 신호(예를 들어, GRO1)를 수신한 제1 주소인코더는 선택된 행 주소에 대응하는 제1 주소를 송신부(160)로 출력할 수 있다.
예를 들어, 상위 레벨 신호처리부(122)가 아비터 게이트(121)로부터 제1 행(ROW1)에 대응하는 송신 요구 출력 신호를 수신한 경우, 상위 레벨 신호처리부(122)는 수신된 송신 요구 출력 신호에 응답하여 그랜트 입력 신호(GRI)를 출력할 수 있다. 이 경우, 아비터 게이트(121)는 상위 레벨 신호처리부(122)로부터 출력된 그랜트 입력 신호(GRI)를 수신할 수 있고, 뉴런 어레이(111)의 선택된 행(ROW1) 및 제1 주소인코더로 제1 그랜트 출력 신호(GRO1)를 출력할 수 있다.
출력되는 제1 그랜트 출력 신호(GRO1)는 제1 행(ROW1)의 주소 전송 요구를 승낙하는 신호이다. 아비터 게이트(121)는 제1 행(ROW1)을 선택했으므로, 선택되지 않은 행(ROW2)으로 다른 그랜트 출력 신호(예를 들어, 제2 그랜트 출력 신호)를 출력하지 않는다. 아비터 게이트(121)로부터 제1 그랜트 출력 신호(GRO1)를 수신한 제1 주소인코더는 제1 행(ROW1)의 주소를 송신부(160)로 출력할 수 있다.
뉴런 어레이(111)는 복수의 뉴런 블록들(N11~N25)을 포함할 수 있다. 뉴런 어레이(111)는 아비터(120) 동작의 이해를 돕기 위해 제1 행(ROW1) 및 제2 행(ROW2)으로 배열되고, 각각의 행은 5개의 뉴런 블록들을 포함하는 것으로 도시되나, 본 발명의 범위가 이에 한정되는 것은 아니다. 뉴런 어레이(111)에 포함된 뉴런 블록들의 개수, 뉴런 블록들이 배열되는 행들의 개수 및 열들의 개수는 증가 또는 감소될 수 있다.
뉴런 어레이(111)에 포함된 뉴런 블록들 각각은 그랜트 출력 신호(예를 들어, GRO1)를 수신할 수 있고, 제2 송신 요구 신호(RQ2)를 출력할 수 있다. 제2 송신 요구 신호(RQ2)는 열 주소 전송을 요구하는 신호이고, 아비터 게이트(121)에 의해서 선택된 특정 행에 포함된 뉴런 블록들 중에서 스파이크가 발화된 뉴런 블록으로부터 출력될 수 있다. 이 때, 선택된 특정 행에서 스파이크가 발화된 뉴런 블록의 수는 2보다 많을 수 있으며, 뉴런 어레이(111)는 적어도 하나의 제2 송신 요구 신호(RQ2)를 동시에 제2 주소인코더(140)로 출력할 수 있다.
예를 들어, 특정 뉴런 블록들(N11, N13, N15, N23)에서 스파이크가 발화되고 아비터 게이트(121)가 제1 행(ROW1)으로 제1 그랜트 출력 신호(GRO1)를 출력한 경우, 제1 행(ROW1)의 뉴런 블록들(N11~N15) 각각은 제1 그랜트 출력 신호(GRO1)를 수신할 수 있다. 제1 행(ROW1)에 속한 뉴런 블록들(N11~N15) 중에서 스파이크가 발화된 뉴런 블록들(N11, N13, N15) 각각은 제2 송신 요구 신호(RQ2)를 제2 주소인코더(140)로 출력할 수 있다.
이 경우, 제1 행(ROW1)의 다른 뉴런 블록들(N12, N14)은 제1 그랜트 출력 신호(GRO1)를 수신하지만 스파이크가 발화되지 않았으므로 제2 송신 요구 신호(RQ2)의 출력이 억제될 수 있고, 제2 행(ROW2)의 스파이크가 발화된 뉴런 블록(N23)은 스파이크가 발화되지만 별도의 신호(예를 들어, 제2 그랜트 출력 신호)를 수신하지 않았으므로 제2 송신 요구 신호(RQ2)의 출력이 억제될 수 있다.
이 때, 제3 열(COL3)에서 제2 송신 요구 신호(RQ2)가 출력되지만, 아비터 게이트(121)로부터 제1 그랜트 출력 신호(GRO1)를 수신한 제1 주소인코더가 제1 행(ROW1)에 대응하는 제1 주소를 송신부(160)로 출력하므로, 송신부(160)는 다른 행의 뉴런 블록(N23)의 주소가 아닌 선택된 행의 스파이크가 발화된 뉴런 블록(N13)의 주소를 얻을 수 있다.
제2 주소인코더(140)는 뉴런 어레이(111)로부터 적어도 하나의 제2 송신 요구 신호(RQ2)를 수신할 수 있고, 수신된 적어도 하나의 제2 송신 요구 신호(RQ2)에 대응하는 적어도 하나의 제2 주소(예를 들어, ADR2-1)를 출력할 수 있다. 예를 들어, 특정 뉴런 블록들(N11, N13, N15)에서 제2 송신 요구 신호(RQ2)들이 출력되는 경우, 제2 주소인코더(140)는 제2 송신 요구 신호(RQ2)들을 수신할 수 있고, 수신된 제2 송신 요구 신호(RQ2)들에 대응하는 제2 주소들(ADR2-1, ADR2-3, ADR2-5)을 출력할 수 있다.
송신큐(150)는 제2 주소인코더(140)로부터 적어도 하나의 제2 주소를 수신할 수 있고, 수신된 적어도 하나의 제2 주소 중 하나의 제2 주소를 송신부(160)로 출력할 수 있다. 예를 들어, 송신큐(150)가 제2 주소인코더(140)로부터 제2 주소들(ADR2-1, ADR2-3, ADR2-5)을 수신한 경우, 송신큐(150)는 수신된 제2 주소들(ADR2-1, ADR2-3, ADR2-5)을 저장할 수 있고, 순차적으로 제5 열의 제2 주소(ADR2-5), 제3 열의 제2 주소(ADR2-3), 및 제1 열의 제2 주소(ADR2-1)를 송신부(160)로 출력할 수 있다.
도 6은 도 3의 아비터를 보여주는 블록도이다. 아비터(120)는 송신 요구 입력 신호들(RQI1, RQI2)을 수신할 수 있고, 우선순위가 높은 행을 선택할 수 있으며, 선택된 행에 대응되는 그랜트 출력 신호(GRO1 또는 GRO2)를 출력할 수 있다. 도 6을 참조하면, 아비터(120)는 아비터 게이트(121)와 상위 레벨 신호처리부(122)를 포함할 수 있다.
아비터(120)의 아비트레이션은 아비터 게이트(121)에 의한 송신 요구 입력 신호들(RQI1, RQI2)의 처리, 상위 레벨 신호처리부(122)에 의한 송신 요구 출력 신호(RQO) 및 그랜트 입력 신호(GRI)의 처리, 및 아비터 게이트(121)에 의한 그랜트 출력 신호(GRO1 또는 GRO2)의 처리의 순서로 진행될 수 있다. 송신 요구 신호들(RQI1, RQI2, RQO)은 행 주소 전송을 요구하는 신호이고, 그랜트 신호들(GRI, GRO1, GRO2)은 행 주소 전송 요구를 승낙하는 신호이다.
아비터 게이트(121)는 제1 행(ROW1) 및 제2 행(ROW2)으로부터 각각 송신 요구 입력 신호들(RQI1, RQI2)을 수신할 수 있고, 우선순위가 높은 행을 선택할 수 있으며, 선택된 행에 대응되는 송신 요구 출력 신호(RQO)를 출력할 수 있다. 아비터 게이트(121)는 복수의 뉴런 블록들과 행 단위로 연결될 수 있다. 복수의 행들(ROW1, ROW2) 각각으로부터 송신 요구 입력 신호들(RQI1, RQI2) 각각은 동시에 또는 특정 시간 구간 동안에 아비터 게이트(121)로 출력될 수 있다. 아비터 게이트(121)는 우선순위가 높은 특정 행을 선택할 수 있고, 우선순위는 수신된 신호들(RQI1, RQI2)에 대응되는 행들(ROW1, ROW2)의 스파이크 발화수를 기반으로 판단될 수 있다. 스파이크 발화수는 스파이크가 발화된 뉴런 블록의 수를 의미한다. 출력되는 송신 요구 출력 신호(RQO)는 선택된 행에 대응되는 송신 요구 입력 신호(예를 들어, RQI1)를 포함할 수 있다.
상위 레벨 신호처리부(122)는 뉴런 어레이에 포함된 모든 행들의 우선순위를 관리하는 유닛일 수 있다. 상술된 바와 같이, 상위 레벨 신호처리부(122)는 아비터 게이트(121)에서 출력되는 송신 요구 신호를 관리하는 상위 레벨의 아비터 게이트를 포함할 수 있고, 아비터 게이트(121)가 뉴런 어레이의 모든 행들의 우선순위를 관리하는 경우 상위 레벨 신호처리부(122)는 생략될 수 있다. 예를 들어, 상위 레벨 신호처리부(122)는 아비터 게이트(121)로부터 송신 요구 출력 신호(RQO)를 수신할 수 있고, 수신된 송신 요구 출력 신호(RQO)에 응답하여 그랜트 입력 신호(GRI)를 출력할 수 있다. 출력되는 그랜트 입력 신호(GRI)는 송신 요구 출력 신호(RQO)에 대응될 수 있다. 출력되는 그랜트 입력 신호(GRI)는 아비터 게이트(121)로 전달될 수 있다.
아비터 게이트(121)는 상위 레벨 신호처리부(122)로부터 그랜트 입력 신호(GRI)를 수신할 수 있고, 선택된 특정 행으로 그랜트 출력 신호(GRO1 또는 GRO2)를 출력할 수 있다. 특정 행을 선택하는 과정은 이전에 송신 요구 신호들을 처리하면서 수행되었을 수 있다. 출력되는 그랜트 출력 신호(GRO1 또는 GRO2)는 제1 주소인코더 및 선택된 특정 행으로 전달될 수 있다.
예를 들어, 제1 행(ROW1)의 스파이크 발화수가 '3'이고, 제2 행(ROW2)의 스파이크 발화수가 '1'인 경우, 아비터 게이트(121)는 송신 요구 입력 신호들(RQI1, RQI2)을 수신할 수 있다. 아비터 게이트(121)는 스파이크 발화수를 기반으로 우선순위가 높은 제1 행(ROW1)을 선택할 수 있고, 선택된 행(ROW1)에 대응하는 제1 송신 요구 입력 신호(RQI1)를 포함하는 송신 요구 출력 신호(RQO)를 출력할 수 있다.
상위 레벨 신호처리부(122)는 아비터 게이트(121)로부터 출력된 송신 요구 출력 신호(RQO)를 수신할 수 있고, 수신된 송신 요구 출력 신호(RQO)에 응답하여 그랜트 입력 신호(GRI)를 출력할 수 있다. 아비터 게이트(121)는 그랜트 입력 신호(GRI)를 수신할 수 있고, 선택된 제1 행(ROW1)으로 제1 그랜트 출력 신호(GRO1)를 출력할 수 있다. 출력되는 제1 그랜트 출력 신호(GRO1)는 제1 주소인코더 및 제1 행(ROW1)으로 전달될 수 있다. 이 때, 제2 행(ROW2)으로 제2 그랜트 출력 신호(GRO2)가 출력되지 않는다.
도 7은 도 6의 아비터의 동작을 설명하기 위한 도면이다. 도 6의 아비터 게이트(121)에 의한 아비트레이션은 스파이크 발화수가 큰 행이 판단될 수 있음을 전제로 한다. 스파이크 발화수는 스파이크가 발화된 뉴런 블록의 수를 의미한다. 도 7에 도시된 회로는 스파이크 발화수를 판단 및 비교하는 방법을 구체화 한 회로이다. 각각의 행에 대한 스파이크 발화수는 덧셈기 회로에 의해서 계산될 수 있다. 아비터 게이트(121-1)는 스파이크 발화수를 비교할 수 있는 비교기를 포함할 수 있고, 비교결과를 기반으로 스파이크 발화수가 높은 행을 선택할 수 있다.
뉴런 어레이(111-1)는 복수의 뉴런 블록들(N11~N25)을 포함할 수 있다. 포함된 뉴런 블록들(N11~N25)은 아비터(120) 동작의 이해를 돕기 위해 2개의 행들(ROW1~ROW2) 및 5개의 열들(COL1~COL5)로 배열된 것으로 도시되나, 본 발명의 범위가 이에 한정되는 것은 아니다. 뉴런 블록(예를 들어, N11) 각각은 덧셈기와 연결될 수 있고, 연결된 덧셈기에 송신 요구 연산 신호(예를 들어, RQ11)를 출력할 수 있다. 특정 행(예를 들어, ROW1)에 포함된 덧셈기는 특정 행에 포함된 다른 덧셈기와 연결될 수 있다.
덧셈기는 연결된 뉴런 블록 및 이전 열의 덧셈기로부터 송신 요구 연산 신호를 수신할 수 있고, 수신된 송신 요구 연산 신호를 기반으로 이전 열까지 누적된 스파이크 발화수와 연결된 뉴런 블록의 스파이크 발화수(발화된 경우 '1', 발화되지 않은 경우 '0')를 더할 수 있고, 더해진 스파이크 발화수를 포함한 송신 요구 연산 신호를 출력할 수 있다. 마지막 열(COL5)의 덧셈기는 덧셈기가 속한 행 전체의 스파이크 발화수를 포함한 송신 요구 최종 연산 신호(예를 들어, RQ-F1)를 출력할 수 있다.
예를 들어, 특정 뉴런 블록들(N11, N13, N15, N23)에서 스파이크가 발화된 경우, 특정 뉴런 블록들(N11, N13, N15, N23) 각각은 송신 요구 연산 신호들(RQ11, RQ13, RQ15, RQ23) 각각을 연결된 덧셈기로 출력할 수 있다. 제1 행(ROW1)의 경우, 마지막 열의 뉴런 블록(N15)과 연결된 덧셈기는 이전 열(COL4)까지 누적된 스파이크 발화수(예를 들어, '2')와 해당 열(COL5)의 스파이크 발화수(예를 들어, '1')를 더한 스파이크 발화수(예를 들어, '3')를 포함한 제1 송신 요구 최종 연산 신호(RQ-F1)를 출력할 수 있다. 제2 행(ROW2)의 경우, 마지막 열의 뉴런 블록(N25)과 연결된 덧셈기는 이전 열(COL4)까지 누적된 스파이크 발화수(예를 들어, '1')와 해당 열(COL5)의 스파이크 발화수(예를 들어, '0')를 더한 스파이크 발화수(예를 들어, '1')를 포함한 제2 송신 요구 최종 연산 신호(RQ-F2)를 출력할 수 있다.
아비터 게이트(121-1)는 송신 요구 최종 연산 신호들(RQ-F1, RQ-F2)을 수신할 수 있다. 아비터 게이트(121-1)는 수신된 송신 요구 최종 연산 신호들(RQ-F1, RQ-F2)을 기반으로 우선순위가 높은 행을 선택할 수 있고, 선택된 행에 대응하는 송신 요구 출력 신호(RQO)를 출력할 수 있다. 우선순위는 송신 요구 최종 연산 신호를 출력하는 행들의 스파이크 발화수를 기반으로 판단될 수 있다. 아비터 게이트(121-1)는 수신된 송신 요구 최종 연산 신호들 각각에 포함된 스파이크 발화수를 비교하는 비교기를 포함할 수 있다.
예를 들어, 특정 뉴런 블록들(N11, N13, N15, N23)에서 스파이크가 발화되고, 뉴런 어레이(111-1)로부터 제1 송신 요구 최종 연산 신호(RQ-F1) 및 제2 송신 요구 최종 연산 신호(RQ-F2)가 출력된 경우, 제1 송신 요구 최종 연산 신호(RQ-F1)는 제1 행(ROW1)의 스파이크 발화수(예를 들어, '3')를 포함할 수 있고, 제2 송신 요구 최종 연산 신호(RQ-F2)는 제2 행(ROW2)의 스파이크 발화수(예를 들어, '1')를 포함할 수 있다. 아비터 게이트(121-1)에 포함된 비교기는 제1 행(ROW1)의 스파이크 발화수(예를 들어, '3')와 제2 행(ROW2)의 스파이크 발화수(예를 들어, '1')를 비교할 수 있고, 아비터 게이트(121-1)는 스파이크 발화수가 큰 제1 행(ROW1)을 선택할 수 있다.
상위 레벨 신호처리부(122)는 뉴런 어레이(111-1)에 포함된 모든 행들의 우선순위를 관리하는 유닛일 수 있다. 스파이크 발화수의 비교 및 우선순위가 높은 행의 선택은 아비터 게이트(121-1)에서 수행되므로, 상위 레벨 신호처리부(122)의 기능 및 동작은 도 6의 상위 레벨 신호처리부(122)와 동일하다.
도 8은 전류크기 비교기를 이용하여 도 6의 아비터 동작을 구체화하는 도면이다. 도 6의 아비터 게이트(121)에 의한 아비트레이션은 스파이크 발화수가 큰 행이 판단될 수 있음을 전제로 한다. 도 8에서 나타낸 회로는 도 7에서 도시한 방법과 다른 방법으로 스파이크 발화수를 비교하는 방법을 구체화한 회로이다.
스파이크가 발화된 뉴런 블록으로부터 발생하는 송신 요구 신호는 전류의 형태로 전송될 수 있다. 특정 행에서 스파이크가 발화된 뉴런 블록의 수가 많으면, 전송되는 송신 요구 신호에 대응되는 전류의 크기가 증가할 수 있다. 즉, 아비터 게이트(121-2)에 유입되는 전류의 크기를 비교하면 스파이크가 발화된 뉴런 블록의 수가 큰 행이 판단될 수 있다.
아비터 게이트(121-2)는 수신되는 송신 요구 입력 신호들(RQI1, RQI2)에 대응되는 전류의 크기로 스파이크 발화수를 비교할 수 있다. 도 7의 아비터 게이트(121-1)는 덧셈 결과를 기반으로 스파이크 발화수를 판단하므로, 별도의 덧셈기 및 덧셈결과를 전달할 별도의 신호선이 요구되지만, 도 8의 아비터 게이트(121-2)는 전류의 크기를 기반으로 스파이크 발화수의 대소를 비교할 수 있으므로, 뉴런 어레이에 덧셈기 및 덧셈결과를 전달할 신호선을 추가로 설치하는 과정이 생략될 수 있다.
아비터 게이트(121-2)는 송신 요구 입력 신호들(RQI1, RQI2)을 수신할 수 있고, 우선순위가 높은 특정 행을 선택할 수 있으며, 송신 요구 출력 신호(RQO)를 출력할 수 있다. 아비터(120) 동작의 이해를 돕기 위해 아비터 게이트(121-2)는 2개의 행들(ROW1, ROW2)과 연결된 것으로 도시되나, 본 발명은 이에 한정되지 않는다.
아비터 게이트(121-2)는 전류크기 비교기(COMP), 송신 요구 신호 스위치(SWR), 및 그랜트 신호 스위치(SWG)를 포함할 수 있다. 전류크기 비교기(COMP)는 수신된 송신 요구 신호에 대응되는 전류의 크기를 비교할 수 있고, 비교 결과를 기반으로 스위치들(SWR, SWG)을 제어할 수 있다. 제어되는 스위치들(SWR, SWG)은 출력되는 전류의 크기가 큰 행이 상위 레벨 신호처리부(122)와 연결되도록 동작할 수 있다.
예를 들어, 제1 행(ROW1)의 스파이크 발화수가 '3'이고, 제2 행(ROW2)의 스파이크 발화수가 '1'인 경우, 아비터 게이트(121-2)는 송신 요구 입력 신호들(RQI1, RQI2)을 수신할 수 있다. 수신되는 송신 요구 입력 신호들(RQI1, RQI2)은 전류의 형태로 전달되며, 전류크기 비교기(COMP)는 제1 송신 요구 입력 신호(RQI1)에 대응되는 전류의 크기가 제2 송신 요구 입력 신호(RQI2)에 대응되는 전류의 크기보다 크다고 판단할 수 있다.
전류크기 비교기(COMP)는 비교 결과를 기반으로 송신 요구 신호 스위치(SWR)를 제어할 수 있고, 송신 요구 신호 스위치(SWR)는 제1 행(ROW1)과 상위 레벨 신호처리부(122)가 연결되도록 동작할 수 있다. 예를 들어, 제1 송신 요구 입력 신호(RQI1)에 대응되는 전류 크기가 제2 송신 요구 입력 신호(RQI2)에 대응되는 전류 크기보다 큰 경우, 아비터 게이트(121-2)의 송신 요구 스위치(SWR)는 제1 송신 요구 입력 신호(RQI1)가 송신 요구 출력 신호(RQO)로서 출력되도록, 전류 크기 비교기(COMP)의 제어에 따라 동작할 수 있다.
상위 레벨 신호처리부(122)는 뉴런 어레이에 포함된 모든 행들의 우선순위를 관리하는 유닛일 수 있다. 스파이크 발화수의 비교 및 우선순위가 높은 행의 선택은 아비터 게이트(121-2)에서 수행되므로, 상위 레벨 신호처리부(122)의 기능 및 동작은 도 6의 상위 레벨 신호처리부(122)와 동일하다.
아비터 게이트(121-2)는 상위 레벨 신호처리부(122)로부터 그랜트 입력 신호(GRI)를 수신할 수 있고, 선택된 특정 행으로 그랜트 출력 신호(GRO1 또는 GRO2)를 출력할 수 있다. 아비터 게이트(121-2)에 포함된 전류크기 비교기(COMP)는 이전에 수신된 송신 요구 입력 신호들(RQI1, RQI2)의 전류의 크기를 기반으로 그랜트 신호 스위치(SWG)를 제어할 수 있다.
그랜트 신호 스위치(SWG)는 상위 레벨 신호처리부(122)가 선택된 특정 행과 연결되도록, 전류크기 비교기(COMP)의 제어에 따라 동작할 수 있다. 이 때, 선택된 특정 행은 이전에 출력된 송신 요구 입력 신호(예를 들어, RQI1)에 대응되는 전류의 크기가 큰 행일 수 있다. 아비터 게이트(121-2)의 그랜트 신호 스위치(SWG)는 그랜트 입력 신호(GRI)를 수신하고, 전류 크기 비교기(COMP)의 제어에 따라, 수신된 그랜트 입력 신호(GRI)를 제1 및 제2 그랜트 출력 신호들(GOI1, GOI2) 중 어느 하나로서 출력할 수 있다.
예를 들어, 전류크기 비교기(COMP)가 제1 송신 요구 입력 신호(RQI1)에 대응되는 전류의 크기가 제2 송신 요구 입력 신호(RQI2)에 대응되는 전류의 크기보다 크다고 판단한 경우, 전류크기 비교기(COMP)는 상위 레벨 신호처리부(122)와 제1 행(ROW1)이 연결되도록 그랜트 신호 스위치(SWG)를 제어할 수 있다. 아비터 게이트(121-2)는 그랜트 입력 신호(GRI)를 수신할 수 있고, 수신된 그랜트 입력 신호(GRI)를 포함하는 제1 그랜트 출력 신호(GRO1)를 제1 행(ROW1)으로 출력할 수 있다. 이 때, 제2 행(ROW2)으로 제2 그랜트 출력 신호(GRO2)가 출력되지 않는다.
도 9는 도 6의 아비터를 예시적으로 보여주는 블록도이다. 기본 단위의 아비터 게이트(예를 들어, AG1)는 2개의 송신 요구 신호들을 처리할 수 있으며, 2보다 많은 뉴런 블록들의 송신 요구 신호들을 처리하기 위해서 복수의 아비터 게이트들(예를 들어, AG1 내지 AG7)을 포함하는 아비터 트리가 사용될 수 있다. 아비터 트리가 적용된 아비터(120-1)에 의한 아비트레이션은 송신 요구 신호(RQ)처리, 그랜트 신호(GR) 처리의 순서로 수행될 수 있다. 아비터 트리 동작의 이해를 돕기 위해서, 아비터 트리가 적용된 아비터(120-1)는 8개의 행들(ROW1~ROW8)과 연결된 것으로 도시되나, 본 발명의 범위가 이에 한정되는 것은 아니다.
아비터 트리가 적용된 아비터(120-1)는 복수의 아비터 게이트들(AG1~AG7)을 포함할 수 있다. 아비터 트리가 적용된 아비터(120-1) 동작의 이해를 돕기 위해, 아비터 트리가 적용된 아비터(120-1)는 7개의 아비터 게이트들(AG1~AG7)을 포함하는 것으로 도시되나, 본 발명의 범위가 이에 한정되는 것은 아니다. 수신되는 송신 요구 신호(RQ)들의 수에 따라서 아비터 게이트의 수는 증가 또는 감소될 수 있다.
아비터 트리가 적용된 아비터(120-1)에서 송신 요구 신호(RQ)는 하위 레벨의 아비터 게이트에서 상위 레벨의 아비터 게이트로 전달될 수 있다. 예를 들어, 7개의 아비터 게이트들(AG1~AG7)을 포함하는 아비터 트리가 적용된 아비터(120-1)는 제1 레벨의 아비터 게이트(AG1~AG4), 제2 레벨의 아비터 게이트(AG5, AG6), 및 제3 레벨의 아비터 게이트(AG7)를 포함할 수 있다.
아비터 게이트들(AG1~AG7) 각각은 2개의 송신 요구 신호(RQ)들을 수신할 수 있고, 수신된 송신 요구 신호(RQ)들을 기반으로 우선순위가 높은 행을 선택할 수 있으며, 선택된 행에 대응되는 송신 요구 신호(RQ)를 상위 레벨(제2 레벨 또는 제3 레벨)의 아비터 게이트로 출력할 수 있다.
예를 들어, 아비터 트리가 적용된 아비터(120-1)와 연결된 행들(ROW1~ROW8) 중에서 제5 행(ROW5)의 우선순위가 가장 높은 경우, 제5 행(ROW5)에서 출력되는 송신 요구 신호(RQ)는 연동된 제1 레벨의 아비터 게이트(AG3), 연동된 제2 레벨의 아비터 게이트(AG6), 및 연동된 제3 레벨의 아비터 게이트(AG7)로 전달될 수 있다.
아비터 트리가 적용된 아비터(120-1)에서 최상위 레벨의 아비터 게이트는 우선순위가 가장 높은 행의 송신 요구 신호를 처리할 수 있다. 예를 들어, 7개의 아비터 게이트들(AG1~AG7)을 포함하는 아비터 트리가 적용된 아비터(120-1)는 제1 레벨의 아비터 게이트(AG1~AG4), 제2 레벨의 아비터 게이트(AG5~AG6), 및 제3 레벨의 아비터 게이트(AG7)를 포함할 수 있다. 이 때, 제3 레벨의 아비터 게이트(AG7)는 최상위 레벨의 아비터 게이트일 수 있다.
최상위 레벨의 아비터 게이트, 즉, 제3 레벨의 아비터 게이트(AG7)는 더 높은 레벨의 아비터 게이트로 송신 요구 신호(RQ)를 전달하지 않는다. 최상위 레벨의 아비터 게이트(AG7)는 직접 송신 요구 신호(RQ)에 대응되는 그랜트 신호(GR)를 생성할 수 있다. 생성된 그랜트 신호(GR)는 우선순위가 가장 높은 행의 송신 요구 신호(RQ)를 처리하기 위해서 하위 레벨(예를 들어, 제2 레벨)의 아비터 게이트로 그랜트 신호(GR)를 출력할 수 있다.
아비터 트리가 적용된 아비터(120-1)에서 그랜트 신호(GR)는 상위 레벨의 아비터 게이트에서 하위 레벨의 아비터 게이트로 전달될 수 있다. 예를 들어, 7개의 아비터 게이트들(AG1~AG7)을 포함하는 아비터 트리가 적용된 아비터(120-1)에서 제3 레벨의 아비터 게이트(AG7)가 제5 행(ROW5)에 대응되는 그랜트 신호(GR)를 출력하는 경우, 출력된 그랜트 신호(GR)는 연동된 제3 레벨의 아비터 게이트(AG7), 연동된 제2 레벨의 아비터 게이트(AG6), 및 연동된 제1 레벨의 아비터 게이트(AG3)를 거쳐서 제5 행(ROW5)으로 전달될 수 있다. 상술된 본 발명의 실시 예들에 따르면, AER 프로토콜 기반의 뉴런 어레이 통신 구조는 동시에 또는 특정 시간 구간 동안에 스파이크가 발화된 적어도 하나의 뉴런 블록의 행 주소 및 열 주소를 처리할 수 있다. 통신 구조에 포함된 아비터는 스파이크가 발화된 뉴런 블록이 많은 행을 선택할 수 있고, 선택된 행에 포함된 스파이크가 발화된 뉴런 블록의 열 주소는 송신큐에 저장될 수 있다. 열 주소에 대한 아비트레이션이 생략되어 통신 지연이 감소될 수 있고, 열 주소를 송신큐에 저장함으로써 스파이크 발화 정보가 손실될 가능성이 감소될 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함할 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 본 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
10, 100 : AER 프로토콜 기반의 뉴런 어레이 통신 구조
110, 111, 111-1 : 뉴런 어레이
120 : 아비터
120-1 : 아비터 트리가 적용된 아비터
121, 121-1, 121-2 : 아비터 게이트
122 : 상위 레벨 신호처리부
130 : 제1 주소인코더
140 : 제2 주소인코더
150 : 송신큐
160 : 송신부

Claims (1)

  1. 복수의 행들 및 복수의 열들로 배열된 복수의 뉴런 블록들을 포함하는 뉴런 어레이;
    상기 복수의 뉴런 블록들 중 스파이크가 발화된 뉴런 블록들로부터 제1 송신 요구 신호들을 수신하고, 상기 수신된 제1 송신 요구 신호들에 대응되는 전류의 크기를 기반으로 상기 복수의 행들 중 특정 행을 선택하고, 상기 선택된 특정 행에 대한 그랜트 신호를 출력하도록 구성된 아비터;
    상기 출력된 그랜트 신호에 응답하여, 상기 선택된 특정 행에 대응하는 제1 주소를 출력하도록 구성된 제1 주소인코더;
    상기 스파이크가 발화된 뉴런 블록들 중에서 상기 선택된 특정 행에 포함된 뉴런 블록들로부터의 제2 송신 요구 신호들에 응답하여, 상기 스파이크가 발화된 뉴런 블록들 중에서 상기 선택된 특정 행에 포함된 상기 뉴런 블록들의 열들에 대응하는 복수의 제2 주소들을 출력하도록 구성된 제2 주소인코더;
    상기 제2 주소인코더로부터 상기 복수의 제2 주소들을 수신하고, 상기 수신된 복수의 제2 주소들을 순차적으로 출력하도록 구성된 송신큐; 및
    상기 제1 주소인코더로부터 상기 제1 주소를 수신하고, 상기 송신큐로부터 상기 복수의 제2 주소들을 순차적으로 수신하고, 상기 수신된 제1 주소 및 상기 순차적으로 수신된 복수의 제2 주소들을 기반으로 대상 뉴런의 주소를 판별하고, 상기 대상 뉴런의 상기 판별된 주소를 출력하도록 구성된 송신부를 포함하는 스파이킹 뉴럴 네트워크 통신 장치.
KR1020190057985A 2019-05-17 2019-05-17 스파이킹 뉴럴 네트워크 통신 장치 KR20200132444A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190057985A KR20200132444A (ko) 2019-05-17 2019-05-17 스파이킹 뉴럴 네트워크 통신 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190057985A KR20200132444A (ko) 2019-05-17 2019-05-17 스파이킹 뉴럴 네트워크 통신 장치

Publications (1)

Publication Number Publication Date
KR20200132444A true KR20200132444A (ko) 2020-11-25

Family

ID=73645238

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190057985A KR20200132444A (ko) 2019-05-17 2019-05-17 스파이킹 뉴럴 네트워크 통신 장치

Country Status (1)

Country Link
KR (1) KR20200132444A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114372019A (zh) * 2022-03-21 2022-04-19 深圳时识科技有限公司 对脉冲事件进行传输的方法、装置及芯片

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114372019A (zh) * 2022-03-21 2022-04-19 深圳时识科技有限公司 对脉冲事件进行传输的方法、装置及芯片
CN114372019B (zh) * 2022-03-21 2022-07-15 深圳时识科技有限公司 对脉冲事件进行传输的方法、装置及芯片

Similar Documents

Publication Publication Date Title
US11055609B2 (en) Single router shared by a plurality of chip structures
US20190377997A1 (en) Synaptic, dendritic, somatic, and axonal plasticity in a network of neural cores using a plastic multi-stage crossbar switching
US10785745B2 (en) Scaling multi-core neurosynaptic networks across chip boundaries
US20200034687A1 (en) Multi-compartment neurons with neural cores
JP5963315B2 (ja) シミュレーションを使用して学習されるシナプス重みを用いるニューロモーフィック/シナプトロニック・スパイキング・ニューラル・ネットワークのための方法、デバイス、および回路
US10650301B2 (en) Utilizing a distributed and parallel set of neurosynaptic core circuits for neuronal computation and non-neuronal computation
US10198690B2 (en) Transform architecture for multiple neurosynaptic core circuits
WO2019144453A1 (zh) 神经网络及其信息处理方法、信息处理系统
US20170286825A1 (en) Energy-efficient time-multiplexed neurosynaptic core for implementing neural networks spanning power- and area-efficiency
US20160055408A1 (en) Peripheral device interconnections for neurosynaptic systems
US20190251420A1 (en) Transform for a neurosynaptic core circuit
Bieszczad Neurosolver: a neural network based on a cortical column
KR20200132444A (ko) 스파이킹 뉴럴 네트워크 통신 장치
CN111340194A (zh) 脉冲卷积神经网络神经形态硬件及其图像识别方法
KR102380584B1 (ko) 뉴로모픽 장치 및 그 장치에서 수행되는 가중치 갱신 방법
CN110111234B (zh) 一种基于神经网络的图像处理系统架构
US20230140256A1 (en) Electric device configured to support high speed interface for expanding neural network
Yousefzadeh et al. Performance comparison of time-step-driven versus event-driven neural state update approaches in spinnaker
WO2021033855A1 (ko) 아날로그 뉴런-시냅스 회로
JPH02306363A (ja) 多層ニューラルネットワーク