KR20080016419A - 멀티프로세서 시스템, 시스템 보드 및 캐시 대체 요구 처리방법 - Google Patents

멀티프로세서 시스템, 시스템 보드 및 캐시 대체 요구 처리방법 Download PDF

Info

Publication number
KR20080016419A
KR20080016419A KR1020070018303A KR20070018303A KR20080016419A KR 20080016419 A KR20080016419 A KR 20080016419A KR 1020070018303 A KR1020070018303 A KR 1020070018303A KR 20070018303 A KR20070018303 A KR 20070018303A KR 20080016419 A KR20080016419 A KR 20080016419A
Authority
KR
South Korea
Prior art keywords
request
cache replacement
loopback
replacement request
cpu
Prior art date
Application number
KR1020070018303A
Other languages
English (en)
Other versions
KR100865102B1 (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 KR20080016419A publication Critical patent/KR20080016419A/ko
Application granted granted Critical
Publication of KR100865102B1 publication Critical patent/KR100865102B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration 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/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
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

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

Abstract

본 발명은 멀티프로세서 시스템에 관한 것이며, 캐시 대체(cache replacement) 요구에 의해 글로벌 버스에 부하가 걸리는 것을 방지하는 것이 가능하게 되는 기술을 제공하는 것을 목적으로 한다.
CPU(120a)로부터 발행된 요구는 CPU 버스(130a), CPU 발행 요구 큐(112a)를 통해 로컬 아비터(113)로부터 출력된다. 캐시 대체 요구 루프백 회로(loopback circuit)(140)는 루프백 판정 회로(141)에 의해 출력된 요구가 캐시 대체 요구인지의 여부를 판정한다. 캐시 대체 요구 이외의 요구는 로컬 버스(300a)로 출력된다. 캐시 대체 요구는 셀렉터(142)로 출력되고, 글로벌 버스(301)에 유효한 요구가 없는 타이밍으로 요구 처리부(114)로 전송된다.

Description

멀티프로세서 시스템, 시스템 보드 및 캐시 대체 요구 처리 방법{MULTIPROCESSOR SYSTEM, SYSTEM BOARD, AND CACHE REPLACEMENT REQUEST HANDLING METHOD}
도 1은 본 실시예에 의한 멀티프로세서 시스템의 제1 구성예를 도시하는 도면.
도 2는 캐시 대체 요구 루프백 회로의 제1 예를 설명하는 도면.
도 3은 본 실시예에 의한 캐시 대체 요구 루프백 처리의 제1 흐름도.
도 4a 내지 도 4c는 캐시 대체 요구를 시스템 컨트롤러 내부에 루프백하는 것의 효과를 설명하는 도면.
도 5는 본 실시예에 의한 멀티프로세서 시스템의 제2 구성예를 도시하는 도면.
도 6은 캐시 대체 요구 루프백 회로의 제2 예를 설명하는 도면.
도 7은 본 실시예에 의한 캐시 대체 요구 루프백 처리의 제2 흐름도.
도 8a 및 도 8b는 캐시 대체 요구 루프백 회로에 루프백부 큐가 설치된 것의 효과를 설명하는 도면.
도 9는 본 실시예에 의한 캐시 대체 요구 루프백 처리의 제3 흐름도.
도 10a 및 도 10b는 루프백부 큐가 덮어쓰기 기능을 갖는 경우의 효과를 설 명하는 도면.
도 11은 멀티프로세서 시스템의 구성예를 도시하는 도면.
도 12는 캐시 대체 요구로의 대응 예를 설명하는 도면.
도 13은 Eviction을 설명하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
100 : 시스템 보드
110 : 시스템 컨트롤러
112 : CPU 발행 요구 큐
113 : 로컬 아비터
114 : 요구 처리부
120 : CPU
121 : 캐시 메모리
122 : 캐시 태그
130 : CPU 버스
140 : 캐시 대체 요구 루프백 회로
141 : 루프백 판정 회로
142 : 셀렉터
143 : 루프백부 큐
200 : 어드레스 크로스바 보드(address crossbar board)
210 : 글로벌 아비터
300 : 로컬 버스
301 : 글로벌 버스
본 발명은 멀티프로세서 시스템에 있어서 각 CPU로부터의 요구를 제어하는 기술에 관한 것이며, 특히 캐시 대체 요구를 효율적으로 처리하는 멀티프로세서 시스템, 시스템 보드 및 캐시 대체 요구 처리 방법에 관한 것이다.
최근, 정보 처리 장치가 각 분야에서 널리 이용된 것에 따른 멀티프로세서 구성의 칩 세트의 높은 처리 능력이 요구되고 있다.
도 11은 멀티프로세서 시스템의 구성예를 도시하는 도면이다. 도 11에 도시하는 멀티프로세서 시스템은 4 개의 시스템 보드(100a∼100d)와, 어드레스 크로스바 보드(200)로 구성되어 있다. 각 시스템 보드(100a∼100d)와 어드레스 크로스바 보드(200)는 로컬 버스(300a∼300d), 글로벌 버스(301), 로컬 통지 패스(302a∼302d), 글로벌 통지 패스(303) 등으로 접속된다.
시스템 보드(100a)는 시스템 컨트롤러(110)와, 4 개의 CPU(120a∼120d)를 구비한다. CPU(120a)와 CPU(120b)는 CPU 버스(130a)로, CPU(120c)와 CPU(120d)는 CPU 버스(130c)로 시스템 컨트롤러(110)에 접속된다. 시스템 보드(100b∼100d)도 시스템 보드(100a)와 동일한 구성이 된다.
각 CPU(120a∼120d)는 각각 캐시 메모리(121a∼121d)와, 캐시 태그(122a∼ 122d)를 구비한다. 이 예에서는 캐시 메모리(121)는 4 갈래 집합 연결 방식(4-Way set associative method)으로 제어되어 있는 것으로 한다.
시스템 컨트롤러(110)는 스누프 태그(111a∼111d), CPU 발행 요구 큐(112a, 112c), 로컬 아비터(113), 요구 처리부(114), 요구 실행부(115)를 구비한다.
스누프 태그(111a∼111d)는 각각 캐시 태그(122a∼122d)에 대응한다. CPU 발행 요구 큐(112)는 CPU(120)가 발행하는 요구를 CPU 버스(130)마다 유지한다. 여기서는, CPU(120a, 120b)가 발행하는 요구를 CPU 발행 요구 큐(112a)가 유지하고, CPU(120c, 120d)가 발행하는 요구를 CPU 발행 요구 큐(112c)가 유지한다. 로컬 아비터(113)는 CPU 발행 요구 큐(112)에 유지된 요구를 로컬 버스(300a)에 출력한다.
요구 처리부(114)는 글로벌 버스(301)로부터 전송되어 온 요구에 대한 처리를 행한다. 요구 처리부(114)는 자원 관리부(116), 요구 실행 기동부(117)를 구비한다. 자원 관리부(116)는 요구를 처리하기 위한 자원 등의 체크를 행한다. 요구 실행 기동부(117)는 요구 실행부(115)의 기동이나 스누프 태그(111)의 갱신을 행한다.
어드레스 크로스바 보드(200)는 글로벌 아비터(210), 실행 가능 여부 판정 회로(220)를 구비한다. 글로벌 아비터(210)는 로컬 버스(300a∼300d)로부터 입력된 요구를 글로벌 버스(301)를 통해 모든 시스템 보드(100a∼100d)로 출력한다. 실행 가능 여부 판정 회로(220)는 로컬 통지 패스(302a∼302d)로부터 입력된 통지에 기초하여 요구의 실행의 가능 여부 판정을 행하고, 그 결과와 요구의 실행에 필요한 정보를 글로벌 통지 패스(303)를 통해 각 시스템 보드(100a∼100d)로 통지한다.
여기서, CPU(120a)가 판독 요구를 행하는 경우를 예로 도 11에 도시하는 시스템의 동작을 설명한다. 여기서는 CPU(120a)가 1000 번지의 판독을 행하는 것으로 한다. 또한, 캐시 코히어런스에는 MESI 프로토콜이 이용되는 것으로 한다. MESI 프로토콜은 캐시 코히어런스 프로토콜의 일종이며, 캐시의 각 라인을, M(갱신 상태: Modified), E(배타 상태: Exclusive), S(공유 상태: Shared), I(무효 상태: Invalid)로 나눠 제어한다.
CPU(120a)는 자신의 캐시 메모리(121a)에 1000 번지의 데이터가 존재하는지를 확인하기 위해 우선 캐시 태그(122a)의 검색을 행한다. 검색 결과, 자신의 캐시 메모리(121a)에 유효한 데이터가 없다고 판단하면, CPU(120a)는 CPU 버스(130a)에 판독 요구의 요청을 발행한다.
CPU(120a)로부터 발행된 요구는 CPU 발행 요구 큐(112a), 로컬 아비터(113), 로컬 버스(300a)를 통해 글로벌 아비터(210)에 입력된다. 글로벌 아비터(210)에 입력된 요구는 글로벌 버스(301)를 통해 모든 시스템 보드(100a∼100d)에 동시에 통지된다.
시스템 보드(100a)에서는 글로벌 버스(301)로부터 요구 처리부(114)에 요구가 입력된다. 요구 처리부(114)는 각 스누프 태그(111)를 판독하고, 요구를 처리하기 위한 자원 등이 있는지의 체크를 자원 관리부(116)에 의해 행한다. 이들의 결과는 로컬 통지 패스(302a)를 통해 실행 가능 여부 판정 회로(220)로 전송된다.
실행 가능 여부 판정 회로(220)는 모든 로컬 통지 패스(302a∼302d)로부터의 통지에 기초하여 요구 실행의 가능 여부 판정을 행하고, 그 결과와 요구의 실행에 필요한 정보를, 글로벌 통지 패스(303)를 통해 요구 실행 기동부(117)에 통지한다. 요구 실행 기동부(117)는 요구 실행의 가능 여부 판정의 결과와 요구의 실행에 필요한 정보에 기초하여 스누프 태그(111)의 갱신이나 요구 실행부(115)의 기동을 행한다.
예컨대, 자원을 확보할 수 있고, 스누프 태그(111)의 검색 결과가 모두 무효 상태인 경우, 요구 실행 기동부(117)는 스누프 태그(111a)에 1000 번지를 등록한다. 또한, 등록되는 상태는 발행 요구에 의해 결정된다. 동시에 요구 실행부(115)는 메모리의 1000 번지의 판독을 행하고, 얻어진 데이터를 CPU(120a)로 전송한다. CPU(120a)는 캐시 태그(122a)를 갱신한다.
또한, 예컨대 자원을 확보할 수 있고, 스누프 태그(111)의 검색 결과, 1000 번지가 스누프 태그(111c)에 M(갱신 상태)으로 등록되어 있는 경우, 요구 실행 기동부(117)는 스누프 태그(111a)에 1000 번지를 등록한다. 또한, 등록되는 상태는 발행 요구에 의해 결정된다. 또한, 스누프 태그(111c)의 1000 번지의 상태를 S(공유 상태) 또는 I(무효 상태)로 변경한다. 이때 변경되는 상태는 발행 요구에 의해 결정된다. 이와 동시에, 요구 실행부(115)는 CPU(120c)에 1000 번지의 M 데이터를 송출하는 지시를 내고, 출력된 데이터를 CPU(120a)로 전송한다. CPU(120a)는 캐시 태그(122a)를 갱신하고, CPU(120c)는 캐시 태그(122c)를 갱신한다.
도 12는 캐시 대체 요구로의 대응 예를 설명하는 도면이다. 도 12에는 도 11에 있어서, CPU(120a), CPU(120b), 시스템 컨트롤러(110)를 중심으로 하는 시스템 보드(100a)와, 글로벌 아비터(210)를 중심으로 하는 어드레스 크로스바 보드(200) 에 착안된 예가 도시되어 있다. 여기서는 CPU(120a)가 캐시 대체 요구를 발행하는 것으로 한다.
도 12에 있어서, 굵은 선 화살표는 캐시 대체 요구가 전달되는 루트를 도시한다. CPU(120a)로부터 발행된 캐시 대체 요구는 다른 요구과 마찬가지로, CPU 버스(130a), CPU 발행 요구 큐(112a), 로컬 아비터(113), 로컬 버스(300a), 글로벌 아비터(210), 글로벌 버스(301)를 통해 각 시스템 보드(100a∼100d)의 시스템 컨트롤러(110)의 요구 처리부(114)로 전달된다.
도 13은 Eviction을 설명하는 도면이다. Eviction이란 시스템 컨트롤러(110)측으로부터 CPU(120)에 대하여 캐시의 배출 처리의 지시를 행하는 것이다. 이하, 도 13의 예를 이용하여 Eviction을 설명한다.
우선, 단계 0에 도시하는 바와 같이, 캐시 태그(122)와 스누프 태그(111)가 있는 동일 인덱스가 모두 공백인 것으로 한다. 이 때, CPU(120)가 A 번지를 판독하면, 단계 1에 도시하는 바와 같이, 캐시 태그(122), 스누프 태그(111)에는 각각 A 번지가 등록된다. 또한 CPU(120)가 B 번지, C 번지, D 번지와 동일 인덱스의 판독을 계속해 가면 단계 2에 도시하는 바와 같이, 최대 Way가 된다.
이러한 최대 Way인 상태에 있어서, CPU(120)가 추가로 동일 인덱스의 E번지를 판독하고 싶은 경우에는, 우선 캐시 태그(122) 중 어느 하나의 데이터를 지워야 한다. 여기서는 A 번지를 지우는 것으로 한다. CPU(120)가 캐시 대체 요구를 지원하지 않으면서, A 번지의 상태가 M(갱신 상태)이 아닌 경우에는 CPU(120) 내에서 A 번지의 사일런트 드롭(silent drop)이 발생한다. 단계 3에 도시하는 바와 같이, 캐 시 태그(122)의 A 번지가 삭제된다. 또한, 사일런트 드롭이란 별도로 통지하지 않고 데이터를 삭제하는 것을 말한다.
마찬가지로, CPU(120)로부터의 E 번지의 판독을 수신한 시스템 컨트롤러(110)에서도 E 번지를 등록하는 것으로 되기 때문에, 스누프 태그(111)로부터 어느 하나의 데이터를 지워야 한다. 여기서는 B 번지를 지우는 것으로 한다. 이때, "캐시 태그(122)에 있는 것은 스누프 태그(111)에 없어서는 안된다"라는 포함 규칙(inclusion rule)이 있기 때문에, 시스템 컨트롤러(110)는 자신이 지운 것을 CPU(120)에도 지우게 해야 하기 때문에, 단계 4에 도시하는 바와 같이, CPU(120)에 대하여 토출 요구를 발행해야 한다. 이 토출 요구를 Eviction이라고 부른다. 최종적으로, 캐시 태그(122)와 스누프 태그(111) 중 어는 것이나 공백이 생기기 때문에, 단계 5에 도시하는 바와 같이, 각각 E 번지를 등록할 수 있다.
또한, 멀티프로세서 시스템에 관한 기술이 기재된 선행 기술 문헌으로서는, 예컨대 특허 문헌 1 등이 있다. 특허 문헌 1에는 각 노드가 링형으로 결합된 다중 프로세서 컴퓨터 시스템에 관한 기술이 기재되어 있다. 다만, 특허 문헌 1에 기재된 기술로는 후술하는 과제를 해결할 수는 없다.
[특허 문헌 1] 일본 특허 공표 제2002-522827호 공보
많은 시스템 보드(100)로부터 구성되는 멀티프로세서 시스템에서는 글로벌 버스(301)에 매우 큰 부하가 걸려 버리고, 그 글로벌 버스(301)에 캐시 대체 요구를 유입하면, 그 외의 요구의 처리 능력이 떨어져 버린다고 하는 문제가 있다. 또 한, 캐시 대체 요구는 그 부모가 되는 판독 요구보다 먼저 처리하지 않으면 Eviction이 발생해 버릴 가능성이 있기 때문에, 본래의 캐시 대체 요구의 효과가 없어져 버린다고 하는 문제가 있다.
본 발명은 상기한 문제점의 해결을 도모하고, 캐시 대체 요구에 의해 글로벌 버스에 부하가 걸리는 것을 방지하며, 불필요한 Eviction의 발생을 방지하는 것이 가능하게 되는 기술을 제공하는 것을 목적으로 한다.
본 발명은 상기한 과제를 해결하기 위해서, 멀티프로세서 시스템에 있어서, 시스템 보드는 자기 시스템 보드의 CPU로부터 발행된 요구가 캐시 대체 요구인 경우에, 그 요구를 어드레스 크로스바 보드로 전송하지 않고, 자기 시스템 보드 내부에서 루프백하여 처리하는 것을 특징으로 한다.
구체적으로는, 본 발명은 CPU와 그 CPU로부터 발행된 요구에 대한 처리를 행하는 요구 처리부를 각각 갖는 복수의 시스템 보드와, 각 시스템 보드로부터의 요구를 중재하는 어드레스 크로스바 보드를 구비하는 멀티프로세서 시스템으로서, 시스템 보드는 자기 시스템 보드의 CPU로부터 발행된 요구가 캐시 대체 요구인지의 여부를 판정하고, 캐시 대체 요구가 아니면 그 요구를 어드레스 크로스바 보드로 전송하며, 캐시 대체 요구이면 그 요구를 자기 시스템 보드 내부로부터 요구 처리부로 전송하는 캐시 대체 요구 루프백 회로를 포함하는 것을 특징으로 한다.
이에 따라, 캐시 대체 요구가 글로벌 버스로 출력되지 않게 되기 때문에, 글로벌 버스의 작업 처리량 부하를 경감하는 것이 가능하게 된다. 또한, 캐시 대체 요구는 자기 시스템 보드 내에서 루프백되어 그 부모가 되는 판독 요구보다 먼저 처리되기 때문에 불필요한 Eviction의 발생을 방지하는 것이 가능하게 된다.
또한, 본 발명은 상기한 멀티프로세서 시스템으로서, 캐시 대체 요구 루프백 회로는 자기 시스템 보드의 CPU로부터 발행된 캐시 대체 요구의 요청을 유지하는 루프백부 큐를 구비하는 것을 특징으로 한다. 이에 따라, 글로벌 버스가 혼잡하여 캐시 대체 요구를 바로 처리할 수 없는 상태라도, 캐시 대체 요구 이외의 요구의 발행이 지연되는 것을 방지할 수 있다.
또한, 본 발명은 상기한 멀티프로세서 시스템으로서, 캐시 대체 요구 루프백 회로는 루프백부 큐의 전체 엔트리에 이미 캐시 대체 요구의 요청이 유지되어 있을 때에, 자기 시스템 보드의 CPU로부터 새롭게 캐시 대체 요구의 요청이 발행된 경우에, 루프백부 큐 중 어느 하나의 엔트리에 유지된 캐시 대체 요구의 요청을, 새롭게 발행된 캐시 대체 요구의 요청으로 덮어쓰기하는 것을 특징으로 한다. 이에 따라, 루프백부 큐의 엔트리수가 적어도 캐시 대체 요구 이외의 요구의 발행이 지연되는 것을 효과적으로 방지할 수 있다.
(실시예)
이하, 본 발명의 실시예에 대해서, 도면을 이용하여 설명한다.
도 1은 본 실시예에 의한 멀티프로세서 시스템의 제1 구성예를 도시하는 도면이다. 도 1의 예의 멀티프로세서 시스템은 도 11에 도시하는 구성에 있어서, 특히 CPU(120a), CPU(120b), 시스템 컨트롤러(110)를 중심으로 하는 시스템 보드(100a∼100d)와, 글로벌 아비터(210)를 중심으로 하는 어드레스 크로스바 보 드(200)에 착안한 것이며, 그 외의 구성에 대해서는 종래 기술과 마찬가지이기 때문에 생략하고 있다.
도 1에 도시하는 멀티프로세서 시스템은 4 개의 시스템 보드(100a∼100d)와, 어드레스 크로스바 보드(200)로 구성되어 있다. 각 시스템 보드(100a∼100d)와 어드레스 크로스바 보드(200)는 로컬 버스(300a∼300d), 글로벌 버스(301) 등으로 접속된다.
시스템 보드(100a)는 시스템 컨트롤러(110)와, 2 개의 CPU(120a, 120b)를 구비한다. 2 개의 CPU(120a, 120b)는 CPU 버스(130a)로 시스템 컨트롤러(110)에 접속된다. 시스템 보드(100b∼100d)도 시스템 보드(100a)와 동일한 구성이 된다.
각 CPU(120a, 120b)는 각각 캐시 메모리(121a, 121b)와, 캐시 태그(122a, 122b)를 구비한다. 본 실시예에서는, 캐시 메모리(121)는 4 갈래 집합 연결 방식으로 제어되고 있는 것으로 한다.
시스템 컨트롤러(110)는 CPU 발행 요구 큐(112a), 로컬 아비터(113), 요구 처리부(114), 캐시 대체 요구 루프백 회로(140)를 구비한다.
CPU 발행 요구 큐(112a)는 CPU(120a, 120b)가 발행하는 요구를 유지한다. 로컬 아비터(113)는 CPU 발행 요구 큐(112a)에 유지된 요구를, 로컬 버스(300a)로 출력한다. 요구 처리부(114)는 CPU(120)로부터 발행된 요구에 대한 처리를 행한다.
캐시 대체 요구 루프백 회로(140)는 캐시 대체 요구만을 시스템 컨트롤러(110) 내에서 루프백하여 요구 처리부(114)로 전송하기 위한 수단이고, 루프백 판정 회로(141), 셀렉터(142)를 구비한다. 루프백 판정 회로(141)는 로컬 아비 터(113)로부터 발행된 요구를 시스템 컨트롤러(110) 내부에 루프백하는 캐시 대체 요구와, 로컬 버스(300a)로 출력하는 캐시 대체 요구 이외의 요구로 분류한다. 셀렉터(142)는 글로벌 버스(301)에 유효한 요구가 있으면 그것을 요구 처리부(114)로 전송하고, 글로벌 버스(301)에 유효한 요구가 없으면 캐시 대체 요구를 요구 처리부(114)로 전송한다.
어드레스 크로스바 보드(200)는 글로벌 아비터(210)를 구비한다. 글로벌 아비터(210)는 로컬 버스(300a∼300d)로부터 입력된 요구를, 글로벌 버스(301)를 통해 모든 시스템 보드(100a∼100d)로 출력한다.
도 1에 있어서, 굵은 선 화살표는 캐시 대체 요구가 전달되는 루트를 도시한다. 여기서는 CPU(120a)가 캐시 대체 요구를 발행하는 것으로 한다. CPU(120a)로부터 발행된 캐시 대체 요구는 CPU 버스(130a), CPU 발행 요구 큐(112a), 로컬 아비터(113), 루프백 판정 회로(141), 셀렉터(142)를 통해 요구 처리부(114)로 전달된다. 판독 요구 등의 캐시 대체 요구 이외의 요구는 로컬 버스(300a)로부터 글로벌 아비터(210), 글로벌 버스(301)를 통해 각 시스템 보드(100a∼100d)의 셀렉터(142)에 입력된다.
캐시 대체 요구는 다른 요구와는 달리, 어드레스 크로스바 보드(200)를 경유하지 않는다. 캐시 대체 요구는 발행원인 CPU(120)에 대응하는 스누프 태그(111)의 해당 어드레스 부분을 I(무효 상태)로 하는 명령이기 때문에 자기 시스템 보드(100) 이외에는 전달할 필요가 없다.
도 2는 캐시 대체 요구 루프백 회로의 제1 예를 설명하는 도면이다. 로컬 아 비터(113)로부터 발행되는 요구의 신호는 유효 신호(V), 오퍼레이션 코드(OP), 기타 어드레스 등(ADR 등)으로 이루어진다. 루프백 판정 회로(141)는 캐시 대체 요구 판정 회로(150), AND 회로(151), AND 회로(152)로 구성된다.
캐시 대체 요구 판정 회로(150)는 로컬 아비터(113)로부터 발행된 요구의 오퍼레이션 코드(OP)로 캐시 대체 요구인지의 여부를 판정한다. 캐시 대체 요구이면 유효 신호를 전송하고, 캐시 대체 요구가 아니면 무효 신호를 전송한다. AND 회로(151)는 캐시 대체 요구 판정 회로(150)로부터의 신호를 반전하여 수신하고, AND 회로(152)는 캐시 대체 요구 판정 회로(150)로부터의 신호를 그대로 수신한다.
AND 회로(151)는 로컬 아비터(113)로부터 발행된 요구의 유효 신호(V)가 유효하면서, 캐시 대체 요구 판정 회로(150)로부터의 신호를 반전한 것이 유효하면 유효 신호를 발신한다. 그 이외의 경우에는 무효 신호를 발신한다. AND 회로(151)로부터 발신된 유효 신호(V)와, 로컬 아비터(113)로부터 발행된 요구의 오퍼레이션 코드(OP) 및 기타 어드레스 등(ADR 등)으로 이루어지는 요구 신호는 로컬 버스(300)로 출력된다.
AND 회로(152)는 로컬 아비터(113)로부터 발행된 요구의 유효 신호(V)가 유효하면서, 캐시 대체 요구 판정 회로(150)로부터의 신호가 유효하면, 유효 신호를 발신한다. 그 이외의 경우에는 무효 신호를 발신한다. AND 회로(152)로부터 발신된 유효 신호(V)와, 로컬 아비터(113)로부터 발행된 요구의 오퍼레이션 코드(OP) 및 기타 어드레스 등(ADR 등)으로 이루어지는 요구의 신호는 셀렉터(142)로 출력된다.
셀렉터(142)는 글로벌 아비터(210)로부터 출력된 요구의 유효 신호(V)가 유 효 "1"이면, 글로벌 아비터(210)로부터 출력된 요구(캐시 대체 요구 이외)를 요구 처리부(114)로 전송한다. 글로벌 아비터(210)로부터 출력된 요구의 유효 신호(V)가 무효 "0"이면, 즉 글로벌 버스(301)에 공백이 있으면, 루프백 판정 회로(141)로부터 출력된 요구(캐시 대체 요구)를 요구 처리부(114)로 전송한다.
도 3은 본 실시예에 의한 캐시 대체 요구 루프백 처리의 제1 흐름도이다. 로컬 아비터(113)가 로컬 버스(300)에 발행하는 요구를 선택하면(단계 S10), 캐시 대체 요구 루프백 회로(140)는 선택된 요구가 캐시 대체 요구인지의 여부를 판정한다(단계 S11). 선택된 요구가 캐시 대체 요구가 아니면 로컬 버스(300)로 선택된 요구를 송신한다(단계 S12).
단계 S11의 판정에 있어서, 선택된 요구가 캐시 대체 요구이면 글로벌 버스(301)에 유효한 요구가 있는지를 판정한다(단계 S13). 글로벌 버스(301)에 유효한 요구가 없으면 단계 S10에서 선택된 요구(캐시 대체 요구)를 셀렉터(142)로 선택한다(단계 S14).
단계 S13의 판정에 있어서, 글로벌 버스(301)에 유효한 요구가 있으면 그 글로벌 버스(301)로부터의 요구를 셀렉터(142)로 선택한다(단계 S15). 이 때, 단계 S10에서 선택된 요구(캐시 대체 요구)는 발행 불가가 된다(단계 S16). 그 발행은 다음번 이후로 미루어진다.
도 4a 내지 도 4c는 캐시 대체 요구를 시스템 컨트롤러 내부에 루프백하는 것의 효과를 설명하는 도면이다. 도 4a 내지 도 4c에 있어서, "Read"는 판독 요구를 나타내고, "Replace"는 캐시 대체 요구를 나타낸다.
도 4a에 도시하는 바와 같이, 각 시스템 보드(100a∼100d)로부터 각각이 글로벌 버스(301)로 사용율의 20%를 차지하는 것이 되는 판독 요구가 발행되는 것으로 하면, 글로벌 버스(301)의 사용율은 합계로 80%가 된다.
여기서, 추가로 각 시스템 보드(100a∼100d)로부터 판독 요구와 동시에, 각각이 글로벌 버스(301)의 사용율의 20%를 점유하는 캐시 대체 요구가 발행되는 것으로 한다. 시스템 보드(100)에 캐시 대체 요구 루프백 회로(140)가 없는 경우에는 캐시 대체 요구도 판독 요구와 마찬가지로, 로컬 버스(300), 어드레스 크로스바 보드(200), 글로벌 버스(301)로 전송된다. 모든 요구가 동시에 글로벌 버스(301)에 유입되는 것으로 하면 사용율의 합계는,
(〔Read의 사용율〕+〔Replace의 사용율〕)×[시스템 보드 수〕
= (20 + 20)×4 = 160[%]가 되고, 글로벌 버스(301)의 작업 처리량을 초과해 버린다. 이 때문에 도 4b에 도시하는 바와 같이, 판독 성능이 12.5%까지 떨어져 버린다.
이에 대하여, 시스템 보드(100)에 캐시 대체 요구 루프백 회로(140)가 있는 경우에는, 캐시 대체 요구가 글로벌 버스(301)에 유입되지 않기 때문에 글로벌 버스(301)의 성능은 열화되지 않는다. 도 4c에 도시하는 바와 같이, 캐시 대체 요구는 시스템 보드(100) 내에서 루프백된다. 글로벌 버스(301)의 성능은 80%를 유지하고, 비어 있는 20%에 시스템 보드(100) 내에서 루프백된 캐시 대체 요구를 셀렉터(142)로 합치는 형태가 되기 때문에, 성능 열화는 발생하지 않는다.
도 5는 본 실시예에 의한 멀티프로세서 시스템의 제2 구성예를 도시하는 도 면이다. 도 5의 예의 멀티프로세서 시스템은, 도 1에 도시하는 구성에 있어서, 캐시 대체 요구 루프백 회로(140)에 루프백부 큐(143)가 더 설치된 구성으로 되어 있다. 루프백부 큐(143)는 로컬 아비터(113)로부터 출력된 캐시 대체 요구를 유지한다.
도 5에 있어서, 굵은 선 화살표는 캐시 대체 요구가 전달되는 루트를 도시한다. 여기서는, CPU(120a)가 캐시 대체 요구를 발행하는 것으로 한다. CPU(120a)로부터 발행된 캐시 대체 요구는 CPU 버스(130a), CPU 발행 요구 큐(112a), 로컬 아비터(113), 루프백 판정 회로(141)를 통해 루프백부 큐(143)에 유지된다. 셀렉터(142)는 글로벌 버스(301)에 유효한 요구가 없는 타이밍으로, 루프백부 큐(143)에 유지된 캐시 대체 요구를 요구 처리부(114)로 송출한다.
도 6은 캐시 대체 요구 루프백 회로의 제2 예를 설명하는 도면이다. 도 6에 도시하는 루프백 판정 회로(141)는 도 2에 도시하는 루프백 판정 회로(141)와 마찬가지로 동작한다. 다만, AND 회로(152)로부터 발신된 유효 신호(V)와, 로컬 아비터(113)로부터 발행된 요구의 오퍼레이션 코드(OP) 및 기타 어드레스 등(ADR 등)으로 이루어지는 요구의 신호는 루프백부 큐(143)에 유지된다. 또한, 글로벌 아비터(210)로부터 출력된 요구의 유효 신호(V)가 무효 "0"일 때에, 루프백부 큐(143)가 공백인 경우에는 캐시 대체 요구의 요구는 루프백부 큐(143)로 유지되지 않고, 셀렉터(144)를 통해 셀렉터(142)로 전송된다.
셀렉터(142)는 글로벌 아비터(210)로부터 출력된 요구의 유효 신호(V)가 유효 "1"이면 글로벌 아비터(210)로부터 출력된 요구(캐시 대체 요구 이외)를 요구 처리부(114)로 전송한다. 글로벌 아비터(210)로부터 출력된 요구의 유효 신호(V)가 무효 "0"이면 루프백부 큐(143)에 유지된 요구(캐시 대체 요구)를 요구 처리부(114)로 전송한다.
도 7은 본 실시예에 의한 캐시 대체 요구 루프백 처리의 제2 흐름도이다. 또한, 여기서는 도 6의 셀렉터(144)의 기능을 셀렉터(142)에 포함하여 설명한다.
로컬 아비터(113)가 로컬 버스(300)에 발행하는 요구를 선택하면(단계 S20), 캐시 대체 요구 루프백 회로(140)는 선택된 요구가 캐시 대체 요구인지의 여부를 판정한다(단계 S21). 선택된 요구가 캐시 대체 요구가 아니면 로컬 버스(300)에 선택된 요구를 송신한다(단계 S22).
단계 S21의 판정에 있어서, 선택된 요구가 캐시 대체 요구이면, 글로벌 버스(301)에 유효한 요구가 있는지를 판정한다(단계 S23). 글로벌 버스(301)에 유효한 요구가 없고, 루프백부 큐(143)가 공백이면(단계 S24에서 YES인 경우), 단계 S20에서 선택된 요구(캐시 대체 요구)를 셀렉터(142)로 선택하고, 요구 처리부(114)로 전송한다(단계 S25).
루프백부 큐(143)가 공백이 아니면(단계 S24에서 NO인 경우), 루프백부 큐(143)에 유지된 요구(캐시 대체 요구)를 셀렉터(142)로 선택하고(단계 S26), 그 선택된 요구를 루프백부 큐(143)로부터 삭제한다(단계 S27). 단계 S20에서 선택된 요구를 루프백부 큐(143)에 유지한다(단계 S28).
단계 S23의 판정에 있어서, 글로벌 버스(301)에 유효한 요구가 있으면, 그 글로벌 버스(301)로부터의 요구를 셀렉터(142)로 선택하고, 요구 처리부(114)로 전 송한다(단계 S29). 이 때, 루프백부 큐(143)가 최대가 아니면(단계 S30에서 NO인 경우), 단계 S20에서 선택된 요구를 루프백부 큐(143)에 유지한다(단계 S28).
루프백부 큐(143)가 최대이면(단계 S30에서 YES인 경우), 단계 S20에서 선택된 요구(캐시 대체 요구)는 발행 불가가 된다(단계 S31). 그 발행은 다음번 이후로 미루어진다.
도 8a 및 도 8b는 캐시 대체 요구 루프백 회로에 루프백부 큐가 설치된 것의 효과를 설명하는 도면이다. 도 8a는 캐시 대체 요구 루프백 회로(140)에 루프백부 큐(143)가 설치되어 있지 않는 경우의 예를 도시하고, 도 8b는 캐시 대체 요구 루프백 회로(140)에 루프백부 큐(143)가 설치된 경우의 예를 도시한다. 도 8에 있어서, 가로로 나열된 숫자는 시간의 진행을 나타낸다. 여기서는 시간 #1에 캐시 대체 요구(Replace 1), 캐시 대체 요구(Replace 2), 판독 요구(Read 1)의 순으로, 로컬 아비터(113)로부터 요구가 출력 가능한 상태로 되어 있다. 글로벌 버스(301)의 "Valid"는, 그 시간에 글로벌 버스(301)에 유효한 요구가 있는 것을 나타낸다.
캐시 대체 요구 루프백 회로(140)에 루프백부 큐(143)가 설치되어 있지 않는 경우에는, 캐시 대체 요구를 일시적으로 유지할 수 없다. 이 때문에 도 8a에 도시하는 바와 같이, 캐시 대체 요구(Replace 1)는 글로벌 버스(301)에 유효한 요구가 없는 시간 #4에 처음으로 셀렉터(142)로부터 요구 처리부(114)로 전송되게 된다. 마찬가지로, 캐시 대체 요구(Replace 2)는 시간 #6에 셀렉터(142)로부터 요구 처리부(114)로 전송된다. 판독 요구(Read 1)는 시간 #7이 되어 간신히 로컬 버스(300)로 출력되는 것이 된다.
이와 같이, 캐시 대체 요구 루프백 회로(140)에 루프백부 큐(143)가 설치되어 있지 않는 경우에는 판독 요구의 발행이 지연되어 버린다.
이에 대하여 캐시 대체 요구 루프백 회로(140)에 루프백부 큐(143)가 설치된 경우에는 도 8b에 도시하는 바와 같이, 캐시 대체 요구(Replace 1)는 글로벌 버스(301)에 유효한 요구의 유무와 관계없이, 시간 #2에 루프백부 큐(143)에 유지된다. 루프백부 큐(143)에 유지된 캐시 대체 요구(Replace 1)는 글로벌 버스(301)에 유효한 요구가 없는 시간 #4에 셀렉터(142)로부터 요구 처리부(114)로 전송되는 것이 된다. 마찬가지로, 캐시 대체 요구(Replace 2)는 시간 #3에 루프백부 큐(143)에 유지되고, 시간 #6에 셀렉터(142)로부터 요구 처리부(114)로 전송된다. 판독 요구(Read 1)는 시간 #4에는 로컬 버스(300)로 출력되는 것이 된다.
이와 같이, 캐시 대체 요구 루프백 회로(140)에 루프백부 큐(143)를 설치함으로써, 로컬 아비터(113)에서 캐시 대체 요구의 발행을 대기할 필요가 없기 때문에, 판독 요구의 발행을 빠르게 하는 것이 가능해진다.
여기까지는, 루프백부 큐(143)가 덮어쓰기 기능을 갖지 않는 것을 전제로 설명하였지만, 루프백부 큐(143)가 덮어쓰기 기능을 갖는 것도 가능하다. 도 5, 도 6에 도시하는 구성에 있어서, 루프백부 큐(143)의 엔트리가 최대일 때에 새롭게 로컬 아비터(113)로부터 캐시 대체 요구가 발행되면, 루프백부 큐(143)에서는 1 엔트리의 캐시 대체 요구가 삭제되고, 새롭게 발행된 캐시 대체 요구가 유지된다. 루프백부 큐(143)에 덮어쓰기 기능을 갖게 함으로써, 루프백부 큐(143)의 엔트리 수를 적게 할 수 있다.
도 9는 본 실시예에 의한 캐시 대체 요구 루프백 처리의 제3 흐름도이다. 또한, 여기서는 도 6의 셀렉터(144)의 기능을 셀렉터(142)에 포함하여 설명한다.
로컬 아비터(113)가 로컬 버스(300)에 발행하는 요구를 선택하면(단계 S40), 캐시 대체 요구 루프백 회로(140)는 선택된 요구가 캐시 대체 요구인지의 여부를 판정한다(단계 S41). 선택된 요구가 캐시 대체 요구가 아니면 로컬 버스(300)에 선택된 요구를 송신한다(단계 S42).
단계 S41의 판정에 있어서, 선택된 요구가 캐시 대체 요구이면 글로벌 버스(301)에 유효한 요구가 있는지를 판정한다(단계 S43). 글로벌 버스(301)에 유효한 요구가 없고 루프백부 큐(143)가 공백이면(단계 S44에서 YES인 경우), 단계 S40에서 선택된 요구(캐시 대체 요구)를 셀렉터(142)로 선택하고, 요구 처리부(114)로 전송한다(단계 S45).
루프백부 큐(143)가 공백이 아니면(단계 S44에서 NO인 경우), 루프백부 큐(143)에 유지된 요구(캐시 대체 요구)를 셀렉터(142)로 선택하여 요구 처리부(114)로 전송하고(단계 S46), 그 선택된 요구를 루프백부 큐(143)로부터 삭제한다(단계 S47). 단계 S40에서 선택된 요구를 루프백부 큐(143)에 유지한다(단계 S48).
글로벌 버스(301)에 유효한 요구가 있으면(단계 S43에서 YES인 경우), 그 글로벌 버스(301)로부터의 요구를 셀렉터(142)로 선택하고, 요구 처리부(114)로 전송한다(단계 S49). 이 때, 루프백부 큐(143)가 최대가 아니면(단계 S50에서 NO인 경우), 단계 S40에서 선택된 요구를 루프백부 큐(143)에 유지한다(단계 S48).
루프백부 큐(143)가 최대이면(단계 S50에서 YES인 경우), 루프백부 큐(143)의 1 엔트리의 요구를 삭제하고(단계 S51), 단계 S40에서 선택된 요구를 루프백부 큐(143)에 유지한다(단계 S48).
도 10a 및 도 10b는 루프백부 큐가 덮어쓰기 기능을 갖는 경우의 효과를 설명하는 도면이다. 도 10a는 루프백부 큐(143)가 덮어쓰기 기능을 갖지 않는 경우의 예를 도시하고, 도 10b는 루프백부 큐(143)가 덮어쓰기 기능을 갖는 경우의 예를 도시한다. 도 10에 있어서, 가로로 나열된 숫자는 시간의 진행을 나타낸다. 여기서는, 시간 #1에 캐시 대체 요구(Replace 1), 캐시 대체 요구(Replace 2), 캐시 대체 요구(Replace 3), 판독 요구(Read 1)의 순으로, 로컬 아비터(113)로부터 요구가 출력 가능한 상태로 되어 있다. 글로벌 버스(301)의 "Valid"는 그 시간에 글로벌 버스(301)에 유효한 요구가 있는 것을 나타낸다. 또한, 루프백부 큐(143)의 엔트리 수는 2 개인 것으로 한다.
루프백부 큐(143)가 덮어쓰기 기능을 갖지 않는 경우에는, 도 10a에 도시하는 바와 같이, 캐시 대체 요구(Replace 1)는 시간 #2에 루프백부 큐(143)에 유지되고, 마찬가지로, 캐시 대체 요구(Replace 2)는 시간 #3에 루프백부 큐(143)에 유지된다.
여기서, 루프백부 큐(143)의 엔트리에 공백이 없기 때문에 캐시 대체 요구(Replace 3)를 로컬 아비터(113)로부터 출력할 수 없다. 루프백부 큐(143)에 유지된 캐시 대체 요구(Replace 1)는 글로벌 버스(301)에 유효한 요구가 없는 시간 #6에 셀렉터(142)로부터 요구 처리부(114)로 전송되는 것이 된다. 시간 #7이 되어 간신히 캐시 대체 요구(Replace 3)가 루프백부 큐(143)에 유지되고, 판독 요구(Read 1)는 시간 #8에 로컬 버스(300)로 출력되는 것이 된다.
이와 같이, 루프백부 큐(143)가 덮어쓰기 기능을 갖지 않는 경우에는, 루프백부 큐(143)에 공백이 없어졌을 때에 판독 요구의 발행이 지연되어 버린다.
이에 대하여 루프백부 큐(143)가 덮어쓰기 기능을 갖는 경우에는, 도 10b에 도시하는 바와 같이, 루프백부 큐(143)에 공백이 없어도 캐시 대체 요구(Replace 3)를, 시간 #4에 루프백부 큐(143)에 덮어쓰기로 유지할 수 있다. 이 때, 캐시 대체 요구(Replace 1)가 덮어쓰기에 의해 소멸하지만, 시스템이 Eviction 기능을 실장하고 있으면 문제는 없다. 덮어쓰기된 캐시 대체 요구(Replace 1)에 대응하는 판독 요구는 캐시 대체 요구 없음의 판독 요구로서 취급된다. 판독 요구(Read 1)는 시간 #5에는 로컬 버스(300)로 출력되는 것이 된다.
이와 같이, 루프백부 큐(143)가 덮어쓰기 기능을 갖는 경우에는, 루프백부 큐(143)에 공백이 없어졌을 때라도, 판독 요구의 발행을 빠르게 하는 것이 가능해진다. 또한, 루프백부 큐(143)가 덮어쓰기 기능을 갖는 경우에는 루프백부 큐(143)에 많은 엔트리를 준비하지 않더라도 판독의 발행 능력은 떨어지지 않는다. 반대로 루프백부 큐(143)의 엔트리수가 많아지면 거기에서의 체재 시간이 연장되어 버리기 때문에, 캐시 대체 요구가 글로벌 버스(301) 경유의 부모 판독 요구보다 나중에 처리되어 버리는 것도 고려된다. 이 때문에, 루프백부 큐(143)의 엔트리 수는 보다 적은 쪽이 바람직하다.
이상, 본 발명의 실시예에 대해서 설명하였지만, 본 발명은 이것에 한정되는 것이 아니다. 예컨대, 본 실시예에서는 루프백부 큐(143)가 최대일 때에 새롭게 캐시 대체 요구가 발행된 경우에, 루프백부 큐(143)에 유지된 캐시 대체 요구를 발행된 캐시 대체 요구로 덮어쓰기하고 있지만, 새롭게 발행된 캐시 대체 요구를 파기하도록 하여도 좋다.
본 발명에 의해, 캐시 대체 요구에 의해 글로벌 버스에 부하가 걸리는 것을 방지하고, 불필요한 Eviction의 발생을 방지하는 것이 가능하게 된다. 따라서, 캐시 대체 요구를 효율적으로 처리할 수 있게 되어 시스템 성능이 향상된다.

Claims (9)

  1. CPU와 그 CPU로부터 발행된 요구에 대한 처리를 행하는 요구 처리부를 각각 갖는 복수의 시스템 보드와, 각 시스템 보드로부터의 요구를 중재하는 어드레스 크로스바 보드를 구비하는 멀티프로세서 시스템으로서,
    상기 시스템 보드는,
    자기 시스템 보드의 CPU로부터 발행된 요구가 캐시 대체 요구인지의 여부를 판정하고, 캐시 대체 요구가 아니면 그 요구를 상기 어드레스 크로스바 보드로 전송하며, 캐시 대체 요구이면 그 요구를 자기 시스템 보드 내부로부터 상기 어드레스 크로스바 보드로 전송하지 않고, 상기 시스템 보드 내에 있는 상기 요구 처리부로 전송하는 캐시 대체 요구 루프백 회로를 포함하는 것을 특징으로 하는 멀티프로세서 시스템.
  2. 제1항에 있어서, 상기 캐시 대체 요구 루프백 회로는,
    자기 시스템 보드의 CPU로부터 발행된 캐시 대체 요구의 요청을 유지하는 루프백부 큐를 포함하는 것을 특징으로 하는 멀티프로세서 시스템.
  3. 제2항에 있어서, 상기 캐시 대체 요구 루프백 회로는, 상기 루프백부 큐의 전체 엔트리에 이미 캐시 대체 요구의 요청이 유지되어 있을 때에, 자기 시스템 보드의 CPU로부터 새롭게 캐시 대체 요구의 요청이 발행된 경우에, 상기 루프백부 큐 중 어느 하나의 엔트리에 유지된 캐시 대체 요구의 요청을, 새롭게 발행된 캐시 대체 요구의 요청으로 덮어쓰기 하는 것을 특징으로 하는 멀티프로세서 시스템.
  4. CPU와 그 CPU로부터 발행된 요구에 대한 처리를 행하는 요구 처리부를 각각 갖는 복수의 시스템 보드와, 각 시스템 보드로부터의 요구를 중재하는 어드레스 크로스바 보드를 구비하는 멀티프로세서 시스템에 있어서의 시스템 보드로서,
    자기 시스템 보드의 CPU로부터 발행된 요구가 캐시 대체 요구인지의 여부를 판정하고, 캐시 대체 요구가 아니면 그 요구를 상기 어드레스 크로스바 보드로 전송하며, 캐시 대체 요구이면 그 요구를 자기 시스템 보드 내부로부터 상기 어드레스 크로스바 보드로 전송하지 않고, 상기 시스템 보드 내에 있는 상기 요구 처리부로 전송하는 캐시 대체 요구 루프백 회로를 포함하는 것을 특징으로 하는 시스템 보드.
  5. 제4항에 있어서, 상기 캐시 대체 요구 루프백 회로는,
    자기 시스템 보드의 CPU로부터 발행된 캐시 대체 요구의 요청을 유지하는 루프백부 큐를 포함하는 것을 특징으로 하는 시스템 보드.
  6. 제5항에 있어서, 상기 캐시 대체 요구 루프백 회로는, 상기 루프백부 큐의 전체 엔트리에 이미 캐시 대체 요구의 요청이 유지되어 있을 때에, 자기 시스템 보드의 CPU로부터 새롭게 캐시 대체 요구의 요청이 발행된 경우에, 상기 루프백부 큐 중 어느 하나의 엔트리에 유지된 캐시 대체 요구의 요청을, 새롭게 발행된 캐시 대체 요구의 요청으로 덮어쓰기 하는 것을 특징으로 하는 시스템 보드.
  7. CPU와 그 CPU로부터 발행된 요구에 대한 처리를 행하는 요구 처리부를 각각 갖는 복수의 시스템 보드와, 각 시스템 보드로부터의 요구를 중재하는 어드레스 크로스바 보드를 구비하는 멀티프로세서 시스템에 의한 캐시 대체 요구 처리 방법으로서,
    상기 시스템 보드가 자기 시스템 보드의 CPU로부터 발행된 요구가 캐시 대체 요구인지의 여부를 판정하는 과정과,
    상기 시스템 보드가, 상기 발행된 요구가 캐시 대체 요구가 아니면, 상기 발행된 요구를 상기 어드레스 크로스바 보드로 전송하는 과정과,
    상기 시스템 보드가, 상기 발행된 요구가 캐시 대체 요구이면, 상기 발행된 요구를 자기 시스템 보드 내부로부터 상기 어드레스 크로스바 보드로 전송하지 않고, 상기 시스템 보드 내에 있는 상기 요구 처리부로 전송하는 과정
    을 포함하는 것을 특징으로 하는 캐시 대체 요구 처리 방법.
  8. 제7항에 있어서, 상기 시스템 보드가, 상기 발행된 요구가 캐시 대체 요구이면, 상기 발행된 요구를, 상기 요구 처리부로 전송하기 전에, 상기 시스템 보드가 구비하는 루프백부 큐에 유지하는 과정을 포함하는 것을 특징으로 하는 캐시 대체 요구 처리 방법.
  9. 제8항에 있어서, 상기 발행된 요구를 상기 루프백부 큐에 유지하는 과정에서는, 상기 루프백부 큐의 전체 엔트리에 이미 캐시 대체 요구의 요청이 유지되어 있을 때에, 상기 루프백부 큐 중 어느 하나의 엔트리에 유지된 캐시 대체 요구의 요청을, 상기 발행된 캐시 대체 요구의 요청으로 덮어쓰기 하는 것을 특징으로 하는 캐시 대체 요구 처리 방법.
KR1020070018303A 2006-08-18 2007-02-23 멀티프로세서 시스템, 시스템 보드 및 캐시 대체 요구 처리방법 KR100865102B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006222990A JP4912789B2 (ja) 2006-08-18 2006-08-18 マルチプロセッサシステム,システムボードおよびキャッシュリプレース要求処理方法
JPJP-P-2006-00222990 2006-08-18

Publications (2)

Publication Number Publication Date
KR20080016419A true KR20080016419A (ko) 2008-02-21
KR100865102B1 KR100865102B1 (ko) 2008-10-24

Family

ID=38691924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070018303A KR100865102B1 (ko) 2006-08-18 2007-02-23 멀티프로세서 시스템, 시스템 보드 및 캐시 대체 요구 처리방법

Country Status (6)

Country Link
US (1) US8090912B2 (ko)
EP (1) EP1895420B1 (ko)
JP (1) JP4912789B2 (ko)
KR (1) KR100865102B1 (ko)
CN (1) CN100538665C (ko)
DE (1) DE602007012028D1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070005725A1 (en) * 2005-06-30 2007-01-04 Morris Robert P Method and apparatus for browsing network resources using an asynchronous communications protocol
JP5011885B2 (ja) * 2006-08-18 2012-08-29 富士通株式会社 スヌープタグの制御装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4695943A (en) * 1984-09-27 1987-09-22 Honeywell Information Systems Inc. Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization
JP3078303B2 (ja) * 1990-07-12 2000-08-21 沖電気工業株式会社 キャッシュメモリ制御回路
JPH0683712A (ja) * 1992-09-03 1994-03-25 Nec Ic Microcomput Syst Ltd マイクロプロセッサ
US5875472A (en) * 1997-01-29 1999-02-23 Unisys Corporation Address conflict detection system employing address indirection for use in a high-speed multi-processor system
US6112283A (en) 1998-08-06 2000-08-29 Intel Corporation Out-of-order snooping for multiprocessor computer systems
US6615323B1 (en) 1999-09-02 2003-09-02 Thomas Albert Petersen Optimizing pipelined snoop processing
KR20020048513A (ko) * 2000-12-18 2002-06-24 구자홍 캐시 메모리의 데이터 제어 회로
US6901485B2 (en) * 2001-06-21 2005-05-31 International Business Machines Corporation Memory directory management in a multi-node computer system
JP2003030048A (ja) * 2001-07-18 2003-01-31 Hitachi Ltd マルチプロセッサシステム
US7114043B2 (en) 2002-05-15 2006-09-26 Broadcom Corporation Ambiguous virtual channels
US7290093B2 (en) * 2003-01-07 2007-10-30 Intel Corporation Cache memory to support a processor's power mode of operation
US7194587B2 (en) * 2003-04-24 2007-03-20 International Business Machines Corp. Localized cache block flush instruction
JP4522817B2 (ja) * 2004-10-25 2010-08-11 富士通株式会社 システム制御装置、情報処理装置及び情報処理装置の制御方法。
JP4882233B2 (ja) * 2005-01-24 2012-02-22 富士通株式会社 メモリ制御装置及び制御方法
US20060179174A1 (en) * 2005-02-02 2006-08-10 Bockhaus John W Method and system for preventing cache lines from being flushed until data stored therein is used
JP3843116B2 (ja) * 2005-05-26 2006-11-08 株式会社日立製作所 ネットワーク

Also Published As

Publication number Publication date
US20080046656A1 (en) 2008-02-21
EP1895420A1 (en) 2008-03-05
JP2008046949A (ja) 2008-02-28
DE602007012028D1 (de) 2011-03-03
KR100865102B1 (ko) 2008-10-24
EP1895420B1 (en) 2011-01-19
US8090912B2 (en) 2012-01-03
CN100538665C (zh) 2009-09-09
CN101127006A (zh) 2008-02-20
JP4912789B2 (ja) 2012-04-11

Similar Documents

Publication Publication Date Title
US9471532B2 (en) Remote core operations in a multi-core computer
US9405696B2 (en) Cache and method for cache bypass functionality
EP2839379B1 (en) A write-only dataless state for maintaining cache coherency
US7624236B2 (en) Predictive early write-back of owned cache blocks in a shared memory computer system
US20030126365A1 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
US7873789B2 (en) System controller, identical-address-request-queuing preventing method, and information processing apparatus having identical-address-request-queuing preventing function
US20050144399A1 (en) Multiprocessor system, and consistency control device and consistency control method in multiprocessor system
JP2006048406A (ja) メモリシステム制御装置およびメモリシステム制御方法
KR101087811B1 (ko) 캐시 라인 소유권 이전 방법 및 캐시 라인 소유권 이전 장치
EP1650667B1 (en) Apparatus for controlling a multi-processor system, scalable node, scalable multi-processor system, and method of controlling a multi-processor system
KR20090063401A (ko) 라이트 백 동작을 수행하는 캐시 메모리와 이를 포함하는시스템
KR100869297B1 (ko) 시스템 컨트롤러, 스누프 태그 갱신 방법 및 정보 처리장치
KR100865102B1 (ko) 멀티프로세서 시스템, 시스템 보드 및 캐시 대체 요구 처리방법
US20200026650A1 (en) Arithmetic processing device and arithmetic processing method
CN1849594A (zh) 用于多接口高速缓存中的联合高速缓存相干状态的方法和装置
US11687460B2 (en) Network cache injection for coherent GPUs
JP2001109662A (ja) キャッシュ装置及び制御方法
US7159077B2 (en) Direct processor cache access within a system having a coherent multi-processor protocol
JP2002024007A (ja) プロセッサシステム
JP2007241601A (ja) マルチプロセッサシステム
JP4839759B2 (ja) メモリアクセス制御方式と方法、及びプロセッサ装置
JPH0512173A (ja) 情報処理装置
JPH0683621A (ja) フェッチ方式
KR20060041006A (ko) 스누프 필터를 포함하는 멀티 버스 메모리 시스템 및스누프 필터를 이용한 멀티 버스 메모리 시스템의 스누핑방법

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

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130924

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20141001

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150918

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee