KR20200068147A - 스토리지 장치 및 스토리지 장치의 동작 방법 - Google Patents

스토리지 장치 및 스토리지 장치의 동작 방법 Download PDF

Info

Publication number
KR20200068147A
KR20200068147A KR1020180154413A KR20180154413A KR20200068147A KR 20200068147 A KR20200068147 A KR 20200068147A KR 1020180154413 A KR1020180154413 A KR 1020180154413A KR 20180154413 A KR20180154413 A KR 20180154413A KR 20200068147 A KR20200068147 A KR 20200068147A
Authority
KR
South Korea
Prior art keywords
area
raid
controller
spare
host device
Prior art date
Application number
KR1020180154413A
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 KR1020180154413A priority Critical patent/KR20200068147A/ko
Priority to US16/524,920 priority patent/US11079943B2/en
Priority to CN201910850464.4A priority patent/CN111273855B/zh
Publication of KR20200068147A publication Critical patent/KR20200068147A/ko

Links

Images

Classifications

    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0626Reducing size or complexity of storage systems
    • 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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명의 실시 예에 다른 스토리지 장치는 저장 공간을 포함하는 불휘발성 메모리 장치, 불휘발성 메모리 장치의 저장 공간을 사용자 영역 및 메타 영역으로 분할하여 관리하고, 사용자 영역을 외부의 호스트 장치에 제공하도록 구성되는 제어기를 포함한다. 외부의 호스트 장치로부터 레이드 스페어 정보가 수신됨에 따라, 제어기는 레이드 스페어 정보에 기반하여 사용자 영역에서 레이드 스페어 영역을 선택하고, 그리고 레이드 스페어 영역의 적어도 일부를 초과 제공 영역으로 사용하도록 더 구성된다.

Description

스토리지 장치 및 스토리지 장치의 동작 방법{STORAGE DEVICE AND OPERATING METHOD OF STORAGE DEVICE}
본 발명은 반도체 장치에 관한 것으로, 더 상세하게는 호스트 장치에 의해 지정되는 스페어 영역을 초과 제공 영역으로 활용하는 스토리지 장치 및 스토리지 장치의 동작 방법에 관한 것이다.
스토리지 장치는 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 제어하는 제어기를 포함한다. 불휘발성 메모리 장치는 플래시 메모리 장치, 상 변화 메모리 장치, 강유전체 메모리 장치, 자기 메모리 장치, 저항성 메모리 장치 등을 포함한다.
불휘발성 메모리 장치 중에서 플래시 메모리 장치는 쓰기 전 소거 특성을 갖는다. 플래시 메모리 장치의 특정한 영역에 데이터를 기입하기 위해, 특정한 영역에 대한 소거가 선행되어야 한다. 즉, 플래시 메모리 장치는 덮어쓰기를 지원하지 않는다.
덮어쓰기를 지원하지 않는 것은 플래시 메모리 장치의 액세스 속도를 저하할 수 있다. 플래시 메모리 장치를 액세스하는 속도를 높이기 위해, 스토리지 장치는 플래시 메모리 장치의 일부 저장 영역을 사용할 수 있다. 즉, 플래시 메모리 장치의 일부 저장 영역은 호스트 장치에 제공되지 않고, 성능 향상을 위해 사용될 수 있다.
스토리지 장치의 용량이 증가함에 따라, 스토리지 장치에서 성능 향상을 위해 사용되는 영역의 용량 또한 증가하고 있다. 이로 인해, 스토리지 장치에서 낭비되는 용량 또한 증가하고 있다.
본 발명의 목적은 저장 공간의 낭비를 줄이는 스토리지 장치 및 스토리지 장치의 동작 방법을 제공하는 데에 있다.
본 발명의 실시 예에 다른 스토리지 장치는 저장 공간을 포함하는 불휘발성 메모리 장치, 불휘발성 메모리 장치의 저장 공간을 사용자 영역 및 메타 영역으로 분할하여 관리하고, 사용자 영역을 외부의 호스트 장치에 제공하도록 구성되는 제어기를 포함한다. 외부의 호스트 장치로부터 레이드(RAID) 스페어 정보가 수신됨에 따라, 제어기는 레이드 스페어 정보에 기반하여 사용자 영역에서 레이드 스페어 영역을 선택하고, 그리고 레이드 스페어 영역의 적어도 일부를 초과 제공(over provision) 영역으로 사용하도록 더 구성된다.
본 발명의 실시 예에 따른 스토리지 장치는 저장 공간을 포함하는 불휘발성 메모리 장치, 그리고 불휘발성 메모리 장치의 저장 공간을 사용자 영역, 제1 초과 제공 영역 및 메타 영역으로 분할하여 관리하고, 사용자 영역을 외부의 호스트 장치에 제공하도록 구성되는 제어기를 포함한다. 외부의 호스트 장치로부터 레이드(RAID) 스페어 정보가 수신됨에 따라, 제어기는 레이드 스페어 정보에 기반하여 사용자 영역에서 레이드 스페어 영역을 선택하고, 그리고 레이드 스페어 영역의 적어도 일부를 제2 초과 제공(over provision) 영역으로 사용하도록 더 구성된다.
불휘발성 메모리 장치 및 제어기를 포함하는 본 발명의 실시 예에 따른 스토리지 장치의 동작 방법은, 제어기가 외부의 호스트 장치에 스토리지 장치의 사용자 영역의 용량 정보를 제공하는 단계, 제어기가 외부의 호스트 장치로부터 레이드(RAID) 스페어 정보를 수신하는 단계, 제어기가 레이드 스페어 정보에 기반하여 사용자 영역을 주 사용 영역 및 레이드 스페어 영역으로 분할하는 단계, 그리고 제어기가 레이드 스페어 영역의 적어도 일부를 초과 제공 영역으로 사용하여 주 사용 영역에 대한 읽기 동작 및 쓰기 동작을 지원하는 단계를 포함한다.
본 발명의 실시 예들에 따르면, 스토리지 장치는 성능 향상을 위한 저장 공간을 지정하지 않거나 줄일 수 있다. 스토리지 장치는 호스트 장치에 의해 지정되는 스페어 영역을 성능 향상을 위한 저장 공간으로 사용할 수 있다. 따라서, 저장 공간의 낭비를 줄이는 스토리지 장치 및 스토리지 장치의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치를 보여준다.
도 2는 본 발명의 다른 실시 예에 따른 스토리지 장치를 보여준다.
도 3은 본 발명의 실시 예에 따른 스토리지 장치의 동작 방법을 보여준다.
도 4는 도 2의 스토리지 장치에서 도 3의 방법에 따라 레이드 스페어 영역이 지정된 예를 보여준다.
도 5는 스토리지 장치 어레이를 포함하는 컴퓨팅 장치를 보여준다.
도 6은 도 5의 컴퓨팅 장치가 제1 스토리지 장치 그룹에 데이터를 저장하는 예를 보여준다.
도 7은 제1 스토리지 장치에서 장치 실패가 발생한 때에 데이터가 복원되는 예를 보여준다.
도 8은 본 발명의 실시 예에 따른 스토리지 장치가 레이드 스페어 영역을 초과 사용 영역으로 사용하는 것을 중지하는 방법을 보여준다.
도 9는 본 발명의 실시 예에 따른 스토리지 장치가 레이드 스페어 영역을 초과 제공 영역으로 다시 사용하는 예를 보여준다.
도 10은 스토리지 장치가 레이드 스페어 영역에 대한 정보를 기록하는 예를 보여준다.
도 11은 스토리지 장치가 레이드 스페어 영역의 일부 영역을 초과 사용 영역으로 사용하는 예를 보여준다.
도 12는 도 11의 스토리지 장치가 레이드 재건을 지원하는 방법을 보여준다.
도 13은 본 발명의 다른 실시 예에 따른 스토리지 장치를 보여준다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치(100)를 보여준다. 도 1을 참조하면, 스토리지 장치(100)는 불휘발성 메모리 장치(110) 및 제어기(120)를 포함한다.
불휘발성 메모리 장치(110)는 플래시 메모리 장치, 상 변화 메모리 장치, 강유전체 메모리 장치, 자기 메모리 장치, 저항성 메모리 장치 등을 포함한다. 간결한 설명을 위하여, 불휘발성 메모리 장치(110)는 플래시 메모리 장치인 것으로 가정된다. 그러나 본 발명의 기술적 사상은 플래시 메모리 장치로 한정되지 않는다.
제어기(120)는 외부의 호스트 장치의 요청에 따라 또는 내부적으로 정해지는 스케줄에 따라 불휘발성 메모리 장치(110)를 제어할 수 있다. 제어기(120)는 불휘발성 메모리 장치(110)에 읽기 동작, 쓰기 동작 또는 소거 동작을 요청할 수 있다.
제어기(120)는 불휘발성 메모리 장치(110)의 저장 영역(110a)을 물리 주소들을 이용하여 식별할 수 있다. 예를 들어, 불휘발성 메모리 장치(110)의 저장 영역(110a)은 제1 내지 제9 물리 주소들(PA1~PA9)을 이용하여 식별될 수 있다.
제어기(120)는 불휘발성 메모리 장치(110)의 저장 영역(110a)을 사용자 영역(125a), 초과 제공 영역(126a), 그리고 메타 영역(127a)으로 구분할 수 있다. 제어기(120)는 사용자 영역(125a)을 호스트 장치에 제공할 수 있다. 예를 들어, 제어기(120)는 사용자 영역(125a)의 용량을 스토리지 장치(100)의 용량으로서 호스트 장치에 알릴 수 있다.
제어기(120)는 저장소(121)(STG)를 포함한다. 저장소(121)는 스토리지 장치(100)의 저장 공간에 대한 정보(예를 들어, 용량 정보)를 저장할 수 있다. 스토리지 장치(100)가 호스트 장치와 연결되고 전원이 공급될 때, 제어기(120)는 저장소(121)에 저장된 정보를 호스트 장치에 제공할 수 있다.
호스트 장치에 의해, 사용자 영역(125a)에 논리 주소들이 할당될 수 있다. 호스트 장치는 논리 주소들을 이용하여 사용자 영역(125a)을 식별할 수 있다. 예를 들어, 사용자 영역(125a)은 제1 내지 제5 논리 주소들(LA1~LA5)을 이용하여 식별될 수 있다.
제어기(120)는 사용자 영역(125a)의 논리 주소들을 불휘발성 메모리 장치(110)의 저장 영역(110a)의 물리 주소들과 매핑할 수 있다. 예를 들어, 제1 내지 제5 논리 주소들(LA1~LA5)은 각각 제5 내지 제9 물리 주소들(PA5~PA9)과 매핑될 수 있다.
제1 내지 제5 논리 주소들(LA1~LA5)에 매핑되는 물리 주소들은 제어기(120)가 불휘발성 메모리 장치(110)를 제어하는 방법에 따라 달라질 수 있다. 예를 들어, 제어기(120)는 불휘발성 메모리 장치(110)의 저장 영역(110a)의 마모도, 데이터의 신뢰성, 데이터의 파편화 등을 반영하여 제1 내지 제5 논리 주소들(LA1~LA5)에 매핑되는 물리 주소들을 선택할 수 있다.
즉, 호스트 장치가 제1 내지 제5 논리 주소들(LA1~LA5)에 제1 데이터를 기입하고 그리고 제1 데이터를 제2 데이터로 갱신할 때, 불휘발성 메모리 장치(110)의 저장 영역(110a)에서 실제로 제1 데이터가 기입되는 위치와 제2 데이터가 기입되는 위치는 달라질 수 있다.
제어기(120)는 스토리지 장치(100)를 관리하기 위한 메타 정보를 메타 영역(127a)에 저장할 수 있다. 예를 들어, 제어기(120)는 논리 주소들과 물리 주소들의 매핑 정보를 메타 영역(127a)에 저장할 수 있다. 또한, 제어기(120)는 스토리지 장치(100)를 구동하기 위한 펌웨어 또는 코드들을 메타 영역(127a)에 저장할 수 있다.
예시적으로, 제어기(120)는 불휘발성 메모리 장치(110)의 저장 영역(110a)의 특정한 위치, 즉 고정된 물리 주소(예를 들어, PA1 및 PA2)가 가리키는 영역을 메타 영역(127a)으로 지정할 수 있다. 다른 예로서, 제어기(120)는 불휘발성 메모리 장치(110)의 저장 영역(110a)의 마모도, 데이터의 신뢰성, 데이터의 파편화 등을 반영하여 메타 영역(127a)으로 지정되는 물리 주소들을 선택할 수 있다.
제어기(120)는 초과 제공 영역(126a)을 이용하여 사용자 영역(125a)에 대한 액세스를 지원할 수 있다. 예를 들어, 제어기(120)는 초과 제공 영역(126a)을 이용하여 사용자 영역(125a)에 대한 읽기 동작 및 쓰기 동작을 지원할 수 있다.
예시적으로, 불휘발성 메모리 장치(110)가 플래시 메모리 장치일 때, 불휘발성 메모리 장치(110)는 덮어쓰기를 지원하지 않는다. 호스트 장치는 사용자 영역(125a)의 특정 영역에 제1 데이터를 기입하고 그리고 제1 데이터를 제2 데이터로 갱신할 수 있다.
덮어쓰기가 지원되지 않으면, 제어기(120)는 사용자 영역(125a)의 특정 영역의 제1 데이터를 소거하고, 그리고 특정 영역에 제2 데이터를 다시 기입하여야 한다. 즉, 호스트 장치의 쓰기 명령에 따라 제어기(120)가 소거 동작 및 쓰기 동작을 수행하므로, 스토리지 장치(100)의 응답 속도가 저하된다.
제어기(120)는 초과 제공 영역(126a)을 이용하여 응답 속도를 높일 수 있다. 예를 들어, 제어기(120)는 제2 데이터를 초과 제공 영역(126a)의 빈 공간에 기입하고, 그리고 제1 데이터를 무효 데이터로 선언할 수 있다. 초과 제공 영역(126a)을 이용하면, 호스트 장치의 쓰기 명령에 따라 제어기(120)가 쓰기 동작만을 수행하므로, 스토리지 장치(100)의 응답 속도가 향상된다.
제어기(120)가 사용자 영역(125a)의 데이터를 읽을수록, 해당 데이터의 신뢰성이 저하된다. 제어기(120)는 신뢰성이 저하된 데이터를 다른 저장 공간에 다시 기입하는 읽기 리클레임(read reclaim)을 수행할 수 있다. 제어기(120)는 기존 데이터를 소거하고 다시 기입하는 대신, 기존 데이터를 초과 제공 영역(126a)에 기입하고 기존 데이터를 무효 데이터로 선언할 수 있다. 따라서, 읽기 리클레임의 속도가 향상된다.
불휘발성 메모리 장치(110)의 소거 동작의 단위(예를 들어, 소거 단위)는 읽기 동작 및 쓰기 동작의 단위(예를 들어, 읽기 및 쓰기 단위)보다 클 수 있다. 따라서, 특정한 소거 단위에서 무효 데이터가 발생하여도, 해당 소거 단위에 유효 데이터 또한 존재할 수 있다.
제어기(120)는 소거 단위(또는 소거 단위들)의 유효 데이터를 다른 소거 단위로 모으고, 해당 소거 단위(또는 소거 단위들)를 소거 대상으로 예약하는 가비지 컬렉션을 수행할 수 있다. 제어기(120)는 초과 제공 영역(126a)에서 다른 소거 단위를 선택함으로써, 가비지 컬렉션의 속도를 향상할 수 있다.
상술된 바와 같이, 제어기(120)는 불휘발성 메모리 장치(110)의 저장 영역(110a)의 일부를 초과 제공 영역(126a)으로 지정함으로써, 사용자 영역(125a)의 액세스 속도를 향상하고 그리고 스토리지 장치(100)의 성능을 향상할 수 있다.
그러나 초과 제공 영역(126a)을 지정하는 것은 불휘발성 메모리 장치(110)의 저장 영역(110a)의 일부가 호스트 장치에 제공되지 않는 것을 유발한다. 즉, 스토리지 장치(100)의 전체 저장 용량의 일부가 호스트 장치에 의해 사용되지 않고 낭비되는 것을 유발한다.
호스트 장치는 스토리지 장치(100)의 저장 용량으로 사용자 영역(125a)을 식별한다. 호스트 장치는 자체적인 보안 정책에 따라, 사용자 영역(125a)의 일부를 스페어 영역으로 사용할 수 있다. 예를 들어, 스페어 영역은 레이드(RAID)(Redundant Array of Inexpensive Disk)에 기반하여 지정될 수 있다. 스페어 영역은 'RAID 6'에 기반하여 지정되며, 둘 이상의 스토리지 장치들에 저장된 데이터를 복원하는 데에 사용될 수 있다.
스토리지 장치(100)에 의해 지정되는 초과 제공 영역(126a) 및 호스트 장치에 의해 지정되는 스페어 영역은 스토리지 장치(100)의 저장 용량 중에서 호스트 장치에 의해 사용 가능한 저장 용량을 감소시킨다. 스토리지 장치(100)의 저장 용량을 중복하여 감소시킴으로써, 스토리지 장치(100)의 저장 용량의 낭비가 과도하게 발생할 수 있다.
도 2는 본 발명의 다른 실시 예에 따른 스토리지 장치(200)를 보여준다. 도 2를 참조하면, 스토리지 장치(200)는 불휘발성 메모리 장치(210) 및 제어기(220)를 포함한다. 불휘발성 메모리 장치(210)는 도 1을 참조하여 설명된 불휘발성 메모리 장치(110)와 동일하며, 저장 영역(210a)을 제공할 수 있다.
제어기(220)는 도 1을 참조하여 설명된 것과 같이 외부의 호스트 장치의 요청에 따라 또는 내부적으로 정해진 스케줄에 따라 불휘발성 메모리 장치(210)를 제어할 수 있다. 제어기(220)는 불휘발성 메모리 장치(210)의 저장 영역(210a)을 사용자 영역(225a) 및 메타 영역(227a)으로 구분하고, 초과 제공 영역을 지정하지 않을 수 있다.
불휘발성 메모리 장치(210)의 저장 영역(210a)에서 초과 제공 영역이 지정되지 않는 만큼, 사용자 영역(225a)이 확장될 수 있다. 도 1을 참조하여 설명된 바와 같이, 제어기(220)는 저장소(221)에 저장된 사용자 영역(225a)의 용량 정보를 외부의 호스트 장치에 제공함으로써, 사용자 영역(225a)을 호스트 장치에 제공할 수 있다.
호스트 장치는 사용자 영역(225a)에 제1 내지 제7 논리 주소들(LA1~LA7)이 할당되고, 제1 내지 제7 논리 주소들(LA1~LA7)은 물리 주소들, 예를 들어 제3 내지 제9 물리 주소들(PA3~PA9)에 매핑될 수 있다. 도 1을 참조하여 설명된 바와 같이, 제어기(220)는 논리 주소들 및 물리 주소들이 매핑 정보, 펌웨어, 또는 코드들을 메타 영역(227a)에 저장할 수 있다.
도 1을 참조하여 설명된 바와 같이, 메타 영역(227a)이 저장되는 물리 주소들은 고정되거나 변경될 수 있다. 또한, 도 1을 참조하여 설명된 바와 같이, 사용자 영역(225a)의 논리 주소들에 매핑되는 물리 주소들은 변경될 수 있다.
본 발명의 실시 예에 따른 스토리지 장치(200)는 초과 제공 영역을 지정하지 않음으로써, 스토리지 장치(200)의 저장 용량이 호스트 장치에 의해 사용 불가능한 형태로 낭비되는 것을 방지할 수 있다. 이에 더하여, 본 발명의 실시 예에 따른 스토리지 장치(200)는 호스트 장치에 의해 사용자 영역(225a)에 생성되는 스페어 영역을 초과 제공 영역으로 사용할 수 있다. 따라서, 스토리지 장치(200)의 성능이 향상될 수 있다.
도 3은 본 발명의 실시 예에 따른 스토리지 장치(200)의 동작 방법을 보여준다. 도 2 및 도 3을 참조하면, S110 단계에서, 제어기(220)는 호스트 장치에 용량 정보를 제공할 수 있다. 예를 들어, 제어기(220)는 저장소(221)에 저장된 사용자 영역(225a)의 용량 정보를 호스트 장치에 제공할 수 있다.
용량 정보에 따라, 호스트 장치는 스토리지 장치(200)에 스페어 영역을 지정할 수 있다. 예를 들어, 스페어 영역은 스토리지 장치(200)의 논리 주소들에 의해 지정될 수 있다. 스페어 영역은 호스트 장치가 손상된 데이터를 레이드(RAID)에 기반하여 복원할 때에 사용될 수 있다. 즉, 데이터 손상이 발생하지 않은 때에, 스페어 영역은 호스트 장치에 의해 사용되지 않을 수 있다.
호스트 장치는 스페어 영역을 지정하고, 스페어 영역에 대한 레이드 스페어 정보(예를 들어, 논리 주소들)를 제어기(220)에 전송할 수 있다. S120 단계에서, 제어기(220)는 호스트 장치로부터 레이드 스페어 정보를 수신할 수 있다.
예를 들어, 스페어 정보는 VUC(Vendor Unique Command)의 형태로 수신될 수 있다. VUC는 읽기 명령, 쓰기 명령, 소거 명령 등과 같이, 통상적인 불휘발성 메모리 장치들에서 필수(mandatory) 명령으로 공통으로 정의된 명령들을 제외한 부가적인 명령일 수 있다. VUC는 스토리지 장치(200)의 제조사 및 호스트 장치의 제조사의 합의에 의해 정의될 수 있다.
S130 단계에서, 제어기(220)는 레이드(RAID) 스페어 정보에 기반하여, 사용자 영역(225a)의 레이드(RAID) 스페어 영역을 식별할 수 있다. 제어기(220)는 사용자 영역(225a)에서 레이드(RAID) 스페어 영역을 제외한 나머지 영역을 주 사용 영역으로 식별할 수 있다. S140 단계에서, 제어기(220)는 레이드(RAID) 스페어 영역을 초과 사용 영역으로 사용할 수 있다.
도 4는 도 2의 스토리지 장치(200)에서 도 3의 방법에 따라 레이드(RAID) 스페어 영역이 지정된 예를 보여준다. 도 4를 참조하면, 예를 들어 제1 및 제2 논리 주소들(LA1, LA2)의 저장 영역들이 레이드(RAID) 스페어 영역(228a)으로 지정될 수 있다.
호스트 장치로부터 레이드(RAID) 스페어 정보를 수신함으로써, 제어기(220)는 제1 및 제2 논리 주소들(LA1, LA2)의 저장 영역들이 레이드(RAID) 스페어 영역(228a)으로 지정되었음을 식별할 수 있다. 위에서 언급된 바와 같이, 레이드(RAID) 스페어 영역(228a)은 데이터 손상이 발생한 때에 호스트 장치에 의해 사용된다.
데이터 손상이 발생하지 않은 때에, 호스트 장치는 레이드(RAID) 스페어 영역(228a)을 사용하지 않고 방치한다. 따라서, 제어기(220)는 호스트 장치가 레이드(RAID) 스페어 영역(228a)을 방치하는 동안, 레이드(RAID) 스페어 영역(228a)을 또는 레이드(RAID) 스페어 영역의 적어도 일부를 초과 제공 영역으로 사용할 수 있다.
예를 들어, 도 1을 참조하여 설명된 바와 같이, 제어기(220)는 사용자 영역(225a)의 주 사용 영역에 대한 읽기 동작 및 쓰기 동작을 지원하는 데에 초과 제공 영역을 사용할 수 있다. 레이드(RAID) 스페어 영역을 초과 제공 영역으로 사용함으로써, 스토리지 장치(200)는 저장 용량의 낭비를 방지하고 성능을 향상할 수 있다.
도 5는 스토리지 장치 어레이(1500)를 포함하는 컴퓨팅 장치(1000)를 보여준다. 도 5를 참조하면, 컴퓨팅 장치(1000)는 프로세서(1100), 랜덤 액세스 메모리(1200), 사용자 인터페이스(1300), 모뎀(1400), 그리고 스토리지 장치 어레이(1500)를 포함한다. 예를 들어, 컴퓨팅 장치(1000)는 서버일 수 있다.
프로세서(1100)는 컴퓨팅 장치(1000)를 제어하고, 운영체제 및 응용들을 실행할 수 있다. 프로세서(1100)는 랜덤 액세스 메모리(1200)를 캐시 메모리, 버퍼 메모리 또는 시스템 메모리로 이용할 수 있다. 프로세서(1100)는 사용자 데이터를 스토리지 장치 어레이(1500)에 저장할 수 있다. 프로세서(1100)는 도 1 및 도 3의 호스트 장치에 대응할 수 있다.
랜덤 액세스 메모리(1200)는 프로세서(1100)에 의해 실행되는 운영체제 및 응용들의 인스턴스들을 저장할 수 있다. 랜덤 액세스 메모리(1200)는 사용자 인터페이스(1300)를 통해 입력된 데이터 또는 사용자 인터페이스(1300)를 통해 출력될 데이터를 저장할 수 있다.
랜덤 액세스 메모리(1200)는 모뎀(1400)을 통해 수신된 데이터 또는 모뎀(1400)을 통해 송신될 데이터를 저장할 수 있다. 랜덤 액세스 메모리(1200)는 스토리지 장치 어레이(1500)에 저장될 데이터 또는 스토리지 장치 어레이(1500)로부터 읽혀진 데이터를 저장할 수 있다.
사용자 인터페이스(1300)는 컴퓨팅 장치(1000)의 사용자와 정보를 교환할 수 있다. 사용자 인터페이스(1300)는 키보드, 터치 패널, 마우스, 마이크 등과 같은 사용자 입력 인터페이스 및 모니터, 스피커, 빔 프로젝터 등과 같은 사용자 출력 인터페이스를 포함할 수 있다.
모뎀(1400)은 유선 또는 무선 통신을 통해 외부의 장치, 예를 들어 클라이언트 컴퓨터 또는 다른 서버 컴퓨터와 통신할 수 있다. 스토리지 장치 어레이(1500)는 사용자 데이터를 저장할 수 있다. 스토리지 장치 어레이(1500)는 제1 내지 제n 스토리지 장치 그룹들(1501~150n)을 포함할 수 있다.
제1 내지 제n 스토리지 장치 그룹들(1501~150n)의 각각은 둘 이상의 스토리지 장치들을 포함할 수 있다. 프로세서(1100)는 데이터의 무결성을 보장하기 위하여, 레이드(RAID)와 같은 데이터 보안 방식에 기반하여 제1 내지 제n 스토리지 장치 그룹들(1501~150n)에 저장되는 데이터를 조직화할 수 있다.
예를 들어, 프로세서(1100)는 스토리지 장치 어레이(1500)의 단위로 또는 각 스토리지 장치 그룹의 단위로 데이터를 조직화할 수 있다. 간결한 설명을 위하여, 프로세서(1100)는 각 스토리지 장치 그룹의 단위로 데이터를 조직화하는 것으로 가정된다.
도 6은 도 5의 컴퓨팅 장치가 제1 스토리지 장치 그룹(1501)에 데이터를 저장하는 예를 보여준다. 도 5 및 도 6을 참조하면, 제1 스토리지 장치 그룹(1501)은 제1 내지 제4 스토리지 장치들(1510~1540)을 포함할 수 있다. 제1 내지 제4 스토리지 장치들(1510~1540)의 각각은 도 2 내지 도 4를 참조하여 설명된 바와 같이 구성되고 동작할 수 있다.
예시적으로, 제1 내지 제4 스토리지 장치들(1510~1540)의 각각의 사용자 영역은 제1 내지 제4 블록들(B1~B4)로 분할될 수 있다. 프로세서(1100)는 데이터를 레이드(RAID)에 기반하여 조직화하고, 조직화된 데이터를 제1 내지 제4 스토리지 장치들(1510~1540)에 저장할 수 있다.
예를 들어, 프로세서(1100)는 제1 내지 제3 데이터(D1~D3)를 조직화하여 제1 내지 제4 스토리지 장치들(1510~1540)의 제1 블록들(B1)에 저장할 수 있다. 프로세서(1100)는 제1 내지 제3 스토리지 장치들(1510~1530)의 제1 블록들(B1)에 제1 내지 제3 데이터(D1~D3)를 저장할 수 있다. 프로세서(1100)는 제4 스토리지 장치(1540)의 제1 블록(B1)에 제1 패리티(P1)를 저장할 수 있다.
프로세서(1100)는 제1 내지 제3 데이터(D1~D3)로부터 제1 패리티(P1)를 생성할 수 있다. 예를 들어, 프로세서(1100)는 제1 내지 제3 데이터(D1~D3)에 대해 배타적 논리합(XOR)을 수행함으로써 제1 패리티(P1)를 생성할 수 있다. 제1 패리티(P1)는 제1 내지 제3 데이터(D1~D3) 중 어느 하나에서 결함이 발생한 때에 결함을 복원하는 데에 사용될 수 있다.
마찬가지로, 프로세서(1100)는 제1 내지 제4 스토리지 장치들(1510~1540)의 제2 블록들(B2)에 제4 내지 제6 데이터(D4~D6) 및 제2 패리티(P2)를 저장할 수 있다. 제2 패리티(P2)는 제4 내지 제6 데이터(D4~D6)로부터 생성될 수 있다. 프로세서(1100)는 제1 내지 제4 스토리지 장치들(1510~1540)의 제3 블록들(B3)에 제7 내지 제9 데이터(D7~D9) 및 제3 패리티(P3)를 저장할 수 있다. 제3 패리티(P3)는 제7 내지 제9 데이터(D7~D9)로부터 생성될 수 있다.
프로세서(1100)는 제1 내지 제4 스토리지 장치들(1510~1540)의 제4 블록들(B4)을 레이드(RAID) 스페어 영역으로 지정할 수 있다. 데이터 결함이 발생하지 않은 때에, 프로세서(1100)는 제1 내지 제4 스토리지 장치들(1510~1540)의 각각의 제4 블록(B4)에 데이터를 저장하지 않을 수 있다. 따라서, 제1 내지 제4 스토리지 장치들(1510~1540)은 제4 블록들(B1)의 레이드(RAID) 스페어 영역들을 초과 제공 영역으로 사용할 수 있다.
도 7은 제1 스토리지 장치(1510)에서 장치 실패가 발생한 때에 데이터가 복원되는 예를 보여준다. 도 5 및 도 7을 참조하면, 제1 스토리지 장치(1510)에서 장치 실패가 발생할 수 있다. 따라서, 제1 스토리지 장치(1510)에 저장된 제1 데이터(D1), 제4 데이터(D4) 및 제7 데이터(D7)가 손상될 수 있다.
프로세서(1100)는 제2 내지 제4 스토리지 장치들(1520~1540)에 저장된 데이터 및 패리티를 이용하여 제1 스토리지 장치(1510)의 데이터를 복원할 수 있다. 예를 들어, 프로세서(1100)는 제2 내지 제4 스토리지 장치들(1520~1540)의 제1 블록들(B1)로부터 제2 데이터(D2), 제3 데이터(D3) 및 제1 패리티(P1)를 읽을 수 있다.
프로세서(1100)는 제2 데이터(D2), 제3 데이터(D3) 및 제1 패리티(P1)로부터 제1 데이터(D1)를 재건(rebuild)할 수 있다. 예를 들어, 프로세서(1100)는 제2 데이터(D2), 제3 데이터(D3) 및 제1 패리티(P1)에 대해 배타적 논리합(XOR)을 수행하여 제1 데이터(D1)를 복원할 수 있다. 프로세서(1100)는 재건된 제1 데이터(D1)를 제2 스토리지 장치(1520)의 레이드(RAID) 스페어 영역인 제4 블록(B4)에 저장할 수 있다.
마찬가지로, 프로세서(1100)는 제2 내지 제4 스토리지 장치들(1520~1540)의 제2 블록들(B2)에 저장된 제5 데이터(D5), 제6 데이터(D6) 및 제2 패리티(P2)로부터 제4 데이터(D4)를 재건할 수 있다. 프로세서(1100)는 제4 데이터(D4)를 제3 스토리지 장치(1530)의 레이드(RAID) 스페어 영역인 제4 블록(B4)에 저장할 수 있다.
마찬가지로, 프로세서(1100)는 제2 내지 제4 스토리지 장치들(1520~1540)의 제3 블록들(B3)에 저장된 제8 데이터(D8), 제9 데이터(D9) 및 제3 패리티(P3)로부터 제7 데이터(D7)를 재건할 수 있다. 프로세서(1100)는 제7 데이터(D7)를 제4 스토리지 장치(1540)의 레이드(RAID) 스페어 영역인 제4 블록(B4)에 저장할 수 있다.
제1 데이터(D1), 제4 데이터(D4) 및 제7 데이터(D7)를 재건함으로써, 제1 스토리지 장치 그룹(1501)의 데이터가 모두 복원될 수 있다. 프로세서(1100)는 제1 스토리지 장치 그룹(1501)의 데이터에 대한 액세스를 허용할 수 있다.
상술된 바와 같이, 데이터 손상이 발생한 때에, 프로세서(1100)는 레이드(RAID) 스페어 영역을 사용할 수 있다. 따라서, 본 발명의 실시 예에 따른 스토리지 장치(200)는 프로세서(1100)의 요청이 있는 때에 레이드(RAID) 스페어 영역을 초과 사용 영역으로 사용하는 것을 중지하도록 구성될 수 있다.
도 8은 본 발명의 실시 예에 따른 스토리지 장치(200)가 레이드(RAID) 스페어 영역을 초과 사용 영역으로 사용하는 것을 중지하는 방법을 보여준다. 도 4 및 도 8을 참조하면, 데이터의 재건이 필요한 때에, 호스트 장치(예를 들어, 도 5의 프로세서(1100))는 제어기(220)에 확보(secure) 명령을 전송할 수 있다. S210 단계에서, 제어기(220)는 호스트 장치로부터 확보 명령을 수신할 수 있다. 예를 들어, 확보 명령은 VUC의 형태로 수신될 수 있다.
S220 단계에서, 제어기(220)는 레이드(RAID) 스페어 영역(228a)에 대해 가비지 컬렉션을 수행할 수 있다. 예를 들어, 제어기(220)는 레이드(RAID) 스페어 영역(228a)에 저장된 유효 데이터를 주 사용 영역으로 옮길 수 있다.
S230 단계에서, 제어기(220)는 레이드(RAID) 스페어 영역(228a)에 대해 소거 동작을 수행할 수 있다. 예를 들어, 제어기(220)는 레이드(RAID) 스페어 영역(228a)에서 무효 데이터가 저장된 소거 단위들의 각각에 대해 소거 동작을 수행할 수 있다. 제어기(220)는 레이드(RAID) 스페어 영역(228a)에서 소거 상태의 소거 단위들에 대한 소거 동작을 생략할 수 있다.
S240 단계에서, 제어기(220)는 확보 완료 응답을 호스트 장치에 출력할 수 있다. 확보 완료 응답은 확보 명령에 대한 응답의 형태로 출력될 수 있다. 확보 완료 응답을 전송한 후에, 제어기(220)는 레이드(RAID) 스페어 영역을 초과 제공 영역으로 사용하는 것을 금지할 수 있다.
상술된 바와 같이, 데이터의 재건이 필요한 때에, 스토리지 장치(200)는 레이드(RAID) 스페어 영역을 확보하여 호스트 장치에 제공할 수 있다. 따라서, 호스트 장치가 레이드(RAID)에 기반한 데이터 재건을 성공적으로 수행할 수 있다.
예시적으로, 호스트 장치는 레이드(RAID) 스페어 영역(228a) 중에서 데이터 재건을 위해 필요한 부분의 논리 주소들을 확보 명령과 함께 제어기(220)에 전송할 수 있다. 제어기(220)는 레이드(RAID) 스페어 영역(228a) 중에서 수신된 논리 주소들에 대응하는 부분에 대해서만 가비지 컬렉션(S220 단계) 및 소거 동작(S230 단계)을 수행할 수 있다. 수신된 논리 주소들에 대응하는 부분이 확보되면, 제어기(220)는 확보 완료 응답을 호스트 장치로 출력할 수 있다.
예시적으로, 호스트 장치는 데이터 재건을 위해 필요한 용량의 정보를 확보 명령과 함께 제어기(220)에 전송할 수 있다. 제어기(220)는 레이드(RAID) 스페어 영역(228a) 중에서 필요한 용량에 대응하는 부분에 대해 가비지 컬렉션(S220 단계) 및 소거 동작(S230 단계)을 수행할 수 있다.
예를 들어, 제어기(220)는 레이드(RAID) 스페어 영역(228a) 중에서 소거 상태의 소거 단위들을 필요한 용량에 대응하는 부분에 포함시킬 수 있다. 제어기(220)는 확보된 부분의 논리 주소들을 확보 응답과 함께 호스트 장치로 출력할 수 있다. 호스트 장치는 스토리지 장치(200)로부터 수신되는 논리 주소들에 기반하여, 레이드(RAID) 재건을 수행할 수 있다.
예시적으로, 제어기(220)는 레이드(RAID) 스페어 영역(228a) 중에서 필요한 용량에 대응하며 가장 낮은 또는 가장 높은 논리 주소들에 대응하는 부분을 확보할 수 있다. 제어기(220)는 가장 낮은 또는 가장 높은 논리 주소들에 대응하는 부분을 확보하였음을 알리는 메시지를 확보 완료 응답과 함께 호스트 장치에 출력할 수 있다.
다른 예로서, 스토리지 장치(200)가 호스트 장치에 연결될 때, 호스트 장치는 가장 낮은 또는 가장 높은 논리 주소들에 대응하는 부분을 확보하도록 스토리지 장치(200)를 설정할 수 있다. 미리 수행된 설정에 기반하여, 호스트 장치는 스토리지 장치(200)로부터의 별도 정보 없이도 레이드(RAID) 스페어 영역(228a) 중에서 확보된 부분의 논리 주소들을 식별할 수 있다.
예시적으로, 레이드(RAID) 스페어 영역(228a) 중에서 요청된 용량에 해당하는 부분이 호스트 장치에 반환될 때, 제어기(220)는 레이드(RAID) 스페어 영역(228a) 중에서 나머지 부분을 초과 사용 영역으로 계속 사용할 수 있다.
다시 도 5 및 도 7을 참조하면, 컴퓨팅 장치(1000)의 사용자(예를 들어, 관리자)는 장치 실패가 발생한 제1 스토리지 장치(1510)를 교체할 수 있다. 제1 스토리지 장치(1510)를 교체한 후에, 프로세서(1100)는 제2 내지 제4 스토리지 장치들(1520~1540)의 레이드(RAID) 스페어 영역인 제4 블록들(B4)에 저장된 제1 데이터(D1), 제4 데이터(D4), 그리고 제7 데이터(D7)를 다시 제1 스토리지 장치(1510)로 옮길 수 있다.
제1 스토리지 장치(1510)가 교체되고 데이터가 옮겨지면, 레이드(RAID) 스페어 영역인 제4 블록들(B4)은 다시 방치된다. 따라서, 레이드(RAID) 스페어 영역은 초과 제공 영역으로 다시 사용될 수 있다.
도 9는 본 발명의 실시 예에 따른 스토리지 장치(200)가 레이드(RAID) 스페어 영역(228a)을 초과 제공 영역으로 다시 사용하는 예를 보여준다. 도 4 및 도 9를 참조하면, 장치 실패가 발생한 스토리지 장치의 교체 및 데이터의 이동이 완료됨에 따라, 호스트 장치(예를 들어, 도 5의 프로세서(1100))는 스토리지 장치(200)에 교환 완료 명령을 전송할 수 있다.
S310 단계에서, 제어기(220)는 호스트 장치로부터 교환 완료 명령을 수신할 수 있다. 교환 완료 명령은 VUC의 형태로 수신될 수 있다. 교환 완료 명령에 응답하여, S320 단계에서, 제어기(220)는 레이드(RAID) 스페어 영역(228a)을 초과 제공 영역으로 다시 사용할 수 있다.
도 10은 스토리지 장치(200)가 레이드(RAID) 스페어 영역(228a)에 대한 정보를 기록하는 예를 보여준다. 도 10을 참조하면, 제어기(220)는 레이드(RAID) 스페어 영역(228a)에 대한 정보를 스페어 로그(224a)로서 메타 영역(227a)에 기록할 수 있다.
스토리지 장치(200)는 호스트 장치에 의해 지정되는 레이드(RAID) 스페어 영역(228a)을 초과 제공 영역으로 사용한다. 초과 제공 영역의 용량(또는 비율)은 스토리지 장치(200)의 수명에 영향을 줄 수 있다. 즉, 스토리지 장치(200)의 수명은 호스트 장치의 영향을 받을 수 있다.
예를 들어, 초과 제공 영역의 용량(또는 비율)이 증가할수록, 스토리지 장치(200)의 수명에 영향을 주는 WAF(Write Amplification Factor)가 감소할 수 있다. 반대로, 초과 제공 영역의 용량(또는 비율)이 감소할수록, 스토리지 장치(200)의 수명에 영향을 주는 WAF(Write Amplification Factor)가 증가할 수 있다.
유사하게, 초과 제공 영역의 용량(또는 비율)이 증가할수록, 스토리지 장치(200)의 수명을 나타내는 DWPD(Drive Write Per Day)가 증가할 수 있다. 반대로, 초과 제공 영역의 용량(또는 비율)이 증가할수록, 스토리지 장치(200)의 수명을 나타내는 DWPD(Drive Write Per Day)가 감소할 수 있다.
제어기(220)는 레이드(RAID) 스페어 영역(228a)의 용량 또는 용량의 변화를 스페어 로그(224a)로 기록할 수 있다. 더 상세하게는, 제어기(220)는 레이드(RAID) 스페어 영역(228a) 에서 초과 사용 영역으로 사용된 부분의 용량 또는 용량의 변화를 스페어 로그(224a)로 기록할 수 있다. 스페어 로그(224a)를 참조함으로써, 스토리지 장치(200)의 수명이 소진되었는지 정확하게 식별될 수 있다.
도 11은 스토리지 장치(200)가 레이드(RAID) 스페어 영역(228a)의 일부 영역(229a)을 초과 사용 영역으로 사용하는 예를 보여준다. 도 11을 참조하면, 제어기(220)는 레이드(RAID) 스페어 영역(228a)의 일부 영역(229a)을 초과 사용 영역으로 사용할 수 있다. 제어기(220)는 레이드(RAID) 스페어 영역(228a)의 나머지 영역을 자유 레이드(RAID) 스페어 영역으로 유지할 수 있다.
예를 들어, 호스트 장치는 제어기(220)에 레이드(RAID) 스페어 영역(228a)의 정보 및 레이드(RAID) 스페어 영역(228a) 중에서 초과 사용 영역으로 사용 가능한 일부 영역(229a)의 정보를 전송할 수 있다. 제어기(220)는 호스트 장치로부터의 정보에 기반하여, 레이드(RAID) 스페어 영역(228a) 중에서 일부 영역(229a)을 초과 사용 영역으로 사용할 수 있다.
다른 예로서, 제어기(220)는 호스트 장치로부터 레이드(RAID) 스페어 영역(228a)의 정보를 수신할 수 있다. 레이드(RAID) 스페어 영역(228a)의 용량이 문턱보다 클 때 또는 레이드(RAID) 스페어 영역의 용량에 관계없이, 제어기(220)는 레이드(RAID) 스페어 영역(228a)의 일부 영역(229a)을 초과 사용 영역으로 사용할 수 있다.
도 12는 도 11의 스토리지 장치(200)가 레이드(RAID) 재건을 지원하는 방법을 보여준다. 도 11 및 도 12를 참조하면, 호스트 장치는 레이드(RAID) 재건이 필요한 때에 제어기(220)에 확보 명령을 전송할 수 있다. S410 단계에서, 제어기(220)는 확보 명령을 수신할 수 있다. 예를 들어, 확보 명령은 레이드(RAID) 재건을 위해 필요한 용량의 정보와 함께 수신될 수 있다. 확보 명령은 VUC의 형태로 수신될 수 있다.
S420 단계에서, 제어기(220)는 요청된 용량이 자유 레이드(RAID) 스페어 용량 이하인지 판단할 수 있다. 요청된 용량이 자유 레이드(RAID) 스페어 용량보다 크면, S430 단계가 수행된다. S430 단계에서, 제어기(220)는 레이드(RAID) 스페어 영역(228a) 중에서 초과 제공 영역으로 사용된 부분에 대해 가비지 컬렉션을 수행할 수 있다.
S440 단계에서, 제어기(220)는 레이드(RAID) 스페어 영역(228a) 중에서 초과 제공 영역으로 사용된 부분에 대해 소거 동작을 수행할 수 있다. 예시적으로, 도 9를 참조하여 설명된 바와 같이, 소거 상태의 소거 단위에 대한 가비지 컬렉션 및 소거 동작은 생략될 수 있다.
또한, 도 8을 참조하여 설명된 바와 같이, 레이드(RAID) 스페어 영역(228a) 중 초과 사용 영역으로 사용된 부분에서, 요청된 용량에 해당하는 부분에 대해서만 가비지 컬렉션 및 소거 동작이 수행될 수 있다.
이후에, 요청된 용량이 확보되면, S240 단계에서, 제어기(220)는 호스트 장치에 확보 완료 응답을 출력할 수 있다. 이후에, 제어기(220)는 레이드(RAID) 스페어 영역(228a)을 초과 사용 영역으로 사용하는 것을 금지할 수 있다.
예시적으로, 도 8을 참조하여 설명된 바와 같이, 레이드(RAID) 스페어 영역(228a) 중에서 요청된 용량에 해당하는 부분이 호스트 장치에 반환될 때, 제어기(220)는 레이드(RAID) 스페어 영역(228a) 중에서 나머지 부분을 초과 사용 영역으로 계속 사용할 수 있다.
S420 단계에서, 요청된 용량이 자유 레이드(RAID) 스페어 용량 이하이면, 제어기(220)는 요청된 용량이 이미 확보된 것으로 판단할 수 있다. 이후에, S450 단계에서, 제어기(220)는 확보 완료 명령을 호스트 장치로 출력할 수 있다.
도 11 및 도 12를 참조하여 설명된 바와 같이, 스토리지 장치(200)는 레이드(RAID) 스페어 영역을 초과 사용 영역 및 자유 레이드(RAID) 스페어 영역으로 사용할 수 있다. 따라서, 스토리지 장치(200)의 사용자 영역(225a)을 액세스하는 성능이 향상되며, 레이드(RAID) 재건에 대한 응답 속도가 향상된다.
도 13은 본 발명의 다른 실시 예에 따른 스토리지 장치(300)를 보여준다. 도 13을 참조하면, 스토리지 장치(300)는 불휘발성 메모리 장치(310) 및 제어기(320)를 포함한다. 제어기(320)는 저장소(321)를 포함한다.
제어기(320)는 불휘발성 메모리 장치(310)의 저장 영역(310a)을 사용자 영역(325a), 초과 제공 영역(326a) 및 메타 영역(327a)으로 구분할 수 있다. 제어기(320)는 저장소(321)에 저장된 사용자 영역(325a)의 용량 정보를 호스트 장치에 제공할 수 있다. 호스트 장치는 사용자 영역(325a)에 제1 내지 제6 논리 주소들(LA1~LA6)을 할당할 수 있다.
도 1의 스토리지 장치(100)와 비교하면, 스토리지 장치(300)가 지정하는 초가 제공 영역(326a)의 비중은 감소할 수 있다. 도 4 또는 도 10을 참조하여 설명된 바와 같이, 제어기(320)는 레이드(RAID) 스페어 영역(328a) 또는 레이드(RAID) 스페어 영역(328a)의 일부 영역을 추가적인 초과 제공 영역으로 사용할 수 있다.
또한, 도 10을 참조하여 설명된 바와 같이, 제어기(320)는 레이드(RAID) 스페어 영역(328a)에서 초과 제공 영역으로 사용되는 부분의 용량 또는 용량 변화를 스페어 로그로서 메타 영역(327a)에 기록할 수 있다.
상술된 실시 예들에서, 초과 제공 영역으로 사용되는 스페어 영역은 레이드(RAID)에 기반하여 지정되는 것으로 설명되었다. 그러나 본 발명의 실시 예에 따른 스토리지 장치(200 또는 300)는 레이드(RAID)와 무관한 다른 정책에 의해 지정되는 스페어 영역을 초과 제공 영역으로 사용하도록 응용될 수 있다.
상술된 실시 예들에서, 초과 제공 영역은 플래시 메모리 장치에 대한 읽기 동작 및 쓰기 동작을 지원하는 것으로 설명되었다. 그러나 본 발명의 실시 예에 따른 스토리지 장치(200 또는 300)는 플래시 메모리 장치가 아닌 다른 불휘발성 메모리 장치의 동작들을 지원(또는 가속)하는 데에 초과 제공 영역을 사용하도록 응용될 수 있다.
상술된 바와 같이, 제1, 제2, 제3 등의 용어들을 사용하여 스토리지 장치(200 또는 300)의 구성 요소들이 설명되었다. 그러나 제1, 제2, 제3 등과 같은 용어들은 구성 요소들을 서로 구별하기 위해 사용되며, 본 발명을 한정하지 않는다. 예를 들어, 제1, 제2, 제3 등과 같은 용어들은 순서 또는 임의의 형태의 수치적 의미를 내포하지 않는다.
상술된 실시 예들에서, 블록들을 사용하여 본 발명의 실시 예들에 따른 구성 요소들이 참조되었다. 블록들은 IC (Integrated Circuit), ASIC (Application Specific IC), FPGA (Field Programmable Gate Array), CPLD (Complex Programmable Logic Device) 등과 같은 다양한 하드웨어 장치들, 하드웨어 장치들에서 구동되는 펌웨어, 응용과 같은 소프트웨어, 또는 하드웨어 장치와 소프트웨어가 조합된 형태로 구현될 수 있다. 또한, 블록들은 IC 내의 반도체 소자들로 구성되는 회로들 또는 IP (Intellectual Property)를 포함할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100, 200: 스토리지 장치
110, 210: 불휘발성 메모리 장치
110a, 210a: 저장 영역
120, 220: 제어기
121, 221: 저장소
125a, 225a: 사용자 영역
126: 초과 제공 영역
127a, 227a: 메타 영역
1000: 컴퓨팅 장치
1100: 프로세서
1200: 랜덤 액세스 메모리
1300: 사용자 인터페이스
1400: 모뎀
1500: 스토리지 장치 어레이
1501~150n: 스토리지 장치 그룹
1510~1540: 제1 내지 제4 스토리지 장치들

