KR20210020689A - 추론에 기초하여 요청을 처리하는 메모리 시스템 및 이의 동작 방법 - Google Patents

추론에 기초하여 요청을 처리하는 메모리 시스템 및 이의 동작 방법 Download PDF

Info

Publication number
KR20210020689A
KR20210020689A KR1020190100539A KR20190100539A KR20210020689A KR 20210020689 A KR20210020689 A KR 20210020689A KR 1020190100539 A KR1020190100539 A KR 1020190100539A KR 20190100539 A KR20190100539 A KR 20190100539A KR 20210020689 A KR20210020689 A KR 20210020689A
Authority
KR
South Korea
Prior art keywords
read
level
deterioration
memory
information
Prior art date
Application number
KR1020190100539A
Other languages
English (en)
Inventor
오현교
송진백
노강호
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020190100539A priority Critical patent/KR20210020689A/ko
Priority to US16/819,374 priority patent/US11114174B2/en
Priority to CN202010534678.3A priority patent/CN112395210A/zh
Publication of KR20210020689A publication Critical patent/KR20210020689A/ko
Priority to US17/395,872 priority patent/US11715538B2/en

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/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
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • 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/0411Online error correction

Landscapes

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

Abstract

본 개시의 기술적 사상에 따른 메모리 시스템은, 복수의 블록들을 포함하는 메모리 장치, 복수의 블록들 중 적어도 하나의 열화 정보를 저장하는 버퍼 및 호스트의 독출 요청에 응답하여, 열화 정보에 기초하여 독출 요청에 대응하는 블록의 열화 레벨을 판단하고, 열화 레벨에 따라 독출 요청에 대응하는 독출 레벨을 추론하고, 독출 레벨에 기초하여 메모리 장치로부터 데이터를 독출하도록 구성된 메모리 컨트롤러를 포함할 수 있다.

Description

추론에 기초하여 요청을 처리하는 메모리 시스템 및 이의 동작 방법{MEMORY SYSTEM PROCESSING REQUEST BASED ON INFERENCE AND OPERATING METHOD OF THE SAME}
본 개시의 기술적 사상은 메모리 시스템에 관한 것으로서, 구체적으로 독출 요청에 대응하는 블록의 열화 정보를 기초로 독출 레벨을 추론하는 메모리 시스템 및 이의 동작 방법에 관한 것이다.
메모리 시스템은 메모리 컨트롤러와 메모리 장치를 포함할 수 있으며, 메모리 장치의 일 종류로서 비휘발성 메모리 장치는 데이터를 비휘발성하게 저장하는 다수의 메모리 셀들을 포함할 수 있다. 또한, 비휘발성 메모리로서 플래시 메모리는 메모리 셀들의 문턱 전압을 변화시킴으로써 데이터를 저장할 수 있고, 미리 정해진 독출 레벨을 이용하여 데이터를 독출할 수 있다. 그러나 다양한 원인들에 기인하여 메모리 셀들에 열화가 발생할 수 있고, 메모리 셀들의 열화에 의해 변경된 문턱 전압으로 인해 독출 오류가 발생할 수 있다.
본 개시의 기술적 사상은 독출 요청에 대응하는 블록의 열화 정보를 기초로 추론된 독출 레벨을 이용하여 데이터를 독출함에 따라 신뢰성 및 효율성이 향상된 메모리 시스템 및 이의 동작 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 메모리 시스템은, 복수의 블록들을 포함하는 메모리 장치, 복수의 블록들 중 적어도 하나의 열화 정보를 저장하는 버퍼 및 호스트의 독출 요청에 응답하여, 열화 정보에 기초하여 독출 요청에 대응하는 블록의 열화 레벨을 판단하고, 열화 레벨에 따라 독출 요청에 대응하는 독출 레벨을 추론하고, 독출 레벨에 기초하여 메모리 장치로부터 데이터를 독출하도록 구성된 메모리 컨트롤러를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 메모리 시스템은, 복수의 블록들을 포함하는 메모리 장치, 복수의 블록들 중 적어도 하나의 열화 정보를 저장하는 버퍼 및 호스트 독출 요청에 응답하여 메모리 장치로부터 데이터를 독출하도록 구성된 메모리 컨트롤러를 포함하고, 메모리 컨트롤러는, 독출 레벨을 추론하도록 학습된 인공 지능 모델을 실행하는 하드웨어 가속기(Hardware Accelerator) 및 독출 요청에 대응하는 블록의 열화 정보를 하드웨어 가속기에 제공하도록 버퍼를 제어하고, 인공 지능 모델을 통해 독출 요청에 대응하는 독출 레벨을 획득하고, 획득한 독출 레벨에 기초하여 데이터를 독출하도록 구성된 프로세서를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 복수의 블록들을 구비한 메모리 장치를 포함하는 메모리 시스템의 동작 방법은, 호스트로부터 독출 요청을 수신하는 단계, 독출 요청에 대응하는 블록의 열화 정보를 획득하는 단계, 열화 정보를 기초로 독출 요청에 대응하는 블록의 열화 레벨을 판단하는 단계, 열화 레벨에 따라 독출 요청에 대응하는 독출 레벨을 추론하는 단계 및 독출 레벨에 기초하여 메모리 장치로부터 데이터를 독출하는 단계를 포함할 수 있다.
본 개시의 예시적 실시예에 따른 메모리 시스템 및 이의 동작 방법에 의하면, 독출 요청에 대응되는 블록의 열화 상태를 미리 예상하고, 예상된 열화 상태에서도 독출 오류 없이 데이터를 독출할 수 있는 독출 레벨을 추론하므로, 독출한 데이터에 대한 신뢰성이 향상될 수 있으며, 독출 재시도 동작을 수행하지 않음에 따라 성능이 향상될 수 있다.
또한, 본 개시의 예시적 실시예에 따른 메모리 시스템 및 이의 동작 방법에 의하면, 열화에 따른 문턱 전압 산포의 상당한 변화가 예상되는 경우에만 독출 레벨의 추론 동작을 수행함으로써, 신뢰성 향상 및 독출 재시도 동작을 줄이면서도, 추론 동작에 의한 연산량을 줄일 수 있다.
또한, 본 개시의 예시적 실시예에 따른 메모리 시스템 및 이의 동작 방법에 의하면, 독출 레벨의 추론하는 인공 지능 모델을 TCM(Tightly Coupled Memory) 또는 하드웨어 가속기(Hardware Accelerator)를 통해 실행하므로, 독출 요청에 응답하여 메모리를 독출하는데 소요되는 시간을 줄일 수 있다.
도 1은 본 개시의 일 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는 본 개시의 일 실시예에 따른 도 1의 메모리 장치의 일 구현 예를 나타내는 도면이다.
도 3a 및 도 3b는 메모리 셀들의 열화에 따른 문턱 전압 산포 변화의 일 예를 나타낸다.
도 4a 및 도 4b는 메모리 셀들의 열화에 따른 문턱 전압 산포 변화의 일 예를 나타낸다.
도 5는 본 개시의 일 실시예에 따른 도 1의 메모리 컨트롤러를 나타내는 도면이다.
도 6은 본 개시의 일 실시예에 따른 도 1의 메모리 컨트롤러를 나타내는 도면이다.
도 7 및 도 8은 본 개시의 일 실시예에 따른 메모리 시스템의 동작 방법을 나타내는 순서도이다.
도 9는 본 개시의 일 실시예에 따른 열화 정보 생성 방법을 나타내는 순서도이다.
도 10은, 도 9의 열화 정보 생성 방법에 따른 열화 정보의 예시를 나타내는 도면이다.
도 11은, 도 10의 열화 정보를 이용한 독출 레벨의 추론 방법의 예시를 나타내는 순서도이다.
도 12는 본 개시의 일 실시예에 따른 열화 정보 및 열화 레벨 정보 생성 방법을 나타내는 순서도이다.
도 13은, 도 12의 열화 정보 및 열화 레벨 정보 생성 방법에 따른 열화 정보 및 열화 레벨 정보의 예시를 나타내는 도면이다.
도 14는, 도 13의 열화 정보 및 열화 레벨 정보를 이용한 독출 레벨의 추론 방법의 예시을 나타내는 순서도이다.
도 15는 본 개시의 일 실시예에 따른 인공 지능 모델을 나타내는 도면이다.
도 16은 본 개시의 일 실시예에 따른 SSD 시스템을 나타내는 블록도이다.
도 1은 본 개시의 일 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 1을 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(100) 및 메모리 장치(200)를 포함할 수 있으며, 메모리 컨트롤러(100)는 인공 지능 모델(110)을 포함할 수 있고, 메모리 장치(200)는 메모리 셀 어레이(210), 전압 생성기(220) 및 제어 로직(230)을 포함할 수 있다.
호스트(HOST)는 다양한 인터페이스를 통하여 메모리 시스템(10)과 통신할 수 있다. 예를 들어, 독출 요청(read request) 및 기입 요청(write request) 등을 메모리 시스템(10)에 전달할 수 있다. 호스트(HOST)는 AP(Application Processor) 또는 SoC(System-On-a-Chip, SoC) 등으로 구현될 수 있다.
메모리 시스템(10)은 PC(personal computer), 데이터 서버, 네트워크-결합 스토리지(network-attached storage, NAS), IoT(Internet of Things) 장치, 또는 휴대용 전자 기기 등으로 구현될 수 있다. 휴대용 전자 기기는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등일 수 있다.
또는, 메모리 시스템(10)은 전자 장치에 내장되는 내부 메모리로 구현될 수 있다. 예를 들어, 메모리 시스템(10)은 임베디드 UFS(Universal Flash Storage) 메모리 장치, eMMC(embedded Multi-Media Card) 또는 SSD(Solid State Drive)일 수 있다. 또는, 메모리 시스템(10)은 전자 장치에 착탈 가능한 외장 메모리로 구현될 수 있다. 예를 들어, 메모리 시스템(10)은 UFS 메모리 카드, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick)일 수 있다.
메모리 컨트롤러(100)는 호스트(HOST)로부터의 기입/독출 요청에 응답하여 메모리 장치(200)에 데이터를 기입(또는, 프로그램)하거나 메모리 장치(200)에 저장된 데이터를 독출 또는 소거하도록 메모리 장치(200)를 제어할 수 있다.
구체적으로, 메모리 컨트롤러(100)는 메모리 장치(200)에 어드레스(ADDR), 커맨드(CMD) 또는 제어 신호(CTRL)를 제공함으로써, 메모리 장치(200)에 대한 기입, 독출 또는 소거 동작을 제어할 수 있다. 또한, 메모리 장치(200)에 기입될 데이터(DATA)와 메모리 장치(200)로부터 독출된 데이터(DATA)는 메모리 컨트롤러(100)와 메모리 장치(200) 사이에서 송수신될 수 있다.
메모리 장치(200)는 비휘발성 메모리 장치일 수 있다. 메모리 셀 어레이(210)는 복수의 메모리 셀들을 포함할 수 있으며, 예를 들어, 복수의 메모리 셀들은 플래쉬 메모리 셀들일 수 있다. 그러나 본 발명은 이에 한정되지 않고, 메모리 셀 어레이(210)에 포함된 복수의 메모리 셀들은 ReRAM(resistive RAM), PRAM(phase change RAM) 또는 MRAM(magnetic RAM)과 같은 저항성 메모리 셀들일 수 있다.
메모리 셀 어레이(210)는 다수의 블록들을 포함할 수 있다. 또한, 다수의 블록들 각각은 다수의 페이지들을 포함할 수 있으며, 각각의 페이지는 다수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(210)에서, 데이터의 소거 동작은 블록 단위로 수행될 수 있으며, 또한 데이터의 기입 및 독출 동작은 페이지 단위로 수행될 수 있다. 예를 들어, 메모리 장치(200)는 메모리 컨트롤러(100)로부터의 어드레스(ADDR)를 참조하여 블록 단위의 소거 동작을 수행하고, 또한 페이지 단위의 기입 및 독출 동작을 수행할 수 있다.
전압 생성기(220)는 전술한 기입/독출/소거 동작을 수행하기 위한 다양한 종류의 전압을 생성할 수 있다. 예를 들어, 데이터 기입 동작은 ISPP(Incremental Step Pulse Program)을 이용하여 수행될 수 있으며, 전압 생성기(220)는 ISPP에 사용되는 다수의 전압들을 생성하여 메모리 셀 어레이(210)로 제공할 수 있다. 또한, 전압 생성기(220)는 데이터의 독출 동작에 이용되는 독출 전압을 생성하여 메모리 셀 어레이(210)로 제공할 수 있다. 또한, 전압 생성기(220)는 소거 동작에 이용되는 고전압 레벨을 갖는 소거 전압을 생성하여 메모리 셀 어레이(210)로 제공할 수 있다.
제어 로직(230)은 메모리 동작과 관련하여 메모리 장치(200)의 전반적인 동작을 제어할 수 있다. 예를 들어, 제어 로직(230)은 전압 생성기(220)를 제어할 수 있으며, 전압 생성기(220)는 제어 로직(230)의 제어에 따라 생성하는 각종 전압들의 레벨을 변경할 수 있다. 또한, 전압 생성기(220)가 생성하는 전압들에 따라 메모리 셀 어레이(210)의 메모리 셀들의 문턱 전압 산포가 조절될 수 있다.
한편, 메모리 셀 어레이(210)의 복수의 메모리 셀들에는 문턱 전압이 변화하는 열화(Degradation)가 발생할 수 있다. 열화는 리텐션(Retention), 플로팅 게이트 커플링(floating gate coupling), 또는 시간의 경과에 따른 전하 손실(charge loss) 등의 원인에 의해 발생할 수 있다.
복수의 메모리 셀들에 발생한 열화로 인해 문턱 전압이 변화한 상태에서, 메모리 시스템(10)이 디폴트 독출 레벨을 그대로 사용하여 데이터를 독출하면 독출 오류가 발생할 수 있다. 여기서 독출 오류는, 독출된 데이터 중 에러 비트의 개수가 ECC(Error Correction Code)로 정정 가능한 기준 개수 이상인 경우를 의미할 수 있다. 한편, 독출 오류는 UECC(Uncorrectable ECC)라고 지칭할 수 있다.
독출 오류를 제거하기 위해서는, 독출 재시도(Read Retry) 동작을 수행함으로써 독출 레벨을 수정하는 것이 요구될 수 있다. 메모리 시스템(10)은 독출 재시도 동작을 수행하기 위해 방어 코드(recovery code)를 실행할 수 있으며, 방어 코드의 실행에 상당한 시간이 소요될 수 있다. 이와 같이, 메모리 셀에 열화가 발생한 상태에서 디폴트 독출 레벨을 사용하여 데이터를 독출하는 경우, 메모리 시스템(10)은 독출 오류로 인한 데이터의 신뢰성(reliability) 약화 및 독출 재시도 동작 수행에 따른 성능 저하를 초래할 수 있다.
본 발명의 예시적인 실시예에 따르면, 열화에 의한 신뢰성 약화 및 성능 저하를 방지하기 위해, 메모리 컨트롤러(100)는 호스트(HOST)의 독출 요청에 응답하여 메모리 장치(200)의 복수의 블록들의 열화 정보를 기초로 독출 레벨을 추론하고, 추론한 독출 레벨에 기초하여 메모리 장치(200)로부터 데이터를 독출할 수 있다. 여기서 열화 정보는, 메모리 셀 어레이(210)에 포함된 복수의 블록들의 열화 상태와 관련된 다양한 정보들을 포함할 수 있다.
즉, 본 발명의 예시적인 실시예는, 메모리 컨트롤러(100)가 복수의 블록들의 열화 정보를 기초로 독출 요청에 대응되는 블록의 열화 상태를 미리 예상하고, 예상된 열화 상태에서도 독출 오류 없이 데이터를 독출할 수 있는 독출 레벨을 추론할 수 있다. 그리고 메모리 컨트롤러(100)는 추론한 독출 레벨에 대한 정보를 커맨드(CMD) 및/또는 제어 신호(CTRL)를 통해서 메모리 장치(200)에 제공함으로써 데이터를 독출할 수 있다. 따라서, 본 발명의 예시적인 실시예에 따른 메모리 시스템(10)은 독출한 데이터에 독출 오류가 발생할 가능성이 감소할 수 있고, 데이터에 대한 신뢰성을 향상시킬 수 있으며, 독출 재시도 동작을 수행하지 않음에 따라 향상된 성능을 가질 수 있다.
또한, 본 발명의 예시적인 실시예에 따르면, 메모리 컨트롤러(100)는 독출 레벨을 추론하도록 학습된(trained) 인공 지능 모델(110)을 포함할 수 있다. 그리고 메모리 컨트롤러(100)는 인공 지능 모델(110)을 이용하여 전술한 독출 레벨의 추론 동작을 수행할 수 있다. 구체적으로, 메모리 컨트롤러(100)는 인공 지능 모델(110)에 열화 정보를 제공함으로써 독출 요청에 대응하는 독출 레벨을 획득할 수 있다.
여기서 인공 지능 모델(110)은, 소프트웨어 또는 하드웨어로 구현될 수 있으며, 인공 신경망(Artificial Neural Network, ANN) 모델, 다층 퍼셉트론(Multi-Layer Perceptrons, MLP) 모델, 합성곱 신경망(Convolutional Neural Network, CNN) 모델, 결정 트리(Decision Tree) 모델, 랜덤 포레스트(Random Forest) 모델, 아다부스트(AdaBoost) 모델, 멀티 회귀 분석법(Multiple Regression Analysis) 모델, 로지스틱 회귀 분석법(Logistic Regression) 모델 및 란삭(RANdom SAmple Consensus, RANSAC) 모델 중 적어도 하나에 기초한 모델일 수 있다. 한편, 인공 지능 모델(110)의 종류는 전술한 예에 한하지 않는다.
또한, 본 발명의 예시적인 실시예에 따르면, 메모리 컨트롤러(100)는 독출 요청에 대응되는 블록의 열화 레벨에 따라 전술한 독출 레벨의 추론 동작을 선택적으로 수행할 수 있다. 구체적으로, 메모리 컨트롤러(100)는 독출 요청에 대응되는 블록의 열화 정보를 기초로 발생한 열화의 정도를 의미하는 열화 레벨을 판단하고, 판단된 열화 레벨에 따라 독출 레벨의 추론 동작을 수행하거나 수행하지 않을 수 있다.
예를 들어, 메모리 컨트롤러(100)는 독출 요청에 대응되는 블록의 열화 레벨이 미리 정의된 문턱값 이상이면, 열화에 따른 문턱 전압 산포의 변화가 상당한 것으로 예상되므로, 독출 요청에 대응되는 독출 레벨을 추론할 수 있다. 반면, 메모리 컨트롤러(100)는 독출 요청에 대응되는 블록의 열화 레벨이 문턱값 이하이면, 열화에 따른 문턱 전압 산포의 변화가 적은 것으로 예상되므로, 독출 레벨을 추론하지 않고 디폴트 독출 레벨에 기초하여 데이터를 독출할 수 있다. 그리고 상술한 열화 레벨을 판단하고, 판단된 열화 레벨에 따라 독출 레벨의 추론 동작의 수행 여부를 결정하는 동작은 메모리 컨트롤러(100) 내에 저장되어 프로세싱 유닛에 의해 실행되는 별도의 펌웨어 또는 소프트웨어를 통해 구현될 수 있다.
이와 같이, 본 발명의 예시적인 실시예는, 메모리 컨트롤러(100)가 열화에 따른 문턱 전압 산포의 상당한 변화가 예상되는 경우에만 독출 레벨의 추론 동작을 수행함으로써, 신뢰성 향상 및 독출 재시도 동작을 줄이면서도, 추론 동작에 의한 연산량을 줄일 수 있다.
도 2는 본 개시의 예시적 실시예에 따른 도 1의 메모리 장치의 일 구현 예를 나타내는 도면이다.
도 2를 참조하면, 메모리 장치(200)는 메모리 셀 어레이(210), 전압 생성기(220), 제어 로직(230), 로우 디코더(240) 및 페이지 버퍼(250)를 포함할 수 있다. 한편, 도 2에 도시되지는 않았으나, 메모리 장치(200)는 데이터 입출력 회로 또는 입출력 인터페이스 등 메모리 동작에 관련된 다른 다양한 구성 요소들을 더 포함할 수 있다.
메모리 셀 어레이(210)는 복수의 블록들(BLK1 ~ BLKz)을 포함하고, 블록들(BLK1~BLKz)의 메모리 셀들은 워드라인들(WL), 스트링 선택 라인들(SSL), 접지 선택 라인들(GSL) 및 비트라인들(BL)에 연결될 수 있다. 메모리 셀 어레이(210)는 워드라인들(WL), 스트링 선택 라인들(SSL) 및 접지 선택 라인들(GSL)을 통해 로우 디코더(240)에 연결되고, 비트라인들(BL)을 통해 페이지 버퍼(250)에 연결될 수 있다. 메모리 셀들 각각은 하나 또는 그 이상의 비트들을 저장할 수 있다. 예를 들어, 각 메모리 셀은 멀티 레벨 셀(Multi Level Cell, MLC), 트리플 레벨 셀(Triple Level Cell, TLC) 또는 쿼드 레벨 셀(Quad Level Cell, QLC)에 해당할 수 있다.
메모리 셀 어레이(210)는 2차원 메모리 셀 어레이를 포함할 수 있고, 2차원 메모리 셀 어레이는 행 및 열 방향을 따라 배치된 복수의 셀 스트링들을 포함할 수 있다. 또한, 일 실시예에 따라, 메모리 셀 어레이(210)는 3차원 메모리 셀 어레이를 포함할 수 있고, 3차원 메모리 셀 어레이는 복수의 셀 스트링들을 포함할 수 있으며, 각 셀 스트링은 기판 위에 수직으로 적층된 워드라인들에 각각 연결된 메모리 셀들을 포함할 수 있다. 미국 특허공개공보 제7,679,133호, 미국 특허공개공보 제8,553,466호, 미국 특허공개공보 제8,654,587호, 미국 특허공개공보 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 3차원 메모리 셀 어레이가 복수 레벨로 구성되고 워드 라인들 및/또는 비트 라인들이 레벨들 간에 공유되어 있는 3차원 메모리 셀 어레이에 대한 적절한 구성들을 상술하는 것들로서, 본 명세서에 인용 형식으로 결합된다.
제어 로직(230)은 메모리 컨트롤러(100)로부터 수신한 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로, 메모리 셀 어레이(210)에 데이터를 프로그램하거나 메모리 셀 어레이(210)로부터 데이터를 독출하기 위한 각종 내부 제어 신호를 출력할 수 있다. 예를 들어, 제어 로직(230)은 전압 생성기(220)에서 생성되는 각종 전압들의 레벨을 제어하기 위한 전압 제어신호(CTRL_vol)를 출력할 수 있으며, 로우 디코더(240)에 로우 어드레스(X-ADDR)를 제공할 수 있으며, 페이지 버퍼(250)에 칼럼 어드레스(Y-ADDR)를 제공할 수 있다. 또한, 전압 생성기(220)는 메모리 장치(200) 내에서 이용되는 각종 전압들을 생성할 수 있으며, 일 예로서 기입 동작에 이용되는 프로그램 전압, 검증 전압 및 독출 동작에 이용되는 독출 전압을 생성할 수 있다.
본 발명의 예시적인 실시예에 따르면, 전술한 독출 레벨의 추론 동작과 관련하여, 메모리 컨트롤러(100)가 커맨드(CMD) 및/또는 제어 신호(CTRL)를 통해서 추론한 독출 레벨에 대한 정보를 전송할 수 있다. 그리고 제어 로직(230)은 수신한 커맨드(CMD) 및/또는 제어 신호(CTRL)를 통해 확인한 독출 레벨에 대한 정보를 기초로 전압 제어 신호(CTRL_vol)를 생성할 수 있다. 그리고 전압 생성기(220)는 전압 제어 신호(CTRL_vol)에 응답하여 추론한 독출 레벨에 대응되는 독출 전압(Vrd)을 생성할 수 있다.
도 3a 및 도 3b는 메모리 셀들의 열화에 따른 문턱 전압 산포 변화의 일 예를 나타낸다.
도 3a 및 도 3b를 참조하면, 가로축은 문턱 전압(Vth)을 나타내고, 세로축은 메모리 셀들의 개수를 나타낸다. 도 3a를 참조하면, 메모리 셀이 1 비트로 프로그램되는 싱글 레벨 셀인 경우, 메모리 셀은 소거 상태(E) 및 프로그램 상태(P) 중 하나의 상태를 가질 수 있다. 그리고 메모리 셀은 소거 상태(E) 또는 프로그램 상태(P)에 대응되는 문턱 전압 산포를 가질 수 있다. 메모리 시스템(10)은 메모리 셀의 소거 상태(E) 또는 프로그램 상태(P)를 판별하기 위해 디폴트 독출 레벨(DRL)을 이용할 수 있다.
한편, 메모리 셀에 열화가 발생하는 경우, 메모리 셀의 문턱 전압 산포는 변할 수 있다. 도 3b를 참조하면, 메모리 셀의 소거 상태(E) 또는 프로그램 상태(P)에 대응되는 문턱 전압 산포가 변화한 것을 확인할 수 있다. 구체적으로, 메모리 셀들의 문턱 전압 산포는, 메모리 셀의 전하 저장층에 저장된 전하가 기판으로 누설되어 문턱 전압이 감소하거나, 인접한 메모리 셀에 대한 독출 동작의 수행에 따른 독출 디스터브(disturb)에 의해 문턱 전압이 증가함으로써 변화할 수 있다. 이 외에도 메모리 셀의 문턱 전압 산포는 메모리 셀에 대한 프로그램/소거 횟수가 증가하거나 메모리 셀의 동작 온도 변화에 의해서도 변경될 수 있다.
한편, 문턱 전압 산포가 변화한 상태에서, 메모리 시스템(10)이 메모리 셀의 소거 상태(E) 또는 프로그램 상태(P)를 판별하기 위해 디폴트 독출 레벨(DRL)을 그대로 사용하여 데이터를 독출하는 경우, 프로그램 상태(P)로 프로그램된 메모리 셀들 중 일부에 대해 독출 오류가 발생할 수 있다. 이 경우, 독출 재시도 동작을 수행함으로써 독출 레벨을 수정하는 것이 요구될 수 있다.
그러나 본 발명의 예시적인 실시예에 따르면, 메모리 시스템(10)은 호스트(HOST)의 독출 요청에 응답하여, 열화 정보를 기초로 독출 요청에 대응하는 블록의 열화 상태를 미리 예상하고, 예상된 열화 상태를 기초로 독출 오류가 발생하지 않을 독출 레벨을 추론할 수 있다. 그리고 메모리 시스템(10)은 메모리 셀의 소거 상태(E) 또는 프로그램 상태(P)를 판별하기 위해 추론된 독출 레벨(IRL)을 이용할 수 있다. 이에 따라, 메모리 시스템(10)은 독출한 데이터에 대한 신뢰성을 향상시킬 수 있으며, 독출 재시도 동작을 수행하지 않음에 따라 성능이 향상될 수 있다.
도 4a 및 도 4b는 메모리 셀들의 열화에 따른 문턱 전압 산포 변화의 일 예를 나타낸다.
도 4a 및 도 4b를 참조하면, 가로축은 문턱 전압(Vth)을 나타내고, 세로축은 메모리 셀들의 개수를 나타낸다. 도 4a를 참조하면, 메모리 셀이 2 비트로 프로그램되는 멀티 레벨 셀인 경우, 메모리 셀은 소거 상태(E) 및 제1 내지 제3 프로그램 상태들(P1 내지 P3) 중 하나의 상태를 가질 수 있다. 그리고 메모리 셀은 소거 상태(E) 또는 제1 내지 제3 프로그램 상태들(P1 내지 P3)에 대응되는 문턱 전압 산포를 가질 수 있다. 메모리 시스템(10)은 메모리 셀의 제1 내지 제3 프로그램 상태들(P1 내지 P3)을 판별하기 위해 제1 내지 제3 디폴트 독출 레벨들(DRL1 내지 DRL3)을 각각 이용할 수 있다.
한편, 메모리 셀에 열화가 발생하는 경우, 메모리 셀의 문턱 전압 산포는 변할 수 있다. 도 4b를 참조하면, 메모리 셀의 소거 상태(E) 또는 제1 내지 제3 프로그램 상태들(P1 내지 P3)에 대응되는 문턱 전압 산포가 변화한 것을 확인할 수 있다. 이때, 메모리 시스템(10)이 메모리 셀의 소거 상태(E) 또는 제1 내지 제3 프로그램 상태들(P1 내지 P3)을 판별하기 위해 디폴트 독출 레벨들(DRL1 내지 DRL3)을 그대로 사용하여 데이터를 독출하는 경우, 제1 내지 제3 프로그램 상태들(P1 내지 P3)로 프로그램된 메모리 셀들 중 일부에 대해 독출 오류가 발생할 수 있다. 이 경우, 독출 재시도 동작을 수행함으로써 독출 레벨을 수정하는 것이 요구될 수 있다.
그러나 본 발명의 예시적인 실시예에 따르면, 메모리 시스템(10)은 호스트(HOST)의 독출 요청에 응답하여, 열화 정보를 기초로 독출 요청에 대응하는 블록의 열화 상태를 미리 예상하고, 예상된 열화 상태를 기초로 독출 오류가 발생하지 않을 독출 레벨을 추론할 수 있다. 그리고 메모리 시스템(10)은 메모리 셀의 소거 상태(E) 또는 제1 내지 제3 프로그램 상태들(P1 내지 P3)을 판별하기 위해 추론된 독출 레벨들(IRL1 내지 IRL3)을 이용할 수 있다. 이에 따라, 메모리 시스템(10)은 독출한 데이터에 대한 신뢰성을 향상시킬 수 있으며, 독출 재시도 동작을 수행하지 않음에 따라 성능이 향상될 수 있다.
한편, 도 3a 내지 도 4b에는 도시되지 않았으나, 메모리 셀이 트리플 레벨 셀 또는 쿼드 레벨 셀인 경우에도 전술한 방법과 동일한 원리를 적용할 수 있다.
도 5는 본 개시의 일 실시예에 따른 도 1의 메모리 컨트롤러를 나타내는 도면이다.
도 5를 참조하면, 메모리 컨트롤러(100)는 호스트 인터페이스(120), 프로세서(130), TCM(Tightly Coupled Memory)(140), 메모리(150), ECC(Error Correction Code) 모듈(160) 및 메모리 인터페이스(170)를 포함할 수 있고, 버스(180)를 통해 서로 통신할 수 있다.
호스트 인터페이스(120)는 호스트(HOST)와 메모리 시스템(10)의 물리적 연결을 제공할 수 있다. 일 예로서, 호스트 인터페이스(120)는, ATA(advanced technology attachment), SATA(serial ATA), e-SATA(external SATA), SCSI(small computer small interface), SAS(serial attached SCSI), PCI(peripheral component interconnection), PCI-E(PCI express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi media card), eMMC(embedded multi media card), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식들을 포함할 수 있다.
호스트 인터페이스(120)는 호스트(HOST)로부터 독출 요청을 수신할 수 있으며, 메모리 장치(200)로부터 독출된 데이터를 호스트(HOST)로 전송할 수 있다.
프로세서(130)는 중앙 처리 장치나 마이크로 프로세서 등을 포함할 수 있으며, 메모리(150)에 저장된 명령어들(instructions)을 실행함으로써 메모리 컨트롤러(100)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(130)는 독출 요청에 대응하는 블록의 열화 정보를 이용하여 열화 레벨을 판단하고, 판단된 열화 레벨에 따라 독출 레벨의 추론 동작의 수행 여부를 결정하는 기능을 수행하는 펌웨어 또는 소프트웨어를 실행할 수 있다. 그리고 프로세서(130)는 독출 레벨을 추론하도록 학습된 인공 지능 모델(110)이 저장된 TCM(140)을 포함할 수 있다. 프로세서(130)는 TCM(140)에 상대적으로 짧은 시간 내에 액세스할 수 있는바, 호스트(HOST)로부터 독출 요청을 수신하면 인공 지능 모델(110)을 이용한 독출 레벨의 추론 동작을 빠르게 수행할 수 있다.
메모리(150)는 프로세서(130)의 제어에 따라 동작할 수 있고, DRAM, SRAM과 같은 휘발성 메모리로 구현되거나 PRAM, 플래시 메모리와 같은 비휘발성 메모리로 구현될 수 있다.
메모리(150)에 포함된 백그라운드 독출 컨트롤러(BRC)는, 프로세서(130)에 의해 실행됨으로써, 메모리 장치(200)에 포함된 복수의 블록들(BLK1 내지 BLKn)에 대한 백그라운드 독출 동작을 제어할 수 있다. 여기서, 백그라운드 독출 동작은 호스트(HOST)로부터 독출 요청을 수신하지 않고, 백그라운드 독출 컨트롤러(BRC)에서 자체적으로 독출 커맨드(CMD) 및 어드레스(ADDR)를 발행(issue)하고, 독출 커맨드(CMD) 및 어드레스(ADDR)에 응답하여 메모리 장치(200)에서 데이터(DATA)를 독출하는 동작을 지칭할 수 있다. 백그라운드 독출 컨트롤러(BRC)는 펌웨어 또는 소프트웨어로 구현될 수 있고, 메모리(150)에 로딩될 수 있다. 그러나 이에 한정되지 않으며, 백그라운드 독출 컨트롤러(BRC)는 하드웨어로 구현될 수도 있다.
메모리 컨트롤러(100)는 백그라운드 독출 동작을 수행한 후, 복수의 블록들 각각의 열화 정보(Degradation Information, DI)를 수집할 수 있다. 그리고 메모리 컨트롤러(100)는 수집한 열화 정보(DI)를 메모리(150)에 저장할 수 있다.
열화 정보(DI)는 P/E Cycle(Program/Erase Cycle), 독출 카운트(Read Count), 리텐션 시간(Retention Time), 동작 온도, 독출된 데이터의 에러 비트 개수 중 적어도 하나를 포함할 수 있다. 그리고 열화 정보(DI)는 각 블록 내 포함된 워드라인 별 또는 메모리 셀 별로 전술한 정보들이 수집될 수 있다.
또한, 열화 정보(DI)는 백그라운드 독출 컨트롤러(BRC)의 제어에 따라, 블록의 워드라인별로 디폴트 독출 레벨을 인가할 때 턴 온되는 메모리 셀들의 개수를 나타내는 온 셀 카운트(On Cell Count) 또는 블록의 워드라인별로 디폴트 독출 레벨을 인가할 때 턴 오프되는 메모리 셀들의 개수를 나타내는 오프 셀 카운트(Off Cell Count)를 포함할 수 있다. 한편, 열화 정보(DI)의 종류는 전술한 예에 한하지 않는다.
메모리 컨트롤러(100)는 백그라운드 독출 동작 및 열화 정보(DI)의 수집 동작을 기설정된 주기로 수행할 수 있다. 그러나 본 발명은 이에 한정되지 않으며, 메모리 컨트롤러(100)는 백그라운드 독출 동작 및 열화 정보(DI)의 수집 동작을 가변적인 주기에 따라 수행할 수도 있다.
이와 같이 수집된 열화 정보(DI)는 프로세서(130)의 제어에 따라 인공 지능 모델(110)에 제공될 수 있으며, 이를 통해 독출 레벨의 추론 동작이 수행될 수 있다. 이하에서는 독출 레벨의 추론 동작을 보다 구체적으로 설명한다.
프로세서(130)는 호스트(HOST)로부터 독출 요청을 수신하면, 메모리(150)에 저장된 열화 정보(DI) 중 독출 요청에 대응되는 블록의 열화 정보를 획득할 수 있다. 구체적으로, 프로세서(130)는 호스트(HOST)로부터 독출 요청 및 논리 어드레스가 수신되면, 논리 어드레스에 대응하는 물리 어드레스를 획득할 수 있고, 메모리 장치(200)의 복수의 블록들 중 물리 어드레스에 대응하는 블록의 열화 정보를 획득할 수 있다. 이때, 메모리(150)는 논리 어드레스들과 물리 어드레스들을 매핑하는 매핑 테이블(미도시)를 저장할 수 있다.
그리고 프로세서(130)는 획득한 열화 정보를 기초로 독출 요청에 대응되는 블록의 열화 레벨을 판단할 수 있다. 그리고 판단된 열화 레벨이 문턱값 이상인 경우, 프로세서(130)는 확인된 열화 정보를 인공 지능 모델(110)이 저장된 TCM(140)으로 제공하도록 메모리(150)를 제어할 수 있다. 여기서 열화 레벨은, 열화 정도에 따라 3개 이상의 상이한 레벨들로 구성될 수 있다. 열화 레벨은 그 레벨이 높을수록 열화 정도가 높음을 의미할 수 있다. 그러나 본 발명은 이에 한정되지 않으며, 열화 레벨은 열화가 없거나 적음을 의미하는 “0”과 열화가 존재함을 의미하는 “1”의 두 레벨로 구성될 수 있다.
그리고 전술한 열화 레벨의 판단 동작은, 열화 정보에 포함된 다양한 정보들의 조합을 기초로 수행될 수 있다. 예를 들어, 열화 레벨은 열화 정보 중 온 셀 카운트 또는 오프 셀 카운트가 갖는 값에 대응될 수 있으며, 프로세서(130)는 열화 정보의 온 셀 카운트 또는 오프 셀 카운트를 확인하여 블록의 열화 레벨을 판단할 수 있다. 이 외에도 열화 정보 중 P/E Cycle, 독출 카운트, 리텐션 시간, 동작 온도, 독출된 데이터의 에러 비트 개수 등의 적어도 하나 이상의 조합을 기초로 열화 레벨이 판단될 수 있다. 한편, 열화 레벨의 판단 동작은 프로세서(130)가 아닌 별도의 구성에 의해 수행될 수 도 있다.
그리고 프로세서(130)는 TCM(140)에 포함된 인공 지능 모델(110)을 실행할 수 있고, 인공 지능 모델(110)로부터 추론된 독출 레벨을 획득할 수 있다. 그리고 프로세서(130)는 추론된 독출 레벨에 대한 정보를 커맨드(CMD) 및/또는 제어 신호(CTRL)를 통해서 메모리 장치(200)에 전달하도록 메모리 인터페이스(170)를 제어할 수 있다.
한편, 판단된 열화 레벨이 문턱값 미만인 경우, 프로세서(130)는 독출 요청에 대응되는 독출 레벨의 추론 동작을 수행하지 않고, 디폴트 독출 레벨을 독출 요청에 대응되는 독출 레벨로 결정할 수 있다. 그리고 프로세서(130)는 디폴트 독출 레벨에 대한 정보를 커맨드(CMD) 및/또는 제어 신호(CTRL)를 통해서 메모리 장치(200)에 전달하도록 메모리 인터페이스(170)를 제어할 수 있다.
ECC 모듈(160)은 메모리 장치(200)로부터 수신된 데이터에서 에러 비트를 검출하고, 검출된 에러 비트를 정정하는 ECC 동작을 수행할 수 있다. ECC 모듈(160)은 수신한 데이터에서 검출된 에러 비트의 개수가 ECC 모듈(160)의 에러 정정 능력을 초과하는지 판단할 수 있다.
예를 들어, 호스트(HOST)로부터 수신한 독출 요청에 응답하여 독출한 데이터에 에러 비트를 검출하고, 검출한 에러 비트의 개수가 에러 정정 능력을 초과하는지 판단할 수 있다. 만약 검출한 에러 비트의 개수가 에러 정정 능력을 초과하는 경우, ECC 모듈(160)은 이를 프로세서(130)에게 알릴 수 있고, 프로세서(130)는 독출 재시도 동작을 수행하기 위한 방어 코드(recovery code)를 실행할 수 있다.
ECC 모듈(160)은 하드웨어로 구현될 수 있다. 그러나 이에 한정되지 않으며, ECC 모듈(160)은 펌웨어 또는 소프트웨어로 구현될 수 있고, 메모리(150)에 로딩될 수 있다.
메모리 인터페이스(170)는 메모리 컨트롤러(100)와 메모리 장치(200) 사이의 채널을 제공할 수 있다. 예를 들어, 커맨드(CMD), 어드레스(ADDR), 데이터(DATA) 및 열화 정보(DI) 등이 메모리 인터페이스(170)를 통해 메모리 컨트롤러(100)와 메모리 장치(200) 사이에서 송수신될 수 있다. 그리고 호스트(HOST)로부터 기입 요청되는 데이터와 메모리 장치(200)로부터 독출된 데이터는 메모리(150)에 일시 저장될 수 있다.
한편, 도 5를 도시하고 설명함에 있어서, 메모리 컨트롤러가 하나의 TCM을 포함하는 것으로 도시하고 설명하였지만, 메모리 컨트롤러가 복수개의 TCM을 포함하는 방식으로 구현될 수 있다.
또한, 도 5를 도시하고 설명함에 있어서, 메모리 컨트롤러가 하나의 메모리를 포함하는 것으로 도시하고 설명하였지만, 메모리 컨트롤러가 복수의 메모리를 포함할 수 있으며, 이때 백그라운드 독출 컨트롤러(BRC)는 하나의 메모리에 저장되고, 열화 정보는 나머지 메모리에 저장되는 방식으로도 구현될 수 있다.
도 6은 본 개시의 일 실시예에 따른 도 1의 메모리 컨트롤러를 나타내는 도면이다.
도 6을 참조하면, 메모리 컨트롤러(100’)는 도 5에 예시된 메모리 컨트롤러(100)의 변형 실시예로서, 중복된 설명은 생략하기로 한다. 하드웨어 가속기(190)는 독출 레벨을 추론하도록 학습된 인공 지능 모델(110)을 구현할 수 있다. 하드웨어 가속기(190)는 인공 지능 연산에 특화된 가속기일 수 있다.
하드웨어 가속기(190)는 FPGA(Field-programmable gate array), MPPA(Massively parallel processor array), GPU(Graphics processing unit), ASIC(Application-Specific Integrated Circuit), NPU(Neural processing unit), TPU(Tensor Processing Unit) 및 MPSoC(Multi-Processor System-on-Chip) 등의 다양한 종류의 가속기일 수 있다. 프로세서(130)는 하드웨어 가속기(190)를 이용하여 독출 레벨의 추론 동작을 수행할 수 있다.
구체적으로, 프로세서(130)는 호스트(HOST)로부터 독출 요청을 수신하면, 메모리(150)에 저장된 열화 정보(DI) 중 독출 요청에 대응되는 블록의 열화 정보를 확인할 수 있다. 그리고 프로세서(130)는 확인한 열화 정보를 기초로 독출 요청에 대응되는 블록의 열화 레벨을 판단할 수 있다. 그리고 프로세서(130)는 판단된 열화 레벨이 문턱값 이상인 경우, 확인된 열화 정보를 인공 지능 모델(110)을 구현하는 하드웨어 가속기(190)로 제공하도록 메모리(150)를 제어할 수 있다.
그리고 프로세서(130)는 인공 지능 모델(110)을 실행하도록 하드웨어 가속기(190)를 제어하고, 인공 지능 모델(110)로부터 추론된 독출 레벨을 획득할 수 있다. 그리고 프로세서(130)는 추론된 독출 레벨에 대한 정보를 커맨드(CMD) 및/또는 제어 신호(CTRL)를 통해서 메모리 장치(200)에 전달하도록 메모리 인터페이스(170)를 제어할 수 있다.
한편, 판단된 열화 레벨이 문턱값 미만인 경우, 프로세서(130)는 독출 요청에 대응되는 독출 레벨의 추론 동작을 수행하지 않고, 디폴트 독출 레벨을 독출 요청에 대응되는 독출 레벨로 결정할 수 있다. 그리고 프로세서(130)는 디폴트 독출 레벨에 대한 정보를 커맨드(CMD) 및/또는 제어 신호(CTRL)를 통해서 메모리 장치(200)에 전달하도록 메모리 인터페이스(170)를 제어할 수 있다.
이와 같이, 인공 지능 모델(110)을 인공 지능 연산에 특화된 하드웨어 가속기(190)를 이용하는 경우, 독출 레벨의 추론 동작이 병렬적으로 신속하게 수행될 수 있으며, 추론이 생략된 독출 경로(read path)를 이용할 때 소요되는 시간과 거의 동일한 시간 내에 독출 레벨을 추론하여 메모리 장치(200)에 전달할 수 있다.
도 7 및 도 8은 본 개시의 일 실시예에 따른 메모리 시스템의 동작 방법을 나타내는 순서도이다.
도 7은 본 실시예에 따른 독출 요청에 대응하는 블록의 열화 정보를 기초로 독출 레벨을 추론하는 동작을 나타내는 순서도이다. 예를 들어, 본 실시예에 따른 동작 방법은 도 5의 메모리 컨트롤러(100)를 포함하는 메모리 시스템(10) 또는 도 6의 메모리 컨트롤러(100’)를 포함하는 메모리 시스템(10)에서 수행될 수 있다. 도 1 내지 도 6을 참조하여 상술된 내용은 본 실시예에도 적용될 수 있다.
도 7을 참고하면, 단계 S11에서, 호스트로부터 독출 요청들이 수신될 수 있다. 메모리 컨트롤러(100, 100’)는 호스트 인터페이스(120)를 통해 호스트로부터 독출 요청을 수신할 수 있다. 그리고 메모리 시스템(10)은 호스트로부터 독출 요청과 관련된 논리 어드레스를 추가적으로 수신할 수 있다.
단계 S12에서, 블록의 열화 정보가 획득될 수 있다. 메모리 컨트롤러(100, 100’)는 메모리 장치(200)의 복수의 블록들 중 수신한 논리 어드레스에 대응하는 물리 어드레스를 획득할 수 있고, 복수의 블록들 중 물리 어드레스에 대응하는 블록의 열화 정보를 획득할 수 있다. 여기서 열화 정보는, 온 셀 카운트(On Cell Count), 오프 셀 카운트(Off Cell Count), P/E Cycle(Program/Erase Cycle), 독출 카운트(Read Count), 리텐션 시간(Retention Time), 동작 온도, 독출된 데이터의 에러 비트 개수 중 적어도 하나를 포함할 수 있다.
단계 S13에서, 블록의 열화 레벨이 판단될 수 있다. 메모리 컨트롤러(100, 100’)는 획득한 열화 정보를 기초로 블록의 열화 레벨을 판단할 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 열화 정보에 포함된 온 셀 카운트 또는 오프 셀 카운트가 갖는 값에 대응되는 열화 레벨을 확인함으로써 독출 요청에 대응되는 블록의 열화 레벨을 판단할 수 있다. 이 외에도 메모리 컨트롤러(100, 100’)는 열화 정보 중 P/E Cycle, 독출 카운트, 리텐션 시간, 동작 온도, 독출된 데이터의 에러 비트 개수 등의 적어도 하나 이상의 조합을 기초로 열화 레벨을 판단할 수 있다.
단계 S14에서, 열화 레벨에 따라 독출 레벨이 추론될 수 있다. 메모리 컨트롤러(100, 100’)는 판단된 열화 레벨에 따라 독출 요청에 대응되는 독출 레벨을 추론할 수 있다. 예를 들어, 메모리 컨트롤러(100, 100’)는 열화 레벨이 문턱값 이상인지 여부에 따라 독출 레벨의 추론 동작을 수행하거나 수행하지 않을 수 있다. 이에 대한 구체적인 설명은 도 8과 관련하여 후술한다.
한편, 열화 레벨에 따라 독출 레벨을 추론하는 동작은 판단된 열화 레벨에 따라 선택된 추론 방식으로 구현될 수 있다. 예를 들어, 독출 레벨을 추론하는 제1 방식 및 제2 방식이 존재하는 경우, 열화 레벨에 따라 제1 방식 또는 제2 방식으로 독출 레벨을 추론할 수도 있다.
그리고 메모리 컨트롤러(100, 100’)는 독출 레벨을 추론하도록 학습된 인공 지능 모델(110)을 이용하여 독출 레벨을 추론할 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 독출 요청에 대응되는 블록의 열화 정보를 인공 지능 모델(110)에 입력하고, 인공 지능 모델(110)로부터 추론된 독출 레벨을 획득할 수 있다.
여기서 인공 지능 모델(110)은, 소프트웨어 또는 하드웨어로 구현될 수 있으며, 결정 트리(Decision Tree) 모델, 랜덤 포레스트(Random Forest) 모델, 아다부스트(AdaBoost) 모델, 멀티 회귀 분석법(Multiple Regression Analysis) 모델, 로지스틱 회귀 분석법(Logistic Regression) 모델 및 란삭(RANdom SAmple Consensus, RANSAC) 모델 중 적어도 하나에 기초한 모델일 수 있다. 한편, 인공 지능 모델(110)의 종류는 전술한 예에 한하지 않는다.
그리고 인공 지능 모델(110)은 메모리 컨트롤러(100, 100’)의 프로세서(130)에 포함된 TCM(140)에서 실행될 수 있다. 한편, 인공 지능 모델(110)은 메모리 시스템(10)에 포함된 하드웨어 가속기(190)에 의해 구현될 수도 있다.
단계 S15에서, 독출 레벨에 기초하여 데이터가 독출될 수 있다. 메모리 컨트롤러(100, 100’)는 추론한 독출 레벨에 대한 정보를 커맨드(CMD) 및/또는 제어 신호(CTRL)를 통해서 메모리 장치(200)에 전달할 수 있고, 메모리 장치(200)로부터 독출된 데이터를 수신할 수 있다.
도 8은, 도 7에 따라, 독출 요청에 대응하는 블록의 열화 레벨에 따라 독출 레벨을 추론하는 동작을 구체적으로 나타내는 순서도이다. 도 8을 참조하면, 호스트로부터 독출 요청을 수신하고, 블록의 열화 정보를 획득하고, 블록의 열화 레벨을 판단하는 동작들(단계 S21 내지 단계 S23)은 도 7을 참조하여 전술한 동작들(단계 S11 내지 단계 S13)의 내용과 실질적으로 동일할 수 있으므로, 중복된 설명은 생략하기로 한다.
단계 S24에서, 독출 요청에 대응되는 블록의 열화 레벨이 문턱값과 비교될 수 있다. 만약 열화 레벨이 문턱값 이상이면, 메모리 컨트롤러(100, 100’)는 단계 S25를 수행할 수 있다. 반면 열화 레벨이 문턱값 미만이면, 메모리 컨트롤러(100, 100’)는 단계 S27을 수행할 수 있다.
단계 S25에서, 독출 요청에 대응되는 블록의 열화 정보를 이용하여 독출 요청에 대응되는 독출 레벨이 추론될 수 있다. 그리고 단계 S26에서, 추론한 독출 레벨을 이용하여 데이터가 독출될 수 있다.
단계 S27에서, 디폴트 독출 레벨이 독출 요청에 대응되는 독출 레벨로 결정될 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 독출 레벨의 추론 동작을 수행하지 않고, 디폴트 독출 레벨을 독출 요청에 대응되는 독출 레벨로 결정할 수 있다. 그리고 단계 S28에서, 디폴트 독출 레벨을 이용하여 데이터가 독출할 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 디폴트 독출 레벨에 대한 정보를 커맨드(CMD) 및/또는 제어 신호(CTRL)를 통해서 메모리 장치(200)에 전달할 수 있다. 그리고 메모리 장치(200)는 수신한 (CMD) 및/또는 제어 신호(CTRL)를 통해 추론한 독출 레벨에 대한 정보를 확인하고, 이를 기초로 추론한 독출 레벨에 대응되는 독출 전압을 이용하여 데이터를 독출할 수 있다.
도 9는 본 개시의 일 실시예에 따른 열화 정보 생성 방법을 나타내는 순서도이다.
도 9를 참조하면, 본 실시예에 따른 열화 정보 생성 방법은 백그라운드 독출 동작을 통해 수행하는 방법이다. 예를 들어, 본 실시예에 따른 열화 정보 생성 방법은 도 5의 메모리 컨트롤러(100)를 포함하는 메모리 시스템(10) 또는 도 6의 메모리 컨트롤러(100’)를 포함하는 메모리 시스템(10)에서 수행될 수 있다. 도 1 내지 도 6을 참조하여 상술된 내용은 본 실시예에도 적용될 수 있다.
단계 S31에서, 메모리 장치(200)를 모니터링함으로써 복수의 블록들 각각의 열화 정보가 수집될 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 백그라운드 동작 시, 백그라운드 독출 컨트롤러(BRC)를 통해 백그라운드 독출 동작을 수행할 수 있다. 그리고 메모리 컨트롤러(100, 100’)는 백그라운드 독출 동작을 수행한 후 복수의 블록들 각각의 열화 정보를 수집할 수 있다.
단계 S32에서, 수집한 열화 정보를 기초로 복수의 블록들 각각의 열화 레벨이 판단될 수 있다. 열화 레벨을 판단하는 구체적인 방법은 도 5와 관련하여 전술한 내용과 실질적으로 동일할 수 있으므로, 중복된 설명은 생략한다.
단계 S33에서, 복수의 블록들 각각의 열화 레벨들이 문턱값과 비교될 수 있다. 그리고 메모리 컨트롤러(100, 100’)는 열화 레벨이 문턱값 이상인 블록에 대하여 단계 S34를 수행할 수 있다. 그리고 메모리 컨트롤러(100, 100’)는 열화 레벨이 문턱값 미만인 블록에 대하여 단계 S35를 수행할 수 있다. 메모리 컨트롤러(100, 100’)는 단계 S34 및 단계 S35를 병렬적으로 수행할 수 있다.
단계 S34에서, 복수의 블록들 중 열화 레벨이 문턱값 이상인 블록의 열화 정보가 저장될 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 열화 레벨이 문턱값 이상인 블록의 열화 정보만을 메모리(150)에 저장할 수 있다.
한편, 단계 S35에서, 복수의 블록들 중 열화 레벨이 문턱값 미만인 블록의 열화 정보의 저장 동작이 생략될 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 열화 레벨이 문턱값 미만인 블록의 열화 정보에 대해서는 메모리(150)에 저장하는 동작을 생략할 수 있다.
도 10은, 도 9의 열화 정보 생성 방법에 따른 열화 정보의 예시를 나타내는 도면이다.
도 10을 참조하면, 메모리(150)에 저장된 열화 정보는 복수의 블록들 각각의 번호 및 벡터 형식으로 기재된 열화와 관련된 정보들을 포함할 수 있다. 여기서 벡터 형식으로 기재된 열화와 관련된 정보들은, 온 셀 카운트(On Cell Count), 오프 셀 카운트(Off Cell Count), P/E Cycle(Program/Erase Cycle), 독출 카운트(Read Count), 리텐션 시간(Retention Time), 동작 온도, 독출된 데이터의 에러 비트 개수 중 적어도 하나를 포함할 수 있다. 또한, 벡터 형식으로 기재된 열화와 관련된 정보들은, 서로 상이한 독출 레벨을 이용하여 획득한 두 개 이상의 온 셀 카운트를 포함할 수도 있으며, 서로 상이한 독출 레벨을 이용하여 획득한 두 개 이상의 오프 셀 카운트를 포함할 수도 있다. 한편, 도 10을 도시하고 설명함에 있어서, 열화와 관련된 정보들의 벡터 형식의 기재는 하나의 예에 불과하며, 다른 기재 방식에 따라 열화 정보를 생성할 수 있다.
도 9에서 전술한 바와 같이, 열화 레벨이 문턱값 이상인 블록의 열화 정보만이 메모리(150)에 저장될 수 있는바, 열화 레벨이 문턱값 이상인 블록(BLK1, BLKn)의 열화 정보는 저장될 수 있으며, 열화 레벨이 문턱값 미만인 블록(BLK2)의 열화 정보는 비어있을 수 있다.
도 11은, 도 10의 열화 정보를 이용한 독출 레벨의 추론 방법의 예시를 나타내는 순서도이다.
도 11을 참조하면, 단계 S41에서, 호스트로부터 독출 요청이 수신될 수 있다. 메모리 컨트롤러(100, 100’)는 호스트 인터페이스(120)를 통해 호스트로부터 독출 요청 및 논리 어드레스를 수신할 수 있다.
단계 S42에서, 독출 요청에 대응되는 블록의 열화 정보가 존재하는지 확인될 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 메모리 장치(200)의 복수의 블록들 중 수신한 논리 어드레스에 대응하는 물리 어드레스를 획득할 수 있고, 복수의 블록들 중 물리 어드레스에 대응하는 블록의 열화 정보가 메모리(150)에 저장되어 있는지 확인할 수 있다. 만약 확인된 블록의 열화 정보가 저장되어 있는 경우 단계 S43을 수행할 수 있다. 반면 확인된 블록의 열화 정보가 저장되어 있지 않은 경우 단계 S45를 수행할 수 있다.
단계 S43에서, 확인된 블록의 열화 정보를 이용하여 독출 요청에 대응되는 독출 레벨이 추론될 수 있다. 확인된 블록의 열화 정보가 존재하는 경우, 이는 확인된 블록의 열화가 발생함을 의미하는바, 메모리 컨트롤러(100, 100’)는 독출 레벨 추론 동작을 수행할 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 인공 지능 모델(110)에 확인된 블록의 열화 정보를 제공하고, 인공 지능 모델(110)로부터 추론한 독출 레벨을 획득할 수 있다. 그리고 단계 S44에서, 추론한 독출 레벨을 이용하여 데이터가 독출될 수 있다.
단계 S45에서, 디폴트 독출 레벨이 독출 요청에 대응되는 독출 레벨로 결정할 수 있다. 확인된 블록의 열화 정보가 존재하지 않은 경우, 이는 확인된 블록의 열화가 미약하게 발생하거나 발생하지 않음을 의미하는바, 메모리 컨트롤러(100, 100’)는 디폴트 독출 레벨을 독출 요청에 대응되는 독출 레벨로 결정할 수 있다. 그리고 단계 S46에서, 디폴트 독출 레벨을 이용하여 데이터가 독출될 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 디폴트 독출 레벨에 대한 정보를 커맨드(CMD) 및/또는 제어 신호(CTRL)를 통해서 메모리 장치(200)에 전달할 수 있다. 그리고 메모리 장치(200)는 수신한 (CMD) 및/또는 제어 신호(CTRL)를 통해 추론한 독출 레벨에 대한 정보를 확인하고, 이를 기초로 추론한 독출 레벨에 대응되는 독출 전압을 이용하여 데이터를 독출할 수 있다.
이와 같이, 도 9 내지 도 11의 메모리 컨트롤러(100, 100’)는 독출 레벨의 추론 동작이 필요한 것으로 판단되는 블록, 즉, 열화가 발생한 블록을 미리 선별하여 해당 블록의 열화 정보만을 저장함으로써, 저장 용량을 줄일 수 있다.
도 12는 본 개시의 일 실시예에 따른 열화 정보 및 열화 레벨 정보 생성 방법을 나타내는 순서도이다.
도 12를 참조하면, 본 실시예에 따른 열화 정보 및 열화 레벨 정보 생성 방법은 백그라운드 독출 동작을 통해 수행하는 방법이다. 예를 들어, 본 실시예에 따른 열화 정보 생성 방법은 도 5의 메모리 컨트롤러(100)를 포함하는 메모리 시스템(10) 또는 도 6의 메모리 컨트롤러(100’)를 포함하는 메모리 시스템(10)에서 수행될 수 있다. 도 1 내지 도 6을 참조하여 상술된 내용은 본 실시예에도 적용될 수 있다.
단계 S51에서, 메모리 장치(200)를 모니터링함으로써 복수의 블록들 각각의 열화 정보가 수집될 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 백그라운드 동작 시, 백그라운드 독출 컨트롤러(BRC)를 통해 백그라운드 독출 동작을 수행할 수 있다. 그리고 메모리 컨트롤러(100, 100’)는 백그라운드 독출 동작을 수행한 후 복수의 블록들 각각의 열화 정보를 수집하여 메모리(150)에 저장할 수 있다. 즉, 메모리 컨트롤러(100, 100’)는 수집한 복수의 블록들 각각의 열화 정보를 모두 저장할 수 있다.
단계 S52에서, 수집한 열화 정보를 기초로 복수의 블록들 각각의 열화 레벨이 판단될 수 있다. 열화 레벨을 판단하는 구체적인 방법은 도 5와 관련하여 전술한 내용과 실질적으로 동일할 수 있으므로, 중복된 설명은 생략한다.
단계 S53에서, 복수의 블록들 각각에 대하여 판단한 열화 레벨 정보를 메모리(150)가 저장될 수 있다. 즉, 메모리 시스템(10)은 복수의 블록들 각각에 대하여 판단한 열화 레벨 정보를 모두 저장할 수 있다.
도 13은, 도 12의 열화 정보 및 열화 레벨 정보 생성 방법에 따른 열화 정보 및 열화 레벨 정보의 예시를 나타내는 도면이다.
도 13은 참조하면, 메모리(150)에 저장된 열화 정보는 복수의 블록들 각각의 번호 및 벡터 형식으로 기재된 열화와 관련된 정보들을 포함할 수 있으며, 열화 레벨 정보는 복수의 블록들 각각의 열화 레벨을 포함할 수 있다.
여기서 벡터 형식으로 기재된 열화와 관련된 정보들은, 온 셀 카운트(On Cell Count), 오프 셀 카운트(Off Cell Count), P/E Cycle(Program/Erase Cycle), 독출 카운트(Read Count), 리텐션 시간(Retention Time), 동작 온도, 독출된 데이터의 에러 비트 개수 중 적어도 하나를 포함할 수 있다. 또한, 벡터 형식으로 기재된 열화와 관련된 정보들은, 서로 상이한 독출 레벨을 이용하여 획득한 두 개 이상의 온 셀 카운트를 포함할 수도 있으며, 서로 상이한 독출 레벨을 이용하여 획득한 두 개 이상의 오프 셀 카운트를 포함할 수도 있다. 한편, 열화와 관련된 정보들은 벡터 형식이 아닌 다른 형식으로 생성될 수 있다.
도 12에서 전술한 바와 같이, 열화 레벨과는 무관하게 복수의 블록들 모두의 열화 정보가 메모리(150)에 저장될 수 있는바, 도 10에서의 열화 정보와는 달리 열화 레벨이 문턱값 미만인 블록(BLK2)의 열화 정보도 메모리(150)에 저장될 수 있다.
한편, 도 13을 도시하고 설명함에 있어서, 열화 정보 및 열화 레벨 정보가 함께 생성된 것으로 도시하고 설명하였지만, 구현시에는 열화 정보 및 열화 레벨 정보는 각각 따로 생성되어 별도로 저장되는 방식으로 구현될 수 있다.
도 14는, 도 13의 열화 정보 및 열화 레벨 정보를 이용한 독출 레벨의 추론 방법의 예시를 나타내는 순서도이다.
도 14를 참조하면, 단계 S61에서, 호스트로부터 독출 요청이 수신될 수 있다. 메모리 컨트롤러(100, 100’)는 호스트 인터페이스(120)를 통해 호스트로부터 독출 요청 및 논리 어드레스를 수신할 수 있다.
단계 S62에서, 독출 요청에 대응되는 블록의 열화 레벨 정보가 획득될 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 메모리 장치(200)의 복수의 블록들 중 수신한 논리 어드레스에 대응하는 물리적 어드레스를 획득하고, 복수의 블록들 중 물리적 어드레스에 대응하는 블록의 열화 레벨 정보를 메모리(150)로부터 획득할 수 있다.
단계 S63에서, 독출 요청에 대응되는 블록의 열화 레벨이 문턱값과 비교될 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 독출 요청에 대응되는 블록의 열화 레벨을 미리 설정된 문턱값과 비교할 수 있다. 만약, 열화 레벨이 문턱값 이상이면, 메모리 컨트롤러(100, 100’)는 단계 S64를 수행할 수 있다. 반면 열화 레벨이 문턱값 미만이면, 메모리 컨트롤러(100, 100’)는 단계 S65를 수행할 수 있다.
단계 S64에서, 독출 요청에 대응되는 블록의 열화 정보를 이용하여 독출 레벨이 추론될 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 인공 지능 모델(110)에 확인된 블록의 열화 정보를 제공하고, 인공 지능 모델(110)로부터 추론한 독출 레벨을 획득할 수 있다. 그리고 단계 S65에서, 추론한 독출 레벨을 이용하여 데이터가 독출될 수 있다.
단계 S66에서, 디폴트 독출 레벨이 독출 요청에 대응되는 독출 레벨로 결정될 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 독출 레벨의 추론 동작을 수행하지 않고, 디폴트 독출 레벨을 독출 요청에 대응되는 독출 레벨로 결정할 수 있다. 그리고 단계 S67에서, 디폴트 독출 레벨을 이용하여 데이터가 독출될 수 있다. 구체적으로, 메모리 컨트롤러(100, 100’)는 디폴트 독출 레벨에 대한 정보를 커맨드(CMD) 및/또는 제어 신호(CTRL)를 통해서 메모리 장치(200)에 전달할 수 있다. 그리고 메모리 장치(200)는 수신한 (CMD) 및/또는 제어 신호(CTRL)를 통해 추론한 독출 레벨에 대한 정보를 확인하고, 이를 기초로 추론한 독출 레벨에 대응되는 독출 전압을 이용하여 데이터를 독출할 수 있다.
이와 같이, 도 12 내지 도 14에 따른 메모리 컨트롤러(100, 100’)는 열화 레벨 정보를 미리 생성하고, 이후 독출 요청을 수신하면 기생성한 열화 레벨 정보를 확인하여 독출 레벨의 추론 동작의 수행 여부를 결정할 수 있는바, 독출 요청에 응답하여 메모리를 독출하는 동작에 소요되는 시간이 단축될 수 있다.
도 15는 본 개시의 일 실시예에 따른 인공 지능 모델을 나타내는 도면이다.
도 15를 참조하면, 인공 지능 모델(110)은 독출 요청에 대응하는 블록의 열화 정보를 입력 데이터로 사용하여, 독출 요청에 대응하는 독출 레벨을 추론하고, 추론한 독출 레벨을 출력할 수 있다.
인공 지능 모델(110)의 입력 데이터는 열화 정보에 포함된 다양한 정보들로 구성될 수 있다. 예를 들어, 인공 지능 모델(110)의 입력 데이터는 독출 요청에 대응하는 블록에 디폴트 독출 레벨을 인가할 때 턴 온된 메모리 셀의 개수인 온 셀 카운트일 수 있다. 한편, 실시예에 따라 인공 지능 모델(110)의 입력 데이터는 독출 요청에 대응하는 블록에 제1 독출 레벨을 인가할 때의 제1 온 셀 카운트 및 제1 독출 레벨과 상이한 제2 독출 레벨을 인가할 때의 제2 온 셀 카운트일 수 있다. 그러나 인공 지능 모델(110)의 입력 데이터는 이에 한정되지 않으며, P/E Cycle, 독출 카운트, 리텐션 시간, 동작 온도, 독출된 데이터의 에러 비트 개수 등의 적어도 하나 이상의 조합으로 구현될 수 있다. 한편, 인공 지능 모델(110)은 실시예에 따라 다른 동작 조건들(예를 들어, 프로그램 레벨, 소거 레벨 등)을 더 추론할 수도 있다.
인공 지능 모델(110)은 입력 데이터를 블록들의 열화 정보로 하고, 출력 데이터를 독출 오류가 발생하지 않는 독출 레벨에 대한 정보로 하여 학습될 수 있다. 그리고 인공 지능 모델(110)은 제조사에 의해 미리 학습되어, 메모리 시스템(10)의 제조시에 구비될 수 있다. 구체적으로, 제조사에 의해 다수의 메모리 시스템으로부터 수집된 열화 정보와 독출 오류를 발생하지 않는 독출 레벨에 대한 정보를 기초로 학습한 인공 지능 모델(110)이 메모리 시스템(10)의 제조시에 구비될 수 있다. 그러나 이에 한정하지 않으며, 실시예에 따라 인공 지능 모델(110)은 메모리 시스템(10)이 실제 동작 중에 수집한 열화 정보를 입력 데이터로 하고, 독출 오류가 발생하지 않은 독출 레벨을 출력 데이터로 하여, 학습을 수행하거나 업데이트를 할 수도 있다.
그리고 인공 지능 모델(110)은 블록들의 열화 정보뿐만 아니라 독출 요청에 대응되는 블록의 워드라인 번호를 추가적으로 입력 데이터로 하여 학습될 수도 있다. 이와 같이 학습된 인공 지능 모델(110)의 경우, 호스트(HOST)로부터 수신한 독출 요청에 대응되는 블록의 워드라인 번호를 추가적으로 입력 데이터로 하여, 독출 요청에 대응되는 독출 레벨을 출력할 수 있다. 한편, 인공 지능 모델(110)은 상술한 예 외에도 다양한 정보들을 입력 데이터 또는 출력 데이터로 삼을 수 있다.
도 16은 본 개시의 일 실시예에 따른 SSD 시스템을 나타내는 블록도이다.
도 16을 참조하면, SSD 시스템(300)은 호스트(310) 및 SSD(320)를 포함할 수 있다. SSD(320)는 신호 커넥터를 통해 호스트(310)와 신호를 주고 받으며, 전원 커넥터를 통해 전원을 입력 받을 수 있다. SSD(320)는 SSD 컨트롤러(321), 보조 전원 장치(322) 및 메모리 장치들(323_1 ~ 323_n)을 포함할 수 있다. 이때, SSD(320)는 도 1 내지 도 15를 참조하여 상술된 실시예들을 이용하여 구현될 수 있다. 일 실시예에 따라, SSD 컨트롤러(321)는 인공 지능 모델(321_1)을 포함할 수 있으며, 메모리 장치들(323_1 ~ 323_n) 각각은 복수의 블록들을 포함할 수 있다.
전술한 실시예들이 도 16에 도시된 SSD 시스템(300)에 적용될 수 있으며, SSD 컨트롤러(321)는 호스트(310)로부터 독출 요청을 수신하면 메모리 장치들(323_1 ~ 323_n) 중 독출 요청에 대응하는 블록의 열화 정보에 기초하여 해당 블록의 열화 레벨을 판단할 수 있고, 판단한 열화 레벨에 따라 독출 요청에 대응하는 독출 레벨을 추론할 수 있고, 추론한 독출 레벨을 이용하여 메모리 장치들(323_1 ~ 323_n)로부터 데이터를 독출할 수 있다.
전술한 실시예에 따라, 열화 정보를 이용하여 독출 레벨을 추론하는 경우에는, 독출한 데이터에 대한 신뢰성을 향상시킬 수 있으며, 독출 재시도 동작을 수행하지 않음에 따라 성능이 향상될 수 있다. 또한, 독출 요청에 대응하는 블록의 열화 레벨에 따라 독출 레벨의 추론 동작을 수행함으로써, 향상된 신뢰성 및 독출 재시도 동작 횟수 감소를 달성하면서도, 추론 동작에 의한 연산량을 줄일 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 복수의 블록들을 포함하는 메모리 장치;
    상기 복수의 블록들 중 적어도 하나의 열화 정보를 저장하는 버퍼; 및
    호스트의 독출 요청에 응답하여, 상기 열화 정보를 기초로 상기 독출 요청에 대응하는 독출 레벨을 추론하고, 상기 독출 레벨에 기초하여 상기 메모리 장치로부터 데이터를 독출하도록 구성된 메모리 컨트롤러를 포함하는 메모리 시스템.
  2. 제1항에 있어서,
    상기 메모리 컨트롤러는,
    상기 열화 정보에 기초하여 상기 독출 요청에 대응하는 블록의 열화 레벨을 판단하고,
    상기 열화 레벨이 문턱값 이상이면, 상기 열화 정보에 기초하여 상기 독출 레벨을 추론하고,
    상기 열화 레벨이 문턱값 미만이면, 디폴트 독출 레벨에 기초하여 상기 데이터를 독출하도록 구성된 것을 특징으로 하는 메모리 시스템.
  3. 제1항에 있어서,
    상기 메모리 컨트롤러는,
    독출 레벨을 추론하도록 학습된 인공 지능 모델을 포함하고, 상기 인공 지능 모델에 상기 열화 정보를 제공함으로써 상기 독출 요청에 대응하는 독출 레벨을 획득하도록 구성된 것을 특징으로 하는 메모리 시스템.
  4. 제3항에 있어서,
    상기 인공 지능 모델은,
    하드웨어 가속기(Hardware Accelerator)에서 구현되고,
    상기 버퍼는,
    상기 메모리 컨트롤러의 제어에 따라 상기 열화 정보를 상기 하드웨어 가속기에 제공하도록 구성된 것을 특징으로 하는 메모리 시스템.
  5. 복수의 블록들을 포함하는 메모리 장치;
    상기 복수의 블록들 중 적어도 하나의 열화 정보를 저장하는 버퍼; 및
    호스트 독출 요청에 응답하여 상기 메모리 장치로부터 데이터를 독출하도록 구성된 메모리 컨트롤러;를 포함하고,
    상기 메모리 컨트롤러는,
    독출 레벨을 추론하도록 학습된 인공 지능 모델을 실행하는 하드웨어 가속기(Hardware Accelerator); 및
    상기 독출 요청에 대응하는 블록의 열화 정보를 상기 하드웨어 가속기에 제공하도록 상기 버퍼를 제어하고, 상기 인공 지능 모델을 통해 상기 독출 요청에 대응하는 독출 레벨을 획득하고, 상기 획득한 독출 레벨에 기초하여 상기 데이터를 독출하도록 구성된 프로세서를 포함하는 것을 특징으로 하는 메모리 시스템.
  6. 제5항에 있어서,
    상기 프로세서는,
    상기 독출 요청에 대응하는 블록의 열화 정보가 존재하지 않으면, 디폴트 독출 레벨에 기초하여 상기 데이터를 독출하도록 구성된 것을 특징으로 하는 메모리 시스템.
  7. 제5항에 있어서,
    상기 프로세서는,
    상기 메모리 장치를 모니터링하여 상기 복수의 블록들 각각의 열화 정보를 수집하고, 상기 수집한 복수의 블록들 각각의 열화 정보들을 기초로 상기 복수의 블록들 각각의 열화 레벨들을 판단하고, 상기 복수의 블록들 각각의 열화 레벨들에 따라 상기 수집한 복수의 블록들 각각의 열화 정보들 중 적어도 하나를 상기 버퍼에 저장하는 것을 특징으로 하는 메모리 시스템.
  8. 제7항에 있어서,
    상기 프로세서는,
    상기 수집한 복수의 블록들 각각의 열화 정보들 중 대응하는 블록의 열화 레벨이 문턱값 이상인 열화 정보를 상기 버퍼에 저장하고,
    상기 수집한 복수의 블록들 각각의 열화 정보들 중 대응하는 블록의 열화 레벨이 문턱값 미만인 열화 정보의 저장은 생략하는 것을 특징으로 하는 메모리 시스템.
  9. 복수의 블록들을 구비한 메모리 장치를 포함하는 메모리 시스템의 동작 방법으로서,
    호스트로부터 독출 요청을 수신하는 단계;
    상기 독출 요청에 대응하는 블록의 열화 정보를 획득하는 단계;
    상기 열화 정보를 기초로 상기 독출 요청에 대응하는 독출 레벨을 추론하는 단계; 및
    상기 독출 레벨에 기초하여 상기 메모리 장치로부터 데이터를 독출하는 단계를 포함하는 메모리 시스템의 동작 방법.
  10. 제9항에 있어서,
    상기 열화 정보를 기초로 상기 독출 요청에 대응하는 블록의 열화 레벨을 판단하는 단계를 더 포함하고,
    상기 독출 레벨을 추론하는 단계는,
    상기 열화 레벨이 문턱값 이상이면, 상기 열화 정보에 기초하여 상기 독출 레벨을 추론하고,
    상기 열화 레벨이 문턱값 미만이면, 디폴트 독출 레벨을 상기 독출 요청에 대응하는 독출 레벨로 결정하는 메모리 시스템의 동작 방법.
KR1020190100539A 2019-08-16 2019-08-16 추론에 기초하여 요청을 처리하는 메모리 시스템 및 이의 동작 방법 KR20210020689A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190100539A KR20210020689A (ko) 2019-08-16 2019-08-16 추론에 기초하여 요청을 처리하는 메모리 시스템 및 이의 동작 방법
US16/819,374 US11114174B2 (en) 2019-08-16 2020-03-16 Memory system processing request based on inference and operating method of the same
CN202010534678.3A CN112395210A (zh) 2019-08-16 2020-06-12 存储器系统和操作存储器系统的方法
US17/395,872 US11715538B2 (en) 2019-08-16 2021-08-06 Memory system processing request based on inference and operating method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190100539A KR20210020689A (ko) 2019-08-16 2019-08-16 추론에 기초하여 요청을 처리하는 메모리 시스템 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20210020689A true KR20210020689A (ko) 2021-02-24

Family

ID=74566886

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190100539A KR20210020689A (ko) 2019-08-16 2019-08-16 추론에 기초하여 요청을 처리하는 메모리 시스템 및 이의 동작 방법

Country Status (3)

Country Link
US (2) US11114174B2 (ko)
KR (1) KR20210020689A (ko)
CN (1) CN112395210A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102460717B1 (ko) * 2021-08-17 2022-10-31 삼성전자주식회사 최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
KR102505857B1 (ko) * 2021-11-15 2023-03-06 삼성전자 주식회사 스트롱 에러 정보를 관리하는 메모리 컨트롤러 및 그 동작방법
US11886293B2 (en) 2021-11-15 2024-01-30 Samsung Electronics Co., Ltd. Memory controller managing strong error information and operating method thereof

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11366718B2 (en) * 2020-04-30 2022-06-21 SK Hynix Inc. Optimal read bias tracking system and method thereof
KR102344380B1 (ko) 2021-06-02 2021-12-28 삼성전자주식회사 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 포함하는 저장 장치 및 그것의 동작 방법
CN116451756B (zh) * 2023-06-16 2023-08-18 深圳亘存科技有限责任公司 内存高利用率的神经网络协处理器

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US8010738B1 (en) 2008-06-27 2011-08-30 Emc Corporation Techniques for obtaining a specified lifetime for a data storage device
KR101586047B1 (ko) * 2009-03-25 2016-01-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
CN102640227B (zh) 2009-09-23 2016-06-01 纳姆迪兰斯有限公司 一种快闪存储器件及控制方法
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
KR102211212B1 (ko) 2013-03-15 2021-02-03 비데리 인코포레이티드 디지털 아트 및 이미징을 디스플레이하고, 배포하고, 뷰잉하고 제어하기 위한 시스템 및 방법
US9336483B1 (en) 2015-04-03 2016-05-10 Pearson Education, Inc. Dynamically updated neural network structures for content distribution networks
US10599208B2 (en) 2015-09-08 2020-03-24 Toshiba Memory Corporation Memory system and controller
KR20180027710A (ko) 2016-09-06 2018-03-15 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
KR102643916B1 (ko) * 2016-10-18 2024-03-08 삼성전자주식회사 스토리지 장치, 메모리 시스템, 및 그것의 읽기 전압 결정 방법
KR102656190B1 (ko) 2016-11-24 2024-04-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
US10726930B2 (en) 2017-10-06 2020-07-28 Western Digital Technologies, Inc. Method and system for a storage (SSD) drive-level failure and health prediction leveraging machine learning on internal parametric data
US10643730B1 (en) * 2018-02-26 2020-05-05 Toshiba Memory Corporation Adapting flash memory programming parameters for high endurance and steady performance
US10552063B2 (en) * 2018-06-21 2020-02-04 International Business Machines Corporation Background mitigation reads in a non-volatile memory system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102460717B1 (ko) * 2021-08-17 2022-10-31 삼성전자주식회사 최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
KR102505857B1 (ko) * 2021-11-15 2023-03-06 삼성전자 주식회사 스트롱 에러 정보를 관리하는 메모리 컨트롤러 및 그 동작방법
US11886293B2 (en) 2021-11-15 2024-01-30 Samsung Electronics Co., Ltd. Memory controller managing strong error information and operating method thereof

Also Published As

Publication number Publication date
US11114174B2 (en) 2021-09-07
US20210366562A1 (en) 2021-11-25
US11715538B2 (en) 2023-08-01
US20210050067A1 (en) 2021-02-18
CN112395210A (zh) 2021-02-23

Similar Documents

Publication Publication Date Title
US11715538B2 (en) Memory system processing request based on inference and operating method of the same
US10902924B2 (en) Memory system varying pass voltage based on erase count of target memory block and operating method thereof
US10296233B2 (en) Method of managing message transmission flow and storage device using the method
US10902928B2 (en) Memory system, operation method thereof, and nonvolatile memory device
KR20120046846A (ko) 플래그 셀들을 갖는 플래시 메모리 장치 및 그것의 프로그램 동작 방법
US11520694B2 (en) Data storage device and operating method thereof
US11086540B2 (en) Memory system, memory controller and memory device for configuring super blocks
US20230004320A1 (en) Method of managing debugging log in storage device
KR102634809B1 (ko) 전자 장치 및 그것의 동작 방법
KR20230023483A (ko) 메모리 장치 및 그 동작 방법
US11586379B2 (en) Memory system and method of operating the same
US11842779B2 (en) Memory device and operating method for performing verify operation
KR102303653B1 (ko) 메모리 장치 및 이를 포함하는 메모리 시스템
US11157401B2 (en) Data storage device and operating method thereof performing a block scan operation for checking for valid page counts
CN112783431A (zh) 存储装置及其操作方法
US20240143222A1 (en) Storage device controlling write buffer while processing power off request and method of operating the storage device
US20240184486A1 (en) Storage device determining memory area to which data is written using write throughput and method of operation
US12001709B2 (en) Storage devices and operating methods of storage controllers
US20240094952A1 (en) System and storage device for executing read command using read recovery level and methods of operation
US20240078042A1 (en) Storage device determining a policy for fetching commands from a plurality of command queues, and method thereof
US20240078023A1 (en) Storage device determining whether to apply thermal throttling mode to target operation
US20240176541A1 (en) Storage device controlling target operation based on collected performance information and operating method thereof
US20240184657A1 (en) Storage device for setting operation parameters for random access memory upon power-on and operation
US20240152276A1 (en) Storage device determining priorities on the basis of temperatures of memory dies and temperature variations, and method thereof
US20240118998A1 (en) Decoding device for determining whether to decode data unit, and operating method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal