KR20210144417A - Apparatus for performing in memory processing and computing apparatus having the same - Google Patents

Apparatus for performing in memory processing and computing apparatus having the same Download PDF

Info

Publication number
KR20210144417A
KR20210144417A KR1020200061746A KR20200061746A KR20210144417A KR 20210144417 A KR20210144417 A KR 20210144417A KR 1020200061746 A KR1020200061746 A KR 1020200061746A KR 20200061746 A KR20200061746 A KR 20200061746A KR 20210144417 A KR20210144417 A KR 20210144417A
Authority
KR
South Korea
Prior art keywords
voltage
time
capacitor
quantization level
trigger pulse
Prior art date
Application number
KR1020200061746A
Other languages
Korean (ko)
Inventor
이형우
김상준
주용민
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200061746A priority Critical patent/KR20210144417A/en
Priority to CN202011211418.9A priority patent/CN113707193A/en
Priority to US17/141,474 priority patent/US11587616B2/en
Priority to EP21172460.4A priority patent/EP3913629B1/en
Priority to JP2021085813A priority patent/JP2021185479A/en
Publication of KR20210144417A publication Critical patent/KR20210144417A/en
Priority to US17/992,143 priority patent/US11804266B2/en

Links

Images

Classifications

    • 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/0069Writing or programming circuits or 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
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • G11C5/063Voltage and signal distribution in integrated semi-conductor memory access lines, e.g. word-line, bit-line, cross-over resistance, propagation delay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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
    • 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
    • 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/0028Word-line or row 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
    • 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/0061Timing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • G11C5/10Arrangements for interconnecting storage elements electrically, e.g. by wiring for interconnecting capacitors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/147Voltage reference generators, voltage or current regulators; Internally lowered supply levels; Compensation for voltage drops
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Neurology (AREA)
  • Power Engineering (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Chemical & Material Sciences (AREA)
  • Materials Engineering (AREA)
  • Analogue/Digital Conversion (AREA)
  • Memory System (AREA)
  • Semiconductor Memories (AREA)
  • Read Only Memory (AREA)

Abstract

An apparatus for performing in-memory processing comprises: a memory cell array providing a current sum when input signals are applied; a capacitor charging a sampling voltage corresponding to the current sum; and a processing circuit performing an operation for comparing between a currently charged voltage in the capacitor and a reference voltage and determining a quantization level corresponding to the sampling voltage by performing time-digital converting at a time when the currently charged voltage reaches the reference voltage.

Description

인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치 {APPARATUS FOR PERFORMING IN MEMORY PROCESSING AND COMPUTING APPARATUS HAVING THE SAME}Apparatus for performing in-memory processing and computing device including the same

인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치에 관하고, 구체적으로 시간-디지털 컨버팅에 기초한 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치에 에 관한다.It relates to an apparatus for performing in-memory processing and a computing device including the same, and more particularly, to an apparatus for performing in-memory processing based on time-digital conversion and a computing device including the same.

뉴럴 네트워크는 컴퓨터 과학적 아키텍처(computational architecture)를 참조하여 구현된 컴퓨팅 시스템이다. 최근 뉴럴 네트워크 기술이 발전함에 따라, 다양한 종류의 전자 시스템에서 뉴럴 네트워크를 이용하여 입력 데이터를 분석하고 유효한 정보를 추출하는 연구가 활발히 진행되고 있다. 뉴럴 네트워크의 처리는 복잡한 입력 데이터에 대한 많은 양의 연산을 필요로 한다. 뉴럴 네트워크의 데이터가 증가하고, 뉴럴 네트워크를 구성하는 아키텍처의 연결성이 복잡해짐에 따라 프로세싱 장치의 연산량 및 메모리 액세스 빈도의 과도한 증가가 초래되어, 소형화 및 상용화에 있어서의 비효율적인 성능이 나타날 수 있다. 예를 들어, 뉴럴 네트워크의 처리는 곱셉과 덧셈을 반복하는 MAC(Multiply-Accumulate) 연산을 포함할 수 있다. 뉴럴 네트워크의 처리에 있어서 많은 연산량을 차지하는 반복적인 MAC 연산을 저전력 및 고속으로 처리하기 위한, 효율적인 하드웨어 아키텍쳐 및 하드웨어 구동 방법들에 대한 다양한 시도들이 연구되고 있다.A neural network is a computing system implemented with reference to a computational architecture. With the recent development of neural network technology, research on analyzing input data and extracting valid information using a neural network in various types of electronic systems is being actively conducted. The processing of neural networks requires a large amount of computation on complex input data. As the data of the neural network increases and the connectivity of the architecture constituting the neural network becomes complicated, the amount of computation and the memory access frequency of the processing device are excessively increased, resulting in inefficient performance in miniaturization and commercialization. For example, the processing of the neural network may include a multiply-accumulate (MAC) operation that repeats multiplication and addition. Various attempts have been made on efficient hardware architectures and hardware driving methods to process repetitive MAC operations that occupy a large amount of computation in neural network processing with low power and high speed.

인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치를 제공하는데 있다. 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.An object of the present invention is to provide an apparatus for performing in-memory processing and a computing device including the same. The technical problem to be achieved by the present embodiment is not limited to the technical problems as described above, and other technical problems may be inferred from the following embodiments.

일 측면에 따르면, 인-메모리(in-memory) 프로세싱을 수행하는 장치는, 입력 신호들이 각각의 로우(row) 라인을 통해 인가되는 경우 각각의 컬럼(column) 라인을 통해 흐르는 컬럼 전류의 전류 합(current sum)을 제공하는, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이; 상기 각각의 컬럼 라인의 상기 전류 합에 대응하는 샘플링 전압을 충전하는 커패시터를 포함하는 샘플링 회로; 및 상기 커패시터의 충전 시간에 따라 구분된 양자화 레벨들 중 소정의 양자화 레벨에 대응하는 타이밍에 생성된 트리거 펄스의 인가에 의해 상기 커패시터에 현재 충전된 전압과 레퍼런스 전압 간의 비교 동작을 시작하고, 상기 현재 충전된 전압이 상기 레퍼런스 전압에 도달한 시점에서 시간-디지털 컨버팅을 수행함으로써 상기 샘플링 전압에 대응하는 양자화 레벨을 결정하는 프로세싱 회로를 포함한다.According to one aspect, an apparatus for performing in-memory processing includes a sum of currents of column currents flowing through each column line when input signals are applied through each row line. a memory cell array comprising a plurality of memory cells providing a current sum; a sampling circuit including a capacitor for charging a sampling voltage corresponding to the sum of the currents of each of the column lines; and a comparison operation between a voltage currently charged in the capacitor and a reference voltage is started by application of a trigger pulse generated at a timing corresponding to a predetermined quantization level among quantization levels divided according to the charging time of the capacitor, and the current and a processing circuit configured to determine a quantization level corresponding to the sampling voltage by performing time-digital conversion when the charged voltage reaches the reference voltage.

다른 측면에 따르면, 컴퓨팅 장치는, 호스트 프로세서; 메모리 디바이스; 및 인-메모리 프로세싱 디바이스를 포함하고, 상기 인-메모리 프로세싱 디바이스는 입력 신호들이 각각의 로우(row) 라인을 통해 인가되는 경우 각각의 컬럼(column) 라인을 통해 흐르는 컬럼 전류의 전류 합(current sum)을 제공하는, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이; 상기 각각의 컬럼 라인의 상기 전류 합에 대응하는 샘플링 전압을 충전하는 커패시터를 포함하는 샘플링 회로; 및 상기 커패시터의 충전 시간에 따라 구분된 양자화 레벨들 중 소정의 양자화 레벨에 대응하는 타이밍에 생성된 트리거 펄스의 인가에 의해 상기 커패시터에 현재 충전된 전압과 레퍼런스 전압 간의 비교 동작을 시작하고, 상기 현재 충전된 전압이 상기 레퍼런스 전압에 도달한 시점에서 시간-디지털 컨버팅을 수행함으로써 상기 샘플링 전압에 대응하는 양자화 레벨을 결정하는 프로세싱 회로를 포함한다.According to another aspect, a computing device includes: a host processor; memory device; and an in-memory processing device, wherein the in-memory processing device is a current sum of column currents flowing through each column line when input signals are applied through each row line. ), providing a memory cell array comprising a plurality of memory cells; a sampling circuit including a capacitor for charging a sampling voltage corresponding to the sum of the currents of each of the column lines; and a comparison operation between a voltage currently charged in the capacitor and a reference voltage is started by application of a trigger pulse generated at a timing corresponding to a predetermined quantization level among quantization levels divided according to the charging time of the capacitor, and the current and a processing circuit configured to determine a quantization level corresponding to the sampling voltage by performing time-digital conversion when the charged voltage reaches the reference voltage.

또 다른 측면에 따르면, 인-메모리(in-memory) 프로세싱을 수행하는 방법은, 메모리 셀 어레이의 각각의 로우(row) 라인을 통해 복수의 메모리 셀들에 입력 신호를 인가하는 단계; 상기 메모리 셀 어레이의 각각의 컬럼(column) 라인을 통해 흐르는 컬럼 전류의 전류 합(current sum)에 대응하는 샘플링 전압을 상기 각각의 컬럼(column) 라인에 연결된 커패시터에 충전하는 단계; 상기 커패시터의 충전 시간에 따라 구분된 양자화 레벨들 중 소정의 양자화 레벨에 대응하는 타이밍에 생성된 트리거 펄스를 비교기들에 인가함으로써 상기 커패시터에 현재 충전된 전압과 레퍼런스 전압 간의 비교 동작을 수행하는 단계; 및 상기 현재 충전된 전압이 상기 레퍼런스 전압에 도달한 시점에서 시간-디지털 컨버팅을 수행함으로써 상기 샘플링 전압에 대응하는 양자화 레벨을 결정하는 단계를 포함한다.According to another aspect, a method of performing in-memory processing includes: applying an input signal to a plurality of memory cells through each row line of a memory cell array; charging a sampling voltage corresponding to a current sum of column currents flowing through each column line of the memory cell array into a capacitor connected to each column line; performing a comparison operation between a voltage currently charged in the capacitor and a reference voltage by applying a trigger pulse generated at a timing corresponding to a predetermined quantization level among quantization levels divided according to a charging time of the capacitor to comparators; and determining a quantization level corresponding to the sampling voltage by performing time-digital conversion when the currently charged voltage reaches the reference voltage.

도 1은 생물학적 뉴런과 그 동작을 설명하기 위한 도면이다.
도 2는 뉴로모픽 연산을 수행하기 위한 2차원 어레이 회로의 구성을 설명하기 위한 도면이다.
도 3은 뉴로모픽 연산의 처리 방법을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 인-메모리 프로세싱 디바이스를 도시한 도면이다.
도 5는 일 실시예에 따른 어느 컬럼 라인의 합성 저항 값 및 합산 비트 값 간의 매핑 관계를 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 인-메모리 프로세싱 디바이스를 설명하기 위한 도면이다.
도 7은 일 실시예에 따라 커패시터에 전압이 충전되는 시간에 따라 양자화 레벨들의 시간 구간들을 설정하는 것을 설명하기 위한 도면이다.
도 8은 일 실시예에 따라 비교기에 트리거 펄스(TRIGGER)를 인가하는 타이밍을 설명하기 위한 도면이다.
도 9는 일 실시예에 따라 인-메모리 프로세싱 디바이스에서 수행되는 시간-디지털 컨버팅을 설명하기 위한 도면이다.
도 10은 일 실시예에 따라 시간-디지털 컨버팅을 통해 컬럼 라인(출력 라인) 별 카운팅 값을 출력하는 것을 설명하기 위한 도면이다.
도 11은 일 실시예에 따라 인-메모리 프로세싱을 수행하는 방법의 흐름도이다.
도 12는 일 실시예에 따른 컴퓨팅 장치를 나타내는 블록도이다.
도 13은 뉴럴 네트워크의 일 예를 설명하기 위한 도면이다.
도 14는 일 실시예에 따라 인-메모리 프로세싱을 수행하는 방법의 흐름도이다.
1 is a diagram for explaining a biological neuron and its operation.
2 is a diagram for explaining the configuration of a two-dimensional array circuit for performing a neuromorphic operation.
3 is a diagram for explaining a method of processing a neuromorphic operation.
4 is a diagram illustrating an in-memory processing device according to an embodiment.
5 is a diagram for describing a mapping relationship between a combined resistance value of a certain column line and a sum bit value according to an exemplary embodiment.
6 is a diagram for describing an in-memory processing device according to an embodiment.
7 is a diagram for explaining setting time intervals of quantization levels according to a time when a voltage is charged in a capacitor, according to an embodiment.
8 is a diagram for explaining a timing of applying a trigger pulse TRIGGER to a comparator according to an exemplary embodiment.
9 is a diagram for describing time-digital conversion performed in an in-memory processing device according to an embodiment.
10 is a diagram for explaining outputting a counting value for each column line (output line) through time-digital conversion according to an exemplary embodiment.
11 is a flowchart of a method for performing in-memory processing according to an embodiment.
12 is a block diagram illustrating a computing device according to an embodiment.
13 is a diagram for describing an example of a neural network.
14 is a flowchart of a method for performing in-memory processing according to an embodiment.

실시예들에서 사용되는 용어는 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 명세서의 전반에 걸친 내용을 토대로 정의되어야 한다.Terms used in the embodiments are selected as currently widely used general terms as possible, which may vary according to intentions or precedents of those of ordinary skill in the art, emergence of new technologies, and the like. In addition, in a specific case, there is a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the corresponding description. Therefore, the terms used in the specification should be defined based on the meaning of the term and the contents of the entire specification, not the simple name of the term.

본 실시예들에서 사용되는 “구성된다” 또는 “포함한다” 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.Terms such as “consisting” or “comprising” used in the present embodiments should not be construed as necessarily including all of the various components or various steps described in the specification, and some components or It should be construed that some steps may not be included, or may further include additional components or steps.

아래에서는 첨부한 도면을 참고하여 실시예에 대하여 상세히 설명한다. 그러나 실시예는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 예에 한정되지 않는다.Hereinafter, an embodiment will be described in detail with reference to the accompanying drawings. However, the embodiment may be implemented in several different forms and is not limited to the examples described herein.

도 1은 생물학적 뉴런과 그 동작을 설명하기 위한 도면이다.1 is a diagram for explaining a biological neuron and its operation.

도 1을 참고하면, 생물학적 뉴런(10)은 인간의 신경계에 존재하는 세포를 의미하며, 기초적인 생물학적 계산 개체의 하나이다. 인간의 두뇌는 대략 1000억개 정도의 생물학적 뉴런들과 그 사이에 위치하는 100조개 정도의 연결들(interconnections)을 포함하고 있다.Referring to FIG. 1 , a biological neuron 10 refers to a cell existing in the human nervous system, and is one of the basic biological calculation entities. The human brain contains about 100 billion biological neurons and 100 trillion interconnections between them.

생물학적 뉴런(10)은 단일 세포이며 세포핵(nucleus) 및 다양한 세포기관(organelles)을 포함하는 세포체(neuron cell body)를 포함한다. 다양한 세포기관은 미토콘드리아, 세포체로부터 방사되는 다수의 수상돌기들(dendrites) 및 많은 분기 확장선(extension)들에서 종단하는 축색돌기(axon)를 포함한다.Biological neuron 10 is a single cell and includes a cell body (neuron cell body) including a cell nucleus (nucleus) and various organelles (organelles). Various organelles contain mitochondria, numerous dendrites radiating from the cell body, and axons terminating in many branching extensions.

일반적으로, 축색돌기는 뉴런으로부터 다른 뉴런으로 신호들을 송신하는 기능을 수행하고, 수상돌기는 다른 뉴런으로부터 신호를 수신하는 기능을 수행한다. 예를 들어, 서로 다른 뉴런들이 연결되어 있는 경우 뉴런의 축색돌기를 통해 전달된 신호는 다른 뉴런의 수상돌기에 의해 수신될 수 있다. 이때, 뉴런들 사이에서 신호는 시냅스(synapse)라 지칭되는 특화된 연결을 통해 전달되며, 여러 뉴런들이 서로 연결되어 뉴럴 네트워크(neural network)을 형성한다. 시냅스를 기준으로 신경전달물질(neurotransmitter)을 분비하는 뉴런은 프리 시냅틱 뉴런(pre-synaptic neuron)으로 지칭되고, 신경전달물질을 통해 전달되는 정보를 받는 뉴런은 포스트 시냅틱 뉴런(post-synaptic neuron)이라고 지칭될 수 있다.In general, an axon performs a function of transmitting signals from one neuron to another neuron, and a dendrite performs a function of receiving a signal from another neuron. For example, when different neurons are connected, a signal transmitted through an axon of a neuron may be received by a dendrite of another neuron. At this time, a signal is transmitted between neurons through a specialized connection called a synapse, and several neurons are connected to each other to form a neural network. A neuron that secretes a neurotransmitter based on a synapse is called a pre-synaptic neuron, and a neuron that receives information transmitted through a neurotransmitter is called a post-synaptic neuron. may be referred to.

한편, 인간의 두뇌는 많은 수의 뉴런들이 서로 연결되어 형성되는 뉴럴 네트워크를 통해 다양한 신호들을 전달 및 처리함으로써 방대한 양의 정보를 학습하고 기억할 수 있다. 인간의 두뇌 내의 뉴런들 사이의 방대한 수의 연결들은 생물학적 컴퓨팅의 거대 병렬 속성(massively parallel nature)에 직접 상관되는바, 인공 뉴럴 네트워크(artificial neural network)를 통해 생물학적 뉴럴 네트워크를 모사하여 방대한 양의 정보를 효율적으로 처리하기 위한 다양한 시도가 있어왔다. 예를 들어, 인공 뉴럴 네트워크를 뉴런 수준에서 구현하기 위해 설계된 컴퓨팅 시스템으로서, 뉴로모픽 장치가 연구되고 있다. On the other hand, the human brain can learn and remember a vast amount of information by transmitting and processing various signals through a neural network formed by connecting a large number of neurons. The vast number of connections between neurons in the human brain directly correlates to the massively parallel nature of biological computing. Various attempts have been made to efficiently process For example, as a computing system designed to implement artificial neural networks at the neuron level, neuromorphic devices are being studied.

한편, 생물학적 뉴런(10)의 동작은 수학적 모델(11)로 모사될 수 있다. 생물학적 뉴런(10)에 대응하는 수학적 모델(11)은 뉴로모픽 연산의 일 예로서, 다수의 뉴런들로부터의 정보에 대해 시냅틱 웨이트를 곱하는 곱셈 연산, 시냅틱 웨이트가 곱해진 값들(ω0x0, ω1x1, ω2x2)에 대한 덧셈 연산(Σ), 및 덧셈 연산 결과에 대해 특성 함수(b) 및 활성 함수(f)를 적용하는 연산을 포함할 수 있다. 뉴로모픽 연산에 의해 뉴로모픽 연산 결과가 제공될 수 있다. 여기서, x0, x1, x2, ... 등의 값들은 액손 값들로 지칭되고, ω0, ω1, ω2, ... 등의 값들은 시냅틱 웨이트들로 지칭될 수 있다.Meanwhile, the operation of the biological neuron 10 may be simulated by the mathematical model 11 . The mathematical model 11 corresponding to the biological neuron 10 is an example of a neuromorphic operation, a multiplication operation for multiplying information from a plurality of neurons by a synaptic weight, and values multiplied by the synaptic weight (ω 0 x 0) , ω 1 x 1 , ω 2 x 2 ), and an operation of applying a characteristic function (b) and an activation function (f) to the result of the addition operation. A neuromorphic operation result may be provided by the neuromorphic operation. Here, values of x 0 , x 1 , x 2 , ... etc. may be referred to as axon values, and values of ω 0 , ω 1 , ω 2 , ... etc. may be referred to as synaptic weights.

도 2는 뉴로모픽 연산을 수행하기 위한 2차원 어레이 회로의 구성을 설명하기 위한 도면이다.2 is a diagram for explaining the configuration of a two-dimensional array circuit for performing a neuromorphic operation.

도 2를 참조하면, 2차원 어레이 회로의 구성(20)은 N 개(N은 임의의 자연수)의 액손 회로들(A1 내지 AN)(210), M 개(M은 임의의 자연수)의 뉴런 회로들(N1 내지 NM)(230) 및 N x M 개의 시냅스 어레이(S11 내지 SNM)(220)를 포함한다.Referring to FIG. 2 , the configuration 20 of the two-dimensional array circuit consists of N (N is an arbitrary natural number) axon circuits (A 1 to A N ) 210 , M (M is an arbitrary natural number) neuron circuits (N 1 to N M ) 230 and N x M synaptic arrays (S 11 to S NM ) 220 .

시냅스 어레이(S11 내지 SNM)(220)의 각 시냅스는 액손 회로들(A1 내지 AN)(210)로부터 제 1 방향으로 연장되는 제 1 방향 라인들과 뉴런 회로들(N1 내지 NM)(230)로부터 제 2 방향으로 연장되는 제2 방향 라인들의 교차점들에 배치될 수 있다. 여기서, 설명의 편의를 위하여, 제 1 방향은 행 방향이고 제2 방향은 열 방향인 것으로 도시되어 있으나, 이에 제한되지 않고 제 1 방향이 열 방향이고 제 2 방향은 행 방향일 수도 있다.Each synapse of the synapse array (S 11 to S NM ) 220 has first direction lines and neuron circuits N 1 to N extending in the first direction from the axon circuits A 1 to A N 210 . M ) 230 may be disposed at intersections of lines in the second direction extending in the second direction. Here, for convenience of description, it is illustrated that the first direction is a row direction and the second direction is a column direction, but the present invention is not limited thereto, and the first direction may be a column direction and the second direction may be a row direction.

액손 회로들(A1 내지 AN)(210) 각각은 생물학적 뉴런(도 1의 10)의 축색돌기를 모사하는 회로를 의미할 수 있다. 뉴런의 축색돌기는 뉴런으로부터 다른 뉴런으로 신호들을 송신하는 기능을 수행하므로, 뉴런의 축색돌기를 모사하는 액손 회로들(A1 내지 AN)(210) 각각은 액티베이션(예를 들어, 액손들 a1, a2, ..., aN)을 입력 받아 제 1 방향 라인들로 전달할 수 있다. 액티베이션은 뉴런을 통해 전달되는 신경 전달 물질에 대응되는 것으로서, 액손 회로들(A1 내지 AN)(210) 각각에 입력되는 전기적 신호를 의미할 수 있다. 한편, 액손 회로들(A1 내지 AN)(210) 각각은 입력 정보를 저장하는 메모리, 레지스터 또는 버퍼를 포함할 수 있다. 한편, 액티베이션은 바이너리(binary) 값을 갖는 바이너리 액티베이션일 수 있다. 예를 들어, 바이너리 액티베이션은 논리값 0 또는 1(또는, 논리값 -1 또는 1)에 대응되는 1 비트 정보를 포함할 수 있다. 다만, 반드시 이에 제한되는 것은 아니며, 액티베이션은 터너리(ternary) 값을 가질 수 있고, 멀티-비트 값을 가질 수도 있다. Each of the axon circuits A 1 to A N 210 may refer to a circuit that mimics the axon of a biological neuron ( 10 in FIG. 1 ). Since the axon of a neuron performs the function of transmitting signals from a neuron to another neuron, each of the axon circuits (A 1 to A N ) 210 mimicking the axon of a neuron is activated (eg, axons a 1 , a 2 , ..., a N ) may be received and transmitted to lines in the first direction. Activation corresponds to a neurotransmitter transmitted through a neuron, and may mean an electrical signal input to each of the axon circuits A 1 to A N 210 . Meanwhile, each of the axon circuits A 1 to A N 210 may include a memory, a register, or a buffer for storing input information. Meanwhile, the activation may be a binary activation having a binary value. For example, binary activation may include 1-bit information corresponding to a logical value 0 or 1 (or a logical value -1 or 1). However, the present invention is not necessarily limited thereto, and the activation may have a ternary value or a multi-bit value.

시냅스 어레이(S11 내지 SNM)(220)의 각 시냅스는 뉴런과 뉴런 사이의 시냅스를 모사하는 회로를 의미할 수 있다. 시냅스 어레이(S11 내지 SNM)(220)는 뉴런과 뉴런 사이의 연결 강도에 대응되는 시냅틱 웨이트들을 저장할 수 있다. 도 2에서는 설명의 편의를 위해 각 시냅스에 저장될 시냅틱 웨이트들의 예로서, w1, w2, ..., wM가 도시되어 있으나, 각 시냅스에는 이 밖에도 다른 시냅틱 웨이트들이 저장될 수 있다. 시냅스 어레이(S11 내지 SNM)(220)의 각 시냅스는 시냅틱 웨이트를 저장하기 위한 메모리 소자를 포함하거나 또는 시냅틱 웨이트를 저장하고 있는 다른 메모리 소자에 연결될 수 있다. 여기서, 이와 같은 메모리 소자는 예를 들어, 멤리스터(memrister) 또는 저항성 메모리 셀(resistive memory cell)에 해당될 수 있다. 멤리스터 또는 저항성 메모리 셀은 SRAM(Static Random-Access Memory), PCM(Phase Change Memory), OXRAM(Oxide Based Memory), MRAM(Magnetoresistive Random-Access Memory), STT-RAM(Spin-Transfer Torque Random-Access Memory), CBRAM(Conductive-Bridge Random-Access Memory), RRAM (Resistive RAM), FRAM (Ferroelectric RAM), 자기 터널 접합(Magnetic Tunnel Junction; MTJ) 소자 등으로 구현될 수 있으나, 이에 제한되는 것은 아니다.Each synapse of the synapse array (S 11 to S NM ) 220 may refer to a circuit that mimics a neuron and a synapse between the neurons. The synaptic arrays S 11 to S NM 220 may store synaptic weights corresponding to the strength of a neuron-to-neuron connection. 2 , as examples of synaptic weights to be stored in each synapse, w 1 , w 2 , ..., w M are shown in FIG. 2 , but other synaptic weights may be stored in each synapse. Each synapse of the synapse array (S 11 to S NM ) 220 may include a memory element for storing the synaptic weight or may be connected to another memory element storing the synaptic weight. Here, such a memory device may correspond to, for example, a memristor or a resistive memory cell. Memristor or resistive memory cells include static random-access memory (SRAM), phase change memory (PCM), oxide-based memory (OXRAM), magnetoresistive random-access memory (MRAM), and spin-transfer torque random-access (STT-RAM). Memory), Conductive-Bridge Random-Access Memory (CBRAM), Resistive RAM (RRAM), Ferroelectric RAM (FRAM), Magnetic Tunnel Junction (MTJ) devices, etc., but are not limited thereto.

시냅스 어레이(S11 내지 SNM)(220) 각각은 대응되는 제 1 방향 라인을 통해 액손 회로들(A1 내지 AN)(210) 각각으로부터 전달되는 액티베이션 입력을 수신할 수 있고, 저장되어 있던 시냅틱 웨이트와 액티베이션 입력 간의 뉴로모픽 연산의 결과를 출력할 수 있다. 예를 들어, 시냅틱 웨이트와 액티베이션 입력 간의 뉴로모픽 연산은 곱셈 연산(즉, AND 연산)일 수 있으나, 이에 제한되는 것은 아니다. 즉, 시냅틱 웨이트와 액티베이션 입력 간의 뉴로모픽 연산의 결과는 뉴런과 뉴런 사이의 연결 강도에 따라 조절되는 액티베이션의 세기 또는 크기를 모사하기 위한 다른 임의의 적절한 연산에 의해 획득되는 값일 수도 있다.Each of the synaptic arrays (S 11 to S NM ) 220 may receive an activation input transmitted from each of the axon circuits A 1 to A N 210 through a corresponding first direction line, and the stored The result of neuromorphic operation between the synaptic weight and the activation input can be output. For example, the neuromorphic operation between the synaptic weight and the activation input may be a multiplication operation (ie, an AND operation), but is not limited thereto. That is, the result of the neuromorphic operation between the synaptic weight and the activation input may be a value obtained by any other suitable operation for simulating the intensity or size of activation adjusted according to the strength of the connection between the neuron and the neuron.

시냅틱 웨이트와 액티베이션 입력 간의 뉴로모픽 연산에 따라 액손 회로들(A1 내지 AN)(210)로부터 뉴런 회로들(N1 내지 NM)(230)로 전달되는 신호의 크기 또는 세기가 조절될 수 있다. 이와 같이, 시냅스 어레이(S11 내지 SNM)(220)를 이용하여 뉴런과 뉴런 사이의 연결강도에 따라 다음 뉴런으로 전달되는 신호의 크기 또는 세기가 조절되는 동작이 모사될 수 있다.Depending on the neuromorphic operation between the synaptic weight and the activation input, the magnitude or intensity of a signal transmitted from the axon circuits (A 1 to A N ) 210 to the neuron circuits (N 1 to N M ) 230 is adjusted. can In this way, using the synaptic arrays (S 11 to S NM ) 220 , an operation in which the size or intensity of a signal transmitted to the next neuron is adjusted according to the connection strength between the neuron and the neuron can be simulated.

뉴런 회로들(N1 내지 NM)(230) 각각은 수상돌기를 포함하는 뉴런을 모사하는 회로를 의미할 수 있다. 뉴런의 수상돌기는 다른 뉴런으로부터 신호를 수신하는 기능을 수행하는바, 뉴런 회로들(N1 내지 NM)(230) 각각은 대응되는 제 2 방향 라인을 통해 시냅틱 웨이트와 액티베이션 입력 간의 뉴로모픽 연산의 결과를 수신할 수 있다. 뉴런 회로들(N1 내지 NM)(230) 각각은 뉴로모픽 연산의 결과에 기초하여 스파이크(spike)를 출력할지 여부를 결정할 수 있다. 예를 들어, 뉴런 회로들(N1 내지 NM) 각각은 뉴로모픽 연산의 결과를 누적한 값이 미리 설정된 임계값 이상인 경우 스파이크를 출력할 수 있다. 뉴런 회로들(N1 내지 NM)(230)로부터 출력된 스파이크들은 다음 단의 액손 회로들에 입력 되는 액티베이션에 대응될 수 있다.Each of the neuron circuits N 1 to N M 230 may refer to a circuit simulating a neuron including a dendrite. A dendrite of a neuron performs a function of receiving a signal from another neuron, and each of the neuronal circuits (N 1 to N M ) 230 is a neuromorphic between a synaptic weight and an activation input through a corresponding second direction line. The result of the operation can be received. Each of the neuron circuits N 1 to N M 230 may determine whether to output a spike based on a result of a neuromorphic operation. For example, each of the neuron circuits N 1 to N M may output a spike when an accumulated value of a neuromorphic operation result is equal to or greater than a preset threshold value. The spikes output from the neuron circuits N 1 to N M 230 may correspond to activation input to the axon circuits of the next stage.

한편, 뉴런 회로들(N1 내지 NM)(230)은 시냅스 어레이(S11 내지 SNM)(220)를 기준으로 후단에 위치하는바, 포스트 시냅틱 뉴런 회로들로 지칭될 수 있고, 액손 회로들(A1 내지 AN)(210)은 시냅스 어레이(S11 내지 SNM)(220)를 기준으로 전단에 위치하는바, 프리 시냅틱 뉴런 회로들로 지칭될 수 있다.Meanwhile, the neuron circuits (N 1 to N M ) 230 are located at the rear end with respect to the synaptic array (S 11 to S NM ) 220 , and may be referred to as post-synaptic neuron circuits, and may be referred to as axon circuits. The ones (A 1 to A N ) 210 are located at the front end with respect to the synaptic array (S 11 to S NM ) 220 , and may be referred to as pre-synaptic neuron circuits.

도 3은 뉴로모픽 연산의 처리 방법을 설명하기 위한 도면이다.3 is a diagram for explaining a method of processing a neuromorphic operation.

뉴로모픽 연산을 처리하기 위한 2차원 어레이 회로는 각각의 컬럼 라인 별 전류 합산(current summation) 방식을 이용할 수 있다. 예를 들어, 2차원 어레이 회로는 액손 회로들(A1 내지 AN)로부터 전달된 액티베이션에 의해 시냅스들(S11, S21, S(N-1)1, SN1)을 통해 컬럼 라인(310)을 따라 흐르는 전류를 합산하고, 합산된 전류의 크기 또는 세기가 기 설정된 임계값 이상인 경우 스파이크를 출력한다. 이때, 합산된 전류의 크기 또는 세기를 획득하기 위해서는 ADC(Analog to Digital Converter), DAC(Digital to Analog Converter) 등과 같은 주변 회로가 구비될 필요가 있다. 하지만, ADC 또는 DAC는 전체 회로 구성에 대한 전력 및 면적 측면에서 비효율적인 오버헤드의 요인이 될 수 있다. 따라서, 이하에서는 본 실시예들에 따라, 덧셈 및 곱셈을 반복하는 MAC 연산과 같은 뉴로모픽 연산을 ADC 또는 DAC 대신에, 시간-디지털 컨버터(TDC, time-to-digital converter)에 기반한 회로 디자인을 갖는 집적도 높은 온-칩(on-chip) 시스템을 구현하기 위한 방법에 대해 설명하도록 한다.A two-dimensional array circuit for processing a neuromorphic operation may use a current summation method for each column line. For example, the two-dimensional array circuit is a column line ( S 11 , S 21 , S (N-1)1 , S N1 ) through the synapses (S 11 , S 21 , S (N-1)1 , S N1 ) by activation transmitted from the axon circuits (A 1 to A N ). 310), and outputs a spike when the magnitude or intensity of the summed current is greater than or equal to a preset threshold value. In this case, in order to obtain the magnitude or strength of the summed current, it is necessary to provide a peripheral circuit such as an analog to digital converter (ADC), a digital to analog converter (DAC), and the like. However, ADC or DAC can be a source of inefficient overhead in terms of power and area for the overall circuit configuration. Therefore, in the following, a circuit design based on a time-to-digital converter (TDC) instead of an ADC or a DAC for a neuromorphic operation such as a MAC operation that repeats addition and multiplication according to the present embodiments. A method for implementing an on-chip system having a high degree of integration will be described.

도 4는 일 실시예에 따른 인-메모리 프로세싱 디바이스를 도시한 도면이다.4 is a diagram illustrating an in-memory processing device according to an embodiment.

도 4를 참고하면, 인-메모리 프로세싱 디바이스(100)는 뉴로모픽 연산을 위하여 곱셈 및 덧셈을 수행한 결과를 출력하는 회로로 구성될 수 있다.Referring to FIG. 4 , the in-memory processing device 100 may be configured as a circuit that outputs a result of performing multiplication and addition for a neuromorphic operation.

인-메모리 프로세싱 디바이스(100)는 복수의 메모리 셀들(110), 커패시터(C), 및 시간-디지털 컨버터(TDC)(140)를 포함할 수 있다. 또한, 인-메모리 프로세싱 디바이스(100)는 시간 디지털 컨버터(140)로 전달되는 시간 정보를 생성하기 위한 비교기(130)를 더 포함할 수 있다. 도 4에서는 설명의 편의를 위하여, 인-메모리 프로세싱 디바이스(100)에 구비된 메모리 셀 어레이 중 일부에 해당하는 컬럼(column) 라인(120) 및 로우(row) 라인들에 대해서만 도시되어 있을 뿐이다. 따라서, 인-메모리 프로세싱 디바이스(100)는 복수의 컬럼 라인들 및 로우 라인들이 교차하는 위치에 복수의 메모리 셀들이 배치된 메모리 셀 어레이를 포함할 수 있다.The in-memory processing device 100 may include a plurality of memory cells 110 , a capacitor C, and a time-to-digital converter (TDC) 140 . In addition, the in-memory processing device 100 may further include a comparator 130 for generating time information that is passed to the time digital converter 140 . In FIG. 4 , for convenience of description, only column lines 120 and row lines corresponding to a part of a memory cell array included in the in-memory processing device 100 are illustrated. Accordingly, the in-memory processing device 100 may include a memory cell array in which a plurality of memory cells are disposed at positions where a plurality of column lines and row lines intersect.

메모리 셀들(110)은 앞서 설명된 바와 같이, 멤리스터 또는 저항성 메모리 소자로 구현된 것으로서, 가변저항을 갖는 소자일 수 있다. 메모리 셀들(110)에는 입력 신호에 응답하여 각각의 로우 라인을 통해 전압(V1, V2, V3, ..., Vm)이 인가될 수 있다. 예를 들어, 메모리 셀들(110)에는 입력 신호의 입력 전압 신호가 직접 인가되거나, 또는 입력 신호에 의해 공급 전압이 인가될 수도 있다.As described above, the memory cells 110 are implemented as memristors or resistive memory devices, and may be devices having a variable resistance. Voltages V 1 , V 2 , V 3 , ..., V m may be applied to the memory cells 110 through each row line in response to an input signal. For example, an input voltage signal of an input signal may be directly applied to the memory cells 110 , or a supply voltage may be applied by the input signal.

메모리 셀들(110) 각각의 일단은 스위치(SW)를 통해 전압을 수신 가능하게 구성될 수 있고, 메모리 셀들(110) 각각의 타단은 커패시터(C) 및 비교기(130)에 연결될 수 있다. 즉, 메모리 셀들(110)을 포함하는 개개의 컬럼 라인에는 커패시터(C) 및 비교기(130)가 연결되어 있다.One end of each of the memory cells 110 may be configured to receive a voltage through a switch SW, and the other end of each of the memory cells 110 may be connected to the capacitor C and the comparator 130 . That is, the capacitor C and the comparator 130 are connected to each column line including the memory cells 110 .

메모리 셀들(110) 각각의 저항 값과 메모리 셀들(110) 각각에 인가된 입력 신호의 전압 값에 따라, 컬럼 라인(120)에는 옴의 법칙에 기초하여 계산된 전류 값을 갖는 전류가 흐르게 된다. 따라서, 컬럼 라인(120)을 통해 흐르는 컬럼 전류의 전류 합(current sum)(Io)은, 서로 대응하는 메모리 셀들 및 입력 신호들 간의 MAC 연산의 결과 값에 대응할 수 있다.A current having a current value calculated based on Ohm's law flows in the column line 120 according to the resistance value of each of the memory cells 110 and the voltage value of the input signal applied to each of the memory cells 110 . Accordingly, a current sum I o of column currents flowing through the column line 120 may correspond to a result value of a MAC operation between corresponding memory cells and input signals.

입력 신호들(즉, 입력 전압들(V1, V2, V3, ..., Vm)) 각각은 시작 신호(START)에 응답하여 메모리 셀들(110) 각각에 인가될 수 있다. 이를 위하여, 인-메모리 프로세싱 디바이스(100)는 시작 신호(START)에 의해 스위칭되는 복수의 스위치들(101)을 포함할 수 있다. 스위치들(101)의 일단은 메모리 셀들(110)의 일단에 연결될 수 있다. 예를 들어, 제 1 스위치(SW1)는 제 1 메모리 셀(R1)의 일단에 연결되고, ..., 제 m 스위치(SWm)는 제 m 메모리 셀(Rm)의 일단에 연결될 수 있다. 여기서, m은 1이상의 자연수이다. 스위치들(101)의 타단은 입력 신호(즉, 입력 전압들(V1, V2, V3, ..., Vm))에 연결될 수 있다. 한편, 입력 신호는 모든 메모리 셀들(110)에 항상 인가되는 것은 아니고, 입력 신호의 값(입력 전압 값)에 따라 일부 메모리 셀에는 입력 신호가 인가되지 않을 수도 있다. 이때 인가되지 않는 입력 신호란, 입력 전압이 0인 경우를 의미할 수 있으나, 이에 제한되지 않고 특정 전압 값일 수도 있다.Each of the input signals (ie, the input voltages V 1 , V 2 , V 3 , ..., V m ) may be applied to each of the memory cells 110 in response to the start signal START. To this end, the in-memory processing device 100 may include a plurality of switches 101 switched by the start signal START. One end of the switches 101 may be connected to one end of the memory cells 110 . For example, the first switch SW 1 is connected to one end of the first memory cell R 1 , ..., the m-th switch SW m is connected to one end of the m- th memory cell R m . can Here, m is a natural number greater than or equal to 1. The other end of the switches 101 may be connected to an input signal (ie, input voltages V 1 , V 2 , V 3 , ..., V m ). Meanwhile, the input signal is not always applied to all memory cells 110 , and the input signal may not be applied to some memory cells according to the value of the input signal (input voltage value). In this case, the unapplied input signal may mean a case in which the input voltage is 0, but is not limited thereto and may be a specific voltage value.

입력 신호들은 일련의 바이너리 값들로 구성되는 입력 비트 시퀀스의 개별 비트 값에 대응할 수 있다. 구체적으로, 인-메모리 프로세싱 디바이스(100)에서 복수의 로우 라인들 각각은 입력 비트 시퀀스의 각 비트 위치에 대응할 수 있다. 어느 비트 위치의 비트 값이 1이면, 해당 비트 위치에 대응하는 로우 라인에는 비트 값 1에 대응하는 전압 값을 갖는 입력 신호가 인가될 수 있다. 이와 달리, 어느 비트 위치의 비트 값이 0이면, 해당 비트 위치에 대응하는 로우 라인에는 비트 값 0에 대응하는 전압 값(예를 들어, 0V 전압)의 입력 신호가 인가될 수 있다.The input signals may correspond to individual bit values of an input bit sequence consisting of a series of binary values. Specifically, each of the plurality of row lines in the in-memory processing device 100 may correspond to a respective bit position of the input bit sequence. When the bit value of a certain bit position is 1, an input signal having a voltage value corresponding to the bit value 1 may be applied to a row line corresponding to the corresponding bit position. Alternatively, when the bit value of a certain bit position is 0, an input signal of a voltage value (eg, 0V voltage) corresponding to the bit value 0 may be applied to a row line corresponding to the corresponding bit position.

메모리 셀들(110) 각각의 저항 값은 입력 비트 시퀀스의 각 비트에 곱해지는 비트 값(예를 들어, 웨이트 또는 시냅틱 웨이트)을 가질 수 있다. 메모리 셀들(110)은 가변저항을 갖는 저항성 메모리 소자로 구현될 수 있으므로, 메모리 셀들(110) 중 비트 값 1에 대응하는 메모리 셀은 제 1 저항 값을 갖고, 비트 값 0에 대응하는 메모리 셀은 제 2 저항 값을 가질 수 있다. 또는, 이에 제한되지 않고, 메모리 셀들(110)은 스위칭 소자를 이용하여 서로 다른 저항 값들을 갖는 복수의 저항기들 중에서 해당 비트 값에 대응되는 저항기가 선택되도록 스위칭되는 회로 구성으로 구현될 수도 있다.The resistance value of each of the memory cells 110 may have a bit value (eg, a weight or a synaptic weight) multiplied by each bit of the input bit sequence. Since the memory cells 110 may be implemented as resistive memory devices having a variable resistance, a memory cell corresponding to a bit value of 1 among the memory cells 110 has a first resistance value, and a memory cell corresponding to a bit value of 0 is It may have a second resistance value. Alternatively, without being limited thereto, the memory cells 110 may be implemented in a circuit configuration in which a resistor corresponding to a corresponding bit value is selected from among a plurality of resistors having different resistance values using a switching element.

한편, 본 실시예에서는 비트 값이 1 또는 0인 경우를 가정하였으나, 이에 제한되지 않고 비트 값은 1 또는 -1이거나, 또는 다른 바이너리 비트 값들이거나 터너리(ternary) 비트 값들 등일 수 있다.Meanwhile, in the present embodiment, it is assumed that the bit value is 1 or 0, but it is not limited thereto, and the bit value may be 1 or -1, or other binary bit values or ternary bit values.

커패시터(C)는 메모리 셀들(110)이 연결되어 있는 컬럼 라인(120)에 연결되고, 컬럼 라인(120)에 흐르는 컬럼 전류의 전류 합(Io)에 대응하는 전압으로 충전될 수 있다.The capacitor C is connected to the column line 120 to which the memory cells 110 are connected, and may be charged with a voltage corresponding to the sum of currents I o of column currents flowing through the column line 120 .

인-메모리 프로세싱 디바이스(100)에서 커패시터는 각각의 컬럼 라인 별로 연결되어 있고, 커패시터는 해당 컬럼 라인의 전류 합(Io)에 대응하는 전압을 샘플링한다. 따라서, 인-메모리 프로세싱 디바이스(100) 내에서 컬럼 라인 별로 연결된 커패시터들은 해당 컬럼 라인의 전류 합(Io)에 대응하는 샘플링 전압(Vo)(sampling voltage)을 충전하기 위한 샘플링 회로를 구성할 수 있다.In the in-memory processing device 100 , a capacitor is connected for each column line, and the capacitor samples a voltage corresponding to the sum of currents I o of the corresponding column line. Accordingly, capacitors connected for each column line in the in-memory processing device 100 constitute a sampling circuit for charging a sampling voltage V o corresponding to the sum of currents I o of the corresponding column line. can

비교기(130)는 커패시터(C)의 일단에 연결될 수 있다. 비교기(130)는 커패시터(C)에 샘플링 전압(Vo)이 충전되는 동안 현재 충전된 전압을 레퍼런스 전압(Vref)(reference voltage)과 비교하는 비교 동작을 수행할 수 있다. 비교기(130)는 예를 들어, 연산 증폭기(OP amp, operational amplifier)로 구현될 수 있다. 연산 증폭기의 한 입력 노드에는 커패시터(C)의 샘플링 전압(Vo)이 입력되고, 다른 입력 노드에는 레퍼런스 전압(Vref)가 입력될 수 있다.The comparator 130 may be connected to one end of the capacitor C. The comparator 130 may perform a comparison operation of comparing a current charged voltage with a reference voltage V ref while the sampling voltage V o is charged in the capacitor C . The comparator 130 may be implemented as, for example, an operational amplifier (OP amp). A sampling voltage V o of the capacitor C may be input to one input node of the operational amplifier, and a reference voltage V ref may be input to another input node.

샘플링 전압(Vo)은 커패시터(C)에 연결된 컬럼 라인(120)의 전류 합(Io)에 대응하는 전압으로서, 메모리 셀들(110)의 저항 값들 및 인가된 입력 신호들 간의 MAC 연산 결과에 대응하는 값일 수 있다.The sampling voltage (V o ) is a voltage corresponding to the sum of currents (I o ) of the column line 120 connected to the capacitor (C), and corresponds to the MAC operation result between the resistance values of the memory cells 110 and the applied input signals. It may be a corresponding value.

커패시터(C)는 컬럼 라인(120)의 합성 저항 값과 커패시턴스에 의해 결정되는 시상수(time constant; τ=R*C)에 기초하여, 소정의 시간에 걸쳐 충전 전압이 변화될 수 있다. 여기서, 컬럼 라인(120)의 합성 저항 값은 컬럼 라인(120)의 샘플링 전압(Vo) 또는 컬럼 라인(120)의 전류 합(Io)에 의존하는 값이다. 예를 들어, 컬럼 라인(120)의 전류 합(Io)이 상대적으로 크다면(또는, 샘플링 전압(Vo)이 상대적으로 작다면) 커패시터(C)의 시상수(τ)가 작아지기 때문에, 커패시터(C)는 보다 빠르게 충전될 것이다. 반대로, 컬럼 라인(120)의 전류 합(Io)이 상대적으로 작다면(또는, 샘플링 전압(Vo)이 상대적으로 크다면) 커패시터(C)의 시상수(τ)가 커지기 때문에, 커패시터(C)는 보다 느리게 충전될 것이다.The charging voltage of the capacitor C may be changed over a predetermined time based on a time constant (τ=R*C) determined by the combined resistance value and the capacitance of the column line 120 . Here, the combined resistance value of the column line 120 is a value dependent on the sampling voltage Vo of the column line 120 or the sum of currents I o of the column line 120 . For example, if the sum of currents I o of the column line 120 is relatively large (or if the sampling voltage V o is relatively small), since the time constant τ of the capacitor C becomes small, Capacitor C will charge faster. Conversely, if the sum of currents I o of the column line 120 is relatively small (or if the sampling voltage V o is relatively large), since the time constant τ of the capacitor C becomes large, the capacitor C ) will be charged more slowly.

레퍼런스 전압(Vref)은 커패시터(C)에 샘플링 전압(V0)이 충전되는 동안 경과한 전압 변화 시간(예를 들어, 충전 시간)을 파악하기 위한 임의의 전압으로서, 전압 변화 시간(예를 들어, 충전 시간)의 측정 기준이 되는 전압을 의미할 수 있다. 레퍼런스 전압(Vref)은, 커패시터(C), 메모리 셀들(110) 등의 회로 소자 특성들과, 커패시터(C)에 충전된 전압이 레퍼런스 전압(Vref)에 도달하기까지 걸리는 시간 등을 고려하여 임의로 설정될 수 있다. 예를 들어, 커패시터(C), 메모리 셀들(110) 등의 회로 소자 특성들에 기초하여, 커패시터(C)에 충전된 전압이 레퍼런스 전압(Vref)에 도달하기까지 약 40ns가 소요되는 것을 원하는 경우, 레퍼런스 전압(Vref)은 0.1V ~ 0.3V 사이의 값으로 설정될 수 있다. 다만, 이는 설명의 편의를 위한 예시적 수치들일 뿐, 레퍼런스 전압(Vref)은 인-메모리 프로세싱 디바이스(100)의 회로 구성을 고려하여 설정될 수 있는 값이다.The reference voltage (V ref ) is an arbitrary voltage for determining the voltage change time (eg, charging time) that has elapsed while the sampling voltage (V 0 ) is being charged in the capacitor (C), and the voltage change time (eg, For example, it may mean a voltage serving as a measurement standard for charging time). The reference voltage V ref considers circuit element characteristics such as the capacitor C and the memory cells 110 , and the time it takes for the voltage charged in the capacitor C to reach the reference voltage V ref . can be set arbitrarily. For example, it is desired that it takes about 40 ns for the voltage charged in the capacitor C to reach the reference voltage V ref , based on circuit element characteristics such as the capacitor C and the memory cells 110 . In this case, the reference voltage V ref may be set to a value between 0.1V and 0.3V. However, these are only exemplary values for convenience of description, and the reference voltage V ref is a value that may be set in consideration of the circuit configuration of the in-memory processing device 100 .

비교기(130)는 샘플링 전압(Vo)의 인가에 의해 커패시터(C)가 점차적으로 충전되면서 커패시터(C)에 현재 충전된 전압이 레퍼런스 전압(Vref)을 초과하는 경우에 응답하여, 종료 신호(STOP)를 출력할 수 있다. 다시 말하면, 비교기(130)는 커패시터(C)에 현재 충전된 전압이 레퍼런스 전압(Vref)에 도달하는 경우에 응답하여, 종료 신호(STOP)를 출력할 수 있다.The comparator 130 responds to the case where the voltage currently charged in the capacitor C exceeds the reference voltage V ref while the capacitor C is gradually charged by the application of the sampling voltage V o , and an end signal (STOP) can be output. In other words, the comparator 130 may output a termination signal STOP in response to the case in which the voltage currently charged in the capacitor C reaches the reference voltage V ref .

한편, 비교기(130)는 트리거 펄스(TRIGGER) 신호가 인가된 동안에만 활성화되어(또는 인에이블되어) 비교 동작을 수행할 수 있고, 이에 대해서는 이하 해당 부분에서 상세히 설명하도록 한다.On the other hand, the comparator 130 is activated (or enabled) only while the trigger pulse (TRIGGER) signal is applied to perform a comparison operation, which will be described in detail in the corresponding section below.

시간-디지털 컨버터(TDC)(140)는 비교기(130)로부터 종료 신호(STOP)를 수신한 경우, 종료 신호(STOP)가 수신된 시점에서 트리거 펄스(TRIGGER)에 동기화되어 인가된 카운팅 펄스(COUNT)의 카운팅 값(Tout)을 디지털 값으로 출력한다. 시간-디지털 컨버터(TDC)(140)로부터 출력된 디지털 값은, 샘플링 전압(Vo)에 대응하는 양자화 레벨을 나타낼 수 있다.When the time-to-digital converter (TDC) 140 receives the end signal STOP from the comparator 130 , the counting pulse COUNT applied in synchronization with the trigger pulse TRIGGER at the time when the end signal STOP is received ) of the counting value (T out ) is output as a digital value. A digital value output from the time-to-digital converter (TDC) 140 may represent a quantization level corresponding to the sampling voltage Vo .

한편, 도 4에 도시된 메모리 셀들(110), 커패시터(C), 비교기(130) 및 시간-디지털 컨버터(140)는 인-메모리 프로세싱 디바이스(100) 내 메모리 셀 어레이 상의 하나의 출력 라인(즉, 하나의 컬럼 라인)에 대응할 수 있다. 다만, 앞서 설명된 바와 같이, 메모리 셀 어레이에는 복수의 출력 라인들(즉, 복수의 컬럼 라인들)이 구비될 수 있다.Meanwhile, the memory cells 110 , the capacitor C, the comparator 130 and the time-to-digital converter 140 shown in FIG. 4 are one output line (ie, one output line) on the memory cell array in the in-memory processing device 100 . , one column line). However, as described above, the memory cell array may include a plurality of output lines (ie, a plurality of column lines).

도 5는 일 실시예에 따른 어느 컬럼 라인의 합성 저항 값 및 합산 비트 값 간의 매핑 관계를 설명하기 위한 도면이다.5 is a diagram for describing a mapping relationship between a combined resistance value of a certain column line and a sum bit value according to an exemplary embodiment.

도 5를 참고하면, 그래프(500)에서 x축은 어느 컬럼 라인에서 계산된 합산 비트 값을 나타낸다. 그래프(500)에서 y축은 해당 컬럼 라인에서의 정규화된(normalized) 합성 저항 값을 나타낸다. 여기서, 해당 컬럼 라인에서의 합성 저항 값은 해당 컬럼 라인에서의 전류 합과 반비례 관계이다.Referring to FIG. 5 , in the graph 500 , the x-axis represents the summed bit value calculated in a certain column line. In the graph 500 , the y-axis represents a normalized synthesized resistance value in a corresponding column line. Here, the combined resistance value in the corresponding column line is inversely proportional to the sum of currents in the corresponding column line.

그래프(500)를 참고하면, 어느 컬럼 라인에서의 합성 저항 값은 해당 컬럼 라인에서의 MAC 연산 결과에 대응하는 합산 비트 값과 반비례 관계에 있음을 알 수 있다. 다시 말하면, 어느 컬럼 라인에서의 전류 합은 해당 컬럼 라인에서의 MAC 연산 결과에 대응하는 합산 비트 값과 비례 관계에 있음을 알 수 있다. 따라서, 이와 같은 상관 관계에 비추어 볼 때, 커패시터(C)에 인가되는 샘플링 전압(Vo)으로부터도 MAC 연산 결과가 추정될 수 있음을 알 수 있다.Referring to the graph 500 , it can be seen that the combined resistance value in a column line is in inverse proportion to the sum bit value corresponding to the MAC operation result in the corresponding column line. In other words, it can be seen that the sum of currents in a certain column line has a proportional relationship with the sum bit value corresponding to the MAC operation result in the corresponding column line. Accordingly, in view of such a correlation, it can be seen that the MAC operation result can also be estimated from the sampling voltage V o applied to the capacitor C.

도 6은 일 실시예에 따른 인-메모리 프로세싱 디바이스를 설명하기 위한 도면이다.6 is a diagram for describing an in-memory processing device according to an embodiment.

앞서 도 4에서는 인-메모리 프로세싱 디바이스(100) 내 복수의 입력 라인들(로우 라인들) 및 하나의 출력 라인(컬럼 라인(120))에 대해 설명되었으나, 도 6에서는 복수의 입력 라인들(로우 라인들) 및 복수의 출력 라인들(컬럼 라인들)을 포함하는 메모리 셀 어레이(690)를 구비한 인-메모리 프로세싱 디바이스(60)에 대해 설명하도록 한다.Previously, in FIG. 4 , a plurality of input lines (row lines) and one output line (column line 120 ) in the in-memory processing device 100 were described, but in FIG. 6 , a plurality of input lines (row lines) lines) and an in-memory processing device 60 having a memory cell array 690 including a plurality of output lines (column lines).

인-메모리 프로세싱 디바이스(60) 내 메모리 셀 어레이(690)는 개별적으로 입력 신호를 수신 가능한 복수의 입력 라인들(로우 라인들) 및 개별적으로 출력 신호를 출력하는 복수의 출력 라인들(컬럼 라인들)을 포함할 수 있다. 입력 라인들(로우 라인들) 각각은 출력 라인들(컬럼 라인들)에 교차할 수 있다. 도 6에서는 비록, 입력 라인(로우 라인) 및 출력 라인(컬럼 라인)이 서로에 대해 수직으로 교차하는 것으로 도시되었으나, 이에 제한되는 것은 아니다.The memory cell array 690 in the in-memory processing device 60 has a plurality of input lines (row lines) capable of individually receiving an input signal and a plurality of output lines (column lines) for individually outputting an output signal. ) may be included. Each of the input lines (row lines) may intersect the output lines (column lines). Although FIG. 6 shows that the input line (row line) and the output line (column line) cross each other perpendicularly, the present invention is not limited thereto.

입력 라인들(로우 라인들) 각각에는 입력 신호(b1, b2, b3, b4, ..., bj, ..., bm), 및 시작 신호(START)에 의해 입력 신호의 인가를 스위칭하는 스위치가 연결되어 있다. 입력 신호들(b1, b2, b3, b4, ..., bj, ..., bm)은 바이너리 값을 나타내는 입력 전압(또는 입력 전류)에 해당할 수 있으나, 이에 제한되지 않는다. 예를 들어, 비트 값 1을 지시하는 입력 신호는 임의의 전압을 나타낼 수 있고, 비트 값 0을 지시하는 입력 신호는 플로팅 전압(floating voltage)을 나타낼 수 있다.Each of the input lines (row lines) includes an input signal b 1 , b 2 , b 3 , b 4 , ..., b j , ..., b m , and an input signal by a start signal START. A switch for switching the application of is connected. The input signals b 1 , b 2 , b 3 , b 4 , ..., b j , ..., b m may correspond to an input voltage (or input current) representing a binary value, but is limited thereto doesn't happen For example, an input signal indicating a bit value of 1 may indicate an arbitrary voltage, and an input signal indicating a bit value of 0 may indicate a floating voltage.

입력 라인들(로우 라인들)과 출력 라인들(컬럼 라인들)이 교차하는 위치들 각각에는 메모리 셀들(610)이 구비되어 있다.Memory cells 610 are provided at positions where input lines (row lines) and output lines (column lines) cross each other.

메모리 셀들(610) 각각은 입력 라인들(로우 라인들) 중 해당 메모리 셀이 배치된 입력 라인(로우 라인)을 통해 입력 신호(입력 전압)을 수신하도록 구성될 수 있다. 예를 들어, 제 j 입력 라인(691)을 따라 배치된 메모리 셀들은 제 j 입력 신호(bj)를 시작 신호(START)에 응답하여 수신하도록 구성될 수 있다. Each of the memory cells 610 may be configured to receive an input signal (input voltage) through an input line (row line) in which a corresponding memory cell is disposed among input lines (row lines). For example, the memory cells disposed along the j-th input line 691 may be configured to receive the j- th input signal b j in response to the start signal START.

인-메모리 프로세싱 디바이스(60) 내 프로세싱 회로(600)는 출력 라인들(컬럼 라인들) 각각의 일단에 연결된 커패시터들(620) 및 비교기들(640)과, 시간-디지털 컨버터(TDC)(650) 및 출력부(660)를 포함할 수 있다.The processing circuit 600 in the in-memory processing device 60 includes capacitors 620 and comparators 640 connected to one end of each of the output lines (column lines), and a time-to-digital converter (TDC) 650 . ) and an output unit 660 .

커패시터들(620)은 출력 라인(컬럼 라인)마다 개별적으로 배치되고, 어느 출력 라인(컬럼 라인)에 연결된 커패시터는 해당 출력 라인(컬럼 라인)의 전류 합에 대응하는 샘플링 전압을 충전하는 샘플링 회로를 구성한다.The capacitors 620 are individually arranged for each output line (column line), and a capacitor connected to an output line (column line) is a sampling circuit that charges a sampling voltage corresponding to the sum of currents of the corresponding output line (column line). make up

커패시터들(620)은 샘플링 전압의 인가에 의해 전하량이 점차적으로 증가되면서 충전될 수 있다. 예를 들어, 제 i 출력 라인(제 i 컬럼 라인)(692)에 배치된 커패시터(621)는, 제 i 출력 라인(제 i 컬럼 라인)(692)의 메모리 셀들의 저항 값들과 입력 신호들의 입력 전압들에 기초한 전류 합에 대응하는 전압(즉, 샘플링 전압)이 인가됨으로써 충전될 수 있다.The capacitors 620 may be charged while the amount of charge is gradually increased by the application of the sampling voltage. For example, the capacitor 621 disposed on the i-th output line (the i-th column line) 692 is the input of the input signals and resistance values of the memory cells of the i-th output line (the i-th column line) 692 . A voltage (ie, a sampling voltage) corresponding to the sum of currents based on the voltages may be applied to be charged.

한편, 출력 라인들(컬럼 라인들)에 연결된 커패시터들(620)은 샘플링 회로를 구성하고, 서로 동일한 커패시턴스를 가질 수 있다. 따라서, 커패시터들(620) 간의 시상수의 차이는 출력 라인들(컬럼 라인들) 각각의 합성 저항 값의 차이, 즉 출력 라인들(컬럼 라인들) 각각의 전류 합의 차이에 의존할 수 있다.Meanwhile, the capacitors 620 connected to the output lines (column lines) may constitute a sampling circuit and may have the same capacitance. Accordingly, the difference in the time constant between the capacitors 620 may depend on the difference in the combined resistance value of each of the output lines (column lines), that is, the difference in the sum of currents of each of the output lines (column lines).

비교기들(640)은 출력 라인(컬럼 라인)마다 개별적으로 배치될 수 있다. 비교기들(640) 각각은 해당 출력 라인(컬럼 라인)의 커패시터들(620) 각각에 현재 충전된 전압이 레퍼런스 전압(Vref)에 도달하였는지 여부를 결정한다. 비교기들(640) 각각은, 연결된 커패시터들(620) 각각에 현재 충전된 전압이 레퍼런스 전압(Vref)에 도달한 것으로 비교된 경우, 도달한 시점에서 종료 신호(STOP)를 시간-디지털 컨버터(TDC)(650)로 출력한다.The comparators 640 may be individually arranged for each output line (column line). Each of the comparators 640 determines whether the voltage currently charged in each of the capacitors 620 of the corresponding output line (column line) reaches the reference voltage V ref . Each of the comparators 640, when compared that the voltage currently charged in each of the capacitors 620 connected to the reference voltage (V ref ) has reached the time-to-digital converter ( TDC) (650).

비교기들(640)은 비교 동작의 개시 신호로서 트리거 펄스(TRIGGER)를 수신한다. 즉, 비교기들(640)은 제어신호 생성기(630)로부터 트리거 펄스(TRIGGER)를 수신한 경우에만 활성화(인에이블)되고, 트리거 펄스(TRIGGER)를 수신하지 않은 경우에는 비활성화(디스에이블)된다. 트리거 펄스(TRIGGER)의 수신은, 하이(high)를 나타내는 펄스 신호를 수신한 것을 의미하나, 반드시 이에 제한되는 것은 아니다.The comparators 640 receive a trigger pulse TRIGGER as a start signal of a comparison operation. That is, the comparators 640 are activated (enabled) only when receiving the trigger pulse TRIGGER from the control signal generator 630 , and are deactivated (disabled) when not receiving the trigger pulse TRIGGER. Reception of the trigger pulse TRIGGER means reception of a pulse signal indicating high, but is not limited thereto.

제어신호 생성기(630)는 메모리 셀 어레이(690)로의 입력 신호의 인가를 지시하는 시작 신호(START)가 인가되면, 트리거 펄스(TRIGGER) 및 카운팅 펄스(COUNT)를 생성할 수 있다. 트리거 펄스(TRIGGER)는 샘플링 회로 내 커패시터들(620)의 충전 시간에 따라 구분된 양자화 레벨들(quantization levels) 중 소정의 양자화 레벨(quantization level)에 대응하는 타이밍에 생성될 수 있다. 양자화 레벨들에 대해서는 도 7 및 도 8을 참고하여 상세히 설명하도록 한다. 카운팅 펄스(COUNT)는 트리거 펄스(TRIGGER)의 인가가 개시된 경우, 트리거 펄스(TRIGGER)에 동기화되어 생성된 펄스 신호로서, 트리거 펄스(TRIGGER)가 인가된 시간을 카운팅하기 위한 신호이다. 카운팅 펄스(COUNT)는 시간-디지털 컨버터(TDC)(650)로 제공된다.When a start signal START indicating application of an input signal to the memory cell array 690 is applied, the control signal generator 630 may generate a trigger pulse TRIGGER and a counting pulse COUNT. The trigger pulse TRIGGER may be generated at a timing corresponding to a predetermined quantization level among quantization levels divided according to the charging time of the capacitors 620 in the sampling circuit. The quantization levels will be described in detail with reference to FIGS. 7 and 8 . The counting pulse COUNT is a pulse signal generated in synchronization with the trigger pulse TRIGGER when the application of the trigger pulse TRIGGER is started, and is a signal for counting the time when the trigger pulse TRIGGER is applied. The counting pulse COUNT is provided to a time-to-digital converter (TDC) 650 .

시간-디지털 컨버터(TDC)(650)는 어느 커패시터에 현재 충전된 전압이 레퍼런스 전압(Vref)에 도달한 시점에서 시간-디지털 컨버팅을 수행한다.The time-to-digital converter (TDC) 650 performs time-digital conversion when the voltage currently charged in a certain capacitor reaches the reference voltage (V ref ).

구체적으로, 시간-디지털 컨버터(TDC)(650)는 출력 라인(컬럼 라인)마다 연결된 비교기들(640) 각각으로부터, 종료 신호(STOP)를 수신할 수 있다. 앞서 설명된 바와 같이, 종료 신호(STOP)는 어느 커패시터에 현재 충전된 전압이 레퍼런스 전압(Vref)에 도달한 것을 나타내는 신호이다. 시간-디지털 컨버터(TDC)(650)는 종료 신호(STOP)가 수신된 시점에서의 카운팅 펄스(COUNT)의 카운팅 값을 래치(latch)한다.Specifically, the time-to-digital converter (TDC) 650 may receive a termination signal STOP from each of the comparators 640 connected to each output line (column line). As described above, the termination signal STOP is a signal indicating that the voltage currently charged in a certain capacitor has reached the reference voltage V ref . The time-to-digital converter (TDC) 650 latches the counting value of the counting pulse COUNT at the point in time when the end signal STOP is received.

예를 들어, 제 i 출력 라인(제 i 컬럼 라인)(692)의 커패시터(621)에 현재 충전된 전압이 레퍼런스 전압(Vref)에 도달한 경우, 제 i 출력 라인(제 i 컬럼 라인)(692)의 비교기(641)는 종료 신호(STOPi)를 시간-디지털 컨버터(TDC)(650)로 출력한다. 시간-디지털 컨버터(TDC)(650)는 종료 신호(STOPi)가 수신되면, 종료 신호(STOP)가 수신된 시점에서의 카운팅 펄스(COUNT)의 카운팅 값(Tout, i)을 래치한다.For example, when the voltage currently charged in the capacitor 621 of the i-th output line (i-th column line) 692 reaches the reference voltage (V ref ), the i-th output line (i-th column line) ( The comparator 641 of 692 outputs the end signal STOP i to the time-to-digital converter (TDC) 650 . Time-latch to-digital converter (TDC) (650) is a stop signal (STOP i) a, an end signal (STOP) the counting value (T out, i) of counting pulses (COUNT) at the reception point is received.

출력부(660)는 시간-디지털 컨버터(TDC)(650)로부터 출력된 어느 출력 라인(컬럼 라인)에 대한 카운팅 값을 디지털 값(OUT)으로 출력할 수 있다. 구체적으로, 출력부(660)는 미리 설정된 양자화 레벨들 중 카운팅 값에 대응하는 양자화 레벨을 출력할 수 있다. 여기서, 출력된 양자화 레벨은 샘플링 전압으로부터 유래된 값으로서, 결국 해당 출력 라인(컬럼 라인)의 MAC 연산 결과에 대응한다.The output unit 660 may output a counting value for a certain output line (column line) output from the time-digital converter (TDC) 650 as a digital value OUT. Specifically, the output unit 660 may output a quantization level corresponding to a counting value among preset quantization levels. Here, the output quantization level is a value derived from the sampling voltage, and eventually corresponds to the MAC operation result of the corresponding output line (column line).

시간-디지털 컨버터(TDC)(650)는 각각의 출력 라인마다 카운팅 값을 출력하고, 출력부(350)는 각각의 출력 라인에 대한 카운팅 값을 양자화 레벨로 출력한다. 한편, 앞서 언급된 바와 같이, 양자화 레벨들에 대해서는 도 7 및 도 8을 참고하여 상세히 설명하도록 한다.The time-to-digital converter (TDC) 650 outputs a counting value for each output line, and the output unit 350 outputs a counting value for each output line as a quantization level. Meanwhile, as mentioned above, the quantization levels will be described in detail with reference to FIGS. 7 and 8 .

도 7은 일 실시예에 따라 커패시터에 전압이 충전되는 시간에 따라 양자화 레벨들의 시간 구간들을 설정하는 것을 설명하기 위한 도면이다.7 is a diagram for explaining setting time intervals of quantization levels according to a time when a voltage is charged in a capacitor, according to an embodiment.

도 7을 참고하면, 그래프(700)는 인-메모리 프로세싱 디바이스 내에 구비된 샘플링 회로를 구성하는 어느 커패시터의 충전 전압 변화를 나타낸다. 그래프(700)에서 x축은 커패시터에 샘플링 전압의 충전이 시작된 후 경과된 시간을 나타내고, y축은 시간 경과에 따른 커패시터에 충전 전압의 변화를 나타낸다.Referring to FIG. 7 , a graph 700 shows a change in the charging voltage of a certain capacitor constituting a sampling circuit included in the in-memory processing device. In the graph 700 , the x-axis represents the elapsed time after the charging of the sampling voltage in the capacitor is started, and the y-axis represents the change in the charging voltage of the capacitor over time.

레퍼런스 전압(Vref)은 비교기에서 커패시터의 현재 충전된 전압과의 비교를 위하여 입력되는 전압이다.The reference voltage (V ref ) is a voltage input to the comparator for comparison with the currently charged voltage of the capacitor.

인-메모리 프로세싱 디바이스는 k 비트 해상도(k는 자연수)의 연산 결과를 제공할 수 있는 디바이스인 것으로 가정할 수 있다. 또한, k 비트 해상도는 n개의(n은 자연수) 양자화 레벨들을 갖는 것으로 가정할 수 있다.It can be assumed that the in-memory processing device is a device capable of providing an operation result of k-bit resolution (k is a natural number). Also, it can be assumed that k-bit resolution has n (n is a natural number) quantization levels.

앞서 설명된 바와 같이, 어느 컬럼 라인에서의 전류 합은, 대응하는 샘플링 전압으로서 커패시터에 인가될 수 있다. 샘플링 회로 내에 구비된 커패시터들은 모두 커패시턴스가 동일한 것으로 설명되었으므로, 커패시터들 간의 시상수(τ=R*C) 차이를 초래하는 요인은 각 커패시터가 연결된 컬럼 라인의 저항 값(즉, 합성 저항 값)뿐이라는 점을 알 수 있다. 옴의 법칙에 기초하여, 컬럼 라인의 합성 저항 값과 그 컬럼 라인을 따라 흐르는 컬럼 전류의 세기(즉, 전류 합)는 반비례 관계에 있다. 따라서, 커패시터들 간의 시상수 차이는 컬럼 라인들 각각의 전류 합에 의존한다는 점이 도출될 수 있다. 예를 들어, 컬럼 라인의 전류 합이 상대적으로 크다면(또는, 샘플링 전압이 상대적으로 작다면) 커패시터의 시상수(τ)가 작아지기 때문에, 커패시터는 레퍼런스 전압(Vref)까지 보다 빠르게 충전될 것이다. 반대로, 컬럼 라인의 전류 합이 상대적으로 작다면(또는, 샘플링 전압이 상대적으로 크다면) 커패시터의 시상수(τ)가 커지기 때문에, 커패시터는 레퍼런스 전압(Vref)까지 보다 느리게 충전될 것이다.As described above, the sum of the currents in any column line can be applied to the capacitor as a corresponding sampling voltage. Since the capacitors included in the sampling circuit have all been described as having the same capacitance, the only factor causing the difference in the time constant (τ=R*C) between the capacitors is the resistance value (ie, the combined resistance value) of the column line to which each capacitor is connected. point can be seen. Based on Ohm's law, the combined resistance value of a column line and the intensity (ie, sum of currents) of the column current flowing along the column line are inversely proportional to each other. Accordingly, it can be derived that the time constant difference between the capacitors depends on the sum of the currents of each of the column lines. For example, if the sum of the currents in the column lines is relatively large (or the sampling voltage is relatively small), the capacitor will charge faster to the reference voltage (V ref ) because the time constant (τ) of the capacitor will be small. . Conversely, if the sum of currents in the column line is relatively small (or if the sampling voltage is relatively large), the capacitor will charge more slowly to the reference voltage (V ref ) because the time constant (τ) of the capacitor becomes large.

어느 컬럼 라인에서의 전류 합은 그 컬럼 라인에서의 MAC 연산 결과에 대응하는, 상관 관계가 존재한다. 따라서, 이와 같은 상관 관계에 기초하여, 커패시터들 간의 시상수 차이는 결국 MAC 연산 결과의 차이에 대응하는 것으로 추정될 수 있다.A correlation exists, in which the sum of currents in a column line corresponds to a MAC operation result in that column line. Accordingly, based on such a correlation, it can be estimated that the time constant difference between the capacitors eventually corresponds to the difference in the MAC operation result.

k 비트 해상도를 위하여, 커패시터에 샘플링 전압이 충전되기까지 충전 전압이 변화되는 총 시간 구간은, n개의 서브-시간 구간들로 양자화될 수 있다. n개의 서브-시간 구간들 각각은 n개의 양자화 레벨들 각각에 대응한다.For k-bit resolution, a total time interval in which the charging voltage is changed until the sampling voltage is charged in the capacitor may be quantized into n sub-time intervals. Each of the n sub-time intervals corresponds to each of the n quantization levels.

구체적으로, 컬럼 라인(CLi)에 m개의 메모리 셀들(710)이 연결되어 있는 경우에 대해 설명하도록 한다. 메모리 셀들(710) 각각은 가변저항을 가질 수 있고, 메모리 셀들(710) 각각은 제 1 저항 값(R1_max, R2_max, ..., Rm_max) 또는 제 2 저항 값(R1_min, R2_min, ..., Rm_min) 중 어느 하나를 가질 수 있고, 제 1 저항 값은 제 2 저항 값보다 큰 것으로 가정한다.Specifically, a case in which m memory cells 710 are connected to the column line CL i will be described. Each of the memory cells 710 may have a variable resistance, and each of the memory cells 710 may have a first resistance value (R 1_max , R 2_max , ..., R m_max ) or a second resistance value (R 1_min , R 2_min ). , ..., R m_min ), and it is assumed that the first resistance value is greater than the second resistance value.

컬럼 라인(CLi)에서 m개의 메모리 셀들(710) 각각의 저항 값들이 모두 제 1 저항 값(R1_max, R2_max, ..., Rm_max)을 갖는 경우, m개의 메모리 셀들(710)의 합성 저항 값은 최대이다. 반대로, 컬럼 라인(CLi)에서 m개의 메모리 셀들(710) 각각의 저항 값들이 모두 제 2 저항 값(R1_min, R2_min, ..., Rm_min)을 갖는 경우, m개의 메모리 셀들(710)의 합성 저항 값은 최소이다.When the resistance values of each of the m memory cells 710 in the column line CL i all have the first resistance values R 1_max , R 2_max , ..., R m_max , the The combined resistance value is maximum. Conversely, when the resistance values of each of the m memory cells 710 in the column line CL i all have the second resistance values R 1_min , R 2_min , ..., R m_min , the m memory cells 710 . ) is the minimum combined resistance value.

따라서, 컬럼 라인(CLi)에 대한 합성 저항 값은, 메모리 셀들(710)이 모두 제 1 저항 값(R1_max, R2_max, ..., Rm_max)을 갖는 경우로부터 계산된 최대 합성 저항 값과 제 2 저항 값(R1_min, R2_min, ..., Rm_min)을 갖는 경우로부터 계산된 최소 합성 저항 값 사이에 분포하게 된다.Accordingly, the combined resistance value for the column line CL i is the maximum combined resistance value calculated from the case in which the memory cells 710 all have the first resistance values R 1_max , R 2_max , ..., R m_max . and the second resistance values R 1_min , R 2_min , ..., R m_min ).

컬럼 라인(CLi)이 최대 합성 저항 값을 갖는 경우는, 컬럼 라인(CLi)에 최소 전류 합을 갖는 컬럼 전류가 흐르는 경우에 대응한다. 반대로, 컬럼 라인(CLi)이 최소 합성 저항 값을 갖는 경우는, 컬럼 라인(CLi)에 최대 전류 합을 갖는 컬럼 전류가 흐르는 경우에 대응한다. 이와 같은 원리에 착안하여, n개의 양자화 레벨들 각각에 대응하는 서브-시간 구간들이 설정될 수 있다.A case in which the column line CL i has the maximum combined resistance value corresponds to a case in which a column current having the minimum sum of currents flows through the column line CL i . Conversely, a case in which the column line CL i has a minimum combined resistance value corresponds to a case in which a column current having the maximum sum of currents flows through the column line CL i . Based on this principle, sub-time intervals corresponding to each of the n quantization levels may be set.

서브-시간 구간(701)은 컬럼 라인(CLi)에 최소 전류 합을 갖는 컬럼 전류가 흐르는 경우에 대응할 수 있고, 서브-시간 구간(702)은 컬럼 라인(CLi)에 최대 전류 합을 갖는 컬럼 전류가 흐르는 경우에 대응할 수 있다. 예를 들어, 서브-시간 구간(701)은 k 비트 해상도의 각 비트 값이 모두 0인 양자화 레벨에 대응할 수 있고, 서브-시간 구간(702)은 k 비트 해상도의 각 비트 값이 모두 1인 양자화 레벨에 대응할 수 있다.Sub-time period 701 may correspond to the case where the column current having the sum of the minimum current to the column lines (CL i) flowing through the sub-time period 702 having a total maximum current to the column lines (CL i) It can respond to the case where column current flows. For example, sub-time interval 701 may correspond to a quantization level in which each bit value of k-bit resolution is all 0, and sub-time interval 702 is a quantization level in which each bit value of k-bit resolution is all 1. It can correspond to the level.

서브-시간 구간(701)과 서브-시간 구간(702) 사이의 시간 구간은, 나머지 양자화 레벨들에 대응하는 서브-시간 구간들을 포함하고, 나머지 양자화 레벨들의 개수에 따라 동일한 간격들을 갖도록 구분될 수 있다. 다만, 이에 제한되지 않고, 나머지 양자화 레벨들에 대응하는 서브-시간 구간들의 간격들은 동일하지 않도록 구분될 수도 있다. 예를 들어, MAC 연산 결과에 대한 일반적 시뮬레이션 결과에 따르면, 대부분의 MAC 연산 결과의 값들은 가우시안 분포에 의해 정규화되는 것으로 획득될 수 있다. 따라서, 가우시안 분포에 기초하여, 양자화 레벨들에 대응하는 서브-시간 구간들 간격들이 서로 다르게 설정될 수도 있다.The time interval between the sub-time interval 701 and the sub-time interval 702 includes sub-time intervals corresponding to the remaining quantization levels, and may be divided to have equal intervals according to the number of remaining quantization levels. have. However, the present invention is not limited thereto, and intervals of sub-time intervals corresponding to the remaining quantization levels may be divided not to be the same. For example, according to a general simulation result for the MAC operation result, most values of the MAC operation result may be obtained as normalized by a Gaussian distribution. Accordingly, based on the Gaussian distribution, sub-time intervals corresponding to the quantization levels may be set differently.

도 7을 참고하면, 그래프(700)에서 서브-시간 구간(701)부터 서브-시간 구간(702)으로 갈수록 양자화 레벨이 1 레벨씩 증가하는 것으로 설정될 수 있다.Referring to FIG. 7 , in the graph 700 , the quantization level may be set to increase by one level from the sub-time section 701 to the sub-time section 702 .

다만, 이에 제한되지 않고, 서브-시간 구간(701)부터 서브-시간 구간(702)으로 갈수록 양자화 레벨이 1 레벨씩 감소하는 것으로도 설정될 수 있다. 예를 들어, 도 7에서는 최대 합성 저항을 갖는 경우가 최소 양자화 레벨에 대응하고, 최소 합성 저항을 갖는 경우가 최대 양자화 레벨에 대응하는 것으로 설명되었으나, 그 반대로도 설정될 수도 있다. 즉, 메모리 셀들(710) 각각의 가변저항 값들(제 1 저항 값 및 제 2 저항 값) 각각이 어떠한 논리 값들을 표현할 것인지에 따라 각각의 시간 구간이 나타내는 양자화 레벨이 달라질 수 있다.However, the present invention is not limited thereto, and the quantization level may be set to decrease by one level from the sub-time period 701 to the sub-time period 702 . For example, although it has been described in FIG. 7 that the case having the maximum synthesis resistance corresponds to the minimum quantization level and the case having the minimum synthesis resistance corresponds to the maximum quantization level, the opposite may be set. That is, the quantization level indicated by each time period may vary according to which logic values each of the variable resistance values (the first resistance value and the second resistance value) of the memory cells 710 will represent.

도 8은 일 실시예에 따라 비교기에 트리거 펄스(TRIGGER)를 인가하는 타이밍을 설명하기 위한 도면이다.8 is a diagram for explaining a timing of applying a trigger pulse TRIGGER to a comparator according to an exemplary embodiment.

도 8을 참고하면, 트리거 펄스(TRIGGER)는 소정의 양자화 레벨에 대응하는 타이밍(시점)(810)부터 생성될 수 있다. 여기서, 소정의 양자화 레벨은, 양자화 레벨들 중 최소 양자화 레벨보다 1 레벨 큰 양자화 레벨일 수 있다. 다만, 이에 제한되지 않고, 트리거 펄스(TRIGGER)는 양자화 레벨에 대응하는 시점을 고려하지 않고, 커패시터가 충전을 시작한 이후의 소정의 경과 시점(예를 들어, 40ns 이후)부터 생성될 수도 있다.Referring to FIG. 8 , a trigger pulse TRIGGER may be generated from a timing (time point) 810 corresponding to a predetermined quantization level. Here, the predetermined quantization level may be a quantization level that is one level higher than the minimum quantization level among the quantization levels. However, the present invention is not limited thereto, and the trigger pulse TRIGGER may be generated from a predetermined elapsed time (eg, after 40 ns) after the capacitor starts charging without considering a time point corresponding to the quantization level.

트리거 펄스(TRIGGER)는 소정의 양자화 레벨에 대응하는 타이밍(시점)(810)부터 비교기들에 인가되므로, "0000"과 같은 최소 양자화 레벨에서 비교기들이 동작됨에 따른 전력 소모가 감소될 수 있다. 트리거 펄스(TRIGGER)는 최대 양자화 레벨(예를 들어, "1111")보다 1 레벨 작은 양자화 레벨(예를 들어, "1110")에 대응하는 시간 구간까지만 비교기에 인가되는 것으로 생성될 수 있고, 이로써 추가적인 전력 소모의 감소가 도모될 수 있다.Since the trigger pulse TRIGGER is applied to the comparators from a timing (time point) 810 corresponding to a predetermined quantization level, power consumption as the comparators are operated at the minimum quantization level such as “0000” may be reduced. The trigger pulse TRIGGER may be generated by being applied to the comparator only up to a time interval corresponding to a quantization level (eg, “1110”) that is one level lower than the maximum quantization level (eg, “1111”), thereby A further reduction in power consumption may be sought.

한편, 트리거 펄스(TRIGGER)의 펄스 폭은 양자화 레벨들 각각에 대응하는 서브-시간 구간의 간격 이하로 설정될 수 있다. Meanwhile, the pulse width of the trigger pulse TRIGGER may be set to be less than or equal to the interval of the sub-time interval corresponding to each of the quantization levels.

인-메모리 프로세싱 디바이스 내에서 비교기는 래치 비교기(latched comparator) 타입으로 구현될 수 있다. 따라서, 비교기는 트리거 펄스(TRIGGER)의 하강 에지에서 비교 결과를 출력할 수 있다. 예를 들어, 시점(820)에 커패시터의 충전 전압이 레퍼런스 전압(Vref)에 도달한 경우, 비교기는 시점(820)에 대응하는 트리거 펄스(TRIGGER)의 하강 에지에서 비교 결과를 나타내는 종료 신호(STOP)를 출력할 수 있다.The comparator in the in-memory processing device may be implemented as a latched comparator type. Accordingly, the comparator may output the comparison result at the falling edge of the trigger pulse TRIGGER. For example, when the charging voltage of the capacitor reaches the reference voltage (V ref ) at the time point 820 , the comparator ends at the falling edge of the trigger pulse TRIGGER corresponding to the time point 820 . STOP) can be output.

종료 신호(STOP)가 출력된 시점은 시간-디지털 컨버팅에 의해 양자화 레벨("1010")로 출력될 수 있다.A time point at which the end signal STOP is output may be output as a quantization level “1010” by time-digital conversion.

어느 컬럼 라인의 커패시터에 인가된 샘플링 전압(또는 그 컬럼 라인의 전류 합)에 따라 커패시터의 시상수가 달라지고, 이에 따라 커패시터의 충전 전압이 레퍼런스 전압(Vref)에 도달하는 시점들도 달라진다. 도 8에 도시된 바와 같이, 4비트 양자화 레벨들의 서브-시간 구간들(830)은, 커패시터의 충전 전압이 레퍼런스 전압(Vref)에 도달하는 시점들에 대응하는 것으로 설정될 수 있다.The time constant of the capacitor varies according to the sampling voltage (or the sum of currents of the column line) applied to the capacitor of a certain column line, and accordingly, the timing at which the charging voltage of the capacitor reaches the reference voltage V ref also varies. As shown in FIG. 8 , the sub-time intervals 830 of the 4-bit quantization levels may be set to correspond to points in time at which the charging voltage of the capacitor reaches the reference voltage V ref .

도 9는 일 실시예에 따라 인-메모리 프로세싱 디바이스에서 수행되는 시간-디지털 컨버팅을 설명하기 위한 도면이다.9 is a diagram for describing time-digital conversion performed in an in-memory processing device according to an embodiment.

도 9를 참고하면, 제어신호 생성기(910)는 양자화 레벨 결정부(711), 펄스 생성기(712) 및 카운터(713)를 포함한다. 펄스 생성기(712)는 비교기들(720)의 비교 동작을 개시시키기 위한 트리거 펄스(TRIGGER)를 생성한다. 카운터(713)는 비교기들(720) 각각으로부터 제공된 종료 신호(STOP)가 수신된 시점을 식별하기 위한 카운팅 펄스(COUNT)를 생성한다. 트리거 펄스(TRIGGER)와 카운팅 펄스(COUNT)의 인가는 서로 동기화되고, 이에 따라 트리거 펄스(TRIGGER)가 비교기들(720)로 인가되는 타이밍에 카운팅 펄스(COUNT)도 시간-디지털 컨버터(TDC)(730)로 인가될 수 있다.Referring to FIG. 9 , the control signal generator 910 includes a quantization level determiner 711 , a pulse generator 712 , and a counter 713 . The pulse generator 712 generates a trigger pulse TRIGGER for initiating a comparison operation of the comparators 720 . The counter 713 generates a counting pulse COUNT for identifying when the end signal STOP provided from each of the comparators 720 is received. The application of the trigger pulse (TRIGGER) and the counting pulse (COUNT) is synchronized with each other, and accordingly, the counting pulse (COUNT) is also time-digital converter (TDC) ( 730) may be authorized.

트리거 펄스(TRIGGER)가 생성되는 타이밍은 양자화 레벨 결정부(711)에 의해 결정될 수 있다. 양자화 레벨 결정부(711)는 설정될 양자화 레벨들의 총 개수(즉, 디지털 값의 비트 수)와, 샘플링 전압을 충전하는 커패시터의 소자 특성(예를 들어, 커패시턴스, 시상수), 각각의 컬럼 라인에 연결된 메모리 셀들의 저항 값들 등을 고려하여, 트리거 펄스(TRIGGER)가 생성되는 타이밍을 결정할 수 있다.The timing at which the trigger pulse TRIGGER is generated may be determined by the quantization level determiner 711 . The quantization level determiner 711 determines the total number of quantization levels to be set (that is, the number of bits of the digital value), the device characteristics of the capacitor charging the sampling voltage (eg, capacitance, time constant), and each column line. The timing at which the trigger pulse TRIGGER is generated may be determined in consideration of resistance values of the connected memory cells.

예를 들어, 양자화 레벨 결정부(711)는 앞서 도 7 및 도 8에서 설명된 방식들에 기초하여 트리거 펄스(TRIGGER)가 생성되는 타이밍을 결정할 수 있다. 구체적으로, 양자화 레벨 결정부(711)는 트리거 펄스(TRIGGER)가 소정의 양자화 레벨(즉, 최소 양자화 레벨보다 1 레벨 큰 양자화 레벨)에 대응하는 타이밍(시점)(도 8의 810)부터 생성되도록, 펄스 생성기(912)를 제어할 수 있다. 나아가서, 양자화 레벨 결정부(711)는 트리거 펄스(TRIGGER)가 최대 양자화 레벨보다 1 레벨 작은 양자화 레벨에 대응하는 시간 구간까지만 생성되도록, 펄스 생성기(912)를 제어할 수 있다. 한편, 카운터(913)는 트리거 펄스(TRIGGER)가 인가되는 동안에만 카운팅 펄스(COUNT)를 생성할 수 있다.For example, the quantization level determiner 711 may determine the timing at which the trigger pulse TRIGGER is generated based on the methods described with reference to FIGS. 7 and 8 . Specifically, the quantization level determiner 711 generates a trigger pulse TRIGGER from a timing (time point) (810 in FIG. 8) corresponding to a predetermined quantization level (ie, a quantization level that is one level greater than the minimum quantization level). , the pulse generator 912 may be controlled. Furthermore, the quantization level determiner 711 may control the pulse generator 912 so that the trigger pulse TRIGGER is generated only up to a time interval corresponding to a quantization level that is one level lower than the maximum quantization level. Meanwhile, the counter 913 may generate the counting pulse COUNT only while the trigger pulse TRIGGER is applied.

비교기들(920)은 비교 동작의 개시 신호로서 트리거 펄스(TRIGGER)를 수신하고, 비교기들(920) 각각에 연결된 커패시터에 현재 충전된 전압과 레퍼런스 전압을 비교한다. 비교기들(920) 각각은 비교기들(920) 각각에 연결된 커패시터에 현재 충전된 전압이 레퍼런스 전압에 도달한 것으로 검출된 경우, 도달한 시점에서 종료 신호(STOP)를 시간-디지털 컨버터(TDC)(930)로 출력한다.The comparators 920 receive a trigger pulse TRIGGER as a start signal of a comparison operation, and compare a voltage currently charged in a capacitor connected to each of the comparators 920 with a reference voltage. When it is detected that the voltage currently charged in the capacitor connected to each of the comparators 920 has reached the reference voltage, each of the comparators 920 transmits a time-to-digital converter (TDC) ( 930) is output.

비교기들(920) 각각은 래치 비교기(latched comparator) 타입으로 구현될 수 있다. 따라서, 비교기들(920)은 트리거 펄스(TRIGGER)의 하강 에지에서 비교 결과를 출력할 수 있다. 예를 들어, 비교기 s가 어느 시점에서 커패시터의 충전 전압이 레퍼런스 전압에 도달한 것을 검출한 경우, 비교기 s는 해당 시점에 대응하는 트리거 펄스(TRIGGER)의 하강 에지에서 종료 신호(STOP)를 비교기 s에 연결된 시간-디지털 컨버터(TDC)(930)의 플립플롭으로 출력할 수 있다.Each of the comparators 920 may be implemented as a latched comparator type. Accordingly, the comparators 920 may output a comparison result at the falling edge of the trigger pulse TRIGGER. For example, when comparator s detects that the charging voltage of the capacitor has reached the reference voltage at a certain point in time, comparator s generates a termination signal (STOP) at the falling edge of the trigger pulse (TRIGGER) corresponding to that point in time. It can be output as a flip-flop of a time-to-digital converter (TDC) 930 connected to .

한편, 비교기들(920) 중에서 종료 신호(STOP)가 출력된 비교기는 종료 신호(STOP)의 출력이 완료되었음을 나타내는 신호(done)가 피드백될 수 있고, 신호(done)가 피드백된 비교기는 비활성화(디스에이블)될 수 있다.On the other hand, among the comparators 920 , a signal (done) indicating that the output of the stop signal (STOP) is completed may be fed back to the comparator outputting the stop signal (STOP), and the comparator to which the signal (done) is fed back is deactivated ( can be disabled).

시간-디지털 컨버터(TDC)(930)는 비교기들(920) 각각에 연결된 플립플롭들(935)을 포함한다. 플립플롭들(935)은 카운터(913)로부터 수신된 카운팅 펄스(COUNT)에 의해 활성화(인에이블)될 수 있다.A time-to-digital converter (TDC) 930 includes flip-flops 935 coupled to each of the comparators 920 . The flip-flops 935 may be activated (enabled) by a counting pulse COUNT received from the counter 913 .

플립플롭들(935) 각각은 카운팅 펄스(COUNT)가 인가되고 있는 동안 비교기들(920) 각각으로부터 종료 신호(STOP)가 수신되면 종료 신호(STOP)가 수신된 시점에서의 현재 카운팅 값(Tout)을 래치(latch)한다. 예를 들어, 비교기 s에 연결된 플립플롭이 카운팅 펄스(COUNT)가 인가되고 있는 동안 비교기 s로부터 종료 신호(STOP)를 수신하면, 플립플롭은 카운팅 펄스(COUNT)의 현재 카운팅 값(Tout_s)을 출력한다.Each of flip-flops 935 are now counted value at the when the counting pulses (COUNT) are applied, and the stop signal (STOP) from each of comparators 920 received while the stop signal (STOP) is received, the time (T out ) is latched. For example, if the flip-flop connected to the comparator s receives a stop signal STOP from the comparator s while the counting pulse COUNT is being applied, the flip-flop returns the current counting value T out_s of the counting pulse COUNT. print out

이와 같이, 시간-디지털 컨버터(TDC)(930) 내 구비된 플립플롭들(935) 각각은 종료 신호(STOP)의 수신 시점에 대응하는 카운팅 값(Tout)을 개별적으로 출력함으로써, 메모리 셀 어레이의 컬럼 라인들(출력 라인들) 각각에 대한 시간-디지털 컨버팅을 수행할 수 있다. 앞서 설명된 바와 같이, 프로세싱 회로(600)는 각 컬럼 라인(출력 라인) 별 카운팅 값(Tout)에 대응하는 양자화 레벨의 디지털 값을 매핑하고, 각 컬럼 라인(출력 라인) 별 매핑된 양자화 레벨의 디지털 값(예를 들어, k비트 해상도)을 출력할 수 있다.In this way, each of the flip-flops 935 provided in the time-to-digital converter (TDC) 930 individually outputs a counting value T out corresponding to the reception time of the end signal STOP, and thus the memory cell array Time-digital conversion may be performed on each of the column lines (output lines) of . As described above, the processing circuit 600 maps the digital value of the quantization level corresponding to the counting value T out for each column line (output line), and the mapped quantization level for each column line (output line) It is possible to output a digital value (eg, k-bit resolution) of .

도 10은 일 실시예에 따라 시간-디지털 컨버팅을 통해 컬럼 라인(출력 라인) 별 카운팅 값을 출력하는 것을 설명하기 위한 도면이다.10 is a diagram for explaining outputting a counting value for each column line (output line) through time-digital conversion according to an exemplary embodiment.

도 10을 참고하면, 시점들(ta, tb 및 tc) 각각은 커패시터들(Cx, Cy, Cz) 각각에 현재 충전된 전압이 레퍼런스 전압(Vref)에 도달한 시점을 나타낸다. 빠른 시간의 순서대로 나열하면, 시점(tb), 시점(ta) 및 시점(tc)의 순서이다.Referring to FIG. 10 , each of the time points t a , t b and t c represents a time point at which the voltage currently charged in each of the capacitors C x , C y , C z reaches the reference voltage V ref . indicates. If listed in the order of the earliest time, the time point (t b ), the time point (t a ), and the time point (t c ) are in the order.

컬럼 라인들(1001, 1002, 1003)에는 전류 합(Icol_x, Icol_y, Icol_z)을 갖는 컬럼 전류가 각각 흐르고, 전류 합(Icol_x, Icol_y, Icol_z)에 대응하는 샘플링 전압이 커패시터(Cx, Cy, Cz)에 각각 인가된다. 비교기들(1021, 1022, 1023)에는 동일한 시점부터 트리거 펄스(TRIGGER)가 인가되고, 트리거 펄스(TRIGGER)가 인가된 시점부터 비교기들(1021, 1022, 1023)은 각각의 커패시터들(Cx, Cy, Cz)에 현재 충전된 전압과 레퍼런스 전압(Vref)을 비교를 수행한다. 이때, 비교기들(1021, 1022, 1023)은 래치 비교기일 수 있고, 이에 따라 비교기들(1021, 1022, 1023) 각각은 트리거 펄스(TRIGGER)의 하강 에지마다 비교 동작을 수행할 수 있다.A column current having a sum of currents I col_x , I col_y , I col_z flows through the column lines 1001 , 1002 , and 1003 , respectively, and a sampling voltage corresponding to the sum of currents I col_x , I col_y , I col_z is a capacitor (C x , C y , C z ) are applied respectively. A trigger pulse TRIGGER is applied to the comparators 1021 , 1022 , and 1023 from the same time point, and the comparators 1021 , 1022 , 1023 each have capacitors C x , Comparison is performed between the voltage currently charged in C y , C z ) and the reference voltage (V ref ). In this case, the comparators 1021 , 1022 , and 1023 may be latch comparators, and accordingly, each of the comparators 1021 , 1022 , and 1023 may perform a comparison operation for each falling edge of the trigger pulse TRIGGER.

먼저, 시점(tb)에서 비교기(1022)는 커패시터(Cy)에 현재 충전된 전압이 레퍼런스 전압(Vref)에 도달한 것으로 판단하고, 종료 신호(STOP @tb)를 시간-디지털 컨버터(TDC)(1030)의 플립플롭(1032)로 출력한다. 한편, 종료 신호(STOP @tb)의 출력이 완료된 비교기(1022)는 비활성화(디스에이블)될 수 있다.First, at a time point (t b ), the comparator 1022 determines that the voltage currently charged in the capacitor (C y ) has reached the reference voltage (V ref ), and converts the stop signal (STOP @t b ) to a time-digital converter (TDC) is output to the flip-flop 1032 of the 1030. Meanwhile, the comparator 1022 in which the output of the stop signal STOP @t b is completed may be deactivated (disabled).

시간-디지털 컨버터(TDC)(1030)는 트리거 펄스(TRIGGER)의 인가에 동기화되어 카운팅 펄스(COUNT)가 인가된다. 플립플롭(1032)은 종료 신호(STOP @tb)가 수신된 시점(tb)에서의 카운팅 펄스(COUNT)의 카운팅 값(Tout @tb)을 래치한다. 이로써, 컬럼 라인들(1001, 1002, 1003) 중 컬럼 라인(1002)에 대한 시간-디지털 컨버팅이 먼저 완료된다. 한편, 카운팅 값(Tout @tb)은 매핑된 양자화 레벨의 디지털 값으로 출력될 수 있다.The time-to-digital converter (TDC) 1030 is synchronized with the application of the trigger pulse TRIGGER to apply the counting pulse COUNT. The flip-flop 1032 latches the counting value T out @t b of the counting pulse COUNT at the time t b when the end signal STOP @t b is received. Accordingly, time-digital conversion of the column line 1002 among the column lines 1001 , 1002 , and 1003 is first completed. Meanwhile, the counting value T out @t b may be output as a digital value of the mapped quantization level.

다음으로, 시점(ta)에서 비교기(1021)는 종료 신호(STOP @ta)를 플립플롭(1031)로 출력한다. 종료 신호(STOP @ta)의 출력이 완료된 비교기(1021)는 비활성화(디스에이블)될 수 있다. 플립플롭(1031)은 종료 신호(STOP @ta)가 수신된 시점(ta)에서의 카운팅 펄스(COUNT)의 카운팅 값(Tout @ta)을 래치한다. 카운팅 값(Tout @ta)은 카운팅 값(Tout @tb)와는 다른 값에 해당하므로, 카운팅 값(Tout @ta)에 매핑된 양자화 레벨의 디지털 값은 카운팅 값(Tout @tb)은 매핑된 양자화 레벨의 디지털 값과 다를 수 있다. 다만, 서로 다른 시점들(ta, tb)에서 카운팅 값들(Tout @ta, Tout @tb)이 출력되었다 할지라도, 서로 다른 시점들(ta, tb)이 동일한 양자화 레벨에 대응하는 동일한 서브-시간 구간에 속한 경우에는 동일한 양자화 레벨의 디지털 값으로 시간-디지털 컨버팅될 수 있다.Next, at a time point ta a, the comparator 1021 outputs a stop signal STOP @ta a to the flip-flop 1031 . The comparator 1021 in which the output of the stop signal STOP @t a is completed may be deactivated (disabled). The flip-flop 1031 latches the counting value T out @t a of the counting pulse COUNT at the time ta a when the end signal STOP @t a is received. Since the counting value (T out @t a ) corresponds to a value different from the counting value (T out @t b ), the digital value of the quantization level mapped to the counting value (T out @t a ) is the counting value (T out @ t b ) may be different from the digital value of the mapped quantization level. However, each of the different points in time (t a, t b) counting values (T out @t a, T out @t b) of the Figure, different points in time has been output even (t a, t b), the same quantization level in In the case of belonging to the same sub-time interval corresponding to , time-digital conversion may be performed to a digital value of the same quantization level.

시점(tc)에서 비교기(1023)는 종료 신호(STOP @tc)를 플립플롭(1033)로 출력한다. 종료 신호(STOP @tc)의 출력이 완료된 비교기(1021)는 비활성화(디스에이블)될 수 있다. 플립플롭(1033)은 종료 신호(STOP @tc)가 수신된 시점(tc)에서의 카운팅 펄스(COUNT)의 카운팅 값(Tout @tc)을 래치한다.At a time point t c , the comparator 1023 outputs a stop signal STOP @t c to the flip-flop 1033 . The comparator 1021 in which the output of the stop signal STOP @t c is completed may be deactivated (disabled). The flip-flop 1033 latches the counting value T out @t c of the counting pulse COUNT at the time t c at which the end signal STOP @t c is received.

인-메모리 프로세싱 디바이스 내의 프로세싱 회로는 상술한 바와 같은 시간-디지털 컨버팅을 통해, 각 컬럼 라인(출력 라인) 별 MAC 연산을 수행할 수 있다. 본 실시예들에 따른 인-메모리 프로세싱 디바이스는 메모리와 연산부가 분리된 폰 노이만(Von Neumann) 구조와 달리 데이터 전달의 속도 및 전력소모가 개선될 수 있다. 또한, 인-메모리 프로세싱 디바이스는 개별 컬럼 라인들에 ADC들(analog-to-digital converters)를 구비할 필요가 없으므로, ADC들이 구비된 아키텍쳐에 비해 소모 전력 및 회로에서 차지하는 면적이 감소될 수 있다.The processing circuit in the in-memory processing device may perform a MAC operation for each column line (output line) through time-digital conversion as described above. In the in-memory processing device according to the present embodiments, data transfer speed and power consumption may be improved, unlike the Von Neumann structure in which the memory and the operation unit are separated. In addition, since the in-memory processing device does not need to include analog-to-digital converters (ADCs) in individual column lines, power consumption and circuit area may be reduced compared to an architecture including ADCs.

한편, 설명된 실시예들에서는, 입력 신호의 전압 값 및 메모리 셀의 저항 값이 온(ON)에 해당하는 값(또는 논리 1) 및 오프(OFF)에 해당하는 값(또는 논리 0)과 같이 바이너리 값을 가지는 것을 가정하여 설명하였으나, 본 실시예들이 이에 제한하는 것은 아니다. 입력 신호의 전압 값 및 메모리 셀의 저항 값은 다중 상태(multi-state)로 구별되는 값을 가질 수도 있다. 예를 들어, 한 입력 라인(로우 라인)에 2비트의 값이 입력되는 경우, "00"에 대해서는 입력 신호(입력 전압)가 플로팅(floating)되고, "01"에 대해서는 제 1 전압 값, "10"에 대해서는 제 1 전압 값보다 큰 제 2 전압 값, "11"에 대해서는 제 2 전압 값보다 큰 제 3 전압 값이 입력 신호로서 할당될 수 있다. 또한, 메모리 셀이 2비트의 값을 지시하는 경우, 메모리 셀에 "00"에 대해서는 제 1 저항 값, "01"에 대해서는 제 1 저항 값보다 큰 제 2 저항 값, "10"에 대해서는 제 3 저항 값", "11"에 대해서는 제 4 저항 값이 할당될 수도 있다. 각 입력 라인(로우 라인)에 수신되는 입력 신호 및 각 메모리 셀이 2비트 다중 상태를 지시하는 것으로 제한되는 것은 아니고, 그 이상의 비트에 대응하는 다중 상태를 지시할 수도 있고, 바이너리 체계 외 다른 체계에 따른 값이 할당될 수도 있다.Meanwhile, in the described embodiments, the voltage value of the input signal and the resistance value of the memory cell are equal to a value corresponding to ON (or logic 1) and a value corresponding to OFF (or logic 0). Although it has been described on the assumption that it has a binary value, the present embodiments are not limited thereto. The voltage value of the input signal and the resistance value of the memory cell may have values that are differentiated into multi-states. For example, when a 2-bit value is input to one input line (low line), the input signal (input voltage) is floated for "00", and the first voltage value, " A second voltage value greater than the first voltage value for 10” and a third voltage value greater than the second voltage value for “11” may be allocated as the input signal. In addition, when the memory cell indicates a 2-bit value, the memory cell has a first resistance value for “00”, a second resistance value greater than the first resistance value for “01”, and a third resistance value for “10”. A fourth resistance value may be assigned to “resistance values” and “11.” It is not limited to an input signal received on each input line (row line) and each memory cell indicating a 2-bit multi-state, Multiple states corresponding to the above bits may be indicated, and values according to systems other than the binary system may be assigned.

도 11은 일 실시예에 따라 인-메모리 프로세싱을 수행하는 방법의 흐름도이다. 도 11을 참고하면, 인-메모리 프로세싱의 수행 방법은 앞서 설명된 도면들에서 설명된 실시예들에 관련되므로, 이하 생략된 내용이라 할지라도, 앞서 도면들에서 설명된 내용들은 도 11의 방법에도 적용될 수 있다.11 is a flowchart of a method for performing in-memory processing according to an embodiment. Referring to FIG. 11 , since the method of performing in-memory processing is related to the embodiments described in the drawings described above, the contents described in the drawings are also included in the method of FIG. 11 , even if omitted below. can be applied.

1101 단계에서, 프로세싱 회로(600)의 제어신호 생성기(630)는 제어신호(트리거 펄스(TRIGGER) 및 카운팅 펄스(COUNT))를 리셋한다.In step 1101 , the control signal generator 630 of the processing circuit 600 resets control signals (trigger pulse TRIGGER and counting pulse COUNT).

1102 단계에서, 메모리 셀 어레이(690)의 각각의 로우 라인을 통해 복수의 메모리 셀들(610)에 입력 신호가 인가된다.In operation 1102 , an input signal is applied to the plurality of memory cells 610 through each row line of the memory cell array 690 .

1103 단계에서, 프로세싱 회로(600)의 커패시터들(620) 각각은 메모리 셀 어레이(690)의 각각의 컬럼 라인을 통해 흐르는 컬럼 전류의 전류 합에 대응하는 샘플링 전압을 충전한다.In operation 1103 , each of the capacitors 620 of the processing circuit 600 charges a sampling voltage corresponding to a current sum of column currents flowing through each column line of the memory cell array 690 .

1104 단계에서, 프로세싱 회로(600)의 제어신호 생성기(630)는 설정된 양자화 레벨에 기초하여, 제어신호(트리거 펄스(TRIGGER) 및 카운팅 펄스(COUNT))를 생성한다. 트리거 펄스(TRIGGER)는 비교기들(640)로 인가되고, 카운팅 펄스(COUNT)는 시간-디지털 컨버터(TDC)(650)로 인가된다.In operation 1104 , the control signal generator 630 of the processing circuit 600 generates a control signal (a trigger pulse TRIGGER and a counting pulse COUNT) based on the set quantization level. A trigger pulse TRIGGER is applied to the comparators 640 , and a counting pulse COUNT is applied to a time-to-digital converter (TDC) 650 .

1105 단계에서, 프로세싱 회로(600)의 비교기들(640)은 트리거 펄스(TRIGGER)가 인가되는 동안, 각각에 연결된 커패시터들(620)에 현재 충전된 전압(Vc)과 레퍼런스 전압(Vref)을 비교한다.In operation 1105 , the comparators 640 of the processing circuit 600 compare the voltage Vc currently charged in the capacitors 620 connected thereto and the reference voltage Vref while the trigger pulse TRIGGER is applied. do.

1106 단계에서, 비교기들(640) 각각은 커패시터들(620)에 현재 충전된 전압(Vc)이 레퍼런스 전압(Vref)에 도달하였는지 여부를 판단한다. 현재 충전된 전압(Vc)이 레퍼런스 전압(Vref)에 도달한 것으로 결정한 비교기는 종료 신호(STOP)를 시간-디지털 컨버터(TDC)(650)로 출력하고, 1107 단계가 수행된다. 그렇지 않으면, 1106 단계가 다시 수행된다.In operation 1106 , each of the comparators 640 determines whether the voltage Vc currently charged in the capacitors 620 has reached the reference voltage Vref. The comparator that determines that the currently charged voltage Vc has reached the reference voltage Vref outputs a stop signal STOP to the time-to-digital converter (TDC) 650 , and step 1107 is performed. Otherwise, step 1106 is performed again.

1107 단계에서, 종료 신호(STOP)를 출력한 비교기는 비활성화(디스에이블)된다.In step 1107, the comparator outputting the end signal STOP is deactivated (disabled).

1108 단계에서, 프로세싱 회로(600)의 시간-디지털 컨버터(TDC)(650)는 카운팅 펄스(COUNT)의 현재 카운팅 값을 출력하는 시간-디지털 컨버팅을 수행한다.In operation 1108 , the time-to-digital converter (TDC) 650 of the processing circuit 600 performs time-digital conversion for outputting the current counting value of the counting pulse COUNT.

1109 단계에서, 프로세싱 회로(600)의 출력부(660)는 카운팅 값에 대응하는 양자화 레벨의 디지털 값을 출력한다. In operation 1109 , the output unit 660 of the processing circuit 600 outputs a digital value of a quantization level corresponding to the counting value.

도 12는 일 실시예에 따른 컴퓨팅 장치를 나타내는 블록도이다.12 is a block diagram illustrating a computing device according to an embodiment.

도 12를 참고하면, 컴퓨팅 장치(1200)는 뉴럴 네트워크를 기초로 입력 데이터를 실시간으로 분석하여 유효한 정보를 추출하고, 추출된 정보를 기초로 상황 판단을 하거나 또는 컴퓨팅 장치(1200)가 탑재되는 전자 디바이스의 구성들을 제어할 수 있다. 예컨대 컴퓨팅 장치(1200)는 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 로봇 장치, 스마트 TV, 스마트폰, 의료 디바이스, 모바일 디바이스, 영상 표시 디바이스, 계측 디바이스, IoT 디바이스 등에 적용될 수 있으며, 이 외에도 다양한 종류의 전자 디바이스들 중 적어도 하나에 탑재될 수 있다. Referring to FIG. 12 , the computing device 1200 analyzes input data in real time based on a neural network to extract valid information, makes a situation determination based on the extracted information, or an electronic device on which the computing device 1200 is mounted. It is possible to control the configurations of the device. For example, the computing device 1200 may include a drone, a robot device such as an Advanced Drivers Assistance System (ADAS), a smart TV, a smartphone, a medical device, a mobile device, an image display device, a measurement device, and an IoT device. and the like, and may be mounted on at least one of various types of electronic devices.

컴퓨팅 장치(1200)는 호스트 프로세서(1210), RAM(1220), 인-메모리 프로세싱 디바이스(1230), 메모리 디바이스(1240), 센서 모듈(1250) 및 통신 모듈(1260)을 포함할 수 있다. 컴퓨팅 장치(1200)는 입출력 모듈, 보안 모듈, 전력 제어 장치 등을 더 포함할 수 있다. 컴퓨팅 장치(1200)의 하드웨어 구성들 중 일부는 적어도 하나의 반도체 칩에 탑재될 수 있다. 인-메모리 프로세싱 디바이스(1230)는 앞서 도면들에서 설명된 인-메모리 프로세싱 디바이스를 포함하는 장치로서, 뉴럴 네트워크 전용 하드웨어 가속기 자체 또는 이를 포함하는 뉴럴 네트워크 장치에 해당할 수 있다.The computing device 1200 may include a host processor 1210 , a RAM 1220 , an in-memory processing device 1230 , a memory device 1240 , a sensor module 1250 , and a communication module 1260 . The computing device 1200 may further include an input/output module, a security module, a power control device, and the like. Some of the hardware components of the computing device 1200 may be mounted on at least one semiconductor chip. The in-memory processing device 1230 is an apparatus including the in-memory processing device described above with reference to the drawings, and may correspond to a neural network dedicated hardware accelerator itself or a neural network apparatus including the same.

호스트 프로세서(1210)는 컴퓨팅 장치(1200)의 전반적인 동작을 제어한다. 호스트 프로세서(1210)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(multi-core)을 포함할 수 있다. 호스트 프로세서(1210)는 메모리 디바이스(1240)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 호스트 프로세서(1210)는 메모리 디바이스(1240)에 저장된 프로그램들을 실행함으로써, 인-메모리 프로세싱 디바이스(1230)의 기능을 제어할 수 있다. 호스트 프로세서(1210)는 CPU, GPU, AP 등으로 구현될 수 있다.The host processor 1210 controls the overall operation of the computing device 1200 . The host processor 1210 may include one processor core or a plurality of processor cores (multi-core). The host processor 1210 may process or execute programs and/or data stored in the memory device 1240 . The host processor 1210 may control the function of the in-memory processing device 1230 by executing programs stored in the memory device 1240 . The host processor 1210 may be implemented as a CPU, GPU, AP, or the like.

RAM(1220)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대 메모리 디바이스(1240)에 저장된 프로그램들 및/또는 데이터는 호스트 프로세서(1210)의 제어 또는 부팅 코드에 따라 RAM(1220)에 일시적으로 저장될 수 있다. RAM(1220)은 DRAM(Dynamic RAM) 또는 SRAM(Static RAM) 등의 메모리로 구현될 수 있다. The RAM 1220 may temporarily store programs, data, or instructions. For example, programs and/or data stored in the memory device 1240 may be temporarily stored in the RAM 1220 according to a control or boot code of the host processor 1210 . The RAM 1220 may be implemented as a memory such as dynamic RAM (DRAM) or static RAM (SRAM).

인-메모리 프로세싱 디바이스(1230)는 앞서 도면들에서 설명된 뉴로모픽 연산, 예를 들어 MAC 연산을 수행하고, MAC 연산 결과를 출력할 수 있다. 다만, 인-메모리 프로세싱 디바이스(1230)는 이 밖에도 다양한 인-메모리 컴퓨팅을 수행할 수 있다.The in-memory processing device 1230 may perform the neuromorphic operation described above with reference to the drawings, for example, the MAC operation, and output the MAC operation result. However, the in-memory processing device 1230 may perform various other in-memory computing.

메모리 디바이스(1240)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 실시예에 있어서, 메모리 디바이스(1240)는 인-메모리 프로세싱 디바이스(1230)의 연산 수행 과정에 필요한 데이터들(예를 들어, 입력 신호 데이터, 웨이트 데이터 등)과 연산 결과 데이터(예를 들어, MAC 연산 결과(즉, 양자화 레벨 데이터) 등)을 저장할 수 있다.The memory device 1240 is a storage location for storing data, and may store an operating system (OS), various programs, and various data. In an embodiment, the memory device 1240 includes data (eg, input signal data, weight data, etc.) necessary for the operation of the in-memory processing device 1230 and operation result data (eg, MAC). calculation results (ie, quantization level data), etc.) may be stored.

메모리 디바이스(1240)는 DRAM일 수 있으나, 이에 한정되는 것은 아니다. 메모리 디바이스(1240)는 휘발성 메모리 또는 불휘발성 메모리 중 적어도 하나를 포함할 수 있다. 불휘발성 메모리는 ROM, PROM, EPROM, EEPROM, 플래시 메모리, PRAM, MRAM, RRAM, FRAM 등을 포함한다. 휘발성 메모리는 DRAM, SRAM, SDRAM, PRAM, MRAM, RRAM, FeRAM 등을 포함한다. 실시예에 있어서, 메모리 디바이스(1240)는 HDD, SSD, CF, SD, Micro-SD, Mini-SD, xD 또는 Memory Stick 중 적어도 하나를 포함할 수 있다. The memory device 1240 may be a DRAM, but is not limited thereto. Memory device 1240 may include at least one of volatile memory or nonvolatile memory. Nonvolatile memory includes ROM, PROM, EPROM, EEPROM, flash memory, PRAM, MRAM, RRAM, FRAM, and the like. Volatile memory includes DRAM, SRAM, SDRAM, PRAM, MRAM, RRAM, FeRAM, and the like. In an embodiment, the memory device 1240 may include at least one of HDD, SSD, CF, SD, Micro-SD, Mini-SD, xD, and Memory Stick.

센서 모듈(1250)은 컴퓨팅 장치(1200)가 탑재되는 전자 장치 주변의 정보를 수집할 수 있다. 센서 모듈(1250)은 전자 장치의 외부로부터 신호(예컨대 영상 신호, 음성 신호, 자기 신호, 생체 신호, 터치 신호 등)를 센싱 또는 수신하고, 센싱 또는 수신된 신호를 데이터로 변환할 수 있다. 이를 위해, 센서 모듈(1250)은 센싱 장치, 예컨대 마이크, 촬상 장치, 이미지 센서, 라이더(LIDAR; light detection and ranging) 센서, 초음파 센서, 적외선 센서, 바이오 센서, 및 터치 센서 등 다양한 종류의 센싱 장치 중 적어도 하나를 포함할 수 있다. The sensor module 1250 may collect information around the electronic device on which the computing device 1200 is mounted. The sensor module 1250 may sense or receive a signal (eg, an image signal, an audio signal, a magnetic signal, a biosignal, a touch signal, etc.) from the outside of the electronic device, and may convert the sensed or received signal into data. To this end, the sensor module 1250 includes various types of sensing devices, such as a microphone, an imaging device, an image sensor, a light detection and ranging (LIDAR) sensor, an ultrasonic sensor, an infrared sensor, a biosensor, and a touch sensor. may include at least one of

센서 모듈(1250)은 변환된 데이터를 인-메모리 프로세싱 디바이스(1230)에 입력 데이터로서 제공할 수도 있다. 예를 들어, 센서 모듈(1250)은 이미지 센서를 포함할 수 있으며, 전자 장치의 외부 환경을 촬영하여 비디오 스트림을 생성하고, 비디오 스트림의 연속하는 데이터 프레임을 인-메모리 프로세싱 디바이스(1230)에 입력 데이터로서 순서대로 제공할 수 있다. 그러나 이에 제한되는 것은 아니며 센서 모듈(1250)은 다양한 종류의 데이터를 인-메모리 프로세싱 디바이스(1230)에 제공할 수 있다. The sensor module 1250 may provide the converted data as input data to the in-memory processing device 1230 . For example, the sensor module 1250 may include an image sensor, capture an external environment of the electronic device to generate a video stream, and input successive data frames of the video stream to the in-memory processing device 1230 . It can be provided in order as data. However, the present invention is not limited thereto, and the sensor module 1250 may provide various types of data to the in-memory processing device 1230 .

통신 모듈(1260)은 외부 장치와 통신할 수 있는 다양한 유선 또는 무선 인터페이스를 구비할 수 있다. 예컨대 통신 모듈(1260)은 유선 근거리통신망(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)에 접속 가능한 통신 인터페이스 등을 포함할 수 있다.The communication module 1260 may include various wired or wireless interfaces capable of communicating with an external device. For example, the communication module 1260 may include a wired local area network (LAN), a wireless local area network (WLAN) such as Wi-Fi (Wireless Fidelity), and a wireless personal network such as Bluetooth (Bluetooth). Personal Area Network (WPAN), Wireless USB (Wireless Universal Serial Bus), Zigbee, NFC (Near Field Communication), RFID (Radio-frequency identification), PLC (Power Line communication), or 3G (3rd Generation), 4G (4th Generation), Long Term Evolution (LTE), 5th Generation (5G), and the like, may include a communication interface connectable to a mobile cellular network.

도 13은 뉴럴 네트워크의 일 예를 설명하기 위한 도면이다.13 is a diagram for describing an example of a neural network.

도 13을 참조하면, 뉴럴 네트워크(1300)는 딥 뉴럴 네트워크(DNN, deep neural network)의 예시에 해당할 수 있다. 설명의 편의를 위해 뉴럴 네트워크(1300)가 2개의 히든 레이어들(hidden layers)을 포함하는 것으로 도시되었으나, 다양한 수의 히든 레이어들을 포함할 수 있다. 또한, 도 13에서 뉴럴 네트워크(1300)는 입력 데이터를 수신하기 위한 별도의 입력 레이어(input layer)(1310)를 포함하는 것으로 도시되었으나, 입력 데이터가 히든 레이어에 직접 입력될 수 있다. Referring to FIG. 13 , a neural network 1300 may correspond to an example of a deep neural network (DNN). For convenience of description, although the neural network 1300 is illustrated as including two hidden layers, it may include various numbers of hidden layers. Also, although the neural network 1300 is illustrated as including a separate input layer 1310 for receiving input data in FIG. 13 , the input data may be directly input to the hidden layer.

뉴럴 네트워크(1300)에서 출력 레이어(output layer)를 제외한 레이어들의 인공 노드들은 출력 신호를 전송하기 위한 링크들을 통해 다음 레이어의 인공 노드들과 연결될 수 있다. 이들 링크를 통해 인공 노드에는 이전 레이어에 포함된 인공 노드들의 가중된 입력들(weighted inputs)에 관한 활성 함수(activation function)의 출력이 입력될 수 있다. 가중된 입력은 인공 노드의 입력(노드값)에 웨이트(weight)가 곱해진 것으로, 입력은 액손 값들에 해당하고, 웨이트는 시냅틱 웨이트들에 해당한다. 웨이트는 뉴럴 네트워크(1300)의 파라미터로 지칭될 수 있다. 활성 함수는 시그모이드(sigmoid), 하이퍼볼릭 탄젠트(hyperbolic tangent; tanh) 및 렐루(rectified linear unit; ReLU)를 포함할 수 있고, 활성 함수에 의해 뉴럴 네트워크(1300)에 비선형성이 형성될 수 있다. In the neural network 1300 , artificial nodes of layers other than an output layer may be connected to artificial nodes of a next layer through links for transmitting an output signal. An output of an activation function regarding weighted inputs of artificial nodes included in the previous layer may be input to the artificial node through these links. The weighted input is an input (node value) of an artificial node multiplied by a weight. The input corresponds to axon values, and the weight corresponds to synaptic weights. The weight may be referred to as a parameter of the neural network 1300 . The activation function may include a sigmoid, a hyperbolic tangent (tanh), and a rectified linear unit (ReLU), and nonlinearity may be formed in the neural network 1300 by the activation function. have.

딥러닝 알고리즘 구동을 위한 인-메모리 프로세싱(in-memory processing) 또는 인-메모리 컴퓨팅(in-memory computing)에 앞서 도면들에서 설명된 인-메모리 프로세싱 디바이스가 이용될 수 있다. 예를 들어, 뉴럴 네트워크(1300)의 노드(1321) 간에 전달되는 가중된 입력의 산출은 MAC 연산으로 구성될 수 있다. 이러한 뉴럴 네트워크(1300)에 포함된 임의의 한 노드(1321)의 출력은 아래 수학식 1과 같이 나타낼 수 있다.The in-memory processing device described in the drawings may be used prior to in-memory processing or in-memory computing for driving a deep learning algorithm. For example, the calculation of the weighted input transferred between the nodes 1321 of the neural network 1300 may be configured as a MAC operation. The output of any one node 1321 included in the neural network 1300 may be expressed as Equation 1 below.

Figure pat00001
Figure pat00001

수학식 1은 임의의 레이어에서 m개의 입력 값에 대한 i번째 노드(1321)의 출력 값 yi를 나타낼 수 있다. xj는 이전 레이어의 j번째 노드의 출력 값을 나타낼 수 있고, wj,i는 j번째 노드의 출력 값 및 현재 레이어의 i번째 노드(1321)에 적용되는 웨이트를 나타낼 수 있다. f()는 활성 함수를 나타낼 수 있다. 수학식 1에 나타난 바와 같이, 활성 함수에 대해, 입력값 xj 및 웨이트 wj,i의 곱셈 누적 결과가 사용될 수 있다. 다시 말해, 원하는 시점에 적절한 입력 값 xj 및 가중치 wj,i을 곱하고 더하는 연산(MAC 연산)이 반복될 수 있다. 이러한 용도 외에도, MAC 연산을 필요로 하는 다양한 응용분야가 있으며, 이를 위해 아날로그 영역에서 MAC 연산을 처리할 수 있는 뉴로모픽 장치가 사용될 수 있다.Equation 1 may represent an output value y i of the i-th node 1321 for m input values in an arbitrary layer. x j may represent the output value of the j-th node of the previous layer, and w j,i may represent the output value of the j-th node and a weight applied to the i-th node 1321 of the current layer. f() may represent an activation function. As shown in Equation 1, for the activation function, the multiplication and accumulation result of the input value x j and the weight w j,i can be used. In other words, an operation (MAC operation) of multiplying and adding an appropriate input value x j and a weight w j,i at a desired time may be repeated. In addition to these uses, there are various application fields requiring MAC operation, and for this purpose, a neuromorphic device capable of processing MAC operation in an analog domain may be used.

인-메모리 프로세싱 디바이스의 복수의 메모리 셀들은, 복수의 노드들을 포함하는 하나 이상의 레이어로 구성되는 뉴럴 네트워크(1300)에서, 복수의 노드들을 연결하는 연결선의 연결 가중치에 대응하는 저항(resistance)을 가질 수 있다. 메모리 셀들이 배치된 입력 라인들(로우 라인들)을 따라 제공되는 입력 신호는, 노드 값 xj에 대응하는 값을 나타낼 수 있다. 따라서, 인-메모리 프로세싱 디바이스는, 뉴럴 네트워크(1300)의 실시에 요구되는 연산들 중 적어도 일부를 수행할 수 있다. The plurality of memory cells of the in-memory processing device may have resistance corresponding to a connection weight of a connection line connecting the plurality of nodes in the neural network 1300 including one or more layers including the plurality of nodes. can An input signal provided along input lines (row lines) in which memory cells are disposed may represent a value corresponding to the node value x j . Accordingly, the in-memory processing device may perform at least some of operations required to implement the neural network 1300 .

한편, 인-메모리 프로세싱 디바이스의 적용은 반드시 뉴로모픽 연산에만 한정되는 것은 아니고, 이 밖에도 아날로그 회로 특성을 사용한 복수 입력 데이터를 저전력으로 빠르게 처리해야 하는 연산에도 활용될 수 있다.On the other hand, the application of the in-memory processing device is not necessarily limited to neuromorphic calculations, and in addition, it can be utilized for calculations requiring fast processing of multiple input data using analog circuit characteristics with low power.

도 14는 일 실시예에 따라 인-메모리 프로세싱을 수행하는 방법의 흐름도이다. 도 14를 참고하면, 인-메모리 프로세싱의 수행 방법은 앞서 설명된 도면들에서 설명된 실시예들에 관련되므로, 이하 생략된 내용이라 할지라도, 앞서 도면들에서 설명된 내용들은 도 14의 방법에도 적용될 수 있다.14 is a flowchart of a method for performing in-memory processing according to an embodiment. Referring to FIG. 14 , since the method of performing in-memory processing is related to the embodiments described in the drawings described above, the contents described in the drawings are also included in the method of FIG. 14 , even if omitted below. can be applied.

1401 단계에서, 메모리 셀 어레이(690)의 각각의 로우(row) 라인을 통해 복수의 메모리 셀들(610)에 입력 신호가 인가된다.In operation 1401 , an input signal is applied to the plurality of memory cells 610 through each row line of the memory cell array 690 .

1402 단계에서, 프로세싱 회로(600)는 메모리 셀 어레이(690)의 각각의 컬럼 라인을 통해 흐르는 컬럼 전류의 전류 합에 대응하는 샘플링 전압을 각각의 컬럼 라인에 연결된 커패시터(620)에 충전한다.In operation 1402 , the processing circuit 600 charges the capacitor 620 connected to each column line with a sampling voltage corresponding to the sum of currents of column currents flowing through each column line of the memory cell array 690 .

1403 단계에서, 프로세싱 회로(600)는 커패시터(620)의 충전 시간에 따라 구분된 양자화 레벨들 중 소정의 양자화 레벨에 대응하는 타이밍에 생성된 트리거 펄스를 비교기들에 인가함으로써 커패시터(620)에 현재 충전된 전압과 레퍼런스 전압 간의 비교 동작을 수행한다.In step 1403 , the processing circuit 600 applies a trigger pulse generated at a timing corresponding to a predetermined quantization level among the quantization levels divided according to the charging time of the capacitor 620 to the comparators to provide a current to the capacitor 620 . A comparison operation is performed between the charged voltage and the reference voltage.

1404 단계에서, 프로세싱 회로(600)는 현재 충전된 전압이 레퍼런스 전압에 도달한 시점에서 시간-디지털 컨버팅을 수행함으로써 샘플링 전압에 대응하는 양자화 레벨을 결정한다.In operation 1404 , the processing circuit 600 determines a quantization level corresponding to the sampling voltage by performing time-digital conversion when the currently charged voltage reaches the reference voltage.

한편, 상술한 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 실시예들에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.Meanwhile, the above-described embodiments can be written as a program that can be executed on a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium. In addition, the structure of data used in the above-described embodiments may be recorded in a computer-readable recording medium through various means. The computer-readable recording medium includes a storage medium such as a magnetic storage medium (eg, a ROM, a floppy disk, a hard disk, etc.) and an optically readable medium (eg, a CD-ROM, a DVD, etc.).

본 실시예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 실시예가 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 권리 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 실시예에 포함된 것으로 해석되어야 할 것이다.Those of ordinary skill in the art related to the present embodiment will understand that the embodiment may be implemented in a modified form without departing from the essential characteristics of the above description. Therefore, the disclosed embodiments are to be considered in an illustrative rather than a restrictive sense. The scope of the rights is indicated in the claims rather than the above description, and all differences within the scope equivalent thereto should be construed as being included in the present embodiment.

Claims (20)

인-메모리(in-memory) 프로세싱을 수행하는 장치에 있어서,
입력 신호들이 각각의 로우(row) 라인을 통해 인가되는 경우 각각의 컬럼(column) 라인을 통해 흐르는 컬럼 전류의 전류 합(current sum)을 제공하는, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
상기 각각의 컬럼 라인의 상기 전류 합에 대응하는 샘플링 전압을 충전하는 커패시터를 포함하는 샘플링 회로; 및
상기 커패시터의 충전 시간에 따라 구분된 양자화 레벨들 중 소정의 양자화 레벨에 대응하는 타이밍에 생성된 트리거 펄스의 인가에 의해 상기 커패시터에 현재 충전된 전압과 레퍼런스 전압 간의 비교 동작을 시작하고, 상기 현재 충전된 전압이 상기 레퍼런스 전압에 도달한 시점에서 시간-디지털 컨버팅을 수행함으로써 상기 샘플링 전압에 대응하는 양자화 레벨을 결정하는 프로세싱 회로를 포함하는, 장치.
An apparatus for performing in-memory processing, comprising:
a memory cell array including a plurality of memory cells, providing a current sum of column currents flowing through each column line when input signals are applied through each row line;
a sampling circuit including a capacitor for charging a sampling voltage corresponding to the sum of the currents of each of the column lines; and
A comparison operation between a voltage currently charged in the capacitor and a reference voltage is started by application of a trigger pulse generated at a timing corresponding to a predetermined quantization level among quantization levels divided according to a charging time of the capacitor, and the current charging and a processing circuit for determining a quantization level corresponding to the sampling voltage by performing time-to-digital conversion at a point in time when the obtained voltage reaches the reference voltage.
제 1 항에 있어서,
상기 프로세싱 회로는
상기 소정의 양자화 레벨에 대응하는 상기 타이밍에 상기 트리거 펄스를 생성하고, 상기 트리거 펄스의 생성에 동기화되어 카운팅 펄스를 생성하는 제어신호 생성기; 및
상기 트리거 펄스의 인가에 의해 활성화되는 상기 컬럼 라인 별로 연결된 비교기들을 포함하는, 장치.
The method of claim 1,
The processing circuit is
a control signal generator generating the trigger pulse at the timing corresponding to the predetermined quantization level and generating a counting pulse in synchronization with the generation of the trigger pulse; and
and comparators connected for each column line activated by the application of the trigger pulse.
제 1 항에 있어서,
상기 양자화 레벨들 각각은
상기 커패시터에 상기 샘플링 전압이 충전되기까지 충전 전압이 변화되는 총 시간 구간으로부터 구분된 서브-시간 구간들 각각에 대응하는, 장치.
The method of claim 1,
Each of the quantization levels is
corresponding to each of the sub-time intervals separated from the total time interval in which the charging voltage is varied until the sampling voltage is charged to the capacitor.
제 3 항에 있어서,
상기 서브-시간 구간들은
상기 메모리 셀들의 저항 값 및 상기 커패시터의 커패시턴스 중 적어도 하나에 기초하여 결정되는, 장치.
4. The method of claim 3,
The sub-time intervals are
determined based on at least one of a resistance value of the memory cells and a capacitance of the capacitor.
제 1 항에 있어서,
상기 트리거 펄스가 인가되는 상기 타이밍에 대응하는 상기 소정의 양자화 레벨은, 상기 양자화 레벨들 중 최소 양자화 레벨보다 1 레벨 큰 양자화 레벨인, 장치.
The method of claim 1,
The predetermined quantization level corresponding to the timing at which the trigger pulse is applied is a quantization level that is one level larger than a minimum quantization level among the quantization levels.
제 1 항에 있어서,
상기 프로세싱 회로는
상기 비교 동작의 개시 신호로서 상기 트리거 펄스를 수신하고, 상기 커패시터에 현재 충전된 전압이 상기 레퍼런스 전압에 도달한 것으로 비교된 경우 상기 도달한 시점에서 종료 신호를 출력하는, 상기 컬럼 라인 별로 연결된 비교기들; 및
상기 종료 신호가 수신된 경우, 상기 종료 신호가 수신된 시점에서 상기 트리거 펄스에 동기화되어 인가된 카운팅 펄스의 카운팅 값을 디지털 값으로 출력하는 시간-디지털 컨버터(TDC)를 포함하는, 장치.
The method of claim 1,
The processing circuit is
Comparators connected for each column line that receive the trigger pulse as a start signal of the comparison operation and output an end signal when the voltage currently charged in the capacitor reaches the reference voltage when compared to the reference voltage ; and
and a time-to-digital converter (TDC) for outputting, as a digital value, a counting value of a counting pulse applied in synchronization with the trigger pulse when the end signal is received when the end signal is received.
제 6 항에 있어서,
상기 시간-디지털 컨버터(TDC)는
상기 종료 신호가 수신된 경우 상기 종료 신호가 수신된 시점에서의 현재 카운팅 값을 래치(latch)하는, 상기 비교기들 각각에 연결된 플립플롭들(flip-flops)을 포함하는, 장치.
7. The method of claim 6,
The time-to-digital converter (TDC) is
and flip-flops coupled to each of the comparators that latch a current counting value at the time the end signal is received when the end signal is received.
제 6 항에 있어서,
상기 비교기들 중에서 상기 종료 신호가 출력된 비교기는 비활성화되는, 장치.
7. The method of claim 6,
and a comparator outputting the end signal among the comparators is deactivated.
제 1 항에 있어서,
상기 비교기들은 래치 비교기(latched comparator) 타입으로 구현되는, 장치.
The method of claim 1,
wherein the comparators are implemented as a latched comparator type.
제 1 항에 있어서,
상기 트리거 펄스는
상기 양자화 레벨들 중 최대 양자화 레벨보다 1 레벨 작은 양자화 레벨에 대응하는 시간 구간까지 인가되는, 장치.
The method of claim 1,
The trigger pulse is
The apparatus is applied up to a time interval corresponding to a quantization level that is one level smaller than a maximum quantization level among the quantization levels.
제 1 항에 있어서,
상기 양자화 레벨들 중 최소 양자화 레벨은 하나의 컬럼 라인에 포함된 복수의 메모리 셀들이 최대 합성 저항을 갖는 경우에 대응하고,
상기 양자화 레벨들 중 최대 양자화 레벨은 하나의 컬럼 라인에 포함된 복수의 메모리 셀들이 최소 합성 저항을 갖는 경우에 대응하는,
장치.
The method of claim 1,
The minimum quantization level among the quantization levels corresponds to a case in which a plurality of memory cells included in one column line have maximum combined resistance,
The maximum quantization level among the quantization levels corresponds to a case in which a plurality of memory cells included in one column line have minimum combined resistance.
Device.
컴퓨팅 장치에 있어서,
호스트 프로세서;
메모리 디바이스; 및
인-메모리 프로세싱 디바이스를 포함하고,
상기 인-메모리 프로세싱 디바이스는
입력 신호들이 각각의 로우(row) 라인을 통해 인가되는 경우 각각의 컬럼(column) 라인을 통해 흐르는 컬럼 전류의 전류 합(current sum)을 제공하는, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
상기 각각의 컬럼 라인의 상기 전류 합에 대응하는 샘플링 전압을 충전하는 커패시터를 포함하는 샘플링 회로; 및
상기 커패시터의 충전 시간에 따라 구분된 양자화 레벨들 중 소정의 양자화 레벨에 대응하는 타이밍에 생성된 트리거 펄스의 인가에 의해 상기 커패시터에 현재 충전된 전압과 레퍼런스 전압 간의 비교 동작을 시작하고, 상기 현재 충전된 전압이 상기 레퍼런스 전압에 도달한 시점에서 시간-디지털 컨버팅을 수행함으로써 상기 샘플링 전압에 대응하는 양자화 레벨을 결정하는 프로세싱 회로를 포함하는,
컴퓨팅 장치.
In the computing device,
host processor;
memory device; and
an in-memory processing device;
The in-memory processing device is
a memory cell array including a plurality of memory cells, providing a current sum of column currents flowing through each column line when input signals are applied through each row line;
a sampling circuit including a capacitor for charging a sampling voltage corresponding to the sum of the currents of each of the column lines; and
A comparison operation between a voltage currently charged in the capacitor and a reference voltage is started by application of a trigger pulse generated at a timing corresponding to a predetermined quantization level among quantization levels divided according to a charging time of the capacitor, and the current charging A processing circuit for determining a quantization level corresponding to the sampling voltage by performing time-digital conversion at a point in time when the converted voltage reaches the reference voltage,
computing device.
제 12 항에 있어서,
상기 프로세싱 회로는
상기 소정의 양자화 레벨에 대응하는 상기 타이밍에 상기 트리거 펄스를 생성하고, 상기 트리거 펄스의 생성에 동기화되어 카운팅 펄스를 생성하는 제어신호 생성기; 및
상기 트리거 펄스의 인가에 의해 활성화되는 상기 컬럼 라인 별로 연결된 비교기들을 포함하는, 컴퓨팅 장치.
13. The method of claim 12,
The processing circuit is
a control signal generator generating the trigger pulse at the timing corresponding to the predetermined quantization level and generating a counting pulse in synchronization with the generation of the trigger pulse; and
Computing device comprising comparators connected for each column line activated by the application of the trigger pulse.
제 12 항에 있어서,
상기 양자화 레벨들은
상기 커패시터에 상기 샘플링 전압이 충전되기까지 충전 전압이 변화되는 총 시간 구간으로부터 구분된 서브-시간 구간들 각각에 대응하는, 컴퓨팅 장치.
13. The method of claim 12,
The quantization levels are
The computing device corresponds to each of the sub-time intervals divided from the total time interval in which the charging voltage is changed until the sampling voltage is charged in the capacitor.
제 12 항에 있어서,
상기 트리거 펄스가 인가되는 상기 타이밍에 대응하는 상기 소정의 양자화 레벨은, 상기 양자화 레벨들 중 최소 양자화 레벨보다 1 레벨 큰 양자화 레벨인, 컴퓨팅 장치.
13. The method of claim 12,
The predetermined quantization level corresponding to the timing at which the trigger pulse is applied is a quantization level that is one level higher than a minimum quantization level among the quantization levels.
제 12 항에 있어서,
상기 프로세싱 회로는
상기 비교 동작의 개시 신호로서 상기 트리거 펄스를 수신하고, 상기 커패시터에 현재 충전된 전압이 상기 레퍼런스 전압에 도달한 것으로 비교된 경우 상기 도달한 시점에서 종료 신호를 출력하는, 상기 컬럼 라인 별로 연결된 비교기들; 및
상기 종료 신호가 수신된 경우, 상기 종료 신호가 수신된 시점에서 상기 트리거 펄스에 동기화되어 인가된 카운팅 펄스의 카운팅 값을 디지털 값으로 출력하는 시간-디지털 컨버터(TDC)를 포함하는, 컴퓨팅 장치.
13. The method of claim 12,
The processing circuit is
Comparators connected for each column line that receive the trigger pulse as a start signal of the comparison operation and output an end signal when the voltage currently charged in the capacitor reaches the reference voltage when compared to the reference voltage ; and
and a time-to-digital converter (TDC) for outputting, as a digital value, a counting value of a counting pulse applied in synchronization with the trigger pulse when the end signal is received when the end signal is received.
제 16 항에 있어서,
상기 시간-디지털 컨버터(TDC)는
상기 종료 신호가 수신된 경우 상기 종료 신호가 수신된 시점에서의 현재 카운팅 값을 래치(latch)하는, 상기 비교기들 각각에 연결된 플립플롭들(flip-flops)을 포함하는, 컴퓨팅 장치.
17. The method of claim 16,
The time-to-digital converter (TDC) is
and flip-flops coupled to each of the comparators that latch a current counting value at the time the end signal is received when the end signal is received.
제 16 항에 있어서,
상기 비교기들 중에서 상기 종료 신호가 출력된 비교기는 비활성화되는, 컴퓨팅 장치.
17. The method of claim 16,
The comparator to which the end signal is output among the comparators is deactivated.
인-메모리(in-memory) 프로세싱을 수행하는 방법에 있어서,
메모리 셀 어레이의 각각의 로우(row) 라인을 통해 복수의 메모리 셀들에 입력 신호를 인가하는 단계;
상기 메모리 셀 어레이의 각각의 컬럼(column) 라인을 통해 흐르는 컬럼 전류의 전류 합(current sum)에 대응하는 샘플링 전압을 상기 각각의 컬럼(column) 라인에 연결된 커패시터에 충전하는 단계;
상기 커패시터의 충전 시간에 따라 구분된 양자화 레벨들 중 소정의 양자화 레벨에 대응하는 타이밍에 생성된 트리거 펄스를 비교기들에 인가함으로써 상기 커패시터에 현재 충전된 전압과 레퍼런스 전압 간의 비교 동작을 수행하는 단계; 및
상기 현재 충전된 전압이 상기 레퍼런스 전압에 도달한 시점에서 시간-디지털 컨버팅을 수행함으로써 상기 샘플링 전압에 대응하는 양자화 레벨을 결정하는 단계를 포함하는, 방법.
A method for performing in-memory processing, comprising:
applying an input signal to the plurality of memory cells through each row line of the memory cell array;
charging a sampling voltage corresponding to a current sum of column currents flowing through each column line of the memory cell array into a capacitor connected to each column line;
performing a comparison operation between a voltage currently charged in the capacitor and a reference voltage by applying a trigger pulse generated at a timing corresponding to a predetermined quantization level among quantization levels divided according to a charging time of the capacitor to comparators; and
and determining a quantization level corresponding to the sampling voltage by performing time-digital conversion at a time point when the currently charged voltage reaches the reference voltage.
제 19 항에 있어서,
상기 소정의 양자화 레벨에 대응하는 상기 타이밍에 상기 트리거 펄스를 생성하는 단계; 및
상기 트리거 펄스의 생성에 동기화된 카운팅 펄스를 생성하는 단계를 더 포함하고,
상기 양자화 레벨을 결정하는 단계는
시간-디지털 컨버터(TDC)가 비교기로부터 상기 커패시터에 현재 충전된 전압이 상기 레퍼런스 전압에 도달한 것을 나타내는 종료 신호를 수신한 경우, 상기 종료 신호가 수신된 시점에서 상기 카운팅 펄스의 카운팅 값을 디지털 값으로 출력함으로써 상기 양자화 레벨을 결정하는, 방법.
20. The method of claim 19,
generating the trigger pulse at the timing corresponding to the predetermined quantization level; and
generating a counting pulse synchronized to the generation of the trigger pulse;
The step of determining the quantization level is
When the time-to-digital converter (TDC) receives an end signal indicating that the voltage currently charged in the capacitor has reached the reference voltage from the comparator, the counting value of the counting pulse at the time the end signal is received is a digital value determining the quantization level by outputting
KR1020200061746A 2020-05-22 2020-05-22 Apparatus for performing in memory processing and computing apparatus having the same KR20210144417A (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020200061746A KR20210144417A (en) 2020-05-22 2020-05-22 Apparatus for performing in memory processing and computing apparatus having the same
CN202011211418.9A CN113707193A (en) 2020-05-22 2020-11-03 Apparatus and method with in-memory processing
US17/141,474 US11587616B2 (en) 2020-05-22 2021-01-05 Apparatus and method with in-memory processing
EP21172460.4A EP3913629B1 (en) 2020-05-22 2021-05-06 Apparatus and method with in-memory processing
JP2021085813A JP2021185479A (en) 2020-05-22 2021-05-21 Apparatus for performing in-memory processing, and computing device including the same
US17/992,143 US11804266B2 (en) 2020-05-22 2022-11-22 Apparatus and method with in-memory processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200061746A KR20210144417A (en) 2020-05-22 2020-05-22 Apparatus for performing in memory processing and computing apparatus having the same

Publications (1)

Publication Number Publication Date
KR20210144417A true KR20210144417A (en) 2021-11-30

Family

ID=75825650

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200061746A KR20210144417A (en) 2020-05-22 2020-05-22 Apparatus for performing in memory processing and computing apparatus having the same

Country Status (5)

Country Link
US (2) US11587616B2 (en)
EP (1) EP3913629B1 (en)
JP (1) JP2021185479A (en)
KR (1) KR20210144417A (en)
CN (1) CN113707193A (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10796729B2 (en) * 2019-02-05 2020-10-06 Micron Technology, Inc. Dynamic allocation of a capacitive component in a memory device
KR20210144417A (en) * 2020-05-22 2021-11-30 삼성전자주식회사 Apparatus for performing in memory processing and computing apparatus having the same
KR20220004430A (en) 2020-07-03 2022-01-11 삼성전자주식회사 Apparatus for performing in memory processing and computing apparatus having the same
US20220027130A1 (en) * 2020-07-27 2022-01-27 Robert Bosch Gmbh Time domain ratiometric readout interfaces for analog mixed-signal in memory compute crossbar networks
KR20220020097A (en) 2020-08-11 2022-02-18 삼성전자주식회사 Processing apparatus and electronic system having the same
US11809838B2 (en) * 2020-09-08 2023-11-07 Macronix International Co., Ltd. Memory device and operation method thereof
US11631808B2 (en) 2020-12-07 2023-04-18 Rockwell Collins, Inc. System and device including memristor material
US11462267B2 (en) * 2020-12-07 2022-10-04 Rockwell Collins, Inc. System and device including memristor material
US11456418B2 (en) 2020-09-10 2022-09-27 Rockwell Collins, Inc. System and device including memristor materials in parallel
US11469373B2 (en) 2020-09-10 2022-10-11 Rockwell Collins, Inc. System and device including memristor material
TWI752823B (en) * 2021-02-17 2022-01-11 國立成功大學 Memory system
WO2023120723A1 (en) * 2021-12-23 2023-06-29 株式会社ソリトンシステムズ Nonlinear function computing device, sigmoid function computing device, hyperbolic tangent function computing device, softmax function computing device, and nonlinear function computing method
CN118435194A (en) * 2021-12-23 2024-08-02 索利通系统株式会社 Nonlinear function operation device, sigmoid function operation device, hyperbolic tangent function operation device, softmax function operation device, and nonlinear function operation method
US11942144B2 (en) 2022-01-24 2024-03-26 Stmicroelectronics S.R.L. In-memory computation system with drift compensation circuit
WO2023171683A1 (en) * 2022-03-11 2023-09-14 ヌヴォトンテクノロジージャパン株式会社 Neural network arithmetic circuit
GB2620785B (en) * 2022-07-21 2024-08-07 Advanced Risc Mach Ltd Improved spiking neural network apparatus

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6188615B1 (en) * 1999-10-29 2001-02-13 Hewlett-Packard Company MRAM device including digital sense amplifiers
JP4088954B2 (en) * 2002-03-04 2008-05-21 日本電気株式会社 Read circuit for semiconductor memory device
US7817073B2 (en) * 2007-06-15 2010-10-19 Micron Technology, Inc. Integrators for delta-sigma modulators
KR20120134169A (en) 2011-06-01 2012-12-12 삼성전자주식회사 Voltage-temperature sensor and system including the same
US9571082B2 (en) 2015-04-17 2017-02-14 Taiwan Semiconductor Manufacturing Co., Ltd. High resolution time-to-digital convertor
JP6846297B2 (en) 2016-06-20 2021-03-24 キオクシア株式会社 Arithmetic logic unit
US10528865B2 (en) 2016-06-21 2020-01-07 International Business Machines Corporation System to duplicate neuromorphic core functionality
KR102314300B1 (en) 2017-02-10 2021-10-21 한국전자통신연구원 Neuromorphic arithmetic device
US10559370B2 (en) * 2018-03-22 2020-02-11 Sandisk Technologies Llc System and method for in-situ programming and read operation adjustments in a non-volatile memory
US11048434B2 (en) 2018-09-28 2021-06-29 Intel Corporation Compute in memory circuits with time-to-digital computation
US11755899B2 (en) * 2019-11-11 2023-09-12 Silicon Storage Technology, Inc. Precise programming method and apparatus for analog neural memory in an artificial neural network
KR20210144417A (en) * 2020-05-22 2021-11-30 삼성전자주식회사 Apparatus for performing in memory processing and computing apparatus having the same

Also Published As

Publication number Publication date
US11587616B2 (en) 2023-02-21
EP3913629A1 (en) 2021-11-24
US20230078279A1 (en) 2023-03-16
US11804266B2 (en) 2023-10-31
JP2021185479A (en) 2021-12-09
EP3913629B1 (en) 2024-07-03
US20210366542A1 (en) 2021-11-25
CN113707193A (en) 2021-11-26

Similar Documents

Publication Publication Date Title
KR20210144417A (en) Apparatus for performing in memory processing and computing apparatus having the same
US10692570B2 (en) Neural network matrix multiplication in memory cells
US11348002B2 (en) Training of artificial neural networks
US11531871B2 (en) Stacked neuromorphic devices and neuromorphic computing systems
US11620505B2 (en) Neuromorphic package devices and neuromorphic computing systems
KR20220004430A (en) Apparatus for performing in memory processing and computing apparatus having the same
CN110378475A (en) A kind of neuromorphic counting circuit based on multi-bit parallel binary system cynapse array
KR20210154502A (en) Neural network apparatus performing floating point operation and operating method of the same
KR20220010362A (en) Neural network apparatus and operating method of the same
US20210383203A1 (en) Apparatus and method with neural network
JP2021157788A (en) Neuromorphic device, electronic system, and driving method thereof
KR20220020097A (en) Processing apparatus and electronic system having the same
US20230113627A1 (en) Electronic device and method of operating the same
KR102650660B1 (en) Neuromorphic apparatus and method for processing multi-bits neuromorphic operation thereof
US20230186086A1 (en) Neural network device and electronic system including the same
KR20200094534A (en) Neural network apparatus and method for processing multi-bits operation thereof
KR20220141652A (en) Apparatus and method for multi-bit operation
US20220385295A1 (en) Electronic device and method of operating the same
US20230298663A1 (en) Neural network based method and device
US20240232595A1 (en) Method and apparatus with neural network circuitry
KR20230090758A (en) Neural network circuit and device
CN117408319A (en) Neural network classifier

Legal Events

Date Code Title Description
A201 Request for examination