Claims (20)

  1. 저장 공간을 포함하는 불휘발성 메모리 장치; 그리고
    상기 불휘발성 메모리 장치의 상기 저장 공간을 사용자 영역 및 메타 영역으로 분할하여 관리하고, 상기 사용자 영역을 외부의 호스트 장치에 제공하도록 구성되는 제어기를 포함하고,
    상기 외부의 호스트 장치로부터 레이드(RAID) 스페어 정보가 수신됨에 따라, 상기 제어기는 상기 레이드 스페어 정보에 기반하여 상기 사용자 영역에서 레이드 스페어 영역을 선택하고, 그리고 상기 레이드 스페어 영역의 적어도 일부를 초과 제공(over provision) 영역으로 사용하도록 더 구성되는 스토리지 장치.
  2. 제1항에 있어서,
    상기 사용자 영역에서 상기 레이드 스페어 영역을 제외한 나머지 영역은 주 사용 영역이고,
    상기 제어기는 상기 초과 제공 영역을 이용하여 상기 주 사용 영역에 대한 읽기 동작 및 쓰기 동작을 지원하도록 더 구성되는 스토리지 장치.
  3. 제1항에 있어서,
    상기 제어기는 상기 사용자 영역의 물리 주소들 및 논리 주소들에 대한 매핑 정보를 상기 메타 영역에 저장하도록 더 구성되는 스토리지 장치.
  4. 제1항에 있어서,
    상기 외부의 호스트 장치로부터 상기 레이드 스페어 영역의 확보 명령이 수신됨에 따라, 상기 제어기는 상기 초과 제공 영역에 저장된 데이터를 소거하고, 그리고 확보 완료 응답을 상기 외부의 호스트 장치에 출력하도록 더 구성되는 스토리지 장치.
  5. 제4항에 있어서,
    상기 사용자 영역에서 상기 레이드 스페어 영역을 제외한 나머지 영역은 주 사용 영역이고,
    상기 초과 제공 영역에 저장된 상기 데이터를 소거하기 전에, 상기 제어기는 상기 데이터 중에서 유효 데이터를 상기 주 사용 영역으로 옮기도록 더 구성되는 스토리지 장치.
  6. 제4항에 있어서,
    상기 확보 명령은 용량 정보를 포함하고,
    상기 제어기는 상기 초과 제공 영역 중에서 상기 용량 정보에 대응하는 부분에 저장된 데이터를 소거하는 스토리지 장치.
  7. 제6항에 있어서,
    상기 제어기는 상기 용량 정보에 대응하는 상기 부분의 주소들을 상기 확보 완료 응답과 함께 상기 외부의 호스트 장치로 출력하도록 더 구성되는 스토리지 장치.
  8. 제6항에 있어서,
    상기 용량 정보에 대응하는 상기 부분은 상기 레이드 스페어 영역 중에서 가장 낮은 주소들 또는 가장 높은 주소들에 대응하는 스토리지 장치.
  9. 제4항에 있어서,
    상기 확보 완료 응답을 상기 외부의 호스트 장치에 출력한 후에, 상기 제어기는 상기 초과 제공 영역의 사용을 금지하도록 더 구성되는 스토리지 장치.
  10. 제4항에 있어서,
    상기 외부의 호스트 장치로부터 교환 완료 명령이 수신됨에 따라, 상기 제어기는 상기 초과 제공 영역을 다시 사용하는 스토리지 장치.
  11. 제1항에 있어서,
    상기 제어기는 상기 레이드 스페어 정보를 상기 메타 영역에 저장하도록 더 구성되는 스토리지 장치.
  12. 제1항에 있어서,
    상기 제어기는 상기 레이드 스페어 정보의 변화 히스토리를 상기 메타 영역에 저장하는 스토리지 장치.
  13. 제1항에 있어서,
    상기 레이드 스페어 영역 중에서 상기 초과 제공 영역을 제외한 나머지는 자유 레이드 스페어 영역이고,
    상기 외부의 호스트 장치로부터 상기 레이드 스페어 영역의 확보 명령 및 용량 정보가 수신됨에 따라, 상기 제어기는 상기 용량 정보가 가리키는 용량을 상기 자유 레이드 스페어 영역의 용량과 비교하고 그리고 상기 용량 정보가 가리키는 상기 용량이 상기 자유 레이드 스페어 영역의 용량 이하이면 확보 완료 응답을 상기 외부의 호스트 장치에 출력하도록 더 구성되는 스토리지 장치.
  14. 제13항에 있어서,
    상기 용량 정보가 가리키는 상기 용량이 상기 자유 레이드 스페어 영역의 상기 용량보다 크면, 상기 제어기는 상기 초과 제공 영역에 저장된 데이터를 소거하고, 그리고 확보 완료 응답을 상기 외부의 호스트 장치에 출력하도록 더 구성되는 스토리지 장치.
  15. 저장 공간을 포함하는 불휘발성 메모리 장치; 그리고
    상기 불휘발성 메모리 장치의 상기 저장 공간을 사용자 영역, 제1 초과 제공 영역 및 메타 영역으로 분할하여 관리하고, 상기 사용자 영역을 외부의 호스트 장치에 제공하도록 구성되는 제어기를 포함하고,
    상기 외부의 호스트 장치로부터 레이드(RAID) 스페어 정보가 수신됨에 따라, 상기 제어기는 상기 레이드 스페어 정보에 기반하여 상기 사용자 영역에서 레이드 스페어 영역을 선택하고, 그리고 상기 레이드 스페어 영역의 적어도 일부를 제2 초과 제공(over provision) 영역으로 사용하도록 더 구성되는 스토리지 장치.
  16. 제15항에 있어서,
    상기 사용자 영역에서 상기 레이드 스페어 영역을 제외한 나머지 영역은 주 사용 영역이고,
    상기 외부의 호스트 장치에 의해 부여되는 상기 주 사용 영역의 제1 논리 주소들 및 상기 레이드 스페어 영역의 제2 논리 주소들은 고정되는 스토리지 장치.
  17. 제16항에 있어서,
    상기 제어기는 상기 제1 논리 주소들 및 상기 제2 논리 주소들을 상기 불휘발성 메모리 장치의 제1 물리 주소들 및 제2 물리 주소들과 매핑하도록 더 구성되고,
    상기 제1 물리 주소들 및 상기 제2 물리 주소들은 가변되는 스토리지 장치.
  18. 제15항에 있어서,
    상기 사용자 영역에서 상기 레이드 스페어 영역을 제외한 나머지 영역은 주 사용 영역이고,
    상기 제어기는 상기 제1 초과 제공 영역 및 상기 제2 초과 제공 영역을 이용하여 상기 주 사용 영역에 대한 읽기 동작 및 쓰기 동작을 지원하도록 더 구성되는 스토리지 장치.
  19. 불휘발성 메모리 장치 및 제어기를 포함하는 스토리지 장치의 동작 방법에 있어서:
    상기 제어기가 외부의 호스트 장치에 상기 스토리지 장치의 사용자 영역의 용량 정보를 제공하는 단계;
    상기 제어기가 상기 외부의 호스트 장치로부터 레이드(RAID) 스페어 정보를 수신하는 단계;
    상기 제어기가 상기 레이드 스페어 정보에 기반하여 상기 사용자 영역을 주 사용 영역 및 레이드 스페어 영역으로 분할하는 단계; 그리고
    상기 제어기가 상기 레이드 스페어 영역의 적어도 일부를 초과 제공 영역으로 사용하여 상기 주 사용 영역에 대한 읽기 동작 및 쓰기 동작을 지원하는 단계를 포함하는 동작 방법.
  20. 제19항에 있어서,
    상기 제어기가 상기 외부의 호스트 장치로부터 확보 명령을 수신하는 단계;
    상기 확보 명령에 응답하여, 상기 제어기가 상기 초과 제공 영역에 저장된 데이터를 소거하는 단계; 그리고
    상기 데이터의 소거가 완료됨에 따라, 상기 제어기가 상기 외부의 호스트 장치에 확보 완료 응답을 출력하는 단계를 더 포함하는 동작 방법.
KR1020180154413A 2018-12-04 2018-12-04 스토리지 장치 및 스토리지 장치의 동작 방법 KR20200068147A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180154413A KR20200068147A (ko) 2018-12-04 2018-12-04 스토리지 장치 및 스토리지 장치의 동작 방법
US16/524,920 US11079943B2 (en) 2018-12-04 2019-07-29 Storage devices including improved over provision management and operating methods of such storage devices
CN201910850464.4A CN111273855B (zh) 2018-12-04 2019-09-10 存储装置和存储装置的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180154413A KR20200068147A (ko) 2018-12-04 2018-12-04 스토리지 장치 및 스토리지 장치의 동작 방법

Publications (1)

Publication Number Publication Date
KR20200068147A true KR20200068147A (ko) 2020-06-15

Family

ID=70850166

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180154413A KR20200068147A (ko) 2018-12-04 2018-12-04 스토리지 장치 및 스토리지 장치의 동작 방법

Country Status (3)

Country Link
US (1) US11079943B2 (ko)
KR (1) KR20200068147A (ko)
CN (1) CN111273855B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10990480B1 (en) * 2019-04-05 2021-04-27 Pure Storage, Inc. Performance of RAID rebuild operations by a storage group controller of a storage system

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US8762661B2 (en) * 2008-09-18 2014-06-24 Seagate Technology Llc System and method of managing metadata
US8291181B2 (en) * 2008-10-28 2012-10-16 Micron Technology, Inc. Temporary mirroring, logical segregation, and redundant programming or addressing for solid state drive operation
US8479080B1 (en) * 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8572311B1 (en) * 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US9195592B1 (en) * 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US8943359B2 (en) * 2012-10-05 2015-01-27 Lsi Corporation Common hot spare for multiple RAID groups
KR102025080B1 (ko) 2013-01-02 2019-09-25 삼성전자 주식회사 스토리지 시스템 및 스토리지 시스템의 여분 공간 조절 방법
US9804960B2 (en) * 2013-03-14 2017-10-31 Western Digital Technologies, Inc. Overprovision capacity in a data storage device
KR102088403B1 (ko) * 2013-08-08 2020-03-13 삼성전자 주식회사 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법
EP3120250A4 (en) * 2014-03-20 2017-12-06 Hewlett-Packard Enterprise Development LP Solid state drive operations
US9542272B2 (en) * 2014-03-24 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Write redirection in redundant array of independent disks systems
US9760482B2 (en) 2014-10-28 2017-09-12 Toshiba Memory Corporation Reconstruct drive for dynamic resizing
US9678677B2 (en) 2014-12-09 2017-06-13 Intel Corporation Determining adjustments to the spare space in a storage device unavailable to a user based on a current consumption profile of a storage device
KR102365269B1 (ko) 2015-04-13 2022-02-22 삼성전자주식회사 데이터 스토리지 및 그것의 동작 방법
WO2016181528A1 (ja) * 2015-05-13 2016-11-17 株式会社日立製作所 ストレージ装置
US9921912B1 (en) 2015-09-30 2018-03-20 EMC IP Holding Company LLC Using spare disk drives to overprovision raid groups
US20170123915A1 (en) 2015-10-29 2017-05-04 Nimble Storage, Inc. Methods and systems for repurposing system-level over provisioned space into a temporary hot spare
US10635344B2 (en) * 2016-04-27 2020-04-28 International Business Machines Corporation Dynamic spare storage allocation by creating logical volumes from unused space allocated for user data of a raid storage
KR102611571B1 (ko) * 2016-11-09 2023-12-07 삼성전자주식회사 비휘발성 메모리를 포함하는 raid 시스템
US11132134B2 (en) * 2017-12-21 2021-09-28 Apple Inc. Flexible over-provisioning of storage space within solid-state storage devices (SSDs)

Also Published As

Publication number Publication date
US20200174685A1 (en) 2020-06-04
CN111273855A (zh) 2020-06-12
US11079943B2 (en) 2021-08-03
CN111273855B (zh) 2024-10-22

Similar Documents

Publication Publication Date Title
US7734865B2 (en) Storage system using flash memory modules logically grouped for wear-leveling and raid
US8819338B2 (en) Storage system and storage apparatus
US8825941B2 (en) SLC-MLC combination flash storage device
US10884630B2 (en) Storage system
US10936203B2 (en) Memory storage device and system employing nonvolatile read/write buffers
KR102711044B1 (ko) 메모리 시스템에서의 유효 데이터 체크 방법 및 장치
US20110035541A1 (en) Storage device and deduplication method
US10866906B2 (en) Address mapping method and operation method of storage device
CN110928487A (zh) 存储装置和存储装置的操作方法
CN113722131A (zh) 用于促进存储设备中的快速崩溃恢复的方法和系统
JP2019086974A (ja) ストレージシステム及びその制御方法
KR20200068147A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
US10713163B2 (en) Set aware system data and mapping tables
US20230076365A1 (en) Fast lba/pba table rebuild
US20220405008A1 (en) Memory system and refresh control method
CN111752475B (zh) 在存储服务器中进行数据存取管理的方法与装置
JP6163588B2 (ja) ストレージシステム
JP2019215777A (ja) メモリシステム
CN118377647A (zh) 信息处理系统
KR20240053298A (ko) 호스트와 메모리 시스템에서 맵데이터를 관리하는 장치 및 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application
X701 Decision to grant (after re-examination)