KR102634338B1 - 스토리지 장치 및 스토리지 장치의 동작 방법 - Google Patents

스토리지 장치 및 스토리지 장치의 동작 방법 Download PDF

Info

Publication number
KR102634338B1
KR102634338B1 KR1020180120029A KR20180120029A KR102634338B1 KR 102634338 B1 KR102634338 B1 KR 102634338B1 KR 1020180120029 A KR1020180120029 A KR 1020180120029A KR 20180120029 A KR20180120029 A KR 20180120029A KR 102634338 B1 KR102634338 B1 KR 102634338B1
Authority
KR
South Korea
Prior art keywords
test
memory
machine learning
read operation
controller
Prior art date
Application number
KR1020180120029A
Other languages
English (en)
Other versions
KR20200040350A (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 KR1020180120029A priority Critical patent/KR102634338B1/ko
Priority to US16/416,750 priority patent/US10802728B2/en
Priority to EP19193482.7A priority patent/EP3637421B1/en
Priority to SG10201907980XA priority patent/SG10201907980XA/en
Priority to CN201910832232.6A priority patent/CN111009280B/zh
Publication of KR20200040350A publication Critical patent/KR20200040350A/ko
Application granted granted Critical
Publication of KR102634338B1 publication Critical patent/KR102634338B1/ko

Links

Images

Classifications

    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2263Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using neural networks
    • 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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/025Detection or location of defective auxiliary circuits, e.g. defective refresh counters in signal lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • G11C29/16Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1202Word line control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair

Landscapes

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

Abstract

본 발명은 스토리지 장치에 관한 것이다. 본 발명의 스토리지 장치는 메모리 블록들을 포함하고, 각 메모리 블록은 워드 라인들에 연결된 메모리 셀들을 포함하는 불휘발성 메모리 장치, 그리고 외부의 호스트 장치의 요청에 따라 메모리 블록들 중 선택된 메모리 블록의 워드 라인들 중 선택된 워드 라인에 연결된 메모리 셀들에 대해 제1 읽기 동작을 수행하도록 구성되는 제어기를 포함한다. 제어기는 제1 읽기 동작을 수행한 후에 선택된 메모리 블록의 메모리 셀들의 신뢰성을 검사하는 검사 읽기 동작을 수행하도록 더 구성된다. 검사 읽기 동작 시에, 제어기는 실제 검사 및 기계 학습 기반 검사 중 하나를 선택하여 수행하도록 더 구성된다.

Description

스토리지 장치 및 스토리지 장치의 동작 방법{STORAGE DEVICE AND OPERATING METHOD OF STORAGE DEVICE}
본 발명은 반도체 장치에 관한 것으로, 더 상세하게는 기계 학습을 이용하여 신뢰성 검사를 수행하는 스토리지 장치 및 스토리지 장치의 동작 방법에 관한 것이다.
스토리지 장치는 컴퓨터, 스마트 폰, 스마트 패드 등과 같은 호스트 장치의 제어에 따라 데이터를 저장하는 장치이다. 스토리지 장치는 하드 디스크 드라이브(HDD, Hard Disk Drive)와 같이 자기 디스크에 데이터를 저장하는 장치, 솔리드 스테이트 드라이브(SSD, Solid State Drive), 메모리 카드 등과 같이 반도체 메모리, 특히 불휘발성 메모리에 데이터를 저장하는 장치를 포함한다.
불휘발성 메모리는 읽기 전용 메모리(Read Only Memory, ROM)), 프로그램 가능한 ROM(Programmable ROM, PROM), 전기적으로 프로그램 가능한 ROM (Electrically Programmable ROM, EPROM), 전기적으로 소거 및 프로그램 가능한 ROM (Electrically Erasable and Programmable ROM, EEPROM), 플래시 메모리, 상 변화 랜덤 액세스 메모리(Phase-change Random Access Memory, PRAM), 자기 RAM (Magnetic RAM, MRAM), 저항성 RAM (Resistive RAM, RRAM), 강유전체 RAM (Ferroelectric RAM, FRAM) 등을 포함한다.
반도체 제조 기술이 발전되면서, 스토리지 장치의 고집적화 및 그에 따른 대용량화가 지속적으로 진행되고 있다. 스토리지 장치의 고집적화는 스토리지 장치의 생산 비용을 감소시킨다는 장점을 갖는다. 그러나 스토리지 장치의 고집적화로 인해 스토리지 장치의 스케일이 감소하고 구조가 변화하면서, 기존에 발견되지 않은 다양한 문제들이 발견되고 있다. 새롭게 발견되고 있는 다양한 문제들은 스토리지 장치에 저장된 데이터를 손상시킬 수 있으며, 따라서, 스토리지 장치의 신뢰성이 저해될 수 있다.
본 발명의 목적은 기계 학습을 적용하여 짧은 시간 동안에 신뢰성 검사를 수행하는 스토리지 장치 및 스토리지 장치의 동작 방법을 제공하는 데에 있다.
본 발명의 실시 예에 따른 스토리지 장치는 메모리 블록들을 포함하고, 각 메모리 블록은 워드 라인들에 연결된 메모리 셀들을 포함하는 불휘발성 메모리 장치, 그리고 외부의 호스트 장치의 요청에 따라 메모리 블록들 중 선택된 메모리 블록의 워드 라인들 중 선택된 워드 라인에 연결된 메모리 셀들에 대해 제1 읽기 동작을 수행하도록 구성되는 제어기를 포함한다. 제어기는 제1 읽기 동작을 수행한 후에 선택된 메모리 블록의 메모리 셀들의 신뢰성을 검사(check)하는 검사 읽기 동작을 수행하도록 더 구성된다. 검사 읽기 동작 시에, 제어기는 실제 검사 및 기계 학습 기반 검사 중 하나를 선택하여 수행하도록 더 구성된다.
본 발명의 실시 예에 따른 스토리지 장치는 메모리 블록들을 포함하고, 각 메모리 블록은 워드 라인들에 연결된 메모리 셀들을 포함하는 불휘발성 메모리 장치, 그리고 외부의 호스트 장치의 요청에 따라 메모리 블록들 중 선택된 메모리 블록의 워드 라인들 중 선택된 워드 라인에 연결된 메모리 셀들에 대해 읽기 요청을 수행하도록 구성되는 제어기를 포함한다. 제어기는 읽기 동작을 수행한 후에 선택된 메모리 블록의 메모리 셀들의 신뢰성을 검사(check)하는 검사 읽기 동작을 수행하도록 더 구성된다. 검사 읽기 동작 시에, 제어기는 선택된 메모리 블록의 워드 라인들 중 제1 검사 목표 워드 라인들에 대해 실제 검사를 수행하고 그리고 제2 검사 목표 워드 라인들에 대해 기계 학습 기반 검사를 수행한다.
불휘발성 메모리 장치 및 불휘발성 메모리 장치를 제어하도록 구성되는 제어기를 포함하는 본 발명의 실시 예에 따른 스토리지 장치의 동작 방법은, 제어기가 불휘발성 메모리 장치의 메모리 블록들 중 선택된 메모리 블록의 선택된 워드 라인에 연결된 메모리 셀들에 대해 읽기 동작을 수행하는 단계, 그리고 읽기 동작에 응답하여, 제어기가 불휘발성 메모리 장치의 선택된 메모리 블록의 적어도 하나의 검사 목표 워드 라인에 연결된 메모리 셀들에 대해 검사 읽기 동작을 수행하는 단계를 포함한다. 검사 읽기 동작은 적어도 하나의 검사 목표 워드 라인에 연결된 메모리 셀들에 대한 실제 검사 및 기계 학습 기반 검사를 병행한다.
본 발명에 따르면, 신뢰성 검사는 상대적으로 짧은 시간이 필요한 기계 학습 기반 검사 및 상대적으로 긴 시간이 필요한 실제 검사를 선택적으로 병행하여 수행된다. 따라서, 감소된 시간 동안에 신뢰성 검사를 수행할 수 있는 스토리지 장치 및 스토리지 장치의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치를 보여준다.
도 2는 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 보여준다.
도 3은 본 발명의 실시 예에 따른 제1 메모리 블록을 보여준다.
도 4는 도 3에 도시된 메모리 셀들에 데이터가 기입된 때의 문턱 전압들의 예를 보여준다.
도 5는 본 발명의 실시 예에 따른 검사 읽기 동작의 예를 보여주는 순서도이다.
도 6은 검사 대상 메모리 셀들에서 샘플 읽기 동작이 수행되는 예를 보여준다.
도 7은 검사 대상 메모리 셀들에서 읽기 동작이 수행되는 예를 보여준다.
도 8은 기계 학습 코어와 연관된 정보들의 예를 보여준다.
도 9는 기계 학습 코어가 에러들의 수를 예측하기 위해 구동하는 제1 예측 모델의 예를 보여준다.
도 10은 기계 학습 코어가 에러들의 수를 예측하기 위해 구동하는 제2 예측 모델의 예를 보여준다.
도 11은 기계 학습 코어가 에러들의 수를 예측하기 위해 구동하는 제3 예측 모델의 예를 보여준다.
도 12는 기계 학습 코어가 에러들의 수를 예측하기 위해 구동하는 제4 예측 모델의 예를 보여준다.
도 13은 제1 메모리 블록의 메모리 셀들의 에러들의 수가 제1 존 및 제2 존으로 나뉘어 예측되는 예를 보여준다.
도 14는 본 발명의 따른 검사 읽기 동작의 변형 예를 보여주는 순서도이다.
도 15는 스토리지 장치가 검사 읽기 동작을 수행하는 조건 및 실제 검사를 선택하는 조건의 예를 보여주는 순서도이다.
도 16은 도 15의 방법에 따라 읽기 동작들 및 검사 읽기 동작들이 수행되는 예들을 보여준다.
도 17은 본 발명의 실시 예에 따라 검사 읽기 동작을 적응적으로 조절하는 방법의 예를 보여주는 순서도이다.
도 18은 본 발명의 실시 예에 따라 검사 읽기 동작을 적응적으로 조절하는 방법의 다른 예를 보여준다.
도 19는 기계 학습 기반 검사 및 실제 검사가 동시에 수행되는 예를 보여준다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치(100)를 보여준다. 도 1을 참조하면, 스토리지 장치(100)는 불휘발성 메모리 장치(110) 및 제어기(120)를 포함한다. 불휘발성 메모리 장치(110)는 제어기(120)의 제어에 따라 쓰기 동작, 읽기 동작 또는 소거 동작을 수행할 수 있다.
불휘발성 메모리 장치(110)는 전원이 차단되어도 전원이 차단되기 전에 기입된 데이터를 불휘발성으로 유지할 수 있다. 불휘발성 메모리 장치(110)는 상 변화(Phase Change) 메모리, 자기(Magnetic) 메모리, 저항성(Resistive) 메모리, 강유전체(Ferroelectric) 메모리, 플래시 메모리 등을 포함할 수 있다.
제어기(120)는 외부의 호스트 장치의 요청에 따라 또는 내부적으로 정해지는 스케줄에 따라 불휘발성 메모리 장치(110)를 제어할 수 있다. 제어기(120)는 제어기 코어(121), 내부 메모리(124), 호스트 인터페이스 블록(125), 메모리 인터페이스 블록(126), 그리고 장치 정보 스토리지(127)를 포함할 수 있다.
제어기 코어(121)는 메모리 제어 코어(122) 및 기계 학습 코어(123)를 포함할 수 있다. 메모리 제어 코어(122)는 외부의 호스트 장치의 요청에 따라 또는 내부적으로 정해지는 스케줄에 따라 불휘발성 메모리 장치(110)를 제어 및 액세스할 수 있다. 메모리 제어 코어(122)는 스토리지 장치(100)를 관리 또는 운영하는 데에 필요한 다양한 메타 데이터 및 코드들을 관리 및 실행할 수 있다.
기계 학습 코어(123)는 불휘발성 메모리 장치(110)에 저장된 데이터의 신뢰성을 검사하는 데에 사용될 수 있다. 예를 들어, 기계 학습 코어(123)는 스토리지 장치(100)의 다양한 정보들을 수집하고, 수집된 정보들에 기반하여 불휘발성 메모리 장치(110)에 저장된 데이터의 신뢰성을 예측하는 기계 학습 기반 검사를 수행할 수 있다.
내부 메모리(124)는 제어기 코어(121)에 의해 사용되는 시스템 메모리, 불휘발성 메모리 장치(110)의 데이터를 저장하는 캐시 메모리, 또는 외부의 호스트 장치와 불휘발성 메모리 장치(110)의 사이에서 데이터를 임시로 저장하는 버퍼 메모리로 사용될 수 있다. 내부 메모리(124)는 스토리지 장치(100)에 할당된 논리 주소들 및 불휘발성 메모리 장치(110)의 물리 주소들 사이의 관계를 가리키는 매핑 테이블(MT)을 저장할 수 있다. 내부 메모리(124)는 DRAM 또는 SRAM을 포함할 수 있다.
호스트 인터페이스 블록(125)은 외부의 호스트 장치와 통신하기 위한 구성 요소들, 예를 들어 물리 블록을 포함할 수 있다. 메모리 인터페이스 블록(126)은 불휘발성 메모리 장치(110)와 통신하기 위한 구성 요소들, 예를 들어 물리 블록을 포함할 수 있다.
장치 정보 스토리지(127)는 스토리지 장치(100)의 제조와 연관된 정보를 저장할 수 있다. 예를 들어, 장치 정보 스토리지(127)는 외부의 호스트 장치에 제공되는 제1 장치 정보(DI1) 및 기계 학습 코어(123)에 제공되는 제2 장치 정보(DI2)를 저장할 수 있다. 장치 정보 스토리지(127)는 ROM을 포함할 수 있다.
이하에서, 스토리지 장치(100)의 동작이 시간의 흐름에 따라 설명된다. 스토리지 장치(100)에 전원이 공급되면, 장치 정보 스토리지(127)는 제1 장치 정보(DI1)를 호스트 인터페이스 블록(125)을 통해 외부의 호스트 장치로 전송할 수 있다. 제1 장치 정보(DI1)에 기반하여, 스토리지 장치(100)는 외부의 호스트 장치와 초기화를 수행할 수 있다.
호스트 인터페이스 블록(125)은 외부의 호스트 장치로부터 수신된 제1 요청(REQ1)을 메모리 제어 코어(122)에 전달할 수 있다. 제1 요청(REQ1)은 명령(예를 들어, 읽기 명령 또는 쓰기 명령) 및 논리 주소를 포함할 수 있다. 메모리 제어 코어(122)는 제1 요청(REQ1)을 불휘발성 메모리 장치(110)에 적합한 제2 요청(REQ2)으로 변환할 수 있다.
예를 들어, 메모리 제어 코어(122)는 명령의 포맷을 변환할 수 있다. 메모리 제어 코어(122)는 내부 메모리(124)에 저장된 매핑 테이블(MT)을 참조하여 주소 정보(AI)를 획득할 수 있다. 메모리 제어 코어(122)는 주소 정보(AI)를 이용하여 논리 주소를 불휘발성 메모리 장치(110)의 물리 주소로 변환할 수 있다. 메모리 제어 코어(122)는 불휘발성 메모리 장치(110)에 적합한 제2 요청(REQ2)을 메모리 인터페이스 블록(126)에 전송할 수 있다.
메모리 인터페이스 블록(126)은 메모리 제어 코어(122)로부터 전달된 제2 요청(REQ2)을 대기열(Queue)에 등록할 수 있다. 메모리 인터페이스 블록(126)은 대기열에 등록된 첫 번째 요청을 제3 요청(REQ3)으로서 불휘발성 메모리 장치(110)로 전송할 수 있다.
제1 요청(REQ1)이 쓰기 요청일 때, 호스트 인터페이스 블록(125)은 외부의 호스트 장치로부터 수신되는 데이터를 내부 메모리(124)에 저장할 수 있다. 제3 요청(REQ3)이 쓰기 요청일 때, 메모리 인터페이스 블록(126)은 내부 메모리(124)에 저장된 데이터를 불휘발성 메모리 장치(110)로 전송할 수 있다.
데이터의 기입이 완료된 때에, 불휘발성 메모리 장치(110)는 제3 응답(RESP3)을 메모리 인터페이스 블록(126)에 전달할 수 있다. 제3 응답(RESP3)에 응답하여, 메모리 인터페이스 블록(126)은 데이터의 기입이 완료되었음을 알리는 제2 응답(RESP2)을 메모리 제어 코어(122)에 전송할 수 있다.
메모리 제어 코어(122)는 데이터가 내부 메모리(124)에 저장된 후에 또는 제2 응답(RESP2)이 수신된 후에, 요청이 완료되었음을 알리는 제1 응답(RESP1)을 호스트 인터페이스 블록(125)을 통해 외부의 호스트 장치로 전송할 수 있다.
제1 요청(REQ1)이 읽기 요청일 때, 읽기 요청은 제2 요청(REQ2) 및 제3 요청(REQ3)으로서 불휘발성 메모리 장치(110)로 전달될 수 있다. 메모리 인터페이스 블록(126)은 불휘발성 메모리 장치(110)로부터 수신되는 데이터를 내부 메모리(124)에 저장할 수 있다. 데이터의 전송이 완료되면, 불휘발성 메모리 장치(110)는 제3 응답(RESP3)을 메모리 인터페이스 블록(126)에 전송할 수 있다.
제3 응답(RESP3)이 수신됨에 따라, 메모리 인터페이스 블록(126)은 데이터의 저장이 완료되었음을 알리는 제2 응답(RESP2)을 메모리 제어 코어(122)에 전송할 수 있다. 제2 응답(RESP2)이 수신됨에 따라, 메모리 제어 코어(122)는 호스트 인터페이스 블록(125)을 통해 외부의 호스트 장치에 제1 응답(RESP1)을 전송할 수 있다.
호스트 인터페이스 블록(125)은 내부 메모리(124)에 저장된 데이터를 외부의 호스트 장치로 전송할 수 있다. 예시적으로, 제1 요청(REQ1)에 대응하는 데이터가 사전에 내부 메모리(124)에 저장된 경우, 제2 요청(REQ2) 및 제3 요청(REQ3)의 전송은 생략될 수 있다.
기계 학습 기반 검사의 조건이 충족된 때에, 메모리 제어 코어(122)는 샘플 읽기 동작을 요청하는 제2 요청(REQ2)을 메모리 인터페이스 블록(126)에 전송할 수 있다. 메모리 인터페이스 블록(126)은 샘플 읽기 동작을 요청하는 제3 요청(REQ3)을 불휘발성 메모리 장치(110)에 전송할 수 있다.
예를 들어, 메모리 인터페이스 블록(126)은 해당 요청을 대기열에 등록한 후 처리하거나 또는 대기열에 등록하지 않고 바로 처리할 수 있다. 메모리 제어 코어(122)는 기계 학습 코어에 기계 학습 기반 검사를 수행할 것을 지시할 수 있다.
불휘발성 메모리 장치(110)는 샘플 읽기 동작을 수행하고, 그 결과를 제1 샘플 정보(SPI1)로서 메모리 인터페이스 블록(126)에 전송할 수 있다. 메모리 인터페이스 블록(126)은 수신된 제1 샘플 정보(SPI1)를 제2 샘플 정보(SPI2)로서 기계 학습 코어(123)로 전송할 수 있다.
기계 학습 코어(123)는 내부 메모리(124)로부터 상태 정보(SI)를 수집할 수 있다. 상태 정보(SI)는 불휘발성 메모리 장치(110) 또는 스토리지 장치(100)의 상태에 대한 정보를 포함할 수 있다. 상태 정보(SI)는 매핑 테이블(MT)과 함께 내부 메모리(124)에서 관리되는 메타 정보일 수 있다.
기계 학습 코어(123)는 장치 정보 스토리지(127)로부터 제2 장치 정보(DI2)를 수집할 수 있다. 기계 학습 코어(123)는 제2 샘플 정보(SPI2), 상태 정보(SI), 그리고 제2 장치 정보(DI2)에 기반하여 기계 학습에 기반한 예측을 수행할 수 있다. 예를 들어, 기계 학습 코어(123)는 샘플 읽기 동작이 수행된 메모리 셀들의 에러들의 수를 예측할 수 있다.
기계 학습 코어(123)는 훈련된 기계 학습 모델에 기반하여 조직화될 수 있다. 다른 예로서, 훈련된 기계 학습 모델(또는 모델들)이 불휘발성 메모리 장치(110)에 저장될 수 있다. 기계 학습 코어(123)는 불휘발성 메모리 장치에 저장된 기계 학습 모델(또는 모델들 중 적절한 모델)을 로드하고 조직화될 수 있다.
도 2는 본 발명의 실시 예에 따른 불휘발성 메모리 장치(110)를 보여준다. 도 1 및 도 2를 참조하면, 불휘발성 메모리 장치(110)는 메모리 셀 어레이(111), 행 디코더 회로(112), 페이지 버퍼 회로(113), 패스-페일 체크 회로(115), 데이터 입력 및 출력 회로(114), 그리고 제어 로직 회로(116)를 포함한다.
메모리 셀 어레이(111)는 복수의 메모리 블록들(BLK1~BLKz)을 포함한다. 각 메모리 블록은 복수의 메모리 셀들을 포함한다. 각 메모리 블록은 워드 라인들(WL)을 통해 행 디코더 회로(112)에 연결될 수 있다.
각 메모리 블록은 복수의 비트 라인들(BL)을 통해 페이지 버퍼 회로(113)에 연결될 수 있다. 복수의 메모리 블록들(BLK1~BLKz)은 복수의 비트 라인들(BL)에 공통으로 연결될 수 있다. 복수의 메모리 블록들(BLK1~BLKz)의 메모리 셀들은 동일한 구조들을 가질 수 있다.
예시적으로, 복수의 메모리 블록들(BLK1~BLKz) 각각은 소거 동작의 단위일 수 있다. 메모리 셀 어레이(111)의 메모리 셀들은 하나의 메모리 블록의 단위로 소거될 수 있다. 하나의 메모리 블록에 속한 메모리 셀들은 동시에 소거될 수 있다. 다른 예로서, 각 메모리 블록은 복수의 서브 블록들로 분할될 수 있다. 복수의 서브 블록들 각각은 소거 동작의 단위일 수 있다.
행 디코더 회로(112)는 워드 라인들(WL)을 통해 메모리 셀 어레이(111)에 연결된다. 행 디코더 회로(112)는 제어 로직 회로(116)의 제어에 따라 동작한다. 행 디코더 회로(112)는 제어기(120)로부터 제1 채널(예를 들어, 입력 및 출력 채널)을 통해 수신되는 주소를 디코딩하고, 디코딩된 주소에 따라 워드 라인들(WL)에 인가되는 전압들을 제어할 수 있다.
페이지 버퍼 회로(113)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(111)에 연결된다. 페이지 버퍼 회로(113)는 복수의 데이터 라인들(DL)을 통해 데이터 입력 및 출력 회로(114)와 연결된다. 페이지 버퍼 회로(113)는 제어 로직 회로(116)의 제어에 따라 동작한다.
쓰기 동작 시에, 페이지 버퍼 회로(113)는 메모리 셀들에 기입될 데이터를 저장할 수 있다. 저장된 데이터에 기반하여, 페이지 버퍼 회로(113)는 복수의 비트 라인들(BL)에 전압들을 인가할 수 있다. 읽기 동작, 또는 쓰기 또는 소거 동작의 검증 읽기 시에, 페이지 버퍼 회로(113)는 비트 라인들(BL)의 전압들을 감지하고, 감지 결과를 저장할 수 있다.
데이터 입력 및 출력 회로(114)는 복수의 데이터 라인들(DL)을 통해 페이지 버퍼 회로(113)와 연결된다. 데이터 입력 및 출력 회로(114)는 페이지 버퍼 회로(113)에 의해 읽힌 데이터를 제1 채널을 통해 제어기(120)로 출력하고, 제어기(120)로부터 제1 채널을 통해 수신되는 데이터를 페이지 버퍼 회로(113)로 전달할 수 있다.
패스-페일 체크 회로(PFC)(115)는 쓰기 또는 소거 동작의 검증 읽기 후에, 페이지 버퍼 회로(113)로부터 감지 결과를 수신할 수 있다. 패스-페일 체크 회로(115)는 수신된 감지 결과에서 온-셀들 또는 오프-셀들의 수를 카운트할 수 있다. 카운트된 값에 따라, 패스-페일 체크 회로(115)는 패스 또는 페일을 판별할 수 있다. 패스 또는 페일의 판별 결과는 제어 로직 회로(116)로 전달된다.
제어 로직 회로(116)는 제어기(120)로부터 제1 채널을 통해 명령을 수신하고, 제2 채널(예를 들어, 제어 채널)을 통해 제어 신호를 수신할 수 있다. 제어 로직 회로(116)는 제어 신호에 응답하여 제1 채널을 통해 수신되는 명령을 수신하고, 제2 채널을 통해 수신되는 주소를 행 디코더 회로(112)로 라우팅하고, 그리고 제1 채널을 통해 수신되는 데이터를 데이터 입력 및 출력 회로(114)로 라우팅할 수 있다.
제어 로직 회로(116)는 수신된 명령을 디코딩하고, 디코딩된 명령에 따라 불휘발성 메모리 장치(110)를 제어할 수 있다. 쓰기 동작 또는 소거 동작의 검증 읽기 시에, 제어 로직 회로(116)는 패스-페일 체크 회로(115)로부터 패스 또는 페일의 판별 결과를 수신할 수 있다.
도 3은 본 발명의 실시 예에 따른 제1 메모리 블록(BLK1)을 보여준다. 도 2 및 도 3을 참조하면, 제1 메모리 블록(BLK1)은 행들 및 열들로 배열된 메모리 셀들(MC)을 포함할 수 있다. 메모리 셀들(MC)의 행들은 워드 라인들, 예를 들어 제1 내지 제8 워드 라인들(WL1~WL8)에 연결될 수 있다. 메모리 셀들(MC)의 열들은 비트 라인들, 예를 들어 제1 내지 제8 비트 라인들(BL1~BL8)에 연결될 수 있다.
예시적으로, 메모리 셀들(MC)을 선택적으로 제어하기 위한 선택 트랜지스터들이 제1 메모리 블록(BLK1)에 제공될 수 있다. 선택 트랜지스터들은 선택 라인들의 전압들에 의해 제어될 수 있다. 선택 라인들의 전압들은 행 디코더 회로(112)에 의해 제어될 수 있다.
예시적으로, 메모리 셀들(MC)은 쓰기 동작 또는 소거 동작에 의해 가변되는 문턱 전압들을 갖는 트랜지스터들일 수 있다. 쓰기 동작이 수행될 때, 쓰기 동작의 대상인 메모리 셀들(MC)의 문턱 전압들이 높아질 수 있다. 소거 동작이 수행될 때, 소거 동작의 대상인 메모리 셀들(MC)의 문턱 전압들이 낮아질 수 있다. 메모리 셀들(MC)은 플래시 메모리 셀들일 수 있다. 메모리 블록(BLK1)은 낸드 플래시 메모리의 구조를 가질 수 있다.
제1 내지 제8 워드 라인들(WL1~WL8) 중 하나의 워드 라인에 연결된 메모리 셀들은 하나의 페이지에 대응할 수 있다. 페이지는 쓰기 동작 및 읽기 동작의 단위일 수 있다. 예시적으로, 메모리 블록들(BLK1~BLKz)의 각각은 도 3에 도시된 것과 동일한 구조를 가질 수 있다.
도 4는 도 3에 도시된 메모리 셀들(MC)에 데이터가 기입된 때의 문턱 전압들(VTH)의 예를 보여준다. 도 4에서, 가로축은 문턱 전압(VTH)을 가리키고 세로축은 메모리 셀들의 수를 가리킨다. 도 2 및 도 4를 참조하면, 메모리 셀들(MC)은 소거 상태(E) 및 제1 내지 제7 프로그램 상태들(P1~P7)을 가질 수 있다. 각 상태는 메모리 셀들(MC)의 문턱 전압들(VTH)의 산포 범위에 대응할 수 있다.
도 4에 도시된 상태들은 하나의 메모리 셀에 3개의 비트들이 기입될 때의 예를 보여준다. 하나의 메모리 셀에 n개(n은 양의 정수)의 비트들이 기입될 때, 메모리 셀들(MC)은 2^n개의 상태들을 가질 수 있다.
메모리 셀들(MC)에 데이터가 기입된 후에, 메모리 셀들(MC)의 상태들은 도 4에서 실선으로 기입된 바와 같이 서로 구별될 수 있다. 메모리 셀들(MC)에 데이터가 기입된 후 다양한 요인들로 인해, 도 4에서 점선으로 도시된 바와 같이 메모리 셀들(MC)의 상태들이 다른 상태들의 범위들을 침범(이하에서, 상태 침범이라 칭함)할 수 있다.
예를 들어, 제1 점선(DL1)으로 표시된 바와 같이, 소거 상태(E)의 메모리 셀의 문턱 전압이 제1 프로그램 상태(P1)의 범위를 침범할 수 있다. 이와 같은 침범은 소거 상태(E)의 메모리 셀에 인접한 메모리 셀들(예를 들어, 인접한 다른 워드 라인에 연결된 메모리 셀들)에서 읽기 동작이 수행될 때에 발생할 수 있으며, 교란(disturb)이라 불릴 수 있다.
또는, 제2 점선(DL2)으로 표시된 바와 같이, 제7 프로그램 상태(P7)의 메모리 셀의 문턱 전압이 제7 프로그램 상태(P6)의 범위를 침범할 수 있다. 이와 같은 침범은 제7 프로그램 상태(P7)의 메모리 셀이 방치될 때에 발생할 수 있으며, 리텐션(retention)의 열화라 불릴 수 있다.
소거 상태(E)를 참조하여 설명된 교란 및 제7 프로그램 상태(P7)를 참조하여 설명된 리텐션의 열화는 제1 내지 제6 프로그램 상태들(P1~P6)의 메모리 셀들에서도 발생할 수 있다. 이러한 상태 침범이 발생하면, 메모리 셀들(MC)에 기입된 데이터가 소실된다. 데이터의 소실은 스토리지 장치(100)(도 1 참조) 및 불휘발성 메모리 장치(110)(도 1 및 도 2 참조)의 신뢰성의 저하를 유발한다.
이와 같은 문제를 방지하기 위하여, 본 발명의 실시 예에 따른 스토리지 장치(100)는 읽기 동작이 후속하여 검사 읽기 동작을 수행할 수 있다. 검사 읽기 동작은 메모리 셀들(MC)에 기입된 데이터의 신뢰성이 교란, 리텐션의 열화 등과 같은 다양한 요인들로 인해 감소하는지를 검사할 수 있다.
특히, 본 발명의 실시 예에 따른 스토리지 장치(100)는 메모리 셀들(MC)에 기입된 데이터의 신뢰성을 직접 검사하는 실제 검사 및 기계 학습을 기반으로 신뢰성을 예측하는 기계 학습 기반 검사를 병행할 수 있다.
실제 검사의 결과는 상대적으로 높은 신뢰성을 갖지만, 실제 검사를 수행하기 위해 상대적으로 긴 시간이 필요하다. 기계 학습 기반 검사의 결과는 상대적으로 낮은 신뢰성을 갖지만, 기계 학습 기반 검사를 수행하기 위해 상대적으로 짧은 시간이 필요하다.
실제 검사 및 기계 학습 기반 검사를 병행함으로써, 본 발명의 실시 예에 따른 스토리지 장치(100)는 검사 읽기 동작의 신뢰성 및 소요 시간 사이의 균형을 형성하고, 유지하고, 그리고 조절할 수 있다.
도 5는 본 발명의 실시 예에 따른 검사 읽기 동작의 예를 보여주는 순서도이다. 도 1 및 도 5를 참조하면, S110 단계에서, 메모리 제어 코어(122)는 검사 정책을 선택할 수 있다. 예를 들어, 메모리 제어 코어(122)는 실제 검사를 수행할지 또는 기계 학습 기반 검사를 수행할지 선택할 수 있다.
S120 단계에서 기계 학습 기반 검사가 선택되면, S130 단계가 수행된다. S130 단계에서, 스토리지 장치(100)는 샘플 읽기 동작을 수행할 수 있다. 예를 들어, 메모리 제어 코어(122)는 메모리 인터페이스 블록(126)을 통해 불휘발성 메모리 장치(110)에 샘플 읽기 동작을 지시할 수 있다. 또한, 메모리 제어 코어(122)는 기계 학습 코어(123)에 기계 학습 기반 예측을 지시할 수 있다.
불휘발성 메모리 장치(110)는 검사 대상인 메모리 셀들에 대해 샘플 읽기 동작을 수행할 수 있다. 불휘발성 메모리 장치(110)는 샘플 읽기 동작의 결과를 제1 샘플 정보(SPI1)로서 제어기 코어(121), 예를 들어 기계 학습 코어(123)에 제공할 수 있다.
S140 단계에서, 기계 학습 코어(123)는 기계 학습 기반 예측을 수행하여 에러들의 수를 예측할 수 있다. 기계 학습 코어(123)는 제2 샘플 정보(SPI2), 제2 장치 정보(DI2) 및 상태 정보(SI)에 기반하여 예측을 수행할 수 있다. 기계 학습 코어(123)는 샘플 읽기 동작이 수행된 메모리 셀들의 에러들의 수를 예측할 수 있다. 기계 학습 코어(123)는 예측된 에러들의 수를 메모리 제어 코어(122)에 전달할 수 있다.
S120 단계에서 실제 검사가 선택되면, S150 단계가 수행된다. S150 단계에서, 스토리지 장치(100)는 읽기 동작을 수행할 수 있다. 예를 들어, 메모리 제어 코어(122)는 메모리 인터페이스 블록(126)을 통해 불휘발성 메모리 장치(110)에 읽기 동작을 지시할 수 있다.
불휘발성 메모리 장치(110)는 검사 대상인 메모리 셀들에 대해 읽기 동작을 수행할 수 있다. 불휘발성 메모리 장치(110)는 읽기 동작의 결과를 데이터(DATA)로서 메모리 인터페이스 블록(126)에 제공할 수 있다.
S160 단계에서, 메모리 인터페이스 블록(126)은 수신된 데이터(DATA)에 대해 에러 정정 디코딩을 수행할 수 있다. 에러 정정 디코딩이 수행되면, 메모리 인터페이스 블록(126)은 수신된 데이터(DATA)의 에러들의 수를 검출할 수 있다. 메모리 인터페이스 블록(126)은 검출된 에러들의 수를 메모리 제어 코어(122)에 보고할 수 있다.
메모리 제어 코어(122)는 실제 검사에서 검출된 에러들의 수 또는 기계 학습 기반 검사에서 예측된 에러들의 수를 획득할 수 있다. 메모리 제어 코어(122)는 검출된 에러들의 수 또는 예측된 에러들의 수를 이용하여 불휘발성 메모리 장치(110)에 기입된 데이터의 신뢰성을 평가할 수 있다.
검사 읽기 동작이 수행된 메모리 블록의 신뢰성이 낮으면, 메모리 제어 코어(122)는 해당 메모리 블록에 대해 리프레시 동작을 수행할 수 있다. 리프레시 동작은 해당 메모리 블록의 유효 데이터를 다른 메모리 블록에 기입하는 리클레임(reclaim)을 포함할 수 있다. 리프레시 동작이 수행되면 데이터가 새로 기입되므로, 데이터의 신뢰도가 회복된다.
도 6은 검사 대상 메모리 셀들에서 샘플 읽기 동작이 수행되는 예를 보여준다. 도 6에서, 가로축은 문턱 전압(VTH)을 가리키고, 세로축은 메모리 셀들의 수를 가리킨다.
도 1, 도 2 및 도 6을 참조하면, 샘플 읽기 동작은 제1 샘플 읽기 전압(VSR1) 및 제2 샘플 읽기 전압(VSR2)을 이용하여 수행될 수 있다. 제1 샘플 읽기 전압(VSR1)은 메모리 셀들(MC)에 기입된 데이터가 열화되지 않은 때에 소거 상태(E)의 범위의 중앙에 해당하는 레벨을 가질 수 있다.
행 디코더 회로(112)는 검사 대상 메모리 셀들에 연결된 워드 라인에 제1 샘플 읽기 전압(VSR1)을 인가할 수 있다. 페이지 버퍼 회로(113)는 제1 샘플 읽기 전압(VSR1)에 의해 턴-온 또는 턴-오프 되는 메모리 셀들을 감지할 수 있다.
제2 샘플 읽기 전압(VSR2)은 메모리 셀들(MC)에 기입된 데이터가 열화되지 않은 때에 제7 프로그램 상태(P7)의 범위의 중앙에 해당하는 레벨을 가질 수 있다. 행 디코더 회로(112)는 검사 대상 메모리 셀들에 연결된 워드 라인에 제2 샘플 읽기 전압(VSR2)을 인가할 수 있다. 페이지 버퍼 회로(113)는 제2 샘플 읽기 전압(VSR2)에 의해 턴-온 또는 턴-오프 되는 메모리 셀들을 감지할 수 있다.
샘플 읽기 동작의 결과는 제2 샘플 정보(SPI2)로서 기계 학습 코어(123)에 제공될 수 있다. 다른 예로서, 불휘발성 메모리 장치(110)는 제1 샘플 읽기 전압(VSR1) 또는 제2 샘플 읽기 전압(VSR2)에 의해 턴-온 또는 턴-오프 되는 메모리 셀들의 수를 카운트할 수 있다. 카운트의 결과는 제2 샘플 정보(SPI2)로서 기계 학습 코어(123)에 제공할 수 있다.
도 7은 검사 대상 메모리 셀들에서 읽기 동작이 수행되는 예를 보여준다. 도 7에서, 가로축은 문턱 전압(VTH)을 가리키고, 세로축은 메모리 셀들의 수를 가리킨다.
도 1, 도 2 및 도 7을 참조하면, 샘플 읽기 동작은 제1 내지 제7 읽기 전압들(VR1~VR7)을 이용하여 수행될 수 있다. 제1 내지 제7 읽기 전압들(VR1~VR7)은 소거 상태(E) 및 제1 내지 제7 프로그램 상태(P1~P7)의 범위들 사이의 레벨들을 가질 수 있다.
행 디코더 회로(112)는 검사 대상 메모리 셀들에 연결된 워드 라인에 제1 내지 제7 읽기 전압들(VR1~VR7)을 인가할 수 있다. 페이지 버퍼 회로(113)는 제1 내지 제7 읽기 전압들(VR1~VR7)에 의해 턴-온 또는 턴-오프 되는 메모리 셀들을 판별할 수 있다.
판별 결과에 따라, 페이지 버퍼 회로(113)는 메모리 셀들의 상태들을 식별하고, 메모리 셀들에 저장된 데이터를 읽을 수 있다. 불휘발성 메모리 장치(110)는 메모리 셀들로부터 읽은 데이터를 제1 샘플 정보(SPI1)로서 메모리 인터페이스 블록(126)에 제공할 수 있다.
메모리 인터페이스 블록(126)은 제1 샘플 정보(SPI1)의 데이터로부터 에러들의 수를 검출할 수 있다. 메모리 인터페이스 블록(126)은 검출된 에러들의 수를 제2 샘플 정보(SPI2)로서 기계 학습 코어(123)에 제공할 수 있다.
도 8은 기계 학습 코어(123)와 연관된 정보들의 예를 보여준다. 도 1 및 도 8을 참조하면, 기계 학습 코어(123)는 메모리 제어 코어(122)로부터의 지시(INS)에 따라 기계 학습 기반 예측을 수행할 수 있다. 기계 학습 기반 예측을 위해, 기계 학습 코어(123)는 제2 장치 정보(DI2), 상태 정보(SI), 그리고 제2 샘플 정보(SPI2)를 수신할 수 있다.
제2 장치 정보(DI2)는 불휘발성 메모리 장치(110)가 제조될 때의 웨이퍼 상의 위치, 불휘발성 메모리 장치(110)의 구조적 특징, 불휘발성 메모리 장치(110)의 모델 종류, 그리고 불휘발성 메모리 장치(110)를 적용할 때에 사용된 공정의 종류와 같이, 불휘발성 메모리 장치(110)를 제조할 때에 결정되는 정보를 포함할 수 있다.
상태 정보(SI)는 검사 대상으로 선택된 메모리 블록의 주소, 검사 대상으로 선택된 메모리 블록의 소거 횟수, 검사 대상으로 선택된 워드 라인의 주소, 검사 대상으로 선택된 워드 라인에 연결된 메모리 셀들이 프로그램된 후 경과한 시간, 검사 대상으로 선택된 메모리 블록에서 수행된 읽기 동작들의 횟수, 검사 대상으로 선택된 메모리 블록이 프로그램되기 전에 소거 상태로 방치된 시간, 온도, 습도 등과 같이, 불휘발성 메모리 장치(110)를 사용함에 따라 변경되는 정보를 포함할 수 있다.
기계 학습 코어(123)는 제2 장치 정보(DI2), 상태 정보(SI), 그리고 제2 샘플 정보(SPI2)에 기반하여 검사 대상으로 선택된 워드 라인에 연결된 메모리 셀들의 데이터의 에러들의 수를 예측할 수 있다. 기계 학습 코어(123)는 예측된 에러들의 수(NE)를 메모리 제어 코어(122)에 제공할 수 있다.
예를 들어, 기계 학습 코어(123)에 의해 실행되는 예측 모델들은 불휘발성 메모리 장치(110)에 저장될 수 있다. 기계 학습 코어(123)는 불휘발성 메모리 장치(110)에 저장된 예측 모델들 중 하나를 기계 학습 기반으로 선택할 수 있다.
도 9는 기계 학습 코어(123)가 에러들의 수를 예측하기 위해 구동하는 제1 예측 모델(EM1)의 예를 보여준다. 예시적으로, 제1 예측 모델(EM1)은 신경망(Neural Network), 인공 신경망(ANN)(Artificial Neural Network), 콘볼루션 신경망(CNN)(Convolution Neural Network), 순환 신경망(RNN)(Recursive Neural Network)과 같은 심층 학습(Deep Learning)에 기반할 수 있다.
도 8 및 도 9를 참조하면, 제1 예측 모델(EM1)은 제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 입력 노드들(IN1~IN4)에 제2 장치 정보(DI2), 상태 정보(SI), 그리고 제2 샘플 정보(SPI2)가 정량화된 값들이 입력될 수 있다. 서로 다른 입력 노드들에 서로 다른 종류의 정보들의 값들이 입력될 수 있다. 각 입력 노드의 값들은 가중치들을 갖고 제1 히든 레이어의 제1 내지 제5 히든 노드들(HN1~HN5)로 전달된다.
제1 내지 제5 히든 노드들(HN1~HN5) 각각의 입력은 가중치들을 갖고 제2 히든 레이어의 제6 내지 제10 히든 노드들(HN6~HN10)로 전달된다. 제6 내지 제10 히든 노드들(HN6~HN10)의 입력들은 가중치들을 갖고 출력 노드(ON)로 전달된다. 출력 노드(ON)의 값은 예측된 에러들의 수를 나타낼 수 있다.
기계 학습 시에, 출력 노드(ON)의 값들이 실제 에러들의 수와 비교될 수 있다. 비교 결과는 역전달(back propagation)을 통해 가중치들에 적용될 수 있다. 기계 학습이 완료되면, 가중치들이 고정될 수 있다. 기계 학습 코어(123)는 고정된 가중치들을 이용하여 에러들의 수를 예측할 수 있다.
도 10은 기계 학습 코어(123)가 에러들의 수를 예측하기 위해 구동하는 제2 예측 모델(EM2)의 예를 보여준다. 예시적으로, 제2 예측 모델(EM2)은 결정 나무(Decision Tree)에 기반할 수 있다. 도 8 및 도 10을 참조하면, 제2 예측 모델(EM2)은 루트 노드(RN), 제1 내지 제4 가지 노드들(BN1~BN4), 그리고 제1 내지 제6 잎 노드들(LN1~LN6)을 포함한다. 루트 노드(RN), 제1 내지 제4 가지 노드들(BN1~BN4), 그리고 제1 내지 제6 잎 노드들(LN1~LN6)은 각각 가지들을 통해 연결될 수 있다.
루트 노드(RN) 및 제1 내지 제4 가지 노드들(BN1~BN4) 각각에서, 제2 장치 정보(DI2), 상태 정보(SI), 그리고 제2 샘플 정보(SPI2)가 정량화된 값들 중 적어도 하나에 대한 비교가 수행될 수 있다. 비교 결과에 따라, 각 노드에 연결된 복수의 가지들 중 하나의 가지가 선택된다. 선택된 가지에 다음 가지 노드가 연결되어 있으면, 다음 가지 노드에서 비교가 더 수행될 수 있다.
선택된 가지에 잎 노드가 연결되어 있으면, 잎 노드의 값이 선택된다. 예를 들어, 제1 내지 제6 잎 노드들(LN1~LN6)의 값들은 예측된 에러들의 수 또는 예측된 에러들의 수의 범위를 나타낼 수 있다. 또는, 제1 내지 제6 잎 노드들(LN1~LN6)의 값들은 검사 대상인 메모리 셀들에 저장된 데이터의 신뢰성 정도 또는 열화 정도를 나타낼 수 있다.
기계 학습 시에, 선택된 잎 노드의 값이 실제 에러들의 수(또는 신뢰성 정도 또는 열화 정도)와 비교될 수 있다. 비교 결과는 역전달(back propagation)을 통해 제1 내지 제4 가지 노드들(BN1~BN4)의 비교를 위한 값들(예를 들어, 비교 값들)에 적용될 수 있다. 기계 학습이 완료되면, 비교 값들이 고정될 수 있다. 기계 학습 코어(123)는 고정된 비교 값들을 이용하여 에러들의 수(또는 신뢰성 정도 또는 열화 정도)를 예측할 수 있다.
도 11은 기계 학습 코어(123)가 에러들의 수를 예측하기 위해 구동하는 제3 예측 모델(EM3)의 예를 보여준다. 예시적으로, 제3 예측 모델(EM3)은 지원 벡터 기계(Support Vector Machine)에 기반할 수 있다. 도 11에서, 가로축(X) 및 세로축(Y)은 각각 제2 장치 정보(DI2), 상태 정보(SI), 그리고 제2 샘플 정보(SPI2)를 나타낸다. 예를 들어, 총 n개의 정보들이 사용되면, 제3 예측 모델(EM3)은 n차원에서 학습 및 예측을 수행할 수 있다.
도 8 및 도 11을 참조하면, 기계 학습 시에, 제2 장치 정보(DI2), 상태 정보(SI), 그리고 제2 샘플 정보(SPI2)에 따라 샘플들이 배열될 수 있다. 예를 들어, 사각형의 제1 샘플들(C1)은 에러들의 수가 제1 값일 때, 에러들의 수가 제1 범위일 때, 신뢰도가 제1 범위일 때, 또는 열화도가 제1 범위일 때의 사례들을 가리킬 수 있다. 원형의 제2 샘플들(C2)은 에러들의 수가 제2 값일 때, 에러들의 수가 제2 범위일 때, 신뢰도가 제2 범위일 때, 또는 열화도가 제2 범위일 때의 사례들을 가리킬 수 있다.
기계 학습 시에, 제1 샘플들(S1)로부터 가장 멀고 그리고 제2 샘플들(S2)로부터도 가장 먼 초평면(HP)(HyperPlane)이 판단될 수 있다. 초평면(HP)은 제1 샘플들(C1)에 의해 형성되는 제1 평면(PP1) 및 제2 샘플들(C2)에 의해 형성되는 제2 평면(PP2)의 사이로 판단될 수 있다.
제1 평면(PP1)을 형성하는 제1 샘플들(C1)은 제1 지원 벡터(SV1) 및 제2 지원 벡터(SV2)일 수 있다. 제2 평면(PP2)을 형성하는 제2 샘플들(C2)은 제3 지원 벡터(SV3) 및 제4 지원 벡터(SV4)일 수 있다. 기계 학습이 완료되면, 제1 평면(PP1), 제2 평면(PP2), 그리고 초평면(HP)이 고정될 수 있다.
기계 학습 기반 검사 시에, 제3 예측 모델(EM3)은 제2 장치 정보(DI2), 상태 정보(SI), 그리고 제2 샘플 정보(SPI2)가 초평면(HP)을 기준으로 제1 샘플들(C1)에 가까운지 또는 제2 샘플들(C2)에 가까운지 판단할 수 있다. 판단 결과에 따라, 제3 예측 모델(EM3)은 에러들의 수, 에러들의 범위, 신뢰도, 또는 열화도를 판단할 수 있다.
도 11에서, 초평면(HP)을 판단하는 기계 학습 및 초평면(HP)을 이용하는 것으로 설명되었다. 그러나 제3 예측 모델(EM3)은 초평면(HP)이 아닌 곡면을 이용할 수 있다. 또한, 제3 예측 모델(EM3)은 셋 이상의 샘플들을 이용하여 평면 또는 곡면을 판단하고 이용할 수 있다.
도 12는 기계 학습 코어(123)가 에러들의 수를 예측하기 위해 구동하는 제4 예측 모델(EM4)의 예를 보여준다. 예시적으로, 제4 예측 모델(EM4)은 선형 회귀(Linear Regression)에 기반할 수 있다. 도 12에서, 가로축(X)은 각각 제2 장치 정보(DI2), 상태 정보(SI), 그리고 제2 샘플 정보(SPI2)를 나타낸다. 세로축(Y)은 예측된 에러들의 수를 나타낸다. 예를 들어, 총 n개의 정보들이 사용되면, 제4 예측 모델(EM4)은 'n+1'차원에서 학습 및 예측을 수행할 수 있다.
도 8 및 도 12를 참조하면, 기계 학습 시에, 제2 장치 정보(DI2), 상태 정보(SI), 그리고 제2 샘플 정보(SPI2)에 따라 샘플들(SP)이 배열될 수 있다. 샘플들(SP)을 추종하는 예측 선이 생성될 수 있다. 기계 학습이 완료되면, 샘플들(SP)을 추적하는 예측 선(EL)이 고정될 수 있다.
기계 학습 기반 검사 시에, 제4 예측 모델(EM4)은 제2 장치 정보(DI2), 상태 정보(SI), 그리고 제2 샘플 정보(SPI2)를 이용하여 세로축(Y)의 에러들의 수를 획득할 수 있다.
도 13은 제1 메모리 블록(BLK1)의 메모리 셀들(MC)의 에러들의 수가 제1 존(Z1) 및 제2 존(Z2)으로 나뉘어 예측되는 예를 보여준다. 도 1 및 도 13을 참조하면, 예를 들어, 메모리 셀들(MC)은 워드 라인들의 단위로 제1 존(Z1) 및 제2 존(Z2)으로 나뉠 수 있다. 기계 학습 시에 에러들의 수가 유사하게 검출 및 예측되는 메모리 셀들이 동일한 존으로 묶일 수 있다.
기계 학습 코어(123)는 제1 존(Z1)의 메모리 셀들(MC)의 에러들의 수를 공통으로 예측할 수 있다. 또한, 기계 학습 코어(123)는 제2 존(Z2)의 메모리 셀들(MC)의 에러들의 수를 공통으로 예측할 수 있다. 공통 예측을 수행함으로써, 예측 모델의 사이즈 및 복잡도가 감소할 수 있다.
도 14는 본 발명의 따른 검사 읽기 동작의 변형 예를 보여주는 순서도이다. 도 1 및 도 2를 참조하면, S210 단계 및 S220 단계는 도 5의 S110 단계 및 S120 단계와 동일하게 수행된다.
S220 단계에서 기계 학습 기반 검사가 선택된 때에, S230 단계 및 S240 단계에서 메모리 제어 코어(122)는 기계 학습 코어(123)를 이용하여 기계 학습 기반 검사를 수행할 수 있다. S230 단계 및 S240 단계는 도 5의 S130 단계 및 S140 단계와 동일하게 수행될 수 있다. S240 단계에서 에러들의 수가 예측된 후에, S250 단계가 수행된다.
S250 단계에서, 메모리 제어 코어(122)는 예측된 에러들의 수가 제1 문턱(TH1) 이상인지 판단할 수 있다. 예를 들어, 제1 문턱(TH1)은 메모리 인터페이스 블록(126)이 정정할 수 있는 에러들의 수보다 적게 설정될 수 있다. 예측된 에러들의 수가 제1 문턱(TH1)보다 작으면, 메모리 제어 코어(122)는 검사 대상인 메모리 셀들에 저장된 데이터의 신뢰도가 높음을 판단하고, 검사 읽기 동작을 종료할 수 있다.
예측된 에러들의 수가 제1 문턱(TH1) 이상이면, 메모리 제어 코어(122)는 S260 단계 및 S270 단계에서 실제 검사를 수행할 수 있다. S260 단계 및 S270 단계는 도 5의 S150 단계 및 S160 단계와 동일하게 수행될 수 있다. 메모리 제어 코어(122)는 예측된 에러들의 수가 데이터의 신뢰도를 보장할 수 없을 정도로 높을 때에 실제 검사를 추가로 수행함으로써, 검사 대상인 메모리 셀들의 데이터의 신뢰도를 더 정확히 검사할 수 있다.
마찬가지로, S220 단계에서 실제 검사가 선택된 때에도, S260 단계 및 S270 단계에서 실제 검사가 수행될 수 있다. 실제 검사가 수행된 후에, S280 단계가 수행된다. S280 단계에서, 메모리 제어 코어(122)는 실제 검사에서 검출된 에러들의 수가 제2 문턱(TH2) 이상인지 판단할 수 있다. 제2 문턱(TH2)은 메모리 인터페이스 블록(126)이 정정할 수 있는 에러들의 수와 같거나 그보다 적게 설정될 수 있다.
검출된 에러들의 수가 제2 문턱(TH2)보다 작으면, 메모리 제어 코어(122)는 검사 대상인 메모리 셀들에 저장된 데이터의 신뢰도가 높음을 판단하고, 검사 읽기 동작을 종료할 수 있다. 검출된 에러들의 수가 제2 문턱(TH2) 이하이면, 메모리 제어 코어(122)는 검사 대상인 메모리 셀들에 저장된 데이터의 신뢰도가 낮음을 판단할 수 있다. S290 단계에서, 메모리 제어 코어(122)는 리프레시 동작을 수행할 수 있다.
도 15는 스토리지 장치(100)가 검사 읽기 동작을 수행하는 조건 및 실제 검사를 선택하는 조건의 예를 보여주는 순서도이다. 도 1, 도 2 및 도 15를 참조하면, S310 단계에서, 메모리 제어 코어(122)는 랜덤 수들을 생성할 수 있다. 예를 들어, 메모리 제어 코어(122)는 불휘발성 메모리 장치(110)의 리프레시 동작의 단위들, 즉 메모리 블록들(BLK1~BLKz)에 각각 대응하는 랜덤 수들을 생성할 수 있다.
S315 단계에서, 메모리 제어 코어(122)는 읽기 요청을 생성할 수 있다. 예를 들어, 메모리 제어 코어(122)는 외부의 호스트 장치의 요청에 따라 또는 내부적으로 정해진 스케줄에 따라 읽기 요청을 생성할 수 있다. 읽기 요청은 불휘발성 메모리 장치(110)의 메모리 블록들(BLK1~BLKz) 중 선택된 메모리 블록의 선택된 워드 라인을 가리키는 주소를 포함할 수 있다.
메모리 제어 코어(122)는 읽기 요청을 제2 요청(REQ2) 및 제3 요청(REQ3)으로서 불휘발성 메모리 장치(110)에 전달할 수 있다. S320 단계에서, 불휘발성 메모리 장치(110)는 선택된 메모리 블록의 선택된 워드 라인에 연결된 메모리 셀들에 대해 읽기 동작을 수행할 수 있다.
S325 단계에서, 읽기 동작이 수행됨에 따라 메모리 제어 코어(122)는 선택된 메모리 블록에 대응하는 제1 카운트(CNT1)를 증가시킬 수 있다. 예를 들어, 메모리 제어 코어(122)는 불휘발성 메모리 장치(110)의 메모리 블록들(BLK1~BLKz)에 각각 대응하는 제1 카운트들을 관리할 수 있다. 메모리 제어 코어(122)는 선택된 메모리 블록에서 읽기 동작이 수행될 때, 선택된 메모리 블록에 대응하는 제1 카운트(CNT1)를 증가시킬 수 있다.
S330 단계에서, 메모리 제어 코어(122)는 선택된 메모리 블록의 제1 카운트(CNT1)가 선택된 메모리 블록의 랜덤 수와 같은지 판단할 수 있다. 제1 카운트(CNT1)가 랜덤 수와 같지 않으면, 검사 읽기 동작은 수행되지 않는다. 메모리 제어 코어(122)는 후속하는 읽기 요청이 생성될 때에, S315 단계 내지 S325 단계를 수행할 수 있다.
제1 카운트(CNT1)가 랜덤 수와 같으면, 검사 읽기 동작이 수행된다. 검사 읽기 동작을 수행하기 위해, 메모리 제어 코어(122)는 검사 정책을 선택(도 5의 S110 단계 또는 도 14의 S210 단계)할 수 있다. S335 단계에서, 메모리 제어 코어(122)는 제2 카운트(CNT2)가 제3 문턱(TH3)과 같은지 판단할 수 있다.
예를 들어, 메모리 제어 코어(122)는 불휘발성 메모리 장치(110)의 메모리 블록들(BLK1~BLKz)에 각각 대응하는 제2 카운트들을 관리할 수 있다. 선택된 메모리 블록의 검사 정책을 선택할 때, 메모리 제어 코어(122)는 선택된 메모리 블록의 제2 카운트(CNT2)를 제3 문턱(TH3)과 비교할 수 있다.
제2 카운트(CNT2)가 제3 문턱(TH3)과 같지 않으면, S340 단계에서, 기계 학습 기반 검사가 선택된다. S345 단계에서, 메모리 제어 코어(122)는 선택된 메모리 블록의 제2 카운트(CNT2)를 증가시킬 수 있다.
제2 카운트(CNT2)가 제3 문턱(TH3)과 같으면, S350 단계에서, 실제 검사가 선택된다. S355 단계에서, 메모리 제어 코어(122)는 제2 카운트(CNT2)를 리셋(예를 들어, 0으로 초기화)할 수 있다.
도 5 또는 도 14를 참조하여 설명된 바에 따라 검사 읽기 동작을 수행한 후에 또는 수행하기 전에, S360 단계에서, 메모리 제어 코어(122)는 제1 카운트(CNT1)를 리셋할 수 있다. 또한, 메모리 제어 코어(122)는 선택된 메모리 블록의 랜덤 수를 다시 생성할 수 있다. 메모리 제어 코어(122)는 후속하는 읽기 요청이 생성될 때에, S315 단계 내지 S325 단계를 수행할 수 있다.
예시적으로, 읽기 동작에 후속하여 검사 읽기 동작이 수행될 때, 검사 읽기 동작의 대상인 메모리 셀들은 읽기 동작을 위해 선택된 메모리 셀들의 위치들에 따라 선택될 수 있다. 예를 들어, 선택된 워드 라인에 인접한 이웃 워드 라인에 연결된 메모리 셀들이 검사 읽기 동작의 대상으로 선택될 수 있다.
도 16은 도 15의 방법에 따라 특정한 메모리 블록에서 읽기 동작들 및 검사 읽기 동작들이 수행되는 예들을 보여준다. 도 16에서, 가로축은 시간(T)을 가리킨다. 또한, 비어 있는 원은 시간(T)의 흐름에 따라 수행되는 읽기 동작을 가리킨다. 사선으로 채워진 원은 시간(T)의 흐름에 따라 수행되는 검사 읽기 동작, 더 상세하게는 기계 학습 기반 검사를 가리킨다. 점으로 채워진 원은 시간(T)의 흐름에 따라 수행되는 검사 읽기 동작, 더 상세하게는 실제 검사를 가리킨다.
도 1, 도 15 및 도 16을 참조하면, 특정한 메모리 블록에서 검사 읽기 동작들 사이에서 수행되는 읽기 동작들의 수는 랜덤 수에 의해 결정된다. 랜덤 수는 검사 읽기 동작이 수행될 때에 갱신된다. 따라서, 검사 읽기 동작들 사이의 간격은 랜덤 간격(Random Interval)일 수 있다.
실제 검사들 사이에서 수행되는 기계 학습 기반 검사들의 수는 제3 문턱(TH3)에 의해 결정된다. 예를 들어, 제3 문턱(TH3)은 2일 수 있다. 따라서, 검사 읽기 동작들에서, 실제 검사는 제3 문턱(TH3)의 간격을 두고 주기적으로 수행될 수 있다.
도 15를 참조하여 설명된 바와 같이, 검사 읽기 동작은 바로 이전에 수행된 읽기 동작의 선택된 워드 라인에 인접한 이웃 워드 라인에 연결된 메모리 셀들에 대해 수행된다. 따라서, 본 발명의 실시 예에 따른 검사 읽기 동작은 랜덤 간격 이웃 검사(RINC)(Random Interval Neighbor Check)로 불릴 수 있다.
도 17은 본 발명의 실시 예에 따라 검사 읽기 동작을 적응적으로 조절하는 방법의 예를 보여주는 순서도이다. 도 1, 도 14 및 도 17을 참조하면, S410 단계에서, 메모리 제어 코어(122)는 실제 검사에서 검출된 에러들 및 기계 학습 기반 검사에서 검출된 에러들의 차이, 예를 들어 에러들의 수들의 차이를 계산할 수 있다.
도 14를 참조하여 설명된 바와 같이, 검사 대상인 메모리 셀들에서 예측된 에러들의 수가 제1 문턱(TH1) 이상이면 동일한 메모리 셀들에 대해 실제 검사가 수행되고 에러들의 수가 검출된다. 따라서, 검사 대상인 메모리 셀들에서 예측된 에러들의 수와 검출된 에러들의 수의 차이가 계산될 수 있다.
다른 예로서, 메모리 제어 코어(122)는 검사 정책(도 5의 S110 단계 또는 도 14의 S210 단계 참조)으로 실제 검사가 선택된 때에, 검사 대상인 메모리 셀들에 대해 기계 학습 기반 검사를 수행하도록 기계 학습 코어(123)에 지시할 수 있다. 메모리 제어 코어(122)는 예측된 에러들의 수 및 검출된 에러들의 수를 획득하고, 차이를 계산할 수 있다.
S420 단계에서, 메모리 제어 코어(122)는 예측된 에러들의 수가 검출된 에러들의 수보다 큰지 판단할 수 있다. 예를 들어, 메모리 제어 코어(122)는 예측된 에러들의 수가 검출된 에러들의 수보다 제4 문턱(TH4) 이상 큰지 판단할 수 있다. 제4 문턱(TH4)은 메모리 인터페이스 블록(126)이 정정할 수 있는 에러들의 수의 특정 비율(예를 들어, 10% 또는 20%)로 로 설정될 수 있다.
예측된 에러들의 수가 검출된 에러들의 수보다 제4 문턱(TH4) 이상 크면, 메모리 제어 코어(122)는 기계 학습 기반 검사가 에러들의 수를 과도하게 예측함을 판단할 수 있다. S430 단계에서 제1 문턱(TH1)을 증가시킴으로써, 메모리 제어 코어(122)는 기계 학습 기반 검사를 실제 검사로 검증하기 위한 조건을 높일 수 있다. 이후에 제1 문턱(TH1)의 갱신은 종료된다.
예측된 에러들의 수가 검출된 에러들의 수보다 제4 문턱(TH4) 이상 크지 않으면, S440 단계가 수행된다. S440 단계에서, 메모리 제어 코어(122)는 예측된 에러들의 수가 검출된 에러들의 수보다 작은지 판단할 수 있다. 예를 들어, 메모리 제어 코어(122)는 예측된 에러들의 수가 검출된 에러들의 수보다 제5 문턱(TH5) 이상 작은지 판단할 수 있다. 제5 문턱(TH5)은 메모리 인터페이스 블록(126)이 정정할 수 있는 에러들의 수의 특정 비율(예를 들어, 10% 또는 20%)로 로 설정될 수 있다.
예측된 에러들의 수가 검출된 에러들의 수보다 제5 문턱(TH5) 이상 작으면, 메모리 제어 코어(122)는 기계 학습 기반 검사가 에러들의 수를 과소하게 예측함을 판단할 수 있다. S450 단계에서 제1 문턱(TH1)을 감소시킴으로써, 메모리 제어 코어(122)는 기계 학습 기반 검사를 실제 검사로 검증하기 위한 조건을 낮출 수 있다. 이후에 제1 문턱(TH1)의 갱신은 종료된다.
예측된 에러들의 수가 검출된 에러들의 수보다 제5 문턱(TH5) 이상 작지 않으면, S460 단계가 수행된다. S460 단계에서, 메모리 제어 코어(122)는 제1 문턱(TH1)을 유지할 수 있다. 이후에 제1 문턱(TH1)의 갱신은 종료된다.
도 17을 참조하여 설명된 바와 같이, 메모리 제어 코어(122)는 기계 학습 코어(123)의 예측 신뢰도를 반영하여 제1 문턱(TH1)을 조절할 수 있다. 즉, 기계 학습 코어(123)의 예측 오차가 제1 문턱(TH1)을 갱신함으로써 보상될 수 있다.
도 18은 본 발명의 실시 예에 따라 검사 읽기 동작을 적응적으로 조절하는 방법의 다른 예를 보여준다. 도 1, 도 17 및 도 18을 참조하면, 메모리 제어 코어(122)는 예측된 에러들의 수와 검출된 에러들의 수의 차이(예를 들어, 차이의 절대 값)를 계산할 수 있다(도 17의 S410 단계 참조).
계산된 차이가 제6 문턱(TH6)보다 작으면, 메모리 제어 코어(122)는 기계 학습 기반 검사의 신뢰도가 높음을 판단하고, 제3 문턱(TH3)을 증가시킬 수 있다. 예를 들어, 제3 문턱(TH3)은 2에서 3으로 증가할 수 있다. 즉, 실제 검사가 수행되는 빈도가 감소한다. 제6 문턱(TH6)은 메모리 인터페이스 블록(126)이 정정할 수 있는 에러들의 수의 특정 비율(예를 들어, 5% 또는 10%)로 로 설정될 수 있다.
계산된 차이가 제7 문턱(TH7)보다 크면, 메모리 제어 코어(122)는 기계 학습 기반 검사의 신뢰도가 낮음을 판단하고, 제3 문턱(TH3)을 감소시킬 수 있다. 예를 들어, 제3 문턱(TH3)은 2에서 1로 감소할 수 있다. 즉, 실제 검사가 수행되는 빈도가 증가한다. 제7 문턱(TH7)은 메모리 인터페이스 블록(126)이 정정할 수 있는 에러들의 수의 특정 비율(예를 들어, 10% 또는 20%)로 로 설정될 수 있다.
도 19는 기계 학습 기반 검사 및 실제 검사가 동시에 수행되는 예를 보여준다. 도 1 및 도 19를 참조하면, S510 단계에서, 메모리 제어 코어(122)는 기계 학습 기반 검사에 할당된 제1 워드 라인들을 선택할 수 있다. 예를 들어, 메모리 제어 코어(122)는 읽기 동작이 수행된 선택된 워드 라인에 인접한 이웃 워드 라인들 중에서 일부를 제1 워드 라인들로 선택할 수 있다.
S520 단계에서, 메모리 제어 코어(122)는 실제 검사에 할당된 제2 워드 라인들을 선택할 수 있다. 예를 들어, 메모리 제어 코어(122)는 읽기 동작이 수행된 선택된 워드 라인에 인접한 이웃 워드 라인들 중에서 나머지 일부를 제2 워드 라인들로 선택할 수 있다.
S530 단계에서, 메모리 제어 코어(122)는 제1 워드 라인들에 연결된 메모리 셀들에 대해 샘플 읽기 동작을 수행하도록 불휘발성 메모리 장치(110)에 요청할 수 있다. 이후에, 메모리 제어 코어(122)는 제1 워드 라인들에 연결된 메모리 셀들에 기계 학습 기반 검사를 수행하도록 기계 학습 코어(123)에 요청할 수 있다.
S540 단계에서, 기계 학습 코어(123)는 제1 워드 라인들에 연결된 메모리 셀들에 대해 기계 학습 기반 검사를 수행하여 에러들의 수를 예측할 수 있다. 기계 학습 코어(123)는 예측된 에러들의 수를 메모리 제어 코어(122)에 제공할 수 있다.
S550 단계에서, 메모리 제어 코어(122)는 제2 워드 라인들에 연결된 메모리 셀들에 대해 읽기 동작을 수행하도록 불휘발성 메모리 장치에 요청할 수 있다. S560 단계에서, 메모리 인터페이스 블록(126)은 불휘발성 메모리 장치(110)로부터 읽혀진 데이터에 대해 에러 정정 디코딩을 수행하여, 실제 에러들의 수를 검출할 수 있다.
도 13을 참조하여 설명된 바와 같이, 기계 학습 기반 검사는 워드 라인들의 그룹인 존의 단위로 수행될 수 있다. 도 14를 참조하여 설명된 바와 같이, 기계 학습 기반 검사에서 예측된 에러들의 수가 제1 문턱(TH1) 이상이면, 기계 학습 기반 검사가 수행된 메모리 셀들에 대해 실제 검사가 더 수행될 수 있다.
도 14를 참조하여 설명된 바와 같이, 실제 검사에서 검출된 에러들의 수가 제2 문턱(TH2) 이상이면, 검사 읽기 동작의 대상으로 선택된 메모리 블록에 대해 리프레시 동작이 수행될 수 있다.
도 15 및 도 16을 참조하여 설명된 바와 같이, 검사 읽기 동작은 랜덤 간격으로 수행될 수 있다. 도 17을 참조하여 설명된 바와 같이, 메모리 제어 코어(122)는 예측된 에러들의 수와 검출된 에러들의 수의 차이에 따라 제1 문턱(TH1)을 조절할 수 있다.
또한, 메모리 제어 코어(122)는 예측된 에러들의 수와 검출된 에러들의 수의 차이에 따라 제1 워드 라인들의 수와 제2 워드 라인들의 수의 비율을 조절할 수 있다. 예를 들어, 차이(예를 들어, 차이의 절대 값)가 특정한 문턱보다 작으면, 메모리 제어 코어(122)는 제1 워드 라인들의 수를 늘리고 제2 워드 라인들의 수를 줄일 수 있다.
차이(예를 들어, 차이의 절대 값)가 특정한 다른 문턱보다 크면, 메모리 제어 코어(122)는 제1 워드 라인들의 수를 줄이고 제2 워드 라인들의 수를 늘릴 수 있다.
상술된 바와 같이, 제1, 제2, 제3 등의 용어들을 사용하여 검사 읽기 동작을 수행하는 스토리지 장치(100)의 구성 요소들이 설명되었다. 그러나 제1, 제2, 제3 등과 같은 용어들은 구성 요소들을 서로 구별하기 위해 사용되며, 본 발명을 한정하지 않는다. 예를 들어, 제1, 제2, 제3 등과 같은 용어들은 순서 또는 임의의 형태의 수치적 의미를 내포하지 않는다.
상술된 실시 예들에서, 블록들을 사용하여 본 발명의 실시 예들에 따른 구성 요소들이 참조되었다. 블록들은 IC (Integrated Circuit), ASIC (Application Specific IC), FPGA (Field Programmable Gate Array), CPLD (Complex Programmable Logic Device) 등과 같은 다양한 하드웨어 장치들, 하드웨어 장치들에서 구동되는 펌웨어, 응용과 같은 소프트웨어, 또는 하드웨어 장치와 소프트웨어가 조합된 형태로 구현될 수 있다. 또한, 블록들은 IC 내의 반도체 소자들로 구성되는 회로들 또는 IP (Intellectual Property)를 포함할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100: 스토리지 장치
110: 불휘발성 메모리 장치
120: 제어기
121: 제어기 코어
122: 메모리 제어 코어
123: 기계 학습 코어
124: 내부 메모리
125: 호스트 인터페이스 블록
126: 메모리 인터페이스 블록
127: 장치 정보 스토리지

Claims (20)

  1. 메모리 블록들을 포함하고, 각 메모리 블록은 워드 라인들에 연결된 메모리 셀들을 포함하는 불휘발성 메모리 장치; 그리고
    외부의 호스트 장치의 요청에 따라 상기 메모리 블록들 중 선택된 메모리 블록의 상기 워드 라인들 중 선택된 워드 라인에 연결된 메모리 셀들에 대해 제1 읽기 동작을 수행하도록 구성되는 제어기를 포함하고,
    상기 제어기는 상기 제1 읽기 동작을 수행한 후에 상기 선택된 메모리 블록의 상기 메모리 셀들의 신뢰성을 검사(check)하는 검사 읽기 동작을 수행하도록 더 구성되고,
    상기 검사 읽기 동작 시에, 상기 제어기는 실제 검사 및 기계 학습 기반 검사 중 하나를 선택하여 수행하도록 더 구성되는 스토리지 장치.
  2. 제1항에 있어서,
    상기 실제 검사가 선택될 때, 상기 제어기는 상기 선택된 메모리 블록의 상기 워드 라인들 중 검사 목표 워드 라인에 연결된 메모리 셀들에 대해 제2 읽기 동작을 수행하고, 그리고 상기 제2 읽기 동작의 결과에 대해 에러 정정 디코딩을 수행하여 에러들의 수를 카운트하는 스토리지 장치.
  3. 제1항에 있어서,
    상기 기계 학습 기반 검사가 선택될 때, 상기 제어기는 상기 선택된 메모리 블록의 상기 워드 라인들 중 검사 목표 워드 라인에 연결된 메모리 셀들에 대해 샘플 읽기 동작을 수행하고, 그리고 상기 샘플 읽기 동작의 결과 및 상기 스토리지 장치의 정보를 이용하여 기계 학습 기반으로 에러들의 수를 예측하도록 구성되는 스토리지 장치.
  4. 제3항에 있어서,
    상기 스토리지 장치의 상기 정보는 상기 불휘발성 메모리 장치의 웨이퍼 상의 위치, 상기 선택된 메모리 블록의 주소, 상기 선택된 메모리 블록의 소거 횟수, 상기 검사 목표 워드 라인의 주소, 상기 검사 목표 워드 라인에 연결된 상기 메모리 셀들이 프로그램된 후 경과한 시간, 상기 선택된 메모리 블록에서 이전에 수행된 읽기 동작들의 횟수, 상기 선택된 메모리 블록이 프로그램되기 전에 소거 상태로 방치된 시간, 현재 온도, 현재 습도 중 적어도 하나를 포함하는 스토리지 장치.
  5. 제1항에 있어서,
    상기 기계 학습 기반 검사는 신경망(Neural Network), 결정 나무(Decision Tree), 지원 벡터 기계(Support Vector Machine), 그리고 선형 회귀(Linear Regression) 중 적어도 하나에 기반하여 생성된 모델을 사용하는 스토리지 장치.
  6. 제1항에 있어서,
    상기 선택된 메모리 블록의 상기 워드 라인들은 존들(zones)을 형성하고, 상기 존들의 각각은 둘 이상의 워드 라인들을 포함하고,
    상기 기계 학습 기반 검사가 선택될 때, 상기 제어기는 검사 목표 존의 상기 둘 이상의 워드 라인들의 에러들의 수를 공통으로 예측하는 스토리지 장치.
  7. 제1항에 있어서,
    상기 기계 학습 기반 검사가 선택될 때, 상기 제어기는 기계 학습에 기반하여 상기 선택된 메모리 블록의 상기 워드 라인들 중 검사 목표 워드 라인에 연결된 메모리 셀들의 에러들의 수를 예측하고, 그리고
    상기 예측된 에러들의 수가 제1 문턱 값 이상일 때, 상기 제어기는 상기 검사 목표 워드 라인에 대해 상기 실제 검사를 더 수행하도록 구성되는 스토리지 장치.
  8. 제7항에 있어서,
    상기 실제 검사를 통해 검출된 에러들의 수가 제2 문턱 값 이상일 때, 상기 제어기는 상기 선택된 메모리 블록에 대해 리프레시 동작을 더 수행하는 스토리지 장치.
  9. 제7항에 있어서,
    상기 제어기는 상기 실제 검사에서 검출된 에러들의 수와 상기 기계 학습 기반 검사에서 예측된 상기 예측된 에러들의 수의 차이에 따라 상기 제1 문턱 값을 조절하는 스토리지 장치.
  10. 제1항에 있어서,
    상기 제어기는 상기 메모리 블록들에 각각 대응하는 랜덤 수들을 생성하고, 상기 메모리 블록들의 각각에서 수행되는 읽기 동작들의 횟수를 카운트하고, 그리고 상기 선택된 메모리 블록의 상기 읽기 동작들의 횟수가 상기 선택된 메모리 블록에 대응하는 랜덤 수에 도달한 때에 상기 선택된 메모리 블록에 대해 상기 검사 읽기 동작을 수행하도록 더 구성되는 스토리지 장치.
  11. 제10항에 있어서,
    상기 검사 읽기 동작이 수행됨에 따라, 상기 제어기는 상기 선택된 메모리 블록의 상기 읽기 동작들의 상기 횟수를 리셋하고, 그리고 상기 선택된 메모리 블록에 대응하는 상기 랜덤 수를 다시 생성하는 스토리지 장치.
  12. 제10항에 있어서,
    상기 제어기는 상기 선택된 메모리 블록에서 수행되는 검사 읽기 동작들의 횟수를 카운트하고, 상기 검사 읽기 동작들의 상기 횟수가 문턱 값보다 작으면 상기 기계 학습 기반 검사를 선택하고, 그리고 상기 검사 읽기 동작들의 상기 횟수가 상기 문턱 값에 도달하면 상기 실제 검사를 선택하는 스토리지 장치.
  13. 제12항에 있어서,
    상기 선택된 메모리 블록에 대해 상기 실제 검사를 선택함에 따라, 상기 제어기는 상기 선택된 메모리 블록의 상기 검사 읽기 동작들의 상기 횟수를 리셋하는 스토리지 장치.
  14. 제12항에 있어서,
    상기 제어기는 상기 실제 검사에서 검출된 에러들의 수와 상기 기계 학습 기반 검사에서 예측된 에러들의 수의 차이에 따라 상기 문턱 값을 조절하는 스토리지 장치.
  15. 메모리 블록들을 포함하고, 각 메모리 블록은 워드 라인들에 연결된 메모리 셀들을 포함하는 불휘발성 메모리 장치; 그리고
    외부의 호스트 장치의 요청에 따라 상기 메모리 블록들 중 선택된 메모리 블록의 상기 워드 라인들 중 선택된 워드 라인에 연결된 메모리 셀들에 대해 읽기 동작을 수행하도록 구성되는 제어기를 포함하고,
    상기 제어기는 상기 읽기 동작을 수행한 후에 상기 선택된 메모리 블록의 상기 메모리 셀들의 신뢰성을 검사(check)하는 검사 읽기 동작을 수행하도록 더 구성되고,
    상기 검사 읽기 동작 시에, 상기 제어기는 상기 선택된 메모리 블록의 상기 워드 라인들 중 제1 검사 목표 워드 라인들에 대해 실제 검사를 수행하고 그리고 제2 검사 목표 워드 라인들에 대해 기계 학습 기반 검사를 수행하는 스토리지 장치.
  16. 제15항에 있어서,
    상기 제2 검사 목표 워드 라인들 중 하나에서 예측된 에러들의 수가 문턱 값 이상일 때, 상기 제어기는 상기 하나에 대해 상기 실제 검사를 더 수행하도록 구성되는 스토리지 장치.
  17. 제16항에 있어서,
    상기 제어기는 상기 하나에서 예측된 상기 에러들의 상기 수와 상기 하나에서 상기 실제 검사를 통해 검출된 에러들의 수의 차이에 따라 상기 제1 검사 목표 워드 라인들의 수 및 상기 제2 검사 목표 워드 라인들의 수를 조절하도록 더 구성되는 스토리지 장치.
  18. 불휘발성 메모리 장치 및 상기 불휘발성 메모리 장치를 제어하도록 구성되는 제어기를 포함하는 스토리지 장치의 동작 방법에 있어서:
    상기 제어기가 상기 불휘발성 메모리 장치의 메모리 블록들 중 선택된 메모리 블록의 선택된 워드 라인에 연결된 메모리 셀들에 대해 읽기 동작을 수행하는 단계; 그리고
    상기 읽기 동작에 응답하여, 상기 제어기가 상기 불휘발성 메모리 장치의 상기 선택된 메모리 블록의 적어도 하나의 검사 목표 워드 라인에 연결된 메모리 셀들에 대해 검사 읽기 동작을 수행하는 단계를 포함하고,
    상기 검사 읽기 동작을 수행하는 단계는, 상기 적어도 하나의 검사 목표 워드 라인에 연결된 상기 메모리 셀들에 대해 실제 검사 및 기계 학습 기반 검사 중 하나를 선택하여 수행하는 단계를 포함하는 동작 방법.
  19. 제18항에 있어서,
    상기 검사 읽기 동작을 수행하는 단계는, 상기 적어도 하나의 검사 목표 워드 라인에 연결된 상기 메모리 셀들에 대해 상기 기계 학습 기반 검사를 선택하여 수행한 때에, 상기 기계 학습 기반 검사에서 예측된 에러들의 수가 문턱 값 이상일 때, 상기 적어도 하나의 검사 목표 워드 라인에 연결된 상기 메모리 셀들에 대해 상기 실제 검사를 더 수행하는 단계를 더 포함하는 동작 방법.
  20. 제18항에 있어서,
    상기 적어도 하나의 검사 목표 워드 라인은 제1 검사 목표 워드 라인 및 제2 검사 목표 워드 라인을 포함하고,
    상기 실제 검사 및 기계 학습 기반 검사 중 하나를 선택하여 수행하는 단계는, 상기 제1 검사 목표 워드 라인에 대해 상기 실제 검사를 선택하여 수행하고 그리고 상기 제2 검사 목표 워드 라인에 대해 상기 기계 학습 기반 검사를 선택하여 수행하는 단계를 포함하는 동작 방법.
KR1020180120029A 2018-10-08 2018-10-08 스토리지 장치 및 스토리지 장치의 동작 방법 KR102634338B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020180120029A KR102634338B1 (ko) 2018-10-08 2018-10-08 스토리지 장치 및 스토리지 장치의 동작 방법
US16/416,750 US10802728B2 (en) 2018-10-08 2019-05-20 Storage device and operating method of storage device
EP19193482.7A EP3637421B1 (en) 2018-10-08 2019-08-23 Storage device and operating method of storage device
SG10201907980XA SG10201907980XA (en) 2018-10-08 2019-08-29 Storage Device And Operating Method Of Storage Device
CN201910832232.6A CN111009280B (zh) 2018-10-08 2019-09-04 存储装置以及存储装置的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180120029A KR102634338B1 (ko) 2018-10-08 2018-10-08 스토리지 장치 및 스토리지 장치의 동작 방법

Publications (2)

Publication Number Publication Date
KR20200040350A KR20200040350A (ko) 2020-04-20
KR102634338B1 true KR102634338B1 (ko) 2024-02-07

Family

ID=67742330

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180120029A KR102634338B1 (ko) 2018-10-08 2018-10-08 스토리지 장치 및 스토리지 장치의 동작 방법

Country Status (5)

Country Link
US (1) US10802728B2 (ko)
EP (1) EP3637421B1 (ko)
KR (1) KR102634338B1 (ko)
CN (1) CN111009280B (ko)
SG (1) SG10201907980XA (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102635655B1 (ko) * 2018-09-28 2024-02-14 에스케이하이닉스 주식회사 반도체 메모리 장치
US11853863B2 (en) 2019-08-12 2023-12-26 Micron Technology, Inc. Predictive maintenance of automotive tires
US11586943B2 (en) 2019-08-12 2023-02-21 Micron Technology, Inc. Storage and access of neural network inputs in automotive predictive maintenance
US11586194B2 (en) 2019-08-12 2023-02-21 Micron Technology, Inc. Storage and access of neural network models of automotive predictive maintenance
US11775816B2 (en) 2019-08-12 2023-10-03 Micron Technology, Inc. Storage and access of neural network outputs in automotive predictive maintenance
US12061971B2 (en) 2019-08-12 2024-08-13 Micron Technology, Inc. Predictive maintenance of automotive engines
US11635893B2 (en) 2019-08-12 2023-04-25 Micron Technology, Inc. Communications between processors and storage devices in automotive predictive maintenance implemented via artificial neural networks
US11748626B2 (en) 2019-08-12 2023-09-05 Micron Technology, Inc. Storage devices with neural network accelerators for automotive predictive maintenance
US11702086B2 (en) 2019-08-21 2023-07-18 Micron Technology, Inc. Intelligent recording of errant vehicle behaviors
US11361552B2 (en) 2019-08-21 2022-06-14 Micron Technology, Inc. Security operations of parked vehicles
US11498388B2 (en) 2019-08-21 2022-11-15 Micron Technology, Inc. Intelligent climate control in vehicles
US11409654B2 (en) 2019-09-05 2022-08-09 Micron Technology, Inc. Intelligent optimization of caching operations in a data storage device
US11693562B2 (en) 2019-09-05 2023-07-04 Micron Technology, Inc. Bandwidth optimization for different types of operations scheduled in a data storage device
US11436076B2 (en) * 2019-09-05 2022-09-06 Micron Technology, Inc. Predictive management of failing portions in a data storage device
US11435946B2 (en) 2019-09-05 2022-09-06 Micron Technology, Inc. Intelligent wear leveling with reduced write-amplification for data storage devices configured on autonomous vehicles
US11650746B2 (en) 2019-09-05 2023-05-16 Micron Technology, Inc. Intelligent write-amplification reduction for data storage devices configured on autonomous vehicles
US11769076B2 (en) 2019-10-14 2023-09-26 Micron Technology, Inc. Memory sub-system with a virtualized bus and internal logic to perform a machine learning operation
US11676010B2 (en) * 2019-10-14 2023-06-13 Micron Technology, Inc. Memory sub-system with a bus to transmit data for a machine learning operation and another bus to transmit host data
US11681909B2 (en) * 2019-10-14 2023-06-20 Micron Technology, Inc. Memory component with a bus to transmit data for a machine learning operation and another bus to transmit host data
US11694076B2 (en) * 2019-10-14 2023-07-04 Micron Technology, Inc. Memory sub-system with internal logic to perform a machine learning operation
US11250648B2 (en) 2019-12-18 2022-02-15 Micron Technology, Inc. Predictive maintenance of automotive transmission
US11709625B2 (en) 2020-02-14 2023-07-25 Micron Technology, Inc. Optimization of power usage of data storage devices
US11531339B2 (en) 2020-02-14 2022-12-20 Micron Technology, Inc. Monitoring of drive by wire sensors in vehicles
WO2021234600A1 (en) * 2020-05-20 2021-11-25 Khalifa University of Science and Technology Cross coupled capacitor analog in-memory processing device
US11521699B2 (en) * 2020-10-30 2022-12-06 Micron Technology, Inc. Adjusting a reliability scan threshold in a memory sub-system
US11811425B2 (en) 2021-05-18 2023-11-07 Western Digital Technologies, Inc. Neural network soft information detector in a read channel
KR102344380B1 (ko) 2021-06-02 2021-12-28 삼성전자주식회사 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 포함하는 저장 장치 및 그것의 동작 방법
US11836365B2 (en) 2021-06-29 2023-12-05 Dell Products L.P. Automatically adjusting storage system configurations in a storage-as-a-service environment using machine learning techniques
US11694733B2 (en) * 2021-08-19 2023-07-04 Apple Inc. Acceleration of in-memory-compute arrays
KR20230036730A (ko) 2021-09-08 2023-03-15 삼성전자주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
KR102491655B1 (ko) 2021-10-01 2023-01-27 삼성전자주식회사 에러 카운트를 결정하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법
KR102641756B1 (ko) 2021-11-11 2024-02-29 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
EP4181136A1 (en) * 2021-11-11 2023-05-17 Samsung Electronics Co., Ltd. Storage device and operating method of storage device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170345489A1 (en) 2016-05-31 2017-11-30 Lite-On Electronics (Guangzhou) Limited Solid state storage device using state prediction method
US20180108422A1 (en) 2016-10-18 2018-04-19 Samsung Electronics Co., Ltd. Storage device, memory system, and read voltage decision method thereof

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6948102B2 (en) 2002-04-29 2005-09-20 International Business Machines Corporation Predictive failure analysis for storage networks
JP4073799B2 (ja) * 2003-02-07 2008-04-09 株式会社ルネサステクノロジ メモリシステム
US9170897B2 (en) 2012-05-29 2015-10-27 SanDisk Technologies, Inc. Apparatus, system, and method for managing solid-state storage reliability
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US8645773B2 (en) 2011-06-30 2014-02-04 Seagate Technology Llc Estimating temporal degradation of non-volatile solid-state memory
US8938658B2 (en) * 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
KR101934892B1 (ko) 2012-10-17 2019-01-04 삼성전자 주식회사 메모리 장치의 열화 상태 판정 방법 및 이를 이용한 메모리 시스템
CN103971724B (zh) * 2013-02-06 2018-09-18 三星电子株式会社 存储器、存储控制器、存储***、及其操作方法
KR102233074B1 (ko) 2014-10-08 2021-03-30 삼성전자주식회사 저장 장치 및 그것의 신뢰성 검증 방법
KR102606490B1 (ko) * 2016-06-30 2023-11-30 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치
US10013211B2 (en) 2016-09-06 2018-07-03 Samsung Electronics Co., Ltd. Storage devices including nonvolatile memory devices and access methods for nonvolatile memory devices
KR102656190B1 (ko) 2016-11-24 2024-04-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
US20190095299A1 (en) * 2017-09-28 2019-03-28 Cnex Labs, Inc. Storage system with machine learning mechanism and method of operation thereof
US11080621B2 (en) * 2018-06-18 2021-08-03 Western Digital Technologies, Inc. Machine learning-based read channel data detection
US11119662B2 (en) * 2018-06-29 2021-09-14 International Business Machines Corporation Determining when to perform a data integrity check of copies of a data set using a machine learning module

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170345489A1 (en) 2016-05-31 2017-11-30 Lite-On Electronics (Guangzhou) Limited Solid state storage device using state prediction method
US20180108422A1 (en) 2016-10-18 2018-04-19 Samsung Electronics Co., Ltd. Storage device, memory system, and read voltage decision method thereof

Also Published As

Publication number Publication date
CN111009280A (zh) 2020-04-14
EP3637421B1 (en) 2024-03-27
US10802728B2 (en) 2020-10-13
SG10201907980XA (en) 2020-05-28
EP3637421A1 (en) 2020-04-15
KR20200040350A (ko) 2020-04-20
US20200110547A1 (en) 2020-04-09
CN111009280B (zh) 2023-08-29

Similar Documents

Publication Publication Date Title
KR102634338B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
CN107797935B (zh) 存储装置和用于非易失性存储器装置的访问方法
CN108108810B (zh) 包括非易失性存储器件的存储装置及访问方法
KR102606490B1 (ko) 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치
US11721399B2 (en) Memory system with dynamic calibration using a trim management mechanism
CN110008053B (zh) 存储设备、非易失性存储设备以及存储设备的操作方法
US20210225450A1 (en) Nonvolatile memory device and storage device including nonvolatile memory device
US11372551B2 (en) Memory controllers for performing state shaping operation, memory systems including the memory controllers, and methods of operating the same
US20170032849A1 (en) Nonvolatile memory device detecting defective bit line at high speed and test system thereof
US11342013B2 (en) Memory system and operating method to set target command delay time to merge and process read commands
US11500563B2 (en) Memory system and operating method for testing target firmware by processing a plurality of test commands
US11321014B2 (en) Memory system, memory controller, and operating method for performing status check based on status check delay information
US20190006016A1 (en) Method, system, and apparatus for detecting failure of programming of a memory device
US12050777B2 (en) Adaptive scanning of memory devices with supervised learning
US20240185935A1 (en) Bitline voltage adjustment for program operation in a memory device with a defective deck
US20240185924A1 (en) Pass voltage adjustment for program operation in a memory device with a defective deck
US20240242768A1 (en) Controlling erase-to-program delay for improving data retention
US20240170069A1 (en) Execution of prologue sub-operations of a programming operation during data loading
KR102696971B1 (ko) 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
US20240071547A1 (en) Block family error avoidance bin designs addressing error correction decoder throughput specifications
US20230307058A1 (en) Pre-read operation for multi-pass programming of memory devices
US20230060440A1 (en) Sacrificial strings in a memory device to detect read disturb
CN118335153A (zh) 控制擦除到编程延迟以改进数据保留
CN112166472A (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