KR100318104B1 - 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템 - Google Patents

공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템 Download PDF

Info

Publication number
KR100318104B1
KR100318104B1 KR1020000003994A KR20000003994A KR100318104B1 KR 100318104 B1 KR100318104 B1 KR 100318104B1 KR 1020000003994 A KR1020000003994 A KR 1020000003994A KR 20000003994 A KR20000003994 A KR 20000003994A KR 100318104 B1 KR100318104 B1 KR 100318104B1
Authority
KR
South Korea
Prior art keywords
node
cache
cacheline
cache layer
interconnect
Prior art date
Application number
KR1020000003994A
Other languages
English (en)
Other versions
KR20000076539A (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 KR20000076539A publication Critical patent/KR20000076539A/ko
Application granted granted Critical
Publication of KR100318104B1 publication Critical patent/KR100318104B1/ko

Links

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61FFILTERS IMPLANTABLE INTO BLOOD VESSELS; PROSTHESES; DEVICES PROVIDING PATENCY TO, OR PREVENTING COLLAPSING OF, TUBULAR STRUCTURES OF THE BODY, e.g. STENTS; ORTHOPAEDIC, NURSING OR CONTRACEPTIVE DEVICES; FOMENTATION; TREATMENT OR PROTECTION OF EYES OR EARS; BANDAGES, DRESSINGS OR ABSORBENT PADS; FIRST-AID KITS
    • A61F13/00Bandages or dressings; Absorbent pads
    • A61F13/15Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators
    • A61F13/51Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the outer layers
    • A61F13/511Topsheet, i.e. the permeable cover or layer facing the skin
    • A61F13/51104Topsheet, i.e. the permeable cover or layer facing the skin the top sheet having a three-dimensional cross-section, e.g. corrugations, embossments, recesses or projections
    • A61F13/51108Topsheet, i.e. the permeable cover or layer facing the skin the top sheet having a three-dimensional cross-section, e.g. corrugations, embossments, recesses or projections the top sheet having corrugations or embossments having one axis relatively longer than the other axis, e.g. forming channels or grooves in a longitudinal direction
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61FFILTERS IMPLANTABLE INTO BLOOD VESSELS; PROSTHESES; DEVICES PROVIDING PATENCY TO, OR PREVENTING COLLAPSING OF, TUBULAR STRUCTURES OF THE BODY, e.g. STENTS; ORTHOPAEDIC, NURSING OR CONTRACEPTIVE DEVICES; FOMENTATION; TREATMENT OR PROTECTION OF EYES OR EARS; BANDAGES, DRESSINGS OR ABSORBENT PADS; FIRST-AID KITS
    • A61F13/00Bandages or dressings; Absorbent pads
    • A61F13/15Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators
    • A61F13/51Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the outer layers
    • A61F13/511Topsheet, i.e. the permeable cover or layer facing the skin
    • A61F13/512Topsheet, i.e. the permeable cover or layer facing the skin characterised by its apertures, e.g. perforations
    • A61F13/5123Topsheet, i.e. the permeable cover or layer facing the skin characterised by its apertures, e.g. perforations the apertures being formed on a multilayer top sheet
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61FFILTERS IMPLANTABLE INTO BLOOD VESSELS; PROSTHESES; DEVICES PROVIDING PATENCY TO, OR PREVENTING COLLAPSING OF, TUBULAR STRUCTURES OF THE BODY, e.g. STENTS; ORTHOPAEDIC, NURSING OR CONTRACEPTIVE DEVICES; FOMENTATION; TREATMENT OR PROTECTION OF EYES OR EARS; BANDAGES, DRESSINGS OR ABSORBENT PADS; FIRST-AID KITS
    • A61F13/00Bandages or dressings; Absorbent pads
    • A61F13/15Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators
    • A61F13/51Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the outer layers
    • A61F13/511Topsheet, i.e. the permeable cover or layer facing the skin
    • A61F13/51121Topsheet, i.e. the permeable cover or layer facing the skin characterised by the material
    • A61F2013/51147Topsheet, i.e. the permeable cover or layer facing the skin characterised by the material being polymeric films
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61FFILTERS IMPLANTABLE INTO BLOOD VESSELS; PROSTHESES; DEVICES PROVIDING PATENCY TO, OR PREVENTING COLLAPSING OF, TUBULAR STRUCTURES OF THE BODY, e.g. STENTS; ORTHOPAEDIC, NURSING OR CONTRACEPTIVE DEVICES; FOMENTATION; TREATMENT OR PROTECTION OF EYES OR EARS; BANDAGES, DRESSINGS OR ABSORBENT PADS; FIRST-AID KITS
    • A61F13/00Bandages or dressings; Absorbent pads
    • A61F13/15Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators
    • A61F13/53Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the absorbing medium
    • A61F2013/530007Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the absorbing medium being made from pulp
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture

Landscapes

  • Health & Medical Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Vascular Medicine (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Epidemiology (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

비균등 메모리 접근 (NUMA) 컴퓨터 시스템은 노드 인터커넥트에 각각 접속된 제 1 및 제 2 처리노드를 포함한다. 제 1 처리노드는 로컬 인터커넥트에 의한 통신용으로 접속된 제 1 및 제 2 캐시계층을 각각 가지는 제 1 및 제 2 프로세서와 시스템 메모리를 포함한다. 제 2 처리노드는 제 3 캐시계층을 가지는 제 3 프로세서와 시스템 메모리를 포함한다. 제 1 캐시계층과 제 3 캐시계층은 특정 캐시라인의 비변경된 카피 (copy) 를 최근 (Recent) 상태로 동시에 기억하고, 그로부터 그 특정 캐시라인의 카피를 공유 인터벤션에 의해 소오스시킬 수 있도록 한다. 제 2 캐시계층에 의한 특정 캐시라인에 대한 요청에 응답하여, 제 1 캐시계층은 노드 인터커넥트에 관한 통신없이 로컬 인터커넥트만에 관한 통신을 이용하여 공유 인터벤션에 의해 그 특정 캐시라인의 카피를 제 2 캐시계층으로 소오스한다.

Description

공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리 시스템{NON-UNIFORM MEMORY ACCESS (NUMA) DATA PROCESSING SYSTEM HAVING SHARED INTERVENTION SUPPORT}
본 출원은 본 출원에 참조된 다음의 동시 출원중인 특허출원과 관련된다.
(1) 1997년 4월 14일자로 출원된 미국특허출원번호 제 08/837,516호, 'Method of Shared Intervention for Cashe Lines in Shared State for an SMP Bus'
(2) 1998년 2월 17일자로 출원된 미국특허출원번호 제 09/024,307호, 'Cashe Coherency Protocol with Global and Local Recently Read States'
(3) 1997년 12월 17일자로 출원된 미국특허출원번호 제 09/213,997호(Attorney Docket No. AT9-98-163), 'Non-Uniform Memory Access (NUMA) DATA Processing system Having Shared Intervention Support'
본 발명은 일반적으로 데이터 처리 방법 및 데이터 처리시스템에 관한 것으로, 특히, 비균등메모리 접근 (NUMA) 데이터처리 시스템에서의 데이터 처리에 관한 것이다. 또한, 본 발명은 NUMA 데이터 처리시스템 및 NUMA 데이터 처리시스템에서 공유 인터벤션 (shared intervention) 에 의해 요청되어진 데이터를 제공하는 방법에 관한 것이다.
컴퓨터 분야에서는, 여러개의 개별 프로세서의 처리능력을 병렬로 하네싱 (harnessing) 함으로써, 컴퓨터 시스템 성능을 더욱 향상시키는 것이 알려져 있다. 다중 프로세서 (MP) 컴퓨터 시스템은 여러가지 다른 토플로지로 설계할 수 있으며, 그들 중에서 여러가지 토플로지를 각 애플리케이션의 소프트웨어 환경과 성능조건에 따라서 특정 애플리케이션에 알맞게 적합하게 할 수 있다. 가장 일반적인 MP 컴퓨터 토플로지들중의 하나가, 통상 공유 시스템 인터커넥트에 접속되는 시스템 메모리 및 입출력 (I/O) 서브 시스템 등의 자원을 다중 프로세서가 고유하는 대칭형 다중 처리 (SMP) 구성방식이다. 이러한 컴퓨터 시스템은, SMP 컴퓨터 시스템내의 모든 프로세서가 이상적으로 공유된 시스템 메모리에 기억되어 있는 데이터에 대해 동일한 접근 대기시간을 갖기 때문에, 대칭적 이라 한다.
SMP 컴퓨터 시스템은 비교적 간단한 프로세서간 통신과 데이터 공유방식을 이용할 수 있지만, SMP 컴퓨터 시스템은 크기에 제한이 있다. 즉, 통상의 SMP 컴퓨터 시스템의 성능이 크기에 따라 (즉, 더 많은 프로세서의 부가에 따라) 향상될 것으로 예상되지만, 고유 버스, 메모리, 및 입출력 (I/O) 대역폭 제한이, 이들 자원의 이용이 최적되는, 구현에 의존하는 크기 (implementation-dependent size) 를 초과하여, SMP 를 크게 하여 얻을 수 있는 많은 이점들을 취할 수 없게 한다. 따라서, SMP 토플로지 자체는, 시스템 크기가 증대함에 따라, 대역폭 제한에 의해 어느 정도까지, 특히 시스템 메모리에서는, 불리하다. 또한, SMP 컴퓨터 시스템은 제조효율성의 측면에서 크기를 크게 할 수 없다. 예를들어, 일부 컴포넌트를 단일 프로세서 (uniprocessor) 와 소형 SMP 컴퓨터 시스템 양자에 사용할 수 있도록 최적화시킬 수는 있지만, 종종 이들 컴포넌트들을 대형 SMP 에 사용하기에는 불충분하다. 이와 반대로, 대형 SMP 용으로 설계된 컴포넌트를 소형 시스템에 사용하는 것은 비용 측면에서 비실용적이다.
그 결과, 많은 SMP 컴퓨터 시스템의 제한을 조금의 부가적인 복잡성을 이용하여, 해결하는 대안으로서, 비균등 메모리접근 (NUMA) 이라 불리는 MP 컴퓨터 시스템 토플로지가 대두하고 있다. 일반적인 NUMA 컴퓨터 시스템은 하나이상의 프로세서와 로컬 '시스템' 메모리를 각각 포함하는 다수의 상호접속된 노드들을 포함하고 있다. 이러한 컴퓨터 시스템은, 각 프로세서가 리모트 노드에 있는 시스템 메모리에 기억된 데이터에 비해 로컬 노드에 있는 시스템 메모리에 기억된 데이터에 대해 더 낮은 접근 대기시간을 갖기 때문에, 비균등 메모리 접근을 가진다라고 한다. 또한, NUMA 시스템은 다른 노드에서 캐시들간에 데이터 일관성을 유지할 수 있는지의 여부에 따라, 비일관성 (non-coherent) 와 캐시-일관성으로 더 분류할 수 있다. 캐시 일관성 NUMA (CC-NUMA) 시스템의 복잡성은, 하드웨어가 각 노드내의 시스템 메모리와 캐시 메모리의 여러 레벨간 뿐만아니라, 다른 노드들에서의 시스템 메모리와 캐시 메모리간에 데이터 일관성을 유지하는데 요하는 부가적인 통신에 크게 기인한다. 그러나, NUMA 컴퓨터 시스템은, NUMA 컴퓨터 시스템내의 각 노드를 더 작은 SMP 시스템으로 구현할 수 있기 때문에, 종래 SMP 컴퓨터 시스템의 크기 제한을 해결할 수 있다. 따라서, 각 노드내의 공유 컴포넌트를 단지 소수의 프로세서로만 사용하기에 최적화시킬수 있으며, 비교적 낮은 대기시간을 유지하면서 대형 병행처리의 유용성에 이점이 있다.
CC-NUMA 컴퓨터 시스템에 관련된 주요 성능은 노드들을 접속하는 인터커넥트를 통해 전송된 통신 트랜잭션에 관한 대기시간이다. 좀더 자세히 설명하면, 독출유형 트랜잭션은, 지금까지 가장 일반적인 트랜잭션 유형으로서, 리모트 시스템 메모리에 있는 데이터에 접근할 때, 로컬 시스템 메모리에 있는 데이터에 접근하는 트랜잭션을 독출하는 것에 비해, 2배의 대기시간을 가질 수 있다. 로컬 인터커넥트상의 독출 트랜잭션에 비해, 노드의 인터커넥트에 전송되는 독출 트랜잭션에 관련되는 비교적 높은 대기시간 때문에, 노드의 인터커넥트를 통해 전송되도록 요구되는 독출유형 트랜잭션의 수를 줄이면서도, 그러한 리모트 독출유형 트랜잭션의 대기시간을 줄이는 것이 유용하면서도 바람직하다.
따라서, 본 발명에 따르면, 비균등 메모리 접근 (NUMA) 컴퓨터 시스템에 공유 인터벤션을 지원함으로써, 독출 요청의 수와 대기시간을 감소시킨다. 본 발명에 따른 NUMA 컴퓨터 시스템은 적어도 노드 인터커넥트에 각각 접속된 제 1 및 제 2 처리노드를 포함한다. 제 1 처리노드는 시스템 메모리, 및 로컬 인터커넥트에 의한 통신용으로 접속된 제 1 및 제 2 캐시계층의 각 계층을 각각 가지는 제 1 및 제 2 프로세서를 포함한다. 제 2 처리노드는 적어도 시스템 메모리, 및 제 3 캐시 계층을 갖는 제 3 프로세서를 포함한다. 제 1 캐시 계층 및 제 3 캐시 계층은 특정 캐시 라인의 비변경된 카피 (copy) 를 최근(Recent) 일관성 상태로 동시에 기억하고, 그로부터 그 특정 캐시라인의 카피를 공유 인터벤션에 의해 소오스할 수 있다. 제 2 캐시 계층에 의한 특정 캐시 라인에 대한 요청에 응답하여, 제 1 캐시 계층은, 노드 인터커넥트에 대한 통신 없이 단지 로컬 인터커넥트에 대한 통신을 이용하는 공유 인터벤션에 의해, 그 특정 캐시 라인의 카피를 제 2 캐시 계층으로 소오스한다.
다음의 상세한 설명을 통하여, 본 발명의 모든 목적, 특징, 및 이점을 살펴보기로 한다.
도 1 은 본 발명에 따른 NUMA 컴퓨터 시스템의 예시적인 실시예를 나타낸 도면.
도 2 는 도 1 에 나타낸 노드 제어기의 상세한 블럭도.
※ 도면의 주요부분에 대한 부호의 설명
6 : NUMA 컴퓨터 시스템 8a~8n : 처리노드
10 : 프로세서 12 : 프로세서 코어
14 : 캐시 계층 16 : 로컬 인터커넥트
17 : 메모리 컨트롤러 18 : 시스템 메모리
20 : 노드 컨트롤러 22 : 노드 인터커넥트
24 : 아비터 (arbiter) 26 : 메자닌 버스 브릿지
30 : 메자닌 버스 32 : I/O 장치
34 : 기억장치 40 : 트랜잭션 수신부
42 : 트랜잭션 전송부 44 : 데이터 수신부
46 : 데이터 전송부 50 : 일관성 디렉토리
52 : 응답 멀티플렉서 54 : 버스 마스터
56 : 일관성 응답 로직 58 : 디렉토리 제어로직
60 : 보류 버퍼 (pending buffer)
시스템 개요
이하, 도면, 특히 도 1 을 참조하면, 본 발명에 따른 NUMA 컴퓨터 시스템의 예시적인 실시예가 도시되어 있다. 이 도시된 실시예는, 예를들어, 워크스테이션, 서버, 또는 메인프레임 컴퓨터로 구현할 수 있다. 도시된 바와 같이, NUMA 컴퓨터 시스템 (6) 은 노드 인터커넥트 (22) 에 의해 상호 접속된 다수 (N≥2) 의 처리노드 (8a-8n) 를 포함한다. 처리노드 (8a-8n) 는 M 개 (M≥0) 의 프로세서 (10), 로컬 인터커넥트 (16), 및 메모리 컨트롤러 (17) 를 통해 접근할 수 있는 시스템 메모리 (18) 를 각각 포함할 수 있다. 프로세서 (10a-10m) 는 (필수적이지는 않지만) 동일한 것이 바람직하며, 미국 뉴욕주 아몬크 소재의 IBM 사로부터 입수할 수 있는 프로세서들중에서 파워피시 (PowerPC) 계열의 프로세서를 포함할 수도 있다. 레지스터와 함께, 프로그램 명령을 실행하는데 이용되는 명령 플로우 로직 및 실행부는 일반적으로 프로세서 코어 (12) 로 표시되며, 각 프로세서 (10a-10m) 도 시스템 메모리 (18) 로부터 해당 프로세서 코어 (12) 로 데이터를 스테이지(stage) 하는데 이용되는 온-칩 (on-chip) 캐시 계층을 포함한다. 각 캐시 계층 (14) 은 적어도 한 캐시 레벨을 포함하며, 예를들어, 8 ~ 32 킬로바이트 (kB) 와 1 ~ 16 메가바이트 (MB) 사이의 기억용량을 각각 가지는 레벨 1 (L1) 캐시와 레벨 2 (L2) 캐시를 포함할 수 있다. 종래와 같이, 이들 캐시들은 특히, 선택된 캐시라인의 교체 방식과 일관성 프로토콜을 구현하는 캐시 컨트롤러에 의해 관리된다. 본 발명에서는, 각 프로세서 (10) 및 그 해당 캐시 계층 (14) 은 단일 스누퍼 (snooper) 인 것으로 가정한다.
각 처리노드 (8a-8n) 는 로컬 인터커넥트 (16) 와 노드 인터커넥트 (22) 사이에 접속된 개별 노드 컨트롤러 (20) 를 더 포함한다. 각 노드 컨트롤러 (20) 는, 적어도 2가지 기능을 수행함으로써, 리모트 처리노드 (8) 에 대한 로컬 에이전트 (local agent) 로 기능한다. 첫째, 각 노드 컨트롤러 (20) 는 해당 로컬 인터커넥트 (16) 를 스누퍼하여, 리모트 처리노드 (8) 로의 로컬 통신 트랜잭션 (예를들면, 독출유형 요청) 의 전송을 용이하게 한다. 둘째, 각 노드 컨트롤러 (20) 는 노드 인터커넥트 (22) 상의 통신 트랜잭션을 스누퍼하여, 해당 로컬 인터커넥트 (16) 에 대한 해당 트랜잭션을 마스터한다. 각 로컬 인터커넥트 (16) 상의 통신은 아비터 (24; arbiter) 에 의해 제어된다. 아비터 (24) 는, 이하 더욱 자세히 설명한 바와 같이, 프로세서 (10) 에 의해 발생된 버스 요청신호에 기초하여 로컬 인터커넥트 (16) 로의 접근을 조정하고, 로컬 인터커넥트 (16) 상의 스누퍼한 통신 트랜잭션에 대한 일관성 응답을 컴파일한다.
로컬 인터커넥트 (16) 는 메자닌 (mezanine) 버스 브릿지 (26) 를 통하여 메자닌 버스 (30) 에 접속되며, 이 버스는 예를들어, PCI (Peripheral Component Interconnect) 로컬 버스로 구현할 수도 있다. 메자닌 버스 브릿지 (26) 는 프로세서 (10) 가 I/O 장치 (32) 들중의 장치와 버스 메모리 및/또는 I/O 어드레스 공간으로 맵핑된 기억 장치 (34) 에 직접 접근할 수 있는 낮은 대기시간 경로와, I/O 장치 (32) 및 기억장치 (34) 가 시스템 메모리 (18) 에 접근할 수 있는 높은 대기시간 경로, 양자를 제공한다. I/O 장치 (32) 는 예를들면, 디스플레이 장치, 키보드, 그래픽 포인터, 및 외부 네트워크 또는 부착된 장치에 접속하기 위한 직렬 및 병렬 포트를 포함할 수도 있다. 한편, 기억장치 (34) 는 운영체제와 응용 소프트웨어에 비휘발 기억을 제공하는 광디스크 또는 자기 디스크를 포함할 수도 있다.
메모리 구성
NUMA 컴퓨터 시스템 (6) 내의 모든 프로세서 (10) 는 하나의 물리적인 메모리 공간을 공유하기 때문에, 각 물리적 어드레스가 시스템 메모리 (18) 들중의 한 메모리내의 하나의 위치에만 관련됨을 의미한다. 따라서, NUMA 컴퓨터 시스템 (6) 내의 임의의 프로세서 (10) 에 의해 접근될 수 있는 시스템 메모리의 전체 내용 (contents) 이 시스템 메모리 (18) 들간에 파티션된 것으로 간주되게 된다. 예를들면, 4개의 처리노드 (8) 를 갖는 본 발명의 예시적인 실시예에서, NUMA 컴퓨터 시스템은 범용 메모리 영역과 예비영역을 양자를 포함한, 16 기가비트 (GB) 의 물리적인 어드레스 공간을 가질 수 있다. 범용 메모리 영역은500 MB 세그먼트로 분할되어, 그 4개의 세그먼트에 4개의 처리노드 (8) 의 각 노드가 하나씩 할당된다. 예비영역은, 약 2GB 를 포함할 수 있으며, 시스템 제어 및 주변 메모리와, 처리노드 (8) 의 각 노드에 각각 할당되는 I/O 영역을 포함한다.
이의 설명을 위해, 특정 데이터를 시스템 메모리 (18) 에 기억하는 처리노드 (8) 를 그 데이터에 대한 홈 노드 (home node) 라 하고, 이와 반대로, 나머지 처리노드 (8a-8n) 를 그 특정 데이터에 대한 리모트 노드라 한다.
메모리 일관성 (memory coherency)
NUMA 컴퓨터 시스템 (6) 내의 어떠한 프로세서 (10) 에 의해서도, 각 시스템 메모리 (18) 내에 기억된 데이터를 요청, 접근 및 변경할 수 있기 때문에, NUMA 컴퓨터 시스템 (6) 은 동일 처리노드내의 캐시들간과, 다른 처리노드내의 캐시들간 양자에 일관성을 유지하기 위하여, 캐시 일관성 프로토콜을 구현한다. 따라서, 이 NUMA 컴퓨터 시스템 (6) 은 당연히 CC-NUMA 컴퓨터 시스템에 속한다. 구현되는 특정 캐시 일관성 프로토콜은 구현 의존형이나, 본 발명의 바람직한 실시예는 상술한 동시 계류중인 출원에 자세히 설명되어 있는 바와 같이, 공지의 변경(modified), 독점(exclusive), 공유(shared), 무효(invalid) (MESI) 프로토콜에 다번째 R (Recent) 상태를 포함하는 변형 프로토콜로 이루어진다. 이하 자세히 설명되어 있는 바와 같이, 이 R 상태는 하나의 캐시로 하여금, 독출유형 요청 (예를들면, 독출 (READ) 또는 RWITM (Read-with-Intent-to-Modify))에 응답하여 캐시 라인을 또다른 캐시에 직접 소오스하기 위해 공유될 수 있는 비변경된캐시 라인을 유지할 수 있도록 한다.
이하, 캐시 계층 (14) 과 아비터 (24) 가 종래의 R-MESI 프로토콜을 구현하고, 그 중에서 M, S 및 I 상태를 노드 컨트롤러 (20) 가 인식하는 것으로 가정하고, E상태는 M 상태에 병합되고, R상태는 S상태에 병합되는 것으로 가정하기로 한다. 즉, 노드 컨트롤러 (20) 는 리모트 캐시에 의해 배타적으로 유지된 데이터가 변경되었는지, 데이터가 실제로 변경되었는지의 여부를 추정하고, 리모트에 유지된 데이터에 대하여 S상태와 R상태간의 식별을 하지 않는다.
인터커넥트 아키텍쳐
로컬 인터커넥트 (16) 및 노드 인터커넥트 (22) 는 어떠한 버스-기반의 브로드캐스트 아키텍쳐, 스위치-기반의 브로드캐스트 아키텍쳐, 또는 스위치-기반의 비-브로드캐스트 아키텍쳐로 구현할 수 있다. 그러나, 바람직한 실시예에서, 적어도 노드 인터커넥트 (22) 는 IBM 사에 의해 개발된 6xx 통신 프로토콜에 의해 지배되는 스위치-기반의 비-브로드캐스트 인터커넥트로서 구현한다. 로컬 인터커넥트 (16) 및 노드 인터커넥트 (22) 는 스플릿 트랜잭션이 가능하며, 이는 통신 트랜잭션을 구성하는 데이터와 어드레스 보유기간 사이에 고정된 타이밍 관계가 존재하지 않고, 데이터 패킷이 해당 어드레스 패킷과 다르게 정해질 수 있음을 의미한다. 또한, 통신 트랜잭션을 파이프라인화함으로써, 로컬 인터커넥트 (16) 와 노드 인터커넥트 (22) 의 이용을 바람직하게 향상시킬 수 있어, 각 수신측으로부터 일관성 응답을 수신하는 이전의 통신 트랜잭션의 마스터에 앞서, 후속 통신 트랜잭션을 소오스시킬 수 있다.
노드 인터커넥트 (22) 를 통한 처리노드 (8) 들간 및 로컬 인터커넥트 (16) 를 통한 스누퍼들간에 정보를 이송하는데, 구현되어질 인터커넥트 아키텍쳐의 유형 또는 유형들에 무관하게, 적어도 3가지 '패킷' 유형 (여기서는 패킷은 일반적으로 정보의 분리단위 (discrete units) 를 지칭한다), 즉, 어드레스, 데이터, 및 일관성 응답을 이용한다. 표 1 및 표 2 를 참조하면, 어드레스 및 데이터 패킷에 대한 해당 필드와 정의의 개요가 각각 주어져 있다.
표 1 및 표 2 에 나타낸 바와 같이, 각 패킷이 귀속할 통신 트랜잭션을 수신측 노드 또는 스누퍼가 결정할 수 있도록 하기 위해, 통신 트랜잭션내의 각 패킷을 트랜잭션 태그에 의해 식별한다. 당업자는, 제한된 통신자원의 이용을 조정하는데, 부가적인 흐름제어 로직 및 해당 흐름제어 신호를 이용할 수 있음을 알 수 있다.
각 처리노드 (8) 내에서, 상태와 일관성 응답은 각 스누퍼와 로컬 아비터 (24) 사이에 통신된다. 상태와 일관성 통신용으로 이용되는 로컬 인터커넥트 (16) 내의 신호라인이 하기 표 3 에 요약되어 있다.
로컬 인터커넥트 (16) 의 AResp 및 AStat 라인을 통하여 전송되는 상태와 일관성 응답은 해당 어드레스 패킷들과는 고정되지만 프로그램 가능한 타이밍 관계를 가지는 것이 바람직하다. 예를들면, 로컬 인터커넥트 (16) 상에 전송된 어드레스 패킷을 각 스누퍼가 성공적으로 수신하였는지의 여부의 서두 표시 (preliminary indication) 를 제공하는 AStatOut 보트는, 어드레스 패킷의 수신에 뒤이어, 두번째 싸이클에서 요청될 수도 있다. 아비터 (24) 는 AStatOut 보트를 컴파일한 후, 그 AStatIn 보트를 고정되지만 프로그램가능한 싸이클 수 (예를들면, 1싸이클) 로 발한다. 가능한 AStat 보트가 하기 표 4 에 요약되어 있다.
AStatIn 기간에 뒤이어, ARespOut 보트가 고정되지만 프로그램가능한 싸이클 수 (예를들면, 2싸이클) 로 요청될 수 있다. 또, 아비터 (24) 는 각 스누퍼의 ARespOut 보트를 컴파일하여, 바람직하기로는, 후속 싸이클 동안에 ARespIn 보트를 전달한다. 가능한 ARespOut 보트는 이러한 ARespOut 보트를 내림차순으로 나열한 표 5 의 일관성 응답을 포함하는 것이 바람직하다.
재실행 (ReRun) AResp 보트는, 통상 노드 컨트롤러 (20) 에 의해 발해지며, 스누퍼된 요청이 긴 대기시간을 가짐 (예를들면, 리모트 처리노드 (8) 에서 프로세서 (10) 또는 시스템 메모리 (18) 에 의한 요청을 서비스함) 을 의미하고, 또 요청의 소오스가 이후에 트랜잭션을 다시 발하도록 명령받음을 의미한다. 따라서, 재시도 (Retry) AResp 보트와는 반대로, 재실행은 재실행을 보트하는 트랜잭션의 수신측 (그러나, 트랜잭션의 오리지네이터 (originator) 는 아님) 으로 하여금 추후 다시 통신 트랜잭션을 발하도록 한다.
노드 컨트롤러
도 2 를 참조하면, 도 1 의 NUMA 컴퓨터 시스템 (6) 의 노드 컨트롤러 (20) 를 좀더 자세하게 나타낸 블럭도가 도시되어 있다. 도 2 에 도시된 바와 같이, 각 노드 컨트롤러 (20) 는 로컬 인터커넥트 (16) 와 노드 인터커넥트 (22) 의 사이에 접속되어 있으며, 트랜잭션 수신부 (TRU) (40), 트랜잭션 전송부 (TSU)(42), 데이터 수신부 (DRU) (44), 및 데이터 전송부 (DSU) (46) 를 포함한다. TRU (40), TSU (42), DRU (44) 및 DSU (46) 는 예를들면, 필드 프로그램가능한 게이트 어레이 (FPGAs) 또는 주문형 반도체 (ASICs) 로 구현할 수도 있다. 도시된 바와 같이, 노드 컨트롤러 (20) 를 경유하는 어드레스 경로 및 데이터 경로는 분기되어 있으며, 어드레스 (및 일관성) 패킷은 TRU (40) 및 TSU (42) 에 의해 처리되고, 데이터 패킷은 DSU (44) 및 DRU (46) 에 의해 처리된다.
TRU (40) 는, 노드 인터커넥트 (22) 의 트랜잭션 흐름 차단 (flow off) 을 지시하는 역할을 하며, 노드 인터커넥트 (22) 로부터 어드레스 및 일관성 패킷을 받아, 로컬 인터커넥트 (16) 에 트랜잭션을 발하고, 응답을 TSU (42) 로 보낸다. TRU (40) 는 응답 멀티플렉서 (MUX) (52) 를 포함하고, 노드 인터커넥트 (22) 로부터 패킷을 수신하고, 선택된 패킷을 TSU (42) 내의 버스 마스터 (54) 및 일관성 응답 로직 (56) 으로 보낸다. 응답 멀티플렉서 (52) 로부터의 어드레스 패킷의 수신에 응답하여, 버스 마스터 (54) 는 수신된 어드레스 패킷에 의해 지시되는 통신 트랜잭션의 유형과 동일하거나 다른, 그 로컬 인터커넥트 (16) 상의 통신 트랜잭션을 시작할 수 있다.
TSU (42) 는, 그 용어가 나타내는 바와 같이, 노드 인터커넥트 (22) 로 흘러가는 트랜잭션용 관으로, 아직 완료하지 않은, 노드 인터커넥트 (22) 상으로 소오스되는 통신 트랜잭션의 속성을 일시 기억하는 다중 엔트리 보류버퍼 (multiple-entry pending buffer; 60) 를 포함한다. 보류버퍼 (60) 의 엔트리에 기억되는 트랜잭션 속성은 적어도 (태그를 포함한) 트랜잭션 어드레스, 트랜잭션 유형, 및 예상 일관성 응답의 갯수를 포함하는 것이 바람직하다. 각 보류버퍼 엔트리는 관련 상태를 가지며, 그 보류버퍼 엔트리가 삭제될 수 있음을 나타내는 Null, 또는, 트랜잭션이 여전히 진행중에 있음을 나타내는 ReRun 으로 설정될 수 있다. 노드 인터커넥트 (22) 로 어드레스 패킷을 제공하는 것에 더하여, TSU (42) 는 TRU (40) 과 연동하여, 로컬 인터커넥트 (16) 와 노드 인터커넥트 (22) 간의 데이터 전송을 제어하기 위하여, 메모리 요청 트랜잭션을 처리하여, 명령을 DRU (44) 및 DSU (46) 에 발한다. 또, TSU (42) 는 일관성 응답 로직 (56) 에 의해 노드 인터커넥트 (22) 에 대해 선택된 (즉, MSI) 일관성 프로토콜을 구현하고, 디렉토리 제어 로직 (58) 에 의해 일관성 디렉토리 (50) 를 유지한다.
일관성 디렉토리 (50) 는 로컬 처리노드가 홈노드인 리모트 노드의 캐시에 체크-아웃된 데이터 (예를들면, 캐시라인) 의 시스템 메모리 어드레스의 표시를 기억한다. 각 캐시라인에 대한 어드레스 표시는, 그 캐시라인의 카피를 가지는 각각의 리모트 처리노드의 식별자 (identifier) 와 각각의 그 리모트 처리노드에서의 캐시라인의 일관성 상태와 결합하여, 기억된다. 일관성 디렉토리 (50) 내의 엔트리에 대해 가능한 일관성 상태가 표 6 에 요약되어 있다.
표 6 에 나타낸 바와 같이, 리모트 처리노드에 의해 유지되는 캐시라인의 일관성 상태의 정보는 부정확하다. 이러한 부정확은, 리모트에 유지된 캐시라인이 홈 노드의 노드 컨트롤러 (20) 에 통지되지 않고 R, S 또는 E 로부터 I로, 또는 E로부터 M으로, 변화될 수 있다는 사실에 기인한다.
공유 인터벤션 개요
프로세서 독출유형 요청의 대기시간을 줄이기 위하여, 본 발명은 공유 인터벤션, 즉, 독출유형 요청에 응답하여 데이터를 비변경 (즉, E 또는 R) 상태로 유지하고 있는 캐시에 의한 데이터의 제공 (sourcing) 을 지원한다. NUMA 컴퓨터 시스템 (6) 내의 다중 캐시는 동일한 비변경된 캐시 라인을 동시에 유지할 수도 있기 때문에, 어느 캐시가 그 요청된 캐시라인을 공유 인터벤션에 의해 제공할것인지를 조정할 소정의 메카니즘이 필요하게 된다. 위에서 동시계류중인 출원에 개시된 바와 같이, 그 메카니즘은 R (Recent) 캐시 일관성 상태이다. 본 발명에 따르면, 특정 처리노드 (8) 에서 단지 하나의 캐시 계층 (14) 만이 어느 한순간에 특정 캐시라인을 R상태로 유지할 수 있으나, 다중 처리노드 (8) 에서 캐시 계층 (14) 이 동일 캐시라인을 R상태로 동시에 유지할 수 있다.
본 발명은 모든 독출 (READ) 트랜잭션에 응답하여 R상태 또는 E상태로 유지되는 캐시라인의 공유 인터벤션을 지원하며, RWITM 트랜잭션에 응답하여 E상태로 유지되는 캐시라인의 공유 인터벤션을 지원한다. RWITM 트랜잭션에 응답하여 R상태로 유지되는 캐시라인의 공유 인터벤션은, 그러한 RWITM 트랜잭션이 일관성을 유지하기 위하여 모든 처리노드 (8) 를 감시하여야 하기 때문에, 디스에이블되는 것이 바람직하다. RWITM 트랜잭션에 의해 요청된 R상태 캐시라인에 대한 공유 인터벤션의 디스에이블이 없게 되면, 로컬로 서비스된 RWITM 트랜잭션을 공유 인터벤션을 통하여 다른 처리노드 (8) 에 알리는데, 부가적인 트랜잭션 오버헤드를 요할 수 있으며, 이러한 부가적인 트랜잭션 오버헤드는, 만약 제거되지 않게 되면, 공유 인터벤션의 수행 이점을 크게 감소시킬 수 있다.
캐시 계층 요청시의 요청된 캐시라인의 일관성 상태
RWITM 트랜잭션을 이용하여 요청된 캐시라인의 수신에 응답하여, 요청하는 캐시 계층 (14) 은 그 캐시라인을 항상 변경된 상태로 기억한다. 그러나, 독출 트랜잭션에 응답하여 얻은 캐시라인의 일관성 상태는 그 요청된 캐시라인의 소오스에 의존한다. 아래의 표 7 은 캐시라인을 요청하는 독출 트랜잭션을발한 후 독출 오류가 나타나는 캐시계층 (14) 에서의 상태 변화를 요약한 것이다.
여기에 나타낸 바와 같이, 캐시계층 (14) 이 ARespIn 공유 일관성 보트를 수신하면, 캐시계층 (14) 의 캐시 컨트롤러는 동일 처리노드 (8) 내에 다른 스누퍼가 그 요청된 캐시라인을 R상태 또는 M상태로 유지하고 있지 않는 것으로 '인식하고', 그 요청된 캐시라인이 로컬 시스템 메모리 (18) 또는 리모트 시스템 메모리 (18) 에 의해 노드 컨트롤러 (20) 를 통하여 제공될 것인지를 '인식한다'. 따라서, 요청하는 캐시계층 (14) 이 그 요청된 캐시라인을 로컬 인터커넥트 (16) 를 통하여 수신하는 경우에는, 캐시계층 (14) 의 캐시 컨트롤러는 그 요청된 캐시라인을 캐시한 후, 그 일관성 상태를, 그 요청된 캐시라인을 유지하는 다중 로컬 캐시계층 (14) 의 최근 으로 설정하고, 이는 그 요청하는 캐시 계층 (14) 이 공유 인터벤션에 의해 그 요청된 캐시라인을 소오스하는 것을 담당함을 의미한다.
그 요청하는 캐시라인 (14) 이 독출 요청에 응답하여 ARespIn 널 일관성보트를 수신하면, 요청하는 캐시계층 (14) 의 캐시 컨트롤러는 어느 로컬 캐시계층 (14) 도 그 요청된 캐시라인의 카피를 기억하고 있지 않고 그 요청된 캐시라인이 노드 컨트롤러 (20) 를 통하여 로컬 시스템 메모리 (18) 또는 리모트 시스템 메모리에 의해 소오스될 수 있을 것임을 '인식한다'. 그 요청된 캐시라인이 요청하는 캐시계층 (14) 에 의해 수신되면, 그 요청된 캐시 라인은 독점 상태로 캐시된다.
그 요청하는 캐시계층 (14) 이 ARespIn 공유 인터벤션 또는 변경된 인터벤션 보트를 수신하면, 요청하는 프로세서 (10) 측의 캐시 컨트롤러는 그 요청된 캐시라인이 동일 처리노드 (10) 내의 또다른 스누퍼에 의해 소오스될 것임을 인식하며, 그 요청된 캐시라인의 수신하자 마자, R상태로 기억한다.
캐시계층 스누핑시의 요청된 캐시라인의 일관성 상태
RWITM 트랜잭션을 스누핑하는 캐시계층 (14) 은 항상, 만약에 있으면, 그 요청된 캐시라인의 카피의 일관성 상태를 무효 상태로 업데이트한다. 바람직한 실시예에 따른, 독출의 수신에 응답하여 스누핑하는 캐시계층 (14) 의 상태변화가 하기 표 8 에 요약되어 있다.
표 8 에 나타낸 바와 같이, 캐시계층 (14) 이 독출 요청을 스누핑하여 독점 상태 또는 최근 상태중의 한 상태로 그 요청된 캐시라인을 유지하는 경우, 그 스누핑하는 캐시계층 (14) 은 공유 인터벤션 ARespOut 보트를 제공하고, 아비터 (24) 로부터 공유 인터벤션 ARespIn 보트의 수신에 응답하여 로컬 인터커넥트 (16) 상의 그 요청된 캐시라인을 소오스하며, 그 요청된 캐시라인 카피의 일관성 상태를 공유 상태로 업데이트한다. 이와 유사하게, 캐시계층 (14) 이 로컬 프로세서 (10) 에 의해 발해진 독출 요청을 스누핑하여 그 요청된 캐시라인을 변경 상태로 유지하는 경우에는, 그 스누핑하는 캐시계층 (14) 은 변경 인터벤션 ARespOut 보트를 제공하고, 그 변경 인터벤션 ARespIn 보트의 수신에 응답하여 로컬 인터커넥트 (16) 상의 그 요청된 캐시라인을 소오스하며, 그 요청된 캐시라인의 카피의 일관성 상태를 공유상태로 업데이트한다. 한편, 스누핑하는 캐시계층 (14) 이 요청된 캐시라인을 공유 또는 무효 상태로 유지하는 경우, 그 스누핑하는 캐시계층 (14) 는 적당한 ARespOut 보트 (즉, 공유 또는 널) 를 각각 제공하고, 그 요청된 캐시라인을 소오스하지 않는다.
표 7 및 8 에 나타내지 않은 상태들과 동작들에 대해서는, 종래 기술의 MESI 프로토콜에 따라서 캐시계층 (14) 의 일관성 응답과 일관성 상태 변화를 처리하고, 최근 상태를 공유 상태와 유사하게 처리한다.
노드 컨트롤러의 일관성 프로토콜 동작
공유 인터벤션을 인에이블시키는 독출유형 트랜잭션에 응답하는 노드 컨트롤러 (20) 의 일관성 동작은 그 요청하는 캐시계층 (14) 의 위치 (location) 와그 요청된 캐시라인의 홈 노드에 관계된 노드 컨트롤러 (20) 에 의존한다.
일반적으로, NUMA 컴퓨터 시스템에서는 다음의 4가지 다른 요청 시나리오가 가능하다.
(1) 홈 노드의 프로세서에 의한 요청이 홈 노드의 노드 컨트롤러에 의해 수신된다;
(2) 리모트 노드의 프로세서에 의한 요청이 그 요청된 캐시라인의 홈 노드의 노드 컨트롤러에 의해 수신된다;
(3) (캐시라인에 대한) 리모트 노드의 프로세서에 의한 요청이 그 프로세서 자신의 노드의 노드 컨트롤러에 의해 수신된다; 및
(4) 리모트 노드의 프로세서에 의한 요청이 리모트 노드의 노드 컨트롤러에 의해 수신된다.
하기 표 9 는 독출 트랜잭션의 수신에 응답하는 위에서 나열한 첫번째 시나리오에서의 노드 컨트롤러의 동작을 요약한 것이다. 표에 나타낸 바와 같이, 독출 트랜잭션이 로컬 프로세서 (10) 에 의해 홈노드의 노드 컨트롤러 (20) 에 의해 수신되고 그 요청된 캐시라인이 리모트 처리노드 (8) 의 일관성 디렉토리 (50) 에 변경 으로 표시되어 있는 경우, 노드 컨트롤러 (20) 는 ARespOut 재실행을 보트하고, 아비터 (24) 로부터 ARespIn 재실행 보트의 수신에 응답하여 인에이블된 인터벤션 (즉, N=1) 에 의해 그 독출 트랜잭션을 그 표시된 리모트 처리노드 (8) 로 보낸다. 그 요청된 캐시라인이 리모트 처리노드 (8) 에서 유효 (변경 또는 독점) 이면, 리모트 처리노드 (8) 은 변경 또는 공유 인터벤션에 의해그 요청된 캐시라인의 업데이트된 카피를 노드 컨트롤러 (20) 에 제공할 것이나, 그렇치 않으면 (즉, 그 요청된 캐시라인이 리모트 처리노드 (8) 에서 무효이면), 리모트 처리노드 (8) 은 노드 컨트롤러 (20) 에 널 응답을 제공할 것이다.
어느 이벤트에서도, 노드 컨트롤러 (20) 은 로컬 프로세서 (20) 가 독출 트랜잭션을 다시 발하도록 요청할 것이다. 그 다시 발해진 독출 트랜잭션의 수신에 응답하여, 캐시라인이 변경 인터벤션에 의해 소오스되는 경우에는 노드 컨트롤러 (20) 가 ARespOut 변경 인터벤션 (MI) 를 보트하고, 그 요청된 캐시라인이 공유 인터벤션에 의해 소오스된 경우에는 ARespOut 공유 인터벤션 (SI) 를 보트하며, 그렇치 않으면 널을 보트한다. 노드 컨트롤러 (20) 가 다시 발해진 독출 트랜잭션 (R=1) 에 대해 ARespIn MI 또는 SI 보트를 수신하는 경우, 노드 컨트롤러 (20) 는 로컬 인터커넥트 (16) 상의 그 요청된 캐시라인을 소오스하고, 일관성 디렉토리 (50) 에서 그 요청된 캐시라인의 일관성 상태를 공유로 업데이트한다. 다른 방법으로는, 아비터 (24) 가 ARespIn 널 보트를 발하는 경우, 시스템 메모리 (18) 는 그 요청된 캐시라인을 그 요청한 프로세서 (10) 로 소오스하고, 노드 컨트롤러는 그 요청된 캐시라인의 일관성 상태를 무효로 업데이트한다. 이와 유사하게, 그 요청된 캐시라인이 일관성 디렉토리 (50) 에서 공유 또는 무효로서 표시되고 ARespIn 보트가 공유 또는 널인 경우에는, 시스템 메모리 (18) 는 그 요청된 캐시라인을 소오스한다. 그러나, 이들의 경우에는, 어떠한 리모트 처리노드 (8) 에도 독출 트랜잭션이 발해지지 않는다.
RWITM 트랜잭션의 수신에 응답한 노드 컨트롤러 (20) 의 동작은 하기의 차이점 이외에는, 표 9 에 나타낸 동작과 동일하다.
첫째, 일관성 디렉토리 (50) 에서 그 요청된 캐시라인의 일관성 상태는 모든 경우에 무효로 업데이트되거나 유지된다. 둘째, 그 요청된 캐시라인을 변경 상태로 유지하면서, 독출 이외의 RWITM 트랜잭션은 노드 컨트롤러 (20) 에 의해 일관성 디렉토리 (50) 에 표시된 리모트 처리노드 (8) 로 전달된다. 셋째, 그 요청된 캐시라인이 일관성 디렉토리 (50) 에 리모트 처리노드 (8) 에서 독출 로서 표시되어 있는 경우, 노드 컨트롤러 (20) 는 DClaim 트랜잭션을 리모트 처리노드 (8) 로 발하여, 리모트 처리노드 (8) 에서 그 요청된 캐시라인의 카피를 무효시킨다.
다음으로, 표 10 을 참조하면, 리모트 노드의 프로세서에 의한 독출 트랜잭션이 노드 인터커넥트 (22) 를 통하여 요청된 캐시라인의 홈 노드의 노드 컨트롤러 (20) 에 의해 수신되는 두번째 시나리오에서, 노드 컨트롤러의 동작이 요약되어 있다. 나타낸 바와 같이, 요청된 캐시라인이 요청하는 노드 (8) 의 일관성노드에 무효로 표시되어 있는 경우, 노드 컨트롤러 (20) 는, ARespOut 기간 동안에 널을 보트하고, SI 또는 널 ARespIn 보트와, 뒤이어서 그 요청된 캐시라인의 수신에 응답하여, 그 요청된 캐시라인을 요구하는 처리노드 (8) 에 제공한다. 노드 컨트롤러 (20) 는 그 요청된 캐시라인이 요청하는 처리노드에서 공유로 표시되는 경우에는 유사하게 동작하지만, 그 캐시라인의 일관성 상태를 업데이트하지는 않는다.
표 10 의 3번째 내지 5번째 열에 나타낸 바와 같이, 노드 컨트롤러 (20) 는 그 요청된 캐시라인이 홈노드와 요구하는 처리노드 (8) 와는 다른 제 3 노드의 일관성 디렉토리 (50) 에 변경으로 표시되어 있는 경우에는 부가적인 동작을 수행해야 한다. 좀더 자세히 설명하면, 노드 컨트롤러 (20) 는 ARespOut 재실행을 보트하여, 제 1 로컬 독출 트랜잭션 (R=0) 이 추후에 다시 발하도록 한다. 그후, 노드 컨트롤러 (20) 는 독출 트랜잭션을 제 3 노드로 보내어, 그 요청된 캐시라인이 제 3 노드에서 변경되었는지의 여부를 확인한다. 일관성 디렉토리 (50) 에 의해 이용된 일관성 프로토콜의 부정확성으로 인해, 3가지 가능성이 존재한다. (1) 그 요청된 캐시라인이 제 3 노드에서 변경되었다 (4번째 열); (2) 그 요청된 캐시라인이 제 3 노드에서 독점 상태로 유지되어 있다 (3번째 열); 또는 (3) 그 요청된 캐시라인이 제 3 노드에서 무효이다 (5번째 열). 그 요청된 캐시라인이 제 3 노드에서 변경 또는 독점인 경우, 제 3 노드는 그 보내진 독출 트랜잭션을 널 응답으로 응답한다. 노드 컨트롤러 (20) 가 독출 트랜잭션을 홈노드 (R=1) 에서 발하면, 노드 컨트롤러 (20) 는, 제 3 노드로부터 수신된 응답에 따라서, ARespIn 변경 인터벤션 (MI), SI, 또는 널을 보트한다. 그후, 노드 컨트롤러 (20) 는 ARespIn MI 또는 SI 에 응답하여 그 요청된 캐시라인을 그 요청하는 처리노드 (8) 로 소오스하거나, 또는 다른 방법으로는, ARespIn 널 보트에 응답하여 홈노드의 시스템 메모리 (18) 로부터 수신된 그 요청된 캐시라인의 카피를 보낸다. 또한, 노드 컨트롤러 (20) 는 일관성 디렉토리 (50) 내의 그 요청된 캐시라인의 일관성 상태를 그 요청된 캐시라인이 제 3 노드에서 유효인 경우에는 변경 로부터 공유로 업데이트하고, 그 요청된 캐시라인이 제 3 노드에서 무효인 경우에는 변경으로부터 무효로 업데이트한다.
노드 컨트롤러 (2) 로부터 수신한 독출유형 트랜잭션이 독출 트랜잭션이 아닌 RWITM 트랜잭션이었으면, 노드 컨트롤러 (20) 의 동작은 다음의 차이점을 제외하고는 표 10 에 나타낸 동작과 거의 동일할 것이다. 첫번째 2열에서, 메모리 디렉토리 (50) 의 일관성 상태는 변경으로 업데이트되고, 3번째 내지 5번째 열에서, 일관성 상태는 3경우 모두 무효로 업데이트될 것이다. 또한, 이 3번째 내지 5번째열에서, 노드 인터커넥트 (22) 상에 제 3 노드로 발해진 트랜잭션도독출이 아닌 RWITM 트랜잭션일 것이다.
다음으로, 하기 표 11 을 참조하면, (요청된 캐시라인에 대한) 리모트 모드에서 프로세서에 의한 독출 트랜잭션이 요청하는 프로세서의 노드의 노드 컨트롤러에 의해 로컬 인터커넥트 (16) 를 통하여 수신되는 3번째 시나리오에서의, 노드 컨트롤러의 동작이 요약되어 있다. 표 11 은, 단지 홈노드에서의 일관성 디렉토리 (50) 만이 일관성 상태를 추적하기 때문에, 요청된 캐시라인의 가능한 일관성 상태 변화를 나타내지는 않는다.
표 11 의 첫번째 열에 나타낸 바와 같이, 노드 컨트롤러 (20) 는 요청된 캐시라인이 다른 처리노드 (8) 에 할당된 물리적인 메모리 공간내에 들어감을 나타내기 위하여, 각 동작 시나리오에 재실행 ARespOut 을 보트한다. 독출 트랜지션이 공유 또는 변경 인터벤션에 의해 로컬 서비스될 수 없으면, 6번째 열에 나타낸 바와 같이, 아비터 (24) 는 ARespIn 재실행을 보트하고, 노드 컨트롤러 (20) 는 독출 트랜잭션을 그 요청된 캐시라인의 홈 노드로 보낸다. 그후, 홈 노드는 홈노드에서 독출 트랜잭션에 대한 최종 일관성 응답과 함께, 일관성 응답이 재시도 이외인 경우에는 그 요청된 캐시라인을 노드 컨트롤러 (20) 에 제공한다. 독출 요청이 요청하는 처리노드 (8) 에서 다시 발해지는 경우, 노드 컨트롤러 (20) 는 ARespOut 기간 동안에 홈노드로부터 수신된 일관성 응답을 제공한 후, 그 ARespIn 보트가 재시도 이외인 경우에 그 요청된 캐시라인을 제공한다. 또한, 첫번째 내지 5번째 열 각각에서 홈 노드로 발해진 트랜잭션이 RWITM 트랜잭션인 것을 제외하고는, RWITM 트랜잭션에 대한 동작은 표 11 에 주어진 동작과 동일하다.
마지막으로, 하기 표 12 를 참조하면, 요청하는 프로세서 (10) 및 노드 컨트롤러 (20) 양자가 독출 트랜잭션에 규정된 캐시라인의 홈노드에 대한 리모트 (제 3) 노드에 위치하는 네번째 시나리오에서, 노드 컨트롤러 (20) 의 동작이 요약되어 있다. 표에 나타낸 바와 같이, 노드 컨트롤러 (20) 는 또다른 노드를 가진 캐시라인을 그 홈노드로서 요청하는 로컬 인터커넥트 (16) 상에 동작하는 임의의 독출 트랜잭션에 응답하여 ARespOut 널을 보트한다. 노드 컨트롤러 (20) 는 그 독출 트랜잭션에 의해 수신된 ARespIn 보트를 홈노드로 보내고, 또한, 그 로컬 ARespIn 보트가 변경 인터벤션 또는 공유 인터벤션인 경우에는 그 요청된 캐시라인을 제공한다. 독출유형 트랜잭션이 RWITM 트랜잭션인 경우, 노드 컨트롤러 (20) 의 동작은 표 12 에 나타낸 동작과 동일하다.
이상 설명한 바와 같이, 본 발명은 데이터의 공유 인터벤션을 지원함으로써, 노드간의 요청 횟수를 저감하고 독출 데이터의 대기시간을 줄일 수 있는, NUMA 컴퓨터 시스템을 제공한다. 본 발명에 따르면, 각 처리노드는 동일 캐시라인을 비독점적인 최근 상태로 유지하는 스누퍼를 가지고, 스누퍼가 캐시라인을 공유 인터벤션에 의해 소오스할 수 있다. 특히, 처리노드에서 공유 인터벤션에 의해 빈번하게 소오스하는 것이 다른 처리노드의 통지 또는 노드 인터커넥트를 통해 보내진 트랜잭션이 불필요하다.
이상, 본 발명을 바람직한 실시예를 통하여 도시 및 설명하였지만, 당업자는, 형태와 세부항목이상의 변화가 본 발명의 정신과 범주로부터 일탈함이 없이 이루어질 수 있는 것으로 이해하여야 한다.

Claims (12)

  1. 노드 인터커넥트; 및
    상기 노드 인터커넥트에 각각 접속된 제 1 처리노드 및 제 2 처리노드를 포함하되,
    상기 제 1 처리노드는 제 1 및 제 2 캐시계층을 각각 가지는 제 1 및 제 2 프로세서와 시스템 메모리를 포함하고,
    상기 제 1 및 제 2 캐시계층은 로컬 인터커넥트에 의해 접속되며,
    상기 제 2 처리노드는 적어도 제 3 캐시계층을 가지는 제 3 프로세서 및 시스템 메모리를 포함하고,
    상기 제 1 캐시계층과 제 3 캐시계층은 각각 특정 캐시라인의 비변경된 카피를 최근 일관성 상태로 동시에 기억하고, 그로부터 상기 특정 캐시라인의 상기 카피가 공유 인터벤션에 의해 소오스될 수 있으며,
    상기 제 1 캐시계층은 상기 노드 인터커넥트에 관한 통신없이, 단지 상기 로컬 인터커넥트만에 관한 통신을 이용하는 요청에 응답하여, 상기 특정 캐시라인의 카피를 공유 인터벤션에 의해 상기 제 2 캐시계층으로 소오스하는 것을 특징으로 하는 컴퓨터 시스템.
  2. 제 1 항에 있어서,
    상기 요청은 독출 요청인 것을 특징으로 하는 컴퓨터 시스템.
  3. 제 1 항에 있어서,
    상기 제 1 캐시계층이 선택된 캐시라인의 비변경된 카피를 기억하는 경우에, 상기 제 1 캐시계층은 상기 선택된 캐시라인이 상기 제 1 캐시계층에 의해 독점 (Exclusive) 상태로 유지되는 경우에만 변경 목적의 독출 요청 (read-with-to-intent-to-modify request) 에 응답하여 공유 인터벤션에 의해 상기 선택된 캐시라인의 카피를 소오스하는 것을 특징으로 하는 컴퓨터 시스템.
  4. 제 1 항에 있어서,
    상기 제 1 및 제 2 처리노드는 각각 상기 노드 인터커넥트에 접속된 노드 컨트롤러를 포함하고, 각 노드 컨트롤러는 그 노드 컨트롤러를 포함하는 처리노드가 홈노드인 리모트 유지된 (remotely held) 캐시라인의 가능한 일관성 상태를 나타내는 일관성 디렉토리를 갖는 것을 특징으로 하는 컴퓨터 시스템.
  5. 제 4 항에 있어서,
    각 일관성 디렉토리가 단일 일관성 상태를 이용하여 공유 (Shared) 상태 또는 최근 (Recent) 상태로 리모트 유지될 수 있는 캐시라인을 추적하는 것을 특징으로 하는 컴퓨터 시스템.
  6. 제 4 항에 있어서,
    상기 제 1 처리노드에서 노드 컨트롤러는 상기 제 1 처리노드가 홈 노드인 캐시라인에 대한 요청을 상기 제 2 처리노드로 보내고, 상기 제 1 처리노드의 상기 노드 컨트롤러의 상기 일관성 디렉토리가 상기 요청된 캐시라인을 나타내는 경우에만, 상기 제 2 처리노드에서 변경되는 것을 특징으로 하는 컴퓨터 시스템.
  7. 노드 인터커넥트에 각각 접속된 제 1 및 제 2 처리노드를 포함하고, 상기 제 1 처리노드가 제 1 및 제 2 캐시계층을 각각 갖는 제 1 및 제 2 프로세서 및 시스템 메모리를 포함하고, 상기 제 1 및 제 2 캐시계층은 로컬 인터커넥트에 의해 접속되며, 상기 제 2 처리노드가 적어도 제 3 캐시계층을 가지는 제 3 프로세서 및 시스템 메모리를 포함하는 컴퓨터 시스템의 통신방법으로서,
    상기 제 1 캐시계층과 상기 제 3 캐시계층내에, 특정 캐시라인의 비변경된 카피를 최근 일관성 상태로 동시에 기억하고, 이로부터 상기 특정 캐시라인의 상기 카피를 공유 인터벤션에 의해 소오스되며;
    상기 제 2 캐시계층에 의한 요청에 응답하여, 상기 제 1 캐시계층이 상기 특정 캐시라인의 카피를 상기 제 2 캐시계층으로 상기 노드 인터커넥트에 관한 통신 없이 상기 로컬 인터커넥트만에 관한 통신을 이용한 공유 인터벤션에 의해 소오스하는 것을 특징으로 하는 컴퓨터 시스템의 통신방법.
  8. 제 7 항에 있어서,
    상기 요청은 독출 요청인 것을 특징으로 하는 컴퓨터 시스템.
  9. 제 7 항에 있어서,
    선택된 캐시라인의 비변경된 카피를 상기 제 1 캐시계층에 기억하고;
    변경 목적의 독출에 응답하여, 상기 선택된 캐시라인이 독점 상태로 유지되어 있는 경우에만 공유 인터벤션에 의해 상기 제 1 캐시계층 캐시라인으로부터 상기 선택된 캐시라인의 카피를 소오스하는 것을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템의 통신방법.
  10. 제 7 항에 있어서,
    상기 제 1 및 제 2 처리노드 각각은 상기 노드 인터커넥트에 접속된 노드 컨트롤러를 포함하고, 각 노드 컨트롤러는 일관성 디렉토리를 가지며, 상기 방법은,
    각 노드 컨트롤러의 일관성 디렉토리내에, 그 노드 컨트롤러가 홈노드인 리모트 유지된 캐시라인의 가능한 일관성 상태를 지정하는 것을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템의 통신방법.
  11. 제 10 항에 있어서,
    각 일관성 디렉토리내의, 단일 일관성 상태를 이용하여 공유 상태 또는 최근 상태로 리모트 유지될 수 있는 캐시라인을 추적하는 것을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템의 통신방법.
  12. 제 10 항에 있어서,
    상기 제 1 처리노드가 홈노드인 캐시라인에 대한 요청을 상기 제 1 처리노드의 노드 컨트롤러로부터 상기 제 2 처리노드로 보내어, 상기 제 1 처리노드의 상기 노드 컨트롤러의 상기 일관성 디렉토리가 상기 요청된 캐시라인을 지정하는 경우에만 상기 제 2 처리노드에서 변경되는 것을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템의 통신방법.
KR1020000003994A 1999-02-10 2000-01-27 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템 KR100318104B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/248,503 1999-02-10
US09/248,503 US6115804A (en) 1999-02-10 1999-02-10 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
US9/248,503 1999-02-10

Publications (2)

Publication Number Publication Date
KR20000076539A KR20000076539A (ko) 2000-12-26
KR100318104B1 true KR100318104B1 (ko) 2001-12-22

Family

ID=22939435

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000003994A KR100318104B1 (ko) 1999-02-10 2000-01-27 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템

Country Status (6)

Country Link
US (1) US6115804A (ko)
JP (1) JP3644587B2 (ko)
KR (1) KR100318104B1 (ko)
CN (1) CN1116643C (ko)
CA (1) CA2295403A1 (ko)
GB (1) GB2349721B (ko)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192452B1 (en) * 1999-02-26 2001-02-20 International Business Machines Corporation Method and system for avoiding data loss due to cancelled transactions within a non-uniform memory access system
US6591348B1 (en) * 1999-09-09 2003-07-08 International Business Machines Corporation Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system
US6591341B1 (en) * 2000-03-31 2003-07-08 Intel Corporation Multilevel cache system and method having a merged tag array to store tags for multiple data arrays
US6654858B1 (en) * 2000-08-31 2003-11-25 Hewlett-Packard Development Company, L.P. Method for reducing directory writes and latency in a high performance, directory-based, coherency protocol
US6745257B2 (en) * 2001-01-04 2004-06-01 International Business Machines Corporation Method, system, and program for providing status in a multi-processing node system
US6918012B2 (en) * 2001-08-28 2005-07-12 Hewlett-Packard Development Company, L.P. Streamlined cache coherency protocol system and method for a multiple processor single chip device
FR2832859B1 (fr) * 2001-11-28 2004-01-09 Commissariat Energie Atomique Generateur electrochimique au lithium comprenant au moins une electrode bipolaire avec substrats conducteurs en aluminium ou alliage d'aluminium
EP1483672A4 (en) * 2002-02-28 2008-03-26 Silicon Graphics Inc METHOD AND SYSTEM FOR CACHED MEMORY COHERENCE IN A MULTIPROCESSOR SYSTEM WITHOUT INCREASING THE SHARING VECTOR
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
JP4077329B2 (ja) * 2003-01-31 2008-04-16 株式会社東芝 トランザクション処理システム、並行制御方法及びプログラム
US7085898B2 (en) 2003-05-12 2006-08-01 International Business Machines Corporation Coherency management for a “switchless” distributed shared memory computer system
US6988173B2 (en) * 2003-05-12 2006-01-17 International Business Machines Corporation Bus protocol for a switchless distributed shared memory computer system
US7788452B2 (en) * 2004-01-20 2010-08-31 International Business Machines Corporation Method and apparatus for tracking cached addresses for maintaining cache coherency in a computer system having multiple caches
DE102004009610B4 (de) * 2004-02-27 2007-08-16 Infineon Technologies Ag Heterogener paralleler Multithread-Prozessor (HPMT) mit geteilten Kontexten
US20060090003A1 (en) * 2004-10-22 2006-04-27 Microsoft Corporation Rendezvousing resource requests with corresponding resources
US20110082928A1 (en) 2004-10-22 2011-04-07 Microsoft Corporation Maintaining consistency within a federation infrastructure
US7958262B2 (en) * 2004-10-22 2011-06-07 Microsoft Corporation Allocating and reclaiming resources within a rendezvous federation
US8392515B2 (en) * 2004-10-22 2013-03-05 Microsoft Corporation Subfederation creation and maintenance in a federation infrastructure
US20080288659A1 (en) 2006-11-09 2008-11-20 Microsoft Corporation Maintaining consistency within a federation infrastructure
US8095601B2 (en) 2004-10-22 2012-01-10 Microsoft Corporation Inter-proximity communication within a rendezvous federation
US8549180B2 (en) 2004-10-22 2013-10-01 Microsoft Corporation Optimizing access to federation infrastructure-based resources
US7730220B2 (en) * 2004-10-22 2010-06-01 Microsoft Corporation Broadcasting communication within a rendezvous federation
US7694167B2 (en) * 2004-10-22 2010-04-06 Microsoft Corporation Maintaining routing consistency within a rendezvous federation
US8095600B2 (en) * 2004-10-22 2012-01-10 Microsoft Corporation Inter-proximity communication within a rendezvous federation
US8014321B2 (en) * 2004-10-22 2011-09-06 Microsoft Corporation Rendezvousing resource requests with corresponding resources
US7360032B2 (en) * 2005-07-19 2008-04-15 International Business Machines Corporation Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of modified memory blocks
US7395376B2 (en) * 2005-07-19 2008-07-01 International Business Machines Corporation Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks
JP4335298B2 (ja) * 2006-02-24 2009-09-30 富士通株式会社 スヌープ制御方法および情報処理装置
WO2007099583A1 (ja) * 2006-02-28 2007-09-07 Fujitsu Limited システムコントローラおよびキャッシュ制御方法
US7698505B2 (en) * 2006-07-14 2010-04-13 International Business Machines Corporation Method, system and computer program product for data caching in a distributed coherent cache system
US8195890B1 (en) * 2006-08-22 2012-06-05 Sawyer Law Group, P.C. Method for maintaining cache coherence using a distributed directory with event driven updates
CN100489815C (zh) * 2007-10-25 2009-05-20 中国科学院计算技术研究所 一种内存共享的系统和装置及方法
US8438337B1 (en) 2009-09-30 2013-05-07 Netlogic Microsystems, Inc. System and method for conditionally sending a request for data to a home node
US8566533B1 (en) 2009-09-30 2013-10-22 Netlogic Microsystems, Inc. System, method, and computer program product for conditionally sending a request for data to a node based on a determination
US8478877B2 (en) * 2010-02-24 2013-07-02 Oracle International Corporation Architecture-aware allocation of network buffers
US9152501B2 (en) 2012-12-19 2015-10-06 International Business Machines Corporation Write performance in fault-tolerant clustered storage systems
US20160352832A1 (en) * 2015-06-01 2016-12-01 Alibaba Group Holding Limited Enhancing data consistency in cloud storage system by entrance data buffering
DE102015220485A1 (de) * 2015-10-21 2017-04-27 Robert Bosch Gmbh Verfahren zum Schreiben und Lesen eines Datensatzes
CN105743803B (zh) * 2016-01-21 2019-01-25 华为技术有限公司 一种共享缓存的数据处理装置
US10489323B2 (en) * 2016-12-20 2019-11-26 Arm Limited Data processing system for a home node to authorize a master to bypass the home node to directly send data to a slave
NO343359B1 (en) 2017-05-02 2019-02-11 Numascale As Interconnect switch in multiprocessor systems
CN109388490B (zh) * 2017-08-07 2020-11-17 华为技术有限公司 一种内存分配方法和服务器
US10769068B2 (en) * 2017-11-10 2020-09-08 International Business Machines Corporation Concurrent modification of shared cache line by multiple processors
US10579527B2 (en) 2018-01-17 2020-03-03 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
US10387310B2 (en) 2018-01-17 2019-08-20 International Business Machines Corporation Remote node broadcast of requests in a multinode data processing system
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 (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5673413A (en) * 1995-12-15 1997-09-30 International Business Machines Corporation Method and apparatus for coherency reporting in a multiprocessing system
US5710907A (en) * 1995-12-22 1998-01-20 Sun Microsystems, Inc. Hybrid NUMA COMA caching system and methods for selecting between the caching modes
US5893144A (en) * 1995-12-22 1999-04-06 Sun Microsystems, Inc. Hybrid NUMA COMA caching system and methods for selecting between the caching modes
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
US5887138A (en) * 1996-07-01 1999-03-23 Sun Microsystems, Inc. Multiprocessing computer system employing local and global address spaces and COMA and NUMA access modes
US5860159A (en) * 1996-07-01 1999-01-12 Sun Microsystems, Inc. Multiprocessing system including an apparatus for optimizing spin--lock operations
US5943684A (en) * 1997-04-14 1999-08-24 International Business Machines Corporation Method and system of providing a cache-coherency protocol for maintaining cache coherency within a multiprocessor data-processing system
US5940856A (en) * 1997-04-14 1999-08-17 International Business Machines Corporation Cache intervention from only one of many cache lines sharing an unmodified value
US5940864A (en) * 1997-04-14 1999-08-17 International Business Machines Corporation Shared memory-access priorization method for multiprocessors using caches and snoop responses
US5963974A (en) * 1997-04-14 1999-10-05 International Business Machines Corporation Cache intervention from a cache line exclusively holding an unmodified value
US5943685A (en) * 1997-04-14 1999-08-24 International Business Machines Corporation Method of shared intervention via a single data provider among shared caches for SMP bus

Also Published As

Publication number Publication date
GB2349721A (en) 2000-11-08
KR20000076539A (ko) 2000-12-26
JP2000242621A (ja) 2000-09-08
GB2349721B (en) 2003-07-30
CA2295403A1 (en) 2000-08-10
CN1116643C (zh) 2003-07-30
US6115804A (en) 2000-09-05
CN1263312A (zh) 2000-08-16
GB0000996D0 (en) 2000-03-08
JP3644587B2 (ja) 2005-04-27

Similar Documents

Publication Publication Date Title
KR100318104B1 (ko) 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템
KR100308323B1 (ko) 공유된 개입 지원을 가지는 비균등 메모리 액세스 데이터처리 시스템
EP1153349B1 (en) Non-uniform memory access (numa) data processing system that speculatively forwards a read request to a remote processing node
US7814279B2 (en) Low-cost cache coherency for accelerators
US6067603A (en) Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect
US6275907B1 (en) Reservation management in a non-uniform memory access (NUMA) data processing system
CA2280172C (en) Non-uniform memory access (numa) data processing system that holds and reissues requests at a target processing node in response to a retry
US7581068B2 (en) Exclusive ownership snoop filter
US6266743B1 (en) Method and system for providing an eviction protocol within a non-uniform memory access system
US20070204111A1 (en) Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
KR20170069149A (ko) 데이터 처리 시스템의 캐시 일관성을 위한 스누프 필터
US6279085B1 (en) Method and system for avoiding livelocks due to colliding writebacks within a non-uniform memory access system
JP2000250883A (ja) 不均等メモリ・アクセス・システムにおいてトランザクションのキャンセルによるデータ損失を避けるための方法およびシステム
TWI428754B (zh) 以主動式預取寬度執行加強式停懸狀態之系統及方法
US7024520B2 (en) System and method enabling efficient cache line reuse in a computer system
US6085293A (en) Non-uniform memory access (NUMA) data processing system that decreases latency by expediting rerun requests
US7000080B2 (en) Channel-based late race resolution mechanism for a computer system
US10489292B2 (en) Ownership tracking updates across multiple simultaneous operations

Legal Events

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

Payment date: 20041012

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee