KR20210026767A - 뉴럴 네트워크를 이용한 플래시 메모리의 읽기 기준 전압 추정 방법 및 그 장치 - Google Patents

뉴럴 네트워크를 이용한 플래시 메모리의 읽기 기준 전압 추정 방법 및 그 장치 Download PDF

Info

Publication number
KR20210026767A
KR20210026767A KR1020190108027A KR20190108027A KR20210026767A KR 20210026767 A KR20210026767 A KR 20210026767A KR 1020190108027 A KR1020190108027 A KR 1020190108027A KR 20190108027 A KR20190108027 A KR 20190108027A KR 20210026767 A KR20210026767 A KR 20210026767A
Authority
KR
South Korea
Prior art keywords
flash memory
neural network
learning model
read reference
variable
Prior art date
Application number
KR1020190108027A
Other languages
English (en)
Other versions
KR102356126B9 (ko
KR102356126B1 (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 KR1020190108027A priority Critical patent/KR102356126B1/ko
Publication of KR20210026767A publication Critical patent/KR20210026767A/ko
Application granted granted Critical
Publication of KR102356126B1 publication Critical patent/KR102356126B1/ko
Publication of KR102356126B9 publication Critical patent/KR102356126B9/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

뉴럴 네트워크를 이용한 플래시 메모리의 읽기 기준 전압 추정 방법 및 그 장치가 개시된다. 본 발명의 일 실시예에 따른 플래시 메모리 읽기 방법은 플래시 메모리에 대해 미리 설정된 변수 값들을 수신하는 단계; 상기 변수 값들에 대해 미리 학습된 학습 모델의 뉴럴 네트워크를 이용하여 상기 수신된 변수 값들에 대응하는 읽기 기준 전압을 추정하는 단계; 및 상기 추정된 읽기 기준 전압을 이용하여 상기 플래시 메모리를 읽는 단계를 포함하고, 상기 플래시 메모리를 구성하는 개별 칩들 간의 특성 차이를 반영하여 상기 뉴럴 네트워크의 학습 모델을 갱신하는 단계를 더 포함할 수 있다.

Description

뉴럴 네트워크를 이용한 플래시 메모리의 읽기 기준 전압 추정 방법 및 그 장치 {Method for Estimating Read Reference Voltages for Flash Storage Using Neural Network and Apparatus Therefore}
본 발명은 플래시 메모리 읽기 기술에 관한 것으로, 보다 구체적으로는 플래시 메모리 예를 들어, 낸드(NAND) 플래시 메모리의 시스템 변수들에 따라 변화되는 읽기 기준 전압을 미리 학습된 학습 모델의 뉴럴 네트워크를 이용하여 추정하고, 추정된 읽기 기준 전압에 기초하여 플래시 메모리의 읽기 동작을 수행하는 플래시 메모리 읽기 방법 및 그 장치에 관한 것이다.
낸드 플래시 메모리는 데이터 유지 시간(Retention Time)과 프로그램/소거 사이클(Program/Erase Cycle) 등과 같은 변수에 따라 문턱 전압의 산포도가 계속적으로 변화한다. 종래 일 실시예에 따른 기술(US 8,923,066 B1)은 이러한 문턱전압의 변화에 따라 최적의 읽기 기준 전압을 적응적으로 추정하기 위한 기술로, SSD의 설계 단계(Design Time)에서 칩에 다양한 물리적 잡음을 가하여 문턱 전압에 의도적 변화를 가한 후, 변화된 문턱전압 산포도에서 최적의 읽기 기준 전압을 측정하여 최적 읽기 기준 전압과 시스템 변수 사이의 관계를 선형 함수로 근사화(Linear Approximation)하는 기술이다. 즉, 종래 기술은 최적의 읽기 기준 전압을 문턱전압 변화의 원인이 되는 변수들의 선형 결합으로 모델링 하는 것이다. 근사된 선형함수의 변수들은 블록별로 측정되며, 측정 값은 룩업 테이블(Look-up Table)의 형태로 SSD의 별도 메모리에 저장된다. 여기서, 문턱전압의 산포도가 주어졌을 때, 최적의 읽기 기준 전압은 인접 상태(state)가 교차하는 지점이다.
낸드 플래시 메모리 컨트롤러가 데이터를 읽어올 때 사용하는 기본 기준 전압은 제조단계에서 결정된다. 그러나 이러한 기본 읽기 기준 전압은 매체의 사용시간과 읽기/쓰기 횟수가 반복됨에 따라 변화하는 문턱 전압의 분포에 대하여 최적이 아니며, 이에 따라 높은 비트 오류율을 초래하여 메모리 수명을 단축시키고, 오류정정 복호기의 복잡도 증가를 유발한다. 상술한 종래 기술은 최적 읽기 기준 전압을 문턱전압 산포도의 변화에 대해 적응적으로 채택하기 위하여, 문턱전압의 변화의 원인이 되는 요소들의 선형 결합의 형태로 최적 읽기 기준 전압을 근사화 하였지만, 몇가지 한계점을 가지고 있다. (1) 최적 읽기 기준 전압이 시스템 변수의 선형 결합으로 근사화 할 때 오차가 발생한다는 것이다. (2) 시스템 변수에 따른 최적 기준 전압의 변화가 플래시 메모리 기반 저장매체마다 다르고, 수학적 모델링과 실제 변화되는 산포도 간의 오차가 존재할 수 있다는 것이다. 예를 들어, 데이터 저장 시간에 따른 소자의 웨어 아웃(wear out)은 일반적으로 웨어 아웃과 온도와의 관계로 근사하여 아레니우스(Arrehnious) 모델을 사용하여 구현 되는데, 이는 실제 변화되는 산포도와 오차가 존재한다. (3) 제조 단계에서 측정된 최적 읽기 기준 전압이 사용자 환경에 대해 적응적으로 갱신되지 못한다는 점이다. 예를 들어, 사용자가 빈번히 사용하는 데이터의 종류와 사용 습관에 따라 문턱전압 산포도의 변화에 랜덤성이 발생한다.
본 발명의 실시예들은, 플래시 메모리 예를 들어, 낸드(NAND) 플래시 메모리의 시스템 변수들에 따라 변화되는 읽기 기준 전압을 미리 학습된 학습 모델의 뉴럴 네트워크를 이용하여 추정하고, 추정된 읽기 기준 전압에 기초하여 플래시 메모리의 읽기 동작을 수행하는 플래시 메모리 읽기 방법 및 그 장치를 제공한다.
본 발명의 일 실시예에 따른 플래시 메모리 읽기 방법은 플래시 메모리에 대해 미리 설정된 변수 값들을 수신하는 단계; 상기 변수 값들에 대해 미리 학습된 학습 모델의 뉴럴 네트워크를 이용하여 상기 수신된 변수 값들에 대응하는 읽기 기준 전압을 추정하는 단계; 및 상기 추정된 읽기 기준 전압을 이용하여 상기 플래시 메모리를 읽는 단계를 포함한다.
상기 변수 값들은 프로그래밍/소거(programming/erase) 횟수, 유지(retention) 시간 및 블록 내에서 위치 변수 중 적어도 하나 이상을 포함한다.
나아가, 본 발명의 일 실시예에 따른 플래시 메모리 읽기 방법은 상기 플래시 메모리를 구성하는 개별 칩들 간의 특성 차이를 반영하여 상기 뉴럴 네트워크의 학습 모델을 갱신하는 단계를 더 포함할 수 있다.
상기 학습 모델을 갱신하는 단계는 전압 최적화(voltage optimization) 기법을 이용하여 상기 개별 칩들 각각에 대한 라벨링된 샘플 데이터를 획득하고, 상기 라벨링된 샘플 데이터를 이용하여 상기 뉴럴 네트워크의 학습 모델을 갱신할 수 있다.
상기 뉴럴 네트워크는 미리 설정된 변수 값들과 상기 미리 설정된 변수 값들 각각에 대한 읽기 기준 전압들을 포함하는 트레이닝 데이터 세트를 이용한 트레이닝을 통해 미리 정의된 손실 함수를 최소화함으로써, 상기 학습 모델이 생성될 수 있다.
상기 뉴럴 네트워크는 지도 학습(supervised learning)을 통해 최적화됨으로써, 상기 학습 모델이 생성될 수 있다.
상기 블록 내에서 위치 변수는 상기 블록 내 페이지의 위치 변수, 상기 페이지의 타입 변수 및 비트라인 타입 변수를 포함할 수 있다.
본 발명의 일 실시예에 따른 메모리 읽기 방법은 메모리에 대해 미리 설정된 변수 값들을 수신하는 단계; 상기 변수 값들에 대해 미리 학습된 학습 모델의 뉴럴 네트워크를 이용하여 상기 수신된 변수 값들에 대응하는 읽기 기준 전압을 추정하는 단계; 및 상기 추정된 읽기 기준 전압을 이용하여 상기 메모리를 읽는 단계를 포함한다.
상기 변수 값들은 상기 메모리가 플래시 메모리인 경우 프로그래밍/소거(programming/erase) 횟수, 유지(retention) 시간 및 블록 내에서 위치 변수 중 적어도 하나 이상을 포함할 수 있다.
나아가, 본 발명의 일 실시예에 따른 메모리 읽기 방법은 상기 메모리를 구성하는 개별 칩들 간의 특성 차이를 반영하여 상기 뉴럴 네트워크의 학습 모델을 갱신하는 단계를 더 포함할 수 있다.
상기 학습 모델을 갱신하는 단계는 전압 최적화(voltage optimization) 기법을 이용하여 상기 개별 칩들 각각에 대한 라벨링된 샘플 데이터를 획득하고, 상기 라벨링된 샘플 데이터를 이용하여 상기 뉴럴 네트워크의 학습 모델을 갱신할 수 있다.
본 발명의 일 실시예에 따른 플래시 메모리 읽기 장치는 플래시 메모리에 대해 미리 설정된 변수 값들을 수신하는 수신부; 상기 변수 값들에 대해 미리 학습된 학습 모델의 뉴럴 네트워크를 이용하여 상기 수신된 변수 값들에 대응하는 읽기 기준 전압을 추정하는 추정부; 및 상기 추정된 읽기 기준 전압을 이용하여 상기 플래시 메모리를 읽는 읽기부를 포함한다.
상기 변수 값들은 프로그래밍/소거(programming/erase) 횟수, 유지(retention) 시간 및 블록 내에서 위치 변수 중 적어도 하나 이상을 포함할 수 있다.
나아가, 본 발명의 일 실시예에 따른 플래시 메모리 읽기 장치는 상기 플래시 메모리를 구성하는 개별 칩들 간의 특성 차이를 반영하여 상기 뉴럴 네트워크의 학습 모델을 갱신하는 갱신부를 더 포함할 수 있다.
상기 갱신부는 전압 최적화(voltage optimization) 기법을 이용하여 상기 개별 칩들 각각에 대한 라벨링된 샘플 데이터를 획득하고, 상기 라벨링된 샘플 데이터를 이용하여 상기 뉴럴 네트워크의 학습 모델을 갱신할 수 있다.
상기 뉴럴 네트워크는 미리 설정된 변수 값들과 상기 미리 설정된 변수 값들 각각에 대한 읽기 기준 전압들을 포함하는 트레이닝 데이터 세트를 이용한 트레이닝을 통해 미리 정의된 손실 함수를 최소화함으로써, 상기 학습 모델이 생성될 수 있다.
상기 뉴럴 네트워크는 지도 학습(supervised learning)을 통해 최적화됨으로써, 상기 학습 모델이 생성될 수 있다.
상기 블록 내에서 위치 변수는 상기 블록 내 페이지의 위치 변수, 상기 페이지의 타입 변수 및 비트라인 타입 변수를 포함할 수 있다.
본 발명의 실시예들에 따르면, 읽기 기준 전압을 시스템 변수 예를 들어, 노이즈 변수를 입력으로 하는 다계층 뉴럴 네트워크로 모델링하고, 플래시 메모리 사용 시 정기적인 트레이닝 또는 학습을 통해 가중치와 편향의 값을 지속적으로 갱신시킴으로써, 뉴럴 네트워크의 학습 모델을 갱신하고, 이를 통해 개별 칩의 특성을 반영하지 못하는 기존 방식의 한계를 극복하여 플래시 메모리의 원비트 오류율을 감소시켜 수명을 연장하며 채널 복호기의 복잡도를 획기적으로 경감시킬 수 있다.
본 발명의 실시예들에 따르면, 낸드 플래시 메모리 및 SSD의 읽기 오류율을 감소시켜 플래시 메모리의 수명을 연장하고 채널 복호기의 복잡도를 경감시킴으로써, SSD의 가격 경쟁력을 높일 수 있다.
본 발명의 실시예들에 따르면, 4차 산업혁명의 주요 기술인 빅 데이터, 딥 러닝, 사물 인터넷 등에 필수적으로 사용되는 반도체 저장 장치의 읽기 기준 전압의 조정을 통해 원비트 오류율을 줄일 수 있다.
도 1은 다양한 잡음이 더해진 경우 이상적인 문턱전압 산포도에서 변화되어 높은 원비트 오류율을 초래하는 변화된 문턱전압 산포도에 대한 일 예시도를 나타낸 것이다.
도 2는 본 발명의 일 실시예에 따른 플래시 메모리 읽기 방법에 대한 동작 흐름도를 나타낸 것이다.
도 3은 최적 읽기 기준 전압과 다양한 시스템 변수 간의 관계를 다계층 뉴럴 네트워크로 모델링한 일 예시도를 나타낸 것이다.
도 4는 본 발명의 방법에서 시스템 변수 값을 입력으로 하여 최적 읽기 기준 전압을 추정하는 과정을 설명하기 위한 일 예시도를 나타낸 것이다.
도 5는 개별 칩의 특성 차이를 반영하여 뉴럴 네트워크의 학습 모델을 갱신하는 과정을 설명하기 위한 일 예시도를 나타낸 것이다.
도 6은 플래시 메모리를 설명하기 위한 일 예시도를 나타낸 것이다.
도 7은 MSB 페이지에 대해 본 발명의 실시예에 따른 방법과 초기 최적 읽기 기준 전압 값을 유지하는 방식을 비교한 일 예시도를 나타낸 것이다.
도 8은 LSB 페이지에 대해 본 발명의 실시예에 따른 방법과 초기 최적 읽기 기준 전압 값을 유지하는 방식을 비교한 일 예시도를 나타낸 것이다.
도 9는 MSB 페이지에 대해 개별 칩의 특성을 반영한 본 발명의 실시예에 따른 방법과 초기 최적 읽기 기준 전압 값을 유지하는 방식을 비교한 일 예시도를 나타낸 것이다.
도 10은 LSB 페이지에 대해 개별 칩의 특성을 반영한 본 발명의 실시예에 따른 방법과 초기 최적 읽기 기준 전압 값을 유지하는 방식을 비교한 일 예시도를 나타낸 것이다.
도 11은 본 발명의 일 실시예에 따른 플래시 메모리 읽기 장치에 대한 구성을 나타낸 것이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
낸드 플래시 메모리는 플로팅 게이트(Floating Gate)에 전하를 주입하면 절연체(예를 들어, SiO2)에 의하여 주입된 전하의 량이 변하지 않고 유지하는 특성을 이용하여 저장된 전하량의 형태로 정보를 기록한다. 이 때, 전하를 플로팅 게이트에 주입하는 과정을 프로그래밍(Programming)이라 하고 플로팅 게이트에서 전하를 소거하는 과정을 소거(Erase)라 한다. 플로팅 게이트로 구성되는 셀은 낸드 플래시 메모리를 구성하는 기본단위이다. 단위 셀당 저장된 전하의 량은 컨트롤 게이트(Control Gate)의 문턱전압 값(Threshold Voltage, Vth)을 측정함으로써 확인할 수 있으며, 읽은 문턱전압 값들을 양자화하는 레벨의 개수에 따라 싱글 레벨 셀(SLC; Single-Level Cell), 멀티 레벨 셀(MLC; Multi-Level Cell), 트라이 레벨 셀(TLC; Tri-Level Cell) 등으로 구분한다.
동일 페이지(Page) 라인에 배열된 셀들은 도 6과 같이 물리적 페이지를 형성하는데, 이 물리적 페이지는 다시 하나의 셀에 저장되는 비트의 수에 따라 여러 개의 논리적 페이지로 구분된다. 예를 들어, 하나의 셀이 두 비트 정보를 저장하는 MLC 메모리의 경우, 하나의 물리적 페이지가 셀의 MSB(Most Significant Bit) 또는 LSB(Least Significant Bit) 비트들로 구분되어 두 개의 논리적 페이지로 구분된다. 이 물리적 페이지의 배열은 그보다 큰 단위인 블록(Block)을 형성한다. 블록은 저장된 데이터를 지울 수 있는 최소 단위이고, 데이터를 프로그래밍하고 읽는 기본 단위는 그보다 작은 단위인 페이지이다.
MLC 메모리의 경우 도 1과 같은 문턱접압의 산포도를 가지며, 문턱전압은 기준전압 Va, Vb와 Vc를 사용하여 0(00), 1(01), 2(10)와 3(11)의 값 중 하나로 결정된다. 이 때, 저장된 비트값과 다른 비트값으로 결정되는 확률을 원비트 오류율(Raw Bit-Error-Rate)이라 한다. 이 원비트 오류율은 플래시 메모리에 데이터를 물리적으로 쓰고, 읽고, 지우는 과정에서 플로팅 게이트에 저장된 전하량이 이상적인 대표값에서 차이를 가지게 되면서 점차 증가하게 된다. 이러한 신뢰도 저하의 주요 요인들은 프로그래밍/소거(P/E) 횟수, 유지(Retention) 시간 및 블록 내에서 위치 변수 등이며, 각각의 주요 요인들에 설명하면 다음과 같다. 여기서, 도 1은 P/E 횟수, 유지 시간, 인접 셀간 커플링과 같은 다양한 노이즈가 더해졌을 때, 이상적인 문턱전압 산포도에서 변화되어 높은 원비트 오류율을 초래하는 변화된 문턱전압 산포도를 나타낸 것이다.
프로그래밍/소거(P/E) 횟수 NPE: 플래시 메모리 셀에 전하를 주입하는 프로그래밍 과정과 제거하는 삭제 과정이 반복됨에 따라 절연체 내부의 트랩(Trap)에 의해서 비정상적인 터널링이 유발되고, 이에 따라 문턱접압 값이 정상적인 값보다 높은 값을 가지게 된다. 절연체 내부의 트랩의 양은 프로그래밍의 횟수 NPE에 비례하여 증가하는 특성을 가지므로, 기록/삭제 횟수 NPE가 증가함에 따라 Floating gate의 오염이 누적되어 오류율을 증가시킨다.
유지(Retention) 시간 t: 이미 기록된 플래시 메모리 셀의 전하가 시간이 지남에 따라 유출되는 현상이 발생하여 저장된 데이터의 오류를 발생시키며 이를 유지 오류라 한다. 이러한 유지 오류는 주변 페이지를 읽거나 프로그래밍 할 때 형성되는 전기장에 의해 발생되는 절연체의 구조적 변형에 의한 것이다. 유지 오류는 셀 내 전하량이 감소되는 방향으로 발생하며, 프로그래밍 후 유지 시간 t에 비례하여 원비트 오류율을 저하시킨다.
물리적 위치 Np, b, s: 단위면적당 더 많은 셀을 집적함에 따라 셀들 간의 기생 정전용량이 높아지게 되고 특정 셀의 프로그래밍이 진행될 때 주변 셀에 저장된 전하량에 영향을 주게 된다. 이러한 현상을 셀간 간섭이라 부른다. 셀간 간섭은 공정이 미세화 될수록 더욱 심각하여 플래시 메모리 소자의 설계에 가장 큰 장애 요인 중 하나로 간주 된다. 셀 간 간섭의 정도는 블록 내 페이지의 위치 변수 Np과 해당 페이지의 타입 변수 s∈{MSB, LSB}, 그리고 비트라인 타입 변수 b∈{Even, Odd}에 따라 그 정도가 달라진다.
본 발명의 실시예들은, 읽기 기준 전압을 시스템 변수 예를 들어, 노이즈 변수를 입력으로 하는 다계층 뉴럴 네트워크로 모델링하고, 플래시 메모리 사용 시 정기적인 트레이닝 또는 학습을 통해 가중치와 편향의 값을 지속적으로 갱신시킴으로써, 뉴럴 네트워크의 학습 모델을 갱신하고, 이를 통해 개별 칩의 특성을 반영하지 못하는 기존 방식의 한계를 극복하여 플래시 메모리의 원비트 오류율을 감소시켜 수명을 연장하며 채널 복호기의 복잡도를 획기적으로 경감시키는 것을 그 요지로 한다.
즉, 본 발명은 낸드 플래시 메모리 및 SSD의 읽기 오류율을 감소시켜 플래시 메모리의 수명을 연장하고 채널 복호기의 복잡도를 경감시킴으로써, SSD의 가격 경쟁력을 높일 수 있다.
여기서, 본 발명은 프로그래밍/소거(P/E) 횟수, 유지(Retention) 시간 및 블록 내에서 위치 변수(예를 들어, 블록 내 페이지의 위치 변수, 페이지의 타입 변수 및 비트라인 타입 변수를 포함)를 포함하는 시스템 변수(변수 값) 또는 노이즈 변수들에 대해 미리 학습된 학습 모델의 뉴럴 네트워크를 이용하여 변수 값들에 대응하는 플래시 메모리의 읽기 기준 전압을 추정할 수 있다. 또한, 본 발명은 미리 설정된 변수 값들과 미리 설정된 변수 값들 각각에 대한 읽기 기준 전압들 즉, 최적 읽기 기준 전압에 해당하는 최적 값(ground truth)을 포함하는 트레이닝 데이터 세트를 이용한 트레이닝을 통해 미리 정의된 손실 함수를 최소화함으로써, 뉴럴 네트워크의 학습 모델을 생성할 수 있다.
나아가, 본 발명은 플래시 메모리를 구성하는 개별 칩들 간의 특성 차이를 반영하여 뉴럴 네트워크의 학습 모델을 갱신할 수 있으며, 구체적으로 전압 최적화(voltage optimization) 기법을 이용하여 개별 칩들 각각에 대한 라벨링된 샘플 데이터를 획득하고, 라벨링된 샘플 데이터를 이용하여 뉴럴 네트워크의 학습 모델 즉, 가중치와 편향 값을 갱신할 수 있다.
도 2는 본 발명의 일 실시예에 따른 플래시 메모리 읽기 방법에 대한 동작 흐름도를 나타낸 것이다.
도 2를 참조하면, 본 발명의 실시예에 따른 플래시 메모리 읽기 방법은 플래시 메모리에 대해 미리 설정된 변수 값들 예를 들어, 플래시 메모리의 임계전압 값에 영향을 줄 수 있는 시스템 변수들 또는 노이즈 변수들을 수신한다(S210).
여기서, 단계 S210은 프로그래밍/소거(P/E) 횟수, 유지(Retention) 시간 및 블록 내에서 위치 변수(예를 들어, 블록 내 페이지의 위치 변수, 페이지의 타입 변수 및 비트라인 타입 변수를 포함)를 포함하는 변수 값들을 수신할 수 있다.
단계 S210에서 수신되는 변수 값들은 플래시 메모리 읽기 장치를 구성하는 프로세서로부터 수신될 수 있으며, 이러한 변수 값들을 수신하는 기술적인 구성은 본 발명의 기술과 관련된 업종에 종사하는 당업자에게 있어서 자명하다.
단계 S210을 통해 플래시 메모리의 변수 값들이 수신되면 변수 값들을 포함하는 트레이닝 데이터 세트를 통해 미리 트레이닝되어 학습된 학습 모델의 뉴럴 네트워크를 이용하여 수신된 변수 값들에 대응하는 읽기 기준 전압을 추정한다(S220).
여기서, 뉴럴 네트워크는 지도 학습(supervised learning)을 통해 최적화됨으로써, 학습 모델이 생성될 수 있다.
즉, 단계 S220은 문턱전압 산포도의 상태에 영향을 주는 변수인 P/E 횟수(NPE), 유지 시간(t), 블록 내에서 위치 변수(Np, b, s) 등을 입력으로 하여 최적의 읽기 기준 전압을 출력하는 뉴럴 네트워크 회로(Neural Network)를 이용하여 최적의 읽기 기준 전압을 추정할 수 있다.
여기서, 뉴럴 네트워크 또는 뉴럴 네트워크 회로는 SSD가 설계되는 공정 단계에서 여러 실험을 거쳐 얻어지는 노이즈 환경 변수와 최적 읽기 기준 전압의 데이터 세트(Data Set) 또는 공정 단계가 아닌 실험을 통해 획득되는 입력 변수 값들과 최적 읽기 기준 전압의 데이터 세트로 학습되어 또는 트레이닝되어 최적화된 학습 모델이 생성될 수 있다. 이를 위해 먼저 100,000개의 블록에 저장되어 있는 데이터를 3:1의 비율로 트레이닝 데이터 세트(Training Data Set, βtr)와 검증 데이터 세트(Verification Data Set, βv)로 분할할 수 있고, MLC 환경을 가정하여 뉴럴 네트워크 회로의 출력인 읽기 기준 전압은 (Va', Vb', Vc')으로 나타내고, 실제 실험으로 찾아낸 최적 읽기 기준 전압은 (Va*, Vb*, Vc*)(ground truth)으로 나타낼 수 있다.
도 3은 최적 읽기 기준 전압과 다양한 시스템 변수(NPE, t, Np, b, s) 간의 관계를 다계층 뉴럴 네트워크 회로로 모델링한 것을 나타낸 것으로, 도 3에 도시된 바와 같이, 다계층 뉴럴 네트워크 회로는 1개의 입력 층(Input layer)과 3개의 은닉 층(Hidden layer), 그리고 1개의 출력 층(Output layer)으로 구성된다. 각 층은 가중치와 편향들로 구성되고, 이 가중치와 편향의 값은 함수 출력값(Va', Vb', Vc')과 실제 최적 기준 전압값(Va*, Vb*, Vc*)간의 오차를 최소화 하는 값을 가지도록 지도 학습(Supervised Learning)을 통하여 최적화 된다. 뉴럴 네트워크 회로의 지도학습을 위한 비용(Cost) 함수는 아래 <수학식 1>과 같이 나타낼 수 있으며, 비용 함수(Cost)는 뉴럴 네트워크 출력값과 최적 읽기 기준 전압간 오차 제곱의 평균값으로 나타낼 수 있다.
Figure pat00001
지도 학습을 위한 최적 기준 전압은 학습 집합 내의 블록들에서 원 비트 오류율을 최소화 하는 값이므로, 아래 <수학식 2>와 같이 계산될 수 있다.
Figure pat00002
여기서, Praw(NPE, t, Np, b, s, k)는 시스템 변수의 조합이 {NPE, t, Np, b, s} 일 때, 읽기 기준 전압을 k로 설정하고 측정한 원비트 오류율이다. 트레이닝 과정은 미니 배치(mini-batch) 트레이닝, 아담(Adam) 최적화 방법을 사용하여 진행된다. 각 트레이닝 반복마다 512 개의 미니 배치를 바탕으로 트레이닝이 진행될 수 있으며, 학습률(learning rate)는 0.001로 설정할 수 있다.
단계 S220에 의해 플래시 메모리의 읽기 기준 전압이 추정되면 추정된 읽기 기준 전압을 이용하여 플래시 메모리에 저장된 데이터 읽기를 수행한다(S230).
이렇게 플래시 메모리에 저장된 데이터의 읽기 과정이 수행된 후 실제 동작 환경에서 개별 칩에서 간헐적으로 생성되는 적은 개수의 데이터를 바탕으로 파인 튜닝(fine-tuning) 기법을 통해 온라인 학습을 진행함으로써, 뉴럴 네트워크의 학습 모델을 갱신시킨다(S240).
여기서, 단계 S240은 뉴럴 네트워크의 가중치와 편향 값을 갱신함으로써, 학습 모델을 갱신시키고, 갱신된 학습 모델의 뉴럴 네트워크를 이용하여 개별 칩의 특성 차이에 따라 발생될 수 있는 읽기 기준 전압의 차이에 대한 한계를 극복하고 플래시 메모리의 원비트 오류율의 감소를 통해 메모리의 수명을 연장하고 채널 복호기의 부담을 효과적으로 줄일 수 있다.
이러한 본 발명의 실시예에 따른 방법에 대해 도 4 내지 도 10을 참조하여 상세히 설명하면 다음과 같다.
도 4는 본 발명의 방법에서 시스템 변수 값을 입력으로 하여 최적 읽기 기준 전압을 추정하는 과정을 설명하기 위한 일 예시도를 나타낸 것으로, 낸드 플래시 기반 저장매체 사용 시, 소자에 관한 정보인 시스템 변수를 입력으로 하여 출력된 최적 읽기 기준 전압의 추정값을 사용하여 컨트롤러가 플래시 메모리에서 데이터를 읽어와 ECC의 입력으로 주는 개념을 나타낸 것이다.
도 4에 도시된 바와 같이, 기존 기술에서 제시된 최적 읽기 기준 전압과 시스템 변수들간 구조를 비선형 함수로 표현할 수 있도록 뉴럴 네트워크를 모델링하고, 뉴럴 네트워크의 학습 모델을 이용하여 입력 변수의 가중합(Weighted Sum)에 편향(Bias)이 단계적으로 더해져 비선형 함수를 표현함으로써, 입력되는 입력 변수 값들에 대응하는 읽기 기준 전압(Va', Vb', Vc')을 추정하고, 추정된 읽기 기준 전압을 이용하여 SSD에 저장된 데이터를 읽은 후 ECC 디코더를 이용하여 사용자 데이터를 읽는다. 즉, 뉴럴 네트워크는 최적 읽기 기준 전압을 출력으로 하고, 문턱전압의 변화의 원인이 되는 요소들을 입력으로 한 후, 몇 개의 은닉 층(hidden layer)를 추가한 뉴럴 네트워크 회로로 해당 문제를 변형하고, 이러한 뉴럴 네트워크 모델은 읽기 기준 전압을 입력 변수의 가중합(Weighted Sum)에 편향(Bias)이 단계적으로 더해져 비선형 함수를 표현할 수 있다.
낸드 플래시 메모리의 문턱 전압 산포도의 상태에 따라 원비트 오류율을 최소화 시키는 읽기 기준 전압에 대한 기술은 이미 상용화된 기술들이 존재한다. 예를 들어, 읽기 기준 전압을 변화시키며, ECC(Error Correcting Codes)의 복호 출력값과 읽은 데이터 간의 차이로부터 원비트 오류율을 측정하여, 이를 최소화하는 문턱전압을 완전(exhaustive)하게 검출하는 샘플링(sampling) 기법이 있다. 그리고, ECC 복호 실패 시에도 적용될 수 있는 기술인 사용자 데이터의 각 레벨(level) 값이 비슷한 확률분포를 가질 것을 가정하고, 최적 읽기 기준 전압을 채택하는 차이 기반 근사화(disparity-based approximation) 기술이 있다. 이러한 기술들을 "voltage optimization(전압 최적화)"라 한다. 전압 최적화 단계를 ECC 복호가 실패하거나, 간헐적으로 수행된다. 이렇게 비 정기적으로 수행되어 얻어지는 최적 읽기 기준 전압을 뉴럴 네트워크 회로의 새로운 학습 데이터로 하여 공정 과정에서 발생되는 각 플래시 메모리 칩에 대한 특성 차이를 반영하도록 뉴럴 네트워크 회로의 가중치와 편향을 온라인 지도학습(Online supervised learning)을 통해 갱신시킬 수 있다. 온라인 지도학습 과정은 공정 과정에서의 평균적인 성능에 사전 학습된(pre-trained) 뉴럴 네트워크 모델을 초기 모델로 설정하고 이를 바탕으로 파인-튜닝(fine-tuning) 기법을 사용하여 진행될 수 있다. 이를 통해 적은 개수의 데이터로 개별 칩의 특성을 빠르게 반영하여 뉴럴 네트워크의 학습 모델을 갱신할 수 있다. 즉, 제조단계에서 결정된 뉴럴 네트워크 회로를 개별 사용자 환경과 각 SSD에 맞게 뉴럴 네트워크 회로의 가중치(Weight)와 편향(Bias)의 값들을 갱신시키기 위하여, 비정기적으로 수행되는 읽기 기준전압 최적화 기술이 수행된 결과를 가져와 뉴럴 네트워크회로의 온라인 학습을 실행시키는 예를 나타낸 도 5에 도시된 바와 같이, 뉴럴 네트워크 회로의 가중치와 편향의 값을 개별 칩의 특성과 사용자 환경에 따라 전압 최적화 기법을 이용하여 적응적으로 갱신시킬 수 있다. 따라서, 본 발명의 실시예에 따른 방법은 플래시 메모리 사용 시 정기적인 학습을 통해 가중치와 편향의 값을 지속적으로 갱신시킴으로써, 기존 방식의 한계를 극복할 수 있다. 구체적으로, 본 발명의 실시예에 따른 방법은 플래시 메모리를 구성하는 개별 칩들 간의 특성 차이를 반영하여 뉴럴 네트워크의 학습 모델을 갱신시킬 수 있는데, 전압 최적화(voltage optimization) 기법을 이용하여 개별 칩들 각각에 대한 라벨링된 샘플 데이터를 획득하고, 라벨링된 샘플 데이터를 이용하여 뉴럴 네트워크의 학습 모델을 갱신시킬 수 있다.
도 7은 MSB 페이지에 대해 본 발명의 실시예에 따른 방법과 초기 최적 읽기 기준 전압 값을 유지하는 방식을 비교한 일 예시도를 나타낸 것으로, MSB 페이지에 대해 매 변수마다 최적의 읽기 기준 전압 값을 선택하는 방식과 초기 최적 읽기 기준 전압 값을 유지하는 방식과의 성능을 비교한 것이다. 도 8은 LSB 페이지에 대해 본 발명의 실시예에 따른 방법과 초기 최적 읽기 기준 전압 값을 유지하는 방식을 비교한 일 예시도를 나타낸 것으로, LSB 페이지에 대해 매 변수마다 최적의 읽기 기준 전압 값을 선택하는 방식과 초기 최적 읽기 기준 전압 값을 유지하는 방식과의 성능을 비교한 것이다.
도 7과 도 8을 통해 알 수 있듯이, 각각 MSB 페이지와 LSB 페이지에 대한 제안하는 뉴럴 네트워크 기반의 알고리즘의 성능과 모든 오류 변수 들에 대해 최적의 읽기 기준 전압을 선택하는 방식, 그리고 초기 최적 읽기 기준 전압을 유지하는 방식을 읽기 쓰기 횟수에 따라 비교한 바와 같이, 각 그래프를 통해 모든 환경에서 제안하는 방식이 최적 읽기 기준 전압의 선택과 동일한 성능을 가짐을 알 수 있다.
도 9는 MSB 페이지에 대해 개별 칩의 특성을 반영한 본 발명의 실시예에 따른 방법과 초기 최적 읽기 기준 전압 값을 유지하는 방식을 비교한 일 예시도를 나타낸 것으로, 개별 칩의 특성 차이가 있는 환경에서 MSB 페이지에 대해 매 변수마다 최적의 읽기 기준 전압 값을 선택하는 방식과 초기 최적 읽기 기준 전압 값을 유지하는 방식과의 성능을 비교한 것이다. 도 10은 LSB 페이지에 대해 개별 칩의 특성을 반영한 본 발명의 실시예에 따른 방법과 초기 최적 읽기 기준 전압 값을 유지하는 방식을 비교한 일 예시도를 나타낸 것으로, 개별 칩의 특성 차이가 있는 환경에서 LSB 페이지에 대해 매 변수마다 최적의 읽기 기준 전압 값을 선택하는 방식과 초기 최적 읽기 기준 전압 값을 유지하는 방식과의 성능을 비교한 것이다.
도 9와 도 10을 통해 알 수 있듯이, 공정 과정에서 발생하는 특성 차이를 반영하여 간헐적 온라인 학습을 진행한 성능을 나타낸 바와 같이, 간헐적 온라인 학습은 제안하는 알고리즘이 학습이 진행됨에 따라 개별 칩의 특성을 반영하여 최적 읽기 기준 전압 선택에 근접한 성능을 보임을 알 수 있고 이는 단일 읽기 기준 전압의 사용에 비해 1개 자릿수(order of magnitude)의 성능이득을 보임을 알 수 있다.
이와 같이, 본 발명의 실시예에 따른 방법은 읽기 기준 전압을 시스템 변수 예를 들어, 노이즈 환경을 나타내는 변수들을 입력으로 하는 다계층 뉴럴 네트워크로 모델링하고, 플래시 메모리 사용 시 정기적인 트레이닝 또는 학습을 통해 가중치와 편향의 값을 지속적으로 갱신시킴으로써, 현재 노이즈 환경에서 최적의 읽기 기준 전압을 출력하며, 뉴럴 네트워크의 학습 모델을 갱신하고, 이를 통해 개별 칩의 특성을 반영하지 못하는 기존 방식의 한계를 극복하여 플래시 메모리의 원비트 오류율을 감소시켜 수명을 연장하며 채널 복호기의 복잡도를 획기적으로 경감시킬 수 있다.
또한, 본 발명의 실시예에 따른 방법은 낸드 플래시 메모리 및 SSD의 읽기 오류율을 감소시켜 플래시 메모리의 수명을 연장하고 채널 복호기의 복잡도를 경감시킴으로써, SSD의 가격 경쟁력을 높일 수 있다.
또한, 본 발명의 실시예에 따른 방법은 학습 과정으로 추정한 기준 전압을 기본 읽기 기준 전압에 대비하여 최대 6 배 낮은 원비트 오류율을 P/E 횟수가 증가함에 따라 달성할 수 있으며, 이는 블록마다 얻은 최적 읽기 기준 전압과 비슷한 원비트 오류율을 달성함을 확인할 수 있다.
또한, 본 발명의 실시예에 따른 방법은 개별 칩의 데이터를 바탕으로 뉴럴 네트워크 회로를 정기적으로 지도 학습을 통하여 갱신함으로써 개별 플래시 메모리 칩의 특성 차이를 반영하고, 사용자 환경에 따라 적응적으로 비선형 읽기 기준 전압 선택 함수를 변화시킬 수 있다.
도 11은 본 발명의 일 실시예에 따른 플래시 메모리 읽기 장치에 대한 구성을 나타낸 것으로, 도 1 내지 도 10의 방법을 수행하는 장치에 대한 개념적인 구성을 나탄내 것이다.
도 11을 참조하면, 본 발명의 실시예에 따른 장치(1100)는 수신부(1110), 추정부(1120), 읽기부(1130) 및 갱신부(1140)를 포함한다.
수신부(1110)는 플래시 메모리에 대해 미리 설정된 변수 값들 예를 들어, 플래시 메모리의 임계전압 값에 영향을 줄 수 있는 시스템 변수들 또는 노이즈 변수들을 수신한다.
여기서, 수신부(1110)는 프로그래밍/소거(P/E) 횟수, 유지(Retention) 시간 및 블록 내에서 위치 변수(예를 들어, 블록 내 페이지의 위치 변수, 페이지의 타입 변수 및 비트라인 타입 변수를 포함)를 포함하는 변수 값들을 수신할 수 있다.
추정부(1120)는 변수 값들을 포함하는 트레이닝 데이터 세트를 통해 미리 트레이닝되어 학습된 학습 모델의 뉴럴 네트워크를 이용하여 수신된 변수 값들에 대응하는 읽기 기준 전압을 추정한다.
이 때, 뉴럴 네트워크는 미리 설정된 변수 값들 즉, 노이즈 환경 변수들 각각의 값과 미리 설정된 변수 값들 각각에 대한 최적의 읽기 기준 전압들을 포함하는 트레이닝 데이터 세트를 이용한 트레이닝을 통해 미리 정의된 손실 함수를 최소화함으로써, 학습 모델이 생성될 수 있다.
여기서, 뉴럴 네트워크는 지도 학습(supervised learning)을 통해 최적화됨으로써, 학습 모델이 생성될 수 있다.
즉, 추정부(1120)는 문턱전압 산포도의 상태에 영향을 주는 변수인 P/E 횟수(NPE), 유지 시간(t), 블록 내에서 위치 변수(Np, b, s) 등을 입력으로 하여 최적의 읽기 기준 전압을 출력하는 뉴럴 네트워크를 이용하여 최적의 읽기 기준 전압을 추정할 수 있다.
읽기부(1130)는 추정된 읽기 기준 전압을 이용하여 플래시 메모리에 저장된 데이터 읽기를 수행한다.
갱신부(1140)는 플래시 메모리를 구성하는 개별 칩들 간의 특성 차이를 반영하여 뉴럴 네트워크의 학습 모델을 갱신한다.
여기서, 갱신부(1140)는 실제 동작 환경에서 개별 칩에서 간헐적으로 생성되는 적은 개수의 데이터를 바탕으로 파인 튜닝(fine-tuning) 기법을 통해 온라인 학습을 진행함으로써, 뉴럴 네트워크의 학습 모델을 갱신시킨다.
이 때, 갱신부(1140)는 뉴럴 네트워크의 가중치와 편향 값을 갱신함으로써, 학습 모델을 갱신시키고, 갱신된 학습 모델의 뉴럴 네트워크를 이용하여 개별 칩의 특성 차이에 따라 발생될 수 있는 읽기 기준 전압의 차이에 대한 한계를 극복하고 플래시 메모리의 원비트 오류율의 감소를 통해 메모리의 수명을 연장하고 채널 복호기의 부담을 효과적으로 줄일 수 있다. 즉, 갱신부는 전압 최적화 기법을 이용하여 개별 칩들 각각에 대한 라벨링된 샘플 데이터를 획득하고, 라벨링된 샘플 데이터를 이용하여 뉴럴 네트워크의 학습 모델을 갱신할 수 있다.
비록, 도 11의 장치에서 그 설명이 생략되었더라도, 도 11을 구성하는 각 구성 수단을 도 1 내지 도 10에서 설명한 모든 내용을 포함할 수 있으며, 이는 이 기술 분야에 종사하는 당업자에게 있어서 자명하다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다.  또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다.  이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다.  예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다.  또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.  소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다.  소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.  상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.  상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.  컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.  프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다.  예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (18)

  1. 플래시 메모리에 대해 미리 설정된 변수 값들을 수신하는 단계;
    상기 변수 값들에 대해 미리 학습된 학습 모델의 뉴럴 네트워크를 이용하여 상기 수신된 변수 값들에 대응하는 읽기 기준 전압을 추정하는 단계; 및
    상기 추정된 읽기 기준 전압을 이용하여 상기 플래시 메모리를 읽는 단계
    를 포함하는 플래시 메모리 읽기 방법.
  2. 제1항에 있어서,
    상기 변수 값들은
    프로그래밍/소거(programming/erase) 횟수, 유지(retention) 시간 및 블록 내에서 위치 변수 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 플래시 메모리 읽기 방법.
  3. 제1항에 있어서,
    상기 플래시 메모리를 구성하는 개별 칩들 간의 특성 차이를 반영하여 상기 뉴럴 네트워크의 학습 모델을 갱신하는 단계
    를 더 포함하는 것을 특징으로 하는 플래시 메모리 읽기 방법.
  4. 제3항에 있어서,
    상기 학습 모델을 갱신하는 단계는
    전압 최적화(voltage optimization) 기법을 이용하여 상기 개별 칩들 각각에 대한 라벨링된 샘플 데이터를 획득하고, 상기 라벨링된 샘플 데이터를 이용하여 상기 뉴럴 네트워크의 학습 모델을 갱신하는 것을 특징으로 하는 플래시 메모리 읽기 방법.
  5. 제1항에 있어서,
    상기 뉴럴 네트워크는
    미리 설정된 변수 값들과 상기 미리 설정된 변수 값들 각각에 대한 읽기 기준 전압들을 포함하는 트레이닝 데이터 세트를 이용한 트레이닝을 통해 미리 정의된 손실 함수를 최소화함으로써, 상기 학습 모델이 생성되는 것을 특징으로 하는 플래시 메모리 읽기 방법.
  6. 제5항에 있어서,
    상기 뉴럴 네트워크는
    지도 학습(supervised learning)을 통해 최적화됨으로써, 상기 학습 모델이 생성되는 것을 특징으로 하는 플래시 메모리 읽기 방법.
  7. 제2항에 있어서,
    상기 블록 내에서 위치 변수는
    상기 블록 내 페이지의 위치 변수, 상기 페이지의 타입 변수 및 비트라인 타입 변수를 포함하는 것을 특징으로 하는 플래시 메모리 읽기 방법.
  8. 메모리에 대해 미리 설정된 변수 값들을 수신하는 단계;
    상기 변수 값들에 대해 미리 학습된 학습 모델의 뉴럴 네트워크를 이용하여 상기 수신된 변수 값들에 대응하는 읽기 기준 전압을 추정하는 단계; 및
    상기 추정된 읽기 기준 전압을 이용하여 상기 메모리를 읽는 단계
    를 포함하는 메모리 읽기 방법.
  9. 제8항에 있어서,
    상기 변수 값들은
    상기 메모리가 플래시 메모리인 경우 프로그래밍/소거(programming/erase) 횟수, 유지(retention) 시간 및 블록 내에서 위치 변수 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 메모리 읽기 방법.
  10. 제8항에 있어서,
    상기 메모리를 구성하는 개별 칩들 간의 특성 차이를 반영하여 상기 뉴럴 네트워크의 학습 모델을 갱신하는 단계
    를 더 포함하는 것을 특징으로 하는 메모리 읽기 방법.
  11. 제10항에 있어서,
    상기 학습 모델을 갱신하는 단계는
    전압 최적화(voltage optimization) 기법을 이용하여 상기 개별 칩들 각각에 대한 라벨링된 샘플 데이터를 획득하고, 상기 라벨링된 샘플 데이터를 이용하여 상기 뉴럴 네트워크의 학습 모델을 갱신하는 것을 특징으로 하는 메모리 읽기 방법.
  12. 플래시 메모리에 대해 미리 설정된 변수 값들을 수신하는 수신부;
    상기 변수 값들에 대해 미리 학습된 학습 모델의 뉴럴 네트워크를 이용하여 상기 수신된 변수 값들에 대응하는 읽기 기준 전압을 추정하는 추정부; 및
    상기 추정된 읽기 기준 전압을 이용하여 상기 플래시 메모리를 읽는 읽기부
    를 포함하는 플래시 메모리 읽기 장치.
  13. 제12항에 있어서,
    상기 변수 값들은
    프로그래밍/소거(programming/erase) 횟수, 유지(retention) 시간 및 블록 내에서 위치 변수 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 플래시 메모리 읽기 장치.
  14. 제12항에 있어서,
    상기 플래시 메모리를 구성하는 개별 칩들 간의 특성 차이를 반영하여 상기 뉴럴 네트워크의 학습 모델을 갱신하는 갱신부
    를 더 포함하는 것을 특징으로 하는 플래시 메모리 읽기 장치.
  15. 제14항에 있어서,
    상기 갱신부는
    전압 최적화(voltage optimization) 기법을 이용하여 상기 개별 칩들 각각에 대한 라벨링된 샘플 데이터를 획득하고, 상기 라벨링된 샘플 데이터를 이용하여 상기 뉴럴 네트워크의 학습 모델을 갱신하는 것을 특징으로 하는 플래시 메모리 읽기 장치.
  16. 제12항에 있어서,
    상기 뉴럴 네트워크는
    미리 설정된 변수 값들과 상기 미리 설정된 변수 값들 각각에 대한 읽기 기준 전압들을 포함하는 트레이닝 데이터 세트를 이용한 트레이닝을 통해 미리 정의된 손실 함수를 최소화함으로써, 상기 학습 모델이 생성되는 것을 특징으로 하는 플래시 메모리 읽기 장치.
  17. 제16항에 있어서,
    상기 뉴럴 네트워크는
    지도 학습(supervised learning)을 통해 최적화됨으로써, 상기 학습 모델이 생성되는 것을 특징으로 하는 플래시 메모리 읽기 장치.
  18. 제13항에 있어서,
    상기 블록 내에서 위치 변수는
    상기 블록 내 페이지의 위치 변수, 상기 페이지의 타입 변수 및 비트라인 타입 변수를 포함하는 것을 특징으로 하는 플래시 메모리 읽기 장치.
KR1020190108027A 2019-09-02 2019-09-02 뉴럴 네트워크를 이용한 플래시 메모리의 읽기 기준 전압 추정 방법 및 그 장치 KR102356126B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190108027A KR102356126B1 (ko) 2019-09-02 2019-09-02 뉴럴 네트워크를 이용한 플래시 메모리의 읽기 기준 전압 추정 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190108027A KR102356126B1 (ko) 2019-09-02 2019-09-02 뉴럴 네트워크를 이용한 플래시 메모리의 읽기 기준 전압 추정 방법 및 그 장치

Publications (3)

Publication Number Publication Date
KR20210026767A true KR20210026767A (ko) 2021-03-10
KR102356126B1 KR102356126B1 (ko) 2022-01-27
KR102356126B9 KR102356126B9 (ko) 2023-03-23

Family

ID=75148379

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190108027A KR102356126B1 (ko) 2019-09-02 2019-09-02 뉴럴 네트워크를 이용한 플래시 메모리의 읽기 기준 전압 추정 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR102356126B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102484073B1 (ko) * 2021-11-22 2023-01-02 삼성전자주식회사 스토리지 시스템
KR20230116566A (ko) 2022-01-28 2023-08-04 에스케이하이닉스 주식회사 메모리 장치의 읽기 기준 전압 결정 장치 및 그 동작 방법
KR20240070026A (ko) 2022-11-14 2024-05-21 연세대학교 산학협력단 심층 신경망을 위한 비휘발성 메모리 장치 및 이의 신뢰도 향상 방법

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090016945A (ko) * 2007-08-13 2009-02-18 삼성전자주식회사 읽기동작타임을 줄일 수 있는 플래시 메모리 시스템 및그것의 읽기 동작 방법
KR101852116B1 (ko) * 2016-11-15 2018-04-25 재단법인대구경북과학기술원 디노이징 장치 및 노이즈 제거 방법
KR20180042889A (ko) * 2016-10-18 2018-04-27 삼성전자주식회사 스토리지 장치, 메모리 시스템, 및 그것의 읽기 전압 결정 방법
KR20180070974A (ko) * 2016-12-19 2018-06-27 삼성전자주식회사 비휘발성 메모리의 리드 동작 방법, 비휘발성 메모리를 포함하는 메모리 시스템 및 이의 동작 방법
KR20180120968A (ko) * 2017-04-28 2018-11-07 서울대학교산학협력단 메모리의 쓰기를 제어하는 뉴럴네트워크 수행 방법 및 장치
KR20180129211A (ko) * 2017-05-25 2018-12-05 삼성전자주식회사 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치
KR20190028242A (ko) * 2017-09-08 2019-03-18 삼성전자주식회사 뉴럴 네트워크 학습 방법 및 장치
KR20190037901A (ko) * 2017-09-29 2019-04-08 삼성전자주식회사 뉴럴 네트워크를 위한 트레이닝 방법, 뉴럴 네트워크를 이용한 인식 방법 및 그 장치들
KR20190062283A (ko) * 2017-11-28 2019-06-05 한국전자통신연구원 선택적 손실 함수를 이용한 생성적 적대 네트워크의 학습을 위한 방법 및 장치

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090016945A (ko) * 2007-08-13 2009-02-18 삼성전자주식회사 읽기동작타임을 줄일 수 있는 플래시 메모리 시스템 및그것의 읽기 동작 방법
KR20180042889A (ko) * 2016-10-18 2018-04-27 삼성전자주식회사 스토리지 장치, 메모리 시스템, 및 그것의 읽기 전압 결정 방법
KR101852116B1 (ko) * 2016-11-15 2018-04-25 재단법인대구경북과학기술원 디노이징 장치 및 노이즈 제거 방법
KR20180070974A (ko) * 2016-12-19 2018-06-27 삼성전자주식회사 비휘발성 메모리의 리드 동작 방법, 비휘발성 메모리를 포함하는 메모리 시스템 및 이의 동작 방법
KR20180120968A (ko) * 2017-04-28 2018-11-07 서울대학교산학협력단 메모리의 쓰기를 제어하는 뉴럴네트워크 수행 방법 및 장치
KR20180129211A (ko) * 2017-05-25 2018-12-05 삼성전자주식회사 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치
KR20190028242A (ko) * 2017-09-08 2019-03-18 삼성전자주식회사 뉴럴 네트워크 학습 방법 및 장치
KR20190037901A (ko) * 2017-09-29 2019-04-08 삼성전자주식회사 뉴럴 네트워크를 위한 트레이닝 방법, 뉴럴 네트워크를 이용한 인식 방법 및 그 장치들
KR20190062283A (ko) * 2017-11-28 2019-06-05 한국전자통신연구원 선택적 손실 함수를 이용한 생성적 적대 네트워크의 학습을 위한 방법 및 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102484073B1 (ko) * 2021-11-22 2023-01-02 삼성전자주식회사 스토리지 시스템
KR20230116566A (ko) 2022-01-28 2023-08-04 에스케이하이닉스 주식회사 메모리 장치의 읽기 기준 전압 결정 장치 및 그 동작 방법
KR20240070026A (ko) 2022-11-14 2024-05-21 연세대학교 산학협력단 심층 신경망을 위한 비휘발성 메모리 장치 및 이의 신뢰도 향상 방법

Also Published As

Publication number Publication date
KR102356126B9 (ko) 2023-03-23
KR102356126B1 (ko) 2022-01-27

Similar Documents

Publication Publication Date Title
KR102081415B1 (ko) 비휘발성 메모리 장치의 llr 최적화 방법 및 비휘발성 메모리 장치의 에러 정정 방법
TWI501241B (zh) 在快閃記憶體中用於軟性解映射及單元間干擾抑制的方法及裝置
Cai et al. Neighbor-cell assisted error correction for MLC NAND flash memories
Cai et al. Program interference in MLC NAND flash memory: Characterization, modeling, and mitigation
US7904793B2 (en) Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
US7797480B2 (en) Method for reading non-volatile storage using pre-conditioning waveforms and modified reliability metrics
KR102356126B1 (ko) 뉴럴 네트워크를 이용한 플래시 메모리의 읽기 기준 전압 추정 방법 및 그 장치
US11704178B2 (en) Estimating a bit error rate of data stored by a memory subsystem using machine learning
US20210202028A1 (en) Method of controlling operation of nonvolatile memory device using machine learning and storage system
KR20100055906A (ko) 멀티-레벨 비휘발성 메모리 장치, 상기 장치를 포함하는 메모리 시스템 및 그 동작 방법
US11749354B2 (en) Systems and methods for non-parametric PV-level modeling and read threshold voltage estimation
US20220336039A1 (en) Systems and methods for parametric pv-level modeling and read threshold voltage estimation
US11769556B2 (en) Systems and methods for modeless read threshold voltage estimation
US11960989B2 (en) Read threshold estimation systems and methods using deep learning
KR20210135418A (ko) 모바일 데이터 스토리지
CN115691624A (zh) 用于参数化pv电平建模的读取阈值电压估计系统和方法
US20220121387A1 (en) Method for estimating read reference voltages for flash storage using neural network and apparatus therefor
CN115713956A (zh) 用于动态补偿非易失性存储器存储装置中多个干扰源的系统和方法
US9009576B1 (en) Adaptive LLR based on syndrome weight
CN115762608A (zh) 压缩存储器装置中使用的深度神经网络
Papandreou et al. Enhancing the reliability of MLC NAND flash memory systems by read channel optimization
KR102247164B1 (ko) 채널 복호기의 동작과 결합한 플래시 메모리 읽기 방법 및 그 장치
US20230057711A1 (en) System and method for dynamic inter-cell interference compensation in non-volatile memory storage devices
TWI842048B (zh) 非揮發性記憶體儲存裝置中用於動態細胞間干擾補償的系統和方法
KR20220127168A (ko) 다중 임계값-전문가 기계 학습 모델을 사용한 노이즈 제거

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]