KR100373313B1 - 캐시 메모리를 관리하는 방법 및 시스템 - Google Patents

캐시 메모리를 관리하는 방법 및 시스템 Download PDF

Info

Publication number
KR100373313B1
KR100373313B1 KR10-2000-0056991A KR20000056991A KR100373313B1 KR 100373313 B1 KR100373313 B1 KR 100373313B1 KR 20000056991 A KR20000056991 A KR 20000056991A KR 100373313 B1 KR100373313 B1 KR 100373313B1
Authority
KR
South Korea
Prior art keywords
cache
requested data
stored
segment
data
Prior art date
Application number
KR10-2000-0056991A
Other languages
English (en)
Other versions
KR20010039936A (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 KR20010039936A publication Critical patent/KR20010039936A/ko
Application granted granted Critical
Publication of KR100373313B1 publication Critical patent/KR100373313B1/ko

Links

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
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches

Abstract

컴퓨터 시스템은 저장 시스템에서 데이터 객체를 요구하는 애플리케이션을 실행하는 호스트 컴퓨터를 갖는다. 상기 저장시스템은 디스크 저장 장치 및 캐시 메모리 등의 저장 장치를 갖는다. 상기 호스트 컴퓨터에 의해 자주 사용되는 데이터 객체는 캐시 메모리에 저장된다. 또한, 상기 데이터 객체는 데이터 객체의 세그먼트 및 세그먼트 그룹에 논리적으로 배열된 상기 저장 장치에 저장된다. 상기 캐시 메모리는 세그먼트 캐시와 일 그룹의 캐시로 논리적 분할된다. 작은 입상 네이처(granular nature)의 데이터, 즉 세그먼트는 상기 세그먼트 캐시에 저장되고, 보다 큰 입상 네이처, 즉 그룹은 상기 그룹 캐시에 저장된다. 상기 호스트 컴퓨터가 데이터 객체를 판독하거나 기록하기 위해 액세스를 요구할 때에는, 세그먼트의 그룹은 하나의 요구된 데이터 객체를 포함하는 각 스테이지된 그룹 중의 적어도 하나의 세그먼트로 상기 저장 장치와 상기 그룹 캐시 사이에서 스테이지되거나 디스테이지된다.

Description

캐시 메모리를 관리하는 방법 및 시스템{A METHOD AND SYSTEM FOR MANAGING A CACHE MEMORY}
본 발명은 직접 액세스 저장 장치를 갖춘 저장 시스템에 관한 것으로, 특히 상기 저장 시스템에 데이터 액세스를 위한 호스트 컴퓨터 및 채널의 대기시간(wait time)을 감소시킴으로써 향상된 성능을 제공하는 방법 및 시스템에 관한 것이다.
통상의 컴퓨터 시스템은 호스트 컴퓨터 및 하나 이상의 자기 디스크와 같은 직접 액세스 저장 장치(DASD)를 포함하는 시스템이다. 그 호스트 컴퓨터에서 실행되는 애플리케이션은 데이타를 판독하거나 기록하기 위한 상기 DASD에 있는 어드레스 위치에 액세스한다. 이러한 액세스는 디스크 입력/출력(I/O) 작동으로 알려져 있다. 상기 호스트 컴퓨터는 DASD보다 훨씬 빠른 속도로 작동하여, 상기 실행 애플리케이션은 상기 I/O작동이 완료되는 것을 대기하게 된다. 그 결과로, 상기 호스트 컴퓨터 효율이 저해된다.
저장 시스템 매니저는 상기 I/O 디스크 작동 및 그 캐시 메모리의 액세스를 조절하는데 사용된다. 일반적으로, 그 데이터는 레코드(record)와 같이 데이터 객체로 조직화되어 있다. 실행 애플리케이션이 레코드를 요구할 때에는, 저장 시스템 매니저는 우선 캐시 메모리에서 레코드를 탐색한다. 상기 요구된 레코드를 그 캐시 메모리에서 찾으면(즉, "적중(hit)"), 시간을 소모하는 디스크 I/O 작동을 실시할 필요가 없다. 그러나 상기 요구된 레코드를 그 캐시 메모리에서 찾지 못하면(즉, "부재(miss)"), 상기 저장 시스템 매니저는 상기 DASD로부터 상기 요구된 레코드를 얻고 그 요구된 레코드를 상기 캐시 메모리에 기록하는 디스크 I/O 작동을 실시하는 것이 요구된다.
일반적으로, 상기 저장 시스템 매니저는 최저 사용 빈도(least recentlyused; LRU) 기법으로 상기 캐시 메모리에 레코드 보존을 관리한다. 상기 LRU 기법은 제어 블럭의 체인(chain) 또는 큐(queue)를 사용한다. 각 제어 블록은 (a) 레코드의 어드레스, (b) 상기 체인에서 다음으로 연속되는 레코드의 어드레스를 식별하는 순방향 체인 포인터 및 (c) 상기 체인에서 선행하는 레코드의 어드레스를 식별하는 역방향 체인 포인터를 식별한다. 상기 저장 시스템 매니저는 상기 LRU 레코드, 예를 들어 상기 체인의 상단을 식별하는 제1 앵커 포인터를 유지한다. 또한, 상기 저장 시스템 매니저는 최고 사용 빈도(MRU) 레코드, 예를 들어 상기 체인의 말단을 식별하는 제2 앵커 포인터를 유지한다.
캐시 적중이 발생할 때마다, 상기 적중 레코드에 대한 제어 블록은 디큐(dequeue)되고, 이어 LRU 체인의 말단에서는 MRU 레코드로 인큐(enqueue)된다. 캐시 부재가 발생할 때마다, 상기 LRU 제어블록은 상기 체인의 상단으로부터 디큐된다. 상기 디큐된 제어 블록은 상기 스테이지된 기록 및 할당된 어드레스에 일치하게 갱신되고, 상기 LRU 체인의 말단부에서 MRU 제어 블럭으로 인큐된다.
저장 시스템용 캐시 메모리의 설계에 있어서, 캐시 메모리에서 요구된 데이터 레코드를 찾을 확률을 증가시키는데 상당한 주의를 기울여 왔다. 예를 들어, 미국 특허 제 5,717,893호는 하나의 전역 캐시와 다수의 디스테이징 국부 캐시로 분할되고, 각 국부 캐시는 특정 형태의 데이터 레코드를 저장하는데 할당되는 캐시 메모리를 개시한다. 모든 형식의 데이터 기록은 상기 국부 캐시 또는 상기 디스크 저장 시스템으로부터 상기 전역 캐시로 디스테이지된다. LRU 알고리즘에 따르면, LRU 데이터 레코드는 상기 전역 캐시에서 상기 국부 캐시로 강등된다. 여기서, 상기 국부캐시의 데이터 형식은 강등된 LRU 레코드의 데이터 형식과 부합한다. 국부 캐시가 가득할(full) 때, LRU 레코드는 상기 저장 시스템으로 디스테이지된다. 분할 기법은 보다 많은 캐시를 보다 자주 사용되는 데이터 레코드 형식으로 할당하도록 설계하므로 상기 캐시 적중 속도는 증가된다. 또한 논리적이고 동적으로 분할의 재구성을 허용하는 특징이 있으므로, 캐시는 보다 많은 빈도로 사용되는 데이터 형식에 대해서는 증가되고, 그와 동시에 보다 적은 빈도로 사용되는 데이터 형식에 대해서는 감소된다.
다른 종래 기술 방식은 캐시 내의 데이터 레코드의 중첩을 제거함으로써 상기 캐시 적중 속도를 증가시킨다. 이런 형태의 전형적인 기법은 미국 발명 제 5,802,572호 및 제 5,627,990호에 개시되어 있다.
장해 사건시에 데이터 복구를 보장하는 기하학적 배열로 구성되는 다중 소량 저장 모듈의 사용으로 DASD시스템을 향상시켜 왔다. 이 향상된 시스템은 저비용(또는 독립) 디스크의 중복 배열(redundant array of inexpensive(또는 independeant) disk ; RAID)로 자주 불려진다. 이런 일부 기하학적 배열에서는, 데이터 객체를 데이터부로 분할하고, 데이터부는 각각 다른 디스크에 저장된다. RAID 4수준으로 알려진 기하학적 배열에서는, 디스크의 하나는 그 데이터부들에 대한 패리티(parity)로 전용된다. 그 패리티는 장해 사건시에 데이터부를 재구축한다. 기록 연산을 위해, 이 기하학적 형태는 별도의 두 기록 액세스, 즉 상기 데이터부가 저장된 디스크로의 액세스 및 상기 패리티가 저장된 디스크로의 액세스를 요구한다.
RAID 5수준으로 알려진 다른 기하학적 배열에서는, 상기 디스크는 그 배열로액티브 디스크(active disk)를 가로질러 상기 데이터와 패러티 정보가 분산되도록 분할된다. 각 분할은 일반적으로 스트라이프(stripe)라 한다. 스트라이프에 대한 패리티 정보는 대개 디스크 상에 배치되고 상기 데이터는 상기 스트라이프의 나머지 디스크 상에 배치된다. 이를 통해 다중 스트라이퍼를 병렬로 조작할 수 있고, 이로써 상당한 대량의 데이터를 스테이지하거나 디스테이지할 수 있다.
캐시 적중 속도를 증가시키는 상기 기법은 한 페이지 또는 하나의 표 등과 같은 아주 소량의 데이터 객체와 관련된다. 이는 상기 다수의 보다 작은 페이지 객체가 포함된 훨씬 큰 데이터 객체를 조절하는 RAID 시스템의 능력과 같은 잇점은 없다.
따라서, 캐시 적중의 향상된 확률을 갖는 캐시 메모리가 요구되며, 특히 RAID 저장 장치의 스트라이프 액세스 능력의 잇점을 갖는 캐시 메모리가 요구된다.
본 발명은 저장 시스템으로부터 데이터 객체를 요구하는 애플리케이션을 실행하는 호스트 컴퓨터를 채용한다. 상기 저장 시스템은 디스크 저장 장치와 같은 저장 장치 및 캐시 메모리를 구비한다. 상기 호스트 컴퓨터에 의해 자주 사용되는 데이터 객체는 상기 캐시 메모리에 저장된다. 또한 상기 데이터 객체는 데이터 객체 및 세그먼트 그룹에 논리적으로 배열된 저장 장치에도 저장되고, 상기 캐시 메모리는 제1 캐시 및 제2 캐시로 논리적으로 배열된다.
본 발명의 방법은 작은 입상(granularity)인 세그먼트의 저장을 위한 제1 캐시 및 큰 입상인 세그먼트 그룹의 저장을 위한 제2 캐시를 사용한다. 상기 호스트컴퓨터 요구가 데이터에 액세스할 때에, 본 발명의 방법은 상기 요구된 데이터(requested data)가 상기 제1 캐시에 저장되어 있는지를 결정한다. 상기 요구된 데이터가 제1 캐시에 저장되어 있지 않은 경우에는, 상기 방법은 그 요구된 데이터가 제2 캐시에 저장되어 있는지를 결정한다. 상기 요구된 데이터가 제2 캐시에 저장되어 있지 않은 경우에는, 상기 저장 장치에 저장된 일 세그먼트그룹에 액세스한다. 그 요구된 데이터는 이 세그먼트 중 하나에 포함되어 있다. 이어 상기 그룹의 세그먼트는 제2 캐시에 저장되고, 그 요구된 데이터를 포함하는 제1 세그먼트는 제1 캐시에 저장된다. 이어 상기 요구된 데이터는 제1 캐시로부터 액세스된다.
상기 방법에서 상기 요구된 데이터가 제2 캐시에 저장되고 제1 캐시에 저장되어 있지 않은 경우에는, 요구된 데이터를 포함하는 세그먼트의 사본(copy)을 상기 제1 캐시에 전송한다.
상기 방법은 각 LRU 절차를 사용하여 제1 캐시에서의 최저 사용 빈도 세그먼트 및 제2 캐시에서의 세그먼트 그룹의 디스테이징을 제어함으로써 제1 및 제2 캐시에 저장되지 않은 요구된 데이터에 대한 저장을 할당한다.
본 발명의 중요한 특징은 제1 캐시의 세그먼트 및 제2 캐시의 그룹을 저장함과 동시에 제1 캐시와 제2 캐시로 캐시 메모리를 논리적으로 분할하는 것이다. 이 특징은 일 그룹에서 데이터 객체를 요구하는 애플리케이션은 반드시 동일 세그먼트가 아닌 동일 그룹에서도 다른 데이터 객체를 요구할 수 있다는 잇점이 있다.
본 발명의 캐시 메모리 시스템은 상기 본 발명의 방법의 절차를 포함하는 다중 입상 캐시 매니저 프로그램을 채용한다.
본 발명에 따르면 메모리 매체는 상기 본 발명의 방법의 절차를 수행하는 캐시 메모리를 제어한다.
도 1은 본 발명에 의한 다중 입상 캐시 메모리를 포함하는 컴퓨터 시스템의 블록도이다.
도 2는 본 발명에 의한 다중 입상 프로그램의 판독 절차의 흐름도이다.
도 3 내지 5는 본 발명에 의한 다중 입상 프로그램의 기록절차를 설명하는 흐름도이다.
* 도면의 주요부분에 대한 부호의 설명 *
12: 호스트 컴퓨터 14: 저장시스템
16: 호스트 어댑터 18: 레이드 디스크 어레이(RAID disk array)
30: 다중 입상 캐시 메모리 32: 제1 캐시
34: 제2 캐시 35: 세그먼트 LRU 목록
36: 다중 입상 매니저 37: 세그먼트 캐시 매니저
38: 그룹 LRU 목록 39: 그룹 캐시 매니저
이하, 첨부된 도면과 함께 아래 상세한 설명을 참조하여 본 발명의 다른 심화된 목적, 잇점 및 특징을 설명한다.
도 1을 참조하면, 컴퓨터 시스템(10)이 제공되며, 그 컴퓨터 시스템(10)은 호스트 컴퓨터(12) 및 저장 시스템(14)을 포함한다. 저장 시스템(14)은 호스트 어댑터(16), 저장 장치(18) 및 본 발명에 따른 다중 입상 캐시 메모리(30)를 포함한다. 다중 입상 캐시 메모리(30)는 호스트 컴퓨터(12) 및 저장 장치(18) 사이의 데이터 경로에서 호스트 어댑터(16)와 함께 연결되어 있다.
호스트 컴퓨터(12)는 애플리케이션을 실행하는 하나 이상의 프로세서를 포함한다. 상기 프로세서는 병렬식으로 하나의 애플리케이션 실행하거나, 동시에 또는 다른 시간에 별도의 애플리케이션을 실행하거나, 또는 그 조합으로 실행할 수도 있다. 상기 애플리케이션은 논리적 데이터 구조를 구성하는 데이터 객체를 사용한다. 일반적으로 논리적 데이터 구조는 페이지, 표 등의 레코드일 수 있다. 저장 목적을 위해, 복수의 데이터 객체를 세그먼트에 논리적으로 배열하고 복수의 세그먼트는 그룹에 논리적으로 배열한다.
RAID-5 배열에 대한 바람직한 실시형태에서, 그룹은 스트라이퍼에 상응하고(또한, 종종 당 기술분야에서 배열 실린더로 알려져 있음) 및 스트라이퍼의 디스크는 세그먼트에 상응한다(또한, 종종 당 기술분야에서 배열 트랙으로 알려져 있음). 그러나 본 발명은 객체의 논리적 데이터 구조, 세그먼트 및 그룹이 유연성 있는 방식으로 정해질 수도 있다는 것을 감안한다. 또한, 당 기술 분야의 숙련자는 이 논리적 데이터 구조와 일치하는 대체적인 물리적 레이아웃(lay-out)이 가능하다는 것을 인식할 것이다.
호스트 어댑터(16)는 저장 시스템(14)과 호스트 컴퓨터(12) 사이의 데이터 레코드를 교환하기 위한 송수신 능력을 가진 통상의 설비가 적합하다.
저장 장치(18)는 복수의 디스크(19)를 갖춘 디스크 저장 장치가 적합하다. 바람직하게는, 저장장치(18)는 RAID 저장 기법으로 디스크(19)를 사용하여 다중 입상 캐시 메모리(30)는 동시에 상당히 큰 규모(하나이상의 실린더)의 데이터를 조절하는 상기 RAID 능력이 있는 잇점을 가질 수 있다.
본 발명에 따르면, 캐시 메모리(30)는 다중 입상 매니저(36)를 포함한다. 본 발명의 방법에 따르면, 매니저(36)는 캐시 메모리(30)을 제1 캐시(32)와 제2 캐시(34)로 논리적으로 분할한다. 매니저(36)는 호스트 컴퓨터(12)로부터의 데이터 액세스 요구에 응답하여, 제1 캐시(32)에 저장된 세그먼트와 같은, 보다 작은 입상의 데이터 구조를 발생시킨다. 매니저(36)는 호스트 컴퓨터(12)로부터의 데이터 액세스 요구에 응답하여, 제2 캐시(34)에 저장된 세그먼트와 같은, 보다 높은 입상의 데이터 구조를 발생시킨다. 제1 및 제2 캐시(32 및 34)는 캐시 메모리(30)의 물리적 영역으로 또는 논리적 영역으로 지정될 수 있다.
본 발명의 중요한 특징은 캐시 메모리(30)를 제1 캐시(32) 및 제2 캐시(34)로 논리적 분할과 함께 제1 캐시(32)에는 세그먼트를 저장하고 제2 캐시(34)에는 그룹을 저장하는 것이다. 이 특징은 그룹에서 데이터 객체를 요구하는 애플리케이션은 다른 데이터 객체를 반드시 동일 세그먼트내가 아닌 동일한 그룹에서도 요구할 것이라는 잇점이 있다. 캐시 부재율은 약 4 인자(factor)에 의해 감소될 수 있을 것으로 기대된다.
매니저(36)는 통상의 LRU절차를 이용하여 세그먼트 LRU 목록(35) 및 제1 캐시(32)에 대한 세그먼트 LRU 목록을 관리하는 제1 캐시 매니저(37)를 포함한다. 또한, 매니저(36)는 통상의 LRU절차를 이용하여 그룹 LRU 목록(38) 및 제2 캐시(32)에 대한 그룹 LRU 목록을 관리하는 제2 캐시 매니저(39)를 포함한다. 매니저(36)는 판독 절차(50), 세그먼트 기록 절차(60) 및 그룹 기록 절차(80)을 포함한다.
도 2를 참조하면, 판독 절차(50)는 호스트 컴퓨터(12)가 판독 작동을 위한 데이터 액세스를 요구할 때에 시작된다. 단계(51)에서 상기 요구된 데이터가 세그먼트 LRU 목록(35)에 있는 경우에, 단계(57)에서 상기 요구된 데이터의 사본을 제1 캐시(32)에서 호스트 컴퓨터(12)로 전송한다.
상기 요구된 데이터는 세그먼트 LRU 목록에 없다면(35; 제1 캐시 부재), 단계(52)에서 상기 요구된 데이터가 그룹 LRU 목록(38)에 있는 것으로 결정된다. 상기 요구된 데이터가 그룹 LRU 목록(38)에 있다면, 단계(54)에서 상기 요구된 데이터를 갖는 세그먼트의 사본을 제2 캐시(34)에서 제1 캐시(32)로 스테이지시킨다. 또한, 단계(55)에서는 제1 캐시 매니저(37)와 공조하여 상기 목록의 그 MRU 위치에 상기 스테이지된 세그먼트의 어드레스를 포함하도록 세그먼트 LRU 목록(35)을 갱신한다. 이어 단계(57)에서 상기 요구된 데이터의 사본을 호스트 컴퓨터(12)에 전송한다.
상기 요구된 데이터가 그룹 LRU 목록(38)에 없다면(제2 캐시 부재), 단계(55)에서 상기 요구된 데이터를 갖는 그룹의 사본을 디스크 저장 장치(18)에서 제2 캐시(34)로 스테이지시킨다. 또한, 단계(55)에서 제2 캐시 매니저와 공조하여 상기 목록의 그 MRU 위치에 상기 스테이지된 그룹의 어드레스를 포함하는 그룹 LRU 목록(38)을 갱신한다. 이어 단계(54)에서는 상기 요구된 데이터를 갖는 세그먼트를 제2 캐시(34)에서 제1 캐시(32)로 상기와 같이 스테이지시킨다. 그 다음으로, 단계(57)에서 상기 요구 레코드의 사본을 호스트 컴퓨터(12)에 전송한다.
도 3 및 4를 참조하면, 세그먼트 기록 절차(60)는 도 3에 도시된 동기처리와 도 4에 도시된 비동기처리를 포함한다. 우선, 도 3을 참조하면, 동기처리(61)는 호스트 컴퓨터(12)는 기록 작동을 위한 데이터 액세스를 요구할 때에 시작한다. 단계(62)에서 상기 요구된 데이터가 세그먼트 LRU 목록(35)에 이미 존재하는지여부를 결정한다. 존재하는 경우에는, 단계(64)에서 세그먼트 캐시(32)에 기록된 데이터를 전송하여 상기 존재하는 데이터를 변경한다. 또한, 단계(64)에서 세그먼트 LRU 목록(35)를 갱신한다. 그리고, 단계(64)에서 이 세그먼트에 대한 세그먼트 대기 플래그를 0으로 셋트한다.
단계(62)에서 상기 요구된 데이터가 세그먼트 LRU 목록(35)에 존재하지 않는 것으로 결정되면, 단계(63)에서 제1 캐시(32)에 위치를 할당한다. 이어 단계(64)를 상기 기록된 데이터를 이전부터 존재하는 버전으로 변경하지 않는 것을 제외하고상기와 같이 실행한다.
도 4를 참조하면, 비동기처리(70)는 정상적으로 휴지(sleep)모드로 있고 제2 캐시(34) 및(또는) 디스크 저장 장치(18)로 디스테이지되는 것이 요구되는 제1 캐시에 변경된 세그먼트가 있을 때에 단계(71)에서 동작시킨다. 단계(71)에서 디스테이징 작업이 완료된 것으로 결정될 때에, 단계(72)에서는 세그먼트 LRU 목록(35)에 다음으로 변경된 세그먼트를 찾는다. 단계(73)에서 이 세그먼트가 그룹 LRU 내에 존재하는지 여부를 결정한다. 존재하지 않은 경우에는, 단계(74)에서 상기 세그먼트 대기 플래그를 0으로 셋팅하는지 여부를 결정한다. 0으로 셋팅한 경우에, 단계(77)에서 상기 세그먼트 대기 플래그를 1로 셋팅한다. 이어, 비동기처리(70)는 세그먼트 LRU 목록(35)에서 상기 다음으로 변경된 세그먼트로 진행되든가 아니면, 작업에 대한 그 현재 스캔을 완료한 경우에 단시간 동안에 상기 휴지모드로 된다. 이는 디스크 저장 장치(18)로 스테이지되기 전에 세그먼트로 다른 변경을 허용하는 대기 특징을 부여한다.
이어, 단계(71)에서 비동기처리를 재차 동작시키고, 단계(72 내지 74)를 반복한다. 단계(74)에서 상기 세그먼트 대기 플래그가 0으로 셋팅되지 않게 결정할 것이다. 이어, 단계(76)에서 상기 변경된 세그먼트를 디스크 저장 장치(18)로 디스테이지할 것이다. 그 다음으로, 비동기처리(70)는 세그먼트 LRU 목록(35)에서 상기 다음으로 변경된 세그먼트로 진행되든가 아니면, 작업에 대한 그 현재 스캔을 완료한 경우에 단시간에 상기 휴지모드로 된다.
단계(73)에서 상기 변경된 세그먼트가 그룹 LRU 목록(38)에 존재하는 것으로결정되면, 단계(75)에서는 상기 변경된 세그먼트를 제2 캐시(34)로 전송하여 현존하는 그룹을 변경한다. 또한, 단계(75)에서 그룹 LRU 목록(38)을 갱신한다. 또한, 단계(75)에서는 이 그룹에 대한 그룹 대기 플래그를 0으로 셋팅한다. 이어 비동기처리(70)는 휴지모드로 된다.
도 5를 참조하면, 그룹 기록 절차(80)도 그룹 디스테이징 작업이 완료된 때에 단계(81)에서 작동되는 비동기처리이다. 그룹 기록 절차(80)가 단계(81)에 의해 동작될 때에, 단계(82)에서는 그룹 LRU 목록에서 다음으로 변경된 그룹을 찾는다. 단계(83)에서 상기 그룹 대기 플래그를 0으로 셋팅하는지 여부를 결정한다. 0으로 셋팅한 경우에, 단계(84)에서 상기 세그먼트 대기 플래그를 1로 셋팅한다. 이어 그룹 기록 절차(80)는 단시간에 상기 휴지모드로 된다. 이는 디스크 저장 장치(18)로 스테이지되기 전에 세그먼트로 다른 변경을 허용하는 대기 특징을 부여한다.
이어, 단계(81)에서 비동기처리를 재차 동작시키고, 단계(82 내지 83)를 반복한다. 단계(83)에서 상기 세그먼트 대기 플래그을 0으로 셋팅하지 않은 것으로 결정할 것이다. 이어, 단계(85)에서 상기 변경된 세그먼트를 디스크 저장 장치(18)로 디스테이지할 것이다. 단시간에 상기 부동모드로 된다.
상기와 같이, 본 발명을 그 바람직한 실시형태를 특정한 참조로 설명하였으나, 청구범위로 정해진 본 발명의 사상과 범위를 벗어나지 않고 다양한 변화 및 개조를 할 수도 있다.

Claims (15)

  1. 호스트 컴퓨터와 저장장치 사이의 데이터 경로에 위치하고, 제1 및 제2 캐시로 논리적으로 분할된 캐시 메모리를 관리하는 방법에 있어서,
    상기 방법은
    ① 데이터에 액세스하기 위한, 상기 호스트 컴퓨터로부터의 요구에 응답하여, 상기 요구된 데이터가 상기 제1 캐시에 저장되어 있는지 여부와 상기 요구된 데이터가 상기 제1 캐시에 저장되어 있지 않은지 여부를 결정하고, 상기 요구된 데이터가 상기 제2 캐시에 저장되어 있는지 여부를 결정하는 단계와,
    ② 상기 요구된 데이터가 상기 제2 캐시에 저장되어 있지 않는 경우에는, 상기 저장 장치에 저장된 일 세그먼트(segment)그룹에 액세스하는 단계와,
    ③ 상기 제2 캐시에 상기 세그먼트 그룹을 저장하고, 상기 제1 캐시에 상기 요구된 데이터를 포함하는 상기 제1 세그먼트를 저장하는 단계와,
    ④ 상기 ① 단계에서 상기 요구된 데이터가 상기 제1 캐시에 저장된 것으로 결정된 경우 또는 상기 ③ 단계에서 상기 제1 캐시에 상기 제1 세그먼트를 저장했을 때에는 상기 제1 캐시로부터 상기 요구된 데이터를 액세스하는 단계를 포함하는 캐시메모리를 관리하는 방법.
  2. 제1항에 있어서,
    ⑤ 상기 ①단계는 상기 요구된 데이터를 상기 제2 캐시에는 저장되어 있으나상기 제1 캐시에는 저장되어 있지 않은 것으로 결정한 경우에는, 상기 제2 캐시에서 상기 요구된 데이터를 갖는 제2 세그먼트에 액세스하고 상기 제2 세그먼트를 상기 제1 캐시에 저장하는 단계와,
    ⑥ 상기 ⑤단계에서 상기 제1 캐시에 상기 제2 세그먼트를 저장하였을 때에, 상기 제1 캐시로부터 상기 요구된 데이터에 액세스하는 단계를 더 포함하는 캐시메모리를 관리하는 방법.
  3. 제2항에 있어서,
    ⑦ 상기 ① 단계에서 상기 요구된 데이터가 상기 제1 캐시에 저장되지 않은 것으로 결정된 경우에는, 최저 사용 빈도(least recently used)절차에 따라서 상기 제1 캐시로부터 최저 사용 빈도 세그먼트를 디스테이징(destaging)하는 단계와,
    ⑧ 상기 ① 단계에서 상기 요구된 데이터가 상기 제2 캐시에 저장되지 않은 것으로 결정된 경우에는, 최저 사용 빈도 절차에 따라서 상기 제2 캐시로부터 최저 사용 빈도 세그먼트를 디스테이징하는 단계를 더 포함하는 캐시메모리를 관리하는 방법.
  4. 제3항에 있어서,
    ⑨ 상기 ⑦단계에서 사용된 제1 캐시에 대한 제1의 최저 사용 빈도 목록을 유지하는 단계와,
    ⑩ 상기 ⑧단계에서 사용된 제2 캐시에 대한 제2의 최저 사용 빈도 목록을유지하는 단계를 더 포함하는 캐시메모리를 관리하는 방법.
  5. 제2항에 있어서,
    ⑦ 상기 액세스 요구가 상기 요구된 데이터의 변경된 버전을 기록하는 요구인 경우에는, 상기 변경된 버전을 상기 제1 캐시로 전송하는 단계와,
    ⑧ 상기 제1 캐시로부터, 직접 또는 상기 제2 캐시를 경유하여 간접적으로 상기 변경된 버전의 사본을 상기 저장 장치로 전송하는 단계를 더 포함하는 캐시메모리를 관리하는 방법.
  6. 제5항에 있어서,
    상기 ⑧단계는 상기 요구된 데이터가 상기 제2 캐시에 없는 경우에는 직접 전송하고, 상기 요구된 데이터가 상기 제2 캐시에 있는 경우에는 간접적으로 전송하는 캐시메모리를 관리하는 방법.
  7. 제6항에 있어서.
    상기 저장장치는 RAID 저장장치이고, 각각의 상기 세그먼트은 논리적 배열 트랙이며, 상기 그룹 각각은 논리적 배열 실린더인 캐시메모리를 관리하는 방법.
  8. 호스트 컴퓨터와 저장장치 사이의 데이터 경로에 위치한 다중 입상(multi-granular) 캐시 메모리 시스템에 있어서,
    제1 캐시 및 제2 캐시로 논리적으로 분할된 캐시 메모리와,
    데이터에 액세스하기 위한 상기 호스트 컴퓨터로부터 요구를 처리하는 다중 입상 매니저로 이루어지고,
    상기 다중 입상 매니저는
    ① 데이터에 액세스하기 위한, 상기 호스트 컴퓨터로부터의 요구에 응답하여, 상기 요구된 데이터가 상기 제1 캐시에 저장되어 있는지 여부와 상기 요구된 데이터가 상기 제1 캐시에 저장되어 있지 않은지 여부를 결정하고, 상기 요구된 데이터가 상기 제2 캐시에 저장되어 있는지 여부를 결정하는 단계와,
    ② 상기 요구된 데이터가 상기 제2 캐시에 저장되어 있지 않는 경우에는, 상기 저장 장치에 저장된 일 세그먼트 그룹에 액세스하는 단계와,
    ③ 상기 제2 캐시에 상기 세그먼트 그룹을 저장하고, 상기 제1 캐시에 상기 요구된 데이터를 포함하는 상기 제1 세그먼트를 저장하는 단계와,
    ④ 상기 ① 단계에서 상기 요구된 데이터가 상기 제1 캐시에 저장된 것으로 결정된 경우 또는 상기 ③ 단계에서 상기 제1 캐시에 상기 제1 세그먼트를 저장했을 때에는, 상기 제1 캐시로부터 상기 요구된 데이터를 액세스하는 단계를 포함하는 절차를 실시하는 다중 입상 캐시 메모리 시스템.
  9. 제8항에 있어서,
    상기 절차는
    ⑤ 상기 ①단계는 상기 요구된 데이터를 상기 제2 캐시에는 저장되어 있으나상기 제1 캐시에는 저장되어 있지 않은 것으로 결정한 경우에는, 상기 제2 캐시에서 상기 요구된 데이터를 갖는 제2 세그먼트에 액세스하고 상기 제2 세그먼트를 상기 제1 캐시에 저장하는 단계와,
    ⑥ 상기 ⑤단계에서 상기 제1 캐시에 상기 제2 세그먼트를 저장하였을 때에, 상기 제1 캐시로부터 상기 요구된 데이터를 액세스하는 단계를 더 포함하는 다중 입상 캐시 메모리 시스템.
  10. 제9항에 있어서,
    상기 절차는
    ⑦ 상기 ① 단계에서 상기 요구된 데이터가 상기 제1 캐시에 저장되지 않은 것으로 결정된 경우에는, 최저 사용 빈도 절차에 따라서 상기 제1 캐시로부터 최저 사용 빈도 세그먼트를 디스테이징하는 단계와,
    ⑧ 상기 ① 단계에서 상기 요구된 데이터가 상기 제2 캐시에 저장되지 않은 것으로 결정된 경우에는, 최저 사용 빈도 절차에 따라서 상기 제2 캐시로부터 최저 사용 빈도 세그먼트를 디스테이징하는 단계를 더 포함하는 다중 입상 캐시 메모리 시스템.
  11. 제10항에 있어서,
    ⑨ 상기 ⑦단계에서 사용된 제1 캐시에 대한 제1의 최저 사용 빈도 목록을 유지하는 단계와,
    ⑩ 상기 ⑧단계에서 사용된 제2 캐시에 대한 제2의 최저 사용 빈도 목록을 유지하는 단계를 더 포함하는 다중 입상 캐시 메모리 시스템.
  12. 제9항에 있어서,
    상기 절차는
    ⑦ 상기 액세스 요구가 상기 요구된 데이터의 변경된 버전을 기록하는 요구인 경우에는, 상기 변경된 버전을 상기 제1 캐시로 전송하는 단계와,
    ⑧ 상기 제1 캐시로부터, 직접 또는 상기 제2 캐시를 경유하여 간접적으로 상기 변경된 버전의 사본을 상기 저장 장치로 전송하는 단계를 더 포함하는 다중 입상 캐시 메모리 시스템.
  13. 제12항에 있어서,
    상기 ⑧단계는 상기 요구된 데이터가 상기 제2 캐시에 없는 경우에는 직접 전송하고, 상기 요구된 데이터가 상기 제2 캐시에 있는 경우에는 간접적으로 전송하는 다중 입상 캐시 메모리 시스템.
  14. 제13항에 있어서.
    상기 저장장치는 RAID 저장장치이고, 각각의 상기 세그먼트은 논리적 배열 트랙이며, 각각의 상기 그룹은 논리적 배열 실린더인 다중 입상 캐시 메모리 시스템.
  15. 호스트 컴퓨터와 저장장치 사이의 데이터 경로에 위치한 다중 입상 캐시 메모리 시스템-상기 캐시 메모리 시스템은 캐시 매니저 및, 제1 캐시와 제2 캐시로 논리적으로 분할된 캐시 메모리를 포함함-을 제어하는 메모리 매체에 있어서,
    상기 메모리 매체는
    ① 데이터에 액세스하기 위한, 상기 호스트 컴퓨터로부터의 요구에 응답하여, 상기 요구된 데이터가 상기 제1 캐시에 저장되어 있는지 여부와 상기 요구된 데이터가 상기 제1 캐시에 저장되어 있지 않은지 여부를 결정하고, 상기 요구된 데이터가 상기 제2 캐시에 저장되어 있는지 여부를 결정하는 단계와,
    ② 상기 요구된 데이터가 상기 제2 캐시에 저장되어 있지 않는 경우에는, 상기 저장 장치에 저장된 일 세그먼트 그룹에 액세스하는 단계와,
    ③ 상기 제2 캐시에 상기 세그먼트 그룹을 저장하고, 상기 제1 캐시에 상기 요구된 데이터를 포함하는 상기 제1 세그먼트를 저장하는 단계와,
    ④ 상기 ① 단계에서 상기 요구된 데이터가 상기 제1 캐시에 저장된 것으로 결정된 경우 또는 상기 ③ 단계에서 상기 제1 캐시에 상기 제1 세그먼트를 저장했을 때에는, 상기 제1 캐시로부터 상기 요구된 데이터를 액세스하는 단계를 포함하는 절차로 상기 다중 입상 캐시 메모리 시스템을 제어하는 수단으로 이루어진 다중 입상 캐시 메모리 시스템을 제어하는 메모리 매체.
KR10-2000-0056991A 1999-10-01 2000-09-28 캐시 메모리를 관리하는 방법 및 시스템 KR100373313B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US9/410,499 1999-10-01
US09/410,499 1999-10-01
US09/410,499 US6341331B1 (en) 1999-10-01 1999-10-01 Method and system for managing a raid storage system with cache

Publications (2)

Publication Number Publication Date
KR20010039936A KR20010039936A (ko) 2001-05-15
KR100373313B1 true KR100373313B1 (ko) 2003-02-25

Family

ID=23624989

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0056991A KR100373313B1 (ko) 1999-10-01 2000-09-28 캐시 메모리를 관리하는 방법 및 시스템

Country Status (6)

Country Link
US (1) US6341331B1 (ko)
JP (1) JP3697149B2 (ko)
KR (1) KR100373313B1 (ko)
CN (1) CN1148658C (ko)
GB (1) GB2357172B (ko)
SG (1) SG87172A1 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3705731B2 (ja) * 2000-06-05 2005-10-12 富士通株式会社 入出力制御装置
JP4219633B2 (ja) * 2002-07-25 2009-02-04 株式会社日立製作所 記憶装置システムのデステージ方法、ディスク制御装置、記憶装置システム、及びプログラム
US7219169B2 (en) * 2002-09-30 2007-05-15 Sun Microsystems, Inc. Composite DMA disk controller for efficient hardware-assisted data transfer operations
JP3933027B2 (ja) * 2002-10-17 2007-06-20 日本電気株式会社 ディスクアレイ装置におけるキャッシュメモリ分割管理方式
US6922754B2 (en) * 2002-12-09 2005-07-26 Infabric Technologies, Inc. Data-aware data flow manager
JP2004302751A (ja) * 2003-03-31 2004-10-28 Hitachi Ltd 計算機システムの性能管理方法、および、記憶装置の性能を管理する計算機システム
JP4266725B2 (ja) * 2003-06-27 2009-05-20 株式会社日立製作所 記憶システム
TW200504577A (en) * 2003-07-16 2005-02-01 Matsushita Electric Ind Co Ltd Management method for data storage in data recording medium, and information processing device using the same
JP2007502470A (ja) * 2003-08-14 2007-02-08 コンペレント・テクノロジーズ 仮想ディスク・ドライブのシステムおよび方法
JP4437650B2 (ja) * 2003-08-25 2010-03-24 株式会社日立製作所 ストレージシステム
US7099993B2 (en) * 2003-09-24 2006-08-29 Seagate Technology Llc Multi-level caching in data storage devices
US7231492B2 (en) * 2003-09-30 2007-06-12 Emc Corporation Data transfer method wherein a sequence of messages update tag structures during a read data transfer
JP4257783B2 (ja) * 2003-10-23 2009-04-22 株式会社日立製作所 論理分割可能な記憶装置及び記憶装置システム
JP4412981B2 (ja) * 2003-11-26 2010-02-10 株式会社日立製作所 ストレージシステム及同システムにおけるデータキャッシング方法
JP4141391B2 (ja) * 2004-02-05 2008-08-27 株式会社日立製作所 ストレージサブシステム
JP2005267008A (ja) 2004-03-17 2005-09-29 Hitachi Ltd ストレージ管理方法およびストレージ管理システム
US20060031639A1 (en) * 2004-08-06 2006-02-09 International Business Machines Corporation Write unmodified data to controller read cache
US7536513B2 (en) * 2005-03-31 2009-05-19 International Business Machines Corporation Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state
JP4813843B2 (ja) * 2005-08-04 2011-11-09 株式会社日立製作所 ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法
KR100833178B1 (ko) 2005-08-26 2008-05-28 삼성전자주식회사 캐시 메모리에 저장되는 블록개수를 제어할 수 있는 캐시메모리 시스템 및 동작 방법
US7574556B2 (en) * 2006-03-20 2009-08-11 International Business Machines Corporation Wise ordering for writes—combining spatial and temporal locality in write caches
US7500050B2 (en) 2006-03-20 2009-03-03 International Business Machines Corporation Wise ordering for writes—combining spatial and temporal locality in write caches for multi-rank storage
KR100876841B1 (ko) * 2006-08-22 2009-01-07 엘지전자 주식회사 캐쉬 메모리 탑재형 컴퓨터 및 그 제어 방법
US8291245B2 (en) * 2008-04-17 2012-10-16 International Business Machines Corporation Method, apparatus and system for reducing power consumption based on storage device data migration
US7984313B2 (en) * 2008-04-17 2011-07-19 International Business Machines Corporation Method, apparatus and system for reducing power consumption involving data storage devices
US8769201B2 (en) * 2008-12-02 2014-07-01 Intel Corporation Technique for controlling computing resources
CN102023809B (zh) * 2009-09-21 2012-10-17 成都市华为赛门铁克科技有限公司 存储系统、从存储系统读取数据的方法及写入数据的方法
US8850114B2 (en) 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
US8688913B2 (en) 2011-11-01 2014-04-01 International Business Machines Corporation Management of partial data segments in dual cache systems
US9021201B2 (en) * 2012-01-17 2015-04-28 International Business Machines Corporation Demoting partial tracks from a first cache to a second cache
US8966178B2 (en) * 2012-01-17 2015-02-24 International Business Machines Corporation Populating a first stride of tracks from a first cache to write to a second stride in a second cache
US8825957B2 (en) * 2012-01-17 2014-09-02 International Business Machines Corporation Demoting tracks from a first cache to a second cache by using an occupancy of valid tracks in strides in the second cache to consolidate strides in the second cache
US11556473B2 (en) * 2020-07-30 2023-01-17 EMC IP Holding Company LLC Cache memory management

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2037037B (en) 1978-12-11 1983-07-27 Honeywell Inf Systems Data-processing apparatus
US5210848A (en) 1989-02-22 1993-05-11 International Business Machines Corporation Multi-processor caches with large granularity exclusivity locking
EP0389151A3 (en) 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
US5155832A (en) * 1989-07-05 1992-10-13 Hewlett-Packard Company Method to increase performance in a multi-level cache system by the use of forced cache misses
US5155828A (en) * 1989-07-05 1992-10-13 Hewlett-Packard Company Computing system with a cache memory and an additional look-aside cache memory
US5293609A (en) * 1991-04-19 1994-03-08 International Business Machines Corporation Hit-density-based replacement for data cache with prefetching
JP2810593B2 (ja) * 1992-05-13 1998-10-15 三菱電機株式会社 記憶装置
US5434992A (en) * 1992-09-04 1995-07-18 International Business Machines Corporation Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace
US5572704A (en) 1993-12-15 1996-11-05 Silicon Graphics, Inc. System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes
US5634109A (en) * 1994-06-20 1997-05-27 International Business Machines Corporation Method and system for enhanced data management efficiency in memory subsystems utilizing redundant arrays of disk memory devices and a nonvolatile cache
US5636359A (en) 1994-06-20 1997-06-03 International Business Machines Corporation Performance enhancement system and method for a hierarchical data cache using a RAID parity scheme
JP3030229B2 (ja) 1994-06-20 2000-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション データを転送する方法及びデータ記憶システム
US5615352A (en) * 1994-10-05 1997-03-25 Hewlett-Packard Company Methods for adding storage disks to a hierarchic disk array while maintaining data availability
US5778426A (en) 1995-10-23 1998-07-07 Symbios, Inc. Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method
US5802572A (en) 1996-03-15 1998-09-01 International Business Machines Corporation Write-back cache having sub-line size coherency granularity and method for maintaining coherency within a write-back cache
US5933840A (en) * 1997-05-19 1999-08-03 International Business Machines Corporation Garbage collection in log-structured information storage systems using age threshold selection of segments

Also Published As

Publication number Publication date
KR20010039936A (ko) 2001-05-15
CN1290890A (zh) 2001-04-11
JP2001142778A (ja) 2001-05-25
GB0023633D0 (en) 2000-11-08
CN1148658C (zh) 2004-05-05
GB2357172A (en) 2001-06-13
SG87172A1 (en) 2002-03-19
US6341331B1 (en) 2002-01-22
JP3697149B2 (ja) 2005-09-21
GB2357172B (en) 2003-11-12

Similar Documents

Publication Publication Date Title
KR100373313B1 (ko) 캐시 메모리를 관리하는 방법 및 시스템
US6311252B1 (en) Method and apparatus for moving data between storage levels of a hierarchically arranged data storage system
US6243795B1 (en) Redundant, asymmetrically parallel disk cache for a data storage system
US6467022B1 (en) Extending adapter memory with solid state disks in JBOD and RAID environments
EP0080875B1 (en) Data storage system for a host computer
US6941420B2 (en) Log-structure array
US5596736A (en) Data transfers to a backing store of a dynamically mapped data storage system in which data has nonsequential logical addresses
US5551003A (en) System for managing log structured array (LSA) of DASDS by managing segment space availability and reclaiming regions of segments using garbage collection procedure
US5133060A (en) Disk controller includes cache memory and a local processor which limits data transfers from memory to cache in accordance with a maximum look ahead parameter
US6381677B1 (en) Method and system for staging data into cache
US6327644B1 (en) Method and system for managing data in cache
US6988165B2 (en) System and method for intelligent write management of disk pages in cache checkpoint operations
US7203815B2 (en) Multi-level page cache for enhanced file system performance via read ahead
US5530829A (en) Track and record mode caching scheme for a storage system employing a scatter index table with pointer and a track directory
US20100100664A1 (en) Storage system
EP0205965A2 (en) Peripheral subsystem having read/write cache with record access
US20080091875A1 (en) Method to increase performance of non-contiguously written sectors
JPH06259197A (ja) アレイ型ディスクシステムの制御方式
CN100428193C (zh) 一种在数据存储系统中预取数据的方法
WO2001075581A1 (en) Using an access log for disk drive transactions
EP0490485B1 (en) Rotating memory system
US6993627B2 (en) Data storage system and a method of storing data including a multi-level cache
US6865642B2 (en) Method and apparatus for disk caching for an intermediary controller
US6934803B2 (en) Methods and structure for multi-drive mirroring in a resource constrained raid controller
JPH0863394A (ja) 記憶装置システムおよび記憶装置の制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110110

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee