KR20220023476A - 레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템 - Google Patents

레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템 Download PDF

Info

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
Application number
KR1020200105239A
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 KR1020200105239A priority Critical patent/KR20220023476A/ko
Priority to US17/191,216 priority patent/US11481274B2/en
Publication of KR20220023476A publication Critical patent/KR20220023476A/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
    • 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/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/1008Adding 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/1048Adding 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
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1489Generic software techniques for error detection or fault masking through recovery blocks
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/0688Non-volatile semiconductor memory arrays

Abstract

본 기술에 의한 데이터 저장 장치는 비휘발성 메모리 소자, 읽기 명령에 따라 비휘발성 메모리 소자를 제어하는 소자 제어 회로, 에러 처리 정보를 저장하는 에러 처리 정보 저장 회로; 및 비휘발성 메모리 소자에서 출력된 데이터의 에러를 탐지하고 에러 처리 정보에 따라 에러를 복구하거나 에러를 복구하지 않는 에러 탐지 및 복구 회로를 포함한다.

Description

레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템{RAID DATA STORAGE DEVICE AND DATA STORAGE SYSTEM INCLUDING THE SAME}
본 기술은 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템에 관한 것으로서 보다 구체적으로는 레이드로 묶인 다수의 데이터 저장 장치를 포함하여 에러를 복구하는 데이터 저장 시스템에 관한 것이다.
SSD(Solid State Drive)와 같은 데이터 저장 장치는 사용 기간에 따라 에러 발생율이 증가하는 문제가 있다.
종래에는 SSD 내부에서 에러가 발생하는 경우 해밍 코드, 리드 솔로몬 코드 BCH, LDPC 등의 에러 정정 코드(Error Correction Code, ECC)나 수퍼 페이지-레벨 패리티 등의 기법을 통해서 에러를 복구한다.
그러나 복구 성능이 좋을수록 복구 시간이 오래 걸리는 문제가 있고 데이터 저장 장치의 수명이 오래될수록 오류 발생 빈도가 증가하여 결과적으로 데이터 저장 시스템의 성능이 저하될 수 있다.
KR 10-2072829 B1 KR 10-2013-0111821 A
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은 본 발명의 일 실시예에 의한 데이터 저장 장치의 동작을 나타내는 순서도.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예를 개시한다.
도 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 에러 처리 정보 저장 회로

Claims (16)

  1. 읽기 요청을 제공하는 호스트;
    레이드를 구성하는 다수의 데이터 저장 장치; 및
    레이드 설정에 따라 상기 읽기 요청에 대응하여 상기 다수의 데이터 저장 장치에 제공할 읽기 명령을 생성하는 레이드 제어기;
    를 포함하되, 상기 다수의 데이터 저장 장치 중 어느 하나의 데이터 저장 장치는
    비휘발성 메모리 소자;
    에러 처리 정보를 저장하는 에러 처리 정보 저장 회로; 및
    상기 읽기 명령에 대응하여 상기 비휘발성 메모리 소자에서 출력된 데이터에 에러가 존재하는지 탐지하되 상기 에러 처리 정보에 따라 에러를 복구하거나 에러를 복구하지 않는 에러 탐지 및 복구 회로
    를 포함하는 데이터 저장 시스템.
  2. 청구항 1에 있어서, 상기 에러 탐지 및 복구 회로에서 에러를 복구하지 않는 경우 상기 레이드 제어기는 상기 어느 하나의 데이터 저장 장치를 제외한 상기 다수의 데이터 저장 장치에서 읽은 데이터를 이용하여 상기 어느 하나의 데이터 저장 장치에서 발생한 에러를 복구하는 레이드 데이터 처리 회로를 포함하는 데이터 저장 시스템.
  3. 청구항 2에 있어서, 상기 레이드 데이터 처리 회로에서 에러를 복구한 경우 상기 레이드 제어기는 상기 어느 하나의 데이터 저장 장치에 복구한 데이터에 대한 쓰기 명령을 제공하는 데이터 저장 시스템.
  4. 청구항 2에 있어서, 상기 호스트는 상기 어느 하나의 데이터 저장 장치의 에러 복구 정보와 상기 레이드 제어기의 레이드 에러 복구 정보를 비교하여 상기 에러 처리 정보를 조절하는 에러 처리 정보 조절 회로를 포함하는 데이터 저장 시스템.
  5. 청구항 4에 있어서, 상기 어느 하나의 데이터 저장 장치는 상기 에러 복구 정보를 저장하는 에러 복구 정보 저장 회로를 더 포함하고, 상기 에러 탐지 및 복구 회로에서 에러를 복구하는 경우 상기 에러 복구 정보를 갱신하는 데이터 저장 시스템.
  6. 청구항 4에 있어서, 상기 레이드 제어기는 상기 레이드 복구 정보를 저장하는 레이드 에러 복구 정보 저장 회로를 더 포함하고, 상기 레이드 데이터 처리 회로에서 에러를 복구하는 경우 상기 레이드 에러 복구 정보를 갱신하는 데이터 저장 시스템.
  7. 청구항 4에 있어서, 상기 호스트는 상기 레이드 제어기의 에러 복구 시간이 상기 어느 하나의 데이터 저장 장치의 에러 복구 시간보다 더 짧은 경우 상기 어느 하나의 데이터 저장 장치가 에러를 복구하지 않도록 상기 에러 처리 정보를 조절하는 데이터 저장 시스템.
  8. 비휘발성 메모리 소자;
    읽기 명령에 따라 상기 비휘발성 메모리 소자를 제어하는 소자 제어 회로;
    에러 처리 정보를 저장하는 에러 처리 정보 저장 회로; 및
    상기 비휘발성 메모리 소자에서 출력된 데이터의 에러를 탐지하고 상기 에러 처리 정보에 따라 상기 에러를 복구하거나 상기 에러를 복구하지 않는 에러 탐지 및 복구 회로;
    를 포함하는 데이터 저장 장치.
  9. 청구항 8에 있어서, 에러 복구 정보를 저장하는 에러 복구 정보 저장 회로를 더 포함하되,
    상기 에러 탐지 및 복구 회로는 에러를 복구하는 경우 상기 에러 복구 정보를 갱신하는 데이터 저장 장치.
  10. 청구항 9에 있어서, 상기 에러 처리 정보는 상기 에러 복구 정보에 따라 갱신되는 데이터 저장 장치.
  11. 청구항 10에 있어서, 상기 에러 처리 정보 저장 회로는 상기 에러 복구 정보에 따라 외부에서 조절된 신호를 입력받아 상기 에러 처리 정보를 갱신하는 데이터 저장 장치.
  12. 청구항 10에 있어서, 상기 에러 탐지 및 복구 회로는 상기 에러 복구 정보를 미리 정해진 조건과 비교하여 상기 에러 처리 정보를 조절하는 데이터 저장 장치.
  13. 청구항 12에 있어서, 상기 에러 탐지 및 복구 회로는 상기 에러 복구 정보 중 에러 복구 시간이 미리 정해진 시간을 초과하는 경우 상기 에러를 복구하지 않도록 상기 에러 처리 정보를 갱신하는 데이터 저장 장치.
  14. 청구항 8에 있어서, 상기 데이터 저장 장치는 레이드 제어 회로에 따라 제어되며,
    상기 읽기 명령을 상기 레이드 제어 회로에서 수신하여 상기 소자 제어 회로에 제공하고, 상기 데이터를 상기 레이드 제어 회로에 제공하는 레이드 인터페이스 회로를 더 포함하는 데이터 저장 장치.
  15. 청구항 14에 있어서, 상기 에러 탐지 및 복구 회로는 상기 에러를 복구하지 않는 경우 에러 신호를 상기 레이드 제어 회로에 제공하는 데이터 저장 장치.
  16. 청구항 15에 있어서, 상기 소자 제어 회로는 상기 에러 신호에 대응하여 상기 레이드 제어 회로에서 제공되는 복구 데이터에 대한 쓰기 명령에 따라 상기 비휘발성 메모리 소자를 제어하는 데이터 저장 장치.
KR1020200105239A 2020-08-21 2020-08-21 레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템 KR20220023476A (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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