KR101937521B1 - 데이터 저장 시스템들을 위한 동적 오버프로비저닝 - Google Patents
데이터 저장 시스템들을 위한 동적 오버프로비저닝 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear 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
본 개시물은 컴퓨터 시스템들을 위한 데이터 저장 시스템들에 관한 것이다. 더 구체적으로, 본 개시물은 데이터 저장 시스템들을 위한 동적 오버프로비저닝에 관한 것이다.
데이터 저장 시스템들은 그들의 정상 동작의 코스에서 가비지 회수 (garbage collection), 웨어 레벨링 (wear leveling), 불량 블록 관리, 등등과 같은 다수의 시스템 작업들 및 하우스키핑 (housekeeping) 동작들을 실행한다. 시스템 작업들 및 하우스키핑 동작들을 수행하는 것은, 비-휘발성 솔리드-스테이트 메모리가 데이터를 저장하기 위해 사용되는 케이스들에서 증가된 기록 증폭 (write amplification) 과 같은 상당한 오버헤드를 수반한다. 따라서, 하우스키핑 동작들을 수행하기 위한 더 효율적인 메커니즘들을 제공하는 것이 바람직하다.
본 발명의 다양한 특징들을 구현하는 시스템들 및 방법들은 지금부터 이하 도면들을 참조하여 설명될 것이다:
도 1 은 본 발명의 일 실시형태에 따른 동적 오버프로비저닝을 구현하는 호스트 시스템과 데이터 저장 시스템의 조합을 도시한다.
도 2 는 본 발명의 일 실시형태에 따른 오버프로비저닝 파라미터들을 도시한다.
도 3 은 본 발명의 일 실시형태에 따른 동적 오버프로비저닝을 도시한다.
도 4 는 본 발명의 일 실시형태에 따른 동적 오버프로비저닝 프로세스의 흐름도를 도시한다.
도 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개 이상의 오버프로비저닝 파라미터의 결합에 적어도 부분적으로 기초하여 상기 복구된 저장 용량을 할당하도록 구성되는 것인, 데이터 저장 시스템. - 제 2 항에 있어서,
상기 제어기는 상기 2개 이상의 오버프로비저닝 파라미터의 가중 평균을 결정하도록 구성되는 것인, 데이터 저장 시스템. - 제 1 항에 있어서,
상기 하나 이상의 오버프로비저닝 파라미터는,
사용자 데이터 압축률;
상기 오버프로비저닝 부분의 용량;
상기 비-휘발성 메모리 어레이의 웨어 레벨;
동작하지 않는 비-휘발성 메모리 어레이 위치들의 수;
상기 비-휘발성 메모리 어레이로부터 판독된 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 데이터의 양의 비율; 및
상기 비-휘발성 메모리 어레이에 기록된 연속 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 비-연속 데이터의 양의 비율
중 적어도 하나를 더 포함하는 것인, 데이터 저장 시스템. - 제 4 항에 있어서,
상기 제어기는, 상기 복구된 저장 용량의 적어도 일부를,
웨어 레벨 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이의 웨어 레벨의 증가;
판독/기록 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이로부터 판독된 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 데이터의 양의 비율의 증가; 및
연속 데이터 기록된 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이에 기록된 연속 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 비-연속 데이터의 양의 비율의 감소
중 적어도 하나에 응답하여 상기 오버프로비저닝 부분의 용량에 할당하도록 구성되는 것인, 데이터 저장 시스템. - 제 4 항에 있어서,
상기 제어기는, 상기 복구된 저장 용량의 적어도 일부를,
동작하지 않는 위치 임계치와 비교할 때, 동작하지 않는 비-휘발성 메모리 위치들의 수의 증가;
데이터 압축 임계치와 비교할 때, 상기 사용자 데이터 압축률의 감소;
오버프로비저닝 임계치와 비교할 때, 상기 오버프로비저닝 부분의 용량의 증가;
연속 데이터 기록된 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이에 기록된 연속 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 비-연속 데이터의 양의 비율의 증가; 및
비-리던던트 데이터 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이에 저장된 비-리던던트 데이터의 퍼센티지를 포함한 측정의 증가
중 적어도 하나에 응답하여 상기 사용자 데이터 부분의 용량에 할당하도록 구성되는 것인, 데이터 저장 시스템. - 제 1 항에 있어서,
상기 제어기는, 무손실 압축을 사용하여 상기 사용자 데이터 부분에 저장된 상기 적어도 일부 사용자 데이터를 압축하도록 구성되는 것인, 데이터 저장 시스템. - 제 1 항에 있어서,
상기 데이터 저장 시스템은 자기 스토리지를 더 포함하고,
상기 비-휘발성 메모리 어레이는 상기 자기 스토리지에 대한 캐시 메모리로서 구성되는 것인, 데이터 저장 시스템. - 제 8 항에 있어서,
상기 자기 스토리지는 슁글링된 (shingled) 자기 스토리지를 포함하는 것인, 데이터 저장 시스템. - 제 1 항에 있어서,
상기 비-휘발성 메모리 어레이는 원격 데이터 스토리지에 대한 캐시 메모리로서 구성되는 것인, 데이터 저장 시스템. - 사용자 데이터를 저장하도록 구성된 사용자 데이터 부분 및 오버프로비저닝 부분을 포함하는 비-휘발성 메모리 어레이를 포함하는 데이터 저장 시스템에서, 상기 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법으로서,
상기 사용자 데이터 부분에 저장된 적어도 일부 사용자 데이터를 압축하는 단계;
상기 압축으로 인해 복구된 저장 용량의 양을 결정하는 단계;
상기 비-휘발성 메모리 어레이에 저장된 비-리던던트 데이터 - 상기 비-리던던트 데이터는 상기 비-휘발성 메모리 어레이가 캐시로서 기능하고 있는 다른 메모리에 지속적으로 저장되지 않는 데이터를 포함함 - 의 양의 측정을 포함한 하나 이상의 오버프로비저닝 파라미터를 계산하는 단계; 및
상기 하나 이상의 오버프로비저닝 파라미터에 적어도 부분적으로 기초하여, 상기 사용자 데이터 부분의 용량 및 상기 오버프로비저닝 부분의 용량 중 적어도 하나에 상기 복구된 저장 용량을 할당하는 단계를 포함하며,
상기 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법은 제어기의 제어 하에 수행되는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법. - 제 11 항에 있어서,
상기 하나 이상의 오버프로비저닝 파라미터는 복수의 오버프로비저닝 파라미터이고, 상기 복구된 저장 용량을 할당하는 단계는, 상기 복수의 오버프로비저닝 파라미터 각각의 결합에 적어도 부분적으로 기초하여 상기 복구된 저장 용량을 할당하는 단계를 포함하는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법. - 제 12 항에 있어서,
상기 복수의 오버프로비저닝 파라미터 각각의 결합은, 상기 복수의 오버프로비저닝 파라미터 각각의 가중 평균을 포함하는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법. - 제 11 항에 있어서,
상기 하나 이상의 오버프로비저닝 파라미터는,
사용자 데이터 압축률;
상기 오버프로비저닝 부분의 용량;
상기 비-휘발성 메모리 어레이의 웨어 레벨;
동작하지 않는 비-휘발성 메모리 어레이 위치들의 수; 및
상기 비-휘발성 메모리 어레이로부터 판독된 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 데이터의 양의 비율, 상기 비-휘발성 메모리 어레이에 기록된 연속 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 비-연속 데이터의 양의 비율
중 적어도 하나를 더 포함하는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법. - 제 14 항에 있어서,
상기 복구된 저장 용량을 할당하는 단계는, 상기 복구된 저장 용량의 적어도 일부를,
웨어 레벨 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이의 웨어 레벨의 증가;
판독/기록 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이로부터 판독된 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 데이터의 양의 비율의 증가; 및
연속 데이터 기록된 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이에 기록된 연속 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 비-연속 데이터의 양의 비율의 감소
중 적어도 2개에 응답하여 상기 오버프로비저닝 부분의 용량에 할당하는 단계를 포함하는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법. - 제 14 항에 있어서,
상기 복구된 저장 용량의 적어도 일부를,
동작하지 않는 위치 임계치와 비교할 때, 동작하지 않는 비-휘발성 메모리 위치들의 수의 증가;
데이터 압축 임계치와 비교할 때, 상기 사용자 데이터 압축률의 감소;
오버프로비저닝 임계치와 비교할 때, 상기 오버프로비저닝 부분의 용량의 증가;
연속 데이터 기록된 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이에 기록된 연속 데이터의 양 대 상기 비-휘발성 메모리 어레이에 기록된 비-연속 데이터의 양의 비율의 증가; 및
비-리던던트 데이터 임계치와 비교할 때, 상기 비-휘발성 메모리 어레이에 저장된 비-리던던트 데이터의 퍼센티지를 포함한 측정의 증가
중 적어도 2개에 응답하여 상기 사용자 데이터 부분의 용량에 할당하는 단계를 더 포함하는, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법. - 제 11 항에 있어서,
상기 사용자 데이터 부분에 저장된 적어도 일부 사용자 데이터를 압축하는 단계는, 무손실 압축을 사용하여 압축하는 단계를 포함하는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법. - 제 11 항에 있어서,
자기 스토리지를 더 포함하고,
상기 비-휘발성 메모리 어레이는 상기 자기 스토리지에 대한 캐시 메모리로서 구성되는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법. - 제 18 항에 있어서,
상기 자기 스토리지는 슁글링된 (shingled) 자기 스토리지 모듈을 포함하는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법. - 제 11 항에 있어서,
상기 비-휘발성 메모리 어레이는 원격 데이터 스토리지에 대한 캐시 메모리로서 구성되는 것인, 오버프로비저닝 부분의 용량을 동적으로 조정하는 방법.
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)
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)
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)
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 | 苏州迈科网络安全技术股份有限公司 | 一种数据存储系统应用方法 |
-
2012
- 2012-12-26 US US13/727,150 patent/US9141532B2/en active Active
-
2013
- 2013-09-23 JP JP2015550377A patent/JP6298475B2/ja active Active
- 2013-09-23 CN CN201380068657.5A patent/CN105009091B/zh active Active
- 2013-09-23 KR KR1020157019904A patent/KR101937521B1/ko active IP Right Grant
- 2013-09-23 WO PCT/US2013/061242 patent/WO2014105228A1/en active Application Filing
- 2013-09-23 EP EP13866866.0A patent/EP2939119B1/en active Active
-
2016
- 2016-04-07 HK HK16103998.8A patent/HK1216046A1/zh unknown
Patent Citations (4)
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) |