KR100548908B1 - 중앙 집중형 스누프 필터링 방법 및 장치 - Google Patents

중앙 집중형 스누프 필터링 방법 및 장치 Download PDF

Info

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
Application number
KR1020037002487A
Other languages
English (en)
Other versions
KR20030025296A (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 KR20030025296A publication Critical patent/KR20030025296A/ko
Application granted granted Critical
Publication of KR100548908B1 publication Critical patent/KR100548908B1/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/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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
    • 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
    • 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/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/507Control 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

중앙 집중형 스누프 필터링 방법 및 장치{METHOD AND APPARATUS FOR CENTRALIZED SNOOP FILTERING}
본 발명은 컴퓨터 시스템 분야에 관한 것으로, 특히, 다중-노드 컴퓨터 시스템에서 스누프(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)

  1. 다수의 노드와의 통신을 제공하기 위한 다수의 노드 인터페이스 포트;
    상기 다수의 노드에 대한 캐시 일관성(cache coherency) 정보를 유지하기 위한 스누프 필터(snoop filter); 및
    상기 스누프 필터에서 검색(lookup)이 수행되는 동안, 동시에 상기 다수의 노드 중 제2 노드에 대해 추측 판독 동작(speculative read operation)을 수행하기 위한 판독 사전인출 유닛(read prefetch unit)
    을 포함하고,
    여기서, 상기 검색이 상기 판독 동작에 의해 특정된 어드레스에 대응하는 메모리의 캐싱된 라인을 갖는 노드가 없다는 것을 나타내는 경우, 상기 다수의 노드 중 제2 노드로 메모리 판독 확인 메시지가 전달되는 동안, 동시에 상기 다수의 노드 중 제1 노드로 상기 검색 결과가 전달되는
    장치.
  2. 제1항에 있어서,
    상기 다수의 노드의 각각은 캐시를 포함하고,
    상기 스누프 필터는 적어도 상기 다수의 노드에 위치된 모든 캐시내에 포함된 엔트리의 양만큼의 엔트리를 포함하는
    장치.
  3. 제2항에 있어서,
    상기 각 스누프 필터 엔트리는 어드레스 태그(tag)를 포함하는
    장치.
  4. 제3항에 있어서,
    상기 각 스누프 필터 엔트리는 대응 캐시 라인에 대한 캐시 일관성 프로토콜 상태를 나타내는 필드를 포함하는
    장치.
  5. 제4항에 있어서,
    상기 각 스누프 필터 엔트리는 상기 다수의 노드 중 어느 것이 그 캐시내에 대응 캐시 라인의 카피를 갖는지를 나타내는 필드를 포함하는
    장치.
  6. 제5항에 있어서,
    상기 다수의 노드 인터페이스 포트 중 하나는 상기 다수의 노드 중 하나로부터 스누프 요구를 수신하고, 상기 스누프 필터는 나머지 다수의 노드 중 어느 것이 상기 스누프 요구에 대한 대응 캐시 라인의 카피를 갖는지를 판정하고, 또한, 상기 캐시 라인에 대해 어떤 캐시 일관성 프로토콜 상태가 나타나는지를 판정하는
    장치.
  7. 스누프 필터를 포함하는 스위칭 장치;
    상기 스위칭 장치에 연결된 제1 노드; 및
    상기 스위칭 장치에 연결된 제2 노드
    를 포함하고,
    여기서, 상기 스위칭 장치는 상기 스누프 필터에서 검색이 수행되는 동안, 동시에 상기 제2 노드에 대해 추측 판독 동작을 수행하기 위한 판독 사전인출 유닛을 포함하며, 상기 검색이 상기 판독 동작에 의해 특정된 어드레스에 대응하는 메모리의 캐싱된 라인을 갖는 노드가 없다는 것을 나타내는 경우, 상기 제2 노드로 메모리 판독 확인 메시지가 전달되는 동안, 동시에 상기 제1 노드로 상기 검색 결과가 전달되는
    시스템.
  8. 제7항에 있어서,
    상기 제1 노드는 프로세서 및 캐시를 포함하는
    시스템.
  9. 제8항에 있어서,
    상기 제2 노드는 프로세서, 메모리 장치 및 캐시를 포함하는
    시스템.
  10. 제9항에 있어서,
    상기 스누프 필터는 적어도 상기 제1 및 제2 노드 캐시내에 포함된 엔트리의 양만큼의 엔트리를 포함하는
    시스템.
  11. 제10항에 있어서,
    상기 각 스누프 필터 엔트리는 어드레스 태그를 포함하는
    시스템.
  12. 제11항에 있어서,
    상기 각 스누프 필터 엔트리는 대응 캐시 라인에 대한 캐시 일관성 프로토콜 상태를 나타내는 필드를 포함하는
    시스템.
  13. 제12항에 있어서,
    상기 각 스누프 필터 엔트리는 상기 제1 및 제2 노드 중 어느 것이 그 캐시내에 대응 캐시 라인의 카피를 갖는지를 나타내는 필드를 포함하는
    시스템.
  14. 제13항에 있어서,
    상기 스위칭 장치는 상기 제1 노드로부터 스누프 요구를 수신하고, 상기 스누프 필터는 상기 제1 및 제2 노드 중 어느 것이 상기 스누프 요구에 대한 대응 캐시 라인의 카피를 갖는지를 판정하고, 또한, 상기 캐시 라인에 대해 어떤 캐시 일관성 프로토콜 상태가 나타나는지를 판정하는
    시스템.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 제1 노드로부터 스위칭 장치로 판독 요구를 발행하는 단계 - 여기서, 상기 스위칭 장치는 스누프 필터를 포함하고, 상기 제1 노드는 다수의 노드 중 하나이며, 상기 판독 요구는 제2 노드에 위치된 메모리 위치로 어드레싱되고, 상기 제2 노드도 또한 상기 다수의 노드 중 하나이며, 상기 다수의 노드의 각각은 캐시를 포함함 - ;
    상기 스위칭 장치로부터 상기 제2 노드로 추측 메모리 판독 인출(speculative memory read fetch)을 발행하는 동안, 동시에 스누프 필터 검색을 수행하는 단계;
    상기 스누프 필터 검색이 상기 판독 요구에 의해 특정된 상기 메모리 어드레스에 대응하는 메모리의 캐싱된 라인을 갖는 노드가 없다는 것을 나타내는 경우, 상기 제2 노드로 메모리 판독 확인 메시지가 전달되는 동안, 동시에 상기 스위칭 장치로부터 상기 제1 노드로 스누프 응답을 전달하는 단계;
    상기 메모리 판독 확인 메시지에 응답하여, 상기 제2 노드로부터 상기 스위칭 장치로 데이터를 전달하는 단계; 및
    상기 스위칭 장치로부터 상기 제1 노드로 상기 데이터를 전달하는 단계
    를 포함하는 방법.
  19. 제18항에 있어서,
    상기 스누프 필터내에 상기 전달된 데이터가 배타적 상태로 상기 제1 노드에 의해 캐싱되었다는 것을 표시하는 단계
    를 더 포함하는 방법.
KR1020037002487A 2000-08-21 2001-08-10 중앙 집중형 스누프 필터링 방법 및 장치 KR100548908B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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