KR20060103098A - PCI-Express 통신 시스템 - Google Patents

PCI-Express 통신 시스템 Download PDF

Info

Publication number
KR20060103098A
KR20060103098A KR1020060015526A KR20060015526A KR20060103098A KR 20060103098 A KR20060103098 A KR 20060103098A KR 1020060015526 A KR1020060015526 A KR 1020060015526A KR 20060015526 A KR20060015526 A KR 20060015526A KR 20060103098 A KR20060103098 A KR 20060103098A
Authority
KR
South Korea
Prior art keywords
module
channel
packet
pci
transmission
Prior art date
Application number
KR1020060015526A
Other languages
English (en)
Other versions
KR100794421B1 (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 KR20060103098A publication Critical patent/KR20060103098A/ko
Application granted granted Critical
Publication of KR100794421B1 publication Critical patent/KR100794421B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • EFIXED CONSTRUCTIONS
    • E03WATER SUPPLY; SEWERAGE
    • E03FSEWERS; CESSPOOLS
    • E03F5/00Sewerage structures
    • E03F5/02Manhole shafts or other inspection chambers; Snow-filling openings; accessories
    • E03F5/021Connection of sewer pipes to manhole shaft
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16LPIPES; JOINTS OR FITTINGS FOR PIPES; SUPPORTS FOR PIPES, CABLES OR PROTECTIVE TUBING; MEANS FOR THERMAL INSULATION IN GENERAL
    • F16L5/00Devices for use where pipes, cables or protective tubing pass through walls or partitions
    • F16L5/02Sealing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Hydrology & Water Resources (AREA)
  • Public Health (AREA)
  • Water Supply & Treatment (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mechanical Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)

Abstract

PCI-Express 스위치를 이용한 PCI-Express 통신 시스템에서, 임의의 노드로부터 다른 노드에 리퀘스트가 발행된 후, 다른 노드로부터 리퀘스트원의 노드에 레스펀스가 돌려 보내질 때까지 PCI-Express 스위치 내에서 버스 ID/디바이스 ID의 재부여가 발생해도, 레스펀스 패킷을 당초의 리퀘스트원의 노드인 타깃에 송부할 수 있도록 한다. 각 노드에 이들을 식별하는 고유의 노드 ID를 설정함과 함께, 데이터 전송에 사용하는 각 채널에 채널 ID를 설정하고, 데이터 전송에 대한 패킷의 어드레스부 내에, 전송처 모듈의 상기 노드 ID와 그 데이터 전송에 사용하는 채널의 상기 채널 ID, 및 상기 패킷이 리퀘스트인지 레스펀스인지를 식별하는 패킷 타입을 설정한다. 그리고 데이터 전송에는, 어드레스 라우팅에 의해 라우팅되는 메모리 라이트 리퀘스트 패킷만을 사용한다.
레스펀스 패킷, 노드 ID, 채널 ID, 어드레스 라우팅, 리퀘스트 패킷

Description

PCI-Express 통신 시스템{PCI-EXPRESS COMMUNICATION SYSTEM}
도 1은 본 발명의 PCI-Express 통신 시스템에서 GET 전송 중에 장해가 발생한 경우를 설명하는 도면.
도 2는 본 발명의 PCI-Express 통신 시스템에서의 트랜잭션 패킷의 헤더의 일부를 설명하는 도면.
도 3은 본 발명의 PCI-Express 통신 시스템에서의 GET 전송의 시퀀스를 설명하는 도면.
도 4는 본 발명의 PCI-Express 통신 시스템에서의 PUT 전송의 시퀀스를 설명하는 도면.
도 5는 본 발명의 실시예의 시스템 구성도.
도 6은 본 발명의 실시예에서의 DMA 칩의 내부 구성도.
도 7은 본 발명의 실시예에서의 채널 ID의 일례를 도시하는 도면.
도 8은 본 발명의 실시예에서의 PUT 전송예를 설명하는 도면.
도 9는 본 발명의 실시예에서의 PUT 전송 시의 송신측 채널의 동작을 설명하는 도면.
도 10은 본 발명의 실시예에서의 PUT 전송 시의 수신측 채널의 동작을 설명하는 도면.
도 11은 본 발명의 실시예에서의 GET 전송예를 설명하는 도면.
도 12는 본 발명의 실시예에서의 GET 전송 시의 송신측 채널의 동작을 설명하는 도면.
도 13은 본 발명의 실시예에서의 GET 전송 시의 수신측 채널의 동작을 설명하는 도면.
도 14는 종래의 PcI-Express 통신 시스템을 설명하는 도면.
도 15는 종래의 PCI-Express 통신 시스템에서의 GET 전송의 시퀀스를 설명하는 도면.
도 16은 종래의 PCI-Express 통신 시스템에서의 PUT 전송의 시퀀스를 설명하는 도면.
도 17은 종래의 PCI-Express 통신 시스템에서의 트랜잭션 패킷의 헤더의 구성을 설명하는 도면.
도 18은 종래의 PCI-Express 통신 시스템에서 GET 전송 중에 장해가 발생한 경우를 설명하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
1, 10 : 모듈 A
2, 12 : 모듈 B
3, 13 : 모듈 C
4, 14 : 모듈 D
20∼27 : 집중 관리 모듈
30 : DMA 칩
311, 312 : PCI-Express 인터페이스 제어부
321, 322 : 패킷 제어부
331 : 메시지 수신용 채널
332 : 메시지 송신용 채널
341 : PUT 수신용 채널
342 : PUT 송신용 채널
351 : GET 수신용 채널
352 : GET 송신용 채널
361 : 전송 버퍼(NP→SP)
362 : 전송 버퍼(SP→NP)
370 : 전송 버퍼(루프 백)
40 : 메모리 컨트롤 허브
51, 52 : CPU
6, 60∼62 : PCI-Express 스위치
71, 72 : 프론트 엔드 라우터
100 : 본 발명의 PCI-Express 통신 시스템
200 : 본 발명의 실시예에서의 PCI-Express 통신 시스템
[특허 문헌1] 일본 특개2004-326151호 공보
본 발명은, PCI-Express를 인터페이스에 사용한, 복수의 노드가 PCI-Express 스위치를 통해 접속되는 통신 시스템, 및 그 통신 방법에 관한 것이다.
퍼스널 컴퓨터 내부의 각 파트 사이를 연결하는 버스의 규격이며, 현재 대부분의 퍼스널 컴퓨터에서 채용되어 있는 PCI에 대하여, 보다 고속의 전송 인터페이스 규격인 PCI-Express의 사양이 새롭게 책정되어 있다.
예를 들면, 특허 문헌1에 기재되어 있는 바와 같이, PCI-Express에서는, 패러럴 버스에서 발생하는 신호선과 신호선 사이에서의 어긋남(스큐우)을 방지하기 위해, 시리얼 링크가 채용되며, 이 시리얼 링크를 통해 패킷이 비동기로 전송된다. 또한, PCI-Express에서는, 층 단위의 업그레이드를 가능하게 하기 위해, 기능이 계층화되어 있다. 소프트웨어층에서 작성된 송신 데이터에 트랜잭션층에서 헤더가 부가되어 트랜잭션 패킷이 작성되며, 데이터 링크층에서 트랜잭션 패킷의 전후에 시퀀스 번호와 CRC가 부가되어 데이터 링크층 패킷으로 된다. 그리고, 물리층에서 물리적인 신호로 되어 전송 매체에 의해 송신된다.
그런데, PCI-Express에서는, 스위치(PCI-Express 스위치)에 의해 노드 사이의 접속을 행할 수 있다.
도 14는 PCI-Express 스위치에 의해 각 모듈이 접속되며, PCI-Express에 기초하여 모듈간의 통신을 행하는 종래의 PCI-Express 통신 시스템을 설명하는 도면 이다.
이하, PCI-Express에 대하여, 본 발명과 관련되는 부분을 더 설명한다.
PCI-Express의 사양에 따르면, 도 14의 모듈 A(1)와 같이, 루트 콤플렉스로 불리는 상위 계층의 톱에 위치하는 모듈이 필요하다. 또한, 도 14에 도시하는 바와 같이, 각 모듈에는, PCI-Express 스위치(6)의 포트마다 버스 번호(Bus Num.), 디바이스 번호(Device Num.)가 할당되어 있다. 도 14에는, 모듈 A(1)에는 버스 번호가 0, 디바이스 번호는 1이 할당되고, 모듈 B(2)에는 버스 번호가 1, 디바이스 번호는 2가 할당되며, 모듈 C(3)에는 버스 번호가 1, 디바이스 번호는 3이 할당되고, 모듈 D(4)에는 버스 번호가 1, 디바이스 번호는 4가 할당된 예가 도시되어 있다.
다음으로, PCI-Express 스위치(6)를 통한 모듈간의 패킷 커뮤니케이션에 대하여 설명한다. PCI-Express 스위치(6) 상에서의 패킷 라우팅에는, 패킷 헤더에 포함되는 어드레스에 의해 라우팅을 행하는 어드레스 라우팅과, 동일하게 패킷 헤더에 포함되는 버스, 디바이스 및 펑션 번호로 구성되는 리퀘스터 ID에 의한 ID 라우팅의 2종류가 있다.
이들 라우팅은, PCI-Express의 사양에서는, 리퀘스트 패킷에는 어드레스 라우팅이, 레스펀스 패킷에는 ID 라우팅이 사용되도록 적절하게 구분하여 사용되고 있다. 따라서, 메모리 라이트 리퀘스트 커맨드 및 메모리 리드 리퀘스트 커맨드에 대한 리퀘스트 패킷에는 어드레스 라우팅이 이용된다. 또한, 메모리 라이트 리퀘스트 커맨드에 대해서는, 레스펀스 패킷의 응답은 없는 사양으로 되어 있다.
예를 들면 도 14에 도시하는 바와 같이, (1) 모듈 D(4)로부터 모듈 C(3)에 메모리 리드 리퀘스트 커맨드를 발행하면, (2) PCI-Express 스위치(6)는 어드레스 라우팅에 의해 모듈 C(3)에 메모리 리드 리퀘스트 패킷을 전송하고, (3) 모듈 C(3)는, 리드 데이터를 레스펀스 패킷으로 하여 응답한다. (4) PCI-Express 스위치(6)는 ID 라우팅에 의해 모듈 D(4)에 레스펀스 패킷을 전송한다.
도 15는 상대측으로부터 데이터를 판독하는 GET 전송의 시퀀스를 설명하는 도면이다. 송신측의 펌웨어는, 판독하는 데이터를 지정하기 위한 디스크립터를 메모리 상에 작성하여 송신측의 하드웨어를 기동한다. 도 15에 도시하는 바와 같이, 송신원은 메모리 리드 리퀘스트 패킷을 발행하고, PCI-Express 스위치(6)에서 어드레스 라우팅에 의해 수신측에 송신한다. 수신측에서는, 수신측의 하드웨어가 수신측 펌웨어에 의한 수신 기동에 의해 아이들 상태로부터 기동하여, 송신측으로부터 보내어져 온 메모리 리드 리퀘스트 패킷에 의해 GET 요구를 수신한다. 그리고, 메모리로부터 데이터를 판독하여 GET 요구에 대한 응답을 레스펀스 패킷으로 반송한다. 레스펀스 패킷은 PCI-Express 스위치(6)에서 ID 라우팅에 의해 송신측에 반송된다. 송신측의 하드웨어는 레스펀스 패킷으로부터 리드 데이터를 수신하여, 메모리 상에 그 데이터를 기입하고 송신측 펌웨어에 인터럽트를 행하여, 송신측 펌웨어는 종료 처리를 행한다.
도 16은 상대측에 데이터를 기입하는 PUT 전송의 시퀀스를 설명하는 도면이다. 송신측이 발행하는 메모리 라이트 리퀘스트 패킷의 라우팅은, GET 전송의 경우와 마찬가지로 어드레스 라우팅에 의해 행해진다. 그리고, 수신측은, PCI- Express의 사양상(Non-Posted의 Memory Write에는 Response가 발생하지 않음), 레스펀스를 응답하지 않는다. 이 때문에, 요구측은 정상적으로 실행되었는지가 판단 불능이었다.
예를 들면, 도 14에 도시하는 바와 같이 PCI-express 스위치(6)의 포트마다 버스 번호, 디바이스 번호가 설정되어 있고, 모듈 D(4)로부터 모듈 C(3)에 메모리 리드 리퀘스트 패킷을 송신한 것으로 한다. 이 때, 패킷의 전송 제어는 어드레스 라우팅에 의해 행해진다. 모듈 C(3)는 리드 데이터를 레스펀스 패킷으로 하여 전송하지만, 이 때의 전송 제어는 ID 라우팅에 의해 행해진다.
도 17은 상기의 시퀀스에서 이용되는 패킷의 트랜잭션층의 헤더의 일부를 도시하는 것이다. PCI-Express 스위치(6)는, 레스펀스 패킷의 ID 라우팅일 때에는 도 17의 리퀘스터 ID(Requester ID)를 이용하여 라우팅을 행하고, 어드레스 라우팅일 때에는 도 17의 어드레스(Address)를 이용하여 라우팅을 행한다. 도 17의 리퀘스터 ID는 리퀘스트측의 모듈을 식별하는 정보로서, 도 17의 어드레스는 전송처에의 라우팅 정보를 포함하고 있다.
이러한 시스템에서, 도 18에 도시하는 바와 같이, 루트 콤플렉스인 모듈 A(1)가 이상 등에 의해 분리된 경우, 루트 콤플렉스가 부재로 되게 되기 때문에, 모듈 B∼N 중 어느 하나가 새로운 루트 콤플렉스로 되어 PCI-Express 스위치(6)가 갖는 각 포트의 구성 정보(버스 번호/디바이스 번호)를 변경할 필요가 있다. 도 18에 도시하는 예에서는 모듈 B(2)를 새로운 루트 콤플렉스로 하고 있다.
도 18에서, (1) 모듈 D(4)로부터 모듈 C(3)에 대하여 메모리 리드 리퀘스트 를 발행하고, (2) PCI-Express 스위치(6)는 어드레스 라우팅에 의해 모듈 C(3)에 메모리 리드 리퀘스트 패킷을 전송하며, (3) 그 때 루트 콤플렉스인 모듈 A(1)가 이상에 의해 분리된 것으로 한다. (4) 그렇게 하면, PCI-Express 스위치(6)에서는 각 포트의 컨피겨 정보가 변경되어, 버스 번호, 디바이스 번호의 재부여(이하, 「ID의 재부여」라고도 함)가 발생하고, 모듈 B(2)가 새로운 루트 콤플렉스로 된다. (5) 모듈 C(3)는 모듈 D(4)로부터의 메모리 리드 리퀘스트 커맨드에 의해 리드 데이터를 레스펀스 패킷으로 하여 응답하지만, 그 때의 리퀘스터 ID는, 모듈 D의 버스 번호와 디바이스 번호의 재부여 전의 번호로 구성되어 있다. (6) PCI-Express 스위치(6)는 모듈 C(3)로부터 보내어져 온 패킷은 레스펀스 패킷이기 때문에, ID 라우팅에 의해 라우팅을 행한다. (7) 그러나, 버스 번호, 디바이스 번호는 재부여에 의해 다른 모듈에 할당되어 있기 때문에, 상기 레스펀스 패킷은 잘못하여 다른 모듈에 보내어지거나, 또는 분실되게 될 가능성이 있다.
따라서, 본 발명의 해결하고자 하는 과제는, PCI-Express 스위치를 이용하여 노드간의 통신을 행하는 PCI-Express 통신 시스템에서, 임의의 노드로부터 다른 노드에 리퀘스트가 발행된 후, 다른 노드로부터 리퀘스트원의 노드에 레스펀스가 돌려 보내질 때까지 PCI-Express 스위치 내에서 버스 번호/디바이스 번호의 재부여가 발생해도, 레스펀스 패킷을 당초의 리퀘스트원의 노드인 타깃에 송부할 수 있도록 하는 것이다.
PCI-Express에 의해 접속되는 각 모듈에 고유의 노드 ID를 설정한다. 또한, 상대 모듈에 데이터를 기입하는 것(PUT 전송), 상대 모듈로부터 데이터를 판독하는 것(GET 전송)의 각각에 전용의 채널을 설치하고, 각 채널에 채널 ID를 설정한다. 그리고, PCI-Express에 따라 전송되는 트랜잭션 레이어 패킷의 헤더의 어드레스부 내에, 상기 노드 ID와 채널 ID를 설정함과 함께, 리퀘스트인지 레스펀스인지를 식별하는 패킷 타입을 설정한다.
그리고 데이터 전송에는, 어드레스 라우팅에 의해 라우팅되는 메모리 라이트 리퀘스트 패킷만을 사용한다.
또한, 리퀘스트의 경우에는 반드시 레스펀스 패킷(레스펀스 타입의 메모리 라이트 리퀘스트 패킷)에 의해 응답한다.
<실시예>
이하, 도 1∼도 4를 참조하여 본 발명의 원리를 설명한다.
도 1에 기재된 본 발명의 PCI-Express 통신 시스템(100)에서의 예시는, 도 18에 기재된 종래의 PCI-Express 통신 시스템에서의 예시와 마찬가지의 상황에서의 것이다. 즉, 도 18에 기재된 경우와 마찬가지로, 모듈 D(13)로부터 모듈 C(12)에 대하여 의미적으로는 메모리 리드 요구를 발행하고, 그것에 대하여 모듈 C(12)로부터 모듈 D(13)에 리드 데이터를 돌려 보내고자 하는 타이밍에서 모듈 A(10)의 이상에 의해 ID의 재부여가 발생하여, 도 18에 예시한 경우와 마찬가지로 모듈 D(13)의 버스 번호와 디바이스 번호가 1, 4로부터 1, 3으로 변화된 경우이다.
본 발명에서는, 데이터 전송에는, 어드레스 라우팅에 의해 라우팅되는 메모 리 라이트 리퀘스트 패킷만을 사용한다. 따라서, 의미적으로는 메모리 리드 요구이어도, 메모리 라이트 리퀘스트 패킷을 이용한다.
또한, 본 발명에서는, PCI-Express에 의해 접속되는 각 모듈에 고유의 노드 ID를 설정한다. 도 1에 예시된 것에서는, 모듈 A(10)에는 노드 ID=0이, 모듈 B(11), 모듈 C(12), 모듈 D(13)에는 각각 1, 2, 3의 노드 ID가 고정적으로 할당되어 있다.
또한, 상대 모듈에 데이터를 기입하는 PUT 전송, 상대 모듈로부터 데이터를 판독하는 GET 전송의 각각에 전용의 채널을 설치하고, 각 채널에 채널 ID를 설정한다.
도 2에, 본 발명에서 사용하는 트랜잭션 레이어 패킷의 헤더부의 구성을 도시한다. 또한, 음영부는 본 발명에 관계되지 않는 부분이기 때문에, 설명을 생략한다.
어드레스(Address)부(bit[63:2])에는, 도시하는 바와 같이, 상기 노드 ID(bit[62:58])와 채널 ID(bit[57:51])와 또한 패킷 타입 PT(bit[46])를 설정한다. 노드 ID는 패킷의 전송처이다. 채널 ID로 지정되는 채널은, 후에 상세하게 설명하는 바와 같이, PUT 전송, GET 전송마다 송신용 채널, 수신용 채널이 할당되어 있다. 따라서, 메모리 리드 요구이면 GET 전송의 수신용 채널의 채널 ID가 설정되며, 메모리 라이트 요구이면 PUT 전송의 수신용 채널의 채널 ID가 설정된다. 패킷 타입 PT는 패킷이 리퀘스트 패킷인지 레스펀스 패킷인지의 종별(0, 1)을 지정한다.
태그(Tag)부에는 패킷 전송원의 채널 ID가 세트되며, 전송처가 레스펀스 패 킷을 응답할 때, 응답처의 채널 ID로서 레스펀스 패킷의 어드레스부에 사용된다.
이하, 도 3을 참조하여, 메모리 리드 요구를 실행하는 본 발명의 GET 전송의 시퀀스를 설명한다.
송신측이 디스크립터를 해석하여 GET 전송 요구를 행하는 부분까지는 도 15에 기재된 종래예와 마찬가지이지만, 송신되는 패킷이 메모리 라이트 리퀘스트 패킷이고, 메모리 리드 리퀘스트 패킷이 아닌 점, 패킷의 어드레스부에는 앞에 설명한 바와 같이, 노드 ID와 채널 ID와 패킷 타입 PT가 설정되어 있는 점, 또한 태그부에는 패킷 전송원의 채널 ID가 세트되어 있는 점이 다르다. PCI-Express 스위치는 종래예와 마찬가지로 어드레스 라우팅에 의해 패킷의 라우팅을 행하여 수신측에 송신한다.
수신측에서는, 패킷 타입에 의해 리퀘스트 패킷인 것을 식별하고, 또한 채널 ID에 의해 GET 전송의 수신용 채널이 이용되고 있는 것을 판정하며, GET 요구인 것을 식별한다. 그 후, 메모리 상으로부터 데이터를 리드하고, 리드 데이터를 송신하는 부분까지는 도 15에 기재된 종래예와 마찬가지이지만, 송신되는 패킷이, 메모리 라이트 리퀘스트 패킷이고, 레스펀스 패킷이 아닌 점이 다르다. 단, 이 경우의 메모리 라이트 리퀘스트 패킷의 헤더에는, 패킷 타입이 레스펀스로 설정된다. 또한, 먼저 수신한 메모리 라이트 리퀘스트 패킷의 리퀘스터 ID로부터 리퀘스트 송신측의 모듈을 식별하고, 그것에 대응한 노드 ID를 수신처로서 설정한다. 또한 채널 ID는 태그부에 설정된 채널 ID를 이용한다. 의미적으로는 레스펀스이기는 하지만, PCI-Express 스위치는, 리퀘스트 패킷으로서 인식하기 때문에, 어드레스 라우팅에 의해 패킷의 라우팅을 행하여 송신측에 송신한다.
송신측에서는, 패킷 타입이 레스펀스인 것, 어드레스부에 GET 전송용의 송신 채널 ID가 포함되어 있는 것에 의해 GET 요구의 레스펀스인 것을 식별하고, 리드 데이터를 메모리에 기입하고 처리를 종료한다.
다음으로, 도 4를 참조하여, 메모리 라이트 요구를 실행하는 본 발명의 PUT 전송의 시퀀스를 설명한다.
송신측이 디스크립터를 해석하여 PUT 전송 요구를 행하고, 메모리 라이트 리퀘스트 패킷을 송신하는 부분까지는, 어드레스부와 태그부의 설정을 제외하고, 도 16에 기재된 종래예와 마찬가지이다. PCI-Express 스위치는 종래예와 마찬가지로 어드레스 라우팅에 의해 패킷의 라우팅을 행하여 수신측에 송신한다.
수신측에서는, 패킷 타입에 의해 리퀘스트 패킷인 것을 식별하고, 또한 채널 ID에 의해 PUT 전송의 수신용 채널이 이용되고 있는 것을 판정하여, PUT 요구인 것을 식별한다. 그리고 보내어져 온 데이터를 메모리에 기입한다.
여기까지는, 종래의 PUT 전송과 마찬가지이지만, 본 발명에서는, 예를 들면 하드웨어에, 메모리 라이트 리퀘스트 패킷을 이용하여 레스펀스를 응답하는 기능을 내장한다. 패킷 타입에 레스펀스를 설정한 메모리 라이트 리퀘스트 패킷을 송신측에 회신하기 때문에, PCI-Express 스위치는, 리퀘스트 패킷으로서 인식하여, 어드레스 라우팅에 의해 라우팅을 행하여 송신측에 전송하지만, 송신측은, 수신한 패킷의 어드레스부에 PUT 전송의 송신용 채널 ID가 포함되어 있기 때문에, 자 노드의 메모리 라이트 요구에 대한 레스펀스인 것을 인식할 수 있다.
다음으로, 본 발명의 실시예를 도 5∼도 13을 참조하여 설명한다.
본 실시예는, 각각의 서브 시스템 내의 모든 동작을 관리하는 최대 8개의 집중 관리 모듈 CM이 PCI-Express 스위치를 통해 상호 통신을 행하는 PCI-Express 통신 시스템(200)에서, 집중 관리 모듈 CM 내의 DMA 칩이 본 발명의 통신 방법을 실현하는 것이다.
도 5에 도시한 본 실시예의 시스템 구성은, 각각의 서브 시스템 내의 모든 동작을 관리하는 8개의 집중 관리 모듈 CM#0(20)∼CM#7(27)과 2개의 프론트 엔드 라우터 FRT#0(71), FRT#1(72)로 이루어지는 통신 시스템으로, 집중 관리 모듈 노드 사이를 프론트 엔드 라우터 내의 PCT-Express 스위치(61, 62)를 개재하여 접속하고 있다.
집중 관리 모듈 노드에는, CM#0부터 순서대로 노드 ID=0부터 7이 할당되어 있다. 집중 관리 모듈은, 도시하는 바와 같이, 2중화된 CPU#0(51), CPU#1(52)과 집중 관리 모듈 노드간의 통신 수단을 제공하는 DMA 칩(30), 또한 이들 CPU#0(51), CPU#1(52) 및 도시하지 않은 메모리와 DMA 칩(30)의 데이터 전송을 절단하는 메모리 컨트롤 허브 MCH(40)를 포함하고 있다.
또한, 프론트 엔드 라우터 FRT#0(71), FRT#1(72)도 2중화된 프론트 엔드 라우터를 구성하고 있다. 각 프론트 엔드 라우터 FRT#0(71), FRT#1(72)과 각 집중 관리 모듈 CM#0∼CM#7 사이에는, 도시하는 바와 같이 PCI-Express 2.5㎓의 라인 4개로 접속되어 있다.
도 6에 도시하는 것은 DMA 칩(30)의 내부 구성이다.
도 6에 도시하는 바와 같이, DMA 칩(30)은, PCI-Express 스위치측의 사우스 포트에 PCI-Express 인터페이스 제어부(311)를, CPU측의 노스 포트에는 PCI-Express 인터페이스 제어부(312)를 구비한다. 또한 각 PCI-Express 인터페이스 제어부(311)와 PCI-Express 인터페이스 제어부(312)에 각각 대응하여 패킷 제어부(321)와 패킷 제어부(322)를 구비한다. 또한, 메시지 수신용 채널(331), PUT 수신용 채널(341), GET 수신용 채널(351), 전송 버퍼(361, 370, 362), 메시지 송신용 채널(332), PUT 송신용 채널(342), GET 송신용 채널(352)을 구비한다.
메시지 수신용 채널(331)은 2채널, 메시지 송신용 채널(332)은 8채널, PUT 송신용 채널(342)은 5채널, GET 송신용 채널(352)은 4채널 구비되고, PUT 수신용 채널(341)과 GET 수신용 채널(351)은 각각 1채널 구비되어 있다.
전송 버퍼(361)는 사우스 포트측으로부터 노스 포트측에의 데이터 전송에 이용되며, 전송 버퍼(362)는 노스 포트측으로부터 사우스 포트측에의 데이터 전송에 이용된다. 전송 버퍼(370)는 노스 포트측으로부터의 루프 백용으로서 이용된다.
실선은 리퀘스트를 통지하는 제어선(REQ)을, 점선은 리퀘스트 완료를 통지하는 제어선(CMP)을 나타내고, 태선은 데이터선을 나타낸다. 하얗게 비어 있는 선은 PCI 헤더선을 나타내고, PCI-Express 인터페이스 제어부(311, 312)에 접속된 라인 TX와 RX는 각각 PCI-Express의 송신 라인과 수신 라인을 나타내고 있다.
또한, 도 6에 도시한 예에서는, 노스 포트측도 PCI-Express를 이용하고 있지만, 본 발명이 적용되는 것은 사우스 포트측이며, 노스 포트측이 PCI-Express를 이용하는 것은 필수는 아니다.
도 7에 도시하는 것은, 도 6에 도시한 채널의 채널 ID의 예이다. PUT 수신용 채널(341)과 GET 수신용 채널(351)은 앞에서 설명한 바와 같이, 물리적으로는 각각 1개이지만, 송신원이 패킷을 연속하여 순차적으로 송신하는 경우에, 그 패킷의 순서를 식별하기 위해 도시의 채널 ID가 순차적으로 이용된다.
이하, 본 실시예에서의 데이터 전송예를 설명한다. 또한, 도 3 및 도 4에 설명한 것과 마찬가지의 부분은, 반독되기 때문에, 생략하고 있는 부분도 있다.
도 8은 노드 ID가 0인 집중 관리 모듈 CM#0으로부터 노드 ID가 7인 집중 관리 모듈 CM#7에의 PUT 전송예를 설명하는 도면이다. 단, 레스펀스측은, 도 4에서 설명한 동작과 마찬가지이기 때문에, 생략되어 있다.
(1) 집중 관리 모듈 CM#0의 CPU는 DMA 칩 내의 PUT 송신용 채널에 대하여 PUT 전송 개시를 지시한다. (2) 집중 관리 모듈 CM#0의 DMA 칩은, 송신 패킷 헤더의 어드레스부의 bit[62:58](노드 ID부)를 집중 관리 모듈 CM#7의 노드 ID인 7로 변환하여 사우스 포트측에 데이터를 전송하고, 메모리 라이트 리퀘스트 패킷으로서 송출한다. (3) PCI-Express 스위치는 송신처 어드레스를 해석하고, 대응하는 어드레스에 패킷을 전송한다. (4) 집중 관리 모듈 CM#7의 DMA 칩은, 사우스 포트측으로부터 패킷을 수신하고 그 패킷 내의 노드 ID와 자 노드 ID가 일치하고 있는 것을 확인하여 PUT 수신용 채널에 통지한다.
다음으로 도 9에 의해, 상기 PUT 전송예에서의 송신측 채널의 동작을 설명한다. 도면 상의 태선의 화살표는 DMA 칩이 마스터로 되는 동작을, 실선의 화살표는 CPU가 마스터로 되는 동작을 나타낸다. 점선의 화살표는 인터럽트를 나타내는 것 이다.
(1) CPU는 PUT 전송용의 디스크립터를 작성하고, 메모리 내의 디스크립터 영역에 기입한다. 도시한 예에서는, 32바이트의 영역이 15개 설치되어 있다. (2) CPU는 DMA 칩에 대하여 PUT 전송 개시를 지시한다. (3) DMA 칩은 메모리 상의 디스크립터 영역으로부터, 디스크립터 데이터를 판독한다. (4) DMA 칩은 디스크립터를 해석하여, 메모리 상의 송신원으로서 어드레스 지정된 데이터 영역으로부터 데이터를 판독한다. (5) DMA 칩은 판독한 데이터를 사우스 포트측에 전송하고, 전송 상대의 DMA 칩으로부터의 완료 통지를 대기하여, 상대측으로부터의 레스펀스를 수신한다. (6) DMA 칩은 디스크립터의 완료 포인터를 갱신하고, 포인트값(디스크립터 종료 포인터)을 메모리 상의 디스크립터 종료 포인터 영역에 기입한다. (7) DMA 칩은 전송 종료를 통지하기 위해, CPU에 인터럽트를 건다. (8) CPU는 종료 포인터의 확정 동작으로서, 인터럽트의 해제와 종료 코드의 클리어를 행한다.
다음으로, 상기 PUT 전송예에서의 수신측 채널의 동작에 대하여, 도 10에 의해 설명한다.
(1) CPU로부터 PUT 수신용 채널의 기동을 걸어, DMA 칩에 전송 개시의 지시를 행한다(최초의 1회만 실시). (2) DMA 칩은 사우스 포트측으로부터 데이터를 수신한다. (3) DMA 칩은 수신한 데이터를 노스 포트측에 전송하여 메모리 내에 기입한다. (4) DMA 칩은 사우스 포트측에 레스펀스를 응답한다.
도 11은 노드 ID가 0인 집중 관리 모듈 CM#0으로부터 노드 ID가 7인 집중 관리 모듈 CM#7에의 GET 전송예를 설명하는 도면이다.
(1) 집중 관리 모듈 CM#0의 CPU는 DMA 칩 내의 GET 송신용 채널에 대하여 GET 전송 개시를 지시한다. (2) 집중 관리 모듈 CM#0의 DMA 칩은, 송신 패킷 헤더의 어드레스부의 bit[62:58](노드 ID부)를 집중 관리 모듈 CM#7의 노드 ID인 7로 변환하여 사우스 포트측에 데이터를 전송하고, 메모리 라이트 리퀘스트 패킷으로서 송출한다. (3) PCI-Express 스위치는 송신처 어드레스를 해석하고, 대응하는 어드레스에 패킷을 전송한다. (4) 집중 관리 모듈 CM#7의 DMA 칩은, 사우스 포트측으로부터 패킷을 수신하고 그 패킷 내의 노드 ID와 자 노드 ID가 일치하고 있는 것을 확인하여 GET 수신용 채널에 통지한다. (5) 집중 관리 모듈 CM#7의 DMA 칩은 자 집중 관리 모듈 내의 메모리로부터 데이터를 판독하여, 그 데이터를 사우스 포트측에 전송하고, 메모리 라이트 리퀘스트 패킷으로서 송출한다. (6) PCI-Express 스위치는 송신처 어드레스를 해석하고, 대응하는 어드레스에 패킷을 전송한다. (7) 집중 관리 모듈 CM#0의 DMA 칩 내 GET 송신용 채널은, 사우스 포트측으로부터 GET 데이터를 수취하여 노스 포트측에 전송한다.
다음으로 도 12에 의해, 상기 GET 전송예에서의 송신측 채널의 동작을 설명한다.
(1) CPU는 GET 전송용의 디스크립터를 작성하고, 메모리 내의 디스크립터 영역에 기입한다. (2) CPU는 DMA 칩에 대하여 GET 전송 개시를 지시한다. (3) DMA 칩은 메모리 상의 디스크립터 영역으로부터, 디스크립터 데이터를 판독한다. (4) DMA 칩은 디스크립터를 해석하여, 상대측 DMA 칩에 GET 데이터 요구를 한다. (5) DMA 칩은 사우스 포트로부터 GET 데이터를 수취하여, 노스 포트에 전송한다. (6) DMA 칩은 디스크립터의 완료 포인터를 갱신하고, 포인터값(디스크립터 종료 포인터)을 메모리 상의 디스크립터 종료 포인터 영역에 기입한다. (7) DMA 칩은 전송 종료를 통지하기 위해, CPU에 인터럽트를 건다. (8) CPU는 종료 포인터의 확정 동작으로서, 인터럽트의 해제와 종료 코드의 클리어를 행한다.
다음으로, 상기 PUT 전송예에서의 수신측 채널의 동작에 대하여, 도 13에 의해 설명한다.
(1) CPU로부터 GET 수신용 채널의 기동을 걸어, DMA 칩에 전송 개시의 지시를 행한다(최초의 1회만 실시). (2) DMA 칩은 사우스 포트측으로부터 GET 요구를 수신한다. (3) DMA 칩은 노스 포트측으로부터, 자 집중 관리 모듈 CM 상의 메모리로부터 데이터를 판독한다. (4) DMA 칩은 사우스 포트측에 GET 데이터를 전송한다.
이상 설명한 바와 같이, 본 발명의 PCI-Express 통신 시스템에서는, 데이터 전송에 어드레스 라우팅에 의해 라우팅되는 메모리 라이트 리퀘스트 패킷만 이용하기 때문에, 루트 콤플렉스 장해에 의해 ID의 재부여가 발생하였다고 해도, 레스펀스를 정상적으로 돌려 보낼 수 있다.
또한, PCI-Express 스위치의 거동이나 커맨드의 종별에 상관없이 레스펀스의 패킷을 응답할 수 있기 때문에, 데이터 전송이 정상적으로 종료되었는지의 여부를 커맨드 발행원의 모듈이 확실하게 파악할 수 있다.
(부기 1)
복수의 모듈 사이를 접속하여 패킷 전송을 행하는 PCI-Express 스위치를 이 용한 PCI-Express 통신 시스템에 있어서,
상기 복수의 모듈의 각각에 이들을 식별하는 고유의 노드 ID를 설정함과 함께, 데이터 전송에 사용하는 각 채널에 채널 ID를 설정하고,
데이터 전송에 대한 패킷의 어드레스부 내에, 전송처 모듈의 상기 노드 ID와 그 데이터 전송에 사용하는 채널의 상기 채널 ID, 및 상기 패킷이 리퀘스트인지 레스펀스인지를 식별하는 패킷 타입을 설정하며,
데이터 전송에는, 어드레스 라우팅에 의해 라우팅되는 메모리 라이트 리퀘스트 패킷을 사용하는 것을 특징으로 하는 PCI-Express 통신 시스템.
(부기 2)
상기 데이터 전송에 사용하는 채널로서, 상대 모듈에 데이터를 기입하는 PUT 전송 전용의 채널과 상대 모듈로부터 데이터를 판독하는 GET 전송 전용의 채널을 설치하는 것을 특징으로 하는 부기 1에 기재된 PCI-Express 통신 시스템.
(부기 3)
한쪽의 모듈로부터 다른쪽의 모듈에 메모리 리드 리퀘스트를 발행하는 경우에는, 상기 한쪽의 모듈은, 상기 메모리 라이트 리퀘스트 패킷의 어드레스부 내에, 상기 다른쪽의 모듈의 노드 ID와 상기 다른쪽의 모듈이 사용하는 GET 전송 전용 채널의 채널 ID, 및 리퀘스트인 것을 식별하는 상기 패킷 타입을 설정하는 것을 특징으로 하는 부기 2에 기재된 PCI-Express 통신 시스템.
(부기 4)
상기 한쪽의 모듈은, 그 한쪽의 모듈이 사용하는 GET 전송 전용 채널의 채널 ID를 상기 메모리 라이트 리퀘스트 패킷의 헤더 내에 설정하고, 상기 다른쪽의 모듈은, 그 채널 ID와 상기 한쪽의 모듈의 노드 ID, 및 레스펀스인 것을 식별하는 상기 패킷 타입을 메모리 라이트 리퀘스트 패킷의 헤더의 어드레스부 내에 설정하여 그 메모리 라이트 리퀘스트 패킷을 상기 한쪽의 모듈에 회신하는 것을 특징으로 하는 부기 3에 기재된 PCI-Express 통신 시스템.
(부기 5)
한쪽의 모듈로부터 다른쪽의 모듈에 메모리 라이트 리퀘스트를 발행하는 경우에는, 상기 한쪽의 모듈은, 상기 메모리 라이트 리퀘스트 패킷의 어드레스부 내에, 상기 다른쪽의 모듈의 노드 ID와 상기 다른쪽의 모듈이 사용하는 PUT 전송 전용 채널의 채널 ID, 및 리퀘스트인 것을 식별하는 상기 패킷 타입을 설정하는 것을 특징으로 하는 부기 2에 기재된 PCI-Express 통신 시스템.
(부기 6)
상기 한쪽의 모듈은, 그 한쪽의 모듈이 사용하는 PUT 전송 전용 채널의 채널 ID를 상기 메모리 라이트 리퀘스트 패킷의 헤더 내에 설정하고, 상기 다른쪽의 모듈은, 그 채널 ID와 상기 한쪽의 모듈의 노드 ID, 및 레스펀스인 것을 식별하는 상기 패킷 타입을 메모리 라이트 리퀘스트 패킷의 헤더의 어드레스부 내에 설정하고 그 메모리 라이트 리퀘스트 패킷을 상기 한쪽의 모듈에 회신하는 것을 특징으로 하는 부기 5에 기재된 PCI-Express 통신 시스템.
(부기 7)
상기 PUT 전용의 채널과 상기 GET 전용의 채널의 각각을 수신용 채널과 송신 용 채널로 구성하는 것을 특징으로 하는 부기 2에 기재된 PCI-Express 통신 시스템.
(부기 8)
한쪽의 모듈로부터 다른쪽의 모듈에 메모리 리드 리퀘스트를 발행하는 경우에는, 상기 한쪽의 모듈은, 상기 메모리 라이트 리퀘스트 패킷의 어드레스부 내에, 상기 다른쪽의 모듈의 노드 ID와 상기 다른쪽의 모듈의 GET 전송 전용의 수신용 채널의 채널 ID, 및 리퀘스트인 것을 식별하는 상기 패킷 타입을 설정하고, 또한 그 한쪽의 모듈이 사용하는 GET 전송 전용의 송신용 채널의 채널 ID를 상기 메모리 라이트 리퀘스트 패킷의 헤더 내에 설정하며, 상기 다른쪽의 모듈은, 그 송신용 채널의 채널 ID와 상기 한쪽의 모듈의 노드 ID, 및 레스펀스인 것을 식별하는 상기 패킷 타입을 메모리 라이트 리퀘스트 패킷의 헤더의 어드레스부 내에 설정하고 그 메모리 라이트 리퀘스트 패킷을 상기 한쪽의 모듈에 회신하는 것을 특징으로 하는 부기 7에 기재된 PCI-Express 통신 시스템.
(부기 9)
한쪽의 모듈로부터 다른쪽의 모듈에 메모리 라이트 리퀘스트를 발행하는 경우에는, 상기 한쪽의 모듈은, 상기 메모리 라이트 리퀘스트 패킷의 어드레스부 내에, 상기 다른쪽의 모듈의 노드 ID와 상기 다른쪽의 모듈의 PUT 전송 전용의 수신용 채널의 채널 ID, 및 리퀘스트인 것을 식별하는 상기 패킷 타입을 설정하고, 또한 그 한쪽의 모듈이 사용하는 PUT 전송 전용의 송신용 채널의 채널 ID를 상기 메모리 라이트 리퀘스트 패킷의 헤더 내에 설정하며, 상기 다른쪽의 모듈은, 그 송신 용 채널의 채널 ID와 상기 한쪽의 모듈의 노드 ID, 및 레스펀스인 것을 식별하는 상기 패킷 타입을 메모리 라이트 리퀘스트 패킷의 헤더의 어드레스부 내에 설정하고 그 메모리 라이트 리퀘스트 패킷을 상기 한쪽의 모듈에 회신하는 것을 특징으로 하는 부기 7에 기재된 PCI-Express 통신 시스템.
(부기 10)
복수의 모듈 사이를 접속하여 패킷 전송을 행하는 PCI-Express 스위치를 이용한 PCI-Express 통신 방법에 있어서,
상기 복수의 모듈의 각각에 이들을 식별하는 고유의 노드 ID를 설정함과 함께, 데이터 전송에 사용하는 각 채널에 채널 ID를 설정하고,
데이터 전송에 대한 패킷의 어드레스부 내에, 전송처 모듈의 상기 노드 ID와 그 데이터 전송에 사용하는 채널의 상기 채널 ID, 및 상기 패킷이 리퀘스트인지 레스펀스인지를 식별하는 패킷 타입을 설정하며,
리퀘스트인 경우에는 반드시 레스펀스 패킷을 응답하고,
데이터 전송에는, 어드레스 라우팅에 의해 라우팅되는 메모리 라이트 리퀘스트 패킷을 항상 사용하는 것을 특징으로 하는 PCI-Express 통신 방법.
(부기 11)
상기 데이터 전송에 사용하는 채널로서, 상대 모듈에 데이터를 기입하는 PUT 전송 전용의 채널과 상대 모듈로부터 데이터를 판독하는 GET 전송 전용의 채널을 설치하는 것을 특징으로 하는 부기 10에 기재된 PCI-Express 통신 방법.
(부기 12)
한쪽의 모듈로부터 다른쪽의 모듈에 메모리 리드 리퀘스트를 발행하는 경우에는, 상기 한쪽의 모듈은, 상기 메모리 라이트 리퀘스트 패킷의 어드레스부 내에, 상기 다른쪽의 모듈의 노드 ID와 상기 다른쪽의 모듈이 사용하는 GET 전송 전용 채널의 채널 ID, 및 리퀘스트인 것을 식별하는 상기 패킷 타입을 설정하는 것을 특징으로 하는 부기 11에 기재된 PCI-Express 통신 방법.
(부기 13)
상기 한쪽의 모듈은, 그 한쪽의 모듈이 사용하는 GET 전송 전용 채널의 채널 ID를 상기 메모리 라이트 리퀘스트 패킷의 헤더 내에 설정하고, 상기 다른쪽의 모듈은, 그 채널 ID와 상기 한쪽의 모듈의 노드 ID, 및 레스펀스인 것을 식별하는 상기 패킷 타입을 메모리 라이트 리퀘스트 패킷의 헤더의 어드레스부 내에 설정하며 그 메모리 라이트 리퀘스트 패킷을 상기 한쪽의 모듈에 회신하는 것을 특징으로 하는 부기 12에 기재된 PCI-Express 통신 방법.
(부기 14)
한쪽의 모듈로부터 다른쪽의 모듈에 메모리 라이트 리퀘스트를 발행하는 경우에는, 상기 한쪽의 모듈은, 상기 메모리 라이트 리퀘스트 패킷의 어드레스부 내에, 상기 다른쪽의 모듈의 노드 ID와 상기 다른쪽의 모듈이 사용하는 PUT 전송 전용 채널의 채널 ID, 및 리퀘스트인 것을 식별하는 상기 패킷 타입을 설정하는 것을 특징으로 하는 부기 11에 기재된 PCI-Express 통신 방법.
(부기 15)
상기 한쪽의 모듈은, 그 한쪽의 모듈이 사용하는 PUT 전송 전용 채널의 채널 ID를 상기 메모리 라이트 리퀘스트 패킷의 헤더 내에 설정하고, 상기 다른쪽의 모듈은, 그 채널 ID와 상기 한쪽의 모듈의 노드 ID, 및 레스펀스인 것을 식별하는 상기 패킷 타입을 메모리 라이트 리퀘스트 패킷의 헤더의 어드레스부 내에 설정하며 그 메모리 라이트 리퀘스트 패킷을 상기 한쪽의 모듈에 회신하는 것을 특징으로 하는 부기 14에 기재된 PCI-Express 통신 방법.
(부기 16)
PCI-Express 스위치를 이용하여 패킷 전송을 행하는 PCI-Express 통신 시스템의 모듈에 있어서,
그 모듈을 식별하는 고유의 노드 ID를 설정함과 함께, 데이터 전송에 사용하는 각 채널에 채널 ID를 설정하고,
데이터 전송에 대한 패킷의 어드레스부 내에, 전송처 모듈의 상기 노드 ID와 그 데이터 전송에 사용하는 채널의 상기 채널 ID, 및 상기 패킷이 리퀘스트인지 레스펀스인지를 식별하는 패킷 타입을 설정하며,
데이터 전송에는, 어드레스 라우팅에 의해 라우팅되는 메모리 라이트 리퀘스트 패킷을 사용하는 것을 특징으로 하는 PCI-Express 통신 시스템의 모듈.
(부기 17)
상기 데이터 전송에 사용하는 채널로서, 상대 모듈에 데이터를 기입하는 PUT 전송 전용의 채널과 상대 모듈로부터 데이터를 판독하는 GET 전송 전용의 채널을 설치하는 것을 특징으로 하는 부기 16에 기재된 PCI-Express 통신 시스템의 모듈.
(부기 18)
상대방의 모듈에 메모리 리드 리퀘스트를 발행하는 경우에는, 상기 메모리 라이트 리퀘스트 패킷의 어드레스부 내에, 상기 상대방의 모듈의 노드 ID와 상기 상대방의 모듈이 사용하는 GET 전송 전용 채널의 채널 ID, 및 리퀘스트인 것을 식별하는 상기 패킷 타입을 설정하는 것을 특징으로 하는 부기 17에 기재된 PCI-Express 통신 시스템의 모듈.
(부기 19)
상대방의 모듈에 메모리 라이트 리퀘스트를 발행하는 경우에는, 상기 메모리 라이트 리퀘스트 패킷의 어드레스부 내에, 상기 상대방의 모듈의 노드 ID와 상기 상대방의 모듈이 사용하는 PUT 전송 전용 채널의 채널 ID, 및 리퀘스트인 것을 식별하는 상기 패킷 타입을 설정하는 것을 특징으로 하는 부기 17에 기재된 PCI-Express 통신 시스템의 모듈.
(부기 20)
상대방의 모듈로부터 메모리 라이트 리퀘스트를 수신한 경우에는, 메모리 라이트 리퀘스트 패킷의 어드레스부 내에, 상기 상대방의 모듈의 노드 ID와 레스펀스인 것을 식별하는 상기 패킷 타입을 설정하고, 그 메모리 라이트 리퀘스트 패킷을 상대방의 모듈에 회신하는 것을 특징으로 하는 부기 16에 기재된 PCI-Express 통신 시스템의 모듈.
전송 수단에 ID 라우팅을 사용하지 않기 때문에, PCI-Express 스위치에 의해 버스 번호, 디바이스 번호의 재부여가 발생해도 리퀘스트를 발행한 모듈에 확실하 게 레스펀스를 응답할 수 있다.
수신측 모듈은, 송신되어 온 패킷 헤더를 해석하고, 채널 ID에 의해 PUT 전송인지 GET 전송인지, 패킷 타입에 의해 리퀘스트인지 레스펀스인지를 판단하여 상응의 동작을 행할 수 있다.
또한, 메모리 라이트 리퀘스트 커맨드에 대해서도, 레스펀스 타입의 메모리 라이트 리퀘스트 패킷에 정보를 부가함으로써, 커맨드가 정상적으로 실행되었는지의 여부의 판단이 가능하게 된다.

Claims (10)

  1. 복수의 모듈 사이를 접속하여 패킷 전송을 행하는 PCI-Express 스위치를 이용한 PCI-Express 통신 시스템에 있어서,
    상기 복수의 모듈의 각각에 이들을 식별하는 고유의 노드 ID를 설정함과 함께, 데이터 전송에 사용하는 각 채널에 채널 ID를 설정하고,
    데이터 전송에 대한 패킷의 어드레스부 내에, 전송처 모듈의 상기 노드 ID와 그 데이터 전송에 사용하는 채널의 상기 채널 ID, 및 상기 패킷이 리퀘스트인지 레스펀스인지를 식별하는 패킷 타입을 설정하며,
    데이터 전송에는, 어드레스 라우팅에 의해 라우팅되는 메모리 라이트 리퀘스트 패킷을 사용하는 것을 특징으로 하는 PCI-Express 통신 시스템.
  2. 제1항에 있어서,
    상기 데이터 전송에 사용하는 채널로서, 상대 모듈에 데이터를 기입하는 PUT 전송 전용의 채널과 상대 모듈로부터 데이터를 판독하는 GET 전송 전용의 채널을 설치하는 것을 특징으로 하는 PCI-Express 통신 시스템.
  3. 제2항에 있어서,
    한쪽의 모듈로부터 다른쪽의 모듈에 메모리 리드 리퀘스트를 발행하는 경우에는, 상기 한쪽의 모듈은, 상기 메모리 라이트 리퀘스트 패킷의 어드레스부 내에, 상기 다른쪽의 모듈의 노드 ID와 상기 다른쪽의 모듈이 사용하는 GET 전송 전용 채널의 채널 ID, 및 리퀘스트인 것을 식별하는 상기 패킷 타입을 설정하는 것을 특징으로 하는 PCI-Express 통신 시스템.
  4. 제3항에 있어서,
    상기 한쪽의 모듈은, 상기 한쪽의 모듈이 사용하는 GET 전송 전용 채널의 채널 ID를 상기 메모리 라이트 리퀘스트 패킷의 헤더 내에 설정하고, 상기 다른쪽의 모듈은, 그 채널 ID와 상기 한쪽의 모듈의 노드 ID, 및 레스펀스인 것을 식별하는 상기 패킷 타입을 메모리 라이트 리퀘스트 패킷의 헤더의 어드레스부 내에 설정하고 그 메모리 라이트 리퀘스트 패킷을 상기 한쪽의 모듈에 회신하는 것을 특징으로 하는 PCI-Express 통신 시스템.
  5. 제2항에 있어서,
    한쪽의 모듈로부터 다른쪽의 모듈에 메모리 라이트 리퀘스트를 발행하는 경우에는, 상기 한쪽의 모듈은, 상기 메모리 라이트 리퀘스트 패킷의 어드레스부 내에, 상기 다른쪽의 모듈의 노드 ID와 상기 다른쪽의 모듈이 사용하는 PUT 전송 전용 채널의 채널 ID, 및 리퀘스트인 것을 식별하는 상기 패킷 타입을 설정하는 것을 특징으로 하는 PCI-Express 통신 시스템.
  6. 제5항에 있어서,
    상기 한쪽의 모듈은, 상기 한쪽의 모듈이 사용하는 PUT 전송 전용 채널의 채널 ID를 상기 메모리 라이트 리퀘스트 패킷의 헤더 내에 설정하고, 상기 다른쪽의 모듈은, 그 채널 ID와 상기 한쪽의 모듈의 노드 ID, 및 레스펀스인 것을 식별하는 상기 패킷 타입을 메모리 라이트 리퀘스트 패킷의 헤더의 어드레스부 내에 설정하고 그 메모리 라이트 리퀘스트 패킷을 상기 한쪽의 모듈에 회신하는 것을 특징으로 하는 PCI-Express 통신 시스템.
  7. 복수의 모듈 사이를 접속하여 패킷 전송을 행하는 PCI-Express 스위치를 이용한 PCI-Express 통신 방법에 있어서,
    상기 복수의 모듈의 각각에 이들을 식별하는 고유의 노드 ID를 설정함과 함께, 데이터 전송에 사용하는 각 채널에 채널 ID를 설정하고,
    데이터 전송에 대한 패킷의 어드레스부 내에, 전송처 모듈의 상기 노드 ID와 그 데이터 전송에 사용하는 채널의 상기 채널 ID, 및 상기 패킷이 리퀘스트인지 레스펀스인지를 식별하는 패킷 타입을 설정하며,
    리퀘스트인 경우에는 반드시 레스펀스 패킷을 응답하고,
    데이터 전송에는, 어드레스 라우팅에 의해 라우팅되는 메모리 라이트 리퀘스트 패킷을 항상 사용하는 것을 특징으로 하는 PCI-Express 통신 방법.
  8. PCI-Express 스위치를 이용하여 패킷 전송을 행하는 PCI-Express 통신 시스템의 모듈에 있어서,
    상기 모듈을 식별하는 고유의 노드 ID를 설정함과 함께, 데이터 전송에 사용하는 각 채널에 채널 ID를 설정하고,
    데이터 전송에 대한 패킷의 어드레스부 내에, 전송처 모듈의 상기 노드 ID와 그 데이터 전송에 사용하는 채널의 상기 채널 ID, 및 상기 패킷이 리퀘스트인지 레스펀스인지를 식별하는 패킷 타입을 설정하며,
    데이터 전송에는, 어드레스 라우팅에 의해 라우팅되는 메모리 라이트 리퀘스트 패킷을 사용하는 것을 특징으로 하는 PCI-Express 통신 시스템의 모듈.
  9. 제8항에 있어서,
    상기 데이터 전송에 사용하는 채널로서, 상대 모듈에 데이터를 기입하는 PUT 전송 전용의 채널과 상대 모듈로부터 데이터를 판독하는 GET 전송 전용의 채널을 설치하는 것을 특징으로 하는 PCI-Express 통신 시스템의 모듈.
  10. 제8항에 있어서,
    상대방의 모듈로부터 메모리 라이트 리퀘스트를 수신한 경우에는, 메모리 라이트 리퀘스트 패킷의 어드레스부 내에, 상기 상대방의 모듈의 노드 ID와 레스펀스인 것을 식별하는 상기 패킷 타입을 설정하고, 그 메모리 라이트 리퀘스트 패킷을 상대방의 모듈에 회신하는 것을 특징으로 하는 PCI-Express 통신 시스템의 모듈.
KR1020060015526A 2005-03-24 2006-02-17 PCI-Express 통신 시스템 KR100794421B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005085307 2005-03-24
JPJP-P-2005-00085307 2005-03-24
JPJP-P-2005-00345822 2005-11-30
JP2005345822A JP4410190B2 (ja) 2005-03-24 2005-11-30 PCI−Express通信システム

Publications (2)

Publication Number Publication Date
KR20060103098A true KR20060103098A (ko) 2006-09-28
KR100794421B1 KR100794421B1 (ko) 2008-01-16

Family

ID=37036535

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060015526A KR100794421B1 (ko) 2005-03-24 2006-02-17 PCI-Express 통신 시스템

Country Status (3)

Country Link
US (1) US7484033B2 (ko)
JP (1) JP4410190B2 (ko)
KR (1) KR100794421B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180082090A (ko) * 2017-01-10 2018-07-18 충북대학교 산학협력단 Pci 익스프레스 기반의 연결통신망에서 배리어 구현 방법

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519761B2 (en) * 2006-10-10 2009-04-14 International Business Machines Corporation Transparent PCI-based multi-host switch
US20090083392A1 (en) * 2007-09-25 2009-03-26 Sun Microsystems, Inc. Simple, efficient rdma mechanism
US9396159B2 (en) * 2007-09-25 2016-07-19 Oracle America, Inc. Simple, reliable, connectionless communication mechanism
WO2009040920A1 (ja) * 2007-09-27 2009-04-02 Fujitsu Limited 入出力装置、情報処理システム、制御方法および制御プログラム
JP5151567B2 (ja) * 2008-03-07 2013-02-27 日本電気株式会社 データ通信システムのデットロック回避方法及びそのシステム並びにその制御プログラム
US7685352B2 (en) * 2008-07-31 2010-03-23 International Business Machines Corporation System and method for loose ordering write completion for PCI express
JP5272601B2 (ja) * 2008-09-16 2013-08-28 株式会社リコー 画像形成装置およびデータ転送方法
US8108584B2 (en) * 2008-10-15 2012-01-31 Intel Corporation Use of completer knowledge of memory region ordering requirements to modify transaction attributes
JP5267943B2 (ja) 2009-03-30 2013-08-21 日本電気株式会社 PCI−Express通信システム、及びPCI−Express通信方法
US8769175B2 (en) 2011-03-09 2014-07-01 International Business Machines Corporation Adjustment of post and non-post packet transmissions in a communication interconnect
US9021156B2 (en) 2011-08-31 2015-04-28 Prashanth Nimmala Integrating intellectual property (IP) blocks into a processor
US8930602B2 (en) 2011-08-31 2015-01-06 Intel Corporation Providing adaptive bandwidth allocation for a fixed priority arbiter
US8775700B2 (en) 2011-09-29 2014-07-08 Intel Corporation Issuing requests to a fabric
US8713240B2 (en) 2011-09-29 2014-04-29 Intel Corporation Providing multiple decode options for a system-on-chip (SoC) fabric
US8929373B2 (en) 2011-09-29 2015-01-06 Intel Corporation Sending packets with expanded headers
US8874976B2 (en) 2011-09-29 2014-10-28 Intel Corporation Providing error handling support to legacy devices
US8713234B2 (en) * 2011-09-29 2014-04-29 Intel Corporation Supporting multiple channels of a single interface
US8805926B2 (en) 2011-09-29 2014-08-12 Intel Corporation Common idle state, active state and credit management for an interface
US8711875B2 (en) 2011-09-29 2014-04-29 Intel Corporation Aggregating completion messages in a sideband interface
US9053251B2 (en) 2011-11-29 2015-06-09 Intel Corporation Providing a sideband message interface for system on a chip (SoC)
JP6273972B2 (ja) 2014-03-31 2018-02-07 富士通株式会社 情報処理装置、送受信装置、及び情報処理装置の制御方法
US10911261B2 (en) 2016-12-19 2021-02-02 Intel Corporation Method, apparatus and system for hierarchical network on chip routing
US10846126B2 (en) 2016-12-28 2020-11-24 Intel Corporation Method, apparatus and system for handling non-posted memory write transactions in a fabric
US10740454B2 (en) * 2017-12-28 2020-08-11 Intel Corporation Technologies for USB controller state integrity protection with trusted I/O
JP7423367B2 (ja) * 2020-03-23 2024-01-29 キオクシア株式会社 通信システム、デバイス、及び通信方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371897A (en) * 1991-08-27 1994-12-06 International Business Machines Corporation Method for requesting identification of a neighbor node in a data processing I/O system
KR19990011955A (ko) * 1997-07-25 1999-02-18 윤종용 Pci 브리지
JP3228708B2 (ja) * 1998-04-03 2001-11-12 パイオニア株式会社 伝送システムにおける受信インターフェース装置
JP2001142845A (ja) 1999-11-17 2001-05-25 Toshiba Corp コンピュータシステムおよびデータ転送制御方法
US6971098B2 (en) * 2001-06-27 2005-11-29 Intel Corporation Method and apparatus for managing transaction requests in a multi-node architecture
US7340555B2 (en) 2001-09-28 2008-03-04 Dot Hill Systems Corporation RAID system for performing efficient mirrored posted-write operations
US20040172493A1 (en) 2001-10-15 2004-09-02 Advanced Micro Devices, Inc. Method and apparatus for handling split response transactions within a peripheral interface of an I/O node of a computer system
US6874042B2 (en) 2003-03-11 2005-03-29 Dell Products L.P. System and method for using a switch to route peripheral and graphics data on an interconnect
US20040210754A1 (en) 2003-04-16 2004-10-21 Barron Dwight L. Shared security transform device, system and methods
JP4492035B2 (ja) 2003-04-21 2010-06-30 日本電気株式会社 データ処理装置
US7380018B2 (en) 2003-05-15 2008-05-27 Broadcom Corporation Peripheral bus transaction routing using primary and node ID routing information
US20050034045A1 (en) 2003-08-08 2005-02-10 Lueck Andrew W. System for optimizing PCI-Express communications
US7293127B2 (en) 2004-01-15 2007-11-06 Ati Technologies, Inc. Method and device for transmitting data using a PCI express port
US7165131B2 (en) 2004-04-27 2007-01-16 Intel Corporation Separating transactions into different virtual channels
US7058738B2 (en) 2004-04-28 2006-06-06 Microsoft Corporation Configurable PCI express switch which allows multiple CPUs to be connected to multiple I/O devices
US20050289306A1 (en) * 2004-06-28 2005-12-29 Sridhar Muthrasanallur Memory read requests passing memory writes
US7191255B2 (en) 2004-10-27 2007-03-13 Intel Corporation Transaction layer link down handling for PCI express
US8285907B2 (en) 2004-12-10 2012-10-09 Intel Corporation Packet processing in switched fabric networks
US7886086B2 (en) 2005-02-03 2011-02-08 International Business Machines Corporation Method and apparatus for restricting input/output device peer-to-peer operations in a data processing system to improve reliability, availability, and serviceability
US7260664B2 (en) 2005-02-25 2007-08-21 International Business Machines Corporation Interrupt mechanism on an IO adapter that supports virtualization
US8516165B2 (en) * 2005-10-19 2013-08-20 Nvidia Corporation System and method for encoding packet header to enable higher bandwidth efficiency across bus links
US8018704B2 (en) * 2006-08-23 2011-09-13 Micrel, Inc. Parallel analog and digital timers in power controller circuit breaker

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180082090A (ko) * 2017-01-10 2018-07-18 충북대학교 산학협력단 Pci 익스프레스 기반의 연결통신망에서 배리어 구현 방법

Also Published As

Publication number Publication date
JP4410190B2 (ja) 2010-02-03
JP2006302250A (ja) 2006-11-02
US20060218336A1 (en) 2006-09-28
KR100794421B1 (ko) 2008-01-16
US7484033B2 (en) 2009-01-27

Similar Documents

Publication Publication Date Title
KR100794421B1 (ko) PCI-Express 통신 시스템
US7953917B2 (en) Communications protocol expander
US6603744B2 (en) Connection establishment method, communication method, state change transmission method, state changing method, wireless apparatus, wireless device, and computer
EP2047370B1 (en) Method and apparatus for distributing usb hub functions across a network
KR100958685B1 (ko) Dma 컨트롤러, 노드, 데이터 전송 제어 방법 및 프로그램을 기록한 컴퓨터 판독가능한 기록 매체
US7210000B2 (en) Transmitting peer-to-peer transactions through a coherent interface
KR102420530B1 (ko) 대체 프로토콜 선택
JP2002300229A (ja) Usb通信制御装置、usb通信システムおよびusb通信制御方法
KR102007368B1 (ko) Pci 익스프레스 스위치 및 이를 이용한 컴퓨터 시스템
US20130179722A1 (en) Ring topology for compute devices
US6327637B1 (en) Interface tap for 1394-enabled serial bus device
US7765357B2 (en) PCI-express communications system
JP4920036B2 (ja) メモリチャネル上の応答のスケジューリング
JP2006178615A (ja) フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラム
JP4918284B2 (ja) PCI−Express通信システム
US20080263248A1 (en) Multi-drop extension for a communication protocol
JP2009282917A (ja) サーバ間通信機構及びコンピュータシステム
CN100456273C (zh) PCI-Express通信系统及其通信方法
CN112148659B (zh) 数据传输电路
CN117971135B (zh) 存储设备的访问方法、装置、存储介质和电子设备
JP4154678B2 (ja) 情報処理装置
US8010732B2 (en) Storage system provided with a plurality of storage modules
CN114595185A (zh) 一种多cpu系统及其通信方法
JPH10320345A (ja) バスコントローラ
KR19980083753A (ko) 마스터-슬레이브간의 멀티플렉싱 프로토콜

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131218

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee