KR20210138996A - 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 - Google Patents

메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 Download PDF

Info

Publication number
KR20210138996A
KR20210138996A KR1020200057190A KR20200057190A KR20210138996A KR 20210138996 A KR20210138996 A KR 20210138996A KR 1020200057190 A KR1020200057190 A KR 1020200057190A KR 20200057190 A KR20200057190 A KR 20200057190A KR 20210138996 A KR20210138996 A KR 20210138996A
Authority
KR
South Korea
Prior art keywords
memory
reclaim
memory area
area
storage device
Prior art date
Application number
KR1020200057190A
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 KR1020200057190A priority Critical patent/KR20210138996A/ko
Priority to EP21166940.3A priority patent/EP3910464A1/en
Priority to US17/308,165 priority patent/US11977735B2/en
Priority to CN202110500045.5A priority patent/CN113674775A/zh
Publication of KR20210138996A publication Critical patent/KR20210138996A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/106Data output latches
    • 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/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1087Data input latches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • 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
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

본 개시의 기술적 사상에 따른 스토리지의 동작 방법이 개시된다. 스토리지의 동작 방법은, 소스 메모리 영역들에서 목적지 메모리 영역들로 데이터를 이동시키는 리클레임 동작을 수행하도록 구성된 스토리지 장치의 동작 방법으로서, 리클레임 이벤트가 발생된 제1 메모리 영역을 감지하는 단계, 제1 메모리 영역을 포함하는 소스 메모리 영역들 각각의 리클레임 우선 순위를 설정하는 단계, 및 리클레임 우선 순위에 따라 소스 메모리 영역들에 대한 리클레임 동작을 수행하는 단계를 포함한다.

Description

메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법{MEMORY DEVICE, STORAGE DEVICE INCLUDING THE SAME AND METHOD OF OPERATING THE STORAGE DEVICE}
본 개시의 기술적 사상은 메모리 장치에 관한 것으로서, 더욱 상세하게는, 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법에 관한 것이다.
비휘발성 메모리로서 플래시 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. 최근 eMMC(embedded Multi-Media Card), UFS(Universal Flash Storage), SSD(Solid State Drive), 및 메모리 카드 등의 플래시 메모리를 포함하는 스토리지 장치가 널리 사용되고 있으며, 스토리지 장치는 많은 양의 데이터를 저장하거나 이동시키는데 유용하게 사용되고 있다. 스토리지 장치의 신뢰성을 향상시킬 수 있는 방법 및 장치에 대한 요구가 지속적으로 제기되고 있다.
본 개시의 기술적 사상은 메모리 장치 및 스토리지 장치의 신뢰도를 향상시킬 수 있는 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법을 제공한다.
본 개시의 기술적 사상에 따른 스토리지 장치의 동작 방법은, 소스 메모리 영역들에서 목적지 메모리 영역들로 데이터를 이동시키는 리클레임 동작을 수행하도록 구성된 스토리지 장치의 동작 방법으로서, 리클레임 이벤트가 발생된 제1 메모리 영역을 감지하는 단계, 제1 메모리 영역을 포함하는 소스 메모리 영역들 각각의 리클레임 우선 순위를 설정하는 단계, 및 리클레임 우선 순위에 따라 소스 메모리 영역들에 대한 리클레임 동작을 수행하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따른 스토리지 장치는 복수의 메모리 영역들을 포함하는 비휘발성 메모리, 비휘발성 메모리의 소스 메모리 영역들에 대한 리클레임 동작을 제어하는 컨트롤러를 포함하고, 컨트롤러는 소스 메모리 영역들 각각에 대한 리클레임 우선순위 값들을 설정하고, 리클레임 우선순위 값들에 기초하여 리클레임 동작을 수행하도록 비휘발성 메모리를 제어할 수 있다.
본 개시의 기술적 사상에 따른 메모리 장치는, 복수의 페이지들을 포함하는 복수의 메모리 블록을 포함하는 메모리 셀 어레이, 및 복수의 메모리 블록들 각각의 단위로 리클레임 동작을 수행하기 위한 제어 신호를 생성하는 제어 로직 회로를 포함하고, 제어 로직 회로는 복수의 메모리 블록들 중 소스 블록에서 목적지 블록으로 데이터를 이동시킴으로써 리클레임 동작을 수행하고, 제어 로직 회로는 소스 블록에 포함된 복수의 페이지들의 어드레스의 순서와 상이한 순서로 리클레임 동작을 수행할 수 있다.
본 개시의 기술적 사상에 따른 메모리 장치 및 이를 포함하는 스토리지 장치는 데이터 열화 또는 데이터 열화 가능성에 따라 메모리 영역의 리클레임(reclaim) 동작의 리클레임 우선순위를 미리 설정하고, 설정된 리클레임 우선순위에 따라 리클레임 동작을 수행할 수 있다. 리클레임 동작이 수행되어야 하는 특정 메모리 영역에 대해 다른 메모리 영역보다 먼저 리클레임 동작을 수행하므로, 호스트로부터 다른 요청이 수신되어도 상기 특정 메모리 영역에 대한 리클레임 동작이 과도하게 지연되는 것이 방지될 수 있다. 결과적으로, 메모리 장치 및 스토리지 장치의 데이터 신뢰도가 향상시될 수 있다.
도 1은 본 개시의 예시적인 실시 예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 도 1의 스토리지 장치에 포함된 컨트롤러를 상세하게 나타내는 블록도이다.
도 3은 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도이다.
도 4는 도 1의 비휘발성 메모리에 포함된 메모리 장치를 설명하는 블록도이다.
도 5는 본 개시의 예시적 실시 예에 따른 메모리 장치의 메모리 셀 어레이에 포함되는 메모리 블록의 등가 회로도이다.
도 6a 및 도 6b는 본 개시의 예시적 실시 예에 따른 스토리지 장치의 리클레임 동작을 설명하기 위한 도면이다.
도 7은 본 개시의 예시적 실시 예에 따른 스토리지 장치의 리클레임 동작을 설명하기 위한 도면이다.
도 8은 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도이다.
도 9a 및 도 9b는 도 8의 단계 S23을 설명하기 위한 도면이다.
도 10a 및 도 10b는 도 8의 단계 S23을 설명하기 위한 도면이다.
도 11은 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 12는 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 13 내지 도 16은 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 17은 본 개시의 예시적 실시 예에 따른 비휘발성 메모리에서 슈퍼 블록의 그룹핑을 나타내는 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 설명할 것이지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이하에서 기술하는 실시 예에는 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
도 1은 본 개시의 예시적인 실시 예에 따른 스토리지 시스템(10)을 나타내는 블록도이다.
스토리지 시스템(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)은 스토리지 장치(100) 및 호스트(200)를 포함할 수 있다. 호스트(200)는 스토리지 장치(100)의 동작을 제어할 수 있다. 예시적인 실시 예에서, 스토리지 장치(100)는 하나 이상의 솔리드 스테이트 드라이브(Solid State Drive, SSD)를 포함할 수 있다. 스토리지 장치(100)가 솔리드 스테이트 드라이브를 포함하는 경우, 스토리지 장치(100)는 데이터를 저장하는 복수의 플래시 메모리 장치들(예를 들어, NAND 메모리 장치들)을 포함할 수 있다.
스토리지 장치(100)는 하나 이상의 플래시 메모리 장치들을 포함하는 플래시 메모리 장치에 해당할 수 있다. 예시적인 실시 예에서, 스토리지 장치(100)는 스토리지 시스템(10)에 내장되는 임베디드(embedded) 메모리일 수 있다. 예를 들어, 스토리지 장치(100)는 eMMC(embedded Multi-Media Card) 또는 임베디드 UFS(Universal Flash Storage) 메모리 장치일 수 있다. 예시적인 실시 예에서, 스토리지 장치(100)는 스토리지 시스템(10)에 착탈 가능한 외장(external) 메모리일 수 있다. 예를 들어, 스토리지 장치(100)는 UFS 메모리 카드, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick)일 수 있다.
도 1을 참조하면, 스토리지 시스템(10)은 스토리지 장치(100) 및 호스트(200)를 포함하고, 스토리지 장치(100)는 컨트롤러(110) 및 비휘발성 메모리(120)를 포함할 수 있다. 호스트(200)는 다양한 인터페이스를 통하여 스토리지 장치(100)와 통신할 수 있고, 리드 요청 및 프로그램 요청 등의 요청(REQ)을 스토리지 장치(100)에 전달할 수 있다. 예시적인 실시 예에서, 호스트(200)는 AP(Application Processor) 또는 SoC(System-On-a-Chip, SoC)로 구현될 수 있다.
컨트롤러(110)는 채널들(CH1~CHn)을 통해 비휘발성 메모리(120)의 동작을 제어할 수 있다. 컨트롤러(110)는 호스트(200)로부터의 리드 요청에 응답하여 비휘발성 메모리(120)에 저장된 데이터(DATA)를 리드하거나, 또는 호스트(200)로부터의 라이트 요청에 응답하여 비휘발성 메모리(120)에 데이터(DATA)를 프로그램하도록 비휘발성 메모리 장치들(120)을 제어할 수 있다.
컨트롤러(110)는 리클레임 이벤트가 발생하면, 비휘발성 메모리(120)를 제어함으로써 리클레임 동작을 수행할 수 있다. 이 때, "리클레임 동작"은 소스(source) 메모리 영역의 데이터를 다른 목적지(destination) 메모리 영역으로 이동시키고, 상기 소스 메모리 영역의 데이터를 이레이즈하여 소스 메모리 영역을 재사용하는 동작을 지칭한다. 구체적으로, 소스 메모리 영역에 저장된 유효 데이터를 리드하고, 리드된 유효 데이터를 다른 목적지 메모리 영역에 프로그램할 수 있다. 이에 따라, 맵핑 테이블에서 상기 유효 데이터에 대응하는 어드레스는 소스 메모리 영역에서 목적지 메모리 영역으로 변경될 수 있다.
예시적인 실시 예에서, 컨트롤러(110)는 리클레임 스케쥴러(114)를 포함할 수 있다. 리클레임 스케쥴러(114)는 리클레임 동작의 대상이 되는 메모리 영역의 리클레임 우선순위 값을 설정할 수 있고, 설정된 우선순위에 따라 리클레임 동작이 수행된 메모리 영역들의 순서를 설정할 수 있다. 리클레임 스케쥴러(114)는 리클레임 큐(예를 들어, 도 2의 RQ)에 등록된 메모리 영역에 대응하는 우선순위의 값이 커질수록 우선하여 리클레임 동작이 수행되도록 스케쥴링할 수 있다. 예시적인 실시 예에서, 리클레임 스케쥴러(114)는 리클레임 동작의 대상이 되는 소스 메모리 블록(예를 들어, 도 4의 BLK1~BLKn 중 하나) 내에 포함된 복수의 페이지들(예를 들어, 도 4의 PG1~PGm) 각각의 리클레임 동작의 리클레임 우선순위 값들을 설정할 수 있다.
예시적인 실시 예에서, 리클레임 스케쥴러(114)는 리클레임 이벤트가 발생된 메모리 영역에 대해 제1 값의 우선순위를 설정하고, 리클레임 이벤트가 발생될 것으로 예상되는 메모리 영역에 대해 제2 값의 우선순위를 설정할 수 있고, 이외의 메모리 영역에 대해 제3 값의 우선순위를 설정할 수 있다. 리클레임 이벤트가 발생될 것으로 예상되는 메모리 영역은 미리 지정된 메모리 영역일 수 있고, 물리적인 구조 상 데이터 신뢰도가 낮을 수 있는 메모리 영역일 수 있다. 이 때, 제1 값은 제2 값보다 클 수 있고, 제2 값은 제3 값보다 클 수 있고, 다만, 이에 한정되지 않고, 제2 값은 제1 값보다 클 수 있고, 제1 값은 제3 값보다 클 수 있다. 우선순위의 값이 커질수록 선행하여 리클레임 동작이 수행될 수 있다.
예시적인 실시 예에서, 비휘발성 메모리(120)는 데이터를 저장하는 복수의 메모리 장치들(NVM1~NVMi)을 포함할 수 있다. 복수의 메모리 장치들(NVM1~NVMi) 각각은 반도체 칩, 또는 반도체 다이(die)일 수 있다. 복수의 메모리 장치들(NVM1~NVMi) 각각은 대응하는 채널에 연결될 수 있다. 예를 들어, 비휘발성 메모리(120)는 제1 채널(CH1)을 통해 컨트롤러(110)와 연결되는 메모리 장치들(NVM1), 제2 채널(CH2)을 통해 컨트롤러(110)와 연결되는 메모리 장치들(NVM2), 및 제i 채널(CHi)을 통해 컨트롤러(110)와 연결되는 메모리 장치들(NVM)을 포함할 수 있다. 이 때, i는 3이상의 정수일 수 있다. 복수의 메모리 장치들(NVM1~NVMi) 중 동일한 채널에 연결된 복수의 메모리 장치들은 인터리빙 방식으로 프로그램, 리드 및 이레이즈 동작이 수행될 수 있다.
복수의 메모리 장치들(NVM1~NVMi) 각각은 메모리 셀 어레이(예를 들어, 도 4의 122)를 포함할 수 있고, 예시적인 실시 예에서, 메모리 셀 어레이(122)는 플래시 메모리 셀들을 포함할 수 있고, 예를 들어, 플래시 메모리 셀들은 낸드(NAND) 플래시 메모리 셀들일 수 있다. 그러나, 본 개시는 이에 한정되지 않고, 메모리 셀들은 ReRAM(resistive RAM), PRAM(phase change RAM), MRAM(magnetic RAM)과 같은 저항형 메모리 셀들일 수 있다.
본 개시에 따른 스토리지 장치(100)는 리클레임 동작의 대상이 되는 메모리 영역들의 리클레임 우선순위를 미리 설정하고, 리클레임 우선순위에 따라 리클레임 동작을 수행할 수 있다. 스토리지 장치(100)는 리클레임 이벤트가 발생된 소스 메모리 영역에 대해 우선적으로 리클레임 동작을 수행함으로써, 호스트(200)로부터 요청(REQ)이 수신되어도 상기 소스 메모리 영역에 대한 리클레임 동작이 과도하게 지연되는 것이 방지될 수 있다.
도 2는 도 1의 스토리지 장치(100)에 포함된 컨트롤러(110)를 상세하게 나타내는 블록도이다.
도 1 및 도 2를 참조하면, 컨트롤러(110)는 프로세서(111), 호스트 인터페이스(112), 메모리(113), 리클레임 스케쥴러(114) 및 비휘발성 메모리 인터페이스(115)를 포함할 수 있고, 이들은 버스(116)를 통해 서로 통신할 수 있다. 프로세서(111)은 중앙 처리 장치나 마이크로 프로세서 등을 포함할 수 있으며, 컨트롤러(110)의 전반적인 동작을 제어할 수 있다. 프로세서(111)는 특정 동작을 수행하도록 구성되는 프로그램 코드의 명령어 집합을 실행할 수 있는 하나 이상의 프로세서 코어들을 포함할 수 있다. 예를 들어, 프로세서(111)는 메모리(113)에 저장된 펌웨어의 명령 코드를 실행할 수 있다.
리클레임 스케쥴러(114)는 리클레임 동작의 대상이 되는 메모리 영역들의 리클레임 동작의 우선순위를 설정하고, 리클레임 우선순위에 따라 리클레임 수행되도록 스케쥴링할 수 있다. 리클레임 스케쥴러(114)는 하드웨어, 소프트웨어 또는 펌웨어로 구현될 수 있다. 리클레임 스케쥴러(114)가 소프트웨어 또는 펌웨어로 구현되는 경우, 리클레임 스케쥴러(114)는 메모리(113)에 로딩될 수 있고, 프로세서(111)의 제어에 따라 동작할 수 있다. 메모리(113)는 동작 메모리, 버퍼 메모리, 캐시 메모리 등으로 사용될 수 있고, 예를 들어, 메모리(113)는 DRAM, SRAM, PRAM 또는 플래시 메모리로 구현될 수 있다.
커맨드 큐(CQ)는 메모리(113)의 일부로 구현될 수 있다. 커맨드 큐(CQ)에는 호스트(200)로부터 수신된 요청(REQ)에 따른 커맨드들이 인큐될 수 있다. 예를 들어, 커맨드 큐(CQ)에는 라이트 요청이 수신되면 그에 대응하는 라이트 커맨드가 인큐될 수 있고, 리드 요청이 수신되면 그에 대응하는 리드 커맨드가 인큐될 수 있다.
리클레임 큐(RQ)는 메모리(113)의 일부로 구현될 수 있다. 리클레임 큐(RQ)는 리클레임 이벤트가 발생된 메모리 영역에 대한 정보가 저장될 수 있고, 리클레임 동작의 대상이 되는 메모리 영역의 리클레임 우선순위에 대한 정보가 저장될 수 있다. 즉, 리클레임 큐(RQ)는 소스 메모리 영역의 어드레스가 등록될 수 있고, 이에 대응하는 리클레임 우선순위의 값을 저장할 수 있다. 예를 들어, 리클레임 큐(RQ)는 메모리 블록 내의 페이지들 각각의 리클레임 우선순위를 나타내는 우선순위 값들을 저장할 수 있다. 또는, 예를 들어, 리클레임 큐(RQ)는 메모리 블록들 각각의 리클레임 우선순위를 나타내는 우선순위 값들을 저장할 수 있다.
메타데이터 버퍼(MB)는 메모리(113) 또는 별도의 DRAM 칩의 일부로 구현될 수 있다. 메타데이터 버퍼(MB)에 저장된 메타데이터는 비휘발성 메모리(120)의 메타 영역에 저장될 수 있고, 스토리지 장치(100)에 전원이 인가되면 비휘발성 메모리(120)에서 컨트롤러(110)의 메타데이터 버퍼(MB)에 로딩될 수 있다.
메타데이터 버퍼(MB)에는 메타데이터로서 비휘발성 메모리(120)의 메모리 영역에 대한 열화 정보가 저장될 수 있다. 예시적인 실시 예에서, 열화 정보는 메모리 블록 별로 또는 페이지 별로 저장될 수 있다. 예를 들어, 메타데이터 버퍼(MB)에는 리클레임 이벤트가 발생될 것으로 예상되는 메모리 영역을 지시하는 열화 정보가 저장될 수 있다. 예를 들어, 메타데이터 버퍼(MB)에는 물리적인 구조 상 데이터 신뢰도가 낮을 수 있는 메모리 영역을 지시하거나, 이레이즈 동작이 기준 값 이상 수행된 메모리 영역을 지시하는 등의 열화 정보가 저장될 수 있다. 리클레임 스케쥴러(114)는 메타데이터 버퍼(MB)에 저장된 열화 정보에 기초하여, 리클레임 동작의 대상이 되는 메모리 영역의 리클레임 우선순위를 설정할 수 있다.
호스트 인터페이스(112)는 호스트(200)와 컨트롤러(110) 사이의 인터페이스를 제공할 수 있고, 예를 들어, USB(Universal Serial Bus), MMC, PCI-E(PCIExpress), ATA(AT Attachment), SATA(Serial AT Attachment), PATA(Parallel AT Attachment), SCSI(Small Computer System Interface), SAS(Serial Attached SCSI), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics) 등에 따른 인터페이스를 제공할 수 있다. 비휘발성 메모리 인터페이스(115)는 컨트롤러(110)와 비휘발성 메모리(120) 사이의 인터페이스를 제공할 수 있다. 예를 들어, 열화 정보, 맵핑 테이블, 라이트 데이터 및 리드 데이터가 비휘발성 메모리 인터페이스(115)를 통해 컨트롤러(110)와 비휘발성 메모리(120) 사이에서 송수신될 수 있다.
도 3은 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도이다. 도 3에 도시된 단계 S10 내지 단계 S30의 동작 방법은 도 1의 스토리지 장치(100)에서 시계열적으로 수행될 수 있다.
도 1 및 도 3을 참조하면, 단계 S10 에서, 스토리지 장치(100)는 리클레임 이벤트의 발생을 감지할 수 있다. 예시적인 실시 예에서, 스토리지 장치(100)는 특정 메모리 영역에서 데이터를 리드하고, 데이터의 에러 비트 레이트(error bit rate, EBR)가 기준 값 이상인 경우에 리클레임 이벤트가 발생된 것으로 판단할 수 있다. 또는, 예시적인 실시 예에서, 스토리지 장치(100)는 상기 특정 메모리 영역에 대한 리드 동작이 실패할 경우 펌웨어에 의한 방어 코드(recovery code)를 실행할 수 있고, 미리 지정된 특정 방어 코드를 실행할 때 해당 메모리 영역에 리클레임 이벤트가 발생한 것으로 판단할 수 있다.
예를 들어, 스토리지 장치(100)는 호스트(200)로부터 리드 요청을 수신하면, 호스트 리드 동작을 통해 비휘발성 메모리(120)의 특정 메모리 영역으로부터 데이터(DATA)를 리드할 수 있고, 리드된 데이터에 기초하여 리클레임 동작의 수행 여부를 판단할 수 있다. 도 12의 단계 S10에서 호스트 리드 동작을 통한 리클레임 동작의 수행 여부 판단 방법의 구체적인 예시를 후술하겠다.
또는, 예를 들어, 스토리지 장치(100)는 백그라운드 리드 동작을 통해 비휘발성 메모리(120)의 특정 메모리 영역으로부터 데이터를 리드할 수 있고, 리드된 데이터에 기초하여 리클레임 동작의 수행 여부를 판단할 수 있다. "백그라운드 리드 동작"은 호스트(200)로부터 리드 요청을 수신하지 않고, 컨트롤러(110)에서 자체적으로 리드 커맨드를 발행(issue)하여 비휘발성 메모리(120)에서 데이터를 리드하는 동작을 지칭한다. 도 13 내지 도 16의 단계 S10a 내지 단계 S10d에서 백그라운드 리드 동작을 통한 리클레임 동작의 수행 여부 판단 방법의 구체적인 예시를 후술하겠다.
단계 S20에서, 스토리지 장치(100)는 리클레임 동작 대상의 리클레임 우선순위를 설정할 수 있다. 예를 들어, 단계 S10에서 리클레임 이벤트가 발생된 메모리 영역은 가장 먼저 리클레임 동작이 수행될 수 있도록 리클레임 우선순위 값이 설정될 수 있고, 리클레임 이벤트가 발생되지 않았으나 리클레임 동작 대상이 되는 메모리 영역은 후순위의 리클레임 우선순위 값이 설정될 수 있다.
단계 S30에서, 설정된 리클레임 우선순위에 따라 리클레임 동작을 수행할 수 있다. 예를 들어, 단계 S10에서 리클레임 이벤트가 발생된 메모리 영역에 대한 리클레임 동작을 가장 먼저 수행할 수 있고, 리클레임 이벤트가 발생되지 않았으나 리클레임 동작 대상이 되는 메모리 영역에 대한 리클레임 동작은 이후에 수행할 수 있다.
본 개시에 따른 스토리지 장치(100)는 메모리 영역의 리클레임 동작의 우선순위를 미리 설정하고, 설정된 리클레임 우선순위에 따라 리클레임 동작을 수행할 수 있다. 이에 따라 호스트(200)로부터 요청(REQ)이 수신되어도 스토리지 장치(100)는 리클레임 이벤트가 발생된 메모리 영역에 대한 리클레임 동작이 과도하게 지연되는 것이 방지될 수 있다. 비휘발성 메모리(120) 및 스토리지 장치(100)의 데이터 신뢰도가 향상될 수 있다.
도 4는 도 1의 비휘발성 메모리(120)에 포함된 메모리 장치(120A)를 설명하는 블록도이다.
도 1 및 도 4를 참조하면, 메모리 장치(120A)는 메모리 셀 어레이(122), 어드레스 디코더(123), 제어 로직 블록(124), 페이지 버퍼(125), 입출력 회로(126), 및 전압 생성기(127)를 포함할 수 있다. 도시되지는 않았으나, 메모리 장치(120A)는 입출력 인터페이스를 더 포함할 수 있다.
메모리 셀 어레이(122)는 워드 라인들(WL), 스트링 선택 라인들(SSL), 그라운드 선택 라인들(GSL) 및 비트 라인들(BL)에 연결될 수 있다. 메모리 셀 어레이(122)는 워드 라인들(WL), 스트링 선택 라인들(SSL) 및 그라운드 선택 라인들(GSL)을 통해 어드레스 디코더(123)에 연결되고, 비트 라인들(BL)을 통해 페이지 버퍼(125)에 연결될 수 있다. 메모리 셀 어레이(122)는 복수의 메모리 블록들(BLK1~BLKn)을 포함할 수 있다.
복수의 메모리 블록들(BLK1~BLKn) 각각은 복수의 메모리 셀들 및 복수의 선택 트랜지스터들을 포함할 수 있다. 메모리 셀들은 워드라인들(WL)에 연결되고, 선택 트랜지스터들은 스트링 선택 라인들(SSL) 또는 그라운드 선택 라인들(GSL)에 연결될 수 있다. 복수의 메모리 블록들(BLK1~BLKn) 각각은의 메모리 셀들은 1-비트 데이터를 저장하는 싱글 레벨 셀들(Single Level Cells) 또는 2이상-비트 데이터를 저장하는 멀티 레벨 셀들(Multi Level Cells)로 구성될 수 있다.
복수의 메모리 블록들(BLK1~BLKn) 각각은 복수의 페이지들(PG1~PGm)을 포함할 수 있다. 복수의 페이지들(PG1~PGm) 각각은 하나의 메모리 블록에서 데이터의 프로그램 또는 리드 단위에 해당할 수 있다. 예시적인 실시 예에서, 복수의 페이지들(PG1~PGm) 각각에 포함된 메모리 셀들은 동일한 워드 라인에 연결될 수 있다.
어드레스 디코더(123)는 메모리 셀 어레이(122)의 복수의 메모리 블록들(BLK1~BLKn) 중 하나를 선택할 수 있고, 선택된 메모리 블록의 워드라인들(WL) 중 하나를 선택할 수 있고, 복수의 스트링 선택 라인들(SSL) 중 하나를 선택할 수 있다.
제어 로직 블록(124, 또는 제어 로직 회로)는 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로 하여, 메모리 셀 어레이(122)에 대한 프로그램, 리드 및 이레이즈 동작을 수행하기 위한 각종 제어 신호를 출력할 수 있다. 제어 로직 블록(124)은 어드레스 디코더(123)에 로우 어드레스(X-ADDR)를 제공할 수 있고, 페이지 버퍼(125)에 칼럼 어드레스(Y-ADDR)를 제공할 수 있고, 전압 생성기(127)에 전압 제어 신호(CTRL_Vol)를 제공할 수 있다.
제어 로직 블록(124)는 복수의 메모리 블록들(BLK1~BLKn) 각각의 단위로 이레이즈 동작을 수행할 수 있다. 제어 로직 블록(124)는 복수의 페이지들(PG1~PGm) 각각의 단위로 리드 동작을 수행할 수 있고, 프로그램 동작을 수행할 수 있다.
예시적인 실시 예에서, 제어 로직 블록(124)은 복수의 메모리 블록들(BLK1~BLKn) 각각의 단위로 리클레임 동작을 수행할 수 있다. 예를 들어, 제어 로직 블록(124)은 복수의 메모리 블록들(BLK1~BLKn) 중 리클레임 이벤트가 발생된 소스 메모리 블록인, 제2 메모리 블록(BLK2)에 포함된 페이지 단위로 데이터를 리드하고, 복수의 메모리 블록들(BLK1~BLKn) 중 목적지 메모리 블록으로 페이지 단위로 데이터를 프로그램하고, 제2 메모리 블록(BLK2)을 이레이즈함으로써 리클레임 동작을 수행할 수 있다.
예시적인 실시 예에서, 제어 로직 블록(124)은 제2 메모리 블록(BLK2)에 대해 리클레임 동작을 수행함에 있어서, 리클레임 이벤트가 발생된 제2 페이지(PG2), 제4 페이지(PG4), 및 제m-1 페이지(PGm-1)에 대해 우선적으로 리클레임 동작을 수행할 수 있다. 따라서, 제어 로직 블록(124)은 제2 메모리 블록(BLK2)에 대해 로우 어드레스(X-ADDR)의 순서(order)대로 리클레임 동작을 수행하지 않을 수 있다. 예를 들어, 제2 메모리 블록(BLK2)에 리클레임 동작을 수행할 때, 제2 페이지(PG2), 제4 페이지(PG4), 및 제m-1 페이지(PGm-1)에 대해 우선적으로 리클레임 동작을 수행한 후, 남은 페이지들에 대해 제2 메모리 블록(BLK2)의 제1 페이지(PG1)부터 제m 페이지(PGm)까지의 순서(bottom to top), 또는, 제m 페이지(PGm)부터 제1 페이지(PG1)까지의 순서(top to bottom)로 리클레임 동작을 수행할 수 있다.
페이지 버퍼(125)는 동작 모드에 따라 라이트 드라이버로서 또는 감지 증폭기로서 동작할 수 있다. 리드 동작시, 페이지 버퍼(125)는 제어 로직 블록(124)의 제어에 따라 선택된 메모리 셀의 비트라인(BL)을 센싱할 수 있다. 센싱된 데이터는 페이지 버퍼(125) 내부에 구비되는 래치들에 저장될 수 있다. 페이지 버퍼(125)는 제어 로직 블록(124)의 제어에 따라 래치들에 저장된 데이터를 입출력 회로(126)로 덤핑할 수 있다.
입출력 회로(126)는 메모리 장치(120A)의 외부로부터 입출력 라인(I/O)을 통해서 제공되는 명령어(CMD), 어드레스(ADDR), 제어 신호(CTRL) 및 데이터(DATA)를 일시 저장할 수 있다. 입출력 회로(126)는 메모리 장치(120A)의 읽기 데이터를 일시 저장하고, 지정된 시점에 입출력 라인(I/O)을 통해서 외부로 출력할 수 있다.
전압 생성기(127)는 전압 제어 신호(CTRL_Vol)를 기초로 하여 메모리 셀 어레이(122)에 대한 프로그램, 리드 및 이레이즈 동작을 수행하기 위한 다양한 종류의 전압들을 생성할 수 있다. 구체적으로, 전압 생성기(127)는 워드 라인 전압(VWL), 예를 들어, 프로그램 전압, 리드 전압, 패스 전압, 이레이즈 검증 전압 또는 프로그램 검증 전압 등을 생성할 수 있다. 또한, 전압 생성기(127)는 전압 제어 신호(CTRL_Vol)를 기초로 하여 스트링 선택 라인 전압 및 그라운드 선택 라인 전압을 생성할 수 있다. 또한, 전압 생성기(127)는 메모리 셀 어레이(122)에 제공할 이레이즈 전압을 생성할 수 있다.
도 5는 본 개시의 예시적 실시 예에 따른 메모리 장치(120A)의 메모리 셀 어레이(121)에 포함되는 메모리 블록(BLK)의 등가 회로도이다. 도 5에서는 기판 상에 형성된 수직 채널 구조를 갖는 수직 구조의 낸드(NAND) 플래시 메모리 소자의 등가 회로도가 예시되어 있다.
도 5를 참조하면, 메모리 셀 어레이에 포함된 메모리 블록(BLK)은 복수의 메모리 셀 스트링들(MS)을 포함할 수 있다. 메모리 블록(BLK)은 복수의 비트 라인들(BL: BL1~BLk), 복수의 워드 라인들(WL: WL1~WLn), 복수의 스트링 선택 라인들(SSL: SSL1~SSLk), 적어도 하나의 접지 선택 라인(GSL), 및 공통 소스 라인(CSL)을 포함할 수 있다. 복수의 비트 라인(BL: BL1~BLk) 및 공통 소스 라인(CSL) 사이에 복수의 메모리 셀 스트링(MS)이 형성될 수 있다.
복수의 메모리 셀 스트링들(MS)은 각각 스트링 선택 트랜지스터(SST), 접지 선택 트랜지스터(GST), 및 복수의 메모리 셀들(MC1~MCm)을 포함할 수 있다. 스트링 선택 트랜지스터(SST)의 드레인 영역은 비트 라인들(BL)과 연결될 수 있고, 접지 선택 트랜지스터(GST)의 소스 영역은 공통 소스 라인(CSL)과 연결될 수 있다. 공통 소스 라인(CSL)은 복수의 접지 선택 트랜지스터(GST)의 소스 영역이 공통으로 연결된 영역일 수 있다.
복수의 메모리 셀 스트링들(MS)은 각각 독립적으로 제어되기 위하여, 복수의 메모리 셀 스트링들(MS)에 각각 포함된 스트링 선택 트랜지스터(SST)는 서로 다른 스트링 선택 라인과 연결될 수 있다. 예를 들어, 스트링 선택 트랜지스터(SST)는 스트링 선택 라인(예를 들어, SSL1, SSL2, 및 SSL3 중 하나)과 연결될 수 있다.
접지 선택 트랜지스터(GST)는 접지 선택 라인(GSL)과 연결될 수 있다. 일 실시 예에서, 메모리 블록(BLK)의 복수의 메모리 셀 스트링들(MS)에 포함된 서로 다른 접지 선택 트랜지스터(GST)는 동일한 접지 선택 라인(GSL)에 연결될 수 있으나, 이에 한정되는 것은 아니며, 서로 다른 접지 선택 라인(GSL)에 연결될 수도 있다.
메모리 블록(BLK)에서 메모리 셀 스트링(MS)을 구성하는 복수의 메모리 셀들(MC1~MCm)은 기판의 주면에 수직인 Z축 방향을 따라 직렬 연결된 구조를 가질 수 있다. 메모리 블록(BLK)에서, 복수의 워드 라인들(WL)은 X축 방향으로 연장될 수 있고, 복수의 비트 라인들(BL)은 Y축 방향으로 연장될 수 있다.
복수의 메모리 셀들(MC1~MCm)은 각각 복수의 워드 라인들(WL)에 연결될 수 있다. 복수의 메모리 셀들(MC1~MCm) 각각은 한 비트의 데이터 또는 두 비트 이상의 데이터를 저장할 수 있다. 예시적인 실시 예에서, 복수의 메모리 셀들(MC1~MCm) 중 일부는 싱글 레벨 셀일 수 있고, 복수의 메모리 셀들(MC1~MCm) 중 다른 일부는 멀티 레벨 셀일 수 있다. 예를 들어, 복수의 메모리 셀들(MC1~MCm) 중 가장 하부 레이어에 형성되고, 제1 워드 라인(WL1)에 연결되는 제1 메모리 셀들(MC1)은 싱글 레벨 셀일 수 있다. 또한, 예를 들어, 복수의 메모리 셀들(MC1~MCm) 중 가장 상부 레이어에 형성되고, 제m 워드 라인(WLm)에 연결되는 제m 메모리 셀들(MCm)은 싱글 레벨 셀일 수 있다. 복수의 메모리 셀들(MC1~MCm) 중 가장 상부 레이어 및 가장 하부 레이어에 형성되는 메모리 셀들, 예를 들어, 제1 메모리 셀들(MC1) 및 제m 메모리 셀들(MCm)은 싱글 레벨 셀로 형성함으로써, 데이터 신뢰도를 향상시킬 수 있다.
복수의 메모리 셀 스트링들(MS)에서, 프로그램 및 리드 동작은 페이지 단위로 수행될 수 있다. 페이지는 하나의 워드라인에 연결된 메모리 셀들의 하나의 로우일 수 있다. 복수의 메모리 셀들(MC1~MCm)은 복수의 워드 라인들(WL) 각각에 의해 페이지 단위로 선택될 수 있다.
도 6a 및 도 6b는 본 개시의 예시적 실시 예에 따른 스토리지 장치(100)의 리클레임 동작을 설명하기 위한 도면이다.
도 2 및 도 6a를 참조하면, 리클레임 큐(RQ)에는 도 3의 단계 S10에 따라 리클레임 이벤트가 발생된 제2 메모리 블록(BLK2)이 소스 블록으로서 등록될 수 있다. 리클레임 큐(RQ)에는 제2 메모리 블록(BLK2)에 대한 정보가 저장될 수 있다. 예시적인 실시 예에서, 리클레임 큐(RQ)에는 제2 메모리 블록(BLK2)에 포함되는 복수의 페이지들(PG1~PGm)의 물리적 어드레스 별로 리클레임 우선순위 값을 저장할 수 있다. 예를 들어, 리클레임 큐(RQ)에는 제4 페이지(PG4)에 대응하는 제1 값(PV1)의 리클레임 우선순위가 설정될 수 있고, 제m-1 페이지(PGm-1)에 대응하는 제2 값(PV2)의 리클레임 우선순위가 설정될 수 있고, 이외의 페이지들에 대응하는 제3 값(PV3)의 리클레임 우선순위가 설정될 수 있다.
예시적인 실시 예에서, 제4 페이지(PG4)는 리클레임 이벤트가 발생된 대상 메모리 영역일 수 있다. 예시적인 실시 예에서, 제m-1 페이지(PGm-1)는 리클레임 이벤트가 발생될 것으로 예상되는 메모리 영역일 수 있다.
컨트롤러(110)는 리클레임 큐(RQ)에 저장된 리클레임 우선순위 값에 기초하여, 제2 메모리 블록(BLK2)에 포함된 복수의 페이지들(PG1~PGm)의 리클레임 동작의 순서를 결정할 수 있다. 예를 들어, 제1 값(PV1)은 제2 값(PV2)보다 클 수 있고, 제2 값(PV2)은 제3 값(PV3)보다 클 수 있다. 컨트롤러(110)는 상대적으로 큰 값의 리클레임 우선순위 값을 갖는 메모리 영역에 대해 우선적으로 리클레임 동작을 수행할 수 있다. 도 6a에는 3개의 서로 다른 리클레임 우선순위 값들(PV1, PV2, PV3)을 예시로 설명하였으나, 이는 설명의 편의를 위한 것이며, 리클레임 우선순위 값은 다양하게 설정될 수 있다.
컨트롤러(110)는 제4 워드 라인(WL4)에 연결되는 제2 메모리 블록(BLK2)의 제4 페이지(PG4)를 리드한 후, 목적지 블록(DB)의 제1 페이지(PG1)로 데이터를 이동시킬 수 있다. 이후에, 컨트롤러(110)는 제m-1 워드 라인(WLm-1)에 연결되는 제2 메모리 블록(BLK2)의 제m-1 페이지(PGm-1)를 리드한 후, 목적지 블록(DB)의 제2 페이지(PG2)로 데이터를 이동시킬 수 있다. 목적지 블록(DB)은 복수의 메모리 블록들(BLK1~BLKn)에서 제2 메모리 블록(BLK2)을 제외하고 프리 블록들 중 하나일 수 있다.
컨트롤러(110)는 동일한 리클레임 우선순위 값을 갖는 페이지들에 대해서는 로우 어드레스의 순서대로 리클레임 동작을 수행할 수 있다. 예를 들어, 제1 워드 라인(WL1)에 연결되는 제2 메모리 블록(BLK2)의 제1 페이지(PG1), 제2 워드 라인(WL2)에 연결되는 제2 메모리 블록(BLK2)의 제2 페이지(PG2), 제3 워드 라인(WL3)에 연결되는 제2 메모리 블록(BLK2)의 제3 페이지(PG3), 및 제m 워드 라인에 연결되는 제2 메모리 블록(BLK2)의 제m 페이지(PGm) 순으로 차례로 리클레임 동작이 수행될 수 있고, 차례로 목적지 블록(DB)의 제3 내지 제m 페이지(PG3~PGm)에 데이터가 프로그램될 수 있다. 다만, 본 개시에 따른 스토리지 장치(100)는 바텀 투 탑(bottom to top)의 로우 어드레스의 순서로 목적지 블록(DB)에 데이터가 프로그램되는 것에 한정되지는 않는다. 스토리지 장치(100)는 탑 투 바텀(top to bottom)의 로우 어드레스의 순서로 목적지 블록(DB)에 데이터가 프로그램될 수 있다.
도 2 및 도 6b를 참조하면, 컨트롤러(110)는 소스 블록인 제2 메모리 블록(BLK2)의 2-비트 데이터 이상이 저장되는 멀티 레벨 셀에 프로그램된 데이터를 목적지 블록(DB)의 1-비트 데이터가 저장되는 싱글 레벨 셀로 이동시킬 수도 있다.
예를 들어, 제2 메모리 블록(BLK2)의 제4 페이지(PG4) 및 제m-1 페이지(PGm-1)는 2-비트 데이터가 저장되는 멀티 레벨 셀로 구성되고, 반면, 목적지 블록(DB)의 제1 페이지(PG1) 및 제2 페이지(PG2)는 1-비트 데이터가 저장되는 싱글 레벨 셀로 구성되고, 목적지 블록(DB)의 제3 페이지(PG3)는 2-비트 데이터가 저장되는 멀티 레벨 셀로 구성되는 경우를 가정할 수 있다. 컨트롤러(110)는 제4 워드 라인(WL4)에 연결되는 제2 메모리 블록(BLK2)의 제4 페이지(PG4)를 리드한 후, 목적지 블록(DB)의 제1 페이지(PG1) 및 제2 페이지(PG2)로 데이터를 이동시킬 수 있다. 이후에, 컨트롤러(110)는 제m-1 워드 라인(WLm-1)에 연결되는 제2 메모리 블록(BLK2)의 제m-1 페이지(PGm-1)를 리드한 후, 목적지 블록(DB)의 제3 페이지(PG3)로 데이터를 이동시킬 수 있다. 상기 설명은 3-비트 데이터가 저장되는 트리플 레벨 셀에서 싱글 레벨 셀로 데이터가 이동하거나, 트리플 레벨 셀에서 2-비트 데이터가 저장된 멀티 레벨 셀로 데이터가 이동하는 경우에도 적용될 수 있다. 반대로, 상기 설명은 싱글 레벨 셀에서 2-비트 이상의 데이터가 저장된 멀티 레벨 셀로 데이터가 이동하는 경우에도 적용할 수 있음을 물론이다.
도 7은 본 개시의 예시적 실시 예에 따른 스토리지 장치(100)의 리클레임 동작을 설명하기 위한 도면이다.
도 1 및 도 7을 참조하면, 리클레임 큐(RQ)에는 도 3의 단계 S10에 따라 리클레임 이벤트가 발생된 제1 메모리 블록(BLK1), 제3 메모리 블록(BLK3) 및 제n 메모리 블록(BLKn) 각각이 제1 내지 제3 소스 블록으로서 등록될 수 있다. 리클레임 큐(RQ)에는 소스 블록의 물리적 어드레스 및 이에 대응하는 리클레임 우선순위의 값이 저장될 수 있다. 예를 들어, 리클레임 큐(RQ)에는 제1 메모리 블록(BLK1)에 대응하는 제1 값(PV1)의 리클레임 우선순위 값이 설정될 수 있고, 제n 메모리 블록(BLKn)에 대응하는 제2 값(PV2)의 리클레임 우선순위 값이 설정될 수 있고, 제3 메모리 블록(BLK3)에 대응하는 제3 값(PV3)의 리클레임 우선순위 값이 설정될 수 있다.
컨트롤러(110)는 리클레임 큐(RQ)에 저장된 리클레임 우선순위 값에 기초하여, 리클레임 큐(RQ)에 등록된 메모리 블록들 간의 리클레임 동작의 우선순위를 결정할 수 있다. 예를 들어, 제1 값(PV1)은 제2 값(PV2)보다 클 수 있고, 제2 값(PV2)은 제3 값(PV3)보다 클 수 있다. 컨트롤러(110)는 상대적으로 큰 값의 리클레임 우선순위 값을 갖는 메모리 영역에 대해 우선적으로 리클레임 동작을 수행할 수 있다.
컨트롤러(110)는 제1 소스 블록으로서 제1 메모리 블록(BLK1)으로부터 데이터를 리드하고, 제1 목적지 블록(DB1)으로 데이터를 이동시킨 후, 제1 메모리 블록(BLK1)을 이레이즈 할 수 있다. 다음, 컨트롤러(110)는 제2 소스 블록으로서 제n 메모리 블록(BLKn)으로부터 데이터를 리드하고, 제2 목적지 블록(DB2)으로 데이터를 이동시킨 후, 제n 메모리 블록(BLKn)을 이레이즈 할 수 있다. 그리고, 컨트롤러(110)는 제3 소스 블록으로서 제3 메모리 블록(BLK3)으로부터 데이터를 리드하고, 제3 목적지 블록(DB3)으로 데이터를 이동시킨 후, 제3 메모리 블록(BLK3)을 이레이즈 할 수 있다. 제1 내지 제3 목적지 블록(DB1~DB3)은 복수의 메모리 블록들(BLK1~BLKn)에서 제1 메모리 블록(BLK1), 제3 메모리 블록(BLK3) 및 제n 메모리 블록(BLKn)을 제외한 프리 블록들 중 하나일 수 있다.
컨트롤러(110)가 제1 메모리 블록(BLK1), 제3 메모리 블록(BLK3) 및 제n 메모리 블록(BLKn) 각각에 대해 리클레임 동작을 수행함에 있어서, 제1 메모리 블록(BLK1), 제3 메모리 블록(BLK3) 및 제n 메모리 블록(BLKn) 각각에 포함된 복수의 페이지들(PG1~PGm) 사이의 리클레임 동작 순서는 도 6a 및 도 6b에서 설명된 내용이 적용될 수 있다. 즉, 제1 메모리 블록(BLK1), 제3 메모리 블록(BLK3) 및 제n 메모리 블록(BLKn) 각각에 포함된 복수의 페이지들(PG1~PGm) 중 리클레임 이벤트가 발생된 페이지에 대해 우선적으로 리클레임 동작이 수행될 수 있다. 또는, 제1 메모리 블록(BLK1), 제3 메모리 블록(BLK3) 및 제n 메모리 블록(BLKn) 각각에 포함된 복수의 페이지들(PG1~PGm)에 대한 리클레임 동작은 바텀 투 탑(bottom to top)의 로우 어드레스의 순서로 수행되거나, 탑 투 바텀(top to bottom)의 로우 어드레스의 순서로 수행될 수 있다.
도 8은 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도로서, 도 3의 단계 S20의 일 예시이다. 단계 S20는 단계 S21 내지 단계 S25를 포함할 수 있다.
도 1 및 도 8을 참조하면, 단계 S21 에서, 스토리지 장치(100)는 리클레임 동작 대상 중 리클레임 이벤트가 발생된 제1 메모리 영역에 대해 제1 값의 리클레임 우선 순위 값을 설정할 수 있다. 예시적인 실시 예에서, 스토리지 장치(100)는 제1 메모리 영역에서 리드된 데이터의 에러 비트 레이트가 기준 값 이상이거나, 제1 메모리 영역에 대한 리드 리트라이를 위하여(데이터의 에러를 제거하기 위하여) 미리 지정된 특정 방어 코드를 실행할 때 제1 메모리 영역에 리클레임 이벤트가 발생한 것으로 판단할 수 있다.
단계 S23 에서, 스토리지 장치(100)는 리클레임 동작 대상 중 리클레임 이벤트가 발생될 것으로 예상되는 제2 메모리 영역에 대해 제2 값의 리클레임 우선 순위 값을 설정할 수 있다. 예를 들어, 리클레임 이벤트의 발생 여부를 판단하지 않았더라도, 리클레임 이벤트가 발생될 가능성이 높은 경우에는 제2 값의 리클레임 우선 순위 값을 설정할 수 있다. 예시적인 실시 예에서, 리클레임 이벤트가 발생될 것으로 예상되는 제2 메모리 영역은 미리 지정된 메모리 영역일 수 있고, 물리적인 구조 상 데이터 신뢰도가 낮을 수 있는 메모리 영역일 수 있다. 리클레임 이벤트가 발생될 것으로 예상되는 메모리 영역에 대한 설명은 도 9a, 도 9b, 도 10a, 및 도 10b에서 후술하겠다.
단계 S25 에서, 스토리지 장치(100)는 리클레임 동작 대상 중 이외의 제3 메모리 영역에 대해 제3 값의 리클레임 우선순위 값을 설정할 수 있다.
단계 S20을 수행한 이후에, 스토리지 장치(100)는 제1 메모리 영역에 대해 리클레임 동작을 수행하고, 다음으로 스토리지 장치(100)는 제2 메모리 영역에 대해 리클레임 동작을 수행하고, 마지막으로 스토리지 장치(100)는 제3 값을 갖는 제3 메모리 영역에 대해 리클레임 동작을 수행할 수 있다. 본 개시에 따른 스토리지 장치(100)는 리클레임 이벤트가 발생된 메모리 영역에 대해 최우선적으로 리클레임 동작을 수행하고, 이어서 리클레임 이벤트가 발생될 것으로 예상되는 메모리 영역에 대해서도 리클레임 동작을 먼저 수행함으로써, 데이터 열화를 방지할 수 있다.
도 9a 및 도 9b는 도 8의 단계 S23을 설명하기 위한 도면이다. 도 9a 및 도 9b는 메모리 블록 내에 포함된 복수의 페이지들 중 리클레임 이벤트가 발생될 것으로 예상되는 메모리 영역을 결정하는 방법을 설명하기 위한 도면이다.
도 9a를 참조하면, 메모리 블록(BLK2)의 제2 페이지(PG2)에 대한 리드 커맨드(read CMD)가 발행되는 경우를 가정할 수 있다. 이 때, 호스트 리드 동작으로 인하여 리드 커맨드(read CMD)가 발행될 수도 있고, 백그라운드 리드 동작으로 인하여 리드 커맨드(read CMD)가 발행될 수도 있다.
제2 페이지(PG2)를 리드하기 위해 제2 페이지(PG2)에 연결되는 제2 워드 라인(WL2)에 리드 전압이 인가될 수 있다. 이에 따라, 제2 워드 라인(WL2)과 인접한 워드 라인들인 제1 워드 라인(WL1) 및 제3 워드 라인(WL3) 각각에 스트레스가 가해질 수 있고, 제1 워드 라인(WL1) 및 제3 워드 라인(WL3) 각각에 연결되는 제1 페이지(PG1) 및 제3 페이지(PG3)에 프로그램된 데이터가 손상될 수 있다. 즉, 제1 페이지(PG1) 및 제3 페이지(PG3)에 리드 디스터브(Read Disturb)가 발생될 수 있다.
따라서, 리드 동작이 수행된 제2 워드 라인(WL2)과 인접한 워드 라인들에 연결되는 제1 페이지(PG1) 및 제3 페이지(PG3)는 메타데이터 버퍼(예를 들어, 도 2의 MB)에 저장된 열화 정보에 의해, 리클레임 이벤트가 발생될 것으로 예상되는 영역으로 따로 관리될 수 있다. 도 9a에서는 제2 워드 라인(WL2)에 직접 인접한 제1 워드 라인(WL1) 및 제3 워드 라인(WL3) 각각에 연결되는 제1 페이지(PG1) 및 제3 페이지(PG3)에 대해서만 설명하였으나, 본 개시는 이에 한정되지 않는다. 제4 워드 라인(WL4)에 연결되는 제4 페이지(PG4)도 리클레임 이벤트가 발생될 것으로 예상되는 메모리 영역으로 결정될 수도 있다.
도 5 및 도 9b를 참조하면, 메모리 장치가 수직 구조의 낸드(NAND) 플래시 메모리 소자를 포함하도록 구현되는 경우, 제1 내지 제 m 워드 라인(WL1~WLm)은 기판을 기준으로 Z축 방향으로 차례로 적층되도록 형성될 수 있다. 제1 내지 제 m 워드 라인(WL1~WLm)과 각각 연결되는 제1 내지 제m 페이지(PG1~PGm)도 기판을 기준으로 차례로 적층되도록 형성될 수 있다.
메모리 블록(BLK2)은 기판에 가까운 하부 레이어 영역(BLA), 하부 레이어 영역(BLA) 상에 배치되는 중간 레이어 영역(MLA) 및 중간 레이어 영역(MLA) 상에 배치되는 상부 레이어 영역(TLA)을 포함할 수 있다. 예를 들어, 하부 레이어 영역(BLA)은 제1 페이지(PG1) 및 제2 페이지(PG2)를 포함할 수 있고, 상부 레이어 영역(TLA)은 제m-1 페이지(PGm-1) 및 제m 페이지(PGm)를 포함할 수 있고, 중간 레이어 영역(MLA)은 나머지 페이지들을 포함할 수 있다.
하부 레이어 영역(BLA)에 포함되는 페이지들, 예를 들어, 제1 페이지(PG1) 및 제2 페이지(PG2)는 구조적으로 중간 레이어 영역(MLA)에 비해 데이터 신뢰도가 상대적으로 낮을 수 있다. 또한, 상부 레이어 영역(TLA)에 포함되는 페이지들, 예를 들어, 제m-1 페이지(PGm-1) 및 제m 페이지(PGm)는 구조적으로 중간 레이어 영역(MLA)에 비해 데이터 신뢰도가 상대적으로 낮을 수 있다. 따라서, 메타데이터 버퍼(예를 들어, 도 2의 MB)에 저장된 열화 정보에 의해, 하부 레이어 영역(BLA)에 포함되는 페이지들은 리클레임 이벤트의 발생이 예상되는 메모리 영역으로 따로 관리될 수 있고, 상부 레이어 영역(TLA)에 포함되는 페이지들은 리클레임 이벤트의 발생이 예상되는 메모리 영역으로 따로 관리될 수 있다.
도 10a 및 도 10b는 도 8의 단계 S23을 설명하기 위한 도면이다. 도 10a 및 도 10b는 복수의 메모리 블록들 중에 리클레임 이벤트가 발생될 것으로 예상되는 메모리 블록을 결정하는 방법을 설명하기 위한 도면이다.
도 5 및 도 10a를 참조하면, 메모리 셀 어레이 영역(MCA) 및 어드레스 디코더 영역(RDA)이 X축 방향으로 나란하게 배치될 수 있다. 메모리 셀 어레이 영역(MCA)에는 메모리 셀 어레이(122)가 배치될 수 있고, 어드레스 디코더 영역(RDA)에는 어드레스 디코더(123)가 배치될 수 있다.
메모리 셀 어레이 영역(MCA)은 중심에 배치되는 중심 영역(CA) 및 중심 영역(CA)의 모서리에 배치되는 제1 엣지 영역(EA1) 및 제2 엣지 영역(EA2)을 포함할 수 있다. 구조적으로 중심 영역(CA)에 배치되는 메모리 블록에 비해, 제1 엣지 영역(EA1) 및 제2 엣지 영역(EA2)에 배치되는 메모리 블록은 데이터 신뢰도가 상대적으로 낮을 수 있다. 따라서, 메타데이터 버퍼(예를 들어, 도 2의 MB)에 저장된 열화 정보에 의해, 제1 엣지 영역(EA1) 및 제2 엣지 영역(EA2)에 배치되는 메모리 블록들은 리클레임 이벤트의 발생이 예상되는 메모리 영역으로 따로 관리될 수 있다.
도 10b를 참조하면, 메타데이터 버퍼(MB)에는 복수의 메모리 블록들(BLK1~BLKn) 각각에 대한 열화 정보(MLK1~MLKn)가 저장될 수 있다. 예를 들어, 메타데이터 버퍼(MB)에는 복수의 메모리 블록들(BLK1~BLKn) 각각의 이레이즈 카운트(EC1~ECn)가 열화 정보(MLK1~MLKn)로서 저장될 수 있다.
이레이즈 카운트가 증가될수록 해당 메모리 블록의 열화 정도가 커질 수 있다. 이레이즈 카운트가 기준 값 이상인 메모리 블록들이 리클레임 이벤트의 발생이 예상되는 메모리 영역으로 따로 관리될 수 있다. 메타데이터 버퍼(MB)에 저장된 열화 정보(MLK1~MLKn)에 의해, 이레이즈 카운트(예를 들어, 제2 이레이즈 카운트(EC2))가 높은 제2 메모리 블록(BLK2)이 리클레임 이벤트의 발생이 예상되는 메모리 영역으로 따로 관리될 수 있다.
도 11은 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도로서, 도 3의 단계 S30의 일 예시이다. 단계 S30는 단계 S31 내지 단계 S37를 포함할 수 있다.
도 1 및 도 11을 참조하면, 단계 S31 에서, 스토리지 장치(100)는 리클레임 이벤트가 발생된 제1 메모리 영역에 대해 리클레임 동작을 수행할 수 있다. 예를 들어, 제1 값의 리클레임 우선순위 값을 갖는 제1 메모리 영역에 대한 리클레임 동작을 수행할 수 있다. 단계 S31 에서, 리클레임 이벤트가 발생될 것으로 예상되는 제2 메모리 영역(예를 들어, 제2 값의 리클레임 우선순위 값을 갖는 메모리 영역)에 대해 리클레임 동작을 더 수행할 수도 있다.
단계 S33 단계에서, 스토리지 장치(100)는 커맨드 큐(예를 들어, 도 2의 CQ)에 인큐된 커맨드가 존재하는지 판단할 수 있다. 호스트(200)로부터 요청(REQ)이 수신되면 요청(REQ)에 대응하는 커맨드가 커맨드 큐(CQ)에 인큐될 수 있다. 커맨드 큐(CQ)에 인큐된 커맨드가 없으면, S37 단계에서, 스토리지 장치(100)는 이외의 메모리 영역, 즉, 리클레임 이벤트가 발생되지 않은 메모리 영역에 대해 리클레임 동작을 수행할 수 있다.
커맨드 큐(CQ)에 인큐된 커맨드가 있으면, 단계 S35에서 스토리지 장치(100)는 인큐된 커맨드에 따른 동작을 수행할 수 있다. 예를 들어, 호스트(200)로부터 리드 요청이 수신되고 이에 따라 리드 커맨드가 커맨드 큐(CQ)에 인큐되면, 리드 동작을 수행할 수 있다. 또는, 예를 들어, 호스트(200)로부터 라이트 요청이 수신되고 이에 따라 리드 커맨드가 커맨드 큐(CQ)에 인큐되면, 라이트 동작을 수행할 수 있다.
단계 S35에서 호스트(200)의 요청(REQ)에 따른 동작 수행이 완료되면, S37 단계에서, 스토리지 장치(100)는 스토리지 장치(100)는 이외의 메모리 영역, 즉, 리클레임 이벤트가 발생되지 않은 제3 메모리 영역(예를 들어, 제3값의 리클레임 우선순위 값을 갖는 메모리 영역)에 대해 리클레임 동작을 수행할 수 있다.
본 개시에 따른 스토리지 장치(100)는 리클레임 이벤트가 발생된 메모리 영역에 대해 우선적으로 리클레임 동작을 수행한 후, 호스트(200)의 요청(REQ)에 따른 동작을 수행할 수 있고, 호스트(200)의 요청(REQ)에 따른 동작 이 후에 리클레임 이벤트가 발생되지 않은 남은 메모리 영역에 대해 리클레임 동작을 수행할 수 있다. 따라서, 스토리지 장치(100)는 리클레임 이벤트가 발생된 메모리 영역의 리클레임 동작이 딜레이됨으로써, 데이터 열화가 발생하는 것을 방지하는 동시에, 호스트(200)의 요청(REQ)의 처리가 지연되는 것을 방지할 수 있다.
도 11에 대한 설명에서는 제1 메모리 영역 및 제2 메모리 영역에 대한 리클레임 동작을 수행한 후에, 호스트(200)의 요청(REQ)에 따른 커맨드를 처리하는 실시 예에 대해 설명하였으나, 본 개시에 따른 스토리지 장치(100)는 이에 한정되지 않는다. 예시적인 실시 예에서, 스토리지 장치(10)는 리클레임 이벤트가 발생된 제1 메모리 영역에 대한 리클레임 동작을 수행한 후에, 호스트(200)의 요청(REQ)에 따른 커맨드를 처리할 수도 있다. 이어서 리클레임 이벤트가 발생될 것으로 예상되는 제2 메모리 영역에 대해서 리클레임 동작을 수행할 수도 있다.
도 12는 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도로서, 도 3의 단계 S10 및 단계 S20의 일 예시이다.
도 12를 참조하면, 단계 S100에서 호스트(200)는 스토리지 장치(100)로 리드 요청을 전송할 수 있다.
단계 S10는 단계 S11 내지 단계 S13을 포함할 수 있다. 단계 S11에서, 스토리지 장치(100)는 리드 요청에 응답하여 데이터를 리드할 수 있다.
단계 S13에서 스토리지 장치(100)는 리드된 데이터의 에러를 체크하여 리클레임 이벤트 발생 여부를 판단할 수 있다. 예시적인 실시 예에서, 스토리지 장치(100)는 리드된 데이터의 에러 비트 레이트가 기준 값 이상인 경우에 리클레임 이벤트가 발생된 것으로 판단할 수 있다. 또는, 예시적인 실시 예에서, 스토리지 장치(100)는 리드된 데이터의 에러로 인하여 리드 리트라이를 수행하기 위해 펌웨어에 의한 방어 코드를 실행할 수 있고, 미리 지정된 특정 방어 코드를 실행할 때 리클레임 이벤트가 발생한 것으로 판단할 수 있다.
단계 S20'에서 스토리지 장치(100)는 리드 요청에 대응하는 메모리 영역의 리클레임 우선순위 값을 설정할 수 있다. 예를 들어, 단계 S13에서 리클레임 이벤트가 발생된 것으로 판단되면, 리드 요청에 대응하는 메모리 영역은 우선하여 리클레임 동작이 수행되도록 선순위의 우선순위 값을(예를 들어, 제1 값)를 설정할 수 있다. 반면, 리클레임 이벤트가 발생되지 않은 것으로 판단되면, 리드 요청에 대응하는 메모리 영역은 후순위의 우선순위 값(예를 들어, 제3 값)을 설정할 수 있다.
도 13 내지 도 16은 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도로서, 도 3의 단계 S10 및 단계 S20의 일 예시이다. 도 13 내지 도 16은 백그라운드 리드 동작을 수행하는 실시 예에 대해 설명하기 위한 도면이다. 도 13 내지 도 16에서 설명된 각 단계들은 주기적으로 수행될 수 있다. 도 13 내지 도 16에서는 도 12에서와 동일한 부호에 대해 중복 설명을 생략하겠다.
도 1 및 도 13을 참조하면, 단계 S10a는 단계 S11a 및 단계 S13을 포함할 수 있다. 단계 S11a에서 스토리지 장치(100)는 리드 동작이 수행된 워드 라인의 인접 워드 라인에 연결된 메모리 영역에서 데이터를 리드할 수 있다. 리드 동작이 수행되면 특정 워드 라인에 리드 전압이 인가되고, 상기 특정 워드 라인과 인접한 워드 라인들에 스트레스가 발생(리드 디스터브)할 수 있다. 따라서, 스토리지 장치(100)는 리드 동작이 수행된 워드 라인의 인접 워드 라인에 연결된 메모리 영역을 리드함으로써 리클레임 이벤트가 발생하였는지 판단할 수 있다. 단계 S13에서 스토리지 장치(100)는 데이터의 에러를 체크하여 리클레임 이벤트 발생여부를 판단할 수 있다.
단계 S20a에서 스토리지 장치(100)는 인접 워드 라인에 연결된 메모리 영역의 리클레임 우선순위 값을 설정할 수 있다. 예를 들어, 단계 S13에서 리클레임 이벤트가 발생된 것으로 판단되면, 인접 워드 라인에 연결된 메모리 영역은 우선하여 리클레임 동작이 수행되도록 선순위의 우선순위 값(예를 들어, 제1 값)을 설정할 수 있다. 반면, 리클레임 이벤트가 발생되지 않은 것으로 판단되면, 인접 워드 라인에 연결된 메모리 영역은 후순위의 우선순위 값(예를 들어, 제3 값)을 설정할 수 있다.
도 1 및 도 14를 참조하면, 단계 S10b는 단계 S11b 및 단계 S13을 포함할 수 있다. 단계 S11b에서 스토리지 장치(100)는 올드 데이터가 저장된 메모리 영역에서 데이터를 리드할 수 있다. 데이터가 프로그램된 후 시간이 경과될수록 데이터가 열화될 수 있다. 따라서, 스토리지 장치(100)는 데이터가 프로그램된 후 기준 시간 이상 경과되면 올드 데이터로 판단할 수 있고, 올드 데이터가 저장된 메모리 영역을 리드함으로써 리클레임 이벤트가 발생하였는지 판단할 수 있다. 단계 S13에서 스토리지 장치(100)는 데이터의 에러를 체크하여 리클레임 이벤트 발생여부를 판단할 수 있다.
단계 S20b에서 스토리지 장치(100)는 올드 데이터가 저장된 메모리 영역의 리클레임 우선순위 값을 설정할 수 있다. 예를 들어, 단계 S13에서 리클레임 이벤트가 발생된 것으로 판단되면, 올드 데이터가 저장된 메모리 영역은 우선하여 리클레임 동작이 수행되도록 선순위의 우선순위 값을 설정할 수 있다. 반면, 리클레임 이벤트가 발생되지 않은 것으로 판단되면, 올드 데이터가 저장된 메모리 영역은 후순위의 우선순위 값을 설정할 수 있다.
도 1 및 도 15를 참조하면, 단계 S10c는 단계 S11c 및 단계 S13을 포함할 수 있다. 단계 S11c에서 스토리지 장치(100)는 미리 지정된 메모리 영역에서 데이터를 리드할 수 있다. 미리 지정된 메모리 영역은 비휘발성 메모리의 메모리 셀 어레이(예를 들어, 도 4의 122)의 물리적인 구조 상 데이터 신뢰도가 낮을 수 있는 메모리 영역일 수 있다. 미리 지정된 메모리 영역에 대한 정보는 메타데이터 버퍼(MB)에 열화 정보로서 저장될 수 있다.
예를 들어, 도 9b에서 설명된 바와 같이, 미리 지정된 메모리 영역은 메모리 블록의 하부 레이어 영역(BLA) 또는 상부 레이어 영역(TLA)에 포함되는 페이지들일 수 있다. 또는 예를 들어, 도 10a에서 설명된 바와 같이, 미리 지정된 메모리 영역은 제1 엣지 영역(EA1) 및 제2 엣지 영역(EA2)에 배치되는 메모리 블록들일 수 있다. 단계 S13에서 스토리지 장치(100)는 데이터의 에러를 체크하여 리클레임 이벤트 발생 여부를 판단할 수 있다.
단계 S20c에서 스토리지 장치(100)는 미리 지정된 메모리 영역의 리클레임 우선순위 값을 설정할 수 있다. 예를 들어, 단계 S13에서 리클레임 이벤트가 발생된 것으로 판단되면, 미리 지정된 메모리 영역은 우선하여 리클레임 동작이 수행되도록 선순위의 우선순위 값을 설정할 수 있다. 반면, 리클레임 이벤트가 발생되지 않은 것으로 판단되면, 미리 지정된 메모리 영역은 후순위의 우선순위 값을 설정할 수 있다.
도 1 및 도 16을 참조하면, 단계 S10d는 단계 S11d 및 단계 S13을 포함할 수 있다. 단계 S11d에서 스토리지 장치(100)는 복수의 메모리 영역들 중에서 메모리 영역을 랜덤하게 선택하여 데이터를 리드할 수 있다. 예를 들어, 도 4의 제1 내지 제m 페이지(PG1~PGm) 중 제2 페이지(PG2)를 랜덤하게 선택하여 제2 페이지(PG)로부터 데이터를 리드할 수 있다. 단계 S13에서 스토리지 장치(100)는 데이터의 에러를 체크하여 리클레임 이벤트 발생여부를 판단할 수 있다.
단계 S20d에서 스토리지 장치(100)는 선택된 메모리 영역의 리클레임 우선순위 값을 설정할 수 있다. 예를 들어, 단계 S13에서 리클레임 이벤트가 발생된 것으로 판단되면, 선택된 메모리 영역은 우선하여 리클레임 동작이 수행되도록 선순위의 우선순위 값을 설정할 수 있다. 반면, 리클레임 이벤트가 발생되지 않은 것으로 판단되면, 선택된 메모리 영역은 후순위의 우선순위 값을 설정할 수 있다.
도 17은 본 개시의 예시적 실시 예에 따른, 도 1의 비휘발성 메모리(120)에서 슈퍼 블록의 그룹핑을 나타내는 블록도이다.
도 1 및 도 17을 참조하면, 제1 채널(CH1)을 통해 컨트롤러(110)와 통신하는 메모리 장치들(NVM1)은, 제1 내지 제j 메모리 장치(120_1~120_j) (j는 2 이상의 정수)를 포함할 수 있다. 제1 내지 제j 메모리 장치(120_1~120_j) 각각은 n개의 메모리 블록들(BLK_11~BLK_1n, BLK_21~BLK_2n, BLK_j1~BLK_jn)을 포함할 수 있다.
제1 내지 제j 메모리 장치(120_1~120_j)에서 동일한 어드레스가 할당된 블록들(또는 동일한 위치에 배치된 블록들)이 하나의 슈퍼 블록(SPB)으로 그룹핑될 수 있다. 예를 들어, 제1 내지 제j 메모리 장치(120_1~120_j) 각각의 제2 메모리 블록들(BLK_12, BLK_22, BLK_j2)은 하나의 슈퍼 블록(SPB)으로 그룹핑될 수 있다.
예시적인 실시 예에서, 스토리지 장치(100)는 슈퍼 블록(SPB) 단위로 리클레임 동작을 수행할 수 있다. 예를 들어, 제j 메모리 장치(120_j)의 제2 메모리 블록(BLK_j2)에 포함되는 제2, 제4, 및 제m-1 페이지(PG2, PG4, PGm-1)에서 리클레임 이벤트가 발생하는 경우에, 제j 메모리 장치(120_j)의 제2 메모리 블록(BLK_j2)과 함께 슈퍼 블록(SPB)을 구성하는 제2 메모리 블록들(BLK_12, BLK_22, BLK_j2)이 소스 블록으로서, 리클레임 큐(예를 들어, 도 7의 RQ)에 등록될 수 있다.
도 6a 및 도 7에서 설명된 바와 같이, 리클레임 큐(RQ)에는 소스 블록의 물리적 어드레스 및 이에 대응하는 리클레임 우선순위의 값이 저장될 수 있다. 예를 들어, 리클레임 큐(RQ)에는 제2 메모리 블록들(BLK_12, BLK_22, BLK_j2) 각각에 대응하는 리클레임 우선 순위 값들이 설정될 수 있다. 컨트롤러(110)는 리클레임 큐(RQ)에 저장된 리클레임 우선순위 값에 기초하여, 리클레임 동작을 수행할 수 있다.
예를 들어, 리클레임 이벤트가 발생된 제j 메모리 장치(120_j)의 제2 메모리 블록(BLK_j2)에 대해서는 선순위의 리클레임 우선순위 값(예를 들어, 제1 값(PV1))이 설정될 수 있고, 제j 메모리 장치(120_j)의 다른 메모리 블록 보다 우선하여 리클레임 동작이 수행될 수 있다. 또한, 예를 들어, 제j 메모리 장치(120_j)의 제2 메모리 블록(BLK_j2)의 제2, 제4, 및 제m-1 페이지(PG2, PG4, PGm-1)에 대해서는 제1 값(PV1)의 리클레임 우선순위 값이 설정될 수 있고, 제2 메모리 블록(BLK_j2)의 다른 페이지 보다 우선하여 리클레임 동작이 수행될 수 있다.
반면, 예를 들어, 리클레임 이벤트가 발생되지 않은 제1 메모리 장치(120_1)의 제2 메모리 블록(BLK_12)에 대해서는 후순위의 리클레임 우선순위 값 (예를 들어, 제3 값(PV3))이 설정될 수 있고, 제1 메모리 장치(120_1)는 호스트(200)의 요청(REQ)에 따른 동작을 수행한 후에, 리클레임 동작을 수행할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시 예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시 예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 소스 메모리 영역들에서 목적지 메모리 영역들로 데이터를 이동시키는 리클레임 동작을 수행하도록 구성된 스토리지 장치의 동작 방법으로서,
    리클레임 이벤트가 발생된 제1 메모리 영역을 감지하는 단계;
    상기 제1 메모리 영역을 포함하는 상기 소스 메모리 영역들 각각의 리클레임 우선 순위를 설정하는 단계: 및
    상기 리클레임 우선 순위에 따라 상기 소스 메모리 영역들에 대한 리클레임 동작을 수행하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  2. 제1 항에 있어서,
    상기 리클레임 우선 순위를 설정하는 단계는,
    상기 리클레임 이벤트가 발생된 상기 제1 메모리 영역에 대해 제1 값의 리클레임 우선순위 값을 설정하는 단계;
    상기 소스 메모리 영역들 중 상기 리클레임 이벤트가 발생될 것으로 예상되는 제2 메모리 영역에 대해 제2 값의 리클레임 우선순위 값을 설정하는 단계; 및
    상기 소스 메모리 영역들 중 상기 제1 메모리 영역 및 상기 제2 메모리 영역을 제외한 제3 메모리 영역에 대해 제3 값의 리클레임 우선순위 값을 설정하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  3. 제1 항에 있어서,
    상기 리클레임 동작을 수행하는 단계는,
    상기 제1 메모리 영역에 대한 리클레임 동작을 수행하는 단계;
    상기 제1 메모리 영역에 대한 리클레임 동작이 완료되면, 호스트의 요청에 따른 커맨드를 처리하는 단계: 및
    상기 소스 메모리 영역들 중 상기 제1 메모리 영역을 제외한 영역에 대한 리클레임 동작을 수행하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  4. 제1 항에 있어서,
    상기 리클레임 이벤트가 발생된 제1 메모리 영역을 감지하는 단계는,
    호스트로부터 상기 제1 메모리 영역에 대한 리드 요청을 수신하는 단계;
    상기 리드 요청에 따라 상기 제1 메모리 영역으로부터 데이터를 리드하는 단계; 및
    상기 데이터의 에러를 체크하여 상기 제1 메모리 영역에서 리클레임 이벤트 발생 여부 판단하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  5. 제1 항에 있어서,
    상기 리클레임 이벤트가 발생된 제1 메모리 영역을 감지하는 단계는,
    리드 동작이 수행된 워드 라인의 인접 워드 라인에 연결된 제1 메모리 영역의 데이터를 리드하는 단계; 및
    상기 데이터의 에러를 체크하여 상기 제1 메모리 영역에서 리클레임 이벤트 발생 여부 판단하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  6. 제1 항에 있어서,
    상기 리클레임 이벤트가 발생된 제1 메모리 영역을 감지하는 단계는,
    미리 지정된 상기 제1 메모리 영역의 데이터를 리드하는 단계; 및
    상기 데이터의 에러를 체크하여 상기 제1 메모리 영역에서 리클레임 이벤트 발생 여부 판단하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  7. 제6 항에 있어서,
    상기 스토리지 장치는 기판의 주면에 수직인 방향을 따라 배치되는 복수의 메모리 셀들을 포함하고,
    미리 지정된 상기 제1 메모리 영역은 상기 기판으로부터 가장 가까운 하부 레이어에 형성되는 메모리 셀들을 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  8. 제6 항에 있어서,
    상기 스토리지 장치는 기판의 주면에 수직인 방향을 따라 배치되는 복수의 메모리 셀들을 포함하고,
    미리 지정된 상기 제1 메모리 영역은 상기 기판으로부터 가장 먼 상부 레이어에 형성되는 메모리 셀들을 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  9. 제1 항에 있어서,
    상기 리클레임 이벤트가 발생된 제1 메모리 영역을 감지하는 단계는,
    상기 스토리지 장치에 포함된 복수의 메모리 영역들 중 랜덤하게 선택된 상기 제1 메모리 영역의 데이터를 리드하는 단계; 및
    상기 데이터의 에러를 체크하여 상기 제1 메모리 영역에서 리클레임 이벤트 발생 여부 판단하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  10. 제1 항에 있어서,
    상기 리클레임 동작을 수행하는 단계는,
    상기 소스 메모리 영역들에 포함되고 2-비트이상의 데이터가 저장된 멀티 레벨 셀에서, 목적지 메모리 영역들에 포함되고 1-비트의 데이터가 저장된 싱글 레벨 셀로 데이터를 이동시키는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  11. 복수의 메모리 영역들을 포함하는 비휘발성 메모리;
    상기 비휘발성 메모리의 소스 메모리 영역들에 대한 리클레임 동작을 제어하는 컨트롤러를 포함하고,
    상기 컨트롤러는,
    상기 소스 메모리 영역들 각각에 대한 리클레임 우선순위 값들을 설정하고, 상기 리클레임 우선순위 값들에 기초하여 상기 리클레임 동작을 수행하도록 상기 비휘발성 메모리를 제어하는 것을 특징으로 하는 스토리지 장치.
  12. 제11 항에 있어서,
    상기 컨트롤러는,
    상기 소스 메모리 영역들 중 리클레임 이벤트가 발생된 제1 메모리 영역에 대해 제1 값의 리클레임 우선순위 값을 설정하고, 상기 소스 메모리 영역들 중 상기 리클레임 이벤트가 발생될 것으로 예상되는 제2 메모리 영역에 대해 제2 값의 리클레임 우선순위 값을 설정하는 것을 특징으로 하는 스토리지 장치.
  13. 제12 항에 있어서,
    상기 제2 메모리 영역은,
    호스트로부터 수신된 리드 요청에 따라 데이터가 리드된 메모리 영역에 연결된 워드 라인과 인접하게 배치된 워드 라인에 연결된 메모리 영역인 것을 특징으로 하는 스토리지 장치.
  14. 제12 항에 있어서,
    상기 비휘발성 메모리는, 기판의 주면에 수직인 방향을 따라 배치되는 복수의 메모리 셀들을 포함하고,
    상기 제2 메모리 영역은, 상기 기판으로부터 가장 가까운 하부 레이어에 형성되는 메모리 셀들을 포함하는 것을 특징으로 하는 스토리지 장치.
  15. 제12 항에 있어서,
    상기 비휘발성 메모리는, 기판의 주면에 수직인 방향을 따라 배치되는 복수의 메모리 셀들을 포함하고,
    상기 제2 메모리 영역은, 상기 기판으로부터 가장 먼 상부 레이어에 형성되는 메모리 셀들을 포함하는 것을 특징으로 하는 스토리지 장치.
  16. 제12 항에 있어서,
    상기 비휘발성 메모리는,
    메모리 셀들이 배치되고, 중심 영역 및 상기 중심 영역의 모서리에 각각 배치되는 제1 엣지 영역 및 제2 엣지 영역을 포함하는 메모리 셀 어레이 영역을 포함하고,
    상기 제2 메모리 영역은, 상기 제1 엣지 영역 및 상기 제2 엣지 영역 중 하나에 배치되는 것을 특징으로 하는 스토리지 장치.
  17. 제12 항에 있어서,
    상기 제2 메모리 영역은, 이레이즈 동작이 수행된 횟수인 이레이즈 카운트가 기준 값 이상인 메모리 영역인 것을 특징으로 하는 스토리지 장치.
  18. 제12 항에 있어서,
    상기 컨트롤러는,
    상기 제1 메모리 영역에 대한 리클레임 동작을 수행한 후에 호스트의 요청에 따른 커맨드를 처리하고, 상기 커맨드의 처리가 완료되면 상기 제2 메모리 영역에 대한 리클레임 동작을 수행하도록 상기 비휘발성 메모리를 제어하는 것을 특징으로 하는 스토리지 장치.
  19. 제11 항에 있어서,
    상기 비휘발성 메모리는 동일한 채널을 통해 상기 컨트롤러와 통신하는 복수의 메모리 장치들을 포함하고,
    상기 복수의 메모리 장치들 각각에서 동일한 어드레스가 할당된 메모리 영역들은 각각 슈퍼 블록들로 그룹핑되고,
    상기 컨트롤러는 슈퍼 블록 단위로 리클레임 동작을 제어하는 것을 특징으로 하는 스토리지 장치.
  20. 복수의 페이지들을 포함하는 복수의 메모리 블록을 포함하는 메모리 셀 어레이; 및
    상기 복수의 메모리 블록들 각각의 단위로 리클레임 동작을 수행하기 위한 제어 신호를 생성하는 제어 로직 회로를 포함하고,
    상기 제어 로직 회로는, 상기 복수의 메모리 블록들 중 소스 블록에서 목적지 블록으로 데이터를 이동시킴으로써 상기 리클레임 동작을 수행하고,
    상기 제어 로직 회로는, 상기 소스 블록에 포함된 복수의 페이지들의 어드레스의 순서와 상이한 순서로 상기 리클레임 동작을 수행하는 것을 특징으로 하는 메모리 장치.
KR1020200057190A 2020-05-13 2020-05-13 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 KR20210138996A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200057190A KR20210138996A (ko) 2020-05-13 2020-05-13 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
EP21166940.3A EP3910464A1 (en) 2020-05-13 2021-04-06 Memory device, storage device including the same, and method of operating the storage device
US17/308,165 US11977735B2 (en) 2020-05-13 2021-05-05 Memory device, storage device including the same, and method of operating the storage device
CN202110500045.5A CN113674775A (zh) 2020-05-13 2021-05-08 存储器装置、存储装置以及存储装置的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200057190A KR20210138996A (ko) 2020-05-13 2020-05-13 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법

Publications (1)

Publication Number Publication Date
KR20210138996A true KR20210138996A (ko) 2021-11-22

Family

ID=75441713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200057190A KR20210138996A (ko) 2020-05-13 2020-05-13 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법

Country Status (4)

Country Link
US (1) US11977735B2 (ko)
EP (1) EP3910464A1 (ko)
KR (1) KR20210138996A (ko)
CN (1) CN113674775A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115454710B (zh) * 2022-11-10 2023-03-24 珠海妙存科技有限公司 闪存数据读取方法及其装置、电子设备、存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449625B1 (en) 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
US7730213B2 (en) 2000-12-18 2010-06-01 Oracle America, Inc. Object-based storage device with improved reliability and fast crash recovery
US7603532B2 (en) 2004-10-15 2009-10-13 Netapp, Inc. System and method for reclaiming unused space from a thinly provisioned data container
US7984084B2 (en) 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US8161226B2 (en) * 2005-12-27 2012-04-17 Intel Corporation Methods and apparatus to share a thread to reclaim memory space in a non-volatile memory file system
US7875088B2 (en) * 2006-02-03 2011-01-25 EaglePicher Technologies Automated tracking and storage system for use with an automated thermal battery manufacturing system
US20070233752A1 (en) 2006-03-30 2007-10-04 Kiran Bangalore Method and apparatus to reclaim nonvolatile memory space
KR20100082185A (ko) 2009-01-08 2010-07-16 삼성전자주식회사 플래시 메모리, 캐시 메모리, 그리고 제어기를 포함하는 사용자 장치
US8954435B2 (en) 2011-04-22 2015-02-10 Symantec Corporation Method and system for reclaiming storage on a shared storage device or independent of the mount state of a file system
US9251019B2 (en) 2012-05-29 2016-02-02 SanDisk Technologies, Inc. Apparatus, system and method for managing solid-state retirement
US9430376B2 (en) 2012-12-26 2016-08-30 Western Digital Technologies, Inc. Priority-based garbage collection for data storage systems
US9229644B2 (en) * 2013-11-25 2016-01-05 Sandisk Technologies Inc. Targeted copy of data relocation
KR20150140496A (ko) * 2014-06-05 2015-12-16 삼성전자주식회사 실시간 데이터 복구를 위한 리드 리클레임 방법 및 그에 따른 메모리 시스템
KR102229024B1 (ko) * 2014-12-03 2021-03-17 삼성전자주식회사 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템
KR20190075353A (ko) * 2017-12-21 2019-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11397674B1 (en) * 2019-04-03 2022-07-26 Pure Storage, Inc. Optimizing garbage collection across heterogeneous flash devices
US11256619B2 (en) * 2019-05-05 2022-02-22 Microsoft Technology Licensing, Llc Memory management for serverless databases

Also Published As

Publication number Publication date
CN113674775A (zh) 2021-11-19
EP3910464A1 (en) 2021-11-17
US11977735B2 (en) 2024-05-07
US20210357128A1 (en) 2021-11-18

Similar Documents

Publication Publication Date Title
US10310924B2 (en) Storage device and read reclaim method thereof
US10255131B2 (en) Storage device including nonvolatile memory device
KR102391499B1 (ko) 저장 장치 및 그 동작 방법
US11797202B2 (en) Storage device and method for foggy and fine programming
US9201789B1 (en) Storage device and operating method of the same
US10121543B2 (en) Storage device including a nonvolatile memory device and a controller for controlling a write operation of the nonvolatile memory device and an operating method of the storage device
CN111128280B (zh) 存储装置及其操作方法
US20220043600A1 (en) Memory controller and operating method thereof
KR20210155660A (ko) 메모리 장치 및 이의 제어 방법
US11487627B2 (en) Storage device and method of operating the same
CN111445939B (zh) 存储装置及其操作方法
KR20160014247A (ko) 메모리 장치의 독출 방법
KR102660399B1 (ko) 메모리 시스템 및 그것의 동작방법
US11373708B2 (en) Memory device and method of operating the same
US11417402B2 (en) Storage device and operating method thereof
CN114121104A (zh) 存储器设备及其操作方法
US11977735B2 (en) Memory device, storage device including the same, and method of operating the storage device
US11417399B2 (en) Memory device and method of operating the same
US11055011B2 (en) Storage device
KR20220079235A (ko) 저장 장치 및 그 동작 방법
CN113971975A (zh) 存储器装置及其操作方法
US11210223B2 (en) Storage device and operating method thereof
US11966608B2 (en) Memory controller with improved data reliability and memory system including the same
US11475966B2 (en) Memory device and method of operating the same
US20220328101A1 (en) Memory device and operating method thereof