KR20210158698A - 회로를 이용하여 소정의 연산을 수행하는 장치 및 방법 - Google Patents

회로를 이용하여 소정의 연산을 수행하는 장치 및 방법 Download PDF

Info

Publication number
KR20210158698A
KR20210158698A KR1020200077377A KR20200077377A KR20210158698A KR 20210158698 A KR20210158698 A KR 20210158698A KR 1020200077377 A KR1020200077377 A KR 1020200077377A KR 20200077377 A KR20200077377 A KR 20200077377A KR 20210158698 A KR20210158698 A KR 20210158698A
Authority
KR
South Korea
Prior art keywords
voltage
sampling capacitor
power supply
time
resistors
Prior art date
Application number
KR1020200077377A
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 KR1020200077377A priority Critical patent/KR20210158698A/ko
Priority to US17/093,889 priority patent/US11816447B2/en
Priority to CN202011597038.3A priority patent/CN113835676A/zh
Priority to EP21156290.5A priority patent/EP3929725A1/en
Priority to JP2021094975A priority patent/JP2022008142A/ja
Publication of KR20210158698A publication Critical patent/KR20210158698A/ko

Links

Images

Classifications

    • 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
    • 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/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
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R19/00Arrangements for measuring currents or voltages or for indicating presence or sign thereof
    • G01R19/165Indicating that current or voltage is either above or below a predetermined value or within or outside a predetermined range of values
    • G01R19/16533Indicating that current or voltage is either above or below a predetermined value or within or outside a predetermined range of values characterised by the application
    • G01R19/16538Indicating that current or voltage is either above or below a predetermined value or within or outside a predetermined range of values characterised by the application in AC or DC supplies
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R27/00Arrangements for measuring resistance, reactance, impedance, or electric characteristics derived therefrom
    • G01R27/02Measuring real or complex resistance, reactance, impedance, or other two-pole characteristics derived therefrom, e.g. time constant
    • GPHYSICS
    • G04HOROLOGY
    • G04FTIME-INTERVAL MEASURING
    • G04F10/00Apparatus for measuring unknown time intervals by electric means
    • G04F10/005Time-to-digital converters [TDC]
    • 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/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/62Performing operations exclusively by counting total number of pulses ; Multiplication, division or derived operations using combined denominational and incremental processing by counters, i.e. without column shift
    • 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/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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/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/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
    • 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/0007Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising metal oxide memory material, e.g. perovskites
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02MAPPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
    • H02M3/00Conversion of dc power input into dc power output
    • H02M3/02Conversion of dc power input into dc power output without intermediate conversion into ac
    • H02M3/04Conversion of dc power input into dc power output without intermediate conversion into ac by static converters
    • H02M3/06Conversion of dc power input into dc power output without intermediate conversion into ac by static converters using resistors or capacitors, e.g. potential divider
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/22Circuits having more than one input and one output for comparing pulses or pulse trains with each other according to input signal characteristics, e.g. slope, integral
    • H03K5/24Circuits having more than one input and one output for comparing pulses or pulse trains with each other according to input signal characteristics, e.g. slope, integral the characteristic being amplitude
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4828Negative resistance devices, e.g. tunnel diodes, gunn effect devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Power Engineering (AREA)
  • Nonlinear Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Materials Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Analogue/Digital Conversion (AREA)
  • Electronic Switches (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Dc-Dc Converters (AREA)

Abstract

기생 커패시턴스가 존재하는 회로를 이용하여 소정의 연산을 수행하는 방법 및 장치를 제공할 수 있다. 또한, 순방향 과정에서, 샘플링 커패시터에 걸리는 샘플링 커패시터 전압이 제1 기준 전압에 도달한 시점을 전환 시점으로 결정하고, 전환 시점에서, 샘플링 커패시터를 그라운드 또는 소정의 전압에 연결하고, 전원부를 플로팅시킬 수 있다. 나아가서, 전환 시점 이후 역방향 과정에서, 전원부에 걸리는 전원부 전압이 제2 기준 전압에 도달한 시점을 종료 시점으로 결정하고, 종료 시점에 기초하여 소정의 연산을 수행할 수 있다.

Description

회로를 이용하여 소정의 연산을 수행하는 장치 및 방법{APPARATUS AND METHOD FOR PERFORMING PREDETERMINED OPERATION USING CIRCUIT}
본 개시는 회로를 이용하여 소정의 연산을 수행하는 장치 및 방법에 관한다.
MAC(multiply and accumulate) 연산(operation)이라고도 알려져 있는 곱셈누적 연산은 다양한 분야에서 어플리케이션의 성능을 좌우한다. 예를 들어, 머신 러닝(machine learning)에 있어서, MAC 오퍼레이션의 다중 레이어가 수행될 수 있다.
입력 신호는 입력 벡터를 형성하는 것으로 간주될 수 있다. 입력 신호는 이미지, 바이트 스트림 또는 기타 데이터 세트에 대한 데이터일 수 있다. 입력 신호에는 값 또는 웨이트(weight)의 매트릭스(matrix)가 곱해진다. 출력 신호는 입력 신호와, 이에 대응하는 출력 벡터에 대한 MAC 오퍼레이션의 결과이다. 출력 벡터는 MAC 오퍼레이션의 다음 레이어에 대한 입력 벡터로서 제공될 수 있다.
이와 같은 처리는 다수의 레이어에 대해 반복될 수 있다. 다수의 MAC 연산이 수행되기 때문에, 어플리케이션의 성능은 주로 MAC 연산의 성능에 의해 결정된다. 따라서, 저 전력 및 고속에서 MAC 오퍼레이션을 효율적이고 신뢰성 있게 수행하는 것이 바람직하다.
한편, MAC 연산을 수행하는 회로에는 기생 커패시턴스가 존재하는데, 기생 커패시턴스로 인해 MAC 연산 결과에 에러가 발생할 수 있다. 이에 따라, 기생 커패시턴스로 인한 연산 결과의 에러를 줄이기 위한 연구가 요구되는 실정이다.
회로를 이용하여 소정의 연산을 수행하는 장치 및 방법을 제공하는데 있다. 또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다. 해결하려는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제1 측면은, 회로를 이용하여 소정의 연산을 수행하는 방법에 있어서, 직렬로 연결된 복수의 저항들을 포함하는 저항 그룹의 일단은 전원부에 연결되고, 상기 저항 그룹의 타단은 샘플링 커패시터(sampling capacitor)에 연결되고, 상기 복수의 저항들 사이의 각 노드(node)에 기생 커패시턴스가 존재하며, 상기 방법은, 순방향 과정에서, 상기 샘플링 커패시터에 걸리는 샘플링 커패시터 전압이 제1 기준 전압에 도달한 시점을 전환 시점으로 결정하는 단계; 상기 전환 시점에서, 상기 샘플링 커패시터를 그라운드 또는 소정의 전압에 연결하고, 상기 전원부를 플로팅(floating)시키는 단계; 상기 전환 시점 이후 역방향 과정에서, 상기 전원부에 걸리는 전원부 전압이 제2 기준 전압에 도달한 시점을 종료 시점으로 결정하는 단계; 및 상기 종료 시점에 기초하여 소정의 연산을 수행하는 단계;를 포함하는, 방법을 제공할 수 있다.
또한, 상기 제1 기준 전압은, 상기 전원부에 공급되는 직류 전압에 대해 소정 비율(%)만큼 감소한 값이고, 상기 제2 기준 전압은, 상기 전원부에 공급되는 직류 전압에 대해 ‘100 - 상기 소정 비율’(%)만큼 감소한 값인 것인, 방법을 제공할 수 있다.
또한, 상기 소정의 연산을 수행하는 단계는, 상기 종료 시점에 기초하여, 곱셈 누적 연산을 수행하거나, 상기 저항 그룹의 전체 저항 값을 산출하는 단계;를 포함하는, 방법을 제공할 수 있다.
본 개시의 제 2 측면은, 회로를 이용하여 소정의 연산을 수행하는 방법에 있어서, 직렬로 연결된 복수의 저항들을 포함하는 저항 그룹의 일단은 전원부에 연결되고, 상기 저항 그룹의 타단은 샘플링 커패시터에 연결되고, 상기 복수의 저항들 사이의 각 노드에 기생 커패시턴스가 존재하며, 상기 저항 그룹은 제1 저항 그룹 및 제2 저항 그룹으로 구분되고, 상기 제1 저항 그룹 및 상기 제2 저항 그룹은 병렬로 연결되고, 상기 제1 저항 그룹의 저항 배열 순서는 상기 제2 저항 그룹의 저항 배열 순서와 정반대이며, 상기 방법은, 상기 샘플링 커패시터에 걸리는 샘플링 커패시터 전압이 기준 전압에 도달한 때를 종료 시점으로 결정하는 단계; 및 상기 종료 시점에 기초하여 소정의 연산을 수행하는 단계;를 포함하는, 방법을 제공할 수 있다.
본 개시의 제 3 측면은, 회로를 이용하여 소정의 연산을 수행하는 장치에 있어서, 상기 회로의 일단에 연결된 전원부; 상기 회로의 일단에서 타단 방향으로 직렬로 연결된 복수의 저항들을 포함하는 저항 그룹; 상기 복수의 저항들과 직렬로 연결된 샘플링 커패시터; 상기 복수의 저항들 사이의 각 노드에 존재하는 기생 커패시턴스; 순방향 과정에서, 상기 샘플링 커패시터에 걸리는 샘플링 커패시터 전압과 제1 기준 전압을 비교하고, 상기 샘플링 커패시터 전압이 상기 제1 기준 전압에 도달한 시점의 제1 시간 정보를 출력하는 제1 비교기; 상기 제1 시간 정보가 출력된 때 상기 샘플링 커패시터를 그라운드 또는 소정의 전압에 연결하고, 상기 전원부를 플로팅시키는 프로세서; 및 상기 제1 시간 정보가 출력된 후 역방향 과정에서, 상기 전원부에 걸리는 전원부 전압과 제2 기준 전압을 비교하고, 상기 전원부 전압이 상기 제2 기준 전압에 도달한 시점의 제2 시간 정보를 출력하는 제2 비교기;를 포함하고, 상기 프로세서는 상기 제2 시간 정보에 기초하여 소정의 연산을 수행하는 것인, 장치를 제공할 수 있다.
본 개시의 제 4 측면은, 소정의 연산을 수행하는 회로를 포함하는 장치에 있어서, 상기 회로의 일단에 연결된 전원부; 상기 회로의 일단에서 타단 방향으로 직렬로 연결된 복수의 저항들을 포함하는 저항 그룹; 상기 복수의 저항들과 직렬로 연결된 샘플링 커패시터; 상기 복수의 저항들 사이의 각 노드에 존재하는 기생 커패시턴스; 상기 샘플링 커패시터에 걸리는 샘플링 커패시터 전압과 기준 전압을 비교하고, 상기 샘플링 커패시터 전압이 상기 기준 전압에 도달한 시점의 시간 정보를 출력하는 비교기; 및 상기 시간 정보에 기초하여 소정의 연산을 수행하는 프로세서;를 포함하고, 상기 저항 그룹은 제1 저항 그룹 및 제2 저항 그룹으로 구분되고, 상기 제1 저항 그룹 및 상기 제2 저항 그룹은 병렬로 연결되고, 상기 제1 저항 그룹의 저항 배열 순서는 상기 제2 저항 그룹의 저항 배열 순서와 정반대인 것인, 장치를 제공할 수 있다.
본 개시의 제 5 측면은, 제 1 측면 또는 제 3 측면의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
전술한 본 개시의 과제 해결 수단에 의하면, 회로에 존재하는 기생 커패시턴스로 인해 발생하는 연산 에러를 줄일 수 있다.
또한, 전술한 본 개시의 과제 해결 수단에 의하면, 기생 커패시턴스가 존재하는 회로에서 순방향 과정 및 역방향 과정을 순차적으로 진행함으로써, 회로 내 복수의 저항들 중 적어도 일부가 서로 다른 저항 값을 갖는 경우라도 복수의 저항들에 대한 전제 저항 값이 동일하기만 하다면, 동일한 연산 결과를 획득할 수 있다.
도 1은 일 실시예에 따른 소정의 연산을 수행하는 회로를 도시한 도면이다.
도 2는 일 실시예에 따른 저항성 메모리 소자를 이용하여 곱셈누적 연산을 수행하는 예시를 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 복수의 입력 라인들 및 복수의 출력 라인들을 가지는 곱셈 누적기 회로를 설명하는 도면이다.
도 4는 일 실시예에 따른 시간-디지털 변환기를 설명하는 도면이다.
도 5는 일 실시예에 따른 시간-디지털 변환기의 변환 동작을 설명하는 도면이다.
도 6은 일 실시예에 따른 기생 커패시턴스가 존재하지 않는 회로에서 측정되는 샘플링 커패시터 전압을 설명하기 위한 도면이다.
도 7a 내지 도 7b는 일 실시예에 따른 기생 커패시턴스가 존재하는 회로에서 측정되는 샘플링 커패시터 전압을 설명하기 위한 도면이다.
도 8a 내지 도 8b는 일 실시예에 따른 기생 커패시턴스가 존재하는 회로를 이용하여 소정의 연산을 수행하는 방법을 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 순방향 과정 및 역방향 과정을 통해 소정의 연산을 수행하는 회로를 도시한 도면이다.
도 10은 일 실시예에 따른 순방향 과정을 통해 소정의 연산을 수행하는 회로를 도시한 도면이다.
도 11은 일 실시예에 따른 회로를 이용하여 소정의 연산을 수행하는 방법을 설명하기 위한 흐름도이다.
도 12는 일 실시예에 따른 회로를 이용하여 소정의 연산을 수행하는 방법을 설명하기 위한 흐름도이다.
도 13은 일 실시예에 따른 곱셈 누적기 회로에 의해 구현될 수 있는 뉴럴 네트워크 연산의 예시를 설명하는 도면이다.
본 명세서에서 다양한 곳에 등장하는 “일부 실시예에서” 또는 “일 실시예에서” 등의 어구는 반드시 모두 동일한 실시예를 가리키는 것은 아니다.
본 개시의 일부 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단” 및 “구성”등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 일 실시예에 따른 소정의 연산을 수행하는 회로를 도시한 도면이다.
도 1을 참조하면, 회로(100)는 저항 그룹(110) 및 샘플링 커패시터(120)를 포함할 수 있다.
저항 그룹(110)은 직렬로 연결된 복수의 저항들을 포함할 수 있다. 저항 그룹(110)의 일단은 전원부(150)에 연결되고, 저항 그룹(110)의 타단은 샘플링 커패시터(120)에 연결될 수 있다.
저항 그룹(110)에 포함된 복수의 저항들 각각은, 저항성 메모리 소자일 수 있다. 저항성 메모리 소자는 양단에 인가되는 전압 또는 전류에 따라 서로 다른 저항 상태 사이에서 스위칭할 수 있는 소자로서, 복수의 저항 상태를 가질 수 있는 다양한 물질 예컨대, 전이 금속 산화물, 페로브스카이트(perovskite)계 물질 등과 같은 금속 산화물, 칼코게나이드(chalcogenide)계 물질 등과 같은 상변화 물질, 강유전 물질, 강자성 물질 등을 포함하는 단일막 구조 또는 다중막 구조를 가질 수 있다. 저항성 메모리 소자가 고저항 상태에서 저저항 상태로 변하는 동작을 셋(set) 동작이라 하고, 저저항 상태에서 고저항 상태로 변하는 동작을 리셋(reset) 동작이라 할 수 있다.
저항 그룹(110)에 포함된 복수의 저항들 각각이 저항성 메모리 소자로 동작하는 구체적인 예시는 도 2에서 후술하기로 한다.
샘플링 커패시터(120)는 저항 그룹(110)에 포함된 복수의 저항들과 직렬로 연결될 수 있다. 전원부(150)에 직류 전압이 인가됨에 따라 샘플링 커패시터(120)가 충전될 수 있다. 샘플링 커패시터 전압(Vbot)은 샘플링 커패시터(120)에 충전된 전하량에 대응하는 전압으로서, 샘플링 커패시터(120)의 커패시턴스 및 저항 그룹(110)의 전제 저항 값에 의해 결정되는 시정수(time constant)에 따라 시간에 걸쳐 변화할 수 있다.
구체적으로, 시간에 따른 샘플링 커패시터 전압(Vbot)은 아래의 수학식 1과 같이 표현할 수 있다. 아래의 수학식 1에서, VDD는 전원부(150)에 인가되는 직류 전압, CS는 샘플링 커패시터(120)의 커패시턴스, Ri는 저항 그룹(110)에 포함된 복수의 저항들을 의미한다.
Figure pat00001
일 실시예에서, 회로(100)는 비교기(130)를 더 포함할 수 있다. 비교기(130)는 연산증폭기(OP amp, operational amplifier)로 구성될 수 있다. 비교기(130)의 한 입력 노드는 샘플링 커패시터 전압(Vbot)을 수신할 수 있고, 비교기(130)의 다른 입력 노드는 기준 전압(Vref)을 수신할 수 있다.
비교기(130)는 샘플링 커패시터(120)에 충전되는 전하량에 대응하는 샘플링 커패시터 전압(Vbot)과 기준 전압(Vref)을 비교한 후, 비교 결과를 출력할 수 있다.
예를 들어, 샘플링 커패시터(120)가 충전되는 상황에서, 비교기(130)는 샘플링 커패시터 전압(Vbot)과 기준 전압(Vref)을 비교하고, 샘플링 커패시터 전압(Vbot)이 기준 전압(Vref)에 도달한 때 출력 신호를 생성할 수 있다. 비교기(130)의 출력 신호는 시간-디지털 변환기(TDC, time-to-digital converter)(140)로 전달될 수 있다.
시간-디지털 변환기(140)는 기준 시점(t0)부터, 비교기(130)로부터 출력 신호를 수신하는 종료 시점(t1)까지 소요된 시간을 디지털 값으로 변환하고, 디지털 값을 출력할 수 있다.
시간-디지털 변환기(140)로부터 출력된 디지털 값에 기초하여 소정의 연산이 수행될 수 있다. 일 실시예에서 연산 결과는 곱셈 누적 결과일 수 있다. 다른 실시예에서 연산 결과는 회로(900)의 전체 저항 값일 수 있다.
도 2는 일 실시예에 따른 저항성 메모리 소자를 이용하여 곱셈누적 연산을 수행하는 예시를 설명하기 위한 도면이다.
도 2를 참조하면, 복수의 저항들 각각은 저항성 메모리 소자로 동작할 수 있다.
최초 상태에서, 복수의 저항들 모두는 전도도가 상대적으로 낮은 상태 즉, 고저항 상태에 있을 수 있다. 복수의 저항들 중 적어도 일부가 저저항 상태인 경우, 이들을 고저항 상태로 만드는 초기화 동작이 추가로 필요할 수 있다.
복수의 저항들 각각은 저항 및/또는 전도도 변화에 요구되는 소정의 임계값을 가질 수 있다. 보다 구체적으로, 복수의 저항들 양단에 소정 임계값보다 작은 크기의 전압 또는 전류가 인가되면 복수의 저항들의 전도도는 변하지 않고, 복수의 저항들에 소정 임계값보다 큰 전압 또는 전류가 인가되면 복수의 저항들의 전도도는 변할 수 있다.
이 상태에서, 특정 데이터를 특정 컬럼 배선(220)의 결과로 출력하는 동작을 수행하기 위하여, 특정 데이터에 해당하는 입력 신호가 로우 배선(210)으로 들어올 수 있다. 이때, 입력 신호는 로우 배선(210) 각각에 대한 전기적 펄스의 인가로 나타날 수 있다. 예컨대, 로우 배선(210)으로 '0011'의 데이터에 해당하는 입력 신호가 들어오는 경우, '0'에 대응하는 로우 배선(210) 예컨대, 제1 및 제2 로우 배선(210A, 210B)에는 전기적 펄스가 인가되지 않고, '1'에 대응하는 로우 배선(210) 예컨대, 제3 및 제4 로우 배선(210C, 210D)에만 전기적 펄스가 인가될 수 있다. 이때, 컬럼 배선(220)은 출력을 위하여 적절한 전압 또는 전류로 구동될 수 있다.
일례로서, 특정 데이터를 출력할 컬럼 배선(220)이 이미 정하여진 경우, 이 컬럼 배선(220)은 '1'에 대응하는 로우 배선(210)과의 교차점에 위치하는 복수의 저항들가 셋 동작시 요구되는 전압(이하, 셋 전압) 이상의 크기를 갖는 전압을 인가받도록 구동되고, 나머지 컬럼 배선(220)은 나머지 복수의 저항들가 셋 전압보다 작은 크기의 전압을 인가받도록 구동될 수 있다.
예컨대, 셋 전압의 크기가 Vset이고, '0011'의 데이터를 출력할 컬럼 배선(220)이 제3 컬럼 배선(220C)으로 정하여진 경우, 제3 컬럼 배선(220C)과 제3 및 제4 로우 배선(210C, 210D)과의 교차점에 위치하는 제1 및 제2 시냅스(231, 232)가 Vset 이상의 전압을 인가 받도록, 제3 및 제4 로우 배선(210C, 210D)에 인가되는 전기적 펄스의 크기는 Vset 이상일 수 있고 제3 컬럼 배선(220C)에 인가되는 전압은 0V일 수 있다. 그에 따라 제1 및 제2 시냅스(231, 232)는 저저항 상태가 될 수 있다.
저저항 상태의 제1 및 제2 시냅스(231, 232)의 전도도는 전기적 펄스의 개수가 증가할수록 점진적으로 증가할 수 있다. 인가되는 전기적 펄스의 크기 및 폭은 실질적으로 일정할 수 있다. 제1 및 제2 시냅스(231, 232)를 제외한 나머지 복수의 저항들는 Vset 보다 작은 전압을 인가받도록, 나머지 컬럼 배선 즉, 제1, 제2 및 제4 컬럼 배선(220A, 220B, 220D)에 인가되는 전압은 0V와 Vset 사이의 값 예컨대, 1/2Vset의 값을 가질 수 있다. 그에 따라, 제1 및 제2 시냅스(231, 232)를 제외한 나머지 복수의 저항들의 저항 상태는 변화하지 않을 수 있다. 이러한 경우의 전류 또는 전자의 흐름은 점선 화살표로 나타내었다.
도 3은 일 실시예에 따른 복수의 입력 라인들 및 복수의 출력 라인들을 가지는 곱셈 누적기 회로를 설명하는 도면이다.
일 실시예에 따른 곱셈 누적기 회로(300)는 개별적으로 입력 신호를 수신 가능한 복수의 입력 라인들 및 개별적으로 출력 신호를 출력하는 복수의 출력 라인들을 포함할 수 있다. 복수의 출력 라인들의 각각은 복수의 저항들, 샘플링 커패시터(320) 및 비교기(330)를 포함할 수 있다. 복수의 입력 라인들의 각 입력 라인은 복수의 출력 라인들에 교차할 수 있다.
도 3에 도시된 곱셈 누적기 회로(300)는 m개의 입력 라인들 및 n개의 출력 라인들을 포함할 수 있다. 곱셈 누적기 회로(300)는 복수의 저항들, 복수의 커패시터들, 복수의 비교기들, 시간-디지털 변환기(340), 및 출력부(350)를 포함할 수 있다.
복수의 저항들은 복수의 출력 라인들 및 복수의 입력 라인들을 따라 배치될 수 있다. 예를 들어, 복수의 저항들은 출력 라인을 따라 복수의 입력 라인들마다 배치될 수 있다. 복수의 저항들의 각각은 복수의 입력 라인들 중 해당 저항기(310)가 배치된 입력 라인을 통해 전압을 수신하도록 구성될 수 있다.
예를 들어, 제j 입력 라인(391)을 따라 배치된 저항들은 제j 입력 전압 신호(bj)를 시작 신호에 응답하여 수신하도록 구성될 수 있다. 도 3에서 입력 전압 신호들(b1 내지 bm)은 바이너리 값을 지시하는 전압을 가질 수 있다. 예를 들어, 1의 비트 값을 지시하는 입력 전압 신호는 임의의 전압을 나타낼 수 있고, 0의 비트 값을 지시하는 입력 전압 신호는 플로팅 전압(floating voltage)을 나타낼 수 있다. 복수의 저항들이 배치된 구조를 메모리 어레이(390)로도 나타낼 수 있다.
복수의 커패시터들은 복수의 출력 라인들마다 개별적으로 배치될 수 있다. 복수의 커패시터들의 각각은 복수의 출력 라인들 중 해당 샘플링 커패시터(320)가 배치된 출력 라인을 따라 배치되는 저항들의 타단 및 비교기(330)에 연결될 수 있다.
복수의 커패시터들의 각각은 해당 저항들을 통해 수신되는 전압에 응답하여 전하를 충전할 수 있다. 예를 들어, 제i 출력 라인(392)에 배치된 샘플링 커패시터(320)는, 제i 출력 라인(392)에 배치된 저항들에 인가되는 전압에 따른 전하를 충전할 수 있다.
일 실시예에서, 복수의 커패시터들은 서로 동일한 커패시턴스를 가질 수 있다. 복수의 출력 라인들이 단일 글로벌 카운터의 출력을 공유하므로, 각 출력 라인이 동일한 스케일의 충전 시간 또는 방전 시간을 가져야 하기 때문이다. 충전 시간 및 방전 시간은 합성 저항 값 및 커패시턴스에 대응하는 시정수에 비례하는 스케일을 나타낼 수 있다.
복수의 비교기들은 복수의 출력 라인들마다 개별적으로 배치될 수 있다. 복수의 비교기들 각각은 복수의 출력 라인들 중 해당 비교기(330)가 배치된 출력 라인을 따라 배치되는 저항들의 타단 및 샘플링 커패시터(320)와 연결될 수 있다.
복수의 비교기들 각각은 해당 샘플링 커패시터(320)의 샘플링 커패시터 전압 및 기준 전압을 비교한 결과를 출력할 수 있다. 예를 들어, 제i 출력 라인(392)에 배치된 비교기(330)는, 제i 출력 라인(392)에 배치된 샘플링 커패시터(320)의 샘플링 커패시터 전압 및 기준 전압을 비교할 수 있다. 제i 출력 라인(392)에 배치된 비교기(330)는 샘플링 커패시터 전압이 기준 전압을 초과하는 경우에 응답하여, 제i 카운트 종료 신호(STOPi)를 출력할 수 있다.
시간-디지털 변환기(340)는 복수의 출력 라인들마다 카운트 종료 신호들을 수신하고, 시간 정보를 디지털 값으로 변환할 수 있다. 예를 들어, 시간-디지털 변환기(340)는 n개의 출력 라인들마다 개별적으로 시간 정보에 대응하는 디지털 값을 출력할 수 있다. 시간-디지털 변환기(340)는 시간 정보에 대응하는 n개의 디지털 값을 출력할 수 있다. 예를 들어, 시간-디지털 변환기(340)는 제i 카운트 종료 신호(STOPi)의 수신에 응답하여, 시작 신호(START)에 대응하는 시작 시점 및 카운트 종료 신호(STOPi)에 대응하는 종료 시점 간의 시간 차이를 지시하는 제i 시간 정보(Tout,i)를 생성할 수 있다. 제i 시간 정보(Tout,i)는 제i 충전 시간이라고도 나타낼 수 있다.
출력부(350)는 시간-디지털 변환기에 의해 생성된 디지털 값에 매핑된 값을 각 출력 라인의 출력 값(OUTs)으로 출력할 수 있다. 따라서 출력부(350)는 시간 정보를 지시하는 디지털 값을 곱셈 누적 결과(multiplication accumulated result)에 대응하는 숫자를 지시하는 출력 값(OUTs)으로 출력할 수 있다. 예를 들어, 곱셉 누적기 회로는 매핑 테이블(예를 들어, 룩업 테이블)을 통해 제i 시간 정보(Tout,i)에 매핑된 제i 출력 값(OUTi)을 출력할 수 있다. 각 출력 라인마다 출력 값이 출력되므로, 출력부(350)는 n개의 출력 라인들에 대해 n개의 출력 값을 출력할 수 있다.
아래에서는 시간-디지털 변환기(340)에 포함되는 단일 글로벌 카운터를 설명한다.
도 4는 일 실시예에 따른 시간-디지털 변환기를 설명하는 도면이다.
도 3에서 상술한 시간-디지털 변환기의 예시적인 구성을 설명한다. 시간-디지털 변환기는 단일 글로벌 카운터(441) 및 참조부(442)를 포함할 수 있다.
단일 글로벌 카운터(441)는 기준 시점 이후 경과된 시간을 지시하는 디지털 값을 출력할 수 있다. 단일 글로벌 카운터(441)는, 복수의 출력 라인들의 비교기들과 연결될 수 있다. 예를 들어, 단일 글로벌 카운터(441)는 기준 시점으로부터 클럭(CLK)이 발생된 개수를 카운트할 수 있다. 따라서, 단일 글로벌 카운터(441)는 추가적인 동기화 동작이 없더라도, 개별 출력 라인에 대해 동일한 기준 시점을 기준으로 경과한 시간(예를 들어, 충전 시간 또는 방전 시간)을 클럭 단위로 카운트할 수 있다.
참조부(442)는 비교 결과가 출력되는 시점에서 단일 글로벌 카운터(441)에 의해 출력되는 디지털 값을 참조할 수 있다. 참조부(442)는, 복수의 출력 라인들의 비교기들의 비교 결과를 참조하는 복수의 홀드 회로들(hold circuits)을 포함할 수 있다. 복수의 홀드 회로들의 각각은, 복수의 출력 라인들 중 대응하는 출력 라인에 포함된 비교기로부터 비교 결과가 출력되는 시점을 참조할 수 있다.
예를 들어, 제i 출력 라인에 대응하는 제i 홀드 회로는 제i 비교기의 출력과 연결될 수 있다. 제i 홀드 회로는 제i 비교기로부터 제i 카운트 종료 신호(STOPi)를 수신하는 경우에 응답하여, 제i 시간 정보(Tout,i)를 출력할 수 있다. 예를 들어, 각 홀드 회로는 카운트 종료 신호가 수신된 종료 시점에서 단일 글로벌 카운터(441)에 의해 카운트된 클럭(CLK)의 개수를 홀드할 수 있다. 종료 시점에서 홀드된 클럭(CLK)의 개수는 시간 정보(예를 들어, 충전 시간 또는 방전 시간)에 대응할 수 있다.
단일 글로벌 카운터(441)는 복수의 홀드 회로들의 홀드 여부와 무관하게 기준 클럭(CLK)을 카운트할 수 있고, 복수의 홀드 회로들의 각 홀드 회로는 나머지 홀드 회로와 독립적으로 동작할 수 있다. 예를 들어, 해당 홀드 회로가 카운트 종료 신호를 수신한 시점에 대응하는 시간 정보를 홀드하더라도, 단일 글로벌 카운터(441)는 계속해서 클럭(CLK)을 카운트할 수 있다.
도 5는 일 실시예에 따른 시간-디지털 변환기의 변환 동작을 설명하는 도면이다.
임의의 한 출력 라인에 배치된 샘플링 커패시터의 샘플링 커패시터 전압(510)은 도 5에 도시된 바와 같이 시정수에 대응하는 고유 응답을 따라 점진적으로 증가할 수 있다. 이는, 커패시터에 점진적으로 전하가 충전되기 때문이다.
이 때, 도 4에서 상술한 클럭 생성부는 클럭을 생성할 수 있고, 단일 글로벌 카운터는 시작 시점(START)으로부터 클럭의 개수를 카운트할 수 있다. 단일 글로벌 카운터는 샘플링 커패시터 전압(510)이 기준 전압(Vref)과 동일해지는 종료 시점(STOP) 이후에도 계속해서 클럭의 개수를 카운트할 수 있다.
참조부의 홀드 회로는 시작 시점(START)으로부터 종료 시점(STOP)까지 카운트된 클럭의 개수가 지시하는 디지털 값을 홀드할 수 있다.
예를 들어, 도 5에 도시된 예시에서, 시작 시점(START)으로부터 종료 시점(STOP)까지 6개의 클럭이 생성되었고, 홀드 회로는 "6"의 디지털 값을 출력할 수 있다.
도 6은 일 실시예에 따른 기생 커패시턴스가 존재하지 않는 회로에서 측정되는 샘플링 커패시터 전압을 설명하기 위한 도면이다.
도 6을 참조하면, 기생 커패시턴스가 존재하지 않는 제1 회로(600)가 도시된다. 제1 회로(600)는 저항 그룹(610) 및 샘플링 커패시터(620)를 포함할 수 있다.
저항 그룹(610)은 직렬로 연결된 복수의 저항들을 포함할 수 있다. 저항 그룹(610)의 일단은 전원부(630)에 연결되고, 저항 그룹(610)의 타단은 샘플링 커패시터(620)에 연결될 수 있다.
샘플링 커패시터(620)는 저항 그룹(610)에 포함된 복수의 저항들과 직렬로 연결될 수 있다. 전원부(630)에 직류 전압이 인가됨에 따라 샘플링 커패시터(620)가 충전될 수 있다. 샘플링 커패시터 전압(Vbot)은 샘플링 커패시터(620)에 충전된 전하량에 대응하는 전압으로서, 샘플링 커패시터(620)의 커패시턴스 및 저항 그룹(610)의 전제 저항 값에 의해 결정되는 시정수(time constant)에 따라 시간에 걸쳐 변화할 수 있다.
구체적으로, 시간에 따른 샘플링 커패시터 전압(Vbot)은 상술한 수학식 1과 같이 표현할 수 있다. 저항 그룹(610)에 포함된 복수의 저항들 중 적어도 일부가 서로 다른 저항 값을 갖는 경우라도, 복수의 저항들에 대한 전제 저항 값이 동일하다면, 샘플링 커패시터 전압(Vbot)은 동일한 그래프를 갖게 된다. 즉, 저항 값이 큰 저항들이 전원부(630)에 가깝게 위치한 경우, 및 저항 값이 작은 저항들이 전원부(630)에 가깝게 위치한 경우 모두, 복수의 저항들에 대한 전제 저항 값이 동일하다면 수학식 1의
Figure pat00002
이 동일하므로 샘플링 커패시터 전압(Vbot)은 동일한 그래프를 갖게 된다. 이는 수학식 1을 통해서도 확인할 수 있다.
도 7a 내지 도 7b는 일 실시예에 따른 기생 커패시턴스가 존재하는 회로에서 측정되는 샘플링 커패시터 전압을 설명하기 위한 도면이다.
도 7a는 일 실시예에 따른, 기생 커패시턴스가 존재하는 제2 회로(700)를 도시한 도면이다. 제2 회로(700)는 저항 그룹(710) 및 샘플링 커패시터(720)를 포함할 수 있다. 한편, 도 6의 제1 회로(600)와 비교하여, 도 7a의 제2 회로(700)에는 기생 커패시턴스가 존재한다. 실제 구현에 사용되는 회로에는 제2 회로(700)와 같이 기생 커패시턴스가 존재한다.
제2 회로(700)에 존재하는 기생 커패시턴스로 인해, 시간에 따른 샘플링 커패시터 전압(Vbot)은 아래의 수학식 2와 같이 나타낼 수 있다. 수학식 2는 Elmore delay model에 기초한다.
아래의 수학식 2에서, VDD는 전원부(730)에 인가되는 직류 전압, CS는 샘플링 커패시터(720)의 커패시턴스, Ri는 저항 그룹(710)에 포함된 복수의 저항들을 의미한다. 또한, Cp는 기생 커패시턴스를 의미한다.
Figure pat00003
Figure pat00004
Figure pat00005
수학식 1 및 수학식 2를 참조하면, 제2 회로(700)의 시정수
Figure pat00006
은 기생 커패시턴스(CP)의 영향으로 제1 회로(600)의 시정수
Figure pat00007
와 상이함을 확인할 수 있다.
저항 그룹(710)에 포함된 복수의 저항들에 대한 전제 저항 값이 동일하더라도, 복수의 저항들 중 적어도 일부가 서로 다른 저항 값을 갖는 경우 샘플링 커패시터 전압(Vbot)은 서로 다른 그래프를 가질 수 있다.
구체적으로, 수학식 2를 참조하면, 복수의 저항들에 대한 전제 저항 값이 동일한 경우더라도, 저항 값이 큰 저항들이 전원부(730)와 가깝게 위치한 경우
Figure pat00008
은 커지므로 샘플링 커패시터 전압(Vbot) 그래프의 딜레이(delay)가 길어진다. 반면, 저항 값이 작은 저항들이 전원부(730)와 가깝게 위치한 경우
Figure pat00009
은 작아지므로, 샘플링 커패시터 전압(Vbot) 그래프의 딜레이는 짧아진다.
회로의 전제 저항 값이 동일한 경우에는, 저항 값이 큰 저항들이 전원부에 가깝게 위치하는지, 또는 샘플링 커패시터에 가깝게 위치하는지와 상관 없이, 동일한 샘플링 커패시터 전압(Vbot) 그래프의 딜레이가 동일해야 오차가 발생하지 않는다. 그러나, 실제 구현에 사용되는 회로에는 기생 커패시턴스가 존재하고, 기생 커패시턴스로 인해 저항 값이 큰 저항들이 전원부에 가깝게 위치하는지 여부에 따라 시정수
Figure pat00010
이 달라진다. 그 결과 샘플링 커패시터 전압(Vbot) 그래프의 딜레이가 달라지며, 이는 출력 에러가 발생함을 의미한다.
도 7b는 일 실시예에 따른 기생 커패시턴스가 존재하는 회로의 출력 에러를 설명하기 위한 도면이다.
도 7b를 참조하면, 전원부(730)에 인가되는 직류 전압은 1V이고, 기준 전압은 0.67mV로 설정된다. 저항 그룹(710)의 저항들로는 제1 저항 및 제2 저항이 사용되었다. 이하에서, 제1 저항의 값(
Figure pat00011
)은 제2 저항의 값(
Figure pat00012
) 보다 작은 것을 전제로 한다.
제1 그래프(751)와 제2 그래프(752)는 서로 다른 회로에서 측정된 샘플링 커패시터 전압(Vbot)을 나타낸다. 구체적으로, 제1 그래프(751)는 전원부(730)로부터 샘플링 커패시터(720) 방향으로 제1 저항 32개가 위치한 후 제2 저항 32개가 위치한 경우이다. 제2 그래프(752)는 전원부(730)로부터 샘플링 커패시터(720) 방향으로 제2 저항 32개가 위치한 후 제1 저항 32개가 위치한 경우이다.
제1 그래프(751) 및 제2 그래프(752)의 경우, 저항 그룹(710)에 포함된 복수의 저항들에 대한 전제 저항 값(제1 저항 32개, 제2 저항 32개)이 동일하지만, 제2 그래프(752)의 딜레이가 제1 그래프(751)의 딜레이 보다 긴 것을 확인할 수 있다. 이는, 제1 그래프(751)와 비교하여, 제2 그래프(752)에서 저항 값이 큰 저항들이 전원부(730)에 가깝게 위치했기 때문이다.
도 3 내지 도 5에서 상술한 바와 같이, 비교기는 샘플링 커패시터 전압(Vbot)이 기준 전압을 초과한 것에 응답하여 종료 신호를 출력할 수 있다. 또한, 시간-디지털 변환기는 시작 신호에 대응하는 시작 시점 및 종료 신호에 대응하는 종료 시점 간의 시간 차이에 기초하여 디지털 값을 출력하고, 출력부는 디지털 값에 대응하는 곱셈 누적 결과를 연산 결과로서 출력할 수 있다.
즉, 출력부에서 출력되는 연산 결과는, 샘플링 커패시터 전압(Vbot)이 기준 전압을 초과한 시점인 종료 시점에 기초하여 결정되는데, 제1 그래프(751)의 제1 종료 시점과 제2 그래프(752)의 제2 종료 시점이 상이하므로, 제1 그래프(751)를 통해 도출되는 연산 결과와 제2 그래프(752)를 통해 도출되는 연산 결과 역시 달라지게 된다.
도 8a 내지 도 8b는 일 실시예에 따른 기생 커패시턴스가 존재하는 회로를 이용하여 소정의 연산을 수행하는 방법을 설명하기 위한 도면이다.
도 8a는 일 실시예에 따른, 기생 커패시턴스가 존재하는 회로(800)를 도시한 도면이다. 회로(800)는 저항 그룹(810) 및 샘플링 커패시터(820)를 포함할 수 있다.
저항 그룹(810)은 직렬로 연결된 복수의 저항들(R1 … Rn)을 포함한다. 저항 그룹(810)의 일단은 전원부(830)에 연결되고, 저항 그룹(810)의 타단은 샘플링 커패시터(820)에 연결된다. 또한, 복수의 저항들(R1 … Rn) 사이의 각 노드에는 기생 커패시턴스(CP)가 존재한다.
샘플링 커패시터(820)가 리셋된 후 전원부(830)에 직류 전압 VDD가 인가된다.
순방향 과정에서, 프로세서는 샘플링 커패시터 전압(Vbot)이 제1 기준 전압에 도달한 시점을 전환 시점으로 결정할 수 있다. 프로세서는 기준 시점부터 샘플링 커패시터 전압(Vbot)을 측정할 수 있다. 기준 시점은 전원부(830)에 직류 전압 VDD가 인가된 시점이거나, 직류 전압 VDD가 인가된 이후 소정의 시간이 흐른 시점일 수 있다.
전환 시점에서, 프로세서는 샘플링 커패시터(820)를 그라운드 또는 소정의 전압에 연결하고, 전원부(830)를 플로팅(floating)시킬 수 있다. 예를 들어, 소정의 전압은 1mV일 수 있으나, 소정의 전압은 특정 값으로 제한되지 않는다.
도 7a에서 상술한 바와 같이, 회로(800)에 존재하는 기생 커패시턴스로 인해, 순방향 과정의 샘플링 커패시터 전압(Vbot)은 상술한 수학식 2와 같이 나타낼 수 있다. 또한, 순방향 딜레이(
Figure pat00013
)는 아래의 수학식 3과 같이 나타낼 수 있다.
Figure pat00014
전환 시점 이후 역방향 과정에서, 프로세서는 전원부 전압(Vtop)이 제2 기준 전압에 도달한 때를 종료 시점으로 결정할 수 있다. 회로(800)에 존재하는 기생 커패시턴스로 인해, 역방향 과정의 전원부 전압(Vtop)을 결정하는 역방향 딜레이(
Figure pat00015
)는 아래의 수학식 4와 같이 나타낼 수 있다.
Figure pat00016
한편, 순방향 딜레이(
Figure pat00017
)와 역방향 딜레이(
Figure pat00018
)를 더하면 아래의 수학식 5를 도출할 수 있다.
Figure pat00019
수학식 5를 참조하면, 순방향 딜레이(
Figure pat00020
)와 역방향 딜레이(
Figure pat00021
)를 더할 경우, 최종 딜레이(
Figure pat00022
)는 전체 저항 값(
Figure pat00023
), 기생 커패시턴스(CP) 및 샘플 커패시턴스(CS)에만 영향을 받음을 확인할 수 있다.
즉, 회로(800)에 기생 커패시턴스(CP)가 존재함에도 불구하고, 순방향 딜레이(
Figure pat00024
)와 역방향 딜레이(
Figure pat00025
)를 함께 이용할 경우, 저항 그룹(810)에 포함된 복수의 저항들 중 적어도 일부가 서로 다른 저항 값을 갖는 경우라도, 복수의 저항들에 대한 전제 저항 값이 동일하다면, 전원부 전압(Vtop)이 제2 기준 전압에 도달하는 종료 시점은 동일하다.
한편, 전환 시점을 결정하는 기준이 되는 제1 기준 전압은, 전원부(830)에 공급되는 직류 전압 VDD에서 소정 비율(%)만큼 감소한 값일 수 있다. 또한, 종료 시점을 결정하는 기준이 되는 제2 기준 전압은, 전원부(830)에 공급되는 직류 전압 VDD에서 '100 - 소정 비율'(%)만큼 감소한 값일 수 있다.
예를 들어, 직류 전압 VDD가 1V이고, 소정 비율(%)이 67%인 경우, 제1 기준 전압은 0.67V이고, 제2 기준 전압은 0.33V이다. 또는, 직류 전압 VDD가 1V이고, 소정 비율(%)이 50%인 경우, 제1 기준 전압은 0.5V이고, 제2 기준 전압은 0.5V이다. 특히, 소정 비율(%)이 50%인 경우, 제1 기준 전압과 제2 기준 전압이 서로 동일한 값을 가지므로 하나의 기준 전압만을 이용하여 전환 시점 및 종료 시점을 결정할 수 있다.
프로세서는 종료 시점에 기초하여 소정의 연산을 수행할 수 있다. 프로세서는 기준 시점부터 종료 시점까지 소요된 시간에 기초하여 소정의 연산을 수행할 수 있다. 도 7a 내지 도 7b에서 상술한 바와 같이, 프로세서는 소요된 시간에 기초하여 연산 결과를 출력할 수 있다. 일 실시예에서 연산 결과는 곱셈 누적 결과일 수 있다. 다른 실시예에서 연산 결과는 저항 그룹(810)의 전체 저항 값일 수 있다.
연산 결과는 종료 시점에 기초하여 결정된다. 순방향 딜레이(
Figure pat00026
)와 역방향 딜레이(
Figure pat00027
)를 함께 이용할 경우, 저항 그룹(810)에 포함된 복수의 저항들 중 적어도 일부가 서로 다른 저항 값을 갖는 경우라도 복수의 저항들에 대한 전제 저항 값이 동일하기만 하다면, 연산 결과는 동일하다.
한편, 수학식 5에서 샘플 커패시턴스(CS)가 0인 경우에도 회로(800)는 동작할 수 있다. 다시 말해, 회로(800)에 샘플링 커패시터(820)를 별도로 추가하지 않고, 기생 커패시턴스(Cp)만을 이용함으로써 연산을 수행할 수 있다. 상술한 내용은 아래의 수학식 6과 같이 나타낼 수 있다.
Figure pat00028
도 8b는 일 실시예에 따른 기생 커패시턴스가 존재하는 회로의 출력 에러를 설명하기 위한 도면이다.
도 8b를 참조하면, 전원부(830)에 인가되는 직류 전압은 1V이고, 제1 기준 전압(860)은 0.67mV로 설정되고, 제2 기준 전압(870)은 0.33mV로 설정된다. 저항 그룹(810)의 저항들로는 제1 저항 및 제2 저항이 사용되었다. 이하에서, 제1 저항의 값(
Figure pat00029
)은 제2 저항의 값(
Figure pat00030
) 보다 작은 것을 전제로 한다.
제1 회로는 전원부(830)로부터 샘플링 커패시터(820) 방향으로 제1 저항 48개가 위치한 후 제2 저항 16개가 위치한 경우이다. 제2 회로는 전원부(830)로부터 샘플링 커패시터(820) 방향으로 제2 저항 16개가 위치한 후 제1 저항 48개가 위치한 경우이다.
제1-1 그래프(851a)와 제1-2 그래프(851b)는 각각, 제1 회로에서 수행되는 순방향 과정 및 역방향 과정을 나타낸 것이다. 제1-1 그래프(851a)는 제1 회로에서 수행되는 순방향 과정에서 시간에 따른 샘플링 커패시터 전압(Vbot)을 나타낸다. 제1-2 그래프(851b)는 제1 회로에서 수행되는 역방향 과정에서 시간에 따른 전원부 전압(Vtop)을 나타낸다.
제2-1 그래프(852a)와 제2-2 그래프(852b)는 각각, 제2 회로에서 수행되는 순방향 과정 및 역방향 과정을 나타낸 것이다. 제2-1 그래프(852a)는 제2 회로에서 수행되는 순방향 과정에서 시간에 따른 샘플링 커패시터 전압(Vbot)을 나타낸다. 제2-2 그래프(852b)는 제2 회로에서 수행되는 역방향 과정에서 시간에 따른 전원부 전압(Vtop)을 나타낸다.
제1 회로와 제2 회로의 경우, 저항 그룹(810)에 포함된 복수의 저항들에 대한 전제 저항 값(제1 저항 48개, 제2 저항 16개)이 동일하다.
제1 회로의 순방향 과정에서, 제1-1 그래프(851a)에 따른 샘플링 커패시터 전압(Vbot)이 제1 기준 전압(860)에 도달한 때가 제1 전환 시점(851c)이 된다. 제1 전환 시점(851c) 이후 역방향 과정에서, 제1-2 그래프(851b)에 따른 전원부 전압(Vtop)이 제2 기준 전압(870)에 도달한 때가 종료 시점(880)이 된다.
제2 회로의 순방향 과정에서, 제2-1 그래프(852a)에 따른 샘플링 커패시터 전압(Vbot)이 제1 기준 전압(860)에 도달한 때가 제2 전환 시점(852c)이 된다. 제2 전환 시점(852c) 이후 역방향 과정에서, 제2-2 그래프(852b)에 따른 전원부 전압(Vtop)이 제2 기준 전압(870)에 도달한 때가 종료 시점(880)이 된다.
순방향 과정을 살펴보면, 제2-1 그래프(852a)의 딜레이가 제1-1 그래프(851a)의 딜레이 보다 긴 것을 확인할 수 있다. 이는, 제1-1 그래프(851a) 및 제2-1 그래프(852a)는 샘플링 커패시터 전압(Vbot)을 나타내는데, 제2-1 그래프(852a)에서 저항 값이 큰 저항들이 전원부(830)에 가깝게 위치했기 때문이다. 즉, 제1-1 그래프(851a)가 제2-1 그래프(852a) 보다 더 먼저 제1 기준 전압(860)에 도달한다.
역방향 과정을 살펴보면, 제2-2 그래프(852b)의 딜레이가 제1-2 그래프(851b)의 딜레이 보다 짧은 것을 확인할 수 있다. 이는, 제1-2 그래프(851b) 및 제2-2 그래프(852b)는 전원부 전압(Vtop)을 나타내는데, 제2-2 그래프(852b)에서 저항 값이 큰 저항들이 샘플링 커패시터(820)에 가깝게 위치했기 때문이다.
그러나, 순방향 과정과 역방향 과정을 함께 고려하면, 제1 회로 및 제2 회로에서의 종료 시점(880)이 동일함을 확인할 수 있다.
제1 회로 및 제2 회로를 이용하여 수행하는 연산의 결과는 종료 시점(880)에 기초하여 결정된다. 순방향 과정 및 역방향 과정을 함께 진행할 경우, 저항 그룹(810)에 포함된 복수의 저항들 중 적어도 일부가 서로 다른 저항 값을 갖는 경우라도 복수의 저항들에 대한 전제 저항 값이 동일하기만 하다면, 제1 회로 및 제2 회로를 이용하여 수행한 연산 결과는 동일하다.
도 9는 일 실시예에 따른 순방향 과정 및 역방향 과정을 통해 소정의 연산을 수행하는 회로를 도시한 도면이다.
도 9를 참조하면, 회로(900)는 저항 그룹(910) 및 샘플링 커패시터(920)를 포함할 수 있다.
저항 그룹(910)은 직렬로 연결된 복수의 저항들(R1 … Rn)을 포함할 수 있다. 저항 그룹(910)의 일단은 전원부(950)에 연결되고, 저항 그룹(910)의 타단은 샘플링 커패시터(920)에 연결될 수 있다. 또한, 복수의 저항들(R1 … Rn) 사이의 각 노드에는 기생 커패시턴스(CP)가 존재할 수 있다.
일 실시예에서, 회로(900)는 제1 비교기(931) 및 제2 비교기(932)를 더 포함할 수 있다. 제1 비교기(931) 및 제2 비교기(932)는 연산증폭기로 구성될 수 있다.
제1 비교기(931)는 샘플링 커패시터 전압(Vbot) 및 제1 기준 전압(Vref1)을 비교한 결과를 출력할 수 있다. 제2 비교기(932)는 전원부 전압(VDD) 및 제2 기준 전압(Vref2)을 비교한 결과를 출력할 수 있다.
구체적으로, 샘플링 커패시터(920)가 리셋된 후 전원부(930)에 직류 전압 VDD이 인가된다. 기준 시점(t0) 이후 순방향 과정에서, 제1 비교기(931)는 샘플링 커패시터 전압(Vbot)이 제1 기준 전압(Vref1)에 도달한 시점의 제1 시간 정보(t1)를 출력할 수 있다. 여기서, 기준 시점(t0)은 전원부(930)에 직류 전압 VDD가 인가된 시점이거나, 직류 전압 VDD가 인가된 이후 소정의 시간이 흐른 시점일 수 있다.
제1 시간 정보(t1)가 출력된 때, 샘플링 커패시터(920)는 그라운드 또는 소정의 전압에 연결되고 전원부(950)는 플로팅된다.
역방향 과정에서, 제2 비교기(932)는 전원부 전압(Vtop)이 제2 기준 전압(Vref2)에 도달한 시점의 제2 시간 정보(t2)를 출력할 수 있다.
시간-디지털 변환기(940)는 기준 시점(t0) 및 제2 시간 정보(t2)에 기초하여 디지털 값을 출력할 수 있다. 구체적으로, 시간-디지털 변환기(940)는 기준 시점(t0) 및 제2 시간 정보(t2) 간의 시간 차이를 디지털 값으로 출력할 수 있다.
출력부(미도시)는 시간-디지털 변환기(940)에서 출력된 디지털 값에 매핑된 연산 결과를 출력할 수 있다. 일 실시예에서 연산 결과는 곱셈 누적 결과일 수 있다. 다른 실시예에서 연산 결과는 회로(900)의 전체 저항 값일 수 있다.
한편, 도 9에서는 두 개의 비교기를 사용하는 경우를 전제로 설명하였으나, 샘플링 커패시터 전압(Vbot) 및 제1 기준 전압(Vref1)을 비교하는 시점과 전원부 전압(VDD) 및 제2 기준 전압(Vref2)을 비교하는 시점의 시간차가 존재하므로, 하나의 비교기를 이용할 수도 있다.
도 10은 일 실시예에 따른 순방향 과정을 통해 소정의 연산을 수행하는 회로를 도시한 도면이다.
도 10은 일 실시예에 따른, 기생 커패시턴스가 존재하는 회로(1000)를 도시한 도면이다. 설명의 편의상 도 10의 회로(1000)에는 기생 커패시턴스의 도시를 생략하였다.
회로(1000)는 제1 저항 그룹(1011) 및 제2 저항 그룹(1012)을 포함할 수 있다. 제1 저항 그룹(1011) 및 제2 저항 그룹(1012)은 직렬로 연결된 복수의 저항들(R1 … Rn)을 포함한다. 제1 저항 그룹(1011) 및 제2 저항 그룹(1012)의 일단은 전원부(1030)에 연결되고, 타단은 샘플링 커패시터(1020)에 연결된다. 또한, 복수의 저항들(R1 … Rn) 사이의 각 노드에는 기생 커패시턴스(CP)가 존재한다.
제1 저항 그룹(1011)의 전제 저항 값은 제2 저항 그룹(1012)의 전체 저항 값과 같다. 그러나, 제1 저항 그룹(1011) 저항 배열 순서는 제2 저항 그룹(1012)의 저항 배열 순서와 반대이다.
구체적으로, 도 10을 참조하면, 전원부(1030)로부터 샘플링 커패시터(1020) 방향으로, 제1 저항 그룹(1011)의 저항은 R1, R2, … ,Rn-1 , Rn 순으로 배열되는 반면, 제2 저항 그룹(1012)의 저항은 Rn, Rn-1, … R2, R1 순으로 배열된다.
도 10의 회로(1000)를 이용하여 소정의 연산을 수행하는 방법은 아래와 같다.
샘플링 커패시터(1020)가 리셋된 후 전원부(1030)에 직류 전압 VDD가 인가된다.
기준 시점 이후, 프로세서는 샘플링 커패시터 전압(Vbot)이 기준 전압에 도달한 때를 종료 시점으로 결정할 수 있다. 기준 시점은 전원부(1030)에 직류 전압 VDD가 인가된 시점이거나, 직류 전압 VDD가 인가된 이후 소정의 시간이 흐른 시점일 수 있다.
프로세서는 종료 시점에 기초하여 소정의 연산을 수행할 수 있다. 프로세서는 기준 시점부터 종료 시점까지 소요된 시간에 기초하여 소정의 연산을 수행할 수 있다. 도 7a 내지 도 7b에서 상술한 바와 같이, 프로세서는 소요된 시간에 기초하여 연산 결과를 출력할 수 있다. 일 실시예에서 연산 결과는 곱셈 누적 결과일 수 있다. 다른 실시예에서 연산 결과는 저항 그룹(1010)의 전체 저항 값일 수 있다.
도 8a에서는 회로(300)에 대한 순방향 과정 및 역방향 과정을 수행함으로써 소정의 연산을 수행한다. 이와 비교하여, 도 10에서는 저항 배열 순서가 정반대인 제1 저항 그룹(1011) 및 제2 저항 그룹(1012)을 이용함으로써, 역방향 과정 없이 순방향 과정만을 수행함으로써 소정의 연산을 수행할 수 있다.
도 11은 일 실시예에 따른 회로를 이용하여 소정의 연산을 수행하는 방법을 설명하기 위한 흐름도이다.
회로는 저항 그룹 및 샘플링 커패시터를 포함할 수 있다. 저항 그룹은 직렬로 연결된 복수의 저항들을 포함한다. 저항 그룹의 일단은 전원부에 연결되고, 저항 그룹의 타단은 샘플링 커패시터에 연결된다. 또한, 복수의 저항들 사이의 각 노드에는 기생 커패시턴스가 존재한다.
도 11을 참조하면, 단계 1110에서 샘플링 커패시터는 리셋되고, 전원부에는 직류 전압이 인가된다.
단계 1120에서 순방향 과정이 진행된다. 구체적으로, 단계 1120에서 비교기는 샘플링 커패시터에 걸리는 샘플링 커패시터 전압(Vbot)과 제1 기준 전압(Vref1)을 비교할 수 있다.
샘플링 커패시터 전압(Vbot)과 제1 기준 전압(Vref1) 간의 비교 결과, 샘플링 커패시터 전압(Vbot)이 제1 기준 전압(Vref1) 이하인 경우 단계 1120이 반복 수행된다.
샘플링 커패시터 전압(Vbot)과 제1 기준 전압(Vref1) 비교한 결과, 샘플링 커패시터 전압(Vbot)이 제1 기준 전압(Vref1)을 초과한 경우 단계 1130으로 진행한다.
단계 1130에서 샘플링 커패시터는 그라운드 또는 소정의 전압에 연결되고, 전원부는 플로팅된다.
단계 1140에서 역방향 과정이 진행된다. 구체적으로, 단계 1140에서 비교기는 전원부에 걸리는 전원부 전압(Vtop)과 제2 기준 전압(Vref2)을 비교할 수 있다.
전원부 전압(Vtop)과 제2 기준 전압(Vref2) 간의 비교 결과, 전원부 전압(Vtop)이 제2 기준 전압(Vref2) 이상인 경우 단계 1140이 반복 수행된다.
전원부 전압(Vtop)과 제2 기준 전압(Vref2) 간의 비교 결과, 전원부 전압(Vtop)이 제2 기준 전압(Vref2) 미만인 경우 단계 1150으로 진행한다. 전원부 전압(Vtop)이 제2 기준 전압(Vref2)에 도달한 시점은 종료 시점이 된다.
단계 1150에서 비교기는 종료 시점에 대응하는 시간 정보를 출력할 수 있다.
프로세서는 종료 시점에 대응하는 시간 정보에 기초하여 소정의 연산을 수행할 수 있다. 일 실시예에서 프로세서는 종료 시점에 대응하는 시간 정보에 기초하여 곱셈 누적 연산을 수행할 수 있다. 다른 실시예에서 프로세서는 종료 시점에 대응하는 시간 정보에 기초하여 회로의 전체 저항 값을 산출할 수 있다.
도 12는 일 실시예에 따른 회로를 이용하여 소정의 연산을 수행하는 방법을 설명하기 위한 흐름도이다.
회로는 저항 그룹 및 샘플링 커패시터를 포함할 수 있다. 저항 그룹은 직렬로 연결된 복수의 저항들을 포함한다. 저항 그룹의 일단은 전원부에 연결되고, 저항 그룹의 타단은 샘플링 커패시터에 연결된다. 또한, 복수의 저항들 사이의 각 노드에는 기생 커패시턴스가 존재한다.
도 12를 참조하면, 단계 1210에서는 순방향 과정이 진행된다. 구체적으로, 단계 1210에서 프로세서는 샘플링 커패시터에 걸리는 샘플링 커패시터 전압이 제1 기준 전압에 도달한 시점을 전환 시점으로 결정할 수 있다.
프로세서는 기준 시점부터 샘플링 커패시터 전압을 측정할 수 있다. 기준 시점은 전원부에 직류 전압 VDD가 인가된 시점이거나, 직류 전압 VDD가 인가된 이후 소정의 시간이 흐른 시점일 수 있다.
단계 1220에서 프로세서는 상기 전환 시점에서, 상기 샘플링 커패시터를 그라운드 또는 소정의 전압에 연결하고, 상기 전원부를 플로팅(floating)시킬 수 있다.
단계 1230에서 역방향 과정이 진행된다. 구체적으로, 프로세서는 전환 시점 이후 역방향 과정에서, 전원부에 걸리는 전원부 전압이 제2 기준 전압에 도달한 시점을 종료 시점으로 결정할 수 있다.
단계 1210의 제1 기준 전압은, 전원부에 공급되는 직류 전압에서 소정 비율(%)만큼 감소한 값일 수 있다. 또한, 단계 1230의 제2 기준 전압은, 전원부에 공급되는 직류 전압에서 '100 - 상기 소정 비율'(%)만큼 감소한 값일 수 있다.
단계 1240에서 프로세서는 종료 시점에 기초하여 소정의 연산을 수행할 수 있다.
프로세서는 종료 시점에 기초하여, 곱셈 누적 연산을 수행하거나, 저항 그룹의 전체 저항 값을 산출할 수 있다.
순방향 과정 및 역방향 과정을 함께 진행할 경우, 저항 그룹에 포함된 복수의 저항들 중 적어도 일부가 서로 다른 저항 값을 갖는 경우라도 복수의 저항들에 대한 전제 저항 값이 동일하기만 하다면, 연산 결과는 동일하다.
도 13은 일 실시예에 따른 곱셈 누적기 회로에 의해 구현될 수 있는 뉴럴 네트워크 연산의 예시를 설명하는 도면이다.
뉴럴 네트워크(1300)(neural network)는 딥 뉴럴 네트워크(DNN, deep neural network)의 예시에 해당할 수 있다. DNN은 완전 연결 네트워크(fully connected network), 딥 컨볼루셔널 네트워크(deep convolutional network) 및 리커런트 뉴럴 네트워크(recurrent neural network) 등을 포함할 수 있다. 뉴럴 네트워크(1300)는 딥 러닝에 기반하여 비선형적 관계에 있는 입력 데이터 및 출력 데이터를 서로 매핑함으로써 객체 분류, 객체 인식, 음성 인식 및 이미지 인식 등을 수행할 수 있다. 딥 러닝은 빅 데이터 세트로부터 이미지 또는 음성 인식과 같은 문제를 해결하기 위한 기계 학습 기법으로 지도식(supervised) 또는 비지도식(unsupervised) 학습을 통해 입력 데이터 및 출력 데이터를 서로 매핑할 수 있다.
도 13에는 설명의 편의를 위해 히든 레이어가 2개의 레이어를 포함하는 것으로 도시되었나, 히든 레이어는 다양한 수의 레이어들을 포함할 수 있다. 또한, 도 13에서 뉴럴 네트워크(1300)는 입력 데이터를 수신하기 위한 별도의 입력 레이어(1310)를 포함하는 것으로 도시되었으나, 입력 데이터가 히든 레이어에 직접 입력될 수 있다. 뉴럴 네트워크(1300)에서 출력 레이어를 제외한 레이어들의 인공 노드들은 출력 신호를 전송하기 위한 링크들을 통해 다음 레이어의 인공 노드들과 연결될 수 있다. 링크들의 수는 다음 레이어에 포함된 인공 노드들의 수에 대응할 수 있다.
히든 레이어에 포함된 각각의 인공 노드에는 이전 레이어에 포함된 인공 노드들의 가중된 입력들(weighted inputs)에 관한 활성 함수(activation function)의 출력이 입력될 수 있다. 가중된 입력은 이전 레이어에 포함된 인공 노드들의 입력에 가중치(weight)가 곱해진 것이다. 가중치는 뉴럴 네트워크(1300)의 파라미터로 지칭될 수 있다. 활성 함수는 시그모이드(sigmoid), 하이퍼볼릭 탄젠트(hyperbolic tangent; tanh) 및 렐루(rectified linear unit; ReLU)를 포함할 수 있고, 활성 함수에 의해 뉴럴 네트워크(1300)에 비선형성이 형성될 수 있다. 출력 레이어에 포함된 각각의 인공 노드에는 이전 레이어에 포함된 인공 노드들의 가중된 입력들이 입력될 수 있다.
딥러닝 알고리즘 구동을 위한 인메모리 연산(In memory computing)에 상술한 곱셈 누적기 회로가 적용될 수 있다. 예를 들어, 뉴럴 네트워크(1300)의 노드(1321) 간에 전달되는 가중된 입력의 산출은 곱셉과 덧셈을 반복하는 MAC 연산으로 구성될 수 있다. 뉴럴 네트워크(1300)의 임의의 한 노드(1321)의 출력은 아래 수학식 7과 같이 나타낼 수 있다.
Figure pat00031
상술한 수학식 7은 임의의 레이어에서 m개의 입력 값에 대한 i번째 노드(1321)의 출력 값 yi를 나타낼 수 있다. xj는 이전 레이어의 j번째 입력 값(예를 들어, 노드 값)을 나타낼 수 있고, wj,i는 j번째 입력 값 및 i번째 노드(1321)에 적용되는 가중치를 나타낼 수 있다. f()는 활성화 함수를 나타낼 수 있다. 수학식 7에 나타난 바와 같이, 활성화 함수에 대해, 노드 값 xj 및 가중치 wj,i의 곱셈 누적 결과가 사용될 수 있다. 다시 말해, 원하는 시점에 적절한 노드 값 xj 및 가중치 wj,i을 로드(load)해야 하는 메모리 접근 동작(memory access operation)과 이들을 곱하고 더하는 MAC연산이 반복될 수 있다.
일 실시예에 따르면 곱셈 누적기 회로의 복수의 저항기들은, 복수의 노드들을 포함하는 하나 이상의 레이어로 구성되는 뉴럴 네트워크(1300)에서, 복수의 노드들을 연결하는 연결선의 연결 가중치에 대응하는 저항(resistance)을 가질 수 있다. 복수의 저항기들이 배치된 입력 라인들을 따라 제공되는 입력 전압 신호는, 노드 값 xj에 대응하는 값을 나타낼 수 있다. 따라서, 곱셈 누적기 회로는, 뉴럴 네트워크(1300)의 실시에 요구되는 연산들 중 적어도 일부를 수행할 수 있다. 참고로, 곱셈 누적기 회로에서 저항기의 저항값들은 고정되는 것은 아니고, 상술한 바와 같이 메모리에 저장된 가중치 값에 대응하는 저항값으로 변경될 수도 있다.
다만, 일 실시예에 따른 곱셈 누적기 회로의 적용을 이로 한정하는 것은 아니고, 이외에도 아날로그 회로 특성을 사용한 복수 입력 데이터를 저전력으로 빠르게 처리해야하는 연산 동작에도 활용될 수 있다.
일 실시예에 따른 곱셈 누적기 회로는 TDC(Time to digital converter)를 사용한 인 메모리 연산(In memory computing) 구조의 아날로그 덧셈, 디지털 변환 회로를 결합한 저전력 구조를 가질 수 있다. 앞서 설명한 바와 같이, 곱셈 누적기 회로는 하나의 TDC, 더 나아가 단일 글로벌 카운터를 이용하여 복수개의 열 데이터(column data)(예를 들어, 출력 라인들에 대응하는 데이터)를 연산할 수 있다. 시작 신호(START)가 동기화되므로, 종료 신호(STOP)에 해당하는 카운트 값만 열(column)별로 독립적으로 참조할 수 있기 때문이다. 따라서 하나의 TDC로 인 메모리에서 전체 어레이의 병렬 연산이 커버될 수 있다.
기존 ADC 구조의 경우, 개별 열(column)마다 ADC가 각각 요구되고, 비트 정확도(bit precision)를 높이기 위해 복잡한 구조가 요구되는 바, 필요하는 전력과 면적이 크다. 다만, 일 실시예에 따른 곱셈 누적기 회로와 같은 TDC 구조는, 간단한 카운터를 사용하여 덧셈값을 디지털화(digitize)하므로 회로가 간단하다. 또한, 단일 TDC로 전체 어레이 연산을 커버하므로 소모 전력, 및 크기가 감소될 수 있다.
본 실시예들은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈과 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
또한, 본 명세서에서, “부”는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
전술한 본 명세서의 설명은 예시를 위한 것이며, 본 명세서의 내용이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 실시예의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 포함되는 것으로 해석되어야 한다.

Claims (13)

  1. 회로를 이용하여 소정의 연산을 수행하는 방법에 있어서,
    직렬로 연결된 복수의 저항들을 포함하는 저항 그룹의 일단은 전원부에 연결되고, 상기 저항 그룹의 타단은 샘플링 커패시터(sampling capacitor)에 연결되고, 상기 복수의 저항들 사이의 각 노드(node)에 기생 커패시턴스가 존재하며,
    상기 방법은,
    순방향 과정에서, 상기 샘플링 커패시터에 걸리는 샘플링 커패시터 전압이 제1 기준 전압에 도달한 시점을 전환 시점으로 결정하는 단계;
    상기 전환 시점에서, 상기 샘플링 커패시터를 그라운드 또는 소정의 전압에 연결하고, 상기 전원부를 플로팅(floating)시키는 단계;
    상기 전환 시점 이후 역방향 과정에서, 상기 전원부에 걸리는 전원부 전압이 제2 기준 전압에 도달한 시점을 종료 시점으로 결정하는 단계; 및
    상기 종료 시점에 기초하여 소정의 연산을 수행하는 단계;
    를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 제1 기준 전압은, 상기 전원부에 공급되는 직류 전압에 대해 소정 비율(%)만큼 감소한 값이고,
    상기 제2 기준 전압은, 상기 전원부에 공급되는 직류 전압에 대해 '100 - 상기 소정 비율'(%)만큼 감소한 값인 것인, 방법.
  3. 제 1 항에 있어서,
    상기 소정의 연산을 수행하는 단계는,
    상기 종료 시점에 기초하여, 곱셈 누적 연산을 수행하거나, 상기 저항 그룹의 전체 저항 값을 산출하는 단계;
    를 포함하는, 방법.
  4. 회로를 이용하여 소정의 연산을 수행하는 방법에 있어서,
    직렬로 연결된 복수의 저항들을 포함하는 저항 그룹의 일단은 전원부에 연결되고, 상기 저항 그룹의 타단은 샘플링 커패시터에 연결되고, 상기 복수의 저항들 사이의 각 노드에 기생 커패시턴스가 존재하며,
    상기 저항 그룹은 제1 저항 그룹 및 제2 저항 그룹으로 구분되고, 상기 제1 저항 그룹 및 상기 제2 저항 그룹은 병렬로 연결되고, 상기 제1 저항 그룹의 저항 배열 순서는 상기 제2 저항 그룹의 저항 배열 순서와 정반대이며,
    상기 방법은,
    상기 샘플링 커패시터에 걸리는 샘플링 커패시터 전압이 기준 전압에 도달한 때를 종료 시점으로 결정하는 단계; 및
    상기 종료 시점에 기초하여 소정의 연산을 수행하는 단계;
    를 포함하는, 방법.
  5. 제 4 항에 있어서,
    상기 기준 전압은, 상기 전원부에 공급되는 직류 전압에서 소정 비율(%)만큼 감소한 값인 것인, 방법.
  6. 제 4 항에 있어서,
    상기 소정의 연산을 수행하는 단계는,
    상기 종료 시점에 기초하여, 곱셈 누적 연산을 수행하거나, 상기 저항 그룹의 전체 저항 값을 산출하는 단계;
    를 포함하는, 방법.
  7. 회로를 이용하여 소정의 연산을 수행하는 장치에 있어서,
    상기 회로의 일단에 연결된 전원부;
    상기 회로의 일단에서 타단 방향으로 직렬로 연결된 복수의 저항들을 포함하는 저항 그룹;
    상기 복수의 저항들과 직렬로 연결된 샘플링 커패시터;
    상기 복수의 저항들 사이의 각 노드에 존재하는 기생 커패시턴스;
    순방향 과정에서, 상기 샘플링 커패시터에 걸리는 샘플링 커패시터 전압과 제1 기준 전압을 비교하고, 상기 샘플링 커패시터 전압이 상기 제1 기준 전압에 도달한 시점의 제1 시간 정보를 출력하는 제1 비교기;
    상기 제1 시간 정보가 출력된 때 상기 샘플링 커패시터를 그라운드 또는 소정의 전압에 연결하고, 상기 전원부를 플로팅시키는 프로세서; 및
    상기 제1 시간 정보가 출력된 후 역방향 과정에서, 상기 전원부에 걸리는 전원부 전압과 제2 기준 전압을 비교하고, 상기 전원부 전압이 상기 제2 기준 전압에 도달한 시점의 제2 시간 정보를 출력하는 제2 비교기;
    를 포함하고,
    상기 프로세서는 상기 제2 시간 정보에 기초하여 소정의 연산을 수행하는 것인, 장치.
  8. 제 7 항에 있어서,
    상기 제1 기준 전압은, 상기 전원부에 공급되는 직류 전압에서 소정 비율(%)만큼 감소한 값이고,
    상기 제2 기준 전압은, 상기 전원부에 공급되는 직류 전압에서 '100 - 상기 소정 비율'(%)만큼 감소한 값인 것인, 장치.
  9. 제 7 항에 있어서,
    상기 프로세서는,
    상기 제2 시간 정보에 기초하여, 곱셈 누적 연산을 수행하거나, 상기 저항 그룹의 전체 저항 값을 산출하는 것인, 장치.
  10. 소정의 연산을 수행하는 회로를 포함하는 장치에 있어서,
    상기 회로의 일단에 연결된 전원부;
    상기 회로의 일단에서 타단 방향으로 직렬로 연결된 복수의 저항들을 포함하는 저항 그룹;
    상기 복수의 저항들과 직렬로 연결된 샘플링 커패시터;
    상기 복수의 저항들 사이의 각 노드에 존재하는 기생 커패시턴스;
    상기 샘플링 커패시터에 걸리는 샘플링 커패시터 전압과 기준 전압을 비교하고, 상기 샘플링 커패시터 전압이 상기 기준 전압에 도달한 시점의 시간 정보를 출력하는 비교기; 및
    상기 시간 정보에 기초하여 소정의 연산을 수행하는 프로세서;
    를 포함하고,
    상기 저항 그룹은 제1 저항 그룹 및 제2 저항 그룹으로 구분되고, 상기 제1 저항 그룹 및 상기 제2 저항 그룹은 병렬로 연결되고, 상기 제1 저항 그룹의 저항 배열 순서는 상기 제2 저항 그룹의 저항 배열 순서와 정반대인 것인, 장치.
  11. 제 10 항에 있어서,
    상기 기준 전압은, 상기 전원부에 공급되는 직류 전압에서 소정 비율(%)만큼 감소한 값인 것인, 장치.
  12. 제 10 항에 있어서,
    상기 프로세서는,
    상기 시간 정보에 기초하여 곱셈 누적 연산을 수행하거나, 상기 저항 그룹의 전체 저항 값을 산출하는 것인, 장치.
  13. 제 1 항 또는 제 4 항의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020200077377A 2020-06-24 2020-06-24 회로를 이용하여 소정의 연산을 수행하는 장치 및 방법 KR20210158698A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020200077377A KR20210158698A (ko) 2020-06-24 2020-06-24 회로를 이용하여 소정의 연산을 수행하는 장치 및 방법
US17/093,889 US11816447B2 (en) 2020-06-24 2020-11-10 Method and apparatus performing operations using circuits
CN202011597038.3A CN113835676A (zh) 2020-06-24 2020-12-29 使用电路执行运算的方法和设备
EP21156290.5A EP3929725A1 (en) 2020-06-24 2021-02-10 Method and apparatus performing operations using circuits
JP2021094975A JP2022008142A (ja) 2020-06-24 2021-06-07 回路を利用して所定の演算を遂行する装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200077377A KR20210158698A (ko) 2020-06-24 2020-06-24 회로를 이용하여 소정의 연산을 수행하는 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20210158698A true KR20210158698A (ko) 2021-12-31

Family

ID=74586904

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200077377A KR20210158698A (ko) 2020-06-24 2020-06-24 회로를 이용하여 소정의 연산을 수행하는 장치 및 방법

Country Status (5)

Country Link
US (1) US11816447B2 (ko)
EP (1) EP3929725A1 (ko)
JP (1) JP2022008142A (ko)
KR (1) KR20210158698A (ko)
CN (1) CN113835676A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220004430A (ko) 2020-07-03 2022-01-11 삼성전자주식회사 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0767464B1 (en) * 1995-09-08 2003-11-19 Fujitsu Limited Ferroelectric memory and method of reading out data from the ferroelectric memory
US6920060B2 (en) * 2002-08-14 2005-07-19 Intel Corporation Memory device, circuits and methods for operating a memory device
US6801146B2 (en) * 2002-11-14 2004-10-05 Fyre Storm, Inc. Sample and hold circuit including a multiplexer
TWI320996B (en) * 2006-07-06 2010-02-21 Tatung Co Pop sound prevention module and speaker apparatus thereof
US8013772B2 (en) * 2009-12-31 2011-09-06 Texas Instruments Incorporated Reduced area digital-to-analog converter
US20130341192A1 (en) 2011-07-20 2013-12-26 The Regents Of The University Of California Compensated patch-clamp amplifier for nanopore polynucleotide sequencing and other applications
JP5474114B2 (ja) 2012-03-16 2014-04-16 三菱電機株式会社 車載高電圧機器の漏電抵抗検出装置およびその漏電抵抗検出方法
JP5705382B1 (ja) 2013-11-22 2015-04-22 三菱電機株式会社 絶縁検出器及び電気機器
US9230649B2 (en) 2014-01-20 2016-01-05 National Tsing Hua University Non-volatile ternary content-addressable memory 4T2R cell with RC-delay search
KR102264162B1 (ko) * 2014-10-29 2021-06-11 삼성전자주식회사 저항성 메모리 장치 및 저항성 메모리 장치의 동작 방법
CN107636640B (zh) * 2016-01-30 2021-11-23 慧与发展有限责任合伙企业 点积引擎、忆阻器点积引擎以及用于计算点积的方法
JP2020009123A (ja) * 2018-07-06 2020-01-16 ソニー株式会社 積和演算装置、積和演算回路及び積和演算方法
JP6540931B1 (ja) 2018-10-11 2019-07-10 Tdk株式会社 積和演算器、論理演算デバイス、ニューロモーフィックデバイス及び積和演算方法
JP2020126426A (ja) * 2019-02-04 2020-08-20 ソニー株式会社 演算装置、及び積和演算システム
US11573792B2 (en) 2019-09-03 2023-02-07 Samsung Electronics Co., Ltd. Method and computing device with a multiplier-accumulator circuit

Also Published As

Publication number Publication date
CN113835676A (zh) 2021-12-24
US11816447B2 (en) 2023-11-14
EP3929725A1 (en) 2021-12-29
JP2022008142A (ja) 2022-01-13
US20210405967A1 (en) 2021-12-30

Similar Documents

Publication Publication Date Title
US20190122105A1 (en) Training of artificial neural networks
US20210064367A1 (en) Method and computing device with a multiplier-accumulator circuit
US9466362B2 (en) Resistive cross-point architecture for robust data representation with arbitrary precision
US11501829B2 (en) Resistive random-access memory for embedded computation
JP2021185479A (ja) インメモリプロセシングを行う装置、及びそれを含むコンピューティング装置
KR102542532B1 (ko) 혼합-신호 연산 시스템 및 방법
US11604977B2 (en) Computing circuitry
CN111837341A (zh) 用于混合信号计算的***和方法
US11756610B2 (en) Apparatus and method with in-memory delay dependent processing
WO2016080970A1 (en) Memristive dot product engine with a nulling amplifier
CN113383341B (zh) 算术设备以及乘积-累加算术***
US10997490B2 (en) Battery-based neural network weights
KR20210158698A (ko) 회로를 이용하여 소정의 연산을 수행하는 장치 및 방법
Lim et al. Hardware-based neural networks using a gated Schottky diode as a synapse device
JP6521207B1 (ja) 積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス
US11430524B2 (en) Method for designing an initialization function for programming a memory element
KR20210028063A (ko) 곱셉 누적기 회로를 이용한 컴퓨팅 장치 및 방법
US20220188628A1 (en) Dynamic configuration of readout circuitry for different operations in analog resistive crossbar array
CN117669676A (zh) 一种基于忆阻器的感知神经元电路及应用
US20220236952A1 (en) Arithmetic apparatus and multiply-accumulate system
CN112148669A (zh) 脉冲存算一体芯片以及电子设备
CN213365507U (zh) 脉冲存算一体芯片以及电子设备
US20030220889A1 (en) Analog accumulator for neural networks
JP7482071B2 (ja) 記憶装置およびニューラルネットワーク装置
CN116579392A (zh) 一种基于电导可调器件的神经网络训练操作***及方法

Legal Events

Date Code Title Description
A201 Request for examination