KR20200081623A - 비지도 학습 기능을 지원하는 프로세싱 인 메모리 및 그 동작 방법 - Google Patents

비지도 학습 기능을 지원하는 프로세싱 인 메모리 및 그 동작 방법 Download PDF

Info

Publication number
KR20200081623A
KR20200081623A KR1020180171084A KR20180171084A KR20200081623A KR 20200081623 A KR20200081623 A KR 20200081623A KR 1020180171084 A KR1020180171084 A KR 1020180171084A KR 20180171084 A KR20180171084 A KR 20180171084A KR 20200081623 A KR20200081623 A KR 20200081623A
Authority
KR
South Korea
Prior art keywords
memory cell
read
memory
peripheral circuit
bit line
Prior art date
Application number
KR1020180171084A
Other languages
English (en)
Other versions
KR102208604B9 (ko
KR102208604B1 (ko
Inventor
박종선
장윤호
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020180171084A priority Critical patent/KR102208604B1/ko
Publication of KR20200081623A publication Critical patent/KR20200081623A/ko
Application granted granted Critical
Publication of KR102208604B1 publication Critical patent/KR102208604B1/ko
Publication of KR102208604B9 publication Critical patent/KR102208604B9/ko

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Memory System (AREA)

Abstract

본 출원의 일 실시예에 따르는 프로세싱 인 메모리는 적어도 하나의 메모리셀에 대한 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치를 업데이트하는 메모리셀 어레이 및 기설정된 그레이 코드에 기초하여, 상기 적어도 하나의 메모리셀에 대해 하나의 메모리셀 단위로 라이트동작을 수행하는 주변회로부를 포함한다.

Description

비지도 학습 기능을 지원하는 프로세싱 인 메모리 및 그 동작 방법{PROCESSING IN MEMORY CAPABLE OF UNSUPERVISED LEARNING AND OPERATION METHOD THEREOF}
본 출원은, 프로세싱 인 메모리 및 그 동작 방법에 관한 것으로, 보다 구체적으로, 비지도 학습을 지원하는 저항성 메모리셀의 소자 개수를 최소화시킬 수 있는 프로세싱 인 메모리 및 그 동작 방법에 관한 것이다.
뇌의 동작을 모방한 비지도 학습방법을 이용하는 뉴로모픽(Neuromorphic) 하드웨어들이 개발되고 있다. 이러한 뉴로모픽 하드웨어들은 비지도 학습방법을 지원하기 위하여, 많은 데이터를 연산 처리해야 하고, 또한, 빈번하게 메모리를 접근할 수 있다. 이로 인하여, 뉴로모픽 하드웨어들 장치의 면적은 점점 커지고, 이에 따른 에너지 소모량이 증가하는 문제가 있다.
최근, 뉴로모픽 하드웨어는 저항성 메모리셀을 이용하여, 메모리장치의 내부에서 연산을 수행하는 인 메모리 컴퓨팅(In-memory computing)이 개발중에 있다. 여기서, 인 메모리 컴퓨팅(In-Memory Computing)은 메모리 외부에서 복잡한 확률계산을 할 필요없이, 전류만 조절하여 메모리셀을 리드하는 동작으로, 메모리셀의 확률적인 스위칭에 의한 비지도 학습이 수행될 수 있다.
즉, 인 메모리 컴퓨팅(In-memory computing)은, 뉴로모픽 하드웨어에서 가장 많이 수행되는 MAC (Multiply-and-accumulate)연산을 메모리 내부에서 수행가능하게 할 수 있다. 이때, 인 메모리 컴퓨팅은 SOT 또는 STT 메모리장치의 저항성 메모리셀에 대한 확률적인 스위칭 특징을 이용하여, 메모리 내부에서 복잡한 비지도 학습을 간단하게 수행하게 할 수 있다.
그러나, 종래의 인 메모리 컴퓨팅(In-memory computing)은 비지도 학습에서, 하나의 시냅스 당 2N-1 개의 저항성 메모리셀들을 필요로 하기 때문에, 연산 정확도를 높이기 위하여, 하나의 시냅스가 멀티비트인 경우, 보다 많은 개수의 저항성 메모리셀들이 필요하게 된다.
이에 따라, 종래의 인 메모리 컴퓨팅(In-memory computing)은 보다 많은 저항성 메모리셀들에 필요에 의해 메모리 장치의 면적증가를 초래하고, 리드동작에 따른 에너지 소모가 증가되는 문제가 있다.
본 출원의 목적은, 비지도 학습을 지원하는 저항성 메모리셀의 소자 개수를 최소화시킬 수 있는 프로세싱 인 메모리 및 그 동작 방법을 제공하기 위한 것이다.
본 출원의 일 실시예에 따르는 프로세싱 인 메모리는 적어도 하나의 메모리셀에 대한 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치를 업데이트하는 메모리셀 어레이 및 상기 적어도 하나의 메모리셀에 대해 Modified 그레이 코드에 기초하여, 하나의 메모리셀 단위로 라이트동작을 수행하는 주변회로부를 포함한다.
실시예에 있어서, 상기 주변회로부는, 상기 라이트동작 이전에 상기 적어도 하나의 메모리셀에 대해 리드동작을 개별적으로 수행한다.
실시예에 있어서, 상기 주변회로부는, 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인으로 리드전압을 인가하고, 각 리드 워드라인으로 기준전압을 인가한다.
실시예에 있어서, 상기 주변회로부는, 상기 적어도 하나의 메모리셀에 연결된 각 컬럼 비트라인으로 흐르는 각 리드전류를 개별적으로 리드한다.
실시예에 있어서, 상기 주변회로부는, 상기 각 컬럼 비트라인을 통해 각 리드전류를 리드하는 읽기회로부를 포함하고, 상기 읽기회로부는, 복수의 감지증폭기들과 복수의 아날로그 디지털 컨버터들을 포함하며, 상기 복수의 감지증폭기들과 상기 복수의 아날로그 디지털 컨버터들 중 각 리드전류를 리드하는 감지증폭기 및 아날로그 디지털 컨버터의 동작 개수는 상기 컬럼 비트라인의 개수에 일대일 대응된다.
실시예에 있어서, 상기 주변회로부는, 상기 적어도 하나의 메모리셀에 연결된 서로 동일한 컬럼 비트라인으로 흐르는 각 리드전류를 한번에 리드한다.
실시예에 있어서, 상기 주변회로부는, 상기 컬럼 비트라인으로 흐르는 상기 각 리드전류의 합에 기초하여, MAC(Multiply and ACcumulate) 연산을 수행한다.
실시예에 있어서, 상기 주변회로부는, 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인바로 리드전압을 인가하고, 상기 적어도 하나의 메모리셀과 연결된 각 컬럼리드 워드라인으로 기준전압을 인가한다.
실시예에 있어서, 상기 주변회로부는, 상기 라이트동작을 수행할 때, 상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인으로 제1 라이트전압을 인가하고, 상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인 바로 제2 라이트전압을 인가하며, 상기 적어도 하나의 메모리셀에 연결된 각 컬럼라이트 워드라인으로 기준전압을 인가한다.
실시예에 있어서, 상기 메모리셀 어레이는, 상기 제1 및 제2 라이트전압과 상기 기준전압에 따라, 상기 시냅스가중치를 업데이트한다.
실시예에 있어서, 상기 Modified 그레이 코드는, 기설정된 그레이 코드의 변환 순서로부터 일부의 코드 순서가 변경된 코드이다.
실시예에 있어서, 상기 적어도 하나의 메모리셀의 개수는 상기 시냅스가중치의 비트 개수에 일대일로 대응된다.
실시예에 있어서, 상기 시냅스가중치의 비트 개수는 상기 Modified 그레이 코드의 비트 개수에 일대일로 대응된다.
실시예에 있어서, 상기 적어도 하나의 메모리셀들은 STT(spin-torque transfer) 메모리셀 또는 SOT (Spin-Orbit Torque) 메모리셀 중 적어도 어느 하나이다.
본 출원의 일 실시예에 따르는 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법으로서, 주변회로부가 Modified 그레이 코드에 대응되는 이진상태 데이터가 저장된 적어도 하나의 메모리셀에 대해 리드동작을 개별적으로 수행하는 단계, 상기 주변회로부가 상기 Modified 그레이 코드에 기초하여, 상기 적어도 하나의 메모리셀에 대해 하나의 메모리셀 단위로 라이트동작을 수행하는 단계 및 메모리셀 어레이가 상기 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치를 업데이트하는 단계를 포함한다.
실시예에 있어서, 상기 리드동작을 개별적으로 수행하는 단계는, 상기 주변회로부가 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인으로 리드전압을 인가하고, 각 리드 워드라인으로 기준전압을 인가하는 단계 및 상기 주변회로부가 상기 적어도 하나의 메모리셀로부터 각 컬럼 비트라인으로 흐르는 각 리드전류를 리드하는 단계를 포함한다.
실시예에 있어서, 상기 주변회로부가 컬럼라인을 통해 서로 연결된 상기 적어도 하나의 메모리셀에 대해 리드동작을 동시에 수행하는 단계를 더 포함한다.
실시예에 있어서, 상기 리드동작을 동시에 수행하는 단계는, 상기 주변회로부가 각 리드전류의 합에 기초하여, 멤브레인 전위를 업데이트하는 MAC 연산을 수행하는 단계를 포함한다.
실시예에 있어서, 상기 라이트동작을 수행하는 단계는, 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인바로 리드전압을 인가하고, 상기 적어도 하나의 메모리셀과 연결된 각 컬럼리드 워드라인으로 기준전압을 인가하는 단계 및 상기 적어도 하나의 메모리셀을 통해 각 리드 비트라인으로 흐르는 제2 리드전류를 각각 리드하는 단계를 더 포함한다.
실시예에 있어서, 상기 라이트동작을 수행하는 단계는, 상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인으로 제1 라이트전압을 인가하는 단계, 상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인 바로 제2 라이트전압을 인가하는 단계 및 상기 적어도 하나의 메모리셀에 연결된 각 컬럼라이트 워드라인으로 기준전압을 인가하는 단계를 포함한다.
본 출원의 실시예에 따른 프로세싱 인 메모리 및 그 동작 방법은, 비지도 학습을 지원하는 메모리셀의 개수를 최소화시켜, 메모리장치의 면적과 에너지소모를 감소킬 수 있는 효과가 있다.
또한, 프로세싱 인 메모리는 이진상태 데이터에 대한 저장 동작과 비지도 학습에 대한 연산 동작을 수행할 수 있어, 지능형 반도체(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 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 출원의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 사이의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 출원을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 출원이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 출원의 바람직한 실시 예를 설명함으로써, 본 출원을 상세히 설명한다.
도 1은 본 출원의 실시예에 따른 메모리 장치(10)의 블록도이고, 도 2는 스파이킹 뉴럴 네트워크(SNN)의 개념도이다.
먼저, 도 1을 참조하면, 메모리 장치(10)는 메모리셀 어레이(100) 및 주변회로부(200)를 포함할 수 있다.
메모리셀 어레이(100)는 복수의 메모리셀들(100_1~100_N)을 포함할 수 있다. 여기서, 복수의 메모리셀들(100_1~100_N)은 이진상태의 데이터를 각각 저장할 수 있다. 이때, 이진상태 데이터는 1 또는 0의 값을 가지는 데이터일 수 있다.
실시예에 따라, 메모리셀 어레이(100)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대한 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치(Synaptic Weight)를 업데이트할 수 있다. 여기서, 시냅스가중치(Synaptic Weight)의 비트 개수는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)의 개수와 일대일 대응될 수 있다.
보다 구체적으로, 복수의 메모리셀들(100_1~100_N) 중 적어도 하나의 메모리셀(예컨대, 100_1~100_3)은 주변회로부(200)의 라이트동작(WRIGHT)에 따라 선택적으로 흐르는 전류에 기초하여, 이진상태 데이터를 스위칭할 수 있다. 여기서, 이진상태 데이터의 스위칭 확률은 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 흐르는 전류의 크기 또는 전류의 듀레이션(Duration)에 따라, 가변될 수 있다. 이때, 각 메모리셀(예컨대, 100_1~100_3)에 흐르는 전류의 크기 또는 전류의 듀레이션(Duration)은 하나의 메모리셀 단위로 가변될 수 있다.
즉, 주변회로부(200)의 라이트동작(WRIGHT)에 따라 가변되는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대한 이진상태 데이터의 스위칭 확률에 기초하여, 메모리셀 어레이(100)는 시냅스가중치(Synaptic Weight)를 업데이트할 수 있다. 이에 따라, 프로세싱 인 메모리(10)는 이진상태 데이터를 저장할 수 있는 동시에, 비지도 학습에 대한 연산동작을 수행할 수 있기 때문에, 지능형 반도체에 활용될 수 있다.
다음으로, 주변회로부(200)는 Modified 그레이 코드에 기초하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다. 여기서, Modified 그레이 코드는 기설정된 그레이 코드(Gray Code)의 변환 순서로부터 일부의 코드 순서가 변경된 코드일 수 있다. 이때, 기설정된 그레이 코드(Gray Code)는 이진법 부호의 일종으로, 한 수에서 다음의 수로 크기가 변할 때 인접 코드 간 오직 한자리의 비트만 변화하게 만들어진 잘알려진 코드일 수 있다.
즉, 주변회로부(200)는 Modified 그레이 코드에 기초하여, 한번에 하나의 메모리셀에 대해 순차적으로 라이트동작(WRIGHT)을 수행할 수 있기 때문에, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에 대한 학습을 지원할 수 있다. 도 2에 도시된 바와 같이, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)은, 스파이킹 뉴럴 네트워크(SNN)에서, 시냅스 전 뉴런(Pre Synapse Neuron)과 시냅스 후 뉴런(Post Synapse Neuron)에서 발화된 스파이크 간의 시간차에 따라 가중치 업데이트 확률을 규정하는 규칙일 수 있다.
일 실시예에 따라, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행할 수 있다.
보다 구체적으로, 주변회로부(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) 사이의 연결선을 의미할 수 있다.
즉, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행하여, 각 시냅스(Synapse)의 값을 미리 확인할 수 있다. 그런 다음, 주변회로부(200)는 Modified 그레이 코드에 기초하여, 한번에 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행함으로써, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에 대한 학습을 지원할 수 있다.
다른 실시예에 따라, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행할 수 있다.
보다 구체적으로, 주변회로부(200)는 Modified 그레이 코드에 기초하는 라이트동작(WRIGHT)을 수행한 이후, 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행할 수 있다. 이에, 주변회로부(200)는 종래의 기설정된 그레이 코드에 기초하는 라이트동작(WRIGHT)을 수행할 때 발생하는 에러율을 최소화시킬 수 있다.
실시예에 따른 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행함으로써, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에서의 각 시냅스(Synapse)의 값이 더해진 값을 확인할 수 있다.
여기서, 각 시냅스(Synapse)의 값이 더해진 값은 도 2에 도시된 바와 같이, 스파이킹 뉴럴 네트워크(SNN)에서, 시냅스 전 스파이크들에 따라 증가되는 시냅스 후 뉴런의 멤브레인 전위(Membrane potential)일 수 있다. 이때, 멤브레인 전위(Membrane potential)를 업데이트하는 동작은 MAC(Multiply and ACcumulate) 연산을 수행하는 동작에 대응될 수 있다.
이에, 주변회로부(200)는 Modified 그레이 코드에 기초하는 라이트동작(WRIGHT)을 수행한 이후, 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행함으로써, 멤브레인 전위(Membrane potential)를 업데이트하는 MAC(Multiply and ACcumulate) 연산을 수행할 수 있다.
본 출원의 실시예에 따른 프로세싱 인 메모리(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)의 비지도 학습에 필요로 하는 메모리의 면적을 감소시킬 수 있다.
이하, 도 3을 참조하여, 도 1의 메모리셀 어레이(100)에 대해 보다 구체적으로 설명될 것이다.
도 3은 도 1의 메모리셀 어레이(100)에 대한 실시 예이다.
도 3을 참조하면, 메모리셀 어레이(100)는 복수의 메모리셀들(100_1~100_N), 복수의 메모리셀들(100_1~100_N)에 연결되는 복수의 로우라인들(RL1~RLN) 및 복수의 컬럼라인들(CL1~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)를 포함할 수 있다.
또한, 복수의 컬럼라인들(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)를 포함할 수 있다.
이하에서는, 복수의 로우라인들(RL1~RLN) 및 복수의 컬럼라인들(CL1~CLN) 각각의 기능과 동작이 서로 동일하므로, 이해를 돕고자 제1 로우라인(RL1)과 제1 컬럼라인(CL1)에 연결된 SOT (Spin-Orbit Torque) 메모리셀에 해당하는 제1 메모리셀(100_1)을 참조하여 설명될 것이다. 그러나, 여기에서 설명하는 구현예 및 실시예에 한정되지 않으며, 복수의 메모리셀들(100_1~100_N) 각각에 모두 적용될 수 있다.
먼저, 제1 메모리셀(100_1)은 제1 내지 제3 트랜지스터(M1~M3)를 통해 제1 로우라인(RL1)과 제1 컬럼라인(CL1)에 연결되어, 주변회로부(200)와 전기적으로 연결될 수 있다. 이하, 제1 내지 제3 트랜지스터(M1~M3)는 도 5를 참조하여 보다 구체적으로 설명될 것이다.
또한, 제1 메모리셀(100_1)은 기준층(reference layer, 101_1), 비자기 공간층 (nonmagnetic spacer layer, 102_1), 데이터 저장층(data storage layer, 103_1) 및 메탈층(104_1)을 포함하는 자기 터널 접합(Magnetic Tunneling Junction, MTJ) 타입일 수 있다.
예를 들면, 기준층(101_1)은 강자성층(ferromagnetic layer)으로 형성되고, 고정층(pinned layer)이라고 불리울 수 있다. 이때, 기준층(101_1)의 자화 방향은 일 방향일 수 있다. 또한, 기준층(101_1)은 Co, Fe, Ni, 또는 그들의 합금, 또는 이와 유사한 물질을 포함할 수 있다.
다음으로, 비자기 공간층(102_1)은 전자들로 하여금 터널링(tunneling)할 수 있을 정도의 두께를 가질 수 있다. 또한, 비자기 공간층(102_1)은 Al2O3, MgO, AlN, Ta2O5, SiO2, HfO2, ZrO2, MgF2, CaF2, 또는 이와 유사한 것들을 포함할 수 있다.
다음으로, 데이터 저장층(103_1)은 기준층(101_1)과 유사한 강자성층일 수 있다. 이때, 데이터 저장층(103_1)의 자화 방향은 일 방향 또는 타 방향으로 스위치될 수 있다.
다음으로, 메탈층(104_1)은 강한 스핀-궤도 토크(Spin Orbit Toque)가 발생하는 층일 수 있다. 보다 구체적으로, 메탈층(104_1)은 표면을 따라 유도된 전류 크기에 기초하여, 데이터 저장층(103_1)의 자화 방향을 스위치할 수 있다. 또한, 메탈층(104_1)은 중금속(heavy metal)이나 중금속에 의하여 도핑된 물질들을 포함할 수 있다.
보다 구체적으로, 제1 메모리셀(100_1)은 기준층(101_1)으로부터 제1 로우라인(RL1)을 통해 주변회로부(200)와 전기적으로 연결되고, 메탈층(104_1)을 통해 주변회로부(200)와 전기적으로 연결될 수 있다. 이때, 제1 메모리셀(100_1)은 주변회로부(200)로부터 라이트동작(WRIGHT)에 따른 라이트전압(VW)와 기준전압(VDD)을 제1 로우라인(RL1) 또는 제1 컬럼라인(CL1) 중 적어도 어느 하나의 라인를 통해 인가받을 수 있다.
또한, 주변회로부(200)의 라이트동작(WRIGHT)에 따라, 메탈층(104_1)을 통해 흐르는 전류의 크기 또는 전류의 듀레이션(Duration)은 제1 메모리셀(100_1)에서 가변될 수 있다. 이때, 제1 메모리셀(100_1)은 전류의 크기 또는 전류의 듀레이션(Duration)에 기초하여, 데이터 저장층(103_1)의 자화 방향을 스위칭할 수 있다. 즉, 제1 메모리셀(100_1)은 전류의 크기 또는 전류의 듀레이션(Duration)에 기초하여, 이진상태 데이터 ‘1’ 과 ‘0’ 중 어느 하나의 이진상태를 나타내는 저항의 크기를 스위칭하여 데이터를 저장할 수 있다.
이때, 제1 메모리셀(100_1)은 주변회로부(200)의 라이트동작(WRIGHT)에 따라, 이진상태 데이터의 스위칭 확률에 기초하여, 스파이킹 뉴럴 네트워크(SNN)에서의 시냅스가중치(Synaptic Weight)를 업데이트할 수 있다.
보다 구체적으로, 도 2에 도시된 바와 같이, 스파이킹 뉴럴 네트워크(SNN)에서의 시냅스가중치(Synaptic Weight)는 시냅스 전 스파이크에 따라 뉴런의 멤브레인 전위를 증가시켜 시냅스 후 스파이크를 출력하는 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)을 기초로 정해질 수 있다.
이러한 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)을 참조하면, 제1 메모리셀(100_1)은 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치(Synaptic Weight)를 업데이트 할 수 있다. 이에 따라, 제1 메모리셀(100_1)은 스파이킹 뉴럴 네트워크(SNN)에서의 인 메모리 컴퓨팅(In-Memory Computing)에 적용되어, 비지도 학습에 따른 연산을 지원할 수 있다.
실시예에 따라, 제1 메모리셀(100_1)은 저항성 메모리로 형성될 수 있다.
보다 구체적으로, 제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), 분자 전자소자 중 적어도 하나의 저항성 메모리로 구현될 수 있으며, 여기에서 설명하는 구현예 및 실시예에 한정되지 않는다.
도 4는 도 1의 주변회로부(200)에 대한 실시 예이다.
도 1과 도 4를 참조하면, 주변회로부(200)는 라인구동부(210), 전원공급부(220), 읽기회로부(230) 및 제어로직(240)을 포함할 수 있다.
본 출원에서, 주변회로부(200)는 설명의 편의를 위해 라인구동부(210), 전원공급부(220), 읽기회로부(230) 및 제어로직(240)을 포함하는 구성들로 기재되지만, 이를 한정하는 것은 아니다. 예를 들면, 주변회로부(200)는 기능에 따라, 복수의 리드 비트라인들(RBL1~RBLN), 복수의 리드 워드라인들(RMWL1~RWLN) 및 복수의 리드 비트라인 바(RBLB1~RBLBN)을 중 적어도 어느 하나를 선택하는 로우(ROW) 선택 회로들, 복수의 컬럼 비트라인들(CBL1~CBLN), 복수의 컬럼리드 워드라인들(CRWL1~CRWLN) 및 복수의 컬럼라이트 워드라인들(CRWL1~CRWLN) 중 적어도 하나를 선택하는 컬럼(COLUMN) 선택 회로들을 더 포함할 수 있다. 이러한 복수의 회로들은 라인구동부(210)의 기능들을 독립적으로 수행시킬 수 있다.
먼저, 라인구동부(210)는 복수의 로우라인들(RL1~RLN)과 복수의 컬럼라인들(CL1~CLN)을 통해 복수의 메모리셀들(100_1~100_N)과 전원공급부(220)를 선택적으로 연결시킬 수 있다. 예를 들면, 라인구동부(210)는 제1 로우라인(RL1)과 제1 컬럼라인(CL1)을 통해 제1 메모리셀(100_1)과 전원공급부(220)를 선택적으로 연결시킬 수 있다.
다음으로, 전원공급부(220)는 라인구동부(210)를 통해 연결된 복수의 메모리셀들(100_1~100_N) 중 어느 하나의 메모리셀에 리드전압(VREAD), 라이트전압(VWRIGHT) 및 기준전압(VDD) 중 어느 하나의 전압을 인가할 수 있다.
다음으로, 읽기회로부(230)는 감지증폭기들(231_1~231_N)과 아날로그-디지털 컨버터들(233_1~233_N)을 포함할 수 있다. 보다 구체적으로, 읽기회로부(230)는 메모리셀 어레이(100)로부터 감지증폭기들(231_1~231_N)과 아날로그-디지털 컨버터들(233_1~233_N)을 통해 흐르는 리드전류를 리드할 수 있다.
다음으로, 제어로직(240)은 라인구동부(210), 전원공급부(220) 및 읽기회로부(230)의 각 동작을 독립적으로 수행시키도록 제어할 수 있다. 즉, 제어로직(240)은 라인구동부(210), 전원공급부(220) 및 읽기회로부(230)를 제어하여, 메모리셀 어레이(100)에 대한 라이트동작(WRIGHT) 및 리드동작(READ)을 수행할 수 있다.
실시예에 따라, 제어로직(240)은 Modified 그레이 코드에 기초하여, 메모리셀 어레이(100) 중 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다.
보다 구체적으로, 제어로직(240)은 Modified 그레이 코드의 한개의 비트만 변화되는 특징에 기초하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다. 예를 들면, 다음의 표 1에 기재된 바와 같이, 제어로직(240)은 Modified 그레이 코드의 한개의 비트만 변화되는 특징에 기초하여, 제1 메모리셀(100_1), 제2 메모리셀(100_2) 및 제3 메모리셀(100_3)에 대한 라이트동작(WRIGHT)을 한번에 하나씩 순서대로 수행할 수 있다.
Figure 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 코드 순으로 한개의 비트만 변환되는 코드일 수 있다.
여기서, Modified 그레이 코드는 기설정된 그레이 코드(Gray Code)의 변환 순서로부터 5 내지 7번째 코드순서가 변경된 코드로서, 기설정된 그레이 코드(Gray Code)와 동일하게 한번에 1개의 비트만 변경되는 코드들을 포함할 수 있다. 또한, Modified 그레이 코드는 기설정된 그레이 코드(Gray Code)보다 바이너리 넘버 리프레젠테이션(binary number representation)과의 차이를 최소화시킬 수 있는 코드일 수 있다.
이때, Modified 그레이 코드의 비트 개수는 시냅스가중치(Synaptic Weight)의 비트 개수에 일대일로 대응되는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)의 개수와 일대일로 대응될 수 있다. 예를 들면, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)의 개수가 3개인 경우, 시냅스가중치(Synaptic Weight)의 비트와 Modified 그레이 코드의 비트는 3 비트일 수 있다.
실시예에 따라, 제어로직(240)은 라이트동작(WRIGHT)을 수행하기 이전에, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행할 수 있다. 보다 구체적으로, 제어로직(240)은 Modified 그레이 코드에 기초하는 라이트동작(WRIGHT)을 수행하기 이전에, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 리드할 수 있다.
예를 들면, 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)을 개별적으로 수행할 수 있다.
이에 따라, 제어로직(240)은 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행하여, 각 시냅스(Synapse)의 값을 미리 확인함으로써, 라이트동작(WRIGHT)을 통해 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에 대한 학습을 지원할 수 있다.
그런 다음, 제어로직(240)은 Modified 그레이 코드에 기초하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다.
이후, 제어로직(240)은 서로 동일한 컬럼라인(예컨대, CL1)에 연결된 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행할 수 있다. 보다 구체적으로, 제어로직(240)은 Modified 그레이 코드에 기초하는 라이트동작(WRIGHT)을 수행한 이후, 서로 동일한 컬럼라인(예컨대, CL1)에 연결된 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행할 수 있다.
예를 들면, 제어로직(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)을 한번에 수행할 수 있다.
즉, 제어로직(240)은 Modified 그레이 코드에 기초하는 라이트동작(WRIGHT)을 수행한 이후, 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작(READ)을 한번에 수행함으로써, 멤브레인 전위(Membrane potential)를 업데이트하는 MAC(Multiply and ACcumulate) 연산을 수행할 수 있다.
도 5는 도 1의 프로세싱 인 메모리(10)의 MAC 연산을 위한 리드동작(READ)에 대한 실시 예이다.
도 1 내지 도 5를 참조하면, 프로세싱 인 메모리(10)는 메모리셀 어레이(100)와 주변회로부(200)를 포함할 수 있다. 이하, 도 1 내지 도 4에서 설명된 동일한 부재번호의 메모리셀 어레이(100)와 주변회로부(200)에 대한 중복된 내용을 생략될 것이다.
먼저, 적어도 하나의 메모리셀(예컨대, 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)을 선택할 수 있다.
그런 다음, 라인구동부(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)를 서로 전기적으로 연결시킬 수 있다.
이때, 적어도 하나의 메모리셀(예컨대, 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)는 비활성화 상태일 수 있다.
이하, 설명의 편의를 위하여, 제1 메모리셀(100_1)에 연결된 제1 내지 제3 트랜지스터(M1~M3)에 대해 보다 구체적으로 설명될 것이며, 이를 한정하는 것은 아니다.
보다 구체적으로, 제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) 사이를 단락시킬 수 있다.
다음으로, 제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) 사이를 단락시킬 수 있다.
다음으로, 제3 트랜지스터(M3)의 게이트는 제1 컬럼라이트 워드라인(CWWL1)과 연결될 수 있다. 여기서, 제1 메모리셀(100_1)의 메탈층(104_1)의 타측은 제1 리드 비트라인(RBL1)에 연결되어 주변회로부(200)로부터 리드전압(VREAD)을 인가받을 수 있다. 이때, 제3 트랜지스터(M3)는 리드전압(VREAD)에 기초하여, 제1 메모리셀(100_1)의 메탈층(104_1)의 일측과 제1 리드 비트라인 바(RBLB1) 사이를 단락 또는 연결시킬 수 있다.
다음으로, 전원공급부(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)을 인가할 수 있다.
이때, 읽기회로부(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)를 한번에 리드할 수 있다.
예를 들면, 리드전류(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)의 합의 크기일 수 있다.
그런 다음, 읽기회로부(230)는 하나의 컬럼 비트라인(예컨대, CBL1)에 연결된 하나의 감지증폭기(예컨대, 231_1)를 통해 리드전류(IREAD1)를 감지 증폭하고, 아날로그-디지털 컨버터(예컨대, 233_1)를 통해 감지 증폭된 리드전류(IREAD1)를 디지털 값으로 컨버팅할 수 있다.
즉, 읽기회로부(230)는 각 컬럼 비트라인(예컨대, CBL1~CBL3)에 연결된 각 감지증폭기(예컨대, 231_1~231_3)와 각 아날로그-디지털 컨버터(예컨대, 233_1~233_3)를 통해 각 리드전류(예컨대, IREAD1~IREAD3)를 리드할 수 있다.
실시예에 따라, 읽기회로부(230)에서 동작되는 복수의 감지증폭기들(231_1~231_N)과 복수의 아날로그-디지털 컨버터들(233_1~233_N)의 개수는 각 컬럼 비트라인(예컨대, CBL1~CBL3)의 개수와 일대일 대응될 수 있다.
예를 들면, 적어도 하나의 메모리셀(예컨대, 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개일 수 있다.
도 5에 도시된 바와 같이, 적어도 하나의 메모리셀(예컨대, 100_1~100_9)에 연결된 각 컬럼 비트라인(예컨대, CBL1~CBL3)의 개수가 3개인 경우, 감지증폭기(예컨대, 231_1~231_3)와 아날로그-디지털 컨버터(예컨대, 233_1~233_3)의 개수는 각각 3개일 수 있다.
이에 따라, 읽기회로부(230)는 컬럼 비트라인(예컨대, CBL1~CBL3)에 흐르는 리드전류(예컨대, IREAD1~IREAD3)를 리드하기 위한 감지증폭기(예컨대, 231_1~231_3)와 아날로그-디지털 컨버터(예컨대, 233_1~233_3)의 개수를 최소화시켜, 프로세싱 인 메모리(10)의 면적 및 전력소모를 최소화시킬 수 있다.
도 6은 도 1의 프로세싱 인 메모리(10)의 시냅스가중치(Synaptic Weight)의 업데이트를 위한 리드동작(READ)에 대한 실시 예이다.
도 1 내지 도 6을 참조하면, 프로세싱 인 메모리(10)는 메모리셀 어레이(100)와 주변회로부(200)를 포함할 수 있다. 이하, 도 1 내지 5에서 설명된 동일한 부재번호의 메모리셀 어레이(100)와 주변회로부(200)에 대한 중복된 내용은 생략될 것이다.
먼저, 라인구동부(210)는 시냅스가중치(Synaptic Weight)의 업데이트를 위한 리드동작(READ)을 위하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 하나의 로우라인(예컨대, RL1)과 각 컬럼라인(예컨대, CL1~CL3)을 선택할 수 있다. 보다 구체적으로, 라인구동부(210)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 하나의 리드 비트라인 바(예컨대, RBLB1)와 각 컬럼 리드 워드라인(예컨대, CRWL1~CRWL3)을 선택할 수 있다.
그런 다음, 라인구동부(210)는 로우라인(예컨대, RL1)과 컬럼라인(예컨대, CL1~CL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다.
보다 구체적으로, 라인구동부(210)는 로우라인(예컨대, RL1) 중 리드 비트라인 바(예컨대, RBLB1)를 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. 또한, 라인구동부(210)는 컬럼라인(예컨대, CL1~CL3) 중 각 컬럼 리드 워드라인(예컨대, CRWL1~CRWL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다.
다음으로, 전원공급부(220)는 라인구동부(210)를 통해 선택된 로우라인(예컨대, RL1)을 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 리드전압(VREAD)을 인가할 수 있다. 이때, 전원공급부(220)는 라인구동부(210)를 통해 선택된 컬럼라인(예컨대, CL1~CL3)을 통해 기준전압(VDD)을 인가할 수 있다.
보다 구체적으로, 전원공급부(220)는 로우라인(예컨대, RL1) 중 리드 비트라인 바(예컨대, RBLB1)를 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 리드전압(VREAD)을 인가할 수 있다. 또한, 전원공급부(220)는 컬럼라인(예컨대, CL1~CL3) 중 각 컬럼 리드 워드라인(예컨대, CRWL1~CRWL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 기준전압(VDD)을 인가할 수 있다.
이때, 적어도 하나의 메모리셀(예컨대, 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)을 연결시킬 수 있다.
다음으로, 읽기회로부(230)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 각 로우라인(예컨대, RL1~RL3)을 통해 흐르는 각 리드전류(예컨대, IREAD1~IREAD3)를 개별적으로 리드할 수 있다.
예를 들면, 각 리드전류(예컨대, 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)일 수 있다.
이때, 읽기회로부(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)에 대응될 수 있다.
이후, 제어로직(240)은 읽기회로부(230)를 통해 로우라인 방향으로 리드된 각 리드전류(예컨대, IREAD1~IREAD3)에 기초하여, 시냅스가중치(Synaptic Weight)의 업데이트를 위한 시냅스(Synapse)를 확인할 수 있다.
도 7은 도 1의 프로세싱 인 메모리(10)의 시냅스가중치(Synaptic Weight)의 업데이트를 위한 라이트동작(WRIGHT)에 대한 실시 예이다.
도 1 내지 도 3, 도 5 및 도 6을 참조하면, 프로세싱 인 메모리(10)는 프로세싱 인 메모리(10)는 메모리셀 어레이(100)와 주변회로부(200)를 포함할 수 있다. 이하, 도 1 내지 6에서 설명된 동일한 부재번호의 메모리셀 어레이(100)와 주변회로부(200)에 대한 중복된 내용을 생략될 것이다.
먼저, 시냅스가중치(Synaptic Weight)의 업데이트를 위한 라이트동작(WRIGHT)을 수행하기 위하여, 라인구동부(210)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 로우라인(예컨대, RL1)과 컬럼라인(예컨대, CL1)을 선택할 수 있다.
보다 구체적으로, 라인구동부(210)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 로우라인(예컨대, RL1) 중 리드 비트라인(예컨대, RBL1)과 리드 비트라인 바(예컨대, RBLB1)를 선택할 수 있다. 그런 다음, 라인구동부(210)는 리드 비트라인(예컨대, RBL1)과 리드 비트라인 바(예컨대, RBLB1)를 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다.
이때, 라인구동부(210)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 연결된 각 컬럼라인(예컨대, CL1~CL3)을 통해 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다. 보다 구체적으로, 라인구동부(210)는 각 컬럼 라이트워드 라인(예컨대, CWWL1~CWWL3)을 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 전원공급부(220)를 서로 전기적으로 연결시킬 수 있다.
다음으로, 전원공급부(220)는 라인구동부(210)를 통해 선택된 리드 비트라인(예컨대, RBL1)을 통해 제1 라이트전압(VWR1)을 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 인가할 수 있다. 또한, 전원공급부(220)는 라인구동부(210)를 통해 선택된 리드 비트라인 바(예컨대, RBLB1)를 통해 제2 라이트전압(VWR2)을 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 인가할 수 있다. 여기서, 제1 라이트전압(VWR1)과 제2 라이트전압(VWR2)은 서로 크기가 다른 전압일 수 있다.
또한, 전원공급부(220)는 라인구동부(210)를 통해 선택된 각 컬럼 라이트워드 라인(예컨대, CWWL1~CWWL3)을 통해 기준전압(VDD)을 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 인가할 수 있다.
이때, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)의 각 제3 트랜지스터(M3)는 활성화 될 수 있다. 예를 들면, 제1 메모리셀(100_1)의 제3 트랜지스터(M3)는 주변회로부(200)로부터 제1 컬럼라이트 워드라인(CWWL1)을 통해 인가받는 기준전압(VDD)에 기초하여, 제1 리드 비트라인 바(RBLB1)와 제1 메모리셀(100_1)의 메탈층(104_1)의 일 측 사이를 연결시킬 수 있다.
여기서, 제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)가 흐를 수 있다.
즉, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)을 참조하면, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)의 각 제3 트랜지스터(M3)를 통해 개별적으로 흐르는 제1 내지 제3 업데이트 전류(IU1~IU3)는, 시냅스가중치(Synaptic Weight)의 업데이트에 대응될 수 있다. 이에 따라, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)의 리드 비트라인(예컨대, RBL1), 리드 비트라인 바(예컨대, RBLB1) 및 컬럼 라이트워드 라인(예컨대, CWWL1)을 통해 전압을 인가하는 라이트동작(WRIGHT)은 시냅스가중치(Synaptic Weight)를 업데이트하는 동작에 대응될 수 있다.
도 8은 비지도 학습을 지원하는 프로세싱 인 메모리(10)의 동작프로세스이다.
도 1 내지 도 4 및 도 8을 참조하면, 먼저 S110 단계에서, Modified 그레이 코드에 대응되는 이진상태 데이터가 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 기저장될 수 있다.
이때, 120 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행할 수 있다. 즉, 주변회로부(200)는 라이트동작(WRIGHT)을 수행하기 이전에, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 리드동작(READ)을 개별적으로 수행하여 각 시냅스(Synapse)의 값을 개별적으로 확인할 수 있다.
그런 다음, S130 단계에서, 주변회로부(200)는 Modified 그레이 코드에 기초에 기초하여, 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대해 하나의 메모리셀 단위로 라이트동작(WRIGHT)을 수행할 수 있다. 즉, 주변회로부(200)는 Modified 그레이 코드에 기초하여, 한번에 하나의 메모리셀에 대해 순차적으로 라이트동작(WRIGHT)을 수행할 수 있기 때문에, 확률론적인(stochastic) 스파이크 시간 의존 가소성(STDP)에 대한 학습을 지원할 수 있다.
이후, S140 단계에서, 메모리셀 어레이(100)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)에 대한 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치(Synaptic Weight)를 업데이트할 수 있다.
도 9는 도 8의 주변회로부(200)의 실시예에 따른 MAC 연산동작 프로세스이다.
도 1 내지 도 5 및 도 9를 참조하면, S210 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)과 연결된 각 리드 비트라인(예컨대, RBL1~RBL3)으로 리드전압(VREAD)을 각각 인가할 수 있다.
또한, S220 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)과 연결된 각 리드 워드라인(예컨대, RWL1~RWL3)으로 기준전압(VDD)을 각각 인가할 수 있다.
그런 다음, S230 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에서 컬럼 비트라인(예컨대, CBL1)으로 흐르는 각 전류(I1~I3)를 한번에 리드할 수 있다. 즉, 주변회로부(200)는 컬럼 비트라인(예컨대, CBL1)을 통해 서로 연결된 적어도 하나의 메모리셀(예컨대, 100_1, 100_4 및 100_5)에 대해 리드동작을 한번에 수행함으로써, 각 전류(I1~I3)의 합인 리드전류(예컨대, IREAD1)를 리드할 수 있다.
이후, S240 단계에서, 주변회로부(200)는 각 전류(예컨대, I1~I3)의 합에 대응되는 리드전류(예컨대, IREAD1)에 기초하여, 멤브레인 전위(Membrane potential)를 업데이트하는 MAC(Multiply and ACcumulate) 연산을 수행할 수 있다. 즉, 주변회로부(200)는 각 전류(예컨대, I1~I3)의 합에 대응되는 리드전류(예컨대, IREAD1)에 기초하여, 각 시냅스(Synapse)의 값이 더해진 값을 확인할 수 있다.
도 10은 도 8의 주변회로부(200)의 실시예에 따른 시냅스가중치에 대한 업데이트 동작 프로세스이다.
도 1 내지 도 4, 도 6, 도 7 및 도 10을 참조하면, S310 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 연결된 각 리드 비트라인바(예컨대, RBLB1~RBLB3)로 리드전압(VREAD)을 각각 인가할 수 있다.
또한, S320 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 연결된 각 컬럼리드 워드라인(예컨대, CRWL1~CRWL3)으로 기준전압(VDD)을 각각 인가할 수 있다.
그런 다음, S330 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)을 통해 각 리드 비트라인(예컨대, RBL1~RBL3)으로 흐르는 각 리드전류(IREAD1~IREAD3)를 개별적으로 리드할 수 있다.
이때, S340 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 연결된 각 리드 비트라인(예컨대, RBL1~RBL3)으로 제1 라이트전압(VWR1)을 각각 인가할 수 있다.
또한, S350 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 연결된 각 리드 비트라인 바(예컨대, RBLB1~RBLB3)로 제2 라이트전압(VWR2)을 각각 인가할 수 있다.
이후, S360 단계에서, 주변회로부(200)는 적어도 하나의 메모리셀(예컨대, 100_1~100_3)과 연결된 각 컬럼라이트 워드라인(예컨대, CWWL1~CWL3)으로 기준전압(VDD)을 각각 인가할 수 있다.
본 출원은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 출원의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 메모리장치
100: 메모리셀 어레이
200: 주변회로부
210: 라인구동부
220: 전원공급부
230: 읽기회로부
240: 제어로직

Claims (20)

  1. 적어도 하나의 메모리셀에 대한 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치를 업데이트하는 메모리셀 어레이; 및
    상기 적어도 하나의 메모리셀에 대해 Modified 그레이 코드에 기초하여, 하나의 메모리셀 단위로 라이트동작을 수행하는 주변회로부를 포함하는 프로세싱 인 메모리.
  2. 제1항에 있어서,
    상기 주변회로부는, 상기 라이트동작 이전에 상기 적어도 하나의 메모리셀에 대해 리드동작을 개별적으로 수행하는 프로세싱 인 메모리.
  3. 제2항에 있어서,
    상기 주변회로부는, 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인으로 리드전압을 인가하고, 각 리드 워드라인으로 기준전압을 인가하는 프로세싱 인 메모리.
  4. 제2항에 있어서,
    상기 주변회로부는, 상기 적어도 하나의 메모리셀에 연결된 각 컬럼 비트라인으로 흐르는 각 리드전류를 개별적으로 리드하는 프로세싱 인 메모리.
  5. 제4항에 있어서,
    상기 주변회로부는, 상기 각 컬럼 비트라인을 통해 각 리드전류를 리드하는 읽기회로부를 포함하고,
    상기 읽기회로부는, 복수의 감지증폭기들과 복수의 아날로그 디지털 컨버터들을 포함하며,
    상기 복수의 감지증폭기들과 상기 복수의 아날로그 디지털 컨버터들 중 각 리드전류를 리드하는 감지증폭기 및 아날로그 디지털 컨버터의 동작 개수는 상기 컬럼 비트라인의 개수에 일대일 대응되는 프로세싱 인 메모리.
  6. 제1항에 있어서,
    상기 주변회로부는, 상기 적어도 하나의 메모리셀에 연결된 서로 동일한 컬럼 비트라인으로 흐르는 각 리드전류를 한번에 리드하는 프로세싱 인 메모리.
  7. 제6항에 있어서,
    상기 주변회로부는, 상기 컬럼 비트라인으로 흐르는 상기 각 리드전류의 합에 기초하여, MAC(Multiply and ACcumulate) 연산을 수행하는 프로세싱 인 메모리.
  8. 제6항에 있어서,
    상기 주변회로부는, 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인바로 리드전압을 인가하고, 상기 적어도 하나의 메모리셀과 연결된 각 컬럼리드 워드라인으로 기준전압을 인가하는 프로세싱 인 메모리.
  9. 제1항에 있어서,
    상기 주변회로부는, 상기 라이트동작을 수행할 때, 상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인으로 제1 라이트전압을 인가하고,
    상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인 바로 제2 라이트전압을 인가하며,
    상기 적어도 하나의 메모리셀에 연결된 각 컬럼라이트 워드라인으로 기준전압을 인가하는 프로세싱 인 메모리.
  10. 제9항에 있어서,
    상기 메모리셀 어레이는, 상기 제1 및 제2 라이트전압과 상기 기준전압에 따라, 상기 시냅스가중치를 업데이트하는 프로세싱 인 메모리.
  11. 제1항에 있어서,
    상기 Modified 그레이 코드는, 기설정된 그레이 코드의 변환 순서로부터 일부의 코드 순서가 변경된 코드인 프로세싱 인 메모리.
  12. 제1항에 있어서,
    상기 적어도 하나의 메모리셀의 개수는 상기 시냅스가중치의 비트 개수에 일대일로 대응되는 프로세싱 인 메모리.
  13. 제3항에 있어서,
    상기 시냅스가중치의 비트 개수는 상기 Modified 그레이 코드의 비트 개수에 일대일로 대응되는 프로세싱 인 메모리.
  14. 제1항에 있어서,
    상기 적어도 하나의 메모리셀들은 STT(spin-torque transfer) 메모리셀 또는 SOT (Spin-Orbit Torque) 메모리셀 중 적어도 어느 하나인 프로세싱 인 메모리.
  15. 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법으로서,
    주변회로부가 Modified 그레이 코드에 대응되는 이진상태 데이터가 저장된 적어도 하나의 메모리셀에 대해 리드동작을 개별적으로 수행하는 단계;
    상기 주변회로부가 상기 Modified 그레이 코드에 기초하여, 상기 적어도 하나의 메모리셀에 대해 하나의 메모리셀 단위로 라이트동작을 수행하는 단계; 및
    메모리셀 어레이가 상기 이진상태 데이터의 스위칭 확률에 기초하여, 시냅스가중치를 업데이트하는 단계를 포함하는 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법.
  16. 제15항에 있어서,
    상기 리드동작을 개별적으로 수행하는 단계는, 상기 주변회로부가 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인으로 리드전압을 인가하고, 각 리드 워드라인으로 기준전압을 인가하는 단계; 및
    상기 주변회로부가 상기 적어도 하나의 메모리셀로부터 각 컬럼 비트라인으로 흐르는 각 리드전류를 리드하는 단계를 포함하는 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법.
  17. 제16항에 있어서,
    상기 주변회로부가 컬럼라인을 통해 서로 연결된 상기 적어도 하나의 메모리셀에 대해 리드동작을 동시에 수행하는 단계를 더 포함하는 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법.
  18. 제17항에 있어서,
    상기 리드동작을 동시에 수행하는 단계는, 상기 주변회로부가 각 리드전류의 합에 기초하여, 멤브레인 전위를 업데이트하는 MAC 연산을 수행하는 단계를 포함하는 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법.
  19. 제15항에 있어서,
    상기 라이트동작을 수행하는 단계는, 상기 적어도 하나의 메모리셀과 연결된 각 리드 비트라인바로 리드전압을 인가하고, 상기 적어도 하나의 메모리셀과 연결된 각 컬럼리드 워드라인으로 기준전압을 인가하는 단계; 및
    상기 적어도 하나의 메모리셀을 통해 각 리드 비트라인으로 흐르는 제2 리드전류를 각각 리드하는 단계를 더 포함하는 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법.
  20. 제19항에 있어서,
    상기 라이트동작을 수행하는 단계는, 상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인으로 제1 라이트전압을 인가하는 단계;
    상기 적어도 하나의 메모리셀에 연결된 각 리드 비트라인 바로 제2 라이트전압을 인가하는 단계; 및
    상기 적어도 하나의 메모리셀에 연결된 각 컬럼라이트 워드라인으로 기준전압을 인가하는 단계를 포함하는 비지도 학습을 지원하는 프로세싱 인 메모리의 동작방법.


KR1020180171084A 2018-12-27 2018-12-27 비지도 학습 기능을 지원하는 프로세싱 인 메모리 및 그 동작 방법 KR102208604B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180171084A KR102208604B1 (ko) 2018-12-27 2018-12-27 비지도 학습 기능을 지원하는 프로세싱 인 메모리 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180171084A KR102208604B1 (ko) 2018-12-27 2018-12-27 비지도 학습 기능을 지원하는 프로세싱 인 메모리 및 그 동작 방법

Publications (3)

Publication Number Publication Date
KR20200081623A true KR20200081623A (ko) 2020-07-08
KR102208604B1 KR102208604B1 (ko) 2021-01-29
KR102208604B9 KR102208604B9 (ko) 2021-09-17

Family

ID=71600030

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180171084A KR102208604B1 (ko) 2018-12-27 2018-12-27 비지도 학습 기능을 지원하는 프로세싱 인 메모리 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102208604B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102342994B1 (ko) * 2020-07-21 2021-12-24 고려대학교 산학협력단 산술 연산을 지원하는 인메모리 컴퓨팅
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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230146936A (ko) 2022-04-13 2023-10-20 고려대학교 산학협력단 스핀 궤도 토크 소자 기반의 프로세싱 인 메모리 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160002820A (ko) * 2013-04-24 2016-01-08 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 멀티레벨 메모리 셀의 그룹을 사용하는 데이터의 표현
KR20180111156A (ko) * 2017-03-31 2018-10-11 에스케이하이닉스 주식회사 피드-백 라인을 가진 포스트-시냅틱 뉴런을 포함하는 뉴로모픽 소자 및 뉴로모픽 소자의 동작 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160002820A (ko) * 2013-04-24 2016-01-08 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 멀티레벨 메모리 셀의 그룹을 사용하는 데이터의 표현
KR20180111156A (ko) * 2017-03-31 2018-10-11 에스케이하이닉스 주식회사 피드-백 라인을 가진 포스트-시냅틱 뉴런을 포함하는 뉴로모픽 소자 및 뉴로모픽 소자의 동작 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102342994B1 (ko) * 2020-07-21 2021-12-24 고려대학교 산학협력단 산술 연산을 지원하는 인메모리 컴퓨팅
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

Also Published As

Publication number Publication date
KR102208604B9 (ko) 2021-09-17
KR102208604B1 (ko) 2021-01-29

Similar Documents

Publication Publication Date Title
CN110825345B (zh) 使用非易失性存储器单元的乘法
KR102547518B1 (ko) 비휘발성 데이터 유지 회로, 데이터 처리 시스템 및 데이터 유지 회로의 상보 비휘발성 충전 상태를 라이트하는 방법
US9813048B2 (en) Electronic comparison systems
US10825510B2 (en) Multi-bit dot product engine
US9111222B2 (en) Method and apparatus for switching the binary state of a location in memory in a probabilistic manner to store synaptic weights of a neural network
KR102208604B1 (ko) 비지도 학습 기능을 지원하는 프로세싱 인 메모리 및 그 동작 방법
KR102497616B1 (ko) 메모리 내 데이터 판독을 위한 디바이스 및 방법
US20210334633A1 (en) Neuromorphic computing device and operating method thereof
CN113688984B (zh) 一种基于磁性随机存储器的存内二值化神经网络计算电路
Jang et al. Stochastic SOT device based SNN architecture for On-chip Unsupervised STDP Learning
Shreya et al. Energy-efficient all-spin BNN using voltage-controlled spin-orbit torque device for digit recognition
Münch et al. Tolerating retention failures in neuromorphic fabric based on emerging resistive memories
TW202125509A (zh) 半導體記憶裝置
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
KR102571118B1 (ko) 뉴로모픽 장치
CN114496013A (zh) 自旋随机存储器存内计算装置和存内计算方法及电子设备
Jung et al. MRAM In-memory computing macro for AI computing
CN113160860B (zh) 计算系统、计算器件和计算方法
KR102571115B1 (ko) 뉴로모픽 장치 및 이의 구동 방법
US11984146B2 (en) Neuromorphic device
US20230386601A1 (en) Neuromorphic device
KR102390388B1 (ko) 뉴로모픽 장치
Borders et al. Magnetic tunnel junction-based crossbars: improving neural network performance by reducing the impact of non-idealities
US20230290402A1 (en) Memory device and operation method thereof

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