KR100419679B1 - 트랜잭션 요청 라우팅 방법 - Google Patents

트랜잭션 요청 라우팅 방법 Download PDF

Info

Publication number
KR100419679B1
KR100419679B1 KR10-2000-0047851A KR20000047851A KR100419679B1 KR 100419679 B1 KR100419679 B1 KR 100419679B1 KR 20000047851 A KR20000047851 A KR 20000047851A KR 100419679 B1 KR100419679 B1 KR 100419679B1
Authority
KR
South Korea
Prior art keywords
pci
node
transaction
buffer
request
Prior art date
Application number
KR10-2000-0047851A
Other languages
English (en)
Other versions
KR20010050125A (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 KR20010050125A publication Critical patent/KR20010050125A/ko
Application granted granted Critical
Publication of KR100419679B1 publication Critical patent/KR100419679B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

주변 구성요소 상호접속(PCI) 브리지/라우터 회로의 복수 노드들을 대응하는 복수의 PCI 버스들에 연결하여 컴퓨터 시스템에서 확장된 수의 PCI 어댑터들이 연결될 수 있게 하는 방법 및 구현 시스템이 제공된다. 비 차단 및 교착 상태가 없는 동작을 가능케 하면서도 PCI시스템 요건에 부합될 수 있는 복수의 진보된 중재기들이 구현된다. 예시적인 PCI-PCI 라우터 (PPR)회로는 그 중재기들 및 PCI어댑터, CPU 및 시스템 메모리 또는 다른 시스템 디바이스들 사이의 라우터 회로를 통과하는 트랜잭션 관련정보를 잠정적으로 저장하는 PPR 버퍼를 포함한다. 브리지 버퍼들간에 내부 요청/완성 트랜잭션 정보전송을 제거하기 위해 버퍼 이름변경 방법이 구현됨으로써 시스템 성능이 증대된다. 버퍼들을 통해 최적의 정보전송 관리가 이루어질 수 있도록 중재기들과 함께 트랜잭션 순서화 규칙이 구현되고, 복수의 PCI버스들 상의 모든 어댑터들의 어드레스싱, 및 어댑터 디바이스들 사이에서 그리고 또한 시스템과 PCI버스들 상의 어댑터 디바이스들 사이에서 효율적인 병렬의 피어-투-피어 및, 입/출력 프로세서(IOP) 정보 전송이 이루어질 수 있도록 라우팅 테이블이 사용된다.

Description

트랜잭션 요청 라우팅 방법{TRANSACTION ROUTING SYSTEM}
본 발명은 전반적으로 정보처리시스템에 관한 것으로, 보다 구체적으로는 컴퓨터 관련 환경에서의 개선된 정보 전송 시스템에 관한 것이다.
컴퓨터 시스템 및 네트워크 컴퓨터 시스템들이 급격히 확산되고 비즈니스업계 및 산업계에 중추적인 많은 정보 처리시스템 내에 통합 되어감에 따라, 보다 빠른 정보처리 및 많은 데이터 처리능력의 요구가 증대되고 있다. 프로세서 기술에서의 상대적인 빠른 기술 진보 및 이에 따른 프로세서 속도의 증대에도 불구하고 보다 빠른 프로세서와 증대된 시스템 속도 및 대역폭에 대한 요구가 여전히 존재하고 있다. 컴퓨터들에 대해 새로운 응용들이 수행됨에 따라, 새로운 프로그램들이 개발되고 있으며, 이들 프로그램들에 날로 새로운 성능들이 부가되고 있다. 그러한 급속한 응용프로그램들의 진전은 매우 바람직하기는 하나 그에 따른 시스템 속도 및 대역폭에 있어서의 성능 저하 문제가 상존하게 된다.
여기에서 쓰이는 용어 "대역폭"은 일반적으로 주어진 시간 주기에서 전송될 수 있는 정보의 양을 나타낸다. 컴퓨터 시스템에서 디바이스들간에 정보를 전송하는데 있어, 정보는 흔히 정보 전송 경로를 따라 "홀딩(holding)" 버퍼들에 임시 저장된다. 그러한 버퍼들은 일반적으로 브리지 회로 연결 디바이스들 또는 버스들(이들 사이에서 그 정보가 전송된다)에 위치되는 브리지 버퍼들을 포함한다. 한 예에서, "PCI(peripheral component interconnect)"시스템 브리지 회로 버퍼들이 PCI "슬롯"에 설치되어 관련 PCI 버스에 결합되는 PCI 디바이스들에 할당된다. 복합 컴퓨터 시스템들은 개별 PCI 버스들 사이에 연결되거나 또는 하나의 PCI 버스를 하나의 시스템 버스에 연결해주는 많은 브리지 회로들을 포함하기도 한다. PCI 시스템에서, 컴퓨터 시스템 확장 디바이스들 또는 어댑터들이 일반적으로 PCI 슬롯 내에 즉, 시스템 마더보드 상에 장착된 보드 커넥터 단자들 내에 장착 또는 삽입되는 하나 이상의 회로 보드에 포함된다.
PCI 디바이스들을 위한 추가의 슬롯들을 제공하기 위한 수단으로서 현재 관련업계에서 표준 PCI-PCI 브리지들이 활용되고 있는데, 이는 개별 PCI 버스들은 33 MHZ에서는 10개의 로드(load)로 그리고 66 MHZ 에서는 5개의 로드로 제한되기 때문이다. (솔더링 타입의 디바이스는 1개의 로드로 그리고 슬롯타입의 디바이스는 2개의 로드로 간주된다). 이는 각 서버 드로어(server drawer)당 복수의 PCI 호스트 브리지 및/또는 복수의 표준 PCI-PCI 브리지들의 조합을 요하는바, 여기서 서버 드로어들은 전형적으로 드로어당 14-16 개의 PCI 슬롯을 수용한다. 표준 부품을 사용하는 경우 전체적인 집적회로(IC) 또는 칩 및 패키징 비용이 비싸지게 된다.
따라서, 컴퓨터 시스템들에 있어 상당수의 주변 어댑터들을 효율적으로 처리할 수 있는 개선된 컴퓨터 시스템에 대한 수요가 증가되고 있다.
따라서, 비차단(non-blocking) PCI 라우터(router)(PCIR) 회로를 포함하는 복수 노드의 PCI-PCI 브리지의 조합을 통해 복수의 PCI 버스들을 관리할 수 있는 방법 및 시스템이 제공된다. 예시적인 실시예로서 2차 PCI 노드들 간에 피어-투-피어(peer-to-peer) 및 IOP 트랜잭션을 지원하기 위한 방법 및 수단과 그리고 트랜잭션 라우팅 테이블을 이용하여 아웃바운드 또는 어웨이 프롬 프로세서(away-from-processor) 트랜잭션을 위한 복수의 어드레스 공간들을 지원하기 위한 수단이 또한 제공된다.
도 1은 본 발명을 구현하는 예시적인 컴퓨터 시스템도.
도 2는 본 발명의 브리지 및 라우터 시스템의 예시적인 실시예에서 이용되는 여러 개의 핵심 부품을 예시하는 개략도.
도 3은 본 발명의 예시적인 동작을 설명하는데 유용한 전체 시스템 개략도.
도 4는 예시적인 PCI-PCI 브리지 회로 내에 있는 버퍼들의 동작을 예시하는 개략도.
도 5는 복수 노드의 PCI-PCI 브리지(PPB)회로에 대한 예시적인 중재수행을 설명하는데 유용한 예시도.
도 6은 예시적인 PPB에서 구현되는 재 순서화(re-ordering)테이블의 예시도.
도 7은 PPB의 예시적인 연사 시퀀스를 예시하는 흐름도.
도 8은 도 7로부터의 흐름도 확장을 보인 도면.
도 9는 도 7로부터의 흐름도 확장을 보인 도면.
도 10은 도 9로부터의 흐름도 확장을 보인 도면.
도 11은 도 10으로부터의 흐름도 확장을 보인 도면.
도 12는 예시적인 PPB에서 구현되는 중재방법의 흐름도를 예시한 도면.
도 13은 도 12를 연속하여 보인 도면.
도 14는 예시적인 PPB에서 구현되는 트랜잭션 라우팅 방법의 상세 예시도.
이제, 첨부 도면을 참조로 하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
여기에서 설명되는 다양한 방법들은 서버, 워크스테이션, 또는 퍼스널 컴퓨터를 포함하는 전형적인 컴퓨터내에서 구현될 수 있다. 일반적으로, 컴퓨터 시스템은 유사한 시스템들의 네트워크 내에서 멀티버스 시스템으로 복수의 프로세서들을 포함할 수 있다. 그러나, 본 발명이 구현되는 워크스테이션 또는 컴퓨터 시스템은 일반적으로 공지되어 있으며 역시 당업자에 공지된 전자부품 또는 회로들로 구성되기 때문에 도시되지 않은 회로들에 대한 상세사항은 본 발명의 근본적인 개념의 이해 및 인식을 위해서 그리고 본 발명의 가르침에 대한 판단을 흐리게 하거나 또는 혼란케 하지 않도록 하기 위해서 그 설명을 필요 이상으로 구체화하지 않았다.
하기에 상세히 설명하는 바와 같이, 개시된 방법은 포스트 메모리 기입 트랜잭션(posted memory write transactions) 및 지연판독 및 지연기입 트랜잭션(delayed read and delayed write transactions)을 효과적으로 활용하는 예시적인 PCI 버스 시스템과 효과적으로 관계한다. PCI 순서화 규칙(ordering rules)은 판독 트랜잭션들이 그들에 앞서 이전의 기입 트랜잭션들을 "푸시(push)"할 것을 요청한다. PCI에 대한 지연 트랜잭션의 경우에, 상기 요청을 초기화(initiate)하는 마스터는 버스로 되돌아가, 트랜잭션이 완성될 때까지 계속해서 초기의 요청을 반복해야만 한다. 개시된 실시예에 있어서, 본 발명이 비록 PCI 컴퓨터 시스템과 관계하여 예시되고 있지만은 본 발명은 또한 확장처리 또는 통신시스템에서 복수의 "홀딩" 또는 "이동 중(in-transit)저장위치들 사이에서 데이터를 전송하는 정보처리 시스템에도 응용 가능하다.
예시된 PCI 시스템에서, 복수의 PCI 버스들 각각은 PCI-PCI 라우터 회로 (이하 "PPR"이라 한다)에 연결되며, PPR은 다시 그 시스템의 다음의 하이레벨 버스에 연결된다. 어떤 시스템에서 각 PCI 버스는 다수의 버스를 가질 수 있다. 그 PCI 버스에 연결된 어댑터들에 대해 허용 가능한 슬롯의 실제 수는 의도하는 동작 주파수 및 동작모드 (PCI 또는 PCIX 모드)에 따라 정해진다. 그 시스템에 있는 각 PPR 회로는 PCI 버스들의 PCI 슬롯에 설치된 대응 할당된 디바이스들에 전송 및 이들로부터의 전송된 정보 뿐만 아니라 그 시스템에 있는 다른 디바이스들에 전송된 정보를 임시로 저장하는데 이용되는 다수의 버퍼들을 포함한다.
예컨대, 도 1에서 예시된 PCI 시스템은 시스템 버스(103)에 연결되는 하나또는 그 이상의 CPU들(101, 105)을 포함한다. 메모리 제어기 (107) 및 메모리 유닛(109)이 또한 시스템버스(103)에 연결된다. 버스(103)는 다른 시스템 디바이스들 및 네트워크들로의 추가의 시스템 연결을 위해 확장(111)된다. 상기 다른 시스템 디바이스들 및 네트워크들은 본 기술분야에 공지된 것으로써 본 발명의 도면 및 상세한 설명에 대한 이해를 흐리게 하거나 혼란스럽게 하지 않도록 하기 위해 이들에 대해 구체적으로 설명하지는 않았다.
시스템 버스(103)는 또한 PCI호스트 브리지(PCB) 회로(113)를 통해 제 1 또는 1차 PCI 버스(115)에 연결된다. 이 시스템은 또한 추가의 PCI 호스트 브리지 회로(도시않됨)를 포함할 수 있다. 1차 PCI 버스(115)는 PPR 회로(117)에 연결되며, 이 PPR회로(117)는 대응 PCI 버스들(121-128)의 복수의 2차 노드에 연결된다. 예시적인 실시예에서는 8개의 PCI 버스들(121-128)이 사용되는 것으로 나타냈지만은 어떤 시스템에서는 그 이상의 버스들이 사용될 수도 있다. 비록 본 발명의 실시예에서는 단지 1개의 PHB(113)이 사용되는 것으로 예시하였지만은 본 발명은 추가의 PHB 및 PPR 회로 뿐만 아니라 확장 PCI버스 배열을 포함하는 다른 구성에도 응용될수 있다.
본 실시예는 프로세서로부터의 PCI I/O 메모리 공간, I/O 공간 및 구성공간으로의 프로세서 로드/저장 동작을 위한 지원, 및 PCI 버스 노드와 I/O-프로세서(IOP) 지원간의 피어-투-피어 트랜잭션을 위한 지원을 포함하고 있다. 1차 버스의 중재기가 PHB(113)에 포함될 수도 있으며, 그럼으로써 PPR(117)은 PPR(117)로부터의 1차 버스(115)로의 액세스를 요청 및 수여하기 위한 1개의 REQ-0/GNT-0 쌍의 신호라인을 갖는다. PPR(117)은 또한 본 예에서의 8개의 2차 노드들 가운데 어느 것이 1차 버스로의 액세스를 획득할 것인지를 결정하기 위해 즉, 1차 REQ-0/GNT-0 쌍을 구동 및 수신하기 위해 PPR의 1차 버스 인터페이스에 대한 내부 중재기를 포함한다. 복수의 노드들 즉, PCI 버스들(1-8)중 하나 이상이 1차 PCI 버스(115)에 대한 계류 트랜잭션을 갖는 경우, 교착상태를 회피하여 PPR(117)의 각 2차 PCI 노드에 의해 1차 버스로의 공정한 액세스를 제공하기 위해 내부 공정성 방법이 수행되는 바, 이에 대해서는 하기에 설명한다. 예컨대, 간단한 라운드 로빈 방법이 구현된다.
프로세서 로드/저장 지원, 피어-투-피어 액세스 및 IOP 지원을 위해서, 다른 PPR 노드들을 타겟으로 하는 다양한 PPR 노드들에 버퍼링되는 계류 트랜잭션은 그 트랜잭션이 타겟으로 하는 각 PPR 노드에 대해 중재를 해야만 한다.
2차 PCI 노드(121-128)의 각각에서의 단일 부착의 PCI 디바이스의 경우, 각 PCI 2차 노드에 대해 내부 중재기가 제공된다. 각 소오스 노드가 각 타겟 노드에 대해 중재를 행하도록 내부 REQ#/GNT# 쌍이 각각의 2차 노드에 제공된다. 노드에 있는 부착된 디바이스가 또한 각각의 PCI 버스에 대해 중재를 행하도록 각각의 2차 PCI 버스에 외부 REQ#/GNT# 쌍이 제공된다. 각 PCI 2차 버스의 각 중재기에 대해 내부 공정성 중재 방법이 수행된다. 본 중재 방법은 다른 노드로부터의 어떠한 내부 요청이 다음에 특정한 2차 PCI 버스에 대한 액세스를 요청하게 될 것인지를 결정하기 위해 라운드 로빈 방식을 이용한다. 또한, 본 방법은 외부적으로 부착된 디바이스가 버스를 요청한때 이 디바이스에 우선권을 부여한다. 예컨대, 내부 요청및 특정노드에서의 그 부착 어댑터가 모두 그 노드에서 PCI 버스를 요청하면 중재기는 그 노드의 외부적으로 부착된 PCI 디바이스와 내부요청 사이에서 중재를 행하게된다. 이러한 식으로, 만일 2차 노드가 노드 "X"에 있는 부착 PCI 디바이스로부터의 트래픽 및 멀티플 피어-투-피어 트래픽과 통신중이며 호스트 트래픽이 타겟노드 "X" 이면, 노드 "X"에 있는 외부적으로 부착된 디바이스는 노드 "X" PCI 버스 대역폭의 대략 50%를 얻게 될 것이며, 반면 피어-투-피어 및 호스트 트래픽 타겟 노드 "X" 는 노드 "X"버스 대역폭의 나머지 50%를 공유할 것이다. 후술하는 바와 같이 내부 라우팅 테이블이 버퍼링된 트랜잭션의 타겟 노드를 결정한다.
2차 PCI 노드의 일부 또는 모두에 있는 복수의 부착된 PCI 디바이스들의 경우에, 복수의 외부적으로 부착된 디바이스들을 갖는 각각의 PCI 2차 노드에 대해 외부 중재기가 제공된다. 이 경우에, PPR 또는 라우터(117)는 PPR이 구동하여 각각 외부 중재기로의 라우팅을 위해 수신하는 2차 REQ#/GNT# 쌍을 제공한다. 이 경우에, 각각의 PPR 2차 노드의 내부 공정성 중재기는 어떤 내부 요청이 특정 노드 PCI 버스를 요청하기 위한 턴(turn)을 얻는지를 결정하여 그 요청을 외부 중재기에 라우팅 한다. 이어서, 외부 중재기는 내부 요청과 그리고 외부적으로 부착된 PCI 디바이스가 그 PCI 버스에서의 그들의 턴을 얻게 되는 때를 결정한다. 내부 및 외부 중재기는 내부 요청들 사이에서 및 각 노드의 PCI 버스를 요청하는 외부 디바이스들 사이에서의 턴을 취하면서 회전해야만 하는바, 그렇지 않으면 교착상태(deadlock)가 발생된다.
표준 PCI-PCI 브리지의 경우에, 외부적으로 부착된 PCI 디바이스들로 부터의요청과 그리고 2차 버스의 사용을 위한 (프로세서로부터 분리된) PCI-PCI 브리지의 자체의 아웃 바운드 요청을 서로 조정(accommodate)하기 위해 단일의 2차 버스 중재기가 요구된다. PCI-PCI 라우터 타입의 결합 브리지/라우터의 경우에, 각 노드에 있는 PCI 버스의 사용을 위한 요청들을 처리하는데 복수의 내부적으로 향상된 중재기들 ("n" 노드들은 "n" 내부 버스 중재기들과 동일함) 이 필요로 되며, 외부적으로 부착된 PCI 디바이스들로 부터의 디바이스 요청, (1차 버스로부터의) 아웃 바운드 호스트 및 피어-투-피어 또는 IOP 노드 요청들을 지원하는 그들 버스에서 어느 외부 중재기들과 공동으로 상호 동작한다.
도 2에서, 라우터의 여러 개의 핵심 구성요소들을 포함하는 예시적인 PPR 회로(117)가 도시되어 있다. 예시된 바와 같이, PPR(117)은 1차 타겟기능 디바이스(201)와 1차 마스터 기능 디바이스(203)를 포함하는데, 이들 모두는 상기 1차 PCI 버스 (115)에 결합된다. 1차 타겟 기능 디바이스(201)는 상기 PPR(117)로 부터의 타겟 목적지 정보를 PPR(117) 내에 위치된 버퍼쌍(205)을 통해 지정된 타겟 디바이스에 전송하는 역할을 한다. 버퍼 쌍(205)으로부터의 출력은 도 2에 개략적으로 보인 라우팅 제어회로 (206)에 전송된다. 예시된 예에서, PPR(117)로부터 1차 PCI 버스(115)에 출력을 제공하기위해 1차 마스터 기능 디바이스(203)가 배열된다. 1차 마스터 디바이스(203)는 또한 라우팅 제어 회로(206)에 연결된다. PPR (117)내의 버퍼 구조(214)는 버퍼쌍(205)과 그리고 PCI 버(121-128)의 슬롯에 연결된 PCI 디바이스들 사이에 및 이들로부터 나오는 정보를 각각 잠정적으로 저장하는 8개의 추가적인 버퍼 (231-138)쌍을 포함한다. 제 1버퍼쌍(205)은 PPR 1차 타겟기능(201)을 라우팅 제어회로(206)에 연결한다. 8개의 나머지 버퍼 쌍(231-238)은 8개의 2차 타겟 기능 디바이스(221-228)의 출력과 라우팅 제어회로(206) 사이에 연결된다. 8개의 2차 타겟 기능 디바이스(221-228)로의 입력들은 각각 8개의 PCI 버스(121-128)들의 각 입력들에 연결된다. 8개의 마스터 기능 디바이스(241-248)는 각각 8개의 PCI 버스들(121-128)과 라우팅 제어회로(206)의 대응 노드들 사이에 연결된다.
도 2에 예시된 바와 같이, 본 실시예는 전체 9개의 노드로 하여 노드당 2개의 버퍼를 포함한다. 본 예에서 이용되는 노드당 버퍼의 수, 전체 노드 수 및 버퍼당 바이트의 수는 설명을 간단히 하기 위해서 정해진 것으로 이들의 수는 실시예에 따라 달라질 수 있다. 후술하는 바와 같이, 노드 "X"는 1차 PCI 버스(115)와의 1차 PCI 노드 연결부를 표시하며, 노드(1-8)는 2차 PCI버스 (121-128)에 연결된 2차 PCI 노드이다. 본 예에서, 1차 노드는 버퍼당 64 바이트를 포함하며, 2차 노드는 버퍼당 512 바이트를 포함한다.
도 3은 PPR 회로의 기능 블록선도이다. 예시된 바와같이, 1차 버스 인터페이스(300)가 1차 타겟 기능 디바이스(301) 및 1차 마스터 기능 디바이스(303) 모두에 연결된다. 마스터 기능 디바이스(303)는 트랜잭션 라우팅 및 버퍼 관리제어 디바이스(305)와 1차 버스 중재기 (309)에 연결된다. 1차 버스 중재기(309)는 1차 버스로의 액세스를 위해 PPR의 2차 측으로부터의 다수의 요청들 중 어느 요청이 소정시간에 허용되는지를 결정하는 기능을 한다, 트랜잭션 라우팅 및 버퍼관리 기능 디바이스(305)는 라우팅 테이블(313), 브리지 상태 제어 입력(311) 및 트랜잭션 순서화 규칙(315)에 따라서 PPR 버퍼(307)를 통한 정보 요청의 라우팅 및 완성을 제어 및관리한다. 본 예에서, 트랜잭션 라우팅 및 버퍼 관리기능 디바이스(305)는 또한 8개의 2차 노드에 연결된다. 제 1 PCI 버스에 연결되는 제 1의 2차 노드(121)는 각각 마스터 및 타겟 기능 디바이스(241, 221)를 통해 버퍼 관리 블럭(305)에 연결된다. 유사하게, 2차 노드들 모두는 관련 마스터 및 타겟 기능 디바이스들을 통해 버퍼 관리 블록(305)에 연결된다. 예컨대, 노드(128)는 관련 마스터 디바이스(248) 및 관련 타겟 디바이스(228)를 통해 관리 블럭(305)에 연결된다. 또한, 2차 노드(121-128) 각각은 관련 중재기(321-328)를 통해 버퍼 블럭(305)에 연결된다. 중재기(321-328)는 다수의 2차 버스들(1-8) 각각으로의 액세스를 위해 복수의 요청들 중 어느 요청이 비-차단 방식으로 소정 시간에 허용되는지를 독립적으로 결정하도록 되어 있다.
동작 예로서, 먼저 PCI 버스 #1의 어댑터로부터 PCI 버스 #8의 어댑터로의 피어-투-피어 요청이 먼저 타겟 기능 디바이스(221)를 통해 노드 #1의 버퍼(307)에 행해진다. (그후, PCI 버스 #1의 어댑터는 버스로의 액세스를 얻게된다). 이후, 노드 #1의 버퍼(307)에 저장된 그 요청은 라우팅 테이블(313) 및 PCI 버스 #8 중재기(328) 및 마스터 기능 디바이스(248)를 통해 PCI 버스 #8의 어댑터 타겟에 라우팅된다.
PCI 표준 2.2(1998년 12월 18일 발표된 PCI 로컬 버스 사양, 개정 2.2)에 부합되는 PCI-PCI 브리지는 지연 트랜잭션을 지원하며, 그럼으로써 포스트 메모리 기입 트랜잭션(PMW) 및 지연 트랜잭션을 위한 브리지를 통해 트랜잭션 버퍼링을 제공한다. 지연 트랜잭션은 지연 판독 요청(DRR), 지연 기입 요청(DWR), 지연 판독 완성(DRC) 및 지연 기입 완성(DWC)을 포함한다. 전형적으로, PCI-PCI 브리지는 프로세서/메모리 콤플렉스를 향한 "인 바운드"경로를 위한 개별적인 버퍼 세트 및 프로세서/메모리 콤플렉스로부터 나오는 "아웃바운드"경로를 위한 개별적인 버퍼 세트가 존재하도록 트랜잭션 버퍼를 조직한다. 인바운드 경로 및 아웃바운드 경로는 상기 열거된 어느 타입의 트랜잭션의 혼합을 포함할 수 있다.
표준 PCI-PCI 브리지에서, 인바운드 경로 및 아웃바운드 경로에 대해 전형적으로 개별적인 트랜잭션 요청 버퍼 및 개별적인 트랜잭션 완성 버퍼들이 존재한다. 인바운드 트랜잭션 버퍼 경로에서의 인바운드 지연 요청이 1차 버스 상에서 완성되면, 그 트랜잭션은 지연 완성으로서 지정되고 아웃바운드 트랜잭션 버퍼경로의 버퍼에 놓여지며, 그런 다음 그 요청을 포함하고 있던 인바운드 버퍼는 다른 요청들을 수신하도록 빈 상태로 된다. 지연 완성이 아웃바운드 트랜잭션 버퍼경로의 버퍼에 남아있으면서 2차 버스상의 초기 마스터(originating master)가 트랜잭션을 재시도 하기를 기다린다. 마찬가지로, 표준 PCI-PCI 브리지에서 아웃바운드 트랜잭션 버퍼에서의 아웃바운드 지연 요청이 2차 버스상에서 완성되면 그 트랜잭션은 지연 완성으로 변환되어 인바운드 트랜잭션 버퍼 경로에 있는 버퍼에 놓이게 되며 그럼으로써 아웃바운드 버퍼가 빈 상태로 되게 한다. 지연 완성은 인바운드 트랜잭션 버퍼 경로에 남아있게 되며, 여기에서 1차 버스상의 초기 마스터가 그 트랜잭션을 재시도 하기를 기다린다. 따라서, 과거에 요청/완성 트랜잭션을 위해서 두 개의 브리지 버퍼가 사용되었으며, 한 방향에서는 완성 정보를 하나의 버퍼에 기입하고 그리고 다른 방향에서는 관련 요청 정보를 다른 버퍼로부터 소거하거나 또는 무효화시키는데 있어 처리 시간이 요구되었다.
도 4는 PPR 회로(401)의 실시예에 포함되는 새로운 버퍼 정의를 예시하는 것이다. PPR(401)은 노드 "X"에서의 1차 인터페이스와 노드 1내지 노드 8의 복수의 2차 노드(405-407)에서의 2차 인터페이스를 각각 포함한다. 본 예에서, 8개의 2차 노드가 8개의 PPR 2차 PCI 버스가 연결되어 있다. 1차 인터페이스는 버퍼 "a" 및 "b"를 포함하는 버퍼 구성(403)을 갖는다. 또한, 2차 노드들 각각은 버퍼 "a" 및 "b"를 포함한다. 도 4에서, "R"은 요청 트랜잭션을 그리고 "C"는 완성 트랜잭션을 표시한다. 본 예에서, "이름변경(renaming)" 프로토콜 또는 방법이 구현되는데, 여기서는 타겟 노드에서의 완성 하에서 노드에 버퍼링된 인바운드(즉, PPR(401)내로의) 지연 요청(즉, 지연 판독 또는 지연기입)트랜잭션이 동일 버퍼에 남아있게 되지만 초기 마스터가(이전에 재시도한)동일 트랜잭션을 반복하기를 기다리는 지연 완성 트랜잭션으로(데이터 및/또는 상태로)갱신되어 이름 변경된다. 초기 마스터가 초기 트랜잭션을 반복하면, 버퍼에 저장된 지연 완성 트랜잭션은 요청 노드에서 완성을 행하며, 그 버퍼는 다른 트랜잭션을 위해 이용될 수 있게 된다. 이러한 방식으로, PPR 멀티-노드 브리지 (401)에 있어 특정 노드의 주어진 버퍼 세트에 대해 그 버퍼들은 다른 노드들중 어떤 노드를 타겟으로 할 수 있는 PPR 내로 인바운드 요청 즉, 인바운드 요청들의 조합과 그리고 반대방향으로 진행하는 아웃바운드 지연 완성을 포함할 수 있다.
따라서, PPR(401)은 표준 PCI-PCI 브리지들과 비교하여 서로 다른 기술의 버퍼 정의를 제공하며 또한 서로 다른 버퍼 관리 프로토콜을 포함한다. 예컨대, PCI표준 2.1 브리지에서, 브리지에 있는 각 세트의 버퍼들은 모두 동일방향으로 진행되는 트랜잭션을 포함한다. 서로 다른 버퍼에 요청 및 완성이 저장된다. 개시된 PPR 또는 라우터 브리지(401)에서, 각 버퍼 세트는 동일 방향으로 진행하는 요청들, 동일 방향으로 진행하는 완성 또는 서로 다른 방향으로 진행하는 요청 및 완성의 혼합을 포함할 수 있다. 이러한 구성으로, 만일 단지 하나의 디바이스가 PPR의 2차 인터페이스 아래에 부착되면 "추가결합(added combining)" ("결합"에 대한 세부 사항은 PCI 표준 2.2 참조바람)이 성취될 수 있는바, 이는 다른 마스터들이 그 결합과 간섭을 하지 않아 추가의 성능을 산출하게 될 것이기 때문이다. 또한, "이름변경" 방법에 따라 지연 요청이 완성 요청으로 변환되는 경우 반대 경로상의 버퍼로 이동되어야할 필요가 없음으로써 보다 간단한 상태 머신 및 보다 효율적인 버퍼 관리가 가능하게 된다.
도 5는 노드 1 중재기(321)를 도시한 것으로, 본 예에서 이 중재기는 8개의 PCI 버스들 중 첫 번째 버스의 슬롯번호(1)에 장착된 어댑터로부터의 요청(REQ#1) 및 수락(GNT#1) 라인들에 연결된다. 도시한 바와 같이, 본 PPR의 예에서 8개의 노드들 각각과 관계하는 한 개의 중재기 회로(321-328)가 존재한다. PPR에서의 각 노드 중재기 회로는 요청들을 중재하여 (1차 노드 및 7개의 다른 2차 노드들을 포함하는) 8개의 노드들로부터 기원하며, 어떤 주어진 PCI 버스의 어댑터들 각각에 대한 내부요청에 수락을 제공하도록 배열되어 있다.
브리지 상태 제어(311) 및 트랜잭션 순서화 규칙(315)은 또한 포스트 메모리 기입(PMW)이 판독 요청을 바이패스 하도록 허용되어야만 하는 PCI 아키텍처 요건을처리한다. 본 예에서, 중재기들은 공정한 라운드 로빈 동작을 수행하고, 양 요청이 슬롯 "Z"의 목적지 즉, 동일 타겟을 가질 때 슬롯 "X"로부터의 PMW이 슬롯 "Y"로부터 판독 요청을 바이패스 하도록 허용되어야 하는 고유 PCI 스위치-순서화 요건을 처리하도록 배열된다. 판독 요청 또는 판독 완성은 이전의 PMW들을 그들 앞으로 "푸시(push)"해야만 하는 것으로 태깅(tagged) 된다. 플러시 요청들은 공정성 방식의 수행으로 중재기(329)에 의해 우선권을 부여받는데, 이는 이들이 그러한 태깅된 판독 트랙잭션에 앞서 완성되어야 하기 때문이다. "플러시 상태" (이는 PMW이 플러시 되도록 하는 인터럽트 계류 또는 판독 완성을 의미함)가 우선화 된다. PMW 플러시는 지연 판독 요청 또는 그 앞으로 PMW를 (PCI 순서화 규칙에 의해) 푸시 하도록 요구됨에 따라 태깅되는 지연 판독 완성에 의해 발생될 수 있다.
전술한 바와 같이, PPR(117)의 브리지 버퍼들은 요청 완성 정보가 제공될 때 그러한 특별한 버퍼를 이름변경 함으로써 동일 버퍼를 이용하여 트랜잭션 관련 정보 요청 및 완성의 잠정적인 저장을 허용한다. 어떠한 노드 버퍼가 요청 및 완성 모두를 위해 이용될 수 있게 하는 개시된 체계를 수행하기 위해, 특정 세트의 순서화 규칙이 또한 수행된다. 이들 순서화 규칙들이 도 6에 나타나 있다. 이 규칙들은 PPR이 PCI 순서화 규칙들을 충족시킬 수 있게 하며, 어떤 노드로부터 어떤 다른 노드의 피어-투-피어 및 IOP 동작을 지원할 수 있게 한다. 도 6에 도시한 테이블은 어떤 소정 모드에서 버퍼 "A" 및 "B"에 상주할 수 있는 트랜잭션의 결합을 예시하며, 또한 만일 다른 트랜잭션 요청이 그 노드에서 수신되는 경우 어떤 동작이 취해지는지 및 버퍼들의 재 순서화가 발생하는지 여부를 예시한다. 여기에서 사용되는"재 순서화"는 한 버퍼에서 후속 트랜잭션이 비록 그 트랜잭션이 다른 버퍼에 먼저 입력(enter)되었다 하더라도 그 노드에 있는 다른 버퍼에서의 트랜잭션에 앞서 시도될 수 있도록 새로운 우선화가 할당되는지 여부를 의미한다.
도 6의 테이블에서, 다음의 약자가 이용되는데, "pre"는 프리페치 가능(prefetchable)을 의미하고 "npre"는 프리페치 불가(non-prefetchable)를 의미하며, "PMW"은 포스트 메모리 기입을 의미하고, "DRR" 은 지연 판독 요청을 의미하며, "DMR" 은 지연기입 요청을 의미하고, "DRC"는 지연 판독 완성을 의미하고, "DWC"는 지연 기입 완성을 의미한다. 도 6의 테이블에서 참조 부호들은 다음의 주석들과 관계하는데, 이 주석들은 테이블의 참조 라인에서 정의된 특정 상황에 관하여 본 실시예에서 수행되는 재 순서화 규칙의 동작을 설명하는데 도움이 된다.
1. 반대방향으로 진행하는 양 동작들이 패스하도록 허용된다. 노드 X로부터 노드 Y로의 PMW이 또한 목적지 노드 Y에서 버퍼링되는 지연 완성을 패스하도록 허용된다.
2. 소오스 버스상에서 먼저 되돌아오는 마스터는 우선적으로 데이터를 취득한다.
3. DDR 또는 DWR이 먼저 수신되고 이어서 적어도 한번 지연 트랜잭션이 시도된 후 목적지 버스에 수신되었으면 예(YES)이며, 버퍼들이 재순서화(PMW을 DRR/DWR 앞으로 이동시킴)가 이루어진다. PMW이 먼저 수신되었으면, 재 순서화가 이루어지지 않는다.
4. 먼저(그러나, DRC-pre 타이머가 종료된 후)버퍼에서 DRC-pre 폐기, 폐기시간은 PMW의 허용을 실속(stall)시킬 수 있으므로 너무 높게 될 수 없다.
5. 노드 Y에서 버퍼링된 노드 X로부터의 DRC는 노드 X에서 사전에 버퍼링된 PMW이(PMW의 목적지에 무관하게) 플러시 될 때까지 노드 Y에서 완성이 허용되지 않는다.
6. 노드 X로부터의 DRC 및 DWC는 교착상태를 방지하기 위해 노드 X로부터 DRR 및 DWR을 패스하도록 허용되어야 한다.
7. 또 다른 가능한 구현은 PMW에서 노드 X를 따라 버퍼들에 있는 다른 노드들의 트랜잭션의 혼합을 허용한다.
8. DDR이 타겟노드에서 아직 시도되지 않은 경우 버퍼를 비우기 위해 이전의 DDR을 폐기할 수 있다. 바람직한 실시예는 프리페치가능한 메모리에 필요로 되는 한 DDR을 폐기하지 않고 DRC를 폐기한다.
실시예에 예시한 바와 같이 노드 당 두개의 버퍼에 있어, 적어도 하나의 버퍼(버퍼 A 또는 버퍼 B로 제한되지 않음)는 포스트 메모리 기입 요청에 의한 사용이 가능해야만 한다. 이는 디바이스가 항상 교착 상태를 회피하기 위해 포스트 메모리 기입 요청을 수락할 수 있어야만 하는 PCI 요건을 충족시키기 위해서이다. PCI 사양 2.2는 일부 PCI 트랜잭션이 교착상태를 회피하기 위해 다른 PCI 트랜잭션을 바이패스 하도록 허용되어야 함을 요구한다. 도 6의 첫번째 두 개의 칼럼에 리스트된 조합들 모두에 대해, 제 3 및 제 4 칼럼에 리스트된 대응 동작들이 비 피어-투-피어 동작 및 또는 피어-투-피어 및 IOP 지원을 위한 요건을 충족시킨다. 또한, 일부 PCI 트랜잭션들은 어댑터들 또는 디바이스 드라이버들이 인터럽트후의데이터 일치를 보장하도록 하기 위해, 다른 PCI 트랜잭션들을 바이패스하는 것이 허용되지 않는다. 제 3 및 제 4 칼럼에 리스트된 동작들은 비 피어-투-피어 및 IOP 지원을 위한 그들 요건을 충족시킨다.
PPR이 정확한 트랜잭션 순서화 및 교착상태가 없이 동작하기 위해 따라야 할 추가적인 PCI 브리지/라우터 순서화 규칙에는 다음 사항들이 포함된다.
(1) 노드 X를 통한 PMW은 노드X를 통해 DRR 및 DWR 을 패스하도록 허용되어야만 하며, 노드는 PMW이 (기입버퍼가 완전히 찬 잠정적인 상태를 제외하고는) 교착상태를 회피할 수 있어야만 한다.
(2) 노드X를 통한 PMW은 노드X 및 목적지 노드에 버퍼링된 DRC 및 DWC를 패스하도록 허용되어야만 하며, 노드는 PMW (기입 버퍼가 완전히 찬 잠정적인 상태를 제외하고는) 교착 상태를 회피할 수 있어야만 한다.
(3) PMW은 PMW를 패스하지 않아야 하며, 노드를 통한 기입은 기입의 목적지 노드들에 무관하게 순서화 된 상태로 되어야만 한다.
(4) DRR은 PMW을 패스하지 않아야 하며, 노드를 통한 판독 요청은 판독 및 기입의 목적지 노드들에 무관하게 기입을 푸시해야만 한다.
(5) DWR은 PMW을 패스하지 않아야 하며, 노드를 통한 기입은 기입의 목적지 노드들에 무관하게 순서화 된 상태로 되어야만 한다.
(6) DRC는 PMW을 패스하지 않아야 하며, 노드 X로부터의 판독 완성은 기입 목적지 노드에 무관하게 노드 X로부터 기입을 풀 해야만 한다.
(7) 노드 X로부터의 DRC 및 DWC는 교착상태를 회피하기 위해 노드 X로부터DRR 및 DWR을 패스하도록 허용되어야만 한다.
(8) 다른 모든 지연 트린잭션들은 서로에 관하여 순서화될 필요가 없으며, 수신된 순서로 처리된다.
(9) 어떤 두개의 노드들간의 트랜잭션들은 비-차단이 되며, 어떤 다른 두개의 노드들 간의 트랜잭션에 관하여 순서화 요건을 갖지 않고 동시에 발생한다.
본 예에서, 도 2 및 도 4에 보인 바와 같이 PPR 내에 노드 당 두개의 버퍼 "A" 및 "B"가 존재한다. 동작에 있어, 정보 트랜잭션들은 PCI에 연결되어 마스터 디바이스로서 동작하는 어댑터 또는 디바이스들에 의해 발생되는 판독 요청 및 기입 요청으로 초기화되며, 목적지 타겟 디바이스로 진행된다. 따라서, 트랜잭션 요청들은 CPU들로부터 PCI 버스에 연결된 타겟 어댑터 디바이스들에 CPU로부터 PCI버스에 연결된 타겟 어댑터 디바이스들에 전송되거나 아니면 마스터 디바이스들로서 동작을 하는 PCI 버스상의 어댑터들로부터 시스템 메모리를 포함하는 시스템 내의 지정된 타겟 디바이스들 및/또는 시스템에 있는 다른 PCI 버스들에 전송된다. 본 예에서, 8개의 서로 다른 2차 PCI 버스들이 예시되어 있으며, 각 PCI 버스들은 PCI 버스의 PCI 슬롯에 연결되는 한 개 이상의 PCI 어댑터들을 가질 수 있다. 트랜잭션 요청들은 마스터 디바이스로서 동작하는 이들 어댑터들 중 어느 하나에 의해 발생되며, 어떤 다른 PCI 버스상의 어떤 다른 어댑터뿐만 아니라 시스템 메모리를 "타겟"으로 한다. PPR(117)의 버퍼들은 요청 정보를 잠정적인 저장으로서 홀딩하며, 지정된 타겟으로의 경로를 따라 다음 스테이션으로의 액세스를 획득한다. 또한, 요청된 정보를 획득한 후, "완성" 정보가 요청 디바이스에 복귀되며, 예컨대 요청 어댑터를 포함하는 PCI 버스로의 액세스가 중재를 통해 획득될 때까지 잠정적으로 홀딩되어, 잠정적으로 저장된 완성 정보가 요청 어댑터로 복귀될 수 있게 된다. 복귀가 (버스가 다른 트랜잭션에서 사용됨으로 인해 PCI 버스로의 액세스가 즉시 이용 가능하지 않은 경우와 같이) 연속적인 프로세스로서 완성될 수 없을 경우, 완성 정보의 리턴은 "지연 완성"으로서 지정되며, 최초의 요청 마스터 디바이스가 오리지날 요청을 재 시도 할 때까지 버퍼들에 홀딩된다.
본 예에서, 노드 또는 경로당 2개의 버퍼가 존재한다. 이러한 구성은 지정된 트랜잭션들이 임의의 조건하에서 초기에 발생된 트랜잭션들을 바이패스할 수 있게 해준다. 트랜잭션이 도달하고 그리고 버퍼 쌍에서 이 버퍼 이용을 위한 요청이 있을 때, (그 트랜잭션은 쌍을 이루는 두 개 중 하나에 저장된다.) 두 버퍼가 비어 있으면 트랜잭션 정보는 각 버퍼에 저장될 수 있다. 도 6의 테이블은 버퍼들의 상태 및 주지된 바에 따라 버퍼쌍에 도착하는 트랙잭션의 타입을 고려한 버퍼 순서화 방법을 예시하는 것이다. 본 테이블은 버퍼들이 주지된 정보를 포함하고 새로운 트랜잭션 요청을 수신한 경우의 버퍼들의 재 순서화를 설명하는 것이다. 두 버퍼가 비어 있으면, 테이블의 첫 번째 라인에 기재된 바와 같이 모든 트랜잭션들이 허용된다. 예컨대, 두 버퍼에 트랜잭션 정보가 채워져 있으면 지연 요청(DR) 및 포스트 메모리 기입(PMW) 과 같이 그러한 도착하는 트랜잭션들이 도 6의 테이블에 설명된 바와 같이 처리된다.
버퍼 재 순서화 방법(즉, 트랜잭션이 먼저 다른 버퍼에 입력되었다 하더라도 그 노드에 있는 다른 버퍼에서의 트랜잭션에 앞서 후속 트랜잭션이 시도될 수 있도록 하기 위해 새로운 버퍼 우선 순위화가 할당되었는지를 결정하는 방법)이 관련 주석 및 규칙을 따라 도 6에 상세히 개시되고 있다. 본 테이블에서의 여러 가지 예의 트랜잭션들이 소정세트의 입력 조건하에서 테이블을 이용하여 PPR 버퍼 재 순서화 동작을 결정하는 방법을 예시하기 위해 상세히 설명된다. 예컨대, 전술한 바와 같이 테이블의 제 1 라인에서 두 버퍼가 비어 있으면, 모든 새로운 명령들이 허용되며, 버퍼들에 대한 재순서화는 이용가능하지 않게 된다(N.A). 라인 4에서, 버퍼 B가 프리페치 불가(non-prefetchable) 지연 판독 완성 정보(DRC-NPRE)를 포함하고 버퍼 A가 비어있으면, 단지 포스트 메모리 기입 (PMW) 트랜잭션만이 허용되고 모든 다른 것들은 (상기 PCI 사양에서 정의된 바와 같이) 재 시도(RETRY)로 처리된다. 레코더 버퍼칼럼에서 참조 번호 "5"는 노드 Y에서 버퍼링된 노드 X로부터의 지연 판독 완성이 PMW의 목적지에 관계없이 노드 X에서 사전에 버퍼링된 PMW이 플러시 또는 제거될 때까지 노드 Y에서 완성하도록 허용되지 않음을 설명한다. 도 6의 테이블에서 참조번호 "6"은 노드 X로부터의 DRC 및 DWC가 교착상태를 회피하기 위해 노드 X로부터 DDR 및 DWR를 패스하도록 허용되어야만함을 설명한다. 테이블의 8번째 라인에서, 두 버퍼에 포스트 메모리 기입(PMW)정보가 로딩되고 이어서 새로운 요청이 시도 되면, 재시도가 수행되고 재 순서화는 이루어지지 않게 된다. 라인 12에서, 버퍼 A가 PMW을 포함하고 버퍼 B가 DRR을 포함하면, 새로운 요청이 시도되고 이어서 재 시도가 수행된다. 라인 12에서 참조부호 "3"은 (버퍼들이 재순서화 되는)"예"를 표시하는 것으로, 만일 DDR 또는 DWR이 먼저, 그 다음 지연 트랜잭션이 적어도 한번 시도된 후 목적지 버스상에서 수신되면, 버퍼의 재순서화가 이루어진다. 즉, PMW이 DRR/DWR 앞으로 이동한다. 만일 PMW이 먼저 수신되었으면 재 순서화가 불필요하다. 도 6의 표 및 여기에 제시된 대응 주석을 참조함으로써 PPR 버퍼 재 순서화 방법이 상기 설명된 PPR 입력 조건들에 관계하여 충분히 개시된다.
8개의 2차 PLI 버스들상의 어댑터들로, 이들로부터 및 이들 사이에서의 트랜잭션들이 PPR(117)을 통해 관리된다. PCI 버스들 상의 피어 PCI 디바이스들간의 피어-투-피어 트랜잭션을 지원하고 또한 2차 PCI 노드들과 아웃바운드 또는 어웨이 프롬 프로세서/메모리 트랜잭션을 위한 복수의 어드레스 공간들 간의 IOP 트랜잭션을 지원하기 위해, 도 3의 라우팅 테이블과 같은 라우팅 테이블이 제공된다. 각 노드에서 어떤 노드로부터 어떤 다른 노드로 PPR(117)을 입력하는 트랜잭션의 목적지를 결정하는 한 세트의 라우팅 테이블이 제공된다. 각 노드에서 이 라우팅 테이블은 어드레스, 길이 및 타겟 노드에 대한 복수의 엔트리를 포함한다. 만일 PPR이 1차 노드를 포함하여 총 "n"개의 노드를 갖게되면, 각 노드의 각 라우팅 테이블은 각 어드레스 공간에 대해 (n-1)개의 테이블 엔트리를 포함하게된다. 예시된 실시예에서, 총 9개의 엔트리가 존재하므로, 각 어드레스 공간에 대해 테이블 엔트리는 총 8개가 된다.
예시적인 동작에서, PCI 버스 #1상의 제 1어댑터로부터의 판독요청은 제1 어댑터가 PCI버스 #1로의 액세스를 획득한 후 PCI 버스 #8에 부착된 2차 어댑터로의 액세스를 시도한다. 만일 노드 1에서 버퍼(307)가 이용 가능하면, 그 요청은 허용되어 버퍼(307)에 잠정적으로 저장된다. 노드 #1에서의 라우팅 테이블(313)은 판독요청의 어드레스에 근거하여 그 요청이 노드 #8 (PCI 버스 #8)의 어댑터를 목적지로 하고있는 것으로 결정한다. PCI 버스 #8의 중재기(328)는 중재기의 공정성 방법에 의해 PCI 버스 #8을 노드 #1로부터의 버퍼(307)에 버퍼링된 "내부" 판독 요청에 허여 하게 될 것이다. 이어서, 버스 인터페이스(128)에 있는 트랜잭션 라우팅 및 버퍼 관리 디바이스(305) 및 마스터 기능 디바이스(248)를 통해 PCI 버스 #8에서 판독요청이 시도 될 것이다.
피어-투-피어 및 IOP 지원이 없는 경우, 인바운드 트랜잭션 (투워드(toward) 시스템 프로세서/메모리) 에 대해 라우팅 테이블이 불필요한 바, 이는 모든 인바운드 트랜잭션들이 그 시스템 프로세서/메모리 콤플렉스로 진행 될 것으로 여겨지기 때문이다. 그러나, 개시된 시스템에서, 트랜잭션들은 "피어-투-피어"를 따르거나 아니면 예컨대 시스템을 통해 라우팅 됨이 없이 서로 다른 PCI 버스들상의 어댑터들 사이에서 직접 수행될 수 있다. 도 3에 보인바와같이, 각 노드에 독립적인 중재기(321-328) 및 라우팅 테이블(313)을 제공함으로써 PPR(117)은 노드들 사이에서 비-차단 트랜잭션의 동시적인 수행을 허용할 수 있다. 예컨대, PPR(117)을 통해 노드 1과 2사이에 진행되는 트랜잭션은 PPR(117)을 통해 노드 3과 노드4 사이에서 수행되는 트랜잭션들로부터 독립적이며, 그러므로 동시적이며 비-차단 방식으로 발생할 수 있으며 그럼으로써 표준 PCI-PCI 브리지의 경우에서보다 높은 피크 성능 및 높은 처리능력을 제공한다.
이제 도7에서, PPR(117)의 예시적인 동작 방법이 기술된다. 새로운 트랜잭션 요청이 수신되면(701), 버퍼 이용을 위한 새로운 디바이스 요청이 있는지 여부에 관한 판정이 이루어진다(703). 복귀 포인트 "A"는 또한 본 방법에서 다른 포인트로부터 흐름으로 본 포인트에 들어간다(700). 만일 버퍼이용을 위한 요청이 있으면, 두 개의 버퍼가 비어 있는지 여부를 결정하는 체크가 이루어진다(707). 만일 두 개의 버퍼가 비어있으면, 버퍼들이 후속 우선화에 있어 참조를 위한 버퍼 쌍 내로 그의 상대적인 엔트리 시간을 지시하는 버퍼들 중 하나에 새로운 트랜잭션이 저장된다(709). 그 저장된 트랜잭션은 "퍼스트 업(first-up)"으로서 표기되며(711), 이는 두 개의 버퍼 세트로부터 추가로 처리 될 다음 트랜잭션이 될 것임을 의미한다. 이 버퍼는 "이용 불가" 한 것으로 표기될 것이며(713), 그 프로세서는 포인트A(700)로 복귀 되어(700), 버퍼 이용을 위한 다음 디바이스 요청을 기다린다(703).
두 개의 버퍼가 비어있지 않은 것으로 판정되면(707), 단지 하나의 버퍼가 비어있는지를 결정하기 위한 체크가 이루어진다(715). 단지 하나의 버퍼만 비어 있으면(715), 그 버퍼가 PMW 또는 DRC-PRE를 포함하는지 여부를 결정하고(719), 만일 포함하고 있으면 새로운 트랜잭션이 비어있는 버퍼 내로 허용된다(721). 이어서, 만일 다른 버퍼가 마스터 트랜잭션을 포함하고 있으면 트랜잭션은 "세컨드-업(second-up)"으로 표기되고 다른 버퍼가 지연 완성을 포함하고 있으면 "퍼스트-업"으로 표기된다(723). 그 다음, 버퍼는 "이용불가"로서 표기되고(725), 프로세스는 포인트 A(700)로 복귀된다. 단지 하나의 버퍼가 비어 있고(715), 채워진 버퍼가 PMW 또는 DRC-PRE를 포함하고 있지 않은 것으로(719) 결정되면, 새로운 트랜잭션이 PMW 인지 여부를 결정하기 위한 체크가 이루어진다(727). 만일 PMW이면 새로운 PMW은 비어있는 버퍼에 저장되고, 트랜잭션은 "퍼스트-업"으로서 표기된다(731). 이어서 버퍼는 "이용불가"로서 표기되고(733), 프로세스는 포인트A(700)로 복귀된다. 만일 새로운 트랜잭션이 PMW이 아니면(727), 재 시도가 수행되고(729) 프로세스는 포인트 A(700)로 복귀한다. 블럭(715)에서, 비어있는 버퍼가 없는 것으로 결정되면, 프로세스는 도 8의 포인트 A1(717) 으로 계속 진행된다. 블럭(3)에서 버퍼의 사용 요청이 없으면 프로세스는 포인트 B로 이동하여(705) 도 9에서 계속된다.
도 8에서 포인트 A1(717)으로부터 새로운 트랜잭션이 PMW 인지 여부를 결정하기 위한 체크가 이루어진다(801). 만일 그러하면, 그 버퍼들중 하나가 DCR-PRE를 포함하는지 여부를 결정하기 위한 체크가 이루어진다(803). 만일 그러하면, DCR-PRE 폐기 시간이 종료되었는지 체크가 이루어진다(805). 폐기시간은 지연 판독완성(DRC)들이 단지 소정의 시간 량으로 만 유지되는 사실과 관계하며, 만일 이들이 그 시간동안 요청 마스터에 의해 요구되지 않으면 DRC는 폐기될 수 있고 마스터 디바이스에 의해 다시 요청되어야 한다. 만일 DRC 폐기 시간이 종료되었으면(805), 그 DRC-PRE는 새로운 PMW로 대체된다(809). 이어서 PMW은 다른 트랜잭션이 요청인 경우는 세컨드-업으로서 표기되고 다른 트랜잭션이 완성이면 퍼스트-업으로서 표기된다(811). 이어서, 프로세스는 포인트A(700)로 복귀한다. 만일 새로운 트랜잭션이 PMW이 아니거나 (801) 혹은 버퍼들 중 하나가 DRC-PRE을 포함하고 있지 않거나(803) 또는 DRC-PRE 폐기 시간이 종료되지 않았으면(805) 재 시도가 수행되고(807) 프로세스는 포인트A(700)로 복귀한다.
도 9에서, 도 7의 흐름도가 포인트 B(705)에서 시작되어 계속된다. 디바이스 요청이 버퍼링된 DWC용인 것인지에 대한 결정이 이루어지고(901), 만일 그러하면DWCRK 허용되었음을 표시하기위한 메시지가 제공되고(903), 버퍼는 이용 가능한 것으로 표기되고(905) 프로세스는 포인트A(700)으로 복귀된다. 만일 디바이스 요청이 버퍼링된 DWC 용이 아니면(901), 그 디바이스 요청이 버퍼링된 DRC 용인지 여부에 대한 결정이 이루어진다(907). 만일 요청이 버퍼링된 DRC용이면(907), DRC가 DRC 데이터가 나오는 노드(N)에서 버퍼링된 이전의 PMW을 풀링하는 것으로 표기되는지 여부를 결정하기 위한 체크가 이루어진다(909). 이는 DRC가 PMW을 바이패스 하는 것이 허용되지 않는 PCI 순서화 규칙을 만족한다. 만일 DRC가 그렇게 표기되면(909) 현재의 DRC 앞에 있으며 완성된 것으로 표기된 노드(N)에 PMW이 있는지 여부를 결정하기 위한 체크가 이루어진다(915). 만일 그렇지 않으면, 재 시도가 수행되고(917), 프로세스는 포인트A(700)로 복귀된다. DCR에 앞서서 표기되고 완성된 PMW이 있거나(915) 또는 DRC가 이전의 PMW을 풀링하는 것으로 표기되지 않았으면(909), 판독 완성 데이터가 요청 마스터(911)에 제공되고 버퍼는 이용 가능한 것으로 표기되고(913), 프로세스가 포인트(A)(700)로 복귀된다. 만일 디바이스 요청이 버퍼링된 DRC용이 아닌 것으로 결정되면(907) 프로세스는 포인트 C(919)로 계속 진행된다.
도 10에 보인 바와같이, 포인트 C(919)로부터, 버퍼(921)에 계류중인 마스터 트랜잭션이 존재하는지를 결정하기 위한 체크가 이루어지며, 만일 존재하면 다른 버퍼가 비어있는지에 관한 결정이 이루어진다(923). 버퍼에서 계류중인 마스터 트랜잭션이 없으면(921), 프로세스는 포인트A(700)으로 복귀된다. 계류중인 마스터 트랜잭션이 있지만은 버퍼 쌍의 다른 버퍼가 비어있지 않으면(923), 프로세스는 포인트 D(939)로 계속 진행된다. 그러나, 만일 다른 버퍼가 비어있으면(923), 적절한 버스를 사용하기 위한 요청이 이루어진다(925). 만일 버스 이용을 위한 중재가 획득되면(927), 트랜잭션이 완성되었는지 여부를 결정하기 위한 체크가 만들어지며(929), 만일 완성되었으면 트랜잭션이 PMW이었는지에 관한 결정이 만들어진다(931). 만일 트랜잭션이 PMW이었으면(931), 버퍼는 이용 가능한 것으로 표기되고(933), 프로세스는 포인트A(700)로 복귀된다. 만일 버스 이용에 대한 버스 중재가 획득되지 않고(927) 또한 트랜잭션이 완성되지 않았으면(929), 프로세스는 또한 포인트 A(700)로 복귀된다. 그러나, 만일 트랜잭션은 완성되었으나(929), 그 트랜잭션이 PMW(931)이 아니었으면 지연 요청이 지연 완성으로 변환되어 동일 버퍼에 저장된다(935). 이 버퍼는 마스터를 포함하는 것으로부터 타겟 트랜잭션을 포함하는 것으로 이름 변경되고(937), 그 프로세스는 포인트A(700)로 복귀된다.
도 11에서 본 방법이 포인트 D(939)에서 계속 시작된다. "퍼스트-업" 마스터 트랜잭션이 PMW인지를 결정하기 위한 체크가 이루어진다(941). 만일 PMW이면 적절한 버스의 이용이 요청된다(953). 만일 그 이용이 획득되지 않으면(955), 프로세스는 포인트 A(700)로 복귀된다. 그러나, 버스의 이용이 획득되면(955), PMW이 완전히 완성되었는지를 결정하기 위한 체크가 이루어진다(957). 만일 그렇지 않으면 프로세스는 포인트A(700)로 복귀된다. 그러나, PMW이 완전히 완성되었으면(957), 버퍼는 이용 가능한 것으로 표기되고(959) 그리고 버퍼쌍에 있는 다른 버퍼가 요청을 포함하는지 여부에 관한 결정이 이루어진다(961). 만일 포함하고 있지 않으면, 프로세스는 포인트A(700)로 복귀된다. 그러나 다른 버퍼가 요청을 포함하지않으면(961), 그 요청은 "퍼스트-업" 으로서 마크되고(963) 프로세스는 포인트A(700)로 복귀된다. 요청을 포함하지 않으면(961), 요청은 "퍼스트-업"으로서 표기되고(963) 프로세스는 포인트 A(700)로 복귀된다.
퍼스트-업 마스터 트랜잭션이 PMW이 아닌 것으로 결정되면 (941), 적절한 버스를 사용하기 위한 요청이 행해진다.(943) 만일 버스이용이 획득되지 않으면(945), 프로세스는 포인트A(700)로 복귀된다. 그러나, 버스이용 중재가 획득되면(945), 지연 요청이 완성되었는지를 결정하기 위한 체크가 이루어지며(947), 만일 그러하면 지연 요청이 지연완성으로 변환되어 동일 버퍼에 저장된다.(965) 이어서, 버퍼는 마스터 트랜잭션의 포함을 표시하는 이름으로 이름 변경되고(967) 버퍼 쌍에 있는 다른 버퍼가 요청을 포함하는지를 결정하기 위한 체크가 이루어진다(969). 만일 요청을 포함하고 있지 않으면, 프로세스는 포인트A(700)로 복귀된다. 만일 다른 버퍼가 요청(969)을 포함하면, 다른 요청은 퍼스트-업으로서 표기되고(971) 프로세스는 포인트A(700)로 복귀된다. 만일 지연 요청이 완성되지 않으면(947), 다른 버퍼가 다른요청을 포함하는지 여부에 관한 결정이 행해진다(949). 만일 포함하고 있지 않으면, 프로세스는 포인트A(700)로 복귀된다. 그러나 만일 다른 버퍼가 다른 요청을 포함하면(949), 다른 요청은 퍼스트-업으로 표기되고 이 지연 요청은 세컨드-업으로 표기된다(951). 이어서, 프로세스는 포인트A(700)로 복귀된다.
도 12에서, 중재 방법이 시작되고(973), 어떤 요청이 슬롯N에 계류중 인지에 대한 결정을 행한다(974). 만일 요청이 계류중인 것으로 결정되면, 슬롯N에 계류중인 어떤 PMW 플러시 요청이 있는지에 대한 체크가 행해진다(975). 만일 계류중인 PMW 플러시 요청이 없으면, 슬롯N에 대해 계류중인 어떤 다른 요청들이 있는지를 결정하기 위한 체크가 행해지며, 만일 다른 요청들이 없으면 프로세스는 다음 슬롯에 있는 계류요청에 대한 체크로 복귀된다. 만일 다른 요청들이 계류중이면(976), 중재방법은 어떤 요청이 다음에 진행되는지 결정한다(997). 다음, 중재가 행해지며, 적절한 버스가 획득되면 PMW 플러시 또는 다른 동작이 시도된다. 동작이 완성되었는지를 결정하기 위한 체크가 행해지며(979), 만일 그러하면 트랜잭션 우선 순위가 갱신되고(980), 프로세스는 다른 계류중인 요청에 대한 체크로 복귀된다(974). "우선순위 갱신" 블럭은 또한 후술하는 바와 같이 도 13에서 포인트"Q"로부터 복귀 플로우를 수신한다(981). 만일 동작이 완성되지 않고 재 시도가 있으면(979), 동작이 PMW플러시이었는지 여부를 결정하기 위한 체크가 행해진다(982). 만일 그러하면, 프로세스는 버스에 대한 중재를 행하기 위한 단계(978)로 복귀되어 PMW 플러시를 재 시도한다. 만일 동작이 PMW 플러시가 아니었으면(982), 그 동작이 낮은 우선 순위 PMW(983)이었는지 여부를 결정하기 위한 체크가 만들어지며, 만일 그러하면 프로세스는 단계(978)로 복귀된다. 만일 동작이 낮은 우선 순위 PMW이 아니었으면 (983), 지연 요청에 대한 소오스 슬롯이 결정되고(984) 그리고 프로세스는 도 13의 포인트"R"로 진행된다(985).
도 13에서, 포인트 "R"(985)로부터, 중재 프로세스는 슬롯X로부터 슬롯N에 계류하는 어떤 PMW이 있는지를 결정하기 위해 체크를 수행한다. 만일 그러하면, 슬롯X로부터의 PMW은 최고의 우선권을 부여받으며(987), 버스N이 얻어지고 슬롯X로부터 PMW이 시도된다(988). 이어서, 동작이 완성되었는지 여부를 결정하기 위한 체크가 이루어지며(989), 만일 완성되었으면 프로세스는 슬롯X로부터 오리지날 DR로 복귀하며, 버스N을 얻고 슬롯X로부터 DR을 시도한다(990). 만일 동작이 완성되지 않았으면(989), 버퍼는 오리지날 DR(990)로 복귀되기에 앞서 슬롯X에서 DR트랜잭션으로 재순서화 된다. 동작이 완성되었는지 여부를 결정하기 위한 체크가 행해지며 (992), 만일 완성되었으면 프로세스는 포인트 Q로 복귀되며, 도 12에 보인 바와 같이 우선 순위들의 갱신이 수행된다(981). 만일 프로세스가 완성되지 않았으면(992), 본 방법은 슬롯X로부터 슬롯N으로의 어떤 계류중인 PMW에 대한 체크를 위해 복귀된다. 만일 슬롯X로부터 슬롯 N으로 계류중인 PMW이 없으면, 어떤 다른 슬롯으로부터 슬롯N으로 계류중인 어떤 PMW이 있는지 여부를 결정하기 위한 체크가 행해지며(993), 만일 계류중인 어떤 PMW이 없으면, 프로세스는 직접 블록(990)으로 진행된다. 어떤 다른 슬롯으로부터 슬롯N으로 계류하는 PMW이 있으면 공정성 방법은 어떤 요청이 (예컨대 슬롯Y로부터)다음으로 진행하는지를 결정하고(594), 버스N을 얻으며 슬롯Y로부터 PMW을 시도한다(995). 만일 동작이 완성되지 않으면(996), PMW 트랜잭션은 슬롯X로부터 오리지날 DR로 복귀하여 버스N을 얻고 슬롯X로부터 DR을 시도하기 위해 블록(990)으로 이동하기 전 시도는 되었으나 완성되지 않은 것으로 표기된다(997).
도 14는 라우팅테이블 방법의 예시적인 구현을 위한 흐름도를 보인 것이다. 소정 노드에서 동작이 PPR에 수신되면, 이 방법(151)은 먼저 요청타입, I/O또는 메모리를 결정한다(151). 다음, I/O또는 메모리 요청들의 베이스 제한 어드레스 범위가 적용가능한지 체크된다(155, 163). 만일 어떠한 적중(hit)도 없으면, 브리지는 선택되지 않고 (디바이스 #와 응답하지 않음), 그러므로 어댑터에 의해 마스터 포기 기능이 실행되며(161), 그 프로세스는 다음의 수신 동작에 대한 체크를 위해 복귀된다(153). 만일 I/O 동작에 의해 8개의 베이스/제한 I/O 어드레스 범위 중의 하나에서 적중이 존재하면, 그 어드레스는 타겟 노드를 확인하는 라우팅 테이블 내의 유효 어드레스 범위 내에 놓이며 그 동작은 라우팅 테이블을 이동하여 적절한 노드로 진행되고(157), 동작이 수행되고(159), 다음 수신된 동작에 대한 체크를 위해 복귀된다(153). 만일 메모리 동작에 의해 16개의 베이스제한 메모리 어드레스 범위 중의 하나에서 적중이 존재하면(163), 액세스의 어드레스는 라우팅 테이블에서 유효 어드레스이며, 이 동작은 테이블로 표시된 적절한 노드(165)로 진행되며 그 프로세스는 요청된 동작이 판독 동작인지 기입 동작인지의 여부에 따라 계속된다. 메모리 기입 동작에 있어 새로운 메모리 기입이 이전의 버퍼링된 기입과 연속하는지에 따라 포스트 기입이 이전의 기입과 결합될 수 있는지가 결정된다(167). 이어서, 기입 동작이 적용 가능한 경우 결합 동작과 함께 수행되며(168), 다른 동작을 위한 요청 수신에 대한 체크를 위해 복귀된다(153). 메모리 판독 동작에 있어, 요청이 "판독", "판독 라인"또는 "판독 멀티플" 동작인지 결정되고 다음 동작 요청에 대한 체크를 위해 프로세스가 복귀 되기 전(153), 특정 타입의 판독 동작이 수행된다(171). 이러한 방식으로, PPR에 대한 트랜잭션 라우팅이 이루어지도록 라우팅 테이블이 구현된다.
본 발명의 방법 및 장치는 전술한 바와 같이 바람직한 실시예와 관계하여 기술되었다. 기술된 방법은 여기에 예시된 원하는 결과를 달성하기 위한 광범위한 시퀀스로 구현될 수 있다. 비록 본 발명의 실시예는 그에 대한 일부 변형에 관하여 상세히 기술되었지만 본 발명의 개시가 반영된 많은 다양한 다른 실시예들이 당업자에게 쉽게 착안될 수 있을 것이며, 프로세서나 CPU 또는 다른 시스템 집적회로 또는 칩에 포함 또는 집적될 수 있다. 개시된 방법은 또한 전술한 바와 같은 장점 적인 결과를 달성할 수 있는 디스크 또는 (휴대형 또는 고정형) 디스켓에 저장된 프로그램 코드에서 전체적으로 또는 부분적으로 구현될 수 있다. 따라서, 본 발명은 여기에 제시된 특정 예에만 국한되도록 의도된 것이 아니며 본 발명의 정신 및 범주 내에 포함될 수 있는 그러한 대체, 변형 및 등가물들을 포괄하도록 의도된다.
본 발명에 의하면 비차단 PCI 라우터(PCIR) 회로를 포함하는 복수 노드의 PCI-PCI 브리지의 조합을 통해 복수의 PCI 버스들을 관리할 수 있는 방법 및 시스템이 제공되며, 또한 2차 PCI 노드들 간에 피어-투-피어 및 IOP 트랜잭션을 지원하기 위한 방법 및 수단과 그리고 트랜잭션 라우팅 테이블을 이용하여 아웃바운드 또는 어웨이 프롬 프로세서 트랜잭션을 위한 복수의 어드레스 공간들을 지원하기 위한 수단이 제공된다.

Claims (12)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 트랜잭션 요청을 브리지 회로의 다수의 2차 노드들 중 하나에 결합된 I/O 디바이스로부터 상기 브리지 회로의 1차 노드 또는 상기 브리지 회로의 다른 2차 노드에, 그리고 상기 브리지 회로의 상기 1차 노드로부터 상기 브리지 회로의 상기 2차 노드들 중의 적절한 하나에 라우팅하는 방법에 있어서,
    상기 트랜잭션 요청의 타입을 결정하는 단계와,
    상기 트랜잭션 요청과 관련된 목적지 어드레스를 결정하는 단계와,
    상기 트랜잭션 요청에 대한 상기 결정된 목적지 어드레스에 대응하는 적절한 노드를 결정하는 단계―상기 트랜잭션 요청에 대한 상기 결정된 목적지 어드레스에 대응하는 상기 적절한 노드를 결정하는 단계는 상기 브리지 회로의 상기 2차 노드에 결합된 상기 I/O 디바이스들에 대한 I/O 베이스 어드레스 범위 및 상기 브리지 회로의 상기 1차 노드에 결합된 디바이스들에 대한 메모리 베이스 어드레스 범위를 포함하는 일련의 라우팅 테이블을 참조하고, 그리고 상기 트랜잭션 요청 내에 포함된 어드레스를 상기 라우팅 테이블에 포함된 어드레스 범위들과 비교함으로써 달성됨―와,
    상기 결정된 목적지 어드레스가 상기 라우팅 테이블의 상기 1차 노드에 할당된 어드레스들의 범위 내에 있을 때 상기 트랜잭션 요청을 상기 1차 노드에 전송하는 단계를 포함하는
    트랜잭션 요청 라우팅 방법.
  5. 트랜잭션 요청을 브리지 회로의 다수의 2차 노드들 중 하나에 결합된 I/O 디바이스로부터 상기 브리지 회로의 1차 노드 또는 상기 브리지 회로의 다른 2차 노드에, 그리고 상기 브리지 회로의 상기 1차 노드로부터 상기 브리지 회로의 상기 2차 노드들 중의 적절한 하나에 라우팅하는 방법에 있어서,
    상기 트랜잭션 요청의 타입을 결정하는 단계와,
    상기 트랜잭션 요청과 관련된 목적지 어드레스를 결정하는 단계와,
    상기 트랜잭션 요청에 대한 상기 결정된 목적지 어드레스에 대응하는 적절한 노드를 결정하는 단계―상기 트랜잭션 요청에 대한 상기 결정된 목적지 어드레스에 대응하는 상기 적절한 노드를 결정하는 단계는 상기 브리지 회로의 상기 2차 노드에 결합된 상기 I/O 디바이스들에 대한 I/O 베이스 어드레스 범위 및 상기 브리지 회로의 상기 1차 노드에 결합된 디바이스들에 대한 메모리 베이스 어드레스 범위를 포함하는 일련의 라우팅 테이블을 참조하고, 그리고 상기 트랜잭션 요청 내에 포함된 어드레스를 상기 라우팅 테이블에 포함된 어드레스 범위들과 비교함으로써 달성됨―와,
    상기 결정된 목적지 어드레스가 상기 라우팅 테이블의 2차 노드들에 할당된 어드레스들의 범위 내에 있을 때 상기 트랜잭션 요청을 상기 2차 노드에 전송하는 단계를 포함하는
    트랜잭션 요청 라우팅 방법.
  6. 삭제
  7. 제 5 항에 있어서,
    상기 목적지 어드레스가 상기 2차 노드들에 대응하는 8개의 I/O 베이스 제한 어드레스 범위 중의 하나 내에 있는 경우 상기 트랜잭션 요청을 수행하는 단계를 더 포함하는 트랜잭션 요청 라우팅 방법.
  8. 제 4 항에 있어서,
    상기 목적지 어드레스가 16개의 메모리 베이스 제한 어드레스 범위 중의 하나 내에 있는지 여부를 결정하는 단계를 더 포함하는 트랜잭션 요청 라우팅 방법.
  9. 제 8 항에 있어서,
    상기 목적지 어드레스가 상기 메모리 베이스 제한 어드레스 범위 내에 있지 않은 경우 상기 트랜잭션 요청을 중지하는 단계를 더 포함하는 트랜잭션 요청 라우팅 방법.
  10. 제 8 항에 있어서,
    상기 목적지 어드레스가 상기 메모리 베이스 제한 어드레스 범위 내에 있는 경우 상기 요청된 트랜잭션이 판독 동작인지 아니면 기입 동작 인지를 결정하는 트랜잭션 요청 라우팅 방법.
  11. 제 10 항에 있어서,
    상기 요청된 트랜잭션이 상기 기입 동작을 위한 것인 경우, 포스트 기입(posted write)이 상기 요청된 트랜잭션과 결합될 수 있음을 결정하고 그리고 상기 가능한 결합 동작과 함께 상기 기입 동작을 수행하는 단계를 더 포함하는 트랜잭션 요청 라우팅 방법.
  12. 제 10 항에 있어서,
    상기 요청된 트랜잭션이 상기 판독 동작을 위한 것인 경우, 상기 요청된 트랜잭션이 메모리 라인 판독 또는 복수의 라인 판독을 위한 것임을 결정하고 상기 메모리 라인 또는 상기 복수의 라인 판독 동작을 수행하는 단계를 더 포함하는 트랜잭션 요청 라우팅 방법.
KR10-2000-0047851A 1999-08-19 2000-08-18 트랜잭션 요청 라우팅 방법 KR100419679B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/377,634 1999-08-19
US09/377,634 US6687240B1 (en) 1999-08-19 1999-08-19 Transaction routing system
US9/377,634 1999-08-19

Publications (2)

Publication Number Publication Date
KR20010050125A KR20010050125A (ko) 2001-06-15
KR100419679B1 true KR100419679B1 (ko) 2004-02-21

Family

ID=23489906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0047851A KR100419679B1 (ko) 1999-08-19 2000-08-18 트랜잭션 요청 라우팅 방법

Country Status (4)

Country Link
US (1) US6687240B1 (ko)
KR (1) KR100419679B1 (ko)
MY (1) MY124029A (ko)
TW (1) TW473665B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101724416B1 (ko) 2015-12-11 2017-04-10 한승민 시트형 전기 패널

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19946716A1 (de) * 1999-09-29 2001-04-12 Infineon Technologies Ag Verfahren zum Betrieb eines Prozessorbusses
GB0031157D0 (en) * 2000-12-20 2001-01-31 Ncr Int Inc Streaming of data
US20030229344A1 (en) * 2002-01-22 2003-12-11 Dycus Sean T. Vessel sealer and divider and method of manufacturing same
US6976115B2 (en) * 2002-03-28 2005-12-13 Intel Corporation Peer-to-peer bus segment bridging
US7321985B2 (en) * 2004-02-26 2008-01-22 International Business Machines Corporation Method for achieving higher availability of computer PCI adapters
US20060004837A1 (en) * 2004-06-30 2006-01-05 Genovker Victoria V Advanced switching peer-to-peer protocol
US7846158B2 (en) * 2006-05-05 2010-12-07 Covidien Ag Apparatus and method for electrode thermosurgery
US8019910B2 (en) * 2007-07-31 2011-09-13 Hewlett-Packard Development Company, L.P. Transaction flow control in PCI express fabric
US8566930B2 (en) * 2009-02-27 2013-10-22 Science Applications International Corporation Monitoring module
US8504217B2 (en) * 2009-12-14 2013-08-06 Panasonic Avionics Corporation System and method for providing dynamic power management
US8285908B2 (en) * 2010-01-24 2012-10-09 Freescale Semiconductor, Inc. Bus bridge and method for interfacing out-of-order bus and multiple ordered buses
KR102106541B1 (ko) * 2015-03-18 2020-05-04 삼성전자주식회사 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템
US10282109B1 (en) * 2016-09-15 2019-05-07 Altera Corporation Memory interface circuitry with distributed data reordering capabilities
US10592162B2 (en) * 2018-08-22 2020-03-17 Intel Corporation Distributed storage location hinting for non-volatile memories

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990022950A (ko) * 1995-06-15 1999-03-25 피터 엔. 데트킨 Pci-pci 브리지를 집적화한 i/o 프로세서의 구조
US5913045A (en) * 1995-12-20 1999-06-15 Intel Corporation Programmable PCI interrupt routing mechanism

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145039A (en) * 1998-11-03 2000-11-07 Intel Corporation Method and apparatus for an improved interface between computer components
US6421755B1 (en) * 1999-05-26 2002-07-16 Dell Usa, L.P. System resource assignment for a hot inserted device
US6480917B1 (en) * 1999-08-19 2002-11-12 International Business Machines Corporation Device arbitration including peer-to-peer access arbitration

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990022950A (ko) * 1995-06-15 1999-03-25 피터 엔. 데트킨 Pci-pci 브리지를 집적화한 i/o 프로세서의 구조
US5913045A (en) * 1995-12-20 1999-06-15 Intel Corporation Programmable PCI interrupt routing mechanism

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101724416B1 (ko) 2015-12-11 2017-04-10 한승민 시트형 전기 패널

Also Published As

Publication number Publication date
KR20010050125A (ko) 2001-06-15
US6687240B1 (en) 2004-02-03
MY124029A (en) 2006-06-30
TW473665B (en) 2002-01-21

Similar Documents

Publication Publication Date Title
US6070209A (en) Delivering transactions between data buses in a computer system
JP3579198B2 (ja) データ処理システム及びデータ処理方法
KR100419679B1 (ko) 트랜잭션 요청 라우팅 방법
US7143221B2 (en) Method of arbitrating between a plurality of transfers to be routed over a corresponding plurality of paths provided by an interconnect circuit of a data processing apparatus
JP3476174B2 (ja) ピア・ツー・ピア・サポートを有する2重ホスト・ブリッジ
US6119196A (en) System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
CN100472494C (zh) 支持多总线多类型存储器的内存仲裁实现系统和方法
US8190801B2 (en) Interconnect logic for a data processing apparatus
EP0747831A2 (en) Data processing system including buffering mechanism for inbound and outbound reads and posted writes
US7315542B2 (en) Handling and discarding packets in a switching subnetwork
JP2004530197A (ja) 非ブロック化共有インターフェイスを持つ通信システム及び方法
US6836813B1 (en) Switching I/O node for connection in a multiprocessor computer system
US6950892B2 (en) Method and system for managing distributed arbitration for multicycle data transfer requests
US7096290B2 (en) On-chip high speed data interface
KR100354116B1 (ko) 다중-노드 pci-대-pci 브리지
KR100354117B1 (ko) 다중 버스 중재 시스템
US6721816B1 (en) Selecting independently of tag values a given command belonging to a second virtual channel and having a flag set among commands belonging to a posted virtual and the second virtual channels
KR20070086352A (ko) 패킷 기반 통신 관리 방법 및 통신 장치
JP4906226B2 (ja) マルチプロセッサコンピュータシステムにおいて、ポストされたリクエストのための別個のバーチャルチャネルを実現するためのシステムおよび方法
KR100333584B1 (ko) 데이터 전송 시스템
US6418503B1 (en) Buffer re-ordering system
JPS58154057A (ja) 並列処理システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20091231

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee