KR20010101193A - 판독 요청을 원격 처리 노드에 추론적으로 전송하는비정형 메모리 액세스 데이터 처리 시스템 - Google Patents

판독 요청을 원격 처리 노드에 추론적으로 전송하는비정형 메모리 액세스 데이터 처리 시스템 Download PDF

Info

Publication number
KR20010101193A
KR20010101193A KR1020017007362A KR20017007362A KR20010101193A KR 20010101193 A KR20010101193 A KR 20010101193A KR 1020017007362 A KR1020017007362 A KR 1020017007362A KR 20017007362 A KR20017007362 A KR 20017007362A KR 20010101193 A KR20010101193 A KR 20010101193A
Authority
KR
South Korea
Prior art keywords
node
processing node
local
interconnect
request transaction
Prior art date
Application number
KR1020017007362A
Other languages
English (en)
Other versions
KR100465583B1 (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 KR20010101193A publication Critical patent/KR20010101193A/ko
Application granted granted Critical
Publication of KR100465583B1 publication Critical patent/KR100465583B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • 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
    • 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

Abstract

비정형 메모리 액세스(NUMA) 컴퓨터 시스템은 노드 인터커넥트에 각각 연결된 적어도 하나의 지역 처리 노드 및 원격 처리 노드를 포함한다. 지역 처리 노드는 지역 인터커넥트와, 지역 인터커넥트에 연결된 프로세서 및 시스템 메모리와, 지역 인터커넥트와 노드 인터커넥트 사이에 개재된 노드 컨트롤러를 포함한다. 노드 컨트롤러는 지역 인터커넥트로부터 판독 요청을 수신하여, 그 판독 요청을 노드 인터커넥트를 통해 원격 처리 노드에 추론적으로 전송한다. 그 후, 노드 컨트롤러는 원격 처리 노드로부터 판독 요청에 대한 응답을 수신하여, 지역 처리 노드에서의 판독 요청의 해결에 따라 그 응답을 처리한다. 예컨대, 하나의 처리 시나리오에 있어서, 만일 판독 요청이 지역 처리 노드에서 변경 개입 일관성 응답을 수신했다면 원격 처리 노드로부터 수신된 응답에 포함된 데이터는 노드 컨트롤러에 의해 폐기된다.

Description

판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템{NON-UNIFORM MEMORY ACCESS(NUMA) DATA PROCESSING SYSTEM THAT SPECULATIVELY FORWARDS A READ REQUEST TO A REMOTE PROCESSING NODE}
개개의 다중 프로세서가 협력하여 처리함으로써 컴퓨터 시스템 성능이 매우 향상될 수 있음은 컴퓨터 분야의 종래 기술로서 잘 알려져 있다. 멀티프로세서(MP) 컴퓨터 시스템은 다수의 상이한 토폴로지(topology)로 설계될 수 있으며, 각 애플리케이션의 성능 요구 조건 및 소프트웨어 환경에 따라 특정 애플리케이션에 대해 여러 토폴로지가 적합할 수도 있다. 가장 일반적인 멀티프로세서 컴퓨터 토폴로지는 대칭형 멀티프로세서(symmetric multi-processor:SMP) 구성이며, 이것은 다중 프로세서들이 통상 공유 시스템 인터커넥트에 연결되는 시스템 메모리 및 입출력(I/O) 서브시스템과 같은 공통 자원들을 공유하는 구성이다. 그러한 컴퓨터시스템을 대칭형이라고 하는 이유는 SMP 컴퓨터 시스템의 모든 프로세서들이 공유 시스템 메모리에 저장된 데이터에 대하여 이상적으로 동일한 액세스 대기 시간(latency)을 가지고 있기 때문이다.
SMP 컴퓨터 시스템은 비교적 간단한 프로세서간 통신 및 데이터 공유 방법의 사용을 허락하기는 하지만, 한편 제한된 확장성(scalability)을 갖는다. 다시 말하면, 통상의 SMP 컴퓨터 시스템의 성능은 일반적으로 규모(즉, 더 많은 프로세서의 추가)의 향상이 기대될 수 있는 반면에, 고유의 버스, 메모리 및 입출력(I/O) 대역폭 제한으로 인하여, 이들 공유 자원들이 최적화되어 활용되는 구현 의존 크기의 범위를 초과하여 SMP의 규모를 확대함으로써 획득될 수 있는 상당한 이점을 얻을 수 없다. 그러므로, SMP 토폴로지는 시스템 규모가 확대됨에 따라 특히 시스템 메모리에서 어느 정도 대역폭 제한을 받게 된다. 또한, SMP 컴퓨터 시스템은 제조 효율면에서 잘 스케일링되지 않는다. 예컨대, 몇몇 구성 요소들은 단일 프로세서와 소규모의 SMP 컴퓨터 시스템 모두에서는 최적화되어 활용될 수 있다하더라도, 흔히 대규모의 SMP 컴퓨터 시스템에서는 비효율적일 수 있다. 이와는 반대로, 대규모 SMP 컴퓨터 시스템용으로 설계된 구성 요소들은 비용면에서 소규모의 시스템용으로는 비실용적일 수 있다.
그 결과, 약간 더 복잡해지더라도 전술된 바와 같은 SMP 컴퓨터 시스템의 많은 제한을 처리할 수 있는 대안적인 설계로서, 비정형 메모리 액세스(NUMA)로 알려진 멀티프로세서 컴퓨터 시스템 토폴로지가 나왔다. 통상의 NUMA 컴퓨터 시스템은 다수의 상호 접속된 노드를 포함하며, 각 노드는 하나 또는 그 이상의 프로세서와지역 "시스템" 메모리를 포함한다. 그러한 컴퓨터 시스템을 비정형 메모리 액세스라고 하는 이유는 각 프로세서가 원격 노드의 시스템 메모리에 저장된 데이터보다 그의 지역 노드의 시스템 메모리에 저장된 데이터에 대해 더 짧은 액세스 대기 시간을 가지고 있기 때문이다. NUMA 시스템은 또한 서로 다른 노드의 캐시 사이에서 데이터 일관성(coherency)이 유지되는지의 여부에 따라 비일관성이나 캐시 일관성 중 하나로 분류될 수 있다. 캐시 일관성 NUMA(CC-NUMA) 시스템의 복잡도는 대부분 하드웨어가 각 노드 내의 여러 레벨의 캐시 메모리와 시스템 메모리 사이에서뿐만 아니라 서로 다른 노드의 캐시 메모리와 시스템 메모리 사이에서 데이터 일관성을 유지하는데 요구되는 추가적인 통신에 기인한다. 그러나, NUMA 컴퓨터 시스템은 그 시스템 내의 각 노드가 더 작은 SMP 시스템으로서 구현될 수 있기 때문에 종래의 SMP 컴퓨터 시스템의 확장성 제한을 처리한다. 따라서, 각 노드 내의 공유 구성 요소들이 단지 약간의 프로세서들에 의해 최적화되어 활용될 수 있는 동시에, 전체 시스템은 비교적 짧은 대기 시간을 유지하면서 대규모 병렬 처리의 유효성으로 이익을 얻는다.
CC-NUMA 컴퓨터 시스템에 관한 주요 성능은 노드들을 연결하는 인터커넥트를 통해 전송되는 통신 트랜잭션과 관련된 대기 시간이다. 특히, 가장 일반적인 유형의 트랜잭션인 판독 트랜잭션에 있어서, 원격 시스템 메모리에 상주한 데이터를 목표로 하는 판독 트랜잭션이 지역 시스템 메모리에 상주한 데이터를 목표로 하는 판독 트랜잭션보다 2배의 대기 시간이 소요될 수도 있다. 지역 인터커넥트에 전송되는 판독 트랜잭션보다 노드 인터커넥트에 전송되는 판독 트랜잭션과 관련된 대기시간이 상대적으로 길기 때문에, 노드 인터커넥트를 통해 전송되는 판독 트랜잭션의 대기 시간을 줄이는 것이 유용하며 또한 바람직하다.
본 발명은 일반적으로 데이터 처리 방법 및 시스템에 관한 것으로, 특히 비정형 메모리 액세스(non-uniform memory access:NUMA) 데이터 처리 시스템에 관한 것이다. 더 구체적으로, 본 발명은 판독 요청을 원격 메모리에 추론적으로 전송하는 NUMA 데이터 처리 시스템 통신의 NUMA 데이터 처리 시스템 및 방법에 관한 것이다.
도 1은 본 발명에 따른 NUMA 컴퓨터 시스템의 예시적인 실시예를 도시한 도면.
도 2는 도 1에 도시한 노드 컨트롤러의 더 상세한 블록도.
도 3a 및 3b는 소스 처리 노드에서의 판독 요청을 원격 처리 노드에 추론적으로 전송하는 요청 트랜잭션 처리의 예시적인 방법을 도시한 고수준의 논리적인 흐름도.
도 4a 내지 4d는 도 3a 및 3b에 도시한 방법에 따른 예시적인 처리 시나리오를 도시한 도면.
제1 관점에 따라, 본 발명은 컴퓨터 시스템에 있어서, 노드 인터커넥트와, 상기 노드 인터커넥트에 각각 연결된 적어도 하나의 지역 처리 노드 및 원격 처리 노드를 포함하며, 상기 지역 처리 노드는 지역 인터커넥트와, 상기 지역 인터커넥트에 연결된 프로세서 및 시스템 메모리와, 상기 지역 인터커넥트와 상기 노드 인터커넥트 사이에 개재된 노드 컨트롤러를 포함하고, 상기 노드 컨트롤러는 상기 지역 인터커넥트로부터 수신된 요청 트랜잭션을 상기 노드 인터커넥트를 통해 상기 원격 처리 노드에 추론적으로 전송하고, 상기 노드 컨트롤러는 상기 원격 처리 노드로부터 수신된 상기 요청 트랜잭션에 대한 응답을 상기 지역 처리 노드에서의 상기 요청 트랜잭션의 해결에 따라 처리하는 것인 컴퓨터 시스템을 제공한다.
제2 관점에 따라, 본 발명은 적어도 하나의 지역 처리 노드와 원격 처리 노드를 연결하는 노드 인터커넥트(22)를 포함하며, 상기 지역 처리 노드는 지역 인터커넥트와, 상기 지역 인터커넥트에 연결된 프로세서 및 시스템 메모리와, 상기 지역 인터커넥트와 상기 노드 인터커넥트 사이에 개재된 노드 컨트롤러를 포함하는 것인 컴퓨터 시스템에서의 통신 방법에 있어서, 상기 지역 인터커넥트로부터 수신된 요청 트랜잭션을 상기 노드 인터커넥트를 통해 상기 원격 처리 노드에 추론적으로 전송하는 단계와, 상기 지역 처리 노드에서 상기 원격 처리 노드로부터 수신된 상기 요청 트랜잭션에 대한 응답을 상기 지역 처리 노드에서의 상기 요청 트랜잭션의 해결에 따라 처리하는 단계를 포함하는 컴퓨터 시스템에서의 통신 방법을 제공한다.
본 발명의 특징을 나타내는 새로운 특징들이 첨부된 청구의 범위에 기재되어 있다. 그러나, 본 발명의 바람직한 실시예, 목적 및 이점은 다음의 실시예 부분과 첨부된 도면을 참조함으로써 보다 용이하게 이해될 것이다.
시스템 개요
이제 도면을 참조하면, 특히 도 1에는 본 발명에 따른 NUMA 컴퓨터 시스템의 예시적인 실시예가 도시되어 있다. 도시한 실시예는 예컨대, 워크스테이션, 서버 또는 메인프레임 컴퓨터로서 실현될 수 있다. 도시한 바와 같이, NUMA 컴퓨터 시스템(6)은 노드 인터커넥트(22)에 의해 상호 접속된 다수의 처리 노드(8a-8n)(N ≥2)를 포함한다. 처리 노드(8a-8n)는 각각 M(M ≥0)개의 프로세서(10)와, 로컬 인터커넥트(16)와, 메모리 컨트롤러(17)를 통해 액세스되는 시스템 메모리(18)를 포함할 수도 있다. 프로세서(10a-10m)는 바람직하게는 동일하며(반드시 동일한 것은 아님), 뉴욕 아몬크에 소재한 IBM사의 PowerPC™라인의 프로세서들 중의 하나를 포함할 수도 있다. 또한, 각 프로세서(10a-10m)는 레지스터들 외에, 프로그램 명령어들을 실행하는데 이용되는 명령어 흐름 논리 및 실행 유닛들, 일반적으로 프로세서 코어(12)와, 시스템 메모리(18)로부터 관련 프로세서 코어(12)까지 데이터를 이송하는데 이용되는 온-칩 캐시 계층을 포함한다. 각 캐시 계층(14)은 예컨대, 8-32 KB의 저장 용량을 갖는 레벨 1(L1) 캐시와, 1-16 MB의 저장 용량을 갖는 레벨 2(L2) 캐시를 포함할 수도 있다.
또한, 각 처리 노드(8a-8n)는 지역 인터커넥트(16)와 노드 인터커넥트(22) 사이에 연결된 개개의 노드 컨트롤러(20)를 포함한다. 각 노드 컨트롤러(20)는 적어도 두가지 기능을 수행함으로써 원격 처리 노드들(8)을 위한 지역 에이전트로서의 역할을 한다. 첫째로, 각 노드 컨트롤러(20)는 관련 지역 인터커넥트(16)를 감시하며(snoop) 원격 처리 노드들(8)로의 지역 통신 트랜잭션 전송을 용이하게 한다. 둘째로, 각 노드 컨트롤러(20)는 노드 인터커넥트(22) 상의 통신 트랜잭션을 감시하며 관련 지역 인터커넥트(16) 상의 관련 통신 트랜잭션을 지배한다. 각 지역 인터커넥트(16) 상의 통신은 아비터(arbiter)(24)에 의해 제어된다. 아비터(24)는 이하 더 설명되는 바와 같이, 프로세서(10)에서 발생된 버스 요청 신호에 기초하여 지역 인터커넥트(16)에의 액세스를 통제하고, 감시된 지역 인터커넥트(16) 상의 통신 트랜잭션에 대한 일관성 응답을 컴파일(compile)한다.
지역 인터커넥트(16)는 메자닌 버스 브리지(26)를 통해 예컨대, 주변 구성 요소 상호 접속(PCI) 지역 버스로서 구현될 수도 있는 메자닌 버스(30)에 연결된다. 메자닌 버스 브리지(26)는 프로세서(10)가 버스 메모리 및/또는 I/O 주소 공간에 맵핑되는 저장 장치(34)와 I/O 장치(32) 사이의 장치에 직접 액세스할 수도 있는 짧은 대기 시간 경로와, 저장 장치(34)와 I/O 장치(32)가 시스템 메모리(18)에 액세스할 수도 있는 고대역폭 경로를 제공한다. I/O 장치(32)는 예컨대, 표시 장치와, 키보드와, 그래픽 포인터와, 외부 네트워크 또는 부속 장치 접속용 직렬 및 병렬 포트를 포함할 수도 있다. 한편, 저장 장치(34)는 오퍼레이팅 시스템 및 애플리케이션 소프트웨어를 위한 비휘발성 저장 장치를 제공하는 광 또는 자기 디스크를 포함할 수도 있다.
메모리 구성
NUMA 컴퓨터 시스템(6)의 모든 프로세서(10)는 단일한 물리적 메모리 공간을 공유하는데, 이것은 각 물리적 주소가 단지 시스템 메모리들(18) 중 하나의 시스템 메모리 내의 단일 위치에만 관련된다는 것을 의미한다. 따라서, 일반적으로 NUMA 컴퓨터 시스템(6)의 임의의 프로세서(10)에 의해 액세스될 수 있는 시스템 메모리의 모든 내용은 시스템 메모리들(18) 사이에 분할된 것처럼 보여질 수 있다. 예컨대, 4개의 처리 노드(8)를 갖는 본 발명의 예시적인 실시예에 있어서, NUMA 컴퓨터 시스템은 범용 메모리 영역과 예비 영역을 포함하는 16 GB의 물리적 주소 공간을 가질 수도 있다. 범용 메모리 영역은 500 MB의 세그먼트들로 분할되고, 상기 4개의각 처리 노드(8)는 제4 세그먼트마다 할당된다. 대략 2 GB를 포함할 수도 있는 예비 영역은 시스템 제어 및 주변 메모리와, 각 처리 노드(8)에 각각 할당된 I/O 영역을 포함한다.
본 발명에 대한 논의를 위해, 특정 데이터를 시스템 메모리(18)에 저장하는 처리 노드(8)를 그 특정 데이터에 대한 홈 노드라고 하고, 다른 처리 노드(8a-8n)를 그 특정 데이터에 대한 원격 노드라고 한다.
메모리 일관성
각 시스템 메모리(18) 내에 저장된 데이터는 NUMA 컴퓨터 시스템(6) 내의 임의의 프로세서(10)에 의해 요청, 액세스 및 변경될 수 있기 때문에, NUMA 컴퓨터 시스템(6)은 동일한 처리 노드 내의 캐시들간의 일관성뿐만 아니라 상이한 처리 노드들 내의 캐시들간의 일관성을 유지하기 위하여 캐시 일관성 프로토콜을 구현한다. 따라서, NUMA 컴퓨터 시스템(6)은 CC-NUMA 컴퓨터 시스템으로 적당히 분류된다. 구현된 캐시 일관성 프로토콜은 구현 의존적이며, 예컨대, 잘 알려진 메시(Modified, Exclusive, Shared, Invalid:MESI) 프로토콜 또는 그의 변형을 포함할 수도 있다. 이후, 캐시 계층(14) 및 아비터(24)는 노드 컨트롤러(20)가 M, S 및 I 상태를 인정하고 정확성을 위해 E 상태를 M 상태로 합병되는 것으로 간주하는 종래의 메시 프로토콜을 구현한다고 가정할 것이다. 즉, 노드 컨트롤러(20)는 원격 캐시에 의해 독점적으로 보유된 데이터가 변경되고, 그 데이터가 실제로 변경되었는지의 여부를 추정한다.
인터커넥트 구조
지역 인터커넥트(16) 및 노드 인터커넥트(22)는 각각 임의의 버스 기반형 브로드캐스트 구조, 스위치 기반형 브로드캐스트 구조 또는 스위치 기반형 비브로드캐스트 구조로 구현될 수 있다. 그러나, 바람직한 실시예에 있어서, 적어도 하나의 노드 인터커넥트(22)는 IBM사가 개발한 6xx 통신 프로토콜에 의해 통제되는 스위치 기반형 비브로드캐스트 인터커넥트로서 구현된다. 지역 인터커넥트(16) 및 노드 인터커넥트(22)는 분할(split) 트랜잭션을 허용하는데, 이것은 통신 트랜잭션을 포함하는 주소 및 데이터 보유 기간 사이에 고정된 타이밍 관계가 존재하지 않으며, 데이터 패킷이 관련 주소 패킷과 상이하게 배열될 수 있다는 것을 의미한다. 또한, 지역 인터커넥트(16) 및 노드 인터커넥트(22)의 이용은 바람직하게는 통신 트랜잭션을 파이프라이닝함으로써 향상되는데, 그러한 파이프라이닝은 각 수신자로부터의 일관성 응답을 수신하는 이전 통신 트랜잭션을 지배하기 전에 다음 통신 트랜잭션이 소싱(sourcing)되는 것을 허용한다.
구현되는 상기 유형의 인터커넥트 구조와 상관없이, 적어도 3가지 유형의 "패킷"(여기서, 패킷은 일반적으로 정보의 분리 단위로서 사용됨), 즉 주소, 데이터 및 일관성 응답을 이용하여, 처리 노드들(8)간의 정보를 노드 인터커넥트(22)를 통해 전달하고 스누퍼(snooper)들간의 정보를 지역 인터커넥트(16)를 통해 전달한다. 표 1 및 표 2에는 각각 주소 및 데이터 패킷에 대한 관련 필드 및 정의가 간략히 표시되어 있다.
필드명 설명
주소<0:7> 일관성, 기록 스루(thru) 및 보호를 위한 통신 트랜잭션의 속성을 정의하는 변경자
주소<8:15> 통신 트랜잭션 내의 모든 패킷을 식별하기 위한 태그
주소<16:63> 요청에서 물리적, 가상적 또는 I/O 주소를 지시하는 주소 부분
A패리티<0:2> 어드레스 비트<0:63>에 대한 패리티를 지시
T디스크립터 통신 트랜잭션의 크기 및 유형을 지시
필드명 설명
데이터<0:127> 판독 및 기록 트랜잭션용 데이터
데이터 패리티<0:15> 데이터 라인<0:127>에 대한 패리티를 지시
D태그 데이터 패킷을 주소 패킷과 정합시키기 위한 태그
D유효 유효 정보가 데이터 및 D태그 필드에 존재하는 지를 지시
표 1 및 표 2에 표시된 바와 같이, 수신 노드 또는 스누퍼가 각 패킷이 어떤 통신 트랜잭션에 속하는 지를 결정할 수 있도록, 통신 트랜잭션의 각 패킷은 트랜잭션 태그로 식별된다. 당업자는 추가적인 흐름 제어 논리 및 관련 흐름 제어 신호가 한정된 통신 자원의 이용을 통제하는데 이용될 수도 있음을 인식할 것이다.
각 처리 노드(8) 내에서, 각 스누퍼 및 지역 아비터(24)는 서로 간에 상태 및 일관성 응답을 통신한다. 상태 및 일관성 통신을 위한 지역 인터커넥트(16) 내의 신호 라인이 이하 표 3에 간략히 표시되어 있다.
신호명 설명
AStatOut<0:1> 아비터로의 흐름 제어 또는 에러 정보를 지시하기 위해 각 버스 수신기에 의해 확증(assert)된 인코드 신호
AStatIn<0:1> 상기 버스 수신기에 의해 확증된 AStatOut 신호의 집계(tally)에 응답하여 아비터에 의해 확증된 인코드 신호
ARespOut<0:2> 아비터로의 일관성 정보를 지시하기 위해 각 버스 수신기에 의해 확증된 인코드 신호
ARespIn<0:2> 상기 버스 수신기에 의해 확증된 ARespOut 신호의 집계에 응답하여 아비터에 의해 확증된 인코드 신호
지역 인터커넥트(16)의 AResp 및 AStat 라인을 통해 전송되는 상태 및 일관성 응답은 바람직하게는 관련 주소 패킷과 고정된, 그러나 프로그램 가능한 타이밍 관계를갖는다. 예컨대, 각 스누퍼가 지역 인터커넥트(16)에 전송된 주소 패킷을 성공적으로 수신했는 지의 여부를 예비적으로 지시하는 AStatOut 보우트(vote)가 그 주소 패킷에 대한 제2 사이클의 다음 수신에서 요구될 수도 있다. 아비터(24)는 그 AStatOut 보우트를 컴파일한 후, 고정된, 그러나 프로그램 가능한 횟수의 사이클(예컨대, 1 사이클) 후에 AStatIn 보우트를 발행한다. 가능한 AStat 보우트가 이하 표 4에 표시되어 있다.
AStat 보우트 의미
무효(Null) 유휴(idle)
인정(Ack) 트랜잭션이 스누퍼에 의해 수신됨
에러(Error) 패리티 에러가 트랜잭션에서 검출됨
재시도(Retry) 트랜잭션 재시도, 보통 흐름 제어가 원인
AStatIn 기간 다음에, ARespOut 보우트는 고정된, 그러나 프로그램 가능한 횟수의 사이클(예컨대, 2 사이클) 후에 요구될 수도 있다. 또한 아비터(24)는 각 스누퍼의 AStatOut 보우트를 컴파일한 후, 바람직하게는 다음 사이클 동안에 ARespIn 보우트를 전달한다. 가능한 AResp 보우트는 바람직하게는 표 5에 표시된 일관성 응답을 포함한다.
일관성 응답 의미
재시도(Retry) 요청원은 트랜잭션을 재시도해야함, 보통 흐름 제어가 원인
변경 개입(Modified intervention) 캐시 라인이 변경되고 요청자로 소싱될 것임
공유(Shared) 캐시 라인이 공유되어 보유됨
무효(Null) 캐시 라인이 무효임
재실행(ReRun) 감시된 요청이 긴 대기 시간을 가지며 그 요청원이 다음 번에 트랜잭션을 재발행하도록 명령받을 것임
보통 노드 컨트롤러(20)에 의해 발행되는 ReRun AResp 보우트는 감시된 요청이 긴 대기 시간을 가지며 그 요청원이 다음 번에 트랜잭션을 재발행하도록 명령받을 것임을 지시한다. 따라서, Retry AResp 보우트와는 대조로, ReRun은 ReRun을 보우팅한 트랜잭션의 수신자(그 트랜잭션의 발신자가 아님)에게 그 통신 트랜잭션을 다음 번에 재발행시키는 책임을 지운다.
노드 컨트롤러
도 2는 도 1에 도시한 NUMA 컴퓨터 시스템(6)의 노드 컨트롤러(20)의 더 상세한 블록도이다. 도 2에 도시한 바와 같이, 지역 인터커넥트(16)와 노드 인터커넥트(22) 사이에 연결된 각 노드 컨트롤러(20)는 트랜잭션 수신 장치(TRU)(40), 트랜잭션 송신 장치(TSU)(42), 데이터 수신 장치(DRU)(44) 및 데이터 송신 장치(DSU)(46)를 포함한다. TRU(40), TSU(42), DRU(44) 및 DSU(46)는 예컨대, 필드 프로그래머블 게이트 어레이(FPGA) 또는 주문형 집적 회로(ASIC)로 구현될 수 있다. 표시된 바와 같이, 주소 및 데이터 경로는 노드 컨트롤러(20)를 통하여 두 갈래로 나누어져, 주소(및 일관성) 패킷은 TRU(40) 및 TSU(42)에 의해 처리되고, 데이터 패킷은 DRU(44) 및 DSU(46)에 의해 처리된다.
노드 인터커넥트(22)의 트랜잭션 흐름 오프를 지시하도록 지정된 TRU(40)는 노드 인터커넥트(22)로부터 주소 및 일관성 패킷을 수신하고, 지역 인터커넥트(16)에 트랜잭션을 발행하며, 응답을 TSU(42)에 전송하는 책임을 진다. TRU(40)는 응답 멀티플렉서(mux)(52)를 포함하며, 그 응답 멀티플렉서(52)는 노드 인터커넥트(22)로부터 패킷을 수신하여, 선택된 패킷을 버스 마스터(54)와 TSU(42) 내의 일관성 응답 논리 회로(56) 양쪽 모두에 전달한다. 응답 멀티플렉서(52)로부터의 주소 패킷의 수신에 응답하여, 버스 마스터(54)는 그 수신된 주소 패킷이 지시하는 통신트랜잭션의 유형과 동일하거나 다른 통신 트랜잭션을 그의 지역 인터커넥트(16)에 발생시킬 수 있다.
명명법에 의해 지시된 바와 같이, 인터커넥트(22)로 흐르는 트랜잭션에 대한 도관(conduit)인 TSU(42)는 아직 완성되지 않고 노드 인터커넥트(22)로 소싱되는 통신 트랜잭션의 속성을 일시적으로 저장하는 다중 엔트리 펜딩 버퍼(60)를 포함한다. 펜딩 버퍼(60)의 한 엔트리에 저장된 트랜잭션의 속성은 바람직하게는 적어도 트랜잭션의 주소(태그 포함)와, 트랜잭션의 유형과, 기대된 일관성 응답의 수를 포함한다. 각 펜딩 버퍼 엔트리는 관련 상태, 즉 펜딩 버퍼 엔트리가 삭제될 수 있음을 지시하는 Null 상태 또는, 트랜잭션이 여전히 보류 중에 있음을 지시하는 ReRun 상태 중에서 어느 하나로 설정될 수 있는 관련 상태를 갖는다.
TSU(42)는 노드 인터커넥트(22)로 주소 패킷을 소싱하는 것 이외에, TRU(40)와 상호 작용하여 메모리 요청 트랜잭션을 처리하며, DRU(44) 및 DSU(46)에 명령을 발행하여 지역 인터커넥트(16)와 노드 인터커넥트(22)간의 데이터 이동을 제어한다. 또한, TSU(42)는 일관성 응답 논리 회로(56)를 이용하여 노드 인터커넥트(22)를 위한 선택된(즉, MSI) 일관성 프로토콜을 구현하고, 디렉토리 제어 논리 회로(58)를 이용하여 일관성 디렉토리(50)를 유지한다.
일관성 디렉토리(50)는 홈 노드인 지역 처리 노드에 대한 원격 노드들의 캐시들에 체크 아웃된 데이터(예컨대, 캐시 라인)의 시스템 메모리 주소의 표시를 저장한다. 각 캐시 라인에 대한 주소 표시는 캐시 라인의 복사본을 갖는 각 원격 처리 노드의 식별자와 그러한 각 원격 처리 노드에서의 캐시 라인의 일관성 상태와관련되어 저장된다. 일관성 디렉토리(50)의 엔트리에 대한 가능한 일관성 상태가 표 6에 간략히 표시되어 있다.
일관성 디렉토리상태 지역 캐시에서가능한 상태 원격 캐시에서가능한 상태 의미
변경(Modified)(M) I M, E 또는 I 캐시 라인이 홈 노드의 시스템 메모리에 대한 원격 노드에서 변경될 수도 있음
공유(Shared)(S) S 또는 I S 또는 I 캐시 라인이 원격 노드에서 비독점적으로 보유될 수도 있음
무효(Invalid)(I) M, E, S 또는 I I 캐시 라인이 어떠한 원격 노드에 의해서도 보유되지 않음
보류-공유(Pending-shared) S 또는 I S 또는 I 캐시 라인이 원격 노드에서 무효화되는 과정에 있음
보류-변경(Pending-modified) I M, E 또는 I 원격적으로 변경될 수도 있는 캐시 라인이 홈 노드의 시스템 메모리에 재기록되는 과정에 있음, 아마 원격 노드에서 무효화
표 6에 표시된 바와 같이, 원격 처리 노드들에 의해 보유된 캐시 라인의 일관성 상태에 대한 인식이 부정확하다. 이러한 부정확성은 원격적으로 보유된 캐시 라인이 홈 노드의 노드 컨트롤러(20)에게 통지하지 않고 S에서 I로, E에서 I로 또는 E에서 M으로 변화될 수 있다는 사실에 기인한다.
판독 요청 트랜잭션 처리
도 3a 및 3b는 본 발명에 따른 판독 요청 트랜잭션 처리의 예시적인 방법을 도시한 고수준의 논리적인 흐름도이다.
먼저 도 3a를 참조하면, 프로세스는 블록 70에서 시작되어 블록 72로 진행되며, 블록 72에서, 처리 노드(8a)의 프로세서(10a)와 같이 도시된 프로세서(10)는 그의 지역 인터커넥트(16)에 판독 요청을 발행한다. 판독 요청 트랜잭션은 처리 노드(8a)의 지역 인터커넥트(16)에 연결된 노드 컨트롤러(20)와 나머지 스누퍼들에의해 수신된다. 블록 74에 나타낸 바와 같이, 판독 요청 수신에 응답하여, 스누퍼들이 AStatOut 보우트를 제공하면, 그것을 아비터(24)가 컴파일하여 AStatIn 보우트를 발생시킨다. 노드 컨트롤러(20)는 Ack AStatOut 보우트를 제공하기 전에, 판독 요청이 원격 시스템 메모리(18)의 주소를 지정한 경우, 펜딩 버퍼(60)에 판독 엔트리와 기록 제거(write-with-clean) 엔트리 양쪽 모두를 할당한다. 이하 더 논의되는 바와 같이, 노드 컨트롤러(20)는 상기 두 엔트리를 할당함으로써, 판독 요청을 요청된 캐시 라인의 홈 노드에 추론적으로 전송하여, 처리 노드(8a)에서의 다음의 AResp 보우트의 결과에 상관없이 판독 요청에 대한 응답을 정확히 처리할 수 있다.
블록 76을 참조하면, 블록 74에서 발생된 AStatIn 보우트가 재시도(Retry)인 경우, 판독 요청은 본질적으로 소멸되고, 펜딩 버퍼(60)에 할당된 엔트리들은 프리 상태로 되며, 프로세스는 설명된 블록 72로 되돌아간다. 이러한 경우에, 프로세서(10a)는 다음 번에 판독 요청을 재발행해야 한다. 한편, 블록 74에서 발생된 AStatIn 보우트가 재시도가 아닌 경우, 프로세스는 블록 76에서 블록 78로 진행되며, 블록 78에서, 노드 컨트롤러(20)는 메모리 맵을 참조하여 그의 처리 노드(8)가 판독 요청에서 지정된 물리적 주소의 홈 노드인 지의 여부를 결정한다. 그 지역 처리 노드(8)가 판독 요청에 대한 홈 노드인 경우에는, 프로세스는 블록 80으로 진행되나, 그렇지 않은 경우에는, 프로세스는 블록 100으로 진행된다.
블록 80에서, 처리 노드(8a) 내의 스누퍼들이 그들의 ARespOut 보우트를 제공하면, 그 ARespOut 보우트를 아비터(24)가 컴파일하여 ARespIn 보우트를 발생시킨다. 일관성 디렉토리(50)가 판독 요청에서 지정된 주소에 의해 식별된 캐시 라인이 적어도 하나의 원격 처리 노드(8)에 체크 아웃되어 있음을 지시하는 경우에는, 노드 컨트롤러(20)는 판독 요청 서비스가 원격 처리 노드(8)와의 통신을 요구하는 경우, 재실행(ReRun)을 보우팅할 것이다. 예컨대, 일관성 디렉토리(50)가 요청된 캐시 라인이 원격 처리 노드(8)에서 변경되어 있음을 지시하는 경우에는, 판독 요청 서비스는 판독 요청을 그 원격 처리 노드(8)에 전송하는 것을 요구할 것이다. 유사하게, 일관성 디렉토리(50)가 요청된 캐시 라인이 원격 처리 노드(8)에서 공유되어 있음을 지시하는 경우에는, 판독 변경 목적(read-with-intent-modify:RWITM) 요청 서비스는 요청된 캐시 라인의 원격 복사본 또는 복사본들을 무효화하기 위한 Kill 명령을 그 원격 처리 노드(8)에 전송하는 것을 요구할 것이다. 블록 82에서, ARespIn 보우트가 재실행이 아닌 경우에는, 프로세스는 이하 설명될 블록 90으로 진행되나, ARespIn 보우트가 재실행인 경우에는, 프로세스는 블록 84로 진행된다.
블록 84에서, 노드 컨트롤러(20)는 노드 인터커넥트(22)를 통해 적절한 트랜잭션을, 요청된 캐시 라인을 체크 아웃한 하나 또는 그 이상의 원격 처리 노드(8)에 전송한다. 전술한 바와 같이, 그 트랜잭션은 캐시 명령[예컨대, 소멸(Kill)] 또는 판독 요청 트랜잭션 중에 어느 하나일 수도 있다. 노드 컨트롤러(20)가 블록 84에서의 트랜잭션이 전송된 각 원격 처리 노드(8)로부터 응답을 수신할 때까지, 블록 86의 프로세서가 반복된다. 요청된 캐시 라인의 복사본의 수신을 포함할 수도 있는 적절한 횟수의 응답을 수신한 다음에, 노드 컨트롤러(20)는 재실행(ReRun) 요청을 지역 인터커넥트(16)에 전송하여, 요청하는 프로세서(10a)에게 판독 요청을재발행하도록 명령한다. 블록 88에 나타낸 바와 같이, 요청하는 프로세서(10a)는 판독 요청 트랜잭션을 지역 인터커넥트(16)에 재발행하여 재실행 요청에 응답한다. AStat 및 AResp 기간 다음에, 블록 90에서 판독 요청이 제공되어, 노드 컨트롤러(20)가 원격 처리 노드(8)로부터 수신된 요청된 캐시 라인의 복사본을 제공하거나, 또는 처리 노드(8a) 내의 다른 지역 스누퍼[예컨대, 메모리 컨트롤러(17) 또는 캐시 계층(14)]가 요청된 캐시 라인을 소싱한다. 그 후, 프로세스는 블록 150에서 종료된다.
블록 100에서, 처리 노드(8a)의 노드 컨트롤러(20)에 의해, 처리 노드(8a)가 요청된 캐시 라인에 대한 홈 노드가 아니다라고 결정되면, 노드 컨트롤러(20)는 판독 요청 트랜잭션을 요청된 캐시 라인에 대한 홈 노드인 원격 처리 노드(8)에 추론적으로 전송한다. 도 3a에 나타낸 바와 같이, 판독 요청은 적어도 ARespIn 기간과 동시에 노드 컨트롤러(20)에 의해 전송되며, 바람직하게는 ARespOut 기간 전 아비터(24)로부터 AStatIn 보우트를 수신한 다음에 바로 전송된다. 판독 요청이 전송될 때, 펜딩 버퍼(60)의 판독 엔트리의 상태는 재실행(ReRun)으로 갱신된다. 다음, 블록 102에 나타낸 바와 같이, 스누퍼들이 그들의 ARespOut 보우트를 제공하면, 그 ARespOut 보우트를 아비터(24)가 컴파일하여 ARespIn 보우트를 발생시킨다. 그 후, 블록 110 및 그 다음 블록들에 나타낸 바와 같이, 홈 노드는 판독 요청에 대한 응답을 제공하고, 노드 컨트롤러(20)는 처리 노드(8a)에서 판독 요청에 대한 ARespIn 보우트에 따라 상기 응답을 처리한다.
ARespIn 보우트가 재시도(Retry)인 경우에는, 판독 요청은 처리 노드(8a)에서 본질적으로 소멸된다. 따라서, ARespIn 재시도 보우트의 수신에 응답하여, 펜딩 버퍼(60)에 할당된 판독 및 기록 엔트리의 상태는 무효(Null)로 갱신된다. 다음, 프로세스는 블록 110에서 블록 112 및 114로 진행되고, 블록 112 및 114에서, 노드 컨트롤러(20)는 홈 노드로부터 요청된 캐시 라인을 수신하기를 기다리며, 펜딩 버퍼(60)의 판독 엔트리의 무효(Null) 상태에 응답하여 수신된 요청된 캐시 라인을 폐기한다. 다음, 프로세스는 블록 150에서 종료된다.
ARespIn 보우트가 변경 개입(Modified Intervention)인 경우에는, 판독 요청은 홈 노드로부터의 [스테일(stale)] 데이터를 이용하지 않고 처리 노드(8a)에 지역적으로 제공될 수 있다. 따라서, ARespIn 변경 개입 보우트의 수신에 응답하여, 펜딩 버퍼(60)의 판독 엔트리의 상태는 무효(Null)로 갱신되며, 프로세스는 블록 102에서 블록 110 및 120을 통해 블록 122로 진행된다. 블록 122에서, ARespOut 기간 동안에 변경 개입을 보우팅한 스누퍼는 요청된 캐시 라인을 처리 노드(8a)의 지역 인터커넥트(16)에 소싱한다. 요청된 캐시 라인을 소싱한 스누퍼에서 요청된 캐시 라인의 일관성 상태는 변경(Modified)에서 공유(Shared)로 갱신된다. 요청된 캐시 라인의 수신에 응답하여, 블록 124에 나타낸 바와 같이, 요청하는 프로세서(10a)는 요청된 캐시 라인을 그의 캐시 계층(14)에 로드한다. 또한, 블록 126에 나타낸 바와 같이, 노드 컨트롤러(20)는 지역 인터커넥트(16)의 요청된 캐시 라인 오프를 포착하여 그 캐시 라인을 포함하는 기록 제거(write-with-clean) 트랜잭션을 홈 노드에 발행함으로써, 변경된 캐시 라인으로 홈 노드의 시스템 메모리(18)를 갱신한다. 다음, 프로세스는 전술된 블록 112로 진행된다.
컴퓨터 시스템(6)에 의해 구현된 일관성 프로토콜은 선택적으로 공유 개입(Shared Intervention), 즉 요청된 캐시 라인을 공유 상태로 보유하는 지역 캐시 계층(14)에 의한 판독 요청 트랜잭션의 서비스를 지원할 수도 있다. 공유 개입이 컴퓨터 시스템(6)의 캐시 일관성 프로토콜에 의해 지원되고 요청 트랜잭션에 대한 ARespIn 보우트가 공유(즉, 공유 개입)되면, 블록 132에 나타낸 바와 같이, 공유를 보우팅한 스누퍼는 요청된 캐시 라인을 지역 인터커넥트(16)에 소싱한다. 요청된 캐시 라인의 수신에 응답하여, 블록 134에 나타낸 바와 같이, 요청하는 프로세서(10a)는 요청된 캐시 라인을 그의 캐시 계층(14)에 로드한다. 시스템 메모리(18)에 대한 갱신이 요구되지 않으면, 펜딩 버퍼(60)에 할당된 판독 및 기록 엔트리의 상태는 무효(Null)로 갱신되며, 프로세스는 블록 150에서 종료된다.
마지막으로, 처리 노드(8a)에서 요청 트랜잭션에 대한 ARespIn 보우트가 재실행(ReRun)인 경우에는, 펜딩 버퍼(60)의 기록 엔트리의 상태는 무효(Null)로 갱신되고, 판독 엔트리의 상태는 재실행으로 설정된다. 다음, 프로세스는 블록 102에서 블록 110, 120, 130을 통해 블록 142로 진행되며, 처리 노드(8a)의 노드 컨트롤러(20)는 요청된 캐시 라인이 홈 노드로부터 수신될 때까지 기다린다. 노드 인터커넥트(22)를 통해 홈 노드로부터 요청된 캐시 라인의 수신에 응답하여, 블록 144에 나타낸 바와 같이, 노드 컨트롤러(20)는 요청된 캐시 라인을 지역 인터커넥트(16)를 통해 요청하는 프로세서(10a)에 전송한다. 요청된 캐시 라인의 수신에 응답하여, 블록 146에 나타낸 바와 같이, 요청하는 프로세서(10a)는 요청된 캐시 라인을 그의 캐시 계층(14)에 로드한다. 다음, 프로세스는 블록 150에서 종료된다.
도 3b는 홈 노드가 다른 처리 노드로부터 수신된 트랜잭션을 처리하는 방법을 나타내는 고수준의 논리적인 흐름도이다. 도시된 바와 같이, 프로세스는 블록 160에서 시작되어 블록 162로 진행된다. 블록 162에서, 홈 노드가 노드 인터커넥트(22)를 통해 다른 처리 노드로부터 트랜잭션을 수신했는 지의 여부를 결정한다. 만일 그렇지 않다면, 다른 처리 노드(8)로부터 트랜잭션이 수신될 때까지, 프로세스는 단순히 블록 162에서 반복된다. 홈 노드의 노드 컨트롤러(20)가 원격 처리 노드(8)로부터 트랜잭션을 수신하면, 프로세스는 블록 164로 진행되며, 블록 164에서, 홈 노드의 노드 컨트롤러(20)는 블록 162에서 수신된 트랜잭션을 홈 노드의 지역 인터커넥트(16)에 전송한다. 결정 블록 170에 나타낸 바와 같이, 지역 인터커넥트(16)에 발행된 트랜잭션이 판독 트랜잭션이라면, 프로세스는 블록 172로 진행되며, 블록 172에서, 그 판독 요청은 요청된 캐시 라인의 복사본을 홈 노드의 노드 컨트롤러(20)에 제공하는 스누퍼에 의해 서비스된다. 요청된 캐시 라인의 수신에 응답하여, 블록 174에 나타낸 바와 같이, 노드 컨트롤러(20)는 요청된 캐시 라인을 노드 인터커넥트(22)를 통해 요청하는 처리 노드(8)에 전송한다. 그 후, 프로세스는 블록 190에서 종료된다.
블록 164로 되돌아가서, 홈 노드의 지역 인터커넥트(16)에 전송된 트랜잭션이 기록(예컨대, 기록 제거) 트랜잭션이라면, 프로세스는 블록 170 및 180을 통해 블록 184로 진행되며, 블록 184에서, 메모리 컨트롤러(17)는 기록 트랜잭션에 포함된 캐시 라인으로 시스템 메모리(18)를 갱신한다. 다음, 프로세스는 블록 190에서 종료된다. 홈 노드의 지역 인터커넥트(16)에 전송된 트랜잭션이 판독 트랜잭션도아니고 기록 트랜잭션도 아닌 경우에는, 블록 182에서, 홈 노드는 트랜잭션에 의해 지시된 행동을 수행하며, 프로세스는 블록 190에서 종료된다. 판독 또는 기록 트랜잭션과 다른 트랜잭션에 응답하여 수행될 수도 있는 행동에는 예컨대, 홈 노드의 캐시 계층(14)에 보유된 캐시 라인의 일관성 상태를 갱신하는 것이 있다.
도 4a 내지 4d는 본 발명에 따른 예시적인 처리 시나리오를 도시한 도면이다. 예시적인 처리 시나리오를 명확히 설명하기 위해서, 각각 2개의 프로세서(10a, 10b)를 구비한 2개의 처리 노드(8a, 8b)를 포함하는 컴퓨터 시스템(6)으로 간략히 표현하였다. 요청된 캐시 라인의 일관성 상태는 각 프로세서(10)의 캐시 계층과 홈 노드(8a)의 일관성 디렉토리(50) 내에 표시된다.
도 4a에 도시한 바와 같이, 먼저 처리 노드(8b)의 프로세서(10b)는 그의 캐시 계층(14)에서 무효(Invalid)인(즉, 상주하지 않음) 캐시 라인에 대한 판독 요청을 발생한다. 판독 요청의 수신에 응답하여, 처리 노드(8b)의 노드 컨트롤러(20)는 판독 요청을 그 판독 요청에서 지정된 캐시 라인의 홈 노드인 처리 노드(8a)에 추론적으로 전송한다. 판독 요청이 처리 노드(8a)에 추론적으로 전송된 후, 프로세서(10a)는 ARespOut 기간 동안에 변경 개입(Modified Intervention)을 보우팅하는데, 이것은 그의 캐시 계층(14)이 요청된 캐시 라인을 변경 상태로 보유하기 때문이다. 처리 노드(8b)의 아비터는 ARespOut 보우트를 컴파일하여 변경 개입 ARespIn 보우트를 처리 노드(8b)의 각 스누퍼에 제공한다.
다음, 도 4b에 도시한 바와 같이, 처리 노드(8a)의 노드 컨트롤러(20)는 추론적으로 전송된 판독 요청을 수신하여, 그 판독 요청을 그의 지역 인터커넥트(16)에 발행한다. 도 4b에 나타낸 바와 같이, 노드 컨트롤러(20)는 판독 요청에서 지정된 캐시 라인이 처리 노드(8b)에서 변경(Modified)됨을 지시하는 일관성 디렉토리(50)에 응답하여 ARespOut 기간 동안에 무효(Null)를 보우팅한다. 도 4d에 대해 이하 논의되는 바와 같이, 이 특정 조건을 인식한 노드 컨트롤러(20)는 판독 요청이 진행되는 것을 허용한다.
도 4c에 도시한 바와 같이, 판독 요청을 처리 노드(8a)에 추론적으로 전송하는 것과 관계없이(그 전에, 동시에, 또는 그 후에), 처리 노드(8b)의 프로세서(10a)는 요청된 캐시 라인을 지역 인터커넥트(16)로 소싱하고 그의 캐시 계층(14)의 요청된 캐시 라인의 일관성 상태를 공유(Shared)로 갱신함으로써 판독 요청에 응답한다. 요청된 캐시 라인의 감시에 응답하여, 요청하는 프로세서(10b)는 요청된 캐시 라인을 그의 캐시 계층에 로드하고 관련된 일관성 상태를 공유(Shared)로 설정한다. 또한, 처리 노드(8b)의 노드 컨트롤러(20)는 캐시 라인을 포착하고 변경된 캐시 라인을 포함하는 기록 제거 트랜잭션을 처리 노드(8a)에 발행한다. 기록 제거 트랜잭션의 수신에 응답하여, 처리 노드(8a)의 노드 컨트롤러(20)는 기록 제거 트랜잭션을 그의 지역 인터커넥트(16)를 통해 시스템 메모리(18)에 발행한다. 다음, 홈 노드(8a)의 시스템 메모리(18)는 대응하는 메모리 라인을 변경된 데이터로 갱신한다.
도 4a에서 설명된 메모리 갱신에 관계없이(그 전에, 동시에, 또는 그 후에), 처리 노드(8a)의 시스템 메모리(18)는 요청된 캐시 라인의 스테일 가능한 복사본을 지역 인터커넥트(16)를 통해 처리 노드(8a)의 노드 컨트롤러(20)로 소싱함으로써판독 요청에 응답한다. 다음, 처리 노드(8a)의 노드 컨트롤러(20)는 요청된 캐시 라인의 복사본을 처리 노드(8b)의 노드 컨트롤러(20)로 전송하고, 판독 요청이 그의 펜딩 버퍼(60)에서 무효(Null)로 마킹되는 것에 응답하여 그 캐시 라인을 폐기한다.
전술된 바와 같이, 본 발명은 향상된 NUMA 컴퓨터 시스템과, NUMA 컴퓨터 시스템에서의 향상된 통신 방법을 제공한다. 본 발명에 따라, 판독 요청 트랜잭션은 노드 인터커넥트를 통해 원격(즉, 홈) 처리 노드에 추론적으로 발행되는데, 이는 그 판독 요청이 원격 처리 노드의 개입없이 지역적으로 서비스될 수 있는 지의 여부를 결정하기 전에 행해진다. 원격 처리 노드가 추론적으로 전송된 판독 요청에 응답할 때, 요청하는 처리 노드는 그 판독 요청에 대한 지역 일관성 응답에 따라 상기 응답을 처리한다. 이러한 방식으로, 통신 트랜잭션의 대기 시간을 상당히 줄일 수 있다.
또한, 전술된 바와 같이, 본 발명은 노드 인터커넥트에 각각 연결된 적어도 하나의 지역 처리 노드 및 원격 처리 노드를 포함하는 NUMA 컴퓨터 시스템을 제공한다. 지역 처리 노드는 지역 인터커넥트와, 지역 인터커넥트에 연결된 프로세서 및 시스템 메모리와, 지역 인터커넥트와 노드 인터커넥트 사이에 개재된 노드 컨트롤러를 포함한다. 노드 컨트롤러는 지역 인터커넥트로부터 판독 요청을 수신하여, 그 판독 요청을 노드 인터커넥트를 통해 원격 처리 노드에 추론적으로 전송한다. 그 후, 노드 컨트롤러는 원격 처리 노드로부터 판독 요청에 대한 응답을 수신하여, 지역 처리 노드에서의 판독 요청의 해결에 따라 그 응답을 처리한다. 예컨대, 하나의 처리 시나리오에 있어서, 판독 요청이 지역 처리 노드에서 변경 개입 일관성 응답을 수신한 경우에는 원격 처리 노드로부터 수신된 응답에 포함된 데이터는 노드 컨트롤러에 의해 폐기된다.

Claims (12)

  1. 컴퓨터 시스템에 있어서,
    노드 인터커넥트와,
    상기 노드 인터커넥트에 각각 연결된 적어도 하나의 지역 처리 노드 및 원격 처리 노드를 포함하며,
    상기 지역 처리 노드는 지역 인터커넥트와, 상기 지역 인터커넥트에 연결된 프로세서 및 시스템 메모리와, 상기 지역 인터커넥트와 상기 노드 인터커넥트 사이에 개재된 노드 컨트롤러를 포함하고,
    상기 노드 컨트롤러는 상기 지역 인터커넥트로부터 수신된 요청 트랜잭션을 상기 노드 인터커넥트를 통해 상기 원격 처리 노드에 추론적으로 전송하고,
    상기 노드 컨트롤러는 상기 원격 처리 노드로부터 수신된 상기 요청 트랜잭션에 대한 응답을 상기 지역 처리 노드에서의 상기 요청 트랜잭션의 해결에 따라 처리하는 것인 컴퓨터 시스템.
  2. 제1항에 있어서,
    상기 원격 처리 노드는 지역 인터커넥트와, 상기 노드 인터커넥트와 상기 지역 인터커넥트 사이에 개재된 노드 컨트롤러를 더 포함하며,
    상기 원격 처리 노드의 상기 노드 컨트롤러는 상기 추론적으로 전송된 요청 트랜잭션을 수신하여, 상기 추론적으로 전송된 요청 트랜잭션을 상기 원격 처리 노드의 상기 지역 인터커넥트에 발행하는 것인 컴퓨터 시스템.
  3. 제1항에 있어서,
    제3 처리 노드를 더 포함하며,
    상기 요청 트랜잭션은 주소를 포함하고,
    상기 제1 처리 노드의 상기 노드 컨트롤러는 적어도 부분적으로 상기 요청 트랜잭션에 포함된 상기 주소에 응답하여 상기 추론적으로 전송된 요청 트랜잭션의 목표 처리 노드를 결정하는 것인 컴퓨터 시스템.
  4. 제1항에 있어서,
    상기 지역 처리 노드의 상기 노드 컨트롤러는 상기 요청 트랜잭션이 상기 지역 처리 노드에서 변경 또는 공유 개입 일관성 응답을 수신하는 경우 상기 요청 트랜잭션에 응답하여 상기 원격 처리 노드로부터 수신된 데이터를 폐기하는 것인 컴퓨터 시스템.
  5. 제1항에 있어서,
    상기 원격 처리 노드는 시스템 메모리를 포함하며,
    상기 지역 처리 노드의 상기 노드 컨트롤러는 상기 요청 트랜잭션이 상기 원격 처리 노드의 상기 시스템 메모리와 관련된 주소를 지정한다는 결정에 응답하여 상기 요청 트랜잭션을 상기 원격 처리 노드에 추론적으로 전송하는 것인 컴퓨터 시스템.
  6. 제1항에 있어서,
    상기 지역 처리 노드의 상기 노드 컨트롤러는 상기 요청 트랜잭션이 상기 요청 트랜잭션은 지역적으로 서비스될 수 없음을 지시하는 상기 지역 처리 노드에서 일관성 응답을 수신하는 경우 상기 원격 처리 노드로부터 수신된 데이터를 상기 지역 처리 노드의 상기 지역 인터커넥트로 소싱하는 것인 컴퓨터 시스템.
  7. 적어도 하나의 지역 처리 노드와 원격 처리 노드를 연결하는 노드 인터커넥트(22)를 포함하며, 상기 지역 처리 노드는 지역 인터커넥트와, 상기 지역 인터커넥트에 연결된 프로세서 및 시스템 메모리와, 상기 지역 인터커넥트와 상기 노드 인터커넥트 사이에 개재된 노드 컨트롤러를 포함하는 것인 컴퓨터 시스템에서의 통신 방법에 있어서,
    상기 지역 인터커넥트로부터 수신된 요청 트랜잭션을 상기 노드 인터커넥트를 통해 상기 원격 처리 노드에 추론적으로 전송하는 단계와,
    상기 지역 처리 노드에서 상기 원격 처리 노드로부터 수신된 상기 요청 트랜잭션에 대한 응답을 상기 지역 처리 노드에서의 상기 요청 트랜잭션의 해결에 따라 처리하는 단계를 포함하는 컴퓨터 시스템에서의 통신 방법.
  8. 제7항에 있어서,
    상기 원격 처리 노드에서 상기 추론적으로 전송된 요청 트랜잭션을 수신하여, 상기 추론적으로 전송된 요청 트랜잭션을 상기 원격 처리 노드의 지역 인터커넥트에 발행하는 단계를 더 포함하는 컴퓨터 시스템에서의 통신 방법.
  9. 제7항에 있어서,
    상기 컴퓨터 시스템은 제3 처리 노드를 더 포함하고, 상기 요청 트랜잭션은 주소를 포함하며,
    상기 통신 방법은 적어도 부분적으로 상기 요청 트랜잭션에 포함된 상기 주소에 응답하여 상기 추론적으로 전송된 요청 트랜잭션의 목표 처리 노드를 결정하는 단계를 더 포함하는 컴퓨터 시스템에서의 통신 방법.
  10. 제7항에 있어서,
    상기 응답을 처리하는 단계는 상기 요청 트랜잭션이 상기 지역 처리 노드에서 변경 또는 공유 개입 일관성 응답을 수신하는 경우 상기 원격 처리 노드로부터 수신된 데이터를 폐기하는 단계를 포함하는 것인 컴퓨터 시스템에서의 통신 방법.
  11. 제7항에 있어서,
    상기 원격 처리 노드는 시스템 메모리를 포함하며,
    요청 트랜잭션을 추론적으로 전송하는 단계는 상기 요청 트랜잭션이 상기 원격 처리 노드의 상기 시스템 메모리와 관련된 주소를 지정한다는 결정에 응답하여상기 요청 트랜잭션을 상기 원격 처리 노드에 추론적으로 전송하는 단계를 포함하는 것인 컴퓨터 시스템에서의 통신 방법.
  12. 제7항에 있어서,
    상기 응답을 처리하는 단계는 상기 요청 트랜잭션이 상기 요청 트랜잭션은 지역적으로 서비스될 수 없음을 지시하는 상기 지역 처리 노드에서 일관성 응답을 수신하는 경우 상기 원격 처리 노드로부터 수신된 데이터를 상기 지역 처리 노드의 상기 지역 인터커넥트로 소싱하는 단계를 포함하는 것인 컴퓨터 시스템에서의 통신 방법.
KR10-2001-7007362A 1998-12-15 1999-12-10 판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템 및 이 시스템에서의 통신 방법 KR100465583B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/211,351 US6338122B1 (en) 1998-12-15 1998-12-15 Non-uniform memory access (NUMA) data processing system that speculatively forwards a read request to a remote processing node
US09/211,351 1998-12-15

Publications (2)

Publication Number Publication Date
KR20010101193A true KR20010101193A (ko) 2001-11-14
KR100465583B1 KR100465583B1 (ko) 2005-01-13

Family

ID=22786571

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-7007362A KR100465583B1 (ko) 1998-12-15 1999-12-10 판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템 및 이 시스템에서의 통신 방법

Country Status (16)

Country Link
US (1) US6338122B1 (ko)
EP (1) EP1153349B1 (ko)
KR (1) KR100465583B1 (ko)
CN (1) CN1157659C (ko)
AT (1) ATE236431T1 (ko)
AU (1) AU1672500A (ko)
CA (1) CA2349569C (ko)
CZ (1) CZ20012153A3 (ko)
DE (1) DE69906585T2 (ko)
ES (1) ES2196893T3 (ko)
HU (1) HUP0104577A3 (ko)
IL (2) IL142265A0 (ko)
PL (1) PL348859A1 (ko)
RU (1) RU2220444C2 (ko)
TW (1) TW446883B (ko)
WO (1) WO2000036514A1 (ko)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69806812T2 (de) * 1997-12-19 2003-03-13 Unilever Nv Olivenöl enthaltende nahrungsmittelzusammensetzung
US6546429B1 (en) * 1998-09-21 2003-04-08 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that holds and reissues requests at a target processing node in response to a retry
US6591307B1 (en) * 1999-11-09 2003-07-08 International Business Machines Corporation Multi-node data processing system and method of queue management in which a queued operation is speculatively cancelled in response to a partial combined response
JP2001167077A (ja) * 1999-12-09 2001-06-22 Nec Kofu Ltd ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体
US8635410B1 (en) 2000-07-20 2014-01-21 Silicon Graphics International, Corp. System and method for removing data from processor caches in a distributed multi-processor computer system
US6678798B1 (en) * 2000-07-20 2004-01-13 Silicon Graphics, Inc. System and method for reducing memory latency during read requests
US6915387B1 (en) 2000-07-20 2005-07-05 Silicon Graphics, Inc. System and method for handling updates to memory in a distributed shared memory system
US6938128B1 (en) 2000-07-20 2005-08-30 Silicon Graphics, Inc. System and method for reducing memory latency during read requests
US6810467B1 (en) * 2000-08-21 2004-10-26 Intel Corporation Method and apparatus for centralized snoop filtering
US20020078118A1 (en) * 2000-12-19 2002-06-20 Cone Robert W. Network interface application specific integrated circuit to allow direct attachment for an appliance,such as a printer device
US7234029B2 (en) * 2000-12-28 2007-06-19 Intel Corporation Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US6799217B2 (en) * 2001-06-04 2004-09-28 Fujitsu Limited Shared memory multiprocessor expansion port for multi-node systems
US7206879B2 (en) * 2001-11-20 2007-04-17 Broadcom Corporation Systems using mix of packet, coherent, and noncoherent traffic to optimize transmission between systems
US7394823B2 (en) * 2001-11-20 2008-07-01 Broadcom Corporation System having configurable interfaces for flexible system configurations
US6748479B2 (en) 2001-11-20 2004-06-08 Broadcom Corporation System having interfaces and switch that separates coherent and packet traffic
EP1316891B1 (de) * 2001-12-03 2007-10-10 Infineon Technologies AG Datenübertragungseinrichtung
US6959372B1 (en) * 2002-02-19 2005-10-25 Cogent Chipware Inc. Processor cluster architecture and associated parallel processing methods
US7085866B1 (en) * 2002-02-19 2006-08-01 Hobson Richard F Hierarchical bus structure and memory access protocol for multiprocessor systems
US7107409B2 (en) * 2002-03-22 2006-09-12 Newisys, Inc. Methods and apparatus for speculative probing at a request cluster
US7103725B2 (en) * 2002-03-22 2006-09-05 Newisys, Inc. Methods and apparatus for speculative probing with early completion and delayed request
US7107408B2 (en) * 2002-03-22 2006-09-12 Newisys, Inc. Methods and apparatus for speculative probing with early completion and early request
US7395379B2 (en) * 2002-05-13 2008-07-01 Newisys, Inc. Methods and apparatus for responding to a request cluster
US7653790B2 (en) * 2002-05-13 2010-01-26 Glasco David B Methods and apparatus for responding to a request cluster
US6965973B2 (en) * 2002-05-15 2005-11-15 Broadcom Corporation Remote line directory which covers subset of shareable CC-NUMA memory space
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
US7003631B2 (en) * 2002-05-15 2006-02-21 Broadcom Corporation System having address-based intranode coherency and data-based internode coherency
US6993631B2 (en) * 2002-05-15 2006-01-31 Broadcom Corporation L2 cache maintaining local ownership of remote coherency blocks
US7155525B2 (en) * 2002-05-28 2006-12-26 Newisys, Inc. Transaction management in systems having multiple multi-processor clusters
US7103636B2 (en) * 2002-05-28 2006-09-05 Newisys, Inc. Methods and apparatus for speculative probing of a remote cluster
US7251698B2 (en) * 2002-05-28 2007-07-31 Newisys, Inc. Address space management in systems having multiple multi-processor clusters
US6865595B2 (en) * 2002-05-28 2005-03-08 Newisys, Inc. Methods and apparatus for speculative probing of a remote cluster
US7281055B2 (en) * 2002-05-28 2007-10-09 Newisys, Inc. Routing mechanisms in systems having multiple multi-processor clusters
US6959364B2 (en) * 2002-06-28 2005-10-25 Intel Corporation Partially inclusive snoop filter
US7003633B2 (en) * 2002-11-04 2006-02-21 Newisys, Inc. Methods and apparatus for managing probe requests
US7296121B2 (en) * 2002-11-04 2007-11-13 Newisys, Inc. Reducing probe traffic in multiprocessor systems
US7346744B1 (en) 2002-11-04 2008-03-18 Newisys, Inc. Methods and apparatus for maintaining remote cluster state information
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7577755B2 (en) * 2002-11-19 2009-08-18 Newisys, Inc. Methods and apparatus for distributing system management signals
EP1426866A1 (en) * 2002-12-06 2004-06-09 Sun Microsystems, Inc. A method to reduce memory latencies by performing two levels of speculation
US7111128B2 (en) 2002-12-19 2006-09-19 Intel Corporation Hierarchical virtual model of a cache hierarchy in a multiprocessor system
US7917646B2 (en) * 2002-12-19 2011-03-29 Intel Corporation Speculative distributed conflict resolution for a cache coherency protocol
US7334089B2 (en) * 2003-05-20 2008-02-19 Newisys, Inc. Methods and apparatus for providing cache state information
US7386626B2 (en) * 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US7337279B2 (en) * 2003-06-27 2008-02-26 Newisys, Inc. Methods and apparatus for sending targeted probes
US7577727B2 (en) * 2003-06-27 2009-08-18 Newisys, Inc. Dynamic multiple cluster system reconfiguration
US7117419B2 (en) * 2003-08-05 2006-10-03 Newisys, Inc. Reliable communication between multi-processor clusters of multi-cluster computer systems
US7103823B2 (en) 2003-08-05 2006-09-05 Newisys, Inc. Communication between multi-processor clusters of multi-cluster computer systems
US7395347B2 (en) * 2003-08-05 2008-07-01 Newisys, Inc, Communication between and within multi-processor clusters of multi-cluster computer systems
US7159137B2 (en) * 2003-08-05 2007-01-02 Newisys, Inc. Synchronized communication between multi-processor clusters of multi-cluster computer systems
US20050262250A1 (en) * 2004-04-27 2005-11-24 Batson Brannon J Messaging protocol
US7822929B2 (en) * 2004-04-27 2010-10-26 Intel Corporation Two-hop cache coherency protocol
US20050240734A1 (en) * 2004-04-27 2005-10-27 Batson Brannon J Cache coherence protocol
US7395381B2 (en) * 2005-03-18 2008-07-01 Intel Corporation Method and an apparatus to reduce network utilization in a multiprocessor system
US8037465B2 (en) * 2005-09-30 2011-10-11 Intel Corporation Thread-data affinity optimization using compiler
US20110004732A1 (en) * 2007-06-06 2011-01-06 3Leaf Networks, Inc. DMA in Distributed Shared Memory System
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
JP5553111B2 (ja) * 2010-09-02 2014-07-16 富士通株式会社 ノードコントローラ、ノードコントローラの制御方法及びコンピュータシステム
US8635412B1 (en) 2010-09-09 2014-01-21 Western Digital Technologies, Inc. Inter-processor communication
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9158670B1 (en) 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
WO2012149812A1 (zh) * 2011-10-27 2012-11-08 华为技术有限公司 一种防止节点控制器死锁的方法及节点控制器
WO2013154549A1 (en) 2012-04-11 2013-10-17 Hewlett-Packard Development Company, L.P. Prioritized conflict handling in a system
US9465740B2 (en) 2013-04-11 2016-10-11 Apple Inc. Coherence processing with pre-kill mechanism to avoid duplicated transaction identifiers
US9561469B2 (en) * 2014-03-24 2017-02-07 Johnson Matthey Public Limited Company Catalyst for treating exhaust gas
FR3021773B1 (fr) * 2014-05-27 2017-10-06 Bull Sas Interrogation speculative en memoire centrale d'un systeme multiprocesseur
US9658963B2 (en) * 2014-12-23 2017-05-23 Intel Corporation Speculative reads in buffered memory
US10642780B2 (en) 2016-03-07 2020-05-05 Mellanox Technologies, Ltd. Atomic access to object pool over RDMA transport network
US10552367B2 (en) 2017-07-26 2020-02-04 Mellanox Technologies, Ltd. Network data transactions using posted and non-posted operations
US10613980B2 (en) * 2017-12-19 2020-04-07 International Business Machines Corporation Coherence protocol providing speculative coherence response to directory probe
US10579527B2 (en) 2018-01-17 2020-03-03 International Business Machines Corporation Remote node broadcast of requests in a multinode data processing system
US10387310B2 (en) 2018-01-17 2019-08-20 International Business Machines Corporation Remote node broadcast of requests in a multinode data processing system
US10713169B2 (en) 2018-01-17 2020-07-14 International Business Machines Corporation Remote node broadcast of requests in a multinode data processing system
GR20180100189A (el) * 2018-05-03 2020-01-22 Arm Limited Δικτυο επεξεργασιας δεδομενων με συμπυκνωση ροης για μεταφορα δεδομενων μεσω streaming
US11068407B2 (en) 2018-10-26 2021-07-20 International Business Machines Corporation Synchronized access to data in shared memory by protecting the load target address of a load-reserve instruction
US10884740B2 (en) 2018-11-08 2021-01-05 International Business Machines Corporation Synchronized access to data in shared memory by resolving conflicting accesses by co-located hardware threads
US11119781B2 (en) 2018-12-11 2021-09-14 International Business Machines Corporation Synchronized access to data in shared memory by protecting the load target address of a fronting load
US11106608B1 (en) 2020-06-22 2021-08-31 International Business Machines Corporation Synchronizing access to shared memory by extending protection for a target address of a store-conditional request
US11693776B2 (en) 2021-06-18 2023-07-04 International Business Machines Corporation Variable protection window extension for a target address of a store-conditional request

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02205963A (ja) 1989-01-27 1990-08-15 Digital Equip Corp <Dec> 読取中断処理
JPH06282528A (ja) 1993-01-29 1994-10-07 Internatl Business Mach Corp <Ibm> データ転送方法及びそのシステム
US5958019A (en) * 1996-07-01 1999-09-28 Sun Microsystems, Inc. Multiprocessing system configured to perform synchronization operations
US5950226A (en) * 1996-07-01 1999-09-07 Sun Microsystems, Inc. Multiprocessing system employing a three-hop communication protocol
US5878268A (en) 1996-07-01 1999-03-02 Sun Microsystems, Inc. Multiprocessing system configured to store coherency state within multiple subnodes of a processing node
US5892970A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. Multiprocessing system configured to perform efficient block copy operations
US5754877A (en) * 1996-07-02 1998-05-19 Sun Microsystems, Inc. Extended symmetrical multiprocessor architecture

Also Published As

Publication number Publication date
PL348859A1 (en) 2002-06-17
AU1672500A (en) 2000-07-03
CA2349569C (en) 2005-04-05
CZ20012153A3 (cs) 2001-09-12
EP1153349A1 (en) 2001-11-14
HUP0104577A2 (hu) 2002-03-28
ATE236431T1 (de) 2003-04-15
IL142265A0 (en) 2002-03-10
DE69906585T2 (de) 2004-02-12
CN1330783A (zh) 2002-01-09
WO2000036514A1 (en) 2000-06-22
CN1157659C (zh) 2004-07-14
KR100465583B1 (ko) 2005-01-13
EP1153349B1 (en) 2003-04-02
RU2220444C2 (ru) 2003-12-27
IL142265A (en) 2007-06-03
DE69906585D1 (de) 2003-05-08
HUP0104577A3 (en) 2003-11-28
US6338122B1 (en) 2002-01-08
CA2349569A1 (en) 2000-06-22
TW446883B (en) 2001-07-21
ES2196893T3 (es) 2003-12-16

Similar Documents

Publication Publication Date Title
KR100465583B1 (ko) 판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템 및 이 시스템에서의 통신 방법
KR100308323B1 (ko) 공유된 개입 지원을 가지는 비균등 메모리 액세스 데이터처리 시스템
US6115804A (en) Non-uniform memory access (NUMA) data processing system that permits multiple caches to concurrently hold data in a recent state from which data can be sourced by shared intervention
US6631448B2 (en) Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
US6546429B1 (en) Non-uniform memory access (NUMA) data processing system that holds and reissues requests at a target processing node in response to a retry
US6067603A (en) Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect
KR100324975B1 (ko) 잠재적인 제3 노드 트랜잭션을 버퍼에 기록하여 통신 대기시간을 감소시키는 비균일 메모리 액세스(numa) 데이터 프로세싱 시스템
US6055605A (en) Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches
JP3629511B2 (ja) 不均等メモリ・アクセス・システムにおいてトランザクションのキャンセルによるデータ損失を避けるための方法およびシステム
US6266743B1 (en) Method and system for providing an eviction protocol within a non-uniform memory access system
US6920532B2 (en) Cache coherence directory eviction mechanisms for modified copies of memory lines in multiprocessor systems
KR20000022712A (ko) 노드 상호 접속망 상에서 요구를 예측 방식으로 발행하는 비균일 메모리 액세스 데이터 처리 시스템
US6934814B2 (en) Cache coherence directory eviction mechanisms in multiprocessor systems which maintain transaction ordering
US6925536B2 (en) Cache coherence directory eviction mechanisms for unmodified copies of memory lines in multiprocessor systems
US6085293A (en) Non-uniform memory access (NUMA) data processing system that decreases latency by expediting rerun requests
US7395380B2 (en) Selective snooping by snoop masters to locate updated data
US10489292B2 (en) Ownership tracking updates across multiple simultaneous operations

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee