KR100602855B1 - 이중 모드 버스 브리지를 구비하는 장치 - Google Patents

이중 모드 버스 브리지를 구비하는 장치 Download PDF

Info

Publication number
KR100602855B1
KR100602855B1 KR1020007008091A KR20007008091A KR100602855B1 KR 100602855 B1 KR100602855 B1 KR 100602855B1 KR 1020007008091 A KR1020007008091 A KR 1020007008091A KR 20007008091 A KR20007008091 A KR 20007008091A KR 100602855 B1 KR100602855 B1 KR 100602855B1
Authority
KR
South Korea
Prior art keywords
data
bus
queues
buses
controller
Prior art date
Application number
KR1020007008091A
Other languages
English (en)
Other versions
KR20010034354A (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 KR20010034354A publication Critical patent/KR20010034354A/ko
Application granted granted Critical
Publication of KR100602855B1 publication Critical patent/KR100602855B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • 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/4045Coupling between buses using bus bridges where the bus bridge performs an extender function
    • 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/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)

Abstract

버스 신장기 브리지(80A-80B)는 제 3 버스(70A 및 70B)로 제1 및 제2 외부 버스(90A 및 90B)(PCI 버스와 같이)를 인터페이스하기 위해 제공된다. 버스 신장기 브리지는 제1 및 제2 외부 버스가 독립적으로 동작하는 독립 모드와 제1 및 제2 외부 버스가 단일 버스로 발생하도록 조합되는 결합 모드 양쪽으로 구성할 수 있다. 버스 신장기 브리지는 제1 외부 버스 및 제3 버스 사이의 데이터를 라우팅하기 위한 제1 세트의 데이터 큐와, 제2 외부 버스 및 제3 버스 사이의 데이터를 라우팅하기 위한 제2 세트의 데이터 큐를 포함한다. 버스 신장기 브리지는 또한 상기 제1 및 제2 세트의 데이터 큐에 접속하고 독립 모드를 위해 병렬로 상기 제1 및 제2 세트의 데이터 큐를 동작하는 제어기를 포함한다. 제어기는 제1 세트의 데이터 큐를 통하여 짝수 어드레스 데이터를 라우팅하고 결합 모드를 위해 상기 제2 세트의 데이터 큐를 통해 홀수 어드레스 데이터를 라우팅한다.

Description

이중 모드 버스 브리지를 구비하는 장치{DUAL MODE BUS BRIDGE FOR COMPUTER SYSTEM}
본 발명은 컴퓨터 버스 시스템에 관한 것으로, 특히 주변 요소 인터페이스 버스(PCI 버스)와 같이 호스트 컴퓨터와 외부 버스를 상호접속하기 위한 브리지 또는 인터페이스 요소에 관한 것이다.
PCI 버스 시스템은 개인용 컴퓨터, 특히 파일 서버로서 구성된 개인용 컴퓨터용으로 점차 인기를 얻고 있다. PCI 버스는 PCI 특정 분야 소집단(PCI Special Interest Group)에 의해 설정된 프로토콜에 따라 구성된 고 성능, 고 밴드폭 버스이다.
PCI 버스를 사용하는 전형적인 컴퓨터 시스템에서, PCI-호스트 브리지는 PCI 버스 및 컴퓨터 시스템의 호스트 버스사이에 제공된다. 브리지는 부분적으로, PCI 포맷에서 호스트 버스가 사용한 포맷으로 데이터 변환을 용이하게 하기 위해 제공된다. 많은 PCI-호스트 브리지들은 32 비트 PCI 버스 전용을 수용하도록 구성된다. 다른 것은 64 비트 PCI 버스 전용 또는 32 비트 PCI 버스 전용을 수용하도록 구성된다. 따라서, 1 개 이상의 PCI 버스를 수용하기 위하여 부가적인 PCI-호스트 브리지를 요구한다. 많은 컴퓨터 시스템, 특히 파일 서버 컴퓨터 시스템을 위해, 수많은 PCI 버스는 수용되어야 한다. 개별의 PCI 버스에 대해 1 개의 브리지를 필요로 하는 종래의 구성에서는 유연성이 거의 없다. 더욱이, 종래의 호스트 버스의 많은 상태는 브리지와 같은 버스에 접속된 컴퓨터 시스템에 상당히 민감하다. 이러한 버스를 가지고 최대 허용할 수 있는 클럭율은 각 구성 요소에 의해 제공된 전기적인 로드에 기인하여 호스트 버스에 접속된 구성 요소 수에 종종 역비례한다. 따라서, 호스트 버스에 부가되는 브리지 접속에 의해서 최대 허용할 수 있는 클럭율을 낮춤으로써, 시스템의 전체 성능을 낮출 수 있다. 그 결과, 부가적인 PCI 브리지 접속에 대해 최대 허용할 수 있는 클럭율을 전체 컴퓨터 시스템의 성능이 저해하는 레벨까지 낮출 수 있다.
따라서, 추가의 전기적인 로드를 호스트 버스에 부가함이 없이 PCI 버스를 호스트 버스에 상호 접속하기 위해 더 유연성 있는 기술을 필요로 한다.
본 발명의 하나의 실시예에 따르면, 버스 브리지는 제1 및 제2 버스를 제3 버스에 인터페이스하기 위해 제공된다. 버스 브리지는 제1 및 제2 버스가 독립적으로 동작하는 독립 모드 또는 제1 및 제2 버스가 단일 버스를 발생하도록 조합하는 결합 모드로 구성할 수 있다. 본 발명의 다른 실시예에 따르면, 버스 브리지는 제1 버스 및 제3 버스사이의 라우팅 데이터(routing Data)를 위해 제1 세트의 데이터 큐(Data queue)를 포함하고, 제2 버스 및 제3 버스사이의 라우팅 데이터(routing)를 위해 제2 세트의 데이터 큐(Data queue)를 포함한다. 버스 브리지는 또한 제1 및 제2 세트의 데이터 큐에 접속되고 제1 및 제2 세트의 데이터 큐가 독립 모드를 위해 병렬로 동작하는 제어기를 포함한다. 제어기는 조합을 위하여 제1 세트의 데이터 큐를 통하여 짝수 어드레스 데이터를 라우팅(route)하고 제2 세트의 데이터 큐를 통하여 홀수 어드레스 데이터를 라우팅한다.
도 1은 본 발명의 실시예에 따른 컴퓨터 시스템을 설명하는 블록도.
도 2는 본 발명의 실시예에 따른 버스 신장기 브리지를 설명하는 블록도.
도 3은 본 발명의 실시예에 따른 도 2의 버스 신장기 브리지를 세부적으로 설명하는 블록도.
이하, 첨부도면을 참조하면서 본 발명의 실시예에 대해 설명한다.
도 1은 본 발명의 실시예에 따른 컴퓨터 시스템을 설명하는 블록도이다. 컴퓨터 시스템(8)은 처리기(10,20,30,40)를 포함하여 복수의 처리기를 포함한다. 처리기는 컴퓨터 시스템(8)의 호스트 버스(60)에 접속된다. 메모리 서브시스템(110)은 라인(50)을 경유하여 호스트 버스(60)에 접속되고, D-RAM 및 관련 제어 로직과 같은 메모리를 포함한다. 컴퓨터 시스템(8)은 또한 메모리와 1 개 또는 그 이상의 I/O 버스(또는 다른 외부 버스)를 인터페이스하기 위하여 호스트 버스(60)에 접속된 입력/출력(I/O) 브리지 제어기(MIOC,100)를 포함하며 메모리 서브시스템(110)은 호스트 메모리(60)에 접속된다. MIOC(100)가 도 1에 단일한 블록 또는 구성 요소로 도시된 경우라도, MIOC(100)는 별도의 메모리 제어기 및 별도의 I/O 브리지 제어기로서 교번으로 제공할 수 있다.
컴퓨터 시스템(8)은 또한 1 개 또는 그 이상의 외부 버스를 호스 버스(60)에 인터페이스를 위하여 MIOC(100)에 접속된 복수 개의 신장기 브리지(80)를 포함한다. 도 1에 설명된 실시예에 따르면, 2 개의 버스 신장기 브리지(80A 및 80B)는 각각 신장기 버스(70A 및 70B)를 경유하여 MIOC(100)에 접속된다. 단지 2 개의 버스 브리지(80A 및 80B)가 MIOC(100)에 접속된 경우라도 MIOC(100)에 접속하는 다수의 버스 신장기 브리지(80, 예를 들어, 80A, 80B, 80C, 80D)가 있을 수 있다. 각각의 버스 신장기 브리지(80)는 다중 PCI 포트를 포함하고 있어, 각각의 PCI 포트는 PCI 버스에 인터페이스하기 위하여 제공된다. 도 1에 설명된 실시예에 따르면, 버스 신장기 브리지(80A 및 80B) 각각은 2 개의 PCI 버스(90A, 90B)를 수용하기 위하여 2 개의 PCI 포트를 포함한다. 신장기 버스(70A 및 70B) 및 PCI 버스(90A 및 90B)는 양 방향 버스이다. 복수의 PCI 확장 슬롯(92)은 1 개 또는 그 이상의 PCI 소자가 플러그 인 되거나 각각의 PCI 버스에 접속되도록 각각의 PCI 버스(90)에 접속된다. 다수의 PCI 소자 또는 어댑터는 PCI 호환 하드 디스크 드라이브, 그래픽 카드, 테이프 드라이브 등과 같이 PCI 확장 슬롯(92)에 플러그 인 될 수 있다.
본 발명에 따르면, 1 개 또는 그 이상의 버스 신장기 브리지(80)는 MIOC(100)를 경유하여 호스트 버스(60)에 접속할 수 있다. 그러나, MIOC(100)은 호스트 버스(60)에 단일의 전기 로드를 인가한다. 그러므로, 본 발명의 버스 신장기 브리지(80)는 호스트 버스 성능을 저하함이 없이 호스트 버스(60)에 접속되는 다중 외부 버스(예를 들어, PCI 버스)를 허용하며, 그 이유는 다중 외부 버스가 호스트 버스(60) 상에 단일의 전기 로드로서 나타나기 때문이다.
실시예에 따라 신장기 브리지(80A, 80B) 각각이 PCI 버스에 인터페이스를 각각 제공하고 있으나, 대안으로서 본 발명의 신장기 브리지(80A 및 80B)는 다른 형태의 외부 버스에 접속할 수 있다. 그러므로, 본 발명의 버스 신장기 브리지(80)는 PCI에 인터페이스하는 것에 국한되지 않는다.
본 발명의 실시예에 따르면, 각각의 버스 신장기 브리지(80)는 2 개의 독립한 32 비트, 33㎒, Rev.2.1 컴플라이언트 PCI 인터페이스을 제공한다. 각각의 PCI 인터페이스는 버스용으로 50 개의 신호를 필요로 한다. 각각의 PCI 인터페이스는 버스를 위해 50 개의 신호를 필요로 하고, PCI 표준에 따라 12개의 부가적인 임의 및 지원 신호를 필요로 한다. 각각의 버스 신장기 브리지(80)는 PCI 버스(90A 및 90B) 및 신장기 버스(70A 및 70B) 사이의 주요 제어 및 데이터 인터페이스를 제공한다. 더욱이, 각각의 버스 신장기(80)는 도 1에 설명한 바와 같이 다중 PCI 버스를 수용하기 위한 PCI 포트를 포함한다. 각각의 버스 신장기 브리지(80)는 또한 증가된 밴드폭을 가지는 단일의 PCI 버스를 제공하기 위하여 다중 PCI 버스를 조합하도록 구성할 수 있다.
본 발명의 실시예에 따르면, 각각의 버스 신장기 브리지(80)는 2 개의 독립한 32 비트 PCI 버스(독립 32 비트 모드)를 제공하거나, 대안으로서 단일 64 비트 PCI 버스(조합 64 비트 모드)를 얻기 위하여 2 개의 독립한 32 비트 PCI 버스(90A 및 90B)를 조합하도록 구성할 수 있다. 그러므로, 본 발명의 버스 신장기 브리지(80)는 또한 개선된 유연성을 제공하며, 그 이유는 각각의 버스 신장기 브리지(80)가 다른 크기의 버스를 수용하도록 구성할 수 있기 때문이다.
각각의 버스 신장기 브리지(80)는 다양한 기술을 사용하여 독립 32 비트 모드 또는 조합 64 비트 모드를 구성할 수 있다. 예를 들어, 버스 신장기 브리지(80)는 점퍼를 사용하여 버스 신장기 브리지(80)에 64 비트 모드 핀 입력의 상태를 세팅함으로써, 버스 신장기 브리지(80)에 1 개 또는 그 이상의 실리콘 퓨즈를 프로그래밍함으로써 또는 버스 신장기 브리지(80)를 초기화하는 처리기(10)에 의하여 구성할 수 있다.
동작 중에, 다양한 트랜잭션이 처리기(10)(또는 다른 처리기)와 PCI 버스(90A 및 90B)에 접속된 PCI 소자 사이의 트랜잭션, 처리기(10)와 메모리 서브시스템(110) 사이의 트랜잭션 및 상이한 PCI 버스사이의 트랜잭션을 포함하는 여러 가지 컴퓨터 시스템(8) 양단으로 흐른다.
본 발명의 실시예에 따르면, 호스트 버스(60) 및 신장기 버스(70A 및 70B)버스 트랜잭션 양단으로 버스 트랜잭션은 완전 분할 트랜잭션이고 요구 패킷과 완성 패킷으로 구성된다. 판독 트랜잭션 및 기입 트랜잭션의 2 가지 형태의 트랜잭션이 있다. 요구 패킷은 트랜잭션을 초기화한다. 완성 패킷은 데이터(단지 판독 요구용)가 복귀하도록 사용되고, 트랜잭션이 목적지 소자에서 완성된 것을 표시하도록 사용되며 버퍼를 재할당하거나 자료가 대기하도록 사용된다.
1 개 패킷의 정보는 다중 32 비트 단어(또한 더블 워드 또는 D 워드로 공지됨)로 구성한다. 각각의 패킷은 어드레스 및 제어 정보로 구성되는 헤더를 포함하고 데이터 일부를 포함할 수 있다. 패킷의 헤더는 트랜잭션, 라우팅 정보, 부가 제어 정보를 식별하면서 명령(판독 또는 기입), 어드레스 정보, 트랜잭션 ID를 포함하는 1 개 또는 그 이상의 D 워드로서 제공된다.
페킷의 데이터 일부는 데이터의 1 개 또는 그 이상의 D 워드를 포함할 수 있다. 완성 패킷은 초기 요구에 대응하는 트랜잭션 ID, 트랜잭션 완성 표시 및 다른 제어 정보를 포함한다. 판독 완성 패킷은 또한 판독 요구에 응답하여 복귀된 요구 데이터를 포함한다. 기입 완성은 기입이 성공적으로 완성되었음을 표시하지만 데이터는 포함하지 않고 있다.
컴퓨터 시스템(8)에서 트랜잭션은 인바운드 트랜잭션(inbound transaction) 또는 아웃바운드 트랜잭션(outbound transaction)으로 나눌 수 있다. 인바운드 트랜잭션은 상기 트랜잭션이 버스 (90A 및 90B)에 접속된 PCI 마스터에 의해 초기화되는 것이다. 예를 들어, PCI 마스터로 동작하는 PCI 소자는 메모리 서브 시스템(110)으로의 인바운드 판독 동작을 초기화한다. 아웃바운드 트랜잭션(outbound transaction)은 예를 들어, 처리기(10)에 의해 초기화되고 PCI 버스(90A 및 90B)에 접속된 소자에 지시된 트랜잭션이다. 예를 들어, 아웃바운드 트랜잭션은 PCI 확장 슬롯(92) 중 하나에 접속된 하드 디스크 드라이브의 처리기 판독을 포함할 수 있다.
도 2는 본 발명의 실시예에 따른 버스 신장기 브리지를 설명하는 블록도이다. 도 2에 도시한 바와 같이, 버스 신장기 브리지(80A)는 신장기 버스(70A) 및 PCI 버스(90A 및 90B)사이에 접속된다. 버스 신장기 브리지(80A)는 2 개의 실질적으로 동일한 반절 또는 면(A 면 및 B 면)로 나누어지고 각 면은 32 비트 PCI 버스(90A 및 90B)의 하나를 독립한 32 비트 모드 동안에 서비스한다. 버스 신장기 브리지(80A)의 양 면을 서비스하는 1 개의 공통 신장기 버스 제어기(235)가 있다.
각각의 면의 버스 신장기 브리지(80A)를 위한 특정한 요소 또는 구성 요소는 간략히 기술한다. 상기한 바와 같이, 버스 신장기 브리지(80A)의 각 면은 실질적으로 동일하다. 도 2에 설명한 바와 같이, 각 면에 대응하는 요소는 동일한 식별 숫자를 포함한다. 버스 신장기 브리지(80A)의 A 면 및 B 면 요소를 식별하기 위하여, A 면의 숫자 말단 문자 "A"로 식별하고 B 면의 숫자 말단 문자 "B"로 식별한다. 버스 신장기 브리지(80A)의 각 면은 어드레스 및 제어 정보를 저장하기 위하여 수개의 큐를 포함하고, 데이터는 아웃바운드 판독 및 기입 요구용과 인바운드 판독 완성 패킷용 어드레스 및 제어 신호를 저장하기 위한 아웃바운드 신호 큐(OTQ, 205)와,
아웃바운드 기입 데이터를 저장하기 위한 아웃바운드 기입 데이터 큐(OWDQ, 210)와,
아웃바운드 판독을 저장하기 위한 아웃바운드 큐(ORDQ, 215),
인바운드 판독, 기입 요구 및 인바운드 완성 패킷용 어드레스 및 제어 정보를 저장하기 위한 인바운드 트랜잭션 큐(ITQ, 210)와,
인바운드 판독 및 기입 요구용과 아웃바운드 완성 패킷용 어드레스 및 제어 신호를 저장하기 위한 인바운드 기입 데이터 큐(IWDQ, 225)와,
2개의 상이한 판독 완성용 인바운드 판독 데이터를 저장하기 위한 2 개의 인바운드 판독 데이터 큐(IRDQ, 230)를 포함한다.
도 2에 설명한 바와 같이, 버스 신장기 브리지(80A)의 각 면은 또한 상기 큐의 동작 제어를 맡고 있는 6 개의 제어기를 포함한다. 양 면에 공통된 버스 신장기 브리지(80A)에는 또한 1 개의 신장기 버스 제어기(235)가 있다. 특히, 버스 신장기 브리지(80A)의 각 면은 OTQ(205), OWDQ(210), ORDQ(215)의 로딩 및 언로딩을 맡는 아웃바운드 트랜잭션 제어기(240)와,
ITQ(220), IRDQ(230), IWDQ(225)의 로딩 및 언로딩을 맡는 인바운드 트랜잭션 제어기(245)와,
아웃바운드 트랜잭션 제어기(250) 및 아웃바운드 트랜잭션용 PCI 버스 사이를 인터페이스하는 마스터 버스 제어기(250)와,
인바운드 트랜잭션 제어기(245) 및 인바운드 트랜잭션용 PCI 버스 사이를 인터페이스하는 타겟 버스 제어기(255)와,
신장기 버스 제어기(235)로부터의 아웃바운드 패킷 수신 및 큐 패킷 송신을 위한 아웃바운드 패킷 제어기(270)와,
큐에서 신장기 버스 제어기(235)까지 패킷을 송신하기 위한 인바운드 패킷 제어기(275)를 포함한다.
더욱이, 버스 신장기 브리지(80A)를 통하여 라우팅 정보를 선택적으로 사용하는 수개의 멀티플렉서(multiplexer; mux, 260)가 있다.
도 3은 본 발명의 실시예에 따른 도 2의 버스 신장기 브리지(80A)를 세부적으로 설명하는 블록도이다. 도 2에 설명한 바와 같이, 버스 신장기 브리지(80A)는 2 개의 실질적으로 동일한 면, A 면 및 B 면으로 나누어진다. 각각의 면은 전 세트의 큐(상기함) 및 6 개의 제어기를 포함한다.
도 3에 도시한 바와 같이, 신장기 버스 제어기(235)는 신장기 버스(70A)로부터 신장기 버스 패킷을 수신하기 위한 수신 로직(305) 및 신장기 버스(70) 상으로 신장기 버스 패킷을 전송하기 위한 전송 로직(310)을 포함한다. 신장기 버스 제어기(235)는 또한 인바운드 패킷 제어기(275A) 또는 인바운드 패킷 제어기(275B)로부터 정보를 선택하기 위한 전송 로직(310)의 입력에 접속되는 멀티플렉서(mux, 315)를 포함한다.
후술하는 바와 같이, 특별히 기술한 A 면 및 B 면을 제외하고 버스 신장기 브리지(80A)의 각 면(A 면 및 B 면)에 일반적으로 적용한다.
점선(라인 426 및 432) 및 점선으로 된 멀티플렉서(345)는 버스 신장기 브리지(80A)의 양 면으로 복제되지 않았다. 도 3에서 점선 또는 점선 데이터 경로 (라인 426 및 432) 및 점선으로 된 멀티플렉서(345)는 후술한 바와 같이 64 비트 모드로 버스 신장기 브리지(80A)에 구성하도록 제공된다.
수신 로직(305)의 출력은 라인(409)을 경유하여 양면으로 OTQ(205), OWDQs(210), IRDQs(230)에 입력된다. IRDQ(230)(각 면으로)는 IRDQ0 및 IRDQ1으로 도시된 2 개의 IRDQs를 포함한다. IRDQs(230)으로부터 출력은 라인(406 및 408)을 경유하여 멀티플렉서(325)에 입력된다. 멀티플렉서(325)의 출력은 라인(422)(A 면으로 In_ReaD Data_A, B 면으로 In_ReaD Data_B)을 경유하여 멀티플렉서(330)에 접속된다. 멀티플렉서(330)의 출력은 라인(424)(A 면으로 Out_Read Data_A, B 면으로 Out_Read_Data_B)을 경유하여 멀티플렉서(335)에 접속된다. 멀티플렉서(335)의 출력은 라인(428)을 경유하여 버퍼(320)에 접속된다. 버퍼(320A)는 PCI 버스(90A)에 접속되고 버퍼(320B)는 PCI 버스(90B)에 접속된다. ORDQ(210)의 출력은 라인(404)을 경유하여 멀티플렉서(330)에 접속된다(A 면으로 Out_Write_Data_A, B 면으로 Out_Write_Data_B). OTQ(205)의 출력은 라인(402)을 경유하여 멀티플렉서(335)에 접속된다(A 면으로 Out_Adr_Data_A, B 면으로 Out_Adr_Data_B). 멀티플렉서(330B)의 출력은 점선(426)(Out_64to32_Data_A)을 경유하여 멀티플렉서(335A)에 접속된다.
라인(416)(A 면으로 In_Adr_Data_A, B 면으로 In_Adr_Data_B)은 버퍼(320)의 출력을 멀티플렉서(340), ORDQ(215) 및 IWDQ(225)에 접속한다. OTQ(205)(라인 402)의 출력은 라인(420)을 경유하여 멀티플렉서(340)에 접속된다(Out_Completion_A, 또는 Out_Completion_B). 멀티플렉서(340)의 출력은 라인(410)을 경유하여 ITQ(210)에 입력된다. ITQ(220), ORDQ(215) 및 IWDQ(225)는 입력 패킷 제어기에 입력된다. 입력 패킷 제어기(275A 및 275B)로부터의 출력은 멀티플렉서(315)에 입력된다.
멀티플렉서(345)는 B 면으로 제공되고 입력, 버퍼(320B)(In_Adr_Data_B)의 출력 및 점선(432) (In_32to64_Data)을 경유하여 버퍼(320A) (In_Adr_Data_A)로부터의 출력으로서 수신한다. 라인(416B)은 멀티플렉서(345)로부터 출력된다.
버스 신장기 브리지(80A)의 동작은 수개의 버스 트랜잭션에 의하여 후술한다(MIOC(100)에 접속될 수 있는 다른 버스 신장기 브리지(80B, 80C, 80D등)는 32 비트 독립 모드 또는 조합 64 비트 모드에서 각각 별개로 구성되고 각각은 버스 신장기 브리지(80A)와 동일한 방법으로 동작된다).
독립 32 비트 모드에서 버스 신장기 브리지
버스 신장기 브리지(80A)의 A 면을 위한 트랜잭션만을 설명한다. 그러나, 버스 신장기 브리지의 B 면은 대칭이고 버스 신장기 브리지(80A)가 32 비트 모드인 경우에 A 면과 동일한 방법으로 동작한다.
1. 32 비트 버스 신장기 브리지 : 인바운드 판독(예를 들어, PCI 매스터로부터 메모리 서브시스템(110)까지 판독)
인바운드 판독 동작을 위해, PCI 소자는 PCI 판독 트랜잭션을 출력한다. PCI 판독 트랜잭션은 버퍼(320A)에 의해 수신되고 타겟 버스 제어기(225A)로 통과된다. 타겟 버스 제어기(255A)는 판독 트랜잭션이 유효함을 결정하고, 판독 트랜잭션의 목적지를 디코드하며, 그 후 어드레스 및 목적지 정보가 인바운드 트랜잭션 제어기(245A)로 통과한다(판독 요구 패킷에는 데이터가 없음). 인바운드 트랜잭션 제어기(245A)는 트랜잭션 ID를 포함하는 제어 정보 및 PCI 면(A 면 또는 B 면) 패킷이 발생함을 나타내는 라우팅 정보를 발생한다. 인바운드 트랜잭션 제어기(245A)는 제어 및 어드레스 정보(판독 요구 패킷)를 확장 버스 패킷으로 포맷하고 멀티플렉서(340A)를 경유하여 ITQ(220A)에서 이러한 어드레스 및 제어 정보를 저장하기 위하여 라인 (416A) 상으로 이 어드레스 및 제어 정보를 출력한다.
인바운드 트랜잭션 제어기(245A)는 라인(416A) 상으로 놓여지는 이러한 판독 요구 패킷의 제어 및 어드레스 정보를 저장하기 위하여 ITQ(220A)가 인에이블 하도록 ITQEnableA 신호를 발생한다. 그 결과, ORDQ(215A) 및 IWDQ(225A)가 또한 라인(416A)상에 접속되는 경우라도, ORDQ(215A) 및 IWDQ(225A)는 이 때 디스에이블을 유지하고 이에 따라 라인(416A) 상으로 출력하는 패킷용 어드레스 및 제어 정보를 저장하지 않는다(독립 32 비트 모드에서, 인바운드 트랜잭션 제어기(245B)는 ITQ(220B)가 인에이블하기 위한 ITQEnableB 신호를 독립적으로 발생할 수 있다). 신장기 버스 제어기(235)는 이 후 신장기 버스(70A)를 경유하여 MIOC(100)에 판독 요구 패킷을 출력한다. 요구 데이터가 메모리 서브시스템(110)으로부터 이용가능한 경우에, MIOC(100)는 요구 데이터 및 판독 완성(라우팅 정보 및 트랜잭션 ID와 같은 제어 정보)을 포함하는 완성 패킷을 발생하고, 신장기 버스(70A)를 경유하여 완성 패킷을 버스 신장기 브리지(80A)로 전송한다.
신장기 버스 제어기(235)는 이러한 패킷이 PCI A 면 또는 B 면에 지시하는 것인지 결정하도록 완성 패킷의 제어 정보(특히 라우팅 정보)를 조사한다. 완성 패킷은 요구가 발생되는 동일한 면에 지시된다. 신장기 버스 제어기(235)는 첫째 라인(409) 상으로 완성 패킷의 제어 정보(트랜잭션 ID 포함)를 출력한다. 이때, 패킷이 A 면으로 지시되는 경우에 신장기 버스 제어기(235)는 라인(409) 상으로 구동되는 OTQ(205A)에서 제어 정보를 저장하기 위하여 OTQ(205A)(A 면)을 인에이블 하도록 OTQEnableA 신호를 발생한다. 마찬가지로, 패킷이 B 면으로 지시되는 경우에 신장기 버스 제어기(235)는 OTQ 205B(B 면)에 제어 정보가 저장되도록 OTQEnableB 신호를 발생한다. 이러한 실시예는 요구 패킷이 A 면으로부터 발생한다고 가정하고, 이에 따라 완성 패킷은 A 면으로 되돌아가도록 지시된다.
다음으로, 신장기 버스 제어기(235)는 패킷이 지시되는 면으로 2 개의 인바운드 판독 데이터 큐(IRDQ0 및 IRDQ1) 중 하나에 데이터를 저장하기 위하여 라인(409) 상으로 요구 데이터를 출력한다. OTQ (205A)는 2 개의 판독 완성(트랜잭션 ID, D 워드 수, 라우팅 정보 등) 2 개의 상이한 판독 완성을 위한 어드레스 및 제어 정보)까지 저장할 수 있다. 각각의 판독 완성을 위한 대응 데이터는 2 개의 IRDQs(203A)(IRDQ0 및 IRDQ1) 중 하나에 데이터가 저장된다. 실시예에 따르면, IRDQ0는 64 D 워드까지 저장할 수 있고 IRDQ1은 32 D 워드까지 저장할 수 있다. 제어 신호(IRDQ0EnableA 또는 IRDQ1EnableA)는 요구 데이터를 저장하기 위하여 IRDQs(230A) 중 하나를 인에이블하도록 신장기 버스 제어기(235)에 의해 발생된다.마찬가지로, 제어 신호(IRDQ0EnableB 또는 IRDQ1EnableB)중 하나는 패킷이 B 면에 지시되는 경우에 B 면 IRDQs가 발생된다.
아웃바운드 트랜잭션 제어기(240A)는 OTQ(205A)를 판독하고 인바운드 판독 완성 데이터를 탐지한다. 아웃바운드 트랜잭션 제어기(240A)는 인바운드 판독 완성 패킷을 인바운드 트랜잭션 제어기(245A)로 전송하고, 데이터가 속하는 판독 요구를 결정하기 위하여 트랜잭션 ID를 디코드한다. 버스 신장기 브리지(80A)가 이러한 트랜잭션(예를 들어, 동일 어드레스 및 초기 트랜잭션으로서 상이한 제어신호를 가짐)를 위해 PCI 마스터로부터 반복된 판독 요구를 수신하는 경우에, 인바운드 트랜잭션 제어기(245A)는 멀티플렉서(325A, 330A, 335A)를 경유하여 PCI 버스(90A) 상으로 IRDQ0 또는 IRDQ1 (230A)로부터 판독 데이터(In_Read_Data_A로서 도시)를 출력한다. 인바운드 트랜잭션 제어기(245A)는 멀티플렉서(325A)를 IRDQ0 또는 IRDQ1에 저장된 데이터를 선택적으로 출력하도록 제어하고, 타겟 버스 제어기(255A)는 멀티플렉서(330A 및 335A)를 제어한다. IRDQ0는 64 D 워드까지 저장할 수 있고 IRDQ1은 32 D 워드까지 저장할 수 있다. 판독 완성을 위한 각각의 D 워드는 특정한 IRDQ로부터의 모든 데이터가 출력될 때까지 또는 트랜잭션이 PCI 마스터에 의해 종결될 때까지 연속 클럭 사이클로 PCI 버스(90A)에 출력된다.
2. 32 비트 모드 신장기 브리지 : 인바운드 기입(예를 들어, PCI 마스터로부터 메모리 서브 시스템(110)까지 기입)
신장기 버스(70) 상의 어드레스 및 데이터 신호는 다중화된다. 마찬가지로, PCI 버스(90A 및 90B)상의 어드레스 및 데이터 신호도 또한 다중화된다. 인바운드 기입을 위해, PCI 마스터는 어드레스 및 제어 정보를 제공하고, 그 후 기입된 데이터를 제공한다. 이러한 정보는 연속 클럭 사이클로 신장기 버스 브리지(80A 및 90A)에 의해 수신된다. PCI 기입 트랜잭션의 어드레스 및 제어 정보는 먼저 PCI 버퍼(320A)에서 수신되고 타겟 버스 제어기(255A)로 통과된다. 타겟 버스 제어기(255A)는 기입 트랜잭션이 유효함을 결정하고, 그 후 기입 트랜잭션의 목적지를 디코드한 후 어드레스 및 목적지 정보가 인바운드 트랜잭션 제어기(245A)로 통과된다. 인바운드 트랜잭션 제어기(245A)는 소스 및 목적지를 포함하는 제어 정보를 발생하고 어드레스 및 제어 정보를 신장기 버스 패킷 포맷으로 포맷하며 ITQEnableA 신호를 발생함으로써 멀티플렉서(340A)를 경유하여 ITQ(220A)에서 이러한 어드레스 및 제어 정보를 저장하기 위해 라인(416A) 상으로 어드레스 및 제어 정보(In_Adr_A로 도시)를 출력한다.
다음으로, PCI 기입 트랜잭션의 데이터는 PCI 마스터로부터 수신된다. 인바운드 트랜잭션 제어기(245A)는 데이터를 포맷하고, 그 후 라인(416A) 상으로 데이터를 출력하고 IWDQ(225A)를 인에이블하도록 IWDQEnABleA 신호를 발생함으로써 IWDQ(225A)에서 데이터를 저장한다(독립 32 모드 및 조합 64 비트 모드에서, 인바운드 트랜잭션 제어기(245B)는 IWDQ(225B)를 인에이블 하도록 IWDQEnABleB 신호를 독립적으로 발생할 수 있다).
신장기 버스 제어기(235)는 ITQ(220A)로부터 어드레스 및 제어 정보를 출력하고, 그 후 전송용 IWDQ(225A)로부터 MIOC(100)까지 신장기 버스(70A)로 데이터를 출력한다. 데이터가 메모리 서브시스템(110)에 기입된 후에, 완성 패킷은 MIOC(100)으로부터 신장기 버스 제어기(235)에 의해 수신된다.
3. 32 비트 모드 신장기 브리지 : 아웃바운드 판독(예를 들어, 프로세서(10)에서 PCI 타겟까지 판독)
아웃바운드 판독을 위하여, 판독 요구 패킷은 MIOC(100)으로부터 신장기 버스 제어기(235)에 의해 수신된다. 신장기 버스 제어기(235)는 패킷이 PCI A 면 또는 B 면에 지시하는 경우에 결정하기 위하여 패킷 헤더를 조사한다. 이러한 어드레스 및 제어 정보는 그 후 적절한 면의 OTQ로 라우팅된다. 이러한 실시예는 패킷이 PCI A 면(버스 90A)으로 지시됨을 가정한다. 신장기 버스 제어기(235)는 OTQ(205A)에서 어드레스 및 제어 정보를 저장하기 위하여 OTQ(205A)가 인에이블하도록 OTQEnableA 신호를 발생한다. 아웃바운드 트랜잭션 제어기(240A)는 또한 PCI 포맷으로 어드레스 및 제어 정보를 포맷한다. 신장기 버스 브리지(80A)가 PCI 버스(90A)의 소유를 포획한 후에, 마스터 버스 제어기(250A)는 그 후 라인(402A)(Out_Adr_A로 도시), 멀티플렉서(335) 및 버퍼(320A)를 경유하여 OTQ(205A)에서 PCI 버스(90A)까지 어드레스 및 제어 정보를 출력한다. 어드레스 및 제어 정보 일부는 또한 라인(402A)(Out_Completion_A)을 경유하여 라우팅되고 아웃바운드 트랜잭션 제어기(240A)에 저장된다. 신장기 버스 브리지(80A)는 그 후 PCI 버스(90A) 상으로 어드레스 및 제어 정보를 출력한다.
PCI 타겟은 그 후 PCI 버스(90A) 상으로 요구 데이터를 제공한다. 아웃바운드 트랜잭션 제어기(240A)는 그 후 ORDQ(215A)가 인에이블하도록 ORDQEnableA 신호를 발생함으로써 라인(416A)을 경유하여 ORDQ(215A)에서 요구 데이터를 저장한다 (독립 32 비트 모드 및 조합 64 비트 모드에서 아웃바운드 트랜잭션 제어기(245B)는 ORDQ(215B)가 인에이블하도록 ORDQEnableB 신호를 독립적으로 발생할 수 있다). 모든 데이터를 수신한 후에 아웃바운드 트랜잭션 제어기(240A)는 라인(416A) 및 멀티플렉서(340A)를 경유하여 ITQ(220A)에서 판독 완성 패킷(트랜잭션 ID 및 D 워드 수를 포함하는 제어 및 어드레스 정보)을 발생하고 저장한다. ITQEnableA 신호는 완성 패킷(제어 및 어드레스 정보)을 저장하기 위하여 ITQ(220A)가 인에이블하도록 발생된다. 완성 패킷은 라인(420A)상에 Out_Completion_A로서 도시된다. 신장기 버스 제어기(235)는 ITQ(220A)로부터 신장기 버스(70A) 상으로 완성 패킷(제어 및 어드레스 정보)을 출력하고, 그 후 ORDQ(215A)로부터 요구 데이터를 출력한다.
4. 32 비트 모드 신장기 브리지 : 아웃바운드 기입(예를 들어, 프로세서(10)으로 부터 PCI 타겟까지 기입)
아웃바운드 기입을 위하여, 기입 요구 패킷은 MIOC(100)으로부터 신장기 버스 제어기(235)에 의해 수신된다. 신장기 버스 제어기(235)는 패킷이 PCI A 면 또는 B 면에 지시하는 경우에 결정하기 위하여 패킷 헤더(어드레스 및 제어 정보)를 조사한다(이러한 실시예는 A 면에 지시되는 것으로 가정한다). 어드레스 및 제어 정보는 그 후 라인(409) 상으로 어드레스 및 제어 정보를 출력함으로써 적절한 면으로 OTQ로 라우팅된다. 신장기 버스 제어기(235)는 OTQ(205A)에서 어드레스 및 제어 정보를 저장하기 위하여 OTQ(205A)가 인에이블하도록 OTQEnableA 신호를 발생한다. 다음으로 신장기 버스 제어기(235)는 라인(409) 상으로 데이터를 출력하고 데이터를 저장하기 위하여 OWDQ(210A)가 인에이블 하도록 OWDQEnableA 신호를 발생한다. 신장기 버스 브리지(80A)가 PCI 버스(90A)의 소유를 포획한 후에, 마스터 버스 제어기(250A)는 그 후 라인(402A)(Out_Adr_A로 도시), 멀티플렉서(335) 및 버퍼(320A)를 경유하여 OTQ(205A)에서 PCI 버스(90A)까지 어드레스 및 제어 정보를 출력한다. 어드레스 및 제어 정보 일부는 또한 라인(402A)(Out_Completion_A)을 경유하여 라우팅되고 아웃바운드 트랜잭션 제어기(240A)에 저장된다. 데이터는 그 후 마스터 버스 제어기(250A)는 그 후 라인(404A)(Out_Write_Data_A로 도시), 멀티플렉서(330A),라인(424A)(Out_Data_A로 도시한 데이터), 멀티플렉서(335A) 및 버퍼(320A)를 경유하여 OWDQ(210A)에서 PCI 버스(90A)까지 출력한다.
PCI 인터페이스를 PCI 버스(90A)에 대해 사용하여, 그 후 PCI 타겟은 데이터가 PCI 타겟에 기입되도록 신장기 버스 브리지(80A)에 통지한다. 아웃바운드 트랜잭션 제어기(240A)는 라인(420A) 및 멀티플렉서(340A)를 경유하여 ITQ(220A)에서 기입 완성 패킷(트랜잭션 ID, 어드레스 및 D 워드 수를 포함하는 제어 및 어드레스 정보)을 발생하고 저장한다. 완성 패킷은 라인(420A)상에 Out_Completion_A로서 도시된다. 신장기 버스 제어기(235)는 ITQ(220A)로부터 신장기 버스(70A) 상으로 완성 패킷(제어 및 어드레스 정보)을 출력한다.
버스 신장기 브리지(80A)의 B 면은 버스 신장기 브리지(80A)가 독립 32 비트 모드인 경우에 A 면에 대해 상기한 바와 같은 유사한 방법으로 동작한다. 버스 신장기 브리지(80A)의 A 면 및 B 면은 버스 신장기 브리지(80A)의 양면으로부터 패킷을 하면서 신장기 버스 제어기(235)를 가지고 동시에 동작할 수 있다. 도 1에 도시한 바와 같이, MIOC(100)에 접속되는 수개의 버스 신장기 브리지(80)(브리지 80A, 80B 등)가 있을 수 있다. 각각의 버스 신장기 브리지(80)는 병렬로 동작하고 각각은 독립(또는 다중) 32 비트 모드 또는 조합 64 비트 모드로 동작하도록 구성된다.
조합 64 비트 모드에서 버스 신장기 브리지
버스 신장기 브리지(80A)는 2 개의 32 비트 PCI 버스(90A 및 90B)가 단일 64 비트 PCI 버스를 제공하도록 조합되는 조합 64 비트 모드로 동작하도록 구성할 수 있다. 마찬가지로, 2 개 이상의 외부 버스(예를 들어, PCI 또는 다른 버스)는 버스 신장기 브리지(80)에 접속할 수 있고 심지어 보다 큰 밴드폭을 가지는 외부 버스를 제공하도록 조합된다. 예를 들어, 3 개의 32 비트 외부 버스는 외부 96 비트 버스를 제공하도록 조합된다.
버스 신장기 브리지(80A)의 64 비트 모드 핀은 64 비트 모드로 버스 신장기 브리지를 구성하도록 사용할 수 있다. 다른 기술도 또한 64 비트 모드로 선택하도록 사용할 수 있다. 조합 64 비트 모드 동안에, 버스 신장기 브리지(80A)는 64 비트 PCI 버스로 64 비트 소자( 2 개의 D 워드 또는 시간당 64 비트의 데이터를 주고/받을 수 있는 PCI 소자) 또는 32 비트 소자( 시간당 32 비트의 데이터를 주고/받을 수 있는 PCI 소자)로 통신할 수 있다. 64 비트 버스 신장기 브리지(80A)가 32 비트 PCI 소자로 통신하는 경우에, 버스 신장기 브리지(80A)에 대해 이용할 수 있는 밴드폭의 단지 반이 사용된다.
본 발명의 실시예에 따르면, 버스 신장기 브리지(80A)는 64 비트 모드 동안에 "짝수-홀수" 구도로 2 개의 PCI 면(A 면 또는 B 면)을 사용한다. 짝수-홀수 구도에서, 모든 짝수 어드레스 데이터(어드레스[2]는 0 임)는 버스 신장기 브리지(80A)의 A 면으로 큐에 놓이고, 모든 홀수 어드레스 데이터(어드레스[2]는 1 임)는 버스 신장기 브리지(80A)의 B 면으로 큐에 놓인다. 이러한 구도는 또한 64 비트 규정으로 동작되도록 되고, 모든 짝수 어드레스 데이터는 하부 32 비트(A 면)에 위치하고 모든 홀수 어드레스 데이터는 상부 32 비트(B 면)에 위치한다. 버스 신장기 브리지(80A)가 64 비트 모드이고 32 비트 PCI 소자로 통신하는 동안에 모든 홀수 어드레스 데이터는 PCI A 면으로 라우팅된다.
본 발명의 실시예에 따르면, 큐(트랜잭션 및 데이터 큐를 포함) 및 버스 신장기 브리지(80A)의 A 면 및 B 면 모두의 제어기는 버스 신장기 브리지(80A)가 조합 64 비트 모드인 경우에 병렬로 동작한다.
그러나, 본 발명의 버스 신장기 브리지(80A)의 다른 실시예에 따르면, 조합 64 비트 모드 동안에 버스 신장기 브리지(80A)의 A 면의 전용 제어기가 사용되고, B 면의 모든 제어기는 리셋(불사용)되는 동안에 A 면으로 전용 트랜잭션 큐가 사용되고, B 면의 트랜잭션 큐가 디스에이블된다. 이러한 본 발명의 실시예에 대해 세부적으로 후술한다.
그러므로, 본 발명의 실시예에 따르면, 선택하는 64 비트 모드가 모두 B 면 제어기(아웃바운드 트랜잭션 제어기(240B), 인바운드 트랜잭션 제어기(250B), 타겟 버스 제어기(255B), 패킷 제어기(270B 및 275B)) 및 모든 B 면 트랜잭션 큐(OTQ(205B) 및 ITQ(220B))을 디스에이블한다. 예를 들어, B 면의 큐는 B 면 트랜잭션 큐를 위한 인에이블 신호를 발생하지 않음으로써 64 비트 모드로 디스에이블 할 수 있다. 그 결과, A 면의 트랜잭션 큐(OTQ(205A) 및 ITQ(220A))은 부가적인 트랜잭션(A 면 및 B 면 모두)을 수용하기 위하여 충분히 커야 한다. 따라서, A 면의 트랜잭션 큐는 예를 들어, 64 비트 모드 동안에 이러한 짝수-홀수 구도를 수용하기 위하여 B 면의 트랜잭션 큐보다 2 배 만큼 크게(깊게)만들 수 있다.
버스 신장기 브리지(80A)에서 B 면 제어기 및 B 면 트랜잭션 큐가 64 비트 모드로 디스에이블되는 짝수-홀수 구도는 2 개의 면 사이를 라우팅하는 32 비트 데이터 경로 수를 절감하여 제공하고, 64 비트 모드에서 병렬로 버스 신장기 브리지(80A)의 양면을 완전히 동작하는 것과 비교하여 요구 회로의 수 및 복잡함을 축소한다.
64 비트 모드에 대한 버스 신장기 브리지(80A)의 동작을 기술한다. 반복을 피하기 위하여 64 비트 모드 동작 및 독립 32 비트 모드 동작 사이의 차이점을 후술한다.
1. 64 비트 버스 신장기 브리지 : 32 비트 PCI 마스터로부터의 인바운드 판독
PCI 판독 트랜잭션(어드레스 및 제어 정보 포함)는 언제나 PCI A 면(버스(90A)로)의 PCI 마스터에서 버스 신장기 브리지(80A)까지 출력한다(판독 트랜잭션이 32 비트 또는 64 비트 마스터로부터 발생하였는지 관계없이). 인바운드 트랜잭션 제어기(245A)는 어드레스 및 제어 정보를 수신하고 이러한 정보를 신장기 버스 패킷으로 포맷한다. 신장기 버스 패킷은 그 후 멀티플렉서(340A)를 경유하여 ITQ(220A)에서 이러한 어드레스 및 제어 정보를 저장하기 위하여 라인 (416A) 상으로 출력한다. 신장기 버스 제어기(235)는 이 후 MIOC(100)로 패킷을 출력한다. 데이터가 메모리 서브시스템(110)으로 부터 판독한 후에, 완성 패킷(데이터 포함)은 신장기 버스(70A)를 경유하여 완성 패킷을 신장기 버스 제어기(235)를 제공한다. 판독 완성 패킷의 어드레스 및 제어 정보는 언제나 OTQ(205A)(A 면)(B 면의 제어기 및 ITQs를 디스에이블함)에서 저장된다. 그러나, 데이터는 데이터가 짝수 어드레스 되는 경우에 IRDQ0 또는 IRDQ1 (230A)(A 면)에 저장되고, 데이터가 홀수 어드레스 되는 경우에 IRDQ0 또는 IRDQ1 (230B)(B 면)에 저장된다.
버스 신장기 브리지(80A)는 PCI 마스터로부터 반복되는 PCI 판독 트랜잭션(초기 PCI 판독 트랜잭션으로서 동일한 어드레스 및 다른 제어정보를 가짐)을 수신하는 경우에, A 면의 짝수 어드레스 데이터 및 B 면의 홀수 어드레스 데이터는 PCI 버스(90A)(A 면)에 출력된다. A 면 IRDQs(230A)에 저장된 짝수 어드레스 데이터는 멀티플렉서(325A), 멀티플렉서(330A), 멀티플렉서(335A)를 경유하여 IRDQ0/IRDQ1(230A)로부터 출력된다. B 면 IRDQs(230B)에 저장된 홀수 어드레스 데이터는 멀티플렉서(335A)로 라인(426)을 따라 Out_64to32_Data로서 멀티플렉서(325B), 멀티플렉서(330B)를 통해 IRDQ0/IRDQ1(230B)로부터 출력된다. 멀티플렉서(335A)는 그 후 어드레스가 홀수인 경우에 B 면 데이터를 선택한다. 데이터는 양면으로부터 모든 데이터가 출력될 때까지 또는 PCI 트랜잭션이 PCI 마스터에 의해 종결될 때까지 교번한다.
2. 64 비트 모드 신장기 브리지 : 64 비트 PCI 마스터로부터의 인바운드 판독
데이터가 메모리 서브시스템(110)으로 부터 판독한 후에, 완성 패킷(데이터 포함)은 신장기 버스(70A)를 경유하여 신장기 버스 제어기(235)에 제공된다. 판독 완성 패킷의 어드레스 및 제어 정보는 언제나 OTQ(205A)(A 면)(B 면의 제어기 및 ITQs를 디스에이블함)에서 저장된다. 그러나, 데이터는 데이터가 짝수 어드레스 되는 경우에 IRDQ0 또는 IRDQ1 (230A)(A 면)에 저장되고, 데이터가 홀수 어드레스 되는 경우에 IRDQ0 또는 IRDQ1 (230B)(B 면)에 저장된다. 64 비트 마스터를 위해, 제1 어드레스는 언제나 짝수 어드레스이다.
버스 신장기 브리지(80A)는 PCI 마스터로부터 반복되는 PCI 판독 요구(어드레스 및 명령은 초기 판독 요구와 동일)를 수신하는 경우에, 짝수 어드레스 데이터(A 면의 IRDQs로 저장)는 PCI A 면(버스 90A)으로 출력되고, 홀수 어드레스 데이터(B 면의 IRDQs로 저장)는 PCI B 면(버스 90B)으로 출력된다. A 면의 인바운드 트랜잭션 제어기(245A)는 모든 데이터가 출력될 때까지 또는 PCI 판독 트랜잭션이 PCI 마스터에 의해 종결될 때까지 반복적으로 양면의 IRDQs로부터 병렬로 2 개의 D워드를 출력한다. B 면으로부터 D 워드와 병렬로 A 면으로부터 D 워드를 출력함으로써, 64 비트 PCI 버스를 제공된다.
3. 64 비트 모드 신장기 브리지 : 32 비트 PCI 마스터로부터 인바운드 기입
PCI 기입 트랜잭션은 PCI 마스터에 의해 출력된다. 인바운드 트랜잭션 제어기(245A)(A 면)는 어드레스 및 제어 정보를 신장기 버스 패킷 포맷으로 포맷하며 ITQ(220A)(A 면)에 어드레스 및 제어 정보를 저장한다. 데이터는 PCI A 면(버스 90A로)으로 단지 도달한다. 버스 신장기 브리지(80A)는 PCI 소자가 단지 32 비트 소자인 PCI 프로토콜을 경유하여 PCI 마스터에 의해 통지되고, 이에따라 버스 신장기 브리지는 PCI 면의 데이터만을 예상할 수 있다.
인바운드 트랜잭션 제어기(245A)(A 면)는 제1 어드레스의 기입 요구 패킷을 조사한다. 제1 어드레스가 짝수인 경우에, 제1 D 워드의 데이터는 라인(416A)를 경유하여 IWDQ(225A)(A 면)에 저장된다. 제1 어드레스가 홀수인 경우에, 제1 D 워드의 데이터는 라인(432)(In_32to64_Data로 도시), 멀티플렉서(345) 및 라인(416A)을 경유하여 IWDQ(225B)에 저장된다. 차후의 D 워드는 교번 면으로 IWDQs에 저장된다. 인바운드 트랜잭션 제어기(245A)(A 면)는 ITQ(220A)(A 면)(제어기 및 B 면의 트랜잭션 큐는 디스에이블됨)에서 기입 요구 패킷을 위해 어드레스 및 제어 정보를 포맷하고 저장한다. 어드레스 및 제어 정보는 그 후 신장기 버스 제어기(235)에 의해 기입 요구 패킷의 일부로서 MIOC(100)에 출력된다.
신장기 버스 제어기(235)는 그 후 MIOC에 데이터를 출력한다. 제1 D 워드의 위치(A 면 또는 B 면)를 식별하기 위하여, 인바운드 패킷 제어기는 패킷의 어드레스 정보를 조사한다. 제1 D 워드의 짝수 또는 홀수 어드레스는 제1 D 워드가 A 면 또는 B 면에 위치함을 각각 나타낸다. 제1 D 워드는 제1 어드레스가 짝수인 경우에 A 면 AITCHES로부터 출력되고, 제1 어드레스가 홀수인 경우에 B 면 AITCHES로부터 제1 D 워드를 얻는다. 신장기 버스 제어기(235)는 AITCHES로부터 제1 D 워드로 시작하는 각 면으로부터 교번으로 데이터를 출력한다. 데이터를 기입한 후에 기입 완성 패킷(어드레스 및 제어 정보)은 MIOC(100)로부터 수신된다.
4. 64 비트 모드 신장기 브리지 : 64 비트 PCI 마스터로부터 인바운드 기입
이 경우에, 버스 신장기 브리지(80A)는 PCI 마스터가 64 비트 PCI 소자(버스(90A 및 90B)로 시간당 64 비트 데이터를 전송할 수 있음)인 PCI 마스터에 의해 PCI 프로토콜을 경유하여 통지된다. 그러므로, PCI 기입 요구 패킷을 위한 데이터는 양 PCI 면(양 PCI 90A 면 및 90B 면으로)으로 동시에 수신된다. 기입 요구 패킷을 위한 어드레스 및 제어 정보는 ITQ(220A)(A 면)(B 면 제어기 및 트랜잭션 제어기 큐는 디스에이블됨)에 저장된다. A 면 PCI 버스로 수신된 데이터는 언제나 짝수 어드레스되고 IWDQ(225A)(A 면)에 저장되고, B 면 PCI 버스로 수신된 데이터는 언제나 홀수 어드레스되고 IWDQ(225B)(B 면)에 저장된다. 짝수 어드레스 D 워드는 데이터의 하부 32 비트이다. 그러므로, (64 비트 마스터를 위한) 신장기 버스 제어기(235)는 언제나 A 면 AITCHES로 시작하는 MIOC(100)에 기입 데이터를 출력한다.
5. 64비트 모드 신장기 브리지 : 아웃바운드 기입
기입 요구 패킷은 MIOC(100)으로부터 신장기 버스 제어기(235)에 의해 수신된다. 기입 요구 패킷의 어드레스 및 제어 정보가 PCI 타겟이 32 비트 타겟 또는 64 비트 타겟인지에 관계없이 OTQ(205A)(A 면)에 저장되며, 그 이유는 B 면의 트랜잭션 큐가 버스 신장기 브리지(80A)가 독립 64 비트 모드인 경우에 디스에이블되기 때문이다. 짝수 어드레스 데이터는 OWDQ(210A)(A 면)에 놓이고, 홀수 어드레스 데이터는 OWDQ(210B)(B 면)에 놓인다. 이러한 점에서 신장기 버스 브리지(80)는 PCI 타겟이 32 비트 또는 64 비트 타겟인지 알 수 없다. 마스터 버스 제어기(250A)(A 면)는 PCI 타겟이 32 비트 또는 64 비트 타겟인지 결정하는 PCI 프로토콜을 사용한다. 이것은 예를 들어, 64 비트가 가능한지를 PCI 타겟에 알려주기 위하여 Reg 64 신호를 출력하는 마스터 버스 제어기 (250A)에 의해 달성될 수 있다. PCI 타겟은 DevSel 신호에 응답할 수 있고 또한 64 비트가 가능한지를 나타내기 위하여 Ack 64 신호에 응답할 수 있다. 마스터 버스 제어기가 Ack 64가 없이 DevSel(Device select)을 되돌려 수신하는 경우에, 마스터 버스 제어기(250A)는 PCI 타겟이 32 비트 타겟임을 알게 된다. 마스터 버스 제어기는 ACk 64 신호를 수신하는 경우에, 마스터 버스 제어기(250A)는 PCI 타겟이 643 비트 타겟임을 알게 된다.
PCI 타겟이 64 비트 타겟인 경우에, A 면에 저장된 데이터는 PCI A 면(90A)로 출력되고, 동시에 64 비트 데이터 경로를 제공하기 위하여 B 면에 저장된 데이터는 PCI B 면(90B)으로 출력된다. 한편, PCI 타겟이 32 비트 타겟인 경우에, 브리지(80A)의 A 면 및 B 면에 저장된 데이터는 교번으로 제1 어드레스 면에서 시작되는 PCI A 면(90A)으로 출력된다. 32 비트 타겟을 위하여 B 면 데이터는 멀티플렉서(330B), 라인(426)을 통하여 멀티플렉서(335A)에 Out_64to32_Data로서 OWDQ(210B)로부터 출력된다. 멀티플렉서(335A)는 교번으로 A 면 데이터(라인(424A)로 Out_Data_A)또는 B 면 데이터(라인(426)로 Out_64to32_Data)로 교번으로 선택된다.
6. 64 비트 모드 신장기 브리지 : 아웃바운드 판독
판독 요구 패킷은 MIOC(100)으로부터 수신된다. 어드레스 및 제어 정보는 OTQ(220A)에 저장된다(판독 요구 패킷에는 데이터가 없음).
마스터 버스 제어기는 이 후 PCI 타겟이 32 비트 또는 64 비트 타겟인지 결정하는 PCI 프로토콜을 사용한다. 판독 요구 패킷은 PCI A 면 버스(90A)로 PCI 타겟에 출력한다.
PCI 타겟이 64 비트로 가능한 경우에, 요구 데이터는 PCI 버스(90A)(짝수 어드레스 데이터용) 및 PCI 버스(90B)(홀수 어드레스 데이터용)로 PCI 타겟으로부터 버스 신장기 브리지(80A)까지 출력되고 ORDQs(215A)(A 면) 및 ORDQs(215B)(B 면)에 각각 저장된다.
PCI 타겟이 32 비트 타겟인 경우에, 요구 데이터는 A 면 PCI 버스(90A)로 버스 신장기 브리지(80A)에 제공된다. 시작 어드레스가 짝수인 경우에, 제1 D 워드는 ORDQ(215A)(A 면)에 저장된다. 시작 어드레스가 홀수인 경우에, 제1 D 워드는 ORDQ(215B)(B 면)에 저장된다. D 워드는 버스 신장기 브리지(80A)의 상이한 면에 교번으로 저장된다. 완성 패킷을 위해, 신장기 버스 제어기는 교번 면으로부터 D 워드를 출력한다. 제1 어드레스가 짝수인 경우에, 제1 D 워드는 A 면으로부터 출력된다. 제1 어드레스가 홀수인 경우에, 제1 D 워드는 B 면으로부터 출력된다.
본 발명의 수개의 실시예가 상세히 설명되고 기술되었다. 그러나, 본 발명의 수정 및 변화는 상기 설명에 의해 가능하며 본 발명이 한계 및 범위로부터 이탈함이 없이 클레임을 부가할 수 있다.

Claims (17)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 제1 및 제2 버스를 제3 버스에 인터페이스하기 위한 인터페이싱 장치로서, 상기 제1 및 제2 버스가 독립적으로 동작하는 독립 모드 및 상기 제1 및 제2 버스가 결합하여 하나의 버스를 생성하는 결합 모드 중 어느 한 모드로 동작하도록 구성된 상기 인터페이싱 장치에 있어서,
    상기 제1 및 제3 버스 사이에 데이터를 라우팅하기 위한 제1 집합의 데이터 큐와,
    상기 제2 및 제3 버스 사이에 데이터를 라우팅하기 위한 제2 집합의 데이터 큐와,
    상기 제1 및 제2 집합의 데이터 큐에 연결되어, 상기 제1 및 제2 집합의 데이터 큐를 상기 독립 모드에서 병렬로 동작시키고, 상기 결합 모드에서 짝수 어드레스의 데이터를 상기 제1 집합의 데이터 큐를 통하여 라우팅하고 홀수 어드레스의 데이터를 상기 제2 집합의 데이터 큐를 통하여 라우팅하며, 상기 제1 집합의 데이터 큐의 동작을 제어하는 제1 제어기와 상기 제2 집합의 데이터 큐의 동작을 제어하는 제2 제어기를 구비하는 제어기를 포함하고,
    상기 결합 모드 동안 상기 제1 제어기는 상기 제1 및 제2 집합의 데이터 큐 모두를 제어하고 상기 제2 제어기는 디스에이블되는 것을 특징으로 하는 인터페이싱 장치.
  5. 제1 및 제2 버스를 제3 버스에 인터페이스하기 위한 인터페이싱 장치로서, 상기 제1 및 제2 버스가 독립적으로 동작하는 독립 모드 및 상기 제1 및 제2 버스가 결합하여 하나의 버스를 생성하는 결합 모드 중 어느 한 모드로 동작하도록 구성된 상기 인터페이싱 장치에 있어서,
    상기 제1 및 제3 버스 사이에 데이터를 라우팅하기 위한 제1 집합의 데이터 큐와,
    상기 제2 및 제3 버스 사이에 데이터를 라우팅하기 위한 제2 집합의 데이터 큐와,
    상기 제1 및 제2 집합의 데이터 큐에 연결되어, 상기 제1 및 제2 집합의 데이터 큐를 상기 독립 모드에서 병렬로 동작시키며, 상기 결합 모드에서 짝수 어드레스의 데이터를 상기 제1 집합의 데이터 큐를 통하여 라우팅하고 홀수 어드레스의 데이터를 상기 제2 집합의 데이터 큐를 통하여 라우팅하는 제어기와,
    상기 제1 및 제3 버스 사이에 어드레스 및 제어 정보를 라우팅하기 위한 제1 집합의 트랜잭션 큐와,
    상기 제2 및 제3 버스 사이에 어드레스 및 제어 정보를 라우팅하기 위한 제2 집합의 트랜잭션 큐를 포함하고,
    상기 제어기는 상기 제1 및 제2 집합의 트랜잭션 큐에 연결되어, 상기 제1 및 제2 집합의 트랜잭션 큐를 상기 독립 모드에서 병렬로 동작시키며,
    상기 제어기는 상기 결합 모드에서 상기 트랜잭션 큐의 집합들 중 하나의 집합만을 통하여 어드레스 및 제어 정보를 라우팅하는 것인 인터페이싱 장치.
  6. 제5항에 있어서, 상기 결합 모드에서 상기 제2 집합의 트랜잭션 큐가 디스에이블되고, 상기 제어기는 상기 제1 집합의 트랜잭션 큐를 통하여서만 어드레스 및 제어 정보를 라우팅하는 것인 인터페이싱 장치.
  7. 삭제
  8. 제1 및 제2 버스를 제3 버스에 인터페이스하기 위한 인터페이싱 장치로서, 상기 제1 및 제2 버스가 독립적으로 동작하는 독립 모드 및 상기 제1 및 제2 버스가 결합하여 하나의 버스를 생성하는 결합 모드 중 어느 한 모드로 동작하도록 구성된 상기 인터페이싱 장치에 있어서,
    상기 제1 및 제3 버스 사이에 데이터를 라우팅하기 위한 제1 집합의 데이터 큐와,
    상기 제2 및 제3 버스 사이에 데이터를 라우팅하기 위한 제2 집합의 데이터 큐와,
    상기 제1 및 제2 집합의 데이터 큐에 연결되어, 상기 제1 및 제2 집합의 데이터 큐를 상기 독립 모드에서 병렬로 동작시키며, 상기 결합 모드에서 짝수 어드레스의 데이터를 상기 제1 집합의 데이터 큐를 통하여 라우팅하고 홀수 어드레스의 데이터를 상기 제2 집합의 데이터 큐를 통하여 라우팅하는 제어기를 포함하고,
    상기 제1 및 제2 버스는 상기 독립 모드에서 독립적으로 동작하는 제1 및 제2의 32 비트 PCI 버스를 포함하며,
    상기 제1 및 제2의 32 비트 PCI 버스는 상기 결합 모드에서 결합되어 단일 64 비트 PCI 버스를 생성하는 것인 인터페이싱 장치.
  9. 삭제
  10. 컴퓨터 시스템에 있어서,
    호스트 버스에 연결된 호스트 프로세서와,
    상기 호스트 버스에 연결된 브리지 제어기와,
    상기 브리지 제어기 및 적어도 제1 및 제2 외부 버스에 연결되며, 상기 제1 및 제2 외부 버스가 독립적으로 동작하는 독립 모드 및 상기 제1 및 제2 외부 버스가 결합하여 하나의 버스를 생성하는 결합 모드 중 어느 한 모드로 동작하도록 구성된 버스 브리지를 포함하며,
    상기 버스 브리지는,
    상기 제1 외부 버스와 상기 브리지 제어기 사이에 데이터를 라우팅하기 위한 제1 집합의 데이터 큐와,
    상기 제2 외부 버스와 상기 브리지 제어기 사이에 데이터를 라우팅하기 위한 제2 집합의 데이터 큐와,
    상기 제1 및 제2 집합의 데이터 큐에 연결되어, 상기 제1 및 제2 집합의 데이터 큐를 상기 독립 모드에서 병렬로 동작시키며, 상기 결합 모드에서 짝수 어드레스의 데이터를 상기 제1 집합의 데이터 큐를 통하여 라우팅하고 홀수 어드레스의 데이터를 상기 제2 집합의 데이터를 큐를 통하여 라우팅하는 제어기를 포함하는 것인 컴퓨터 시스템.
  11. 삭제
  12. 제10항에 있어서,
    상기 버스 브리지는,
    상기 제1 외부 버스와 상기 브리지 제어기 사이에 어드레스 및 제어 정보를 라우팅하기 위한 제1 집합의 트랜잭션 큐와,
    상기 제2 외부 버스와 상기 브리지 제어기 사이에 어드레스 및 제어 정보를 라우팅하기 위한 제2 집합의 트랜잭션 큐를 더 포함하고,
    상기 제어기는,
    상기 제1 및 제2 집합의 트랜잭션 큐에 연결되어, 상기 제1 및 제2 집합의 트랜잭션 큐를 상기 독립 모드에서 병렬로 동작시키며, 상기 결합 모드에서 상기 트랜잭션 큐의 집합들 중 하나의 집합만을 통하여 어드레스 및 제어 정보를 라우팅하는 것인 컴퓨터 시스템.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 제1 및 제2 외부 버스를 제3 버스에 인터페이스하기 위한 인터페이싱 장치로서, 상기 제1 및 제2 외부 버스가 독립적으로 동작하는 독립 모드 및 상기 제1 및 제2 외부 버스가 결합하여 하나의 버스를 생성하는 결합 모드 중 어느 한 모드로 동작하도록 구성된 상기 인터페이싱 장치에 있어서,
    상기 제1 외부 버스와 상기 제3 버스 사이에 데이터를 라우팅하기 위한 제1 집합의 데이터 큐와,
    상기 제2 외부 버스와 상기 제3 버스 사이에 데이터를 라우팅하기 위한 제2 집합의 데이터 큐와,
    상기 제1 및 제2 집합의 데이터 큐를 상기 독립 모드에서 병렬로 동작시키는 수단과,
    상기 결합 모드에서 짝수 어드레스의 데이터를 상기 제1 집합의 데이터 큐를 통하여 라우팅하고 홀수 어드레스의 데이터를 상기 제2 집합의 데이터 큐를 통하여 라우팅하는 수단과,
    상기 제1 집합의 데이터 큐의 동작을 제어하는 제1 제어기와,
    상기 제2 집합의 데이터 큐의 동작을 제어하는 제2 제어기를 포함하고,
    상기 결합 모드에서 상기 제1 및 제2 제어기 중 하나가 디스에이블되고 나머지 하나가 상기 제1 및 제2 집합의 데이터 큐 모두를 제어하는 것인 인터페이싱 장치.
  17. 삭제
KR1020007008091A 1998-01-26 1999-01-26 이중 모드 버스 브리지를 구비하는 장치 KR100602855B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/013,777 US6134622A (en) 1995-12-27 1998-01-26 Dual mode bus bridge for computer system
US09/013,777 1998-01-26

Publications (2)

Publication Number Publication Date
KR20010034354A KR20010034354A (ko) 2001-04-25
KR100602855B1 true KR100602855B1 (ko) 2006-07-20

Family

ID=21761696

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007008091A KR100602855B1 (ko) 1998-01-26 1999-01-26 이중 모드 버스 브리지를 구비하는 장치

Country Status (5)

Country Link
US (1) US6134622A (ko)
EP (1) EP1057111A4 (ko)
KR (1) KR100602855B1 (ko)
CN (1) CN1209711C (ko)
WO (1) WO1999038082A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301629B1 (en) * 1998-03-03 2001-10-09 Alliance Semiconductor Corporation High speed/low speed interface with prediction cache
US6167476A (en) * 1998-09-24 2000-12-26 Compaq Computer Corporation Apparatus, method and system for accelerated graphics port bus bridges
US6330630B1 (en) * 1999-03-12 2001-12-11 Intel Corporation Computer system having improved data transfer across a bus bridge
US6545683B1 (en) * 1999-04-19 2003-04-08 Microsoft Corporation Apparatus and method for increasing the bandwidth to a graphics subsystem
US6785760B2 (en) 2001-10-19 2004-08-31 International Business Machines Corporation Performance of a PCI-X to infiniband bridge
US7284077B2 (en) * 2003-09-12 2007-10-16 International Business Machines Corporation Peripheral interface system having dedicated communication channels
US7644221B1 (en) * 2005-04-11 2010-01-05 Sun Microsystems, Inc. System interface unit
US20160139806A1 (en) * 2014-11-13 2016-05-19 Cavium, Inc. Independent Ordering Of Independent Transactions
US9569362B2 (en) 2014-11-13 2017-02-14 Cavium, Inc. Programmable ordering and prefetch
US10013385B2 (en) 2014-11-13 2018-07-03 Cavium, Inc. Programmable validation of transaction requests

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590287A (en) * 1990-07-27 1996-12-31 Dell Usa, L.P. Configurable interface for routing data between mismatched devices

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4534011A (en) 1982-02-02 1985-08-06 International Business Machines Corporation Peripheral attachment interface for I/O controller having cycle steal and off-line modes
US5255376A (en) * 1992-01-14 1993-10-19 Sun Microsystems, Inc. Method and apparatus for supporting a dual bit length protocol for data transfers
US5396602A (en) * 1993-05-28 1995-03-07 International Business Machines Corp. Arbitration logic for multiple bus computer system
US5522050A (en) * 1993-05-28 1996-05-28 International Business Machines Corporation Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus
US5450551A (en) * 1993-05-28 1995-09-12 International Business Machines Corporation System direct memory access (DMA) support logic for PCI based computer system
US5499346A (en) * 1993-05-28 1996-03-12 International Business Machines Corporation Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus
US5630099A (en) * 1993-12-10 1997-05-13 Advanced Micro Devices Non-volatile memory array controller capable of controlling memory banks having variable bit widths
US5596725A (en) * 1994-02-14 1997-01-21 Compaq Computer Corporation Fifo queue having replaceable entries
US5548730A (en) * 1994-09-20 1996-08-20 Intel Corporation Intelligent bus bridge for input/output subsystems in a computer system
US5568619A (en) * 1995-01-05 1996-10-22 International Business Machines Corporation Method and apparatus for configuring a bus-to-bus bridge
US5651137A (en) * 1995-04-12 1997-07-22 Intel Corporation Scalable cache attributes for an input/output bus
US5592631A (en) * 1995-05-02 1997-01-07 Apple Computer, Inc. Bus transaction reordering using side-band information signals
US5603051A (en) * 1995-06-06 1997-02-11 Hewlett-Packard Company Input/output processor with a local memory providing shared resources for a plurality of input/output interfaces on an I/O bus
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
US5682484A (en) * 1995-11-20 1997-10-28 Advanced Micro Devices, Inc. System and method for transferring data streams simultaneously on multiple buses in a computer system
KR0157924B1 (ko) * 1995-12-23 1998-12-15 문정환 데이타 전송 시스템 및 그 방법
US5771360A (en) * 1996-10-21 1998-06-23 Advanced Micro Devices, Inc. PCI bus to target integrated circuit interconnect mechanism allowing multiple bus masters and two different protocols on the same bus
DE69721474T2 (de) * 1996-10-31 2004-04-08 Texas Instruments Inc., Dallas Eine konfigurierbare Erweiterungsbussteuereinheit
US5892964A (en) * 1997-06-30 1999-04-06 Compaq Computer Corp. Computer bridge interfaces for accelerated graphics port and peripheral component interconnect devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590287A (en) * 1990-07-27 1996-12-31 Dell Usa, L.P. Configurable interface for routing data between mismatched devices

Also Published As

Publication number Publication date
WO1999038082A1 (en) 1999-07-29
EP1057111A1 (en) 2000-12-06
CN1209711C (zh) 2005-07-06
US6134622A (en) 2000-10-17
EP1057111A4 (en) 2004-08-11
CN1289420A (zh) 2001-03-28
KR20010034354A (ko) 2001-04-25

Similar Documents

Publication Publication Date Title
US6148356A (en) Scalable computer system
US5828865A (en) Dual mode bus bridge for interfacing a host bus and a personal computer interface bus
US5925120A (en) Self-contained high speed repeater/lun converter which controls all SCSI operations between the host SCSI bus and local SCSI bus
US6311245B1 (en) Method for time multiplexing a low-speed and a high-speed bus over shared signal lines of a physical bus
US4961140A (en) Apparatus and method for extending a parallel synchronous data and message bus
US20060004935A1 (en) Multi-protocol bridge
US6886058B2 (en) Transaction partitioning
JPS58134325A (ja) インタフエ−ス
KR100602855B1 (ko) 이중 모드 버스 브리지를 구비하는 장치
EP0855819A1 (en) Network switch stacking mechanism
US20120020365A1 (en) Modular interconnect structure
US6055598A (en) Arrangement and method for allowing sequence-independent command responses across a computer bus bridge
US5566345A (en) SCSI bus capacity expansion controller using gating circuits to arbitrate DMA requests from a plurality of disk drives
US6425041B1 (en) Time-multiplexed multi-speed bus
US7370128B2 (en) Expander device capable of communication protocol translation
KR940002089B1 (ko) 채널 번호 우선 순위 할당 시스템
JPS63275241A (ja) 制御リンク
US7120722B2 (en) Using information provided through tag space
US20030070014A1 (en) Data transfer in host expansion bridge
US5941970A (en) Address/data queuing arrangement and method for providing high data through-put across bus bridge
US7366802B2 (en) Method in a frame based system for reserving a plurality of buffers based on a selected communication protocol
EP0473455B1 (en) Work station having burst mode data transfer
JPS58109960A (ja) デ−タ処理システム
EP1625505B1 (en) Method, apparatus and program storage device for providing status from a host bus adapter
JPH0242556A (ja) バス制御方式

Legal Events

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

Payment date: 20130701

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140701

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150630

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee