KR20050027083A - 멀티프로세서 컴퓨터 시스템 내의 연결을 위한 스위칭i/o 노드 - Google Patents

멀티프로세서 컴퓨터 시스템 내의 연결을 위한 스위칭i/o 노드 Download PDF

Info

Publication number
KR20050027083A
KR20050027083A KR1020047008304A KR20047008304A KR20050027083A KR 20050027083 A KR20050027083 A KR 20050027083A KR 1020047008304 A KR1020047008304 A KR 1020047008304A KR 20047008304 A KR20047008304 A KR 20047008304A KR 20050027083 A KR20050027083 A KR 20050027083A
Authority
KR
South Korea
Prior art keywords
packet
transactions
point
bus
packet bus
Prior art date
Application number
KR1020047008304A
Other languages
English (en)
Other versions
KR100950101B1 (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 KR20050027083A publication Critical patent/KR20050027083A/ko
Application granted granted Critical
Publication of KR100950101B1 publication Critical patent/KR100950101B1/ko

Links

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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

멀티프로세서 컴퓨터 시스템 내의 연결을 위한 스위칭 I/O 노드. 입력/출력 노드 스위치(400)는 집적 회로 칩 상에서 구현되는 브리지 유닛(450) 및 패킷 버스 스위치 유닛(430)을 포함한다. 브리지 유닛은 주변 버스(455)로부터 다수의 주변 트랜잭션들을 수신하고 다수의 주변 트랜잭션들에 대응하는 다수의 상향 패킷 트랜잭션들을 송신한다. 패킷 버스 스위치는 내부 포인트-투-포인트 패킷 버스 링크(435) 상에서 상향 패킷 트랜잭션들을 수신하고 상향 패킷 트랜잭션들 각각의 목적지를 결정한다. 패킷 버스 스위치는 상향 패킷 트랜잭션들 각각의 목적지 결정에 응답하여 상향 패킷 트랜잭션들 중 선택된 것들을 제 1 포인트-투-포인트 패킷 버스 링크(401)에 연결된 제 1 프로세서 인터페이스로 라우팅하고 상향 패킷 트랜잭션들 중 나머지들을 제 2 포인트-투-포인트 패킷 버스 링크(402)에 연결된 제 2 프로세서 인터페이스로 라우팅한다.

Description

멀티프로세서 컴퓨터 시스템 내의 연결을 위한 스위칭 I/O 노드 {A SWITCHING I/O NODE FOR CONNECTION IN A MULTIPROCESSOR COMPUTER SYSTEM}
본 발명은 마이크로프로세서 컴퓨터 시스템 I/O노드들에 관한 것으로, 특히 스위칭 노드들에 관한 것이다.
다수의 프로세싱 유닛들을 사용하는 컴퓨터 시스템들은 기존의 단일 프로세서 기반 시스템들의 성능을 능가하는 경제적으로 융통성있는 수행 성능을 유지한다. 단일 프로세서 내에서 응용을 위해 모든 프로세싱을 집중하는 것이 아니라, 멀티프로세싱 환경 내에서는, 작업들이 개별적인 프로세서들에 의해 처리 가능한 그룹들로 분할될 수 있다. 그에 의해, 전체 프로세싱 로드가 몇 개의 프로세서들 사이에 분배되고, 분배된 작업들이 동시에 병렬적으로 실행될 것이다. 오퍼레이팅 시스템 소프트웨어는 프로그램 코드의 다양한 부분들을 개별적으로 실행가능한 스레드(thread)들로 분할하고, 일반적으로 각 스레드에 순서를 할당한다.
개인용 컴퓨터(PC)들 및 다른 종류의 컴퓨터 시스템들이 메모리에 액세스하기 위한 공유 버스 시스템을 중심으로 하여 설계되어 왔다. 하나 이상의 프로세서들 및 하나 이상의 입력/출력(I/O) 디바이스들이 공유 버스를 통하여 메모리에 연결된다. I/O 디바이스들은 공유 버스 및 I/O 디바이스들 사이의 정보 전달을 관리하는 I/O 브리지를 통하여 공유 버스에 연결되고, 프로세서들은 일반적으로 공유 버스에 직접 연결되거나 캐시 코히어런시를 통하여 공유 버스에 연결된다. 전형적인 멀티프로세서 컴퓨터 시스템이 종래 기술 도 1의 묘사와 관련하여 하기에 설명될 것이다.
도 1에서, 멀티프로세서 컴퓨터 시스템의 일 실시예의 블럭도가 도시된다. 멀티프로세서 컴퓨터 시스템은 프로세서 유닛들(100A-100B), 시스템 버스(105)를 통하여 프로세서 유닛들(100A-100B)에 연결된 시스템 제어기(110) 및 메모리 버스(125)를 통하여 시스템 제어기(110)에 연결된 시스템 메모리(120)를 포함한다. 또한, 시스템 제어기(110)는 I/O 버스(135)를 통하여 I/O 허브(130)에 연결된다.
도 1의 멀티프로세서 컴퓨터 시스템은, 모든 프로세싱 유닛들(100A-100B)이 같은 메모리 공간(즉, 시스템 메모리(120))을 공유하고 같은 어드레스 맵핑을 이용하는 메모리 공간에 액세스할 수 있다는 점에서, 대칭적이다. 멀티프로세싱 시스템은 모든 프로세싱 유닛들(100A-100B)이 I/O 허브(130)로의 동등한 액세스를 공유한다는 점에서 또한 대칭적이다.
일반적으로, 각 사용자 응용 파일의 단일 카피 뿐만 아니라 오퍼레이팅 시스템 소프트웨어의 단일 카피가 시스템 메모리(120) 내에 저장된다. 프로세싱 유닛들(100A-100B) 각각은 오퍼레이팅 시스템 및 사용자 응용 파일들의 이러한 단일 카피들로부터 실행된다. 프로세싱 코어들(도시되지 않음) 코드를 동시에 실행하더라도, 프로세싱 유닛들(100A-100B)의 단지 하나만이 소정의 시간에 시스템 버스(105)의 마스터쉽으로 가정된다는 점을 유의하자. 그래서, 시스템 제어기(110) 내의 버스 중재 메카니즘이 프로세싱 유닛들(100A-100B)의 동시발생한 버스를 중재하도록 제공되고, 소정의 중재 알고리즘에 근거하여 프로세싱 유닛들(100A-100B) 중의 하나에게 마스터쉽을 주도록 제공된다. 다양한 버스 중재 기술들이 잘 알려져 있다.
시스템 버스 중재 때문에 존재하는 제한들 외에, 상기 도 1의 컴퓨터 시스템에서 사용되는 공유 버스(즉 시스템 버스(105))는 제한된 대역폭과 같은 결점을 갖는다. 추가적인 프로세서들이 공유 버스에 부착될 때, 이들 다양한 부착물들은 버스 상에서 신호를 구동하는 디바이스에 고용량의 부하를 제공하고, 다양한 부착 포인트들이 고주파수를 위한 비교적 복잡한 전송 라인을 제공한다. 따라서, 오퍼레이팅 주파수가 낮아질 것이다.
공유 버스의 일부 단점을 극복하기 위해서, 어떤 컴퓨터 시스템들은 디바이스들과 노드들 사이의 패킷 기반 통신을 사용할 수 있다. 이러한 시스템에서, 노드들은 정보의 패킷들을 교환함으로써 서로 통신할 수 있다. 일반적으로, "노드"는 상호 연결하에서 트랜잭션들에 참여할 수 있는 장치이다. 예를 들어, 그 상호 연결은 패킷 기반으로 될 수 있고, 그 노드는 패킷들을 송수신하도록 구성된다. 일반적으로 말해, "패킷"은 두 개의 노드들, 즉 패킷을 전송하는 개시 노드 즉, "소스" 노드와 패킷을 수신하는 목적지 노드 즉, "타겟" 노드와의 사이의 통신이다. 패킷이 타겟 노드에 도달하면, 타겟 노드는 그 패킷에 의해 운반된 정보를 받아 그 정보를 내부적으로 처리한다. 소스 노드와 타겟 노드 사이의 통신 경로에 위치한 노드는 그 패킷을 그 소스 노드로부터 그 타겟 노드로 중계(relay)하거나 전송한다.
도 2에서, 단일의 상향 패킷 버스 링크로 스위치되는 다양한 하향 패킷 버스 링크들을 구비한 멀티프로세서 컴퓨터 시스템이 도시된다. 멀티프로세서 컴퓨터 시스템(200)은 시스템 버스(202)에 의해 내부연결된 프로세서(201A) 및 프로세서(201B)를 포함한다. 프로세서(201B)는 패킷 버스 링크(205)에 의해 I/O 노드 스위치(210)에 연결된다. I/O 노드 스위치(210)는 또한 제 2 패킷 버스 링크(215)를 통하여 I/O 노드(220)에 연결된다. 또한 I/O 노드 스위치(210)는 패킷 버스 링크(225)를 통하여 추가적인 I/O 노드(230)에 연결된다.
프로세서들(210A 및 210B)이 프로세서들(101A 및 101B)과 실질적으로 동일한 방식으로 동작한다는 점이 주목된다. 그러나, 도 2에서 I/O 연결들은 서로 다르다. I/O 노드 스위치(210)는 프로세서(210A 또는 210B)로부터 노드들(220 또는 230) 중 어느 한쪽으로의 통신들에 관한 스위칭 메카니즘을 제공한다. 이러한 형태의 시스템에서, 프로세서(210B)는 I/O 노드들(220 및 230)과의 통신을 쉽게 하는 호스트 브리지(도시되지 않음)를 포함한다. 또한, 프로세서(201A)는 프로세서(201B)를 통하여 I/O 노드들(220 및 230)과 통신한다. 이러한 방식으로 연결된 시스템이 도 2의 패킷 버스들의 사용으로 인해 도 1에서 도시된 멀티프로세서 보다 더 좋은 멀티프로세싱을 제공하지만, 여전히 결점들이 존재한다. 예를 들어, 프로세서(201A)에서 시작되거나 프로세서(201A)를 타겟으로한 트랜잭션들은 먼저 프로세서(201B)를 통과하여 지나갈 수 있는 바, 이는 레이턴시 패널티들을 초래할 수 있다.
도 1은 공유 버스를 이용한 멀티프로세서 컴퓨터 시스템의 일 실시예의 블럭도이다.
도 2는 단일 상향 패킷 버스 링크로 스위치된 다양한 하향 패킷 버스 링크들을 구비한 멀티프로세서 컴퓨터 시스템의 일 실시예의 블럭도이다.
도 3은 다양한 상향 패킷 버스 링크들을 구비한 멀티프로세서 컴퓨터 시스템의 일 실시예의 블럭도이다.
도 4는 I/O 노드 스위치의 일 실시예의 블럭도이다.
도 5는 I/O 노드 스위치의 다른 실시예의 블럭도이다.
멀티프로세서 컴퓨터 시스템 내의 연결을 위한 스위칭 I/O 노드의 다양한 실시예들이 개시된다. 일 실시예에서, 멀티프로세서 컴퓨터 시스템에 관한 입력/출력 노드 스위치가 집적 회로 칩 상에서 구현된 브리지 유닛을 포함한다. 브리지 유닛은 예를 들어 PCI 버스와 같은 주변 버스로부터 다수의 주변 트랜잭션들을 수신하기 위해 연결되며, 다수의 주변 트랜잭션들에 대응하는 다수의 상향 패킷 트랜잭션들을 송신하도록 구성된다. 입력/출력 노드 스위치는, 집적 회로 칩 상에서 구현되며, 내부의 포인트-투-포인트(point-to-point) 패킷 버스 링크 상에서 다수의 상향 패킷 트랜잭션들을 수신하기 위해 연결되고 다수의 상향 패킷 트랜잭션들 각각의 목적지를 결정하도록 구성되는 패킷 버스 스위치 유닛을 또한 포함한다. 패킷 버스 스위치 유닛은 다수의 상향 패킷 트랜잭션들 각각의 목적지 결정에 응답하여, 다수의 상향 패킷 트랜잭션들 중 선택된 것들을 제 1 포인트-투-포인트 패킷 버스 링크에 연결된 제 1 프로세서 인터페이스로 라우팅하도록 또한 구성되고, 다수의 상향 패킷 트랜잭션들 중 나머지들을 제 2 포인트-투-포인트 패킷 버스 링크에 연결된 제 2 프로세서 인터페이스로 라우팅하도록 구성된다.
특정한 일 실시예에서, 입력/출력 노드 스위치는 집적 회로 칩 상에서 구현된 제 1 송수신기 유닛 및 제 2 송수신기 유닛을 또한 포함한다. 제 1 송수신기 유닛은 제 1 포인트-투-포인트 패킷 버스 링크 상에서 다수의 상향 패킷 트랜잭션들 중 선택된 것들을 수신 및 송신하기 위해 연결된다. 제 2 송수신기 유닛은 제 2 포인트-투-포인트 패킷 버스 링크 상에서 다수의 상향 패킷 트랜잭션들 중 선택된 나머지들을 수신 및 송신하기 위해 연결된다. 각 포인트-투-포인트 패킷 버스 링크는 HyperTransportTM 버스 링크일 수 있다.
특정한 일 실시예에서, 패킷 버스 스위치 유닛은 프로그램가능 검색 테이블을 이용하여 다수의 상향 패킷 트랜잭션들 각각의 목적지를 결정하도록 구성된다.
특정한 다른 실시예에서, 패킷 버스 스위치 유닛은 제 1 및 제 2 외부 패킷 버스 링크들에 연결된, 프로세서들과 같은, 상향 디바이스들에 대응하는 유효한 버퍼 공간 카운트들을 이용하여 다수의 상향 패킷 트랜잭션들 각각의 목적지를 결정하도록 구성된다.
또 다른 특정한 실시예에서, 패킷 버스 스위치 유닛은 다수의 상향 패킷 트랜잭션들 각각에 관련된 어드레스를 디코드하도록 구성된다. 또 다른 특정 실시예에서, 패킷 버스 스위치 유닛은 그 어드레스에 따라 다수의 상향 패킷 트랜잭션들 중 추가적인 것들을 차단하도록 구성된다.
본 발명은 비록 다양한 수정과 대안적인 형태들이 가능하지만, 본 명세서에서는 발명의 특정한 실시예를 예로써 도면에 도시하였으며, 이에 대해 자세히 설명될 것이다. 그러나 도면 및 이에 대한 상세한 설명은 본 발명을 개시된 특정 예로만 제한하도록 의도된 것은 아니며, 오히려 첨부된 청구항에 의해 정의되는 것처럼 본 발명의 정신 및 범위 내에 드는 모든 변형, 균등물 및 대안들을 포괄하도록 의도된 것이다.
도 3에서, 다양한 상향 패킷 버스 링크들을 구비한 멀티프로세서 컴퓨터 시스템의 일 실시예의 블럭도가 도시된다. 멀티프로세서 컴퓨터 시스템(300)은 한 쌍의 I/O 패킷 버스 링크들(315A 및 315B)을 통하여 각기 I/O 노드 스위치 디바이스(310)에 연결된 프로세서들(301A 내지 301D)을 포함한다. 프로세서들(301A 내지 301D)은 개별적인 코히어런트 패킷 버스 링크들(305A 내지 305D)을 통하여 함께 연결된다. 주변 버스(340) 및 I/O 링크(345)에 연결된 I/O 노드 스위치(310)가 도시된다. I/O 노드 스위치(310)는 I/O 패킷 버스 링크(325)를 통하여 I/O 노드(320)에 또한 연결된다. I/O 노드(320)는 다른 I/O 노드(도시되지 않음)에 연결될 수 있는 다른 I/O 패킷 버스 링크(330)에 연결된다. 멀티프로세서 컴퓨터 시스템(300)내에서 나타난 성분들의 다른 구성들을 포함할 수 있는 다른 실시예들이 고려된다는 점이 주목된다. 예를 들어, 다른 실시예에서, 다른 수의 프로세서들이 추가된 I/O 패킷 버스 링크들(도시되지 않음)을 통하여 I/O 노드 스위치(310)에 연결될 수 있다. 또한, I/O 링크(345)는 멀티프로세서 컴퓨터 시스템(300)과 같거나 또는 다른 네트워크 내의 디바이스들에 연결될 수 있다.
예시적인 실시예에서, 각 코히어런트 패킷 버스(305)가 단방향 라인들의 세트들로 구현된다. 예를 들어, 라인들(305B)은 패킷들을 프로세서(301A)로부터 프로세서(301B)로 전송하는데 사용되고 라인들(305C)은 패킷들을 프로세서(301B)로부터 프로세서(301C)로 전송하는데 사용된다. 라인들의 다른 세트들(305A 및 305D)은 도 3에 도시된 다른 프로세서들 사이의 패킷 전송에 사용된다. 코히어런트 패킷 인터페이스(305)는 프로세싱 노드들 사이의 통신을 위해 캐시 코히어런트 방식으로 동작한다("코히어런트 링크"). 또한, I/O 패킷 버스(315)는 I/O 노드들 사이의 통신 및 I/O 노드와 프로세서(301A)와 같은 프로세서 사이의 통신을 위해 비-코히어런트 방식으로 동작한다 ("비-코히어런트 링크"). 비-코히어런트 링크는 또한 단방향 라인들의 세트들로 구현된다. 예를 들어, 라인들(315A)은 패킷들을 프로세서(301A)로부터 I/O 노드 스위치(310)로 전송하는데 사용되고 라인들(315B)은 패킷들을 프로세서(301B)로부터 I/O 노드 스위치(310)로 전송하는데 사용된다. 코히어런트 링크들을 통한 두 개 이상의 노드들의 내부연결은 "코히어런트 패브릭"으로써 언급될 수 있다. 유사하게, 비-코히어런트 링크들을 통한 두 개 이상의 노드들의 내부연결은 "비-코히어런트 패브릭"으로써 언급될 수 있다. 한 프로세서로부터 다른 프로세서로 전송되는 패킷은 하나 이상의 중간 노드들을 통과한다는 점이 주목된다. 예를 들어, 프로세서(301A)에 의해 프로세서(301C)로 전송된 패킷은 도 3에 도시된 바와 같이, 프로세서(301B) 또는 프로세서(301D) 중 하나를 통과한다. 적당한 라우팅 알고리즘이 사용된다. 프로세서들(301C 및 301D) 주변의 점선에 의해 표시된 바와 같이, 멀티프로세서 컴퓨터 시스템(300)의 다른 실시예들은 도 3에 도시된 실시예에서 보다 많거나 적은 프로세서들을 포함할 수 있다.
예시적인 실시예에서, 프로세서들(301A 내지 301D) 각각은 AthlonTM 마이크로프로세서와 같은 x86 아키텍쳐 프로세서의 예이다. 그러나, 다른 적절한 프로세서들이 사용될 수 있음이 고려된다. 또한 I/O 패킷 버스 링크들(315A와 315B 및 325)은 고속 포인트-투-포인트 패킷 인터페이스의 예시적인 링크들이고 HyperTransportTM 기술과 호환된다. 더욱, I/O 링크(345)는 EthernetTM 또는 InfinibandTM 연결과 같은 예시적인 연결이다. 예를 들어, 주변 버스(340)는 PCI(Peripheral Component Interconnect) 버스 또는 확장형 PCI(PCI-X) 버스와 같은 적절한 주변 버스의 예이다.
멀티프로세서 컴퓨터 시스템(300)과 같은 멀티프로세서 컴퓨터 시스템에서, 각 사용자 응용의 단일 카피뿐만 아니라 오퍼레이팅 시스템 소프트웨어의 단일 카피가 시스템 메모리(도시되지 않음) 내에 저장된다. 프로세서들(301A 내지 301D) 각각은 오퍼레이팅 시스템 및 사용자 응용 파일들의 이러한 단일 카피들로부터 실행되고 코드를 동시에 실행한다.
예시적인 실시예에서, 프로세서들(301A 및 301B)은 각각 I/O 패킷 버스 링크들(305A 및 305B)에 대한 인터페이스를 각기 포함하는 호스트 브리지(도시되지 않음)를 포함한다. 다른 실시예에서, 프로세서들(301C 및 301D)이 또한 호스트 브리지를 포함하고 추가적인 I/O 패킷 버스 링크들에 연결된다는 점이 고려된다. 도 4 및 도 5의 설명에 관련하여 하기에서 더 상세히 설명될 것과 같이, I/O 노드 스위치(310)는 하향 소스들로부터 다양한 패킷 트랜잭션들을 수신하고 그러한 트랜잭션들을 프로세서들(301A 및 301B)과 같은 다양한 상향 목적지들로 라우팅한다. 본 장에서 사용되듯이, "상향"은 프로세서(301A)와 같은 프로세서 또는 프로세서 내의 호스트 브리지를 향하는 방향으로 흐르는 트랜잭션들을 말하는 것을 의미한다. "하향"은 프로세서 또는 프로세서 내의 호스트 브리지로부터 멀어지는 방향으로 흐르는 트랜잭션들을 말하는 것을 의미한다.
일반적으로, 패킷은 두 개의 노드들, 즉 패킷을 송신하는 개시 노드 및 패킷을 수신하는 목적지 노드, 사이의 통신이다. 개시 노드 및 목적지 노드는 패킷이 일부인 트랜잭션의 소스 노드 및 타겟 노드와 다르고, 또는 각 노드는 소스 노드 또는 타겟 노드 중 하나일 수 있다. 제어 패킷은 트랜잭션에 관한 제어 정보를 전달하는 패킷이다. 임의의 제어 패킷들은 데이터 패킷이 뒤따르는 것을 규정한다. 데이터 패킷은, 트랜잭션에 대응하고 제어 패킷 규정에 대응하는 데이터를 전달한다. 일 실시예에서, 제어 패킷들은 명령 패킷들, 정보 패킷들 및 응답 패킷들을 포함한다. 다른 실시예들은 다른 형태들의 패킷들을 포함하도록 고려된다는 점이 주목된다.
I/O 노드 스위치(310)는 예를 들어, 주변 버스(340), 네트워크 링크(345) 및 I/O 패킷 버스(325)와 같은 다양한 하향 소스들로부터 상향 패킷 트랜잭션들을 수신한다. 패킷 트랜잭션들 각각은 전형적으로 그 안에 엔코드된 어드레스를 가진 헤더를 포함한다. I/O 노드 스위치(310)는 패킷 트랜잭션들의 목적지 어드레스들 각각을 디코드하고 디코드된 어드레스에 따라 그러한 트랜잭션들을 라우팅한다. I/O 노드 스위치(310)는 프로세서들(301A 내지 301D)로부터 시작된 하향 패킷 트랜잭션들을 또한 수신한다. I/O 노드 스위치(310)는 각 패킷 트랜잭션의 목적지 어드레스를 또한 디코드하고 따라서 패킷 트랜잭션들을 라우팅한다.
도 4에서, I/O 노드 스위치의 일 실시예의 블럭도가 도시된다. I/O 노드 스위치(400)는 각기 I/O 패킷 버스 링크들(401 및 402)에 연결된 한 쌍의 상향 송수신기들(410 및 420)을 포함한다. I/O 패킷 버스 링크들(401 및 402)은 예를 들어, 도 1의 프로세서들(301A 및 301B)과 같은 상향 디바이스들에 연결될 수 있다. 도 4의 송수신기들(410 및 420)은 또한 내부 패킷 버스 링크들(415 및 425)을 통하여 패킷 버스 스위치(430)에 각기 연결된다. 패킷 버스 스위치(430)는 내부 패킷 버스 링크(435)에 의해 인터페이스 버스(440)에 연결된다. 인터페이스 버스(440)는 내부 버스 링크(445)를 통하여 하향 송수신기(480)에 연결된다. 송수신기(480)는 I/O 패킷 버스 링크(485)에 연결되고 I/O 패킷 버스 링크(485)는 다른 I/O 노드 또는 다른 디바이스(도시되지 않음)에 연결될 수 있다. 인터페이스 버스(440)는 또한 I/O 인터페이스(470) 및 주변 인터페이스(450 및 460)에 연결된다. 주변 인터페이스(450 및 460)는 주변 버스들(455 및 465)에 각기 연결된다. I/O 인터페이스(470)는 I/O 링크(475)에 연결된다. 본 실시예는 두 개의 I/O 패킷 버스 링크들에 연결된 두 개의 상향 송수신기들을 도시하였지만, 다른 실시예들은 다른 적절한 수의 상향 I/O 패킷 버스 링크들에 연결된 다른 적절한 수의 상향 송수신기들을 포함할 수 있음이 고려된다는 점이 주목된다.
I/O 인터페이스(470)는 집적된 I/O 제어기일 수 있고 예를 들어, Gigabit EthernetTM 제어기 또는 InfinibandTM 포트 제어기와 같은 특정한 I/O 디바이스를 구현하는 회로를 포함할 수 있다는 점이 주목된다. 그러한 실시예들에서, I/O 링크(475)는 EthernetTM 또는 InfinibandTM 연결과 같은 예시적인 연결일 수 있다. 주변 버스들(455 및 465)은 예를 들어, PCI 버스 또는 확장형 PCI 버스와 같은 적절한 주변 버스의 예들이다.
송수신기들(410 및 420)은 I/O 패킷 버스 링크들(401 및 402) 상에서 하향 패킷 트랜잭션들을 수신하고 상향 패킷 트랜잭션들을 송신하도록 구성된다. 송수신기들(410 및 420)은 미결의 패킷 트랜잭션들의 저장을 위한 수신 및 송신 버퍼 회로(도시되지 않음)를 포함할 수 있다. 송수신기들(410 및 420)은 I/O 패킷 버스 링크들(401 및 402) 상에서 패킷 트랜잭션들을 송신하기 위한 I/O 드라이버 회로(도시되지 않음)를 또한 포함한다.
패킷 스위치 유닛(430)은 내부 패킷 버스 링크(435) 상에서 상향 패킷 트랜잭션들을 수신하고, 각 트랜잭션의 어드레스를 디코드하고 각 트랜잭션을 어느 상향 경로로 라우팅할 것인지를 결정하도록 구성된다. 하기에서 더 상세히 설명될 것과 같이, 만일 소정의 트랜잭션이 패킷 버스 스위치(430)의 상향 내부 패킷 버스 링크들 중 어느 하나에도 관련되지 않은 어드레스를 포함한다면, 패킷 트랜잭션은 하향으로 되돌려 보내질 것이다. 대안적으로, 패킷 트랜잭션은, 어드레스가 패킷 버스 스위치(430)의 상향 내부 패킷 버스 링크들 중 어느 것에 대응하는지에 관계없이, 상향으로 보내진다.
인터페이스 버스(440)는 내부 패킷 버스 링크들(435 및 445), 주변 인터페이스들(450 및 460) 및 I/O 인터페이스(470) 각각의 내부연결에 필요한 내부 패킷 버스 아키텍쳐 및 회로(도시되지 않음)를 포함할 수 있다. 예를 들어, 인터페이스 버스(440)는 내부 패킷 버스 링크(435), I/O 인터페이스(470), 주변 인터페이스(450 및 460)를 위한 그리고 내부 패킷 버스 링크(445)를 위한 인터페이스 포트들(도시되지 않음)을 포함할 수 있다. 각 인터페이스 포트는 특정 필터에 매치하는 어드레스를 가진 소정의 패킷 트랜잭션을 요구할 수 있는 어드레스 필터를 포함할 수 있다. 따라서, 인터페이스 버스(440)는 각 주변 인터페이스, I/O 인터페이스 및 내부 패킷 버스 링크(445) 사이의 피어-투-피어(peer-to-peer) 트래픽 지원을 제공하도록 구성된다. 예를 들어, 주변 인터페이스(460)를 향하는 패킷 트랜잭션은 주변 인터페이스(450)에 의해 인터페이스 버스(440)로 상향 송신될 것이다. 패킷 트랜잭션 헤더는 인터페이스 버스(440)에 연결된 인터페이스 포트들 각각에 의해 디코드될 것이다. 디코드된 어드레스는 주변 인터페이스(460)의 어드레스 필터에만 매치되고 따라서 주변 버스(460)에 의해서 요구된다.
소정의 인터페이스에 의해 상향으로 보내진 패킷 트랜잭션은 인터페이스 포트들 내의 어떤 어드레스 필터들과도 매치하지 않는다. 그러한 경우에, 패킷 버스 스위치(430)는 비요구된 패킷 트랜잭션이 트랜잭션의 발생기를 향해 하향으로 되돌려지도록한다. 또한, 에러 메세지가 비존재 어드레스를 포함하는 트랜잭션을 나타내는 트랜잭션과 함께 나타난다.
대안적 실시예에서, 내부 패킷 버스 링크(435)에 관한 인터페이스 포트는 어드레스 필터를 구비하지 않을 수 있다. 그러한 경우에, 패킷 버스 스위치(430)는 상향 패킷 버스 링크들(415 및 425)의 하나를 통하여 모든 비요구된 패킷 트랜잭션들을 상향으로 전달할 것이다.
패킷 버스 스위치(430)는 특정한 트랜잭션을 보내기 위한 상향 패킷 버스 링크를 결정한다. 이 결정은 몇 개의 팩터들에 의한다. 일 예에서, 만일 상향 트랜잭션이 도 1의 프로세서(301A 내지 301D)와 같은 디바이스로부터의 이전 하향 요청에 응답한다면, 그 응답은 요청 프로세서에 대응하는 어드레스를 가질 것이다. 그래서, 패킷 버스 스위치(430)는 상향 트랜잭션을 올바른 프로세서로 라우팅할 것이다.
다른 예에서, 상향 트랜잭션이 메모리 판독을 수행하는 PCI-X 디바이스와 같은 I/O 마스터로부터의 것이라면, 패킷 버스 스위치(430)는 그 요구를 라우팅할 프로세서를 결정할 것이다. 따라서, 패킷 버스 스위치(430)는 어떤 프로세서가 특정한 형태들의 트랜잭션들을 처리할 것인지를 식별할 수 있는 검색 테이블 또는 유사한 데이터 구조를 저장할 수 있는 프로그램가능 저장 회로(도시되지 않음)를 포함할 것이다. 이러한 경우에, 오퍼레이팅 시스템은 그러한 테이블의 목록을 결정하고, 패킷 버스 스위치(430)를 프로그램하기 위해서 하나 이상의 프로세서가 명령들을 실행하도록 할 것이다. 따라서, I/O 마스터 트랜잭션이 패킷 버스 스위치(430)에 의해 수신될 때, 패킷 트랜잭션이 라우팅될 프로세서를 결정하기 위해 패킷 버스 스위치(430)에 의해 테이블이 사용될 수 있다.
검색 테이블 내의 정보가 오류를 일으키거나 또는 현재의 것이 아니라면, 상향 패킷 트랜잭션은 오퍼레이팅 시스템에 따라서 잘못된 프로세서로 보내지게 될 것이다. 부정확하게 라우팅된 패킷 트랜잭션이 결국 그의 의도된 목적지에 도달할 수 있다. 그러나, 트랜잭션이 먼저 다른 프로세서를 통하여 부정확하게 라우팅될 수 있기 때문에, 지연이 발생될 것이다. 또한 부정확한 라우팅을 방지하기 위해, 수신 프로세서는 에러 메세지를 개시한다. 에러 메세지는 오퍼레이팅 시스템에 갱신될 필요가 있는 검색 테이블을 통지할 것이다. 오퍼레이팅 시스템은 그 후 그 자신의 방식에 따라서 검색 테이블 갱신을 스케쥴할 것이다.
대안적으로, 패킷 버스 스위치(430)는 각 프로세서의 I/O 로드를 결정하고 트랜잭션들을 가장 작은 I/O 로드를 가지도록 결정된 프로세서에 라우팅한다. 패킷 버스 스위치(430)는 특정 프로세서 호스트 브리지에서 수신 버퍼 또는 다른 수신 로직 내의 저장 공간의 유효성을 체크함으로써 프로세서의 I/O 로드를 결정한다. 패킷 버스 스위치(430)는 그 후, 패킷 트랜잭션을 가장 유효한 수신 버퍼 공간을 구비한 프로세서로 라우팅한다.
패킷 버스 스위치(430)는 두 내부 패킷 버스 링크들(415 및 425)로부터 하향 패킷 트랜잭션들을 수신하도록 구성된다. 트랜잭션들이 내부 패킷 버스 링크들(415 및 425)로부터 동시에 수신된다. 또한, 패킷 버스 스위치(430)는 하향 이벤트를 기다리는 미결의 트랜잭션들을 가질 것이다. 그래서, 패킷 버스 스위치(430)는 라운드 로빈 접근, 예를 들어, 트랜잭션들 사이의 중재와 같은 하나 이상의 일반 중재 기술을 이용하는 하향 내부 패킷 버스 링크 인터페이스에서 중재 회로(도시되지 않음)를 포함할 것이다. 대안적인 실시예에서, 중재 회로는 중재 동안 키(key) 특성들 중 하나가 될 목적지의 우선권을 가지고 우선 구동될 것이다.
도 5에서, I/O 노드 스위치의 대안적 실시예의 블럭도가 도시된다. I/O 로드 스위치(500)는 I/O 패킷 버스 링크들(501 및 502)에 각기 연결된 한 쌍의 상향 송수신기들(510 및 520)을 포함한다. I/O 패킷 버스 링크들(501 및 502)은 예를 들어, 도 1의 프로세서들(301A 및 301B)과 같은 상향 디바이스들에 연결된다. 도 5의 송수신기들(510 및 520)은 또한 내부 패킷 버스 링크들(515 및 525)을 통하여 패킷 버스 스위치(530)에 각기 연결된다. 패킷 버스 스위치(530)는 내부 패킷 버스 링크(535)에 의해 인터페이스 버스(540)에 연결된다. 패킷 버스 스위치(530)는 또한 내부 패킷 버스 링크(545)를 통하여 하향 송수신기(580)에 연결된다. 송수신기(580)는 다른 I/O 로드 또는 다른 디바이스들(도시되지 않음)에 연결될 수 있는 I/O 패킷 버스 링크(585)에 연결된다. 인터페이스 버스(540)는 I/O 인터페이스(570) 및 주변 인터페이스(550 및 560)에 연결된다. 주변 인터페이스(550 및 560)는 주변 버스들(555 및 565)에 각기 연결된다. I/O 인터페이스(570)는 I/O 링크(575)에 연결된다. 본 실시예는 두 개의 패킷 버스 링크들에 연결된 두 개의 상향 송수신기를 도시하였지만, 다른 실시예들은 다른 적절한 수의 상향 I/O 패킷 버스 링크들에 연결된 다른 적절한 수의 상향 송수신기를 포함할 수 있다는 것이 고려된다는 점이 주목된다.
송수신기들(510 및 520)은 도 4에 도시된 실시예와 유사한 형태를 포함하고, 그것과 실질상 같은 방식으로 동작한다. 그러므로, 송수신기들(510 및 520)의 동작의 묘사를 위해 상기 도 4와 관련한 송수신기들(410 및 420)의 묘사를 참고하라.
I/O 인터페이스(570)는 집적된 I/O 제어기일 수 있고 예를 들어, Gigabit EthernetTM 제어기 또는 InfinibandTM 포트 제어기와 같은 특정한 I/O 디바이스를 구현하는 회로를 포함할 수 있다는 점이 주목된다. 그러한 실시예들에서, I/O 링크(575)는 EthernetTM 또는 InfinibandTM 연결과 같은 예시적인 연결일 수 있다. 주변 버스들(555 및 565)은 예를 들어, PCI 버스 또는 확장형 PCI 버스와 같은 적절한 주변 버스의 예들이다.
패킷 스위치 유닛(530)은 내부 패킷 버스 링크(535) 상에서 상향 패킷 트랜잭션들을 수신하고, 각 트랜잭션의 어드레스를 디코드하고 각 트랜잭션을 어느 상향 경로로 라우팅할 것인지를 결정하도록 구성된다. 하기에서 더 상세히 설명될 것과 같이, 만일 소정의 트랜잭션이 패킷 버스 스위치(530)의 상향 내부 패킷 버스 링크들 중 어느 하나에도 관련되지 않은 어드레스를 포함한다면, 패킷 트랜잭션은 하향으로 되돌려 보내질 것이다.
인터페이스 버스(540)는 내부 패킷 버스 링크들(535 및 545) 주변 인터페이스들(555 및 565) 및 I/O 인터페이스(570) 각각의 내부연결에 필요한 내부 패킷 버스 아키텍쳐 및 회로(도시되지 않음)를 포함할 수 있다. 예를 들어, 인터페이스 버스(540)는 내부 패킷 버스 링크(535), I/O 인터페이스(570), 주변 인터페이스(550 및 560)를 위한 인터페이스 포트들(도시되지 않음)을 포함할 수 있다. 각 인터페이스 포트는 특정 필터에 매치하는 어드레스를 가진 소정의 패킷 트랜잭션을 요구할 수 있는 어드레스 필터를 포함할 수 있다. 따라서, 인터페이스 버스(540)는 각 주변 인터페이스 및 I/O 인터페이스(570) 사이의 피어-투-피어 트래픽 지원을 제공하도록 구성된다. 예를 들어, 주변 인터페이스(560)를 향하는 패킷 트랜잭션은 주변 인터페이스(550)에 의해 인터페이스 버스(540)로 상향 송신될 것이다. 패킷 트랜잭션 헤더는 인터페이스 버스(540)에 연결된 인터페이스 포트들 각각에 의해 디코드될 것이다. 디코드된 어드레스는 주변 인터페이스(560)의 어드레스 필터에만 매치되고 따라서 주변 버스(560)에 의해서 요구된다. 그러나, 하기에서 더 자세히 설명될 것과 같이, I/O 노드에 타겟된 패킷 트랜잭션 또는 내부 패킷 버스 링크(545)를 통하여 송수신기(580)에 연결된 다른 디바이스가 먼저 상향으로 라우팅될 것이다.
소정의 인터페이스에 의해 상향으로 보내진 패킷 트랜잭션은 인터페이스 포트들 내의 어떤 어드레스 필터들과도 매치하지 않는다. 그러한 경우에, 패킷 버스 스위치(530)는 상향 패킷 버스 링크들(515 및 525) 중 어느 하나를 통하여 모든 비요구된 패킷 트랜잭션들을 상향으로 보낼 것이다. 따라서, I/O 노드에 타겟된 트랜잭션 또는 내부 패킷 버스 링크(545)를 통하여 송수신기(580)에 연결된 다른 디바이스가 먼저 패킷 버스 스위치(530)에 의해 도 3의 프로세서들(301A 및 301B)의 하나에 관련된 호스트 브리지로 라우팅된다. 호스트 브리지는 이어서 패킷을 도 5의 패킷 버스 스위치(530)를 향해 하향으로 되돌려 보내는데 여기서 패킷 트랜잭션은 I/O 노드 또는 송수신기(580)에 연결된 다른 디바이스로 라우팅된다.
대안적 실시예에서, 패킷 버스 스위치(530)는, I/O 노드 또는 내부 패킷 버스 링크(545)를 통하여 송수신기(580)에 연결된 다른 디바이스에 관련된 어드레스처럼 비요구된 패킷 트랜잭션의 목적지 어드레스를 인지할 것이다. 따라서, 패킷 버스 스위치는 이러한 형태의 피어-투-피어 지원을 허가하도록 또한 구성된다.
패킷 버스 스위치(530)는 어떤 상향 버스 링크가 도 4의 패킷 버스 스위치(430)에서와 실질적으로 같은 방식으로 특정한 트랜잭션을 보낼지를 결정할 것이다. 그래서 도 5의 패킷 버스 스위치(530)의 잔여 동작의 묘사를 위해서, 도 4의 패킷 버스 스위치(430)의 묘사를 참고하자.
상기의 명세서를 실질상 이해하게되면, 많은 변화와 수정이 기술 분야의 당업자에게 자명할 것이다. 하기의 청구항은 이러한 모든 변화들과 수정들을 포함하는 것으로 해석되도록 의도되었다.
본 발명은 일반적으로 멀티프로세서 컴퓨터 시스템 I/O 노드들에 적용 가능하다.

Claims (10)

  1. 멀티프로세서 컴퓨터 시스템을 위한 입력/출력 스위치(400)에서, 상기 입력/출력 노드 스위치는,
    집적 회로 칩 상에 구현되며, 주변 버스(455 및 465)로부터 다수의 주변 트랜잭션들을 수신하도록 연결되고 상기 다수의 주변 트랜잭션들에 대응하는 다수의 상향 패킷 트랜잭션들을 전송하도록 구성된 브리지 유닛(450 및 460); 그리고
    상기 집적 회로 칩 상에서 구현되며, 내부 포인트-투-포인트 패킷 버스 링크(435) 상에서 상기 다수의 상향 패킷 트랜잭션들을 수신하도록 연결되고 상기 다수의 상향 패킷 트랜잭션들 각각의 목적지를 결정하도록 구성된 패킷 버스 스위치 유닛(430)을 포함하고,
    여기서 상기 패킷 버스 스위치 유닛은 상기 다수의 상향 패킷 트랜잭션들 각각의 상기 목적지 결정에 응답하여 상기 다수의 상향 패킷 트랜잭션들 중 선택된 것들을 제 1 포인트-투-포인트 패킷 버스 링크(401)에 연결된 제 1 프로세서 인터페이스로 라우팅하도록 구성되고 상기 다수의 상향 패킷 트랜잭션들 중 나머지들을 제 2 포인트-투-포인트 패킷 버스 링크(402)에 연결된 제 2 프로세서 인터페이스로 라우팅하도록 구성되는 것을 특징으로 하는 입력/출력 노드 스위치.
  2. 제 1항에 있어서, 상기 제 1 포인트-투-포인트 패킷 버스 링크 상에서 상기 다수의 상향 패킷 트랜잭션들의 상기 선택된 것들을 수신하도록 연결되고 상기 다수의 상형 패킷 트랜잭션들의 상기 선택된 것들을 송신하도록 연결된 제 1 송수신기 유닛(410)을 더 포함하는 것을 특징으로 하는 입력/출력 노드 스위치.
  3. 제 2항에 있어서, 상기 제 2 포인트-투-포인트 패킷 버스 링크(402) 상에서 상기 다수의 상향 패킷 트랜잭션들의 상기 나머지들을 수신하도록 연결되고 상기 다수의 상향 패킷 트랜잭션들의 상기 나머지들을 송신하도록 연결된 제 2 송수신기 유닛(420)을 더 포함하는 것을 특징으로 하는 입력/출력 노드 스위치.
  4. 제 3항에 있어서, 상기 패킷 버스 스위치 유닛은 상기 제 1 프로세서 인터페이스에 의해 보내진 제 1 다수의 하향 패킷 트랜잭션 및 상기 제 2 프로세서 인터페이스에 의해 보내진 제 2 다수의 하향 패킷 트랜잭션들을 수신하도록 더 구성되는 것을 특징으로 하는 입력/출력 노드 스위치.
  5. 제 1항에 있어서, 상기 패킷 버스 스위치 유닛은 프로그램가능 검색 테이블을 이용하여 상기 다수의 상향 패킷 트랜잭션들 각각의 상기 목적지를 결정하도록 더 구성되는 것을 특징으로 하는 입력/출력 노드 스위치.
  6. 제 3항에 있어서, 상기 패킷 버스 스위치 유닛은 상기 제 1 및 제 2 외부 패킷 버스 링크들에 연결된 상향 디바이스들에 대응하는 유효한 버퍼 공간 카운트들을 이용하여 상기 다수의 상향 패킷 트랜잭션들 각각의 상기 목적지를 결정하도록 더 구성되는 것을 특징으로 하는 입력/출력 노드 스위치.
  7. 프로그램된 명령들을 실행하도록 각각 구성된 제 1 프로세서(301A) 및 제 2 프로세서(301B)와 제 1 포인트-투-포인트 패킷 버스 링크(315A)에 의해 상기 제 1 프로세서에 연결되고 제 2 포인트-투-포인트 패킷 버스 링크(315B)에 의해 상기 제 2 프로세서에 연결되며 집적 회로 칩 상에서 구현된 입력/출력 노드 스위치(310)를 포함하며,
    여기서 상기 입력/출력 노드 스위치는 주변 버스(465)로부터 다수의 주변 트랜잭션들을 수신하도록 연결되고 상기 다수의 주변 트랜잭션들에 대응하는 다수의 상향 패킷 트랜잭션들을 송신하도록 구성되는 브리지 유닛(450)과 내부 포인트-투-포인트 패킷 버스 링크(435) 상에서 상기 다수의 상향 패킷 트랜잭션들을 수신하도록 연결되고 상기 다수의 상향 패킷 트랜잭션들 각각의 목적지를 결정하도록 구성된 패킷 버스 스위치 유닛(430)을 포함하며,
    여기서 상기 패킷 버스 스위치 유닛은 상기 다수의 상향 패킷 트랜잭션들 각각의 상기 목적지 결정에 응답하여 상기 다수의 상향 패킷 트랜잭션들 중 선택된 것들을 상기 제 1 포인트-투-포인트 패킷 버스 링크(401)를 통하여 상기 제 1 프로세서로 라우팅하고 상기 다수의 상향 패킷 트랜잭션들 중 나머지들을 상기 제 2 포인트-투-포인트 패킷 버스 링크(402)를 통하여 상기 제 2 프로세서로 라우팅하도록 더 구성되는 것을 특징으로 하는 멀티프로세서 컴퓨터 시스템(300).
  8. 제 16항에 있어서, 상기 입력/출력 노드 스위치는 상기 제 1 포인트-투-포인트 패킷 버스 링크 상에서 상기 다수의 상향 패킷 트랜잭션들 중 상기 선택된 것들을 수신하고 상기 다수의 상향 패킷 트랜잭션들 중 상기 선택된 것들을 송신하도록 연결된 제 1 송수신기 유닛(410)을 더 포함하는 것을 특징으로 하는 멀티프로세서 컴퓨터 시스템(300).
  9. 제 16항에 있어서, 상기 입력/출력 노드 스위치는 상기 제 2 포인트-투-포인트 패킷 버스 링크 상에서 상기 다수의 상향 패킷 트랜잭션들 중 상기 나머지들을 수신하고 상기 다수의 상향 패킷 트랜잭션들 중 상기 나머지들을 송신하도록 연결된 제 2 송수신기 유닛(420)을 더 포함하는 것을 특징으로 하는 멀티프로세서 컴퓨터 시스템(300).
  10. 제 16항에 있어서, 상기 패킷 버스 스위치 유닛은 상기 다수의 상향 패킷 트랜잭션들 각각에 관련된 어드레스를 디코드하도록 더 구성되는 것을 특징으로 하는 멀티프로세서 컴퓨터 시스템(300).
KR1020047008304A 2001-11-30 2002-09-12 멀티프로세서 컴퓨터 시스템 내의 연결을 위한 스위칭i/o 노드 KR100950101B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/998,758 US6836813B1 (en) 2001-11-30 2001-11-30 Switching I/O node for connection in a multiprocessor computer system
US09/998,758 2001-11-30

Publications (2)

Publication Number Publication Date
KR20050027083A true KR20050027083A (ko) 2005-03-17
KR100950101B1 KR100950101B1 (ko) 2010-03-29

Family

ID=25545535

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047008304A KR100950101B1 (ko) 2001-11-30 2002-09-12 멀티프로세서 컴퓨터 시스템 내의 연결을 위한 스위칭i/o 노드

Country Status (9)

Country Link
US (1) US6836813B1 (ko)
EP (1) EP1449100B1 (ko)
JP (1) JP4290556B2 (ko)
KR (1) KR100950101B1 (ko)
CN (1) CN1320469C (ko)
AU (1) AU2002336494A1 (ko)
DE (1) DE60210312T2 (ko)
TW (1) TWI236251B (ko)
WO (1) WO2003048951A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011031373A2 (en) * 2009-08-28 2011-03-17 Pcube Systems, Inc. High density multi node computer with integrated shared resources

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640843B2 (en) 2003-01-24 2010-01-05 Kraft Foods R & D, Inc. Cartridge and method for the preparation of beverages
CN1332334C (zh) * 2004-01-17 2007-08-15 中国科学院计算技术研究所 一种多处理机通信装置及其通信方法
US20050262391A1 (en) * 2004-05-10 2005-11-24 Prashant Sethi I/O configuration messaging within a link-based computing system
US20050286526A1 (en) * 2004-06-25 2005-12-29 Sood Sanjeev H Optimized algorithm for stream re-assembly
US20060004933A1 (en) * 2004-06-30 2006-01-05 Sujoy Sen Network interface controller signaling of connection event
US7461173B2 (en) * 2004-06-30 2008-12-02 Intel Corporation Distributing timers across processors
US20060031474A1 (en) * 2004-07-19 2006-02-09 Linden Cornett Maintaining reachability measures
US7907298B2 (en) * 2004-10-15 2011-03-15 Fujifilm Dimatix, Inc. Data pump for printing
JP4711709B2 (ja) * 2005-03-18 2011-06-29 富士通株式会社 パーティション割り振り方法及びコンピュータシステム
CN100447714C (zh) * 2005-11-04 2008-12-31 英业达股份有限公司 多任务式计算机周边装置联机切换接口
US7370135B2 (en) 2005-11-21 2008-05-06 Intel Corporation Band configuration agent for link based computing system
CN100454277C (zh) * 2006-01-27 2009-01-21 威盛电子股份有限公司 支持快速外围互连装置的计算机系统及相关方法
US7647476B2 (en) * 2006-03-14 2010-01-12 Intel Corporation Common analog interface for multiple processor cores
CN101501660B (zh) 2006-08-09 2011-11-16 日本电气株式会社 因特网连接交换机和因特网连接系统
US7853638B2 (en) * 2007-01-26 2010-12-14 International Business Machines Corporation Structure for a flexibly configurable multi central processing unit (CPU) supported hypertransport switching
US7797475B2 (en) * 2007-01-26 2010-09-14 International Business Machines Corporation Flexibly configurable multi central processing unit (CPU) supported hypertransport switching
US7930459B2 (en) * 2007-09-28 2011-04-19 Intel Corporation Coherent input output device
JP5482263B2 (ja) * 2010-02-08 2014-05-07 日本電気株式会社 エンドポイント共有システムおよびデータ転送方法
US9176913B2 (en) 2011-09-07 2015-11-03 Apple Inc. Coherence switch for I/O traffic
US9875204B2 (en) * 2012-05-18 2018-01-23 Dell Products, Lp System and method for providing a processing node with input/output functionality provided by an I/O complex switch
CN104268107B (zh) * 2014-09-05 2017-04-05 中国运载火箭技术研究院 一种箭载计算机处理器与外总线接口余度管理分离的系统
US10387346B2 (en) 2016-05-06 2019-08-20 Quanta Computer Inc. Dynamic PCIE switch reconfiguration mechanism

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5533198A (en) 1992-11-30 1996-07-02 Cray Research, Inc. Direction order priority routing of packets between nodes in a networked system
KR100304063B1 (ko) 1993-08-04 2001-11-22 썬 마이크로시스템즈, 인코포레이티드 2지점간상호접속통신유틸리티
AUPM699394A0 (en) 1994-07-25 1994-08-18 Curtin University Of Technology Link level controlled access to available asynchronous network service
US6175888B1 (en) 1996-04-10 2001-01-16 International Business Machines Corporation Dual host bridge with peer to peer support
US5991824A (en) * 1997-02-06 1999-11-23 Silicon Graphics, Inc. Method and system for simultaneous high bandwidth input output
US6085276A (en) 1997-10-24 2000-07-04 Compaq Computers Corporation Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies
US6424658B1 (en) * 1999-01-29 2002-07-23 Neomagic Corp. Store-and-forward network switch using an embedded DRAM
JP2001014269A (ja) * 1999-06-29 2001-01-19 Toshiba Corp コンピュータシステム
US6668299B1 (en) 1999-09-08 2003-12-23 Mellanox Technologies Ltd. Software interface between a parallel bus and a packet network
WO2001018988A1 (en) 1999-09-08 2001-03-15 Mellanox Technologies Ltd. Bridge between parallel buses over a packet-switched network
US6604161B1 (en) * 1999-09-29 2003-08-05 Silicon Graphics, Inc. Translation of PCI level interrupts into packet based messages for edge event drive microprocessors
JP2001325207A (ja) * 2000-05-17 2001-11-22 Hitachi Ltd キャッシュ内蔵型スイッチおよび計算機システムおよびキャッシュ内蔵型スイッチのスイッチ制御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011031373A2 (en) * 2009-08-28 2011-03-17 Pcube Systems, Inc. High density multi node computer with integrated shared resources
WO2011031373A3 (en) * 2009-08-28 2011-05-05 Pcube Systems, Inc. High density multi node computer with integrated shared resources
US9442540B2 (en) 2009-08-28 2016-09-13 Advanced Green Computing Machines-Ip, Limited High density multi node computer with integrated shared resources

Also Published As

Publication number Publication date
KR100950101B1 (ko) 2010-03-29
WO2003048951A1 (en) 2003-06-12
US6836813B1 (en) 2004-12-28
JP2005512194A (ja) 2005-04-28
TWI236251B (en) 2005-07-11
CN1592895A (zh) 2005-03-09
JP4290556B2 (ja) 2009-07-08
EP1449100A1 (en) 2004-08-25
DE60210312T2 (de) 2006-12-14
EP1449100B1 (en) 2006-03-29
CN1320469C (zh) 2007-06-06
AU2002336494A1 (en) 2003-06-17
DE60210312D1 (de) 2006-05-18

Similar Documents

Publication Publication Date Title
KR100950101B1 (ko) 멀티프로세서 컴퓨터 시스템 내의 연결을 위한 스위칭i/o 노드
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
US7165131B2 (en) Separating transactions into different virtual channels
US7865654B2 (en) Programmable bridge header structures
US8571033B2 (en) Smart routing between peers in a point-to-point link based system
KR101579917B1 (ko) Pcie 스위칭 네트워크에서 패킷 전송을 실행하기 위한 방법, 장치, 시스템, 및 저장 매체
US7924708B2 (en) Method and apparatus for flow control initialization
JP5490336B2 (ja) Pciエクスプレス・マルチプル・ルートi/o仮想化環境における低待ち時間の優先順位付け
US20090198956A1 (en) System and Method for Data Processing Using a Low-Cost Two-Tier Full-Graph Interconnect Architecture
JP3167906B2 (ja) データ伝送方法及びシステム
US20170017609A1 (en) Access control in peer-to-peer transactions over a peripheral component bus
US7564860B2 (en) Apparatus and method for workflow-based routing in a distributed architecture router
US7028130B2 (en) Generating multiple traffic classes on a PCI Express fabric from PCI devices
KR100419679B1 (ko) 트랜잭션 요청 라우팅 방법
EP1444587B1 (en) Computer system i/o node
US6950886B1 (en) Method and apparatus for reordering transactions in a packet-based fabric using I/O streams
US7038487B2 (en) Multi-function interface
US20200084138A1 (en) Controller, method for adjusting flow rule, and network communication system
JP4669174B2 (ja) チューナブルブロードキャスト/ポイントツーポイントパケットアービトレーション
CN114745325A (zh) 一种基于PCIe总线的MAC层数据交换方法及系统
US20040030799A1 (en) Bandwidth allocation fairness within a processing system of a plurality of processing devices
JP4842804B2 (ja) データを通信する処理システム及び方法
Eberle Designing a Cluster Network.
Döring et al. Low-Level SCI Protocols and Their Application to Flexible Switches

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: 20130227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160218

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 11