KR100801814B1 - 캐시 메모리 및 그 제어 방법 - Google Patents

캐시 메모리 및 그 제어 방법 Download PDF

Info

Publication number
KR100801814B1
KR100801814B1 KR1020067005718A KR20067005718A KR100801814B1 KR 100801814 B1 KR100801814 B1 KR 100801814B1 KR 1020067005718 A KR1020067005718 A KR 1020067005718A KR 20067005718 A KR20067005718 A KR 20067005718A KR 100801814 B1 KR100801814 B1 KR 100801814B1
Authority
KR
South Korea
Prior art keywords
address
data
cache entry
cache
order
Prior art date
Application number
KR1020067005718A
Other languages
English (en)
Other versions
KR20060087579A (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 KR20060087579A publication Critical patent/KR20060087579A/ko
Application granted granted Critical
Publication of KR100801814B1 publication Critical patent/KR100801814B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • 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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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

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

본 발명의 캐시 메모리는, 캐시의 단위 데이터를 유지하는 캐시 엔트리마다 액세스 순서를 나타내는 순서 데이터를, 실제의 액세스 순서에 반하여 개변하는 W 플래그 설정부(40)와, 개변 후의 순서 데이터에 기초해 리플레이스해야 할 캐시 엔트리를 선택하여 리플레이스하는 리플레이스부(39)를 구비한다.

Description

캐시 메모리 및 그 제어 방법{CACHE MEMORY AND CONTROL METHOD THEREOF}
본 발명은, 프로세서의 메모리 액세스를 고속화하기 위한 캐시 메모리 및 그 제어 방법에 관한 것이다.
최근의 마이크로 프로세서에서는, 예를 들면 SRAM(Static Random Access Memory) 등으로 이루어지는 소용량이며 고속인 캐시 메모리를 마이크로 프로세서의 내부, 또는 그 근방에 배치하여, 데이터의 일부를 캐시 메모리에 기억함으로써, 마이크로 프로세서의 메모리 액세스를 고속화시키고 있다.
상기 컴퓨터 시스템에서는, 중앙처리장치로부터 캐시 메모리로의 리드 액세스 또는 라이트 액세스가 미스(miss) 히트한 경우에, 주기억 장치로부터 새롭게 독출한 데이터의 일부가, 엔트리(등록 항목)로서 캐시 메모리의 빈 블록에 격납된다. 이 때, 빈 블록이 존재하지 않는 경우에는, 복수의 블록 중 어느 1개를 선택하여, 선택된 블록에 격납되어 있는 엔트리를 주기억 장치로 되돌려 블록 내를 빈 상태로 하고, 이 빈 블록에 새롭게 독출한 데이터를 격납하는 엔트리 치환 처리가 필요하게 된다. 상기 엔트리 치환 처리에서는, 가장 이전에 참조한 데이터를 격납하고 있는 블록을 선택하는 수법, 즉 LRU(Least Recently Used) 디코드 방식이 일반적으로 채용되고 있다. 이 LRU 디코드 방식에 의해 캐시 메모리의 사용 효율이 향상하 여, 그 결과 마이크로 프로세서의 실행 속도가 향상한다.
마이크로 프로세서가 처리하는 프로그램 중에는, 액세스 빈도는 적지만 일단 기동된 경우에는 고속으로 처리해야만 하는 특수한 처리와, 액세스 빈도는 많지만 실행 속도가 그다지 요구되지 않는 처리가 존재한다.
그래서, 이것에 대응하기 위해서 예를 들면 특허 문헌 1 등의 종래 기술에서는, 캐시 메모리에 프리즈 기능을 설치하고 있다. 프리즈 기능은, 액세스는 적지만 일단 기동된 경우에는 고속으로 처리해야만 하는 프로그램을 미리 캐시 메모리 내에 카피해 두고, 그 영역을 다시쓰기 금지로 해 두는 기능이다. 이 기능을 구비함으로써, 컴퓨터 시스템은 필요할 때 프로그램을 캐시 메모리로부터 독출하여 실행할 수 있어, 이에 따라 실행 시간이 단축한다. 또, 퍼지 기능은, 액세스 빈도는 많지만 실행 속도가 그다지 요구되지 않는 프로그램이나 데이터를 캐시 메모리 내에 저장해 두지 않고 그 영역을 해방하는 기능이다. 이 기능을 구비함으로써, 캐시 메모리에 여유가 생겨, 우선도가 높은 다른 프로그램이나 데이터를 캐시 메모리에 받아들일 수 있어, 이에 따라 캐시 메모리의 이용 효율이 향상하여 종합적인 실행 시간이 단축한다.
특허 문헌 1: 일본 특개 2003-200221호 공보
그러나, 프리즈 기능이나 퍼지 기능도, 액세스 빈도가 높은 데이터를 캐시 메모리에 묶어두거나, 액세스 빈도가 낮은 데이터를 캐시 메모리로부터 추방하는 것을 가능하게 하고 있지만, 프리즈 기능 및 퍼지 기능의 제어를 위해서 복잡한 회로를 필요로 한다는 문제가 있다.
본 발명은, 복잡한 회로를 설치하지 않고, 액세스 빈도가 낮은 데이터를 다른 액세스 빈도가 높은 데이터보다도 우선적으로 리플레이스 대상으로 하는 캐시 메모리를 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위해서, 본 발명의 캐시 메모리는, 캐시의 단위 데이터를 유지하는 캐시 엔트리마다 액세스 순서를 나타내는 순서 데이터를 유지하고, 가장 오래된 순서를 나타내는 캐시 엔트리를 리플레이스하는 캐시 메모리로서, 상기 순서 데이터를 실제의 액세스 순서에 반(反)하여 개변하는 개변 수단과, 개변 후의 순서 데이터에 기초해 리플레이스해야 할 캐시 엔트리를 선택하는 선택 수단을 구비한다.
이 구성에 의하면, 예를 들면 액세스 빈도가 낮은 데이터의 순서 데이터를 액세스 순서가 가장 오래되도록 개변함으로써, 액세스 빈도가 낮은 데이터를 다른 액세스 빈도가 높은 데이터보다도 우선적으로 리플레이스 대상으로 할 수 있어, 액세스 빈도가 높은 데이터의 순서 데이터를 액세스 순서가 최신 또는 최고(最古)가 아닌 것을 나타내도록 개변함으로써, 액세스 빈도가 높은 데이터가 리플레이스되는 것을 방지할 수 있다.
여기서, 상기 개변 수단은, 프로세서로부터 지정된 어드레스 범위에 속하는 데이터를 유지하는 캐시 엔트리를 특정하는 특정 수단과, 특정된 캐시 엔트리의 순서 데이터를 실제의 액세스 순서에 반하여 최고화(最古化)하는 최고화 수단을 구비하는 구성으로 해도 된다.
이 구성에 의하면, 프로세서로부터 더 이상 독출도 기록도 이루어지지 않는 캐시 엔트리의 액세스 순서를 최고로 하면, 당해 캐시 엔트리는 맨 먼저 리플레이스 대상으로서 선택된다. 이에 따라 액세스 빈도가 낮은 데이터가 캐시 메모리에 남는 것에 의한 캐시 미스의 유발을 저감할 수 있다.
여기서, 상기 특정 수단은, 상기 어드레스 범위의 선두 어드레스가 라인 데이터의 도중을 가리키는 경우, 당해 선두 어드레스를, 상기 어드레스 범위에 포함되는 선두 라인을 가리키는 스타트 라인 어드레스로 변환하는 제1 변환 수단과, 상기 어드레스 범위의 말미 어드레스가 라인 데이터의 도중을 가리키는 경우, 당해 말미 어드레스를, 상기 어드레스 범위에 포함되는 말미 라인을 가리키는 엔드 라인 어드레스로 변환하는 제2 변환 수단과, 상기 스타트 라인 어드레스부터 엔드 라인 어드레스까지의 각 라인 어드레스에 대응하는 데이터를 유지하는 캐시 엔트리가 있는지 여부를 판정하는 판정 수단을 구비하는 구성으로 해도 된다.
이 구성에 의하면, 프로세서는, 상기 어드레스 범위로서, 캐시 메모리의 라인 사이즈 및 라인 경계의 어드레스와는 무관하게 임의의 어드레스로부터 임의의 어드레스(또는 임의의 사이즈)를 지정할 수 있다. 즉, 프로세서에 있어서 캐시 메모리의 라인 사이즈 및 라인 경계의 어드레스를 관리할 필요가 없으므로, 캐시 메모리 관리를 위한 부하를 해소할 수 있다.
여기서, 상기 최고화 수단은, 액세스 순서가 가장 오래된 것을 나타내는 최고화 플래그를 순서 데이터에 부가하는 구성으로 해도 된다.
이 구성에 의하면, LRU 방식에 있어서의 액세스 순서를 나타내는 순서 데이터를 직접 개변하지 않고, 간접적으로 W 플래그를 부가함으로써 액세스 순서를 개변하고 있기 때문에, 복잡한 하드웨어 회로를 추가하지 않고 실현할 수 있다.
여기서, 상기 선택 수단은, 캐시 미스시에, 최고화 플래그가 부가된 캐시 엔트리가 존재하는 경우, 그 캐시 엔트리를 리플레이스 대상으로서 선택하고, 최고화 플래그가 부가된 캐시 엔트리가 존재하지 않는 경우, 순서 데이터에 따라서 리플레이스 대상으로 해야 할 캐시 엔트리를 선택하는 구성으로 해도 된다.
여기서, 상기 캐시 엔트리는, 액세스 순서가 오래된 것인지 새로운 것인지를 나타내는 1비트의 순서 플래그를 상기 순서 데이터로서 갖고, 상기 선택 수단은, 최고화 플래그가 부가된 캐시 엔트리가 존재하지 않는 경우, 순서 플래그가 오래된 것을 나타내는 캐시 엔트리를 리플레이스 대상으로서 선택하는 구성으로 해도 된다.
이 구성에 의하면, 순서 데이터가 1 비트인 순서 플래그로 족하므로, 액세스 순서 데이터의 데이터량이 적고 갱신이 간단하여 하드웨어 규모를 작게 할 수 있다.
여기서 상기 개변 수단은, 1개의 캐시 엔트리의 액세스 순서를 N번째로 하도록 상기 순서 데이터를 개변하고, 상기 N은, (a) 액세스 순서가 가장 오래된 순인 것을 나타내는 번호, (b) 액세스 순서가 가장 새로운 것임을 나타내는 번호, (c) 액세스 순서가 가장 오래된 순서로부터 N번째인 것을 나타내는 번호, (d) 액세스 순서가 가장 새로운 순서로부터 N번째인 것을 나타내는 번호 중 어느 하나이도록 구성해도 된다.
여기서 상기 개변 수단은, 액세스 순서의 개변 지시가 포함된 메모리 액세스명령이 실행된 것을 검출하는 명령 검출 수단과, 당해 명령에 의해 액세스가 이루어진 캐시 엔트리에 대해 순서 데이터를 다시쓰는 개서 수단을 구비하는 구성으로 해도 된다.
여기서 상기 개변 수단은, 프로세서로부터 지정된 어드레스 범위를 유지하는 유지 수단과, 유지 수단에 유지된 어드레스 범위에 대응하는 데이터를 유지하는 캐시 엔트리를 탐색하는 탐색 수단과, 탐색 수단에 의해 탐색된 캐시 엔트리의 액세스 순서를 N번째로 하도록 순서 데이터를 다시쓰기 하는 개서 수단을 구비하는 구성으로 해도 된다.
또, 본 발명의 캐시 메모리의 제어 방법에 관해서도 상기와 동일한 수단, 작용을 갖는다.
이상과 같이 본 발명의 캐시 메모리에 의하면, 액세스 빈도가 낮은 데이터를 다른 액세스 빈도가 높은 데이터보다도 우선적으로 리플레이스 대상으로 할 수 있고, 또 액세스 빈도가 높은 데이터가 리플레이스되는 것을 방지할 수 있다.
예를 들면, 프로세서로부터 더 이상 독출도 기록도 이루어지지 않는 캐시 엔트리의 액세스 순서를 최고로 하면, 당해 캐시 엔트리는 맨 먼저 리플레이스 대상으로서 선택된다. 이에 의해, 액세스 빈도가 낮은 데이터가 캐시 메모리에 남는 것에 의한 캐시 미스의 유발을 저감할 수 있다.
또, 프로세서에 있어서 캐시 메모리의 라인 사이즈 및 라인 경계의 어드레스를 관리할 필요가 없으므로, 프로세서에 있어서의 캐시 메모리 관리를 위한 부하를 해소할 수 있다.
도 1은, 본 발명의 실시형태 1에 있어서의 프로세서, 캐시 메모리, 메모리를 포함하는 시스템의 개략적 구성을 도시한 블록도이다.
도 2는, 캐시 메모리의 구성예를 도시한 블록도이다.
도 3은, 캐시 엔트리의 상세한 비트 구성을 도시한다.
도 4는, 제어부의 구성을 도시한 블록도이다.
도 5는, W 플래그 설정부의 구성예를 도시한 블록도이다.
도 6a는, 스타트 어드레스 레지스터에 스타트 어드레스를 기록하는 명령의 일례를 도시한다.
도 6b는, 사이즈 레지스터에 사이즈를 기록하는 명령의 일례를 도시한다.
도 6c는, 커맨드 레지스터에 커맨드를 기록하는 명령의 일례를 도시한다.
도 6d는, 커맨드의 일례를 도시한다.
도 7은, 스타트 얼라이너 및 엔드 얼라이너의 설명도를 도시한다.
도 8은, 플래그 개서부에서의 W 플래그 설정 처리를 도시한 흐름도이다.
도 9는, 리플레이스부에서의 리플레이스 처리를 도시한 흐름도이다.
도 10은, 본 발명의 실시형태 2에 있어서의 캐시 메모리의 구성을 도시한 블록도이다.
도 11은, 캐시 엔트리의 비트 구성을 도시한다.
도 12는, 제어부의 구성을 도시한 블록도이다.
도 13은, 리플레이스부에 의한 사용 플래그의 갱신예를 도시한다.
도 14a는, 위크 플래그가 존재하지 않는 경우에 캐시 엔트리가 리플레이스되 는 상태를 도시한 도면이다.
도 14b는, 리플레이스 처리에 있어서의 위크 플래그 W의 역할을 도시한 설명도이다.
도 15는, 플래그 갱신부에서의 U 플래그 갱신 처리를 도시한 흐름도이다.
도 16은, 리플레이스부에서의 리플레이스 처리를 도시한 흐름도이다.
도 17은, W 플래그 설정부의 다른 구성예를 도시한 도면이다.
도 18은, W 플래그 설정부의 또 다른 구성예를 도시한 도면이다.
〈부호의 설명〉
1…프로세서 2…메모리
3…캐시 메모리 20…어드레스 레지스터
20…태그 어드레스 레지스터 21…메모리 I/F
30…디코더 31a∼31d…웨이
32a∼32d…비교기 33a∼33d…AND 회로
34…OR 회로 35…셀렉터
36…셀렉터 37…디멀티플렉서
38…제어부 39…리플레이스부
40…W 플래그 설정부 41…플래그 갱신부
131a∼131d…웨이 138…제어부
139…리플레이스부 401…커맨드 레지스터
402…스타트 어드레스 레지스터 403…사이즈 레지스터
404…가산기 405…스타트 얼라이너
406…엔드 얼라이너 407…플래그 개서부
407a…플래그 개서부 408…비교기
410…LD/ST 명령 검출부 411…위크 지시 검출부
412…AND 회로 413…개서부
(실시형태 1)
<전체 구성>
도 1은, 본 발명의 실시형태 1에 있어서의 프로세서(1), 캐시 메모리(3), 메모리(2)를 포함하는 시스템의 개략적 구성을 도시한 블록도이다. 동 도면처럼, 본 발명의 캐시 메모리(3)는, 프로세서(1) 및 메모리(2)를 갖는 시스템에 구비된다.
캐시 메모리(3)는, 소위 LRU 방식에 의해 액세스 순서가 오래된 캐시 엔트리를 리플레이스하는 리플레이스 제어를 전제로 하고 있다. 본 실시형태의 캐시 메모리(3)는, 리플레이스 대상을 결정하기 위한 액세스 순서를 나타내는 순서 데이터를, 액세스 순서에 반하여 개변함으로써, 액세스 빈도가 낮은 데이터를 유지하는 캐시 엔트리를 리플레이스 대상으로서 캐시 메모리로부터 추방하도록 구성되어 있다. 구체적으로는, 액세스 순서가 최고라고 간주하는 것을 나타내는 위크 플래그 W를 캐시 엔트리에 부가함으로써, 순서 데이터를 간접적으로 개변하고 있다. 이에 의해, 순서 데이터를 직접 개변하는 복잡한 회로가 불필요해진다.
<캐시 메모리의 구성>
이하, 캐시 메모리(3)의 구체예로서, 4웨이·세트·어소시에이티브 방식의 캐시 메모리에 본 발명을 적용한 경우의 구성에 관해 설명한다.
도 2는, 캐시 메모리(3)의 구성예를 도시한 블록도이다. 동 도면처럼, 캐시 메모리(3)는, 어드레스 레지스터(20), 메모리 I/F(21), 디코더(30), 4개의 웨이(31a∼31d)(이하 웨이 0∼3으로 약칭한다), 4개의 비교기(32a∼32d), 4개의 AND 회로(33a∼33d), OR 회로(34), 셀렉터(35, 36), 디멀티플렉서(37), 제어부(38)를 구비한다.
어드레스 레지스터(20)는, 메모리(2)에 대한 액세스 어드레스를 유지하는 레지스터이다. 이 액세스 어드레스는 32비트인 것으로 한다. 동 도면에 도시한 바와 같이, 액세스 어드레스는, 최상위 비트부터 차례로, 21비트의 태그 아드레스, 4비트의 세트 인덱스(도면 중의 SI), 5비트의 워드 인덱스(도면 중의 WI)를 포함한다. 여기서, 태그 어드레스는 웨이에 매핑되는 메모리 내의 영역(그 사이즈는 세트 수×블록)을 가리킨다. 이 영역의 사이즈는, 태그 어드레스보다도 하위의 어드레스 비트(A10∼A0)로 정해지는 사이즈, 즉 2k바이트이고, 1개의 웨이의 사이즈이기도 하다. 세트 인덱스(SI)는 웨이 0∼3에 걸친 복수 세트 중 1개를 가리킨다. 이 세트 수는, 세트 인덱스가 4 비트이므로 16세트이다. 태그 어드레스 및 세트 인덱스로 특정되는 캐시 엔트리는 리플레이스 단위이며, 캐시 메모리에 격납되어 있는 경우는 라인 데이터 또는 라인이라고 불린다. 라인 데이터의 사이즈는, 세트 인덱스보다도 하위의 어드레스 비트로 정해지는 사이즈, 즉 128바이트이다. 1워드를 4바이트로 하면, 1라인 데이터는 32워드이다. 워드 인덱스(WI)는, 라인 데이터를 구성하는 복수 워드 중의 1워드를 가리킨다. 어드레스 레지스터(20) 중의 최하위 2비트(A1, A0)는, 워드 액세스시에는 무시된다.
메모리 I/F(21)는, 캐시 메모리(3)로부터 메모리(2)로의 데이터의 라이트 백이나, 메모리(2)로부터 캐시 메모리(3)로의 데이터의 로딩 등, 캐시 메모리(3)로부터 메모리(2)를 액세스하기 위한 I/F이다.
디코더(30)는, 세트 인덱스의 4비트를 디코드하여, 4개의 웨이 0∼3에 걸친 16세트 중 1개를 선택한다.
4개의 웨이 0∼3은 같은 구성을 갖는 4개의 웨이이며, 4×2k바이트의 용량을 갖는다. 각 웨이는 16개의 캐시 엔트리를 갖는다.
도 3에 1개의 캐시 엔트리에 있어서의 상세한 비트 구성을 도시한다. 동 도면처럼, 1개의 캐시 엔트리는, 유효 플래그 V0∼V3, 21비트의 태그, 128바이트의 라인 데이터, 위크 플래그 W, 더티 플래그 D0∼D3를 갖는다.
태그는 21비트의 태그 어드레스의 카피이다.
라인 데이터는, 태그 어드레스 및 세트 인덱스에 의해 특정되는 블록 중의 128바이트 데이터의 카피이고, 32바이트의 4개의 서브 라인으로 이루어진다.
유효 플래그 V0∼V3는, 4개의 서브 라인에 대응하여, 서브 라인이 유효한지 여부를 나타낸다.
위크 플래그 W는, 당해 캐시 엔트리의 액세스 순서가 가장 오래된 것으로 간 주하기 위한 플래그이다. 즉, W=1일 때, 프로세서(1)로부터는 당해 캐시 엔트리에 더 이상 독출도 기록도 이루어지지 않는 것, 또는 액세스 빈도가 낮은 것을 의미한다. 또, W=1일 때, 캐시 메모리(3)에 있어서는, 리플레이스 제어에 관해 액세스 순서가 최고라고 취급하는 것, 즉 최약(위크)의 캐시 엔트리인 것을 의미한다. W=0일 때, 그렇지 않은 것을 의미한다.
더티 플래그 D0∼D3는, 4개의 서브 라인에 대응하여, 그 서브 라인에 프로세서로부터 기록이 있었는지 여부, 즉 서브 라인 중에 캐시된 데이터가 존재하지만 기록에 의해 메모리 내의 데이터와 다르기 때문에 메모리로 되돌리는 것이 필요한지 여부를 나타낸다.
비교기(32a)는, 어드레스 레지스터(20) 중의 태그 어드레스와, 세트 인덱스에 의해 선택된 세트에 포함되는 4개의 태그 중의 웨이 0의 태그가 일치하는지 여부를 비교한다. 비교기 32b∼32c에 대해서도, 웨이 31b∼31d에 대응하는 것 외에는 동일하다.
AND 회로(33a)는, 유효 플래그와 비교기(32a)의 비교 결과가 일치하는지 여부를 비교한다. 이 비교 결과를 h0으로 한다. 비교 결과 h0이 1인 경우는, 어드레스 레지스터(20) 중의 태그 어드레스 및 세트 인덱스에 대응하는 라인 데이터가 존재하는 것, 즉 웨이 0에서 히트한 것을 의미한다. 비교 결과 h0이 0인 경우는, 미스 히트한 것을 의미한다. AND 회로 33b∼33d에 대해서도, 웨이 31b∼31d에 대응하는 것 외에는 동일하다. 그 비교 결과 h1∼h3은, 웨이 1∼3에서 히트했는지 미스했는지를 의미한다.
OR 회로(34)는, 비교 결과 h0∼h3의 OR을 취한다. 이 OR의 결과를 hit로 한다. hit는, 캐시 메모리에 히트했는지 여부를 나타낸다.
셀렉터(35)는, 선택된 세트에 있어서의 웨이 0∼3의 라인 데이터 중, 히트한 웨이의 라인 데이터를 선택한다.
셀렉터(36)는, 셀렉터(35)에 의해 선택된 32워드의 라인 데이터 중, 워드 인덱스에 표시되는 1워드를 선택한다.
디멀티플렉서(37)는, 캐시 엔트리에 데이터를 기록할 때, 웨이 0∼3 중 1개에 기록 데이터를 출력한다. 이 기록 데이터는 워드 단위여도 된다.
제어부(38)는, 캐시 메모리(3)의 전체의 제어를 행한다. 특히, W 플래그의 설정과 W 플래그에 따른 리플레이스 제어를 행한다.
<제어부의 구성>
도 4는, 제어부(38)의 구성을 도시한 블록도이다. 동 도면처럼, 제어부(38)는, 리플레이스부(39)와 W 플래그 설정부(40)를 포함한다.
리플레이스부(39)는, 캐시 미스에 의한 리플레이스에 있어서, W=1이 설정되어 있는 캐시 엔트리가 존재하면, 당해 캐시 엔트리의 액세스 순서가 가장 오래되었다고 간주하여 리플레이스 대상으로서 선택하고, 리플레이스를 행한다.
W 플래그 설정부(40)는, 프로세서(1)로부터의 커맨드에 따라 위크 플래그 W를 설정한다. 프로세서(1)는, 이미 기록도 독출도 하지 않는 캐시 엔트리에 대해 위크 플래그 W의 설정을 지시하는 커맨드를 캐시 메모리(3)에 대해 발행한다.
<W 플래그 설정부의 구성>
도 5는, W 플래그 설정부(40)의 구성예를 도시한 블록도이다. 동 도면처럼 W 플래그 설정부(40)는, 커맨드 레지스터(401), 스타트 어드레스 레지스터(402), 사이즈 레지스터(403), 가산기(404), 스타트 얼라이너(405), 엔드 얼라이너(406), 플래그 개서부(407)를 구비한다.
커맨드 레지스터(401)는, 프로세서(1)로부터 직접 액세스 가능한 레지스터이며, 프로세서(1)에 의해 기록된 W 플래그 설정 커맨드를 유지한다. 도 6(c)에, 커맨드 레지스터(401)에 커맨드를 기록하는 명령의 일례를 도시한다. 이 명령은, 통상의 전송 명령(mov 명령)이며, 소스 오퍼랜드로서 커맨드를, 데스티네이션 오퍼랜드로서 커맨드 레지스터(CR)를 지정하고 있다. 도 6(d)에, 커맨드의 일례를 도시한다. 이 커맨드는, W 플래그 설정 커맨드를 나타내는 특정 코드이다. W 플래그 설정 커맨드는, 스타트 어드레스 레지스터(402)에 유지된 스타트 어드레스로부터 사이즈 레지스터(403)에 유지된 사이즈의 어드레스 범위에 대응하는 데이터를 유지하는 캐시 엔트리에 대해, W 플래그를 설정할 것을 지시하는 커맨드이다.
스타트 어드레스 레지스터(402)는, 프로세서(1)로부터 직접 액세스 가능한 레지스터이며, 프로세서(1)에 의해 기록된 스타트 어드레스를 유지한다. 이 스타트 어드레스는 W 플래그를 설정해야 할 어드레스 범위의 개시 위치를 나타낸다. 도 6(a)에, 스타트 어드레스 레지스터(402)에 스타트 어드레스를 기록하는 명령의 일례를 도시한다. 이 명령도 도 6(c)와 마찬가지로 통상의 전송 명령(mov 명령)이다.
사이즈 레지스터(403)는, 프로세서(1)로부터 직접 액세스 가능한 레지스터이 며, 프로세서(1)에 의해 기록된 사이즈를 유지한다. 이 사이즈는, 스타트 어드레스로부터의 어드레스 범위를 나타낸다. 도 6(b)에, 사이즈 레지스터(403)에 사이즈를 기록하는 명령의 일례를 도시한다. 이 명령도, 도 6(c)와 마찬가지로 통상의 전송 명령(mov 명령)이다. 또한, 사이즈의 단위는, 바이트 수여도 되고, 라인 수(캐시 엔트리 수)여도 되며, 미리 정해진 단위이면 된다.
가산기(404)는, 스타트 어드레스 레지스터(402)에 유지된 스타트 어드레스와 사이즈 레지스터(403)에 유지된 사이즈를 가산한다. 가산 결과는, 어드레스 범위의 종료 위치를 가리키는 엔드 어드레스이다. 가산기(404)는, 사이즈가 바이트 수 지정인 경우는 바이트 어드레스로서 가산하고, 사이즈가 라인 수 지정인 경우는 라인 어드레스로서 가산하면 된다.
스타트 얼라이너(405)는, 스타트 어드레스를 라인 경계의 위치로 조정한다. 이 조정에 의해 프로세서(1)는 라인 사이즈 및 라인 경계와는 무관하게 임의의 어드레스를 스타트 어드레스로서 지정할 수 있다.
엔드 얼라이너(406)는, 엔드 어드레스를 라인 경계의 위치로 조정한다. 이 조정에 의해 프로세서(1)는 라인 사이즈 및 라인 경계와는 무관하게 임의의 크기를 상기 사이즈로서 지정할 수 있다.
도 7에, 스타트 얼라이너(405) 및 엔드 얼라이너(406)의 설명도를 도시한다. 동 도면에 있어서, 프로세서(1)로부터 지정된 스타트 어드레스는 라인 N의 도중의 임의의 위치를 가리킨다. 스타트 얼라이너(405)는, 다음 라인 (N+1)의 선두를 가리키도록 조정하고, 조정 후의 어드레스를 얼라인 스타트 어드레스로서 출력한다. 얼 라인 스타트 어드레스가 가리키는 라인을 스타트 라인이라고 부른다.
또, 엔드 어드레스는 라인 M의 도중의 임의의 위치를 가리킨다. 엔드 얼라이너(406)는, 직전의 라인 (M-1)의 선두를 가리키도록 조정하고, 조정 후의 어드레스를 얼라인 엔드 어드레스로서 출력한다. 얼라인 엔드 어드레스가 가리키는 라인을 엔드 라인이라고 부른다.
이 경우, 스타트 라인(라인 (N+1))부터 엔드 라인(라인 (M-1))까지의 각 라인(캐시 엔트리)에 W 플래그가 설정되게 된다. 이렇게, 스타트 얼라이너(405) 및 엔드 얼라이너(406)가 프로세서(1)로부터 지정된 스타트 어드레스부터 엔드 어드레스까지의 어드레스 범위보다도 내측으로 얼라인하고 있는 것은, 라인 N과 라인 M의 외측 부분에는 프로세서(1)로부터 기록 또는 독출이 발생할 가능성이 있기 때문이다.
플래그 개서부(407)는, 얼라인 스타트 어드레스가 가리키는 라인부터 얼라인 엔드 어드레스가 가리키는 라인까지(도 7의 예에서는 라인 (N+1)부터 라인 (M-1)까지), 캐시 메모리(3)에 엔트리되어 있으면 W 플래그를 1로 설정한다.
<W 플래그 설정 처리>
도 8은, 플래그 개서부(407)에 있어서의 W 플래그 설정 처리의 일례를 도시한 흐름도이다.
플래그 개서부(407)는, 커맨드 레지스터(401)에 W 플래그 설정 커맨드가 유지되어 있는 경우, 스타트 라인부터 엔드 라인까지의 각 라인 어드레스를 차례로 출력하면서 루프 1의 처리(S82∼S86)를 행한다. 플래그 개서부(407)는, 각 라인에 대해 같은 처리를 행하므로, 여기서는 1라인분의 처리에 관해 설명한다.
즉, 플래그 개서부(407)는, 캐시 메모리(3)가 프로세서(1)로부터 액세스되지 않는 동안에, 라인 어드레스를 어드레스 레지스터(20)에 출력하고(S83), 어드레스 레지스터(20)의 태그 어드레스와 캐시 엔트리의 태그를 비교기(32a∼32d)에 비교시켜, 히트하는지 여부를 판정한다(S84). 또한 플래그 개서부(407)는, 히트한 경우에는, 히트한 캐시 엔트리에 대해 W 플래그를 1로 셋팅하고(S85), 미스 히트한 경우에는, 캐시 메모리에 엔트리되어 있지 않으므로 아무 것도 하지 않는다.
이에 의해, 스타트 라인부터 엔드 라인까지의 각 라인에 대해, 캐시 메모리(3)에 엔트리되어 있는 경우에는, W 플래그가 1로 설정된다.
<리플레이스 처리>
도 9는, 리플레이스부(39)에 있어서의 리플레이스 처리를 도시한 흐름도이다. 동 도면에 있어서 리플레이스부(39)는, 메모리 액세스가 미스했을 때(단계 S91), 세트 인덱스에 의해 선택된 세트에 있어서의, 4개 웨이의 위크 플래그 W를 독출하여(단계 S92), 4개의 위크 플래그의 논리합이 1인지 여부, 즉 W=1인 웨이가 존재하는지 여부를 판정한다(단계 S93). W=1인 웨이가 존재한다고 판정된 경우, 당해 캐시 엔트리의 액세스 순서가 가장 오래되었다고 간주하고 W=1인 웨이를 1개 선택하고(단계 S94), W=1인 웨이가 존재하지 않는다고 판정된 경우, 통상의 LRU 방식에 의해 웨이를 1개 선택한다(단계 S95). 이 때, 위크 플래그 W가 1이 되어 있는 웨이가 복수 존재하는 경우는, 리플레이스부(39)는 랜덤하게 1개를 선택한다.
또한, 리플레이스부(39)는, 당해 세트에 있어서의 선택된 웨이의 캐시 엔트 리를 대상으로 리플레이스하여(단계 S96), 리플레이스 후에 당해 캐시 엔트리의 위크 플래그 W를 0으로 초기화한다(단계 S97). 또한, 이 때 유효 플래그 V, 더티 플래그 D는 각각 1, 0으로 초기화된다.
이렇게 W=1인 웨이가 존재하지 않는 경우, 리플레이스 대상은 통상의 LRU 방식에 의해 선택된다. 또, W=1인 웨이가 존재하는 경우, 리플레이스 대상은 W=1인 웨이의 액세스 순서가 가장 오래된 것으로 취급되는 결과, W=1인 웨이의 캐시 엔트리가 선택된다. 이에 의해, 액세스 빈도가 낮은 W=1인 데이터가 캐시 메모리에 존재하기 때문에 발생하는 캐시 미스를 저감할 수 있다.
이상 설명한 바와 같이, 본 실시형태에 있어서의 캐시 메모리에 의하면, 위크 플래그 W=1인 라인은, 프로세서로부터 더 이상 독출도 기록도 이루어지지 않는 라인이며, 그 액세스 순서가 최고로서 취급되는 결과, 맨 먼저 리플레이스 대상으로서 선택된다. 이에 따라 액세스 빈도가 낮은 데이터에 의한 캐시 미스의 유발을 저감할 수 있다.
또, 종래의 LRU 방식에 있어서의 액세스 순서를 나타내는 순서 데이터를 직접 개변하지 않고, 간접적으로 W 플래그를 부가함으로써 액세스 순서를 개변하고 있으므로, 복잡한 하드웨어 회로를 추가하지 않고 실현할 수 있다.
<변형예>
또한, 본 발명의 캐시 메모리는, 상기 실시형태의 구성에 한정되는 것은 아니며, 여러가지 변형이 가능하다. 이하, 몇가지 변형예에 관해 설명한다.
(1) 사용 플래그 U를 사용하는 유사 LRU 대신에, 4개의 웨이의 액세스 순서 를 나타내는 순서 데이터를 캐시 엔트리마다 유지 및 갱신하여, 종래대로의 LRU 방식으로 리플레이스 대상을 선택하는 구성으로 해도 된다. 이 경우도, W=1인 캐시 엔트리를, 액세스 순서에 관계없이 맨 먼저 리플레이스 대상으로서 선택하도록 하면 된다. 또한, 상기 실시형태에서는, W 플래그의 부가에 의해 간접적으로 순서 데이터를 개변하고 있지만, 순서 데이터를 직접 개변하는 구성으로 해도 된다.
(2) 상기 실시형태에서는, 위크 플래그 W에 의해 액세스 순서가 최고인 것을 나타내고 있지만, 액세스 순서가 최신 또는 최고가 아닌 것을 나타내는 것으로 해도 된다. 이 경우, 리플레이스부(39)는, W=1인 캐시 엔트리는 최고가 아니라고 간주하여 리플레이스 대상으로서 선택하지 않고, 다른 캐시 엔트리를 선택하는 구성으로 하면 된다. 최고가 아닌 것을 나타내는 위크 플래그 W를, 액세스 빈도가 높은 데이터 또는 액세스 빈도가 중간 정도인 데이터를 유지하는 캐시 엔트리에 부가함으로써, 불필요한 리플레이스를 방지할 수 있다.
(3) 프로세서(1)가, 위크 플래그 W=1의 설정과 데이터의 기록을 명령하는 특별한 스토어 명령을 실행하고, 제어부(938)는, 특별한 스토어 명령을 검출하는 명령 검출부와, 당해 스토어 명령에 의한 기록시에 W=1로 설정하는 플래그 설정부를 더 구비하는 구성으로 해도 된다.
(4) 상기 실시형태에서는, 4웨이·세트·어소시에이티브의 캐시 메모리를 예로 들어 설명했으나, 웨이 수는 몇 개이든 상관없다. 또, 상기 실시형태에서는, 세트 수가 16인 예를 설명했으나, 세트 수는 몇 개이든 상관없다.
(5) 상기 실시형태에서는, 세트·어소시에이티브의 캐시 메모리를 예로 들어 설명했으나, 풀·어소시에이티브 방식의 캐시 메모리여도 된다.
(6) 상기 실시형태에서는, 서브 라인의 사이즈를 라인 사이즈의 1/4로 하고 있으나, 1/2, 1/8, 1/16 등 다른 사이즈여도 된다. 그 경우, 각 캐시 엔트리는, 서브 라인과 동일 수의 유효 플래그 및 더티 플래그를 각각 유지하면 된다.
(실시형태 2)
실시형태 1에서는, 통상의 LRU 방식을 전제로 해서 위크 플래그 W에 의해 액세스 순서를 최고화하는 구성에 관해 설명했다. 본 실시형태에서는, 통상의 LRU 방식과는 달리 액세스 순서를 나타내는 순서 데이터를 1비트의 플래그로 표시한 유사적인 LRU 방식과, 위크 플래그에 의한 최고화를 행하는 캐시 메모리에 관해 설명한다.
<캐시 메모리의 구성>
도 10은, 본 발명의 실시형태 2에 있어서의 캐시 메모리의 구성을 도시한 블록도이다. 동 도면의 캐시 메모리는, 도 2의 구성과 비교해, 웨이 31a∼31d 대신에 웨이 131a∼131d를 구비하는 점과, 제어부 38 대신에 제어부 138을 구비하는 점이 다르다. 이하, 같은 점은 설명을 생략하고, 다른 점을 중심으로 설명한다.
웨이 131a는, 웨이 31a와 비교해, 각 캐시 엔트리 중에, 사용 플래그 U가 추가되어 있는 점이 다르다. 웨이 131b∼131d도 마찬가지다. 사용 플래그 U는, 4개의 웨이 사이에서의 액세스 순서를 나타내는 순서 데이터 대신에 설치되어, 액세스 순서를 1비트로 표현하는 플래그이다.
도 11에, 캐시 엔트리의 비트 구성을 도시한다. 동 도면의 비트 구성은, 도 3과 비교해, 사용 플래그 U가 추가되어 있는 점이 다르다.
사용 플래그 U는, 그 캐시 엔트리에 액세스가 있었는지 여부를 나타내고, LRU 방식에 있어서의 미스 히트에 의한 리플레이스에 있어서 4개의 웨이의 캐시 엔트리에 있어서의 액세스 순서 데이터 대신에 사용된다. 보다 정확하게는, 사용 플래그 U의 1은 액세스가 있었던 것을, 0은 없는 것을 의미한다. 단, 1개의 세트 내의 4개의 웨이의 사용 플래그가 모두 1이 되면, 0으로 리셋된다. 달리 말하면, 사용 플래그 U는, 액세스된 시기가 오래된 것인지 새로운 것인지 2개의 상대적인 상태를 나타낸다. 즉, 사용 플래그 U가 1인 캐시 엔트리는, 사용 플래그가 0인 캐시 엔트리보다도 새롭게 액세스된 것을 의미한다.
제어부 138은, 제어부 38과 비교해, LRU 방식에 있어서의 액세스 순서 정보 대신에 사용 플래그 U를 사용해 리플레이스 제어하는 점이 다르다.
<제어부의 구성>
도 12는, 제어부(138)의 구성을 도시한 블록도이다. 동 도면의 제어부 138은, 제어부 38과 비교해, 리플레이스부 39 대신에 리플레이스부 139를 구비하는 점과, 플래그 갱신부(41)가 추가된 점이 다르다.
리플레이스부(139)는, 사용 플래그 U를 액세스 순서로 하는 유사적인 LRU 방식에 의해 캐시 미스시에 리플레이스 처리를 행한다. 그 때, 리플레이스부(139)는, 위크 플래그 W가 1인 캐시 엔트리가 있으면, 최고의 캐시 엔트리로서 취급하여 맨 먼저 리플레이스 대상으로서 선택한다.
플래그 갱신부(41)는, 캐시 메모리가 액세스되었을 때 사용 플래그 U의 갱 신 처리를 행한다.
<사용 플래그 U의 설명>
도 13은, 리플레이스부(139)에 의한 사용 플래그의 갱신예를 도시한다. 동 도면의 상단, 중단, 하단은, 웨이 0∼3에 걸친 세트 N을 구성하는 4개의 웨이의 캐시 엔트리를 나타내고 있다. 4개의 캐시 엔트리 우단의 1 또는 0은, 각각 사용 플래그의 값이다. 이 4개의 사용 플래그 U를 U0∼U3으로 기재한다.
동 도면 상단에서는 (U0∼U3)=(1, 0, 1, 0)이므로, 웨이 0, 2 의 캐시 엔트리는 액세스가 있었던 것을, 웨이 1, 3의 캐시 엔트리는 액세스가 없는 것을 의미한다.
이 상태에서, 메모리 액세스가 세트 N 내의 웨이 1의 캐시 엔트리에 히트한 경우, 동 도면 중단에 도시한 바와 같이 (U0∼U3)=(1, 1, 1, 0)으로 갱신된다. 즉, 실선으로 나타낸 바와 같이, 웨이 1의 사용 플래그 U1이 0에서 1로 갱신된다.
또한, 동 도면 중단의 상태에서, 메모리 액세스가 세트 N 내의 웨이 3의 캐시 엔트리에 히트한 경우, 동 도면 하단에 도시한 바와 같이, (U0∼U3)=(0, 0, 0, 1)로 갱신된다. 즉, 실선으로 나타낸 바와 같이 웨이 3의 사용 플래그 U1이 0에서 1로 갱신된다. 덧붙여, 파선으로 나타낸 바와 같이 웨이 3 이외의 사용 플래그 U0∼U2가 1에서 0으로 갱신된다. 이에 의해, 웨이 3의 캐시 엔트리가, 웨이 0∼2의 각 캐시 엔트리보다도 새롭게 액세스된 것을 의미하게 된다.
리플레이스부(139)는, 캐시 미스시에 W=1인 캐시 엔트리가 존재하지 않으면, 사용 플래그에 기초해 리플레이스 대상의 캐시 엔트리를 결정하여 리플레이스를 행 한다. 예를 들면, 리플레이스부(139)는, 도 5의 상단에서는 웨이 1과 웨이 3 중 어느 하나를 리플레이스 대상으로 결정하고, 도 5의 중단에서는 웨이 3을 리플레이스 대상으로 결정하고, 도 5의 하단에서는 웨이 0∼2 중 어느 하나를 리플레이스 대상으로 결정한다.
<위크 플래그 W의 설명>
도 14(a)는 위크 플래그가 존재하지 않는다고 가정한 경우의 비교예이며, 캐시 엔트리가 리플레이스되는 상태를 도시한 도면이다. 동 도면에 있어서도, 도 13과 동일하게 웨이 0∼3에 걸친 세트 N을 구성하는 4개의 캐시 엔트리를 도시하고 있다. 4개의 캐시 엔트리 우단의 1 또는 0은, 각각 사용 플래그의 값이다. 또, 데이터 E만 액세스 빈도가 낮은 데이터를, 데이터 A, B, C, D는 액세스 빈도가 높은 데이터로 한다.
동 도면 (a)의 1단째 상태에서, 프로세서(1)가 데이터 E에 액세스하면, 캐시 미스가 발생한다. 이 캐시 미스에 의해, 예를 들면 U=0인 캐시 엔트리 중에서 액세스 빈도가 높은 데이터 C의 캐시 엔트리가 액세스 빈도가 낮은 데이터 E로 리플레이스되어, 2단째의 상태가 된다.
2단째의 상태에서, 프로세서(1)가 데이터 C에 액세스하면, 캐시 미스가 발생한다. 이 캐시 미스에 의해, U=0인 캐시 엔트리인 액세스 빈도가 높은 데이터 D의 캐시 엔트리가 액세스 빈도가 높은 데이터 C로 리플레이스되어, 3단째의 상태가 된다.
3단째의 상태에서, 프로세서(1)가 데이터 D에 액세스하면, 캐시 미스가 발생 한다. 이 캐시 미스에 의해, 예를 들면 액세스 빈도가 높은 데이터 C의 캐시 엔트리가 액세스 빈도가 높은 데이터 D로 리플레이스되어, 3단째의 상태가 된다.
동일하게 4단째에서도, 사용 빈도가 낮은 데이터 E는 리플레이스 대상으로서 선택되지 않고, 캐시 메모리에 남아 있다.
5단째의 상태에서, 사용 빈도가 낮은 데이터 E는 가장 오래된(U=0) 것이므로, 리플레이스 대상으로서 선택되어 추방된다.
이렇게, 유사 LRU 방식에 있어서(통상의 LRU 방식에 있어서도), 액세스 빈도가 낮은 데이터 E에 의해, 4웨이인 경우는 최악 4회의 캐시 미스를 유발하는 경우가 있다.
도 14(b)는, 리플레이스 처리에 있어서의 위크 플래그 W의 역할을 도시한 설명도이다.
동 도면 (b)의 1단째의 상태(동 도면 (a)의 1단째와 동일)에서, 프로세서(1)가 데이터 E에 액세스하면, 캐시 미스가 발생한다. 이 캐시 미스에 의해, 예를 들면 U=0인 캐시 엔트리 중에서 액세스 빈도가 높은 데이터 C의 캐시 엔트리가 액세스 빈도가 낮은 데이터 E로 리플레이스된다. 이 때, 프로세서(1)는, 데이터 E의 캐시 엔트리에 위크 플래그 W를 1로 설정하는 것으로 한다. 이에 의해, 다음 캐시 미스시에 데이터 E의 캐시 엔트리가 맨 먼저 추방되고, 2단째의 상태가 된다.
2단째의 상태에서, 프로세서(1)가 데이터 C에 액세스하면 캐시 미스가 발생한다. 이 캐시 미스에 의해, W=1인 캐시 엔트리인 액세스 빈도가 낮은 데이터 E의 캐시 엔트리가 리플레이스 대상으로서 선택되어, 액세스 빈도가 높은 데이터 C로 리플레이스되어, 3단째의 상태가 된다.
이렇게 워크 플래그 W를 설치함으로써, 액세스 빈도가 낮은 데이터에 의한 캐시 미스의 유발을 저감할 수 있다.
<U 플래그 갱신 처리>
도 15는, 플래그 갱신부(41)에 있어서의 U 플래그 갱신 처리를 도시한 흐름도이다. 동 도면에서는, 유효 플래그가 0(무효)인 캐시 엔트리의 사용 플래그 U는 0으로 초기화되어 있는 것으로 한다.
동 도면에 있어서, 플래그 갱신부(41)는, 캐시 히트했을 때(단계 S61), 세트 인덱스에 의해 선택된 세트에 있어서의 히트한 웨이의 사용 플래그 U를 1로 셋팅하고(단계 S62), 그 세트내의 다른 웨이의 사용 플래그 U를 독출하여(단계 S63), 독출한 사용 플래그 U가 모두 1인지 여부를 판정하여(단계 S64), 모두 1이 아니면 종료하고, 모두 1이면 다른 웨이의 모든 사용 플래그 U를 0으로 리셋한다(단계 S65).
이렇게 해서 플래그 갱신부(41)는, 도 13, 도 14(a), (b)에 도시한 갱신예처럼 사용 플래그 U를 갱신한다.
<리플레이스 처리>
도 16은, 리플레이스부(139)에 있어서의 리플레이스 처리를 도시한 흐름도이다. 동 도면에 있어서 리플레이스부(139)는, 메모리 액세스가 미스했을 때(단계 S91), 세트 인덱스에 의해 선택된 세트에 있어서의, 4개 웨이의 사용 플래그 U 및 위크 플래그 W를 독출하여(단계 S92), W=1인 웨이가 존재하는지 여부를 판정한다(단계 S93). W=1인 웨이가 존재하지 않는다고 판정된 경우, U=0인 웨이를 1개 선택 한다(단계 S94). 이 때, 사용 플래그 U가 0이 되어 있는 웨이가 복수 존재하는 경우는, 리플레이스부(139)는 랜덤하게 1개를 선택한다. 또, W=1인 웨이가 존재한다고 판정된 경우, U 플래그의 값에 관계없이 W=1인 웨이를 1개 선택한다(단계 S95). 이 때, 위크 플래그 W가 1이 되어 있는 웨이가 복수 존재하는 경우는, 리플레이스부(139)는 랜덤하게 1개를 선택한다.
또한, 리플레이스부(139)는, 당해 세트에 있어서의 선택된 웨이의 캐시 엔트리를 대상으로 리플레이스하여(단계 S96), 리플레이스 후에 당해 캐시 엔트리의 사용 플래그 U를 1로, 위크 플래그 W를 0으로 초기화한다(단계 S97). 또한, 이 때 유효 플래그 V, 더티 플래그 D는, 각각 1, 0으로 초기화된다.
이렇게 W=1인 웨이가 존재하지 않는 경우, 리플레이스 대상은 사용 플래그 U가 0인 캐시 엔트리 중에서 1개 선택된다.
또, W=1인 웨이가 존재하는 경우, 리플레이스 대상은, 사용 플래그 U가 0인지 1인지를 막론하고, W=1인 웨이의 캐시 엔트리로부터 1개 선택된다. 이에 의해 도 14(a), (b)에 도시한 바와 같이, 액세스 빈도가 낮은 데이터가 캐시 메모리에 남는 것에 의한 캐시 미스의 유발을 저감할 수 있다.
이상 설명한 바와 같이, 본 실시형태에 있어서의 캐시 메모리에 의하면, 종래의 LRU 방식에 있어서의 액세스 순서를 나타내는 데이터 대신에 1비트의 사용 플래그를 사용하는 유사 LRU 방식을 채용함으로써, 액세스 순서 데이터로서 1비트의 플래그로 족하므로, 액세스 순서 데이터의 데이터량이 적고 갱신이 간단하여 하드웨어 규모를 작게 할 수 있다.
또, 더 이상 사용되지 않은 캐시 엔트리에 W=1이 설정되어, W=1인 캐시 엔트리가 맨 먼저 리플레이스 대상으로서 선택되기 때문에, 액세스 빈도가 낮은 데이터가 캐시 메모리에 남는 것에 의한 캐시 미스의 유발을 저감할 수 있다.
<변형예>
(1) 상기 각 실시형태에 있어서, 프로세서(1)가, 위크 플래그 W를 1로 설정하면서 데이터를 액세스하는 로딩/스토어 명령(이하 W-L/S 명령이라 한다)을 실행하고, 제어부(38) 또는 제어부(138)는 W-L/S 명령의 실행을 검출했을 때, 당해 W-L/S 명령에 의한 액세스의 직후에 W 플래그를 1로 설정하는 구성으로 해도 된다. 도 17에, 그 경우에 제어부(38 또는 138)에 구비되는 W 플래그 설정부(40a)의 구성예를 도시한다.
동 도면에 있어서 W 플래그 설정부(40a)는, LD/ST 명령 검출부(410), 위크 지시 검출부(411), AND 회로(412), 플래그 개서부(413)를 구비한다.
LD/ST 명령 검출부(410)는, 프로세서(1)가 로딩/스토어 명령이 실행된 것을 검출한다. 위크 지시 검출부(411)는, 로딩/스토어 명령의 실행시에 프로세서(1)로부터 위크 지시가 출력되어 있는지 여부를 검출한다. 위크 지시는, 예를 들면 프로세서(1)로부터의 신호선에 의해 검출할 수 있다. AND 회로(412)는, 로딩/스토어 명령의 실행이 검출되고, 또한, 위크 지시가 검출되었을 때, 플래그 개서부(413)에 W-L/S 명령의 검출을 통지한다. 플래그 개서부(413)는, W-L/S 명령이 검출되었을 때, 당해 W-L/S 명령에 의해 액세스된 데이터를 유지하는 캐시 엔트리에 대해 위크 플래그 W를 1로 설정한다.
(2) 또, 상기 (1)에 있어서 W 플래그 설정부(40a)는, 실시형태 1에 있어서의 제어부(38)에 설치되는 경우에는, 위크 플래그 W 대신에, 액세스 순서를 나타내는 순서 데이터를 직접 개변하는 구성으로 해도 된다. 그 경우, 위크 지시 검출부(411)는, 설정해야 할 액세스 순서의 지정이 포함된 로딩/스토어 명령을 실행하는 프로세서(1)로부터, 설정해야 할 액세스 순서를 나타내는 번호(N번째)를 검출한다. N번째는, 4웨이·세트·어소시에이티브인 경우 1번부터 4번(또는 0부터 3) 중 어느 하나이면 된다. 예를 들면 프로세서(1)는, 액세스 빈도가 낮은 데이터에 대해서는 최고인 N=4로 하고, 액세스 빈도가 높은 데이터에 대해서는 N=1 또는 2번 등을 지정할 수 있다. 플래그 개서부(413)는, 액세스 순서의 지정이 포함된 로딩/스토어 명령에 의해 액세스된 데이터를 유지하는 캐시 엔트리의 순서 데이터를 N번으로 개변한다. 이렇게, 순서 데이터를 직접 임의의 N번으로 개변하는 구성으로 해도 된다.
(3) 도 5에 도시한 W 플래그 설정부(40) 대신에 도 18에 도시한 W 플래그 설정부(40b)를 구비하는 구성으로 해도 된다. W 플래그 설정부(40b)는, W 플래그 설정부(40)에 대해 비교기(408)를 추가하고, 플래그 개서부(407) 대신에 플래그 개서부(407a)를 구비하는 구성으로 되어 있다. 비교기(408)는, 가산기(404)로부터 출력되는 엔드 라인의 라인 어드레스와, 위크 플래그 설정을 위해서 플래그 개서부(407a)로부터 출력되어, 태그 어드레스 레지스터(20)에 유지된 라인 어드레스가 일치하는지 여부를 판정한다. 이 비교기(408)는, 도 8에 도시한 W 플래그 설정 처리 중인 루프 1에 있어서의 엔드 어드레스의 판정에 사용된다. 즉, 플래그 개서부 (407a)는, 비교기(408)가 일치한다고 판정한 경우, 위크 플래그의 설정을 종료한다.
(4) 도 6(a), (b), (c)에 도시한 각 명령은, 컴파일러에 의해 프로그램 내에 삽입해도 된다. 그 때 컴파일러는, 예를 들면 배열 데이터의 기록이나, 압축 동화상 데이터를 디코드할 때의 블록 데이터의 기록 등, 더 이상 기록을 하지 않는 프로그램 위치에 상기 각 명령을 삽입하도록 하면 된다.
본 발명은, 메모리 액세스를 고속화하기 위한 캐시 메모리에 적합하며, 예를 들면 온칩 캐시 메모리, 오프칩 캐시 메모리, 데이터 캐시 메모리, 명령 캐시 메모리 등에 적합하다.

Claims (10)

  1. 삭제
  2. 삭제
  3. 캐시의 단위 데이터를 유지하는 캐시 엔트리마다 액세스 순서를 나타내는 순서 데이터를 유지하고, 가장 오래된 순서를 나타내는 캐시 엔트리를 리플레이스하는 캐시 메모리로서,
    상기 순서 데이터를 실제의 액세스 순서에 반(反)하여 개변하는 개변 수단과,
    개변 후의 순서 데이터에 기초해 리플레이스 해야 할 캐시 엔트리를 선택하는 선택 수단을 구비하며,
    상기 개변 수단은, 프로세서로부터 지정된 어드레스 범위에 속하는 데이터를 유지하는 캐시 엔트리를 특정하는 특정 수단과, 특정된 캐시 엔트리의 순서 데이터를 실제의 액세스 순서에 반하여 최고화(最古化)하는 최고화 수단을 구비하고,
    상기 특정 수단은, 상기 어드레스 범위의 선두 어드레스가 라인 데이터의 도중을 가리키는 경우, 당해 선두 어드레스를, 상기 어드레스 범위에 포함되는 선두 라인을 가리키는 스타트 라인 어드레스로 변환하는 제1 변환 수단과, 상기 어드레스 범위의 말미 어드레스가 라인 데이터의 도중을 가리키는 경우, 당해 말미 어드레스를, 상기 어드레스 범위에 포함되는 말미 라인을 가리키는 엔드 라인 어드레스로 변환하는 제2 변환 수단과, 상기 스타트 라인 어드레스부터 엔드 라인 어드레스까지의 각 라인 어드레스에 대응하는 데이터를 유지하는 캐시 엔트리가 있는지 여부를 판정하는 판정 수단을 구비하는 것을 특징으로 하는 캐시 메모리.
  4. 제3항에 있어서, 상기 최고화 수단은, 액세스 순서가 가장 오래된 것을 나타내는 최고화 플래그를 순서 데이터에 부가하는 것을 특징으로 하는 캐시 메모리.
  5. 제4항에 있어서, 상기 선택 수단은, 캐시 미스(miss)시에, 최고화 플래그가 부가된 캐시 엔트리가 존재하는 경우, 그 캐시 엔트리를 리플레이스 대상으로서 선택하고, 최고화 플래그가 부가된 캐시 엔트리가 존재하지 않는 경우, 순서 데이터에 따라서 리플레이스 대상으로 해야 할 캐시 엔트리를 선택하는 것을 특징으로 하는 캐시 메모리.
  6. 제5항에 있어서, 상기 캐시 엔트리는, 액세스 순서가 오래된 것인지 새로운 것인지를 나타내는 1비트의 순서 플래그를 상기 순서 데이터로서 갖고,
    상기 선택 수단은, 최고화 플래그가 부가된 캐시 엔트리가 존재하지 않는 경우, 순서 플래그가 오래된 것을 나타내는 캐시 엔트리를 리플레이스 대상으로서 선 택하는 것을 특징으로 하는 캐시 메모리.
  7. 캐시의 단위 데이터를 유지하는 캐시 엔트리마다 액세스 순서를 나타내는 순서 데이터를 유지하고, 가장 오래된 순서를 나타내는 캐시 엔트리를 리플레이스하는 캐시 메모리로서,
    상기 순서 데이터를 실제의 액세스 순서에 반하여 개변하는 개변 수단과,
    개변 후의 순서 데이터에 기초해 리플레이스해야 할 캐시 엔트리를 선택하는 선택 수단을 구비하며,
    상기 개변 수단은, 프로세서로부터 지정된 어드레스 범위에 속하는 데이터를 유지하는 캐시 엔트리를 특정하는 특정 수단을 구비하고,
    상기 특정 수단은, 상기 어드레스 범위의 선두 어드레스가 라인 데이터의 도중을 가리키는 경우, 당해 선두 어드레스를, 상기 어드레스 범위에 포함되는 선두 라인을 가리키는 스타트 라인 어드레스로 변환하는 제1 변환 수단과, 상기 어드레스 범위의 말미 어드레스가 라인 데이터의 도중을 가리키는 경우, 당해 말미 어드레스를, 상기 어드레스 범위에 포함되는 말미 라인을 가리키는 엔드 라인 어드레스로 변환하는 제2 변환 수단과, 상기 스타트 라인 어드레스부터 엔드 라인 어드레스까지의 각 라인 어드레스에 대응하는 데이터를 유지하는 캐시 엔트리가 있는지 여부를 판정하는 판정 수단을 구비하며,
    또한, 상기 개변 수단은, 상기 각 라인 어드레스에 대해 1개의 캐시 엔트리의 액세스 순서가 (a) 가장 오래된 것을 나타내거나, 혹은 (b) 가장 새로운 것을 나타내거나, 혹은 (c) 가장 오래된 것과 가장 새로운 것의 사이의 것을 나타내도록, 상기 순서 데이터를 개변하는, 캐시 메모리.
  8. 캐시의 단위 데이터를 유지하는 캐시 엔트리마다 액세스 순서를 나타내는 순서 데이터를 유지하고, 가장 오래된 순서를 나타내는 캐시 엔트리를 리플레이스하는 캐시 메모리로서,
    상기 순서 데이터를 실제의 액세스 순서에 반하여 개변하는 개변 수단과,
    개변 후의 순서 데이터에 기초해 리플레이스해야 할 캐시 엔트리를 선택하는 선택 수단을 구비하며,
    상기 개변 수단은,
    프로세서로부터 지정된 어드레스 범위에 속하는 데이터를 유지하는 캐시 엔트리를 특정하는 특정 수단과,
    액세스 순서의 개변 지시가 포함된 메모리 액세스 명령이 실행된 것을 검출하는 명령 검출 수단과,
    당해 명령에 의해 액세스가 이루어진 캐시 엔트리에 대해 순서 데이터를 다시쓰는 개서 수단을 구비하고,
    상기 특정 수단은, 상기 어드레스 범위의 선두 어드레스가 라인 데이터의 도중을 가리키는 경우, 당해 선두 어드레스를, 상기 어드레스 범위에 포함되는 선두 라인을 가리키는 스타트 라인 어드레스로 변환하는 제1 변환 수단과, 상기 어드레스 범위의 말미 어드레스가 라인 데이터의 도중을 가리키는 경우, 당해 말미 어드레스를, 상기 어드레스 범위에 포함되는 말미 라인을 가리키는 엔드 라인 어드레스로 변환하는 제2 변환 수단과, 상기 스타트 라인 어드레스부터 엔드 라인 어드레스까지의 각 라인 어드레스에 대응하는 데이터를 유지하는 캐시 엔트리가 있는지 여부를 판정하는 판정 수단을 구비하는, 캐시 메모리.
  9. 캐시의 단위 데이터를 유지하는 캐시 엔트리마다 액세스 순서를 나타내는 순서 데이터를 유지하고, 가장 오래된 순서를 나타내는 캐시 엔트리를 리플레이스하는 캐시 메모리로서,
    상기 순서 데이터를 실제의 액세스 순서에 반하여 개변하는 개변 수단과,
    개변 후의 순서 데이터에 기초해 리플레이스해야 할 캐시 엔트리를 선택하는 선택 수단을 구비하며,
    상기 개변 수단은, 프로세서로부터 지정된 어드레스 범위에 속하는 데이터를 유지하는 캐시 엔트리를 특정하는 특정 수단을 구비하고,
    상기 특정 수단은, 상기 어드레스 범위의 선두 어드레스가 라인 데이터의 도중을 가리키는 경우, 당해 선두 어드레스를, 상기 어드레스 범위에 포함되는 선두 라인을 가리키는 스타트 라인 어드레스로 변환하는 제1 변환 수단과, 상기 어드레스 범위의 말미 어드레스가 라인 데이터의 도중을 가리키는 경우, 당해 말미 어드레스를, 상기 어드레스 범위에 포함되는 말미 라인을 가리키는 엔드 라인 어드레스로 변환하는 제2 변환 수단과, 상기 스타트 라인 어드레스부터 엔드 라인 어드레스까지의 각 라인 어드레스에 대응하는 데이터를 유지하는 캐시 엔트리가 있는지 여부를 판정하는 판정 수단을 구비하며,
    또한, 상기 개변 수단은, 상기 판정수단에 의해 상기 데이터를 유지하고 있다고 판정된 캐시 엔트리의 순서 데이터를 다시쓰기하는 개서 수단을 더 구비하는, 캐시 메모리.
  10. 캐시의 단위 데이터를 유지하는 캐시 엔트리마다 액세스 순서를 나타내는 순서 데이터를 유지하고, 가장 오래된 순서를 나타내는 캐시 엔트리를 리플레이스하는 캐시 메모리의 제어 방법으로서,
    상기 순서 데이터를 실제의 액세스 순서에 반하여 개변하는 개변 단계와,
    개변 후의 순서 데이터에 기초해 리플레이스 해야 할 캐시 엔트리를 선택하는 선택 단계를 구비하며,
    상기 개변 단계는, 프로세서로부터 지정된 어드레스 범위에 속하는 데이터를 유지하는 캐시 엔트리를 특정하는 특정 단계와, 특정된 캐시 엔트리의 순서 데이터를 실제의 액세스 순서에 반하여 최고화(最古化)하는 최고화 단계를 구비하고,
    상기 특정 단계는, 상기 어드레스 범위의 선두 어드레스가 라인 데이터의 도중을 가리키는 경우, 당해 선두 어드레스를, 상기 어드레스 범위에 포함되는 선두 라인을 가리키는 스타트 라인 어드레스로 변환하는 제1 변환 단계와, 상기 어드레스 범위의 말미 어드레스가 라인 데이터의 도중을 가리키는 경우, 당해 말미 어드레스를, 상기 어드레스 범위에 포함되는 말미 라인을 가리키는 엔드 라인 어드레스로 변환하는 제2 변환 단계와, 상기 스타트 라인 어드레스부터 엔드 라인 어드레스까지의 각 라인 어드레스에 대응하는 데이터를 유지하는 캐시 엔트리가 있는지 여부를 판정하는 판정 단계를 구비하는 것을 특징으로 하는 제어 방법.
KR1020067005718A 2003-11-18 2004-11-02 캐시 메모리 및 그 제어 방법 KR100801814B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2003-00387351 2003-11-18
JP2003387351 2003-11-18

Publications (2)

Publication Number Publication Date
KR20060087579A KR20060087579A (ko) 2006-08-02
KR100801814B1 true KR100801814B1 (ko) 2008-02-11

Family

ID=34616158

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067005718A KR100801814B1 (ko) 2003-11-18 2004-11-02 캐시 메모리 및 그 제어 방법

Country Status (7)

Country Link
US (2) US7984243B2 (ko)
EP (1) EP1686485A4 (ko)
JP (1) JP4008946B2 (ko)
KR (1) KR100801814B1 (ko)
CN (1) CN100424658C (ko)
TW (1) TW200530818A (ko)
WO (1) WO2005050455A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101151600B (zh) 2005-04-08 2012-02-22 松下电器产业株式会社 高速缓冲存储器***及其控制方法
JP2008211681A (ja) * 2007-02-27 2008-09-11 Kyocera Corp 情報機器および同機器における復号化処理方法
US9003125B2 (en) * 2012-06-14 2015-04-07 International Business Machines Corporation Cache coherency protocol for allowing parallel data fetches and eviction to the same addressable index
US10248422B2 (en) * 2016-07-02 2019-04-02 Intel Corporation Systems, apparatuses, and methods for snooping persistent memory store addresses

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61290555A (ja) * 1985-06-19 1986-12-20 Toshiba Corp キャッシュシステム
JPH05119453A (ja) * 1991-07-26 1993-05-18 Konica Corp ハロゲン化銀カラー写真感光材料の処理方法
US5546559A (en) * 1993-06-07 1996-08-13 Hitachi, Ltd. Cache reuse control system having reuse information field in each cache entry to indicate whether data in the particular entry has higher or lower probability of reuse

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5119453A (en) 1974-08-08 1976-02-16 Fujitsu Ltd Patsufua memoriseigyohoshiki
EP0203601B1 (en) 1985-05-29 1992-08-05 Kabushiki Kaisha Toshiba Cache system adopting an lru system, and magnetic disk controller incorporating it
US5043885A (en) * 1989-08-08 1991-08-27 International Business Machines Corporation Data cache using dynamic frequency based replacement and boundary criteria
US5497477A (en) * 1991-07-08 1996-03-05 Trull; Jeffrey E. System and method for replacing a data entry in a cache memory
US5375216A (en) 1992-02-28 1994-12-20 Motorola, Inc. Apparatus and method for optimizing performance of a cache memory in a data processing system
JPH0869417A (ja) 1994-08-29 1996-03-12 Sanyo Electric Co Ltd 計算機システム
US6266742B1 (en) * 1997-10-27 2001-07-24 International Business Machines Corporation Algorithm for cache replacement
US6105115A (en) * 1997-12-31 2000-08-15 Intel Corporation Method and apparatus for managing a memory array
US6202129B1 (en) * 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
US6393525B1 (en) * 1999-05-18 2002-05-21 Intel Corporation Least recently used replacement method with protection
US6397298B1 (en) * 1999-07-30 2002-05-28 International Business Machines Corporation Cache memory having a programmable cache replacement scheme
US6516384B1 (en) * 1999-12-30 2003-02-04 Intel Corporation Method and apparatus to perform a round robin and locking cache replacement scheme
US6738865B1 (en) * 2000-06-09 2004-05-18 International Business Machines Corporation Method, system, and program for demoting data from cache based on least recently accessed and least frequently accessed data
EP1182566B1 (en) 2000-08-21 2013-05-15 Texas Instruments France Cache operation based on range of addresses
US6487638B2 (en) * 2001-01-26 2002-11-26 Dell Products, L.P. System and method for time weighted access frequency based caching for memory controllers
US20020152361A1 (en) * 2001-02-05 2002-10-17 International Business Machines Corporation Directed least recently used cache replacement method
JP3946515B2 (ja) 2001-12-27 2007-07-18 株式会社アマダエンジニアリングセンター 折り曲げ加工装置
JP2003223360A (ja) 2002-01-29 2003-08-08 Hitachi Ltd キャッシュメモリシステムおよびマイクロプロセッサ
WO2005048112A1 (ja) * 2003-11-12 2005-05-26 Matsushita Electric Industrial Co., Ltd. キャッシュメモリおよびその制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61290555A (ja) * 1985-06-19 1986-12-20 Toshiba Corp キャッシュシステム
JPH05119453A (ja) * 1991-07-26 1993-05-18 Konica Corp ハロゲン化銀カラー写真感光材料の処理方法
US5546559A (en) * 1993-06-07 1996-08-13 Hitachi, Ltd. Cache reuse control system having reuse information field in each cache entry to indicate whether data in the particular entry has higher or lower probability of reuse

Also Published As

Publication number Publication date
EP1686485A1 (en) 2006-08-02
TW200530818A (en) 2005-09-16
US20110179227A1 (en) 2011-07-21
US7984243B2 (en) 2011-07-19
US20080168232A1 (en) 2008-07-10
CN100424658C (zh) 2008-10-08
JP4008946B2 (ja) 2007-11-14
WO2005050455A1 (ja) 2005-06-02
JPWO2005050455A1 (ja) 2007-12-06
KR20060087579A (ko) 2006-08-02
EP1686485A4 (en) 2008-10-29
CN1853172A (zh) 2006-10-25

Similar Documents

Publication Publication Date Title
US5546559A (en) Cache reuse control system having reuse information field in each cache entry to indicate whether data in the particular entry has higher or lower probability of reuse
JP4044585B2 (ja) キャッシュメモリおよびその制御方法
EP0996891B1 (en) Data processing circuit with cache memory
KR100837479B1 (ko) 캐시 메모리 및 그 제어 방법
KR100955433B1 (ko) 파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법
KR100826757B1 (ko) 캐시 메모리 및 그 제어 방법
EP2492818A1 (en) Cache memory and control method thereof
JP2004303238A (ja) フラッシュメモリアクセス装置及び方法
US20080301372A1 (en) Memory access control apparatus and memory access control method
US20050188158A1 (en) Cache memory with improved replacement policy
US20080052467A1 (en) System for restricted cache access during information transfers and method thereof
KR20060063804A (ko) 캐시 메모리 및 캐시 메모리 제어 방법
EP0997821A1 (en) Cache memory having a freeze function
KR100801814B1 (ko) 캐시 메모리 및 그 제어 방법
US7376797B2 (en) Cache memory system and method using reference bits
JPH0784886A (ja) キャッシュメモリ制御方法およびキャッシュメモリ制御装置
JPH0289145A (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
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20101222

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee