KR102389413B1 - 멀티 mac 동작을 수행하는 뉴로모픽 시스템 및 그 방법 - Google Patents

멀티 mac 동작을 수행하는 뉴로모픽 시스템 및 그 방법 Download PDF

Info

Publication number
KR102389413B1
KR102389413B1 KR1020190102466A KR20190102466A KR102389413B1 KR 102389413 B1 KR102389413 B1 KR 102389413B1 KR 1020190102466 A KR1020190102466 A KR 1020190102466A KR 20190102466 A KR20190102466 A KR 20190102466A KR 102389413 B1 KR102389413 B1 KR 102389413B1
Authority
KR
South Korea
Prior art keywords
sense amplifiers
neuromorphic system
signal
bit line
flip
Prior art date
Application number
KR1020190102466A
Other languages
English (en)
Other versions
KR20210022982A (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 KR1020190102466A priority Critical patent/KR102389413B1/ko
Publication of KR20210022982A publication Critical patent/KR20210022982A/ko
Application granted granted Critical
Publication of KR102389413B1 publication Critical patent/KR102389413B1/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Static Random-Access Memory (AREA)

Abstract

멀티 MAC 동작을 수행하는 뉴로모픽 시스템 및 그 멀티 MAC 동작 수행 방법에 관한 것으로서, 일실시예에 따른 뉴로모픽 시스템은 복수의 비트라인들 중 어느 하나의 비트라인에 연결되는 복수의 시냅스 회로들 중에서 스파이크(Spikes) 신호를 수신하는 시냅스 회로들에 대응되는 적어도 하나의 웨이트(weight) 값을 출력하는 시냅스 어레이 및 적어도 하나의 웨이트 값을 어느 하나의 비트라인을 통해 입력으로 수신하는 복수의 센스 앰프(sense amplifier)를 포함하고, 복수의 센스 엠프를 이용하여 복수의 웨이트 값에 대한 MAC(multiplication and accumulation) 연산을 수행하는 웨이트 연산부를 포함한다.

Description

멀티 MAC 동작을 수행하는 뉴로모픽 시스템 및 그 방법{NEUROMORPHIC SYSTEM FOR MULTIPLE MULTIPLICATION AND ACCUMULATION OPERATIONS AND METHOD THEREOF}
뉴로모픽 시스템에 관한 것으로, 보다 상세하게는 뉴로모픽 시스템에서 멀티 MAC 연산을 수행하는 기술적 사상에 관한 것이다.
SNN(spiking neural network) 시스템은 생물학적 뇌에서 나타나는 높은 에너지 효율(energy efficiency)을 얻기 위해 생물학적 뇌의 구조를 모방하는 방식으로 연구가 시작 되었다.
SNN 시스템 뉴런(neuron)의 기본적인 동작은 MAC 연산으로 구성되어 있으며, MAC 연산을 효과적으로 구현하는 것이 에너지 효율을 높이는 방안 중에 하나이다.
기존 CNN(convolutional neural network)에서는 CIM(computation-in-memory)을 이용하여 한번에 많은 MAC 연산을 처리하는 방안들이 연구되어 왔다. 그러나, SNN 시스템에 CNN에서 연구되어 왔던 CIM을 그대로 적용하는 것은 오히려 에너지 효율을 저하시키는 요인으로 작용한다.
한편, 기존 SNN 시스템에 적용되었던 커런트 합산(current sum) 방식은 아날로그 형태의 커런트를 한번에 축적(accumulation)하기 때문에 MAC 연산 이후에 ADC(analog-digital converter)가 필요하며, 이 때 사용되는 ADC는 공간(area), 에너지(energy) 및 지연 오버헤드(delay overhead)가 매우 크다는 문제가 있다.
또한, 커런트 합산 방식을 통한 멀티 웨이트(multi-weight)의 처리 시, 비트라인 자리에 아날로그 값을 올바른 값으로 처리해 주기 위해서 승산기(multiplier) 또는 차지 쉐어링(charge sharing)과 같은 추가적인 구성을 필요로 하여 추가적으로 공간, 에너지 및 지연 오버헤드가 증가한다는 문제가 있다.
한국공개특허 제10-2014-0144130호, "시냅스 어레이, 펄스 쉐이퍼 회로 및 이들을 포함하는 뉴로모픽 시스템"
본 발명은 기존 ADC를 필요로 하는 아날로그 방식의 multiple-MAC 연산이 아닌 SRAM의 센스 앰프를 복수 개 사용하여 multiple-MAC 연산을 수행할 수 있는 뉴로모픽 시스템 및 그 방법을 제공하고자 한다.
또한, 본 발명은 ADC 없이 multiple-MAC 연산을 수행하여 공간(area), 에너지(energy) 및 지연 오버헤드(delay overhead)에 따른 손실을 최소화함으로써 전체적인 에너지 효율을 높일 수 있는 뉴로모픽 시스템 및 그 방법을 제공하고자 한다.
또한, 본 발명은 복수의 플립플랍 출력에 기초하여 센스 앰프의 동작을 제어함으로써, 센스 앰프를 복수 개 사용함에 따른 에너지 오버헤드를 줄일 수 있는 뉴로모픽 시스템 및 그 방법을 제공하고자 한다.
일실시예에 따른 뉴로모픽 시스템은 복수의 비트라인들 중 어느 하나의 비트라인에 연결되는 복수의 시냅스 회로들 중에서 스파이크(Spikes) 신호를 수신하는 시냅스 회로들에 대응되는 적어도 하나의 웨이트(weight) 값을 출력하는 시냅스 어레이 및 적어도 하나의 웨이트 값을 어느 하나의 비트라인을 통해 입력으로 수신하는 복수의 센스 앰프(sense amplifier)를 포함하고, 복수의 센스 엠프를 이용하여 복수의 웨이트 값에 대한 MAC(multiplication and accumulation) 연산을 수행하는 웨이트 연산부를 포함할 수 있다.
일측에 따르면, 복수의 시냅스 회로들은 SRAM 메모리 셀 구조에 기반한 회로일 수 있다.
일측에 따르면, 뉴로모픽 시스템은 시냅스 어레이에 구비된 복수의 워드라인들 중 적어도 하나 이상의 워드라인을 동일한 타이밍에 선택하고, 동일한 타이밍에서 선택된 워드라인들을 통해 스파이크 신호를 제공하는 신호 제공부를 더 포함할 수 있다.
일측에 따르면, 신호 제공부는 복수의 워드라인 각각에 연결되는 프리 뉴런(pre-neuron)들을 포함하고, 프리 뉴런들을 통해 복수의 워드라인들 각각에 대응되는 시냅스 회로들에 스파이크 신호를 제공할 수 있다.
일측에 따르면, 복수의 센스 앰프 각각은 어느 하나의 비트라인과, 하나의 기준 전압을 인가하는 기준 전압라인이 입력으로 연결될 수 있다.
일측에 따르면, 복수의 센스 앰프 각각은 어느 하나의 비트라인을 통해 인가되는 비트라인 전압이 기준 전압보다 낮아지는 시점을 감지하고, 감지된 시점에 대응되는 MAC 연산 결과를 출력할 수 있다.
일측에 따르면, 복수의 센스 앰프 각각은 복수의 센스 앰프 각각의 제1 출력신호와 제2 출력 신호를 입력으로 수신하여 제어 클럭을 생성하는 논리 게이트 및 제1 출력신호와 생성된 제어 클럭을 입력으로 수신하는 플립플랍(flip-flop)과 연결될 수 있다.
일측에 따르면, 복수의 센스 앰프 각각은 복수의 센스 앰프 각각에 대응되는 플립플랍들로부터 플립플랍들의 출력 신호를 수신하여, 복수의 센스 앰프 중 적어도 하나의 센스 앰프의 동작을 제어하기 위한 앰프 인에이블 신호를 생성하는 센스 앰프 제어기로부터 생성된 앰프 인에이블 신호를 입력으로 수신할 수 있다.
일실시예에 따른 뉴로모픽 시스템을 이용한 멀티 MAC 동작 수행 방법은 시냅스 어레이에서, 복수의 비트라인들 중 어느 하나의 비트라인에 연결되는 복수의 시냅스 회로들 중에서 스파이크(Spikes) 신호를 수신하는 시냅스 회로들에 대응되는 적어도 하나의 웨이트(weight) 값을 출력하는 단계와, 웨이트 연산부에서, 적어도 하나의 웨이트 값을 어느 하나의 비트라인을 통해 입력으로 수신하는 복수의 센스 앰프(sense amplifier)를 이용하여 복수의 웨이트 값에 대한 MAC(multiplication and accumulation) 연산을 수행하는 단계를 포함할 수 있다.
일측에 따르면, 멀티 MAC 동작 수행 방법은 신호 제공부에서, 시냅스 어레이에 구비된 복수의 워드라인들 중 적어도 하나 이상의 워드라인을 동일한 타이밍에 선택하고, 동일한 타이밍에서 선택된 워드라인들을 통해 스파이크 신호를 제공하는 단계를 더 포함할 수 있다.
일측에 따르면, 복수의 센스 앰프 각각은 복수의 센스 앰프 각각의 제1 출력신호와 제2 출력 신호를 입력으로 수신하여 제어 클럭을 생성하는 논리 게이트 및 제1 출력신호와 생성된 제어 클럭을 입력으로 수신하는 플립플랍(flip-flop)과 연결될 수 있다.
일측에 따르면, 복수의 센스 앰프 각각은 복수의 센스 앰프 각각에 대응되는 플립플랍들로부터 플립플랍들의 출력 신호를 수신하여, 복수의 센스 앰프 중 적어도 하나의 센스 앰프의 동작을 제어하기 위한 앰프 인에이블 신호를 생성하는 센스 앰프 제어기로부터 생성된 앰프 인에이블 신호를 수신할 수 있다.
일실시예에 따르면, 기존 ADC를 필요로 하는 아날로그 방식의 multiple-MAC 연산이 아닌, SRAM의 센스 앰프를 복수 개 사용하여 multiple-MAC 연산을 수행할 수 있다.
일실시예에 따르면, ADC 없이 multiple-MAC 연산을 수행하여 공간(area), 에너지(energy) 및 지연 오버헤드(delay overhead)에 따른 손실을 최소화함으로써 전체적인 에너지 효율을 높일 수 있다.
일실시예에 따르면, 복수의 플립플랍 출력에 기초하여 센스 앰프의 동작을 제어함으로써, 센스 앰프를 복수 개 사용함에 따른 에너지 오버헤드를 줄일 수 있다.
도 1a 내지 도 1d는 일실시예에 따른 뉴로모픽 시스템을 설명하기 위한 도면이다.
도 2는 일실시예에 따른 뉴로모픽 시스템에서 동시에 입력되는 복수의 스파이크 신호를 처리하는 예시를 설명하기 위한 도면이다.
도 3a 내지 도 3b는 일실시예에 따른 뉴로모픽 시스템에 구비된 웨이트 연산부의 구현예를 설명하기 위한 도면이다.
도 4a 내지 도 4b는 일실시예에 따른 뉴로모픽 시스템에 구비된 복수의 센스 앰프의 구현예를 설명하기 위한 도면이다.
도 5a 내지 도 5d는 일실시예에 따른 뉴로모픽 시스템의 시뮬레이션 결과를 설명하기 위한 도면이다.
도 6a 내지 도 6b는 일실시예에 따른 뉴로모픽 시스템에서 멀티 비트 웨이트 값을 처리하는 예시를 설명하기 위한 도면이다.
도 7은 일실시예예 따른 뉴로모픽 시스템을 이용한 멀티 MAC 동작 수행 방법을 설명하기 위한 도면이다.
이하, 본 문서의 다양한 실시 예들이 첨부된 도면을 참조하여 기재된다.
실시 예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다.
하기에서 다양한 실시 예들을 설명에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
그리고 후술되는 용어들은 다양한 실시 예들에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.
본 문서에서, "A 또는 B" 또는 "A 및/또는 B 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다.
"제1," "제2," "첫째," 또는 "둘째," 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다.
본 명세서에서, "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, 하드웨어적 또는 소프트웨어적으로 "~에 적합한," "~하는 능력을 가지는," "~하도록 변경된," "~하도록 만들어진," "~를 할 수 있는," 또는 "~하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다.
어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다.
예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU 또는 application processor)를 의미할 수 있다.
또한, '또는' 이라는 용어는 배타적 논리합 'exclusive or' 이기보다는 포함적인 논리합 'inclusive or' 를 의미한다.
즉, 달리 언급되지 않는 한 또는 문맥으로부터 명확하지 않는 한, 'x가 a 또는 b를 이용한다' 라는 표현은 포함적인 자연 순열들(natural inclusive permutations) 중 어느 하나를 의미한다.
상술한 구체적인 실시예들에서, 발명에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다.
그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 상술한 실시 예들이 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 다양한 실시 예들이 내포하는 기술적 사상의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다.
그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니되며 후술하는 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.
도 1a 내지 도 1d는 일실시예에 따른 뉴로모픽 시스템을 설명하기 위한 도면이다.
도 1a 내지 도 1d를 참조하면, 참조부호 110은 일실시예에 따른 뉴로모픽 시스템을 나타내고, 참조부호 120은 일실시예에 따른 뉴로모픽 시스템에서 MAC 연산을 위해 사용되는 복수의 센스앰프를 나타낸다.
또한, 참조부호 130은 복수의 센스앰프를 이용한 MAC 연산 결과를 나타내며, 참조부호 140은 일실시예에 따른 뉴로모픽 시스템의 동작에 따른 타이밍도를 나타낸다.
참조부호 110에 따르면, 일실시예에 따른 뉴로모픽 시스템(110)은 기존 ADC를 필요로 하는 아날로그 방식의 multiple-MAC 연산이 아닌, SRAM의 센스 앰프를 복수 개 사용하여 multiple-MAC 연산을 수행할 수 있다.
또한, 뉴로모픽 시스템(110)은 ADC 없이 multiple-MAC 연산을 수행하여 공간(area), 에너지(energy) 및 지연 오버헤드(delay overhead)에 따른 손실을 최소화함으로써 전체적인 에너지 효율을 높일 수 있다.
또한, 뉴로모픽 시스템(110)은 복수의 플립플랍 출력에 기초하여 센스 앰프의 동작을 제어함으로써, 센스 앰프를 복수 개 사용함에 따른 에너지 오버헤드를 줄일 수 있다.
이를 위해, 일실시예에 따른 뉴로모픽 시스템(110)은 시냅스 어레이(111), 웨이트 연산부(112) 및 신호 제공부(113)를 포함할 수 있다. 또한, 뉴로모픽 시스템(110)은 뉴런 프로세서(114)를 더 포함할 수 있다.
예를 들면, 뉴런 프로세서(114)는 복수의 비트라인(BL0 내지 BLn; 여기서 n은 양의 정수) 각각에 연결되는 복수의 웨이트 연산부(112)로부터 출력되는 값을 합산하는 가산기(adder)의 역할을 수행할 수 있다.
예를 들면, 일실시예에 따른 뉴로모픽 시스템(110)은 SNN(spiking neural network) 시스템일 수 있다.
일실시예에 따른 시냅스 어레이(111)는 복수의 비트라인들(BL0 내지 BLn) 중 어느 하나의 비트라인에 연결되는 복수의 시냅스 회로들 중에서 스파이크(Spikes) 신호를 수신하는 시냅스 회로들에 대응되는 적어도 하나의 웨이트(weight) 값을 출력할 수 있다.
구체적으로, 시냅스 어레이(111)는 복수의 워드라인(WL0 내지 WLn) 및 복수의 비트라인(BL0 내지 BLn)의 교차점 각각에 형성되는 복수의 시냅스 회로들을 포함할 수 있다.
일측에 따르면, 복수의 시냅스 회로들은 SRAM 메모리 셀 구조에 기반한 회로일 수 있다. 다시 말해, 복수의 시냅스 회로들은 SRAM 메모리의 메모리 셀일 수 있다.
일측에 따르면, 어느 하나의 비트라인은 별도의 열 디코더(column decoder)를 통해 선택된 비트라인일 수도 있다.
일실시예에 따른 웨이트 연산부(112)는 적어도 하나의 웨이트 값을 어느 하나의 비트라인을 통해 입력으로 수신하는 복수의 센스 앰프(sense amplifier)를 포함하고, 복수의 센스 엠프를 이용하여 복수의 웨이트 값에 대한 MAC(multiplication and accumulation) 연산을 수행할 수 있다.
구체적으로, 어느 하나의 비트라인이 'BL0' 인 경우, 웨이트 연산부(112)의 복수의 센스 앰프는 비트라인 'BL0'와 워드라인 'WL0' 내지 'WLn'의 교차점에 위치하는 복수의 시냅스 회로들 중에서 워드라인 'WL0' 내지 'WLn'을 통해 스파이크 신호를 수신하는 시냅스 회로들에 대응되는 적어도 하나의 웨이트 값을 입력으로 수신하고, 수신한 적어도 하나의 웨이트 값에 기초하여 multiple-MAC 연산을 수행할 수 있다.
참조부호 120에 따르면, 복수의 센스 앰프(SA1, SA2) 각각은 어느 하나의 비트라인과, 하나의 기준 전압라인이 연결되어, 비트라인 전압(VBL)과 기준 전압(VREF)을 입력으로 수신할 수 있다.
즉, 일실시예에 따른 복수의 센스 앰프는 동일한 비트라인과 동일한 기준 전압라인을 공유할 수 있으며, 이를 통해 하나의 비트라인 전압(VBL)과 하나의 기준 전압(VREF)을 서로 공유할 수 있다.
참조부호 130에 따르면, 어느 하나의 비트라인에서의 MAC 연산은 하기 수학식1을 통해 수행될 수 있다.
[수학식1]
Figure 112019085939626-pat00001
여기서,
Figure 112019085939626-pat00002
는 복수의 워드라인 각각으로 입력되는 스파이크 신호 값을 의미할 수 있고,
Figure 112019085939626-pat00003
는 입력되는 스파이크 신호 각각에 대응되는 시냅스 회로들의 웨이트 값일 수 있다.
또한, 참조부호 130에서, tn(여기서, n은 양의 정수)은 수학식 1의 결과 값이 n인 경우, 기준 전압(VREF)보다 작아져 센스 앰프의 출력이 1이 되는 시간을 의미할 수 있다.
예를 들면, t3는 수학식 1의 결과 값인 '3'과 '2'의 수율(yield)이 같으면서, 그 값이 최대가 되는 시간일 수 있고, t2는 수학식 1의 결과 값인 '2'와 '1'의 수율이 같으면서 그 값이 최대가 되는 시간일 수 있으며, t1은 수학식 1의 결과 값인 '1'의 타겟 수율에 의해 결정되는 시간일 수 있다.
구체적으로, 일실시예에 따른 복수의 센스 앰프 각각은 어느 하나의 비트라인을 통해 인가되는 비트라인 전압(VBL)이 기준 전압(VREF)보다 낮아지는 시점(t1, t2, t3)을 감지하고, 감지된 시점(t1, t2, t3)에 대응되는 MAC 연산 결과를 출력할 수 있다.
즉, 수학식1을 통해 산출되는 MAC 연산의 결과 값('0', '1', '2', '3')에 따라 비트라인 전압(VBL)이 기준 전압(VREF)보다 낮아지는 시점(t1, t2, t3)이 달라지므로, 일실시예에 따른 복수의 센스 앰프는 시점(t1, t2, t3)에 대한 감지 동작을 통해 MAC 연산 결과를 출력할 수 있다.
일측에 따르면, 복수의 센스 앰프 각각은 하나의 기준 전압(VREF)을 이용하여 t3일 때는 수학식 1의 결과 값인 '3'과 '2'를 구분하고, t2일 때는 수학식 1의 결과 값인 '2'와 '1'을 구분하며, t1일 때는 수학식 1의 결과 값인 '1'과 '0'을 구분할 수 있다.
구체적으로, 총 N개(여기서, N은 양의 정수)의 스파이크 신호가 동시에 입력 되는 경우, 수학식1의 결과 값의 최소 값은 '0', 최대 값은 'N'일 수 있다. 또한, 수학식1의 결과값에 따라 비트라인 전압(VBL)이 방전(discharge)되는 속도가 달라질 수 있다.
이론적으로, 총 N개의 MAC 연산을 동시에 수행하기 위해서는 t1 부터 tn까지 순차적으로 최대 N번 센스 앰프를 인에이블(enable)시켜 최초로 센스 앰프가 '1'이 되는 시간을 찾으면 MAC 연산의 출력 값을 산출할 수 있다.
예를 들면, t3에서 센스 앰프를 인에이블시켜 센스 앰프의 출력 값이 '1'이 나왔다면, 수학식1의 결과 값은 '3!'일 수 있다.
하지만, 수학식1의 결과 값이 '4' 이상인 경우에는 비트라인이 방전되는 속도가 매우 커서 tn의 간격이 매우 작아질 수 있다.
또한, 비트라인 전압(VBL)의 변화(variation)을 고려하였을 때, 비트라인 전압(VBL)의 분포(distribution)가 커져서 센스 앰프를 통해 수학식1의 결과 값이 '4' 이상인 경우를 구별하기가 어렵다는 문제가 있다.
이에, 일실시예에 따른 뉴로모픽 시스템(110)은 총 3개의 워드라인들을 동시에 인에이블시켜 최대 3개의 MAC 연산을 동시에 수행할 수 있다.
실제 SRAM의 센스 앰프를 설계하면, 출력이 '0' 또는 '1'이 나오기까지 최소 500ps 이상의 시간이 소요될 수 있다. 하지만, t3와 t2의 간격이 그 보다 작으므로, 일실시예에 따른 뉴로모픽 시스템(110)은 각 비트라인마다 2개의 센스 앰프를 사용할 수 있다.
참조부호 110 및 140에 따르면, T1OP는 뉴런 프로세서(114)를 통해 결과 값이 출력될 때까지의 주기를 나타낼 수 있고, PRE는 프리차지 전압을 나타낼 수 있으며, WL는 워드라인 전압을 나타낼 수 있고, SAE1 및 SAE2는 복수의 센스 앰프 중 제1 센스 앰프 및 제2 센스 앰프 각각의 인에이블 신호를 나타낼 수 있으며, ADD는 뉴런 프로세서(114)의 동작을 위한 인에이블 신호를 나타낼 수 있다.
즉, 제1 센스 앰프는 t1과 t3에서만 인에이블 되고, 제2 센스 앰프는 t2에서만 인에이블 되는 것을 확인할 수 있다.
다시 참조부호 110에 따르면, 일실시예에 따른 신호 제공부(130)는 시냅스 어레이에 구비된 복수의 워드라인들(WL0 내지 WLn) 중 적어도 하나 이상의 워드라인을 동일한 타이밍에 선택하고, 동일한 타이밍에서 선택된 워드라인들을 통해 스파이크 신호를 제공할 수 있다.
예를 들면, 신호 제공부(113)는 복수의 워드라인(WL0 내지 WLn) 중 최대 3개의 워드라인을 동일한 타이밍에 선택하고, 선택된 3개의 워드라인에 대응되는 스파이크 신호를 제공할 수 있다.
일측에 따르면, 신호 제공부(113)는 복수의 워드라인(WL0 내지 WLn) 각각에 연결되는 프리 뉴런(pre-neuron)들을 포함하고, 프리 뉴런들을 통해 복수의 워드라인들 각각에 대응되는 시냅스 회로들에게 스파이크 신호를 제공할 수 있다.
또한, 신호 제공부(113)는 행 디코더(row decorder)로 구현되어 시냅스 회로들에게 대응되는 스파이크 신호를 제공할 수도 있다.
도 2는 일실시예에 따른 뉴로모픽 시스템에서 동시에 입력되는 복수의 스파이크 신호를 처리하는 예시를 설명하기 위한 도면이다.
다시 말해, 도 2는 도 1a 내지 도 1d를 통해 설명한 일실시예에 따른 뉴로모픽 시스템에 관한 예시를 설명하는 도면으로, 이후 도 2를 통해 설명하는 내용 중 일실시예에 따른 뉴로모픽 시스템을 통해 설명한 내용과 중복되는 설명은 생략하기로 한다.
도 2를 참조하면, 상술한 대로 수학식1의 결과 값이 '4' 이상인 경우에는 비트라인이 방전되는 속도가 매우 커서 tn의 간격이 매우 작아질 수 있으며, 비트라인 전압(VBL)의 변화(variation)을 고려하였을 때, 비트라인 전압(VBL)의 분포(distribution)가 커져서 센스 앰프를 통해 수학식1의 결과 값이 '4' 이상인 경우를 구별하기가 어렵다는 문제가 있다.
이에, 일실시예에 따른 뉴로모픽 시스템은 참조부호 200에 도시된 것과 같이, 동시에 4개의 스파이크 신호가 입력되면, 4개의 스파이크 신호 중 3개의 스파이크 신호에 대해서만 동시에 MAC 연산을 수행하고, 나머지 한 개의 스파이크 신호는 그 다음 주기에 MAC 연산을 수행할 수 있다.
즉, 일실시예에 따른 뉴로모픽 시스템은 4개의 스파이크 신호가 수신되면, 2*T1OP 동안 MAC 연산을 수행하여 결과값을 출력할 수 있다.
다시 말해, 일실시예에 따른 뉴로모픽 시스템은 동시에 M개(여기서, M은 4 이상의 양의 정수) 이상의 스파이크 신호를 수신하면, 수신한 M개의 스파이크 신호를 3개씩 분할하여 그룹핑하고, 그룹핑된 복수의 그룹 각각에 포함된 스파이크 신호에 대해 동일한 타이밍(T1OP)에 MAC 연산을 수행할 수 있다.
예를 들면, 스파이크 신호의 그룹핑 동작은 일실시예에 따른 뉴로모픽 시스템의 웨이트 연산부를 통해 수행될 수 있다.
결국, 본 발명은 최대 3개의 스파이크 신호에 대하여 동시에 MAC 연산을 수행함으로써, 기존의 SNN 시스템 대비 약 3배 빠른 속도로 MAC 연산 처리를 수행할 수 있다.
도 3a 내지 도 3b는 일실시예에 따른 뉴로모픽 시스템에 구비된 웨이트 연산부의 구현예를 설명하기 위한 도면이다.
다시 말해, 도 3a 내지 도 3b는 도 1a 내지 도 2를 통해 설명한 일실시예에 따른 뉴로모픽 시스템에 관한 예시를 설명하는 도면으로, 이후 도 3a 내지 도 3b를 통해 설명하는 내용 중 일실시예에 따른 뉴로모픽 시스템을 통해 설명한 내용과 중복되는 설명은 생략하기로 한다.
도 3a 내지 도 3b를 참조하면, 참조부호 310은 일실시예에 따른 웨이트 연산부의 세부 구조를 나타내며, 참조부호 320은 일실시예에 따른 웨이트 연산부의 동작에 따른 타이밍도를 나타낸다.
참조부호 310에 따르면, 일실시예에 따른 웨이트 연산부는 제1 센스앰프(311), 제2 센스앰프(312), 제1 논리 게이트(313), 제2 논리 게이트(314), 제1 플립플랍(315), 및 제2 플립플랍(316)을 포함할 수 있다.
또한, 일실시예에 따른 웨이트 연산부는 센스 앰프 제어기(317)를 더 포함할 수도 있으며, 센스 앰프 제어기(317)는 AND 게이트를 포함할 수 있다.
예를 들면, 제1 논리 게이트(313) 및 제2 논리 게이트(314)는 NAND 게이트 및 OR 게이트 중 적어도 하나를 포함할 수 있다. 또한, 제1 논리 게이트(313) 및 제2 논리 게이트(314)는 NAND 게이트 및 OR 게이트 중 적어도 하나의 게이트의 출력단에 연결되는 복수의 인버터를 포함할 수도 있다.
일측에 따르면, 복수의 센스 앰프(311, 312) 각각은 복수의 센스 앰프(311, 312) 각각의 제1 출력신호(SO1, SO2)와 제2 출력 신호(SOb1, SOb2)를 입력으로 수신하여 제어 클럭(CLK1 및 CLK2)을 생성하는 제1 내지 제2 논리 게이트(313, 314) 및 제1 출력신호(SO1, SO2)와 생성된 제어 클럭(CLK1 및 CLK2)을 입력으로 수신하는 제1 내지 제2 플립플랍(315, 316)과 각각 연결될 수 있다.
예를 들면, 제2 출력 신호(SOb1, SOb2)는 제1 출력신호(SO1, SO2)의 반전된 신호일 수 있다.
다시 말해, 제1 센스 앰프(311)는 제1 센스 앰프(311)의 제1 출력신호(SO1)와 제2 출력 신호(SOb1)를 입력으로 수신하여 제어 클럭(CLK1)을 생성하는 제1 논리 게이트(313) 및 제1 센스 앰프(311)의 제1 출력신호(SO1)와 제1 논리 게이트(313)에서 생성하는 제어 클럭(CLK1)을 입력으로 수신하는 제1 플립플랍(315)과 연결될 수 있다.
또한, 제2 센스 앰프(312)는 제2 센스 앰프(312)의 제1 출력신호(SO2)와 제2 출력 신호(SOb2)를 입력으로 수신하여 제어 클럭(CLK2)을 생성하는 제2 논리 게이트(314) 및 제2 센스 앰프(312)의 제1 출력신호(SO2)와 제2 논리 게이트(314)에서 생성하는 제어 클럭(CLK2)을 입력으로 수신하는 제2 플립플랍(316)과 연결될 수 있다.
보다 구체적으로, 제1 내지 제2 센스 앰프(311, 312)는 제1 내지 제2 인에이블 신호(SA1_EN, SA2_EN)를 수신하여 인에이블되면, 제1 출력신호(SO1, SO2)와 제2 출력 신호(SOb1, SOb2)가 각각 전원 전압 레벨(VDD) 또는 0V 레벨로 벌어지며, 인에이블이 종료되면 모두 0V 레벨로 돌아갈 수 있다.
일실시예에 따른 제1 내지 제2 센스 앰프(311, 312)는 제1 내지 제2 논리 게이트(313, 314)가 OR 게이트인 경우, 제1 출력신호(SO1, SO2)와 제2 출력 신호(SOb1, SOb2)를 제1 내지 제2 논리 게이트(313, 314)의 입력으로 전달할 수 있으며, 제1 내지 제2 논리 게이트(313, 314)는 입력된 신호에 기초하여 제어 클럭(CLK1 및 CLK2)을 생성할 수 있다.
또한, 제1 내지 제2 센스 앰프(311, 312)는 생성된 제어 클럭(CLK1 및 CLK2)을 바탕으로, 제1 내지 제2 플립플랍(315, 316)에게 제1 출력신호(SO1, SO2)를 전달할 수 있다.
예를 들면, 제1 내지 제2 센스 앰프(311, 312)는 인에이블되면, 0V의 제1 출력신호(SO1, SO2)를 출력하고, 전원 전압 레벨(VDD)의 제2 출력 신호(SOb1, SOb2)를 출력할 수 있으며, 제1 내지 제2 논리 게이트(313, 314)는 제1 출력신호(SO1, SO2)와 제2 출력 신호(SOb1, SOb2)를 입력으로 수신하여 값이 '1'인 제어 클럭(CLK1 및 CLK2)을 생성할 수 있다.
또한, 제1 내지 제2 센스 앰프(311, 312)는 디스에이블되면, 0V의 제1 출력신호(SO1, SO2) 및 제2 출력 신호(SOb1, SOb2)를 출력할 수 있으며, 제1 내지 제2 논리 게이트(313, 314)는 제1 출력신호(SO1, SO2)와 제2 출력 신호(SOb1, SOb2)를 입력으로 수신하여 값이 '0'인 제어 클럭(CLK1 및 CLK2)을 생성할 수 있다.
다시 말해, 제어 클럭(CLK1 및 CLK2)은 항상 제1 내지 제2 센스 앰프(311, 312)의 출력이 0V 또는 전원 전압 레벨(VDD)로 변경된 다음에 생성되기 때문에 올바른 출력 값을 항상 전달할 수 있다.
일측에 따르면, 복수의 센스 앰프(311, 312) 각각은 복수의 센스 앰프(311, 312) 각각에 대응되는 플립플랍들(315, 316)로부터 플립플랍들(315, 316)의 출력 신호(OUT[0], OUT[1])를 수신하여, 복수의 센스 앰프(311, 312) 중 적어도 하나의 센스 앰프의 동작을 제어하기 위한 앰프 인에이블 신호를 생성하는 센스 앰프 제어기(317)로부터 생성된 앰프 인에이블 신호를 입력으로 수신할 수 있다.
보다 구체적으로, 센스 앰프 제어기(317)는 제1 플립플랍(315)의 출력 신호(OUT[0]), 제2 플립플랍(316)의 출력 신호(OUT[1]) 및 제1 로우 인에이블 신호(SA1_EN_raw)를 입력으로 수신하여 제1 인에이블 신호(SA1_EN)를 생성할 수 있다.
또한, 제1 센스 앰프(311)는 제1 인에이블 신호(SA1_EN)를 수신하여 인에이블되고, 제2 센스 앰프(312)는 제2 인에이블 신호(SA2_EN)를 수신하여 인에이블 될 수 있다.
예를 들면, 제1 로우 인에이블 신호(SA1_EN_raw) 및 제2 인에이블 신호(SA2_EN)는 외부에 구비된 별도의 제어 수단으로부터 수신할 수 있으며, 별도의 제어 수단은 일실시예에 따른 뉴로모픽 시스템의 제어기(controller)일 수 있다.
참조부호 320에 따르면, 상술한 수학식 1의 결과 값이 '0', '1', '2' 및 '3'일 때, 제1 플립플랍(315)의 출력 신호(OUT[0])와, 제2 플립플랍(316)의 출력 신호(OUT[1])의 값은 하기 표1과 같이 표현될 수 있다.
[표1]
Figure 112019085939626-pat00004
표1 및 참조부호 320에 따르면, t3 또는 t2에서 플립플랍의 출력 신호가 '1'이 되면, '3' 또는 '2'가 검출된 상태이므로, '1'과 '0'을 구분하기 위해, t1에서 제1 센스 앰프(311)가 인에이블될 필요가 없다.
즉, 센스 앰프 제어기(317)는 t3에서 제1 센스 앰프(311)를 인에이블하기 위한 제1 인에이블 신호(SA1_EN)를 제1 센스 앰프(311)에 제공하지 않음으로써, 기존 기술 대비 센스 앰프를 하나 더 사용함으로써 발생되는 에너지 오버헤드를 감소시킬 수 있다.
도 4a 내지 도 4b는 일실시예에 따른 뉴로모픽 시스템에 구비된 복수의 센스 앰프의 구현예를 설명하기 위한 도면이다.
다시 말해, 도 4a 내지 도 4b는 도 1a 내지 도 3b를 통해 설명한 일실시예에 따른 뉴로모픽 시스템에 관한 예시를 설명하는 도면으로, 이후 도 4a 내지 도 4b를 통해 설명하는 내용 중 일실시예에 따른 뉴로모픽 시스템을 통해 설명한 내용과 중복되는 설명은 생략하기로 한다.
도 4a 내지 도 4b를 참조하면, 참조부호 410은 일실시예에 따른 뉴로모픽 시스템에 구비되는 센스 앰프의 세부 구조를 나타내며, 참조부호 420은 일실시예에 따른 센스 앰프에 입력되는 신호를 나타낸다.
참조부호 410 내지 420에 따르면, SAE는 제1 인에이블 신호를 나타내고, SAEb는 반전된 제1 인에이블 신호를 나타내며, SAE2는 제2 인에이블 신호를 나타내고, SAE2b는 반전된 제2 인에이블 신호를 나타낼 수 있다.
일실시예에 따른 뉴로모픽 시스템에 구비되는 복수의 센스 앰프는 특정 시간에 센스 앰프가 한번 인에이블되면 끝나는 기존 SRAM의 리드 동작(read operation)과는 달리, 시간에 따라 비트라인 전압이 변하면서 센스 앰프가 최대 3번 인에이블되는 구조로 설계될 수 있으며, 센스 앰프의 동작으로 인해 비트라인 전압이 변경되지 않도록 하기 위해 참조부호 410과 같이 설계될 수 있다.
보다 구체적으로, 참조부호 410의 센스 앰프는 센스 앰프가 인에이블 되지 않을 때는, 비트라인과 연결되고, t1, t2 및 t3 시간에 기준 전압(VREF)과의 비교를 통해 출력을 생성할 수 있다.
도 5a 내지 도 5d는 일실시예에 따른 뉴로모픽 시스템의 시뮬레이션 결과를 설명하기 위한 도면이다.
도 5a 내지 도 5d를 참조하면, 참조부호 510은 상술한 수학식1의 결과 값이 '3'일 때의 시뮬레이션 결과를 나타내고, 참조부호 520은 수학식1의 결과 값이 '2'일 때의 시뮬레이션 결과를 나타내며, 참조부호 530은 수학식1의 결과 값이 '1'일 때의 시뮬레이션 결과를 나타내고, 참조부호 540은 수학식1의 결과 값이 '0'일 때의 시뮬레이션 결과를 나타낸다.
참조부호 510에 따르면, 제1 플립플랍의 출력 신호(OUT[0]) 및 제2 플립플랍의 출력 신호(OUT[1])의 값이 모두 '1'이므로, 수학식1의 결과 값은 '3!'으로 도출될 수 있으며, 제1 플립플랍의 출력 신호(OUT[0])가 이미 '1'이 되었기 때문에 제1 인에이블 신호(SA1_EN)는 한번만 인에이블 될 수 있다.
또한, 참조부호 520에 따르면, 제1 플립플랍의 출력 신호(OUT[0])의 값은 '0'이고 제2 플립플랍의 출력 신호(OUT[1])의 값은 '1'이므로, 수학식1의 결과 값은 '2!'로 도출될 수 있으며, 제2 플립플랍의 출력 신호(OUT[1])가 이미 '1'이 되었기 때문에 제1 인에이블 신호(SA1_EN)는 한번만 인에이블 될 수 있다.
또한, 참조부호 530에 따르면, 제1 플립플랍의 출력 신호(OUT[0])의 값은 '1'이고 제2 플립플랍의 출력 신호(OUT[1])의 값은 '0'이므로, 수학식1의 결과 값은 '1!'로 도출될 수 있으며, 제2 플립플랍의 출력 신호(OUT[1])가 이미 '1'이 되었기 때문에 제1 인에이블 신호(SA1_EN)는 두 번 인에이블 될 수 있다.
또한, 참조부호 540에 따르면, 제1 플립플랍의 출력 신호(OUT[0]) 및 제2 플립플랍의 출력 신호(OUT[1])의 값이 모두 '0'이므로, 수학식1의 결과 값은 '0'으로 도출될 수 있으며, 제1 인에이블 신호(SA1_EN)는 두 번 인에이블 될 수 있다. 참조부호 540은 가중치 값이 '0'인 경우에 발생될 수 있다.
도 6a 내지 도 6b는 일실시예에 따른 뉴로모픽 시스템에서 멀티 비트 웨이트 값을 처리하는 예시를 설명하기 위한 도면이다.
다시 말해, 도 6a 내지 도 6b는 도 1a 내지 도 5d를 통해 설명한 일실시예에 따른 뉴로모픽 시스템에 관한 예시를 설명하는 도면으로, 이후 도 6a 내지 도 6b를 통해 설명하는 내용 중 일실시예에 따른 뉴로모픽 시스템을 통해 설명한 내용과 중복되는 설명은 생략하기로 한다.
도 6a 내지 도 6b를 참조하면, 참조부호 610은 8 비트의 가중치와 16비트의 뉴런 맴브레인 전압에 관한 예시를 나타내고, 참조부호 620은 일실시예에 따른 뉴런 프로세서의 세부 구조를 나타낸다.
참조부호 610 내지 620에 따르면, 일실시예에 따른 뉴로모픽 시스템의 뉴런 프로세서는 하기 수학식2와 같이, MAC 연산의 결과 값과 MAC 연산 값에 대응되는 뉴런의 맴브레인(membrane) 값(N)을 합산할 수 있다.
[수학식2]
Figure 112019085939626-pat00005
일실시예에 따른 뉴로모픽 시스템은 각 비트라인 마다 출력이 2개 이므로, 참조부호 610와 같이 3개의 값이 더해지는 경우가 발생될 수 있다.
일반적으로, 각 비트라인의 출력들을 (n+1) 비트 가산기로 합산한 출력을 뉴런의 맴브레인 전압과 합산할 수 있으나, 이 경우 기존의 SNN 네트워크와 대비하여 (n+1) 비트 가산기의 딜레이(delay)가 추가 될 수 있다.
이에 대한 딜레이를 줄이고자, 일실시예에 따른 뉴로모픽 시스템의 뉴런 프로세서는 CSA(bit carry save adder) 및 CRA(carry ripple adder)의 조합으로 구현됨으로써, 가산기 2개의 딜레이보다 더 적은 딜레이로 멀티 비트 웨이트 값(multi-bit weight)을 처리할 수 있다.
구체적으로, 뉴런 프로세서는 참조부호 611 및 621의 구간에서는 9 비트 이하에서 넘어오는 캐리(carry)만을 합산할 수 있고, 참조부호 612 및 622의 구간에서는 3개의 값을 합산하는 9 비트 가산기로 동작할 수 있다.
일측에 따르면, 뉴런 프로세서의 동작 주기(Tadder)는 하기 수학식3과 같이 표현될 수 있다.
[수학식3]
Figure 112019085939626-pat00006
여기서, TFA는 풀-가산기 딜레이(full-adder delay)를 나타낼 수 있고, TCRA는 CRA 딜레이를 나타낼 수 있다.
도 7은 일실시예예 따른 뉴로모픽 시스템을 이용한 멀티 MAC 동작 수행 방법을 설명하기 위한 도면이다.
다시 말해, 도 7은 도 1a 내지 도 6b를 통해 설명한 일실시예에 따른 뉴로모픽 시스템의 동작 방법을 설명하는 도면으로, 이후 도 7을 통해 설명하는 내용 중 도 1a 내지 도 6b를 통해 설명한 내용과 중복되는 설명은 생략하기로 한다.
구체적으로, 710 단계에서 일실시예에 따른 멀티 MAC 동작 수행 방법은 신호 제공부에서, 시냅스 어레이에 구비된 복수의 워드라인들 중 적어도 하나 이상의 워드라인을 동일한 타이밍에 선택하고, 동일한 타이밍에서 선택된 워드라인들을 통해 스파이크 신호를 제공할 수 있다.
다음으로, 720 단계에서 일실시예에 따른 멀티 MAC 동작 수행 방법은 시냅스 어레이에서, 복수의 비트라인들 중 어느 하나의 비트라인에 연결되는 복수의 시냅스 회로들 중에서 스파이크(Spikes) 신호를 수신하는 시냅스 회로들에 대응되는 적어도 하나의 웨이트(weight) 값을 출력할 수 있다.
다음으로, 730 단계에서 일실시예에 따른 멀티 MAC 동작 수행 방법은 웨이트 연산부에서, 적어도 하나의 웨이트 값을 어느 하나의 비트라인을 통해 입력으로 수신하는 복수의 센스 앰프(sense amplifier)를 이용하여 복수의 웨이트 값에 대한 MAC(multiplication and accumulation) 연산을 수행할 수 있다.
일측에 따르면, 복수의 센스 앰프 각각은 복수의 센스 앰프 각각의 제1 출력신호와 제2 출력 신호를 입력으로 수신하여 제어 클럭을 생성하는 논리 게이트 및 제1 출력신호와 생성된 제어 클럭을 입력으로 수신하는 플립플랍(flip-flop)과 연결될 수 있다.
또한, 복수의 센스 앰프 각각은 복수의 센스 앰프 각각에 대응되는 플립플랍들로부터 플립플랍들의 출력 신호를 수신하여, 복수의 센스 앰프 중 적어도 하나의 센스 앰프의 동작을 제어하기 위한 앰프 인에이블 신호를 생성하는 센스 앰프 제어기로부터 생성된 앰프 인에이블 신호를 수신할 수 있다.
결국, 본 발명을 이용하면, 기존 ADC가 필요한 아날로그 방식의 multiple-MAC 연산이 아닌 SRAM의 센스 앰프를 복수 개 사용하여 multiple-MAC 연산을 수행할 수 있다.
또한, 본 발명은 ADC 없이 multiple-MAC 연산을 수행하여 공간(area), 에너지(energy) 및 지연 오버헤드(delay overhead)에 따른 손실을 최소화함으로써 전체적인 에너지 효율을 높일 수 있다.
또한, 본 발명은 복수의 플립플랍 출력에 기초하여 센스 앰프의 동작을 제어함으로써, 복수의 센스 앰프를 사용함에 따른 에너지 오버헤드를 줄일 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
110: 뉴로모픽 시스템 111: 시냅스 어레이
112: 웨이트 연산부 113: 신호 제공부
114: 뉴런 프로세서

Claims (12)

  1. 복수의 비트라인들 중 어느 하나의 비트라인에 연결되는 복수의 시냅스 회로들 중에서 스파이크(Spikes) 신호를 수신하는 시냅스 회로들에 대응되는 적어도 하나의 웨이트(weight) 값을 출력하는 시냅스 어레이 및
    상기 적어도 하나의 웨이트 값을 상기 어느 하나의 비트라인을 통해 입력으로 수신하는 복수의 센스 앰프(sense amplifier)를 포함하고, 상기 복수의 센스 앰프를 이용하여 상기 복수의 웨이트 값에 대한 MAC(multiplication and accumulation) 연산을 수행하는 웨이트 연산부
    를 포함하고,
    상기 복수의 센스 앰프 각각은
    상기 복수의 센스 앰프 각각의 제1 출력신호와 제2 출력 신호를 입력으로 수신하여 제어 클럭을 생성하는 논리 게이트 및 상기 제1 출력신호와 상기 생성된 제어 클럭을 입력으로 수신하는 플립플랍(flip-flop)과 연결되는
    뉴로모픽 시스템.
  2. 제1항에 있어서,
    상기 복수의 시냅스 회로들은 SRAM 메모리 셀 구조에 기반한 회로인
    뉴로모픽 시스템.
  3. 제1항에 있어서,
    상기 시냅스 어레이에 구비된 복수의 워드라인들 중 적어도 하나 이상의 워드라인을 동일한 타이밍에 선택하고, 상기 동일한 타이밍에서 상기 선택된 워드라인들을 통해 상기 스파이크 신호를 제공하는 신호 제공부
    를 더 포함하는 뉴로모픽 시스템.
  4. 제3항에 있어서,
    상기 신호 제공부는
    상기 복수의 워드라인 각각에 연결되는 프리 뉴런(pre-neuron)들을 포함하고, 상기 프리 뉴런들을 통해 상기 복수의 워드라인들 각각에 대응되는 시냅스 회로들에 상기 스파이크 신호를 제공하는
    뉴로모픽 시스템.
  5. 제1항에 있어서,
    상기 복수의 센스 앰프 각각은
    상기 어느 하나의 비트라인과, 하나의 기준 전압을 인가하는 기준 전압라인이 입력으로 연결되는
    뉴로모픽 시스템.
  6. 제5항에 있어서,
    상기 복수의 센스 앰프 각각은
    상기 어느 하나의 비트라인을 통해 인가되는 비트라인 전압이 상기 기준 전압보다 낮아지는 시점을 감지하고, 상기 감지된 시점에 대응되는 상기 MAC 연산 결과를 출력하는
    뉴로모픽 시스템.
  7. 삭제
  8. 제1항에 있어서,
    상기 복수의 센스 앰프 각각은
    상기 복수의 센스 앰프 각각에 대응되는 플립플랍들로부터 상기 플립플랍들의 출력 신호를 수신하여, 상기 복수의 센스 앰프 중 적어도 하나의 센스 앰프의 동작을 제어하기 위한 앰프 인에이블 신호를 생성하는 센스 앰프 제어기로부터 상기 생성된 앰프 인에이블 신호를 입력으로 수신하는
    뉴로모픽 시스템.
  9. 시냅스 어레이에서, 복수의 비트라인들 중 어느 하나의 비트라인에 연결되는 복수의 시냅스 회로들 중에서 스파이크(Spikes) 신호를 수신하는 시냅스 회로들에 대응되는 적어도 하나의 웨이트(weight) 값을 출력하는 단계 및
    웨이트 연산부에서, 상기 적어도 하나의 웨이트 값을 상기 어느 하나의 비트라인을 통해 입력으로 수신하는 복수의 센스 앰프(sense amplifier)를 이용하여 상기 복수의 웨이트 값에 대한 MAC(multiplication and accumulation) 연산을 수행하는 단계
    를 포함하고,
    상기 복수의 센스 앰프 각각은
    상기 복수의 센스 앰프 각각의 제1 출력신호와 제2 출력 신호를 입력으로 수신하여 제어 클럭을 생성하는 논리 게이트 및 상기 제1 출력신호와 상기 생성된 제어 클럭을 입력으로 수신하는 플립플랍(flip-flop)과 연결되는
    뉴로모픽 시스템을 이용한 멀티 MAC 동작 수행 방법.
  10. 제9항에 있어서,
    신호 제공부에서, 상기 시냅스 어레이에 구비된 복수의 워드라인들 중 적어도 하나 이상의 워드라인을 동일한 타이밍에 선택하고, 상기 동일한 타이밍에서 상기 선택된 워드라인들을 통해 상기 스파이크 신호를 제공하는 단계
    를 더 포함하는 뉴로모픽 시스템을 이용한 멀티 MAC 동작 수행 방법.
  11. 삭제
  12. 제9항에 있어서,
    상기 복수의 센스 앰프 각각은
    상기 복수의 센스 앰프 각각에 대응되는 플립플랍들로부터 상기 플립플랍들의 출력 신호를 수신하여, 상기 복수의 센스 앰프 중 적어도 하나의 센스 앰프의 동작을 제어하기 위한 앰프 인에이블 신호를 생성하는 센스 앰프 제어기로부터 상기 생성된 앰프 인에이블 신호를 수신하는
    뉴로모픽 시스템을 이용한 멀티 MAC 동작 수행 방법.
KR1020190102466A 2019-08-21 2019-08-21 멀티 mac 동작을 수행하는 뉴로모픽 시스템 및 그 방법 KR102389413B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190102466A KR102389413B1 (ko) 2019-08-21 2019-08-21 멀티 mac 동작을 수행하는 뉴로모픽 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190102466A KR102389413B1 (ko) 2019-08-21 2019-08-21 멀티 mac 동작을 수행하는 뉴로모픽 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20210022982A KR20210022982A (ko) 2021-03-04
KR102389413B1 true KR102389413B1 (ko) 2022-04-21

Family

ID=75174921

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190102466A KR102389413B1 (ko) 2019-08-21 2019-08-21 멀티 mac 동작을 수행하는 뉴로모픽 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102389413B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230106484A (ko) 2022-01-06 2023-07-13 삼성전자주식회사 스파이킹 신경망 장치, 불휘발성 메모리 장치 및 그것의 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012113766A (ja) * 2010-11-19 2012-06-14 Toshiba Corp タイミング生成回路および半導体記憶装置
WO2019049686A1 (ja) 2017-09-07 2019-03-14 パナソニック株式会社 半導体記憶素子を用いたニューラルネットワーク演算回路及び動作方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3530574B2 (ja) * 1994-05-20 2004-05-24 株式会社ルネサステクノロジ 半導体記憶装置
US9418333B2 (en) 2013-06-10 2016-08-16 Samsung Electronics Co., Ltd. Synapse array, pulse shaper circuit and neuromorphic system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012113766A (ja) * 2010-11-19 2012-06-14 Toshiba Corp タイミング生成回路および半導体記憶装置
WO2019049686A1 (ja) 2017-09-07 2019-03-14 パナソニック株式会社 半導体記憶素子を用いたニューラルネットワーク演算回路及び動作方法

Also Published As

Publication number Publication date
KR20210022982A (ko) 2021-03-04

Similar Documents

Publication Publication Date Title
TWI720524B (zh) 用於執行記憶體內乘法與累加函數的方法及電路
CN108009640B (zh) 基于忆阻器的神经网络的训练装置及其训练方法
US11061646B2 (en) Compute in memory circuits with multi-Vdd arrays and/or analog multipliers
Burr et al. Large-scale neural networks implemented with non-volatile memory as the synaptic weight element: Comparative performance analysis (accuracy, speed, and power)
US10818344B1 (en) Artificial neural network functionality using dynamic random-access memory
US11302392B2 (en) Analog-to-digital converter and neuromorphic computing device including the same
KR101714560B1 (ko) 연산을 수행하기 위해 기억 셀을 이용하는 장치 및 방법
EP3506266A1 (en) Methods and systems for performing a calculation across a memory array
US20120011087A1 (en) Methods and systems for replaceable synaptic weight storage in neuro-processors
US10956813B2 (en) Compute-in-memory circuit having a multi-level read wire with isolated voltage distributions
US11663452B2 (en) Processor array for processing sparse binary neural networks
TWI699711B (zh) 記憶體裝置及其製造方法
US11513797B2 (en) Systems and methods for analog vector by matrix multiplier
US11915124B2 (en) Performing processing-in-memory operations related to spiking events, and related methods, systems and devices
KR102389413B1 (ko) 멀티 mac 동작을 수행하는 뉴로모픽 시스템 및 그 방법
US12008460B2 (en) Performing processing-in-memory operations related to pre-synaptic spike signals, and related methods and systems
CN111859261B (zh) 计算电路及其操作方法
KR101177458B1 (ko) 플래시 메모리 장치에서 발생하는 커플링 잡음 전압 산출 장치 및 방법
US20240232601A1 (en) Performing processing-in-memory operations related to spiking events, and related methods, systems and devices
JP7480391B2 (ja) インメモリコンピューティングのための記憶装置
US20240202275A1 (en) Assigning dnn weights to a 3d crossbar array
CN117409830A (zh) 存储器内计算的存储器装置以及固态驱动模块
CN116432723A (zh) 面向资源受限存算一体芯片的dnn推理加速系统及方法
Guo et al. An Emerging NVM CIM Accelerator With Shared-Path Transpose Read and Bit-Interleaving Weight Storage for Efficient On-Chip Training in Edge Devices
KR20240103297A (ko) 제로 스키핑 기능이 있는 비동기식 인메모리 컴퓨팅 장치 및 제로 스키핑 방법

Legal Events

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