KR102208604B1 - Processing in memory capable of unsupervised learning and operation method thereof - Google Patents
Processing in memory capable of unsupervised learning and operation method thereof Download PDFInfo
- Publication number
- KR102208604B1 KR102208604B1 KR1020180171084A KR20180171084A KR102208604B1 KR 102208604 B1 KR102208604 B1 KR 102208604B1 KR 1020180171084 A KR1020180171084 A KR 1020180171084A KR 20180171084 A KR20180171084 A KR 20180171084A KR 102208604 B1 KR102208604 B1 KR 102208604B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory cell
- read
- circuit unit
- peripheral circuit
- memory
- Prior art date
Links
Images
Classifications
-
- 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/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1673—Reading or sensing circuits or methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- 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/08—Learning methods
-
- 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/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/161—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect details concerning the memory cell structure, e.g. the layers of the ferromagnetic memory cell
-
- 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/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1675—Writing or programming circuits or methods
Abstract
본 출원의 일 실시예에 따르는 프로세싱 인 메모리는 적어도 하나의 메모리셀에 대한 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치를 업데이트하는 메모리셀 어레이 및 기설정된 그레이 코드에 기초하여, 상기 적어도 하나의 메모리셀에 대해 하나의 메모리셀 단위로 라이트동작을 수행하는 주변회로부를 포함한다. The processing-in-memory according to the exemplary embodiment of the present application includes a memory cell array for updating a synaptic weight and a preset gray code based on a switching probability of binary state data for at least one memory cell, and the at least one It includes a peripheral circuit unit that performs a write operation on the memory cell in units of one memory cell.
Description
본 출원은, 프로세싱 인 메모리 및 그 동작 방법에 관한 것으로, 보다 구체적으로, 비지도 학습을 지원하는 저항성 메모리셀의 소자 개수를 최소화시킬 수 있는 프로세싱 인 메모리 및 그 동작 방법에 관한 것이다. The present application relates to a processing in memory and a method of operating the same, and more specifically, to a processing in memory capable of minimizing the number of elements of a resistive memory cell supporting unsupervised learning, and a method of operating the same.
뇌의 동작을 모방한 비지도 학습방법을 이용하는 뉴로모픽(Neuromorphic) 하드웨어들이 개발되고 있다. 이러한 뉴로모픽 하드웨어들은 비지도 학습방법을 지원하기 위하여, 많은 데이터를 연산 처리해야 하고, 또한, 빈번하게 메모리를 접근할 수 있다. 이로 인하여, 뉴로모픽 하드웨어들 장치의 면적은 점점 커지고, 이에 따른 에너지 소모량이 증가하는 문제가 있다. Neuromorphic hardware using an unsupervised learning method that mimics the behavior of the brain is being developed. In order to support the unsupervised learning method, these neuromorphic hardware have to process a lot of data and can access memory frequently. Accordingly, there is a problem that the area of the neuromorphic hardware device is gradually increased, and thus the amount of energy consumption increases.
최근, 뉴로모픽 하드웨어는 저항성 메모리셀을 이용하여, 메모리장치의 내부에서 연산을 수행하는 인 메모리 컴퓨팅(In-memory computing)이 개발중에 있다. 여기서, 인 메모리 컴퓨팅(In-Memory Computing)은 메모리 외부에서 복잡한 확률계산을 할 필요없이, 전류만 조절하여 메모리셀을 리드하는 동작으로, 메모리셀의 확률적인 스위칭에 의한 비지도 학습이 수행될 수 있다. Recently, in neuromorphic hardware, in-memory computing, which performs an operation inside a memory device using a resistive memory cell, is under development. Here, in-memory computing is an operation of reading a memory cell by adjusting only current without the need to perform a complex probability calculation outside the memory, and unsupervised learning can be performed by probabilistic switching of the memory cell. have.
즉, 인 메모리 컴퓨팅(In-memory computing)은, 뉴로모픽 하드웨어에서 가장 많이 수행되는 MAC (Multiply-and-accumulate)연산을 메모리 내부에서 수행가능하게 할 수 있다. 이때, 인 메모리 컴퓨팅은 SOT 또는 STT 메모리장치의 저항성 메모리셀에 대한 확률적인 스위칭 특징을 이용하여, 메모리 내부에서 복잡한 비지도 학습을 간단하게 수행하게 할 수 있다. That is, in-memory computing may enable multiply-and-accumulate (MAC) operations that are most frequently performed in neuromorphic hardware to be performed inside a memory. In this case, in-memory computing can simply perform complex unsupervised learning inside the memory by using the stochastic switching feature of the resistive memory cell of the SOT or STT memory device.
그러나, 종래의 인 메모리 컴퓨팅(In-memory computing)은 비지도 학습에서, 하나의 시냅스 당 2N-1 개의 저항성 메모리셀들을 필요로 하기 때문에, 연산 정확도를 높이기 위하여, 하나의 시냅스가 멀티비트인 경우, 보다 많은 개수의 저항성 메모리셀들이 필요하게 된다. However, since conventional in-memory computing requires 2 N-1 resistive memory cells per one synapse in unsupervised learning, in order to increase computational accuracy, one synapse is multi-bit. In this case, a larger number of resistive memory cells are required.
이에 따라, 종래의 인 메모리 컴퓨팅(In-memory computing)은 보다 많은 저항성 메모리셀들에 필요에 의해 메모리 장치의 면적증가를 초래하고, 리드동작에 따른 에너지 소모가 증가되는 문제가 있다. Accordingly, conventional in-memory computing has a problem in that an area of a memory device is increased due to the need for more resistive memory cells, and energy consumption according to a read operation is increased.
본 출원의 목적은, 비지도 학습을 지원하는 저항성 메모리셀의 소자 개수를 최소화시킬 수 있는 프로세싱 인 메모리 및 그 동작 방법을 제공하기 위한 것이다. An object of the present application is to provide a processing in-memory capable of minimizing the number of elements of a resistive memory cell supporting unsupervised learning and a method of operating the same.
본 출원의 일 실시예에 따르는 프로세싱 인 메모리는 적어도 하나의 메모리셀에 대한 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치를 업데이트하는 메모리셀 어레이 및 상기 적어도 하나의 메모리셀에 대해 Modified 그레이 코드에 기초하여, 하나의 메모리셀 단위로 라이트동작을 수행하는 주변회로부를 포함한다. The processing in-memory according to the embodiment of the present application includes a memory cell array for updating a synaptic weight value based on a switching probability of binary state data for at least one memory cell, and a modified gray code for the at least one memory cell. Based on this, it includes a peripheral circuit unit that performs a write operation in units of one memory cell.
실시예에 있어서, 상기 주변회로부는, 상기 라이트동작 이전에 상기 적어도 하나의 메모리셀에 대해 리드동작을 개별적으로 수행한다. In an embodiment, the peripheral circuit unit individually performs a read operation on the at least one memory cell before the write operation.
실시예에 있어서, 상기 주변회로부는, 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인으로 리드전압을 인가하고, 각 리드 워드라인으로 기준전압을 인가한다. In an embodiment, the peripheral circuit unit applies a read voltage to each read bit line connected to the at least one memory cell, and applies a reference voltage to each read word line.
실시예에 있어서, 상기 주변회로부는, 상기 적어도 하나의 메모리셀에 연결된 각 컬럼 비트라인으로 흐르는 각 리드전류를 개별적으로 리드한다. In an embodiment, the peripheral circuit unit individually reads each read current flowing to each column bit line connected to the at least one memory cell.
실시예에 있어서, 상기 주변회로부는, 상기 각 컬럼 비트라인을 통해 각 리드전류를 리드하는 읽기회로부를 포함하고, 상기 읽기회로부는, 복수의 감지증폭기들과 복수의 아날로그 디지털 컨버터들을 포함하며, 상기 복수의 감지증폭기들과 상기 복수의 아날로그 디지털 컨버터들 중 각 리드전류를 리드하는 감지증폭기 및 아날로그 디지털 컨버터의 동작 개수는 상기 컬럼 비트라인의 개수에 일대일 대응된다. In an embodiment, the peripheral circuit unit includes a read circuit unit for reading each read current through each column bit line, and the read circuit unit includes a plurality of sensing amplifiers and a plurality of analog to digital converters, the The number of operations of the sense amplifiers and the sense amplifiers and analog-to-digital converters that lead each read current among the plurality of sense amplifiers and the plurality of analog-to-digital converters corresponds to the number of column bit lines one-to-one.
실시예에 있어서, 상기 주변회로부는, 상기 적어도 하나의 메모리셀에 연결된 서로 동일한 컬럼 비트라인으로 흐르는 각 리드전류를 한번에 리드한다. In an embodiment, the peripheral circuit unit reads each read current flowing through the same column bit line connected to the at least one memory cell at a time.
실시예에 있어서, 상기 주변회로부는, 상기 컬럼 비트라인으로 흐르는 상기 각 리드전류의 합에 기초하여, MAC(Multiply and ACcumulate) 연산을 수행한다. In an embodiment, the peripheral circuit unit performs a multiply and accumulate (MAC) operation based on the sum of the read currents flowing through the column bit line.
실시예에 있어서, 상기 주변회로부는, 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인바로 리드전압을 인가하고, 상기 적어도 하나의 메모리셀과 연결된 각 컬럼리드 워드라인으로 기준전압을 인가한다. In an embodiment, the peripheral circuit unit applies a read voltage to each read bit line bar connected to the at least one memory cell, and applies a reference voltage to each column lead word line connected to the at least one memory cell.
실시예에 있어서, 상기 주변회로부는, 상기 라이트동작을 수행할 때, 상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인으로 제1 라이트전압을 인가하고, 상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인 바로 제2 라이트전압을 인가하며, 상기 적어도 하나의 메모리셀에 연결된 각 컬럼라이트 워드라인으로 기준전압을 인가한다. In an embodiment, the peripheral circuit unit, when performing the write operation, applies a first write voltage to each read bit line connected to the at least one memory cell, and applies a first write voltage to each read bit line connected to the at least one memory cell. A second write voltage is applied directly to the line, and a reference voltage is applied to each column write word line connected to the at least one memory cell.
실시예에 있어서, 상기 메모리셀 어레이는, 상기 제1 및 제2 라이트전압과 상기 기준전압에 따라, 상기 시냅스가중치를 업데이트한다. In an embodiment, the memory cell array updates the synaptic weight value according to the first and second write voltages and the reference voltage.
실시예에 있어서, 상기 Modified 그레이 코드는, 기설정된 그레이 코드의 변환 순서로부터 일부의 코드 순서가 변경된 코드이다. In an embodiment, the modified gray code is a code in which a partial code order is changed from a preset gray code conversion order.
실시예에 있어서, 상기 적어도 하나의 메모리셀의 개수는 상기 시냅스가중치의 비트 개수에 일대일로 대응된다. In an embodiment, the number of the at least one memory cell corresponds to the number of bits of the synaptic weight on a one-to-one basis.
실시예에 있어서, 상기 시냅스가중치의 비트 개수는 상기 Modified 그레이 코드의 비트 개수에 일대일로 대응된다. In an embodiment, the number of bits of the synaptic weight corresponds to the number of bits of the modified gray code on a one-to-one basis.
실시예에 있어서, 상기 적어도 하나의 메모리셀들은 STT(spin-torque transfer) 메모리셀 또는 SOT (Spin-Orbit Torque) 메모리셀 중 적어도 어느 하나이다. In an embodiment, the at least one memory cell is at least one of a spin-torque transfer (STT) memory cell or a spin-orbit torque (SOT) memory cell.
본 출원의 일 실시예에 따르는 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법으로서, 주변회로부가 Modified 그레이 코드에 대응되는 이진상태 데이터가 저장된 적어도 하나의 메모리셀에 대해 리드동작을 개별적으로 수행하는 단계, 상기 주변회로부가 상기 Modified 그레이 코드에 기초하여, 상기 적어도 하나의 메모리셀에 대해 하나의 메모리셀 단위로 라이트동작을 수행하는 단계 및 메모리셀 어레이가 상기 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치를 업데이트하는 단계를 포함한다. A method of operating a processing-in-memory supporting unsupervised learning according to an embodiment of the present application, wherein a peripheral circuit unit individually performs a read operation on at least one memory cell in which binary state data corresponding to a modified gray code is stored. The peripheral circuit unit performing a write operation for the at least one memory cell in units of one memory cell based on the modified gray code, and the memory cell array based on a switching probability of the binary state data, Updating the synaptic weight.
실시예에 있어서, 상기 리드동작을 개별적으로 수행하는 단계는, 상기 주변회로부가 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인으로 리드전압을 인가하고, 각 리드 워드라인으로 기준전압을 인가하는 단계 및 상기 주변회로부가 상기 적어도 하나의 메모리셀로부터 각 컬럼 비트라인으로 흐르는 각 리드전류를 리드하는 단계를 포함한다. In an embodiment, the individually performing the read operation includes: applying a read voltage to each read bit line connected to the at least one memory cell by the peripheral circuit unit and applying a reference voltage to each read word line. And reading, by the peripheral circuit unit, each read current flowing from the at least one memory cell to each column bit line.
실시예에 있어서, 상기 주변회로부가 컬럼라인을 통해 서로 연결된 상기 적어도 하나의 메모리셀에 대해 리드동작을 동시에 수행하는 단계를 더 포함한다. In an embodiment, the method further includes simultaneously performing a read operation on the at least one memory cell connected to each other through a column line by the peripheral circuit unit.
실시예에 있어서, 상기 리드동작을 동시에 수행하는 단계는, 상기 주변회로부가 각 리드전류의 합에 기초하여, 멤브레인 전위를 업데이트하는 MAC 연산을 수행하는 단계를 포함한다. In an embodiment, the simultaneously performing the read operation includes performing a MAC operation for updating the membrane potential by the peripheral circuit unit based on the sum of the respective read currents.
실시예에 있어서, 상기 라이트동작을 수행하는 단계는, 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인바로 리드전압을 인가하고, 상기 적어도 하나의 메모리셀과 연결된 각 컬럼리드 워드라인으로 기준전압을 인가하는 단계 및 상기 적어도 하나의 메모리셀을 통해 각 리드 비트라인으로 흐르는 제2 리드전류를 각각 리드하는 단계를 더 포함한다. In an embodiment, in the performing of the write operation, a read voltage is applied to each read bit line bar connected to the at least one memory cell, and a reference voltage is applied to each column lead word line connected to the at least one memory cell. The step of applying and reading the second read current flowing to each read bit line through the at least one memory cell, respectively.
실시예에 있어서, 상기 라이트동작을 수행하는 단계는, 상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인으로 제1 라이트전압을 인가하는 단계, 상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인 바로 제2 라이트전압을 인가하는 단계 및 상기 적어도 하나의 메모리셀에 연결된 각 컬럼라이트 워드라인으로 기준전압을 인가하는 단계를 포함한다. In an embodiment, the performing of the write operation comprises: applying a first write voltage to each read bit line connected to the at least one memory cell, and immediately removing each read bit line connected to the at least one memory cell. 2 applying a write voltage and applying a reference voltage to each column write word line connected to the at least one memory cell.
본 출원의 실시예에 따른 프로세싱 인 메모리 및 그 동작 방법은, 비지도 학습을 지원하는 메모리셀의 개수를 최소화시켜, 메모리장치의 면적과 에너지소모를 감소킬 수 있는 효과가 있다. The processing-in-memory and its operation method according to the exemplary embodiment of the present application have an effect of minimizing the number of memory cells supporting unsupervised learning, thereby reducing the area and energy consumption of a memory device.
또한, 프로세싱 인 메모리는 이진상태 데이터에 대한 저장 동작과 비지도 학습에 대한 연산 동작을 수행할 수 있어, 지능형 반도체(Processing In Memory, PIM)에 활용될 수 있는 효과가 있다. In addition, the processing in memory can perform storage operations for binary state data and operation operations for unsupervised learning, and thus has an effect that can be utilized in an intelligent semiconductor (Processing In Memory, PIM).
도 1은 본 출원의 실시예에 따른 메모리 장치의 블록도이다.
도 2는 스파이킹 뉴럴 네트워크(SNN)의 개념도이다.
도 3은 도 1의 메모리셀 어레이에 대한 실시 예이다.
도 4는 도 1의 주변회로부에 대한 실시 예이다.
도 5는 도 1의 프로세싱 인 메모리의 MAC 연산을 위한 리드동작(READ)에 대한 실시 예이다.
도 6은 도 1의 프로세싱 인 메모리의 시냅스가중치(Synaptic Weight)의 업데이트를 위한 리드동작(READ)에 대한 실시 예이다.
도 7은 도 1의 프로세싱 인 메모리의 시냅스가중치(Synaptic Weight)의 업데이트를 위한 라이트동작(WRIGHT)에 대한 실시 예이다.
도 8은 비지도 학습을 지원하는 프로세싱 인 메모리의 동작프로세스이다.
도 9는 도 8의 주변회로부의 실시예에 따른 MAC 연산동작 프로세스이다.
도 10은 도 8의 주변회로부의 실시예에 따른 시냅스가중치에 대한 업데이트 동작 프로세스이다. 1 is a block diagram of a memory device according to an embodiment of the present application.
2 is a conceptual diagram of a spiking neural network (SNN).
3 is an embodiment of the memory cell array of FIG. 1.
4 is an embodiment of the peripheral circuit unit of FIG. 1.
5 is an embodiment of a read operation (READ) for a MAC operation of the processing in memory of FIG. 1.
6 is an embodiment of a read operation (READ) for updating a synaptic weight of a processing in memory of FIG. 1.
7 is an embodiment of a write operation WRIGHT for updating a synaptic weight of a processing in memory of FIG. 1.
8 is an operation process of a processing in-memory supporting unsupervised learning.
9 is a MAC operation operation process according to an embodiment of the peripheral circuit unit of FIG. 8.
10 is a process of updating synaptic weights according to the embodiment of the peripheral circuit of FIG. 8.
본 명세서에 개시되어 있는 본 출원의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 출원의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 출원의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.Specific structural or functional descriptions of the embodiments according to the concept of the present application disclosed in the present specification are exemplified only for the purpose of describing the embodiments according to the concept of the present application, and the embodiments according to the concept of the present application are It may be implemented in various forms and is not limited to the embodiments described herein.
본 출원의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 출원의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 출원의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.Since the embodiments according to the concept of the present application can apply various changes and have various forms, the embodiments will be illustrated in the drawings and described in detail in the present specification. However, this is not intended to limit the embodiments according to the concept of the present application to specific disclosed forms, and includes all changes, equivalents, or substitutes included in the spirit and scope of the present application.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 출원의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various elements, but the elements should not be limited by the terms. The terms are only for the purpose of distinguishing one component from other components, for example, without departing from the scope of the rights according to the concept of the present application, the first component may be named as the second component, and similarly The second component may also be referred to as a first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 사이의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being "connected" or "connected" to another component, it is understood that it may be directly connected or connected to the other component, but other components may exist in the middle. Should be. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle. Other expressions describing the relationship between components, such as "between" and "directly between" or "adjacent to" and "directly adjacent to" should be interpreted as well.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 출원을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this specification are only used to describe specific embodiments, and are not intended to limit the present application. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate the presence of implemented features, numbers, steps, actions, components, parts, or a combination thereof, but one or more other features or numbers It is to be understood that the possibility of addition or presence of, steps, actions, components, parts, or combinations thereof is not preliminarily excluded.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 출원이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this specification. Does not.
이하, 첨부한 도면을 참조하여 본 출원의 바람직한 실시 예를 설명함으로써, 본 출원을 상세히 설명한다.Hereinafter, the present application will be described in detail by describing a preferred embodiment of the present application with reference to the accompanying drawings.
도 1은 본 출원의 실시예에 따른 메모리 장치(10)의 블록도이고, 도 2는 스파이킹 뉴럴 네트워크(SNN)의 개념도이다. 1 is a block diagram of a
먼저, 도 1을 참조하면, 메모리 장치(10)는 메모리셀 어레이(100) 및 주변회로부(200)를 포함할 수 있다. First, referring to FIG. 1, the
메모리셀 어레이(100)는 복수의 메모리셀들(100_1~100_N)을 포함할 수 있다. 여기서, 복수의 메모리셀들(100_1~100_N)은 이진상태의 데이터를 각각 저장할 수 있다. 이때, 이진상태 데이터는 1 또는 0의 값을 가지는 데이터일 수 있다. The
실시예에 따라, 메모리셀 어레이(100)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대한 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치(Synaptic Weight)를 업데이트할 수 있다. 여기서, 시냅스가중치(Synaptic Weight)의 비트 개수는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)의 개수와 일대일 대응될 수 있다. According to an embodiment, the
보다 구체적으로, 복수의 메모리셀들(100_1~100_N) 중 적어도 하나의 메모리셀(예컨대, 100_1~100_3)은 주변회로부(200)의 라이트동작(WRIGHT)에 따라 선택적으로 흐르는 전류에 기초하여, 이진상태 데이터를 스위칭할 수 있다. 여기서, 이진상태 데이터의 스위칭 확률은 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 흐르는 전류의 크기 또는 전류의 듀레이션(Duration)에 따라, 가변될 수 있다. 이때, 각 메모리셀(예컨대, 100_1~100_3)에 흐르는 전류의 크기 또는 전류의 듀레이션(Duration)은 하나의 메모리셀 단위로 가변될 수 있다. More specifically, at least one of the plurality of memory cells 100_1 to 100_N (for example, 100_1 to 100_3) is based on a current selectively flowing according to the write operation WRIGHT of the
즉, 주변회로부(200)의 라이트동작(WRIGHT)에 따라 가변되는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대한 이진상태 데이터의 스위칭 확률에 기초하여, 메모리셀 어레이(100)는 시냅스가중치(Synaptic Weight)를 업데이트할 수 있다. 이에 따라, 프로세싱 인 메모리(10)는 이진상태 데이터를 저장할 수 있는 동시에, 비지도 학습에 대한 연산동작을 수행할 수 있기 때문에, 지능형 반도체에 활용될 수 있다. That is, based on the switching probability of the binary state data for at least one memory cell (for example, 100_1 to 100_3) that varies according to the write operation (WRIGHT) of the
다음으로, 주변회로부(200)는 Modified 그레이 코드에 기초하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다. 여기서, Modified 그레이 코드는 기설정된 그레이 코드(Gray Code)의 변환 순서로부터 일부의 코드 순서가 변경된 코드일 수 있다. 이때, 기설정된 그레이 코드(Gray Code)는 이진법 부호의 일종으로, 한 수에서 다음의 수로 크기가 변할 때 인접 코드 간 오직 한자리의 비트만 변화하게 만들어진 잘알려진 코드일 수 있다. Next, the
즉, 주변회로부(200)는 Modified 그레이 코드에 기초하여, 한번에 하나의 메모리셀에 대해 순차적으로 라이트동작(WRIGHT)을 수행할 수 있기 때문에, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에 대한 학습을 지원할 수 있다. 도 2에 도시된 바와 같이, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)은, 스파이킹 뉴럴 네트워크(SNN)에서, 시냅스 전 뉴런(Pre Synapse Neuron)과 시냅스 후 뉴런(Post Synapse Neuron)에서 발화된 스파이크 간의 시간차에 따라 가중치 업데이트 확률을 규정하는 규칙일 수 있다. That is, since the
일 실시예에 따라, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행할 수 있다. According to an embodiment, the
보다 구체적으로, 주변회로부(200)는 Modified 그레이 코드에 기초하는 라이트동작(WRIGHT)을 수행하기 이전에, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행할 수 있다. 즉, 주변회로부(200)는 라이트동작(WRIGHT)을 수행하기 이전에 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행함으로써, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에서의 각 시냅스(Synapse)의 값을 미리 확인할 수 있다. 여기서, 각 시냅스(Synapse)는 도 2에 도시된 바와 같이, 스파이킹 뉴럴 네트워크(SNN)에서, 시냅스 전 뉴런(Pre Synapse Neuron)과 시냅스 후 뉴런(Post Synapse Neuron) 사이의 연결선을 의미할 수 있다. More specifically, the
즉, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행하여, 각 시냅스(Synapse)의 값을 미리 확인할 수 있다. 그런 다음, 주변회로부(200)는 Modified 그레이 코드에 기초하여, 한번에 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행함으로써, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에 대한 학습을 지원할 수 있다. That is, the
다른 실시예에 따라, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행할 수 있다. According to another embodiment, the
보다 구체적으로, 주변회로부(200)는 Modified 그레이 코드에 기초하는 라이트동작(WRIGHT)을 수행한 이후, 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행할 수 있다. 이에, 주변회로부(200)는 종래의 기설정된 그레이 코드에 기초하는 라이트동작(WRIGHT)을 수행할 때 발생하는 에러율을 최소화시킬 수 있다. More specifically, after performing a write operation (WRIGHT) based on the modified gray code, the
실시예에 따른 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행함으로써, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에서의 각 시냅스(Synapse)의 값이 더해진 값을 확인할 수 있다. The
여기서, 각 시냅스(Synapse)의 값이 더해진 값은 도 2에 도시된 바와 같이, 스파이킹 뉴럴 네트워크(SNN)에서, 시냅스 전 스파이크들에 따라 증가되는 시냅스 후 뉴런의 멤브레인 전위(Membrane potential)일 수 있다. 이때, 멤브레인 전위(Membrane potential)를 업데이트하는 동작은 MAC(Multiply and ACcumulate) 연산을 수행하는 동작에 대응될 수 있다. Here, the added value of each synapse may be a membrane potential of a post-synaptic neuron that increases according to pre-synaptic spikes in a spiking neural network (SNN), as shown in FIG. 2 have. In this case, the operation of updating the membrane potential may correspond to an operation of performing a multiply and accumulate (MAC) operation.
이에, 주변회로부(200)는 Modified 그레이 코드에 기초하는 라이트동작(WRIGHT)을 수행한 이후, 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행함으로써, 멤브레인 전위(Membrane potential)를 업데이트하는 MAC(Multiply and ACcumulate) 연산을 수행할 수 있다. Accordingly, the
본 출원의 실시예에 따른 프로세싱 인 메모리(10)는 메모리셀 어레이(100)와 주변회로부(200)를 포함할 수 있다. 보다 구체적으로, 메모리셀 어레이(100)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대한 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치(Synaptic Weight)를 업데이트할 수 있다. 이때, 주변회로부(200)는 Modified 그레이 코드에 기초하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다. 즉, 프로세싱 인 메모리(10)는 스냅스가중치(Synaptic Weight)의 비트 개수에 따라, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)의 개수를 일대일 대응시켜, 시냅스가중치(Synaptic Weight)에 대한 업데이트에 필요한 셀의 개수를 최소화시킬 수 있다. 이에 따라, 프로세싱 인 메모리(10)는 라이트동작(WRIGHT) 및 리드동작(READ)에 대한 소모전력과 스파이킹 뉴럴 네트워크(Spiking Neural Network)의 비지도 학습에 필요로 하는 메모리의 면적을 감소시킬 수 있다. The processing in
이하, 도 3을 참조하여, 도 1의 메모리셀 어레이(100)에 대해 보다 구체적으로 설명될 것이다. Hereinafter, the
도 3은 도 1의 메모리셀 어레이(100)에 대한 실시 예이다. 3 is an embodiment of the
도 3을 참조하면, 메모리셀 어레이(100)는 복수의 메모리셀들(100_1~100_N), 복수의 메모리셀들(100_1~100_N)에 연결되는 복수의 로우라인들(RL1~RLN) 및 복수의 컬럼라인들(CL1~CLN)을 포함할 수 있다. Referring to FIG. 3, the
보다 구체적으로, 복수의 로우라인들(RL1~RLN)은 복수의 리드 비트라인들(Read Bit Line, RBL1~RBLN), 복수의 리드 워드라인들(Read Word Line, RMWL1~RWLN) 및 복수의 리드 비트라인 바(Read Bit Line Bar, RBLB1~RBLBN)를 포함할 수 있다. 예를 들면, 제1 로우라인(RL1)은 제1 리드 비트라인(RBL1), 제1 리드 워드라인(RWL1) 및 제1 리드 비트라인 바(RBLB1)를 포함할 수 있다. More specifically, the plurality of row lines RL1 to RLN include a plurality of read bit lines (Read Bit Lines, RBL1 to RBLN), a plurality of read word lines (RMWL1 to RWLN), and a plurality of reads. It may include a bit line bar (Read Bit Line Bar, RBLB1 to RBLBN). For example, the first row line RL1 may include a first read bit line RBL1, a first read word line RWL1, and a first read bit line bar RBLB1.
또한, 복수의 컬럼라인들(CL1~CLN)은 복수의 컬럼 비트라인들(Column Bit Line, CBL1~CBLN), 복수의 컬럼리드 워드라인들(Column Read Word Line, CRWL1~CRWLN) 및 복수의 컬럼라이트 워드라인들(Column Read Word Line, CRWL1~CRWLN)을 포함할 수 있다. 예를 들면, 제1 컬럼라인(CL1)은 제1 컬럼 비트라인(CBL1), 제1 컬럼리드 워드라인(CRWL1) 및 제1 컬럼라이트 워드라인(CWWL1)를 포함할 수 있다. In addition, the plurality of column lines CL1 to CLN include a plurality of column bit lines (CBL1 to CBLN), a plurality of column read word lines (CRWL1 to CRWLN), and a plurality of columns. Write word lines (Column Read Word Line, CRWL1 to CRWLN) may be included. For example, the first column line CL1 may include a first column bit line CBL1, a first column lead word line CRWL1, and a first column write word line CWWL1.
이하에서는, 복수의 로우라인들(RL1~RLN) 및 복수의 컬럼라인들(CL1~CLN) 각각의 기능과 동작이 서로 동일하므로, 이해를 돕고자 제1 로우라인(RL1)과 제1 컬럼라인(CL1)에 연결된 SOT (Spin-Orbit Torque) 메모리셀에 해당하는 제1 메모리셀(100_1)을 참조하여 설명될 것이다. 그러나, 여기에서 설명하는 구현예 및 실시예에 한정되지 않으며, 복수의 메모리셀들(100_1~100_N) 각각에 모두 적용될 수 있다. Hereinafter, since the functions and operations of the plurality of row lines RL1 to RLN and the plurality of column lines CL1 to CLN are identical to each other, the first row line RL1 and the first column line are The description will be made with reference to a first memory cell 100_1 corresponding to a spin-orbit torque (SOT) memory cell connected to CL1. However, it is not limited to the embodiments and embodiments described herein, and may be applied to all of the plurality of memory cells 100_1 to 100_N.
먼저, 제1 메모리셀(100_1)은 제1 내지 제3 트랜지스터(M1~M3)를 통해 제1 로우라인(RL1)과 제1 컬럼라인(CL1)에 연결되어, 주변회로부(200)와 전기적으로 연결될 수 있다. 이하, 제1 내지 제3 트랜지스터(M1~M3)는 도 5를 참조하여 보다 구체적으로 설명될 것이다. First, the first memory cell 100_1 is connected to the first row line RL1 and the first column line CL1 through the first to third transistors M1 to M3, and is electrically connected to the
또한, 제1 메모리셀(100_1)은 기준층(reference layer, 101_1), 비자기 공간층 (nonmagnetic spacer layer, 102_1), 데이터 저장층(data storage layer, 103_1) 및 메탈층(104_1)을 포함하는 자기 터널 접합(Magnetic Tunneling Junction, MTJ) 타입일 수 있다. In addition, the first memory cell 100_1 includes a magnetic layer including a reference layer 101_1, a nonmagnetic spacer layer 102_1, a data storage layer 103_1, and a metal layer 104_1. It may be of a magnetic tunneling junction (MTJ) type.
예를 들면, 기준층(101_1)은 강자성층(ferromagnetic layer)으로 형성되고, 고정층(pinned layer)이라고 불리울 수 있다. 이때, 기준층(101_1)의 자화 방향은 일 방향일 수 있다. 또한, 기준층(101_1)은 Co, Fe, Ni, 또는 그들의 합금, 또는 이와 유사한 물질을 포함할 수 있다. For example, the reference layer 101_1 is formed of a ferromagnetic layer, and may be referred to as a pinned layer. In this case, the magnetization direction of the reference layer 101_1 may be one direction. In addition, the reference layer 101_1 may include Co, Fe, Ni, or an alloy thereof, or a similar material.
다음으로, 비자기 공간층(102_1)은 전자들로 하여금 터널링(tunneling)할 수 있을 정도의 두께를 가질 수 있다. 또한, 비자기 공간층(102_1)은 Al2O3, MgO, AlN, Ta2O5, SiO2, HfO2, ZrO2, MgF2, CaF2, 또는 이와 유사한 것들을 포함할 수 있다. Next, the nonmagnetic spatial layer 102_1 may have a thickness sufficient to allow electrons to tunnel. In addition, the nonmagnetic spatial layer 102_1 may include Al2O3, MgO, AlN, Ta2O5, SiO2, HfO2, ZrO2, MgF2, CaF2, or similar.
다음으로, 데이터 저장층(103_1)은 기준층(101_1)과 유사한 강자성층일 수 있다. 이때, 데이터 저장층(103_1)의 자화 방향은 일 방향 또는 타 방향으로 스위치될 수 있다. Next, the data storage layer 103_1 may be a ferromagnetic layer similar to the reference layer 101_1. In this case, the magnetization direction of the data storage layer 103_1 may be switched in one direction or the other direction.
다음으로, 메탈층(104_1)은 강한 스핀-궤도 토크(Spin Orbit Toque)가 발생하는 층일 수 있다. 보다 구체적으로, 메탈층(104_1)은 표면을 따라 유도된 전류 크기에 기초하여, 데이터 저장층(103_1)의 자화 방향을 스위치할 수 있다. 또한, 메탈층(104_1)은 중금속(heavy metal)이나 중금속에 의하여 도핑된 물질들을 포함할 수 있다. Next, the metal layer 104_1 may be a layer in which a strong spin-orbit torque is generated. More specifically, the metal layer 104_1 may switch the magnetization direction of the data storage layer 103_1 based on the amount of current induced along the surface. In addition, the metal layer 104_1 may include a heavy metal or materials doped with a heavy metal.
보다 구체적으로, 제1 메모리셀(100_1)은 기준층(101_1)으로부터 제1 로우라인(RL1)을 통해 주변회로부(200)와 전기적으로 연결되고, 메탈층(104_1)을 통해 주변회로부(200)와 전기적으로 연결될 수 있다. 이때, 제1 메모리셀(100_1)은 주변회로부(200)로부터 라이트동작(WRIGHT)에 따른 라이트전압(VW)와 기준전압(VDD)을 제1 로우라인(RL1) 또는 제1 컬럼라인(CL1) 중 적어도 어느 하나의 라인를 통해 인가받을 수 있다. More specifically, the first memory cell 100_1 is electrically connected to the
또한, 주변회로부(200)의 라이트동작(WRIGHT)에 따라, 메탈층(104_1)을 통해 흐르는 전류의 크기 또는 전류의 듀레이션(Duration)은 제1 메모리셀(100_1)에서 가변될 수 있다. 이때, 제1 메모리셀(100_1)은 전류의 크기 또는 전류의 듀레이션(Duration)에 기초하여, 데이터 저장층(103_1)의 자화 방향을 스위칭할 수 있다. 즉, 제1 메모리셀(100_1)은 전류의 크기 또는 전류의 듀레이션(Duration)에 기초하여, 이진상태 데이터 ‘1’ 과 ‘0’ 중 어느 하나의 이진상태를 나타내는 저항의 크기를 스위칭하여 데이터를 저장할 수 있다. In addition, according to the write operation WRIGHT of the
이때, 제1 메모리셀(100_1)은 주변회로부(200)의 라이트동작(WRIGHT)에 따라, 이진상태 데이터의 스위칭 확률에 기초하여, 스파이킹 뉴럴 네트워크(SNN)에서의 시냅스가중치(Synaptic Weight)를 업데이트할 수 있다. At this time, the first memory cell 100_1 calculates the synaptic weight in the spiking neural network SNN based on the switching probability of the binary state data according to the write operation WRIGHT of the
보다 구체적으로, 도 2에 도시된 바와 같이, 스파이킹 뉴럴 네트워크(SNN)에서의 시냅스가중치(Synaptic Weight)는 시냅스 전 스파이크에 따라 뉴런의 멤브레인 전위를 증가시켜 시냅스 후 스파이크를 출력하는 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)을 기초로 정해질 수 있다. More specifically, as shown in FIG. 2, the synaptic weight in the spiking neural network (SNN) increases the membrane potential of the neuron according to the pre-synaptic spike, thereby outputting a post-synaptic spike. ) Spike time dependent plasticity (STDP) can be determined on the basis of.
이러한 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)을 참조하면, 제1 메모리셀(100_1)은 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치(Synaptic Weight)를 업데이트 할 수 있다. 이에 따라, 제1 메모리셀(100_1)은 스파이킹 뉴럴 네트워크(SNN)에서의 인 메모리 컴퓨팅(In-Memory Computing)에 적용되어, 비지도 학습에 따른 연산을 지원할 수 있다. Referring to this stochastic spike time dependent plasticity (STDP), the first memory cell 100_1 may update a synaptic weight based on a switching probability of binary state data. Accordingly, the first memory cell 100_1 may be applied to in-memory computing in the spiking neural network SNN to support an operation according to unsupervised learning.
실시예에 따라, 제1 메모리셀(100_1)은 저항성 메모리로 형성될 수 있다. Depending on the embodiment, the first memory cell 100_1 may be formed of a resistive memory.
보다 구체적으로, 제1 메모리셀(100_1)은 STT(spin-torque transfer), SOT (Spin-Orbit Torque), PRAM(phase change RAM), NFGM(nano floating gate memory), ReRAM(resitance RAM), PoRAM(polymer RAM), MRAM(magnetic RAM), 분자 전자소자 중 적어도 하나의 저항성 메모리로 구현될 수 있으며, 여기에서 설명하는 구현예 및 실시예에 한정되지 않는다. More specifically, the first memory cell 100_1 is STT (spin-torque transfer), SOT (Spin-Orbit Torque), PRAM (phase change RAM), NFGM (nano floating gate memory), ReRAM (resitance RAM), PoRAM (Polymer RAM), magnetic RAM (MRAM), and may be implemented as a resistive memory of at least one of a molecular electronic device, but is not limited to the embodiments and embodiments described herein.
도 4는 도 1의 주변회로부(200)에 대한 실시 예이다. 4 is an embodiment of the
도 1과 도 4를 참조하면, 주변회로부(200)는 라인구동부(210), 전원공급부(220), 읽기회로부(230) 및 제어로직(240)을 포함할 수 있다. 1 and 4, the
본 출원에서, 주변회로부(200)는 설명의 편의를 위해 라인구동부(210), 전원공급부(220), 읽기회로부(230) 및 제어로직(240)을 포함하는 구성들로 기재되지만, 이를 한정하는 것은 아니다. 예를 들면, 주변회로부(200)는 기능에 따라, 복수의 리드 비트라인들(RBL1~RBLN), 복수의 리드 워드라인들(RMWL1~RWLN) 및 복수의 리드 비트라인 바(RBLB1~RBLBN)을 중 적어도 어느 하나를 선택하는 로우(ROW) 선택 회로들, 복수의 컬럼 비트라인들(CBL1~CBLN), 복수의 컬럼리드 워드라인들(CRWL1~CRWLN) 및 복수의 컬럼라이트 워드라인들(CRWL1~CRWLN) 중 적어도 하나를 선택하는 컬럼(COLUMN) 선택 회로들을 더 포함할 수 있다. 이러한 복수의 회로들은 라인구동부(210)의 기능들을 독립적으로 수행시킬 수 있다. In the present application, the
먼저, 라인구동부(210)는 복수의 로우라인들(RL1~RLN)과 복수의 컬럼라인들(CL1~CLN)을 통해 복수의 메모리셀들(100_1~100_N)과 전원공급부(220)를 선택적으로 연결시킬 수 있다. 예를 들면, 라인구동부(210)는 제1 로우라인(RL1)과 제1 컬럼라인(CL1)을 통해 제1 메모리셀(100_1)과 전원공급부(220)를 선택적으로 연결시킬 수 있다. First, the
다음으로, 전원공급부(220)는 라인구동부(210)를 통해 연결된 복수의 메모리셀들(100_1~100_N) 중 어느 하나의 메모리셀에 리드전압(VREAD), 라이트전압(VWRIGHT) 및 기준전압(VDD) 중 어느 하나의 전압을 인가할 수 있다. Next, the
다음으로, 읽기회로부(230)는 감지증폭기들(231_1~231_N)과 아날로그-디지털 컨버터들(233_1~233_N)을 포함할 수 있다. 보다 구체적으로, 읽기회로부(230)는 메모리셀 어레이(100)로부터 감지증폭기들(231_1~231_N)과 아날로그-디지털 컨버터들(233_1~233_N)을 통해 흐르는 리드전류를 리드할 수 있다. Next, the
다음으로, 제어로직(240)은 라인구동부(210), 전원공급부(220) 및 읽기회로부(230)의 각 동작을 독립적으로 수행시키도록 제어할 수 있다. 즉, 제어로직(240)은 라인구동부(210), 전원공급부(220) 및 읽기회로부(230)를 제어하여, 메모리셀 어레이(100)에 대한 라이트동작(WRIGHT) 및 리드동작(READ)을 수행할 수 있다. Next, the
실시예에 따라, 제어로직(240)은 Modified 그레이 코드에 기초하여, 메모리셀 어레이(100) 중 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다.According to an embodiment, the
보다 구체적으로, 제어로직(240)은 Modified 그레이 코드의 한개의 비트만 변화되는 특징에 기초하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다. 예를 들면, 다음의 표 1에 기재된 바와 같이, 제어로직(240)은 Modified 그레이 코드의 한개의 비트만 변화되는 특징에 기초하여, 제1 메모리셀(100_1), 제2 메모리셀(100_2) 및 제3 메모리셀(100_3)에 대한 라이트동작(WRIGHT)을 한번에 하나씩 순서대로 수행할 수 있다.More specifically, the
표 1에 기재된 바와 같이, 종래의 기설정된 그레이 코드(Grey code)는, 000 코드의 다음의 001 코드, 001 코드 다음의 011 코드, 011 코드 다음의 010 코드, 010 코드 다음의 110 코드, 110 코드 다음의 111 코드, 111 코드 다음의 101 코드, 101 코드 다음의 100 코드 순으로 한개의 비트만 변환되는 코드일 수 있다. 또한, 기설정된 그레이 코드가 2비트인 경우, 00 코드 다음의 01 코드, 01 코드 다음의 11 코드, 11 코드 다음의 10 코드 순으로 한개의 비트만 변환되는 코드일 수 있다. As shown in Table 1, the conventional preset Gray code is, the 001 code following the 000 code, the 011 code following the 001 code, the 010 code after the 011 code, the 110 code after the 010 code, and the 110 code. It may be a code in which only one bit is converted in the order of the following 111 code, the 111 code following the 101 code, and the 101 code following 100 code. In addition, when the preset gray code is 2 bits, it may be a code in which only one bit is converted in the order of 01 code after 00 code, 11 code after 01 code, and 10 code after 11 code.
여기서, Modified 그레이 코드는 기설정된 그레이 코드(Gray Code)의 변환 순서로부터 5 내지 7번째 코드순서가 변경된 코드로서, 기설정된 그레이 코드(Gray Code)와 동일하게 한번에 1개의 비트만 변경되는 코드들을 포함할 수 있다. 또한, Modified 그레이 코드는 기설정된 그레이 코드(Gray Code)보다 바이너리 넘버 리프레젠테이션(binary number representation)과의 차이를 최소화시킬 수 있는 코드일 수 있다. Here, the modified gray code is a code in which the 5th to 7th code order is changed from the preset gray code conversion order, and includes codes in which only one bit is changed at a time in the same way as the preset gray code. can do. In addition, the modified gray code may be a code capable of minimizing a difference from a binary number representation than a preset gray code.
이때, Modified 그레이 코드의 비트 개수는 시냅스가중치(Synaptic Weight)의 비트 개수에 일대일로 대응되는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)의 개수와 일대일로 대응될 수 있다. 예를 들면, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)의 개수가 3개인 경우, 시냅스가중치(Synaptic Weight)의 비트와 Modified 그레이 코드의 비트는 3 비트일 수 있다. In this case, the number of bits of the modified gray code may correspond one to one to the number of at least one memory cell (eg, 100_1 to 100_3) corresponding to the number of bits of the synaptic weight on a one-to-one basis. For example, when the number of at least one memory cell (eg, 100_1 to 100_3) is 3, a bit of a synaptic weight and a bit of a modified gray code may be 3 bits.
실시예에 따라, 제어로직(240)은 라이트동작(WRIGHT)을 수행하기 이전에, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행할 수 있다. 보다 구체적으로, 제어로직(240)은 Modified 그레이 코드에 기초하는 라이트동작(WRIGHT)을 수행하기 이전에, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 리드할 수 있다. According to an embodiment, the
예를 들면, 3 비트인 시냅스가중치(Synaptic Weight)에 따라 업데이트되는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)이 3개인 경우, 먼저, 제어로직(240)은 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행할 수 있다. 즉, 제어로직(240)은 적어도 하나의 메모리셀(예컨대, 100_1~100_3) 중 제1 메모리셀(100_1)에 대한 리드동작(READ), 제2 메모리셀(100_2)에 대한 리드동작(READ) 및 제3 메모리셀(100_3)에 대한 리드동작(READ)을 개별적으로 수행할 수 있다. For example, when there are three at least one memory cell (for example, 100_1 to 100_3) updated according to a 3-bit synaptic weight, first, the
이에 따라, 제어로직(240)은 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행하여, 각 시냅스(Synapse)의 값을 미리 확인함으로써, 라이트동작(WRIGHT)을 통해 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에 대한 학습을 지원할 수 있다.Accordingly, the
그런 다음, 제어로직(240)은 Modified 그레이 코드에 기초하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다. Then, the
이후, 제어로직(240)은 서로 동일한 컬럼라인(예컨대, CL1)에 연결된 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행할 수 있다. 보다 구체적으로, 제어로직(240)은 Modified 그레이 코드에 기초하는 라이트동작(WRIGHT)을 수행한 이후, 서로 동일한 컬럼라인(예컨대, CL1)에 연결된 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행할 수 있다. Thereafter, the
예를 들면, 제어로직(240)은 적어도 하나의 메모리셀(예컨대, 100_1~100_3) 중 하나의 메모리셀(예컨대, 100_1)과 동일한 컬럼라인(예컨대, CL1)에 연결된 나머지 메모리셀(예컨대, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행할 수 있다. 또한, 적어도 하나의 메모리셀(예컨대, 100_1~100_3) 중 하나의 메모리셀(예컨대, 100_2)과 동일한 컬럼라인(예컨대, CL2)에 연결된 나머지 메모리셀(예컨대, 100_6 및 100_7)에 대해 리드동작(READ)을 한번에 수행할 수 있다. 또한, 적어도 하나의 메모리셀(예컨대, 100_1~100_3) 중 하나의 메모리셀(예컨대, 100_3)과 동일한 컬럼라인(예컨대, CL3)에 연결된 나머지 메모리셀(예컨대, 100_8 및 100_9)에 대해 리드동작(READ)을 한번에 수행할 수 있다. For example, the
즉, 제어로직(240)은 Modified 그레이 코드에 기초하는 라이트동작(WRIGHT)을 수행한 이후, 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행함으로써, 멤브레인 전위(Membrane potential)를 업데이트하는 MAC(Multiply and ACcumulate) 연산을 수행할 수 있다. That is, the
도 5는 도 1의 프로세싱 인 메모리(10)의 MAC 연산을 위한 리드동작(READ)에 대한 실시 예이다. 5 is an embodiment of a read operation (READ) for a MAC operation of the processing in
도 1 내지 도 5를 참조하면, 프로세싱 인 메모리(10)는 메모리셀 어레이(100)와 주변회로부(200)를 포함할 수 있다. 이하, 도 1 내지 도 4에서 설명된 동일한 부재번호의 메모리셀 어레이(100)와 주변회로부(200)에 대한 중복된 내용을 생략될 것이다. 1 to 5, the processing in
먼저, 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대한 리드동작(READ)을 수행하기 위하여, 라인구동부(210)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 연결된 각 로우라인(예컨대, RL1~RL3)을 선택할 수 있다. 보다 구체적으로, 라인구동부(210)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 연결된 각 리드 비트라인(예컨대, RBL1~RBL3)과 각 리드 워드라인(예컨대, RWL1~RWL3)을 선택할 수 있다. First, in order to perform a read operation (READ) for at least one memory cell (eg, 100_1, 100_4, and 100_5), the
그런 다음, 라인구동부(210)는 각 로우라인(예컨대, RL1~RL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. 보다 구체적으로, 라인구동부(210)는 각 리드 비트라인(예컨대, RBL1~RBL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. 또한, 라인구동부(210)는 각 리드 워드라인(예컨대, RWL1~RWL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. Then, the
이때, 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)의 각 제1 트랜지스터(M1)는 컬럼 비트라인(예컨대, CBL1)과 각 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)의 기준층(101_1)을 전기적으로 연결시킬 수 있다. 한편, 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)의 각 제2 트랜지스터(M2)와 각 제3 트랜지스터(M3)는 비활성화 상태일 수 있다. At this time, each first transistor M1 of at least one memory cell (eg, 100_1, 100_4, and 100_5) includes a column bit line (eg, CBL1) and each of at least one memory cell (eg, 100_1, 100_4, and 100_5). The reference layer 101_1 may be electrically connected. Meanwhile, each second transistor M2 and each third transistor M3 of at least one memory cell (eg, 100_1, 100_4, and 100_5) may be in an inactive state.
이하, 설명의 편의를 위하여, 제1 메모리셀(100_1)에 연결된 제1 내지 제3 트랜지스터(M1~M3)에 대해 보다 구체적으로 설명될 것이며, 이를 한정하는 것은 아니다. Hereinafter, for convenience of description, the first to third transistors M1 to M3 connected to the first memory cell 100_1 will be described in more detail, but the present invention is not limited thereto.
보다 구체적으로, 제1 트랜지스터(M1)의 게이트는 제1 리드 워드라인(RWL1)과 연결될 수 있다. 이때, 제1 트랜지스터(M1)는 주변회로부(200)로부터 제1 리드 워드라인(RWL1)을 통해 인가받는 기준전압(VDD)에 기초하여, 제1 컬럼 비트라인(CBL1)과 제1 메모리셀(100_1)의 기준층(101_1)을 전기적으로 연결시킬 수 있다. 또한, 제1 트랜지스터(M1)는 기준전압(VDD)을 인가받지 않는 경우, 제1 컬럼 비트라인(CBL1)과 제1 메모리셀(100_1)의 기준층(101_1) 사이를 단락시킬 수 있다. More specifically, the gate of the first transistor M1 may be connected to the first read word line RWL1. At this time, the first transistor M1 is based on the reference voltage VDD applied from the
다음으로, 제2 트랜지스터(M2)의 게이트는 제1 컬럼리드 워드라인(CRWL1)과 연결될 수 있다. 보다 구체적으로, 제2 트랜지스터(M2)는 주변회로부(200)로부터 제1 컬럼리드 워드라인(CRWL1)을 통해 인가받는 기준전압(VDD)에 기초하여, 제1 컬럼 비트라인(CBL1)과 제1 메모리셀(100_1)의 기준층(101_1)을 연결시킬 수 있다. 또한, 제2 트랜지스터(M2)는 기준전압(VDD)을 인가받지 않는 경우, 제1 컬럼 비트라인(CBL1)과 제1 메모리셀(100_1)의 기준층(101_1) 사이를 단락시킬 수 있다.Next, the gate of the second transistor M2 may be connected to the first column lead word line CRWL1. More specifically, the second transistor M2 is based on the reference voltage V DD applied from the
다음으로, 제3 트랜지스터(M3)의 게이트는 제1 컬럼라이트 워드라인(CWWL1)과 연결될 수 있다. 여기서, 제1 메모리셀(100_1)의 메탈층(104_1)의 타측은 제1 리드 비트라인(RBL1)에 연결되어 주변회로부(200)로부터 리드전압(VREAD)을 인가받을 수 있다. 이때, 제3 트랜지스터(M3)는 리드전압(VREAD)에 기초하여, 제1 메모리셀(100_1)의 메탈층(104_1)의 일측과 제1 리드 비트라인 바(RBLB1) 사이를 단락 또는 연결시킬 수 있다. Next, the gate of the third transistor M3 may be connected to the first column write word line CWWL1. Here, the other side of the metal layer 104_1 of the first memory cell 100_1 is connected to the first read bit line RBL1 to receive the read voltage VREAD from the
다음으로, 전원공급부(220)는 라인구동부(210)를 통해 선택된 각 로우라인(예컨대, RL1~RL3)을 통해 리드전압(VREAD)과 기준전압(VDD)을 인가할 수 있다. 보다 구체적으로, 전원공급부(220)는 각 리드 비트라인(예컨대, RBL1~RBL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 리드전압(VREAD)을 인가할 수 있다. 또한, 전원공급부(220)는 각 리드 워드라인(예컨대, RWL1~RWL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 기준전압(VDD)을 인가할 수 있다. Next, the
이때, 읽기회로부(230)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 연결된 하나의 컬럼라인(예컨대, CL1)을 통해 흐르는 리드전류(예컨대, IREAD1)를 리드할 수 있다. 여기서, 리드전류(예컨대, IREAD1)는 각 메모리셀(예컨대, 100_1, 100_4 및 100_5)에서 하나의 컬럼 비트라인(예컨대, CBL1)으로 흐르는 각 전류(I1~I3)의 합일 수 있다. 즉, 읽기회로부(230)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 연결된 하나의 컬럼라인(예컨대, CL1)을 통해 흐르는 각 전류(I1~I3)를 한번에 리드할 수 있다. In this case, the
예를 들면, 리드전류(IREAD1)는 제1 메모리셀(100_1)의 제1 트랜지스터(M1)를 통해 제1 컬럼 비트라인(CBL1)으로 흐르는 제1 전류(I1), 제4 메모리셀(100_4)의 제1 트랜지스터(M1)를 통해 제1 컬럼 비트라인(CBL1)으로 흐르는 제2 전류(I2) 및 제5 메모리셀(100_5)의 제1 트랜지스터(M1)를 통해 제1 컬럼 비트라인(CBL1)으로 흐르는 제3 전류(I3)의 합의 크기일 수 있다.For example, the read current I READ1 is the first current I1 flowing to the first column bit line CBL1 through the first transistor M1 of the first memory cell 100_1 and the fourth memory cell 100_4. ) And the first column bit line CBL1 through the first transistor M1 of the fifth memory cell 100_5 and the second current I2 flowing to the first column bit line CBL1 through the first transistor M1 of ). It may be the size of the sum of the third current I3 flowing through ).
그런 다음, 읽기회로부(230)는 하나의 컬럼 비트라인(예컨대, CBL1)에 연결된 하나의 감지증폭기(예컨대, 231_1)를 통해 리드전류(IREAD1)를 감지 증폭하고, 아날로그-디지털 컨버터(예컨대, 233_1)를 통해 감지 증폭된 리드전류(IREAD1)를 디지털 값으로 컨버팅할 수 있다. Then, the
즉, 읽기회로부(230)는 각 컬럼 비트라인(예컨대, CBL1~CBL3)에 연결된 각 감지증폭기(예컨대, 231_1~231_3)와 각 아날로그-디지털 컨버터(예컨대, 233_1~233_3)를 통해 각 리드전류(예컨대, IREAD1~IREAD3)를 리드할 수 있다. That is, the
실시예에 따라, 읽기회로부(230)에서 동작되는 복수의 감지증폭기들(231_1~231_N)과 복수의 아날로그-디지털 컨버터들(233_1~233_N)의 개수는 각 컬럼 비트라인(예컨대, CBL1~CBL3)의 개수와 일대일 대응될 수 있다. According to the embodiment, the number of the plurality of sense amplifiers 231_1 to 231_N and the plurality of analog-to-digital converters 233_1 to 233_N operated by the
예를 들면, 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 연결된 컬럼 비트라인(예컨대, CBL1)의 개수가 1개인 경우, 감지증폭기(예컨대, 231_1)와 아날로그-디지털 컨버터(예컨대, 233_1)의 개수는 각각 1개일 수 있다. 또한, 적어도 하나의 메모리셀(예컨대, 100_1~100_15)에 연결된 각 컬럼 비트라인(예컨대, CBL1~CBL5)의 개수가 5개인 경우, 감지증폭기(예컨대, 231_1~231_5)와 아날로그-디지털 컨버터(예컨대, 233_1~233_5)의 개수는 각각 5개일 수 있다. For example, when the number of column bit lines (eg, CBL1) connected to at least one memory cell (eg, 100_1, 100_4, and 100_5) is one, a sense amplifier (eg, 231_1) and an analog-digital converter (eg, The number of 233_1) may be one. In addition, when the number of each column bit line (eg, CBL1 to CBL5) connected to at least one memory cell (eg, 100_1 to 100_15) is 5, a sense amplifier (eg, 231_1 to 231_5) and an analog-to-digital converter , 233_1 to 233_5) may be 5 respectively.
도 5에 도시된 바와 같이, 적어도 하나의 메모리셀(예컨대, 100_1~100_9)에 연결된 각 컬럼 비트라인(예컨대, CBL1~CBL3)의 개수가 3개인 경우, 감지증폭기(예컨대, 231_1~231_3)와 아날로그-디지털 컨버터(예컨대, 233_1~233_3)의 개수는 각각 3개일 수 있다. As shown in FIG. 5, when the number of each column bit line (eg, CBL1 to CBL3) connected to at least one memory cell (eg, 100_1 to 100_9) is three, a sense amplifier (eg, 231_1 to 231_3) and The number of analog-to-digital converters (eg, 233_1 to 233_3) may be three.
이에 따라, 읽기회로부(230)는 컬럼 비트라인(예컨대, CBL1~CBL3)에 흐르는 리드전류(예컨대, IREAD1~IREAD3)를 리드하기 위한 감지증폭기(예컨대, 231_1~231_3)와 아날로그-디지털 컨버터(예컨대, 233_1~233_3)의 개수를 최소화시켜, 프로세싱 인 메모리(10)의 면적 및 전력소모를 최소화시킬 수 있다. Accordingly, the
도 6은 도 1의 프로세싱 인 메모리(10)의 시냅스가중치(Synaptic Weight)의 업데이트를 위한 리드동작(READ)에 대한 실시 예이다. 6 is an embodiment of a read operation READ for updating the synaptic weight of the processing in
도 1 내지 도 6을 참조하면, 프로세싱 인 메모리(10)는 메모리셀 어레이(100)와 주변회로부(200)를 포함할 수 있다. 이하, 도 1 내지 5에서 설명된 동일한 부재번호의 메모리셀 어레이(100)와 주변회로부(200)에 대한 중복된 내용은 생략될 것이다.1 to 6, the processing in
먼저, 라인구동부(210)는 시냅스가중치(Synaptic Weight)의 업데이트를 위한 리드동작(READ)을 위하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 하나의 로우라인(예컨대, RL1)과 각 컬럼라인(예컨대, CL1~CL3)을 선택할 수 있다. 보다 구체적으로, 라인구동부(210)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 하나의 리드 비트라인 바(예컨대, RBLB1)와 각 컬럼 리드 워드라인(예컨대, CRWL1~CRWL3)을 선택할 수 있다. First, the
그런 다음, 라인구동부(210)는 로우라인(예컨대, RL1)과 컬럼라인(예컨대, CL1~CL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. Then, the
보다 구체적으로, 라인구동부(210)는 로우라인(예컨대, RL1) 중 리드 비트라인 바(예컨대, RBLB1)를 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. 또한, 라인구동부(210)는 컬럼라인(예컨대, CL1~CL3) 중 각 컬럼 리드 워드라인(예컨대, CRWL1~CRWL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. More specifically, the
다음으로, 전원공급부(220)는 라인구동부(210)를 통해 선택된 로우라인(예컨대, RL1)을 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 리드전압(VREAD)을 인가할 수 있다. 이때, 전원공급부(220)는 라인구동부(210)를 통해 선택된 컬럼라인(예컨대, CL1~CL3)을 통해 기준전압(VDD)을 인가할 수 있다. Next, the
보다 구체적으로, 전원공급부(220)는 로우라인(예컨대, RL1) 중 리드 비트라인 바(예컨대, RBLB1)를 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 리드전압(VREAD)을 인가할 수 있다. 또한, 전원공급부(220)는 컬럼라인(예컨대, CL1~CL3) 중 각 컬럼 리드 워드라인(예컨대, CRWL1~CRWL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 기준전압(VDD)을 인가할 수 있다. More specifically, the
이때, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)의 각 제1 트랜지스터(M1)는 비활성화되고, 각 제2 트랜지스터(M2)는 활성화될 수 있다. 예를 들면, 제1 메모리셀(예컨대, 100_1)의 제1 트랜지스터(M1)는 제1 컬럼 비트라인(예컨대, CBL1)과 제1 메모리셀(100_1)의 기준층(101_1) 사이를 단락시킬 수 있다. 이때, 제1 메모리셀(예컨대, 100_1)의 제2 트랜지스터(M2)는 주변회로부(200)로부터 제1 컬럼리드 워드라인(CRWL1)을 통해 인가받는 기준전압(VDD)에 기초하여, 제1 리드 비트라인 바(RBLB1)와 제1 메모리셀(100_1)의 기준층(101_1)을 연결시킬 수 있다. In this case, each of the first transistors M1 of at least one memory cell (eg, 100_1 to 100_3) may be deactivated, and each of the second transistors M2 may be activated. For example, the first transistor M1 of the first memory cell (eg, 100_1) may short the first column bit line (eg, CBL1) and the reference layer 101_1 of the first memory cell 100_1. . At this time, the second transistor M2 of the first memory cell (eg, 100_1) is based on the reference voltage V DD applied from the
다음으로, 읽기회로부(230)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 각 로우라인(예컨대, RL1~RL3)을 통해 흐르는 각 리드전류(예컨대, IREAD1~IREAD3)를 개별적으로 리드할 수 있다. Next, the
예를 들면, 각 리드전류(예컨대, IREAD1~IREAD3)는 제1 리드 비트라인 바(RBLB1)로부터 제1 메모리셀(100_1)의 제2 트랜지스터(M2)를 통해 제1 리드 비트라인(RBL1)으로 흐르는 제1 리드전류(IREAD1), 제1 리드 비트라인 바(RBLB1)로부터 제2 메모리셀(100_2)의 제2 트랜지스터(M2)를 통해 제1 리드 비트라인(RBL1)으로 흐르는 제2 리드전류(IREAD2) 및 제1 리드 비트라인 바(RBLB1)로부터 제3 메모리셀(100_3)의 제2 트랜지스터(M2)를 통해 제1 리드 비트라인(RBL1)으로 흐르는 제3 리드전류(IREAD3)일 수 있다. For example, each read current (e.g., I READ1 to I READ3 ) is transmitted from the first read bit line bar RBLB1 to the first read bit line RBL1 through the second transistor M2 of the first memory cell 100_1. ), the second read current I READ1 flowing from the first read bit line bar RBLB1 to the first read bit line RBL1 through the second transistor M2 of the second memory cell 100_2 The third read current I READ3 flowing from the read current I READ2 and the first read bit line bar RBLB1 to the first read bit line RBL1 through the second transistor M2 of the third memory cell 100_3 ) Can be.
이때, 읽기회로부(230)는 각 리드전류(예컨대, IREAD1~IREAD3)별 하나의 감지증폭기(예컨대, 231_1)를 통해 순차적으로 리드할 수 있다. 즉, 읽기회로부(230)는 각 리드전류(예컨대, IREAD1~IREAD3)를 하나씩 리드하기 위하여, 각 감지증폭기(예컨대, 231_1~231_3)를 통해 개별적으로 리드할 수 있다. 이때, 읽기회로부(230)는 각 리드전류(예컨대, IREAD1~IREAD3)를 하나씩 리드하기 때문에, 각 아날로그-디지털 컨버터(예컨대, 233_1~233_3) 필요없이, 각 감지증폭기(예컨대, 231_1~231_3)를 통해 리드할 수 있다. 여기서, 각 리드전류(예컨대, IREAD1~IREAD3)는 스파이킹 뉴럴 네트워크(SNN)에서의 시냅스(Synapse)에 대응될 수 있다.In this case, the
이후, 제어로직(240)은 읽기회로부(230)를 통해 로우라인 방향으로 리드된 각 리드전류(예컨대, IREAD1~IREAD3)에 기초하여, 시냅스가중치(Synaptic Weight)의 업데이트를 위한 시냅스(Synapse)를 확인할 수 있다. Thereafter, the
도 7은 도 1의 프로세싱 인 메모리(10)의 시냅스가중치(Synaptic Weight)의 업데이트를 위한 라이트동작(WRIGHT)에 대한 실시 예이다.7 is an embodiment of a write operation (WRIGHT) for updating a synaptic weight of the processing in
도 1 내지 도 3, 도 5 및 도 6을 참조하면, 프로세싱 인 메모리(10)는 프로세싱 인 메모리(10)는 메모리셀 어레이(100)와 주변회로부(200)를 포함할 수 있다. 이하, 도 1 내지 6에서 설명된 동일한 부재번호의 메모리셀 어레이(100)와 주변회로부(200)에 대한 중복된 내용을 생략될 것이다.1 to 3, 5, and 6, the processing in
먼저, 시냅스가중치(Synaptic Weight)의 업데이트를 위한 라이트동작(WRIGHT)을 수행하기 위하여, 라인구동부(210)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 로우라인(예컨대, RL1)과 컬럼라인(예컨대, CL1)을 선택할 수 있다. First, in order to perform a write operation (WRIGHT) for updating the synaptic weight, the
보다 구체적으로, 라인구동부(210)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 로우라인(예컨대, RL1) 중 리드 비트라인(예컨대, RBL1)과 리드 비트라인 바(예컨대, RBLB1)를 선택할 수 있다. 그런 다음, 라인구동부(210)는 리드 비트라인(예컨대, RBL1)과 리드 비트라인 바(예컨대, RBLB1)를 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. More specifically, the
이때, 라인구동부(210)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 각 컬럼라인(예컨대, CL1~CL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. 보다 구체적으로, 라인구동부(210)는 각 컬럼 라이트워드 라인(예컨대, CWWL1~CWWL3)을 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. At this time, the
다음으로, 전원공급부(220)는 라인구동부(210)를 통해 선택된 리드 비트라인(예컨대, RBL1)을 통해 제1 라이트전압(VWR1)을 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 인가할 수 있다. 또한, 전원공급부(220)는 라인구동부(210)를 통해 선택된 리드 비트라인 바(예컨대, RBLB1)를 통해 제2 라이트전압(VWR2)을 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 인가할 수 있다. 여기서, 제1 라이트전압(VWR1)과 제2 라이트전압(VWR2)은 서로 크기가 다른 전압일 수 있다. Next, the
또한, 전원공급부(220)는 라인구동부(210)를 통해 선택된 각 컬럼 라이트워드 라인(예컨대, CWWL1~CWWL3)을 통해 기준전압(VDD)을 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 인가할 수 있다. In addition, the
이때, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)의 각 제3 트랜지스터(M3)는 활성화 될 수 있다. 예를 들면, 제1 메모리셀(100_1)의 제3 트랜지스터(M3)는 주변회로부(200)로부터 제1 컬럼라이트 워드라인(CWWL1)을 통해 인가받는 기준전압(VDD)에 기초하여, 제1 리드 비트라인 바(RBLB1)와 제1 메모리셀(100_1)의 메탈층(104_1)의 일 측 사이를 연결시킬 수 있다. At this time, each third transistor M3 of at least one memory cell (eg, 100_1 to 100_3) may be activated. For example, the third transistor M3 of the first memory cell 100_1 is based on the reference voltage V DD applied from the
여기서, 제1 리드 비트라인(RBL1)으로부터 제1 메모리셀(100_1)의 제3 트랜지스터(M3)를 통해 제1 리드 비트라인 바(예컨대, RBLB1) 사이에서, 제1 업데이트 전류(IU1)가 흐를 수 있다. 또한, 제1 리드 비트라인(RBL1)으로부터 제2 메모리셀(100_1)의 제3 트랜지스터(M3)를 통해 제1 리드 비트라인 바(예컨대, RBLB1) 사이에서, 제2 업데이트 전류(IU2)가 흐를 수 있다. 또한, 제1 리드 비트라인(RBL1)으로부터 제1 메모리셀(100_1)의 제3 트랜지스터(M3)를 통해 제1 리드 비트라인 바(예컨대, RBLB1) 사이에서, 제3 업데이트 전류(IU3)가 흐를 수 있다. Here, between the first read bit line RBL1 and the first read bit line bar (eg, RBLB1) through the third transistor M3 of the first memory cell 100_1, the first update current I U1 is Can flow. In addition, between the first read bit line bar (eg, RBLB1) through the third transistor M3 of the second memory cell 100_1 from the first read bit line RBL1, the second update current I U2 is Can flow. Also, between the first read bit line RBL1 and the first read bit line bar (eg, RBLB1) through the third transistor M3 of the first memory cell 100_1, the third update current I U3 is Can flow.
즉, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)을 참조하면, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)의 각 제3 트랜지스터(M3)를 통해 개별적으로 흐르는 제1 내지 제3 업데이트 전류(IU1~IU3)는, 시냅스가중치(Synaptic Weight)의 업데이트에 대응될 수 있다. 이에 따라, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)의 리드 비트라인(예컨대, RBL1), 리드 비트라인 바(예컨대, RBLB1) 및 컬럼 라이트워드 라인(예컨대, CWWL1)을 통해 전압을 인가하는 라이트동작(WRIGHT)은 시냅스가중치(Synaptic Weight)를 업데이트하는 동작에 대응될 수 있다. That is, referring to stochastic spike time-dependent plasticity (STDP), first to third update currents individually flowing through each of the third transistors M3 of at least one memory cell (eg, 100_1 to 100_3) (I U1 ~ I U3 ) may correspond to an update of a synaptic weight. Accordingly, voltage is applied through a read bit line (eg, RBL1), a read bit line bar (eg, RBLB1), and a column write word line (eg, CWWL1) of at least one memory cell (eg, 100_1 to 100_3). The write operation (WRIGHT) may correspond to an operation of updating the synaptic weight.
도 8은 비지도 학습을 지원하는 프로세싱 인 메모리(10)의 동작프로세스이다. 8 is an operation process of the processing in
도 1 내지 도 4 및 도 8을 참조하면, 먼저 S110 단계에서, Modified 그레이 코드에 대응되는 이진상태 데이터가 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 기저장될 수 있다. Referring to FIGS. 1 to 4 and 8, first, in step S110, binary state data corresponding to the modified gray code may be pre-stored in at least one memory cell (eg, 100_1 to 100_3).
이때, 120 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행할 수 있다. 즉, 주변회로부(200)는 라이트동작(WRIGHT)을 수행하기 이전에, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행하여 각 시냅스(Synapse)의 값을 개별적으로 확인할 수 있다. At this time, in step 120, the
그런 다음, S130 단계에서, 주변회로부(200)는 Modified 그레이 코드에 기초에 기초하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다. 즉, 주변회로부(200)는 Modified 그레이 코드에 기초하여, 한번에 하나의 메모리셀에 대해 순차적으로 라이트동작(WRIGHT)을 수행할 수 있기 때문에, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에 대한 학습을 지원할 수 있다. Then, in step S130, the
이후, S140 단계에서, 메모리셀 어레이(100)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대한 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치(Synaptic Weight)를 업데이트할 수 있다. Thereafter, in step S140, the
도 9는 도 8의 주변회로부(200)의 실시예에 따른 MAC 연산동작 프로세스이다. 9 is a MAC operation process according to the embodiment of the
도 1 내지 도 5 및 도 9를 참조하면, S210 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)과 연결된 각 리드 비트라인(예컨대, RBL1~RBL3)으로 리드전압(VREAD)을 각각 인가할 수 있다. Referring to FIGS. 1 to 5 and 9, in step S210, the
또한, S220 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)과 연결된 각 리드 워드라인(예컨대, RWL1~RWL3)으로 기준전압(VDD)을 각각 인가할 수 있다. In addition, in step S220, the
그런 다음, S230 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에서 컬럼 비트라인(예컨대, CBL1)으로 흐르는 각 전류(I1~I3)를 한번에 리드할 수 있다. 즉, 주변회로부(200)는 컬럼 비트라인(예컨대, CBL1)을 통해 서로 연결된 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작을 한번에 수행함으로써, 각 전류(I1~I3)의 합인 리드전류(예컨대, IREAD1)를 리드할 수 있다. Then, in step S230, the
이후, S240 단계에서, 주변회로부(200)는 각 전류(예컨대, I1~I3)의 합에 대응되는 리드전류(예컨대, IREAD1)에 기초하여, 멤브레인 전위(Membrane potential)를 업데이트하는 MAC(Multiply and ACcumulate) 연산을 수행할 수 있다. 즉, 주변회로부(200)는 각 전류(예컨대, I1~I3)의 합에 대응되는 리드전류(예컨대, IREAD1)에 기초하여, 각 시냅스(Synapse)의 값이 더해진 값을 확인할 수 있다. Thereafter, in step S240, the
도 10은 도 8의 주변회로부(200)의 실시예에 따른 시냅스가중치에 대한 업데이트 동작 프로세스이다. 10 is a process of updating synaptic weights according to the embodiment of the
도 1 내지 도 4, 도 6, 도 7 및 도 10을 참조하면, S310 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 연결된 각 리드 비트라인바(예컨대, RBLB1~RBLB3)로 리드전압(VREAD)을 각각 인가할 수 있다. 1 to 4, 6, 7 and 10, in step S310, the
또한, S320 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 연결된 각 컬럼리드 워드라인(예컨대, CRWL1~CRWL3)으로 기준전압(VDD)을 각각 인가할 수 있다. In addition, in step S320, the
그런 다음, S330 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)을 통해 각 리드 비트라인(예컨대, RBL1~RBL3)으로 흐르는 각 리드전류(IREAD1~IREAD3)를 개별적으로 리드할 수 있다. Then, in step S330, the
이때, S340 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 연결된 각 리드 비트라인(예컨대, RBL1~RBL3)으로 제1 라이트전압(VWR1)을 각각 인가할 수 있다.At this time, in step S340, the
또한, S350 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 연결된 각 리드 비트라인 바(예컨대, RBLB1~RBLB3)로 제2 라이트전압(VWR2)을 각각 인가할 수 있다. In addition, in step S350, the
이후, S360 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 연결된 각 컬럼라이트 워드라인(예컨대, CWWL1~CWL3)으로 기준전압(VDD)을 각각 인가할 수 있다. Thereafter, in step S360, the
본 출원은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 출원의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present application has been described with reference to the exemplary embodiment illustrated in the drawings, this is only exemplary, and those of ordinary skill in the art will appreciate that various modifications and equivalent other exemplary embodiments are possible therefrom. Therefore, the true technical protection scope of the present application should be determined by the technical idea of the attached registration claims.
10: 메모리장치
100: 메모리셀 어레이
200: 주변회로부
210: 라인구동부
220: 전원공급부
230: 읽기회로부
240: 제어로직10: memory device
100: memory cell array
200: peripheral circuit unit
210: line driving unit
220: power supply
230: read circuit part
240: control logic
Claims (20)
상기 적어도 하나의 메모리셀에 대해 Modified 그레이 코드에 기초하여, 하나의 메모리셀 단위로 라이트동작을 수행하는 주변회로부를 포함하고,
상기 Modified 그레이 코드는, 기설정된 그레이 코드의 변환 순서로부터 일부의 코드 순서가 변경된 코드인 프로세싱 인 메모리. A memory cell array for updating a synaptic weight value based on a switching probability of binary state data for at least one memory cell; And
A peripheral circuit unit for performing a write operation in units of one memory cell based on the modified gray code for the at least one memory cell,
The modified gray code is a code in which a partial code order is changed from a preset gray code conversion order.
상기 주변회로부는, 상기 라이트동작 이전에 상기 적어도 하나의 메모리셀에 대해 리드동작을 개별적으로 수행하는 프로세싱 인 메모리. The method of claim 1,
The peripheral circuit unit is a processing-in-memory that individually performs a read operation on the at least one memory cell before the write operation.
상기 주변회로부는, 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인으로 리드전압을 인가하고, 각 리드 워드라인으로 기준전압을 인가하는 프로세싱 인 메모리. The method of claim 2,
The peripheral circuit unit applies a read voltage to each read bit line connected to the at least one memory cell and applies a reference voltage to each read word line.
상기 주변회로부는, 상기 적어도 하나의 메모리셀에 연결된 각 컬럼 비트라인으로 흐르는 각 리드전류를 개별적으로 리드하는 프로세싱 인 메모리. The method of claim 2,
The peripheral circuit unit is a processing-in-memory for individually reading each read current flowing to each column bit line connected to the at least one memory cell.
상기 주변회로부는, 상기 각 컬럼 비트라인을 통해 각 리드전류를 리드하는 읽기회로부를 포함하고,
상기 읽기회로부는, 복수의 감지증폭기들과 복수의 아날로그 디지털 컨버터들을 포함하며,
상기 복수의 감지증폭기들과 상기 복수의 아날로그 디지털 컨버터들 중 각 리드전류를 리드하는 감지증폭기 및 아날로그 디지털 컨버터의 동작 개수는 상기 컬럼 비트라인의 개수에 일대일 대응되는 프로세싱 인 메모리. The method of claim 4,
The peripheral circuit unit includes a read circuit unit for reading each read current through each column bit line,
The read circuit unit includes a plurality of sense amplifiers and a plurality of analog to digital converters,
A processing-in-memory corresponding to the number of the plurality of sense amplifiers and the plurality of analog-to-digital converters, the number of operations of the sense amplifiers and analog-to-digital converters that lead each read current is one-to-one corresponding to the number of column bit lines.
상기 주변회로부는, 상기 적어도 하나의 메모리셀에 연결된 서로 동일한 컬럼 비트라인으로 흐르는 각 리드전류를 한번에 리드하는 프로세싱 인 메모리.The method of claim 1,
The peripheral circuit unit is a processing-in-memory for reading each read current flowing through the same column bit line connected to the at least one memory cell at a time.
상기 주변회로부는, 상기 컬럼 비트라인으로 흐르는 상기 각 리드전류의 합에 기초하여, MAC(Multiply and ACcumulate) 연산을 수행하는 프로세싱 인 메모리. The method of claim 6,
The peripheral circuit unit is a processing-in-memory that performs a multiply and accumulate (MAC) operation based on the sum of the read currents flowing through the column bit line.
상기 주변회로부는, 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인바로 리드전압을 인가하고, 상기 적어도 하나의 메모리셀과 연결된 각 컬럼리드 워드라인으로 기준전압을 인가하는 프로세싱 인 메모리. The method of claim 6,
The peripheral circuit unit applies a read voltage to each read bit line bar connected to the at least one memory cell and applies a reference voltage to each column lead word line connected to the at least one memory cell.
상기 주변회로부는, 상기 라이트동작을 수행할 때, 상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인으로 제1 라이트전압을 인가하고,
상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인바로 제2 라이트전압을 인가하며,
상기 적어도 하나의 메모리셀에 연결된 각 컬럼라이트 워드라인으로 기준전압을 인가하는 프로세싱 인 메모리. The method of claim 1,
The peripheral circuit unit, when performing the write operation, applies a first write voltage to each read bit line connected to the at least one memory cell,
Applying a second write voltage to each read bit line bar connected to the at least one memory cell,
A processing in-memory for applying a reference voltage to each column write word line connected to the at least one memory cell.
상기 메모리셀 어레이는, 상기 제1 및 제2 라이트전압과 상기 기준전압에 따라, 상기 시냅스가중치를 업데이트하는 프로세싱 인 메모리. The method of claim 9,
The memory cell array is a processing-in-memory for updating the synaptic weight value according to the first and second write voltages and the reference voltage.
상기 적어도 하나의 메모리셀의 개수는 상기 시냅스가중치의 비트 개수에 일대일로 대응되는 프로세싱 인 메모리. The method of claim 1,
The number of the at least one memory cell corresponds to the number of bits of the synaptic weight value on a one-to-one basis.
상기 시냅스가중치의 비트 개수는 상기 Modified 그레이 코드의 비트 개수에 일대일로 대응되는 프로세싱 인 메모리. The method of claim 3,
The number of bits of the synaptic weight value corresponds to the number of bits of the modified gray code on a one-to-one basis.
상기 적어도 하나의 메모리셀들은 STT(spin-torque transfer) 메모리셀 또는 SOT (Spin-Orbit Torque) 메모리셀 중 적어도 어느 하나인 프로세싱 인 메모리. The method of claim 1,
The at least one memory cell is at least one of a spin-torque transfer (STT) memory cell or a spin-orbit torque (SOT) memory cell.
주변회로부가 Modified 그레이 코드에 대응되는 이진상태 데이터가 저장된 적어도 하나의 메모리셀에 대해 리드동작을 개별적으로 수행하는 단계;
상기 주변회로부가 상기 Modified 그레이 코드에 기초하여, 상기 적어도 하나의 메모리셀에 대해 하나의 메모리셀 단위로 라이트동작을 수행하는 단계; 및
메모리셀 어레이가 상기 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치를 업데이트하는 단계를 포함하는 비지도 학습을 지원하고,
상기 Modified 그레이 코드는, 기설정된 그레이 코드의 변환 순서로부터 일부의 코드 순서가 변경된 코드인 것을 특징으로 하는 프로세싱 인 메모리의 동작방법.As an operation method of processing in memory that supports unsupervised learning,
Individually performing a read operation on at least one memory cell in which binary state data corresponding to the modified gray code is stored by the peripheral circuit unit;
Performing, by the peripheral circuit unit, a write operation for the at least one memory cell in units of one memory cell based on the modified gray code; And
The memory cell array supports unsupervised learning comprising the step of updating a synaptic weight based on the switching probability of the binary state data,
The modified gray code is a code in which a partial code order is changed from a preset gray code conversion order.
상기 리드동작을 개별적으로 수행하는 단계는, 상기 주변회로부가 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인으로 리드전압을 인가하고, 각 리드 워드라인으로 기준전압을 인가하는 단계; 및
상기 주변회로부가 상기 적어도 하나의 메모리셀로부터 각 컬럼 비트라인으로 흐르는 각 리드전류를 리드하는 단계를 포함하는 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법.The method of claim 15,
Individually performing the read operation may include applying a read voltage to each read bit line connected to the at least one memory cell by the peripheral circuit unit and applying a reference voltage to each read word line; And
And reading, by the peripheral circuit unit, each read current flowing from the at least one memory cell to each column bit line.
상기 주변회로부가 상기 컬럼 비트라인을 통해 서로 연결된 상기 적어도 하나의 메모리셀에 대해 리드동작을 동시에 수행하는 단계를 더 포함하는 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법.The method of claim 16,
Further comprising simultaneously performing a read operation on the at least one memory cell connected to each other through the column bit line by the peripheral circuit unit to support unsupervised learning.
상기 리드동작을 동시에 수행하는 단계는, 상기 주변회로부가 각 리드전류의 합에 기초하여, 시냅스 후 뉴런의 멤브레인 전위를 업데이트하는 MAC 연산을 수행하는 단계를 포함하는 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법.The method of claim 17,
The step of performing the read operation at the same time includes the step of performing a MAC operation in which the peripheral circuit unit updates the membrane potential of the neuron after synapse based on the sum of the read currents. Processing in-memory supporting unsupervised learning Method of operation.
상기 라이트동작을 수행하기 이전에, 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인바로 리드전압을 인가하고, 상기 적어도 하나의 메모리셀과 연결된 각 컬럼리드 워드라인으로 기준전압을 인가하는 단계; 및
상기 적어도 하나의 메모리셀을 통해 각 리드 비트라인으로 흐르는 제2 리드전류를 각각 리드하는 단계를 더 포함하는 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법.The method of claim 15,
Before performing the write operation, applying a read voltage to each read bit line bar connected to the at least one memory cell, and applying a reference voltage to each column lead word line connected to the at least one memory cell; And
The method of operating a processing-in-memory supporting unsupervised learning, further comprising reading a second read current flowing to each read bit line through the at least one memory cell.
상기 라이트동작을 수행하는 단계는, 상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인으로 제1 라이트전압을 인가하는 단계;
상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인바로 제2 라이트전압을 인가하는 단계; 및
상기 적어도 하나의 메모리셀에 연결된 각 컬럼라이트 워드라인으로 기준전압을 인가하는 단계를 포함하는 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법.
The method of claim 19,
The performing of the write operation may include applying a first write voltage to each read bit line connected to the at least one memory cell;
Applying a second write voltage to each read bit line bar connected to the at least one memory cell; And
A method of operating a processing-in-memory supporting unsupervised learning, comprising applying a reference voltage to each column write word line connected to the at least one memory cell.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180171084A KR102208604B1 (en) | 2018-12-27 | 2018-12-27 | Processing in memory capable of unsupervised learning and operation method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180171084A KR102208604B1 (en) | 2018-12-27 | 2018-12-27 | Processing in memory capable of unsupervised learning and operation method thereof |
Publications (3)
Publication Number | Publication Date |
---|---|
KR20200081623A KR20200081623A (en) | 2020-07-08 |
KR102208604B1 true KR102208604B1 (en) | 2021-01-29 |
KR102208604B9 KR102208604B9 (en) | 2021-09-17 |
Family
ID=71600030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180171084A KR102208604B1 (en) | 2018-12-27 | 2018-12-27 | Processing in memory capable of unsupervised learning and operation method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102208604B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230146936A (en) | 2022-04-13 | 2023-10-20 | 고려대학교 산학협력단 | Processing-in-memory device based on spin orbit torque device |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102342994B1 (en) * | 2020-07-21 | 2021-12-24 | 고려대학교 산학협력단 | In memory computing supporting arithmetic operations |
US11893278B2 (en) | 2021-02-08 | 2024-02-06 | Samsung Electronics Co., Ltd. | Memory controller and memory control method for generating commands based on a memory request |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105378848B (en) * | 2013-04-24 | 2018-10-02 | 慧与发展有限责任合伙企业 | A kind of memory devices and a kind of method |
KR20180111156A (en) * | 2017-03-31 | 2018-10-11 | 에스케이하이닉스 주식회사 | Neuromorphic Device Including a Post-Synaptic Neuron Having a Feed-back Line and A Method for Operating the Neuromorphic Device |
-
2018
- 2018-12-27 KR KR1020180171084A patent/KR102208604B1/en active IP Right Grant
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230146936A (en) | 2022-04-13 | 2023-10-20 | 고려대학교 산학협력단 | Processing-in-memory device based on spin orbit torque device |
Also Published As
Publication number | Publication date |
---|---|
KR102208604B9 (en) | 2021-09-17 |
KR20200081623A (en) | 2020-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102208604B1 (en) | Processing in memory capable of unsupervised learning and operation method thereof | |
KR102547518B1 (en) | Non-volatile data retention circuit, data processing system and method of writing complementary non-volatile charge states of data retention circuit | |
JP5173706B2 (en) | Nonvolatile semiconductor memory device and reading method thereof | |
WO2004095464A1 (en) | Magnetic random access memory using improved data read out method | |
US11217302B2 (en) | Three-dimensional neuromorphic device including switching element and resistive element | |
KR102497616B1 (en) | Device and method for reading data in memory | |
CN113688984B (en) | Memory binarization neural network calculation circuit based on magnetic random access memory | |
US10453512B2 (en) | Memory device | |
JPWO2008146553A1 (en) | Magnetic random access memory | |
Jang et al. | Stochastic SOT device based SNN architecture for On-chip Unsupervised STDP Learning | |
US20210334633A1 (en) | Neuromorphic computing device and operating method thereof | |
JP4932273B2 (en) | Arithmetic processing circuit using ferroelectric capacitor and arithmetic method | |
CN113053433B (en) | Semiconductor memory device with a memory cell having a memory cell with a memory cell having a memory cell | |
Kang et al. | Spin orbit torque device based stochastic multi-bit synapses for on-chip STDP learning | |
US20230005529A1 (en) | Neuromorphic device and electronic device including the same | |
JP2007164837A (en) | Nonvolatile storage device | |
Kim et al. | An energy-efficient processing-in-memory architecture for long short term memory in spin orbit torque mram | |
CN114496013A (en) | Spin random access memory computing device, memory computing method, and electronic apparatus | |
KR102571118B1 (en) | Neuromorphic apparatus | |
JP2008258362A (en) | Semiconductor memory device | |
US20230386601A1 (en) | Neuromorphic device | |
KR102571115B1 (en) | Neuromorphic apparatus and driving method thereof | |
TWI795766B (en) | Computing system, computing device and computing method | |
Borders et al. | Magnetic tunnel junction-based crossbars: improving neural network performance by reducing the impact of non-idealities | |
Park | Self-Writing XNOR Magnetic Random-Access Memory for Binary Neural Network Acceleration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
G170 | Publication of correction |