KR20170140297A - 확장 가능한 이벤트-구동식 컴퓨팅 시스템을 위한 이종 메모리 구조를 갖는 네트워크 및 계층구조 라우팅 패브릭 - Google Patents

확장 가능한 이벤트-구동식 컴퓨팅 시스템을 위한 이종 메모리 구조를 갖는 네트워크 및 계층구조 라우팅 패브릭 Download PDF

Info

Publication number
KR20170140297A
KR20170140297A KR1020177033662A KR20177033662A KR20170140297A KR 20170140297 A KR20170140297 A KR 20170140297A KR 1020177033662 A KR1020177033662 A KR 1020177033662A KR 20177033662 A KR20177033662 A KR 20177033662A KR 20170140297 A KR20170140297 A KR 20170140297A
Authority
KR
South Korea
Prior art keywords
core
router
event
network
circuit
Prior art date
Application number
KR1020177033662A
Other languages
English (en)
Other versions
KR102679799B1 (ko
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 유니베르시태트 취리히
Publication of KR20170140297A publication Critical patent/KR20170140297A/ko
Application granted granted Critical
Publication of KR102679799B1 publication Critical patent/KR102679799B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • 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
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

그 밖의 다른 양태들 중에서, 본 발명은 복수의 유닛(6) 상에 배열된 복수의 상호연결된 코어 회로(10)를 포함하는 네트워크와 관련되며, 여기서 각각의 코어 회로(10)는, 복수의 컴퓨팅 노드(90) 및 복수의 메모리 회로(80)를 포함하는 전자 어레이(8, 9) - 전자 어레이(8, 9)는 유입 이벤트(incoming event)를 수신하도록 구성되며, 각자의 컴퓨팅 노드(90)에 의해 수신된 유입 이벤트가 지정 기준을 만족시킬 때 각각의 컴퓨팅 노드(90)는 데이터 패킷을 포함하는 이벤트를 생성하도록 구성됨 - 와, 도착지 어드레스 및 추가 출발지 정보, 특히, 가상 출발지 코어 ID를 각자의 데이터 패킷에 첨부(append)하도록 구성된 회로와, 인트라-코어 연결성(intra-core connectivity)을 제공 및/또는 인터-코어 연결성(inter-core connectivity)을 위해 이벤트를 중간 레벨 제2 라우터(R2)로 전달하고 인터-유닛 연결성(inter-unit connectivity)을 위해 상위 레벨 제3 라우터()로 전달하기 위한 로컬 제1 라우터(R1)와, 유입 이벤트를 코어 회로(10) 내 모든 메모리 회로(80)로 병렬로 브로드캐스팅하기 위한 브로드캐스트 드라이버(7)를 포함한다.

Description

확장 가능한 이벤트-구동식 컴퓨팅 시스템을 위한 이종 메모리 구조를 갖는 네트워크 및 계층구조 라우팅 패브릭
본 발명은 네트워크, 특히 신경 네트워크(neural network), 라우팅 패브릭(routing fabric) 및 이에 대응하는 방법과 관련된다.
본 발명의 과제는 개선된 네트워크, 특히, 신경 네트워크 및 대응하는 방법을 제공하는 것이다.
이 문제는 청구항 1에 따르는 네트워크에 의해 해결된다. 이에 따라서, (가령, 복수의 칩 또는 유닛 또는 타일 상에 배열된) 복수의 상호연결된 코어 회로를 포함하는 네트워크가 제공되며, 이때, 각각의 코어 회로는 다음을 포함한다:
복수의 컴퓨팅 노드 및 복수의 메모리 회로를 포함하는 전자 어레이 - 전자 어레이는 (특히 입력 이벤트 또는 유입 이벤트를 구별하기 위해 로컬 메모리를 이용해) 유입 이벤트를 수신하도록 구성되고, 각각의 컴퓨팅 노드는 각자의 컴퓨팅 노드에 의해 수신된 유입 이벤트가 지정 기준을 만족시키는 경우 데이터 패킷을 포함하는 이벤트를 생성하도록 구성됨 - , 및
도착지 어드레스 및 추가 출발지 정보(가령, 출발지 코어 ID, 특히, 가상 출발지 코어 ID, 가령, 이하 참조)를 각자의 데이터 패킷에 첨부하는 회로, 및
고속 인트라-코어 연결성을 제공하거나 및/또는 인터-코어를 위해 중간 레벨 제2 라우터(R2)로 그리고 인터-칩(또는 인터-유닛 또는 인터-타일) 연결성을 위해 상위 레벨 제3 라우터(R3)로 이벤트를 전달하기 위한 로컬 제1 라우터(R1), 및
유입 이벤트를 코어 내 모든 메모리 회로로 병렬로 브로드캐스팅하기 위한 브로드캐스트 드라이버.
이하에서, 또한 코어-회로가 코어라고 명시된다.
덧붙여, 특히, 각자의 컴퓨팅 노드가 각자의 전자 어레이의 메모리 회로를 통해 상기 유입 이벤트를 수신할 수 있다.
특히, 이종 메모리 아키텍처를 갖는 계층구조 라우팅 구조들을 결합하는 이벤트-기반 라우팅 패브릭이 제공된다. 이 라우팅 패브릭은 복수의 컴퓨팅 코어에 걸쳐 분산된 비동기식 컴퓨팅 노드를 포함하는 아키텍처에 적용될 수 있다. 패브릭은 출발지-기반 라우팅과 도착지-기반 라우팅의 결합을 포함하며, 여기서 데이터 패킷은 라우팅되기 전에 계층구조의 서로 다른 레벨에서 처리된다. 이로 인해, 메모리 및 대역폭 최적화를 가능하게 하는 이종 네트워크 구조가 구성될 수 있다. 본 발명은 세 가지 서로 다른 전략, 즉, 브로드캐스트, 트리 및 메시 라우팅을 이용하는 라우팅 패브릭의 스택의 구현을 가진다. 컴퓨팅 노드들 간 연결성을 저장하는 데 사용되는 메모리는 노드, 코어, 및 라우터 내에 분산되는 서로 다른 구조물을 이용한다. 컴퓨팅 노드는 비동기식 입력을 처리하고 입력 데이터에 대한 조건이 충족될 때 비동기식 이벤트를 생성함으로써, 병렬로, 독립적으로, 그리고 비동기식으로 동작한다. 스파이킹 신경 네트워크(spiking neural network)의 경우, 컴퓨팅 노드가 복수의 소스로부터 입력 이벤트(가령, 유입 이벤트)를 수신하고, 입력 이벤트의 합이 지정 임계치를 넘을 때 하나의 출력 스파이크를 생성하는 인공 뉴런이다. 본 발명은 프로그램 가능한 연결성이 완전-커스텀 마이크로-칩 상에서 구현되는 확장 가능한 스파이킹 신경 네트워크의 맥락에서 구현된다.
또한, 특히, 본 발명은 정보 처리 및 컴퓨팅을 위한 비동기식 이벤트-기반 시스템 및 회로, 특히, 이벤트-기반 네트워크, 특히 스파이킹 신경 네트워크와 관련된다. 이벤트-기반 시스템은 요소들이 입력 신호에 대한 조건의 특정 세트가 충족될 때 컴퓨팅 노드에 의해 생성되는 비동기식 이벤트를 통해 계산 및 통신을 수행하는 전자 컴퓨팅 시스템이다. 본 발명은 네트워크 연결성을 프로그램하는 데 메모리 사용성을 최적화하는 분산된 이종 메모리 구조를 갖는 계층구조적 라우팅 패브릭과 관련된다. 네트워크 연결성이 자신의 계산 속성을 결정함에 따라, 본 발명은 "딥 네트워크(deep network)" 가령, 딥 빌리프(deep belief) 및 컨볼루션 네트워크(convolutional network), 순환 신경 네트워크, 가령, 저수지 컴퓨팅 네트워크뿐 아니라 확률적 그래픽 모델, 가령, 팩터 그래프(factor graph)의 하드웨어 구현을 구성하는 데 사용될 수 있다. 네트워크 상에 분산된 라우팅 룩업 테이블(LUT: Look Up Table) 및 컴퓨팅 노드와 연관된 콘텐츠-어드레스 지정 가능 메모리(CAM: Content-Addressable Memory)를 프로그램함으로써 네트워크 연결성이 구현된다. 시스템으로 프로그램될 수 있는 네트워크의 유형이 요소, 코어 및 라우터에 할당된 메모리의 크기에 따라 달라진다.
이러한 시스템의 특정 사례가 스파이킹 신경 네트워크이다. 컴퓨팅 요소는 동적 또는 생물학적 뉴런을 기초로 모델링되며, 따라서 이들은 통합된 입력 스파이크가 설정된 임계치를 초과함에 응답하여, 종종 스파이크라고 지칭되는 이벤트를 발생시킨다. 이 스파이크-이벤트는 패킷으로 인코딩되고 라우터 유닛과 시냅스 유닛을 포함하는 물리 네트워크에 의해 자신의 도착지로 전달된다. 로컬 및 분산된 메모리 구조를 이용해 신경 네트워크의 연결성이 출발지로부터 도착지까지 스파이크 이벤트의 적절한 라우팅을 통해 실현된다. 이 아키텍처는 이벤트-구동식(event-driven)이라 지칭되고 인공 신경 네트워크를 구현한다.
또한, 특히, 본 발명의 실시예는 병렬 컴퓨팅 시스템을 위한 비동기식 이벤트-구동식 아키텍처를 제공한다. 시스템 계산 노드들 간 연결성의 정도 및 시스템으로 프로그램될 수 있는 계산의 유형이 개별 노드, 코어, 및 라우터에 할당된 메모리의 크기에 따라 달라진다.
특히, 본 발명은 계산 노드가 본 발명의 범위 내에서 동적 시냅스를 갖는 통합-및-점화 뉴런(integrate-and-fire neuron)인 실시예에 의해 기재된다. 이 실시예에 따라, 신경 네트워크는 하나 이상의 전자 칩 상에 분산된 복수의 코어 내에서 복수의 상호 연결된 노드를 포함한다. 각각의 코어는 네트워크의 연결성을 저장하고 신경 계산을 구현하는 뉴런 및 시냅스 요소를 갖는 복수의 블록을 포함한다. 코어 내 뉴런의 시냅스 요소가 입력을 수락하는 전-시냅스(pre-synaptic) 뉴런의 신원을 저장하는 메모리 구조를 가진다. 우측 전-시냅스 뉴런이 유효한 시냅스 요소를 자극할 때, 이 요소는 시냅스가 연결된 후-시냅스 뉴런에 의해 통합되는 아날로그 전류를 발생시킨다. 뉴런에 연결된 모든 시냅스에 의해 전송된 통합된 입력 전류가 임계치를 초과할 때, 뉴런은 스파이크-발생 메커니즘을 활성화한다. 뉴런이 출력 스파이크를 생성할 때, 이는 자신의 출발지 어드레스에 의해 인코딩되고 이 어드레스는 비동기식 데이터 패킷으로서 계층구조 스킴을 따르는 다른 노드로 라우팅된다. 최저 레벨에서, 코어 라우터가 출발지와 도착지가 동일한 코어 내에 위치하는 스파이크를 분산시킨다. 중간 레벨에서 트리 라우터(tree router)의 하나 이상의 세트가 동일한 칩 내 타깃 코어에 의해 생성되는 스파이크를 분산시킨다. 트리 라우터는 계층구조적 레벨로 조직되며 복수의 라우터가 상기 계층구조의 복수의 레벨에 걸쳐 있을 수 있다.
최고 레벨에서, 메시 라우터(mesh router)가 스파이크를 2차원 메시로 분포된 복수의 칩에 걸쳐 분산시킨다.
본 발명에 따르는 네트워크의 실시예에 따라, 네트워크는 코어 회로를 상호연결하는 이벤트 라우팅 시스템을 더 포함하며, 여기서 이벤트 라우팅 시스템은 상기 로컬 제1 라우터를 포함하며, 특히 추가 라우터, 제2 및 제3 라우터를 더 포함하고, 이때, 특히 전체 라우터가 계층구조를 형성한다.
또한, 본 발명에 따르는 네트워크의 실시예에 따라, 각각의 라우터(R1, R2, R3)는 각자의 이벤트/데이터 패킷에 포함된 경로 페이로드(route payload)에 따라 이벤트(또는 신호)를 라우팅하도록 구성된 적어도 하나의 제어 회로를 포함하고, 각각의 제1 라우터(R1)는 다음을 더 포함한다:
- 상기 데이터 패킷에 대한 경로 페이로드 및 특히 가상 출발지 코어 ID를 저장하도록 구성된 프로그램 가능한 메모리(가령, 디지털 로컬 메모리의 어레이),
- 상기 메모리에 저장된 프로그램된 경로 할당에 따라, 경로 페이로드 및 특히 가상 출발지 코어 ID를 각자의 데이터 패킷에 첨부하도록 구성된 적어도 하나의 회로.
가상 출발지 코어 ID는 코어 단위가 아니라 뉴런 단위로, 총 어드레스 공간을 증가시키기 위해, 특히, 이벤트 변별성을 증가시키고 따라서 어드레스 모호성을 감소시키기 위해, 각각의 뉴런에 독립적인 출발지 어드레스에 첨부된 추가 코드이다.
또한 본 발명에 따른 네트워크의 실시예에 따라, 코어 회로가 유닛으로, 특히, 모듈식 타일 또는 칩으로 배열되며, 여기서 특히 각각의 유닛은 복수의 코어 회로를 포함하고, 각각의 유닛은 제1 라우터 중 하나를 포함하며, 특히, 상기 제1 라우터는 각각 전체 라우터에 의해 형성되는 계층구조 내에 배치된다.
또한 본 발명에 따르는 네트워크의 실시예에서, 상기 계층구조는 제1 라우터를 포함하는 최저 레벨을 포함하고, 특히, 제1 라우터는 동일한 코어 회로 내에 위치하는 출발지 및 도착지를 갖는 이벤트를 분산시키도록 구성된다.
또한, 본 발명에 따르는 네트워크의 실시예에 따라, 상기 계층구조는 제2 라우터를 포함하는 적어도 하나의 중간 레벨을 포함하며, 특히 제2 라우터는 동일 유닛 내 코어-회로에 의해 생성되거나 이를 타깃으로 삼는 이벤트를 분산시키도록 구성된다.
또한 본 발명에 따르는 네트워크의 실시예에서, 상기 계층구조는 서로 다른 유닛 간에 이벤트를 분산시키도록 구성된 제3(가령, 메시) 라우터를 포함하는 최고 레벨을 포함하고, 특히 제3 라우터는 2차원 메시로 배열된다.
또한, 본 발명에 따르는 네트워크의 실시예에서, 라우터는 라우터에 의해 형성되는 계층구조로 배치되고, 서로 다른 레벨에서의 서로 다른 라우팅 스킴을 매칭시키기 위해 출발지 어드레스와 코어 회로 내 컴퓨팅 노드에 의해 생성된 데이터 패킷을 맵핑시킴으로써 서로 다른 비동기식 라우팅 스킴이 계층구조의 서로 다른 층에 공존한다.
또한 본 발명에 따르는 네트워크의 실시예에서, 네트워크는 합성 신경 네트워크이며, 여기서 각각의 컴퓨팅 노드가 뉴런을 형성하고, 상기 메모리 회로의 각각이 시냅스를 형성하며, 특히, 컴퓨팅 노드가 유입 이벤트를 통합(가령, 합산)하고, 통합된 이벤트가 점화 임계치를 넘을 때 이벤트를 발생시키도록 설계된다.
청구항 10에 따라, 본 발명은 (가령, 고도로) 상호대화하는 멀티-코어 프로세서의 (가령, 대규모) 병렬 네트워크의 양태와 더 관련되며, 여기서 각각의 프로세서는 코어 회로 내에서 및/또는 서로 다른 코어 회로 간에 데이터 패킷의 형태로 이벤트를 통신하도록 구성된 복수의 코어 회로를 포함하고, 여기서 네트워크는 독립적 통신 경로에 따라 작용하도록 구성된 비동기식 라우터의 계층구조에 의해 상기 통신을 조절하도록 구성된다.
또한, 본 발명에 따르는 병렬 네트워크의 실시예에서, 각각의 데이터 패킷은, 해당 어드레스를 생성하는 코어 회로의 컴퓨팅 노드의 인코딩된 출발지 어드레스, 네트워크를 따르는 각자의 이벤트의 경로의 부분 또는 전부를 특정하는 추가 디지털 코드로 구성된다.
청구항 12에 따라, 본 발명은 (특히, 패킷 페이로드를 최소화하기 위한 방식으로) 네트워크에 라우팅 메모리를 분산시키기 위한 방법의 양태와 더 관련되며, 동일한 네트워크 내에 공존하는 서로 다른 라우팅 전략이 사용된다.
청구항 13에 따라, 본 발명은 특히, 청구항 1 내지 9 중 어느 한 항에 따르는 네트워크를 이용해, 네트워크에서 이벤트를 라우팅하기 위한 방법의 측면과 더 관련되며, 상기 방법은 다음을 포함한다:
복수의 상호연결된 코어 회로를 포함하는 네트워크를 제공하는 단계 - 각각의 코어 회로는 복수의 컴퓨팅 노드 및 복수의 메모리 회로를 포함하는 전자 어레이를 포함함 - ,
각자의 컴퓨팅 노드에 의해 수신된 유입 이벤트가 지정 기준을 만족시키는 경우, 컴퓨팅 노드에 의해 데이터 패킷을 포함하는 이벤트를 생성하는 단계,
각각의 코어 회로에 포함되는 로컬 제1 라우터에 의해 생성된 이벤트를 코어 회로 내에 분산시키는 단계 - 상기 메모리에 저장된 프로그램된 경로 할당에 따라 도착지 어드레스 및 특히 추가 가상 출발지 코어 ID가 각자의 제1 라우터에 의해 각자의 데이터 패킷으로 첨부됨 - ,
각자의 제1 라우터에 의해 병렬로 각자의 코어-회로 내 모든 메모리 회로로 브로드캐스팅하는 단계,
각자의 데이터 패킷에 첨부된 도착지 어드레스에 따라 각자의 중간 레벨 제2 라우터에 의해 코어-회로에 의해 생성되거나 동일 유닛 내 코어-회로를 타깃으로 삼는 이벤트를 분산시키는 단계, 및
각자의 데이터 패킷에 첨부되는 도착지 어드레스에 따라 각자의 상위 레벨 제3 라우터에 의해 서로 다른 유닛 간 이벤트를 분산시키는 단계.
청구항 14에 따르면, 본 발명은 복수의 상호연결된 코어 회로를 포함하는 네트워크에서 이벤트를 라우팅하기 위한 라우팅 패브릭의 양태와 더 관련되고, 각각의 코어 회로는 (가령, 입력 이벤트 또는 유입 이벤트를 구별하기 위해 로컬 메모리를 이용하는) 복수의 컴퓨팅 노드 및 복수의 메모리 회로를 포함하는 전자 어레이를 포함하며, 어레이가 유입 이벤트를 수신하도록 구성되며, 각각의 컴퓨팅 노드는 각자의 컴퓨팅 노드에 의해 수신된 유입 이벤트가 지정 기준을 만족시키는 경우 데이터 패킷을 포함하는 이벤트를 발생시키도록 구성되며, 라우팅 패브릭은 다음을 포함한다:
고속 인트라-코어 회로 연결성을 제공하기 위한 복수의 로컬 제1 라우터(R1) - 로컬 제1 라우터(R1)는 각각의 코어 회로에 할당되도록 구성되며, 각자의 제1 라우터(R1)는 각자의 제1 라우터가 할당되는 동일한 코어 회로 내에 위치하는 출발지와 도착지를 갖는 이벤트의 데이터 패킷을 분산시키도록 구성됨 - ,
복수의 브로드캐스트 드라이버 - 각각의 브로드캐스트 드라이버는 코어 회로 중 하나에 할당되고 유입 이벤트를 병렬로 연관된 코어-회로 내 모든 메모리 회로로 전달하도록 구성됨 - ,
인터-코어 연결성을 제공하도록 구성된 복수의 제2 라우터(R2) - 특히 제2 라우터는 각자의 데이터 패킷에 포함되는 경로 페이로드에 따라 이벤트를 분산시키도록 구성됨 - , 및
인터-칩(또는 인터-유닛 또는 인터-타일) 연결성을 제공하도록 구성된 복수의 제3 라우터(R3) - 특히 제3 라우터는 각자의 데이터 패킷에 포함된 경로 페이로드에 따라 이벤트를 분산시키도록 구성됨 - .
본 발명의 앞서 기재된 특징 및 그 밖의 다른 특징, 양태 및 이점이 다음의 설명, 청구항 및 첨부된 도면을 참조하여 이해될 것이다.
도 1은 본 발명의 실시예에 따라, 예시적 멀티-코어 네트워크의 구조물을 도시하는 개략도이다.
도 2는 본 발명의 실시예에 따라, 대응하는 코어 내에서 생성되는 이벤트에 의해 코어 라우터(R1) 상에서 인스턴스화된 프로세스의 다이어그램을 도시한다.
도 3은 본 발명의 실시예에 따라, 칩 코어들 중 하나 내에서 생성된 이벤트에 의해 칩 라우터(R2) 상에서 인스턴스화된 프로세스의 다이어그램을 도시한다.
도 4는 본 발명의 실시예에 따라 상호연결된 칩들 중 임의의 것 내에서 뉴런에 의해 생성되는 이벤트에 의해 칩 라우터(R2) 상에서 인스턴스화된 프로세스의 다이어그램을 도시한다.
도 5는 본 발명의 실시예에 따라 대응하는 칩 내 뉴런에 의해 생성되는 이벤트에 의해 메시 라우터(R3) 상에서 인스턴스화되는 프로세스의 다이어그램을 도시한다.
도 6은 본 발명에 따라, R3의 북 또는 남 포트에 도달하는 상호연결된 칩들 중 임의의 칩 내에서 뉴런에 의해 생성된 이벤트에 의해 메시 라우터(R3) 상에서 인스턴스화된 프로세스의 다이어그램이다.
도 7은 본 발명의 실시예에 따라, R3의 동 또는 서 포트에 도달하는 상호연결된 칩들 중 임의의 칩 내에서 뉴런에 의해 생성되는 이벤트에 의해 메시 라우터(R3) 상에서 인스턴스화되는 프로세스의 다이어그램을 도시한다.
도 8은 본 발명의 실시예에 따라, 하나의 신경 네트워크의 아키텍처를 도시하는 다이어그램을 도시한다.
도 9는 본 발명의 실시예에 따라, 복수의 뉴런 픽셀 및 코어 외부로부터 이로 브로드캐스팅되는 신호의 흐름을 도시하는 다이어그램을 도시한다.
도 10은 본 발명의 실시예에 따라, 하나의 코어와 스파이크가 코어 내에서 생성될 때의 신호의 흐름의 블록도를 도시한다.
도 11은 본 발명의 하나의 실시예에 따라, 하나의 코어와 스파이크가 상기 코어 내에서 수신될 때의 신호의 흐름의 블록도를 도시한다.
도 12는 본 발명의 실시예에 따라, 하나의 코어와 코어 메모리를 프로그램하고 뉴런을 구성하는 데 사용되는 신호의 흐름의 블록도를 도시한다.
도 13은 본 발명의 실시예에 따라, 계층구조 크기 및 브랜치(트리)를 갖는 3개의 레벨을 갖는 계층구조의 메시를 도시한다.
도 14는 본 발명에 따라, 계층구조 내에서 조직되는 64개의 코어를 갖는 칩 및 통신 흐름의 예시의 블록도를 도시한다.
도 15는 본 발명의 실시예에 따라 코어와 라우터 간 통신 흐름 및 패킷 구조의 상세사항을 도시한다.
도 16은 본 발명의 실시예에 따라, 출발지 뉴런에서 도착지 뉴런으로 이벤트의 라우팅의 예시를 도시한다.
도 17은 모듈로 배열된 복수의 컴퓨팅 노드를 도시하는 도면이다.
본 발명의 실시예는 확장 가능한 신경 네트워크를 위한 분산 메모리 및 이종 메모리 구조를 갖는 VLSI로 구현 가능한 이벤트-구동형 신경 아키텍처를 제공한다. 계층구조적 라우터 아키텍처가 멀티코어 칩 상에 분산된 복수의 코어 내 노드들을 상호연결하기 위한 전력 및 시간 효율적인 전략을 제공한다. 코어 내 분산 메모리 및 각각의 코어 내에서 브로드캐스팅되는 이벤트가 생물학적으로 그럴듯한 모델의 일반적인 구조적 제약을 갖는 대형 신경 네트워크를 구현하기 위한 큰 팬-아웃을 제공한다. 완전 비동기식 라우터 및 프로그래밍 패브릭에 의해, 곧 있을 오프-라인 학습을 위한 시냅스 계산을 위한 고속 연산이 가능해진다.
뉴런(neuron) 및 시냅스(synapse)라는 용어는 본 명세서에서 사용될 때, 생물학적 신경 및 시냅스를 시뮬레이션하기 위한 회로를 나타낸다. 전자 뉴런이 상대적 시냅스의 기여들을 통합하여 스파이크 이벤트(spike event)를 생성한다. 본 발명의 실시예에 따르는 전자 뉴런 및 시냅스를 포함하는 뉴로모픽 시스템(neuromorphic system)이 생물학적 뉴런에 대해 모델링되는 다양한 처리 요소를 포함할 수 있다. 본 발명의 특정 실시예가 본 명세서에서 시냅스 연결을 위해 아날로그 뉴런 및 CAM 모듈을 이용해 기재된다. 본 발명은 뉴런 및 시냅스 컴퓨팅 요소에 한정되지 않는다. 본 발명의 실시예에 따르는 이벤트-구동형 컴퓨팅 시스템이 복수의 입력 이벤트를 처리하여 단일 출력 이벤트를 생성하는 임의의 비동기식 컴퓨팅 노드를 이용할 수 있다. 덧붙여, 본 발명은 정보 공유를 위한 큰 팬-아웃을 필요로 하는 임의의 유형의 대규모 병렬 혼합-신호 이벤트-기반 계산을 지원한다.
본 발명의 실시예에 따르면, 라우터에 대해 완전 비동기식 회로 구현예가 사용되지만 본 발명은 이러한 구현예에 한정되지 않는다.
본 발명의 실시예에 따르면(가령, 도 1 참조), 신경 네트워크가 복수의 멀티-코어 칩(6)을 포함한다. 각각의 칩(6)은 네트워크의 연결성을 저장하고 따라서 특정 형태의 신경 계산을 실현하는 뉴런 및 시냅스 요소를 갖는 복수의 코어(10)를 포함한다.
각각의 코어(10)는 뉴런의 어레이(9), 뉴런(90)(또는 컴퓨팅 노드(90))마다 복수의 시냅스(80)(또는 메모리 회로(80))를 포함하는 시냅스 어레이(8)(어레이(8, 9)는 전자 어레이(8, 9)의 일부를 형성할 수 있음), 도착지 LUT(3)를 저장하기 위한 SLAM 메모리(2), 및 코어(또는 제1) 라우터(R1)를 포함한다. 덧붙여, 각각의칩(6)은 또한 칩(또는 제2) 라우터(R2) 및 메쉬(또는 제3) 라우터(R3)를 포함한다. 각각의 뉴런(90)은 대응하는 시냅스(80)에 의해 수신되고 수용되는 복수의 이벤트를 통합하고, 통합된 신호가 점화 임계치(firing threshold)를 초과할 때 스파이크-이벤트를 생성한다. 뉴런(90)에 의해 생성되는 스파이크가 코어의 인코더에 의해, 출발지의 신원을 나타내는 디지털 어드레스 이벤트로서 인코딩되고 R1으로 전송된다. 로컬 LUT(3)에 저장된 도착지 정보에 따라, R1은 이벤트를 처리하고 R2로 더 전달할지 또는 코어로 되돌려 전달할지 여부를 결정한다. 또한 R1은 상기 이벤트로부터의 팬아웃을 생성할 수 있다, 즉, 최대 4개의 이벤트가 생성되고 LUT SRAM(2)에 프로그램된 서로 다른 도착지를 할당받을 수 있다. R2 라우터가 코어 라우터(R1) 중 임의의 것으로부터 스파이크 이벤트를 수신할 때, 도착지 어드레스를 체크하고 이벤트를 대응하는 코어 라우터로 되돌려 전달할지 또는 R3로 더 전달할지 여부를 결정한다. 각각의 시냅스(80)는 n-비트 CAM 워드를 가져 각자 연결된 출발지 뉴런(90)의 어드레스, 시냅스 유형, 및 이의 시냅스 효율(synaptic efficacy)을 저장할 수 있다. 하나의 이벤트가 특정 코어(10)로 전송되면, 어드레스가 코어(10) 내 모든 시냅스(80)로 브로드캐스팅된다. 저장된 어드레스가 브로드캐스팅된 어드레스와 매칭되는 시냅스(90)가 시냅스 유형 및 시냅스 효율의 특정 파라미터를 갖는 PSC를 대응하는 후-시냅스 뉴런(post-synaptic neuron)(90)으로 생성한다. (1) 해당 이벤트에 대해 R1 메모리가 프로그램되는 방식에 따라, 이벤트가 하나의 코어(10)를 떠나고 R1에 도착할 때, 그리고 (2) 이벤트가 R1으로부터 코어(10)에 도달할 때, 팬아웃이 생성된다. 기재된 스킴이 단거리 및 장거리에서의 정보 공유를 필요로 하는 고도로 상호 연결된 네트워크를 지원한다.
도 2는 본 발명의 실시예에 따르는 R1 라우터의 추가 프로세스 상세사항을 도시한다. 뉴런(90)이 스파이크를 생성할 때, 이 스파이크의 어드레스가 R1으로 전송된다. 이 이벤트에 대한 도착지가 R1이 액세스할 수 있는 LUT(3)에 저장된다. 이벤트에 대해 프로그램된 도착지에 따라, R1은 이벤트를 코어(10)로 되돌려 전송하거나 이벤트 패킷에 이 이벤트에 대한 도착지를 나타내는 디지털 코드를 첨부할 수 있다. 특정 예시에서, 코어(10)로부터의 스파이크가 8-비트 어드레스 이벤트로서 나타난다. 첨부된 도착지 어드레스는 칩 시프팅(chip shifting)(dx, dy)에 대한 6비트, 가상 출발지 코어 ID(virtual source core ID)에 대한 2비트, 및 칩-내 도착지에 대한 4-비트를 포함하는 12-비트 코드로 구성된다. 가상 출발지 코어 ID가, 코어 단위 대신, 뉴런 단위로, 전체 어드레스 공간을 증가시키고, 이벤트 변별성을 증가시키며, 따라서 어드레스 모호성을 감소시키기 위한 각각의 뉴런에 독립적인 출발지 어드레스에 첨부되는 추가 코드이다. 예를 들어, 코어(1)의 뉴런(243)에 가상 ID=1이 할당될 수 있으며, 동일 코어의 뉴런(121)에 상이한 가상 ID, 가령, 2가 할당될 수 있다. 또한 하나의 스파이크 이벤트가 SRAM 메모리(2)에 프로그램된 바와 같이 팬아웃을 생성할 수 있으며, 이때 각각의 이벤트에 서로 다른 도착지가 할당되지만 동일한 출발지 어드레스를 지닌다.
R2가 R1으로부터 이벤트를 수신할 때, 도 3에 도시된 바와 같이, 이 이벤트에 대한 타깃 코어(10)가 동일 칩(6) 내에 위치한다. 이런 경우라면, R2는 이벤트 패킷으로부터 판독된 도착지 코어(10)에 따라 이벤트를 전달할 것이다. 그 밖의 다른 경우, 이 이벤트는 R3으로 전달될 것이다. 도 4에 도시된 바와 같이, R2는 또한 R3을 통해 상이한 칩(6)으로부터 이벤트를 수신한다. 이러한 일이 발생할 때, 이는 출발지 어드레스에 첨부된 도착지 코드에 따라 이벤트를 브랜치를 따라 전송할 것이다.
도 5는 본 발명의 하나의 실시예에 따라 R2로부터의 이벤트를 수신할 때의 R3 라우터 처리의 상세사항을 도시한다. 이 예시에서, R3은 x-방향(동-서) 시프트 번호를 우선 체크할 것이다. x 시프트가 0이 아닌 경우, R3은 dx의 부호를 체크하여, 전달의 방향을 결정할 수 있다, 즉, dx>0의 경우 동쪽 그리고 dx<0의 경우 서쪽. 그 후, dx가 1만큼 감소하고 이벤트가 적절한 방향으로 전달된다. x 시프트가 0인 경우, R3은 dy의 부호를 체크하여, 전달을 위한 방향을 결정할 수 있다, 즉, dy>0인 경우 북쪽 그리고 dy<0인 경우 남쪽. 그 후 dy가 1만큼 감소되고 이벤트가 적절한 방향으로 전달된다. 따라서 이 예시에서 이벤트가 R3로 전달되면, 우선 동-서 방향으로 시프트될 것이고 그 후 북-남 방향을 따르도록 우선순위 규칙이 설정된다. dx와 dy가 모두 0일 때까지 이벤트가 메시를 따라 이동할 것이다. 도 6에 도시된 바와 같이, R3이 북/남(y-방향)으로부터 이벤트를 수신하면, 상기의 우선순위 규칙이 유지되는 한, 이벤트는 x-방향을 따라 더는 시프트될 필요가 없다고 가정될 수 있다. dy의 값이 0이면, 대응하는 칩에서 이벤트는 R2로 전달된다.
CAM 워드가 뉴런 연결 및 시냅스 효율을 저장하기 위한 시냅스(80)로서 사용된다. 하나의 예시에서, 하나의 코어(10)가 뉴런당 64 CAM-기반 시냅스를 갖는 256개의 뉴런을 가진다. 각각의 CAM 워드가 다음의 12비트로 구성된다: 출발지 어드레스에 대해 10비트 및 시냅스 유형에 대해 2비트. 하나의 코어에 도착하는 스파이크 이벤트가 브로드캐스트 드라이버(Broadcast Driver)에 의해 전체 코어로 브로드캐스팅된다. 각각의 CAM이 브로드캐스트 버스 상의 이벤트를 저장된 이벤트와 비교한다. 콘텐츠가 브로드캐스팅된 이벤트와 매칭되는 경우 "매칭 상태(match state)"가 발생하고 적절한 후-시냅스 전류(PSC: Post-Synaptic Current)가 발생된다. 도 9에서, 뉴런(1)의 시냅스(4), 뉴런(16)의 시냅스(1), 및 뉴런(5)의 시냅스(5)가 브로드캐스트 드라이버에 의해 전달된 것과 매칭되는 어드레스를 저장하고, 따라서 이들이 대응하는 뉴런으로 적절한 전류를 발생시키는 응답을 야기한다.
도 10은 뉴런 어레이(9) 내에서 생성되는 스파이크에 대한 이벤트를 발산하는 프로세스를 도시한다. 뉴런(90)에 의해 생성되는 스파이크가 뉴런 어드레스로서 인코딩될 것이다. 예를 들어, 16x16 뉴런 어레이의 경우, 스파이크는 컬럼 인코더(5) 및 로우 인코더(4)에 의해 컬럼의 경우 4 비트 및 로우의 경우 4 비트인 8 비트로서 인코딩될 수 있다. 이 이벤트는 코어 라우터(R1)로 우선 전송되어, 앞서 설명한 바와 같이 도착지 SRAM LUT를 판독함으로써 도착지 어드레스 및 추가 출발지 코어 ID를 획득할 수 있다.
도 11은 이벤트가 특정 코어(10)로 전송될 때 하나의 이벤트를 브로드캐스팅하는 프로세스를 도시한다. 수신된 이벤트는 우선 R1에 의해 수신되고 그 후 브로드캐스트 드라이버(7)에 의해 시냅스 어레이(8)로 브로드캐스팅된다. 브로드캐스트 드라이버(7)는 스파이크를 코어(10) 내 모든 CAM으로 전달할 것이며, 그 후 CAM은 이벤트의 출발지 어드레스를 구별하며 이에 따라 PSC를 생성할 것이다.
도 12는 어드레스 및 데이터를 로우 디코더(40) 및 컬럼 디코더(50)로 전송함으로써 코어의 메모리(3)를 프로그래밍하는 예시를 도시한다. CAM-기반 이종 메모리 구조 및 분산 도착지 SRAM LUT(3)가 각각의 코어(10)에서 사용되기 때문에, CAM/SRAM의 콘텐츠가 CAM/SRAM에 대한 표준 쓰기 동작을 이용해 로우 디코더(40) 및 컬럼 디코더(50)에 의해 쉽게 프로그램될 수 있다.
도 13은 이종 메모리 구조를 갖는 계층구조적 네트워크 또는 라우팅 패브릭의 또 다른 예시를 도시한다. 라우팅 패브릭은 트리 구조(6)의 2차원 메시를 조합하는데, 이때 트리 구조의 나뭇잎이 멀티-뉴런 코어(10)이다. 본 발명의 실시예에 따르면, 각각의 코어(10)는 스파이크 인/아웃(가령, 인트라-코어 연결성)에 대해 하나의 코어(또는 제1) 라우터(R1)를 가진다. 동일 브랜치(60)에서 하나의 코어(10)에서 또 다른 코어(10)로 전달되는 이벤트가 우선, 하위-레벨 브랜치 라우터(또는 제2 라우터)(R2)로 전송되고, 그 후 어드레스 이벤트에 의해 운반되는 도착지 코드에 따르는 하나 이상의 타깃 코어(10)로 전송될 것이다. 하나의 코어(10)로부터 상이한 브랜치의, 그러나 동일 칩(6) 내에 있는 하나 이상의 다른 코어(10)로 전달되는 이벤트가 먼저 상위(제2) 라우터(R2)로 전송될 것이고 그 후 이벤트에 의해 지니는 도착지 코드에서 인코딩되는 바와 같이 하위 브랜치 라우터(R2)로 전송될 것이다. 트리의 심도(depth) 및 타깃팅될 수 잇는 동일 칩 내 상이한 코어의 개수는 도착지 코드로서 어드레스 이벤트가 지니는 비트의 수에 따라 달라진다. 예를 들어, 각각의 칩(6)이 2차원 메시에서 이러한 트리 구조물을 상호연결하는 하나씩의 타일 라우터(또는 제3 라우터)(R3)를 가진다.
도 14는 도 13에 기재된 계층구조적 라우팅 스킴을 이용하는 64개의 코어(10)로 구성된 칩 구조의 예시를 도시한다. 이 예시에서, 각각의 코어(10)는 로컬 코어 연결을 위해 전용(제1) 라우터(R1)를 가진다. 4개의 코어로 구서오딘 그룹이 트리 구조의 최저 레벨 브랜치로 정의된다. 이들 모듈 중 4개의 모듈의 그룹이 레벨-2 브랜치로 정의되며, 따라서 각각 16개의 코어(10)를 가진다. 예시적 칩(6)은 이들 모듈(트리의 제3 레벨) 중 4개의 모듈의 그룹으로 구성되며, 따라서 총 64개의 코어(10)로 구성된다. 각각의 레벨은 코어 통신을 위한 그리고 이들 레벨 내에서의 트리(6) 내 타 레벨로의/로부터의 전송/수신을 위한 전용(제2) 라우터(R2)를 포함한다.
코어(10) 내에 생성된 각각의 이벤트에 할당된 도착지 어드레스에 따라, 동일한 코어(10) 내 도착지를 타깃팅하는 이벤트가 코어 라우터(R1)에 의해 라우팅되며, 따라서 로컬 연결성을 개선할 수 있다. 동일 레벨-1 브랜치 내 다른 코어(10)를 타깃팅하는 이벤트가 (제2) 라우터(R2)로 전송되며 처리되어 대응하는 코어(10)로 전달될 것이다. 일반적으로, 이벤트가 칩(6) 내 임의의 도착지 코어(10)에 도달하도록 필요한 만큼 상이한 레벨에서 R2 라우터를 통해 트리를 올라가도록 라우터 메모리가 프로그램된다. 이벤트의 타깃이 서로 다른 칩(6)의 코어(10) 상에 위치하는 경우, 이벤트는 모든 층을 통해 칩(또는 제3) 라우터(R3)까지 전송되며, 여기서 이벤트가 추가 처리되고 메시 내 적절한 방향을 따라 전달될 것이다.
도 15는 네트워크 내 하나의 코어(10)의 구조의 상세사항을 도시한다. 이 예시에서, 하나의 멀티-코어 칩(6)이 4개의 코어(10)를 가지며, 이때, 각각의 코어(10) 내에 256개의 뉴런(90)이 있고 각각의 뉴런(90)에 대해 64개의 시냅스(80)가 있다. 각각의 코어(10)는, 시냅스/뉴런 어레이(8, 9), 컬럼/로우 인코더(5, 4), 브로드캐스트 드라이버(7), 도착지 LUT(3) 및 로컬 코어(또는 제1) 라우터(R1)를 가진다. 뉴런 어레이(9)에 의해 생성되는 이벤트가 인코딩되고 8비트 어드레스(컬럼 어드레스에 대해 4비트 및 로우 어드레스에 대해 4비트)로서 나타날 것이다. 뉴런 어레이(9)에 의해 생성되는 이벤트에 10비트 도착지 어드레스(dx 거리 및 x-방향 부호에 대해 3비트, dy 및 y-방향 부호에 대해 3비트, 도착지 칩(6) 상의 타깃 코어(10), 즉, dx-dy 칩에 도달하면 타깃팅될 코어(10)에 대해 4비트)가 할당되고, 출발지 어드레스 구별을 증가시키는 추가 소스 코어 ID에 대해 2비트가 할당될 것이다. 각각의 이벤트가 복수 번 복제될 수 있고, 각각의 복제본에 코어 라우터(R1)에 의해 서로 다른 도착지 어드레스가 할당될 수 있다. 본 발명의 하나의 실시예에서, 코어 어드레스에 의해 2비트가 출발지 어드레스에 내부적으로 첨부되고 LUT(3)를 4회 판독하도록 사용된다. 이러한 방식으로 서로 다른 12비트 도착지 어드레스 및 코어 ID가 각각의 복제본에 첨부된다. LUT(3)으로부터 판독된 12비트 데이터를 갖는 출발지 8비트 이벤트 어드레스가 (제2) 라우터(R2)에 전달되기 전에 20비트 이벤트의 단일 패킷으로 전송된다. (제3) 라우터(R3)로부터 라우터(R2)에 도달하는 이벤트가 도 9에 기재된 바와 같이 도착지 코어로 브로드캐스팅된다.
도 16은 출발지 계산 노드에서 도착지 노드로의 이벤트의 라우팅의 예시를 보여준다. 도 13에 기재된 계층구조적 멀티-레벨 스킴을 따름으로써, 임의의 하나의 칩(6) 내 노드(90)에 의해 생성된 이벤트가 특정 도착지를 할당 받는다. 이벤트는 또한 복수 번 복제되고 각각의 복제본에 서로 다른 도착지가 할당된다. 이 예시에서, 오픈 써클로 지시되는 노드(90)에 의해 생성된 이벤트에 서로 다른 도착지가 할당되고 4개의 멀티-칩(6)으로 전송된다. 복제본 이벤트들 중 하나가 동일 칩(6) 상의 또 다른 코어(10)로 전달된다(따라서 이의 경로가 R1-R2-R1이다). 3개의 그 밖의 다른 이벤트가 상이한 칩(6)으로 전달되고 복수 코어(10) 상에 로컬하게 분산된다(따라서 이들의 경로는 R1-R2-R3-...-R3-R2-R1이다).
도 17은 이종 메모리 구조를 갖는 계층구조적 라우팅 패브릭 또는 네트워크의 또 다른 예시를 보여준다. 이 예시에서, 자기-유사 컴퓨팅 아키텍처가 필요한 계산을 구현하기 위해 로컬 메모리(80)를 액세스하며 이종 속성의 라우팅 시스템(R1, R2, R3)의 계층구조에 의해 상호 연결된 복수의 이벤트-기반 컴퓨팅 노드(90)로 구성된다. 노드(98)는 상기 복수의 노드(90), 로컬(또는 제1) 라우터(R1) 및 상기 라우터(R1)에 의해 액세스되는 라우터 메모리(3)로 구성된 코어(10)에 배열된다. 코어(10)의 그룹은 상기 코어(10)의 그룹, 로컬(또는 제2) 라우터(R2) 및 상기 라우터(R2)에 의해 액세스되는 라우터 메모리(32)로 구성된 타일(또는 칩 또는 유닛)(6)로 배열된다. 상기 타일 모듈(6)은 임의로 조합되어 자기-유사 구조를 형성할 수 있으며, 라우터(R2, R3)가 경로 데이터를 추가 전송될 패킷에 첨부하도록 사용되는 로컬 메모리 엔트리(3, 32, 33)의 포인터로서 출발지 어드레스를 이용한다. 덧붙여, 상기 라우터(R2, R3)는 패킷에 포함된 경로 데이터에 따라, 상위 레벨로부터 전달된 이벤트를 처리하고 이들을 타깃 하위-레벨 도착지로 라우팅하도록 프로그램된다.

Claims (14)

  1. 복수의 상호연결된, 특히 복수의 유닛(6) 상에 배열된 코어 회로(10)를 포함하는 네트워크로서, 각각의 코어 회로(10)는
    복수의 컴퓨팅 노드(90) 및 복수의 메모리 회로(80)를 포함하는 전자 어레이(8, 9) - 전자 어레이(8, 9)는 유입 이벤트(incoming event)를 수신하도록 구성되며, 각자의 컴퓨팅 노드(90)에 의해 수신된 유입 이벤트가 지정 기준을 만족시킬 때 각각의 컴퓨팅 노드(90)는 데이터 패킷을 포함하는 이벤트를 생성하도록 구성됨 - , 및
    도착지 어드레스 및 추가 출발지 정보, 특히, 가상 출발지 코어 ID를 각자의 데이터 패킷에 첨부(append)하도록 구성된 회로, 및
    인트라-코어 연결성(intra-core connectivity)을 제공 및/또는 인터-코어 연결성(inter-core connectivity)을 위해 이벤트를 중간 레벨 제2 라우터(R2)로 전달하고 인터-유닛 연결성(inter-unit connectivity)을 위해 상위 레벨 제3 라우터()로 전달하기 위한 로컬 제1 라우터(R1), 및
    유입 이벤트를 코어 회로(10) 내 모든 메모리 회로(80)로 병렬로 브로드캐스팅하기 위한 브로드캐스트 드라이버(7)
    를 포함하는, 네트워크.
  2. 제1항에 있어서, 네트워크는 코어 회로(10)를 상호 연결하는 이벤트 라우팅 시스템(R1, R2, R3)을 더 포함하며, 상기 이벤트 라우팅 시스템은 상기 로컬 제1 라우터(R1)를 포함하며 특히 라우터(R2, R3), 특히, 중간 레벨 제2 및 상위 레벨 제3 라우터(R2, R3)를 더 포함하고, 특히 전체 라우터가 계층구조(hierarchical structure)를 형성하는, 네트워크.
  3. 제2항에 있어서, 각각의 라우터(R1, R2, R3)는
    특히 각각의 데이터 패킷의 일부인 경로 페이로드(route payload)에 따라 이벤트를 라우팅하도록 구성된 적어도 하나의 제어 회로를 포함하며,
    각각의 제1 라우터(R1)는
    경로 페이로드 및 특히 상기 데이터 패킷에 대한 가상 출발지 코어 ID를 저장하도록 구성된 프로그램 가능 메모리,
    상기 메모리에 저장된 프로그램된 경로 할당에 따라, 경로 페이로드 및 특히 가상 출발지 코어 ID를 각자의 데이터 패킷에 첨부하도록 구성된 적어도 하나의 회로
    를 더 포함하는, 네트워크.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 코어 회로(10)는 특히, 모듈식 타일(6) 또는 칩(6)의 형태로 유닛(6)에 배열되고, 특히 각각의 유닛(6)은 복수의 코어 회로(10)를 포함하고, 각각의 유닛(6)은 제1 라우터(R1) 중 하나를 포함하고, 특히 상기 제1 라우터(R1)가 전체 라우터(R1, R2, R3)에 의해 형성되는 계층구조 내에 배치되는, 네트워크.
  5. 제2항 또는 제4항에 있어서, 상기 계층구조는 제1 라우터(R1)를 포함하는 최저 레벨을 포함하며, 특히 제1 라우터(R1)는 동일한 코어 회로(10) 내에 위치하는 출발지 및 도착지를 갖는 이벤트를 분산시키도록 구성되는, 네트워크.
  6. 제2항, 제4항 및 제5항 중 어느 한 항에 있어서, 상기 계층구조는 제2 라우터(R2)를 포함하는 적어도 하나의 중간 레벨을 포함하며, 특히 제2 라우터(R2)는 동일 유닛 내 코어-회로(10)에 의해 생성되거나 타깃화하는 이벤트를 분산시키도록 구성되는, 네트워크.
  7. 제2항, 제4항, 제5항 및 제6항 중 어느 한 항에 있어서, 상기 계층구조는 서로 다른 유닛(6)들 간 이벤트를 분산시키도록 구성된 제3 라우터(R3)를 포함하는 최고 레벨을 포함하며, 특히, 제3 라우터(R3)는 2차원 메시로 배열되는, 네트워크.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 라우터(R1, R2, R3)는 라우터에 의해 형성된 계층구조 내에 배치되며, 출발지 어드레스와 코어 회로(10)에서 컴퓨팅 노드(90)에 의해 생성된 상기 데이터 패킷을 맵핑하여, 서로 다른 레벨에서의 서로 다른 라우팅 스킴을 매칭함으로써, 서로 다른 비동기식 라우팅 스킴이 계층구조의 서로 다른 레벨에서 공존하는, 네트워크.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 네트워크는 합성 신경 네트워크이며, 각각의 컴퓨팅 노드(90)는 뉴런을 형성하고, 상기 메모리 회로(80) 각각은 시냅스를 형성하며, 특히, 컴퓨팅 노드(90)는 유입 이벤트를 통합하고, 통합된 이벤트에 의해 형성된 신호가 점화 임계치(firing threshold)를 넘을 때 이벤트를 생성하도록 설계되는, 네트워크.
  10. 대화하는 멀티-코어 프로세서(6)의 병렬 네트워크로서, 각각의 프로세서는 코어 회로(10) 내 및/또는 서로 다른 코어 회로(10) 간 데이터 패킷의 형태로 이벤트를 통신하도록 구성된 복수의 코어 회로(10)를 포함하며, 네트워크는 독립적 통신 경로에 따라 동작하도록 구성된 비동기식 라우터(R1, R2, R3)의 계층구조에 의한 상기 통신을 조절하도록 구성되는, 네트워크.
  11. 제10항에 있어서, 각각의 데이터 패킷은, 어드레스를 생성하는 코어 회로(10)의 컴퓨팅 노드(90)의 인코딩된 출발지 어드레스, 및 네트워크에서 각자의 이벤트의 경로의 일부 또는 전부를 특정하는 추가 디지털 코드를 포함하는, 네트워크.
  12. 동일한 네트워크 내에 공존하는 서로 다른 라우팅 전략이 사용되는, 네트워크 라우팅 메모리를 분산시키기 위한 방법.
  13. 특히, 청구항 1 내지 10 중 어느 한 항에 따르는 네트워크를 이용해, 네트워크 내 이벤트를 라우팅하기 위한 방법으로서, 상기 방법은
    복수의 상호연결된 코어 회로(10)를 포함하는 네트워크를 제공하는 단계 - 각각의 코어 회로(10)는 복수의 컴퓨팅 노드(90) 및 복수의 메모리 회로(80)를 포함하는 전자 어레이(8, 9)를 포함함 - ,
    각자의 컴퓨팅 노드(90)에 의해 수신된 유입 이벤트가 지정 기준을 만족시킬 때 컴퓨팅 노드(90)에 의해 데이터 패킷을 포함하는 이벤트를 생성하는 단계,
    각각의 코어 회로(10)가 포함하는 로컬 제1 라우터(R1)에 의해 코어 회로(10) 내에 생성된 이벤트를 분산시키는 단계 - 메모리(2, 3)에 저장된 프로그램된 경로 할당에 따라, 도착지 어드레스 및 특히 추가 가상 출발지 코어 ID가 각자의 제1 라우터(R1)에 의해 각자의 데이터 패킷에 첨부됨 - ,
    각자의 제1 라우터(R1)에 의해 병렬로 각자의 코어-회로(10) 내 모든 메모리 회로(80)에 유입 이벤트를 브로드캐스팅하는 단계,
    각자의 중간 레벨 제2 라우터(R2)에 의해 각자의 데이터 패킷에 첨부된 도착지 어드레스에 따라 코어-회로(10)에 의해 생성되거나 동일한 유닛(6) 내 코어-회로를 타깃으로 삼는 이벤트를 분산시키는 단계, 및
    각자의 데이터 패킷에 첨부된 도착지 어드레스에 따라 상위 레벨 제3 라우터(R3)에 의해 서로 다른 유닛(6) 간에 이벤트를 분산시키는 단계를 포함하는, 네트워크 내 이벤트를 라우팅하기 위한 방법.
  14. 복수의 상호연결된 코어 회로(10)를 포함하는 네트워크에서 이벤트를 라우팅하기 위한 라우팅 패브릭으로서, 각각의 코어 회로는 복수의 컴퓨팅 노드(90) 및 복수의 메모리 회로(80)를 포함하는 전자 어레이(8, 9)를 포함하고, 상기 라우팅 패브릭은
    인트라-코어 회로 연결성을 제공하기 위한 복수의 로컬 제1 라우터(R1) - 로컬 제1 라우터(R1)가 각각의 코어 회로(10)에 할당되도록 구성되며, 각각의 제1 라우터(R1)는 각자의 제1 라우터(R1)가 할당되는 동일 코어 회로(10) 내에 위치하는 출발지와 도착지를 갖는 이벤트의 데이터 패킷을 분산시키도록 구성됨 - ,
    복수의 브로드캐스트 드라이버(7) - 각각의 브로드캐스트 드라이버(7)는 코어 회로(10) 중 하나에 할당되고 이의 연관된 코어-회로(10) 내 모든 메모리 회로(80)로 유입 이벤트를 병렬로 전달하도록 구성됨 - ,
    인터-코어 연결성을 제공하도록 구성된 복수의 제2 라우터(R2) - 특히 제2 라우터(R2)는 각자의 데이터 패킷에 포함되는 경로 페이로드에 따라 이벤트를 분산시키도록 구성됨 - , 및
    인터-칩 연결성을 제공하도록 구성된 복수의 제3 라우터(R3) - 특히 제3 라우터(R3)는 각자의 데이터 패킷에 포함되는 경로 페이로드에 따라 이벤트를 분산시키도록 구성됨 - 를 포함하는, 라우팅 패브릭.
KR1020177033662A 2015-04-27 2016-04-27 확장 가능한 이벤트-구동식 컴퓨팅 시스템을 위한 이종 메모리 구조를 갖는 네트워크 및 계층구조 라우팅 패브릭 KR102679799B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP15165272.4A EP3089080A1 (en) 2015-04-27 2015-04-27 Networks and hierarchical routing fabrics with heterogeneous memory structures for scalable event-driven computing systems
EP15165272.4 2015-04-27
PCT/EP2016/059446 WO2016174113A1 (en) 2015-04-27 2016-04-27 Networks and hierarchical routing fabrics with heterogeneous memory structures for scalable event-driven computing systems

Publications (2)

Publication Number Publication Date
KR20170140297A true KR20170140297A (ko) 2017-12-20
KR102679799B1 KR102679799B1 (ko) 2024-07-01

Family

ID=

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024117753A1 (ko) * 2022-11-29 2024-06-06 한국전자기술연구원 Noc 구조 기반의 경량 인공지능 연산 처리 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024117753A1 (ko) * 2022-11-29 2024-06-06 한국전자기술연구원 Noc 구조 기반의 경량 인공지능 연산 처리 장치 및 방법

Also Published As

Publication number Publication date
CN107533666A (zh) 2018-01-02
US20180139153A1 (en) 2018-05-17
JP2018514872A (ja) 2018-06-07
WO2016174113A1 (en) 2016-11-03
EP3289526A1 (en) 2018-03-07
EP3289526B1 (en) 2020-07-08
JP6959141B2 (ja) 2021-11-02
US11240177B2 (en) 2022-02-01
ES2822919T3 (es) 2021-05-05
EP3089080A1 (en) 2016-11-02
CN107533666B (zh) 2022-01-28

Similar Documents

Publication Publication Date Title
US11240177B2 (en) Networks and hierarchical routing fabrics with heterogeneous memory structures for scalable event-driven computing systems
US11410017B2 (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
US8843425B2 (en) Hierarchical routing for two-way information flow and structural plasticity in neural networks
US11184221B2 (en) Yield tolerance in a neurosynaptic system
JP6912491B2 (ja) 省エネルギな多重ニューラル・コア回路、方法及びニューロシナプティック・システム
US11049001B2 (en) Event-based neural network with hierarchical addressing for routing event packets between core circuits of the neural network
US20140044135A1 (en) Lookup Engine with Reconfigurable Low Latency Computational Tiles
KR102679799B1 (ko) 확장 가능한 이벤트-구동식 컴퓨팅 시스템을 위한 이종 메모리 구조를 갖는 네트워크 및 계층구조 라우팅 패브릭
JP2021013048A (ja) 3次元ネットワークオンチップによるスパイキングニューラルネットワーク
US20220156564A1 (en) Routing spike messages in spiking neural networks
KR20210091688A (ko) 데이터 처리 모듈, 데이터 처리 시스템 및 데이터 처리 방법
Ding et al. An ultra-low latency multicast router for large-scale multi-chip neuromorphic processing
WO2023242374A1 (en) Spike interconnect on chip single-packet multicast
KR20170021639A (ko) 계층형 네트워크 온 칩 장치

Legal Events

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