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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0038—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/06—Arrangements for interconnecting storage elements electrically, e.g. by wiring
- G11C5/063—Voltage and signal distribution in integrated semi-conductor memory access lines, e.g. word-line, bit-line, cross-over resistance, propagation delay
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0007—Digital 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0023—Address circuits or decoders
- G11C13/0026—Bit-line or column circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0023—Address circuits or decoders
- G11C13/0028—Word-line or row circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0061—Timing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/06—Arrangements for interconnecting storage elements electrically, e.g. by wiring
- G11C5/10—Arrangements for interconnecting storage elements electrically, e.g. by wiring for interconnecting capacitors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/147—Voltage reference generators, voltage or current regulators; Internally lowered supply levels; Compensation for voltage drops
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data 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
Description
인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치에 관하고, 구체적으로 시간-디지털 컨버팅에 기초한 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치에 에 관한다.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
생물학적 뉴런(10)은 단일 세포이며 세포핵(nucleus) 및 다양한 세포기관(organelles)을 포함하는 세포체(neuron cell body)를 포함한다. 다양한 세포기관은 미토콘드리아, 세포체로부터 방사되는 다수의 수상돌기들(dendrites) 및 많은 분기 확장선(extension)들에서 종단하는 축색돌기(axon)를 포함한다.
일반적으로, 축색돌기는 뉴런으로부터 다른 뉴런으로 신호들을 송신하는 기능을 수행하고, 수상돌기는 다른 뉴런으로부터 신호를 수신하는 기능을 수행한다. 예를 들어, 서로 다른 뉴런들이 연결되어 있는 경우 뉴런의 축색돌기를 통해 전달된 신호는 다른 뉴런의 수상돌기에 의해 수신될 수 있다. 이때, 뉴런들 사이에서 신호는 시냅스(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
도 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
시냅스 어레이(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
시냅스 어레이(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
시냅스 어레이(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
한편, 뉴런 회로들(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 (
도 4는 일 실시예에 따른 인-메모리 프로세싱 디바이스를 도시한 도면이다.4 is a diagram illustrating an in-memory processing device according to an embodiment.
도 4를 참고하면, 인-메모리 프로세싱 디바이스(100)는 뉴로모픽 연산을 위하여 곱셈 및 덧셈을 수행한 결과를 출력하는 회로로 구성될 수 있다.Referring to FIG. 4 , the in-
인-메모리 프로세싱 디바이스(100)는 복수의 메모리 셀들(110), 커패시터(C), 및 시간-디지털 컨버터(TDC)(140)를 포함할 수 있다. 또한, 인-메모리 프로세싱 디바이스(100)는 시간 디지털 컨버터(140)로 전달되는 시간 정보를 생성하기 위한 비교기(130)를 더 포함할 수 있다. 도 4에서는 설명의 편의를 위하여, 인-메모리 프로세싱 디바이스(100)에 구비된 메모리 셀 어레이 중 일부에 해당하는 컬럼(column) 라인(120) 및 로우(row) 라인들에 대해서만 도시되어 있을 뿐이다. 따라서, 인-메모리 프로세싱 디바이스(100)는 복수의 컬럼 라인들 및 로우 라인들이 교차하는 위치에 복수의 메모리 셀들이 배치된 메모리 셀 어레이를 포함할 수 있다.The in-
메모리 셀들(110)은 앞서 설명된 바와 같이, 멤리스터 또는 저항성 메모리 소자로 구현된 것으로서, 가변저항을 갖는 소자일 수 있다. 메모리 셀들(110)에는 입력 신호에 응답하여 각각의 로우 라인을 통해 전압(V1, V2, V3, ..., Vm)이 인가될 수 있다. 예를 들어, 메모리 셀들(110)에는 입력 신호의 입력 전압 신호가 직접 인가되거나, 또는 입력 신호에 의해 공급 전압이 인가될 수도 있다.As described above, the
메모리 셀들(110) 각각의 일단은 스위치(SW)를 통해 전압을 수신 가능하게 구성될 수 있고, 메모리 셀들(110) 각각의 타단은 커패시터(C) 및 비교기(130)에 연결될 수 있다. 즉, 메모리 셀들(110)을 포함하는 개개의 컬럼 라인에는 커패시터(C) 및 비교기(130)가 연결되어 있다.One end of each of the
메모리 셀들(110) 각각의 저항 값과 메모리 셀들(110) 각각에 인가된 입력 신호의 전압 값에 따라, 컬럼 라인(120)에는 옴의 법칙에 기초하여 계산된 전류 값을 갖는 전류가 흐르게 된다. 따라서, 컬럼 라인(120)을 통해 흐르는 컬럼 전류의 전류 합(current sum)(Io)은, 서로 대응하는 메모리 셀들 및 입력 신호들 간의 MAC 연산의 결과 값에 대응할 수 있다.A current having a current value calculated based on Ohm's law flows in the
입력 신호들(즉, 입력 전압들(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
입력 신호들은 일련의 바이너리 값들로 구성되는 입력 비트 시퀀스의 개별 비트 값에 대응할 수 있다. 구체적으로, 인-메모리 프로세싱 디바이스(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-
메모리 셀들(110) 각각의 저항 값은 입력 비트 시퀀스의 각 비트에 곱해지는 비트 값(예를 들어, 웨이트 또는 시냅틱 웨이트)을 가질 수 있다. 메모리 셀들(110)은 가변저항을 갖는 저항성 메모리 소자로 구현될 수 있으므로, 메모리 셀들(110) 중 비트 값 1에 대응하는 메모리 셀은 제 1 저항 값을 갖고, 비트 값 0에 대응하는 메모리 셀은 제 2 저항 값을 가질 수 있다. 또는, 이에 제한되지 않고, 메모리 셀들(110)은 스위칭 소자를 이용하여 서로 다른 저항 값들을 갖는 복수의 저항기들 중에서 해당 비트 값에 대응되는 저항기가 선택되도록 스위칭되는 회로 구성으로 구현될 수도 있다.The resistance value of each of the
한편, 본 실시예에서는 비트 값이 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
인-메모리 프로세싱 디바이스(100)에서 커패시터는 각각의 컬럼 라인 별로 연결되어 있고, 커패시터는 해당 컬럼 라인의 전류 합(Io)에 대응하는 전압을 샘플링한다. 따라서, 인-메모리 프로세싱 디바이스(100) 내에서 컬럼 라인 별로 연결된 커패시터들은 해당 컬럼 라인의 전류 합(Io)에 대응하는 샘플링 전압(Vo)(sampling voltage)을 충전하기 위한 샘플링 회로를 구성할 수 있다.In the in-
비교기(130)는 커패시터(C)의 일단에 연결될 수 있다. 비교기(130)는 커패시터(C)에 샘플링 전압(Vo)이 충전되는 동안 현재 충전된 전압을 레퍼런스 전압(Vref)(reference voltage)과 비교하는 비교 동작을 수행할 수 있다. 비교기(130)는 예를 들어, 연산 증폭기(OP amp, operational amplifier)로 구현될 수 있다. 연산 증폭기의 한 입력 노드에는 커패시터(C)의 샘플링 전압(Vo)이 입력되고, 다른 입력 노드에는 레퍼런스 전압(Vref)가 입력될 수 있다.The
샘플링 전압(Vo)은 커패시터(C)에 연결된 컬럼 라인(120)의 전류 합(Io)에 대응하는 전압으로서, 메모리 셀들(110)의 저항 값들 및 인가된 입력 신호들 간의 MAC 연산 결과에 대응하는 값일 수 있다.The sampling voltage (V o ) is a voltage corresponding to the sum of currents (I o ) of the
커패시터(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
레퍼런스 전압(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
비교기(130)는 샘플링 전압(Vo)의 인가에 의해 커패시터(C)가 점차적으로 충전되면서 커패시터(C)에 현재 충전된 전압이 레퍼런스 전압(Vref)을 초과하는 경우에 응답하여, 종료 신호(STOP)를 출력할 수 있다. 다시 말하면, 비교기(130)는 커패시터(C)에 현재 충전된 전압이 레퍼런스 전압(Vref)에 도달하는 경우에 응답하여, 종료 신호(STOP)를 출력할 수 있다.The
한편, 비교기(130)는 트리거 펄스(TRIGGER) 신호가 인가된 동안에만 활성화되어(또는 인에이블되어) 비교 동작을 수행할 수 있고, 이에 대해서는 이하 해당 부분에서 상세히 설명하도록 한다.On the other hand, the
시간-디지털 컨버터(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
한편, 도 4에 도시된 메모리 셀들(110), 커패시터(C), 비교기(130) 및 시간-디지털 컨버터(140)는 인-메모리 프로세싱 디바이스(100) 내 메모리 셀 어레이 상의 하나의 출력 라인(즉, 하나의 컬럼 라인)에 대응할 수 있다. 다만, 앞서 설명된 바와 같이, 메모리 셀 어레이에는 복수의 출력 라인들(즉, 복수의 컬럼 라인들)이 구비될 수 있다.Meanwhile, the
도 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
그래프(500)를 참고하면, 어느 컬럼 라인에서의 합성 저항 값은 해당 컬럼 라인에서의 MAC 연산 결과에 대응하는 합산 비트 값과 반비례 관계에 있음을 알 수 있다. 다시 말하면, 어느 컬럼 라인에서의 전류 합은 해당 컬럼 라인에서의 MAC 연산 결과에 대응하는 합산 비트 값과 비례 관계에 있음을 알 수 있다. 따라서, 이와 같은 상관 관계에 비추어 볼 때, 커패시터(C)에 인가되는 샘플링 전압(Vo)으로부터도 MAC 연산 결과가 추정될 수 있음을 알 수 있다.Referring to the
도 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-
인-메모리 프로세싱 디바이스(60) 내 메모리 셀 어레이(690)는 개별적으로 입력 신호를 수신 가능한 복수의 입력 라인들(로우 라인들) 및 개별적으로 출력 신호를 출력하는 복수의 출력 라인들(컬럼 라인들)을 포함할 수 있다. 입력 라인들(로우 라인들) 각각은 출력 라인들(컬럼 라인들)에 교차할 수 있다. 도 6에서는 비록, 입력 라인(로우 라인) 및 출력 라인(컬럼 라인)이 서로에 대해 수직으로 교차하는 것으로 도시되었으나, 이에 제한되는 것은 아니다.The
입력 라인들(로우 라인들) 각각에는 입력 신호(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)이 구비되어 있다.
메모리 셀들(610) 각각은 입력 라인들(로우 라인들) 중 해당 메모리 셀이 배치된 입력 라인(로우 라인)을 통해 입력 신호(입력 전압)을 수신하도록 구성될 수 있다. 예를 들어, 제 j 입력 라인(691)을 따라 배치된 메모리 셀들은 제 j 입력 신호(bj)를 시작 신호(START)에 응답하여 수신하도록 구성될 수 있다. Each of the
인-메모리 프로세싱 디바이스(60) 내 프로세싱 회로(600)는 출력 라인들(컬럼 라인들) 각각의 일단에 연결된 커패시터들(620) 및 비교기들(640)과, 시간-디지털 컨버터(TDC)(650) 및 출력부(660)를 포함할 수 있다.The
커패시터들(620)은 출력 라인(컬럼 라인)마다 개별적으로 배치되고, 어느 출력 라인(컬럼 라인)에 연결된 커패시터는 해당 출력 라인(컬럼 라인)의 전류 합에 대응하는 샘플링 전압을 충전하는 샘플링 회로를 구성한다.The
커패시터들(620)은 샘플링 전압의 인가에 의해 전하량이 점차적으로 증가되면서 충전될 수 있다. 예를 들어, 제 i 출력 라인(제 i 컬럼 라인)(692)에 배치된 커패시터(621)는, 제 i 출력 라인(제 i 컬럼 라인)(692)의 메모리 셀들의 저항 값들과 입력 신호들의 입력 전압들에 기초한 전류 합에 대응하는 전압(즉, 샘플링 전압)이 인가됨으로써 충전될 수 있다.The
한편, 출력 라인들(컬럼 라인들)에 연결된 커패시터들(620)은 샘플링 회로를 구성하고, 서로 동일한 커패시턴스를 가질 수 있다. 따라서, 커패시터들(620) 간의 시상수의 차이는 출력 라인들(컬럼 라인들) 각각의 합성 저항 값의 차이, 즉 출력 라인들(컬럼 라인들) 각각의 전류 합의 차이에 의존할 수 있다.Meanwhile, the
비교기들(640)은 출력 라인(컬럼 라인)마다 개별적으로 배치될 수 있다. 비교기들(640) 각각은 해당 출력 라인(컬럼 라인)의 커패시터들(620) 각각에 현재 충전된 전압이 레퍼런스 전압(Vref)에 도달하였는지 여부를 결정한다. 비교기들(640) 각각은, 연결된 커패시터들(620) 각각에 현재 충전된 전압이 레퍼런스 전압(Vref)에 도달한 것으로 비교된 경우, 도달한 시점에서 종료 신호(STOP)를 시간-디지털 컨버터(TDC)(650)로 출력한다.The
비교기들(640)은 비교 동작의 개시 신호로서 트리거 펄스(TRIGGER)를 수신한다. 즉, 비교기들(640)은 제어신호 생성기(630)로부터 트리거 펄스(TRIGGER)를 수신한 경우에만 활성화(인에이블)되고, 트리거 펄스(TRIGGER)를 수신하지 않은 경우에는 비활성화(디스에이블)된다. 트리거 펄스(TRIGGER)의 수신은, 하이(high)를 나타내는 펄스 신호를 수신한 것을 의미하나, 반드시 이에 제한되는 것은 아니다.The
제어신호 생성기(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
시간-디지털 컨버터(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
예를 들어, 제 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
출력부(660)는 시간-디지털 컨버터(TDC)(650)로부터 출력된 어느 출력 라인(컬럼 라인)에 대한 카운팅 값을 디지털 값(OUT)으로 출력할 수 있다. 구체적으로, 출력부(660)는 미리 설정된 양자화 레벨들 중 카운팅 값에 대응하는 양자화 레벨을 출력할 수 있다. 여기서, 출력된 양자화 레벨은 샘플링 전압으로부터 유래된 값으로서, 결국 해당 출력 라인(컬럼 라인)의 MAC 연산 결과에 대응한다.The
시간-디지털 컨버터(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
레퍼런스 전압(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
컬럼 라인(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
따라서, 컬럼 라인(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
컬럼 라인(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인 양자화 레벨에 대응할 수 있다.
서브-시간 구간(701)과 서브-시간 구간(702) 사이의 시간 구간은, 나머지 양자화 레벨들에 대응하는 서브-시간 구간들을 포함하고, 나머지 양자화 레벨들의 개수에 따라 동일한 간격들을 갖도록 구분될 수 있다. 다만, 이에 제한되지 않고, 나머지 양자화 레벨들에 대응하는 서브-시간 구간들의 간격들은 동일하지 않도록 구분될 수도 있다. 예를 들어, MAC 연산 결과에 대한 일반적 시뮬레이션 결과에 따르면, 대부분의 MAC 연산 결과의 값들은 가우시안 분포에 의해 정규화되는 것으로 획득될 수 있다. 따라서, 가우시안 분포에 기초하여, 양자화 레벨들에 대응하는 서브-시간 구간들 간격들이 서로 다르게 설정될 수도 있다.The time interval between the
도 7을 참고하면, 그래프(700)에서 서브-시간 구간(701)부터 서브-시간 구간(702)으로 갈수록 양자화 레벨이 1 레벨씩 증가하는 것으로 설정될 수 있다.Referring to FIG. 7 , in the
다만, 이에 제한되지 않고, 서브-시간 구간(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
도 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
종료 신호(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
트리거 펄스(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
비교기들(920)은 비교 동작의 개시 신호로서 트리거 펄스(TRIGGER)를 수신하고, 비교기들(920) 각각에 연결된 커패시터에 현재 충전된 전압과 레퍼런스 전압을 비교한다. 비교기들(920) 각각은 비교기들(920) 각각에 연결된 커패시터에 현재 충전된 전압이 레퍼런스 전압에 도달한 것으로 검출된 경우, 도달한 시점에서 종료 신호(STOP)를 시간-디지털 컨버터(TDC)(930)로 출력한다.The
비교기들(920) 각각은 래치 비교기(latched comparator) 타입으로 구현될 수 있다. 따라서, 비교기들(920)은 트리거 펄스(TRIGGER)의 하강 에지에서 비교 결과를 출력할 수 있다. 예를 들어, 비교기 s가 어느 시점에서 커패시터의 충전 전압이 레퍼런스 전압에 도달한 것을 검출한 경우, 비교기 s는 해당 시점에 대응하는 트리거 펄스(TRIGGER)의 하강 에지에서 종료 신호(STOP)를 비교기 s에 연결된 시간-디지털 컨버터(TDC)(930)의 플립플롭으로 출력할 수 있다.Each of the
한편, 비교기들(920) 중에서 종료 신호(STOP)가 출력된 비교기는 종료 신호(STOP)의 출력이 완료되었음을 나타내는 신호(done)가 피드백될 수 있고, 신호(done)가 피드백된 비교기는 비활성화(디스에이블)될 수 있다.On the other hand, among the
시간-디지털 컨버터(TDC)(930)는 비교기들(920) 각각에 연결된 플립플롭들(935)을 포함한다. 플립플롭들(935)은 카운터(913)로부터 수신된 카운팅 펄스(COUNT)에 의해 활성화(인에이블)될 수 있다.A time-to-digital converter (TDC) 930 includes flip-
플립플롭들(935) 각각은 카운팅 펄스(COUNT)가 인가되고 있는 동안 비교기들(920) 각각으로부터 종료 신호(STOP)가 수신되면 종료 신호(STOP)가 수신된 시점에서의 현재 카운팅 값(Tout)을 래치(latch)한다. 예를 들어, 비교기 s에 연결된 플립플롭이 카운팅 펄스(COUNT)가 인가되고 있는 동안 비교기 s로부터 종료 신호(STOP)를 수신하면, 플립플롭은 카운팅 펄스(COUNT)의 현재 카운팅 값(Tout_s)을 출력한다.Each of flip-
이와 같이, 시간-디지털 컨버터(TDC)(930) 내 구비된 플립플롭들(935) 각각은 종료 신호(STOP)의 수신 시점에 대응하는 카운팅 값(Tout)을 개별적으로 출력함으로써, 메모리 셀 어레이의 컬럼 라인들(출력 라인들) 각각에 대한 시간-디지털 컨버팅을 수행할 수 있다. 앞서 설명된 바와 같이, 프로세싱 회로(600)는 각 컬럼 라인(출력 라인) 별 카운팅 값(Tout)에 대응하는 양자화 레벨의 디지털 값을 매핑하고, 각 컬럼 라인(출력 라인) 별 매핑된 양자화 레벨의 디지털 값(예를 들어, k비트 해상도)을 출력할 수 있다.In this way, each of the flip-
도 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
먼저, 시점(tb)에서 비교기(1022)는 커패시터(Cy)에 현재 충전된 전압이 레퍼런스 전압(Vref)에 도달한 것으로 판단하고, 종료 신호(STOP @tb)를 시간-디지털 컨버터(TDC)(1030)의 플립플롭(1032)로 출력한다. 한편, 종료 신호(STOP @tb)의 출력이 완료된 비교기(1022)는 비활성화(디스에이블)될 수 있다.First, at a time point (t b ), the
시간-디지털 컨버터(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-
다음으로, 시점(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
시점(tc)에서 비교기(1023)는 종료 신호(STOP @tc)를 플립플롭(1033)로 출력한다. 종료 신호(STOP @tc)의 출력이 완료된 비교기(1021)는 비활성화(디스에이블)될 수 있다. 플립플롭(1033)은 종료 신호(STOP @tc)가 수신된 시점(tc)에서의 카운팅 펄스(COUNT)의 카운팅 값(Tout @tc)을 래치한다.At a time point t c , the
인-메모리 프로세싱 디바이스 내의 프로세싱 회로는 상술한 바와 같은 시간-디지털 컨버팅을 통해, 각 컬럼 라인(출력 라인) 별 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
1102 단계에서, 메모리 셀 어레이(690)의 각각의 로우 라인을 통해 복수의 메모리 셀들(610)에 입력 신호가 인가된다.In
1103 단계에서, 프로세싱 회로(600)의 커패시터들(620) 각각은 메모리 셀 어레이(690)의 각각의 컬럼 라인을 통해 흐르는 컬럼 전류의 전류 합에 대응하는 샘플링 전압을 충전한다.In
1104 단계에서, 프로세싱 회로(600)의 제어신호 생성기(630)는 설정된 양자화 레벨에 기초하여, 제어신호(트리거 펄스(TRIGGER) 및 카운팅 펄스(COUNT))를 생성한다. 트리거 펄스(TRIGGER)는 비교기들(640)로 인가되고, 카운팅 펄스(COUNT)는 시간-디지털 컨버터(TDC)(650)로 인가된다.In
1105 단계에서, 프로세싱 회로(600)의 비교기들(640)은 트리거 펄스(TRIGGER)가 인가되는 동안, 각각에 연결된 커패시터들(620)에 현재 충전된 전압(Vc)과 레퍼런스 전압(Vref)을 비교한다.In
1106 단계에서, 비교기들(640) 각각은 커패시터들(620)에 현재 충전된 전압(Vc)이 레퍼런스 전압(Vref)에 도달하였는지 여부를 판단한다. 현재 충전된 전압(Vc)이 레퍼런스 전압(Vref)에 도달한 것으로 결정한 비교기는 종료 신호(STOP)를 시간-디지털 컨버터(TDC)(650)로 출력하고, 1107 단계가 수행된다. 그렇지 않으면, 1106 단계가 다시 수행된다.In
1107 단계에서, 종료 신호(STOP)를 출력한 비교기는 비활성화(디스에이블)된다.In
1108 단계에서, 프로세싱 회로(600)의 시간-디지털 컨버터(TDC)(650)는 카운팅 펄스(COUNT)의 현재 카운팅 값을 출력하는 시간-디지털 컨버팅을 수행한다.In
1109 단계에서, 프로세싱 회로(600)의 출력부(660)는 카운팅 값에 대응하는 양자화 레벨의 디지털 값을 출력한다. In
도 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
컴퓨팅 장치(1200)는 호스트 프로세서(1210), RAM(1220), 인-메모리 프로세싱 디바이스(1230), 메모리 디바이스(1240), 센서 모듈(1250) 및 통신 모듈(1260)을 포함할 수 있다. 컴퓨팅 장치(1200)는 입출력 모듈, 보안 모듈, 전력 제어 장치 등을 더 포함할 수 있다. 컴퓨팅 장치(1200)의 하드웨어 구성들 중 일부는 적어도 하나의 반도체 칩에 탑재될 수 있다. 인-메모리 프로세싱 디바이스(1230)는 앞서 도면들에서 설명된 인-메모리 프로세싱 디바이스를 포함하는 장치로서, 뉴럴 네트워크 전용 하드웨어 가속기 자체 또는 이를 포함하는 뉴럴 네트워크 장치에 해당할 수 있다.The
호스트 프로세서(1210)는 컴퓨팅 장치(1200)의 전반적인 동작을 제어한다. 호스트 프로세서(1210)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(multi-core)을 포함할 수 있다. 호스트 프로세서(1210)는 메모리 디바이스(1240)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 호스트 프로세서(1210)는 메모리 디바이스(1240)에 저장된 프로그램들을 실행함으로써, 인-메모리 프로세싱 디바이스(1230)의 기능을 제어할 수 있다. 호스트 프로세서(1210)는 CPU, GPU, AP 등으로 구현될 수 있다.The
RAM(1220)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대 메모리 디바이스(1240)에 저장된 프로그램들 및/또는 데이터는 호스트 프로세서(1210)의 제어 또는 부팅 코드에 따라 RAM(1220)에 일시적으로 저장될 수 있다. RAM(1220)은 DRAM(Dynamic RAM) 또는 SRAM(Static RAM) 등의 메모리로 구현될 수 있다. The
인-메모리 프로세싱 디바이스(1230)는 앞서 도면들에서 설명된 뉴로모픽 연산, 예를 들어 MAC 연산을 수행하고, MAC 연산 결과를 출력할 수 있다. 다만, 인-메모리 프로세싱 디바이스(1230)는 이 밖에도 다양한 인-메모리 컴퓨팅을 수행할 수 있다.The in-
메모리 디바이스(1240)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 실시예에 있어서, 메모리 디바이스(1240)는 인-메모리 프로세싱 디바이스(1230)의 연산 수행 과정에 필요한 데이터들(예를 들어, 입력 신호 데이터, 웨이트 데이터 등)과 연산 결과 데이터(예를 들어, MAC 연산 결과(즉, 양자화 레벨 데이터) 등)을 저장할 수 있다.The
메모리 디바이스(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
센서 모듈(1250)은 컴퓨팅 장치(1200)가 탑재되는 전자 장치 주변의 정보를 수집할 수 있다. 센서 모듈(1250)은 전자 장치의 외부로부터 신호(예컨대 영상 신호, 음성 신호, 자기 신호, 생체 신호, 터치 신호 등)를 센싱 또는 수신하고, 센싱 또는 수신된 신호를 데이터로 변환할 수 있다. 이를 위해, 센서 모듈(1250)은 센싱 장치, 예컨대 마이크, 촬상 장치, 이미지 센서, 라이더(LIDAR; light detection and ranging) 센서, 초음파 센서, 적외선 센서, 바이오 센서, 및 터치 센서 등 다양한 종류의 센싱 장치 중 적어도 하나를 포함할 수 있다. The
센서 모듈(1250)은 변환된 데이터를 인-메모리 프로세싱 디바이스(1230)에 입력 데이터로서 제공할 수도 있다. 예를 들어, 센서 모듈(1250)은 이미지 센서를 포함할 수 있으며, 전자 장치의 외부 환경을 촬영하여 비디오 스트림을 생성하고, 비디오 스트림의 연속하는 데이터 프레임을 인-메모리 프로세싱 디바이스(1230)에 입력 데이터로서 순서대로 제공할 수 있다. 그러나 이에 제한되는 것은 아니며 센서 모듈(1250)은 다양한 종류의 데이터를 인-메모리 프로세싱 디바이스(1230)에 제공할 수 있다. The
통신 모듈(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
도 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
뉴럴 네트워크(1300)에서 출력 레이어(output layer)를 제외한 레이어들의 인공 노드들은 출력 신호를 전송하기 위한 링크들을 통해 다음 레이어의 인공 노드들과 연결될 수 있다. 이들 링크를 통해 인공 노드에는 이전 레이어에 포함된 인공 노드들의 가중된 입력들(weighted inputs)에 관한 활성 함수(activation function)의 출력이 입력될 수 있다. 가중된 입력은 인공 노드의 입력(노드값)에 웨이트(weight)가 곱해진 것으로, 입력은 액손 값들에 해당하고, 웨이트는 시냅틱 웨이트들에 해당한다. 웨이트는 뉴럴 네트워크(1300)의 파라미터로 지칭될 수 있다. 활성 함수는 시그모이드(sigmoid), 하이퍼볼릭 탄젠트(hyperbolic tangent; tanh) 및 렐루(rectified linear unit; ReLU)를 포함할 수 있고, 활성 함수에 의해 뉴럴 네트워크(1300)에 비선형성이 형성될 수 있다. In the
딥러닝 알고리즘 구동을 위한 인-메모리 프로세싱(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
수학식 1은 임의의 레이어에서 m개의 입력 값에 대한 i번째 노드(1321)의 출력 값 yi를 나타낼 수 있다. xj는 이전 레이어의 j번째 노드의 출력 값을 나타낼 수 있고, wj,i는 j번째 노드의 출력 값 및 현재 레이어의 i번째 노드(1321)에 적용되는 웨이트를 나타낼 수 있다. f()는 활성 함수를 나타낼 수 있다. 수학식 1에 나타난 바와 같이, 활성 함수에 대해, 입력값 xj 및 웨이트 wj,i의 곱셈 누적 결과가 사용될 수 있다. 다시 말해, 원하는 시점에 적절한 입력 값 xj 및 가중치 wj,i을 곱하고 더하는 연산(MAC 연산)이 반복될 수 있다. 이러한 용도 외에도, MAC 연산을 필요로 하는 다양한 응용분야가 있으며, 이를 위해 아날로그 영역에서 MAC 연산을 처리할 수 있는 뉴로모픽 장치가 사용될 수 있다.
인-메모리 프로세싱 디바이스의 복수의 메모리 셀들은, 복수의 노드들을 포함하는 하나 이상의 레이어로 구성되는 뉴럴 네트워크(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
한편, 인-메모리 프로세싱 디바이스의 적용은 반드시 뉴로모픽 연산에만 한정되는 것은 아니고, 이 밖에도 아날로그 회로 특성을 사용한 복수 입력 데이터를 저전력으로 빠르게 처리해야 하는 연산에도 활용될 수 있다.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
1402 단계에서, 프로세싱 회로(600)는 메모리 셀 어레이(690)의 각각의 컬럼 라인을 통해 흐르는 컬럼 전류의 전류 합에 대응하는 샘플링 전압을 각각의 컬럼 라인에 연결된 커패시터(620)에 충전한다.In
1403 단계에서, 프로세싱 회로(600)는 커패시터(620)의 충전 시간에 따라 구분된 양자화 레벨들 중 소정의 양자화 레벨에 대응하는 타이밍에 생성된 트리거 펄스를 비교기들에 인가함으로써 커패시터(620)에 현재 충전된 전압과 레퍼런스 전압 간의 비교 동작을 수행한다.In
1404 단계에서, 프로세싱 회로(600)는 현재 충전된 전압이 레퍼런스 전압에 도달한 시점에서 시간-디지털 컨버팅을 수행함으로써 샘플링 전압에 대응하는 양자화 레벨을 결정한다.In
한편, 상술한 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 실시예들에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.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)
입력 신호들이 각각의 로우(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.
상기 프로세싱 회로는
상기 소정의 양자화 레벨에 대응하는 상기 타이밍에 상기 트리거 펄스를 생성하고, 상기 트리거 펄스의 생성에 동기화되어 카운팅 펄스를 생성하는 제어신호 생성기; 및
상기 트리거 펄스의 인가에 의해 활성화되는 상기 컬럼 라인 별로 연결된 비교기들을 포함하는, 장치.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.
상기 양자화 레벨들 각각은
상기 커패시터에 상기 샘플링 전압이 충전되기까지 충전 전압이 변화되는 총 시간 구간으로부터 구분된 서브-시간 구간들 각각에 대응하는, 장치.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.
상기 서브-시간 구간들은
상기 메모리 셀들의 저항 값 및 상기 커패시터의 커패시턴스 중 적어도 하나에 기초하여 결정되는, 장치.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 레벨 큰 양자화 레벨인, 장치.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.
상기 프로세싱 회로는
상기 비교 동작의 개시 신호로서 상기 트리거 펄스를 수신하고, 상기 커패시터에 현재 충전된 전압이 상기 레퍼런스 전압에 도달한 것으로 비교된 경우 상기 도달한 시점에서 종료 신호를 출력하는, 상기 컬럼 라인 별로 연결된 비교기들; 및
상기 종료 신호가 수신된 경우, 상기 종료 신호가 수신된 시점에서 상기 트리거 펄스에 동기화되어 인가된 카운팅 펄스의 카운팅 값을 디지털 값으로 출력하는 시간-디지털 컨버터(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.
상기 시간-디지털 컨버터(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.
상기 비교기들 중에서 상기 종료 신호가 출력된 비교기는 비활성화되는, 장치.7. The method of claim 6,
and a comparator outputting the end signal among the comparators is deactivated.
상기 비교기들은 래치 비교기(latched comparator) 타입으로 구현되는, 장치.The method of claim 1,
wherein the comparators are implemented as a latched comparator type.
상기 트리거 펄스는
상기 양자화 레벨들 중 최대 양자화 레벨보다 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.
상기 양자화 레벨들 중 최소 양자화 레벨은 하나의 컬럼 라인에 포함된 복수의 메모리 셀들이 최대 합성 저항을 갖는 경우에 대응하고,
상기 양자화 레벨들 중 최대 양자화 레벨은 하나의 컬럼 라인에 포함된 복수의 메모리 셀들이 최소 합성 저항을 갖는 경우에 대응하는,
장치.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.
상기 프로세싱 회로는
상기 소정의 양자화 레벨에 대응하는 상기 타이밍에 상기 트리거 펄스를 생성하고, 상기 트리거 펄스의 생성에 동기화되어 카운팅 펄스를 생성하는 제어신호 생성기; 및
상기 트리거 펄스의 인가에 의해 활성화되는 상기 컬럼 라인 별로 연결된 비교기들을 포함하는, 컴퓨팅 장치.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.
상기 양자화 레벨들은
상기 커패시터에 상기 샘플링 전압이 충전되기까지 충전 전압이 변화되는 총 시간 구간으로부터 구분된 서브-시간 구간들 각각에 대응하는, 컴퓨팅 장치.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.
상기 트리거 펄스가 인가되는 상기 타이밍에 대응하는 상기 소정의 양자화 레벨은, 상기 양자화 레벨들 중 최소 양자화 레벨보다 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.
상기 프로세싱 회로는
상기 비교 동작의 개시 신호로서 상기 트리거 펄스를 수신하고, 상기 커패시터에 현재 충전된 전압이 상기 레퍼런스 전압에 도달한 것으로 비교된 경우 상기 도달한 시점에서 종료 신호를 출력하는, 상기 컬럼 라인 별로 연결된 비교기들; 및
상기 종료 신호가 수신된 경우, 상기 종료 신호가 수신된 시점에서 상기 트리거 펄스에 동기화되어 인가된 카운팅 펄스의 카운팅 값을 디지털 값으로 출력하는 시간-디지털 컨버터(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.
상기 시간-디지털 컨버터(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.
상기 비교기들 중에서 상기 종료 신호가 출력된 비교기는 비활성화되는, 컴퓨팅 장치.17. The method of claim 16,
The comparator to which the end signal is output among the comparators is deactivated.
메모리 셀 어레이의 각각의 로우(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.
상기 소정의 양자화 레벨에 대응하는 상기 타이밍에 상기 트리거 펄스를 생성하는 단계; 및
상기 트리거 펄스의 생성에 동기화된 카운팅 펄스를 생성하는 단계를 더 포함하고,
상기 양자화 레벨을 결정하는 단계는
시간-디지털 컨버터(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
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)
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)
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 |
-
2020
- 2020-05-22 KR KR1020200061746A patent/KR20210144417A/en active Search and Examination
- 2020-11-03 CN CN202011211418.9A patent/CN113707193A/en active Pending
-
2021
- 2021-01-05 US US17/141,474 patent/US11587616B2/en active Active
- 2021-05-06 EP EP21172460.4A patent/EP3913629B1/en active Active
- 2021-05-21 JP JP2021085813A patent/JP2021185479A/en active Pending
-
2022
- 2022-11-22 US US17/992,143 patent/US11804266B2/en active Active
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 |