KR20170142931A - 판독 캐시 관리 - Google Patents

판독 캐시 관리 Download PDF

Info

Publication number
KR20170142931A
KR20170142931A KR1020170077377A KR20170077377A KR20170142931A KR 20170142931 A KR20170142931 A KR 20170142931A KR 1020170077377 A KR1020170077377 A KR 1020170077377A KR 20170077377 A KR20170077377 A KR 20170077377A KR 20170142931 A KR20170142931 A KR 20170142931A
Authority
KR
South Korea
Prior art keywords
data
read cache
sequence
storage
read
Prior art date
Application number
KR1020170077377A
Other languages
English (en)
Other versions
KR102357203B1 (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 KR20170142931A publication Critical patent/KR20170142931A/ko
Application granted granted Critical
Publication of KR102357203B1 publication Critical patent/KR102357203B1/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/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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
    • 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/0871Allocation or management of cache space
    • 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/1016Performance improvement

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 명세서에 개시된 구현예들은 온-디스크 판독 캐시를 포함하는 저장 시스템 및 다양한 판독 캐시 관리 기법들을 제공한다. 일 구현예에 따르면, 저장 디바이스 제어기는 자기 디스크의 판독 캐시에 데이터 시퀀스를 저장하는 일련의 불연속적 데이터 블록들을 시간 순차적으로 판독하는데, 데이터 시퀀스는 로직 블록 어드레스(LBA)들의 요청된 시퀀스에 의해 식별된다. 제어기는 데이터 시퀀스에 대한 판독 요청들이 적어도 하나의 사전결정된 액세스 빈도 기준을 만족시키는 것으로 판정하고, 판정에 응답하여, 제어기는 데이터 시퀀스의 데이터를 판독 캐시 내의 일련의 연속적 데이터 블록들에 재기록한다.

Description

판독 캐시 관리{READ CACHE MANAGEMENT}
데이터 저장 시스템들에서는, 로직 블록 어드레스(logical block address, LBA) 시퀀스들로서 식별가능한 특정 판독 액세스 패턴들이 반복해서 발생한다. 판독 커맨드들을 수신 순서로 실행하는 것은 저장 매체 상의 넓은 공간 영역 위에 저장된 데이터를 검색하는 것을 수반할 수 있다. 하드 드라이브 조립체들과 같은 이동 부분들을 갖는 일부 저장 디바이스들에서, 그러한 액세스 패턴들은 디바이스 성능에 대해 강한 악영향을 미친다. 이들 디바이스들에서, 저장 디바이스의 액추에이터 아암은 상이한 반경 위치들 사이에서 이동하여 물리적으로 전혀 다른 데이터를 판독해야 할 수도 있다. 과도한 액추에이터 아암 이동은 시간 소모적이고, 사소하지 않은 전력 소모자이다.
일 구현예에서, 개시되는 기술은 자기 디스크 상의 판독 캐시를 활용하는 데이터 관리 방법을 제공한다. 방법은 자기 디스크의 판독 캐시 내에 데이터 시퀀스를 저장하는 일련의 불연속적 데이터 블록들을 시간 순차적으로 판독하는 단계, 및 데이터 시퀀스에 대한 판독 요청들이 적어도 하나의 사전결정된 액세스 빈도 기준을 만족시키는 것으로 판정하는 단계를 수반한다. 판정에 응답하여, 판독 캐시 내의 일련의 연속적 데이터 블록들에 데이터 시퀀스의 데이터를 재기록하여 데이터 시퀀스의 후속하는 순차적 판독을 가능하게 하는 단계.
이러한 발명의 내용은 발명을 실시하기 위한 구체적인 내용에서 하기에 추가로 기술되는 간소화된 형태로 개념들의 선택을 도입하기 위해 제공된다. 이러한 발명의 내용은 청구되는 발명의 요지의 중요한 특징부들 또는 본질적인 특징부들을 식별하도록 의도되는 것도 아니고, 청구되는 발명의 요지의 범주를 제한하기 위해 사용되도록 의도되는 것도 아니다. 청구되는 발명의 요지의 다른 특징부들, 상세들, 활용들, 및 이점들은, 추가로 첨부 도면에 도시되고 첨부된 청구범위에서 정의되는 바와 같은 다양한 구현예들에 대한 하기의 보다 구체적으로 설명된 발명을 실시하기 위한 구체적인 내용으로부터 자명할 것이다.
설명되는 기술은 첨부 도면과 관련하여 판독되는 다양한 구현예들을 설명하는 하기의 발명을 실시하기 위한 구체적인 내용으로부터 가장 잘 이해된다.
도 1은 온-디스크 판독 캐시(on-disk read cache)를 포함하는 저장 디바이스 및 판독 캐시의 동적 재순차화를 위한 기법들을 구현하는 제어기를 갖는 예시적인 데이터 저장 시스템을 도시한다.
도 2는 판독 캐시 재순차화 및 캐시 데이터 복제 관리를 위한 기법들을 구현하기 위한 예시적인 저장 시스템을 도시한다.
도 3은 판독 캐시 재순차화 및 캐시 데이터 복제 관리를 위한 추가 기법들을 구현하기 위한 예시적인 저장 시스템을 도시한다.
도 4는 동적 판독 캐시 관리 기법들을 구현하기 위한 다른 예시적인 저장 시스템을 도시한다.
도 5는 온-디스크 판독 캐시의 히트(heat) 시퀀스 검출 및 데이터 복제 관리를 위한 예시적인 동작들을 도시한다.
데이터 저장, 검색, 및 분석을 위한 요건들이 증가함에 따라, 더 저렴하고 더 빠른 데이터 저장 디바이스들에 대한 요구가 또한 증가했다. 하드 디스크 드라이브(Hard disk drive, HDD)들은 데이터 저장 디바이스 컴퓨팅 시스템들로서 광범위하게 사용된다. 그러한 데이터 저장 디바이스들은 자기 매체, 광학 매체 등 상에 데이터를 저장하는 디스크 드라이브들을 포함한다. 솔리드 스테이트 디바이스(Solid state device, SSD)들은, 대조적으로, 이동 컴포넌트들을 갖지 않고, 메모리로서 집적 회로 조립체들을 사용하여 데이터를 저장한다. SSD들은 데이터 액세스 속도 및 시스템 성능 면에서 이점들을 제공하는 반면, HDD들은 비용 면에서 이점들을 제공한다. SSHD들로도 지칭되는 하이브리드 드라이브들은 HDD 기술과 SSD 기술을 결합하여 비용 및 속도의 이점들을 레버리징(leveraging)한다.
일부 SSHD들은 판독 캐시로서 플래시 컴포넌트를 사용하여, 빈번하게 또는 최근에 액세스된 데이터(본 명세서에서는, "핫(hot)" 데이터로도 지칭됨)에의 빠른 액세스를 허용한다. 플래시 메모리와 같은 SSD 메모리가 판독 캐시로서 사용되는 경우, 판독 캐시 내의 모든 데이터는 동일한 속도로 액세스될 수 있다. 이러한 경우에 있어서, 캐시 데이터 셀들이 플래시에 실제로 배열되는 순서는 시스템 성능에 영향을 주지 않는다. 대조적으로, HDD들의 액세스 속도에 있어서의 지연들은, 주로, 데이터의 물리적 위치들, 및 액추에이터 아암이 판독 또는 기록 동작을 수행하기 위해 각각의 물리적 위치를 "탐색"하는 데 필요한 연관 시간에 기인한다. 그 결과, HDD 시스템들이 자기 디스크 상에 물리적으로 위치된 임의의 타입의 판독 캐시를 포함하는 것은 드물다.
본 명세서에 개시되는 기술은 HDD가 SSHD의 바람직한 드라이브 성능 특징부들을 모방할 수 있게 하는 데이터 관리 기법들을 제공한다. 일 구현예에서, 이는 온-디스크 판독 캐시를 사용하여 달성된다. 본 명세서에 개시되는 다양한 판독 캐시 관리 기법들, 예컨대 동적 히트 시퀀스 검출에 관한 기법들, 캐시 데이터 재순차화를 위한 기법들, 캐시 데이터 복제 관리를 위한 기법들, 및 동적 캐시 저장 할당을 위한 기법들은 디바이스 성능 증가를 제공한다.
도 1은 온-디스크 판독 캐시(이하, "판독 캐시(102)"), 및 판독 캐시(102)의 동적 재순차화를 위한 기법들을 구현하는 제어기(126)를 포함하는 저장 디바이스(104)를 갖는 예시적인 데이터 저장 시스템(100)을 도시한다. 저장 디바이스(104)는 설정된 수의 저장 바이트들을 보유할 수 있는 다수의 데이터 블록들(예컨대, 섹터(110))을 갖는 디스크(108)를 포함한다.
저장 디바이스(104)는 디스크(108) 위에 위치되는 액추에이터 아암(116)의 원위 단부 상에 헤드(120)를 포함한다. 액추에이터 회전 축(125)을 중심으로 회전하는 로터리 음성 코일 모터는 타깃 섹터를 포함하는 동심 데이터 트랙 상에 헤드(120)를 위치시키는 데 사용되는 반면, 디스크 회전 축(113)을 중심으로 회전하는 스핀들 모터는 디스크(108)를 회전시키는 데 사용된다. 플렉스 케이블(134)은 동작 동안 액추에이터 아암(116)의 피봇 이동이 디스크(108)의 내경(114)에 근접해 있는 반경 위치와 외경(118)에 근접해 있는 반경 위치 사이에서 헤드(120)를 이동할 수 있게 하면서 헤드(120)에 필수적인 전기 접속 경로들을 제공한다.
디스크(108) 상의 저장 공간은 적어도 판독 캐시(102)와 메인 저장부(112)로 분할된다. 메인 저장부(112)는 호스트 컴퓨터(128)에 의해 판독되고 기록되는 일차 데이터 저장 영역이다. 메인 저장부(112) 내의 각각의 데이터 블록은 호스트 컴퓨터(128)에 의해 저장 디바이스(104)로 송신되는 판독 또는 기록 커맨드에서 특정될 수 있는 로직 어드레스(예컨대, 로직 블록 어드레스(LBA))와 연관된다. 메인 저장부(112)와는 대조적으로, 판독 캐시(102)는 소정 "핫 데이터" 요건들을 충족시키는 데이터의 리던던트 저장을 위해 사용된다. 예를 들어, 판독 캐시는 사전정의된 기준들에 따라 "빈번하게 액세스"될 것 또는 "최근에 액세스"된 것으로 판정된 데이터의 리던던트 카피를 저장할 수 있다. 다양한 구현예들에서, 저장 디바이스(104)는, 예를 들어 종래의 자기 기록, 슁글형(shingled) 자기 기록, 인터레이스형 자기 기록 등을 비롯한 다양한 저장 및 데이터 관리 기법들을 구현할 수 있다. 따라서, 판독 캐시(102)는, 상이한 구현예들에서, 상이한 특성들을 갖는 트랙들, 예컨대 슁글형 데이터 트랙들, 언슁글형 데이터 트랙들, 인터레이스형 트랙들, 증가되는 방사상 밀도(인치당 트랙수(tracks-per-inch) 또는 TPI)로 배열되는 트랙들 등을 포함할 수 있다.
도 1에는, 디스크(108)의 외경(118) 근처의 영역에 위치된 판독 캐시(102)가 도시되어 있다. 이 위치는 드라이브 성능에 이익이 되는데, 그 이유는 디스크(108)의 외경(118) 근처에 저장된 데이터가 더 큰 선형 속도로 회전하고, 일반적으로, 내경(114) 근처에 저장된 데이터보다 더 빨리 액세스될 수 있기 때문이다. 판독 캐시(102)는 단일의 데이터 트랙 또는 다수의 데이터 트랙들을 포함할 수 있다. 일부 구현예들에서, 판독 캐시(102)는 도 1에 도시된 것과는 상이한 영역에, 예컨대 외경(118)의 약간 안쪽에 위치된다.
저장 디바이스(104)는 초기에 다양한 규칙들 및 기법들을 이용하여 핫 데이터를 식별할 수 있다. 일 구현예에서, 제어기(126)는 각각의 개별 LBA들이 메인 저장부(112)로부터 판독되거나 그에 기록되는 횟수에 기초하여 소정 LBA들을 "핫"한 것으로 식별한다. 이러한 판정은, 일부 구현예들에서, LBA들이 액세스되는 임의의 순서와는 독립적으로 수행된다. 새로운 핫 데이터가 식별되는 경우, 제어기(126)의 판독 캐시 관리 모듈(122)은 판독 캐시(102)에 데이터를 기록한다. 핫 데이터는 판독 순서와는 무관하게 초기에 판독 캐시(102)에 배열될 수 있다. 예를 들어, 빈번하게 함께 판독되는 LBA들의 시퀀스들은 불연속적 블록들 상에, 상이한 트랙들 상에, 기타 등등에 저장될 수 있다.
제어기(126)가 자기 디스크로부터 데이터를 판독하라는 커맨드를 수신하는 경우, 제어기(126)는 액추에이터 아암(116)이 메인 저장부(112) 내에서 요청 데이터에 대응하는 위치들을 탐색하기 전에 LBA 캐시 리스트(130)를 체킹하여 요청된 LBA들이 판독 캐시(102)에서 이용가능한지 여부를 판정한다. 요청된 LBA들 중 하나 이상이 LBA 캐시 리스트(130) 상에서 식별되는 이벤트 시, 제어기(126)는 메인 저장부(112)보다는 판독 캐시(102)로부터 연관된 요청 데이터를 검색할 것을 선택할 수 있다.
일부 사례들에 있어서, 호스트(128)는 판독 캐시(102)에 랜덤하게 저장된 데이터 시퀀스에 대한 판독 요청을 제어기(126)로 송신할 수 있다. 본 명세서에서 사용되는 바와 같이, "데이터 시퀀스"라는 용어는, 일반적으로, 예컨대 하나 이상의 판독 또는 기록 커맨드들에서, 호스트(128) 또는 제어기(126)에 의해 특정되는 로직 어드레스(LBA)들의 시간 순차 시퀀스에 의해 식별가능한 데이터를 지칭한다. 데이터 시퀀스는, 요청된 LBA들의 대응하는 액세스 시퀀스가 저장 디바이스(104)의 회전 액세스 순서에 따라 판독가능한 자기 디스크(108) 상의 데이터 블록들의 물리적으로 연속적인 순서에 대응하지 않는 경우에 자기 디스크(108) 상에서 "랜덤하게 저장"되는 것으로 간주된다. 다시 말해, "랜덤하게" 액세스되는 데이터 시퀀스는 저장 디바이스(104)의 자연스러운 시간 순차 판독 액세스 순서에 따라 판독가능하지 않다. 예를 들어, 랜덤하게 저장된 데이터 시퀀스의 판독은 액추에이터 아암(116)을 대응하는 수의 상이한 반경 위치들로 작동시키는 1회 이상의 시간 소모적 탐색 및 회전 동작들을 수반할 수 있다.
랜덤하게 저장된 데이터 시퀀스와는 대조적으로, 데이터 시퀀스는, 본 명세서에서, 데이터 시퀀스가 LBA들의 액세스 시퀀스의 순서에 따라 배열된 자기 디스크(108) 상의 일련의 물리적으로 연속적인 데이터 블록들에 대응하는 요청된 LBA들의 액세스 시퀀스에 의해 식별되는 경우에 "순차적인" 또는 "순차적으로 저장된" 것으로 지칭된다. "순차적 판독"이라는 용어는, 본 명세서에서, 저장 디바이스(104)의 회전 액세스 순서의 물리적 레이아웃에 따라 수행되는 블록들의 물리적 순차 시퀀스의 판독을 지칭하는 데 사용된다. 예를 들어, 단일 데이터 트랙을 따라서 배열된 연속적 데이터 블록들은 저장 디바이스(104)의 자연스러운 물리적 레이아웃 판독 순서에 따라 순차적으로 판독될 수 있는 데이터 시퀀스를 저장할 수 있다. 마찬가지로, 2개의 인접 트랙들에 걸쳐져 있는 연속적 데이터 블록들(예컨대, 2개의 인접 데이터 트랙들 상의 모든 블록들)은 저장 디바이스(104)의 자연스러운 물리적 레이아웃 판독 순서에 따라 순차적으로 판독될 수 있는 데이터 시퀀스를 저장할 수 있다.
핫 데이터가 메인 저장부(112)에서 식별되어 판독 캐시(102) 내에 카피되는 순서로 인해, 판독 캐시(102)는 랜덤하게 저장된 일부 데이터를, 예컨대 반드시 공통 파일들, 프로그램들, 데이터 루틴들 등에 관련된 다른 소형 데이터 청크(chunk)들과 물리적으로 관련하여 저장되는 것이 아닌 소형 데이터 청크들(예컨대, 32 KB)에 포함할 수 있다. 그러나, 시간 경과에 따라, 히트 시퀀스 검출 모듈(124)은 판독 캐시(102)로부터의 판독들을 모니터링하고, 판독 캐시(102)로부터 검색된 데이터의 "히트 시퀀스들"(예컨대, 데이터 액세스의 빈도 및/또는 최신성에 관련된 기준들과 같은 하나 이상의 액세스 빈도 기준을 만족시키는 시퀀스들)을 인식하여 추적하기 시작한다.
예를 들어, 히트 시퀀스 검출 모듈(124)은 랜덤하게 저장된 시퀀스의 데이터 블록들이 "X, L, A, B, Q, W"의 순서로 판독 캐시(102)로부터 빈번하게 판독되는 것으로 판정할 수 있다. 이러한 예에서, X, L, A, B, Q, 및 W는 섹터 또는 다수의 연속적으로 저장된 데이터 섹터들과 같은 개별 LBA 또는 LBA들의 블록을 각각 표현할 수 있다. 이러한 시퀀스(예컨대, X, L, A, B, Q, W)를 판독하라는 요청들이 사전결정된 액세스 빈도 기준들을 만족시키는 경우, 히트 검출 모듈(124)은 요청된 시퀀스를 "히트 시퀀스"로서 식별한다. 각각의 식별된 히트 시퀀스의 LBA들은 메모리에, 예컨대 검출된 히트 시퀀스 리스트(132)(예컨대, 예시적인 로그 파일)에 기록되고, 각각의 히트 시퀀스의 데이터는 판독 캐시 내에 물리적으로 재배열되어 각각의 식별된 히트 시퀀스의 순차적 판독을 허용한다. 예를 들어, 판독 캐시 관리 모듈(122)은 각각의 식별된 히트 시퀀스의 랜덤하게 저장된 데이터를 판독하고, 시퀀스의 LBA들이 호스트(128)에 의해 요청된 순서에 따라 데이터를 재배열하고, 데이터의 순차적 재판독(read back)을 허용하는 방식으로 판독 캐시(102)에 재배열된 데이터를 재기록한다. 예를 들어, 판독 캐시 관리 모듈(122)은 식별된 히트 시퀀스의 랜덤하게 저장된 데이터 블록들을 판독 캐시(102) 내의 단일 데이터 트랙을 따라서 배열된 일련의 연속적 데이터 블록들로서 재기록한다.
LBA 캐시 리스트(130) 및/또는 검출된 히트 시퀀스 리스트(132)는 각각 호스트 LBA들과 자기 디스크(108) 상의 물리적 데이터 블록들의 맵핑을 포함할 수 있다. 빠른 액세스를 위해, LBA 캐시 리스트(130) 및/또는 검출된 히트 시퀀스 리스트(132) 중 하나 또는 양측 모두가 DRAM과 같은 저장 디바이스(104)의 휘발성 메모리(도시되지 않음)에 저장될 수 있다. 예를 들어, LBA 캐시 리스트(130) 및/또는 검출된 히트 시퀀스 리스트(132)의 맵핑들은 자기 디스크(104) 상에 지속적으로 저장될 수 있으며, 정전 후에 저장 디바이스(104)가 전력을 획득할 때마다 휘발성 메모리 내에 로딩될 수 있다.
전술된 바와 같이, 캐시 데이터를 동적으로 재배열하여 히트 시퀀스들의 순차적 판독들을 허용하는 것은, SSD 메모리에 판독 캐시를 포함하는 더 비싼 SSHD 디바이스들에 의해 제공되는 것과 유사한 또는 동등한 액세스 속도에 따라 히트 시퀀스 데이터의 판독들을 가능하게 한다. 일부가 하기에 기술되는 다양한 캐시 관리 기법들은 성능과 데이터 저장 용량 사이에 최적화된 트레이드오프들을 제공하면서 이러한 높은 액세스 속도 이점을 보완하도록 채용될 수 있다.
제어기(126)는 소프트웨어 및/또는 하드웨어를 포함하고, 데이터 저장 디바이스(100) 내의 또는 그와 통신가능하게 커플링된 임의의 유형적 컴퓨터 판독가능 저장 매체들에서 구현될 수 있다. 본 명세서에서 사용되는 바와 같이, "유형적 컴퓨터 판독가능 저장 매체들"이라는 용어는 RAM, ReRAM, MRAM, 플래시 메모리 또는 다른 메모리 기술, 및 다른 솔리드 스테이트 저장 클래스 메모리 또는 다른 광학 디스크 저장소, 자기 카세트들, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 원하는 정보를 저장하는 데 사용될 수 있고 모바일 디바이스 또는 컴퓨터에 의해 액세스될 수 있는 임의의 다른 유형적 매체를 포함하지만 그로 제한되지 않는다. 유형적 컴퓨터 판독가능 저장 매체들과는 대조적으로, 무형적 컴퓨터 판독가능 통신 신호들은 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들 또는 변조된 데이터 신호에 상주하는 다른 데이터, 예컨대 반송파 또는 다른 신호 전달 메커니즘을 구체화할 수 있다.
도 2는 판독 캐시 재순차화 및 복제 관리를 위한 기법들을 구현하는 예시적인 저장 시스템(200)을 도시한다. 저장 시스템(200)은 적어도 하나의 자기 디스크(210)를 포함하는데, 저장 공간이 판독 캐시(202)와 메인 저장부(204) 사이에 할당되어 있다. 메인 저장부(204) 내의 각각의 데이터 블록은 호스트 컴퓨터(도시되지 않음)의 어드레싱 스킴(scheme)에 속하는 LBA와 연관된다. 판독 캐시(202)는, 대조적으로, 소정의 "핫 데이터" 기준들을 충족시키는 것으로 판정된 LBA들과 연관된 데이터의 리던던트 카피들을 저장한다. 판독 캐시(202)는 단일 데이터 트랙 또는 다수의 데이터 트랙들을 포함할 수 있으며, 본 명세서에서 불완전한 영역(206) 및 완전한 영역(208)으로 지칭되는 제1 및 제2 연속적 영역들로 분할된다.
불완전한 영역(206)은 데이터의 다양한 블록들이 액세스될 수 있는 순서와는 무관하게 핫 데이터를 랜덤하게 저장한다. 대조적으로, 완전한 영역(208)은 식별된 히트 시퀀스들을 순차적으로 저장하여, 호스트 디바이스에 의한 각각의 시퀀스의 순차적인 재판독을 허용하게 한다. 도 2에서, 완전한 영역(208)은 불완전한 영역(206)보다 자기 디스크(210)의 외경(212)에 더 가깝게 도시되어 있다. 다른 구현예들에서, 이러한 영역들의 위치설정은 디스크의 외경(212)에 대해 반전될 수 있다. 일부 구현예들에서, 완전한 영역(208) 및 불완전한 영역(206)은 각각 연속적이지만, 경계를 공유하지는 않는다.
개별적인 LBA들 또는 LBA들의 블록들이 초기에 하나 이상의 사전결정된 액세스 빈도 기준을 만족시키는 것으로 식별되는 경우, LBA들에 대응하는 데이터는 초기에 불완전한 영역(206)에 기록된다. 예를 들어, 핫 데이터 검출 모듈(도시되지 않음)은 메인 저장부 영역(204)에의 데이터 기록들을 모니터링할 수 있고, 빈번하게 액세스된 메인 저장부 데이터 블록들을 식별할 수 있다. 일 구현예에서, 핫 데이터 검출 모듈은 메인 저장부(204)의 빈번하게 수행된 작은 랜덤 판독치들(예컨대, 약 32 KB 미만의 판독치들)을 식별한다. 이들 빈번하게 수행된 랜덤 판독치들이 액세스의 빈도 및/또는 최신성에 관련된 기준들과 같은 하나 이상의 사전결정된 액세스 빈도 기준을 만족시키는 경우, 메인 저장부(204)의 대응하는 데이터는 판독 캐시(202)의 불완전한 영역(206)에 카피된다. 예를 들어, 예시적인 데이터 블록 "B"는 매일, 매주, 매달, 또는 하나 이상의 사전결정된 액세스 빈도 기준을 만족시키는 일부 다른 빈도로 액세스되는 데이터의 32 KB 블록일 수 있다.
일 구현예에서, 메인 저장부(204)의 데이터는 드라이브 작동(power-up) 즉시(예컨대, 1분 이내에) 액세스되는 경우에 "핫 데이터"로서 식별되고 판독 캐시(202) 내에 배치된다. 예를 들어, 소정 스트링의 데이터 블록들은 "핫"한 것으로 간주될 수 있고, 그 스트링이 소정 크기(예컨대, 500 MB)보다 작고 연관된 저장 디바이스에 전력이 인가된 후 첫 60초 내에 판독되는 경우에는 메인 저장부(204)로부터 불완전한 영역(206)으로 카피될 수 있다.
특히, 핫 데이터로서 식별되는 일부 데이터 블록들은 함께 빈번하게 액세스될 수 있지만, 여전히, 불완전한 영역(206) 내에 랜덤하게 저장될 수 있다. 예를 들어, LBA들의 2개의 블록들은 호스트에 의해 가끔 또는 종종 시간 순차적으로(시계열로) 요청될 수 있지만, 초기에 상이한 시간들에 "핫"한 것으로 식별될 수 있다. 이러한 경우에 있어서, 2개의 블록들은 비순차적인 판독 순서로 판독 캐시(102)에 배치될 수 있다.
시간의 경과에 따라, 히트 시퀀스 검출 모듈(도시되지 않음)은 판독 캐시(202)의 불완전한 영역(206)에 저장된 LBA들에 관계된 빈번하게 요청되는 재판독 시퀀스들을 파악한다. 이들 빈번하게 요청되는 LBA 시퀀스들에 관계된 액세스 요청들이 사전결정된 액세스 빈도 기준들(예컨대, 액세스의 빈도 및/또는 최신성에 관계됨)을 만족시키는 경우, 시퀀스들은, 일 구현예에서, "히트 시퀀스들"로서 로깅되고, 판독 캐시(202)의 완전한 영역(208)에 순차적으로 재기록된다. 예를 들어, 히트 시퀀스 검출 모듈은 불완전한 영역(206)의 불연속적 물리적 블록들에 연속적으로 대응하는 LBA들의 시퀀스에 의해 식별가능한 히트 시퀀스를 식별할 수 있다. 이러한 히트 시퀀스를 식별할 시, 히트 시퀀스 검출 모듈은 히트 시퀀스를 완전한 영역(208) 내에 순차적으로 재기록하여 시퀀스의 후속하는 순차적 판독을 허용한다. 식별된 히트 시퀀스가 먼저 완전한 영역(208) 내에 기록되는 경우, 대응하는 데이터 블록들은 삭제될 수 있거나 또는 불완전한 영역(206) 내에 다른 핫 데이터로 덮어쓰기될 수 있다.
도 2의 예에서, 불완전한 영역(206)은 A, Q, B, Z, Y, R, 및 F로 라벨링된 예시적인 핫 데이터 블록들을 랜덤하게 저장한다. 이들 핫 데이터 블록들 각각은 개별적인 LBA 또는 다수의 LBA들(예컨대, 부분 섹터, 전체 센터, 또는 연속적으로 저장된 다수의 섹터들)을 표현할 수 있다. 판독 캐시(202)의 불완전한 영역(206)으로부터 판독되는 경우, 이들 핫 데이터 블록들은 메인 저장부(204)에 동일한 데이터를 저장하는 연관된 데이터 블록들보다 훨씬 더 빠르게 액세스될 수 있다. 그러나, 특히, 블록 "A"에 뒤이은 블록 "Q"의 판독은 제1 반경 위치로부터 제2 반경 위치로의 액추에이터 아암의 탐색을 수반한다. 이러한 탐색은 데이터 액세스에서의 지연으로 이어진다.
히트 시퀀스 검출 모듈이 시퀀스 "AQBQYFQR"을 히트 시퀀스로서 식별하는 경우(예컨대, 그 이유는 대응하는 LBA 시퀀스를 판독하라는 요청들이 일부 사전결정된 액세스 빈도 기준들을 만족시키기 때문임), 판독 캐시 관리 모듈(도시되지 않음)은 식별된 히트 시퀀스의 데이터를 불완전한 영역(206)으로부터 판독하고, 데이터를 재배열하고, 요청된 LBA 시퀀스 순서에 따라 데이터를 완전한 영역(208) 내에 순차적으로 기록한다. 예를 들어, 히트 시퀀스(214)는 단일 데이터 트랙(216)을 따라서 연속적으로 배열된 핫 데이터 블록들 "ABZYFQR"을 포함하여, 히트 시퀀스(214)의 후속하는 순차적 판독을 가능하게 한다. 히트 시퀀스(214)가 먼저 완전한 영역(208)에 기록될 때, 불완전한 영역(206) 내의 대응하는 물리적 데이터 블록들(예컨대, A, B, Z, Y, F, Q, 및 R)은 메인 저장부(204)로부터의 카피된 새로운 핫 데이터의 덮어쓰기 및 저장에 이용가능하게 될 수 있다. 다른 구현예에서, 식별된 히트 시퀀스의 데이터 블록들은 히트 시퀀스가 완전한 영역(208)에 기록되자마자 불완전한 영역(206)에서 소거된다.
일 구현예에서, 완전한 영역(28)은 오직 핫 시퀀스들만을 저장하고, 어떠한 랜덤하게 배열된 데이터도 저장하지 않는다. 따라서, 완전한 영역(208)의 모든 또는 실질적으로 모든 데이터가 대응하는 히트 시퀀스의 순차적인 판독을 통해 액세스될 수 있다. 예시적인 핫 시퀀스들은, 예를 들어, 빈번하게 사용되는 프로그램을 개시하기 위한 실행가능 코드, 부트 시퀀스, 빈번하게 재생되는 미디어 파일의 데이터, 빈번하게 액세스되는 워드 문서의 데이터 등을 포함할 수 있다.
일부 경우들에 있어서, 불완전한 영역(206)으로부터 완전한 영역(208)으로 데이터를 이동시키는 것은, 예컨대 복제를 인식하고 허용함으로써 또는 복제를 경감 또는 제거하기 위한 단계들을 취함으로써, 복제를 추적 및 관리하는 것을 수반한다. 일 구현예에서, 저장 디바이스 제어기는 복제 데이터 블록들이 불완전한 영역(206) 및 완전한 영역(208) 양측 모두에 나타나지 않는 것을 보장하는 조치를 취한다. 다른 구현예에서, 저장 디바이스 제어기는 복제 데이터 블록들이 완전한 영역(208) 내에 나타나지 않는 것 - 또는 적당히 제한된 수량에 이르기까지 나타나는 것 - 을 보장하는 조치를 취한다.
일 구현예에서, 히트 시퀀스 검출은 복제의 인스턴스들을 식별하고 제거함으로써, 예컨대 전체 히트 시퀀스들 대신에 부분 히트 시퀀스들을 완전한 영역(208)에 기록함으로써 수행된다. 예를 들어, 새롭게 식별된 히트 시퀀스(220)는 데이터 블록들 'WJFZNB'을 포함한다. 이러한 히트 시퀀스가 먼저 식별되는 경우, 대응하는 데이터 블록들 중 일부 또는 모두가 불완전한 영역(206)에 랜덤하게 저장된다. (특히, 새롭게 식별된 히트 시퀀스 내의 데이터 블록들 중 일부는 이전에 식별된 그리고 순차적으로 저장된 히트 시퀀스 내의 완전한 영역(208)에 이미 저장될 수 있다).
새롭게 식별된 히트 시퀀스(예컨대, W J F Z N B)를 완전한 영역(208)에 기록할 준비를 하는 경우, 저장 디바이스 제어기는 새롭게 식별된 히트 시퀀스(220) 내의 임의의 데이터 블록들이 완전한 영역(208) 내의 히트 시퀀스들 중 다른 하나의 시퀀스 내에 중복으로 이미 나타나 있는지 여부를 판정한다. 도시된 예에서, 데이터 블록들(Z, B) 양측 모두는 순차적으로 저장된 히트 시퀀스(214) 내에 이미 나타나 있다. 따라서, 저장 디바이스 제어기는 부분 히트 시퀀스(218)를 완전한 영역(208)에 기록할 것을 선택한다. 부분 히트 시퀀스(218)는 블록들(Z, B)을 생략하지만, 새롭게 식별된 히트 시퀀스(220)의 모든 다른 블록들을 동일한 순서로 순차적으로 포함한다(예컨대, 부분 시퀀스(218)는 전체 히트 시퀀스(220) 'W J F Z N B'가 아니라 데이터 블록들의 시퀀스 'W J F N'를 포함한다).
저장 디바이스(200)가 새롭게 식별된 히트 시퀀스(220)를 판독하라는 후속하는 요청을 수신하는 경우, 저장 디바이스 제어기는 2개의 순차적인 판독들 - 부분 히트 시퀀스(218)의 하나의 판독 및 히트 시퀀스(214)의 부분(222)(점선으로 된 박스로 나타내짐)의 다른 판독 - 을 실행하여 데이터 블록들(Z, B)의 데이터를 검색한다. 메모리에서, 저장 디바이스는 판독 데이터를 함께 이어붙여서(splice), 호스트에 의해 요청되었던 새롭게 식별된 히트 시퀀스(220)를 재구성한다. 이어서, 이러한 재구성된 히트 시퀀스는 호스트(도시되지 않음)에 제공된다. 히트 시퀀스 재구성의 이러한 예시적인 인스턴스가 2개의 순차적인 판독 동작들의 실행을 수반하지만, 히트 시퀀스 재구성의 다른 인스턴스들은 3개 이상의 순차적인 판독들의 실행을 수반할 수 있다.
전술된 바와 같이, 일부 전체 히트 시퀀스들 및 일부 부분 히트 시퀀스들을 완전한 영역(208) 내에 선택적으로 기록함으로써, 고속 액세스(예컨대, 다수의 데이터 블록들이 여전히 순차적으로 판독될 수 있음)와 용량(예컨대, 판독 캐시(202)가 보다 많은 양의 사용자 데이터를 궁극적으로 저장할 수 있게 함) 사이에 균형이 달성될 수 있다.
저장 디바이스 제어기가 도 2의 예에서 중복제거(de-duplicate)하지만, 저장 디바이스 제어기는, 다른 구현예들에서, 어느 정도까지 복제를 허용할 수 있다. 선택적인 판독 캐시 블록 복제의 일례가 하기의 도 3과 관련하여 아래에서 논의된다.
도 3은 판독 캐시 재순차화 및 복제 관리를 위한 추가 기법들을 구현하는 예시적인 저장 시스템(300)을 도시한다. 저장 시스템(300)은 적어도 하나의 자기 디스크(310)를 포함하는데, 저장 공간이 판독 캐시(302)와 메인 저장부(304) 사이에 할당되어 있다. 판독 캐시(302)는 본 명세서에서 불완전한 영역(306) 및 완전한 영역(308)으로 지칭되는 제1 및 제2 연속적 영역들로 분할된다. 불완전한 영역(306)은 데이터의 다양한 블록들이 액세스될 수 있는 순서와는 무관하게 핫 데이터를 랜덤하게 저장한다. 대조적으로, 완전한 영역(308)은 식별된 히트 시퀀스들을 순차적으로 저장하여, 호스트 디바이스에 의한 각각의 시퀀스의 순차적인 재판독을 허용하게 한다.
도 3의 저장 시스템(300)은, 도 2와 관련하여 전술된 바와 같이, 핫 데이터를 식별할 수 있고, 불완전한 영역(306)을 관리할 수 있다. 그러나, 순차적인 히트 시퀀스들을 완전한 영역(308)에 기록하는 경우, 저장 시스템(300)은 복제의 인스턴스들을 선택적으로 허용한다. 도시된 예에서, 완전한 영역(308)은 2개의 히트 시퀀스들(314, 318)을 순차적으로 저장한다. 특히, 도 3의 예시적인 히트 시퀀스들(314, 318) 각각은 일부 공통 데이터 블록들 - B 및 Z - 을 저장하는데, 이들은 양측 히트 시퀀스들(314, 318) 모두에 중복으로 나타난다.
일 구현예에서, 저장 디바이스 제어기는 다수의 식별된 히트 시퀀스들 내의 잠재적인 복제를 모니터링하고, 현재의 복제 통계치에 기초하여 복제를 선택적으로 중복제거하거나 또는 허용한다. 복제가 허용되지 않는 경우, 저장 디바이스 제어기는, 도 2와 관련하여 전술된 바와 같이, 하나 이상의 부분 히트 시퀀스들을 완전한 영역(308)에 기록하여, 다른 순차적으로 저장된 히트 시퀀스 내에 이미 나타나 있는 임의의 데이터 블록(들)을 히트 시퀀스에서 의도적으로 생략할 수 있다. 그러나, 다른 사례들에 있어서, 저장 디바이스 제어기는, 도 3에 도시된 바와 같이, 현재의 캐시 복제 통계치들을 평가하고, 복제 데이터 블록들이 다수의 판독 캐시 위치들 내에 물리적으로 기록될 수 있게 한다.
다수의 핫 시퀀스들, 예컨대 시퀀스들(314, 318)에서 복제를 허용하는 것은, 저장 시스템(300)이 호스트에 히트 시퀀스들(314, 318) 각각의 데이터를 재판독할 수 있는 속도를 증가시킨다. 이러한 증가된 액세스 속도는 HDD 디바이스와 SSHD 디바이스 사이의 성능 면에서의 갭을 현저히 감소시킨다. 그러나, 특히, 캐시 데이터 복제는 저장 공간을 소모하며, 판독 캐시 용량의 효율적인 사용 면에서의 관심이 고속 데이터 액세스 면에서의 관심보다 더 클 수 있게 되는 환경들이 존재한다. 이들 사례들에 있어서, 캐시 관리 모듈은 (예컨대, 부분 히트 시퀀스를 기록함으로써) 선택적으로 중복제거할 것 및 다수의 순차적으로 저장된 히트 시퀀스들로부터의 선택 데이터 블록들을 함께 링크시켜서 특정의 요청된 히트 스퀀스를 재구성하게 하는 맵핑에 의존할 것을 선택할 수 있다.
순차적으로 저장된 히트 시퀀스들 내의 데이터 블록 복제를 처리하기 위한 규칙들은, 상이한 구현예들에서, 원하는 성능 통계치들 및 현재의 디스크 사용에 따라 변할 수 있다. 일부 구현예들에서, 복제 규칙들은 성능과 판독 캐시 용량 사이에서 균형을 달성하도록 설계된다. 예를 들어, 판독 캐시(302) 내의 데이터 블록 복제의 인스턴스들의 총 수가 사전결정된 최대치에 도달할 때까지 복제가 허용될 수 있다. 예를 들어, 복제의 20개에 이르는 인스턴스들이 완전한 영역(308) 내에 허용될 수 있다. 이러한 임계치가 초과되는 경우, 임의의 새롭게 식별된 히트 시퀀스들은 부분 히트 시퀀스들로서 선택적으로 중복제거될 수 있고 순차적으로 저장될 수 있다. 일부 경우들에 있어서, 저장 디바이스 제어기는 이전에 식별되고 순차적으로 저장된 히트 시퀀스들을 판독 캐시(302) 내의 여유 용량에 선택적으로 재기록할 수 있고 중복제거할 수 있다. 적어도 하나의 구현예에서, 완전한 영역(308) 내의 복제된 데이터 블록들의 연속적인 시퀀스의 최대 길이에 대해 제한이 있다.
일 구현예에서, 판독 캐시 관리 모듈은 히트 시퀀스 데이터에 관계된 판독 요청들의 로그를 유지한다. 이러한 로그를 이용하여, 판독 캐시 관리 모듈은 순차적으로 저장된 히트 시퀀스들을 시간 경과에 따라 랭크를 설정 및 재설정한다. 이전에 식별된 히트 시퀀스가 하나 이상의 필수적인 액세스 빈도 기준들을 만족시키지 못하는 경우, 판독 캐시 관리 모듈은 이전에 식별되고 순차적으로 저장된 히트 시퀀스를 새롭게 식별된 히트 시퀀스로 겹쳐쓸 것을 선택할 수 있다. 다른 경우들에 있어서, 하나 이상의 순차적으로 저장된 히트 시퀀스들을 포함하는 저장 공간은 소거될 수 있거나 또는 단순히 새롭게 식별된 히트 시퀀스 데이터의 덮어쓰기를 위해 이용가능하게 될 수 있다. 일 구현예에서, 판독 캐시 관리 모듈은 히트 시퀀스 데이터를 완전한 영역(308) 내의 주위로 이동시키기 위해, 예컨대 이용가능한 저장 공간을 함께 재위치시키고 그에 의해 완전한 영역(308)을 조각모음(defragment)하기 위해 완전한 영역(308)의 유지보수를 수행한다.
도 4는 동적 판독 캐시 관리 기법들을 구현하는 예시적인 저장 시스템(400)을 도시한다. 저장 시스템(400)은 자기 디스크(412)를 포함하는데, 물리적 데이터 저장소가 판독 캐시(402)와 메인 저장부(404) 사이에 할당되어 있다. 메인 저장부(404)는 사용자 데이터에 대한 일차 저장 영역으로서의 역할을 하는 한편, 판독 캐시(402)는 소정 "핫 데이터" 요건들을 충족시키는 것으로 판정된 데이터의 리던던트 카피들을 저장한다. 도시되어 있지 않지만, 판독 캐시(402)는, 도 2에서 기술된 바와 같이, 2개 이상의 서브영역들, 예컨대 "불완전한"(단편화된) 핫 데이터 블록들 및 "완전한"(순차적으로 저장된) 히트 시퀀스들을 저장하기 위한 영역들로 추가로 분할될 수 있다.
일 구현예에서, 자기 디스크(412)는 오버프로비저닝(overprovisioning)된 드라이브이고, 판독 캐시(402)는 저장 시스템(400)의 공칭 용량의 일부가 아닌 오버프로비저닝된 공간을 차지하도록 정적으로 할당된다. "오버프로비저닝"은 클라이언트 또는 시장에 판매되거나 마켓팅되는 저장 용량보다 더 많은 실제 저장 용량을 생산 및 출하(shipping)하는 관행을 지칭한다. 따라서, 예를 들어, 1 TB의 저장 용량이 클라이언트에게 판매되는 경우, 저장소 제공자는 실제로는 10% 초과 용량을 생산하고, 그에 따라 1.1 TB의 저장 용량이 디바이스 내에 생성된다. 일부 경우들에 있어서, 판독 캐시(402)는 이러한 여분의 용량 내에서 물리적 영역에 맵핑되고, 디바이스 제어기는 판독 캐시(402)로 지향되는 사용자 데이터의 호스트-개시된 기록들을 언제든 수신하지는 않는다.
다른 구현예에서, 판독 캐시(402)는 오버프로비저닝된 드라이브 공간에 포함되지 않고, 물리적 데이터 블록들은 판독 캐시(402)와 메인 저장부(404) 사이에서 동적으로 앞뒤로 할당될 수 있다. 예를 들어, 경계(406)는 동적이고, 저장 디바이스의 캐시 관리 모듈에 의해 이동가능하여, 소정 조건들의 만족에 기초하여 판독 캐시(402)와 메인 저장부(404) 사이에 물리적 저장소의 분포를 재할당하게 한다. 그러한 동적 판독 캐시 크기조정 기법들을 구현하는 시스템들에서, 판독 캐시(402)는 저장 시스템(400)의 "공칭" 용량의 일부일 수 있고, 메인 저장부(404) 및 판독 캐시(402) 내의 각각의 데이터 블록은 호스트 컴퓨터(도시되지 않음)의 LBA 어드레싱 스킴에 포함될 수 있다. 다시 말해, 저장 디바이스(400)는 판독 캐시(402)에 위치된 물리적 데이터 블록들로 지향되는 사용자 데이터의 호스트-개시된 기록들을 가끔 수신할 수 있다.
전술된 "동적" 저장 할당 구현예들에서 판독 캐시를 구현하기 위해, 예컨대 드라이브가 너무 가득 차서 판독 캐시로서가 아니라 사용자 데이터의 저장을 위해 판독 캐시(402)의 저장 공간을 사용하는 것이 바람직하게 될 때까지, 저장 디바이스 제어기는 소정 기간 동안 판독 캐시(402)로부터 인입 기록들을 멀리 지향시키는 동적 재맵핑 및 재지향 스킴을 구현할 수 있다.
하나의 그러한 구현예에서, 저장 디바이스 제어기는 판독 캐시(402)의 물리적 데이터 블록들에 대응하는 호스트 LBA들과 메인 저장부(404) 내의 물리적 데이터 블록들을 재맵핑하며, 메인 저장부(404)의 용량 활용이 하나 이상의 사전결정된 용량 기준을 만족시킬 때까지 모든 인입 사용 데이터 기록들을 그러한 재맵핑된 위치들 및 메인 저장부(404)의 다른 위치들로 재지향시킨다. 예를 들어, 사전결정된 용량 기준들은 메인 저장부(404) 내에 남아 있는 이용가능한(활용되지 않은) 공간의 분포 또는 수량을 특정할 수 있다. 메인 저장부(404)의 용량 활용이 하나 이상의 사전결정된 용량 기준을 만족시키는 경우, 저장 디바이스 제어기는 메인 저장부(404)로 판독 캐시(402)의 용량을 넘긴다(예컨대, 포기한다). 이러한 경우에 있어서, 판독 캐시(402)를 위해 이전에 사용된 데이터 블록들은 메인 저장부(404)의 일부로서 사용자 데이터의 수신 및 저장을 위해 재할당될 수 있다.
저장 디바이스 제어기는 다수의 적합한 맵핑 및 재지향 스킴들을 활용하여 동적 판독 캐시 크기조정을 구현할 수 있다. 일 구현예에서, 저장 디바이스 제어기는 사전결정된 용량 기준들이 만족된다는 판정에 응답하여 메인 저장부(404)로 전체 판독 캐시(402)를 넘긴다. 다른 구현예에서, 저장 디바이스 제어기는 메인 저장부(404)로 판독 캐시(402) 내의 저장 공간을 증분적으로 넘긴다. 예를 들어, 저장 디바이스 제어기는 메인 저장부(404)의 이용가능한 저장소가 제1 임계치까지 강하했다는 판정에 응답하여 메인 저장부(404)로 판독 캐시(402)의 10%를 포기할 수 있고, 메인 저장부(404)의 이용가능한 저장소가 제2 임계치까지 강하했다는 판정에 응답하여 메인 저장부(404)로 판독 캐시(402)의 다른 10%를 포기할 수 있고, 등등이다.
일 구현예에서, 판독 캐시(402)는 경계를 메인 저장부(404)와 공유하는 연속적인 저장 영역들을 통해 메인 저장부(4040)로 증분적으로 넘겨진다. 예를 들어, 메인 저장부(404)로 판독 캐시(402)의 일부를 증분적으로 넘기는 것은 화살표(408)로 나타내진 방향으로의 판독 캐시(402)와 메인 저장부(404) 사이의 경계(406)의 이동을 수반할 수 있다. 추가 저장 공간이 후속으로 메인 저장부(404)에서 이용가능하게 되는 이벤트에서, 저장 디바이스 제어기는, 또한, 예컨대 화살표(410)로 나타내진 방향으로 경계(406)를 이동시킴으로써, 메인 저장부(404)로부터 판독 캐시(402)로 공간을 재할당하는 것이 가능할 수 있다.
일 구현예에서, 판독 캐시(402)의 정적 부분은 오버프로비저닝된 공간(예컨대, 호스트의 로직 블록 어드레스 대 물리적 블록 어드레스 맵핑 스킴의 외부)에 존재하고, 판독 캐시(402)의 동적 부분은 드라이브의 공칭 용량의 일부로서 동적으로 존재한다. 동적 부분은, 전술된 바와 같이, 저장 디바이스가 사전결정된 용량 기준들을 만족시킨다는 판정 시에 메인 저장부(404)로 (예컨대, 증분적으로 또는 한번에) 넘겨질 수 있다.
다른 추가 구현예들에서, 저장 디바이스(400)는 판독 캐시(402) 외에도 기록 캐시(도시되지 않음)를 포함하고, 기록 캐시와 판독 캐시 사이의 경계는 동적이고 현재 드라이브 사용 기준들의 만족에 기초하여 캐시 관리 모듈에 의해 이동가능하다. 예를 들어, 저장 디바이스(400)가 백업 드라이브로서 사용되고 드라이브가 많은 새로운 데이터를 수신하고 있는 경우, 저장 디바이스 제어기는 판독 캐시보다 기록 데이터에 더 많은 저장 공간을 할당할 수 있다. 그러나, 저장 디바이스(400)가 주로 집약적인 판독 동작들을 위해 사용되고 있는 경우, 저장 디바이스 제어기는 기록 캐시보다 판독 캐시에 더 많은 저장 공간을 할당할 수 있다. 기록 캐시와 판독 캐시 사이에서의 저장 공간의 할당은 도 4에서 판독 캐시(402)와 메인 저장부(404) 사이의 경계(406)에 대해 전술된 것과 유사한 방식으로 동적으로 이동될 수 있다.
도 5는 자기 디스크 상에 위치되는 판독 캐시의 판독 캐시 재순차화 및 데이터 복제 관리를 위한 예시적인 동작들(500)을 도시한다. 제1 식별 동작(502)은 온-디스크 판독 캐시에 랜덤으로 저장된 데이터를 포함하는 새로운 히트 시퀀스를 식별한다. 일 구현예에서, 식별된 히트 시퀀스는 판독 캐시에 모두가 저장되는 데이터로 이루어지는데, 데이터 중 적어도 일부는 대응하는 LBA 시퀀스가 호스트 디바이스에 의해 요청되는 순서에 대해 랜덤으로(예컨대, 불연속적인 데이터 블록들 상에) 저장된다. 예를 들어, 식별된 히트 시퀀스는 2개 이상의 상이한 비인접 데이터 트랙들 상에 저장된 데이터 블록들의 그룹들을 포함할 수 있다. 일 구현예에서, 히트 시퀀스는, 예컨대 시퀀스가 호스트 디바이스에 의해 요청되는 빈도 또는 최신성에 기초하여, 사전정의된 액세스 빈도 기준들에 따라 식별된다.
판정 동작(504)은 식별된 새로운 히트 시퀀스가 판독 캐시의 이전에 식별되고 순차적으로 저장된 히트 시퀀스 내에 중복으로 나타나는 임의의 LBA들을 포함하는지 여부를 판정한다. 일 구현예에서, 판독 캐시는 랜덤하게 저장된 핫 데이터를 포함하는 제1 영역(예컨대, 32 KB 이하의 핫 데이터 블록들), 및 판독 캐시의 제1 영역의 판독들에 기초하여 식별된 순차적으로 저장된 히트 시퀀스들을 포함하는 제2 영역을 포함한다. 식별된 새로운 히트 시퀀스의 어떠한 LBA들도 이전에 식별된 순차적으로 저장된 히트 시퀀스들 중 임의의 것 내에서 중복으로 나타나지 않는 경우, 기록 동작(508)은 식별된 새로운 히트 시퀀스를 판독 캐시에 순차적으로(예컨대, 히트 시퀀스의 순차적 재판독을 가능하게 하는 순서로) 기록한다. 일 구현예에서, 새롭게 식별된 히트 시퀀스는 식별된 히트 시퀀스들의 순차적 저장을 위해 예비된 캐시의 연속적 영역에 기록된다.
반면, 새롭게 식별된 히트 시퀀스의 하나 이상의 LBA들이 이전에 식별된 순차적으로 저장된 히트 시퀀스 내에 나타나는 경우, 다른 판정 동작(506)은 판독 캐시에 나타나는 다수의 LBA 복제들이 하나 이상의 복제 조건들을 만족시키는지 여부를 판정한다. 예를 들어, 하나의 복제 조건이 판독 캐시 내의 복제의 허용된 인스턴스들의 총 수를 특정할 수 있다. 판독 캐시 내의 현재 LBA 복제들의 총 수가 복제 임계치에 비해 낮은 경우, 복제 조건은 만족되고 복제는 허용된다. 이 경우, 기록 동작(508)은 복제 데이터 블록들과 함께 그리고 시퀀스의 후속하는 순차적 판독을 제공하는 방식으로 판독 캐시에 새로운 히트 시퀀스를 기록한다. 이러한 방식으로 복제를 허용하는 것은 단일의 순차적 판독 동작을 통해 식별된 히트 시퀀스의 가장 빠른 가능성있는 재판독을 가능하게 한다.
반면, 판독 캐시 내의 LBA 복제들의 총 수가 높은 경우, 판정 동작(508)은 복제 조건들이 만족되지 않는 것으로 판정할 수 있다. 이 경우, 중복제거 동작(510)은 새로운 히트 시퀀스를 중복제거하여, 이전에 식별된 순차적으로 저장된 히트 시퀀스에 이미 나타나 있는 데이터 블록들을 생략한다. 중복제거 동작(510)의 결과는, 식별된 복제 데이터 블록들을 생략하지만 그렇지 않다면 새로운 히트 시퀀스와 동일한 부분 히트 시퀀스이다. 기록 동작(512)은 중복제거된 히트 시퀀스를 판독 캐시에 순차적으로 기록하여 중복제거된 히트 시퀀스의 순차적 재판독을 가능하게 한다. 이 경우, 새롭게 식별된 히트 시퀀스의 판독은 2회 이상의 순차적 판독들, 및 판독 캐시 내의 상이한 위치들로부터의 데이터의 함께 이어붙임의 실행을 수반한다.
일 구현예에서, 판독 캐시는 순차적으로 저장된 히트 시퀀스들을 저장하는 제1 연속적 영역 및 판독 시퀀스와는 독립적으로 랜덤하게 저장된 핫 데이터를 포함하는 제2 연속적 영역을 포함한다. 일부 구현예들에서, 저장 공간은, 예컨대 메인 저장부 내에 현재 상주하는 데이터의 수량 및/또는 분포에 기초하여, 판독 캐시와 메인 저장부 사이에서 동적으로 할당가능하다. 예를 들어, 메인 저장부 및 판독 캐시는 저장 디바이스 제어기에 의해 동적으로 변경가능한 경계를 공유하는 연속적 영역들일 수 있다. 일부 구현예들에서, 판독 캐시는 오버프로비저닝된 HDD 디바이스의 오버프로비저닝된 공간에 포함된다. 다른 구현예들에서, 판독 캐시는 드라이브의 공칭 용량의 일부이며, 드라이브가 완전히 충전되기 시작할 때의 소정 기간 동안, 예컨대 용량 조건이 만족될 때까지, 저장 디바이스 제어기는 새로운 호스트-개시된 데이터 기록들을 판독 캐시로부터 멀리 그리고 재맵핑된 메인 저장부 위치들로 지향시킨다.
본 명세서에 기술된 구현예들은 하나 이상의 컴퓨터 시스템들에서 로직 단계들로서 구현될 수 있다. 본 명세서에 기술된 다양한 구현예들의 로직 동작들은 (1) 하나 이상의 컴퓨터 시스템들에서 실행되는 프로세서 구현 단계들의 시퀀스로서, 그리고 (2) 하나 이상의 컴퓨터 시스템들 내의 상호접속 기계 또는 회로 모듈들로서 구현된다. 구현예는 컴퓨터 시스템의 성능 요건들에 따른 선택의 문제이다. 따라서, 본 명세서에 기술되는 구현예들을 구성하는 로직 동작들은 다양하게 동작들, 단계들, 객체들, 또는 모듈들로 지칭된다. 더욱이, 달리 명시적으로 주장되거나 특정 순서가 청구항의 언어로 고유하게 필요하지 않다면, 로직 동작들은 임의의 순서로 수행될 수 있는 것을 이해해야 한다.
상기 설명, 예들, 및 데이터는 구조의 완전한 설명 및 예시적인 구현예들의 사용을 제공한다. 많은 대안의 구현예들이 본 발명의 사상 및 범주로부터 벗어남이 없이 이루어질 수 있기 때문에, 본 발명은 이하 첨부된 청구범위 내에 존재한다. 게다가, 상이한 구현예들의 구조적 특징부들은 인용되는 청구범위로부터 벗어남이 없이 또 다른 구현예에 결합될 수 있다.

Claims (20)

  1. 방법으로서,
    저장 디바이스의 판독 캐시에 데이터 시퀀스를 저장하는 일련의 불연속적 데이터 블록들을 시간 순차적으로 판독하는 단계 - 상기 데이터 시퀀스는 로직 블록 어드레스(logical block address, LBA)들의 요청된 시퀀스에 의해 식별됨 -;
    상기 데이터 시퀀스에 대한 판독 요청들이 적어도 하나의 사전결정된 액세스 빈도 기준을 만족시키는 것으로 판정하는 단계; 및
    상기 판정에 응답하여, 상기 판독 캐시 내의 일련의 연속적 데이터 블록들에 상기 데이터 시퀀스의 데이터를 재기록하여 상기 데이터 시퀀스의 후속하는 순차적 판독을 가능하게 하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 판독 캐시는 디스크의 외경 영역에 상주하는, 방법.
  3. 제2항에 있어서, 상기 판독 캐시는,
    상기 적어도 하나의 사전결정된 액세스 빈도 기준을 만족시키는 것으로 식별된 순차적으로 저장된 데이터 시퀀스들을 포함하는 제1 연속적 영역; 및
    랜덤하게 저장된 데이터를 포함하는 제2 연속적 영역을 포함하는, 방법.
  4. 제3항에 있어서, 상기 제1 연속적 영역은 상기 제2 연속적 영역보다 상기 자기 디스크의 외경에 더 가까운, 방법.
  5. 제1항에 있어서,
    상기 데이터 시퀀스가 상기 적어도 하나의 사전결정된 액세스 빈도 기준을 만족시키는 것으로 이전에 식별된 상기 판독 캐시의 다른 순차적으로 저장된 데이터 시퀀스에 또한 포함된 복제 데이터를 포함하는 것으로 판정하는 단계;
    상기 판독 캐시 내의 복제 데이터의 현재 양을 평가하는 단계; 및
    상기 평가에 기초하여, 상기 복제 데이터를 상기 판독 캐시에 기록하는 단계를 추가로 포함하는, 방법.
  6. 제1항에 있어서,
    상기 데이터 시퀀스가 상기 적어도 하나의 사전결정된 액세스 빈도 기준을 만족시키는 것으로 이전에 식별된 상기 판독 캐시의 다른 순차적으로 저장된 데이터 시퀀스에 또한 포함된 복제 데이터를 포함하는 것으로 판정하는 단계;
    상기 판독 캐시 내의 복제 데이터의 현재 양을 평가하는 단계; 및
    상기 평가에 기초하여, 상기 데이터 시퀀스를 재기록할 때 상기 복제 데이터를 생략하는 단계를 추가로 포함하는, 방법.
  7. 제1항에 있어서,
    상기 판독 캐시와 메인 저장부 사이의 저장 공간의 할당을 상기 메인 저장부의 현재 용량 활용에 기초하여 동적으로 조정하는 단계를 추가로 포함하는, 방법.
  8. 제1항에 있어서, 상기 판독 캐시는 동적으로 프로비저닝(provisioning)된 물리적 공간을 포함하는, 방법.
  9. 제8항에 있어서, 상기 방법은, 메인 저장부의 현재 용량 활용이 적어도 하나의 사전결정된 조건을 만족시킬 때까지 상기 판독 캐시로부터 새로운 인입 데이터의 기록들을 멀리 지향시키는 단계를 추가로 포함하는, 방법.
  10. 저장 디바이스로서,
    판독 캐시를 포함하는 디스크; 및
    제어기를 포함하고,
    상기 제어기는,
    디스크의 판독 캐시에 데이터 시퀀스를 저장하는 일련의 불연속적 데이터 블록들을 시간 순차적으로 판독하도록 - 상기 데이터 시퀀스는 로직 블록 어드레스(LBA)들의 요청된 시퀀스에 의해 식별됨 -;
    상기 데이터 시퀀스에 대한 판독 요청들이 적어도 하나의 사전결정된 액세스 빈도 기준을 만족시키는 것으로 판정하도록; 그리고
    상기 판정에 응답하여, 상기 판독 캐시 내의 일련의 연속적 데이터 블록들에 상기 데이터 시퀀스의 데이터를 재기록하여 상기 데이터 시퀀스의 후속하는 순차적 판독을 가능하게 하도록 구성되는, 저장 디바이스.
  11. 제10항에 있어서, 상기 판독 캐시는,
    상기 적어도 하나의 액세스 빈도 기준을 만족시키는 것으로 식별된 순차적으로 저장된 데이터 시퀀스들을 포함하는 제1 연속적 영역; 및
    랜덤하게 저장된 데이터를 포함하는 제2 연속적 영역을 포함하는, 저장 디바이스.
  12. 제10항에 있어서, 상기 제어기는,
    상기 요청된 시퀀스가 상기 적어도 하나의 사전결정된 액세스 빈도 기준을 만족시키는 것으로 이전에 식별된 상기 판독 캐시의 다른 순차적으로 저장된 데이터 시퀀스에 또한 포함된 복제 데이터를 포함하는 것으로 판정하도록;
    상기 판독 캐시 내의 복제 데이터의 현재 양을 평가하도록; 그리고
    상기 평가에 기초하여, 상기 복제 데이터를 상기 판독 캐시에 기록하도록 추가로 구성되는, 저장 디바이스.
  13. 제10항에 있어서, 상기 제어기는,
    상기 요청된 데이터 시퀀스가 상기 적어도 하나의 사전결정된 액세스 빈도 기준을 만족시키는 것으로 이전에 식별된 상기 판독 캐시의 다른 순차적으로 저장된 데이터 시퀀스에 또한 포함된 복제 데이터를 포함하는 것으로 판정하도록;
    상기 판독 캐시 내의 복제 데이터의 현재 양을 평가하도록; 그리고
    상기 평가에 기초하여, 상기 데이터 시퀀스를 재기록할 때 상기 복제 데이터를 생략하도록 추가로 구성되는, 저장 디바이스.
  14. 제10항에 있어서, 상기 제어기는,
    상기 판독 캐시와 사용자 데이터 저장 공간 사이의 저장 공간의 할당을 메인 저장부의 현재 용량 활용에 기초하여 동적으로 조정하도록 추가로 구성되는, 저장 디바이스.
  15. 제10항에 있어서, 상기 판독 캐시는 동적으로 프로비저닝된 물리적 공간을 포함하는, 저장 디바이스.
  16. 제10항에 있어서, 상기 저장 디바이스 제어기는, 메인 저장부의 현재 용량 활용이 적어도 하나의 사전결정된 조건을 만족시킬 때까지 상기 판독 캐시로부터 새로운 인입 데이터의 기록들을 멀리 지향시키도록 추가로 구성되는, 저장 디바이스.
  17. 컴퓨터 시스템 상에서 컴퓨터 프로세스의 실행을 위한 컴퓨터 실행가능 명령어들을 인코딩하는 하나 이상의 유형적 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 프로세스는,
    저장 디바이스 상에서의 판독 캐시와 메인 저장부 사이의 저장 공간의 할당을 상기 메인 저장부의 현재 용량 활용에 기초하여 동적으로 조정하는 것을 포함하는, 하나 이상의 유형적 컴퓨터 판독가능 저장 매체.
  18. 제17항에 있어서,
    상기 메인 공간 내의 이용가능한 공간이 적어도 하나의 용량 또는 분포 조건을 만족시킨다는 판정에 응답하여 상기 판독 캐시의 연속적 저장 영역을 상기 사용자 데이터 저장 공간에 재할당하는 것을 추가로 포함하는, 하나 이상의 유형적 컴퓨터 판독가능 저장 매체.
  19. 제18항에 있어서, 재할당하는 것은 상기 판독 캐시와 상기 메인 저장부 사이의 경계의 위치를 이동시키는 것을 추가로 포함하는, 하나 이상의 유형적 컴퓨터 판독가능 저장 매체.
  20. 제18항에 있어서, 상기 컴퓨터 프로세스는,
    상기 메인 저장부의 현재 용량 활용이 사전결정된 임계치를 만족시키는 경우에 상기 판독 캐시를 제거하는 것을 추가로 포함하는, 하나 이상의 유형적 컴퓨터 판독가능 저장 매체.
KR1020170077377A 2016-06-17 2017-06-19 판독 캐시 관리 KR102357203B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/185,497 US10037149B2 (en) 2016-06-17 2016-06-17 Read cache management
US15/185,497 2016-06-17

Publications (2)

Publication Number Publication Date
KR20170142931A true KR20170142931A (ko) 2017-12-28
KR102357203B1 KR102357203B1 (ko) 2022-01-27

Family

ID=60659534

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170077377A KR102357203B1 (ko) 2016-06-17 2017-06-19 판독 캐시 관리

Country Status (3)

Country Link
US (1) US10037149B2 (ko)
KR (1) KR102357203B1 (ko)
CN (1) CN107526689B (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI571745B (zh) * 2016-01-26 2017-02-21 鴻海精密工業股份有限公司 緩存管理方法及使用該方法的電子裝置
JP2019169218A (ja) * 2018-03-22 2019-10-03 株式会社東芝 磁気ディスク装置
CN108519858B (zh) * 2018-03-22 2021-06-08 雷科防务(西安)控制技术研究院有限公司 存储芯片硬件命中方法
CN108829343B (zh) * 2018-05-10 2020-08-04 中国科学院软件研究所 一种基于人工智能的缓存优化方法
US11221886B2 (en) 2018-05-17 2022-01-11 International Business Machines Corporation Optimizing dynamical resource allocations for cache-friendly workloads in disaggregated data centers
US11330042B2 (en) * 2018-05-17 2022-05-10 International Business Machines Corporation Optimizing dynamic resource allocations for storage-dependent workloads in disaggregated data centers
US11275684B1 (en) * 2020-09-15 2022-03-15 Seagate Technology Llc Media read cache
CN114442911B (zh) * 2020-11-06 2024-03-08 戴尔产品有限公司 用于固态驱动器的异步输入/输出扫描和聚合的系统和方法
KR20220073017A (ko) * 2020-11-26 2022-06-03 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN113010454A (zh) * 2021-02-09 2021-06-22 Oppo广东移动通信有限公司 数据读写方法、装置、终端及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150026416A1 (en) * 2011-05-31 2015-01-22 Micron Technology, Inc. Dynamic memory cache size adjustment in a memory device
US20150062736A1 (en) * 2013-08-30 2015-03-05 Seagate Technology Llc Cache data management for program execution

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3239669B2 (ja) * 1995-02-20 2001-12-17 株式会社日立製作所 記憶制御装置及びその制御方法
US7120832B2 (en) * 2001-09-27 2006-10-10 Hewlett-Packard Development Company, L.P. Storage device performance monitor
JP4366298B2 (ja) * 2004-12-02 2009-11-18 富士通株式会社 記憶装置、その制御方法及びプログラム
JP2007184021A (ja) * 2006-01-04 2007-07-19 Hitachi Global Storage Technologies Netherlands Bv アドレス割り当て方法およびディスク装置ならびにデータ書き込み方法
US8489817B2 (en) * 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US20080192234A1 (en) * 2007-02-08 2008-08-14 Silverbrook Research Pty Ltd Method of sensing motion of a sensing device relative to a surface
US7822939B1 (en) * 2007-09-25 2010-10-26 Emc Corporation Data de-duplication using thin provisioning
US8386537B2 (en) * 2009-12-15 2013-02-26 Intel Corporation Method for trimming data on non-volatile flash media
CN102298506B (zh) * 2010-06-24 2014-12-03 国际商业机器公司 存储系统和用于实现存储系统的方法
US8504774B2 (en) 2010-10-13 2013-08-06 Microsoft Corporation Dynamic cache configuration using separate read and write caches
US8788742B2 (en) * 2011-05-23 2014-07-22 International Business Machines Corporation Using an attribute of a write request to determine where to cache data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device
CN103917962A (zh) * 2011-11-18 2014-07-09 国际商业机器公司 读取存储在存储系统上的文件
WO2013105960A1 (en) * 2012-01-12 2013-07-18 Fusion-Io, Inc. Systems and methods for managing cache admission
US8930624B2 (en) * 2012-03-05 2015-01-06 International Business Machines Corporation Adaptive cache promotions in a two level caching system
US9262428B2 (en) * 2012-04-23 2016-02-16 International Business Machines Corporation Preserving redundancy in data deduplication systems by designation of virtual address
US20140258628A1 (en) * 2013-03-11 2014-09-11 Lsi Corporation System, method and computer-readable medium for managing a cache store to achieve improved cache ramp-up across system reboots
CN104144194A (zh) * 2013-05-10 2014-11-12 中国移动通信集团公司 云存储系统的数据处理方法及装置
CN104240732B (zh) * 2013-06-07 2017-10-03 杭州海康威视数字技术股份有限公司 光盘写入方法及装置
CN103401665B (zh) * 2013-06-28 2016-12-28 国家超级计算深圳中心(深圳云计算中心) 集群存储系统中重传超时计时器的优化方法及装置
CN104425039A (zh) * 2013-09-10 2015-03-18 Lsi公司 用于改进的固态介质顺序读的动态映射预取
KR101575258B1 (ko) * 2014-07-24 2015-12-07 현대자동차 주식회사 차량 데이터 제어 방법 및 그 장치
CN104536904B (zh) * 2014-12-29 2018-01-09 杭州华为数字技术有限公司 一种数据管理的方法、设备与系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150026416A1 (en) * 2011-05-31 2015-01-22 Micron Technology, Inc. Dynamic memory cache size adjustment in a memory device
US20150062736A1 (en) * 2013-08-30 2015-03-05 Seagate Technology Llc Cache data management for program execution

Also Published As

Publication number Publication date
KR102357203B1 (ko) 2022-01-27
US20170364447A1 (en) 2017-12-21
US10037149B2 (en) 2018-07-31
CN107526689A (zh) 2017-12-29
CN107526689B (zh) 2024-01-16

Similar Documents

Publication Publication Date Title
KR102357203B1 (ko) 판독 캐시 관리
US10176212B1 (en) Top level tier management
KR101405729B1 (ko) 동적 저장장치 계층화 방법 및 시스템
US9507538B2 (en) File management system for devices containing solid-state media
US8756382B1 (en) Method for file based shingled data storage utilizing multiple media types
US7472219B2 (en) Data-storage apparatus, data-storage method and recording/reproducing system
JP5941489B2 (ja) 動的粒状体に基づく中間記憶領域を利用する方法、データ記憶システムおよび記憶媒体
US20010047451A1 (en) Method and apparatus for disc drive defragmentation
US9804786B2 (en) Sector translation layer for hard disk drives
CN107665096B (zh) 加权数据分条
US10956071B2 (en) Container key value store for data storage devices
US9588887B2 (en) Staging sorted data in intermediate storage
JP2004362583A (ja) ユニバーサルフォーマット記憶ドライブおよびユニバーサルフォーマットでデータを記憶するための方法
US10152236B2 (en) Hybrid data storage device with partitioned local memory
US20120151134A1 (en) Data Storage Management in a Memory Device
US20200341684A1 (en) Managing a raid group that uses storage devices of different types that provide different data storage characteristics
US10268386B2 (en) Data storage device including temporary storage locations
JP6285762B2 (ja) エラー訂正コードの制御方法および大容量ストレージ
US20170199698A1 (en) Intra-storage device data tiering
US11829288B2 (en) Mapping of object data and metadata in an object storage volume
Suk et al. Performance analysis of nand flash-based ssd for designing a hybrid filesystem

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