KR102573301B1 - Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법 - Google Patents

Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법 Download PDF

Info

Publication number
KR102573301B1
KR102573301B1 KR1020160090263A KR20160090263A KR102573301B1 KR 102573301 B1 KR102573301 B1 KR 102573301B1 KR 1020160090263 A KR1020160090263 A KR 1020160090263A KR 20160090263 A KR20160090263 A KR 20160090263A KR 102573301 B1 KR102573301 B1 KR 102573301B1
Authority
KR
South Korea
Prior art keywords
data
die
cell
raid
memory system
Prior art date
Application number
KR1020160090263A
Other languages
English (en)
Other versions
KR20180008219A (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 KR1020160090263A priority Critical patent/KR102573301B1/ko
Priority to US15/442,969 priority patent/US10521303B2/en
Publication of KR20180008219A publication Critical patent/KR20180008219A/ko
Application granted granted Critical
Publication of KR102573301B1 publication Critical patent/KR102573301B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • 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/0617Improving the reliability of storage systems in relation to availability
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

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)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

RAID 리커버리를 수행하는 메모리 시스템 및 그 동작방법이 개시된다. 한다. 본 개시의 기술적 사상의 일측면에 따른 메모리 시스템의 동작 방법은, 외부로부터의 독출 요청에 따라, 제1 셀 영역으로부터 독출된 독출 단위의 데이터에 대한 ECC 페일 여부를 검출하는 단계와, 다수 개의 다른 셀 영역들로부터 독출된 데이터 및 RAID 패리티를 이용하여 RAID 리커버리를 수행함으로써, 상기 독출 단위의 데이터를 복구하여 출력하는 단계와, 상기 제1 셀 영역에 저장된 다수의 데이터들에 대해, 상기 다수 개의 다른 셀 영역들로부터 독출된 데이터 및 RAID 패리티를 이용하여 RAID 리커버리를 수행하는 단계 및 상기 복구된 셀 영역 단위의 데이터를 제2 셀 영역으로 이동시키는 단계를 구비하는 것을 특징으로 한다.

Description

RAID 리커버리를 수행하는 메모리 시스템 및 그 동작방법{Memory System performing RAID recovery and Operating Method thereof}
본 개시의 기술적 사상은 메모리 시스템에 관한 것으로서, 상세하게는 RAID 리커버리를 수행하는 메모리 시스템 및 그 동작방법에 관한 것이다.
메모리 시스템에서 데이터의 안정성을 향상하기 위한 다양한 기술들이 제안되고 있다. 일 예로서, 메모리 시스템은 RAID(Redundant Array of Inexpensive Disk)를 지원할 수 있으며, RAID 레벨에 따라 다양한 방식으로서 데이터의 안정성이 확보될 수 있다. 일 예로서, 메모리 시스템은 다수 개의 셀 영역들을 포함할 수 있으며, 셀 영역들에 분포되어 저장된 데이터 및 RAID 패리티를 이용한 RAID 리커버리를 수행함으로써 데이터의 복구가 가능하다.
RAID 리커버리 동작은 다수 개의 셀 영역들의 데이터 및 RAID 패리티를 독출하고, 이를 이용한 연산을 수행한다. 그러나, RAID 리커버리 동작에 의하여 셀 영역들의 빈번한 독출로 인해 메모리 시스템의 수명이 단축될 수 있으며, RAID 리커버리 수행을 위해 소요되는 시간이 증가되는 문제가 있다.
본 개시의 기술적 사상은 본 발명의 기술적 사상이 해결하려는 과제는, RAID 리커버리를 통해 데이터 안정성을 확보함과 함께, 데이터의 독출 속도를 향상하고 수명을 증가할 수 있는 메모리 시스템 및 그 동작방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 메모리 시스템의 동작 방법은, 외부로부터의 독출 요청에 따라, 제1 셀 영역으로부터 독출된 독출 단위의 데이터에 대한 ECC 페일 여부를 검출하는 단계와, 다수 개의 다른 셀 영역들로부터 독출된 데이터 및 RAID 패리티를 이용하여 RAID 리커버리를 수행함으로써, 상기 독출 단위의 데이터를 복구하여 출력하는 단계와, 상기 제1 셀 영역에 저장된 다수의 데이터들에 대해, 상기 다수 개의 다른 셀 영역들로부터 독출된 데이터 및 RAID 패리티를 이용하여 RAID 리커버리를 수행하는 단계 및 상기 복구된 셀 영역 단위의 데이터를 제2 셀 영역으로 이동시키는 단계를 구비하는 것을 특징으로 한다.
또한, 본 개시의 기술적 사상의 일측면에 따른 메모리 시스템의 동작 방법에 있어서, 상기 메모리 시스템은 데이터를 저장하는 M 개의 데이터 셀 영역들과 이에 대응하는 패리티를 저장하는 N 개의 패리티 셀 영역들을 포함하고(단, M은 2 이상의 정수, N은 1 이상의 정수), 제1 데이터 셀 영역의 페일을 검출하는 단계와, 제1 데이터 셀 영역에 저장된 다수의 데이터들을 다른 데이터 셀 영역들에 저장된 데이터 및 상기 패리티 셀 영역들에 저장된 패리티를 이용한 리커버리 동작을 통해 복구하는 단계 및 복구된 상기 제1 데이터 셀 영역의 데이터를 제1 패리티 셀 영역으로 이동시키는 단계를 구비하는 것을 특징으로 한다.
본 발명의 기술적 사상의 메모리 시스템 및 그 동작방법에 따르면, 셀 영역 단위의 데이터에 대한 RAID 리커버리의 수행 및 셀 영역 단위의 데이터 이동을 통해 데이터의 독출 속도를 향상할 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상의 메모리 시스템 및 그 동작방법에 따르면, RAID 리커버리의 수행 빈도를 감소함으로써 메모리 시스템의 수명을 향상할 수 있는 효과가 있다.
도 1은 본 발명의 예시적 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 2a,b,c는 도 1의 메모리 장치의 다양한 구현 예를 나타내는 블록도이다.
도 3은 복구된 데이터를 셀 영역 단위로 이동(Migration)하는 개념을 나타내는 블록도이다.
도 4는 도 1의 메모리 장치에서 셀 영역의 일 구현 예를 나타내는 구조도이다.
도 5 내지 도 7a,b,c는 RAID 이동의 다양한 예를 나타내는 블록도이다.
도 8a,b 및 도 9는 메모리 시스템이 리저브 셀 영역을 포함하지 않는 경우에서의 데이터 이동 예를 나타내는 블록도이다.
도 10은 본 발명의 예시적인 실시예에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 11a,b는 본 발명의 실시예에 따른 데이터 이동 동작이 소프트웨어 방식에 따라 수행되는 예를 나타내는 메모리 시스템의 블록도이다.
도 12는 본 발명의 변형 가능한 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 13 및 도 14는 RAID 리커버리를 수행할 셀 영역을 판단하는 일 예를 나타내는 블록도이다.
도 15 내지 도 17은 본 발명의 다양한 실시예들에 따른 메모리 시스템의 동작 방법을 나타내는 플로우차트이다.
도 18은 본 발명의 실시예에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템의 구현 예를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 발명의 예시적 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 1을 참조하면, 메모리 시스템(100)은 호스트와 통신하는 인터페이스(110), 메모리 동작의 전반을 제어하는 컨트롤러(120) 및 데이터를 저장하는 메모리 장치(130)를 포함할 수 있다. 메모리 시스템(100)은 호스트로부터의 메모리 억세스 요청에 따라 데이터(DATA)를 저장하거나 또는 데이터(DATA)를 독출할 수 있다. 또한, 메모리 시스템(100)은 호스트로부터 논리적 어드레스(ADD_L)를 수신하고, 논리적 어드레스(ADD_L)에 대응하는 물리적 영역의 데이터(DATA)를 억세스할 수 있다. 호스트로부터의 요청이 독출 요청(Req_RD)에 해당할 때, 메모리 시스템(100)은 요청에 대응하는 독출 데이터(DATA_Req)를 호스트로 출력할 수 있다.
메모리 시스템(100)은 인터페이스(110)를 통하여 하나 이상의 호스트들과 통신하고, 호스트들로부터의 요청에 따른 데이터 억세스 동작을 수행할 수 있다. 일 실시예에 따라, 메모리 시스템(100)은 USB(Universal Serial Bus), MMC(MultiMediaCard), 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) 등과 같은 다양한 인터페이스를 통해 호스트와 통신할 수 있다.
메모리 장치(130)는 하나 이상의 저장 매체들을 포함할 수 있다. 일 예로서, 메모리 장치(130)는 하나 이상의 하드 디스크 드라이브(HDD)나 솔리드 스테이트 드라이브(SSD) 등을 포함할 수 있다. 또는, 메모리 장치(130)는 다수 개의 메모리 칩들을 포함할 수 있다. 일 예로서, 메모리 장치(130)는 데이터를 불휘발성하게 저장하는 다수 개의 메모리 칩들을 포함할 수 있으며, 예컨대, 메모리 장치(130)는 하나 이상의 플래시 메모리 칩들을 포함할 수 있다. 또한, 각각의 메모리 칩에는 다수 개의 다이(DIE)들이 적층될 수 있다.
변형 가능한 실시예로서, 메모리 시스템(100)이 하나의 메모리 칩으로 구현되는 경우, 하나의 메모리 칩에 컨트롤러(120) 및 메모리 장치(130)가 구비될 수 있으며, 메모리 장치(130)에는 다수 개의 다이(DIE)들이 적층될 수 있다.
한편, 메모리 장치(130)에 구비되는 저장 매체들은 다수 개의 저장 공간들로서 셀 영역들(Region 1 ~ Region N)로 분류될 수 있다. 각각의 셀 영역은 다양하게 정의될 수 있으며, 일 예로서, 상기 셀 영역의 사이즈는 다양하게 정의될 수 있다.
도 2a,b,c는 도 1의 메모리 장치(130)의 다양한 구현 예를 나타내는 블록도이다.
도 2a를 참조하면, 메모리 장치(130)는 다수 개의 메모리 칩들(Chip 1 ~ Chip A)을 포함할 수 있다. 일 실시예에 따라, 메모리 칩들(Chip 1 ~ Chip A) 각각은 다양한 종류의 메모리 셀들을 포함할 수 있으며, 일 예로서 불휘발성 메모리 셀들로서 플래시 메모리 셀들을 포함할 수 있다. 도 1에 도시된 실시예에서, 메모리 장치(130)의 셀 영역들(Region 1 ~ Region N) 각각은 메모리 칩에 해당할 수 있다. 이 때, 메모리 칩들(Chip 1 ~ Chip A)의 개수는 전술한 셀 영역들(Region 1 ~ Region N)의 개수에 해당할 수 있다.
또한, 메모리 칩들(Chip 1 ~ Chip A) 각각은 다수 개의 다이들(DIE 1 ~ DIE B)을 포함할 수 있다. 예컨대, 메모리 칩들(Chip 1 ~ Chip A) 각각은 적층 구조의 다수 개의 다이들(DIE 1 ~ DIE B)을 포함하는 반도체 패키지에 해당할 수 있다. 도 1에 도시된 실시예에서, 메모리 장치(130)의 셀 영역들(Region 1 ~ Region N) 각각은 다이(DIE)에 해당할 수 있다. 이 때, 메모리 칩들(Chip 1 ~ Chip A) 내에 구비되는 다이(DIE)들 전체의 개수가 전술한 셀 영역들(Region 1 ~ Region N)의 개수에 해당할 수 있다.
한편, 도 2b는 하나의 다이(DIE)에 구비되는 저장 공간의 일 예를 나타낸다. 제1 다이(DIE 1)를 예로 들면, 제1 다이(DIE 1)는 다수 개의 플레인(Plane)들을 포함할 수 있으며, 도 2b의 예에서는 제1 다이(DIE 1)가 제1 및 제2 플레인들(Plane 1, Plane 2)을 포함하는 예가 도시된다. 또한, 제1 및 제2 플레인들(Plane 1, Plane 2) 각각은 다수 개의 셀 블록들(BLK 1 ~ BLK C)을 포함할 수 있다.
전술한 플레인(Plane)은 다양하게 정의될 수 있다. 예컨대, 기록될 데이터 및 독출될 데이터를 임시적으로 저장하는 페이지 버퍼(PB1, PB2)가 메모리 장치(130)에 구비될 수 있으며, 페이지 버퍼는 플레인(Plane) 단위로 배치될 수 있다. 즉, 제1 및 제2 플레인들(Plane 1, Plane 2)의 데이터는 함께 독출되어 페이지 버퍼들(PB1, PB2)에 함께 저장될 수 있으며, 또한 기록될 데이터는 페이지 버퍼(PB1, PB2)들 각각을 통해 제1 및 제2 플레인들(Plane 1, Plane 2)로 함께 제공될 수 있다. 도 1에 도시된 실시예에서, 메모리 장치(130)의 셀 영역들(Region 1 ~ Region N) 각각은 플레인(Plane)에 해당할 수 있다.
또한, 셀 블록들(BLK 1 ~ BLK C) 각각은 다수 개의 페이지들(Page 1 ~ Page D)을 포함할 수 있다. 페이지들(Page 1 ~ Page D) 각각은 하나의 셀 블록에서 데이터의 기록 또는 독출 단위에 해당할 수 있다. 상기와 같은 실시예들에 따라, 셀 영역들(Region 1 ~ Region N) 각각은 데이터의 기록 또는 독출 단위보다 더 큰 사이즈를 가질 수 있다. 일 예로서, 셀 영역들(Region 1 ~ Region N) 각각은 다수 개의 페이지들을 포함하는 사이즈를 가질 수 있다.
한편, 도 2c는 어느 하나의 페이지에 저장되는 데이터의 구조를 나타낸다. 도 2c를 참조하면, 하나의 페이지(Page)에는 하나 이상의 ECC 단위(또는, ECC 청크)의 데이터가 저장될 수 있다. 일 예로서, 하나의 ECC 청크는 유저 데이터, 스페어 데이터 및 ECC 패리티를 포함할 수 있다. 상기 스페어 데이터는 유저 데이터의 속성을 나타내는 메타 데이터 등을 포함할 수 있으며, 상기 ECC 패리티는 ECC 청크에 포함된 데이터에 발생된 에러를 정정하는 데 이용될 수 있다. 일 예로서, 페이지(Page)의 독출 과정에서 데이터의 하나 이상의 비트에 발생된 에러는 ECC 패리티는 이용한 에러 정정 동작을 통해 정정될 수 있다.
다시 도 1을 참조하면, 메모리 시스템(100)에는 데이터 안정성을 확보하기 위하여 데이터 리던던시(Redundancy) 설계가 적용될 수 있다. 데이터 리던던시(Redundancy) 설계는 일부의 저장 매체에 페일이 발생되더라도 다른 저장 매체에 저장된 정보를 통해 데이터를 복구할 수 있는 설계로 정의될 수 있다. 상기 데이터 리던던시(Redundancy) 설계의 일 예로서 RAID(Redundant Array of Inexpensive Disks)가 있으며, RAID의 레벨에 따라 원본 데이터에 대응하는 복사 데이터를 별개의 저장 매체에 저장하거나, 원본 데이터에 대응하는 패리티를 별개의 저장 매체에 저장하는 방식을 이용하여 데이터 복구 동작을 수행할 수 있다.
다수의 데이터들과 하나 이상의 RAID 패리티들이 하나의 RAID 스트라이프를 구성할 수 있다. 일 예로서, 각각의 RAID 스트라이프는, 다수의 페이지들에 저장되는 데이터와, 이에 대응하여 하나 이상의 페이지에 저장되는 RAID 패리티를 포함할 수 있다. 이에 따라, 각각의 RAID 스트라이프는 페이지의 정수 배 단위의 사이즈를 가질 수 있다. 또한, 다수 개의 RAID 스트라이프들이 메모리 장치(130)에 저장될 수 있다.
이하에서는, 독출 단위로서의 데이터가 페이지 사이즈에 대응하고, 하나의 RAID 스트라이프에 구비되는 데이터들 및 RAID 패리티 각각이 페이지 사이즈를 가지는 것으로 가정될 것이나, 본 발명의 실시예는 이에 국한될 필요가 없다. 일 예로서, RAID 스트라이프를 구성하는 데이터 및 RAID 패리티 각각은 페이지의 일부에 해당하는 사이즈를 가질 수 있으며, 또는 두 개 이상의 페이지들에 해당하는 사이즈를 가져도 무방할 것이다.
RAID 스트라이프를 구성하는 다수의 데이터들과 하나 이상의 RAID 패리티들은 상기 셀 영역들(Region 1 ~ Region N) 중 적어도 일부에 분포되어 저장될 수 있다. 일 저장 예로서, 각각의 RAID 스트라이프가 a 개의 데이터와 b 개의 RAID 패리티들을 포함할 때, a 개의 데이터는 셀 영역들(Region 1 ~ Region N) 중 a 개의 셀 영역들(또는, 데이터 셀 영역들)에 분포되어 저장되고, b 개의 RAID 패리티들은 나머지 셀 영역들 중 b 개의 셀 영역들(또는, 패리티 셀 영역들)에 분포되어 저장될 수 있다.
어느 하나의 셀 영역(예컨대, 제2 셀 영역)이 페일됨에 따라 데이터가 정상적으로 독출될 수 없는 경우, RAID 스트라이프를 구성하는 나머지 셀 영역들에 저장된 데이터와 RAID 패리티를 이용한 RAID 리커버리가 수행될 수 있다. RAID 리커버리는 상기 독출된 데이터와 RAID 패리티를 이용한 연산을 기반으로 하여 수행될 수 있으며, RAID 리커버리 수행에 따라 제2 셀 영역(Region 2)의 데이터가 복구되어 출력될 수 있다.
한편, 본 발명의 일 실시예에 따른 데이터 이동(Migration) 동작의 구체적인 예를 도 1 및 도 3을 참조하여 설명하면 다음과 같다. 도 3은 셀 영역 단위로 RAID 리커버리를 통해 데이터를 복구하고, 복구된 데이터를 셀 영역 단위로 이동(Migration)하는 개념을 나타내는 블록도이다. 본 실시예에서, 상기 복구된 데이터의 이동은 RAID 리커버리를 통해 복구된 데이터의 이동에 해당하므로 RAID 이동(Migration)으로 지칭될 수 있다.
메모리 장치(130)는 하나 이상의 리저브 셀 영역들을 포함할 수 있다. 일 예로서, 셀 영역들(Region 1 ~ Region N) 중 제1 내지 (N-2) 셀 영역들(Region 1 ~ Region (N-2))은 RAID 스트라이프를 구성하는 데이터 및 RAID 패리티를 저장하고, 나머지 2 개의 셀 영역들(Region (N-1) ~ Region N)은 리저브 셀 영역들에 해당하는 경우가 가정된다. 또한, RAID 스트라이프는 (N-1) 개의 데이터와 하나의 RAID 패리티를 포함할 수 있으며, RAID 패리티는 (N-2) 셀 영역(Region (N-2))에 저장될 수 있다. 제2 셀 영역(Region 2)에 페일이 발생될 때의 데이터 이동 동작의 일 예를 설명하면 다음과 같다.
제2 셀 영역(Region 2)에 대한 독출 요청이 수신되면, 제2 셀 영역(Region 2)으로부터 독출 단위(예컨대, 페이지)의 데이터와 이에 대응하는 ECC 패리티가 독출되고, ECC 패리티를 이용한 에러 정정 동작이 수행된다. 제2 셀 영역(Region 2)이 페일됨에 따라, 제2 셀 영역(Region 2)으로부터 독출된 데이터에 대한 에러 정정 동작이 실패하고, 이에 따라 상기 제2 셀 영역(Region 2)에 저장된 데이터를 복구하기 위한 RAID 리커버리가 수행될 수 있다. 일 예로서, 상기 독출 요청된 데이터와 함께 RAID 스트라이프를 구성하는 다른 데이터 및 RAID 패리티가 제1, 제3 내지 제(N-2) 셀 영역들(Region 1, Region 3 ~ Region (N-2))로부터 독출된다. 상기 독출된 데이터 및 RAID 패리티를 이용한 RAID 리커버리를 통해, 호스트로부터 독출 요청된 데이터가 복구되고, 복구된 데이터가 호스트로부터의 요청에 대한 응답(Response)으로서 출력될 수 있다.
이와 함께, ECC 페일이 발생된 페이지를 포함하는 제2 셀 영역(Region 2)에 대해 셀 영역 단위의 RAID 리커버리가 수행된다. 일 예로서, 제2 셀 영역(Region 2)에 포함되는 다수의 페이지들 각각에 대해 전술한 RAID 리커버리를 수행함으로써, 제2 셀 영역(Region 2)의 다수의 데이터들이 복구될 수 있다. 복구된 제2 셀 영역(Region 2)의 데이터는 리저브 셀 영역들(Region (N-1) ~ Region N) 중 적어도 하나로 이동(Migration)될 수 있다. 일 예로서, 복구된 데이터의 이동은, 복구된 제2 셀 영역(Region 2)의 데이터를 어느 하나의 리저브 셀 영역(예컨대, Region (N-1))에 저장하는 동작을 포함할 수 있다. 또한, 제2 셀 영역(Region 2)의 데이터가 리저브 셀 영역(예컨대, Region (N-1))로 이동됨에 따라, 메모리 시스템(100) 내에서 제2 셀 영역(Region 2)의 데이터의 저장 위치를 나타내는 맵핑 정보가 변경될 수 있다.
전술한 실시예에 따르면, 독출 단위의 데이터에 대한 RAID 리커버리를 통해 복구된 데이터를 호스트로 출력함과 함께, 셀 영역 단위에 대한 RAID 리커버리를 통해 복구된 데이터를 페일이 발생되지 않은 다른 셀 영역으로 이동시킨다. 이에 따라, 호스트로부터의 요청에 응답하여 정상적으로 복구된 데이터가 바로 호스트로 제공될 수 있으며, 이후 상기 페일된 셀 영역에 대한 독출 동작이 재차 요청되더라도, RAID 리커버리를 수행함이 없이 정상적인 데이터가 독출될 수 있다. 또한, RAID 리커버리를 위해 다수의 셀 영역들의 데이터 및 패리티가 빈번하게 독출될 필요가 없으므로, 메모리 시스템(100)의 수명 단축이 방지될 수 있다.
일 실시예에 따라, 메모리 시스템(100)은 셀 영역 단위에 대한 RAID 리커버리의 수행 및 데이터 이동 타이밍을 판단할 수 있다. 일 예로서, 메모리 시스템(100)은 현재 대기중인 작업 로드(Work Load)를 판단하고, 판단 결과에 따라 RAID 리커버리의 수행 및 데이터 이동 타이밍을 제어할 수 있다.
또한, 일 실시예에 따라, 메모리 시스템(100)은 셀 영역 단위에 대한 RAID 리커버리의 수행 필요성을 판단할 수 있다. 일 예로서, 특정 셀 영역의 어느 하나의 페이지에 ECC 패리티를 이용한 에러 정정이 불가능한 ECC 페일이 발생되는 경우, 셀 영역 단위의 RAID 리커버리의 수행이 필요한 것으로 판단할 수 있다. 또는, 다른 실시예로서, 메모리 시스템(100)은 특정 셀 영역에 소정 개수 이상의 페이지들에 ECC 페일이 발생되는 지를 판단하고, ECC 페일이 발생된 페이지들의 개수가 임계값을 초과하는 지 판단한 결과에 따라 셀 영역 단위의 RAID 리커버리의 수행이 필요한 것으로 판단할 수 있다.
다시 도 1을 참조하면, 메모리 컨트롤러(120)는 에러 정정 회로(ECC, 121), RAID 리커버리 회로(122) 및 이동 제어부(123)를 포함할 수 있다. 에러 정정 회로(ECC, 121)는 에러 정정 단위의 데이터에 대해 ECC 패리티를 이용한 에러 정정 동작을 수행할 수 있다. RAID 리커버리 회로(122)는 RAID 스트라이프를 구성하는 데이터 및 RAID 패리티를 이용하여 RAID 리커버리를 수행할 수 있다. 일 예로서, RAID 리커버리 회로(122)는 데이터 및 RAID 패리티를 이용한 연산을 기반으로 하여 RAID 리커버리를 수행할 수 있다.
이동 제어부(123)는 RAID 리커버리를 통해 복구된 데이터를 이동하는 동작을 제어할 수 있다. 일 예로서, 메모리 시스템(100) 내에 리저브 셀 영역이 구비되는 경우, 이동 제어부(123)는 복구된 데이터가 리저브 셀 영역에 저장되도록 이동 동작을 제어할 수 있다. 변형 가능한 실시예로서, 메모리 시스템(100)이 리저브 셀 영역을 포함하지 않거나 리저브 셀 영역이 모두 이용된 경우, 이동 제어부(123)는 복구된 데이터가 페일된 셀 영역 이외의 다른 셀 영역에 저장되도록 이동 동작을 제어할 수 있다. 예컨대, 페일된 셀 영역의 복구된 데이터는 RAID 패리티를 저장하는 셀 영역으로 이동될 수 있으며, 이 때 이동 대상의 셀 영역(예컨대, 타겟 셀 영역)에 저장된 RAID 패리티는 삭제될 수 있다. 또는, 메모리 시스템(100)의 각각의 셀 영역은 실제 유저 용량에 상응하는 데이터를 저장하기 위한 유저 영역 이외에 오버 프로비저닝(Over-Provisioning, OP) 영역을 더 포함할 수 있다. 이 때, 이동 제어부(123)는 복구된 데이터가 페일된 셀 영역 이외의 다른 셀 영역의 OP 영역에 저장되도록 이동 동작을 제어할 수 있다.
전술한 실시예에서는, 메모리 컨트롤러(120)에 구비되는 ECC 기능, RAID 리커버리 기능 및 데이터 이동 기능이 하드웨어적으로 구현되는 예가 도시되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 일 예로서, 메모리 컨트롤러(120)는 프로세싱 유닛과 소프트웨어를 저장하는 메모리(예컨대, 워킹 메모리)를 포함할 수 있으며, 워킹 메모리에 저장되는 소프트웨어는 전술한 ECC 기능, RAID 리커버리 기능 및 데이터 이동 기능을 위한 프로그램들을 포함할 수 있다. 즉, 프로세싱 유닛이 워킹 메모리에 저장된 프로그램들을 실행함으로써, 전술한 실시예에 따른 RAID 리커버리 기능 및 데이터 이동 기능이 수행될 수 있을 것이다.
도 4는 도 1의 메모리 장치에서 셀 영역의 일 구현 예를 나타내는 구조도이다. 메모리 장치(130)가 플래시 메모리 칩을 구비하는 경우, 도 4는 플래시 메모리 칩의 하나의 셀 블록이 3D 형태로 구현되는 예를 나타낸다.
도 4를 참조하면, 셀 블록(BLK)은 기판(SUB)에 대해 수직 방향으로 형성되어 있다. 도 4에서는, 셀 블록(BLK)이 2 개의 선택 라인들(GSL, SSL), 8 개의 워드 라인들(WL1 ~ WL8), 그리고 3 개의 비트 라인들(BL1 ~ BL3)을 포함하는 것으로 도시되어 있으나, 실제로는 이것들보다 더 많거나 적을 수 있다.
기판(SUB)은 제1 도전형(예를 들어, p 타입)을 가지며, 기판(SUB) 상에 제1 방향(예를 들어, Y 방향)을 따라 신장되고, 제2 도전형(예를 들어, n 타입)의 불순물들이 도핑된 공통 소스 라인(CSL)이 제공된다. 인접한 두 공통 소스 라인(CSL) 사이의 기판(SUB)의 영역 상에, 제1 방향을 따라 신장되는 복수의 절연막들(IL)이 제3 방향(예를 들어, Z 방향)을 따라 순차적으로 제공되며, 복수의 절연막들(IL)은 제3 방향을 따라 특정 거리만큼 이격된다. 예를 들어, 복수의 절연막들(IL)은 실리콘 산화물과 같은 절연 물질을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 기판(SUB)의 영역 상에, 제1 방향을 따라 순차적으로 배치되며, 제3 방향을 따라 복수의 절연막들(IL)을 관통하는 복수의 필라들(pillars)(P)이 제공된다. 예를 들어, 복수의 필라들(P)은 복수의 절연막들(IL)을 관통하여 기판(SUB)과 컨택할 것이다. 구체적으로, 각 필라(P)의 표면층(surface layer)(S)은 제1 타입을 갖는 실리콘 물질을 포함할 수 있고, 채널 영역으로 기능할 수 있다. 한편, 각 필라(P)의 내부층(I)은 실리콘 산화물과 같은 절연 물질 또는 에어 갭(air gap)을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 절연막들(IL), 필라들(P) 및 기판(SUB)의 노출된 표면을 따라 전하 저장층(charge storage layer, CS)이 제공된다. 전하 저장층(CS)은 게이트 절연층(또는 터널링 절연층이라고 지칭함), 전하 트랩층 및 블로킹 절연층을 포함할 수 있다. 예를 들어, 전하 저장층(CS)은 ONO(oxide-nitride-oxide) 구조를 가질 수 있다. 또한, 인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 전하 저장층(CS)의 노출된 표면 상에, 선택 라인들(GSL, SSL) 및 워드 라인들(WL1 ~ WL8)과 같은 게이트 전극(GE)이 제공된다.
복수의 필라들(P) 상에는 드레인들 또는 드레인 컨택들(DR)이 각각 제공된다. 예를 들어, 드레인들 또는 드레인 컨택들(DR)은 제2 도전형을 갖는 불순물들이 도핑된 실리콘 물질을 포함할 수 있다. 드레인들(DR) 상에, 제2 방향(예를 들어, X 방향)으로 신장되고 제1 방향을 따라 특정 거리만큼 이격되어 배치된 비트 라인들(BL1 ~ BL3)이 제공된다.
도 5 내지 도 7a,b,c는 RAID 이동의 다양한 예를 나타내는 블록도이다. 일 실시예에 따라, 도 5 내지 도 7a,b,c의 메모리 시스템은 리저브 셀 영역을 포함하는 것으로 가정된다.
도 5를 참조하면, 전술한 셀 영역이 메모리 칩에 해당하고, 메모리 칩 단위로 데이터가 이용되는 예가 도시된다. 예컨대, RAID 스트라이프를 구성하는 데이터(Data) 및 RAID 패리티(Parity)가 제1 내지 제8 메모리 칩들(Chip 1 ~ Chip 8)에 분포되어 저장될 수 있으며, 일 예로서 제1 내지 제6 메모리 칩들(Chip 1 ~ Chip 6)은 데이터(Data)를 저장하고, 제7 및 제8 메모리 칩들(Chip 7, Chip 8)은 RAID 패리티(Parity)를 저장할 수 있다. 또한, 메모리 시스템은 리저브 메모리 칩으로 이용되는 하나 이상의 메모리 칩들을 더 포함할 수 있으며, 일 예로서 제1 내지 제P 리저브 메모리 칩들(Chip R1 ~ Chip RP)이 도 5에 예시된다.
어느 하나의 메모리 칩(예컨대, 제2 메모리 칩(Chip 2))이 페일된 것으로 가정할 때, 제2 메모리 칩(Chip 2)의 데이터는 그 내부에 저장된 ECC 패리티를 이용한 에러 정정이 불가능하다. 이에 따라, 호스트로부터 제2 메모리 칩(Chip 2)에 저장된 데이터의 독출 요청이 수신되고, ECC 패리티를 이용한 에러 정정이 불가능함이 판단됨에 따라, 다른 메모리 칩들(예컨대, 제1, 제3 내지 제8 메모리 칩들)로부터 RAID 스트라이프를 구성하는 데이터(Data)와 RAID 패리티(Parity)가 독출된다. 또한, 독출된 데이터(Data) 및 RAID 패리티(Parity)를 이용한 RAID 리커버리를 통해 호스트로부터 독출이 요청된 독출 단위의 데이터가 복구될 수 있다. 또한, 호스트로부터의 독출 요청에 응답하여 상기 복구된 데이터가 호스트로 제공될 수 있다.
또한, 본 발명의 일 실시예에 따라, 페일이 발생된 제2 메모리 칩(Chip 2) 단위로 RAID 리커버리가 수행되고, 복구된 제2 메모리 칩(Chip 2)의 데이터는 하나 이상의 리저브 메모리 칩으로 이동될 수 있다. 일 예로서, 호스트로부터의 요청과는 무관하게 제2 메모리 칩(Chip 2)에 구비되는 다수의 페이지들의 데이터들이 RAID 리커버리를 통해 순차적으로 복구되고, 복구된 다수의 페이지들의 데이터가 순차적으로 리저브 메모리 칩으로 이동될 수 있다. 도 5에는 복구된 제2 메모리 칩(Chip 2)의 데이터가 제1 리저브 메모리 칩(Chip R1)으로 이동되는 예가 도시된다. 이후, 호스트로부터 제2 메모리 칩(Chip 2)에 대한 독출 요청이 수신되면, 메모리 시스템은 제1 리저브 메모리 칩(Chip R1)에 저장된 데이터를 독출하여 호스트로 제공할 수 있다.
한편, 도 6a,b는 다이(DIE) 단위의 데이터 이동(Migration) 예를 나타낸다. 도 6a,b의 예에서, 전술한 셀 영역은 다이(DIE)에 해당할 수 있다.
도 6a를 참조하면, RAID 스트라이프를 구성하는 데이터(Data) 및 RAID 패리티(Parity)가 제1 내지 제8 메모리 칩들(Chip 1 ~ Chip 8)에 분포되어 저장될 수 있다. 일 예로서, 제1 내지 제8 메모리 칩들(Chip 1 ~ Chip 8) 각각은 다수 개의 다이(DIE)들을 포함할 수 있으며, RAID 스트라이프를 구성하는 데이터(Data) 및 RAID 패리티(Parity)는 제1 내지 제8 메모리 칩들(Chip 1 ~ Chip 8) 각각의 다이(예컨대, 제1 다이(DIE 1))에 분포되어 저장될 수 있다. 제1 메모리 칩(Chip 1)의 제1 다이(DIE 1)가 페일됨에 따라, 제1 다이(DIE 1)에 저장된 데이터(Data)가 ECC 패리티에 의해 에러 정정이 불가능한 경우가 가정된다.
제1 메모리 칩(Chip 1)의 제1 다이(DIE 1)가 페일됨에 따라, 다이(DIE) 단위로 RAID 리커버리가 수행될 수 있다. 일 예로서, 제2 내지 제8 메모리 칩들(Chip 2 ~ Chip 8)의 제1 다이(DIE 1)로부터 데이터(Data) 및 RAID 패리티(Parity)가 독출되고, RAID 리커버리를 통해 제1 메모리 칩(Chip 1)의 제1 다이(DIE 1)의 다수의 페이지들의 데이터가 복구될 수 있다. 복구된 제1 메모리 칩(Chip 1)의 제1 다이(DIE 1)의 데이터는 리저브 메모리 칩의 적어도 하나의 다이(DIE)로 이동될 수 있다. 일 예로서, 도 6a에는 복구된 제1 메모리 칩(Chip 1)의 제1 다이(DIE 1)의 데이터가 제1 리저브 메모리 칩(Chip R1)의 제1 다이(DIE 1)로 이동되는 예가 도시된다. 이후, 호스트로부터 제1 메모리 칩(Chip 1)의 제1 다이(DIE 1)에 대한 독출 요청이 수신되면, 메모리 시스템은 제1 리저브 메모리 칩(Chip R1)의 제1 다이(DIE 1)에 저장된 데이터를 독출하여 호스트로 제공할 수 있다.
한편, 도 6b는 별도의 리저브 메모리 칩이 메모리 시스템에 구비되지 않는 경우에서, 다이 단위의 데이터 이동 동작을 수행하는 예가 도시된다.
도 6b를 참조하면, 메모리 시스템은 제1 내지 제8 메모리 칩들(Chip 1 ~ Chip 8)을 구비할 수 있으며, 제1 내지 제8 메모리 칩들(Chip 1 ~ Chip 8) 각각은 다수 개의 다이들을 포함할 수 있다. 또한, 각각의 메모리 칩에 구비되는 다수의 다이들 중 적어도 하나의 다이는 리저브 셀 영역으로 이용될 수 있다. 도 6b의 예에서는, 제1 내지 제8 메모리 칩들(Chip 1 ~ Chip 8) 각각이 B 개의 다이들(DIE 1 ~ DIE B)을 포함하고, 제B 다이(DIE B)가 리저브 셀 영역(또는, 리저브 다이)로 이용되는 예가 도시된다.
전술한 실시예에서와 유사하게, RAID 스트라이프를 구성하는 데이터(Data) 및 RAID 패리티(Parity)는 제1 내지 제8 메모리 칩들(Chip 1 ~ Chip 8) 각각의 다이(예컨대, 제1 다이(DIE 1))에 분포되어 저장되고, 제1 메모리 칩(Chip 1)의 제1 다이(DIE 1)가 페일되는 것으로 가정한다.
제1 메모리 칩(Chip 1)의 제1 다이(DIE 1)가 페일됨에 따라 제2 내지 제8 메모리 칩들(Chip 2 ~ Chip 8)의 제1 다이(DIE 1)에서 독출된 데이터(Data) 및 RAID 패리티(Parity)를 이용하여 RAID 리커버리가 수행되고, 이에 따라 제1 메모리 칩(Chip 1)의 제1 다이(DIE 1)의 다수의 페이지들의 데이터가 복구될 수 있다. 또한, 복구된 제1 메모리 칩(Chip 1)의 제1 다이(DIE 1)의 데이터는 제1 내지 제8 메모리 칩들(Chip 1 ~ Chip 8) 중 적어도 하나의 메모리 칩의 리저브 다이로 이동될 수 있다.
도 6b의 예에서는, 복구된 제1 메모리 칩(Chip 1)의 제1 다이(DIE 1)의 데이터가 동일한 메모리 칩(예컨대, 제1 메모리 칩(Chip 1))의 제B 다이(DIE B)로 이동되는 예가 도시된다. 이에 따라, 제1 메모리 칩(Chip 1)의 제B 다이(DIE B)와 제2 내지 제8 메모리 칩들(Chip 2 ~ Chip 8)의 제1 다이(DIE 1)에 저장된 데이터(Data) 및 RAID 패리티(Parity)가 RAID 스트라이프를 구성할 수 있다. 이후, 호스트로부터 제1 메모리 칩(Chip 1)의 제1 다이(DIE 1)에 대한 독출 요청이 수신되면, 메모리 시스템은 제1 메모리 칩(Chip 1)의 제B 다이(DIE B)에 저장된 데이터를 독출하여 호스트로 제공할 수 있다.
도 6b의 예에서는, RAID 리커버리를 통해 복구된 다이(DIE B)의 데이터가 동일한 메모리 칩의 리저브 다이로 이동되는 예가 도시되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 예컨대, RAID 리커버리를 통해 복구된 다이(DIE B)의 데이터는 다른 메모리 칩의 리저브 다이로 이동되어도 무방하다.
한편, 도 7a,b,c는 플레인(Plane) 단위의 데이터 이동(Migration) 예를 나타낸다. 도 7a,b,c의 예에서, 전술한 셀 영역은 플레인(Plane)에 해당할 수 있다. 도 7a,b,c에 도시된 실시예들을 설명함에 있어서, 전술한 실시예에서와 동일 또는 유사한 동작들에 대해서는 자세한 설명이 생략된다.
도 7a를 참조하면, 제1 내지 제8 메모리 칩들(Chip 1 ~ Chip 8) 각각은 다수 개의 플레인(Plane)들을 포함할 수 있으며, RAID 스트라이프를 구성하는 데이터(Data) 및 RAID 패리티(Parity)는 제1 내지 제8 메모리 칩들(Chip 1 ~ Chip 8) 각각의 플레인에 분포되어 저장될 수 있다. 제2 메모리 칩(Chip 2)의 플레인(Plane)이 페일된 것으로 가정된다.
전술한 실시예에서와 유사하게, RAID 스트라이프를 구성하는 데이터(Data) 및 RAID 패리티(Parity)를 이용하여 플레인(Plane) 단위로 RAID 리커버리가 수행될 수 있다. RAID 리커버리를 통해 제2 메모리 칩(Chip 2)의 플레인(Plane)의 다수의 페이지들의 데이터가 복구되고, 복구된 데이터는 리저브 메모리 칩의 적어도 하나의 플레인(Plane)으로 이동될 수 있다. 일 예로서, 도 7a에는 복구된 제2 메모리 칩(Chip 2)의 플레인(Plane)의 데이터가 제1 리저브 메모리 칩(Chip R1)의 플레인(Plane)으로 이동되는 예가 도시된다.
한편, 도 7b는 별도의 리저브 메모리 칩이 메모리 시스템에 구비되지 않는 경우에서, 플레인(Plane) 단위의 데이터 이동 동작을 수행하는 예가 도시된다. 일 예로서, 제1 내지 제8 메모리 칩들(Chip 1 ~ Chip 8) 각각은 B 개의 다이들을 포함하고, 제B 다이(DIE B)가 리저브 셀 영역(또는, 리저브 다이)으로 이용되는 예가 도시된다. 또한, 도 7b에서는 설명의 편의상 플레인(Plane) 단위의 페일이 발생된 제2 메모리 칩(Chip 2) 만이 도시된다.
도 7b를 참조하면, 제2 메모리 칩(Chip 2)에서 RAID 스트라이프를 구성하는 데이터를 저장하는 제2 플레인(Plane 2)에 페일이 발생될 수 있다. 전술한 실시예들에 따라, 플레인(Plane) 단위의 RAID 리커버리가 수행됨에 따라 제2 메모리 칩(Chip 2)의 제2 플레인(Plane 2)의 데이터가 복구될 수 있다. 복구된 데이터는 하나 이상의 리저브 셀 영역들(예컨대, 리저브 다이들)에 이동될 수 있으며, 일 예로서 도 7b에 도시된 바와 같이 제2 메모리 칩(Chip 2)의 리저브 다이(Reserved DIE) 내의 플레인(Plane)으로 이동될 수 있다.
한편, 도 7c는 별도의 리저브 메모리 칩이나 리저브 다이가 메모리 시스템에 구비되지 않는 경우에서, 플레인(Plane) 단위의 데이터 이동 동작을 수행하는 예가 도시된다. 일 예로서, 제1 내지 제8 메모리 칩들(Chip 1 ~ Chip 8) 각각은 B 개의 다이들을 포함하고, 각각의 다이(DIE)는 다수 개의 플레인들을 포함하며, 하나 이상의 플레인들이 리저브 셀 영역(또는, 리저브 플레인)으로 이용되는 예가 도시된다. 또한, 도 7c에서는 설명의 편의상 어느 하나의 메모리 칩 내에서 플레인(Plane) 단위의 페일이 발생된 제1 다이(DIE 1) 만이 도시된다.
페일이 발생된 플레인(예컨대, 제2 플레인(Plane 2))은 전술한 실시예들에 따라 RAID 리커버리를 통해 그 데이터가 복구될 수 있다. 또한, 복구된 제2 플레인(Plane 2)의 데이터는 동일한 다이 내에 위치하는 다른 하나 이상의 리저브 플레인들에 이동될 수 있다. 예컨대, 도 7c에 도시된 바와 같이, 제1 다이(DIE 1)의 제2 플레인(Plane 2)이 페일된 경우, 복구된 제2 플레인(Plane 2)의 데이터는 동일한 제1 다이(DIE 1) 내의 다른 리저브 플레인으로 이동될 수 있다.
한편, 도 7c에서는 페일이 발생된 플레인(Plane 2)의 데이터가 동일한 메모리 칩 및 동일한 다이 내의 리저브 플레인으로 이동되는 예가 도시되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 일 예로서, 복구된 플레인(Plane 2)의 데이터는 다른 다이의 리저브 플레인으로 이동되어도 무방하다. 또한, 복구된 플레인(Plane 2)의 데이터는 다른 메모리 칩에 구비되는 플레인으로 이동되어도 무방하다.
전술한 실시예에 따라 메모리 시스템이 하나 이상의 리저브 셀 영역을 포함하고, RAID 리커버리를 통해 복구된 데이터를 리저브 셀 영역으로 이동하는 경우, RAID 스트라이프에서 데이터 대비 RAID 패리티의 비율이 유지될 수 있다. 예컨대, RAID 패리티의 비율이 클수록 에러 정정 능력이 향상될 수 있으며, 전술한 실시예에서와 같이 리저브 셀 영역을 이용한 데이터 이동에 따르면 RAID 패리티의 비율을 유지함으로써 에러 정정 능력이 저하되는 것이 방지될 수 있다.
도 8a,b 및 도 9는 메모리 시스템이 리저브 셀 영역을 포함하지 않는 경우에서의 데이터 이동 예를 나타내는 블록도이다. 이하의 실시예에서는, 설명의 편의상 다이(DIE) 단위의 RAID 리커버리 및 RAID 이동 예가 설명될 것이나, 본 발명의 실시예는 이에 국한될 필요가 없이 전술한 실시예들에 따라 메모리 칩 단위 또는 플레인 단위에도 적용이 가능할 것이다.
도 8a를 참조하면, RAID 스트라이프를 구성하는 데이터(Data)와 RAID 패리티(Parity)는 다수의 다이들(예컨대, 제1 내지 제8 다이들(DIE 1 ~ DIE 8))에 분포되어 저장되며, 일 예로서 데이터(Data)는 제1 내지 제6 다이들(DIE 1 ~ DIE 6)에 저장되고 RAID 패리티(Parity)는 제7 및 제8 다이들(DIE 7, DIE 8)에 저장될 수 있다. 또한, 제2 다이(DIE 2)가 페일된 경우를 가정할 때, 전술한 실시예들에 따른 RAID 리커버리를 통해 제2 다이(DIE 2)의 다수의 페이지들의 데이터가 복구될 수 있다. 하나의 RAID 스트라이프에 두 개의 RAID 패리티(Parity)가 포함됨에 따라, 도 8a에 적용된 RAID의 레벨은 RAID 6에 해당할 수 있다.
복구된 제2 다이(DIE 2)의 데이터는 다른 하나 이상의 다이(DIE)에 이동될 수 있다. 일 예로서, 복구된 제2 다이(DIE 2)의 데이터는 RAID 패리티(Parity)를 저장하는 어느 하나의 다이(예컨대, 제7 다이(DIE 7))로 이동될 수 있으며, 기존의 제7 다이(DIE 7)에 저장된 RAID 패리티(Parity)는 RAID 스트라이프에서 제거될 수 있다.
상기와 같은 이동에 따라, RAID 스트라이프는 제1, 제3 내지 제7 다이들(DIE 1, DIE 3 ~ DIE 7)에 저장된 데이터(Data)와 제8 다이(DIE 8)에 저장된 RAID 패리티(Parity)를 포함할 수 있다. 즉, 하나의 RAID 스트라이프에서 하나의 RAID 패리티가 포함됨에 따라, 도 8a에 적용된 RAID의 레벨은 RAID 6에서 RAID 4 또는 RAID 5로 변동될 수 있다.
한편, 도 8b은 기존의 RAID 스트라이프에 하나의 RAID 패리티(Parity)가 포함된 예를 나타낸다. 도 8b를 참조하면, 제1 내지 제8 다이들(DIE 1 ~ DIE 8) 중 제1 내지 제7 다이들(DIE 1 ~ DIE 7)은 데이터(Data)를 저장할 수 있으며, 제8 다이(DIE 8)는 RAID 패리티(Parity)를 저장할 수 있다. 도 8b에 적용된 RAID의 레벨은 RAID 5 또는 RAID 4에 해당할 수 있다.
페일이 발생된 제2 다이(DIE 2)의 데이터가 RAID 리커버리를 통해 복구될 수 있으며, 복구된 제2 다이(DIE 2)의 데이터는 RAID 패리티(Parity)를 저장하는 제8 다이(DIE 8)로 이동될 수 있다. 이에 따라, 기존의 제8 다이(DIE 8)에 저장된 RAID 패리티(Parity)는 RAID 스트라이프에서 제거될 수 있다. 즉, 본 발명의 실시예에 따른 데이터 이동에 따라 RAID 패리티(Parity)가 RAID 스트라이프에서 제거됨으로써, RAID 적용이 해제될 수 있다.
전술한 실시예에 따라, 복구된 데이터가 RAID 패리티(Parity)를 저장하는 셀 영역으로 이동되는 경우, 기존에 이용한 저장 공간의 용량을 유지하면서 복구된 데이터를 페일이 발생되지 않은 셀 영역으로 이동시킬 수 있다.
한편, 도 9에서는 RAID 리커버리를 통해 복구된 데이터가 오버 프로비저닝 영역(OP)에 저장되는 예가 도시된다.
도 9를 참조하면, 각각의 다이(DIE)는 실제 유저 데이터가 저장되는 유저 영역(User)과 소정의 비율로서 추가로 제공되는 오버 프로비저닝 영역(OP)을 포함할 수 있다. 상기 오버 프로비저닝 영역(OP)은 다양한 종류의 메모리 동작에 이용될 수 있으며, 일 예로서 가비지 컬렉션 등의 동작을 수행하는 경우 유효 데이터(valid data)를 일시적으로 저장하는 용도로 이용될 수 있다.
RAID 스트라이프를 구성하는 데이터(Data)와 RAID 패리티(Parity)는 다수의 다이들(예컨대, 제1 내지 제8 다이들(DIE 1 ~ DIE 8))에 분포되어 저장되며, 일 예로서, 데이터(Data)와 RAID 패리티(Parity)는 유저 영역(User)에 저장될 수 있다. 또한, 제1 다이(DIE 1)가 페일된 경우를 가정할 때, 전술한 실시예들에 따른 RAID 리커버리를 통해 제1 다이(DIE 1)의 다수의 페이지들의 데이터가 복구될 수 있다.
본 발명의 일 실시예에 따라, 복구된 제1 다이(DIE 1)의 데이터는 하나 이상의 다른 다이들의 오버 프로비저닝 영역(OP)으로 이동될 수 있다. 도 9에서는, 일 예로서 복구된 제1 다이(DIE 1)의 데이터가 제2, 제5 및 제6 다이들(DIE 2, DIE 5, DIE 6)로 이동되는 예가 도시된다.
도 9의 실시예에 따르면, 별도의 리저브 셀 영역을 이용하지 않으므로 메모리 시스템의 저장 공간의 활용도가 향상될 수 있으며, 또한 RAID 패리티가 제거되지 않으므로 RAID 레벨을 유지함으로써 데이터의 안정성이 확보될 수 있다.
도 10은 본 발명의 예시적인 실시예에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 10을 참조하면, 메모리 시스템은 다수 개의 셀 영역들을 포함할 수 있다. 상기 셀 영역은 전술한 실시예들에 따라 다양하게 정의가 가능하며, 일 예로서 상기 셀 영역은 다수의 페이지들을 포함함에 따라 기록 또는 독출 단위보다 더 큰 사이즈를 가질 수 있다. 일 실시예에 따라, 메모리 시스템이 하나 이상의 플래시 메모리 칩을 포함하는 경우, 상기 셀 영역은 메모리 칩 단위에 해당하거나, 다이 단위 또는 플레인 단위에 해당할 수 있다. 또한, 메모리 시스템에서 호스트로부터의 요청에 따른 데이터 기록 또는 독출 단위는 페이지에 해당하는 것으로 가정한다.
호스트로부터 제1 셀 영역에 포함된 페이지에 대한 독출 요청이 수신되면, 메모리 시스템은 독출 요청된 데이터 및 이에 대응하는 ECC 패리티를 독출하고, ECC 패리티를 이용한 에러 정정 동작을 수행한다. 일 실시예에 따라, 데이터 및 ECC 패리티는 제1 셀 영역으로부터 함께 독출될 수 있다. 제1 셀 영역이 페일된 경우, 독출 단위의 데이터에 대한 ECC 페일이 검출된다(S11).
ECC 페일이 검출됨에 따라, 제1 셀 영역 이외의 다른 셀 영역들로부터 RAID 스트라이프를 구성하는 데이터 및 RAID 패리티가 독출되고, 독출된 데이터 및 RAID 패리티를 이용한 RAID 리커버리를 통해 상기 독출 요청된 독출 단위의 데이터가 복구될 수 있다(S12). 또한, 복구된 독출 단위의 데이터는 호스트로부터의 요청에 대응하는 응답으로서 호스트로 출력될 수 있다(S13).
이후, 셀 영역 단위의 RAID 리커버리가 수행되고, 셀 영역 단위의 복구된 데이터는 페일이 발생되지 않은 다른 셀 영역(예컨대, 제2 셀 영역)으로 이동될 수 있다. 일 예로서, 제1 셀 영역 이외의 다른 셀 영역들로부터 RAID 스트라이프를 구성하는 데이터 및 RAID 패리티가 독출되고(S14), 상기 제1 셀 영역에 대해 데이터 및 RAID 패리티를 이용한 RAID 리커버리를 통해 셀 영역 단위의 데이터가 복구될 수 있다(S15). 또한, 복구된 데이터는 제2 영역으로 이동될 수 있다(S16). 일 실시예에 따라, 제1 셀 영역은 다수 개의 페이지들을 포함하고, 상기 다수 개의 페이지들에 대해 페이지 단위로 순차적으로 RAID 리커버리가 수행되고, 페이지 단위로 복구된 데이터가 순차적으로 제2 영역으로 이동될 수 있다.
변형 가능한 실시예로서, 메모리 시스템은 호스트로부터의 기록 또는 독출 요청에 무관하게 주기적 또는 비주기적으로 셀 영역들의 페일 여부를 검출할 수 있다. 또한, 일 실시예로서, 메모리 시스템이 리저브 셀 영역들을 포함하는 경우에는, 상기 제2 셀 영역은 적어도 하나의 리저브 셀 영역에 해당할 수 있다. 또는, 리저브 셀 영역들이 모두 이용되고 있거나, 메모리 시스템이 리저브 셀 영역을 포함하지 않는 경우에는 RAID 패리티를 저장하는 셀 영역이 상기 제2 셀 영역으로 이용될 수 있다.
또는, 전술한 실시예에서와 유사하게 셀 영역 각각은 유저 영역과 OP 영역을 포함할 수 있으며, 상기 복구된 제1 셀 영역의 데이터는 다른 하나 이상의 셀 영역들의 OP 영역으로 이동될 수 있다.
도 11a,b는 본 발명의 실시예에 따른 데이터 이동 동작이 소프트웨어 방식에 따라 수행되는 예를 나타내는 메모리 시스템의 블록도이다.
도 11a를 참조하면, 메모리 시스템(200)은 프로세싱 유닛(210) 및 워킹 메모리(220)를 포함할 수 있다.
본 발명의 실시예들에 따른 RAID 리커버리 및 데이터 이동 동작은 워킹 메모리(220)에 로딩된 소프트웨어를 실행함에 의해 수행될 수 있다. 상기 소프트웨어는 메모리 시스템(200) 내의 저장 수단(예컨대, 불휘발성 저장 수단)에 저장되어 워킹 메모리(220)에 로딩될 수 있으며, 일 실시예에 따라, 워킹 메모리(220)는 컴퓨터 판독 가능 매체로서 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다. 예컨대, 워킹 메모리(220)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), EEPROM(Electronically Erasable Programmable Read Only Memory), 플래시 메모리 또는 다른 메모리 기술 등으로 구현될 수 있다.
워킹 메모리(220)에 저장된 소프트웨어는 그 기능에 따라 다수 개의 모듈들로 분류될 수 있다. 예컨대, 워킹 메모리(220)에 저장된 소프트웨어는 RAID 리커버리 모듈(221)에 해당하는 프로그램, 이동 제어 모듈(222)에 해당하는 프로그램 및 어드레스 변환 모듈(223)에 해당하는 프로그램을 포함할 수 있다. 또한, 어드레스 변환 모듈(223)은 논리적 어드레스와 물리적 어드레스 사이의 변환 정보를 갖는 테이블(L2P Table)을 포함할 수 있다.
프로세싱 유닛(210)은 RAID 리커버리 모듈(221)을 실행함에 의해 전술한 실시예들에 따른 RAID 리커버리 동작을 수행할 수 있다. 예컨대, RAID 리커버리 모듈(221)은 RAID 스트라이프를 구성하는 데이터 및 RAID 패리티를 이용한 연산을 수행함으로써 페일 발생된 셀 영역의 데이터를 복구할 수 있다. 또한, 프로세싱 유닛(210)은 이동 제어 모듈(222)을 실행함에 의해 전술한 실시예들에 따른 복구된 데이터의 이동 동작을 제어할 수 있다. 일 예로서, 복구된 데이터가 이동될 셀 영역(예컨대, 타겟 셀 영역)을 판단하고, 판단 결과에 따라 전술한 실시예들에 따른 메모리 칩 단위, 다이(DIE) 단위 또는 플레인(plane) 단위로 데이터의 이동 동작을 제어할 수 있다.
일 실시예에 따라, 전술한 RAID 리커버리 및 데이터의 이동 동작은 다양한 모드에 따라 수행될 수 있다. 일 예로서, RAID 리커버리 및 데이터의 이동 동작은, 호스트로부터의 요청에 따른 입출력(IO)을 처리함이 없이 복구된 데이터를 우선적으로 타겟 셀 영역으로 이동시키는 버스트(Burst) 모드에 따라 수행될 수 있다. 또는, RAID 리커버리 및 데이터의 이동 동작은, 호스트로부터의 요청에 따른 입출력(IO)을 처리하면서 복구된 데이터를 백그라운드 방식으로 타겟 셀 영역으로 이동시키는 백그라운드(Background) 모드에 따라 수행될 수 있다.
한편, 프로세싱 유닛(210)은 어드레스 변환 모듈(223)을 실행함에 의해 호스트로부터 억세스 요청된 데이터의 논리적 어드레스를 메모리 시스템의 물리적 저장 위치를 나타내는 물리적 어드레스로 변환할 수 있다. 또한, 전술한 실시예에 따라 RAID 리커버리를 통해 복구된 데이터가 다른 셀 영역으로 이동되므로, 상기 복구된 데이터에 관련된 논리적 어드레스와 물리적 어드레스 사이의 맵핑 정보가 변경될 수 있다. 또한, 복구된 데이터의 이동 결과에 따른 맵핑 정보가 테이블(L2P Table)에 업데이트될 수 있다.
도 11b는 복구된 데이터의 이동 결과에 따른 맵핑 정보의 다양한 변경 예를 나타내는 표이다. 도 11b에서는 복구된 데이터가 리저브 셀 영역으로 이동되는 예가 도시된다.
도 11b의 (a)를 참조하면, RAID 리커버리가 다이(DIE) 단위로 수행되고, 또한 복구된 다이(DIE)의 데이터는 리저브 다이(DIE)로 이동될 수 있다. 일 예로서, 제A 다이(DIE A)가 페일됨에 따라 제A 다이(DIE A)의 데이터가 RAID 리커버리를 통해 복구되고, 복구된 데이터가 제1 리저브 다이(DIE R1)로 이동될 수 있다. 기존에 제A 다이(DIE A)를 지시하기 위한 논리적 어드레스(DIE_ADD_L1)는 제A 다이(DIE A)의 물리적 위치를 나타내는 물리적 어드레스(DIE_ADD_P1)에 맵핑되었으나, 상기 복구된 데이터의 이동에 따라 논리적 어드레스(DIE_ADD_L1)는 제1 리저브 다이(DIE R1)의 물리적 위치를 나타내는 물리적 어드레스(DIE_ADD_PR1)에 맵핑되도록 맵핑 정보가 변경될 수 있다.
상기와 같이 셀 영역 단위의 어드레스가 존재하는 경우에는 도 11b에 도시된 바와 같이 셀 영역 단위로 맵핑 정보가 변경될 수 있다. 다른 실시예로서, 복구된 데이터의 이동에 따라 페이지 단위로서 맵핑 정보가 변경될 수도 있다.
일 예로서, 도 11b의 (b)를 참조하면, RAID 리커버리가 플레인(Plane) 단위로 수행되고, 또한 복구된 플레인(Plane)의 데이터는 리저브 플레인(Plane)으로 이동될 수 있다. 일 예로서, 복구된 제1 플레인(Plane 1)의 데이터는 제1 리저브 플레인(Plane R1)으로 이동될 수 있다. 각각의 플레인(Plane)에는 D 개의 페이지들이 포함될 수 있다.
복구된 제1 플레인(Plane 1)의 데이터가 이동됨에 따라, 제1 플레인(Plane 1)의 페이지들을 지시하기 위한 맵핑 정보가 변경될 수 있다. 예컨대, 맵핑 정보의 변경 전에는 제1 플레인(Plane 1)의 페이지들을 지시하기 위한 논리적 어드레스(Page_ADD_L1 ~ Page_ADD_LD)가 제1 플레인(Plane 1)의 물리적 위치를 나타내는 물리적 어드레스(Page_ADD_P1 ~ Page_ADD_PD)에 맵핑되었으나, 상기 복구된 데이터의 이동에 따라 상기 논리적 어드레스(Page_ADD_L1 ~ Page_ADD_LD)는 제1 리저브 플레인(Plane R1)의 물리적 위치를 나타내는 물리적 어드레스(Page_ADD_PR1 ~ Page_ADD_PRD)에 맵핑되도록 맵핑 정보가 변경될 수 있다.
도 12는 본 발명의 변형 가능한 실시예에 따른 메모리 시스템을 나타내는 블록도이다. 도 12에 도시된 실시예에서의 메모리 시스템(300)의 구성 및 동작을 설명함에 있어서, 도 1에 도시된 실시예에서와 동일한 구성에 대해서는 구체적인 설명이 생략된다.
도 12를 참조하면, 메모리 시스템(300)은 컨트롤러(310) 및 메모리 장치(320)를 포함할 수 있다. 컨트롤러(310)는 RAID 리커버리 회로(311), 이동 제어부(312), 리커버리 판단부(313) 및 이동 판단부(314)를 포함할 수 있다. 도 12에서는 컨트롤러(310)에 구비되는 각종 구성들이 하드웨어적 구성인 것으로 설명되었으나, 본 발명의 실시예들은 이에 국한될 필요가 없다. 예컨대, RAID 리커버리, 이동 제어, 리커버리 판단 및 이동 판단 동작은 소프트웨어 방식에 따라 수행될 수 있으며, 이 경우 컨트롤러(310)는 상기 각종 기능들을 수행하기 위한 프로그램들을 저장하는 워킹 메모리와, 상기 워킹 메모리를 실행할 수 있는 프로세싱 유닛을 포함하는 것으로 설명되어도 무방하다.
RAID 리커버리 회로(311)는 전술한 실시예에 따라 RAID 스트라이프를 구성하는 데이터 및 RAID 패리티를 이용하여 RAID 리커버리를 수행하고, 페일 발생된 셀 영역의 데이터를 복구할 수 있다. 이동 제어부(312)는 복구된 데이터를 다른 셀 영역으로 이동시키는 동작을 제어할 수 있으며, 일 예로서 데이터가 이동될 셀 영역(예컨대, 타겟 셀 영역)을 리저브 셀 영역이나 RAID 패리티를 저장하는 셀 영역 또는 OP 영역으로 선택하는 동작 등을 수행할 수 있다. 또한, RAID 리커버리 및/또는 데이터 이동 동작은 버스트(Burst) 모드에 따라 수행되거나 백그라운드 모드에 따라 수행될 수 있다.
한편, 리커버리 판단부(313)는 RAID 리커버리를 수행할 지 여부를 판단할 수 있다. 일 예로서, 본 발명의 실시예들에 따른 RAID 리커버리는 다수의 페이지들을 포함하는 셀 영역 단위로 수행될 수 있으며, 또한 복구된 데이터의 이동은 셀 영역 단위로 수행될 수 있다. 이에 따라, 리커버리 판단부(313)는 셀 영역 단위의 페일 여부에 따라 RAID 리커버리를 수행할 지 여부를 판단할 수 있다.
또한, 이동 판단부(314)는 데이터의 복구 및 이동 동작을 수행할 타이밍을 판단할 수 있다. 일 예로서, 데이터의 복구 및 이동 동작은 다수의 페이지들을 포함하는 셀 영역 단위로 수행되므로, 데이터의 복구 및 이동 동작에 상대적으로 많은 시간이 소요될 수 있다. 이에 따라, 이동 판단부(314)는 메모리 시스템(300)의 동작 상태 등을 판단하고, 이에 기반하여 데이터의 이동 동작을 수행할 지 여부를 판단할 수 있다. 일 실시예로서, 호스트로부터의 다수 개의 요청들을 수행하기 위해 메모리 시스템(300) 내에 저장된 커맨드들을 확인하고, 확인 결과에 따라 데이터 이동 동작의 적절한 수행 타이밍을 판단할 수 있다. 또는, 메모리 시스템(300)는 호스트의 관리 하에서 데이터의 복구 및 이동 동작을 수행할 수 있으며, 이동 판단부(314)는 호스트로부터의 요청을 확인한 결과에 따라 데이터 이동 동작의 수행 타이밍을 판단할 수 있다.
도 13 및 도 14는 RAID 리커버리를 수행할 셀 영역을 판단하는 일 예를 나타내는 블록도이다.
도 13을 참조하면, 메모리 시스템(400A)은 컨트롤러(410A) 및 메모리 장치(420A)를 포함할 수 있다. 또한, 컨트롤러(410A)는 리커버리 판단부(413A) 및 아이디(ID) 검출부(415A)를 포함할 수 있다. 또한, 메모리 장치(420A)는 그 내부에 구비되는 다수의 메모리 칩들이나 다수의 다이(DIE)들 각각의 아이디 정보(Info_ID)를 저장하는 정보 저장부(421A)를 포함할 수 있다. 이하에서는, 다이(DIE) 단위로 RAID 리커버리의 수행 여부를 판단하는 예가 설명된다.
일 실시예에 따라, 메모리 시스템(400A)은 소정의 테스트 과정을 통해 메모리 장치(420A)에 구비되는 다수의 다이(DIE)들 각각의 페일 여부를 검출할 수 있다. 페일 여부를 검출하는 일 예로서, 컨트롤러(410A)는 메모리 장치(420A)로 리셋 커맨드(CMD_RESET)를 출력하고, 메모리 장치(420A)는 리셋 커맨드(CMD_RESET)에 응답하여 리셋 동작을 수행할 수 있다. 또한, 상기 리셋 동작의 일 과정으로서, 메모리 장치(420A)는 정보 저장부(421A)에 저장된 다이(DIE)들 각각의 아이디 정보(Info_ID)를 독출하고, 독출된 아이디 정보(Info_ID)를 컨트롤러(410A)로 제공할 수 있다.
아이디(ID) 검출부(415A)는 메모리 장치(420A)로부터 아이디 정보(Info_ID)가 적절하게 독출되어 제공되었는지를 검출할 수 있다. 일 예로서, 다이(DIE)들 각각의 페일 여부에 따라, 페일된 다이(DIE)로부터는 아이디 정보(Info_ID)가 정상적으로 독출될 수 없으며, 아이디(ID) 검출부(415A)는 아이디 정보(Info_ID)의 검출 결과를 리커버리 판단부(413A)로 제공할 수 있다. 리커버리 판단부(413A)는 검출 결과에 기반하여 셀 영역 단위로 RAID 리커버리를 수행할 다이를 판단할 수 있다.
한편, 도 14는 플레인(Plane)에 대한 메모리 동작 결과에 기반하여 RAID 리커버리의 수행 여부를 판단하는 예를 나타낸다.
도 14를 참조하면, 메모리 시스템(400B)은 컨트롤러(410B) 및 메모리 장치(420B)를 포함할 수 있다. 또한, 컨트롤러(410B)는 리커버리 판단부(413B) 및 플레인 결함 판단부(416B)를 포함할 수 있다.
컨트롤러(410B)는 메모리 장치(420B)에 구비되는 다수의 셀 블록들에 대한 기록 및 독출 등의 메모리 동작을 요청하고, 메모리 장치(420B)의 응답에 기반하여 메모리 동작이 정상적으로 수행되었는 지 여부를 판단할 수 있다. 일 예로서, 특정 플레인(Plane)에 대한 기록/독출 커맨드(CMD_WR/RD)와 함께 특정 플레인(Plane)을 지시하는 어드레스가 메모리 장치(420B)로 제공될 수 있으며, 메모리 장치(420B)는 응답(예컨대, 플레인으로부터 독출된 데이터(Data))을 컨트롤러(410B)로 제공할 수 있다.
플레인 결함 판단부(416B)는 메모리 장치(420B)로부터의 응답에 기반하여 플레인(Plane)에서 발생된 결함의 정도를 판단할 수 있다. 일 예로서, 컨트롤러(410B)는 ECC 회로 등을 이용하여 데이터(Data)에 대해 에러 정정 단위로서 에러 검출을 수행하고, 플레인 결함 판단부(416B)는 에러 검출 결과를 수신하여 플레인(Plane)에 발생된 결함의 정도를 판단할 수 있다. 일 예로서, 어느 하나의 플레인(Plane)에서 ECC 페일이 발생된 페이지들의 개수가 판단될 수 있다. 리커버리 판단부(413B)는 플레인 결함 판단부(416B)로부터의 판단 결과에 기반하여 다수의 페이지들 단위로 RAID 리커버리를 수행할 플레인(Plane)을 판단할 수 있다.
도 15 내지 도 17은 본 발명의 다양한 실시예들에 따른 메모리 시스템의 동작 방법을 나타내는 플로우차트이다. 도 15 내지 도 17에서는 다이(DIE) 단위의 RAID 리커버리 및 데이터 이동 동작이 예시될 것이나, 전술한 실시예에서와 같이 셀 영역의 단위는 다이(DIE) 이외에도 다양하게 정의될 수 있을 것이다.
도 15를 참조하면, 메모리 시스템에 구비되는 다수의 다이(DIE)들에 대한 내부 테스트가 수행되며(S21), 일 실시예에 따라 다이(DIE)들 각각의 아이디(ID) 정보의 독출 결과에 기반하여 다이(DIE)들의 페일 여부가 판단될 수 있다. 또한, 내부 테스트 결과에 따라 RAID 리커버리를 수행할 페일 다이(DIE)가 판단될 수 있다(S22).
전술한 실시예들에 따라 다이(DIE) 단위로 RAID 리커버리가 수행되고, 페일 다이(DIE)의 다수의 페이지들의 데이터가 복구된다(S23). 복구된 다이(DIE) 단위의 데이터는 페일이 발생되지 않은 적어도 하나의 다이(DIE)로 이동될 수 있다. 일 실시예에 따라, 메모리 시스템은 하나 이상의 리저브 다이(DIE)들을 포함할 수 있으며, 상기 복구된 셀 영역의 데이터를 이동시킬 리저브 다이(DIE)가 존재하는 지 판단한다(S24). 판단 결과, 메모리 시스템에 리저브 다이(DIE)가 존재하지 않거나, 리저브 다이(DIE)가 이미 모두 이용 중인 경우(예컨대, 유효한 데이터가 저장된 경우), 복구된 데이터는 RAID 패리티를 저장하는 다이(DIE)로 이동될 수 있다(S25). 반면에, 이용 가능한 리저브 다이(DIE)가 존재하는 경우에는, 상기 복구된 데이터는 리저브 다이(DIE)로 이동될 수 있다(S26).
한편, 도 16을 참조하면, RAID 리커버리 수행 및 데이터 이동은 다양한 방식에 따라 트리거링(triggering) 될 수 있다. 일 예로서, 메모리 시스템은 호스트로부터 독출 요청을 수신하고(S31), 맵핑 정보와 호스트로부터 제공된 논리적 어드레스를 이용하여 독출 대상의 물리적 어드레스가 산출될 수 있다(S32). 또한, 물리적 어드레스가 산출되면, 상기 물리적 어드레스에 대응하는 페이지가 포함된 셀 영역(예컨대, 다이)이 판단될 수 있다.
독출 요청 대상의 다이(DIE)가 RAID 리커버리가 필요로 되는 페일 다이(DIE)인지 여부가 판단될 수 있다(S33). 상기 S33 단계의 판단 동작은 다양한 방식에 따라 수행될 수 있다. 일 예로서, 전술한 실시예에서와 같이 메모리 시스템의 초기 동작시 내부 테스트에 기반하여 페일 다이(DIE)의 정보가 기 저장되고, 상기 페일 다이(DIE)에 대해 RAID 리커버리가 수행되지 않은 상태가 유지될 수 있다. 이 후, 호스트로부터의 요청이 페일 다이(DIE)에 해당하는 것으로 검출될 때, 페일 다이(DIE)에 대한 RAID 리커버리가 수행될 수 있다.
또는, 다른 실시예로서, 독출 요청 대상의 페이지에 ECC 패리티를 이용한 에러 정정이 불가능할 때, 상기 페이지를 포함하는 다이(DIE)가 페일 다이(DIE)로 판단될 수 있다. 또는, 소정의 다이(DIE)에 대해 다수 개의 페이지들에 대한 독출 요청이 일련하게 수신되고, 다수 개의 페이지들에 대해 ECC 패리티를 이용한 에러 정정이 불가능할 때 상기 다이(DIE)가 페일 다이(DIE)로 판단될 수 있다.
독출 요청 대상의 다이(DIE)가 페일 다이(DIE)가 아닌 경우, 메모리 시스템은 호스트로부터의 요청에 따라 독출 단위의 데이터를 독출하고(S34), 독출된 데이터를 호스트로 출력할 수 있다(S35). 반면에, 독출 요청 대상의 다이(DIE)가 페일 다이(DIE)에 해당할 때, 독출 요청된 페이지의 데이터는 RAID 스트라이프를 구성하는 데이터 및 RAID 패리티를 이용해 복구되고(S36), 복구된 데이터가 호스트로 출력될 수 있다(S35).
한편, 페일 다이(DIE)에 대해 다이(DIE) 단위의 RAID 리커버리 및 데이터 이동을 수행할 지 여부가 판단될 수 있다(S37). 전술한 실시예들에 따라, 상기 데이터 이동의 수행 여부는 다양한 방식에 따라 판단될 수 있으며, 본 실시예에서는 메모리 시스템이 스스로 데이터 이동의 수행 여부를 판단하는 예가 설명된다. 일 실시예로서, 메모리 시스템이 호스트의 요청에 따른 작업의 로드를 판단하고, 판단 결과에 따라 RAID 리커버리 및 데이터 이동을 바로 수행하거나, 또는 RAID 리커버리 및 데이터 이동을 차후에 수행할 수 있다.
RAID 리커버리 및 데이터 이동이 수행되는 경우, 모드 및 위치를 선택하는 동작이 수행될 수 있다(S38). 예컨대, RAID 리커버리 및 데이터 이동은 버스트 모드 또는 백그라운드 모드에서 수행될 수 있으며, 또한 복구된 다이의 데이터는 리저브 다이로 이동되거나, 또는 RAID 패리티를 저장하는 다이 또는 다른 다이들의 OP 영역으로 이동될 수 있다.
상기와 같은 모드 및 위치가 선택되면 다이(DIE) 단위의 RAID 리커버리를 통해 데이터가 복구되고(S39), 복구된 데이터가 타겟 셀 영역(예컨대, 타겟 다이)으로 이동될 수 있다(S40).
도 17은 데이터 이동이 호스트에 의해 트리거링 되는 예를 나타낸다.
도 17을 참조하면, 메모리 시스템은 다이 단위로 RAID 리커버리가 수행될 페일 다이(DIE)를 검출하고(S41), 검출 정보를 호스트로 전송한다(S42). 상기 검출 정보는 다양한 정보들을 포함할 수 있으며, 일 예로서 페일 다이(DIE)의 정보, RAID 리커버리 및 데이터 이동에 소요되는 시간 등을 포함할 수 있다.
호스트는 상기와 같은 각종 정보들을 갖는 검출 정보에 기반하여 데이터 이동 시점을 판단하고 데이터 이동 커맨드를 메모리 시스템으로 제공할 수 있다. 메모리 시스템은 호스트로부터 커맨드를 수신하고(S43), 상기 커맨드가 데이터 이동 커맨드에 해당하는 지를 판단한다(S44). 데이터 이동 커맨드가 아닌 경우에는, 메모리 시스템은 호스트로부터의 커맨드에 대응하는 기능을 실행한다(S45).
한편, 호스트로부터의 커맨드가 데이터 이동 커맨드에 해당하는 경우에는, 메모리 시스템은 페일 다이(DIE)에 대한 RAID 리커버리 및 데이터 이동을 수행할 수 있다. 일 예로서, 전술한 예에서와 같이, 모드 및 위치를 선택하는 동작이 수행됨과 함께(S46), 다이(DIE) 단위의 RAID 리커버리를 통해 데이터가 복구되고(S47), 복구된 데이터가 타겟 셀 영역(예컨대, 타겟 다이)으로 이동될 수 있다(S48).
도 18은 본 발명의 실시예에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템의 구현 예를 나타내는 블록도이다.
도 18을 참조하면, 컴퓨팅 시스템(500)은 다수 개의 저장매체들로서 SSD들(520_1 ~ 520_N)을 포함할 수 있으며, 상기 SSD들(520_1 ~ 520_N)은 연결부(510)를 통해 각종 정보를 송수신하거나, 호스트로부터의 요청을 다른 SSD로 포워딩할 수 있다. 즉, 컴퓨팅 시스템(500)은 분산 컴퓨팅 기능을 제공할 수 있다.
SSD들(520_1 ~ 520_N) 각각은 전술한 실시예에서의 메모리 시스템에 해당할 수 있다. 이에 따라, SSD들(520_1 ~ 520_N) 각각은 저장 공간(423_1)으로서 하나 이상의 메모리 칩들을 포함할 수 있으며, 또한 각각의 칩은 하나 이상의 다이들을 포함할 수 있다. 또한, 전술한 실시예들에서 RAID 스트라이프를 구성하는 데이터 및 RAID 패리티는 SSD들(520_1 ~ 520_N)에 분포되어 저장될 수 있다. 또한, SSD들(520_1 ~ 520_N) 각각은 중앙 처리 장치(521_1) 및 메모리(522_1)를 포함할 수 있다.
일 실시예에 따라, SSD들(520_1 ~ 520_N) 각각은 메모리(522_1)에 저장된 소프트웨어를 실행함에 따라 전술한 실시예들에 따른 RAID 리커버리 및 데이터 이동을 수행할 수 있다. 만약, 제1 SSD(520_1)의 어느 하나의 다이가 페일된 경우, 제1 SSD(520_1)는 다른 SSD들로부터 연결부(510)를 통해 데이터 및 RAID 패리티를 수신하고, 수신된 데이터 및 RAID 패리티를 이용하여 페일된 다이의 데이터를 복구할 수 있다. 또한, 복구된 데이터가 다른 SSD 들로 이동되는 경우, 제1 SSD(520_1)는 복구된 데이터를 연결부(510)를 통해 다른 다이들로 이동시킬 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 메모리 시스템의 동작 방법에 있어서,
    호스트로부터의 독출 요청에 따라, 제1 셀 영역으로부터 독출된 독출 단위의 데이터에 대한 ECC 페일 여부를 검출하는 단계;
    다수 개의 다른 셀 영역들로부터 독출된 데이터 및 RAID 패리티를 이용하여 RAID 리커버리를 수행함으로써, 상기 독출 단위의 데이터를 복구하여 출력하는 단계;
    상기 제1 셀 영역에 저장된 다수의 데이터들에 대해, 상기 다수 개의 다른 셀 영역들로부터 독출된 데이터 및 RAID 패리티를 이용하여 RAID 리커버리를 수행하는 단계; 및
    상기 복구된 셀 영역 단위의 데이터를 제2 셀 영역으로 이동시키는 단계를 구비하고,
    상기 메모리 시스템은 버스트 모드 또는 백그라운드 모드에서 동작하며,
    상기 복구된 셀 영역 단위의 데이터를 제2 셀 영역으로 이동시키는 단계는, 상기 버스트 모드에서 상기 호스트로부터의 요청에 따른 입출력을 처리함이 없이 상기 복구된 셀 영역 단위의 데이터를 상기 제2 셀 영역으로 우선적으로 이동시키거나, 상기 백그라운드 모드에서 상기 호스트로부터의 요청에 따른 입출력을 처리하면서 상기 복구된 셀 영역 단위의 데이터를 백그라운드 방식으로 상기 제2 셀 영역으로 이동시키는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  2. 제1항에 있어서,
    상기 셀 영역들 각각은 메모리 칩인 것을 특징으로 하는 메모리 시스템의 동작 방법.
  3. 제1항에 있어서,
    상기 셀 영역들 각각은 메모리 칩에 구비되는 다이(DIE)인 것을 특징으로 하는 메모리 시스템의 동작 방법.
  4. 제1항에 있어서,
    상기 메모리 시스템은, RAID 스트라이프를 구성하는 데이터 및 RAID 패리티를 저장하는 다수 개의 셀 영역들과, 하나 이상의 리저브 셀 영역들을 포함하고,
    상기 제2 셀 영역은 어느 하나의 리저브 셀 영역에 해당하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  5. 제1항에 있어서,
    상기 메모리 시스템은, RAID 스트라이프를 구성하는 데이터 및 RAID 패리티를 저장하는 다수 개의 셀 영역들을 포함하고,
    상기 제2 셀 영역은 상기 RAID 패리티를 저장하는 어느 하나의 셀 영역에 해당하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  6. 삭제
  7. 메모리 시스템의 동작 방법에 있어서, 상기 메모리 시스템은 데이터를 저장하는 M 개의 데이터 셀 영역들과 이에 대응하는 패리티를 저장하는 N 개의 패리티 셀 영역들을 포함하고(단, M은 2 이상의 정수, N은 1 이상의 정수),
    제1 데이터 셀 영역의 페일을 검출하는 단계;
    제1 데이터 셀 영역에 저장된 다수의 데이터들을 다른 데이터 셀 영역들에 저장된 데이터 및 상기 패리티 셀 영역들에 저장된 패리티를 이용한 리커버리 동작을 통해 복구하는 단계; 및
    복구된 상기 제1 데이터 셀 영역의 데이터를 제1 패리티 셀 영역으로 이동시키는 단계를 구비하고,
    상기 페일을 검출하는 단계는, 상기 메모리 시스템의 리셋 과정에서 상기 데이터 셀 영역들의 아이디(ID) 정보를 독출하고, 상기 제1 데이터 셀 영역으로부터 상기 아이디(ID) 정보가 정상적으로 독출되지 않음에 따라 상기 제1 데이터 셀 영역의 페일을 검출하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  8. 제7항에 있어서,
    상기 M 개의 데이터 셀 영역들에 저장된 데이터들과 상기 N 개의 패리티 셀 영역들에 저장된 패리티가 하나 이상의 RAID 스트라이프를 구성하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  9. 제7항에 있어서,
    상기 메모리 시스템은 하나 이상의 리저브 셀 영역들을 더 포함하고,
    상기 리저브 셀 영역들 중 이용 가능한 리저브 셀 영역이 존재하는 지 판단한 결과에 따라, 상기 복구된 상기 제1 데이터 셀 영역의 데이터가 상기 리저브 셀 영역 또는 상기 제1 패리티 셀 영역에 선택적으로 이동되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  10. 삭제
KR1020160090263A 2016-07-15 2016-07-15 Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법 KR102573301B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160090263A KR102573301B1 (ko) 2016-07-15 2016-07-15 Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법
US15/442,969 US10521303B2 (en) 2016-07-15 2017-02-27 Memory system for performing RAID recovery and a method of operating the memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160090263A KR102573301B1 (ko) 2016-07-15 2016-07-15 Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법

Publications (2)

Publication Number Publication Date
KR20180008219A KR20180008219A (ko) 2018-01-24
KR102573301B1 true KR102573301B1 (ko) 2023-08-31

Family

ID=60941040

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160090263A KR102573301B1 (ko) 2016-07-15 2016-07-15 Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법

Country Status (2)

Country Link
US (1) US10521303B2 (ko)
KR (1) KR102573301B1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10838639B2 (en) 2017-08-16 2020-11-17 Intelliflash By Ddn, Inc. Intelligent redundant array of independent disks
US10621057B2 (en) * 2017-08-16 2020-04-14 Intelliflash By Ddn, Inc. Intelligent redundant array of independent disks with resilvering beyond bandwidth of a single drive
US10474572B2 (en) 2017-08-16 2019-11-12 HGST, Inc. Intelligent redundant array of independent disks with high performance recompaction
US10776202B1 (en) * 2017-09-22 2020-09-15 Pure Storage, Inc. Drive, blade, or data shard decommission via RAID geometry shrinkage
KR102216397B1 (ko) 2018-01-23 2021-02-16 주식회사 엘지화학 색변환 필름, 이를 포함하는 백라이트 유닛 및 디스플레이 장치
US11068186B2 (en) * 2018-02-09 2021-07-20 Micron Technology, Inc. Providing recovered data to a new memory cell at a memory sub-system based on an unsuccessful error correction operation
KR101877824B1 (ko) * 2018-02-12 2018-07-12 엣센클라우드 주식회사 보조 기억 장치
KR102586741B1 (ko) * 2018-04-23 2023-10-11 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
CN114496051A (zh) * 2018-10-25 2022-05-13 华为技术有限公司 固态硬盘及固态硬盘管理方法
US10553290B1 (en) * 2018-10-30 2020-02-04 Micron Technology, Inc. Read disturb scan consolidation
TWI704451B (zh) * 2019-01-02 2020-09-11 慧榮科技股份有限公司 用來進行關於容錯式磁碟陣列的動態復原管理之方法與裝置以及依據該方法來運作之儲存系統
KR20200085519A (ko) * 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20200116808A (ko) 2019-04-02 2020-10-13 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR102263044B1 (ko) * 2019-08-23 2021-06-09 삼성전자주식회사 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
CN113311990A (zh) * 2020-02-26 2021-08-27 杭州海康威视数字技术股份有限公司 一种数据存储方法、装置及存储介质
KR20220023476A (ko) * 2020-08-21 2022-03-02 에스케이하이닉스 주식회사 레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
KR20220120967A (ko) 2021-02-24 2022-08-31 삼성전자주식회사 스토리지 컨트롤러, 그 동작방법
KR102403477B1 (ko) 2021-11-12 2022-05-30 삼성전자주식회사 스토리지 장치와 이를 포함하는 호스트-스토리지 시스템
CN114995747B (zh) * 2022-04-28 2023-03-10 宁波均胜新能源汽车技术有限公司 一种充电桩控制器电量数据的处理方法
US12013752B2 (en) * 2022-06-16 2024-06-18 Advanced Micro Devices, Inc. Host-level error detection and fault correction
US11989088B2 (en) * 2022-08-30 2024-05-21 Micron Technology, Inc. Read data path

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0731582B2 (ja) * 1990-06-21 1995-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション パリティ保護データを回復するための方法および装置
US7028213B2 (en) * 2001-09-28 2006-04-11 Hewlett-Packard Development Company, L.P. Error indication in a raid memory system
US8327066B2 (en) * 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US9170897B2 (en) 2012-05-29 2015-10-27 SanDisk Technologies, Inc. Apparatus, system, and method for managing solid-state storage reliability
US20100162037A1 (en) * 2008-12-22 2010-06-24 International Business Machines Corporation Memory System having Spare Memory Devices Attached to a Local Interface Bus
US8281227B2 (en) * 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US20110035540A1 (en) * 2009-08-10 2011-02-10 Adtron, Inc. Flash blade system architecture and method
JP5342014B2 (ja) 2009-08-31 2013-11-13 株式会社日立製作所 複数のフラッシュパッケージを有するストレージシステム
US8402217B2 (en) * 2009-09-15 2013-03-19 Marvell International Ltd. Implementing RAID in solid state memory
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8850114B2 (en) * 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
US8572440B1 (en) * 2010-11-15 2013-10-29 E.Digital Corporation System and method for managing information stored in semiconductors
US8601311B2 (en) 2010-12-14 2013-12-03 Western Digital Technologies, Inc. System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
US8812901B2 (en) 2011-09-23 2014-08-19 Lsi Corporation Methods and apparatus for marking writes on a write-protected failed device to avoid reading stale data in a RAID storage system
US9417821B2 (en) 2011-09-30 2016-08-16 Intel Corporation Presentation of direct accessed storage under a logical drive model
US9026729B1 (en) 2011-11-15 2015-05-05 Emc Corporation Data recovery after triple disk failure
KR101445025B1 (ko) * 2012-02-09 2014-09-26 서울시립대학교 산학협력단 신뢰성 있는 ssd를 위한 효율적인 raid 기법
KR101826051B1 (ko) * 2012-02-27 2018-02-07 삼성전자주식회사 비휘발성 메모리 장치의 제어 방법 및 비휘발성 메모리 시스템
KR20130139604A (ko) * 2012-06-13 2013-12-23 삼성전자주식회사 복수의 메모리 칩을 구비한 메모리 장치, 그 인증 시스템 및 인증 방법
US9996480B2 (en) * 2012-07-18 2018-06-12 Analog Devices, Inc. Resilient device authentication system with metadata binding
US9003223B2 (en) * 2012-09-27 2015-04-07 International Business Machines Corporation Physical memory fault mitigation in a computing environment
US9286002B1 (en) 2012-12-28 2016-03-15 Virident Systems Inc. Dynamic restriping in nonvolatile memory systems
US20160062696A1 (en) * 2014-03-26 2016-03-03 2419265 Ontario Limited Solid-state memory device with plurality of memory devices
US9396068B2 (en) * 2014-04-17 2016-07-19 International Business Machines Corporation Adaptive rebuild scheduling scheme
KR102142590B1 (ko) * 2014-06-16 2020-08-07 삼성전자 주식회사 저항성 메모리 장치 및 저항성 메모리 장치의 동작방법
KR102177421B1 (ko) * 2014-10-15 2020-11-11 삼성전자주식회사 데이터 저장 시스템, 데이터 저장 장치 및 raid 컨트롤러

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
미국특허공보 제5596709호(1997.01.21.) 1부.*
한국공개특허 제10-2013-0097995호(2013.09.04.) 1부.*
한국공개특허 제10-2015-0144177호(2015.12.24.) 1부.*

Also Published As

Publication number Publication date
US10521303B2 (en) 2019-12-31
KR20180008219A (ko) 2018-01-24
US20180018233A1 (en) 2018-01-18

Similar Documents

Publication Publication Date Title
KR102573301B1 (ko) Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법
US10282252B2 (en) RAID storage device and method of management thereof
US10049755B2 (en) Storage device including nonvolatile memory device and controller with varied read weights
KR102549605B1 (ko) Raid 스토리지 장치의 리커버리 방법
KR102533389B1 (ko) 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템
US9519577B2 (en) Method and system for migrating data between flash memory devices
JP5841056B2 (ja) ストライプベースのメモリ動作
US9904621B2 (en) Methods and systems for flash buffer sizing
US20170371559A1 (en) Systems and Methods for Optimizing Media Read Times
US9886341B2 (en) Optimizing reclaimed flash memory
US20160018998A1 (en) Methods and Systems for Scalable Reliability Management of Non-Volatile Memory Modules
EP3189439B1 (en) Process and apparatus to reduce declared capacity of a storage device by altering an encoding format
US10409683B2 (en) Data storage system configured to perform data rebuild operation via reduced read requests
US10740244B2 (en) Memory system including a redirector for replacing a fail memory die with a spare memory die
KR20130097995A (ko) 비휘발성 메모리 장치의 제어 방법 및 비휘발성 메모리 시스템
KR20140013392A (ko) 불휘발성 메모리 장치 및 그것의 데이터 관리 방법
US20120272024A1 (en) Data storage system and a data retention method thereof
US10642525B2 (en) Multiple-stage data lifetime management for storage devices
CN111798910A (zh) 存储装置及其操作方法
US11455118B1 (en) Method for redundant array of independent disks striping against programming failures and apparatus thereof
JP5908106B2 (ja) 妥当性マスクを記憶する装置および方法ならびに操作装置
WO2016036718A1 (en) Process and apparatus to reduce declared capacity of a storage device by moving data
CN115481056A (zh) 存储器系统及存储器系统的操作方法

Legal Events

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