KR100900012B1 - 정보 처리 시스템, 정보 처리 기판, 및 캐시 태그 및스누프 태그의 갱신 방법 - Google Patents

정보 처리 시스템, 정보 처리 기판, 및 캐시 태그 및스누프 태그의 갱신 방법 Download PDF

Info

Publication number
KR100900012B1
KR100900012B1 KR1020070045444A KR20070045444A KR100900012B1 KR 100900012 B1 KR100900012 B1 KR 100900012B1 KR 1020070045444 A KR1020070045444 A KR 1020070045444A KR 20070045444 A KR20070045444 A KR 20070045444A KR 100900012 B1 KR100900012 B1 KR 100900012B1
Authority
KR
South Korea
Prior art keywords
tag
processor
cache
way
snoop
Prior art date
Application number
KR1020070045444A
Other languages
English (en)
Other versions
KR20080016429A (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 KR20080016429A publication Critical patent/KR20080016429A/ko
Application granted granted Critical
Publication of KR100900012B1 publication Critical patent/KR100900012B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Abstract

본 발명은, 캐시를 갖는 CPU와, 그 캐시의 태그의 복사(스누프 태그)를 갖는 시스템 컨트롤러를 탑재하면서, 캐시 태그의 대체(replacement) 정보의 발행이 없는 CPU를 갖는 정보 처리 시스템에 있어서, CPU 내의 캐시 태그의 지나친 대체를 억제함으로써, 캐시 미스율을 줄이고, 성능 저하를 억제하는 것을 목적으로 한다.
시스템 컨트롤러 내의 스누프 태그의 WAY를, CPU 내의 캐시 태그의 WAY수보다 많게 한 정보 처리 시스템에 의해, 상기 과제의 해결을 도모한다.

Description

정보 처리 시스템, 정보 처리 기판, 및 캐시 태그 및 스누프 태그의 갱신 방법{INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING BOARD, AND METHOD OF UPDATING CACHE TAG AND SNOOP TAG}
도 1은 본 발명의 일 실시예에 따른 정보 처리 시스템의 구성 개념도.
도 2는 본 발명의 일 실시예에 있어서의 정보 처리 시스템의 태그의 구성도.
도 3은 캐시 READ 요구, Eviction 요구, 및 캐시 데이터의 패킷 형식을 나타내는 도면.
도 4a는 본 발명의 일 실시예에 있어서의 캐시 미스 발생시의 태그의 제1 갱신예.
도 4b는 본 발명의 일 실시예에 있어서의 캐시 미스 발생시의 태그의 제2 갱신예.
도 5는 본 발명의 일 실시예에 있어서의 캐시 미스 발생시의 태그의 갱신의 흐름.
도 6은 일반적인 멀티 프로세서 구성을 구비하는 정보 처리 시스템의 전체도(칩 세트).
도 7은 정보 처리 시스템에 있어서의 태그를 나타내는 도면.
도 8은 종래에 있어서의 태그의 구성예.
도 9a는 종래에 있어서의 캐시 미스 발생시의 태그의 제1 갱신예.
도 9b는 종래에 있어서의 캐시 미스 발생시의 태그의 제2 갱신예.
<도면의 주요 부분에 대한 부호의 설명>
100: 정보 처리 시스템 101: 프로세서 제어 장치
102: 스누프 태그 103: 웨이
104: 프로세서 105: 캐시 태그
106: 웨이 1: 시스템 컨트롤러
2(2a, 2b, 2c, 2d): CPU
3(3a, 3b, 3c, 3d): 캐시 태그
4(4a, 4b, 4c, 4d): 캐시 데이터
5(5a, 5b, 5c, 5d): 스누프 태그
6(6a, 6b, 6c, 6d): CPU 버스
본 발명은, 프로세서 버스상에 복수의 CPU 코어를 가지며, CPU 내 캐시의 복사(copy)인 스누프 태그를 시스템 컨트롤러가 갖는 시스템의 태그 구성에 관한 것이다.
일반적으로, CPU보다 저속인 주기억 장치에의 액세스의 작업 처리량을 향상시키는 수단으로서, 캐시 메모리가 사용되고 있다. 캐시 메모리는 통상, CPU와 주 기억 장치 사이에 배치되며, CPU 내에 설치되는 것이 일반적이다.
캐시 메모리와 주기억 장치에서 사용되는 기억 장치(외부 메모리)를 비교하면, 캐시 메모리가 액세스 속도는 고속이지만, 기억 용량이 작다. 따라서 캐시 메모리에 저장되는 데이터는, 외부 메모리에 전개된 전체 데이터의 일부이다.
캐시 메모리에 판독 대상의 데이터가 존재하면 고속으로 그 데이터를 판독할 수 있다. 그러나 캐시 메모리에 판독 대상의 데이터가 존재하지 않으면 주기억 장치에 액세스하여 판독 대상이 되는 데이터를 판독함으로써, 판독 속도는 저하된다.
캐시 메모리는, 통상 주기억 장치에 유지되어 있는 데이터의 일부를 저장하는 캐시(데이터 영역. 또는 캐시 데이터라고 함)와, 캐시에 저장되어 있는 데이터의 어드레스의 일부(태그)를 저장하는 태그 메모리(태그 영역, 또는 캐시 태그라고 함)로 구성된다.
프로세서는, 실행에 요구되는 데이터가 캐시에 존재하는지의 여부를, 이 데이터의 어드레스와 태그 메모리중의 태그를 비교함으로써 알 수 있다. 요구되는 데이터가 캐시중에 존재하지 않는 경우, 이 데이터가 주 메모리로부터 캐시에 로드되고, 이 데이터의 어드레스의 일부가 새로운 태그로서 태그 메모리에 로드된다. 이 새로운 태그를 태그 메모리에 로드하기 위해 태그 메모리로부터 요구되지 않는, 또는 요구되지 않는다고 생각되는 태그를 내보내야 한다.
태그 메모리는, 복수의 웨이(WAY)로 이루어진다. 새로운 태그의 로드에 앞서서 내보내는 태그를 결정하기(태그의 갱신을 행함) 위해 태그에 미리 LRU(Least Recently Used) 정보가 부가된다.
예컨대 LRU 정보 생성 회로는, 어떤 태그를 다음에 치환해야 하는지를 나타내는 LRU 정보를 태그의 기록시에 생성하고, 이 태그에 대응시켜 태그 메모리에 기록한다. 따라서 태그 메모리의 판독/기록의 단위인 1라인에는 태그와 그 LRU 정보가 저장된다. 새로운 태그를 태그 메모리에 로드할 때에, 보충 목적지 웨이 정보 생성 회로가 이 태그를 어떤 웨이에 보충하는지를 태그의 각각에 부가된 LRU 정보를 이용하여 판정한다.
매치 판정 회로는 프로세서가 요구하는 데이터의 어드레스(의 일부)와 태그 메모리에 저장되어 있는 소정의 태그와의 비교를 행하고, 이 데이터가 캐시중에 존재하는지의 여부를 판정한다.
이 판정 후, 태그 메모리로부터 판독된 태그(의 라인)는, 다시 태그 메모리에 기록된다. 즉 이 판정 후에 태그의 재기록 사이클이 실행된다. 이것은 태그의 이 라인의 LRU 정보를 태그 메모리에 재기록하지 않으면 LRU 정보가 이 판정 결과를 반영한 올바른 LRU 정보라고 할 수 없게 되기 때문이다. 그래서 이 라인의 히트/미스 히트의 결과에 기초하여, LRU 정보 생성 회로가 새로운 LRU 정보를 생성하여 이것을 태그 메모리에 저장한다. 이에 따라, LRU 정보를 이용한 새로운 태그의 기록의 LRU 제어가 행해진다.
도 6은, 일반적인 멀티 프로세서 구성을 구비하는 정보 처리 시스템의 전체도(칩 세트)를 도시한다. 동 도면에 있어서 정보 처리 시스템은 주로 시스템 보드(10), 입출력 제어 유닛(15), 데이터 크로스바(17), 어드레스 크로스바(16)로 구성된다. 시스템 보드(10)는, 시스템 컨트롤러(1), 펌웨어 허브(11), CPU(2), 메모 리 컨트롤러(12), 메모리(13), CPU 버스(6), 펌웨어 허브 버스(7)로 구성된다.
CPU 버스(6)는, 시스템 컨트롤러(1)와 CPU(2)를 접속하는 것이다. 펌웨어 허브 버스(7)는, 시스템 컨트롤러(1)와 펌웨어 허브 버스(7)를 접속하는 것이다. 데이터 크로스바(17)는, 시스템 보드(10) 사이의 데이터를 송수신하는 버스이다. 어드레스 크로스바(16)는, 시스템 보드(10) 사이의 어드레스를 송수신하는 버스이다.
시스템 컨트롤러(1)는, CPU(2)-메모리(13) 사이의 데이터의 송수신을 제어하기 위한 장치이다. 펌웨어 허브(11)에는, 펌웨어가 저장되어 있다. 메모리 컨트롤러(12)는, 메모리(13)의 동작을 제어하는 것이다.
도 7은, 정보 처리 시스템에 있어서의 태그를 도시한다. 도 7에 있어서, 시스템 컨트롤러(1)는 CPU 버스(6a, 6b, 6c, 6d)에 의해 CPU(2a, 2b, 2c, 2d)와 접속되어 있다. 각 CPU(2)(2a, 2b, 2c, 2d)는 각각 캐시 메모리를 구비하고 있다. 각 CPU(2)의 캐시 메모리는 각각, 캐시 태그(3)(3a, 3b, 3c, 3d)와 캐시 데이터(4)(4a, 4b, 4c, 4d)에 의해 구성된다.
또한, 시스템 컨트롤러(1) 내에는 각 캐시 태그(3)(3a, 3b, 3c, 3d)에 대응한 스누프 태그(5)(5a, 5b, 5c, 5d)를 구비한다.
시스템 컨트롤러(1)는, 예컨대 캐시 미스 발생시에 CPU(2a)로부터 판독 요구가 있으면, 그 판독 요구의 대상이 되는 데이터가 다른 스누프 태그(5b, 5c, 5d)로 유지되어 있는지를 확인한다. 그 판독 요구의 대상이 되는 데이터가 다른 스누프 태그(5b, 5c, 5d)로 유지되어 있는 경우, 시스템 컨트롤러(1)는, 그 태그가 유지된 스누프 태그(5)로부터 그 판독 요구에 대응하는 대체(replacement) 정보를 취득하고, CPU(2a)에 건넨다. 그러나 어느 하나의 스누프 태그(5)에도 그 판독 요구의 대상이 되는 데이터가 유지되어 있지 않으면 시스템 컨트롤러(1)는 주기억 장치보다 그 판독 요구에 대응하는 대체 정보를 취득하고, CPU(2a)에 건넨다.
도 8은, 종래에 있어서의 태그의 구성예이다. 동 도면에 있어서의 CPU(2a)에 착안하여 설명한다. CPU(2a) 내의 캐시 태그(3a)는, 예컨대 4개의 WAY(3a-0, 3a-1, 3a-2, 3a-3)로 이루어진다.
한편, 캐시 태그(3a)에 대응하는 시스템 컨트롤(1)의 스누프 태그(5a)도, 마찬가지로 4개의 WAY(5a-0, 5a-1, 5a-2, 5a-3)로 이루어진다.
이와 같이, 종래의 구성으로는, CPU(2)의 캐시 태그(3)와, 시스템 컨트롤러(1)의 스누프 태그(5)의 WAY수는 동일하다. 이러한 경우에는, 다음과 같은 현상이 발생할 수 있다.
우선, CPU(2)로부터 시스템 컨트롤러(1)에 캐시 미스에 의한 판독 요구가 발행(6a-Aa)되었을 때에, 캐시 태그(3)가 FULL(즉, 캐시 태그를 구성하는 모든 WAY가 기록 상태)인 경우, CPU(2)는 캐시 태그(3)를 구성하는 어느 하나의 WAY로부터 어드레스를 내보내어, 판독 요구의 대상이 되는 데이터의 어드레스로 치환한다(대체 정보).
이러한 시스템에 있어서는, 어떤 WAY의 어드레스를 내보낼지의 대체 정보를 CPU(2)로부터 시스템 컨트롤러(1)에 알리는 수단이 없거나, 또는 그와 같은 수단이 있어도 확실하게 그 대체 정보가 통지된다고 한정하지 않는다.
따라서, 그 대체 정보를 CPU(2)로부터 시스템 컨트롤러(1)에 알리는 수단이 없거나, 또는 그와 같은 수단이 있어도 확실하게 그 삭제 정보가 통지된다고는 한정하지 않는 프로토콜을 전제하는 방식을 채용하고 있는 시스템에서는, 시스템 컨트롤러(1)측에서 스누프 태그의 대체 대상을 독자적으로 결정하고 있다.
[특허 문헌 1] 일본 특허 공개 평5-204869호 공보
[특허 문헌 2] 일본 특허 공개 평7-311711호 공보
[특허 문헌 3] 일본 특허 공개 평10-214222호 공보
[특허 문헌 4] 일본 특허 공개 평5-265970호 공보
도 9a 및 도 9b는, 종래에 있어서의 캐시 미스 발생시의 태그의 갱신예를 도시한다. CPU(2a) 내 캐시 태그(3a)를 구성하는 4개의 WAY(3a-0, 3a-1, 3a-2, 3a-3)에는 각각, 어드레스(0, 1, 2, 3)가 저장되어 있는 것으로 한다[CPU(2a) 내 캐시 태그(3a)가 FULL인 상태].
우선, CPU(2a)에 있어서, 캐시 미스에 의한 판독 요구가 발생한다. 예컨대 어드레스(5)에 대한 판독 요구가 발생한다(단계 101. 이하, 단계를 「S」라고 칭함).
그러면, CPU(2a)는 예컨대 캐시 태그(3a)의 WAY[3a-0]를 대체 대상으로 결정하고, WAY[3a-0]에 저장되어 있는 어드레스 정보(어드레스 0)를 삭제한다(S102).
CPU(2a)는, S101에서 발생한 어드레스 정보(어드레스 5)에 대한 판독 요구를 시스템 컨트롤러(1)에 대하여 행한다(S103).
스누프 태그(5a)의 모든 WAY는 어드레스가 기록되어 있기 때문에(FULL 상태), 어느 하나의 WAY를 대체 대상으로서 삭제해야 한다.
그러나, CPU(2a)로부터 대체 요구가 없는 시스템에 있어서는, 시스템 컨트롤러(1)측에서, 스누프 태그의 어떤 WAY에 대한 어드레스를 치환 대상으로 하는지를 마음대로 결정해야 한다.
그래서 시스템 컨트롤러(1)는, 예컨대 대체 대상으로서 WAY[5a-2]를 결정하고, 그 WAY[5a-2]에 저장되어 있는 어드레스 정보(어드레스 2)를 삭제한다.
대체 대상이 된 WAY[5a-2]에 저장된 어드레스는, CPU(2a) 내의 캐시 태그(3a)에 있어서도 대체 대상이 된다. 따라서 시스템 컨트롤러(1)는, 대체 대상이 된 어드레스(어드레스 2)의 삭제를 CPU(2a)에 요구한다(Eviction 요구)(S 104).
Eviction 요구를 수취한 CPU(2a)는, 그 커맨드를 해석하고, 캐시 태그(3a)의 WAY[3a-2]의 어드레스 정보(어드레스 2)를 삭제한다(S105).
시스템 컨트롤러(1)는, 스누프 태그(5a)의 WAY[5a-2]를 갱신한다[WAY[5a-2]에 어드레스(5)가 저장됨]. 그리고 시스템 컨트롤러(1)는, 그 어드레스 정보에 대응하는 데이터를 CPU(2a)에 송신한다(S106).
CPU(2a)는, 시스템 컨트롤러(1)로부터의 데이터를 수신하여 캐시 데이터(4a)에 기록하는 동시에, 그 데이터에 대응하는 어드레스에 의해 캐시 태그(3a)의 WAY[3a-0]를 갱신한다(S107).
재차, CPU(2a)에 있어서, 캐시 미스에 의한 판독 요구가 발생한다. 예컨대 어드레스(6)에 대한 판독 요구가 발생한다(S108). 이 때, 캐시 태그(3)(WAY[3a- 2])에는 사용 가능한 공간이 있기 때문에, S102에서 진술한 삭제 처리는 행해지지 않고, CPU(2a)는 시스템 컨트롤러(1)에 어드레스(6)에 대한 판독 요구를 행한다.(S109)
그러면, 스누프 태그(5a)가 FULL이기 때문에, 시스템 컨트롤러(1)는, 예컨대 WAY[5a-1]를 대체 대상으로 결정하면, 그 WAY[5a-1]에 저장된 어드레스 정보(어드레스 1)를 삭제한다.
대체 대상이 된 WAY[5a-1]에 저장된 어드레스는, 캐시 태그(3a)에 있어서도 대체 대상이 된다. 따라서 시스템 컨트롤러(1)는, 대체 대상이 된 어드레스(어드레스 1)의 삭제를 CPU(2a)에 요구한다(Eviction 요구)(S110).
Eviction 요구를 수취한 CPU(2a)는, 그 커맨드를 해석하고, 캐시 태그(3a)의 WAY[3a-1]에 저장된 어드레스 정보(어드레스 1)를 삭제한다(S111).
시스템 컨트롤러(1)는, 스누프 태그(5a)의 WAY[5a-1]를 갱신한다[WAY[5a-1]에 어드레스(6)가 저장된다]. 그리고 시스템 컨트롤러(1)는, 그 어드레스에 대응하는 데이터를 CPU(2a)에 송신한다(S112).
CPU(2a)는, 시스템 컨트롤러(1)로부터의 데이터를 수신하여 캐시 데이터(4a)에 기록하는 동시에, 그 데이터에 대응하는 어드레스에 의해 캐시 태그(3a)의 WAY[3a-0]를 갱신한다(S113).
이와 같이 종래의 구성에서는, CPU(2)와 시스템 컨트롤러(1)의 대체 대상이 반드시 일치하지 않기 때문에, CPU(2)에서 여분의 대체가 발생해 버린다. 그 결과, 사용 가능한 WAY의 수도 복수 개 발생하게 된다. 그러면, 캐시 미스율도 증대 하게 된다.
상기한 과제에 감안하여, 본 발명에서는 CPU로부터 시스템 컨트롤러에 어떤 WAY에 저장된 정보를 내보내는지라는 정보가 통지되지 않는 정보 처리 시스템에 있어서, CPU 내의 캐시 태그의 지나친 대체를 억제함으로써, 캐시 미스율을 줄이고, 성능 저하를 억제하는 것을 목적으로 한다.
본 발명에 따른 정보 처리 시스템은, 복수 웨이로 이루어지는 캐시 태그와 캐시 데이터를 포함하는 캐시 메모리를 포함하고, 외부로부터 수취한 명령을 실행 및 데이터를 처리하는 하나 이상의 프로세서와, 상기 프로세서로부터의 판독 요구에 기초하여 이 프로세서에 응답하는 프로세서 제어 장치로서, 이 각 프로세서의 캐시 태그에 대응하는 태그 정보인 스누프 태그의 웨이수가 상기 프로세서의 캐시 태그의 웨이수보다 많은 이 스누프 태그를 포함하는 이 프로세서 제어 장치를 포함하는 것을 특징으로 한다.
이와 같이 구성함으로써, 캐시 미스율을 저감시킬 수 있다.
상기 정보 처리 시스템에 있어서, 캐시 미스시에 상기 프로세서로부터 판독 요구가 있었던 경우, 상기 프로세서 제어 장치는 상기 스누프 태그의 웨이에 사용 가능한 공간이 있으면, 이 사용 가능한 웨이를 이 판독 요구의 대상이 되는 어드레스 정보로 갱신하여, 이 어드레스 정보에 대응하는 데이터를 상기 프로세서에 송신하는 것을 특징으로 한다.
이와 같이 구성함으로써, 스누프 태그의 대체를 감소시킬 수 있기 때문에 캐 시 미스율을 저감시킬 수 있다.
상기 정보 처리 시스템에 있어서, 상기 사용 가능한 웨이 갱신시에는, 상기 프로세서 제어 장치로부터 상기 프로세서에 상기 캐시 태그의 웨이 중 소정의 어드레스 정보가 저장된 웨이로부터 이 어드레스 정보를 삭제하는 취지의 요구가 이루어지지 않는 것을 특징으로 한다.
이와 같이 구성함으로써, Eviction 요구가 CPU에 통지되지 않기 때문에, CPU측의 캐시 태그의 WAY의 불필요한 삭제를 억제할 수 있다.
상기 정보 처리 시스템에 있어서, 캐시 미스시에 상기 프로세서로부터 판독 요구가 있었던 경우, 상기 스누프 태그의 웨이에 사용 가능한 공간이 없으면, 상기 프로세서 제어 장치는 상기 스누프 태그의 웨이에 저장된 어드레스 정보 중 어느 하나를 삭제하고, 이 어드레스 정보를 삭제하는 취지를 상기 프로세서에 통지하는 것을 특징으로 한다.
이와 같이 구성함으로써, 스누프 태그의 WAY수가 캐시 태그의 WAY수보다 많기 때문에, 스누프 태그가 갱신됨에 따라서, 스누프 태그와 캐시 태그의 어드레스의 저장 내용이 크게 괴리되고, 양자에게는 동일한 어드레스가 존재할 가능성은, 종래예에 비해 낮아진다.
상기 정보 처리 시스템에는, 캐시 미스시에 상기 캐시 태그 중 어느 하나의 웨이에 저장된 어드레스 정보를 내보내는 취지의 정보를 상기 프로세서로부터 상기 프로세서 제어 장치에 통지하지 않는 방식이 이용되고 있는 것을 특징으로 한다.
이와 같이 구성함으로써, 이 방식에 있어서 여분의 사용 가능한 WAY가 발생 해 버린다고 하는 현상을 억제할 수 있다.
본 발명은, 이러한 방식을 전제로 하는 것이다.
본 발명에 따른, 복수 웨이로 이루어지는 캐시 태그와 캐시 데이터를 포함하는 캐시 메모리를 포함하고, 외부로부터 수취한 명령을 실행 및 데이터를 처리하는 하나 이상의 프로세서와, 상기 프로세서로부터의 판독 요구에 기초하여 이 프로세서에 응답하는 프로세서 제어 장치로서, 이 각 프로세서의 캐시 태그에 대응하는 태그 정보인 스누프 태그의 웨이수가 상기 프로세서의 캐시 태그의 웨이수보다 많은 이 스누프 태그를 갖는 이 프로세서 제어 장치를 포함하는 정보 처리 시스템의 캐시 태그 및 스누프 태그의 갱신 방법은, 캐시 미스시에 상기 프로세서로부터 판독 요구가 있었던 경우, 상기 스누프 태그의 웨이에 사용 가능한 공간이 있으면, 상기 프로세서 제어 장치는 이 사용 가능한 웨이를 이 판독 요구의 대상이 되는 어드레스 정보로 갱신하여, 이 어드레스 정보에 대응하는 데이터를 상기 프로세서에 송신하는 것을 특징으로 한다.
이와 같이 구성함으로써, 스누프 태그의 대체를 감소시킬 수 있기 때문에, 캐시 미스율을 저감시킬 수 있다.
상기 캐시 태그 및 스누프 태그의 갱신 방법에 있어서, 상기 사용 가능한 웨이 갱신시에는, 상기 프로세서 제어 장치로부터 상기 프로세서에 상기 캐시 태그의 웨이 중 소정의 어드레스 정보가 저장된 웨이로부터 이 어드레스 정보를 삭제하는 취지의 요구가 이루어지지 않는 것을 특징으로 한다.
이와 같이 구성함으로써, Eviction 요구가 CPU에 통지되지 않기 때문에, CPU 측의 캐시 태그의 WAY가 불필요한 삭제를 억제할 수 있다.
상기 캐시 태그 및 스누프 태그의 갱신 방법에 있어서, 캐시 미스시에 상기 프로세서로부터 정보의 판독 요구가 있었던 경우, 상기 스누프 태그의 웨이에 사용 가능한 공간이 없으면, 상기 프로세서 제어 장치는 상기 스누프 태그의 웨이에 저장된 어드레스 정보 중 어느 하나를 삭제하고, 이 어드레스를 삭제하는 취지를 상기 프로세서에 통지하는 것을 특징으로 한다.
이와 같이 구성함으로써, 스누프 태그의 WAY수가 캐시 태그의 WAY수보다 많기 때문에 스누프 태그가 갱신됨에 따라서, 스누프 태그와 캐시 태그의 어드레스의 저장 내용이 크게 괴리되고, 양자에게는 동일한 어드레스가 존재할 가능성은, 종래예에 비해 낮아진다.
상기 캐시 태그 및 스누프 태그의 갱신 방법에 있어서, 상기 정보 처리 시스템에는, 캐시 미스시에 상기 캐시 태그 중 어느 하나를 내보내는 취지의 정보를 상기 프로세서 제어 장치에 통지하지 않는 방식이 이용되고 있는 것을 특징으로 한다.
이와 같이 구성함으로써, 이 방식에 있어서 여분의 사용 가능한 WAY가 발생해 버린다고 하는 현상을 억제할 수 있다.
본 발명에 따른 정보 처리 기판은, 복수 웨이로 이루어지는 캐시 태그와 캐시 데이터를 포함하는 캐시 메모리를 포함하고, 외부로부터 수취한 명령을 실행 및 데이터를 처리하는 하나 이상의 프로세서와, 상기 프로세서로부터의 판독 요구에 기초하여 이 프로세서에 응답하는 프로세서 제어 장치로서, 이 각 프로세서의 캐시 태그에 대응하는 태그 정보인 스누프 태그의 웨이수가 상기 프로세서의 캐시 태그의 웨이수보다 많은 이 스누프 태그를 포함하는 이 프로세서 제어 장치를 포함하는 것을 특징으로 한다.
이와 같이 구성함으로써, 스누프 태그의 대체를 감소시킬 수 있기 때문에 캐시 미스율을 저감시킬 수 있다.
본 발명에서는, 시스템 컨트롤러 내 스누프 태그에 수용할 수 있는 WAY수를, CPU 캐시 내의 WAY수보다 많게 하는 정보 처리 시스템을 제공한다. 이에 따라, 지나친 CPU 내 태그의 대체를 막을 수 있다.
도 1은, 본 발명의 일 실시예에 따른 정보 처리 시스템의 구성 개념도를 도시한다. 본 실시예는, 캐시를 갖는 CPU와, 그 캐시의 태그의 복사(이하, 스누프 태그라고 칭함)를 갖는 시스템 컨트롤러를 탑재한 칩 세트를 갖는 정보 처리 시스템으로, 캐시 태그의 대체 정보의 발행이 없는 CPU를 갖는 정보 처리 시스템이 전제이다.
본 실시예에 따른 정보 처리 시스템(100)은, 하나 이상의 프로세서(104)와, 프로세서 제어 장치(101)를 포함한다.
프로세서(104)는, 복수 웨이(106)로 이루어지는 캐시 태그(105)와 캐시 데이터를 포함하는 캐시 메모리를 가지며, 외부로부터 수취한 명령을 실행 및 데이터를 처리하는 것이다.
프로세서 제어 장치(101)는, 프로세서(104)로부터의 판독 요구에 기초하여 프로세서(104)에 응답하는 장치이다. 프로세서 제어 장치(101)는, 각 프로세 서(104)의 캐시 태그(105)에 대응하는 태그 정보인 스누프 태그(102)를 갖는다. 스누프 태그(102)의 웨이(103)의 수(m개: 임의의 정수)가 상기 프로세서(104)의 캐시 태그(105)의 웨이(106)의 수(n개: 임의의 정수)보다 많다(m>n).
캐시 미스시에 프로세서(104)로부터 판독 요구가 있었던 경우, 프로세서 제어 장치(101)는 스누프 태그(102)의 웨이(103)에 사용 가능한 공간이 있으면, 사용 가능한 웨이를 판독 요구의 대상이 되는 데이터의 어드레스 정보로 갱신하고, 이 어드레스 정보에 대응하는 데이터를 상기 프로세서(104)에 송신할 수 있다.
이 사용 가능한 웨이 갱신시에는, 캐시 태그(105)의 웨이(106) 중 소정의 어드레스 정보가 저장된 웨이로부터 이 어드레스 정보를 삭제하는 취지의 요구가 프로세서 제어 장치(101)로부터 프로세서(104)에 대하여 이루어지지 않는다.
이에 따라, 스누프 태그(102)의 대체를 감소시킬 수 있기 때문에, 캐시 미스율을 저감시킬 수 있다. 또한, Eviction 요구가 CPU에 통지되지 않기 때문에, CPU측의 캐시 태그의 WAY가 불필요한 삭제를 억제할 수 있다.
또한, 캐시 미스시에 프로세서(104)로부터 판독 요구가 있었던 경우, 스누프 태그(102)의 웨이(103)에 사용 가능한 공간이 없으면, 프로세서 제어 장치(101)는 스누프 태그(102)의 웨이(103)에 저장된 어드레스 정보 중 어느 하나를 삭제하고, 이 어드레스 정보를 삭제하는 취지(Eviction 요구)를 프로세서(104)에 통지한다.
본 발명에서는, 스누프 태그는 캐시 태그의 내용과 동일한 내용이 저장되어 있지만, 스누프 태그의 WAY수가 캐시 태그의 WAY수보다 많기 때문에, 이미 캐시에서는 유지되어 있지 않은 어드레스도 유지하고 있다. 따라서 스누프 태그가 FULL 인 경우, 임의로 선택한 WAY가 캐시측에서 유지하지 않는 어드레스일 가능성이 높아진다. 따라서 시스템 컨트롤러로부터의 Eviction 요구가 발생한 경우, 캐시측에서는 그 Eviction 요구로 지정된 어드레스를 유지하고 있을 가능성이 낮아지기 때문에, 캐시 태그의 WAY의 어드레스 삭제 처리가 발생할 가능성이 낮아진다. 그 결과, 캐시 태그의 사용 가능한 WAY가 존재할 가능성이 낮아지고, 캐시 미스율을 저감시킬 수 있다.
그러면, 이하에 본 발명의 실시예에 대해서 상술한다.
도 2는, 본 실시예에 있어서의 정보 처리 시스템의 태그의 구성도를 도시한다. 도 8과 비교하여, 도 2에서는 시스템 컨트롤러(1) 내 스누프 태그(5a, 5b)의 WAY수가 대응하는 CPU(2a, 2b) 내의 캐시 태그(3a, 3b)의 WAY수보다 하나 많다. 즉, 본 실시예에서는 CPU(2a, 2b) 내 캐시 태그(3a, 3b)의 WAY수가 4인 데 대하여, 시스템 컨트롤러(1) 내 스누프 태그(5a, 5b)의 WAY수는 5로 하고 있다.
도 2에 있어서, 6a-Aa, 6a-Ab는 CPU(2a, 2b)로부터의 캐시 READ 요구를 도시한다. 6a-Ba, 6a-Bb는, 시스템 컨트롤러로부터의 Eviction 요구를 도시한다. 6a-Ca, 6a-Cb는 CPU(2a, 2b)에 송신되는 캐시 데이터를 도시한다.
도 3은, 캐시 READ 요구, Eviction 요구, 및 캐시 데이터의 패킷 형식을 도시한다. 도 3(a)는, CPU로부터의 캐시 READ 요구 6a-Aa, 6a-Ab의 패킷 형식을 도시한다. 캐시 READ 요구는 「ID」 필드, 「OPC」필드, 「어드레스」 필드로 구성된다. 「ID」 필드는, 어느 하나의 CPU로부터의 READ 요구인지를 식별하는 정보가 저장되어 있다. 「OPC」 필드에는 READ 명령이 저장되어 있다. 「어드레스」 필 드에는, 판독 요구 대상의 데이터가 저장되는 주메모리의 어드레스가 저장되어 있다.
도 3(b)는, 시스템 컨트롤러로부터의 Eviction 요구 6a-Ba, 6a-Bb의 패킷 형식을 도시한다. Eviction 요구는 「OPC」 필드, 「어드레스」 필드로 구성된다. 「OPC」 필드에는 Eviction 명령이 저장되어 있다. 「어드레스」 필드에는 대체 대상이 된 스누프 태그의 WAY에 저장된 어드레스와 동일한 어드레스가 저장되어 있다.
도 3(c)는, 시스템 컨트롤러로부터 CPU에 송신되는 캐시 데이터 6a-Ca, 6a-Cb의 패킷 형식을 도시한다. 캐시 데이터는 「ID」 필드, 「데이터」 필드로 구성된다. 「데이터」 필드에는 데이터가 저장되어 있다.
도 4a 및 도 4b는, 본 실시예에 있어서의 캐시 미스 발생시의 태그의 갱신예를 도시한다. 이하에서는, 설명의 편의상, 캐시 태그(3a) 및 그 캐시 태그(3a)에 대응하는 스누프 태그(5a)에 착안하여 설명한다.
우선, CPU(2a) 내 캐시 태그(3a)는 4 WAY로 구성되고, 각 WAY(3a-0, 3a-1, 3a-2, 3a-3)에는 각각, 어드레스(0, 1, 2, 3)가 저장되어 있다[CPU(2a) 내 캐시 태그(3a)가 FULL인 상태].
한편, 시스템 컨트롤러 내 스누프 태그(5a)는 5 WAY로 구성되고, 그 중 4개의 WAY(5a-0, 5a-1, 5a-2, 5a-3)에는 각각, 어드레스(0, 1, 2, 3)가 저장되어 있다. 스누프 태그(5a)의 WAY[5a-4]는 비어 있다.
우선, CPU(2a)에 있어서, 캐시 미스에 의한 판독 요구가 발생한다. 예컨대 어드레스(5)에 대응하는 데이터에 대한 판독 요구가 발생한다(S1).
그러면, CPU(2a)는, 예컨대 캐시 태그(3a)의 WAY[3a-0]를 대체 대상으로 결정하고, WAY[3a-0]에 저장되어 있는 어드레스 정보(어드레스 0)를 삭제한다(S2).
CPU(2a)는, S 1에서 발생한 어드레스 정보(어드레스 5)에 대한 판독 요구를 시스템 컨트롤러(1)에 대하여 행한다(S3).
여기서, 본 실시예에 의한 시스템이, CPU(2a)로부터 대체 요구가 없는 시스템인 것으로 한다. 이 경우, 스누프 태그(5a)가 FULL인 경우에는, 시스템 컨트롤러는 스누프 태그에 있어서의 임의의 WAY의 어드레스 정보를 삭제해야 한다. 그러나 S 3의 상태에서는 스누프 태그(5a)의 WAY[5a-4]는 비어 있기 때문에, 스누프 태그(5a)의 WAY의 정보를 삭제하는 처리가 발생하지 않는다. 따라서 그 삭제 처리에 부수되는 CPU(2a)에 대한 Eviction 요구도 발생하지 않는다.
그러면, 시스템 컨트롤러(1)는, 스누프 태그(5a)의 WAY[5a-4]를 갱신하고, 어드레스(5)가 WAY[5a-4]에 저장된다. 또한 시스템 컨트롤러(1)는, 그 어드레스에 대응하는 판독 요구의 대상 데이터를 CPU(2a)에 송신한다(S4).
CPU(2a)는, 시스템 컨트롤러(1)로부터의 데이터를 수신하여 캐시 데이터(4a)에 기록하는 동시에, 그 데이터에 대응하는 어드레스(어드레스 5)에 의해 캐시 태그(3a)의 WAY[3a-0]를 갱신한다(S5).
재차, CPU(2a)에 있어서, 캐시 미스에 의한 판독 요구가 발생한다. 예컨대 어드레스(6)에 대한 판독 요구가 발생한다(S6). 이 때, 캐시 태그(3a)가 FULL이기 때문에 CPU(2a)는 예컨대 캐시 태그(3a)의 WAY[3a-1]를 대체 대상으로 결정하고, WAY[3a-1]에 저장되어 있는 어드레스 정보(어드레스 1)를 삭제한다(S7).
그 다음에 CPU(2a)는 시스템 컨트롤러(1)에 어드레스(6)에 대응하는 데이터의 판독 요구를 행한다(S8).
S8 의 상태에서는 스누프 태그(5a)가 FULL이기 때문에, 시스템 컨트롤러(1)는, 예컨대 WAY[5a-1]를 대체 대상으로 결정하고, 그 WAY[5a-1]에 저장되어 있는 어드레스 정보(어드레스 1)를 삭제한다.
대체 대상이 된 WAY[5a-1]에 저장된 어드레스 정보는, 캐시 태그(3a)에 있어서도 대체 대상이 된다. 따라서 시스템 컨트롤러(1)는, 대체 대상이 된 어드레스(어드레스 1)의 삭제를 CPU(2a)에 요구한다(Eviction 요구)(S9).
CPU(2a)는, Eviction 요구를 수취한다. 그러나 CPU(2a)는, Eviction 요구의 대상 어드레스를 유지하지 않기 때문에, Eviction 처리는 발생하지 않는다. 그러면, 시스템 컨트롤러(1)는 스누프 태그(5a)의 WAY[5a-1]를 갱신하고, 어드레스(6)가 스누프 태그(5a)의 WAY[5a-1]에 저장된다. 또한 시스템 컨트롤러(1)는, 그 어드레스에 대응하는 판독 요구의 대상 데이터를 CPU(2a)에 송신한다(S10).
CPU(2a)는, 시스템 컨트롤러(1)로부터의 데이터를 수신하여 캐시 데이터(4a)에 기록하는 동시에, 그 데이터에 대응하는 어드레스에 의해 캐시 태그(3a)의 WAY[3a-0]를 갱신하고, 어드레스(6)가 캐시 태그(3a)의 WAY[3a-2]가 저장된다(S 11).
이와 같이, 캐시 태그(3a)가 FULL일 때에 캐시 미스가 발생한 경우, 캐시 태그(3a)의 대체는 캐시 미스에 의한 판독 요구 발생 직후에만 발생하게 된다. 즉, 캐시 태그(3a)에는, 태그의 갱신시에 있어서, 생기는 사용 가능한 WAY는 하나뿐이 되고, 2개 이상의 사용 가능한 WAY가 생기지 않으며, 여분의 대체는 발생하지 않는다. 도 4a 및 도 4b에서 설명한 것을, 도 5를 이용하여 설명한다.
도 5는, 본 실시예에 있어서의 캐시 미스 발생시의 태그의 갱신의 흐름을 도시한다. 우선, CPU(2)에 있어서, 캐시 미스에 의한 판독 요구가 발생한다(S21). 그러면 CPU(2)는 캐시 태그(3)가 FULL인지의 여부를 판단한다(S22).
캐시 태그(3)가 FULL이 아닌 경우, 즉 캐시 태그(3)에 사용 가능한 WAY가 있는 경우(S22에서 「NO」에 진행함), S24에 진행한다.
캐시 태그(3)가 FULL인 경우, 즉 캐시 태그(3)에 사용 가능한 WAY가 없는 경우(S22에서 「YES」에 진행함), 캐시 태그(3)로부터 임의의 WAY를 삭제한다(S23). 이 때, WAY의 삭제에는, 예컨대 LRU(Least Recently Used) 방식이나 그 외의 공지의 방법으로 삭제할 수 있다.
다음에, CPU(2)는 시스템 컨트롤러(1)에 대하여 READ 요구를 행한다(S24). 시스템 컨트롤러(1)는 READ 요구를 행한 CPU(2)에 대응하는 스누프 태그(5)가 FULL인지의 여부를 판단한다(S25).
스누프 태그(5)가 FULL이 아닌 경우, 즉 스누프 태그(5)에 사용 가능한 WAY가 있는 경우(S25에서 「NO」에 진행함), 시스템 컨트롤러(1)는 그 사용 가능한 WAY를 갱신하고, READ 요구된 어드레스가 그 사용 가능한 WAY에 저장된다(S29).
스누프 태그(5)가 FULL인 경우, 즉 스누프 태그(5)에 사용 가능한 WAY가 없는 경우(S25에서 「YES」에 진행함), 시스템 컨트롤(1)은 스누프 태그(5) 내의 WAY 를 랜덤으로 선택하고, 선택한 WAY에 저장되어 있는 어드레스를 삭제한다. 또한 시스템 컨트롤러(1)는, READ 요구를 행한 CPU(2)에 Eviction 요구를 발행한다(S26).
그러면, CPU(2)는 Eviction 요구된 어드레스를 캐시 태그(3) 내에 유지하고 있는지의 여부를 판단한다(S27).
Eviction 요구된 어드레스가 캐시 태그(3) 내에 유지되어 있지 않은 경우(S27에서 「NO」에 진행함), S30에 진행한다.
Eviction 요구된 어드레스가 캐시 태그(3) 내에 유지되어 있는 경우(S27에서 「YES」에 진행함), CPU(2)는 Eviction 요구된 어드레스가 저장되어 있는 캐시 태그(3)의 WAY의 어드레스를 삭제한다(S28). 그 다음에, 시스템 컨트롤러(1)는 S26에서 삭제한 스누프 태그(5)의 WAY를 갱신한다(S29).
그 후, 시스템 컨트롤러(1)는 판독 요구된 데이터를, READ 요구를 행한 CPU(2)에 송신하고(S30), 송신한 데이터에 대응하는 어드레스로 캐시 태그(3)의 WAY를 더 갱신한다(S31).
또한, 본 실시예에서는, 시스템 컨트롤러(1) 내 스누프 태그(5)의 WAY수를 CPU(2) 내 캐시 태그(3)의 WAY수보다 1만큼 많게 하였지만, WAY수의 관계는 이에 한정되지 않는다. 즉, 스누프 태그(5)의 WAY수가 캐시 태그(3)의 WAY수보다 많으면 좋다.
또한, 본 발명에서는 스누프 태그는 캐시 태그의 내용과 동일한 내용이 저장되어 있지만, 스누프 태그의 WAY수가, 캐시 태그의 WAY수보다 많기 때문에, 이미 캐시에서는 유지되어 있지 않은 어드레스도 유지하고 있다. 따라서 스누프 태그가 FULL인 경우, 임의로 선택한 WAY가 캐시측에서 유지되어 있지 않는 어드레스일 가능성이 높아진다. 따라서 시스템 컨트롤러로부터의 Eviction 요구가 발생한 경우, 캐시측에서는 그 Eviction 요구로 지정된 어드레스를 유지하고 있을 가능성이 낮아지기 때문에 캐시 태그의 WAY의 어드레스 삭제 처리가 발생할 가능성이 낮아진다. 그 결과, 캐시 태그의 사용 가능한 WAY가 존재할 가능성이 낮아지고, 캐시 미스율을 저감시킬 수 있다.
또한, 본 발명은, 이상에 진술한 실시예에 한정되는 것이 아니라, 본 발명의 요지를 일탈하지 않는 범위 내에서 여러 가지의 구성 또는 형태를 채용할 수 있다.
본 발명에 의해, 시스템 컨트롤러(1) 내의 스누프 태그(5)의 대체를 감소시킬 수 있다. 따라서 CPU(2) 내의 캐시 태그(3)가 FULL인 경우에 발생하는 지나친 대체의 감소가 가능하게 된다. 그 결과, 캐시 미스율의 증대를 막을 수 있다.
(부기 1) 복수 웨이로 이루어지는 캐시 태그와 캐시 데이터 영역을 포함하는 캐시 메모리를 포함하고, 외부로부터 수취한 명령의 실행 및 데이터의 처리를 행하는 하나 이상의 프로세서와,
상기 프로세서로부터의 판독 요구에 기초하여 이 프로세서에 응답하는 프로세서 제어 장치로서, 이 프로세서의 캐시 태그에 대응하는 태그 정보인 스누프 태그를 포함하며, 상기 스누프 태그의 웨이수가 상기 프로세서의 캐시 태그의 웨이수보다 많은 프로세서 제어 장치를 포함하는 것을 특징으로 하는 정보 처리 시스템.
(부기 2) 상기 프로세서에 있어서 캐시 미스가 발생하였을 때에, 상기 프로 세서로부터 상기 프로세서 제어 장치에 대하여 데이터의 판독 요구가 있었던 경우, 상기 프로세서 제어 장치는 상기 스누프 태그의 웨이에 사용 가능한 공간이 있으면, 이 사용 가능한 웨이를 이 판독 요구의 대상이 되는 어드레스 정보로 갱신하여 이 어드레스 정보에 대응하는 데이터를 상기 프로세서에 송신하는 것을 특징으로 하는 부기 1에 기재한 정보 처리 시스템.
(부기 3) 상기 사용 가능한 웨이 갱신시에는, 상기 프로세서 제어 장치로부터 상기 프로세서에 상기 캐시 태그의 웨이 중 소정의 어드레스 정보가 저장된 웨이로부터 이 어드레스 정보를 삭제하는 취지의 요구가 이루어지지 않는 것을 특징으로 하는 부기 2에 기재한 정보 처리 시스템.
(부기 4) 캐시 미스시에 상기 프로세서로부터 판독 요구가 있었던 경우, 상기 스누프 태그의 웨이에 사용 가능한 공간이 없으면, 상기 프로세서 제어 장치는 상기 스누프 태그의 웨이에 저장된 어드레스 정보 중 어느 하나를 삭제하고, 이 어드레스 정보를 삭제하는 취지를 상기 프로세서에 통지하는 것을 특징으로 하는 부기 1에 기재한 정보 처리 시스템.
(부기 5) 상기 정보 처리 시스템에는, 캐시 미스시에 상기 캐시 태그 중 어느 하나의 웨이에 저장된 어드레스 정보를 내보내는 취지의 정보를 상기 프로세서로부터 상기 프로세서 제어 장치에 통지하지 않는 방식이 이용되고 있는 것을 특징으로 하는 부기 1에 기재한 정보 처리 시스템.
(부기 6) 캐시 태그와 캐시 데이터 영역으로 이루어지는 복수 웨이의 캐시 메모리를 포함하고, 명령을 실행 및 데이터를 처리하는 하나 이상의 프로세서와, 상기 프로세서로부터의 요구에 기초하여 이 프로세서에 정보를 송신하는 프로세서 제어 장치로서, 이 각 프로세서의 캐시 태그에 대응하는 태그 정보인 스누프 태그의 웨이수가 상기 프로세서의 캐시 태그의 웨이수보다 많은 이 스누프 태그를 포함하는 상기 프로세서 제어 장치를 포함하는 정보 처리 시스템의 캐시 태그 및 스누프 태그의 갱신 방법으로서,
캐시 미스시에 상기 프로세서로부터 판독 요구가 있었던 경우, 상기 스누프 태그의 웨이에 사용 가능한 공간이 있으면, 상기 프로세서 제어 장치는 상기 사용 가능한 웨이를 이 판독 요구의 대상이 되는 어드레스 정보로 갱신하여 이 어드레스 정보에 대응하는 데이터를 상기 프로세서에 송신하는 것을 특징으로 하는 캐시 태그 및 스누프 태그의 갱신 방법.
(부기 7) 상기 사용 가능한 웨이 갱신시에는, 상기 프로세서 제어 장치로부터 상기 프로세서에 상기 캐시 태그의 웨이 중 소정의 어드레스 정보가 저장된 웨이로부터 이 어드레스 정보를 삭제하는 취지의 요구가 이루어지지 않는 것을 특징으로 하는 부기 6에 기재한 캐시 태그 및 스누프 태그의 갱신 방법.
(부기 8) 캐시 미스시에 상기 프로세서로부터 정보의 판독 요구가 있었던 경우, 상기 스누프 태그의 웨이에 사용 가능한 공간이 없으면, 상기 프로세서 제어 장치는 상기 스누프 태그의 웨이에 저장된 어드레스 정보 중 어느 하나를 삭제하고, 이 어드레스를 삭제하는 취지를 상기 프로세서에 통지하는 것을 특징으로 하는 부기 6에 기재한 캐시 태그 및 스누프 태그의 갱신 방법.
(부기 9) 상기 정보 처리 시스템에는, 캐시 미스시에 상기 캐시 태그 중 어 느 하나를 내보내는 취지의 정보를 상기 프로세서 제어 장치에 통지하지 않는 방식이 이용되고 있는 것을 특징으로 하는 부기 6에 기재한 캐시 태그 및 스누프 태그의 갱신 방법.
(부기 10) 복수 웨이로 이루어지는 캐시 태그와 캐시 데이터 영역을 포함하는 캐시 메모리를 포함하고, 외부로부터 수취한 명령을 실행 및 데이터를 처리하는 하나 이상의 프로세서와,
상기 프로세서로부터의 판독 요구에 기초하여 이 프로세서에 응답하는 프로세서 제어 장치로서, 이 각 프로세서의 캐시 태그에 대응하는 태그 정보인 스누프 태그의 웨이수가 상기 프로세서의 캐시 태그의 웨이수보다 많은 이 스누프 태그를 포함하는 이 프로세서 제어 장치를 포함하는 것을 특징으로 하는 정보 처리 기판.
(부기 11) 캐시 미스시에 상기 프로세서로부터 판독 요구가 있었던 경우, 상기 프로세서 제어 장치는 상기 스누프 태그의 웨이에 사용 가능한 공간이 있으면, 이 사용 가능한 웨이를 이 판독 요구의 대상이 되는 어드레스 정보로 갱신하여, 이 어드레스 정보에 대응하는 데이터를 상기 프로세서에 송신하는 것을 특징으로 하는 부기 10에 기재한 정보 처리 기판.
(부기 12) 상기 사용 가능한 웨이 갱신시에는, 상기 프로세서 제어 장치로부터 상기 프로세서에 상기 캐시 태그의 웨이 중 소정의 어드레스 정보가 저장된 웨이로부터 이 어드레스 정보를 삭제하는 취지의 요구가 이루어지지 않는 것을 특징으로 하는 부기 11에 기재한 정보 처리 기판.
(부기 13) 캐시 미스시에 상기 프로세서로부터 판독 요구가 있었던 경우, 상 기 스누프 태그의 웨이에 사용 가능한 공간이 없으면, 상기 프로세서 제어 장치는 상기 스누프 태그의 웨이에 저장된 어드레스 정보 중 어느 하나를 삭제하고, 이 어드레스 정보를 삭제하는 취지를 상기 프로세서에 통지하는 것을 특징으로 하는 부기 10에 기재한 정보 처리 기판.
(부기 14) 상기 정보 처리 시스템에는, 캐시 미스시에 상기 캐시 태그 중 어느 하나의 웨이에 저장된 어드레스 정보를 내보내는 취지의 정보를 상기 프로세서로부터 상기 프로세서 제어 장치에 통지하지 않는 방식이 이용되고 있는 것을 특징으로 하는 부기 10에 기재한 정보 처리 기판.
본 발명에 의해, 시스템 컨트롤러(1) 내의 스누프 태그(5)의 대체를 감소시킬 수 있다. 따라서 CPU(2) 내의 캐시 태그(3)가 FULL인 경우에 발생하는 지나친 대체의 감소가 가능해진다. 그 결과, 캐시 미스율을 저감시킬 수 있다.

Claims (10)

  1. 복수 웨이(way)로 이루어지는 캐시 태그와 캐시 데이터 영역을 포함하는 캐시 메모리를 포함하고, 외부로부터 수취한 명령의 실행 및 데이터의 처리를 행하는 하나 이상의 프로세서와,
    상기 프로세서로부터의 판독 요구에 기초하여 상기 프로세서에 응답하는 프로세서 제어 장치로서, 상기 프로세서의 캐시 태그에 대응하는 태그 정보인 스누프 태그를 포함하며, 상기 스누프 태그의 웨이수가 상기 프로세서의 캐시 태그의 웨이수보다 많은 프로세서 제어 장치를 포함하는 것을 특징으로 하는 정보 처리 시스템.
  2. 제1항에 있어서, 상기 프로세서에 있어서 캐시 미스가 발생하였을 때에, 상기 프로세서로부터 상기 프로세서 제어 장치에 대하여 데이터의 판독 요구가 있었던 경우, 상기 프로세서 제어 장치는 상기 스누프 태그에 사용 가능한 웨이가 있으면, 상기 사용 가능한 웨이를 상기 판독 요구의 대상이 되는 어드레스 정보로 갱신하여 상기 어드레스 정보에 대응하는 데이터를 상기 프로세서에 송신하는 것을 특징으로 하는 정보 처리 시스템.
  3. 제2항에 있어서, 상기 사용 가능한 웨이 갱신시에는, 상기 프로세서 제어 장치로부터 상기 프로세서에 상기 캐시 태그의 웨이 중 소정의 어드레스 정보가 저장된 웨이의 어드레스 정보를 삭제하는 취지의 요구가 이루어지지 않는 것을 특징으로 하는 정보 처리 시스템.
  4. 제1항에 있어서, 캐시 미스시에 상기 프로세서로부터 판독 요구가 있었던 경우, 상기 스누프 태그의 웨이에 사용 가능한 공간이 없으면, 상기 프로세서 제어 장치는 상기 스누프 태그의 웨이에 저장된 어드레스 정보 중 어느 하나를 삭제하고, 상기 삭제된 어드레스 정보를 상기 캐시 태그에서 삭제하는 취지를 상기 프로세서에 통지하는 것을 특징으로 하는 정보 처리 시스템.
  5. 제1항에 있어서, 상기 정보 처리 시스템에는, 캐시 미스시에 상기 캐시 태그 중 어느 하나의 웨이에 저장된 어드레스 정보를 내보내는 취지의 정보를 상기 프로세서로부터 상기 프로세서 제어 장치에 통지하지 않는 방식이 이용되고 있는 것을 특징으로 하는 정보 처리 시스템.
  6. 캐시 태그와 캐시 데이터 영역으로 이루어지는 복수 웨이의 캐시 메모리를 포함하고, 명령을 실행 및 데이터를 처리하는 하나 이상의 프로세서와, 상기 프로세서로부터의 요구에 기초하여 상기 프로세서에 정보를 송신하는 프로세서 제어 장치로서, 상기 각 프로세서의 캐시 태그에 대응하는 태그 정보인 스누프 태그의 웨이수가 상기 프로세서의 캐시 태그의 웨이수보다 많은 상기 스누프 태그를 포함하는 상기 프로세서 제어 장치를 포함하는 정보 처리 시스템의 캐시 태그 및 스누프 태그의 갱신 방법으로서,
    캐시 미스시에 상기 프로세서로부터 판독 요구가 있었던 경우, 상기 스누프 태그에 사용 가능한 웨이가 있으면, 상기 프로세서 제어 장치는 상기 사용 가능한 웨이를 상기 판독 요구의 대상이 되는 어드레스 정보로 갱신하여 상기 어드레스 정보에 대응하는 데이터를 상기 프로세서에 송신하는 것을 특징으로 하는 캐시 태그 및 스누프 태그의 갱신 방법.
  7. 제6항에 있어서, 상기 사용 가능한 웨이 갱신시에는, 상기 프로세서 제어 장치로부터 상기 프로세서에 상기 캐시 태그의 웨이 중 소정의 어드레스 정보가 저장된 웨이의 어드레스 정보를 삭제하는 취지의 요구가 이루어지지 않는 것을 특징으로 하는 캐시 태그 및 스누프 태그의 갱신 방법.
  8. 제6항에 있어서, 캐시 미스시에 상기 프로세서로부터 정보의 판독 요구가 있었던 경우, 상기 스누프 태그의 웨이에 사용 가능한 공간이 없으면, 상기 프로세서 제어 장치는 상기 스누프 태그의 웨이에 저장된 어드레스 정보 중 어느 하나를 삭제하고, 상기 삭제된 어드레스 정보를 상기 캐시 태그에서 삭제하는 취지를 상기 프로세서에 통지하는 것을 특징으로 하는 캐시 태그 및 스누프 태그의 갱신 방법.
  9. 제6항에 있어서, 상기 정보 처리 시스템에는 캐시 미스시에 상기 캐시 태그 중 어느 하나를 내보내는 취지의 정보를 상기 프로세서 제어 장치에 통지하지 않는 방식이 이용되고 있는 것을 특징으로 하는 캐시 태그 및 스누프 태그의 갱신 방법.
  10. 복수 웨이로 이루어지는 캐시 태그와 캐시 데이터 영역을 포함하는 캐시 메모리를 포함하고, 외부로부터 수취한 명령을 실행 및 데이터를 처리하는 하나 이상의 프로세서와,
    상기 프로세서로부터의 판독 요구에 기초하여 상기 프로세서에 응답하는 프로세서 제어 장치로서, 상기 각 프로세서의 캐시 태그에 대응하는 태그 정보인 스누프 태그의 웨이수가 상기 프로세서의 캐시 태그의 웨이수보다 많은 상기 스누프 태그를 포함하는 상기 프로세서 제어 장치를 포함하는 것을 특징으로 하는 정보 처리 기판.
KR1020070045444A 2006-08-17 2007-05-10 정보 처리 시스템, 정보 처리 기판, 및 캐시 태그 및스누프 태그의 갱신 방법 KR100900012B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006222439A JP2008046902A (ja) 2006-08-17 2006-08-17 情報処理システム、情報処理基板、及びキャッシュタグ及びスヌープタグの更新方法
JPJP-P-2006-00222439 2006-08-17

Publications (2)

Publication Number Publication Date
KR20080016429A KR20080016429A (ko) 2008-02-21
KR100900012B1 true KR100900012B1 (ko) 2009-05-29

Family

ID=38691934

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070045444A KR100900012B1 (ko) 2006-08-17 2007-05-10 정보 처리 시스템, 정보 처리 기판, 및 캐시 태그 및스누프 태그의 갱신 방법

Country Status (5)

Country Link
US (1) US7805576B2 (ko)
EP (1) EP1895419B1 (ko)
JP (1) JP2008046902A (ko)
KR (1) KR100900012B1 (ko)
CN (1) CN101127011B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5011885B2 (ja) * 2006-08-18 2012-08-29 富士通株式会社 スヌープタグの制御装置
JP5790532B2 (ja) * 2012-02-13 2015-10-07 セイコーエプソン株式会社 電子機器、及びメモリー制御方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0713864A (ja) * 1993-06-25 1995-01-17 Mitsubishi Electric Corp データ処理装置
US5590310A (en) 1993-01-14 1996-12-31 Integrated Device Technology, Inc. Method and structure for data integrity in a multiple level cache system
JP2002055880A (ja) 2000-08-08 2002-02-20 Hitachi Ltd キャッシュ構成方法及びプロセッサシステム
JP2004038807A (ja) 2002-07-05 2004-02-05 Fujitsu Ltd キャッシュメモリ装置およびメモリ割付方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5373927A (en) * 1976-11-10 1978-06-30 Fujitsu Ltd Replacing system of intermediate buffer memory
JPH02188847A (ja) * 1989-01-18 1990-07-24 Agency Of Ind Science & Technol 階層キャッシュメモリにおけるデータ交換方式
JP2862424B2 (ja) 1992-01-30 1999-03-03 株式会社日立製作所 情報処理装置
JPH05216765A (ja) * 1992-02-06 1993-08-27 Hitachi Ltd 階層バッファ記憶装置
JPH05265970A (ja) 1992-03-19 1993-10-15 Toshiba Corp マルチプロセッサシステム
TW243509B (en) * 1994-01-31 1995-03-21 Ibm Data processor with memory cache and method of operation
US5860109A (en) * 1996-07-01 1999-01-12 Sun Microsystems, Inc. Methods and apparatus for a coherence transformer for connecting computer system coherence domains
JPH1173370A (ja) * 1997-08-29 1999-03-16 Fujitsu Ltd 情報処理装置
JP3525050B2 (ja) * 1998-04-23 2004-05-10 富士通株式会社 主記憶制御装置
JP2002007371A (ja) * 2000-06-23 2002-01-11 Hitachi Ltd L1キャッシュフォールスシェア緩和制御方式
US7143246B2 (en) * 2004-01-16 2006-11-28 International Business Machines Corporation Method for supporting improved burst transfers on a coherent bus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590310A (en) 1993-01-14 1996-12-31 Integrated Device Technology, Inc. Method and structure for data integrity in a multiple level cache system
JPH0713864A (ja) * 1993-06-25 1995-01-17 Mitsubishi Electric Corp データ処理装置
JP2002055880A (ja) 2000-08-08 2002-02-20 Hitachi Ltd キャッシュ構成方法及びプロセッサシステム
JP2004038807A (ja) 2002-07-05 2004-02-05 Fujitsu Ltd キャッシュメモリ装置およびメモリ割付方法

Also Published As

Publication number Publication date
EP1895419A3 (en) 2008-03-26
US20080046662A1 (en) 2008-02-21
CN101127011B (zh) 2010-06-02
KR20080016429A (ko) 2008-02-21
US7805576B2 (en) 2010-09-28
CN101127011A (zh) 2008-02-20
EP1895419A2 (en) 2008-03-05
EP1895419B1 (en) 2013-01-23
JP2008046902A (ja) 2008-02-28

Similar Documents

Publication Publication Date Title
US7698508B2 (en) System and method for reducing unnecessary cache operations
US7305522B2 (en) Victim cache using direct intervention
US7305523B2 (en) Cache memory direct intervention
US8606997B2 (en) Cache hierarchy with bounds on levels accessed
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
JP4474570B2 (ja) キャッシュコヒーレンシ制御方法
US10949292B1 (en) Memory interface having data signal path and tag signal path
EP2105838B1 (en) Cache control apparatus, information processing apparatus, and cache control method
JP4295814B2 (ja) マルチプロセッサシステム及びマルチプロセッサシステムの動作方法
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
KR100900012B1 (ko) 정보 처리 시스템, 정보 처리 기판, 및 캐시 태그 및스누프 태그의 갱신 방법
JP2007226641A (ja) 情報処理装置、キャッシュ制御方法及びプログラム
US20080104333A1 (en) Tracking of higher-level cache contents in a lower-level cache
JP4295815B2 (ja) マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法
JP2022015514A (ja) 半導体装置
CN100587676C (zh) 探测标记的控制装置
JPWO2007096978A1 (ja) スヌープ制御方法および情報処理装置
JP2007257192A (ja) データ処理装置
JP7238262B2 (ja) 計算機、半導体装置、及び制御方法
JPWO2012039008A1 (ja) 情報処理装置、メモリ制御方法及びメモリ制御装置
JPH1185615A (ja) 情報処理システム及び情報処理装置及びその制御方法

Legal Events

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

Payment date: 20130503

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140502

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150416

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160419

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 11