KR20220023476A - 레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템 - Google Patents
레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템 Download PDFInfo
- Publication number
- KR20220023476A KR20220023476A KR1020200105239A KR20200105239A KR20220023476A KR 20220023476 A KR20220023476 A KR 20220023476A KR 1020200105239 A KR1020200105239 A KR 1020200105239A KR 20200105239 A KR20200105239 A KR 20200105239A KR 20220023476 A KR20220023476 A KR 20220023476A
- Authority
- KR
- South Korea
- Prior art keywords
- error
- data storage
- raid
- circuit
- information
- Prior art date
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 108
- 238000012545 processing Methods 0.000 claims abstract description 63
- 238000011084 recovery Methods 0.000 claims description 104
- 238000001514 detection method Methods 0.000 claims description 19
- 238000000034 method Methods 0.000 claims description 16
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 8
- 238000012935 Averaging Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1489—Generic software techniques for error detection or fault masking through recovery blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Abstract
본 기술에 의한 데이터 저장 장치는 비휘발성 메모리 소자, 읽기 명령에 따라 비휘발성 메모리 소자를 제어하는 소자 제어 회로, 에러 처리 정보를 저장하는 에러 처리 정보 저장 회로; 및 비휘발성 메모리 소자에서 출력된 데이터의 에러를 탐지하고 에러 처리 정보에 따라 에러를 복구하거나 에러를 복구하지 않는 에러 탐지 및 복구 회로를 포함한다.
Description
본 기술은 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템에 관한 것으로서 보다 구체적으로는 레이드로 묶인 다수의 데이터 저장 장치를 포함하여 에러를 복구하는 데이터 저장 시스템에 관한 것이다.
SSD(Solid State Drive)와 같은 데이터 저장 장치는 사용 기간에 따라 에러 발생율이 증가하는 문제가 있다.
종래에는 SSD 내부에서 에러가 발생하는 경우 해밍 코드, 리드 솔로몬 코드 BCH, LDPC 등의 에러 정정 코드(Error Correction Code, ECC)나 수퍼 페이지-레벨 패리티 등의 기법을 통해서 에러를 복구한다.
그러나 복구 성능이 좋을수록 복구 시간이 오래 걸리는 문제가 있고 데이터 저장 장치의 수명이 오래될수록 오류 발생 빈도가 증가하여 결과적으로 데이터 저장 시스템의 성능이 저하될 수 있다.
https://nvmexpress.org/wp-content/uploads/NVM_Express_Revision_1.3.pdf
https://nvmexpress.org/wp-content/uploads/NVM-Express-1_4-2019.06.10-Ratified.pdf
본 기술은 레이드를 구성하는 다수의 데이터 저장 장치에서 데이터 저장 장치의 에러 처리 정보에 따라 데이터 저장 장치 내부에서 에러를 복구하거나 레이드 단위로 에러를 복구하는 데이터 저장 시스템을 제공한다.
본 발명의 일 실시예에 의한 데이터 저장 시스템은 읽기 요청을 제공하는 호스트, 레이드를 구성하는 다수의 데이터 저장 장치, 및 레이드 설정에 따라 읽기 요청에 대응하여 다수의 데이터 저장 장치에 제공할 읽기 명령을 생성하는 레이드 제어기를 포함하되, 다수의 데이터 저장 장치 중 어느 하나의 데이터 저장 장치는 비휘발성 메모리 소자, 에러 처리 정보를 저장하는 에러 처리 정보 저장 회로, 및 읽기 명령에 대응하여 비휘발성 메모리 소자에서 출력된 데이터에 에러가 존재하는지 탐지하되 에러 처리 정보에 따라 에러를 복구하거나 에러를 복구하지 않는 에러 탐지 및 복구 회로를 포함한다.
본 발명의 일 실시예에 의한 데이터 저장 장치는 비휘발성 메모리 소자, 읽기 명령에 따라 비휘발성 메모리 소자를 제어하는 소자 제어 회로, 에러 처리 정보를 저장하는 에러 처리 정보 저장 회로; 및 비휘발성 메모리 소자에서 출력된 데이터의 에러를 탐지하고 에러 처리 정보에 따라 에러를 복구하거나 에러를 복구하지 않는 에러 탐지 및 복구 회로를 포함한다.
본 기술에서는 레이드 제어기의 에러 복구 성능과 데이터 저장 장치의 에러 복구 성능에 따라 데이터 저장 장치의 에러 처리 정보를 변경하여 응답 시간을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 의한 데이터 저장 시스템을 나타내는 블록도.
도 2는 본 발명의 일 실시예에 의한 호스트를 나타내는 블록도.
도 3은 본 발명의 일 실시예에 의한 레이드 제어기를 나타내는 블록도.
도 4는 본 발명의 일 실시예에 의한 데이터 저장 장치를 나타내는 블록도.
도 5는 본 발명의 일 실시예에 의한 호스트의 동작을 나타내는 순서도.
도 6은 본 발명의 일 실시예에 의한 레이드 제어기의 동작을 나타내는 순서도.
도 7은 본 발명의 일 실시예에 의한 데이터 저장 장치의 동작을 나타내는 순서도.
도 2는 본 발명의 일 실시예에 의한 호스트를 나타내는 블록도.
도 3은 본 발명의 일 실시예에 의한 레이드 제어기를 나타내는 블록도.
도 4는 본 발명의 일 실시예에 의한 데이터 저장 장치를 나타내는 블록도.
도 5는 본 발명의 일 실시예에 의한 호스트의 동작을 나타내는 순서도.
도 6은 본 발명의 일 실시예에 의한 레이드 제어기의 동작을 나타내는 순서도.
도 7은 본 발명의 일 실시예에 의한 데이터 저장 장치의 동작을 나타내는 순서도.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예를 개시한다.
도 1은 본 발명의 일 실시예에 의한 데이터 저장 시스템(1)을 나타내는 블록도이다.
데이터 저장 시스템(1)은 호스트(100), 레이드 제어기(200), 레이드를 구성하는 다수의 데이터 저장 장치(300)를 포함한다.
레이드를 구성하는 다수의 데이터 저장 장치(300)를 레이드 데이터 저장 장치(300)로 지칭할 수 있다.
본 실시예에서 데이터 저장 장치(300)는 SSD(Solid State Drive)이나 이것으로 제한되는 것은 아니다. 이하에서 데이터 저장 장치(300)를 SSD로 지칭할 수 있다.
레이드 제어기(200)는 다수의 데이터 저장 장치(300)를 레이드(RAID: Redundant Array of Independent Disks)로 구성하여 관리할 수 있다.
다수의 데이터 저장 장치를 레이드 0, 1, 4, 5, 6, 1+0, 0+1 등의 다양한 설정에 따라 레이드로 관리하는 기술은 잘 알려져 있으므로 이에 대한 설명은 생략한다.
레이드 제어기(200)는 위와 같은 설정에 따라 다수의 데이터 저장 장치(300)를 관리한다.
레이드 제어기(200)는 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
레이드 제어기(200)는 호스트(100)의 일부로 포함될 수 있으나 도 1에서는 호스트(100)와 레이드 제어기(200)를 별도의 블록을 사용하여 표시하였다.
호스트(100)는 읽기 또는 쓰기 요청과 주소를 레이드 제어기(200)에 제공하고 레이드 제어기(200)는 호스트에서 전달된 요청에 따라 다수의 데이터 저장 장치(300)에 각각 명령과 주소를 제공한다.
이때 데이터 저장 장치(300)에 제공되는 명령과 주소를 SSD 명령, SSD 주소로 지칭할 수 있다.
쓰기 요청 시 호스트(100)에서 제공된 데이터는 레이드 제어기(200)를 통해 다수의 데이터 저장 장치(300)에 제공될 수 있다.
읽기 요청 시 다수의 데이터 저장 장치(300)에서 출력된 데이터는 레이드 제어기(200)를 통해 호스트(100)에 제공된다.
본 실시예는 읽기 요청시 발생하는 데이터의 에러 복구에 관련된 것이므로 이하에서 요청 및 명령은 특별한 표시가 없는 이상 읽기 요청, 읽기 명령으로 이해한다.
데이터 저장 장치(300)는 읽기 동작 후 에러가 발생하는 경우 에러 처리 정보에 따라 직접 에러를 복구하여 데이터를 레이드 제어기(200)로 보내거나 에러를 복구하지 않은 데이터를 레이드 제어기(200)로 보낼 수 있다. 이때 에러 처리 정보를 SSD 에러 처리 정보로 지칭할 수 있다.
데이터 저장 장치(300)는 직접 에러를 복구하는 경우 에러 복구 정보를 저장한다. 데이터 저장 장치(300)의 에러 복구 정보를 SSD 에러 복구 정보로 지칭할 수 있다.
SSD 에러 복구 정보는 에러 복구에 걸리는 시간, 에러 발생 빈도, 에러 발생 비트 수 등을 포함할 수 있다. 예를 들어 에러 복구에 걸리는 시간은 일정한 횟수의 최근 에러 복구 시간을 평균한 정보일 수 있다.
SSD 에러 처리 정보는 다수의 레벨로 구별되어 데이터 저장 장치(200)에서 에러를 복구할 것인지 여부를 나타낼 수 있다.
SSD 에러 처리 정보는 에러를 복구하는 경우 어느 수준의 복구 기술을 적용할 것인지 나타낼 수도 있다.
PCI Express로 연결된 비휘발성 저장 장치들을 위한 통신 규격인 NVMe 규격 버전 1.4에 의하면 RRL(Read Recovery Level)을 제시하고 있는데 이를 SSD 에러 처리 정보의 예로 볼 수 있다.
RRL은 레벨 0에서 레벨 15까지 총 15개의 레벨을 포함한다.
데이터 저장 장치(300)는 RRL 레벨이 낮을수록 에러 복구 성능을 높이고 RRL 레벨이 높을 수록 에러 복구 성능을 낮출 수 있다.
이중 레벨 15로 설정된 경우에는 데이터 저장 장치(200)는 스스로 에러를 복구하지 않고 레이드 제어기(200)에 SSD 에러 신호를 통해 에러 발생을 알릴 수 있으며 이를 패스트-페일(Fast-Fail)로 지칭할 수 있다.
이에 따라 RRL 레벨이 낮을수록 데이터 저장 장치(300)의 응답 시간은 느려지고 RRL 레벨이 높을 수록 응답 시간이 길어진다.
레이드 제어기(200)가 SSD 에러 신호를 수신하는 경우 레이드로 관리되는 다른 데이터 저장 장치들에 저장된 데이터의 복사본이나 패리티 정보를 읽어 에러를 복구할 수 있다
레이드 제어기(200)는 에러를 복구한 후 에러가 복구된 데이터를 쓰는 명령을 에러가 발생한 데이터 저장 장치(300)에 제공할 수 있다.
레이드 제어기(200)는 에러를 복구하는 경우 에러 복구 정보를 저장한다. 레이드 제어기(300)의 에러 복구 정보를 레이드 에러 복구 정보로 지칭할 수 있다.
레이드 에러 복구 정보는 에러 복구에 걸리는 시간, 에러 발생 빈도, 에러 발생 비트 수 등을 포함할 수 있다. 예를 들어 에러 복구에 걸리는 시간은 일정한 횟수의 최근 에러 복구 시간을 평균한 정보일 수 있다.
호스트(100)는 레이드 에러 복구 정보와 SSD 에러 복구 정보를 참조하여 다수의 데이터 저장 장치(300)에 대해서 SSD 에러 처리 정보를 조절할 수 있다.
도 2는 본 발명의 일 실시예에 의한 호스트(100)의 구조를 나타내는 블록도이다.
호스트(100)는 요청 생성 회로(110), 데이터 버퍼(120), 레이드 인터페이스 회로(130), 에러 처리 정보 조절 회로(140), 및 SSD 인터페이스 회로(150)를 포함한다.
요청 생성 회로(110)는 읽기 요청 또는 쓰기 요청과 주소를 생성하며 이들은 레이드 인터페이스 회로(130)를 통해 레이드 제어기(200)로 제공된다.
데이터 버퍼(120)는 쓰기 요청된 데이터를 저장하거나 레이드 제어기(200)로부터 제공된 읽기 데이터를 저장한다.
에러 처리 정보 조절 회로(140)는 레이드 에러 복구 정보와 SSD 에러 복구 정보에 따라 SSD 에러 처리 정보를 조절한다.
레이드 에러 복구 정보는 레이드 인터페이스 회로(130)를 통해 레이드 제어기(200)로부터 제공될 수 있다.
SSD 에러 복구 정보는 SSD 인터페이스 회로(150)를 통해 데이터 저장 장치(300)로부터 제공될 수 있으며 SSD 에러 처리 정보는 SSD 인터페이스 회로(150)를 통해 데이터 저장 장치(300)에 제공될 수 있다.
에러 처리 정보 조절 회로(140)는 레이드 설정을 추가로 참조하여 SSD 에러 처리 정보를 조절할 수 있다.
예를 들어 레이드 0인 경우에는 레이드 제어기(200) 수준에서 에러를 복구할 수 없으므로 레이드 설정을 참조하여 데이터 저장 장치(300)가 직접 에러를 복구하도록 SSD 에러 처리 정보를 조절할 수 있다.
도 5는 호스트(100)의 동작 특히 에러 처리 정보 조절 회로(140)의 동작을 나타내는 순서도이다.
에러 처리 정보 조절 동작은 다수의 데이터 저장 장치(300) 각각에 대해서 수행될 수 있다.
먼저 에러 처리 정보 조절 회로(140)는 어느 하나의 데이터 저장 장치(300)에서 전송된 SSD 에러 복구 정보와 레이드 제어기(200)에서 전송된 레이드 에러 복구 정보를 비교한다.
다음으로 에러 처리 정보 조절 회로(140)는 비교 결과에 따라 해당 데이터 저장 장치(300)에 대한 SSD 에러 처리 정보를 조절한다.
예를 들어 데이터 저장 장치(300)에서 에러를 복구하는데 걸리는 시간이 레이드 제어기(200)에서 에러를 복구하는데 걸리는 시간보다 길어지면 해당 데이터 저장 장치(300)의 SSD 에러 처리 정보를 RRL 레벨 15로 설정할 수 있다.
이를 통해 데이터 저장 장치(300)는 에러가 발생하는 경우 에러를 스스로 복구하지 않고 레이드 제어기(200)에서 에러를 복구하도록 하여 응답 시간을 향상시킬 수 있다.
다만 레이드 0과 같이 레이드 제어기(200) 수준에서 에러를 복구할 수 없는 경우에는 SSD 에러 처리 정보를 RRL 레벨 15와 같이 설정하는 것이 바람직하지 않으므로 레이드 설정을 추가로 참조할 수 있다.
레이드 설정 정보는 호스트(100)에서 저장하고 있을 수도 있으나 레이드 제어기(200)로부터 제공될 수 있다.
호스트(100)는 시스템의 성능 저하를 방지하기 위하여 유휴 상태에서 도 5의 SSD 에러 처리 정보 조절 동작을 수행할 수 있으나 반드시 이러한 경우로 한정되는 것은 아니다.
도 3은 본 발명의 일 실시예에 의한 레이드 제어기(200)를 나타내는 블록도이다.
레이드 제어기(200)는 호스트 인터페이스 회로(210), 레이드 요청 처리 회로(220), SSD 인터페이스 회로(230), 레이드 데이터 처리 회로(240) 및 레이드 에러 복구 정보 저장 회로(250)를 포함한다.
호스트 인터페이스 회로(210)를 통해 호스트(100)에서 제공한 읽기 요청과 주소가 입력된다.
레이드 요청 처리 회로(220)는 호스트(100)에서 제공된 읽기 요청과 주소에 대응하여 다수의 데이터 저장 장치(300)에 제공할 명령과 주소를 생성한다.
이때 데이터 저장 장치(300)에 제공되는 명령과 주소를 SSD 명령, SSD 주소로 지칭할 수 있다.
다수의 데이터 저장 장치(300) 각각에 제공되는 SSD 명령과 SSD 주소는 미리 정해진 레이드 설정 정보에 따라 생성되는 것이므로 구체적인 설명은 생략한다.
SSD 인터페이스 회로(230)는 SSD 명령과 SSD 주소를 데이터 저장 장치(300)에 제공한다. 또한 SSD 읽기 명령에 따라 데이터 저장 장치(300)에서 제공된 SSD 데이터를 수신한다.
레이드 데이터 처리 회로(240)는 다수의 데이터 저장 장치(300)에서 제공된 SSD 데이터를 이용하여 읽기 요청된 데이터를 생성한다.
이때 다수의 데이터 저장 장치(300)에서 제공되는 다수의 SSD 데이터는 각각 호스트에서 요청한 데이터의 복사본이거나, 호스트에서 요청한 데이터의 일부분이거나, 패리티 정보이며 이는 설정된 레이드 규격에 따라 달라질 수 있다.
예를 들어 레이드 0의 경우 다수의 SSD 데이터를 조합하여 호스트에 데이터를 제공할 수 있다.
예를 들어 레이드 1의 경우 다수의 SSD 데이터가 동일하므로 이들 중 하나를 호스트에 제공할 수 있다.
이와 같이 레이드 데이터 처리 회로(240)는 하나 또는 둘 이상의 SSD 데이터를 이용하여 호스트에서 요청한 데이터를 생성한다.
레이드 데이터 처리 회로(240)는 SSD 인터페이스 회로(230)를 통해 데이터 저장 장치(300)로부터 SSD 에러 신호를 더 수신할 수 있다.
SSD 에러 신호는 해당 데이터 저장 장치(300)에서 에러를 복구하지 않았음을 나타낸다. 에러를 복구하지 않은 경우 복구되지 않은 데이터를 함께 전송할 수 있다.
레이드 데이터 처리 회로(240)는 SSD 에러 신호를 수신하는 경우 레이드 기술을 이용하여 SSD 데이터에 포함된 에러를 복구할 수 있다.
레이드 0을 사용하는 경우 데이터에 오류가 생기면 복구가 불가능하므로 이 경우는 다른 데이터 저장 장치(300)에 저장된 데이터 복사본, 데이터 조각 또는 패리티를 이용하여 데이터를 복구할 수 있는 레이드 설정을 전제로 한다.
레이드 데이터 처리 회로(240)가 에러를 복구하는 경우 레이드 에러 복구 정보를 레이드 에러 복구 정보 저장 회로(250)에 저장한다.
전술한 바와 같이 레이드 에러 복구 정보는 에러 복구에 걸린 시간 등의 정보를 포함할 수 있다.
레이드 에러 복구 정보는 호스트 인터페이스 회로(210)를 통해 호스트(100)에 제공될 수 있다.
도 6은 본 발명의 일 실시예에 의한 레이드 제어기(200)의 동작을 나타내는 순서도이다.
먼저 SSD 에러 신호를 참조하여 에러 복구가 필요한지 판단한다(S210).
에러 복구가 필요하지 않으면 호스트에 데이터를 전달하고(S250) 종료한다.
에러 복구가 필요하면 다른 데이터 저장 장치(300)로부터 데이터의 복사본, 조각 또는 패리티를 읽는다(S220).
이때 다른 데이터 저장 장치(300)로부터 추가 에러가 발생하였는지 판단한다(S221).
추가 에러가 발생하였다면 레이드 기술로 에러 복구가 가능한지 판단한다(S222).
레이드 기술로 에러를 복구할 수 있는지를 판단하고 이에 따라 에러를 복구하는 것은 잘 알려진 것이므로 설명을 생략한다.
추가 에러가 발생하지 않았거나 발생하였더라도 에러 복구가 가능하다면 레이드 기술로 에러를 복구한다(S230).
이후 에러가 발생한 하나 또는 둘 이상의 데이터 저장 장치(S240)에 복구된 데이터를 쓰는 명령을 제공한다(S240).
이후 호스트에 데이터를 전달하고(S250) 동작을 종료한다.
만일 단계(S22)에서 레이드 기술로 에러 복구가 불가능한 것으로 판단하면 페일 처리를 수행한다(S223).
페일 처리를 위하여 레이드 제어기(200)는 레이드 페일 신호를 호스트(100)에 제공할 수 있다.
이 경우 레이드 페일 신호는 에러가 발생한 데이터 저장 장치(300)에 관한 정보를 포함할 수 있다.
레이드 페일 신호를 수신하는 경우 호스트(100)는 도 5에 도시된 단계들을 무시하고 해당하는 데이터 저장 장치(300)의 SSD 에러 처리 조절 정보를 조절하여 데이터 저장 장치(300) 자체적으로 에러 복구를 수행하도록 설정할 수 있다.
이후 호스트(100)는 레이드 페일을 야기한 읽기 요청을 다시 레이드 제어기(200)에 제공할 수 있다.
페일 처리는 다른 형태로 수행될 수 있다.
예를 들어 레이드 제어기(200)는 레이드 페일 신호를 야기한 데이터 저장 장치(300)의 SSD 에러 처리 정보를 수정하도록 직접 지시할 수 있다.
이 경우 도 3과 도 4는 다음과 같이 변경될 수 있다.
즉, 도 3에서 레이드 데이터 처리 회로(220)는 SSD 인터페이스(230)를 통해 SSD 에러 처리 정보를 데이터 저장 장치(300)에 추가로 전송할 수 있으며, 도 4에서 SSD 에러 처리 정보 저장 회로(370)는 레이드 인터페이스 회로(310)로부터 추가로 제공되는 SSD 처리 정보를 수신할 수 있다.
도 4는 본 발명의 일 실시예에 의한 데이터 저장 장치(300)를 나타내는 블록도이다.
데이터 저장 장치(300)는 레이드 인터페이스 회로(310), 소자 제어 회로(320), 비휘발성 메모리 소자(330), 호스트 인터페이스 회로(340), 에러 탐지 및 복구 회로(350), SSD 에러 복구 정보 저장 회로(360), SSD 에러 처리 정보 저장 회로(370)를 포함한다.
플래시 칩은 비휘발성 메모리 소자(330)의 일 예이며 이하에서는 비휘발성 메모리 소자(330)를 플래시 칩(330)으로 지칭할 수 있다. 이 경우 소자 제어 회로(320)를 플래시 제어 회로(320)로 지칭할 수 있다.
플래시 제어 회로(320)는 레이드 인터페이스 회로(310)를 통해 전송된 SSD 명령과 SSD 주소에 따라 플래시 칩(330)에 대한 읽기 동작을 제어한다.
읽기 또는 쓰기 동작을 위한 플래시 제어 회로(320), 플래시 칩(330)의 동작은 잘 알려진 것이므로 구체적인 설명은 생략한다.
에러 탐지 및 복구 회로(350)는 플래시 칩(330)에서 출력된 데이터에서 에러를 탐지하고 복구한다.
에러 탐지 및 복구 동작은 ECC 등과 같이 다양한 기술을 사용할 수 있는 것이므로 구체적인 설명은 생략한다.
에러를 탐지한 경우 에러 탐지 및 복구 회로(350)는 SSD 에러 처리 정보 저장 회로(370)에 저장된 SSD 에러 처리 정보를 참조한다.
예를 들어 전술한 바와 같이 SSD 에러 처리 정보가 RRL 레벨 15에 대응하면 에러 탐지 및 복구 회로(350)는 에러를 복구하지 않고 SSD 에러 신호를 레이드 인터페이스(310)를 통해 레이드 제어기(200)에 전송한다.
다른 경우 에러 탐지 및 복구 회로(350)는 SSD 에러 처리 정보를 참조하여 에러 복구 동작을 수행하고 에러 복구에 걸린 시간 등을 SSD 에러 복구 정보 저장 회로(360)에 제공하여 SSD 에러 복구 정보를 갱신하도록 한다.
또한 에러 복구 동작을 수행하는 경우에도 SSD 에러 처리 정보에 따라 복구 성능이 조절되도록 에러 복구 기술을 다양하게 변경하여 적용할 수 있다.
전술한 바와 같이 SSD 에러 복구 정보는 호스트 인터페이스(340)를 통해 호스트(100)에 제공될 수 있다.
또한 호스트(100)에서 조절된 SSD 에러 처리 정보는 호스트 인터페이스(340)를 통해 SSD 에러 처리 정보 저장 회로(370)에 제공될 수 있다.
전술한 바와 같이 레이드 제어기(200)에서 직접 레이드 페일 처리를 수행하는 경우 레이드 제어기(200)에서 제공된 SSD 에러 처리 정보가 레이드 인터페이스(310)를 통해 SSD 에러 처리 정보 저장 회로(370)에 추가로 제공될 수 있다.
도 7은 본 발명의 일 실시예에 의한 데이터 저장 장치(300)의 읽기 동작을 나타내는 순서도이다.
먼저 플래시 칩(330)에 대해서 읽기 동작을 수행한다(S310).
이후 플래시 칩(330)에서 읽은 데이터에 에러가 존재하는지 판단한다(S320).
에러가 발생하지 않았으면 읽기 성공 처리 동작을 수행하고(S370) 종료한다.
읽기 성공 처리 동작은 플래시 칩에서 출력된 데이터를 SSD 데이터로 레이드 제어기(200)에 출력하는 것이다.
단계(S320)에서 에러가 발생했으면 SSD 에러 처리 정보가 RRL 레벨 15와 같이 패스트 페일에 대응하는지 판단한다(S330).
패스트 페일에 대응하는 경우 읽기 실패 처리 동작을 수행하고(S350) 종료한다.
읽기 실패 처리 동작은 SSD 에러 신호를 레이드 제어기(200)에 출력하는 것이다.
단계(S330)에서 SSD 에러 처리 정보가 패스트 페일에 대응하지 않으면 에러 복구를 시도한다(S340).
에러 복구를 수행하는 경우 SSD 에러 처리 정보를 참조하여 에러 복구에 사용하는 기술을 변경할 수 있다.
이후 에러 복구가 성공하였는지 판단한다(S360).
에러 복구가 성공하였으면 읽기 성공 처리 동작을 수행하고(S370) 에러 복구가 실패하였으면 읽기 실패 처리 동작을 수행한(S350) 후 종료한다.
이상에서는 SSD 에러 처리 정보를 호스트(100) 또는 레이드 제어기(200)에서 제어하는 것으로 개시하였다.
실시예에 따라서 데이터 저장 장치(300)의 에러 탐지 및 복구 회로(350)는 SSD 에러 복구 정보를 참조하여 SSD 에러 처리 정보를 직접 갱신할 수 있다.
예를 들어 SSD 에러 복구 시간이 미리 정해진 시간보다 더 길다면 에러 탐지 및 복구 회로(350)는 직접 SSD 에러 처리 정보를 갱신할 수 있다.
예를 들어 미리 정해진 시간은 레이드 에러 복구 시간에 근사한 값으로 실험적으로 결정될 수 있을 것이며 이 경우 SSD 에러 복구 시간이 미리 정해진 시간보다 증가하는 경우 데이터 저장 장치(300)에서 에러를 복구하지 않도록 직접 SSD 에러 처리 정보를 갱신할 수 있을 것이다.
본 발명의 권리범위는 이상의 개시로 한정되는 것은 아니다. 본 발명의 권리범위는 청구범위에 문언적으로 기재된 범위와 그 균등범위를 기준으로 해석되어야 한다.
100: 호스트
110: 요청 생성 회로 120: 데이터 버퍼
130: 레이드 인터페이스 회로 140: 에러 처리 정보 조절 회로
150: SSD 인터페이스 회로
200: 레이드 제어기
210: 호스트 인터페이스 회로 220: 레이드 요청 처리 회로
230: SSD 인터페이스 회로 240: 레이드 데이터 처리 회로
250: 레이드 에러 복구 정보 저장 회로
300: 데이터 저장 장치, SSD
310: 레이드 인터페이스 회로
320: 소자 제어 회로, 플래시 제어 회로
330: 비휘발성 메모리 소자, 플래시 칩
340: 호스트 인터페이스 회로
350: 에러 탐지 및 복구 회로 360: SSD 에러 복구 정보 저장 회로
370: SSD 에러 처리 정보 저장 회로
110: 요청 생성 회로 120: 데이터 버퍼
130: 레이드 인터페이스 회로 140: 에러 처리 정보 조절 회로
150: SSD 인터페이스 회로
200: 레이드 제어기
210: 호스트 인터페이스 회로 220: 레이드 요청 처리 회로
230: SSD 인터페이스 회로 240: 레이드 데이터 처리 회로
250: 레이드 에러 복구 정보 저장 회로
300: 데이터 저장 장치, SSD
310: 레이드 인터페이스 회로
320: 소자 제어 회로, 플래시 제어 회로
330: 비휘발성 메모리 소자, 플래시 칩
340: 호스트 인터페이스 회로
350: 에러 탐지 및 복구 회로 360: SSD 에러 복구 정보 저장 회로
370: SSD 에러 처리 정보 저장 회로
Claims (16)
- 읽기 요청을 제공하는 호스트;
레이드를 구성하는 다수의 데이터 저장 장치; 및
레이드 설정에 따라 상기 읽기 요청에 대응하여 상기 다수의 데이터 저장 장치에 제공할 읽기 명령을 생성하는 레이드 제어기;
를 포함하되, 상기 다수의 데이터 저장 장치 중 어느 하나의 데이터 저장 장치는
비휘발성 메모리 소자;
에러 처리 정보를 저장하는 에러 처리 정보 저장 회로; 및
상기 읽기 명령에 대응하여 상기 비휘발성 메모리 소자에서 출력된 데이터에 에러가 존재하는지 탐지하되 상기 에러 처리 정보에 따라 에러를 복구하거나 에러를 복구하지 않는 에러 탐지 및 복구 회로
를 포함하는 데이터 저장 시스템. - 청구항 1에 있어서, 상기 에러 탐지 및 복구 회로에서 에러를 복구하지 않는 경우 상기 레이드 제어기는 상기 어느 하나의 데이터 저장 장치를 제외한 상기 다수의 데이터 저장 장치에서 읽은 데이터를 이용하여 상기 어느 하나의 데이터 저장 장치에서 발생한 에러를 복구하는 레이드 데이터 처리 회로를 포함하는 데이터 저장 시스템.
- 청구항 2에 있어서, 상기 레이드 데이터 처리 회로에서 에러를 복구한 경우 상기 레이드 제어기는 상기 어느 하나의 데이터 저장 장치에 복구한 데이터에 대한 쓰기 명령을 제공하는 데이터 저장 시스템.
- 청구항 2에 있어서, 상기 호스트는 상기 어느 하나의 데이터 저장 장치의 에러 복구 정보와 상기 레이드 제어기의 레이드 에러 복구 정보를 비교하여 상기 에러 처리 정보를 조절하는 에러 처리 정보 조절 회로를 포함하는 데이터 저장 시스템.
- 청구항 4에 있어서, 상기 어느 하나의 데이터 저장 장치는 상기 에러 복구 정보를 저장하는 에러 복구 정보 저장 회로를 더 포함하고, 상기 에러 탐지 및 복구 회로에서 에러를 복구하는 경우 상기 에러 복구 정보를 갱신하는 데이터 저장 시스템.
- 청구항 4에 있어서, 상기 레이드 제어기는 상기 레이드 복구 정보를 저장하는 레이드 에러 복구 정보 저장 회로를 더 포함하고, 상기 레이드 데이터 처리 회로에서 에러를 복구하는 경우 상기 레이드 에러 복구 정보를 갱신하는 데이터 저장 시스템.
- 청구항 4에 있어서, 상기 호스트는 상기 레이드 제어기의 에러 복구 시간이 상기 어느 하나의 데이터 저장 장치의 에러 복구 시간보다 더 짧은 경우 상기 어느 하나의 데이터 저장 장치가 에러를 복구하지 않도록 상기 에러 처리 정보를 조절하는 데이터 저장 시스템.
- 비휘발성 메모리 소자;
읽기 명령에 따라 상기 비휘발성 메모리 소자를 제어하는 소자 제어 회로;
에러 처리 정보를 저장하는 에러 처리 정보 저장 회로; 및
상기 비휘발성 메모리 소자에서 출력된 데이터의 에러를 탐지하고 상기 에러 처리 정보에 따라 상기 에러를 복구하거나 상기 에러를 복구하지 않는 에러 탐지 및 복구 회로;
를 포함하는 데이터 저장 장치. - 청구항 8에 있어서, 에러 복구 정보를 저장하는 에러 복구 정보 저장 회로를 더 포함하되,
상기 에러 탐지 및 복구 회로는 에러를 복구하는 경우 상기 에러 복구 정보를 갱신하는 데이터 저장 장치. - 청구항 9에 있어서, 상기 에러 처리 정보는 상기 에러 복구 정보에 따라 갱신되는 데이터 저장 장치.
- 청구항 10에 있어서, 상기 에러 처리 정보 저장 회로는 상기 에러 복구 정보에 따라 외부에서 조절된 신호를 입력받아 상기 에러 처리 정보를 갱신하는 데이터 저장 장치.
- 청구항 10에 있어서, 상기 에러 탐지 및 복구 회로는 상기 에러 복구 정보를 미리 정해진 조건과 비교하여 상기 에러 처리 정보를 조절하는 데이터 저장 장치.
- 청구항 12에 있어서, 상기 에러 탐지 및 복구 회로는 상기 에러 복구 정보 중 에러 복구 시간이 미리 정해진 시간을 초과하는 경우 상기 에러를 복구하지 않도록 상기 에러 처리 정보를 갱신하는 데이터 저장 장치.
- 청구항 8에 있어서, 상기 데이터 저장 장치는 레이드 제어 회로에 따라 제어되며,
상기 읽기 명령을 상기 레이드 제어 회로에서 수신하여 상기 소자 제어 회로에 제공하고, 상기 데이터를 상기 레이드 제어 회로에 제공하는 레이드 인터페이스 회로를 더 포함하는 데이터 저장 장치. - 청구항 14에 있어서, 상기 에러 탐지 및 복구 회로는 상기 에러를 복구하지 않는 경우 에러 신호를 상기 레이드 제어 회로에 제공하는 데이터 저장 장치.
- 청구항 15에 있어서, 상기 소자 제어 회로는 상기 에러 신호에 대응하여 상기 레이드 제어 회로에서 제공되는 복구 데이터에 대한 쓰기 명령에 따라 상기 비휘발성 메모리 소자를 제어하는 데이터 저장 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200105239A KR20220023476A (ko) | 2020-08-21 | 2020-08-21 | 레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템 |
US17/191,216 US11481274B2 (en) | 2020-08-21 | 2021-03-03 | Raid data storage device and data storage system including the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200105239A KR20220023476A (ko) | 2020-08-21 | 2020-08-21 | 레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220023476A true KR20220023476A (ko) | 2022-03-02 |
Family
ID=80270708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200105239A KR20220023476A (ko) | 2020-08-21 | 2020-08-21 | 레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11481274B2 (ko) |
KR (1) | KR20220023476A (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11397644B2 (en) * | 2019-04-23 | 2022-07-26 | Samsung Electronics Co., Ltd. | Method for controlling operations of RAID system comprising host device and plurality of SSDs |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130111821A (ko) | 2012-04-02 | 2013-10-11 | 삼성전자주식회사 | Raid 메모리 시스템 |
KR102072829B1 (ko) | 2013-06-14 | 2020-02-03 | 삼성전자주식회사 | 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 글로벌 가비지 컬렉션 방법 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5487160A (en) * | 1992-12-04 | 1996-01-23 | At&T Global Information Solutions Company | Concurrent image backup for disk storage system |
JP4751153B2 (ja) * | 2005-06-08 | 2011-08-17 | 株式会社日立製作所 | 記憶システム |
JP2007293442A (ja) * | 2006-04-21 | 2007-11-08 | Hitachi Ltd | ストレージシステム及びその制御方法 |
GB0622224D0 (en) * | 2006-11-08 | 2006-12-20 | Ibm | Apparatus and method for disk read checking |
US7827434B2 (en) * | 2007-09-18 | 2010-11-02 | International Business Machines Corporation | Method for managing a data storage system |
US7877626B2 (en) * | 2007-12-31 | 2011-01-25 | Datadirect Networks, Inc. | Method and system for disk storage devices rebuild in a data storage system |
US10007575B2 (en) * | 2010-02-27 | 2018-06-26 | International Business Machines Corporation | Alternative multiple memory format storage in a storage network |
JP2012043304A (ja) * | 2010-08-20 | 2012-03-01 | Fujitsu Ltd | ディスクアレイ装置およびディスクアレイ装置の制御方法 |
JP5388976B2 (ja) * | 2010-09-22 | 2014-01-15 | 株式会社東芝 | 半導体記憶制御装置 |
WO2013145617A1 (ja) * | 2012-03-29 | 2013-10-03 | パナソニック株式会社 | 情報処理装置、情報処理方法及び情報記憶媒体 |
US8924832B1 (en) * | 2012-06-26 | 2014-12-30 | Western Digital Technologies, Inc. | Efficient error handling mechanisms in data storage systems |
US9280301B2 (en) * | 2013-08-28 | 2016-03-08 | Huawei Technologies Co., Ltd. | Method and device for recovering erroneous data |
US9529670B2 (en) * | 2014-05-16 | 2016-12-27 | International Business Machines Corporation | Storage element polymorphism to reduce performance degradation during error recovery |
US9766837B2 (en) * | 2015-06-10 | 2017-09-19 | Micron Technology, Inc. | Stripe mapping in memory |
US9910786B2 (en) * | 2015-11-03 | 2018-03-06 | Intel Corporation | Efficient redundant array of independent disks (RAID) write hole solutions |
KR102549605B1 (ko) * | 2016-03-04 | 2023-06-30 | 삼성전자주식회사 | Raid 스토리지 장치의 리커버리 방법 |
KR102573301B1 (ko) * | 2016-07-15 | 2023-08-31 | 삼성전자 주식회사 | Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법 |
US10567006B2 (en) * | 2016-08-05 | 2020-02-18 | Sandisk Technologies Llc | Data relocation |
US10725672B2 (en) * | 2016-10-12 | 2020-07-28 | Samsung Electronics Co., Ltd. | Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation |
CN106506645B (zh) * | 2016-11-10 | 2019-11-22 | 中车青岛四方机车车辆股份有限公司 | 轨道车辆的监控方法和系统 |
US10127074B2 (en) * | 2017-01-27 | 2018-11-13 | Futurewei Technologies, Inc. | Transaction identification synchronization |
KR20180091296A (ko) * | 2017-02-06 | 2018-08-16 | 삼성전자주식회사 | 손상된 메타 데이터를 처리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US10908988B2 (en) * | 2017-04-03 | 2021-02-02 | Hitachi, Ltd. | Storage apparatus |
TWI656442B (zh) * | 2017-11-30 | 2019-04-11 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 |
US11216196B2 (en) * | 2018-05-24 | 2022-01-04 | Quantum Corporation | Erasure coding magnetic tapes for minimum latency and adaptive parity protection feedback |
KR20200031402A (ko) | 2018-09-14 | 2020-03-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US10795768B2 (en) * | 2018-10-22 | 2020-10-06 | Seagate Technology Llc | Memory reallocation during raid rebuild |
US10901646B2 (en) * | 2018-11-30 | 2021-01-26 | International Business Machines Corporation | Update of RAID array parity |
US11093320B2 (en) * | 2019-08-12 | 2021-08-17 | International Business Machines Corporation | Analysis facilitator |
-
2020
- 2020-08-21 KR KR1020200105239A patent/KR20220023476A/ko unknown
-
2021
- 2021-03-03 US US17/191,216 patent/US11481274B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130111821A (ko) | 2012-04-02 | 2013-10-11 | 삼성전자주식회사 | Raid 메모리 시스템 |
KR102072829B1 (ko) | 2013-06-14 | 2020-02-03 | 삼성전자주식회사 | 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 글로벌 가비지 컬렉션 방법 |
Non-Patent Citations (2)
Title |
---|
https://nvmexpress.org/wp-content/uploads/NVM_Express_Revision_1.3.pdf |
https://nvmexpress.org/wp-content/uploads/NVM-Express-1_4-2019.06.10-Ratified.pdf |
Also Published As
Publication number | Publication date |
---|---|
US20220058086A1 (en) | 2022-02-24 |
US11481274B2 (en) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10613930B2 (en) | Global error recovery system | |
US10372529B2 (en) | Iterative soft information correction and decoding | |
US10146482B2 (en) | Global error recovery system | |
US10284231B2 (en) | Adaptive outer code for consistent overprovisioning (OP) level | |
KR102279723B1 (ko) | 분산 소거 코딩을 위한 시스템 및 방법 | |
KR102571747B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102374113B1 (ko) | 메모리 장치의 동작 방법, 이를 이용한 메모리 장치 및 그 장치를 포함하는 메모리 시스템 | |
US11157357B2 (en) | Operation methods of memory system and host, and computing system | |
US9804921B2 (en) | Nonvolatile memory apparatus and control method of nonvolatile memory apparatus | |
US10153052B2 (en) | Flash command that reports a count of cell program failures | |
KR20200139571A (ko) | 오류 정정 디코더 및 이를 포함하는 메모리 시스템 | |
US10229742B2 (en) | Flash memory device | |
KR20210121654A (ko) | 메모리 시스템의 데이터 에러를 복구하는 장치 및 방법 | |
KR20220023476A (ko) | 레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템 | |
US10908988B2 (en) | Storage apparatus | |
US10554228B1 (en) | Error correction device and electronic device including the same | |
US20230197183A1 (en) | Storage controller including parity management module, storage device including the same, and operating method of storage device | |
KR20200018156A (ko) | 메모리장치에 대한 에러정정코드 기능을 갖는 메모리 시스템 및 그 운영방법 | |
US11663079B2 (en) | Data recovery using a combination of error correction schemes | |
US10922025B2 (en) | Nonvolatile memory bad row management | |
US20170017417A1 (en) | Data storage device and operating method thereof | |
KR20230056901A (ko) | 메모리 장치에 데이터를 프로그램하는 장치 및 방법 | |
TW201921245A (zh) | 用於支持錯誤更正碼的裝置及其測試方法 | |
US11567828B2 (en) | Asymmetric LLR generation using assist-read | |
US11336296B2 (en) | Controller and memory system having the controller |