KR100339904B1 - 캐시 프로세스용 시스템 및 방법 - Google Patents

캐시 프로세스용 시스템 및 방법 Download PDF

Info

Publication number
KR100339904B1
KR100339904B1 KR1019990057909A KR19990057909A KR100339904B1 KR 100339904 B1 KR100339904 B1 KR 100339904B1 KR 1019990057909 A KR1019990057909 A KR 1019990057909A KR 19990057909 A KR19990057909 A KR 19990057909A KR 100339904 B1 KR100339904 B1 KR 100339904B1
Authority
KR
South Korea
Prior art keywords
cache
full
set associative
memory
cache memory
Prior art date
Application number
KR1019990057909A
Other languages
English (en)
Other versions
KR20000052480A (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 KR20000052480A publication Critical patent/KR20000052480A/ko
Application granted granted Critical
Publication of KR100339904B1 publication Critical patent/KR100339904B1/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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • 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

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

캐시 시스템에 있어서, DM (Direct Mapping) 캐시 테이블과 같은 넌-FSA (non-Full-Set Associative) 캐시 테이블이 FSA 캐시 테이블과 결합된다. 캐시 히트 판정을 위한 태그 비교가 2 개의 캐시 테이블에서 동시에 실행된다. 상기 FSA 캐시 테이블의 각 캐시라인에 대한 캐시 히트의 횟수는 억세스 카운터에 의해 카운트되고, 캐시 히트 카운트에 대한 억세스 카운트값은 각 캐시라인의 억세스 카운트 영역에 저장된다. 캐시 히트가 FSA 캐시 테이블의 캐시라인에 발생되면, 상기 캐시라인의 억세스 카운트값은 1 만큼 증가된다. 양쪽 캐시 테이블에 미스 히트가 발생되면, FSA 캐시 테이블의 모든 캐시라인의 억세스 카운트값은 동시에 1 만큼 감소된다. DM 캐시 테이블이 입력 어드레스 데이터의 인덱스에 대응하는 무효 캐시라인을 가질 때 미스 히트가 양쪽 캐시 테이블에 발생되면, 미스 히트에 의해 메인 메모리로부터 페치되는 데이터는 상기 인덱스에 대응하는 무효 캐시라인에 기입된다. DM 캐시 테이블이 인덱스에 대응하는 무효 캐시라인을 갖지 않고 FSA 캐시 테이블이 유효 캐시라인으로 가득할 때 미스 히트가 발생되면, DM 캐시 테이블의 미스 히트 캐시라인에 저장된 데이터가 최소 억세스 카운트값을 갖는 FSA 캐시 테이블의 캐시라인 중 하나로 전송되고, 또한 메인 메모리로부터 페치되는 데이터가 DM 캐시 테이블의 미스 히트 캐시라인에 기입된다. 이러한 데이터 관리/전송에 의해, 캐시 히트율과 데이터 억세스 속도가 보다 높은 레벨로 향상될 수 있다.

Description

캐시 프로세스용 시스템 및 방법{SYSTEM AND METHOD FOR CACHE PROCESS}
본 발명은 MPU (MicroProcessor Unit), CPU (Central Processing Unit), 등의 데이터 처리장치에 적용되어 메인 메모리와 같은 외부 메모리에 대한 억세스 시간을 감소시키는 캐시 시스템 및 캐시 프로세싱 방법에 관한 것으로, 보다 상세하게는, 높은 사용 주파수의 캐시라인을 보존할 수 있는 풀-세트 어소시에이티브 캐시 메모리가 넌-풀-세트 어소시에이티브 캐시 메모리 (다이렉트 매핑 캐시 메모리, 2-웨이 세트 어소시에이티브 캐시 메모리, 4-웨이 세트 어소시에이티브 캐시 메모리, 8-웨이 세트 어소시에이티브 캐시 메모리, 등) 와 결합됨으로써 캐시 히트율이 증가되는 캐시 시스템 및 캐시 프로세싱 방법에 관한 것이다.
캐시 즉, 캐시 메모리는 메인 메모리와 같이 데이터 처리속도가 느린 메모리에 대해 데이터 처리속도가 빠른 MPU, CPU 등의 억세스 시간을 줄이는데 널리 사용되고 있다. 특히, 1 차 캐시 메모리와 2 차 캐시 메모리로 이루어진 계층적인캐시 메모리가 MPU, CPU, 등의 프로그램 처리속도를 향상시키기 위해 널리 사용됨으로써, MPU, CPU, 등을 포함하는 시스템의 처리량을 향상시키고 있다. 통상, 캐시 메모리는 복수의 태그 및 상기 태그에 대응하는 데이터를 저장하는 캐시 테이블을 갖고 있다. 입력 어드레스 데이터로부터 취출되는 태그는 캐시 테이블에 저장되어 있는 태그와 비교되고, 취출된 태그가 저장된 태그 중 하나와 매치되면, 매치된 태그에 대응하는 데이터가 선택되어 캐시 테이블로부터 MPU, CPU, 등으로 출력된다. 그럼으로써, 외부 메모리 (데이터 처리속도가 느린 메인 메모리 등) 에 대한 억세스 횟수가 감소되고, 그럼으로써 데이터 처리속도가 빠른 MPU, CPU, 등이 실현된다.
캐시 메모리로서는, 풀-세트 어소시에이티브 캐시 메모리와 디이렉트 매핑 캐시 메모리가 주지되어 있다. 다이렉트 매핑 캐시 메모리는 작은 회로 규모로 고속 억세스를 구현할 수 있지만, 캐시 히트율이 쉽게 저하된다. 다른 한편으로, 풀-세트 어소시에이티브 캐시 메모리는 매우 복잡한 회로 구성을 요구하고 전력소모가 크지만, 하이-히트율 캐시라인의 보존이 풀-세트 어소시에이티브 캐시 메모리에서 가능하다. 또, 2-웨이 세트 어소시에이티브 캐시 메모리, 4-웨이 세트 어소시에이티브 캐시 메모리 및 8-웨이 세트 어소시에이티브 캐시 메모리가 또한 다이렉트 매핑 캐시 메모리와 유사한 기능을 갖는 넌-풀-세트 어소시에이티브 캐시 메모리로서 주지되어 있다.
도 1 은 통상적인 종래의 다이렉트 매핑 캐시 메모리를 나타내는 개략적인 블럭 다이어그램이다. 도 1 에 도시된 다이렉트 매핑 캐시 메모리는 복수의 태그와 상기 태그에 대응하는 데이터를 저장하는 캐시 테이블 (801), 비교기 (802), AND 게이트 (803) 및 데이터 셀렉터 (804) 를 구비한다. 캐시 테이블 (801) 의 각 캐시라인은 또한 캐시라인이 유효인지 무효인지를 나타내는 '유효 비트' 를 갖고 있다. 유효 비트 '1' 은 캐시라인이 유효임을 나타내고, 유효비트 '0' 은 캐시라인이 무효임을 나타낸다. 도 1 의 상부에, 입력 어드레스 데이터의 일례인 '00000040'(hex) 이 도시되어 있다. 입력 어드레스 데이터는 태그, 인덱스 및 오프세트를 포함한다. 입력 어드레스 데이터 '00000040' 의 경우에, 태그는 '00000' (입력 어드레스 데이터중 처음 5 자리 16진수) 이고, 인덱스는 '04' (입력 어드레스 데이터중 다음 2 자리 16 진수) 이고, 오프세트는 '0' (입력 어드레스 데이터중 마지막 1자리 16진수) 이다.
도 2 는 CPU 로 실행되는 프로그램의 일례를 나타내는 개략적인 다이어그램이다. 도 2 를 참조하면, 프로그램은 실행될 명령 (1), (2), …을 포함한다. 메인 메모리는 사전에 그것의 대응 어드레스에 복수의 명령을 저장한다. 도 2 의 프로그램이 CPU 에 의해 실행될 때, CPU 는 먼저 프로그램의 명령 (1) 에 대해 입력 어드레스 데이터 (이는 프로그램 카운터로부터 공급됨) 를 참조한다. 제 1 명령 (1) 에 대해 입력 어드레스 데이터 '00000040' 는 제 1 명령 (1) 이 메인 메모리의 어드레스 '00000040' 에 사전에 저장되어 있음을 나타낸다. 제 1 명령 (1) 에 대해, CPU (구체적으로, 도 1 에 도시된 다이렉트 매핑 캐시 메모리의 비교기 (802)) 는 입력 어드레스 데이터 '00000040' 으로부터 취출된 태그 '00000' 가 인덱스 '04' 에 대응하는 (도 1 에 도시된 캐시 테이블 (801) 의) 캐시라인에저장되어 있는 태그와 매치하는지를 판정한다. 매치되면, 매치된 태그에 대응하는 데이터가 다이렉트 매핑 캐시 메모리의 캐시 테이블 (801) 로부터 판독되어 CPU (명령 디코더) 로 전송된다. 매치되지 않으면, CPU 는 메인 메모리에 억세스하여 메인 메모리의 어드레스 '00000040' 로부터 제 1 명령 (1) 을 페치한다. 이 경우 (매치되지 않은 경우) 에, 인덱스 '04' 에 대응하는 캐시라인이 재기입된다, 즉, 인덱스 '04' 에 대응하는 캐시라인의 데이터가 메인 메모리로부터 페치된 데이터로 바뀌고 캐시라인의 태그는 입력 어드레스 데이터 '00000040' 에 대응하는 태그 '00000' 으로 바뀐다. 그 후, 동일한 프로세스가 이어지는 명령 (2), (3), …에 대해 실행된다. 다이렉트 매핑 캐시 메모리의 사용에 의해, 메인 메모리에 대한 CPU 의 억세스 횟수 (긴 억세스 시간을 필요) 가 감소되고, 그럼으로써 CPU (캐시 프로세스) 에 의한 고속 프로그램 실행이 실현된다.
도 3a 와 3b 는 도 2 의 프로그램이 CPU 에 의해 실행될 때 도 1 의 다이렉트 매핑 캐시 메모리의 캐시 테이블 (801) 의 상태 변경의 예를 나타내는 개략적인 다이어그램으로, 도 3a 는 CPU 에 의한 도 2 의 명령 (1) 의 실행 직후 캐시 테이블 (801) 의 상태를 나타내고 도 3b 는 CPU 에 의한 도 2 의 명령 (5) 의 실행 직후 캐시 테이블 (801) 의 상태를 나타낸다. 도 3a 를 참조하면, 명령 (1) 이 막 실행된 지점에서, 인덱스 '04' 에 대응하는 캐시 테이블 (801) 의 캐시라인은 태그 '00000' (입력 어드레스 데이터 '00000040' 에 대응) 및 태그 '00000' 에 대응하는 데이터를 저장한다. 도 3b 를 참조하면, 명령 (5) 가 막 실행된 지점에서, 인덱스 '04' 에 대응하는 캐시 테이블 (801) 의 동일한 캐시라인이 태그'00001' (입력 어드레스 데이터 '00001040' 에 대응) 및 태그 '00001' 에 대응하는 데이터를 저장한다.
도 4a 와 4b 는 도 2 의 프로그램이 2 번 실행될 때 다이렉트 매핑 캐시 메모리를 채용하는 CPU 의 억세스 시간을 나타내는 개략적인 다이어그램으로, 도 4a 는 도 2 의 프로그램이 첫번째로 실행된 경우를 나타내고 도 4b 는 도 2 의 프로그램이 두번째로 실행된 경우를 나타낸다. 또, 프로그램 실행시간에 대한 다음 설명에서는 다이렉트 매핑 캐시 메모리의 각 캐시라인의 데이터 저장영역의 길이가 4 워드 (16 바이트) 이고 도 2 의 프로그램의 각 명령의 길이가 1 워드로 가정한다 (즉, 4 개의 명령이 다이렉트 매핑 캐시 메모리의 각 캐시라인의 데이터 저장영역에 저장된다고 가정). 메인 메모리로부터 데이터 (명령) 를 페치하는데 필요한 억세스 시간은 제 1 워드에 대해 100 ns, 다음 3 개의 워드 각각에 대해 30 ns 로 가정된다. 그러므로, 메인 메모리로부터 4 개의 데이터 (4 개의 명령) 를 페치하여 다이렉트 매핑 캐시 메모리의 캐시라인에 상기 데이터를 저장하는데 필요한 억세스 시간은 100 + 30 + 30 + 30 = 190 ns 이다. CPU 가 다이렉트 매핑 캐시 메모리의 캐시라인에 저장되어 있는 명령을 판독하여 실행하는데 10 ns 가 걸린다고 가정하면, CPU 로부터 4 워드의 데이터 (처음 4 개의 명령) 를 페치하여 다이렉트 매핑 캐시 메모리에 상기 데이터를 저장하고 저장된 제 1 명령 (1) 을 실행하는데 필요한 억세스 시간은 190 + 10 = 200 ns 이다.
초기화에서, 다이렉트 매핑 캐시 메모리의 모든 캐시라인은 무효로 설정된다, 즉, 캐시라인의 모든 유효비트 V 가 '0' 으로 설정된다. 초기화 직후, 유효비트 V 가 모두 '0' 이므로 다이렉트 매핑 캐시 메모리에는 거의 데이터가 존재하지 않는다. 그러므로, CPU 는 메인 메모리로부터 필요한 데이터 (도 2 의 프로그램의 제 1 인덱스 '04' 에 대응하는 명령 (1) 내지 (4)) 를 페치하고, 페치된 명령 (1) 내지 (4) 를 인덱스 '04' 에 대응하는 다이렉트 매핑 캐시 메모리의 캐시라인에 기입한다. 데이터 기입에 의해, 인덱스 '04' 에 대응하는 다이렉트 매핑 캐시 메모리의 캐시라인이 유효로 바뀐다, 즉, 캐시라인의 유효비트 V 가 '1' 로 설정된다 (도 1 참조). 그 후, CPU 는 다이렉트 매핑 캐시 메모리의 캐시라인으로부터 제 1 명령 (1) 을 판독하고 명령 (1) 을 실행한다. 도 4a 에 도시된 첫번째 프로그램 실행에서, CPU 가 루틴 시작 후 제 1 명령 (1) 을 실행하는데 100 + 30 + 30 + 30 + 10 = 200 ns 가 걸린다. 다음의 명령 (2), (3) 및 (4) 각각은 실행되는데 각각 10 ns 가 걸린다 (30 ns). 그 후, 어드레스 (00001030) 내지 (0000103C) 에 대응하는 다음의 4 개의 명령이 CPU 에 의해 동일한 방법으로 실행된다(200 + 10 + 10 + 10 = 230 ns).
도 2 에 도시된 명령 (5) (상술된 인덱스 '04' 에 대응) 가 CPU 에 의해 실행될 때, 명령 (1) 과 명령 (1) 에 대응하는 태그 (00000) 는 인덱스 '04' 에 대응하는 다이렉트 매핑 캐시 메모리의 캐시라인에 이미 저장되어 있다. 그러므로, 미스 히트 (00001 ≠00000) 가 인덱스 '04' 에 대응하는 다이렉트 매핑 캐시 메모리의 캐시라인에 발생한다. 그러므로, CPU 는 메인 메모리로부터 명령 (5) 을 페치하고 명령 (5) 및 대응하는 태그 (00001) 를 인덱스 '04' 에 대응하는 캐시라인에 저장한다. 미스 히트에 의해, 명령 (5) 의 실행도 100 + 30 + 30 + 30 +10 = 200 ns 가 걸린다. 다음 3 개의 명령 각각은 실행되는데 10 ns 걸린다. 그러므로, 첫번째 프로그램 실행의 총시간은 230 ×3 = 690 ns 가 된다.
도 4a 에 도시된 첫번째 프로그램 실행이 종료된 시점에서, 인덱스 '04' 에 대응하는 캐시라인은 도 3b 에 도시된 명령 (5) 에 대응하는 태그 '00001' 을 저장한다. 그러므로, 명령 (1) (상술된 인덱스 '04' 에 대응) 이 두번째 프로그램 실행에서 CPU 에 의해 실행될 때, 미스 히트 (00001 ≠00000) 가 인덱스 '04' 에 대응하는 캐시라인에 다시 발생하고, 그럼으로써 CPU 가 메인 메모리로부터 명령 (1) 을 다시 페치하고, 따라서 두번째 프로그램 실행에서 명령 (1) 은 실행에 200 ns 가 걸린다. 다음의 명령 (2), (3) 및 (4) 각각은 실행에 10 ns 가 걸린다(30 ns). 그 후, 어드레스 (00001030) 내지 (0000103C) 에 대응하는 다음의 4 개의 명령이 인덱스 '03' 에 대응하는 다이렉트 매핑 캐시 메모리의 캐시라인에 이미 저장된 캐시 데이터를 사용하여 CPU 에 의해 동일한 방법으로 실행된다(10 + 10 + 10 + 10 = 40 ns). 그 후, 명령 (5) (상술된 인덱스 '04' 에 대응) 이 두번째 프로그램 실행에서 CPU 에 의해 실행될 때, 미스 히트 (00001 ≠00000) 가 인덱스 '04' 에 대응하는 캐시라인에 유사하게 다시 발생한다 (200 ns). 다음의 3 개의 명령 각각은 실행에 각각 10 ns 가 걸린다 (30 ns). 그러므로, 두번째 프로그램 실행의 총시간은 230 + 40 + 230 = 500 ns 가 걸린다. 그러므로, 도 2 의 프로그램을 2 번 실행하는 총 실행시간은 690 + 500 = 1190 ns 로 된다.
상술된 바와 같이, 다이렉트 매핑 캐시 메모리가 작은 회로 규모로 고속 억세스를 구현할 수 있지만, 캐시 미스 (미스 히트) 가 쉽게 종종 다이렉트 매핑 캐시 메모리에서 발생한다. 캐시 미스에 의해 메인 메모리에 대한 억세스는 예를 들어 200 ns 오래 걸리고, 따라서, CPU 의 프로그램 실행시간 (프로그램을 실행하기 위한 CPU 의 억세스 시간) 이 길어져야 한다.
캐시 히트율을 향상시키고 메모리 억세스 시간 및 프로그램 실행시간을 감소시키기 위해, 1차 캐시 메모리와 2 차 캐시 메모리로 이루어지는 계층적인 캐시 메모리가 널리 사용된다. 예를 들어, 일본 특개소 61-241853 호에 개시된 '캐시 메모리 제어방법' 에서는, 1차 캐시 메모리가 CPU 와 메인 메모리 사이에 설치되고, 2 차 캐시 메모리가 1 차 캐시 메모리와 메인 메모리 사이에 설치된다. 캐시 히트가 1차 캐시 메모리에 발생된 경우에, 1 차 캐시 메모리에 저장된 필요한 데이터가 캐시 데이터로서 CPU 에 공급된다. 미스 히트가 1차 캐시 메모리에 발생되고 캐시 히트가 2차 캐시 메모리에 발생된 경우에, 2차 캐시 메모리에 저장된 필요한 데이터가 1차 캐시 메모리로 옮겨지고, 필요한 데이터가 CPU 로 공급된다. 이 경우, 1 차 캐시 메모리에 무효 (미사용) 캐시라인 (상기 캐시라인으로 2 차 캐시 메모리로부터 필요한 데이터가 옮겨질 수 있음) 이 없으면, 1차 캐시 메모리의 캐시라인에 저장된 데이터가 1 차 캐시 메모리로부터 제거되고 2 차 캐시 메모리의 캐시라인으로 옮겨진다. 이 경우에, 2 차 캐시 메모리에 무효 (미사용) 캐시라인 (상기 캐시라인에 1차 캐시 메모리로부터 제거된 데이터가 저장될 수 있음) 이 없으면, 2 차 캐시 메모리의 캐시라인에 저장된 데이터가 2 차 캐시 메모리로부터 제거되어 (삭제되어) 1 차 캐시 메모리로부터 제거된 데이터가 2 차 캐시 메모리의 캐시라인에 저장될 수 있다. 미스 히트가 1차 캐시 메모리와 2 차 캐시 메모리 양쪽에 발생된 경우에, 필요한 데이터가 메인 메모리로부터 페치되어 1차 캐시 메모리에 기입되지만 (상기 페치된 데이터는 2 차 캐시 메모리에 기입되지 않음), 상기 페치된 데이터는 보통 종래의 계층적인 캐시 메모리에서의 1 차 캐시 메모리와 2 차 캐시 메모리 양쪽에 기입된다. 이러한 동작에 의해, 2 차 캐시 메모리의 캐시 히트율이 향상된다.
일본 특개평 5-73415 호에 개시된 종래의 '계층적인 캐시 시스템' 에서, CPU 는 필요한 데이터가 1 차 캐시 메모리 또는 2 차 캐시 메모리에 존재하는지를 판정한다. 필요한 데이터가 1 차 캐시 메모리에 없고 2 차 캐시 메모리에 있을 때, 2 차 캐시 메모리에 있는 데이터가 1 차 캐시 메모리로 옮겨진다. 이러한 프로세스에서, 1 차 캐시 메모리로부터 제거되는 데이터가 2 차 캐시 메모리로 옮겨진다.
일본 특개평 6-012323 호에 개시된 종래의 '캐시 메모리 시스템' 은 1 차 캐시 메모리로 다이렉트 매핑 캐시 메모리 및 2 차 캐시 메모리로 풀-세트 어소시에이티브 캐시 메모리를 채용한다. 캐시 히트 판정을 위한 태그 비교가 1 차 캐시 메모리와 2 차 캐시 메모리에서 동시에 실행된다. 메인 메모리로부터 페치되는 데이터는 종래의 계층적인 캐시 메모리 기술에 따라 1 차 캐시 메모리와 2 차 캐시 메모리 양쪽에 기입된다. 문헌에서는, 2 차 캐시 메모리 (풀-세트 어소시에이티브 캐시 메모리) 의 각 캐시라인에 대한 억세스 횟수를 카운트하는 카운터가 제안되어 있다. 캐시라인의 카운터가 미리 설정된 값을 초과할 때, 캐시라인이 후속 억세스를 위해 1차 캐시 메모리 (다이렉트 매핑 캐시 메모리) 상으로 로드된다.
일본 특개평 6-250926 호에 개시된 종래의 '계층적인 캐시 메모리를 채용하는 데이터 프로세싱 시스템' 에서는, 미스 히트 (캐시 히트 ) 가 1차 캐시 메모리에 발생될 때, 2차 캐시 메모리가 억세스된다. 캐시 히트가 2차 캐시 메모리에 발생되면, 2차 캐시 메모리에 저장된 필요한 데이터가 1차 캐시 메모리 (2차 캐시 메모리에서 무효화됨) 로 옮겨져서 CPU 에 공급된다. 미스 히트가 또한 2차 캐시 메모리에 발생되면, 메인 메모리가 억세스되어 필요한 데이터가 메인 메모리로부터 페치된다. 문헌의 실시예에서는, 1차 캐시 메모리가 충분한 메모리 공간을 갖는다면 메인 메모리로부터 페치된 데이터가 옮겨지고 1차 캐시 메모리에만 레지스트된다 (2차 캐시 메모리에는 레지스트되지 않음). 1차 캐시 메모리가 충분한 메모리 공간을 갖지 않으면, 메인 메모리로부터 페치된 데이터가 2차 캐시 메모리에만 레지스트된다 (1차 캐시 메모리에는 레지스트되지 않음). 문헌의 다른 실시예에서는, 메인 메모리로부터 페치된 데이터는 1차 캐시 메모리에만 직접 레지스트된다 (2차 캐시 메모리에는 레지스트되지 않음). 1차 캐시 메모리에 레지스트될 수 없는 데이터가 메인 메모리로부터 1차 캐시 메모리로의 직접적인 데이터 레지스트에서 발생되면, 상기 데이터는 1차 캐시 메모리로부터 옮겨져서 2차 캐시 메모리에 레지스트된다.
상술된 바와 같이, 종래의 다이렉트 매핑 캐시 메모리에서는, 하이-히트율 캐시라인의 보존이 불가능하다. 다이렉트 매핑 캐시 메모리는 특별한 인덱스에대해 하나의 캐시라인만 저장할 수 있고, 따라서 미스 히트가 종종 반복적으로 발생하고, 그럼으로써 메인 메모리에 대한 억세스 횟수가 커져야 한다.
1차 캐시 메모리와 2차 캐시 메모리를 포함하는 계층적인 캐시 메모리를 채용함으로써 캐시 히트율이 향상될 수 있었다. 그러나, 2차 캐시 메모리에 대한 억세스는 여분의 억세스 시간을 필요로 하고, 그럼으로써 CPU 와 같은 데이터 처리장치의 프로그램 실행시간이 길어질 필요가 있다.
1차 캐시 메모리 (다이렉트 매핑 캐시 메모리) 와 2차 캐시 메모리 (풀-세트 어소시에이티브 캐시 메모리) 에서 동시에 태그 비교를 실행하는 종래의 계층적인 캐시 메모리가 있었다. 그러나, 풀-세트 어소시에이티브 캐시 메모리에서의 하이-히트율 캐시라인의 보존 향상을 위한 많은 여지가 남아 있다. 게다가, 특별한 데이터 (동일한 데이터) 가 다이렉트 매핑 캐시 메모리와 풀-세트 어소시에이티브 캐시 메모리 양쪽에 저장되고, 그럼으로써 캐시 메모리의 메모리 공간의 사용 효율이 저하되고 캐시 메모리에 저장될 수 있는 캐시 데이터량이 감소되고, 따라서 캐시 히트율이 최대로 증가될 수 없는 경우들이 있었다.
그러므로, 본 발명의 주요 목적은, 풀-세트 어소시에이티브 캐시 메모리와 넌-풀-세트 어소시에이티브 캐시 메모리를 함께 결합함으로써 고속 데이터 억세스와 높은 캐시 히트율이 하이레벨로 실현되고, 캐시 시스템의 하이-히트율 캐시라인을 보존하는 능력을 향상시키고 캐시 시스템의 메모리 공간의 사용 효율을 높임으로써, 메인 메모리와 같은 외부 메모리에 대한 CPU, MPU, 등의 데이터 처리장치의 억세스 횟수 및 데이터 처리장치의 데이터 억세스 시간이 최소로 감소될 수 있는캐시 시스템 및 캐시 프로세싱 방법을 제공하는 것이다.
도 1 은 통상적인 종래의 다이렉트 매핑 캐시 메모리를 나타내는 개략적인 블럭 다이어그램;
도 2 는 CPU 로 실행되는 프로그램의 일례를 나타내는 개략적인 다이어그램;
도 3a 와 3b 는 도 2 의 프로그램이 CPU 로 실행될 때 도 1 의 다이렉트 매핑 캐시 메모리의 상태 변화의 예를 나타내는 개략적인 다이어그램으로, 도 3a 는 도 2 에 나타낸 명령 (1) 의 실행 직후의 상태를 나타내고, 도 3b 는 도 2 에 나타낸 명령 (5) 의 실행 직후의 상태를 나타내는 도면;
도 4a 와 4b 는 도 2 의 프로그램이 2 번 실행될 때 다이렉트 매핑 캐시 메모리를 채용하는 CPU 의 억세스 타임을 나타내는 개략적인 다이어그램으로, 도 4a 는 도 2 의 프로그램이 첫번째 실행된 경우를 나타내고, 도 4b 는 도 2 의 프로그램이 두번째 실행된 경우를 나타내는 도면;
도 5 는 본 발명의 제 1 실시예에 따른 캐시 시스템의 캐시부의 구성을 나타내는 블럭 다이어그램;
도 6 은 본 발명의 제 1 실시예에 따른 캐시 시스템이 적용된 컴퓨터 시스템을 나타내는 블럭 다이어그램;
도 7 은 본 발명의 제 1 실시예에 따른 캐시 시스템의 동작을 나타내는 플로우 차트;
도 8 은 도 6 의 컴퓨터 시스템의 CPU 에 의해 실행되는 프로그램의 일례를 나타내는 개략적인 다이어그램;
도 9a 와 9b 는 도 8 의 프로그램이 2 번 실행될 때 제 1 실시예의 캐시 시스템을 채용하는 CPU 의 억세스 타임을 나타내는 개략적인 다이어그램으로, 도 9a 는 도 8 의 프로그램이 첫번째로 실행된 경우를 나타내고, 도 9b 는 도 8 의 프로그램이 두번째로 실행된 경우를 나타내는 도면;
도 10 은 도 8 에 도시된 명령 (5) 의 실행 직후 제 1 실시예의 캐시 시스템의 FSA 캐시 테이블 TA 및 DM 캐시 테이블 TB 의 상태를 나타내는 개략적인 다이어그램;
도 11 은 컴퓨터 시스템에 적용된 본 발명에 따른 캐시 시스템의 다른 예를 나타내는 블럭 다이어그램;
도 12 는 본 발명의 제 2 실시예에 따른 캐시 시스템의 캐시부의 구성을 나타내는 블럭 다이어그램; 및
도 13 은 본 발명의 제 3 실시예에 따른 캐시 시스템의 캐시부 (15B) 에 넌-풀-세트 어소시에이티브 캐시 테이블로서 채용되는 4-웨이 세트 어소시에이티브 캐시 테이블 TC 를 나타내는 개략적인 다이어그램이다.
* 도면의 주요 부분에 대한 부호의 설명*
1 : 어드레스 버스 2 : 데이터 버스
3 : 버스 인터페이스 (I/F) 부 4 : 기입 버퍼
5 : 제어 레지스터 6 : MMU 레지스터
7 : 산술논리 연산유니트 8 : GPR 레지스터
9 : 멀티플라이어 10 : 배럴 시프터
11 : 프로그램 카운터 12 : 클럭 발생기
15 : 캐시부 20 : 2 차 캐시 메모리
21 : 메인 메모리 50 : CPU
본 발명의 제 1 실시예에 따르면, 메인 메모리와 같은 외부 메모리에 대한 CPU (중앙처리장치), MPU (마이크로프로세서 장치), 등의 데이터 처리장치의 억세스 횟수를 줄이며, 풀-세트 어소시에이티브 캐시 메모리, 넌-풀-세트 어소시에이티브 캐시 메모리, 캐시 히트 카운트 저장수단 및 캐시 히트 카운트 관리수단을 구비하는 캐시 시스템이 제공된다. 풀-세트 어소시에이티브 캐시 메모리는 높은 캐시 히트율의 캐시라인을 보존할 수 있는 메모리이다. 입력 어드레스 데이터로부터 취출되는 제 1 태그가 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 제 1 태그 중 하나와 매치될 때, 매치된 제 1 태그에 대응하는 유효 캐시라인에 저장된 데이터가 캐시 데이터로서 데이터 처리장치에 의해 판독된다. 넌-풀-세트 어소시에이티브 캐시 메모리는 풀-세트 어소시에이티브 캐시 메모리와 결합되도록 캐시 시스템에 제공되어 풀-세트 어소시에이티브 캐시 메모리와 동시에 캐시 히트 판정을 위한 태그 비교를 실행한다. 입력 어드레스 데이터로부터 취출되는 제 2 태그가 입력 어드레스 데이터로부터 취출된 인덱스에 대응하는 넌-풀-세트 어소시에이티브 캐시 테이블의 유효 캐시라인에 저장된 제 2 태그와 매치될 때, 매치된 제 2 태그에 대응하는 유효 캐시라인에 저장된 데이터가 캐시 데이터로서 데이터 처리장치에 의해 판독된다. 캐시 히트 카운트 저장수단 각각이 풀-세트 어소시에이티브 캐시 메모리의 각 캐시라인에 대응하여 제공되어 캐시라인에 발생된 캐시 히트의 횟수에 대한 캐시 히트 카운트값을 저장한다. 캐시 히트카운트 관리수단은 풀-세트 어소시에이티브 캐시 메모리의 각 캐시라인에서 캐시 히트의 횟수를 카운트하고 그럼으로써 캐시 히트 카운트 저장수단에 저장되는 캐시 히트 카운트값을 관리 갱신한다. 넌-풀-세트 어소시에이티브 캐시 메모리가 인덱스에 대응하는 무효 캐시라인을 갖지 않고 풀-세트 어소시에이티브 캐시 메모리가 하나 이상의 무효 캐시라인을 가질 때 미스 히트가 풀-세트 어소시에이티브 캐시 메모리와 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되면, 미스 히트가 발생된 인덱스에 대응하는 넌-풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 데이터가 풀-세트 어소시에이티브 캐시 메모리의 무효 캐시라인 중 하나로 전송되고, 미스 히트에 의해 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 넌-풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 기입된다. 넌-풀-세트 어소시에이티브 캐시 메모리가 인덱스에 대응하는 무효 캐시라인을 갖지 않고 풀-세트 어소시에이티브 캐시 메모리가 유효 캐시라인로 가득할 때 미스 히트가 풀-세트 어소시에이티브 캐시 메모리와 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되면, 미스 히트가 발생된 인덱스에 대응하는 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 데이터가 최소 캐시 히트 카운트값을 갖는 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인 중 하나로 전송되고, 미스 히트에 의해 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 넌-풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 기입된다. 넌-풀-세트 어소시에이티브 캐시 메모리가 인덱스에 대응하는 무효 캐시라인을 가질 때 미스 히트가 풀-세트 어소시에이티브 캐시 메모리와 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되면, 미스 히트에 의해 외부 메모리로부터 페치되는 데이터가 인덱스에 대응하는 넌-풀-세트 어소시에이티브 캐시 메모리의 무효 캐시라인에 기입된다.
본 발명의 제 2 양태에 따르면, 제 1 양태에 있어서, 캐시 히트가 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 발생될 때, 캐시 히트 카운트 관리수단은 캐시라인의 캐시 히트 카운트값을 1 만큼 증가시키고, 미스 히트가 풀-세트 어소시에이티브 캐시 메모리와 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생될 때, 캐시 히트 카운트 관리수단은 풀-세트 어소시에이티브 캐시 메모리의 모든 캐시라인의 캐시 히트 카운트값을 동시에 1 만큼 감소시킨다.
본 발명의 제 3 양태에 따르면, 제 1 양태에 있어서, 캐시 히트가 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 발생될 때, 캐시 히트 카운트 관리수단은 캐시라인의 캐시 히트 카운트값을 1 만큼 증가시키고, 미스 히트가 풀-세트 어소시에이티브 캐시 메모리에 발생될 때, 캐시 히트 카운트 관리수단은 풀-세트 어소시에이티브 캐시 메모리의 모든 캐시라인의 캐시 히트 카운트값을 동시에 1 만큼 감소시킨다.
본 발명의 제 4 양태에 따르면, 제 1 양태에 있어서, 캐시 히트가 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 발생될 때, 캐시 히트 카운트 관리수단은 캐시라인의 캐시 히트 카운트값을 1 만큼 증가시킨다.
본 발명의 제 5 양태에 따르면, 제 1 양태에 있어서, 캐시 시스템은 캐시 히트 날짜/시간 저장수단을 더 구비한다. 캐시 히트 날짜/시간 저장수단 각각은 풀-세트 어소시에이티브 캐시 메모리의 각 캐시라인에 대응하여 설치되어 캐시라인에 발생된 최근 캐시 히트의 날짜와 시간에 대한 데이터를 저장한다. 넌-풀-세트 어소시에이티브 캐시 메모리가 인덱스에 대응하는 무효 캐시라인을 갖지 않고 풀-세트 어소시에이티브 캐시 메모리가 유효 캐시라인으로 가득할 때 미스 히트가 풀-세트 어소시에이티브 캐시 메모리와 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되는 경우에, 가장 최근에 사용되지 않은 캐시라인이 캐시 히트 날짜/시간 저장수단에 저장된 데이터에 기초하여 최소 캐시 히트 카운트값을 갖는 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인으로부터 선택되고, 선택된 가장 최근에 사용되지 않은 캐시라인이 넌-풀-세트 어소시에이티브 캐시 메모리로부터 풀-세트 어소시에이티브 캐시 메모리로의 데이터 전송의 목적지로서 지정된다.
본 발명의 제 6 양태에 따르면, 제 1 양태에 있어서, 다이렉트 매핑 캐시 메모리가 넌-풀-세트 어소시에이티브 캐시 메모리로서 채용된다.
본 발명의 제 7 양태에 따르면, 제 1 양태에 있어서, N-웨이 세트 어소시에이티브 캐시 메모리 (N = 2, 4, 8, …) 가 넌-풀-세트 어소시에이티브 캐시 메모리로서 채용된다.
본 발명의 제 8 양태에 따르면, 제 7 양태에 있어서, 캐시 시스템은 LRU 저장수단을 더 구비한다. LRU 저장수단 각각은 각 인덱스에 대응하여 설치되어 인덱스에 대응하는 N 개의 캐시라인 중 가장 최근에 사용되지 않은 것을 나타내는 LRU (least recently used) 값을 저장한다. N-웨이 세트 어소시에이티브 캐시메모리가 인덱스에 대응하는 무효 캐시라인을 갖지 않고 풀-세트 어소시에이티브 캐시 메모리가 하나 이상의 무효 캐시라인을 가질 때 미스 히트가 풀-세트 어소시에이티브 캐시 메모리와 N-웨이 세트 어소시에이티브 캐시 메모리 양쪽에 발생되는 경우에, LRU 값으로 지정된 캐시라인이 N-웨이 세트 어소시에이티브 캐시 테이블의 N 미스 히트 캐시라인으로부터 선택되고 선택된 캐시라인에 저장된 데이터가 풀-세트 어소시에이티브 캐시 메모리의 무효 캐시라인 중 하나로 전송되고, 미스 히트에 의해 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 N-웨이 세트 어소시에이티브 캐시 테이블의 선택된 캐시라인에 기입된다. N-웨이 세트 어소시에이티브 캐시 메모리가 인덱스에 대응하는 무효 캐시라인을 갖지 않고 풀-세트 어소시에이티브 캐시 메모리가 유효 캐시라인으로 가득할 때 미스 히트가 풀-세트 어소시에이티브 캐시 메모리와 N-웨이 세트 어소시에이티브 캐시 메모리 양쪽에 발생되는 경우에, LRU 값으로 지정된 캐시라인이 N-웨이 세트 어소시에이티브 캐시 테이블의 N 미스 히트 캐시라인으로부터 선택되고 선택된 캐시라인에 저장된 데이터가 최소 캐시 히트 카운트값을 갖는 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인 중 하나로 전송되고, 미스 히트에 의해 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 N-웨이 세트 어소시에이티브 캐시 테이블의 선택된 캐시라인에 기입된다. N-웨이 세트 어소시에이티브 캐시 메모리가 인덱스에 대응하는 하나 이상의 무효 캐시라인을 가질 때 미스 히트가 풀-세트 어소시에이티브 캐시 메모리와 N-웨이 세트 어소시에이티브 캐시 메모리에 발생되는 경우에, 미스 히트에 의해 외부 메모리로부터 페치되는 데이터는 인덱스에 대응하는 N-웨이 세트 어소시에이티브 캐시 메모리의 무효 캐시라인 중 하나에 기입된다.
본 발명의 제 9 양태에 따르면, 제 8 양태에 있어서, 캐시 시스템은 캐시 히트 날짜/시간 저장수단을 더 구비한다. 캐시 히트 날짜/시간 저장수단 각각은 풀-세트 어소시에이티브 캐시 메모리의 각 캐시라인에 대응하여 설치되어 캐시라인에 발생된 최근의 캐시 히트의 날짜와 시간에 대한 데이터를 저장한다. N-웨이 세트 어소시에이티브 캐시 메모리가 인덱스에 대응하는 무효 캐시라인을 갖지 않고 풀-세트 어소시에이티브 캐시 메모리가 유효 캐시라인으로 가득할 때 미스 히트가 풀-세트 어소시에이티브 캐시 메모리와 N-웨이 세트 어소시에이티브 캐시 메모리 양쪽에 발생되는 경우에, 가장 최근에 사용되지 않은 캐시라인이 캐시 히트 날짜/시간 저장수단에 저장된 데이터에 기초하여 최소 캐시 히트 카운트값을 갖는 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인으로부터 선택되고, 선택된 가장 최근에 사용되지 않은 캐시라인이 N-웨이 세트 어소시에이티브 캐시 메모리로부터 풀-세트 어소시에이티브 캐시 메모리로의 데이터 전송의 목적지로서 지정된다.
본 발명의 제 10 양태에 따르면, 제 1 양태에 있어서, 캐시 시스템은 풀-세트 어소시에이티브 캐시 메모리와 넌-풀-세트 어소시에이티브 캐시 메모리로 구성되는 1차 캐시 메모리에 부가적으로 제공되는 2 차 캐시 메모리를 더 구비한다.
본 발명의 제 11 양태에 따르면, 메인 메모리와 같은 외부 메모리에 대한 CPU (중앙처리장치), MPU (마이크로프로세서 장치), 등의 데이터 처리장치의 억세스 횟수를 줄이며, 하이-히트율 캐시라인을 보존할 수 있는 풀-세트 어소시에이티브 캐시 메모리 및 상기 풀-세트 어소시에이티브 캐시 메모리와 동시에 상기 캐시히트 판정을 위한 태그 비교를 실행하는 넌-풀-세트 어소시에이티브 캐시 메모리의 조합을 채용하는 캐시 프로세싱 방법이 제공된다. 캐시 프로세싱 방법은 제 1 태그 비교단계, 제 2 태그 비교단계, 캐시 히트 카운트 관리단계, 제 1 캐시 데이터 판독 프로세스, 제 2 캐시 데이터 판독 프로세스, 제 1 데이터 전송단계, 제 2 데이터 전송단계 및 제 3 데이터 전송단계를 구비한다. 제 1 태그 비교단계에서, 입력 어드레스 데이터로부터 취출되는 제 1 태그가 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 제 1 태그와 비교되고, 취출된 제 1 태그가 저장된 제 1 태그 중 하나와 매치되면 풀-세트 어소시에이티브 캐시 메모리에 캐시 히트가 발생된 것으로 판정된다. 제 2 태그 비교단계는 제 1 태그 비교단계와 동시에 실행된다. 제 2 태그 비교단계에서, 입력 어드레스 데이터로부터 취출되는 제 2 태그는 입력 어드레스 데이터로부터 취출되는 인덱스에 대응하는 넌-풀-세트 어소시에이티브 캐시 메모리의 하나 이상의 유효 캐시라인에 저장된 하나 이상의 제 2 태그와 비교되고, 취출된 제 2 태그가 인덱스에 대응하는 저장된 제 2 태그 중 하나와 매치되면 넌-풀-세트 어소시에이티브 캐시 메모리에 캐시 히트가 발생된 것으로 판정된다. 캐시 히트 카운트 관리단계에서는, 풀-세트 어소시에이티브 캐시 메모리의 각 캐시라인에 발생되는 캐시 히트의 횟수가 카운트되고 그럼으로써 캐시라인에 대응하는 캐시 히트 카운트 저장수단에 저장된 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 대해 캐시 히트 카운트값들이 갱신된다.제 1 캐시 데이터 판독 프로세스에서는, 제 1 태그 비교단계에서 캐시 히트가 풀-세트 어소시에이티브 캐시 메모리에 발생되면, 매치된 제 1 태그에 대응하는 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 데이터가 캐시 데이터로서 데이터 프로세싱 장치에 의해 판독된다. 제 2 캐시 데이터 판독 프로세스에서는, 제 2 태그 비교단계에서 캐시 히트가 넌-풀-세트 어소시에이티브 캐시 메모리에 발생되면, 인덱스와 매치된 제 2 태그에 대응하는 넌-풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 데이터가 캐시 데이터로서 데이터 프로세싱 장치에 의해 판독된다. 제 1 데이터 전송단계에서는, 넌-풀-세트 어소시에이티브 캐시 메모리가 인덱스에 대응하는 무효 캐시라인을 갖지 않고 풀-세트 어소시에이티브 캐시 메모리가 하나 이상의 무효 캐시라인을 가질 때 미스 히트가 풀-세트 어소시에이티브 캐시 메모리와 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되면, 미스 히트가 발생된 인덱스에 대응하는 넌-풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 데이터가 풀-세트 어소시에이티브 캐시 메모리의 무효 캐시라인 중 하나로 전송되고, 미스 히트에 의해 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 넌-풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 기입된다. 제 2 데이터 전송단계에서는, 넌-풀-세트 어소시에이티브 캐시 메모리가 인덱스에 대응하는 무효 캐시라인을 갖지 않고 풀-세트 어소시에이티브 캐시 메모리가 유효 캐시라인로 가득할 때 미스 히트가 풀-세트 어소시에이티브 캐시 메모리와 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되면, 미스 히트가 발생된 인덱스에 대응하는넌-풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 데이터가 최소 캐시 히트 카운트값을 갖는 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인 중 하나로 전송되고, 미스 히트에 의해 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 넌-풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 기입된다. 제 3 데이터 전송단계에서는, 넌-풀-세트 어소시에이티브 캐시 메모리가 인덱스에 대응하는 무효 캐시라인을 가질 때 미스 히트가 풀-세트 어소시에이티브 캐시 메모리와 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되면, 미스 히트에 의해 외부 메모리로부터 페치되는 데이터는 인덱스에 대응하는 넌-풀-세트 어소시에이티브 캐시 메모리의 무효 캐시라인에 기입된다.
본 발명의 제 12 양태에 따르면, 제 11 양태의 캐시 히트 카운트 관리단계에서, 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 캐시 히트가 발생될 때, 캐시라인의 캐시 히트 카운트값이 1 만큼 증가되고, 또한 풀-세트 어소시에이티브 캐시 메모리와 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 미스 히트가 발생될 때, 풀-세트 어소시에이티브 캐시 메모리의 모든 캐시라인의 캐시 히트 카운트값이 동시에 1 만큼 감소된다.
본 발명의 제 13 양태에 따르면, 제 11 양태의 캐시 히트 카운트 관리단계에서, 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 캐시 히트가 발생될 때, 캐시라인의 캐시 히트 카운트값이 1 만큼 증가되고, 또한 풀-세트 어소시에이티브 캐시 메모리에 미스 히트가 발생될 때, 풀-세트 어소시에이티브 캐시 메모리의 모든캐시라인의 캐시 히트 카운트값이 동시에 1 만큼 감소된다.
본 발명의 제 14 양태에 따르면, 제 11 양태의 캐시 히트 카운트 관리단계에서, 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 캐시 히트가 발생될 때, 캐시라인의 상기 캐시 히트 카운트값이 1 만큼 증가된다.
본 발명의 제 15 양태에 따르면, 제 11 양태에 있어서, 캐시 프로세싱 방법은 캐시 히트 날짜/시간 저장단계를 더 구비한다. 캐시 히트 날짜/시간 저장단계에서, 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 발생된 최근 캐시 히트의 날짜와 시간에 대한 데이터는 캐시라인에 대응하도록 제공되는 캐시 히트 날짜/시간 저장수단에 저장된다. 제 2 데이터 전송단계에서, 가장 최근에 사용되지 않은 캐시라인이 캐시 히트 날짜/시간 저장수단에 저장된 데이터에 기초하여 최소 캐시 히트 카운트값을 갖는 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인으로부터 선택되고, 또한 선택된 가장 최근에 사용되지 않은 캐시라인이 넌-풀-세트 어소시에이티브 캐시 메모리로부터 풀-세트 어소시에이티브 캐시 메모리로의 데이터 전송의 목적지로서 지정된다.
본 발명의 제 16 양태에 따르면, 제 11 양태에 있어서, 다이렉트 매핑 캐시 메모리가 넌-풀-세트 어소시에이티브 캐시 메모리로서 채용된다.
본 발명의 제 17 양태에 따르면, 제 11 양태에 있어서, N-웨이 세트 어소시에이티브 캐시 메모리 (N = 2, 4, 8, …) 가 넌-풀-세트 어소시에이티브 캐시 메모리로서 채용된다.
본 발명의 제 18 양태에 따르면, 제 17 양태에 있어서, 캐시 프로세싱 방법은 LRU 저장단계를 더 구비한다. LRU 저장단계에서, 인덱스에 대응하는 N-웨이 세트 어소시에이티브 캐시 메모리의 N 개의 캐시라인 중 가장 최근에 사용되지 않은 캐시라인을 나타내는 LRU (least recently used) 값이 인덱스에 대응하여 제공되는 LRU 저장수단에 저장된다. 제 1 데이터 전송단계에서, LRU 값으로 지정된 캐시라인이 N-웨이 세트 어소시에이티브 캐시 테이블의 N 개의 미스 히트 캐시라인으로부터 선택되고 선택된 캐시라인에 저장된 데이터가 풀-세트 어소시에이티브 캐시 메모리의 무효 캐시라인 중 하나로 전송되고, 미스 히트에 의해 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 N-웨이 세트 어소시에이티브 캐시 테이블의 선택된 캐시라인에 기입된다. 제 2 데이터 전송단계에서, LRU 값으로 지정된 캐시라인이 N-웨이 세트 어소시에이티브 캐시 테이블의 N 개의 미스 히트 캐시라인으로부터 선택되고 선택된 캐시라인에 저장된 데이터가 최소 캐시 히트 카운트값을 갖는 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인 중 하나로 전송되고, 또한 미스 히트에 의해 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 N-웨이 세트 어소시에이티브 캐시 테이블의 선택된 캐시라인에 기입된다. 제 3 데이터 전송단계에서, 미스 히트에 의해 외부 메모리로부터 페치되는 데이터는 인덱스에 대응하는 N-웨이 세트 어소시에이티브 캐시 메모리의 무효 캐시라인 중 하나에 기입된다.
본 발명의 제 19 양태에 따르면, 제 18 양태에 있어서, 캐시 프로세싱 방법은 캐시 히트 날짜/시간 저장단계를 더 구비한다. 캐시 히트 날짜/시간 저장단계에서, 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 발생된 최근 캐시 히트의 날짜와 시간에 대한 데이터는 캐시라인에 대응하여 제공되는 캐시 히트 날짜/시간 저장수단에 저장된다. 제 2 데이터 전송단계에서, 가장 최근에 사용되지 않은 캐시라인이 캐시 히트 날짜/시간 저장수단에 저장된 데이터에 기초하여 최소 캐시 히트 카운트값을 갖는 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인으로부터 선택되고, 또한 선택된 가장 최근에 사용되지 않은 캐시라인이 N-웨이 세트 어소시에이티브 캐시 테이블로부터 풀-세트 어소시에이티브 캐시 메모리로의 데이터 전송의 목적지로서 지정된다.
본 발명의 제 20 양태에 따르면, 제 11 양태에 있어서, 캐시 프로세싱 방법은, 풀-세트 어소시에이티브 캐시 메모리와 넌-풀-세트 어소시에이티브 캐시 메모리로 구성되는 1차 캐시 메모리에 부가하여 제공되는 2 차 캐시 메모리가, 풀-세트 어소시에이티브 캐시 메모리와 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 미스 히트가 발생되는 경우에 억세스되는 2 차 캐시 억세스 단계를 더 구비한다.
본 발명의 제 21 양태에 따르면, 본 발명의 제 11 양태 내지 제 20 양태의 캐시 프로세싱 방법의 필수적인 부분들을 실행하도록 컴퓨터에 명령하는 프로그램을 저장하는 컴퓨터-판독가능 기억매체가 제공된다.
도면을 참조하여, 본 발명에 따른 바람직한 실시예를 상세히 설명한다.
도 5 는 본 발명의 제 1 실시예에 따른 캐시 시스템의 캐시부 (15) 의 구성을 나타내는 블럭 다이어그램이다. 도 6 은 본 발명의 제 1 실시예에 따른 캐시 시스템이 적용된 컴퓨터 시스템을 나타내는 블럭 다이어그램이다.
도 6 의 컴퓨터 시스템은 CPU (중앙처리장치; 50), 2 차 캐시 메모리 (20) 및 메인 메모리 (21) 로 주로 이루어져 있다. 2 차 캐시 메모리 (20) 는 CPU (50) 외부에 설치되어 있다. 2 차 캐시 메모리 (20) 는, 예를 들어, 태그 RAM 과 데이터 RAM 을 포함하는 동기 SRAM, 페이지 ROM 을 포함하는 메모리 등으로 구현된다. 2 차 캐시 메모리 (20) 의 종류 (풀-세트 어소시에이티브 (full-set associative) 캐시 메모리 또는 넌-풀-세트 어소시에이티브 (non-full-set associative) 캐시 메모리) 는 특별히 한정되지 않는다. 도 6 의 컴퓨터 시스템에서는, CPU (50), 2 차 캐시 메모리 (20), 메인 메모리 (21) 등을 접속하기 위해, 어드레스 버스와 데이터 버스 (2) 가 설치되어 있다. 메인 메모리 (21) 는 2 차 캐시 메모리 (21) 를 통해 CPU 외부에서 어드레스 버스 (1) 와 데이터 버스 (2) 에 접속되어 있다.
CPU (50) 는, 버스 인터페이스 (I/F) 부 (3), 기입 버퍼 (4), 제어 레지스터 (5), MMU (Memory Management Unit) 레지스터 (6), 산술논리 연산유니트 (ALU; 7), GPR (General Purpose Register) 레지스터 (8), 멀티플라이어 (9), 배럴 시프터 (10), 프로그램 카운터 (11), 클럭 발생기 (12) 및 캐시부 (15) 를 포함한다.
클럭 발생기 (12) 는 공급되는 매스터 클럭 신호의 주파수를 특별한 주파수 승수 (multiplication number) 를 곱함으로써 컴퓨터 시스템의 클럭 신호를 발생시킨다. 기입버퍼 (4) 도 또한 버스 I/F 부 (3) 를 통해 어드레스 버스 (1) 와 데이터 버스 (2) 에 접속되어 있으며, 메인 메모리 (21), 2차 캐시 메모리 (20) 등에 기입될 시스템 데이터를 일시적으로 저장한다. 시스템 데이터 기입은 버스I/F 부 (3) 에 공급되는 제어 데이터에 따라 실행된다. 제어 레지스터 (5) 와 MMU 레지스터 (6) 도 또한 어드레스 버스 (1) 와 데이터 버스 (2) 에 접속되어 있다. 제어 레지스터 (5) 는 클럭 발생기 (12) 의 주파수 승수와 같은 CPU (50) 의 기본적인 세팅에 대한 데이터를 저장한다. MMU 레지스터 (6) 는 가상 어드레스와 물리적 어드레스 사이의 어드레스 변환용 데이터를 저장한다. ALU (7), GPR 레지스터 (8), 멀티플라이어 (9), 배럴 시프터 (10) 및 프로그램 카운터 (11) 를 포함하는 유니트도 또한 어드레스 버스 (1) 와 데이터 버스 (2) 에 접속되어 명령을 실행한다. 구성요소 7 내지 11 을 포함하는 유니트는 이하 '명령실행유니트' 로 지칭된다.
도 5 를 참조하면, 본 실시예의 캐시 시스템의 1차 캐시 메모리는 풀-세트 어소시에이티브 (FSA) 캐시 테이블 TA, 다이렉트 매핑 (DM) 캐시 테이블 TB, 비교기 (30A, 30B), AND 게이트 (31A, 31B), OR 게이트 (32) 및 데이터 셀렉터 (33) 를 포함한다.
본 실시예의 캐시 시스템의 1차 캐시 메모리 (즉, 캐시부 (15)) 는 풀-세트 어소시에이티브 (FSA) 캐시 메모리와 다이렉트 매핑 (DM) 캐시 메모리가 서로 결합되어 이루어진다. 또한, 오직 하나의 비교기 (30A) 및 오직 하나의 AND 게이트 (31A) 가 도 5 에 도시되어 있지만, 구체적으로, 비교기 (30A) 와 AND 게이트 (31A) 는 FSA 캐시 테이블 TA 의 각 캐시라인에 대응하여 설치되어 있고, 상기 캐시라인에 대응하는 AND 게이트 (31A) 의 출력의 논리 OR 는 하나 이상의 도시되지 않은 OR 게이트에 의해 취해진다.
도 5 의 상부에, 입력 어드레스 데이터의 일례인 '00000040' (hex) 가 도시되어 있다. 상기 입력 어드레스 데이터는 태그 #2, 인덱스 및 오프세트를 포함한다. 태그 #2 는 DM 캐시 테이블 TB 에 대해 사용되는 태그이다. FSA 캐시 테이블 TA 에 대해 사용되는 다른 태그 #1 는 태그 #2 와 함께 부가된 인덱스로서 정의된다(태그 #1 = 인덱스 + 태그 #2). 입력 어드레스 데이터 '00000040' 의 경우에, 태그 #2 는 '00000' (예를 들어, 입력 어드레스 데이터 중의 앞자리 5개의 16진수) 이고, 인덱스는 '04' (예를 들어, 입력 어드레스 데이터 중의 다음 자리 2개의 16진수) 이고, 태그 #1 은 '0000004' (예를 들어, 입력 어드레스 데이터 중의 앞자리 7개의 16진수) 이고, 또한 오프세트는 '0' (예를 들어, 입력 어드레스 데이터 중의 마지막 자리 1개의 16진수) 이다.
FSA 캐시 테이블 TA 의 각 캐시라인상에, 캐시라인에 발생되는 억세스 횟수를 나타내는 억세스 카운트 영역 (억세스 카운트 비트) AC 가 형성되어 있다. 억세스 카운트 영역 AC 의 사용에 의한 캐시라인의 억세스 주파수 관리 (후술됨) 에 의해, FSA 캐시 테이블 TA 에서 높은 억세스 주파수 (높은 캐시 히트율) 의 캐시라인의 보존이 실현된다. 또, FSA 캐시 테이블 TA 의 캐시라인의 억세스 카운트 영역 AC 를 관리하는 억세스 카운터는, 예를 들어, 구성요소 7 내지 11 을 포함하는 상술된 명령실행유니트에 의해 구현된다.
비교기 (30A) 는 입력 어드레스 데이터로부터 취출되는 태그 #1 과 FSA 캐시 테이블 TA 의 캐시라인에 저장된 태그 #1 을 비교한다. 취출된 태그 #1 이 저장된 태그 #1 중 하나와 매치되면, 비교기 (30A) 는 하이레벨 (1) 의 비교신호를출력하여 AND 게이트 (31A) 에 공급한다. AND 게이트 (31A) 에, 매치된 태그 #1 에 대응하는 캐시라인의 유효 비트 V1 (1/0) (캐시라인이 유효한지 여부를 나타냄) 이 FSA 캐시 테이블 TA 로부터 공급된다. AND 게이트 (31A) 는, 비교기 (30A) 로부터 공급되는 비교신호와 FSA 캐시 테이블 TA 로부터 공급되는 유효비트 V1 이 '1' 이면, (하이레벨 (1) 의) 캐시 히트 신호를 출력한다. 또, 전술된 바와 같이, 하나의 비교기 (30A) 와 하나의 AND 게이트 (31A) 가 도 5 에 도시되어 있지만, 비교기 (30A) 와 AND 게이트 (31A) 가 구체적으로 FSA 캐시 테이블 TA 의 각 캐시라인에 설치되고, 상기 캐시라인의 AND 게이트 (31A) 의 출력의 논리 OR 이 취해진다.
동시에, 비교기 (30B) 는 입력 어드레스 데이터로부터 취출되는 태그 #2 와 입력 어드레스 데이터로부터 취출되는 인덱스에 대응하는 DM 캐시 테이블 TB 의 캐시라인에 저장된 태그 #2 를 비교한다. 취출된 태그 #2 가 인덱스에 대응하는 캐시라인에 저장된 태그 #2 와 매치되면, 비교기 (30B) 는 하이레벨 (1) 의 비교신호를 출력하여 AND 게이트 (31B) 에 공급한다. AND 게이트 (31B) 에, 매치된 태그 #2 에 대응하는 캐시라인의 유효 비트 V2 (1/0) (캐시라인이 유효한지 여부를 나타냄) 이 DM 캐시 테이블 TB 로부터 공급된다. AND 게이트 (31B) 는, 비교기 (30B) 로부터 공급되는 비교신호와 DM 캐시 테이블 TB 로부터 공급되는 유효비트 V2 가 '1' 이면, (하이레벨 (1) 의) 캐시 히트 신호를 출력한다.
OR 게이트 (32) 는, AND 게이트 (31A) 로부터 공급되는 캐시 히트 신호 또는 AND 게이트 (31B) 로부터 공급되는 캐시 히트 신호가 '1' 이면, (하이레벨 (1)) 의활성신호를 출력한다. OR 게이트 (32) 로부터 데이터 셀렉터 (33) 으로 공급되는 활성신호가 '1' 이면, 데이터 셀렉터 (33) 는 입력 어드레스 데이터의 오프세트에 기초하여 FSA 캐시 테이블 TA 또는 DM 캐시 테이블 TB (매치된 태그 #1 또는 #2) 의 히트 캐시라인에 저장된 데이터의 일부를 선택하여, 선택된 데이터를 도시되지 않은 명령 디코더 또는 CPU (50) 의 GPR 레지스터 (8) 로 보낸다. 또, 캐시 히트가 본 실시예에서 발생되면, 그것은 FSA 캐시 테이블 TA 또는 DM 캐시 테이블 TB 에 발생한다, 즉, 캐시 히트가 FSA 캐시 테이블 TA 와 DM 캐시 테이블 TB 양쪽에 발생하는 경우는 없다.
도 5 에 도시된 FSA 캐시 테이블 (FSA 캐시 메모리) TA 는 DM 캐시 테이블 (DM 캐시 메모리) 보다 복잡한 회로구성을 필요로 하고 전력소비가 보다 크지만, 그러나, 높은 히트율의 캐시라인의 보존이 FSA 캐시 테이블 TA 에서 가능하다. 다른 한편으로, DM 캐시 테이블 (DM 캐시 메모리) TB 는 작은 회로로 고속 억세스를 구현할 수 있지만, 그러나, 그것의 캐시 히트율이 쉽게 저하된다. 본 실시예의 캐시 시스템의 1차 캐시 메모리 (캐시부 (15)) 는 이러한 특성을 함께 갖는 FSA 캐시 테이블 TA와 DM 캐시 테이블 TB 를 결합하여 구현된다.
다음으로, 본 발명의 제 1 실시예에 따른 캐시 시스템의 동작을 상세히 설명한다. 도 7 은 본 발명의 제 1 실시예에 따른 캐시 시스템의 동작을 나타내는 흐름도이다. 또, 본 실시예에서는, 메인 메모리 (21) 또는 2 차 캐시 메모리 (20) 으로부터 페치되는 데이터가 저장되고 DM 캐시 테이블 TB 에 레지스트된다 (FSA 캐시 테이블 TA 에는 레지스트되지 않음). 캐시부 (15) 에 미스 히트가발생되면 (즉, 미스 히트가 입력 어드레스 데이터로부터 취출되는 인덱스에 대응하는 FSA 캐시 테이블 TA 와 DM 캐시 테이블 TB 양쪽에 발생되면), 인덱스에 대응하는 DM 캐시 테이블 TB 의 캐시라인에 저장된 데이터가 삭제되거나 또는 DM 캐시 테이블 TB 에서 무효화되어 FSA 캐시 테이블 TA 로 전송된다.
CPU (50) 는 프로그램 카운터 (11) 로부터 공급되는 입력 어드레스 데이터에 따라 명령 페치 프로세스를 시작한다(스텝 S10). FSA 캐시 메모리에서, 도 5 에 도시된 (FSA 캐시 테이블 TA 의 각 캐시라인에 대응하는 비교기 (30A) 로 구체적으로 구성된) 비교기 (30A) 는 입력 어드레스 데이터로부터 취출되는 (오프세트 이외의 입력 어드레스 데이터의 일부) 태그 #1 과 FSA 캐시 테이블 TA 에 저장된 태그 #1 을 비교한다. 취출된 태그 #1 이 저장된 태그 #1 중 하나와 매치되면 (스텝 S11 에서 '예'), 비교기 (30A) 는 하이레벨 '1' 의 비교신호를 AND 게이트 (31A) 로 출력한다. 비교기 (30A) 의 출력과 매치된 태그 #1 에 대응하는 캐시라인의 유효 비트 V1 (1/0) 양쪽이 '1' 이면 (스텝 S12 에서 '예'), 도 5 에 도시된 (AND 게이트 (31A) (FSA 캐시 테이블 TA 의 각 캐시라인에 대응) 및 AND 게이트 (31A) 의 출력의 논리 OR 를 취하는 하나 이상의 OR 게이트로 구체적으로 구성되는) AND 게이트 (31A) 는 하이 레벨 '1' 의 (유효 캐시 히트가 FSA 캐시 테이블 TA 에 발생했음을 나타내는) 캐시 히트 신호를 OR 게이트 (32) 에 출력한다. 취출된 태그 #1 이 저장된 태그 #1 중 어느 것과도 매치하지 않으면 (스텝 S11 에서 '아니오') 또는 히트 캐시라인의 유효 비트 V1 이 '0' 이면 (스텝 S12 에서 '아니오'), AND 게이트 (31A) 의 출력은 '0' 으로 된다(스텝 S13).
동시에, 캐시 히트의 존재 유무에 대한 판정을 위한 태그 비교도 DM 캐시 메모리에서 실행된다. DM 캐시 메모리에서, 인덱스 (태그 #2 (앞자리 5 개의 16 진수) 다음의 입력 어드레스 데이터에서의 2 자리 16 진수)) 는 입력 어드레스 데이터로부터 취출되고 그럼으로써 인덱스에 대응하는 DM 캐시 테이블 TB 의 캐시라인이 선택되고 지정된다(스텝 S14). 도 5 에 도시된 비교기 (30B) 는 입력 어드레스 데이터로부터 취출되는 태그 #2 (인덱스와 오프세트 이외의 입력 어드레스 데이터의 일부) 와 인덱스에 대응하는 FSA 캐시 테이블 TA 의 선택된 캐시라인에 저장된 태그 #2 를 비교한다. 취출된 태그 #2 가 저장된 태그 #2 와 매치되면 (스텝 S15 에서 '예'), 비교기 (30B) 는 하이레벨 '1' 의 비교신호를 AND 게이트 (31B) 로 출력한다. 비교기 (30B) 의 출력과 매치된 태그 #2 에 대응하는 캐시라인의 유효 비트 V2 (1/0) 양쪽이 '1' 이면 (스텝 S16 에서 '예'), AND 게이트 (31B) 는 (DM 캐시 테이블 TB 에 유효 캐시 히트가 발생했음을 나타내는) 하이레벨 '1' 의 캐시 히트 신호를 OR 게이트 (32) 로 출력한다. 취출된 태그 #2 가 인덱스에 대응하는 저장된 태그 #2 와 매치하지 않으면 (스텝 S15 에서 '아니오') 또는 히트 캐시라인의 유효 비트 V2 가 '0' 이면 (스텝 S16 에서 '아니오'), AND 게이트 (31B) 의 출력은 '0' 으로 된다(스텝 S17).
도 5 에 도시된 OR 게이트 (32) 는, AND 게이트 (31A) 로부터 공급되는 캐시 히트 신호 또는 AND 게이트 (31B) 로부터 공급되는 캐시 히트 신호가 '1' 이면, 하이레벨 '1' 의 활성 신호를 데이터 셀렉터 (33) 로 출력한다. 그렇지 않으면, (AND 게이트 (31A 와 31B) 로부터 공급되는 캐시 히트 신호 양쪽이 '0' 이면), OR게이트 (32) 는 로우레벨 '0' 의 활성신호를 데이터 셀렉터 (33) 로 출력한다. 또, 본 실시예에서는, 캐시 히트가 FSA 캐시 테이블 TA 와 DM 캐시 테이블 TB 양쪽에 발생하는 경우는 없고, 따라서, AND 게이트 (31A 와 31B) 로부터 공급되는 캐시 히트 신호 양쪽이 '1' 인 경우는 없다.
OR 게이트 (32) 에 의해 출력되는 활성 신호가 '0' (미스 히트가 캐시부 (15) 에 발생됨을 나타냄)인 경우에 (스텝 S18 에서 '아니오'), CPU (50) 는 2 차 캐시 메모리 (20) 를 통해 메인 메모리 (21) 에 억세스하여 메인 메모리 (21) (미스 히트가 2 차 캐시 메모리 (20) 에 발생된 경우) 또는 2 차 캐시 메모리 (20) (캐시 히트가 2차 캐시 메모리 (20) 에 발생된 경우) 로부터 데이터를 페치한다. 이 경우, (미스 히트가 발생된) 인덱스에 대응하는 DM 캐시 테이블 TB 의 캐시라인에 저장된 데이터 (태그 #2 와 데이터) 가 FSA 캐시 테이블 TA 에 전송되고 (DM 캐시 테이블 TB 의 캐시라인의 데이터는 삭제 또는 무효화된다), 메인 메모리 (21) 또는 2 차 캐시 메모리 (20) 로부터 페치된 데이터가 DM 캐시 테이블 TB 의 캐시라인에 저장된다(스텝 S19). 그 후, CPU (50) 는 DM 캐시 테이블 TB 의 캐시라인의 데이터 (메인 메모리 (21) 또는 2 차 캐시 메모리 (20) 로부터 페치된 데이터 (데이터 또는 명령)) 를 판독하고 데이터 또는 명령에 대한 프로세스를 실행한다(스텝 S21).
OR 게이트 (32) 에 의해 출력되는 활성 신호가 '1' (캐시 히트가 캐시부 (15) 에 발생됨을 나타냄) 인 경우에 (스텝 S18 에서 '예'), (캐시 히트가 발생된 FSA 캐시 테이블 TA 또는 DM 캐시 테이블 TB 의) 히트 캐시라인에 저장된 데이터의일부가 선택되어 입력 어드레스 데이터의 오프세트에 기초하여 데이터 셀렉터 (33) 에 의해 취출되고(스텝 S20), 취출된 데이터 (데이터 또는 명령) 에 대한 프로세스가 CPU (50) 에 의해 실행된다(스텝 S21).
다음으로, FSA 캐시 테이블 TA 및 DM 캐시 테이블 TB 의 동작을 상세히 설명한다.
초기 (도 6 의 컴퓨터 시스템이 리세트 또는 턴온될 때) 에, FSA 캐시 테이블 TA 와 DM 캐시 테이블 TB 의 모든 캐시라인은 무효로 설정되어 있다, 즉, 캐시라인의 유효 비트 V1 과 V2 가 '0' 으로 설정되어 있다. 그 후, 데이터가 FSA 캐시 테이블 TA 또는 DM 캐시 테이블 TB 의 캐시라인에 기입되거나 또는 전송되면, 캐시라인이 유효로 바뀌고, 즉, 캐시라인의 유효 비트 V1 또는 V2 가 '0' 에서 '1' 로 바뀐다.
미스 히트가 캐시부 (15) 에 발생된 경우 (즉, 미스 히트가 FSA 캐시 테이블 TA 와 입력 어드레스 데이터의 인덱스에 대응하는 DM 캐시 테이블 TB 의 캐시라인에 발생되는 경우) 에, DM 캐시 테이블 TB 의 캐시라인에 저장된 데이터 (데이터와 태그 #2) 는 FSA 캐시 테이블 TA 의 무효 캐시라인으로 전송된다. 상기 전송에 의해, DM 캐시 테이블 TB 의 캐시라인이 무효로 바뀌고 (즉, DM 캐시 테이블 TB 의 캐시라인에 저장된 데이터가 무효화되거나 또는 거의 삭제된다) FSA 캐시 테이블 TA 의 캐시라인이 유효로 바뀐다. 무효로 바뀐 DM 캐시 테이블 TB 의 캐시라인에, 메인 메모리 (21) 또는 2차 캐시 메모리 (20) 로부터 페치된 데이터가 기입되고, 그럼으로써 캐시라인이 다시 유효로 바뀐다.
FSA 캐시 테이블 TA 에서, 유효 캐시라인은 캐시라인의 억세스 카운트 영역 AC 에 저장된 억세스 카운트값에 기초하여 관리되고 제어된다. 각 캐시라인의 억세스 카운트 영역의 비트의 개수는 본 실시예에서는 예를 들어 2 비트로 설정되어 있다. 데이터가 FSA 캐시 테이블 TA 의 캐시라인에 기입될 때, 캐시라인의 억세스 카운트값은 도시되지 않은 억세스 카운터에 의해 '0' 으로 리세트된다. 도시되지 않은 억세스 카운터는, 캐시 히트가 캐시라인에 발생할 때 캐시라인의 억세스 카운트값을 1 만큼 증가시킨다.
미스 히트가 캐시부 (15) 에 발생된 경우 (즉, 미스 히트가 FSA 캐시 테이블 TA 와 입력 어드레스 데이터의 인덱스에 대응하는 DM 캐시 테이블 TB 의 캐시라인에 발생되는 경우) 에, 도시되지 않은 억세스 카운터는 FSA 캐시 테이블 TA 의 모든 캐시라인의 억세스 카운트값을 동시에 1 만큼 감소시킨다. 본 실시예에서 억세스 카운트값의 최소값과 최대값은 십진수로 '0' 과 '3' 이다. 그러므로, 억세스 카운트값은 '0' 아래로 감소되지 않고 '3' 위로 증가되지 않는다.
또, 도시되지 않은 억세스 카운터가, 미스 히트가 FSA 캐시 테이블 TA 에 발생될 때 (즉, 미스 히트가 FSA 캐시 테이블 TA 의 모든 캐시라인에 발생될 때), FSA 캐시 테이블 TA 의 모든 캐시라인의 억세스 카운트값을 동시에 감소 (-1) 시킬 수도 있다. 이 경우, 캐시 히트가 DM 캐시 테이블 TB 에 발생되고 미스 히트가 FSA 캐시 테이블 TA 에 발생된 경우에도, 동시 감소가 상술된 방법과 달리 실행되며, 그러므로, 억세스 카운트값이 보다 빈번하게 감소된다.
합산하여, 각 억세스 카운트값 (0 ~ 3) 은 다음의 의미를 갖는다.
AC 캐시라인의 유효한 억세스 (캐시 히트) 카운트
0 0 번 이하
1 1 번
2 2 번
3 3 번 이상
FSA 캐시 테이블 TA 가 몇개의 무효 캐시라인을 갖는 경우, 상기 무효 캐시라인은, 상술된 바와 같이, DM 캐시 테이블 TB 의 미스 히트 캐시라인 (미스 히트가 발생된 캐시라인) 으로부터 FSA 캐시 테이블 TA 까지의 데이터 전송의 목적지로서 간주된다. 그러므로, FSA 캐시 테이블 TA 이 몇개의 무효 캐시라인을 가질 때 미스 히트가 캐시부 (15) 에 발생된 경우에, DM 캐시 테이블 TB 의 히트 캐시라인에 저장된 데이터 (데이터와 태그 #2) 는 FSA 캐시 테이블 TA 의 무효 캐시라인 중 하나로 전송된다.
다른 한편으로, FSA 캐시 테이블 TA 가 유효 캐시라인으로 가득할 때, 최소 억세스 카운트값을 갖는 FSA 캐시 테이블 TA 의 캐시라인은 DM 캐시 테이블 TB 의 미스 히트 캐시라인으로부터 FSA 캐시 테이블 TA 로의 데이터 전송의 목적지로서 간주된다. 그러므로, FSA 캐시 테이블 TA 가 유효 캐시라인으로 가득할 때 미스 히트가 캐시부 (15) 에 발생되는 경우에, DM 캐시 테이블 TB 의 미스 히트 캐시라인에 저장된 데이터 (데이터와 태그 #2) 는 최소 억세스 카운트값을 갖는 FSA 캐시 테이블 TA 의 캐시라인 중 하나로 전송된다. 상기 목적지는 최소-억세스-카운트 캐시라인으로부터 무작위로 선택될 수 있다. 그러나, 상기 최소-억세스-카운트 캐시라인으로부터 가장 최근에 사용되지 않은 캐시라인 (그의 최근 캐시 히트가 가장 오래전에 발생됨) 을 선택하고, 선택된 가장 최근에 사용되지 않은 캐시라인을 데이터 전송의 목적지로서 간주할 수 있다. 이러한 가장 최근에 사용되지 않은 캐시라인의 선택은 예를 들어, FSA 캐시 테이블 TA 의 각 캐시라인에 억세스 날짜/시간을 저장하는 영역을 제공함으로써 구현될 수 있다.
또, DM 캐시 테이블 TB 이 인덱스에 대응하는 무효 캐시라인을 가질 때 미스 히트가 캐시부 (15) 에 발생된 경우, 메인 메모리 (21) 또는 2 차 캐시 메모리 (20) 로부터 페치된 데이터는 인덱스에 대응하는 DM 캐시 테이블 TB 의 무효 캐시라인에 기입된다. 이 경우에, DM 캐시 테이블 TB 로부터 FSA 캐시 테이블 TA 로의 데이터 전송은 실행되지 않는다.
다음에, 캐시 프로세싱의 실행 시간을 설명한다.
도 8 은 CPU (50) 로 실행되는 프로그램의 일례를 나타내는 개략적인 다이어그램이다. 또, 도 8 은 '종래 기술의 설명' 에 언급된 도 2 와 동일하다. 8 을 참조하면, 상기 프로그램은 실행될 명령 (1), (2),을 포함한다. CPU (50) 는 먼저 제 1 명령 (1) 에 대해 (프로그램 카운터 (11) 로부터 공급되는) 입력 어드레스 데이터를 참조한다. 명령 (1) 에 대한 입력 어드레스 데이터 '00000040' 는 제 1 명령이 사전에 메인 메모리 (21) 의 어드레스 '00000040' 에 저장된 것을 나타낸다. 전술된 바와 같이, 입력 어드레스 데이터 '00000040' 는 태그 #2 (00000), 인덱스 (04) 및 오프세트 (0) (및 태그 #1 (0000004)) 를 포함한다. 태그 #1, 태그 #2, 인덱스 및 오프세트를 포함하는 입력 어드레스 데이터가 캐시부 (15) 에 공급되고 캐시 히트 판정을 위한 프로세스가 상술된 바와 같이 실행된다. 캐시 히트 판정 프로세스의 결과에 따르면, CPU (50) 는 FSA 캐시 테이블 TA, DM 캐시 테이블 TB 또는 메인 메모리 (21) (또는 2차 캐시 메모리 (20)) 로부터 필요한 데이터 (명령 (1)) 를 획득하고, 상기 명령 (1) 을 실행한다. 그 후, 동일한 프로세스가 이어지는 명령 (2), (3),에 대해 실행된다.
도 9a 와 9b 는 도 8 의 프로그램이 2 번 실행될 때 본 실시예의 캐시 시스템을 채용하는 CPU (50) 의 억세스 시간을 나타내는 개략적인 다이어그램으로, 도 9a 는 도 8 의 프로그램이 첫번째로 실행된 경우를 나타내고 도 9b 는 도 8 의 프로그램이 두번째로 실행된 경우를 나타낸다. 도 10 은 CPU (50) 에 의해 도 8 의 명령 (5) 을 실행한 직후의 FSA 캐시 테이블 TA 와 DM 캐시 테이블 TB 의 상태를 나타내는 개략적인 다이어그램이다.
또, 프로그램 실행 시간에 대한 다음의 설명은 '종래 기술의 설명' 에서 설명에 채택된 것과 동일한 가정을 하였다. FSA 캐시 테이블 TA 와 DM 캐시 테이블 TB 의 각 캐시라인의 데이터 저장영역의 길이는 4 워드 (16 바이트) 이고 각 명령의 길이는 1 워드 (4 바이트) 로 가정된다(즉, 4 개의 명령이 FSA 캐시 테이블 TA 와 DM 캐시 테이블 TB 의 각 캐시라인의 데이터 저장영역에 저장된다). 또한, 미스 히트가 캐시부 (15) 에 발생될 때 데이터가 메인 메모리 (21) 로부터 페치되고 (캐시 히트가 2차 캐시 메모리 (20) 에 발생되지 않음), 2 차 캐시 메모리 (20) 의 데이터 프로세싱 타임을 0 으로 가정하여 설명한다. DM 캐시 테이블 TB 의 캐시 사이즈는 예를 들어, 4 킬로 바이트로 설정된다. 메인 메모리 (21)로부터 데이터 (명령) 를 페칭하는데 필요한 억세스 시간은, 제 1 워드에 대해 100 ns, 다음의 3 개의 워드 각각에 대해 30 ns 로 가정한다. 그러므로, 메인 메모리 (21) 로부터 4 워드 (4 명령) 의 데이터를 페칭하고 DM 캐시 테이블 TB 의 캐시라인에 데이터를 저장하는데 필요한 억세스 시간은 100 + 30 + 30 + 30 = 190 ns 로 된다. CPU (50) 는 DM 캐시 테이블 TB 의 캐시라인에 막 저장된 명령을 판독하여 실행하는데 10 ns 걸리는 것으로 가정된다.
초기화 상태에서, FSA 캐시 테이블 TA 와 DM 캐시 테이블 TB 의 모든 캐시라인은 무효로 설정되어 있다, 즉, 캐시라인의 모든 유효 비트 V1 과 V2 가 '0' 으로 설정되어 있다. 초기화 직후, 유효 비트 V1 과 V2 가 모두 '0' 이기 때문에, FSA 캐시 테이블 TA 와 DM 캐시 테이블 TB 에는 데이터가 거의 존재하지 않는다. 그러므로, CPU (50) 는 메인 메모리 (21) 로부터 필요한 데이터 ( 도 8 의 프로그램의 제 1 인덱스 '04' 에 대응하는 명령 (1) 내지 (4)) 를 페치하고, 페치된 명령 (1) 내지 (4) 를 인덱스 '04' 에 대응하는 DM 캐시 테이블 TB 의 캐시라인에 기입한다. 데이터 기입에 의해, 인덱스 '04' 에 대응하는 DM 캐시 테이블 TB 의 캐시라인이 유효로 바뀐다, 즉, 캐시라인의 유효 비트 V2 가 '1' 로 설정된다 (도 5 참조). 그 후, CPU (50) 가 DM 캐시 테이블 TB 의 캐시라인으로부터 제 1 명령 (1) 을 판독하고 상기 명령 (1) 을 실행한다. 도 9a 에 도시된 제 1 프로그램 실행에서는, 컴퓨터 시스템의 루틴을 시작한 후 제 1 명령 (1) 을 실행하는데 100 + 30 + 30 + 30 + 10 = 200 ns 가 걸린다. 다음의 명령 (2), (3) 및 (4) 각각은 실행되는데 10 ns 걸린다(30 ns). 그 후, 어드레스 (00001030) 내지(0000103C) 에 대응하는 다음의 4 개의 명령이 동일한 방식으로 CPU (50) 에 의해 실행된다 (200 + 10 + 10 + 10 = 230 ns). 도 8 에 도시된 (상술된 인덱스 '04' 에 대응하는) 명령 (5) 가 CPU (50) 에 의해 실행될 때, 명령 (1) 에 대응하는 명령 (1) 과 태그 #2 (00000) 는 이미 인덱스 '04' 에 대응하는 DM 캐시 테이블 TB 의 캐시라인에 저장되어 있다. 그러므로, 미스 히트 (0000100000) 가 인덱스 '04' 에 대응하는 캐시라인에서 발생한다. 미스 히트는 또한 제 1 프로그램 실행에서 FSA 캐시 테이블 TA 에 발생한다. 그러므로, 인덱스 '04' 에 대응하는 DM 캐시 테이블 TB 의 캐시라인에 저장된 명령 (1) 과 태그 #2 (00000) 는 FSA 캐시 테이블 TA 의 무효 캐시라인 (또는 최소 억세스 카운트값 (FSA 캐시 테이블 TA 이 유효 캐시라인으로 가득한 경우에) 을 갖는 FSA 캐시 테이블 TA 의 캐시라인) 에 전송되고, 메인 메모리 (21) 로부터 페치되고 태그 #2 (00001) 에 대응하는 명령 (5) 가 인덱스 '04' 에 대응하는 DM 캐시 테이블 TB 의 캐시라인에 기입된다. 미스 히트에 의해, 명령 (5) 의 실행도 또한 100 + 30 + 30 + 30 + 10 = 200 ns 걸린다. 다음의 3 개의 명령은 각각 실행되는데 10 ns 걸린다 (30 ns). 그러므로, 제 1 프로그램 실행에서 총 프로그램 실행 시간은 230 ×3 = 690 ns 이다.
도 9a 에 도시된 제 1 프로그램이 종료되는 시점에서, 도 8 의 프로그램의 모든 명령은 이미 FSA 캐시 테이블 TA 또는 DM 캐시 테이블 TB 에 저장되어 있다. 예를 들어, 명령 (1) (상술된 인덱스 '04' 에 대응) 이 제 2 프로그램 실행에서 CPU (50) 에 의해 실행될 때, 명령 (1) 은 도 10 에 도시된 바와 같이 FSA 캐시 테이블 TA 에 저장되어 있고, 따라서 미스 히트가 명령 (1) 의 제 2 실행에서는 발생하지 않는다. 그러므로, 도 9b 에 도시된 제 2 프로그램 실행에서, 각 명령은 실행되는데 각각 10 ns 만 걸리고, 따라서 제 2 프로그램 실행에서 총 프로그램 실행시간은 10 ×12 = 120 ns 이다. 그러므로, 도 8 (도 2) 의 프로그램을 2 번 실행하는 총 실행시간은 810 ns 가 된다.
상술된 바와 같이, 종래의 다이렉트 매핑 캐시 메모리가 사용된 경우, 총 1190 ns 의 실행시간이 필요하였다. 그러므로, 본 발명의 제 1 실시예에 따른 캐시 시스템의 사용에 의해 380 ns 의 실행시간이 절약된다.
상술한 바와 같이, 본 발명의 제 1 실시예에 따른 캐시 시스템에서는, DM 캐시 테이블 TB 와 FSA 캐시 테이블 TA 가 캐시부 (15) 에서 캐시 시스템의 1차 캐시 메모리로서 함께 결합되어 있고, 캐시 히트 판정을 위한 태그 비교가 FSA 캐시 테이블 TA 와 DM 캐시 테이블 TB 에서 동시에 실행된다. 그러므로, 고속 태그 비교가 증가된 캐시 히트율로 캐시부 (15) 에서 실행되고, 그럼으로써 메인 메모리 (21) (또는 2차 캐시 메모리 (20)) 에 대한 CPU (50) 의 억세스 회수와 데이터 억세스 시간이 감소되고 따라서 고속 프로그램 실행이 구현된다.
게다가, 데이터 관리/전송이 다음처럼 캐시 시스템에서 실행된다. FSA 캐시 테이블 TA 의 각 캐시라인에 대한 억세스 횟수 (캐시 히트) 가 각 캐시라인의 억세스 카운트 영역 AC 에 저장된다. 캐시 히트가 FSA 캐시 테이블 TA 의 캐시라인에 발생되는 경우, 캐시라인의 억세스 카운트값은 1 만큼 증가된다. 미스 히트가 캐시부 (15) 에 발생된 경우 (또는 미스 히트가 FSA 캐시 테이블 TA 에 발생된 경우), FSA 캐시 테이블 TA 의 모든 캐시라인의 억세스 카운트값은 동시에 1 만큼 감소된다.
DM 캐시 테이블 TB 이 인덱스에 대응하는 무효 캐시라인을 갖지 않고 FSA 캐시 테이블 TA 이 하나 이상의 무효 캐시라인을 갖는 경우에, DM 캐시 테이블 TB 의 미스 히트 캐시라인에 저장된 데이터 (데이터와 태그 #2) 는 FSA 캐시 테이블 TA 의 무효 캐시라인 중 하나로 전송된다. 캐시부 (15) 의 미스 히트에 의해 메인 메모리 (21) (또는 2차 캐시 메모리 (20)) 로부터 페치된 데이터는 데이터 (데이터와 태그 #2) 가 FSA 캐시 테이블 TA 로 전송되었던 DM 캐시 테이블 TB 의 캐시라인에 기입된다.
DM 캐시 테이블 TB 가 인덱스에 대응하는 무효 캐시라인을 갖지 않고 FSA 캐시 테이블 TA 이 유효 캐시라인으로 가득할 때 미스 히트가 캐시부 (15) 에 발생한 경우에, DM 캐시 테이블 TB 의 미스 히트 캐시라인에 저장된 데이터 (데이터와 태그 #2) 는 최소 억세스 카운트값을 갖는 FSA 캐시 테이블 TA 의 캐시라인 중 하나로 전송된다. 가장 최근에 사용되지 않은 캐시라인 (그의 최근 캐시 히트는 가장 오래전에 발생됨) 이 최소-억세스-카운트 캐시라인들로부터 선택되고, 선택된 가장 최근에 사용되지 않은 캐시라인이 DM 캐시 테이블 TB 로부터 FSA 캐시 테이블 TA 로의 데이터 전송의 목적지로서 지시되는 것이 바람직하다. 캐시부 (15) 의 미스 히트에 의해 메인 메모리 (21) (또는 2차 캐시 메모리 (21)) 로부터 페치된 데이터는 상기 데이터 (데이터와 태그 #2) 가 그로부터 FSA 캐시 테이블 TA 로 전송되었던 DM 캐시 테이블 TB 의 캐시라인에 기입된다.
DM 캐시 테이블 TB 가 인덱스에 대응하는 무효 캐시라인을 가질 때 미스 히트가 캐시부 (15) 에 발생되는 경우에, 캐시부 (15) 의 미스 히트에 의해 메인 메모리 (21) (또는 2 차 캐시 메모리 (20)) 로부터 페치된 데이터는 인덱스에 대응하는 DM 캐시 테이블 TB 의 무효 캐시라인에 기입된다.
이러한 데이터 관리/전송에 의해, FSA 캐시 테이블 TA 의 캐시라인의 갱신이 각 캐시라인의 억세스 카운트값 (유효한 히트 카운트) 을 고려하여 실행되고, 그러므로, 하이-히트율 캐시라인을 보존하는 능력이 FSA 캐시 테이블 TA 에서 향상되고 그럼으로써 캐시부 (15) 의 캐시 히트율이 증가된다. 게다가, FSA 캐시 테이블 TA 과 DM 캐시 테이블 TB 에서의 데이터 복사가 완전히 없어지고, 즉, 특정한 데이터 (동일 데이터) 가 FSA 캐시 테이블 TA 과 DM 캐시 테이블 TB 양쪽에 저장되는 경우가 없다. 그럼으로써, FSA 캐시 테이블 TA 과 DM 캐시 테이블 TB 의 메모리 공간이 완전히 효율적으로 사용될 수 있고 제한된 데이터 저장 능력의 캐시부 (15) 에 저장될 수 있는 캐시 데이터량이 최대로 증가될 수 있다. 그러므로, 캐시부 (15) 의 캐시 히트율이 더 효율적으로 증가될 수 있고 메인 메모리 (21) (또는 2 차 캐시 메모리 (20))에 대한 억세스 횟수가 최소로 감소되고, 그럼으로써 CPU (50) 의 프로그램 실행시간의 감소가 매우 높은 레벨에서 얻어진다.
또, 제 1 실시예의 캐시 시스템은 2차 캐시 메모리 (20) 에 포함되지만, 제 1 실시예의 상기 효과는 캐시 시스템이 도 11 에 도시된 바와 같이 2 차 캐시 메모리 (20) 를 갖지 않는 경우에도 얻어질 수 있다. 2 차 캐시 메모리 (20) 를 부가함으로써, 캐시 시스템의 효과가 향상될 수 있다.
도 12 는 본 발명의 제 2 실시예에 따른 캐시 시스템의 캐시부 (15A) 의 구성을 나타내는 블럭 다이어그램이다. 상기 캐시부 (15A) 가 도 6 과 도 11 에 도시된 컴퓨터 시스템에서의 캐시부 (15) (도 1 참조) 를 대신하여 제 2 실시예에 채용되어 있다. 도 12 의 캐시부 (15A) 에서 FSA 캐시 테이블 TA 는 보다 큰 사이즈의 억세스 카운트 영역 AC 를 갖는다. 구체적으로, FSA 캐시 테이블 TA 의 각 캐시라인의 억세스 카운트 영역 AC2 의 사이즈는 예를 들어, 16 비트로 설정되어 있다. 제 2 실시예의 16-비트 억세스 카운트 영역 AC 는 0 부터 65535 까지 카우트할 수 있지만, 제 1 실시예의 2-비트 억세스 카운트 영역 AC 는 단지 3 까지만 카운트할 수 있었다.
제 2 실시예에서, 도시되지 않은 억세스 카운터는 억세스 카운트 영역 AC 의 관리를 상이하게 실행한다. 캐시 히트가 FSA 캐시 테이블 TA 의 캐시라인에 발생될 때, 도시되지 않은 억세스 카운터는, 제 1 실시예에서와 동일한 방법으로, 캐시라인의 억세스 카운트값을 1 만큼 증가시킨다. 그러나, 제 2 실시예의 도시되지 않은 억세스 카운터는, 미스 히트가 캐시부 (15A) 에 발생되어도 FSA 캐시 테이블 TA 의 모든 캐시라인의 억세스 카운트값을 동시에 감소 (-1) 시키지 않는다. 그러므로, 제 2 실시예에서, FSA 캐시 테이블 TA 의 캐시라인의 억세스 카운트 영역 AC 에 저장된 억세스 카운트값들이 오직 증가된다.
DM 캐시 테이블 TB 로부터 FSA 캐시 테이블 TA 로의 데이터 전송은, 다음과 같이, 제 1 실시예에서와 동일한 방법으로 실행된다. FSA 캐시 테이블 TA 가 하나 이상의 무효 캐시라인을 갖고 있을 때 미스 히트가 캐시부 (15A) 에 발생된경우에, DM 캐시 테이블 TB 의 미스 히트 캐시라인에 저장된 데이터 (데이터와 태그 #2) 는 FSA 캐시 테이블 TA 이 무효 캐시라인 중 하나로 전송된다. FSA 캐시 테이블 TA 가 유효 캐시라인으로 가득할 때 미스 히트가 캐시부 (15A) 에 발생된 경우에, DM 캐시 테이블 TB 의 미스 히트 캐시라인에 저장된 데이터 (데이터와 태그 #2) 는 최소 억세스 카운트값을 갖는 캐시라인 중 하나로 전송된다.
2-비트 억세스 카운트 영역 AC 을 사용하는 제 1 실시예에서, 최소 억세스 카운트값 ('0' 과 같은) 을 갖는 캐시라인의 수는 커지는 경향이지만, 제 2 실시예에서 그 수는 감소된다. 그러므로, 본 발명의 제 2 실시예에 따른 캐시 시스템에 의해, 캐시라인의 히트 카운트 사이의 차이는 FSA 캐시 테이블 TA 에서 하이-히트-비율(하이-히트-카운트) 캐시라인을 보존하는 프로세스에 보다 직접 포함될 수 있다.
도 13 은 본 발명의 제 3 실시예에 따라 캐시 시스템의 캐시부 (15B) 에 넌-풀-세트 어소시에이티브 캐시 테이블로서 채용되는 4-웨이 세트 어소시에이티브 캐시 테이블 TC 를 나타내는 개략적인 다이어그램이다. DM (다이렉트 매핑) 캐시 테이블 TB 이 제 1 및 제 2 실시예에서 캐시부 (15, 15A) 의 넌-풀-세트 어소시에이티브 캐시 테이블로서 채용되었지만, 제 3 실시예의 캐시부 (15B) 는 풀-세트 어소시에이티브 (FSA) 캐시 테이블 TA 에 결합될 넌-풀-세트 어소시에이티브 캐시 테이블로서 도 13 의 4-웨이 세트 어소시에이티브 캐시 테이블 TC 를 채용한다.
도 13 을 참조하면, 4-웨이 세트 어소시에이티브 캐시 테이블 TC 는 인덱스에 대응하는 4 개의 캐시라인을 갖는다. 인덱스에 대응하는 4 개의 캐시라인각각은, 제 1 및 제 2 실시예의 DM 캐시 테이블 TB 와 유사하게, 유효 비트 V2, 태그 #2 및 데이터를 저장하는 3 개의 영역을 갖는다. 4 개의 캐시라인으로 구성되는 각 라인의 좌측단에, LRU (least recently used) 값을 저장하는 LRU 영역이 형성된다. LRU 값은 특별한 인덱스에 대응하는 4 개의 캐시라인에서 (최근의 캐시히트가 가장 오래전에 발생됨) 가장 최근에 사용되지 않은 캐시라인을 나타내는 데 사용된다. LRU 영역의 사이즈는 예를 들어 2 비트로 설정되어 4 개의 캐시라인을 나타낼 수 있다.
DM 캐시 테이블 TB 는 하나의 인덱스에 대해 (오직 하나의 태그 #2 에 대응하는) 오직 하나의 데이터만을 저장할 수 있었지만, 4-웨이 세트 어소시에이티브 캐시 테이블 TC 는 하나의 인덱스에 대해 (4 개의 태그 #2 에 대응하는) 4 개의 데이터를 저장할 수 있고, 그러므로, 4-웨이 세트 어소시에이티브 캐시 테이블 TC 의 캐시 히트율이 DM 캐시 테이블 TB 의 히트율보다 높다.
다음에, 제 3 실시예의 캐시 시스템의 캐시부 (15B) 의 FSA 캐시 테이블 TA 및 4-웨이 세트 어소시에이티브 캐시 테이블 TC 의 동작에 대해 상세히 설명한다. 또, 캐시 히트 판정을 위한 태그 비교가, DM 캐시 테이블 TB 의 경우와 유사하게, 입력 어드레스 데이터로부터 취출되는 인덱스와 태그 #2 를 사용하여 4-웨이 세트 어소시에이티브 캐시 테이블 TC 에서 실행된다. 4 개의 태그 비교가 입력 어드레스 데이터에 대해 (입력 어드레스 데이터로부터 취출되는 하나의 인덱스와 하나의 태그 #2 에 대해) 4-웨이 세트 어소시에이티브 캐시 테이블 TC 에서 동시에 실행된다. 다음 설명 이외의 제 3 실시예의 캐시 시스템의 동작은 제 1 실시예의캐시 시스템의 동작과 거의 동일하다.
초기 (컴퓨터 시스템이 리세트되거나 또는 턴온된 경우) 에, FSA 캐시 테이블 TA 와 4-웨이 세트 어소시에이티브 캐시 테이블 TC 의 모든 캐시라인은 무효로 설정된다, 즉, 캐시라인의 유효 비트 V1 과 V2 가 '0' 으로 설정된다. 그 후, 데이터가 FSA 캐시 테이블 TA 또는 4-웨이 세트 어소시에이티브 캐시 테이블 TC 의 캐시라인에 기입 또는 전송되면, 캐시라인은 유효로 바뀐다, 즉, 캐시라인의 유효 비트 V1 또는 V2 가 '0' 에서 '1' 로 바뀐다.
FSA 캐시 테이블 TA 의 각 캐시라인으로의 억세스 횟수 (억세스 카운트값) 는 각 캐시라인의 억세스 카운트 영역 AC 에 저장된다. 캐시 히트가 FSA 캐시 테이블 TA 의 캐시라인에 발생되면, 캐시라인의 억세스 카운트값이 1 만큼 증가된다. 미스 히트가 캐시부 (15B) 에 발생되면 (또는 미스 히트가 FSA 캐시 테이블 TA 에 발생되면), FSA 캐시 테이블 TA 의 모든 캐시라인의 억세스 카운트값이 동시에 1 만큼 감소된다.
4-웨이 세트 어소시에이티브 캐시 테이블 TC 이 인덱스에 대응하는 무효 캐시라인을 갖지 않고 FSA 캐시 테이블 TA 가 하나 이상의 무효 캐시라인을 가질 때 미스 히트가 캐시부 (15B) 에 발생되는 경우 (즉, 미스 히트가 입력 어드레스 데이터의 인덱스에 대응하는 FSA 캐시 테이블 TA 와 4-웨이 세트 어소시에이티브 캐시 테이블 TC 의 4 개의 캐시라인에 발생되는 경우) 에, 4-웨이 세트 어소시에이티브 캐시 테이블 TC 의 4 개의 미스 히트 캐시라인 중 하나에 저장된 데이터 (데이터와 태그 #2) 가 FSA 캐시 테이블 TA 의 무효 캐시라인 중 하나로 전송된다. 4 개의 미스 히트 캐시라인으로부터의 선택은 인덱스에 대응하는 라인의 LRU 영역에 저장된 LRU 값에 기초하여 실행된다. LRU 에 의해 지정된 4 개의 미스 히트 캐시라인 중 하나는 4-웨이 세트 어소시에이티브 캐시 테이블 TC 로부터 FSA 캐시 테이블 TA 로의 데이터 전송의 전송기 (sender) 로서 선택된다.
캐시부 (15B) 의 미스 히트에 의해 메인 메모리 (21) 또는 2 차 캐시 메모리 (20) 으로부터 페치된 데이터는, 데이터 (데이터와 태그 #2) 는 그로부터 FSA 캐시 테이블 TA 로 전송되었던 4-웨이 세트 어소시에이티브 캐시 테이블 TC 의 선택된 캐시라인에 기입된다.
4-웨이 세트 어소시에이티브 캐시 테이블 TC 이 인덱스에 대응하는 무효 캐시라인을 갖지 않고 FSA 캐시 테이블 TA 이 유효 캐시라인으로 가득할 때 미스 히트가 캐시부 (15B) 에 발생된 경우에, LRU 로 지정된 4-웨이 세트 어소시에이티브 캐시 테이블 TC 의 4 개의 미스 히트 캐시라인 중 하나에 저장된 데이터 (데이터와 태그 #2) 는 최소 카운트값을 갖는 FSA 캐시 테이블 TA 의 캐시라인 중 하나로 전송된다. 데이터 전송 목적지는 최소-억세스- 카운트 캐시라인으로부터 무작위로 선택될 수 있다. 그러나, 최소-억세스-카운트 캐시라인으로부터 가장 최근에 사용되지 않은 캐시라인 (그의 최근 캐시 히트가 가장 오래전에 발생됨) 을 선택하고 상기 가장 최근에 사용되지 않은 캐시라인을 목적지로서 간주할 수도 있다. 이러한 가장 최근에 사용되지 않은 캐시라인의 선택은 예를 들어, FSA 캐시 테이블 TA 의 각 캐시라인에 억세스 날짜/시간을 저장하는 영역을 형성함으로써 구현될 수 있다. 캐시부 (21B) 의 미스 히트에 의해 메인 메모리 (21) 또는 2 차 캐시 메모리 (20) 로부터 페치된 데이터는, 상기 데이터 (데이터와 태그 #2) 가 그로부터 FSA 캐시 테이블 TA 로 전송되었던 4-웨이 세트 어소시에이티브 캐시 테이블 TC 의 캐시라인에 기입된다.
4-웨이 세트 어소시에이티브 캐시 테이블 TC 가 인덱스에 대응하는 하나 이상의 무효 캐시라인을 가질 때 미스 히트가 캐시부 (15B) 에 발생되는 경우에, 캐시부 (15B) 의 미스 히트에 의해 메인 메모리 (21) 또는 2 차 캐시 메모리 (20) 로부터 페치된 데이터는 인덱스에 대응하는 4-웨이 세트 어소시에이티브 캐시 테이블 TC 의 무효 캐시라인 중 하나에 기입된다.
상술된 바와 같이, 본 발명의 제 3 실시예에 따른 캐시 시스템에 의해, 제 1 실시예의 효과에 부가하여, 넌-풀-세트 어소시에이티브 캐시 테이블의 캐시 히트율은 4-웨이 세트 어소시에이티브 캐시 테이블 TC 의 사용에 의해 증가될 수 있고, 그럼으로써 캐시부 (15B) 에서 보다 향상된 캐시 히트율이 실현된다. 많은 브랜치를 갖는 프로그램이 CPU (50) 에 의해 실행될 때, 즉, 동일한 인덱스에 대응하는 많은 명령이 CPU (50) 에 의해 실행될 때, 4-웨이 세트 어소시에이티브 캐시 테이블 TC 는 특히 캐시 히트율을 증가시킬 수 있다. 그러므로, 제 3 실시예의 캐시 시스템은 많은 브랜치를 갖는 복잡한 프로그램을 실행하는 컴퓨터 시스템에 적합하다.
또, 4-웨이 세트 어소시에이티브 캐시 테이블 TC 는 풀-세트 어소시에이티브 (FSA) 캐시 메모리에 결합될 넌-풀-세트 어소시에이티브 캐시 메모리로서 제 3 실시예에 채용되었지만, 넌-풀-세트 어소시에이티브 캐시 메모리로서 2-웨이 세트 어소시에이티브 캐시 메모리, 8-웨이 세트 어소시에이티브 캐시 메모리, 등을 채용할 수도 있다.
게다가, FSA 캐시 테이블 TA 의 캐시라인에 대규모 억세스 카운트 영역 AC 을 형성할 수도 있고, 제 2 실시예에서와 같이 도시되지 않은 억세스 카운트를 동작시킴으로써, 제 2 실시예의 효과가 또한 얻어질 수 있다.
또, FSA 캐시 테이블 TA 의 각 캐시라인의 억세스 카운트 영역 AC 에 저장된 억세스 카운트값의 초기값이 제 1 및 제 3 실시예에서 '0' 으로 가정되었지만, 초기값은 '0' 으로 제한되지 않고 보다 큰 값으로 설정되어 억세스 카운트값이 '0' 에 수렴하는 것을 방지할 수 있다. 그 경우, 억세스 카운트 영역 AC 의 사이즈는 제 1 및 제 3 실시예에서 보다 크게 설정된다.
상술된 바와 같이, 본 발명에 따른 캐시 시스템과 캐시 프로세싱 방법에서는, DM (다이렉트 매핑) 캐시 테이블 TB 와 같은 넌-FSA (풀-세트 어소시에이티브) 캐시 테이블 (TB, TC) 이 FSA 캐시 테이블 TA 에 결합된다. 캐시 히트 판정을 위한 태그 비교가 2 개의 캐시 테이블에서 동시에 실행된다. FSA 캐시 테이블 TA 의 각 캐시라인에 발생되는 캐시 히트의 개수는 도시되지 않은 억세스 카운터로 카운트되고, 캐시 히트 카운트에 대한 억세스 카운트값은 각 캐시라인의 억세스 카운트 영역 AC 에 저장된다. 예를 들어, 캐시 히트가 FSA 캐시 테이블 TA 의 캐시라인에 발생될 때, 캐시라인의 억세스 카운트값이 1 만큼 증가되고, 미스 히트가 양쪽 캐시 테이블에 발생되면, FSA 캐시 테이블 TA 의 모든 캐시라인의 억세스 카운트값은 동시에 1 만큼 감소된다.
데이터 관리/전송이 상기 억세스 카운트값을 사용하여 실행되어 FSA 캐시 테이블 TA 와 넌-FSA 캐시 테이블 (TB, TC) 를 포함하는 캐시 시스템의 캐시 히트율을 증가시킨다. 예를 들어, 제 1 실시예에서, DM 캐시 테이블 TB 가 입력 어드레스 데이터에 대응하는 무효 캐시라인을 가질 때 미스 히트가 양쪽 캐시 테이블 TA 와 TB 에 발생되면, 미스 히트에 의해 메인 메모리 (21) (또는 2 차 캐시 메모리 (20)) 로부터 페치되는 데이터가 인덱스에 대응하는 DM 캐시 테이블 TB 의 무효 캐시라인에 기입된다. DM 캐시 테이블 TB 이 인덱스에 대응하는 무효 캐시라인을 갖지 않고 FSA 캐시 테이블 TA 이 하나 이상의 무효 캐시라인을 가질 때 미스 히트가 발생되면, DM 캐시 테이블 TB 의 미스 히트 캐시라인에 저장된 데이터는 FSA 캐시 테이블 TA 의 무효 캐시라인 중 하나로 전송되고, 메인 메모리 (21) (또는 2 차 캐시 메모리 (20)) 로부터 페치되는 데이터는 DM 캐시 테이블 TB 의 미스 히트 캐시라인에 기입된다. DM 캐시 테이블 TB 이 인덱스에 대응하는 무효 캐시라인을 갖지 않고 FSA 캐시 테이블 TA 이 유효 캐시라인으로 가득할 때 미스 히트가 발생되면, DM 캐시 테이블 TB 의 미스 히트 캐시라인에 저장된 데이터는 최소 억세스 카운트값을 갖는 FSA 캐시 테이블 TA 의 캐시라인 중 하나로 전송되고, 메인 메모리 (21) (또는 2 차 캐시 메모리 (20)) 로부터 페치되는 데이터는 DM 캐시 테이블 (TB) 의 미스 히트 캐시라인에 기입된다.
억세스 카운트값 (캐시 히트 카운트값) 을 사용하는 이러한 데이터 관리/전송에 의해, 하이-히트-비율 캐시라인을 보존하는 FSA 캐시 테이블 TA 의 성능이 향상되고, 그럼으로써 캐시 히트율이 증가된다. FSA 캐시 테이블 TA 와 넌-FSA 캐시 테이블 (TB, TC) 에 동일한 데이터를 복사하는 것은 완전히 없어지고, 그럼으로써 캐시 시스템의 메모리 공간의 사용 효율이 최대로 향상되고 캐시 히트율이 보다 높은 레벨까지 증가된다. 그러므로, 캐시 히트율과 데이터 억세스 속도가 보다 높은 레벨까지 증가될 수 있다.
본 발명은 특별한 예시적인 실시예를 참조하여 설명되었지만, 이들 실시에로 제한되지 않고 첨부된 청구범위에 의해서만 제한된다. 당 분야의 당업자는 본 발명의 범위와 정신에서 벗어나지 않고 실시예를 변경 또는 변형할 수 있다.

Claims (30)

  1. 메인 메모리와 같은 외부 메모리에 대한 CPU (중앙처리장치), MPU (마이크로프로세서 장치)등의 데이터 처리장치의 억세스 횟수를 줄이는 캐시 시스템으로서,
    높은 캐시 히트율의 캐시라인을 보존할 수 있는 풀-세트 어소시에이티브 캐시 메모리로서, 입력 어드레스 데이터로부터 취출되는 제 1 태그가 상기 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 제 1 태그 중 하나와 매치될 때, 상기 매치된 제 1 태그에 대응하는 유효 캐시라인에 저장된 데이터가 캐시 데이터로서 상기 데이터 처리장치에 의해 판독되는, 상기 풀-세트 어소시에이티브 캐시 메모리;
    상기 풀-세트 어소시에이티브 캐시 메모리와 결합되도록 상기 캐시 시스템에 제공되어 상기 풀-세트 어소시에이티브 캐시 메모리와 동시에 캐시 히트 판정을 위한 태그 비교를 실행하는 넌-풀-세트 어소시에이티브 캐시 메모리로서, 상기 입력 어드레스 데이터로부터 취출되는 제 2 태그가 상기 입력 어드레스 데이터로부터 취출된 인덱스에 대응하는 상기 넌-풀-세트 어소시에이티브 캐시 테이블의 유효 캐시라인에 저장된 제 2 태그와 매치될 때, 상기 매치된 제 2 태그에 대응하는 상기 유효 캐시라인에 저장된 데이터가 캐시 데이터로서 상기 데이터 처리장치에 의해 판독되는, 상기 넌-풀-세트 어소시에이티브 캐시 메모리;
    상기 캐시라인에 발생된 캐시 히트의 횟수에 대한 캐시 히트 카운트값을 저장하는 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 캐시라인 각각에 대응하도록 각각 제공되는 캐시 히트 카운트 저장수단; 및
    상기 풀-세트 어소시에이티브 캐시 메모리의 각 캐시라인에서 캐시 히트의 횟수를 카운트함으로써 상기 캐시 히트 카운트 저장수단에 저장되어 있는 상기 캐시 히트 카운트값을 관리하고 갱신하는 캐시 히트 카운트 관리수단을 구비하며,
    상기 넌-풀-세트 어소시에이티브 캐시 메모리가 상기 인덱스에 대응하는 무효 캐시라인을 갖지 않고 상기 풀-세트 어소시에이티브 캐시 메모리가 하나 이상의 무효 캐시라인을 가질 때 미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되면, 상기 미스 히트가 발생된 상기 인덱스에 대응하는 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 데이터가 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 무효 캐시라인 중 하나로 전송되고, 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 상기 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 상기 캐시라인에 기입되며,
    상기 넌-풀-세트 어소시에이티브 캐시 메모리가 상기 인덱스에 대응하는 무효 캐시라인을 갖지 않고 상기 풀-세트 어소시에이티브 캐시 메모리가 유효 캐시라인로 가득할 때 미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되면, 상기 미스 히트가 발생된 상기 인덱스에 대응하는 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 데이터가 최소 캐시 히트 카운트값을 갖는 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 유효 캐시라인 중 하나로 전송되고, 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 상기 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 상기 캐시라인에 기입되며, 또한
    상기 넌-풀-세트 어소시에이티브 캐시 메모리가 상기 인덱스에 대응하는 무효 캐시라인을 가질 때 미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되면, 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터가 상기 인덱스에 대응하는 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 무효 캐시라인에 기입되는 것을 특징으로 하는 캐시 시스템.
  2. 제 1 항에 있어서,
    캐시 히트가 상기 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 발생될 때, 상기 캐시 히트 카운트 관리수단은 상기 캐시라인의 상기 캐시 히트 카운트값을 1 만큼 증가시키고, 또한
    미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생될 때, 상기 캐시 히트 카운트 관리수단은 상기 풀-세트 어소시에이티브 캐시 메모리의 모든 캐시라인의 상기 캐시 히트 카운트값을 1 만큼 동시에 감소시키는 것을 특징으로 하는 캐시 시스템.
  3. 제 1 항에 있어서,
    캐시 히트가 상기 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 발생될 때, 상기 캐시 히트 카운트 관리수단은 상기 캐시라인의 상기 캐시 히트 카운트값을 1 만큼 증가시키고, 또한
    미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리에 발생될 때, 상기 캐시 히트 카운트 관리수단은 상기 풀-세트 어소시에이티브 캐시 메모리의 모든 캐시라인의 상기 캐시 히트 카운트값을 1 만큼 동시에 감소시키는 것을 특징으로 하는 캐시 시스템.
  4. 제 1 항에 있어서,
    캐시 히트가 상기 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 발생될 때, 상기 캐시 히트 카운트 관리수단은 상기 캐시라인의 상기 캐시 히트 카운트값을 1 만큼 증가시키는 것을 특징으로 하는 캐시 시스템.
  5. 제 1 항에 있어서,
    상기 캐시라인에 발생된 최근의 캐시 히트의 날짜와 시간에 대한 데이터를 저장하는 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 캐시라인 각각에 대응하도록 각각 제공되는 캐시 히트 날짜/시간 저장수단을 더 구비하며,
    상기 넌-풀-세트 어소시에이티브 캐시 메모리가 상기 인덱스에 대응하는 무효 캐시라인을 갖지 않고 상기 풀-세트 어소시에이티브 캐시 메모리가 유효 캐시라인으로 가득할 때 미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되는 경우에, 가장 최근에 사용되지 않은 캐시라인이 상기 캐시 히트 날짜/시간 저장수단에 저장된 상기 데이터에 기초하여 상기 최소 캐시 히트 카운트값을 갖는 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 유효 캐시라인으로부터 선택되고, 상기 선택된 가장 최근에 사용되지 않은 캐시라인이 상기 넌-풀-세트 어소시에이티브 캐시 메모리로부터 상기 풀-세트 어소시에이티브 캐시 메모리로의 상기 데이터 전송의 목적지로서 지정되는 것을 특징으로 하는 캐시 시스템.
  6. 제 1 항에 있어서,
    상기 넌-풀-세트 어소시에이티브 캐시 메모리로서 다이렉트 매핑 캐시 메모리가 채용되는 것을 특징으로 하는 캐시 시스템.
  7. 제 1 항에 있어서,
    상기 넌-풀-세트 어소시에이티브 캐시 메모리로서 N-웨이 세트 어소시에이티브 캐시 메모리 (N = 2, 4, 8, …) 가 채용되는 것을 특징으로 하는 캐시 시스템.
  8. 제 7 항에 있어서,
    상기 인덱스에 대응하는 상기 N 개의 캐시라인 중 가장 최근에 사용되지 않은 하나를 나타내는 LRU (least recently used) 값을 저장하는, 각 인덱스에 대응하도록 각각 제공되는 LRU 저장수단을 더 구비하며,
    상기 N-웨이 세트 어소시에이티브 캐시 메모리가 상기 인덱스에 대응하는 무효 캐시라인을 갖지 않고 상기 풀-세트 어소시에이티브 캐시 메모리가 하나 이상의 무효 캐시라인을 가질 때 미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 N-웨이 세트 어소시에이티브 캐시 메모리 양쪽에 발생되는 경우에, 상기 LRU 값으로 지정된 캐시라인이 N-웨이 세트 어소시에이티브 캐시 테이블의 N 개의 미스 히트 캐시라인으로부터 선택되고 상기 선택된 캐시라인에 저장된 데이터가 상기 풀-세트 어소시에이티브 캐시 메모리의 무효 캐시라인 중 하나로 전송되고, 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 상기 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 상기 N-웨이 세트 어소시에이티브 캐시 테이블의 상기 선택된 캐시라인에 기입되며,
    상기 N-웨이 세트 어소시에이티브 캐시 메모리가 상기 인덱스에 대응하는 무효 캐시라인을 갖지 않고 상기 풀-세트 어소시에이티브 캐시 메모리가 유효 캐시라인으로 가득할 때 미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 N-웨이 세트 어소시에이티브 캐시 메모리 양쪽에 발생되는 경우에, 상기 LRU 값으로 지정된 캐시라인이 상기 N-웨이 세트 어소시에이티브 캐시 테이블의 N 개의 미스 히트 캐시라인으로부터 선택되고 상기 선택된 캐시라인에 저장된 데이터가 상기 최소 캐시 히트 카운트값을 갖는 상기 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인 중 하나로 전송되고, 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 상기 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 상기 N-웨이 세트 어소시에이티브 캐시 테이블의 상기 선택된 캐시라인에 기입되고, 또한,
    상기 N-웨이 세트 어소시에이티브 캐시 메모리가 상기 인덱스에 대응하는 하나 이상의 무효 캐시라인을 가질 때 미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 N-웨이 세트 어소시에이티브 캐시 메모리에 발생되는 경우에, 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터가 상기 인덱스에 대응하는 상기 N-웨이 세트 어소시에이티브 캐시 메모리의 상기 무효 캐시라인 중 하나에 기입되는 것을 특징으로 하는 캐시 시스템.
  9. 제 8 항에 있어서,
    상기 캐시라인에 발생된 최근의 캐시 히트의 날짜와 시간에 대한 데이터를 저장하는 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 캐시라인 각각에 대응하도록 각각 제공되는 캐시 히트 날짜/시간 저장수단을 더 구비하며,
    상기 N-웨이 세트 어소시에이티브 캐시 메모리가 상기 인덱스에 대응하는 무효 캐시라인을 갖지 않고 상기 풀-세트 어소시에이티브 캐시 메모리가 유효 캐시라인으로 가득할 때 미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 N-웨이 세트 어소시에이티브 캐시 메모리 양쪽에 발생되는 경우에, 가장 최근에 사용되지 않은 캐시라인이 상기 캐시 히트 날짜/시간 저장수단에 저장된 상기 데이터에 기초하여 상기 최소 캐시 히트 카운트값을 갖는 상기 풀-세트 어소시에이티브캐시 메모리의 상기 유효 캐시라인으로부터 선택되고, 상기 선택된 가장 최근에 사용되지 않은 캐시라인이 상기 N-웨이 세트 어소시에이티브 캐시 메모리로부터 상기 풀-세트 어소시에이티브 캐시 메모리로의 상기 데이터 전송의 목적지로서 지정되는 것을 특징으로 하는 캐시 시스템.
  10. 제 1 항에 있어서,
    상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리로 구성되는 1차 캐시 메모리에 부가적으로 제공되는 2 차 캐시 메모리를 더 구비하는 것을 특징으로 하는 캐시 시스템.
  11. 메인 메모리와 같은 외부 메모리에 대한 CPU (중앙처리장치), MPU (마이크로프로세서 장치), 등의 데이터 처리장치의 억세스 횟수를 줄이며,
    하이-히트-율 캐시라인을 보존할 수 있는 풀-세트 어소시에이티브 캐시 메모리 및 상기 풀-세트 어소시에이티브 캐시 메모리와 동시에 상기 캐시히트 판정을 위한 태그 비교를 실행하는 넌-풀-세트 어소시에이티브 캐시 메모리의 조합을 채용하는 캐시 프로세싱 방법으로서,
    입력 어드레스 데이터로부터 취출되는 제 1 태그가 상기 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 제 1 태그와 비교되어, 상기 취출된 제 1 태그가 상기 저장된 제 1 태그 중 하나와 매치되면 상기 풀-세트 어소시에이티브 캐시 메모리에 캐시 히트가 발생된 것으로 판정되는 제 1 태그 비교단계;
    상기 제 1 태그 비교단계와 동시에 실행되며, 상기 입력 어드레스 데이터로부터 취출되는 제 2 태그가 상기 입력 어드레스 데이터로부터 취출되는 인덱스에 대응하는 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 하나 이상의 유효 캐시라인에 저장된 하나 이상의 제 2 태그와 비교되어, 상기 취출된 제 2 태그가 상기 인덱스에 대응하는 상기 저장된 제 2 태그 중 하나와 매치되면 상기 넌-풀-세트 어소시에이티브 캐시 메모리에 캐시 히트가 발생된 것으로 판정되는 제 2 태그 비교단계;
    상기 풀-세트 어소시에이티브 캐시 메모리의 각 캐시라인에 발생되는 캐시 히트의 횟수가 카운트되고 그럼으로써 상기 캐시라인에 대응하는 캐시 히트 카운트 저장수단에 저장된 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 캐시라인에 대해 캐시 히트 카운트값들이 갱신되는 캐시 히트 카운트 관리단계;
    상기 제 1 태그 비교단계에서 캐시 히트가 상기 풀-세트 어소시에이티브 캐시 메모리에 발생되면, 상기 매치된 제 1 태그에 대응하는 상기 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 데이터가 캐시 데이터로서 상기 데이터 프로세싱 장치에 의해 판독되는 제 1 캐시 데이터 판독 프로세스;
    상기 제 2 태그 비교단계에서 캐시 히트가 상기 넌-풀-세트 어소시에이티브 캐시 메모리에 발생되면, 상기 인덱스와 상기 매치된 제 2 태그에 대응하는 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 데이터가 캐시 데이터로서 상기 데이터 프로세싱 장치에 의해 판독되는 제 2 캐시 데이터 판독 프로세스;
    상기 넌-풀-세트 어소시에이티브 캐시 메모리가 상기 인덱스에 대응하는 무효 캐시라인을 갖지 않고 상기 풀-세트 어소시에이티브 캐시 메모리가 하나 이상의 무효 캐시라인을 가질 때 미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되면, 상기 미스 히트가 발생된 상기 인덱스에 대응하는 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 데이터가 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 무효 캐시라인 중 하나로 전송되고, 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 상기 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 상기 캐시라인에 기입되는 제 1 데이터 전송단계;
    상기 넌-풀-세트 어소시에이티브 캐시 메모리가 상기 인덱스에 대응하는 무효 캐시라인을 갖지 않고 상기 풀-세트 어소시에이티브 캐시 메모리가 유효 캐시라인로 가득할 때 미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되면, 상기 미스 히트가 발생된 상기 인덱스에 대응하는 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 데이터가 최소 캐시 히트 카운트값을 갖는 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 유효 캐시라인 중 하나로 전송되고, 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 상기 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 상기 캐시라인에 기입되는 제 2 데이터 전송단계; 및
    상기 넌-풀-세트 어소시에이티브 캐시 메모리가 상기 인덱스에 대응하는 무효 캐시라인을 가질 때 미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되면, 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터가 상기 인덱스에 대응하는 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 무효 캐시라인에 기입되는 제 3 데이터 전송단계를 구비하는 것을 특징으로 하는 캐시 프로세싱 방법.
  12. 제 11 항에 있어서, 상기 캐시 히트 카운트 관리단계에서,
    상기 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 캐시 히트가 발생될 때, 상기 캐시라인의 상기 캐시 히트 카운트값이 1 만큼 증가되고, 또한
    상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 미스 히트가 발생될 때, 상기 풀-세트 어소시에이티브 캐시 메모리의 모든 캐시라인의 상기 캐시 히트 카운트값이 동시에 1 만큼 감소되는 것을 특징으로 하는 캐시 프로세싱 방법.
  13. 제 11 항에 있어서, 상기 캐시 히트 카운트 관리단계에서,
    상기 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 캐시 히트가 발생될 때, 상기 캐시라인의 상기 캐시 히트 카운트값이 1 만큼 증가되고, 또한
    상기 풀-세트 어소시에이티브 캐시 메모리에 미스 히트가 발생될 때, 상기 풀-세트 어소시에이티브 캐시 메모리의 모든 캐시라인의 상기 캐시 히트 카운트값이 동시에 1 만큼 감소되는 것을 특징으로 하는 캐시 프로세싱 방법.
  14. 제 11 항에 있어서, 상기 캐시 히트 카운트 관리단계에서,
    상기 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 캐시 히트가 발생될 때, 상기 캐시라인의 상기 캐시 히트 카운트값이 1 만큼 증가되는 것을 특징으로 하는 캐시 프로세싱 방법.
  15. 제 11 항에 있어서, 상기 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 발생된 최근 캐시 히트의 날짜와 시간에 대한 데이터가 상기 캐시라인에 대응하도록 제공되는 캐시 히트 날짜/시간 저장수단에 저장되는 캐시 히트 날짜/시간 저장단계를 더 구비하며,
    상기 제 2 데이터 전송단계에서,
    가장 최근에 사용되지 않은 캐시라인이 상기 캐시 히트 날짜/시간 저장수단에 저장된 상기 데이터에 기초하여 최소 캐시 히트 카운트값을 갖는 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 유효 캐시라인으로부터 선택되고, 또한 상기 선택된 가장 최근에 사용되지 않은 캐시라인이 상기 넌-풀-세트 어소시에이티브 캐시 메모리로부터 상기 풀-세트 어소시에이티브 캐시 메모리로의 상기 데이터 전송의 목적지로서 지정되는 것을 특징으로 하는 캐시 프로세싱 방법.
  16. 제 11 항에 있어서, 상기 넌-풀-세트 어소시에이티브 캐시 메모리로서 다이렉트 매핑 캐시 메모리가 채용되는 것을 특징으로 하는 캐시 프로세싱 방법.
  17. 제 11 항에 있어서, 상기 넌-풀-세트 어소시에이티브 캐시 메모리로서 N-웨이 세트 어소시에이티브 캐시 메모리 (N = 2, 4, 8, …) 가 채용되는 것을 특징으로 하는 캐시 프로세싱 방법.
  18. 제 17 항에 있어서,
    인덱스에 대응하는 상기 N-웨이 세트 어소시에이티브 캐시 메모리의 상기 N 개의 캐시라인 중 가장 최근에 사용되지 않은 캐시라인을 나타내는 LRU (least recently used) 값이 상기 인덱스에 대응하도록 제공되는 LRU 저장수단에 저장되는 LRU 저장단계를 더 구비하며,
    상기 제 1 데이터 전송단계에서, 상기 LRU 값으로 지정된 캐시라인이 상기 N-웨이 세트 어소시에이티브 캐시 테이블의 N 개의 미스 히트 캐시라인으로부터 선택되고 상기 선택된 캐시라인에 저장된 데이터가 상기 풀-세트 어소시에이티브 캐시 메모리의 무효 캐시라인 중 하나로 전송되고, 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 상기 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 상기 N-웨이 세트 어소시에이티브 캐시 테이블의 상기 선택된 캐시라인에 기입되고,
    상기 제 2 데이터 전송단계에서, 상기 LRU 값으로 지정된 캐시라인이 상기 N-웨이 세트 어소시에이티브 캐시 테이블의 N 개의 미스 히트 캐시라인으로부터 선택되고 상기 선택된 캐시라인에 저장된 데이터가 상기 최소 캐시 히트 카운트값을 갖는 상기 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인 중 하나로 전송되고, 또한 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 상기 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 상기 N-웨이 세트 어소시에이티브 캐시 테이블의 상기 선택된 캐시라인에 기입되고, 또한,
    상기 제 3 데이터 전송단계에서, 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터는 상기 인덱스에 대응하는 상기 N-웨이 세트 어소시에이티브 캐시 메모리의 상기 무효 캐시라인 중 하나에 기입되는 것을 특징으로 하는 캐시 프로세싱 방법.
  19. 제 18 항에 있어서, 상기 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 발생된 최근 캐시 히트의 날짜와 시간에 대한 데이터가 상기 캐시라인에 대응하도록 제공되는 캐시 히트 날짜/시간 저장수단에 저장되는 캐시 히트 날짜/시간 저장단계를 더 구비하며,
    상기 제 2 데이터 전송단계에서,
    가장 최근에 사용되지 않은 캐시라인이 상기 캐시 히트 날짜/시간 저장수단에 저장된 상기 데이터에 기초하여 최소 캐시 히트 카운트값을 갖는 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 유효 캐시라인으로부터 선택되고, 또한 상기 선택된 가장 최근에 사용되지 않은 캐시라인이 상기 N-웨이 세트 어소시에이티브캐시 테이블로부터 상기 풀-세트 어소시에이티브 캐시 메모리로의 상기 데이터 전송의 목적지로서 지정되는 것을 특징으로 하는 캐시 프로세싱 방법.
  20. 제 11 항에 있어서, 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리로 구성되는 1차 캐시 메모리에 부가하여 제공되는 2 차 캐시 메모리가, 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 미스 히트가 발생되는 경우에 억세스되는 2 차 캐시 억세스 단계를 더 구비하는 것을 특징으로 하는 캐시 프로세싱 방법.
  21. 메인 메모리와 같은 외부 메모리에 대한 CPU (중앙처리장치), MPU (마이크로프로세서 장치), 등의 데이터 처리장치의 억세스 횟수를 줄이며, 하이-히트-율 캐시라인을 보존할 수 있는 풀-세트 어소시에이티브 캐시 메모리 및 상기 풀-세트 어소시에이티브 캐시 메모리와 동시에 상기 캐시히트 판정을 위한 태그 비교를 실행하는 넌-풀-세트 어소시에이티브 캐시 메모리의 조합을 채용하는 캐시 프로세스를 실행하도록 컴퓨터에 명령하는 프로그램을 저장하는 컴퓨터-판독가능 기억매체로서,
    상기 캐시 프로세스는,
    상기 풀-세트 어소시에이티브 캐시 메모리의 각 캐시라인에 발생되는 캐시 히트의 횟수가 카운트되고 그럼으로써 상기 캐시라인에 대응하는 캐시 히트 카운트저장수단에 저장된 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 캐시라인에 대해 캐시 히트 카운트값들이 갱신되는 캐시 히트 카운트 관리단계;
    상기 풀-세트 어소시에이티브 캐시 메모리에 캐시 히트가 발생되면, 상기 캐시 히트가 발생된 상기 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 데이터가 캐시 데이터로서 상기 데이터 프로세싱 장치에 의해 판독되는 제 1 캐시 데이터 판독 프로세스;
    상기 넌-풀-세트 어소시에이티브 캐시 메모리에 캐시 히트가 발생되면, 상기 캐시 히트가 발생된 인덱스에 대응하는 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 데이터가 캐시 데이터로서 상기 데이터 프로세싱 장치에 의해 판독되는 제 2 캐시 데이터 판독 프로세스;
    상기 넌-풀-세트 어소시에이티브 캐시 메모리가 상기 인덱스에 대응하는 무효 캐시라인을 갖지 않고 상기 풀-세트 어소시에이티브 캐시 메모리가 하나 이상의 무효 캐시라인을 가질 때 미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되면, 상기 미스 히트가 발생된 상기 인덱스에 대응하는 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 데이터가 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 무효 캐시라인 중 하나로 전송되고, 또한 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 상기 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 상기 캐시라인에 기입되는 제 1 데이터 전송단계;
    상기 넌-풀-세트 어소시에이티브 캐시 메모리가 상기 인덱스에 대응하는 무효 캐시라인을 갖지 않고 상기 풀-세트 어소시에이티브 캐시 메모리가 유효 캐시라인로 가득할 때 미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되면, 상기 미스 히트가 발생된 상기 인덱스에 대응하는 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인에 저장된 상기 데이터가 최소 캐시 히트 카운트값을 갖는 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 유효 캐시라인 중 하나로 전송되고, 또한 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 상기 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 상기 캐시라인에 기입되는 제 2 데이터 전송단계; 및
    상기 넌-풀-세트 어소시에이티브 캐시 메모리가 상기 인덱스에 대응하는 무효 캐시라인을 가질 때 미스 히트가 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 발생되면, 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터는 상기 인덱스에 대응하는 상기 넌-풀-세트 어소시에이티브 캐시 메모리의 무효 캐시라인에 기입되는 제 3 데이터 전송단계를 구비하는 것을 특징으로 하는 컴퓨터-판독가능 기억매체.
  22. 제 21 항에 있어서, 상기 캐시 히트 카운트 관리단계에서,
    상기 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 캐시 히트가 발생될 때, 상기 캐시라인의 상기 캐시 히트 카운트값이 1 만큼 증가되고, 또한
    상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 미스 히트가 발생될 때, 상기 풀-세트 어소시에이티브 캐시 메모리의 모든 캐시라인의 상기 캐시 히트 카운트값이 동시에 1 만큼 감소되는 것을 특징으로 하는 컴퓨터-판독가능 기억매체.
  23. 제 21 항에 있어서, 상기 캐시 히트 카운트 관리단계에서,
    상기 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 캐시 히트가 발생될 때, 상기 캐시라인의 상기 캐시 히트 카운트값이 1 만큼 증가되고, 또한
    상기 풀-세트 어소시에이티브 캐시 메모리에 미스 히트가 발생될 때, 상기 풀-세트 어소시에이티브 캐시 메모리의 모든 캐시라인의 상기 캐시 히트 카운트값이 동시에 1 만큼 감소되는 것을 특징으로 하는 컴퓨터-판독가능 기억매체.
  24. 제 21 항에 있어서, 상기 캐시 히트 카운트 관리단계에서,
    상기 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 캐시 히트가 발생될 때, 상기 캐시라인의 상기 캐시 히트 카운트값이 1 만큼 증가되는 것을 특징으로 하는 컴퓨터-판독가능 기억매체.
  25. 제 21 항에 있어서, 상기 캐시 프로세스는, 상기 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 발생된 최근 캐시 히트의 날짜와 시간에 대한 데이터가 상기 캐시라인에 대응하도록 제공되는 캐시 히트 날짜/시간 저장수단에 저장되는 캐시 히트 날짜/시간 저장단계를 더 구비하고, 또한,
    상기 제 2 데이터 전송단계에서, 가장 최근에 사용되지 않은 캐시라인이 상기 캐시 히트 날짜/시간 저장수단에 저장된 상기 데이터에 기초하여 최소 캐시 히트 카운트값을 갖는 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 유효 캐시라인으로부터 선택되고, 또한 상기 선택된 가장 최근에 사용되지 않은 캐시라인이 상기 넌-풀-세트 어소시에이티브 캐시 메모리로부터 상기 풀-세트 어소시에이티브 캐시 메모리로의 상기 데이터 전송의 목적지로서 지정되는 것을 특징으로 하는 컴퓨터-판독가능 기억매체.
  26. 제 21 항에 있어서, 상기 넌-풀-세트 어소시에이티브 캐시 메모리로서 다이렉트 매핑 캐시 메모리가 채용되는 것을 특징으로 하는 컴퓨터-판독가능 기억매체.
  27. 제 21 항에 있어서, 상기 넌-풀-세트 어소시에이티브 캐시 메모리로서 N-웨이 세트 어소시에이티브 캐시 메모리 (N = 2, 4, 8, …) 가 채용되는 것을 특징으로 하는 컴퓨터-판독가능 기억매체.
  28. 제 27 항에 있어서, 상기 캐시 프로세스는,
    인덱스에 대응하는 상기 N-웨이 세트 어소시에이티브 캐시 메모리의 상기 N 개의 캐시라인 중 가장 최근에 사용되지 않은 하나를 나타내는 LRU (least recently used) 값이 상기 인덱스에 대응하도록 제공되는 LRU 저장수단에 저장되는LRU 저장단계를 더 구비하며, 또한
    상기 제 1 데이터 전송단계에서, 상기 LRU 값으로 지정된 캐시라인이 상기 N-웨이 세트 어소시에이티브 캐시 테이블의 N 개의 미스 히트 캐시라인으로부터 선택되고 상기 선택된 캐시라인에 저장된 데이터가 상기 풀-세트 어소시에이티브 캐시 메모리의 무효 캐시라인 중 하나로 전송되고, 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 상기 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 상기 N-웨이 세트 어소시에이티브 캐시 테이블의 상기 선택된 캐시라인에 기입되고, 또한
    상기 제 2 데이터 전송단계에서, 상기 LRU 값으로 지정된 캐시라인이 상기 N-웨이 세트 어소시에이티브 캐시 테이블의 N 개의 미스 히트 캐시라인으로부터 선택되고 상기 선택된 캐시라인에 저장된 데이터가 상기 최소 캐시 히트 카운트값을 갖는 상기 풀-세트 어소시에이티브 캐시 메모리의 유효 캐시라인 중 하나로 전송되고, 또한 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터는 상기 데이터가 그로부터 상기 풀-세트 어소시에이티브 캐시 메모리로 전송되었던 상기 N-웨이 세트 어소시에이티브 캐시 테이블의 상기 선택된 캐시라인에 기입되고, 또한,
    상기 제 3 데이터 전송단계에서, 상기 미스 히트에 의해 상기 외부 메모리로부터 페치되는 데이터는 상기 인덱스에 대응하는 상기 N-웨이 세트 어소시에이티브 캐시 메모리의 상기 무효 캐시라인 중 하나에 기입되는 것을 특징으로 하는 컴퓨터-판독가능 기억매체.
  29. 제 28 항에 있어서, 상기 캐시 프로세스는, 상기 풀-세트 어소시에이티브 캐시 메모리의 캐시라인에 발생된 최근 캐시 히트의 날짜와 시간에 대한 데이터가 상기 캐시라인에 대응하도록 제공되는 캐시 히트 날짜/시간 저장수단에 저장되는 캐시 히트 날짜/시간 저장단계를 더 구비하며, 또한
    상기 제 2 데이터 전송단계에서, 가장 최근에 사용되지 않은 캐시라인이 상기 캐시 히트 날짜/시간 저장수단에 저장된 상기 데이터에 기초하여 최소 캐시 히트 카운트값을 갖는 상기 풀-세트 어소시에이티브 캐시 메모리의 상기 유효 캐시라인으로부터 선택되고, 또한 상기 선택된 가장 최근에 사용되지 않은 캐시라인이 상기 N-웨이 세트 어소시에이티브 캐시 테이블로부터 상기 풀-세트 어소시에이티브 캐시 메모리로의 상기 데이터 전송의 목적지로서 지정되는 것을 특징으로 하는 컴퓨터-판독가능 기억매체.
  30. 제 21 항에 있어서, 상기 캐시 프로세스는, 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리로 구성되는 1차 캐시 메모리에 부가하여 제공되는 2 차 캐시 메모리가, 상기 풀-세트 어소시에이티브 캐시 메모리와 상기 넌-풀-세트 어소시에이티브 캐시 메모리 양쪽에 미스 히트가 발생되는 경우에 억세스되는 2 차 캐시 억세스 단계를 더 구비하는 것을 특징으로 하는 컴퓨터-판독가능 기억매체.
KR1019990057909A 1998-12-15 1999-12-15 캐시 프로세스용 시스템 및 방법 KR100339904B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP35681598 1998-12-15
JP98-356815 1998-12-15

Publications (2)

Publication Number Publication Date
KR20000052480A KR20000052480A (ko) 2000-08-25
KR100339904B1 true KR100339904B1 (ko) 2002-06-10

Family

ID=18450921

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990057909A KR100339904B1 (ko) 1998-12-15 1999-12-15 캐시 프로세스용 시스템 및 방법

Country Status (4)

Country Link
US (1) US6385697B1 (ko)
EP (1) EP1011049A3 (ko)
KR (1) KR100339904B1 (ko)
TW (1) TW451132B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101166177B1 (ko) 2010-05-20 2012-07-18 일솜 주식회사 개질기, 이를 구비한 유기성 폐기물을 이용한 수소 생산장치 및 그 생산방법

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19961499A1 (de) * 1999-12-20 2001-07-05 Ericsson Telefon Ab L M Caching von Objekten in Platten-gestützten Datenbanken
US6983388B2 (en) * 2000-10-25 2006-01-03 Agere Systems Inc. Method and apparatus for reducing leakage power in a cache memory by using a timer control signal that removes power to associated cache lines
US7310706B1 (en) * 2001-06-01 2007-12-18 Mips Technologies, Inc. Random cache line refill
US7275135B2 (en) * 2001-08-31 2007-09-25 Intel Corporation Hardware updated metadata for non-volatile mass storage cache
US7062607B2 (en) * 2001-09-24 2006-06-13 Intel Corporation Filtering basic instruction segments in a processor front-end for power conservation
US20030142561A1 (en) * 2001-12-14 2003-07-31 I/O Integrity, Inc. Apparatus and caching method for optimizing server startup performance
US6839812B2 (en) * 2001-12-21 2005-01-04 Intel Corporation Method and system to cache metadata
US6862665B2 (en) * 2002-07-19 2005-03-01 Intel Corporation Method, system, and apparatus for space efficient cache coherency
KR100479589B1 (ko) * 2002-10-01 2005-04-06 엘지전자 주식회사 Cam 구성 장치
US20050108478A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Dynamic frequent instruction line cache
US7571188B1 (en) * 2004-09-23 2009-08-04 Sun Microsystems, Inc. Cache abstraction for modeling database performance
US7451272B2 (en) 2004-10-19 2008-11-11 Platform Solutions Incorporated Queue or stack based cache entry reclaim method
CN100377116C (zh) * 2006-04-04 2008-03-26 浙江大学 处理器高速数据缓存重配置方法
US8244980B2 (en) * 2006-06-21 2012-08-14 Intel Corporation Shared cache performance
JP2008107983A (ja) * 2006-10-24 2008-05-08 Nec Electronics Corp キャッシュメモリ
JP4378386B2 (ja) * 2007-02-26 2009-12-02 富士通株式会社 キャッシュウェイ縮退監視装置、キャッシュウェイ縮退監視方法およびキャッシュウェイ縮退監視プログラム
US7627742B2 (en) * 2007-04-10 2009-12-01 International Business Machines Corporation Method and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system
US8180964B1 (en) * 2007-09-28 2012-05-15 The Mathworks, Inc. Optimization of cache configuration for application design
EP2527987A1 (en) * 2008-01-30 2012-11-28 QUALCOMM Incorporated Apparatus and methods to reduce castouts in a multi-level cache hierarchy
JP5118562B2 (ja) * 2008-06-20 2013-01-16 株式会社東芝 デバッグ支援装置
US8112588B2 (en) * 2009-02-26 2012-02-07 Red Hat, Inc. Sorting cache objects based on access counters reset upon garbage collection
JP2012203729A (ja) * 2011-03-25 2012-10-22 Fujitsu Ltd 演算処理装置および演算処理装置の制御方法
JP6012263B2 (ja) * 2011-06-09 2016-10-25 株式会社半導体エネルギー研究所 半導体記憶装置
GB2506706B (en) 2013-04-02 2014-09-03 Imagination Tech Ltd Tile-based graphics
WO2015057828A1 (en) * 2013-10-15 2015-04-23 Mill Computing, Inc. Computer processor employing cache memory storing backless cache lines
US9582430B2 (en) * 2015-03-27 2017-02-28 Intel Corporation Asymmetric set combined cache
US10620850B1 (en) * 2016-03-31 2020-04-14 EMC IP Holding Company LLC Caching techniques duplicating dirty data in secondary cache
US10248422B2 (en) * 2016-07-02 2019-04-02 Intel Corporation Systems, apparatuses, and methods for snooping persistent memory store addresses
CN107885671B (zh) * 2016-09-30 2021-09-14 华为技术有限公司 一种非易失性内存的持久化方法和计算设备
US10937499B2 (en) * 2019-04-12 2021-03-02 Micron Technology, Inc. Content addressable memory systems with content addressable memory buffers
CN113495678B (zh) * 2020-04-01 2022-06-28 荣耀终端有限公司 一种dm缓存的分配方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61241853A (ja) 1985-04-19 1986-10-28 Nec Corp キヤツシユ・メモリ制御方式
JPH0573415A (ja) 1991-09-17 1993-03-26 Oki Electric Ind Co Ltd 階層化キヤツシユ方式
DE4306077A1 (ko) 1992-02-27 1993-09-02 Hewlett Packard Co
JPH06250926A (ja) 1993-02-25 1994-09-09 Mitsubishi Electric Corp 複数階層のキャッシュメモリを備えたデータ処理システム
US5592432A (en) 1995-09-05 1997-01-07 Emc Corp Cache management system using time stamping for replacement queue
US5860095A (en) * 1996-01-02 1999-01-12 Hewlett-Packard Company Conflict cache having cache miscounters for a computer memory system
US5983313A (en) 1996-04-10 1999-11-09 Ramtron International Corporation EDRAM having a dynamically-sized cache memory and associated method
US5822759A (en) 1996-11-22 1998-10-13 Versant Object Technology Cache system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101166177B1 (ko) 2010-05-20 2012-07-18 일솜 주식회사 개질기, 이를 구비한 유기성 폐기물을 이용한 수소 생산장치 및 그 생산방법

Also Published As

Publication number Publication date
EP1011049A2 (en) 2000-06-21
EP1011049A3 (en) 2001-03-14
KR20000052480A (ko) 2000-08-25
US6385697B1 (en) 2002-05-07
TW451132B (en) 2001-08-21

Similar Documents

Publication Publication Date Title
KR100339904B1 (ko) 캐시 프로세스용 시스템 및 방법
US5802572A (en) Write-back cache having sub-line size coherency granularity and method for maintaining coherency within a write-back cache
US6105111A (en) Method and apparatus for providing a cache management technique
US7899993B2 (en) Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme
US6202129B1 (en) Shared cache structure for temporal and non-temporal information using indicative bits
US4811209A (en) Cache memory with multiple valid bits for each data indication the validity within different contents
US8140764B2 (en) System for reconfiguring cache memory having an access bit associated with a sector of a lower-level cache memory and a granularity bit associated with a sector of a higher-level cache memory
JP4008826B2 (ja) オンチップキャッシュのデータ圧縮により有効キャッシュサイズを増大させるキャッシュ圧縮エンジンのための装置
US5465342A (en) Dynamically adaptive set associativity for cache memories
US6321321B1 (en) Set-associative cache-management method with parallel and single-set sequential reads
US7284094B2 (en) Mechanism and apparatus allowing an N-way set associative cache, implementing a hybrid pseudo-LRU replacement algorithm, to have N L1 miss fetch requests simultaneously inflight regardless of their congruence class
WO2007068122A1 (en) System and method for cache management
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US6553477B1 (en) Microprocessor and address translation method for microprocessor
KR20010062173A (ko) 스마트 캐시
KR100814982B1 (ko) 다수의 채움 모드를 구비한 캐시
US7949833B1 (en) Transparent level 2 cache controller
US20020042861A1 (en) Apparatus and method for implementing a variable block size cache
US6587923B1 (en) Dual line size cache directory
US10489305B1 (en) Prefetch kill and revival in an instruction cache
US8539159B2 (en) Dirty cache line write back policy based on stack size trend information
US5749092A (en) Method and apparatus for using a direct memory access unit and a data cache unit in a microprocessor
US7330937B2 (en) Management of stack-based memory usage in a processor
US20040078523A1 (en) Memory management of local variables
US20040024969A1 (en) Methods and apparatuses for managing memory

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

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee