KR20140142154A - 솔리드 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음 관리 방법 - Google Patents

솔리드 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음 관리 방법 Download PDF

Info

Publication number
KR20140142154A
KR20140142154A KR1020140065180A KR20140065180A KR20140142154A KR 20140142154 A KR20140142154 A KR 20140142154A KR 1020140065180 A KR1020140065180 A KR 1020140065180A KR 20140065180 A KR20140065180 A KR 20140065180A KR 20140142154 A KR20140142154 A KR 20140142154A
Authority
KR
South Korea
Prior art keywords
request
caching
data
target storage
data associated
Prior art date
Application number
KR1020140065180A
Other languages
English (en)
Other versions
KR102043932B1 (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 KR20140142154A publication Critical patent/KR20140142154A/ko
Application granted granted Critical
Publication of KR102043932B1 publication Critical patent/KR102043932B1/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/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
    • 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
    • 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/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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1004Defragmentation
    • 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/1041Resource optimization
    • 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/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 실시 예에 따른 솔리스 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음동안 목표 디스크 접근 요청들을 관리하는 방법은 목표 저장 장치로의 접근하는 요청을 검출하는 단계; 요청이 쓰기 요청인 경우 요청과 연관된 데이터를 캐싱 장치에 기입하지 않고, 데이터를 목표 저장 장치에 기입하고, 요청이 읽기 요청인 경우 요청과 연관된 데이터를 읽고, 캐싱 장치에 저장된 데이터를 폐기하기 위하여 마킹하는 단계; 및 캐싱 장치로부터 마킹된 데이터를 폐기하는 단계를 포함한다.

Description

솔리드 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음 관리 방법{METHOD FOR DISK DEFRAG HANDLING IN SOLID STATE DRIVE CACHING ENVIRONMENT}
본 발명은 디스크 캐싱에 관한 것으로 더욱 상세하게는 솔리드 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음 관리 방법에 관한 것이다.
캐싱(caching)은 디스크 드라이브들과 같은 저속 저장 장치들의 성능을 향상시키기 위하여 오랫동안 사용되어 왔다. 일반적으로 크고 느린 대용량 저장 매체는 데이터를 오래 저장하기 위하여 사용되는 반면에, 캐싱에서는 작고 빠른 저장 매체가 상대적으로 자주 사용되는 데이터를 임시적으로 저장하고 검색하는데 활용된다. 그러나, 이하에서 좀더 상세하게 설명되는 바와 같이 캐싱 장치의 원하는 않는 스트레스는 디스크 조각 모음 처리 동안 발생할 수 있다.
파일 단편화(file fragmentation)은 파일의 컨텐츠가 기본 저장 장치에서 비연속적인 블록들에 위치할 때 발생한다. 예를 들어, 도 1a에 도시된 바와 같이 파일들이 새로운 디스크에 처음 기입될 때, 일반적으로 각 파일들의 데이터 블록들은 연속적으로(consecutively) 저장된다. 예시적으로, 공백이 아닌 하드 디스크 드라이브(100, HDD; Hard Disk Drive)는 2개의 파일들(A, B)을 포함한다. HDD(100)는 복수의 블록들(0~9, 10~19,..., 50~59)을 포함한다. 도 1A에서, 파일(A)은 블록들(0~19)에 저장되고, 파일(B)은 블록들(20~49)에 저장된다. 상술된 바와 같이 파일들이 디스크 드라이브(100)에 처음 기입될 때, 각 파일들의 데이터 블록들은 연속적으로 저장된다. 이러한 방식에서, 데이터는 연속적으로 접근(access)될 수 있다. 즉, 디스크 액츄에이터(disk actuator)의 움직임을 감소시킬 수 있다. 그러나 파일들은 삭제되고 수정되기 때문에, 도 1b에 도시된 바와 같이 유효 데이터가 저장되지 않은 빈 블록들이 디스크에 생성된다.
도 1b는 파일(A)이 삭제되고 새로운 파일(C)이 기입된 도 1a의 하드 디크스 드라이브(100)를 보여주는 블록도이다. 파일(A)이 삭제된 경우, 블록들(0~19)은 자유 블록들이 된다. 새로운 파일들이 추가될 때, 일반적인 파일 시스템은 자유 블록들을 사용하여 새로운 파일들의 블록들을 저장한다. 그러므로, 파일(C)이 HDD(100)의 제 1 자유 공간(예를 들어, 도 1B의 블록들(0~14))에 기입된다. 즉, 파일(C)은 파일(A)만큼 크지 않고, HDD(100)의 영역을 적게 사용한다.
새로운 파일들은 지속적으로 추가되기 때문에, 새로운 파일들은 비연속적인 블록들에 저장되기 시작한다. 즉, 파일들이 단편화된다. 도 1c는 파일(D)이 기입된 도 1b의 HDD(100)를 보여주는 블록도이다. 상술된 파일(C)과 유사하게, 파일(D)은 HDD(100)의 가용 공간에 먼저 기입된다. 파일(C)은 삭제된 파일(A)보다 작기 때문에, HDD(100)의 파일들(C, D)사이에 자유 공간이 존재한다. 파일 시스템은 이러한 자유 공간들을 사용하여 파일(D)을 저장한다. 즉, 파일(D)의 일부는 블록들(15~19)에 저장된다. 파일(D)의 나머지는 도 1c의 블록들(50~59)인 다음 첫번째 가용 블록에 저장된다.
도 1d는 파일(C)이 삭제되고 새로운 파일들(E, F)이 기입된 도 1C의 하드 디스크 드라이브(100)를 보여주는 블록도이다. 파일(C)이 삭제될 때, 블록들(0~14)은 자유 블록들이 된다. 다음으로, 파일(E)이 HDD(100)의 자유 공간(즉, 도 1d의 0~9)에 먼저 기입되고, 파일(F)은 블록들(10~14, 60~69)에 기입된다. 이러한 이유로, 파일들이 추가되고 삭제됨에 따라, HDD(100)는 점차적으로 단편화된다. 디스크 단편화는 입출력 성능 이슈들을 발생한다. 특히, 회전 HDD는 단편화된 파일들을 엑세스할 때, 헤드 탐색시간이 오래 걸린다.
이러한 상황을 해결하기 위하여 조각 모듬 프로그램들이 개발되고 있다. 조각 모음 프로그램들은 저장 장치의 연속적인 위치들로 단편화된 파일들의 데이터 블록들을 재배열함으로써 디스크 단편화를 감소시킨다. 일반적으로, 디스크 조각 모음이 수행되는 동안 가능한 적은 횟수로 랜덤 탐색을 수행하여 동일한 파일의 블록들이 엑세스될 수 있도록 데이터 블록들은 HDD에서 재배열된다. 조각 모음 동작이 후에, 파일은 좀더 연속적으로 HDD로부터 엑세스될 수 있다. 결과적으로, 파일의 엑세스 속도가 증가한다. 그러나, 솔리스 스테이트 드라이브(SSD; Solid State Drive) 캐싱과 같은 디스크 캐싱을 갖는 시스템들에서 조각 모음은 SSD 내구력에 좋지 않은 영향을 미칠 수 있다.
HDD와 같은 크고 느린 대용량 저장 매체는 데이터를 오래 저장하기 위하여 사용되는 반면에, 디스크 캐싱은 일반적으로 작고 빠른 저장 매체를 사용하여 사용된 데이터를 자주 검색하거나 임시 저장한다. 캐싱 방법 중 하나는 디스크에 기입된 데이터가 캐시에 먼저 저장되고, 이 후 캐시 내의 데이터의 총량이 임계 값에 도달하거나 또는 허용 시간이 경과했을 때, 대용량 저장 장치에 기입되는 라이트-백 캐싱이다.
앞서 언급된 바와 같이 캐시는 일반적으로 목포 저장 장치에서 사용되는 접근 속도 보다 빠른고 작은 저장 장치이다. 캐시의 빠른 속도로 인하여, 캐시의 읽기 및 쓰기는 목표 저장 장치를 사용하여 가능한 것보다 더욱 빠르게 수행된다. 라이트-백 캐싱은 목표 저장 장치로 데이터를 전송하기 전에 라이트-백 캐시로 모든 쓰기 요청을 전송함으로써 상술된 이점들을 갖는다.
그러나 HDD에 포함된 데이터들이 사용자의 특정 중요도 없이 이동되기 때문에, 일반적으로 캐싱의 이점들은 조각 모음 동작 동안 구현되지 않는다. 즉, 디스크 조각 모음 동작은 일반적으로 데이터의 사용자 중요성과 연관되지 않은 다수의 읽기들 및 쓰기들을 발생한다. 결과적으로 캐시는 사용자에게 중요하지 않은 데이터를 결집시킨다. 즉, 캐시됨으로써 발생되는 이점들이 없을 것이다. 더욱이 디스크 엑세스 동작들의 증가된 횟수 및 캐싱 장치(특히, SSD 캐싱 장치들)로 기입된 결과는 심각한 내구성 문제들 및 데이터 손실들들을 발생시킬 수 있는 SSD 장치의 불필요한 마모를 발생시킨다.
앞서 언급된 측면에서, 디스크 조각 모음 동작 동안 캐싱 장치를 설명하는 시스템들 및 방법들이 요구된다. 이상적으로, 시스템들 및 방법들은 디스크 조각 모음 동작 동안 불필요한 마모로부터 캐싱 장치들을 보호하기 위한 수단들을 제공할 수 있으나, 아직 시스템의 사용자들에서 추가적인 선-조각 모음 동작 또는 조각 모음에 선행되는 동작을 수행하는 것이 요구된다.
본 발명의 목적은 디스크 조각 모음 동안 불필요한 데이터 캐싱을 방지하여 향상된 내구성을 갖는 솔리스 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음동안 목표 디스크 접근 요청들을 관리하는 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 솔리스 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음동안 목표 디스크 접근 요청들을 관리하는 방법은 목표 저장 장치로의 접근하는 요청을 검출하는 단계; 상기 요청이 쓰기 요청인 경우 상기 요청과 연관된 데이터를 캐싱 장치에 기입하지 않고, 상기 데이터를 상기 목표 저장 장치에 기입하고, 상기 요청이 읽기 요청인 경우 상기 요청과 연관된 데이터를 읽고, 상기 캐싱 장치에 저장된 데이터를 폐기하기 위하여 마킹하는 단계; 및 상기 캐싱 장치로부터 상기 마킹된 데이터를 폐기하는 단계를 포함한다.
실시 예로서, 상기 폐기를 위하여 마킹된 데이터는 디스크 조각 모음 완료에 따라 폐기된다.
실시 예로서, 상기 요청은 읽기 요청이고, 상기 데이터는 상기 캐싱 장치에 저장되지 않은 경우, 상기 데이터의 캐싱없이 상기 요청과 연관된 데이터를 읽는 단계를 더 포함한다.
실시 예로서, 시스템 콜을 검출하여 상기 목표 저장 장치의 상기 디스크 조각 모음을 시작하는 단계를 더 포함한다.
실시 예로서, 상기 디스크 조각 모음이 완료된 경우, 노멀 캐싱 동작들을 수행하는 단계를 더 포함한다.
실시 예로서, 상기 목표 저장 장치는 하드 디스크이고, 상기 캐싱 장치는 솔리드 스테이트 드라이브이다.
실시 예로서, 테이블은 상기 캐싱 장치에 저장된 데이터의 폐기를 위한 마킹에 사용된다.
본 발명의 다른 실시 예에 따른 솔리스 스테이트 드라이브 캐싱 환경에서 목표 저장 장치의 디스크 조각 모음 동안 디스크 접근 요청들을 관리하는 방법은 상기 목표 저장 장치로의 접근 요청을 검출하는 단계; 상기 요청이 쓰기 요청인 경우, 캐싱 장치에 상기 요청과 연관된 데이터를 저장하지 않고, 상기 목표 저장 장치에 상기 요청과 연관된 상기 데이터를 기입하는 단계; 상기 요청이 읽기 요청이고, 상기 요청과 연관된 데이터가 상기 캐싱 장치에 저장된 경우, 상기 요청과 연관된 데이터를 읽고, 상기 캐싱 장치에 저장된 상기 요청과 연관된 데이터의 폐기를 위하여 마킹하는 단계; 상기 요청이 읽기 요청이고, 상기 요청과 연관된 데이터가 상기 캐싱 장치에 저장되지 않은 경우, 상기 데이터를 캐싱하지 않고, 상기 요청과 연관된 데이터를 읽는 단계; 및 상기 캐싱 장치로부터 상기 폐기를 위해 마킹된 데이터를 폐기하는 단계를 포함한다.
실시 예로서, 상기 폐기를 위해 마킹된 데이터는 디스크 조각 모음이 완료된 후 폐기된다.
실시 예로서, 시스템 콜을 검출하여 상기 목표 저장 장치의 상기 디스크 조각 모음을 시작하는 단계를 더 포함한다.
실시 예로서, 상기 디스크 조각 모음이 완료된 경우, 노멀 캐싱 동작들을 수행하는 단계를 더 포함한다.
실시 예로서, 상기 목표 저장 장치는 하드 디스크 드라이브이고, 상기 캐싱 장치는 솔리드 스테이드 드라이브이다.
실시 예로서, 테이블은 캐싱 장치에 저장된 데이터의 폐기를 위하여 마킹하는데 사용된다.
본 발명의 또 다른 실시 예에 따른 솔리드 스테이트 드라이브 캐싱 환경에서 목표 저장 장치의 디스크 조각 모음 동안 디스크 접근 요청들을 관리를 위하여 컴퓨터 판독가능 매체에 내장된 컴퓨터 프로그램은 목표 저장 장치를 접근하기 위한 요청을 검출하는 컴퓨터 지시자; 상기 요청의 타입을 판별하고, 상기 요청이 쓰기 요청인 경우 상기 쓰기 요청과 연관된 쓰기 데이터를 캐싱 장치에 기입하지 않고 상기 목표 저장 장치에 기입하고, 상기 요청이 읽기 요청이며 상기 읽기 요청과 연관된 데이터가 상기 캐싱 장치에 저장된 경우, 상기 데이터를 읽고, 상기 캐싱 장치에 저장된 상기 요청과 연관된 데이터를 폐기하기 위하여 마킹하는 컴퓨터 지시자; 및 상기 폐기를 위하여 마킹된 데이터를 상기 캐싱 장치로부터 폐기하는 컴퓨터 지시자를 포함한다.
실시 예로서, 상기 폐기를 위하여 마킹된 데이터는 상기 디스크 조각 모음이 완료된 이후 폐기된다.
실시 예로서, 상기 요청이 읽기 요청이고, 상기 읽기 요청과 연관된 읽기 데이터가 상기 캐싱 장치에 저장되지 않은 경우, 상기 읽기 데이터를 캐싱하지 않고 상기 읽기 데이터를 읽는 컴퓨터 지시자를 더 포함한다.
실시 예로서, 시스템 콜을 검출하여 상기 목표 저장 장치의 조각 모음을 시작하는 컴퓨터 지시자를 더 포함한다.
실시 예로서, 상기 디스크 조각 모음이 완료된 경우, 노멀 캐싱 동작들을 수행하는 컴퓨터 지시자를 더 포함한다.
실시 예로서, 상기 목표 저장 장치는 하드 디스크 드라이브이고, 상기 캐싱 장치는 솔리드 스테이트 드라이브이다.
실시 예로서, 테이블은 캐싱 장치에 저장된 데이터의 폐기를 위하여 마킹하는데 사용된다.
본 발명에 따르면, 디스크 조각 모음 동안 불필요한 디스크 캐싱을 방지하여 향상된 내구성을 갖는 솔리스 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음동안 목표 디스크 접근 요청들을 관리하는 방법이 제공된다.
도 1a는 파일들(A, B)을 포함하는 하드 디스크 드라이브를 보여주는 블록도이다.
도 1b는 도 1a의 하드 디스크 드라이브에서 파일(A)이 삭제되고 새로운 파일(C)이 기입된 것을 보여주는 블록도이다.
도 1c는 도 1b의 하드 디스크 드라이브에 파일(D)이 기입된 것을 보여주는 블록도이다.
도 1d는 도 1c의 하드 디스크 드라이브에서 파일(C)이 삭제되고 새로운 파일들(E, F)이 기입된 것을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브 캐싱 환경을 포함하는 컴퓨터 시스템을 예시적으로 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 캐싱 환경에서의 저장 장치 입출력 동작들의 관리 방법을 보여주는 순서도이다.
도 4는 솔리드 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음 동안 목효 디스크 접근 요청들을 관리하는 방법을 보여주는 순서도이다.
도 5는 본 발명의 실시 예에 따른 캐싱 소프트웨어의 동작의 조각 모음 모드동안 쓰기 요청에 대한 캐싱 동작들을 보여주는 블록도이다.
도 6은 본 발명의 실시 예에 따른 캐싱 소프트웨어의 조각 모음 모드 동작 동안 읽기 캐시 미스된 읽기 요청에 대한 캐싱 동작들을 보여주는 블록도이다.
도 7은 본 발명의 실시 예에 따른 캐싱 소프트웨어의 조각 모음 모드 동작 동안 읽기 캐시 히트된 읽기 요청을 위한 캐싱 동작들을 보여주는 블록도이다.
도 8은 본 발명의 실시 예에 따른 디스크 조각 모음 동작들이 완료된 이후의 캐시를 보여주는 블록도이다.
본 발명에서 SSD 캐싱 환경에서 디스크 조각 모음을 관리하는 것이 개시된다. 일반적으로, 본 발명의 실시 예들에서 조각 모음 동작의 시작을 검출할 경우 캐싱 방법은 조각 모음 동작으로 발생되는 읽기 및 쓰기 방식을 변경한다. 읽기 캐시 미스가 발생한 읽기 동작들과 마찬가지로, 쓰기 동작들은 캐시를 통과(bypass)하고, 목표 저장 장치로 직접 엑세스된다. 그러나, 조각 모음 동작이 기본 데이터를 이동시키기 때문에, 읽기 캐시 히트들은 캐싱 장치로부터 제공되는 요청 데이터 및 폐기를 위하여 마크된 연관 캐시 데이터를 발생시킨다.
이하의 설명에서, 다양한 상세한 설명은 본 발명의 이해를 제공하기 위하여 설정된다. 그러나, 본 발명의 속하는 기술 분야에서의 통상의 기술자가 상세한 설명의 전부 또는 일부 없이 실시할 수 있음은 분명할 것이다. 다른 예시들에서, 잘 알려진 동작 단계들은 본 발명이 불필요하게 불명확하지 않도록 설명되지 않는다.
도 2는 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브 캐싱 환경을 포함하는 컴퓨터 시스템을 예시적으로 보여주는 블록도이다. 컴퓨터 시스템(200)은 중앙처리유닛(202), 시스템 메모리(204), 캐싱 장치(206), 및 하드 디스크 드라이브와 같은 목표 저장 장치(208)를 포함한다. 중앙 처리부(202)는 시스템 메모리(204), 캐싱 장치(206), 및 하드 디스크 드라이브와 같은 목표 저장 장치(208)와 연결된다. 구동 중에, 캐싱 소프트웨어(201)는 컴퓨터 시스템(200)의 캐싱 기능이 가능하도록 시스템 메모리(204)로 로드된다.
캐싱 장치(206)는 목표 저장 장치(208)에서 사용되는 것보다 작고 빠른 엑세스 드라이브이다. 예를 들어, 캐싱 장치(206)는 NAND 플래시에 기반된 SSD 또는 상 변화 메모리(PCM; Phase change memory)와 같은 솔리드 스테이트 드라이브(SSD)일 수 있다. 캐싱 장치(206)의 속도가 빠르기 때문에, 캐싱 장치(206)의 읽기들 및 쓰기들은 목표 저장 장치(208)에서 사용 가능한 것보다 빠르게 처리된다. 캐싱은 목표 저장 장치(208)로 데이터를 전송하기 전에 캐싱 장치로 쓰기 요청을 전송함으로써 이러한 차이들의 이점을 갖는다. 캐싱 소프트웨어(210)는 목표 저장 장치(208)의 전경(complete view)를 제공하고, 이로 인하여 사용자들은 데이터가 실제 캐싱 장칭(206)에 저장되었는지와 무관하게 항상 목표 저장 장치(208)의 전경을 본다.
도 3은 본 발명의 실시 예에 따른 캐싱 환경에서의 저장 장치 입출력 동작들의 관리 방법(300)을 보여주는 순서도이다. 302 단계의 초기 동작에서 선구동 동작들(preprocess operations)이 수행된다. 예를 들어, 선구동 동작들은 메모리로의 캐싱 소프트웨어 로딩, 운영 시스템 파일들 로딩, 및 당업자에게 자명한 다른 시스템 시작 동작들을 포함할 수 있다.
304 단계에서, 캐싱 소프트웨어(210)는 노멀 모드 동작(예를 들어, 비-조각 모음 모드 동작)에서 캐싱 동작을 수행한다. 노멀 모드 동작(예를 들어, 비조각 모음 모드 동작) 동안, 캐싱 소프트웨어(210)는 읽기 및 쓰기 요청을 가로막아 캐싱 장치(206)를 통해 입출력을 향상시킨다. 특히, 중앙처리유닛(202)이 쓰기 요청을 수행하여 데이터를 목표 저장 장치(208)에 기입할 때, 캐싱 소프트웨어(210)는 요청을 가로막고, 데이터를 캐싱 장치(206)에 기입한다. 중앙처리유닛(202)이 읽기 요청을 수행할 때, 캐싱 소프트웨어(210)는 다시 요청을 가로막고, 데이터가 현재 캐싱 장치(206)에 저장되어 있는지 판별한다. 데이터가 캐싱 장치(206)에 저장되어 있는 경우, CPU(202)는 캐싱 장치(206)로부터 데이터를 읽는다. 이와 반대인 경우, CPU(202)는 목표 저장 장치(208)로부터 데이터를 읽는다.
그러나, 파일들이 목표 저장 장치(208)로부터 추가되고 삭제됨에 따라 파일들은 점차적으로 단편화되어 입출력 성능 이슈를 발생한다. 이러한 상황을 해결하기 위하여 조각 모음 소프트웨어(212)는 시스템 메모리(204)에 로드될 수 있다. 조각 모음 소프트웨어(212)는 목표 저장 장치(208)에 연속적으로 단편화된 파일들의 데이터 블록을 재정렬시킴으로써 디스크 단편화를 감소시키는 기능을 수행한다. 즉, 조각 모음 소프트웨어(212)는 데이터 블록을 목표 저장 장치(208)에 재정렬하여 동일한 파일의 블록들의 블록들이 가능한 연속적으로 위치하도록 하고, 최소의 랜덤 탐색 횟수를 사용하여 엑세스될 수 있도록 할 수 있다.
306 단계에서, 디스크 조각 모음 동작이 수행되는지 판별된다. 본 발명의 실시 예들의 캐싱 소프트웨어(210)는 조각 모음 소프트웨어(212)가 수행을 시작하는 경우(API(aaplication programming interface)를 통해 트리거가 수신될 경우)를 검출한다. 디스크 조각 모음 동작들의 시작이 검출되지 않은 경우, 방법(300)은 동작(304)의 노멀 모드, 비-조각 모음 모드에서 캐싱 동작들의 수행을 계속한다. 그러나, 캐싱 소프트웨어(210)가 디스크 조각 모음 동작들을 검출할 경우, 동작(308)에서 동작들의 모드가 조각 모음 캐싱 모드 동작으로 변경된다.
308 단계에서, 캐싱 소프트웨어(210)는 조각 모음 동작 모드에서 캐싱 동작들을 수행한다. 본 발명의 실시 예들은 디스크 조각 모음 동작이 시작됨을 결정하기 위하여 조각 모음 트리거에 의존한다. 디스크 조각 모음 동작들이 시작될 때, 캐싱 소프트웨어는 OS API를 통해 조각 모음 트리거를 검출한다. 이 시점으로부터 조각 모음 동작이 종료될 때까지(일반적으로 다른 트리거에 의해 알려지는), 캐싱 소프트웨어(210)는 조각 모음 동작 모드를 조절한다. 새로운 조각 모음 동작 모드에서, 도 4를 참조하여 설명되는 바와 같이 조각 모음 동작에 의해 영향을 받는 데이터를 캐싱 장치(206)로부터 삭제하고, 캐싱 소프트웨어(210)는 디스크 쓰기 접근 동작을 캐싱 장치(206)를 통과시킴으로서 캐싱 장치(206)의 마모의 총량을 감소시키는 기능을 수행한다.
도 4는 솔리드 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음 동안 목표 디스크 접근 요청들을 관리하는 방법(400)을 보여주는 순서도이다. 초기 동작(420)에서, 선구동 동작들이 수행된다. 초기 동작(302)에서 선구동 동작들(preprocess operations)이 수행된다. 예를 들어, 선구동 동작들은 메모리로의 캐싱 소프트웨어 로딩, 운영 시스템 파일들 로딩, 및 당업자에게 자명한 다른 시스템 시작 동작들을 포함할 수 있다.
동작(404)에서, 목표 저장 장치로의 접근 요청이 검출된다. 상술된 바와 같이 조각 모음 소프트웨어(212)는 단편화된 파일들의 데이터 블록들을 목표 저장 장치(208)에 연속적으로 재정렬시킴으로써 디스크 단편화를 감소시키는 기능을 수행한다. 이러한 이유로, 조각 모음 소프트웨어(212)는 데이터 블록을 목표 저장 장치(208)에 재정렬하여 동일한 파일의 블록들의 블록들이 가능한 연속적으로 위치하도록 하고, 최소의 랜덤 탐색 횟수를 사용하여 엑세스될 수 있도록 할 수 있다. 이것은 목표 저장 장치(208)에 대한 연속된 읽기 및 쓰기 요청들을 통해 완료된다. 본 발명의 실시 예들은 동작(404)에서 상술된 요청들을 검출한다.
동작(406)에서 검출된 요청이 쓰기 요청인지 결정된다. 검출된 요청이 쓰기 요청인 경우, 방법(400)은 동작(408)의 쓰기를 수행한다. 이와 반대로, 쓰기 요청이 읽기 요청인 경우, 동작(410)이 수행된다.
검출된 요청이 쓰기 요청인 경우, 동작(408)에서, 요청과 연관된 데이터는 목표 저장 장치에 기입된다. SSD 캐싱 장치를 사용하는 디스크 캐싱은 파일 시스템 레벨 또는 블록 레벨 중 어느 하나에서 수행될 수 있다. 블록 레벨 캐싱은 파일 시스템과 무관하다는 이점을 갖는다. 이러한 이유로, 본 발명의 실시 예들은 블록 레벨에서 동작할 수 있는 것이 바람직하다. 그러나, 블록 레벨에서 캐싱 소프트웨어는 스스로 파일 시스템을 인식하지 못한다. 그러므로, 블록 입출력 요청들로부터 파일명들을 매치하는 것이 어렵다. 조각 모음 소프트웨어가 특정 파일을 처리하는 중에, 캐싱 소프트웨어는 일반적으로 파일의 연관성없이 다양한 블록 입출력 요청들을 인식한다. 결과적으로, 파일 시스템의 인식이 어렵기 때문에, 블록 입출력 요청을 연관시키고, 그것들을 재사상시키는 것은 어렵다. 즉, 본 발명의 실시 예들은 조각 모은 동작이 시작됨을 가리키는 트리거에 의존한다. 이 시점으로부터, 입출력 요청들과 연관된 데이터는 캐싱 장치에 기입되지 않고 목표 저장 장치에 기입된다. 이 때, 요청은 도 5에 도시된 바와 같이 쓰기 요청이다.
도 5는 본 발명의 실시 예에 따른 캐싱 소프트웨어의 동작의 조각 모음 모드동안 쓰기 요청에 대한 캐싱 동작들을 보여주는 블록도이다. 도 5는 목표 저장 장치(208)와 연관된 복수의 입출력 요청들(502a~502c)를 포함하는 커맨드 큐(500)를 포함한다. 더욱이, 예시적인 캐싱 장치(206)는 복수의 캐시 엔트리들(504a~504b)을 포함한다. 요청이 쓰기 요청인 경우, 쓰기 요청(502a)과 연관된 데이터는 목표 저장 장치(208)에 직접 기입된다. 도 5에 도시된 실시 예에서, 다음 요청은 목표 저장 장치(208)와 관련된 쓰기 요청(502a)이다. 요청이 쓰기 요청이므로, 쓰기 요청(502a)과 연관된 데이터는 캐싱 장치(206)에 기입되지 않고, 목표 저장 장치(208)에 직접 기입된다. 이러한 방식에서, 유저에게 중요하기 않고, 디스크 조각 모음 동작동안 단순히 이동되는 쓰기 요청의 결과로서 데이터는 캐싱 장치(206)에 저장되지 않는다. 더욱이, 디스크 조각 모듬 동안 추가적인 캐시 쓰기들을 피함으로서 디스크 조각모듬 동안 SSSD 캐시 장치들에서 발생할 수 있는 마모를 상당히 감소시킬 수 있다.
도 4를 다시 참조하면, 검출된 요청이 읽기 요청인 경우, 410 단계에서, 읽기 요청이 읽기 캐쉬 히트되는지 판별할 수 있다. 410 단계에서, 읽기 요청 어드레스는 캐싱 장치의 컨텐츠들과 비교되어 요청된 읽기 영역 데이터가 현재 캐싱 장치에 저장되어 있는지 판별할 수 있다. 만약 읽기 요청이 읽기 캐시 미스된 경우, 방법(400)은 읽기 동작(412)을 수행한다. 이와 반대인 경우, 방법(400)은 캐시 영역 폐기 동작(414)을 수행한다.
읽기 요청이 읽기 캐시 미스된 경우, 412 단계에서, 읽기 요청과 연관된 데이터는 목표 저장 장치로부터 읽어진다. 예를 들어, 도 6은 본 발명의 실시 예에 따른 캐싱 소프트웨어의 조각 모음 모드 동작 동안 읽기 캐시 미스된 읽기 요청에 대한 캐싱 동작들을 보여주는 블록도이다. 도 6은 목표 저장 장치(208)와 관련된 남은 입출력 요청들(502b~502c)을 포함하는 커맨드 큐(500)를 포함한다. 더욱이 예시적인 캐싱 장치(206)는 복수의 캐시 엔트리들(504a~504b)을 포함한다. 도 6의 실시 예에서, 다음 요청은 목표 저장 장치(208)의 블록(51)과 관련된 읽기 요청(502b)이다.
캐싱 장치(206)는 블록(51)이 현재 캐싱 장치(206)에 포함되었는지 검사된다. 도 6의 실시 예에서, 블록(51)은 캐싱 장치(206)에 저장되지 않고, 캐시 읽기 미스된다. 읽기 요청(502b)이 캐시 읽기 미스되었기 때문에, 읽기 요청(502b)와 연관된 데이터는 캐싱 장치(206)로부터의 읽기 없이, 목표 저장 장치(208)로부터 직접 읽어진다.
다시 도 4를 참조하면, 읽기 요청이 읽기 캐시 히트될 경우, 414 단계에서, 읽기 요청과 연관된 데이터는 캐싱 장치로부터 읽어지고, 요청된 캐시 데이터를 저장하는 영역은 폐기를 위하여 마킹된다. 예를 들어, 도 7은 본 발명의 실시 예에 따른 캐싱 소프트웨어의 조각 모음 모드 동작 동안 읽기 캐시 히트된 읽기 요청을 위한 캐싱 동작들을 보여주는 블록도이다. 도 7은 저장 장치(208)와 관련된 남은 입출력 요청(502c)을 포함하는 커맨드 큐(500)를 포함한다. 더욱이, 예시적인 캐싱 장치(206)는 복수의 캐시 엔트리들(504a~504b)를 포함한다. 도 7의 실시 예에서, 다음 요청은 목표 저장 장치(208)의 블록(20)과 관련된 읽기 요청(502c)이다.
읽기 요청(502c)이 검출된 경우, 캐싱 장치(206)는 블록(20)이 현재 캐싱 장치(206)에 저장되었는지 검사된다. 도 7의 실시 예에서, 블록(20)은 캐싱 장치(206)에 저장되어 캐시 읽기 히트된다. 읽기 요청(502c)이 읽기 캐시 히트되었으므로, 읽기 요청(502c)과 연관된 데이터는 목포 저장 장치(208)로부터 읽기 없이 캐싱 장치(206)로부터 읽어진다. 더욱이, 목표 저장 장치(208)의 블록(20)으로부터의 데이터를 저장하는 캐싱 장치(206)의 영역은 폐기를 위하여 마킹된다. 이 후 소정의 시간 후(일반적으로, 디스크 조각 모음 동작이 완료된 후)에, 데이터는 캐싱 장치(206)로부터 폐기될 것이다.
일반적으로 디스크 조각 모음 동작동안 데이터는 목표 저장 장치로부터 읽어지고, 새로운 영역으로 이동될 수 있다. 즉, 디스크 조각 모음 동작 동안 읽기 캐시 히트가 발생한 경우, 읽어진 데이터는 새로운 영역으로 이동될 것이다. 결과적으로, 캐시내의 캐시 히트 영역은 더 이상 사용자에게 중요한 데이터를 저장하지 않을 것이다. 따라서, 본 발명의 실시 예들은 폐기를 위하여 데이터 영역을 마킹하하여, 일반적으로, 디스크 조각 모음 동작이 완료된 이후에 제거된다. 이러한 방식에서, 디스크 조각 모음 동안 이동되는 데이터는 캐싱 장치(206)에 더이상 저장되지 않을 것이다.
도 4를 다시 참조하면, 416 단계에서, 디스크 조각 모음 동작이 종료되었는지 결정될 수 있다. 앞서 언급된 바와 같이, 디스크 조각 모음 동작들이 시작될 때, 캐싱 소프트웨어는 OS API를 통해 조각 모음 트리거를 검출한다. 이 시점으로부터 조각 모음 동작이 종료(일반적으로, 종료는 다른 트리거에 의해 알려진다.)될 때까지, 캐싱 소프트웨어는 조각 모음 모드 동작을 조절한다. 따라서, 만약 조각 모음 동작이 종료되지 않은 경우, 방법(400)은 다른 입출력 요청 검출 동작(400)을 계속 수행한다. 이와 반대로, 조각 모음 동작들이 종료되면, 방법은 폐기 동작(418)을 수행한다.
418 단계에서, 캐싱 장치내의 폐기를 위해 마킹된 데이터가 처리된다. 앞서 언급된 바와 같이, 읽기 요청이 읽기 캐시 히트될 때, 읽기 요청과 연관된 데이터는 캐싱 장치로부터 읽어지고, 읽기 요청과 연관된 데이터를 저장하는 캐싱 장치의 영역은 폐기되기 위하여 마킹된다. 418 단계에서, 이러한 데이터가 처리된다. 418 단계는 시스템의 처리 요구들을 기반으로 허용된 시간에 발생될 수 있다. 예를 들어, 폐기를 위하여 마킹된 영역을 처리하는 단계는 영역 데이터를 무효화하는 단계 및/또는 캐시 영역에 저장된 데이터를 소거하는 단계 및 메모리 영역을 자유 메모리로 추가하는 단계를 포함할 수 있다.
예를 들어, 도 8은 본 발명의 실시 예에 따른 디스크 조각 모음 동작들이 완료된 이후의 캐시를 보여주는 블록도이다. 도 7의 읽기 요청(502c)이 읽기 캐시 히트되었기 때문에, 읽기 요청(502c)과 연관된 데이터를 저장하는 캐싱 장치(206) 내의 영역은 폐기를 위하여 마킹된다. 결과적으로, 폐기를 위해 마킹된 블록(20)은 캐싱 장치(206)에 저장된 엔트리들의 리스트들로부터 논리적으로 제거된다.
도 4를 다시 참조하면, 420 단계에서 선 처리 동작들이 수행된다. 예를 들어, 선 처리 동작들은 노멀, 비 조각 모음 캐싱 동작들을 재개하는 단계, 선택된 교체 정책들을 기반으로 캐싱 장치를 갱신하는 단계, 및 본 명세서를 상세하게 읽은 후에 당업자에 의해 실시될 수 있는 다른 선 처리 동작들을 포함할 수 있다.
비록 앞서 설명된 발명은 명확한 이해를 돕기 위하여 상세하게 설명되었으나, 첨부된 특허청구범위의 사상내에서 변형 및 수정이 가능함은 잘 이해될 것이다. 따라서, 본 발명의 실시 예들은 실시 예로서 고려되며, 제한되지 않는다. 본 발명이 본문에 기재된 상세한 설명에 한정되지 않고, 첨부된 특허청구범위와 동등하거나 또는 사상내에서 변형될 수 있다.
100 : 하드 디스크 드라이브
200 : 컴퓨터 시스템
202 : 중앙처리유닛
204 : 시스템 메모리
206 : 캐싱 장치
208 : 목표 저장 장치
210 : 캐싱 소프트웨어

Claims (10)

  1. 솔리스 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음동안 목표 디스크 접근 요청들을 관리하는 방법에 있어서,
    목표 저장 장치로의 접근하는 요청을 검출하는 단계;
    상기 요청이 쓰기 요청인 경우 상기 요청과 연관된 데이터를 캐싱 장치에 기입하지 않고, 상기 데이터를 상기 목표 저장 장치에 기입하고, 상기 요청이 읽기 요청인 경우 상기 요청과 연관된 데이터를 읽고, 상기 캐싱 장치에 저장된 데이터를 폐기하기 위하여 마킹하는 단계; 및
    상기 캐싱 장치로부터 상기 마킹된 데이터를 폐기하는 단계를 포함하는 관리 방법.
  2. 제 1 항에 있어서,
    상기 폐기를 위하여 마킹된 데이터는 디스크 조각 모음 완료에 따라 폐기되는 관리 방법.
  3. 제 1 항에 있어서,
    상기 요청은 읽기 요청이고, 상기 데이터는 상기 캐싱 장치에 저장되지 않은 경우, 상기 데이터의 캐싱없이 상기 요청과 연관된 데이터를 읽는 단계를 더 포함하는 관리 방법.
  4. 제 1 항에 있어서,
    시스템 콜을 검출하여 상기 목표 저장 장치의 상기 디스크 조각 모음을 시작하는 단계를 더 포함하는 관리 방법.
  5. 제 1 항에 있어서,
    상기 디스크 조각 모음이 완료된 경우, 노멀 캐싱 동작들을 수행하는 단계를 더 포함하는 관리 방법.
  6. 제 1 항에 있어서,
    상기 목표 저장 장치는 하드 디스크이고, 상기 캐싱 장치는 솔리드 스테이트 드라이브인 관리 방법.
  7. 제 1 항에 있어서,
    테이블은 상기 캐싱 장치에 저장된 데이터의 폐기를 위한 마킹에 사용되는 관리 방법.
  8. 솔리스 스테이트 드라이브 캐싱 환경에서 목표 저장 장치의 디스크 조각 모음 동안 디스크 접근 요청들을 관리하는 방법에 있어서,
    상기 목표 저장 장치로의 접근 요청을 검출하는 단계;
    상기 요청이 쓰기 요청인 경우, 캐싱 장치에 상기 요청과 연관된 데이터를 저장하지 않고, 상기 목표 저장 장치에 상기 요청과 연관된 상기 데이터를 기입하는 단계;
    상기 요청이 읽기 요청이고, 상기 요청과 연관된 데이터가 상기 캐싱 장치에 저장된 경우, 상기 요청과 연관된 데이터를 읽고, 상기 캐싱 장치에 저장된 상기 요청과 연관된 데이터의 폐기를 위하여 마킹하는 단계;
    상기 요청이 읽기 요청이고, 상기 요청과 연관된 데이터가 상기 캐싱 장치에 저장되지 않은 경우, 상기 데이터를 캐싱하지 않고, 상기 요청과 연관된 데이터를 읽는 단계; 및
    상기 캐싱 장치로부터 상기 폐기를 위해 마킹된 데이터를 폐기하는 단계를 포함하는 관리 방법.
  9. 제 8 항에 있어서,
    상기 목표 저장 장치는 하드 디스크 드라이브이고, 상기 캐싱 장치는 솔리드 스테이드 드라이브인 관리 방법.
  10. 솔리드 스테이트 드라이브 캐싱 환경에서 목표 저장 장치의 디스크 조각 모음 동안 디스크 접근 요청들을 관리를 위하여 컴퓨터 판독가능 매체에 내장된 컴퓨터 프로그램에 있어서,
    목표 저장 장치를 접근하기 위한 요청을 검출하는 컴퓨터 지시자;
    상기 요청의 타입을 판별하고, 상기 요청이 쓰기 요청인 경우 상기 쓰기 요청과 연관된 쓰기 데이터를 캐싱 장치에 기입하지 않고 상기 목표 저장 장치에 기입하고, 상기 요청이 읽기 요청이며 상기 읽기 요청과 연관된 데이터가 상기 캐싱 장치에 저장된 경우, 상기 데이터를 읽고, 상기 캐싱 장치에 저장된 상기 요청과 연관된 데이터를 폐기하기 위하여 마킹하는 컴퓨터 지시자; 및
    상기 폐기를 위하여 마킹된 데이터를 상기 캐싱 장치로부터 폐기하는 컴퓨터 지시자를 포함하는 컴퓨터 프로그램.
KR1020140065180A 2013-06-03 2014-05-29 솔리드 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음 관리 방법 KR102043932B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/909,027 US9201799B2 (en) 2013-06-03 2013-06-03 Method for disk defrag handling in solid state drive caching environment
US13/909,027 2013-06-03

Publications (2)

Publication Number Publication Date
KR20140142154A true KR20140142154A (ko) 2014-12-11
KR102043932B1 KR102043932B1 (ko) 2019-11-12

Family

ID=51986497

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140065180A KR102043932B1 (ko) 2013-06-03 2014-05-29 솔리드 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음 관리 방법

Country Status (2)

Country Link
US (2) US9201799B2 (ko)
KR (1) KR102043932B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150213049A1 (en) * 2014-01-30 2015-07-30 Netapp, Inc. Asynchronous backend global deduplication
JP2017004469A (ja) * 2015-06-16 2017-01-05 富士通株式会社 基地局装置、処理方法、プログラム、無線通信システム、及び、基地局処理カード
CN115543187A (zh) * 2017-11-10 2022-12-30 成都华为技术有限公司 一种数据处理方法及设备
US20200319815A1 (en) * 2020-06-16 2020-10-08 Intel Corporation Communication of data relocation information by storage device to host to improve system performance
CN111897684B (zh) * 2020-07-15 2023-08-15 中国工商银行股份有限公司 磁盘故障模拟测试的方法、装置及电子设备
CN116225339B (zh) * 2023-03-14 2023-12-12 北京兴汉网际股份有限公司 一种基于物联网的计算机信息存储分析系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188104A1 (en) * 2002-04-01 2003-10-02 Douglas Sullivan Provision of a victim cache within a storage cache heirarchy
US20040268049A1 (en) * 2003-06-24 2004-12-30 Madter Richard C. Cache operation with non-cache memory
US20120017034A1 (en) * 2010-07-14 2012-01-19 Umesh Maheshwari Methods and systems for reducing churn in flash-based cache
US20120124294A1 (en) * 2007-12-06 2012-05-17 Fusion-Io, Inc. Apparatus, system, and method for destaging cached data

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205529B1 (en) * 1997-09-25 2001-03-20 Emc Corporation Method and apparatus for defragmenting a storage device using a copy function in the device control logic
JP4257834B2 (ja) * 2003-05-06 2009-04-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 磁気ディスク装置、ファイル管理システム及びその方法
US20050273560A1 (en) * 2004-06-03 2005-12-08 Hulbert Jared E Method and apparatus to avoid incoherency between a cache memory and flash memory
US7447836B2 (en) * 2006-02-14 2008-11-04 Software Site Applications, Limited Liability Company Disk drive storage defragmentation system
US7562203B2 (en) * 2006-09-27 2009-07-14 Network Appliance, Inc. Storage defragmentation based on modified physical address and unmodified logical address
US20090037661A1 (en) * 2007-08-04 2009-02-05 Applied Micro Circuits Corporation Cache mechanism for managing transient data
US8359430B1 (en) * 2007-08-30 2013-01-22 Network Appliance, Inc. Techniques for efficient mass storage layout optimization
US8214596B2 (en) * 2008-09-30 2012-07-03 Intel Corporation Apparatus and method for segmented cache utilization
US8195878B2 (en) * 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache
US9471240B2 (en) * 2010-06-24 2016-10-18 International Business Machines Corporation Performing read and write operations with respect to at least one solid state disk and at least one non-solid state disk
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
US9965397B2 (en) * 2013-02-26 2018-05-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast read in write-back cached memory
US9092336B2 (en) * 2013-03-15 2015-07-28 Intelligent Intellectual Property Holdings 2 Llc Write admittance policy for a memory cache
US9946495B2 (en) * 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188104A1 (en) * 2002-04-01 2003-10-02 Douglas Sullivan Provision of a victim cache within a storage cache heirarchy
US20040268049A1 (en) * 2003-06-24 2004-12-30 Madter Richard C. Cache operation with non-cache memory
US20120124294A1 (en) * 2007-12-06 2012-05-17 Fusion-Io, Inc. Apparatus, system, and method for destaging cached data
US20120017034A1 (en) * 2010-07-14 2012-01-19 Umesh Maheshwari Methods and systems for reducing churn in flash-based cache

Also Published As

Publication number Publication date
US10037281B2 (en) 2018-07-31
KR102043932B1 (ko) 2019-11-12
US9201799B2 (en) 2015-12-01
US20160062895A1 (en) 2016-03-03
US20140359211A1 (en) 2014-12-04

Similar Documents

Publication Publication Date Title
US8327076B2 (en) Systems and methods of tiered caching
CN107622022B (zh) 数据存储设备中的高速缓存超量配置
US10402091B1 (en) Managing data in log-structured storage systems
US10037281B2 (en) Method for disk defrag handling in solid state drive caching environment
CN107622023B (zh) 限制数据存储设备中的访问操作
US8572309B2 (en) Apparatus and method to protect metadata against unexpected power down
US8756382B1 (en) Method for file based shingled data storage utilizing multiple media types
US8738882B2 (en) Pre-organization of data
KR101347285B1 (ko) 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치
JP5271424B2 (ja) ダイナミックストレージ階層化によるオンラインデータ配置をボリュームに提供するためのアロケートオンライトのスナップショット機構
US9489297B2 (en) Pregroomer for storage array
US20140082310A1 (en) Method and apparatus of storage tier and cache management
US20210157746A1 (en) Key-value storage device and system including the same
US20170160989A1 (en) Solid state disk and method for implementing trim command of the same
US20100185806A1 (en) Caching systems and methods using a solid state disk
JP2015518987A (ja) フラッシュストレージのためのi/oアクセスパターンの特殊化
JP2012123499A (ja) メモリシステム
JP2009181314A (ja) 情報記録装置およびその制御方法
US10635581B2 (en) Hybrid drive garbage collection
CN108628542B (zh) 一种文件合并方法及控制器
US9189392B1 (en) Opportunistic defragmentation during garbage collection
US9928177B2 (en) Managing method for cache memory of solid state drive
KR101191650B1 (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
KR20120098068A (ko) 플래시 메모리 배드 블록 관리 장치 및 방법
KR101831126B1 (ko) 스토리지 내의 데이터 처리 장치의 제어 방법

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant