KR101937521B1 - 데이터 저장 시스템들을 위한 동적 오버프로비저닝 - Google Patents

데이터 저장 시스템들을 위한 동적 오버프로비저닝 Download PDF

Info

Publication number
KR101937521B1
KR101937521B1 KR1020157019904A KR20157019904A KR101937521B1 KR 101937521 B1 KR101937521 B1 KR 101937521B1 KR 1020157019904 A KR1020157019904 A KR 1020157019904A KR 20157019904 A KR20157019904 A KR 20157019904A KR 101937521 B1 KR101937521 B1 KR 101937521B1
Authority
KR
South Korea
Prior art keywords
volatile memory
memory array
data
over
provisioning
Prior art date
Application number
KR1020157019904A
Other languages
English (en)
Other versions
KR20150099834A (ko
Inventor
로버트 엘 혼
Original Assignee
웨스턴 디지털 테크놀로지스, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 웨스턴 디지털 테크놀로지스, 인코포레이티드 filed Critical 웨스턴 디지털 테크놀로지스, 인코포레이티드
Publication of KR20150099834A publication Critical patent/KR20150099834A/ko
Application granted granted Critical
Publication of KR101937521B1 publication Critical patent/KR101937521B1/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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • 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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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
    • 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/7211Wear leveling

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

Abstract

개시된 실시형태들은 데이터 저장 시스템들을 에 대한 동적 오버프로비저닝을 위한 시스템들 및 방법들에 관한 것이다. 일 실시형태에서, 데이터 저장 시스템은 오버프로비저닝을 위해, 비-휘발성 솔리드-스테이트 메모리와 같은 메모리의 일부분을 예비할 수 있다. 다양한 오버프로비저닝 인자들에 의존하여, 사용자 데이터를 압축하는 것으로 인해 복구된 저장 용량은 사용자 데이터를 저장하기 위해 및/또는 오버프로비저닝을 위해 할당될 수 있다. 개시된 동적 오버프로비저닝 시스템들 및 방법들을 활용하여 발생할 수 있는 것은, 캐시 메모리의 더 효율적인 활용, 기록 증폭의 감소, 캐시 히트율의 증가 등이다. 개선된 데이터 저장 시스템 성능 및 증가된 내구성이 그에 따라 획득될 수 있다.

Description

데이터 저장 시스템들을 위한 동적 오버프로비저닝{DYNAMIC OVERPROVISIONING FOR DATA STORAGE SYSTEMS}
본 개시물은 컴퓨터 시스템들을 위한 데이터 저장 시스템들에 관한 것이다. 더 구체적으로, 본 개시물은 데이터 저장 시스템들을 위한 동적 오버프로비저닝에 관한 것이다.
데이터 저장 시스템들은 그들의 정상 동작의 코스에서 가비지 회수 (garbage collection), 웨어 레벨링 (wear leveling), 불량 블록 관리, 등등과 같은 다수의 시스템 작업들 및 하우스키핑 (housekeeping) 동작들을 실행한다. 시스템 작업들 및 하우스키핑 동작들을 수행하는 것은, 비-휘발성 솔리드-스테이트 메모리가 데이터를 저장하기 위해 사용되는 케이스들에서 증가된 기록 증폭 (write amplification) 과 같은 상당한 오버헤드를 수반한다. 따라서, 하우스키핑 동작들을 수행하기 위한 더 효율적인 메커니즘들을 제공하는 것이 바람직하다.
본 발명의 다양한 특징들을 구현하는 시스템들 및 방법들은 지금부터 이하 도면들을 참조하여 설명될 것이다:
도 1 은 본 발명의 일 실시형태에 따른 동적 오버프로비저닝을 구현하는 호스트 시스템과 데이터 저장 시스템의 조합을 도시한다.
도 2 는 본 발명의 일 실시형태에 따른 오버프로비저닝 파라미터들을 도시한다.
도 3 은 본 발명의 일 실시형태에 따른 동적 오버프로비저닝을 도시한다.
도 4 는 본 발명의 일 실시형태에 따른 동적 오버프로비저닝 프로세스의 흐름도를 도시한다.
특정 실시형태들이 설명되지만, 이들 실시형태들은 오직 예로서만 제시되며, 보호 범위를 제한하도록 의도되지는 않는다. 실제로, 본원에 설명된 신규한 방법들 및 시스템들은 다양한 다른 형태들로 구현될 수도 있다. 추가로, 본원에 설명된 방법들 및 시스템들의 형태에 있어서 다양한 생략들, 대체들, 및 변경들은 보호 범위를 벗어나지 않고 실행될 수도 있다.
개관
데이터 저장 시스템들은 그들의 정상 동작의 코스에서 가비지 회수, 웨어 레벨링, 불량 블록 관리, 등등과 같은 다수의 하우스키핑 동작들을 실행한다. 하우스키핑 동작들을 수행하는 것은, 비-휘발성 솔리드-스테이트 메모리 (NVSM) 가 데이터를 저장하기 위해 사용되는 케이스들에서 증가된 기록 증폭과 같은 상당한 오버헤드를 수반한다. 특정 케이스들에서, 데이터 저장 시스템의 효율성, 수명 (longevity) 및 성능을 개선하기 위해, 수행중인 시스템 작업들 및/또는 하우스키핑 동작들에 추가의 메모리를 할당하는 것이 유리할 수도 있다. 그러나, 시스템 및/또는 하우스키핑 작업들에 대하여 추가의 메모리를 할당하는 것은, 통상적으로 사용자 데이터를 위한 저장 용량을 감소시키는 것을 희생하여 실행된다. 그러나, 데이터 저장 시스템은 통상적으로, 주어진 저장 용량을 호스트 시스템에 보고하고, 이러한 보고된 저장 용량은 일반적으로 데이터 저장 시스템의 동작 동안 변경될 수 없다.
본 발명의 실시형태들은 동적 오버프로비저닝을 위한 시스템들 및 방법들에 관한 것이다. 데이터 저장 시스템은 오버프로비저닝을 위해, NVSM 캐시 메모리와 같은 메모리의 일부분을 예비할 수 있다. 오버프로비저닝 부분은 시스템 작업들 및/또는 하우스키핑 동작들을 효율적으로 수행하기 위해 사용될 수 있다. 예를 들어, 오버프로비저닝 부분은 예컨대, 데이터를 NVSM 캐시에 기록하는 것과 연관된 기록 증폭을 감소시키는데 사용될 수 있다. 데이터 저장 시스템은 NVSM 캐시에 저장된 데이터를 압축함으로써 저장 용량을 복구할 수 있다. 다양한 오버프로비저닝 인자들에 의존하여, 복구된 저장 용량의 일부분 또는 전체 양은 오버프로비저닝을 위해 또는 사용자 데이터를 저장하기 위해 할당될 수 있다. 예를 들어, 호스트 시스템 활동으로 인해, NVSM 에 캐싱되어야만 하는 사용자 데이터의 양이 증가할 경우, 복구된 저장 용량의 일부분 또는 전부는 사용자 데이터를 저장하기 위해 활용될 수 있다. 다른 예로서, NVSM 의 웨어 레벨이 임계치를 초과할 경우, 복구된 저장 용량의 일부 또는 전부는 오버프로비저닝을 위해 활용될 수 있다. 복구된 저장 용량의 그러한 동적 할당은 효율 및 성능을 개선시킬 수 있다.
일 실시형태에서, 데이터 저장 시스템은 사용자 데이터를 저장하도록 구성된 사용자 데이터 부분을 갖는 비-휘발성 메모리 어레이를 포함할 수 있다. 추가로, 오버프로비저닝 부분이 보유될 수 있다. 사용자 데이터가 압축된 후에, 복구된 저장 용량의 양이 결정될 수 있다. 하나 이상의 오버프로비저닝 파라미터들에 기초하여, 데이터 저장 시스템은 복구된 저장 용량을, 사용자 데이터를 저장하기 위해 및/또는 오버프로비저닝 부분에 할당할 수 있다.
시스템 개관
도 1 은 본 발명의 일 실시형태에 따른 우선순위-기반 가비지 회수를 구현하는 호스트 시스템과 데이터 저장 시스템의 조합 (100) 을 도시한다. 도시된 것과 같이, 데이터 저장 시스템 (120) (예컨대, 하이브리드 디스크 드라이브) 은 제어기 (130) 및 비-휘발성 메모리 어레이 (150), 및 (예컨대, 종래의 또는 슁글링된 (shingled)) 자기 매체 (164) 를 포함하는 자기 스토리지 (160) 를 포함한다. 비-휘발성 메모리 어레이 (150) 는 플래시 집적 회로들과 같은 비-휘발성 솔리드-스테이트 메모리 (NVSM), 칼코게나이드 (Chalcogenide) RAM (C-RAM), 상 변화 메모리 (PC-RAM 또는 PRAM), 프로그래밍가능한 금속화 셀 RAM (PMC-RAM 또는 PMCm), 오보닉 통합 메모리 (OUM), 저항성 RAM (RRAM), NAND 메모리 (예컨대, 단일-레벨 셀 (SLC) 메모리, 멀티-레벨 셀 (MLC) 메모리, 또는 이들의 임의의 조합), NOR 메모리, EEPROM, 강유전성 메모리 (FeRAM), 자기저항성 RAM (MRAM), 다른 개별 NVM (비-휘발성 메모리) 칩들, 또는 이들의 임의의 조합을 포함할 수도 있다. 비-휘발성 메모리 어레이 (150) 는 블록들, 페이지들, 등등과 같은 하나 이상의 메모리 영역들을 포함할 수 있다. 메모리 영역들은 메모리 유닛들을 포함할 수 있다. 일 실시형태에서, 비-휘발성 메모리 어레이 (150) 는 자기 스토리지 (160) 를 위한 캐시로서 작동할 수 있다. 데이터 저장 시스템 (120) 은 다른 타입의 스토리지를 더 포함할 수 있다. 일 실시형태에서, 자기 스토리지 (160) 는 슁글링된 자기 스토리지로서 구성될 수 있고, 비-휘발성 메모리 어레이 (150) 는 슁글링된 자기 스토리지를 위한 미디어 캐시로서 활용되도록 구성된다.
제어기 (130) 는 호스트 시스템 (110) 의 스토리지 인터페이스 모듈 (112) (예컨대, 디바이스 드라이버) 로부터 데이터 및/또는 스토리지 액세스 명령들을 수신하도록 구성될 수 있다. 스토리지 인터페이스 (112) 에 의해 통신된 스토리지 액세스 명령들은 호스트 시스템 (110) 에 의해 발행된 데이터 기록 및 데이터 판독 명령들을 포함할 수 있다. 판독 및 기록 명령들은 데이터 저장 시스템 (120) 을 액세스하는데 사용된 논리적인 어드레스 (예컨대, 논리적인 블록 어드레스들 또는 LBA들) 을 명시할 수 있다. 제어기 (130) 는 비-휘발성 메모리 어레이 (150) 에서 수신된 명령들을 실행할 수 있다.
데이터 저장 시스템 (120) 은 호스트 시스템 (110) 에 의해 통신된 데이터를 저장할 수 있다. 다시 말해서, 데이터 저장 시스템 (120) 은 호스트 시스템 (110) 에 대한 메모리 스토리지로서 작동할 수 있다. 이러한 기능을 용이하게 하기 위해, 제어기 (130) 는 논리적인 인터페이스를 구현할 수 있다. 논리적인 인터페이스는 데이터 저장 시스템의 메모리를 사용자 데이터가 저장될 수 있는 논리적인 어드레스들의 세트 (예컨대, 연속적인 어드레스) 로서 호스트 시스템 (110) 에 제시할 수 있다. 내부적으로, 제어기 (130) 는 논리적인 어드레스들을, 비-휘발성 메모리 어레이 (150), 자기 스토리지 (160), 및/또는 다른 저장 모듈들에서의 다수의 물리적인 위치들 또는 어드레스들로 맵핑할 수 있다. 물리적인 위치들은 데이터를 저장하기 위해 구성될 수 있다. 제어기 (130) 는 동적 오버프로비저닝을 수행하도록 구성된 동적 오버프로비저닝 모듈 (132), 및 비-휘발성 메모리 어레이 (150) 및/또는 자기 스토리지 (160) 에 저장하기 위한 데이터를 압축하도록 구성된 데이터 압축 모듈 (134) 을 포함한다.
다른 실시형태들에서, 자기 스토리지 (160) 대신, 데이터 저장 시스템 (120) 은 제 2 비-휘발성 메모리 어레이와 같은 다른 타입의 데이터 스토리지를 포함할 수도 있다. 예를 들어, 비-휘발성 메모리 어레이 (150) 는 제 2 비-휘발성 메모리 어레이에서 사용된 메모리의 타입보다 더 빠른 기록/판독 성능을 제공하는 메모리 타입을 포함할 수도 있다. 일부 실시형태들에서, 비-휘발성 메모리 어레이 (150) 는 원격 위치에서의 데이터 스토리지에 대한 캐시로서 기능할 수도 있고, 데이터의 동기화가 하나 이상의 네트워크 접속들에 걸쳐 발생할 수도 있다.
동적 오버프로비저닝
도 2 는 본 발명의 일 실시형태에 따른 오버프로비저닝 파라미터들 (200) 을 도시한다. 도시된 것과 같이, 오버프로비저닝 파라미터들은: 사용자 데이터 압축률 (202), 동작하지 않는 비-휘발성 메모리 어레이 (150) 위치들의 수 (204), 비-휘발성 메모리 어레이 (150) 로부터 판독된 데이터의 양 대 비-휘발성 메모리 어레이 (150) 에 기록된 데이터의 양의 비율 (206), 비-휘발성 메모리 어레이 (150) 에 기록된 연속 데이터의 양 대 비-휘발성 메모리 어레이 (150) 에 기록된 비-연속 데이터의 양의 비율 (208), 현재 오버프로비저닝 레벨 (210), 비-휘발성 메모리 어레이 (150) 에 저장된 비-리던던트 데이터의 퍼센티지 (212), 및 비-휘발성 메모리 어레이 (150) 의 웨어 레벨 (214) 이다. 비-리던던트 데이터는, 비-휘발성 메모리 어레이 (150) 에 저장되지만 비-휘발성 메모리 어레이 (150) 가 자기 스토리지 (160) 와 같은 캐시로서 기능하고 있는 다른 저장 매체와 동기화되지 않은, 데이터를 포함한다. 추가의 오버프로비저닝 파라미터들이 사용될 수 있다. 오버프로비저닝 파라미터들은 제어기 (130) 및/또는 동적 오버프로비저닝 모듈 (132) 및/또는 데이터 압축 모듈 (134) 에 의해 생성되고, 트래킹되고, 및/또는 업데이트될 수 있다.
도 3 은 본 발명의 일 실시형태에 따른 동적 오버프로비저닝 (300) 을 도시한다. 동적 오버프로비저닝 (300) 은 제어기 (130) 및/또는 동적 오버프로비저닝 모듈 (132) 및/또는 데이터 압축 모듈 (134) 에 의해 수행될 수 있다. 도시된 것과 같이, 비-휘발성 메모리 어레이 (150) 는 사용자 데이터 부분 (154) 및 시스템 데이터 부분 (158) 으로 분할될 수 있다. 추가로, 메모리 어레이 (150) 는 오버프로비저닝 부분 (156) 을 포함할 수 있다. 오버프로비저닝 부분 (156) 의 사이즈는 도 2 의 파라미터들 (200) 과 같은 하나 이상의 오버프로비저닝 파라미터들에 기초하여 조정될 수 있다. 일 실시형태에서, 오버프로비저닝 부분의 사이즈는 예컨대, 가중된 평균과 같은 오버프로비저닝 파라미터들의 조합에 기초하여 조정될 수 있다.
도 3 에 도시된 것과 같이, 일 실시형태에서, 압축되지 않은 사용자 데이터는 사용자 데이터 부분 (154) 에 저장된다. 데이터가 예컨대, 데이터 압축 모듈 (134) 에 의해 압축될 경우, 데이터 저장 시스템 (120) 은 저장 용량 (170) 의 양을 복구한다. 복구된 저장 용량은 사용자 데이터를 저장하기 위해 및/또는 오버프로비저닝을 위해 할당될 수 있다.
도 4 는 본 발명의 일 실시형태에 따른 동적 오버프로비저닝의 프로세스 (400) 를 도시하는 흐름도이다. 프로세스 (400) 는 제어기 (130) 및/또는 동적 오버프로비저닝 모듈 (132) 및/또는 데이터 압축 모듈 (134) 에 의해 실행될 수 있다. 프로세스 (400) 는 블록 (402) 에서 시작하고, 호스트 시스템 (110) 으로부터 수신된 하나 이상의 저장 명령들을 실행한다. 예를 들어, 프로세스 (400) 는 사용자 데이터를 포함하는 기록 또는 프로그램 명령을 실행할 수 있다. 프로세스 (400) 는 블록 (404) 으로 천이하고, 저장 명령들과 연관된 사용자 데이터를 압축한다. 압축 정도는 사용자 데이터의 타입에 의존할 수도 있고, 더 높은 압축 정도는 사용자 데이터가 더 큰 정도로 압축되는 것을 표시할 수도 있다. 예를 들어, 압축되지 않은 오디오 및/또는 비디오 데이터는 높은 압축 정도로 압축될 수 있다. 일 실시형태에서, 프로세스 (400) 는 Lempel-Ziv (LZ) 와 같은 무손실 압축을 사용한다.
프로세스 (400) 는 블록 (406) 으로 천이하고, 사용자 데이터의 압축으로 인해 복구된 저장 용량의 양을 결정한다. 블록 (408) 에서, 프로세스 (400) 는 도 2 의 파라미터들 (200) 과 같은 오버프로비저닝 파라미터들을 결정 및/또는 업데이트한다. 프로세스 (400) 는 블록 (408) 으로 천이하고, 사용자 데이터 저장 및/또는 오버프로비저닝을 위해 복구된 스토리지를 어떻게 할당할 것인지를 결정한다.
일 실시형태에서, 프로세스 (400) 는 웨어 레벨 임계치와 비교할 때, 비-휘발성 메모리 어레이 (150) 의 웨어 레벨의 증가에 응답하여 복구된 저장 용량의 적어도 일부 또는 전체 부분을 오버프로비저닝을 위해 할당한다. 그러한 경우에, 예를 들어 웨어 레벨의 증가는 비-휘발성 메모리 어레이 (150) 가 웨어링되고 있는 것을 표시하고, 오버프로비저닝을 위해 저장 용량을 할당하는 것은 기록 증폭을 감소시킴으로써 웨어 레이트를 감소시킬 수 있다. 다른 한편으로, 프로세스 (400) 는 웨어 레벨 임계치와 비교할 때, 비-휘발성 메모리 어레이 (150) 의 웨어 레벨의 감소에 응답하여 복구된 저장 용량의 적어도 일부 또는 전체 부분을 사용자 데이터를 저장하기 위해 할당한다. 그러한 경우에, 예를 들어, 비-휘발성 메모리 어레이 (150) 가 웨어링되지 않기 때문에, 비-휘발성 캐시 히트율을 향상시키기 위해 더 많은 저장 공간을 사용자 데이터에 할당하는 것은 바람직할 수도 있다.
일 실시형태에서, 프로세스 (400) 는 동작하지 않는 위치 임계치와 비교할 때, 동작하지 않는 (또는 실패된) 비-휘발성 메모리 (150) 위치들의 수의 증가에 응답하여 복구된 저장 용량의 적어도 일부 또는 전체 부분을 사용자 데이터를 저장하기 위해 할당한다. 그러한 경우에, 예를 들어, 사용자 데이터를 저장하기 위해 사용가능한 메모리를 할당하는 것은 유리할 수도 있다. 프로세스 (400) 는 또한, 비-리던던트 데이터 임계치에 대한 비-휘발성 메모리 어레이 (150) 에 저장된 비-리던던트 데이터의 퍼센티지의 증가에 응답하여 복구된 저장 용량의 적어도 일부 또는 전체 부분을 사용자 데이터를 저장하기 위해 할당한다. 그러한 경우에, 예를 들어, 호스트 시스템 (110) 은 (예컨대, 자기 디스크가 스핀하고 있지 않기 때문에) 저장을 위한 데이터를 허용하지 않는 자기 스토리지 (160) 로 인해, 비-휘발성 메모리 (150) 를 데이터 캐시로서 사용하고 있을 수도 있다. 적어도 일부 캐싱된 사용자 데이터는 이후, 예컨대 자기 스토리지 (160) 로 플러시 (또는 동기화) 될 수 있다. 프로세스 (400) 는 또한, 판독/기록 임계치에 대하여 비-휘발성 메모리 어레이 (150) 로부터 판독된 데이터의 양 대 비-휘발성 메모리 어레이에 기록된 데이터의 양의 비율의 증가에 응답하여 복구된 저장 용량의 적어도 일부 또는 전체 부분을 사용자 데이터를 저장하기 위해 할당한다. 그러한 경우에, 예를 들어, 호스트 시스템 (110) 은 더 많은 데이터 취출 동작들을 수행하고 있을 수도 있고, 이들 동작들을 수행하는 것은 작거나 거의 없는 기록 증폭을 야기한다. 다른 한편으로, 프로세스 (400) 는 판독/기록 임계치에 대하여 비-휘발성 메모리 어레이 (150) 로부터 판독된 데이터의 양 대 비-휘발성 메모리 어레이에 기록된 데이터의 양의 비율의 감소에 응답하여 복구된 저장 용량의 적어도 일부 또는 전체 부분을 오버프로비저닝을 위해 할당한다. 그러한 경우에, 예를 들어, 호스트 시스템 (110) 은 증가된 기록 증폭과 연관되는 더 많은 데이터 프로그램 동작을 수행하는 중일 수도 있다. 오버프로비저닝을 위해 더 많은 저장 용량을 할당하는 것은 비-휘발성 메모리 어레이 (150) 의 웨어를 감소시킬 수도 있다.
일 실시형태에서, 프로세스 (400) 는 데이터 압축 임계치와 비교할 때, 데이터 압축율의 감소에 응답하여 복구된 저장 용량 중 적어도 일부 또는 전체 부분을 사용자 데이터를 저장하기 위해 할당한다. 그러한 경우에, 예를 들어, 사용자 데이터는 덜 압축될 수도 있고, 따라서 더 많은 공간을 차지할 수도 있다. 더 많은 공간이 사용자 데이터를 저장하기 위해 할당될 수 있다. 프로세스 (400) 는 또한, 오버프로비저닝 임계치와 비교할 때, 오버프로비전 부분의 사이즈의 증가에 응답하여 복구된 저장 용량의 적어도 일부 또는 전체 부분을 사용자 데이터를 저장하기 위해 할당한다. 그러한 경우에, 예를 들어, 오버프로비저닝 부분 사이즈는 너무 크게 성장될 수도 있다. 프로세스 (400) 는 또한, 연속 데이터 기록된 임계치와 비교할 때, 비-휘발성 메모리 어레이 (150) 에 기록된 연속 데이터의 양 대 비-휘발성 메모리 어레이 (150) 에 기록된 비-연속 데이터의 양의 비율의 증가에 응답하여 복구된 저장 용량의 적어도 일부 또는 전체 부분을 사용자 데이터를 저장하기 위해 할당한다. 그러한 경우에, 예를 들어, 연속하거나 순차적인 데이터를 비-휘발성 메모리 어레이 (150) 에 기록하는 것은 비-순차적인 데이터를 기록하는 것보다 더 낮은 기록 증폭과 연관된다. 따라서, 요구되는 전체 기록 증폭을 달성하기 위해, 더 적은 오버프로비저닝이 요구된다. 다른 한편으로, 프로세스 (400) 는 연속 데이터 기록 임계치에 대하여, 비-휘발성 메모리 어레이 (150) 에 기록된 연속 데이터의 양 대 비-휘발성 메모리 어레이 (150) 에 기록된 비-연속 데이터의 양의 비율의 감소에 응답하여 복구된 저장 용량의 적어도 일부 또는 전체 부분을 오버프로비저닝하기 위해 할당한다. 그러한 경우에, 예를 들어, 더 많은 비-연속 또는 랜덤한 데이터가 기록되고, 이는 증가된 기록 증폭과 연관된다. 따라서, 더 많은 저장 용량이 오버프로비저닝을 위해 할당될 수 있다.
결론
개시된 동적 오버프로비저닝 시스템들 및 방법들을 활용하여 발생할 수 있는 것은, 비-휘발성 메모리의 더 효율적인 사용, 기록 증폭의 감소, 캐시 히트율의 증가 등이다. 개선된 데이터 저장 시스템 성능 및 증가된 내구성이 그에 따라 획득될 수 있다.
다른 변형들
일부 실시형태들에서, 추가의 오버프로비저닝 파라미터들이 사용될 수 있음을 당업자는 인식할 것이다. 추가로, 오버프로비저닝 파라미터들은 임의의 적절한 선형 및/또는 비-선형 방법을 사용하여 결합될 수 있다. 또한, 개시된 시스템들 및 방법들은 예컨대 저장 매체의 제한들로 인해 랜덤한 메모리 위치들을 기록하는 것이 불가능한 임의의 데이터 저장 시스템에 의해 활용될 수 있다. 그러한 데이터 저장 시스템들은 또한, 캐시 메모리를 포함할 수도 있다. 또한, 사용자 데이터는 호스트에 의해 제공된 데이터, 데이터 저장 시스템에 의해 생성된 데이터, 등등과 같은 임의의 타입의 데이터 및/또는 데이터 타입들의 조합을 포함할 수 있다. 도 4 에 도시된 프로세스와 같은 개시된 프로세스들에서 취득된 실제 단계들은 도면에 도시된 것과 상이할 수도 있다. 추가의 시스템 컴포넌트들이 활용될 수 있고, 개시된 시스템 컴포넌트들은 결합되거나 생략될 수 있다. 그 실시형태에 의존하여, 전술된 특정 단계들은 제거될 수도 있고, 다른 단계들이 부가될 수도 있다. 따라서, 본 개시물의 범위는 오직 첨부된 청구항들을 참조하여 정의되도록 의도된다.
특정 실시형태들이 설명되지만, 이들 실시형태들은 오직 예로서만 제시되며, 보호 범위를 제한하도록 의도되지는 않는다. 실제로, 본원에 설명된 신규한 방법들 및 시스템들은 다양한 다른 형태들로 구현될 수도 있다. 추가로, 본원에 설명된 방법들 및 시스템들의 형태에 있어서 다양한 생략들, 대체들, 및 변경들은 보호 범위를 벗어나지 않고 실행될 수도 있다. 첨부된 청구항들 및 그 등가물들은 그러한 형태들 또는 변형들을 보호 범위 및 사상 내에 있도록 커버하도록 의도된다. 예를 들어, 본원에 개시된 시스템들 및 방법들은 하드 디스크 드라이브들, 솔리드 스테이트 드라이브들, 등등에 적용될 수 있다. 추가로, 다른 형태의 스토리지 (예컨대, DRAM 또는 SRAM, 배터리 백업된 휘발성 DRAM 또는 SRAM 디바이스들, EPROM, EEPROM 메모리, 등) 가 부가적으로 또는 대안적으로 사용될 수도 있다. 다른 예로서, 도면들에 예시된 다양한 컴포넌트들은 프로세서, ASIC/FPGA, 또는 전용 하드웨어 상의 소프트웨어 및/또는 펌웨어로서 구현될 수도 있다. 또한, 앞서 개시된 특정 실시형태들의 특징들 및 특성들은 그들 모두가 본 개시물의 범위 내에 있는 추가의 실시형태들을 형성하도록, 상이한 방식들로 결합될 수도 있다. 본 개시물이 특정 바람직한 실시형태들 및 애플리케이션들을 제공하지만, 본원에서 설명된 특징들 및 장점들 모두를 제공하지 않는 당업자에게 명백한 다른 실시형태들이 또한 본 개시물의 범위 내에 있다. 따라서, 본 개시물의 범위는 오직 첨부된 청구항들을 참조하여 정의되도록 의도된다.

Claims (20)

  1. 데이터 저장 시스템으로서,
    사용자 데이터를 저장하도록 구성된 사용자 데이터 부분 및 오버프로비저닝 부분을 포함하는 비-휘발성 메모리 어레이; 및
    상기 비-휘발성 메모리 어레이의 상기 오버프로비저닝 부분의 용량을,
    상기 사용자 데이터 부분에 저장된 적어도 일부 사용자 데이터를 압축하는 것,
    상기 압축으로 인해 복구된 저장 용량의 양을 결정하는 것,
    상기 비-휘발성 메모리 어레이에 저장된 비-리던던트 데이터 - 상기 비-리던던트 데이터는 상기 비-휘발성 메모리 어레이가 캐시로서 기능하고 있는 다른 메모리에 지속적으로 저장되지 않는 데이터를 포함함 - 의 양의 측정을 포함한 하나 이상의 오버프로비저닝 파라미터를 계산하는 것, 및
    상기 하나 이상의 오버프로비저닝 파라미터에 적어도 부분적으로 기초하여, 상기 사용자 데이터 부분의 용량 및 상기 오버프로비저닝 부분의 용량 중 적어도 하나에 상기 복구된 저장 용량을 할당하는 것
    에 의해, 동적으로 조정하도록 구성된 제어기를 포함하는, 데이터 저장 시스템.
  2. 제 1 항에 있어서,
    상기 하나 이상의 오버프로비저닝 파라미터는 복수의 오버프로비저닝 파라미터이고, 상기 제어기는, 상기 복수의 오버프로비저닝 파라미터 중 2개 이상의 오버프로비저닝 파라미터의 결합에 적어도 부분적으로 기초하여 상기 복구된 저장 용량을 할당하도록 구성되는 것인, 데이터 저장 시스템.
  3. 제 2 항에 있어서,
    상기 제어기는 상기 2개 이상의 오버프로비저닝 파라미터의 가중 평균을 결정하도록 구성되는 것인, 데이터 저장 시스템.
  4. 제 1 항에 있어서,
    상기 하나 이상의 오버프로비저닝 파라미터는,
    사용자 데이터 압축률;
    상기 오버프로비저닝 부분의 용량;
    상기 비-휘발성 메모리 어레이의 웨어 레벨;
    동작하지 않는 비-휘발성 메모리 어레이 위치들의 수;
    상기 비-휘발성 메모리 어레이로부터 판독된 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 데이터의 양의 비율; 및
    상기 비-휘발성 메모리 어레이에 기록된 연속 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 비-연속 데이터의 양의 비율
    중 적어도 하나를 더 포함하는 것인, 데이터 저장 시스템.
  5. 제 4 항에 있어서,
    상기 제어기는, 상기 복구된 저장 용량의 적어도 일부를,
    웨어 레벨 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이의 웨어 레벨의 증가;
    판독/기록 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이로부터 판독된 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 데이터의 양의 비율의 증가; 및
    연속 데이터 기록된 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이에 기록된 연속 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 비-연속 데이터의 양의 비율의 감소
    중 적어도 하나에 응답하여 상기 오버프로비저닝 부분의 용량에 할당하도록 구성되는 것인, 데이터 저장 시스템.
  6. 제 4 항에 있어서,
    상기 제어기는, 상기 복구된 저장 용량의 적어도 일부를,
    동작하지 않는 위치 임계치와 비교할 때, 동작하지 않는 비-휘발성 메모리 위치들의 수의 증가;
    데이터 압축 임계치와 비교할 때, 상기 사용자 데이터 압축률의 감소;
    오버프로비저닝 임계치와 비교할 때, 상기 오버프로비저닝 부분의 용량의 증가;
    연속 데이터 기록된 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이에 기록된 연속 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 비-연속 데이터의 양의 비율의 증가; 및
    비-리던던트 데이터 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이에 저장된 비-리던던트 데이터의 퍼센티지를 포함한 측정의 증가
    중 적어도 하나에 응답하여 상기 사용자 데이터 부분의 용량에 할당하도록 구성되는 것인, 데이터 저장 시스템.
  7. 제 1 항에 있어서,
    상기 제어기는, 무손실 압축을 사용하여 상기 사용자 데이터 부분에 저장된 상기 적어도 일부 사용자 데이터를 압축하도록 구성되는 것인, 데이터 저장 시스템.
  8. 제 1 항에 있어서,
    상기 데이터 저장 시스템은 자기 스토리지를 더 포함하고,
    상기 비-휘발성 메모리 어레이는 상기 자기 스토리지에 대한 캐시 메모리로서 구성되는 것인, 데이터 저장 시스템.
  9. 제 8 항에 있어서,
    상기 자기 스토리지는 슁글링된 (shingled) 자기 스토리지를 포함하는 것인, 데이터 저장 시스템.
  10. 제 1 항에 있어서,
    상기 비-휘발성 메모리 어레이는 원격 데이터 스토리지에 대한 캐시 메모리로서 구성되는 것인, 데이터 저장 시스템.
  11. 사용자 데이터를 저장하도록 구성된 사용자 데이터 부분 및 오버프로비저닝 부분을 포함하는 비-휘발성 메모리 어레이를 포함하는 데이터 저장 시스템에서, 상기 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법으로서,
    상기 사용자 데이터 부분에 저장된 적어도 일부 사용자 데이터를 압축하는 단계;
    상기 압축으로 인해 복구된 저장 용량의 양을 결정하는 단계;
    상기 비-휘발성 메모리 어레이에 저장된 비-리던던트 데이터 - 상기 비-리던던트 데이터는 상기 비-휘발성 메모리 어레이가 캐시로서 기능하고 있는 다른 메모리에 지속적으로 저장되지 않는 데이터를 포함함 - 의 양의 측정을 포함한 하나 이상의 오버프로비저닝 파라미터를 계산하는 단계; 및
    상기 하나 이상의 오버프로비저닝 파라미터에 적어도 부분적으로 기초하여, 상기 사용자 데이터 부분의 용량 및 상기 오버프로비저닝 부분의 용량 중 적어도 하나에 상기 복구된 저장 용량을 할당하는 단계를 포함하며,
    상기 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법은 제어기의 제어 하에 수행되는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법.
  12. 제 11 항에 있어서,
    상기 하나 이상의 오버프로비저닝 파라미터는 복수의 오버프로비저닝 파라미터이고, 상기 복구된 저장 용량을 할당하는 단계는, 상기 복수의 오버프로비저닝 파라미터 각각의 결합에 적어도 부분적으로 기초하여 상기 복구된 저장 용량을 할당하는 단계를 포함하는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법.
  13. 제 12 항에 있어서,
    상기 복수의 오버프로비저닝 파라미터 각각의 결합은, 상기 복수의 오버프로비저닝 파라미터 각각의 가중 평균을 포함하는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법.
  14. 제 11 항에 있어서,
    상기 하나 이상의 오버프로비저닝 파라미터는,
    사용자 데이터 압축률;
    상기 오버프로비저닝 부분의 용량;
    상기 비-휘발성 메모리 어레이의 웨어 레벨;
    동작하지 않는 비-휘발성 메모리 어레이 위치들의 수; 및
    상기 비-휘발성 메모리 어레이로부터 판독된 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 데이터의 양의 비율, 상기 비-휘발성 메모리 어레이에 기록된 연속 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 비-연속 데이터의 양의 비율
    중 적어도 하나를 더 포함하는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법.
  15. 제 14 항에 있어서,
    상기 복구된 저장 용량을 할당하는 단계는, 상기 복구된 저장 용량의 적어도 일부를,
    웨어 레벨 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이의 웨어 레벨의 증가;
    판독/기록 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이로부터 판독된 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 데이터의 양의 비율의 증가; 및
    연속 데이터 기록된 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이에 기록된 연속 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 비-연속 데이터의 양의 비율의 감소
    중 적어도 2개에 응답하여 상기 오버프로비저닝 부분의 용량에 할당하는 단계를 포함하는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법.
  16. 제 14 항에 있어서,
    상기 복구된 저장 용량의 적어도 일부를,
    동작하지 않는 위치 임계치와 비교할 때, 동작하지 않는 비-휘발성 메모리 위치들의 수의 증가;
    데이터 압축 임계치와 비교할 때, 상기 사용자 데이터 압축률의 감소;
    오버프로비저닝 임계치와 비교할 때, 상기 오버프로비저닝 부분의 용량의 증가;
    연속 데이터 기록된 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이에 기록된 연속 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 비-연속 데이터의 양의 비율의 증가; 및
    비-리던던트 데이터 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이에 저장된 비-리던던트 데이터의 퍼센티지를 포함한 측정의 증가
    중 적어도 2개에 응답하여 상기 사용자 데이터 부분의 용량에 할당하는 단계를 더 포함하는, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법.
  17. 제 11 항에 있어서,
    상기 사용자 데이터 부분에 저장된 적어도 일부 사용자 데이터를 압축하는 단계는, 무손실 압축을 사용하여 압축하는 단계를 포함하는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법.
  18. 제 11 항에 있어서,
    자기 스토리지를 더 포함하고,
    상기 비-휘발성 메모리 어레이는 상기 자기 스토리지에 대한 캐시 메모리로서 구성되는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법.
  19. 제 18 항에 있어서,
    상기 자기 스토리지는 슁글링된 (shingled) 자기 스토리지 모듈을 포함하는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법.
  20. 제 11 항에 있어서,
    상기 비-휘발성 메모리 어레이는 원격 데이터 스토리지에 대한 캐시 메모리로서 구성되는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법.
KR1020157019904A 2012-12-26 2013-09-23 데이터 저장 시스템들을 위한 동적 오버프로비저닝 KR101937521B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/727,150 2012-12-26
US13/727,150 US9141532B2 (en) 2012-12-26 2012-12-26 Dynamic overprovisioning for data storage systems
PCT/US2013/061242 WO2014105228A1 (en) 2012-12-26 2013-09-23 Dynamic overprovisioning for data storage systems

Publications (2)

Publication Number Publication Date
KR20150099834A KR20150099834A (ko) 2015-09-01
KR101937521B1 true KR101937521B1 (ko) 2019-01-10

Family

ID=50976032

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157019904A KR101937521B1 (ko) 2012-12-26 2013-09-23 데이터 저장 시스템들을 위한 동적 오버프로비저닝

Country Status (7)

Country Link
US (1) US9141532B2 (ko)
EP (1) EP2939119B1 (ko)
JP (1) JP6298475B2 (ko)
KR (1) KR101937521B1 (ko)
CN (1) CN105009091B (ko)
HK (1) HK1216046A1 (ko)
WO (1) WO2014105228A1 (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9612956B2 (en) 2013-03-15 2017-04-04 Seagate Technology Llc Multi-tiered caching for data storage management in a device
CN105094685B (zh) 2014-04-29 2018-02-06 国际商业机器公司 进行存储控制的方法和设备
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US10235056B2 (en) * 2014-09-26 2019-03-19 Western Digital Technologies, Inc. Storage device health diagnosis
US11086775B2 (en) * 2014-12-11 2021-08-10 Toshiba Memory Corporation Information processing device, non-transitory computer readable recording medium, and information processing system
US9785575B2 (en) 2014-12-30 2017-10-10 International Business Machines Corporation Optimizing thin provisioning in a data storage system through selective use of multiple grain sizes
US9639282B2 (en) 2015-05-20 2017-05-02 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to improve device endurance and extend life of flash-based storage devices
US9606737B2 (en) 2015-05-20 2017-03-28 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to extend life of flash-based storage devices and preserve over-provisioning
US10108350B2 (en) 2015-09-10 2018-10-23 Western Digital Technologies, Inc. Method for providing nonvolatile storage write bandwidth using a caching namespace
US10048876B2 (en) 2015-09-10 2018-08-14 Western Digital Technologies, Inc. Method for providing nonvolatile storage write bandwidth using a caching namespace
CN106484331B (zh) * 2015-09-29 2019-04-12 华为技术有限公司 一种数据处理方法、装置及闪存设备
US10002073B2 (en) * 2015-11-06 2018-06-19 SK Hynix Inc. Selective data recycling in non-volatile memory
US9990304B2 (en) * 2015-11-13 2018-06-05 Samsung Electronics Co., Ltd Multimode storage management system
RU2642349C1 (ru) * 2015-11-27 2018-01-24 Хуавэй Текнолоджиз Ко., Лтд. Способ для сохранения данных посредством устройства хранения данных и устройство хранения данных
US9946473B2 (en) 2015-12-03 2018-04-17 Sandisk Technologies Llc Efficiently managing unmapped blocks to extend life of solid state drive
US9946483B2 (en) 2015-12-03 2018-04-17 Sandisk Technologies Llc Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning
US10019372B2 (en) * 2015-12-16 2018-07-10 Western Digital Technologies, Inc. Caching sensing device data in data storage device
US10592110B2 (en) * 2016-02-19 2020-03-17 International Business Machines Corporation Techniques for dynamically adjusting over-provisioning space of a flash controller based on workload characteristics
CN105867851A (zh) * 2016-03-30 2016-08-17 联想(北京)有限公司 一种存储设备调整方法及装置
WO2017219364A1 (zh) * 2016-06-24 2017-12-28 华为技术有限公司 处理数据的方法、存储装置、固态硬盘和存储系统
US9842060B1 (en) * 2016-07-13 2017-12-12 Seagate Technology Llc Cache over-provisioning in a data storage device
US10534716B2 (en) 2016-07-13 2020-01-14 Seagate Technology Llc Limiting access operations in a data storage device
JP6681512B2 (ja) * 2017-02-20 2020-04-15 株式会社日立製作所 ストレージシステム及び記憶制御方法
JP6697410B2 (ja) * 2017-03-21 2020-05-20 キオクシア株式会社 メモリシステムおよび制御方法
US11936645B2 (en) 2017-03-30 2024-03-19 Kingston Digital, Inc. Smart security storage system
US10880296B2 (en) 2017-03-30 2020-12-29 Kingston Digital Inc. Smart security storage
KR102435890B1 (ko) * 2017-08-17 2022-08-25 삼성전자주식회사 스토리지 장치의 어드레스 맵핑 방법 및 동작 방법
CN107526547A (zh) * 2017-08-30 2017-12-29 四川长虹电器股份有限公司 基于android系统的EMMC兼容设计方法
US10983911B2 (en) * 2017-09-01 2021-04-20 Seagate Technology Llc Capacity swapping based on compression
CN110019083B (zh) * 2017-09-20 2023-01-24 阿里巴巴集团控股有限公司 分布式文件系统的存储方法、装置、电子设备及存储介质
US11132133B2 (en) * 2018-03-08 2021-09-28 Toshiba Memory Corporation Workload-adaptive overprovisioning in solid state storage drive arrays
TWI673958B (zh) * 2018-08-30 2019-10-01 英屬開曼群島商捷鼎創新股份有限公司 基於抽樣猜測之資料壓縮方法
US11049570B2 (en) 2019-06-26 2021-06-29 International Business Machines Corporation Dynamic writes-per-day adjustment for storage drives
US11163482B2 (en) 2019-06-26 2021-11-02 International Business Machines Corporation Dynamic performance-class adjustment for storage drives
US11137915B2 (en) 2019-06-27 2021-10-05 International Business Machines Corporation Dynamic logical storage capacity adjustment for storage drives
US11726679B2 (en) * 2019-11-05 2023-08-15 Western Digital Technologies, Inc. Applying endurance groups to zoned namespaces
US11392436B2 (en) * 2020-04-01 2022-07-19 Western Digital Technologies, Inc. Advanced file recovery method for flash memory
US11709598B2 (en) * 2020-09-21 2023-07-25 EMC IP Holding Company LLC Dynamic overprovisioning of storage device
DE102022100592A1 (de) 2021-02-05 2022-08-11 Samsung Electronics Co., Ltd. Betriebsverfahren eines Universal-Flash-Storage-Hosts und Betriebsverfahren eines Universal-Flash-Storage-Systems
CN113093993B (zh) * 2021-03-25 2023-08-22 深圳大普微电子科技有限公司 一种闪存空间动态分配方法及固态硬盘
US11487450B1 (en) * 2021-05-14 2022-11-01 Western Digital Technologies, Inc. Storage system and method for dynamic allocation of control blocks for improving host write and read
US11561695B1 (en) * 2021-07-06 2023-01-24 EMC IP Holding Company LLC Using drive compression in uncompressed tier
CN117785021A (zh) * 2022-09-29 2024-03-29 成都华为技术有限公司 一种硬盘管理方法、硬盘控制方法及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090228761A1 (en) 2008-03-07 2009-09-10 Anobit Technologies Ltd Efficient readout from analog memory cells using data compression
US20100250836A1 (en) 2009-03-25 2010-09-30 Anobit Technologies Ltd Use of Host System Resources by Memory Controller
US20110264843A1 (en) 2010-04-22 2011-10-27 Seagate Technology Llc Data segregation in a storage device
WO2012148828A2 (en) 2011-04-26 2012-11-01 Lsi Corporation Variable over-provisioning for non-volatile storage

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681305B1 (en) * 2000-05-30 2004-01-20 International Business Machines Corporation Method for operating system support for memory compression
US7093089B2 (en) 2003-08-18 2006-08-15 Hewlett-Packard Development Company, Lp. Systems and methods for storing data on computer systems
US7899917B2 (en) * 2007-02-01 2011-03-01 Microsoft Corporation Synchronization framework for occasionally connected applications
WO2010033877A1 (en) * 2008-09-19 2010-03-25 Oracle International Corporation Storage-side storage request management
US20100161909A1 (en) 2008-12-18 2010-06-24 Lsi Corporation Systems and Methods for Quota Management in a Memory Appliance
US20100161929A1 (en) 2008-12-18 2010-06-24 Lsi Corporation Flexible Memory Appliance and Methods for Using Such
US20100162065A1 (en) 2008-12-19 2010-06-24 Unity Semiconductor Corporation Protecting integrity of data in multi-layered memory with data redundancy
US8725946B2 (en) 2009-03-23 2014-05-13 Ocz Storage Solutions, Inc. Mass storage system and method of using hard disk, solid-state media, PCIe edge connector, and raid controller
US8479080B1 (en) * 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8214580B2 (en) * 2009-10-23 2012-07-03 International Business Machines Corporation Solid state drive with adjustable drive life and capacity
US8489855B2 (en) * 2010-05-07 2013-07-16 Ocz Technology Group Inc. NAND flash-based solid state drive and method of operation
US8745278B2 (en) * 2010-10-13 2014-06-03 Rosemount Inc. Field device with self description
CN102135942B (zh) * 2010-12-31 2013-04-24 北京握奇数据系统有限公司 一种存储设备中实现损耗均衡的方法及存储设备
US8886990B2 (en) * 2011-01-27 2014-11-11 Apple Inc. Block management schemes in hybrid SLC/MLC memory
US8913335B2 (en) * 2011-05-23 2014-12-16 HGST Netherlands B.V. Storage device with shingled data and unshingled cache regions
CN103562842B (zh) * 2011-05-24 2018-09-14 马维尔国际贸易有限公司 用于存储设备的用低预留空间实现低写入放大的方法
CN102521306A (zh) * 2011-12-01 2012-06-27 苏州迈科网络安全技术股份有限公司 一种数据存储系统应用方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090228761A1 (en) 2008-03-07 2009-09-10 Anobit Technologies Ltd Efficient readout from analog memory cells using data compression
US20100250836A1 (en) 2009-03-25 2010-09-30 Anobit Technologies Ltd Use of Host System Resources by Memory Controller
US20110264843A1 (en) 2010-04-22 2011-10-27 Seagate Technology Llc Data segregation in a storage device
WO2012148828A2 (en) 2011-04-26 2012-11-01 Lsi Corporation Variable over-provisioning for non-volatile storage

Also Published As

Publication number Publication date
EP2939119A1 (en) 2015-11-04
EP2939119B1 (en) 2018-11-28
US20140181369A1 (en) 2014-06-26
JP2016507816A (ja) 2016-03-10
HK1216046A1 (zh) 2016-10-07
CN105009091B (zh) 2018-01-02
CN105009091A (zh) 2015-10-28
US9141532B2 (en) 2015-09-22
JP6298475B2 (ja) 2018-03-20
EP2939119A4 (en) 2016-10-05
KR20150099834A (ko) 2015-09-01
WO2014105228A1 (en) 2014-07-03

Similar Documents

Publication Publication Date Title
KR101937521B1 (ko) 데이터 저장 시스템들을 위한 동적 오버프로비저닝
US10303600B2 (en) Method and storage device for collecting garbage data
US8479080B1 (en) Adaptive over-provisioning in memory systems
KR101919653B1 (ko) 데이터 저장 디바이스들에서 하부 페이지 변형을 방지하기 위한 방법들 및 디바이스들
KR101602939B1 (ko) 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
US8819334B2 (en) Solid state drive data storage system and method
US9298534B2 (en) Memory system and constructing method of logical block
KR102170539B1 (ko) 저장 장치에 의해 데이터를 저장하기 위한 방법 및 저장 장치
US9183133B2 (en) System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
WO2015145532A1 (ja) ストレージシステム及びデータ処理方法
US20160179403A1 (en) Storage controller, storage device, storage system, and semiconductor storage device
JP6007332B2 (ja) ストレージシステム及びデータライト方法
KR20150067583A (ko) 불휘발성 메모리 장치 및 그것의 중복 데이터 제거 방법
JP2017091545A (ja) 多重モード格納管理装置、多重モード格納装置、及びその選別潜在露出(sue)マッピング動作方法
US20100250826A1 (en) Memory systems with a plurality of structures and methods for operating the same
JP6320439B2 (ja) メモリ制御装置、ストレージ装置、ストレージ装置の制御プログラム、及び、ストレージ装置の制御方法
KR101649357B1 (ko) 데이터 저장 장치, 그것의 동작 방법, 그리고 그것을 포함한 스토리지 서버
CN114077547A (zh) 具有分区命名空间的主机管理的硬件压缩
US20220261160A1 (en) Wear Leveling Methods For Zoned Namespace Solid State Drive
CN111949222B (zh) 一种全闪磁盘阵列中垃圾回收中数据迁移的方法
KR20160119607A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN116897341A (zh) 隐含流
CN111338975A (zh) 面向多流的垃圾回收方法及其存储设备
KR20190061473A (ko) NVMe-SSD 기반 RAID 스토리지 시스템

Legal Events

Date Code Title Description
AMND Amendment
A201 Request for examination
A302 Request for accelerated examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)