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 PDF

Info

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
Application number
KR1020180171084A
Other languages
Korean (ko)
Other versions
KR102208604B9 (en
KR20200081623A (en
Inventor
박종선
장윤호
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020180171084A priority Critical patent/KR102208604B1/en
Publication of KR20200081623A publication Critical patent/KR20200081623A/en
Application granted granted Critical
Publication of KR102208604B1 publication Critical patent/KR102208604B1/en
Publication of KR102208604B9 publication Critical patent/KR102208604B9/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital 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/165Auxiliary circuits
    • G11C11/1673Reading or sensing circuits or methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital 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/161Digital 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital 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/165Auxiliary circuits
    • G11C11/1675Writing 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

비지도 학습 기능을 지원하는 프로세싱 인 메모리 및 그 동작 방법{PROCESSING IN MEMORY CAPABLE OF UNSUPERVISED LEARNING AND OPERATION METHOD THEREOF}Processing in memory supporting unsupervised learning and its operation method {PROCESSING IN MEMORY CAPABLE OF UNSUPERVISED LEARNING AND OPERATION METHOD THEREOF}

본 출원은, 프로세싱 인 메모리 및 그 동작 방법에 관한 것으로, 보다 구체적으로, 비지도 학습을 지원하는 저항성 메모리셀의 소자 개수를 최소화시킬 수 있는 프로세싱 인 메모리 및 그 동작 방법에 관한 것이다. 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 memory device 10 according to an embodiment of the present application, and FIG. 2 is a conceptual diagram of a spiking neural network (SNN).

먼저, 도 1을 참조하면, 메모리 장치(10)는 메모리셀 어레이(100) 및 주변회로부(200)를 포함할 수 있다. First, referring to FIG. 1, the memory device 10 may include a memory cell array 100 and a peripheral circuit unit 200.

메모리셀 어레이(100)는 복수의 메모리셀들(100_1~100_N)을 포함할 수 있다. 여기서, 복수의 메모리셀들(100_1~100_N)은 이진상태의 데이터를 각각 저장할 수 있다. 이때, 이진상태 데이터는 1 또는 0의 값을 가지는 데이터일 수 있다. The memory cell array 100 may include a plurality of memory cells 100_1 to 100_N. Here, the plurality of memory cells 100_1 to 100_N may each store binary data. In this case, the binary state data may be data having a value of 1 or 0.

실시예에 따라, 메모리셀 어레이(100)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대한 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치(Synaptic Weight)를 업데이트할 수 있다. 여기서, 시냅스가중치(Synaptic Weight)의 비트 개수는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)의 개수와 일대일 대응될 수 있다. According to an embodiment, the memory cell array 100 may update a synaptic weight based on a switching probability of binary state data for at least one memory cell (eg, 100_1 to 100_3). Here, the number of bits of the synaptic weight may correspond one-to-one to the number of at least one memory cell (eg, 100_1 to 100_3).

보다 구체적으로, 복수의 메모리셀들(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 peripheral circuit unit 200, Status data can be switched. Here, the switching probability of the binary state data may vary depending on the magnitude of the current flowing through at least one memory cell (eg, 100_1 to 100_3) or the duration of the current. In this case, the magnitude of the current flowing through each memory cell (eg, 100_1 to 100_3) or the duration of the current may be varied in units of one memory cell.

즉, 주변회로부(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 peripheral circuit unit 200, the memory cell array 100 is a synaptic weight value (Synaptic Weight) can be updated. Accordingly, the processing-in-memory 10 can store binary state data and at the same time perform an operation for unsupervised learning, so that it can be utilized in an intelligent semiconductor.

다음으로, 주변회로부(200)는 Modified 그레이 코드에 기초하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다. 여기서, Modified 그레이 코드는 기설정된 그레이 코드(Gray Code)의 변환 순서로부터 일부의 코드 순서가 변경된 코드일 수 있다. 이때, 기설정된 그레이 코드(Gray Code)는 이진법 부호의 일종으로, 한 수에서 다음의 수로 크기가 변할 때 인접 코드 간 오직 한자리의 비트만 변화하게 만들어진 잘알려진 코드일 수 있다. Next, the peripheral circuit unit 200 may perform a write operation WRIGHT on at least one memory cell (eg, 100_1 to 100_3) in units of one memory cell based on the modified gray code. Here, the modified gray code may be a code in which a part of the code order has been changed from the preset gray code conversion order. At this time, the preset Gray Code is a type of binary code, and may be a well-known code made in which only one digit bit between adjacent codes changes when the size changes from one number to the next.

즉, 주변회로부(200)는 Modified 그레이 코드에 기초하여, 한번에 하나의 메모리셀에 대해 순차적으로 라이트동작(WRIGHT)을 수행할 수 있기 때문에, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에 대한 학습을 지원할 수 있다. 도 2에 도시된 바와 같이, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)은, 스파이킹 뉴럴 네트워크(SNN)에서, 시냅스 전 뉴런(Pre Synapse Neuron)과 시냅스 후 뉴런(Post Synapse Neuron)에서 발화된 스파이크 간의 시간차에 따라 가중치 업데이트 확률을 규정하는 규칙일 수 있다. That is, since the peripheral circuit unit 200 can sequentially perform a write operation (WRIGHT) on one memory cell at a time based on the Modified Gray code, stochastic spike time dependent plasticity (STDP) Can support learning. As shown in FIG. 2, stochastic spike time-dependent plasticity (STDP) fires in a spiking neural network (SNN), a pre-synapse neuron, and a post-synapse neuron (Post Synapse Neuron). It may be a rule that defines the probability of updating the weights according to the time difference between the spikes.

일 실시예에 따라, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행할 수 있다. According to an embodiment, the peripheral circuit unit 200 may individually perform a read operation (READ) for at least one memory cell (eg, 100_1 to 100_3).

보다 구체적으로, 주변회로부(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 peripheral circuit unit 200 individually performs a read operation (READ) for at least one memory cell (eg, 100_1 to 100_3) before performing a write operation (WRIGHT) based on a modified gray code. can do. That is, the peripheral circuit unit 200 individually performs a read operation (READ) for at least one memory cell (eg, 100_1 to 100_3) before performing the write operation (WRIGHT), thereby stochastic spike time. The value of each synapse in the dependent plasticity (STDP) can be checked in advance. Here, each synapse may mean a connection line between a pre-synapse neuron (Pre Synapse Neuron) and a post-synapse neuron (Post Synapse Neuron) in the spiking neural network (SNN), as shown in FIG. 2. .

즉, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행하여, 각 시냅스(Synapse)의 값을 미리 확인할 수 있다. 그런 다음, 주변회로부(200)는 Modified 그레이 코드에 기초하여, 한번에 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행함으로써, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에 대한 학습을 지원할 수 있다. That is, the peripheral circuit unit 200 may individually perform a read operation READ on at least one memory cell (eg, 100_1 to 100_3) to check the value of each synapse in advance. Then, the peripheral circuit unit 200 may support learning about stochastic spike time dependent plasticity (STDP) by performing a write operation (WRIGHT) in units of one memory cell at a time based on the modified gray code. have.

다른 실시예에 따라, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행할 수 있다. According to another embodiment, the peripheral circuit unit 200 may perform a read operation READ on at least one memory cell (eg, 100_1, 100_4, and 100_5) at a time.

보다 구체적으로, 주변회로부(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 peripheral circuit unit 200 performs a read operation (READ) on at least one memory cell (eg, 100_1, 100_4, and 100_5) at a time. can do. Accordingly, the peripheral circuit unit 200 can minimize an error rate that occurs when performing a write operation (WRIGHT) based on a conventional gray code.

실시예에 따른 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행함으로써, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에서의 각 시냅스(Synapse)의 값이 더해진 값을 확인할 수 있다. The peripheral circuit unit 200 according to the embodiment performs a read operation (READ) on at least one memory cell (e.g., 100_1, 100_4, and 100_5) at a time, so that a stochastic spike time dependent plasticity (STDP) You can check the added value of each synapse.

여기서, 각 시냅스(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 peripheral circuit unit 200 performs a read operation (READ) on at least one memory cell (eg, 100_1, 100_4, and 100_5) at a time after performing the write operation (WRIGHT) based on the modified gray code, A multiply and accumulate (MAC) operation to update the membrane potential may be performed.

본 출원의 실시예에 따른 프로세싱 인 메모리(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 memory 10 according to the embodiment of the present application may include a memory cell array 100 and a peripheral circuit unit 200. More specifically, the memory cell array 100 may update a synaptic weight based on a switching probability of binary state data for at least one memory cell (eg, 100_1 to 100_3). In this case, the peripheral circuit unit 200 may perform a write operation WRIGHT on at least one memory cell (eg, 100_1 to 100_3) in units of one memory cell based on the modified gray code. That is, the processing-in-memory 10 corresponds to the number of at least one memory cell (eg, 100_1 to 100_3) one-to-one according to the number of bits of the Snaptic Weight, so as to update the Synaptic Weight. The number of required cells can be minimized. Accordingly, the processing in memory 10 can reduce the power consumption for the write operation (WRIGHT) and the read operation (READ) and the area of the memory required for unsupervised learning of the Spiking Neural Network. have.

이하, 도 3을 참조하여, 도 1의 메모리셀 어레이(100)에 대해 보다 구체적으로 설명될 것이다. Hereinafter, the memory cell array 100 of FIG. 1 will be described in more detail with reference to FIG. 3.

도 3은 도 1의 메모리셀 어레이(100)에 대한 실시 예이다. 3 is an embodiment of the memory cell array 100 of FIG. 1.

도 3을 참조하면, 메모리셀 어레이(100)는 복수의 메모리셀들(100_1~100_N), 복수의 메모리셀들(100_1~100_N)에 연결되는 복수의 로우라인들(RL1~RLN) 및 복수의 컬럼라인들(CL1~CLN)을 포함할 수 있다. Referring to FIG. 3, the memory cell array 100 includes a plurality of memory cells 100_1 to 100_N, a plurality of row lines RL1 to RLN connected to the plurality of memory cells 100_1 to 100_N, and a plurality of It may include column lines CL1 to CLN.

보다 구체적으로, 복수의 로우라인들(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 peripheral circuit unit 200. Can be connected. Hereinafter, the first to third transistors M1 to M3 will be described in more detail with reference to FIG. 5.

또한, 제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 peripheral circuit portion 200 from the reference layer 101_1 through the first row line RL1, and the peripheral circuit portion 200 through the metal layer 104_1. Can be electrically connected. At this time, the first memory cell 100_1 applies the write voltage V W and the reference voltage V DD according to the write operation WRIGHT from the peripheral circuit unit 200 to the first row line RL1 or the first column line ( It can be applied through at least one line of CL1).

또한, 주변회로부(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 peripheral circuit unit 200, the amount of current flowing through the metal layer 104_1 or the duration of the current may be varied in the first memory cell 100_1. In this case, the first memory cell 100_1 may switch the magnetization direction of the data storage layer 103_1 based on the magnitude of the current or the duration of the current. That is, the first memory cell 100_1 switches the size of the resistance representing the binary state of any one of the binary state data '1' and '0' based on the magnitude of the current or the duration of the current to convert the data. Can be saved.

이때, 제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 peripheral circuit unit 200. Can be updated.

보다 구체적으로, 도 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 peripheral circuit unit 200 of FIG. 1.

도 1과 도 4를 참조하면, 주변회로부(200)는 라인구동부(210), 전원공급부(220), 읽기회로부(230) 및 제어로직(240)을 포함할 수 있다. 1 and 4, the peripheral circuit unit 200 may include a line driver 210, a power supply unit 220, a read circuit unit 230, and a control logic 240.

본 출원에서, 주변회로부(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 peripheral circuit unit 200 is described as components including a line driver 210, a power supply unit 220, a read circuit unit 230, and a control logic 240 for convenience of description, It is not. For example, the peripheral circuit unit 200 includes a plurality of read bit lines RBL1 to RBLN, a plurality of read word lines RMWL1 to RWLN, and a plurality of read bit line bars RBLB1 to RBLBN, depending on the function. Row selection circuits for selecting at least one of the plurality of column bit lines CBL1 to CBLN, a plurality of column lead word lines CRWL1 to CRWLN, and a plurality of column write word lines CRWL1 to CRWLN) may further include column selection circuits for selecting at least one. Such a plurality of circuits may independently perform the functions of the line driver 210.

먼저, 라인구동부(210)는 복수의 로우라인들(RL1~RLN)과 복수의 컬럼라인들(CL1~CLN)을 통해 복수의 메모리셀들(100_1~100_N)과 전원공급부(220)를 선택적으로 연결시킬 수 있다. 예를 들면, 라인구동부(210)는 제1 로우라인(RL1)과 제1 컬럼라인(CL1)을 통해 제1 메모리셀(100_1)과 전원공급부(220)를 선택적으로 연결시킬 수 있다. First, the line driver 210 selectively selects the plurality of memory cells 100_1 to 100_N and the power supply 220 through a plurality of row lines RL1 to RLN and a plurality of column lines CL1 to CLN. You can connect. For example, the line driver 210 may selectively connect the first memory cell 100_1 and the power supply 220 through the first row line RL1 and the first column line CL1.

다음으로, 전원공급부(220)는 라인구동부(210)를 통해 연결된 복수의 메모리셀들(100_1~100_N) 중 어느 하나의 메모리셀에 리드전압(VREAD), 라이트전압(VWRIGHT) 및 기준전압(VDD) 중 어느 하나의 전압을 인가할 수 있다. Next, the power supply unit 220 is a read voltage VREAD, a write voltage VWRIGHT, and a reference voltage VDD to any one of the plurality of memory cells 100_1 to 100_N connected through the line driver 210. ) Can be applied.

다음으로, 읽기회로부(230)는 감지증폭기들(231_1~231_N)과 아날로그-디지털 컨버터들(233_1~233_N)을 포함할 수 있다. 보다 구체적으로, 읽기회로부(230)는 메모리셀 어레이(100)로부터 감지증폭기들(231_1~231_N)과 아날로그-디지털 컨버터들(233_1~233_N)을 통해 흐르는 리드전류를 리드할 수 있다. Next, the read circuit unit 230 may include sense amplifiers 231_1 to 231_N and analog-to-digital converters 233_1 to 233_N. More specifically, the read circuit unit 230 may read a read current flowing from the memory cell array 100 through the sense amplifiers 231_1 to 231_N and the analog-to-digital converters 233_1 to 233_N.

다음으로, 제어로직(240)은 라인구동부(210), 전원공급부(220) 및 읽기회로부(230)의 각 동작을 독립적으로 수행시키도록 제어할 수 있다. 즉, 제어로직(240)은 라인구동부(210), 전원공급부(220) 및 읽기회로부(230)를 제어하여, 메모리셀 어레이(100)에 대한 라이트동작(WRIGHT) 및 리드동작(READ)을 수행할 수 있다. Next, the control logic 240 may control each operation of the line driving unit 210, the power supply unit 220, and the read circuit unit 230 to be independently performed. That is, the control logic 240 controls the line driving unit 210, the power supply unit 220, and the read circuit unit 230 to perform a write operation (WRIGHT) and a read operation (READ) for the memory cell array 100. can do.

실시예에 따라, 제어로직(240)은 Modified 그레이 코드에 기초하여, 메모리셀 어레이(100) 중 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다.According to an embodiment, the control logic 240 writes to at least one memory cell (eg, 100_1 to 100_3) of the memory cell array 100 in units of one memory cell based on the modified gray code (WRIGHT). Can be done.

보다 구체적으로, 제어로직(240)은 Modified 그레이 코드의 한개의 비트만 변화되는 특징에 기초하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다. 예를 들면, 다음의 표 1에 기재된 바와 같이, 제어로직(240)은 Modified 그레이 코드의 한개의 비트만 변화되는 특징에 기초하여, 제1 메모리셀(100_1), 제2 메모리셀(100_2) 및 제3 메모리셀(100_3)에 대한 라이트동작(WRIGHT)을 한번에 하나씩 순서대로 수행할 수 있다.More specifically, the control logic 240 writes to at least one memory cell (for example, 100_1 to 100_3) in units of one memory cell based on the characteristic that only one bit of the modified gray code is changed (WRIGHT). Can be done. For example, as shown in Table 1 below, the control logic 240 is based on the characteristic that only one bit of the modified gray code is changed, the first memory cell 100_1, the second memory cell 100_2, and The write operation WRIGHT for the third memory cell 100_3 may be sequentially performed one at a time.

Figure 112018131218379-pat00001
Figure 112018131218379-pat00001

표 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 control logic 240 may individually perform a read operation READ on at least one memory cell (eg, 100_1 to 100_3) before performing the write operation WRIGHT. More specifically, the control logic 240 individually reads a read operation (READ) for at least one memory cell (eg, 100_1 to 100_3) before performing a write operation (WRIGHT) based on a modified gray code. can do.

예를 들면, 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 control logic 240 is at least one memory cell (for example, For 100_1 to 100_3), the read operation (READ) can be individually performed. That is, the control logic 240 is a read operation (READ) for the first memory cell 100_1 among at least one memory cell (eg, 100_1 to 100_3), a read operation (READ) for the second memory cell 100_2 And a read operation READ on the third memory cell 100_3 may be individually performed.

이에 따라, 제어로직(240)은 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행하여, 각 시냅스(Synapse)의 값을 미리 확인함으로써, 라이트동작(WRIGHT)을 통해 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에 대한 학습을 지원할 수 있다.Accordingly, the control logic 240 individually performs a read operation (READ) for at least one memory cell (e.g., 100_1 to 100_3) and checks the value of each synapse in advance, so that the write operation (WRIGHT) ) Can support learning about stochastic spike time-dependent plasticity (STDP).

그런 다음, 제어로직(240)은 Modified 그레이 코드에 기초하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다. Then, the control logic 240 may perform a write operation WRIGHT on at least one memory cell (eg, 100_1 to 100_3) in units of one memory cell based on the modified gray code.

이후, 제어로직(240)은 서로 동일한 컬럼라인(예컨대, CL1)에 연결된 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행할 수 있다. 보다 구체적으로, 제어로직(240)은 Modified 그레이 코드에 기초하는 라이트동작(WRIGHT)을 수행한 이후, 서로 동일한 컬럼라인(예컨대, CL1)에 연결된 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행할 수 있다. Thereafter, the control logic 240 may perform a read operation READ on at least one memory cell (eg, 100_1, 100_4, and 100_5) connected to the same column line (eg, CL1). More specifically, after performing a write operation (WRIGHT) based on the modified gray code, the control logic 240 performs at least one memory cell (eg, 100_1, 100_4, and 100_5) connected to the same column line (eg, CL1). ), you can perform the read operation (READ) at once.

예를 들면, 제어로직(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 control logic 240 is the remaining memory cells (eg, 100_4) connected to the same column line (eg, CL1) as one of at least one memory cell (eg, 100_1 to 100_3). And 100_5), a read operation (READ) may be performed at once. In addition, a read operation for the remaining memory cells (eg, 100_6 and 100_7) connected to the same column line (eg, CL2) as one of the at least one memory cell (eg, 100_1 to 100_3) (eg, 100_2) READ) can be executed at once. In addition, a read operation for the remaining memory cells (eg, 100_8 and 100_9) connected to the same column line (eg, CL3) as one of the at least one memory cell (eg, 100_1 to 100_3) (eg, 100_3) ( READ) can be executed at once.

즉, 제어로직(240)은 Modified 그레이 코드에 기초하는 라이트동작(WRIGHT)을 수행한 이후, 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행함으로써, 멤브레인 전위(Membrane potential)를 업데이트하는 MAC(Multiply and ACcumulate) 연산을 수행할 수 있다. That is, the control logic 240 performs a read operation (READ) on at least one memory cell (e.g., 100_1, 100_4, and 100_5) at a time after performing the write operation (WRIGHT) based on the modified gray code, A multiply and accumulate (MAC) operation to update the membrane potential may be performed.

도 5는 도 1의 프로세싱 인 메모리(10)의 MAC 연산을 위한 리드동작(READ)에 대한 실시 예이다. 5 is an embodiment of a read operation (READ) for a MAC operation of the processing in memory 10 of FIG. 1.

도 1 내지 도 5를 참조하면, 프로세싱 인 메모리(10)는 메모리셀 어레이(100)와 주변회로부(200)를 포함할 수 있다. 이하, 도 1 내지 도 4에서 설명된 동일한 부재번호의 메모리셀 어레이(100)와 주변회로부(200)에 대한 중복된 내용을 생략될 것이다. 1 to 5, the processing in memory 10 may include a memory cell array 100 and a peripheral circuit unit 200. Hereinafter, redundant contents of the memory cell array 100 and the peripheral circuit unit 200 having the same reference numerals described in FIGS. 1 to 4 will be omitted.

먼저, 적어도 하나의 메모리셀(예컨대, 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 line driver 210 is connected to at least one memory cell (eg, 100_1, 100_4, and 100_5). Each row line (eg, RL1 to RL3) can be selected. More specifically, the line driver 210 connects each read bit line (eg, RBL1 to RBL3) and each read word line (eg, RWL1 to RWL3) connected to at least one memory cell (eg, 100_1, 100_4, and 100_5). You can choose.

그런 다음, 라인구동부(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 line driver 210 may electrically connect at least one memory cell (eg, 100_1, 100_4, and 100_5) and the power supply unit 220 to each other through each row line (eg, RL1 to RL3). More specifically, the line driver 210 may electrically connect at least one memory cell (eg, 100_1, 100_4, and 100_5) and the power supply unit 220 to each other through each read bit line (eg, RBL1 to RBL3). have. In addition, the line driver 210 may electrically connect at least one memory cell (eg, 100_1, 100_4, and 100_5) and the power supply unit 220 to each other through each read word line (eg, RWL1 to RWL3).

이때, 적어도 하나의 메모리셀(예컨대, 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 peripheral circuit unit 200 through the first read word line RWL1, the first column bit line CBL1 and the first memory cell ( The reference layer 101_1 of 100_1) may be electrically connected. Further, when the reference voltage VDD is not applied to the first transistor M1, the first column bit line CBL1 and the reference layer 101_1 of the first memory cell 100_1 may be short-circuited.

다음으로, 제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 peripheral circuit unit 200 through the first column lead word line CRWL1, the first column bit line CBL1 and the second transistor M2. 1 The reference layer 101_1 of the memory cell 100_1 may be connected. In addition, when the reference voltage V DD is not applied to the second transistor M2, the first column bit line CBL1 and the reference layer 101_1 of the first memory cell 100_1 may be short-circuited.

다음으로, 제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 peripheral circuit unit 200. In this case, the third transistor M3 may short or connect between one side of the metal layer 104_1 of the first memory cell 100_1 and the first read bit line bar RBLB1 based on the read voltage VREAD. have.

다음으로, 전원공급부(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 power supply unit 220 may apply the read voltage VREAD and the reference voltage VDD through each row line (eg, RL1 to RL3) selected through the line driver 210. More specifically, the power supply unit 220 may apply a read voltage VREAD to at least one memory cell (eg, 100_1, 100_4, and 100_5) through each read bit line (eg, RBL1 to RBL3). Also, the power supply unit 220 may apply the reference voltage VDD to at least one memory cell (eg, 100_1, 100_4, and 100_5) through each read word line (eg, RWL1 to RWL3).

이때, 읽기회로부(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 read circuit unit 230 may read a read current (eg, I READ1 ) flowing through one column line (eg, CL1) connected to at least one memory cell (eg, 100_1, 100_4, and 100_5). Here, the read current (eg, I READ1 ) may be the sum of the currents I1 to I3 flowing from each memory cell (eg, 100_1, 100_4, and 100_5) to one column bit line (eg, CBL1). That is, the read circuit unit 230 may read each current I1 to I3 flowing through one column line (eg, CL1) connected to at least one memory cell (eg, 100_1, 100_4, and 100_5) at a time.

예를 들면, 리드전류(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 read circuit unit 230 senses and amplifies the read current I READ1 through one sense amplifier (eg, 231_1) connected to one column bit line (eg, CBL1), and an analog-to-digital converter (eg, The read current I READ1 sensed and amplified through 233_1) may be converted into a digital value.

즉, 읽기회로부(230)는 각 컬럼 비트라인(예컨대, CBL1~CBL3)에 연결된 각 감지증폭기(예컨대, 231_1~231_3)와 각 아날로그-디지털 컨버터(예컨대, 233_1~233_3)를 통해 각 리드전류(예컨대, IREAD1~IREAD3)를 리드할 수 있다. That is, the read circuit unit 230 is connected to each column bit line (for example, CBL1 to CBL3) through each sense amplifier (for example, 231_1 to 231_3) and each analog-to-digital converter (for example, 233_1 to 233_3) each read current ( For example, I READ1 ~ I READ3 ) can be read.

실시예에 따라, 읽기회로부(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 read circuit unit 230 is each column bit line (eg, CBL1 to CBL3) It may correspond to the number of and one-to-one.

예를 들면, 적어도 하나의 메모리셀(예컨대, 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 read circuit unit 230 includes a sensing amplifier (eg, 231_1 to 231_3) and an analog-to-digital converter for reading a read current (eg, I READ1 to I READ3 ) flowing through the column bit lines (eg, CBL1 to CBL3). By minimizing the number of (eg, 233_1 to 233_3), the area and power consumption of the processing in memory 10 can be minimized.

도 6은 도 1의 프로세싱 인 메모리(10)의 시냅스가중치(Synaptic Weight)의 업데이트를 위한 리드동작(READ)에 대한 실시 예이다. 6 is an embodiment of a read operation READ for updating the synaptic weight of the processing in memory 10 of FIG. 1.

도 1 내지 도 6을 참조하면, 프로세싱 인 메모리(10)는 메모리셀 어레이(100)와 주변회로부(200)를 포함할 수 있다. 이하, 도 1 내지 5에서 설명된 동일한 부재번호의 메모리셀 어레이(100)와 주변회로부(200)에 대한 중복된 내용은 생략될 것이다.1 to 6, the processing in memory 10 may include a memory cell array 100 and a peripheral circuit unit 200. Hereinafter, redundant contents of the memory cell array 100 and the peripheral circuit unit 200 having the same reference numerals described in FIGS. 1 to 5 will be omitted.

먼저, 라인구동부(210)는 시냅스가중치(Synaptic Weight)의 업데이트를 위한 리드동작(READ)을 위하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 하나의 로우라인(예컨대, RL1)과 각 컬럼라인(예컨대, CL1~CL3)을 선택할 수 있다. 보다 구체적으로, 라인구동부(210)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 하나의 리드 비트라인 바(예컨대, RBLB1)와 각 컬럼 리드 워드라인(예컨대, CRWL1~CRWL3)을 선택할 수 있다. First, the line driver 210 includes one row line (eg, RL1) connected to at least one memory cell (eg, 100_1 to 100_3) for a read operation (READ) for updating the synaptic weight. Each column line (eg, CL1 to CL3) can be selected. More specifically, the line driver 210 selects one read bit line bar (eg, RBLB1) connected to at least one memory cell (eg, 100_1 ~ 100_3) and each column read word line (eg, CRWL1 ~ CRWL3). I can.

그런 다음, 라인구동부(210)는 로우라인(예컨대, RL1)과 컬럼라인(예컨대, CL1~CL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. Then, the line driver 210 electrically connects the at least one memory cell (eg, 100_1 to 100_3) and the power supply unit 220 to each other through a row line (eg, RL1) and a column line (eg, CL1 to CL3). You can connect.

보다 구체적으로, 라인구동부(210)는 로우라인(예컨대, RL1) 중 리드 비트라인 바(예컨대, RBLB1)를 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. 또한, 라인구동부(210)는 컬럼라인(예컨대, CL1~CL3) 중 각 컬럼 리드 워드라인(예컨대, CRWL1~CRWL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. More specifically, the line driver 210 electrically connects at least one memory cell (eg, 100_1 to 100_3) and the power supply unit 220 to each other through a read bit line bar (eg, RBLB1) among the row lines (eg, RL1). Can be connected by In addition, the line driver 210 includes at least one memory cell (eg, 100_1 to 100_3) and a power supply unit 220 through each column read word line (eg, CRWL1 to CRWL3) among column lines (eg, CL1 to CL3). Can be electrically connected to each other.

다음으로, 전원공급부(220)는 라인구동부(210)를 통해 선택된 로우라인(예컨대, RL1)을 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 리드전압(VREAD)을 인가할 수 있다. 이때, 전원공급부(220)는 라인구동부(210)를 통해 선택된 컬럼라인(예컨대, CL1~CL3)을 통해 기준전압(VDD)을 인가할 수 있다. Next, the power supply unit 220 may apply a read voltage V READ to at least one memory cell (eg, 100_1 to 100_3) through a row line (eg, RL1) selected through the line driver 210. . In this case, the power supply unit 220 may apply the reference voltage V DD through the column line (eg, CL1 to CL3) selected through the line driver 210.

보다 구체적으로, 전원공급부(220)는 로우라인(예컨대, RL1) 중 리드 비트라인 바(예컨대, RBLB1)를 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 리드전압(VREAD)을 인가할 수 있다. 또한, 전원공급부(220)는 컬럼라인(예컨대, CL1~CL3) 중 각 컬럼 리드 워드라인(예컨대, CRWL1~CRWL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 기준전압(VDD)을 인가할 수 있다. More specifically, the power supply unit 220 applies a read voltage V READ to at least one memory cell (eg, 100_1 to 100_3) through a read bit line bar (eg, RBLB1) of the row line (eg, RL1). can do. In addition, the power supply unit 220 applies a reference voltage V DD to at least one memory cell (eg, 100_1 to 100_3) through each column read word line (eg, CRWL1 to CRWL3) among the column lines (eg, CL1 to CL3). ) Can be authorized.

이때, 적어도 하나의 메모리셀(예컨대, 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 peripheral circuit unit 200 through the first column lead word line CRWL1. The read bit line bar RBLB1 and the reference layer 101_1 of the first memory cell 100_1 may be connected.

다음으로, 읽기회로부(230)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 각 로우라인(예컨대, RL1~RL3)을 통해 흐르는 각 리드전류(예컨대, IREAD1~IREAD3)를 개별적으로 리드할 수 있다. Next, the read circuit unit 230 individually reads each read current (eg, I READ1 ~ I READ3 ) flowing through each row line (eg, RL1 ~ RL3) connected to at least one memory cell (eg, 100_1 ~ 100_3). You can lead by

예를 들면, 각 리드전류(예컨대, 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 read circuit unit 230 may sequentially read through one sensing amplifier (eg, 231_1) for each read current (eg, I READ1 to I READ3 ). That is, the read circuit unit 230 may individually read through each sense amplifier (eg, 231_1 to 231_3) in order to read each read current (eg, I READ1 to I READ3 ) one by one. At this time, since the read circuit unit 230 reads each read current (eg, I READ1 ~ I READ3 ) one by one, each analog-to-digital converter (eg, 233_1 ~ 233_3) is not required, each sense amplifier (eg, 231_1 ~ 231_3) ) To lead. Here, each read current (eg, I READ1 to I READ3 ) may correspond to a synapse in the spiking neural network SNN.

이후, 제어로직(240)은 읽기회로부(230)를 통해 로우라인 방향으로 리드된 각 리드전류(예컨대, IREAD1~IREAD3)에 기초하여, 시냅스가중치(Synaptic Weight)의 업데이트를 위한 시냅스(Synapse)를 확인할 수 있다. Thereafter, the control logic 240 is based on each read current (for example, I READ1 ~ I READ3 ) read in the row line direction through the read circuit unit 230, the synapse for updating the synaptic weight (Synapse Weight). ) Can be checked.

도 7은 도 1의 프로세싱 인 메모리(10)의 시냅스가중치(Synaptic Weight)의 업데이트를 위한 라이트동작(WRIGHT)에 대한 실시 예이다.7 is an embodiment of a write operation (WRIGHT) for updating a synaptic weight of the processing in memory 10 of FIG. 1.

도 1 내지 도 3, 도 5 및 도 6을 참조하면, 프로세싱 인 메모리(10)는 프로세싱 인 메모리(10)는 메모리셀 어레이(100)와 주변회로부(200)를 포함할 수 있다. 이하, 도 1 내지 6에서 설명된 동일한 부재번호의 메모리셀 어레이(100)와 주변회로부(200)에 대한 중복된 내용을 생략될 것이다.1 to 3, 5, and 6, the processing in memory 10 may include a memory cell array 100 and a peripheral circuit unit 200. Hereinafter, redundant contents of the memory cell array 100 and the peripheral circuit unit 200 having the same reference numerals described in FIGS. 1 to 6 will be omitted.

먼저, 시냅스가중치(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 line driver 210 includes a row line (eg, RL1) connected to at least one memory cell (eg, 100_1 to 100_3). A column line (eg, CL1) can be selected.

보다 구체적으로, 라인구동부(210)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 로우라인(예컨대, RL1) 중 리드 비트라인(예컨대, RBL1)과 리드 비트라인 바(예컨대, RBLB1)를 선택할 수 있다. 그런 다음, 라인구동부(210)는 리드 비트라인(예컨대, RBL1)과 리드 비트라인 바(예컨대, RBLB1)를 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. More specifically, the line driver 210 includes a read bit line (eg, RBL1) and a read bit line bar (eg, RBLB1) among row lines (eg, RL1) connected to at least one memory cell (eg, 100_1 to 100_3). You can choose Then, the line driver 210 electrically connects the at least one memory cell (eg, 100_1 to 100_3) and the power supply unit 220 to each other through a read bit line (eg, RBL1) and a read bit line bar (eg, RBLB1). Can be connected by

이때, 라인구동부(210)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 각 컬럼라인(예컨대, CL1~CL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. 보다 구체적으로, 라인구동부(210)는 각 컬럼 라이트워드 라인(예컨대, CWWL1~CWWL3)을 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. At this time, the line driver 210 includes at least one memory cell (eg, 100_1 to 100_3) and a power supply unit through each column line (eg, CL1 to CL3) connected to the at least one memory cell (eg, 100_1 to 100_3). 220) can be electrically connected to each other. More specifically, the line driver 210 may electrically connect each column write word line (eg, CWWL1 to CWWL3) to at least one memory cell (eg, 100_1 to 100_3) and the power supply unit 220 to each other.

다음으로, 전원공급부(220)는 라인구동부(210)를 통해 선택된 리드 비트라인(예컨대, RBL1)을 통해 제1 라이트전압(VWR1)을 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 인가할 수 있다. 또한, 전원공급부(220)는 라인구동부(210)를 통해 선택된 리드 비트라인 바(예컨대, RBLB1)를 통해 제2 라이트전압(VWR2)을 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 인가할 수 있다. 여기서, 제1 라이트전압(VWR1)과 제2 라이트전압(VWR2)은 서로 크기가 다른 전압일 수 있다. Next, the power supply unit 220 applies the first write voltage V WR1 to at least one memory cell (eg, 100_1 to 100_3) through the read bit line (eg, RBL1) selected through the line driver 210 can do. In addition, the power supply unit 220 applies a second write voltage V WR2 to at least one memory cell (eg, 100_1 to 100_3) through a read bit line bar (eg, RBLB1) selected through the line driver 210 can do. Here, the first write voltage V WR1 and the second write voltage V WR2 may be voltages having different magnitudes.

또한, 전원공급부(220)는 라인구동부(210)를 통해 선택된 각 컬럼 라이트워드 라인(예컨대, CWWL1~CWWL3)을 통해 기준전압(VDD)을 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 인가할 수 있다. In addition, the power supply unit 220 transmits the reference voltage V DD to at least one memory cell (eg, 100_1 to 100_3) through each column write word line (eg, CWWL1 to CWWL3) selected through the line driver 210. Can be approved.

이때, 적어도 하나의 메모리셀(예컨대, 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 peripheral circuit unit 200 through the first column write word line CWWL1. The lead bit line bar RBLB1 and one side of the metal layer 104_1 of the first memory cell 100_1 may be connected.

여기서, 제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 memory 10 supporting unsupervised learning.

도 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 peripheral circuit unit 200 may individually perform a read operation (READ) for at least one memory cell (eg, 100_1 to 100_3). That is, before performing a write operation (WRIGHT), the peripheral circuit unit 200 individually performs a read operation (READ) for at least one memory cell (eg, 100_1 to 100_3) to obtain the value of each synapse. Can be checked individually.

그런 다음, S130 단계에서, 주변회로부(200)는 Modified 그레이 코드에 기초에 기초하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다. 즉, 주변회로부(200)는 Modified 그레이 코드에 기초하여, 한번에 하나의 메모리셀에 대해 순차적으로 라이트동작(WRIGHT)을 수행할 수 있기 때문에, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에 대한 학습을 지원할 수 있다. Then, in step S130, the peripheral circuit unit 200 performs a write operation (WRIGHT) in units of one memory cell for at least one memory cell (eg, 100_1 to 100_3) based on the modified gray code. I can. That is, since the peripheral circuit unit 200 can sequentially perform a write operation (WRIGHT) on one memory cell at a time based on the Modified Gray code, stochastic spike time dependent plasticity (STDP) Can support learning.

이후, S140 단계에서, 메모리셀 어레이(100)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대한 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치(Synaptic Weight)를 업데이트할 수 있다. Thereafter, in step S140, the memory cell array 100 may update a synaptic weight based on a switching probability of binary state data for at least one memory cell (eg, 100_1 to 100_3).

도 9는 도 8의 주변회로부(200)의 실시예에 따른 MAC 연산동작 프로세스이다. 9 is a MAC operation process according to the embodiment of the peripheral circuit unit 200 of FIG. 8.

도 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 peripheral circuit unit 200 includes read bit lines (eg, RBL1 to RBL3) connected to at least one memory cell (eg, 100_1, 100_4, and 100_5). Each of the read voltages V READ can be applied.

또한, S220 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)과 연결된 각 리드 워드라인(예컨대, RWL1~RWL3)으로 기준전압(VDD)을 각각 인가할 수 있다. In addition, in step S220, the peripheral circuit unit 200 applies a reference voltage V DD to each read word line (eg, RWL1 to RWL3) connected to at least one memory cell (eg, 100_1, 100_4, and 100_5). I can.

그런 다음, 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 peripheral circuit unit 200 can read each current (I1 to I3) flowing from at least one memory cell (eg, 100_1, 100_4, and 100_5) to the column bit line (eg, CBL1) at a time. have. That is, the peripheral circuit unit 200 performs a read operation on at least one memory cell (eg, 100_1, 100_4, and 100_5) connected to each other through a column bit line (eg, CBL1) at a time, so that each current (I1 to I3) A read current (eg, I READ1 ) which is the sum of can be read.

이후, S240 단계에서, 주변회로부(200)는 각 전류(예컨대, I1~I3)의 합에 대응되는 리드전류(예컨대, IREAD1)에 기초하여, 멤브레인 전위(Membrane potential)를 업데이트하는 MAC(Multiply and ACcumulate) 연산을 수행할 수 있다. 즉, 주변회로부(200)는 각 전류(예컨대, I1~I3)의 합에 대응되는 리드전류(예컨대, IREAD1)에 기초하여, 각 시냅스(Synapse)의 값이 더해진 값을 확인할 수 있다. Thereafter, in step S240, the peripheral circuit unit 200 updates the membrane potential based on the read current (eg, I READ1 ) corresponding to the sum of each current (eg, I1 to I3). and ACcumulate) operation can be performed. That is, the peripheral circuit unit 200 may check a value to which a value of each synapse is added based on a read current (eg, I READ1 ) corresponding to the sum of each current (eg, I1 to I3).

도 10은 도 8의 주변회로부(200)의 실시예에 따른 시냅스가중치에 대한 업데이트 동작 프로세스이다. 10 is a process of updating synaptic weights according to the embodiment of the peripheral circuit unit 200 of FIG. 8.

도 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 peripheral circuit unit 200 is each read bit line bar connected to at least one memory cell (eg, 100_1 to 100_3) (for example, Each of the read voltages V READ can be applied to RBLB1 to RBLB3).

또한, S320 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 연결된 각 컬럼리드 워드라인(예컨대, CRWL1~CRWL3)으로 기준전압(VDD)을 각각 인가할 수 있다. In addition, in step S320, the peripheral circuit unit 200 may apply a reference voltage V DD to each column lead word line (eg, CRWL1 to CRWL3) connected to at least one memory cell (eg, 100_1 to 100_3). have.

그런 다음, S330 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)을 통해 각 리드 비트라인(예컨대, RBL1~RBL3)으로 흐르는 각 리드전류(IREAD1~IREAD3)를 개별적으로 리드할 수 있다. Then, in step S330, the peripheral circuit unit 200 is each read current flowing to each read bit line (eg, RBL1 ~ RBL3) through at least one memory cell (eg, 100_1 ~ 100_3) (I READ1 ~ I READ3 ) You can lead individually.

이때, S340 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 연결된 각 리드 비트라인(예컨대, RBL1~RBL3)으로 제1 라이트전압(VWR1)을 각각 인가할 수 있다.At this time, in step S340, the peripheral circuit unit 200 applies the first write voltage V WR1 to each read bit line (eg, RBL1 to RBL3) connected to at least one memory cell (eg, 100_1 to 100_3). I can.

또한, S350 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 연결된 각 리드 비트라인 바(예컨대, RBLB1~RBLB3)로 제2 라이트전압(VWR2)을 각각 인가할 수 있다. In addition, in step S350, the peripheral circuit unit 200 applies a second write voltage V WR2 to each read bit line bar (eg, RBLB1 to RBLB3) connected to at least one memory cell (eg, 100_1 to 100_3). can do.

이후, S360 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 연결된 각 컬럼라이트 워드라인(예컨대, CWWL1~CWL3)으로 기준전압(VDD)을 각각 인가할 수 있다. Thereafter, in step S360, the peripheral circuit unit 200 may apply a reference voltage V DD to each column write word line (eg, CWWL1 to CWL3) connected to at least one memory cell (eg, 100_1 to 100_3). have.

본 출원은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 출원의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.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.
제1항에 있어서,
상기 주변회로부는, 상기 라이트동작 이전에 상기 적어도 하나의 메모리셀에 대해 리드동작을 개별적으로 수행하는 프로세싱 인 메모리.
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.
제2항에 있어서,
상기 주변회로부는, 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인으로 리드전압을 인가하고, 각 리드 워드라인으로 기준전압을 인가하는 프로세싱 인 메모리.
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.
제2항에 있어서,
상기 주변회로부는, 상기 적어도 하나의 메모리셀에 연결된 각 컬럼 비트라인으로 흐르는 각 리드전류를 개별적으로 리드하는 프로세싱 인 메모리.
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.
제4항에 있어서,
상기 주변회로부는, 상기 각 컬럼 비트라인을 통해 각 리드전류를 리드하는 읽기회로부를 포함하고,
상기 읽기회로부는, 복수의 감지증폭기들과 복수의 아날로그 디지털 컨버터들을 포함하며,
상기 복수의 감지증폭기들과 상기 복수의 아날로그 디지털 컨버터들 중 각 리드전류를 리드하는 감지증폭기 및 아날로그 디지털 컨버터의 동작 개수는 상기 컬럼 비트라인의 개수에 일대일 대응되는 프로세싱 인 메모리.
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.
제1항에 있어서,
상기 주변회로부는, 상기 적어도 하나의 메모리셀에 연결된 서로 동일한 컬럼 비트라인으로 흐르는 각 리드전류를 한번에 리드하는 프로세싱 인 메모리.
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.
제6항에 있어서,
상기 주변회로부는, 상기 컬럼 비트라인으로 흐르는 상기 각 리드전류의 합에 기초하여, 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.
제6항에 있어서,
상기 주변회로부는, 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인바로 리드전압을 인가하고, 상기 적어도 하나의 메모리셀과 연결된 각 컬럼리드 워드라인으로 기준전압을 인가하는 프로세싱 인 메모리.
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항에 있어서,
상기 주변회로부는, 상기 라이트동작을 수행할 때, 상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인으로 제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.
제9항에 있어서,
상기 메모리셀 어레이는, 상기 제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.
삭제delete 제1항에 있어서,
상기 적어도 하나의 메모리셀의 개수는 상기 시냅스가중치의 비트 개수에 일대일로 대응되는 프로세싱 인 메모리.
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.
제3항에 있어서,
상기 시냅스가중치의 비트 개수는 상기 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.
제1항에 있어서,
상기 적어도 하나의 메모리셀들은 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.
제15항에 있어서,
상기 리드동작을 개별적으로 수행하는 단계는, 상기 주변회로부가 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인으로 리드전압을 인가하고, 각 리드 워드라인으로 기준전압을 인가하는 단계; 및
상기 주변회로부가 상기 적어도 하나의 메모리셀로부터 각 컬럼 비트라인으로 흐르는 각 리드전류를 리드하는 단계를 포함하는 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법.
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.
제16항에 있어서,
상기 주변회로부가 상기 컬럼 비트라인을 통해 서로 연결된 상기 적어도 하나의 메모리셀에 대해 리드동작을 동시에 수행하는 단계를 더 포함하는 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법.
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.
제17항에 있어서,
상기 리드동작을 동시에 수행하는 단계는, 상기 주변회로부가 각 리드전류의 합에 기초하여, 시냅스 후 뉴런의 멤브레인 전위를 업데이트하는 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.
제15항에 있어서,
상기 라이트동작을 수행하기 이전에, 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인바로 리드전압을 인가하고, 상기 적어도 하나의 메모리셀과 연결된 각 컬럼리드 워드라인으로 기준전압을 인가하는 단계; 및
상기 적어도 하나의 메모리셀을 통해 각 리드 비트라인으로 흐르는 제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.
제19항에 있어서,
상기 라이트동작을 수행하는 단계는, 상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인으로 제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.


KR1020180171084A 2018-12-27 2018-12-27 Processing in memory capable of unsupervised learning and operation method thereof KR102208604B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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