KR102579790B1 - 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정 - Google Patents
저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정 Download PDFInfo
- Publication number
- KR102579790B1 KR102579790B1 KR1020227037936A KR20227037936A KR102579790B1 KR 102579790 B1 KR102579790 B1 KR 102579790B1 KR 1020227037936 A KR1020227037936 A KR 1020227037936A KR 20227037936 A KR20227037936 A KR 20227037936A KR 102579790 B1 KR102579790 B1 KR 102579790B1
- Authority
- KR
- South Korea
- Prior art keywords
- spare space
- storage device
- storage
- adjustment
- write
- Prior art date
Links
Images
Classifications
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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
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
본원에 설명하는 실시예들은 일반적으로, 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들을 결정하는 것에 관한 것이다.
고체 상태 드라이브들(SSD들)은 디바이스에 대한 하나의 호스트 기입이 SSD에서 비휘발성 메모리에 대한 다중의 기입들을 발생시키는 현상을 경험한다. 이것은 NAND들과 같은 비휘발성 메모리에서, 페이지들의 블록이 데이터가 블록에서의 페이지들 중 하나에 기입될 수 있기 이전에 소거되어야 하기 때문에 발생하고, 이는 블록에서의 페이지들의 일부를 재기입하는 것을 요구한다. 기입 증폭은 호스트 시스템으로부터 오는 기입들에 대한 비휘발성 메모리에 할당된 기입들의 비율에 의해 측정된다.
SSD 디바이스에서, 비휘발성 메모리의 블록에서의 페이지들이 유효 데이터 및 실효 데이터(무효 또는 데이터가 필요하지 않음) 양자를 가질 때, 가비지 컬렉션(garbage collection) 프로세스가 유효 데이터를 갖는 페이지들을 판독하며, 유효 데이터를 소거된 빈 블록에 재기입하여 기입 동작들에 이용가능한 더 많은 프리(free) 블록들을 갖도록 유효 데이터를 갖는 페이지들을 더 적은 블록들로 통합한다. 가비지 컬렉션 이후에, 유효 데이터가 기입되는 블록들은 추가의 기입 데이터 또는 가비지 컬렉션에 대해 프리하고 이용가능하다.
호스트 기입이 유효 및 실효 데이터를 갖는 전체 블록이 회수되도록 요구할 수 있기 때문에, 가비지 컬렉션 프로세스는 기입 증폭을 증가시키며, 시스템 성능을 감소시키고, 모든 유효 데이터는 블록이 새로운 호스트 기입에 대해 프리해질 수 있기 이전에 재배치된다. 기입 증폭의 영향을 감소시키기 위해, SSD들은 저장 공간의 블록들을 가비지 컬렉션 동작들에 대해 이용가능한 스페어 공간으로서 남겨둠으로써 비휘발성 메모리의 오버-프로비저닝(over-provisioning)을 사용하고, 여기서, 스페어 공간은 사용자에게 이용가능하지 않다. 오버-프로비저닝된 스페어 공간은 기입 동작들을 위해 이용가능하도록 블록들을 확보하기 위해 가비지 컬렉션에 대한 스페어 공간에서 블록들을 사용함으로써 기입 증폭을 낮추는 것을 돕는다. 스페어 공간의 양은 재활용된 블록에서 유효 및 실효 데이터의 예상량에 영향을 미침으로써 가비지 컬렉션의 효율에 영향을 미친다. 예를 들어, 스페어 공간이 가비지 컬렉션되는 블록들에 얼마나 많은 총 무효 블록들이 있는지에 대응하기 때문에, 더 큰 스페어 용량을 갖는 드라이브가 가비지 컬렉션을 위해 선택하는 블록에서 더 많은 무효 데이터를 갖는다. 가비지 컬렉션은, 비휘발성 메모리에 대한 새로운 데이터의 기입을 위해 이용가능한 공간을 만드는 기입 동작 동안 가비지 컬렉션이 사용될 필요가 없도록 기입 동작에 대해 이용가능한 프리 공간 블록들이 항상 존재한다는 것을 보장한다. 제조자들은 사용자에 대해 이용불가능하며 가비지 컬렉션, 웨어 레벨링(wear leveling) 및 다른 관리 동작들을 위해 사용되는 SSD에서의 비휘발성 메모리에서 스페어 공간을 구성할 수 있다.
추가로, 기입 증폭은 워크로드(workload)에 따라 변하고, 순차적 기입들과 같은 특정한 워크로드들은 일반적으로, 랜덤 기입들과 같은 다른 워크로드들보다 낮은 기입 증폭을 경험한다. 추가로, 특정한 호스트가 예상된 호스트 기입 액티비티 레벨보다 낮으면, 예상된 것보다 NAND에 대한 웨어(wear)가 적을 수 있다.
실시예들이 일정한 비율로 도시되지 않는 첨부한 도면들을 참조하여 예로서 설명되며, 도면들에서, 동일한 참조 부호들이 유사한 엘리먼트들을 지칭한다.
도 1은 컴퓨팅 환경에서 호스트 시스템 및 저장 디바이스의 실시예를 예시한다.
도 2는 저장 디바이스에 수집된 저장 디바이스 메타데이터의 실시예를 예시한다.
도 3은 저장 디바이스에서 오버 프로비저닝에 대한 스페어 공간의 퍼센티지를 기입 증폭의 함수로서 모델링하는 기입 증폭 함수의 실시예를 예시한다.
도 4는 저장 디바이스에서 사용자에 대해 이용불가능한 스페어 공간을 조정하기 위한 동작들의 실시예를 예시한다.
도 5는 스페어 공간에 대한 조정을 결정하는데 사용된 기입 증폭에 대한 조정을 결정하기 위한 동작들의 실시예를 예시한다.
도 6은 스페어 공간을 조정하기 위해 호스트 시스템에서 저장 디바이스 드라이버에 의해 수행된 동작들의 실시예를 예시한다.
도 7은 저장 디바이스의 저장 어레이에서 스페어 공간을 조정하기 위해 저장 디바이스에 의해 수행된 동작들의 실시예를 예시한다.
도 1은 컴퓨팅 환경에서 호스트 시스템 및 저장 디바이스의 실시예를 예시한다.
도 2는 저장 디바이스에 수집된 저장 디바이스 메타데이터의 실시예를 예시한다.
도 3은 저장 디바이스에서 오버 프로비저닝에 대한 스페어 공간의 퍼센티지를 기입 증폭의 함수로서 모델링하는 기입 증폭 함수의 실시예를 예시한다.
도 4는 저장 디바이스에서 사용자에 대해 이용불가능한 스페어 공간을 조정하기 위한 동작들의 실시예를 예시한다.
도 5는 스페어 공간에 대한 조정을 결정하는데 사용된 기입 증폭에 대한 조정을 결정하기 위한 동작들의 실시예를 예시한다.
도 6은 스페어 공간을 조정하기 위해 호스트 시스템에서 저장 디바이스 드라이버에 의해 수행된 동작들의 실시예를 예시한다.
도 7은 저장 디바이스의 저장 어레이에서 스페어 공간을 조정하기 위해 저장 디바이스에 의해 수행된 동작들의 실시예를 예시한다.
제조자들은 가능한 한 많은 공간을 사용자에게 제공할 필요성과, SSD 및 플래시 메모리의 수명을 연장하기 위해 기입 증폭을 낮추고 기입들의 수를 감소시키도록 스페어 공간을 제공할 필요성을 밸런싱해야 한다. 저장 디바이스에서 스페어 공간을 최적으로 관리하기 위한 개선된 기술들이 본 기술분야에서 필요하다.
SSD에서, 제한된 기입 사이클들의 수를 갖는 NAND와 같은 비휘발성 메모리에 대한 웨어는 기입 증폭에 의해 승산된 호스트 기입들의 레이트의 함수이며, 기입 증폭은 사용자에게 숨겨진 스페어 용량 공간의 양의 함수이다. 스페어 용량은 기입 증폭의 효과를 감소시켜서 SSD에 대한 웨어를 감소시킨다. 그러나, 기입 증폭 및 기입 웨어를 감소시킬 이러한 필요성은 스페어 공간이 사용자에게 이용불가능하기 때문에 가용 용량을 최대화하는데 있어서 사용자 관심과 밸런싱되어야 한다.
설명한 실시예들은 드라이브의 현재 웨어 궤적에 기초하여 스페어 공간을 감소시키거나 증가시키기 위해 조정들이 이루어져야 하는지를 결정하기 위한 기술을 제공함으로써 비휘발성 메모리에서 스페어 공간 및 사용자 가용 공간의 밸런스를 최적화하는 것을 추구한다. 웨어 궤적은 SSD의 수명 동안의 현재 호스트 기입 레벨들, SSD의 현재 파워-온 시간, SSD의 추정된 수명, 및 SSD에 대해 레이팅된 드라이브 기입들의 최대 수를 포함하는 SSD 소모 프로파일에 기초한다. 설명한 실시예들은, 드라이브에 대한 이력 호스트 기입 레이트에서, 기입 증폭이 증가될 수 있고 드라이브에 대해 레이팅된 최대 기입들 내에서 드라이브의 추정된 수명에 여전히 도달할 수 있도록, 현재 기입 궤적 레벨이 충분히 낮은 경우에 스페어 공간을 감소시키고 사용자 가용 공간을 증가시키기 위해 조정을 결정하기 위한 기술들을 제공한다.
추가로, 설명한 실시예들은, 드라이브에 대한 이력 호스트 기입 레이트에서, 저장 드라이브가 드라이브에 대해 레이팅된 최대 드라이브 기입들을 초과하지 않고 드라이브의 추정된 수명에 도달하기 위해 기입 증폭이 감소될 필요가 있도록, 현재 호스트 기입 궤적 레벨이 충분히 높은 경우에 스페어 공간을 증가시키고 사용자 가용 공간을 감소시키기 위해 조정을 결정하기 위한 기술들을 제공한다. 따라서, 기입 증폭을 낮추기 위해 스페어 공간을 증가시키는 것은, 스페어 공간이 증가되지 않은 경우에 드라이브가 현재 웨어 레이트에서 추정된 것보다 짧은 수명을 갖도록, 현재 웨어 레벨이 충분히 높을 때 드라이브의 수명을 연장한다.
설명한 실시예들은 기입 증폭에 대한 조정을 결정하기 위해 저장 디바이스에 유지된 드라이브 소모 프로파일을 사용한 후, 기입 증폭에 대한 조정의 결과로서 스페어 공간에 대해 이루어질 수 있는 대응하는 조정을 결정하기 위해 기입 증폭 함수를 사용함으로써 스페어 공간에 대한 조정의 적절한 레벨을 결정한다.
추가의 실시예들은 사용자 가용 공간을 증가시키기 위해 필요한 것으로서 스페어 공간에 대한 적절한 조정을 결정하기 위한 기술들을 제공한다. 그 후, 이러한 조정 정보는 저장 디바이스 자체 또는 호스트 시스템에서 구동하는 저장 디바이스 드라이버에 의해 결정되는 것으로서 조정을 할지 판정하기 위해 호스트 시스템에서 저장 디바이스의 사용자에게 제시될 수 있다.
아래의 설명에서, 로직 구현들, 연산코드들, 피연산자들을 특정하기 위한 수단, 자원 파티셔닝/공유/중복 구현들, 시스템 컴포넌트들의 타입들 및 연관성들, 및 로직 파티셔닝/집적 선택들과 같은 다수의 특정한 상세사항들이 본 발명의 더욱 완전한 이해를 제공하기 위해 설명된다. 그러나, 본 발명이 이들 특정한 상세사항들 없이 실시될 수 있다는 것이 본 기술분야의 통상의 기술자에 의해 이해될 것이다. 다른 경우들에서, 제어 구조들, 게이트 레벨 회로들 및 전체 소프트웨어 명령어 시퀀스들은 본 발명을 모호하게 하지 않기 위해 상세히 도시되지 않았다. 포함된 설명들과 함께 본 기술분야의 통상의 기술자는 과도한 실험 없이 적절한 기능을 구현할 수 있을 것이다.
"일 실시예", "실시예", "예시적인 실시예" 등에 대한 명세서에서의 참조들은, 설명한 실시예가 특정한 특징, 구조, 또는 특성을 포함할 수 있지만, 모든 실시예가 그 특정한 특징, 구조, 또는 특성을 반드시 포함하지 않을 수 있다는 것을 나타낸다. 더욱이, 이러한 문구들이 반드시 동일한 실시예를 지칭하는 것은 아니다. 특정한 실시예들은 저장 디바이스들 전자 어셈블리들에 관한 것이다. 실시예들은 전자 어셈블리들을 형성하는 디바이스들 및 방법들 모두를 포함한다.
도 1은 저장 디바이스(102)와 통신하는 호스트 시스템(100)의 실시예를 예시한다. 저장 디바이스(102)는 비휘발성 메모리 저장 어레이(106)에 관하여 판독, 기입 및 오류 복구 동작들을 수행하기 위한 비휘발성 메모리 제어기(104)를 포함한다. 호스트(100)는 비휘발성 메모리 저장 어레이(106)에 관하여 데이터를 판독 및 기입하기 위해 저장 디바이스(102)에 호스트 판독 및 기입 요청들을 전송할 수 있다.
저장 디바이스(102)는 플래시 디바이스, SPI 플래시 디바이스, 고체 상태 저장 드라이브(SSD), 플래시 제어기 및 플래시 디바이스(예를 들어, NAND 또는 NOR), 및 메모리 디바이스, 디스크 드라이브 등과 같은 다른 판독/기입 저장 타입 디바이스들을 포함할 수 있다. 저장 디바이스(102)는 기입 증폭을 최적으로 관리함으로써 이익을 얻는 임의의 저장 디바이스를 포함할 수 있다.
저장 어레이(106)는 플래시 저장 디바이스들과 같은 전기적으로 소거가능한 비휘발성 메모리 셀들을 포함할 수 있다. 예를 들어, 메모리 저장 어레이(106)는 메모리 셀들의 NAND 다이들을 포함할 수 있다. 일 실시예에서, NAND 다이들은 각각의 셀에서, 2개의 비트 값들, 하위 비트 값 및 상위 비트 값을 기록하는 멀티레벨 셀(MLC) NAND 플래시 메모리를 포함할 수 있다. 대안으로는, NAND 다이들은 단일 레벨 셀(SLC) 메모리들을 포함할 수 있다. 저장 어레이(106)는 MLC NAND 플래시 메모리, 강유전성 랜덤-액세스 메모리(FeTRAM), 나노와이어-기반 비휘발성 메모리, 상변화 메모리(PCM)와 같은 3차원(3D) 크로스포인트 메모리, 멤리스터 기술을 통합하는 메모리, 자기저항 랜덤-액세스 메모리(MRAM), 스핀 전달 토크(STT)-MRAM, 단일 레벨 셀(SLC) 플래시 메모리 및 다른 전기적으로 소거가능한 프로그래밍가능한 판독 전용 메모리(EEPROM) 타입 디바이스들을 또한 포함할 수 있지만, 이에 제한되지 않는다. 설명한 실시예들은 가비지 컬렉션을 요구하고 가비지 컬렉션의 효과로서 기입 증폭을 경험하는 임의의 클래스의 메모리들과 사용될 수 있다.
호스트(100)는 프로세서(108) 및 프로세서(108)에 의해 실행된 프로그램 코드를 갖는 메모리(110)를 포함하고, 메모리(110)는 저장 디바이스(102)와 운영 시스템(112)을 인터페이스하기 위해 저장 디바이스 드라이버(116)를 갖는 운영 시스템(112), 하나 이상의 애플리케이션들(117), 컴퓨터 모니터와 같은 디스플레이(119), 키보드, 마우스, 터치스크린 등과 같은 입력 디바이스들(121), 및 저장 디바이스(102)에서 대응하는 디바이스 입/출력(I/O) 인터페이스(125)와 인터페이스하고 통신하기 위한 호스트 I/O 인터페이스(123)를 포함한다. 호스트(100)는 서버, 워크스테이션, 데스크탑 컴퓨터, 가상 머신, 랩탑, 태블릿, 스마트폰, 및 본 기술분야에 공지되어 있는 다른 컴퓨팅 디바이스들을 포함할 수 있다. 저장 디바이스(102)는 내부 저장 디바이스(102) 또는 외부 저장 디바이스(102)로서 호스트(100) 인클로저 내에 있을 수 있다.
일부 실시예들에서, 호스트 및 디바이스 I/O 인터페이스들(123 및 125)은 SATA(Serial Advanced Technology Attachment) 인터페이스이고, 호스트(100)와 저장 디바이스(102)를 결합하는 SATA 컴플라이언트 버스를 포함한다. 다른 실시예들에서, SCSI(Serial Attached Small Computer System Interface)(단순히, SAS), PCIe(Peripheral Component Interconnect Express) 등과 같은, 다른 타입의 I/O 인터페이스들 및 버스 인터커넥트들이 사용될 수 있다.
제어기(104)는 호스트(100)로부터의 판독 및 기입 요청들을 관리하기 위한 입/출력(I/O) 관리자(118), 호스트 운영 시스템(112)에 의해 사용된 논리적 어드레스들을 저장 어레이(106)에서의 물리적 위치들로 변환하기 위한 플래시 변환층(120); 사용자에 대해 이용불가능한 오버프로비저닝된 스토리지를 포함하고 사용자 공간에서 블록들의 페이지들을 통합하기 위해 가비지 컬렉션에서 사용하기 위한 페이지들의 스페어 블록들을 나타내는 스페어 블록 정보(122); 저장을 갖지 않고 사용자에 대해 이용가능한 페이지들의 블록들을 나타내는 프리 블록 정보(124); 및 저장 디바이스(102)의 소모 프로파일 정보를 포함한다. 제어기(104)는 저장 디바이스(102)에서 기입 액티비티(즉, 웨어 레벨)에 의존하여 스페어 공간 리스트(124)에 프로비저닝된 블록들의 양 또는 스페어 공간을 조정하기 위한 스페어 공간 조정 모듈(128)을 더 포함할 수 있다. 스페어 공간 조정 모듈(128)은 상이한 측정된 기입 증폭들에 대해 프로비저닝되어야 하는 스페어 공간의 양을 나타내는 기입 증폭 함수(300)를 포함한다.
예약 용량(reserve capacity)으로서 또한 공지되어 있는, 스페어 공간은 사용자에게 숨겨져 있지만 가비지 컬렉션 및 다른 관리 동작들을 위해 제어기(104)에 대해 이용가능한 공간을 포함한다. 사용자 용량으로서 또한 공지되어 있는, 사용자 공간은 저장 디바이스 드라이버(116) 및 호스트 운영 시스템(112)을 통해 호스트 시스템(100)의 사용자에 대해 이용가능한 메모리 공간을 포함한다.
도 1에서, 스페어 공간 조정 모듈(128)은 저장 디바이스(102)에 포함되는 것으로 도시되어 있다. 추가의 실시예에서, 스페어 공간 조정 모듈(128)은 대안으로 또는 추가로, 저장 디바이스 드라이버(116)에 포함될 수 있고 호스트 시스템(100)에서 실행될 수 있다.
도 2는 저장 디바이스(102)가 파워-온 상태에 있었던 시간, 날짜, 분 등이 단위의 시간량을 나타내는 파워-온 지속기간(202); 기가바이트(GB)와 같은 기입하기 위해 호스트에 의해 전송된 데이터의 양, 또는 호스트(100)에 의한 기입들의 수를 나타내는 호스트 기입들(204); NAND 셀들과 같은 저장 디바이스(102)에서의 저장 어레이(106)에 기입된 데이터의 양 또는 기입된 데이터에 대한 기입 사이클들의 수를 나타내는 저장 기입들(206); 그 수명 동안 저장 어레이(106)에 기입될 수 있는 바이트들 또는 저장 기입들의 수와 같은 최대 저장 기입들(208); 및 보증 또는 광고 수명과 같은 저장 디바이스(102)의 추정된 지속기간을 나타내는 추정된 수명(200)을 포함하는 것으로서 소모 프로파일 정보(200)의 실시예를 예시한다. 소모 프로파일 정보(200)는 저장 디바이스 제어기(104)에 의해 수집된 S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology)를 포함할 수 있다.
도 3은 총 저장 어레이(106)의 스페어 공간의 퍼센티지를 기입 증폭 값들의 함수로서 나타내는 기입 증폭 함수(300)의 실시예를 예시한다. 기입 증폭은 호스트 기입들(204)에 의해 나눠진 저장 기입들(206)로서 계산될 수 있다. 기입 증폭 함수(300)는 기입 증폭 및 웨어 레벨링을 최소화하고 가용 사용자 공간을 최대화하기 위해 충분한 스페어 공간을 제공함으로써 성능을 최적화하는 상이한 기입 증폭들에 대한 스페어 공간 퍼센티지들을 제공하는 테스팅에 기초하여 저장 디바이스(102)의 제조자에 의해 작성될 수 있다.
도 4는 저장 어레이들(106)에서 스페어 공간을 조정하기 위해 스페어 공간 조정 모듈(128)에 의해 수행된 동작들의 실시예를 예시한다. 언급한 바와 같이, 스페어 공간 조정 모듈(128)은 호스트 시스템 저장 디바이스 드라이버(116) 및/또는 저장 디바이스 제어기(104)에서 구현될 수 있다. 스페어 공간을 조정하기 위한 동작을 개시할 때(블록(400)), 스페어 공간 조정 모듈(128)은 호스트 기입들(204)에 의해 저장 기입들(206)을 나누는 것과 같은, 저장 기입들(206) 및 호스트 기입들(204)에 기초하여 현재 기입 증폭을 결정한다(블록(401)). 현재 기입 증폭에 대한 조정은 추정된 수명(210), 최대 기입들(208), 저장 기입들(206), 및 파워-온 지속기간(202)에 기초하여 결정되고(블록(402)), 이 정보는 저장 디바이스(100)로부터 수집될 수 있다. 스페어 공간 조정 모듈(128)은 결정된 조정에 의해 현재 기입 증폭을 조정함으로써 조정된 기입 증폭을 결정한다(블록(403)). 도 5는 기입 증폭에 대한 조정이 어떻게 결정될 수 있는지에 대한 추가의 상세사항들을 제공한다.
그 후, 스페어 공간 조정 모듈(128)은 예를 들어, 조정된 기입 증폭에 대한 기입 증폭 함수(300) 상의 포인트에 대응하는 스페어 공간을 결정함으로써, 조정된 기입 증폭에 기초하여 스페어 공간에 대한 조정을 결정한다(블록(404)). 스페어 공간 조정 모듈(128)은 저장 어레이(106)에서 총 공간의 퍼센티지로서 스페어 공간의 양을 증가시키기거나 감소시키는 것과 같은, 스페어 공간 조정을 구현하기 위해 필요한 블록들의 수를 결정한다(블록(405)). 스페어 공간을 증가시키기 위한 조정은 사용자에 대해 이용가능한 프리 공간을 감소시키는 것을 발생시키며, 스페어 공간을 감소시키기 위한 조정은 사용자에 대해 이용가능한 프리 공간을 증가시키는 것을 발생시킨다.
특정한 실시예들에서, 기입 증폭 함수(300)는 워크로드의 함수이며, 모든 워크로드들이 정확히 동일한 기입 증폭 함수를 갖는 것은 아니다. 이러한 문제를 다루기 위해, 하나의 대안의 실시예에서, 스페어 공간 조정 모듈(128)은 저장 디바이스(102)에서 특정한 워크로드 또는 워크로드 범위에 대해 특정된 기입 증폭 함수들을 제공하는 기입 증폭 함수들의 세트로부터 사용하기 위해 적절한 기입 증폭 함수를 선택할 수 있다. 제조자들은 저장 디바이스(102)에서 이러한 기입 증폭 함수들의 세트를 포함할 수 있다.
기입 증폭 곡선의 비례 사용을 수반하는 추가의 대안의 실시예에서, 단일 기입 증폭 함수(300)는 현재 워크로드에 따라 기입 증폭을 조정함으로써 사용될 수 있다. 예를 들어, 기입 증폭 함수(300)를 팩터, 예를 들어, 2배만큼 조정하기 위한 결정이 이루어지는 경우에, 현재 스페어 공간량에 대한 기입 증폭 곡선상의 포인트에 대응하는 현재 기입 증폭의 결정이 이루어진다. 그 후, 현재 기입 증폭은 조정된 기입 증폭을 계산하기 위해 결정된 조정 기입 증폭의 팩터만큼 조정된다. 타겟 스페어 공간량은 계산된 조정된 기입 증폭에 대해 정의된 기입 증폭 곡선상의 포인트에 대응하는 스페어 공간량을 포함한다. 그 후, 스페어 공간 모듈(128)은 결정된 타겟 스페어 공간량으로 현재 스페어 공간량을 조정할 수 있다.
(블록(406)에서) 호스트 기입 레이트가 상대적으로 낮을 때 발생하는, 조정이 스페어 공간을 감소시키는 것이면, 스페어 공간 조정 모듈(128)은 (블록(407)에서) 스페어 공간에서의 결정된 수의 블록들을 프리 공간 블록으로 변환하기 위해 스페어 및 프리 공간 정보(122 및 124)를 구성할 수 있다. 스페어 공간 조정 모듈(128)은 커맨드들을 제어기(104)에 전송함으로써 구성 동작들을 수행할 수 있다. (블록(406)에서) 현재 호스트 기입 레이트가 너무 높을 때 발생하는, 조정이 가비지 컬렉션에 대한 저장 기입들의 수를 감소시키기 위해 스페어 공간을 증가시키기 위한 것이면, 스페어 공간 조정 모듈(128)은 (블록(408)에서) 프리 공간에서의 결정된 수의 블록들을 스페어 공간 블록들로 변환하기 위해 스페어 및 프리 공간 정보(122 및 124)의 구성을 개시한다. 스페어 공간 블록들을 프리 공간 블록들로 변환하기 위해, 스페어 공간 정보(122)에서의 블록들은 프리 공간 정보(124)로 이동될 수 있다.
도 4의 동작들로, 지금까지의 저장 기입 레이트(웨어 레벨)가 너무 낮으면, 기입 증폭은 증가될 수 있고, 이는 사용자에 대해 이용가능한 프리 공간의 양을 증가시키기 위해 스페어 공간을 감소시키고 저장 기입 레이트를 증가시킴으로써 수행될 수 있다. 지금까지의 저장 기입 레이트가 너무 높으면(높은 웨어 레벨 레이트를 의미함), 기입 증폭은 저장 기입 레이트를 감소시키기 위해 감소될 필요가 있고, 이는 스페어 공간을 증가시킴으로써 수행된다.
도 5는 기입 증폭에 대한 조정을 결정하기 위해 스페어 공간 조정 모듈(128)에 의해 수행된 추가의 동작들의 실시예를 예시한다. 도 4의 블록(403)에서 수행된 바와 같은, 기입 증폭에 대한 조정을 결정하기 위한 동작을 개시할 때(블록(500)), 스페어 공간 조정 모듈(128)은 최대 저장 기입들(208) 빼기 저장 기입들(206) 및 추정된 수명(210) 빼기 저장 디바이스(100)의 파워-온 지속기간(202)을 포함하는 나머지 지속기간의 함수로서 나머지 기입 레이트를 결정한다(블록(501)). 아래의 방정식 (1)은 나머지 기입 레이트의 계산의 일 실시예이다:
(1) (최대 저장 기입들 - 저장 기입들)/(추정된 수명 - 파워-온 지속기간)
스페어 공간 조정 모듈(128)은 (블록(502)에서) 저장 기입들(206) 및 파워-온 지속기간(202)의 함수로서 현재 저장 기입 레이트를 더 결정한다. 아래의 방정식 (2)는 현재 저장 기입 레이트의 계산의 일 실시예이다.
(2) 저장 기입들/파워-온 지속기간
그 후, 현재 저장 기입 레이트에 적용될 때 나머지 저장 기입 레이트를 발생시키는 조정 팩터의 결정이 이루어진다(블록(503)). 조정 팩터는 조정의 방향을 나타낼 수 있다. 예를 들어, 일 실시예에서, 현재 저장 기입 레이트가 나머지 저장 기입 레이트보다 낮은 경우에, 조정 팩터는 현재 저장 기입 레이트에 의해 나눠진 나머지 저장 기입 레이트를 포함할 수 있고, 조정 팩터만큼 기입 증폭을 증가시키기 위한 포지티브 방향을 나타낼 수 있다. 현재 저장 기입 레이트가 나머지 저장 기입 레이트보다 큰 경우에, 조정 팩터는 현재 저장 기입 레이트에 의해 나눠진 나머지 저장 기입 레이트를 포함할 수 있고, 조정 팩터만큼 기입 증폭을 감소시키기 위한 네거티브 방향을 나타낼 수 있다.
그 후, 스페어 공간 조정 모듈(128)은 조정된 기입 증폭을 생성하기 위해 결정된 조정 값 및 조정의 방향(증가 또는 감소)에 기초하여 현재 기입 증폭을 증가시키거나 감소시킨다(블록(504)).
도 6은 스페어 공간 조정 모듈(128)이 저장 디바이스 드라이버(116)에서 구현될 때의 동작들의 일 실시예를 예시한다. 저장 디바이스 드라이버(116)는 사용자 호출에 응답하여 또는 임계 레벨에 도달하는 저장 디바이스(102)에서의 사용된 공간과 같은, 주기적 스케줄 또는 이벤트에 따라 스페어 공간 조정 동작들을 개시할 수 있다. 스페어 공간 관리 동작들을 개시하는 것(블록(600))에 응답하여, 저장 디바이스 드라이버(116)는 저장 기입들(206), 최대 기입들(208), 추정된 수명(210), 및 파워-온 지속기간(202)을 포함하는 소모 프로파일 정보(200)에 대한 요청을 저장 디바이스(102)에 전송한다(블록(601)). 요청된 정보의 수신시에(블록(602)), 저장 디바이스 드라이버(116)는 스페어 공간에 대한 조정을 결정하기 위해 블록들(401 내지 405) 및 도 5의 동작들을 수행한다. 저장 디바이스 드라이버(116)는 사용자 인터페이스에서 오퍼레이터가 결정된 조정을 수용하는 것을 나타낼 수 있게 하기 위해 그래픽 엘리먼트로 스페어 공간에 대한 결정된 조정에 관한 정보를 그래픽 사용자 인터페이스(GUI)와 같은 사용자 인터페이스(130)에서 렌더링한다(블록(604)).
결정된 조정을 수용하기 위한 그래픽 엘리먼트의 선택의 사용자 인터페이스(130)로부터의 표시를 수신시에(블록(605)), 저장 디바이스 드라이버(116)는 저장 디바이스(102)에 스페어 공간에 대한 파라미터로서 조정량을 갖는 리사이즈 커맨드를 전송한다(블록(606)). 리사이즈 커맨드는 저장 디바이스 제어기(104)로 하여금 스페어 공간을 스페어 공간에 대한 결정된 조정만큼 조정하게 하여 제어기(104)로 하여금 저장 어레이(106)에서 프로비저닝된 스페어 공간 및 프리 공간의 양을 조정하게 한다.
대안의 실시예에서, 저장 디바이스 드라이버(116)는 사용자 인터페이스(130)를 통해 사용자에 의해 프롬프트하는 것을 요구하지 않고 스페어 공간 조정 동작들을 자동으로 수행할 수 있다.
도 7은 스페어 공간 조정 모듈(128)이 도 1에 도시되어 있는 바와 같은 저장 디바이스(102)의 제어기(104)에서 구현될 때의 동작들의 실시예를 예시한다. 스페어 공간 조정 모듈(128)은 사용자 호출에 응답하여 또는 임계 레벨에 도달하는 저장 디바이스(102)에서의 사용된 공간과 같은, 주기적 스케줄 또는 이벤트에 따라 스페어 공간 조정 동작들을 개시할 수 있다. 스페어 공간 관리 동작들을 개시하는 것(블록(700))에 응답하여, 제어기(104)는 스페어 및 프리 공간을 조정하기 위해 도 4 및 도 5에서의 동작들을 수행하며, 예를 들어, 스페어 블록들 및 프리 블록들 정보(122 및 124)를 업데이트함으로써 조정을 구현한다. 제어기(104)는 호스트 동작 시스템(112)이 그 정보를 저장 디바이스(102)의 관리에 통합할 수 있도록 가용 사용자 공간의 새로운 양의 메시지를 저장 디바이스 드라이버(116)에 전송할 수 있다(블록(702)).
추가의 실시예에서, 저장 디바이스 드라이버(116)는 얼마나 많은 사용자 용량이 노출될 수 있는지에 대해 저장 디바이스(102)에 문의할 수 있다. 응답하여, 저장 디바이스(102)에서 구현된 스페어 공간 조정 모듈(128)은 가능하면 얼마나 많은 사용자 공간이 증가될 수 있으며 스페어 공간이 감소될 수 있는지를 결정하고, 이를 저장 디바이스 드라이버(116)에 보고한다. 그 후, 저장 디바이스 드라이버(116)는 사용자 승인 또는 자동 결정들에 응답하여, 저장 디바이스 제어기(104)로 하여금 스페어 공간(122)에서의 블록들을 프리 공간(124)으로 재구성하게 하기 위해 리사이즈 커맨드를 전송할 수 있다. 리사이즈 커맨드는 저장 디바이스 제어기(104)로 하여금 스페어 및 프리 공간을 재구성하기 위해 도 4에서의 블록들(405 내지 408)에서의 동작들을 수행하게 할 수 있다.
"일 실시예" 또는 "실시예"에 대한 본 명세서 전반의 참조는 실시예와 관련하여 설명한 특정한 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되는 것을 의미한다는 것을 이해해야 한다. 따라서, 본 명세서의 다양한 부분들에서의 "실시예" 또는 "일 실시예" 또는 대안의 실시예"에 대한 2개 이상의 참조들이 모두 동일한 실시예를 반드시 지칭하지 않는다는 것이 강조되고 이해해야 한다. 더욱이, 특정한 특징들, 구조들 또는 특성들은 본 발명의 하나 이상의 실시예들에서 적합하게 조합될 수 있다.
유사하게, 본 발명의 실시예들의 상술한 설명에서, 다양한 특징들은 다양한 발명의 양태들 중 하나 이상의 이해를 돕는 본 개시내용을 간소화하기 위한 목적으로 단일 실시예, 도면, 또는 그 설명에서 함께 때때로 그룹화된다. 그러나, 개시내용의 이러한 방법은 청구된 주제가 각각의 청구항에 명백하게 인용되는 것보다 많은 특징들을 요구한다는 의도를 반영하는 것으로서 해석되지 않아야 한다. 오히려, 아래의 청구항들을 반영할 때, 발명의 양태들은 단일의 상술한 개시된 실시예의 모든 특징들보다 적다. 따라서, 이에 의해, 상세한 설명에 후속하는 청구항들은 이러한 상세한 설명에 명백하게 통합된다.
스페어 공간 조정 모듈(128), 저장 디바이스 드라이버(116) 및 다른 동작 컴포넌트들(112, 114, 118 등)의 설명한 동작들은 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 임의의 조합을 생성하기 위해 표준 프로그래밍 및/또는 엔지니어링 기술들을 사용하는 방법, 장치 또는 컴퓨터 판독가능 저장 매체로서 구현될 수 있다. 설명한 동작들은 함수들을 직접 실행할 수 있는 "컴퓨터 판독가능 저장 매체"에 유지된 코드 또는 로직으로서 구현될 수 있거나, 여기서, 프로세서가 컴퓨터 판독가능 저장 매체로부터 코드를 판독하고 실행할 수 있다. 컴퓨터 판독가능 저장 매체는 자기 저장 매체(예를 들어, 하드 디스크 드라이브들, 플로피 디스크들, 테이프 등), 광학 스토리지(CD-ROM들, DVD들, 광 디스크들 등), 휘발성 및 비휘발성 메모리 디바이스들(예를 들어, EEPROM들, ROM들, PROM들, RAM들, DRAM들, SRAM들, 플래시 메모리, 펌웨어, 프로그램가능 로직 등), 고체 상태 디바이스들(SSD) 등을 포함할 수 있지만 이에 제한되지 않는다. 컴퓨터 판독가능 저장 매체는 하드웨어 디바이스(예를 들어, 집적 회로 칩, 프로그램가능한 로직 디바이스, 프로그램가능한 게이트 어레이(PGA), 필드-프로그램가능한 게이트 어레이(FPGA), 응용 주문형 집적 회로(ASIC) 등)에서 구현된 디지털 로직을 더 포함할 수 있다. 또한, 설명한 동작들을 구현하는 코드는 "송신 신호들"에서 구현될 수 있고, 여기서, 송신 신호들은 공간을 통해 또는 광섬유, 구리 와이어 등과 같은 송신 매체를 통해 전파할 수 있다. 코드 또는 로직이 인코딩되는 송신 신호들은 무선 신호, 위성 송신, 무선파들, 적외선 신호들, 블루투스 등을 더 포함할 수 있다. 컴퓨터 판독가능 저장 매체상에 수록된 프로그램 코드는 송신국 또는 컴퓨터로부터 수신국 또는 컴퓨터로 송신 신호들로서 송신될 수 있다. 컴퓨터 판독가능 저장 매체는 송신 신호들로만 구성되지 않고, 하드웨어 엘리먼트들과 같은 유형의 컴포넌트들을 포함한다. 본 기술분야의 통상의 기술자는, 다수의 수정들이 본 발명의 범위를 벗어나지 않고 이러한 구성에 대해 이루어질 수 있으며, 제조품이 본 기술분야에 공지된 적합한 정보 베어링 매체를 포함할 수 있다는 것을 인식할 것이다.
예들
아래의 예들은 추가의 실시예들에 관한 것이다.
예 1은 실행될 때, 동작들을 수행함으로써 저장 디바이스에서의 스페어 공간을 관리하는 프로그램 명령어들을 갖는 컴퓨터 저장 매체를 포함하는 컴퓨터 프로그램 제품이고, 동작들은 저장 디바이스에서의 매체에 대한 저장 기입들 및 호스트로부터 저장 디바이스로의 호스트 기입들에 기초하여 현재 기입 증폭을 결정하는 동작; 저장 디바이스의 추정된 수명, 저장 디바이스에 대한 최대 저장 기입들, 및 저장 디바이스가 파워-온된 이후의 저장 디바이스에서의 저장 기입들에 기초하여 조정된 기입 증폭을 생성하기 위해 현재 기입 증폭에 대한 조정을 결정하는 동작; 조정된 기입 증폭에 기초하여 스페어 공간에 대한 조정을 결정하는 동작 - 스페어 공간은 사용자 액세스가능한 스토리지를 포함하지 않는 오버프로비저닝된 저장 공간을 포함함 -; 및 스페어 공간에 대한 결정된 조정만큼 스페어 공간을 조정하기 위해 사용자에게 이용가능한 프리 공간 및 스페어 공간을 재구성하기 위한 동작을 개시하는 동작을 포함한다.
예 2에서, 예 1의 주제는, 기입 증폭에 대한 조정을 결정하는 동작이 최대 저장 기입들 빼기 저장 기입들 및 추정된 수명 빼기 저장 디바이스의 파워-온 지속기간을 포함하는 나머지 지속기간의 함수로서 나머지 저장 기입 레이트를 결정하는 동작; 및 저장 기입들 및 파워-온 지속기간의 함수로서 현재 저장 기입 레이트를 결정하는 동작을 포함하고, 기입 증폭에 대한 조정이 나머지 저장 기입 레이트 및 현재 저장 기입 레이트로부터 결정된다는 것을 임의로 포함할 수 있다.
예 3에서, 예 1 및 예 2의 주제는, 나머지 저장 기입 레이트 및 현재 저장 기입 레이트로부터 기입 증폭에 대한 조정을 결정하는 동작이 현재 저장 기입 레이트에 적용될 때 나머지 저장 기입 레이트를 발생시키는 조정 팩터를 결정하는 동작을 포함한다는 것을 임의로 포함할 수 있다.
예 4에서, 예 1 내지 예 3의 주제는, 조정 팩터가 현재 저장 기입 레이트에 대한 증가를 나타낼 때, 결정된 조정이 스페어 공간에서의 감소를 야기하는 현재 기입 증폭에 대한 증가를 나타내며, 조정 팩터가 현재 기입 레이트에 대한 감소를 나타낼 때, 결정된 조정은 스페어 공간에서의 증가를 야기하는 현재 기입 증폭에 대한 감소를 나타낸다는 것을 임의로 포함할 수 있다.
예 5에서, 예 1 내지 예 4의 주제는, 스페어 공간에 대한 결정된 조정이 조정된 기입 증폭에 적용된 기입 증폭에 대한 스페어 공간의 기입 증폭 함수로부터 발생한다는 것을 임의로 포함할 수 있다.
예 6에서, 예 1 내지 예 5의 주제는, 동작들이 저장 디바이스에서의 현재 워크로드에 기초하여 저장 디바이스에서의 상이한 워크로드들에 대해 제공된 복수의 기입 증폭 함수들 중 하나를 결정하는 동작을 더 포함하고, 결정된 기입 증폭 함수는 조정된 기입 증폭에 적용된다는 것을 임의로 포함할 수 있다.
예 7에서, 예 2 내지 예 6의 주제는, 동작들이 조정된 기입 증폭을 획득하기 위해 기입 증폭 함수 및 저장 디바이스에서의 현재 스페어 공간 사용에 따라 기입 증폭에 조정 팩터를 적용하는 동작; 및 기입 증폭 함수 및 조정된 기입 증폭에 따라 대응하는 타겟 스페어 공간을 결정하는 동작을 더 포함하는 것을 임의로 포함할 수 있다.
예 8에서, 예 2 내지 예 7의 주제는, 컴퓨터 판독가능 저장 매체가 저장 디바이스와 통신하는 호스트 시스템에서 구현되고, 프로그램 명령어들이 호스트 시스템에서 실행되며, 동작들은 저장 디바이스에서의 저장 기입들에 관한 정보에 대한 요청을 저장 디바이스에 전송하는 동작; 저장 기입들에 관한 정보를 저장 디바이스로부터 수신하는 동작을 더 포함하고, 수신된 정보는 현재 기입 증폭을 결정하기 위해 사용되고, 스페어 공간을 재구성하기 위한 동작을 개시하는 동작은 저장 디바이스에서 프로비저닝된 스페어 공간의 양을 조정하기 위해 스페어 공간에 대한 결정된 조정만큼 스페어 공간을 조정하기 위한 커맨드를 저장 디바이스에 전송하는 동작을 포함한다는 것을 임의로 포함할 수 있다.
예 9에서, 예 2 내지 예 8의 주제는, 동작들은 사용자 인터페이스에서 오퍼레이터가 스페어 공간에 대한 결정된 조정을 수용하는 것을 나타낼 수 있게 하기 위해 그래픽 엘리먼트로 스페어 공간에 대한 결정된 조정에 관한 정보를 사용자 인터페이스에서 렌더링하는 동작; 및 스페어 공간에 대한 결정된 조정을 수용하기 위한 그래픽 엘리먼트의 선택의 표시를 수신하는 동작을 더 포함하고, 스페어 공간을 조정하기 위한 커맨드는 결정된 조정을 수용하기 위한 그래픽 엘리먼트의 선택의 표시를 수신하는 동작에 응답하여 저장 디바이스에 전송된다는 것을 임의로 포함할 수 있다.
예 10에서, 예 2 내지 예 9의 주제는, 컴퓨터 판독가능 저장 매체가 저장 디바이스내에 인클로징된 저장 디바이스의 제어기에서 구현되고, 프로그램 명령어들은 제어기에서 실행된다는 것을 임의로 포함할 수 있다.
예 11에서, 예 2 내지 예 10의 주제는, 호스트 시스템이 저장 디바이스와 통신하고, 동작들이 호스트 시스템에 의해, 스페어 공간에 대한 조정을 파라미터로서 갖는 리사이즈 커맨드를 저장 디바이스에 전송하는 동작; 및 저장 디바이스에 의해, 리사이즈 커맨드의 파라미터에서의 스페어 공간에 대한 조정만큼 스페어 공간을 조정하기 위해 사용자에 대해 이용가능한 프리 공간 및 스페어 공간을 재구성하기 위해 리사이즈 커맨드를 프로세싱하는 동작을 더 포함한다는 것을 임의로 포함할 수 있다.
예 12에서, 예 2 내지 예 11의 주제는, 저장 디바이스가 NAND 메모리 셀들을 갖는 고체 상태 저장 디바이스를 포함하고, 스페어 공간이 미사용 페이지들을 갖는 NAND 메모리 셀들에서의 블록들의 액티브 데이터의 페이지들을 더 적은 블록들로 통합하기 위한 가비지 컬렉션을 수행하기 위해 사용된다는 것을 임의로 포함할 수 있다.
예 13은 저장 매체를 포함하는 저장 어레이; 및 동작들을 수행하기 위해 로직을 실행하는 제어기를 포함하는 호스트 시스템과 통신하는 저장 디바이스이고, 동작들은 저장 디바이스에서의 매체에 대한 저장 기입들 및 호스트로부터 저장 디바이스로의 호스트 기입들에 기초하여 현재 기입 증폭을 결정하는 동작; 저장 디바이스의 추정된 수명, 저장 디바이스에 대한 최대 저장 기입들, 및 저장 디바이스가 파워-온된 이후의 저장 디바이스에서의 저장 기입들에 기초하여 조정된 기입 증폭을 생성하기 위해 현재 기입 증폭에 대한 조정을 결정하는 동작; 조정된 기입 증폭에 기초하여 스페어 공간에 대한 조정을 결정하는 동작 - 스페어 공간은 사용자 액세스가능한 스토리지를 포함하지 않는 오버프로비저닝된 저장 공간을 포함함 -; 및 스페어 공간에 대한 결정된 조정만큼 스페어 공간을 조정하기 위해 사용자에게 이용가능한 프리 공간 및 스페어 공간을 재구성하는 동작을 포함한다.
예 14에서, 예 13의 주제는, 기입 증폭에 대한 조정을 결정하는 동작이 최대 저장 기입들 빼기 저장 기입들 및 추정된 수명 빼기 저장 디바이스의 파워-온 지속기간을 포함하는 나머지 지속기간의 함수로서 나머지 저장 기입 레이트를 결정하는 동작; 및 저장 기입들 및 파워-온 지속기간의 함수로서 현재 저장 기입 레이트를 결정하는 동작을 포함하고, 기입 증폭에 대한 조정이 나머지 저장 기입 레이트 및 현재 저장 기입 레이트로부터 결정된다는 것을 임의로 포함할 수 있다.
예 15에서, 예 13 및 예 14의 주제는, 스페어 공간에 대한 결정된 조정이 조정된 기입 증폭에 적용된 기입 증폭에 대한 스페어 공간의 기입 증폭 함수로부터 발생한다는 것을 임의로 포함할 수 있다.
예 16에서, 예 13 내지 예 15의 주제는, 동작들이 스페어 공간에 대한 결정된 조정만큼 스페어 공간을 조정하기 위해 사용자에 대해 이용가능한 프리 공간 및 스페어 공간을 재구성하는 동작을 더 포함한다는 것을 임의로 포함할 수 있다.
예 17은 프로세서; 및 동작들을 수행하기 위해 프로세서에 의해 실행되는 컴퓨터 프로그램 코드를 갖는 컴퓨터 판독가능 저장 매체를 포함하는 저장 디바이스와 통신하는 시스템이고, 동작들은 저장 디바이스에서의 매체에 대한 저장 기입들 및 호스트로부터 저장 디바이스로의 호스트 기입들에 기초하여 현재 기입 증폭을 결정하는 동작; 저장 디바이스의 추정된 수명, 저장 디바이스에 대한 최대 저장 기입들, 및 저장 디바이스가 파워-온된 이후의 저장 디바이스에서의 저장 기입들에 기초하여 조정된 기입 증폭을 생성하기 위해 현재 기입 증폭에 대한 조정을 결정하는 동작; 조정된 기입 증폭에 기초하여 스페어 공간에 대한 조정을 결정하는 동작 - 스페어 공간은 사용자 액세스가능한 스토리지를 포함하지 않는 오버프로비저닝된 저장 공간을 포함함 -; 및 스페어 공간에 대한 결정된 조정만큼 스페어 공간을 조정하기 위해 사용자에게 이용가능한 프리 공간 및 스페어 공간을 재구성하기 위한 커맨드를 저장 디바이스에 전송하는 동작을 포함한다.
예 18에서, 예 17의 주제는, 동작들이 저장 디바이스에서의 저장 기입들에 관한 정보에 대한 요청을 저장 디바이스에 전송하는 동작; 및 저장 기입들에 관한 정보를 저장 디바이스로부터 수신하는 동작을 더 포함하고, 수신된 정보가 현재 기입 증폭을 결정하기 위해 사용된다는 것을 임의로 포함할 수 있다.
예 19에서, 예 17 및 예 18의 주제는, 동작들은 사용자 인터페이스에서 오퍼레이터가 스페어 공간에 대한 결정된 조정을 수용하는 것을 나타낼 수 있게 하기 위해 그래픽 엘리먼트로 스페어 공간에 대한 결정된 조정에 관한 정보를 사용자 인터페이스에서 렌더링하는 동작; 및 스페어 공간에 대한 결정된 조정을 수용하기 위한 그래픽 엘리먼트의 선택의 표시를 수신하는 동작을 더 포함하고, 스페어 공간을 조정하기 위한 커맨드는 결정된 조정을 수용하기 위한 그래픽 엘리먼트의 선택의 표시를 수신하는 동작에 응답하여 저장 디바이스에 전송된다는 것을 임의로 포함할 수 있다.
예 20에서, 예 17 내지 예 19의 주제는, 커맨드를 전송하는 동작이 스페어 공간에 대한 조정을 파라미터로서 갖는 리사이즈 커맨드를 저장 디바이스에 전송하는 동작을 더 포함하고, 리사이즈 커맨드는 저장 디바이스로 하여금 리사이즈 커맨드의 파라미터에서의 스페어 공간에 대한 조정만큼 스페어 공간을 조정하기 위해 사용자에게 이용가능한 프리 공간 및 스페어 공간을 재구성하게 한다는 것을 임의로 포함할 수 있다.
예 21은 저장 디바이스에서의 매체에 대한 저장 기입들 및 호스트로부터 저장 디바이스로의 호스트 기입들에 기초하여 현재 기입 증폭을 결정하는 수단; 저장 디바이스의 추정된 수명, 저장 디바이스에 대한 최대 저장 기입들, 및 저장 디바이스가 파워-온된 이후의 저장 디바이스에서의 저장 기입들에 기초하여 조정된 기입 증폭을 생성하기 위해 현재 기입 증폭에 대한 조정을 결정하는 수단; 조정된 기입 증폭에 기초하여 스페어 공간에 대한 조정을 결정하는 수단 - 스페어 공간은 사용자 액세스가능한 스토리지를 포함하지 않는 오버프로비저닝된 저장 공간을 포함함 -; 및 스페어 공간에 대한 결정된 조정만큼 스페어 공간을 조정하기 위해 사용자에게 이용가능한 프리 공간 및 스페어 공간을 재구성하기 위해 동작을 개시하는 수단을 포함하는 장치이다.
예 22에서, 예 21의 주제는, 기입 증폭에 대한 조정을 결정하는 수단이 최대 저장 기입들 빼기 저장 기입들 및 추정된 수명 빼기 저장 디바이스의 파워-온 지속기간을 포함하는 나머지 지속기간의 함수로서 나머지 저장 기입 레이트를 결정하는 수단; 및 저장 기입들 및 파워-온 지속기간의 함수로서 현재 저장 기입 레이트를 결정하는 수단을 포함하고, 기입 증폭에 대한 조정이 나머지 저장 기입 레이트 및 현재 저장 기입 레이트로부터 결정된다는 것을 임의로 포함할 수 있다.
예 23에서, 예 21 및 예 22의 주제는, 나머지 저장 기입 레이트 및 현재 저장 기입 레이트로부터 기입 증폭에 대한 조정을 결정하는 수단이 현재 저장 기입 레이트에 적용될 때 나머지 저장 기입 레이트를 발생시키는 조정 팩터를 결정하는 것을 포함한다는 것을 임의로 포함할 수 있다.
예 24는 저장 디바이스에서의 매체에 대한 저장 기입들 및 호스트로부터 저장 디바이스로의 호스트 기입들에 기초하여 현재 기입 증폭을 결정하는 단계; 저장 디바이스의 추정된 수명, 저장 디바이스에 대한 최대 저장 기입들, 및 저장 디바이스가 파워-온된 이후의 저장 디바이스에서의 저장 기입들에 기초하여 조정된 기입 증폭을 생성하기 위해 현재 기입 증폭에 대한 조정을 결정하는 단계; 조정된 기입 증폭에 기초하여 스페어 공간에 대한 조정을 결정하는 단계 - 스페어 공간은 사용자 액세스가능한 스토리지를 포함하지 않는 오버프로비저닝된 저장 공간을 포함함 -; 및 스페어 공간에 대한 결정된 조정만큼 스페어 공간을 조정하기 위해 사용자에게 이용가능한 프리 공간 및 스페어 공간을 재구성하기 위해 동작을 개시하는 단계를 포함하는 방법이다.
예 25에서, 예 24의 주제는, 기입 증폭에 대한 조정을 결정하는 단계가 최대 저장 기입들 빼기 저장 기입들 및 추정된 수명 빼기 저장 디바이스의 파워-온 지속기간을 포함하는 나머지 지속기간의 함수로서 나머지 저장 기입 레이트를 결정하는 단계; 및 저장 기입들 및 파워-온 지속기간의 함수로서 현재 저장 기입 레이트를 결정하는 단계를 포함하고, 기입 증폭에 대한 조정이 나머지 저장 기입 레이트 및 현재 저장 기입 레이트로부터 결정된다는 것을 임의로 포함할 수 있다.
예 26에서, 예 24 및 예 25의 주제는, 나머지 저장 기입 레이트 및 현재 저장 기입 레이트로부터 기입 증폭에 대한 조정을 결정하는 단계가 현재 저장 기입 레이트에 적용될 때 나머지 저장 기입 레이트를 발생시키는 조정 팩터를 결정하는 단계를 포함한다는 것을 임의로 포함할 수 있다.
예 27에서, 예 24 내지 예 26의 주제는, 조정 팩터가 현재 저장 기입 레이트에 대한 증가를 나타내고, 결정된 조정이 스페어 공간에서의 감소를 야기하는 현재 기입 증폭에 대한 증가를 나타내며, 조정 팩터가 현재 기입 레이트에 대한 감소를 나타낼 때, 결정된 조정은 스페어 공간에서의 증가를 야기하는 현재 기입 증폭에 대한 감소를 나타낸다는 것을 임의로 포함할 수 있다.
예 28에서, 예 24 내지 예 27의 주제는, 스페어 공간에 대한 결정된 조정이 조정된 기입 증폭에 적용된 기입 증폭에 대한 스페어 공간의 기입 증폭 함수로부터 발생한다는 것을 임의로 포함할 수 있다.
예 29에서, 예 24 내지 예 28의 주제는 저장 디바이스에서의 현재 워크로드에 기초하여 저장 디바이스에서의 상이한 워크로드들에 대해 제공된 복수의 기입 증폭 함수들 중 하나를 결정하는 단계를 임의로 포함할 수 있고, 결정된 기입 증폭 함수는 조정된 기입 증폭에 적용된다.
예 30에서, 예 24 내지 예 29의 주제는, 조정된 기입 증폭을 획득하기 위해 기입 증폭 함수 및 저장 디바이스에서의 현재 스페어 공간 사용에 따라 기입 증폭에 조정 팩터를 적용하는 단계; 및 기입 증폭 함수 및 조정된 기입 증폭에 따라 대응하는 타겟 스페어 공간을 결정하는 단계를 임의로 포함할 수 있다.
예 31에서, 예 24 내지 예 30의 주제는, 방법이 저장 디바이스와 통신하는 호스트 시스템에서 수행되고, 호스트 시스템은 저장 디바이스에서의 저장 기입들에 관한 정보에 대한 요청을 저장 디바이스에 전송하는 것; 저장 기입들에 관한 정보를 저장 디바이스로부터 수신하는 것을 더 수행하고, 수신된 정보는 현재 기입 증폭을 결정하기 위해 사용되고, 스페어 공간을 재구성하기 위해 동작을 개시하는 단계는 저장 디바이스에서 프로비저닝된 스페어 공간의 양을 조정하기 위해 스페어 공간에 대한 결정된 조정만큼 스페어 공간을 조정하기 위한 커맨드를 저장 디바이스에 전송하는 단계를 포함한다는 것을 임의로 포함할 수 있다.
예 32에서, 예 24 내지 예 31의 주제는, 사용자 인터페이스에서 오퍼레이터가 스페어 공간에 대한 결정된 조정을 수용하는 것을 나타낼 수 있게 하기 위해 그래픽 엘리먼트로 스페어 공간에 대한 결정된 조정에 관한 정보를 사용자 인터페이스에서 렌더링하는 단계; 및 스페어 공간에 대한 결정된 조정을 수용하기 위한 그래픽 엘리먼트의 선택의 표시를 수신하는 단계를 임의로 포함할 수 있고, 스페어 공간을 조정하기 위한 커맨드는 결정된 조정을 수용하기 위한 그래픽 엘리먼트의 선택의 표시를 수신하는 단계에 응답하여 저장 디바이스에 전송된다.
예 33에서, 예 24 내지 예 32의 주제는, 방법이 저장 디바이스 내에 인클로징된 저장 디바이스의 제어기에서 구현된다는 것을 임의로 포함할 수 있다.
예 34에서, 예 24 내지 예 33의 주제는, 호스트 시스템이 저장 디바이스와 통신하고, 호스트 시스템에 의해, 스페어 공간에 대한 조정을 파라미터로서 갖는 리사이즈 커맨드를 저장 디바이스에 전송하는 단계; 및 저장 디바이스에 의해, 리사이즈 커맨드의 파라미터에서 스페어 공간에 대한 조정만큼 스페어 공간을 조정하기 위해 사용자에 대해 이용가능한 프리 공간 및 스페어 공간을 재구성하기 위해 리사이즈 커맨드를 프로세싱하는 단계를 더 포함한다는 것을 임의로 포함할 수 있다.
예 35에서, 예 24 내지 예 34의 주제는, 저장 디바이스가 NAND 메모리 셀들을 갖는 고체 상태 저장 디바이스를 포함하고, 스페어 공간이 미사용 페이지들을 갖는 NAND 메모리 셀들에서의 블록들의 액티브 데이터의 페이지들을 더 적은 블록들로 통합하기 위한 가비지 컬렉션을 수행하기 위해 사용된다는 것을 임의로 포함할 수 있다.
예 36은 실행될 때, 머신으로 하여금 제24항 내지 제35항 중 어느 한 항의 방법을 수행하게 하는 코드를 포함하는 머신 판독가능 매체이다.
예 37에서, 예 24의 주제는 다음 중 적어도 하나의 단계를 임의로 포함할 수 있다:
(1) 기입 증폭에 대한 조정을 결정하는 단계가 최대 저장 기입들 빼기 저장 기입들 및 추정된 수명 빼기 저장 디바이스의 파워-온 지속기간을 포함하는 나머지 지속기간의 함수로서 나머지 저장 기입 레이트를 결정하는 단계; 및 저장 기입들 및 파워-온 지속기간의 함수로서 현재 저장 기입 레이트를 결정하는 단계를 포함하고, 기입 증폭에 대한 조정이 나머지 저장 기입 레이트 및 현재 저장 기입 레이트로부터 결정된다는 것; 및/또는
(2) 나머지 저장 기입 레이트 및 현재 저장 기입 레이트로부터 기입 증폭에 대한 조정을 결정하는 단계는 현재 저장 기입 레이트에 적용될 때 나머지 저장 기입 레이트를 발생시키는 조정 팩터를 결정하는 단계를 포함한다는 것; 및/또는
(3) 조정 팩터가 현재 저장 기입 레이트에 대한 증가를 나타내고, 결정된 조정이 스페어 공간에서의 감소를 야기하는 현재 기입 증폭에 대한 증가를 나타내며, 조정 팩터가 현재 기입 레이트에 대한 감소를 나타낼 때, 결정된 조정은 스페어 공간에서의 증가를 야기하는 현재 기입 증폭에 대한 감소를 나타낸다는 것; 및/또는
(4) 스페어 공간에 대한 결정된 조정은 조정된 기입 증폭에 적용된 기입 증폭에 대한 스페어 공간의 기입 증폭 함수로부터 발생한다는 것; 및/또는
(5) 저장 디바이스에서의 현재 워크로드에 기초하여 저장 디바이스에서의 상이한 워크로드들에 대해 제공된 복수의 기입 증폭 함수들 중 하나를 결정하는 단계 - 결정된 기입 증폭 함수는 조정된 기입 증폭에 적용됨 -; 및/또는
(6) 조정된 기입 증폭을 획득하기 위해 기입 증폭 함수 및 저장 디바이스에서의 현재 스페어 공간 사용에 따라 기입 증폭에 조정 팩터를 적용하는 단계; 및 기입 증폭 함수 및 조정된 기입 증폭에 따라 대응하는 타겟 스페어 공간을 결정하는 단계; 및/또는
(7) 방법은 저장 디바이스와 통신하는 호스트 시스템에서 수행되고, 호스트 시스템에서 방법은 저장 디바이스에서 저장 기입들에 관한 정보에 대한 요청을 저장 디바이스에 전송하는 단계; 저장 기입들에 관한 정보를 저장 디바이스로부터 수신하는 단계를 더 수행하고, 수신된 정보는 현재 기입 증폭을 결정하기 위해 사용되고, 스페어 공간을 재구성하기 위해 동작을 개시하는 단계는 저장 디바이스에서 프로비저닝된 스페어 공간의 양을 조정하기 위해 스페어 공간에 대한 결정된 조정만큼 스페어 공간을 조정하기 위한 커맨드를 저장 디바이스에 전송하는 단계를 포함한다는 것; 및/또는
(8) 사용자 인터페이스에서 오퍼레이터가 스페어 공간에 대한 결정된 조정을 수용하는 것을 나타낼 수 있게 하기 위해 그래픽 엘리먼트로 스페어 공간에 대한 결정된 조정에 관한 정보를 사용자 인터페이스에서 렌더링하는 단계; 및 스페어 공간에 대한 결정된 조정을 수용하기 위한 그래픽 엘리먼트의 선택의 표시를 수신하는 단계 - 스페어 공간을 조정하기 위한 커맨드는 결정된 조정을 수용하기 위한 그래픽 엘리먼트의 선택의 표시를 수신하는 것에 응답하여 저장 디바이스에 전송됨 -; 및/또는
(9) 방법은 저장 디바이스 내에 인클로징된 저장 디바이스의 제어기에서 구현되는 것; 및/또는
(10) 호스트 시스템이 저장 디바이스와 통신하고, 호스트 시스템에 의해, 스페어 공간에 대한 조정을 파라미터로서 갖는 리사이즈 커맨드를 저장 디바이스에 전송하는 단계; 및 저장 디바이스에 의해, 리사이즈 커맨드의 파라미터에서 스페어 공간에 대한 조정만큼 스페어 공간을 조정하기 위해 사용자에 대해 이용가능한 프리 공간 및 스페어 공간을 재구성하기 위해 리사이즈 커맨드를 프로세싱하는 단계를 더 포함하는 것; 및/또는
(11) 청구항 제1항의 방법으로서, 저장 디바이스가 NAND 메모리 셀들을 갖는 고체 상태 저장 디바이스를 포함하고, 스페어 공간이 미사용 페이지들을 갖는 NAND 메모리 셀들에서의 블록들의 액티브 데이터의 페이지들을 더 적은 블록들로 통합하기 위한 가비지 컬렉션을 수행하기 위해 사용되는 것.
예 38은 청구항 제24항 내지 제37항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는 장치이다.
예 39는 실행될 때, 청구항 제24항 내지 37항 중 어느 한 항의 방법을 구현하거나 장치 또는 시스템을 실현하기 위한 머신-판독가능 명령어들을 포함하는 머신-판독가능 스토리지이다.
Claims (29)
- 저장 디바이스에서의 가비지 컬렉션 동작들을 위하여 페이지들을 통합하기 위해 이용가능하고 사용자에 대해 이용불가능한 스페어 공간을 관리하는 장치로서,
상기 저장 디바이스의 추정된 수명에 도달할 수 있도록 상기 저장 디바이스에서 허용된 나머지 기입들의 나머지 저장 기입 레이트를 야기하도록 하는 현재 저장 기입 레이트에 대한 조정 팩터를 결정하고;
상기 조정 팩터에 기초하여 상기 스페어 공간에 대한 조정을 결정하고;
상기 스페어 공간에서의 블록들을 프리 공간 블록들로 변환하는 것과 사용자에게 이용가능한 프리 공간에서의 복수의 블록들을 스페어 공간 블록들로 변환하는 것 중 하나를 수행하는 상기 스페어 공간에 대한 상기 조정에 의해 상기 스페어 공간을 조정하여 상기 스페어 공간과 상기 프리 공간을 재구성하는, 장치. - 제1항에 있어서, 상기 장치는 추가로:
상기 저장 디바이스에서의 성능을 최적화하는 상이한 기입 증폭들에 대한 스페어 공간 퍼센티지들을 제공하는 기입 증폭 함수를 유지하고;
상기 저장 디바이스에서 허용된 나머지 기입들의 상기 나머지 저장 기입 레이트를 결정하고;
상기 조정 팩터를 현재 기입 증폭에 적용하여 조정된 기입 증폭을 결정하고;
상기 기입 증폭 함수로부터 상기 조정된 기입 증폭을 위하여 스페어 공간에 대한 상기 조정을 결정하고;
상기 스페어 공간은 사용자 액세스가능한 스토리지를 포함하지 않는 오버프로비저닝된(overprovisioned) 저장 공간을 포함하는, 장치. - 제2항에 있어서,
상기 나머지 저장 기입 레이트는 최대 저장 기입들 빼기 저장 기입들 및 추정된 수명 빼기 상기 저장 디바이스의 파워-온 지속기간을 포함하는 나머지 지속기간의 함수로서 결정되고, 상기 현재 저장 기입 레이트는 상기 저장 기입들 및 상기 파워-온 지속기간의 함수로서 결정되는, 장치. - 제2항에 있어서,
상기 조정 팩터가 상기 현재 저장 기입 레이트에 대한 증가를 나타낼 때, 스페어 공간에 대한 상기 조정은 상기 스페어 공간에서의 감소를 야기하는 상기 현재 기입 증폭에 대한 증가를 나타내며, 상기 조정 팩터가 상기 현재 저장 기입 레이트에 대한 감소를 나타낼 때, 스페어 공간에 대한 상기 조정은 상기 스페어 공간에서의 증가를 야기하는 상기 현재 기입 증폭에 대한 감소를 나타내는, 장치. - 제2항에 있어서, 상기 장치는 추가로:
상기 저장 디바이스에서의 상이한 워크로드들에 대한 복수의 기입 증폭 함수들을 유지하고;
상기 스페어 공간에 대한 상기 조정을 결정하기 위해, 상기 저장 디바이스에서의 현재 워크로드에 기초하여 상기 복수의 기입 증폭 함수들 중에서 하나를 결정하는, 장치. - 제2항에 있어서,
상기 장치는 상기 저장 디바이스 내에 인클로징된, 상기 저장 디바이스의 제어기에서 구현되고, 상기 장치의 동작들을 수행하는 프로그램 명령어들이 상기 제어기에서 실행되는, 장치. - 제2항에 있어서,
상기 저장 디바이스는 NAND 메모리 셀들을 갖는 고체 상태 저장 디바이스를 포함하고, 상기 스페어 공간이 미사용 페이지들을 갖는 상기 NAND 메모리 셀들에서의 블록들의 액티브 데이터의 페이지들을 더 적은 블록들로 통합하기 위한 가비지 컬렉션을 수행하기 위해 사용되는, 장치. - 저장 디바이스에서의 가비지 컬렉션 동작들을 위하여 페이지들을 통합하기 위해 이용가능하고 사용자에 대해 이용불가능한 스페어 공간을 관리하기 위해 상기 저장 디바이스와 통신하는 시스템으로서,
상기 저장 디바이스의 추정된 수명에 도달할 수 있도록 상기 저장 디바이스에서 허용된 나머지 기입들의 나머지 저장 기입 레이트를 야기하도록 하는 현재 저장 기입 레이트에 대한 조정 팩터를 결정하고;
상기 조정 팩터에 기초하여 상기 스페어 공간에 대한 조정을 결정하고;
상기 스페어 공간에서의 블록들을 프리 공간 블록들로 변환하는 것과 사용자에게 이용가능한 프리 공간에서의 복수의 블록들을 스페어 공간 블록들로 변환하는 것 중 하나를 수행하는 상기 스페어 공간에 대한 상기 조정에 의해 상기 스페어 공간을 조정하여 상기 스페어 공간과 상기 프리 공간을 재구성하도록, 메모리 디바이스 내의 컴퓨터 명령어들을 수행하기 위한 프로세서를 포함하는, 시스템. - 제8항에 있어서, 상기 프로세서는 추가로:
상기 저장 디바이스에서의 성능을 최적화하는 상이한 기입 증폭들에 대한 스페어 공간 퍼센티지들을 제공하는 기입 증폭 함수를 유지하고;
상기 저장 디바이스에서 허용된 나머지 기입들의 상기 나머지 저장 기입 레이트를 결정하고;
상기 조정 팩터를 현재 기입 증폭에 적용하여 조정된 기입 증폭을 결정하고;
상기 기입 증폭 함수로부터 상기 조정된 기입 증폭을 위한 스페어 공간에 대한 상기 조정을 결정하고 - 상기 스페어 공간은 사용자 액세스가능한 스토리지를 포함하지 않는 오버프로비저닝된 저장 공간을 포함함 -;
상기 조정된 기입 증폭을 위한 상기 스페어 공간에 대한 상기 조정을 파라미터로서 갖는 리사이즈 커맨드를 상기 저장 디바이스에 전송하며, 상기 리사이즈 커맨드는 상기 저장 디바이스로 하여금 상기 리사이즈 커맨드의 상기 파라미터 내의 상기 스페어 공간에 대한 상기 조정만큼 상기 스페어 공간 및 사용자에게 이용가능한 프리공간을 재구성하게 하는, 시스템. - 제9항에 있어서,
상기 나머지 저장 기입 레이트는 최대 저장 기입들 빼기 저장 기입들 및 추정된 수명 빼기 상기 저장 디바이스의 파워-온 지속기간을 포함하는 나머지 지속기간의 함수로서 결정되고, 상기 현재 저장 기입 레이트는 상기 저장 기입들 및 상기 파워-온 지속기간의 함수로서 결정되는, 시스템. - 제9항에 있어서,
상기 조정 팩터가 상기 현재 저장 기입 레이트에 대한 증가를 나타낼 때, 스페어 공간에 대한 상기 조정은 상기 스페어 공간에서의 감소를 야기하는 상기 현재 기입 증폭에 대한 증가를 나타내며, 상기 조정 팩터가 상기 현재 저장 기입 레이트에 대한 감소를 나타낼 때, 스페어 공간에 대한 상기 조정은 상기 스페어 공간에서의 증가를 야기하는 상기 현재 기입 증폭에 대한 감소를 나타내는, 시스템. - 제9항에 있어서, 상기 프로세서는 추가로:
상기 저장 디바이스에서의 상이한 워크로드들에 대한 복수의 기입 증폭 함수들을 유지하고;
상기 스페어 공간에 대한 상기 조정을 결정하기 위해, 상기 저장 디바이스에서의 현재 워크로드에 기초하여 상기 복수의 기입 증폭 함수들 중에서 하나를 결정하는, 시스템. - 제9항에 있어서,
상기 저장 디바이스는 NAND 메모리 셀들을 갖는 고체 상태 저장 디바이스를 포함하고, 상기 스페어 공간이 미사용 페이지들을 갖는 상기 NAND 메모리 셀들에서의 블록들의 액티브 데이터의 페이지들을 더 적은 블록들로 통합하기 위한 가비지 컬렉션을 수행하기 위해 사용되는, 시스템. - 제9항에 있어서, 상기 프로세서는 추가로:
상기 저장 디바이스에서의 저장 기입들에 관한 정보에 대한 요청을 상기 저장 디바이스로 전송하고;
상기 저장 기입들에 관한 상기 정보를 상기 저장 디바이스로부터 수신하며, 상기 정보는 상기 현재 기입 증폭을 결정하는데 사용되는, 시스템. - 제14항에 있어서, 상기 프로세서는 추가로:
사용자 인터페이스에서 오퍼레이터가 스페어 공간에 대한 상기 조정을 수용하는 것을 나타낼 수 있게 하기 위해 그래픽 엘리먼트로 스페어 공간에 대한 상기 조정에 관한 정보를 상기 사용자 인터페이스에 렌더링하고;
스페어 공간에 대한 상기 조정을 수용하기 위한 상기 그래픽 엘리먼트에 대한 선택의 표시를 수신하고, 스페어 공간에 대한 상기 조정을 수용하기 위한 상기 그래픽 엘리먼트에 대한 상기 선택의 상기 표시를 수신하는 것에 응답하여 상기 스페어 공간을 조정하는 상기 리사이즈 커맨드가 상기 저장 디바이스로 전송되는, 시스템. - 저장 디바이스에서의 가비지 컬렉션 동작들을 위하여 페이지들을 통합하기 위해 이용가능하고 사용자에 대해 이용불가능한 스페어 공간을 관리하는 시스템으로서,
프로세서와, 상기 프로세서에 의해 실행되는 컴퓨터 명령어들을 갖는 메모리를 포함하는 호스트;
저장 디바이스; 및
상기 호스트와 상기 저장 디바이스 중 하나에서 구현되는 스페어 공간 조정 모듈을 포함하고,
상기 스페어 공간 조정 모듈은:
상기 저장 디바이스의 추정된 수명에 도달할 수 있도록 상기 저장 디바이스에서 허용된 나머지 기입들의 나머지 저장 기입 레이트를 야기하도록 하는 현재 저장 기입 레이트에 대한 조정 팩터를 결정하고;
상기 조정 팩터에 기초하여 상기 스페어 공간에 대한 조정을 결정하고;
상기 스페어 공간에서의 블록들을 프리 공간 블록들로 변환하는 것과 사용자에게 이용가능한 프리 공간에서의 복수의 블록들을 스페어 공간 블록들로 변환하는 것 중 하나를 수행하는 상기 스페어 공간에 대한 상기 조정에 의해 상기 스페어 공간을 조정하여 상기 스페어 공간과 상기 프리 공간을 재구성하는, 시스템. - 제16항에 있어서, 상기 스페어 공간 조정 모듈은 추가로:
상기 저장 디바이스에서의 성능을 최적화하는 상이한 기입 증폭들에 대한 스페어 공간 퍼센티지들을 제공하는 기입 증폭 함수를 유지하고,
상기 저장 디바이스에서 허용된 나머지 기입들의 상기 나머지 저장 기입 레이트를 결정하고,
상기 조정 팩터를 현재 기입 증폭에 적용하여 조정된 기입 증폭을 결정하고,
상기 기입 증폭 함수로부터 상기 조정된 기입 증폭을 위한 스페어 공간에 대한 상기 조정을 결정하고,
상기 스페어 공간은 사용자 액세스가능한 스토리지를 포함하지 않는 오버프로비저닝된 저장 공간을 포함하는, 시스템. - 제17항에 있어서,
상기 나머지 저장 기입 레이트는 최대 저장 기입들 빼기 저장 기입들 및 추정된 수명 빼기 상기 저장 디바이스의 파워-온 지속기간을 포함하는 나머지 지속기간의 함수로서 결정되고, 상기 현재 저장 기입 레이트는 상기 저장 기입들 및 상기 파워-온 지속기간의 함수로서 결정되는, 시스템. - 제17항에 있어서,
상기 조정 팩터가 상기 현재 저장 기입 레이트에 대한 증가를 나타낼 때, 스페어 공간에 대한 상기 조정은 상기 스페어 공간에서의 감소를 야기하는 상기 현재 기입 증폭에 대한 증가를 나타내며, 상기 조정 팩터가 상기 현재 저장 기입 레이트에 대한 감소를 나타낼 때, 스페어 공간에 대한 상기 조정은 상기 스페어 공간에서의 증가를 야기하는 상기 현재 기입 증폭에 대한 감소를 나타내는, 시스템. - 제17항에 있어서, 상기 스페어 공간 조정 모듈은 추가로:
상기 저장 디바이스에서의 상이한 워크로드들에 대한 복수의 기입 증폭 함수들을 유지하고;
상기 스페어 공간에 대한 상기 조정을 결정하기 위해, 상기 저장 디바이스에서의 현재 워크로드에 기초하여 상기 복수의 기입 증폭 함수들 중에서 하나를 결정하는, 시스템. - 제17항에 있어서,
상기 저장 디바이스는 NAND 메모리 셀들을 갖는 고체 상태 저장 디바이스를 포함하고, 상기 스페어 공간이 미사용 페이지들을 갖는 상기 NAND 메모리 셀들에서의 블록들의 액티브 데이터의 페이지들을 더 적은 블록들로 통합하기 위한 가비지 컬렉션을 수행하기 위해 사용되는, 시스템. - 제17항에 있어서,
상기 스페어 공간 조정 모듈은 상기 호스트에서 구현되고 추가로:
상기 저장 디바이스에서의 저장 기입들에 관한 정보에 대한 요청을 상기 저장 디바이스로 전송하고;
상기 저장 기입들에 관한 상기 정보를 상기 저장 디바이스로부터 수신하며, 상기 정보는 상기 현재 기입 증폭을 결정하는데 사용되는, 시스템. - 제22항에 있어서,
상기 호스트에서의 상기 스페어 공간 조정 모듈은 추가로:
사용자 인터페이스에서 오퍼레이터가 스페어 공간에 대한 상기 조정을 수용하는 것을 나타낼 수 있게 하기 위해 그래픽 엘리먼트로 스페어 공간에 대한 상기 조정에 관한 정보를 상기 사용자 인터페이스에 렌더링하고;
스페어 공간에 대한 상기 조정을 수용하기 위한 상기 그래픽 엘리먼트에 대한 선택의 표시를 수신하고;
스페어 공간에 대한 상기 조정을 수용하기 위한 상기 그래픽 엘리먼트에 대한 상기 선택의 상기 표시를 수신하는 것에 응답하여 상기 스페어 공간을 조정하는 커맨드를 상기 저장 디바이스로 전송하는, 시스템. - 제17항에 있어서, 상기 호스트는 추가로:
상기 조정된 기입 증폭을 위한 상기 스페어 공간에 대한 상기 조정을 파라미터로서 갖는 리사이즈 커맨드를 상기 저장 디바이스에 전송하며, 상기 리사이즈 커맨드는 상기 저장 디바이스로 하여금 상기 리사이즈 커맨드의 상기 파라미터 내의 상기 스페어 공간에 대한 상기 조정만큼 상기 스페어 공간 및 사용자에게 이용가능한 프리공간을 재구성하게 하는, 시스템. - 저장 디바이스에서의 가비지 컬렉션 동작들을 위하여 페이지들을 통합하기 위해 이용가능하고 사용자에 대해 이용불가능한 스페어 공간을 관리하는 방법로서,
상기 저장 디바이스의 추정된 수명에 도달할 수 있도록 상기 저장 디바이스에서 허용된 나머지 기입들의 나머지 저장 기입 레이트를 야기하도록 하는 현재 저장 기입 레이트에 대한 조정 팩터를 결정하는 단계;
상기 조정 팩터에 기초하여 상기 스페어 공간에 대한 조정을 결정하는 단계; 및
상기 스페어 공간에서의 블록들을 프리 공간 블록들로 변환하는 것과 사용자에게 이용가능한 프리 공간에서의 복수의 블록들을 스페어 공간 블록들로 변환하는 것 중 하나를 수행하는 상기 스페어 공간에 대한 상기 조정에 의해 상기 스페어 공간을 조정하여 상기 스페어 공간과 상기 프리 공간을 재구성하는 단계
를 포함하는, 방법. - 제25항에 있어서, 상기 방법은 추가로:
상기 저장 디바이스에서의 성능을 최적화하는 상이한 기입 증폭들에 대한 스페어 공간 퍼센티지들을 제공하는 기입 증폭 함수를 유지하는 단계;
상기 저장 디바이스에서 허용된 나머지 기입들의 상기 나머지 저장 기입 레이트를 결정하는 단계;
상기 조정 팩터를 현재 기입 증폭에 적용하여 조정된 기입 증폭을 결정하는 단계; 및
상기 기입 증폭 함수로부터 상기 조정된 기입 증폭을 위하여 스페어 공간에 대한 상기 조정을 결정하는 단계를 포함하고,
상기 스페어 공간은 사용자 액세스가능한 스토리지를 포함하지 않는 오버프로비저닝된 저장 공간을 포함하는, 방법. - 제26항에 있어서,
상기 나머지 저장 기입 레이트를 결정하는 단계는, 최대 저장 기입들 빼기 저장 기입들 및 추정된 수명 빼기 상기 저장 디바이스의 파워-온 지속기간을 포함하는 나머지 지속기간의 함수로서 결정되고, 상기 현재 저장 기입 레이트는 상기 저장 기입들 및 상기 파워-온 지속기간의 함수로서 결정되는, 방법. - 제26항에 있어서,
상기 조정 팩터가 상기 현재 저장 기입 레이트에 대한 증가를 나타낼 때, 스페어 공간에 대한 상기 조정은 상기 스페어 공간에서의 감소를 야기하는 상기 현재 기입 증폭에 대한 증가를 나타내며, 상기 조정 팩터가 상기 현재 저장 기입 레이트에 대한 감소를 나타낼 때, 스페어 공간에 대한 상기 조정은 상기 스페어 공간에서의 증가를 야기하는 상기 현재 기입 증폭에 대한 감소를 나타내는, 방법. - 제26항에 있어서, 상기 방법은 추가로:
상기 저장 디바이스에서의 상이한 워크로드들에 대한 복수의 기입 증폭 함수들을 유지하는 단계; 및
상기 스페어 공간에 대한 상기 조정을 결정하기 위해, 상기 저장 디바이스에서의 현재 워크로드에 기초하여 상기 복수의 기입 증폭 함수들 중에서 하나를 결정하는 단계를 포함하는, 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020237031326A KR20230135172A (ko) | 2014-12-09 | 2015-11-09 | 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/565,352 US9678677B2 (en) | 2014-12-09 | 2014-12-09 | Determining adjustments to the spare space in a storage device unavailable to a user based on a current consumption profile of a storage device |
US14/565,352 | 2014-12-09 | ||
KR1020177012631A KR102462407B1 (ko) | 2014-12-09 | 2015-11-09 | 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정 |
PCT/US2015/059793 WO2016094004A1 (en) | 2014-12-09 | 2015-11-09 | Determining adjustments to the spare space in a storage device unavailable to a user based on a current consumption profile of a storage device |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177012631A Division KR102462407B1 (ko) | 2014-12-09 | 2015-11-09 | 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237031326A Division KR20230135172A (ko) | 2014-12-09 | 2015-11-09 | 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220151227A KR20220151227A (ko) | 2022-11-14 |
KR102579790B1 true KR102579790B1 (ko) | 2023-09-19 |
Family
ID=56094368
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237031326A KR20230135172A (ko) | 2014-12-09 | 2015-11-09 | 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정 |
KR1020227037936A KR102579790B1 (ko) | 2014-12-09 | 2015-11-09 | 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정 |
KR1020177012631A KR102462407B1 (ko) | 2014-12-09 | 2015-11-09 | 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237031326A KR20230135172A (ko) | 2014-12-09 | 2015-11-09 | 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177012631A KR102462407B1 (ko) | 2014-12-09 | 2015-11-09 | 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9678677B2 (ko) |
EP (1) | EP3230871B1 (ko) |
KR (3) | KR20230135172A (ko) |
CN (1) | CN107148613B (ko) |
TW (1) | TWI585585B (ko) |
WO (1) | WO2016094004A1 (ko) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US11086775B2 (en) * | 2014-12-11 | 2021-08-10 | Toshiba Memory Corporation | Information processing device, non-transitory computer readable recording medium, and information processing system |
US9747177B2 (en) | 2014-12-30 | 2017-08-29 | International Business Machines Corporation | Data storage system employing a hot spare to store and service accesses to data having lower associated wear |
US10545684B2 (en) * | 2015-05-13 | 2020-01-28 | Hitachi, Ltd. | Storage device |
TWI563507B (en) * | 2015-07-01 | 2016-12-21 | Phison Electronics Corp | Memory management method, memory control circuit unit and memry storage apparatus |
US9678684B2 (en) * | 2015-10-07 | 2017-06-13 | Sandisk Technologies Llc | Systems and methods for performing an adaptive sustain write in a memory system |
US9804787B2 (en) * | 2015-11-03 | 2017-10-31 | Samsung Electronics Co., Ltd. | Mitigating GC effect in a raid configuration |
US10140034B2 (en) * | 2015-11-24 | 2018-11-27 | International Business Machines Corporation | Solid-state drive assignment based on solid-state drive write endurance |
JP6448571B2 (ja) | 2016-03-08 | 2019-01-09 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
US10289317B2 (en) * | 2016-12-31 | 2019-05-14 | Western Digital Technologies, Inc. | Memory apparatus and methods thereof for write amplification aware wear leveling |
US10120578B2 (en) | 2017-01-19 | 2018-11-06 | International Business Machines Corporation | Storage optimization for write-in-free-space workloads |
JP6765322B2 (ja) * | 2017-02-28 | 2020-10-07 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP2018151776A (ja) * | 2017-03-10 | 2018-09-27 | キヤノン株式会社 | 情報処理装置とその制御方法、及びプログラム |
US10452536B2 (en) * | 2017-06-12 | 2019-10-22 | Western Digital Technologies, Inc. | Dynamic management of garbage collection and overprovisioning for host stream storage |
US20190042142A1 (en) * | 2017-12-29 | 2019-02-07 | Intel Corporation | Statistics and priority-based control for storage device |
US11023352B2 (en) * | 2018-01-19 | 2021-06-01 | Seagate Technology Llc | Wear mitigation in a data storage system through data migration |
US11132133B2 (en) * | 2018-03-08 | 2021-09-28 | Toshiba Memory Corporation | Workload-adaptive overprovisioning in solid state storage drive arrays |
KR102545229B1 (ko) * | 2018-05-04 | 2023-06-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US10795810B2 (en) * | 2018-09-10 | 2020-10-06 | Micron Technology, Inc. | Wear-leveling scheme for memory subsystems |
US10795576B2 (en) * | 2018-11-01 | 2020-10-06 | Micron Technology, Inc. | Data relocation in memory |
KR20200068147A (ko) | 2018-12-04 | 2020-06-15 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US10963332B2 (en) * | 2018-12-17 | 2021-03-30 | Western Digital Technologies, Inc. | Data storage systems and methods for autonomously adapting data storage system performance, capacity and/or operational requirements |
KR102202107B1 (ko) * | 2018-12-28 | 2021-01-12 | (주)글루시스 | 사용자 개별 서비스 환경을 위한 스토리지 장치 제어 방법 및 스토리지 컨트롤러 |
US11054993B2 (en) | 2019-05-28 | 2021-07-06 | Intel Corporation | Mass storage system having peer-to-peer data movements between a cache and a backend store |
CN110308876B (zh) * | 2019-07-01 | 2024-05-17 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
US11662943B2 (en) * | 2020-06-16 | 2023-05-30 | Micron Technology, Inc. | Adjustable media management |
KR20230023477A (ko) | 2021-08-10 | 2023-02-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130007380A1 (en) * | 2011-06-30 | 2013-01-03 | Seagate Technology Llc | Limiting activity rates that impact life of a data storage media |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3809870B2 (ja) | 2003-07-25 | 2006-08-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 容量変更プログラムとその記録媒体、容量変更方法、及び容量変更機能を有する情報処理装置 |
US7681007B2 (en) * | 2004-04-15 | 2010-03-16 | Broadcom Corporation | Automatic expansion of hard disk drive capacity in a storage device |
CN101646994B (zh) * | 2006-12-06 | 2016-06-15 | 才智知识产权控股公司(2) | 利用内存库交错管理固态存储器的命令的装置、系统及方法 |
US9183133B2 (en) | 2007-11-28 | 2015-11-10 | Seagate Technology Llc | System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory |
US8554983B2 (en) | 2008-05-27 | 2013-10-08 | Micron Technology, Inc. | Devices and methods for operating a solid state drive |
US8412880B2 (en) * | 2009-01-08 | 2013-04-02 | Micron Technology, Inc. | Memory system controller to manage wear leveling across a plurality of storage nodes |
US8412909B2 (en) | 2009-04-08 | 2013-04-02 | Samsung Electronics Co., Ltd. | Defining and changing spare space and user space in a storage apparatus |
US8712751B2 (en) | 2009-05-08 | 2014-04-29 | Qualcomm Incorporated | System and method of verification of analog circuits |
US8291131B2 (en) * | 2009-07-06 | 2012-10-16 | Micron Technology, Inc. | Data transfer management |
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 |
US9021185B2 (en) * | 2009-11-23 | 2015-04-28 | Amir Ban | Memory controller and methods for enhancing write performance of a flash device |
EP2715510B1 (en) | 2011-05-24 | 2018-05-02 | Marvell World Trade Ltd. | Method for storage devices to achieve low write amplification with low over provision |
KR20130007380A (ko) * | 2011-07-01 | 2013-01-18 | 주식회사 케이티 | 네트워크 폭주/과부하 상태에서 mtc 디바이스의 트리거를 수행하는 방법 및 장치 |
US8762798B2 (en) * | 2011-11-16 | 2014-06-24 | Stec, Inc. | Dynamic LDPC code rate solution |
US20130185482A1 (en) * | 2012-01-18 | 2013-07-18 | Samsung Electronics Co., Ltd. | Memory system using a storage having firmware with a plurality of features |
US20130185487A1 (en) * | 2012-01-18 | 2013-07-18 | Samsung Electronics Co., Ltd | Memory system and mobile device including host and flash memory-based storage device |
US9251086B2 (en) * | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
CN103019615B (zh) * | 2012-07-19 | 2015-08-26 | 中国人民解放军国防科学技术大学 | 一种基于负载控制的提高闪存固态硬盘持久性方法 |
US8799561B2 (en) | 2012-07-27 | 2014-08-05 | International Business Machines Corporation | Valid page threshold based garbage collection for solid state drive |
KR20140031688A (ko) * | 2012-09-05 | 2014-03-13 | 삼성전자주식회사 | 스토리지 시스템을 위한 마모 관리 장치 및 방법 |
US9411718B2 (en) * | 2012-12-21 | 2016-08-09 | Seagate Technology Llc | Method to apply fine grain wear leveling and garbage collection |
US20140359198A1 (en) * | 2013-05-28 | 2014-12-04 | Apple Inc. | Notification of storage device performance to host |
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 |
-
2014
- 2014-12-09 US US14/565,352 patent/US9678677B2/en active Active
-
2015
- 2015-10-14 TW TW104133710A patent/TWI585585B/zh active
- 2015-11-09 KR KR1020237031326A patent/KR20230135172A/ko active Application Filing
- 2015-11-09 KR KR1020227037936A patent/KR102579790B1/ko active IP Right Grant
- 2015-11-09 WO PCT/US2015/059793 patent/WO2016094004A1/en active Application Filing
- 2015-11-09 KR KR1020177012631A patent/KR102462407B1/ko active IP Right Grant
- 2015-11-09 EP EP15866704.8A patent/EP3230871B1/en active Active
- 2015-11-09 CN CN201580060983.0A patent/CN107148613B/zh active Active
-
2017
- 2017-05-31 US US15/610,615 patent/US10180797B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130007380A1 (en) * | 2011-06-30 | 2013-01-03 | Seagate Technology Llc | Limiting activity rates that impact life of a data storage media |
Also Published As
Publication number | Publication date |
---|---|
US20160162205A1 (en) | 2016-06-09 |
CN107148613B (zh) | 2020-08-25 |
WO2016094004A1 (en) | 2016-06-16 |
EP3230871B1 (en) | 2020-12-09 |
TWI585585B (zh) | 2017-06-01 |
TW201633141A (zh) | 2016-09-16 |
KR20230135172A (ko) | 2023-09-22 |
KR102462407B1 (ko) | 2022-11-03 |
EP3230871A1 (en) | 2017-10-18 |
US10180797B2 (en) | 2019-01-15 |
KR20220151227A (ko) | 2022-11-14 |
EP3230871A4 (en) | 2018-07-25 |
KR20170092538A (ko) | 2017-08-11 |
US9678677B2 (en) | 2017-06-13 |
CN107148613A (zh) | 2017-09-08 |
US20170322739A1 (en) | 2017-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102579790B1 (ko) | 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정 | |
US11086537B2 (en) | Method and system to perform urgency level garbage collection based on write history of memory blocks | |
US10802733B2 (en) | Methods and apparatus for configuring storage tiers within SSDs | |
KR102098697B1 (ko) | 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법 | |
KR102098246B1 (ko) | 호스트, 저장 장치, 및 이를 포함하는 시스템의 동작 방법 | |
JP6694665B2 (ja) | ストレージシステムを再構成するための方法及び可変構造型ストレージシステム並びに可変構造型ストレージデバイス及びホスト | |
KR102435890B1 (ko) | 스토리지 장치의 어드레스 맵핑 방법 및 동작 방법 | |
US9396108B2 (en) | Data storage device capable of efficiently using a working memory device | |
CN111936961B (zh) | 基于性能目标对存储器系统的优化 | |
KR20200110547A (ko) | 스토리지 장치 및 스토리지 장치를 포함하는 컴퓨팅 장치 | |
US12073115B2 (en) | Resource allocation in memory systems based on operation modes | |
KR20150044655A (ko) | 데이터 저장 장치 | |
CN105354152A (zh) | 非易失性存储器及磨损均衡方法 | |
CN111309654A (zh) | 存储装置及操作存储装置的方法 | |
KR20170110810A (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
US20230004325A1 (en) | Data processing system and operating method thereof | |
KR102425470B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US8209450B2 (en) | Maintenance operations using configurable parameters | |
KR20210016201A (ko) | 스토리지 장치 및 그것의 동작 방법 | |
US11474735B2 (en) | Operation method of storage device, and operation method of storage system including host device and storage device | |
US20240354018A1 (en) | Storage system with bad blocks, and operating method thereof | |
KR102721567B1 (ko) | 마이그레이션 동작을 위한 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20240002004A (ko) | 워크로드 등급에 따른 파라미터 값을 최적화하기 위한 메모리 시스템 및 이를 포함하는 데이터 처리 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |