KR100388338B1 - 캐시 메모리의 제어 방법, 컴퓨터 시스템, 하드 디스크드라이브 장치 및 하드 디스크 제어 장치 - Google Patents

캐시 메모리의 제어 방법, 컴퓨터 시스템, 하드 디스크드라이브 장치 및 하드 디스크 제어 장치 Download PDF

Info

Publication number
KR100388338B1
KR100388338B1 KR10-2000-0058696A KR20000058696A KR100388338B1 KR 100388338 B1 KR100388338 B1 KR 100388338B1 KR 20000058696 A KR20000058696 A KR 20000058696A KR 100388338 B1 KR100388338 B1 KR 100388338B1
Authority
KR
South Korea
Prior art keywords
cache
hard disk
data
swap
control
Prior art date
Application number
KR10-2000-0058696A
Other languages
English (en)
Other versions
KR20010050881A (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 KR20010050881A publication Critical patent/KR20010050881A/ko
Application granted granted Critical
Publication of KR100388338B1 publication Critical patent/KR100388338B1/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
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller

Landscapes

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

Abstract

상위 및 하위의 캐시 메모리(cache memory)에 공통의 데이터를 유지하지 않거나 또는 상위 및 하위의 캐시 메모리에 공통으로 유지되는 데이터를 적게함으로써 각각의 캐시 메모리에 효율이 양호하게 데이터를 유지한다.
컴퓨터 시스템은 확장 버스(20)에 접속된 HDC 카드(21)와, HDC 카드(21)에 접속된 HDD 장치(22)를 구비한다. HDC 카드(21)는 디스크 캐시(상위의 캐시 메모리)를 구비하고, HDD 장치(22)는 디스크 캐시(54)(하위의 캐시 메모리)를 구비한다. HDC 카드(21)및 HDD 장치(22)는 시스템의 기동시에, 각각의 캐시 메모리의 스와프 모드(swap mode)를 선택하기 위한 선택 정보를 송수신하고, 이 송수신된 선택 정보에 기초하여 각각 상이한 스와프 모드를 선택한다.

Description

캐시 메모리의 제어 방법, 컴퓨터 시스템, 하드 디스크 드라이브 장치 및 하드 디스크 제어 장치{METHOD FOR CONTROLLING CACHE MEMORIES, COMPUTER SYSTEM, HARD DISK DRIVE UNIT, AND HARD DISK CONTROL UNIT}
본 발명은 캐시 메모리에 효율이 양호하게 데이터를 유지하기 위한 캐시 메모리의 제어 방법, 컴퓨터 시스템, 하드 디스크 드라이브 장치 및 하드 디스크 제어 장치에 관한 것이다.
컴퓨터 시스템은 CPU, 메인 메모리, HDD(hard disk drive) 장치 등의 데이터 전송 속도가 각각 상이한 소자에 의해 구성된다. 일반적으로, 메인 메모리에는 DRAM이 사용되고 있다. DRAM의 데이터 전송 속도는 CPU와 비교하면 매우 느리기 때문에, CPU의 동작 속도를 저하시켜 버린다. HDD 장치, CD-ROM 장치 등의 외부 기억 장치의 데이터 전송 속도는 DRAM과 비교하면 매우 느리기 때문에, DRAM의 동작 속도를 저하시켜 버린다. 이와 같이, 데이터를 송수신하는 소자들 간에 속도의 차이가 있으면, 시스템 전체의 데이터 전송 속도는 데이터 전송 속도가 느린 쪽의 소자에 지배되기 때문에, 고속의 데이터 전송 속도를 갖는 소자의 본래의 성능이 발휘되지 않게 되어 시스템 전체의 성능이 저하되는 문제가 발생된다.
이들 소자간의 속도 차이를 완충하기 위해서, 컴퓨터 시스템에는 캐시 메모리(cache memory)가 설치되어 있다. 캐시 메모리는 프로그램 및 데이터의 국소성을 이용하여 데이터 전송 속도가 느린 하위의 소자에 기억되는 데이터의 일부를 기억한다. 이것에 의해, 하위의 소자에 대한 액세스를 감소시킴으로써, 컴퓨터 시스템 전체의 데이터 전송 속도를 향상시키고 있다.
캐시 메모리는 전형적으로 CPU와 메인 메모리와의 사이에 설치된다. 캐시 메모리가 복수개인 경우에는, CPU에 가까운 쪽부터 1차 캐시, 2차 캐시,…라고 칭한다. CPU에 가까울수록 그 기억 용량은 작다. 일반적으로, 이들 캐시 메모리에는 SRAM이 사용되고 있다.
또한, 메인 메모리는 외부 기억 장치용의 캐시 메모리로서 사용된다. 이것에 의해, 외부 기억 장치에 대한 액세스를 감소시켜서, 메인 메모리의 동작 속도를 향상시키고 있다. 또한, 외부 기억 장치나 소위 확장 카드 등에도 캐시 메모리가 설치되는 경우가 있다. 예컨대, HDD 장치에는 자기 디스크의 일부 데이터를 유지하는 캐시 메모리가 설치되어 있다. 이것에 의해, 자기 디스크에 대한 액세스를 감소시켜서, HDD 장치의 데이터 전송 속도를 향상시키고 있다. 이와 같이, 메인 메모리, 확장 카드, HDD 장치 등에 설치된 캐시 장치는 디스크 캐시라고 칭한다.
이들 디스크 캐시에는 일반적으로 사전 판독(Look Ahead)이라 칭하는 데이터의 판독 방법이 채용되고 있다. 사전 판독 데이터 판독 방법은 호스트 장치로부터 요구되는 영역의 요구 데이터의 판독이 종료된 뒤, 그 요구 데이터에 연속되는 영역의 데이터도 동시에 판독하는 방법이다. 이것에 의해, 어드레스가 연속적으로 크게 되는 순방향 판독의 캐시 메모리 적중률(cache memory hit ratio)을 향상시키고 있다.
도 12는 종래의 디스크 캐시의 데이터 판독 방법을 도시한 도면이다.
도 12에 있어서, 호스트 장치는 HDD 장치에 대하여 데이터의 판독 및 기록을 요구하는 장치를 의미한다. 호스트 장치 및 HDD 장치는 각각 캐시 메모리를 가지며, 이들 장치의 캐시 메모리 사이에서 데이터를 송수신한다. 이 경우, 호스트 장치의 캐시 메모리가 상위의 캐시 메모리가 되며, HDD 장치의 캐시 메모리가 하위의 캐시 메모리가 된다. 여기서, 호스트 장치 및 HDD 장치의 각각의 캐시 메모리에는 응용 프로그램으로부터 요구되는 데이터 D1을 유지하지 않는 것으로 한다.
응용 프로그램으로부터 호스트 장치로 데이터 D1이 요구되면, 호스트 장치에서는 캐시 오적중이 발생되기 때문에, 데이터 D1과 이 데이터 D1에 연속하는 어드레스의 데이터 D2를 포함하는 데이터 D3이 HDD 장치에 요구된다. HDD 장치에서는 캐시 오적중이 발생되기 때문에, 호스트 장치로부터 요구된 데이터 D3이 자기 디스크로부터 판독되어, 캐시 메모리에 유지됨과 동시에 호스트 장치로 전송된다. 이것에 의해, 호스트 장치의 캐시 메모리에는 데이터 D3이 유지된다. 또한, HDD 장치에서는 전송된 데이터 D3에 연속되는 어드레스의 데이터 D4가 자기 디스크로부터 판독되어 캐시 메모리에 유지된다.
또한, 이런 종류의 사전 판독 데이터 판독 방법으로서는, 예컨대 일본 특개평11-110139호 공보의 데이터 판독 방법 및 장치가 개시되어 있다. 이 데이터 판독 방법 및 장치에서는 어드레스가 연속적으로 작아지는 역방향의 판독이 검출되었을 때, 호스트 장치로부터 요구되는 영역의 요구 데이터의 판독이 종료된 뒤, 그 요구 데이터보다 이전의 어드레스를 판독하고, 이것에 의해, 어드레스가 연속적으로 작아지는 역방향 판독의 캐시 메모리의 적중률을 향상시키고 있다.
그러나, 종래의 캐시 메모리의 데이터 유지 방법에 있어서는, 호스트 장치 및 HDD 장치의 각각의 캐시 메모리에 동일한 데이터가 유지된다. 응용 프로그램으로부터 호스트 장치로 데이터의 판독이 요구되어, 호스트 장치의 캐시 메모리가 적중된 경우, 그 데이터는 호스트 장치로부터 상위측으로 전송된다. HDD 장치로 데이터의 판독이 요구되는 경우는 없다. 따라서, HDD 장치의 캐시 메모리에 동일한 데이터를 유지하더라도 유효하게 이용되지는 않는다.
본 발명은, 이러한 문제점을 해결하기 위해서 이루어진 것으로서, 그 목적은 상위 및 하위의 캐시 메모리에 공통의 데이터를 유지하지 않거나 또는 상위 및 하위의 캐시 메모리에 공통으로 유지되는 데이터를 적게함으로써 각각의 캐시 메모리에 효율이 양호하게 데이터를 유지할 수 있는 캐시 메모리의 제어 방법, 컴퓨터 시스템, 하드 디스크 드라이브 장치 및 하드 디스크 제어 장치를 제공하는 데에 있다.
도 1은 본 발명에 따른 실시예 1의 컴퓨터 시스템의 개략적인 구성을 도시한 도면.
도 2는 도 1에 도시된 HDD 장치의 개략적인 구성을 도시한 도면.
도 3은 도 1에 도시된 HDC 카드(21)의 개략적인 구성을 도시한 도면.
도 4는 캐시 메모리의 스와프 모드(swap mode)를 선택하는 동작의 일례를 도시한 시퀀스도.
도 5는 캐시 메모리의 스와프 모드를 선택하는 동작의 다른 예를 도시한 시퀀스도.
도 6은 본 발명에 따른 실시예 2의 컴퓨터 시스템의 개략적인 구성을 도시한 도면.
도 7은 캐시 메모리의 데이터 유지 동작의 일례를 도시한 도면.
도 8은 캐시 메모리의 데이터 유지 동작의 다른 예를 도시한 도면.
도 9는 캐시 메모리의 데이터 유지 동작의 다른 예를 도시한 도면.
도 10은 캐시 메모리의 데이터 유지 동작의 다른 예를 도시한 도면.
도 11은 캐시 메모리의 데이터 유지 동작의 다른 예를 도시한 도면.
도 12는 종래의 디스크 캐시의 데이터 판독 방법을 도시한 도면.
〈도면의 주요 부분에 대한 부호의 설명〉
10a, 10b, 10c : 외부 버스
11 : CPU
12 : 1차 캐시
13 : 2차 캐시
14 : 제1 컨트롤러 장치
15 : 메인 메모리
16 : 캐시 영역(상위의 캐시 메모리)
17, 32, 52 : 캐시 컨트롤러
20 : 확장 버스
21 : HDC 카드(하드 디스크 제어 장치)
22, 72 : HDD 장치
23, 73 : CD-ROM 장치
24a, 24b, 38a, 38b, 56, 70, 74a, 74b : 버스
31 : HDC
33, 53 : 제어용 메모리
34 : 버퍼 메모리(상위 또는 하위의 캐시 메모리)
35, 36 : I/O 포트
37, 55 : 호스트 I/F
41 : 자기 디스크
42 : 스핀들 모터
43 : 헤드 슬라이더
44 : 헤드 아암
45 : 액츄에이터
51 : HDC
54, 75 : 버퍼 메모리(하위의 캐시 메모리)
71 : 제2 컨트롤러 장치
본 발명에 따른 캐시 메모리의 제어 방법은, 확장 버스에 임의의 주변 장치를 확장시켜 접속하기 위한 주변 장치 접속 수단과, 그 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 상위의 디스크 캐시와, 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 상위의 디스크 캐시로의 기억과 판독을 제어하고, 복수 종류의 스와프 모드로 동작 가능한 상위의 캐시 제어 기능을 포함하는 상위의 하드 디스크 제어 기능을 가진 상위의 제어 수단과, 주변 장치 접속 수단과 접속되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 하위의 디스크 캐시와, 그 하위의 디스크 캐시로의 기억과 판독을 제어하고, 적어도 1 종류의 스와프 모드로 동작 가능한 하위의 캐시 제어 장치를 포함하는 하위의 하드 디스크 제어 장치를 가진 하드 디스크 드라이브 장치를 구비한 컴퓨터 시스템에서,시스템의 기동시에, 하위의 하드 디스크 제어 장치에서는, 상위의 제어 수단을 향하여, 하위의 캐시 제어 장치가 선택 가능한 적어도 1 종류의 스와프 모드를 송신하고,상위의 제어 수단에서는, 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하는 것을 특징으로 한다.
또한, 본 발명에 따른 디스크 캐시의 제어 방법은, 시스템의 기동시에, 하위의 하드 디스크 제어 장치에서는, 1 종류의 스와프 모드를 송신하는 동시에, 송신한 스와프 모드를 선택하는 것이 바람직하고,혹은, 시스템의 기동시에, 하위의 하드 디스크 제어 장치에서는, 복수 종류의 스와프 모드를 송신하고, 상위의 제어 수단에서는, 선택한 스와프 모드를 하위의 하드 디스크 제어 장치로 송신하고, 다시, 하위의 하드 디스크 제어 장치에서는, 상위의 제어 수단으로부터 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하는 것이 바람직하고,혹은, 시스템의 기동시에, 하위의 하드 디스크 제어 장치에서는, 상위의 제어 수단을 향하여, 하위의 캐시 제어 장치가 선택 가능한 복수 종류의 스와프 모드를 송신하고, 상위의 제어 수단에서는, 수신한 스와프 모드로부터 1 종류의 스와프 모드를 선택하여 그 스와프 모드를 하위의 하드 디스크 제어 장치에 송신하고, 하위의 하드 디스크 제어 장치에서는, 상위의 제어 수단으로부터 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하는 것이 바람직하다.또한, 본 발명에 따른 디스크 캐시의 제어 방법은, 상위의 제어 수단이, 적어도 1 종류의 스와프 모드로 동작 가능한 상위의 캐시 제어 기능을 포함하는 상위의 하드 디스크 제어 기능을 가지고, 하위의 하드 디스크 제어 장치가, 복수 종류의 스와프 모드로 동작 가능한 컴퓨터 시스템의 경우,시스템의 기동시에, 상위의 제어 수단에서는, 하위의 하드 디스크 제어 장치를 향하여, 상위의 캐시 제어 장치가 선택 가능한 적어도 1 종류의 스와프 모드를 송신하고, 하위의 하드 디스크 제어 장치에서는, 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하는 것이 바람직하고,혹은, 시스템의 기동시에, 상위의 제어 수단에서는, 1 종류의 스와프 모드를 송신하는 동시에, 그 송신한 스와프 모드를 선택하는 것이 바람직하고,혹은, 시스템의 기동시에, 상위의 제어 수단은, 복수 종류의 스와프 모드를 송신하고, 하위의 하드 디스크 제어 장치에서는, 선택한 스와프 모드를 상위의 제어 수단으로 송신하고, 상위의 제어 수단에서는, 하위의 하드 디스크 제어 장치로부터 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하는 것이 바람직하다.또한, 본 발명에 따른 디스크 캐시의 제어 방법은, 상위의 제어 수단으로부터 하위의 하드 디스크 제어 장치에 하위의 디스크 캐시의 데이터 전송을 요구할 때, 하위의 하드 디스크 제어 장치는, 하위의 디스크 캐시로부터 전송된 데이터를 소거하는 것이 바람직하고,혹은, 하위의 하드 디스크 제어 장치가, 하위의 디스크 캐시의 소거된 데이터의 뒤에, 상위의 제어 수단으로부터 요구된 데이터에 기초하여, 상위의 제어 수단으로부터 다음번에 요구될 것으로 예측되는 데이터를 유지시키는 것이 바람직하고,혹은, 상위의 제어 수단이, 데이터 전송이 요구되는 데이터가 상위의 디스크 캐시에 유지되어 있지 않을 때, 요구되는 데이터에 부가하여, 요구되는 데이터에 기초하여 다음번에 요구될 것으로 예측되는 데이터를 하위의 하드 디스크 제어 장치에 요구하고, 하위의 하드 디스크 제어 장치가, 요구되는 데이터를 상위의 제어 수단에 전송하는 동시에, 그 요구되는 데이터에 기초하여 다음번에 요구될 것으로 예측되는 데이터를 유지하도록 사용되는 것이 바람직하고,혹은, 상위의 제어 수단의 예측 데이터가, 이번에 요구되는 데이터에 기초하여 다음번에 요구될 것으로 예측되는 데이터이고, 하위의 하드 디스크 제어 장치의 예측 데이터는, 상위의 제어 수단의 예측 데이터를 포함하는 데이터에 기초하여 다음번에 요구될 것으로 예측되는 데이터인 것이 바람직하다.본 발명에 따른 컴퓨터 시스템은, 확장 버스에 임의의 주변 장치를 확장시켜 접속하기 위한 주변 장치 접속 수단과,그 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 상위의 디스크 캐시와, 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 상위의 디스크 캐시로의 기억과 판독을 제어하고, 복수 종류의 스와프 모드로 동작 가능한 상위의 캐시 제어 장치 기능을 포함하고, 복수 종류로부터 1 종류의 스와프 모드를 선택하는 상위의 하드 디스크 제어 기능을 가진 상위의 제어 수단과,주변 장치 접속 수단과 접속되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 하위의 디스크 캐시와, 그 하위의 디스크 캐시로의 기억과 판독을 제어하고, 적어도 1 종류의 스와프 모드로 동작 가능한 하위의 캐시 제어 장치를 포함하고, 시스템 기동시에 상위의 제어 수단을 향하여 하위의 캐시 제어 장치가 선택 가능한 적어도 1 종류의 스와프 모드를 송신하는 하위의 하드 디스크 제어 장치를 가진 하드 디스크 드라이브 장치를 구비하고 있다.또한, 본 발명에 따른 컴퓨터 시스템은, 하위의 하드 디스크 제어 장치는, 시스템의 기동시에 1 종류의 스와프 모드를 송신하고, 그 송신한 스와프 모드를 선택하는 것이 바람직하고,혹은, 하위의 하드 디스크 제어 장치는, 시스템의 기동시에 복수 종류의 스와프 모드를 송신하고, 상위의 제어 수단으로부터 스와프 모드를 수신한 후, 그 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하고, 상위의 제어 수단은, 하위의 하드 디스크 제어 장치로부터 수신한 복수 종류의 스와프 모드를 수신한 후, 그 복수 종류의 스와프 모드로부터 1 종류의 스와프 모드를 선택하고, 그 선택한 스와프 모드를 하위의 하드 디스크 제어 장치에 송신하는 것이 바람직하다.또한, 본 발명에 따른 컴퓨터 시스템은, 상위의 제어 수단이, 하위의 하드 디스크 제어 장치로부터 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 복수 종류로부터 선택하고, 그 선택한 스와프 모드를 하위의 하드 디스크 제어 장치에 송신하는 상위의 하드 디스크 제어 기능을 가지고,하드 디스크 드라이브 장치의 하위의 하드 디스크 제어 장치가, 적어도 1 종류의 스와프 모드로 동작하는 하위의 캐시 제어 장치를 포함하고, 시스템 기동시에 상위의 제어 수단을 향하여 하위의 캐시 제어 장치가 선택 가능한 적어도 1 종류의 스와프 모드를 송신하고, 상위의 제어 수단으로부터 스와프 모드를 수신한 후, 그 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하는 것이 바람직하다.본 발명에 따른 컴퓨터 시스템은, 상위의 제어 수단이, 적어도 1 종류의 스와프 모드로 동작 가능한 상위의 캐시 제어 기능을 포함하고, 시스템의 기동시에 하위의 하드 디스크 제어 장치를 향하여, 상위의 캐시 제어 장치가 선택 가능한 적어도 1 종류의 스와프 모드를 송신하는 상위의 하드 디스크 제어 기능을 가지고,하드 디스크 드라이브 장치의 하위의 하드 디스크 제어 장치가, 하위의 디스크 캐시로의 기억과 판독을 제어하고, 복수 종류의 스와프 모드로 동작 가능하고, 상위의 제어 수단으로부터 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하는 하위의 캐시 제어 장치를 포함하는 하위의 하드 디스크 제어 장치를 가지고 있는 것이 바람직하다.또한, 본 발명에 따른 컴퓨터 시스템은, 상위의 제어 수단이, 시스템의 기동시에 1 종류의 스와프 모드를 송신하는 동시에, 그 송신한 스와프 모드를 선택하는 것이 바람직하고,혹은, 상위의 제어 수단이, 시스템의 기동시에 복수 종류의 스와프 모드를 송신하고, 하위의 하드 디스크 제어 장치로부터 스와프 모드를 수신한 후, 그 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하고, 하위의 하드 디스크 제어 장치가, 선택한 스와프 모드를 상위의 제어 수단으로 송신하는 것이 바람직하고,혹은, 하위의 하드 디스크 제어 장치가, 상위의 제어 수단으로부터 하위의 디스크 캐시의 데이터 전송이 요구될 때, 하위의 디스크 캐시로부터 전송한 데이터를 소거하고, 소거된 데이터의 뒤에, 상위의 제어 수단을부터 요구되는 데이터에 기초하여, 상위의 제어 수단을로부터 다음번에 요구될 것으로 예측되는 데이터를 유지시키는 것이 바람직하고,혹은, 상위의 제어 수단이, 데이터 전송이 요구되는 데이터가 상위의 디스크 캐시에 유지되어 있지 않을 때, 요구되는 데이터에 부가하여, 요구되는 데이터에 기초하여 다음번에 요구될 것으로 예측되는 데이터를 하위의 하드 디스크 제어 장치에 요구하고, 하위의 하드 디스크 제어 장치가, 요구되는 데이터를 상위의 제어 수단으로 전송하는 동시에, 그 요구되는 데이터에 기초하여 다음번에 요구될 것으로 예측되는 데이터를 유지하는 것이 바람직하고,혹은, 상위의 디스크 캐시가, 주변 장치 접속 수단에 내장된 디스크 캐시이고, 상위의 제어 수단은, 주변 장치 접속 수단에 내장되고, 상위의 캐시 제어 장치를 포함하는 상위의 하드 디스크 제어 장치인 것이 바람직하고,혹은, 상위의 디스크 캐시가, CPU가 가진 캐시이거나, 혹은, CPU에 접속된 캐시이고, 상위의 제어 수단이, CPU 자체인 것이 바람직하고,혹은, 상위의 디스크 캐시가, CPU와 확장 버스를 접속하기 위한 브릿지 회로에 접속되는 메인 메모리 내의 캐시이고, 상위의 제어 수단이, 브릿지 회로 내의 메인 메모리 제어 장치인 것이 바람직하고,혹은, 주변 장치 접속 수단이, 확장 버스에 임의의 주변 장치를 확장시켜 접속하기 위한 확장 카드인 것이 바람직하다.본 발명에 따른 하드 디스크 드라이브 장치는, 상기한 본 발명의 컴퓨터 시스템에 사용되는 것이고, 또한, 본 발명에 따른 하드 디스크 제어 장치는, 본 발명의 하드 디스크 드라이브 장치에 사용되는 것이다.
이하, 본 발명에 따른 캐시 메모리의 제어 방법 및 컴퓨터 시스템의 바람직한 실시예를 도면을 참조하여 설명한다.
실시예 1.
본 발명에 따른 실시예 1의 캐시 메모리의 제어 방법은 상위 및 하위의 캐시 메모리를 각각 상이한 스와프 모드로 동작시킨다. 스와프란 캐시 메모리의 기억 용량에 공간이 없을 때, 새롭게 유지해야 할 데이터와 이미 유지되어 있는 데이터를 교체하는 것을 의미한다.
스와프 모드로서는 주로, LRU(Least Recently Used) 모드, LFU (Least Frequently Used) 모드, FIFO(first-in first-out) 모드가 사용된다. LRU 모드는 사용되지 않는 시간이 가장 긴 데이터를 스와프 아웃하는 모드이다. LFU 모드는 사용 빈도가 가장 적은 데이터를 스와프 아웃하는 모드이다. FIFO 모드는 먼저 유지된 데이터부터 순차적으로 스와프 아웃하는 모드이다. 또, 스와프 모드는 이것으로 한정하는 것이 아니며, 예컨대 복수의 세그먼트 중 세그먼트에 포함되는 데이터량이 가장 적은 세그먼트를 스와프 아웃하는 스와프 모드 등 여러 가지의 방법(스와프 모드)를 사용할 수 있다.
상위 및 하위의 캐시 메모리를 동일한 스와프 모드로 동작시키면, 각각의 캐시 메모리에 동일한 성질의 데이터가 잔류된다. 예컨대, 상위 및 하위의 캐시 메모리를 동일한 LRU 모드로 동작시킨 경우, 사용되지 않는 시간이 가장 긴 데이터가 스와프 아웃되기 때문에, 최근 사용된 데이터가 각각의 캐시 메모리에 잔류된다. 상위 및 하위의 캐시 메모리를 동일한 LFU 모드로 동작시킨 경우, 사용 빈도가 적은 데이터가 스와프 아웃되기 때문에, 사용 빈도가 많은 데이터가 각각의 캐시 메모리에 잔류된다. 상위 및 하위의 캐시 메모리를 동일한 FIFO 모드로 동작시킨 경우, 먼저 유지된 데이터가 각각의 캐시 메모리로부터 순차적으로 스와프 아웃되기 때문에, 최근 사용된 데이터가 각각의 캐시 메모리에 잔류된다.
이에 대해, 예컨대 상위의 캐시 메모리를 LFU 모드로 동작시키고, 하위의 캐시 메모리를 FIFO 모드로 동작시킨 경우, 상위의 캐시 메모리에는 사용 빈도가 많은 데이터가 잔류되고, 하위의 캐시 메모리에는 최근 사용된 데이터가 잔류된다. 이와 같이, 각각의 캐시 메모리에는 성질이 다른 데이터가 잔류되기 때문에, 양쪽의 캐시 메모리에 동일한 데이터가 유지될 가능성을 작게 할 수 있다. 즉, 상위의 캐시 메모리에 유지된 데이터를 하위의 캐시 메모리가 유지할 가능성을 작게 할 수 있기 때문에, 각각의 캐시 메모리에 효율이 양호하게 데이터를 유지시킬 수 있다.
바람직하게는, 상위 및 하위의 캐시 메모리에는 성질이 상이한 스와프 모드를 조합하면 좋다. 서로 비슷한 성질의 스와프 모드를 조합시킨 경우 보다도 양쪽의 캐시 메모리에 상이한 데이터가 잔류되는 확률이 높아지고, 캐시 메모리를 한층 더 효율이 양호하게 이용할 수 있기 때문이다. 단, 적중률을 저감시킬 수 있는 스와프 모드를 사용해서는 않된다. 데이터의 국소성을 이용하는 캐시 메모리 본래의 기능을 발휘할 수 없기 때문이다.
다음에, 이 캐시 메모리의 제어 방법을 실현하는 컴퓨터 시스템에 관해서 설명한다.
도 1은 본 발명에 따른 실시예 1의 컴퓨터 시스템의 개략적인 구성을 도시한 도면이다.
도 1에 도시한 바와 같이, 이 컴퓨터 시스템은 CPU(11), 2차 캐시(13), 제1 브리지 회로(14) 및 메인 메모리(15)를 구비한다. CPU(11)는 1차 캐시(12)를 갖는다. CPU(11)에는 외부 버스(10a)를 통해 2차 캐시(13)가 접속되어 있다. 또한, CPU(11)에는 외부 버스(10b)를 통해 제1 브리지 회로(14)가 접속되어 있다. 제1 브리지 회로(14)에는 외부 버스(10c)를 통해 메인 메모리(15)가 접속되어 있다. 1차 캐시(12) 및 2차 캐시(13)는 예컨대 SRAM에 의해 구성되어 있다. 1차 캐시(12)는 예컨대 수십 K ∼ 수백 KB(B; byte)의 기억 용량을 갖는다. 2차 캐시(13)는 예컨대 수백 K ∼ 수 MB의 기억 용량을 갖는다. 메인 메모리(15)는 예컨대 DRAM에 의해 구성되어 있다. 메인 메모리(15)는 예컨대 수십 M ∼ 수백 MB의 기억 용량을 갖는다.
제1 브리지 회로(14)에는 주변 장치를 확장하기 위한 확장 버스(20)가 접속되어 있다. 확장 버스(20)는, 예컨대 PCI(Peripheral Component Interconnect) 버스에 의해 구성되어 있다. 제1 브리지 회로(14)는 예컨대 도시 생략된 클럭 발생기, CPU 인터페이스, 2차 캐시 컨트롤러, 메인 메모리 컨트롤러, PCI 버스 인터페이스 등의 기능을 갖는다.
확장 버스(20)에는 HDC(Hard Disk Controller) 카드(21)가 접속되어 있다. 또한, HDC 카드(21)에는 버스(24a)를 통해 HDD(hard disk drive) 장치(22)가 접속되고, 버스(24b)를 통해 CD-ROM 장치(23)가 접속되어 있다. 버스(24a, 24b)는, 예컨대 ATA(AT Attachment)/ATAPI(ATA packet interface) 버스에 의해 구성되어 있다. HDC 카드(2l)는 HDD 장치의 증설이나 HDD 장치의 제어 기능을 확장하기 위해서 사용된다.
또, HDC 카드(21)는 HDD 장치(22)의 제어 기능을 확장하는 것에 한정하지 않고, 캐시 메모리를 갖는 확장 카드이면 좋다. 예컨대, SCSI(Smal1 Computer System Interface) 카드와 같은 것이라도 좋다. 또한, 확장 버스(20)는 PCI 버스로 한정하지 않으며, 버스(24a, 24b)는 ATA/ATAPI 버스로 한정하지 않는다.
도 2는 도 1에 도시된 HDD 장치의 개략적인 구성을 도시한 도면이다.
도 2에 도시된 바와 같이, HDD 장치(22)는 데이터가 기록되는 기록면을 갖는 자기 디스크(41)와, 도시 생략된 기록용 및 재생용 자기 헤드를 갖는 헤드 슬라이더(43)를 구비한다.
자기 디스크(41)는 스핀들 모터(42)의 회전축에 고정하여 부착되고, 스핀들 모터(42)에 의해 회전 구동된다. 헤드 슬라이더(43)는 헤드 아암(44)의 선단 부분에 고정되어 있다. 헤드 아암(44)은 액츄에이터(45)에 부착되고, 헤드 슬라이더(43)를 탄성 지지한다. 헤드 아암(44)은 액츄에이터(45)에 의해 자기 디스크(41)의 기록면의 상공을 회동 구동한다. 이것에 의해, 헤드 슬라이더(43)는 자기 디스크(41)의 대략 반경 방향을 이동하여, 자기 디스크(41) 기록면의 임의의 위치의 데이터가 액세스된다.
또, 자기 디스크(41)는 1장 이상 있으면 좋고, 그 한쪽 면 또는 양쪽 면에 기록면이 형성된다. 헤드 슬라이더(43) 및 헤드 아암(44)은 자기 디스크(41)의 기록면에 대응하여 설치된다.
자기 디스크(41), 스핀들 모터(42), 헤드 슬라이더(43), 헤드 아암(44)및 액츄에이터(45)로 구성되는 구동 기구는 제어 회로(50)에 의해 제어된다. 제어 회로(50)는 HDC(Hard Disk Controller)(51), 제어용 메모리(53), 디스크 캐시(54) 및 호스트 I/F(55)를 구비한다. 이들은 버스(56)를 통해 서로 접속되어 있다.
HDC(51)는 제어용 메모리(53)에 기억된 제어 프로그램, 제어 데이터에 따라서, HDD 장치(22)의 전체를 제어한다. HDC(51)는 서보 제어나 데이터의 기록/재생시의 오류 제어를 위한 연산 처리를 실행함으로써, 스핀들 모터(42) 및 액츄에이터(45)를 구동하고, 기록용 자기 헤드를 통해 자기 디스크(41)에 데이터를 기록함과 동시에, 재생용 자기 헤드를 통해 자기 디스크(41)로부터 데이터를 재생하여 판독한다. HDC(51)에는 자기 디스크(41)에 기록되는 데이터의 일부를 디스크 캐시(54)에 유지하기 위한 캐시 컨트롤러(52)가 설치되어 있다.
제어용 메모리(53)에는 HDC(51)에 의해 실행되는 제어 프로그램, 이 제어 프로그램에 사용되는 제어 데이터가 기억되어 있다. 디스크 캐시(54)는 자기 디스크(41)에 기록되는 기록 데이터를 일시적으로 기억함과 동시에, 자기 디스크(41)로부터 판독된 판독 데이터를 일시적으로 기억하는 버퍼 메모리의 기능을 갖는다. 호스트 I/F(55)에는 버스(21a)를 통해 HDC 카드(21)가 접속되어 있다. 호스트 I/F(55)는 HDC 카드(21)와의 사이에서 데이터를 송수신하는 인터페이스 회로이다.
디스크 캐시(54)는 전술한 바와 같이 자기 디스크(41)에 기록되는 데이터의 일부를 유지하는 캐시 메모리의 기능을 갖는다. 디스크 캐시(54)는 하위의 캐시 메모리에 상당한다. 디스크 캐시(54)는 예컨대 DRAM으로 이루어지며, 수 M ∼ 수십 MB의 기억 용량을 갖는다. 캐시 제어는 캐시 컨트롤러(52)에 의해 행해진다. 캐시 컨트롤러(52)는 예컨대 FIFO 모드 및 LRU 모드의 스와프 모드를 지원한다.
HDD 장치(22)는 이 컴퓨터 시스템의 기동시에 HDC 카드(호스트 장치)(21)와의 사이에서 설정 정보를 송수신하고, 송수신된 설정 정보에 기초하여 HDD 장치(22)의 초기 설정을 행한다. 이 때, HDD 장치(22)는 예컨대 자신의 장치에 의해 선택 가능한 캐시 메모리의 스와프 모드(FIFO 모드 및 LRU 모드)를 HDC 카드(21)로 전송하고, 이것에 의해서 HDC 카드(21)로부터 전송된 스와프 모드를 자신의 캐시 메모리의 스와프 모드로서 선택한다.
도 3은 도 1에 도시된 HDC 카드(21)의 개략적인 구성을 도시한 도면이다.
도 3에 도시된 바와 같이, HDC 카드(21)는 HDC(31), 제어용 메모리(33), 디스크 캐시(34), I/O 포트(35, 36) 및 호스트 I/F(37)를 구비한다. HDC(31), 제어용 메모리(33), 디스크 캐시(34) 및 호스트 I/F(37)는 버스(38c)를 통해 서로 접속되어 있다. I/O 포트(35)는 버스(38a)를 통해 HDC (31)에 접속되고, I/O 포트(36)는 버스(38b)를 통해 HDC(31)에 접속되어 있다.
HDC(31)는 제어용 메모리(33)에 기억된 제어 프로그램, 제어 데이터에 따라서, HDC 카드(21)의 전체를 제어한다. HDC(31)에는 HDD 장치(22)에 기억되는 데이터의 일부를 디스크 캐시(34)에 유지하기 위한 캐시 컨트롤러(32)가 설치되어 있다.
제어용 메모리(33)에는 HDC(31)에 의해 실행되는 제어 프로그램, 이 제어 프로그램에 사용되는 제어 데이터가 기억되어 있다. 디스크 캐시(34)는 HDD 장치(22)에 기억되는 기록 데이터를 일시적으로 기억함과 동시에, HDD 장치(22)로부터 판독된 판독 데이터를 일시적으로 기억하는 버퍼 메모리의 기능을 갖는다. I/O 포트(35)에는 버스(24a)를 통해 HDD 장치(22)가 접속되고, I/O 포트(36)에는 버스(24b)를 통해 CD-ROM 장치(23)가 접속되어 있다. 호스트 I/F(37)에는 확장 버스(20)가 접속되어 있다. 호스트 I/F(37)는 확장 버스(20)를 통해 데이터를 송수신하는 인터페이스 회로이다.
디스크 캐시(34)는 전술한 바와 같이 HDD 장치(22)에 기억되는 데이터의 일부를 유지하는 캐시 메모리의 기능을 갖는다. 디스크 캐시(34)는 HDD 장치(22)에 설치된 디스크 캐시(54)에 대하여 상위의 캐시 메모리에 상당한다. 디스크 캐시(34)는 예컨대 DRAM으로 이루어지며, 수 M ∼ 수십 MB의 기억 용량을 갖는다. 캐시 제어는 캐시 컨트롤러(32)에 의해 행해진다. 캐시 컨트롤러(32)는 예컨대 FIFO 모드, LRU 모드 및 LFU 모드를 지원한다.
HDC 카드(21)는 이 컴퓨터 시스템의 기동시에 HDD 장치(하위 장치)(22)와의 사이에서 설정 정보를 송수신하고, 송수신된 설정 정보에 기초하여 HDC 카드(21)의 초기 설정을 행한다. 이 때, HDC 카드(21)는 예컨대 HDD 장치(22)로부터 전송된 캐시 메모리의 스와프 모드 중에서 HDD 장치(22)가 선택해야 할 스와프 모드를 선택하여 HDD 장치(22)에 전송하고, 또한, HDD 장치(22)로 전송된 스와프 모드와 상이한 스와프 모드를 자신의 캐시 메모리의 스와프 모드로서 선택한다. 또, 어떤 스와프 모드를 선택하는지는 그 우선 순위가 미리 설정되어 있다.
도 4는 캐시 메모리의 스와프 모드를 선택하는 동작의 일례를 도시하는 시퀀스도이다.
컴퓨터 시스템이 기동되면, HDD 장치(22)가 선택 가능한 캐시 메모리의 스와프 모드(FIFO 모드 및 LRU 모드)가 HDD 장치(22)로부터 HDC 카드(21)로 전송된다(스텝 S1). HDC 카드(21)에서는 HDD 장치(22)로부터 스와프 모드가 전송되면(스텝 S2), 미리 설정된 우선 순위에 따라서 수신된 스와프 모드 중에서 HDD 장치(22)가 선택해야 할 스와프 모드(FIFO 모드)가 선택되고(스텝 S3), 선택된 스와프 모드가 HDD 장치(22)로 응답된다(스텝 S4).
HDD 장치(22)에서는 HDC 카드(21)로부터 스와프 모드가 전송되면(스텝 S5), 전송된 스와프 모드가 자신의 캐시 메모리의 스와프 모드로 선택된다(스텝 S6). 한편, HDC 카드(21)에서는 미리 설정된 우선 순위에 따라서 HDD 장치(22)의 스와프 모드와 상이한 스와프 모드(LRU 모드)가 자신의 캐시 메모리의 스와프 모드로 선택된다(스텝 S7).
캐시 메모리의 스와프 모드를 선택하는 방법은 도 5에 도시된 시퀀스에 의해 행할 수도 있다. HDD 장치(22)는 디폴트의 스와프 모드(FIFO 모드)가 미리 설정되어 있는 것으로 한다.
컴퓨터 시스템이 기동되면, HDD 장치(22)에 디폴트로 설정되어 있는 스와프 모드(FIFO 모드)가 HDD 장치(22)로부터 HDC 카드(21)로 전송된다(스텝 S11). HDC 카드(21)에서는 HDD 장치(22)의 스와프 모드가 전송되면(스텝 S12), 미리 설정된 우선 순위에 따라서 HDD 장치(22)의 스와프 모드와 상이한 스와프 모드(LFU 모드)가 자신의 캐시 메모리의 스와프 모드로 선택된다(스텝 S13).
또한, HDC 카드(21)가 HDD 장치(22)의 디폴트의 스와프 모드와 상이한 스와프 모드를 갖지 않을 경우에는, 그 취지를 HDC 카드(21)로부터 HDD 장치(22)로 전송하고, HDD 장치(22)가 디폴트의 스와프 모드와 상이한 스와프 모드를 선택하도록 구성할 수도 있다.
또, 도 4의 예에 있어서는 HDC 카드(21)가 스와프 모드의 결정권을 갖지만, HDC 카드(21)와 HDD 장치(22)와의 입장을 치환하여, HDD 장치(22)가 스와프 모드의 결정권을 갖도록 구성할 수도 있다. 이 경우, 스와프 모드의 결정권을 갖고 있지 않는 장치는 적어도 하나의 스와프 모드를 가지면 좋다. 또한, 도 5의 예에 있어서도 HDC 카드(21)와 HDD 장치(22)와의 입장을 치환하여, HDC 카드(21)가 디폴트의 스와프 모드를 HDD 장치(22)로 전송하도록 구성할 수도 있다.
이와 같이, 컴퓨터 시스템의 기동시에 HDC 카드(21)의 캐시 메모리(상위의 캐시 메모리)와 HDD 장치(22)의 캐시 메모리(하위의 캐시 메모리)와의 사이에서 스와프 모드를 송수신하고, 서로 상이한 스와프 모드를 선택할 수 있다. 따라서, 각각의 캐시 메모리에 최적의 스와프 모드를 선택할 수 있다.
또한, 스와프 모드를 선택하는 동작은 전술한 동작으로 한정하는 것이 아니라, 여러 가지 방법에 의해 실현할 수 있다. 예컨대, 한쪽의 캐시 메모리가 자신이 선택 불가능한 스와프 모드를 다른 쪽의 캐시 메모리로 전송하고, 다른 쪽의 캐시 메모리가 전송된 스와프 모드 중에서 자신의 스와프 모드를 선택하도록 구성할 수도 있다.
실시예 2.
본 발명에 따른 실시예 2의 캐시 메모리의 방법은 상위 및 하위의 캐시 메모리에 공통의 데이터를 유지하지 않도록 하는 것으로서, 구체적으로는 하위의 캐시 메모리로부터 상위의 캐시 메모리로 전송된 데이터를 하위의 캐시 메모리로부터 소거하는 것이다. 이것에 의해, 하위의 캐시 메모리에 한층 더 효율이 양호하게 데이터를 유지할 수 있다.
도 6은 본 발명에 따른 실시예 2의 컴퓨터 시스템의 개략적인 구성을 도시한 도면이다.
또, 도 1에 도시된 실시예 1의 컴퓨터 시스템의 각 부분과 동일한 구성 요소에는 동일한 부호를 병기하고, 그 설명을 생략한다.
도 6에 도시된 바와 같이, 확장 버스(20)에는 제2 브리지 회로(71)가 접속되어 있다. 제2 브리지 회로(71)에는 버스(70)를 통해 도시 생략된 주변 장치가 접속 가능하게 되고, 버스(74a)를 통해 HDD 장치(72)가 접속되고, 버스(74b)를 통해 CD-ROM 장치(73)가 접속되어 있다. 버스(70)는 예컨대 ISA(Industry Standard Architecture) 버스로 구성되어 있다. 버스(74a, 74b)는 예컨대 ATA(AT Attachment)/ATAPI(ATA packet interface)버스에 의해 구성되어 있다.
제2 브리지 회로(71)는 확장 버스(20)와 규격이 상이한 확장 버스에 주변 장치를 접속하기 위해서 설치되어 있다. 제2 브리지 회로(71)는 PCI 버스 인터페이스, 인터럽트 컨트롤러, DMA(direct memory access) 컨트롤러, ISA 버스 인터페이스 등의 기능을 갖는다. 또, 버스(70)는 ISA 버스로 한정하지 않으며, 버스(74a, 74b)는 ATA/ATAPI 버스로 한정하지 않는다.
메인 메모리(15)는 CPU(11)의 명령에 따라서 HDD 장치(72)와의 사이에서 데이터를 송수신한다. 이 메인 메모리(15)에는 HDD 장치(72)에 기억되는 데이터의 일부를 유지하기 위한 디스크 캐시(16)가 설치되어 있다. 디스크 캐시(16)는 HDD 장치(72)에 설치된 디스크 캐시(75)에 대해 상위의 캐시 메모리에 상당한다. 디스크 캐시(16)는, 예컨대 수 M ∼ 수십 MB의 기억 용량을 갖는다. 캐시 제어는 제1 브리지 회로(14)에 설치된 메인 메모리 컨트롤러(17)에 의해 행해진다.
메인 메모리(15)의 디스크 캐시(16)[정확하게는 메인 메모리 컨트롤러(17)]는 CPU(11)로부터 요구된 데이터가 유지되어 있지 않을 때, CPU(11)로부터 요구된 데이터와, CPU(11)로부터 다음 회(次回)에 요구되는 것으로 예측되는 데이터를 포함하는 데이터를 HDD 장치(72)에 요구하고, 이 요구에 따라서 HDD 장치(72)로부터 전송된 데이터를 유지한다. 다음 회에 요구되는 것으로 예측되는 데이터로서는, 예컨대 CPU(11)로부터 전회(前回)에 요구된 데이터나 CPU(11)로부터 요구된 데이터의 사전 판독(Look Ahead) 데이터가 사용된다.
HDD 장치(72)는 도 1에 도시된 HDD 장치(22)와 동일한 구성이고, 하위의 캐시 메모리의 기능을 갖는 디스크 캐시(75)를 구비하지만, 캐시 제어 방법이 HDD 장치(22)의 디스크 캐시(54)의 캐시 제어 방법과 상이하다. 디스크 캐시(75)는 HDD 장치(72)로부터 판독된 데이터를 소거하도록 구성되어 있다. 디스크 캐시(75)는 예컨대 수 M ∼ 수십 MB(byte)의 기억 용량을 갖는다.
HDD 장치(72)의 디스크 캐시(75)[정확하게는 도시생략된 캐시 컨트롤러]는 메인 메모리(15)로부터 요구된 데이터가 유지되고 있지 않을 때, 메인 메모리(15)로부터 요구된 데이터와, 메인 메모리(15)로부터 다음 회에 요구되는 것으로 예측되는 데이터를 포함하는 데이터를 자기 디스크(41)로부터 독출한다. 디스크 캐시(75)는 먼저 메인 메모리(15)로부터 요구된 데이터를 유지하고, 유지된 데이터를 메인 메모리(15)로 전송한다. 디스크 캐시(75)는 메인 메모리(15)로부터 요구된 데이터가 메인 메모리(15)로 전송되면, 해당 데이터를 소거하고, 메인 메모리(15)로부터 다음 회에 요구되는 것으로 예측되는 예측 데이터를 유지한다. 다음 회에 요구되는 것으로 예측되는 데이터로서는, 예컨대 메인 메모리(15)로부터 요구된 데이터의 사전 판독 데이터가 사용된다.
또한, 본원 명세서에서의「소거」란 메인 메모리로 전송된 데이터를 단순히 소거하는 것 뿐만 아니라, 예컨대 상기 데이터와 동시에 메모리 관리 영역에 유지되는 상기 데이터의 제어 데이터(태그, 유효 플래그 등)의 내용을 갱신하고, 이들 영역을 빈 영역으로서 지정하는 등의 상기 데이터의 소거와 관련된 처리를 포함한다.
도 7은 캐시 메모리의 데이터 유지 동작의 일례를 도시한 도면이다.
메인 메모리(15)의 디스크 캐시(16)(호스트 장치의 캐시 메모리) 및 HDD 장치(72)의 디스크 캐시(75)(하위 장치의 캐시 메모리)에는 CPU(11)(응용 프로그램)로부터 요구되는 데이터가 유지되고 있지 않은 것으로 한다.
응용 프로그램으로부터 메인 메모리(15)로 데이터가 요구되면, 메인 메모리(15)의 디스크 캐시(16)에서는 캐시 오적중이 발생되기 때문에 응용 프로그램으로부터 요구된 데이터와, 응용 프로그램으로부터 다음 회에 요구되는 것으로 예측되는 데이터를 포함하는 데이터 A가 HDD 장치(72)에 요구된다. HDD 장치(72)의 디스크 캐시(75)에서는 캐시 오적중이 발생되기 때문에, 메인 메모리(15)로부터 요구된 데이터 A가 자기 디스크(41)로부터 판독되어 디스크 캐시(75)에 유지되고, 또, 메인 메모리(15)로 전송된다. 이것에 의해, 메인 메모리(15)의 디스크 캐시(16)에는 데이터 A가 유지된다.
또한, HDD 장치(72)에서는 데이터 A가 메인 메모리(15)로 전송되면, 해당 데이터 A가 디스크 캐시(75)로부터 소거된다. 이어서, 호스트 장치에서는 전송된 데이터 A에 연속되는 어드레스의 데이터 B가 자기 디스크(41)로부터 판독되어 디스크 캐시(75)에 유지된다.
도 12에 도시된 종래의 데이터 판독 방법과 비교하면, 종래의 HDD 장치의 캐시 메모리에는 호스트 장치로부터 요구된 데이터 D3과, 이 데이터 D3에 연속되는 어드레스의 데이터 4(사전 판독 데이터)가 유지된다. 이에 대해, 실시예 2의 HDD 장치의 캐시 메모리에는 호스트 장치로부터 요구된 데이터 A는 유지되지 않고, 데이터 A에 연속되는 어드레스의 데이터 B(사전 판독 데이터)가 유지된다.
이 때문에, 쌍방의 기억 용량이 동일한 경우, 종래의 HDD 장치보다도 실시예 1의 HDD 장치의 캐시 메모리의 쪽이 보다 많은 사전 판독 데이터를 유지할 수 있다. 도 12에 있어서, 데이터 B1은 종래의 HDD 장치의 캐시 메모리에 유지할 수 있는 사전 판독 데이터 D4를 의미하며, 데이터 B2는 데이터 A가 캐시 메모리로부터 소거됨으로써 자기 디스크로부터 판독되는 데이터 B1에 연속되는 사전 판독 데이터를 의미한다. 이것에 의해, 데이터의 공간적인 국소성을 이용하여 캐시 메모리의 적중률을 향상시킬 수 있다. 따라서, 캐시 메모리에 효율이 양호하게 데이터를 유지할 수 있다.
또, 데이터의 국소성에는 시간적인 국소성과 공간적인 국소성이 있다. 시간적인 국소성이란 동일한 어드레스의 데이터가 반복 액세스될 가능성이 높은 것을 의미한다. 공간적인 국소성이란 액세스된 데이터 근처의 어드레스에 존재하는 데이터가 액세스될 가능성이 높은 것을 의미한다.
도 8∼도 11은 캐시 메모리의 데이터 유지 동작의 다른 예를 도시하는 도면이다.
도 8에 도시된 바와 같이, 메인 메모리(15)의 디스크 캐시(16)는 응용 프로그램으로부터 다음 회에 요구되는 것으로 예측되는 데이터로서, 응용 프로그램으로부터 전회에 요구된 데이터 A2를 사용한다. 이것에 의해, 데이터의 시간적인 국소성을 이용하여 디스크 캐시(16)의 적중률을 향상시킬 수 있다.
도 9에 도시된 바와 같이, 메인 메모리(15)의 디스크 캐시(16)는 응용 프로그램으로부터 다음 회에 요구되는 것으로 예측되는 데이터로서, 응용 프로그램으로부터 요구된 데이터 A1의 사전 판독 데이터 A2를 사용한다. 이것에 의해, 데이터의 공간적인 국소성을 이용하여 디스크 캐시(16)의 적중률을 향상시킬 수 있다.
도 10의 예에서는 메인 메모리(15)의 디스크 캐시(16)는 복수의 세그먼트(Segment), 예컨대 세그먼트 1, 세그먼트 2 및 세그먼트 3의 3개의 세그먼트를 갖는다. 세그먼트 1, 세그먼트 2 및 세그먼트 3에는 응용 프로그램으로부터 순차적으로 발행되는 커맨드(command)에 의해, HDD 장치(72)에 요구된 데이터가 반복해서 유지된다.
세그먼트 1에는 응용 프로그램의 커맨드 1에 의해 요구된 데이터 A1과, 데이터 A1의 사전 판독 데이터 A2가 유지되어 있다. 세그먼트 2에는 응용 프로그램의 커맨드 2에 의해 요구된 데이터 A3과, 데이터 A3의 사전 판독 데이터 A4가 유지되어 있다. 세그먼트 3에는 응용 프로그램의 커맨드 3에 의해 요구된 데이터 A5와, 데이터 A5의 사전 판독 데이터 A6이 유지되어 있다. 이와 같이, 캐시 메모리를 복수의 세그먼트에 의해 구성함으로써 데이터의 시간적인 국소성을 이용하여 디스크 캐시(16)의 적중률을 향상시킬 수 있다.
한편, HDD 장치(72)의 디스크 캐시(75)에는 메인 메모리(15)로부터 요구된 가장 최근의 데이터 A5 및 A6의 사전 판독 데이터 B가 유지되어 있다. 이것에 의해, 데이터의 공간적인 국소성을 이용하여 디스크 캐시(75)의 적중률을 향상시킬 수 있다.
도 11의 예에서는 HDD 장치(72)의 디스크 캐시(75)도 복수의 세그먼트, 예컨대 세그먼트 1, 세그먼트 2 및 세그먼트 3의 3개의 세그먼트를 갖는다. 메인 메모리(15)의 디스크 캐시(16)의 세그먼트 1, 세그먼트 2 및 세그먼트 3의 각각에는 응용 프로그램으로부터 순차적으로 요구된 커맨드 1, 커맨드 2 및 커맨드 3에 대응하여 HDD 장치(72)에 요구된 데이터 A1, A2 및 A 3가 유지되어 있다. HDD 장치(72)의 디스크 캐시(75)의 세그먼트 1, 세그먼트 2 및 세그먼트 3의 각각에는 메인 메모리(15)로부터 요구된 데이터 A1, A2 및 A3의 각각의 사전 판독 데이터 C1, C2 및 C3가 유지되어 있다. 이것에 의해, 데이터의 시간적인 국소성을 이용하여 디스크 캐시(75)의 적중률을 향상시킬 수 있다.
또, 복수의 세그먼트를 배치하는 방법은 이것으로 한정하지 않으며, 예컨대 다이렉트·맵핑(direct mapping), 풀·어소시어티부(full associative), 세트·어소시어티브(set associative) 등의 종래부터 잘 알려진 방법을 채용할 수도 있다. 또한, 각 세그먼트의 크기는 고정 길이로 한정하는 것이 아니며, 가변 길이로 할 수도 있다.
또, 실시예 2에서는 메인 메모리(15)의 디스크 캐시(16)(상위의 캐시 메모리) 및 HDD 장치(72)의 디스크 캐시(75)(하위의 캐시 메모리)의 2 단계의 기억 계층에 있어서 하위의 캐시 메모리가 상위의 캐시 메모리로 전송된 데이터를 유지하지 않도록 하고 있다. 이에 대해, 실시예 1과 같이, 메인 메모리, 확장 카드 및 HDD 장치의 3 단계의 기억 계층의 경우에는, 예컨대 확장 카드로부터 메인 메모리로 전송된 데이터를 확장 카드의 캐시 메모리가 유지하지 않으며, HDD 장치로부터 확장 카드로 전송된 데이터를 HDD 장치의 캐시 메모리가 유지하지 않도록 할 수 있다.
또한, 실시예 1 및 2에서는 HDD 장치를 최하위의 데이터 기억 장치로 하고 있지만, 최하위의 데이터 기억 장치는 HDD 장치로 한정하지 않으며, 예컨대 자기 테이프 장치, 광 자기 디스크 장치 등의 디스크 장치라도 좋다.
본 발명은 특히, 캐시 메모리를 갖는 주변 장치에 적합하다. 일반적으로, 1차 캐시, 2차 캐시 및 메인 메모리는 미리 컴퓨터의 마더 보드에 실장되기 때문에, 이들 메모리간의 데이터 전송 방법은 통합된 시스템으로서 최적의 설계로 되어 있다. 이에 대하여, 확장 카드, HDD 장치 등의 종래의 주변 장치는 일반적으로 개별적으로 설계되기 때문에, 반드시 상위의 기억 계층과의 관계에 있어서 최적의 설계로 이루어지는 것은 아니다. 본 발명은 하위의 캐시 메모리를 가능한 한 상위의 캐시 메모리와 중복된 데이터를 유지하지 않도록 함으로서, 데이터의 국소성을 이용하여 하위의 캐시 메모리의 적중률을 향상시킬 수 있다. 따라서, 상위의 기억 계층과의 관계에 있어서 최적의 데이터 전송 방법을 실현할 수 있다.
또한, 본 발명은 상위 및 하위의 캐시 메모리가 동일한 정도의 기억 용량을 갖는 경우에 가장 효과를 발휘한다. 상위 캐시 메모리의 기억 용량에 대한 하위의 캐시 메모리의 기억 용량이 극단적으로 클 경우에는, 상위의 캐시 메모리에 유지된 데이터와 동일한 데이터를 하위의 캐시 메모리가 유지하더라도 하위의 캐시 메모리의 기억 용량에 대한 상기 동일한 데이터의 비율은 작기 때문이다.
이에 대해, 상위 및 하위의 캐시 메모리가 각각 동일한 정도의 기억 용량을 갖는 경우에는, 상위의 캐시 메모리에 유지된 데이터와 동일한 데이터를 하위의 캐시 메모리가 유지하면, 하위의 캐시 메모리의 기억 용량에 대한 상기 동일한 데이터의 비율이 크게 된다. 따라서, 상위의 캐시 메모리로 전송된 데이터 대신에, 사전 판독 데이터 등의 다른 데이터를 유지하여, 적중률을 향상시키는 효과가 상대적으로 크게 된다.
본 발명에 따르면, 상위 및 하위의 디스크 캐시를, 각각 상이한 스와프 모드로 동작시킬 수 있다. 이것에 의해, 상위의 디스크 캐시에 유지된 데이터를 하위의 디스크 캐시가 유지할 가능성을 작게 할 수 있기 때문에, 각각의 디스크 캐시에 효율이 양호하게 데이터를 유지시킬 수 있다.
또한, 본 발명에 따르면, CPU 측의 회로에 있는 호스트 장치로부터 하위의 디스크 캐시로 데이터의 전송이 요구되었을 때, 이 요구에 따라서 호스트 장치로 전송된 데이터가 하위의 디스크 캐시로부터 소거된다. 혹은, 상위의 디스크 캐시로부터 하위의 디스크 캐시로 데이터의 전송이 요구되었을 때, 이 요구에 따라서 상위의 디스크 캐시로 전송된 데이터가 하위의 디스크 캐시 메모리로부터 소거된다. 이것에 의해, 하위의 디스크 캐시에 한층 더 효율이 양호하게 데이터를 유지시킬 수 있다.

Claims (34)

  1. 확장 버스에 임의의 주변 장치를 확장시켜 접속하기 위한 주변 장치 접속 수단과,
    상기 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 상위의 디스크 캐시와,
    상기 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 상기 상위의 디스크 캐시로의 기억과 판독을 제어하고, 복수 종류의 스와프 모드로 동작 가능한 상위의 캐시 제어 기능을 포함하는 상위의 하드 디스크 제어 기능을 가진 상위의 제어 수단과,
    상기 주변 장치 접속 수단과 접속되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 하위의 디스크 캐시와, 상기 하위의 디스크 캐시로의 기억과 판독을 제어하고, 적어도 1 종류의 스와프 모드로 동작 가능한 하위의 캐시 제어 장치를 포함하는 하위의 하드 디스크 제어 장치를 가진 하드 디스크 드라이브 장치를 구비한 컴퓨터 시스템에서,
    시스템의 기동시에, 하위의 하드 디스크 제어 장치에서는, 상위의 제어 수단을 향하여, 하위의 캐시 제어 장치가 선택 가능한 적어도 1 종류의 스와프 모드를 송신하고,
    상위의 제어 수단에서는, 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하는 것을 특징으로 하는 디스크 캐시의 제어 방법.
  2. 제1항에 있어서, 시스템의 기동시에, 하위의 하드 디스크 제어 장치에서는, 1 종류의 스와프 모드를 송신하는 동시에, 송신한 스와프 모드를 선택하는 것을 특징으로 하는 디스크 캐시의 제어 방법.
  3. 제1항에 있어서, 시스템의 기동시에, 하위의 하드 디스크 제어 장치에서는, 복수 종류의 스와프 모드를 송신하고,
    상위의 제어 수단에서는, 선택한 스와프 모드를 하위의 하드 디스크 제어 장치로 송신하고,
    하위의 하드 디스크 제어 장치에서는, 상위의 제어 수단으로부터 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하는 것을 특징으로 하는 디스크 캐시의 제어 방법.
  4. 확장 버스에 임의의 주변 장치를 확장시켜 접속하기 위한 주변 장치 접속 수단과,
    상기 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 상위의 디스크 캐시와,
    상기 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 상기 상위의 디스크 캐시로의 기억과 판독을 제어하고, 복수 종류의 스와프 모드로 동작 가능한 상위의 캐시 제어 기능을 포함하는 상위의 하드 디스크 제어 기능을 가진 상위의 제어 수단과,
    상기 주변 장치 접속 수단과 접속되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 하위의 디스크 캐시와, 상기 하위의 디스크 캐시로의 기억과 판독을 제어하고, 적어도 1 종류의 스와프 모드로 동작 가능한 하위의 캐시 제어 장치를 포함하는 하위의 하드 디스크 제어 장치를 가진 하드 디스크 드라이브 장치를 구비한 컴퓨터 시스템에서,
    시스템의 기동시에, 하위의 하드 디스크 제어 장치에서는, 상위의 제어 수단을 향하여, 하위의 캐시 제어 장치가 선택 가능한 복수 종류의 스와프 모드를 송신하고,
    상위의 제어 수단에서는, 송신한 스와프 모드로부터 1 종류의 스와프 모드를 선택하고 상기 스와프 모드를 하위의 하드 디스크 제어 장치로 송신하고,
    하위의 하드 디스크 제어 장치에서는, 상위의 제어 수단으로부터 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하는 것을 특징으로 하는 디스크 캐시의 제어 방법.
  5. 확장 버스에 임의의 주변 장치를 확장시켜 접속하기 위한 주변 장치 접속 수단과,
    상기 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 상위의 디스크 캐시와,
    상기 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 상기 상위의 디스크 캐시로의 기억과 판독을 제어하고, 적어도 1 종류의 스와프 모드로 동작 가능한 상위의 캐시 제어 기능을 포함하는 상위의 하드 디스크 제어 기능을 가진 상위의 제어 수단과,
    상기 주변 장치 접속 수단과 접속되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 하위의 디스크 캐시와, 상기 하위의 디스크 캐시로의 기억과 판독을 제어하고, 복수 종류의 스와프 모드로 동작 가능한 하위의 캐시 제어 장치를 포함하는 하위의 하드 디스크 제어 장치를 가진 하드 디스크 드라이브 장치를 구비한 컴퓨터 시스템에서,
    시스템의 기동시에, 상위의 제어 수단에서는, 하위의 하드 디스크 제어 장치를 향하여, 상위의 캐시 제어 장치가 선택 가능한 적어도 1 종류의 스와프 모드를 송신하고,
    하위의 하드 디스크 제어 장치에서는, 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하는 것을 특징으로 하는 디스크 캐시의 제어 방법.
  6. 제5항에 있어서, 시스템의 기동시에, 상위의 제어 수단에서는, 1 종류의 스와프 모드를 송신하는 동시에, 상기 송신한 스와프 모드를 선택하는 것을 특징으로 하는 디스크 캐시의 제어 방법.
  7. 제5항에 있어서, 시스템의 기동시에, 상위의 제어 수단은, 복수 종류의 스와프 모드를 송신하고,
    하위의 하드 디스크 제어 장치에서는, 선택한 스와프 모드를 상위의 제어 수단으로 송신하고,
    상위의 제어 수단에서는, 하위의 하드 디스크 제어 장치로부터 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하는 것을 특징으로 하는 디스크 캐시의 제어 방법.
  8. 확장 버스에 임의의 주변 장치를 확장시켜 접속하기 위한 주변 장치 접속 수단과,
    상기 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 상위의 디스크 캐시와,
    상기 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 상기 상위의 디스크 캐시로의 기억과 판독을 제어하고, 복수 종류의 스와프 모드로 동작 가능한 상위의 캐시 제어 기능을 포함하고, 상기 복수 종류로부터 1 종류의 스와프 모드를 선택하는 상위의 하드 디스크 제어 기능을 가진 상위의 제어 수단과,
    상기 주변 장치 접속 수단과 접속되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 하위의 디스크 캐시와, 상기 하위의 디스크 캐시로의 기억과 판독을 제어하고, 적어도 1 종류의 스와프 모드로 동작 가능한 하위의 캐시 제어 장치를 포함하고, 시스템 기동시에 상위의 제어 수단을 향하여 하위의 캐시 제어 장치가 선택 가능한 적어도 1 종류의 스와프 모드를 송신하는 하위의 하드 디스크 제어 장치를 가진 하드 디스크 드라이브 장치를 구비하는 것을 특징으로 하는 컴퓨터 시스템.
  9. 제8항에 있어서, 하위의 하드 디스크 제어 장치는, 시스템의 기동시에 1 종류의 스와프 모드를 송신하고, 상기 송신한 스와프 모드를 선택하는 것을 특징으로 하는 컴퓨터 시스템.
  10. 제8항에 있어서, 하위의 하드 디스크 제어 장치는, 시스템의 기동시에 복수 종류의 스와프 모드를 송신하고, 상위의 제어 수단으로부터 스와프 모드를 수신한 후, 상기 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하고,
    상위의 제어 수단은, 하위의 하드 디스크 제어 장치로부터 수신한 복수 종류의 스와프 모드를 수신한 후, 상기 복수 종류의 스와프 모드로부터 1 종류의 스와프 모드를 선택하고, 상기 선택한 스와프 모드를 하위의 하드 디스크 제어 장치로 송신하는 것을 특징으로 하는 컴퓨터 시스템.
  11. 확장 버스에 임의의 주변 장치를 확장시켜 접속하기 위한 주변 장치 접속 수단과,
    상기 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 상위의 디스크 캐시와,
    상기 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 상기 상위의 디스크 캐시로의 기억과 판독을 제어하고, 복수 종류의 스와프 모드로 동작 가능한 상위의 캐시 제어 기능을 포함하고, 하위의 하드 디스크 제어 장치로부터 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 상기 복수 종류로부터 선택하고, 상기 선택한 스와프 모드를 하위의 하드 디스크 제어 장치로 송신하는 상위의 하드 디스크 제어 기능을 가진 상위의 제어 수단과,
    상기 주변 장치 접속 수단과 접속되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 하위의 디스크 캐시와, 상기 하위의 디스크 캐시로의 기억과 판독을 제어하고, 적어도 1 종류의 스와프 모드로 동작 가능한 하위의 캐시 제어 장치를 포함하고, 시스템 기동시에 상위의 제어 수단을 향하여 하위의 캐시 제어 장치가 선택 가능한 적어도 1 종류의 스와프 모드를 송신하고, 상위의 제어 수단으로부터 스와프 모드를 수신한 후, 상기 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하는 하위의 하드 디스크 제어 장치를 가진 하드 디스크 드라이브 장치를 구비하는 것을 특징으로 하는 컴퓨터 시스템.
  12. 확장 버스에 임의의 주변 장치를 확장시켜 접속하기 위한 주변 장치 접속 수단과,
    상기 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 상위의 디스크 캐시와,
    상기 주변 장치 접속 수단으로부터 CPU 측의 회로에 배치되어, 상기 상위 디스크 캐시로의 기억과 판독을 제어하고, 적어도 1 종류의 스와프 모드로 동작 가능한 상위의 캐시 제어 기능을 포함하고, 시스템의 기동시에 하위의 하드 디스크 제어 장치를 향하여, 상위의 캐시 제어 장치가 선택 가능한 적어도 1 종류의 스와프 모드를 송신하는 상위의 하드 디스크 제어 기능을 가진 상위의 제어 수단과,
    상기 주변 장치 접속 수단과 접속되어, 하드 디스크 드라이브 장치로의 기록 데이터 혹은 판독 데이터를 유지하는 하위의 디스크 캐시와, 상기 하위의 디스크 캐시로의 기억과 판독을 제어하고, 복수 종류의 스와프 모드로 동작 가능하고, 상위의 제어 수단으로부터 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하는 하위의 캐시 제어 장치를 포함하는 하위의 하드 디스크 제어 장치를 가진 하드 디스크 드라이브 장치를 구비하는 것을 특징으로 하는 컴퓨터 시스템.
  13. 제12항에 있어서, 상위의 제어 수단은, 시스템의 기동시에 1 종류의 스와프 모드로 송신하는 동시에, 상기 송신한 스와프 모드를 선택하는 것을 특징으로 하는 컴퓨터 시스템.
  14. 제12항에 있어서, 상위의 제어 수단은, 시스템의 기동시에 복수 종류의 스와프 모드를 송신하고, 하위의 하드 디스크 제어 장치로부터 스와프 모드를 수신한 후, 상기 수신한 스와프 모드 이외의 1 종류의 스와프 모드를 선택하고,
    하위의 하드 디스크 제어 장치는, 선택한 스와프 모드를 상위의 제어 수단으로 송신하는 것을 특징으로 하는 컴퓨터 시스템.
  15. 제8항 내지 제14항 중 어느 한 항에 있어서, 하위의 하드 디스크 제어 장치는, 상위의 제어 수단으로부터 하위의 디스크 캐시의 데이터 전송이 요구될 때, 하위의 디스크 캐시로부터 전송한 데이터를 소거하고, 소거된 데이터의 뒤에, 상위의 제어 수단으로부터 요구되는 데이터에 기초하여, 상위의 제어 수단으로부터 다음번에 요구될 것으로 예측되는 데이터를 유지시키는 것을 특징으로 하는 컴퓨터 시스템.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 제1항 내지 제7항 중 어느 한 항에 있어서, 상위의 제어 수단으로부터 하위의 하드 디스크 제어 장치로 하위의 디스크 캐시의 데이터 전송이 요구될 때, 하위의 하드 디스크 제어 장치는, 하위의 디스크 캐시로부터 전송되는 데이터를 소거하는 것을 특징으로 하는 디스크 캐시 제어 방법.
  20. 제19항에 있어서, 하위의 하드 디스크 제어 장치는, 하위의 디스크 캐시의 소거되는 데이터의 뒤에, 상위의 제어 수단으로부터 요구되는 데이터에 기초하여, 상위의 제어 수단으로부터 다음번에 요구될 것으로 예측되는 데이터를 유지시키는 것을 특징으로 하는 디스크 캐시의 제어 방법.
  21. 제20항에 있어서, 상위의 제어 수단은, 데이터 전송이 요구되는 데이터가 상위의 디스크 캐시에 유지되어 있지 않을 때, 요구되는 데이터에 부가하여, 요구되는 데이터에 기초하여 다음번에 요구될 것으로 예측되는 데이터를 하위의 하드 디스크 제어 장치에 요구하고,
    하위의 하드 디스크 제어 장치는, 요구되는 데이터를 상위의 제어 수단으로 전송하는 동시에, 상기 요구되는 데이터에 기초하여 다음번에 요구될 것으로 예측되는 데이터를 유지하는 것을 특징으로 하는 디스크 캐시의 제어 방법.
  22. 제21항에 있어서, 상위의 제어 수단의 예측 데이터는, 이번에 요구되는 데이터에 기초하여 다음번에 요구될 것으로 예측되는 데이터이고,
    하위의 하드 디스크 제어 장치의 예측 데이터는, 상기 상위의 제어 수단의 예측 데이터를 포함하는 데이터에 기초하여 다음번에 요구될 것으로 예상되는 데이터인 것을 특징으로 하는 디스크 캐시의 제어 방법.
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 제15항에 있어서, 상위의 제어 수단은, 데이터 전송이 요구되는 데이터가 상위의 디스크 캐시에 유지되어 있지 않을 때, 요구되는 데이터에 부가하여, 요구되는 데이터에 기초하여 다음번에 요구될 것으로 예측되는 데이터를 하위의 하드 디스크 제어 장치에 요구하고,
    하위의 하드 디스크 제어 장치는, 요구되는 데이터를 상위의 제어 수단으로 전송하는 동시에, 상기 요구되는 데이터에 기초하여 다음번에 요구될 것으로 예측되는 데이터를 유지하는 것을 특징으로 하는 컴퓨터 시스템.
  28. 제8항 내지 제14항 중 어느 한 항에 있어서, 상위의 디스크 캐시는, 상기 주변 장치 접속 수단에 내장되는 디스크 캐시이고,
    상위의 제어 수단은, 상기 주변 장치 접속 수단에 내장되고, 상위의 캐시 제어 장치를 포함하는 상위의 하드 디스크 제어 장치인 것을 특징으로 하는 컴퓨터 시스템.
  29. 제8항 내지 제14항 중 어느 한 항에 있어서, 상위의 디스크 캐시는, CPU가 가진 캐시이거나, 혹은, CPU에 접속된 캐시이고,
    상위의 제어 수단은, CPU 자체인 것을 특징으로 하는 컴퓨터 시스템.
  30. 제8항 내지 제14항 중 어느 한 항에 있어서, 상위의 디스크 캐시는, CPU와 확장 버스를 접속하기 위한 브릿지 회로에 접속된 메인 메모리 내의 캐시이고,
    상위의 제어 수단은, 상기 브릿지 회로 내의 메인 메모리 제어 장치인 것을 특징으로 하는 컴퓨터 시스템.
  31. 제8항 내지 제14항 중 어느 한 항에 있어서, 상기 주변 장치 접속 수단은, 확장 버스에 임의의 주변 장치를 확장시켜 접속하기 위한 확장 카드인 것을 특징으로 하는 컴퓨터 시스템.
  32. 제8항 내지 제14항 중 어느 한 항의 컴퓨터 시스템에 사용되는 것을 특징으로 하는 하드 디스크 드라이브 장치.
  33. 제32항의 하드 디스크 드라이브 장치에 사용되는 것을 특징으로 하는 하드 디스크 제어 장치.
  34. 제30항에 있어서, 상기 주변 장치 접속 수단은, 확장 버스에 임의의 주변 장치를 확장시켜 접속하기 위한 제2의 브릿지 회로인 것을 특징으로 하는 컴퓨터 시스템.
KR10-2000-0058696A 1999-10-15 2000-10-06 캐시 메모리의 제어 방법, 컴퓨터 시스템, 하드 디스크드라이브 장치 및 하드 디스크 제어 장치 KR100388338B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP29390999A JP3568110B2 (ja) 1999-10-15 1999-10-15 キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置
JP99-293909 1999-10-15

Publications (2)

Publication Number Publication Date
KR20010050881A KR20010050881A (ko) 2001-06-25
KR100388338B1 true KR100388338B1 (ko) 2003-06-25

Family

ID=17800734

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0058696A KR100388338B1 (ko) 1999-10-15 2000-10-06 캐시 메모리의 제어 방법, 컴퓨터 시스템, 하드 디스크드라이브 장치 및 하드 디스크 제어 장치

Country Status (5)

Country Link
US (1) US6629200B1 (ko)
JP (1) JP3568110B2 (ko)
KR (1) KR100388338B1 (ko)
DE (1) DE10050171B4 (ko)
SG (1) SG90174A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003076498A (ja) * 2001-09-05 2003-03-14 Hitachi Ltd ディスク記憶装置
US7688863B2 (en) * 2001-10-19 2010-03-30 Renesas Technology America, Inc. Methods and apparatus for sharing network bandwidth
JP2003216491A (ja) 2002-01-23 2003-07-31 Hitachi Ltd 階層キャッシュ制御方法
FR2846114A1 (fr) * 2002-10-16 2004-04-23 Thomson Licensing Sa Dispositif de memorisation d'une liste d'elements et procede de memorisation d'un element dans un tel dispositif
JP2005267546A (ja) * 2004-03-22 2005-09-29 Hitachi Ltd ディスク制御装置、及びディスク制御装置におけるネットワーク接続ストレージの接続管理方式
US7634615B2 (en) * 2004-06-10 2009-12-15 Marvell World Trade Ltd. Adaptive storage system
US7966450B2 (en) * 2005-09-01 2011-06-21 Micron Technology, Inc. Non-volatile hard disk drive cache system and method
KR100876841B1 (ko) 2006-08-22 2009-01-07 엘지전자 주식회사 캐쉬 메모리 탑재형 컴퓨터 및 그 제어 방법
KR101128234B1 (ko) * 2006-08-23 2012-03-23 엘지전자 주식회사 메모리 접근 제어 장치 및 방법
US8370294B2 (en) * 2009-05-06 2013-02-05 Microsoft Corporation File stashing for storage media
US9053060B2 (en) 2009-09-29 2015-06-09 Canon Kabushiki Kaisha Information processing apparatus having file system consistency recovery function, and control method and storage medium therefor
US8990502B2 (en) 2010-11-23 2015-03-24 International Business Machines Corporation Write cache structure in a storage system
US9098397B2 (en) * 2011-04-04 2015-08-04 International Business Machines Corporation Extending cache for an external storage system into individual servers
WO2014147840A1 (ja) * 2013-03-22 2014-09-25 富士通株式会社 アクセス制御プログラム、ディスク装置及びアクセス制御方法
JP6203592B2 (ja) * 2013-10-07 2017-09-27 株式会社日立製作所 計算機システム、キャッシュ管理方法及び計算機
US9478274B1 (en) 2014-05-28 2016-10-25 Emc Corporation Methods and apparatus for multiple memory maps and multiple page caches in tiered memory
US9535844B1 (en) 2014-06-30 2017-01-03 EMC IP Holding Company LLC Prioritization for cache systems
US10235054B1 (en) * 2014-12-09 2019-03-19 EMC IP Holding Company LLC System and method utilizing a cache free list and first and second page caches managed as a single cache in an exclusive manner
JP6194875B2 (ja) 2014-12-11 2017-09-13 日本電気株式会社 キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02114345A (ja) * 1988-10-24 1990-04-26 Nec Corp キャッシュメモリ制御方式
JPH0588976A (ja) * 1991-09-30 1993-04-09 Pfu Ltd キヤツシユ記憶装置及びそれを用いた情報処理装置とその情報処理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4928239A (en) * 1986-06-27 1990-05-22 Hewlett-Packard Company Cache memory with variable fetch and replacement schemes
JP2637788B2 (ja) * 1988-09-02 1997-08-06 株式会社日立製作所 ディスクキャッシュ制御方式および情報処理システム
JPH03122737A (ja) 1989-10-05 1991-05-24 Nec Corp ページング方式
US5386547A (en) * 1992-01-21 1995-01-31 Digital Equipment Corporation System and method for exclusive two-level caching
US5564035A (en) * 1994-03-23 1996-10-08 Intel Corporation Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein
US5809280A (en) * 1995-10-13 1998-09-15 Compaq Computer Corporation Adaptive ahead FIFO with LRU replacement
US6571324B1 (en) * 1997-06-26 2003-05-27 Hewlett-Packard Development Company, L.P. Warmswap of failed memory modules and data reconstruction in a mirrored writeback cache system
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
JPH11110139A (ja) * 1997-09-26 1999-04-23 Internatl Business Mach Corp <Ibm> データ読み取り方法及びデータ読み取り装置
US6243795B1 (en) * 1998-08-04 2001-06-05 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Redundant, asymmetrically parallel disk cache for a data storage system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02114345A (ja) * 1988-10-24 1990-04-26 Nec Corp キャッシュメモリ制御方式
JPH0588976A (ja) * 1991-09-30 1993-04-09 Pfu Ltd キヤツシユ記憶装置及びそれを用いた情報処理装置とその情報処理方法

Also Published As

Publication number Publication date
JP3568110B2 (ja) 2004-09-22
US6629200B1 (en) 2003-09-30
DE10050171A1 (de) 2001-04-19
JP2001117817A (ja) 2001-04-27
KR20010050881A (ko) 2001-06-25
SG90174A1 (en) 2002-07-23
DE10050171B4 (de) 2006-01-05

Similar Documents

Publication Publication Date Title
KR100388338B1 (ko) 캐시 메모리의 제어 방법, 컴퓨터 시스템, 하드 디스크드라이브 장치 및 하드 디스크 제어 장치
JP4163461B2 (ja) キャッシュ・バッファ制御方法及び制御装置
US8117374B2 (en) Flash memory control devices that support multiple memory mapping schemes and methods of operating same
US6606714B1 (en) Disk drive using defect list to perform uninterrupted writing of non-relocated data blocks and caching of relocated data blocks for deferred writing
JP3898782B2 (ja) 情報記録再生装置
US5742933A (en) Rotary memory storage device with cache control method and apparatus
EP1729218A1 (en) Nonvolatile storage system
JP2009020986A (ja) ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法
JP2001166993A (ja) 記憶制御装置およびキャッシュメモリの制御方法
US20080025706A1 (en) Information recording apparatus and control method thereof
US20100088466A1 (en) Storage device, storage control device, and control method
US7913029B2 (en) Information recording apparatus and control method thereof
US7487298B2 (en) Disk array device, method for controlling the disk array device and storage system
JPH06236241A (ja) フラッシュメモリを用いたハードディスク装置
KR19980029917A (ko) 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법
US7069409B2 (en) System for addressing a data storage unit used in a computer
US6532513B1 (en) Information recording and reproduction apparatus
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法
JP2007102436A (ja) ストレージ制御装置およびストレージ制御方法
KR20070060301A (ko) 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버
JPH11282765A (ja) フラッシュメモリを使用した外部記憶装置
JP3969809B2 (ja) 記憶装置におけるデータバッファの管理方法
US20060143378A1 (en) Information processing apparatus and control method for this information processing apparatus
JP2003150445A (ja) 外部記憶装置を有するコンピュータシステム
JPH0511933A (ja) ハードデイスクエミユレータ及びその固定キヤツシユエリア割付方法

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

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee