KR20240070025A - 심층 신경망을 위한 상변이 메모리 기반 메모리내 컴퓨팅 장치 및 방법 - Google Patents

심층 신경망을 위한 상변이 메모리 기반 메모리내 컴퓨팅 장치 및 방법 Download PDF

Info

Publication number
KR20240070025A
KR20240070025A KR1020220151323A KR20220151323A KR20240070025A KR 20240070025 A KR20240070025 A KR 20240070025A KR 1020220151323 A KR1020220151323 A KR 1020220151323A KR 20220151323 A KR20220151323 A KR 20220151323A KR 20240070025 A KR20240070025 A KR 20240070025A
Authority
KR
South Korea
Prior art keywords
pcm
bit
data
memory cells
mlc
Prior art date
Application number
KR1020220151323A
Other languages
English (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 KR1020220151323A priority Critical patent/KR20240070025A/ko
Publication of KR20240070025A publication Critical patent/KR20240070025A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5678Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using amorphous/crystalline phase transition storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0023Address circuits or decoders
    • G11C13/0028Word-line or row circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Chemical & Material Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Semiconductor Memories (AREA)

Abstract

개시된 실시예는 멀티 레벨 셀 상변이 메모리(Multi-Level Cell-Phase Change Memory: 이하 MLC-PCM)로 구현된 다수의 제1 메모리 셀을 구비하는 제1 셀 어레이, 및 MLC-PCM로 구현된 다수의 제2 메모리 셀을 구비하는 제2 셀 어레이를 포함하되, 제1 메모리 셀은 제2 메모리 셀로 구현되는 MLC-PCM보다 적은 개수의 상태 레벨을 갖는 MLC-PCM으로 구현되어, 연산 및 에너지 효율성을 높이면서도, 저항 드리프트에 의한 오류에 강건한 내결함성을 가질 수 있는 PCM 기반 IMC 장치 및 방법을 제공한다.

Description

심층 신경망을 위한 상변이 메모리 기반 메모리내 컴퓨팅 장치 및 방법{In-Memory Computing Device and Method based on Phase Change Memory for Deep Neural Network}
개시되는 실시예들은 메모리내 컴퓨팅 장치 및 방법에 관한 것으로, 인공 신경망을 위한 상변이 메모리 기반 메모리내 컴퓨팅 장치 및 방법에 관한 것이다.
최근 머신 러닝(Machine learning) 기법은 우수한 성능으로 인해 의료, 교육, 보안, 교통 등 다양한 분야에서 적용되고 있다. 그리고 머신 러닝 기법에서도 가장 인기 있고 널리 적용될 수 있는 방식은 심층 신경망(Deep Neural Network: 이하 DNN)을 적용하는 것이다.
도 1은 DNN의 개략적 구조 나타낸다.
도 1은 대표적인 DNN인 컨볼루션 신경망(Convolutional Neural Network: 이하 CNN)의 개략적 구조를 도시하였다. 도 1에 도시된 바와 같이, DNN은 입력 레이어와 출력 레이어 사이에 끼워진 여러 개의 은닉 뉴런 레이어로 구성되며, 계층 구조에 의해 DNN이 기존 프로그래밍 방식으로는 불가능한 복잡한 문제를 해결할 수 있다.
DNN은 컴퓨터 비전, 데이터 분석 및 자연어 처리와 관련된 작업에서 특히 효과적이지만, 큰 에너지 소비하는 대량의 연산을 요구하므로, 모바일 장치나 임베디드 시스템과 같이 연산 리소스와 전력이 제한된 컴퓨팅 플랫폼에 적용하기 어렵게 하는 문제가 있다.
이에 DNN을 효율적으로 처리하려면 고밀도, 저전력 소모 및 성능 효율적인 메모리 기술이 필요하다. 그러나 DRAM 및 플래시와 같은 기존의 전하 기반 메모리는 제한된 확장성, 전력 누출 및 결함에 대한 취약성 증가 문제가 있어 DNN에 적용하기 적합하지 않다. 반면 상변화 물질(Ge2Sb2Te5: GST)을 사용하여 데이터를 저장하는 상변이 메모리(Phase Change Memory: 이하 PCM)와 같은 새로운 비휘발성 메모리(Non-Volatile Memory: NVM)는 더 높은 저장 밀도, 확장 가능성 및 거의 0에 가까운 누출 전력을 가지므로, DNN에 매우 적합한 것으로 알려져 있다. 이러한 PCM은 DNN을 위한 고효율 컴퓨팅 아키텍처인 메모리내 컴퓨팅 장치(In-Memory Computing: 이하 IMC)에도 적용될 수 있다.
기존 폰 노이만 구조의 경우, 프로세서와 메모리가 구분되어 메모리에 저장된 데이터를 프로세서가 리드하여 연산을 수행하므로, 데이터 액세스 및 전송에 따른 병목 현상으로 인해 에너지 효율성과 연산 속도 향상에 한계가 있었다. 특히 입력 데이터와 가중치 사이에 MAC(Multiply-Accumulation) 연산이 대규모로 수행되어야 하는 DNN에서는 이와 같은 한계가 더욱 크게 나타나게 된다. 이에 데이터를 저장하는 메모리를 이용하여 연산을 수행하여 효율성을 극대화할 수 있는 메모리내 컴퓨팅(In-Memory Computing 이하: IMC) 구조가 제안되었다. IMC 구조에서는 데이터를 저장하는 메모리가 프로세서로 데이터를 전송하지 않고 직접 연산을 수행하여 병목 현상을 제거함으로써, O(1) 시간 복잡도에서 단일 DNN 레이어를 처리할 수 있으므로, 기존의 폰 노이만 구조의 한계를 극복하여 저전력 및 고속으로 연산을 수행할 수 있도록 한다.
PCM 기반 IMC은 크로스바 방식으로 구성된 다수의 PCM 셀을 포함하는 셀 어레이를 구비한다. 그리고 다수의 PCM 셀 각각은 0 또는 1의 2개 레벨에 대한 저항 상태를 가져 1비트를 저장하는 기존의 메모리 셀과는 달리 3 ~ 4개의 다수의 저장 상태 레벨을 갖는 멀티 레벨 셀(Multi-Level Cell: 이하 MLC)로 구성되어 하나의 PCM 셀이 1비트를 초과하는 비트의 데이터를 저장할 수 있다. MLC-PCM은 데이터 저장 밀도를 높일 수 있을 뿐만 아니라, DNN에 적용 시에 입력 데이터와의 다중 비트 연산을 수행할 수 있어, DNN의 연산 및 에너지 효율성을 크게 높일 수 있다는 장점이 있다. 그리고 MLC-PCM에 저장된 다중 비트 데이터는 PCM 셀을 통해 흐르는 전류를 기반으로 저항 상태를 확인하여 판별될 수 있다.
이러한 장점으로 인해 MLC-PCM은 DNN에 적합한 비휘발성 메모리 소자로 주목받아 왔으나, MLC-PCM는 시간에 따라 저항 상태가 변화되는 저항 드리프트(resistance drift)로 인해, DNN에 적용 시에 심각한 연산 오류를 유발할 수 있다는 문제가 있어 실제 DNN에는 적용되지 못하는 실정이다.
한국 공개 특허 제10-2021-0075542호 (2021.06.23 공개)
개시되는 실시예들은 연산 및 에너지 효율성을 높이면서도, 저항 드리프트에 의한 오류에 강건한 내결함성을 갖는 PCM 기반 IMC 장치 및 방법을 제공하는데 목적이 있다.
개시되는 실시예들은 상대적으로 작은 오차를 유발하는 비트 위치나 레이어에는 많은 비트의 데이터가 저장되는 MLC-PCM을 이용하는 반면, 큰 오차를 유발하는 비트나 레이어의 데이터에는 상대적으로 적은 비트의 데이터가 저장되는 MLC-PCM을 이용하여 안정성과 효율을 개선할 수 있는 PCM 기반 IMC 장치 및 방법을 제공하는데 목적이 있다.
실시예에 따른 PCM 기반 IMC 장치는 멀티 레벨 셀 상변이 메모리(Multi-Level Cell-Phase Change Memory: 이하 MLC-PCM)로 구현된 다수의 제1 메모리 셀을 구비하는 제1 셀 어레이; 및 MLC-PCM로 구현된 다수의 제2 메모리 셀을 구비하는 제2 셀 어레이를 포함하되, 상기 제1 메모리 셀은 상기 제2 메모리 셀로 구현되는 MLC-PCM보다 적은 개수의 상태 레벨을 갖는 MLC-PCM으로 구현된다.
상기 제1 셀 어레이는 심층 신경망에서 다수 비트로 구성되는 가중치에서 일부 비트의 비트 데이터가 저장되고, 상기 제2 셀 어레이는 상기 가중치의 나머지 비트의 비트 데이터가 저장될 수 있다.
상기 제1 셀 어레이는 상기 가중치에서 지정된 상위 비트의 비트 데이터가 저장되고, 상기 제2 셀 어레이는 상기 가중치의 나머지 하위 비트의 비트 데이터가 저장될 수 있다.
상기 PCM 기반 IMC 장치는 상기 가중치의 다수의 비트 데이터를 상기 제1 및 제2 메모리 셀의 상태 레벨 개수에 따라 인코딩하고, 인코딩된 결과에 따라 상기 제1 및 제2 메모리 셀이 대응하는 레벨의 저항값을 갖도록 하여 상기 가중치를 저장하는 주변 회로 모듈을 더 포함할 수 있다.
상기 주변 회로 모듈은 다수 비트로 구성된 입력 데이터가 인가되면, 상기 입력 데이터를 비트 위치별 비트값에 따른 입력 비트 전압으로 전환하여, 상기 다수의 제1 및 제2 메모리 셀로 인가하고, 상기 입력 비트 전압이 인가된 상기 다수의 제1 및 제2 메모리 셀에서 출력되는 출력 전류를 감지하고 디지털 데이터로 변환할 수 있다.
상기 주변 회로 모듈은 상기 제1 및 제2 메모리 셀에서 출력된 출력 전류를 출력 전압으로서 감지하고, 감지된 출력 전압을 상태 레벨 개수에 따라 인코딩된 가중치의 비트 데이터에 대응하여 디코딩하여 상기 디지털 데이터를 획득할 수 있다.
상기 주변 회로 모듈은 상기 출력 전류가 출력된 상기 제1 및 제2 메모리 셀에 저장된 비트 데이터의 상기 가중치에서의 비트 위치에 따라 상기 디지털 데이터를 시프트시키고 가산하여 상기 입력 데이터와 상기 가중치의 MAC 연산 결과를 출력할 수 있다.
상기 가중치는 일부 비트의 비트 데이터가 상기 제1 셀 어레이에서 동일한 워드라인에 연결된 다수의 제1 메모리 셀에 저장되고, 나머지 비트의 비트 데이터가 상기 제2 셀 어레이에서 동일한 워드라인에 연결된 다수의 제2 메모리 셀에 저장될 수 있다.
상기 제1 메모리 셀은 3개의 상태 레벨을 갖는 MLC-PCM으로 구현되고, 상기 제2 메모리 셀은 4개의 상태 레벨을 갖는 MLC-PCM으로 구현될 수 있다.
실시예에 따른 PCM 기반 IMC 방법은 멀티 레벨 셀 상변이 메모리(Multi-Level Cell-Phase Change Memory: 이하 MLC-PCM)로 구현된 다수의 제1 메모리 셀과 MLC-PCM로 구현된 다수의 제2 메모리 셀 및 상기 제1 및 제2 셀 어레이를 제어하는 주변 회로 모듈을 포함하는 PCM 기반 IMC 장치에 있어서, 상기 주변 회로 모듈이 심층 신경망의 다수 비트로 구성되는 가중치를 획득하는 단계: 및 상기 주변 회로 모듈이 상기 제2 메모리 셀로 구현되는 MLC-PCM보다 적은 개수의 상태 레벨을 갖는 MLC-PCM으로 구현된 상기 제1 메모리 셀에 상기 가중치에서 일부 비트의 비트 데이터를 저장하고, 상기 가중치에서 나머지 비트의 비트 데이터를 상기 다수의 제2 메모리 셀에 저장하는 단계를 포함한다.
따라서, 실시예에 따른 PCM 기반 IMC 장치 및 방법은 DNN을 위한 IMC의 셀 어레이에 저장되는 가중치 중 작은 오차를 유발하는 하위 비트 위치의 가중치 비트 데이터는 상대적으로 많은 상태 레벨 수를 갖는 MLC-PCM로 구현된 메모리 셀에 저장되도록 하는 반면, 가중치에서 큰 오차를 유발하는 상위 비트 위치의 데이터는 상대적으로 적은 상태 레벨 수를 갖는 MLC-PCM로 구현된 메모리 셀에 저장되도록 하여, 연산 및 에너지 효율성을 높이면서도, 저항 드리프트에 의한 오류에 강건한 내결함성을 가질 수 있다.
도 1은 DNN의 개략적 구조 나타낸다.
도 2는 기존의 MLC-PCM 기반 IMC 장치의 개략적 구조를 나타낸다.
도 3은 MLC-PCM 셀의 저항 드리프트 특성을 설명하기 위한 도면이다.
도 4 및 도 5는 저항 드리프트 특성에 따른 상태 레벨별 오차를 설명하기 위한 도면이다.
도 6은 양자화 레벨에 따른 비트 위치별 정확도 손실을 나타낸다.
도 7은 비트 위치별 오류에 따른 IMC 연산 정확도를 시뮬레이션한 결과를 나타낸다.
도 8은 일 실시예에 따른 MLC-PCM 기반 IMC 장치의 개략적 구조를 나타낸다.
도 9는 3레벨 셀과 4 레벨 셀의 데이터 인코딩 예를 나타낸다.
도 10은 일 실시예에 따른 MLC-PCM 기반 IMC 방법을 나타낸다.
이하, 도면을 참조하여 일 실시예의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
일 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 일 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 일 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
이하에서는 실시예에 따른 MLC-PCM 기반 IMC을 설명하기에 앞서, 이해의 편의를 위하여 기존 MLC-PCM 기반 IMC의 구조를 설명한다.
도 2는 기존의 MLC-PCM 기반 IMC의 개략적 구조를 나타낸다.
도 2에 도시된 바와 같이, PCM 기반 IMC은 크로스바 방식으로 구성된 다수의 PCM 셀을 포함하는 셀 어레이(11)와 샘플앤 홀드(Sample & Hold: 이하 S&H) 모듈(14), ADC(Analog to Digital Convertor)(15) 및 시프트앤 애드(Shift & Add: 이하 S&A) 모듈(16)을 포함할 수 있다.
도 2를 참조하면, 셀 어레이(11)는 각각 PCM으로 구현되고 매트릭스 구조로 배열된 다수의 메모리 셀(MC)을 구비한다. 셀 어레이(11)는 크로스바 어레이(crossbar array) 구조로 구현되어, 다수의 워드라인(WL)과 다수의 비트라인(BL)이 교차하는 위치 각각에 메모리 셀(MC)이 배치될 수 있다.
그리고 다수의 메모리 셀(MC)을 구비하는 셀 어레이(11)에는 DNN의 다수의 레이어에서 학습에 의해 결정되는 다수의 가중치(W)가 저장된다. 이때 각 메모리 셀(MC)에는 다수의 비트로 구성되는 가중치(W)에서 대응하는 비트 위치의 비트 데이터가 가중치 비트 데이터(Wi)(여기서 i는 비트 위치)로서 저장된다. 특히 실시예에서, 메모리 셀(MC)은 MLC-PCM으로 구현될 수 있으며, 이에 각 메모리 셀(MC)에는 1 비트를 초과하는 크기의 다중 비트 데이터가 가중치 비트 데이터(Wi)로서 저장될 수 있다. 도 2에서는 일 예로 MLC-PCM으로 구현된 다수의 메모리 셀(MC) 각각이 4개의 서로 다른 레벨의 저항 상태를 가져 2비트의 데이터를 저장할 수 있는 것으로 가정하며, 이에 가중치 비트 데이터(Wi)는 2비트의 비트값을 갖는 데이터이다.
가중치(W)가 8비트 데이터로 구성되는 경우에 각 메모리 셀(MC)이 2비트의 가중치 비트 데이터를 저장할 수 있는 것으로 가정하였으므로, 크로스바 어레이 구조로 구현된 셀 어레이(11)에서 각 가중치(W)는 다수의 워드라인(WL) 중 하나의 워드라인(여기서는 n번째 워드라인(WLn))에 연결되어 행방향으로 배열된 4개의 메모리 셀(MC)에 저장될 수 있다. 따라서 n번째 워드라인(WLn)을 따라 행방향으로 배열된 4개의 메모리 셀(MCn,i) 각각에는 가중치 비트 데이터(Wn,i)가 저장된다.
그리고 각 메모리 셀(MC)에 레벨에 따른 저항값의 형식으로 저장되는 가중치 비트 데이터(Wn,i)는 MLC-PCM의 저장 밀도, 즉 레벨 수에 따라 선형 맵핑 방식으로 인코딩된 컨덕턴스 값(conductance value)(Gn,i)으로 수학식 1과 같이 표현될 수 있다.
여기서 Wni 는 m 비트로 구성되어 셀 어레이(11)에서 n번째 행에 배열된 다수의 메모리 셀(MC)에 저장된 가중치(W = W0, …, Wm-1) 중 하나의 메모리 셀(MC)에 저장된 가중치 비트 데이터이고, Gmax 와 Wmax 는 설정된 레벨 개수에 따른 메모리 셀(MC)의 최대 컨덕턴스 값과 가중치 비트 데이터(Wni)의 최대값을 나타낸다.
그리고 셀 어레이(11)의 다수의 워드라인(WL)에는 다수의 비트로 구성되는 입력 데이터(IN)에서 비트 위치별 비트값에 따른 입력 비트 전압(V1 ~ V4)이 인가된다. 이때 각 입력 비트 전압(V1 ~ V4) 또한 2비트 이상의 다중 비트에 대응하는 전압으로 인가될 수 있다. 일 예로 각 입력 비트 전압(V1 ~ V4)이 2비트에 대응하여 4개의 서로 다른 전압 레벨을 가질 수 있는 경우, 4개의 입력 비트 전압(V1 ~ V4)은 8비트의 입력 데이터를 나타낼 수 있다.
도 2에서와 같이, 4개의 워드라인(WL)을 통해 4개의 입력 비트 전압(V1 ~ V4)이 순차적으로 활성화되어 인가되는 경우, 4개의 워드라인(WL) 중 활성화된 워드라인(WLn)에 각각에 연결된 4개의 메모리 셀(MC)은 저항 상태에 따른 출력 전류(I1 ~ I4)가 대응하는 비트라인(BL)을 통해 흐르도록 한다.
만일 제1 워드라인(WL1)으로 제1 입력 비트 전압(V1)이 인가된 경우, 제1 워드라인(WL1)의 4개의 메모리 셀(MC)은 제1 입력 비트 전압(V1)과 각 컨덕턴스(G11, ~ G14)의 곱에 따른 출력 전류(I1 ~ I4)가 대응하는 비트라인(BL)을 통해 흐르도록 하고, 제2 내지 제4 워드라인(WL2 ~ WL4)으로 제2 내지 제4 입력 비트 전압(V2 ~ V4)이 인가된 경우에도 각각 제2 내지 제4 입력 비트 전압(V2 ~ V4)과 각 컨덕턴스((G21, ~ G24) ~ (G41, ~ G44))의 곱에 따른 출력 전류(I1 ~ I4)가 대응하는 비트라인(BL)을 통해 흐르도록 한다.
S&H 모듈(14)은 비트라인(BL)을 통해 흐르는 출력 전류(I1 ~ I4)에 따른 출력 전압을 샘플링 및 홀드하고, ADC(15)는 S&H 모듈(14)에서 출력되는 출력 전압을 디지털 데이터로 변환하여 출력한다. 그리고 S&A 모듈(16)은 입력 데이터에서 입력 비트 전압(V1 ~ V4)이 나타내는 비트 위치에 따라 ADC(15)에 출력된 디지털 데이터를 시프트하고 가산하여 입력 데이터(IN)와 다수의 가중치(W)가 MAC 연산된 연산 결과 데이터(Yout)를 출력한다.
여기서 연산 결과 데이터(Yout)는 수학식 2와 같이 계산되어 출력될 수 있다.
여기서 G1 ~ G4 는 각각 활성화된 워드라인(WLn)에 연결된 메모리 셀들의컨덕턴스(Gn = [Gn1, Gn2, Gn3, Gn4])이고, · 는 행렬 곱 연산자이다.
도 3은 MLC-PCM 셀의 저항 드리프트 특성을 설명하기 위한 도면이고, 도 4 및 도 5는 저항 드리프트 특성에 따른 상태 레벨별 오차를 설명하기 위한 도면이다.
도 3은 4가지 저항 상태 레벨을 가져 2비트의 데이터를 저장할 수 있는 MLC-PCM 셀에 각 저항 상태 레벨에 대응하는 저항값(R0)이 설정된 경우, 시간의 흐름에 따른 저항값의 변화를 나타낸다.
도 3에 도시된 바와 같이, MLC-PCM 셀에는 초기에 설정된 저항값(R0)이 시간의 흐름에 따라 점차 증가하는 저항 드리프트(resistance drift) 현상이 나타나게 된다. 그리고 이러한 저항 드리프트 현상은 초기에 설정된 저항값(R0)이 클수록 더욱 크게 나타나게 됨을 알 수 있다.
한편 도 4에 도시된 바와 같이, MLC-PCM 셀에서는 일반적으로 가장 작은 비트값(00)에 가장 낮은 저항값을 갖는 상태가 할당되고, 비트값(01, 10, 11)이 증가될수록 더 높은 저항값을 갖는 상태가 할당된다. 특히 MLC-PCM 셀에 저장되는 비트값은 각 레벨을 구분하는 다수의 기준 저항값과의 비교를 통해 판별될 수 있으므로, 저항 드리프트 현상으로 인해 설정된 저항값이 점차로 증가하게 되어 해당 레벨에 대한 기준 저항값보다 큰 저항값을 갖게 되는 경우, MLC-PCM 셀에 저장된 비트값이 변화된 것으로 오판별하게 된다.
그리고 저항 드리프트 현상에 따른 저항값 증가는 MLC-PCM로 IMC의 메모리 셀(MC)을 구성하는 경우, 메모리 셀(MC)에 저장된 비트값이 시간의 흐름에 변화되는 결과를 초래하므로, 잘못된 연산 결과를 출력하는 문제가 있다.
이때 도 3 및 도 4에 나타난 바와 같이, MLC-PCM에 가장 낮은 저항값이 할당되는 가장 작은 비트값(00)이 저장된 제1 레벨(Level 1)의 경우에는 저항 드리프트 현상에 따른 저항값 변화가 크지 않아 오류가 발생할 가능성이 낮다. 반대로, MLC-PCM에 가장 높은 저항값이 할당되어 가장 큰 비트값(11)이 저장된 제4 레벨(Level 4)의 경우에는 저항값의 변화가 가장 크다. 그러나 저항값이 증가하더라도 제4 레벨(Level 4)보다 큰 레벨을 판별하기 위한 기준 저항값이 존재하지 않으므로 잘못된 비트값으로 판별될 가능성이 없다.
따라서 저항 드리프트 현상에 의한 오판별은 MLC-PCM에 주로 제2 및 제3 레벨(Level 2, Level 3)에 해당하는 저항값이 설정된 경우에 주로 발생하게 된다.
도 5에서는 도 4의 MLC-PCM의 4개의 레벨 중 제2 및 제3 레벨(Level 2, Level 3)에 따른 저항값이 설정된 경우에, 시간의 흐름에 따른 판별 정확도의 변화를 나타낸다. 도 5에 도시된 바와 같이, 4개의 저항 상태 레벨을 갖는 MLC-PCM에서는 상대적으로 높은 제3 레벨(Level 3)에 해당하는 저항값이 설정된 경우에 비트값(10)을 오판별하는 오류가 제2 레벨(Level 2)에 해당하는 저항값이 설정된 비트값(01)을 오판별하는 오류보다 훨씬 이른 시점에 발생한다. 즉 제2 레벨(Level 2)의 저항값으로 설정된 비트값(01)을 갖는 MLC-PCM이 더 긴 시간 동안 안정적인 상태를 유지하게 된다.
도 6은 양자화 레벨에 따른 비트 위치별 정확도 손실을 나타낸다.
다수의 비트로 구성된 가중치(W)의 값은 각 비트의 위치에 따른 중요도가 상이하다. 예로서 도 6에 도시된 바와 같이, 가중치(W)가 8비트 또는 16비트로 양자화된 경우, 최상위 비트인 MSB(Most Significant Bit)의 오류로 인한 정확도 손실(Accuracy loss)은 80% 수준으로 절대적인 크기의 손실을 야기하는 반해, 이후 비트들은 최하위 비트인 LSB(Least Significant Bit)로 갈수록 정확도 손실에 미치는 영향이 점차 미미해짐을 알 수 있다. 그리고 LSB의 경우엔 실제 정확도 손실에 거의 영향을 미치지 못함을 알 수 있다.
이와 같은 오류가 발생된 비트 위치에 따른 가중치(W)의 정확도 손실은 IMC에서도 동일하게 적용된다.
도 7은 비트 위치별 오류에 따른 IMC 연산 정확도를 시뮬레이션한 결과를 나타낸다.
도 7에서는 각각 4개의 저항 상태 레벨을 가져 2비트의 데이터를 저장하는 MLC-PCM으로 구현되는 메모리 셀(MC)이 각 행에 n+1개의 가중치(W0 ~ Wn)를 저장하는 경우를 도시하였다.
도 7에서 (a)는 저장된 가중치(W0 ~ Wn)에 저항 드리프트로 인한 오류가 발생되지 않은 경우를 나타내고, (b)는 다른 메모리 셀(MC)과 상이하게 표시된 가중치(W0 ~ Wn)의 하위 비트에 오류가 발생된 경우를 나타내며, (c)는 가중치(W0 ~ Wn)의 상위 비트에 오류가 발생된 경우를 나타낸다. 그리고 (a) 내지 (c) 각각의 우측에 도시된 그래프에서 다수의 점은 사인 함수(y = sin(x))를 기반으로 생성된 테스트 데이터의 값이고, 실선은 IMC로 구성된 모델이 예측한 연산 결과 데이터를 나타낸다.
도 7의 (a)와 (b)를 비교하면, 가중치(W0 ~ Wn)의 하위 비트에 오류가 발생되더라도, 실제 데이터와 연산 결과 데이터 사이에 오차는 크게 발생되지 않는다. 그에 반해 (c)와 같이, 가중치(W0 ~ Wn)의 하위 비트에 오류가 발생된 경우에는 오차가 매우 크게 발생하게 되며, 이는 IMC의 신뢰도를 저하시키는 요인이 되게 된다.
그러므로 PCM 기반 IMC 장치가 저항 드리프트 현상으로 인한 오류에 강건한 내결함성을 갖기 위해서는 가급적 가중치(W0 ~ Wn)의 상위 비트에 저항 드리프트로 인한 오류가 발생되지 않도록 구성되어야 한다.
도 8은 일 실시예에 따른 MLC-PCM 기반 IMC 장치의 개략적 구조를 나타내고, 도 9는 3레벨 셀과 4 레벨 셀의 데이터 인코딩 예를 나타낸다.
도 8을 참조하면, 실시예에 따른 MLC-PCM 기반 IMC 장치 또한 도 2의 MLC-PCM 기반 IMC 장치와 마찬가지로, 크로스바 방식으로 구성되고, 각각 MLC-PCM으로 구현되는 다수의 메모리 셀(MC1, MC2)을 포함하는 셀 어레이(21)와 S&H 모듈(24), ADC(25) 및 S&A 모듈(26)을 포함할 수 있다.
여기서 와 S&H 모듈(24), ADC(25) 및 S&A 모듈(26)은 도 2의 와 S&H 모듈(14), ADC(15) 및 S&A 모듈(16)과 기본적으로 동일하게 동작한다. 그러나 실시예에서 셀 어레이(21)는 모두 동일한 상태 레벨을 갖는 MLC-PCM만으로 구성된 메모리 셀(MC)을 포함하는 기존의 셀 어레이(11)와 달리, 서로 상이한 개수의 상태 레벨을 갖는 MLC-PCM를 포함하여 구성될 수 있다. 이에 셀 어레이(21)는 제1 셀 어레이(22)와 제2 셀 어레이(23)로 구분되어 구성될 수 있다. 그리고 실시예에서 제1 셀 어레이(22)에 구비되는 다수의 제1 메모리 셀(MC1)은 제2 셀 어레이(23)에 구비되는 다수의 제2 메모리 셀(MC2)보다 적은 수의 상태 레벨을 갖는 MLC-PCM로 구현된다.
예로서 제2 셀 어레이(23)의 제2 메모리 셀(MC2)이 기존과 마찬가지로 4개의 저항 상태 레벨을 가져 2비트의 데이터를 저장할 수 있는 4레벨 MLC-PCM로 구현되는 경우, 제1 셀 어레이(22)의 제1 메모리 셀(MC1)은 제2 메모리 셀(MC2)보다 적은 3개의 저항 상태 레벨을 갖는 3레벨 MLC-PCM로 구현될 수 있다.
MLC-PCM에서 상태 레벨의 수가 줄어들면, 각 상태 레벨에 대한 저항값의 범위가 증가하게 된다. 예로서 도 4에 도시된 4레벨 MLC-PCM의 상태 레벨 수가 3개로 줄어들게 되면, 기준 저항값의 개수가 3개에서 2개로 줄어듦과 동시에 다수의 기준 저항값 사이의 간격이 넓어져 각 상태 레벨의 범위가 확장된다. 따라서 시간이 흘러 저장된 데이터에 따른 저항값에 저항 드리프트 현상이 발생되어 저항값이 상승하더라도 데이터 판별 오류가 저감된다. 실제로 4레벨 MLC-PCM에 비해 3레벨 MLC-PCM의 데이터 정확도는 매우 우수하여 1년 이상의 시간이 지나더라도 저장된 데이터가 안정적으로 유지될 수 있다고 알려져 있다. 그러므로, 낮을 상패 레벨을 갖는 MLC-PCM로 메모리 셀(MC)을 구현하면, 오류를 발생시키지 않고 더 오랜 시간 동안 데이터를 안정적으로 저장할 수 있어, 저항 드리프트 현상에 대한 내결함성이 향상된다.
다만 셀 어레이(21)의 모든 메모리 셀(MC)이 적은 상태 레벨 수를 갖는 MLC-PCM으로 구현되는 경우, 메모리 셀(MC)의 줄어든 상태 레벨 개수에 의해 셀 어레이(21)의 데이터 저장 밀도가 낮아지게 되고, 이로 인해 연산 및 에너지 효율성이 저하되는 문제가 있다. 비록 적은 상태 레벨 수를 갖는 MLC-PCM을 이용하면 안정적인 데이터 저장 기간이 증가함에 따라 데이터의 갱신 주기가 증가되어, 데이터 갱신에 소요되는 에너지 소비를 저감시킬 수 있으나, MLC-PCM의 데이터 갱신 주기는 기본적으로 DRAM과 같은 비휘발성 메모리와 비교할 수 없는 수준으로 길기 때문에 이로 인한 에너지 저감 효과는 미미한 편이다.
이에 실시예의 PCM 기반 ICM 장치는 연산 및 에너지 효율성이 저하를 최대한 억제하면서도 내결함성이 향상될 수 있도록, 서로 다른 상태 레벨 개수를 갖는 2가지 종류의 MLC-PCM를 이용하여 셀 어레이(21)를 구성한다. 이와 같이 서로 다른 상태 레벨을 갖는 2가지 종류의 MLC-PCM를 사용하는 방식을 여기서는 하이드라 구조(Hydra architecture)라 한다.
다만 서로 다른 상태 레벨 개수를 갖는 2가지 종류의 MLC-PCM를 이용하여 구현된 메모리 셀(MC1, MC2)로 셀 어레이(21)를 구성하는 경우, 메모리 셀(MC1, MC2)에 저장되는 데이터의 중요도가 큰 이슈가 될 수 있다. 상기한 바와 같이, 상대적으로 많은 상태 레벨 개수(여기서는 4개)를 갖는 제2 메모리 셀(MC2)은 저장 밀도가 높아 연산 및 에너지 효율성을 높일 수 있으나, 대신 저장된 데이터의 안정성이 낮다. 반면, 상대적으로 적은 상태 레벨 개수(여기서는 3개)를 갖는 제1 메모리 셀(MC1)은 낮은 저장 밀도로 인해 연산 및 에너지 효율성을 저하시키지만, 데이터의 안정성이 높아 데이터 오류 발생 확률을 크게 줄일 수 있다.
도 8에서는 이해의 편의를 위하여 제1 및 제2 셀 어레이(22, 23)의 워드라인(WL)을 서로 구분하였으나, 제1 및 제2 셀 어레이(22, 23)의 워드라인(WL)은 동일한 워드라인이 연장되어 공통으로 형성될 수 있다.
그리고 도 6에서 설명한 바와 같이, 다수 비트로 구성되는 가중치(W)에서는 비트 위치에 따라 가중치(W)의 정확도가 크게 변화되므로, 가중치(W)의 비트 위치에 따라 중요도가 서로 상이하다. 그러므로 가중치(W)에서 상대적으로 높은 중요도를 갖는 상위 비트의 가중치 비트 데이터는 적은 상태 레벨 수를 갖는 MLC-PCM으로 구현되어 데이터 안정성이 높은 제1 메모리 셀(MC)로 구성된 제1 셀 어레이(22)에 저장되고, 상대적으로 낮은 중요도를 갖는 하위 비트의 가중치 비트 데이터는 많은 상태 레벨 수를 갖는 MLC-PCM으로 구현되어 저장 밀도가 높은 제2 메모리 셀(MC2)로 구성된 제2 셀 어레이(23)에 저장된다.
이와 같이 가중치(W)의 다수의 가중치 비트 데이터 각각이 비트 위치에 따라 제1 및 제2 셀 어레이(22, 23)에 구분되어 저장되게 되면, 연산 및 에너지 효율성을 높게 유지하면서도 저항 드리프트 현상에 따른 연산 오류가 발생할 지라도 이로 인한 연산 결과에 미치는 영향을 최소화할 수 있다.
다만 상기의 예에서와 같이, 셀 어레이(21)가 서로 다른 개수의 상태 레벨을 갖는 이종의 MLC-PCM를 구비하여, 상위 비트 데이터와 하위 비트 데이터를 각각 구분하여 저장하는 경우, 가중치(W)는 상위 가중치 비트 데이터와 하위 가중치 비트 데이터가 서로 상이하게 인코딩되어 제1 및 제2 메모리 셀(MC)에 저장되어야 한다.
도 9에 도시된 바와 같이, 가중치(W)가 16 비트의 데이터로 구성되어, 상위 가중치 비트 데이터와 하위 가중치 비트 데이터가 3레벨 MLC-PCM과 4레벨 MCL-PCM에 구분되어 저장되는 경우, 16 비트의 가중치(W)에서 상위 6개 비트(15 ~ 10)의 가중치 비트 데이터(110101)는 4개의 3레벨 MLC-PCM에 저장되고 하위 10개의 비트(9 ~ 0)의 가중치 비트 데이터(0000110001)는 5개의 4레벨 MCL-PCM에 저장된다. 이때, 상위 6개 비트의 가중치 비트 데이터는 3비트씩 쌍(110, 101)을 이루어 2개의 3레벨 MLC-PCM에 저장되도록 인코딩되고, 하위 10개 비트의 가중치 비트 데이터는 2비트씩 쌍(00, 00, 11, 00, 01)을 이루어 하나의 3레벨 MLC-PCM에 저장되도록 인코딩되어 저장될 수 있다.
도시하지 않았으나, 가중치(W)는 IMC의 제어 모듈 또는 칼럼 디코더 등에서 인코딩될 수 있다.
이에 다수의 워드라인(WL) 중 활성화된 워드라인을 통해 입력 데이터(IN)에서 비트 위치별 비트값에 따른 입력 비트 전압(V1 ~ V4)이 순차적으로 인가되면, 활성화된 워드라인(WL)에 연결되고, 저장된 가중치 비트 데이터에 따른 저항 상태를 갖는 제1 및 제2 메모리 셀(MC1, MC2) 각각은 인가된 입력 비트 전압(V1 ~ V4)과 저항 상태에 따른 컨덕턴스의 곱에 대응하는 출력 전류가 연결된 비트라인(BL)을 통해 흐르도록 한다.
S&H 모듈(24)은 비트라인(BL)을 통해 흐르는 출력 전류에 따른 출력 전압을 샘플링 및 홀드한다. 그리고 ADC(15)는 S&H 모듈(14)에서 출력되는 출력 전압을 디지털 데이터로 변환하여 출력한다. 다만 실시예에서 가중치(W)의 상위 가중치 비트 데이터와 하위 가중치 비트 데이터가 서로 상이한 개수의 상태 레벨을 갖는 이종 MLC-PCM에 구분되어 저장되므로, ADC(25)는 셀 어레이(21)의 다수의 비트라인(BL) 중 상위 가중치 비트 데이터가 저장된 제1 메모리 셀(MC1)에 연결된 제1 비트라인(BL1)을 통해 S&H 모듈(24)에서 감지된 전압 레벨과 하위 가중치 비트 데이터가 저장된 제2 메모리 셀(MC2)에 연결된 제2 비트라인(BL2)을 통해 S&H 모듈(24)에서 감지된 전압 레벨을 각각 인코딩 방식에 대응하는 서로 다른 디코딩 방식으로 디코딩하여 디지털 데이터로 변환할 수 있다. 이때, 제1 비트라인(BL1)을 통해 인가되고 디코딩된 디지털 데이터를 제1 디지털 데이터라 하고, 제2 비트라인(BL2)을 통해 인가되고 디코딩된 디지털 데이터를 제2 디지털 데이터라 할 수 있다.
한편, S&A 모듈(26) 또한 서로 다른 저장 밀도를 갖는 제1 및 제2 메모리 셀(MC1, MC2)에서 출력되어, ADC(25)에서 디지털 데이터로 전환되고 서로 상이한 방식으로 디코딩된 제1 및 제2 출력 데이터가 도 9와 같이 각 비트 위치에 배치되도록 하여 연산 결과 데이터를 획득한다.
여기서 S&H 모듈(24)과 ADC(25) 및 S&A 모듈(26)은 셀 어레이(21)에서 출력되는 출력 전류에 따른 연산 결과 데이터를 획득하는 주변 회로 모듈로 통합될 수 있다. 그리고 주변 회로 모듈에는 도시하지 않았으나 제어 모듈, 로우 디코더 및 칼럼 디코더가 더 포함될 수 있다.
결과적으로 실시예에 따른 PCM 기반 IMC 장치는 DNN을 위한 IMC의 셀 어레이에 저장되는 가중치 중 작은 오차를 유발하는 하위 비트 위치의 가중치 비트 데이터는 상대적으로 많은 상태 레벨 수를 갖는 MLC-PCM로 구현된 메모리 셀에 저장되도록 하는 반면, 가중치에서 큰 오차를 유발하는 상위 비트 위치의 데이터는 상대적으로 적은 상태 레벨 수를 갖는 MLC-PCM로 구현된 메모리 셀에 저장되도록 하여, 연산 및 에너지 효율성을 높이면서도, 저항 드리프트에 의한 오류에 강건한 내결함성을 가질 수 있다.
도시된 실시예에서, 각 구성들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 구성을 포함할 수 있다. 또한, 일 실시예에서, 각 구성은 물리적으로 구분된 하나 이상의 장치를 이용하여 구현되거나, 하나 이상의 프로세서 또는 하나 이상의 프로세서 및 소프트웨어의 결합에 의해 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.
도 10은 일 실시예에 따른 MLC-PCM 기반 IMC 방법을 나타낸다.
도 9 및 도 9를 참조하여, 도 10의 MLC-PCM 기반 IMC 방법을 설명하면, 우선 셀 어레이(21)에 저장될 다수의 가중치(W)를 획득한다(31). 여기서 다수의 가중치(W)는 DNN에서 신경망 연산을 수행하는 다수의 레이어를 구성하는 값으로 학습의 의해 결정될 수 있다.
가중치(W)가 획득되면, 획득된 가중치(W)의 다수의 비트를 상위 비트와 하위 비트로 구분하여, 상위 가중치 비트 데이터와 하위 가중치 비트 데이터를 획득하고, 획득된 상위 가중치 비트 데이터와 하위 가중치 비트 데이터를 서로 다르게 인코딩한다(32). 이때 하위 가중치 비트 데이터는 지정된 다수개의 상태 레벨을 갖는 MLC-PCM로 구현된 제2 셀 어레이(23)의 제2 메모리 셀(MC2)의 상태 레벨에 대응하도록 인코딩되고, 상위 가중치 비트 데이터는 제2 메모리 셀(MC2)보다 적은 개수의 상태 레벨을 갖는 MLC-PCM로 구현된 제1 셀 어레이(22)의 제1 메모리 셀(MC1)의 상태 레벨에 대응하도록 인코딩된다.
가중치(W)의 상위 가중치 비트 데이터와 하위 가중치 비트 데이터가 각각 인코딩되면, 인코딩된 값에 따른 전압 또는 전류를 각각 제1 및 제2 셀 어레이(22, 23)의 다수의 제1 및 제2 메모리 셀(MC1, MC2)로 인가하여, 제1 및 제2 메모리 셀(MC1, MC2)이 각각 인가된 인코딩 값에 따른 상태 레벨의 저항값을 갖도록 함으로써 가중치(W)를 저장한다(33).
이후 입력 데이터(IN)가 인가되면, 인가된 입력 데이터(IN)를 비트 위치별 비트값에 따른 입력 비트 전압으로 전환하여, 다수의 워드라인(WL)을 통해 인가한다(34). 이에 연결된 워드라인(WL)을 통해 대응하는 입력 비트 전압이 인가된 제1 및 제2 메모리 셀(MC1, MC2)은 저항값에 따른 출력 전류를 연결된 비트라인(BL)을 통해 출력하고, 출력 전류를 감지하여 획득된 출력 전압을 디지털 데이터로 전환 및 디코딩하여 출력 데이터를 획득한다(35). 이때 서로 다른 개수의 상태 레벨을 갖는 제1 및 제2 메모리 셀(MC1, MC2) 각각에서 인가된 출력 전압에 따라 출력 데이터는 서로 상이하게 디코딩되어 제1 및 제2 출력 데이터로 획득될 수 있다.
그리고 제1 및 제2 출력 데이터가 획득되면, 획득된 제1 및 제2 출력 데이터를 각각 대응하는 비트 위치로 이동시키고 가산하여 연산 결과 데이터를 획득한다(36).
도 10에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나 이는 예시적으로 설명한 것에 불과하고, 이 분야의 기술자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 10에 기재된 순서를 변경하여 실행하거나 또는 하나 이상의 과정을 병렬적으로 실행하거나 다른 과정을 추가하는 것으로 다양하게 수정 및 변형하여 적용 가능하다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
21: 셀 어레이 22: 제1 셀 어레이
22: 제2 셀 어레이 23: S&H 모듈
24: ADC 25: S&A 모듈

Claims (17)

  1. 멀티 레벨 셀 상변이 메모리(Multi-Level Cell-Phase Change Memory: 이하 MLC-PCM)로 구현된 다수의 제1 메모리 셀을 구비하는 제1 셀 어레이; 및
    MLC-PCM로 구현된 다수의 제2 메모리 셀을 구비하는 제2 셀 어레이를 포함하되,
    상기 제1 메모리 셀은 상기 제2 메모리 셀로 구현되는 MLC-PCM보다 적은 개수의 상태 레벨을 갖는 MLC-PCM으로 구현되는 PCM 기반 IMC 장치.
  2. 제1 항에 있어서, 상기 제1 셀 어레이는
    심층 신경망에서 다수 비트로 구성되는 가중치에서 일부 비트의 비트 데이터가 저장되고,
    상기 제2 셀 어레이는
    상기 가중치의 나머지 비트의 비트 데이터가 저장되는 PCM 기반 IMC 장치.
  3. 제2 항에 있어서, 상기 제1 셀 어레이는
    상기 가중치에서 지정된 상위 비트의 비트 데이터가 저장되고,
    상기 제2 셀 어레이는
    상기 가중치의 나머지 하위 비트의 비트 데이터가 저장되는 PCM 기반 IMC 장치.
  4. 제2 항에 있어서, 상기 PCM 기반 IMC 장치는
    상기 가중치의 다수의 비트 데이터를 상기 제1 및 제2 메모리 셀의 상태 레벨 개수에 따라 인코딩하고, 인코딩된 결과에 따라 상기 제1 및 제2 메모리 셀이 대응하는 레벨의 저항값을 갖도록 하여 상기 가중치를 저장하는 주변 회로 모듈을 더 포함하는 PCM 기반 IMC 장치.
  5. 제4 항에 있어서, 상기 주변 회로 모듈은
    다수 비트로 구성된 입력 데이터가 인가되면, 상기 입력 데이터를 비트 위치별 비트값에 따른 입력 비트 전압으로 전환하여, 상기 다수의 제1 및 제2 메모리 셀로 인가하고,
    상기 입력 비트 전압이 인가된 상기 다수의 제1 및 제2 메모리 셀에서 출력되는 출력 전류를 감지하고 디지털 데이터로 변환하는 PCM 기반 IMC 장치.
  6. 제5 항에 있어서, 상기 주변 회로 모듈은
    상기 제1 및 제2 메모리 셀에서 출력된 출력 전류를 출력 전압으로서 감지하고, 감지된 출력 전압을 상태 레벨 개수에 따라 인코딩된 가중치의 비트 데이터에 대응하여 디코딩하여 상기 디지털 데이터를 획득하는 PCM 기반 IMC 장치.
  7. 제6 항에 있어서, 상기 주변 회로 모듈은
    상기 출력 전류가 출력된 상기 제1 및 제2 메모리 셀에 저장된 비트 데이터의 상기 가중치에서의 비트 위치에 따라 상기 디지털 데이터를 시프트시키고 가산하여 상기 입력 데이터와 상기 가중치의 MAC 연산 결과를 출력하는 PCM 기반 IMC 장치.
  8. 제2 항에 있어서, 상기 가중치는
    일부 비트의 비트 데이터가 상기 제1 셀 어레이에서 동일한 워드라인에 연결된 다수의 제1 메모리 셀에 저장되고,
    나머지 비트의 비트 데이터가 상기 제2 셀 어레이에서 동일한 워드라인에 연결된 다수의 제2 메모리 셀에 저장되는 PCM 기반 IMC 장치.
  9. 제2 항에 있어서, 상기 제1 메모리 셀은
    3개의 상태 레벨을 갖는 MLC-PCM으로 구현되고,
    상기 제2 메모리 셀은
    4개의 상태 레벨을 갖는 MLC-PCM으로 구현되는 PCM 기반 IMC 장치.
  10. 멀티 레벨 셀 상변이 메모리(Multi-Level Cell-Phase Change Memory: 이하 MLC-PCM)로 구현된 다수의 제1 메모리 셀과 MLC-PCM로 구현된 다수의 제2 메모리 셀 및 상기 제1 및 제2 셀 어레이를 제어하는 주변 회로 모듈을 포함하는 PCM 기반 IMC 장치에 있어서,
    상기 주변 회로 모듈이 심층 신경망의 다수 비트로 구성되는 가중치를 획득하는 단계: 및
    상기 주변 회로 모듈이 상기 제2 메모리 셀로 구현되는 MLC-PCM보다 적은 개수의 상태 레벨을 갖는 MLC-PCM으로 구현된 상기 제1 메모리 셀에 상기 가중치에서 일부 비트의 비트 데이터를 저장하고, 상기 가중치에서 나머지 비트의 비트 데이터를 상기 다수의 제2 메모리 셀에 저장하는 단계를 포함하는 PCM 기반 IMC 방법.
  11. 제10 항에 있어서, 상기 저장하는 단계는
    상기 가중치에서 지정된 상위 비트의 비트 데이터를 상기 제1 메모리 셀에 저장하고,
    상기 가중치의 나머지 하위 비트의 비트 데이터를 상기 제2 메모리 셀에 저장하는 PCM 기반 IMC 방법.
  12. 제10 항에 있어서, 상기 저장하는 단계는
    상기 가중치의 다수의 비트 데이터를 상기 제1 및 제2 메모리 셀의 상태 레벨 개수에 따라 인코딩하고,
    인코딩된 결과에 따라 상기 제1 및 제2 메모리 셀이 대응하는 레벨의 저항값을 갖도록 하여 상기 가중치를 저장하는 주변 회로 모듈을 더 포함하는 PCM 기반 IMC 방법.
  13. 제12 항에 있어서, 상기 IMC 방법은
    다수 비트로 구성된 입력 데이터가 인가되면, 상기 입력 데이터를 비트 위치별 비트값에 따른 입력 비트 전압으로 전환하여, 상기 다수의 제1 및 제2 메모리 셀로 인가하는 단계; 및
    상기 입력 비트 전압이 인가된 상기 다수의 제1 및 제2 메모리 셀에서 출력되는 출력 전류를 감지하고 디지털 데이터로 변환하여 연산 결과 데이터를 획득하는 단계를 더 포함하는 PCM 기반 IMC 방법.
  14. 제13 항에 있어서, 상기 연산 결과 데이터를 획득하는 단계는
    상기 제1 및 제2 메모리 셀에서 출력된 출력 전류를 출력 전압으로서 감지하고,
    감지된 출력 전압을 상태 레벨 개수에 따라 인코딩된 가중치의 비트 데이터에 대응하여 디코딩하여 상기 디지털 데이터를 획득하는 PCM 기반 IMC 방법.
  15. 제14 항에 있어서, 상기 연산 결과 데이터를 획득하는 단계는
    상기 출력 전류가 출력된 상기 제1 및 제2 메모리 셀에 저장된 비트 데이터의 상기 가중치에서의 비트 위치에 따라 상기 디지털 데이터를 시프트시키고 가산하여 상기 연산 결과 데이터를 획득하는 PCM 기반 IMC 방법.
  16. 제10 항에 있어서, 상기 가중치는
    일부 비트의 비트 데이터가 동일한 워드라인에 연결된 다수의 제1 메모리 셀에 저장되고,
    나머지 비트의 비트 데이터가 동일한 워드라인에 연결된 다수의 제2 메모리 셀에 저장되는 PCM 기반 IMC 방법.
  17. 제10 항에 있어서, 상기 제1 메모리 셀은
    3개의 상태 레벨을 갖는 MLC-PCM으로 구현되고,
    상기 제2 메모리 셀은
    4개의 상태 레벨을 갖는 MLC-PCM으로 구현되는 PCM 기반 IMC 방법.
KR1020220151323A 2022-11-14 2022-11-14 심층 신경망을 위한 상변이 메모리 기반 메모리내 컴퓨팅 장치 및 방법 KR20240070025A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220151323A KR20240070025A (ko) 2022-11-14 2022-11-14 심층 신경망을 위한 상변이 메모리 기반 메모리내 컴퓨팅 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220151323A KR20240070025A (ko) 2022-11-14 2022-11-14 심층 신경망을 위한 상변이 메모리 기반 메모리내 컴퓨팅 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20240070025A true KR20240070025A (ko) 2024-05-21

Family

ID=91320706

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220151323A KR20240070025A (ko) 2022-11-14 2022-11-14 심층 신경망을 위한 상변이 메모리 기반 메모리내 컴퓨팅 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20240070025A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210075542A (ko) 2019-12-13 2021-06-23 삼성전자주식회사 스위칭 소자와 저항 소자를 포함하는 3차원 뉴로모픽 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210075542A (ko) 2019-12-13 2021-06-23 삼성전자주식회사 스위칭 소자와 저항 소자를 포함하는 3차원 뉴로모픽 장치

Similar Documents

Publication Publication Date Title
CN108475522B (zh) 内存设备及基于多层rram交叉阵列的数据处理方法
JP6844909B2 (ja) メモリの実質的含意演算
US11302392B2 (en) Analog-to-digital converter and neuromorphic computing device including the same
Liu et al. Fault tolerance in neuromorphic computing systems
US10956813B2 (en) Compute-in-memory circuit having a multi-level read wire with isolated voltage distributions
KR20210075542A (ko) 스위칭 소자와 저항 소자를 포함하는 3차원 뉴로모픽 장치
CN113554160A (zh) 神经形态计算设备及其操作方法
Ma et al. Go unary: A novel synapse coding and mapping scheme for reliable ReRAM-based neuromorphic computing
Yan et al. Understanding the trade-offs of device, circuit and application in ReRAM-based neuromorphic computing systems
Liu et al. Bit-transformer: Transforming bit-level sparsity into higher preformance in reram-based accelerator
Choi et al. An in-flash binary neural network accelerator with SLC NAND flash array
Park et al. Unlocking wordline-level parallelism for fast inference on rram-based dnn accelerator
CN114121086A (zh) 存储器中的贝叶斯网络
US11983619B2 (en) Transformer neural network in memory
KR20240070025A (ko) 심층 신경망을 위한 상변이 메모리 기반 메모리내 컴퓨팅 장치 및 방법
KR102106266B1 (ko) 이종 메모리 어레이를 이용한 메모리 장치 및 그 동작 방법
US20220366211A1 (en) Dropout in neutral networks using threshold switching selectors in non-volatile memories
US20230386601A1 (en) Neuromorphic device
US20230162787A1 (en) Analog-digital hybrid computing method and neuromorphic system using the same
KR20240070035A (ko) 심층 신경망을 위한 상변이 메모리 기반 메모리 장치 및 이의 가중치 저장 방법
JP2023153736A (ja) メモリシステム及びメモリシステムの操作方法
TWI759799B (zh) 用於執行深度神經網路運算的記憶體及其操作方法
US11881260B2 (en) Neuromorphic computing device and method of designing the same
US20220366224A1 (en) Binary neural network in memory
EP4181025A1 (en) Neuromorphic device