KR101023877B1 - 캐시 및 디스크 관리 방법 및 상기 방법을 이용한 컨트롤러 - Google Patents

캐시 및 디스크 관리 방법 및 상기 방법을 이용한 컨트롤러 Download PDF

Info

Publication number
KR101023877B1
KR101023877B1 KR1020090033479A KR20090033479A KR101023877B1 KR 101023877 B1 KR101023877 B1 KR 101023877B1 KR 1020090033479 A KR1020090033479 A KR 1020090033479A KR 20090033479 A KR20090033479 A KR 20090033479A KR 101023877 B1 KR101023877 B1 KR 101023877B1
Authority
KR
South Korea
Prior art keywords
cache
target data
data
caching
delete command
Prior art date
Application number
KR1020090033479A
Other languages
English (en)
Other versions
KR20100114999A (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 (주)인디링스
Priority to KR1020090033479A priority Critical patent/KR101023877B1/ko
Priority to CN2009801587566A priority patent/CN102395957A/zh
Priority to PCT/KR2009/007697 priority patent/WO2010120032A1/ko
Priority to US13/264,275 priority patent/US8977816B2/en
Priority to JP2012505798A priority patent/JP2012523642A/ja
Publication of KR20100114999A publication Critical patent/KR20100114999A/ko
Application granted granted Critical
Publication of KR101023877B1 publication Critical patent/KR101023877B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

캐시 및 디스크 관리 방법이 제공된다. 캐시 및 디스크 관리 방법은 캐시에 저장된 모든 유효한 데이터들 또는 유효한 데이터들 중 일부인 특정 데이터들에 대해 삭제 명령을 복수의 멤버 디스크들로 전송한다. 결국, 모든 유효한 데이터들 또는 특정 데이터들이 캐시에만 존재하고, 복수의 멤버 디스크들에서는 삭제된다. 따라서, 복수의 멤버 디스크들은 더 많은 공간을 확보하고, 내부적인 카피 오버헤드를 줄일 수 있으며, 특히 고체 상태 디스크들은 더 좋은 성능을 달성할 수 있다.
캐시, 디스크, 고체 상태 디스크, 삭제 명령, 트림, 데이터, 공간

Description

캐시 및 디스크 관리 방법 및 상기 방법을 이용한 컨트롤러{METHOD MANAGING CACHE/DISK AND CONTROLLER OF ENABLING THE METHOD}
본 발명의 실시예들은 캐시 및 디스크를 관리하는 방법에 관한 것으로, 특히 캐시 및 디스크에 공통적으로 저장된 데이터들에 대한 처리 기술에 관한 것이다.
최근, 고체 상태 디스크(solid state disk)에 관한 관심이 크게 증가하고 있다. 고체 상태 디스크는 하드 디스크 드라이브(hard disk drive)가 아니라 플래시 메모리, SDRAM(synchronous dynamic random access memory) 등을 사용한다.
따라서, 고체 상태 디스크는 하드 디스크 드라이브를 위해 사용되는 모터와 같은 기계적 구동 장치를 요구하지 않으므로, 열과 소음을 거의 발생시키지 않고 동작할 수 있다. 뿐만 아니라, 고체 상태 디스크는 외부의 충격에 강하며 하드 디스크 드라이브에 비해 높은 데이터 전송률을 달성할 수 있다.
일반적으로, 고체 상태 디스크는 하드 디스크와는 달리 비어 있는 공간(free space)이 증가할수록 더 좋은 성능을 나타내며, 소비 전력을 줄일 수 있다. 또한, 고체 상태 디스크에 불필요한 데이터들이 많이 존재하는 것은 내부적인 카피 오버헤드의 증가, 소비 전력의 증가를 야기할 수 있으므로, 불필요한 데이터들을 적절 히 삭제하는 것이 필요하다.
또한, 고체 상태 디스크에 데이터를 쓰거나, 고체 상태 디스크로부터 데이터를 읽는 속도를 높이기 위하여 캐시가 사용된다. 즉, 캐시는 자주 요청되는 데이터들을 저장해 둠으로써 억세스 속도를 향상시킨다. 다만, 특정 데이터가 캐시에 저장되는 경우, 일반적으로 캐시에 저장된 특정 데이터는 중복적으로 고체 상태 디스크에 저장되는 문제가 있다. 이러한 고체 상태 디스크에 저장된 특정 데이터는 불필요한 데이터일 수 있다.
따라서, 캐시 및 고체 상태 디스크의 관계를 적절히 고려하여 데이터의 손실 없이 고체 상태 디스크에 존재하는 불필요한 데이터들을 삭제할 수 있는 기술이 필요하다.
본 발명의 일실시예에 따른 캐시 및 디스크 관리 방법 및 컨트롤러는 캐시 및 멤버 디스크들에서 중복되는 데이터들에 대해 멤버 디스크들로 삭제 명령을 전송함으로써, 멤버 디스크들의 성능을 높이고, 소비 전력을 감소시킨다.
또한, 본 발명의 일실시예에 따른 캐시 및 디스크 관리 방법 및 컨트롤러는 캐시에 저장되어 있는 데이터의 상태를 적절히 설정함으로써, 보다 효율적으로 캐시 및 디스크를 관리한다.
또한, 본 발명의 일실시예에 따른 캐시 및 디스크 관리 방법 및 컨트롤러는 데이터를 적절히 업데이트하거나 후 기입할 뿐만 아니라 캐시에 저장된 데이터의 상태를 적절히 설정함으로써, 데이터의 손실을 방지한다.
또한, 본 발명의 일실시예에 따른 캐시 및 디스크 관리 방법 및 컨트롤러는 미러링 기법 등이 적용되는 후 기입 캐시를 사용함으로써, 데이터의 손실에 따른 위험을 줄인다.
또한, 본 발명의 일실시예에 따른 캐시 및 디스크 관리 방법 및 컨트롤러는 패리티가 요구되는 환경에서도 잘 적용될 수 있는 솔루션을 제공한다.
본 발명의 일실시예에 따른 캐시 및 디스크 관리 방법은 호스트의 대상 데이터에 대한 읽기 요청에 응답하여 캐시에서 상기 대상 데이터를 검색하는 단계, 상기 검색 결과에 따라 상기 캐시에 복수의 멤버 디스크들로부터 상기 대상 데이터를 캐싱하는 단계 및 상기 대상 데이터를 캐싱함에 응답하여 상기 복수의 멤버 디스크들로 상기 대상 데이터의 삭제 명령을 전송하는 단계를 포함한다. 여기서, 상기 복수의 멤버 디스크들은 고체 상태 디스크들이고, 상기 캐시는 후 기입 캐시(write-back cache)일 수 있다.
이 때, 상기 삭제 명령을 전송하는 단계는 상기 복수의 멤버 디스크들로 상기 캐시에 저장된 모든 유효한 데이터들에 대한 삭제 명령을 전송하는 제1 삭제 정책 또는 상기 유효한 데이터들 중 일부에 대한 삭제 명령을 전송하는 제2 삭제 정책에 따라 상기 삭제 명령을 전송하는 단계일 수 있다.
이 때, 상기 캐싱된 대상 데이터는 패리티 그룹의 새로운 멤버로 사용될 수 있다.
이 때, 상기 캐시에서 상기 대상 데이터를 검색하는 단계는 직접 사상(direct mapping), 연관 사상(Fully associative mapping) 또는 셋-연관 사상(set- associative mapping) 중 어느 하나를 이용하여 상기 캐시에서 상기 대상 데이터를 검색하는 단계일 수 있다.
이 때, 본 발명의 일실시예에 따른 캐시 및 디스크 관리 방법은 상기 삭제 명령이 전송되었는지 여부를 고려하여 상기 캐싱된 대상 데이터의 상태를 설정하는 단계를 더 포함할 수 있다. 여기서, 상기 캐싱된 대상 데이터의 상태는 상기 삭제 명령이 전송되었는지 여부 또는 상기 캐싱된 대상 데이터가 상기 복수의 멤버 디스크들로부터 캐싱되었는지 여부를 지시한다.
이 때, 본 발명의 일실시예에 따른 캐시 및 디스크 관리 방법은 상기 캐시에 서 상기 대상 데이터가 검색된 경우, 상기 호스트로 상기 검색된 대상 데이터를 전송하는 단계를 더 포함할 수 있다.
또한, 본 발명의 다른 실시예에 따른 캐시 및 디스크 관리 방법은 호스트의 대상 데이터에 대한 쓰기 요청에 응답하여 캐시에 상기 대상 데이터를 캐싱하는 단계 및 상기 대상 데이터를 캐싱함에 응답하여 상기 복수의 멤버 디스크들로 상기 대상 데이터의 삭제 명령을 전송하는 단계를 포함한다.
이 때, 상기 캐시에 상기 대상 데이터를 캐싱하는 단계는 상기 캐시에 미리 상기 대상 데이터가 저장되어 있지 않은 경우, 상기 캐시에서 교체(replacement)가 발생하지 않고 상기 대상 데이터를 캐싱하는 단계일 수 있다. 반면에, 상기 대상 데이터를 캐싱하는 단계는 상기 캐시에 미리 상기 대상 데이터가 저장되어 있지 않고, 상기 캐시에서 교체(replacement)가 발생하는 경우, 상기 대상 데이터를 캐싱하기 이전에 상기 교체에 따른 희생 데이터를 상기 복수의 멤버 디스크들에 후 기입하는 단계일 수 있다.
그리고, 상기 캐시에 상기 대상 데이터를 캐싱하는 단계는 상기 캐시에 미리 상기 대상 데이터가 저장되어 있는 경우, 상기 미리 저장된 대상 데이터를 업데이트하는 단계를 포함하고, 상기 삭제 명령을 전송하는 단계는 상기 복수의 멤버 디스크들에 상기 대상 데이터가 저장되어 있는 경우, 상기 삭제 명령을 전송하는 단계일 수 있다.
특히, 상기 대상 데이터를 캐싱하는 단계는 상기 대상 데이터를 기초로 업데이트되는 패리티를 캐싱하는 단계를 포함하고, 상기 삭제 명령을 전송하는 단계는 상기 복수의 멤버 디스크들로 상기 패리티에 대한 삭제 명령을 전송하는 단계일 수 있다.
이 때, 본 발명의 다른 실시예에 따른 캐시 및 디스크 관리 방법은 상기 삭제 명령이 전송되었는지 여부를 고려하여 상기 캐싱된 대상 데이터의 상태를 설정하는 단계 및 상기 캐싱된 대상 데이터 및 패리티를 상기 캐시에 디스크들에 미러링(mirroring)하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에 따른 캐시 및 디스크 관리 방법 및 컨트롤러는 캐시 및 멤버 디스크들에서 중복되는 데이터들에 대해 멤버 디스크들로 삭제 명령을 전송함으로써, 멤버 디스크들의 성능을 높이고, 소비 전력을 감소시킬 수 있다.
또한, 본 발명의 일실시예에 따른 캐시 및 디스크 관리 방법 및 컨트롤러는 캐시에 저장되어 있는 데이터의 상태를 적절히 설정함으로써, 보다 효율적으로 캐시 및 디스크를 관리할 수 있다.
또한, 본 발명의 일실시예에 따른 캐시 및 디스크 관리 방법 및 컨트롤러는 데이터를 적절히 업데이트하거나 후 기입할 뿐만 아니라 캐시에 저장된 데이터의 상태를 적절히 설정함으로써, 데이터의 손실을 방지할 수 있다.
또한, 본 발명의 일실시예에 따른 캐시 및 디스크 관리 방법 및 컨트롤러는 미러링 기법 등이 적용되는 후 기입 캐시를 사용함으로써, 데이터의 손실에 따른 위험을 줄일 수 있다.
또한, 본 발명의 일실시예에 따른 캐시 및 디스크 관리 방법 및 컨트롤러는 패리티가 요구되는 환경에서도 잘 적용될 수 있는 솔루션을 제공할 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 관련 기술에 따른 컨트롤러, 캐시 및 복수의 멤버 디스크들을 도시한 도면이다.
도 1을 참조하면, 스토리지 시스템은 컨트롤러(110), 복수의 멤버 디스크들(120) 및 캐시(130)를 포함한다.
일반적으로, 억세스 속도를 높이기 위하여 자주 요청되는 데이터는 캐시(130)에 저장된다. 예를 들어, 자주 읽기 요청되는 데이터들은 미리 캐시(130)에 저장되며, 캐시(130)에 미리 저장된 데이터들 중 현재 읽기 요청된 데이터가 존재하는 경우, 복수의 멤버 디스크들(120)로의 억세스 없이 캐시(130)로부터 호스트로 직접적으로 현재 읽기 요청된 데이터가 전달된다.
여기서, 캐시(130)에 미리 저장된 데이터들은 복수의 멤버 디스크들(120)에 중복적으로 저장되어 있음을 알 수 있다. 이 때, 복수의 멤버 디스크들(120)에 중복적으로 저장된 데이터들은 억세스되지 아니하므로, 불필요한 데이터들일 수 있다. 특히, 복수의 멤버 디스크들(120)이 고체 상태 디스크들인 경우, 불필요한 데이터들은 내부적 카피 오버헤드 및 소비 전력을 증가시킬 수 있다. 따라서, 불필요한 데이터들을 복수의 멤버 디스크들(120)로부터 적절히 삭제할 필요가 있다.
도 2는 본 발명의 일실시예에 따라 멤버 디스크들로 삭제 명령이 전송되는 케이스의 예를 나타낸 도면이다.
도 2를 참조하면, 멤버 디스크 1(221)에는 데이터 A1, B1, C1이 저장되어 있고, 멤버 디스크 2(222)에는 데이터 A2, B2, C2가 저장되어 있다. 그리고, 캐시(210)에는 멤버 디스크 1(221)의 데이터 A1 및 멤버 디스크 2(222)의 데이터 B2가 저장되어 있다.
호스트로부터 데이터 A1에 대한 읽기 요청이 수신되는 경우, 컨트롤러는 멤버 디스크 1(221)로 억세스함이 없이 캐시(210)에 미리 저장된 데이터 A1을 읽고 호스트로 반환한다. 마찬가지로, 호스트로부터 데이터 B2에 대한 읽기 요청이 수신되는 경우, 컨트롤러는 멤버 디스크 2(222)로 억세스함이 없이 캐시(210)에 미리 저장된 데이터 B2를 읽고 호스트로 반환한다. 따라서, 멤버 디스크 1(221)에 저장된 데이터 A1 및 멤버 디스크 2(222)에 저장된 데이터 B2는 불필요하다.
이 때, 본 발명의 일실시예에 따르면, 캐시(210)에 데이터 A1, B2가 캐싱되는 경우, 멤버 디스크 1(221) 및 멤버 디스크 2(222)로 삭제 명령이 전송된다. 즉, 캐시(210)에 데이터 A1, B2가 캐싱되는 경우, 멤버 디스크 1(221)에 저장된 데이터 A1 및 멤버 디스크 2(222)에 저장된 데이터 B2는 삭제되므로, 멤버 디스크 1(221) 및 멤버 디스크 2(222)의 남아 있는 공간(free space)은 증가한다. 여기서, 삭제 명령은 본 발명이 속하는 기술 분야에서 흔히 사용되는 'TRIM' 명령일 수 있다. 참고로, 본 발명에 따른 캐시는 후 기입 캐시로서, 배터리를 갖는 디램(battery backup DRAM 또는 비휘발성(Non volatile) 메모리일 수 있다.
아래에서는 본 발명의 다양한 실시예들을 구체적으로 설명하기로 한다.
도 3은 본 발명의 제1 삭제 정책이 적용되는 경우, 데이터의 상태들 사이의 관계를 나타낸 상태 흐름도이다.
도 3을 참조하면, 제1 삭제 정책이 적용되는 경우 본 발명의 일실시예에 따른 데이터들의 상태는 세 가지의 유형들(invalid, exclusive, modified) 중 어느 하나로 결정된다. 여기서, 상태의 세 가지 유형들은 삭제 명령이 전송되었는지 여부 또는 호스트의 쓰기 요청에 따라 업데이트되었는지 여부 등에 따라 서로 구별된다.
또한, 제1 삭제 정책은 제2 삭제 정책과 대비되는 것으로, 제1 삭제 정책에 따르면 캐시에 저장된 모든 유효한 데이터들이 멤버 디스크들로부터 삭제되는 반면, 제2 삭제 정책에 따르면 캐시에 저장된 유효한 데이터들 중 특정 유형의 상태를 갖는 데이터들만이 삭제된다. 제1 삭제 정책에 따른 구현을 'fully exclusive implementation'이라고, 제2 삭제 정책에 따른 구현을 'partially exclusive implementation'이라고 부르기로 한다.
제1 삭제 정책에 따르면, 중복되는 데이터들을 삭제함으로써 얻는 유리한 점들을 극대화할 수 있는 반면, 삭제 명령으로 인한 트래픽이 증가할 수 있는 문제가 있다. 반면에, 제2 삭제 정책에 따르면, 제1 삭제 정책에 비하여 적은 양의 비어 있는 공간을 확보하지만, 삭제 명령으로 인한 트래픽을 줄일 수 있다.
1) fully exclusive implementation에서 'read miss'가 발생하는 경우
호스트로부터 대상 데이터에 대한 읽기 요청이 발생한 경우, 컨트롤러는 캐 시에서 대상 데이터를 검색한다. 이 때, 컨트롤러는 직접 사상(direct mapping), 연관 사상(Fully associative mapping) 또는 셋-연관 사상(set-associative mapping) 중 어느 하나를 이용하여 상기 캐시에서 상기 대상 데이터를 검색할 수 있다.
대상 데이터가 미리 캐시에 저장되어 있지 않은 경우, 'read miss'가 발생한다. 'read miss'가 발생하였다고 함은 유효한 데이터가 캐시에 저장되어 있지 않다는 것을 의미하며, 이 때의 대상 데이터의 상태는 'invalid'로 표현된다.
'read miss'가 발생한 경우, 컨트롤러는 적절한 멤버 디스크들로 읽기 요청을 전달하고, 상기 멤버 디스크들은 읽기 요청에 응답하여 대상 데이터를 반환한다. 이러한 대상 데이터는 호스트로 전달된다. 이 때, 컨트롤러는 상기 멤버 디스크들로부터 반환된 대상 데이터를 캐시에 저장한다. 그리고, 제1 삭제 정책에 따르면, 캐시에 저장된 모든 유효한 데이터들은 멤버 디스크들로부터 삭제되므로, 컨트롤러는 대상 데이터에 대한 삭제 명령을 상기 멤버 디스크들로 전송한다. 또한, 캐시에 저장된 대상 데이터의 상태는 'exclusive'로 설정되며, 여기서 대상 데이터의 상태가 'exclusive'라고 함은 'read miss'가 발생한 경우, 제1 삭제 정책에 따라 멤버 디스크들로부터 대상 데이터가 삭제되었음을 지시한다.
2) fully exclusive implementation에서 'read hit'이 발생하는 경우
캐시에 호스트에 의해 읽기 요청된 대상 데이터가 미리 저장되어 있는 경우, 'read hit'이 발생한다. 이 때, 컨트롤러는 캐시로부터 대상 데이터를 추출하여 호스트로 제공한다. 또한, 캐시에 저장된 데이터의 상태는 변하지 않는다. 도 3에 기재된 'modified' 상태에 대해서는 아래에서 설명한다.
3) fully exclusive implementation에서 'write miss'가 발생하는 경우
3-1) 교체가 요구되지 않는 경우
호스트에 의해 쓰기 요청된 대상 데이터가 캐시에 미리 저장되어 있지 않은 경우, 'write miss'가 발생한다. 유효한 대상 데이터가 캐시에 저장되어 있지 않으므로, 대상 데이터의 현재 상태는 'invalid'로 예측된다.
'write miss'가 발생한 경우, 대상 데이터는 캐시에 쓰여진다. 그리고, 대상 데이터를 캐싱함에 응답하여 컨트롤러는 멤버 디스크들로 대상 데이터의 삭제 명령을 전송한다. 이 때, 캐싱된 대상 데이터의 상태는 'invalid'에서 'modified'로 변경된다. 'modified' 상태라고 함은 유효한 데이터의 상태를 지시하며, 호스트의 쓰기 요청에 따라 캐시에 업데이트된 데이터의 상태를 의미한다. 물론, 위에서 설명한 바와 같이, 'read hit'이 발생하는 경우, 캐시에 저장된 데이터의 'modified' 상태는 그대로 유지된다.
3-2) 교체가 요구되는 경우
'write miss'가 발생한 경우, 대상 데이터가 캐시에 쓰여지기 위하여 캐시에서 교체가 발생할 수 있다. 예를 들어, 캐시가 가득 찬 경우, 대상 데이터를 캐시에 쓰기 위해서는 희생 데이터를 포함하는 희생(victim) 라인이 선택된다.
희생 라인의 상태가 'invalid'인 경우, 3-1)에서 설명된 교체가 요구되지 않는 경우에 수행되는 동작들과 같은 동작들이 수행된다.
다만, 희생 라인의 상태가 'exclusive'인 경우, 희생 데이터는 캐시에만 저장되어 있고 멤버 디스크들에 저장되어 있지 않다. 따라서, 이러한 경우, 데이터의 손실을 방지하기 위하여 컨트롤러는 희생 데이터를 멤버 디스크들로 후 기입한다. 그리고, 컨트롤러는 캐시의 희생 라인에 대상 데이터를 쓰고, 삭제 명령을 멤버 디스크들로 전송한다.
이와 유사하게, 희생 라인의 상태가 'modified'인 경우에도, 희생 데이터는 캐시에만 저장되어 있고 멤버 디스크들에 저장되어 있지 않으므로, 컨트롤러는 희생 데이터를 멤버 디스크들로 후 기입한다. 그리고, 컨트롤러는 희생 라인의 상태가 'exclusive'인 경우와 같이, 캐시의 희생 라인에 대상 데이터를 쓰고, 삭제 명령을 멤버 디스크들로 전송한다.
또한, 새롭게 쓰여진 대상 데이터의 상태는 'modified'로 설정된다.
4) fully exclusive implementation에서 'write hit'이 발생하는 경우
캐시에 미리 대상 데이터가 저장되어 'write hit'이 발생한 경우, 캐시에 미리 저장된 대상 데이터의 상태는 'exclusive' 또는 'modified'이다. 이 때, 컨트롤러는 캐시에 미리 저장된 대상 데이터를 업데이트하고, 업데이트된 대상 데이터의 상태를 'modified'로 설정한다. 또한, 대상 데이터의 상태가 'exclusive' 또는 'modified'이므로, 삭제 명령의 전송은 요구되지 않는다.
도 4는 캐시에서 교체가 발생하는 경우, 본 발명의 동작 예를 나타낸 도면이다.
도 4를 참조하면, 캐시(410)의 모든 라인들에는 데이터 X, Y, Z가 채워져 있다. 호스트가 데이터 A에 대한 쓰기 요청을 전송한 경우, 'write miss'가 발생한다.
이 때, 데이터 A는 캐시(410)에 쓰여진다. 다만, 캐시(410)는 가득 차 있으므로, 캐시(410)의 라인들 중 어느 하나가 희생 라인으로 선택된다. 여기서는 데이터 Z가 저장된 라인이 희생 라인으로 선택되었다고 가정한다.
컨트롤러는 희생 데이터 Z를 멤버 디스크 1(421)로 후 기입한다. 그리고, 데이터 A는 캐시(410)에 쓰여지며, 멤버 디스크 2(422)에 저장된 데이터 A에 대한 삭제 명령이 멤버 디스크 2(422)로 전송된다.
도 5는 패리티를 저장하는 멤버 디스크가 존재하는 경우, 본 발명의 동작 예를 나타낸 도면이다.
도 5의 예시를 설명하기에 앞서, 본 발명은 패리티를 갖는 스토리지 시스템에도 그대로 잘 적용될 수 있다.
'read miss'가 발생한 경우, 캐시에 대상 데이터가 저장됨은 앞서 설명하였다. 이 때, 스토리지 시스템이 패리티를 갖는 경우, 캐싱된 대상 데이터는 패리티 그룹의 일부로 사용된다. 즉, 캐싱된 대상 데이터는 패리티 디스크의 패리티를 대신하여 못쓰게 된(failed) 디스크들을 보상하는 데에 사용될 수 있다.
교체 없이 'write miss'가 발생한 경우, 대상 데이터는 멤버 디스크에 새롭게 쓰여진다. 멤버 디스크에 대상 데이터가 새롭게 쓰여졌으므로, 이전의 패리티 또한 업데이트되어야 한다. 이 때, 컨트롤러는 멤버 디스크들로부터 대상 데이터뿐만 아니라, 패리티 디스크로부터 이전의 패리티를 읽고, 대상 데이터에 대응하는 새로운 패리티를 계산한다. 그리고, 컨트롤러는 캐시에 새로운 패리티 및 대상 데이터를 쓴 후, 패리티 디스크 및 멤버 디스크들로 삭제 명령을 전송한다. 캐시에 쓰여진 새로운 패리티 및 대상 데이터의 상태는 'modified'로 변경된다.
패리티를 갖는 스토리지 시스템에서, 교체와 함께 'write miss'가 발생한 경우, 상술한 과정과 동일한 과정이 수행된다. 다만, 희생 데이터 또는 희생 패리티를 후 기입하는 과정이 추가적으로 수행된다.
또한, 패리티를 갖는 스토리지 시스템에서, 교체와 함께 'write hit'가 발생한 경우, 대상 데이터의 현재 상태가 'invalid'라면, 'read miss'가 발생한 경우와 동일한 동작들이 수행된다. 다만, 대상 데이터의 현재 상태가 'exclusive'이거나 'modified'라면, 다소 다른 동작들이 수행된다. 보다 구체적으로, 패리티가 캐시에 있다면, 패리티 디스크로부터 새롭게 패리티를 읽을 필요가 없이, 새로운 패리티가 계산된다. 그리고, 대상 데이터 및 새로운 패리티는 캐시에 업데이트된다. 다만, 패리티를 멤버 디스크들로부터 읽을 필요가 있다면, 컨트롤러는 패리티를 읽은 후 삭제 명령을 전송한다.
도 5를 참조하면, 멤버 디스크 1(521)에는 원래의 데이터 A가 저장되어 있고, 패리티 디스크인 멤버 디스크 2(522)에는 원래의 패리티 P1이 저장되어 있다. 이 때, 호스트의 데이터 B에 대한 쓰기 요청에 응답하여 'write miss'가 발생한 경우, 원래의 데이터 A가 데이터 B로 변경됨에 따라 원래의 패리티 P1은 새로운 패리티 P2로 변경되어야 한다.
컨트롤러는 업데이트된 데이터 B 및 새로운 패리티 P2를 캐시에 저장하고, 멤버 디스크 1(521) 및 멤버 디스크 2(522)로 삭제 명령을 전송한다.
도 6은 본 발명의 제2 삭제 정책이 적용되는 경우, 데이터의 상태들 사이의 관계를 나타낸 상태 흐름도이다.
도 6을 참조하면, 제2 삭제 정책이 적용되는 경우 본 발명의 일실시예에 따른 데이터들의 상태는 세 가지의 유형들(invalid, valid, modified) 중 어느 하나로 결정된다. 여기서, 상태의 세 가지 유형들은 삭제 명령이 전송되었는지 여부 또는 호스트의 쓰기 요청에 따라 업데이트되었는지 여부 등에 따라 서로 구별된다. 앞서 설명한 바와 같이, 제2 삭제 정책에 따르면 캐시에 저장된 유효한 데이터들 중 특정 유형의 상태를 갖는 데이터들만이 삭제된다.
5) partially exclusive implementation에서 'read miss'가 발생하는 경우
'read miss'가 발생한 경우, 컨트롤러는 적절한 멤버 디스크들로 읽기 요청을 전달하고, 상기 멤버 디스크들은 읽기 요청에 응답하여 대상 데이터를 반환한다. 이러한 대상 데이터는 호스트로 전달된다. 이 때, 컨트롤러는 상기 멤버 디스크들로부터 반환된 대상 데이터를 캐시에 저장하고, 캐싱된 대상 데이터의 상태를 'valid'로 설정한다. 제2 삭제 정책에 따르면, 캐시에 저장된 모든 유효한 데 이터들은 멤버 디스크들로부터 삭제되지 않고, 특정 유형인 'exclusive' 상태의 데이터들만 멤버 디스크들로부터 삭제된다. 따라서, 캐싱된 대상 데이터에 대한 삭제 명령은 멤버 디스크들로 전송되지 않는다.
6) partially exclusive implementation에서 'read hit'이 발생하는 경우
컨트롤러는 캐시로부터 대상 데이터를 추출하여 호스트로 제공한다. 또한, 캐시에 저장된 데이터의 상태는 변하지 않는다.
7) partially exclusive implementation에서 'write miss'가 발생하는 경우
7-1) 교체가 요구되지 않는 경우
'write miss'가 발생한 경우, 대상 데이터는 캐시에 쓰여진다. 그리고, 대상 데이터를 캐싱함에 응답하여 컨트롤러는 멤버 디스크들로 대상 데이터의 삭제 명령을 전송한다. 그리고, 캐싱된 대상 데이터의 상태는 'modified'로 설정된다.
7-2) 교체가 요구되는 경우
희생 데이터를 포함하는 희생(victim) 라인이 선택된다. 희생 라인의 상태가 'valid'인 경우, 컨트롤러는 희생 데이터를 새로운 데이터로 덮어 쓰기한다. 그리고, 컨틀롤러는 삭제 명령을 멤버 디스크들로 전송한다. 그리고, 컨트롤러는 캐시의 희생 라인에 대상 데이터를 쓰고, 삭제 명령을 멤버 디스크들로 전송한다. 또한, 새롭게 쓰여진 대상 데이터의 상태는 'modified'로 설정된다.
또한, 희생 라인의 상태가 'modified'인 경우, 컨트롤러는 희생 데이터를 멤버 디스크들로 후 기입하고, 희생 데이터를 새로운 데이터로 덮어 쓰기한다.
8) partially exclusive implementation에서 'write hit'이 발생하는 경우
캐싱된 대상 데이터의 상태가 'valid'인 경우, 컨트롤러는 캐싱된 대상 데이터를 업데이트하고, 삭제 명령을 멤버 디스크들로 전송한다. 다만, 캐싱된 대상 데이터의 상태가 'modified'인 경우, 멤버 디스크들에는 대상 데이터가 존재하지 않으므로, 캐싱된 대상 데이터는 업데이트되는 반면 삭제 명령은 전송되지 않는다. 그리고, 업데이트된 대상 데이터의 상태는 'modified'로 설정된다.
partially exclusive implementation에 적용되는 본 발명의 동작 원리는 패리티를 갖는 스토리지 시스템에도 동일하게 적용될 수 있다. 즉, 'read miss'가 발생하는 경우 및 'read hit'이 발생하는 경우에는 앞서 설명한 동작들이 그대로 수행된다.
다만, 교체 없이 'write miss'가 발생한 경우, 이전의 패리티 또한 업데이트되어야 하므로, 컨트롤러는 대상 데이터에 대응하는 새로운 패리티를 계산한다. 그리고, 컨트롤러는 캐시에 새로운 패리티 및 대상 데이터를 쓴 후, 패리티 디스크 및 멤버 디스크들로 삭제 명령을 전송한다. 캐시에 쓰여진 새로운 패리티 및 대상 데이터의 상태는 'modified'로 변경된다.
또한, 패리티를 갖는 스토리지 시스템에서, 교체와 함께 'write miss'가 발생한 경우, 교체 없이 'write miss'가 발생한 경우 수행되는 과정과 동일한 과정이 수행된다. 다만, 다음의 과정들이 추가적으로 수행된다. 즉, 필요한 경우, 대상 데이터 및 새로운 패리티를 위한 희생 라인들이 선택될 수 있다. 뿐만 아니라, 희생 데이터 또는 희생 패리티의 상태가 'valid'인 경우, 컨트롤러는 대상 데이터 또는 새로운 패리티를 희생 라인들에 덮어 쓰기한 후, 대상 데이터 또는 새로운 패리티의 상태를 'modified'로 변경한다. 또한, 희생 데이터 또는 희생 패리티의 상태가 'modified'인 경우, 컨트롤러는 희생 데이터 또는 희생 패리티를 후 기입한 후, 대상 데이터 또는 새로운 패리티를 캐시에 쓴다.
도 7은 미러링 기법을 사용하는 캐시를 나타낸 도면이다.
도 7에 도시된 예시를 설명하기에 앞서, fully exclusive implementation에서, 캐시 컨텐츠의 잉여분(redundancy)를 갖는 것은 캐시의 손상에 따른 리스크를 줄이기 위하여 효과적일 수 있다. 특히, 캐시는 데이터 및 패리티를 포함할 수 있으므로, 캐시의 손상에 따른 리스크를 줄이는 것은 중요한 문제일 수 있다.
캐시의 손상에 따른 리스크를 줄이기 위하여, 캐시 자체를 미러링하는 방법도 좋은 아이디어일 수 있다. 즉, 캐시 자체를 다른 캐시 또는 특정 멤버 디스크에 미러링하는 것을 고려할 수 있다.
도 7을 참조하면, 전체 캐시(710)는 원본 캐시(711) 및 미러링된 캐시(712)로 나누어질 수 있다. 이 때, 원본 캐시(711) 및 미러링된 캐시(712)는 별도의 유닛들로 떨어져서 설치될 수도 있다. 원본 캐시(711)의 손상에도 불구하고 미러링 된 캐시(712)가 존재하는 경우, 데이터의 손실을 방지할 수 있다.
도 7에 도시된 바와 달리, 캐시는 멤버 디스크들에도 미러링될 수 있음은 당연하다.
도 8은 본 발명의 일실시예에 따른 컨트롤러를 나타낸 블록도이다.
도 8을 참조하면, 본 발명의 일실시예에 따른 컨트롤러는 검색부, 캐싱부, 삭제 명령 전송부를 포함한다.
검색부는 호스트의 대상 데이터에 대한 읽기 요청 또는 쓰기 요청에 응답하여 캐시에서 상기 대상 데이터를 검색한다.
또한, 캐싱부는 상기 검색 결과에 따라 상기 캐시에 복수의 멤버 디스크들로부터 상기 대상 데이터를 캐싱한다.
또한, 삭제 명령 전송부는 상기 대상 데이터를 캐싱함에 응답하여 상기 복수의 멤버 디스크들로 상기 대상 데이터의 삭제 명령을 전송한다. 이 때, 삭제 명령 전송부는 상기 복수의 멤버 디스크들로 상기 캐시에 저장된 모든 유효한 데이터들에 대한 삭제 명령을 전송하는 제1 삭제 정책 또는 상기 유효한 데이터들 중 일부에 대한 삭제 명령을 전송하는 제2 삭제 정책에 따라 상기 삭제 명령을 전송할 수 있다.
또한, 도 8에 도시되지 아니하였으나, 컨트롤러는 상기 삭제 명령이 전송되었는지 여부를 고려하여 상기 캐싱된 대상 데이터의 상태를 설정하는 상태 설정부를 더 포함할 수 있다.
도 8에 도시된 컨트롤러에 대해서는 도 1 내지 도 7을 통해 설명된 내용이 그대로 적용될 수 있으므로, 보다 상세한 설명은 생략한다.
본 발명에 따른 컨트롤러의 동작 방법은 하드웨어, 소프트웨어, 하드웨어 및 소프트웨어의 결합으로 구현 가능하다. 이 때, 본 발명에 따른 컨트롤러의 동작 방법을 수행하기 위한 소프트웨어는 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 관련 기술에 따른 컨트롤러, 캐시 및 복수의 멤버 디스크들을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따라 멤버 디스크들로 삭제 명령이 전송되는 케이스의 예를 나타낸 도면이다.
도 3은 본 발명의 제1 삭제 정책이 적용되는 경우, 데이터의 상태들 사이의 관계를 나타낸 상태 흐름도이다.
도 4는 캐시에서 교체가 발생하는 경우, 본 발명의 동작 예를 나타낸 도면이다.
도 5는 패리티를 저장하는 멤버 디스크가 존재하는 경우, 본 발명의 동작 예를 나타낸 도면이다.
도 6은 본 발명의 제2 삭제 정책이 적용되는 경우, 데이터의 상태들 사이의 관계를 나타낸 상태 흐름도이다.
도 7은 미러링 기법을 사용하는 캐시를 나타낸 도면이다.
도 8은 본 발명의 일실시예에 따른 컨트롤러를 나타낸 블록도이다.

Claims (21)

  1. 호스트의 대상 데이터에 대한 읽기 요청에 응답하여 캐시에서 상기 대상 데이터를 검색하는 단계;
    상기 검색 결과에 따라 상기 캐시에 복수의 멤버 디스크들로부터 상기 대상 데이터를 캐싱하는 단계; 및
    상기 대상 데이터를 캐싱함에 응답하여 상기 복수의 멤버 디스크들로 상기 대상 데이터의 삭제 명령을 전송하는 단계
    를 포함하는 것을 특징으로 하는 캐시 및 디스크 관리 방법.
  2. 제1항에 있어서,
    상기 삭제 명령을 전송하는 단계는
    상기 복수의 멤버 디스크들로 상기 캐시에 저장된 모든 유효한 데이터들에 대한 삭제 명령을 전송하는 제1 삭제 정책 또는 상기 유효한 데이터들 중 일부에 대한 삭제 명령을 전송하는 제2 삭제 정책에 따라 상기 삭제 명령을 전송하는 단계인 것을 특징으로 하는 캐시 및 멤버 디스크들을 관리하는 방법.
  3. 제1항에 있어서,
    상기 삭제 명령이 전송되었는지 여부를 고려하여 상기 캐싱된 대상 데이터의 상태를 설정하는 단계
    를 더 포함하는 것을 특징으로 하는 캐시 및 디스크 관리 방법.
  4. 제1항에 있어서,
    상기 캐싱된 대상 데이터는 패리티 그룹의 새로운 멤버로 사용되는 것을 특징으로 하는 캐시 및 멤버 디스크들을 관리하는 방법.
  5. 제1항에 있어서,
    상기 캐시에서 상기 대상 데이터가 검색된 경우, 상기 호스트로 상기 검색된 대상 데이터를 전송하는 단계
    를 더 포함하는 것을 특징으로 하는 캐시 및 디스크 관리 방법.
  6. 제1항에 있어서,
    상기 복수의 멤버 디스크들은 고체 상태 디스크들이고, 상기 캐시는 후 기입 캐시(write-back cache)인 것을 특징으로 하는 캐시 및 멤버 디스크들을 관리하는 방법.
  7. 제1항에 있어서,
    상기 캐시에서 상기 대상 데이터를 검색하는 단계는
    직접 사상(direct mapping), 연관 사상(Fully associative mapping) 또는 셋-연관 사상(set-associative mapping) 중 어느 하나를 이용하여 상기 캐시에서 상 기 대상 데이터를 검색하는 단계인 것을 특징으로 하는 캐시 및 멤버 디스크들을 관리하는 방법.
  8. 제3항에 있어서,
    상기 캐싱된 대상 데이터의 상태는 상기 삭제 명령이 전송되었는지 여부 또는 상기 캐싱된 대상 데이터가 상기 복수의 멤버 디스크들로부터 캐싱되었는지 여부를 지시하는 것을 특징으로 하는 캐시 및 디스크 관리 방법.
  9. 호스트의 대상 데이터에 대한 쓰기 요청에 응답하여 캐시에 상기 대상 데이터를 캐싱하는 단계; 및
    상기 대상 데이터를 캐싱함에 응답하여 복수의 멤버 디스크들로 상기 대상 데이터의 삭제 명령을 전송하는 단계
    를 포함하는 것을 특징으로 하는 캐시 및 디스크 관리 방법.
  10. 제9항에 있어서,
    상기 캐시에 상기 대상 데이터를 캐싱하는 단계는
    상기 캐시에 미리 상기 대상 데이터가 저장되어 있지 않은 경우, 상기 캐시에서 교체(replacement)가 발생하지 않고 상기 대상 데이터를 캐싱하는 단계이고,
    상기 삭제 명령을 전송하는 단계는
    상기 대상 데이터를 캐싱한 이후에 상기 삭제 명령을 전송하는 단계인 것을 특징으로 하는 캐시 및 디스크 관리 방법.
  11. 제9항에 있어서,
    상기 삭제 명령이 전송되었는지 여부를 고려하여 상기 캐싱된 대상 데이터의 상태를 설정하는 단계
    를 더 포함하는 것을 특징으로 하는 캐시 및 디스크 관리 방법.
  12. 제9항에 있어서,
    상기 캐시에 상기 대상 데이터를 캐싱하는 단계는
    상기 캐시에 미리 상기 대상 데이터가 저장되어 있는 경우, 상기 미리 저장된 대상 데이터를 업데이트하는 단계
    를 포함하고,
    상기 삭제 명령을 전송하는 단계는
    상기 복수의 멤버 디스크들에 상기 대상 데이터가 저장되어 있는 경우, 상기 삭제 명령을 전송하는 단계인 것을 특징으로 하는 캐시 및 디스크 관리 방법.
  13. 제9항에 있어서,
    상기 대상 데이터를 캐싱하는 단계는
    상기 캐시에 미리 상기 대상 데이터가 저장되어 있지 않고, 상기 캐시에서 교체(replacement)가 발생하는 경우, 상기 대상 데이터를 캐싱하기 이전에 상기 교 체에 따른 희생 데이터를 상기 복수의 멤버 디스크들에 후 기입하는 단계
    를 포함하는 것을 특징으로 하는 캐시 및 디스크 관리 방법.
  14. 제9항에 있어서,
    상기 대상 데이터를 캐싱하는 단계는
    상기 캐시에 미리 상기 대상 데이터가 저장되어 있지 않은 경우, 상기 캐시에서 교체(replacement)가 발생하는 경우, 상기 복수의 멤버 디스크들에 상기 교체에 따른 희생 데이터가 저장되어있는지 여부에 따라 상기 대상 데이터를 캐싱하기 이전에 상기 희생 데이터를 상기 복수의 멤버 디스크들에 후 기입하는 단계
    를 포함하는 것을 특징으로 하는 캐시 및 디스크 관리 방법.
  15. 제9항에 있어서,
    상기 대상 데이터를 캐싱하는 단계는
    상기 대상 데이터를 기초로 업데이트되는 패리티를 캐싱하는 단계
    를 포함하는 것을 특징으로 하는 캐시 및 디스크 관리 방법.
  16. 제15항에 있어서,
    상기 삭제 명령을 전송하는 단계는
    상기 복수의 멤버 디스크들로 상기 패리티에 대한 삭제 명령을 전송하는 단계
    를 포함하는 것을 특징으로 하는 캐시 및 디스크 관리 방법.
  17. 제13항에 있어서,
    상기 대상 데이터를 캐싱하는 단계는
    상기 대상 데이터를 기초로 업데이트되는 패리티를 캐싱하는 단계; 및
    상기 대상 데이터 및 상기 패리티를 캐싱하기 이전에 상기 교체에 따른 희생 데이터 및 상기 희생 데이터에 대응되는 희생 패리티를 상기 복수의 멤버 디스크들에 후 기입하는 단계
    를 포함하는 것을 특징으로 하는 캐시 및 디스크 관리 방법.
  18. 제15항에 있어서,
    상기 캐싱된 대상 데이터 및 패리티를 상기 캐시에 디스크들에 미러링(mirroring)하는 단계
    를 더 포함하는 것을 특징으로 하는 캐시 및 디스크 관리 방법.
  19. 제1항 내지 제18항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체
  20. 호스트의 대상 데이터에 대한 읽기 요청에 응답하여 캐시에서 상기 대상 데이터를 검색하는 검색부;
    상기 검색 결과에 따라 상기 캐시에 복수의 멤버 디스크들로부터 상기 대상 데이터를 캐싱하는 캐싱부; 및
    상기 대상 데이터를 캐싱함에 응답하여 상기 복수의 멤버 디스크들로 상기 대상 데이터의 삭제 명령을 전송하는 삭제 명령 전송부
    를 포함하는 것을 특징으로 하는 컨트롤러.
  21. 제20항에 있어서,
    상기 캐싱부는
    상기 대상 데이터에 대한 쓰기 요청에 응답하여 상기 캐시에 상기 대상 데이터를 캐싱하는 것을 특징으로 하는 컨트롤러.
KR1020090033479A 2009-04-17 2009-04-17 캐시 및 디스크 관리 방법 및 상기 방법을 이용한 컨트롤러 KR101023877B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020090033479A KR101023877B1 (ko) 2009-04-17 2009-04-17 캐시 및 디스크 관리 방법 및 상기 방법을 이용한 컨트롤러
CN2009801587566A CN102395957A (zh) 2009-04-17 2009-12-23 一种高速缓存和磁盘的管理方法以及利用所述方法的控制器
PCT/KR2009/007697 WO2010120032A1 (ko) 2009-04-17 2009-12-23 캐시 및 디스크 관리 방법 및 상기 방법을 이용한 컨트롤러
US13/264,275 US8977816B2 (en) 2009-04-17 2009-12-23 Cache and disk management method, and a controller using the method
JP2012505798A JP2012523642A (ja) 2009-04-17 2009-12-23 キャッシュおよびディスク管理方法およびその方法を用いるコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090033479A KR101023877B1 (ko) 2009-04-17 2009-04-17 캐시 및 디스크 관리 방법 및 상기 방법을 이용한 컨트롤러

Publications (2)

Publication Number Publication Date
KR20100114999A KR20100114999A (ko) 2010-10-27
KR101023877B1 true KR101023877B1 (ko) 2011-03-22

Family

ID=42982674

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090033479A KR101023877B1 (ko) 2009-04-17 2009-04-17 캐시 및 디스크 관리 방법 및 상기 방법을 이용한 컨트롤러

Country Status (5)

Country Link
US (1) US8977816B2 (ko)
JP (1) JP2012523642A (ko)
KR (1) KR101023877B1 (ko)
CN (1) CN102395957A (ko)
WO (1) WO2010120032A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140042518A (ko) * 2012-09-28 2014-04-07 삼성전자주식회사 세그먼트 클리닝 장치 및 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8285930B2 (en) 2010-02-26 2012-10-09 Red Hat, Inc. Methods for adapting performance sensitive operations to various levels of machine loads
US20140189202A1 (en) * 2012-12-28 2014-07-03 Hitachi, Ltd. Storage apparatus and storage apparatus control method
CN104679449B (zh) * 2015-03-12 2017-08-25 浪潮集团有限公司 一种提升海量存储后端性能的方法
CN106557277B (zh) * 2015-09-30 2019-07-19 成都华为技术有限公司 磁盘阵列的读方法及装置
US10705969B2 (en) * 2018-01-19 2020-07-07 Samsung Electronics Co., Ltd. Dedupe DRAM cache
WO2019183958A1 (zh) * 2018-03-30 2019-10-03 华为技术有限公司 数据写入方法、客户端服务器和系统
KR20200141172A (ko) 2019-06-10 2020-12-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181798A (ja) 1998-12-18 2000-06-30 Sanyo Electric Co Ltd ディスク装置のキャッシュ制御方式
US20030177305A1 (en) * 2002-03-18 2003-09-18 Hetrick William A. Method and apparatus for using a solid state disk device as a storage controller cache
US20070094445A1 (en) * 2005-10-20 2007-04-26 Trika Sanjeev N Method to enable fast disk caching and efficient operations on solid state disks

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142627A (en) * 1988-11-17 1992-08-25 Unisys Corporation FIP-compliant block multiplexor channel interface operational method for cache/disk subsystem
JPH04273548A (ja) * 1991-02-28 1992-09-29 Toshiba Corp ディスク制御装置
JPH0520196A (ja) * 1991-07-09 1993-01-29 Mitsubishi Electric Corp デイスク・キヤツシユ制御装置
JP2549034B2 (ja) * 1991-07-22 1996-10-30 株式会社メルコ 記憶装置
JP3258117B2 (ja) * 1993-03-08 2002-02-18 株式会社日立製作所 記憶装置サブシステム
JPH07114500A (ja) * 1993-10-19 1995-05-02 Matsushita Electric Ind Co Ltd 不揮発性メモリ記憶装置
WO1997001139A1 (en) * 1995-06-23 1997-01-09 Elonex Plc Disk array controller with enhanced synchronous write
US6148368A (en) * 1997-07-31 2000-11-14 Lsi Logic Corporation Method for accelerating disk array write operations using segmented cache memory and data logging
JP3578265B2 (ja) * 1999-11-19 2004-10-20 日本電気株式会社 不揮発性メモリへのデータ書き込み方法および情報処理装置ならびに記録媒体
US6330640B1 (en) * 1999-12-22 2001-12-11 Seagate Technology Llc Buffer management system for managing the transfer of data into and out of a buffer in a disc drive
CN1122281C (zh) * 2001-06-30 2003-09-24 深圳市朗科科技有限公司 一种多功能半导体存储装置
JP2003345520A (ja) * 2002-05-24 2003-12-05 Hitachi Ltd ディスクアレイ・システム及びディスクアレイ・システムにおけるキャッシュ制御方法
US7155571B2 (en) * 2002-09-30 2006-12-26 International Business Machines Corporation N-source in-kernel cache for high performance in computer operating systems
CN1279455C (zh) * 2003-11-14 2006-10-11 清华大学 光纤通道-存储区域网络系统的逻辑单元号高速缓存方法
US7529903B2 (en) * 2005-07-05 2009-05-05 International Business Machines Corporation Systems and methods for memory migration
US7363418B1 (en) * 2005-09-28 2008-04-22 Emc Corporation Data storage system volume matrix
US20070288699A1 (en) * 2006-06-08 2007-12-13 Inventec Corporation System and method of protecting data in write-back cache between storage systems
JP2007058873A (ja) * 2006-10-10 2007-03-08 Hitachi Ltd 不揮発メモリを使用したディスク制御装置
CN101236530B (zh) * 2008-01-30 2010-09-01 清华大学 高速缓存替换策略的动态选择方法
JP5028381B2 (ja) * 2008-10-22 2012-09-19 株式会社日立製作所 ストレージ装置およびキャッシュ制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181798A (ja) 1998-12-18 2000-06-30 Sanyo Electric Co Ltd ディスク装置のキャッシュ制御方式
US20030177305A1 (en) * 2002-03-18 2003-09-18 Hetrick William A. Method and apparatus for using a solid state disk device as a storage controller cache
US20070094445A1 (en) * 2005-10-20 2007-04-26 Trika Sanjeev N Method to enable fast disk caching and efficient operations on solid state disks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140042518A (ko) * 2012-09-28 2014-04-07 삼성전자주식회사 세그먼트 클리닝 장치 및 방법
KR102002830B1 (ko) 2012-09-28 2019-07-23 삼성전자 주식회사 세그먼트 클리닝 장치 및 방법

Also Published As

Publication number Publication date
US20120036311A1 (en) 2012-02-09
JP2012523642A (ja) 2012-10-04
KR20100114999A (ko) 2010-10-27
CN102395957A (zh) 2012-03-28
WO2010120032A1 (ko) 2010-10-21
US8977816B2 (en) 2015-03-10

Similar Documents

Publication Publication Date Title
KR101023877B1 (ko) 캐시 및 디스크 관리 방법 및 상기 방법을 이용한 컨트롤러
US9411742B2 (en) Use of differing granularity heat maps for caching and migration
US8819367B1 (en) Accelerated translation power recovery
US9921955B1 (en) Flash write amplification reduction
US9274975B2 (en) Management of partial data segments in dual cache systems
JP5943363B2 (ja) キャッシュを有するストレージ・システムにおけるデータのキャッシングを決定するプログラム、システム、および方法
US8656104B2 (en) Prefetching source tracks for destaging updated tracks in a copy relationship
JP6099059B2 (ja) ストレージのためのトラックのキャッシュ管理するプログラム、システム、および方法
JP2013521559A (ja) 電源回復後のリロード機能付きキャッシュ
US7251716B2 (en) Method and system for data processing with recovery capability
KR20140118519A (ko) 비휘발성 메모리에 기반하여 저널링 기능을 통합한 버퍼 캐시 장치, 저널링 파일 시스템 및 저널링 방법
JP2010152747A (ja) ストレージシステム、ストレージのキャッシュ制御方法、及びキャッシュ制御プログラム
US9032153B2 (en) Use of flash cache to improve tiered migration performance
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法
US11550732B2 (en) Calculating and adjusting ghost cache size based on data access frequency
KR101686340B1 (ko) 대용량 스토리지 장치를 위한 효율적인 비휘발성 캐시 부하 관리 방법
US10579541B2 (en) Control device, storage system and method
JP3335919B2 (ja) ディスクキャッシュ制御装置
US11372764B2 (en) Single-copy cache using heterogeneous memory types
US20140101397A1 (en) Remote redundant array of inexpensive memory
JPH0612328A (ja) キャッシュメモリのデータ蓄積方法
KR20150050764A (ko) 스토리지 서버 환경에서 지역성 기반 ssd 캐시 모듈

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
FPAY Annual fee payment

Payment date: 20131128

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140915

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151211

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee