KR20010052813A - 멀티-프로세서 시스템 브리지 - Google Patents

멀티-프로세서 시스템 브리지 Download PDF

Info

Publication number
KR20010052813A
KR20010052813A KR1020007014135A KR20007014135A KR20010052813A KR 20010052813 A KR20010052813 A KR 20010052813A KR 1020007014135 A KR1020007014135 A KR 1020007014135A KR 20007014135 A KR20007014135 A KR 20007014135A KR 20010052813 A KR20010052813 A KR 20010052813A
Authority
KR
South Korea
Prior art keywords
bus
bridge
processing set
processing
mode
Prior art date
Application number
KR1020007014135A
Other languages
English (en)
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 KR20010052813A publication Critical patent/KR20010052813A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • G06F13/4036Coupling between buses using bus bridges with arbitration and deadlock prevention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Hardware Redundancy (AREA)

Abstract

멀티-프로세서 시스템용 브리지는, 제 1 처리 세트의 I/O 버스, 제 2 처리 세트의 I/O 버스 및 디바이스 버스에 인터페이스를 제공한다. 브리지 제어 장치는, 제 1 및 제 2 처리 세트 사이에서 제 1 분할 모드에서 I/O 버스 상호간 및 디바이스 버스로의 액세스를 중재하고, 제 2 조합 모드에서 제 1 및 제 2 처리 세트의 록스텝 동작을 감시한다. 조합 모드에서 록스텝 오류를 검출하자마자, 브리지는 오류 모드로 옮겨진다. 브리지 제어 장치는, 오류 도출 동안 오류 모드에서 공시 기록 버퍼에 있는 기록 액세스를 버퍼링한다.

Description

멀티-프로세서 시스템 브리지{MULTI-PROCESSOR SYSTEM BRIDGE}
[발명의 배경]
본 발명은 제 1 및 제 2 처리 세트(각각이 하나 이상의 프로세서를 포함할 수 있음)가 I/O 디바이스 버스와 통신하는 멀티-프로세서 시스템에 관한 것이다.
이 출원은, 2개 이상의 프로세서 세트가 시스템의 고장(faulty) 동작을 전체적으로 검출하기 위해 록스텝(lockstep) 오류를 식별하기 위한 록스텝에 있는 I/O 디바이스 버스와 통신할 필요가 있는 고장 허용(fault tolerant) 컴퓨터 시스템에 특정 애플리케이션을 제공한다.
이러한 고장 허용 컴퓨터 시스템에서는, 고장을 식별할 수 있을 뿐만 아니라, 고도의 시스템 사용 가능도(availability)를 제공할 수 있는 구조를 제공하는데 목적이 있다. 고수준의 시스템 사용 가능도를 제공하기 위해서, 이와 같은 시스템이 록스텝 오류로부터의 복구를 자동으로 시도하는 것이 바람직하다.
록스텝 오류로부터의 자동 복구는, 그 시스템이 록스텝의 부재를 검출할 뿐만 아니라, 전체적으로 시스템이 계속 동작할 수 있는 환경을 제공한다는 점에서 중요한 기술적인 목표를 제공한다.
따라서, 본 발명의 목적은, 이 기술적인 문제점들을 해결하는데 역점을 두고 있다.
[발명의 요약]
본 발명의 특정한 및 바람직한 국면은, 첨부하는 독립항 및 종속항에 제시되어 있다. 종속항의 특징의 조합은, 독립항의 특징과 적절하게 조합될 수도 있고, 청구항에 명백히 제시되어 있지 않을 수도 있다.
본 발명의 일 국면에 따른 멀티-프로세서 시스템용 브리지(bridge)를 제공한다. 이 브리지는, 제 1 처리 세트의 I/O 버스와 접속하기 위한 제 1 프로세서 버스 인터페이스, 제 2 처리 세트의 I/O 버스와 접속하기 위한 제 2 프로세서 버스 인터페이스 및 디바이스 버스와 접속하기 위한 디바이스 버스 인터페이스를 구비한다. 또한, 이 브리지는, 제 1 분할 모드(split mode)에서, 제 1 및 제 2 처리 세트 사이에서 I/O 버스 상호간 및 디바이스 버스로의 액세스를 중재하고, 제 2 조합 모드에서, 제 1 및 제 2 처리 세트의 록스텝 동작을 감시할 수 있도록 구성된 브리지 제어 장치(mechanism)를 포함한다.
플렉시블(flexible) 동작은, 분할 모드 및 조합 모드에서의 동작을 제공하여서, 록스텝 동작을 제공하고, 또한 록스텝 동작의 자동적인 초기화 및 록스텝 오류로부터의 자동 복구를 제공하는 것이 가능하다.
주목해야 하는 것은, 상기 언급된 제 1 및 제 2 프로세서 버스 인터페이스와 디바이스 버스와 같은 버스 인터페이스가, 별도의 브리지 구성요소일 필요는 없지만, 브리지의 다른 구성요소에 통합될 수도 있고, 관련된 버스 라인으로 간단히 연결될 수 있다는 것이다.
본 발명의 실시예에서의 브리지 제어 장치는, 제 1 및 제 2 프로세서 버스 인터페이스와 디바이스 버스 인터페이스에 접속된 중재기를 구비한다. 이 중재기는, 분할 모드에서 디바이스 버스로의 액세스를 할당하기 위해 제 1 및 제 2 처리 세트의 I/O 버스상의 신호들 사이에서 중재하도록 동작할 수 있다. 따라서, 브리지는 버스 사용을 위한 자동적인 중재를 제공한다. 실제로, 그 중재기는, I/O 버스와 디바이스 버스상의 신호들 사이에서 I/O 버스와 디바이스 버스로의 액세스를 중재하도록 동작할 수 있다.
또한, 본 발명의 실시예에서의 브리지 제어 장치는, 제 1 및 제 2 프로세서 버스 인터페이스에 접속된 비교기를 구비한다. 이때의 비교기는, 조합 모드에서, 록스텝 오류로 나타낸 것처럼 제 1 및 제 2 처리 세트의 I/O 버스상의 신호간의 차이를 검출하도록 동작할 수 있다.
브리지 제어기는, 비교기의 출력에 접속된다. 이 브리지 제어기는, 록스텝 오류를 나타내는 신호와 비교기의 출력에 따라, 브리지를 조합 모드에서 동작을 멈추게 하는 대신에 그 이상의 오류 모드에서 동작을 하게 한다.
브리지 내에 있는 내부 메모리는, 데이터 버퍼링을 제공할 수 있되, 이때의 브리지 제어 장치가 오류 모드에서 오류 도출(resolution) 동안 I/O 사이클을 버퍼링하도록 동작할 수 있다.
이 오류 모드는 제 1 및 제 2 오류 모드를 포함할 수 있다.
초기(initial) 오류 모드에서는, 처리 세트에 의해 시작된 임의의 내부 브리지 기록 액세스를 공시 기록 버퍼(posted write buffer)에 저장할 수 있고, 처리 세트에 의해 시작된 임의의 내부 브리지 기록 액세스를 중재할 수 있다. 또한, 초기 오류 모드에서는, 처리 세트에 의해 시작된 임의의 디바이스 버스 기록 액세스를 공시 기록 버퍼에 저장할 수 있고, 처리 세트에 의해 시작된 임의의 디바이스 버스 판독 액세스를 중단(abort)할 수 있다.
처리 세트가 그 자체를 주 처리 세트로서 가정하는 주 오류 모드에서는, 그 주 처리 세트에 의해 시작된 임의의 내부 브리지 기록 액세스를 허가하여 중재하는 반면에, 임의의 다른 처리 세트에 의해 시작된 임의의 내부 브리지 기록 액세스를 포기(discard)할 수 있다. 그 처리 세트에 의해 시작된 임의의 내부 브리지 판독 액세스를 허가하여 중재할 수 있다. 또한, 처리 세트에 의해 시작된 임의의 디바이스 버스 기록 액세스와 처리 세트에 의해 시작된 임의의 디바이스 버스 판독 액세스를 중단할 수 있다.
브리지 제어 장치는, 처리 세트가 그 자체를 주 처리 세트로서 가정할 때까지 초기 오류 모드에서 브리지의 전원을 켜서(power up) 동작하도록 동작할 있어서, 모든 처리 세트가 조합 모드로 옮기기 전의 대응하는 상태로 설정될 수 있게 하는 분할 모드에서 동작할 수 있다.
이러한 브리지는 메모리 서브-시스템(sub-system)을 구비할 수 있다. 또한, 이 브리지는 제 1 프로세서 버스 인터페이스, 제 2 프로세서 버스 인터페이스, 디바이스 버스 인터페이스와 메모리 서브-시스템 사이에 접속된 제어 가능한 라우팅 매트릭스(controllable routing matrix)를 구비한다. 따라서, 브리지 제어 장치는, 현재의 동작 모드에 따라 제 1 프로세서 버스 인터페이스, 제 2 프로세서 버스 인터페이스, 디바이스 버스 인터페이스 및 메모리 서브-시스템을 선택적으로 상호 연결하는 라우팅 매트릭스를 제어하도록 동작할 수 있다.
각각의 처리 세트를 위한 2개 이상의 I/O 버스에 접속하기 위해 2개 이상의 프로세서 버스 인터페이스가 존재할 수 있다.
본 발명의 다른 국면에 따라, 상기 제시된 것처럼 I/O 버스를 갖는 제 1 처리 세트, I/O 버스를 갖는 제 2 처리 세트, 디바이스 버스 및 브리지를 구비한 멀티-프로세서 시스템이 제공된다.
각각 또는 2개 이상의 처리 세트는, 적어도 하나의 프로세서, 메모리 및 처리 세트 I/O 버스 제어기를 구비할 수 있다.
본 발명의 다른 국면에 따라, 상술한 것과 같은 멀티-프로세서 시스템을 동작시키는 방법이 제공되되, 그 방법은,
제 1 및 제 2 처리 세트 사이에서 상호간 및 디바이스 버스로의 액세스를 중재하는 것을 포함하는 제 1 분할 모드와,
제 1 및 제 2 처리 세트의 록스텝 동작을 감시하는 것을 포함하는 제 2 조합 모드에서 브리지를 선택적으로 동작시키는 것을 포함한다.
이하, 동일 참조부호가 동일 소자에 관련되는 예에 의해서만 첨부 도면을 참조하여 본 발명의 실시예를 설명하겠다.
도 1은 본 발명의 실시예를 포함한 고장 허용 컴퓨터 시스템의 개략적인 개요도,
도 2는 도 1의 시스템을 근거로 한 시스템의 특정 실시예의 개략적인 설명도,
도 3은 처리 세트의 일 실시예의 개략적인 설명도,
도 4는 처리 세트의 다른 실시예의 개략적인 설명도,
도 5는 그 이상의 처리 세트의 개략적인 설명도,
도 6은 도 1의 시스템을 위한 브리지의 실시예의 개략적인 블록도,
도 7은 도 6의 브리지의 개략적인 저장 블록도,
도 8은 도 6의 브리지의 개략적인 제어 로직 블록도,
도 9는 도 6의 브리지의 개략적인 라우팅 매트릭스의 개략적인 설명도,
도 10은 도 6의 브리지의 실시 예시도,
도 11은 도 6의 브리지의 동작 상태를 나타낸 상태도,
도 12는 도 6의 브리지 동작의 단계를 나타낸 흐름도,
도 13은 도 12의 상세한 동작 단계를 나타낸 흐름도,
도 14는 도 1의 시스템에서 후술할 I/O 사이클을 나타낸 도면,
도 15는 공시 기록 버퍼에 저장된 데이터를 나타낸 도면,
도 16은 슬롯 응답 레지스터의 개략적인 설명도,
도 17은 비유사(dissimilar) 데이터 기록 단계를 나타낸 도면,
도 18은 도 17의 변형을 나타낸 도면,
도 19는 비유사 데이터 판독 단계를 나타낸 도면,
도 20은 대체 비유사 데이터 판독 단계를 나타낸 도면,
도 21은 비유사 데이터 기록 장치의 동작을 요약한 흐름도,
도 22는 도 1의 시스템 내에 중재를 설명하는 개략적인 블록도,
도 23은 디바이스 버스 중재기의 동작을 나타낸 상태도,
도 24는 브리지 중재기의 동작을 나타낸 상태도,
도 25는 PCI 신호용 타이밍도,
도 26은 직접 메모리 액세스를 위한 도 6의 브리지 동작을 나타낸 개략도,
도 27은 도 6의 브리지에서 직접 메모리 액세스 방법을 나타낸 흐름도,
도 28은 더티 RAM의 감시를 포함하는 재통합(re-integration) 처리 흐름도이다.
도 1은 복수의 CPU 세트(처리 세트)(14, 16)와 브리지(12)를 포함하는 고장 허용 컴퓨팅 시스템(10)의 개략적인 개요도이다. 도 1에 도시된 것처럼, 2개의 처리 세트(14, 16)가 존재하지만, 다른 실시예에서는 3개 이상의 처리 세트가 존재할 수도 있다. 브리지(12)는, 처리 세트와 디바이스 28, 29, 30, 31 및 32와 같은 I/O 디바이스 사이에서 인터페이스를 제공한다. 이 실시예에서, "처리 세트(processing set)" 용어는, 공통 출력 및 입력을 출력하여 수신하는 메모리를 포함 가능한 하나 이상의 프로세서의 그룹을 나타내는데 사용된다. 주목해야 할 것은, 상기 언급된 대체 용어 , "CPU세트(CPU set)"를 대신하여 사용할 수 있고, 이 용어들은 이 문서 전체에서 상호교환 가능하게 사용할 수 있다는 것이다. 또한, 주목해야 할 것은, 용어 "브리지(bridge)"는, 동일 또는 다른 형태의 2개 이상의 버스를 상호연결하는데 적합한 임의의 디바이스, 장치(apparatus) 또는 구성을 나타내는데 사용된다는 것이다.
제 1 처리 세트(14)는, 주변 구성 요소 내부 접속(Peripheral Component Interconnect; PCI) 버스인 경우에 제 1 처리 세트 I/O 버스(PA-버스)를 통해 브리지(12)에 접속된다. 제 2 처리 세트(16)는, 그 PA-버스(24)(즉, 여기서 PCI 버스)와 같은 형태의 제 2 처리 세트 I/O 버스(PB-버스)(26)를 통해 브리지(12)에 접속된다. 또한, I/O 디바이스는, PCI 버스인 경우에 디바이스 I/O 버스(D-버스)(22)를 통해 브리지(12)에 접속된다.
설명된 특정 실시예에서는, 버스(22, 24 및 26)가 모두 PCI 버스이지만, 이는 실시예에서만이고, 다른 실시예에서는, 다른 버스 프로토콜이 사용될 수도 있고, D-버스(22)가 PA-버스 및 PB-버스(P 버스)(24, 26)의 프로토콜과 다른 프로토콜을 가질 수도 있다.
처리 세트(14, 16)와 브리지(12)가 공통 클록(20)의 제어하에 동기적으로 동작할 수 있고 여기에 클록 신호선(21)에 의해 접속된다.
이더넷(E-NET) 인터페이스(28)와 소형 컴퓨터 시스템 인터페이스(Small Computer System Interface; SCSI)(29)를 포함한 일부 디바이스는, 디바이스 버스(22)에 영구히 접속되지만, I/O 디바이스(30, 31 및 32)와 같은 다른 I/O 디바이스는 개개의 교환 슬롯(slot)(33, 34 및 35)에 빨리 삽입가능(hot insertable)하다. 동적 전계 효과 트랜지스터(FET) 스위칭은, 슬롯(33, 34 및 35)이 디바이스 30, 31 및 32와 같은 디바이스를 빨리 삽입가능하게 하기 위해 제공될 수 있다. FET의 제공으로, 가동중(active)인 디바이스들만이 교환되기 때문에 D-버스(22)의 길이를 증가시킬 수 있어서 전체의 버스 길이를 효과적으로 감소시킬 수 있다. D-버스(22)에 접속될 수 있는 I/O 디바이스의 수와 이들을 위해 제공된 슬롯의 수를, 특정 설계 요구조건에 따른 특정한 실시예예 따라 조정할 수 있다는 것을 알아야 할 것이다.
도 2는 도 1에 나타낸 형태의 브리지 구조를 이용한 고장 허용 컴퓨터의 특정 실시예의 개략적인 개요도이다. 도 2에서, 고장 허용 컴퓨터 시스템은, 접속된 I/O 디바이스의 수를 증가시키고 신뢰성 및 중복성을 향상시키기 위해서 제 1 및 제 2 I/O 마더보드(MB 40, MB 42)상의 복수(여기서 4개)의 브리지(12)로 구성된다. 따라서, 도 2에 도시된 실시예에서, 2개의 처리 세트(14, 16)는, 처리 세트 보드(44, 46)가 I/O 마더보드 MB 40 및 MB 42를 브리지하면서 각각의 처리 세트 보드(44, 46) 상에 각각 제공된다. 제 1 마스터 클록원(20A)은, 제 1 마더보드(40)에 실장되고, 제 2 슬레이브 클록원(20B)은 제 2 마더보드(42)에 실장된다. 이때, 클록 신호는, 각각의 접속(도 2에 미도시됨)을 통하여 처리 세트 보드(44, 46)에 인가된다.
제 1 및 제 2 브리지(12.1, 12.2)는, 제 1 I/O 마더보드(40)에 실장된다. 제 1 브리지(12.1)는, P 버스(24.1, 26.1)에 의해 각각 처리 세트(14, 16)에 접속된다. 이와 유사하게, 제 2 브리지(12.2)는 P 버스(24.2, 26.2)에 의해 각각 처리 세트(14, 16)에 접속된다. 이때, 브리지 12.1은 I/O 데이터 버스(D-버스)에 접속되고, 브리지 12.2는 I/O 데이터 버스(D-버스)(22.2)에 접속된다.
제 3 및 제 4 브리지(12.3, 12.4)는, 제 2 I/O 마더보드(42)에 실장된다. 이때, 브리지 12.3은 P 버스(24.3, 26.3)에 의해 각각 처리 세트(14, 16)에 접속된다. 이와 유사하게, 브리지 12.4는 P 버스(24.4, 26.4)에 의해 각각 처리 세트(14, 16)에 접속된다. 이때, 브리지 12.3은 I/O 데이터 버스(D-버스)에 접속되고, 브리지 12.4는 I/O 데이터 버스(D-버스)(22.4)에 접속된다.
도 2에 도시된 구성은, 많은 수의 I/O 디바이스가 D-버스 22.1, 22.2, 22.3 및 22.4를 통하여, 이용가능한 I/O 디바이스의 범위를 증가시키거나 고도의 중복성을 제공하기 위해, 또는 이들을 위해 2개의 처리 세트(14, 16)에 접속할 수 있게 한다는 것을 알 수 있다.
도 3은 도 1의 처리 세트(14)와 같은 처리 세트의 가능한 일 구성을 갖는 개략적인 개요도이다. 이 처리 세트(16)는, 동일한 구성을 가질 수 있다. 도 3에서, 복수의 프로세서(여기서, 4개)(52)는, 처리 세트 버스 제어기(50)에 하나 이상의 버스(54)에 의해 접속된다. 도 3에 도시된 것처럼, 하나 이상의 처리 세트 출력 버스(24)는 처리 세트 버스 제어기(50)에 접속되되, 각 처리 세트 출력 버스(24)가 각각의 브리지(12)에 접속된다. 예를 들면, 도 1의 구성에는 하나의 처리 세트 I/O 버스(P 버스)(24)만 제공되는 반면에, 도 2의 구성에는 그와 같은 4개의 처리 세트 I/O 버스(P 버스)(24)가 제공된다. 도 3에 도시된 처리 세트(14)에서 개개의 프로세서는, 공통 메모리(56)를 사용하여 동작하고, 입력을 수신하고 출력을 공통 P 버스(들)(24)에 제공한다.
도 4는 도 1의 처리 세트(14)와 같은 처리 세트를 갖는 대체 구성이다. 여기서, 복수의 프로세서/메모리 그룹(61)은 공통 내부 버스(64)에 접속된다. 각 프로세서/메모리 그룹(61)은, 내부 그룹 버스(63)에 접속된 하나 이상의 프로세서(62)와 관련 메모리(66)를 포함한다. 인터페이스(65)는, 내부 그룹 버스(63)를 공통 내부 버스(64)에 접속시킨다. 따라서, 도 4에 도시된 구성에서, 각각의 프로세서(62)와 관련 메모리(66)를 가진 개개의 처리 그룹은, 공통 내부 버스(64)를 통하여 처리 세트 버스 제어기(60)에 접속된다. 인터페이스(65)는, 하나의 처리 그룹의 프로세서(62)가 로컬 메모리 뿐만 아니라, 처리 세트(14)내의 다른 처리 그룹(61)의 메모리에 있는 데이터에 관해 동작가능하게 한다. 처리 세트 버스 제어기(60)는, 공통 내부 버스(64)와 브리지(들)(12)에 접속된 처리 세트 I/O 버스(들)(P 버스(들))(24) 사이에서 공통 인터페이스를 제공한다. 주목해야 할 것은, 도 4에서는 2개의 처리 그룹(61)만 도시하였지만, 이러한 구조는, 처리 그룹의 수에 제한되지 않는다는 것을 알아야 한다는 것이다.
도 5는 도 1의 처리 세트(14)와 같은 처리 세트를 갖는 대체 구성을 나타낸 것이다. 여기서, 간단한 처리 세트는, 공통 버스(74)를 통하여 처리 세트 버스 제어기(70)에 접속된 단일 프로세서(72)와 관련 메모리(76)를 구비한다. 이 처리 세트 버스 제어기(70)는, 내부 버스(74)와 브리지(들)(12)에 접속하기 위한 처리 세트 I/O 버스(들)(P 버스(들))(24) 사이에 인터페이스를 제공한다.
따라서, 이러한 도 3, 도 4 및 도 5로부터 알 수 있는 것은, 처리 세트가 많은 다른 형태를 가질 수도 있고, 특정 처리 세트 구조의 특정한 선택이 특정 애플리케이션의 처리 요구조건과 요구된 중복성의 정도에 의거하여 만들어질 수 있다는 것이다. 다음의 설명에서, 처리 세트(14, 16)가 도 3에 도시된 것과 같은 구조를 가졌다고 가정하지만, 다른 처리 세트의 형태를 제공할 수 있다는 것을 알아야 할 것이다.
브리지(들)(12)는, 많은 동작 모드에서 동작할 수 있다. 이 동작 모드들은, 나중에 상세히 설명할 것이다. 그렇지만, 2개의 동작 모드를, 브리지의 구조에 관해 일반적인 이해를 돕기 위해서 여기서 간단히 요약하겠다. 제 1 조합 모드에서, 브리지(12)는 처리 세트(14, 16)(PA 및 PB 버스(24, 26)를 각각 통하여)와 디바이스(D 버스(22)를 통하여) 사이에서 어드레스 및 데이터를 라우팅하도록 동작할 수 있다. 이때, 조합 모드에서, 처리 세트(14, 16)에 의해 발생된 I/O 사이클을 비교하여, 두 처리 세트가 정확하게 동작하고 있는 것을 확인한다. 그 비교 실패로, 브리지(12)는 디바이스 I/O를 막고 진단 정보를 수집하는 오류 제한 모드(EState)가 된다. 제 2 분할 모드에서, 브리지(12)는, D 버스(22)상의 처리 세트(14, 16)중의 하나 및/또는 처리 세트(16, 14)중의 나머지 각각으로부터의 어드레스와 데이터를 라우팅하여 중재한다. 이 동작 모드에서는, 처리 세트(14, 16)를 동기화하지 않고, I/O 비교를 하지 않는다. 또한, 두 모드에서 DMA 동작을 허가한다. 상술한 것처럼, 조합 및 분할 모드를 포함한 다른 동작 모드는, 나중에 더욱 상세히 설명하겠다. 그렇지만, 지금은 브리지(12)의 기본적인 실시예의 구조에 관해 설명한다.
도 6은 도 1의 브리지(12)의 개략적인 기능 개요도이다. 제 1 및 제 2 처리 세트 I/O 버스 인터페이스, PA 버스 인터페이스(84) 및 PB 버스 인터페이스(86)는, PA 및 PB 버스(24, 26)에 각각 접속된다. 디바이스 I/O 버스 인터페이스인 D 버스 인터페이스(82)는 D 버스(22)에 접속되어 있다. 주목해야 할 것은, PA, PB 및 D 버스 인터페이스를, 별도의 소자로서 구성할 필요는 없고 브리지의 다른 소자에 포함할 수 있다는 것이다. 따라서, 이는 버스 인터페이스를 참조한 이 문헌의 문맥내에 특정한 별도의 구성요소가 존재할 필요는 없고, 반대로 예를 들면 관련된 버스선의 물리적 또는 논리적인 브리지 접속에 의해 관련된 버스에 접속시킬 브리지의 성능이 요구된다.
라우팅(이후, 라우팅 매트릭스라 칭함)(80)은, 제 1 내부 경로(94)를 통하여 PA 버스 인터페이스(84)에 그리고 제 2 내부 경로(96)를 통하여 PB 버스 인터페이스(86)에 접속된다. 또한, 라우팅 매트릭스(80)는, 제 3 내부 경로(92)를 통하여 D 버스 인터페이스(82)에 접속된다. 이에 따라, 라우팅 매트릭스(80)는, PA 버스 인터페이스(84)와 PB 버스 인터페이스(86) 사이에서 두 방향으로 I/O 버스 트랜잭션 라우팅을 제공할 수 있다. 또한, 그 라우팅 매트릭스는, PA 및 PB 버스 인터페이스(84, 86)중의 하나 또는 이 두 개의 버스 인터페이스와 D 버스 인터페이스(84) 사이에 두 방향으로 라우팅을 제공할 수 있다. 이 라우팅 매트릭스(80)는, 그 이상의 내부 경로(100)를 통하여 저장 제어 로직(90)에 접속된다. 이 저장 제어 로직(90)은, 브리지 레지스터(110)와 랜덤 액세스 메모리(SRAM)(126)로의 액세스를 제어한다. 따라서, 이 라우팅 매트릭스(80)는, PA, PB 및 D 버스 인터페이스(84, 86 및 82)와 저장 제어 로직(90) 사이에서 두 방향으로 라우팅을 제공하도록 동작할 수 있다. 이러한 라우팅 매트릭스(80)는, 제어 경로(98, 99)를 거쳐 브리지 제어 로직(88)에 의해 제어된다. 이때의 브리지 제어 로직(88)은, 내부 경로(93, 95, 97)의 제어 신호, 데이터 및 어드레스에 응답하고, 또한 클록선(들)(21)의 클록 신호에 응답한다.
본 발명의 실시예에서, 각각의 P 버스(PA 버스(24) 및 PB 버스(26))는 PCI 프로토콜하에 동작한다. 또한, 처리 세트 버스 제어기(50)(도 3 참조)는 PCI 프로토콜하에 동작한다. 따라서, PA 및 PB 버스 인터페이스(84, 86)는, D 버스(22) 또는 내부 메모리 및 저장 서브시스템(90)내의 브리지의 레지스터에 및 로부터 전송된 데이터를 마스터 및 슬레이브 동작에 공급하는 호환 가능한 인터페이스에 필요한 모든 기능을 각각 제공한다. 버스 인터페이스(84, 86)는, 브리지의 오류 상태(EState)로의 천이 또는 I/O 오류의 검출에 관해 저장 서브시스템(90)에 있는 내부 브리지 상태 레지스터에 진단 정보를 제공할 수 있다.
디바이스 버스 인터페이스(82)는, PA 및 PB 버스(84, 86)중의 하나에 및 로부터 데이터를 전송하기 위해 PCI 컴플라이언트 마스터 및 슬레이브 인터페이스를 위해 필요한 모든 기능을 수행한다. D 버스(82)는, 직접 메모리 액세스(DMA) 전송 동안, 오류 상태로의 천이 또는 I/O 오류의 검출에 관해 브리지의 저장 서브시스템(90)에 있는 내부 상태 레지스터에 진단 정보를 제공하도록 동작할 수 있다.
도 7은 브리지 레지스터(110)와 SRAM(124)을 더욱 상세히 나타낸 것이다. 저장 제어 로직(110)은, 경로(예: 버스)(112)를 통하여 레지스터 구성요소(114, 116, 118, 120)에 접속된다. 또한, 이 저장 제어 로직은, 경로(예: 버스)(128)를 통하여 공시 기록 버퍼 소자(122) 및 더티 RAM 소자(124)가 매핑된 SRAM(126)에 접속된다. 구성요소(114, 116, 118, 120 및 124)의 특정 구성이 도 7에 도시되었지만, 이들 구성요소는 다른 방법으로 공통 메모리(예: 경로(112/128)가 메모리 영역의 내부 어드레싱에 의해 형성되는 SRAM(126)과 같은 랜덤 액세스 메모리)의 영역으로서 정의된 다른 구성요소로 구성될 수도 있다. 도 7에 도시된 것처럼, 공시 기록 버퍼(122)와 더티 RAM(124)을 SRAM 메모리(126)의 다른 영역에 매핑하는 반면에, 레지스터(114, 116, 118 및 120)를 SRAM 메모리로부터 별도로 구성한다.
제어 및 상태 레지스터(CSR)(114)는, 브리지의 다양한 동작 모드의 제어를 허가하고, 오류 상태용 및 I/O 오류용 진단 정보의 비교포착(capture)을 허가하며, D 버스(22)에 접속된 PCI 슬롯과 디바이스로의 처리 세트 액세스를 제어하는 내부 레지스터로 구성된다. 이들 레지스터는 라우팅 매트릭스(80)로부터의 신호에 의해 설정된다.
비유사 데이터 레지스터(Dissimilar Data Register; DDR)(116)는, 비결정성 데이터 이벤트가 조정가능하도록 비유사 데이터를 포함하는 위치를 다른 처리 세트에 제공한다. 이들 레지스터는 PA 및 PB 버스로부터의 신호에 의해 설정된다.
브리지 디코드 로직으로, 공통 기록은 데이터 비교기를 디스에이블시키고 각 처리 세트(14, 16)에 대해 하나인 2개의 DDR(116)로의 기록을 허용할 수 있다.
그래서, DDR중 선택된 하나를, 처리 세트(14, 16)에 의해 동기내에 판독할 수 있다. 따라서, DDR은, 위치가 하나의 처리 세트(14/16)에서 다른 처리 세트(16/14)로 반영될 수 있게 하는 장치를 제공한다.
슬롯 응답 레지스터(Slot Response Register; SSR)(118)는, D 버스(2)의 디바이스 슬롯의 소유권을 결정하여 적절한 처리 세트(들)에 대해 라우팅하려는 DMA를 허가한다. 이들 레지스터는 어드레스 디코드 로직에 연결된다.
비접속 레지스터(120)는, 데이터가 다른 버스로 가는 도중에 브리지에 있는 동안 중단된 I/O 사이클을 갖는 데이터 위상의 저장에 사용된다. 이때, 비접속 레지스터(120)는, 타겟(target) 디바이스가 트랜잭션을 비접속할 때 또는 오류 상태가 검출될 때 브리지에 대기된(queued) 모든 데이터를 수신한다. 이들 레지스터는 라우팅 매트릭스(80)에 접속된다. 이 라우팅 매트릭스는, 3개의 데이터 워드와 바이트 인에이블까지 대기할 수 있다. 초기 어드레스가 같다고 가정하면, 어드레스 타겟 제어기는 데이터가 브리지와 목적지(또는 타겟) 사이에서 교환될 때 증가하는 어드레스를 얻는다. 라이터(writer)(예를 들면, 프로세서 I/O 기록 또는 DVMA(D 버스 내지 P 버스 액세스)가 데이터를 타겟에 기록하는 경우, 이 데이터는 오류가 일어날 때 브리지에 캐치(catch)될 수 있다. 따라서, 이 데이터는 오류가 일어날 때 비접속 레지스터(120)에 저장된다. 그래서, 이들 비접속 레지스터는, 오류 상태로부터의 복구에 관해 액세스되어서 오류 상태가 시작되었을 때에로 진행하여 기록 또는 판독 사이클과 관련된 데이터를 복구할 수 있다.
별도로 도시되었지만, DDR(116), SRR(118) 및 비접속 레지스터는 CSR(114)의 내장 부분으로 구성할 수도 있다.
오류 상태 및 오류 CSR(114)은, 실패 데이터의 표시로 P 버스(24, 26)의 실패 사이클의 비교포착(capture)이 제공된다. 오류 상태로의 이동 후, P 버스에서 시작된 모든 기록은 공시 기록 버퍼(122)에 로깅(logging)된다. 이들은, 처리 세트 버스 제어기(50)에 보내지거나, 오류 상태 인터럽트로 프로세서가 P 버스(24, 26)로의 기록을 실행하는 것을 멈추기 전에 소프트웨어에 의해 시작될 수도 있는 다른 기록일 수도 있다.
더티 RAM(124)은, 처리 세트(14, 16)의 주 메모리(56)가 갖는 페이지가 D 버스(22)상의 하나 이상의 디바이스로부터의 직접 메모리 액세스(DMA) 트랜잭션에 의해 변형된 것을 표시하는데 사용된다. 각 페이지(예: 각 8K 페이지)는, DMA 기록이 일어날 때 세트되는 더티 RAM(124)에 있는 단일 비트에 의해 마크되고, 처리 세트(14, 16)의 프로세서(52)에 의해 더티 RAM(124)에서 시작된 판독 및 클리어 사이클에 의해 클리어될 수 있다.
이때의 더티 RAM(124)과 공시 기록 버퍼(118) 모두는, 브리지(12)에 있는 메모리(124)에 매핑될 수 있다. 이 메모리 공간은 시험 목적을 위해 통상의 판독 및 기록 사이클 동안 액세스될 수 있다.
도 8은 도 6에 도시된 브리지 제어 로직(88)의 개략적인 기능 개요도이다.
D 버스(22)에 접속된 모든 디바이스는, 지리적으로 어드레싱된다. 따라서, 이 브리지는, 슬롯들로의 액세스가 시작되기 전에 각 슬롯에 대해 절연성 FET를 인에이블하는데 필요한 디코딩을 실행한다.
어드레스 디코드 로직(136, 138)에 의해 수행된 어드레스 디코딩은,
- 액세스가 PA 버스 인터페이스(84)에서 PB 버스 인터페이스(86)로 라우팅되는 경우, 하나의 처리 세트(예: 도 1의 처리 세트(14))에 의해 다른 처리 세트(예: 도 1의 처리 세트(16))로의 동기외 액세스(out-of-sync access)(즉, 조합 모드에 없음),
- D 버스 인터페이스(82)를 통하여 액세스가 라우팅되는 경우에, 분할 모드에서 처리 세트(14, 16)중의 하나 또는 조합 모드에서 두 개의 처리 세트(14, 16)에 의해 D 버스(22)상의 I/O 디바이스로의 액세스,
- D 버스(22)상의 디바이스에 의해 조합 모드에서 두 처리 세트 14 및 16 또는 동기외인 경우 관련 처리 세트 14 또는 16으로 향하고, 분할 모드에서 디바이스가 위치한 슬롯을 소유하는 처리 세트 14 또는 16으로 향하는 처리 세트 14 및 16중의 하나 또는 두 처리 세트로의 DMA 액세스,
-I/O 슬롯에 있는 디바이스로의 PCI 구성 액세스의 4개의 기본 액세스 형태를 필수적으로 허용한다.
상술한 것처럼, 지리적인 어드레싱을 이용한다. 따라서, 예를 들면, 마더보드 A의 슬롯 0는, 처리 세트 14에 의해 또는 처리 세트 16에 의해 언급될 때 동일한 어드레스를 가진다.
지리적인 어드레싱은 PCI 슬롯 FET 스위칭과 함께 사용된다. 상술한 구성 액세스 동안, 별도의 디바이스 선택 신호가 절연된 FET가 없는 디바이스에 제공된다. 단일 디바이스 선택 신호는, FET 신호로 카드를 정확히 인에이블하는데 사용될 수 있기 때문에 교환된 PCI 슬롯에 제공될 수 있다. 별도의 FET 교환선은 FET를 슬롯으로 별도로 교환하기 위한 각 슬롯에 구성된다.
CSR 레지스터(114)에 통합될 수 있는 SRR(118)은, 어드레스 디코드 기능과 관련되어 있다. 이때의 SRR(118)은, 나중에 더욱 상세히 설명할 많은 다른 역할을 가진다. 그러나, 일부 역할은여기서 요약되어 있다.
조합 모드에서, 각 슬롯이 디스에이블되어서 기록이 디바이스 버스(22)상에 일어나는 임의의 트랜잭션 없이 간단히 인식됨에 따라 데이터를 잃어버린다. 판독은, 다시 한번 디바이스 보드의 트랜잭션을 일으키지 않고서 무의미한 데이터를 귀환시킬 것이다.
분할 모드에서, 각 슬롯은 3개의 상태중의 하나일 수 있다. 그 상태는,
- 미소유,
- 처리 세트 A(14)에 의한 소유,
- 처리 세트 B(16)에 의한 소유가 있다.
액세스(이는 미소유 또는 소유 슬롯을 포함)하는 처리 세트 14 또는 16에 의해 소유되지 않은 슬롯을 액세스할 수 없다. 따라서, 이러한 액세스는 중단된다.
처리 세트 14 또는 16이 전원이 꺼질 경우, 그것에 의해 소유된 모든 슬롯은 미소유 상태로 이동한다. 처리 세트 14 또는 16는 미소유 슬롯을 청구할 수만 있고, 다른 처리 세트로부터 벗어난 소유권을 얻을 수 없다. 이는 다른 처리 세트의 전원을 오프함으로써 또는 다른 처리 세트가 소유권을 포기함으로써 할 수 있을 뿐이다.
소유권 비트는, 조합 모드에 있는 동안은 산정할 수 있고 세트할 수 있지만, 분할 상태로 들어가기까지 효과가 없다. 이것으로 분할 시스템의 구성을 조합 모드에 계속 있는 동안 결정한다.
각 PCI 디바이스는, 처리 세트 어드레스 맵의 영역이 할당되어 있다. 어드레스의 상위 비트는 PCI 슬롯에 의해 결정된다. 디바이스가 DMA를 실행하는 경우, D 버스 중재기가 디바이스가 특정 시간에 버스를 사용하고 있는 브리지에게 알리기 때문에, 브리지는, 디바이스가 정확한 어드레스를 사용하고 있는 것을 체크할 수 있다. 디바이스 액세스가 그 액세스에 대해 유효하지 않은 처리 세트 어드레스인 경우, 그 디바이스 액세스는 무시될 것이다. 주목해야 할 것은, 디바이스에 의해 제공된 어드레스가 처리 세트 버스 제어기(50)에 있는 I/O 메모리 관리부에 의해 실제 메모리 어드레스로 바뀌는 가상 어드레스일 것이다라는 것이다.
어드레스 디코더에 의해 출력된 어드레스는, 초기 및 타겟 제어기(138, 140)를 통하여 브리지 제어기(132) 및 중재기(134)의 제어하에 선(98)을 통해 라우팅 매트릭스(80)에 넘어간다.
중재기(134)는, 다양한 다른 모드에서 P 및 D 버스의 종래 PCI 버스 신호를 사용하여 선도착 선처리 기반(first-come-first-served basis)의 브리지를 위하여 중재하도록 동작할 수 있다.
이때, 중재기(134)는, 조합 모드에서, 동기내 처리 세트(14, 16)와 브리지(12)를 위한 디바이스 버스(22)의 임의의 초기화기 사이에서 중재하도록 동작할 수 있다. 그 가능한 시나리오는,
- 디바이스 버스(22)로의 처리 세트 액세스,
- 브리지(12)에 있는 내부 레지스터로의 처리 세트 액세스,
- 처리 세트 메모리(56)로의 디바이스 액세스가 있다.
두 처리 세트(14, 16)는, 분할 모드에서, 브리지 사용을 중재하여서 디바이스 버스(22)와 내부 브리지 레지스터(예: CSR 레지스터(114))로 액세스한다. 또한, 브리지(12)는 그 디바이스 버스(22)를 위하여 디바이스 버스(22)의 초기화기와 경쟁해야 한다.
디바이스 버스상의 각 슬롯은, 그것과 관련된 중재 인에이블 비트를 가진다. 이들 중재 인에이블 비트는 리세트 후에 클리어 되고, 슬롯이 버스를 요청(request)하게 세트되어야 한다. 디바이스 버스(22)상의 디바이스가, I/O 오류를 제공한다고 의심될 경우, 그 장치를 위한 중재 인에이블 비트는 자동으로 브리지에 의해 리세트된다.
처리 세트 버스 제어기(들)(50)에 있는 PCI 버스 인터페이스는, 관련된 P 버스를 위한 마스터 버스 제어기가 되기를 기대하는, 즉 그것은 접속된 PA 또는 PB 버스용 PCI 버스 중재기를 구비한다. 이때, 브리지(12)는 PA 및 PB 버스(24, 26)로의 액세스를 직접 제어할 수 없다. 또한, 브리지(12)는, 관련된 버스상의 버스 제어기(50)의 제어하에 관련된 버스상의 처리 세트와 함께 PA 또는 PB 버스로의 액세스를 경쟁한다.
또한, 도 8에 비교기(130)와 브리지 제어기(132)가 도시되어 있다. 이때의 비교기(130)는 임의의 동기외 이벤트를 결정하기 위해 처리 세트(14, 16)로부터의 I/O 사이클을 비교하도록 동작할 수 있다. 동기외 이벤트를 결정하자마자, 비교기(130)는, 브리지 제어기(132)로 하여금 동기외 이벤트의 분석과 이로부터 가능한 복구를 위한 오류 상태가 활성화되도록 동작할 수 있다.
도 9는 라우팅 매트릭스(80)의 개략적인 기능 개요도이다.
이 라우팅 매트릭스(80)는, 이 라우팅 매트릭스로의 현재 입력으로서 PA 버스 경로(94), PB 버스 경로(96), D 버스 경로(92) 또는 내부 버스 경로(100) 중의 하나를 선택하기 위해 도 8의 초기 제어기(138)로부터의 초기 제어신호(98)에 응답하는 멀티플렉서(143)를 포함한다. 별도의 출력 버퍼(144, 145, 146 및 147)는, 이 버퍼들이 도 8의 타겟 제어기(140)로부터의 신호(99)에 의해 선택적으로 인에이블되면서, 각 경로(94, 96, 92 및 100)에 출력을 위해 제공된다. 멀티플렉서와 버퍼(144-147) 사이의 신호는 버퍼(149)에 보유된다. 본 실시예에서 I/O 사이클용 3개의 데이터 사이클은, 멀티플렉서(143) 버퍼 149 및 버퍼 144로 나타낸 파이프라인에 보유될 것이다.
도 6 내지 도 9에 브리지의 소자의 기능적인 설명이 되어 있다. 도 10은, 브리지 제어 로직(88), 저장 제어 로직(90) 및 브리지 레지스터(110)가 제 1 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array; FPGA)(89)에서 실행되고, 라우팅 매트릭스(80)는 다른 FPGA(80.1, 80.2)에서 실행되며, SRAM(126)이 어드레스 제어선(127)에 의해 어드레싱된 하나 이상의 별도의 SRAM으로 실행되는 브리지의 물리적인 구성의 개략적인 설명도이다. 도 6에 도시된 버스 인터페이스(82, 84, 86)는 별도의 소자가 아니라, FPGA(80.1, 80.2, 89)에 집적된다. 이때, 2개의 FPGA(80.1, 80.2)는 64비트 PCI 버스의 상위 32비트 32-63과 64비트 PCI 버스의 하위 32비트 0-31을 위해 사용된다. 단일 FPGA는, 필수 로직이 디바이스내에 수용될 수 있는 라우팅 매트릭스(80)용으로 이용될 수 있다는 것을 알 것이다. 실제로, 충분한 능력을 갖는 FPGA가 이용가능한 경우, 브리지 제어 로직, 저장 제어 로직 및 브리지 레지스터는 라우팅 매트릭스와 같은 FPGA에 통합될 수 있다. 실제로, 많은 다른 구성을 직시할 수도 있고, 실제로, FPGA이외의 기술, 예를 들면 하나 이상의 응용 주문형 집적회로(Application Specific Integrated Circuit; ASIC)를 사용할 수도 있다. 도 10에 도시된 것처럼, FPGA(89, 80.1, 80.2)와 SRAM(126)이 내부 버스 경로(85)와 경로 제어선(87)을 통하여 접속된다.
도 11은 브리지의 다양한 동작 모드를 더욱 상세히 나타낸 천이도이다. 이 브리지 동작은 3개의 기본 모드, 즉 오류 상태(EState) 모드(150), 분할 상태 모드(156) 및 조합 상태 모드(158)로 나눌 수 있다. 오류 상태 모드(150)는 2개의 상태로 더 나눌 수 있다.
브리지의 전원을 켜면서 초기 리세팅 또는 그 다음의 동기외 이벤트 후, 브리지는 초기 오류 상태(152)에 있다. 이 상태에서는, 모든 기록이 공시 기록 버퍼(120)에 저장되고, 내부 브리지 레지스터(예: CSR 레지스터(116))로부터의 모든 판독이 허가되며, 모든 다른 판독이 오류로서 취급(즉, 모든 다른 판독은 중단됨)된다. 이 상태에서, 개개의 처리 세트(14, 16)는, 재시작 시간을 결정하기 위한 평가를 수행한다. 각 처리 세트(14, 16)는 그 자신의 재시작 타이머 타이밍을 결정한다. 이때, 타이머 세팅은 오류 상태로의 천이를 위한 "블레임(blame)" 요소에 의존한다. 오류가 일어날 가능성을 결정하는 처리 세트는 타이머에 대해 긴 시간을 설정한다. 오류가 일어나지 않을 가능성을 고려하는 처리 세트는 타이머에 대해 짧은 시간을 설정한다. 타임 아웃된 제 1 처리 세트(14, 16)는, 주 처리 세트가 된다. 따라서, 이것이 결정될 경우, 브리지는 주 오류 상태(154)로 이동(153)한다.
두 처리 세트(14, 16)가 주 처리 세트가 될 경우, 브리지는 주 오류 상태(154)에서 동작중이다. 이 상태를 주 처리 세트가 브리지 레지스터(특히 SRR(118))에 기록한다. 다른 기록은 공시 기록 버퍼에 더 이상 저장되지 않지만, 간단히 잃어버리게 된다. 디바이스 버스는 주 오류 상태(154)에서 계속 중단된다.
그 오류 상태 조건이 제거되면, 브리지는 분할 상태(156)로 이동한다. 이 분할 상태(156)에서는, 브리지 저장으로의 액세스가 간단히 중재되는 동안 디바이스 버스(22)로의 액세스가 SRR 레지스터(118)에 의해 제어된다. 처리 세트(14, 16)의 주 상태는 무시된다. 조합 동작으로의 천이는 동기_리세트(sync_reset)(157)에 의해 이루어진다. 동기_리세트 동작의 발생 후, 브리지는 조합 상태(158)에서 동작할 수 있어서, D 버스(22)와 PA 및 PB 버스(24, 26)상의 모든 판독 및 기록 액세스가 허가된다. 이러한 PA 및 PB 버스(24, 26)상의 모든 액세스를, 비교기(130)에서 비교한다. 임의의 판독과 기록 사이클(특정 비유사 데이터 I/O 사이클 예외)간의 불일치의 검출로 인해 오류 상태(150)로의 천이(151)를 일으킨다. 위에서 설명된 다양한 상태는, 브리지 제어기(132)에 의해 제어된다.
비교기(130)의 역할은, 조합 상태(151)에서 PA 및 PB 버스상의 I/O 동작을 감시 및 비교하여, 불일치 신호에 따라 브리지 제어기(132)에 통보하여서, 그 브리지 제어기(132)가 오류 상태(150)로의 천이(152)를 일으킨다. I/O 동작은, 처리 세트에 의해 시작된 모든 I/O 동작뿐만 아니라, 디바이스 버스상의 디바이스에 의해 시작된 DMA에 관한 DMA 전송도 포함한다.
표 1에서는 각각의 동작 상태에서 허용되는 다양한 액세스 동작을 아래와 같이 요약한다.
[표 1]
D 버스 - 판독 D 버스 - 기록
오류 상태 마스터 중단 공시 기록 버퍼에 저장됨
주 오류상태 마스터 중단 손실(lost)
분할 SRR비트에 의해 제어되고, 중재됨 SRR비트에 의해 제어되고, 중재됨
조합 허가되어 비교됨 허가되어 비교됨
상술한 것처럼, 초기 리세트 후, 시스템은 초기 오류상태(152)에 있다. 이 상태에서, 처리 세트 14 또는 16는, 다른 처리 세트 16 또는 14의 D 버스(22) 또는 P 버스 26 또는 24를 액세스할 수 없다. 브리지의 내부 브리지 레지스터(116)는, 액세스 가능하지만, 판독전용이다.
조합 상태(158)에서 동작하는 시스템은, 비교 실패가 이 브리지에서 검출되거나, 또는 이와는 달리, 비교 실패가, 예를 들면 도 2에 도시된 것과 같은 멀티-브리지 시스템에 있는 다른 브리지에서 검출되는 오류 상태(150)로 천이한다. 또한, 오류 상태(150)로의 천이는, 다른 상황, 예를 들면 자기 진단 동작의 일부를 형성하는 소프트웨어 제어 이벤트의 경우에 일어날 수 있다.
오류상태(150)로 이동하자마자, 인터럽트선(95)을 통해 처리 세트의 프로세서로 구성된 모든 프로세서에 또는 부분 집합에 인터럽트를 신호로 보낸다. 이 후, P 버스 24 또는 26상에서 발생된 모든 I/O 사이클은, 예외와 기록을 공시 기록 버퍼에 기록하면서 판독으로 귀환된다.
이제는 비교기(130)의 동작을 더 상세히 설명하겠다. 비교기는, 어드레스, 데이터 및 PA 및 PB 버스 인터페이스(84, 86)로부터 선택된 제어신호를 비교하기 위해 경로(94, 95, 96, 97)에 접속된다. 디바이스 I/O 버스(22)로의 동기내 액세스의 실패된 비교는, 조합 상태(158)에서 오류 상태(150)로의 이동을 일으킨다.
처리 세트 I/O 판독 사이클, 어드레스, 명령, 어드레스 패리티, 바이트 인에이블 및 패리티 오류 파라미터를 비교한다.
그 비교가 어드레스 위상 동안 실패하는 경우, 브리지는 데이터가 I/O 버스 제어기(50)를 떠나는 것을 막는 처리 세트 제어기(50)로의 재시도를 가정한다. 이 경우에 디바이스 I/O 버스(22) 상에서 활동이 일어나지 않는다. 그 프로세서(들)가 재시도하자마자 오류는 귀환되지 않는다.
데이터 위상(제어신호 및 바이트 인에이블만이 체크됨) 동안 비교를 실패하는 경우, 브리지는 처리 세트 버스 제어기(50)로 타겟-중단(target-abort)의 신호를 보낸다. 오류는 프로세서에 귀환된다. 처리 세트 I/O 버스 기록 사이클의 경우에, 어드레스, 명령, 패리티, 바이트 인에이블 및 데이터 파라미터를 비교한다.
비교가 기록 동작의 데이터 위상 동안 실패하는 경우, 데이터는 D버스(22)로를 넘어가지 않는다. 두 처리 세트(14, 16)로부터의 실패 데이터와 뭔가 다른 전송 속성이 비접속 레지스터(122)에 저장되고, 임의의 연속적인 공시 기록 사이클은 공시 기록 버퍼(118)에 기록된다.
가상적인 직접 메모리 액세스(direct virtual memory access; DVMA)의 경우에, 판독, 데이터 제어 및 패리티를, 각 자료에 대해 체크한다. 데이터가 일치하지 않을 경우, 브리지(12)는 P 버스상의 전송을 종료한다. DVMA의 경우, 기록, 제어 및 패리티 오류 신호를 정확성에 대해 체크한다.
특히 상술한 것들에 추가하여 다른 신호를 비교하여 처리 세트의 발산(divergence)을 표시한다. 이들 예는, 처리 세트 전송 동안 및 DMA 전송 동안 버스 허가 및 다양한 특정 신호가 있다.
오류는, 처리 세트 버스 제어기(50)에 의해 소프트웨어로 보이는 것들과 처리 세트 버스 제어기(50)에 의해 보이지 않는 것들의 2가지 형태로 대략 나뉨에 따라서, 브리지(12)로부터의 인터럽트에 의해 보일 필요가 있다. 따라서, 브리지는, 처리 세트 판독 기록 사이클과, DMA 판독 및 기록과 관련하여 보고된 오류를 비교포착하도록 동작할 수 있다.
브리지에 대한 클록 제어는, 클록선(21)으로부터의 클록 신호에 따라 브리지 제어기(132)에 의해 수행된다. 제어기(132)에서 브리지의 다양한 소자까지의 개개의 제어선이 도 6 내지 도 10에 도시되어 있지 않다.
도 12는 록스텝 오류가 동작의 조합 모드 동안에 검출되는 일련의 가능한 동작 단계를 나타낸 흐름도이다.
단계 S1은 록스텝 오류 체킹이 도 8에 도시된 비교기(130)에 의해 수행되는 동작의 조합 모드를 나타낸다.
단계 S2에서는, 록스텝 오류를 비교기(130)에 의해 검출되었다고 가정한다.
단계 S3에서는, 현재 상태를 CSR 레지스터(114)에 저장하고, 공시 기록을 공시 기록 버퍼(122) 및/또는 비접속 레지스터(120)에 저장한다.
도 13은 단계 S3를 더욱 상세히 나타낸 것이다. 따라서, 단계 S31에서는, 비교기(130)에 의해 통지된 록스텝 오류가 데이터를 디바이스 버스(22)로 넘어갈 수 있는 데이터 위상 동안에 일어났는지를 검출한다. 이 경우에, 단계 S32에서는, 버스 사이클을 종료한다. 그리고, 단계 S33에서는, 데이터 위상을 비접속 레지스터(120)에 저장하고서, 그 이상의 I/O 사이클을 저장할 필요가 있는지에 관해서 평가하는 단계 S35로 제어가 넘어간다. 또한, 단계 31의 경우, 데이터 위상, 어드레스 및 임의의 공시 기록 I/O 사이클용 데이터 위상이 공시 기록 버퍼(122)에 저장되는 동안에 록스텝 오류가 일어나지 않았다고 판단한다. 단계 S34에서는, 임의의 그 이상의 공시 기록 I/O 동작이 진행중에 있을 경우, 이들도 공시 기록 버퍼(122)에 저장된다.
단계 S3을 도 11에 도시된 초기 오류 상태(152)의 초기에 수행한다. 이 상태에서는, 제 1 및 제 2 처리 세트가 브리지로의 액세스를 중재한다. 따라서, 단계 S31-S35에서는, 공시 기록 어드레스와 각각의 처리 세트(14, 16)에 대한 데이터 위상을 공시 기록 버퍼(122)의 별도의 부분에 및/또는 상술한 것과 같은 비접속 레지스터로 구성된 단일 세트에 저장한다.
도 14는 공시 기록 버퍼(122)에 저장되어야할 필요가 있는 공시 기록 I/O 사이클의 소오스를 나타낸 것이다. 처리 세트(14, 16)의 정상 동작 동안, 개개의 프로세서에 있는 출력 버퍼(162)는, 처리 세트 버스 제어기(50)를 통하여 브리지(12)와 결국 디바이스 버스(22)에 전송하기 위해 공시된 I/O 사이클을 포함한다. 또한, 처리 세트 버스 제어기(50)에 있는 버퍼(160)는, 버스(24, 26)를 거쳐 브리지(12)와 결국 디바이스 버스(22)에 전송하기 위해 공시 I/O 사이클을 포함한다.
따라서, 오류 상태가 일어날 경우, I/O 기록 사이클은 이미 그들 자신의 버퍼(162)에 있는 프로세서(52)에 의해 공시될 수도 있거나, 처리 세트 버스 제어기(50)의 버퍼(160)에 이미 전송될 수도 있다는 것을 알 수 있다. 그것은 버퍼(162, 160)에 있는 I/O 기록 사이클을 통하여 점진적으로 전파하여 공시 기록 버퍼(122)에 저장될 필요가 있다는 것이다.
도 15에 도시된 것처럼, 공시 기록 버퍼(122)에 공시된 기록 사이클(164)이, 어드레스 및 어드레스 타입을 포함한 어드레스 필드(165)와, 바이트 인에이블 필드 및 데이터 그 자체를 포함한 1과 16 사이의 데이터 필드(166)를 포함할 수 있다.
이때, 데이터는, 초기 처리 세트가 주 CPU 세트로서 설계되지 않았으면 오류 상태에 있는 공시 기록 버퍼(122)에 기록된다. 이때, 오류 상태에 있는 비 주요 기록은, CPU 세트중의 하나가 주 처리 세트가 된 후에도 공시 기록 버퍼에 계속적으로 한다. CSR 레지스터(114)에 있는 어드레스 포인터는, 다음의 사용가능한 공시 기록 버퍼 어드레스를 가리키고, 또한 브리지가 공시 기록 버퍼의 상부를 지나서 기록하려고 시도할 때 세트된 오버플로우 비트를 처리 세트(14, 16) 중의 어느 하나에 제공한다. 실제로, 본 실시예에서는 첫 번째 16K 데이터만이 각 버퍼에 기록된다. 공시 기록 버퍼의 상부를 넘어서 기록하려는 시도는 무시된다. 공시 기록 버퍼 포인터의 값을, 리세트에 의해 또는 주 처리 세트의 제어하에 기록을 이용하는 소프트웨어에 의해 클리어할 수 있다.
도 12로 돌아가서, 상태 및 공시 기록을 저장한 후, 단계 S4에서는, 개개의 처리 세트가 독립적으로 오류 상태를 평가하여 그 처리 세트중의 하나가 고장인지를 판단하려고 한다. 제어 상태 및 오류 상태 레지스터(114)로부터 상태를 개별적으로 판독하는 오류 상태에 있는 개개의 프로세서가 판단을 한다. 이 오류 모드 동안에, 중재기(134)는 브리지(12)로의 액세스에 대해 중재한다.
단계 S5에서는, 처리 세트(14, 16) 중의 하나가, 그 자체를 주 처리 세트로서 설정한다. 이는, 오류에 대한 책임을 예상 정도에 의거한 시간 요소를 식별하는 각각의 처리 세트에 의해 판단하여서, 타임 아웃된 제 1 처리 세트는 주 처리 세트가 된다. 또한, 단계 S5에서는, 그 상태를 그 처리 세트에 대해 복구하여 다른 처리 세트에 복사한다. 이 주 처리로 공시 기록 버퍼(122)와 비접속 레지스터(120)를 액세스할 수 있다.
단계 S6에서는, 브리지가 분할 모드에서 동작할 수 있다. 브리지는 제 1 및 제 2 처리 세트에 대해 동등한 상태로 재설정할 수 있을 경우, 단계 S7에서 리세트가 발생되어 그 처리 세트는 단계 S1에서 조합 모드에 놓인다. 그러나, 브리지는 고장 처리 세트가 바뀔 때까지 동등한 상태를 재설정할 수 없다. 따라서, 시스템은, 단일 처리 세트에 의거한 동작을 계속하기 위해서 단계 S6의 분할 모드에 머무르게 된다. 고장 처리 세트를 바꾼 후, 시스템은 동등한 상태를 설정하고 단계 S7을 거쳐 단계 S1로 이동한다.
상술한 것처럼, 비교기(130)는 조합 모드에서 제 1 및 제 2 처리 세트(14, 16)에 의해 출력된 I/O 동작을 비교하도록 동작할 수 있다. 이는 제 1 및 제 2 처리 세트(14, 16)의 모든 I/O 동작이 완전히 동기화되어 결정되는 한 우수하다. 이로부터의 일탈을 비교기(130)에 의해 록스텝의 손실로서 해석할 것이다. 이는 원칙적으로 동일한 출력의 소수의 일탈조차도 정확하되, 비교기(130)에 의해 트랩하지 않은 경우, 개개의 처리 세트가 일탈하는 출력에 관해 동작하기 때문에 서로로부터 발산하는 처리 세트로 유도될 수 있다. 그러나, 이것의 엄격한 적용은, 개개의 처리 세트의 설계에 중요한 제약을 준다. 이 예로, 그들 자신의 클록하에 동작하는 개개의 처리 세트에 있는 날짜 클록과 관계없는 시간을 가질 수 없다는 것이다. 이는, 동작상 100% 동일한 2개의 수정 발진기를 얻는 것이 불가능하기 때문이다. 클록 위상의 작은 차이조차도, 그 동일한 샘플이 언제든지 처리되는지, 예를 들면 각각의 처리 세트에 대한 양쪽의 클록 천이에 관하여 중요할 수 있다.
따라서, 이 문제에 대한 해결은, 상술한 비유사 데이터 레지스터(DDR)를 이용한다. 이때의 해결은, 기록 동작의 데이터 위상의 비교를 디스에이블하는 동안에 브리지에 있는 각각의 DDR에 처리 세트로부터의 데이터를 기록하고서, 각 처리 세트로 되돌아가서 DDR중에 선택된 하나를 판독하는데 있다.
도 17은 도 6 내지 도 10의 브리지에 관한 상세한 개략적인 설명도이다. 주목할 것은, 도 6 내지 도 8에 도시되지 않은 브리지의 상세 내용은 도 17에 도시되어 있고, 도 6 내지 도 8에 도시된 브리지의 다른 상세 내용은 명석함을 위해 도 17에 도시되어 있지 않다.
DDR(116)은 도 7의 브리지 레지스터(110)에 제공되어 있지만, 다른 실시예에 있는 브리지의 경우에 제공될 수 있다. 하나의 DDR(116)이 각 처리 세트를 위해 제공된다. 2개의 처리 세트(14, 16)가 제공되는 도 1의 멀티-프로세서 시스템의 예에서, 2개의 DDR(116A, 116B)은 각각의 제 1 및 제 2 처리 세트(14, 16)에 대해 각각 하나로 구성된다.
도 17은 비유사 데이터 기록 단계를 나타낸다. 어드레싱 로직(136)은, 제 1 처리 세트용 하나의 디코더부(136A)와 제 2 처리 세트용 하나의 디코더부(136B)로 구성된 2개의 디코더부를 개략적으로 나타낸 것이다. 비유사 데이터 I/O 기록 동작의 어드레스 위상 동안, 각 처리 세트(14, 16)는 각각의 제 1 및 제 2 디코딩부(136A, 136B)에 의해 각각의 제 1 및 제 2 DDR(116A, 116B)을 어드레싱으로서 별도로 해석한 동일한 소정 어드레스 DDR-W를 출력한다. 제 1 및 제 2 처리 세트(14, 16)에 의해 동일한 어드레스를 출력하기 때문에, 이는 비교기(130)에 의해 록스텝 오류로서 해석되지는 않는다.
또한, 디코딩부 136A 또는 디코딩부 136B, 또는 이 두 디코딩부는, 제 1 및 제 2 처리 세트(14, 16)에 의해 공급된 소정 기록 어드레스에 따라 디스에이블 신호(137)를 출력하도록 구성되어 있다. 이 디스에이블 신호는, 비교기(130)에 인가되어 비교기를 디스에이블시킬 기록 동작의 데이터 위상 동안 동작한다. 이에 따라, 비록 제 1 및 제 2 처리 세트가 다를지라도, 제 1 처리 세트에 의해 출력된 데이터를 제 1 DDR(116A)에 저장하고 제 2 처리 세트에 의해 출력된 데이터를 제 2 DDR(116B)에 비교기가 차이를 검출하기 위해 동작하지 않고서 저장할 수 있다. 제 1 디코딩부는 라우팅 매트릭스가 제 1 DDR(116A)에 있는 제 1 처리 세트(14)로부터의 데이터를 저장하도록 동작할 수 있고, 제 2 디코딩부는 라우팅 매트릭스가 제 2 DDR(116B)에 있는 제 2 처리 세트(16)로부터의 데이터를 저장하도록 동작할 수 있다. 데이터 위상의 끝에서, 비교기(130)는 I/O 어드레스 및/또는 록스텝 오류를 나타내는 데이터 위상 사이의 임의의 차이를 검출하도록 한번 더 인에이블된다.
비유사 데이터의 제 1 및 제 2 DDR(116A, 116B)로의 기록 후에, 처리 세트는 DDR(116A/116B)중에 선택된 하나로부터 데이터를 판독하도록 동작할 수 있다.
도 18은 디스에이블 신호(137)를 취소하고(negate) 비교기(130)의 출력에 있는 게이트(131)를 제어하는데 사용하는 대체 구성을 나타낸 것이다. 디스에이블 신호가 작동중일 경우 비교기의 출력은 디스에이블되는 반면에, 디스에이블 신호가 작동중이 아닐 경우 비교기의 출력은 인에이블된다.
도 19는 연속적인 비유사 데이터 판독 단계에서 제 1 DDR(116A)의 판독을 나타낸 것이다. 도 19에 나타낸 것처럼, 각가의 처리 세트(14, 16)는, 각각의 제 1 및 제 2 디코딩부(136A, 136B)에 의해 동일한 DDR, 즉 제 1 DDR(116A)을 어드레싱으로서 별도로 해석한 동일한 소정 어드레스 DDR-RA를 출력한다. 결과적으로, 두 처리 세트(14, 16)에 의해 제 1 DDR(116A)의 내용을 판독하여서 처리 세트들을 인에이블시켜 동일한 데이터를 수신한다. 이는, 비록 처리 세트(14, 16)에 의해 DDR(116)에 기록된 데이터의 소오스가 결정성이 아닐지라도, 2개의 처리 세트(14, 16)가 결정성 작용을 할 수 있게 한다.
다른 것으로서, 처리 세트는 제 2 DDR(116B)로부터 각 데이터를 판독할 수 있다. 도 20은 도 15의 비유사 데이터 기록 단계 후의 비유사 데이터 판독 단계에서의 제 2 DDR(116B)의 판독을 나타낸 것이다. 도 20에 도시된 것처럼, 각 처리 세트(14, 16)는, 각각의 제 1 및 제 2 디코딩부(136A, 136B)에 의해서 동일한 DDR, 즉 제 2 DDR(116B)을 어드레싱으로서 별도로 해석한 동일한 소정 어드레스 DDR-RB를 출력한다. 그 결과, 제 2 DDR(116B)의 내용은, 두 처리 세트(14, 16)에 의해 판독되어서, 처리 세트들을 인에이블시켜 동일한 데이터가 수신된다. 이것은, 비록 처리 세트(14, 16)에 의해 DDR(116)에 기록된 데이터의 소오스가 결정성이 아닐지라도, 2개의 처리 세트(14, 16)를 도 16의 비유사 데이터 판독 단계로 인에이블시켜 결정성 작용을 달성한다.
판독하려고 하는 제 1 및 제 2 DDR(116A, 116B)의 선택은, 처리 모듈에 따라 동작하는 소프트웨어에 의해 임의의 적절한 방법으로 결정될 수 있다. 이는, 하나 또는 다른 DDR의 간단한 선택에 근거하거나, 둘 또는 모든 처리 세트가 DDR을 같은 것으로 선택하는 한 통계적인 근거 또는 무작위로 또는 어떤 다른 방법으로 할 수 있다.
도 21은 상술한 DDR 장치의 동작의 다양한 단계를 요약한 흐름도이다.
단계 S10에서는, DDR 기록 동작의 어드레스 위상 동안 어드레스 디코더부(136A, 136B)에 의해 DDR 기록 어드레스 DDR-W를 수신하여 디코딩한다.
단계 S11에서는, 비교기(130)를 디스에이블시킨다.
단계 S12에서는, DDR 기록 동작의 데이터 위상 동안 처리 세트(14, 16)로부터 수신된 데이터를 각각 제 1 및 제 2 디코드부(136A, 136B)에 의해 선택된 것처럼 제 1 및 제 2 DDR(116A, 116B)에 각각 저장한다.
단계 S13에서는, DDR 판독 어드레스를 제 1 및 제 2 처리 세트로부터 수신하여 디코드부(136A, 136B)에 의해 각각 디코딩한다.
그 수신된 어드레스 DDR-RA가 제 1 DDR(116A)일 경우, 단계 S14에서는 그 DDR(116A)의 내용을 두 처리 세트(14, 16)에 의해 판독한다.
또한, 수신된 어드레스 DDR-RB가 제 2 DDR(116B)일 경우, 단계 S15에서는 그 DDR(116B)의 내용을 두 처리 세트(14, 16)에 의해 판독한다.
도 22는 각각의 버스(22, 24, 26)상에서 수행된 중재와 브리지 자체를 위한 중재의 개략적인 설명도이다.
각각의 처리 세트(14, 16)에 있는 각 처리 세트 버스 제어기(50)는, 각각의 버스(24, 26)에 중재를 제공하기 위한 종래의 PCI 마스터 버스 중재기(180)를 구비한다. 각 마스터 중재기(180)는, 관련된 처리 세트 버스 제어기(50)와 각각의 요청(REQ) 선(181, 182)의 브리지(12)로부터의 요청 신호에 응답한다. 상기 마스터 중재기(180)는, 적절한 허가선(183 또는 184)의 승리부(winning party)에 허가(grant; GNT) 신호를 발생하는 선도착 선처리 기반 버스로의 액세스를 할당한다.
종래의 PCI 버스 중재기(185)는, D 버스(22)의 중재를 제공한다. 이때, D 버스 중재기(185)를, 도 6의 D 버스 인터페이스(82)의 일부분으로서 구성할 수 있거나, 이와 별도로 구성할 수 있다. D 버스 중재기는, P 버스 마스터 중재기(180)로 디바이스 버스(22)에 접속된 브리지 및 디바이스(30, 31, 등)를 구비하는 경쟁 디바이스(contending device)로부터의 요청 신호에 응답한다. D 버스(22)로의 액세스를 경쟁하는 각각의 엔티티(entity)에 대한 각각의 요청선(186, 187, 188 등)은, 요청 신호(REQ)를 위해 제공된다. D 버스 중재기(185)는, 각각의 허가선(189, 190, 192, 등)을 통해 승리 엔티티로 허가(GNT)신호를 발생하는 선도착 선처리 기반의 D 버스로의 액세스를 할당한다.
도 23은, D 버스 중재기(185)의 동작을 요약한 상태도이다. 특별한 실시예에서 각각의 D 버스 디바이스 및 브리지 자체에 의해 6개의 요청 신호까지 산출할 수 있다. 허가(GRANT) 상태로의 천이에 관해, 이들은 우선도 인코더에 의해 분류되고, 높은 우선도를 가진 요청 신호(REQ#)는 승리자로서 등록되어 허가(GNT#)신호를 얻는다. 선택된 각 승리자는, 우선도 인코더에 있는 우선도를 변형하여서 다음의 주어진 동일 REQ# 신호를 허가로 이동한다. 다른 디바이스가 높은 우선도를 가짐에 따라, 각 디바이스는 DEV를 액세스하는 "공정한(fair)" 기회를 갖는다. 브리지 REQ#는, D 버스 디바이스보다 높은 가중치를 갖고, 매우 바쁜(busy) 조건하에서, 모든 제 2 디바이스를 위한 버스를 얻을 것이다.
버스를 요청하는 디바이스가 16 사이클내에 트랜잭션을 수행하지 않을 경우, 백오프(BACKOFF) 상태를 통해 GNT#를 잃을 수도 있다. 디바이스는 GNT#가 제거된 후 버스 1사이클을 액세스할 수 있기 때문에, 백오프는 PCI 규칙하에 요구된다. 디바이스는, 브리지가 오류 상태에 있지 않을 경우 D 버스로의 액세스가 허가될 수도 있다. 새로운 GNT#는 버스가 유휴(idle)일 때에 생긴다.
허가(GRANT) 및 비지(BUSY) 상태에서, FET가 인에이블되고, 액세스 장치가 인지되어 디바이스에 의해 제공된 DMA 어드레스에 대해 체크하기 위한 D 버스 어드레스 디코드 로직으로 향한다.
브리지 중재기(134)로 돌아가면, 이는 어드레스 위상을 나타낸 PCI 프레임# 신호를 가정하는 제 1 디바이스에 대한 브리지로의 액세스를 허가한다. 도 24는 브리지 중재기(134)의 동작을 요약한 상태도이다.
우선도 인코더는, D 버스 중재기로, 충돌하는 액세스 시도를 해결하도록 구성될 수 있다. "충돌(collision)"의 경우, 실패자/실패자들은 그들이 버스를 포기하도록 재시도한다. PCI 규칙하에 재시도된 디바이스는, 브리지를 반복적으로 액세스하도록 시도하고, 이것이 발생하기를 기대할 수 있다.
매우 빨리 재시도하는 디바이스가 브리지를 호깅(hogging)하는 것을 막기 위해서, 재시도된 인터페이스는 기억되어 고 우선도가 할당된다. 이 기억된 재시도는, 어드레스 위상과 같은 방법으로 우선도가 정해진다. 이용된 알고리즘은, 아직 재시도하지 않았지만, 현재 대기하고 있는 장치보다 높은 우선도의 재시도를 하는 디바이스가 첫 번째 시도에서 재시도되는 것을 막는다.
조합 동작에서, PA 또는 PB 버스 입력은, P 버스 인터페이스가 브리지 액세스를 승리하는 것을 선택한다. 그들이 승리한 것을 이 두 버스가 알려준다. 정상적인 동작 동안, 허용된 선택으로 보이지 않는 고장을 체킹할 수 있게 한다. 오류 상태는, D 버스가 승리하는 것을 막는다.
브리지 중재기(134)는, 브리지(12)로의 액세스를 제어하기 위해 표준 PCI 제어선(22, 24 및 25) 상에 구성된 표준 PCI 신호에 응답한다.
도 25는 PCI 버스상의 I/O 동작 사이클과 관련된 신호를 나타낸 것이다. PCI 프레임 신호(FRAME#)를 초기에 가정(assert)한다. 동시에, 어드레스(A) 신호는 데이터 버스에서 이용가능할 것이고, 적절한 명령(기록/판독) 신호(C)는 명령 버스(CMD 버스)에서 이용가능할 것이다. 간략히 말하면, 그 프레임 신호를 로우(low)로 가정한 후, 초기 준비 신호(Initiator Ready Signal: IRDY#)를 로우로 가정한다. 그 디바이스가 응답할 때, 디바이스 선택 신호(DEVSEL#)를 로우로 가정한다. 타겟 준비 신호를 로우(TRDY#)로 가정할 때, 데이터 전송(D)이 데이터 버스상에서 일어날 수 있다.
브리지는, 브리지 자원으로의 액세스를 할당하여서, 관련된 초기 버스를 위해 로우로 가정된 FRAME#에 따라 타겟 버스의 할당을 협상하도록 동작할 수 있다. 따라서, 브리지 중재기(134)는, 브리지 자원 및/또는 로우로 가정된 FRAME#에 따라 선도착 선처리 기반의 타겟 버스로의 액세스를 할당하도록 동작할 수 있다. 중재기는, 상기 간단한 선도착 선처리 기반은 물론 중재 요구를 로깅(logging)하기 위한 장치가 추가로 구성될 수도 있고, 요구에 의거한 충돌 도출(conflict resolution)과 2개의 요구가 동시에 수신되는 할당 히스토리를 포함할 수 있다. 또한, 간단한 우선도는 여러 가지 요구에 할당될 수 있어서, 동시 요구의 경우, 특정 요구자가 항상 할당 처리를 승리한다.
디바이스 버스(22)상의 각 슬롯은, SCSI 인터페이스와 같은 버스에 접속된 다른 디바이스는 물론 슬롯 응답 레지스터(SRR)(118)도 가진다. 각 SRR(118)은, 슬롯 소유권을 정의하는 비트 또는 직접 메모리 액세스 버스상의 슬롯에 접속된 디바이스를 구비한다. 이 실시예에서는, 아래의 부연된 이유로 각 SRR(118)이 4비트 레지스터를 포함한다. 그러나, 타겟 레지스터는, 2개의 처리 세트 이상간에 소유권을 판단하는 것이 요구된다는 것을 알아야 할 것이다. 예를 들면, 3개의 처리 세트가 제공되는 경우, 5비트 레지스터는 슬롯마다 필요할 것이다.
도 16은 4비트 레지스터(600)를 개략적으로 나타낸 것이다. 도 16에 도시된 것처럼, 제 1 비트(602)는 SRR[0]로서 나타내고, 제 2 비트(604)는 SRR[1]로서 나타내고, 제 3 비트(606)는 SRR[2]로서 나타내며, 제 4 비트(608)는 SRR[3]로서 나타낸다.
비트 SRR[0]은, 유효 트랜잭션용 기록을 억제하려고 할 경우 설정되는 비트이다.
비트 SRR[1]은, 제 1 처리 세트(14)가 디바이스 슬롯을 소유할 경우 설정된다. 이것은 제 1 처리 세트(14)와 디바이스 슬롯 사이의 액세스 루트(route)를 정의한다. 이 비트가 설정된 경우, 제 1 처리 세트(14)는 항상 디바이스 슬롯(22)의 마스터일 수 있고, 이때 마스터가 되는 디바이스 슬롯의 능력은 비트 SRR[3] 설정에 의존한다.
비트 SRR[2]은, 제 2 처리 세트(16)가 디바이스 슬롯을 소유할 경우 설정된다. 이것은 제 2 처리 세트(16)와 디바이스 슬롯 사이의 액세스 루트를 정의한다. 이 비트가 설정된 경우, 제 2 처리 세트(16)는 항상 디바이스 슬롯 또는 버스(22)의 마스터일 수 있고, 이때 마스터가 되는 디바이스 슬롯의 능력은 비트 SRR[3] 설정에 의존한다.
비트 SRR[3]은, 디바이스 슬롯 능력이 디바이스 버스(22)의 마스터가 되는 것을 나타낸 중재 비트이지만, 그것이 단지 처리 세트(14, 16) 중의 하나에 의해 소유되는 경우, 그것은 SRR[1] 및 SRR[2] 비트중의 하나가 설정된 경우이다.
SRR(118)의 가짜 비트(fake bit)(SRR[0])가 설정될 경우, 그 슬롯을 위한 디바이스로의 기록이 무시되어 디바이스 버스(22)상에 나타나지 않는다. 판독으로 디바이스 버스(22)의 트랜잭션을 일으키지 않고서 미정의 데이터를 돌려보낸다. I/O 오류의 경우에 오류를 일으킨 디바이스에 대응하는 SRR(188)의 가짜 비트 SRR[0]은, 브리지의 하드웨어 구성에 의해 관련된 디바이스 슬롯으로의 더 이상의 액세스를 디스에이블하도록 설정된다. 또한, 인터럽트는, 오류가 일어난 I/O 오류를 유도하는 액세스를 일으킨 소프트웨어를 알리기 위해 브리지에 의해 발생될 수도 있다. 가짜 비트는, 시스템이 동작의 분할 모드 또는 조합 모드에 있는지의 결과를 가진다.
그러나, 소유권 비트는, 동작의 분할 시스템 모드에서 결과를 가진다. 이 모드에서 각 슬롯은,
미소유(Not-owned),
처리 세트 14에 의해 소유,
처리 세트 16에 의해 소유의 3가지 상태가 있을 수 있다.
이를, 슬롯이 처리 세트 14에 의해 소유될 경우 SRR[1]이 설정되고, 슬롯이 처리 세트 B에 의해 소유될 경우 SRR[2]이 설정되면서 2개의 SRR 비트 SRR[1] 및 SRR[2]에 의해 판단한다. 그 슬롯이 미소유된 경우, 어느 비트도 설정되지 않는다(양 비트 세트는 불법 조건이고 하드웨어에 의해 방해됨)
액세스를 하는 처리 세트(이는 미소유 슬롯을 포함함)에 의해 소유되지 않은 슬롯은, 액세스될 수 없어 중단된다. 처리 세트는, 다른 처리 세트와 따로 소유권을 얻을 수 있는, 미소유 슬롯을 청구만 할 수 있다. 이것은 단지 다른 처리 세트를 전원을 끄므로써 할 수 있다. 처리 세트가 전원이 꺼질 경우, 그것에 의해 소유된 모든 슬롯은 미소유 상태로 된다. 처리 세트가 다른 처리 세트로부터 소유권을 얻을 수 없지만, 처리 세트가 다른 처리 세트에게 소유권을 줄 수는 있다.
소유 비트는, 동작 상태의 조합 모드에서 바뀔 수 있지만, 분할 모드로 들어갈 때까지 아무런 영향을 미치지 않는다.
아래의 표 2는 SRR(118)에 의해 결정된 것처럼 액세스 권한을 요약한 것이다.
표 2로부터, 주어진 디바이스용 4-비트 SRR이 1100으로 설정될 때, 예를 들면, 슬롯은 처리 세트 B에 의해 소유되고(즉, SRR[2]이 논리적으로 하이(High)임), 처리 세트 A는 디바이스로부터 판독 또는 디바이스에 기록할 수도 없지만(즉, SRR[1]이 논리적으로 로우(Low)임), 그것은 브리지로부터 판독 또는 브리지에 기록할 수도 있다. "FAKE_AT"는, 디바이스 버스로의 액세스가 버스상의 고장이 없기 때문에 허가되는 것을 나타낸 논리적으로 로우(즉, SRR[0]이 논리적으로 로우임)로 설정된다. "ARB_EN"이 논리적으로 하이(즉, SRR[3]이 논리적으로 하이임)이기 때문에, 레지스터가 관련된 디바이스가 D 버스의 마스터가 될 수 있다. 이 예는, 버스와 관련 디바이스가 정확히 동작하고 있을 경우 레지스터의 동작을 증명한다.
[표 2]
SRR[3][2][1][0] PA 버스 PB 버스 디바이스인터페이스
0x00x 브리지SRR 판독/기록 브리지SRR 판독/기록 액세스 거절
10 브리지 판독/기록,D슬롯 소유 브리지 판독/기록,D슬롯으로의 액세스 안됨 중재비트가 오프이기 때문에 액세스 거절
SRR[3][2][1][0] PA 버스 PB 버스 디바이스인터페이스
100 브리지 판독/기록,D슬롯으로의 액세스 안됨 브리지 판독/기록, D슬롯으로의 액세스 중재비트가 오프이기 때문에 액세스 거절
1010 브리지 판독/기록,D슬롯 소유 브리지 판독/기록,D슬롯으로의 액세스 안됨 CPU B로의 액세스 거절,CPU A로의 액세스 OK
1100 브리지 판독/기록,D슬롯으로의 액세스 안됨 브리지 판독/기록, D슬롯으로의 액세스 CPU A로의 액세스 거절,CPU B로의 액세스 OK
11 브리지 판독/기록,브리지 포기 기록 브리지 판독/기록,D슬롯으로의 액세스 안됨 중재비트가 오프이기 때문에 액세스 거절
101 브리지 판독/기록,D슬롯으로의 액세스 안됨 브리지 판독/기록,브리지 포기 기록 중재비트가 오프이기 때문에 액세스 거절
1011 브리지 판독/기록,브리지 포기 기록 브리지 판독/기록,D슬롯으로의 액세스 안됨 CPU B로의 액세스 거절,CPU A로의 액세스 OK
1101 브리지 판독/기록,D슬롯으로의 액세스 안됨 브리지 판독/기록,브리지 포기 기록 CPU B로의 액세스 거절,CPU A로의 액세스 OK
다른 실시예에서, 디바이스용 SRR이 0101로 설정될 경우, SRR[2]의 논리적 하이로의 설정은, 그 디바이스가 처리 세트 B에 의해 소유되는 것을 나타낸다. 그러나, 디바이스가 오동작하기 때문에, SRR[3]은 논리적으로 로우로 설정되어, 디바이스는 처리 세트로의 액세스를 허용하지 않는다. SRR[0]은 하이로 설정되어서 디바이스로의 임의의 기록을 무시하고 이로부터의 판독은 미정의 데이터로 귀환된다. 이 방법으로, 오동작 디바이스는, 효과적으로 처리 세트와 격리되고, 예를 들면, 디바이스로부터의 응답을 찾을 수도 있는 임의의 디바이스 드라이버를 만족하기 위한 미정의 데이터를 제공한다.
도 26은 디바이스(28, 29, 30, 31 및 32) 중의 하나와 같은 디바이스에 의해 처리 세트(14, 16)의 메모리(56)로의 직접 메모리 액세스를 위한 브리지(12)의 동작을 나타낸다. D 버스 중재기(185)가 디바이스 버스상의 디바이스(예: 슬롯(33)에 있는 디바이스(30))로부터의 직접 메모리 액세스(DMA) 요구(193)를 수신할 경우, D버스 중재기는 버스를 그 슬롯에 할당하는지를 판단한다. 이 허가 프로시져의 결과로, D 버스 중재기는 DMA 요구(193)를 하는 슬롯을 안다. 이때의 DMA 요구는, 이 요구와 관련된 어드레스가 디코딩되는 브리지에 있는 어드레스 디코더(142)에 공급된다. 이 어드레스 디코더는, 관련된 슬롯이 DMA 요구용 D 버스로의 액세스를 허가한 것을 확인하도록 D 버스 허가 신호(194)에 응답한다.
어드레스 디코드 로직(142)은, 지리적인 어드레스 맵(196)을 보유하거나 이 맵으로의 액세스를 하고, 프로세서 어드레스 공간과 슬롯간의 관계를 사용된 지리적인 어드레스의 결과로 확인한다. 이 지리적인 어드레스 맵(196)은, 공시 기록 버퍼(122)와 더티 RAM(124)와 함께 브리지 메모리(126)에 있는 표로서 소유될 수 있다. 또한, 그것은 어드레스 디코더(142) 자체의 일부를 형성할 수 있는 별도의 메모리 소자에 있는 표로서 소유될 수 있다. 이 맵(182)은, 표 이외의 형태로 구성될 수 있다.
어드레스 디코드 로직(142)은, 디바이스(30)에 의해 공급된 DMA 어드레스의 정확성을 검증하도록 구성된다. 본 발명의 일 실시예에서, 이를 디바이스(30)에 의해 공급된 어드레스의 4개의 유효(significant) 어드레스 비트와, DMA 요구용 D 버스 허가 신호에 의해 확인된 슬롯을 위한 지리적 어드레싱 맵(196)에 보유된 어드레스의 대응하는 4개의 어드레스 비트를 비교함으로써 달성한다. 이 예에서, 4개의 어드레스 비트는 공급된 어드레스가 정확한 어드레스 범위내에 있는지를 판단하는데 충분하다. 특정 예에서는, 32 비트 PCI 버스 어드레스가, 비트 31 및 30이 항상 1로 설정되고, 비트 29가 마더보더의 2개의 브리지중 어느 것이 어드레싱되고 있는지(도 2 참조)를 확인하기 위해 할당되고, 비트 28 내지 26가 PCI 디바이스를 확인하기 위해 할당되면서 사용된다. 비트 25-0은 슬롯 마다의 어드레스 범위용 기본 어드레스의 오프셋을 정의한다. 따라서, 비트 29-26을 비교하여서, 공급된 어드레스(들)이 관련된 슬롯의 적절한 어드레스 범위내에 있는지를 확인하는 것이 가능하다. 다른 실시예에서는, 다른 비트 수가 어드레스의 할당에 따라 비교하여 결정할 필요가 있다는 것을 알 수 있을 것이다.
어드레스 디코드 로직(142)은, 상술한 것처럼 DMA 요구로 수신된 어드레스를 가진 엔트리라는 점에서 관련된 슬롯이 관련된 슬롯용 테이블 엔트리를 확인하는데 버스 허가 신호(184)를 사용하도록 구성할 수 있다. 또한, 어드레스 디코드 로직(142)은, 상관적인(relational) 지리적 어드레스 맵을 어드레싱하고 이로부터 슬롯 수를 판단하기 위해 DMA 어드레스로 수신된 어드레스(들)을 사용하도록 구성할 수 있고, 버스 허가 신호(194)를 낼려고 하는 슬롯과 비교하여서, 어드레스가 관련된 슬롯에 적합한 어드레스 범위내에 있는지를 판단한다.
어느 쪽으로 하든, 어드레스 디코드 로직(142)은, DMA 어드레스가 관련된 슬롯을 위한 바라는 어드레스 공간이내에 있을 경우 DMA가 진행하는 것을 허가하도록 구성된다. 달리, 어드레스 디코더는 슬롯 및 물리적 어드레스를 무시하도록 구성된다.
또한, 어드레스 디코드 로직(142)은, 적절한 처리 세트(들)(14/16)로의 DMA 요구의 라우팅을 제어하도록 동작할 수 있다. 브리지가 조합 모드에 있을 경우, DMA 액세스를 모든 동기내 처리 세트(14/16)에 자동으로 할당할 것이다. 어드레스 디코드 로직(142)은, 브리지가 브리지 제어기(132)(도 8 참조)의 제어하에 있기 때문에 조합 모드에 있다는 것을 알 것이다. 그러나, 브리지가 분할 모드에 있을 경우, 만약 있다면, 처리 세트중의 어느 것이 DMA 요구를 보내려고 하는지에 관하여 결정할 필요가 있다.
시스템이 분할 모드에 있을 경우, 관련된 슬롯을 소유한 처리 세트 14 또는 16로의 액세스를 할 것이다. 그래서, 슬롯이 미소유될 경우, 브리지는 DMA 요구에 응답하지 않는다. 분할 모드에서, 어드레스 디코드 로직(142)은, 관련된 슬롯을 위해 SRR(118)을 액세스함으로써 DMA 요구를 일으키는 디바이스의 소유권을 판단하도록 동작할 수 있다. 그 적절한 슬롯은 D 버스 허가 신호에 의해 확인될 수 있다. 어드레스 디코드 로직(142)은, 소유권 비트 SRR[1] 및 SRR[2]에 의거한 적절한 처리 세트(들)(14/16)로의 DMA 요구로 넘어가기 위해 타겟 제어기(140)(도 8 참조)를 제어하도록 동작할 수 있다. 비트 SRR[1]이 설정될 경우, 제 1 처리 세트(14)는 소유자이고 DMA 요구는 제 1 처리 세트로 넘어간다. 비트 SRR[2]이 설정될 경우, 제 2 처리 세트(16)는 소유자이고, DMA 요구는 제 2 처리 세트로 넘어간다. 비트 SRR[1]와 비트 SRR[2]이 설정되어 있지 않을 경우, DMA 요구는 어드레스 디코더에 의해 무시되어 양 처리 세트(14, 16)로 넘어가지 않는다.
도 27은 도 24를 참조하여 설명된 것처럼 DMA 검증 처리를 요약한 흐름도이다.
단계 S20에서는, D 버스 중재기(160)가 D 버스(22)로의 액세스를 위해 중재한다.
단계 S21에서는, 어드레스 디코더(142)가 지리적인 어드레스 맵을 액세스하여서 DMA 요구로 공급된 DMA 어드레스를 검증한다.
단계 S22에서는, 어드레스 디코더가, 어드레스가 관련된 슬롯을 위한 바라는 범위밖에 있는 DMA 액세스를 무시한다.
또한, 단계 S23에 의해 나타낸 것처럼, 어드레스 디코더의 동작은, 브리지가 조합 모드 또는 분할 모드에 있는지에 의존한다.
그래서, 브리지가 조합 모드에 있을 경우, 단계 S24에서는, 어드레스 디코더가 타겟 제어기(140)(도 8 참조)를 제어하여, 라우팅 매트릭스(80)(도 6 참조)로 하여금 양 처리 세트(14, 16)로의 DMA 요구로 넘어가게 한다.
또한, 브리지가 분할 모드에 있을 경우, 단계 S25에서는, 어드레스 디코더가 그 슬롯을 위한 SRR(118)을 참조하여 관련된 슬롯의 소유권을 검증하도록 동작한다.
이때의 슬롯이 제 1 처리 세트(14)에 할당될 경우(즉, SRR[1] 비트가 설정됨), 단계 S26에서는 어드레스 디코더(142)가 타겟 제어기(140)(도 8 참조)를 제어하여, 라우팅 매트릭스(80)(도 6 참조)로 하여금 제 1 처리 세트(14)로의 DMA 요구로 넘어가게 한다.
또한, 슬롯이 제 2 처리 세트(16)에 할당될 경우(즉, SRR[2] 비트가 설정됨), 단계 S27에서는 어드레스 디코더(142)가 타겟 제어기(140)(도 8 참조)를 제어하여, 라우팅 매트릭스(80)(도 6 참조)로 하여금 제 2 처리 세트(16)로의 DMA 요구로 넘어가게 한다.
그 슬롯이 비할당될 경우(즉, SRR[1] 비트도 SRR[2] 비트도 설정되지 않음), 단계 S18에서는 어드레스 디코더(142)가 DMA 요구를 무시하거나 포기하고, 처리 세트(14, 16)로의 DMA 요구로 넘어가지 않는다.
하나 이상의 처리 세트에 보내진 DMA 또는 직접 벡터 메모리 액세스(Direct Vector Memory Access; DVMA) 요구로, 필요한 메모리 동작(판독 또는 기록)이 처리 세트 메모리에 영향을 미친다.
오류 상태(도 11 참조)로부터 자동적인 복구를 가능하게 하는 장치(mechanism)의 예에 관한 설명을 이제부터 한다.
자동 복구 처리는, 록스텝에서 재시작을 시도하기 위해서 처리 세트의 상태를 공통 상태로의 재통합(reintegration)을 포함한다. 이를 달성하기 위해서, 상술한 것처럼 처리 세트 그 자체를 주 처리 세트로서 가정한 처리 세트는, 그의 완전한 상태를 다른 처리 세트에 복사한다. 이는, 양 프로세서의 메모리의 내용이 록스텝 모드에서 재시작을 시도하기 전과 동일한 것을 포함한다.
그러나, 하나의 처리 세트의 메모리의 내용을 다른 처리 세트로의 복사가 갖는 문제점은, 이 복사 처리 동안 D 버스(22)에 접속된 디바이스가 주 처리 세트의 메모리로의 액세스를 위한 직접 메모리 액세스(DMA) 요구를 한다는 것이다. 그래서, DMA가 인에이블될 경우, 이미 복사된 메모리 영역으로의 기록은, 동일하지 않은 복사의 끝에서 2 개의 프로세서의 메모리 상태가 된다. 원칙적으로, 전체 복사 처리를 위한 DMA를 억제하는 것이 가능하다. 그러나, 이는, 시스템 또는 시스템의 자원이 사용불가능한 시간을 최소화하는 것이 바람직하지 않다는 것이다.
다른 방법으로서, DMA 동작이 복사 기간 동안에 일어날 경우 전체 복사 동작을 재시도하는 것이 가능하다. 그러나, 그 이상의 DMA 동작은 복사 재시도 동안에 수행될 것 같아서, 좋은 선택도 아니다. 따라서, 본 시스템에서는, 더티 RAM(124)이 브리지 내에 제공된다. 상술한 것처럼 더티 RAM(124)은, 브리지 SRAM 메모리(126)의 일부로서 구성된다.
더티 RAM(124)는, 더티 표시기, 예를 들면, 메모리의 블록 또는 페이지마다 더티 비트를 가진 비트 맵을 포함한다. 메모리의 페이지용 비트는, 관련된 메모리 영역으로 기록 액세스를 할 때 설정된다. 본 실시예에서, 1 비트는 주 처리 세트 메모리의 8K 페이지마다 제공된다. 처리 세트 메모리의 페이지용 비트는, 이것이 D 버스(22)에 접속된 디바이스로부터 처리 세트 14 또는 16용 메모리의 페이지에 대한 DMA 요구를 디코딩할 때 어드레스 디코더(142)에 의해 자동으로 설정된다. 더티 RAM은, 주어진 시간 이래로 더러워진 페이지를 기록하기 시작할 수 있도록, 리세트될 수 있거나, 이 더티 RAM이 처리 세트, 예를 들면 복사 통과(copy pass)의 시작에서 판독 및 클리어 명령어에 의해 판독될 때 클리어 된다.
이때의 더티 RAM(124)을 워드 단위로 판독할 수 있다. 큰 워드 크기가 더티 RAM(124)을 판독하기 위해 선택될 경우, 이는 더티 RAM(124)의 판독 및 리세팅을 최적화할 것이다.
따라서, 복사 통과의 끝에서, 더티 RAM(124)에 있는 비트는, 복사 주기 동안에 DMA 기록에 의해 변경되거나(또는 더러워지는) 처리 세트 메모리의 페이지들을 표시할 것이다. 그래서, 그 이상의 복사 통과를 더러워진 메모리의 페이지들만을 위해 수행할 수 있다. 이는 메모리를 완전 복사하는데 시간이 덜 걸린다. 따라서, 일반적으로, 다음의 복사 통과의 끝에서의 더티로서 마킹된 페이지가 적어서, 복사 통과는 점점 단축된다. 때때로, 2개의 처리 세트의 메모리가 동일한 끝에서 마지막, 짧은, 복사 통과를 위해 짧은 주기동안 DMA 기록을 억제하기 위해 결정할 필요가 있고, 주 처리 세트는 리세트 동작을 발생하여 조합 모드를 재시작한다.
더티 RAM(134)은, 두 조합 및 분할 모드에서 설정되어 클리어 된다. 이는, 조합 모드에 있는 더티 RAM(124)이 양 처리 세트에 의해 클리어될 수도 있다는 것을 의미한다.
또한, 더티 RAM(124) 어드레스는, D 버스 디바이스에 의해 표시된 PCI 어드레스의 비트 13에서 28까지 디코딩 된다. 어드레스 비트 29 내지 31의 불법적인 조합을 나타낸 잘못된 액세스는 더티 RAM(124)으로 매핑되고, 브리지가 처리 세트로의 트랜잭션을 통과하지 않을지라도 비트는 기록에 관해 더러워진다.
더티 RAM(124)을 판독할 경우, 브리지는 0x00008000에서 0x0000ffff까지의 전체 영역을 더티 RAM으로서 정의하여, 판독의 범위 내에 있는 임의의 위치의 내용을 클리어 시킬 것이다.
판독되자마자 클리어 되는 단일 더티 RAM(124)을 제공하는 대안으로서, 다른 대안은, 다른 것이 판독되는 동안에 기록되면서 토글(toggle) 모드에서 사용된 2개의 더티 RAM을 제공하는데 있다.
도 28은 더티 RAM(124)의 동작을 요약한 흐름도이다.
단계 S41에서는, 주 처리 세트가 더티 RAM(124)을 리세팅하는 효과가 있는 더티 RAM(124)을 판독한다.
단계 S42에서는, 주 처리 세트(예: 처리 세트 14)가 그 메모리(56) 전체를 다른 처리 세트(예: 처리 세트 16)의 메모리(56)에 복사한다.
단계 S43에서는, 주 처리 세트가 더티 RAM(124)을 리세팅하는 효과가 있는 더티 RAM(124)을 판독한다.
단계 S44에서는, 주 처리 세트가, 소정 비트 수가 더티 RAM(124)에 기록된 것 미만인지를 판단한다.
그 소정 비트 수가 이상으로 설정된 경우, 단계 S45에서 프로세서는, 더티 RAM(124)으로부터 판독된 더티 비트에 의해 표시된 것처럼 더러워진 그 메모리(56)의 페이지들을 다른 처리 세트의 메모리(56)에 복사한다. 그래서, 제어는 다시 단계 S43으로 넘어간다.
단계 S44에서 그 소정 비트 수가 더티 RAM(124)에 기록된 것 미만일 경우, 단계 S45에서 주 프로세서는, 브리지로 하여금 D버스(22)에 접속된 디바이스로부터의 DMA 요구를 억제하게 한다. 예를 들면, 이는 디바이스 슬롯마다의 중재 인에이블 비트를 클리어 하여서, D 버스(22)로의 DMA 디바이스의 액세스를 거절함으로써 달성할 수 있다. 또한, 어드레스 디코더(142)는, 주 프로세서로부터의 명령하에 DMA 요구를 무시하도록 구성할 수 있다. DMA 액세스를 방해하고 있는 주기 동안에, 주 프로세서는, 그 메모리에서 더티 RAM(124)에 설정된 비트에 대응하는 메모리 페이지들을 위한 다른 프로세서의 메모리(56)까지 마지막 복사 통과를 한다.
단계 S47에서는, 주 프로세서가 조합 모드를 시작하기 위한 리세트 동작을 발생한다.
단계 S48에서는, DMA 액세스가 한번 더 허가된다.
본 발명의 특정 실시예를 설명하였지만, 첨부된 청구항에 기재된 것처럼 본 발명의 사상 및 범위 내에서 많은 변형/추가 및/또는 대체를 할 수도 있다는 알아야 할 것이다. 예를 들면, 명세서 설명에서 2개의 처리 세트를 제공하였지만, 2개 이상의 처리 세트를 제공하기 위해 상기 특별히 설명된 특징을 변형할 수도 있다는 것을 알아야 할 것이다.

Claims (26)

  1. 제 1 처리 세트용 제 1 I/O 버스로의 접속을 위한 제 1 프로세서 버스 인터페이스와, 제 2 처리 세트용 제 2 I/O 버스로의 접속을 위한 제 2 프로세서 버스 인터페이스와, 디바이스 버스로의 접속을 위한 디바이스 버스 인터페이스와, 상기 제 1 및 제 2 처리 세트 사이에서 I/O 버스 및 디바이스 버스로의 액세스를 중재하는 제 1 분할 모드 및 상기 제 1 및 제 2 처리 세트의 록스텝 동작을 감시하는 제 2 조합 모드에서 동작할 수 있도록 구성된 브리지 제어 장치를 포함하는 멀티-프로세서 시스템용 브리지.
  2. 제 1 항에 있어서,
    상기 브리지 제어 장치는, 디바이스 버스로의 액세스를 할당하기 위한 I/O 버스상의 신호 사이를 중재하기 위해 분할 모드에서 동작할 수 있도록 구성된 중재기를 구비한 것을 특징으로 하는 멀티-프로세서 시스템용 브리지.
  3. 제 2 항에 있어서,
    상기 중재기는, I/O 버스와 디바이스 버스로의 액세스를 위해 I/O 버스와 디바이스 버스상의 신호 사이에서 중재하도록 동작할 수 있는 것을 특징으로 하는 멀티-프로세서 시스템용 브리지.
  4. 제 1 항에 있어서,
    상기 브리지 제어 장치는, 록스텝 오류를 나타내는 I/O버스상의 신호간의 차이를 검출하기 위해 조합 모드에서 동작할 수 있도록 구성된 비교기를 구비한 것을 특징으로 하는 멀티-프로세서 시스템용 브리지.
  5. 제 1 항에 있어서,
    상기 브리지 제어 장치는, 비교기의 출력에 접속되고, 록스텝 오류를 나타내는 신호와 비교기의 출력에 따라, 브리지를 조합 모드에서 동작을 멈추게 하고 대신에 그 이상의 오류 모드에서 동작을 하게 하는 것을 특징으로 하는 멀티-프로세서 시스템용 브리지.
  6. 제 5 항에 있어서,
    데이터 버퍼링을 하기 위한 내부 메모리를 포함하고, 상기 브리지 제어 장치가 오류 모드에서 오류 도출 동안 I/O 사이클을 버퍼링하도록 동작할 수 있도록 구성된 것을 특징으로 하는 멀티-프로세서 시스템용 브리지.
  7. 제 6 항에 있어서,
    상기 브리지 제어 장치는, 초기 오류 모드에서, 처리 세트에 의해 시작된 임의의 내부 브리지 기록 액세스를 공시 기록 버퍼에 저장하고, 처리 세트에 의해 시작된 임의의 내부 브리지 판독 액세스를 허가하고 중재하여 동작할 수 있도록 구성된 것을 특징으로 하는 멀티-프로세서 시스템용 브리지.
  8. 제 6 항에 있어서,
    상기 브리지 제어 장치는, 초기 오류 모드에서, 처리 세트에 의해 시작된 임의 디바이스 기록 액세스를 공시 기록 버퍼에 저장하고, 처리 세트에 의해 시작된 임의의 디바이스 버스 판독 액세스를 중단하여 동작할 수 있도록 구성된 것을 특징으로 하는 멀티-프로세서 시스템용 브리지.
  9. 제 6 항에 있어서,
    상기 브리지 제어 장치는, 처리 세트가 그 자체를 주 처리 세트로서 가정하는 주 오류 모드에서, 그 주 처리 세트에 의해 시작된 임의의 내부 브리지 기록 액세스를 허가하여 중재하고, 임의의 다른 처리 세트에 의해 시작된 임의의 내부 브리지 기록 액세스를 포기하며, 처리 세트에 의해 시작된 임의의 내부 브리지 판독 액세스를 허가하고 중재하여 동작할 수 있도록 구성된 것을 특징으로 하는 멀티-프로세서 시스템용 브리지.
  10. 제 9 항에 있어서,
    상기 브리지 제어 장치는, 처리 세트가 그 자체를 주 처리 세트로서 가정하는 주 오류 모드에서, 처리 세트에 의해 시작된 임의의 디바이스 버스 기록 액세스를 포기하고, 처리 세트에 의해 시작된 임의의 디바이스 버스 판독 액세스를 중단하여 동작할 수 있도록 구성된 것을 특징으로 하는 멀티-프로세서 시스템용 브리지.
  11. 제 1 항에 있어서,
    상기 브리지 제어 장치는, 처리 세트가 그 자체를 주 처리 세트로서 가정할 때까지 초기 오류 모드에서 브리지의 전원을 켜서 동작하도록 동작할 수 있어서, 모든 처리 세트가 조합 모드로 옮기기 전의 대응하는 상태로 설정될 수 있게 하는 분할 모드에서 동작할 수 있는 것을 특징으로 하는 멀티-프로세서 시스템용 브리지.
  12. 제 1 항에 있어서,
    메모리 서브-시스템을 구비하고, 제 1 프로세서 버스 인터페이스, 제 2 프로세서 버스 인터페이스, 디바이스 버스 인터페이스와 메모리 서브시스템 사이에 접속된 제어 가능한 라우팅 매트릭스를 구비하고, 상기 브리지 제어장치가, 동작의 현재 모드에 따라 제 1 프로세서 버스 인터페이스, 제 2 프로세서 버스 인터페이스, 디바이스 버스 인터페이스 및 메모리 서브-시스템을 선택적으로 상호 연결하는 라우팅 매트릭스를 제어하여 동작할 수 있도록 구성된 것을 특징으로 하는 멀티-프로세서 시스템용 브리지.
  13. 제 1 항에 있어서,
    그 이상의 처리 세트의 I/O 버스로의 접속을 위한 적어도 하나 이상의 프로세서 버스 인터페이스를 구비한 것을 특징으로 하는 멀티-프로세서 시스템용 브리지.
  14. 제 1 처리 세트용 제 1 I/O버스, 제 2 처리 세트용 제 2 I/O 버스 및 디바이스 버스와 인터페이스 하기 위한 수단과, 제 1 및 제 2 처리 세트간의 I/O 버스와 디바이스 버스로의 액세스를 중재하기 위한 분할 모드와 제 1 및 제 2 처리 세트의 록스텝 동작을 감시하기 위한 조합 모드에서 브리지를 제어하기 위한 수단을 구비하는 멀티-프로세서 시스템용 브리지.
  15. 제 1 I/O 버스를 갖는 제 1 처리 세트, 제 2 I/O 버스를 갖는 제 2 처리 세트, 디바이스 버스 및 브리지를 구비하되, 상기 브리지가, 상기 제 1 I/O 버스, 상기 제 2 I/O 버스 및 디바이스 버스에 접속되고, 상기 제 1 및 제 2 처리 세트 사이에서 I/O 버스 및 디바이스 버스로의 액세스를 중재하는 제 1 분할 모드 및 상기 제 1 및 제 2 처리 세트의 록스텝 동작을 감시하는 제 2 조합 모드에서 동작할 수 있도록 구성된 브리지 제어 장치를 구비하는 컴퓨터 시스템.
  16. 제 15 항에 있어서,
    각 처리 세트는 적어도 하나의 프로세서, 메모리 및 처리 세트 I/O 버스 제어기를 구비하는 것을 특징으로 하는 컴퓨터 시스템.
  17. 제 15 항에 있어서,
    적어도 하나 이상의 처리 세트를 더 구비한 것을 특징으로 하는 컴퓨터 시스템.
  18. 제 1 I/O 버스를 갖는 제 1 처리 세트, 제 2 I/O 버스를 갖는 제 2 처리 세트, 디바이스 버스 및 브리지를 구비하고, 상기 브리지가 상기 제 1 I/O 버스, 상기 제 2 I/O 버스 및 디바이스 버스에 접속되어,
    상기 제 1 및 제 2 처리 세트 사이에서 I/O 버스 및 디바이스 버스로의 액세스를 중재하는 제 1 분할 모드와,
    상기 제 1 및 제 2 처리 세트의 록스텝 동작을 감시하는 제 2 조합 모드에서 브리지를 선택적으로 동작시키는 멀티-프로세서 시스템 동작 방법.
  19. 제 18 항에 있어서,
    분할 모드에서, 디바이스 버스로의 액세스를 할당하기 위한 I/O 버스상의 신호 사이를 브리지에서 중재하는 것을 포함하는 멀티-프로세서 시스템 동작 방법.
  20. 제 18 항에 있어서,
    I/O 버스와 디바이스 버스상의 신호 사이에서 I/O 버스와 디바이스 버스로의 액세스를 중재하는 것을 포함하는 멀티-프로세서 시스템 동작 방법.
  21. 제 18 항에 있어서,
    조합 모드에서 록스텝 오류를 나타내는 I/O버스상의 신호간의 차이를 검출하는 것을 포함하는 멀티-프로세서 시스템 동작 방법.
  22. 제 18 항에 있어서,
    조합 모드에서의 동작을 멈추는 대신에 그 이상의 오류 모드에서 동작하는 동작의 조합 모드 동안 록스텝의 검출에 따르는 것을 포함하는 멀티-프로세서 시스템 동작 방법.
  23. 제 22 항에 있어서,
    오류 도출중 오류 모드 동안 브리지에서 데이터를 저장하는 것을 포함하는 멀티-프로세서 시스템 동작 방법.
  24. 제 23 항에 있어서,
    초기 오류 모드에서,
    처리 세트에 의해 시작된 임의의 내부 브리지 기록 액세스를 공시 기록 버퍼에 저장하고, 처리 세트에 의해 시작된 임의의 내부 브리지 판독 액세스를 허가하여 중재하고,
    처리 세트에 의해 시작된 임의의 디바이스 버스 기록 액세스를 공시 기록 버퍼에 저장하고, 처리 세트에 의해 시작된 임의의 디바이스 버스 판독 액세스를 중단하는 것을 포함하는 멀티-프로세서 시스템 동작 방법.
  25. 제 23 항에 있어서,
    처리 세트 그 자체를 주 처리 세트로서 가정하는 주 오류 모드에서,
    주 처리 세트에 의해 시작된 임의의 내부 브리지 기록 액세스를 허가하여 중재하고, 임의의 다른 처리 세트에 의해 시작된 임의의 내부 브리지 기록 액세스를 포기하고, 처리 세트에 의해 시작된 임의의 내부 브리지 판독 액세스를 허가하여 중재하며,
    처리 세트에 의해 시작된 임의의 디바이스 버스 기록 액세스를 포기하고, 처리 세트에 의해 시작된 임의의 디바이스 버스 판독 액세스를 중단하는 것을 포함하는 멀티-프로세서 시스템 동작 방법.
  26. 제 18 항에 있어서,
    브리지의 전원을 켜면서,
    처리 세트 그 자체를 주 처리 세트로서 가정할 때까지 초기 오류 모드에서 동작하여서, 모든 처리 세트가 조합 모드로 옮기기 전의 대응하는 상태로 설정될 수 있게 분할 모드에서 동작하는 것을 포함하는 멀티-프로세서 시스템 동작 방법.
KR1020007014135A 1998-06-15 1999-06-09 멀티-프로세서 시스템 브리지 KR20010052813A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/097,497 1998-06-15
US09/097,497 US6173351B1 (en) 1998-06-15 1998-06-15 Multi-processor system bridge
PCT/US1999/013086 WO1999066407A1 (en) 1998-06-15 1999-06-09 Multi-processor system bridge

Publications (1)

Publication Number Publication Date
KR20010052813A true KR20010052813A (ko) 2001-06-25

Family

ID=22263677

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007014135A KR20010052813A (ko) 1998-06-15 1999-06-09 멀티-프로세서 시스템 브리지

Country Status (7)

Country Link
US (1) US6173351B1 (ko)
EP (1) EP1088272B1 (ko)
JP (1) JP2002518739A (ko)
KR (1) KR20010052813A (ko)
AT (1) ATE226742T1 (ko)
DE (1) DE69903630T2 (ko)
WO (1) WO1999066407A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587961B1 (en) * 1998-06-15 2003-07-01 Sun Microsystems, Inc. Multi-processor system bridge with controlled access
US6260159B1 (en) * 1998-06-15 2001-07-10 Sun Microsystems, Inc. Tracking memory page modification in a bridge for a multi-processor system
US6625749B1 (en) 1999-12-21 2003-09-23 Intel Corporation Firmware mechanism for correcting soft errors
DE10013665C2 (de) * 2000-03-20 2003-11-06 Fresenius Medical Care De Gmbh Medizinisches Gerät mit doppeltem Kommunikationsbus
US6920516B2 (en) * 2000-08-31 2005-07-19 Hewlett-Packard Development Company, L.P. Anti-starvation interrupt protocol
JO2654B1 (en) 2000-09-04 2012-06-17 شركة جانسين فارماسوتيكا ان. في Multiple aryl caroxa amides are useful as lipid - lowering agents
JO2409B1 (en) 2000-11-21 2007-06-17 شركة جانسين فارماسوتيكا ان. في Second-phenyl carboxy amides are useful as lipid-lowering agents
US6954886B2 (en) * 2001-12-31 2005-10-11 Intel Corporation Deterministic hardware reset for FRC machine
US7194671B2 (en) * 2001-12-31 2007-03-20 Intel Corporation Mechanism handling race conditions in FRC-enabled processors
GB2399913B (en) * 2002-03-19 2004-12-15 Sun Microsystems Inc Fault tolerant computer system
US20030214847A1 (en) * 2002-05-14 2003-11-20 Infineon Technologies North America Corp. Wordline pulldown circuit
US20030217223A1 (en) * 2002-05-14 2003-11-20 Infineon Technologies North America Corp. Combined command set
US6928509B2 (en) * 2002-08-01 2005-08-09 International Business Machines Corporation Method and apparatus for enhancing reliability and scalability of serial storage devices
US7039734B2 (en) * 2002-09-24 2006-05-02 Hewlett-Packard Development Company, L.P. System and method of mastering a serial bus
US6832268B2 (en) * 2002-12-19 2004-12-14 Intel Corporation Mechanism to guarantee forward progress for incoming coherent input/output (I/O) transactions for caching I/O agent on address conflict with processor transactions
US7055060B2 (en) * 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor
US6963164B2 (en) 2003-09-15 2005-11-08 Colour Star Limited Cold cathode fluorescent lamps
US7194663B2 (en) * 2003-11-18 2007-03-20 Honeywell International, Inc. Protective bus interface and method
US7321985B2 (en) * 2004-02-26 2008-01-22 International Business Machines Corporation Method for achieving higher availability of computer PCI adapters
US7669073B2 (en) * 2005-08-19 2010-02-23 Stratus Technologies Bermuda Ltd. Systems and methods for split mode operation of fault-tolerant computer systems
US7783822B2 (en) * 2007-07-25 2010-08-24 Hewlett-Packard Development Company, L.P. Systems and methods for improving performance of a routable fabric
US9180238B2 (en) 2008-06-11 2015-11-10 Baxter International Inc. Distributed processing system and method for dialysis machines
KR102549261B1 (ko) 2015-06-25 2023-06-28 감브로 룬디아 아베 분산형 데이터베이스를 갖는 의료 디바이스 시스템 및 방법
JP6853162B2 (ja) * 2017-11-20 2021-03-31 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4700346A (en) * 1985-05-10 1987-10-13 Tandem Computers Incorporated Self-checking, dual railed, leading edge synchronizer
AU2022188A (en) * 1987-07-30 1989-02-02 Alliant Computer Systems Corporation Parallel processing computer in which memory access priorities are varied
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5153881A (en) * 1989-08-01 1992-10-06 Digital Equipment Corporation Method of handling errors in software
US5226152A (en) * 1990-12-07 1993-07-06 Motorola, Inc. Functional lockstep arrangement for redundant processors
US5991866A (en) * 1992-03-25 1999-11-23 Tm Patents, Lp Method and system for generating a program to facilitate rearrangement of address bits among addresses in a massively parallel processor system
GB2268817B (en) 1992-07-17 1996-05-01 Integrated Micro Products Ltd A fault-tolerant computer system
US5790776A (en) 1992-12-17 1998-08-04 Tandem Computers Incorporated Apparatus for detecting divergence between a pair of duplexed, synchronized processor elements
JPH06187257A (ja) * 1992-12-17 1994-07-08 Fujitsu Ltd システムバス制御方式
US5457779A (en) * 1993-01-15 1995-10-10 Silicon Graphics, Inc. System for accessing graphic data in a SIMD processing environment
US5533204A (en) * 1994-04-18 1996-07-02 Compaq Computer Corporation Split transaction protocol for the peripheral component interconnect bus
US5630056A (en) * 1994-09-20 1997-05-13 Stratus Computer, Inc. Digital data processing methods and apparatus for fault detection and fault tolerance
US5586253A (en) 1994-12-15 1996-12-17 Stratus Computer Method and apparatus for validating I/O addresses in a fault-tolerant computer system
US5568097A (en) * 1995-09-25 1996-10-22 International Business Machines Inc. Ultra high availability clock chip
US5870625A (en) * 1995-12-11 1999-02-09 Industrial Technology Research Institute Non-blocking memory write/read mechanism by combining two pending commands write and read in buffer and executing the combined command in advance of other pending command
JP3273539B2 (ja) * 1996-01-19 2002-04-08 シャープ株式会社 スペクトル拡散信号受信機
US5881254A (en) * 1996-06-28 1999-03-09 Lsi Logic Corporation Inter-bus bridge circuit with integrated memory port
US5923830A (en) * 1997-05-07 1999-07-13 General Dynamics Information Systems, Inc. Non-interrupting power control for fault tolerant computer systems
US5991900A (en) * 1998-06-15 1999-11-23 Sun Microsystems, Inc. Bus controller

Also Published As

Publication number Publication date
EP1088272B1 (en) 2002-10-23
WO1999066407A1 (en) 1999-12-23
DE69903630T2 (de) 2003-07-31
JP2002518739A (ja) 2002-06-25
US6173351B1 (en) 2001-01-09
EP1088272A1 (en) 2001-04-04
DE69903630D1 (de) 2002-11-28
ATE226742T1 (de) 2002-11-15

Similar Documents

Publication Publication Date Title
US6138198A (en) Processor bridge with dissimilar data registers which is operable to disregard data differences for dissimilar data write accesses
US6148348A (en) Bridge interfacing two processing sets operating in a lockstep mode and having a posted write buffer storing write operations upon detection of a lockstep error
US5991900A (en) Bus controller
EP1086425B1 (en) Direct memory access in a bridge for a multi-processor system
KR20010052813A (ko) 멀티-프로세서 시스템 브리지
EP1090350B1 (en) Multi-processor system bridge with controlled access
US6065102A (en) Fault tolerant multiple client memory arbitration system capable of operating multiple configuration types
US6785763B2 (en) Efficient memory modification tracking with hierarchical dirty indicators
US6141718A (en) Processor bridge with dissimilar data registers which is operable to disregard data differences for dissimilar data direct memory accesses
EP1145131B1 (en) Resource control in a computer system

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid