KR20220020097A - 프로세싱 장치 및 이를 포함하는 전자 시스템 - Google Patents

프로세싱 장치 및 이를 포함하는 전자 시스템 Download PDF

Info

Publication number
KR20220020097A
KR20220020097A KR1020200100631A KR20200100631A KR20220020097A KR 20220020097 A KR20220020097 A KR 20220020097A KR 1020200100631 A KR1020200100631 A KR 1020200100631A KR 20200100631 A KR20200100631 A KR 20200100631A KR 20220020097 A KR20220020097 A KR 20220020097A
Authority
KR
South Korea
Prior art keywords
bit cell
voltage
cell line
capacitor
bit
Prior art date
Application number
KR1020200100631A
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 KR1020200100631A priority Critical patent/KR20220020097A/ko
Priority to CN202110124540.0A priority patent/CN114077420A/zh
Priority to US17/181,259 priority patent/US11581042B2/en
Priority to EP21172461.2A priority patent/EP3955253A1/en
Priority to JP2021128185A priority patent/JP2022032999A/ja
Publication of KR20220020097A publication Critical patent/KR20220020097A/ko

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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06N3/0635
    • 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
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0023Address circuits or decoders
    • G11C13/0026Bit-line or column circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0038Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/06Sense amplifier related aspects
    • G11C2207/063Current sense amplifiers

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Semiconductor Memories (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Logic Circuits (AREA)
  • Hall/Mr Elements (AREA)

Abstract

연산 신뢰성이 향상된 인-메모리(in-memory) 프로세싱 장치가 제공된다. 개시된 프로세싱 장치는, 직렬로 연결된 복수의 비트셀들을 포함하는 비트셀 라인, 비트셀 라인에 흐르는 전류를 일정 비율로 복제할 수 있는 미러 회로부, 미러 회로부에서 복제한 미러 전류로 전하를 충전하는 전하 충전부, 및 전하 충전부에 충전된 전하로부터 비트셀 라인에 인가된 입력과 웨이트의 Multiply Accumulate(MAC) 연산 결과에 대응하는 값을 출력하는 전압 측정부를 포함할 수 있다.

Description

프로세싱 장치 및 이를 포함하는 전자 시스템{PROCESSING APPARATUS AND ELECTRONIC SYSTEM HAVING THE SAME}
프로세싱을 수행하는 장치 및 이를 포함하는 전자 시스템에 관한다.
뉴럴 네트워크 장치는 곱셉과 덧셈을 반복하는 MAC(Multiply-Accumulate) 연산을 수행할 수 있다. 뉴럴 네트워크는 특정 노드에서 이전 레이어의 노드들의 출력들과 이 노드들에 매핑된 웨이트들을 곱한 값들을 합산하는 MAC 연산을 반복적으로 수행하고, MAC 연산의 결과 값에 활성 함수를 적용하는 연산을 수행한다. 이를 위해 원하는 시점에 적절한 입력과 웨이트가 로딩되는 메모리 액세스 동작(Memory Access Operation)이 함께 수행될 수 있다. 일반적으로 알려진 디지털 컴퓨터를 이용하여 뉴럴 네트워크를 처리하는 대신, 다른 하드웨어 아키텍쳐를 이용하여 MAC 연산 등과 같은 뉴럴 네트워크의 연산들을 수행하기 위한 다양한 방안들이 시도되고 있다.
아날로그 연산의 신뢰성 및 전력 효율이 향상된 프로세싱 장치 및 이를 포함하는 전자시스템을 제공하며, 아래에서 설명하는 실시예들로부터 다른 기술적 과제들이 유추될 수 있다.
일 실시예의 프로세싱 장치는, 직렬로 연결된 복수의 비트셀들을 포함하는 비트셀 라인, 비트셀 라인에 흐르는 전류를 일정 비율로 복제할 수 있는 미러 회로부 미러 회로부에서 복제한 미러 전류로 전하를 충전하는 전하 충전부, 및 전하 충전부에 충전된 전하로부터 비트셀 라인에 인가된 입력과 웨이트의 Multiply Accumulate(MAC) 연산 값에 대응하는 결과를 출력하는 전압 측정부를 포함할 수 있다.
일 실시예의 프로세싱 방법은, 직렬로 연결된 복수의 비트셀들을 포함하는 비트셀 라인에 제1 입력과 제1 웨이트를 인가하는 단계, 비트셀 라인에 전압을 인가하고, 전압에 의해 비트셀 라인에 흐르는 전류를 일정 비율로 복제한 제1 미러 전류를 전하 충전부로 전달하는 단계, 제1 미러 전류로 일정시간 동안 커패시터를 충전하는 단계, 비트셀 라인에 제2 입력과 제2 웨이트를 인가하는 단계, 비트셀 라인에 전압을 인가하고, 전압에 의해 비트셀 라인에 흐르는 전류를 일정 비율로 복제한 제2 미러 전류를 전하 충전부로 전달하는 단계, 제2 미러 전류로 일정시간 동안 커패시터를 충전하는 단계, 및 커패시터에 충전된 전하를 이용하여 비트셀 라인에 인가된 입력과 웨이트의 Multiply Accumulate(MAC) 연산 값에 대응하는 결과를 출력하는 단계를 포함할 수 있다.
일 실시예의 전자 시스템은, 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치의 기능을 제어하는 프로세싱 유닛을 포함하고, 뉴럴 네트워크 장치는, 직렬로 연결된 복수의 비트셀들을 포함하는 비트셀 라인, 비트셀 라인에 흐르는 전류를 일정 비율로 복제할 수 있는 미러 회로부, 미러 회로부에서 복제한 미러 전류로 전하를 충전하는 전하 충전부 및 전하 충전부에 충전된 전하로부터 비트셀 라인에 인가된 입력과 웨이트의 Multiply Accumulate(MAC) 연산 값에 대응하는 결과를 출력하는 전압 측정부를 포함할 수 있다.
도 1은 생물학적 뉴런과 그 동작을 설명하기 위한 도면이다.
도 2는 뉴럴 네트워크의 일 예를 설명하기 위한 도면이다.
도 3은 프로세싱 장치에 사용되는 비트셀의 회로도를 도시하는 도면이다.
도 4a 및 도 4b는 도 3의 비트셀에 적용된 가변저항의 구조 및 동작을 설명하기 위한 도면들이다.
도 5는 프로세싱 장치의 일 실시예를 도시하는 도면이다.
도 6은 도 5의 미러 회로부의 트렌지스터들의 사시도이다.
도 7은 뉴럴 네트웨크의 일 예를 보여주는 도면이다.
도 8은 프로세싱 방법의 일 실시예를 설명하기 위한 흐름도이다.
도 9는 도 8의 프로세싱 방법에서 부분합을 출력하는 것을 설명하기 위한 도면이다.
도 10은 프로세싱 방법의 다른 실시예를 설명하기 위한 흐름도이다.
도 11은 도 10의 커패시터의 전압 변화를 설명하기 위한 도면이다.
도 12는 도 10의 프로세싱 방법에서 전체합을 출력하는 단계를 설명하기 위한 도면이다.
도 13은 프로세싱 방법의 또 다른 실시예를 설명하기 위한 흐름도이다.
도 14는 도 13의 프로세싱 방법에서 활성 함수 값을 출력하는 단계를 설명하기 위한 도면이다.
도 15는 일 실시예에 따른 프로세싱 장치의 칩 블록도이다.
도 16은 일 실시예에 따른 전자 시스템을 나타내는 블록도이다.
이하, 첨부된 도면을 참조하여 다양한 실시예들을 기재한다. 실시예의 설명을 위해 사용하는 용어들은 권리범위를 특정 실시예에 한정하기 위한 것이 아니며, 특정한 실시예 외의 다양한 변경, 균등물, 및/또는 대체물들이 권리범위에 포함될 수 있다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. "A 또는 B" 또는 "A 및/또는 B" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1," "제 2," 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
실시예들에 대한 설명에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 구성요소를 사이에 두고 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 구성요소를 '포함한다'고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 하지만, '포함한다'의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 한다.
이하에서 설명하는 실시예들은 프로세싱 장치(예를 들어, 뉴로모픽 프로세서(neuromorphic processor), 뉴럴 프로세서(neural processor) 등)의 기술 분야에 관한 것으로서 해당 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서는 자세한 설명을 생략한다.
프로세싱 장치는 공통의 데이터 버스를 사용하여 정보를 주고받는 일반적인 디지털 컴퓨터와 달리, 곱하기와 더하기 연산들을 처리하기 위한 아날로그 회로를 구비할 수 있다. 다시 말하면, 프로세싱 장치는 인-메모리(in-memory) 프로세싱 또는 내부 프로세싱(internal processing))을 수행할 수 있다. 이에 따라, 프로세싱 장치는 인-메모리 프로세싱 장치(in-memory processing device), Processor In Memory(PIM), Function In Memory(FIM) 등과 같은 다양한 용어들로 지칭될 수도 있다.
도 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)이라고 지칭될 수 있다.
인간의 두뇌는 이러한 많은 수의 뉴런들이 서로 연결되어 형성되는 신경망을 통해 다양한 신호들을 전달 및 처리함으로써 방대한 양의 정보를 학습하고 기억할 수 있다. 이러한 생물학적 신경망을 모사하여 방대한 양의 정보를 효율적으로 처리하기 위한 프로세싱 장치 또는 컴퓨팅 장치를 개발하기 위한 다양한 시도들이 지속되고 있다.
도 2는 뉴럴 네트워크의 일 예를 설명하기 위한 도면이다.
도 2를 참조하면, 뉴럴 네트워크(20)는 앞서 서술한 생물학적 신경망을 모사한 인공 신경망(Artificial Neural Network)의 일 예이며, 딥 뉴럴 네트워크(DNN, Deep Neural Network)에 해당할 수 있다. 설명의 편의를 위해 뉴럴 네트워크(20)가 2개의 히든 레이어들(Hidden Layers)을 포함하는 것으로 도시되었으나, 다양한 수의 히든 레이어들을 포함할 수 있다. 또한, 도 2에서 뉴럴 네트워크(20)는 입력 데이터를 수신하기 위한 별도의 입력 레이어(Input Layer)(21)를 포함하는 것으로 도시되었으나, 입력 데이터가 히든 레이어에 직접 입력될 수도 있다.
뉴럴 네트워크(20)에서 출력 레이어(Output Layer)를 제외한 레이어들의 인공 노드들은 출력 신호를 전송하기 위한 링크들을 통해 다음 레이어의 인공 노드들과 연결될 수 있다. 이들 링크를 통해 하나의 인공 노드에는 이전 레이어에 포함된 인공 노드들의 노드 값과 각 링크에 할당된 웨이트가 곱해진 값들이 입력될 수 있다. 이전 레이어의 노드 값들은 액손 값들에 해당하고, 웨이트는 시냅틱 웨이트들에 해당한다. 웨이트는 뉴럴 네트워크(20)의 파라미터로 지칭될 수 있다. 활성 함수는 시그모이드(Sigmoid), 하이퍼볼릭 탄젠트(Hyperbolic Tangent; Tanh) 및 렐루(Rectified Linear Unit; ReLU)를 포함할 수 있고, 활성 함수에 의해 뉴럴 네트워크(20)에 비선형성이 형성될 수 있다.
이러한 뉴럴 네트워크(20)에 포함된 임의의 한 노드(22)의 출력은 아래 [수학식 1]과 같이 나타낼 수 있다.
Figure pat00001
[수학식 1]은 임의의 레이어에서 m개의 입력 값에 대한 i번째 노드(22)의 출력 값 yi를 나타낼 수 있다. xj는 이전 레이어의 j번째 노드의 출력 값을 나타낼 수 있고, wj,i는 이전 레이어의 j번째 노드와 현재 레이어의 i번째 노드(22)의 연결부에 적용되는 웨이트를 나타낼 수 있다. f()는 활성 함수를 나타낼 수 있다. [수학식 1]에 나타난 바와 같이, 활성 함수에 대해, 입력값 xj 및 웨이트 wj,i의 곱셈 누적 결과가 사용될 수 있다. 다시 말해, 원하는 시점에 적절한 입력 값 xj 및 웨이트 wj,i를 곱하고 더하는 연산(MAC 연산)이 반복될 수 있다. 이러한 용도 외에도, MAC 연산을 필요로 하는 다양한 응용분야가 있으며, 이를 위해 아날로그 회로 영역에서 MAC 연산을 처리할 수 있는 프로세싱 장치가 사용될 수 있다.
도 3은 프로세싱 장치에 사용되는 비트셀의 일 실시예를 도시하는 회로도이고, 이를 참조하여 비트셀의 구조와 동작에 대해 설명한다.
도 3의 비트셀(Bitcell, BC)은 뉴로모픽 프로세서, 뉴럴 프로세서 등을 구현하기 위한 프로세싱 장치 내에 포함된 회로 구성일 수 있다. 프로세싱 장치는, 예를 들어, 데이터를 메모리(저항성 메모리 소자 등)에 저장해두고, 연산이 필요한 경우 저장된 데이터를 사용하는 인-메모리 프로세싱 장치(In-Memory Processing Unit)일 수 있다.
비트셀(BC)은 병렬로 연결된 한 쌍의 가변저항들(Ra, Rb), 가변저항들(Ra, Rb)에 각각 직렬로 연결된 한 쌍의 스위치들(Sa, Sb), 및 제1 및 제2 비트 데이터 라인들(BLDa, BLDb)에 각각 연결된 스위치들(SBDLa, SBDLb)을 포함할 수 있다. 다만, 도 3에 도시된 비트셀(BC)의 회로 구성은 예시적인 것일 뿐이며, 비트셀(BC)은 다른 회로 소자들을 이용한 등가 회로로도 구현될 수 있다.
한 쌍의 가변저항들(Ra, Rb)은 서로 다른 저항 값들로 설정될 수 있는 저항 소자들이고, 가변저항들(Ra, Rb)의 저항 값들은 비트셀(BC)에 인가되는 웨이트에 의해 정해질 수 있다. 예를 들어, 각각의 가변저항(Ra, Rb)은, 2개의 저항 값들 중 어느 하나의 저항 값, 예컨대, 15 MΩ 또는 10 MΩ의 저항 값을 가질 수 있으며, 비트셀(BC)에 인가될 수 있는 웨이트가 -1 또는 1 이라고 가정할 때, 웨이트 1이 인가된 경우, 제1 가변저항(Ra)은 15 MΩ이 되고, 제2 가변저항(Rb)은 10 MΩ이 되도록 할 수 있고, 웨이트 -1이 인가된 경우, 제1 가변저항(Ra)은 10 MΩ이 되고, 제2 가변저항(Rb)은 15 MΩ이 되도록 할 수 있다. 앞선 예에서와 같이, 한 쌍의 가변저항들(Ra, Rb)은 서로 다른 저항 값들을 가지도록 상보적으로 설정될 수 있다.
구체적으로, 가변저항들(Ra, Rb)은 저항성 메모리 소자들일 수 있다. 저항성 메모리 소자는 저항성 메모리 소자의 양단에 인가되는 전압 또는 전류에 따라 서로 다른 저항 상태들 사이에서 스위칭될 수 있는 소자로서, 복수의 저항 상태들을 가질 수 있다. 저항성 메모리 소자는, 예를 들어, 전이 금속 산화물, 페로브스카이트(Perovskite)계 물질 등과 같은 금속 산화물, 칼코게나이드(Chalcogenide)계 물질 등과 같은 상변화 물질, 강유전 물질, 강자성 물질 등을 포함하는 단일막 구조 또는 다중막 구조를 가질 수 있다. 한편, 저항성 메모리 소자가 고저항 상태에서 저저항 상태로 변하는 동작을 셋(SET) 동작이라 지칭하고, 저저항 상태에서 고저항 상태로 변하는 동작을 리셋(RESET) 동작이라 지칭할 수 있다.
가변저항들(Ra, Rb)의 저항 값들을 변경하는 방법에 대해 설명하도록 한다. 먼저, 변경하고자 하는 가변저항의 양단을 각각 제1 비트-데이터 라인(BDLa) 및 제2 비트-데이터 라인(BDLb)에 접속한다. 제1 가변저항(Ra)을 예로 들어 설명하면, 제1 가변저항(Ra)의 일단(도 3에서 가변저항(Ra)의 상단부)은 상부 비트-데이터 라인 스위치(SBDLb)를 통해 제2 비트-데이터 라인(BDLb)에 접속될 수 있고, 제1 가변저항(Ra)의 타단(도 3에서 가변저항(Ra)의 하단부)은 제1 스위치(Sa)와 하부 비트-데이터 라인 스위치(SBDLa)를 통해 제1 비트-데이터 라인(BDLa)에 접속될 수 있다.
상부 비트-데이터 라인 스위치(SBDLb)는 도 3의 비트셀(BC)에 포함되지 않은 스위치일 수 있다. 예를 들어, 상부 비트-데이터 라인 스위치(SBDLb)는 도 3의 비트셀(BC)과 인접한 비트셀(미도시)에 포함된 스위치이거나, 또는 다른 비트셀에는 포함되지 않은 독립적인 스위치일 수 있다.
제1 가변저항(Ra)이 비트 데이터 라인들(BDLa, BDLb)에 접속되면, 비트 데이터 라인들(BDLa, BDLb)을 통해 제1 가변저항(Ra) 양단의 전압 또는 제1 가변저항(Ra)에 흐르는 전류를 제어함으로써 제1 가변저항(Ra)에 대한 셋(SET) 동작 또는 리셋(RESET) 동작이 수행될 수 있다. 이와 달리, 제2 스위치(Sb)와 비트셀(BC) 양단의 비트-데이터 라인 스위치들(SBDLa, SBDLb)이 닫히면 제2 가변저항(Rb)이 비트 데이터 라인들(BDLa, BDLb)에 접속됨으로써 제2 가변저항(Rb)에 대한 셋(SET) 동작 또는 리셋(RESET) 동작이 수행될 수 있다.
가변저항들(Ra, Rb)의 저항 값들을 변경하기 위해 인가되는 전압 및/또는 전류는 가변저항들(Ra, Rb)의 저항 값들을 읽기(read) 위해 인가되는 전압 및/또는 전류보다 상대적으로 매우 큰 값일 수 있다. 다시 말하면, 가변저항들(Ra, Rb)의 저항 값들을 읽기 위해 인가되는 전압 및/또는 전류에 의해서는 가변저항들(Ra, Rb)의 저항 값들이 변하지 않을 수 있다.
가변저항들(Ra, Rb)이 자기 터널 접합(Magnetic Tunnel Junction; MTJ) 소자로 구현된 예에 대해서 도 4a 및 도 4b를 참조하여 아래에서 설명한다.
가변저항들(Ra, Rb)과 직렬로 연결된 한 쌍의 스위치들(Sa, Sb)은 비트셀(BC)에 인가되는 입력이 무엇인지에 따라 개폐(ON/OFF) 동작을 수행할 수 있다. 스위치들(Sa, Sb)은, 어느 하나가 닫히면 다른 하나가 열리도록 상보적으로 동작할 수 있다. 예를 들면, 비트셀(BC)에 인가될 수 있는 입력이 '-1 또는 1' 이라고 가정할 때, 입력 '1'이 인가된 경우에 제1 스위치(Sa)는 닫히고 제2 스위치(Sb)는 열리고, 입력 '-1'이 인가된 경우에 제1 스위치(Sa)는 열리고 제2 스위치(Sb)는 닫히도록 설계될 수 있다.
앞서 설명된 가변저항과 스위치의 동작 방법에 따르면, 도 3의 비트셀(BC)에 인가되는 웨이트와 입력에 따라 비트셀(BC)의 양단에서 측정되는 저항 값은 달라질 수 있다. 웨이트, 입력 및 비트셀(BC) 양단의 저항 값 간의 관계를 정리하면 아래 [표 1]과 같다.
입력 웨이트 입력*웨이트 저항 값(MΩ)
1 1 1 15
1 -1 -1 10
-1 1 -1 10
-1 -1 1 15
[표 1]을 참조하면, 입력과 웨이트를 곱한 값이 1인 경우에 비트셀(BC)의 저항 값은 15 MΩ이고, 입력과 웨이트를 곱한 값이 -1인 경우에 비트셀(BC)의 저항 값은 10 MΩ이 됨을 알 수 있다. 다시 말하면, 비트셀(BC)의 저항 값을 측정하거나 또는 일정한 값의 전류에 의한 비트셀(BC)의 전압 강하를 측정하면, 비트셀(BC)에 인가된 입력과 웨이트의 곱을 알 수 있다. 이러한 비트셀(BC)의 특성을 이용하여 입력과 웨이트의 곱의 합을 구하는 프로세싱 장치(예를 들어, 뉴로모픽 프로세서 등)가 구현될 수 있다.
도 4a 및 도 4b는 도 3의 비트셀(BC)에 적용 가능한 가변저항의 구조 및 동작을 설명하기 위한 도면들이다. 가변저항들(Ra, Rb)은 자기 터널 접합(Magnetic Tunnel Junction; MTJ) 소자로 구현될 수 있으며, 전류(또는 전압)의 크기 및 방향에 따라 저항 값이 변하고, 입력되는 전류(또는 전압)가 차단되어도 저항 값은 그대로 유지되는 불휘발 특성을 가질 수 있다.
도 4a 및 도 4b를 참조하면, 자기 터널 접합(MTJ) 소자는 피고정층(Pinned Layer)(Layer 3)과 자유층(Free Layer)(Layer 1) 및 이들 사이에 터널층(Layer 2)을 포함할 수 있다. 피고정층(Layer 3)의 자화 방향은 고정되어 있으며, 자유층(Layer 1)의 자화 방향은 조건에 따라 피고정층(Layer 3)의 자화 방향과 동일하거나 다를 수 있다.
도 4a는, 자기 터널 접합(MTJ) 소자에서 자유층(Layer 1)과 피고정층(Layer 3)의 자화방향이 평행(Parallel)한 상태를 보여준다. 이와 같이 자화방향이 평행할 때, 자기 터널 접합(MTJ) 소자는 낮은 저항 값, 예를 들어, 10 MΩ의 저항을 가질 수 있다. 도 4b는, 자기 터널 접합(MTJ) 소자의 자유층(Layer 1)과 피고정층(Layer 3)의 자화 방향이 반대(Anti-Parallel)인 상태를 보여준다. 이와 같이 자화방향이 반대(Anti-parallel)일 때, 자기 터널 접합(MTJ) 소자는 높은 저항 값, 예를 들어, 15 MΩ의 저항을 가질 수 있다. 따라서, 자유층(Layer 1)의 자화방향을 변경함으로써 가변저항의 저항 값이 변경될 수 있다.
자유층(Layer 1)의 자화 방향은 저항성 메모리 셀의 외부 및/또는 내부에서 제공되는 전기적/자기적 요인에 의해 변경될 수 있다. 자유층(Layer 1)은 변화 가능한 자화 방향을 갖는 물질, 예를 들어, 강자성 물질을 포함할 수 있다. 자유층(Layer 1)은 예를 들어, CoFeB, FeB, Fe, Co, Ni, Gd, Dy, CoFe, NiFe, MnAs, MnBi, MnSb, CrO2, MnOFe2O3, FeOFe2O3, NiOFe2O3, CuOFe2O3, MgOFe2O3, EuO, Y3Fe5O12 및/또는 이들의 조합을 포함할 수 있다.
터널층(Layer 2)은 스핀 확산 길이(Spin Diffusion Distance) 보다 얇은 두께를 가질 수 있으며, 비자성 물질, 예를 들어, 마그네슘(Mg), 티타늄(Ti), 알루미늄(Al), 마그네슘-아연(MgZn) 및 마그네슘-붕소(MgB)의 산화물, 티타늄(Ti), 바나듐(V) 및/또는 이들의 조합을 포함할 수 있다.
피고정층(Layer 3)은 반강자성층에 의해 고정된 자화 방향을 가질 수 있다. 피고정층(Layer 3)은 강자성 물질(Ferromagnetic Material), 예를 들어, CoFeB, FeB, Fe, Co, Ni, Gd, Dy, CoFe, NiFe, MnAs, MnBi, MnSb, CrO2, MnOFe2O3, FeOFe2O3, NiOFe2O3, CuOFe2O3, MgOFe2O3, EuO, Y3Fe5O12 및/또는 이들의 조합을 포함할 수 있으며, 자화방향을 고정시키기 위해 반강자성층 및/또는 합성반강자성층을 더 포함할 수 있다. 반강자성층은 반강자성 물질(Anti-Ferromagnetic Material), 예를 들어, PtMn, IrMn, MnO, MnS, MnTe, MnF2, FeCl2, FeO, CoCl2, CoO, NiCl2, NiO, Cr 및/또는 이들의 조합을 포함할 수 있다. 합성 반강자성층은 Cu, Ru, Ir 및/또는 이들의 조합을 포함할 수 있다.
도 5는 프로세싱 장치의 일 실시예를 도시하는 도면이다.
도 5를 참고하면, 프로세싱 장치(100)는, 직렬로 연결된 3개의 비트셀들(BC11, BC12, BC13)을 포함하는 비트셀 라인(110), 비트셀 라인(110)에 흐르는 전류를 복제하는 미러(Mirror) 회로부(130), 미러 회로부(130)에서 전달되는 미러 전류로 전하를 충전하는 커패시터(C1)를 포함하는 전하 충전부(150), 및 커패시터(C1) 양단의 전위차를 측정할 수 있는 전압 측정부(170)를 포함할 수 있다.
비트셀 라인(110)은 직렬로 연결된 복수의 비트셀들(BC11, BC12, BC13)을 포함할 수 있고, 각각의 비트셀은 도 3의 비트셀(BC)과 같은 구조일 수 있다. 도 5의 비트셀 라인(110)은 비트셀들(BC11, BC12, BC13)을 3개 포함하는 예를 보여주지만, 1개의 비트셀 라인(110)에 포함되는 비트셀들의 수는 3개 이상일 수 있고, 예를 들면, 64개 내지 256개 일 수 있다. 비트셀들(BC11, BC12, BC13)은 직렬로 연결되어 있기 때문에 각 비트셀을 흐르는 전류의 양이 같다. 예를 들어, 제1 비트셀(BC11)에 1 A의 전류가 흐르는 경우 제2 및 제3 비트셀(BC12, BC13)에도 동일하게 1A의 전류가 흐른다. 비트셀 라인(110)에 흐르는 전류의 크기는 비트셀 라인(110)의 상단에 걸리는 비트셀 라인 전압(VBC)과 비트셀들(BC11, BC12, BC13)의 합성 저항 값으로부터 옴의 법칙에 의해 정해질 수 있다. 비트셀 라인(110)의 합성 저항 값은, 앞서 도 3의 비트셀(BC)에 대해 설명한 것과 같이, 비트셀들에 인가된 웨이트와 입력에 의해 각 비트셀로부터 보여지는 저항 값에 의해 정해질 수 있다. 제1 및 제2 비트셀(BC11, BC12)이 15 MΩ, 제3 비트셀(BC13)이 10 MΩ인 경우를 예로 들면, 비트셀 라인(110)의 합성 저항 값은 40(15+15+10) MΩ 이고, 비트셀 라인 전압(VBC)이 80 V라면, 비트셀 라인(110)에는 2 ㎂의 전류가 흐를 수 있다.
미러 회로부(130)는 제1 및 제2 트렌지스터(TRM1, TRM2)와 증폭기(131)를 포함할 수 있으며, 비트셀 라인(110)에 흐르는 전류를 복제하여 전하 충전부(150)에 전달할 수 있다. 미러 회로부(130)가 복제하는 전류는 제1 트렌지스터(TRM1)를 통해 비트셀 라인(110)을 흐르는 비트셀 라인 전류(I)이며, 복제된 전류는 및 제2 트렌지스터(TRM2)를 통해 전하 충전부(150)로 흐르는 미러 전류(I')일 수 있다.
즉, 미러 회로부(130)는 비트셀 라인에 흐르는 전류를 일정 비율로 복제함으로써 미러 전류를 생성하고, 아래에서는 미러 회로부(130)가 전류를 복제하는 동작을 설명한다.
미러 회로부(130)의 제1 트렌지스터(TRM1)는 p형 MOSFET(Metal Oxide Semiconductor Field Effect Transistor)일 수 있으며, 제1 트렌지스터(TRM1)를 흐르는 비트셀 라인 전류(I)는 아래 [수학식 2]를 만족할 수 있다.
Figure pat00002
[수학식 2]의 kp1은 게이트 산화막의 유전률, 두께 및 게이트 산화막에 의해 생기는 커패시터의 단위 면적 당 용량 값 등에 의해 정해지는 제1 트렌지스터(TRM1)의 소자 특성에 대한 상수이다. W1/L1은 제1 트렌지스터(TRM1)의 채널 폭(W1)과 채널 길이(L1)의 비율인 채널 종횡비이다(도 6 참고). VGS는 게이트 전압(VG)과 소스 전압(VS)의 차이이고, Vth1는 제1 트렌지스터(TRM1)의 문턱전압이다. VGS를 제외한 [수학식 2]에 포함된 다른 요소들, 예를 들면, kp1, Vth1 등은 트렌지스터의 제작이 완료되면 변하지 않는 값들일 수 있다. 다른 말로 표현하면, 제작이 완료된 제1 트렌지스터(TRM1)를 흐르는 전류의 양은 VGS에 의해 정해질 수 있다.
제2 트렌지스터(TRM2)도 p형 MOSFET일 수 있으며 제2 트렌지스터(TRM2)를 흐르는 미러 전류(I')는 아래 [수학식 3]을 만족할 수 있다.
Figure pat00003
앞서 [수학식 2]에서 설명한 것과 같이, [수학식 3]의 kp2, 및 Vth2 는 제2 트렌지스터(TRM2)의 소자 특성에 대한 상수이고, Vth2는 제2 트렌지스터(TRM2)의 문턱전압이다. W2/L2는 제2 트렌지스터(TRM2)의 채널 종횡비를 나타낸다(도 6 참고).
[수학식 2] 및 [수학식 3]을 참고하여, 제1 및 제2 트렌지스터(TRM1, TRM2)에 흐르는 전류(I, I')의 크기를 비교하면, 제1 및 제2 트렌지스터(TRM1, TRM2)는 동일한 물질 및 공정으로 제조되는 것이 일반적이므로 kp1 및 Vth1은 kp2 및 Vth2와 실질적으로 같은 값일 수 있다. 또한, 도 5를 참조하면, 제1 및 제2 트렌지스터(TRM1, TRM2)의 소스 전압(Vs)과 게이트 전압(VG)이 같으므로, 비트셀 라인 전류(I)와 미러 전류(I')의 크기를 결정하는 요소는 각 트렌지스터의 채널 종횡비(W/L)일 수 있다. 예를 들어, 제1 트렌지스터(TRM1)의 채널 종횡비(W1/L1)가 제2 트렌지스터(TRM2)의 채널 종횡비(W2/L2) 보다 크면 비트셀 라인 전류(I)가 미러 전류(I')보다 크고, 제1 트렌지스터(TRM1)의 채널 종횡비(W1/L1)와 제2 트렌지스터(TRM2)의 채널 종횡비(W2/L2)가 같으면 비트셀 라인 전류(I)가 미러 전류(I')와 같을 수 있다. 다른 말로 표현하면, 제2 트렌지스터의 채널 종횡비(W2/L2)와 제1 트렌지스터의 채널 종횡비(W1/L1)의 비율을 조절하여 원하는 비율의 미러 전류(I')를 얻을 수 있다. 예를 들어, 제2 트렌지스터의 채널 종횡비(W2/L2)를 제1 트렌지스터의 채널 종횡비(W1/L1) 의 1/2이 되도록 하면, 미러 전류(I')의 크기를 비트셀 라인 전류(I)의 1/2로 줄일 수 있다. 아래에서는 특별히 언급하지 않으면 제1 및 제2 트렌지스터(TRM1, TRM2)의 채널 종횡비(W1/L1, W2/L2)가 같은 경우를 가정하고 설명한다.
증폭기(131)는 2개의 입력단자들(131i+, 131i-)과 1개의 출력단자(131o)를 포함할 수 있고, 비트셀 라인 전압(VBC)을 일정한 값으로 유지시킬 수 있다. 증폭기(131)는 양(+) 입력단자(131i+)의 전압(Vin+)과 음(-) 입력단자(131i-)의 전압(Vin-)의 차이를 이득(G)만큼 증폭하여 출력단자(131o)의 전압(Vout)으로 출력하는 연산 증폭기(Operational Amplifier) 일 수 있다. 증폭기(131)의 입력단자들(131i+, 131i-)의 전압(Vin+, Vin-)과 출력단자(131o)의 전압(Vout)은 아래 [수학식 4]를 만족할 수 있다.
Figure pat00004
[수학식 4]의 G는 증폭기의 이득을 나타내고, 이상적인 연산 증폭기의 경우 무한대의 이득(G)을 가질 수 있다. 도 5의 증폭기(131)를 무한대의 이득(G)을 갖는 이상적인 연상 증폭기라고 가정하고, [수학식 4]에서 좌변과 우변을 이득(G)으로 나누어 주면, 우변이 0으로 수렴하게 되고, 증폭기(131)의 양(+) 입력단자(131i+)의 전압(Vin+)과 음(-) 입력단자(131i-)의 전압(Vin-)이 같은 값이 됨을 알 수 있다. 이와 같이, 입력단자들(131i+, 131i-)의 전압이 동일한 증폭기(131)의 특성을 이용하여 비트셀 라인 전압(VBC)을 일정한 값으로 유지할 수 있다. 예를 들어, 도 5와 같이, 증폭기(131)의 음(-) 입력단자(131i-)를 비트셀 라인(110)의 상단부에 연결하고, 양(+) 입력단자(131i+)를 5 V로 유지시키면 음(-) 입력단자(131i-)의 전압(Vin-)은 양(+) 입력단자(131i+)의 전압(Vin+)과 같으므로 5 V가 되고, 비트셀 라인 전압(VBC)은 음(-) 입력단자(131i-)의 전압(Vin-)과 같으므로 5 V로 유지될 수 있다.
한편, 연산 증폭기는 입력단자들로의 전류 유출입이 없는 특성을 가지므로, 제1 트렌지스터(TRM1)를 흐르는 전류는 증폭기(131)의 음(-) 입력단자(131i-)로 유출되지 않고 모두 비트셀 라인(110)을 통해 흐르게 된다. 따라서, 제1 트렌지스터(TRM1)에 흐르는 전류는 비트셀 라인 전류(I)와 동일하게 유지된다.
앞서 설명한 비트셀 라인(110)과 미러 회로부(130)의 동작을 연관지어 설명하면, 비트셀 라인(110)에 흐르는 전류는 비트셀 라인(110)의 합성 저항과 비트셀 라인 전압(VBC)에 의해 결정될 수 있고, 제1 트렌지스터(TRM1)를 흐르는 전류와 같다. 제1 트렌지스터(TRM1)와 제2 트렌지스터(TRM2)의 채널 종횡비(W/L)가 같으므로 제1 트렌지스터(TRM1)를 흐르는 전류는 제2 트렌지스터(TRM2)를 흐르는 전류와 같다. 따라서, 비트셀 라인(110)을 흐르는 전류(I)와 같은 크기의 미러 전류(I')가 전하 충전부(150)로 전달될 수 있다.
전하 충전부(150)는 커패시터(C1), 충전 트렌지스터(TRC) 및 리셋 트렌지스터(TRR)를 포함할 수 있으며, 미러 회로부(130)로부터 전달되는 미러 전류(I')를 원하는 시간 동안 충전할 수 있다. 즉, 전하 충전부(150)는 미러 회로부(130)에 의해 복제된 미러 전류(I')가 인가됨으로써 미러 전류(I')에 대응하는 전압을 충전할 수 있다. 전하 충전부(150)의 트렌지스터들(TRC, TRR)은 컨트롤러(미도시)의 제어 신호에 따라 On/off 동작할 수 있다.
충전 트렌지스터(TRC)의 On/off 동작에 의해 미러 전류(I')가 커패시터(C1)를 충전하는 시간이 제어될 수 있다. 예를 들어, 미러 전류(I')가 5 ㎂ 일 때, 충전 트렌지스터(TRC)가 2 ns 동안 켜진 상태(On)를 유지하면, 커패시터(C1)에 10 fC의 전하가 충전될 수 있다. 충전 트렌지스터(TRC)가 꺼진 상태(Off)에서는 커패시터(C1)에 충전된 전하가 유출되지 않기 때문에 커패시터(C1) 양단의 전위차, 즉, 커패시터 전압이 일정하게 유지될 수 있다.
리셋 트렌지스터(TRR)의 On/off 동작에 의해 커패시터(C1)에 충전된 전하가 제거될 수 있다. 구체적으로, 리셋 트렌지스터(TRR)가 켜지면(On) 커패시터(C1) 양단의 전압이 접지 전압(0 V)이 되어 커패시터(C1)에 충전된 전하가 제거될 수 있다.
전압 측정부(170)는 전하 충전부(150)에 충전된 전압(즉, 커패시터(C1)의 커패시터 전압)에 기초하여 비트셀 라인(110)에 인가된 입력들과 웨이트들의 MAC 연산 결과에 대응하는 값을 출력한다.
구체적으로, 전압 측정부(170)는 전하 충전부(150)의 커패시터(C1)의 전압과 기준전압(VRef)을 비교하고 그 결과를 출력할 수 있다. 기준전압(VRef)은 커패시터(C1)의 전압의 크기를 상대적으로 측정하기 위해 제공되는 값으로서 미리 정해진 전압이며, 하나 또는 복수 개가 제공될 수 있다. 전압 측정부(170)는 내부에 기준전압(VRef)을 생성하는 기준전압 생성부(미도시)를 포함하거나 외부에서 보내주는 기준전압(VRef)을 받아 사용하기 위한 수신부(미도시)를 포함할 수 있다. 전압 측정부(170)는 커패시터(C1)의 전압과 기준전압(VRef)의 비교 결과를 디지털 값으로 출력하는 ADC(Analog Digital Converter)(171)를 포함할 수 있다. 전압 측정부(170)의 출력은 비트셀 라인(110)에 인가된 입력과 웨이트의 곱의 합을 나타내는 값일 수 있으며, 전압 측정부(170)의 구체적인 동작에 대해서는 도 8을 참조하여 아래에서 설명한다.
도 7은 뉴럴 네트웨크의 일 예를 보여주는 도면이다.
도 7은 제1 레이어(701)에 6개 노드들, 제2 레이어(702)에 2개 노드들을 가지는 뉴럴 네트워크를 예시적으로 도시한다.
도 7을 참고하면, 제2 레이어(702)의 제1 노드(a1)에서는 아래 [수학식 5]와 같이, 제1 레이어(701)의 노드들로부터 오는 입력(x1, x2, x3, x4, x5, x6)과 각각의 웨이트(w11, w21, w31, w41, w51, w61)를 곱하는 6번의 곱셈 연산과 곱셈 결과값들을 합산하는 MAC 연산(Multiply Accumulate Operation)이 수행될 수 있고, 제2 노드(a2)에서는 아래 [수학식 6]과 같이, 제1 레이어(701)의 노드들로부터 오는 입력(x1, x2, x3, x4, x5, x6)과 각각의 웨이트(w12, w22, w32, w42, w52, w62)를 곱하는 6번의 곱셈 연산과 곱셈 결과값들을 합산하는 MAC 연산이 수행될 수 있다.
Figure pat00005
Figure pat00006
[수학식 5] 및 [수학식 6]의 연산 결과에 대하여, 앞선 [수학식 1]과 같이 시그모이드 등의 활성 함수가 적용된 결과가 제3 레이어(703)의 노드(b1)에 입력으로 제공될 수 있다.
도 8은 도 5의 프로세싱 장치를 구동하는 방법의 일 실시예를 설명하기 위한 흐름도이고, 아래에서는 도 8을 참조하여, 도 5의 프로세싱 장치(100)를 이용하여 [수학식 5]와 같은 MAC 연산을 수행하는 방법에 대해 설명한다.
[수학식 5]의 입력과 웨이트는 아래 [표 2]와 같은 경우를 예로 들어 설명한다.
입력 웨이트 입력 × 웨이트
x1 = 1 w11 = 1 1
x2 = 1 w21 = -1 -1
x3 = -1 w31 = -1 1
x4 = -1 w41 = 1 -1
x5 = 1 w51 = -1 -1
x6 = 1 w61 = 1 1
(입력 × 웨이트)의 합 0
[표 2]를 참조하면, 입력과 웨이트의 수가 각각 6개이므로 비트셀(BC11, BC12, BC13)이 3개뿐인 도 5의 프로세싱 장치(100)는 [수학식 5]의 연산을 한번에 완료할 수 없다. 다시 말하면, 도 5의 프로세싱 장치(100)를 이용하여 한 번에 연산할 수 있는 곱셈의 수는 3개이나, [수학식 5]는 6번의 곱셈 연산들을 포함하기 때문에 한번에 연산이 완료될 수 없다. 따라서, [수학식 5]의 연산을 2 부분으로 나누어, 3개의 입력들(x1, x2, x3) 및 웨이트들(w11, w21, w31)에 대한 제1 부분합을 먼저 계산하고, 이어서 남은 3개의 입력들(x4, x5, x6) 및 웨이트들(w41, w51, w61)에 대한 제2 부분합을 계산한 후, 마지막으로 제1 및 제2 부분합을 합산하여 전체합을 도출하는 방식으로 연산이 수행될 수 있다.
도 8을 참조하면, 프로세싱 방법은, 비트셀에 웨이트 및 입력을 인가하는 단계(S801), 비트셀 라인에 전압을 인가하고, 미러 회로에 의해 복제된 전류로 커패시터를 충전하는 단계(S802), 커패시터의 전압과 기준전압을 비교하여 부분합을 출력하고 메모리에 저장하는 단계(S803), 커패시터를 리셋하는 단계(S804), 모든 입력과 웨이트에 대한 연산이 완료되었는지 여부를 판단하는 단계(S805) 및 모든 부분합에 대한 연산이 완료되면, 부분합을 합산하여 전체합을 출력하는 단계(S806)를 포함할 수 있다.
먼저, S801 단계에서 각각의 비트셀들(BC11, BC12, BC13)에 제1 부분합의 연산에 필요한 입력들(x1, x2, x3)과 웨이트들(w11, w21, w31)을 인가한다. 각 비트셀에 대한 웨이트 및 입력을 인가하는 방법은 도 3의 비트셀(BC)에 대해 설명한 것과 같다. 입력들(x1, x2, x3)과 웨이트들(w11, w21, w31)이 인가된 비트셀들(BC11, BC12, BC13)의 상태를 정리하면 아래 [표 3]과 같다.
입력 가변저항 값 및 스위치 상태
제1 비트셀
(BC11)
Ra = 15 MΩ Rb = 10 MΩ
Sa = Close Sb = Open
제2 비트셀
(BC12)
Ra = 10 MΩ Rb = 15 MΩ
Sa = Close Sb = Open
제3 비트셀
(BC13)
Ra = 10 MΩ Rb = 15 MΩ
Sa = Open Sb = Close
합성 저항 40 MΩ
비트셀들(BC11, BC12, BC13)에 입력과 웨이트의 인가가 완료되면, S802 단계에서 증폭기(131)의 양(+) 입력단자(131i+)에 1.008 V 의 전압을 인가하고, 제1 및 제2 트렌지스터들(TRM1, TRM2)의 소스단에 1.008 V 보다 높은 전압, 예를 들면, 1.010 V의 소스 전압(Vs)을 인가한다. 전압의 인가는 컨트롤러(미도시)에 의해 수행될 수 있다. 앞서 설명한 것과 같이, 비트셀 라인 전압(VBC)은 증폭기(131)의 양(+) 입력단자(131i+)에 인가한 1.008 V와 같으므로, 옴의 법칙에 의해 비트셀 라인(110)에 전류가 흐르게 된다. [표 3]을 참조하면 비트셀 라인(110)의 합성 저항은 40 MΩ 이므로, 25.2 ㎁ 의 비트셀 라인 전류(I)가 흐를 수 있다.
비트셀 라인 전류(I)는 미러 회로부(130)에 의해 복제되어 동일한 크기의 미러 전류(I')가 전하 충전부(150)로 전달될 수 있다. 컨트롤러(미도시)는 전하 충전부(150)의 충전 스위치(TRC)를 켬(On)으로써 미러 전류(I')가 커패시터(C1)를 일정시간 동안 충전할 수 있도록 한다. 도 8의 실시예에서는 1 ns 동안 커패시터(C1)를 충전하는 것을 예로 설명한다. Q = I*t 이므로 충전되는 전하는 25.2 aC 이고, 커패시터(C1)의 커패시턴스는 20 f[F]인 것을 예로 들면, 1.26 mV의 커패시터(C1) 전압이 충전될 수 있다. 제1 부분합을 구하기 위한 커패시터(C1)의 충전 상태를 정리하면 아래 [표 4]와 같다. 도 8의 실시예에서는 커패시턴스가 20 f[F]인 것을 예로 들었으나, 커패시터(C1)의 커패시턴스는 10 ~ 100 f[F], 또는 20 ~ 80 f[F] 일 수 있다.
커패시턴스 (f[F]) 전류 (㎁) 충전시간 (ns) 전하량(aC) 커패시터 전압 (mV)
20 25.2 1 25.2 1.26
S803 단계에서, 커패시터의 전압과 기준전압을 비교하여 부분합이 출력되고, 부분합은 메모리에 저장될 수 있다. 커패시터(C1)에 충전된 전압은 비트셀 라인(110)의 합성 저항 값에 대응될 수 있고, 비트셀 라인(110)의 합성 저항 값은 제1 부분합에 대응하므로, 커패시터(C1)에 충전된 전압으로부터 부분합을 알 수 있다. 커패시터(C1)의 전압, 비트셀 라인(110)의 합성 저항, 및 부분합의 관계를 정리하면 아래 [표 5]와 같다.
커패시터 전압 (mV) 합성 저항 (MΩ) 부분합
1.12 45 3
1.26 40 1
1.44 35 -1
1.68 30 -3
도 9는 도 8의 프로세싱 방법에서 부분합을 출력하는 것을 설명하기 위한 도면이다.
도 9를 참고하면, 전압 측정부(170)가 커패시터(C1)의 전압으로부터 부분합을 출력하는 과정에 대해 도시되어 있다.
전압 측정부(170)는 커패시터(C1) 전압이 얼마인지 알기 위해 내부의 비교기를 이용하여 기준전압들과 커패시터의 전압을 비교할 수 있다. 기준전압들은 커패시터(C1)에서 측정될 수 있는 전압들을 구분할 수 있는 값으로 정해질 수 있으며, 커패시터(C1)의 전압이 나타낼 수 있는 값들 사이의 중간 값이 될 수 있다. 앞선 [표 5]를 참조하여 예를 들면 커패시터(C1)가 나타낼 수 있는 전압이 1.12 mV인지 확인하기 위한 기준전압은 1.12 mV와 인접한 값인 1.26 mV의 중간 값인 1.19 mV로 할 수 있다. 커패시터(C1)의 전압이 기준전압 1.19 mV 보다 작다면, 전압 측정부(170)는 커패시터(C1)의 전압은 1.12 mV로 간주하고 이에 대응하는 부분합 3을 출력할 수 있다. 도 8의 실시예의 기준전압들, 기준전압들 사이의 구간 및 각 구간에 대응하는 부분합을 정리하면 아래 [표 6]과 같다.
기준전압 (mV) 커패시터 전압이 속하는 구간 (mV) 부분합
- 1.19 이하 3
1.19
1.19 ~ 1.35 1
1.35
1.35 ~ 1.56 -1
1.56
1.56 이상 -3
-
[표 4]를 참조하면, 도 8의 실시예의 제1 부분합에 대한 커패시터(C1)의 전압은 1.26 mV 이다. 도 9 및 [표 6]을 참조하면, 이 전압 값은 기준전압 1.19 mV 보다 크고, 1.35 mV 보다 작은 구간에 속하므로, 전압 측정부(170)는 결과값으로 제1 부분합 '1'을 출력하고, 이 제1 부분합은 메모리 등의 저장장치에 저장될 수 있다. 도 8의 실시예에서는 전압 측정부(170)가 제1 부분합을 출력하는 예에 대해 설명하였으나, 전압 측정부(170)는 제1 부분합에 대응하는 다른 형태의 결과를 출력할 수도 있다. 예를 들면, 전압 측정부(170)는 제1 부분합에 대응하는 디지털 값, 예를 들어 00, 01, 10, 11과 같은 2비트 수를 출력하고, 부분합은 아래 [표 7]로부터 도출될 수도 있다.
전압 측정부 출력 부분합
11 3
10 1
01 -1
00 -3
제1 부분합의 연산이 완료되면, S804 단계에서 커패시터(C1)는 리셋된다. 이때, 컨트롤러(미도시)가 도 5의 리셋 트렌지스터(TRR)를 온(On)시켜 커패시터(C1) 양단의 전위차가 같도록 하여 커패시터(C1)를 리셋할 수 있다.
S805 단계에서, 모든 입력과 웨이트에 대해 연산이 완료되었는지 여부가 판단된다. 아직, 제2 부분합의 연산이 완료되지 않았으므로, 제2 부분합을 연산하기 위해 S801 내지 S804 단계가 반복 수행된다.
먼저, 각각의 비트셀들(BC11, BC12, BC13)에 입력들(x4, x5, x6)과 웨이트들(w41, w51, w61)을 인가한다. 입력들(x4, x5, x6)과 웨이트들(w41, w51, w61)을 인가한 비트셀들(BC11, BC12, BC13)의 상태를 정리하면 아래 [표 8]과 같다.
입력 가변저항 값 및 스위치 상태
제1 비트셀
(BC11)
Ra = 15 MΩ Rb = 10 MΩ
Sa = Open Sb = Close
제2 비트셀
(BC12)
Ra = 10 MΩ Rb = 15 MΩ
Sa = Close Sb = Open
제3 비트셀
(BC13)
Ra = 15 MΩ Rb = 10 MΩ
Sa = Close Sb = Open
합성 저항 35 MΩ
비트셀들(BC11, BC12, BC13)에 입력과 웨이트의 인가가 완료되면, 증폭기(131)의 양(+) 입력단자(135i+)에 1.008 V 의 전압을 인가하고, 제1 및 제2 트렌지스터(TRM1, TRM2)의 소스에 1.008 V 보다 높은 전압, 예를 들면, 1.010 V의 소스 전압(Vs)을 인가한다. [표 8]을 참조하면 비트셀 라인(110)의 합성 저항은 35 MΩ 이므로, 옴의 법칙에 의해 28.8 ㎁ 의 비트셀 라인 전류(I)가 흐를 수 있다.
비트셀 라인 전류(I)는 미러 회로부(130)에 의해 복제되어 동일한 크기의 미러 전류(I')가 전하 충전부(150)로 전달될 수 있다. 제2 부분합을 구하기 위한 커패시터(C1)의 충전 상태를 정리하면 아래 [표 9]와 같다.
커패시턴스 (f[F]) 전류 (㎁) 충전시간 (ns) 전하량(aC) 커패시터 전압(mV)
20 28.8 1 28.8 1.44
[표 9]를 참조하면 커패시터(C1)의 전압은 1.44 mV 이다. 도 9 및 [표 6]을 다시 참조하면 1.44 mV는 기준전압 1.35 mV 보다 크고, 1.56 mV 보다 작은 구간에 해당하므로, 전압 측정부(170)는 결과값 '-1'을 출력하고, 이 값은 제2 부분합으로 메모리 등의 저장장치에 저장될 수 있다.
제1 및 제2 부분합의 연산이 완료된 것으로 판단되면(S805), S806 단계에서 프로세싱 유닛(미도시)은 각 부분합들(제1 및 제2 부분합들)을 모두 합산한 값인 전체합을 출력할 수 있다. 전체합은 앞선 [수학식 5]의 연산 결과일 수 있으며, 부분합들의 합산 및 전체합의 출력은 프로세싱 장치(100)를 포함하는 전자 시스템의 CPU(Central Processing Unit) 등과 같은 프로세싱 유닛(미도시)에 의해 수행될 수 있다. 제1 부분합은 '1'이고, 제2 부분합은 '-1'이므로 전체합 '0'이 출력되어 메모리 등의 저장장치에 저장될 수 있다.
전체합에 앞선 [수학식 1]과 같이 시그모이드(Sigmoid) 등의 활성 함수를 적용한 활성 함수 값이 다음 노드의 입력(엑티베이션)으로 제공될 수 있다. 예를 들면, 앞선 [수학식 5]의 활성 함수 값이 제3 레이어(703)에 포함된 노드(b1)에 하나의 입력으로 제공될 수 있다. 활성 함수의 연산은 CPU 등과 같은 프로세서에 의해 수행될 수 있다.
도 8의 실시예에서는 비트셀 라인(110)을 1개만 포함하는 프로세싱 장치(100)의 작동 방법을 예로 들어 설명하였으나, 프로세싱 장치(100)는 복수개의 비트셀 라인들을 포함할 수 있으며, 복수개의 노드들에 요구되는 연산을 병렬적으로 처리할 수 있다. 2개의 비트셀 라인들을 포함하는 프로세싱 장치를 예로 들면, 제1 비트셀 라인에서는 도 7의 제2 레이어(702)의 제1 노드(a1)에서 요구되는 [수학식 5]의 연산을 수행하는 동안, 제2 비트셀 라인에서 도 7의 제2 레이어(702)의 제2 노드(a2)에서 요구되는 [수학식 6]의 연산을 수행할 수 있다. 프로세싱 장치(100)에 포함된 비트셀 라인의 수는 예를 들어 40 내지 100개일 수 있으나, 이에 제한되지 않는다.
도 10은 도 5의 프로세싱 장치를 구동하는 방법의 다른 실시예를 설명하기 위한 흐름도이다. 아래에서는 도 10을 참조하여, 도 5의 프로세싱 장치를 이용하여 [수학식 5]의 연산을 수행하는 방법에 대해 설명한다.
도 10의 실시예에서도 [수학식 5]의 입력과 웨이트가 앞선 [표 2]와 같은 경우를 예로 들어 설명한다. 도 10의 실시예는 [수학식 5]의 제1 부분합 연산과 제2 부분합 연산 사이에 커패시터(C1) 리셋 단계가 수행되지 않는다는 점에서 도 8의 실시예와 차이가 있다. 도 10의 실시예에서는 3개의 입력들(x1, x2, x3) 및 웨이트들(w11, w21, w31)에 대한 전압을 커패시터(C1)에 충전하고, 남은 3개의 입력들(x4, x5, x6) 및 웨이트들(w41, w51, w61)에 대한 전압을 누적하여 커패시터(C1)에 충전하는 점에서 도 8의 실시예와 구별된다.
도 10을 참조하면, 프로세싱 방법은, 비트셀에 웨이트 및 입력을 인가하는 단계(S1001), 비트셀 라인에 전압을 인가하고, 미러 회로에 의해 복제된 전류로 커패시터를 충전하는 단계(S1002), 모든 입력과 웨이트에 대한 연산이 완료되었는지 여부를 판단하는 단계(S1003) 및 모든 입력과 웨이트에 대한 연산이 완료될 때까지 S1001 단계와 S1002 단계를 반복 수행한 후, 커패시터의 전압과 기준전압을 비교하여 전체합을 출력하는 단계(S1004)를 포함할 수 있다.
먼저, S1001 단계에서 각각의 비트셀들(BC11, BC12, BC13)에 제1 구간(t1)에 연산될 입력들(x1, x2, x3)과 웨이트들(w11, w21, w31)을 인가한다. 제1 구간(t1)에 연산될 입력들(x1, x2, x3)과 웨이트들(w11, w21, w31)이 인가된 비트셀들(BC11, BC12, BC13)의 상태는 앞선 [표 3]과 같다.
비트셀들(BC11, BC12, BC13)에 입력과 웨이트를 인가한 다음, S1002 단계에서 증폭기(131)를 이용하여 1.008 V의 비트셀 라인 전압(VBC)을 인가한다. 비트셀 라인(110)의 합성 저항은 40 MΩ 이므로, 인가된 전압에 의해 25.2 ㎁의 비트셀 라인 전류(I)가 흐를 수 있다.
비트셀 라인 전류(I)는 미러 회로부(130)에 의해 복제되어 미러 전류(I')가 전하 충전부(150)로 전달되고, 충전 트렌지스터(TRC)의 동작에 의해 커패시터(C1)가 1초(ns) 동안 충전될 수 있다. 도 10의 실시예에서는 25.2 ㎁ 전류에 의해 20 f[F]인 커패시터(C1)가 1.26 mV의 전압으로 충전될 수 있다. 제1 구간(t1)의 커패시터의 충전 상태는 앞선 [표 4]와 같다.
이후, 모든 입력들과 웨이트들에 대한 연산이 완료된 것으로 판단될(S1003) 때까지 S1001 단계와 S1002 단계를 반복 수행한다. 구체적으로, 먼저 각각의 비트셀들(BC11, BC12, BC13)에 제2 구간(t2)에 연산될 입력들(x4, x5, x6)과 웨이트들(w41, w51, w61)을 인가한다. 비트셀들(BC11, BC12, BC13)에 입력과 웨이트를 인가하는 동안에는 충전 트렌지스터(TRC)는 오프(Off)되어 있다. 따라서, 커패시터(C1)에 저장된 전하는 보존되고, 커패시터(C1)의 전압은 제1 구간(t1)에 충전된 전압으로 유지될 수 있다. 비트셀들(BC11, BC12, BC13)에 포함된 가변저항들이 자기 터널 접합(MTJ)인 경우 하나의 가변저항에 입력과 웨이트를 인가하는데 필요한 시간은 일반적으로 20ns ~ 40ns 정도로, 제2 구간(t2)에 연산할 입력과 웨이트를 인가하는 동안 커패시터(C1)에 충전된 전하가 방전되는 방전량은 무시할 수 있다. 제2 구간(t2)에 연산될 입력들(x4, x5, x6)과 웨이트들(w41, w51, w61)이 인가된 비트셀들(BC11, BC12, BC13)의 상태는 앞선 [표 8]과 같다.
비트셀들(BC11, BC12, BC13)에 입력과 웨이트를 인가한 다음, 증폭기(131)를 이용하여 1.008 V의 비트셀 라인 전압(VBC)을 인가한다. 제2 구간(t2)에 비트셀 라인(110)의 합성 저항은 35 MΩ 이므로, 28.8 ㎁의 비트셀 라인 전류(I)가 흐를 수 있다.
비트셀 라인 전류(I)는 미러 회로부(130)에 의해 복제되어 미러 전류(I')가 전하 충전부(150)로 전달되고, 충전 트렌지스터(TRC)가 온(On)되어 커패시터(C1)가 1ns 동안 충전될 수 있다. 28.8 ㎁ 전류가 1ns 동안 커패시터(C1)에 충전하는 전하량은 28.8 aC이며, 커패시터(C1)에는 제1 구간(t1)에 충전된 25.2 aC의 전하가 보존되어 있으므로, 제2 구간(t2)에 충전된 전하량이 누적되면 54 aC의 전하가 충전될 수 있다. Q = CV 이므로 제2 구간(t2) 이후의 커패시터(C1) 전압은 2.7 mV가 될 수 있다. 도 11은 제1 및 제2 구간(t1, t2)에 커패시터(C1)의 전압의 변화를 도시하는 도면이고, 제1 및 제2 구간(t1, t2) 동안 충전되는 전하와 전압을 정리하면 아래 [표 10]과 같다.
구간 전류 (㎁) 충전시간 (ns) 충전 전하(aC) 커패시터 전압(mV)
t1 25.2 1 25.2 1.26
t2 28.8 1 28.8 1.44
t1 + t2 - - 54 2.7
모든 입력들과 웨이트들에 대한 연산이 완료된 것으로 판단되면(S1003), S1004 단계에서 커패시터(C1) 전압과 기준전압을 비교하여 전체합이 출력된다. 커패시터(C1)에 충전된 전압은 제1 구간(t1)의 비트셀 라인의 합성 저항 값과 제2 구간(t2)의 비트셀 라인의 합성 저항 값을 합산한 값에 대응될 수 있으므로, 커패시터(C1)에 충전된 전압으로부터 전체합을 알 수 있다.
도 10의 실시예에서는 제1 및 제2 구간들(t1, t2)에 인가한 입력과 웨이트의 곱의 합인 부분합을 출력하지 않고 커패시터(C1)의 최종 전압으로부터 전체합을 출력하는 점에서 도 8의 실시예와 차이가 있다. 커패시터(C1)의 전압, 제1 구간(t1)의 합성 저항과 제2 구간(t2)의 합성 저항을 합산한 값, 및 전체합의 관계를 정리하면 아래 [표 11]과 같다.
커패시터 전압 (mV) 합성 저항 합산 값 (MΩ) 전체합
2.24 90 6
2.38 85 4
2.52 80 2
2.7 75 0
2.88 70 -2
3.12 65 -4
3.36 60 -6
도 12는 도 10의 프로세싱 방법 중 전압 측정부(170)에서 커패시터(C1) 전압으로부터 전체합을 출력하는 과정을 설명하기 위한 도면이다.
전압 측정부(170)는 커패시터(C1) 전압이 얼마인지 알기 위해 내부의 비교기(미도시)를 이용하여 기준전압들과 커패시터의 전압을 비교할 수 있다. 기준전압들에 의해 구분될 수 있는 구간 및 각 구간에 대응하는 전체합을 정리하면 아래 [표 12]와 같다.
기준전압 (mV) 커패시터 전압이 속하는 구간 (mV) 전체합
- 2.31 이하 6
2.31
2.31 ~ 2.45 4
2.45
2.45 ~ 2.61 2
2.61
2.61 ~ 2.79 0
2.79
2.79 ~ 3.00 -2
3.00
3.00 ~ 3.24 -4
3.24
3.24 이상 -6
-
도 10의 실시예에서, 제2 구간(t2)까지 충전이 완료된 커패시터(C1)의 전압 2.7 mV는, 기준전압 2.61 mV 보다 크고, 기준전압 2.79 mV 보다 작은 구간에 속하므로, 도 12 및 [표 12]를 참조하면, 전압 측정부(170)는 결과값 '0'을 출력할 수 있다. 전압 측정부(170)가 도출한 결과값 '0'은 [수학식 5]의 연산 결과 일 수 있으며, 이 값은 활성 함수가 적용되어 도 7의 제3 레이어(703)의 노드(b1)에 입력으로 제공될 수 있다. 활성 함수 값은 도 7의 제1 레이어(701)에서 제2 레이어(702)로 제공되는 것과 같이 -1 또는 1의 바이너리 값일 수 있다.
도 10의 실시예에서는 제1 및 제2 구간들(t1, t2)의 2회에 걸쳐 커패시터(C1)에 전하를 누적하여 충전하는 실시예에 대해 설명하였으나, 3회 이상 누적하여 충전하는 것도 가능하다. 예를 들면, 비트셀이 3개인 도 5의 프로세싱 장치(100)를 이용하여 곱셈이 12번 포함된 수식을 연산하기 위해서는 4회 누적 충전한 값을 이용할 수 있다. 만약 커패시터(C1)의 용량이 연산에서 요구되는 만큼 전하를 누적 충전하기에 충분하지 않은 경우, 미러 전류(I')가 비트셀 전류(I) 보다 작을 수 있도록 미러 회로부(130)를 설계할 수 있다. 예를 들어, 연산에서 누적될 수 있는 전하량은 20 μC 이나 커패시터(C1)의 최대 저장 용량은 10 μC인 경우, 미러 전류(I')가 비트셀 전류(I)의 1/2보다 작게 미러 회로부(130)를 설계할 수 있다. 앞서 도 6을 참조하여 설명한 것과 같이, 미러 회로부(130)에 포함된 트렌지스터들의 채널 종횡비(W/L)를 조절하여 미러 전류(I')를 줄일 수 있으며, 미러 전류(I')가 1/2로 줄어들면 요구되는 커패시터(C1)의 저장 용량이 2배로 늘어나는 것과 같은 효과를 볼 수 있다.
도 13 및 도 14는 도 5의 전압 측정부가 활성 함수 값을 출력하는 프로세싱 방법의 동작을 설명하기 위한 도면이다.
앞서 [수학식 1]과 관련하여 설명한 바와 같이, [수학식 5]와 같은 MAC 연산 결과에 시그모이드(Sigmoid) 등의 활성 함수가 적용된 값이 다음 노드에서 활용되기 때문에, 도 5의 전압 측정부(170)가 전체합이 아닌 활성 함수 값을 출력하면 연산 효율이 높아질 수 있다. 다시 말하면, 전압 측정부(170)가 전체합이 아닌, 전체합의 활성 함수 값을 출력하면, 전체합을 출력하여 메모리에 저장하고 CPU 등의 프로세서를 이용하여 전체합의 활성 함수를 연산하는 과정이 스킵될 수 있다. 도 13의 프로세싱 방법에서 S1301 내지 S1303 단계들은 도 10의 프로세싱 방법에서의 S1001 내지 S1003 단계들과 유사하게 수행될 수 있다. 하지만, 도 10의 프로세싱 방법에서 전체합을 출력하는 S1004 단계는, 도 13의 S1304 단계와 같이 활성 함수 값을 출력하는 단계로 변경될(또는 대체될) 수 있다.
도 10의 실시예에서 전압 측정부(170)가 전체합을 출력하지 않고, 1 또는 -1의 활성 함수 값을 출력하는 경우를 예로 들면, 전체합이 2 이상인 경우 활성 함수 값 '1'이 출력되고, 전체합이 0 이하인 경우 활성 함수 값 '-1'이 출력될 수 있다. 이것을 [표 11]을 참조하여 커패시터(C1) 전압, 전체합 및 활성 함수 값을 정리하면 아래 [표 13]과 같다.
커패시터 전압 (mV) 전체합 활성 함수 값
2.24 6 1
2.38 4 1
2.52 2 1
2.70 0 -1
2.88 -2 -1
3.12 -4 -1
3.36 -6 -1
[표 13]을 참조하면, 전체합이 2 이상인 경우는 커패시터(C1)의 전압이 2.52 mV 보다 작은 경우에 대응하고, 전체합이 0 이하인 경우는 커패시터(C1)의 전압이 2.70 mV 보다 큰 경우에 대응하므로, 2.52 mV 와 2.70 mV의 중간 값인 2.61 mV를 기준전압으로 정하고 커패시터(C1)의 전압이 기준전압을 초과한 경우는 -1, 이하인 경우는 1을 출력하도록 하면, 전압 측정부(170)가 앞선 [표 13]의 활성 함수 값을 출력할 수 있다. 기준전압과 전압 측정부(170)의 출력을 정리하면 아래 [표 14]와 같다.
기준전압 (mV) 커패시터 전압이 속하는 구간 (mV) 출력값
- 2.61 이하 1
2.61
2.61 초과 -1
-
도 14 및 [표 14]를 참조하면, 도 10의 실시예의 제2 구간(t2)까지 충전이 완료된 커패시터(C1)에는 2.70 mV의 전압이 충전되므로 전압 측정부(170)는 활성 함수 값 '-1'을 출력할 수 있다. 이 활성 함수 값은 메모리에 저장되었다가 활용되거나 또는 바로 도 7의 제3 레이어(703)의 노드(b1)에 입력으로 제공될 수 있다.
도 15는 일 실시예에 따른 프로세싱 장치의 칩 블록도이다.
도 15를 참고하면, 프로세싱 장치(700)는 비트셀 어레이(710), 컨트롤러(720), 로우(Row) 디코더(730), 컬럼(Column) 디코더(740), 웨이트 드라이버(750), 전원 제어기(760), 데이터 버퍼(770) 및 데이터 출력부(780)를 포함한다.
컨트롤러(720)는 프로세싱 장치(700)의 구동 및 동작에 필요한 명령을 디코딩할 수 있다. 예를 들어, 컨트롤러(720)는 웨이트의 설정, 웨이트 설정 검사, 입력의 인가, 전압의 측정, 부분합/전체합의 출력, 활성 함수 값 출력 등의 명령을 디코딩하고, 이들 명령의 수행에 필요한 구성에 신호를 전달한다.
비트셀 어레이(710)는 앞서 서술한 가변저항들과 스위치들로 구성된 비트셀들의 어레이일 수 있다. 여기서, 가변저항은 자성 물질을 갖는 자기 터널 접합(MTJ) 소자일 수 있다.
로우 디코더(730)는 로우 어드레스와 입력 신호를 받아 비트셀 어레이(710)에 입력 값을 인가할 수 있다. 로우 디코더(730)는 DAC(Digital to Analog Converter)(또는 ADC(Analog to Digital Converter))를 포함할 수 있고, 입력 값에 기초하여 가변저항과 직렬로 연결된 스위치에 구동 전압을 인가할 수 있다. 또한, 로우 디코더(730)는 비트셀 어레이(710) 내 비트셀에 포함된 가변저항의 저항 값을 변경할 수 있고, 이때 타겟 가변저항이 선택될 수 있도록 연관된 스위치들에 구동 전압을 인가할 수 있다.
컬럼 디코더(740)는 컬럼 어드레스와 웨이트 설정 신호를 수신하여 가변저항에 전압/전류를 인가할 수 있다. 컬럼 디코더(740)는 전압 측정이 필요한 비트셀 라인, 및 웨이트 설정이 요구되는 비트셀과 연결된 웨이트 라인을 선택할 수 있다.
웨이트 드라이버(750)는, 로우 디코더(730) 및 컬럼 디코더(740)에 의해 선택된 비트셀에 웨이트 데이터를 전달할 수 있다. 웨이트 드라이버(750)는 데이터 버퍼(770)로부터 수신된 데이터에 기반하여 컬럼 디코더(740)에 연결된 웨이트 라인을 구동하여, 웨이트의 설정 및 설정된 웨이트의 검사를 수행할 수 있다. 웨이트 드라이버(750)는 가변저항에 원하는 저항 값이 설정되었는지 검사하기 위하여, 웨이트 라인에 검사 전류를 인가하는 전류원을 포함할 수 있다.
전원 제어기(760)는 컨트롤러(720)의 신호를 수신하여 전원을 구동하며, 증폭기의 양(+)의 입력단자에 인가되는 전압과 미러 회로부의 트렌지스터들에 소스 전압을 인가할 수 있다.
데이터 출력부(780)는 도 5의 전압 측정부(170)를 포함할 수 있으며, 비트셀 라인 또는 비트셀 라인 일단에 연결된 커패시터의 전압을 측정하고, 측정 값을 외부 메모리(미도시)에 저장할 수 있다. 데이터 출력부(780)는 측정 값을 디지털 값으로 출력하는 ADC를 포함할 수 있다.
도 16은 일 예에 따른 전자 시스템을 나타내는 블록도이다.
도 16을 참고하면, 전자 시스템(800)은 프로세싱 장치를 포함한 뉴럴 네트워크 장치(830)를 기초로 입력 데이터를 분석하여 유효한 정보를 추출하고, 추출된 정보를 기초로 상황 판단을 하거나 또는 전자 시스템(800)이 탑재되는 전자 디바이스의 구성들을 제어할 수 있다. 예컨대 전자 시스템(800)은 드론(Drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 로봇 장치, 스마트 TV, 스마트폰, 의료 디바이스, 모바일 디바이스, 영상 표시 디바이스, 계측 디바이스, IoT 디바이스 등에 적용될 수 있으며, 이 외에도 다양한 종류의 전자 디바이스들에 탑재될 수 있다.
전자 시스템(800)은 뉴럴 네트워크 장치(830)에 더하여 프로세싱 유닛(810), RAM(820), 메모리(840), 센서 모듈(850) 및 통신 모듈(Tx/Rx Module)(860)을 포함할 수 있다. 추가적으로, 전자 시스템(800)은 입출력 모듈, 보안 모듈, 전력 제어 장치 등을 더 포함할 수 있다. 전자 시스템(800)의 하드웨어 구성들 중 일부는 반도체 칩에 탑재될 수 있다. 뉴럴 네트워크 장치(830)는 앞서 설명된 실시예들의 프로세싱 장치가 온-칩(On-chip) 타입으로 구현된 것이거나, 또는 앞서 설명된 실시예들의 프로세싱 장치를 일부로서 포함하는 장치일 수 있다.
프로세싱 유닛(810)은 전자 시스템(800)의 전반적인 동작을 제어할 수 있다. 프로세싱 유닛(810)은 CPU일 수 있으며, 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 프로세싱 유닛(810)은 메모리(840)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있고, 메모리(840)에 저장된 프로그램들을 실행함으로써, 뉴럴 네트워크 장치(830)의 기능을 제어할 수 있다. 프로세싱 유닛(810)은 CPU 외에 GPU(Graphic Processing Unit), AP(Application Processor) 등으로 구현될 수도 있다.
RAM(820)은 프로그램들, 데이터, 또는 명령들(Instructions)을 일시적으로 저장할 수 있다. 예컨대 메모리(840)에 저장된 프로그램들 및/또는 데이터는 프로세싱 유닛(810)의 제어 또는 부팅 코드에 따라 RAM(820)에 일시적으로 저장될 수 있다. RAM(820)은 DRAM(Dynamic RAM) 또는 SRAM(Static RAM) 등의 메모리 디바이스로 구현될 수 있다.
뉴럴 네트워크 장치(830)는 수신되는 입력 데이터를 기초로 뉴럴 네트워크의 연산을 수행하고, 수행 결과를 기초로 정보 신호를 생성할 수 있다. 뉴럴 네트워크 장치(830)는 앞서 설명된 실시예들의 프로세싱 장치를 포함할 수 있다. 뉴럴 네트워크는 CNN(Convolution Neural Network), RNN(Recurrent Neural Networks), Deep Belief Networks, Restricted Boltzman Machines 등을 포함할 수 있으나 이에 제한되지 않는다. 뉴럴 네트워크 장치(830)는 뉴럴 네트워크 전용 하드웨어 가속기(Hardware Accelerator)에 해당될 수 있다.
정보 신호는 음성 인식 신호, 사물 인식 신호, 영상 인식 신호, 생체 정보 인식 신호 등과 같은 다양한 종류의 인식 신호를 포함할 수 있다. 예를 들어, 뉴럴 네트워크 장치(830)는 비디오 스트림에 포함되는 프레임 데이터를 입력 데이터로서 수신하고, 프레임 데이터가 나타내는 이미지에 포함된 사물에 대한 인식 신호를 생성할 수 있다. 전자 시스템(800)이 탑재된 전자 장치의 종류 또는 기능에 따라 뉴럴 네트워크 장치(830)는 다양한 종류의 입력 데이터를 수신할 수 있고, 입력 데이터에 따른 인식 신호를 생성할 수 있다.
메모리(840)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 메모리(840)는 휘발성 메모리 또는 불휘발성 메모리를 포함할 수 있다. 불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-Change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함한다. 휘발성 메모리는 DRAM (Dynamic RAM), SRAM (Static RAM), SDRAM (Synchronous DRAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등을 포함한다. 메모리(840)는 예를 들어, HDD(Hard Disk Drive), SSD(Solid State Drive), CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(Extreme Digital) 또는 Memory Stick을 포함할 수 있다.
센서 모듈(850)은 전자 시스템(800)이 탑재되는 전자 장치 주변의 정보를 수집할 수 있다. 센서 모듈(850)은 전자 장치의 외부로부터 신호(예컨대 영상 신호, 음성 신호, 자기 신호, 생체 신호, 터치 신호 등)를 센싱 또는 수신하고, 센싱 또는 수신된 신호를 데이터로 변환할 수 있다. 이를 위해, 센서 모듈(850)은 센싱 장치, 예컨대 마이크, 촬상 장치, 이미지 센서, 라이더(LIDAR; Light Detection And Ranging) 센서, 초음파 센서, 적외선 센서, 바이오 센서, 또는 터치 센서 등 다양한 종류의 센싱 장치일 수 있다.
센서 모듈(850)은 변환된 데이터를 뉴럴 네트워크 장치(830)에 입력 데이터로서 제공할 수 있다. 예를 들어, 센서 모듈(850)은 이미지 센서를 포함할 수 있으며, 전자 장치의 외부 환경을 촬영하여 비디오 스트림을 생성하고, 비디오 스트림의 연속하는 데이터 프레임을 뉴럴 네트워크 장치(830)에 입력 데이터로서 순서대로 제공할 수 있다. 그러나 이에 제한되는 것은 아니며 센서 모듈(850)은 다양한 종류의 데이터를 뉴럴 네트워크 장치(830)에 제공할 수 있다.
통신 모듈(860)은 외부 장치와 통신할 수 있는 다양한 유선 또는 무선 인터페이스를 구비할 수 있다. 예컨대 통신 모듈(860)은 유선 근거리통신망(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)에 접속 가능한 통신 인터페이스 등을 포함할 수 있다.
전자 시스템(800)은 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리 디바이스, 디스크 드라이브와 같은 영구 저장부(Permanent Storage), 외부 장치와 통신하는 통신 포트뿐만 아니라, 터치 패널, 키(Key), 버튼 등과 같은 사용자 인터페이스 장치 등을 더 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 프로세서 상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다.
앞서 설명한 실시예들은 예시들일 뿐이며, 어떠한 방법으로도 기술적 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 잘 알려진 전자적인 구성들, 제어 시스템들, 소프트웨어, 및 다른 기능적인 측면들의 기재는 생략되었다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로 구현될 수 있다.
앞선 실시예들과 관련된 기술 분야에서 통상의 지식을 가진 자는 상술한 기재의 본질적인 특성에서 벗어나지 않는 범위에서 실시예들이 변형된 형태로 구현될 수 있음을 이해할 수 있다. 실시예들의 설명은 한정적인 관점이 아니라 설명적인 관점으로 고려되어야 한다. 권리 범위는 전술한 설명이 아니라 특허청구범위에 기재되어 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 권리범위에 포함된 것으로 해석되어야 한다.

Claims (31)

  1. 직렬로 연결된 복수의 비트셀들을 포함하는 비트셀 라인;
    상기 비트셀 라인에 흐르는 전류를 일정 비율로 복제함으로써 미러 전류를 생성하는 미러 회로부;
    상기 미러 회로부에 의해 복제된 상기 미러 전류가 인가됨으로써 상기 미러 전류에 대응하는 전압을 충전하는 전하 충전부; 및
    상기 전하 충전부에 상기 충전된 전압에 기초하여 상기 비트셀 라인에 인가된 입력들과 웨이트들의 Multiply Accumulate(MAC) 연산 결과에 대응하는 값을 출력하는 전압 측정부;
    를 포함하는, 프로세싱 장치.
  2. 제1항에 있어서,
    상기 미러 회로부는 상기 비트셀 라인과 연결된 제1 트렌지스터, 및 상기 전하 충전부와 연결되어 상기 전하 충전부에 상기 미러 전류를 제공하는 제2 트렌지스터를 포함하고,
    상기 제1 트렌지스터의 게이트와 상기 제2 트렌지스터의 게이트는 서로 연결된, 프로세싱 장치.
  3. 제2항에 있어서,
    상기 제2 트렌지스터의 채널 종횡비는 상기 제1 트렌지스터의 채널 종횡비보다 작거나 같은, 프로세싱 장치.
  4. 제2항에 있어서,
    상기 미러 회로부는 상기 비트셀 라인에 연결되어 상기 비트셀 라인의 일단의 전압을 일정하게 유지하는 증폭기를 포함하고,
    상기 증폭기의 출력단자는 상기 제1 트레지스터의 게이트 및 상기 제2 트렌지스터의 게이트와 연결된, 프로세싱 장치.
  5. 제1항에 있어서,
    상기 미러 회로부는 상기 비트셀 라인에 연결되어 상기 비트셀 라인의 일단의 전압을 일정하게 유지하는 증폭기를 포함하는, 프로세싱 장치.
  6. 제5항에 있어서,
    상기 증폭기의 음(-)의 입력단자는 상기 비트셀 라인에 연결된, 프로세싱 장치.
  7. 제1항에 있어서,
    상기 일정 비율은 1 이하인, 프로세싱 장치.
  8. 제1항에 있어서,
    상기 일정 비율은 1/2 이하인, 프로세싱 장치.
  9. 제1항에 있어서,
    상기 전하 충전부는
    상기 미러 전류가 인가되는 시간에 기초하여 전하를 충전하는 커패시터; 및
    상기 미러 전류에 의해 상기 커패시터가 충전되는 상기 시간을 제어하는 충전 트렌지스터를 포함하는, 프로세싱 장치.
  10. 제9항에 있어서,
    상기 전압 측정부는, 상기 커패시터 양단의 전압과 기준전압을 비교하는 비교기를 포함하는, 프로세싱 장치.
  11. 제1항에 있어서,
    상기 MAC 연산 결과에 대응하는 상기 값은 상기 비트셀 라인에 인가된 상기 입력들과 상기 웨이트들의 상기 MAC 연산 결과에 대한 활성 함수 값을 포함하는, 프로세싱 장치.
  12. 제1항에 있어서,
    상기 비트셀들 각각은 병렬로 연결된 2개의 가변저항들과 상기 가변저항들 각각과 직렬로 연결된 스위치들을 포함하는, 프로세싱 장치.
  13. 제12항에 있어서,
    상기 비트셀 라인은
    상기 가변저항들 각각의 저항값을 변경하기 위한 신호를 전달하는 비트-데이터 라인; 및
    상기 가변저항들 각각을 상기 비트-데이터 라인과 연결하기 위한 비트-데이터 라인 스위치를 더 포함하는, 프로세싱 장치.
  14. 직렬로 연결된 복수의 비트셀들을 포함하는 비트셀 라인에 제1 입력과 제1 웨이트를 인가하는 단계;
    상기 비트셀 라인에 인가된 전압에 의해 상기 비트셀 라인에 흐르는 전류를 일정 비율로 복제한 제1 미러 전류를 전하 충전부로 전달하는 단계;
    상기 제1 미러 전류로 일정 시간 동안 커패시터를 충전하는 단계;
    상기 비트셀 라인에 제2 입력과 제2 웨이트를 인가하는 단계;
    상기 비트셀 라인에 인가된 상기 전압에 의해 상기 비트셀 라인에 흐르는 전류를 일정 비율로 복제한 제2 미러 전류를 전하 충전부로 전달하는 단계;
    상기 제2 미러 전류로 일정시간 동안 상기 커패시터를 충전하는 단계; 및
    상기 커패시터에 충전된 커패시터 전압을 이용하여 상기 비트셀 라인에 인가된 입력들과 웨이트들의 Multiply Accumulate(MAC) 연산 결과에 대응하는 값을 출력하는 단계;
    를 포함하는, 프로세싱 방법.
  15. 제14항에 있어서,
    상기 일정 비율은 1 이하인, 프로세싱 방법.
  16. 제14항에 있어서,
    상기 일정 비율은 1/2 이하인, 프로세싱 방법.
  17. 제14항에 있어서,
    상기 제2 미러 전류로 일정시간 동안 커패시터를 충전하는 단계는
    상기 제1 미러 전류에 의해 충전된 상기 커패시터에 전하를 누적하여 충전하는, 프로세싱 방법.
  18. 제14항에 있어서,
    상기 출력하는 단계는
    상기 충전된 커패시터 전압과 기준전압을 비교함으로써, 상기 값을 출력하는, 프로세싱 방법.
  19. 제14항에 있어서,
    상기 MAC 연산 결과에 대응하는 상기 값은 상기 비트셀 라인에 인가된 상기 입력들과 상기 웨이트들의 상기 MAC 연산 결과에 대한 활성 함수 값을 포함하는, 프로세싱 방법.
  20. 뉴럴 네트워크 장치; 및
    상기 뉴럴 네트워크 장치의 기능을 제어하는 프로세싱 유닛을 포함하고,
    상기 뉴럴 네트워크 장치는,
    직렬로 연결된 복수의 비트셀들을 포함하는 비트셀 라인;
    상기 비트셀 라인에 흐르는 전류를 일정 비율로 복제함으로써 미러 전류를 생성하는 미러 회로부;
    상기 미러 회로부에 의해 복제된 상기 미러 전류가 인가됨으로써 상기 미러 전류에 대응하는 전압을 충전하는 전하 충전부; 및
    상기 전하 충전부에 상기 충전된 전압에 기초하여 상기 비트셀 라인에 인가된 입력들과 웨이트들의 Multiply Accumulate(MAC) 연산 결과에 대응하는 값을 출력하는 전압 측정부;
    를 포함하는 전자 시스템.
  21. 제20항에 있어서,
    상기 미러 회로부는
    상기 비트셀 라인과 연결된 제1 트렌지스터, 및 상기 전하 충전부와 연결되어 상기 전하 충전부에 상기 미러 전류를 제공하는 제2 트렌지스터를 포함하고,
    상기 제1 트렌지스터의 게이트와 상기 제2 트렌지스터의 게이트는 서로 연결된, 전자 시스템.
  22. 제21항에 있어서,
    상기 제2 트렌지스터의 채널 종횡비는 상기 제1 트렌지스터의 채널 종횡비보다 작거나 같은, 전자 시스템.
  23. 제21항에 있어서,
    상기 미러 회로부는 상기 비트셀 라인에 연결되어 상기 비트셀 라인의 일단의 전압을 일정하게 유지하는 증폭기를 포함하고,
    상기 증폭기의 출력단자는 상기 제1 트레지스터의 게이트 및 상기 제2 트렌지스터의 게이트와 연결된, 전자 시스템.
  24. 제20항에 있어서,
    상기 미러 회로부는, 상기 비트셀 라인에 연결되어 상기 비트셀 라인의 일단의 전압을 일정하게 유지하는 증폭기를 포함하는, 전자 시스템.
  25. 제24항에 있어서,
    상기 증폭기의 음(-)의 입력단자는 상기 비트셀 라인에 연결된, 전자 시스템.
  26. 제20항에 있어서,
    상기 일정 비율은 1 이하인, 전자 시스템.
  27. 제21항에 있어서,
    상기 전하 충전부는
    상기 미러 전류가 인가되는 시간에 기초하여 전하를 충전하는 커패시터; 및
    상기 미러 전류에 의해 상기 커패시터가 충전되는 상기 시간을 제어하는 충전 트렌지스터를 포함하는, 전자 시스템.
  28. 제27항에 있어서,
    상기 전압 측정부는, 상기 커패시터 양단의 전압과 기준전압을 비교하는 비교기를 포함하는, 전자 시스템.
  29. 제20항에 있어서,
    상기 MAC 연산 결과에 대응하는 상기 값은 상기 비트셀 라인에 인가된 상기 입력들과 상기 웨이트들의 상기 MAC 연산 결과에 대한 활성 함수 값을 포함하는, 전자 시스템.
  30. 제20항에 있어서,
    상기 비트셀들 각각은 병렬로 연결된 2개의 가변저항들과 상기 가변저항들 각각과 직렬로 연결된 스위치들을 포함하는, 전자 시스템.
  31. 제30항에 있어서,
    상기 비트셀 라인은
    상기 가변저항들 각각의 저항값을 변경하기 위한 신호를 전달하는 비트-데이터 라인; 및
    상기 가변저항들 각각을 상기 비트-데이터 라인과 연결하기 위한 비트-데이터 라인 스위치를 더 포함하는, 전자 시스템.
KR1020200100631A 2020-08-11 2020-08-11 프로세싱 장치 및 이를 포함하는 전자 시스템 KR20220020097A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020200100631A KR20220020097A (ko) 2020-08-11 2020-08-11 프로세싱 장치 및 이를 포함하는 전자 시스템
CN202110124540.0A CN114077420A (zh) 2020-08-11 2021-01-29 处理设备和包括处理设备的电子装置
US17/181,259 US11581042B2 (en) 2020-08-11 2021-02-22 Processing apparatus and electronic device including the same
EP21172461.2A EP3955253A1 (en) 2020-08-11 2021-05-06 Processing apparatus and electronic device including the same
JP2021128185A JP2022032999A (ja) 2020-08-11 2021-08-04 プロセッシング装置、及びそれを含む電子システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200100631A KR20220020097A (ko) 2020-08-11 2020-08-11 프로세싱 장치 및 이를 포함하는 전자 시스템

Publications (1)

Publication Number Publication Date
KR20220020097A true KR20220020097A (ko) 2022-02-18

Family

ID=75825651

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200100631A KR20220020097A (ko) 2020-08-11 2020-08-11 프로세싱 장치 및 이를 포함하는 전자 시스템

Country Status (5)

Country Link
US (1) US11581042B2 (ko)
EP (1) EP3955253A1 (ko)
JP (1) JP2022032999A (ko)
KR (1) KR20220020097A (ko)
CN (1) CN114077420A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220116757A (ko) * 2021-02-15 2022-08-23 삼성전자주식회사 Mtj 소자를 기반으로 한 프로세싱 장치 및 그 장치를 포함하는 전자 시스템
US20230410892A1 (en) * 2022-05-25 2023-12-21 Stmicroelectronics International N.V. Bit line read current mirroring circuit for an in-memory compute operation where simultaneous access is made to plural rows of a static random access memory (sram)
US20230386566A1 (en) * 2022-05-25 2023-11-30 Stmicroelectronics International N.V. Bit line voltage clamping read circuit for an in-memory compute operation where simultaneous access is made to plural rows of a static random access memory (sram)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5115492A (en) 1990-12-14 1992-05-19 General Electric Company Digital correlators incorporating analog neural network structures operated on a bit-sliced basis
DE102004051152B4 (de) * 2004-10-20 2007-12-20 Qimonda Ag NOR-Speicheranordnung von resistiven Speicherelementen
WO2011064801A1 (en) * 2009-11-30 2011-06-03 Andrea Redaelli Memory including a low thermal budget selector switch on a variable resistance memory cell
US8294607B2 (en) 2010-10-29 2012-10-23 General Electric Company Multichannel digitizer and method of digitizing
US9509326B1 (en) 2015-06-10 2016-11-29 Intel IP Corporation Apparatus for correcting linearity of a digital-to-analog converter
US11315009B2 (en) 2017-03-03 2022-04-26 Hewlett Packard Enterprise Development Lp Analog multiplier-accumulators
US11061646B2 (en) 2018-09-28 2021-07-13 Intel Corporation Compute in memory circuits with multi-Vdd arrays and/or analog multipliers
WO2020068121A1 (en) 2018-09-28 2020-04-02 Hewlett Packard Enterprise Development Lp Charge metering circuit for memristor
US11048434B2 (en) 2018-09-28 2021-06-29 Intel Corporation Compute in memory circuits with time-to-digital computation
US11056185B2 (en) 2018-10-12 2021-07-06 International Business Machines Corporation Apparatus for deep learning operations on resistive crossbar array
US20200194668A1 (en) * 2018-12-14 2020-06-18 Sandisk Technologies Llc Interfacial resistive memory gate stack transistor cell and methods of manufacturing the same
US11573792B2 (en) 2019-09-03 2023-02-07 Samsung Electronics Co., Ltd. Method and computing device with a multiplier-accumulator circuit
KR20210028063A (ko) 2019-09-03 2021-03-11 삼성전자주식회사 곱셉 누적기 회로를 이용한 컴퓨팅 장치 및 방법
KR20210144417A (ko) 2020-05-22 2021-11-30 삼성전자주식회사 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치
US11568228B2 (en) * 2020-06-23 2023-01-31 Sandisk Technologies Llc Recurrent neural network inference engine with gated recurrent unit cell and non-volatile memory arrays
KR20220004430A (ko) 2020-07-03 2022-01-11 삼성전자주식회사 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치

Also Published As

Publication number Publication date
US20220051717A1 (en) 2022-02-17
JP2022032999A (ja) 2022-02-25
EP3955253A1 (en) 2022-02-16
CN114077420A (zh) 2022-02-22
US11581042B2 (en) 2023-02-14

Similar Documents

Publication Publication Date Title
US11804266B2 (en) Apparatus and method with in-memory processing
Haensch et al. The next generation of deep learning hardware: Analog computing
KR20220020097A (ko) 프로세싱 장치 및 이를 포함하는 전자 시스템
US11756610B2 (en) Apparatus and method with in-memory delay dependent processing
KR20220010362A (ko) 뉴럴 네트워크 장치 및 그의 동작 방법
Sengupta et al. Stochastic inference and learning enabled by magnetic tunnel junctions
EP3944246A1 (en) Processing device comprising bitcell circuits made of a pair of variable resistors in parallel
US20210303266A1 (en) Neuromorphic device and driving method thereof
Angizi et al. Pisa: A non-volatile processing-in-sensor accelerator for imaging systems
Vatajelu et al. Reliability analysis of MTJ-based functional module for neuromorphic computing
KR20220011002A (ko) 프로세싱 장치 및 이를 포함하는 전자 시스템
EP4075260A1 (en) Device and method with multi-bit operation
US11942131B2 (en) Processing apparatuses including magnetic resistors
US20220114427A1 (en) Neural network apparatus
CN114944179A (zh) 基于磁隧道结元件的处理设备和包括处理设备的电子系统
Stephan Spintronic Devices for Neuromorphic Computing
Vincent et al. Reinterpretation of Magnetic Tunnel Junctions as Stochastic Memristive Devices

Legal Events

Date Code Title Description
A201 Request for examination