KR100548908B1 - 중앙 집중형 스누프 필터링 방법 및 장치 - Google Patents
중앙 집중형 스누프 필터링 방법 및 장치 Download PDFInfo
- Publication number
- KR100548908B1 KR100548908B1 KR1020037002487A KR20037002487A KR100548908B1 KR 100548908 B1 KR100548908 B1 KR 100548908B1 KR 1020037002487 A KR1020037002487 A KR 1020037002487A KR 20037002487 A KR20037002487 A KR 20037002487A KR 100548908 B1 KR100548908 B1 KR 100548908B1
- Authority
- KR
- South Korea
- Prior art keywords
- node
- snoop filter
- nodes
- snoop
- switching device
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/507—Control mechanisms for virtual memory, cache or TLB using speculative control
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)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
Abstract
중앙 스누프 필터를 사용하는 컴퓨터 시스템의 일실시예는 스위칭 장치를 통해 함께 연결된 다수의 노드를 포함한다. 각 노드들은 다수의 프로세서 및 캐시와 시스템 메모리 블록을 포함할 수 있다. 하나의 노드로부터 다른 노드로의 모든 트래픽은 스위칭 장치를 통해 발생한다. 스위칭 장치는 컴퓨터 시스템내의 모든 캐시에 대한 캐시 라인 일관성 정보를 추적하는 스누프 필터를 포함한다. 스누프 필터는 시스템의 모든 노드의 모든 캐시내의 모든 엔트리에 대한 태그 및 상태 정보를 추적하는데 충분한 엔트리를 갖는다. 태그 및 상태 정보에 추가하여, 스누프 필터는 어떤 노드가 각 캐시 라인의 카피를 갖는지를 나타내는 정보를 저장한다. 스누프 필터는 부분적으로, 대상 캐시 라인의 카피를 포함하지 않는 노드에서 스누프 트랜잭션이 수행되지 않도록 하고, 이에 따라, 시스템 오버헤드가 감소되고, 시스템 인터커넥션 버스를 통한 트래픽이 감소하며, 스누프 트랜잭션을 수행하는데 요구되는 시간이 줄어든다.
컴퓨터 시스템, 노드, 스누프, 필터, 캐시, 트랜잭션, 일관성
Description
본 발명은 컴퓨터 시스템 분야에 관한 것으로, 특히, 다중-노드 컴퓨터 시스템에서 스누프(snoop) 동작을 수행하는 분야에 관한 것이다.
캐시 일관성(cache coherency)은 모든 컴퓨터 시스템의 중요한 요소이다. 네트워크 서버 컴퓨터 시스템에서, 통상의 네트워크 서버는 다수의 캐시에서 작동하는 다수의 프로세서를 포함한다는 사실로 인해, 캐시 일관성을 유지하는 것은 어려운 업무이다. 일부 컴퓨터 시스템은 다수의 프로세서, 캐시 메모리 및 시스템 메모리 블록이 하나의 노드를 구성하는 노드 아키텍쳐에 기반한다. 컴퓨터 시스템은 다수의 노드를 포함할 수 있다.
통상적인 종래 시스템에서, 캐시 일관성을 유지하기 위해, 각 노드에 스누프 필터가 포함된다. 이러한 아키텍쳐를 분산형 스누프 아키텍쳐(distributed snoop architecture)라고 할 수 있다. 각 노드에 대한 스누프 필터는 그 노드의 프로세서 캐시 중 어느 것에 현재 캐싱된 모든 캐시 라인에 대한 캐시 일관성 프로토콜 상태 정보를 추적한다. 널리 보급된 캐시 일관성 프로토콜은 MESI(modified, exclusive, shared, or invalid) 프로토콜이다.
분산형 스누프 아키텍쳐에서, 하나의 노드가 어떤 메모리 위치로부터 데이터 라인을 판독하기를 원할 때에는, 먼저, 시스템내에 어느 캐시가 그 데이터 라인의 카피를 갖는지를 확인하여야 한다. 데이터 라인의 몇몇 카피가 다수의 노드의 캐시내에 존재하는 것이 가능하고, 그 카피들은 MESI 프로토콜에서 허용된 상태 중 하나로 캐싱될 수 있다. 어떤 노드가 데이터 라인의 카피를 갖는지, 및 그 라인이 어떤 상태로 캐싱되었는지를 판정하기 위해, 데이터 라인을 판독하기를 원하는 노드는 다른 노드 모두를 조회(query)여야 한다. 따라서, 노드 중 일부는 해당 데이터 라인을 캐싱하지 않았더라도, 모든 노드들이 조회되어야 한다. 이것은 버스 대역폭의 낭비를 초래하고, 원치 않는 시스템 오버헤드와 지연시간의 증가를 야기한다.
캐시 일관성을 유지하기 위한 다른 종래 시스템은 스누프 디렉토리의 사용을 포함한다. 이러한 아키텍쳐에서, 시스템 메모리를 갖는 각 노드는 스누프 디렉토리를 포함한다. 스누프 디렉토리는 그 노드에 위치된 메모리 위치를 포함한 모든 캐시 활동에 대한 정보를 추적한다. 각 스누프 디렉토리는 어떤 노드가 스누프 디렉토리 노드의 시스템 메모리로부터 데이터 라인을 캐싱하였는지를 추적하고, 또한 그 라인들이 어떤 상태로 캐싱되었는지를 추적한다. 이에 따라, 이 분산형 디렉토리 아키텍쳐를 이용하여, 하나의 노드("요구(requesting)" 노드)가 다른 노드("홈(home)" 노드)에 위치된 메모리 위치로부터 판독하기를 원하는 경우. 요구 노드는 그 디렉토리를 참고하는 홈 노드와 접촉하여야 한다. 그리고 나서, 홈 노드 는 해당 메모리 라인의 카피를 캐싱한 노드에 대해 스누프 요구를 발행한다. 그후, 여러 노드들이 홈 노드로 응답하고, 홈 노드는 요구된 데이터를 요구 노드에 제공한다. 스누프 정보에 대해 홈 노드와 먼저 접촉하고, 그 다음에 홈 노드가 다른 노드와 접촉하는 단계는, 특히, 노드들이 스위칭 장치를 통해 함께 결합된 컴퓨터 시스템에서 원치 않는 시스템 오버헤드를 초래할 수 있다.
도1은 중앙 스누프 필터를 포함하는 스위칭 장치에 의해 연결된 다수의 노드를 포함하는 시스템의 일실시예를 도시한 블록도.
도2는 중앙 스누프 필터를 포함하는 2개의 스위칭 장치에 의해 연결된 다수의 노드를 포함하는 시스템의 일실시예를 도시한 블록도.
도3은 스위칭 장치에 위치된 중앙 스누프 필터를 이용하여 스누프 사이클을 수행하는 방법의 일실시예를 도시한 순서도.
도4는 스위칭 장치에 위치된 중앙 스누프 필터를 이용하여 스누프 사이클을 포함한 판독 트랜잭션을 수행하는 방법의 일실시예를 도시한 순서도.
중앙 스누프 필터를 사용하는 컴퓨터 시스템의 일실시예는 스위칭 장치를 통해 함께 연결된 다수의 노드들을 포함한다. 각각의 노드는 다수의 프로세서 및 캐시와 시스템 메모리를 포함한다. 하나의 노드로부터 다른 노드로의 모든 트래픽은 스위칭 장치를 통해 발생한다. 스위칭 장치는 컴퓨터 시스템내의 모든 캐시에 대하여 캐시 라인 일관성 정보를 추적하는 스누프 필터를 포함한다. 스누프 필터는 모든 시스템 노드에서의 모든 캐시의 모든 엔트리에 대한 태그 어드레스와 상태 정보를 추적하는데 충분한 최소한의 엔트리를 가진다. 태그 및 상태 정보에 추가하여, 스누프 필터는 어떤 노드가 각 캐시 라인의 카피를 갖는지를 나타내는 정보를 저장한다. 스누프 필터는 부분적으로 대상 캐시 라인의 카피를 포함하지 않는 노드에서 스누프 트랜잭션이 수행되지 않도록 하고, 이로써, 시스템 오버헤드가 감소하고, 시스템 인터커넥션 버스를 통한 트래픽이 감소하며, 스누프 동작을 수행하는데 필요한 시간이 줄어든다.
중앙 스누프 필터의 일실시예는 여러 가지의 MESI 프로토콜을 사용한다. 이 실시예에서 스누프 필터는 캐시 라인이 무효인지(invalid), 공유인지(shared) 또는 수정/배타적인지(modified/exclusive)를 추적한다. 전체 MESI 프로토콜은 여러 노드에 위치된 캐시에서 지원된다. 모든 캐싱 에이전트에서의 트랜잭션이 일치하는 한, 다른 프로토콜들이 사용될 수 있다.
중앙 스누프 필터는 모든 캐싱 에이전트에서의 모든 캐시들을 계산에 넣기 때문에, 캐싱 에이전트는 스누프 필터에 존재하지 않는 캐시 라인의 카피를 가질 필요가 없다. 라인이 스누프 필터로부터 축출되는 경우, 이것은 그 라인의 카피를 포함하는 모든 노드들의 캐싱 에이전트로부터 축출되어야 한다.
스누프 필터는 존재 벡터(presence vector)를 이용하여 라인의 카피를 갖는 노드를 추적한다. 존재 벡터는 필드내의 각 비트가 특정 노드에 대응 비트의 필드 이다.
벡터 필드 대신에, 대안의 실시예는 각 노드에 대해 상이한 스누프 필터를 사용하는 것이 가능하다. 스누프 필터는 스위칭 장치내에 위치하고, 이에 따라, 중앙 집중적으로 위치된다. 스누프 필터는, 어떤 스누프 필터 엔트리는 하나의 노드에 적용하고, 나머지 엔트리들은 다른 노드에 적용되도록 구현될 수 있다.
도1은 노드 A, 노드 B 및 노드 C를 포함하는 시스템의 블록도이다. 노드 A는 105부터 L까지 표시된 다수의 프로세서를 포함할 수 있다. 노드 B는 115부터 M까지 표시된 다수의 프로세서를 포함할 수 있다. 노드 C는 125부터 N까지 표시된 다수의 프로세서를 포함할 수 있다. 노드 A는 또한 노드 제어 회로(102) 및 시스템 메모리 블록(104)을 포함한다. 노드 B는 또한 노드 제어 회로(112) 및 시스템 메모리 블록(114)을 포함한다. 노드 C는 또한 노드 제어 회로(122) 및 시스템 메모리 블록(124)을 포함한다. 노드 A, B, C의 프로세서는 캐시를 포함한다.
노드 A, B, C는 각각 스위칭 장치(130)에 연결된다. 스위칭 장치(130)는 중앙 스누프 필터(132)를 포함한다. 입/출력 허브(140)도 역시 스위칭 장치에 연결된다. 입/출력 허브(140)는 또한 캐시를 포함할 수 있다. 스누프 필터(132)는 프로세서 캐시 및 입/출력 허브(140) 캐시를 포함하는, 모든 시스템 노드내의 모든 엔트리에 대하여, 태그, 상태 및 존재 정보를 추적하는데 충분한 엔트리를 포함한다.
이제, 시스템의 캐시 중 어느 것에도 캐싱되지 않은 메모리의 라인에 대한 데이터 판독 트랜잭션의 일례가 논의될 것이다. 이 예에서는, 노드 A가 요구 노드(판독 트랜잭션을 발행한 노드)이고, 노드 C는 홈 노드(판독 요구에 의해 어드레싱 된 시스템 메모리 부분을 포함하는 노드)이다. 노드 A는 스위칭 장치(130)로 판독 요구를 발행한다. 그리고, 스누프 필터(132)는 판독 요구에 의해 어드레싱된 메모리 라인이 노드 A, B 또는 C에 캐싱되었는지, 또는 입/출력 허브(140)에 캐싱되었는지를 판정하기 위한 검색(lookup) 동작을 수행한다. 스누프 필터(132)가 검색 동작을 수행하는 동안, 스위칭 장치(130)는 노드 C로 추측 메모리 판독(speculative memory read)을 발행한다. 스위칭 장치(130)는 판독 요구에 의해 어떤 노드가 어드레싱되는지를 판정할 수 있도록 하는 메모리 디코딩 회로를 포함한다. 이 예에서, 스누프 필터 검색은 판독 요구에 의해 어드레싱된 메모리 라인이 시스템 캐시 중 어느 것에도 캐싱되어 있지 않다는 것을 나타낸다. 스위칭 장치(130)는 스누프 응답을 노드 A로 전달하고, 또한, 메모리 판독 확인을 노드 C로 전송한다. 메모리 판독 확인에 응답하여, 노드 C는 스위칭 장치(130)로 요구된 데이터를 전달한다. 그리고 나서, 스위칭 장치(130)는 노드 A로 요구된 데이터를 전달한다. 노드 A가 대상 캐시 라인을 캐싱한 유일한 노드이기 때문에, 스누프 필터(132)는 이 캐시 라인에 대한 엔트리를 "배타적(exclusive)"으로 만들고, 노드 A가 캐시 라인의 카피를 가지고 있음을 나타내도록 존재 벡터가 설정된다.
이제, 두 노드 사이에 공유된 캐시 라인에 대한 메모리 기록 트랜잭션의 일례가 설명된다. 이 예에서는, 노드 A가 요구 노드이고, 또한 홈 노드이다. 다시 말해서, 노드 A가 자신의 메모리에 데이터 라인을 기록하는 것이다. 노드 A는 스위칭 장치(130)로 무효 사이클(invalidate cycle)을 발행함으로써 트랜잭션을 시작한다. 그리고 나서, 스누프 필터(132)는 어떤 노드가 캐시 라인의 카피를 가지고 있는지 를 판정하고, 또한, 그 라인이 캐싱된 상태를 판정하기 위해, 검색 동작을 수행한다. 이 예에서 검색 동작은 그 캐시 라인이 "공유(shared)"이고, 노드 B 및 C가 카피를 가지고 있음을 나타낸다. 그리고 나서, 스위칭 장치(130)는 노드 B 및 C로 무효 사이클을 발행한다. 노드 B 및 C는 스누프 응답 신호로 응답하고, 스위칭 장치(130)는 스누프 응답을 노드 A로 전달하여, 트랜잭션을 완료한다. 이제 스누프 필터(132)는 노드 A만이 그 캐시 라인의 카피를 가지고 있고, 그 라인은 "배타적/수정된(exclusive/modified)" 상태라는 것을 보여준다.
이제, "수정된" 캐시라인에 대한 판독 사이클의 일례가 논의될 것이다. 이 예에서는, 노드 A가 요구 노드이고, 노드 B가 해당 캐시 라인의 카피를 수정한 노드이고, 노드 C가 홈 노드(그 시스템 메모리가 캐시 라인에 대응 메모리 위치를 포함하는 노드)이다. 노드 A는 스위칭 장치(130)로 판독 요구를 발행함으로써 트랜잭션을 시작한다. 스위칭 장치가 노드 C로 불확실한 메모리 판독을 발행하는 동안, 스누프 필터(132)는 검색 동작을 수행한다. 스누프 필터 검색의 결과, 노드 B가 캐시 라인의 수정된 카피를 가지고 있음을 나타낸다. 스위칭 장치(130)는 노드 B로 스누프 요구를 전송하고, 노드 B는 수정된 데이터에 따른 스누프 응답을 이용하여 응답한다. 그리고 나서, 스위칭 장치(130)는 스누프 응답과 데이터를 노드 A로 전달하고, 동시에, 노드 C로 데이터를 전달하여, 시스템 메모리가 업데이트된다. 그후, 노드 C는 스위칭 장치(130)로 완료 신호를 전송하고, 그 완료 신호가 스위칭 장치(130)로부터 노드 A로 전달되어, 이 트랜잭션이 완료된다.
시스템 스케일 가능성 요건을 만족시키는데 충분한 스누프 필터 처리량 및 용량을 제공하기 위해, 시스템내에 다수의 스누프 필터를 사용하는 것이 가능하다. 이러한 경우에, 상이한 스누프 필터는 캐시 라인의 상호 배타적인 세트의 추적을 유지한다. 캐시 라인은 모든 시간에서 단지 하나의 스누프 필터에 의해 추적된다.
도2는 노드 D, 노드 E 및 노드 F를 포함하고, 또한 2개의 스누프 필터(232, 234)를 포함하는 시스템의 블록도이다. 노드 D는 205부터 P까지 표시된 다수의 프로세서를 포함할 수 있다. 노드 E는 215부터 Q까지 표시된 다수의 프로세서를 포함할 수 있다. 노드 F는 225부터 R까지 표시된 다수의 프로세서를 포함할 수 있다. 노드 D는 또한 노드 제어 회로(202) 및 시스템 메모리 블록(204)을 포함한다. 노드 E는 또한 노드 제어 회로(212) 및 시스템 메모리 블록(214)을 포함한다. 노드 F는 또한 노드 제어 회로(222) 및 시스템 메모리 블록(224)을 포함한다. 노드 D, E, F의 프로세서는 캐시를 포함한다.
노드 D, E, F는 각각 스위칭 장치(230) 및 스위칭 장치(240)에 연결된다. 스위칭 장치(230)는 중앙 스누프 필터(232)를 포함한다. 입/출력 허브(250)도 역시 스위칭 장치(230) 및 스위칭 장치(240)에 연결된다. 입/출력 허브(250)는 또한 캐시를 포함할 수 있다. 스위칭 장치(240)는 중앙 스누프 필터(242)를 포함한다. 입/출력 허브(260)도 역시 스위칭 장치(240) 및 스위칭 장치(230)에 연결된다. 입/출력 허브(260)는 또한 캐시를 포함할 수 있다.
스누프 필터(232)는 프로세서 캐시 및 입/출력 허브 캐시를 포함하는, 모든 시스템 노드내의 모든 엔트리의 절반에 대한, 태그, 상태 및 존재 정보를 추적하는데 충분한 엔트리를 포함한다. 스누프 필터(242)는 나머지 시스템 캐시 엔트리에 대한 엔트리를 포함한다. 일실시예에서, 노드 D, E 및 F는 교번적인 캐시 라인을 따라 스위칭 장치(230, 240)로 그 액세스를 인터리브한다.
도3은 스위칭 장치내에 위치된 중앙 스누프 필터를 이용하여 스누프 사이클을 수행하는 방법의 일실시예를 도시한 순서도이다. 블록(310)에서, 제1 노드로부터 스위칭 장치로 판독 요구가 발행된다. 스위칭 장치는 스누프 필터를 포함한다. 블록(320)에서, 제2 노드에 위치된 캐시가 판독 요구에 대응 캐시 라인의 카피를 가지고 있는지를 판정하기 위해, 스누프 필터 검색이 수행된다.
도4는 스위칭 장치내에 위치된 중앙 스누프 필터를 이용하여, 스누프 사이클을 포함한 판독 트랜잭션을 수행하는 방법의 일실시예를 도시한 순서도이다. 블록(410)에서, 제1 노드로부터, 스누프 필터를 포함하는 스위칭 장치로 판독 요구가 발행된다. 판독 요구는 제2 노드에 위치된 메모리 위치로 어드레싱된다. 블록(420)에서, 스누프 필터 검색이 수행되고, 동시에, 블록(430)에서는, 스위칭 장치로부터 제2 노드로 추측 메모리 판독 인출(speculative memory read fetch)이 발행된다. 블록(440)에서 스누프 필터 검색이 판독 요구에 의해 특정된 메모리 라인이 하나 또는 그 이상의 노드에 캐싱되어 있는 것으로 판정되면, 블록(450)에서 캐싱된 라인 알고리즘이 수행된다. 이러한 형태의 알고리즘 예들은 도1을 참조하여 위에서 논의되었다. 한편, 블록(440)에서, 스누프 필터 검색이 판독 요구에 의해 특정된 메모리 라인이 캐싱 에이전트의 어느 것에도 캐싱되지 않은 것으로 판정되면, 블록(460)에서, 스위칭 장치로부터 제1 노드로 스누프 응답이 전달된다. 동시에, 블록(470)에서는, 스위칭 장치로부터 제2 노드로 메모리 판독 확인 메시지가 전달된다. 최종적으로, 블록(480)에서, 제2 노드로부터 스위칭 장치를 통해 제1 노드로 인출된 데이터가 전달된다.
이상에서, 본 발명은 특정한 예시적인 실시예를 참조하여 설명되었다. 그러나, 첨부된 청구범위에 기재된 본 발명의 보다 넓은 사상 및 범위에서 벗어나지 않는 한, 여러 가지 변형 및 수정이 이루어질 수 있다는 것이 명백할 것이다. 따라서, 본 명세서 및 도면은 제한적이라기 보다는 예시적인 의미로 간주되어야 한다.
명세서에서 "실시예", "일실시예", "일부 실시예" 또는 "다른 실시예"라는 언급은, 그 실시예와 관련하여 설명된 특정한 형태, 구조 또는 특징들이 적어도 일부 실시예들에 포함된다는 의미이며, 반드시 본 발명의 모든 실시예에 포함되는 것은 아니다. "실시예", "일실시예" 또는 "일부 실시예"의 다양한 형태들은 반드시 동일한 실시예에 모두 관련되는 것은 아니다.
Claims (19)
- 다수의 노드와의 통신을 제공하기 위한 다수의 노드 인터페이스 포트;상기 다수의 노드에 대한 캐시 일관성(cache coherency) 정보를 유지하기 위한 스누프 필터(snoop filter); 및상기 스누프 필터에서 검색(lookup)이 수행되는 동안, 동시에 상기 다수의 노드 중 제2 노드에 대해 추측 판독 동작(speculative read operation)을 수행하기 위한 판독 사전인출 유닛(read prefetch unit)을 포함하고,여기서, 상기 검색이 상기 판독 동작에 의해 특정된 어드레스에 대응하는 메모리의 캐싱된 라인을 갖는 노드가 없다는 것을 나타내는 경우, 상기 다수의 노드 중 제2 노드로 메모리 판독 확인 메시지가 전달되는 동안, 동시에 상기 다수의 노드 중 제1 노드로 상기 검색 결과가 전달되는장치.
- 제1항에 있어서,상기 다수의 노드의 각각은 캐시를 포함하고,상기 스누프 필터는 적어도 상기 다수의 노드에 위치된 모든 캐시내에 포함된 엔트리의 양만큼의 엔트리를 포함하는장치.
- 제2항에 있어서,상기 각 스누프 필터 엔트리는 어드레스 태그(tag)를 포함하는장치.
- 제3항에 있어서,상기 각 스누프 필터 엔트리는 대응 캐시 라인에 대한 캐시 일관성 프로토콜 상태를 나타내는 필드를 포함하는장치.
- 제4항에 있어서,상기 각 스누프 필터 엔트리는 상기 다수의 노드 중 어느 것이 그 캐시내에 대응 캐시 라인의 카피를 갖는지를 나타내는 필드를 포함하는장치.
- 제5항에 있어서,상기 다수의 노드 인터페이스 포트 중 하나는 상기 다수의 노드 중 하나로부터 스누프 요구를 수신하고, 상기 스누프 필터는 나머지 다수의 노드 중 어느 것이 상기 스누프 요구에 대한 대응 캐시 라인의 카피를 갖는지를 판정하고, 또한, 상기 캐시 라인에 대해 어떤 캐시 일관성 프로토콜 상태가 나타나는지를 판정하는장치.
- 스누프 필터를 포함하는 스위칭 장치;상기 스위칭 장치에 연결된 제1 노드; 및상기 스위칭 장치에 연결된 제2 노드를 포함하고,여기서, 상기 스위칭 장치는 상기 스누프 필터에서 검색이 수행되는 동안, 동시에 상기 제2 노드에 대해 추측 판독 동작을 수행하기 위한 판독 사전인출 유닛을 포함하며, 상기 검색이 상기 판독 동작에 의해 특정된 어드레스에 대응하는 메모리의 캐싱된 라인을 갖는 노드가 없다는 것을 나타내는 경우, 상기 제2 노드로 메모리 판독 확인 메시지가 전달되는 동안, 동시에 상기 제1 노드로 상기 검색 결과가 전달되는시스템.
- 제7항에 있어서,상기 제1 노드는 프로세서 및 캐시를 포함하는시스템.
- 제8항에 있어서,상기 제2 노드는 프로세서, 메모리 장치 및 캐시를 포함하는시스템.
- 제9항에 있어서,상기 스누프 필터는 적어도 상기 제1 및 제2 노드 캐시내에 포함된 엔트리의 양만큼의 엔트리를 포함하는시스템.
- 제10항에 있어서,상기 각 스누프 필터 엔트리는 어드레스 태그를 포함하는시스템.
- 제11항에 있어서,상기 각 스누프 필터 엔트리는 대응 캐시 라인에 대한 캐시 일관성 프로토콜 상태를 나타내는 필드를 포함하는시스템.
- 제12항에 있어서,상기 각 스누프 필터 엔트리는 상기 제1 및 제2 노드 중 어느 것이 그 캐시내에 대응 캐시 라인의 카피를 갖는지를 나타내는 필드를 포함하는시스템.
- 제13항에 있어서,상기 스위칭 장치는 상기 제1 노드로부터 스누프 요구를 수신하고, 상기 스누프 필터는 상기 제1 및 제2 노드 중 어느 것이 상기 스누프 요구에 대한 대응 캐시 라인의 카피를 갖는지를 판정하고, 또한, 상기 캐시 라인에 대해 어떤 캐시 일관성 프로토콜 상태가 나타나는지를 판정하는시스템.
- 삭제
- 삭제
- 삭제
- 제1 노드로부터 스위칭 장치로 판독 요구를 발행하는 단계 - 여기서, 상기 스위칭 장치는 스누프 필터를 포함하고, 상기 제1 노드는 다수의 노드 중 하나이며, 상기 판독 요구는 제2 노드에 위치된 메모리 위치로 어드레싱되고, 상기 제2 노드도 또한 상기 다수의 노드 중 하나이며, 상기 다수의 노드의 각각은 캐시를 포함함 - ;상기 스위칭 장치로부터 상기 제2 노드로 추측 메모리 판독 인출(speculative memory read fetch)을 발행하는 동안, 동시에 스누프 필터 검색을 수행하는 단계;상기 스누프 필터 검색이 상기 판독 요구에 의해 특정된 상기 메모리 어드레스에 대응하는 메모리의 캐싱된 라인을 갖는 노드가 없다는 것을 나타내는 경우, 상기 제2 노드로 메모리 판독 확인 메시지가 전달되는 동안, 동시에 상기 스위칭 장치로부터 상기 제1 노드로 스누프 응답을 전달하는 단계;상기 메모리 판독 확인 메시지에 응답하여, 상기 제2 노드로부터 상기 스위칭 장치로 데이터를 전달하는 단계; 및상기 스위칭 장치로부터 상기 제1 노드로 상기 데이터를 전달하는 단계를 포함하는 방법.
- 제18항에 있어서,상기 스누프 필터내에 상기 전달된 데이터가 배타적 상태로 상기 제1 노드에 의해 캐싱되었다는 것을 표시하는 단계를 더 포함하는 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/643,382 US6810467B1 (en) | 2000-08-21 | 2000-08-21 | Method and apparatus for centralized snoop filtering |
US09/643,382 | 2000-08-21 | ||
PCT/US2001/025061 WO2002017102A2 (en) | 2000-08-21 | 2001-08-10 | Method and apparatus for centralized snoop filtering |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030025296A KR20030025296A (ko) | 2003-03-28 |
KR100548908B1 true KR100548908B1 (ko) | 2006-02-02 |
Family
ID=24580583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020037002487A KR100548908B1 (ko) | 2000-08-21 | 2001-08-10 | 중앙 집중형 스누프 필터링 방법 및 장치 |
Country Status (10)
Country | Link |
---|---|
US (1) | US6810467B1 (ko) |
EP (1) | EP1311955B1 (ko) |
KR (1) | KR100548908B1 (ko) |
CN (1) | CN1329846C (ko) |
AT (1) | ATE445187T1 (ko) |
AU (1) | AU2001279252A1 (ko) |
DE (1) | DE60140130D1 (ko) |
HK (1) | HK1052773B (ko) |
TW (1) | TW542964B (ko) |
WO (1) | WO2002017102A2 (ko) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60140859D1 (de) * | 2001-05-01 | 2010-02-04 | Sun Microsystems Inc | Multiprozessorsystem mit gemeinsamem Speicher, welches gemischte Broadcast-Snoop und verzeichnisbasierte Kohärenzprotokolle benutzt |
US7222220B2 (en) * | 2001-05-01 | 2007-05-22 | Sun Microsystems, Inc. | Multiprocessing system employing address switches to control mixed broadcast snooping and directory based coherency protocols transparent to active devices |
US8185602B2 (en) | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
US7093079B2 (en) * | 2002-12-17 | 2006-08-15 | Intel Corporation | Snoop filter bypass |
US7698509B1 (en) * | 2004-07-13 | 2010-04-13 | Oracle America, Inc. | Snooping-based cache-coherence filter for a point-to-point connected multiprocessing node |
US7213106B1 (en) * | 2004-08-09 | 2007-05-01 | Sun Microsystems, Inc. | Conservative shadow cache support in a point-to-point connected multiprocessing node |
US7469312B2 (en) * | 2005-02-24 | 2008-12-23 | International Business Machines Corporation | Computer system bus bridge |
US7275124B2 (en) * | 2005-02-24 | 2007-09-25 | International Business Machines Corporation | Method and system for controlling forwarding or terminating of a request at a bus interface based on buffer availability |
JP4956900B2 (ja) * | 2005-03-07 | 2012-06-20 | 富士通株式会社 | アドレススヌープ方法及びマルチプロセッサシステム |
US7373462B2 (en) | 2005-03-29 | 2008-05-13 | International Business Machines Corporation | Snoop filter for filtering snoop requests |
US7380071B2 (en) * | 2005-03-29 | 2008-05-27 | International Business Machines Corporation | Snoop filtering system in a multiprocessor system |
US7392351B2 (en) * | 2005-03-29 | 2008-06-24 | International Business Machines Corporation | Method and apparatus for filtering snoop requests using stream registers |
US7797495B1 (en) * | 2005-08-04 | 2010-09-14 | Advanced Micro Devices, Inc. | Distributed directory cache |
WO2007031696A1 (en) * | 2005-09-13 | 2007-03-22 | Arm Limited | Cache miss detection in a data processing apparatus |
US8185724B2 (en) * | 2006-03-03 | 2012-05-22 | Arm Limited | Monitoring values of signals within an integrated circuit |
US20090031082A1 (en) * | 2006-03-06 | 2009-01-29 | Simon Andrew Ford | Accessing a Cache in a Data Processing Apparatus |
US7581068B2 (en) * | 2006-06-29 | 2009-08-25 | Intel Corporation | Exclusive ownership snoop filter |
US20080109624A1 (en) * | 2006-11-03 | 2008-05-08 | Gilbert Jeffrey D | Multiprocessor system with private memory sections |
US7937535B2 (en) * | 2007-02-22 | 2011-05-03 | Arm Limited | Managing cache coherency in a data processing apparatus |
US7996626B2 (en) * | 2007-12-13 | 2011-08-09 | Dell Products L.P. | Snoop filter optimization |
US8856456B2 (en) * | 2011-06-09 | 2014-10-07 | Apple Inc. | Systems, methods, and devices for cache block coherence |
US9477600B2 (en) | 2011-08-08 | 2016-10-25 | Arm Limited | Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode |
US9058269B2 (en) * | 2012-06-25 | 2015-06-16 | Advanced Micro Devices, Inc. | Method and apparatus including a probe filter for shared caches utilizing inclusion bits and a victim probe bit |
US9122612B2 (en) * | 2012-06-25 | 2015-09-01 | Advanced Micro Devices, Inc. | Eliminating fetch cancel for inclusive caches |
CN105095254B (zh) * | 2014-05-07 | 2023-01-10 | 深圳市中兴微电子技术有限公司 | 一种实现数据一致性的方法及装置 |
CN104239270A (zh) * | 2014-07-25 | 2014-12-24 | 浪潮(北京)电子信息产业有限公司 | 一种高速缓存同步的方法及装置 |
US9507716B2 (en) * | 2014-08-26 | 2016-11-29 | Arm Limited | Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit |
US9639470B2 (en) * | 2014-08-26 | 2017-05-02 | Arm Limited | Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit |
US9727466B2 (en) * | 2014-08-26 | 2017-08-08 | Arm Limited | Interconnect and method of managing a snoop filter for an interconnect |
US11237965B2 (en) * | 2014-12-31 | 2022-02-01 | Arteris, Inc. | Configurable snoop filters for cache coherent systems |
US9900260B2 (en) | 2015-12-10 | 2018-02-20 | Arm Limited | Efficient support for variable width data channels in an interconnect network |
US10157133B2 (en) * | 2015-12-10 | 2018-12-18 | Arm Limited | Snoop filter for cache coherency in a data processing system |
US20170185516A1 (en) * | 2015-12-28 | 2017-06-29 | Arm Limited | Snoop optimization for multi-ported nodes of a data processing system |
US9990292B2 (en) * | 2016-06-29 | 2018-06-05 | Arm Limited | Progressive fine to coarse grain snoop filter |
US10346307B2 (en) | 2016-09-28 | 2019-07-09 | Samsung Electronics Co., Ltd. | Power efficient snoop filter design for mobile platform |
US10042766B1 (en) | 2017-02-02 | 2018-08-07 | Arm Limited | Data processing apparatus with snoop request address alignment and snoop response time alignment |
US11119926B2 (en) | 2017-12-18 | 2021-09-14 | Advanced Micro Devices, Inc. | Region based directory scheme to adapt to large cache sizes |
US10705959B2 (en) | 2018-08-31 | 2020-07-07 | Advanced Micro Devices, Inc. | Region based split-directory scheme to adapt to large cache sizes |
US10922237B2 (en) | 2018-09-12 | 2021-02-16 | Advanced Micro Devices, Inc. | Accelerating accesses to private regions in a region-based cache directory scheme |
US10769071B2 (en) * | 2018-10-10 | 2020-09-08 | Micron Technology, Inc. | Coherent memory access |
US10657055B1 (en) * | 2018-12-13 | 2020-05-19 | Arm Limited | Apparatus and method for managing snoop operations |
US11550720B2 (en) | 2020-11-24 | 2023-01-10 | Arm Limited | Configurable cache coherency controller |
CN112612726B (zh) * | 2020-12-08 | 2022-09-27 | 海光信息技术股份有限公司 | 基于缓存一致性的数据存储方法、装置、处理芯片及服务器 |
US20240273025A1 (en) * | 2023-02-14 | 2024-08-15 | Arm Limited | Data Processing Network with Super Home Node |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5950226A (en) | 1996-07-01 | 1999-09-07 | Sun Microsystems, Inc. | Multiprocessing system employing a three-hop communication protocol |
US6088769A (en) | 1996-10-01 | 2000-07-11 | International Business Machines Corporation | Multiprocessor cache coherence directed by combined local and global tables |
US6374330B1 (en) * | 1997-04-14 | 2002-04-16 | International Business Machines Corporation | Cache-coherency protocol with upstream undefined state |
US6338122B1 (en) * | 1998-12-15 | 2002-01-08 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that speculatively forwards a read request to a remote processing node |
US6374331B1 (en) | 1998-12-30 | 2002-04-16 | Hewlett-Packard Company | Distributed directory cache coherence multi-processor computer architecture |
US6651157B1 (en) | 1999-10-15 | 2003-11-18 | Silicon Graphics, Inc. | Multi-processor system and method of accessing data therein |
-
2000
- 2000-08-21 US US09/643,382 patent/US6810467B1/en not_active Expired - Lifetime
-
2001
- 2001-08-10 KR KR1020037002487A patent/KR100548908B1/ko not_active IP Right Cessation
- 2001-08-10 CN CNB018176917A patent/CN1329846C/zh not_active Expired - Fee Related
- 2001-08-10 DE DE60140130T patent/DE60140130D1/de not_active Expired - Lifetime
- 2001-08-10 AT AT01957515T patent/ATE445187T1/de not_active IP Right Cessation
- 2001-08-10 WO PCT/US2001/025061 patent/WO2002017102A2/en active IP Right Grant
- 2001-08-10 AU AU2001279252A patent/AU2001279252A1/en not_active Abandoned
- 2001-08-10 EP EP01957515A patent/EP1311955B1/en not_active Expired - Lifetime
- 2001-08-21 TW TW090120537A patent/TW542964B/zh not_active IP Right Cessation
-
2003
- 2003-07-11 HK HK03105041.5A patent/HK1052773B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO2002017102A3 (en) | 2003-01-23 |
TW542964B (en) | 2003-07-21 |
DE60140130D1 (de) | 2009-11-19 |
CN1329846C (zh) | 2007-08-01 |
CN1571958A (zh) | 2005-01-26 |
HK1052773B (zh) | 2010-05-20 |
US6810467B1 (en) | 2004-10-26 |
EP1311955A2 (en) | 2003-05-21 |
AU2001279252A1 (en) | 2002-03-04 |
KR20030025296A (ko) | 2003-03-28 |
HK1052773A1 (en) | 2003-09-26 |
WO2002017102A2 (en) | 2002-02-28 |
ATE445187T1 (de) | 2009-10-15 |
EP1311955B1 (en) | 2009-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100548908B1 (ko) | 중앙 집중형 스누프 필터링 방법 및 장치 | |
US6631448B2 (en) | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol | |
US6615319B2 (en) | Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture | |
KR100308323B1 (ko) | 공유된 개입 지원을 가지는 비균등 메모리 액세스 데이터처리 시스템 | |
KR100465583B1 (ko) | 판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템 및 이 시스템에서의 통신 방법 | |
KR100318104B1 (ko) | 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템 | |
US5706463A (en) | Cache coherent computer system that minimizes invalidation and copyback operations | |
US6868481B1 (en) | Cache coherence protocol for a multiple bus multiprocessor system | |
US7296121B2 (en) | Reducing probe traffic in multiprocessor systems | |
JP3269967B2 (ja) | キャッシュコヒーレンシ制御方法、および、これを用いたマルチプロセッサシステム | |
KR100324975B1 (ko) | 잠재적인 제3 노드 트랜잭션을 버퍼에 기록하여 통신 대기시간을 감소시키는 비균일 메모리 액세스(numa) 데이터 프로세싱 시스템 | |
US7386680B2 (en) | Apparatus and method of controlling data sharing on a shared memory computer system | |
EP1255201A1 (en) | Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols | |
US6859864B2 (en) | Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line | |
US6772298B2 (en) | Method and apparatus for invalidating a cache line without data return in a multi-node architecture | |
KR20050107402A (ko) | 캐시로 쓰기 데이터를 삽입하기 위한 방법 및 장치 | |
US6920532B2 (en) | Cache coherence directory eviction mechanisms for modified copies of memory lines in multiprocessor systems | |
JPH07253928A (ja) | 2重化キャッシュ・スヌープ機構 | |
US6925536B2 (en) | Cache coherence directory eviction mechanisms for unmodified copies of memory lines in multiprocessor systems | |
US5860109A (en) | Methods and apparatus for a coherence transformer for connecting computer system coherence domains | |
KR101072174B1 (ko) | 능동적 프리페치들로 향상된 호버 상태를 실시하는 시스템 및 방법 | |
JP2002024198A (ja) | 分散共有メモリ型並列計算機 | |
US6981101B1 (en) | Method and system for maintaining data at input/output (I/O) interfaces for a multiprocessor system | |
US20030101280A1 (en) | Fast jump address algorithm | |
KR19990019226A (ko) | 분산 공유 메모리 구조의 디렉토리 베이스 캐시 동일성 유지방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
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: 20130104 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20140103 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20141230 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |