KR20210039871A - 메타 데이터를 관리하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작방법 - Google Patents

메타 데이터를 관리하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작방법 Download PDF

Info

Publication number
KR20210039871A
KR20210039871A KR1020190122654A KR20190122654A KR20210039871A KR 20210039871 A KR20210039871 A KR 20210039871A KR 1020190122654 A KR1020190122654 A KR 1020190122654A KR 20190122654 A KR20190122654 A KR 20190122654A KR 20210039871 A KR20210039871 A KR 20210039871A
Authority
KR
South Korea
Prior art keywords
block
error
blocks
free
host system
Prior art date
Application number
KR1020190122654A
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 KR1020190122654A priority Critical patent/KR20210039871A/ko
Priority to US16/834,779 priority patent/US11726688B2/en
Priority to EP20177167.2A priority patent/EP3800554B1/en
Priority to CN202010745090.2A priority patent/CN112597069A/zh
Publication of KR20210039871A publication Critical patent/KR20210039871A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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
    • G06F11/1469Backup restoration techniques
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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
    • G06F11/2094Redundant storage or storage space
    • 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
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

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

Abstract

메타 데이터를 관리하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작방법이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 스토리지 시스템은, 하나 이상의 플래시 메모리 장치를 구비하고, 각각의 플래시 메모리 장치는 다수의 블록들을 포함하는 스토리지 장치 및 상기 호스트 시스템으로 상기 다수의 블록들 중 상대적으로 신뢰성이 높은 에러 프리 블록의 정보를 제공하고, 상기 호스트 시스템으로부터 메타 데이터의 저장에 이용될 블록들의 정보를 포함하는 블록 할당 요청을 수신하며, 상기 블록 할당 요청에 따라 하나 이상의 에러 프리 블록들과 하나 이상의 리저브 블록들을 메타 영역에 할당하는 컨트롤러를 구비하고, 상기 컨트롤러는, 상기 블록 할당 요청에 대응하는 할당 동작을 관리하고, 상기 에러 프리 블록에 발생된 에러를 복구하기 위한 복구 처리를 제어하는 배드 블록 매니저를 포함하는 것을 특징으로 한다.

Description

메타 데이터를 관리하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작방법{Storage system managing meta data, Host system controlling storage system and Operating method of storage system}
본 개시의 기술적 사상은 스토리지 시스템에 관한 것으로서, 상세하게는 메타 데이터를 관리하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작방법에 관한 것이다.
플래시 메모리 장치를 기반으로 하는 스토리지 시스템의 예로써 솔리스 스테이트 드라이브(solid state drive, SSD)가 있다. SSD와 같은 스토리지 시스템에 사용되는 인터페이스로 SATA(Serial ATA), PCIe(Peripheral Component Interconnect Express), SAS(Serial Attached SCSI) 등이 있으며, 또한 NVMe(Non-Volatile Memory Express)와 같은 종래의 PCIe 버스를 기반으로 하는 인터페이스가 제안되고 있다.
또한, SSD의 하나의 예로서 오픈 채널 SSD(Open-channel SSD)가 제안되고 있다. 오픈 채널 SSD의 경우 기존에 SSD 내에서 수행되던 어드레스 변환 동작 등의 다양한 기능들이 호스트 시스템 측에서 수행되며, 일 예로서 호스트 시스템이 플래시 변환 레이어(Flash Translation Layer, FTL)를 포함함에 따라 FTL 에 기반하는 각종 관리 동작을 직접 수행할 수 있다. 이 때, 호스트 시스템은 별도의 커맨드를 통해 배드 블록에 관련된 정보를 수신하기 전까지는 스토리지 시스템의 블록 특성을 알기 어려우며, 이에 따라 블록 특성을 알지 못한 상태에서 메타 데이터 등의 중요 정보를 관리해야 하므로, 데이터 신뢰성을 확보하는 데 어려움이 발생될 수 있다.
본 발명의 기술적 사상이 해결하려는 과제는, 메타 데이터를 효율적으로 관리하고 메타 데이터의 신뢰성을 향상할 수 있는 스토리지 시스템, 호스트 시스템 및 스토리지 시스템의 동작방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 스토리지 시스템은, 하나 이상의 플래시 메모리 장치를 구비하고, 각각의 플래시 메모리 장치는 다수의 블록들을 포함하는 스토리지 장치 및 상기 호스트 시스템으로 상기 다수의 블록들 중 상대적으로 신뢰성이 높은 에러 프리 블록의 정보를 제공하고, 상기 호스트 시스템으로부터 메타 데이터의 저장에 이용될 블록들의 정보를 포함하는 블록 할당 요청을 수신하며, 상기 블록 할당 요청에 따라 하나 이상의 에러 프리 블록들과 하나 이상의 리저브 블록들을 메타 영역에 할당하는 컨트롤러를 구비하고, 상기 컨트롤러는, 상기 블록 할당 요청에 대응하는 할당 동작을 관리하고, 상기 에러 프리 블록에 발생된 에러를 복구하기 위한 복구 처리를 제어하는 배드 블록 매니저를 포함하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 스토리지 시스템의 동작방법은, 호스트 시스템으로부터 메타 데이터의 저장에 이용될 블록들의 정보를 포함하는 블록 할당 요청을 수신하는 단계와, 상기 블록 할당 요청에 응답하여, 상기 다수의 블록들 중 상대적으로 신뢰성이 높은 하나 이상의 에러 프리 블록들과 하나 이상의 리저브 블록들을 메타 영역에 할당하는 단계와, 상기 호스트 시스템으로부터 메타 데이터의 기록 요청에 응답하여, 상기 메타 데이터를 상기 메타 영역의 에러 프리 블록에 기록하는 단계와, 상기 에러 프리 블록에 기록된 상기 메타 데이터의 에러를 복구하기 위한 정보를 상기 리저브 블록에 기록하는 단계와, 상기 메타 데이터가 저장된 상기 에러 프리 블록의 배드 블록 여부를 판정하는 단계 및 상기 판정 결과에 따라, 상기 호스트 시스템으로부터 상기 메타 데이터에 대한 독출 요청에 응답하여, 상기 에러 프리 블록으로부터 독출된 메타 데이터 또는 상기 리저브 블록에 저장된 정보를 이용하여 그 에러가 복구된 메타 데이터를 상기 호스트 시스템으로 전송하는 단계를 구비하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 호스트 시스템은, 스토리지 시스템에 구비되는 다수의 블록들에 대한 관리 동작을 수행하고, 상기 다수의 블록들 중 메타 데이터의 저장에 이용될 메타 영역의 블록들의 할당을 위한 블록 할당 요청을 생성하는 요청 생성 모듈을 포함하는 호스트 플래시 변환 레이어(FTL) 및 상기 스토리지 시스템과 인터페이스를 수행하고, 상기 스토리지 시스템으로부터 상기 다수의 블록들 중 상대적으로 신뢰성이 높은 에러 프리 블록들의 정보를 수신하고, 상기 요청 생성 모듈로부터의 블록 할당 요청을 상기 스토리지 시스템 전송하는 인터페이스 회로를 구비하고, 상기 블록 할당 요청은, 상기 에러 프리 블록들 중 상기 메타 영역에 할당이 요청되는 에러 프리 블록의 개수와 위치를 나타내는 정보를 포함하는 것을 특징으로 한다.
본 발명의 기술적 사상의 스토리지 시스템, 호스트 시스템 및 스토리지 시스템의 동작방법에 따르면, 호스트가 어드레스 변환 동작을 수행하는 오픈 채널 SSD 환경에서, 호스트 측에서 지시한 블록들을 포함하는 메타 영역에 메타 데이터가 기록되므로, 호스트가 메타 데이터가 저장된 위치를 잃어버리는 문제를 방지할 수 있으며, 또한 메타 데이터가 저장된 위치를 찾는 데 소요되는 자원을 감소할 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상의 스토리지 시스템, 호스트 시스템 및 스토리지 시스템의 동작방법에 따르면, 스토리지 시스템에서 에러 프리 블록을 제공하고, 호스트가 선택한 에러 프리 블록에 대응하는 리저브 블록이 메타 영역에 함께 포함되며, 리저브 블록이 소진된 경우 추가의 리저브 블록의 할당을 위한 인터페이스가 제공되므로, 메타 데이터의 신뢰성을 더욱 향상시킬 수 있는 효과가 있다.
도 1은 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템을 나타내는 블록도이다.
도 2는 메타 영역 및 유저 영역에 할당된 블록들의 일 예를 나타내는 블록도이다.
도 3은 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템의 동작방법을 나타내는 개념도이다.
도 4는 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템의 일 구현 예를 나타내는 블록도이다.
도 5는 본 발명의 예시적인 실시예에 따른 스토리지 시스템에 구비되는 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 6a,b는 본 발명의 일 실시예에 따라 메타 데이터에 발생된 에러를 복구하는 일 예를 나타내는 블록도이다.
도 7은 호스트 시스템에 구비되는 호스트 FTL의 일 구현 예를 나타내는 블록도이다.
도 8은 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템의 동작방법을 나타내는 플로우차트이다.
도 9a,b는 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템의 동작의 일 예를 나타내는 개념도이다.
도 10은 본 발명의 변형 가능한 실시예에 따른 데이터 처리 시스템을 나타내는 블록도이다.
도 11a,b는 스토리지 시스템에서 수행되는 블록 할당 동작에 대한 다양한 예들을 나타내는 블록도이다.
도 12a,b는 다수의 저장 매체들을 포함하는 SSD 에서 메타 영역에 블록들을 할당한 예를 나타내는 블록도이다.
도 13은 본 발명의 실시 예에 따른 서버 시스템을 포함하는 네트워크 시스템을 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.
도 1은 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템을 나타내는 블록도이다.
도 1을 참조하면, 데이터 처리 시스템(10)은 호스트 시스템(100) 및 스토리지 시스템(200)을 포함할 수 있다. 또한, 스토리지 시스템(200)은 컨트롤러(210) 및 스토리지 장치(220)를 포함할 수 있다. 호스트 시스템(100)은 스토리지 시스템(200)으로 데이터의 기록 또는 독출 요청을 제공할 수 있다. 또한, 호스트 시스템(100)으로부터의 데이터 소거 요청에 따라, 스토리지 시스템(200)은 호스트 시스템(100)으로부터 지시되는 영역의 데이터에 대한 소거 동작을 수행할 수 있다.
스토리지 시스템(200)은 호스트 시스템(100)으로부터의 요청에 따라 데이터를 저장하기 위한 저장 매체들을 포함할 수 있다. 일 예로서, 스토리지 시스템(200)은 하나 이상의 솔리드 스테이트 드라이브(Solid State Drive, SSD)를 포함할 수 있다. 스토리지 시스템(200)이 SSD 를 포함하는 경우, 스토리지 장치(220)는 데이터를 불휘발성하게 저장하는 다수 개의 플래시 메모리 칩들(예컨대, NAND 메모리 칩들)을 포함할 수 있다. 또는, 스토리지 장치(220)는 하나의 플래시 메모리 장치에 해당할 수도 있으며, 또는 스토리지 장치(220)는 하나 이상의 플래시 메모리 칩들을 포함하는 메모리 카드를 포함할 수도 있다.
스토리지 시스템(200)이 플래시 메모리를 포함할 때, 상기 플래시 메모리는 2D NAND 메모리 어레이나 3D(또는 수직형, Vertical) NAND(VNAND) 메모리 어레이를 포함할 수 있다. 상기 3D 메모리 어레이는 실리콘 기판 위에 배치되는 활성 영역을 가지는 메모리 셀들의 어레이들, 또는 상기 메모리 셀들의 동작과 관련된 회로로서 상기 기판상에 또는 상기 기판 내에 형성된 회로의 적어도 하나의 물리적 레벨에 모놀리식으로 형성된다. 상기 용어 "모놀리식”은 상기 어레이를 구성하는 각 레벨의 층들이 상기 어레이 중 각 하부 레벨의 층들의 바로 위에 적층되어 있음을 의미한다.
본 발명의 기술적 사상에 의한 일 실시예에서, 상기 3D 메모리 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직 방향으로 배치된 Vertical NAND 스트링들을 포함한다. 상기 적어도 하나의 메모리 셀은 전하 트랩층을 포함할 수 있다.
미국 특허공개공보 제7,679,133호, 동 제8,553,466호, 동 제8,654,587호, 동 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 3D 메모리 어레이가 복수 레벨로 구성되고 워드 라인들 및/또는 비트 라인들이 레벨들간에 공유되어 있는 3D 메모리 어레이에 대한 적절한 구성들을 상술하는 것들로서, 본 명세서에 인용 형식으로 결합된다.
다른 예로서, 스토리지 시스템(200)은 다른 다양한 종류의 메모리들을 포함할 수도 있다. 예를 들어, 스토리지 시스템(200)은 불휘발성 메모리를 포함할 수 있으며, 불휘발성 메모리는 MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torgue MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase RAM), 저항 메모리(Resistive RAM), 나노튜브 RAM(Nanottube RAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory: NFGM), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory) 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory) 등 다양한 종류의 메모리가 적용될 수 있다.
호스트 시스템(100)은 다양한 인터페이스를 통하여 스토리지 시스템(200)과 통신할 수 있다. 일 실시예에 따라, 호스트 시스템(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) 등과 같은 다양한 인터페이스를 통해 스토리지 시스템(200)과 통신할 수 있다. 또한, SSD 등과 같은 스토리지 시스템(200)에 최적화된 인터페이스로서 NVMe(Non-Volatile Memory Express)가 제안되고 있으며, 본 발명의 데이터 처리 시스템(10)에 NVMe 인터페이스가 적용될 수 있다.
한편, 스토리지 시스템(200)의 일 구현 예로서, 스토리지 시스템(200)은 오픈 채널 SSD(Open-channel SSD)를 포함할 수 있다. 오픈 채널 SSD에서, 플래시 변환 계층(Flash Translation Layer, 110)이 호스트 시스템(100)에 구비되고, 이에 따라 스토리지 시스템(200)에 대한 다양한 종류의 관리 동작들이 호스트 시스템(100)에 의해 수행될 수 있다. 일 예로서, 호스트 시스템(100)은 논리적 어드레스와 실제 데이터가 저장될 위치를 나타내는 물리적 어드레스 사이의 변환 동작을 수행하고, 호스트 시스템(100)은 스토리지 시스템(200)으로 물리적 어드레스를 제공하여 데이터를 억세스할 수 있다.
본 발명의 예시적인 실시예에 따라, 호스트 시스템(100)은 FTL(110)과 함께 제1 인터페이스 회로(120)를 포함할 수 있다. 또한, 컨트롤러(210)는 배드 블록 매니저(211) 및 제2 인터페이스 회로(212)를 포함할 수 있다. 스토리지 장치(220)는 다수 개의 저장 매체들을 포함할 수 있으며, 각각의 저장 매체는 플래시 메모리 칩 등의 메모리 장치를 포함할 수 있다. 또한, 각각의 저장 매체는 다수 개의 블록들을 포함하는 메모리 셀 어레이(221)를 포함할 수 있으며, 도 1에 도시된 스토리지 장치(220)의 메모리 셀 어레이(221)는 어느 하나의 저장 매체에 구비되는 것으로 가정된다.
스토리지 시스템(200)을 이용한 데이터 처리를 수행함에 있어서 다양한 관리 동작이 수행될 수 있으며, 일 예로서 논리적 어드레스를 물리적 어드레스로 변환한 변환 정보, 배드 블록 관리에 이용되는 블록 맵 정보 등이 메타 데이터로서 관리될 수 있다. 이 때, 스토리지 시스템(200)에 저장되는 데이터에 대한 관리 동작은 정확하게 수행될 필요가 있으며, 이에 따라 메타 데이터에 관련된 메모리 동작은 그 신뢰성이 보장될 필요가 있다.
그러나, 오픈 채널 SSD 환경에서 호스트 시스템(100)은 스토리지 장치(220)의 특성(예컨대, 배드 블록 등의 물리적인 특성)을 알 수 없으며, 이에 따라 호스트 시스템(100)이 메타 데이터 등의 중요 정보를 관리함에 있어서 제약이 발생될 수 있다. 일 예로서, 스토리지 장치(220)의 특정 블록(예컨대, 제1 블록)이 배드 블록으로 판정되는 경우에는, 호스트 시스템(100)은 상기 제1 블록을 노멀 블록에 해당하는 제2 블록으로 대체(또는, 맵핑)하고 이에 관련된 블록 맵 정보를 관리할 수 있다. 그러나, 제1 블록이 메타 데이터를 저장하는 블록에 해당하고, 상기 제1 블록이 배드 블록으로 판정되는 경우에는 상기 제1 블록을 제2 블록으로 대체한 블록 맵 정보가 제2 블록에 저장될 수 있는데, 이 경우 호스트 시스템(100)은 블록 맵 정보가 저장된 블록(예컨대, 제2 블록)의 위치를 판단하지 못하는 문제가 발생될 수 있다. 즉, 데이터 처리 시스템(10)의 전원이 오프된 이후에 다시 온 되면, 호스트 시스템(100)은 스토리지 장치(220)로부터 메타 데이터를 읽어들이고 이를 통해 관리 동작을 수행하여야 하나, 메타 데이터가 저장된 블록이 제1 블록에서 제2 블록으로 이동되었다는 정보를 알 수 없는 문제가 발생될 수 있다.
본 발명의 예시적인 실시예에 따르면, 메타 데이터 등의 중요 정보의 신뢰성을 보장하고 효율적인 관리를 수행하기 위하여, 데이터 처리 시스템(10)에 적용될 수 있는 관리 동작들 중 일부가 스토리지 시스템(200)에 의해 수행될 수 있다. 본 발명의 예시적인 실시예에 따라 배드 블록 매니저(211)는 배드 블록과 관련된 관리 동작을 수행할 수 있으며, 일 예로서 배드 블록 매니저(211)는 메타 데이터 등의 중요 정보가 저장되는 블록들에 대한 배드 블록 관리 동작을 수행할 수 있으며, 또한 메타 데이터의 신뢰성 또는 무결성을 보장하기 위하여 메타 데이터가 저장되는 블록들에 대한 에러 복구 처리를 수행할 수 있다. 본 발명의 예시적인 실시예에 따른 구체적인 동작 예를 설명하면 다음과 같다.
호스트 시스템(100)과 스토리지 시스템(200)은 각종 요청들 및 정보들을 송수신할 수 있으며, 제1 인터페이스 회로(120)와 제2 인터페이스 회로(212)는 상기 각종 요청들 및 정보들을 송수신하기 위해 NVMe 인터페이스 등 다양한 종류의 인터페이스를 제공할 수 있다. 일 동작 예로서, 스토리지 시스템(200)이 호스트 시스템(100)에 연결되어 포맷이 수행되는 과정에서 각종 요청들 및 정보들이 송수신될 수 있다.
스토리지 시스템(200)은 그 내부에 구비되는 다수의 블록들 중 상대적으로 신뢰성이 높은 블록들을 포함할 수 있고, 신뢰성이 높은 블록들의 위치를 판단할 수 있다. 상대적으로 신뢰성이 높은 블록들은 에러가 발생되지 않거나 또는 에러가 발생될 확률이 매우 낮은 에러 프리(Error Free, EF) 블록으로 지칭될 수 있다. 일 예로서, 스토리지 시스템(200)은 블록 정보(Info_BLK)를 호스트 시스템(100)으로 전송하고, 호스트 시스템(100)은 블록 정보(Info_BLK)를 참조하여 메타 데이터의 저장에 이용되는 블록을 할당하기 위한 블록 할당 요청(Req_BLK)을 스토리지 시스템(200)으로 전송할 수 있다.
블록 정보(Info_BLK)는 다양한 종류의 정보들을 포함할 수 있다. 일 예로서, 블록 정보(Info_BLK)는 스토리지 시스템(200)이 에러 프리 블록을 지원함을 나타내는 정보를 포함할 수 있다. 또한, 블록 정보(Info_BLK)는 에러 프리 블록의 개수를 나타내는 정보와 상기 에러 프리 블록의 위치를 나타내는 정보(예컨대, 블록 어드레스)를 포함할 수 있다. 또한, 블록 정보(Info_BLK)는 데이터의 무결성 또는 신뢰성을 위해 지원될 수 있는 에러 복구 기법에 관련된 정보를 더 포함할 수도 있다.
스토리지 시스템(200)에서 상대적으로 신뢰성이 높은 블록들은 다양한 방식을 통해 판단될 수 있다. 일 예로서, 스토리지 시스템(200)의 다수의 블록들 중 일부의 블록들은 하나의 메모리 셀 당 2 개 이상의 비트들의 데이터가 저장되는 멀티 레벨 셀(multi-level cell)로 이용될 수 있으며, 다른 일부의 블록들은 하나의 메모리 셀 당 하나의 비트의 데이터가 저장되는 싱글 레벨 셀(single-level cell)로 이용될 수 있다. 싱글 레벨 셀이 적용되는 블록들은 신뢰성이 상대적으로 높을 수 있으며, 싱글 레벨 셀이 적용되는 블록이 에러 프리 블록에 해당할 수 있다. 또는, 스토리지 시스템(200)은 자체적인 테스트 동작을 수행하여 신뢰성이 상대적으로 높은 블록들을 판단할 수도 있고, 또는 제조 과정에서 특정 위치의 블록들에 대해 선택적으로 신뢰성을 향상하기 위한 공정이 적용될 수 있으며, 이를 통해 스토리지 시스템(200)에서 에러 프리 블록이 확보될 수 있다.
한편, 스토리지 시스템(200)은 메타 데이터에 대한 기록 및 독출 과정에서 그 신뢰성을 확보하기 위한 에러 복구 기법을 수행할 수 있으며, 일 예로서 RAID(Redundant Array of Inexpensive Disk)나 미러링(mirroring) 등의 다양한 데이터 복구 기법이 스토리지 시스템(200)에 적용될 수 있다.
한편, 호스트 시스템(100)은 블록 할당 요청(Req_BLK)을 스토리지 시스템(200)으로 전송할 수 있고, 블록 할당 요청(Req_BLK)은 다양한 정보들을 포함할 수 있다. 일 예로서, 호스트 시스템(100)은 메타 데이터의 저장에 이용될 에러 프리 블록의 개수와 그 위치를 선택할 수 있고, 블록 할당 요청(Req_BLK)은 상기 에러 프리 블록의 개수 및/또는 위치를 나타내는 정보를 포함할 수 있다. 또한, 호스트 시스템(100)은 다양한 에러 복구 기법들 중 데이터 처리 시스템(10)에 적용될 에러 복구 기법을 선택할 수 있으며, 선택된 에러 복구 기법에 관련된 정보가 블록 할당 요청(Req_BLK)에 더 포함될 수도 있다.
한편, 메타 데이터의 저장을 위해 할당된 블록들을 포함하는 영역은 메타 영역으로 지칭되고, 유저 데이터를 저장하는 블록들을 포함하는 영역은 노멀 영역으로 지칭될 수 있다. 도 1의 예에서는, 메타 영역(Reg_Meta)이 M 개의 블록들(BLM1_1 ~ BLK1_M)을 포함하고, 노멀 영역(Reg_Normal)이 N 개의 블록들(BLM2_1 ~ BLK2_N)을 포함하는 예가 도시된다.
한편, 전술한 바와 같이 호스트 시스템(100)은 에러 복구 기법을 선택할 수 있고, 에러 복구를 수행하기 위해 하나 이상의 리저브 블록들이 메타 영역(Reg_Meta)에 구비될 수 있다. 상기 리저브 블록의 할당은 다양한 형태로 수행될 수 있으며, 일 예로서 호스트 시스템(100)은 하나 이상의 리저브 블록을 선택하고, 리저브 블록의 개수 및/또는 위치를 나타내는 정보가 블록 할당 요청(Req_BLK)에 더 포함될 수도 있다. 또는, 선택된 에러 복구 기법에 관련된 정보가 블록 할당 요청(Req_BLK)에 포함될 수 있으므로, 스토리지 시스템(200)이 이를 기반으로 메타 영역(Reg_Meta)에 하나 이상의 리저브 블록을 포함시키도록 데이터 처리 시스템(10)이 구현될 수도 있을 것이다. 또한, 리저브 블록은 에러 복구 기법에 따라 서로 다른 개수가 필요로될 수 있으며, 호스트 시스템(100) 또는 스토리지 시스템(200)이 하나 이상의 블록을 리저브 블록으로 할당함에 있어서 상기 에러 복구 기법이 참조로 될 수 있을 것이다.
이후, 호스트 시스템(100)은 메타 데이터의 저장을 요청함에 있어서 메타 영역(Reg_Meta)에 위치하는 블록을 지시하기 위한 어드레스를 스토리지 시스템(200)으로 제공할 수 있고, 또한 유저 데이터의 저장을 요청함에 있어서 노멀 영역(Reg_Normal)에 위치하는 블록을 지시하기 위한 어드레스를 스토리지 시스템(200)으로 제공할 수 있다.
상기와 같은 본 발명의 예시적인 실시예에 따르면, 오픈 채널 SSD 환경에서 스토리지 시스템(200)이 에러 프리 블록들의 정보를 호스트 시스템(100)으로 제공하고, 호스트 시스템(100)이 에러 프리 블록들을 메타 데이터를 저장하는 공간으로 선택할 수 있으므로 메타 데이터의 무결성을 향상 또는 보장할 수 있으며, 또한 호스트 시스템(100)의 관리 오버헤드를 감소할 수 있으므로 데이터 처리 시스템(10)의 전반적인 성능을 향상할 수 있다. 또한, 메타 데이터가 저장되는 블록이 배드 블록으로 판정되더라도 전술한 에러 복구 기법을 통해 메타 데이터의 에러가 복구될 수 있다. 또한, 메타 데이터가 저장되는 블록이 다른 블록으로 대체되더라도, 호스트 시스템(100)은 메타 영역(Reg_Meta)에 포함되는 블록들의 정보만을 억세스하거나, 또는 배드 블록에 대응하는 리저브 블록의 정보만을 억세스함으로써 블록 맵 정보를 확인할 수 있으므로, 메타 데이터의 정보를 확인하는 시간이 감소되고 메타 데이터 등의 중요 정보의 관리의 효율성을 향상할 수 있다.
도 2는 메타 영역 및 유저 영역에 할당된 블록들의 일 예를 나타내는 블록도이다. 일 예로서, 도 2에서는 하나의 저장 매체로서 NAND 플래시 메모리에 구비되는 블록들이 도시된다.
도 1 및 도 2를 참조하면, 저장 매체(221)는 다수 개의 블록들을 포함하고, 일부의 블록들은 상대적으로 신뢰성이 높은 에러 프리(EF) 블록일 수 있다. 스토리지 시스템(200)은 호스트 시스템(100)으로 블록 정보(Info_BLK)를 전송하고, 호스트 시스템(100)은 메타 데이터가 저장될 에러 프리(EF) 블록을 선택한 정보를 포함하는 블록 할당 요청(Req_BLK)을 스토리지 시스템(200)으로 전송할 수 있다. 이와 함께, 호스트 시스템(100)은 메타 데이터에 적용될 에러 복구 기법을 선택할 수 있으며, 복구 동작에 이용될 정보가 저장되는 하나 이상의 리저브(Rsvd) 블록이 메타 영역(Reg_Meta)에 할당될 수 있다. 도 2에서는, 메타 영역(Reg_Meta)에 4 개의 에러 프리(EF) 블록들이 할당됨과 함께, 이에 대응하여 4 개의 리저브(Rsvd) 블록들이 할당되는 예가 도시되었으나, 본 발명의 실시예들은 이에 국한될 필요 없이 다양한 개수의 에러 프리(EF) 블록들 및 리저브(Rsvd) 블록들이 메타 영역(Reg_Meta)에 할당될 수 있을 것이다.
한편, 메타 데이터의 에러 또는 결함을 복구하기 위한 다양한 기법들이 적용될 수 있으며, 다양한 실시예들에 따라 미러링(mirroring) 또는 복구 패리티(Repair parity)를 이용한 기법들이 적용될 수 있다. 일 예로서, 미러링 기법이 적용되는 경우, 호스트 시스템(100)이 메타 데이터를 에러 프리(EF) 블록에 기록할 것을 요청할 수 있으며, 스토리지 시스템(200)은 메타 데이터를 에러 프리(EF) 블록과 함께 이에 대응하는 리저브(Rsvd) 블록에 기록할 수 있다. 이후, 메타 데이터가 저장된 에러 프리(EF) 블록이 배드 블록으로 판정되면, 스토리지 시스템(200)은 에러 프리(EF) 블록의 어드레스를 이에 대응하는 리저브(Rsvd) 블록으로 맵핑하고, 블록 맵 정보를 내부에 저장할 수 있다. 또한, 호스트 시스템(100)으로부터 에러 프리(EF) 블록에 저장된 메타 데이터의 억세스가 요청되면, 스토리지 시스템(200)은 블록 맵 정보를 참조하여 대응하는 리저브(Rsvd) 블록에 대해 억세스를 수행할 수 있다.
일 실시예에 따라 복구 패리티를 이용한 기법이 적용되는 경우, 호스트 시스템(100)이 메타 데이터를 에러 프리(EF) 블록에 기록할 것을 요청하는 경우, 스토리지 시스템(200)은 기록 요청되는 메타 데이터와 함께, 하나의 복구 단위를 구성하는 다른 메타 데이터를 이용하여 복구 패리티를 생성하고, 생성된 복구 패리티를 리저브(Rsvd) 블록에 저장할 수 있다. 일 예로서, 상기 복구 단위를 구성하는 다른 메타 데이터는 기록 요청되는 에러 프리(EF) 블록과는 다른 블록(예컨대, 나머지 에러 프리(EF) 블록들 중 적어도 일부)에 저장될 수 있다. 만약, 호스트 시스템(100)으로부터 독출 요청된 메타 데이터가 저장된 에러 프리(EF) 블록이 배드 블록으로 판정되면, 스토리지 시스템(200)은 복구 단위의 다른 메타 데이터와 복구 패리티를 이용한 연산을 통해 에러를 복구하고, 에러가 복구된 메타 데이터를 호스트 시스템(100)으로 제공할 수 있다.
한편, 메타 영역(Reg_Meta)에 구비되는 리저브(Rsvd) 블록들의 개수를 조절하거나, 또는 에러 프리(EF) 블록들의 개수에 대비하여 리저브(Rsvd) 블록들의 개수의 비율을 조절함으로써 정정 가능한 에러 율(Error rate)을 변동시킬 수 있다. 일 예로서, 리저브(Rsvd) 블록들의 개수가 많은 경우에는 동일한 비트의 데이터에 대응하여 상대적으로 많은 개수의 패리티 비트들이 저장될 수 있으며, 이에 따라 에러 정정 능력이 향상될 수 있다. 예컨대, 리저브(Rsvd) 블록들의 개수가 많은 경우에는 스토리지 시스템(200)에 에러 정정 능력이 높은 에러 정정 회로가 채용될 수 있으며, 이 경우 메타 데이터에 대한 에러 정정 가능성을 더욱 향상할 수 있다.
한편, 도 2에 도시된 실시예에서는 메타 데이터에 대한 1 회의 카피가 수행되는 미러링(mirroring) 기법이 예시되었으나, 본 발명의 실시예들은 이에 국한될 필요가 없다. 일 예로서, 메타 데이터는 2 회 이상 카피되어 리저브(Rsvd) 블록에 저장될 수도 있으며, 리저브(Rsvd) 블록들의 개수가 많이 할당되는 경우에는 다수의 카피 동작들에 기반하는 복구 기법이 적용될 수도 있을 것이다.
도 3은 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템의 동작방법을 나타내는 개념도이다. 도 3에서는 스토리지 시스템의 일 예로서 오픈 채널 SSD(OC-SSD)가 예시되며, 이에 따라 호스트 시스템(HOST)에 플래시 변환 계층(FTL)이 구비될 수 있다.
오픈 채널 SSD(OC-SSD)가 호스트 시스템(HOST)에 연결됨에 따라 디바이스 초기화 과정이 수행될 수 있고, 디바이스 초기화 과정에서 오픈 채널 SSD(OC-SSD)의 관리를 위한 메타 데이터가 저장될 필요가 있다. 이를 위해, 디바이스 포맷 과정에서 하나 이상의 블록들을 포함하는 메타 영역이 설정될 수 있으며, 이를 위해 오픈 채널 SSD(OC-SSD)는 에러 프리(EF) 블록에 관련된 정보를 호스트 시스템(HOST)으로 전송할 수 있다.
호스트 시스템(HOST)은 오픈 채널 SSD(OC-SSD)에서 제공되는 에러 프리(EF) 블록과, 오픈 채널 SSD(OC-SSD)가 지원하는 복구 기법 등에 관련된 정보를 수신하고, 메타 영역에 블록을 할당하기 위한 요청을 오픈 채널 SSD(OC-SSD)로 전송할 수 있다. 일 예로서, 메타 영역에 할당될 에러 프리(EF) 블록의 개수 및 위치가 호스트 시스템(HOST)에 의해 선택될 수 있으며, 이와 함께 메타 데이터의 무결성을 보장하기 위하여 메타 영역에 적용될 복구 기법을 나타내는 정보가 상기 블록 할당 요청에 포함될 수 있다. 오픈 채널 SSD(OC-SSD)은 호스트 시스템(HOST)으로부터의 요청에 응답하여 하나 이상의 에러 프리(EF) 블록을 메타 영역에 할당하고, 또한 에러 복구 기법에 이용될 수 있는 하나 이상의 리저브 블록을 메타 영역에 할당하며, 할당이 완료되었음을 나타내는 정보를 호스트 시스템(HOST)으로 전송할 수 있다.
이후, 오픈 채널 SSD(OC-SSD)에 대한 데이터 억세스 동작이 수행됨에 따라 이에 관련된 메타 데이터가 메타 영역에 저장 또는 업데이트되고, 메타 데이터에 대해 미러링 및/또는 리커버리 알고리즘 등 다양한 복구 기법들에 기반하여 메타 데이터의 에러가 정정 또는 복구될 수 있다. 또한, 오픈 채널 SSD(OC-SSD)는 메타 영역에 할당된 블록들에 대한 배드 블록 관리 동작을 수행할 수 있으며, 배드 블록 관리를 통해 생성될 수 있는 블록 맵 정보를 내부에 저장할 수 있다. 예시적인 실시예에 따라, 오픈 채널 SSD(OC-SSD)는 배드 블록 관리에 관련된 정보를 호스트 시스템(HOST)으로 전송할 수 있으며, 호스트 시스템(HOST)은 상기 정보를 통해 메타 데이터가 저장되는 메타 영역의 블록 상태를 판단할 수도 있을 것이다.
도 4는 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템의 일 구현 예를 나타내는 블록도이다. 도 4에서는 다수의 저장 매체들로서 NAND 플래시 메모리 장치들의 메타 영역이 예시된다.
도 4를 참조하면, 데이터 처리 시스템(300)은 호스트 시스템(310)과 스토리지 시스템(320)을 구비할 수 있다. 도 4에서는 설명의 편의 상 스토리지 시스템(320)에 구비되는 NAND 플래시 메모리 장치로서 제1 및 제2 저장 매체들(321, 322)이 도시되나, 스토리지 시스템(320)은 메타 데이터가 저장되는 블록들에 대한 관리 동작을 수행하는 컨트롤러를 더 포함할 수 있으며, 또한 더 많은 개수의 저장 매체들을 포함할 수 있다.
호스트 시스템(310)은 스토리지 시스템(320)에 대한 관리 동작을 위해 관리 모듈(예컨대, NAND 관리 모듈)을 포함할 수 있으며, 스토리지 시스템(320)이 플래시 메모리를 구비함에 따라 상기 관리 모듈은 FTL(또는, 호스트 FTL)을 포함할 수 있다. 도 4에서는 제1 저장 매체(321)의 관리를 위한 제1 호스트 FTL(311)과 제2 저장 매체(322)의 관리를 위한 제2 호스트 FTL(312)이 별개로 도시되나, 하나의 호스트 FTL이 다수의 저장 매체들을 관리하는 것으로 설명되어도 무방할 것이다. 또한, 전술한 실시예들에 따라, 스토리지 시스템(320)은 호스트 시스템(310)으로 블록 정보(Info_BLK)를 전송하고, 호스트 시스템(310)은 스토리지 시스템(320)으로 블록 할당 요청(Req_BLK)을 전송할 수 있다. 일 예로서, 블록 정보(Info_BLK)와 블록 할당 요청(Req_BLK)은 플래시 메모리 장치 별로 송수신될 수 있고, 제1 호스트 FTL(311)는 제1 저장 매체(321)와 블록 정보(Info_BLK)와 블록 할당 요청(Req_BLK)을 송수신하고, 제2 호스트 FTL(312)는 제2 저장 매체(322)와 블록 정보(Info_BLK)와 블록 할당 요청(Req_BLK)을 송수신할 수 있다.
한편, 제1 및 제2 저장 매체들(321, 322)은 다수의 블록들을 포함하고, 다수의 블록들 중 일부의 블록은 상대적으로 신뢰성이 높은 에러 프리(EF) 블록에 해당할 수 있다. 호스트 시스템(310)으로부터의 요청에 따라 제1 및 제2 저장 매체들(321, 322) 각각에서 메타 영역(321_1, 322_1)이 설정될 수 있으며, 메타 영역(321_1, 322_1) 각각에는 하나 이상의 에러 프리(EF) 블록과 리저브(Rsvd) 블록이 할당될 수 있다. 또한, 도 4에서는 제1 저장 매체(321)의 메타 영역(321_1)과 제2 저장 매체(322)의 메타 영역(322_1)에 대해 서로 다른 방식에 따라 블록들이 할당된 예가 도시된다.
예시적인 실시예에 따라, 제1 저장 매체(321)의 메타 영역(321_1)에는 제1 저장 매체(321)에 관련된 메타 데이터가 저장될 수 있고, 또한 제2 저장 매체(322)의 메타 영역(322_1)에는 제2 저장 매체(322)에 관련된 메타 데이터가 저장될 수 있다. 또한, 제1 저장 매체(321)의 메타 영역(321_1)에는 미러링 기법에 기반하는 에러 복구 동작이 적용되고, 이에 따라 에러 프리(EF) 블록과 동일한 개수의 리저브(Rsvd) 블록이 메타 영역(321_1)에 할당될 수 있다. 한편, 제2 저장 매체(322)의 메타 영역(322_1)에는 복구 패리티 기법에 기반하는 에러 복구 동작이 적용될 수 있으며, 이 경우 에러 프리(EF) 블록보다 적은 개수의 리저브(Rsvd) 블록이 할당될 수도 있을 것이다.
도 5는 본 발명의 예시적인 실시예에 따른 스토리지 시스템에 구비되는 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 5를 참조하면, 컨트롤러(400)는 프로세서로서 중앙 프로세싱 유닛(central processing unit, 410), 호스트 인터페이스 회로(420), 메모리 인터페이스 회로(430) 및 동작 메모리(working memory, 440)를 포함할 수 있다. 일 실시예에 따라, 컨트롤러(400)는 ECC 엔진(450)을 더 포함할 수 있다.
중앙 프로세싱 유닛(410)은 동작 메모리(440)에 저장된 각종 프로그램들을 실행함으로써 스토리지 시스템의 전반적인 동작을 제어할 수 있다. 호스트 인터페이스 회로(420)는 호스트 시스템과 소정의 인터페이스에 따른 통신을 수행하고, 일 예로서 NVMe 등 다양한 종류의 인터페이스에 따라 호스트 시스템과 통신할 수 있다. 또한, 메모리 인터페이스 회로(430)는 스토리지 장치에 포함되는 다수의 저장 매체들과의 인터페이스를 제공하며, 일 예로서 메모리 인터페이스 회로(430)는 다수의 채널들을 통해 저장 매체들과 독립적인 통신을 수행할 수 있다. 또한, ECC(Error Correction Code) 엔진(450)은 스토리지 장치에 저장되는 데이터의 에러 검출 및 정정을 위한 동작을 수행할 수 있으며, 일 예로서 기록 데이터로부터 ECC 패리티를 생성할 수 있고, 독출 데이터와 이에 대응하는 ECC 패리티를 이용하여 에러 검출 및 정정 동작을 수행할 수 있다.
한편, 동작 메모리(440)에는 스토리지 시스템의 기능과 함께 본 발명의 실시예들에 따른 각종 기능을 수행하기 위한 프로그램들이 로딩될 수 있다. 동작 메모리(440)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), EEPROM(Electronically Erasable Programmable Read Only Memory), 플래시 메모리 또는 다른 메모리 기술 등 다양한 형태로 구현될 수 있다.
예시적인 실시예에 따라, 동작 메모리(440)에는 메타 영역 관리 모듈(441), 배드 블록 관리 모듈(442) 및 복구 모듈(443)이 로딩될 수 있다. 예컨대, 호스트 인터페이스 회로(420)는 전술한 실시예들에 따라 호스트 시스템과 통신하여 각종 요청을 수신하고 각종 정보를 전송할 수 있으며, 호스트 시스템으로부터 메타 데이터가 저장될 하나 이상의 블록들의 할당을 요청하는 블록 할당 요청을 수신할 수 있다. 중앙 프로세싱 유닛(410)은 메타 영역 관리 모듈(441)을 실행할 수 있고, 호스트 시스템으로부터의 요청에 따라 하나 이상의 에러 프리 블록과 리저브 블록을 메타 영역에 할당하는 동작을 수행할 수 있다.
또한, 메타 영역에 포함되는 에러 프리 블록 및 리저브 블록에 메타 데이터가 저장되고, 배드 블록 관리 모듈(442)의 실행에 기반하여 메타 영역에서 발생되는 배드 블록에 대한 관리 동작이 수행될 수 있다. 일 예로서, 어느 하나의 에러 프리 블록(예컨대, 제1 에러 프리 블록)이 배드 블록으로 판정되면, 상기 제1 에러 프리 블록을 다른 에러 블록으로 대체하기 위한 블록 맵을 관리할 수 있으며, 또한 제1 에러 프리 블록의 메타 데이터와 동일한 복구 단위를 구성하는 다른 메타 데이터가 저장된 에러 프리 블록이나 복구 패리티가 저장된 리저브 블록을 지시하는 블록 관리 동작 등을 수행할 수 있다. 또한, 복구 모듈(443)을 실행함에 의해 제1 에러 프리 블록에 발생된 에러가 복구될 수 있으며, 일 예로서 제1 에러 프리 블록에 대응하는 리저브 블록에 대한 억세스를 수행하거나, 또는 복구 단위를 구성하는 다른 메타 데이터와 복구 패리티를 이용한 연산을 통해 에러가 복구될 수 있을 것이다.
한편, 도 5에서는 본 발명의 일 실시예에 따른 메타 데이터 관리 동작 및 배드 블록의 관리 동작이 소프트웨어 방식에 의해 수행되는 예가 도시되었으나, 본 발명의 실시예들은 이에 국한될 필요가 없다. 일 예로서, 도 5에 도시된 실시예에서 동작 메모리(440)에 로딩된 소프트웨어를 실행함에 의해 수행되는 동작들 중 적어도 일부는 하드웨어적으로 구현되는 회로를 통해 수행될 수도 있을 것이다.
도 6a,b는 본 발명의 일 실시예에 따라 메타 데이터에 발생된 에러를 복구하는 일 예를 나타내는 블록도이다.
도 6a를 참조하면, 메타 데이터가 저장되는 제1 내지 제4 에러 프리 블록(EF 1 ~ EF 4)과, 이에 대응하는 제1 내지 제4 리저브 블록들(Rsvd 1 ~ Rsvd 4)이 메타 영역에 할당되는 예가 도시된다. 호스트 시스템은 제1 내지 제4 에러 프리 블록(EF 1 ~ EF 4)에 대해 메타 데이터의 기록을 요청할 수 있으며, 스토리지 시스템은 미러링 기법에 기반하여 제1 내지 제4 에러 프리 블록(EF 1 ~ EF 4)에 기록된 메타 데이터를 제1 내지 제4 리저브 블록들(Rsvd 1 ~ Rsvd 4)에 함께 기록할 수 있다.
일 예로서, 호스트 시스템은 메타 데이터와 함께 제1 에러 프리 블록(EF 1)을 지시하는 제1 어드레스(ADD11)를 스토리지 시스템으로 제공하고, 스토리지 시스템은 제1 에러 프리 블록(EF 1)에 메타 데이터를 기록함과 함께, 제1 에러 프리 블록(EF 1)에 대응하는 제1 리저브 블록(Rsvd 1)에 메타 데이터를 함께 기록할 수 있다. 스토리지 시스템은 제1 리저브 블록(Rsvd 1)을 지시하는 제2 어드레스(ADD21)를 알 수 있으며, 내부적으로 제1 어드레스(ADD11)와 제2 어드레스(ADD21)의 맵핑 정보를 포함하는 블록 맵 정보를 관리할 수 있다. 이후, 제1 에러 프리 블록(EF 1)이 배드 블록으로 판정되는 경우, 호스트 시스템으로부터 제1 에러 프리 블록(EF 1)에 대한 메타 데이터의 억세스가 요구되면, 스토리지 시스템은 제1 리저브 블록(Rsvd 1)에 메타 데이터를 기록하거나, 제1 리저브 블록(Rsvd 1)으로부터 메타 데이터를 독출할 수 있다.
한편, 다수의 메타 데이터들이 하나의 복구 단위를 구성하고, 상기 복구 단위에 대응하는 복구 패리티가 생성되어 메타 영역에 저장될 수 있다. 스토리지 시스템은 다수의 메타 데이터들을 이용하여 RAID 에 기반하는 리커버리 알고리즘을 수행할 수 있고, 수행 결과에 따라 생성된 복구 패리티(Parity)를 리저브 블록에 저장할 수 있다. 도 6b에서는 제1 내지 제4 에러 프리 블록(EF 1 ~ EF 4)에 저장된 제1 내지 제4 메타 데이터들(Meta DATA 1 ~ Meta DATA 4)이 하나의 복구 단위를 구성하고, 이에 대응하는 복구 패리티(Repair parity)가 제1 리저브 블록(Rsvd 1)에 저장되는 예가 도시된다.
한편, 제1 내지 제4 에러 프리 블록(EF 1 ~ EF 4)에 저장된 제1 내지 제4 메타 데이터들(Meta DATA 1 ~ Meta DATA 4) 중 적어도 하나의 값이 변경되는 경우 복구 패리티(Repair parity)의 값은 업데이트될 수 있다. 또한, 제1 에러 프리 블록(EF 1)이 배드 블록으로 판정되는 경우, 제2 내지 제4 에러 프리 블록(EF 2 ~ EF 4)에 저장된 메타 데이터들(Meta DATA 2 ~ Meta DATA 4)과 복구 패리티(Repair parity)를 이용하여 제1 메타 데이터(Meta DATA 1)의 에러가 복구될 수 있다.도 7은 호스트 시스템에 구비되는 호스트 FTL의 일 구현 예를 나타내는 블록도이다. 도 7을 참조하면, 호스트 FTL(500)은 호스트 시스템 내의 동작 메모리(미도시)에 로딩될 수 있으며, 소프트웨어에 의해 구현되는 기능에 따라 호스트 FTL(500)은 웨어-레벨링 모듈(510), 가비지 콜렉션 모듈(520), 어드레스 맵핑 테이블(530) 및 요청 생성 모듈(540)을 포함할 수 있다. 호스트 FTL(500)은 오픈 채널 SSD(OC-SSD)을 제어할 수 있고, 이에 따라 오픈 채널 SSD(OC-SSD)에 대한 관리 동작을 수행하며, 상기 관리 동작에 관련된 다양한 종류의 메타 데이터를 생성하고 이를 오픈 채널 SSD(OC-SSD)에 저장할 수 있다. 웨어-레벨링 모듈(510)은 오픈 채널 SSD(OC-SSD)에 구비되는 저장 매체들에 대한 마모도(wear-level)를 관리한다. 저장 매체들의 메모리 셀들은 기록 및 소거 동작 등에 의해 노화(aging)될 수 있으며, 노화된 메모리 셀(또는, 마모된 메모리 셀)은 결함을 야기할 수 있다. 웨어-레벨링 모듈(510)은 메모리 셀 어레이에 대한 프로그램 및 소거 사이클을 관리함으로써 특정 셀 영역이 다른 셀 영역보다 빨리 마모되는 것을 방지할 수 있다. 한편, 가비지 콜렉션 모듈(520)은 조각난 데이터들이 저장된 블록들을 정리할 수 있다. 예컨대, 플래시 메모리 장치에서 프로그램 단위보다 소거 단위가 더 크게 설정되며, 프로그램 및 소거 동작이 반복되고 난 후에는 임의의 프리 블록을 이용하여 물리적으로 상이한 블록에 분산된 유효 데이터들을 동일한 블록에 모으는 작업이 수행될 수 있다. 상기와 같은 가비지 콜렉션 모듈(520)의 동작에 따라 프리 블록이 생성될 수 있다. 또한, 오픈 채널 SSD(OC-SSD) 환경에서, 호스트 시스템은 논리적 어드레스와 이에 대응하여 실제 데이터가 억세스될 물리적 위치를 나타내는 물리적 어드레스 사이의 변환 동작을 수행할 수 있으며, 논리적 어드레스와 물리적 어드레스 사이의 맵핑 정보는 어드레스 맵핑 테이블(530)에 저장될 수 있다. 또한, 본 발명의 예시적인 실시예들에 따라, 요청 생성 모듈(540)은 메타 영역의 관리에 관련된 각종 요청들을 생성할 수 있다. 일 예로서, 요청 생성 모듈(540)은 스토리지 시스템의 블록 정보를 기반으로 메타 영역에 할당될 하나 이상의 블록들을 정보를 포함하는 블록 할당 요청을 생성할 수 있다. 또한, 호스트 시스템은 이후에 설명될 실시예에 따라 메타 영역에 리저브 블록을 추가로 할당할 것을 요청할 수도 있는데, 요청 생성 모듈(540)은 리저브 블록의 추가 할당을 요청하는 추가 할당 요청을 생성할 수도 있다. 이외에도, 요청 생성 모듈(540)은 전술한 실시예들에 따라 메타 영역에 관련된 각종 처리 동작을 수행할 수 있다.
도 8은 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템의 동작방법을 나타내는 플로우차트이다.
도 8을 참조하면, 데이터 처리 시스템은 호스트 FTL을 포함하는 호스트 시스템과 오픈 채널 SSD(OC-SSD)을 구비할 수 있고, 본 발명의 예시적인 실시예에 따라 메타 데이터가 저장되는 블록에 대한 관리와, 메타 데이터의 신뢰성을 보장하기 위한 처리 동작이 오픈 채널 SSD(OC-SSD) 측에서 수행될 수 있다.
일 동작 예로서, 오픈 채널 SSD(OC-SSD)에 해당하는 스토리지 시스템이 호스트 시스템에 연결됨에 따라(S11), 시스템에 대한 초기화 동작이 수행될 수 있다. 스토리지 시스템에 관련된 각종 정보들이 호스트 시스템으로 제공될 수 있으며, 일 예로서 스토리지 시스템에 구비되는 신뢰성이 높은 블록(예컨대, 에러 프리 블록)의 개수 및 위치를 나타내는 정보와, 스토리지 시스템에서 지원 가능한 복구 기법에 관련된 정보들이 호스트 시스템으로 제공될 수 있다.
호스트 시스템은 메타 데이터가 저장될 블록에 대한 관리와, 메타 데이터에 적용되는 복구 처리가 스토리지 시스템에서 수행되도록 스토리지 시스템에 요청할 수 있으며, 일 예로서 메타 데이터가 저장될 블록을 할당하기 위한 요청을 스토리지 시스템으로 전송할 수 있다. 일 예로서, 전술한 실시예들에 따라, 메타 데이터가 저장될 블록들의 개수 및/또는 블록들의 위치에 관련된 정보가 상기 요청에 포함될 수 있다. 또한, 스토리지 시스템은 호스트 시스템으로부터의 요청에 따라 메타 데이터가 저장될 블록을 메타 영역에 할당할 수 있다(S12). 전술한 실시예들에 따라, 하나 이상의 에러 프리 블록과, 메타 데이터의 에러 복구에 이용되는 하나 이상의 리저브 블록이 메타 영역에 할당될 수 있다.
이후, 메모리 동작이 수행됨에 따라 호스트 시스템은 메타 데이터에 대한 기록 요청을 스토리지 시스템으로 제공함과 함께, 메타 데이터가 기록될 블록의 위치를 나타내는 정보를 전송할 수 있다(S13). 스토리지 시스템은 호스트 시스템이 지시한 위치의 블록에 메타 데이터를 저장하고, 또한 에러 복구에 관련된 처리 동작을 수행할 수 있다(S14). 일 예로서, 미러링 기법이 적용되는 경우 호스트가 지시한 에러 프리 블록에 기록된 메타 데이터가 리저브 블록에 동일하게 기록될 수 있으며, 또는 복구 패리티 기법이 적용되는 경우 메타 데이터에 기반하여 생성된 복구 패리티가 리저브 블록에 기록될 수 있다.
이후, 호스트 시스템은 스토리지 시스템에 저장된 메타 데이터에 대한 독출 요청과 함께 블록의 위치를 나타내는 정보를 스토리지 시스템으로 전송할 수 있으며(S15), 스토리지 시스템은 메타 데이터의 독출이 요청된 블록이 배드 블록에 해당하는 지 여부를 판단할 수 있다(S16). 일 예로서, 스토리지 시스템은 주기적으로, 또는 데이터 기록 및/또는 독출 과정에서 블록에 결함이 발생하였는 지 여부를 판단하고, 그 결과에 따라 해당 블록을 배드 블록으로 판정할 수 있으며, 메타 데이터의 독출이 요청된 블록이 배드 블록에 해당하는 경우에는 리저브 블록에 미러링되어 저장된 메타 데이터를 독출하거나, 또는 리저브 블록에 저장된 복구 패리티를 이용하여 메타 데이터를 복구하고 이를 호스트 시스템으로 제공할 수 있다(S17). 반면에, 해당 블록이 배드 블록이 아닌 경우에는, 호스트 시스템으로부터 요청된 위치의 에러 프리 블록으로부터 메타 데이터가 독출될 수 있다(S18).
도 9a,b는 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템의 동작의 일 예를 나타내는 개념도이다. 도 9a,b에서는 메타 데이터의 무결성 확보에 이용되는 리저브 블록이 소진된 경우에서의 동작 예가 도시된다.
도 9a를 참조하면, 호스트 시스템(HOST)은 메타 데이터에 대한 기록 및 독출 등의 억세스 요청을 오픈 채널 SSD(OC-SSD)로 제공하고, 오픈 채널 SSD(OC-SSD)는 독출된 메타 데이터를 호스트 시스템으로 제공하거나, 메타 데이터의 기록이 완료되었음을 나타내는 정보 등의 억세스 결과를 호스트 시스템(HOST)으로 전송할 수 있다. 또한, 오픈 채널 SSD(OC-SSD)는 메타 데이터의 억세스 과정에서 리저브 블록을 이용하여 메타 데이터의 무결성을 보장하기 위한 처리 동작을 수행하고, 또한 리저브 블록의 소진 여부를 판단할 수 있다.
리저브 블록의 소진 여부는 다양한 방식에 의해 판단될 수 있다. 일 예로서, 오픈 채널 SSD(OC-SSD)의 메타 영역이 메타 데이터의 무결성을 보장하기 어려운 상태에 해당할 때 리저브 블록이 소진된 것으로 판단될 수 있다. 미러링 기법이 적용되는 경우를 예로 들면, 어느 하나의 에러 프리 블록(예컨대, 제1 에러 프리 블록)의 메타 데이터는 대응하는 리저브 블록에 함께 기록될 수 있으며, 제1 에러 프리 블록이 배드 블록으로 판정됨에 따라 이에 대응하는 리저브 블록이 억세스될 수 있다. 이 때, 상기 리저브 블록 또한 배드 블록으로 판정되는 경우에는 제1 에러 프리 블록에 저장되는 메타 데이터의 무결성이 보장되기 어려울 수 있으며, 이 경우 리저브 블록이 소진된 것으로 판단될 수 있다.
호스트 시스템(HOST)은 리저브 블록의 소진 여부에 대한 판단 결과를 수신하고, 오픈 채널 SSD(OC-SSD)로 리저브 블록의 추가 할당 요청을 전송할 수 있다. 일 실시예에 따라, 호스트 시스템(HOST)은 오픈 채널 SSD(OC-SSD)에 적용된 복구 기법을 기반으로 추가의 리저브 블록의 할당을 요청할 수 있고, 또한 추가로 할당될 리저브 블록의 개수 및 위치가 추가 할당 요청에 포함될 수 있다. 오픈 채널 SSD(OC-SSD)는 추가의 블록을 리저브 블록으로서 메타 영역에 할당하고 할당 결과를 호스트 시스템(HOST)으로 전송할 수 있다.
데이터 처리 시스템에 다양한 상황이 발생될 수 있고, 만약 의도치 않은 서든 파워 오프(Sudden Power Off, SPO)가 발생된 경우, 전술한 에러 프리 블록, 리저브 블록 및 추가 할당된 리저브 블록에 관련된 정보는 오픈 채널 SSD(OC-SSD)에 저장될 수 있다. 이후, 데이터 처리 시스템의 파워가 온 되는 경우, 호스트 시스템(HOST)의 요청 또는 오픈 채널 SSD(OC-SSD) 자체적으로 메타 데이터를 억세스할 수있으며, 일 예로서 메타 영역에 포함된 블록들(예컨대, 에러 프리 블록 및 리저브 블록)만을 억세스함으로써 메타 데이터가 독출되고 호스트 시스템(HOST)으로 제공될 수 있다. 예컨대, 오픈 채널 SSD(OC-SSD)로부터의 정보와 무관하게, 호스트 시스템(HOST)은 메타 영역에 포함된 블록들만을 억세스함으로써 메타 데이터를 얻을 수 있으며, 또는 오픈 채널 SSD(OC-SSD)은 내부적으로 메타 영역의 블록들에 대한 정보를 알 수 있으므로 이를 호스트 시스템(HOST)으로 제공할 수 있고, 이에 따라 메타 데이터에 대한 관리 효율성이 증가될 수 있다.
한편, 도 9b를 참조하면 하나 이상의 리저브 블록이 메타 영역에 추가로 할당된 예가 도시되며, 일 예로서 메타 영역에 포함되는 하나 이상의 에러 프리 블록이 배드 블록으로 판정되고, 또한 이에 대응하는 리저브 블록도 배드 블록으로 판정됨에 따라, 추가의 리저브 블록이 메타 영역에 할당될 수 있다. 일 예로서, 도 9b에서는 제1 및 제2 에러 프리 블록들(EF 1, EF 2)과 함께, 이에 대응하는 리저브 블록들(Rsvd 1, Rsvd 2)이 배드 블록으로 판정됨에 따라, 상기 제1 및 제2 에러 프리 블록들에 대응하여 추가의 리저브 블록들(Rsvd 11, Rsvd 12)이 할당되는 예가 도시된다.
도 10은 본 발명의 변형 가능한 실시예에 따른 데이터 처리 시스템을 나타내는 블록도이다.
도 10을 참조하면, 데이터 처리 시스템(600)은 호스트 시스템(610) 및 스토리지 시스템(620)을 포함하고, 호스트 시스템(610)은 호스트 FTL(611)를 포함하며, 스토리지 시스템(620)은 컨트롤러(621) 및 스토리지 장치(622)를 포함할 수 있다. 도 10에는 도시되지 않았으나, 스토리지 장치(622)는 다수의 저장 매체들을 포함할 수 있고, 각각의 저장 매체는 다수 개의 블록들을 포함할 수 있으며, 또한 각각의 저장 매체는 적어도 하나의 에러 프리 블록을 포함할 수 있다. 전술한 실시예들에 따라, 스토리지 시스템(620)은 호스트 시스템(610)으로 저장 매체들에 구비되는 블록들의 블록 정보(Info_BLK)를 전송할 수 있고, 호스트 시스템(610)은 메타 데이터의 저장에 이용될 하나 이상의 블록들의 정보를 포함하는 블록 할당 요청(Req_BLK)을 스토리지 시스템(620)으로 전송할 수 있다.
전술한 실시예들에 따라, 메타 영역의 블록들에 대한 관리는 스토리지 시스템(620) 측에서 수행될 수 있고, 이를 위해 컨트롤러(621)는 배드 블록 매니저(621_1)를 포함할 수 있다. 배드 블록 매니저(621_1)는 스토리지 장치(622)에 포함되는 다수의 블록들 중 메타 데이터의 저장에 관련된 블록들(또는, 메타 영역에 포함되는 블록들)의 배드 블록 여부를 판정하고 이에 대한 관리 동작을 수행할 수 있다. 일 예로서, 메타 영역의 어느 하나의 블록이 배드 블록으로 판정되면, 상기 배드 블록에 대한 억세스를 다른 블록에 대한 억세스로 대체하며, 블록 대체에 관련된 정보를 포함하는 블록 맵을 관리할 수 있다.
한편, 호스트 시스템(610)의 호스트 FTL(611)는 유저 데이터의 저장에 이용되는 블록들에 대한 배드 블록을 관리할 수 있으며, 이에 따라 호스트 FTL(611)은 유저 데이터에 관련된 배드 블록 매니저를 포함할 수 있다. 일 예로서, 블록들의 배드 블록 여부의 판단은 스토리지 시스템(620)이 수행할 수 있고, 스토리지 시스템(620)은 유저 데이터를 저장하는 다수의 블록들 중 배드 블록으로 판정된 블록의 정보를 호스트 시스템(610)으로 제공할 수 있다. 호스트 시스템(610)은 배드 블록으로 판정된 블록에 대한 억세스를 다른 블록에 대한 억세스로 대체하고, 유저 데이터를 저장하는 블록들의 블록 맵은 호스트 시스템(610) 측에서 관리될 수 있다. 또한, 호스트 시스템(610)은 유저 데이터를 저장하는 블록들의 블록 맵을 포함하는 메타 데이터를 스토리지 장치(622)의 메타 영역에 저장할 수 있다.
도 11a,b는 스토리지 시스템에서 수행되는 블록 할당 동작에 대한 다양한 예들을 나타내는 블록도이다.
스토리지 장치에 구비되는 다수의 블록들 중 일부의 블록은 에러 프리 블록으로 관리될 수 있다. 전술한 실시예들에 따라 스토리지 장치의 다수의 블록들 중 일부는 에러 프리 블록에 해당할 수 있으며, 일 예로서 싱글 레벨 셀(single-level cell) 기반으로 데이터가 저장되는 블록이 에러 프리 블록에 해당할 수 있으며, 또는 스토리지 시스템 자체적인 테스트 결과에 기반하여 그 특성이 우수한 블록을 에러 프리 블록으로 설정할 수 있다. 또는, 스토리지 시스템의 제조 과정에서 일부 블록들에 대한 공정이 다른 블록들에 비해 그 신뢰성이 상대적으로 높도록 구현되고, 해당 블록들이 에러 프리 블록으로 설정될 수 있다.
도 11a를 참조하면, 메타 데이터가 저장될 블록들을 포함하는 메타 영역(Reg_Meta)을 설정함에 있어서 스토리지 장치에 에러 프리 블록이 구비될 때, 에러 프리 블록은 그 데이터 신뢰성이 상대적으로 높고 에러의 발생 가능성이 매우 낮으므로 에러 프리 블록만이 메타 영역(Reg_Meta)에 포함될 수 있다. 이 경우, 스토리지 시스템 또는 호스트 시스템은 메타 데이터를 저장하기 위한 메타 영역(Reg_Meta)에 에러 복구 기법을 위한 리저브 블록을 할당하지 않아도 무방하다.
반면에, 도 11b에 도시된 바와 같이, 일부의 실시예들에서 스토리지 장치는 별도의 에러 프리 블록을 관리함이 없이 노멀 블록들(BLK_N)만을 포함할 수 있고, 이 때 메타 데이터가 저장될 노멀 블록들(BLK_N)과, 상기 메타 데이터에 대한 에러 복구 기법을 위해 하나 이상의 리저브 블록들(Rsvd)이 메타 영역(Reg_Meta)에 할당될 수 있다. 즉, 노멀 블록들(BLK_N)이 전술한 에러 프리 블록에 비해 에러 발생 가능성이 높더라도, 하나 이상의 리저브 블록들(Rsvd)을 통해 에러 복구 기법이 적용되므로 메타 데이터에 대한 신뢰성이 보장될 수 있다.
도 12a,b는 다수의 저장 매체들을 포함하는 SSD 에서 메타 영역에 블록들을 할당한 예를 나타내는 블록도이다.
도 12a를 참조하면, 데이터 처리 시스템(700)은 호스트 시스템(710) 및 SSD(720)를 포함할 수 있다. SSD(720)는 전술한 실시예에서의 오픈 채널 SSD 에 해당할 수 있고, 신호 커넥터(signal connector, SGL)를 통해 호스트 시스템(710)과 신호를 주고 받으며, 전원 커넥터(power connector, PWR)를 통해 전원을 입력 받는다. SSD(720)는 컨트롤러(721), 보조 전원 장치(722) 및 복수의 메모리 시스템들(723, 724, 725)을 포함할 수 있다. 복수의 메모리 시스템들(723, 724, 725) 각각은 스토리지 장치로서 하나 이상의 플래시 메모리 장치를 포함할 수 있다. 또한, 각각의 플래시 메모리 장치는 하나 이상의 다이(DIE)들을 포함할 수 있으며, 각각의 다이(DIE)에는 하나 이상의 블록들이 배치될 수 있다.
전술한 실시예들에 따라 컨트롤러(721)는 복수의 메모리 시스템들(723, 724, 725)과 다수의 채널들(Ch1 ~ Chn)을 통해 통신할 수 있으며, 또한 SSD(720) 내에서 메타 데이터가 저장되는 블록들에 대한 관리 동작을 수행할 수 있다. 또한, 블록들에 대한 관리 동작을 통해 블록 맵에 관련된 정보가 생성될 수 있고, 상기 블록 맵에 관련된 정보는 컨트롤러(721) 내의 휘발성 메모리(721_1)에 임시적으로 저장될 수 있고, 또한 복수의 메모리 시스템들(723, 724, 725)에 불휘발성하게 저장될 수도 있다. 또한, 컨트롤러(721)는 메타 데이터가 저장되는 블록들에 대한 관리 동작을 수행하기 위한 배드 블록 매니저(미도시)를 포함할 수 있고, 상기 배드 블록 매니저는 하드웨어, 또는 소프트웨어 또는 이들의 조합을 기반으로 구현될 수 있다.
전술한 실시예들에 따라, 메타 데이터가 저장되는 메타 영역은 에러 프리 블록과 리저브 블록을 포함할 수 있다. 일 예로서, 에러 복구 기법으로서 미러링 기법이 이용되는 경우, 어느 하나의 에러 프리 블록(예컨대, 제1 에러 프리 블록)과 이에 대응하는 리저브 블록(예컨대, 제1 리저브 블록)이 선택될 수 있으며, 제1 에러 프리 블록과 이에 대응하는 제1 리저브 블록은 다양한 방식에 따라 선택될 수 있다. 일 예로서, 제1 에러 프리 블록과 이에 대응하는 제1 리저브 블록은 동일한 채널에 연결된 메모리 시스템에서 선택될 수 있으며, 또는 어느 하나의 채널에 구비되는 다수의 플래시 메모리 장치들 중 어느 하나의 플래시 메모리 장치에서 선택될 수도 있다. 또는, 각각의 플래시 메모리 장치는 다수의 다이(DIE)들이 포함되고, 제1 에러 프리 블록과 이에 대응하는 제1 리저브 블록은 동일한 다이에서 선택될 수도 있다.
도 12b는 예시적인 실시예에 따른 블록 선택 예를 나타내고, 일 예로서 제1 채널(Ch1)에 연결된 어느 하나의 플래시 메모리 장치로서 제1 플래시 메모리 장치(Flash 1)가 예시된다. 제1 플래시 메모리 장치(Flash 1)는 다수의 다이(DIE)들을 포함하며, 이들 중 제1 다이(DIE1, 723_11) 및 제2 다이(DIE2, 723_12)가 예시된다. 또한, 제1 다이(DIE1) 및 제2 다이(DIE2) 각각은 다수의 블록들을 포함할 수 있다.
호스트 시스템은 제1 플래시 메모리 장치(Flash 1)에서 다수 개의 에러 프리 블록들의 할당을 요청할 수 있으며, 일 예로서 제1 다이(DIE1)에 배치된 제1 에러 프리 블록(EF1)과 제2 다이(DIE2)에 배치된 제2 에러 프리 블록(EF2)이 메타 영역에 할당될 수 있다. 이 때, 에러 복구 기법에 이용될 하나 이상의 리저브 블록들이 메타 영역에 더 할당될 수 있으며, 일 예로 제1 에러 프리 블록(EF1)에 대응하는 제1 리저브 블록(Rsvd1)은 제1 다이(DIE1)에서 선택될 수 있고, 제2 에러 프리 블록(EF2)에 대응하는 제2 리저브 블록(Rsvd2)은 제2 다이(DIE2)에서 선택될 수 있다. 일 예로, 컨트롤러(721)와 복수의 메모리 시스템들(723, 724, 725) 사이에서 병렬적인 통신이 수행될 수 있으며, 이 때 메타 데이터의 에러 복구에 관련된 데이터 억세스가 다른 메모리의 데이터 통신에 영향을 주지 않도록 리저브 블록이 선택될 수 있다.
도 13은 본 발명의 실시 예에 따른 서버 시스템을 포함하는 네트워크 시스템을 나타내는 블록도이다. 도 13에서는 서버 시스템과 함께 다수의 터미널들(예컨대, 컴퓨팅 노드)이 함께 도시되며, 서버 시스템은 전술한 실시예들에 따른 데이터 처리 시스템을 이용하여 구현될 수 있다.
도 13을 참조하면, 네트워크 시스템(800)은 서버 시스템(810)과 함께, 네트워크(820)를 통해 통신하는 다수의 터미널들(831_1 ~ 831_n)을 포함할 수 있다. 서버 시스템(810)은 서버(811)와 스토리지 시스템으로서 SSD(812)를 포함할 수 있다. 서버(811)는 전술한 실시예들에서의 호스트 시스템의 기능을 수행할 수 있다.
서버(811)는 네트워크(820)에 연결된 다수의 터미널들(831_1 ~ 831_n)로부터 전송된 요청들(requests)을 처리할 수 있다. 일 예로서, 서버(811)는 다수의 터미널들(831_1 ~ 831_n)로부터 제공되는 데이터를 SSD(812)에 저장할 수 있다. 또한, SSD(812)에 데이터를 저장함에 있어서 SSD(812)의 관리를 위해 메타 데이터가 SSD(812)에 저장될 수 있는데, 전술한 실시예들에 따라 서버(811)가 SSD(812)로 메타 데이터 저장을 위한 블록의 할당을 요청하고, SSD(812)가 메타 데이터가 저장되는 블록들에 대한 할당을 수행하고, 할당된 블록들에 대한 배드 블록 판정 및 관리 동작을 수행하며, 이와 함께 메타 데이터의 신뢰성을 향상하기 위한 에러 복구 기법을 적용할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 호스트 시스템과 통신하는 스토리지 시스템에 있어서,
    하나 이상의 플래시 메모리 장치를 구비하고, 각각의 플래시 메모리 장치는 다수의 블록들을 포함하는 스토리지 장치; 및
    상기 호스트 시스템으로 상기 다수의 블록들 중 상대적으로 신뢰성이 높은 에러 프리 블록의 정보를 제공하고, 상기 호스트 시스템으로부터 메타 데이터의 저장에 이용될 블록들의 정보를 포함하는 블록 할당 요청을 수신하며, 상기 블록 할당 요청에 따라 하나 이상의 에러 프리 블록들과 하나 이상의 리저브 블록들을 메타 영역에 할당하는 컨트롤러를 구비하고,
    상기 컨트롤러는, 상기 블록 할당 요청에 대응하는 할당 동작을 관리하고, 상기 에러 프리 블록에 발생된 에러를 복구하기 위한 복구 처리를 제어하는 배드 블록 매니저를 포함하는 것을 특징으로 하는 스토리지 시스템.
  2. 제1항에 있어서,
    상기 블록 할당 요청에는, 상기 메타 영역에 할당이 요청되는 상기 에러 프리 블록들의 개수 및 위치를 나타내는 정보가 포함되는 것을 특징으로 하는 스토리지 시스템.
  3. 제1항에 있어서,
    상기 스토리지 장치는 상기 복구 처리를 위한 동작으로서 지원이 가능한 에러 복구 기법들을 나타내는 정보를 상기 호스트 시스템으로 더 전송하고,
    상기 블록 할당 요청에는, 상기 호스트 시스템에서 선택된 에러 복구 기법에 관련된 정보가 더 포함되는 것을 특징으로 하는 스토리지 시스템.
  4. 제3항에 있어서,
    상기 선택된 에러 복구 기법에 기반하여, 상기 리저브 블록에는 상기 에러 프리 블록의 메타 데이터가 미러링되어 저장되거나, 상기 에러 프리 블록의 메타 데이터의 에러 복구 처리에 이용되는 복구 패리티가 저장되는 것을 특징으로 하는 스토리지 시스템.
  5. 제1항에 있어서,
    상기 배드 블록 매니저는, 상기 에러 프리 블록이 배드 블록으로 판정됨에 따라 상기 에러 프리 블록을 이에 대응하는 리저브 블록으로 맵핑한 블록 맵 정보를 관리하는 것을 특징으로 하는 스토리지 시스템.
  6. 제1항에 있어서,
    상기 컨트롤러는 NVMe(Non-Volatile Memory Express) 인터페이스를 기반으로 상기 호스트 시스템과 통신하는 인터페이스 회로를 더 포함하고,
    상기 호스트 시스템으로의 상기 에러 프리 블록의 정보와, 상기 호스트 시스템으로부터의 블록 할당 요청은 상기 인터페이스 회로를 통해 송수신되는 것을 특징으로 하는 스토리지 시스템.
  7. 제1항에 있어서, 상기 컨트롤러는,
    상기 메타 영역에 할당된 적어도 하나의 리저브 블록이 배드 블록으로 판정됨에 따라 리저브 블록이 소진되었음을 나타내는 정보를 상기 호스트 시스템으로 전송하고,
    상기 호스트 시스템으로부터 추가의 리저브 블록의 할당 요청을 수신함에 따라, 적어도 하나의 리저브 블록을 상기 메타 영역에 추가로 할당하는 것을 특징으로 하는 스토리지 시스템.
  8. 제1항에 있어서,
    상기 각각의 플래시 메모리 장치는 다수 개의 다이들을 포함하고,
    어느 하나의 에러 프리 블록과 이에 대응하는 리저브 블록은 동일한 다이 내에서 선택되는 것을 특징으로 하는 스토리지 시스템.
  9. 제1항에 있어서,
    상기 컨트롤러는,
    프로세서; 및
    상기 프로세서에 접근 가능한 워킹 메모리를 더 포함하고,
    상기 배드 블록 매니저는 상기 워킹 메모리에 로딩되어 상기 프로세서에 의해 실행되는 프로그램들을 포함하고,
    상기 배드 블록 매니저의 프로그램들은,
    상기 블록 할당 요청에 응답하여 상기 하나 이상의 에러 프리 블록들과 하나 이상의 리저브 블록들을 상기 메타 영역에 할당하는 메타 영역 관리 모듈;
    상기 메타 영역에 포함되는 블록들에 대한 배드 블록 판정 결과에 따라 블록 맵 정보를 관리하는 배드 블록 관리 모듈; 및
    상기 에러 프리 블록에 발생된 에러에 대해 상기 리저브 블록에 저장된 정보를 이용하여 복구 처리를 수행하는 복구 모듈을 포함하는 것을 특징으로 하는 스토리지 시스템.
  10. 제1항에 있어서,
    상기 스토리지 시스템은, 상기 호스트 시스템으로부터 데이터가 억세스될 위치를 지시하는 물리적 어드레스를 수신하는 오픈 채널 SSD(Solid State Drive)를 포함하는 것을 특징으로 하는 스토리지 시스템.
  11. 다수의 블록들을 포함하는 스토리지 시스템의 동작방법에 있어서,
    호스트 시스템으로부터 메타 데이터의 저장에 이용될 블록들의 정보를 포함하는 블록 할당 요청을 수신하는 단계;
    상기 블록 할당 요청에 응답하여, 상기 다수의 블록들 중 상대적으로 신뢰성이 높은 하나 이상의 에러 프리 블록들과 하나 이상의 리저브 블록들을 메타 영역에 할당하는 단계;
    상기 호스트 시스템으로부터 메타 데이터의 기록 요청에 응답하여, 상기 메타 데이터를 상기 메타 영역의 에러 프리 블록에 기록하는 단계;
    상기 에러 프리 블록에 기록된 상기 메타 데이터의 에러를 복구하기 위한 정보를 상기 리저브 블록에 기록하는 단계;
    상기 메타 데이터가 저장된 상기 에러 프리 블록의 배드 블록 여부를 판정하는 단계; 및
    상기 판정 결과에 따라, 상기 호스트 시스템으로부터 상기 메타 데이터에 대한 독출 요청에 응답하여, 상기 에러 프리 블록으로부터 독출된 메타 데이터 또는 상기 리저브 블록에 저장된 정보를 이용하여 그 에러가 복구된 메타 데이터를 상기 호스트 시스템으로 전송하는 단계를 구비하는 것을 특징으로 하는 스토리지 시스템의 동작방법.
  12. 제11항에 있어서,
    상기 호스트 시스템으로 상기 스토리지 시스템에 구비되는 에러 프리 블록들의 정보를 제공하는 단계를 더 구비하고,
    상기 블록 할당 요청에는, 상기 메타 영역에 할당될 상기 에러 프리 블록들의 개수와, 상기 호스트 시스템에 의해 지시되는 상기 에러 프리 블록들의 위치를 나타내는 정보가 포함되는 것을 특징으로 하는 스토리지 시스템의 동작방법.
  13. 제11항에 있어서,
    상기 스토리지 시스템에 의해 지원 가능한 에러 복구 기법들을 나타내는 정보를 상기 호스트 시스템으로 제공하는 단계를 더 구비하고,
    상기 블록 할당 요청에는, 상기 메타 영역에 발생된 에러를 복구하기 위해 상기 호스트 시스템에 의해 선택된 에러 복구 기법을 나타내는 정보가 포함되는 것을 특징으로 하는 스토리지 시스템의 동작방법.
  14. 제13항에 있어서,
    상기 메타 영역에 할당되는 리저브 블록들의 개수에 따라, 상기 스토리지 시스템에 서로 다른 정정 능력을 갖는 에러 정정 회로가 적용되는 것을 특징으로 하는 스토리지 시스템의 동작방법.
  15. 제11항에 있어서,
    상기 적어도 하나의 리저브 블록이 배드 블록으로 판정됨에 따라 리저브 블록이 소진되었음을 나타내는 정보를 상기 호스트 시스템으로 전송하는 단계; 및
    상기 호스트 시스템으로부터 추가의 리저브 블록의 할당 요청을 수신함에 따라, 적어도 하나의 리저브 블록을 상기 메타 영역에 추가로 할당하는 단계를 더 구비하는 것을 특징으로 하는 스토리지 시스템의 동작방법.
  16. 스토리지 시스템과 통신하는 호스트 시스템에 있어서,
    상기 스토리지 시스템에 구비되는 다수의 블록들에 대한 관리 동작을 수행하고, 상기 다수의 블록들 중 메타 데이터의 저장에 이용될 메타 영역의 블록들의 할당을 위한 블록 할당 요청을 생성하는 요청 생성 모듈을 포함하는 호스트 플래시 변환 레이어(FTL); 및
    상기 스토리지 시스템과 인터페이스를 수행하고, 상기 스토리지 시스템으로부터 상기 다수의 블록들 중 상대적으로 신뢰성이 높은 에러 프리 블록들의 정보를 수신하고, 상기 요청 생성 모듈로부터의 블록 할당 요청을 상기 스토리지 시스템으로 전송하는 인터페이스 회로를 구비하고,
    상기 블록 할당 요청은, 상기 에러 프리 블록들 중 상기 메타 영역에 할당이 요청되는 에러 프리 블록의 개수와 위치를 나타내는 정보를 포함하는 것을 특징으로 하는 호스트 시스템.
  17. 제16항에 있어서,
    상기 블록 할당 요청은, 상기 메타 영역에 포함되고 상기 에러 프리 블록에 발생된 에러를 복구하기 위한 정보를 저장하는 하나 이상의 리저브 블록들의 정보를 더 포함하는 것을 특징으로 하는 호스트 시스템.
  18. 제17항에 있어서,
    상기 인터페이스 회로는, 상기 스토리지 시스템으로부터 상기 메타 영역에 할당된 적어도 하나의 리저브 블록이 배드 블록으로 판정된 경우 이를 나타내는 정보를 수신하고,
    상기 요청 생성 모듈은, 상기 메타 영역에 추가의 리저브 블록을 할당할 것을 요청하기 위한 추가 할당 요청을 생성하는 것을 특징으로 하는 호스트 시스템.
  19. 제17항에 있어서,
    상기 인터페이스 회로는 상기 스토리지 시스템으로부터 에러의 복구 처리를 위한 동작으로서 지원이 가능한 에러 복구 기법에 관련된 정보를 수신하고,
    상기 블록 할당 요청은, 상기 호스트 시스템에서 선택된 에러 복구 기법에 관련된 정보를 더 포함하는 것을 특징으로 하는 호스트 시스템.
  20. 제19항에 있어서,
    상기 선택된 에러 복구 기법에 따라 상기 메타 영역에 할당되는 리저브 블록의 개수가 변동되는 것을 특징으로 하는 호스트 시스템.
KR1020190122654A 2019-10-02 2019-10-02 메타 데이터를 관리하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작방법 KR20210039871A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190122654A KR20210039871A (ko) 2019-10-02 2019-10-02 메타 데이터를 관리하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작방법
US16/834,779 US11726688B2 (en) 2019-10-02 2020-03-30 Storage system managing metadata, host system controlling storage system, and storage system operating method
EP20177167.2A EP3800554B1 (en) 2019-10-02 2020-05-28 Storage system managing metadata, host system controlling storage system, and storage system operating method
CN202010745090.2A CN112597069A (zh) 2019-10-02 2020-07-29 存储系统、主机系统和存储系统的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190122654A KR20210039871A (ko) 2019-10-02 2019-10-02 메타 데이터를 관리하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작방법

Publications (1)

Publication Number Publication Date
KR20210039871A true KR20210039871A (ko) 2021-04-12

Family

ID=70977712

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190122654A KR20210039871A (ko) 2019-10-02 2019-10-02 메타 데이터를 관리하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작방법

Country Status (4)

Country Link
US (1) US11726688B2 (ko)
EP (1) EP3800554B1 (ko)
KR (1) KR20210039871A (ko)
CN (1) CN112597069A (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
WO2020000136A1 (en) 2018-06-25 2020-01-02 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of i/o requests
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US11379447B2 (en) 2020-02-06 2022-07-05 Alibaba Group Holding Limited Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller
US11449386B2 (en) 2020-03-20 2022-09-20 Alibaba Group Holding Limited Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11354233B2 (en) * 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100526186B1 (ko) 2003-04-04 2005-11-03 삼성전자주식회사 플래시 메모리의 오류블록 관리방법 및 장치
US7336531B2 (en) 2004-06-25 2008-02-26 Micron Technology, Inc. Multiple level cell memory device with single bit per cell, re-mappable memory block
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US9477587B2 (en) 2008-04-11 2016-10-25 Micron Technology, Inc. Method and apparatus for a volume management system in a non-volatile memory device
KR100982440B1 (ko) 2008-06-12 2010-09-15 (주)명정보기술 단일 플래시 메모리의 데이터 관리시스템
WO2011080768A1 (en) * 2009-12-29 2011-07-07 Ferdinando Bedeschi Memory devices comprising partitions with particular ecc attributes
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US9251019B2 (en) * 2012-05-29 2016-02-02 SanDisk Technologies, Inc. Apparatus, system and method for managing solid-state retirement
KR20160028680A (ko) 2014-09-04 2016-03-14 삼성전자주식회사 데이터 저장 장치와 이의 작동 방법
US20170123881A1 (en) 2015-10-30 2017-05-04 Samsung Electronics Co., Ltd. Test method of volatile memory device embedded in electronic device
TW201818248A (zh) 2016-11-15 2018-05-16 慧榮科技股份有限公司 可應用於資料儲存裝置之記憶體管理方法
US10073640B1 (en) 2017-03-10 2018-09-11 Toshiba Memory Corporation Large scale implementation of a plurality of open channel solid state drives
JP2018181202A (ja) 2017-04-20 2018-11-15 富士通株式会社 ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
US10860228B1 (en) * 2019-06-24 2020-12-08 Western Digital Technologies, Inc. Method to switch between traditional SSD and open-channel SSD without data loss

Also Published As

Publication number Publication date
CN112597069A (zh) 2021-04-02
EP3800554B1 (en) 2022-04-13
US20210103388A1 (en) 2021-04-08
EP3800554A1 (en) 2021-04-07
US11726688B2 (en) 2023-08-15

Similar Documents

Publication Publication Date Title
US11726688B2 (en) Storage system managing metadata, host system controlling storage system, and storage system operating method
US10860508B2 (en) Offloaded disaggregated storage architecture
CN106681931B (zh) 数据储存设备及其操作方法
KR102533207B1 (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
KR102381218B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US11086772B2 (en) Memory system performing garbage collection operation and operating method of memory system
US20210182202A1 (en) Memory system and data processing system including the same
US20160062663A1 (en) Process and Apparatus to Reduce Declared Capacity of a Storage Device by Altering an Encoding Format
US11543990B2 (en) Data storage apparatus with extended lifespan and operation method thereof
CN109727630B (zh) 存储系统及其操作方法
KR20160074025A (ko) 데이터 저장 장치의 동작 방법
KR20200132495A (ko) 메모리 시스템, 컨트롤러 및 컨트롤러의 동작 방법
US11176048B2 (en) Data storage device, operation method thereof, and controller therefor
KR20210038753A (ko) 데이터 저장 장치 및 그 동작 방법
CN115458013A (zh) 存储装置及其操作方法
US11243888B2 (en) Data storage apparatus and operating method thereof
CN114764396A (zh) 数据存储装置及其操作方法
CN113553631A (zh) 用于在存储器系统中保护数据的设备和方法
KR20210156090A (ko) 저장 장치 및 그 동작 방법
KR20210156010A (ko) 저장 장치 및 그 동작 방법
KR102425470B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US20200089421A1 (en) Data storage device, operation method thereof, and storage system including the same
KR20200121068A (ko) 데이터 저장 장치 및 이의 동작 방법, 이를 위한 컨트롤러
CN106935265B (zh) 非易失性存储器装置以及包括该非易失性存储器装置的数据存储装置
KR20220130526A (ko) 메모리 시스템 및 그 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination