KR100303217B1 - 피드백루프를이용하여기록캐시환경에서캐시플러시입출력속도를제어하기위한방법및장치 - Google Patents

피드백루프를이용하여기록캐시환경에서캐시플러시입출력속도를제어하기위한방법및장치 Download PDF

Info

Publication number
KR100303217B1
KR100303217B1 KR1019970042138A KR19970042138A KR100303217B1 KR 100303217 B1 KR100303217 B1 KR 100303217B1 KR 1019970042138 A KR1019970042138 A KR 1019970042138A KR 19970042138 A KR19970042138 A KR 19970042138A KR 100303217 B1 KR100303217 B1 KR 100303217B1
Authority
KR
South Korea
Prior art keywords
cache flush
rate
target cache
determining
flush rate
Prior art date
Application number
KR1019970042138A
Other languages
English (en)
Other versions
KR19980019121A (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 KR19980019121A publication Critical patent/KR19980019121A/ko
Application granted granted Critical
Publication of KR100303217B1 publication Critical patent/KR100303217B1/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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID

Landscapes

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

Abstract

본 발명에 의하면, 피드백 루프를 이용하여 RAID 기억 서브시스템에서 캐쉬 플러시 속도(cache flush rate)를 제어하기 위한 방법 및 관련 장치가 개시된다. 본 발명의 방법은 RAID 제어기 내의 내부 자원 경합(internal resource contention)뿐만 아니라 호스트 생성 입출력 요구(host generated I/O requests)로 인한 RAID 서브시스템 상의 로딩에 응답하여 캐쉬 플러시 속도를 단순하게 자동적으로 조정하기 위해 캐쉬된 RAID 서브시스템의 RAID 제어기 내에서 동작한다. 특히, 본 발명의 방법은 다음 시간간격 동안에 디스크 어레이로 플러싱하도록 스케쥴링되는 데이터양을 판단하기 위해 주기적으로 동작한다. 스케쥴링된 데이터양은 추정된 캐쉬 플러시 처리량(throughput), 이전 시간간격 동안에 추정된 처리량 및 디스크 어레이에 성공적으로 전달(posted)되었던 이전 시간간격 동안에 플러시를 위해 스케쥴링된 실제 데이터양의 함수로서 판단된다. 이들 값은 추정된 처리량 및 다음 시간간격 동안에 전달을 위해 스케쥴링된 데이터양이 이전 시간간격으로부터 변화없이 유지되는지, 증가하는지 또는 감소하는지를 판단하도록 다양한 임계값(threshold values)에 비교된다. 그러므로, 본 발명의 방법은 특정 RAID 제어기의 특정 성능 특성과 무관하고, 특정 디스크 드라이브 및 디스크 채널 성능 특성과 무관하다. 또한, 본 발명의 방법은 동작하는 특정 RAID 환경의 성능 한계에 자동적으로 적응한다. 캐쉬 플러시 속도를 제어하는데 이용되는 임계값이 RAID 서브시스템의 전반적인 성능을 더 한층 개선시키기 위해 특정 RAID 환경의 성능 목표에 적응될 수 있다.

Description

피드백 루프를 이용하여 기록 캐시 환경에서 캐시 플러시 입출력 속도를 제어하기 위한 방법 및 장치{METHOD AND APPARATUS FOR USING A FEEDBACK LOOP TO CONTROL CACHE FLUSH I/O RATE IN A WRITE CACHE ENVIRONMENT}
본 발명은 캐시 기록 동작(chche write operations)에 이용되는 캐시를 플러싱할 경우에 입출력(I/O) 동작의 속도 제어에 관한 것으로서, 특히 캐시된 RAID 저장 서브시스템(cached RAID storage subsystem) 내의 캐시를 플러싱할 경우에 I/O 동작의 속도를 제어하기 위한 피드백 루프 구조의 이용에 관한 것이다.
최신의 대용 저장 서브시스템(mass storage subsystems)은 호스트 컴퓨터 시스템 애플리케이션(host computer system applications)의 사용자 요구를 충족시키기 위해 저장 용량을 지속적으로 증가시키고 있다. 또한, 대용량 대량 저장(large capacity mass storage)에 관한 이러한 중대한 의존성으로 인해, 강화된 신뢰도에 대한 요구가 높다. 통상적으로, 다양한 저장 구성 및 기하학의 대량 저장 서브시스템의 신뢰도를 유지 또는 강화시키면서 보다 높은 저장 용량에 대한 요구를 충족시키도록 적용된다.
증가된 용량 및 신뢰도를 위한 이들 대량 저장 요구에 대한 보편적인 해결 방법은 다양한 오류의 경우에 데이터 보전을 확보하도록 저장된 데이터의 리던던시(redundancy)를 허가하는 여러 기하학에서 구성된 다수의 소형 저장 모듈을 이용하는 것이다. 이러한 여러 리던던트 서브시스템(redundant subsystem)에 있어서는, 데이터 리던던시, 오류 코드 및 소위 "핫 스페어(hot spares)" (오류가 발생된 이전 활성 저장 모듈을 대체하도록 활성화될 수 있는 여분의 저장 모듈)의 이용으로 인해 저장 서브시스템 내에서 여러 공통 오류로부터의 복구가 자동화될 수 있다. 이들 서브시스템은 통상적으로 값싼(또는 독립적인) 디스크의 리던던트 어레이(redundant arrays of inexpensive(or independent) disks)로 언급된다(또는 통상적으로 두문자어 "RAID"로서 언급됨). 미국 버클리 소재의 캘리포니아 대학의 "David A. Patterson" 등에 의한 "A CASE FOR REDUNDANT ARRAYS OF INEXPENSIVE DISKS(RAID)"란 명칭의 1987년 공보에서 RAID 기술의 기본적인 개념이 개시되어 있다.
"Patterson" 공보에서 정의된 5가지 "레벨"의 표준 기하학이 존재한다. 가장 간단한 어레이인 RAID 레벨1 시스템은 데이터를 저장하기 위한 하나 또는 그 이상의 디스크와, 데이터 디스크에 기록된 정보의 복사본(copy)을 저장하기 위한 동일한 갯수의 부가적인 미러 디스크(mirror disks)를 구비한다. RAID 레벨2, 3, 4 및 5 시스템으로서 식별되는 나머지 RAID 레벨은 데이터를 몇몇 데이터 디스크 전역에 저장하기 위해 다수의 부분으로 분할한다. 여러 부가적인 디스크 중 하나는 오류 검사(error check) 또는 패리티 정보(parity information)를 저장하는데 이용된다. 본 발명은 RAID 레벨4 및 5 시스템의 동작에서의 개선에 관한 것이다.
RAID 레벨4 디스크 어레이는 N개의 디스크가 데이터를 저장하는데 이용될 경우에 N+1개의 디스크를 구비하고, 부가적인 디스크는 오류 검사 정보(error checking information)를 저장하는데 이용된다. 세이브(save)되는 데이터는 디스크에서의 저장을 위한 하나 또는 다수의 데이터 블록으로 이루어진 부분으로 분할된다. 통상적으로, N개의 데이터 드라이브 전역에 저장된 데이터의 상응하는 부분의비트 방식(bit-wise)의 XOR(exclusive OR) 연산을 수행함으로써 계산되는 패리티 검사에 상응하는 오류 검사 정보는 전용 오류 검사(패리티) 디스크(dedicated error checking(parity) disk)에 기록된다. 패리티 디스크는 디스크 오류의 경우에 정보를 재구성하는데 이용된다. 통상적으로, 기록 동작은 두 디스크에 대한 액세스(access) 즉, 하기에서 더 상세하게 설명될 N개의 데이터 디스크 중 하나와 패리티 디스크에 대한 액세스를 필요로 한다. 통상적으로 판독 동작은 판독될 데이터가 각 디스크 상에 저장되어 있는 블록 길이(block length)를 초과하지 않을 경우에 N개의 데이터 디스크 중 하나의 디스크에 대한 액세스만을 필요로 있다.
RAID 레벨5 디스크 어레이는 데이터에 덧붙여서 오류 감사 정보가 각 그룹에서 N+1개의 디스크 전역에 분산되는 것을 제외하고는 RAID 레벨4 디스크와 유사하다. 어레이 내의 N+1개의 디스크 각각은 데이터를 저장하기 위한 일정 블록과 패리티 정보를 저장하기 위한 일정 블록을 구비한다. 오류 검사(패리티) 정보를 저장하기 위한 그룹의 위치는 사용자에 의해 구현된 알고리즘에 의해 제어된다. RAID 레벨4 시스템에서와 같이, RAID 레벨5 기록은 두 디스크에 대한 액세스를 통상적으로 필요로 한다. 하지만, 어레이에 대한 모든 기록은 RAID 레벨4 시스템에서와 동일한 전용 패리티 디스크에 대한 액세스를 더 이상 필요로 하지는 않는다. 이러한 특징은 피리티(오류 검사 정보)가 하나의 디스크 장치에 집중되지 않기 때문에 개별 그룹에서 동시 기록 동작을 수행하기 위한 기회를 제공한다.
신뢰도를 강화시키기 위해 이러한 리던던시(redundancy)(패리티) 정보의 첨부는 사용자 데이터의 각 유닛에 대한 판독 및 기록된 정보의 양적 증가로 인해RAID 저장 서브시스템의 전반적인 성능에 부정적인 영향을 줄 수 있다. 바람직한 성능 수준을 유지시키는데 도움을 주기 위해, RAID 제어기 내에서 캐시 메모리 구조를 이용하는 것은 RAID 저장 서브시스템에서 통상적인 것이다. 사용자 판독 요구는 디스크 어레이의 비교적 느린 디스크 드라이브가 아니라 캐시 메모리로부터 요구받은 데이터를 판독함으로써 더 빠르게 완료될 수 있다. 사용자 기록 요구는 캐시 메모리에 사용자 제공 데이터를 기록함으로써 완료된다. 이후, 캐시된 데이터는 시간적으로 늦은 시점에 디스크 어레이의 디스크 드라이브에 기록된다. RAID 저장 서브시스템에 대한 기록 액세스를 가속화하기 위한 복적의 이러한 캐시 동작은 "재기록(write-back)" 캐시 동작 또는 단순히 "재기록 캐시(write-back cache)"로 종종 언급된다.
재기록 캐시는 이전에 레코딩된(recorded) 데이터가 어레이의 디스크 드라이브에 기록될 경우에 플러싱된다고 한다. 이러한 동작은 다른 호스트 동작이 지연될 수 있는 RAID 제어기 내에서의 상당한 시간을 소비하기 때문에 디스크 어레이에 전체 캐시 내용을 플러싱하는 것은 바람직하지 않다. RAID 서브시스템의 특정 성능 목표 및 요구조건에 따라 디스크 어레이로 플러싱되는 캐시된 데이터양을 변화시키는 것은 공지되어 있다.
캐시가 플러싱되는 속도는 캐시 메모리 크기(chche memory size), 제어기에 연결된 디스크 드라이브 및 채널의 속도와 갯수, RAID 제어기의 중앙처리장치(CPU)의 성능 특성 등을 포함하는 몇몇 변수에 따라 변화될 수 있다. 또한, 이들 변수에 대해, RAID 서브시스템이 시간에 따라 변할 수 있어 캐시를 플러싱하기 위해 호스트 I/O 요구를 지연시킬 수 있는 이용 가능 시간(available time)을 변화시킨다. RAID 제어기 설계자가 광범위한 캐시된 RAID 제어기 설계를 위한 단일 공통 캐시 플러시 속도 판단 방법(single, common cache flush rate determination method)을 이용하는 것은 문제가 있다. 또한, 각 RAID 제어기는 개별화된(customized) 캐시 플러시 속도 판단 방법을 이용함으로써 RAID 제어기 설계 관련 복잡도 및 비용을 가중시키는 경향이 있었다.
단순하면서도 광범위한 RAID 제어기 설계에 적용 가능한 개선된 캐시 플러시 속도 판단 방법 및 장치를 위한 필요성은 전술한 설명으로부터 자명하다.
발명의 요약
본 발명은 피드백 루프 구조를 이용하여 캐시 플러시 I/O 속도를 제어하기 위한 방법 및 관련 장치를 제공함으로써, 전술한 문제 및 다른 문제를 해결하여 최신의 유용한 기술을 진보시킨다. 본 발명의 방법은 캐시된 RAID 서브시스템의 제어기 내에서 주기적으로 동작하는 기능을 구비한다. 이러한 기능은 현재의 시간간격(current interval) 및 이전의 시간간격(previous interval)으로부터 수집된 정보에 기초하여 디스크 어레이로 플러싱되는 캐시 메모리의 양을 동적으로 변화시킨다.
특히, 디스크 어레이로 전달될 수 있는 캐시에서 기록되지 않은 데이터양을 판단하기 위해 본 발명의 매 주기 호출 시에 계산이 이루어진다. 이 계산은 이전에추정된 처리량(throughput)으로부터 디스크 어레이에 대한 현재의 캐시 플러시 처리량, 실제 디스크 어레이로의 전달이 완료된 데이터양 및 디스크 어레이로의 전달이 완료되지 않았던 데이터양을 추정한다. 불충분한 데이터가 캐시에서 디스크 어레이로 전달되는데 적합할 경우에 여러 주기 동안에 계산이 조정된다. 캐시에서 어떤 데이터가 전달되는데 적합한지를 판단하는 것은 캐시된 RAID 제어기 내에서 동작하는 다른 공지된 방법들에 맡겨진다.
먼저, 본 발명의 계산은 디스크 어레이로 전달되기에 적합한 캐시 메모리에서의 정보량을 판단한다. 이후, 현재 주기의 추정된 처리량은 다양한 임계값에 대한 캐시에서의 적합한 데이터양의 비교와, 이전 주기의 추정된 처리량과 이전 시간간격 동안에 실제 완료된 캐시 플러시의 비교에 의해 판단된다. 또한, 다음 주기를 위한 신규 추정값은 이들 비교에 기초하여 상향 또는 하향 조정된 (또는 변화없이 유지되는) 이전 추정값과 같이 컴퓨팅된다. 또한, 다음 시간간격 동안 디스크 어레이에 시되되는 기록을 위해 스케??링된 데이터양은 추정된 처리량과, 이전 시간간격 동안에 전달을 위해 스케쥴링되었지만 완료되지 않았던 데이터양의 함수로서 판단된다.
데이터양을 판단하기 위한 특정 임계값과 함수는 각 RAID 환경에 적합하게 선택될 수 있다. 본 발명의 방법은 RAID 서브시스템 상의 로딩(loading)에 응답하여 디스크 어레이로의 전달을 위해 스케쥴링된 데이터양을 자동적으로 조정한다. RAID 서브시스템 상의 호스트 생성 I/O 로드가 증가할 경우에, 시간간격 동안에 디스크 어레이로 성공적으로 전달된 데이터양이 감소될 것이고, 다음 시간간격 동안에 추정된 처리량과 스케쥴링된 양이 감소될 것이다. 마찬가지로, RAID 서브시스템상의 호스트 생성 I/O 로드가 감소할 경우에, 시간간격 동안에 디스크 어레이로 성공적으로 전달된 데이터양이 증가될 것이고, 다음 시간간격 동안에 추정된 처리량과 스케쥴링된 양이 증가될 것이다.
또한, 본 발명의 방법은 백그라운드(background) 캐시 플러시 I/O 동작에 의해 부과되는 로드에 따라 자체 조절된다. 내부 제어기 자원에 대한 로드가 스케쥴링된 캐시 플러시 요구로 인해 증가할 때, 본 발명의 피드백 방법은 추정된 처리량을 감소시키고, 플러싱을 위한 스케쥴링된 양을 감소시킴으로써 자동적으로 응답한다.
따라서, 본 발명의 목적은 RAID 서브시스템 내에서 캐시 플러시 속도를 제어하기 위한 방법 및 관련 장치를 제공하는데 있다.
본 발명의 다른 목적은 피드백 제어 루프를 통해 RAID 서브시스템 내에서 캐시 플러시 속도를 제어하기 위한 방법 및 관련 장치를 제공하는데 있다.
또한, 본 발명의 또다른 목적은 호스트 생성 I/O 로드 변화에 응답하여 RAID 서브시스템 내에서 캐시 플러시 속도를 자동적으로 조정하기 위한 방법 및 관련 장치를 제공하는데 있다.
본 발명의 상기 목적 및 다른 목적, 관점, 구성 및 장점은 하기의 설명 및 첨부된 도면으로부터 명백해질 것이다.
도1은 본 발명의 방법이 유리하게 적용될 수 있는 RAID 서브시스템의 블록도.
도2는 도1의 RAID 서브시스템의 캐쉬 플러시 속도(cache flush rate)를 제어하기 위한 본 발명의 방법을 도시하는 흐름도.
도3은 도2에 도시된 단계의 추가적인 상세 흐름도.
도4는 도2에 도시된 단계의 추가적인 상세 흐름도.
*도면의 주요부분에 대한 부호의 설명
100 : RAID 저장 서브시스템 102 : RAID 제어기
108 : 디스크 어레이 110 : 디스크 드라이브
112 : CPU 114 : 프로그램 메모리
116 : 캐시 모리 120 : 호스트 컴퓨터
본 발명은 다양한 수정 및 다른 형태가 가능하지만, 본 발명의 특정 실시예는 예시적으로 도면에 도시되어 여기서 상세히 설명될 것이다. 하지만, 본 발명은 개시된 특정 형태에 제한하고자 하는 것이 아니라 이와 반대로 본 발명은 청구 범위에 의해 정의되는 것과 같은 본 발명의 사상 및 범위 내에서 모든 수정, 등가물 및 대안을 포괄하는 것이다.
RAID 개요
도1은 본 발명의 방법 및 관련 장치가 적용될 수 있는 통상의 RAID 저장 서브시스템(100)의 블록도이다. RAID 저장 서브시스템(100)은 버스(또는 다수의 버스)(150)를 통해 디스크 어레이(108) 및 버스(154)를 통해 호스트 컴퓨터(120)에 차례로 연결되는 RAID 제어기(102)를 구비한다. 디스크 어레이(108)는 다수의 디스크 드라이브(110)로 구성된다. 이 기술분야에서 통상의 지식을 가진 자는 RAID 제어기(102)와 (디스크 드라이브(110)를 포함하는) 디스크 어레이(108)간의 인터페이스 버스(150)는 SCSI, IDE, EIDE, IPI, 광섬유 채널(Fibre Channel), SSA, PCI 등을 포함하는 몇몇 공업 표준 인터페이스 버스(standard industry interface busses) 중 어느 하나일 수 있음을 인식할 것이다. 제어 버스(150)에 적합한 RAID 제어기(102) 내의 (도시되지 않은) 회로는 이 기술분야에서 통상의 지식을 가진 자에게 공지되어 있다. RAID 제어기(102)와 호스트 컴퓨터(120)간의 인터페이스 버스(154)는 SCSI, 이더넷(Ethernet)(LAN), 토큰 링(Token Ring)(LAN) 등을 포함하는 몇몇 공업 표준 인터페이스 버스 중 하나일 수 있다. 제어 버스(154)에 적합한RAID 제어기(102) 내의 (도시되지 않은) 회로는 이 기술분야에서 통상의 지식을 가진 자에게 공지되어 있다.
도1에 도시된 바와 같이, RAID 저장 서브시스템(100)은 공지된 RAID 레벨(예를 들어, 레벨1 내지5) 중 어느 하나를 구현하는데 적용될 수 있다. 다양한 RAID 레벨은 RAID 제어기(102)가 디스크 어레이(108)에서 디스크 드라이브(110)를 논리적으로 세분하여 분할하는 방식에 의해 구별된다. 예를 들어, RAID 레벨1 기능(features)을 구현할 경우에, 대략 디스크 어레이(108)의 디스크 드라이브(110)의 절반은 데이터를 저장 및 검색하는데 이용되는 반면 다른 절반은 제1 절반의 데이터 저장 내용을 미러(mirror)하도록 RAID 제어기(102)에 의해 동작된다. 또한, RAID 레벨4 기능을 구현할 경우에, RAID 제어기(102)는 데이터를 저장하기 위해 디스크 어레이(108)에서 디스크 드라이브(110)의 일부분을 이용하고, 나머지 디스크 드라이브(110)는 오류 검사/정정 정보(예를 들어, 패리티 정보)를 저장하는데 이용된다. 본 발명의 방법 및 관련 장치는 표준 RAID 레벨 중 어느 것과 관련하여 RAID 저장 서브시스템에 적용될 수 있다.
RAID 제어기(102)는 중앙처리장치(CPU)(112), 프로그램 메모리(114)(예를 들어, CPU(112)의 동작을 위해 프로그램 명령어(program instructions) 및 변수(variables)를 저장하기 위한 롬/램(ROM/RAM) 장치) 및 디스크 어레이(108)에 저장되어 있는 데이터와 관련된 데이터 및 제어 정보를 저장하기 위한 캐시 메모리(116)를 구비한다. CPU(112), 프로그램 메모리(114) 및 캐시 메모리(116)는 CPU(112)가 메모리 장치에서 정보를 저장 및 검색할 수 있도록 메모리 버스(152)를통해 연결된다.
CPU(112) 내에서 동작하는 방법은 호스트 컴퓨터(120)에 의해 생성된 I/O 요구에 응답하여 데이터를 저장 및 검색한다. I/O 요구에서 교환된 데이터는 디스크 어레이(108)에 지속적으로 저장된다. 제어기(102)의 CPU(112) 내에서 동작하는 공지된 캐시 제어 방법은 RAID 저장 서브시스템(100)의 성능을 개선시키는데 이용된다. 통상적으로, 이러한 방법은 캐시 메모리(116)에서 공급된 데이터를 저장하고, 데이터를 캐시 메모리(116)로부터 디스크 어레이(108)로 전달(플러싱)함으로써 부착된 호스트 컴퓨터(120)를 대신하여 기록 요구를 완료한다. 데이터는 디스크 어레이(108)에서 보다 상당히 더 빠르게 캐시 메모리(116)에 저장될 수 있다. 그러므로, 캐시 제어 방법은 호스트 기록 요구를 신속하게 완료하고, 추측상 호스트 컴퓨터(120)가 다른 처리로 인해 활성 중인 경우에 다른 시간에 안정된 디스크 어레이(persistent disk array)(108)로 캐시된 데이터를 전달함으로써 전반적인 성능을 개선시킨다. 디스크 어레이로 데이터를 전달하는 프로세스는 캐시 메모리의 "플러싱(flushing)"으로 언급된다. RAID 제어기(102) 내에서 백그라운드 태스크(background task)로서 수행되지만, 플러시 동작은 RAID 제어기(102)에서 계산 자원(computational resources)(예를 들어, 디스크 채널 버스(150)에 따른 대역폭(bandwidth)뿐만 아니라 CPU(112) 사이클)을 적지않게 소비한다. 호스트 생성 입/출력 요구의 로드에서의 변화에 응답하여 캐시를 플서싱하는데 필요한 자원의 양을 제어하는 것은 바람직하다. 본 발명의 방법은 디스크 어레이(108)의 디스크 드라이브(110)로의 캐시 메모리(116) 내에 저장되어 있는 데이터의 플러싱을 제어하기 위해 CPU(112) 내에서 동작한다.
이 기술분야에서 통상의 지식을 가진 자는 도1의 블록도가 본 발명을 구체화시킬 수 있는 단지 예시적인 설계로서 의도된 것임을 쉽게 인식할 것이다. 여러 다른 제어기 및 서브시스템 설계가 본 발명의 방법 및 관련 장치를 구체화시킬 수 있다.
플러시 제어 방법들
도2는 캐시 메모리(116)가 다른 성능 인자뿐만 아니라 호스트 I/O 요구 로딩 인자에 응답하여 디스크 어레이(108)로 플러싱되는 속도를 제어하기 위한 본 발명의 방법의 동작을 도시한 흐름도이다. 특히, 도2의 흐름도는 특정 RAID 또는 호스트 환경과 독립적인 RAID 서브시스템의 캐시 플러시 속도를 제어하는 본 발명의 피드백 루프 프로세스를 도시한다. 도2의 처리는 도1의 RAID 제어기(102)의 CPU(112)내에서 동작 가능한 제어 처리의 일부분이다. RAID 제어기(102) 내에서 동작하는 (도시되지 않음) 다른 방법은 호스트 컴퓨터 생성 I/O 요구를 수신 및 처리하여 데이터를 저장하거나 또는 이전에 저장된 데이터를 검색한다. 이들 다른 방법은 캐시 메모리(116)에서 데이터를 저장 또는 검색함으로써 디스크 어레이(108)의 더 느린 지속적인 저장보다 더 신속하게 여러 I/O 요구를 만족시킨다. 특히, RAID 제어기(102) 내에서 동작 가능한 다른 방법은 디스크 어레이(108)로의 추후 플러싱을 위한 캐시(116)에 호스트 컴퓨터 공급 데이터를 기록한다. 그러므로, 본 발명의 방법은 캐시 메모리(116)에 기록된 데이터를 디스크 어레이(108)로 주기적으로 플러싱하는 백그라운드 데몬 처리(background daemon processing)와 관련하여 동작한다.
먼저, 도2의 단계(200)는 다음 주기의 시간간격의 종료를 큐잉하기 위해 동작한다. 캐시 메모리를 플러싱하기 위한 백그라운드 처리는 통상적으로 주기적인 시간간격에 따라 동작한다. 바람직한 실시예에서, 본 발명의 방법은 캐시 메모리의 상태 및 지속적인 저장을 위한 디스크로 캐시 메모리 내용을 플러싱하기 위한 필요성을 판단하기 위해 초당 3회 호출한다. 이 기술분야에서 통상의 지식을 가진 자는 방법이 특정 RAID 환경에 적합하게 더 많이 또는 더 적게 호출될 수 있음을 쉽게 인식할 것이다. 특히, 본 발명의 관점은 RAID 서브시스템에 관한 특정 로딩 레벨에 응답하여 특정 RAID 환경에 필요한 본 발명의 방법의 호출 주기가 변화될 수 있게 한다. 캐시 메모리 버퍼가 디스크코 플러싱되는 속도는 (하기에서 상세히 설명되는) 각 정해진 시간간격 동안에 플러싱되는 버퍼의 갯수를 제어함으로써 변화될 수 있거나, 또는 본 발명의 방법의 연속적인 호출간의 시간간격의 길이를 변화시킴으로써 변화될 수 있거나, 또는 전술한 두 방법 모두를 이용함으로써 변화될 수 있다.
본 발명의 방법은 시간간격당 플러싱되는 버퍼의 갯수를 제어하는 것에 관하여 하기에 나타나지만, 이 기술분야에서 통상의 지식을 가진 자는 유사한 방법이 연속적인 호출간의 시간간격의 길이를 제어하는데 이용될 수 있다는 것을 쉽게 인식할 것이다. 모든 접근은 유사하게 하기에서 설명되는 피드백 루프 구조를 이용하여 캐시 메모리 플러시 동작의 속도를 제어한다.
이후, 단계(202)는 "AMT_COMPLETED"로 명명되는 변수로서 디스크 어레이로 완전히 플러싱된 버퍼의 갯수를 판단하기 위해 동작한다. 또한, 단계(202)는 "AMT_UNCOMPLETED"로 명명되는 변수로서 플러시 동작이 개시되었지만 아직 완전히 종료되지 않은 버퍼의 갯수를 판단한다. 이들 값은 도2의 방법의 선행 호출에 의해 수행된 버퍼 플러싱의 결과 검사에 의해 판단된다. 따라서, "AMT_COMPLETED" 및 "AMT_UNCOMPLETED"의 변수값은 선행 플러시 동작의 결과가 후속 플러시 동작을 제어하는데 이용되는 본 발명의 방법의 피드백 프로세스의 일부분을 나타낸다.
이후, 단계(204)는 개시될 다음 주기의 시간간격 동안에 추정되는 처리량의 값을 판단하기 위해 동작한다. 추정되는 처리량의 값은 디스크 어레이로 캐시 메모리 버퍼를 플러싱하는 목표 또는 원하는 속도의 추정치이다. 여기에서, 이 값은 동의어로 추정되는 캐시 플러시 속도(estimated chche flush rate), 목표 캐시 플러시 속도(target cache flush rate), 또는 단순히 추정되는 속도나 목표 속도(estimated rate or target rate)로 언급된다. 다음 시간간격 동안에 추정되는 속도 판단의 상세한 사항은 도3의 흐름도에 도시된다. 추정되는 속도가 판단되어 "ESTIMATE"로 명명되는 변수로 저장된다. 일단 판단된 "ESTIMATE" 변수값은 도2의 방법의 다음 호출이 이루어질 때까지 변화되지 않기 때문에, 다음 시간간격 동안에 추정되는 속도를 계산할 때 본 발명의 제어 방법에 추가 피드백을 제공한다.
단계(206)는 목표 속도(ESTIMATE) 및 다른 변수에 기초하여 플러싱되는데 적합한 캐시 메모리 버퍼의 갯수를 판단하기 위해 동작한다(또한, "ELIGIBLE"로 명명되는 변수로 저장됨). 다음 시간간격 동안의 "ELIGIBLE" 변수값의 판단에 관한 상세한 사항은 도4의 흐름도에 도시된다. 일단 판단된 "ELIGIBLE" 변수값은 도2의 방법의 다음 호출이 이루어질 때까지 변화되지 않아서 다음 시간간격 동안에 추정 속도를 계산할 때 본 발명의 제어 방법에 추가 피드백을 제공한다.
적합한 캐시 메모리 버퍼의 목표 속도 및 갯수가 판단되었을 경우에, 단계(208)는 디스크 어레이로 플러싱되는데 필요한 다수의 캐시 메모리 버퍼를 판별하기 위해 동작한다. 또한, 단계(208)는 판별된 캐시 메모리 버펄르 디스크 어레이로 플러싱하는데 필요한 I/O 기록 요구를 개시(큐잉(queues))한다. 단계(208)의 동작으로 개시한 이러한 I/O 기록 동작의 최대 횟수는 전술한 바와 같이 판단되어 "ELIGIBLE"로 명명되는 변수로 저장되어있는 적합한 버퍼의 갯수보다 작거나 또는 동일하다.
마지막으로, 단계(210)는 단계(208)의 동작으로 개시(큐잉)된 I/O 기록 요구의 횟수를 판단하기 위해 동작한다. 단계(208)에 의해 실제로 큐잉된 이러한 I/O 기록 동작의 횟수는 후속 시간간격 동안에 추정되는 처리량 및 원하는 처리량의 후속 계산에 이용하기 위해 "STARTED"로 명명되는 변수로 저장된다. 이후, 처리(processing)는 다음 시간간격의 종료를 큐잉하는 단계(200)로 다시 리턴함으로써 계속된다.
단계(208)의 동작에 의해 개시(큐잉)된 I/O 기록 동작은 백그라운드 처리로서 다음 시간간격 동안에 RAID 제어기에 의해 수행된다. 호스트 생성 I/O 요구에 대한 서비스는 RAID 제어기 내에서 포그라운드(foreground)(높은 우선순위) 함수로서 수행된다. 호스트 생성 I/O 요구에 대한 서비스에 의해 RAID 제어기 상에 부과되는 실제 처리 로드에 따라 캐시 메모리를 플러싱하기 위한 큐잉된 I/O 동작의 일부분이 처리를 완료할 것이다. 캐시 메모리를 플러싱할 목적으로 큐잉된 다른 I/O 기록 동작은 RAID 제어기에 관한 특정 로드 레벨로 인해 필요한 I/O 처리를 완료할수 없다. 전술한 바와 같이, 현재의 시간간격 동안에 플러시 동작에서 "개선된" 버퍼의 갯수뿐만 아니라 추후 판단되는 완료된 버퍼의 갯수는 다음 시간간격 동안에 추정 플러시 속도를 판단하기 위한 루프백 방식에서 이용된다.
도3은 다음 시간간격 동안에 추정되는 캐시 플러시 속도(목표 캐시 플러시 속도)를 나타내는 "ESTIMATE" 변수값을 판단하기 위한 도2의 단계(204)의 동작의 추가적인 세부사항을 제공하는 흐름도이다. 먼저, 단계(300)는 이전 시간간격으로부터의 "STARTED" 변수값을 이전 시간간격으로부터의 "ELIGIBLE" 변수값과 비교하기 위해 동작한다. 이전 시간간격에서 개시된 스케쥴링된 캐시 플러시 동작의 횟수가 플러싱하는데 적합한 캐시 버퍼의 갯수보다 더 크다고 했을 경우에, 다음 시간 간격 동안에 캐시 플러시 속도(목표 캐시 플러시 속도) 변화가 요구되지 않는다. 그러므로, 처리가 완료되고, "ESTIMATE" 변수값은 이전의 시간간격으로부터 변화없이 유지된다. 그러므로, 다음 시간간격 동안에 플러싱되도록 스케쥴링된 캐시 플러시 버퍼의 갯수는 이전 시간간격에서 스케쥴링된 갯수와 동일하게 유지될 것이다.
이후, 단계(302)는 "STARTED" 변수값이 "ELIGIBLE" 변수값(이전 시간간격에서 추정된 캐시 플러시 속도를 유지시키기 위해 충분히 적합한 캐시 버퍼가 존재하였음을 지시함)보다 더 크거나 또는 동일한 경우에 동작한다. 단계(302)는 ("AMT_COMPLETED" 변수값에 의해 지시된 바와 같은) 실제 완료된 캐시 버퍼 플러시동작의 횟수를 ("ESTIMATE" 변수값에 의해 지시된 바와 같은) 이전 시간간격으로부터의 추정된 처리랴과 비교한다. 단계(302)는 "AMT_COMPLETED" 변수값(즉, "ESTIMATE" 변수값이 110%)이 10%만큼 "ESTIMATE" 변수값을 초과한다면 판단할 경우에, 단계(304)는 다음 시간간격 동안에 더 높게 예측되는 처리량을 지시하기 위해 "ESTIMATE" 변수값을 10%만큼 증가시킨다(즉, "ESTIMATE" 변수값이 110%로 설정함). 마찬가지로, 단계(306 및 308)는 "AMT_COMPLETED" 변수값을 "ESTIMATE" 변수값과 비교하기 위해 동작하고, "AMT_COMPLETED" 변수값이 "ESTIMATE" 변수값의 90%보다 더 작을 경우 "ESTIMATE" 변수값을 9%만큼 감소시킨다(즉, "ESTIMATE" 변수값의 91%).
각각 10% 및 9%의 특정 증가값 및 감소값이 내부 경합 인자뿐만 아니라 RAID 서브시스템 상의 호스트 I/O 생성 로드의 변화에 응답하여 합리적인 다수의 시간간격 내에 추정된 플러시 속도(추정된 처리량)를 조정하기 위해 선택된다. 마찬가지로, 이전 값의 90% 및 110%의 소정의 임계 비교값이 RAID 서브시스템 상의 로드의 변화에 응답하여 캐시 플러시 속도의 조정에서 합리적인 응답 및 히스테리시스를 허용하도록 선택된다. 이 기술분야에서 통상의 지식을 가진 자는 이들 임계값 및 증가값/감소값이 특정 RAID 애플리케이션 환경의 특정 요구조건에 튜닝될 수 있다는 것을 쉽게 인식할 것이다. RAID 서브시스템 로딩에서의 변화에 대한 더 빠른 또는 더 느린 응답은 일정 RAID 애플리케이션에서 바람직할 수 있다. 특히, 루프백/피드백 응답의 속도는 캐시 플러시 속도 파라미터를 빈번히 조정하는 RAID 서브시스템 상의 오버헤드 로드와 맞추어질 수 있다.
또한, 이 기술분야에서 통상의 지식을 가진 자는 캐시 플러시 속도가 (전술한 바와 같이) 각 시간간격에서 스케쥴링된 캐시 플러시 I/O 동작의 횟수를 수정함으로써 조정될 수 있거나 또는 스케쥴링된 캐시 플러시 동작이 스캐쥴링되는 동안에 시간간격 기간을 수정함으로써 조정될 수 있음을 쉽게 인식할 것이다.
도4는 도2의 단계(206)의 동작의 추가적인 상세한 사항을 제공하는 흐름도이다. 단계(206)는 새로 도출된 추정된 처리량(신규 목표 캐시 플러시 속도)에 기초하여 적합한 캐시 플러시 동작의 횟수를 판단하기 위해 동작한다. 단계(400)는 다음 시간간격 동안의 "ELIGIBLE" 변수값의 120%로서 다음 시간간격 동안의 "ELIGIBLE" 변수값을 판단하기 위해 동작한다. 적합한 캐시 플러시 동작의 횟수는 일정한 미결 캐시 플러시 동작(some outstanding cache flush operations)이 동작 큐에서 이용 가능하게 유지되도록 보장하는데 도움을 주기 위해 "ESTIMATE" 변수값보다 더 큰 변수값으로 설정된다. 다른 버퍼가 플러싱되는데 이용 가능하면서 큐가 완전히 비어 있게 되었을 경우에, RAID 서브시스템의 전반적인 성능이 저하될 수 있다. 그러므로, "ELIGIBLE"은 ("ESTIMATE"의 변수값에 의해 지시된 바와 같이) 목표 캐시 속도의 120%로 설정된다. 이 기술분야에서 통상의 지식을 가진 자는 적합한 캐시 플러시 동작의 횟수를 판단하는데 이용되는 20%의 증거값이 특정 RAID 애플리케이션 환경의 특정 성능 특징 및 목표를 위해 수정될 수 있음을 쉽게 인식할 것이다.
마지막으로, 단계(402)는 이전 시간간격 동안네 스케쥴링된 완료되지 않은 캐시 플러시 동작의 절반의 횟수만큼 ("ELIGIBLE" 변수값으로 저장된) 목표 캐시플러시 속도를 감소하기 위해 동작한다. 이전 시간간격 동안 스케쥴링(큐잉)되었지만 완료되지 않은 동작은 다음 시간간격 동안에 순서를 밟아서 수행될 것이다. 그러므로, 다음 시간간격 동안의 목표 캐시 플러시 속도값은 이전 시간간격 동안 이미 스케쥴링된 완료되지 않은 동작을 책임지기 위해 감소될 수 있다.
비록 본 발명이 도면 및 전술한 설명에서 상세하게 예시 및 설명되었지만, 이러한 예시 및 설명은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 하고, 본 발명의 바람직한 실시예 및 사소한 변형만이 도시 및 설명된 것이며, 본 발명의 사상에 속하는 모든 변경 및 수정도 보호되는 것이 바람직하다는 것이 이해될 것이다.
본 발명은 피드백 제어 루프를 통해 RAID 서브시스템 내에서 캐시 플러시 속도를 제어할 수 있으며, 호스트 생성 I/O 로드 변화에 응답하여 RAID 서브시스템 내에서 캐시 플러시 속도를 자동적으로 조정할 수 있는 효과가 있다.

Claims (24)

  1. 캐시 메모리 서브시스템을 구비한 RAID 저장 서브시스템 제어기에서 상기 제어기의 캐시 플러시 속도를 제어하기 위한 방법에 있어서,
    선행 시간간격 동안에 완료된 캐시 플러시 동작에 대한 이전 캐시 플러시 속도를 주기적으로 판단하는 단계; 및
    상기 이전 캐시 플러시 속도의 판단에 응답하여, 후속 시간간격 동안에 개시될 스케쥴링된 캐시 플러시 동작에 대한 목표 캐시 플러시 속도를 도출하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 목표 캐시 플러시 속도를 도출하는 단계는,
    상기 선행 시간간격에서 도출된 이전 목표 캐시 플러시 속도로부터 상기 목표 캐시 플러시 속도를 도출하는 단계를 포함하는
    방법.
  3. 제2항에 있어서,
    상기 목표 캐시 플러시 속도를 도출하는 단계는,
    상기 선행 시간간격 동안에 개시된 캐시 플러시 동작의 횟수를 판단하는 단계;
    상기 선행 시간간격 동안에 캐시 플러시 동작을 위해 적합했던 상기 캐시 메모리 서브시스템 내의 적합한 버퍼의 갯수를 판단하는 단계;
    상기 개시된 캐시 플러시 동작의 횟수를 상기 적합한 버퍼의 갯수에 비교하는 단계;
    상기 개시된 캐시 플러시 동작의 횟수가 상기 적합한 버퍼의 갯수보다 더 작다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도와 동일한 것으로서 상기 목표 캐시 속도를 도출하는 단계; 및
    상기 개시된 캐시 플러시 동작의 횟수가 상기 적합한 버퍼의 갯수보다 더 작지 않다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도의 함수로서 상기 목표 캐시 속도를 도출하는 단계를 포함하는
    방법.
  4. 제3항에 있어서,
    상기 이전 목표 캐시 플러시 속도의 함수로서 목표 캐시 플러시 속도를 판단하는 단계는,
    상기 선행 시간간격 동안에 완료된 캐시 플러시 동작의 횟수를 판단하는 단계;
    상기 완료된 캐시 플러시 동작의 횟수를 상기 이전 목표 캐시 플러시 속도에 비교하는 단계;
    상기 완료된 캐시 플러시 동작의 횟수가 제1 소정량만큼 상기 이전 목표 캐시 플러시 속도보다 더 작다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도에서 감소값을 감한 것으로서 상기 목표 캐시 플러시 속도를 도출하는 단계; 및
    상기 완료된 캐시 플러시 동작의 횟수가 제2 소정량만큼 상기 이전 목표 캐시 플러시 속도보다 더 크다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도에 증가값을 더한 것으로서 상기 목표 캐시 플러시 속도를 도출하는 단계를 포함하는
    방법.
  5. 제4항에 있어서,
    상기 감소값은 대략 9%이고, 상기 제1 소정량은 대략 10%인
    방법.
  6. 제4항에 있어서,
    상기 증가값은 대략 10%이고, 상기 제2 소정량은 대략 10%인
    방법.
  7. 캐시 메모리 서브시스템을 구비한 RAID 저장 서브시스템 제어기에서 상기 제어기의 캐시 플러시 속도를 제어하기 위한 장치에 있어서,
    선행 시간간격 동안에 완료된 캐시 플러시 동작에 대한 이전 캐시 플러시 속도를 주기적으로 판단하기 위한 수단; 및
    상기 이전 캐시 플러시 속도를 주기적으로 판단하기 위한 수단에 응답하여, 후속 시간간격 동안에 개시될 스케쥴링된 캐시 플러시 동작에 대한 목표 캐시 플러시 속도를 도출하기 위한 수단
    을 포함하는 장치.
  8. 제7항에 있어서,
    상기 목표 캐시 플러시 속도를 도출하기 위한 수단은,
    상기 선행 시간간격에서 도출된 이전 목표 캐시 플러시 속도로부터 상기 목표 캐시 플러시 속도를 도출하기 위한 수단을 포함하는
    장치.
  9. 제8항에 있어서,
    상기 목표 캐시 플러시 속도를 도출하기 위한 수단은,
    상기 선행 시간간격 동안에 개시된 캐시 플러시 동작의 횟수를 판단하기 위한 수단;
    상기 선행 시간간격 동안에 캐시 플러시 동작을 위해 적합했던 상기 캐시 메모리 서브시스템 내의 적합한 버퍼의 갯수를 판단하기 위한 수단;
    상기 개시된 캐시 플러시 동작의 횟수를 상기 적합한 버퍼의 갯수에 비교하기 위한 수단;
    상기 개시된 캐시 플러시 동작의 횟수가 상기 적합한 버퍼의 갯수보다 더 작다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도와 동일한 것으로서 상기 목표 캐시 플러시 속도를 도출하기 위한 수단; 및
    상기 개시된 캐시 플러시 동작의 횟수가 상기 적합한 버퍼의 갯수보다 더작지 않다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도의 함수로서 상기 목표 캐시 플러시 속도를 도출하기 위한 수단을 포함하는
    장치.
  10. 제9항에 있어서,
    상기 이전 목표 캐시 플러시 속도의 함수로서 목표 캐시 플러시 속도를 판단하기 위한 수단은,
    상기 선행 시간간격 동안에 완료된 캐시 플러시 동작의 횟수를 판단하기 위한 수단;
    상기 완료된 캐시 플러시 동작의 횟수를 상기 이전 목표 캐시 플러시 속도에 비교하기 위한 수단;
    상기 완료된 캐시 플러시 동작의 횟수가 제1 소정량만큼 상기 이전 목표 캐시 플러시 속도보다 더 작다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도에서 감소값을 감한 것으로서 상기 목표 캐시 플러시 속도를 도출하기 위한 수단; 및
    상기 완료된 캐시 플러시 동작의 횟수가 제2 소정량만큼 상기 이전 목표 캐시 플러시 속도보다 더 크다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도에 증가값을 더한 것으로서 상기 목표 캐시 플러시 속도를 도출하기 위한 수단을 포함하는
    장치.
  11. 제10항에 있어서,
    상기 감소값은 대략 9%이고, 상기 제1 소정량은 대략 10%인
    장치.
  12. 제10항에 있어서,
    상기 증가값은 대략 10%이고, 상기 제2 소정량은 대략 10%인
    장치.
  13. RAID 저장 서브시스템의 RAID 제어기의 캐시 플러시 속도를 제어하기 위한 방법을 수행하기 위해 컴퓨터로 실행 가능한 프로그램 또는 명령어를 구현하는 컴퓨터로 판독 가능한 프로그램 저장 장치에 있어서,
    상기 방법은,
    선행 시간간격 동안에 완료된 캐시 플러시 동작에 대한 이전 캐시 플러시 속도를 주기적으로 판단하는 단계; 및
    상기 이전 캐시 플러시 속도의 판단에 응답하여, 다음 시간간격 동안에 개시될 스케쥴링된 캐시 플러시 동작에 대한 목표 캐시 플러시 속도를 도출하는 단계를 포함하는
    프로그램 저장 장치.
  14. 제13항에 있어서,
    상기 목표 캐시 플러시 속도를 도출하는 단계는,
    상기 선행 시간간격에서 도출된 이전 목표 캐시 플러시 속도로부터 상기 목표 캐시 플러시 속도를 도출하는 단계를 포함하는
    프로그램 저장 장치.
  15. 제14항에 있어서,
    상기 목표 캐시 플러시 속도를 도출하는 단계는,
    상기 선행 시간간격 동안에 개시된 캐시 플러시 동작의 횟수를 판단하는 단계;
    상기 선행 시간간격 동안에 캐시 플러시 동작을 위해 적합했던 상기 캐시 메모리 서브시스템 내의 적합한 버퍼의 갯수를 판단하는 단계;
    상기 개시된 캐시 플러시 동작의 횟수가 상기 적합한 버퍼의 갯수에 비교하는 단계;
    상기 개시된 캐시 플러시 동작의 횟수가 상기 적합한 버퍼의 갯수보다 더 작다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도와 동일한 것으로서 상기 목표 캐시 속도를 도출하는 단계; 및
    상기 개시된 캐시 플러시 동작의 횟수가 상기 적합한 버퍼의 갯수보다 더 작지 않다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도의 함수로서 상기 목표 캐시 속도를 도출하는 단계를 포함하는
    프로그램 저장 장치.
  16. 제15항에 있어서,
    상기 이전 목표 캐시 플러시 속도의 함수로서 목표 캐시 플러시 속도를 판단하는 단계는,
    상기 선행 시간간격 동안에 완료된 캐시 플러시 동작의 횟수를 판단하는 단계;
    상기 완료된 캐시 플러시 동작의 횟수를 상기 이전 목표 캐시 플러시 속도에 비교하는 단계;
    상기 완료된 캐시 플러시 동작의 횟수가 제1 소정량만큼 상기 이전 목표 캐시 플러시 속도보다 더 작다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도에서 감소값을 감한 것으로서 상기 목표 캐시 플러시 속도를 도출하는 단계; 및
    상기 완료된 캐시 플러시 동작의 횟수가 제2 소정량만큼 상기 이전 목표 캐시 플러시 속도보다 더 크다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도에 증가값을 더한 것으로서 상기 목표 캐시 플러시 속도를 도출하는 단계를 포함하는
    프로그램 저장 장치.
  17. 제16항에 있어서,
    상기 감소값은 대략 9%이고, 상기 제1 소정량은 대략 10%인
    프로그램 저장 장치.
  18. 제16항에 있어서,
    상기 증가값은 대략 10%이고, 상기 제2 소정량은 대략 10%인
    프로그램 저장 장치.
  19. 캐시 메모리 서브시스템을 구비한 RAID 저장 서브시스템 제어기에서 상기 제어기의 캐시 플러시 속도를 제어하기 위한 방법에 있어서,
    선행 시간간격 동안에 완료된 캐시 플러시 동작에 대한 캐시 플러시 속도를 지시하는 적어도 하나의 값을 주기적으로 판단하는 단계; 및
    상기 적어도 하나의 값의 판단에 응답하여, 후속 시간간격 동안에 개시될 스케쥴링된 캐시 플러시 동작에 대한 목표 캐시 플러시 속도를 도출하는 단계
    를 포함하여 방법.
  20. 제19항에 있어서,
    상기 적어도 하나의 값은 상기 선행 시간간격에서 도출된 이전 목표 캐시 플러시 속도를 포함하는
    방법.
  21. 제20항에 있어서,
    상기 적어도 하나의 값은 상기 선행 시간간격 동안에 개시된 캐시 플러시 동작의 횟수를 포함하고,
    상기 적어도 하나의 값은 상기 선행 시간간격 동안에 캐시 플러시 동작을 위해 적합했던 상기 캐시 메모리 서브시스템 내의 적합한 버퍼의 갯수를 포함하며,
    상기 목표 캐시 플러시 속도를 도출하는 단계는,
    상기 개시된 캐시 플러시 동작의 횟수를 상기 적합한 버퍼의 갯수에 비교하는 단계;
    상기 개시된 캐시 플러시 동작의 횟수가 상기 적합한 버퍼의 갯수보다 더 작다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도와 동일한 것으로서 상기 목표 캐시 속도를 도출하는 단계; 및
    상기 개시된 캐시 플러시 동작의 횟수가 상기 적합한 버퍼의 갯수보다 더 작지않다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도의 함수로서 상기 목표 캐시 플러시 속도를 도출하는 단계를 포함하는
    방법.
  22. 제21항에 있어서,
    상기 적어도 하나의 값은 상기 선행 시간간격 동안에 완료된 캐시 플러시 동작의 횟수를 포함하고,
    상기 이전 목표 캐시 플러시 속도의 함수로서 목표 캐시 플러시 속도를 판단하는 단계는,
    상기 완료된 캐시 플러시 동작의 횟수를 상기 이전 목표 캐시 플러시 속도에 비교하는 단계;
    상기 완료된 캐시 플러시 동작의 횟수가 제1 소정량만큼 상기 이전 목표 캐시 플러시 속도보다 더 작다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도에서 감소값을 감한 것으로서 상기 목표 캐시 플러시 속도를 도출하는 단계; 및
    상기 완료된 캐시 플러시 동작의 횟수가 제2 소정량만큼 상기 이전 목표 캐시 플러시 속도보다 더 크다는 판단에 응답하여, 상기 이전 목표 캐시 플러시 속도에 증가값을 더한 것으로서 상기 목표 캐시 플러시 속도를 도출하는 단계를 포함하는
    방법.
  23. 제22항에 있어서,
    상기 감소값은 대략 9%이고, 상기 제1 소정량은 대략 10%인
    방법.
  24. 제22항에 있어서,
    상기 증가값은 대략 10%이고, 상기 제2 소정량은 대략 10%인
    방법.
KR1019970042138A 1996-08-28 1997-08-28 피드백루프를이용하여기록캐시환경에서캐시플러시입출력속도를제어하기위한방법및장치 KR100303217B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US70405396A 1996-08-28 1996-08-28
US08/704,053 1996-08-28
US8/704,053 1996-08-28

Publications (2)

Publication Number Publication Date
KR19980019121A KR19980019121A (ko) 1998-06-05
KR100303217B1 true KR100303217B1 (ko) 2001-09-28

Family

ID=37529728

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970042138A KR100303217B1 (ko) 1996-08-28 1997-08-28 피드백루프를이용하여기록캐시환경에서캐시플러시입출력속도를제어하기위한방법및장치

Country Status (1)

Country Link
KR (1) KR100303217B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100793224B1 (ko) * 2005-10-28 2008-01-10 후지쯔 가부시끼가이샤 Raid 시스템, raid 컨트롤러 및 그 재구성/재복사처리 방법
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
KR101129460B1 (ko) * 2010-04-20 2012-03-29 주식회사 태진인포텍 알에이아이디 제어 반도체 저장 장치 및 그 형성 방법
US8578100B1 (en) 2010-11-08 2013-11-05 Western Digital Technologies, Inc. Disk drive flushing write data in response to computed flush time
US8654619B1 (en) 2011-09-29 2014-02-18 Western Digital Technologies, Inc. Method and apparatus for operating a disk drive
US8661193B1 (en) 2010-10-29 2014-02-25 Western Digital Technologies, Inc. Disk drive with partial sector management

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
KR100793224B1 (ko) * 2005-10-28 2008-01-10 후지쯔 가부시끼가이샤 Raid 시스템, raid 컨트롤러 및 그 재구성/재복사처리 방법
US8638585B2 (en) 2008-06-13 2014-01-28 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8760918B2 (en) 2008-06-13 2014-06-24 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8565021B2 (en) 2008-06-13 2013-10-22 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8705272B2 (en) 2008-06-13 2014-04-22 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8614919B2 (en) 2008-06-13 2013-12-24 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8625344B2 (en) 2008-06-13 2014-01-07 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8504767B2 (en) 2010-04-20 2013-08-06 Taejin Info Tech Co., Ltd. Raid controlled semiconductor storage device
KR101129460B1 (ko) * 2010-04-20 2012-03-29 주식회사 태진인포텍 알에이아이디 제어 반도체 저장 장치 및 그 형성 방법
US8661193B1 (en) 2010-10-29 2014-02-25 Western Digital Technologies, Inc. Disk drive with partial sector management
US8578100B1 (en) 2010-11-08 2013-11-05 Western Digital Technologies, Inc. Disk drive flushing write data in response to computed flush time
US8654619B1 (en) 2011-09-29 2014-02-18 Western Digital Technologies, Inc. Method and apparatus for operating a disk drive

Also Published As

Publication number Publication date
KR19980019121A (ko) 1998-06-05

Similar Documents

Publication Publication Date Title
US5742752A (en) Method for performing a RAID stripe write operation using a drive XOR command set
US6779058B2 (en) Method, system, and program for transferring data between storage devices
JP2501752B2 (ja) コンピユ―タ・システムのストレ―ジ装置及びデ―タのストア方法
US20040205297A1 (en) Method of cache collision avoidance in the presence of a periodic cache aging algorithm
US7159071B2 (en) Storage system and disk load balance control method thereof
US5778426A (en) Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method
US7058764B2 (en) Method of adaptive cache partitioning to increase host I/O performance
US8650145B2 (en) Creating snapshots of data using a selected one of different snapshot algorithms
US20080082744A1 (en) Storage system having data comparison function
US20040133707A1 (en) Storage system and dynamic load management method thereof
US8732402B2 (en) Managing track discard requests to include in discard track messages
US20100262772A1 (en) Transfer control of a storage volume between storage controllers in a cluster
JPH09231017A (ja) データ記憶装置
US20080091875A1 (en) Method to increase performance of non-contiguously written sectors
JPH08314848A (ja) マイクロプロセッサのオーバーヘッドを短縮させて、二つの装置間でデータを転送する方法および装置
US6564295B2 (en) Data storage array apparatus, method of controlling access to data storage array apparatus, and program and medium for data storage array apparatus
US20070124542A1 (en) Method and system to control write caches to reduce risk of data loss
US6754897B1 (en) Operation prioritization and selection in a probability-based job scheduler
KR100303217B1 (ko) 피드백루프를이용하여기록캐시환경에서캐시플러시입출력속도를제어하기위한방법및장치
US10001826B2 (en) Power management mechanism for data storage environment
EP2466446B1 (en) Storage system, method, and program, comprising a plurality of storage devices
US6766388B2 (en) Method for determining a host data transfer goal in a hard disk drive system
US8364893B2 (en) RAID apparatus, controller of RAID apparatus and write-back control method of the RAID apparatus
JPH10283123A (ja) 記憶装置アレイ
US6968437B2 (en) Read priority caching system and method

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: 20050620

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee