KR20220004430A - 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치 - Google Patents

인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치 Download PDF

Info

Publication number
KR20220004430A
KR20220004430A KR1020200082260A KR20200082260A KR20220004430A KR 20220004430 A KR20220004430 A KR 20220004430A KR 1020200082260 A KR1020200082260 A KR 1020200082260A KR 20200082260 A KR20200082260 A KR 20200082260A KR 20220004430 A KR20220004430 A KR 20220004430A
Authority
KR
South Korea
Prior art keywords
time
input
voltage
memory
sampling
Prior art date
Application number
KR1020200082260A
Other languages
English (en)
Inventor
주용민
김상준
이형우
정승철
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200082260A priority Critical patent/KR20220004430A/ko
Priority to US17/150,891 priority patent/US11514980B2/en
Publication of KR20220004430A publication Critical patent/KR20220004430A/ko
Priority to US17/974,852 priority patent/US11756610B2/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • 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/048Activation functions
    • 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
    • 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
    • G06N3/065Analogue 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/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4074Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
    • 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/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • 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/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4091Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1093Input synchronization
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/133Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals using a chain of active delay devices
    • H03K5/134Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals using a chain of active delay devices with field-effect transistors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/085Details of the phase-locked loop concerning mainly the frequency- or phase-detection arrangement including the filtering or amplification of its output signal
    • 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
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • G11C27/02Sample-and-hold arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

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

Abstract

인-메모리(in-memory) 프로세싱을 수행하는 장치는, 입력 신호들이 각각의 로우(row) 라인을 통해 인가되고, 각각의 컬럼(column) 라인을 통해 전류 합(current sum)을 제공하는, 메모리 셀 어레이, 시작 신호의 입력 이후, 전류 합에 대응되는 샘플링 전압의 크기에 기초하여 결정되는 지연 시간만큼 지연된 종료 신호를 출력하는 전압 제어 지연 회로(Voltage Controlled Delay Circuit) 및 시간-디지털 컨버팅을 수행하는 시간-디지털 컨버터(TDC)를 포함할 수 있다.

Description

인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치 {APPARATUS FOR PERFORMING IN MEMORY PROCESSING AND COMPUTING APPARATUS HAVING THE SAME}
인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치에 관하고, 구체적으로 시간-디지털 컨버팅에 기초한 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치에 에 관한다.
뉴럴 네트워크는 컴퓨터 과학적 아키텍처(computational architecture)를 참조하여 구현된 컴퓨팅 시스템이다. 최근 뉴럴 네트워크 기술이 발전함에 따라, 다양한 종류의 전자 시스템에서 뉴럴 네트워크를 이용하여 입력 데이터를 분석하고 유효한 정보를 추출하는 연구가 활발히 진행되고 있다. 뉴럴 네트워크의 처리는 복잡한 입력 데이터에 대한 많은 양의 연산을 필요로 한다. 뉴럴 네트워크의 데이터가 증가하고, 뉴럴 네트워크를 구성하는 아키텍처의 연결성이 복잡해짐에 따라 프로세싱 장치의 연산량 및 메모리 액세스 빈도의 과도한 증가가 초래되어, 소형화 및 상용화에 있어서의 비효율적인 성능이 나타날 수 있다. 예를 들어, 뉴럴 네트워크의 처리는 곱셉과 덧셈을 반복하는 MAC(Multiply-Accumulate) 연산을 포함할 수 있다. 뉴럴 네트워크의 처리에 있어서 많은 연산량을 차지하는 반복적인 MAC 연산을 저전력 및 고속으로 처리하기 위한, 효율적인 하드웨어 아키텍쳐 및 하드웨어 구동 방법들에 대한 다양한 시도들이 연구되고 있다.
인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치를 제공하는데 있다. 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일 측면에 따르면, 인-메모리(in-memory) 프로세싱을 수행하는 장치는, 입력 신호들이 각각의 로우(row) 라인을 통해 인가되는 경우 각각의 컬럼(column) 라인을 통해 흐르는 컬럼 전류의 전류 합(current sum)을 제공하는, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이, 각각의 컬럼 라인의 전류 합에 대응하는 샘플링 전압이 인가되고, 제1 시점에서 시작 신호의 입력 이후, 샘플링 전압의 크기에 기초하여 결정되는 지연 시간만큼 지연된 제2 시점에서 종료 신호를 출력하는 전압 제어 지연 회로(Voltage Controlled Delay Circuit) 및 제2 시점에서 시간-디지털 컨버팅을 수행하는 시간-디지털 컨버터(TDC)를 포함할 수 있다.
다른 측면에 따르면, 컴퓨팅 장치는, 호스트 프로세서, 메모리 디바이스 및 인-메모리 프로세싱 디바이스를 포함하고, 인-메모리 프로세싱 디바이스는 입력 신호들이 각각의 로우(row) 라인을 통해 인가되는 경우 각각의 컬럼(column) 라인을 통해 흐르는 컬럼 전류의 전류 합(current sum)을 제공하는, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이, 각각의 컬럼 라인의 전류 합에 대응하는 샘플링 전압이 인가되고, 제1 시점에서 시작 신호의 입력 이후, 샘플링 전압의 크기에 기초하여 결정되는 지연 시간만큼 지연된 제2 시점에서 종료 신호를 출력하는 전압 제어 지연 회로(Voltage Controlled Delay Circuit) 및 제2 시점에서 시간-디지털 컨버팅을 수행하는 시간-디지털 컨버터(TDC)를 포함할 수 있다.
또 다른 측면에 따르면, 인-메모리(in-memory) 프로세싱을 수행하는 방법은, 메모리 셀 어레이의 각각의 로우(row) 라인을 통해 복수의 메모리 셀들에 입력 신호를 인가하는 단계, 메모리 셀 어레이의 각각의 컬럼(column) 라인을 통해 흐르는 컬럼 전류의 전류 합(current sum)에 대응하는 샘플링 전압을 각각의 컬럼(column) 라인에 연결된 전압 제어 지연 회로에 인가하는 단계, 전압 제어 지연 회로에 제1 시점에서 시작 신호의 입력 후 샘플링 전압의 크기에 기초하여 결정되는 지연 시간만큼 지연된 제2 시점에서 종료 신호를 출력하는 단계 및 제2 시점에서 시간-디지털 컨버팅을 수행하는 단계를 포함할 수 있다.
도 1은 생물학적 뉴런과 그 동작을 설명하기 위한 도면이다.
도 2는 뉴로모픽 연산을 수행하기 위한 2차원 어레이 회로의 구성을 설명하기 위한 도면이다.
도 3은 뉴로모픽 연산의 처리 방법을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 인-메모리 프로세싱 디바이스를 도시한 도면이다.
도 5는 일 실시예에 따른 인-메모리 프로세싱 디바이스를 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 인-메모리 프로세싱 디바이스에서 전압 제어 지연 라인의 동작을 설명하기 위한 도면이다.
도 7은 실시예들에 따른 인-메모리 프로세싱 디바이스에서 전압 제어 지연 라인의 구성을 설명하기 위한 도면이다.
도 8은 일 실시예에 따라 인-메모리 프로세싱 디바이스에서 수행되는 시간-디지털 컨버팅을 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 인-메모리 프로세싱 디바이스에 개시 신호가 입력됨에 따라 각 구성 요소들에서 출력되는 신호들에 관한 도면이다.
도 10은 일 실시예에 따라 인-메모리 프로세싱을 수행하는 방법의 흐름도이다.
도 11은 일 실시예에 따른 컴퓨팅 장치를 나타내는 블록도이다.
도 12는 뉴럴 네트워크의 일 예를 설명하기 위한 도면이다.
실시예들에서 사용되는 용어는 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 명세서의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 실시예들에서 사용되는 “구성된다” 또는 “포함한다” 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
아래에서는 첨부한 도면을 참고하여 실시예에 대하여 상세히 설명한다. 그러나 실시예는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 예에 한정되지 않는다.
도 1은 생물학적 뉴런과 그 동작을 설명하기 위한 도면이다.
도 1을 참고하면, 생물학적 뉴런(10)은 인간의 신경계에 존재하는 세포를 의미하며, 기초적인 생물학적 계산 개체의 하나이다. 인간의 두뇌는 대략 1000억개 정도의 생물학적 뉴런들과 그 사이에 위치하는 100조개 정도의 연결들(interconnections)을 포함하고 있다.
생물학적 뉴런(10)은 단일 세포이며 세포핵(nucleus) 및 다양한 세포기관(organelles)을 포함하는 세포체(neuron cell body)를 포함한다. 다양한 세포기관은 미토콘드리아, 세포체로부터 방사되는 다수의 수상돌기들(dendrites) 및 많은 분기 확장선(extension)들에서 종단하는 축색돌기(axon)를 포함한다.
일반적으로, 축색돌기는 뉴런으로부터 다른 뉴런으로 신호들을 송신하는 기능을 수행하고, 수상돌기는 다른 뉴런으로부터 신호를 수신하는 기능을 수행한다. 예를 들어, 서로 다른 뉴런들이 연결되어 있는 경우 뉴런의 축색돌기를 통해 전달된 신호는 다른 뉴런의 수상돌기에 의해 수신될 수 있다. 이때, 뉴런들 사이에서 신호는 시냅스(synapse)라 지칭되는 특화된 연결을 통해 전달되며, 여러 뉴런들이 서로 연결되어 뉴럴 네트워크(neural network)을 형성한다. 시냅스를 기준으로 신경전달물질(neurotransmitter)을 분비하는 뉴런은 프리 시냅틱 뉴런(pre-synaptic neuron)으로 지칭되고, 신경전달물질을 통해 전달되는 정보를 받는 뉴런은 포스트 시냅틱 뉴런(post-synaptic neuron)이라고 지칭될 수 있다.
한편, 인간의 두뇌는 많은 수의 뉴런들이 서로 연결되어 형성되는 뉴럴 네트워크를 통해 다양한 신호들을 전달 및 처리함으로써 방대한 양의 정보를 학습하고 기억할 수 있다. 인간의 두뇌 내의 뉴런들 사이의 방대한 수의 연결들은 생물학적 컴퓨팅의 거대 병렬 속성(massively parallel nature)에 직접 상관되는바, 인공 뉴럴 네트워크(artificial neural network)를 통해 생물학적 뉴럴 네트워크를 모사하여 방대한 양의 정보를 효율적으로 처리하기 위한 다양한 시도가 있어왔다. 예를 들어, 인공 뉴럴 네트워크를 뉴런 수준에서 구현하기 위해 설계된 컴퓨팅 시스템으로서, 뉴로모픽 장치가 연구되고 있다.
한편, 생물학적 뉴런(10)의 동작은 수학적 모델(11)로 모사될 수 있다. 생물학적 뉴런(10)에 대응하는 수학적 모델(11)은 뉴로모픽 연산의 일 예로서, 다수의 뉴런들로부터의 정보에 대해 시냅틱 웨이트를 곱하는 곱셈 연산, 시냅틱 웨이트가 곱해진 값들(ω0x0, ω1x1, ω2x2)에 대한 덧셈 연산(Σ), 및 덧셈 연산 결과에 대해 특성 함수(b) 및 활성 함수(f)를 적용하는 연산을 포함할 수 있다. 뉴로모픽 연산에 의해 뉴로모픽 연산 결과가 제공될 수 있다. 여기서, x0, x1, x2, ... 등의 값들은 액손 값들로 지칭되고, ω0, ω1, ω2, ... 등의 값들은 시냅틱 웨이트들로 지칭될 수 있다.
도 2는 뉴로모픽 연산을 수행하기 위한 2차원 어레이 회로의 구성을 설명하기 위한 도면이다.
도 2를 참조하면, 2차원 어레이 회로의 구성(20)은 N 개(N은 임의의 자연수)의 액손 회로들(A1 내지 AN)(210), M 개(M은 임의의 자연수)의 뉴런 회로들(N1 내지 NM)(230) 및 N x M 개의 시냅스 어레이(S11 내지 SNM)(220)를 포함한다.
시냅스 어레이(S11 내지 SNM)(220)의 각 시냅스는 액손 회로들(A1 내지 AN)(210)로부터 제 1 방향으로 연장되는 제 1 방향 라인들과 뉴런 회로들(N1 내지 NM)(230)로부터 제 2 방향으로 연장되는 제2 방향 라인들의 교차점들에 배치될 수 있다. 여기서, 설명의 편의를 위하여, 제 1 방향은 행 방향이고 제2 방향은 열 방향인 것으로 도시되어 있으나, 이에 제한되지 않고 제 1 방향이 열 방향이고 제 2 방향은 행 방향일 수도 있다.
액손 회로들(A1 내지 AN)(210) 각각은 생물학적 뉴런(도 1의 10)의 축색돌기를 모사하는 회로를 의미할 수 있다. 뉴런의 축색돌기는 뉴런으로부터 다른 뉴런으로 신호들을 송신하는 기능을 수행하므로, 뉴런의 축색돌기를 모사하는 액손 회로들(A1 내지 AN)(210) 각각은 액티베이션(예를 들어, 액손들 a1, a2, ..., aN)을 입력 받아 제 1 방향 라인들로 전달할 수 있다. 액티베이션은 뉴런을 통해 전달되는 신경 전달 물질에 대응되는 것으로서, 액손 회로들(A1 내지 AN)(210) 각각에 입력되는 전기적 신호를 의미할 수 있다. 한편, 액손 회로들(A1 내지 AN)(210) 각각은 입력 정보를 저장하는 메모리, 레지스터 또는 버퍼를 포함할 수 있다. 한편, 액티베이션은 바이너리(binary) 값을 갖는 바이너리 액티베이션일 수 있다. 예를 들어, 바이너리 액티베이션은 논리값 0 또는 1(또는, 논리값 -1 또는 1)에 대응되는 1 비트 정보를 포함할 수 있다. 다만, 반드시 이에 제한되는 것은 아니며, 액티베이션은 터너리(ternary) 값을 가질 수 있고, 멀티-비트 값을 가질 수도 있다.
시냅스 어레이(S11 내지 SNM)(220)의 각 시냅스는 뉴런과 뉴런 사이의 시냅스를 모사하는 회로를 의미할 수 있다. 시냅스 어레이(S11 내지 SNM)(220)는 뉴런과 뉴런 사이의 연결 강도에 대응되는 시냅틱 웨이트들을 저장할 수 있다. 도 2에서는 설명의 편의를 위해 각 시냅스에 저장될 시냅틱 웨이트들의 예로서, w1, w2, ..., wM가 도시되어 있으나, 각 시냅스에는 이 밖에도 다른 시냅틱 웨이트들이 저장될 수 있다. 시냅스 어레이(S11 내지 SNM)(220)의 각 시냅스는 시냅틱 웨이트를 저장하기 위한 메모리 소자를 포함하거나 또는 시냅틱 웨이트를 저장하고 있는 다른 메모리 소자에 연결될 수 있다. 여기서, 이와 같은 메모리 소자는 예를 들어, 멤리스터(memrister) 또는 저항성 메모리 셀(resistive memory cell)에 해당될 수 있다. 멤리스터 또는 저항성 메모리 셀은 SRAM(Static Random-Access Memory), PCM(Phase Change Memory), OXRAM(Oxide Based Memory), MRAM(Magnetoresistive Random-Access Memory), STT-RAM(Spin-Transfer Torque Random-Access Memory), CBRAM(Conductive-Bridge Random-Access Memory), RRAM(Resistive RAM), FRAM(Ferroelectric RAM), 자기 터널 접합(Magnetic Tunnel Junction; MTJ) 소자 등으로 구현될 수 있으나, 이에 제한되는 것은 아니다.
시냅스 어레이(S11 내지 SNM)(220) 각각은 대응되는 제 1 방향 라인을 통해 액손 회로들(A1 내지 AN)(210) 각각으로부터 전달되는 액티베이션 입력을 수신할 수 있고, 저장되어 있던 시냅틱 웨이트와 액티베이션 입력 간의 뉴로모픽 연산의 결과를 출력할 수 있다. 예를 들어, 시냅틱 웨이트와 액티베이션 입력 간의 뉴로모픽 연산은 곱셈 연산(즉, AND 연산)일 수 있으나, 이에 제한되는 것은 아니다. 즉, 시냅틱 웨이트와 액티베이션 입력 간의 뉴로모픽 연산의 결과는 뉴런과 뉴런 사이의 연결 강도에 따라 조절되는 액티베이션의 세기 또는 크기를 모사하기 위한 다른 임의의 적절한 연산에 의해 획득되는 값일 수도 있다.
시냅틱 웨이트와 액티베이션 입력 간의 뉴로모픽 연산에 따라 액손 회로들(A1 내지 AN)(210)로부터 뉴런 회로들(N1 내지 NM)(230)로 전달되는 신호의 크기 또는 세기가 조절될 수 있다. 이와 같이, 시냅스 어레이(S11 내지 SNM)(220)를 이용하여 뉴런과 뉴런 사이의 연결강도에 따라 다음 뉴런으로 전달되는 신호의 크기 또는 세기가 조절되는 동작이 모사될 수 있다.
뉴런 회로들(N1 내지 NM)(230) 각각은 수상돌기를 포함하는 뉴런을 모사하는 회로를 의미할 수 있다. 뉴런의 수상돌기는 다른 뉴런으로부터 신호를 수신하는 기능을 수행하는바, 뉴런 회로들(N1 내지 NM)(230) 각각은 대응되는 제 2 방향 라인을 통해 시냅틱 웨이트와 액티베이션 입력 간의 뉴로모픽 연산의 결과를 수신할 수 있다. 뉴런 회로들(N1 내지 NM)(230) 각각은 뉴로모픽 연산의 결과에 기초하여 스파이크(spike)를 출력할지 여부를 결정할 수 있다. 예를 들어, 뉴런 회로들(N1 내지 NM) 각각은 뉴로모픽 연산의 결과를 누적한 값이 미리 설정된 임계값 이상인 경우 스파이크를 출력할 수 있다. 뉴런 회로들(N1 내지 NM)(230)로부터 출력된 스파이크들은 다음 단의 액손 회로들에 입력 되는 액티베이션에 대응될 수 있다.
한편, 뉴런 회로들(N1 내지 NM)(230)은 시냅스 어레이(S11 내지 SNM)(220)를 기준으로 후단에 위치하는바, 포스트 시냅틱 뉴런 회로들로 지칭될 수 있고, 액손 회로들(A1 내지 AN)(210)은 시냅스 어레이(S11 내지 SNM)(220)를 기준으로 전단에 위치하는바, 프리 시냅틱 뉴런 회로들로 지칭될 수 있다.
도 3은 뉴 인-메모리 프로세싱 디바이스에 뉴로모픽 연산의 처리 방법을 설명하기 위한 도면이다.
뉴로모픽 연산을 처리하기 위한 2차원 어레이 회로는 각각의 컬럼 라인 별 전류 합산(current summation) 방식을 이용할 수 있다. 예를 들어, 2차원 어레이 회로는 액손 회로들(A1 내지 AN)로부터 전달된 액티베이션에 의해 시냅스들(S11, S21, S(N-1)1, SN1)을 통해 컬럼 라인(310)을 따라 흐르는 전류를 합산하고, 합산된 전류의 크기 또는 세기가 기 설정된 임계값 이상인 경우 스파이크를 출력한다. 이때, 스파이크 출력에 따른 디지털 신호로 양자화하여 다음 단의 액손 회로들에 입력되는 액티베이션의 입력으로 인가함에 따라 ADC(Analog to Digital Converter)와 같은 주변 회로가 구비될 필요가 있다. 하지만, 모든 열에 독립적인 ADC를 구성할 경우 소모 전력 및 회로에서 큰 면적이 요구된다. 따라서, 이하에서는 본 실시예들에 따라, 덧셈 및 곱셈을 반복하는 MAC 연산과 같은 뉴로모픽 연산을 각 열에 개별적인 ADC 를 구성하지 않고, 하나의 시간-디지털 컨버터(TDC, time-to-digital converter)에 기반한 회로 디자인을 갖는 집적도 높은 온-칩(on-chip) 시스템을 구현하기 위한 방법에 대해 설명하도록 한다.
도 4는 일 실시예에 따른 인-메모리 프로세싱 디바이스를 도시한 도면이다.
도 4를 참고하면, 인-메모리 프로세싱 디바이스(100)는 뉴로모픽 연산을 위하여 곱셈 및 덧셈을 수행한 결과를 출력하는 회로로 구성될 수 있다.
인-메모리 프로세싱 디바이스(100)는 복수의 메모리 셀들(110), 저항(R), 전압 제어 지연 라인 (Voltage Controlled Delay Line; VCDL, 130) 및 시간-디지털 컨버터(TDC)(140)를 포함할 수 있다.
도 4에서는 설명의 편의를 위하여, 인-메모리 프로세싱 디바이스(100)에 구비된 메모리 셀 어레이 중 일부에 해당하는 컬럼(column) 라인(120) 및 로우(row) 라인들에 대해서만 도시되어 있을 뿐이다. 따라서, 인-메모리 프로세싱 디바이스(100)는 복수의 컬럼 라인들(120) 및 로우 라인들이 교차하는 위치에 복수의 메모리 셀들(110)이 배치된 메모리 셀 어레이를 포함할 수 있다.
메모리 셀들(110)은 앞서 설명된 바와 같이, 멤리스터 또는 저항성 메모리 소자로 구현된 것으로서, 가변저항을 갖는 소자일 수 있다. 메모리 셀들(110)에는 입력 신호(b1, b2, b3, ..., bm)에 응답하여 각각의 로우 라인을 통해 전압이 인가될 수 있다. 예를 들어, 메모리 셀들(110)에는 입력 신호의 입력 전압 신호가 직접 인가되거나, 또는 입력 신호에 의해 공급 전압이 인가될 수도 있다.
메모리 셀들(110) 각각의 일단은 스위치(SW)(101)를 통해 전압을 수신 가능하게 구성될 수 있고, 메모리 셀들(110) 각각의 타단은 저항(R) 및 전압 제어 지연 라인(Voltage Controlled Delay Line; VCDL)(130)에 연결될 수 있다. 즉, 메모리 셀들(110)을 포함하는 개개의 컬럼 라인(120)에는 저항(R) 및 전압 제어 지연 라인(VCDL)(130)이 연결되어 있다.
메모리 셀들(110) 각각의 저항 값과 메모리 셀들(110) 각각에 인가된 입력 신호의 전압 값에 따라, 컬럼 라인(120)에는 옴의 법칙에 기초하여 계산된 전류 값을 갖는 전류가 흐르게 된다. 따라서, 컬럼 라인(120)을 통해 흐르는 컬럼 전류의 전류 합(current sum)(Io)은, 서로 대응하는 메모리 셀들(110) 및 입력 신호들 간의 MAC 연산의 결과 값에 대응할 수 있다.
입력 신호들(b1, b2, b3, ..., bm) 각각은 시작 신호(START)에 응답하여 메모리 셀들(110) 각각에 인가될 수 있다. 이를 위하여, 인-메모리 프로세싱 디바이스(100)는 시작 신호(START)에 의해 스위칭되는 복수의 스위치들(101)을 포함할 수 있다. 스위치들(101)의 일단은 메모리 셀들(110)의 일단에 연결될 수 있다. 예를 들어, 제 1 스위치(SW1)는 제 1 메모리 셀(R1)의 일단에 연결되고, ..., 제 m 스위치(SWm)는 제 m 메모리 셀(Rm)의 일단에 연결될 수 있다. 여기서, m은 1이상의 자연수이다. 스위치들(101)의 타단은 입력 신호(b1, b2, b3, ..., bm)에 연결될 수 있다.
한편, 시작 신호(START)는 전압 제어 지연 라인(VCDL)(130) 및 시간-디지털 컨버터(TDC)(140)에도 동시에 입력될 수 있다. 또는 시작 신호(START)와 동기화되는 신호들이 전압 제어 지연 라인(VCDL)(130) 및 시간-디지털 컨버터(TDC)(140)에 입력될 수 있다.
입력 신호는 모든 메모리 셀들(110)에 항상 인가되는 것은 아니고, 입력 신호의 값(입력 전압 값)에 따라 일부 메모리 셀에는 입력 신호가 인가되지 않을 수도 있다. 이때 인가되지 않는 입력 신호란, 입력 전압이 0인 경우를 의미할 수 있으나, 이에 제한되지 않고 특정 전압 값일 수도 있다.
입력 신호들은 일련의 바이너리 값들로 구성되는 입력 비트 시퀀스의 개별 비트 값에 대응할 수 있다. 구체적으로, 인-메모리 프로세싱 디바이스(100)에서 복수의 로우 라인들 각각은 입력 비트 시퀀스의 각 비트 위치에 대응할 수 있다. 어느 비트 위치의 비트 값이 1이면, 해당 비트 위치에 대응하는 로우 라인에는 비트 값 1에 대응하는 전압 값을 갖는 입력 신호가 인가될 수 있다. 이와 달리, 어느 비트 위치의 비트 값이 0이면, 해당 비트 위치에 대응하는 로우 라인에는 비트 값 0에 대응하는 전압 값(예를 들어, 0V 전압)의 입력 신호가 인가될 수 있다.
메모리 셀들(110) 각각의 저항 값은 입력 비트 시퀀스의 각 비트에 곱해지는 비트 값(예를 들어, 웨이트 또는 시냅틱 웨이트)을 가질 수 있다. 메모리 셀들(110)은 가변저항을 갖는 저항성 메모리 소자로 구현될 수 있으므로, 메모리 셀들(110) 중 비트 값 1에 대응하는 메모리 셀은 제 1 저항 값을 갖고, 비트 값 0에 대응하는 메모리 셀은 제 2 저항 값을 가질 수 있다. 또는, 이에 제한되지 않고, 메모리 셀들(110)은 스위칭 소자를 이용하여 서로 다른 저항 값들을 갖는 복수의 저항기들 중에서 해당 비트 값에 대응되는 저항기가 선택되도록 스위칭되는 회로 구성으로 구현될 수도 있다.
한편, 본 실시예에서는 비트 값이 1 또는 0인 경우를 가정하였으나, 이에 제한되지 않고 비트 값은 1 또는 -1이거나, 또는 다른 바이너리 비트 값들이거나 터너리(ternary) 비트 값들 등일 수 있다.
저항(R)은 메모리 셀들(110)이 연결되어 있는 컬럼 라인(120)에 연결되고, 저항(R)에는 컬럼 라인(120)에 흐르는 컬럼 전류의 전류 합(Io)에 대응하는 전압(Vo)이 인가될 수 있다. 따라서, 인-메모리 프로세싱 디바이스(100)에서 저항(R)은 해당 컬럼 라인(120)의 전류 합(Io)에 대응하는 샘플링 전압(Vo)(sampling voltage)을 샘플링하는 샘플링 회로를 구성할 수 있다.
샘플링 전압(Vo)은 저항(R)에 연결된 컬럼 라인(120)의 전류 합(Io)에 대응하는 전압으로서, 메모리 셀들(110)의 저항 값들 및 인가된 입력 신호들 간의 MAC 연산 결과에 대응하는 값일 수 있다.
이 때, 샘플링 전압(VO)의 값은 메모리 셀들(110)의 저항 값과 샘플링 저항(R)의 저항 값의 합성 저항에 기초하여 결정될 수 있다. 예를 들면, 샘플링 저항(R)은 각각의 컬럼 라인(120)에 직렬 연결될 수 있고, 샘플링 저항(R)에 인가되는 샘플링 전압(Vo)의 값은, 컬럼 라인(120)에 연결된 메모리 셀들의 저항 값과 샘플링 저항(R)의 값의 비율에 따라 결정될 수 있다.
전압 제어 지연 라인(Voltage Controlled Delay Line; VCDL)(130) 또는 전압 제어 지연 회로(Voltage Controlled Delay Circuit)는 전파 지연(propagation delay) 특성을 이용한 논리 회로로서, 시작 신호(START)를 입력받고서 소정의 지연 시간이 지연된 이후에 종료 신호(STOP)를 출력할 수 있다.
샘플링 전압(Vo)은 전압 제어 지연 라인(VCDL)(130)으로 입력될 수 있다. 전압 제어 지연 라인(VCDL)(130)은 샘플링 전압(Vo)의 전압값의 크기에 기초하여 지연 시간의 길이를 제어할 수 있다. 예를 들어, 샘플링 전압(Vo)에 비례하여 지연 시간의 길이가 결정될 수 있다.
전압 제어 지연 라인(VCDL)(130)은 각각의 메모리 셀들(110)을 포함하는 컬럼 라인(120)에 연결될 수 있다. 전압 제어 지연 라인(VCDL)(130)은 각 컬럼 라인(120)의 샘플링 회로에 연결될 수 있다. 이로써, 전압 제어 지연 라인(VCDL)(130)은 샘플링 회로에 인가된 샘플링 전압(Vo)을 입력받을 수 있다. 즉, 샘플링 저항은 MAC 연산 결과에 대응되는 샘플링 전압(Vo)을 샘플링하고, 샘플링 저항에 연결된 전압 제어 지연 라인(VCDL)(130)에는 샘플링 전압(Vo)이 인가될 수 있다. 예를 들면, 전압 제어 지연 라인(VCDL)(130)은 샘플링 저항(R)에 병렬 연결될 수 있고, 샘플링 전압(Vo)을 그대로 수신할 수 있다.
전압 제어 지연 라인(VCDL)(130)에 대해서는, 도 6 내지 7을 통해서 더 자세히 후술하기로 한다.
시간-디지털 컨버터(TDC)(140)는 시작 신호를 수신하면, 카운터를 리셋하고, 펄스의 개수에 대한 카운팅을 재시작할 수 있다.
이후, 시간-디지털 컨버터(TDC)(140)는 전압 제어 지연 라인(VCDL)(130)로부터 종료 신호(STOP)를 수신한 경우, 종료 신호(STOP)가 수신된 시점에서 카운팅 값(Tout)을 디지털 값으로 출력한다.
한편, 도 4에 도시된 메모리 셀들(110), 저항(R), 전압 제어 지연 라인(VCDL)(130) 및 시간-디지털 컨버터(TDC)(140)는 인-메모리 프로세싱 디바이스(100) 내 메모리 셀 어레이 상의 하나의 출력 라인(즉, 하나의 컬럼 라인)에 대응할 수 있다. 다만, 앞서 설명된 바와 같이, 메모리 셀 어레이에는 복수의 출력 라인들(즉, 복수의 컬럼 라인들)이 구비될 수 있다.
도 5는 일 실시예에 따른 인-메모리 프로세싱 디바이스를 설명하기 위한 도면이다.
앞서 도 4에서는 인-메모리 프로세싱 디바이스(50) 내 복수의 입력 라인들(로우 라인들) 및 하나의 출력 라인(컬럼 라인(120)에 대해 설명되었으나, 도 5에서는 복수의 입력 라인들(로우 라인들) 및 복수의 출력 라인들(컬럼 라인들)을 포함하는 메모리 셀 어레이(590)를 구비한 인-메모리 프로세싱 디바이스(50)에 대해 설명하도록 한다.
인-메모리 프로세싱 디바이스(50) 내 메모리 셀 어레이(590)는 개별적으로 입력 신호를 수신 가능한 복수의 입력 라인들(로우 라인들) 및 개별적으로 출력 신호를 출력하는 복수의 출력 라인들(컬럼 라인들)을 포함할 수 있다. 입력 라인들(로우 라인들) 각각은 출력 라인들(컬럼 라인들)에 교차할 수 있다. 도 4에서는 비록, 입력 라인(로우 라인) 및 출력 라인(컬럼 라인)이 서로에 대해 수직으로 교차하는 것으로 도시되었으나, 이에 제한되는 것은 아니다.
입력 라인들(로우 라인들) 각각에는 입력 신호(b1, b2, b3, b4, ..., bj, ..., bm), 및 시작 신호(START)에 의해 입력 신호의 인가를 스위칭하는 스위치가 연결되어 있다. 입력 신호들(b1, b2, b3, b4, ..., bj, ..., bm)은 바이너리 값을 나타내는 입력 전압(또는 입력 전류)에 해당할 수 있으나, 이에 제한되지 않는다. 예를 들어, 비트 값 1을 지시하는 입력 신호는 임의의 전압을 나타낼 수 있고, 비트 값 0을 지시하는 입력 신호는 플로팅 전압(floating voltage)을 나타낼 수 있다.
입력 라인들(로우 라인들)과 출력 라인들(컬럼 라인들)이 교차하는 위치들 각각에는 메모리 셀들(510)이 구비되어 있다.
메모리 셀들(510) 각각은 입력 라인들(로우 라인들) 중 해당 메모리 셀이 배치된 입력 라인(로우 라인)을 통해 입력 신호(입력 전압)을 수신하도록 구성될 수 있다. 예를 들어, 제 j 입력 라인(591)을 따라 배치된 메모리 셀들은 제 j 입력 신호(bj)를 시작 신호(START)에 응답하여 수신하도록 구성될 수 있다.
일 실시예에 따르면, 인-메모리 프로세싱 디바이스(50)는 메모리 셀 어레이에 연결되는 R/W 드라이버(Read/Write Drivers)(미도시)를 포함할 수 있다. R/W 드라이버는 메모리 셀 어레이(590)에 연결된 스위치의 동작을 제어함으로써, 입력 신호(b1, b2, b3, ..., bm)의 입력을 제어할 수 있다.
또, R/W 드라이버는 전압 제어 지연 라인(VCDL)(540) 및 시간-디지털 컨버터(TDC)(550)에 시작 신호(START)를 입력할 수 있다. 시작 신호(START)가 전압 제어 지연 라인(VCDL)(540)에 입력되는 시점과, 시작 신호(START)가 시간-디지털 컨버터(TDC)(550)에 입력되는 시점은 동기화되어 일치할 수 있다.
이 때 도 5에 도시된 바와 같이, 입력 신호(b1, b2, b3, ..., bm)가 메모리 셀 어레이(590)에 입력되는 시점과, 시작 신호(START)가 전압 제어 지연 라인(VCDL)(540) 및 시간-디지털 컨버터(TDC)(550)에 입력되는 시점은 동기화되어 일치할 수 있다.
또는, 입력 신호(b1, b2, b3, ..., bm)가 메모리 셀 어레이(590)에 입력되는 시점과, 시작 신호(START)가 전압 제어 지연 라인(VCDL)(540) 및 시간-디지털 컨버터(TDC)(550)에 입력되는 시점은 상이할 수 있다. 예를 들면, 입력 신호가 메모리 셀 어레이(590)에 입력되는 시점이, 시작 신호(START)가 전압 제어 지연 라인(VCDL)(540) 및 시간-디지털 컨버터(TDC)(550)에 입력되는 시점보다 빠를 수 있다.
예를 들면, 메모리 셀 어레이(590)의 컬럼 라인의 말단과 전압 제어 지연 라인(VCDL)(540) 사이의 일 지점에는 통전 상태를 제어하는 스위치(미도시)가 배치될 수도 있다. 이 때, R/W 드라이버는 스위치의 동작을 제어함으로써, 전압 제어 지연 라인(VCDL)(540)에 샘플링 전압(Vn)이 입력되는 시점을 제어할 수 있다. 이에 따라 샘플링 전압(Vn)이 전압 제어 지연 라인(VCDL)(540)에 입력되는 시점과, 시작 신호(START)가 전압 제어 지연 라인(VCDL)(540)에 입력되는 시점은 상이할 수 있다.
인-메모리 프로세싱 디바이스(50)는 출력 라인들(컬럼 라인들) 각각의 일단에 연결된 저항들(520) 및 전압 제어 지연 라인들(VCDL)(540)과, 시간-디지털 컨버터(TDC)(550) 및 출력부(560)를 포함할 수 있다.
저항들(520)은 출력 라인(컬럼 라인)마다 개별적으로 배치되고, 어느 출력 라인(컬럼 라인)에 연결된 저항은 해당 출력 라인(컬럼 라인)의 전류 합에 대응하는 샘플링 전압(Vn)을 충전하는 샘플링 회로를 구성한다.
한편, 출력 라인들(컬럼 라인들)에 연결된 저항들(520)은 샘플링 회로를 구성하고, 서로 동일한 저항값을 가질 수 있다. 따라서, 저항들(520) 간의 시상수의 차이는 출력 라인들(컬럼 라인들) 각각의 합성 저항 값의 차이, 즉 출력 라인들(컬럼 라인들) 각각의 전류 합의 차이에 의존할 수 있다.
전압 제어 지연 라인들(VCDL)(540)은 시작 신호(START)를 수신할 수 있다. 전압 제어 지연 라인들(VCDL)(540)은 출력 라인(컬럼 라인)마다 개별적으로 배치될 수 있다. 전압 제어 지연 라인들(VCDL)(540)은 해당 출력 라인(컬럼 라인)의 샘플링 전압(Vn)의 크기에 기초하여 지연 시간을 결정할 수 있다. 전압 제어 지연 라인들(VCDL)(540)은 시작 신호(START)를 수신한 시점보다 지연 시간만큼 지연된 시점에 종료 신호(STOP)를 시간-디지털 컨버터(TDC)(550)로 출력한다.
시간-디지털 컨버터(TDC)(550)는 시작 신호(START)를 수신하고, 카운터를 리셋한 후 펄스를 카운팅할 수 있다. 시간-디지털 컨버터(TDC)(550)는 종료 신호가 출력된 시점에서 시간-디지털 컨버팅을 수행한다.
구체적으로, 시간-디지털 컨버터(TDC)(550)는 출력 라인(컬럼 라인)마다 연결된 전압 제어 지연 라인들(VCDL)(540) 각각으로부터, 종료 신호(STOP)를 수신할 수 있다. 시간-디지털 컨버터(TDC)(550)는 종료 신호(STOP)가 수신된 시점에서의 카운팅 펄스의 카운팅 값을 래치(latch)한다.
예를 들어, 제 i 출력 라인(제 i 컬럼 라인)(592)의 전압 제어 지연 라인(VCDL)(540)에서 지연 시간 이후 종료 신호(STOPi)를 시간-디지털 컨버터(TDC)(550)로 출력한다. 시간-디지털 컨버터(TDC)(550)는 종료 신호(STOPi)가 수신되면, 종료 신호(STOP)가 수신된 시점에서의 카운팅 펄스의 카운팅 값(Tout, i)을 래치한다.
출력부(560)는 시간-디지털 컨버터(TDC)(550)로부터 출력된 어느 출력 라인(컬럼 라인)에 대한 카운팅 값을 디지털 값(OUT)으로 출력할 수 있다. 여기서, 출력된 디지털 값(OUT)은 샘플링 전압(Vn)으로부터 유래된 값으로서, 결국 해당 출력 라인(컬럼 라인)의 MAC 연산 결과에 대응한다.
도 6은 일 실시예에 따른 인-메모리 프로세싱 디바이스에서 전압 제어 지연 라인(VCDL)(600)의 동작을 설명하기 위한 도면이다.
도 6을 참조하면, 전압 제어 지연 라인(VCDL)(600)은 샘플링 전압(Vn)에 따라 결정된 지연 시간만큼 시작 신호(START) 대비 지연된 종료 신호(STOPn)를 발생시킨다. 예를 들면, 전압 제어 지연 라인(VCDL)(600)은 제1 시작 시점(Tstart1)에서 시작 신호(START)의 입력 시점 이후, 제1 샘플링 전압(V1)에 의해 결정된 제1 지연 시간(Tdelay1)만큼 지연된 제1 종료 시점(Tstart2)에서 종료 신호(STOPn)를 출력할 수 있다.
전압 제어 지연 라인(VCDL)(600)은 제2 시작 시점(Tstart1)에서 시작 신호(START)의 입력 시점 이후, 제2 샘플링 전압(V2)에 의해 결정된 제2 지연 시간(Tdelay2)만큼 지연된 제2 종료 시점(Tstart2)에서 종료 신호(STOPn)를 출력할 수 있다.
이 때, 제2 샘플링 전압(V2)보다 크기가 큰 제1 샘플링 전압(V1)이 입력됨에 따라, 제2 지연 시간(Tdelay2)보다 제1 지연 시간(Tdelay1)이 더 길게 설정될 수 있다.
전압 제어 지연 라인(VCDL)(600)의 설계에 따라 지연 시간은 조절될 수 있다. 전압 제어 지연 라인(VCDL)(600)의 지연 시간은 인-메모리 프로세싱 디바이스의 회로 구성을 고려하여 설정될 수 있고, 실험적으로 최적의 값으로 선택될 수 있다.
도 7은 실시예들에 따른 인-메모리 프로세싱 디바이스에서 전압 제어 지연 라인의 구성을 설명하기 위한 도면이다.
도 7을 참고하면, 전압 제어 지연 라인(Voltage Controlled Delay Line; VCDL)(700) 또는 전압 제어 지연 회로(Voltage Controlled Delay Circuit)는 샘플링 전압(Vn)을 입력받을 수 있다.
전압 제어 지연 라인(VCDL)(700)은 샘플링 전압(Vn)의 전압값의 크기에 기초하여 시작 신호(START)가 입력된 후 종료 신호(STOPn)가 출력될 때까지 소요되는 지연 시간의 길이를 제어할 수 있다. 예를 들면, 샘플링 전압(Vn)이 증가할수록, 지연 시간이 증가될 수 있다. 또는 전압 제어 지연 라인의 설계에 따라, 샘플링 전압(Vn)이 증가할수록 지연 시간이 감소할 수도 있다.
일반적인(conventional) 인버터도 입력 신호를 수신한 후 출력 신호를 생성하기 지연 시간을 가질 수 있다. 그러나, 일반적인 인버터의 지연 시간은 인버터에 인가되는 전압과 비선형 관계에 있으므로, 지연 시간의 정밀한 제어가 어렵다. 반면, 전압 제어 지연 라인(VCDL)(700)을 이용하면 샘플링 전압과 지연 시간의 관계가 선형적인 경향을 가지므로 지연 시간을 제어하는 것이 용이하다.
도 7에 도시된 논리 회로는, 커런트-스타브드(current-starved) 타입의 전압 제어 지연 라인(VCDL)으로서, 전압 제어 지연 라인(VCDL)의 일 실시예이다.
전압 제어 지연 라인(VCDL)(700)은 바이어스 회로(710), 적어도 하나의 지연 엘리먼트 회로(720, 730) 및 버퍼 회로(740) 등을 포함할 수 있다. 설계에 따라, 전압 제어 지연 라인(VCDL)(700)은 지연 엘리먼트 회로에 평행하게 연결되는 다른 인버터 또는 지연 엘리먼트 회로에 연결되는 대칭 부하(symmetric load)를 더 포함할 수 있다.
바이어스 회로(710)는 메모리 셀 어레이의 각 컬럼 라인과 연결된 트랜지스터(712)를 통해 샘플링 전압(Vn)을 지연 엘리먼트 회로(720)의 트랜지스터(722)에 인가할 수 있다. 설계에 따라, 트랜지스터(712)과 트랜지스터(714)는 전류 미러 형태로 배치될 수 있다.
지연 엘리먼트 회로(720)는 인버터(724) 및 트랜지스터(722, 726)를 포함할 수 있다. 트랜지스터(722, 726)는 바이어스 회로(710)로부터 샘플링 전압(Vn)을 입력받을 수 있다. 인버터(724)는 시작 신호(START)를 입력받을 수 있다.
트랜지스터(722)는 전류 싱크(current sink)로 작용하고, 트랜지스터(726)는 소스(current source)로 작용하여, 인버터(724)의 피크 전류를 제한할 수 있다. 다시 말해, 인버터(724)는 커런트 스타브드(current-starved)될 수 있다.
인버터(724)의 출력 신호는 버퍼 회로(740)에 입력될 수 있고, 버퍼 회로(740)는 종료 신호(STOPn)를 출력할 수 있다.
실시예들에 따라, 지연 엘리먼트 회로(720, 730)는 복수로 제공될 수 있고, 서로 다단(cascade) 배치될 수 있다. 바이어스 회로(710)의 트랜지스터(712, 714)와, 지연 엘리먼트 회로(720)의 트랜지스터(722, 726) 간 증폭 비율은 상이하게 설계될 수 있다.
전압 제어 지연 라인(VCDL)(700)의 설계에 따라 지연 시간은 조절될 수 있다. 전압 제어 지연 라인(VCDL)(700)의 지연 시간은 인-메모리 프로세싱 디바이스의 회로 구성을 고려하여 설정될 수 있고, 실험적으로 최적의 값으로 선택될 수 있다. 예를 들면, 전압 제어 지연 라인(VCDL)(700) 내 캐스케이드(cascade) 배치되는 지연 엘리먼트 회로(720, 730)의 단수 및 트랜지스터 간 증폭비 등의 설계 변경에 따라, 동일한 전압값에 의해 발생하는 지연 시간의 길이는 조절될 수 있다.
실시예들에 따르면, 전압 제어 지연 라인(VCDL)은 전파 지연(propagation delay) 특성을 이용하는 다른 형태의 회로들을 포함할 수 있다. 예를 들면, 전압 제어 지연 라인(VCDL)은 션트 커패시터(Shunt capacitor)를 포함하는 논리 회로를 포함할 수 있다. 미도시 하였으나, 션트 커패시터를 이용하는 전압 제어 지연 라인(VCDL)은 용량성 부하 인버터(capacitive loaded inverter) 및 선형 저항으로 작용하여 부하 커패시터의 충전과 방전을 제어하는 트랜지스터들을 포함할 수 있다.
전압 제어 지연 라인(VCDL)(700)은 간단한 논리 회로로서, 비교기 등을 필요로 하지 않는다. 따라서 비교기에서 소모하는 전력 및 차지하는 면적을 최소화할 수 있는 장점이 있다.
도 8은 일 실시예에 따라 인-메모리 프로세싱 디바이스에서 수행되는 시간-디지털 컨버팅을 설명하기 위한 도면이다.
도 8을 참고하면, 시간-디지털 컨버터(TDC)(800)는 오실레이터(810), 카운터(820) 및 플립플롭(832, 834, 836)을 포함할 수 있다.
시간-디지털 컨버터(TDC)(800)는 시작 신호(START)를 수신할 수 있다. 시간-디지털 컨버터(TDC)(800)가 시작 신호(START)를 수신함에 따라 오실레이터(810)는 카운팅 펄스를 생성할 수 있고, 카운터(820)는 리셋된 후 오실레이터(810)가 생성하는 카운팅 펄스에 대한 카운팅을 재시작할 수 있다. 이에 따라 메모리 셀 어레이에 시작 신호(START)가 입력되는 시점에 동기화하여, 카운터(820)는 카운팅 펄스에 대한 카운팅을 시작할 수 있다.
시간-디지털 컨버터(TDC)(800)는 전압 제어 지연 라인(VCDL)으로부터 종료 신호(STOPn)를 수신할 수 있다. 플립플롭들(832, 834, 836)은 전압 제어 지연 라인(VCDL) 각각에 연결될 수 있다.
플립플롭들(832, 834, 836)은 카운터(820)로부터 수신된 카운팅 펄스에 의해 활성화(enable)될 수 있다.
플립플롭들(832, 834, 836) 각각은 카운팅 펄스가 인가되고 있는 동안 전압 제어 지연 라인(VCDL) 각각으로부터 종료 신호(STOPn)가 수신되면 종료 신호(STOPn)가 수신된 시점에서의 현재 카운팅 값(Tout_n)을 래치(latch)한다.
이와 같이, 시간-디지털 컨버터(TDC)(800) 내 구비된 플립플롭들(832, 834, 836) 각각은 종료 신호(STOPn)의 수신 시점에 대응하는 카운팅 값(Tout_n)을 개별적으로 출력함으로써, 메모리 셀 어레이의 컬럼 라인들(출력 라인들) 각각에 대한 시간-디지털 컨버팅을 수행할 수 있다.
도 9는 일 실시예에 따른 인-메모리 프로세싱 디바이스에 시작 신호가 입력됨에 따라 각 구성 요소들에서 출력되는 신호들에 관한 도면이다.
도 9(a)는 인-메모리 프로세싱 디바이스에 인가되는 시작 신호(START)에 관한 도면이다. 시작 신호(START)는 메모리 셀 어레이의 MAC 연산을 개시할 수 있다. 또 시작 신호(START)는 전압 제어 지연 라인(VCDL)에 입력될 수 있다.
도 9(b)는 샘플링 전압(Vn)의 신호에 관한 도면이다. 샘플링 전압(Vn)은 시작 신호(START)에 의해 메모리 셀 어레이에 입력 신호가 입력된 후, MAC 연산을 거쳐 각 컬럼 라인의 말단에 연결되는 샘플링 저항에 인가될 수 있다. 또 샘플링 전압(Vn)의 신호는 전압 제어 지연 라인(VCDL)에 입력될 수 있다.
예를 들면, MAC 연산 결과에 따라 제2 시작 신호의 입력 시점(Tstart2) 이후 생성된 제2 샘플링 전압(V2)의 크기는 제1 시작 신호의 입력 시점(Tstart1) 이후 생성된 제1 샘플링 전압(V1)의 크기보다 작을 수 있다.
도 9(c)는 종료 신호(STOPn)에 관한 도면이다. 전압 제어 지연 라인(VCDL)에 시작 신호(START)가 입력된 시점(Tstart1, Tstart2)으로부터 지연 시간(Tdelay1, Tdelay2)만큼 지연된 이후의 시점(Tstop1, Tstop2)에서 종료 신호(STOPn)가 출력될 수 있다. 이 때, 지연 시간은 샘플링 전압의 크기에 기초하여 결정될 수 있다.
예를 들면, 제2 샘플링 전압(V2)에 따라 지연된 제2 지연 시간(Tdelay2)은 제1 샘플링 전압(V1)에 따라 지연된 제1 지연 시간(Tdelay1)보다 작을 수 있다.
도 9(d)는 시간-디지털 컨버터(TDC)의 오실레이터가 생성하는 카운팅 펄스에 관한 도면이다. 오실레이터는 시작 신호(START)가 인가되면, 카운팅 펄스를 생성할 수 있다.
도 9(e)는 시간-디지털 컨버터(TDC)의 카운터가 카운팅 펄스에 대한 카운팅을 기록하는 것에 관한 도면이다. 카운터는 시작 신호가 인가되면, 카운팅 값을 리셋하고, 카운팅을 재시작할 수 있다.
도 9(f)는 시간-디지털 컨버터(TDC)의 플립플롭의 출력값에 관한 도면이다. 플립플롭은 각각의 전압 제어 지연 라인(VCDL)으로부터 종료 신호(STOPn)를 수신한 시점의 카운팅 값(OUTn)을 출력할 수 있다. 예를 들면, 제1 시작 신호에 따른 MAC 연산 결과 플립플롭은 0100을 출력할 수 있고, 제2 시작 신호에 따른 MAC 연산 결과 플립플롭은 0011을 출력할 수 있다.
인-메모리 프로세싱 디바이스 내의 프로세싱 회로는 상술한 바와 같은 시간-디지털 컨버팅을 통해, 각 컬럼 라인(출력 라인) 별 MAC 연산을 수행할 수 있다. 본 실시예들에 따른 인-메모리 프로세싱 디바이스는 메모리와 연산부가 분리된 폰 노이만(Von Neumann) 구조와 달리 데이터 전달의 속도 및 전력소모가 개선될 수 있다. 또한, 인-메모리 프로세싱 디바이스는 개별 컬럼 라인들에 ADC들(analog-to-digital converters)를 구비할 필요가 없으므로, ADC들이 구비된 아키텍쳐에 비해 소모 전력 및 회로에서 차지하는 면적이 감소될 수 있다.
한편, 설명된 실시예들에서는, 입력 신호의 전압 값 및 메모리 셀의 저항 값이 온(ON)에 해당하는 값(또는 논리 1) 및 오프(OFF)에 해당하는 값(또는 논리 0)과 같이 바이너리 값을 가지는 것을 가정하여 설명하였으나, 본 실시예들이 이에 제한하는 것은 아니다. 입력 신호의 전압 값 및 메모리 셀의 저항 값은 다중 상태(multi-state)로 구별되는 값을 가질 수도 있다. 예를 들어, 한 입력 라인(로우 라인)에 2비트의 값이 입력되는 경우, "00"에 대해서는 입력 신호(입력 전압)가 플로팅(floating)되고, "01"에 대해서는 제 1 전압 값, "10"에 대해서는 제 1 전압 값보다 큰 제 2 전압 값, "11"에 대해서는 제 2 전압 값보다 큰 제 3 전압 값이 입력 신호로서 할당될 수 있다. 또한, 메모리 셀이 2비트의 값을 지시하는 경우, 메모리 셀에 "00"에 대해서는 제 1 저항 값, "01"에 대해서는 제 1 저항 값보다 큰 제 2 저항 값, "10"에 대해서는 제 3 저항 값", "11"에 대해서는 제 4 저항 값이 할당될 수도 있다. 각 입력 라인(로우 라인)에 수신되는 입력 신호 및 각 메모리 셀이 2비트 다중 상태를 지시하는 것으로 제한되는 것은 아니고, 그 이상의 비트에 대응하는 다중 상태를 지시할 수도 있고, 바이너리 체계 외 다른 체계에 따른 값이 할당될 수도 있다.
도 10은 일 실시예에 따라 인-메모리 프로세싱을 수행하는 방법의 흐름도이다. 도 10을 참고하면, 인-메모리 프로세싱의 수행 방법은 앞서 설명된 도면들에서 설명된 실시예들에 관련되므로, 이하 생략된 내용이라 할지라도, 앞서 도면들에서 설명된 내용들은 도 10의 방법에도 적용될 수 있다.
1001 단계에서, 시작 신호(START)의 인가에 따라, 메모리 셀 어레이의 각각의 로우 라인을 통해 복수의 메모리 셀들에 입력 신호가 인가된다. 또한, 시작 신호(START)는 전압 제어 지연 라인(VCDL)에 입력될 수 있다. 또한, 시작 신호(START)의 인가 시, 시간-디지털 컨버터(TDC)의 카운터는 리셋될 수 있다.
1002 단계에서, 메모리 셀 어레이의 각각의 컬럼 라인을 통해 흐르는 컬럼 전류의 전류 합에 대응하는 샘플링 전압이 각각의 컬럼 라인에 연결된 전압 제어 지연 라인(VCDL)에 인가될 수 있다.
각각의 컬럼 라인에는 샘플링 저항이 연결되어 컬럼 전류의 샘플링 전압이 인가될 수 있다. 즉, 샘플링 저항은 MAC 연산 결과에 대응되는 샘플링 전압을 샘플링하고, 샘플링 저항에 연결된 전압 제어 지연 라인(VCDL)에는 샘플링 전압이 인가될 수 있다.
1003 단계에서, 전압 제어 지연 회로에 시작 신호(START)의 입력 후, 샘플링 전압의 크기에 기초하여 결정되는 지연 시간만큼 지연된 종료 신호(STOPn)가 출력될 수 있다.
1004 단계에서, 시간-디지털 컨버터(TDC)는 종료 신호(STOPn)가 생성된 시점에서 카운팅 펄스의 현재 카운팅 값을 출력하는 시간-디지털 컨버팅을 수행한다. 이로써, 입력 신호의 MAC 연산 결과에 대응되는 카운팅 값이 출력될 수 있다.
도 11는 일 실시예에 따른 컴퓨팅 장치를 나타내는 블록도이다.
도 11을 참고하면, 컴퓨팅 장치(1100)는 뉴럴 네트워크를 기초로 입력 데이터를 실시간으로 분석하여 유효한 정보를 추출하고, 추출된 정보를 기초로 상황 판단을 하거나 또는 컴퓨팅 장치(1100)가 탑재되는 전자 디바이스의 구성들을 제어할 수 있다. 예컨대 컴퓨팅 장치(1100)는 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 로봇 장치, 스마트 TV, 스마트폰, 의료 디바이스, 모바일 디바이스, 영상 표시 디바이스, 계측 디바이스, IoT 디바이스 등에 적용될 수 있으며, 이 외에도 다양한 종류의 전자 디바이스들 중 적어도 하나에 탑재될 수 있다.
컴퓨팅 장치(1100)는 호스트 프로세서(1110), RAM(1120), 인-메모리 프로세싱 디바이스(1130), 메모리 디바이스(1140), 센서 모듈(1150) 및 통신 모듈(1160)을 포함할 수 있다. 컴퓨팅 장치(1100)는 입출력 모듈, 보안 모듈, 전력 제어 장치 등을 더 포함할 수 있다. 컴퓨팅 장치(1100)의 하드웨어 구성들 중 일부는 적어도 하나의 반도체 칩에 탑재될 수 있다. 인-메모리 프로세싱 디바이스(1130)는 앞서 도면들에서 설명된 인-메모리 프로세싱 디바이스를 포함하는 장치로서, 뉴럴 네트워크 전용 하드웨어 가속기 자체 또는 이를 포함하는 뉴럴 네트워크 장치에 해당할 수 있다.
호스트 프로세서(1110)는 컴퓨팅 장치(1100)의 전반적인 동작을 제어한다. 호스트 프로세서(1110)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(multi-core)을 포함할 수 있다. 호스트 프로세서(1110)는 메모리 디바이스(1140)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 호스트 프로세서(1110)는 메모리 디바이스(1140)에 저장된 프로그램들을 실행함으로써, 인-메모리 프로세싱 디바이스(1130)의 기능을 제어할 수 있다. 호스트 프로세서(1110)는 CPU, GPU, AP 등으로 구현될 수 있다.
RAM(1120)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대 메모리 디바이스(1140)에 저장된 프로그램들 및/또는 데이터는 호스트 프로세서(1110)의 제어 또는 부팅 코드에 따라 RAM(1120)에 일시적으로 저장될 수 있다. RAM(1120)은 DRAM(Dynamic RAM) 또는 SRAM(Static RAM) 등의 메모리로 구현될 수 있다.
인-메모리 프로세싱 디바이스(1130)는 앞서 도면들에서 설명된 뉴로모픽 연산, 예를 들어 MAC 연산을 수행하고, MAC 연산 결과를 출력할 수 있다. 다만, 인-메모리 프로세싱 디바이스(1130)는 이 밖에도 다양한 인-메모리 컴퓨팅을 수행할 수 있다.
메모리 디바이스(1140)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 실시예에 있어서, 메모리 디바이스(1140)는 인-메모리 프로세싱 디바이스(1130)의 연산 수행 과정에 필요한 데이터들(예를 들어, 입력 신호 데이터, 웨이트 데이터 등)과 연산 결과 데이터(예를 들어, MAC 연산 결과 등)을 저장할 수 있다.
메모리 디바이스(1140)는 DRAM일 수 있으나, 이에 한정되는 것은 아니다. 메모리 디바이스(1140)는 휘발성 메모리 또는 불휘발성 메모리 중 적어도 하나를 포함할 수 있다. 불휘발성 메모리는 ROM, PROM, EPROM, EEPROM, 플래시 메모리, PRAM, MRAM, RRAM, FRAM 등을 포함한다. 휘발성 메모리는 DRAM, SRAM, SDRAM, PRAM, MRAM, RRAM, FeRAM 등을 포함한다. 실시예에 있어서, 메모리 디바이스(1140)는 HDD, SSD, CF, SD, Micro-SD, Mini-SD, xD 또는 Memory Stick 중 적어도 하나를 포함할 수 있다.
센서 모듈(1150)은 컴퓨팅 장치(1100)가 탑재되는 전자 장치 주변의 정보를 수집할 수 있다. 센서 모듈(1150)은 전자 장치의 외부로부터 신호(예컨대 영상 신호, 음성 신호, 자기 신호, 생체 신호, 터치 신호 등)를 센싱 또는 수신하고, 센싱 또는 수신된 신호를 데이터로 변환할 수 있다. 이를 위해, 센서 모듈(1150)은 센싱 장치, 예컨대 마이크, 촬상 장치, 이미지 센서, 라이더(LIDAR; light detection and ranging) 센서, 초음파 센서, 적외선 센서, 바이오 센서, 및 터치 센서 등 다양한 종류의 센싱 장치 중 적어도 하나를 포함할 수 있다.
센서 모듈(1150)은 변환된 데이터를 인-메모리 프로세싱 디바이스(1130)에 입력 데이터로서 제공할 수도 있다. 예를 들어, 센서 모듈(1150)은 이미지 센서를 포함할 수 있으며, 전자 장치의 외부 환경을 촬영하여 비디오 스트림을 생성하고, 비디오 스트림의 연속하는 데이터 프레임을 인-메모리 프로세싱 디바이스(1130)에 입력 데이터로서 순서대로 제공할 수 있다. 그러나 이에 제한되는 것은 아니며 센서 모듈(1150)은 다양한 종류의 데이터를 인-메모리 프로세싱 디바이스(1130)에 제공할 수 있다.
통신 모듈(1160)은 외부 장치와 통신할 수 있는 다양한 유선 또는 무선 인터페이스를 구비할 수 있다. 예컨대 통신 모듈(1160)은 유선 근거리통신망(Local Area Network; LAN), Wi-fi(Wireless Fidelity)와 같은 무선 근거리 통신망(Wireless Local Area Network; WLAN), 블루투스(Bluetooth)와 같은 무선 개인 통신망(Wireless Personal Area Network; WPAN), 무선 USB(Wireless Universal Serial Bus), Zigbee, NFC(Near Field Communication), RFID(Radio-frequency identification), PLC(Power Line communication), 또는 3G(3rd Generation), 4G(4th Generation), LTE(Long Term Evolution), 5G(5th Generation) 등 이동 통신망(mobile cellular network)에 접속 가능한 통신 인터페이스 등을 포함할 수 있다.
도 12는 뉴럴 네트워크의 일 예를 설명하기 위한 도면이다.
도 12를 참조하면, 뉴럴 네트워크(1200)는 딥 뉴럴 네트워크(DNN, deep neural network)의 예시에 해당할 수 있다. 설명의 편의를 위해 뉴럴 네트워크(1200)가 2개의 히든 레이어들(hidden layers)을 포함하는 것으로 도시되었으나, 다양한 수의 히든 레이어들을 포함할 수 있다. 또한, 도 12에서 뉴럴 네트워크(1200)는 입력 데이터를 수신하기 위한 별도의 입력 레이어(input layer)(1210)를 포함하는 것으로 도시되었으나, 입력 데이터가 히든 레이어에 직접 입력될 수 있다.
뉴럴 네트워크(1200)에서 출력 레이어(output layer)를 제외한 레이어들의 인공 노드들은 출력 신호를 전송하기 위한 링크들을 통해 다음 레이어의 인공 노드들과 연결될 수 있다. 이들 링크를 통해 인공 노드에는 이전 레이어에 포함된 인공 노드들의 가중된 입력들(weighted inputs)에 관한 활성 함수(activation function)의 출력이 입력될 수 있다. 가중된 입력은 인공 노드의 입력(노드값)에 웨이트(weight)가 곱해진 것으로, 입력은 액손 값들에 해당하고, 웨이트는 시냅틱 웨이트들에 해당한다. 웨이트는 뉴럴 네트워크(1200)의 파라미터로 지칭될 수 있다. 활성 함수는 시그모이드(sigmoid), 하이퍼볼릭 탄젠트(hyperbolic tangent; tanh) 및 렐루(rectified linear unit; ReLU)를 포함할 수 있고, 활성 함수에 의해 뉴럴 네트워크(1200)에 비선형성이 형성될 수 있다.
딥러닝 알고리즘 구동을 위한 인-메모리 프로세싱(in-memory processing) 또는 인-메모리 컴퓨팅(in-memory computing)에 앞서 도면들에서 설명된 인-메모리 프로세싱 디바이스가 이용될 수 있다. 예를 들어, 뉴럴 네트워크(1200)의 노드(1221) 간에 전달되는 가중된 입력의 산출은 MAC 연산으로 구성될 수 있다. 이러한 뉴럴 네트워크(1200)에 포함된 임의의 한 노드(1221)의 출력은 아래 수학식 1과 같이 나타낼 수 있다.
Figure pat00001
수학식 1은 임의의 레이어에서 m개의 입력 값에 대한 i번째 노드(1221)의 출력 값 yi를 나타낼 수 있다. xj는 이전 레이어의 j번째 노드의 출력 값을 나타낼 수 있고, wj,i는 j번째 노드의 출력 값 및 현재 레이어의 i번째 노드(1221)에 적용되는 웨이트를 나타낼 수 있다. f()는 활성 함수를 나타낼 수 있다. 수학식 1에 나타난 바와 같이, 활성 함수에 대해, 입력값 xj 및 웨이트 wj,i의 곱셈 누적 결과가 사용될 수 있다. 다시 말해, 원하는 시점에 적절한 입력 값 xj 및 가중치 wj,i을 곱하고 더하는 연산(MAC 연산)이 반복될 수 있다. 이러한 용도 외에도, MAC 연산을 필요로 하는 다양한 응용분야가 있으며, 이를 위해 아날로그 영역에서 MAC 연산을 처리할 수 있는 뉴로모픽 장치가 사용될 수 있다.
인-메모리 프로세싱 디바이스의 복수의 메모리 셀들은, 복수의 노드들을 포함하는 하나 이상의 레이어로 구성되는 뉴럴 네트워크(1200)에서, 복수의 노드들을 연결하는 연결선의 연결 가중치에 대응하는 저항(resistance)을 가질 수 있다. 메모리 셀들이 배치된 입력 라인들(로우 라인들)을 따라 제공되는 입력 신호는, 노드 값 xj에 대응하는 값을 나타낼 수 있다. 따라서, 인-메모리 프로세싱 디바이스는, 뉴럴 네트워크(1200)의 실시에 요구되는 연산들 중 적어도 일부를 수행할 수 있다.
한편, 인-메모리 프로세싱 디바이스의 적용은 반드시 뉴로모픽 연산에만 한정되는 것은 아니고, 이 밖에도 아날로그 회로 특성을 사용한 복수 입력 데이터를 저전력으로 빠르게 처리해야 하는 연산에도 활용될 수 있다.
한편, 상술한 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 실시예들에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
본 실시예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 실시예가 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 권리 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 실시예에 포함된 것으로 해석되어야 할 것이다.

Claims (20)

  1. 인-메모리(in-memory) 프로세싱을 수행하는 장치에 있어서,
    입력 신호들이 각각의 로우(row) 라인을 통해 인가되는 경우 각각의 컬럼(column) 라인을 통해 흐르는 컬럼 전류의 전류 합(current sum)을 제공하는, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    상기 각각의 컬럼 라인의 상기 전류 합에 대응하는 샘플링 전압이 인가되고, 제1 시점에서 시작 신호의 입력 이후, 상기 샘플링 전압의 크기에 기초하여 결정되는 지연 시간만큼 지연된 제2 시점에서 종료 신호를 출력하는 전압 제어 지연 회로(Voltage Controlled Delay Circuit) 및
    상기 제2 시점에서 시간-디지털 컨버팅을 수행하는 시간-디지털 컨버터(TDC)를 포함하는, 장치.
  2. 제1 항에 있어서,
    상기 전압 제어 지연 회로는, 상기 샘플링 전압의 크기에 비례하여 상기 지연 시간을 결정하는
    장치.
  3. 제1 항에 있어서,
    상기 전압 제어 지연 회로는
    상기 샘플링 전압이 인가되는 트랜지스터 및 상기 시작 신호가 입력되는 인버터를 포함하는 커런트-스타브드(current-starved) 타입인,
    장치.
  4. 제1 항에 있어서,
    상기 전압 제어 지연 회로는
    상기 각각의 컬럼 라인에 연결되어 상기 샘플링 전압을 인가하는 바이어스, 상기 시작 신호가 입력되는 커런트-스타브드(current-starved) 지연 엘리먼트 및 상기 종료 신호를 출력하는 버퍼를 포함하는
    장치.
  5. 제1 항에 있어서,
    상기 장치는
    상기 각각의 컬럼 라인에 연결되어, 상기 전류 합에 대응하는 상기 샘플링 전압이 인가되는 샘플링 저항을 더 포함하는
    장치.
  6. 제5 항에 있어서,
    상기 샘플링 저항은 상기 각각의 컬럼 라인에 직렬 연결되고,
    상기 전압 제어 지연 회로는 상기 샘플링 저항에 병렬 연결되는
    장치.
  7. 제5 항에 있어서,
    상기 샘플링 전압의 값은
    상기 메모리 셀들의 저항 값 및 상기 샘플링 저항의 저항 값의 합성 저항에 기초하여 결정되는, 장치.
  8. 제1 항에 있어서,
    상기 장치는
    상기 제1 시점에 동기화된 제3 시점에 상기 입력 신호를 상기 메모리 셀 어레이에 인가하는 드라이버를 더 포함하는,
    장치.
  9. 제 1 항에 있어서,
    상기 시간-디지털 컨버터는
    상기 제1 시점에서 카운터를 리셋하고,
    상기 제2 시점에서 카운팅 값을 디지털 값으로 출력하는,
    장치.
  10. 제 9 항에 있어서,
    상기 시간-디지털 컨버터는
    상기 제1 시점에서 펄스를 생성하는 오실레이터 및 상기 펄스를 카운팅하는 카운터를 포함하는
    장치.
  11. 제 9 항에 있어서,
    상기 시간-디지털 컨버터는
    상기 제2 시점에서의 카운팅 값을 래치(latch)하는, 플립플롭들(flip-flops)을 포함하는, 장치.
  12. 컴퓨팅 장치에 있어서,
    호스트 프로세서;
    메모리 디바이스; 및
    인-메모리 프로세싱 디바이스를 포함하고,
    상기 인-메모리 프로세싱 디바이스는
    입력 신호들이 각각의 로우(row) 라인을 통해 인가되는 경우 각각의 컬럼(column) 라인을 통해 흐르는 컬럼 전류의 전류 합(current sum)을 제공하는, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    상기 각각의 컬럼 라인의 상기 전류 합에 대응하는 샘플링 전압이 인가되고, 제1 시점에서 시작 신호의 입력 이후, 상기 샘플링 전압의 크기에 기초하여 결정되는 지연 시간만큼 지연된 제2 시점에서 종료 신호를 출력하는 전압 제어 지연 회로(Voltage Controlled Delay Circuit) 및
    상기 제2 시점에서 시간-디지털 컨버팅을 수행하는 시간-디지털 컨버터(TDC)를 포함하는,
    컴퓨팅 장치.
  13. 제12 항에 있어서,
    상기 전압 제어 지연 회로는, 상기 샘플링 전압의 크기에 비례하여 상기 지연 시간을 결정하는
    컴퓨팅 장치.
  14. 제12 항에 있어서,
    상기 전압 제어 지연 회로는
    상기 샘플링 전압이 입력되는 트랜지스터 및 상기 시작 신호가 입력되는 인버터를 포함하는 커런트-스타브드(current-starved) 타입인,
    컴퓨팅 장치.
  15. 제12 항에 있어서,
    상기 전압 제어 지연 회로는
    상기 각각의 컬럼 라인에 연결되어 상기 샘플링 전압을 인가하는 바이어스,
    상기 시작 신호가 입력되는 커런트-스타브드(current-starved) 지연 엘리먼트 및
    상기 종료 신호를 출력하는 버퍼를 포함하는
    컴퓨팅 장치.
  16. 제12 항에 있어서,
    상기 인-메모리 프로세싱 디바이스는
    상기 각각의 컬럼 라인에 연결되어, 상기 전류 합에 대응하는 상기 샘플링 전압이 인가되는 샘플링 저항을 더 포함하는
    컴퓨팅 장치.
  17. 제 12 항에 있어서,
    상기 시간-디지털 컨버터는
    상기 제1 시점에서 카운터를 리셋하고,
    상기 제2 시점에서 카운팅 값을 디지털 값으로 출력하는,
    컴퓨팅 장치.
  18. 인-메모리(in-memory) 프로세싱을 수행하는 방법에 있어서,
    메모리 셀 어레이의 각각의 로우(row) 라인을 통해 복수의 메모리 셀들에 입력 신호를 인가하는 단계;
    상기 메모리 셀 어레이의 각각의 컬럼(column) 라인을 통해 흐르는 컬럼 전류의 전류 합(current sum)에 대응하는 샘플링 전압을 상기 각각의 컬럼(column) 라인에 연결된 전압 제어 지연 회로에 인가하는 단계;
    상기 전압 제어 지연 회로에 제1 시점에서 시작 신호의 입력 후 상기 샘플링 전압의 크기에 기초하여 결정되는 지연 시간만큼 지연된 제2 시점에서 종료 신호를 출력하는 단계; 및
    상기 제2 시점에서 시간-디지털 컨버팅을 수행하는 단계를 포함하는, 방법.
  19. 제18 항에 있어서,
    상기 각각의 컬럼 라인에는 샘플링 저항이 연결되고, 상기 메모리 셀들의 저항 값 및 상기 샘플링 저항의 저항 값의 합성 저항에 기초하여 상기 샘플링 전압을 결정하는 단계를 더 포함하는 방법.
  20. 제18 항에 있어서,
    상기 제1 시점에서 카운터를 리셋하고, 상기 제2 시점에서 카운팅 값을 디지털 값으로 출력하는 단계를 더 포함하는 방법.
KR1020200082260A 2020-07-03 2020-07-03 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치 KR20220004430A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200082260A KR20220004430A (ko) 2020-07-03 2020-07-03 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치
US17/150,891 US11514980B2 (en) 2020-07-03 2021-01-15 Apparatus and method with in-memory delay dependent processing
US17/974,852 US11756610B2 (en) 2020-07-03 2022-10-27 Apparatus and method with in-memory delay dependent processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200082260A KR20220004430A (ko) 2020-07-03 2020-07-03 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치

Publications (1)

Publication Number Publication Date
KR20220004430A true KR20220004430A (ko) 2022-01-11

Family

ID=79355811

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200082260A KR20220004430A (ko) 2020-07-03 2020-07-03 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치

Country Status (2)

Country Link
US (2) US11514980B2 (ko)
KR (1) KR20220004430A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220020097A (ko) 2020-08-11 2022-02-18 삼성전자주식회사 프로세싱 장치 및 이를 포함하는 전자 시스템
US11756615B2 (en) * 2020-08-31 2023-09-12 Stmicroelectronics S.R.L. Memory device and method for in-memory computing
KR20230070753A (ko) * 2021-11-15 2023-05-23 삼성전자주식회사 디지털 펄스 기반 크로스바 연산을 수행하는 연산 장치 및 그 동작 방법
CN114594819B (zh) * 2022-01-19 2023-12-05 之江实验室 可跟踪铁电电容工艺的自适应调节操作电压的电路和方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6501706B1 (en) 2000-08-22 2002-12-31 Burnell G. West Time-to-digital converter
US7332973B2 (en) * 2005-11-02 2008-02-19 Skyworks Solutions, Inc. Circuit and method for digital phase-frequency error detection
JP5076568B2 (ja) 2007-03-12 2012-11-21 ソニー株式会社 データ処理方法、データ処理装置、固体撮像装置、撮像装置、電子機器
US7893861B2 (en) * 2009-06-30 2011-02-22 International Business Machines Corporation Time-to-digital based analog-to-digital converter architecture
KR101434004B1 (ko) * 2011-10-21 2014-08-27 삼성전기주식회사 접촉 감지 장치 및 접촉 감지 방법
US10528865B2 (en) * 2016-06-21 2020-01-07 International Business Machines Corporation System to duplicate neuromorphic core functionality
US10180820B2 (en) 2016-09-30 2019-01-15 HEWLETT PACKARD ENTERPRlSE DEVELOPMENT LP Multiply-accumulate circuits
US10438116B2 (en) * 2017-02-10 2019-10-08 Electronics And Telecommunications Research Institute Neuromorphic arithmetic device
KR20190109173A (ko) 2018-03-16 2019-09-25 김재운 고열액체 이송 파이프(이송관 등 일체)고단열제 유리섬유(glass Wool)의 (진공단열층과 내화 불연 造成층) 제조방법
US10943652B2 (en) 2018-05-22 2021-03-09 The Regents Of The University Of Michigan Memory processing unit
US11048434B2 (en) 2018-09-28 2021-06-29 Intel Corporation Compute in memory circuits with time-to-digital computation
KR20210028063A (ko) 2019-09-03 2021-03-11 삼성전자주식회사 곱셉 누적기 회로를 이용한 컴퓨팅 장치 및 방법
US11573792B2 (en) * 2019-09-03 2023-02-07 Samsung Electronics Co., Ltd. Method and computing device with a multiplier-accumulator circuit
US10868562B1 (en) * 2020-02-10 2020-12-15 Taiwan Semiconductor Manufacturing Company Limited Loop gain auto calibration using loop gain detector
KR20210144417A (ko) * 2020-05-22 2021-11-30 삼성전자주식회사 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치
KR20210158698A (ko) * 2020-06-24 2021-12-31 삼성전자주식회사 회로를 이용하여 소정의 연산을 수행하는 장치 및 방법
US11555842B2 (en) * 2020-09-11 2023-01-17 Taiwan Semiconductor Manufacturing Company, Ltd. Apparatus, system and method for phase noise measurement
US11012083B1 (en) * 2020-12-17 2021-05-18 IQ-Analog Corp. Voltage-to-time-to-digital converter (VTDC) with coarse analog-to-digital converter (ADC)

Also Published As

Publication number Publication date
US11514980B2 (en) 2022-11-29
US20230046817A1 (en) 2023-02-16
US20220004852A1 (en) 2022-01-06
US11756610B2 (en) 2023-09-12

Similar Documents

Publication Publication Date Title
KR20210144417A (ko) 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치
KR20220004430A (ko) 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치
US10708522B2 (en) Image sensor with analog sample and hold circuit control for analog neural networks
US10692570B2 (en) Neural network matrix multiplication in memory cells
US11531871B2 (en) Stacked neuromorphic devices and neuromorphic computing systems
US11620505B2 (en) Neuromorphic package devices and neuromorphic computing systems
Kim et al. A digital neuromorphic VLSI architecture with memristor crossbar synaptic array for machine learning
Lin et al. A scalable and reconfigurable in-memory architecture for ternary deep spiking neural network with ReRAM based neurons
KR20220020097A (ko) 프로세싱 장치 및 이를 포함하는 전자 시스템
KR20220010362A (ko) 뉴럴 네트워크 장치 및 그의 동작 방법
WO2023130725A1 (zh) 一种基于随机电阻阵列的储备池计算模型的硬件实现方法、装置及电子设备
JP2021157788A (ja) ニューロモーフィック装置、電子システム及びその駆動方法
Han et al. Efficient discrete temporal coding spike-driven in-memory computing macro for deep neural network based on nonvolatile memory
JP7507549B2 (ja) ニューロモーフィック装置、及びニューロモーフィック装置でマルチビットニューロモーフィック演算を処理する方法
US20230186086A1 (en) Neural network device and electronic system including the same
KR20200094534A (ko) 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치에서 멀티-비트 연산을 처리하는 방법
García-Redondo et al. Training DNN IoT applications for deployment on analog NVM crossbars
Zhang et al. A 28nm 15.09 nJ/inference Neuromorphic Processor with SRAM-Based Charge Domain in-Memory-Computing
Yang et al. High-performance convolutional neural network emulation via FPGA-integrated memristive circuitry
US11901907B2 (en) Electronic device and method of operating the same
KR20220141652A (ko) 멀티-비트 연산 장치 및 방법
KR20220145143A (ko) 뉴럴 네트워크 장치 및 그의 동작 방법
KR20240109086A (ko) 뉴럴 네트워크 회로 및 이의 동작 방법
KR20240025827A (ko) Imc(in memory computing) 프로세서 및 imc 프로세서의 동작 방법
Burr Neuromorphic Technologies for Next-Generation Cognitive Computing

Legal Events

Date Code Title Description
A201 Request for examination