KR102422710B1 - 데이터 저장 디바이스 내에서의 액세스 동작들의 제한 - Google Patents

데이터 저장 디바이스 내에서의 액세스 동작들의 제한 Download PDF

Info

Publication number
KR102422710B1
KR102422710B1 KR1020170087992A KR20170087992A KR102422710B1 KR 102422710 B1 KR102422710 B1 KR 102422710B1 KR 1020170087992 A KR1020170087992 A KR 1020170087992A KR 20170087992 A KR20170087992 A KR 20170087992A KR 102422710 B1 KR102422710 B1 KR 102422710B1
Authority
KR
South Korea
Prior art keywords
data storage
data
cache
operations
storage device
Prior art date
Application number
KR1020170087992A
Other languages
English (en)
Other versions
KR20180007688A (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 KR20180007688A publication Critical patent/KR20180007688A/ko
Application granted granted Critical
Publication of KR102422710B1 publication Critical patent/KR102422710B1/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 명세서에 개시된 하이브리드 데이터 저장 디바이스는 메인 데이터 스토어, 하나 이상의 데이터 저장 캐시들, 및 데이터 저장 캐시 관리 서브시스템을 포함한다. 하이브리드 데이터 저장 디바이스는 하나 이상의 데이터 저장 캐시들 상에서의 기록 동작들을 데이터 저장 캐시에 대한 내구성 값보다 적게 제한하도록 구성된다. 일 구현예에서, 데이터 저장 캐시 관리 서브시스템은 메인 데이터 스토어로부터 하나 이상의 데이터 저장 캐시들로의 데이터의 프로모션에 대한 요청들을 제한 또는 거부한다. 다른 구현예에서, 데이터 저장 캐시 관리 서브시스템은 데이터 저장 캐시 상에서의 가비지 수집 동작들을 제한한다.

Description

데이터 저장 디바이스 내에서의 액세스 동작들의 제한{LIMITING ACCESS OPERATIONS IN A DATA STORAGE DEVICE}
하이브리드 데이터 저장 디바이스는 메인 데이터 스토어로서의 종래의 하드 디스크 드라이브(HDD)를 하나 이상의 2차 데이터 캐시들과 결합하여 성능을 개선하게 할 수 있다. 하이브리드 데이터 저장 디바이스의 2차 캐시 컴포넌트들 중 하나 이상은 메인 데이터 스토어로부터 데이터의 프로모션들을 수신하고 호스트로부터의 요청들에 응답하여 프로모션된 데이터를 송신하는 판독 캐시로서 사용되도록 제한될 수 있다. 그러나, 2차 캐시 컴포넌트는, 2차 캐시 컴포넌트가 고장(failure) 전에 2차 캐시 컴포넌트의 수명에 걸쳐서 지원할 수 있을 것으로 예상될 수 있는 프로그래밍 및 소거의 총 횟수에 관한 내구성 한계를 겪을 수 있다. 하이브리드 데이터 저장 디바이스들이 한정된 기간 동안 제조자의 품질 보증을 포함할 수 있으므로, 과도한 프로그래밍/소거 또는 판독/기록 동작들로 인한 2차 캐시 컴포넌트의 고장은 품질 보증 기간의 만료 전에 하이브리드 데이터 저장 디바이스가 고장 모드에 진입하게 할 수 있다.
본 명세서에 개시되는 데이터 저장 디바이스는 메인 스토어 및 플래시 데이터 저장 캐시를 포함하는 데이터 저장 매체, 및 데이터의 클러스터들을 메인 스토어로부터 저장 캐시로 프로모션하도록 구성된 플래시 관리 서브시스템을 포함하고, 제어기가 저장 캐시 상에서의 수명 프로그래밍/소거(PE) 동작들을 조절하도록 추가로 구성된다.
이러한 발명의 내용은 발명을 실시하기 위한 구체적인 내용에서 하기에 추가로 기술되는 간소화된 형태로 개념들의 선택을 도입하기 위해 제공된다. 이러한 발명의 내용은 청구되는 발명의 요지의 중요한 특징부들 또는 본질적인 특징부들을 식별하도록 의도되는 것도 아니고, 청구되는 발명의 요지의 범주를 제한하기 위해 사용되도록 의도되는 것도 아니다.
다른 구현예들이 또한 본 명세서에 기술되고 인용된다.
도 1은 하이브리드 데이터 저장 디바이스에서의 프로그래밍/소거 동작들을 관리하기 위한 예시적인 장치의 블록 다이어그램이다.
도 2는 판독 캐시 상의 데이터의 잠정적인 자가-축출(self-eviction)을 이용하여 하이브리드 데이터 저장 디바이스에서의 프로그래밍/소거 동작들을 관리하기 위한 예시적인 동작들을 도시한다.
도 3은 판독 캐시 상의 데이터의 잠정적인 자가-축출을 이용하여 하이브리드 데이터 저장 디바이스에서의 프로그래밍/소거 동작들을 관리하기 위한 예시적인 동작들을 도시한다.
도 4는 판독 캐시로의 프로모션들을 억제함으로써 하이브리드 데이터 저장 디바이스에서의 프로그래밍/소거 동작들을 관리하기 위한 예시적인 동작들을 도시한다.
도 5는 판독 캐시 상에서의 가비지(garbage) 수집 동작들을 억제함으로써 하이브리드 데이터 저장 디바이스에서의 프로그래밍/소거 동작들을 관리하기 위한 예시적인 동작들을 도시한다.
도 6은 하이브리드 데이터 저장 디바이스 내의 판독 캐시 상에서의 시간에 대한 총 누적 프로그래밍/소거 동작들의 예시적인 플롯이다.
본 발명은 하이브리드 데이터 저장 디바이스에서의 프로그래밍/소거 또는 판독/기록 동작들을 관리하기 위한 시스템 및 방법들을 포함한다. 본 발명에서, 프로그래밍/소거 동작들에 대한 언급은, 또한, 저장 매체들의 타입에 따라, 판독/기록 동작들을 지칭할 수 있다. 일 구현예에서, 하이브리드 데이터 저장 디바이스는 메인 데이터 스토어(예컨대, 회전식 자기 매체들), 1차 캐시(예컨대, DRAM), 및 2차 캐시(예컨대, NAND 플래시)를 포함할 수 있다. NAND 플래시 2차 캐시는 저장 디바이스의 수명에 걸쳐서 초과되어서는 안 되거나 또는 저장 디바이스에 대한 품질 보증 기간에 걸쳐서 초과해서는 안 되는 예상되는 총 수명 프로그래밍/소거 동작들을 포함할 수 있다. 일 구현예에서, 예컨대 가비지 수집 동작들 동안, 캐시 상의 유효 데이터의 이송에 의해 야기되는 프로그래밍/소거 동작들을 감소시키기 위해 NAND 플래시 판독 캐시의 오버프로비저닝(over-provisioning) 레벨이 증가될 수 있다. 다른 구현예에서, 오버프로비저닝된 공간의 상대적인 크기는 전형적인 레벨들로부터 (예를 들어, 물리적 공간의 50%까지) 증가될 수 있고, 2차 NAND 플래시 캐시 상의 데이터의 블록들은 판독 캐시가 메인 스토어로부터 프로모션을 수신할 때 무효화된다기보다는 "축출 보류(pending eviction)"로 마킹될 수 있고, 실제 축출은 데이터를 포함하는 블록의 가비지 수집의 포인트까지 지연될 수 있다. 따라서, 유효 데이터는 캐시가 새로운 프로모션을 수신할 때 축출되는 경우에 유지되는 것보다 판독 캐시에서 더 길게 유지되어, 이에 따라 판독 캐시 상에서의 히트(hit)의 확률을 증가시킬 수 있다. 오버프로비저닝된 공간 내에 블록들을 마킹하는 것은, 또한, 광고된 공간 내의 데이터 및 오버프로비저닝된 공간 내의 "축출 보류"로 마킹된 데이터가 함께 캐시의 100%에 이르는(또는 100%에 근접해가는) 물리적 용량을 포함할 수 있으므로 캐시의 사용가능한 용량을 효과적으로 증가시키는데, 그 이유는 그것이 캐시 상의 자유로운(즉, 오버프로비저닝된) 공간의 고정 리스트를 유지하는 데 더 이상 필요하지 않을 것이기 때문이다.
다른 구현예는 메인 데이터 스토어로부터의 프로모션들을 억제함으로써 NAND 플래시 캐시 상에서의 프로그래밍/소거 동작들을 관리할 수 있다. 먼저, 동작은 소정 기간 내의 프로그래밍/소거 동작들에 대한 상한을 결정할 수 있다. 일 구현예에서, 저장 디바이스의 남은 수명은, 저장 디바이스의 예상되는 수명 만료, 저장 디바이스에 대한 품질 보증 기간의 만료 등과 같은 정지 일자까지, 동일한 기간들일 수 있는 기간들로 나뉠 수 있다. 판독 캐시가 최대 횟수의 수명 프로그래밍/소거 동작들에 도달할 때까지 프로그래밍/소거 동작들의 남은 횟수는 남은 기간들의 수로 나뉘어 기간당 허용되는 프로그래밍/소거 동작들의 평균 횟수를 계산하게 할 수 있다. 판독 캐시가 현재 기간 내의 허용된 프로그래밍/소거 동작들 평균 횟수에 근접해 있거나 도달하는 경우, NAND 플래시 판독 캐시의 과도한 마모를 방지하도록 메인 데이터 스토어로부터의 추가적인 프로모션들이 억제될 수 있다.
또 다른 구현예는 가비지 수집 동작들을 억제함으로써 NAND 플래시 판독 캐시 상의 프로그래밍/소거 동작들을 관리할 수 있다. 가비지 수집 동작들은 블록을 소거하기 전에 블록으로부터의 유효 데이터를 이송하도록 하는 프로그래밍 동작들을 필요로 할 수 있다. NAND 플래시 캐시가 메인 데이터 스토어와 코히어런트(coherent)한 경우(즉, 메인 데이터 스토어 상에도 또한 존재하는 데이터만을 포함하는 경우), 가비지 수집 동작들 동안 유효 데이터의 이송을 스킵(skip)하는 것이 가능한데, 그 이유는 향후 임의의 스킵된 데이터를 필요로 하는 경우에 그 데이터가 메인 데이터 스토어로부터 검색될 수 있기 때문이다. 가비지 수집 동작들 동안 스킵할 것인지 여부는, 하기에 더 상세히 설명되는 바와 같이, 현재 기간 내의 허용된 프로그래밍/소거 동작들의 평균 횟수에 기초하여 또는 다른 휴리스틱(heuristic)들, 예컨대 데이터의 콜드니스(coldness), 가장 최근에 사용된 데이터 등에 따라 판정될 수 있다.
하이브리드 데이터 저장 디바이스는 메인 데이터 스토어(예컨대, 회전식 자기 매체들), 1차 캐시, 및 2차 캐시를 포함할 수 있다. 일 구현예에서, 1차 캐시는 더 소형의 더 빠른 저장 매체, 예컨대 동적 랜덤 액세스 메모리(DRAM)이고, 2차 캐시는 중간형의 더 느린 데이터 저장 매체, 예컨대 NAND 플래시이다. 일 구현예에서, 2차 캐시는 판독 캐시이다. 판독 캐시는 메인 데이터 스토어로부터의 데이터의 프로모션들을 수용할 수 있고, 요청 시, 그 상에 저장된 데이터를 호스트로 제공할 수 있다. 다른 구현예에서, 2차 캐시는 기록 캐시이다. 본 발명 전반에 걸쳐서, 판독 캐시에 대한 설명은 사용 및 마모는 제어될 수 있는 임의의 2차 캐시, 예컨대 내구성 또는 예상되는 마모 한도를 갖는 임의의 2차 캐시에 적용가능하다.
NAND 플래시 저장 매체 상에서 수행되는 총 수명 프로그래밍/소거 동작들의 횟수(저장 매체의 "내구성"으로도 지칭됨)는 고장, 및 그에 따라, 또한, 전체적으로 하이브리드 데이터 저장 디바이스의 고장을 피하도록 제한될 수 있다. NAND 플래시 캐시가 성공적으로 수행할 수 있을 것으로 예상될 수 있는 총 수명 프로그래밍/소거 동작들의 횟수는 제조자에 의해 제공될 수 있거나, 또는 그것은 판독 캐시로서 특정 용도를 위한 테스팅으로부터 결정될 수 있다. NAND 플래시 판독 캐시의 내구성을 결정 및/또는 수정하기 위해 에러율, 보유 요건들, 프로그래밍/소거 고장들, 비트 에러율, 동작 온도 등과 같은 고려사항들이 의존될 수 있다. 하이브리드 데이터 저장 디바이스는 제조자의 품질 보증에 의해 커버될 수 있고, 제조자는 품질 보증 기간의 만료 전의 예상되는 고장들의 횟수를 제조자에게 허용가능한 횟수로 제한하도록 NAND 플래시 판독 캐시에 대한 값을 선택할 수 있다.
도 1은 하이브리드 데이터 저장 디바이스(100)에서의 프로그래밍/소거 동작들을 관리하기 위한 장치의 블록 다이어그램이다. 하이브리드 데이터 저장 디바이스(100)는 호스트 인터페이스(120)를 통해 하이브리드 데이터 저장 디바이스(100)를 호스트(104)에 통신가능하게 커플링하는 하이브리드 디바이스 제어기(102)를 포함한다. 하이브리드 디바이스 제어기(102)는 호스트(104)가 메인 데이터 스토어(106)에 데이터를 저장할 수 있게 하고 그로부터 데이터를 검색할 수 있게 하는 메커니즘을 제공한다. 일 구현예에서, 메인 데이터 스토어(106)는 회전식 자기 디스크들을 포함한다. 하이브리드 디바이스 제어기(102)는 SATA, SCSI, eSATA, SAS, USB 등을 포함한 통신 인터페이스들 및 프로토콜들을 활용할 수 있다. 하이브리드 디바이스 제어기(102)는 호스트(104)와 하이브리드 데이터 저장 디바이스(100) 사이에 통신을 제공한다. 더욱이, 호스트 인터페이스(120)는, 또한, 적어도 메인 데이터 스토어(106), 1차 캐시(108), 2차 캐시(110), 및 기능 모듈들(112)에 대해 하이브리드 디바이스 제어기(102)의 동작들을 끌어낸다(abstract). 예를 들어, 호스트(104)는 하이브리드 디바이스 제어기(102)에 의해 상이한 물리적 어드레싱 스킴(scheme), 예컨대 실린더들, 헤드들, 섹터들 등에 기초하는 어드레싱 스킴에 따라 편성된 메인 데이터 스토어(106) 상의 물리적 어드레스들에 맵핑되는 로직 블록 어드레스(logical block address, LBA)들을 참조하여 데이터에 액세스할 수 있다.
하이브리드 디바이스 제어기(102)는, 성능을 개선하거나 호스트(104)에 효율적인 동작을 제공하는 방식으로, 호스트로부터 수신된 데이터를 저장 및 편성할 수 있다. 호스트(104)는 하이브리드 디바이스 제어기(102)를 통해 데이터를 판독 또는 기록하도록 하는 메모리 액세스 요청들을 하이브리드 데이터 저장 디바이스(100)로 전송할 수 있다. 메모리 액세스 요청들은 메모리 액세스 요청의 동작을 위해 사용되는 호스트 로직 블록 어드레스(LBA) 범위를 특정할 수 있다. 예를 들어, 호스트(104)로부터의 메모리 액세스 요청은 호스트 LBA 범위가 하이브리드 데이터 저장 디바이스(100) 상에 기록되어야 한다거나 또는 호스트 LBA 범위가 하이브리드 데이터 저장 디바이스(100)로부터 판독되어야 한다는 요청을 포함할 수 있다. 하이브리드 디바이스 제어기(102)는, 추가로, 하이브리드 디바이스 제어기(102)와 본 명세서에 기술되는 바와 같은 하이브리드 데이터 저장 디바이스(100)의 다른 컴포넌트들 사이에서의, 예컨대 1차 캐시(108), 2차 캐시(110), 메인 데이터 스토어(106), 모듈들(112) 등의 사이에서의 데이터 흐름을 제어한다.
하이브리드 데이터 저장 디바이스(100)는 데이터의 저장을 위해 1차 캐시(108) 및 2차 캐시(110)를 포함할 수 있다. 일 구현예에서, 1차 캐시(108)는 휘발성 랜덤 액세스 메모리(RAM) 디바이스, 예컨대 DRAM(Dynamic-RAM)일 수 있고, 2차 캐시(110)는 비휘발성 RAM, 예컨대 NAND 플래시 메모리일 수 있다. 1차 캐시(108) 및 2차 캐시(110)는 동작 동안에 하이브리드 디바이스 제어기(102)가 필요로 하는 데이터의 일시적 또는 영구적 스토어들로서, 또는 호스트(104)로부터의 데이터를 캐싱하기 위한 것임을 비롯한 다양한 이유들을 위해 사용될 수 있다.
메인 데이터 스토어(106)로부터 검색되거나 또는 그에 저장된 데이터는 1차 캐시(108), 2차 캐시(110), 또는 양측 모두에 저장되어 하이브리드 데이터 저장 디바이스(100)의 처리율을 개선할 수 있는데, 그 이유는 1차 캐시(108) 및 2차 캐시(110)가, 대체적으로 더 낮은 저장 용량을 갖지만, 일반적으로, 메인 데이터 스토어(106)보다 더 빠른 액세스 및 검색 시간들을 갖기 때문이다. 1차 캐시(108) 및 2차 캐시(110) 상에 데이터를 저장하는 것이 데이터 프로세싱 및 이송 오버헤드를 도입할 수 있지만, 일반적으로, DRAM 및 NAND 플래시와 같은 보다 빠른 매체는 많은 조건들 하에서 데이터 저장 디바이스(100)의 전체 성능을 현저하게 개선할 수 있다.
본 명세서에서 사용되는 바와 같이, "1차" 및 "2차"라는 용어들은 일반적으로 하이브리드 디바이스 제어기(102)에 대해 시간적 신속성 및 우선권을 지칭한다. 예를 들어, 호스트(104)로부터의 판독/기록 요청들은 호스트 커맨드들의 신속한 완료를 가능하게 하도록 1차 캐시(108)에 의해 프로세싱될 수 있다. 호스트가 새로운 요청들을 전송함에 따라, 1차 캐시(108) 상의 데이터는 2차 캐시(110)로 이동될 수 있거나 또는 메인 데이터 스토어(106)로 이동될 수 있다. 일 구현예에서, 2차 캐시(110)는 판독 전용 저장 디바이스일 수 있는데, 그 이유는 호스트에 의한 판독 동작들에 적격한 메인 데이터 스토어(106)로부터의 데이터만이 그 상에 저장될 수 있기 때문이다. 이러한 구현예에서, 기록용으로 마킹된 데이터는 하이브리드 디바이스 제어기(102)로부터 직접적으로 또는 1차 캐시(108)를 통해 메인 데이터 스토어(106)로 전송될 수 있다. 다른 구현예에서, 2차 캐시(110)는 메인 데이터 스토어(106)와 코히어런트할 수 있는데, 이는 호스트 데이터가 메인 데이터 스토어(106) 상에 저장되는 경우에는 호스트 데이터만이 2차 캐시(110) 상에 저장될 수 있음을 의미한다. 2차 캐시(110)가 메인 데이터 스토어(106)와 코히어런트한 경우, 가비지 수집 동작들과 같은 특정 동작들이 간소화될 수 있는데, 그 이유는 2차 캐시(110) 상의 임의의 유효 데이터가, 필요하다면, 메인 데이터 스토어(106)로부터의 그의 검색가능성으로 인해 2차 캐시(110)로부터 스킵 또는 드롭될 수 있기 때문이다. 2차 캐시(110)와 같은 2차 캐시에 대해 본 명세서에 개시되는 특징부들은, 또한, 예컨대 비휘발성 캐시가 휘발성 캐시와 평행한 비계층적 관계로 유지되거나 결코 휘발성 캐시 없이 사용되는 경우, 다른 캐시들과 관련하여 "2차"가 아닌 캐시들에 적용가능할 수 있다. 2차 캐시(110)는, 선택적으로, 비휘발성 메모리 대신, DRAM과 같은 휘발성 메모리를 활용할 수 있다. 본 명세서에서, "2차 캐시", "판독 캐시", "NAND 플래시 저장 매체", 및 이들의 조합들을 포함한 용어들은 상호교환가능하게 사용된다.
하이브리드 데이터 저장 디바이스(100)는, 호스트(104)로/로부터를 비롯하여 메인 데이터 스토어(106)에서, 1차 캐시(108)에서, 2차 캐시(110)에서, 그리고 하이브리드 데이터 저장 디바이스(100)의 다른 부품들에서 데이터를 관리하는 것과 관련된 기능들을 수행하도록 하는 모듈들(112)을 포함할 수 있다. 모듈들(112)은 주문맞춤형 로직 회로, 범용 프로세서들 및 제어기들, 펌웨어, 및 소프트웨어의 임의의 조합을 포함할 수 있다. 모듈들(112)은 시간 경과에 따라 하이브리드 데이터 저장 디바이스(100)에 영향을 주는 동작들을 추적하도록 하는 이력 추적 모듈(114)을 포함할 수 있다. 예를 들어, 이력 추적 모듈(114)은 1차 캐시(108), 2차 캐시(110), 및/또는 메인 데이터 스토어(106) 상에서 수행되는 프로그래밍 및/또는 소거 동작들의 총 횟수를 추적할 수 있다. 이력 추적 모듈(114)은 하이브리드 데이터 저장 디바이스(100)가 제조된 이래의 시간, 하이브리드 데이터 저장 디바이스(100)가 처음 사용된 시각, 하이브리드 데이터 저장 디바이스(100)를 커버하는 품질 보증 기간, 1차 캐시(108), 2차 캐시(110), 및/또는 메인 데이터 스토어(106)에 의해 경험되는 기록 증폭(write amplification), 하이브리드 디바이스 제어기(102)로부터 수신된 호스트 판독/기록 요청들 등을 추적할 수 있다.
분석 모듈(116)은 하이브리드 데이터 저장 디바이스(100)와 연관된 하나 이상의 기준들을 결정하도록 구성된다. 하이브리드 데이터 저장 디바이스(100)와 연관된 기준들은 품질 보증 기간의 만료 때까지 남은 기간들, 현재 기간 내의 1차 캐시(108) 및/또는 2차 캐시(110) 상의 허용가능한 프로그래밍/소거 동작들의 횟수, 품질 보증 기간의 종료 때까지 1차 캐시(108) 및/또는 2차 캐시(110) 상의 허용가능한 프로그래밍/소거 동작들의 총 횟수, 하이브리드 데이터 저장 디바이스(100)의 수명 동안 1차 캐시(108) 및/또는 2차 캐시(110) 상의 총 허용가능한 프로그래밍/소거 동작들의 횟수, 현재 기간 또는 임의의 다른 기간 내의 가비지 수집 동안에 허용가능한 프로그래밍/소거 동작들의 횟수, 및 본 명세서에 개시된 하이브리드 데이터 저장 디바이스(100)에 관련된 임의의 다른 동작들, 결정들, 또는 계산들을 포함할 수 있다. 분석 모듈(116)은 이력 추적 모듈(114)에 커플링되어, 전술된 분석을 수행하기 위해 필요한 또는 그를 위해 바람직한 임의의 정보를 획득할 수 있다.
진단 모듈(118)은 하이브리드 데이터 저장 디바이스(100)의 성능과 연관된 하나 이상의 기준들을 결정하도록 구성된다. 하이브리드 데이터 저장 디바이스(100)의 성능과 연관된 기준들은 하나 이상의 가비지 수집 동작들 동안의 가비지 수집 유닛당 기록 증폭, 메인 데이터 스토어(106), 1차 캐시(108) 및/또는 2차 캐시(110) 상에서의 오버프로비저닝의 동적 레벨과 연관된 기록 증폭, 및 본 명세서에서의 개시내용에 부합하는 다른 동작들을 포함할 수 있다.
하이브리드 디바이스 제어기(102)는 플래시 관리 서브시스템(122)을 포함하는 다양한 모듈들 및/또는 서브시스템들을 포함할 수 있다. 플래시 관리 서브시스템(122)은 다양한 동작들을 수행할 수 있고, 2차 캐시(110)에 관련된 파라미터들을 제어할 수 있다. 예를 들어, 플래시 관리 서브시스템(122)은 2차 캐시(110)로부터의 데이터의 축출, 2차 캐시(110) 상에 축출 보류/스테일(stale)/더 이상 축출 보류 중이 아님(no longer pending eviction)으로 데이터를 마킹하는 것, 2차 캐시(110) 상에서 오버프로비저닝 레벨들을 조절하는 것, 2차 캐시(110) 상에서 가비지 수집 동작들을 이행하는 것 등을 다룰 수 있다.
2차 캐시(110)와 같은 판독 캐시 상에서의 프로그래밍 동작들은, 종종, 하이브리드 디바이스 제어기(102)가 메인 스토어(106)로부터 2차 캐시(110)로 데이터를 프로모션할 때 발생한다. 하이브리드 디바이스 제어기(102)는 2차 캐시(110)로 데이터를 프로모션할 수 있는데, 그 이유는 호스트(104)로부터의 데이터 액세스 요청들에 응답할 때 2차 캐시(110)가 메인 데이터 스토어(106)에 비해 개선된 성능을 제공할 수 있기 때문이다. 2차 캐시(110)에 대한 프로그래밍들은, 또한, 종종, 가비지 수집 동작들 동안에 발생한다. NAND 플래시 매체는 소거 블록들로 구성되고, 각각의 소거 블록은 데이터가 기록될 수 있는 다수의 페이지들을 포함한다. 소거 블록 내의 페이지들이 개별적으로 기록될 수 있지만, 소거 블록 내의 페이지들은 전체 블록에서의 모든 페이지들이 동시에 소거되는 경우에만 소거될 수 있다. 시간 경과에 따라, 소거 블록들은 일부 페이지들 내의 유효 데이터와 다른 페이지들 내의 스테일 데이터의 혼합을 포함할 수 있다. 가비지 수집 동작은 타깃 소거 블록을 삭제하기 전에 타깃 소거 블록 내의 데이터의 유효 페이지들을 다른 소거 블록들로 이송하여, 2차 캐시(110) 상의 공간을 확보할 수 있다. 그러나, 다른 소거 블록들로의 유효 데이터의 이송은 데이터를 다른 소거 블록들로 프로그래밍할 것을 필요로 하여, 호스트로부터 전송된 데이터와 관련되지 않은 프로그래밍 비용을 초래한다.
2차 캐시(110)와 같은 판독 캐시 상에서의 소거 동작들은, 또한, 종종, 유효 데이터를 수용하기 위해 유효 데이터가 소거 블록의 페이지들을 확보하도록 이송된 후에 소거 블록의 페이지들이 소거되는 경우, 가비지 수집 동작들 동안에 발생한다. 소거 동작들은, 또한, 2차 캐시(110)가 포화 조건 하에 있는 경우, 2차 캐시(110)가 호스트(104)로부터 새로운 프로모션을 수신할 때 발생할 수 있다. 하기에 더 상세히 설명되는 바와 같이, 데이터 저장 매체는 오버프로비저닝될 수 있는데, 이는 데이터 저장 매체의 물리적 용량 중 일부가 광고된 공간, 즉 호스트(104)가 이용가능한 물리적 용량에 전용되고, 데이터 저장 매체 상의 물리적 공간 중 나머지가 오버프로비저닝된 공간에 전용될 수 있음을 의미할 수 있으며, 오버프로비저닝된 공간은 가비지 수집 동작들을 이행하거나 또는 달리 데이터 저장 매체 상의 유효 데이터를 이송할 때 기록 증폭을 최소화하기 위해 데이터를 저장할 시에 사용하도록 하이브리드 디바이스 제어기(102)에 의한 사용을 위해 예약되어 있다. 데이터 저장 매체가 오버프로비저닝된 공간과 광고된 공간으로 분할되는 경우, 매체는 광고된 공간이 충만하거나 또는 거의 충만할 때 포화 상태인 것으로 간주될 수 있다. 2차 캐시(110)가 포화 조건 하에 있고 하이브리드 디바이스 제어기(102)가 새로운 데이터를 2차 캐시(110)로 프로모션하는 경우, 하이브리드 디바이스 제어기(102)는 2차 캐시(110) 상의 데이터를 축출(즉, 삭제)하여, 새롭게 프로모션된 데이터를 위한 공간을 만들 수 있다.
2차 캐시(110)가 성공적으로 다룰 수 있는 것으로 예상되는 수명 프로그래밍/소거 동작들의 제한된 횟수로 인해, 모든 적격 데이터를 프로모션하여 가비지 수집 동작들 동안 유효 데이터의 완전한 이동을 수행하기보다는 2차 캐시(110)의 수명에 걸쳐서 프로그래밍/소거 동작들이 어떻게 소비되는지를 더 잘 선택하는 것이 바람직할 수 있다. 이러한 관심사는, 하이브리드 데이터 저장 디바이스(100)의 다른 컴포넌트들 전에 2차 캐시(110)가 고장날 확률을 최소화시켜서 하이브리드 데이터 저장 디바이스(100)를 고장 모드에 들어가게 하기 위해 2차 캐시(110)의 예상되는 수명을 연장할 필요성 또는 동작 요건들의 엄중성 증가의 관점에서 볼 때 2차 캐시(110)의 내구성 추정치의 잠재적인 하향 수정의 관점에서 더욱 더 중요할 수 있다. 2차 캐시(110)의 고장으로 인한 하이브리드 데이터 저장 디바이스(100)의 고장은 하이브리드 데이터 저장 디바이스(100)를 커버하는, 예를 들어 하이브리드 데이터 저장 디바이스(100)의 구매 일자로부터 5년과 같은 수 년에 걸쳐서 연장될 수 있는 품질 보증 기간의 만료 전에 2차 캐시(110)가 고장나는 경우에 중요성이 증가된다.
하이브리드 데이터 저장 디바이스(100) 상에서의 프로그래밍/소거 동작들을 관리하는 데 있어서의 인자가 기록 증폭("마모 증폭"으로도 지칭됨)이다. 기록 증폭은 호스트(104)에 의해 기록되도록 요청된 데이터의 양을 만족시키기 위해 기록된 데이터의 양을 지칭한다. 예를 들어, 2차 캐시(110)에 2 메가바이트의 호스트 데이터를 기록하기 위해, 내부 가비지 수집, 또는 2 메가바이트의 호스트 데이터를 기록할 정도로 캐시 상의 소거 블록들의 충분한 개수를 확보하도록 하는 다른 기법들을 통해 1 메가바이트가 또한 2차 캐시(100)에 기록될 필요가 있을 수 있다. 더 낮은 기록 증폭은 더 높은 기록 증폭보다 선호되는데, 그 이유는, 전체적으로, 더 낮은 기록 증폭이 2차 캐시(110)의 수명을 연장할 수 있고 하이브리드 데이터 저장 디바이스(100)의 성능을 증가시킬 수 있기 때문이다. 가비지 수집 동작들은 더 많은 양의 유효 데이터를 갖는 소거 블록들 상에서 동작하기 전에 먼저 이송할 최소 양의 유효 데이터를 갖는 소거 블록들 상에서 동작하는 것과 같은, 기록 증폭을 최소화하기 위한 기법들을 활용할 수 있다.
오버프로비저닝은 2차 캐시(110) 상에서의 프로그래밍/소거 동작들을 관리하는 것과 관련된 다른 개념이다. 오버프로비저닝은, 일반적으로, 호스트(104)에 노출되는 물리적 공간의 일부와는 대조적으로, 가비지 수집과 같은 동작들 또는 하이브리드 디바이스 제어기(102)에 의해 수행되는 다른 동작들에 필요한 데이터를 위해 예약된 저장 매체 상의 물리적 공간의 일부를 지칭한다. 다시 말해, 2차 캐시(110)와 같은 저장 매체는 사용자 및/또는 사용자의 호스트에게 광고된 데이터의 양보다 더 많은 양의 데이터를 저장하는 것이 가능할 수 있다. 오버프로비저닝 레벨은, 일반적으로, 오버프로비저닝된 저장 매체에 의해 경험될 것으로 예상되는 기록 증폭과는 역의 관계를 갖는데, 그 이유는 오버프로비저닝된 공간이 데이터 이송을 더 효율적으로 수행할 기회 및 저장 매체 상에 데이터를 저장 및 편성하기 위한 다른 동작들을 제공하기 때문이다. 예를 들어, 데이터가 호스트에 의해 로직 위치 상에서 덮어쓰기되었지만 스테일 데이터로서 저장 매체 상의 물리적 위치에 여전히 존재하는 경우, 오버프로비저닝된 공간은 스테일 데이터의 가비지 수집을 더 효율적으로 다루도록 하이브리드 디바이스 제어기(102)에 의해 사용될 수 있다. 더욱이, 오버프로비저닝과 기록 증폭 사이의 관계는 선형일 필요가 없다. 다시 말해, 오버프로비저닝 레벨들을 증가시키는 것은 지수 관계에 따라 기록 증폭을 감소시킬 수 있다. 따라서, 오버프로비저닝된 공간을 손실하는 것은 기록 증폭 증가로 인해 저장 매체의 예상되는 수명에 높은 비용이 수반될 수 있다.
오버프로비저닝을 증가시키는 것은 호스트에 노출된 물리적 용량의 양을, 그리고 이에 따라, 호스트가 저장 매체 상에 액세스하는 것이 가능할 수 있는 데이터의 양을 관례대로 감소시킨다. 오버프로비저닝을 증가시키는 것은, 또한, 저장 매체 상에서 시간 경과에 따른 마모를 감소시키는 것뿐 아니라, 기록 증폭을, 그리고 이에 따라, 저장 매체 상에서 필요한 프로그래밍 동작들의 횟수를 감소시킨다. 오버프로비저닝을 증가시키는 것이, 또한, 호스트의 관점으로부터의 저장 매체의 용량을 감소시키므로, 더 높은 오버프로비저닝 레벨은, 일반적으로, 판독 캐시로서 사용될 때 더 낮은 캐시 히트율을, 그리고 이에 따라, 저장 매체의 감소된 성능을 이끌 것이다. 따라서, 오버프로비저닝된 공간과 광고된 공간 사이의 비는 가비지 수집이 효율적으로 수행될 수 있는 속도와 데이터 액세스 요청들을 다루기 위한 호스트로부터의 실제 요구에 대한 판독 캐시의 응답성 사이의 균형을 찾는 데 필요할 수 있다.
오버프로비저닝에 따른 잠정적인 자가-축출
2차 판독 캐시(110)와 같은 저장 매체 상에서의 프로그래밍/소거 동작들을 관리하는 한 가지 방식이 오버프로비저닝 증가에 따른 캐시 상의 블록들의 잠정적인 자가-축출이다. 데이터 캐시는 광고된 공간 부분과 오버프로비저닝된 부분으로 분할될 수 있다. 포화된 2차 판독 캐시(110) 상에서의 오버프로비저닝을 위한 고정된 양의 자유로운 공간을 유지하는 대신, 캐시가 하이브리드 디바이스 제어기(102)로부터 새로운 프로모션을 수신하여 새롭게 프로모션된 데이터를 위한 공간을 만들 때 데이터를 축출함으로써, 플래시 관리 서브시스템(122)은 잠정적인 자가-축출을 위한 블록(들)을 마킹할 수 있다. 본 발명 전반에 걸쳐서, 자가-축출 보류와 잠정적인 자가-축출이라는 용어들은 상호교환가능하게 사용된다. 또한, 자가-축출과 축출이라는 용어들도 상호교환가능하게 사용된다. 블록이 잠정적인 자가-축출에 대해 마킹되는 경우, 블록 내의 데이터는 블록을 포함하는 가비지 수집 유닛에 대한 최종 가비지 수집 동작이 그것을 소거할 때까지 2차 판독 캐시(110) 상에 남아 있다. 블록을 포함하는 가비지 수집 유닛에 대한 가비지 수집 동작이 잠정적인 자가-축출에 대해 마킹된 블록을 소거할 때까지, 잠정적인 자가-축출로 마킹된 블록 내의 데이터는 유효 데이터를 보유한다. 2차 판독 캐시(110)가 잠정적인 자가-축출에 대해 마킹된 블록 내의 데이터에 대해 호스트(104)로부터 데이터 액세스 요청을 수신하는 경우, 2차 판독 캐시(110)는 요청된 데이터로 호스트(104)에 응답할 수 있다. 2차 판독 캐시(110)가 잠정적인 자가-축출에 대해 마킹된 블록 내의 데이터에 대해 호스트(104)로부터 데이터 액세스 요청을 수신하는 경우, 플래시 관리 서브시스템(122)은 요청된 소거 블록으로부터 잠정적인 자가-축출 마킹을 제거할 수 있다. 이러한 시나리오에서, 잠정적인 자가-축출 또는 자가-축출보류로 마킹되지 않은 블록들은 캐시의 광고된 공간 부분에 대응하고, 자가-축출 보류 또는 잠정적인 자가-축출로서 마킹된 블록들은 캐시의 오버프로비저닝된 공간 부분에 대응한다. 자가-축출 보류로 마킹된 블록들의 개수는 조절되어, 데이터 저장 캐시의 오버프로비저닝된 부분의 크기를 변경할 수 있고, 또한, 그렇게 마킹된 블록들의 개수와 관련하여 데이터 저장 캐시의 광고된 부분의 크기를 변경할 수 있다. 오버프로비저닝된 공간과 광고된 공간 사이의 비는 기록 증폭 한도 조건과 같은 인자들 또는 다른 인자들에 따라 동적으로 변경될 수 있다.
일 구현예에서, 소거 블록들은 비트맵을 사용하여 자가-축출 보류로 마킹될 수 있다. 다른 구현예에서, 소거 블록들은 마킹될 소거 블록에 대응하는 포인터 또는 인덱스들로부터 소정 비트를 차용함으로써 자가-축출 보류로 마킹될 수 있다.
잠정적인 자가-축출에 대한 소거 블록들을 마킹하는 스킴 하에, 더 높은 오버프로비저닝 레벨들을 달성하기 위해 2차 판독 캐시(110) 상의 용량을 포기하는 것이 더 이상 필요하지 않다. 다시 말해, 오버프로비저닝은 더 이상 2차 판독 캐시(110) 상의 자유로운 블록들의 고정된 리스트로서 관찰될 필요가 없지만, 오히려 그것은 프로모션된 블록이 자가-축출을 위해 얼마나 빨리 고려될 수 있는지 제어하는 것으로 관찰될 수 있다. 이는 2차 판독 캐시(110)가 유효 데이터로 완전히 또는 거의 완전히 소모될 수 있게 한다. 달리 말해, 잠정적인 자가-축출에 따라, 2차 판독 캐시(110)의 로직 용량은 2차 판독 캐시(110)의 물리적 용량과 동일할 수 있거나 또는 거의 동일할 수 있다.
소거 블록들을 자가-축출 보류로서 마킹하는 것은, 또한, 호스트(104)로부터의 데이터 액세스 요청들에 대해 2차 판독 캐시(110) 상의 히트율들을 증가시키는데, 그 이유는 더 많은 유효 데이터가 더 긴 기간 동안 보유될 수 있기 때문이다. 일 구현예에서, 50% 오버프로비저닝의 레벨이 2차 판독 캐시(110)에 대해 선택된다. 다시 말해, 포화 레벨에서, 2차 판독 캐시(110)의 50%가 자가-축출에 대해 마킹되지 않은 유효 데이터로 점유되고, 2차 판독 캐시(110)의 50%가 자가-축출에 대해 마킹된 유효 데이터로 점유된다. 2차 판독 캐시(110)가 포화되고 프로모션이 수신되는 경우, 잠정적인 자가-축출에 대해 마킹된 데이터는 새로운 프로모션을 위한 공간을 만들기 위해 소거될 수 있다. 적어도 일부 블록들이 인입 프로모션들을 수용하도록 자유로운 상태로 남겨져야 하지만, (잠정적인 자가-축출에 대해 마킹된 또는 마킹되지 않은) 유효 데이터를 포함하는 블록들의 개수는 저장 매체의 물리적 용량의 100%에 근접한다. 잠정적인 자가-축출을 이용하지 않고 자유로운 블록들의 고정된 리스트를 유지하는 오버프로비저닝 스킴과는 대조적으로, 더 많은 블록들이 유효 데이터에 의해 점유되고, 이에 따라, 호스트(104)에 의한 데이터 액세스 요청의 주체가 될 가능성이 더 많다. 따라서, 블록들을 축출하기보다는 오버프로비저닝된 공간 상의 잠정적인 자가-축출에 대해 블록들을 마킹하여 오버프로비저닝된 공간 상의 자유로운 공간을 유지하는 것은, 2차 판독 캐시(110)가 자유로운 블록들의 고정된 리스트를 그의 오버프로비저닝된 공간으로서 유지했다면 2차 판독 캐시(110) 상에서 이용가능하지 않았을 호스트에 자가-축출 보류 리스트 내의 소거 블록들이 서빙됨에 따라 개선된 응답 시간들을 이끈다.
축출될 특정 데이터는, 랜덤으로, LRU 블록들에 따라, 새로운 프로모션을 수용하기 위해 충분한 양의 데이터를 확보할 블록들에 따라, 등등을 제한 없이 포함하여 다수의 방식들로 결정될 수 있다. 일 구현예에서, 잠정적인 자가-축출에 대해 마킹된 블록들을 축출하는 것은 2차 판독 캐시(110) 상의 최종 가비지 수집 동작으로 지연될 수 있다. 2차 판독 캐시(110) 상의 최종 가비지 수집 동작 동안, 잠정적인 자가-축출에 대해 마킹된 블록들은 가비지 수집 목적들을 위해 스테일니스(staleness)를 결정하도록 하는 계산 시에 포함될 수 있다.
2차 판독 캐시(110) 상에서의 오버프로비저닝 레벨은 동적으로 결정될 수 있다. 일 구현예에서, 오버프로비저닝 레벨은 하이브리드 데이터 저장 디바이스(100)의 남은 수명 동안 또는 하이브리드 데이터 저장 디바이스(100)의 남은 품질 보증 기간 동안 남은 허용가능한 프로그래밍/소거 동작들의 횟수에 따라 더 높게 조절될 수 있다. 하이브리드 데이터 저장 디바이스(100)가 이용가능한 프로그래밍/소거 동작들이 상대적으로 많은 횟수가 남아 있는 경우, 2차 판독 캐시(110) 상에서의 오버프로비저닝이 낮춰져서, 2차 판독 캐시(110) 상에서의 기록 증폭을 증가시키지만, 가비지 수집 동안 더 많은 유효 데이터의 보유를 허용할 수 있다. 반면, 2차 판독 캐시(110) 상에서의 허용가능한 프로그래밍/소거 동작들의 남은 횟수가 상대적으로 더 적은 경우, 2차 판독 캐시(110) 상에서의 오버프로비저닝은 기록 증폭을 감소시키도록 증가될 수 있지만, 가비지 수집 동안의 더 적은 유효 데이터의 보유로 인해 더 낮은 성능의 비용을 지불하게 될 수 있다. 2차 판독 캐시(110) 상에서 오버프로비저닝을 동적으로 제어하는 것은 기록 증폭을 제어하고, 최선으로는, 1.0의 기록 증폭을 달성할 수 있다. 2차 판독 캐시(110) 상에서의 총 프로그래밍/소거 동작들을 관리함에 있어서 가장 효과적이도록 하기 위해, 하기에 더 상세히 설명되는 바와 같이, 오버프로비저닝에 의한 잠정적인 자가-축출은 2차 판독 캐시(110)에 대한 프로모션들을 억제하고 2차 판독 캐시(110) 상에서의 가비지 수집 동작들을 억제하는 전략들과 함께 사용되어야 한다.
도 2는 판독 캐시 상의 데이터의 잠정적인 자가-축출을 이용하여 하이브리드 데이터 저장 디바이스에서의 프로그래밍/소거 동작들을 관리하기 위한 예시적인 동작들(200)이다. 동작(202)은 판독 캐시에 대한 오버프로비저닝 레벨을 선택하는 것이다. 예시적인 동작들(200)이 고정된 개수의 자유로운 소거 블록들을 유지하기 위한 오버프로비저닝된 공간을 이용하기보다는 자가-축출 보류로서 마킹된 소거 블록들에 대한 오버프로비저닝된 공간을 이용하는 것에 의존하므로, 동작(202)은 판독 캐시 내의 프로모션된 데이터가 자가-축출을 위해 얼마나 빨리 고려될 것인지를 선택하는 것을 수반한다. 선택된 오버프로비저닝 레벨과는 무관하게, 판독 캐시의 용량의 거의 100%는, 그 블록이 잠정적인 자가-축출에 대해 마킹되어 있든 그렇지 않든, 프로모션된 데이터를 저장하는 데 이용될 것이다. 일부 자유로운 블록들은 새롭게 프로모션된 데이터를 수용하기 위해 유지될 수 있어서, 판독 캐시의 전체적인 물리적 용량이 프로모션된 호스트 데이터를 포함하지 않게 할 수도 있다.
동작(204)에서, 판독 캐시는 메인 데이터 스토어 상에 저장된 호스트 데이터를 프로모션하도록 하는 요청을 하이브리드 디바이스 제어기로부터 수신한다. 판독 캐시 상의 광고된 공간이 동작(206)에서 포화되지 않는 경우, 동작(208)에서, 프로모션 요청의 대상이 되는 데이터가 판독 캐시 상에 프로그래밍된다. 판독 캐시 상의 광고된 공간이 동작(206)에서 포화되는 경우, 동작(210)에서, 프로모션 요청 데이터의 크기를 수용할 정도로 충분한 블록들이 판독 캐시 상의 광고된 공간 상에서 선택되고 자가-축출 보류로 마킹된다.
동작(212)에서 판독 캐시 상의 오버프로비저닝된 공간이 포화되지 않는 경우, 동작(214)에서, 프로모션된 데이터가 판독 캐시에 프로그래밍된다. 동작(214)의 프로그래밍 동작이 가능한데, 그 이유는 동작(210)에서 블록들을 축출 보류로 마킹함으로써 판독 캐시 상의 광고된 공간 내의 데이터의 양이 감소되었기 때문이다. 동작(212)에서 오버프로비저닝된 공간이 포화되는 경우, 오버프로비저닝된 공간으로부터 충분한 블록들이 축출되어, 오버프로비저닝된 공간 내에 맞도록 하는 프로모션 요청의 대상이 되는 데이터를 위한 공간을 만들어야 한다. 동작(216)에서 축출을 위해 선택된 블록들은 랜덤으로, 가장 최근에 사용된 블록에 따라, 또는 다른 휴리스틱에 따라 선택될 수 있다. 동작(216)에서 충분한 블록들이 축출되어 프로모션 요청에 대한 대상이 되는 데이터를 수용할 정도로 충분한 공간을 확보한 후, 동작(218)에서, 프로모션 요청에 대한 대상이 되는 데이터가 판독 캐시에 프로그래밍된다.
도 3은 판독 캐시 상의 데이터의 잠정적인 자가-축출을 이용하여 하이브리드 데이터 저장 디바이스에서의 프로그래밍/소거 동작들을 관리하기 위한 예시적인 동작들(300)을 도시한다. 동작(302)에서, 하이브리드 저장소 제어기는 데이터에 대한 데이터 액세스 요청을 호스트로부터 수신한다. 호스트로부터의 데이터 액세스 요청의 대상이 되는 데이터가 동작(304)에서 판독 캐시 상에 있지 않는 경우, 동작(306)에서 예시적인 동작들(300)은 종료된다. 호스트로부터의 데이터 액세스 요청의 대상이 되는 데이터가 동작(304)에서 판독 캐시 상에 있는 경우, 예시적인 동작들(300)은 동작(308)으로 진행한다. 호스트로부터의 데이터 액세스 요청의 대상이 되는 데이터가 동작(308)에서 자가-축출 보류로 마킹되는 경우, 동작(310)에서, 자가-축출 보류 플래그가 데이터로부터 제거될 수 있고, 동작(312)에서, 호스트로부터의 데이터 액세스 요청의 대상이 되는 데이터는 호스트로 전송된다. 호스트로부터의 데이터 액세스 요청의 대상이 되는 데이터가 동작(308)에서 자가-축출 보류로 마킹되지 않는 경우, 동작(312)에서, 데이터는 호스트로 전송된다.
남은 허용가능한 프로그래밍/소거 동작들의 결정
하이브리드 데이터 저장 디바이스에서의 프로그래밍/소거 동작들을 관리하는 다른 태양은, 판독 캐시를 포함하는 데이터 저장 매체에 대한 내구성 추정치에 대해 2차 판독 캐시 상에 남아 있는 수명 프로그래밍/소거 동작들의 총 횟수를 결정하는 것, 및 시간 경과에 따라 추가 프로그래밍/소거 동작들을 제한하여 하이브리드 데이터 저장 디바이스가 캐시의 추정된 내구성 레벨보다 2차 판독 캐시 상에서의 더 많은 프로그래밍/소거 동작들을 수행하지 않게 하는 것을 포함한다. 일 구현예에서, 2차 판독 캐시 상에서의 프로그래밍/소거 동작들은 하이브리드 데이터 저장 디바이스를 커버하는 품질 보증 기간 동안의 판독 캐시의 내구성 레벨보다 적게 제한된다.
2차 판독 캐시는, 2차 판독 캐시가 고장 전에 성공적으로 다룰 수 있을 것으로 예상될 수 있는 프로그래밍/소거 동작들의 횟수에 대응하는 내구성 레벨과 연관될 수 있다. 2차 판독 캐시의 제조자는 본 명세서에 기술된 목적들을 위해 제공하는 데 이용될 수 있는 2차 판독 캐시 저장 매체에 대한 내구성 등급(rating)을 제공할 수 있다. 대안으로 또는 추가로, 2차 판독 캐시 저장 매체에 대한 내구성 등급은, 특히 판독 캐시로서 사용하기 위한 조건들 하에서 결정될 수 있다. 2차 판독 캐시로서 사용하기 위한 저장 매체의 내구성 레벨에 영향을 주는 고려사항들은 일반적인 사용을 위한 저장 매체의 내구성 레벨을 결정하기 위해 의존되는 고려사항들과는 현저하게 상이할 수 있다. 예를 들어, 2차 판독 캐시는 메인 데이터 스토어와 코히어런트할 수 있는데, 이는 2차 판독 캐시 상에 저장된 데이터가 또한 메인 데이터 스토어 상에서 이용가능함을 의미할 수 있다. 따라서, 저장 매체 상에서의 데이터의 손실 또는 손상은 저장 매체가 일반적인 용도에서보다 판독 캐시로서 사용될 때 더 용인가능할 수 있는데, 그 이유는 임의의 손실된 데이터가 필요하다면 메인 데이터 스토어로부터 검색될 수 있기 때문이다. 2차 판독 캐시에 사용되는 저장 매체의 내구성 레벨을 결정하기 위해 의존될 수 있는 다른 인자들은 에러율, 보유 요건들, 프로그래밍/소거 동작 고장들, 비트 에러율, 동작 온도 등을 포함한다.
일 구현예에서, 2차 판독 캐시에 사용되는 데이터 저장 매체의 내구성 레벨은 동적으로 결정될 수 있고, 저장 매체의 수명 동안 수정될 수 있다. 예를 들어, 2차 판독 캐시에 사용되는 저장 매체의 검출된 동작 온도가 디바이스의 수명에 걸친 예상 범위보다 현저하게 더 높은 경우, 2차 판독 캐시의 내구성은 하향 수정될 수 있다. 반면, 검출된 비트 에러율 및 프로그래밍/소거 동작 고장율이 디바이스의 수명에 걸쳐서 예상되는 것보다 더 낮은 상태로 유지되는 경우, 2차 판독 캐시의 내구성은 상향 수정될 수 있다.
하이브리드 데이터 저장 디바이스가, 하이브리드 데이터 저장 디바이스의 수명에 걸친 2차 판독 캐시 상에서의 프로그래밍/소거 동작들의 총 횟수를 2차 판독 캐시에 사용되는 저장 매체의 내구성 레벨보다 더 적은 양으로 제한하는 것이 중요할 수 있는데, 그 이유는 2차 판독 캐시에 사용되는 저장 매체의 고장이 하이브리드 데이터 저장 디바이스로 하여금 고장 모드에 진입하게 할 수 있기 때문이다.
하이브리드 데이터 저장 디바이스는 디바이스의 남은 수명을 다수의 기간들로 나눌 수 있다. 일 구현예에서, 기간들은 5초, 10초, 15초 등과 같은 동일한 기간들이고, 하이브리드 데이터 저장 디바이스의 남은 수명은 하이브리드 데이터 저장 디바이스를 커버하는 품질 보증 기간에 걸쳐서 연장된다. 다른 구현예에서, 기간들은 동일하지 않다. 또 다른 구현예에서, 기간들의 길이는 가변적이고, 하이브리드 데이터 저장 디바이스의 수명에 걸쳐서 변경될 수 있다.
하이브리드 데이터 저장 디바이스의 남은 수명이 기간들로 나뉜 후, 기간들이 모두가 동일한 값의 것임을 가정하면, 기간당 프로그래밍/소거 동작들의 최대 횟수는 남은 수명 프로그래밍/소거 동작들을 남은 기간들로 나눔으로써 계산될 수 있다. 도 1을 참조하면, 이력 추적 모듈(114)은 2차 판독 캐시와 연관된 내구성 값, 및 하이브리드 데이터 저장 디바이스의 수명에 걸쳐서 지금까지 2차 판독 캐시 상에서 수행된 프로그래밍/소거 동작들의 총 횟수와 상응하는 프로그래밍/소거 동작 카운터를 저장할 수 있다. 이력 추적 모듈(114)은 2차 판독 캐시 상에서 수행되는 각각의 프로그래밍/소거 동작에 대해 프로그래밍/소거 동작 카운터를 증분시킬 수 있다. 분석 모듈(116)은 프로그래밍/소거 동작 카운터 상에 저장된 프로그래밍/소거 동작들의 총 횟수와 이력 추적 모듈(114) 상에 저장된 2차 캐시에 대한 내구성 값 사이의 차이를 취함으로써 그리고 그 값을 남은 기간들의 수로 나눔으로써 기간당 2차 캐시 상에서의 허용가능한 프로그래밍/소거 동작들의 최대 횟수를 계산할 수 있다.
판독 캐시로의 프로모션들의 억제
본 발명의 일 태양은 2차 판독 캐시로의 프로모션들의 횟수를 하이브리드 데이터 저장 디바이스의 수명에 걸친 각각의 기간 내의 허용가능한 프로그래밍/소거 동작들의 최대 횟수보다 적은 수로 제한하는 것을 수반한다. 2차 판독 캐시로의 프로모션들을 억제하는 것은 다수의 방식들로 행해질 수 있다. 일 구현예에서, 2차 판독 캐시로의 프로모션들은 최대 값에 도달될 때까지 수용될 수 있고, 임의의 후속 프로모션들이 다음 기간의 시작 때까지 거부될 수 있다. 다른 구현예에서, 2차 판독 캐시로의 프로모션에 대한 요건들의 엄중성은 소정 기간 동안의 프로모션들의 횟수가 그 기간 동안의 허용가능한 프로모션들의 최대 횟수에 근접함에 따라 더 엄중해질 수 있다. 2차 판독 캐시로의 프로모션에 대한 요건들의 엄중성을 증가시키는 한 가지 방식은 프로모션을 위해 고려되는 데이터에 대한 판독 핫니스(hotness) 임계치를 증가시키는 것이다. 이러한 예에서, 프로모션들은 기간 중 조기 부분 동안에 덜 엄중할 것이고, 기간 동안에 조우되는 프로모션들의 횟수에 따라, 기간이 진행됨에 따라 더 엄중해질 것이다. 엄중성 요건들을 증가시키는 이점은, 프로그래밍/소거 동작들의 횟수가 소정 기간에 걸친 허용가능한 프로그래밍/소거 동작들의 최대 횟수에 근접함에 따라 높은 판독 핫니스 임계치를 갖는 데이터가 그 기간의 만료 가까이에서 프로모션될 수 있을 것이라는 것이다. 반면, 프로모션에 대한 엄중성 요건들이 기간 전체에 걸쳐서 일정한 상태로 유지되는 경우, 더 낮은 판독 핫니스 임계치들을 갖는 프로모션들은 한도에 도달될 때까지 수용될 수 있고, 이어서, 더 높은 판독 핫니스 임계치들을 갖는 프로모션들은 일단 그 기간 동안에 한도에 도달되면 거부될 수 있다.
도 4는 판독 캐시로의 프로모션들을 억제함으로써 하이브리드 데이터 저장 디바이스에서의 프로그래밍/소거 동작들을 관리하기 위한 예시적인 동작들(400)을 도시한다. 동작(402)은 2차 판독 캐시의 남은 수명을 기간들로 나누는 동작이다. 일 구현예에서, 기간들은 동일한 기간들일 수 있다. 각각의 기간들은, 예를 들어 5초, 10초, 15초 등의 길이일 수 있다. 다른 구현예에서, 기간들은 길이 면에서 동일하지 않을 수 있다. 동작(404)은 기간들 중 하나의 기간 동안에 데이터를 판독 캐시로 프로모션하도록 하는 프로모션 요청을 수신하는 것이다. 프로모션 요청의 대상인 데이터는 메인 데이터 스토어 상에 상주할 수 있고, 요청은 호스트로부터의 데이터 액세스 요청들에 응답하여 프로모션 요청의 대상인 데이터를 판독하는 데 이용가능하도록 하기 위해 데이터를 메인 데이터 스토어로부터 판독 캐시로 프로모션하도록 하는 것일 수 있다.
프로모션 요청이 수용되어야 하는지 여부가 판정될 수 있기 전에, 동작(406)에서, 하이브리드 데이터 저장 디바이스는 프로모션 요청이 수신된 기간 동안의 프로그래밍/소거 동작 허용량을 결정할 수 있다. 동작(406)은 남은 허용가능한 수명 프로그래밍/소거 동작들을 남은 기간들의 수로 나누는 것을 수반한다. 일 구현예에서, 분석 모듈은 동작(406)의 계산을 수행할 수 있다. 남은 허용가능한 수명 프로그래밍/소거 동작들의 횟수는 판독 캐시의 내구성 레벨을 검색함으로써 그리고 그 시간에 이르기까지 판독 캐시 상에서 수행되는 총 프로그래밍/소거 동작들의 횟수를 감산함으로써 계산될 수 있다. 일 구현예에서, 이력 추적 모듈은 판독 캐시와 연관된 내구성 레벨을 보유할 수 있다. 이력 추적 모듈은, 또한, 판독 캐시 상에서 지금까지 총 수명 프로그래밍/소거 동작들을 추적하는 카운터를 유지할 수 있다. 이력 추적 모듈은, 추가로, 하이브리드 데이터 저장 디바이스가 동작 중에 있던 시간의 양 및 하이브리드 데이터 저장 디바이스에 대한 품질 보증 기간의 만료를 표현하는 기간 또는 일자에 관한 데이터를 보유할 수 있다. 일 구현예에서, 분석 모듈은 이력 추적 모듈로부터 필요한 데이터를 검색할 수 있고, 동작(406)의 계산을 수행할 수 있다.
동작(408)에서 프로모션 요청을 수용함으로써 프로모션 요청이 수신된 기간 동안의 프로그래밍/소거 동작들의 최대 횟수가 초과되는 경우, 동작(410)에서, 하이브리드 데이터 저장 디바이스는 프로모션 요청을 억제할 수 있다. 일 구현예에서, 동작(410)에서 프로모션 요청을 억제하는 것은 요청을 거부하는 것을 포함한다. 다른 구현예에서, 동작(410)에서 프로모션 요청을 억제하는 것은, 예를 들어 프로모션 요청들에 대한 판독 핫니스 임계치를 증가시키는 것과 같은, 프로모션 요청들을 수용하기 위한 엄중성을 증가시키는 것을 포함한다. 동작(404)에서 수신된 프로모션 요청이 그것이 수신된 기간 동안의 최대의 허용가능한 프로그래밍/소거 동작들을 초과할 것이지만, 그럼에도 불구하고, 동작(404)에서 수신된 프로모션 요청이 증가된 판독 핫니스 임계치를 만족시키는 경우, 그렇게 하는 것이 그 기간 동안에 최대의 허용가능한 프로그래밍/소거 동작들을 초과한다 하더라도, 하이브리드 데이터 저장 디바이스는 동작(404)에서 수신된 프로모션 요청을 수용할 수 있다. 프로모션 요청을 수용하는 것은, 그것이 소정 기간 동안에 최대의 허용가능한 프로그래밍/소거 동작들을 초과할 것이라 하더라도, 판독 핫니스 레벨이 충분히 높은 경우에는 수용가능할 수 있는데, 그 이유는 그렇게 하는 것이 본질적으로 미래의 기간들의 프로그래밍/소거 동작 예산(budget)으로부터 "차용하는 것"이기 때문이다. 소정 기간 동안 최대의 허용가능한 프로그래밍/소거 동작 한도를 초과하여 높은 판독 핫니스 값을 갖는 프로모션을 수용하는 것은 미래의 소정 기간 내에 상대적으로 더 낮은 판독 핫니스 값을 갖는 다른 프로모션을 위하여 그 프로모션을 거부하는 것이 선호될 수 있다. 하이브리드 데이터 저장 디바이스가 소정 기간 동안의 최대 허용가능한 프로그래밍/소거 동작 한도를 초과하고, 이어서 다음에, 하이브리드 데이터 저장 디바이스가 각각의 기간에 대해 최대의 허용가능한 프로그래밍/소거 동작들을 계산하는 경우, 미래의 기간들은 초기 기간 내의 최대의 허용가능한 프로그래밍/소거 동작들을 초과하는 것으로 인해 더 적은 횟수의 최대의 허용가능한 프로그래밍/소거 동작들을 할당받을 것이다.
동작(404)에서 수신된 프로모션 요청이 하이브리드 데이터 저장 디바이스에 의해 수용되는 경우, 동작(412)에서, 프로모션 요청의 대상인 데이터는 판독 캐시로 프로모션될 수 있다. 동작(412)에서 데이터가 판독 캐시로 프로모션된 후, 동작(414)에서, 총 수명 프로그래밍/소거 동작 카운터는 동작(412)에서 데이터를 프로모션하도록 수행된 프로그래밍/소거 동작들의 횟수를 반영하도록 증분될 수 있다. 일 구현예에서, 이력 추적 모듈은 판독 캐시 상에서의 총 수명 프로그래밍/소거 동작들을 추적하는 카운터를 유지한다. 동작(416)은 판독 캐시의 총 허용된 프로그래밍/소거 동작들의 횟수, 즉 내구성으로부터 총 수명 프로그래밍/소거 카운터의 값을 감산함으로써 판독 캐시 상에서의 남은 허용가능한 프로그래밍/소거 동작들을 결정하는 것이다. 이어서, 동작들(400)은 판독 캐시로의 데이터의 프로모션에 대한 요청을 수신하는 동작(404)으로 복귀된다.
판독 캐시 상에서의 가비지 수집 동작들의 억제
본 발명의 다른 태양은 판독 캐시 상에서의 가비지 수집 동작들을 억제함으로써 프로그래밍/소거 동작들을 관리하는 것이다. 판독 캐시가 메인 데이터 스토어와 코히어런트하는 경우, 즉 판독 캐시 상의 임의의 데이터가 또한 메인 데이터 스토어 상에 존재하는 경우, 전체적으로 하이브리드 데이터 저장 디바이스 상에서 유효 데이터를 손실하지 않으면서 판독 캐시 상에서의 가비지 수집 동작들 동안에 유효 데이터의 이송을 스킵하는 것이 가능하다. 예를 들어, 판독 캐시 상의 소거 블록이 유효 데이터의 하나의 페이지를 포함하고 남은 페이지들이 스테일 데이터로 소모되는 경우, 그 소거 블록은 유효 데이터의 페이지를 다른 블록으로 이송하지 않으면서 가비지 수집 동작 동안에 소거될 수 있는데, 다시 말해, 유효 데이터의 페이지가 "스킵"되었다. 호스트가 스킵된 페이지 내에 포함되었던 데이터에 대한 데이터 액세스 요청을 행하는 경우, 하이브리드 데이터 저장 디바이스는 데이터를 다시 판독 캐시로 프로모션할 수 있거나, 또는 그것은 메인 데이터 스토어로부터의 요청 데이터로 호스트의 데이터 액세스 요청에 직접적으로 응답할 수 있다.
가비지 수집 동작을 시작하기 전, 하이브리드 데이터 저장 디바이스는 모든 유효 데이터가 이송되어야 하는 경우에 가비지 수집 동작과 연관된 기록 증폭 값을 계산할 수 있다. 예상되는 기록 증폭 값이 기록 증폭 한도를 초과하는 경우, 또는 가비지 수집 동작 동안에 유효 데이터를 이송시키는 것과 연관된 프로그래밍/소거 동작들이, 가비지 수집 동작이 발생할 기간 내에 허용가능한 프로그래밍/소거 동작들의 최대 허용가능한 횟수를 초과하거나 그에 근접하는 경우, 하이브리드 데이터 저장 디바이스는 가비지 수집 동작 동안에 일부 또는 모든 유효 데이터의 이송을 스킵할 수 있다. 일 구현예에서, 가비지 수집 동작 동안에 스킵될 유효 데이터가 랜덤으로 선택될 수 있다. 다른 구현예에서, 스킵될 유효 데이터는, 가장 최근에 사용된 데이터 또는 데이터의 콜드니스에 기초하는 것을 제한 없이 포함하여 휴리스틱에 기초하여 선택될 수 있다. 일 구현예에서, 하이브리드 데이터 저장 디바이스 상의 분석 모듈은 판독 캐시 상의 데이터의 콜드니스를 판정하기 위해 액세스 패턴 추적기를 포함할 수 있다.
가비지 수집 동작들 동안에 판독 캐시 상의 유효 데이터의 이송을 스킵하는 것의 고려사항은 축출되는 데이터가, 데이터를 이송하는 것이 유리한지 아니면 스킵하는 것이 유리한지 결정할 수 있도록 충분한 이력이 구축될 수 있을 정도로 충분히 길게 판독 캐시 내에서 남아 있을 기회를 가졌던 경우에 바람직할 수 있다. 축출된 유효 데이터가 미래에 판독 캐시에 재기록될 필요가 있을 가능성이 있지만, 이러한 위험은 통지된 결정이 이루어질 수 있도록 그것이 임계 기간보다 더 길게 판독 캐시 상에서 남아 있었던 때까지 유효 데이터를 이송함으로써 최소화될 수 있다.
가비지 수집 동작들 동안에 유효 데이터의 이송을 스킵하는 것은 기록 증폭을 제어할 수 있고, 최상의 경우의 시나리오에서, 유효 데이터의 이송이 공격적으로 스킵되는 경우에 1의 기록 증폭을 달성할 수 있다. 다른 구현예에서, 가비지 수집 동작들에 대한 기록 증폭 한도 값이 있고, 유효 데이터는 그 가비지 수집 동작에 대한 기록 증폭 한도에 도달되었을 지점까지 이송될 수 있다. 특정 가비지 수집 동작에 대해 기록 증폭 한도에 도달된 후에 이송되지 않았던 임의의 유효 데이터는 스킵될 수 있다. 일 구현예에서, 2.0의 기록 증폭 한도가 개별적인 가비지 수집 동작들에 대해 설정되어, 2.0의 기록 증폭을 초과했을 임의의 가비지 수집 동작들이, 기록 증폭 한도에 도달된 후에 임의의 유효 데이터의 이송을 스킵함으로써 캡핑(cap)되게 할 수 있다. 다른 구현예에서, 기록 증폭 한도 값은 판독 캐시의 오버프로비저닝 레벨에 의존한다. 판독 캐시의 오버프로비저닝 레벨이 높을수록 기록 증폭이 더 낮을 것으로 예상될 수 있고, 그 역도 성립한다. 가비지 수집 동안의 유효 데이터의 이송을 스킵하는 것은 실제 기록 증폭이 판독 캐시의 오버프로비저닝 레벨에 기초하여 예상되는 기록 증폭과 부합할 수 있게 할 수 있다.
도 5는 판독 캐시 상에서의 가비지 수집 동작들을 억제함으로써 하이브리드 데이터 저장 디바이스에서의 프로그래밍/소거 동작들을 관리하기 위한 예시적인 동작들을 도시한다. 동작(502)은 가비지 수집 동작을 개시하는 것이다. 가비지 수집 동작은 판독 캐시의 일부 또는 전부를 포함할 수 있거나, 또는 판독 캐시 상의 가비지 수집 유닛을 포함할 수 있다. 동작(504)은 가비지 수집 기록 증폭 한도를 결정하는 것이다. 가비지 수집 기록 증폭 한도는 전체 가비지 수집 동작, 전체로서의 판독 캐시, 또는 판독 캐시 상의 가비지 수집 유닛에 적용될 수 있다. 가비지 수집 기록 증폭 한도는, 판독 캐시의 오버프로비저닝 레벨에 기초하여, 가비지 수집 동작이 발생할 기간 동안의 사용을 위해 이용가능한 프로그래밍/소거 동작들의 허용가능한 횟수에 기초하여, 등등을 제한 없이 포함하여 동적으로 결정될 수 있다. 대안으로, 가비지 수집 기록 증폭 한도는 사전결정된 값일 수 있다.
동작(506)은 가비지 수집 동작에 대해 예상되는 기록 증폭을 결정한다. 일 구현예에서, 동작(506)은 모든 유효 데이터가 이송되어야 하는 경우에 가비지 수집 동작에 대해 예상되는 기록 증폭을 결정하고, 어떠한 유효 데이터도 이송되지 않음을 결정한다. 다른 구현예에서, 동작(506)은 유효 데이터의 일부만이 가비지 수집 동작 동안에 이송되는 경우에 가비지 수집 동작에 대한 기록 증폭을 결정한다. 가비지 수집 동작에 대해 예상되는 기록 증폭이 기록 증폭 한도보다 더 큰 경우, 동작(516)은 가비지 수집 유닛 내에서의 유효 데이터의 이송들을, 연관된 기록 증폭을 기록 증폭 한도보다 더 적게 제한하는 양으로 제한한다. 동작(516)은, 먼저 가장 콜드니스인 데이터, 가장 최근에 사용됨, 등등을 제한 없이 포함하는 휴리스틱에 따라 또는 랜덤으로 스킵될 유효 데이터를 결정할 수 있다. 가비지 수집 동작에 대한 기록 증폭이 기록 증폭 한도보다 더 크지 않은 경우, 동작(510)은 현재 가비지 수집 유닛에 대한 가비지 수집 동작을 완료한다. 현재 가비지 수집 유닛이 가비지 수집 동작 시의 마지막 가비지 수집 유닛인 경우, 동작들(500)은 동작(514)에서 다음 가비지 수집 유닛으로 진행된다. 현재 가비지 수집 유닛이 가비지 수집 동작 시의 마지막 가비지 수집 유닛이 아닌 경우, 동작들(500)은 동작(518)에서 종료된다.
도 6은 하이브리드 데이터 저장 디바이스 내의 판독 캐시 상에서의 시간에 대한 총 누적 프로그래밍/소거 동작들의 플롯(600)이다. 라인(602)은 판독 캐시의 수명에 걸친 프로그래밍/소거 동작들의 일정한 소모를 표현한다. 다시 말해, 품질 보증 기간의 만료(시간 T3으로 표현됨) 때까지 하이브리드 데이터 저장 디바이스의 수명의 시작으로부터 일련의 기간들 중의 각각의 기간이 최대의 허용된 프로그래밍/소거 동작들을 소모한 경우, 프로그래밍/소거 소모의 플롯이 라인(602)을 뒤따를 것이다.
라인(604)은 시간 경과에 따라 판독 캐시에 대한 프로그래밍/소거 동작 소모의 예시적인 플롯을 표현한다. 시간 T1에서, 판독 캐시에 의해 소모되는 수명 프로그래밍/소거 동작들의 횟수는 지점(A)에서 라인(604)의 값에 의해 표현된다. 지점(A)은 라인(602) 상에 있어서, 기간당 최대 예산책정된 프로그래밍/소거 동작들을 표현한다. 따라서, 지점(A)에서, 이용가능한 어떠한 과도한 프로그래밍/소거 동작들도 없고, 라인(602)을 넘지 않으면서 어떠한 추가 프로그래밍/소거 동작들도 소모되지 않을 수 있다. 시간 T1에서, 하이브리드 데이터 저장 디바이스는 프로그래밍/소거 동작들이 다수의 방식들로 소모되고 있는 속도를 감소시킬 수 있다. 예를 들어, 오버프로비저닝은 판독 캐시 상에서 증가되어, 그것이 감소된 기록 증폭으로 인해 더 적은 프로그래밍/소거 동작들의 이점으로 자가-축출에 대해 고려되기 전에 데이터가 캐시 상에서 남아 있을 수 있는 시간의 양을 감소시킬 수 있다. 대안으로 또는 추가로, 프로모션에 필요한 판독 핫니스 임계치를 증가시켜서 더 적은 호스트 프로모션들이 시간 T1과 시간 T3 사이의 기간에 따라 행해지게 함으로써 프로모션들이 더 엄격하게 행해질 수 있다. 대안으로 또는 추가로, 가비지 수집 동작들은 더 많은 유효 데이터의 이송을 스킵하여, 감소된 기록 증폭으로 인해 더 적은 프로그래밍/소거 동작들을 버닝(burning)할 수 있다.
시간 T2에서, 판독 캐시에 의해 소모되는 총 수명 프로그래밍/소거 동작들의 횟수는 지점(B)에서 라인(604)의 값에 의해 표현된다. 지점(B)은 라인(602) 아래에 있어서, 프로그래밍/소거 동작들의 최대 버닝을 표현한다. 따라서, 지점(B)에서, 프로그래밍/소거 동작들이 일정한 속도로 소모된 경우에 소모되는 것보다 더 많은 프로그래밍/소거 동작들이 기간에 따라 소모될 수 있다. 다시 말해, 기울기 1을 갖는 라인(606)은 프로그래밍/소거 동작들이 시간 T1과 시간 T3 사이에서 소모될 수 있는 새로운 최대 속도를 표현한다. 다양한 방식들로 가능한 추가 프로그래밍/소거 동작들이 행해질 수 있다. 예를 들어, 오버프로비저닝은 판독 캐시 상에서 감소되어, 그것이 감소된 기록 증폭으로 인해 더 큰 프로그래밍/소거 동작들의 비용으로 자가-축출에 대해 고려되기 전에 데이터가 캐시 상에서 남아 있을 수 있는 시간의 양을 증가시킬 수 있다. 대안으로 또는 추가로, 프로모션에 필요한 판독 핫니스 임계치를 감소시켜서 더 많은 호스트 프로모션들이 시간 T1과 시간 T3 사이의 기간에 따라 행해지게 함으로써 프로모션들이 덜 엄격하게 행해질 수 있다. 대안으로 또는 추가로, 가비지 수집 동작들은 더 많은 유효 데이터를 이송하여, 증가된 기록 증폭으로 인해 프로그래밍/소거 동작들을 버닝할 수 있다.
도 6의 플롯은 본 명세서에 기술된 기법들이 하이브리드 데이터 저장 디바이스 상에서의 프로그래밍/소거 동작들을 관리하도록 하는 조절가능한 파라미터들을 제공함을 도시한다. 조절가능한 파라미터들은 2차 판독 캐시 상의 오버프로비저닝 레벨들의 수정, 프로모션들의 억제, 및 가비지 수집 동작들의 억제를 포함한다. 이들 파라미터들은 도 6의 플롯에 도시된 바와 같이 하이브리드 데이터 저장 디바이스의 수명 동안에 동적으로 조절되어, 판독 캐시의 수명을 연장시키기 위한 성능을 트레이딩할 수 있다. 예를 들어, 하이브리드 데이터 저장 디바이스가 동작의 초창기 동안의 낮은 사용 레벨들과 조우하는 경우, 파라미터들은 증가하는 프로그래밍/소거 동작들의 비용으로 디바이스의 수명의 나머지에 걸쳐서 개선된 성능을 제공하도록 조절될 수 있는데, 그 이유는 디바이스가 판독 캐시의 내구성 한도를 능가하는 위험에 처해 있지 않기 때문이다. 반면, 하이브리드 데이터 저장 디바이스가 그의 수명 초창기 동안에 과다 사용과 조우하는 경우, 파라미터들은 감소된 성능 비용으로 과도한 프로그래밍/소거 동작들로 인한 판독 캐시 고장의 위험을 감소시키도록 조절될 수 있다.
본 명세서에 기술된 구현예들은 하나 이상의 컴퓨터 시스템들에서 로직 동작들로서 구현된다. 로직 동작들은 (1) 하나 이상의 컴퓨터 시스템들에서 실행되는 프로세서 구현 동작들의 시퀀스로서, 그리고 (2) 하나 이상의 컴퓨터 시스템들 내의 상호접속 기계 또는 회로 모듈들로서 구현될 수 있다. 구현예는 활용되고 있는 컴퓨터 시스템의 성능 요건들에 따른 선택의 문제이다. 따라서, 본 명세서에 기술되는 구현예들을 구성하는 로직 동작들은 다양하게 동작들, 동작들, 객체들, 또는 모듈들로 지칭된다. 더욱이, 달리 명시적으로 주장되거나 특정 순서가 청구항의 언어로 고유하게 필요하지 않다면, 로직 동작들은 임의의 순서로 수행될 수 있다는 것을 이해해야 한다. 상기 설명, 예들, 및 데이터는, 첨부된 부록물과 함께, 구조의 완전한 설명 및 예시적인 구현예들의 사용을 제공한다.

Claims (20)

  1. 데이터 저장 디바이스에서의 동작들을 관리하기 위한 방법으로서,
    데이터 저장 캐시의 남은 수명을 일련의 시간 기간들로 나누는 단계;
    저장소 제어기로부터 기록 요청을 수신하여, 상기 일련의 시간 기간들 중 제1 시간 기간 동안에 하나 이상의 클러스터들을 상기 데이터 저장 캐시에 기록하는 단계 ― 상기 기록 요청은 상기 데이터 저장 캐시에 대한 가비지(garbage) 수집 동작을 수행하기 위한 요청의 일부로서 수신됨 ―;
    상기 제1 시간 기간 동안에 상기 데이터 저장 캐시 상에서 허용가능한 기록 동작들의 최대 횟수를 결정하는 단계; 및
    상기 기록 요청을 허용하는 것이 상기 제1 시간 기간 동안에 상기 데이터 저장 캐시 상에서 허용가능한 기록 동작들의 최대 횟수를 초과할 경우, 가비지 수집 동작들 동안 상기 데이터 저장 캐시 상에서 유효 데이터의 이송(migration)을 스킵(skip)함으로써 상기 기록 요청을 거절하는 단계 ― 상기 이송이 스킵되는 유효 데이터는, 임계 시간 기간보다 오랫동안 상기 데이터 저장 캐시 상에 남아 있는 유효 데이터로부터 선택됨 ―
    를 포함하는, 데이터 저장 디바이스에서의 동작들을 관리하기 위한 방법.
  2. 제1항에 있어서, 상기 기록 요청을 허용하는 것이 상기 제1 시간 기간 동안에 상기 저장 캐시 상에서 허용되는 기록 동작들의 최대 횟수를 초과하지 않을 경우에 상기 기록 요청을 허용하는 단계를 추가로 포함하는, 데이터 저장 디바이스에서의 동작들을 관리하기 위한 방법.
  3. 제1항에 있어서, 상기 제1 시간 기간 동안에 상기 데이터 저장 캐시 상에서 허용가능한 기록 동작들의 최대 횟수를 결정하는 것은, 상기 데이터 저장 캐시의 남은 수명 동안 남은 허용가능한 기록 동작들의 횟수를 상기 일련의 시간 기간들 중 남은 기간들의 수로 나누는 단계를 포함하는, 데이터 저장 디바이스에서의 동작들을 관리하기 위한 방법.
  4. 제3항에 있어서, 상기 데이터 저장 캐시의 남은 수명 동안 상기 남은 허용가능한 기록 동작들의 횟수는, 저장 디바이스의 예상되는 수명 기록 동작 내구성과 상기 저장 디바이스의 수명에 걸쳐서 상기 저장 디바이스 상에서 이미 수행된 기록 동작들의 횟수의 사이의 차이에 의해 결정되는, 데이터 저장 디바이스에서의 동작들을 관리하기 위한 방법.
  5. 제4항에 있어서, 상기 저장 캐시의 상기 예상되는 수명 기록 동작 내구성은 기록 관련 고장(failure), 데이터 보유 요건, 동작 온도, 및 비트 에러율 중 적어도 하나에 기초하여 결정되는, 데이터 저장 디바이스에서의 동작들을 관리하기 위한 방법.
  6. 제1항에 있어서, 상기 이송이 스킵되는 유효 데이터는, 휴리스틱(heuristic)에 기초하여 미리결정된 임계치보다 오랫동안 상기 데이터 저장 캐시에 남아 있는 유효 데이터로부터 선택되는, 데이터 저장 디바이스에서의 동작들을 관리하기 위한 방법.
  7. 제6항에 있어서, 상기 휴리스틱은 상기 미리결정된 임계치보다 오랫동안 상기 데이터 저장 캐시에 남아 있는 유효 데이터에 대한 이력 구축(history built)을 기반으로 하는, 데이터 저장 디바이스에서의 동작들을 관리하기 위한 방법.
  8. 데이터 저장 디바이스에서의 동작들을 관리하기 위한 방법으로서,
    데이터 저장 캐시의 남은 수명을 일련의 시간 기간들로 나누는 단계;
    저장소 제어기로부터 기록 요청을 수신하여, 상기 일련의 시간 기간들 중 제1 시간 기간 동안에 하나 이상의 클러스터들을 상기 데이터 저장 캐시에 기록하는 단계 ― 상기 기록 요청은 상기 데이터 저장 캐시에 대한 가비지 수집 동작을 수행하기 위한 요청의 일부로서 수신됨 ―;
    상기 제1 시간 기간 동안에 상기 데이터 저장 캐시 상에서 허용가능한 기록 동작들의 최대 횟수를 결정하는 단계;
    상기 기록 요청을 허용하는 것이 상기 제1 시간 기간 동안에 상기 데이터 저장 캐시 상에서 허용가능한 기록 동작들의 최대 횟수를 초과할 경우, 가비지 수집 동작들 동안 상기 데이터 저장 캐시 상에서 유효 데이터의 이송을 스킵함으로써 상기 기록 요청을 거절하는 단계 ― 상기 이송이 스킵되는 유효 데이터는, 임계 시간 기간보다 오랫동안 상기 데이터 저장 캐시 상에 남아 있는 유효 데이터로부터 선택됨 ―; 및
    상기 가비지 수집 동작의 기록 증폭이 상기 유효 데이터를 이송하지 않고 기록 증폭 한도치를 초과하는 경우, 상기 가비지 수집 동작 동안 소거(erasure)를 위해 상기 임계 시간 기간보다 오랫동안 상기 데이터 저장 캐시 상에 남아 있는 유효 데이터로부터 유효 데이터의 하나 이상의 페이지들을 포함하는 하나 이상의 블록들을 선택하는 단계
    를 포함하는, 데이터 저장 디바이스에서의 동작들을 관리하기 위한 방법.
  9. 제8항에 있어서, 상기 가비지 수집 동작 동안 소거를 위해 선택된 상기 유효 데이터의 하나 이상의 페이지들을 포함하는 하나 이상의 블록들은, 상기 가비지 수집 동작의 기록 증폭을 상기 기록 증폭 한도치 미만으로 제한할 수 있는, 데이터 저장 디바이스에서의 동작들을 관리하기 위한 방법.
  10. 제8항에 있어서,
    상기 임계 시간 기간 보다 오랫동안 상기 데이터 저장 캐시 상에 남아 있는 유효 데이터로부터 소거를 위해 선택된 상기 유효 데이터의 하나 이상의 페이지들을 포함하는 상기 하나 이상의 블록들은 랜덤으로 선택되는, 데이터 저장 디바이스에서의 동작들을 관리하기 위한 방법.
  11. 제8항에 있어서,
    상기 임계 시간 기간 보다 오랫동안 상기 데이터 저장 캐시 상에 남아 있는 유효 데이터로부터 소거를 위해 선택된 상기 유효 데이터의 하나 이상의 페이지들을 포함하는 상기 하나 이상의 블록들은, LRU(Least Recently Used) 클러스터에 따라 선택되는, 데이터 저장 디바이스에서의 동작들을 관리하기 위한 방법.
  12. 데이터 저장 디바이스로서,
    메인 데이터 스토어 및 데이터 저장 캐시를 포함하는 데이터 저장 매체; 및
    상기 메인 데이터 스토어로부터의 데이터의 클러스터들을 상기 데이터 저장 캐시에 기록하도록 구성된 데이터 저장 캐시 관리 서브시스템
    을 포함하고,
    상기 데이터 저장 캐시 관리 서브시스템은, 가비지 수집 동작들 동안 상기 데이터 저장 캐시 상의 유효 데이터의 이송을 스킵함으로써 상기 데이터 저장 캐시 상의 기록 동작들을 제한하도록 추가로 구성되며, 상기 이송이 스킵되는 유효 데이터는 임계 시간 기간보다 오랫동안 상기 데이터 저장 캐시 상에 남아 있는 유효 데이터로부터 선택되는, 데이터 저장 디바이스.
  13. 제12항에 있어서, 상기 데이터 저장 캐시 관리 서브시스템은, 메인 데이터 스토어로부터 상기 데이터 저장 캐시로의 프로모션 요청들을 거절함으로써 상기 데이터 저장 캐시 상의 기록 동작들을 제한하도록 구성된, 데이터 저장 디바이스.
  14. 제12항에 있어서, 상기 데이터 저장 캐시 관리 서브시스템은, 상기 데이터 저장 캐시의 오버프로비저닝 레벨을 증가시킴으로써 상기 데이터 저장 캐시 상의 기록 동작들을 제한하도록 구성된, 데이터 저장 디바이스.
  15. 삭제
  16. 제12항에 있어서, 상기 데이터 저장 캐시는 상기 메인 데이터 스토어와 코히어런트(coherent)한, 데이터 저장 디바이스.
  17. 제12항에 있어서, 상기 데이터 저장 캐시 관리 서브시스템은, 기록 고장들, 데이터 보유 요건, 동작 온도들, 및 비트 에러율 중 하나 이상에 기초하여 상기 데이터 저장 캐시 상의 예상되는 수명 기록 동작 내구성을 조절하도록 구성된, 데이터 저장 디바이스.
  18. 삭제
  19. 삭제
  20. 삭제
KR1020170087992A 2016-07-13 2017-07-11 데이터 저장 디바이스 내에서의 액세스 동작들의 제한 KR102422710B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/209,584 2016-07-13
US15/209,584 US10534716B2 (en) 2016-07-13 2016-07-13 Limiting access operations in a data storage device

Publications (2)

Publication Number Publication Date
KR20180007688A KR20180007688A (ko) 2018-01-23
KR102422710B1 true KR102422710B1 (ko) 2022-07-18

Family

ID=60941078

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170087992A KR102422710B1 (ko) 2016-07-13 2017-07-11 데이터 저장 디바이스 내에서의 액세스 동작들의 제한

Country Status (3)

Country Link
US (1) US10534716B2 (ko)
KR (1) KR102422710B1 (ko)
CN (1) CN107622023B (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248327B2 (en) * 2016-04-01 2019-04-02 SK Hynix Inc. Throttling for a memory system using a GC/HOST ratio and operating method thereof
US10338983B2 (en) 2016-12-30 2019-07-02 EMC IP Holding Company LLC Method and system for online program/erase count estimation
US10289550B1 (en) 2016-12-30 2019-05-14 EMC IP Holding Company LLC Method and system for dynamic write-back cache sizing in solid state memory storage
US11069418B1 (en) 2016-12-30 2021-07-20 EMC IP Holding Company LLC Method and system for offline program/erase count estimation
US10289317B2 (en) * 2016-12-31 2019-05-14 Western Digital Technologies, Inc. Memory apparatus and methods thereof for write amplification aware wear leveling
US10403366B1 (en) 2017-04-28 2019-09-03 EMC IP Holding Company LLC Method and system for adapting solid state memory write parameters to satisfy performance goals based on degree of read errors
US10290331B1 (en) 2017-04-28 2019-05-14 EMC IP Holding Company LLC Method and system for modulating read operations to support error correction in solid state memory
JP2019164857A (ja) * 2018-03-19 2019-09-26 株式会社東芝 ディスク装置
CN108804339B (zh) * 2018-03-29 2019-07-16 北京白山耘科技有限公司 一种内存垃圾回收方法及装置
KR20210157157A (ko) 2020-06-19 2021-12-28 삼성전자주식회사 메모리 컨트롤러의 구동방법, 호스트의 구동방법 및 스토리지 장치
US11748139B2 (en) * 2020-08-21 2023-09-05 Vmware, Inc. Dynamic over-provisioning of space in a log-structured file system
KR20220082509A (ko) * 2020-12-10 2022-06-17 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
CN112685337B (zh) * 2021-01-15 2022-05-31 浪潮云信息技术股份公司 一种存储集群中分级缓存读写数据的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140244918A1 (en) * 2010-07-14 2014-08-28 Nimble Storage, Inc. Methods and systems for reducing churn in flash-based cache

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100744122B1 (ko) 2006-01-12 2007-08-01 삼성전자주식회사 하이브리드 하드디스크 드라이브의 제어 방법, 이에 적합한기록 매체 그리고 이에 적합한 장치
CN101118783A (zh) * 2006-09-07 2008-02-06 晶天电子(深圳)有限公司 带有闪存坏块控制系统的电子数据闪存卡
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
CN101681282A (zh) * 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
US8554983B2 (en) * 2008-05-27 2013-10-08 Micron Technology, Inc. Devices and methods for operating a solid state drive
US8010738B1 (en) * 2008-06-27 2011-08-30 Emc Corporation Techniques for obtaining a specified lifetime for a data storage device
CN101673245B (zh) 2008-09-09 2016-02-03 株式会社东芝 包括存储器管理装置的信息处理装置和存储器管理方法
US8407403B2 (en) * 2009-12-07 2013-03-26 Microsoft Corporation Extending SSD lifetime using hybrid storage
US8285918B2 (en) * 2009-12-11 2012-10-09 Nimble Storage, Inc. Flash memory cache for data storage device
CN104808954B (zh) * 2009-12-24 2017-12-01 株式会社日立制作所 提供虚拟卷的存储系统及其控制方法
US8639872B1 (en) 2010-08-13 2014-01-28 Western Digital Technologies, Inc. Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk
CN102253894B (zh) * 2011-06-14 2013-09-04 沈阳建筑大学 一种闪存存储器等概率连续空间存储文件的方法
US9489133B2 (en) * 2011-11-30 2016-11-08 International Business Machines Corporation Optimizing migration/copy of de-duplicated data
US8918581B2 (en) * 2012-04-02 2014-12-23 Microsoft Corporation Enhancing the lifetime and performance of flash-based storage
US8838891B2 (en) 2012-04-13 2014-09-16 Lsi Corporation SSD cache expansion using overprovisioned space
US9645917B2 (en) * 2012-05-22 2017-05-09 Netapp, Inc. Specializing I/O access patterns for flash storage
US20130346672A1 (en) * 2012-06-22 2013-12-26 Microsoft Corporation Multi-Tiered Cache with Storage Medium Awareness
CN103176752A (zh) * 2012-07-02 2013-06-26 晶天电子(深圳)有限公司 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器
CN102799534B (zh) * 2012-07-18 2015-11-25 上海宝存信息科技有限公司 基于固态存储介质的存储系统及方法、冷热数据识别方法
US8799561B2 (en) * 2012-07-27 2014-08-05 International Business Machines Corporation Valid page threshold based garbage collection for solid state drive
US9141532B2 (en) 2012-12-26 2015-09-22 Western Digital Technologies, Inc. Dynamic overprovisioning for data storage systems
GB2511325A (en) * 2013-02-28 2014-09-03 Ibm Cache allocation in a computerized system
CN103136121B (zh) * 2013-03-25 2014-04-16 中国人民解放军国防科学技术大学 一种固态盘的缓存管理方法
US9507719B2 (en) 2013-08-20 2016-11-29 Seagate Technology Llc Garbage collection in hybrid memory system
US9285999B2 (en) 2013-11-27 2016-03-15 Vmware, Inc. Cache migration
US10430328B2 (en) 2014-09-16 2019-10-01 Sandisk Technologies Llc Non-volatile cache and non-volatile storage medium using single bit and multi bit flash memory cells or different programming parameters
US10331551B2 (en) * 2014-12-29 2019-06-25 Toshiba Memory Corporation Information processing device and non-transitory computer readable recording medium for excluding data from garbage collection
US9436392B1 (en) 2015-02-17 2016-09-06 Nimble Storage, Inc. Access-based eviction of blocks from solid state drive cache memory
US10235290B2 (en) * 2015-06-26 2019-03-19 Advanced Micro Devices, Inc. Hot page selection in multi-level memory hierarchies

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140244918A1 (en) * 2010-07-14 2014-08-28 Nimble Storage, Inc. Methods and systems for reducing churn in flash-based cache

Also Published As

Publication number Publication date
CN107622023A (zh) 2018-01-23
US20180018269A1 (en) 2018-01-18
US10534716B2 (en) 2020-01-14
KR20180007688A (ko) 2018-01-23
CN107622023B (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
KR102388718B1 (ko) 데이터 저장 디바이스 내에서의 캐시 오버프로비저닝
KR102422710B1 (ko) 데이터 저장 디바이스 내에서의 액세스 동작들의 제한
US10216639B2 (en) Identification of blocks to be retained in a cache based on temperature
US10922235B2 (en) Method and system for address table eviction management
EP2939120B1 (en) Priority-based garbage collection for data storage systems
US9846641B2 (en) Variability aware wear leveling
US8200904B2 (en) System and method for clearing data from a cache
US20100325352A1 (en) Hierarchically structured mass storage device and method
US8572325B2 (en) Dynamic adjustment of read/write ratio of a disk cache
US9208101B2 (en) Virtual NAND capacity extension in a hybrid drive
US9104578B2 (en) Defining address ranges used to cache speculative read data
US10635581B2 (en) Hybrid drive garbage collection
JP2015529368A (ja) ストレージトランスレーションレイヤー
US20090094391A1 (en) Storage device including write buffer and method for controlling the same
US20150277764A1 (en) Multi-mode nand-caching policy for hybrid-hdd
CN105955672B (zh) 用于灵活控制损耗均衡的固态存储系统及方法
JP2019086974A (ja) ストレージシステム及びその制御方法
WO2015173889A1 (ja) ストレージ装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant