KR20180027710A - 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법 - Google Patents

불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법 Download PDF

Info

Publication number
KR20180027710A
KR20180027710A KR1020160114495A KR20160114495A KR20180027710A KR 20180027710 A KR20180027710 A KR 20180027710A KR 1020160114495 A KR1020160114495 A KR 1020160114495A KR 20160114495 A KR20160114495 A KR 20160114495A KR 20180027710 A KR20180027710 A KR 20180027710A
Authority
KR
South Korea
Prior art keywords
access
memory cells
read
environment information
controller
Prior art date
Application number
KR1020160114495A
Other languages
English (en)
Other versions
KR102696971B1 (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 KR1020160114495A priority Critical patent/KR102696971B1/ko
Priority claimed from KR1020160114495A external-priority patent/KR102696971B1/ko
Priority to US15/605,404 priority patent/US10013211B2/en
Priority to CN201710790427.XA priority patent/CN107797935B/zh
Publication of KR20180027710A publication Critical patent/KR20180027710A/ko
Application granted granted Critical
Publication of KR102696971B1 publication Critical patent/KR102696971B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N99/005
    • 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/5621Digital 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 charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • 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/5621Digital 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 charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1057Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • G06F2003/0691
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 스토리지 장치에 관한 것이다. 본 발명의 스토리지 장치는 불휘발성 메모리 장치, 버퍼 메모리, 그리고 컨트롤러를 포함한다. 컨트롤러는 버퍼 메모리를 이용하여 불휘발성 메모리 장치에 대해 제1 액세스들을 수행하고, 제1 액세스들의 액세스 결과 정보 및 액세스 환경 정보를 버퍼 메모리에 수집하고, 버퍼 메모리에 수집된 액세스 결과 정보 및 액세스 환경 정보에 기반하여 기계 학습을 수행하여 불휘발성 메모리 장치에 대한 제2 액세스의 결과를 예측하는 액세스 분류자를 생성한다.

Description

불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법{STORAGE DEVICE INCLUDING NONVOLATILE MEMORY DEVICE AND ACCESS METHOD FOR NONVOLATILE MEMORY DEVICE}
본 발명은 반도체 회로에 관한 것으로, 더 상세하게는 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법에 관한 것이다.
스토리지 장치는 불휘발성 메모리를 포함한다. 스토리지 장치는 전원이 차단되어도 저장된 데이터를 유지할 수 있으며, 따라서 장기간의 데이터 저장에 유리하다. 스토리지 장치는 컴퓨터, 스마트폰, 스마트 패드 등과 같은 다양한 전자 장치들에서 주 저장소로 사용되고 있다.
사용자들의 데이터 사용 패턴들 및 사용 환경들에 따라, 스토리지 장치들에 대한 데이터의 쓰기 및 읽기 패턴이 달라질 수 있다. 스토리지 장치들에 대한 데이터의 쓰기 및 읽기 패턴이 달라지면, 스토리지 장치들의 동작 성능들 또한 달라질 수 있다.
스토리지 장치들의 제조사들은 평균적인 사용 패턴들 및 사용 환경들을 기반으로 스토리지 장치들의 내부 동작(예를 들어 쓰기 및 읽기) 알고리즘들을 설정한다. 평균적인 사용 패턴들 및 사용 환경들이 적용되면, 스토리지 장치들은 사용자들 각각에 대해 최적의 동작 성능들을 제공할 수 없다.
본 발명의 목적은 사용자들 각각에 대해 최적의 동작 성능들을 제공할 수 있는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법을 제공하는 데에 있다.
본 발명의 실시 예에 따른 스토리지 장치는 불휘발성 메모리 장치, 버퍼 메모리, 그리고 컨트롤러를 포함한다. 컨트롤러는 버퍼 메모리를 이용하여 불휘발성 메모리 장치에 대해 제1 액세스들을 수행하고, 제1 액세스들의 액세스 결과 정보 및 액세스 환경 정보를 버퍼 메모리에 수집하고, 버퍼 메모리에 수집된 액세스 결과 정보 및 액세스 환경 정보에 기반하여 기계 학습을 수행하여 불휘발성 메모리 장치에 대한 제2 액세스의 결과를 예측하는 액세스 분류자(classifier)를 생성한다.
본 발명의 다른 실시 예에 따른 스토리지 장치는 불휘발성 메모리 장치, 버퍼 메모리, 컨트롤러, 그리고 프로세싱 유닛을 포함한다. 컨트롤러는 버퍼 메모리를 이용하여 불휘발성 메모리 장치에 대해 제1 액세스들을 수행한다. 프로세싱 유닛은 제1 액세스들의 액세스 결과 정보 및 액세스 환경 정보를 버퍼 메모리에 수집하고, 버퍼 메모리에 수집된 액세스 결과 정보 및 액세스 환경 정보에 기반하여 기계 학습을 수행하여 불휘발성 메모리 장치에 대한 제2 액세스의 결과를 예측하는 액세스 분류자(classifier)를 생성한다. 컨트롤러가 불휘발성 메모리 장치에 대한 제2 액세스를 수행할 때에, 프로세싱 유닛은 액세스 분류자를 이용하여 제2 액세스의 결과를 예측한다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치의 액세스 방법은, 불휘발성 메모리 장치에 대해 제1 액세스들을 수행하고, 제1 액세스들의 액세스 결과 정보 및 액세스 환경 정보를 수집하는 단계, 수집된 액세스 결과 정보 및 액세스 환경 정보에 기반하여 기계 학습을 수행하여 액세스 분류자를 생성하는 단계, 그리고 불휘발성 메모리 장치에 대해 제2 액세스를 수행하기 전에, 제2 액세스의 액세스 환경 정보 및 액세스 분류자를 이용하여 제2 액세스의 결과를 예측하는 단계를 포함한다.
본 발명의 실시 예들에 따르면, 기계 학습에 따라 컨트롤러가 불휘발성 메모리 장치를 액세스하는 방법이 조절된다. 따라서, 사용자들의 패턴에 적응적으로 사용자들 각각에 최적의 동작 성능을 제공하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치를 보여주는 블록도이다.
도 2는 도 1의 기계 학습을 위한 코어들에 의해 구현되는 모듈들의 예를 보여준다.
도 3은 본 발명의 실시 예에 따른 스토리지 장치의 동작 방법을 보여주는 순서도이다.
도 4는 본 발명의 실시 예에 따른 스토리지 장치가 액세스 분류자를 이용하여 새로운 액세스 요청의 액세스 결과를 예측하는 예를 보여준다.
도 5는 본 발명의 실시 예에 따른 메모리 블록의 예를 보여준다.
도 6은 컨트롤러가 불휘발성 메모리 장치를 액세스하는 예를 보여준다.
도 7은 신뢰성 검증 읽기 동작에 기계 학습이 적용되는 때에, 액세스 결과 정보 및 액세스 환경 정보의 예를 보여준다.
도 8은 분류 결과를 획득한 후에, 분류 결과와 연관된 신뢰성 검증 읽기 동작을 처리하는 방법의 예를 보여준다.
도 9는 읽기 동작, 쓰기 동작, 또는 소거 동작에 기계 학습이 적용되는 때에, 액세스 결과 정보 및 액세스 환경 정보의 예를 보여준다.
도 10은 컨트롤러가 불휘발성 메모리 장치를 액세스하는 다른 예를 보여준다.
도 11은 체크 동작에 기계 학습이 적용되는 때에, 액세스 결과 정보 및 액세스 환경 정보의 예를 보여준다.
도 12는 분류 결과를 획득한 후에, 분류 결과와 연관된 체크 동작을 처리하는 방법의 예를 보여준다.
도 13은 서브 읽기 동작의 결과를 액세스 환경 정보로 사용하여 읽기 동작의 결과를 분류하는 예를 보여준다.
도 14는 도 13의 액세스 환경 정보 및 액세스 결과 정보를 이용하는 방법의 예를 보여준다.
도 15는 기계 학습에 의해 생성되는 액세스 분류자의 예를 보여준다.
도 16은 기계 학습에 의해 생성되는 액세스 분류자의 다른 예를 보여준다.
도 17은 기계 학습에 의해 생성되는 액세스 분류자의 또 다른 예의 생성 방법을 보여준다.
도 18은 도 1의 스토리지 장치의 응용 예를 보여준다.
아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재된다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치(100)를 보여주는 블록도이다. 도 1을 참조하면, 스토리지 장치(100)는 불휘발성 메모리 장치(110), 컨트롤러(120), 그리고 버퍼 메모리(130)를 포함한다.
불휘발성 메모리 장치(110)는 컨트롤러(120)의 제어에 따라 쓰기 동작, 읽기 동작 및 소거 동작을 수행할 수 있다. 불휘발성 메모리 장치(110)는 컨트롤러(120)로부터 쓰기 커맨드, 어드레스 및 데이터를 수신하고, 어드레스에 의해 식별되는 저장 공간에 데이터를 기입할 수 있다. 불휘발성 메모리 장치(110)는 컨트롤러(120)로부터 읽기 커맨드 및 어드레스를 수신하고, 어드레스에 의해 식별되는 저장 공간으로부터 데이터를 읽고, 읽혀진 데이터를 컨트롤러(120)로 출력할 수 있다. 불휘발성 메모리 장치(110)는 컨트롤러(120)로부터 소거 커맨드 및 어드레스를 수신하고, 어드레스에 의해 식별되는 저장 공간의 데이터를 소거할 수 있다.
불휘발성 메모리 장치(110)는 복수의 메모리 블록들(BLK1~BLKz)을 포함할 수 있다. 복수의 메모리 블록들 각각은 복수의 메모리 셀들을 포함할 수 있다. 복수의 메모리 셀들은 불휘발성 메모리 장치(110)의 저장 공간을 형성할 수 있다. 복수의 메모리 블록들 각각은 복수의 메모리 셀들을 개별적으로 선택하는 것을 지원하는 선택 트랜지스터들을 더 포함할 수 있다. 메모리 블록들(BLK1~BLKz)은 불휘발성 메모리 장치(110)의 동작상의 특징에 따라 또는 구조적 특징에 따라 구별될 수 있다.
불휘발성 메모리 장치(110)는 플래시 메모리, 상 변화 랜덤 액세스 메모리(PRAM, Phase-change Random Access Memory), 강유전체 랜덤 액세스 메모리(FeRAM, Ferroelectric RAM), 자기 랜덤 액세스 메모리(MRAM, Magnetic RAM), 저항성 랜덤 액세스 메모리(RRAM, Resistive RAM) 등을 포함할 수 있다.
컨트롤러(120)는 불휘발성 메모리 장치(110) 및 버퍼 메모리(130)를 액세스할 수 있다. 컨트롤러(120)는 외부의 호스트 장치의 요청에 따라 쓰기, 읽기 및 소거를 수행할 수 있다. 컨트롤러(120)는 쓰기 요청된 데이터를 불휘발성 메모리 장치(110)에 기입하고, 읽기 요청된 데이터를 불휘발성 메모리 장치(110)로부터 읽어 출력할 수 있다.
컨트롤러(120)는 버퍼 메모리(130)를 이용하여 스토리지 장치(100)를 관리할 수 있다. 예를 들어, 컨트롤러(120)는 불휘발성 메모리 장치(110)에 기입될 데이터 또는 불휘발성 메모리 장치(110)로부터 읽히는 데이터를 버퍼 메모리(130)에 임시로 저장할 수 있다. 컨트롤러(120)는 불휘발성 메모리 장치(110)를 관리하는 데에 필요한 메타 데이터를 버퍼 메모리(130)에 로드할 수 있다.
컨트롤러(120)는 불휘발성 메모리 장치(110)를 액세스할 때의 액세스 환경 정보 및 액세스 결과 정보를 수집할 수 있다. 예를 들어, 액세스 환경 정보 및 액세스 결과 정보는 버퍼 메모리(130)에 수집될 수 있다. 컨트롤러(120)는 버퍼 메모리(130)에 수집된 액세스 환경 정보 및 액세스 결과 정보에 기반하여 기계 학습(Machine Learning)을 수행할 수 있다. 예를 들어, 컨트롤러(120)는 둘 이상의 액세스들과 연관된 액세스 환경 정보 및 액세스 결과 정보에 기반하여 기계 학습을 수행할 수 있다. 컨트롤러(120)는 기계 학습의 결과에 따라 다음 액세스의 방법, 수행 여부, 액세스 파라미터들을 선택할 수 있다.
컨트롤러(120)는 버스(121), 코어들(122, 123), 랜덤 액세스 메모리(RAM)(124), 호스트 인터페이스(125), 버퍼 제어 회로(126), 그리고 메모리 인터페이스(127)를 포함한다.
버스(121)는 컨트롤러(120)의 구성 요소들 사이에 채널을 제공하도록 구성된다.
코어들(122, 123) 중 일부 코어들(122)은 스토리지 장치(100)를 관리하는 데에 사용(또는 할당 또는 지정)되고, 나머지 일부 코어들(123)은 기계 학습을 수행하는 데에 사용(또는 할당 또는 지정)될 수 있다.
코어들(122)은 컨트롤러(120)의 제반 동작을 제어하고, 논리 연산을 수행할 수 있다. 프로세서(122)는 호스트 인터페이스(125)를 통해 외부의 호스트 장치와 통신하고, 메모리 인터페이스(127)를 통해 불휘발성 메모리 장치(110)와 통신하고, 그리고 버퍼 제어 회로(126)를 통해 버퍼 메모리(130)와 통신할 수 있다. 프로세서(122)는 RAM (124)을 동작 메모리, 캐시 메모리 또는 버퍼 메모리로 사용하여 스토리지 장치(100)를 제어할 수 있다. 코어들(122)은 외부의 호스트 장치에 의해 요청되는 액세스들 또는 내부 정책에 의해 생성되는 액세스들 중 적어도 일부 액세스들과 연관된 결과를 예측할 것을 코어들(123)에 요청할 수 있다. 코어들(122)은 코어들(123)로부터 예측 결과를 수신하고, 예측 결과에 따라 적어도 일부 액세스들의 수행 여부, 수행 방법, 수행 정착, 수행 파라미터들을 선택할 수 있다.
코어들(123)은 버퍼 메모리(130)에 저장된 액세스 결과 정보 및 액세스 환경 정보에 기반하여 기계 학습을 수행할 수 있다. 예를 들어, 코어들(123)은 기계 학습을 수행하여 결정 나무(Decision Tree), 신경망(Neural Network), 지원 벡터 기계(Support Vector Machine)와 같은 학습 결과를 액세스 분류자로 생성(또는 갱신)할 수 있다. 코어들(123)은 액세스 분류자를 RAM (124) 또는 버퍼 메모리(130)에 로드하여 구동할 수 있다. 액세스 분류자들이 생성된 후에, 코어들(123)은 코어들(122)의 요청에 따라 적어도 일부 액세스들과 연관된 결과들을 액세스 분류자들을 이용하여 예측할 수 있다. 코어들(123)은 예측 결과를 코어들(122)로 전달할 수 있다. 코어들(123)은 주기적으로 또는 스토리지 장치(100)의 전원 오프가 감지될 때에, 액세스 분류자를 불휘발성 메모리 장치(110)에 기입할 수 있다. 예를 들어, 액세스 분류자는 메모리 블록들(BLK1~BLKz) 중에서 메타 정보를 저장하도록 설정된 메모리 블록에 기입될 수 있다. 코어들(123)은 스토리지 장치(100)에 전원이 공급될 때에, 불휘발성 메모리 장치(110)로부터 액세스 분류자를 읽고 버퍼 메모리(130) 또는 RAM (124)에 로드할 수 있다.
RAM (124)은 코어들(122, 123)의 동작 메모리, 캐시 메모리 또는 버퍼 메모리로 사용될 수 있다. RAM (124)은 코어들(122, 123)이 실행하는 코드들 및 명령들을 저장할 수 있다. RAM (124)은 코어들(122, 123)에 의해 처리되는 데이터를 저장할 수 있다. RAM (124)은 SRAM (Static RAM)을 포함할 수 있다.
호스트 인터페이스(125)는 프로세서(122)의 제어에 따라, 외부의 호스트 장치와 통신하도록 구성된다. 호스트 인터페이스(125)는 USB (Universal Serial Bus), SATA (Serial AT Attachment), SAS (Serial Attached SCSI), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (NonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), MMC (MultiMedia Card), eMMC (embedded MMC), DIMM (Dual In-line Memory Module), RDIMM (Registered DIMM), LRDIMM (Load Reduced DIMM) 등과 같은 다양한 통신 방식들 중 적어도 하나를 이용하여 통신하도록 구성될 수 있다.
버퍼 제어 회로(126)는 프로세서(122)의 제어에 따라, 버퍼 메모리(130)를 제어하도록 구성된다.
메모리 인터페이스(127)는 프로세서(122)의 제어에 따라, 불휘발성 메모리 장치(110)와 통신하도록 구성된다. 도 1을 참조하여 설명된 바와 같이, 메모리 인터페이스(127)는 입출력 채널을 통해 커맨드, 어드레스 및 데이터를 불휘발성 메모리 장치(110)와 통신할 수 있다. 메모리 인터페이스(127)는 제어 채널을 통해 제어 신호를 불휘발성 메모리 장치(110)와 통신할 수 있다.
메모리 인터페이스(127)는 에러 정정 블록(128)을 포함할 수 있다. 에러 정정 블록(128)은 에러 정정 코드(ECC)를 포함할 수 있다. 에러 정정 블록(128)은 에러 정정을 수행할 수 있다. 에러 정정 블록(128)은 메모리 인터페이스(127)를 통해 불휘발성 메모리 장치(110)에 기입될 데이터에 기반하여 에러 정정 인코딩을 수행할 수 있다. 에러 정정 인코딩된 데이터는 메모리 인터페이스(127)를 통해 불휘발성 메모리 장치(110)로 전달될 수 있다. 에러 정정 블록(128)은 불휘발성 메모리 장치(110)로부터 메모리 인터페이스(127)를 통해 수신되는 데이터에 대해 에러 정정 디코딩을 수행할 수 있다.
예시적으로, 스토리지 장치(100)에 버퍼 메모리(130)가 제공되지 않는 경우, 컨트롤러(120)에 버퍼 제어 회로(126)가 제공되지 않을 수 있다.
도 2는 도 1의 기계 학습을 위한 코어들(123)에 의해 구현되는 모듈들의 예를 보여준다. 도 1 및 도 2를 참조하면, 코어들(123)은 정보 수집 모듈(123_1), 액세스 환경 정보 수집 모듈(123_2), 트레이닝 모듈(123_3), 그리고 분류 모듈(123_4)을 포함한다.
정보 수집 모듈(123_1)은 컨트롤러(120)가 불휘발성 메모리 장치(110)를 액세스할 때에 발생하는 액세스 결과 정보(AI)를 수집할 수 있다. 예를 들어, 불휘발성 메모리 장치(110)에 대한 다양한 액세스들 중에서 코어들(122 또는 123)에 의해 지정된 종류의 액세스들과 연관된 액세스 결과 정보(AI)가 수집될 수 있다. 또한, 각 액세스에 의해 발생하는 다양한 결과 정보들 중 코어들(122 또는 123)에 의해 지정된 종류의 결과 정보들이 액세스 결과 정보(AI)로 수집될 수 있다. 또한, 정보 수집 모듈(123_1)은 지정된 종류의 액세스들과 연관된 액세스 환경 정보(EI)를 수집할 수 있다. 수집된 액세스 결과 정보(AI)는 버퍼 메모리(130)에 저장될 수 있다.
액세스 환경 정보 수집 모듈(123_2)은 코어들(122)에 의해 처리되는 액세스들 중에서, 코어들(122 또는 123)에 의해 지정된 종류의 액세스와 연관된 커맨드(CMD) 또는 어드레스(ADDR)를 수신할 수 있다. 액세스 환경 정보 수집 모듈(123_2)은 커맨드(CMD) 또는 어드레스(ADDR)에 기반하여 액세스의 환경 정보(EI)를 수집할 수 있다. 수집된 환경 정보(EI)는 정보 수집 모듈(123_1) 및 분류 모둘(123_4)로 전달될 수 있다.
수집된 액세스 환경 정보(EI) 및 액세스 결과 정보(AI)가 트레이닝 조건에 도달하면, 트레이닝 모듈(123_3)은 기계 학습을 수행할 수 있다. 기계 학습의 결과로, 트레이닝 모듈(123_3)은 액세스 분류자(CF)를 새롭게 생성하거나 또는 기존의 액세스 분류자(CF)를 갱신할 수 있다. 새로운 액세스 분류자(CF)는 버퍼 메모리(130) 또는 RAM (124)에 저장되며, 새로운 액세스 분류자(CF)의 제어권은 분류 모듈(123_4)로 전달된다. 예시적으로, 액세스 분류자(CF)는 액세스를 분류하여 그에 부합하는 결과를 예측하는 점에서 "분류자"로 명명되었으며, 액세스 분류자(CF)의 기능 및 특성은 "분류자"의 명칭에 의해 한정되지 않는다.
분류 모듈(123_4)은 액세스 환경 정보 수집 모듈(123_2)로부터 환경 정보(EI)를 수신할 수 있다. 분류 모듈(123_4)은 환경 정보(EI) 및 액세스 분류자(CF)에 기반하여 분류 결과(CR)를 출력할 수 있다. 분류 결과(CR)는 코어들(122)로 전달될 수 있다.
도 2에서, 모듈들(123_1~123_4)에 의해 정보들이 처리되는 두 가지 예가 제1 및 제2 화살표들(A1, A2)로 도시되어 있다.
제1 화살표(A1)를 참조하면, 코어들(122)로부터 특정한 액세스의 결과 예측이 요청될 수 있다. 액세스 환경 정보 수집 모듈(123_2)은 환경 정보(EI)를 수집할 수 있다. 분류 모듈(123_4)은 환경 정보(EI) 및 액세스 분류자(CF)를 이용하여 분류 결과(CR)를 획득할 수 있다. 분류 결과(CR)는 코어들(122)로 전달될 수 있다. 분류 결과(CR)에 따라, 코어들(122)이 액세스를 수행하지 않기로 결정하는 경우, 액세스 결과 정보(AI)는 수집되지 않는다. 따라서, 액세스 환경 정보(EI) 또한 정보 수집 모듈(123_1)에 의해 수집되지 않는다.
제2 화살표를 참조하면, 코어들(122)로부터 특정한 액세스의 결과 예측이 요청될 수 있다. 액세스 환경 정보 수집 모듈(123_2)은 환경 정보(EI)를 수집할 수 있다. 분류 모듈(123_4)은 환경 정보(EI) 및 액세스 분류자(CF)를 이용하여 분류 결과(CR)를 획득할 수 있다. 분류 결과(CR)는 코어들(122)로 전달될 수 있다. 분류 결과(CR)에 따라, 코어들(122)이 액세스를 수행하기로 결정하는 경우, 액세스 결과 정보(AI)가 수집된다. 따라서, 정보 수집 모듈(123_1)은 액세스 환경 정보(EI) 및 액세스 결과 정보(AI)를 수집할 수 있다.
도 3은 본 발명의 실시 예에 따른 스토리지 장치(100)의 동작 방법을 보여주는 순서도이다. 도 1 내지 도 3을 참조하면, S110 단계에서, 정보 수집 모듈(123_1)은 액세스 환경 정보 수집 모듈(123_2)과 함께 불휘발성 메모리 장치(110)에 대한 액세스의 액세스 결과 정보(AI) 및 액세스 환경 정보(EI)를 수집할 수 있다. 액세스는 쓰기 동작, 읽기 동작 또는 소거 동작을 포함할 수 있다.
S120 단계에서, 트레이닝 모듈(123_3)은 학습 조건이 만족되는지 판별한다. 예를 들어, 미리 정해진 시간 주기가 도달한 때에, 수집된 액세스 결과 정보(AI) 및 액세스 환경 정보(EI)가 미리 정해진 사이즈에 도달할 때에, 유휴 시간에, 전원 오프가 감지될 때에, 그리고 버퍼 메모리의 저장 용량이 부족할 때에 학습 조건이 만족될 수 있다. 학습 조건이 만족되지 않으면, S110 단계에서 수집이 지속된다. 학습 조건이 만족되면, S130 단계가 수행된다.
S130 단계에서, 트레이닝 모듈(123_3)은 수집된 액세스 결과 정보(AI) 및 액세스 환경 정보(EI)에 기반하여 기계 학습을 수행하여 액세스 분류자(CF)를 생성할 수 있다. 예를 들어, 트레이닝 모듈(123_3)은 새로운 액세스 분류자(CF)를 생성하거나, 또는 기존의 액세스 분류자의 가중치 등과 같은 파라미터를 변경하여 기존의 액세스 분류자를 새로운 액세스 분류자(CF)로 갱신할 수 있다.
도 4는 본 발명의 실시 예에 따른 스토리지 장치(100)가 액세스 분류자를 이용하여 새로운 액세스 요청의 액세스 결과를 예측(또는 분류)하는 예를 보여준다. 도 1, 도 2 및 도 4를 참조하면, S210 단계에서, 코어들(122)은 외부의 호스트 장치로부터 액세스 요청을 수신하거나 내부 정책에 따라 액세스 요청을 생성할 수 있다. 코어들(122)은 액세스 요청에 따라 액세스를 수행하기 전에, 액세스 결과를 예측할 것을 코어들(123)에 요청할 수 있다. 예를 들어, 액세스 환경 정보 수집 모듈(123_2)은 커맨드(CMD) 및 어드레스(ADDR)를 포함하는 액세스 요청을 수신할 수 있다.
S220 단계에서, 액세스 환경 정보 수집 모듈(123_2)은 수신된 액세스 요청과 연관된 액세스 환경 정보(EI)를 수집할 수 있다.
S230 단계에서, 분류 모듈(123_4)은 액세스 환경 정보(EI) 및 액세스 분류기(CF)를 이용하여 분류 결과(CR)를 획득할 수 있다. 코어들(122)은 분류 결과(CR)에 따라 액세스 요청을 처리할 수 있다. 예를 들어, 코어들(122)은 액세스를 수행할지의 여부를 분류 결과(CR)에 따라 결정할 수 있다. 또한, 코어들(122)은 액세스를 수행할 때에, 불휘발성 메모리 장치(110)에서 사용되는 전압들 및 시간들과 같은 다양한 파라미터들을 분류 결과(CR)에 따라 선택(또는 변경) 할 수 있다.
도 5는 본 발명의 실시 예에 따른 메모리 블록(BLKa)의 예를 보여준다. 도 1 및 도 5를 참조하면, 복수의 셀 스트링들(CS)이 기판(SUB) 위에서 행들 및 열들로 배치될 수 있다. 복수의 셀 스트링들(CS)은 기판(SUB) 상에(또는 안에) 형성되는 공통 소스 라인(CSL)에 공통으로 연결될 수 있다. 도 2에서, 메모리 블록(BLKa)의 구조의 이해를 돕기 위하여, 기판(SUB)의 위치가 예시적으로 표시되어 있다. 도 2에서, 셀 스트링들(CS)의 하단에 공통 소스 라인(CSL)이 연결되는 것으로 도시되어 있다. 그러나 공통 소스 라인(CSL)은 셀 스트링들(CS)의 하단에 전기적으로 연결되는 것으로 충분하며, 물리적으로 셀 스트링들(CS)의 하단에 위치하는 것으로 한정되지 않는다. 예시적으로, 도 2에서 셀 스트링들(CS)은 4X4로 배열되는 것으로 도시되나 메모리 블록(BLKa)은 더 적은 또는 더 많은 수의 셀 스트링들을 포함할 수 있다.
각 행의 셀 스트링들은 제1 내지 제4 접지 선택 라인들(GSL1~GSL4) 중 대응하는 접지 선택 라인 그리고 제1 내지 제4 스트링 선택 라인들(SSL1~SSL4) 중 대응하는 스트링 선택 라인에 연결될 수 있다. 각 열의 셀 스트링들은 제1 내지 제4 비트 라인들(BL1~BL4) 중 대응하는 비트 라인에 연결될 수 있다. 도면이 복잡해지는 것을 방지하기 위하여, 제2 및 제3 접지 선택 라인들(GSL2, GSL3) 또는 제2 및 제3 스트링 선택 라인들(SSL2, SSL3)에 연결된 셀 스트링들은 옅게 도시되어 있다.
각 셀 스트링은 대응하는 접지 선택 라인에 연결되는 적어도 하나의 접지 선택 트랜지스터(GST), 제1 더미 워드 라인(DWL1)에 연결되는 제1 더미 메모리 셀(DMC1), 복수의 워드 라인들(WL1~WL8)에 각각 연결되는 복수의 메모리 셀들(MC), 제2 더미 워드 라인(DWL2)에 연결되는 제2 더미 메모리 셀(DMC2), 그리고 스트링 선택 라인들(SSL)에 각각 연결되는 스트링 선택 트랜지스터들(SST)을 포함할 수 있다. 각 셀 스트링에서, 접지 선택 트랜지스터(GST), 제1 더미 메모리 셀(DMC1), 메모리 셀들(MC), 제2 더미 메모리 셀(DMC2) 및 스트링 선택 트랜지스터들(SST)은 기판과 수직인 방향을 따라 직렬 연결되고, 기판과 수직인 방향을 따라 순차적으로 적층될 수 있다.
예시적으로, 도 5에 도시된 바와 같이, 각 셀 스트링(CS)에서 접지 선택 트랜지스터(GST) 및 메모리 셀들(MC) 사이에 하나 또는 그보다 많은 더미 메모리 셀들이 제공될 수 있다. 각 셀 스트링(CS)에서, 스트링 선택 트랜지스터들(SST) 및 메모리 셀들(MC) 사이에 하나 또는 그보다 많은 더미 메모리 셀들이 제공될 수 있다. 각 셀 스트링(CS)에서, 메모리 셀들의 사이에 하나 또는 그보다 많은 더미 메모리 셀들이 제공될 수 있다. 더미 메모리 셀들은 메모리 셀들(MC)과 동일한 구조를 가지며, 프로그램되지 않거나(예를 들어, 프로그램이 금지되거나) 또는 메모리 셀들(MC)과 다르게 프로그램될 수 있다. 예를 들어, 메모리 셀들(MC)이 둘 또는 그보다 많은 개수의 문턱 전압 산포를 갖도록 프로그램될 때, 더미 메모리 셀들은 하나의 문턱 전압 산포 범위나 메모리 셀들(MC)보다 적은 개수의 문턱 전압 산포를 갖도록 프로그램될 수 있다.
기판(SUB) 또는 접지 선택 트랜지스터(GST)로부터 동일한 높이(또는 순서)에 위치한 셀 스트링들(CS)의 메모리 셀들은 전기적으로 공통으로 연결될 수 있다. 기판(SUB) 또는 접지 선택 트랜지스터(GST)로부터 상이한 높이(또는 순서)에 위치한 셀 스트링들(CS)의 메모리 셀들은 전기적으로 분리될 수 있다. 예시적으로, 도 2에서, 동일한 높이의 메모리 셀들은 동일한 워드 라인에 연결되는 것으로 도시되어 있으나, 동일한 높이의 메모리 셀들은 메모리 셀들이 형성된 높이의 평면에서 직접 연결되거나 또는 메탈층과 같은 다른 층을 통해 서로 간접 연결될 수 있다.
하나의 스트링(또는 접지) 선택 라인 및 하나의 워드 라인에 대응하는 메모리 셀들은 하나의 페이지를 형성할 수 있다. 쓰기 동작 및 읽기 동작은 각 페이지의 단위로 수행될 수 있다. 각 페이지의 각 메모리 셀은 둘 이상의 비트들을 저장할 수 있다. 각 페이지의 메모리 셀들에 기입되는 비트들은 논리 페이지들을 형성한다. 예를 들어, 각 페이지의 메모리 셀들에 기입되는 k번째 비트들은 k번째 논리 페이지를 형성할 수 있다.
메모리 블록(BLKa)은 3차원 메모리 어레이로 제공된다. 3차원 메모리 어레이는, 실리콘 기판(SUB) 및 메모리 셀들(MC)의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들(MC)의 어레이들의 하나 또는 그 이상의 물리 레벨들에 획일적으로(monolithically) 형성될 수 있다. 메모리 셀들(MC)의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 획일적으로 형성되는 것은, 3차원 어레이의 각 레벨의 레이어들이 3차원 어레이의 하위 레벨의 레이어들 위에 직접 증착됨을 의미한다.
본 발명의 기술적 사상에 따른 일 예로서, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 셀 스트링들(CS)(또는 NAND 스트링들)을 포함한다. 적어도 하나의 메모리 셀은 전하 포획 레이어를 포함한다. 각 셀 스트링은 메모리 셀들(MC) 위에 위치하는 적어도 하나의 선택 트랜지스터를 더 포함한다. 적어도 하나의 선택 트랜지스터는 메모리 셀들(MC)과 동일한 구조를 갖고, 메모리 셀들(MC)과 함께 획일적으로 형성된다.
3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에서 워드 라인들 또는 비트 라인들이 공유되는 구성은 미국등록특허공보 제7,679,133호, 미국등록특허공보 제8,553,466호, 미국등록특허공보 제8,654,587호, 미국등록특허공보 제8,559,235호, 그리고 미국공개특허공보 제2011/0233648호에 개시되어 있으며, 본 발명의 레퍼런스로 포함된다.
도 6은 컨트롤러(120)가 불휘발성 메모리 장치(110)를 액세스하는 예를 보여준다. 도 6의 제1 및 제2 그래프들(G1, G2)에서 가로축은 메모리 셀들의 문턱 전압을 가리키고, 세로축은 메모리 셀들의 개수를 가리킨다. 도 6에서, 각 메모리 셀에 3개의 비트들이 기입되고, 하나의 페이지가 3개의 논리 페이지들을 갖는 예가 가정된다. 그러나, 본 발명의 기술적 사상은 한정되지 않는다.
도 1, 도 5 및 도 6의 제1 그래프를 참조하면, 메모리 셀들은 8개의 상태들을 가질 수 있다. 8개의 상태들은 문턱 전압(Vth)의 범위로 정의될 수 있다. 각 메모리 셀에 기입되는 3개의 비트들에 따라, 각 메모리 셀은 8개의 상태들 중 하나에 속하는 문턱 전압(Vth)을 갖도록 프로그램될 수 있다. 8개의 상태들은 8개의 문턱 전압 범위들 사이의 레벨을 갖는 7개의 읽기 전압들을 이용하여 식별될 수 있다.
메모리 셀들에 데이터가 기입된 후에, 교란 및 리텐션(retnetion) 열화가 발생할 수 있다. 교란은 메모리 셀들의 주변에서 발생하는 프로그램, 읽기, 소거, 커플링 등에 의해 메모리 셀들의 문턱 전압들이 변화하는 현상을 가리킨다. 리텐션 열화는 메모리 셀들의 전하 포획층에 전하들이 포획되어 메모리 셀들이 프로그램된 후에, 시간이 지남에 따라 포획된 전하들이 유출되어 메모리 셀들의 문턱 전압들이 변화하는 현상을 가리킨다.
통상적으로, 교란 및 리텐션 열화에 의해, 낮은 문턱 전압 범위에 속한 메모리 셀들의 문턱 전압들은 상승하고, 높은 문턱 전압 범위에 속한 메모리 셀들의 문턱 전압들은 하강할 수 있다. 교란 및 리텐션 열화가 발생하면, 메모리 셀들의 문턱 전압들은 제1 그래프(G1)로부터 제2 그래프(G2)로 변화할 수 있다.
제2 그래프(G2)를 참조하면, 서로 다른 문턱 전압 범위에 속한 메모리 셀들의 문턱 전압들이 서로 섞일 수 있다. 예를 들어, 제1 문턱 전압 범위에 속한 메모리 셀들의 문턱 전압들이 제2 문턱 전압 범위에 속하도록 변화할 수 있고, 반대로 제2 문턱 전압 범위에 속한 메모리 셀들의 문턱 전압들이 제1 문턱 전압 범위에 속하도록 변화할 수 있다. 메모리 셀들의 문턱 전압들이 제2 그래프(G2)와 같이 변화하면, 읽기 동작 시에 발생하는 에러가 에러 정정 블록(128)에 의해 정정 불가능한 수준이 될 수 있다.
읽기 동작 시에 치유 불가능한 에러가 발생하는 것을 방지하기 위하여, 신뢰성 검증 읽기 동작이 수행될 수 있다. 신뢰성 검증 읽기 동작은 통상적인 읽기 동작 시에 사용되는 읽기 전압들보다 더 적은 수의 읽기 전압들을 이용할 수 있다. 예를 들어, 신뢰성 검증 읽기 동작은 제1 읽기 전압(VR1)을 이용하여 읽기를 수행하는 제1 동작 및 제2 읽기 전압(VR2)을 이용하여 읽기를 수행하는 제2 읽기를 수행하는 제2 동작 중 적어도 하나를 포함할 수 있다. 제1 동작 시에 턴-온 되는 온-셀들의 개수를 문턱 값과 비교함으로써, 교란 또는 리텐션 열화에 의한 문턱 전압의 변화가 모니터될 수 있다. 제2 동작 시에, 턴-오프 되는 오프-셀들의 개수를 문턱 값과 비교함으로써, 교란 또는 리텐션 열화에 의한 문턱 전압의 변화가 모니터될 수 있다.
본 발명의 실시 예에 따른 스토리지 장치(100)는 신뢰성 검증 읽기 동작에 기계 학습을 적용하여 액세스 분류자를 생성할 수 있다. 액세스 분류자에 기반하여, 컨트롤러(120)는 신뢰성 검증 읽기 동작의 결과를 미리 분류(또는 예측)할 수 있다.
도 7은 신뢰성 검증 읽기 동작에 기계 학습이 적용되는 때에, 액세스 결과 정보(AI) 및 액세스 환경 정보(EI)의 예를 보여준다. 도 1, 도 2, 도 6 및 도 7을 참조하면, 신뢰성 검증 읽기 동작은 하나의 스트링 선택 라인 및 하나의 워드 라인에 대응하는 각 페이지의 단위로 수행될 수 있다.
액세스 환경 정보 수집 모듈(123_2)은 액세스 환경 정보(EI)로서 목표 블록, 목표 스트링 선택 라인, 목표 워드 라인, 온도, 타임 스탬프, 프로그램 및 소거 횟수, 그리고 읽기 카운트 중 적어도 하나를 수집할 수 있다.
목표 블록은 신뢰성 검증 읽기 동작이 수행되는 메모리 블록의 어드레스 또는 전체 메모리 블록들(BLK1~BLKz)에서 목표 블록의 위치, 예를 들어 중앙에 위치하는지 외곽에 위치하는지에 대한 정보를 포함할 수 있다.
목표 스트링 선택 라인은 신뢰성 검증 읽기 동작이 수행되는 페이지에 대응하는 스트링 선택 라인의 어드레스 또는 목표 블록에서 스트링 선택 라인의 위치, 예를 들어 제1 스트링 선택 라인들(SSL1)에 더 가까운지 또는 제4 스트링 선택 라인들(SSL4)에 더 가까운지에 대한 정보를 포함할 수 있다.
목표 워드 라인은 신뢰성 검증 읽기 동작이 수행되는 페이지에 연결된 워드 라인의 어드레스 또는 목표 블록에서 워드 라인의 위치, 예를 들어 워드 라인의 기판(SUB)으로부터의 높이에 대한 정보를 포함할 수 있다.
온도는 컨트롤러(120)가 불휘발성 메모리 장치(110)에 대해 신뢰성 검증 읽기 동작을 수행한 때의 온도를 가리킨다.
타임 스탬프는 신뢰성 검증 읽기 동작이 수행되는 페이지에 데이터가 기입된 시간 또는 데이터가 기입된 후 경과한 시간을 가리킨다.
프로그램 및 소거 횟수는 목표 블록에서 프로그램 및 소거가 수행된 횟수를 가리킨다.
읽기 카운트는 목표 블록에 데이터가 기입된 후에 읽기 동작이 수행된 횟수를 가리킨다.
정보 수집 모듈(123_1)은 액세스 결과 정보(AI)로서 제1 읽기 전압(VR1)에 대한 온-셀들의 수가 문턱 값보다 큰 지에 대한 정보, 그리고 제2 읽기 전압(VR2)에 대한 오프-셀들의 수가 문턱 값보다 큰 지에 대한 정보 중 적어도 하나를 수집할 수 있다. 예를 들어, 온-셀들에 대한 문턱 값과 오프-셀들에 대한 문턱 값은 서로 다를 수 있다.
액세스 환경 정보(EI) 및 액세스 결과 정보(AI)가 수집되면, 기계 학습을 통해 액세스 분류자(CF)가 생성될 수 있다. 액세스 분류자(CF)가 생성된 후에, 컨트롤러(120)가 불휘발성 메모리 장치(110)에 대한 신뢰성 검증 읽기 동작을 수행하고자 할 때, 신뢰성 검증 읽기 동작을 수행하기 전에 액세스 분류자(CF)를 이용하여 결과를 미리 예측할 수 있다. 예를 들어, 액세스 환경 정보 수집 모듈(123_2)은 수행될 액세스와 연관된 환경 정보(EI)를 수집할 수 있다. 환경 정보(EI) 및 액세스 분류자(CF)를 이용하여, 분류 모듈(123_4)은 분류 결과(CR)를 획득할 수 있다.
분류 결과(CR)는 신뢰성 검증 읽기 동작이 수행된다면, 제1 읽기 전압(VR1)에 대한 온-셀들의 수가 문턱 값보다 클지, 그리고 제2 읽기 전압(VR2)에 대한 오프-셀들의 수가 문턱 값보다 클 지에 대한 정보 중 적어도 하나를 포함할 수 있다.
도 8은 분류 결과(CR)를 획득한 후에, 분류 결과(CR)와 연관된 신뢰성 검증 읽기 동작을 처리하는 방법의 예를 보여준다. 도 1, 도 6 및 도 8을 참조하면, S310 단계에서, 분류 결과(CR)가 문턱 값보다 큼을 가리키는지 판별된다. 예를 들어, 컨트롤러(120) 또는 코어들(122)은 제1 읽기 전압(VR1)에 대한 온-셀들의 개수 및 제2 읽기 전압(VR2)에 대한 온-셀들의 개수 중 하나 또는 이들 모두가 문턱 값보다 큰 지 판별한다.
분류 결과(CR)가 문턱 값보다 큼을 가리키면, S320 단계에서 컨트롤러(120) 또는 코어들(122)은 액세스 분류(즉 신뢰성 검증 읽기 동작)의 대상이 된 페이지 또는 페이지가 속한 메모리 블록의 읽기 리클레임을 스케줄할 수 있다. 예를 들어, 읽기 리클레임은 불휘발성 메모리 장치(110)의 페이지 또는 메모리 블록의 데이터를 읽고, 읽혀진 데이터를 불휘발성 메모리 장치(110)의 다른 페이지 또는 메모리 블록에 기입하는 것을 포함한다. 읽기 리클레임이 수행되면, 데이터에 가해진 교란 및 리텐션 열화가 제거된다.
분류 결과(CR)가 문턱 값보다 크지 않음을 가리키면, S330 단계가 수행된다. S330 단계에서, 컨트롤러(120)는 액세스 분류가 수행된 페이지에 대해 신뢰성 검증 읽기 동작을 수행할 수 있다. S340 단계에서, 컨트롤러(120)는 제1 읽기 전압(VR1)에 대한 온-셀들 또는 제2 읽기 전압(VR2)에 대한 오프-셀들의 수를 카운트할 수 있다. 또는, 컨트롤러(120)는 온-셀들 또는 오프-셀들의 수를 카운트하여 출력하도록 불휘발성 메모리 장치(110)를 제어할 수 있다.
S350 단계에서, 컨트롤러(120)는 온-셀들 또는 오프-셀들의 카운트가 문턱 값보다 큰 지 판별한다. 카운트가 문턱 값보다 크면 S360 단계 및 S370 단계가 수행된다. 카운트가 문턱 값보다 크지 않으면, S360 단계가 수행되지 않고 S370 단계가 수행된다.
S360 단계에서 컨트롤러(120)는 신뢰성 검증 읽기 동작이 수행된 페이지 또는 페이지가 속한 메모리 블록의 읽기 리클레임을 스케줄할 수 있다. S370 단계에서, 컨트롤러(120) 또는 코어들(123)은 액세스 결과 정보(AI) 및 액세스 환경 정보(EI)를 수집할 수 있다.
요약하면, 코어들(122)은 내부 정책에 따라 불휘발성 메모리 장치(110)의 목표 블록의 목표 페이지에 대한 신뢰성 검증 읽기 동작을 수행하고자 할 수 있다. 코어들(122)은 실제 신뢰성 검증 읽기 동작을 수행하기 전에, 분류 결과(CR)를 코어들(123)에 요청할 수 있다. 코어들(123)은 목표 페이지와 연관된 액세스 환경 정보(EI)를 수집하고, 이에 따라 분류 결과(CR)를 출력할 수 있다. 분류 결과(CR)는 온-셀들 또는 오프-셀들이 문턱 값보다 큰지의 여부를 가리킨다.
분류 결과(CR)가 문턱 값보다 큼을 가리키면, 즉 메모리 셀들의 데이터가 문턱 값보다 많이 교란 또는 열화된 것으로 예측되면, 코어들(122)은 실제 신뢰성 검증 읽기 동작을 수행하지 않고 읽기 리클레임을 스케줄한다. 신뢰성 검증 읽기 동작은 수행되지 않고 종료될 수 있다. 도 2의 제1 화살표(A1)로 표시된 바와 같이, 실제 신뢰성 검증 읽기 동작이 수행되지 않은 때에, 관련 정보는 수집되지 않는다.
분류 결과(CR)가 문턱 값보다 크지 않음을 가리키면, 즉 메모리 셀들의 데이터가 문턱 값보다 많이 교란되거나 열화되지 않은 것으로 예측되면, 코어들(122)은 실제 신뢰성 검증 읽기 동작을 수행하도록 불휘발성 메모리 장치(110)를 제어할 수 있다. 코어들(122)은 실제 신뢰성 검증 읽기 동작의 결과에 따라, 읽기 리클레임을 스케줄할 지를 결정할 수 있다. 도 2의 제2 화살표(A2)로 표시된 바와 같이, 실제 신뢰성 검증 읽기 동작이 수행된 때에, 액세스 결과 정보(AI) 및 액세스 환경 정보(EI)가 수집될 수 있다.
도 9는 읽기 동작, 쓰기 동작, 또는 소거 동작에 기계 학습이 적용되는 때에, 액세스 결과 정보(AI) 및 액세스 환경 정보(EI)의 예를 보여준다. 도 1, 도 2, 도 4 및 도 9를 참조하면, 읽기 동작, 쓰기 동작, 또는 소거 동작과 연관된 액세스 환경 정보(EI)는 목표 블록, 목표 스트링 선택 라인, 목표 워드 라인, 목표 논리 페이지, 온도, 타임 스탬프, 프로그램 및 소거 횟수, 그리고 읽기 카운트 중 적어도 하나를 포함한다. 목표 논리 페이지를 제외하면, 액세스 환경 정보(EI)는 도 7에 도시된 액세스 환경 정보(EI)와 동일하다. 따라서, 중복되는 정보에 대한 설명은 생략된다.
목표 논리 페이지는 목표 페이지에서 목표 논리 페이지가 최하위 비트(LSB), 중간 비트(CSB) 및 최상위 비트(MSB) 중 어느 것에 속하는지에 대한 정보를 포함할 수 있다.
예시적으로, 쓰기 동작은 페이지의 단위로 또는 논리 페이지의 단위로 수행될 수 있다. 쓰기 동작이 페이지의 단위로 수행될 때에, 쓰기 동작과 연관된 액세스 환경 정보(EI)는 도 9에 도시된 액세스 환경 정보(EI) 중에서 목표 논리 페이지를 제외한 적어도 하나를 포함할 수 있다. 쓰기 동작이 논리 페이지의 단위로 수행될 때에, 쓰기 동작과 연관된 액세스 환경 정보(EI)는 도 9에 도시된 액세스 환경 정보(EI) 중 적어도 하나를 포함할 수 있다. 읽기 동작은 논리 페이지의 단위로 수행될 수 있다. 읽기 동작과 연관된 액세스 환경 정보(EI)는 도 9에 도시된 액세스 환경 정보(EI) 중에서 목표 논리 페이지를 제외한 적어도 하나를 포함할 수 있다. 소거 동작은 메모리 블록의 단위로 수행될 수 있다. 소거 동작과 연관된 액세스 환경 정보(EI)는 도 9에 도시된 액세스 환경 정보(EI) 중에서 목표 논리 페이지, 목표 워드 라인 및 목표 스트링 선택 라인을 제외한 적어도 하나를 포함할 수 있다.
읽기 동작, 쓰기 동작, 또는 소거 동작과 연관된 액세스 결과 정보(AI)는 읽기 레벨, 읽기 패스 레벨, 연판정을 수행할지의 여부, 비트 에러율(BER), 프로그램 시작 레벨, 프로그램 증가 레벨, 프로그램 패스 레벨, 프로그램 루프들의 수, 소거 시작 레벨, 소거 증가 레벨, 소거 루프들의 수 중 적어도 하나를 포함할 수 있다.
읽기 동작과 연관되어 수집되는 액세스 결과 정보(AI)는 읽기 레벨, 읽기 패스 레벨, 연판정을 수행할지의 여부, 그리고 비트 에러율(BER)을 포함할 수 있다. 읽기 레벨은 읽기 대상으로 선택된 페이지에 워드 라인을 통해 인가되는 읽기 전압의 레벨을 가리킨다. 읽기 패스 레벨은 읽기 대상으로 선택된 메모리 블록에서 읽기 대상으로 선택되지 않은 페이지들에 대응하는 워드 라인들에 공급되는 읽기 패스 전압의 레벨을 가리킨다. 연판정을 수행할지의 여부는 선택된 페이지에 대해 복수회의 읽기들을 수행하여 복수의 읽기 결과들을 획득하고, 복수의 읽기 결과들을 이용하여 연판정을 수행하는 동작을 활성화할지의 여부를 가리킨다. 비트 에러율(BER)은 불휘발성 메모리 장치(110)로부터 읽혀진 데이터에 대해 에러 정정 블록(128)이 에러 정정 디코딩을 수행한 후에 검출되는 에러 비트들의 비율(또는 개수)을 가리킨다.
쓰기 동작과 연관되어 수집되는 액세스 결과 정보(AI)는 프로그램 시작 레벨, 프로그램 증가 레벨, 프로그램 패스 레벨, 그리고 프로그램 루프들의 개수를 포함할 수 있다. 쓰기 동작은 프로그램 루프를 반복적으로 수행함으로써 수행된다. 프로그램 시작 레벨은 쓰기 대상으로 선택된 페이지에 첫 번째 프로그램 루프에서 워드 라인을 통해 인가되는 프로그램 전압의 레벨을 가리킨다. 프로그램 증가 레벨은 프로그램 루프가 반복될 때에 프로그램 전압의 레벨이 증가하는 양을 가리킨다. 프로그램 패스 레벨은 쓰기 대상으로 선택되지 않은 페이지들에 연결된 워드 라인들에 인가되는 프로그램 패스 전압의 레벨을 가리킨다. 프로그램 루프들의 개수는 선택된 페이지의 메모리 셀들이 프로그램 완료될 때까지 반복된 프로그램 루프들의 개수를 가리킨다.
소거 동작과 연관되어 수집되는 액세스 결과 정보(AI)는 소거 시작 레벨, 소거 증가 레벨, 그리고 소거 루프들의 개수를 포함할 수 있다. 소거 동작은 소거 루프를 반복적으로 수행함으로써 수행된다. 소거 시작 레벨은 소거 대상으로 선택된 메모리 블록에 첫 번째 소거 루프에서 인가되는 소거 전압의 레벨을 가리킨다. 소거 증가 레벨은 소거 루프가 반복될 때에 소거 전압의 레벨이 증가하는 양을 가리킨다. 소거 루프들의 개수는 선택된 메모리 블록의 메모리 셀들이 소거 완료될 때까지 반복된 소거 루프들의 개수를 가리킨다.
액세스 환경 정보(EI) 및 액세스 결과 정보(AI)가 수집되면, 기계 학습을 통해 액세스 분류자(CF)가 생성될 수 있다. 액세스 분류자(CF)가 생성된 후에, 컨트롤러(120)가 불휘발성 메모리 장치(110)에 대한 쓰기 동작, 읽기 동작 또는 소거 동작을 수행하고자 할 때, 쓰기 동작, 읽기 동작 또는 소거 동작을 수행하기 전에 액세스 분류자(CF)를 이용하여 결과를 미리 예측할 수 있다. 예를 들어, 액세스 환경 정보 수집 모듈(123_2)은 수행될 액세스와 연관된 환경 정보(EI)를 수집할 수 있다. 환경 정보(EI) 및 액세스 분류자(CF)를 이용하여, 분류 모듈(123_4)은 분류 결과(CR)를 획득할 수 있다.
분류 결과(CR)는 읽기 동작을 수행할 때에 더 낮은 에러를 유발하는 읽기 레벨 및 읽기 패스 레벨, 읽기 동작을 수행할 때에 연판정을 수행하여야 하는지의 여부, 그리고 읽기 동작을 수행할 때에 예상되는 비트 에러율(BER) 중 적어도 하나를 포함할 수 있다. 컨트롤러(120)는 분류 결과(CR)에 기반하여 읽기 레벨을 선택하거나, 읽기 패스 레벨을 선택하거나, 또는 연판정을 수행할지를 결정할 수 있다. 또한, 컨트롤러(120)는 분류 결과(CR)의 비트 에러율(BER)에 기반하여, 읽기 동작을 수행할지의 여부(예를 들어 비트 에러율(BER)이 문턱 값보다 크면 읽기 동작을 수행하지 않음) 및 선택된 페이지 또는 선택된 페이지를 포함하는 메모리 블록의 읽기 리클레임을 스케줄할 지의 여부(예를 들어 비트 에러율(BER)이 문턱 값보다 크면 읽기 리클레임을 스케줄)를 결정할 수 있다.
분류 결과(CR)는 쓰기 동작을 수행할 때에 데이터의 신뢰성을 높이거나 프로그램 시간을 줄이거나 프로그램 페일을 방지할 수 있는 프로그램 시작 레벨, 프로그램 증가 레벨, 프로그램 패스 레벨, 또는 프로그램 루프들의 개수를 포함할 수 있다. 컨트롤러(120)는 분류 결과(120)에 기반하여 프로그램 시작 레벨을 선택하거나, 프로그램 증가 레벨을 선택하거나, 또는 프로그램 패스 레벨을 선택할 수 있다. 또한, 컨트롤러(120)는 분류 결과(CR)의 프로그램 루프들의 수에 기반하여, 쓰기 동작을 수행할지의 여부(예를 들어 프로그램 루프들의 수가 문턱 값보다 크면 쓰기 동작을 수행하지 않음) 또는 선택된 페이지가 속한 메모리 블록을 배드 블록으로 설정할지의 여부(예를 들어 프로그램 루프들의 수가 문턱 값보다 크면 배드 블록으로 설정)를 결정할 수 있다.
분류 결과(CR)는 소거 동작을 수행할 때에 메모리 셀들의 신뢰성을 높이거나 소거 시간을 줄이거나 소거 페일을 방지할 수 있는 소거 시작 레벨, 소거 증가 레벨, 또는 소거 루프들의 개수를 포함할 수 있다. 컨트롤러(120)는 분류 결과(120)에 기반하여 소거 시작 레벨을 선택하거나, 소거 증가 레벨을 선택할 수 있다. 또한, 컨트롤러(120)는 분류 결과(CR)의 소거 루프들의 수에 기반하여, 소거 동작을 수행할지의 여부(예를 들어 소거 루프들의 수가 문턱 값보다 크면 소거 동작을 수행하지 않음) 또는 선택된 메모리 블록을 배드 블록으로 설정할지의 여부(예를 들어 소거 루프들의 수가 문턱 값보다 크면 배드 블록으로 설정)를 결정할 수 있다.
도 10은 컨트롤러(120)가 불휘발성 메모리 장치(110)를 액세스하는 다른 예를 보여준다. 도 10의 제1 및 제2 그래프들(G1, G2)에서 가로축은 더미 메모리 셀들 또는 선택 트랜지스터들의 문턱 전압을 가리키고, 세로축은 더미 메모리 셀들 또는 선택 트랜지스터들의 개수를 가리킨다.
도 1, 도 5 및 도 10의 제1 그래프를 참조하면, 각 더미 메모리 셀 또는 선택 트랜지스터는 하나의 문턱 전압 범위에 의해 결정되는 하나의 논리 상태를 가질 수 있다. 더미 메모리 셀들은 도 5의 제1 및 제2 더미 메모리 셀들(DMC1, DMC2)을 포함할 수 있다. 선택 트랜지스터들은 도 5의 스트링 선택 트랜지스터들(SST) 및 접지 선택 트랜지스터들(GST)을 포함할 수 있다.
더미 메모리 셀들 또는 선택 트랜지스터들이 프로그램된 후에, 교란 및 리텐션(retnetion) 열화가 발생할 수 있다. 교란 및 리텐션 열화가 발생하면, 더미 메모리 셀들 또는 선택 트랜지스터들의 문턱 전압들은 제1 그래프(G1)로부터 제2 그래프(G2)로 변화할 수 있다.
더미 메모리 셀들 또는 선택 트랜지스터들의 문턱 전압 산포가 제2 그래프(G2)에 도시된 바와 같이 넓어지면, 메모리 셀들의 쓰기 동작, 읽기 동작 및 소거 동작 시에 발생하는 셀 전류들의 양들이 달라질 수 있다. 이는 메모리 셀들의 문턱 전압들을 더 분산시키며, 메모리 셀들에 기입되는 데이터의 신뢰도를 저해한다.
더미 메모리 셀들 또는 선택 트랜지스터들의 문턱 전압들이 제2 그래프(G2)와 같이 넓어지는 것을 방지하기 위하여, 더미 메모리 셀들 또는 선택 트랜지스터들의 문턱 전압들이 체크될 수 있다. 예를 들어, 더미 메모리 셀들 또는 선택 트랜지스터들의 문턱 전압들은 제1 읽기 전압(VR1) 및 제2 읽기 전압(VR2)에 의한 읽기들에 의해 수행될 수 있다. 제1 및 제2 읽기 전압들(VR1, VR2)을 이용하여 읽기들이 수행되면, 더미 메모리 셀들 또는 선택 트랜지스터들의 문턱 전압들이 제1 및 제2 읽기 전압들에 의해 정의되는 범위(RNG)를 벗어나는지 체크될 수 있다.
본 발명의 실시 예에 따른 스토리지 장치(100)는 더미 메모리 셀들 또는 선택 트랜지스터들의 문턱 전압들에 대한 체크 동작에 기계 학습을 적용하여 액세스 분류자를 생성할 수 있다. 액세스 분류자에 기반하여, 컨트롤러(120)는 체크 동작의 결과를 미리 분류(또는 예측)할 수 있다.
도 11은 체크 동작에 기계 학습이 적용되는 때에, 액세스 결과 정보(AI) 및 액세스 환경 정보(EI)의 예를 보여준다. 도 1, 도 2, 도 10 및 도 11을 참조하면, 체크 동작은 하나의 스트링 선택 라인 또는 하나의 접지 선택 라인에 대응하는 선택 트랜지스터들, 또는 하나의 스트링 선택 라인 및 하나의 워드 라인에 대응하는 더미 메모리 셀들(예를 들어 더미 페이지)의 단위로 수행될 수 있다.
액세스 환경 정보(EI)는 목표 블록, 목표 스트링 선택 라인 또는 목표 접지 선택 라인, 목표 워드 라인, 온도, 타임 스탬프, 프로그램 및 소거 횟수, 그리고 읽기 카운트 중 적어도 하나를 수집할 수 있다. 더미 메모리 셀들에 대한 액세스 환경 정보(EI)는 도 11에 도시된 액세스 환경 정보들 중 적어도 하나를 포함할 수 있다. 선택 트랜지스터들에 대한 액세스 환경 정보(EI)는 도 11에 도시된 액세스 환경 정보들 중 목표 워드 라인을 제외한 적어도 하나를 포함할 수 있다.
액세스 결과 정보(AI)는 범위(RNG) 밖의 더미 메모리 셀들 또는 선택 트랜지스터들의 개수가 문턱 값보다 큰 지에 대한 정보를 포함할 수 있다.
액세스 환경 정보(EI) 및 액세스 결과 정보(AI)가 수집되면, 기계 학습을 통해 액세스 분류자(CF)가 생성될 수 있다. 액세스 분류자(CF)가 생성된 후에, 컨트롤러(120)가 불휘발성 메모리 장치(110)에 대한 체크 동작을 수행하고자 할 때, 체크 동작을 수행하기 전에 액세스 분류자(CF)를 이용하여 결과를 미리 예측할 수 있다. 예를 들어, 액세스 환경 정보 수집 모듈(123_2)은 수행될 체크 동작과 연관된 환경 정보(EI)를 수집할 수 있다. 환경 정보(EI) 및 액세스 분류자(CF)를 이용하여, 분류 모듈(123_4)은 분류 결과(CR)를 획득할 수 있다. 분류 결과는 범위(RNG) 밖의 문턱 전압들을 갖는 더미 메모리 셀들 또는 선택 트랜지스터들의 개수가 문턱 값보다 클 지에 대한 정보를 포함할 수 있다.
도 12는 분류 결과(CR)를 획득한 후에, 분류 결과(CR)와 연관된 체크 동작을 처리하는 방법의 예를 보여준다. 도 1, 도 10 및 도 12를 참조하면, S410 단계에서, 분류 결과(CR)가 문턱 값보다 큼을 가리키는지 판별된다. 예를 들어, 컨트롤러(120) 또는 코어들(122)은 범위(RNG) 밖의 문턱 전압들을 갖는 더미 메모리 셀들 또는 선택 트랜지스터들의 개수가 문턱 값보다 큰 지 판별한다.
분류 결과(CR)가 문턱 값보다 큼을 가리키면, S420 단계에서 컨트롤러(120) 또는 코어들(122)은 액세스 분류(즉 체크 동작)의 대상이 된 선택 트랜지스터들 또는 더미 메모리 셀들이 속한 메모리 블록의 재프로그램을 스케줄할 수 있다. 예를 들어, 재프로그램은 낮아진 선택 트랜지스터들 또는 더미 메모리 셀들을 프로그램하여 이들의 문턱 전압들을 높이는 동작, 또는 선택 트랜지스터들 또는 더미 메모리 셀들을 소거하여 이들의 문턱 전압들을 낮추고 선택 트랜지스터들 또는 더미 메모리 셀들을 프로그램하여 이들의 문턱 전압들을 높이는 동작을 포함할 수 있다.
분류 결과(CR)가 문턱 값보다 크지 않음을 가리키면, S430 단계가 수행된다. S430 단계에서, 컨트롤러(120)는 선택 트랜지스터들 또는 더미 메모리 셀들의 문턱 전압들을 체크하는 체크 동작을 수행할 수 있다. S440 단계에서, 컨트롤러(120)는 범위(RNG) 밖의 문턱 전압들을 갖는 더미 메모리 셀들 또는 선택 트랜지스터들의 개수를 카운트할 수 있다. 또는, 컨트롤러(120)는 범위(RNG) 밖의 문턱 전압들을 갖는 더미 메모리 셀들 또는 선택 트랜지스터들의 개수를 카운트하여 출력하도록 불휘발성 메모리 장치(110)를 제어할 수 있다.
S450 단계에서, 컨트롤러(120)는 범위(RNG) 밖의 문턱 전압들을 갖는 더미 메모리 셀들 또는 선택 트랜지스터들의 카운트가 문턱 값보다 큰 지 판별한다. 카운트가 문턱 값보다 크면 S460 단계 및 S470 단계가 수행된다. 카운트가 문턱 값보다 크지 않으면, S460 단계가 수행되지 않고 S470 단계가 수행된다.
S460 단계에서 컨트롤러(120)는 체크 동작이 수행된 메모리 블록의 재프로그램을 스케줄할 수 있다. S470 단계에서, 컨트롤러(120) 또는 코어들(123)은 액세스 결과 정보(AI) 및 액세스 환경 정보(EI)를 수집할 수 있다.
도 13은 서브 액세스 동작의 결과를 액세스 환경 정보(EI)로 사용하여 액세스 동작의 결과를 분류하는 예를 보여준다. 예시적으로, 서브 액세스 동작은 도 6을 참조하여 설명된 신뢰성 검증 읽기 동작이고, 액세스 동작은 읽기 동작일 수 있다.
도 1, 도 2, 도 6 및 도 13을 참조하면, 액세스 환경 정보(EI)는 선택된 페이지에 대한 신뢰성 검증 읽기 동작의 제1 읽기 전압(VR1)에 대한 온-셀들의 수 및 제2 읽기 전압(VR2)에 대한 오프-셀들의 수에 대한 정보를 포함할 수 있다. 액세스 환경 정보(EI)는 목표 블록, 목표 스트링 선택 라인, 목표 워드 라인, 온도, 타임 스탬프, 프로그램 및 소거 횟수, 읽기 카운트 중 적어도 하나를 더 포함할 수 있다.
액세스 결과 정보(AI)는 선택된 페이지에 대해 읽기 동작을 수행할 때의 비트 에러율(BER)이 문턱 값을 넘는지에 대한 정보를 포함할 수 있다.
액세스 환경 정보(EI) 및 액세스 결과 정보(AI)가 수집되면, 기계 학습을 통해 액세스 분류자(CF)가 생성될 수 있다.
도 14는 도 13의 액세스 환경 정보(EI) 및 액세스 결과 정보(AI)를 이용하는 방법의 예를 보여준다. 예시적으로, 환경 정보(EI) 및 액세스 결과 정보(AI)를 이용한 분류(Classification)는 신뢰성 검증 동작의 일부로 적용될 수 있다.
도 1, 도 13 및 도 14를 참조하면, S510 단계에서, 컨트롤러(120)는 불휘발성 메모리 장치(110)에 대해 신뢰성 검증 읽기 동작을 수행할 수 있다. 신뢰성 검증 읽기 동작을 통해 획득되는 온-셀들의 수 및 오프-셀들의 수는 액세스 환경 정보(EI)로 수집될 수 있다.
신뢰성 검증 읽기 동작을 수행하는 것에 응답하여, S520 단계에서, 액세스 분류자(CF)는 수집된 환경 정보(EI)를 이용하여 분류 결과(CR)를 획득할 수 있다. 예를 들어, 분류 모듈(123_4)은 선택된 페이지에 대해 신뢰성 검증 읽기 동작이 아닌 읽기 동작을 수행할 때에 발생하는 비트 에러율(BER)을 예측(또는 분류)할 수 있다. 분류 결과(CR)는 비트 에러율이 문턱 값보다 큰 지에 대한 정보를 포함할 수 있다.
S530 단계에서, 분류 결과(CR)가 문턱 값보다 큼을 가리키는지 판별된다. 분류 결과(CR)가 문턱 값보다 크지 않음을 가리키면, 신뢰성 검증 읽기 동작이 종료된다. 분류 결과(CR)가 문턱 값보다 큼을 가리키면, S540 단계에서 컨트롤러(120)는 신뢰성 검증 읽기의 대상으로 선택된 페이지 또는 선택된 페이지를 포함하는 메모리 블록의 읽기 리클레임을 스케줄할 수 있다.
도 6 내지 도 8의 실시 예와 도 13 및 도 14의 실시 예를 비교하면, 도 6 내지 도 8의 실시 예는 신뢰성 검증 읽기 동작을 수행하기 전에 액세스 환경 정보(EI)를 이용하여 신뢰성 검증 읽기 동작을 수행할지의 여부를 판별한다. 읽기 리클레임을 스케줄할 지의 여부는 온-셀들의 수 또는 오프-셀들의 수를 문턱 값과 단순 비교함으로써 수행된다.
도 13 및 도 14의 실시 예는 신뢰성 검증 읽기 동작을 수행하되, 신뢰성 검증 읽기 동작의 결과를 액세스 환경 정보로 사용한다. 신뢰성 검증 읽기 동작 시에, 액세스 환경 정보(EI)에 기반하여 읽기 동작이 수행될 때의 비트 에러율(BER)이 분류(또는 예측)되고, 비트 에러율을 문턱 값과 비교하여 읽기 리클레임의 스케줄 여부가 결정된다. 즉, 분류는 신뢰성 검증 읽기 동작을 수행한 후에 읽기 리클레임을 수행할 지를 결정하는 데에 사용된다.
예시적으로, 신뢰성 검증 읽기 동작은 읽기 동작이 수행됨에 따라 주기적으로 또는 랜덤하게 수행될 수 있다. 신뢰성 검증 읽기 동작의 결과 및 신뢰성 검증 읽기 동작에 대응하는 읽기 동작의 결과는 액세스 환경 정보로서 수집될 수 있다.
도 15는 기계 학습에 의해 생성되는 액세스 분류자(CF1)의 예를 보여준다. 예시적으로, 액세스 분류자(CF1)는 결정 나무(Decision Tree)일 수 있다. 도 1 및 도 15를 참조하면, 액세스 분류자(CF2)는 루트 노드(RN), 제1 내지 제4 내부 노드들(IN1~IN4), 그리고 제1 내지 제6 잎 노드들(LN1~LN6)을 포함한다. 루트 노드(RN), 제1 내지 제4 내부 노드들(IN1~IN4), 그리고 제1 내지 제6 잎 노드들(LN1~LN6)은 각각 가지들을 통해 연결될 수 있다.
루트 노드(RN) 및 제1 내지 제4 내부 노드들(IN1~IN4) 각각에서, 액세스 환경 정보(EI) 중 하나에 대한 비교가 수행될 수 있다. 비교 결과에 따라, 각 노드에 연결된 복수의 가지들 중 하나가 선택된다. 선택된 가지에 다른 내부 노드가 연결되어 있으면, 내부 노드에서 액세스 환경 정보(EI) 중 다른 하나에 대한 비교가 수행될 수 있다. 선택된 가지에 잎 노드가 연결되어 있으면, 잎 노드의 값이 분류 결과(CR)로 획득된다. 예시적으로, 액세스 환경 정보(EI) 중에서 가장 선택도가 높은 정보가 루트 노드(EN)에서 비교될 수 있다.
수집된 정보에 기반한 기계 학습은 루트 노드(RN) 및 제1 내지 제4 내부 노드들(IN1~IN4) 각각에서 액세스 환경 정보(EI)가 비교되는 비교 값을 결정하는 것을 포함할 수 있다.
스토리지 장치(100)가 제조 후 판매될 때에, 스토리지 장치(100)에 초기 액세스 분류자(CF1)가 탑재될 수 있다. 예를 들어, 초기 액세스 분류자(CF1)는 스토리지 장치(100)의 제조자에 의해 다수의 사용자들로부터 수집된 액세스 결과 정보(AI) 및 액세스 환경 정보(EI)에 기반하여 생성될 수 있다. 초기 액세스 분류자(CF1)는 이미 수집된 정보에 의해 생성되는 관점에서 '오프-라인' 학습에 의해 생성되는 것으로 여겨질 수 있다.
스토리지 장치(100)가 판매되고 사용자에 의해 사용되는 동안, 사용자의 액세스 환경 정보(EI) 및 액세스 결과 정보(AI)에 의해 액세스 분류자(CF1)가 지속적으로 갱신될 수 있다. 액세스 분류자(CF1)를 갱신하는 것은 루트 노드(RN) 및 제1 내지 제4 내부 노드들(IN1~IN4) 각각에서 액세스 환경 정보(EI)가 비교되는 비교 값을 갱신하는 기계 학습에 의해 수행될 수 있다. 스토리지 장치(100)가 판매된 후에 사용자에 의한 실시간 액세스 결과 정보(AI) 및 액세스 환경 정보(EI)를 이용하여 액세스 분류자(CF1)가 갱신되므로, 액세스 분류자(CF1)는 '온-라인' 학습에 의해 갱신될 수 있다.
도 16은 기계 학습에 의해 생성되는 액세스 분류자(CF2)의 다른 예를 보여준다. 예시적으로, 액세스 분류자(CF2)는 신경망(Neural Network)일 수 있다. 도 1 및 도 16을 참조하면, 액세스 분류자(CF2)는 제1 내지 제4 입력 노드들(IN1~IN4), 제1 내지 제10 히든 노드들(HN1~HN10), 그리고 출력 노드(ON)를 포함한다. 입력 노드들의 개수, 히든 노드들의 개수, 그리고 출력 노드의 개수는 신경망을 구성할 때에 미리 결정될 수 있다.
제1 내지 제4 입력 노드들(IN1~IN4)은 입력 레이어를 형성한다. 제1 내지 제5 히든 노드들(HN1~HN5)은 제1 히든 레이어를 형성한다. 제6 내지 제10 히든 노드들(HN6~HN10)은 제2 히든 레이어를 형성한다. 출력 노드(ON)는 출력 레이어를 형성한다. 히든 레이어들의 개수는 신경망을 구성할 때에 미리 결정될 수 있다.
제1 내지 제4 입력 노드들에 액세스 환경 정보(EI)가 입력될 수 있다. 서로 다른 입력 노드들에 서로 다른 종류의 액세스 환경 정보가 입력될 수 있다. 각 입력 노드의 액세스 환경 정보(EI)는 가중치들을 갖고 제1 히든 레이어의 제1 내지 제5 히든 노드들(HN1~HN5)로 전달된다. 제1 내지 제5 히든 노드들(HN1~HN5) 각각의 입력은 가중치들을 갖고 제2 히든 레이어의 제6 내지 제10 히든 노드들(HN6~HN10)로 전달된다. 제6 내지 제10 히든 노드들(HN6~HN10)의 입력들은 가중치들을 갖고 출력 노드(ON)로 전달된다.
기계 학습은 제1 내지 제4 입력 노드들(IN1~IN4)에 액세스 환경 정보(EI)를 입력한 때에 획득되는 출력 노드(ON)의 값 및 실제 액세스를 수행한 때에 획득되는 액세스 결과 정보(AI)의 차이에 따라 가중치들을 갱신하는 것을 반복함으로써 수행될 수 있다.
오프-라인 학습에 의해 신경망 기반의 초기 액세스 분류자(CF2)가 생성되고, 스토리지 장치(100)에 탑재될 수 있다. 사용자가 스토리지 장치(100)를 사용함에 따라, 온-라인 학습에 의해 신경망 기반의 액세스 분류자(CF2)가 갱신될 수 있다.
도 17은 기계 학습에 의해 생성되는 액세스 분류자(CF)의 또 다른 예의 생성 방법을 보여준다. 예시적으로, 액세스 분류자(CF)는 지원 벡터 기계(Support Vector Machine)일 수 있다. 도 17에서, 가로축(x) 및 세로축(y)은 각각 액세스 환경 정보(EI)를 가리킨다. 도 17에 분포된 샘플들의 형태들(사각형 및 원형)은 서로 다른 액세스 결과 정보(AI)를 가리킨다.
도 1 및 도 17을 참조하면, 사각 샘플들(SQ) 및 원형 샘플들(CR)을 분류하는 데에는 A 라인 및 B 라인 모두가 유용하게 사용될 수 있다. 그러나 차후 수집되는 샘플들의 가능성을 고려하면, B 라인보다는 A 라인이 더 큰 마진을 갖는다. 액세스 분류자(CF)는 A 라인과 같이 더 큰 마진을 갖는 분류 기준을 선택할 수 있다.
액세스 분류자(CF)는 오프-라인 학습을 통해 초기 분류 기준을 가질 수 있다. 사용자가 스토리지 장치(100)를 사용함에 따라 샘플들의 개수가 증가되고, 액세스 분류자(CF)은 온-라인 학습을 통해 분류 기준을 갱신할 수 있다.
도 18은 도 1의 스토리지 장치(100)의 응용 예를 보여준다. 도 1 및 도 18을 참조하면, 스토리지 장치(200)는 불휘발성 메모리 장치(210), 컨트롤러(220), 버퍼 메모리(230), 그리고 기계 학습을 위한 프로세싱 유닛(240)을 포함한다. 프로세싱 유닛(240)은 마이크로 프로세싱 유닛(MPU) 또는 그래픽 프로세싱 유닛(GPU)일 수 있다.
컨트롤러(220)는 버스(221), 코어들(222), 외부 인터페이스(223), 랜덤 액세스 메모리(RAM)(224), 호스트 인터페이스(225), 버퍼 제어 회로(226), 그리고 에러 정정 블록(228)을 구비한 메모리 인터페이스(227)를 포함한다.
컨트롤러(220)의 코어들(220)은 기계 학습을 수행하는 데에 사용되지 않을 수 있다. 컨트롤러(220)는 컨트롤러(220)의 외부에 별도로 제공되는 프로세싱 유닛(240)과 통신하기 위한 외부 인터페이스(223)를 포함할 수 있다. 코어들(222)은 외부 인터페이스(223)를 통해 프로세싱 유닛(240)에 기계 학습을 요청할 수 있다. 또한, 코어들(222)은 외부 인터페이스(223)를 통해 프로세싱 유닛(240)에 분류 결과(CR)를 요청할 수 있다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.
100; 스토리지 장치
110; 불휘발성 메모리
BLK1~BLKz; 메모리 블록들
120; 컨트롤러
121; 버스
122; 코어들
123; 기계 학습을 위한 코어들
124; 랜덤 액세스 메모리
125; 호스트 인터페이스
126; 버퍼 제어 회로
127; 메모리 인터페이스
128; 에러 정정 블록
130; 버퍼 메모리

Claims (20)

  1. 불휘발성 메모리 장치;
    버퍼 메모리; 그리고
    상기 버퍼 메모리를 이용하여 상기 불휘발성 메모리 장치에 대해 제1 액세스들을 수행하고, 상기 제1 액세스들의 액세스 결과 정보 및 액세스 환경 정보를 상기 버퍼 메모리에 수집하고, 상기 버퍼 메모리에 수집된 상기 액세스 결과 정보 및 상기 액세스 환경 정보에 기반하여 기계 학습을 수행하여 상기 불휘발성 메모리 장치에 대한 제2 액세스의 결과를 예측하는 액세스 분류자(classifier)를 생성하는 컨트롤러를 포함하는 스토리지 장치.
  2. 제1항에 있어서,
    상기 액세스 분류자를 생성할 때에, 상기 컨트롤러는 상기 액세스 결과 정보, 상기 액세스 환경 정보에 기반하여 기존의 액세스 분류자를 갱신하는 스토리지 장치.
  3. 제1항에 있어서,
    상기 컨트롤러는 시간 주기가 도달한 때에, 상기 수집된 액세스 결과 정보 및 상기 액세스 환경 정보가 미리 정해진 사이즈에 도달할 때에, 유휴 시간에, 전원 오프가 감지될 때에, 그리고 상기 버퍼 메모리의 저장 용량이 부족할 때 중 적어도 하나의 때에 상기 기계 학습을 수행하는 스토리지 장치.
  4. 제1항에 있어서,
    상기 기계 학습을 수행한 후에, 상기 컨트롤러는 상기 기계 학습에 반영된 상기 수집된 액세스 결과 정보 및 상기 액세스 환경 정보를 상기 버퍼 메모리로부터 해제하는 스토리지 장치.
  5. 제1항에 있어서,
    상기 제1 액세스들 및 상기 제2 액세스 각각은 상기 불휘발성 메모리 장치의 메모리 셀들에 저장된 데이터의 신뢰성을 체크하는 신뢰성 검증 읽기이고,
    상기 신뢰성 검증 읽기는 상기 불휘발성 메모리 장치의 메모리 셀들 중 신뢰성 검증 읽기의 대상으로 선택된 메모리 셀들에서 제1 읽기 전압보다 낮은 문턱 전압을 갖는 제1 메모리 셀들의 수 또는 제2 읽기 전압보다 높은 문턱 전압을 갖는 제2 메모리 셀들의 수를 문턱 값과 비교하는 것을 포함하는 스토리지 장치.
  6. 제5항에 있어서,
    상기 액세스 분류자는 상기 제2 액세스를 수행하기 전에, 상기 제2 액세스와 연관된 환경 정보에 기반하여 상기 제2 액세스를 수행한 때에 상기 제1 메모리 셀들의 수 또는 상기 제2 메모리 셀들의 수가 상기 문턱 값보다 큰지 예측하는 스토리지 장치.
  7. 제6항에 있어서,
    상기 제1 메모리 셀들의 수 또는 상기 제2 메모리 셀들의 수가 상기 문턱 값 이상일 것으로 예측되면, 상기 컨트롤러는 상기 선택된 메모리 셀들에 대한 읽기 리클레임을 스케줄하는 스토리지 장치.
  8. 제6항에 있어서,
    상기 제1 메모리 셀들의 수 또는 상기 제2 메모리 셀들의 수가 상기 문턱 값보다 작을 것으로 예측되면, 상기 컨트롤러는 상기 선택된 메모리 셀들에 대해 상기 제2 액세스를 수행하는 스토리지 장치.
  9. 제8항에 있어서,
    상기 컨트롤러는 상기 제2 액세스의 액세스 결과 정보 및 액세스 환경 정보를 상기 버퍼 메모리에 수집하는 스토리지 장치.
  10. 제1항에 있어서,
    상기 컨트롤러는 상기 예측된 결과에 따라 상기 제2 액세스와 연관된 액세스 파라미터들을 조절하고, 상기 조절된 파라미터들에 따라 상기 제2 액세스를 수행하도록 상기 불휘발성 메모리 장치를 제어하는 스토리지 장치.
  11. 제10항에 있어서,
    상기 액세스 파라미터들은 읽기 레벨, 읽기 패스 레벨, 연판정을 수행할지의 여부, 비트 에러율, 프로그램 시작 레벨, 프로그램 증가 레벨, 프로그램 패스 레벨, 프로그램 루프들의 횟수, 소거 시작 레벨, 소거 증가 레벨, 그리고 소거 루프들의 횟수 중 적어도 하나를 포함하는 스토리지 장치.
  12. 제1항에 있어서,
    상기 제1 액세스들 및 상기 제2 액세스 각각은 상기 불휘발성 메모리 장치의 더미 메모리 셀들 또는 선택 트랜지스터들의 문턱 전압들을 체크하는 읽기이고,
    상기 읽기는 상기 읽기의 대상으로 선택된 더미 메모리 셀들 또는 선택된 선택 트랜지스터들 중 제1 및 제2 읽기 전압들에 의해 정의되는 범위 밖의 문턱 전압들을 갖는 제1 더미 메모리 셀들 또는 제1 선택 트랜지스터들의 수를 문턱 값과 비교하는 것을 포함하는 스토리지 장치.
  13. 제12항에 있어서,
    상기 제1 더미 메모리 셀들 또는 상기 제1 선택 트랜지스터들의 수가 상기 문턱 값 이상일 것으로 예측되면, 상기 컨트롤러는 상기 선택된 더미 메모리 셀들 또는 상기 선택된 선택 트랜지스터들에 대한 재프로그램을 스케줄하는 스토리지 장치.
  14. 제1항에 있어서,
    상기 제2 액세스는 제1 메모리 셀들에 대한 복수의 읽기 전압들을 이용한 읽기 동작을 포함하고,
    상기 제1 액세스들 각각은 제2 메모리 셀들에 대한 상기 복수의 읽기 전압들보다 적은 수의 읽기 전압들을 이용한 읽기 동작을 포함하고,
    상기 액세스 환경 정보는 상기 제2 메모리 셀들에 대해 상기 읽기 동작이 수행된 때의 비트 에러율을 포함하고,
    상기 컨트롤러는 상기 제1 메모리 셀들에 대해 서브 읽기 동작을 수행하고, 그리고 상기 액세스 환경 정보, 상기 액세스 결과 정보 및 상기 제1 메모리 셀들에 대한 상기 서브 읽기 동작의 결과에 따라 상기 제2 액세스의 비트 에러율이 문턱 값보다 큰 지를 예측하는 스토리지 장치.
  15. 제1항에 있어서,
    상기 액세스 환경 정보는 상기 제1 액세스들 각각의 목표 메모리 블록, 목표 스트링 선택 트랜지스터, 목표 워드 라인, 목표 워드 라인의 높이, 온도, 타임 스탬프, 프로그램 및 소거 횟수, 읽기 카운트, 목표 논리 페이지, 그리고 상기 제1 액세스들과 각각 연관되는 서브 액세스들의 액세스 결과들 중 적어도 하나를 포함하는 스토리지 장치.
  16. 제1항에 있어서,
    상기 컨트롤러는 복수의 코어들을 포함하고,
    상기 복수의 코어들 중 일부는 상기 스토리지 장치를 관리하는 데에 사용되고, 상기 복수의 코어들 중 나머지 일부는 상기 기계 학습을 수행하는 데에 사용되는 스토리지 장치.
  17. 제1항에 있어서,
    상기 컨트롤러 외부의 프로세싱 유닛을 더 포함하고,
    상기 컨트롤러는 상기 기계 학습을 수행할 것을 상기 외부의 프로세싱 유닛에 요청하는 스토리지 장치.
  18. 제1항에 있어서,
    상기 컨트롤러는 상기 액세스 분류자를 상기 불휘발성 메모리 장치의 메타 영역에 백업하는 스토리지 장치.
  19. 불휘발성 메모리 장치;
    버퍼 메모리;
    상기 버퍼 메모리를 이용하여 상기 불휘발성 메모리 장치에 대해 제1 액세스들을 수행하는 컨트롤러; 그리고
    상기 제1 액세스들의 액세스 결과 정보 및 액세스 환경 정보를 상기 버퍼 메모리에 수집하고, 상기 버퍼 메모리에 수집된 상기 액세스 결과 정보 및 상기 액세스 환경 정보에 기반하여 기계 학습을 수행하여 상기 불휘발성 메모리 장치에 대한 제2 액세스의 결과를 예측하는 액세스 분류자(classifier)를 생성하는 프로세싱 유닛을 포함하고,
    상기 컨트롤러가 상기 불휘발성 메모리 장치에 대한 제2 액세스를 수행할 때에, 상기 프로세싱 유닛은 상기 액세스 분류자를 이용하여 상기 제2 액세스의 결과를 예측하는 스토리지 장치.
  20. 불휘발성 메모리 장치의 액세스 방법에 있어서:
    상기 불휘발성 메모리 장치에 대해 제1 액세스들을 수행하고, 상기 제1 액세스들의 액세스 결과 정보 및 액세스 환경 정보를 수집하는 단계;
    상기 수집된 액세스 결과 정보 및 상기 액세스 환경 정보에 기반하여 기계 학습을 수행하여 액세스 분류자를 생성하는 단계; 그리고
    상기 불휘발성 메모리 장치에 대해 제2 액세스를 수행하기 전에, 상기 제2 액세스의 액세스 환경 정보 및 상기 액세스 분류자를 이용하여 상기 제2 액세스의 결과를 예측하는 단계를 포함하는 액세스 방법.
KR1020160114495A 2016-09-06 2016-09-06 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법 KR102696971B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160114495A KR102696971B1 (ko) 2016-09-06 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
US15/605,404 US10013211B2 (en) 2016-09-06 2017-05-25 Storage devices including nonvolatile memory devices and access methods for nonvolatile memory devices
CN201710790427.XA CN107797935B (zh) 2016-09-06 2017-09-05 存储装置和用于非易失性存储器装置的访问方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160114495A KR102696971B1 (ko) 2016-09-06 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법

Publications (2)

Publication Number Publication Date
KR20180027710A true KR20180027710A (ko) 2018-03-15
KR102696971B1 KR102696971B1 (ko) 2024-08-21

Family

ID=

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190137375A (ko) * 2018-06-01 2019-12-11 삼성전자주식회사 비휘발성 메모리 장치의 데이터 소거 방법 및 이를 수행하는 비휘발성 메모리 장치
KR20200040350A (ko) * 2018-10-08 2020-04-20 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR20200057827A (ko) * 2018-11-14 2020-05-27 삼성전자주식회사 인공 신경망 모델에 기초하여 읽기 레벨들을 추론하는 스토리지 장치 및 인공 신경망 모델의 학습 방법
CN112732594A (zh) * 2019-10-14 2021-04-30 美光科技公司 具有用来执行机器学习操作的内部逻辑的存储器子系统
US11036426B2 (en) 2019-05-10 2021-06-15 SK Hynix Inc. Memory controller and method of operating the same

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190137375A (ko) * 2018-06-01 2019-12-11 삼성전자주식회사 비휘발성 메모리 장치의 데이터 소거 방법 및 이를 수행하는 비휘발성 메모리 장치
KR20200040350A (ko) * 2018-10-08 2020-04-20 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR20200057827A (ko) * 2018-11-14 2020-05-27 삼성전자주식회사 인공 신경망 모델에 기초하여 읽기 레벨들을 추론하는 스토리지 장치 및 인공 신경망 모델의 학습 방법
US11036426B2 (en) 2019-05-10 2021-06-15 SK Hynix Inc. Memory controller and method of operating the same
CN112732594A (zh) * 2019-10-14 2021-04-30 美光科技公司 具有用来执行机器学习操作的内部逻辑的存储器子系统

Also Published As

Publication number Publication date
CN107797935A (zh) 2018-03-13
US10013211B2 (en) 2018-07-03
CN107797935B (zh) 2023-02-21
US20180067697A1 (en) 2018-03-08

Similar Documents

Publication Publication Date Title
KR102656190B1 (ko) 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
CN107797935B (zh) 存储装置和用于非易失性存储器装置的访问方法
KR102599123B1 (ko) 인공 신경망 모델에 기초하여 읽기 레벨들을 추론하는 스토리지 장치 및 인공 신경망 모델의 학습 방법
EP3637421B1 (en) Storage device and operating method of storage device
KR102435873B1 (ko) 스토리지 장치 및 그것의 리드 리클레임 방법
US9224483B2 (en) Nonvolatile memory device, system and programming method with dynamic verification mode selection
KR102634700B1 (ko) 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법
KR102128406B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
CN106971754B (zh) 非易失性存储器设备、包括其的存储装置和操作其的方法
KR102294848B1 (ko) 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치
US20140043901A1 (en) Nonvolatile memory device and operating method with variable memory cell state definitions
KR102267046B1 (ko) 스토리지 장치 및 배드 블록 지정 방법
KR102599117B1 (ko) 블록들의 온 셀 카운트들을 모니터링하고 저장하는 스토리지 장치 및 그것의 동작 방법
KR102451154B1 (ko) 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 동작 방법
US11430523B2 (en) Storage device and method for operating the same
US11693596B2 (en) Pre-emptive storage strategies to reduce host command collisions
US20230195324A1 (en) Storage device
KR101565974B1 (ko) 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템
KR20230090598A (ko) 히스토리 데이터를 사용하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법
KR102696971B1 (ko) 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
KR102491652B1 (ko) 산포 타입을 결정하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법
CN118363522A (zh) 存储设备和存储设备的操作方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant