KR102567449B1 - 뉴로모픽 연산 장치 및 그것의 동작 방법 - Google Patents

뉴로모픽 연산 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR102567449B1
KR102567449B1 KR1020180004053A KR20180004053A KR102567449B1 KR 102567449 B1 KR102567449 B1 KR 102567449B1 KR 1020180004053 A KR1020180004053 A KR 1020180004053A KR 20180004053 A KR20180004053 A KR 20180004053A KR 102567449 B1 KR102567449 B1 KR 102567449B1
Authority
KR
South Korea
Prior art keywords
bit
output voltage
differential signal
data
comparison result
Prior art date
Application number
KR1020180004053A
Other languages
English (en)
Other versions
KR20190085785A (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 한국전자통신연구원
Priority to KR1020180004053A priority Critical patent/KR102567449B1/ko
Priority to US16/222,867 priority patent/US20190213471A1/en
Publication of KR20190085785A publication Critical patent/KR20190085785A/ko
Application granted granted Critical
Publication of KR102567449B1 publication Critical patent/KR102567449B1/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
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/02Computing arrangements based on specific mathematical models using fuzzy logic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/02Computing arrangements based on specific mathematical models using fuzzy logic
    • G06N7/023Learning or tuning the parameters of a fuzzy system
    • 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/045Combinations of networks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H11/00Networks using active elements
    • H03H11/02Multiple-port networks

Landscapes

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

Abstract

본 발명의 하나의 실시 예에 따른 뉴로모픽 연산 장치는 복수의 입력 데이터 각각과 복수의 입력 데이터 각각과 대응하는 복수의 가중치 데이터 각각의 연산 수행에 따라 생성되는 비트들에 기초하여 복수의 제1 차동 신호들 및 복수의 제2 차동 신호들을 생성하는 차동 신호 발생기, 복수의 제1 차동 신호들을 샘플링하고 제1 출력 전압을 출력하는 제1 캐패시터 시냅스 어레이, 복수의 제2 차동 신호들을 샘플링하고 제2 출력 전압을 출력하는 제2 캐패시터 시냅스 어레이, 제1 출력 전압과 제2 출력 전압을 비교하여 비교 결과를 출력하는 비교기 및 비교 결과에 기초하여 제1 캐패시터 시냅스 어레이 및 제2 캐패시터 시냅스 어레이를 제어하고 중간 데이터를 생성하는 SAR(successive approximation register) 로직을 포함한다.

Description

뉴로모픽 연산 장치 및 그것의 동작 방법{NEUROMORPHIC ARITHMETIC DEVICE AND OPERATING METHOD THEREOF}
본 발명은 뉴로모픽 연산 장치에 관한 것으로써, 좀 더 상세하게는 뉴럴 네트워크를 기반으로 합성곱 연산을 수행하는 뉴로모픽 연산 장치 및 그것의 동작 방법에 관한 것이다.
뉴로모픽 연산 장치는 인간의 신경계 또는 뇌를 모방하여 정보를 처리하는 장치이다. 뉴로모픽 연산 장치는 복수의 뉴런들의 2차원 혹은 3차원적 연결을 모방한 연산 장치일 수 있다. 각각의 뉴런은, 생물학적 뉴런의 구성 요소와 동일하게, 축색돌기(axon), 수상돌기(dendrite) 및 세포 몸체(soma)에 해당하는 회로로 구성될 수 있고, 뉴런과 뉴런 사이를 연결하는 시냅스(synapse)도 해당하는 회로로 구성될 수 있다.
디지털 MAC(multiplier-accumulators)을 통해 뉴로모픽 연산 장치가 구현되고 있지만, 방대한 연산을 위해서 저전력 및 저면적의 아날로그 MAC이 사용되고 있다. 아날로그 MAC은 복수의 디지털 입력 신호들을 아날로그 신호들로 변환하고, 변환된 아날로그 신호들을 합하여 디지털 신호로 변환하는 방식을 사용한다. 디지털 신호를 아날로그 신호로 변환하기 위해 멤리스터(memristor)를 사용하거나 트랜지스터(transistor) 기반의 전류 소스(current source)가 사용될 수 있다.
멤리스터의 경우, 일반 CMOS(complementary metal-oxide semiconductor) 공정이 아닌 별도의 공정으로 제작해야 하는 문제가 있다. 전류 소스의 경우, 소자의 부정합으로 인해 최종 디지털 출력 신호의 정확도를 떨어트릴 수 있다. 또한, 디지털 신호를 아날로그 신호로 변환하고 다시 디지털 신호로 변환하는 과정에서 아날로그-디지털 컨버터(ADC)가 사용되는 경우, 이득 에러(gain error), 오프셋 에러(offset error) 등으로 인하여 계산 결과에 오차가 발생할 수 있다.
본 발명은 상술된 기술적 과제를 해결하기 위한 것으로써, 본 발명의 목적은 연산 과정에서 에러 성분들을 제거할 수 있는 뉴로모픽 연산 장치 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 하나의 실시 예에 따른 뉴로모픽 연산 장치는 복수의 입력 데이터 각각과 상기 복수의 입력 데이터 각각과 대응하는 복수의 가중치 데이터 각각의 연산 수행에 따라 생성되는 비트들에 기초하여 복수의 제1 차동 신호들 및 복수의 제2 차동 신호들을 생성하는 차동 신호 발생기, 상기 복수의 제1 차동 신호들을 샘플링하고 제1 출력 전압을 출력하는 제1 캐패시터 시냅스 어레이, 상기 복수의 제2 차동 신호들을 샘플링하고 제2 출력 전압을 출력하는 제2 캐패시터 시냅스 어레이, 상기 제1 출력 전압과 상기 제2 출력 전압을 비교하여 비교 결과를 출력하는 비교기 및 상기 비교 결과에 기초하여 상기 제1 캐패시터 시냅스 어레이 및 상기 제2 캐패시터 시냅스 어레이를 제어하고 중간 데이터를 생성하는 SAR(successive approximation register) 로직을 포함한다.
하나의 실시 예에 있어서, 상기 차동 신호 발생기는 상기 복수의 입력 데이터 각각과 상기 복수의 가중치 데이터 각각의 곱셈 결과에 대한 부호 비트를 생성하는 부호 비트 생성부, 상기 복수의 입력 데이터 각각의 제1 비트와 상기 복수의 가중치 데이터 각각의 제2 비트를 곱하여 곱셈 비트를 생성하는 곱셈 비트 생성부 및 상기 부호 비트와 상기 곱셈 비트에 기초하여 제1 차동 신호 및 제2 차동 신호를 생성하는 디지털 차동 신호 생성부를 포함할 수 있다.
하나의 실시 예에 있어서, 상기 부호 비트 생성부는 상기 복수의 입력 데이터 각각의 최상위 비트와 상기 복수의 가중치 데이터 각각의 최상위 비트를 곱하여 상기 부호 비트를 생성할 수 있다.
하나의 실시 예에 있어서, 상기 디지털 차동 신호 생성부는 상기 부호 비트가 양의 부호를 가리키고 상기 곱셈 비트가 1인 경우, 상기 제1 차동 신호를 1로 생성하고, 상기 제2 차동 신호를 0으로 생성하고, 상기 곱셈 비트가 0인 경우, 상기 제1 차동 신호 및 상기 제2 차동 신호 각각을 0으로 생성하고, 상기 부호 비트가 음의 부호를 가리키고 상기 곱셈 비트가 1인 경우, 상기 제1 차동 신호를 0으로 생성하고, 상기 제2 차동 신호를 1로 생성할 수 있다.
하나의 실시 예에 있어서, 상기 제1 캐패시터 시냅스 어레이는 상기 복수의 제1 차동 신호들 각각과 대응하는 복수의 제1 캐패시터들을 포함하고, 상기 제2 캐패시터 시냅스 어레이는 상기 복수의 제2 차동 신호들 각각과 대응하는 복수의 제2 캐패시터들을 포함할 수 있다.
하나의 실시 예에 있어서, 상기 제1 캐패시터 시냅스 어레이는 복수의 제1 캐패시터들 각각과 대응하는 복수의 제1 스위치들을 포함하고, 상기 복수의 제1 스위치들 각각은 제1 차동 신호, 전원 전압 또는 그라운드 전압 중 하나를 대응하는 제1 캐패시터와 연결하고, 상기 제2 캐패시터 시냅스 어레이는 복수의 제2 캐패시터들 각각과 대응하는 복수의 제2 스위치들을 포함하고, 상기 복수의 제2 스위치들 각각은 제2 차동 신호, 상기 전원 전압 또는 상기 그라운드 전압 중 하나를 대응하는 제2 캐패시터와 연결할 수 있다.
하나의 실시 예에 있어서, 상기 제1 차동 신호에 대응하는 전압은 상기 전원 전압 또는 상기 그라운드 전압 중 하나이고, 상기 제2 차동 신호에 대응하는 전압은 상기 전원 전압 또는 상기 그라운드 전압 중 하나일 수 있다.
하나의 실시 예에 있어서, 상기 SAR 로직은 상기 비교 결과에 기초하여 SAR 기법에 따라 상기 복수의 제1 스위치들 및 상기 복수의 제2 스위치들을 제어할 수 있다.
하나의 실시 예에 있어서, 상기 비교기는 상기 제1 출력 전압이 상기 제2 출력 전압 이하인 경우, 제1 비교 결과를 출력하고, 상기 제1 출력 전압이 상기 제2 출력 전압보다 큰 경우, 제2 비교 결과를 출력하고, 상기 SAR 로직은 상기 제1 비교 결과가 출력되는 경우, 상기 복수의 제1 스위치들 중 적어도 하나를 상기 전원 전압에 연결시키고, 상기 제2 비교 결과가 출력되는 경우, 상기 복수의 제2 스위치들 중 적어도 하나를 상기 전원 전압에 연결시킬 수 있다.
하나의 실시 예에 있어서, 상기 SAR 로직은 상기 비교 결과에 기초하여 상기 중간 데이터의 최상위 비트 값부터 최하위 비트 값까지 순차적으로 결정할 수 있다.
하나의 실시 예에 있어서, 상기 중간 데이터의 비트 수는 상기 복수의 입력 데이터가 n개인 경우, 2n+1개보다 적은 개수의 값들을 나타내는 비트 수일 수 있다.
본 발명의 하나의 실시 예에 따른 뉴로모픽 연산 장치는 상기 SAR 로직으로부터 생성된 복수의 중간 데이터를 수신하고, 상기 복수의 중간 데이터의 자릿수를 기반으로 상기 복수의 중간 데이터를 더하여 상기 복수의 입력 데이터와 상기 복수의 가중치 데이터의 합성곱 결과를 산출하는 덧셈기를 더 포함할 수 있다.
본 발명의 하나의 실시 예에 따른 뉴로모픽 연산 장치의 동작 방법은 복수의 입력 데이터 각각과 상기 복수의 입력 데이터 각각과 대응하는 복수의 가중치 데이터 각각의 연산을 수행하여 비트들을 생성하는 단계, 상기 생성된 비트들에 기초하여 복수의 제1 차동 신호들 및 복수의 제2 차동 신호들을 생성하는 단계, 상기 복수의 제1 차동 신호들을 제1 캐패시터들에 샘플링하고 상기 복수의 제2 차동 신호들을 제2 캐패시터들에 샘플링하는 단계, 상기 제1 캐패시터들의 공통 노드의 제1 출력 전압 및 상기 제2 캐패시터들의 공통 노드의 제2 출력 전압을 비교하여 제1 비교 결과를 출력하는 단계 및 상기 제1 비교 결과에 기초하여 상기 제1 캐패시터들 중 적어도 하나 또는 상기 제2 캐패시터들 중 적어도 하나를 전원 전압에 연결시키는 단계를 포함한다.
본 발명의 하나의 실시 예에 따른 뉴로모픽 연산 장치의 동작 방법은 상기 제1 비교 결과에 기초하여 중간 데이터의 첫 번째 비트 값을 결정하는 단계를 더 포함하고, 상기 중간 데이터는 상기 복수의 입력 데이터 각각의 하나의 비트와 상기 복수의 가중치 데이터 각각의 하나의 비트의 곱셈 결과들의 합을 나타낼 수 있다.
본 발명의 하나의 실시 예에 따른 뉴로모픽 연산 장치의 동작 방법은 상기 제1 출력 전압 및 상기 제2 출력 전압을 비교하여 제2 비교 결과를 출력하는 단계 및 상기 제2 비교 결과에 기초하여 상기 중간 데이터의 두 번째 비트 값을 결정하는 단계를 더 포함할 수 있다.
본 발명의 하나의 실시 예에 따른 뉴로모픽 연산 장치의 동작 방법은 상기 두 번째 비트 값이 최하위 비트 값이 아닌 경우, 상기 제2 비교 결과에 기초하여 상기 제1 캐패시터들 중 적어도 하나 또는 상기 제2 캐패시터들 중 적어도 하나를 상기 전원 전압에 연결시키는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따른 뉴로모픽 연산 장치는 디지털 입력 신호를 아날로그 신호로 변환하는 과정이 없기 때문에 저전력, 초소형으로 구현이 가능할 수 있다.
또한, 본 발명의 실시 예에 따른 뉴로모픽 연산 장치는 아날로그 신호에서 발생될 수 있는 에러 성분들을 제거할 수 있고, 이에 따라 최종 디지털 신호의 정확도를 높일 수 있다.
도 1은 본 발명의 하나의 실시 예에 따른 뉴럴 네트워크(neural network)의 예시를 나타내는 도면이다.
도 2는 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다.
도 3은 도 2의 입력 데이터와 가중치 데이터를 나타내는 예시이다.
도 4는 도 2의 뉴로모픽 연산 장치의 예시를 보여주는 블록도이다.
도 5는 도 4의 차동 신호 발생기가 생성하는 비트들에 대한 예시를 보여주는 도면이다.
도 6은 SAR 로직이 생성하는 중간 데이터의 예시를 보여주는 도면이다.
도 7은 도 4의 차동 신호 발생기의 예시를 보여주는 블록도이다.
도 8은 도 4의 캐패시터 시냅스 어레이, 비교기 및 SAR 로직의 예시를 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따른 뉴로모픽 연산 장치의 동작 방법을 보여주는 순서도이다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시 예들이 상세하게 설명된다. 이하의 설명에서, 상세한 구성들 및 구조들과 같은 세부적인 사항들은 단순히 본 발명의 실시 예들의 전반적인 이해를 돕기 위하여 제공된다. 그러므로 본 발명의 기술적 사상 및 범위로부터의 벗어남 없이 본문에 기재된 실시 예들의 변형들은 통상의 기술자 의해 수행될 수 있다. 더욱이, 명확성 및 간결성을 위하여 잘 알려진 기능들 및 구조들에 대한 설명들은 생략된다. 본 명세서에서 사용된 용어들은 본 발명의 기능들을 고려하여 정의된 용어들이며, 특정 기능에 한정되지 않는다. 용어들의 정의는 상세한 설명에 기재된 사항을 기반으로 결정될 수 있다.
이하의 도면들 또는 상세한 설명에서의 모듈들은 도면에 도시되거나 또는 상세한 설명에 기재된 구성 요소 이외에 다른 것들과 연결될 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 직접적 또는 비직접적일 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 통신에 의한 연결이거나 또는 물리적인 접속일 수 있다.
상세한 설명에서 사용되는 부 또는 유닛(unit), 모듈(module), 계층(layer), 로직(logic) 등의 용어를 참조하여 설명되는 구성 요소들은 소프트웨어, 또는 하드웨어, 또는 그것들의 조합의 형태로 구현될 수 있다. 예시적으로, 소프트웨어는 기계 코드, 펌웨어, 임베디드 코드, 및 애플리케이션 소프트웨어일 수 있다. 예를 들어, 하드웨어는 전기 회로, 전자 회로, 프로세서, 컴퓨터, 집적 회로, 집적 회로 코어들, 압력 센서, 관성 센서, 멤즈(Micro Electro Mechanical System; MEMS), 수동 소자, 또는 그것들의 조합을 포함할 수 있다.
다르게 정의되지 않는 한, 본문에서 사용되는 기술적 또는 과학적인 의미를 포함하는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자에 의해 이해될 수 있는 의미를 갖는다. 일반적으로 사전에서 정의된 용어들은 관련된 기술 분야에서의 맥락적 의미와 동등한 의미를 갖도록 해석되며, 본문에서 명확하게 정의되지 않는 한, 이상적 또는 과도하게 형식적인 의미를 갖도록 해석되지 않는다.
도 1은 본 발명의 하나의 실시 예에 따른 뉴럴 네트워크(neural network)의 예시를 나타내는 도면이다. 도 1을 참조하면, 제1 레이어는 제1 내지 제4 뉴런들(n1~n4)을 포함하고, 제2 레이어는 제5 뉴런(n5)을 포함할 수 있다. 제1 내지 제4 뉴런들(n1~n4)은 제5 뉴런(n5)과 각각 제1 내지 제4 시냅스들(s1~s4)에 의해 연결될 수 있다.
뉴런과 뉴런 사이를 연결하는 시냅스는 가중치를 포함할 수 있다. 가중치는 뉴런과 뉴런 사이의 연결 강도를 나타낼 수 있다. 제1 내지 제4 시냅스들(s1~s4)은 각각 제1 내지 제4 가중치 데이터(W1~W4)를 포함할 수 있다. 예를 들어, 제1 가중치 데이터(W1)는 제1 뉴런(n1)과 제5 뉴런(n5) 사이의 연결 강도를 나타낼 수 있다. 제1 내지 제4 가중치 데이터(W1~W4)는 뉴런들 사이의 연결 강도가 달라지는 경우, 업데이트될 수 있다.
제1 내지 제4 뉴런들(n1~n4)은 각각 제1 내지 제4 입력 데이터(F1~F4)를 제1 내지 제4 시냅스들(s1~s4)을 통해 제5 뉴런(n5)으로 전달할 수 있다. 제1 내지 제4 입력 데이터(F1~F4)는 제1 내지 제4 뉴런들(n1~n4)에서 생성되는 데이터일 수 있다. 예를 들어, 제1 내지 제4 뉴런들(n1~n4)은 이미지 픽셀 값들에 기초하여 제1 내지 제4 입력 데이터(F1~F4)를 생성할 수 있다. 컨볼루션 뉴럴 네트워크(CNN; convolution neural network)에 있어서, 제1 내지 제4 입력 데이터(F1~F4)는 특징 데이터(feature data)일 수 있고, 제1 내지 제4 가중치 데이터(W1~W4)는 마스크(mask)(또는, 필터(filter), 윈도우(window), 커널(kernel))의 가중치 값일 수 있다.
제5 뉴런(n5)은 제1 내지 제4 입력 데이터(F1~F4)를 수신하고, 수신된 제1 내지 제4 입력 데이터(F1~F4)와 제1 내지 제4 가중치 데이터(W1~W4)의 연산을 수행할 수 있다. 예시적으로, 제5 뉴런(n5)은 제1 내지 제4 입력 데이터(F1~F4) 각각을 대응하는 제1 내지 제4 가중치 데이터(W1~W4) 각각과 곱한 후, 곱셈 결과들을 더할 수 있다. 즉, 제5 뉴런(n5)은 제1 내지 제4 입력 데이터(F1~F4)와 제1 내지 제4 가중치 데이터(W1~W4)의 합성곱 연산을 수행할 수 있다.
제5 뉴런(n5)은 연산 수행 결과에 기초하여 출력 데이터를 생성할 수 있다. 예시적으로, 제5 뉴런(n5)은 제1 내지 제4 입력 데이터(F1~F4)와 제1 내지 제4 가중치 데이터(W1~W4)의 합성곱 연산 수행 결과를 출력 데이터로서 생성할 수 있다. 또는, 제5 뉴런(n5)은 합성곱 연산 수행 결과 및 활성화 함수(activation function)에 기초하여 출력 데이터를 생성할 수 있다.
도 1에는 제1 내지 제4 뉴런들(n1~n4)이 제1 레이어에 포함되고, 제5 뉴런(n5)이 제2 레이어에 포함된 뉴럴 네트워크의 예시가 도시되었지만, 본 발명은 이에 한정되지 않는다. 본 발명의 실시 예에 따른 뉴럴 네트워크는 다양한 레이어를 포함할 수 있고, 각 레이어는 다양한 개수의 뉴런들을 포함할 수 있다.
상술한 바와 같이, 본 발명의 실시 예에 따른 뉴럴 네트워크의 뉴런은 합성곱 연산을 수행할 수 있다. 이하에서는, 설명의 편의를 위해, 도 1에 도시된 바와 같이, 제1 내지 제4 입력 데이터(F1~F4)와 제1 내지 제4 가중치 데이터(W1~W4)의 합성곱 연산을 수행하는 뉴런의 예시를 기준으로 본 발명이 설명될 것이다. 하지만, 본 발명이 이에 한정되는 것은 아니며, 본 발명은 다양한 개수의 입력 데이터 및 다양한 개수의 가중치 데이터의 합성곱 연산을 수행하는 뉴런에 적용할 수 있다.
도 2는 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다. 도 1 및 도 2를 참조하면, 뉴로모픽 연산 장치(100)는 도 1의 제5 뉴런(n5)이 수행하는 합성곱 연산을 수행할 수 있다. 뉴로모픽 연산 장치(100)는 제1 내지 제4 입력 데이터(F1~F4) 및 제1 내지 제4 가중치 데이터(W1~W4)를 수신할 수 있다. 뉴로모픽 연산 장치(100)는 제1 내지 제4 입력 데이터(F1~F4)와 제1 내지 제4 가중치 데이터(W1~W4)의 합성곱 연산을 수행할 수 있다. 뉴로모픽 연산 장치(100)는 합성곱 연산을 통해 합성곱 연산 결과(F1*W1+F2*W2+F3*W3+F4*W4)를 출력할 수 있다.
제1 내지 제4 입력 데이터(F1~F4), 제1 내지 제4 가중치 데이터(W1~W4) 및 합성곱 연산 결과(F1*W1+F2*W2+F3*W3+F4*W4)는 디지털 신호일 수 있다. 즉, 뉴로모픽 연산 장치(100)는 디지털 신호들을 입력으로 수신하고, 합성곱 연산을 수행한 후, 합성곱 연산 결과를 디지털 신호로 출력할 수 있다.
도 3은 도 2의 입력 데이터와 가중치 데이터를 나타내는 예시이다. 도 2 및 도 3을 참조하면, 제1 내지 제4 입력 데이터(F1~F4) 및 제1 내지 제4 가중치 데이터(W1~W4)는 각각 4비트일 수 있다. 이하에서는, 설명의 편의를 위해, 제1 입력 데이터(F1) 및 제1 가중치 데이터(W1)를 기준으로 각각의 입력 데이터 및 가중치 데이터를 설명한다.
제1 입력 데이터(F1)의 최상위 비트(MSB; most significant bit)(F14)는 제1 입력 데이터(F1)의 부호 비트일 수 있고, 나머지 하위 비트들(F13~F11)은 제1 입력 데이터(F1)의 데이터 값을 나타내는 비트들일 수 있다. 제1 가중치 데이터(W1)의 최상위 비트(W14)는 부호 비트일 수 있고, 나머지 하위 비트들(W13~W11)은 제1 가중치 데이터(W1)의 데이터 값을 나타내는 비트들일 수 있다. 각각의 비트는 '0' 또는 '1'일 수 있다. 예를 들어, 제1 입력 데이터(F1)가 '0011'인 경우, 제1 입력 데이터(F1)는 '(+)3'을 나타낼 수 있다. 제1 가중치 데이터(W1)가 '1101'인 경우, 제1 가중치 데이터(W1)는 '(-)5'를 나타낼 수 있다.
도 3에 도시된 바와 같이, 제1 입력 데이터(F1) 및 제1 가중치 데이터(W1)는 각각 4비트의 디지털 신호일 수 있지만, 본 발명은 이에 한정되지 않으며, 제1 내지 제4 입력 데이터(F1~F4) 및 제1 내지 제4 가중치 데이터(W1~W4)는 다양한 비트의 디지털 신호일 수 있다. 도 3의 제1 입력 데이터(F1) 및 제1 가중치 데이터(W1)는 각각 부호를 나타내기 위한 최상위 비트를 포함하지만, 본 발명은 이에 한정되지 않으며, 제1 내지 제4 입력 데이터(F1~F4) 및 제1 내지 제4 가중치 데이터(W1~W4)는 부호 비트를 포함하지 않을 수 있다.
도 4는 도 2의 뉴로모픽 연산 장치의 예시를 보여주는 블록도이다. 도 2 및 도 4를 참조하면, 뉴로모픽 연산 장치(100)는 차동 신호 발생기(110), 캐패시터 시냅스 어레이(Capacitor Synapse Array)(120), 비교기(130), 축자 비교 레지스터(SAR; successive-approximation register) 로직(140) 및 덧셈기(150)를 포함할 수 있다.
차동 신호 발생기(110)는 제1 내지 제4 입력 데이터(F1~F4) 및 제1 내지 제4 가중치 데이터(W1~W4)를 수신할 수 있다. 예시적으로, 차동 신호 발생기(110)는 제1 입력 데이터(F1)와 제1 가중치 데이터(W1)의 연산을 수행하여 비트들을 생성할 수 있다. 차동 신호 발생기(110)는 생성된 비트들에 기초하여 제1 차동 신호(INP1) 및 제2 차동 신호(INN1)를 생성할 수 있다. 마찬가지로, 차동 신호 발생기(110)는 제2 내지 제4 입력 데이터(F2~F4)와 제2 내지 제4 가중치 데이터(W2~W4)의 연산을 수행하여 비트들을 생성할 수 있다. 차동 신호 발생기(110)는 생성된 비트들에 기초하여 제1 차동 신호들(INP2~INP4) 및 제2 차동 신호들(INN2~INN4)을 생성할 수 있다.
이하에서는, 도 5를 참조하여 차동 신호 발생기(110)가 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)을 생성하는 예시를 설명한다. 도 5는 도 4의 차동 신호 발생기가 생성하는 비트들에 대한 예시를 보여주는 도면이다.
차동 신호 발생기(110)는 제1 입력 데이터(F1)의 부호 비트(F14)와 제1 가중치 데이터(W1)의 부호 비트(W14)를 곱하여 제1 입력 데이터(F1)와 제1 가중치 데이터(W1)의 곱셈 결과에 대한 제1 부호 비트(sb1)를 생성할 수 있다. 또한, 차동 신호 발생기(110)는 제1 입력 데이터(F1)의 제1 비트(F11)와 제1 가중치 데이터(W1)의 제2 비트(W11)를 곱하여 제1 곱셈 비트(b1)를 생성할 수 있다. 차동 신호 발생기(110)는 생성된 제1 부호 비트(sb1) 및 제1 곱셈 비트(b1)에 기초하여 제1 차동 신호(INP1) 및 제2 차동 신호(INN1)를 생성할 수 있다.
제1 부호 비트(sb1)를 생성한 방식과 같이, 차동 신호 발생기(110)는 제2 부호 비트(sb2)를 생성하고, 제2 입력 데이터(F2)의 제1 비트(F21)와 제2 가중치 데이터(W2)의 제2 비트(W21)를 곱하여 제2 곱셈 비트(b2)를 생성할 수 있다. 차동 신호 발생기(110)는 생성된 제2 부호 비트(sb2) 및 제2 곱셈 비트(b2)에 기초하여 제1 차동 신호(INP2) 및 제2 차동 신호(INN2)를 생성할 수 있다.
마찬가지로, 차동 신호 발생기(110)는 제3 입력 데이터(F3)와 제3 가중치 데이터(W3)의 곱셈 결과에 대한 제3 부호 비트(sb3) 및 제3 곱셈 비트(b3)에 기초하여 제1 차동 신호(INP3) 및 제2 차동 신호(INN3)를 생성할 수 있다. 차동 신호 발생기(110)는 제4 입력 데이터(F4)와 제4 가중치 데이터(W4)의 곱셈 결과에 대한 제4 부호 비트(sb4) 및 제4 곱셈 비트(b4)에 기초하여 제1 차동 신호(INP4) 및 제2 차동 신호(INN4)를 생성할 수 있다.
상술한 바와 같이, 차동 신호 발생기(110)는 복수의 부호 비트들과 동일한 자릿수의 곱셈 비트들을 이용하여 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)을 생성할 수 있다.
차동 신호 발생기(110)는 제1 내지 제4 부호 비트들(sb1~sb4) 및 제1 내지 제4 곱셈 비트들(b1~b4)에 기초하여 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)을 생성한 후, 제1 내지 제4 부호 비트들(sb1~sb4) 및 제5 내지 제8 곱셈 비트들(b5~b8)에 기초하여 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)을 생성할 수 있다. 이후, 차동 신호 발생기(110)는 제1 내지 제4 부호 비트들(sb1~sb4) 및 제9 내지 제12 곱셈 비트들(b9~b12)에 기초하여 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)을 생성할 수 있다.
도 3에 도시된 바와 같이, 입력 데이터의 데이터 값을 나타내는 비트 수가 3이고, 가중치 데이터의 데이터 값을 나타내는 비트 수가 3인 경우, 차동 신호 발생기(110)는 입력 데이터 및 가중치 데이터에 대하여 9개의 곱셈 비트들을 생성할 수 있다. 이에 따라, 차동 신호 발생기(110)로부터 생성되는 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)은 9가지 일 수 있다. 이는 입력 데이터의 비트 수 및 가중치 데이터의 비트 수에 따라 달라질 수 있다.
다시 도 4를 참조하면, 차동 신호 발생기(110)는 생성된 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)을 캐패시터 시냅스 어레이(120)로 제공할 수 있다.
캐패시터 시냅스 어레이(120)는 제1 캐패시터 시냅스 어레이(121) 및 제2 캐패시터 시냅스 어레이(122)를 포함할 수 있다. 제1 캐패시터 시냅스 어레이(121)는 제1 차동 신호들(INP1~INP4)을 샘플링(sampling)할 수 있다. 예시적으로, 제1 캐패시터 시냅스 어레이(121)는 복수의 캐패시터들에 제1 차동 신호들(INP1~INP4)을 샘플링할 수 있다. 제1 캐패시터 시냅스 어레이(121)는 샘플링된 신호들에 기초하여 제1 출력 전압(VP)을 출력할 수 있다.
제2 캐패시터 시냅스 어레이(122)는 제2 차동 신호들(INN1~INN4)을 샘플링할 수 있다. 예시적으로, 제2 캐패시터 시냅스 어레이(122)는 복수의 캐패시터들에 제2 차동 신호들(INN1~INN4)을 샘플링할 수 있다. 제2 캐패시터 시냅스 어레이(122)는 샘플링된 신호들에 기초하여 제2 출력 전압(VN)을 출력할 수 있다. 캐패시터 시냅스 어레이(120)는 제1 출력 전압(VP) 및 제2 출력 전압(VN)을 비교기(130)로 제공할 수 있다.
비교기(130)는 제1 출력 전압(VP) 및 제2 출력 전압(VN)을 비교하여 비교 결과를 생성할 수 있다. 예시적으로, 비교기(130)는 제1 출력 전압(VP)이 제2 출력 전압(VN) 이하인 경우, 하이(high) 값(즉, '1')에 대응하는 비교 결과를 생성할 수 있다. 비교기(130)는 제1 출력 전압(VP)이 제2 출력 전압(VN)보다 큰 경우, 로우(low) 값(즉, '0')에 대응하는 비교 결과를 생성할 수 있다. 비교기(130)는 비교 결과를 SAR 로직(140)으로 제공할 수 있다.
SAR 로직(140)은 비교기(130)로부터 수신한 비교 결과에 기초하여 중간 데이터(S)를 생성할 수 있다. 중간 데이터(S)는 제1 내지 제4 입력 데이터(F1~F4) 각각의 하나의 비트와 제1 내지 제4 가중치 데이터(W1~W4) 각각의 하나의 비트의 곱셈 결과들의 합을 나타낸다. 이 경우, 곱셈 결과들의 합은 제1 내지 제4 입력 데이터(F1~F4)의 부호와 제1 내지 제4 가중치 데이터(W1~W4)의 부호가 고려된 값일 수 있다.
이하에서는, 도 5 및 도 6을 참조하여 SAR 로직(140)이 생성하는 중간 데이터(S)의 예시를 설명한다. 도 6은 SAR 로직이 생성하는 중간 데이터의 예시를 보여주는 도면이다.
도 5의 제1 내지 제4 곱셈 비트들(b1~b4)에 기초하여 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)이 생성되는 경우, SAR 로직(140)은 도 6의 제1 중간 데이터(S1)를 생성할 수 있다. 제1 중간 데이터(S1)는 제1 내지 제4 부호 비트들(sb1~sb4)의 값이 고려된 제1 내지 제4 곱셈 비트들(b1~b4)의 합을 나타낼 수 있다.
예를 들어, 도 5의 제1 부호 비트(sb1)의 값이 고려되는 경우, 제1 곱셈 비트(b1)는 '-1', '0', '1' 중 하나의 값을 나타낼 수 있다. 마찬가지로, 제2 내지 제4 부호 비트들(sb2~sb4)의 값들이 고려되는 경우, 제2 내지 제4 곱셈 비트들(b2~b4) 각각은 '-1', '0', '1' 중 하나의 값을 나타낼 수 있다. 각각의 곱셈 비트들은 '-1', '0', '1' 중 하나의 값을 나타낼 수 있으므로, 제1 내지 제4 부호 비트들(sb1~sb4)의 값이 고려된 제1 내지 제4 곱셈 비트들(b1~b4)의 합은 '-4' 내지 '4'의 값을 나타낼 수 있다.
도 6에 도시된 바와 같이, SAR 로직(140)으로부터 생성된 제1 중간 데이터(S1)는 3비트일 수 있다. 제1 중간 데이터(S1)가 3비트인 경우, 제1 중간 데이터(S1)는 8개의 값을 나타낼 수 있다. 상술한 바와 같이, 제1 내지 제4 부호 비트들(sb1~sb4)의 값이 고려된 제1 내지 제4 곱셈 비트들(b1~b4)의 합이 나타낼 수 있는 값은 9개일 수 있다. 따라서, 제1 중간 데이터(S1)가 3비트로 생성되는 경우, SAR 로직(140)은 하나의 제1 중간 데이터(S1) 값으로 두 개의 값을 나타낼 수 있다. 예를 들어, SAR 로직(140)은 제1 내지 제4 곱셈 비트들(b1~b4)의 합이 '3' 또는 '4'인 경우, 제1 중간 데이터(S1)를 '111'로 동일하게 생성할 수 있다.
뉴럴 네트워크에서 뉴런으로 입력되는 입력 데이터가 n개인 경우, 입력 데이터의 하나의 비트 및 대응하는 가중치 데이터의 하나의 비트에 대한 곱셈 결과는 n개일 수 있다. 부호를 고려한 각 곱셈 결과는 '-1', '0', '1' 중 하나의 값을 나타낼 수 있고, 각 곱셈 결과들의 합은 2n+1가지일 수 있다. 이 경우, 중간 데이터(S)의 비트 수는 2n+1개보다 적은 개수의 값들을 나타내는 비트 수일 수 있다.
상술한 바와 같이, 중간 데이터(S)의 비트 수가 적게 사용되는 경우, 연산 결과가 부정확할 수 있지만, 메모리 용량 및 계산 속도는 향상될 수 있다. 뉴럴 네트워크를 이용한 딥 러닝(deep learning)은 방대한 연산을 수행하고, 연산 수행 결과를 확률적으로 판단할 수 있다. 이에 따라, 정확한 연산이 수행되지 않더라도 원하는 결과가 도출될 수 있기 때문에, 뉴로모픽 연산 장치(100)는 중간 데이터(S)의 비트 수를 적게 사용함으로써 근사 연산을 수행할 수 있다. 뉴로모픽 연산 장치(100)는 근사 연산을 수행하여 방대한 연산을 빠르게 처리할 수 있다.
그러나, 본 발명은 이에 한정되지 않으며, 뉴로모픽 연산 장치(100)는 연산의 정확성을 위해 2n+1개의 값을 나타낼 수 있는 비트 수를 갖는 중간 데이터(S)를 생성할 수 있다. 예를 들어, 도 6의 제1 중간 데이터(S1)를 4비트로 생성할 수 있다. 2n+1개의 값을 나타낼 수 있도록 중간 데이터(S)의 비트 수가 정해지는 경우, 연산의 정확도가 향상될 수 있다. 즉, 연산의 정확도 및 연산 속도를 고려하여 중간 데이터(S)의 비트 수가 정해질 수 있다.
SAR 로직(140)은 도 5의 제5 내지 제8 곱셈 비트들(b5~b8)에 기초하여 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)이 생성되는 경우, 도 6의 제2 중간 데이터(S2)를 생성할 수 있다. 또한, SAR 로직(140)은 도 5의 제9 내지 제12 곱셈 비트들(b9~b12)에 기초하여 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)이 생성되는 경우, 도 6의 제4 중간 데이터(S4)를 생성할 수 있다.
이와 같은 방식으로, SAR 로직(140)은 제1 내지 제9 중간 데이터(S1~S9)를 생성할 수 있다. 도 5에 도시된 바와 같이, 각각의 입력 데이터의 한 비트와 각각의 가중치 데이터 한 비트의 곱셈 비트들이 9개이기 때문에, SAR 로직(140)은 9개의 중간 데이터(S)를 생성할 수 있다.
다시 도 4를 참조하면, SAR 로직(140)은 비교 결과에 기초하여 캐패시터 시냅스 어레이(120)를 제어할 수 있다. 예시적으로, SAR 로직(140)은 SAR 기법에 기초하여 캐패시터 시냅스 어레이(120)를 제어할 수 있다. SAR 로직(140)은 최상위 비트(MSB)부터 중간 데이터(S)의 비트들을 결정하고, 이진 탐색 방식으로 캐패시터 시냅스 어레이(120)를 제어할 수 있다.
예를 들어, SAR 로직(140)은 첫 번째 비교 결과에 기초하여 중간 데이터(S)의 최상위 비트를 결정하고, 캐패시터 시냅스 어레이(120)로 제어 신호를 전송할 수 있다. 캐패시터 시냅스 어레이(120)는 제어 신호에 따라 제1 출력 전압(VP) 및 제2 출력 전압(VN)을 출력할 수 있다. 출력되는 제1 출력 전압(VP) 및 제2 출력 전압(VN)은 SAR 로직(140)의 제어에 따라 달라질 수 있다. 비교기(130)는 제1 출력 전압(VP) 및 제2 출력 전압(VN)의 두 번째 비교 결과를 출력할 수 있다. SAR 로직(140)은 두 번째 비교 결과에 기초하여 중간 데이터(S)의 두 번째 비트를 결정할 수 있다. SAR 로직(140)은 두 번째 비교 결과에 기초하여 다시 캐패시터 시냅스 어레이(120)로 제어 신호를 전송할 수 있다. 이러한 과정에 의해, SAR 로직(140)은 중간 데이터(S)의 최상위 비트 내지 최하위 비트를 결정할 수 있다. SAR 로직(140)은 중간 데이터(S)의 모든 비트들을 결정함으로써 하나의 중간 데이터(S)를 생성할 수 있다.
SAR 로직(140)으로부터 출력되는 제어 신호는 이진 탐색 방식에 의해 결정될 수 있다. SAR 로직(140)이 SAR 기법에 기초하여 캐패시터 시냅스 어레이(120)를 제어하는 내용에 대한 상세한 설명은 도 8을 참조하여 후술될 것이다.
SAR 로직(140)은 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)의 입력에 기초하여 중간 데이터(S)를 순차적으로 생성할 수 있다. 예를 들어, 도 6에 도시된 바와 같이, SAR 로직(140)은 제1 중간 데이터(S1) 내지 제9 중간 데이터(S9)를 순차적으로 생성할 수 있다. SAR 로직(140)은 생성된 복수의 중간 데이터(S)를 덧셈기(150)로 제공할 수 있다.
덧셈기(150)는 복수의 중간 데이터(S)를 수신할 수 있다. 덧셈기(150)는 복수의 중간 데이터(S)를 더하여 제1 내지 제4 입력 데이터(F1~F4)와 제1 내지 제4 가중치 데이터(W1~W4)의 합성곱 결과를 출력할 수 있다. 예시적으로, 덧셈기(150)는 복수의 중간 데이터(S) 각각의 자릿수를 기반으로 중간 데이터(S)를 시프트(shift)시킬 수 있다. 덧셈기(150)는 시프트된 복수의 중간 데이터(S)를 더하여 합성곱 결과를 생성할 수 있다.
예를 들어, 덧셈기(150)는 도 6에 도시된 바와 같이, 제1 내지 제9 중간 데이터(S1~S9)를 더하여 제1 내지 제4 입력 데이터(F1~F4)와 제1 내지 제4 가중치 데이터(W1~W4)의 합성곱 결과를 출력할 수 있다. 덧셈기(150)는 제1 내지 제9 중간 데이터(S1~S9) 각각의 자릿수를 기반으로 제1 내지 제9 중간 데이터(S1~S9)를 시프트한 후, 자릿수에 따라 덧셈을 수행할 수 있다.
도 7은 도 4의 차동 신호 발생기의 예시를 보여주는 블록도이다. 도 4 및 도 7을 참조하면, 차동 신호 발생기(110)는 곱셈 비트 생성부(111), 부호 비트 생성부(112) 및 디지털 차동 신호 생성부(113)를 포함할 수 있다.
곱셈 비트 생성부(111)는 제1 내지 제4 입력 데이터(F1~F4) 각각의 하나의 비트와 제1 내지 제4 가중치 데이터(W1~W4) 각각의 하나의 비트를 곱하여 곱셈 비트를 생성할 수 있다. 예를 들어, 곱셈 비트 생성부(111)는 도 5에 도시된 바와 같이, 제1 입력 데이터(F1)의 제1 비트(F11)와 제1 가중치 데이터(W1)의 제2 비트(W11)를 곱하여 제1 곱셈 비트(b1)를 생성할 수 있다.
부호 비트 생성부(112)는 제1 내지 제4 입력 데이터(F1~F4) 각각과 제1 내지 제4 가중치 데이터(W1~W4) 각각의 곱셈 결과에 대한 부호 비트를 생성할 수 있다. 예를 들어, 부호 비트 생성부(112)는 도 5에 도시된 바와 같이, 제1 입력 데이터(F1)의 부호 비트(F14)와 제1 가중치 데이터(W1)의 부호 비트(W14)를 곱하여 제1 입력 데이터(F1)와 제1 가중치 데이터(W1)의 곱셈 결과에 대한 제1 부호 비트(sb1)를 생성할 수 있다.
디지털 차동 신호 생성부(113)는 곱셈 비트 생성부(111)로부터 생성된 곱셈 비트들과 부호 비트 생성부(112)로부터 생성된 부호 비트들에 기초하여 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)을 생성할 수 있다.
아래의 표 1은 디지털 차동 신호 생성부(113)가 생성하는 제1 차동 신호(INP) 및 제2 차동 신호(INN)의 예시를 나타낸다.
F*W의 부호비트 0(+) 0(+) 1(-) 1(-)
F(1-비트)*W(1-비트) 1 0 0 1
INP 1 0 0 0
INN 0 0 0 1
입력 데이터(F)와 가중치 데이터(W)의 부호 비트가 '0'(즉, '+')이고, 입력 데이터(F)의 하나의 비트와 가중치 데이터(W)의 하나의 비트의 곱이 '1'인 경우, 제1 차동 신호(INP)는 '1'일 수 있다. 예를 들어, 도 5의 제1 곱셈 비트(b1)가 '1'이고, 제1 부호 비트(sb1)가 '0'인 경우, 제1 차동 신호(INP1)는 '1'일 수 있다.
제2 차동 신호(INN)는 입력 데이터(F)와 가중치 데이터(W)의 부호 비트가 '1'(즉, '-')이고, 입력 데이터(F)의 하나의 비트와 가중치 데이터(W)의 하나의 비트의 곱이 '1'인 경우, '1'일 수 있다. 예를 들어, 도 5의 제1 곱셈 비트(b1)가 '1'이고, 제1 부호 비트(sb1)가 '1'인 경우, 제2 차동 신호(INN1)는 '1'일 수 있다.
표 1과 같이, 제1 차동 신호(INP)가 '1'인 경우, 제2 차동 신호(INN)는 '0'이고, 제1 차동 신호(INP)가 '0'인 경우, 제2 차동 신호(INN)는 '1'일 수 있다. 또한, 입력 데이터(F)의 하나의 비트와 가중치 데이터(W)의 하나의 비트의 곱이 '0'인 경우, 제1 차동 신호(INP) 및 제2 차동 신호(INN)는 모두 '0'일 수 있다.
즉, 제1 차동 신호(INP) 및 제2 차동 신호(INN)는 입력 데이터(F)의 하나의 비트와 가중치 데이터(W)의 하나의 비트의 곱에 대한 크기 및 부호 정보를 포함하는 신호일 수 있다.
도 8은 도 4의 캐패시터 시냅스 어레이, 비교기 및 SAR 로직의 예시를 보여주는 도면이다. 도 4 및 도 8을 참조하면, 캐패시터 시냅스 어레이(120)는 제1 캐패시터 시냅스 어레이(121) 및 제2 캐패시터 시냅스 어레이(122)를 포함할 수 있다. 제1 캐패시터 시냅스 어레이(121)는 제1 내지 제4 캐패시터들(C1~C4) 및 제1 내지 제5 스위치들(SW1~SW5)을 포함할 수 있다. 제2 캐패시터 시냅스 어레이(122)는 제5 내지 제8 캐패시터들(C5~C8) 및 제6 내지 제10 스위치들(SW6~SW10)을 포함할 수 있다.
캐패시터 시냅스 어레이(120)는 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)을 수신할 수 있다. 제1 차동 신호들(INP1~INP4)은 대응하는 제1 내지 제4 캐패시터들(C1~C4)의 일단으로 입력될 수 있다. 제2 차동 신호들(INN1~INN4)은 대응하는 제5 내지 제8 캐패시터들(C5~C8)의 일단으로 입력될 수 있다.
제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)이 입력되는 경우, 각 신호들의 샘플링을 위해, 캐패시터 시냅스 어레이(120)는 제5 스위치(SW5) 및 제10 스위치(SW10)를 닫을 수 있다. 제5 스위치(SW5) 및 제10 스위치(SW10)가 닫히는 경우, 그라운드 전압(GND)이 제1 내지 제4 캐패시터들의 제1 공통 노드(CN1)로 인가될 수 있고, 제5 내지 제8 캐패시터들의 제2 공통 노드(CN2)로 인가될 수 있다. 이 때, 제1 내지 제4 스위치들(SW1~SW4)이 제1 차동 신호들(INP1~INP4)과 연결되는 경우, 제1 차동 신호들(INP1~INP4)에 의해 제1 내지 제4 캐패시터들(C1~C4)에 전하가 충전될 수 있다. 또한, 제5 내지 제8 스위치들(SW5~SW8)이 제2 차동 신호들(INN1~INN4)과 연결되는 경우, 제2 차동 신호들(INN1~INN4)에 의해 제5 내지 제8 캐패시터들(C5~C8)에 전하가 충전될 수 있다.
예를 들어, 제1 차동 신호(INP1)가 '1'인 경우, '1'에 대응하는 전압에 의해 제1 캐패시터(C1)가 충전될 수 있다. 제2 차동 신호(INN1)가 '0'인 경우, '0'에 대응하는 전압에 의해 제5 캐패시터(C5)가 충전될 수 있다. 이 경우, '1'에 대응하는 전압은 전원 전압(VDD)일 수 있고, '0'에 대응하는 전압은 그라운드 전압(GND)일 수 있다.
전하가 충전된 후, 캐패시터 시냅스 어레이(120)는 제5 스위치(SW5) 및 제10 스위치(SW10)를 열 수 있다. 이 경우, 제1 공통 노드(CN1) 및 제2 공통 노드(CN2)는 플로팅(floating) 상태가 될 수 있다. 이후, 제1 내지 제4 스위치들(SW1~SW4) 및 제6 내지 제9 스위치들(SW6~SW9)을 그라운드 전압(GND)에 연결시키는 경우, 제1 공통 노드(CN1)의 전압은 제1 내지 제4 캐패시터들(C1~C4)의 충전 상태에 기초하여 달라질 수 있고, 제2 공통 노드(CN2)의 전압은 제5 내지 제8 캐패시터들(C5~C8)의 충전 상태에 기초하여 달라질 수 있다. 즉, 제1 차동 신호들(INP1~INP4)이 샘플링될 수 있고, 제2 차동 신호들(INN1~INN4)이 샘플링될 수 있다. 본 명세서에서 제1 공통 노드(CN1)의 전압은 제1 출력 전압(VP)으로 지칭될 수 있고, 제2 공통 노드(CN2)의 전압은 제2 출력 전압(VN)으로 지칭될 수 있다. 제1 출력 전압(VP) 및 제2 출력 전압(VN)은 비교기(130)로 제공될 수 있다.
예를 들어, 제1 차동 신호들(INP1~INP4)이 각각 '1', '1', '0', '1'이고, 제2 차동 신호들(INN1~INN4)이 각각 '0', '0', '1', '0'인 경우, 제1 출력 전압(VP)은 '-3'에 대응하는 전압일 수 있고, 제2 출력 전압(VN)은 '-1'에 대응하는 전압일 수 있다.
비교기(130)는 제1 출력 전압(VP) 및 제2 출력 전압(VN)을 비교하여 비교 결과를 출력할 수 있다. 비교기(130)는 제1 출력 전압(VP)이 제2 출력 전압(VN) 이하인 경우, '1'에 대응하는 비교 결과를 출력할 수 있고, 제1 출력 전압(VP)이 제2 출력 전압(VN)보다 큰 경우, '0'에 대응하는 비교 결과를 출력할 수 있다. 예를 들어, 제1 출력 전압(VP)이 '-3'에 대응하는 전압이고, 제2 출력 전압(VN)이 '-1'에 대응하는 전압인 경우, 제1 출력 전압(VP)이 제2 출력 전압(VN)보다 작으므로, 비교기(130)는 '1'에 대응하는 비교 결과를 출력할 수 있다.
SAR 로직(140)은 비교 결과에 기초하여 중간 데이터(S)를 생성할 수 있다. 예시적으로, SAR 로직(140)은 첫 번째 비교 결과에 기초하여 중간 데이터(S)의 최상위 비트를 생성하고, 두 번째 비교 결과에 기초하여 중간 데이터(S)의 두 번째 비트를 생성할 수 있다. 중간 데이터(S)의 최상위 비트는 중간 데이터(S)의 부호를 나타낼 수 있다. 최상위 비트가 '1'인 경우, 중간 데이터(S)는 양의 값을 나타낼 수 있고, 최상위 비트가 '0'인 경우, 중간 데이터(S)는 음의 값을 나타낼 수 있다. 예를 들어, SAR 로직(140)은 '1'에 대응하는 첫 번째 비교 결과에 기초하여 중간 데이터(S)의 최상위 비트를 '1'로 생성할 수 있다.
SAR 로직(140)은 비교 결과에 기초하여 캐패시터 시냅스 어레이(120)를 제어할 수 있다. SAR 로직(140)은 SAR 기법에 기초하여 캐패시터 시냅스 어레이(120)를 제어할 수 있다. SAR 로직(140)은 제1 내지 제4 스위치들(SW1~SW4) 중 적어도 하나 또는 제6 내지 제9 스위치들(SW6~SW9) 중 적어도 하나를 제어할 수 있다. 예시적으로, SAR 로직(140)은 비교 결과가 '1'인 경우, 제1 내지 제4 스위치들(SW1~SW4) 중 적어도 하나를 제어할 수 있고, 비교 결과가 '0'인 경우, 제6 내지 제9 스위치들(SW6~SW9) 중 적어도 하나를 제어할 수 있다.
SAR 로직(140)은 이진 탐색 방식에 기초하여 스위치들을 제어할 수 있다. SAR 로직(140)은 비교 결과가 순차적으로 입력되는 경우, 제어 대상인 스위치들의 개수를 반씩 줄일 수 있다. 예시적으로, SAR 로직(140)은 첫 번째 비교 결과에 기초하여 제1 내지 제4 스위치들(SW1~SW4) 중 두 개 또는 제6 내지 제9 스위치들(SW6~SW9) 중 두 개를 제어할 수 있다. SAR 로직(140)은 두 번째 비교 결과에 기초하여 제1 내지 제4 스위치들(SW1~SW4) 중 한 개 또는 제6 내지 제9 스위치들(SW6~SW9) 중 한 개를 제어할 수 있다. 두 번째 비교 결과에 기초하여 스위치를 제어하는 경우, 첫 번째 비교 결과에 기초하여 제어한 스위치들은 제어 대상에서 제외될 수 있다.
예를 들어, SAR 로직(140)은 '1'에 대응하는 첫 번째 비교 결과에 기초하여 제1 내지 제4 스위치들(SW1~SW4) 중 제3 스위치(SW3) 및 제4 스위치(SW4)를 전원 전압(VDD)에 연결시킬 수 있다. 이후, SAR 로직(140)은 '1'에 대응하는 두 번째 비교 결과에 기초하여 제1 내지 제4 스위치들(SW1~SW4) 중 제2 스위치(SW2)를 전원 전압(VDD)에 연결시킬 수 있다.
상술한 바와 같이, SAR 로직(140)은 이진 탐색 방식에 기초하여 제어 대상인 스위치들의 개수를 반씩 줄일 수 있다. SAR 로직(140)이 스위치들을 제어함에 따라 제1 출력 전압(VP) 및 제2 출력 전압(VN)은 달라질 수 있고, 비교기(130)의 비교 결과가 달라질 수 있다. 따라서, SAR 로직(140)은 SAR 기법에 따라 스위치들을 순차적으로 제어하면서 중간 데이터(S)의 비트들을 결정할 수 있다.
아래의 표 2는 중간 데이터(S)가 3비트인 경우, SAR 로직(140)에 의해 생성되는 중간 데이터(S) 및 대응하는 값을 보여준다.
중간 데이터(3비트) 대응하는 값
000 -4
001 -3
010 -2
011 -1
100 0
101 1
110 2
111 3, 4
이하에서는, 도 8을 참조하여 '-2'를 나타내는 중간 데이터(S)를 생성하는 예시를 설명한다.
설명의 편의를 위해, 캐패시터 시냅스 어레이(120)로 입력되는 제1 차동 신호들(INP1~INP4)은 모두 '0'이고, 제2 차동 신호들(INN1~INN4) 중 두 개는 '1'이라고 가정한다. 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)에 대하여 샘플링이 수행되면, 제1 출력 전압(VP)은 '0'에 대응하는 전압이 되고, 제2 출력 전압(VN)은 '-2'에 대응하는 전압이 될 수 있다. 제1 출력 전압(VP)이 제2 출력 전압(VN)보다 크므로, 비교기(130)는 '0'에 대응하는 첫 번째 비교 결과를 출력할 수 있다. SAR 로직(140)은 첫 번째 비교 결과에 기초하여 중간 데이터(S)의 최상위 비트를 '0'으로 결정할 수 있다. 또한, SAR 로직(140)은 첫 번째 비교 결과에 기초하여 제6 내지 제9 스위치들(SW6~SW9) 중 두 개의 스위치들(SW8, SW9)을 전원 전압(VDD)에 연결시킬 수 있다. 이 경우, 제2 출력 전압(VN)은 '0'에 대응하는 전압이 될 수 있다.
이에 따라, 제1 출력 전압(VP)은 '0'에 대응하는 전압이 되고, 제2 출력 전압(VN)은 '0'에 대응하는 전압이 될 수 있다. 제1 출력 전압(VP)이 제2 출력 전압(VN) 이하이므로, 비교기(130)는 '1'에 대응하는 두 번째 비교 결과를 출력할 수 있다. SAR 로직(140)은 두 번째 비교 결과에 기초하여 중간 데이터(S)의 두 번째 비트를 '1'로 결정할 수 있다. 또한, SAR 로직(140)은 두 번째 비교 결과에 기초하여 제1 내지 제4 스위치들(SW1~SW4) 중 한 개의 스위치(SW2)를 전원 전압(VDD)에 연결시킬 수 있다. 이 경우, 제1 출력 전압(VP)은 '1'에 대응하는 전압이 될 수 있다.
이에 따라, 제1 출력 전압(VP)은 '1'에 대응하는 전압이 되고, 제2 출력 전압(VN)은 '0'에 대응하는 전압이 될 수 있다. 제1 출력 전압(VP)이 제2 출력 전압(VN)보다 크므로, 비교기(130)는 '0'에 대응하는 세 번째 비교 결과를 출력할 수 있다. SAR 로직(140)은 세 번째 비교 결과에 기초하여 중간 데이터(S)의 최하위 비트를 '0'으로 결정할 수 있다. 이 경우, 중간 데이터(S)의 3개의 비트가 모두 결정되었으므로, SAR 로직(140)은 스위치들을 더 이상 제어하지 않을 수 있다.
상술한 바와 같이, '-2'를 나타내는 중간 데이터(S)는 '010'으로 생성될 수 있다. 마찬가지로, '-4' 내지 '4'를 나타내는 중간 데이터(S)는 표 2에 도시된 바와 같이 생성될 수 있다.
표 2에 도시된 바와 같이, '3' 및 '4'를 나타내는 중간 데이터(S)는 '111'로 동일할 수 있다. 이 경우, 연산의 정확도는 감소될 수 있지만, 연산 속도는 향상될 수 있다. 뉴럴 네트워크에서는 근사 연산이 수행될 수 있으므로, 연산의 정확도가 조금 감소되더라도 무방할 수 있다.
또는, SAR 로직(140)은 연산의 정확도를 향상시키기 위해 오버플로(overflow) 비트를 포함할 수 있다. 중간 데이터(S)가 '111'로 생성되는 경우, SAR 로직(140)은 중간 데이터(S)가 나타내는 값이 '3' 또는 '4'인지 여부를 판단할 수 있다. 중간 데이터(S)가 나타내는 값이 '4'로 판단되는 경우, SAR 로직(140)은 오버플로 비트를 '1'로 생성할 수 있다. 생성된 오버플로 비트는 덧셈기(150)로 전달되어 복수의 중간 데이터(S)의 덧셈에 활용될 수 있다.
SAR 로직(140)은 생성한 복수의 중간 데이터(S)를 덧셈기(150)로 전송할 수 있다. 예시적으로, SAR 로직(140)은 생성한 복수의 중간 데이터(S)를 2의 보수 형태로 변환하고, 변환된 중간 데이터를 덧셈기(150)로 전송할 수 있다.
상술한 바와 같이, 뉴로모픽 연산 장치(100)는 디지털 신호인 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)을 바로 샘플링하고, SAR 기법을 이용하여 디지털 값으로 변환할 수 있다. 따라서, 뉴로모픽 연산 장치(100)는 디지털 신호를 아날로그 신호로 변환하고 다시 아날로그 신호를 디지털 신호로 변환하는 과정에서 필요한 멤리스터, 전류 소스 및 표본 유지 증폭기(S/H; sample-and-hold amplifier)와 같은 회로들을 구비하지 않을 수 있다. 따라서, 뉴로모픽 연산 장치(100)는 저전력 및 초소형으로 구현이 가능할 수 있고, 다양한 회로들에서 발생할 수 있는 에러 요인을 최소화할 수 있다.
뉴로모픽 연산 장치(100)는 샘플링 과정에서 '1'에 대응하는 전원 전압(VDD) 또는 '0'에 대응하는 그라운드 전압(GND)만을 사용하기 때문에 이득 에러(gain error)가 발생하지 않을 수 있다.
도 9는 본 발명의 실시 예에 따른 뉴로모픽 연산 장치의 동작 방법을 보여주는 순서도이다. 도 9를 참조하면, S101 단계에서, 뉴로모픽 연산 장치(100)는 복수의 입력 데이터 각각과 복수의 가중치 데이터 각각의 연산을 수행하여 비트들을 생성할 수 있다. 예를 들어, 뉴로모픽 연산 장치(100)는 도 5의 부호 비트들(sb1~sb4)과 곱셈 비트들(b1~b4)을 생성할 수 있다.
S102 단계에서, 뉴로모픽 연산 장치(100)는 생성된 비트들에 기초하여 복수의 제1 차동 신호들 및 복수의 제2 차동 신호들을 생성할 수 있다. 예를 들어, 뉴로모픽 연산 장치(100)는 도 7의 제1 차동 신호들(INP1~INP4) 및 제2 차동 신호들(INN1~INN4)을 생성할 수 있다.
S103 단계에서, 뉴로모픽 연산 장치(100)는 복수의 제1 차동 신호들을 제1 캐패시터들에 샘플링하고 복수의 제2 차동 신호들을 제2 캐패시터들에 샘플링할 수 있다. 예를 들어, 뉴로모픽 연산 장치(100)는 도 8에 도시된 바와 같이, 제1 차동 신호들(INP1~INP4)을 제1 내지 제4 캐패시터들(C1~C4)에 샘플링하고, 제2 차동 신호들(INN1~INN4)을 제5 내지 제8 캐패시터들(C5~C8)에 샘플링할 수 있다.
S104 단계에서, 뉴로모픽 연산 장치(100)는 제1 캐패시터들의 공통 노드의 제1 출력 전압 및 제2 캐패시터들의 공통 노드의 제2 출력 전압을 비교하여 제1 비교 결과를 출력할 수 있다.
S105 단계에서, 뉴로모픽 연산 장치(100)는 제1 비교 결과에 기초하여 중간 데이터(S)의 첫 번째 비트 값을 결정하고 제1 캐패시터들 중 적어도 하나 또는 제2 캐패시터들 중 적어도 하나를 전원 전압(VDD)에 연결시킬 수 있다. 예를 들어, 뉴로모픽 연산 장치(100)는 제1 비교 결과에 기초하여 제1 캐패시터들 또는 제2 캐패시터들과 대응하는 스위치들을 제어할 수 있다. 뉴로모픽 연산 장치(100)는 스위치들을 제어하여 제1 캐패시터들 또는 제2 캐패시터들 중 적어도 하나를 전원 전압(VDD)에 연결시킬 수 있다.
S106 단계에서, 뉴로모픽 연산 장치(100)는 제1 출력 전압 및 제2 출력 전압을 비교하여 제2 비교 결과를 출력할 수 있다.
S107 단계에서, 뉴로모픽 연산 장치(100)는 제2 비교 결과에 기초하여 중간 데이터(S)의 두 번째 비트 값을 결정할 수 있다.
S108 단계에서, 뉴로모픽 연산 장치(100)는 중간 데이터(S)의 비트 값이 모두 결정되었는지 여부를 판단할 수 있다. 중간 데이터(S)의 비트 값이 모두 결정된 경우, 뉴로모픽 연산 장치(100)는 중간 데이터(S)의 생성을 완료할 수 있다. 중간 데이터(S)의 비트 값이 모두 결정되지 않은 경우, 뉴로모픽 연산 장치(100)는 S109 단계에서, 제2 비교 결과에 기초하여 제1 캐패시터들 중 적어도 하나 또는 제2 캐패시터들 중 적어도 하나를 전원 전압(VDD)에 연결시킬 수 있다.
이후, 뉴로모픽 연산 장치(100)는 S106 내지 S108 단계들을 다시 수행할 수 있다. 이 경우, S106 단계 및 S107 단계의 제2 비교 결과는 제3 비교 결과일 수 있고, 중간 데이터(S)의 세 번째 비트 값이 결정될 수 있다. 즉, 뉴로모픽 연산 장치(100)는 중간 데이터(S)의 최하위 비트 값이 결정될 때까지 S106 내지 S108 단계들을 반복하여 수행할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100: 뉴로모픽 연산 장치
110: 차동 신호 발생기
120: 캐패시터 시냅스 어레이
130: 비교기
140: SAR 로직
150: 덧셈기

Claims (16)

  1. 복수의 입력 데이터 각각과 상기 복수의 입력 데이터 각각과 대응하는 복수의 가중치 데이터 각각의 연산 수행에 따라 생성되는 비트들에 기초하여 복수의 제1 차동 신호들 및 복수의 제2 차동 신호들을 생성하는 차동 신호 발생기;
    상기 복수의 제1 차동 신호들을 샘플링하고 제1 출력 전압을 출력하는 제1 캐패시터 시냅스 어레이;
    상기 복수의 제2 차동 신호들을 샘플링하고 제2 출력 전압을 출력하는 제2 캐패시터 시냅스 어레이;
    상기 제1 출력 전압과 상기 제2 출력 전압을 비교하여 비교 결과를 출력하는 비교기; 및
    상기 비교 결과에 기초하여 상기 제1 캐패시터 시냅스 어레이 및 상기 제2 캐패시터 시냅스 어레이를 제어하고 중간 데이터를 생성하는 SAR(successive approximation register) 로직을 포함하되,
    상기 차동 신호 발생기는,
    상기 복수의 입력 데이터 각각과 상기 복수의 가중치 데이터 각각의 곱셈 결과에 대한 부호 비트를 생성하는 부호 비트 생성부;
    상기 복수의 입력 데이터 각각의 제1 비트와 상기 복수의 가중치 데이터 각각의 제2 비트를 곱하여 곱셈 비트를 생성하는 곱셈 비트 생성부; 및
    상기 부호 비트와 상기 곱셈 비트에 기초하여 제1 차동 신호 및 제2 차동 신호를 생성하는 디지털 차동 신호 생성부를 포함하는 뉴로모픽 연산 장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 부호 비트 생성부는 상기 복수의 입력 데이터 각각의 최상위 비트와 상기 복수의 가중치 데이터 각각의 최상위 비트를 곱하여 상기 부호 비트를 생성하는 뉴로모픽 연산 장치.
  4. 제 1 항에 있어서,
    상기 디지털 차동 신호 생성부는 상기 부호 비트가 양의 부호를 가리키고 상기 곱셈 비트가 1인 경우, 상기 제1 차동 신호를 1로 생성하고, 상기 제2 차동 신호를 0으로 생성하고,
    상기 곱셈 비트가 0인 경우, 상기 제1 차동 신호 및 상기 제2 차동 신호 각각을 0으로 생성하고,
    상기 부호 비트가 음의 부호를 가리키고 상기 곱셈 비트가 1인 경우, 상기 제1 차동 신호를 0으로 생성하고, 상기 제2 차동 신호를 1로 생성하는 뉴로모픽 연산 장치.
  5. 제 1 항에 있어서,
    상기 제1 캐패시터 시냅스 어레이는 상기 복수의 제1 차동 신호들 각각과 대응하는 복수의 제1 캐패시터들을 포함하고,
    상기 제2 캐패시터 시냅스 어레이는 상기 복수의 제2 차동 신호들 각각과 대응하는 복수의 제2 캐패시터들을 포함하는 뉴로모픽 연산 장치.
  6. 제 5 항에 있어서,
    상기 제1 캐패시터 시냅스 어레이는 복수의 제1 캐패시터들 각각과 대응하는 복수의 제1 스위치들을 포함하고, 상기 복수의 제1 스위치들 각각은 제1 차동 신호, 전원 전압 또는 그라운드 전압 중 하나를 대응하는 제1 캐패시터와 연결하고,
    상기 제2 캐패시터 시냅스 어레이는 복수의 제2 캐패시터들 각각과 대응하는 복수의 제2 스위치들을 포함하고, 상기 복수의 제2 스위치들 각각은 제2 차동 신호, 상기 전원 전압 또는 상기 그라운드 전압 중 하나를 대응하는 제2 캐패시터와 연결하는 뉴로모픽 연산 장치.
  7. 제 6 항에 있어서,
    상기 제1 차동 신호에 대응하는 전압은 상기 전원 전압 또는 상기 그라운드 전압 중 하나이고, 상기 제2 차동 신호에 대응하는 전압은 상기 전원 전압 또는 상기 그라운드 전압 중 하나인 뉴로모픽 연산 장치.
  8. 제 6 항에 있어서,
    상기 SAR 로직은 상기 비교 결과에 기초하여 SAR(successive approximation register) 기법에 따라 상기 복수의 제1 스위치들 및 상기 복수의 제2 스위치들을 제어하는 뉴로모픽 연산 장치.
  9. 제 8 항에 있어서,
    상기 비교기는 상기 제1 출력 전압이 상기 제2 출력 전압 이하인 경우, 제1 비교 결과를 출력하고, 상기 제1 출력 전압이 상기 제2 출력 전압보다 큰 경우, 제2 비교 결과를 출력하고,
    상기 SAR 로직은 상기 제1 비교 결과가 출력되는 경우, 상기 복수의 제1 스위치들 중 적어도 하나를 상기 전원 전압에 연결시키고, 상기 제2 비교 결과가 출력되는 경우, 상기 복수의 제2 스위치들 중 적어도 하나를 상기 전원 전압에 연결시키는 뉴로모픽 연산 장치.
  10. 제 8 항에 있어서,
    상기 SAR 로직은 상기 비교 결과에 기초하여 상기 중간 데이터의 최상위 비트 값부터 최하위 비트 값까지 순차적으로 결정하는 뉴로모픽 연산 장치.
  11. 제 1 항에 있어서,
    상기 중간 데이터의 비트 수는 상기 복수의 입력 데이터가 n개인 경우, 2n+1개보다 적은 개수의 값들을 나타내는 비트 수인 뉴로모픽 연산 장치.
  12. 제 1 항에 있어서,
    상기 SAR 로직으로부터 생성된 복수의 중간 데이터를 수신하고, 상기 복수의 중간 데이터의 자릿수를 기반으로 상기 복수의 중간 데이터를 더하여 상기 복수의 입력 데이터와 상기 복수의 가중치 데이터의 합성곱 결과를 산출하는 덧셈기를 더 포함하는 뉴로모픽 연산 장치.
  13. 뉴로모픽 연산 장치의 동작 방법에 있어서,
    복수의 입력 데이터 각각과 상기 복수의 입력 데이터 각각과 대응하는 복수의 가중치 데이터 각각의 연산을 수행하여 비트들을 생성하는 단계;
    상기 생성된 비트들에 기초하여 복수의 제1 차동 신호들 및 복수의 제2 차동 신호들을 생성하는 단계;
    상기 복수의 제1 차동 신호들을 제1 캐패시터들에 샘플링하고 상기 복수의 제2 차동 신호들을 제2 캐패시터들에 샘플링하는 단계;
    상기 제1 캐패시터들의 공통 노드의 제1 출력 전압 및 상기 제2 캐패시터들의 공통 노드의 제2 출력 전압을 비교하여 제1 비교 결과를 출력하는 단계;
    상기 제1 비교 결과에 기초하여 중간 데이터의 첫 번째 비트 값을 결정하는 단계 및
    상기 제1 비교 결과에 기초하여 상기 제1 캐패시터들 중 적어도 하나 또는 상기 제2 캐패시터들 중 적어도 하나를 전원 전압에 연결시키는 단계를 포함하되,
    상기 중간 데이터는 상기 복수의 입력 데이터 각각의 하나의 비트와 상기 복수의 가중치 데이터 각각의 하나의 비트의 곱셈 결과들의 합을 나타내는 동작 방법.
  14. 삭제
  15. 제 13 항에 있어서,
    상기 제1 출력 전압 및 상기 제2 출력 전압을 비교하여 제2 비교 결과를 출력하는 단계; 및
    상기 제2 비교 결과에 기초하여 상기 중간 데이터의 두 번째 비트 값을 결정하는 단계를 더 포함하는 동작 방법.
  16. 제 15 항에 있어서,
    상기 두 번째 비트 값이 최하위 비트 값이 아닌 경우, 상기 제2 비교 결과에 기초하여 상기 제1 캐패시터들 중 적어도 하나 또는 상기 제2 캐패시터들 중 적어도 하나를 상기 전원 전압에 연결시키는 단계를 더 포함하는 동작 방법.
KR1020180004053A 2018-01-11 2018-01-11 뉴로모픽 연산 장치 및 그것의 동작 방법 KR102567449B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180004053A KR102567449B1 (ko) 2018-01-11 2018-01-11 뉴로모픽 연산 장치 및 그것의 동작 방법
US16/222,867 US20190213471A1 (en) 2018-01-11 2018-12-17 Neuromorphic computing device and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180004053A KR102567449B1 (ko) 2018-01-11 2018-01-11 뉴로모픽 연산 장치 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20190085785A KR20190085785A (ko) 2019-07-19
KR102567449B1 true KR102567449B1 (ko) 2023-08-18

Family

ID=67140887

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180004053A KR102567449B1 (ko) 2018-01-11 2018-01-11 뉴로모픽 연산 장치 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US20190213471A1 (ko)
KR (1) KR102567449B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556763B2 (en) * 2019-02-19 2023-01-17 International Business Machines Corporation Multi-kernel configuration for convolutional neural networks
EP4006906A4 (en) * 2019-07-30 2023-08-02 Kim, Jun-sung APPARATUS AND METHOD FOR CONTROLLING A GRADUAL RESISTANCE CHANGE IN A SYNAPTIC ELEMENT
KR102380522B1 (ko) * 2019-08-21 2022-03-29 전북대학교산학협력단 아날로그 뉴런-시냅스 회로
KR102584868B1 (ko) * 2020-01-06 2023-10-04 서울대학교산학협력단 온칩 학습이 가능한 뉴로모픽 아키텍쳐
KR102577326B1 (ko) * 2020-03-30 2023-09-13 한국전자통신연구원 온-디바이스 양자화기를 포함하는 신경망 연산 장치, 신경망 연산 장치의 동작 방법, 그리고 신경망 연산 장치를 포함하는 컴퓨팅 장치
US12033061B2 (en) * 2020-12-14 2024-07-09 International Business Machines Corporation Capacitor-based synapse network structure with metal shielding between outputs
US20230297149A1 (en) * 2022-03-15 2023-09-21 Intel Corporation On-chip digitally controlled error rate-locked loop for error resilient edge artificial intelligence

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090091377A1 (en) * 2004-07-06 2009-04-09 Ran Ginosar Integrated system and method for multichannel neuronal recording with spike/lfp separation, integrated a/d conversion and threshold detection
US20150280730A1 (en) * 2014-03-25 2015-10-01 Seiko Epson Corporation Successive comparison type analog/digital converter, physical quantity sensor, electronic device, moving object, and successive comparison type analog/digital conversion method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090091377A1 (en) * 2004-07-06 2009-04-09 Ran Ginosar Integrated system and method for multichannel neuronal recording with spike/lfp separation, integrated a/d conversion and threshold detection
US20150280730A1 (en) * 2014-03-25 2015-10-01 Seiko Epson Corporation Successive comparison type analog/digital converter, physical quantity sensor, electronic device, moving object, and successive comparison type analog/digital conversion method

Also Published As

Publication number Publication date
KR20190085785A (ko) 2019-07-19
US20190213471A1 (en) 2019-07-11

Similar Documents

Publication Publication Date Title
KR102567449B1 (ko) 뉴로모픽 연산 장치 및 그것의 동작 방법
US11106268B2 (en) Method and system for saving power in a real time hardware processing unit
KR102314300B1 (ko) 뉴로모픽 연산 장치
US7812757B1 (en) Hybrid analog-to-digital converter (ADC) with binary-weighted-capacitor sampling array and a sub-sampling charge-redistributing array for sub-voltage generation
US11194886B2 (en) Bit-ordered binary-weighted multiplier-accumulator
CN110378475B (zh) 一种基于多位并行二进制突触阵列的神经形态计算电路
Bankman et al. An 8-bit, 16 input, 3.2 pJ/op switched-capacitor dot product circuit in 28-nm FDSOI CMOS
CN108268938B (zh) 神经网络及其信息处理方法、信息处理系统
JP2992893B2 (ja) プログラマブルアナログ神経回路
US11038520B1 (en) Analog-to-digital conversion with reconfigurable function mapping for neural networks activation function acceleration
US11893078B2 (en) Analog dot product multiplier
Yang et al. An in-memory-computing charge-domain ternary CNN classifier
US5140531A (en) Analog neural nets supplied digital synapse signals on a bit-slice basis
Cao et al. Neural network-inspired analog-to-digital conversion to achieve super-resolution with low-precision RRAM devices
US20220247425A1 (en) Architecture for Multiplier Accumulator using Unit Elements for multiplication, bias, accumulation, and analog to digital conversion over a shared Charge Transfer Bus
KR102669205B1 (ko) 뉴로모픽 연산 장치 및 그것의 동작 방법
JP4242973B2 (ja) 逐次比較型adコンバータ及びそれを組み込んだマイクロコンピュータ
US20200174751A1 (en) Neuromorphic arithmetic device and operating method thereof
Khodabandehloo et al. A prototype CVNS distributed neural network using synapse-neuron modules
CN112350729A (zh) 模数转换电路
Chang et al. Compact mixed-signal convolutional neural network using a single modular neuron
CN116486857B (zh) 一种基于电荷再分配的存内计算电路
US11476866B2 (en) Successive approximation register using switched unit elements
CN104980157B (zh) 高分辨率模数转换器
JPH04281584A (ja) 複数の入力信号の重みづけられた複数の加算を行う装置

Legal Events

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