KR100271203B1 - 데이타처리시스템및버스상호접속방법 - Google Patents

데이타처리시스템및버스상호접속방법 Download PDF

Info

Publication number
KR100271203B1
KR100271203B1 KR1019970006790A KR19970006790A KR100271203B1 KR 100271203 B1 KR100271203 B1 KR 100271203B1 KR 1019970006790 A KR1019970006790 A KR 1019970006790A KR 19970006790 A KR19970006790 A KR 19970006790A KR 100271203 B1 KR100271203 B1 KR 100271203B1
Authority
KR
South Korea
Prior art keywords
bus
sub
transaction
buses
bridge
Prior art date
Application number
KR1019970006790A
Other languages
English (en)
Other versions
KR970071311A (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 KR970071311A publication Critical patent/KR970071311A/ko
Application granted granted Critical
Publication of KR100271203B1 publication Critical patent/KR100271203B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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

Abstract

데이터 처리 시스템은 프로세서, 시스템 메모리 및 다수의 주변 장치와, 프로세서, 메모리 및 주변 장치와 네트워크에서와 같은 다른 호스트 또는 주변 장치들 사이를 연결할 수 있는 하나 이상의 브리지(bridge)를 포함한다. PCI 호스트 브리지와 같은 브리지는 주 버스(primary bus)(예를 들어, 시스템 버스)와 부 버스(secondary bus) 사이를 연결한다. 호스트 브리지는 2 개의 부 버스 인터페이스를 생성하는 이중 호스트 브리지 기능을 제공한다. 이것은 하나의 보통 호스트 브리지하에서 허용되는 더 작은 수의 슬롯과 비교할 때 하나의 이중(dual) 호스트 브리지하에서의 로딩(loading) 능력을 향상시킨다. 또한, 중재 제어를 제공하고, 적절한 버스 인터페이스에 트랜잭션(transaction)을 조향(steering)하는 부가적인 제어 로직(control logic)이 포함된다. 또한, 두 개의 부 버스 인터페이스를 통해 피어 투 피어 지원(peer to peer support)이 제공된다.

Description

데이터 처리 시스템 및 버스 상호 접속 방법{DUAL HOST BRIDGE WITH PEER TO PEER SUPPORT}
본 발명은 데이터 처리 시스템(data processing system)에 관한 것으로서, 보다 구체적으로는 PCI(Peripheral Component Interconnect) 버스 등과 같은 부 버스(secondary bus)를 위해 이중(2 개의) 버스 인터페이스를 제공하면서, 호스트 브리지(host bridge)의 기능적 능력(functional capability)을 효과적으로 제공하는 메카니즘을 포함하는 데이터 처리 시스템에 관한 것이다.
데이터 처리 시스템에서 사용되는 PCI 버스 사양(specification)과 같은 많은 표준 버스 아키텍쳐들은 동일한 버스 프로토콜(bus protocol)을 갖는 적어도 두 개의 버스를 연결하는 버스 대 버스 브리지(bus to bus bridge)를 통과하는 트랜잭션(transaction)에 대한 정렬 규칙(ordering rule)을 포함한다. 이러한 트랜잭션의 예로는 호스트 프로세서로부터 주변 장치까지의 외부 방향으로의 판독 요구(read request), 주변 장치로부터 호스트 프로세서까지의 내부 방향으로의 데이터를 포함하고 판독 요구에 응답하는 판독 응답(read reply), 또는 호스트가 다른 처리를 계속하도록 버스 대 버스 브리지 내의 버퍼로 기록 코맨드(write command)가 포스팅(posting)되는 포스팅된 기록(posted write)이 있다. 여기서, 포스팅된 기록이라는 용어는 기록이 개시 버스상에서 완료된 후, 나중에 목적지 버스(destination bus)에서 완료되기 위해 호스트 브리지 내에 포스팅된다는 것을 의미한다. 현재의 버스 대 버스 브리지 아키텍쳐는 호스트 프로세서에서 멀어지는 아웃바운드(outbound) 방향과 호스트 프로세서 쪽으로 향하는 인바운드(inbound) 방향 모두에서 버스 대 버스 브리지를 통과하는 판독 트랜잭션이 완료되기 이전에 기록 버퍼가 비워질 것을 요구하거나, 또는 PCI 버스 아키텍쳐를 위한 PCI 로컬 버스 사양(Local Bus Specification)(버전 2.1)에 설명된 바와 같은 특정 버스 대 버스 정렬 규칙을 규정한다. 버퍼를 비우게 되면, 브리지 버퍼에 소정의 포스팅된 기록이 있는 경우 재시도되는 프로세서 판독 액세스(processor read access)가 정지되므로 사용중인 서버에 성능상의 문제를 일으킬 수 있다. 여기서, 재시도는 마스터(master)에 의해 지정되는 표적 장치(target device)가 액세스를 승인하지만, 현재 사용중이며 트랜잭션을 종료할 것임을 알리는 것을 의미한다. 그 후, 마스터는 나중에 액세스를 재시도한다.
또한, 현재의 버스 대 버스 브리지 아키텍쳐는 대개 하나의 주 인터페이스(primary interface)와 하나의 부 인터페이스(secondary interface)를 제공한다. PCI 버스 아키텍쳐는 단지 10 개의 버스 로드를 로드(load)할 수 있는 제한된 버스 로드 능력(bus loading capability)을 가지며, 하나의 결합된(soldered) 장치(어댑터)는 하나의 로드로서 계산되고 슬롯 어댑터(slotted adapter)는 두 개의 로드로서 계산되므로, 결과적으로 PCI 호스트 브리지는 부 버스에 최대한으로 단지 4 개의 슬롯만을 직접 연결할 수 있다. 슬롯 어댑터를 더 적게 연결한다면, 결합된 장치를 더 많이 연결할 수 있다. 또한, 호스트 브리지는 부 버스 상의 10 개의 로드 중 하나로 간주된다. 따라서, 시스템 내에 많은 수의 슬롯이 필요하게 되어, 이 필요한 슬롯을 제공하기 위해 다중 호스트 브리지를 제공하거나, 다중 PCI-PCI 브리지 또는 이 둘의 조합을 제공한다.
하나의 PCI 버스에 또 다른 PCI 버스를 연결하는 버스 대 버스 브리지는 본 명세서에서 PCI-PCI 브리지라고 지칭된다. PCI-PCI 브리지를 통과하는 트랜잭션의 정렬 규칙들은 PCI 로컬 버스 사양[개정판(revision) 2.1]에 포함되어 있다. 호스트 프로세서(들), 시스템 버스 또는 다른 시스템 상호 접속을 PCI 버스에 연결하는 브리지는 본 명세서에서 PCI 호스트 브리지(PHB) 또는 호스트 브리지라고 지칭된다.
호스트 브리지는 PCI-PCI 브리지가 요구하는 특정한 요건을 갖지만, 호스트 브리지의 경우 호스트 브리지 인터페이스의 주측(시스템) 상의 대부분의 트랜잭션의 소스는 I/O 장치보다는 호스트 프로세서(들)에 의해 개시되므로 PCI-PCI 브리지와 동일한 제한 조건 모두를 갖지는 않는다.
1992년 7월에 IBM 기술 발표 회의 제233 페이지의 "고성능 투명한 브리지를 위한 아키텍쳐(Architecture for High Performance Transparent Bridges)"라는 명칭의 논문에는, 브리지 내부의 균일한 처리로 판독 또는 기록 데이터 전달을 보장하는 버퍼링 요소들을 포함하는 네트워크를 상호 연결하는 다중 포트 브리지를 갖는 고성능 브리지에 대한 구조가 개시되어 있다.
비록, 이 논문이 일반적으로 브리지의 성능을 향상시키는 것과 관련은 있지만, 버스의 로딩 제한 문제 및 그러한 제한 사항들을 경감시키는 방법이 개시되어 있지는 않다.
"공유 메모리를 통해 소스 및 목적지의 사용자간에 메시지를 전달하는 메카니즘(Mechanism for Transferring Messages Between Source and Destination Users Through a Shared Memory)"라는 명칭의 미국 특허 제5,333,269호에는 다수의 독립적인 버퍼를 갖는 메모리, 메모리 인터페이스 및 중앙 제어 장치가 연결되어 있는 하나의 공통 버스가 개시되어 있다. 메모리 인터페이스는 소스의 사용자로부터 메시지를 수신하여 선택된 버퍼에 메시지를 저장하고 버퍼들을 함께 연결시킨다. 제어 장치는 메모리 인터페이스로부터 수신한 코맨드에 응답하여, 인바운드 메시지 큐(inbound message cue) 및 아웃바운드 메시지 큐를 생성한다.
비록, 상기 특허가 고성능 버스 브리지 구조와 약간의 유사성을 가지고는 있지만, 이 특허는 제한된 버스 로딩 능력에 대한 해결책을 시사하거나 암시조차 못하고 있다.
"어드레스 검사 회로를 구비한 네트워크 상호 접속용 브리지 장치(Bridge Apparutus with an Address Check Circuit for Interconnecting Networks)"라는 명칭의 미국 특허 제5,247,620호에는 프로세서로부터 주변 장치로 정보를 판독하고, 네트워크 환경에서 연결을 하기 위한 다중 인바운드 및 아웃바운드 버퍼가 개시되어 있다.
비록, 상기 특허가 도 1의 버퍼 메모리를 포함하는 버스 대 버스 브리지를 도시하고는 있지만, 이 특허는 다중 호스트 및/또는 다중 PCI-PCI 브리지와 같은 것에 대한 필요성을 제거하는 버스 대 버스 브리지의 버스 로딩 능력을 향상시키는 메카니즘을 개시하거나 제시하지도 못하고 있다.
선행 기술들 중 어떤 것도 팬아웃(fan-out)(로드) 용량을 증가시키기 위해 다중 브리지를 포함하는 것에 대한 부담을 경감시키기 위한 방법을 개시하지도 제시하지도 못하고 있다.
특히, 시스템이 PCI 버스에 대해 최대 4 개의 슬롯인 것과 같이 통상 허용되는 수 이상의 부 버스 슬롯을 요구하고, 효율적인 피어 투 피어(peer to peer) 동작을 요구할 경우 문제가 된다. 이러한 문제에 대한 산업계의 현재 해결책을 부가적인 호스트 브리지를 제공하거나, 하나의 호스트 브리지의 전형적인 4 개의 슬롯 용량을 초과하는 부가적인 슬롯 용량을 만들어 내기 위한 다중 PCI-PCI 브리지를 제공하는 것이다. 이러한 통상의 기법들은 부가 슬롯에 대한 요건을 해결하고자 시도되지만, 호스트 및 버스 대 버스 브리지의 수를 최소화하면서 효율적인 피어 투 피어 지원에 대한 요구를 해결하지는 못하고 있다.
따라서, 본 발명의 목적은 호스트 브리지에서 인바운드 및 아웃바운드 양쪽 방향으로 다중 혼합된 트랜잭션을 효율적으로 처리하기 위한 것이다. 또한, 본 발명은 증가된 팬아웃(로드) 능력을 제공하고, 두 개의 부 버스 인터페이스들간의 증가된 피어 투 피어 지원을 가능하게 하는 기본적인 내부 버스 대 버스 브리지 능력을 제공하는 이중 부 버스 인터페이스를 제공하는 제어 메카니즘을 포함한다.
본 발명은 두 개의 부 버스 인터페이스를 생성하는 이중 호스트 브리지를 제공함으로써, 호스트 브리지의 부 버스 인터페이스의 슬롯 팬아웃 능력을 상당히 확장시킨다. 예컨대, PCI 버스의 경우, 하나의 PCI 호스트 브리지에서 통상 10 개의 로드가 아닌 20 개의 버스 로드를 제공하게 된다.
또한, 본 발명은 2 개의 부 버스들을 하나의 논리적 버스(logical bus)로 다루고(중재 측면에서 볼 경우), 두 개의 부 PCI 버스 인터페이스를 통해서 피어 투 피어 지원을 제공하기 위한 적절한 내부 제어 로직을 제공한다.
본 발명은 소프트웨어 부가없이 이러한 부가적인 특징과 장점들을 달성한다.
더욱이, 본 발명은 주 시스템 버스 인터페이스 아래의 이중 호스트 브리지의 상부에서 하나의 호스트 브리지 기능만을 제공함으로써 단순화되며, 버스 조향 로직 및 기타 제어 기능들을 갖는 이중 부 버스 인터페이스를 생성한다.
이러한 기법들은 호스트 브리지와, 일반적으로 기록 및 판독 트랜잭션을 포스팅하는 버스 대 버스 브리지에 적용될 수 있다.
전술한 내용은 후술하는 발명의 구성 및 작용에 대한 기재의 이해를 돕기 위하여 본 발명의 특징과 기술적인 장점을 폭넓게 기술하였다. 본 발명의 부가적인 특징 및 장점들은 이하에서 논의될 것이며, 이는 본 발명의 청구 범위의 토대를 이룰 것이다.
도 1은 본 발명을 구현한 데이터 처리 시스템의 블럭도.
도 2는 도 1의 시스템에 의해 본 발명에 사용되는 기본 호스트 브리지의 특징을 도시한 호스트 브리지(예컨대, PCI 호스트 브리지)의 블럭도.
도 3a 및 도 3b는 도 2의 호스트 브리지에서 아웃바운드 및 인바운드 양경로의 각 트랜잭션 타입에 대한 트랜잭션의 제어를 도시한 로직 테이블.
도 4는 본 발명에 의해 제공되는 조향 로직의 세트와 이중 부 I/O 버스 인터페이스 및 피어 투 피어 지원을 제공하는 기타 제어 장치를 또한 포함하는 확장된 호스트 브리지를 도시한 또 다른 블럭도.
도 5는 하나의 호스트 브리지가 다중 부 버스를 지원하는 본 발명의 또 다른 바람직한 실시예를 도시한 블럭도.
*도면의 주요 부분에 대한 부호의 설명*
10 : 시스템
14 : 시스템 버스
16, 18 : 부 버스
20a : 호스트 브리지
202 : 아웃바운드 경로
204 : 인바운드 경로
406 : 제어 모듈
402, 404 : PCI 버스
본 발명은 호스트 브리지에서 인바운드 및 아웃바운드 양방향에서 다중 혼합된 트랜잭션을 효과적으로 처리하며, 또한 2 배의 팬아웃(로드) 능력을 제공하는 이중 부 PCI 인터페이스를 제공하는 제어 메카니즘을 포함하지만, 두 개의 부 버스 인터페이스 사이에서 향상된 피어 투 피어 지원을 제공하는 기본적인 내부 PCI-PCI 브리지 능력을 또한 제공한다.
따라서, 데이터 처리 시스템은 호스트 프로세서(들), 다수의 주변 장치 및 하나 이상의 브리지를 포함하며, 하나 이상의 브리지는 하나 이상의 프로세서, 주변 장치와, 네트워크에서와 같이 상호 접속된 주변 장치를 갖는 다른 호스트 프로세서들 사이를 연결할 수 있다. 호스트 버스 대 버스 브리지는 주 버스(예컨대, 시스템 버스)와 이중 부 버스(예컨대, PCI 버스와 같은 I/O 버스) 사이를 연결하며, 명료성을 위해 주 버스는 아웃바운드 트랜잭션의 소스 및 인바운드 트랜잭션의 목적지로 간주되고, 부 버스들은 아웃바운드 트랜잭션의 목적지 및 인바운드 트랜잭션의 소스로 간주될 것이다. 주 버스상의 상이한 트랜잭션들은 어떻게 구현하느냐에 따라 부 버스상의 기타 트랜잭션과 동시에 발생될 수도 있고, 그렇지 않을 수도 있다. 각각의 호스트 브리지는 아웃바운드 데이터 경로, 인바운드 데이터 경로 및 제어 메카니즘을 포함한다. 아웃바운드 데이터 경로는 주 버스로부터의 수신 순서(또는 다른 정렬)로 트랜잭션을 저장하는 큐버퍼(queued buffer)와, 판독 응답 데이터 및 어드레스 정보를 저장하는 다수의 기타 버퍼들을 포함하며, 여기서 큐버퍼 내의 요구들은 판독 요구 및 기록 트랜잭션들 사이에서처럼 혼합될 수 있다.
인바운드 경로는 판독 요구 및 기록 요구가 트랜잭션 버퍼에 저장되고 판독 응답이 다수의 기타 버퍼에 저장되는 아웃바운드 경로의 거울상(mirror image)이다. 호스트 브리지에서 인바운드 경로 및 아웃바운드 양 경로는 양방향으로의 활동을 고려하여 바이패스(bypass) 트랜잭션을 허가 또는 금지하는 상태 머신(state machine)에 의해 제어된다. 여기서, 바이패스란 이전 트랜잭션이 후속 트랜잭션보다 먼저 큐(queue)에 입력되었더라도 후속 트랜잭션이 이전 트랜잭션보다 먼저 처리되는 것이 허용됨을 의미한다.
본 발명은 소정의 상태 머신의 제어 하에서 특정 타입의 트랜잭션 및 규정된 정렬 규칙의 세트에 따라 순차적 및 비순차적 순서 모두로 인바운드 및 아웃바운드 트랜잭션이 처리되도록 한다. 더욱이, 호스트 브리지 내의 인바운드 및 아웃바운드 트랜잭션은 버퍼를 비우지 않고도 판독 트랜잭션이 기록 트랜잭션 다음에 발생하도록 하는 메카니즘에 의해 효과적으로 처리될 수 있다.
본 발명은 호스트 브리지를 통과할 때 상이한 트랜잭션에 관련되어 유지되는 적절한 데이터 일관성(data consistency)을 유지한다. 판독 요구와 같은 기타 트랜잭션들은 시작 버스 상에서 완료되기 이전에 목적지 버스 상에서 완료[데이터 페치(fetch)]되어야 한다. 예컨대, 호스트 프로세서는 I/O 버스상의 주변 장치로부터 데이터를 요구할 수 있다. 데이터는 트랜잭션이 완료되기 전에 목적지 버스 상의 주변 장치로부터 페치되어 호스트 브리지를 통해 시작 버스 상의 호스트 프로세서로 제공되어야 한다. 본 발명의 특성상, 판독 액세스와 같은 트랜잭션의 처리는 포스팅된 기록들을 비우지 않고 진행될 수 있다.
여기서, 포스팅된 판독은 표적 장치가 액세스를 승인하고, 현재 사용중이라고 알린 후, 재시도 제어 신호로 액세스를 종료한다는 것을 나타낸다. 마스터(요구 장치)는 나중에 액세스를 재시도할 것이다. 그 후, 본 발명의 호스트 브리지는 후속 처리를 위한 판독 요구를 포스팅하여, 마스터가 나중에 액세스를 재시도할 때 이용할 수 있는 판독 데이터를 가질 수 있게 된다. 만약 호스트 브리지가 요구된 데이터를 얻기 전에 마스터가 재시도하면, 브리지는 다시 재시도를 알리지만, 액세스 요구의 제2 사본(copy)을 버퍼링(buffering)하지 않는다. 호스트 브리지의 경우, 프로세서(들)로부터의 판독 요구는 표시(tag)될 수 있지만, 재시도될 프로세서를 요구하지는 않는다.
일반적으로, 본 발명에 따르면 로드 동작(load operation)(호스트 프로세서에 관련된 판독 동작) 경로 및 스토어(store)(호스트 프로세서에 관련된 기록 동작) 경로는 성능 향상 및 구현의 용이성을 위해 주변 장치와 시스템 메모리 사이의 DMA(Direct Memory Access) 경로에 독립적이어야 한다. 데이터가 호스트 프로세서로 로드되도록 하는 로드 동작 및 데이터가 호스트 프로세서로부터 주변 장치에 저장되도록 하는 스토어 동작은 트랜잭션의 흐름을 고려해야 할 것이란 점을 주의하기 바란다.
또한, 주변 메모리 공간 또는 주변 I/O 공간(I/O 출력 버퍼)에 대한 호스트 브리지의 로드 요구는 두 로드가 모두 동일한 어드레스로 갈 때 동일한 호스트 브리지의 주변 메모리 공간(메모리 출력 버퍼) 또는 주변 I/O 공간에 대한 이전의 로드 이전에는 결코 I/O 버스로 전달되지 않아야 한다. 이것은 어드레스가 상이할 경우 성능의 향상을 가져오게 되며[패스(passing) 허용], 하나 또는 두 개의 프로세서가 동일한 어드레스에 기록할 때 한 프로세서가 또 다른 프로세서의 데이터를 가져가는(stealing)[즉, 스테일 데이터(stale data)를 획득함] 문제를 피할 수 있게 된다.
더욱이, 본 발명에 따르면, DMA 판독 응답 데이터는 데드록(deadlock)을 피하기 위해, 호스트 브리지에 버퍼링된 이전의 로드 및 스토어 트랜잭션을 바이패스할 수 있게 된다. 이것은 버스 대 버스 브리지와는 상이한 요건이며, 성능 향상을 위해 호스트 브리지와 PCI 버스간의 적절한 상호 작용을 위해 필요하다. 또한, 호스트 브리지의 주변 메모리 공간 또는 주변 I/O 공간으로의 로드 또는 스토어는 동일한 호스트 브리지의 주변 메모리 공간 또는 주변 I/O 공간으로의 이전의 저장 이전에는 절대로 I/O 버스로 전달되지 않아야 한다(즉, 하나의 호스트 브리지에 의해 발생된 I/O 버스로의 다중 저장은 순서를 지켜야 하고, 로드는 저장을 패스해서는 안됨).
본 발명은 두 개의 PCI 부 버스 인터페이스를 생성하는 PCI 이중 호스트 브리지(도 4 참조)를 제공함으로써, PCI 호스트 브리지의 부 버스 인터페이스의 슬롯 팬아웃 능력을 상당히 확장할 수 있는 장치를 제공한다. 이는 하나의 PCI 호스트 브리지에서 통상적인 10 개의 로드가 아닌 20 개의 버스 로드를 제공하게 된다. 적절한 내부 제어 로직이 두 개의 부 PCI 버스를 하나의 논리적 버스로서(중재 측면에서 볼 경우) 처리하기 위해 제공된다. 더욱이, 본 발명은 적절한 내부 제어 로직을 제공하여, 두 개의 부 PCI 버스 인터페이스를 통해 피어 투 피어 지원을 제공한다.
전술한 부가된 특징 및 이점들은 소프트웨어 부가없이 제공된다.
또한, 본 발명은 시스템을 단순화하여 주 시스템 버스 인터페이스 아래의 이중 호스트 브리지의 상부에 단지 하나의 PCI 호스트 브리지 기능을 포함하며, 기본적으로 버스 조향 로직 및 기타 제어 기능들을 갖는 이중 부 PCI 버스 인터페이스를 생성한다.
이러한 기법들은 호스트 브리지에 적용될 수 있으며, 또한 일반적으로 기록 및 판독 트랜잭션을 포스팅하는 버스 대 버스 브리지에 적용될 수 있다.
이제 도 1을 참조하여 본 발명을 구현한 데이터 처리 시스템을 설명한다.
시스템(10)은 멀티프로세서 시스템에 의해 사용될 수 있는 시스템 버스와 같은 제1 버스(14)에 연결된 최소한 하나의 호스트 프로세서(12)를 포함한다. 또한, 도 1에 점선으로 도시한 기타 프로세서(12)도 그 버스(14)에 연결될 수 있다.
또한, 제1 버스(14)와 제2 버스(16) 사이를 연결하는 호스트 브리지(20a)가 시스템 버스(14)에 연결된다. 시스템 메모리(15)도 시스템 버스(14)에 연결된다. 기타 장치(디바이스)들(30, 40)도 역시 버스(16)에 연결될 수 있다. 그 장치(40)는 PCI 버스[예컨대, 버스(16)]를 IBM사의 마이크로채널 버스(Microchannel bus) (마이크로 채널은 IBM사의 상표임)와 같은 또 다른 I/O 버스(17)에 연결하는 또 다른 브리지 칩일 수 있는데, 이는 본 발명을 제한하기 위한 것이 아니라 단순히 예시하기 위한 것이다. 마이크로 채널(MC) 주변 장치(19)들은 또한 MC 버스(17)에 연결된 것으로 도시되어 있다. 따라서, MC 장치들은 PCI-MC 브리지(40) 및 호스트 브리지(20a)를 통해 호스트 시스템상의 구성 요소들, 예컨대 메모리(15), 프로세서(12) 등과 통신할 수 있다. 비록, 본 명세서에서는 MC가 예로서 사용되었지만, 본 발명은 다른 타입의 브리지 칩(40) 및 ISA, ESA, VME 등과 같은 I/O 버스와 함께 사용하기 위한 주변 장치(19)를 포함한다는 것을 주의하기 바란다. 또한, 또 다른 브리지(20)가 버스(16) 및 제3 버스(18)에 연결되어 있다. 버스(18)에는 또한 다수의 스테이션(stations) 또는 주변 장치들(22a, 22b, 22c 및 22d)이 연결될 수 있다. 본 발명의 바람직한 실시예에 따르면, 브리지(20)는 동일한 프로토콜을 갖는 버스들[즉, 버스(16) 및 버스(18) 모두 PCI 버스]을 연결하는 버스 대 버스 브리지이다.
본 발명의 범위를 한정하는 것이 아니라 예시하는 것으로서, 버스(16 및 18)는 업계 표준이 되는 PCI 버스일 수 있다.
도 5는 본 발명의 구성을 보다 상세하게 도시한 블럭도이다. 최소한 하나의 CPU(12)가 시스템 버스(14)에 의해 시스템 메모리(15)에 연결된다. 이중 호스트 브리지(400)도 또한 시스템 버스(14)에 연결된다(도 4 참조). 브리지(400)는 제어 로직(406)을 포함하며, 이 제어 로직은 두 개의 부 버스(402 및 404)가 브리지(400)에 의해 제어되도록 하는 기능[예컨대, 투명한 피어 투 피어 지원(transparent peer to peer support) 및 트랜잭션 조향]을 제공한다. I/O 장치(401 및 403)는 버스(402 및 404)에 각각 연결된다. 본 발명의 바람직한 실시예에서, 부 버스(402 및 404)는 PCI 버스이다. 전술한 바와 같이, 통상의 PCI 버스에 연결될 수 있는 장치(슬롯 또는 결합된 구성 요소)의 수는 제한적이다. 본 발명은 별개의 버스(402 및 404)를 하나의 논리적 버스로 간주하여(중재 측면에서 볼 경우), 하나의 호스트 브리지(400)에 의해 지원될 수 있는 주변 장치의 수를 증가시킨다.
도 2를 참조하면, 호스트 브리지(20a)가 보다 상세하게 되시되어 있다. 본 발명의 바람직한 실시예를 기술하는 데 사용된 바와 같이, 아웃바운드라는 용어는 프로세서(12)로부터 멀어지는 트랜잭션을, 인바운드라는 용어는 프로세서(12) 쪽으로 향하는 트랜잭션을 가리킨다.
브리지(20a)는 두 개의 데이터 경로, 즉 아웃바운드 경로(202) 및 인바운드 경로(204)를 갖는다. 인바운드 및 아웃바운드 트랜잭션 모두는 상태 머신(206)에 의해 제어된다.
아웃바운드 트랜잭션이 트랜잭션 라우터(transaction router)(208)에 수신되면, 수신된 트랜잭션이 판독 요구(데이터 요구), 판독 응답(데이터를 제공하는 판독 요구에 대한 응답) 또는 기록 요구(특정 장치에 데이터를 배치하기 위한 요구)인지 여부를 판단하기 위해 그 포맷이 검사된다.
판독 요구는 어드레스 및 제어 정보의 포맷을 갖는다. 판독 응답은 어드레스, 제어 정보 및 요구에 의해 현재 최초의 요구자에게 전송되고 있는 데이터를 포함하는 포맷을 갖는다.
포스팅된 메모리 기록(posted memory write; PMW) 또는 I/O 기록(I/O WR)과 같은 기록 트랜잭션은 어드레스, 제어 정보 및 선택된 어드레스에 기록될 데이터를 포함한다.
예컨대, 트랜잭션 라우터(208)에서 현재 활성화된 트랜잭션이 판독 요구라고 가정하면, 이 트랜잭션은 다수의 순차적 버퍼들(210, 212 및 214) 중 어느 하나로 전송될 것이다. 순차적 버퍼 엔트리(210, 212 및 214)는 브리지(20a)에 계류될 것으로 예상되는 트랜잭션의 스택(stack)을 처리하기에 충분한 길이의 임의의 적절한 수의 버퍼 엔트리일 수 있다. 또한, 트랜잭션이 I/O 기록 또는 포스팅된 메모리 기록과 같은 기록 트랜잭션이면, 이 트랜잭션은 순차적 버퍼들(210, 212 및 214) 중 어느 하나로 전송될 것이다.
만약 트랜잭션 라우터(208)에 계류중인 트랜잭션이 판독 응답(RRP)이면, 이 판독 응답 트랜잭션은 병렬 버퍼 엔트리(216, 218) 중 어느 하나로 전송된다.
트랜잭션 선택 회로(220)에 의해 선택되어 부 버스로 전송될 트랜잭션은 항상 상태 머신(206)에 의해 제어된다. 이것은, 예컨대 순차적 버퍼(210, 212 또는 214)에 저장된 트랜잭션 또는 병렬 버퍼(216, 218) 내의 판독 응답 트랜잭션에 대한 비순차적 액세스를 허용한다.
인바운드 경로(204)는 연결 순서가 반대인 것을 제외하고는 아웃바운드 경로와 동일한 요소를 포함한다. 즉, 트랜잭션 라우터(222)는 부 버스(16)에 연결된다(도 1 참조). 아웃바운드 트랜잭션 라우터(208)를 참조하여 전술한 바와 같이, 인바운드 트랜잭션 라우터(222)는 상태 머신(206)에 의해 제어된다. 각각의 트랜잭션은 판독 요구(RRQ) 및 기록 트랜잭션(I/O 기록 및 PMW)의 경우 순차적 인바운드 버퍼(224, 226 및 228) 중 어느 하나로 전송된다. 판독 응답 트랜잭션은 병렬 버퍼(232, 234)로 전송된다. 인바운드 선택 회로(230)는 상태 머신(206)의 제어하에 순차적 버퍼(224, 226 또는 228) 또는 병렬 버퍼(232 또는 234) 각각으로부터의 트랜잭션의 전송을 제어한다.
상태 머신(206)은 도 3a 및 도 3b에 도시된 상태 머신 로직 테이블에 의해 규정되는 프로토콜하에서 동작하여, 아웃바운드 또는 인바운드, 또는 양방향을 통과하는 다중 트랜잭션을 제어한다.
이제 도 3a 및 도 3b를 참조하면, 상태 머신(206)을 제어하는 로직 테이블이 기술되어 있다. 로직 테이블(3a)의 상부에는 아웃바운드 트랜잭션을 나타내는 트랜잭션이 있는데, 편의상 제1 트랜잭션이라고 지칭한다. 로직 테이블(3a)의 좌측에는 편의상 제2 트랜잭션이라고 지칭하는 아웃바운드 트랜잭션이 있다. 마찬가지로, 로직 테이블(3b)의 상부에는 인바운드 트랜잭션을 나타내는 트랜잭션이 있는데, 편의상 제1 트랜잭션이라고 지칭한다. 로직 테이블(3b)의 좌측에는 편의상 제2 트랜잭션이라고 지칭하는 인바운드 트랜잭션이 있다.
도 3a 및 도 3b의 테이블에 있는 엔트리에서, "0" 엔트리는 후속 트랜잭션(제2 트랜잭션)이 이전 트랜잭션(제1 트랜잭션)을 바이패스하는 것이 허용되지 않아야 함을 의미한다. "1" 엔트리는 후속 트랜잭션을 진행하도록 이전 트랜잭션을 바이패스할 필요가 있는 경우 후속 트랜잭션이 브리지로 들어가게 허용되어야 하며, 만약 허용되지 않을 경우 데드록이 일어날 수 있음을 의미한다. "0/1" 엔트리는 후속 트랜잭션이 이전 트랜잭션을 바이패스하도록 허용될 수 있지만, 바이패스하는 것이 반드시 요구되지는 않음을 의미한다[정렬 요건이 없음-돈 캐어(don't care), 성능 및 구현 비용에 따라 특정하게 구현될 수 있음). 즉, "0/1" 특정 상태 또는 구현에 따라 몇몇 경우에 바이패스를 허용할 수 있다.
DMA 판독 응답 데이터는 데드록을 피하기 위해 호스트 브리지에 버퍼링된 이전 로드 및 저장 트랜잭션을 바이패스하도록 허용되어야 한다. 이것은 버스 대 버스(예컨대, PCI-PCI) 브리지와는 상이한 요건이며, 호스트 브리지와 PCI 버스 사이의 적절한 상호 작요을 위해 필요하다. 이것은 또한 성능을 향상시킬 수 있다.
예컨대, 판독 요구(RRQ)인 아웃바운드 제1 트랜잭션과 판독 응답(RRP)인 아웃바운드 제2 트랜잭션이 있으면, 도 3a에 도시된 로직 테이블의 열 및 행의 교점은 1을 나타낸다. 로직 테이블의 임의의 위치에서 1은 후속 트랜잭션이 이전 트랜잭션을 바이패스하도록 허용되어야 함을 나타낸다. 따라서, DMA 데이터를 가지는 판독 응답(RRP)은 판독 요구를 바이패스하도록 허용되어야 한다. 또한, RRP는 PMW 또는 I/O 기록과 같은 기록 동작을 바이패스하도록 허용되어야 함을 알 수 있다. DMA 데이터(RRP) 동작이 프로세서 로드 및 저장 동작을 바이패스하도록 허용함으로써, 데드록 조건을 발생시킬 수 있는 전술한 문제점이 제거된다. 예컨대, MC 장치(19)가 DMA 요구에 의해 시스템 메모리(15)로부터 데이터를 요구한다고 가정한다. 따라서, RRQ 트랜잭션이 순차적 버퍼(224, 226, 228) 중 어느 하나에 배치된다(이는 인바운드 동작이기 때문임). 이 경우, RRQ가 버퍼(228)에 있다고 가정한다. DMA 데이터가 시스템 메모리(15)로부터 반환되기 이전에, 프로세서(12)는 MC 장치(19)에 대한 기록 동작을 시작한다. 따라서, 예컨대 I/O 기록 트랜잭션이 순차적 버퍼들(210, 212, 214) 중 어느 하나에 배치된다(이는 아웃바운드 트랜잭션이기 때문임). 이 경우에, I/O 기록이 버퍼(214)에 배치된다고 가정한다. 이어서, 시스템 메모리(15)는 MC 장치(19)로부터의 RRQ에 응답하여 요구된 DMA 데이터를 포함하는 RRP를 병렬 버퍼(216 또는 218) 중 어느 하나, 예컨대 버퍼(216)에 배치한다. 전술한 바와 같이, MC 장치(19)와 같은 몇몇 I/O 장치의 프로토콜은 각 트랜잭션이 완료될 때까지 그 장치가 버스(17)를 계속 제어할 것을 요구한다. 따라서, 버퍼(214) 내의 I/O 기록 동작이 완료될 수 없고, MC 장치(19)가 병렬 버퍼(216) 내의 DMA 데이터를 기다리고 있으므로, 잠재적인 데드록 조건이 존재한다. 본 발명은 버퍼(216) 내의 DMA 데이터를 포함하는 RRP 트랜잭션이 버퍼(214) 내의 I/O 기록 트랜잭션을 바이패스하도록 허용하여 MC 장치(19)에 의한 DMA 요구를 완료함으로써, 이러한 데드록 조건이 발생되지 않도록 한다. 본 발명은 또한 순차적 버퍼(214)에 있을 수 있는 PMW 또는 RRQ 트랜잭션이 버퍼(216) 내의 RRP와 충돌할 때와 같은 다른 데드록 조건이 발생되지 않도록 할 것이다.
도 3a 및 도 3b에 도시된 로직 테이블의 임의의 위치에서의 0은 트랜잭션 바이패스가 금지됨을 나타낸다. 따라서, 제2 트랜잭션으로서의 아웃바운드 판독 요구에 선행하는 제1 트랜잭션으로서의 아웃바운드 기록 동작은 제2 트랜잭션에 의해 바이패스되는 것이 허용되지 않는다. 본 명세서에서 사용된 "바이패스"라는 용어는 제1 요구가 완료되기 전에 목적지 버스에 제2 요구를 완료하는 것을 의미한다. 그러나, 제1 트랜잭션이, 예컨대 아웃바운드 기록 트랜잭션이면, 아웃바운드 판독 응답 트랜잭션의 바이패스가 허용되어야 한다.
도 3a 및 도 3b에 도시된 로직 테이블에서 바이패스가 금지됨을 나타내는 0이 있는 모든 위치는 기록 트랜잭션을 포함하고 있음을 주목해야 할 것이다. 예컨대, 제2 트랜잭션으로서의 아웃바운드 판독 요구는 제1 트랜잭션으로서의 아웃바운드 기록을 바이패스할 수 없다. 도 3b로부터 인바운드 트랜잭션의 경우에도 동일한 원칙이 적용됨을 알 수 있다. 따라서, 인바운드 판독 요구(RRQ), 판독 응답(RRP) 또는 기록 트랜잭션(PMW)은 도 3b에 도시된 바와 같이 제1 트랜잭션으로서의 이진 인바운드 기록(PMW)을 바이패스할 수 없다. 상태 머신(206)의 동작을 제어하는 도 3a 및 도 3b의 로직 테이블은 트랜잭션 라우터(208 및 222) 및 트랜잭션 선택 회로(220 및 230) 내의 트랜잭션의 출입(gating)을 각각 제어한다. 당업자라면 테이블(3a 및 3b)에 나타낸 로직이 제어 로직 회로에서 어떻게 구현되며, 또한 어떻게 상태 머신(206) 내에 포함될 수 있는지를 이해할 것이다.
PCI 호스트 브리지(PHB)가 IBM사의 PowerPC 604 마이크로프로세서(PowerPC 및 PowerPC 604는 IBM사의 상표임)와 같은 독특한 특성을 갖는 마이크로프로세서를 사용하여 I/O 버스로서의 PCI 버스를 컴퓨터 시스템 내의 시스템 버스와 연결하는 본 발명의 바람직한 실시예의 경우, 처리되어야 하는 몇 가지 고려 사항이 있다. 일반적으로, 프로세서(12)와 관련된 로드(RRQ) 및 저장(PMW, I/O) 경로는 성능의 향상 및 구현의 용이성을 위해 주변 장치와 관련된 DMA 경로(예컨대, RRP)와 독립적이어야 한다. 또한, 도 3a 및 도 3b의 테이블 내의 "0/1" 엔트리들의 경우, 이들 트랜잭션들은 바이패스할 수 있지만, 바이패스가 요구되지는 않는다. 바이패스하느냐 또는 바이패스하지 않느냐의 판단은 소정의 규칙, 성능상의 고려해야 할 사항, 또는 구현의 용이성에 따라 행해질 수 있다(다음 문단에서 기술되는 경우는 제외됨).
PCI 호스트 브리지의 경우, 호스트 브리지의 주변 메모리 공간 또는 주변 I/O 공간으로의 로드(예컨대, RRQ 트랜잭션)는 이 두 로드 모두가 정확하게 동일한 어드레스를 향할 때 동일한 호스트 브리지의 주변 메모리 공간 또는 주변 I/O 공간으로의 이전의 로드 이전에 I/O 버스로 전달되어서는 안된다. 도 3a로부터 알 수 있는 바와 같이, "0/1"은 제1 트랜잭션으로서의 RRQ(로드) 동작과 제2 트랜잭션으로서의 RRQ(로드) 동작 사이의 교점에 나타난다. 이 경우, 바이패스가 허용되는데, 즉 표적이 된 어드레스가 동일하지 않을 경우 바이패스가 허용된다. 그러나, 상태 머신(206)에 포함된 비교기가 어드레스가 동일하다고 판단하면, 제2 RRQ 트랜잭션은 제1 RRQ 트랜잭션을 바이패스할 수 없다. 따라서, "0/1"은 이 경우 부가적인 요인, 예컨대 어드레스 비교의 결과에 따라 제2 트랜잭션에 의한 제1 트랜잭션의 바이패스가 일어날 수 있음을 나타낸다. 이것은 어드레스가 상이할 때에는 성능 향상을 가져오지며(패스 허용), 하나 또는 두 장치가 동일한 어드레스에 있을 때 한 장치가 다른 장치의 데이터를 가져오는(스테일 데이터를 획득함) 문제를 해결해 준다. 이러한 트랜잭션들이 상이한 어드레스를 가질 경우 바이패스할 수 있다. 이것은 어드레스가 상이할 때 성능 향상을 가져오며, 하나 또는 두 장치가 동일한 어드레스에 기록할 때 장치들이 상이한 어드레스의 데이터를 액세스하여 충돌이 일어나지 않으므로 한 장치가 다른 장치의 판독 데이터를 가져가는(스테일 데이터를 획득함) 문제를 해결해 준다.
당업자라면 요구되는 장치[예컨대, 프로세서(12)]에 의해 표적이 된 어드레스가 동일한지의 여부를 판단하기 위해 상태 머신(206)이 어떠한 비교기를 포함하는 지를 이해할 것이다. 고려해야 할 다른 사항은 PHB의 주변 메모리 공간 또는 주변 I/O 공간으로의 로드 또는 저장은 동일한 PHB의 주변 메모리 공간 또는 주변 I/O 공간으로의 이전의 저장 이전에 I/O 버스로 전달되어서는 안된다는 것이다(즉, 하나의 PHB에 의해 발생된 I/O 버스로의 다중 저장은 순서가 유지되어야 하고, 로드가 저장을 패스해서는 안된다는 것임). 예컨대, 도 3a에서 알 수 있는 바와 같이, 제2 트랜잭션으로서의 로드(RRQ)는 "0"이 이러한 트랜잭션들의 교점에 나타나므로 저장(PMW 또는 I/O WR)을 패스할 수 없다. 더욱이, 도 3a의 이러한 트랜잭션들의 교점에 있는 "0"으로부터 알 수 있는 바와 같이, 제2 트랜잭션(예컨대, PMW)으로서의 저장은 제1 트랜잭션(PMW 또는 I/O WR)으로서의 또 다른 저장을 패스할 수 없다.
모든 후속하는 인바운드 트랜잭션은 이전의 포스팅된 인바운드 메모리 기록(PMW)을 바이패스하도록 허용되어서는 안된다. 도 3b는 모든 제2 트랜잭션과(적용할 수 없으므로 I/O WR은 제외), 제1 트랜잭션으로서의 PMW 사이의 교점에 "0"을 도시한다. 또한, 도 3b에서 이러한 트랜잭션들의 교점에 "1"을 도시한 바와 같이, 제2 트랜잭션으로서의 후속하는 전달된 인바운드 메모리 기록(PMW)은 제1 트랜잭션으로서의 이전 판독 요구(RRQ) 및 판독 응답(RRP)을 바이패스하도록 허용되어야 한다.
아웃바운드 대 인바운드 트랜잭션 및 인바운드 대 아웃바운드 트랜잭션을 지정하는 테이블이 없음을 또한 주목해야 한다. 이러한 경우, 트랜잭션들은 서로 반대 방향으로 이동하고, 상이한 어드레스 공간으로 이동하므로, 이들 트랜잭션은 독립적이며, 서로 관련된 정렬 요건이 없다. 소정의 아웃바운드 대 소정의 인바운드 트랜잭션 또는 소정의 인바운드 대 소정의 아웃바운드 트랜잭션이 정렬을 요구하는 경우, 본 발명의 영역을 벗어나는 소프트웨어 프로토콜에 의해 처리된다.
도 3b의 몇몇 테이블 엔트리는 "na"임을 주목해야 한다. 이러한 경우는 인바운드 I/O WR 트랜잭션이 PowerPC 마이크로프로세서를 사용하는 시스템의 경우를 다루는 바람직한 실시예에 규정되어 있지 않으므로 "적용 불가능(not applicable)"하다.
상술한 고려 사항 및 참고로 본 명세서에 포함된 IBM 특허 출원의 고려 사항과는 달리 PowerPC 마이크로프로세서와 같은 마이크로프로세서를 사용하는 시스템에서 PCI 호스트 브리지를 위한 트랜잭션 정렬 요건은 PCI-PCI 브리지의 경우와 동일하다[PCI 로컬 버스 규격(버전 2.1) 참조].
판독 액세스를 시도하고 재시도되는 마스터는 완료될 때까지 주기적으로 액세스 시도를 반복해야 한다.
이제 도 4를 참조하여, 두 개의 부 PCI 버스 인터페이스(408, 410) 및 향상된 피어 투 피어 지원을 제공하는 능력을 갖는 본 발명의 이중 PCI 호스트 브리지(400)가 기술한다.
PCI 지역 버스 사양은 PCI 버스의 전기적 특성을 규정한다. PCI 전기 규정에 있는 가정된 용량성(capacitive) 로딩, 허용된 타이밍 예산(timing budget) 및 버스 타이밍 규정을 가지고 최악의 경우 10 개의 버스 로드가 허용된다. 이러한 본 발명은 시스템 인터페이스(420)에 의해 시스템 버스(14)에 연결되며, 구현되는 다양한 버스 프로토콜에 따라 데이터, 어드레스 정보 등과 같은 제어 정보를 교환하는 PCI 이중 호스트 브리지(400)(도 4 참조)를 제공함으로써, PCI 버스의 슬롯 팬아웃 능력을 상당히 확장시킬 수 있다. 브리지(400)는 PCI 버스 인터페이스(408, 410)(총 8 개 까지의 슬롯) 상에 총 20 개의 버스 로드를 허용하는 두 개의 PCI 버스 인터페이스(408, 410)를 생성한다. 또한, 적절한 내부 제어 로직을 제공함으로써, 이러한 이중 버스 칩은 두 개의 PCI 버스(402, 404)를 하나의 논리적 버스로 취급할 수 있으며, 또한 이러한 두 버스를 통해서 피어 투 피어 지원을 제공한다.
도 4는 본 발명에 기술된 성능을 도시한다. PCI 이중 호스트 브리지(400)는 두 개의 부 PCI 버스(402, 404)를 생성하는 것으로 도시되어 있다. 이러한 이중 버스 칩 내의 내부 데이터 경로는 PCI 부 인터페이스(408, 410)와 제어 모듈(406)에 내장된 중앙 호스트 브리지 코어(core) 제어 세트 사이의 트랜잭션을 조향하기 위해 제어 로직(406) 내의 방향 제어 로직(direction control logic)에 의해 제어되며, 그 결과 이중 칩이 한 세트의 호스트 브리지 아웃바운드 및 인바운드 트랜잭션 버퍼(412, 414)를 가지고서 기본적으로 "하나의" 호스트 브리지로서 동작하게 된다. 제어 로직(406)은 구성을 위해 필요하며 트랜잭션이 피어 투 피어로 고려될 때를 결정하는 데 필요한 구성 레지스터 뿐만 아니라 어드레스 디코드, 버퍼 제어, 트랜잭션 정렬 규칙, 방향 제어(조향), 중재, 인터페이스 제어, 피어-피어 제어 및 시스템 클럭에 대한 필요한 제어를 제공한다.
또한, 도 4에는 피어 투 피어 브리지 기능 제어 로직 회로(416)가 도시되어 있다. 이것은 두 개의 부 PCI 버스(402, 404) 사이의 피어 투 피어 동작을 지원하기 위해 이중 버스 칩(400) 내에서 단순한 통과(path-through)(버퍼링 없음) PCI-PCI 브리지 기능을 제공한다. 제어 로직(406)에 포함된 하나의 중재기(arbiter)는 두 부 PCI 버스(402, 404)를 제어하는 데 사용될 수 있으며, 그 결과 두 PCI 버스는 비록 구성 측면에서 보면 두 개의 물리적 및 논리적 버스이지만, 중재 측면에서 보면 하나의 논리적 버스로 동작하게 된다. 두 개의 버스(402, 404)를 두 개의 분리된 논리적 및 물리적 버스로 만들기 위해, 호스트 브리지는 제어 로직(406)에 포함된 두 개의 개별적인 호스트 브리지 구성 레지스터의 세트를 제공한다. 그러나, 이중 호스트 브리지(400)는 하나의 전체적인 호스트 브리지로 작용할 브리지를 통과하는 데이터 및 트랜잭션을 위해 공통의 버퍼 세트를 가질 것이다.
아웃바운드 버퍼(412) 및 인바운드 버퍼(414)는 시스템 일관성 규칙(도 2)의 트랜잭션 정렬 요건 및 PCI 버스 정렬 요건의 적절한 조합을 기초로 하여 제어 로직(406)에 의해 관리된다. 피어 투 피어 브리지 기능 및 제어 로직(416)을 로직(406) 내 중재자와 함께 작동하는 단순한 통과 기능으로 유지함으로써, 이러한 기능은 시스템 일관성 규정하에서 유지될 수 있으며, 두 개의 물리적 PCI 부 버스(402 및 404) 사이에서 피어 투 피어 동작을 지원할 수 있을 것이다.
제어 로직(406)에서의 방향 제어는 마지막 중재 사이클을 획득하는 제어 마스터 장치의 위치에 기초하여, 정보를 정확한 방향의 적절한 내부 데이터 경로(422, 424, 426)로 조향하는 데 필요하다. 트랜잭션이 내부 버스(422) 상에서 프로세서로부터 외부 방향으로 향할 때, 트랜잭션 제어 정보는 내부 버스(424 및 426) 상에 단순히 배치되어, 내부 버스(424, 426)를 통해 두 PCI 인터페이스(408, 410)에 정보를 각각 제공함으로써, 하나의 논리적 버스로 동작하는 두 PCI 버스에 제공될 수 있다. 더욱이 트랜잭션은 표적 장치의 어드레스에 따라 적절한 PCI 버스(402 또는 404)로 조향될 수 있다. 트랜잭션이 두 버스(402, 404) 상으로 조향되면, 표적이 된 장치를 실제로 포함하지 않는 버스(예컨대, 404)를 위한 장치 선택 신호(DEVSEL#)는 트랜잭션 제어 정보에 대한 응답으로부터 버스(404) 상의 감산 디코드(subtractive decode)를 피하기 위해 버스(404) 상에 재구동되어야 할 필요가 있을 것이다. 이것은 가능한 가장 긴 시간 동안 설정될 감산 디코드를 필요로 한다. DEVSEL# 신호는 그것이 트랜잭션에 응답한다는 것을 나타내기 위해, 현재 트랜잭션의 표적에 의해 구동되는 PCI 버스 동작 신호이다. 하나의 논리적 버스로서 동작하기 위해서, 두 버스(402 및 404)는 어느 한 버스가 표적이 된 장치를 포함할 때 DEVSEL# 신호를 발행할 필요가 있다. 내부 버스(424 또는 426) 상의 하나의 물리적 PCI 버스로부터 시스템으로의 인바운드 트랜잭션은 내부 버스(422)를 통해 시스템 버스(14)로 경로 배정될 것이며, 다른 주변 PCI 버스로 향하는 아웃바운드 경로로는 경로 배정되지 않는다. 예컨대, 버스(404)로부터의 인바운드 PCI 트랜잭션은 버스(426 및 422)를 통해 시스템으로 경로 배정될 것이지만, 내부 버스(424)를 통해 PCI 버스(402)로는 제공되지는 않을 것이다. PCI 피어 투 피어 트랜잭션은 어드레스에 따라 검출된다. 만약 I/O 장치 어드레스가 호스트 브리지 아래에 있는 것으로서 지정된 어드레스 범위 내에 있으면[즉, 어느 어드레스가 호스트 브리지 아래에 있는지를 나타내는 제어 로직(406)에 포함된 호스트 브리지 구성 레지스터의 두 세트 중 하나의 범위 내에 있으면], 이것은 피어 투 피어 기능이다. 호스트 브리지 아래에 있는 어드레스 범위 내의 어드레스는 어드레스가 이중 호스트 브리지(400)에 의해 제어되는 I/O 버스에 연결된 주변 장치들 중 어느 하나에 대응함을 나타낸다는 것을 주목해야 한다. 도 4에 도시된 경우에 있어서, 버스(402 또는 404) 중 어느 하나에 연결된 표적 장치는 호스트 브리지 아래에 있는 것으로 고려되는 어드레스를 가질 것이다. 만약 동작이 피어 투 피어 동작이고, 어드레스가 트랜잭션을 구현하는 장치를 포함하는 특정 브리지를 위한 구성 레지스터의 범위 내에 있으면, 동작은 호스트 브리지 칩에 의해 완전히 무시되는데, 예컨대 마스터 장치 및 표적이 된 장치는 버스(404) 상에 있게 된다. 만약 동작이 피어 투 피어 동작이고, 표적 장치가 이중 호스트 브리지의 다른 브리지 아래에 있으면(다른 브리지 구성 레지스터에 의해 나타난 바와 같이), 제어는 통과 로직(416)에 내장된 것처럼 피어 투 피어 브리지 통과 기능에 이를 것이다. 예컨대, 만약 마스터 장치가 버스(404)에 연결되고, 표적 장치가 버스(402)에 연결되면, 두 어드레스는 "호스트 브리지 아래"에 있게 될 것이며, 그 결과 트랜잭션은 피어 투 피어이고, 마스터 및 표적이 된 장치가 상이한 PCI 버스 상에 있으므로 통과 제어 기능이 발생될 것이다. 이것은 호스트 브리지 구성 레지스터의 두 세트가 제어 로직(406)에 의해 제공되므로 가능하다. 상이한 물리적 PCI 버스들 사이의 이런 타입의 피어 투 피어 트랜잭션은, 어드레스가 시스템을 위한 것이 아니므로(즉, 어드레스가 호스트 "아래"에 있으므로), 시스템에 의해 무시될 것이다.
또한, 버스(402 및 404)를 위한 각 인터페이스 제어(408 및 410)는 향상된 에러 복원 능력을 제공할 수 있으며, 핫 플러그 제어(hot plug control)를 위해 물리적 버스의 정지(quiescing)를 허용할 수 있는 다른 제어 신호 뿐만 아니라, PCI 버스 규격에 규정된 바와 같은 분리된 SERR# 및 PERR# 신호를 포함할 수 있다.
비록 본 발명 및 그 장점이 상세히 기술되었지만, 첨부된 청구 범위에 규정된 본 발명의 사상과 범주를 벗어나지 않고서도 다양하게 변경하여 실시할 수 있음을 이해할 것이다.
본 발명은 시스템 인터페이스(420)에 의해 시스템 버스(14)에 연결되며, 구현되는 다양한 버스 프로토콜에 따라 데이터, 어드레스 정보 등과 같은 제어 정보를 교환하는 PCI 이중 호스트 브리지(400)(도 4 참조)를 제공함으로써, PCI 버스의 슬롯 팬아웃 능력을 상당히 확장시킬 수 있다. 브리지(400)는 PCI 버스 인터페이스(408, 410)(총 8 개 까지의 슬롯) 상에 총 20 개의 버스 로드를 허용하는 두 개의 PCI 버스 인터페이스(408 및 410)를 생성한다. 또한, 적절한 인터페이스 제어 로직을 제공함으로서, 이러한 이중 버스 칩은 두 개의 PCI 버스(402, 404)를 하나의 논리적 버스로 취급할 수 있으며, 이러한 두 버스를 통해서 피어 투 피어 지원을 제공한다.

Claims (18)

  1. 데이터 처리 시스템에 있어서,
    ① 최소한 하나의 프로세서와 메모리를 연결하는 시스템 버스(system bus)와,
    ② 각각 소정의 개수의 주변 장치(peripheral device)를 지원하는 제1 부 버스 및 제2 부 버스와,
    ③ 상기 시스템 버스, 상기 제1 부 버스 및 상기 제2 부 버스에 연결되며, 상기 제1 부 버스와 상기 제2 부 버스를 결합하여 상기 소정의 개수보다 더 많은 수의 주변 장치를 지원하는 하나의 논리적 버스(logical bus)를 생성하는 브리지(bridge)
    를 포함하는 데이터 처리 시스템.
  2. 제1항에 있어서, 상기 브리지는 상기 제1 부 버스와 제2 부 버스 사이의 트랜잭션과, 상기 제1 및 제2 부 버스와 상기 시스템 버스 사이의 트랜잭션을 제어하는 수단을 포함하는 데이터 처리 시스템.
  3. 제2항에 있어서, 상기 제어 수단은 상기 제1 부 버스, 제2 부 버스 또는 시스템 버스상의 상기 주변 장치, 프로세서 및 메모리를 포함하는 상기 트랜잭션에 관련된 장치들(participants)의 위치를 결정하는 수단을 포함하는 데이터 처리 시스템.
  4. 제3항에 있어서, 상기 브리지는 상기 제1 부 버스에 연결된 상기 주변 장치들 중 하나와 상기 제2 부 버스에 연결된 상기 주변 장치들 중 또 다른 장치 사이에 투명한 트랜잭션 처리(transparent transaction processing)를 제공하는 수단을 더 포함하는 데이터 처리 시스템.
  5. 제4항에 있어서, 상기 트랜잭션 처리 제공 수단은 상기 트랜잭션에 관련된 장치들 중 하나가 상기 제1 부 버스 상에 있는 것으로 결정되고 상기 관련 장치들 중 다른 것이 상기 제2 부 버스 상에 있는 것으로 결정될 때, 상기 제1 부 버스로부터 상기 제2 부 버스로 트랜잭션 정보를 전송하는 수단을 포함하는 데이터 처리 시스템.
  6. 제5항에 있어서, 상기 제어 수단은 상기 제1 및 제2 부 버스와 상기 시스템 버스 사이의 트랜잭션 정보를 조향(steering)하는 수단을 더 포함하는 데이터 처리 시스템.
  7. 제6항에 있어서, 상기 조향 수단은
    상기 트랜잭션 정보의 발원지(originator)가 상기 시스템 버스 상에 있을 때, 상기 트랜잭션 정보를 상기 제1 및 제2 부 버스 모두에 공급하는 수단과,
    상기 트랜잭션 정보의 발원지가 상기 제1 또는 제2 부 버스 중 어느 하나에 있고 표적이 된 상기 관련 장치들 중 하나가 상기 시스템 버스상에 있을 때, 상기 트랜잭션 정보를 상기 시스템 버스에만 공급하는 수단과,
    상기 관련 장치들 중 상기 표적이 된 한 장치가 상기 제1 또는 제2 부 버스 중 어느 한 버스 상에 있고, 상기 발원지가 상기 제1 또는 제2 부 버스 중 또 다른 버스상에 있을 때, 상기 트랜잭션 정보를 상기 제1 또는 제2 부 버스 중 어느 하나에만 공급하는 수단
    을 포함하는 데이터 처리 시스템.
  8. 제7항에 있어서, 상기 관련 장치들 중 표적이 된 한 장치가 상기 제1 부 버스 또는 제2 부 버스 중 어느 한 버스상에 있을 때, 상기 트랜잭션 정보를 상기 제1 또는 제2 부 버스 중 어느 하나에만 공급하는 상기 수단은 상기 표적이 된 관련 장치의 어드레스에 기초를 두고 있는 데이터 처리 시스템.
  9. 제8항에 있어서, 상기 결정 수단은
    상기 트랜잭션에 관련된 장치들의 어드레스를 저장하는 다수의 구성 레지스터(configuration register)와,
    상기 어드레스를 디코딩(decoding)하여 상기 제1 부 버스, 상기 제2 부 버스 또는 상기 시스템 버스상의 상기 관련 장치의 위치를 결정하는 수단
    을 포함하는 데이터 처리 시스템.
  10. 데이터 처리 시스템에서 다수의 버스를 상호 접속하는 방법에 있어서,
    ① 최소한 하나의 프로세서와 메모리를 시스템 버스에 연결하는 단계와,
    ② 각각 소정의 개수의 주변 장치를 지원하는 제1 부 버스 및 제2 부 버스를 제공하는 단계와,
    ③ 상기 시스템 버스, 제1 부 버스 및 제2 부 버스에 브리지를 접속하고, 상기 제1 부 버스와 제2 부 버스를 결합하여 상기 소정의 개수보다 더 많은 수의 주변 장치를 지원하는 하나의 논리적 버스를 생성하는 단계
    를 포함하는 버스 상호 접속 방법.
  11. 제10항에 있어서, 상기 접속 단계는 상기 제1 부 버스와 제2 부 버스 사이의 트랜잭션과, 상기 제1 및 제2 부 버스와 상기 시스템 버스 사이의 트랜잭션을 제어하는 단계를 더 포함하는 버스 상호 접속 방법.
  12. 제11항에 있어서, 상기 제어 단계는 상기 제1 부 버스, 제2 부 버스 또는 시스템 버스상의 상기 주변 장치, 프로세서 및 메모리를 포함하는 상기 트랜잭션에 관련된 장치들의 위치를 결정하는 단계를 포함하는 버스 상호 접속 방법.
  13. 제12항에 있어서, 상기 접속 단계는 상기 제1 부 버스에 연결된 주변 장치들 중 하나와 상기 제2 부 버스에 연결된 주변 장치들 중 또 다른 장치 사이에 투명한 트랜잭션 처리를 제공하는 단계를 더 포함하는 버스 상호 접속 방법.
  14. 제13항에 있어서, 상기 트랜잭션 처리 제공 단계는 상기 트랜잭션에 관련된 장치들 중 하나가 상기 제1 부 버스 상에 있는 것으로 결정되고 상기 관련 장치들 중 다른 것이 상기 제2 부 버스 상에 있는 것으로 결정될 때, 상기 제1 부 버스로부터 상기 제2 부 버스로 트랜잭션 정보를 전송하는 단계를 포함하는 버스 상호 접속 방법.
  15. 제14항에 있어서, 상기 제어 단계는 상기 제1 및 제2 부 버스와 상기 시스템 버스 사이의 상기 트랜잭션 정보를 조향하는 단계를 더 포함하는 버스 상호 접속 방법.
  16. 제15항에 있어서, 상기 조향 단계는
    상기 트랜잭션 정보의 발원지가 상기 시스템 버스상에 있을 때, 상기 트랜잭션 정보를 상기 제1 및 제2 부 버스 모두에 공급하는 단계와,
    상기 트랜잭션 정보의 발원지가 상기 제1 또는 제2 부 버스 중 어느 하나에 있고 표적이 된 상기 관련 장치들 중 하나가 상기 시스템 버스상에 있을 때, 상기 트랜잭션 정보를 상기 시스템 버스에만 공급하는 단계와,
    상기 관련 장치들 중 상기 표적이 된 한 장치가 상기 제1 또는 제2 부 버스 중 어느 한 버스상에 있고 상기 발원지가 상기 제1 또는 제2 부 버스 중 다른 버스상에 있을 때, 상기 트랜잭션 정보를 상기 제1 부 버스 또는 제2 부 버스 중 어느 하나에만 공급하는 단계
    를 포함하는 버스 상호 접속 방법.
  17. 제16항에 있어서, 상기 관련 장치들 중 표적이 된 한 장치가 상기 제1 부 버스 또는 제2 부 버스 중 어느 한 버스상에 있을 때, 상기 트랜잭션 정보를 상기 제1 또는 제2 부 버스 중 어느 하나에만 공급하는 단계는 상기 표적이 된 관련 장치의 어드레스에 기초를 두고 있는 버스 상호 접속 방법.
  18. 제17항에 있어서, 상기 결정 단계는
    상기 트랜잭션에 관련된 장치들의 어드레스를 저장하는 다수의 구성 레지스터를 제공하는 단계와,
    상기 어드레스를 디코딩하여 상기 제1 부 버스, 제2 부 버스 또는 시스템 버스상의 상기 관련 장치의 위치를 결정하는 단계
    를 포함하는 버스 상호 접속 방법.
KR1019970006790A 1996-04-10 1997-02-28 데이타처리시스템및버스상호접속방법 KR100271203B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/627,810 US6175888B1 (en) 1996-04-10 1996-04-10 Dual host bridge with peer to peer support
US08/627,810 1996-04-10

Publications (2)

Publication Number Publication Date
KR970071311A KR970071311A (ko) 1997-11-07
KR100271203B1 true KR100271203B1 (ko) 2000-11-01

Family

ID=24516227

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970006790A KR100271203B1 (ko) 1996-04-10 1997-02-28 데이타처리시스템및버스상호접속방법

Country Status (6)

Country Link
US (1) US6175888B1 (ko)
EP (1) EP0801352B1 (ko)
JP (1) JP3476174B2 (ko)
KR (1) KR100271203B1 (ko)
DE (1) DE69736872T2 (ko)
TW (1) TW311191B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100330529B1 (ko) * 1999-05-18 2002-03-28 포만 제프리 엘 Pci-x 브릿지 버퍼의 분할 트랜잭션 모드용 토글시스템 및 방법

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6338107B1 (en) * 1998-12-16 2002-01-08 International Business Machines Corporation Method and system for providing hot plug of adapter cards in an expanded slot environment
US6301627B1 (en) * 1998-12-18 2001-10-09 International Business Machines Corporation Method/system for identifying delayed predetermined information transfer request as bypassable by subsequently-generated information transfer request using bypass enable bit in bridge translation control entry
US6529991B1 (en) * 1999-05-12 2003-03-04 International Business Machines Corporation Ordering mechanism, ordering method and computer program product for implementing PCI peer to functions
US6469703B1 (en) 1999-07-02 2002-10-22 Ati International Srl System of accessing data in a graphics system and method thereof
US6480917B1 (en) * 1999-08-19 2002-11-12 International Business Machines Corporation Device arbitration including peer-to-peer access arbitration
US7002537B1 (en) 1999-09-27 2006-02-21 Seiko Epson Corporation Method of driving electrooptic device, driving circuit, electrooptic device, and electronic apparatus
JP3391315B2 (ja) * 1999-10-20 2003-03-31 日本電気株式会社 バス制御装置
JP2001256176A (ja) * 2000-03-13 2001-09-21 Mitsubishi Electric Corp ブリッジ装置
US6678775B1 (en) * 2000-12-29 2004-01-13 Hewlett-Packard Development Company, L.P. System enabling automatic error detection in response to removal of bus adapter
JP2002207688A (ja) * 2001-01-05 2002-07-26 Mitsubishi Electric Corp コンフィギュレーションアクセスを複数個のセカンダリポートに経路制御するための方法および装置
US6813667B2 (en) 2001-09-05 2004-11-02 Hewlett-Packard Development Company, L.P. Bus extender and formatter apparatus and methods
US6836813B1 (en) * 2001-11-30 2004-12-28 Advanced Micro Devices, Inc. Switching I/O node for connection in a multiprocessor computer system
US6754737B2 (en) * 2001-12-24 2004-06-22 Hewlett-Packard Development Company, L.P. Method and apparatus to allow dynamic variation of ordering enforcement between transactions in a strongly ordered computer interconnect
US6883057B2 (en) * 2002-02-15 2005-04-19 International Business Machines Corporation Method and apparatus embedding PCI-to-PCI bridge functions in PCI devices using PCI configuration header type 0
US6976115B2 (en) * 2002-03-28 2005-12-13 Intel Corporation Peer-to-peer bus segment bridging
JP2004334410A (ja) 2003-05-06 2004-11-25 Hitachi Ltd 情報処理装置及びプロセッサ
US20040243757A1 (en) * 2003-05-29 2004-12-02 Oliver Brett Douglas Connecting PCI buses
US7284082B2 (en) * 2004-08-19 2007-10-16 Lsi Corporation Controller apparatus and method for improved data transfer
US20070005865A1 (en) * 2005-06-29 2007-01-04 Spry Bryan L Enforcing global ordering using an inter-queue ordering mechanism
JP4785637B2 (ja) * 2006-06-16 2011-10-05 キヤノン株式会社 データ転送装置及びその制御方法
JP4501916B2 (ja) 2006-09-20 2010-07-14 日本電気株式会社 I/o機器の共有システムと情報処理装置共有システム及びそれらに用いる方法
US7711888B2 (en) * 2006-12-31 2010-05-04 Texas Instruments Incorporated Systems and methods for improving data transfer between devices
KR100873010B1 (ko) 2007-05-17 2008-12-09 한국과학기술원 논블록킹 마스터, 버스 중재장치, 버스 시스템, 및 버스중재 방법
US8244951B2 (en) * 2008-09-25 2012-08-14 Intel Corporation Method and apparatus to facilitate system to system protocol exchange in back to back non-transparent bridges
US9424219B2 (en) 2013-03-12 2016-08-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Direct routing between address spaces through a nontransparent peripheral component interconnect express bridge

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0575042A1 (en) * 1992-06-19 1993-12-22 International Business Machines Corporation Physical partitioning of logically continuous bus

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574869A (en) * 1992-03-30 1996-11-12 Intel Corporation Bus bridge circuit having configuration space enable register for controlling transition between various modes by writing the bridge identifier into CSE register
US5566345A (en) * 1994-08-31 1996-10-15 Ostrowski; Carl L. SCSI bus capacity expansion controller using gating circuits to arbitrate DMA requests from a plurality of disk drives
US5621902A (en) * 1994-11-30 1997-04-15 International Business Machines Corporation Computer system having a bridge between two buses with a direct memory access controller and an alternative memory access controller
US5594873A (en) * 1994-12-08 1997-01-14 Dell Usa, L.P. System and method for identifying expansion devices in a computer system
US5734850A (en) 1995-07-05 1998-03-31 National Semiconductor Corporation Transparent bridge between of a computer system and a method of interfacing the buses to operate as a single logical bus
US5859988A (en) * 1995-09-29 1999-01-12 Intel Corporation Triple-port bus bridge
US5632021A (en) * 1995-10-25 1997-05-20 Cisco Systems Inc. Computer system with cascaded peripheral component interconnect (PCI) buses

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0575042A1 (en) * 1992-06-19 1993-12-22 International Business Machines Corporation Physical partitioning of logically continuous bus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100330529B1 (ko) * 1999-05-18 2002-03-28 포만 제프리 엘 Pci-x 브릿지 버퍼의 분할 트랜잭션 모드용 토글시스템 및 방법

Also Published As

Publication number Publication date
EP0801352A3 (en) 1998-10-14
JPH1049482A (ja) 1998-02-20
KR970071311A (ko) 1997-11-07
EP0801352B1 (en) 2006-11-02
JP3476174B2 (ja) 2003-12-10
EP0801352A2 (en) 1997-10-15
DE69736872D1 (de) 2006-12-14
DE69736872T2 (de) 2007-04-26
US6175888B1 (en) 2001-01-16
TW311191B (en) 1997-07-21

Similar Documents

Publication Publication Date Title
KR100271203B1 (ko) 데이타처리시스템및버스상호접속방법
JP3579198B2 (ja) データ処理システム及びデータ処理方法
US5694556A (en) Data processing system including buffering mechanism for inbound and outbound reads and posted writes
US5935233A (en) Computer system with a switch interconnector for computer devices
US6070209A (en) Delivering transactions between data buses in a computer system
US5682512A (en) Use of deferred bus access for address translation in a shared memory clustered computer system
US5764934A (en) Processor subsystem for use with a universal computer architecture
EP0369265A2 (en) Multiprocessor system having global data replication
JPH0219955A (ja) Dma機能を有する計算機システム
US5896513A (en) Computer system providing a universal architecture adaptive to a variety of processor types and bus protocols
US7007126B2 (en) Accessing a primary bus messaging unit from a secondary bus through a PCI bridge
US6687240B1 (en) Transaction routing system
US5845107A (en) Signaling protocol conversion between a processor and a high-performance system bus
KR100354117B1 (ko) 다중 버스 중재 시스템
US6480923B1 (en) Information routing for transfer buffers
US5906659A (en) Computer system buffers for providing concurrency between CPU accesses, local bus accesses, and memory accesses
US6502150B1 (en) Method and apparatus for resource sharing in a multi-processor system
US6418503B1 (en) Buffer re-ordering system
JP3531368B2 (ja) コンピュータシステム及びバス間制御回路
US6377581B1 (en) Optimized CPU-memory high bandwidth multibus structure simultaneously supporting design reusable blocks
Finkelstein et al. Microprocessor system buses: A case study
JPS633350A (ja) 半導体記憶装置
EP0472753A1 (en) Multiprocessor system having selective global data replication
JP2001282753A (ja) 区分化システム用の細粒度pciスロット制御装置
MXPA97005035A (es) Subsistema de procesador para uso con arquitectura de computadora universal

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20050714

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee