KR20150133913A - 메모리 컨트롤러의 동작 방법 - Google Patents

메모리 컨트롤러의 동작 방법 Download PDF

Info

Publication number
KR20150133913A
KR20150133913A KR1020140060418A KR20140060418A KR20150133913A KR 20150133913 A KR20150133913 A KR 20150133913A KR 1020140060418 A KR1020140060418 A KR 1020140060418A KR 20140060418 A KR20140060418 A KR 20140060418A KR 20150133913 A KR20150133913 A KR 20150133913A
Authority
KR
South Korea
Prior art keywords
blocks
spare
memory device
ratio
block
Prior art date
Application number
KR1020140060418A
Other languages
English (en)
Other versions
KR102291507B1 (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 KR1020140060418A priority Critical patent/KR102291507B1/ko
Priority to US14/711,605 priority patent/US10108354B2/en
Publication of KR20150133913A publication Critical patent/KR20150133913A/ko
Application granted granted Critical
Publication of KR102291507B1 publication Critical patent/KR102291507B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1014One time programmable [OTP] memory, e.g. PROM, WORM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • 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/7205Cleaning, compaction, garbage collection, erase 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
    • G11C2029/0409Online test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명은 복수의 유저 블록들 및 복수의 예비 블록들을 포함하는 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법에 관한 것이다. 메모리 컨트롤러의 동작 방법은 미리 정해진 구간 동안의 복수의 예비 블록들 중 사용된 예비 블록의 개수 및 미리 정해진 구간 동안의 동작 카운트의 비율을 검출하는 단계; 및 검출된 비율을 기반으로 외부 장치로 수명 종료 경고 신호를 전송하는 단계를 포함한다. 메모리 컨트롤러는 복수의 유저 블록들 중 적어도 하나의 블록이 배드 블록이 된 경우 배드 블록을 복수의 예비 블록들 중 어느 하나로 교체하고, 사용된 예비 블록은 복수의 유저 블록들 중 적어도 하나와 교체된 예비 블록을 가리키고, 동작 카운트는 불휘발성 메모리 장치의 소거 횟수를 가리키는 소거 카운트, 불휘발성 메모리 장치의 프로그램 횟수를 가리키는 프로그램 카운트, 및 사용 시간을 가리키는 시간 카운트 중 어느 하나이다.

Description

메모리 컨트롤러의 동작 방법{OPERATING METHOD OF MEMORY CONTROLLER}
본 발명은 반도체 메모리에 관한 것으로 더욱 상세하게는 불휘발성 메모리 시스템의 동작 방법에 관한 것이다.
반도체 메모리 장치(semiconductor memory device)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화 인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 기억 장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile Memory Device) 및 불휘발성 메모리 장치(Nonvolatile Memory Device)로 구분된다.
휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치에는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등이 있다. 불휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다. 불휘발성 메모리 장치에는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등이 있다.
플래시 메모리는 빠른 동작 속도 및 적은 소비 전력을 갖기 때문에 다양한 분야에서 사용된다. 일반적으로 플래시 메모리의 수명은 프로그램/소거 횟수 또는 평균 소거 횟수를 기반으로 결정된다. 예를 들어, 플래시 메모리의 평균 소거 횟수가 임계값 이상인 경우, 플래시 메모리에 저장된 데이터의 신뢰성이 보장되지 못한다. 따라서, 플래시 메모리의 고장 예측 및 고장 회피 효율을 높이기 위하여 평균 소거 횟수를 기반으로 유저에서 수명 경고 메시지를 전달하여 플래시 메모리의 수명을 알리는 기법이 사용되고 있다. 그러나, 사용자의 이용 패턴에 따라 플래시 메모리의 수명이 변화할 수 있기 때문에, 단순히 평균 소거 횟수를 기반으로 플래시 메모리의 수명을 예측하는 것은 여러 가지 문제점을 갖는다.
본 발명의 목적은 종래 기술보다 정확하게 불휘발성 메모리 시스템의 수명을 예측할 수 있는 불휘발성 메모리 시스템의 동작 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 복수의 유저 블록들 및 복수의 예비 블록들을 포함하는 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법은 미리 정해진 구간 동안의 상기 복수의 예비 블록들 중 사용된 예비 블록의 개수 및 상기 미리 정해진 구간 동안의 동작 카운트의 비율을 검출하는 단계; 및 상기 검출된 비율을 기반으로 외부 장치로 수명 종료 경고 신호를 전송하는 단계를 포함하고, 상기 메모리 컨트롤러는 상기 복수의 유저 블록들 중 적어도 하나의 블록이 배드 블록이 된 경우 상기 배드 블록을 상기 복수의 예비 블록들 중 어느 하나로 교체하고, 상기 사용된 예비 블록은 상기 복수의 유저 블록들 중 적어도 하나와 교체된 예비 블록을 가리키고, 상기 동작 카운트는 상기 불휘발성 메모리 장치의 소거 횟수를 가리키는 소거 카운트, 상기 불휘발성 메모리 장치의 프로그램 횟수를 가리키는 프로그램 카운트, 및 사용 시간을 가리키는 시간 카운트 중 적어도 어느 하나이다.
실시 예로서, 상기 미리 정해진 구간은 상기 동작 카운트의 미리 정해진 카운트 횟수를 가리키고, 상기 비율은 상기 동작 카운트에 대한 상기 사용된 예비 블록의 개수의 비율이다.
실시 예로서, 상기 미리 정해진 구간은 상기 복수의 예비 블록들 중 미리 정해진 개수의 예비 블록들이 사용되는 구간을 가리키고, 상기 비율은 상기 사용된 예비 블록의 개수에 대한 상기 동작 카운트의 비율을 가리킨다.
실시 예로서, 상기 검출된 비율을 기반으로 외부 장치로 상기 수명 종료 경고 신호를 전송하는 단계는, 상기 검출된 비율을 기반으로 남은 예상 수명을 예측하는 단계; 및 상기 예측된 남은 예상 수명이 기준 수명보다 작은 경우 상기 수명 종료 경고 신호를 상기 외부 장치로 전송하는 단계를 포함한다.
실시 예로서, 상기 검출된 비율을 기반으로 남은 예상 수명을 예측하는 단계는, 상기 복수의 예비 블록들 중 사용되지 않은 예비 블록들의 수 및 상기 검출된 비율을 기반으로 상기 남은 예상 수명을 예측하는 단계를 포함한다.
실시 예로서, 상기 검출된 비율을 기반으로 외부 장치로 상기 수명 종료 경고 신호를 전송하는 단계는, 상기 검출된 비율이 소정의 값 이상인 경우 상기 수명 종료 경고 신호를 상기 외부 장치로 전송하는 단계를 포함한다.
실시 예로서, 상기 수명 종료 경고 신호는 SMART(Self-Monitoring, Analysis and Reporting Technology) 커맨드 중 어느 하나에 포함된다.
본 발명의 다른 실시 예에 따른 복수의 유저 블록들 및 복수의 예비 블록들을 포함하는 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법은 복수의 구간들 각각에서 상기 복수의 예비 블록들 중 사용된 예비 블록의 개수 및 상기 불휘발성 메모리 장치의 동작 카운트의 비율을 검출하는 단계; 상기 검출된 비율들을 저장하는 단계; 상기 저장된 비율들을 기반으로 현재 비율을 예측하는 단계; 및 상기 예측된 현재 비율을 기반으로 외부 장치로 수명 종료 경고 신호를 전송하는 단계를 포함하고, 상기 메모리 컨트롤러는 상기 복수의 유저 블록들 중 적어도 하나의 블록이 배드 블록이 된 경우 상기 배드 블록을 상기 복수의 예비 블록들 중 어느 하나로 교체하고, 상기 사용된 예비 블록은 상기 복수의 유저 블록들 중 적어도 하나와 대체된 예비 블록을 가리키고, 상기 동작 카운트는 상기 불휘발성 메모리 장치의 소거 횟수, 프로그램 횟수, 및 사용 시간 중 적어도 어느 하나이다.
실시 예로서, 상기 복수의 구간들 각각은 상기 불휘발성 메모리 장치의 동작 카운트에 의해 정의되는 구간들이다.
실시 예로서, 상기 복수의 구간들 각각은 상기 사용된 예비 블록의 개수에 의해 정의되는 구간들이다.
실시 예로서, 상기 저장된 비율들을 기반으로 현재 비율을 예측하는 단계는, 상기 저장된 비율들의 증가량을 기반으로 상기 현재 비율을 예측하는 단계를 포함한다.
실시 예로서, 상기 저장된 비율들의 증가량을 기반으로 상기 현재 비율을 예측하는 단계는, 상기 현재 비율을 상기 저장된 비율들보다 높게 예측하는 단계를 포함한다.
실시 예로서, 상기 예측된 현재 비율을 기반으로 외부 장치로 수명 종료 경고 신호를 전송하는 단계는, 상기 예측된 현재 비율을 기반으로 상기 불휘발성 메모리 장치의 남은 예상 수명을 예측하는 단계; 및 상기 예측된 남은 예상 수명 및 기준 수명을 비교하여 상기 외부 장치로 상기 수명 종료 경고 신호를 전송하는 단계를 포함한다.
실시 예로서, 상기 예측된 현재 비율을 기반으로 외부 장치로 수명 종료 경고 신호를 전송하는 단계는, 상기 예측된 현재 비율이 소정의 값보다 큰 경우 상기 외부 장치로 상기 수명 종료 경고 신호를 전송하는 단계를 포함한다.
본 발명에 따르면, 종래 기술보다 정확하게 불휘발성 메모리 시스템의 수명을 예측함으로써, 불휘발성 메모리 시스템의 고장 예측 및 고장 회피 효율이 증가하게 된다. 따라서, 향상된 성능을 갖는 불휘발성 메모리 시스템의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 사용자 시스템을 보여주는 블록도이다.
도 2는 도 1에 도시된 사용자 시스템의 소프트웨어 계층을 보여주는 블록도이다.
도 3은 도 1에 도시된 메모리 컨트롤러를 상세하게 보여주는 블록도이다.
도 4는 도 1에 도시된 불휘발성 메모리 장치를 상세하게 보여주는 블록도이다.
도 5는 도 4에 도시된 메모리 셀 어레이에 포함된 복수의 메모리 블록들을 예시적으로 보여주는 도면이다.
도 6은 도 2에 도시된 FTL의 웨어 레벨링 동작을 설명하기 위한 도면이다.
도 7은 도 2에 도시된 FTL의 리맵 동작을 설명하기 위한 도면이다.
도 8은 도 3에 도시된 메모리 컨트롤러의 동작 방법을 보여주는 순서도이다.
도 9 내지 도 11은 도 8에 도시된 메모리 컨트롤러의 동작을 설명하기 위한 도면들이다.
도 12는 본 발명의 다른 실시 예에 따른 메모리 컨트롤러의 동작 방법을 보여주는 순서도이다.
도 13은 도 12에 도시된 메모리 컨트롤러의 동작 방법을 설명하기 위한 그래프이다.
도 14는 본 발명의 또 다른 실시 예에 따른 메모리 컨트롤러의 동작을 보여주는 순서도이다.
도 15는 도 14에 도시된 메모리 컨트롤러의 동작을 상세하게 설명하기 위한 그래프이다.
도 16은 도 15에 도시된 메모리 컨트롤러의 동작을 설명하기 위한 도면이다.
도 17은 본 발명의 실시 예에 따른 불휘발성 메모리 장치가 적용된 솔리드 스테이트 드라이브(SSD) 시스템을 보여주는 블록도이다.
도 18은 본 발명에 따른 메모리 시스템이 적용된 사용자 시스템을 보여주는 블록도이다.
도 19는 본 발명에 따른 불휘발성 메모리 시스템이 적용된 서버 시스템을 예시적으로 보여주는 블록도이다.
이하에서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세하게 설명하기 위하여 본 발명의 실시 예들을 첨부된 도면들을 참조하여 설명하기로 한다.
본 발명에 따른 불휘발성 메모리 시스템은 소정의 동작 카운트(예를 들어, 소거 카운트, 프로그램 카운트, 시간 카운트 등)동안 사용된 예비 블록의 개수를 검출할 수 있다. 불휘발성 메모리 시스템은 검출된 예비 블록의 개수 및 소정의 동작 카운트의 비율을 기반으로 불휘발성 메모리 시스템의 남은 예상 수명(remaining lifetime)을 예측할 수 있다. 즉, 불휘발성 메모리 시스템의 수명을 종래 기술보다 정확하게 예측할 수 있다.
도 1은 본 발명의 실시 예에 따른 사용자 시스템을 보여주는 블록도이다. 도 1을 참조하면, 사용자 시스템(100)은 호스트(101) 및 불휘발성 메모리 시스템(110)을 포함한다. 예시적으로 사용자 시스템(100)은 UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP (portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), DMB (Digital Multimedia Broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player) 등과 같은 컴퓨팅 시스템들 중 어느 하나로 제공될 수 있다.
호스트(101)는 불휘발성 메모리 시스템(110)에 데이터를 기입하거나 또는 불휘발성 메모리 시스템(110)에 저장된 데이터를 독출하기 위하여 다양한 신호들을 불휘발성 메모리 시스템(110)으로 전송할 수 있다. 예를 들어, 호스트(101)는 불휘발성 메모리 시스템(110)으로 요청(RQ), 어드레스(ADDR), 및 데이터(DATA)를 전송할 수 있다. 호스트(101)는 불휘발성 메모리 시스템(110)으로부터 데이터(DATA)를 수신할 수 있다. 예시적으로, 호스트(101) 및 불휘발성 메모리 시스템(110)은 USB(Universal Serial Bus) 프로토콜, MMC(multimedia card) 프로토콜, PCI(peripheral component interconnection) 프로토콜, PCI-E (PCI-express) 프로토콜, ATA(Advanced Technology Attachment) 프로토콜, Serial-ATA 프로토콜, Parallel-ATA 프로토콜, SCSI(small computer small interface) 프로토콜, ESDI(enhanced small disk interface) 프로토콜, IDE(Integrated Drive Electronics), MIPI(Mobile Industry Processor Interface) 프로토콜, NVMe(Nonvolatile Memory-express) 프로토콜 등과 같은 다양한 인터페이스들 중 어느 하나를 기반으로 통신할 수 있다.
불휘발성 메모리 시스템(110)은 메모리 컨트롤러(120) 및 불휘발성 메모리 장치(130)를 포함한다. 메모리 컨트롤러(120)는 호스트(101)로부터 수신된 신호들에 응답하여 불휘발성 메모리 장치(130)를 제어할 수 있다. 예를 들어, 메모리 컨트롤러(120)는 호스트(101)로부터 읽기 또는 쓰기 요청(RQ) 및 어드레스(ADDR)를 수신하고, 수신된 신호들에 응답하여 불휘발성 메모리 장치(130)에 데이터(DATA)를 기입하거나 또는 불휘발성 메모리 장치(130)에 저장된 데이터(DATA)를 독출하기 위하여 커맨드(CMD), 물리적 어드레스(ADDR_p), 및 제어 신호(CTRL)를 불휘발성 메모리 장치(130)로 전송할 수 있다. 예시적으로, 메모리 컨트롤러(120)은 호스트(101)로부터 수신된 어드레스(ADDR)를 불휘발성 메모리 장치(130)의 물리적 어드레스(ADDR_p)로 변환하고, 변환된 물리적 어드레스(ADDR_p)를 불휘발성 메모리 장치(130)로 전송할 수 있다.
메모리 컨트롤러(120)는 불휘발성 메모리 장치(130)의 소거 동작을 제어할 수 있다. 예를 들어, 메모리 컨트롤러(120)는 불휘발성 메모리 장치(130)가 무효 블록들을 소거하도록 불휘발성 메모리 장치(130)를 제어할 수 있다.
불휘발성 메모리 장치(130)는 메모리 컨트롤러(120)로부터 수신된 신호들에 응답하여 동작할 수 있다. 불휘발성 메모리 장치(130)는 커맨드(CMD), 물리적 어드레스(ADDR_p), 및 제어 신호(CTRL)에 응답하여 데이터(DATA)를 기입하거나 또는 저장된 데이터(DATA)를 메모리 컨트롤러(120)로 전송할 수 있다. 예시적으로, 불휘발성 메모리 장치(130)은 낸드 플래시 메모리 장치인 것으로 가정한다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 불휘발성 메모리 장치(130)은 PRAM, ReRAM, MRAM, FRAM 등과 같은 불휘발성 메모리 소자들을 포함할 수 있다.
예시적으로, 메모리 컨트롤러(120)는 수명 관리부(121)를 포함할 수 있다. 수명 관리부(121)는 불휘발성 메모리 장치(130)의 수명을 관리할 수 있다. 예를 들어, 불휘발성 메모리 장치(130)의 프로그램/소거 횟수가 일정 수준 이상인 경우, 불휘발성 메모리 장치(130)에 저장된 데이터가 유실되거나 또는 불휘발성 메모리 장치(130)에 포함된 메모리 블록들이 배드 블록이 될 수 있다. 즉, 불휘발성 메모리 장치(130)의 프로그램/소거 횟수가 일정 수준 이상이 된 경우, 불휘발성 메모리 장치(130)에 저장된 데이터(DATA)의 신뢰성이 보장되지 않을 수 있다.
수명 관리부(121)는 불휘발성 메모리 장치(130)의 동작 카운트(예를 들어, 소거 카운트, 프로그램 카운트, 시간 카운트등) 및 예비 블록의 사용량을 기반으로 불휘발성 메모리 장치(130)의 예상 수명을 예측할 수 있다. 예시적으로, 불휘발성 메모리 장치(130)의 예상 수명은 평균 소거 횟수, 평균 프로그램 횟수, 사용 시간 등을 기반으로 예측될 수 있다.
메모리 컨트롤러(120)는 예측된 예상 수명을 기반으로 수명 종료 경고 신호(EOL, End of Lifetime warning signal)를 호스트(101)로 전송할 수 있다. 예를 들어, 메모리 컨트롤러(120)는 예측된 예상 수명을 기반으로 남은 예상 수명을 검출하고, 검출된 남은 예상 수명이 기준 수명보다 작은 경우, 수명 종료 경고 신호(EOL)를 호스트(101)로 전송할 수 있다. 즉, 수명 종료 경고 신호(EOL)는 불휘발성 메모리 장치(130)의 남은 예상 수명이 기준 수명보다 낮음을 호스트(101)로 알리는 경고 신호일 수 있다.
예시적으로, 호스트(101)는 수명 종료 경고 신호(EOL)를 수신하고, 수신된 수명 종료 경고 신호(EOL)에 응답하여 사용자(user)에게 불휘발성 메모리 시스템(110)의 수명을 알리거나 또는 다른 동작(예를 들어, 데이터 백업)을 수행할 수 있다. 상술된 메모리 컨트롤러(120)의 동작 방법은 이하의 도면들을 참조하여 더욱 상세하게 설명된다.
도 2는 도 1에 도시된 사용자 시스템의 소프트웨어 계층을 보여주는 블록도이다. 도 1 및 도 2를 참조하면, 사용자 시스템(100)의 소프트웨어 계층은 어플리케이션(102), 파일 시스템(103), 및 플래시 변환 계층(122)을 포함한다. 어플리케이션(102)은 사용자 시스템(100)에서 구동되는 다양한 응용 프로그램들을 가리킨다. 예를 들어, 어플리케이션(110)은 운영 체제, 문서 편집기, 웹브라우저, 영상 재생기, 게임 프로그램 등을 포함한다.
파일 시스템(103)은 어플리케이션(102)에 의해 사용되는 파일 또는 데이터를 플래시 메모리(130)에 저장할 경우, 이를 조직화하는 역할을 수행한다. 예를 들어, 파일 시스템(103)은 파일 또는 데이터의 논리적 어드레스(ADDR)를 불휘발성 메모리 시스템(110)로 제공할 수 있다. 예시적으로, 파일 시스템(103)은 호스트(101)의 운영 체제(OS; Operating System)에 따라 다른 형태를 가질 수 있다. 예시적으로 파일 시스템(103)은 FAT(File Allocation Table), FAT32, NTFS(NT File System), HFS(Hierarchical File System), JSF2(Journaled File System2), XFS, ODS-5(On-Disk Structure-5), UDF, ZFS, UFS(Unix File System), ext2, ext3, ext4, ReiserFS, Reiser4, ISO 9660, Gnome VFS, BFS, 또는 WinFS 등을 포함할 수 있다. 예시적으로, 파일 시스템(103)은 데이터를 섹터 단위로 정의할 수 있다. 예시적으로, 파일 시스템(103)은 호스트(101)에 의해 구동될 수 있다.
플래시 변환 계층(122, 이하에서, 'FTL'이라 칭한다.)은 불휘발성 메모리 장치(130)가 효율적으로 사용되도록 호스트(101) 및 불휘발성 메모리 장치(130) 사이의 인터페이스를 제공할 수 있다. 예를 들어, 불휘발성 메모리 장치(130)는 페이지(page) 단위로 데이터를 쓰고 읽을 수 있다. 그러나 파일 시스템(103)은 데이터 또는 파일을 섹터단위로 관리하기 때문에, FTL(122)은 논리적 어드레스(ADDR)를 수신하여 불휘발성 메모리 장치(130)에서 사용 가능한 물리적 어드레스(ADDR_p)로 변환하는 역할을 수행한다. FTL(122)은 이러한 어드레스 변환 동작을 매핑 테이블(미도시)을 통해 관리한다. 예시적으로, FTL(122)은 가비지 컬렉션(GC), 웨어 레벨링(Wareleveling) 등과 같은 동작을 수행할 수 있다. 예를 들어, FTL(122)은 불휘발성 메모리 장치(130)에 포함된 복수의 메모리 블록들의 프로그램/소거 횟수를 관리하고, 이를 기반으로 복수의 메모리 블록들의 프로그램/소거 횟수가 평준화되도록 웨어 레벨링을 수행할 수 있다.
FTL(122)은 불휘발성 메모리 장치(130)에 포함된 복수의 메모리 블록들을 유저 블록 및 예비 블록으로 구분하여 관리할 수 있다. FTL(122)은 유저 블록에 데이터가 기입되도록 어드레스 변환을 수행할 수 있다. 이 때, 유저 블록 중 어느 하나가 배드 블록이 된 경우, FTL(122)은 예비 블록 중 어느 하나를 유저 블록으로 대체할 것이다. 즉, FTL(122)은 배드 블록이 된 유저 블록과 예비 블록을 교체할 수 있다. 이와 같은 동작은 "리맵 동작"이라 불린다.
도 3은 도 1에 도시된 메모리 컨트롤러를 상세하게 보여주는 블록도이다. 도 1 및 도 3을 참조하면, 메모리 컨트롤러(120)는 수명 관리부(121), FTL(122), 프로세서(123), SRAM(124), ROM(125), 호스트 인터페이스(126), 및 플래시 인터페이스(127)를 포함한다. FTL(122)은 도 2를 참조하여 설명되었으므로 이에 대한 상세한 설명은 생략된다.
수명 관리부(121)는 불휘발성 메모리 시스템(110)의 수명을 예측하고 관리할 수 있다. 예를 들어, 수명 관리부(121)는 불휘발성 메모리 장치(130)의 소거 횟수를 카운팅할 수 있다. 수명 관리부(121)는 불휘발성 메모리 장치(130)의 사용된 예비 블록의 수를 관리할 수 있다. 수명 관리부(121)는 소거 횟수 및 사용된 예비 블록의 수를 기반으로 불휘발성 메모리 시스템(110) 또는 불휘발성 메모리 장치(130)의 예상 수명을 예측하고, 관리할 수 있다.
예시적으로, 수명 관리부(121)는 수명 종료 경고 신호(EOL)를 호스트(101)로 전송할 수 있다. 예를 들어, 불휘발성 메모리 시스템(110)의 남은 예상 수명이 기준 수명 이하인 경우, 수명 관리부(121)는 수명 종료 경고 신호(EOL)를 호스트(101)로 전송할 수 있다. 예시적으로, 수명 관리부(121)는 호스트 인터페이스(126)를 통해 수명 종료 경고 신호(EOL)를 호스트(101)로 전송할 수 있다.
예시적으로, 수명 관리부(121)는 소프트웨어 계층으로 제공되며, FTL(122)에 포함될 수 있다. 수명 관리부(121)는 펌웨어 형태로 ROM(125)에 저장될 수 있고, 프로세서(123)에 의해 구동될 수 있다.
프로세서(123)는 메모리 컨트롤러(120)의 제반 동작을 제어할 수 있다. 예시적으로, 프로세서(123)는 소프트웨어 계층으로 제공되는 수명 관리부(121) 및 FTL(122)을 구동할 수 있다. SRAM(124)은 프로세서(123)의 버퍼 메모리, 캐쉬 메모리, 동작 메모리 등으로 사용될 수 있다. ROM(125)은 메모리 컨트롤러(120)가 동작하는데 요구되는 정보들을 펌웨어 형태로 저장할 수 있다.
메모리 컨트롤러(110)는 호스트 인터페이스(126)를 통해 호스트(101)와 통신할 수 있다. 메모리 컨트롤러(110)는 플래시 인터페이스(127)를 통해 불휘발성 메모리 장치(130)와 통신할 수 있다.
도 4는 도 1에 도시된 불휘발성 메모리 장치를 상세하게 보여주는 블록도이다. 도 1 및 도 4를 참조하면, 불휘발성 메모리 장치(130)는 메모리 셀 어레이(131), 어드레스 디코더(132), 제어 로직 및 전압 발생기(133), 및 입출력 회로(134)를 포함한다.
메모리 셀 어레이(131)는 복수의 메모리 블록들을 포함한다. 복수의 메모리 블록들은 복수의 스트링들을 포함하고, 복수의 스트링들 각각은 복수의 메모리 셀들을 포함한다. 복수의 메모리 셀들 각각은 하나의 비트를 저장하는 싱글 레벨 셀(SLC; Single Level Cell) 또는 적어도 두 개의 비트를 저장하는 멀티 레벨 셀(MLC; Multi Level Cell)로 제공될 수 있다.
어드레스 디코더(132)는 스트링 선택 라인(SSL), 접지 선택 라인(GSL), 및 복수의 워드 라인들(WL)을 통해 메모리 셀 어레이(131)와 연결된다. 어드레스 디코더(132)는 물리적 어드레스(ADDR_p)를 수신하고, 수신된 물리적 어드레스(ADDR_p)를 디코딩할 수 있다. 어드레스 디코더(132)는 디코딩된 어드레스를 기반으로 스트링 선택 라인(SSL), 접지 선택 라인(GSL), 및 복수의 워드 라인들(WL)의 전압들을 제어할 수 있다.
제어 로직 및 전압 발생기(133)는 커맨드(CMD) 및 제어 신호(CTRL)에 응답하여 어드레스 디코더(132) 및 입출력 회로(134)를 제어할 수 있다. 제어 로직 및 전압 발생기(133)는 불휘발성 메모리 장치(130)가 동작하는데 요구되는 다양한 전압들을 생성할 수 있다. 예를 들어, 제어 로직 및 전압 발생기(133)는 복수의 선택 읽기 전압들, 복수의 비선택 읽기 전압들, 복수의 프로그램 전압들, 복수의 패스 전압들, 복수의 소거 전압들 등과 같은 다양한 전압들을 생성할 수 있다.
입출력 회로(134)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(131)와 연결된다. 입출력 회로(134)는 메모리 셀 어레이(131)에 기입될 데이터(DATA)를 수신하고, 수신된 데이터(DATA)를 기반으로 비트 라인을 제어할 수 있다. 이 때, 입출력 회로(134)는 쓰기 드라이버로 동작할 수 있다. 입출력 회로(134)는 메모리 셀 어레이(131)에 저장된 데이터(DATA)를 읽고, 읽은 데이터(DATA)를 메모리 컨트롤러(120)로 전송할 수 있다. 이 때, 입출력 회로(134)는 감지 회로로 동작할 수 있다.
도 5는 도 4에 도시된 메모리 셀 어레이에 포함된 복수의 메모리 블록들을 예시적으로 보여주는 도면이다. 간결한 설명을 위하여, 유저 블록 및 예비 블록을 설명하는데 불필요한 구성 요소들은 생략된다. 이하에서 메모리 블록 단위을 기반으로 불휘발성 메모리 시스템의 수명 예측 방법이 설명되나, 본 발명의 범위가 이에 한정되는 것은 아니며, 본 발명의 기술적 사상은 슈퍼 블록 단위, 서브 블록 단위, 워드 라인 단위, 페이지 단위, 및 메모리 셀 단위로 확장될 수 있다.
도 2 및 도 5를 참조하면, 메모리 셀 어레이(131)는 복수의 메모리 블록들(BLK1~BLKn, BLKr)을 포함한다. FTL(122)은 복수의 메모리 블록들(BLK1~BLKn, BLKr) 중 일부 메모리 블록들(BLK1~BLKn)을 유저 블록(user block)으로 사용하고, 나머지 메모리 블록들(BLKr)을 예비 블록(reserved block)으로 사용할 수 있다. 예를 들어, FTL(122)은 호스트(101)로부터 수신된 데이터(DATA)가 유저 블록들(BLK1~BLKn)에 기입되도록 어드레스 변환 동작을 수행할 수 있다.
도 6은 도 2에 도시된 FTL의 웨어 레벨링 동작을 설명하기 위한 도면이다. 도 5 및 도 6을 참조하면, FTL(122)은 복수의 메모리 블록들(BLK1~BLKn, BLKr) 중 일부 메모리 블록들(BLK1~BLKn)을 유저 블록(user block)으로 관리할 것이다. 이 때, FTL(122)은 메모리 블록들(BLK1~BLKn) 각각의 소거 횟수(E/C_1~E/C_n)를 관리할 수 있다. 즉, FTL(122)은 메모리 블록들(BLK1~BLKn)의 소거 횟수(E/C_1~E/C_n)가 평준화되도록 메모리 블록들(BLK1~BLKn)을 할당하고 관리할 수 있다. 따라서 유저 블록으로 사용되는 메모리 블록들(BLK1~BLKn) 중 특정 메모리 블록이 자주 사용되어 배드 블록이 빨리 발생하는 현상이 감소될 수 있다.
도 7은 도 2에 도시된 FTL의 리맵 동작을 설명하기 위한 도면이다. 도 2 및 도 7을 참조하면, FTL(122)은 복수의 메모리 블록들(BLK1~BLKn, BLKr) 중 일부 메모리 블록들(BLK1~BLKn)을 유저 블록(user block)으로 사용하고, 나머지 메모리 블록들(BLKr)을 예비 블록(reserved block)으로 사용하도록 메모리 블록들(BLK1~BLKn, BLKr)을 관리할 것이다.
예시적으로, 복수의 메모리 블록들(BLK1~BLKn, BLKr) 각각은 소정의 소거 동작이 수행된 이 후, 배드 블록이 될 수 있다. 예를 들어, 제 3 및 제 4 메모리 블록들(BLK3, BLK4)의 소거 횟수가 기준 값 이상이 되어 제 3 및 제 4 메모리 블록들(BLK3, BLK4)에 저장된 데이터가 유실될 수 있다. 이 때, FTL(122)은 제 3 및 제 4 메모리 블록들(BLK3, BLK4)을 배드 블록으로 관리할 수 있다. 또는 외부 요인들(외부 충격, 열 등)로 인하여 제 3 및 제 4 메모리 블록들(BLK3, BLK4)에 저장된 데이터를 복구할 수 없는 경우, FTL(122)은 제 3 및 제 4 메모리 블록들(BLK3, BLK4)을 배드 블록으로 관리할 수 있다.
FTL(122)은 배드 블록이 된 제 3 및 제 4 메모리 블록들(BLK3, BLK4)을 예비 블록들(BLKr)로 교체할 수 있다. 예를 들어, FTL(122)은 제 3 및 제 4 메모리 블록들(BLK3, BLK4)과 대응되는 논리적 어드레스(ADDR)가 예비 블록들(BLKr)에 매핑되도록 매핑 테이블(미도시)을 갱신할 수 있다. 예시적으로, 사용된 예비 블록은 교체된 예비 블록을 가리킬 수 있다.
즉, 도 5 내지 도 7을 참조하여 설명된 바와 같이 FTL(122)은 유저 블록들의 소거 횟수를 기반으로 웨어 레벨링을 수행할 수 있고, 유저 블록이 배드 블록이 된 경우 배드 블록을 예비 블록으로 교체할 수 있다. FTL(122)의 상술된 동작에 의해 불휘발성 메모리 시스템(120)의 동작 카운트가 증가할수록 예비 블록의 사용 비율이 증가할 수 있다.
도 8은 도 3에 도시된 메모리 컨트롤러의 동작 방법을 보여주는 순서도이다. 간결한 설명을 위하여, 불휘발성 메모리 장치(130)의 수명은 평균 소거 횟수(E/C)를 기반으로 설명된다. 또한, 메모리 컨트롤러(120)는 현 시점에서의 소거 횟수(E/C) 및 사용된 예비 블록의 수(RB)를 기반으로 불휘발성 메모리 장치(130)의 수명을 예측하는 것으로 가정한다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 불휘발성 메모리 장치(130)의 수명은 평균 프로그램 횟수, 사용 시간, I/O 횟수 등으로 대체될 수 있다. 또한, 사용된 예비 블록의 수(RB)는 리맵 동작의 횟수로 대체될 수 있다.
도 3 및 도 8을 참조하면, S110 단계에서, 메모리 컨트롤러(120)는 미리 정해진 동작 카운트 동안 사용된 예비 블록의 수를 검출할 수 있다. 예시적으로, 동작 카운트는 불휘발성 메모리 장치(130)의 소거 횟수를 가리키는 소거 카운트일 수 있다. 또는 동작 카운트는 불휘발성 메모리 장치(130)의 프로그램 횟수를 가리키는 프로그램 카운트일 수 있다. 또는 동작 카운트는 불휘발성 메모리 장치(130)의 사용 시간을 가리키는 시간 카운트일 수 있다. 간결한 설명을 위하여 동작 카운트는 소거 카운트(또는 소거 횟수)인 것으로 가정한다.
S120 단계에서, 메모리 컨트롤러(120)는 사용된 예비 블록의 수의 미리 정해진 소거 횟수에 대한 비율(ratio)을 연산할 수 있다. 예시적으로, 비율은 미리 정해진 소거 횟수에 대한 예비 블록의 사용율을 가리킨다.
S130 단계에서, 메모리 컨트롤러(120)는 연산된 비율을 기반으로 남은 예상 수명을 예측할 수 있다. 예를 들어, 연산된 비율은 미리 정해진 소거 횟수 동안 사용된 예비 블록의 수를 가리킬 것이다. 즉, 수명 관리부(121)는 남은 예비 블록 및 연산된 비율을 기반으로 불휘발성 메모리 장치(130)의 남은 예상 수명(remaining lifetime)을 예측할 수 있다.
S140 단계에서, 메모리 컨트롤러(120)는 예측된 수명 및 기준 수명을 비교할 수 있다. 예시적으로, 기준 수명은 불휘발성 메모리 장치(130)의 전체 수명(또는 보장된 수명(Guaranteed lifetime)의 일정 비율을 가리킬 수 있다.
예측된 수명이 기준 수명보다 작거나 같은 경우, S150 단계에서, 메모리 컨트롤러(120)는 수명 종료 경고 신호(EOL)를 호스트(101)로 전송할 수 있다. 예측된 수명이 기준 수명보다 큰 경우, 메모리 컨트롤러(120)는 별도의 동작을 수행하지 않을 것이다.
예시적으로, 상술된 메모리 컨트롤러(120)의 동작은 수명 관리부(125)에 의해 수행될 수 있다. 또는 상술된 메모리 컨트롤러(120)의 동작은 수명 관리부(125)를 구동하는 프로세서(123)에 의해 수행될 수 있다.
비록 도면에 도시되지는 않았으나, 연산된 비율이 소정의 값 이상인 경우 메모리 컨트롤러(120)는 수명 종료 경고 신호(EOL)를 호스트(101)로 전송할 수 있다. 예시적으로, 연산된 비율은 별도의 저장 회로(예를 들어, 레지스터, 퓨즈 등)에 저장될 수 있다.
도 9 내지 도 11은 도 8에 도시된 메모리 컨트롤러의 동작을 설명하기 위한 도면들이다. 도 9 내지 도 11에 도시된 그래프들의 X축들은 소거 횟수(Erase Count)를 가리키고, Y축들은 사용된 예비 블록의 수를 가리킨다.
먼저 도 3 및 도 9를 참조하면, 제 1 라인(L01)은 불휘발성 메모리 장치(130)의 소거 횟수(E/C)에 대한 일반적인 예비 블록의 사용량을 보여준다. 제 1 라인(L01)과 같이 불휘발성 메모리 장치(130)가 제 1 소거 횟수(EC1)만큼 사용된 경우 제 1 값(RB1)만큼 예비 블록이 사용되고, 제 2 소거 횟수(EC2)만큼 사용된 경우 제 2 값(RB2)만큼 예비 블록이 사용되고, 제 3 소거 횟수(EC3)만큼 사용된 경우 제 3 값(RB3)만큼 예비 블록이 사용되고, 제 4 소거 횟수(EC4)만큼 사용된 경우 제 4 값(RB4)만큼 예비 블록이 사용되고, 제 5 소거 횟수(EC5)만큼 사용된 경우 제 5 값(RB5)만큼 예비 블록이 사용되고, 제 6 소거 횟수(EC6)만큼 사용된 경우 제 6 값(RB6)만큼 예비 블록이 사용되고, 제 7 소거 횟수(EC7)만큼 사용된 경우 제 7 값(RB7)만큼 예비 블록이 사용되고, 제 8 소거 횟수(EC8)만큼 사용된 경우 제 8 값(RB8)만큼 예비 블록이 사용될 것이다. 예시적으로, 제 9 값(RB9)은 불휘발성 메모리 장치(130)에 포함된 모든 예비 블록의 수와 동일할 수 있다. 제 9 값(RB9)만큼 예비 블록이 사용된 소거 횟수가 불휘발성 메모리 장치(130)의 수명(LT)일 수 있다.
메모리 컨트롤러(120)는 불휘발성 메모리 장치(120)의 소거 횟수를 복수의 구간들(ⅰ, ⅱ, ⅲ, ⅳ, ⅴ, ⅵ, ⅶ, ⅷ, ⅸ)로 분할할 수 있다. 제 1 구간(ⅰ)은 초기 동작부터 제 1 소거 횟수(EC1)까지의 구간을 가리키고, 제 2 구간(ⅱ)은 제 1 소거 횟수(EC1)부터 제 2 소거 횟수(EC2)까지의 구간을 가리키고, 제 3 구간(ⅲ)은 제 2 소거 횟수(EC2)부터 제 3 소거 횟수(EC3)까지의 구간을 가리키고,제 4 구간(ⅳ)은 제 3 소거 횟수(EC3)부터 제 4 소거 횟수(EC2)까지의 구간을 가리키고,제 5 구간(ⅴ)은 제 4 소거 횟수(EC4)부터 제 5 소거 횟수(EC5)까지의 구간을 가리키고,제 6 구간(ⅵ)은 제 5 소거 횟수(EC5)부터 제 6 소거 횟수(EC6)까지의 구간을 가리키고, 제 7 구간(ⅶ)은 제 6 소거 횟수(EC6)부터 제 7 소거 횟수(EC7)까지의 구간을 가리키고,제 8 구간(ⅷ)은 제 7 소거 횟수(EC7)부터 제 8 소거 횟수(EC8)까지의 구간을 가리키고,제 9 구간(ⅸ)은 제 8 소거 횟수(EC8)부터 제 9 소거 횟수(EC9)까지의 구간을 가리킨다. 즉, 복수의 구간들(ⅰ, ⅱ, ⅲ, ⅳ, ⅴ, ⅵ, ⅶ, ⅷ, ⅸ)은 불휘발성 메모리 장치(130)의 소거 횟수에 의해 정의되는 구간들일 수 있다.
예시적으로, 복수의 구간들(ⅰ, ⅱ, ⅲ, ⅳ, ⅴ, ⅵ, ⅶ, ⅷ, ⅸ) 각각의 소거 횟수는 서로 동일할 것이다. 예시적으로, 제 1 구간(ⅰ)은 초기 배드 블록을 처리하기 위한 구간일 수 있다. 예시적으로, 메모리 컨트롤러(120)는 초기 배드 블록을 처리하기 위한 구간을 제외한 나머지 소거 횟수를 복수의 구간들로 분할하여 관리할 수 있다.
도 9에 도시된 바와 같이, 불휘발성 메모리 장치(130)의 소거 횟수가 증가할수록, 복수의 구간들(ⅰ, ⅱ, ⅲ, ⅳ, ⅴ, ⅵ, ⅶ, ⅷ, ⅸ) 각각에서 사용되는 예비 블록의 수 또한 증가한다. 이는 FTL(122)의 웨어 레벨링 동작에 의해 소거 횟수가 증가할수록 배드 블록 발생량이 증가하기 때문이다. 즉, 복수의 구간들(ⅰ, ⅱ, ⅲ, ⅳ, ⅴ, ⅵ, ⅶ, ⅷ, ⅸ) 각각에서 사용된 예비 블록의 수의 증가량은 서로 다를 것이다.
예를 들어, 메모리 컨트롤러(120)는 1K회의 소거 횟수마다 예비 블록의 사용량을 체크할 수 있다. 즉, 복수의 구간들(ⅰ, ⅱ, ⅲ, ⅳ, ⅴ, ⅵ, ⅶ, ⅷ)은 각각 1K회의 소거 횟수로 분할될 수 있다. 이 때, 제 2 구간(ii, 즉, 2K회~3K회의 소거 횟수 동안)에서의 예비 블록 사용량은 제 1 구간(ⅰ, 다시 말해서, 0회~1K회의 소거 횟수 동안)에서의 예비 블록 사용량보다 많을 것이다. 마찬가지로 제 9 구간(ⅸ, 즉, 소거횟수 8K회~9K회의 소거 횟수 동안)에서의 예비 블록의 사용량은 제 8 구간(ⅷ, 즉, 소거횟수 7K회~8K회의 소거 횟수 동안)의 예비 블록의 사용량보다 많을 것이다.
만약, 제 8 구간(ⅷ)에서 사용된 예비 블록의 비율이 20%이고, 불휘발성 메모리 장치(130)의 소거 횟수가 8K회이고, 남은 예비 블록의 비율이 20%인 경우, 메모리 컨트롤러(120)는 9K회의 소거 이후에 불휘발성 메모리 장치(130)의 남은 소거 횟수가 1K회임을 알 수 있다. 다시 말해서, 메모리 컨트롤러(120)는 8 구간(ⅷ)에서의 소거 횟수에 대한 예비 블록의 사용량의 비율(즉, 1000/20%) 및 남은 예비 블록의 비율(즉, 20%)을 기반으로 불휘발성 메모리 장치(130)의 남은 소거 횟수가 1K회임을 알 수 있다. 예시적으로, 남은 소거 횟수는 예비 블록이 모두 사용될 때까지의 불휘발성 메모리 장치(130)의 남은 소거 횟수를 가리킨다. 즉, 불휘발성 메모리 장치(130)가 남은 소거 횟수만큼 소거 동작을 수행할 경우, 예비 블록이 모두 사용될 수 있다. 이 경우, 불휘발성 메모리 장치(130)의 수명이 종료된 것으로 판단될 수 있다.
예시적으로, 상술된 수치들은 본 발명의 기술적 사상을 용이하게 설명하기 위한 수치들이며, 본 발명의 범위가 이에 한정되지 않음은 잘 이해될 것이다.
다음으로, 도 10을 참조하면, 제 1 라인(L01)은 일반적인 불휘발성 메모리 장치(130)의 소거 횟수(EC) 및 예비 블록 사용량의 관계를 보여준다. 그러나 사용자(user)의 사용 패턴에 따라 불휘발성 메모리 장치(130)의 소거 횟수(EC) 및 예비 블록의 사용량의 관계가 제 2 라인(L02)과 같이 바뀔 수 있다.
불휘발성 메모리 장치(130)가 제 8 소거 횟수(EC8)까지 사용된 경우, 본 발명에 따른 메모리 컨트롤러(120)는 제 8 구간(ⅷ)의 구간동안 사용된 예비 블록의 수(즉, RB7`-RB8`)를 검출하고, 검출된 예비 블록의 수(즉, RB7`-RB8`)를 기반으로 불휘발성 메모리 장치(130)의 예상 수명(LT_e)을 예측할 수 있다. 예를 들어, 제 2 라인(L02)으로 도시된 바와 같이 제 7 소거 횟수(EC7)에서 사용된 예비 블록의 수는 RB7`이고, 제 8 소거 횟수(EC8)에서 사용된 예비 블록의 수는 RB8'일 것이다. 메모리 컨트롤러(120)는 제 8 구간(ⅷ)의 소거 횟수 및 검출된 예비 블록의 수(즉, RB7`-RB8`)를 기반으로 비율(ratio)을 연산할 수 있다. 예시적으로, 연산된 비율은 제 3 라인(L03)의 기울기와 같을 수 있다. 메모리 컨트롤러(120)는 제 3 라인을 기반으로 예상 수명(LT_e)을 예측할 수 있다.
예시적으로, 메모리 컨트롤러(120)는 현재의 소거 횟수(즉, 제 8 소거 횟수(EC8)) 및 예상 수명(LT_e)을 비교하여 남은 예상 수명(LT_r)을 연산하고, 남은 예상 수명(LT_r)이 기준 수명보다 적은 경우, 수명 종료 경고 신호(EOL)를 호스트(101)로 전송할 수 있다.
도 9에 도시된 바와 같이, 불휘발성 메모리 장치(130)의 수명은 LT일 수 있다. 그러나 사용자의 사용패턴에 따라 불휘발성 메모리 장치(130)의 수명이 증가될 수 있을 것이다. 이 때, 본 발명에 따른 메모리 컨트롤러(120)는 미리 정해진 구간동안 사용된 예비 블록의 수를 검출하고, 이를 기반으로 예상 수명(LT_e)을 예측함으로써 종래 기술보다 정확하게 예상 수명을 예측할 수 있다.
다음으로, 도 11을 참조하면, 제 1 라인(L01)은 일반적인 불휘발성 메모리 장치(130)의 소거 횟수(EC) 및 예비 블록 사용량의 관계를 보여준다. 그러나 사용자(user)의 사용 패턴 또는 외부 요인에 따라 불휘발성 메모리 장치(130)의 소거 횟수(EC) 및 예비 블록의 사용량의 관계가 제 4 라인(L04)과 같이 바뀔 수 있다. 이 때, 도 10을 참조하여 설명된 바와 마찬가지로, 메모리 컨트롤러(120)는 제 7 구간(ⅶ) 동안 사용된 예비 블록의 수(즉, RB7`-RB6)를 검출하고, 이를 기반으로 예상 수명(LT_e`)을 예측할 수 있다. 예시적으로, 제 7 구간(ⅶ)의 비율은 제 5 라인(L05)의 기울기와 동일할 수 있다.
예시적으로, 불휘발성 메모리 장치(130)의 소거 횟수(EC) 및 예비 블록의 사용량의 관계가 제 4 라인(L04)과 같이 바뀔 경우 불휘발성 메모리 장치(130)의 수명(LT)보다 예상 수명(LT_e`)이 짧을 것이다. 즉, 불휘발성 메모리 장치(130)의 수명이 LT라 하더라도, LT만큼 사용되기 전에 불휘발성 메모리 장치(130)의 모든 예비 블록이 사용될 수 있을 것이다. 즉, 종래 기술의 경우 예비 블록이 모두 사용되더라도 수명 종료 경고 신호(EOL)가 호스트(101)로 전송되지 않을 수 있다.
그러나, 본 발명에 따른 메모리 컨트롤러(120)는 미리 정해진 구간동안 사용된 예비 블록의 수를 기반으로 비율을 연산하고, 연산된 비율을 기반으로 예상 수명(LT_e`)을 예측하기 때문에, 종래 기술보다 정확하게 예상 수명을 예측할 수 있다.
도 12는 본 발명의 다른 실시 예에 따른 메모리 컨트롤러의 동작 방법을 보여주는 순서도이다. 도 3 및 도 12를 참조하면, S210 단계에서, 메모리 컨트롤러(120)는 미리 정해진 개수의 예비 블록이 사용되는 동안의 동작 카운트를 검출할 수 있다. 예시적으로, 동작 카운트는 불휘발성 메모리 장치(130)의 소거 카운트, 프로그램 카운트, 시간 카운트 등을 가리킬 수 있다. 간결한 설명을 위하여, 동작 카운트는 소거 카운트(또는 소거 횟수)인 것으로 가정한다.
S220 단계에서, 메모리 컨트롤러(120)는 미리 정해진 예비 블록의 수에 대한 검출된 동작 카운트의 비율을 연산할 수 있다. S230 단계 내지 S250 단계의 동작은 도 8의 S130 단계 내지 S150 단계와 동일하므로, 이에 대한 설명은 생략된다.
비록 도면에 도시되지는 않았으나, 연산된 비율이 소정의 값 이상인 경우 메모리 컨트롤러(120)는 수명 종료 경고 신호(EOL)를 호스트(101)로 전송할 수 있다. 예시적으로, 연산된 비율은 별도의 저장 회로(예를 들어, 레지스터, 퓨즈 등)에 저장될 수 있다.
예시적으로, 도 12에 도시된 메모리 컨트롤러(120)의 동작은 도 8에 도시된 메모리 컨트롤러(120)의 동작과 비교하여 기준 변수를 서로 달리한다. 예를 들어, 도 8의 동작 방법은 소거 횟수를 기준으로 하여 미리 정해진 소거 횟수동안 사용된 예비 블록의 수를 검출한다. 반면에, 도 12의 동작 방법은 사용된 예비 블록의 수를 기준으로 하여 미리 정해진 개수의 예비 블록이 사용되는 동안의 소거 횟수를 검출한다. 즉, 도 8 및 도 12에 도시된 동작 방법들은 서로 기준 변수를 달리할 뿐 서로 동일한 효과를 가질 것이다.
도 13은 도 12에 도시된 메모리 컨트롤러의 동작 방법을 설명하기 위한 그래프이다. 도 13에 도시된 그래프의 X축은 소거 횟수(E/C)를 가리키고, Y축은 사용된 예비 블록의 수를 가리킨다. 도 13을 참조하면, 제 1 라인(L01)은 불휘발성 메모리 장치(130)의 소거 횟수(E/C)에 대한 일반적인 예비 블록의 사용량을 보여준다. 불휘발성 메모리 장치(130)가 제 1 내지 제 9 소거 횟수들(EC1~EC9) 및 제 1 내지 제 9 값들(RB1~RB9)은 도 9를 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
예시적으로, 메모리 컨트롤러(120)는 사용된 예비 블록의 수를 복수의 구간들(Ⅰ, Ⅱ, Ⅲ, Ⅳ, Ⅴ, Ⅵ, Ⅶ, Ⅷ, Ⅸ)로 분할하여 관리할 수 있다. 제 1 구간(Ⅰ)은 초기 동작부터 제 1 값(RB1)까지의 구간을 가리키고, 제 2 구간(Ⅱ)은 제 1 값(RB1)부터 제 2 값까지의 구간을 가리키고, 제 3 구간(Ⅲ)은 제 2 값(RB2)부터 제 3 값(RB3)까지의 구간을 가리키고, 제 4 구간(Ⅳ)은 제 3 값(RB3)부터 제 4 값(RB4)까지의 구간을 가리키고, 제 5 구간(Ⅴ)은 제 4 값(RB4)부터 제 5 값(RB5)까지의 구간을 가리키고, 제 6 구간(Ⅵ)은 제 5 값(RB5)부터 제 6 값(RB6)까지의 구간을 가리키고, 제 7 구간(Ⅶ)은 제 6 값(RB6)부터 제 7 값(RB7)까지의 구간을 가리키고, 제 8 구간(Ⅷ)은 제 7 값(RB7)부터 제 7 값(RB8)까지의 구간을 가리키고, 제 9 구간(Ⅸ)은 제 8 값(RB8)부터 제 9 값(RB9)까지의 구간을 가리킨다. 즉, 복수의 구간들(Ⅰ, Ⅱ, Ⅲ, Ⅳ, Ⅴ, Ⅵ, Ⅶ, Ⅷ, Ⅸ)은 복수의 예비블록들에 의해 정의된 구간들일 수 있다.
예시적으로, 복수의 구간들(Ⅰ, Ⅱ, Ⅲ, Ⅳ, Ⅴ, Ⅵ, Ⅶ, Ⅷ, Ⅸ) 각각의 사용된 예비 블록의 수는 서로 동일할 수 있다. 예시적으로, 제 1 구간(Ⅰ)은 초기 배드 블록을 처리하기 위한 구간일 수 있다. 메모리 컨트롤러(120)는 초기 배드 블록을 처리하기 위한 구간을 제외한 나머지 사용된 예비 블록의 수를 복수의 구간들로 분할하여 관리할 수 있다.
제 1 라인(L01)과 같이 사용된 예비 블록의 수가 증가할수록, 복수의 구간들(Ⅰ, Ⅱ, Ⅲ, Ⅳ, Ⅴ, Ⅵ, Ⅶ, Ⅷ, Ⅸ)에 대한 소거 횟수는 작아질 것이다. 다시 말해서, 사용된 예비 블록의 수가 증가할수록, 소거 횟수 및 사용된 예비 블록의 수 사이의 비율은 증가할 것이다. 즉, 도 12 및 도 13을 참조하여 설명된 동작 방법을 기반으로 메모리 컨트롤러(120)가 동작하더라도 메모리 컨트롤러(120)는 도 8 내지 도 11을 참조하여 설명된 동작 방법과 동일한 효과를 가질 수 있다.
예를 들어, 복수의 구간들(Ⅰ, Ⅱ, Ⅲ, Ⅳ, Ⅴ, Ⅵ, Ⅶ, Ⅷ, Ⅸ) 각각은 10%의 예비 블록 사용량들로 분할될 수 있다. 다시 말해서, 복수의 구간들(Ⅰ, Ⅱ, Ⅲ, Ⅳ, Ⅴ, Ⅵ, Ⅶ, Ⅷ, Ⅸ) 각각에서 사용되는 예비 블록은 전체 예비 블록의 10%일 것이다. 예시적으로, 초기 배드 블록을 처리하기 위한 예비 블록이 전체 예비 블록의 10%라 가정하면, 제 9 값(RB9)은 전체 예비 블록의 개수를 가리킬 것이다. 즉, 예비 블록 사용량이 제 9 값(RB9)에 도달할 경우, 불휘발성 메모리 장치(130)가 수명에 도달한 것으로 판단될 수 있다.
만약, 예비 블록의 사용량이 90%이고, 제 8 구간(Ⅷ)에서의 소거 횟수(즉, EC8-EC7)가 1K회인 경우, 메모리 컨트롤러(120)는 불휘발성 메모리 장치(130)의 남은 소거 횟수가 1K회임을 알 수 있다. 다시 말해서, 제 8 구간(Ⅷ) 동안 사용된 예비 블록의 사용량은 10%일 것이다. 메모리 컨트롤러(120)는 제 8 구간(Ⅷ)에서의 예비 블록 사용량에 대한 소거 횟수의 비율(즉, 1000/10%) 및 남은 예비 블록의 사용량을 기반으로 불휘발성 메모리 장치(130)의 남은 소거 횟수가 1K회임을 알 수 있다.
예시적으로, 상술된 수치들은 본 발명의 기술적 사상을 용이하게 설명하기 위하여 참조된 수치들이며, 본 발명의 기술적 사상이 이에 한정되지 않음은 잘 이해될 것이다.
도 14는 본 발명의 또 다른 실시 예에 따른 메모리 컨트롤러의 동작을 보여주는 순서도이다. 도 1 및 도 14를 참조하면, S310 단계에서, 메모리 컨트롤러(120)는 이전에 연산된 비율들을 기반으로 현재 비율을 예측할 수 있다. 예를 들어, 메모리 컨트롤러(120)는 도 8 내지 도 13을 참조하여 설명된 방법들을 기반으로 각 구간들에 대한 비율을 연산할 수 있다. 메모리 컨트롤러는 각 구간들에 대한 비율을 기반으로 현재 비율을 예측할 수 있다.
S320 단계에서, 메모리 컨트롤러(120)는 예측된 현재 비율을 기반으로 예상 수명을 예측할 수 있다. S330 단계 및 S340 단계의 동작은 도 8의 S140 단계 및 S150 단계와 동일하므로, 이에 대한 상세한 설명은 생략된다.
도 15는 도 14에 도시된 메모리 컨트롤러의 동작을 상세하게 설명하기 위한 그래프이다. 도 14에 도시된 그래프의 X축은 소거 횟수를 가리키고, Y축은 사용된 예비 블록의 수를 가리킨다. 도면의 간결성을 위하여, 제 6 및 제 7 구간(ⅵ, ⅶ)이 도 15에 도시된다. 간결한 설명을 위하여, 수명 예측을 위한 기준 구간은 소거 횟수인 것으로(즉, 도 8의 동작 방법) 가정한다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니다.
도 15를 참조하면, 불휘발성 메모리 장치(130)가 제 5 소거 횟수(EC5)만큼 사용된 경우 제 5 값(RB5)의 예비 블록들이 사용되고, 제 6 소거 횟수(EC6)만큼 사용된 경우 제 6 값(RB6)의 예비 블록들이 사용되고, 제 7 소거 횟수(EC7)만큼 사용된 경우 제 7 값(RB7)의 예비 블록들이 사용될 것이다. 이 때, 제 6 구간(ⅵ)에서 사용된 예비 블록의 수는 RB6-RB5일 것이다. 메모리 컨트롤러(120)는 제 6 구간(ⅵ)의 소거 횟수 및 사용된 예비 블록의 수(즉, RB6-RB5)를 기반으로 제 6 구간(ⅵ)의 비율을 연산할 수 있다. 이 때, 연산된 비율은 제 1 기울기(R1)와 같을 수 있다. 제 1 기울기(R1)는 (RB6-RB5)/(EC6-EC5)의 값을 가질 것이다. 예시적으로, 연산된 비율은 별도의 저장회로(예를 들어, SRAM(123), 퓨즈, 레지스터 등)에 저장될 수 있다.
이 후, 메모리 컨트롤러(120)는 제 7 구간(ⅶ)에서도 상술된 바와 동일하게 비율을 연산할 수 있다. 제 7 구간(ⅶ)의 비율은 제 2 기울기(R2)와 같을 수 있다. 제 2 기울기(R2)는 (RB7-RB6)/(EC7-EC6)와 같을 수 있다. 제 2 기울기(R2)는 제 1 기울기(R1)보다 클 것이다. 연산된 비율은 별도의 저장회로(예를 들어, SRAM(123), 퓨즈, 레지스터 등)에 저장될 수 있다.
이 후, 불휘발성 메모리 장치(130)는 소거 횟수(ECp)만큼 사용될 수 있다. 이 때, 메모리 컨트롤러(120)는 이전에 연산된 비율들(즉, 제 6 및 7 구간들(ⅵ, ⅶ)의 비율들)을 기반으로 현재 비율을 예측할 수 있다. 예를 들어, FTL(121)의 웨어 레벨링 동작에 의해 소거 횟수가 증가할수록 배드 블록 발생률이 높아지고, 이에 따라 예비 블록 사용량이 증가할 것이다. 즉, 도 15에 도시된 바와 같이 소거 횟수가 증가할수록 연산된 비율은 증가할 것이다. 따라서, 메모리 컨트롤러(120)는 이전에 연산된 비율들의 증가량에 따라 현재의 비율을 예측할 수 있을 것이다. 예시적으로, 예측된 현재의 비율은 제 3 기울기(R3)와 같을 수 있다. 제 3 기울기(R3)는 제 2 기울기(R2)보다 클 것이다.
예를 들어, 제 6 구간(ⅵ)에서의 소거 횟수는 1K회이고, 제 6 구간(ⅵ)에서의 사용된 예비 블록의 사용량은 전체 예비 블록의 15%이고, 제 7 구간(ⅶ)에서의 소거 횟수는 1K회이고, 제 7 구간(ⅶ)에서의 사용된 예비 블록의 사용량은 전체 예비 블록의 18%일 수 있다. 이 경우, 제 7 구간(ⅶ)에서의 예비 블록의 사용량은 제 6 구간(ⅵ)에서의 예비 블록의 사용량보다 많을 것이다. 즉, 소거 횟수가 증가할수록 사용되는 예비 블록이 증가할 것이다. 메모리 컨트롤러(120)는 상술된 제 6 및 제 7 구간들(ⅵ, ⅶ)의 예비 블록 사용량을 기반으로 제 7 구간(ⅶ) 이후의 예비 블록의 사용량은 1K의 소거 횟수당 전체 예비 블록의 21%임을 예측할 수 있다.
예시적으로, 메모리 컨트롤러(120)는 남은 예비 블록의 개수 및 예측된 비율(즉, 1K의 소거 횟수당 전체 예비 블록의 21%)을 기반으로 불휘발성 메모리 장치(130)의 남은 소거 횟수를 검출할 수 있다. 예시적으로, 메모리 컨트롤러(130)는 검출된 남은 소거 횟수가 일정 값 이하인 경우, 외부 장치로 수명 종료 경고 신호(EOL)를 전송할 수 있다.
예시적으로, 상술된 수치들은 본 발명의 기술적 사상을 용이하게 설명하기 위하여 참조된 수치들이며, 본 발명의 범위가 이에 한정되지 않음은 잘 이해될 것이다.
도 16은 도 15에 도시된 메모리 컨트롤러의 동작을 설명하기 위한 도면이다. 도 16을 참조하면, 수명 관리부(121)는 각 구간별 비율 정보를 관리할 수 있다. 예를 들어, 수명 관리부(121)는 불휘발성 메모리 장치(130)의 소거 횟수를 복수의 구간으로 분할할 수 있다. 수명 관리부(121)는 각 구간들에서 연산된 비율 정보를 포함할 수 있다. 제 1 내지 제 n-1 구간들(1st period ~ n-1th period)에서 연산된 비율들은 각각 제 1 내지 제 n-1 기울기들(R1~Rn-1)와 같을 수 있다. 이 때, 제 n-1 기울기(Rn-1)는 가장 큰 값이고, 제 1 기울기(R1)는 가장 작은 값일 수 있다.
불휘발성 메모리 장치(130)는 제 n 구간(nth period)에서 동작할 수 있다. 이 때, 수명 관리부(121)는 제 1 내지 제 n-1 구간들(1st period~n-1th period)에서 연산된 비율들을 기반으로 현재 비율을 예측할 수 있다. 예시적으로, 예측된 현재 비율은 기울기(Rp)와 같을 수 있다. 기울기(Rp)는 제 n-1 기울기(Rn-1)보다 소정의 값만큼 클 것이다. 수명 관리부(121)는 예측된 현재 비율을 기반으로 불휘발성 메모리 장치(130)의 예상 수명을 예측할 수 있다.
예를 들어, 불휘발성 메모리 장치(130)는 제 n 구간(nth period)에서 동작할 수 있다. 제 1 구간(1st period)에서의 기울기(R1)는 1K의 소거 횟수당 전체 예비블록의 10%일 수 있다. 제 2 구간(2nd period)에서의 기울기(R2)는 1K의 소거 횟수당 전체 예비블록의 12%일 수 있다. 제 3 구간(1st period)에서의 기울기(R3)는 1K의 소거 횟수당 전체 예비블록의 14%일 수 있다. 제 n-1 구간(n-1th period)에서의 기울기(Rn-1)는 1K의 소거 횟수당 전체 예비블록의 20%일 수 있다. 메모리 컨트롤러(120)는 각 구간들에서 사용되는 예비 블록의 증가량을 기반으로 제 n 구간(nth period)에서의 기울기(R3)는 1K의 소거 횟수당 전체 예비 블록의 22%임을 예측할 것이다.
예시적으로, 상술된 수치들은 본 발명의 기술적 사상을 용이하게 설명하기 위하여 참조된 수치들이며, 본 발명의 범위가 이에 한정되지 않음은 잘 이해될 것이다.
예시적으로, 수명 관리부(121)에 의해 관리되는 각 구간 별 비율 정보는 별도의 저장 회로(예를 들어, SRAM(123), 퓨즈, 레지스터)에 저장될 수 있다. 또한, 수명 관리부(121)에 의해 관리되는 각 구간 별 비율 정보는 불휘발성 메모리 장치(130)로 플러쉬될 수 있다.
도 17은 본 발명의 실시 예에 따른 불휘발성 메모리 장치가 적용된 솔리드 스테이트 드라이브(SSD) 시스템을 보여주는 블록도이다. 도 17을 참조하면, SSD 시스템(1000)은 호스트(1100) 및 SSD(1200)를 포함한다.
호스트(1100)는 SSD(1200)에 데이터를 쓰거나, SSD(1200)에 저장된 데이터를 읽는다. 호스트(1100)는 커맨드, 어드레스, 상태 정보와 같은 신호(SGL)를 호스트 인터페이스(1101)를 통해 SSD(1200)와 주고 받을 수 있다. 예시적으로, 호스트 인터페이스(1101)는 USB (Universal Serial Bus), MMC (multimedia card), PCI (peripheral component interconnection), PCI-E (PCI-express), ATA (Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI (small computer small interface), ESDI (enhanced small disk interface), IDE (Integrated Drive Electronics), MIPI(Mobile Industry Processor Interface) 등과 같은 다양한 인터페이스들을 포함할 수 있다.
SSD(1200)는 호스트 인터페이스(1101)를 통해 호스트(1100)와 신호(SGL)를 주고 받으며, 전원 커넥터(power connector, 1202)를 통해 전원을 입력받는다. SSD(1200)는 복수의 불휘발성 메모리(1221~122n), SSD 컨트롤러(1210), 그리고 보조 전원 장치(1230)를 포함할 수 있다. 여기에서, 복수의 불휘발성 메모리 장치들(1221~122n)은 낸드 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등으로 구현될 수 있다.
복수의 불휘발성 메모리 장치들(1221~122n)은 SSD(1200)의 저장 매체로서 사용된다. 복수의 불휘발성 메모리(1221~122n)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(1210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 불휘발성 메모리 장치가 연결될 수 있다. 하나의 채널에 연결되는 불휘발성 메모리는 동일한 데이터 버스에 연결될 수 있다.
SSD 컨트롤러(1210)는 호스트 인터페이스(1201)를 통해 호스트(1100)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. SSD 컨트롤러(1210)는 호스트(1100)의 커맨드에 따라 해당 불휘발성 메모리 장치에 데이터를 쓰거나 해당 불휘발성 메모리 장치로부터 데이터를 읽어낸다.
보조 전원 장치(1230)는 전원 커넥터(1202)를 통해 호스트(1100)와 연결된다. 보조 전원 장치(1230)는 호스트(1100)로부터 전원(PWR)을 입력받고, 충전할 수 있다. 한편, 보조 전원 장치(1230)는 SSD(1200) 내에 위치할 수도 있고, SSD(1200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(1230)는 메인 보드에 위치하며, SSD(1200)에 보조 전원을 제공할 수도 있다.
예시적으로, SSD 컨트롤러(1210)는 도 1 내지 도 16을 참조하여 설명된 동작 방법을 기반으로 불휘발성 메모리 장치들(1221~122n) 또는 SSD(1200)의 수명을 예측할 수 있다.
상술된 본 발명의 실시 예들에 따르면, 본 발명에 따른 메모리 컨트롤러는 미리 정해진 동작 카운트(예를 들어, 소거 카운트, 프로그램 카운트, 시간 카운트 등)동안 사용된 예비 블록의 수를 검출하고, 이를 기반으로 불휘발성 메모리 시스템의 수명을 예측할 수 있다. 따라서, 종래 기술보다 정확하게 불휘발성 메모리 시스템의 수명을 예측함으로써, 불휘발성 메모리 시스템의 고장 예측 및 고장 회피 효율이 증가하게 되므로 향상된 성능을 갖는 불휘발성 메모리 시스템의 동작 방법이 제공된다.
도 18은 본 발명에 따른 메모리 시스템이 적용된 사용자 시스템을 보여주는 블록도이다. 도 18을 참조하면, 사용자 시스템(2000)은 응용 프로세서(2100), 메모리 모듈(2200), 네트워크 모듈(2300), 스토리지 모듈(2400), 및 사용자 인터페이스(2500)를 포함한다. 예시적으로, 사용자 시스템(2000)은 UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP (portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), DMB (Digital Multimedia Broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player) 등과 같은 컴퓨팅 시스템들 중 어느 하나로 제공될 수 있다.
응용 프로세서(2100)는 사용자 시스템(2000)에 포함된 구성 요소들, OS(Operating system) 등을 구동시킬 수 있다. 예시적으로, 응용 프로세서(2100)는 사용자 시스템(2000)에 포함된 구성 요소들을 제어하는 컨트롤러들, 그래픽 엔진, 및 다양한 인터페이스들을 포함할 수 있다.
메모리 모듈(2200)은 사용자 시스템(2000)의 주 메모리, 동작 메모리, 버퍼 메모리, 또는 캐시 메모리로 동작할 수 있다. 메모리 모듈(2200)은 DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, LPDDR DRAM, LPDDR2 DRAM, LPDDR3 DRAM 등과 같은 휘발성 랜덤 액세스 메모리 또는 PRAM, ReRAM, MRAM, FRAM 등과 같은 불휘발성 랜덤 액세스 메모리를 포함할 수 있다.
네트워크 모듈(2300)은 외부 장치들과 통신을 수행할 수 있다. 예시적으로, 네트워크 모듈(2300)은 CDMA(Code Division Multiple Access), GSM(Global System for Mobile communication), WCDMA(wideband CDMA), CDMA-2000, TDMA(Time Dvision Multiple Access), LTE(Long Term Evolution), Wimax, WLAN, UWB, 블루투스, WI-DI 등과 같은 무선 통신을 지원할 수 있다.
스토리지 모듈(2400)은 데이터를 저장할 수 있다. 예를 들어, 스토리지 모듈(2400)은 외부로부터 수신한 데이터를 저장할 수 있다. 또는 스토리지 모듈(2400)은 스토리지 모듈(2400)에 저장된 데이터를 응용 프로세서(3400)로 전송할 수 있다. 예시적으로, 스토리지 모듈(2400)은 PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), NAND flash, NOR flash, 3차원 구조의 NAND 플래시 등과 같은 반도체 메모리 소자로 구현될 수 있다.
예시적으로, 스토리지 모듈(2400)은 도 1 내지 도 16을 참조하여 설명된 불휘발성 메모리 시스템일 수 있다. 스토리지 모듈(2400)은 도 1 내지 도 16을 참조하여 설명된 메모리 컨트롤러를 포함할 수 있다. 스토리지 모듈(2400)은 도 1 내지 도 16을 참조하여 설명된 동작 방법을 기반으로 수명을 예측할 수 있다.
사용자 인터페이스(2500)는 사용자 시스템(2100)에 데이터 또는 명령어를 입력하거나 또는 외부 장치로 데이터를 출력하는 인터페이스들을 포함할 수 있다. 예시적으로, 사용자 인터페이스(2500)는 카메라, 터치 스크린, 동작 인식 모듈, 마이크 등과 같은 입력 장치들 또는 디스플레이, 스피커, 터치 스크린 등과 같인 출력 장치들을 포함할 수 있다.
도 19는 본 발명에 따른 불휘발성 메모리 시스템이 적용된 서버 시스템을 예시적으로 보여주는 블록도이다. 도 19를 참조하면, 서버 시스템(3000)은 호스트(3100) 및 복수의 불휘발성 메모리 시스템들(3210~32n0)을 포함한다. 서버 시스템(3000)은 서버 시스템(3000)은 무선 또는 유선 통신망을 통해 외부 사용자 시스템과 연결되고, 외부 사용자 시스템에 서비스를 제공할 수 있다. 서버 시스템(3000)은 프린터 제어 또는 파일 관리 등과 같이 통신망 전체를 감시하거나 또는 제어할 수 있다. 또는 서버 시스템(3000)은 무선 또는 유선 통신망을 통해 외부 서버 시스템과 연결되고, 데이터 ,프로그램, 파일과 같은 소프트웨어 자원 또는 모뎀, 팩스, 프린터, 기타 장비 등과 같은 하드웨어 자원을 공유할 수 있다.
호스트(3100)는 복수의 불휘발성 메모리 시스템들(3210~32n0)을 제어할 수 있다. 예를 들어, 호스트(3100)는 복수의 채널들(CH1~CHn)을 통해 복수의 불휘발성 메모리 시스템들(3210~32n0)과 연결되고, 복수의 불휘발성 메모리 시스템들(3210~32n0)에 데이터를 기입하거나, 복수의 불휘발성 메모리 시스템들(3210~32n0)에 저장된 데이터를 읽을 수 있다.
예시적으로, 호스트(3100)는 불휘발성 메모리 시스템들(3210~32n0)에 대한 백업 동작을 수행할 수 있다. 예를 들어, 호스트(3100)는 제 1 불휘발성 메모리 시스템(3210)에 저장된 데이터를 주기적으로 제 2 불휘발성 메모리 시스템(3220)에 백업할 수 있다.
불휘발성 메모리 시스템들(3210~32n0)은 RAID(Redundant Araay of Inexpensive Disk)로 구성될 수 있다. 예시적으로, 불휘발성 메모리 시스템들(3210~32n0)은 도 1 내지 도 16을 참조하여 설명된 동작 방법을 기반으로 동작할 수 있다. 예를 들어, 불휘발성 메모리 시스템들(3210~32n0) 각각은 남은 예상 수명을 예측하고, 예측된 남은 예상 수명을 기반으로 수명 종료 경고 신호를 복수의 채널들(CH1~CHn)을 통해 호스트(3100)로 전송할 수 있다. 호스트(3100)는 수명 종료 경고 신호(3100)에 응답하여 백업 동작을 수행할 수 있다.
상술된 본 발명의 실시 예들에 따르면, 메모리 컨트롤러는 미리 정해진 구간 동안 사용된 예비 블록의 수 또는 소거 횟수를 검출하고, 이를 기반으로 소거 횟수 및 사용된 예비 블록 수의 비율을 연산할 수 있다. 메모리 컨트롤러는 연산된 비율을 기반으로 불휘발성 메모리 시스템의 수명을 예측함으로써, 종래 기술과 비교하여 보다 정확한 예상 수명을 예측할 수 있다.
비록 도면에 도시되지는 않았으나, 메모리 컨트롤러는 상술된 본 발명의 실시 예에 따른 수명 예측 방법을 수행하는 별도의 상태 검사 모듈을 포함할 수 있다. 메모리 컨트롤러에 포함된 상태 검사 모듈은 상술된 동작 방법들을 기반으로 불휘발성 메모리 장치의 수명을 예측할 수 있다.
예시적으로, 상술된 본 발명의 실시 예들은 불휘발성 메모리 시스템의 SMART(Self-Monitoring, Analysis and Reporting Technology) 관련 기능에 포함될 수 있다. 예를 들어, 본 발명에 따른 불휘발성 메모리 시스템은 표준으로 정의된 SMART(Self-Monitoring, Analysis and Reporting Technology) 관련 기능을 지원할 수 있다. 수명 종료 경고 신호는 SMART(Self-Monitoring, Analysis and Reporting Technology) 커맨드 중 어느 하나에 포함될 수 있다.
예시적으로, 상술된 실시 예들에서 불휘발성 메모리 시스템은 소거 횟수를 기반으로 설명되었으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 본 발명에 따른 불휘발성 메모리 시스템의 수명은 프로그램 횟수, I/O 횟수, 사용 시간 등으로 확장되어 적용될 수 있다. 또한, 상술된 실시 예들에서 사용된 예비 블록의 수는 리맵 횟수 등으로 확장되어 적용될 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러가지 변형이 가능하다. 그러므로, 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100 : 사용자 시스템
101 : 호스트
110 : 불휘발성 메모리 시스템
120 : 메모리 컨트롤러
121 : 수명 관리부
122 : FTL
130 : 불휘발성 메모리 장치
EC1~EC9 : 소거 횟수들
LT : 수명
LT_e : 예상 수명
LT_r : 예측된 남은 예상 수명

Claims (10)

  1. 복수의 유저 블록들 및 복수의 예비 블록들을 포함하는 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법에 있어서,
    미리 정해진 구간 동안의 상기 복수의 예비 블록들 중 사용된 예비 블록의 개수 및 상기 미리 정해진 구간 동안의 동작 카운트의 비율을 검출하는 단계; 및
    상기 검출된 비율을 기반으로 외부 장치로 수명 종료 경고 신호를 전송하는 단계를 포함하고,
    상기 메모리 컨트롤러는 상기 복수의 유저 블록들 중 적어도 하나의 블록이 배드 블록이 된 경우 상기 배드 블록을 상기 복수의 예비 블록들 중 어느 하나로 교체하고, 상기 사용된 예비 블록은 상기 복수의 유저 블록들 중 적어도 하나와 교체된 예비 블록을 가리키고,
    상기 동작 카운트는 상기 불휘발성 메모리 장치의 소거 횟수를 가리키는 소거 카운트, 상기 불휘발성 메모리 장치의 프로그램 횟수를 가리키는 프로그램 카운트, 및 사용 시간을 가리키는 시간 카운트 중 적어도 어느 하나인 동작 방법.
  2. 제 1 항에 있어서,
    상기 미리 정해진 구간은 상기 동작 카운트의 미리 정해진 카운트 횟수를 가리키고,
    상기 비율은 상기 동작 카운트에 대한 상기 사용된 예비 블록의 개수의 비율인 동작 방법.
  3. 제 1 항에 있어서,
    상기 미리 정해진 구간은 상기 복수의 예비 블록들 중 미리 정해진 개수의 예비 블록들이 사용되는 구간을 가리키고,
    상기 비율은 상기 사용된 예비 블록의 개수에 대한 상기 동작 카운트의 비율을 가리키는 동작 방법.
  4. 제 1 항에 있어서,
    상기 검출된 비율을 기반으로 외부 장치로 상기 수명 종료 경고 신호를 전송하는 단계는,
    상기 검출된 비율을 기반으로 남은 예상 수명을 예측하는 단계; 및
    상기 예측된 남은 예상 수명이 기준 수명보다 작은 경우 상기 수명 종료 경고 신호를 상기 외부 장치로 전송하는 단계를 포함하는 동작 방법.
  5. 제 4 항에 있어서,
    상기 검출된 비율을 기반으로 남은 예상 수명을 예측하는 단계는,
    상기 복수의 예비 블록들 중 사용되지 않은 예비 블록들의 수 및 상기 검출된 비율을 기반으로 상기 남은 예상 수명을 예측하는 단계를 포함하는 동작 방법.
  6. 제 1 항에 있어서,
    상기 검출된 비율을 기반으로 외부 장치로 상기 수명 종료 경고 신호를 전송하는 단계는,
    상기 검출된 비율이 소정의 값 이상인 경우 상기 수명 종료 경고 신호를 상기 외부 장치로 전송하는 단계를 포함하는 동작 방법.
  7. 복수의 유저 블록들 및 복수의 예비 블록들을 포함하는 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법에 있어서,
    복수의 구간들 각각에서 상기 복수의 예비 블록들 중 사용된 예비 블록의 개수 및 상기 불휘발성 메모리 장치의 동작 카운트의 비율을 검출하는 단계;
    상기 검출된 비율들을 저장하는 단계;
    상기 저장된 비율들을 기반으로 현재 비율을 예측하는 단계; 및
    상기 예측된 현재 비율을 기반으로 외부 장치로 수명 종료 경고 신호를 전송하는 단계를 포함하고,
    상기 메모리 컨트롤러는 상기 복수의 유저 블록들 중 적어도 하나의 블록이 배드 블록이 된 경우 상기 배드 블록을 상기 복수의 예비 블록들 중 어느 하나로 교체하고, 상기 사용된 예비 블록은 상기 복수의 유저 블록들 중 적어도 하나와 대체된 예비 블록을 가리키고,
    상기 동작 카운트는 상기 불휘발성 메모리 장치의 소거 횟수, 프로그램 횟수, 및 사용 시간 중 적어도 어느 하나인 동작 방법.
  8. 제 7 항에 있어서,
    상기 복수의 구간들 각각은 상기 불휘발성 메모리 장치의 동작 카운트에 의해 정의되는 구간들인 동작 방법.
  9. 제 7 항에 있어서,
    상기 복수의 구간들 각각은 상기 사용된 예비 블록의 개수에 의해 정의되는 구간들인 동작 방법.
  10. 제 7 항에 있어서,
    상기 저장된 비율들을 기반으로 현재 비율을 예측하는 단계는,
    상기 저장된 비율들의 증가량을 기반으로 상기 현재 비율을 예측하는 단계를 포함하는 동작 방법.

KR1020140060418A 2014-05-20 2014-05-20 메모리 컨트롤러의 동작 방법 KR102291507B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140060418A KR102291507B1 (ko) 2014-05-20 2014-05-20 메모리 컨트롤러의 동작 방법
US14/711,605 US10108354B2 (en) 2014-05-20 2015-05-13 Memory controller operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140060418A KR102291507B1 (ko) 2014-05-20 2014-05-20 메모리 컨트롤러의 동작 방법

Publications (2)

Publication Number Publication Date
KR20150133913A true KR20150133913A (ko) 2015-12-01
KR102291507B1 KR102291507B1 (ko) 2021-08-20

Family

ID=54556109

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140060418A KR102291507B1 (ko) 2014-05-20 2014-05-20 메모리 컨트롤러의 동작 방법

Country Status (2)

Country Link
US (1) US10108354B2 (ko)
KR (1) KR102291507B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11275678B2 (en) 2018-10-31 2022-03-15 SK Hynix Inc. Data storage device with spare blocks for replacing bad block in super block and operating method thereof
US11481272B2 (en) 2020-03-09 2022-10-25 SK Hynix Inc. Memory controller and method of operating the same
US11914891B2 (en) 2021-10-07 2024-02-27 SK Hynix Inc. Storage device and operating method thereof

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11112990B1 (en) 2016-04-27 2021-09-07 Pure Storage, Inc. Managing storage device evacuation
US11809727B1 (en) * 2016-04-27 2023-11-07 Pure Storage, Inc. Predicting failures in a storage system that includes a plurality of storage devices
KR20180051192A (ko) * 2016-11-08 2018-05-16 주식회사 바른전자 색상이 변하는 메모리 장치
KR102645572B1 (ko) * 2016-11-29 2024-03-11 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
KR20180094391A (ko) * 2017-02-15 2018-08-23 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20190000662A (ko) * 2017-06-23 2019-01-03 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10649661B2 (en) * 2017-06-26 2020-05-12 Western Digital Technologies, Inc. Dynamically resizing logical storage blocks
CN108089994B (zh) * 2018-01-04 2021-06-01 威盛电子股份有限公司 存储装置以及数据保存方法
KR102559549B1 (ko) * 2018-09-12 2023-07-26 에스케이하이닉스 주식회사 메모리 시스템에서의 블록 상태를 관리하는 방법 및 장치
JP7248495B2 (ja) * 2019-05-15 2023-03-29 ファナック株式会社 数値制御測装置、数値制御システム、及びプログラム
KR20210119070A (ko) * 2020-03-24 2021-10-05 에스케이하이닉스 주식회사 메모리 장치에서 연속으로 수행되는 다수의 커맨드 동작에 사용되는 파워값을 최소화하기 위해 수행시점 차이를 정확하게 조절할 수 있는 메모리 시스템 및 메모리 시스템의 동작방법
US20210397363A1 (en) * 2020-06-17 2021-12-23 Micron Technology, Inc. Operational monitoring for memory devices
KR20220089868A (ko) * 2020-12-22 2022-06-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
CN112542203A (zh) * 2020-12-31 2021-03-23 深圳市芯天下技术有限公司 非易失性存储器的坏块修复方法、装置、存储介质和终端
US20230063498A1 (en) * 2021-08-27 2023-03-02 Micron Technology, Inc. Monitoring memory device health according to data storage metrics
KR20230037959A (ko) * 2021-09-10 2023-03-17 삼성전자주식회사 반도체 메모리 장치 및 메모리 시스템

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050067203A (ko) * 2002-10-28 2005-06-30 샌디스크 코포레이션 비휘발성 저장 시스템의 평균 소거 카운트 유지 방법 및장치
US20070266200A1 (en) * 2006-05-15 2007-11-15 Gorobets Sergey A Methods of End of Life Calculation for Non-Volatile Memories
KR20100039181A (ko) * 2008-10-07 2010-04-15 삼성전자주식회사 예비 영역을 가지는 반도체 메모리 장치
KR20130135621A (ko) * 2012-06-01 2013-12-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 리페어 방법
KR20140039074A (ko) * 2011-08-19 2014-03-31 가부시끼가이샤 도시바 정보 프로세싱 장치, 정보 프로세싱 장치를 제어하는 방법, 제어 도구를 저장하는 비일시적 기록 매체, 호스트 디바이스, 성능 평가 도구를 저장하는 비일시적 기록 매체, 및 외부 메모리 디바이스를 위한 성능 평가 방법
KR20140134096A (ko) * 2013-05-13 2014-11-21 삼성전자주식회사 메모리 시스템 및 그것의 배드 블록 관리 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3557511B2 (ja) 1997-08-27 2004-08-25 沖電気工業株式会社 半導体ディスク装置の寿命算出方法
JP2003085054A (ja) 2001-06-27 2003-03-20 Mitsubishi Electric Corp フラッシュメモリを搭載した半導体記憶装置における装置寿命警告発生システムとその方法
KR101155663B1 (ko) 2005-06-30 2012-06-13 삼성전자주식회사 복합영상기기 및 그 복사 방법
US7512847B2 (en) 2006-02-10 2009-03-31 Sandisk Il Ltd. Method for estimating and reporting the life expectancy of flash-disk memory
US7596656B2 (en) 2006-09-28 2009-09-29 Sandisk Corporation Memory cards with end of life recovery and resizing
KR100837826B1 (ko) 2006-10-31 2008-06-13 주식회사 퍼스터 시스템에 장착된 낸드 플래시 소자의 수명 측정 방법
KR20090014823A (ko) * 2007-08-07 2009-02-11 삼성전자주식회사 배드 블록을 리맵핑하는 플래시 메모리 장치 및 그것의배드 블록의 리맵핑 방법
TWM332248U (en) 2007-11-16 2008-05-11 Carry Technology Co Ltd Display apparatus for phonic recording and playing electronically digital picture
US7903486B2 (en) 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
JP5319985B2 (ja) 2008-08-22 2013-10-16 株式会社バッファローメモリ ストレージ機器の使用限界予想方法又はその使用限界予想装置若しくはその使用限界予想時間解析用プログラム
US8327066B2 (en) * 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
JP2010165364A (ja) 2010-02-18 2010-07-29 Sony Corp 記録装置および寿命情報算出方法
GB2482329B (en) * 2010-07-30 2018-02-14 Advanced Risc Mach Ltd Distribution of an incrementing count value
KR101190742B1 (ko) 2010-12-06 2012-10-12 에스케이하이닉스 주식회사 메모리의 콘트롤러 및 이를 포함하는 스토리지 시스템, 메모리의 수명 측정 방법
JP2013149112A (ja) 2012-01-20 2013-08-01 Hitachi Ltd 記憶媒体の管理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050067203A (ko) * 2002-10-28 2005-06-30 샌디스크 코포레이션 비휘발성 저장 시스템의 평균 소거 카운트 유지 방법 및장치
US20070266200A1 (en) * 2006-05-15 2007-11-15 Gorobets Sergey A Methods of End of Life Calculation for Non-Volatile Memories
US7523013B2 (en) * 2006-05-15 2009-04-21 Sandisk Corporation Methods of end of life calculation for non-volatile memories
KR20100039181A (ko) * 2008-10-07 2010-04-15 삼성전자주식회사 예비 영역을 가지는 반도체 메모리 장치
KR20140039074A (ko) * 2011-08-19 2014-03-31 가부시끼가이샤 도시바 정보 프로세싱 장치, 정보 프로세싱 장치를 제어하는 방법, 제어 도구를 저장하는 비일시적 기록 매체, 호스트 디바이스, 성능 평가 도구를 저장하는 비일시적 기록 매체, 및 외부 메모리 디바이스를 위한 성능 평가 방법
KR20130135621A (ko) * 2012-06-01 2013-12-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 리페어 방법
KR20140134096A (ko) * 2013-05-13 2014-11-21 삼성전자주식회사 메모리 시스템 및 그것의 배드 블록 관리 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11275678B2 (en) 2018-10-31 2022-03-15 SK Hynix Inc. Data storage device with spare blocks for replacing bad block in super block and operating method thereof
US11481272B2 (en) 2020-03-09 2022-10-25 SK Hynix Inc. Memory controller and method of operating the same
US11914891B2 (en) 2021-10-07 2024-02-27 SK Hynix Inc. Storage device and operating method thereof

Also Published As

Publication number Publication date
US20150339070A1 (en) 2015-11-26
KR102291507B1 (ko) 2021-08-20
US10108354B2 (en) 2018-10-23

Similar Documents

Publication Publication Date Title
KR102291507B1 (ko) 메모리 컨트롤러의 동작 방법
CN112115069B (zh) 适于主机写入活动的垃圾收集
CN112115070B (zh) 适应存储器装置预期寿命的垃圾数据收集
EP3709175A1 (en) Storage device and computing device including storage device
US10289317B2 (en) Memory apparatus and methods thereof for write amplification aware wear leveling
KR102456104B1 (ko) 데이터 신뢰성에 따라 동작 조건을 변경하는 저장 장치의 동작 방법
KR20160075918A (ko) 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법
US10642525B2 (en) Multiple-stage data lifetime management for storage devices
US12001331B2 (en) Data storage device, operation method thereof, and storage system including the same
US20200042238A1 (en) Data storage device, method of operating the same, and storage system having the same
US20230013322A1 (en) Solid state drive management method and solid state drive
KR102393323B1 (ko) 재사용 주기를 이용하여 사용자 데이터를 쓰기 위한 워드라인을 결정하는 저장 장치의 동작 방법
KR20180003692A (ko) 메모리 시스템 및 그의 동작방법
US11693767B2 (en) Performing a media management operation based on changing a write mode of a data block in a cache
KR20230126036A (ko) 스토리지 컨트롤러의 동작방법 및 그 스토리지 시스템
US20200057581A1 (en) Memory system and operating method thereof
US20130262942A1 (en) Flash memory lifetime evaluation method
CN112068782B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
US20210042236A1 (en) Wear leveling across block pools
US20220171562A1 (en) Garbage collection in a memory component using an adjusted parameter
KR102333746B1 (ko) 재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법

Legal Events

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