KR101082701B1 - 정보 처리 시스템, 통신 제어 장치 및 방법 - Google Patents

정보 처리 시스템, 통신 제어 장치 및 방법 Download PDF

Info

Publication number
KR101082701B1
KR101082701B1 KR1020100022286A KR20100022286A KR101082701B1 KR 101082701 B1 KR101082701 B1 KR 101082701B1 KR 1020100022286 A KR1020100022286 A KR 1020100022286A KR 20100022286 A KR20100022286 A KR 20100022286A KR 101082701 B1 KR101082701 B1 KR 101082701B1
Authority
KR
South Korea
Prior art keywords
node
data
virtual channel
calculator
packet
Prior art date
Application number
KR1020100022286A
Other languages
English (en)
Other versions
KR20100105414A (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 KR20100105414A publication Critical patent/KR20100105414A/ko
Application granted granted Critical
Publication of KR101082701B1 publication Critical patent/KR101082701B1/ko

Links

Images

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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies

Landscapes

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

Abstract

본 발명은 계산기 노드 사이에서 처리 요구 데이터와 그 응답 데이터가 확실하게 송수신되도록 하는 것을 과제로 한다.
계산기 노드 N1∼N16는, 제1 가상 채널과 제2 가상 채널에 의해 다차원 메쉬형으로 접속된다. 각 계산기 노드 N1∼N16는 제1 가상 채널을 통하여 송수신되는 데이터를 제1 차원 오더에 따라 라우팅하고, 제2 가상 채널을 통하여 송수신되는 데이터를 제1 차원 오더와는 역순인 제2 차원 오더에 따라 라우팅한다. 또, 각 계산기 노드 N1∼N16에서는, 자(自)노드에 대한 처리 요구 데이터가 제1 가상 채널을 통하여 수신되었을 때, 그것에 대한 응답 데이터가 제2 가상 채널을 통하여 송신된다. 이것에 의해, 처리 요구 데이터와 응답 데이터의 전송 경로가 일치하여, 내고장성이 향상된다.

Description

정보 처리 시스템, 통신 제어 장치 및 방법{INFORMATION PROCESSING SYSTEM, APPARATUS OF CONTROLLING COMMUNICATION, AND METHOD OF CONTROLLING COMMUNICATION}
본 발명은 복수의 계산기 노드를 갖춘 정보 처리 시스템, 이 정보 처리 시스템의 각 계산기 노드에 설치되는 통신 제어 장치 및 통신 제어 방법에 관한 것이다.
최근, HPC(High-Performance Computing) 분야에서, 수만 노드의 프로세서가 접속된 초병렬 계산기가 주목받고 있다. 수만 노드 규모의 초병렬 계산기는 일반적으로, 노드당 하드웨어 비용이 시스템 규모에 관계없이 일정해지는 설계가 채택된다. 노드끼리 인터커넥트 접속된 노드간 접속 네트워크에서는, 일반적으로, 노드와 노드를 서로 접속하는 직접망(direct network)이 이용된다. 직접망의 하드웨어 비용은 각 노드의 접속 포트수로 결정되며, 시스템 규모에 관계없이 일정하다. 초병렬 계산기에서 수만 노드를 접속하는 직접망의 접속 토폴로지로는 다차원 메쉬(mesh) 또는 다차원 토러스(torus)가 일반적으로 이용된다.
이러한 시스템에서는, 복수의 패킷이 순환적으로 전송 요구됨으로써 통신이 불가능해지는 데드락(deadlock)을 회피하기 위한 수단이 필요하게 된다. 데드락을 회피하기 위한 일반적인 기술로는, 예를 들어 통신 경로의 차원 순서를 고정하는 차원 오더 라우팅(dimension order routing)이 알려져 있다. 또, 채널 번호로서 각각 높은 값, 낮은 값을 갖는 이중의 가상 채널을 노드에 할당하여, 전송처의 채널 번호가 오름차순 또는 내림차순이 되도록 라우팅하는 기술도 알려져 있다(예를 들어, 비특허문헌 1 참조).
그런데, 수만 노드 규모의 시스템에서는, 노드가 고장날 때마다 시스템 전체를 정지시켜 보수하면, 가동 시간이 저하된다. 이 때문에, 일부 노드가 고장나더라도, 다른 노드를 사용하여 통신이 가능해지는 내고장성이 요구된다. 그러나, 차원 오더 라우팅에서는 통신 경로가 미리 고정되기 때문에, 노드에 고장이 발생하면 그 노드를 경로로 하는 통신이 이루어질 수 없는 문제가 있다.
도 11은 메쉬 네트워크에서 노드에 고장이 발생한 경우의 양태를 나타내는 도면이다.
도 11에 나타내는 병렬 컴퓨터에서는, 계산기 노드(이하, "노드"로 약칭) N101∼N116이 4×4의 2차원 메쉬 네트워크에 의해 접속된다. 또, 이 메쉬 네트워크에서는, 차원 오더 라우팅이 행해진다. 여기서는 예를 들어, 처음에 x 방향(도면에서 가로 방향)의 라우팅이 행해지고, 다음에 y 방향(도면에서 세로 방향)의 라우팅이 행해지는 것으로 한다. 예를 들어, 노드 N109로부터 노드 N104에 대하여 패킷이 송신되는 경우에는, 패킷은 먼저, 노드 N109로부터 노드 N110, N111, N112의 순으로 전송된 후, 노드 N108, N104의 순으로 전송된다.
이와 같이, 차원 오더 라우팅에서는, 송신 노드와 수신 모드의 조합에 의해 패킷의 전송 경로는 하나로 결정된다. 그런데, 이러한 메쉬 네트워크에서는, 하나의 노드가 고장나면, 그 노드를 경로로 하는 모든 통신이 불가능해진다.
특히, 각 노드에서 병렬 계산을 하기 위해서는, 동일한 작업을 실행하는 노드 사이에서는 통신이 가능해야 한다. 이 때문에, 고장에 의해 통신이 불가능한 노드의 조합이 발생하면, 작업을 실행할 수 있는 노드 그룹이 작아진다는 문제가 있다. 예를 들어, 도 11에서 노드 N111에 고장이 발생한 경우, 통신 가능한 노드 그룹의 분할 방법으로, 다음 3가지 방법을 생각할 수 있다.
제1 분할 방법은 고장난 노드 N111을 포함하는 행에 대하여, 도면 중 상측에 2×4 노드의 그룹, 도면 중 하측에 1×4 노드의 그룹을 설정하는 방법이다. 즉, 상측의 노드 그룹은 노드 N101∼N108을 포함하고, 하측의 노드 그룹은 노드 N113∼N116을 포함한다.
제2 분할 방법은 고장난 노드 N111을 포함하는 열에 대하여, 도면 중 좌측에 4×2 노드의 그룹, 도면 중 우측에 4×1 노드의 그룹을 설정하는 방법이다. 즉, 좌측의 노드 그룹은 노드 N101, N102, N105, N106, N109, N110, N113, N114를 포함하여, 우측의 노드 그룹은 노드 N104, N108, N112, N116을 포함한다.
제3 분할 방법은 고장난 노드 N111을 각각 포함하는 열 및 행을 제외한 3×3 노드를 포함하는 하나의 그룹을 설정하는 방법이다. 즉, 이 노드 그룹은 노드 N101, N102, N104∼N106, N108∼N110, N112∼N114, N116을 포함한다.
이와 같이, 노드의 고장에 의해 노드 그룹이 분단되는 문제에 대한 대책으로서, 다차원 메쉬 네트워크 또는 다차원 토러스 네트워크를 다중화하는 방법을 생각할 수 있다. 여기서, 도 12는 다중화된 메쉬 네트워크의 일례를 나타내는 도면이다.
도 12에는, 4×4의 2차원 메쉬 네트워크를 2개의 통신 플레인분만큼 다중화한 경우의 예를 나타낸다. 이 메쉬 네트워크에서는, 한쪽 통신 플레인의 노드 N101∼N116에 대하여, 다른쪽 통신 플레인의 노드 N121∼N136이 각각 조합되어, 각 조의 노드끼리 플레인 사이에 접속되어 있다.
이러한 메쉬 네트워크에서는, 통신 플레인 사이에서 접속된 노드 중 한쪽을 이용하여 4×4의 2차원 메쉬 네트워크를 구성할 수 있다. 이 때문에, 한쪽 통신 플레인의 노드에서 고장이 발생한 경우에는, 그 노드에 접속된 다른쪽 통신 플레인의 노드를 경로로 함으로써 통신이 가능해진다.
예를 들어, 도 12에서, 노드 N109로부터 노드 N104에 대한 패킷의 송신 시에, 그 경로 상의 노드 N111이 고장난 경우를 생각한다. 이 경우, 패킷의 경로에 대응하는 다른쪽 통신 플레인의 노드를 경로로 함으로써 통신이 가능해진다. 예를 들어, 패킷이 노드 N109, N129, N130, N131, N132, N128, N124, N104의 순으로 전송됨으로써, 노드 N109로부터 노드 N104에 대한 패킷 전송이 가능해진다. 이와 같이, 한쪽 통신 플레인의 노드가 고장난 경우에도, 다른쪽 통신 플레인에서는 모든 노드가 서로 통신이 가능하기 때문에, 노드 그룹은 분단되지 않는다.
메쉬 네트워크에서의 다른 장해 회복 방법으로는, 동적으로 현용계와 예비계로 이루어진 링 네트를 구성하여, 현용계의 장해 시에 예비계에 트래픽을 우회시키도록 한 것이 있다(예를 들어, 특허문헌 1 참조).
그런데, HPC 분야에서는, 네트워크 처리를 위해 프로세서를 사용하는 시간을 단축하기 위해, RDMA(Remote Direct Memory Access) 통신이 이용되고 있다. 리모트 노드의 메모리에 대한 기록 요구를 위한 통신은 Put 통신이라고 불리고, 그 메모리로부터의 판독 요구를 위한 통신은 Get 통신이라고 불린다.
RDMA 통신에서는, 리모트 노드의 네트워크 인터페이스에 대하여, 그 리모트 노드의 메모리에 대한 기록 및 판독을 요구할 수 있다. 요구를 받은 리모트 노드에서는, 메모리의 기록 및 판독 시에, 네트워크 인터페이스와 메모리 사이에서 DMA(Direct Memory Access) 전송이 이루어진다. 이것에 의해, 각 노드가 구비하는 프로세서에 처리 부하를 가하지 않고, 메모리의 기록 및 판독을 실행할 수 있게 되어, 그 결과, 병렬 컴퓨터 내의 각 프로세서에서의 병렬 처리의 효율이 향상된다.
여기서, 도 13은 Get 통신이 이루어지는 경우의 패킷의 경로에 관해 설명하기 위한 도면이다.
Get 통신에서는, 메모리로부터 판독된 데이터를 판독 요구측에 회신하기 위해 응답 통신이 필요하다. 차원 오더 라우팅이 행해지는 경우, Get 요구 패킷과 그 응답 패킷은 각각 상이한 경로로 전송된다. 예를 들어, 도 13에서, 노드 N109로부터 노드 N104에 대하여 Get 요구가 이루어지는 경우, Get 요구 패킷은 예를 들어 노드 N109, N110, N111, N112, N108, N104의 순으로 전송된다. 한편, 노드 N104로부터의 Get 응답 패킷은 노드 N104, N103, N102, N101, N105, N109의 순으로 전송된다.
그러나, 이와 같이 Get 요구 패킷과 Get 응답 패킷의 각 경로가 상이한 경우에는, 이들의 한쪽 경로 상의 노드에 고장이 발생하는 경우가 있다. 여기서, Get 응답의 경로 상의 노드가 고장난 경우에는, Get 요구의 송신원 노드는 요구한 데이터를 수신할 수 없다.
이러한 문제는, 전술한 바와 같이, 메쉬 네트워크를 다중화함으로써 회피할 수 있다. 도 14는 다중화된 메쉬 네트워크에서 응답 경로에 고장이 발생한 상태를 나타내는 도면이다. 이 도 14에 나타낸 바와 같이, 요구 경로의 노드와 동일한 통신 플레인에서, 응답 경로 상의 노드에 고장이 발생한 경우에는, 응답 경로만 통신 플레인을 전환함으로써, 판독 요구된 데이터가 요구원 노드에 전송된다.
그러나, 이러한 방법에서는, Get 요구를 받은 노드에서, 응답 패킷의 경로가 고장난 노드를 회피하도록, 적절한 통신 플레인을 선택할 수 있게 할 필요가 있다. 차원 오더 라우팅에서는, 각 노드에서 송신 경로를 간단히 결정할 수 있는 것이 큰 이점이지만, 상기와 같이 최적의 응답 경로를 선택하기 위해서는, Get 요구를 받은 노드가 복잡한 처리를 실행할 필요가 생긴다. 특히, 이러한 최적 경로 선택 기능을 하드웨어 회로에 의해 실현하는 경우, 그 회로는 복잡하고 규모가 커지게 된다.
일본특허공개2002-247038호공보
William J. Dally, Charles L. Seitz, "Deadlock-Free Message Routing in Multiprocessor Interconnection Networks", IEEE TRANSACTIONS ON COMPUTERS Vol. C-36, 1987년 5월
상기와 같이, 차원 오더 라우팅이 행해지는 다차원 메쉬 네트워크 또는 다차원 토러스 네트워크에서는, 노드에 고장이 발생한 경우에도 통신을 계속할 수 있는 것이 요구되고 있다. 특히, Get 요구 패킷 등, 응답이 필요한 패킷이 송신된 경우에, 그 응답 패킷의 경로 상의 노드에 고장이 발생하더라도, 요구측 노드가 응답 패킷을 확실하게 수신할 수 있는 것이 요구되고 있다.
그러나, 응답이 필요한 패킷에 대하여 확실하게 응답할 수 있는 내고장성을 실현하기 위해서는, 전술한 바와 같이, 통신 플레인을 다중화하여, 고장난 노드가 회피되도록 응답 패킷의 경로를 적절히 선택해야 한다. 이러한 경로 선택을 위해서는 복잡한 처리가 필요하고, 그 처리의 실현을 위해서는 회로 규모나 제조 비용이 증대된다.
본 발명은 이러한 점을 감안하여 이루어진 것으로, 계산기 노드 사이에서 처리 요구 데이터와 그 응답 데이터가 확실하게 송수신되도록 한 정보 처리 시스템, 통신 제어 장치 및 방법을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위해, 정보 처리 시스템이 제공된다. 이 정보 처리 시스템은, 적어도 제1 가상 채널과 제2 가상 채널에 의해 다차원 메쉬형 또는 다차원 토러스형으로 접속된 복수의 계산기 노드를 갖는다. 또, 상기 각 계산기 노드는 상기 제1 가상 채널을 통하여 송수신되는 데이터를 제1 차원 오더에 따라 라우팅하고, 상기 제2 가상 채널을 통하여 송수신되는 데이터를 상기 제1 차원 오더와는 역순인 제2 차원 오더에 따라 라우팅하는 라우팅 제어부를 갖는다.
이러한 정보 처리 시스템에서는, 각 계산기 노드의 라우팅 제어부의 제어에 의해, 제1 가상 채널에서는 제1 차원 오더에 따라 라우팅되고, 제2 가상 채널에서는 제1 차원 오더와는 역순인 제2 차원 오더에 따라 라우팅된다. 여기서, 예를 들어 2개의 계산기 노드 사이에서 통신할 때, 데이터의 송신 방향에 따라서 상이한 가상 채널이 사용된 경우에는, 데이터가 전송되는 계산기 노드의 경로가 모든 방향에서 일치한다.
또, 상기 목적을 달성하기 위해, 적어도 제1 가상 채널과 제2 가상 채널에 의해 다차원 메쉬형 또는 다차원 토러스형으로 접속된 복수의 계산기 노드에 각각 설치되고, 다른 계산기 노드와의 사이의 데이터 송수신 동작을 제어하는 통신 제어 장치가 제공된다. 이 통신 제어 장치는 그 통신 제어 장치가 설치된 계산기 노드에 대한 데이터가 상기 제1 가상 채널을 통하여 수신되었을 때, 그 데이터가 요구원의 계산기 노드에 대한 응답이 필요한 처리 요구 데이터인지의 여부를 판별하는 수신 데이터 판별부와, 상기 수신 데이터 판별부에 의해 수신 데이터가 상기 처리 요구 데이터라고 판별된 경우, 그 처리 요구 데이터에 대한 응답 데이터를, 상기 제1 가상 채널과는 역순의 차원 오더에 따라 라우팅되는 상기 제2 가상 채널을 통하여 송신하도록 제어하는 응답 제어부를 갖는다.
이러한 통신 제어 장치에 있어서, 수신 데이터 판별부는, 이 통신 제어 장치가 설치된 계산기 노드에 대한 데이터가 제1 가상 채널을 통하여 수신되었을 때, 이 데이터가 요구원의 계산기 노드에 대한 응답이 필요한 처리 요구 데이터인지의 여부를 판별한다. 응답 제어부는 수신 데이터 판별부에 의해 수신 데이터가 처리 요구 데이터라고 판별된 경우, 이 처리 요구 데이터에 대한 응답 데이터를 제2 가상 채널을 통하여 송신하도록 제어한다. 여기서, 제2 가상 채널에서는, 제1 가상 채널과는 역순의 차원 오더에 따라 라우팅된다.
상기 정보 처리 시스템에 따르면, 요구원의 계산기 노드에 대한 응답이 필요한 처리 요구 데이터와, 그 응답 데이터가 계산기 노드 사이에서 확실하게 송수신되게 된다.
또, 상기 통신 제어 장치에 의하면, 요구원의 계산기 노드에 대한 응답이 필요한 처리 요구 데이터에 대한 응답 데이터를 간이한 처리를 통해 확실하게 송신할 수 있다.
도 1은 제1 실시형태에 따른 병렬 컴퓨터의 전체 구성을 나타내는 도면이다.
도 2는 처리 요구 패킷 및 응답 패킷의 전송 경로의 예를 나타내는 도면이다.
도 3은 노드의 내부 구성예를 나타내는 도면이다.
도 4는 라우터의 내부 구성예를 나타내는 도면이다.
도 5는 네트워크 I/F의 내부 구성예를 나타내는 도면이다.
도 6은 라우터에서의 라우팅 처리 순서를 나타내는 흐름도이다.
도 7은 라우터로부터 수신 패킷이 공급되었을 때의 네트워크 I/F의 처리 순서를 나타내는 흐름도이다.
도 8은 출력 회로에 의한 송신 가능 여부의 관리 순서를 나타내는 흐름도이다.
도 9는 제2 실시형태에 따른 병렬 컴퓨터의 구성예를 나타내는 도면이다.
도 10은 제3 실시형태에 따른 병렬 컴퓨터의 구성예를 나타내는 도면이다.
도 11은 메쉬 네트워크에서 노드에 고장이 발생한 경우의 양태를 나타내는 도면이다.
도 12는 다중화된 메쉬 네트워크의 일례를 나타내는 도면이다.
도 13은 Get 통신이 이루어지는 경우의 패킷의 경로에 관해 설명하기 위한 도면이다.
도 14는 다중화된 메쉬 네트워크에서 응답 경로에 고장이 발생한 상태를 나타내는 도면이다.
이하, 실시형태를 도면을 참조하여 상세히 설명한다.
[제1 실시형태]
도 1은 제1 실시형태에 따른 병렬 컴퓨터의 전체 구성을 나타내는 도면이다.
도 1에 나타내는 병렬 컴퓨터(1)는 복수의 계산기 노드(이하, "노드"로 약칭)가 네트워크에 의해 접속된 정보 처리 시스템을 포함하고, 각 노드가 구비하는 프로세서에 의해 원하는 처리를 병렬로 처리하는 것이 가능하다. 본 실시형태의 병렬 컴퓨터(1)에는 예를 들어 16개의 노드 N1∼N16이 설치된다. 그리고, 이들 노드 N1∼N16은 예를 들어 광섬유 등에 의해 4×4의 2차원 메쉬형으로 접속되고, 이것에 의해 메쉬 네트워크가 구성된다.
또, 이 네트워크에서 각 노드는 x 방향(도 1에서의 가로 방향) 및 y 방향(도 1에서의 세로 방향)에 인접한 노드와의 사이에서, 각각 적어도 2개의 가상 채널에 의해 접속된다. 여기서는, 한쪽 가상 채널을 "요구 채널", 다른쪽 가상 채널을 "응답 채널"이라고 부른다.
이 네트워크에서, 어떤 한 노드로부터 한쪽 가상 채널을 통하여 송신된 패킷은 기본적으로 동일한 가상 채널을 통하여 수신처까지 전송된다. 또, 요구 채널 및 응답 채널에서는 서로 역순의 차원 오더 라우팅이 행해진다. 여기서는 예를 들어, 처음에 x 방향의 라우팅이 행해지고, 다음에 y 방향의 라우팅이 행해지는 것으로 한다.
예를 들어, 노드 N9로부터 노드 N4에 대하여 패킷이 요구 채널을 통하여 송신되는 경우에는, 패킷은 우선, 노드 N9로부터 노드 N10, N11, N12의 순으로 전송된 후, 노드 N8, N4의 순으로 전송된다. 한편, 노드 N9로부터 노드 N4에 대하여 패킷이 응답 채널을 통하여 송신되는 경우에는, 패킷은 우선, 노드 N9로부터 노드 N5, N1의 순으로 전송된 후, 노드 N2, N3, N4의 순으로 전송된다.
이러한 네트워크에서는, 2개의 노드 사이에서 통신할 때, 데이터의 송신 방향에 따라서 각각 별개의 가상 채널을 사용할 수 있다. 예를 들어, 한쪽 노드로부터 다른쪽 노드에 대한 데이터 송신에 요구 채널을 사용하고, 다른쪽 노드로부터 한쪽 노드에 대한 데이터 송신에 응답 채널을 사용한다. 이러한 동작에서는 데이터의 송신 방향과 관계없이, 데이터의 전송 경로가 일치한다.
이러한 성질을 이용함으로써, 다음 도 2에 설명하는 바와 같이, 요구원 노드에 대한 응답이 필요한 처리 요구 패킷이 송신된 경우에, 그것에 대한 응답 패킷이보다 확실하게 송신되게 된다.
도 2는 처리 요구 패킷 및 응답 패킷의 전송 경로의 예를 나타내는 도면이다.
본 실시형태에서는, 요구원 노드에 대한 응답이 필요한 통신으로서, Get 통신을 적용한다. Get 통신은 RDMA 기술을 이용하여, 요구처 노드의 메모리로부터 데이터를 판독하기 위한 통신이다.
Get 통신에서는, 요구처 노드에는 병렬 처리의 실행 주체인 CPU에 부하가 가해지지 않고, 메모리로부터 데이터가 DMA에 의해 판독되어, 그 데이터가 요구원 노드에 회신된다. 이 Get 통신과 같이, 요구원 노드에 대한 응답이 필요한 통신으로는, 요구처 노드에서의 처리 부하가 작아 단시간에 응답이 회신되는 것을 적용하는 것이 바람직하다.
도 2에는 노드 N9로부터 노드 N4에 대하여 Get 요구 패킷이 송신된 경우의 예를 나타낸다. 이 경우, 노드 N9는 요구 채널을 통하여 Get 요구 패킷을 송신한다. 이것에 의해, Get 요구 패킷은 노드 N10, N11, N12, N8, N4의 순으로 전송된다.
한편, Get 요구 패킷을 수신한 노드 N4는 이 노드 N4에 접속된 메모리로부터 요구된 데이터를 DMA를 통해 판독한다. 그리고, 그 데이터를 저장한 Get 응답 패킷을, 응답 채널을 통하여 노드 N9에 대하여 송신한다. 이것에 의해, Get 응답 패킷은 노드 N8, N12, N11, N10, N9의 순으로 전송된다. 즉, Get 응답 패킷은 Get 요구 패킷과 동일한 경로 상에서 역방향으로 전송된다.
여기서, 예를 들어 노드 N2가 고장난 것으로 상정한다. 만약, Get 요구 패킷을 Get 응답 패킷과 동일한 가상 채널을 통하여 송신한다고 한 경우, 노드 N4로부터 노드 N9에 대한 Get 응답 패킷은 노드 N3, N2, N1, N5, N9의 순으로 전송된다. 이 때문에, 노드 N2가 고장이 나면, 노드 N4에서의 응답 처리가 정상적으로 실행되었음에도 불구하고, Get 응답 패킷은 노드 N9까지 도달하지 않는다.
이러한 사태를 피하기 위해서는, 도 14에 설명한 바와 같이, 통신 플레인을 다중화하는 방법을 생각할 수 있다. 그러나, 이 방법에서는, Get 요구 패킷을 수신한 노드는 통신 플레인도 포함한 최적의 응답 경로를 결정하기 위해, 복잡한 처리를 실행해야 한다.
이에 비해, 도 2와 같이 Get 응답 패킷을 응답 채널을 통하여 송신하는 것으로 한 경우, Get 요구 패킷의 전송 경로와 Get 응답 패킷의 전송 경로는 동일해진다. 이 때문에, Get 요구 패킷이 요구처 노드까지 전송되면, 그것에 대한 Get 응답 패킷도 반드시 요구원 노드까지 전송된다. 따라서, Get 통신에서의 내고장성이 높아진다.
또, 요구처 노드에서는, Get 응답 패킷을 Get 요구 패킷과 동일한 통신 플레인 상에 송신하면 된다. 예를 들어, 요구처 노드는 Get 요구 패킷을 자(自)노드에 접속된 다른 노드로부터 수신했을 때, 동일한 노드를 Get 응답 패킷의 송신처로서 결정하고, 송신하는 가상 채널만을 변경한다. 따라서, 응답 경로를 결정하기 위한 처리가 간단해져, 그 처리 회로의 규모나 제조 비용이 억제된다.
다음으로, 각 노드의 구성 및 그 처리 순서에 관해, 보다 구체적으로 설명한다.
도 3은 노드의 내부 구성예를 나타내는 도면이다.
도 3에는 노드 N10의 내부 구성을 예로서 나타낸다. 노드 N6, N7, N11도, 이 노드 N10과 동일한 구성을 갖는다. 또, 노드 N1∼N5, N8, N9, N12∼N16은 접속되는 다른 노드에 대응하는 통신 포트수가 상이한 것 외에는, 기본적인 구성은 노드 N10과 동일하다.
도 3에 나타낸 바와 같이, 노드 N10은 라우터(100), 네트워크 I/F(인터페이스)(200), CPU(310) 및 메모리(320)를 포함한다. 또, 네트워크 I/F(200), CPU(310) 및 메모리(320)는 버스(330)를 통해 서로 접속된다. 네트워크 I/F(200), CPU(310) 및 메모리(320)는 예를 들어 PE(Processor Element)를 구성하는 것이다.
라우터(100)는 메쉬 네트워크로 전송되는 패킷을 라우팅한다. 예를 들어, 라우터(100)는 이 노드 N10에 접속된 다른 노드(이하, "인접 노드"라고 함)로부터 패킷을 수신하면 그 패킷의 수신처를 판별한다. 수신처가 다른 노드인 경우에는, 수신한 가상 채널에 따른 차원 오더에 따라서, 송신처의 인접 노드를 판정하고, 그 인접 노드에 대하여 패킷을 송신한다. 한편, 수신처가 이 노드 N10인 경우에는, 수신한 패킷을 네트워크 I/F(200)에 출력한다. 실제의 노드 간 통신에서는, 예를 들어, 패킷은 보다 작은 데이터 단위인 플릿(flit)으로 분할되어 송신된다.
또, 라우터(100)는 CPU(310) 또는 네트워크 I/F(200)에 의해 생성된 메시지를 포함하는 패킷을 네트워크 I/F로부터 수신하는 것도 가능하다. 이 경우, 라우터(100)는 지정된 가상 채널에 따른 차원 오더에 따라서, 수신처를 기초로 패킷의 송신처의 인접 노드를 판정하고, 그 인접 노드에 대하여, 지정된 가상 채널을 통하여 패킷을 송신한다.
네트워크 I/F(200)는 CPU(310)와 메쉬 네트워크 사이의 데이터 송수신을 제어하기 위한 I/F부이다. 또, 네트워크 I/F(200)는 RDMA 통신의 제어 기능이나, 메모리(320)와의 사이의 DMA 전송 제어 기능을 갖는다.
이상의 라우터(100) 및 네트워크 I/F(200)는 예를 들어 동일 기판 상에 탑재되는 경우도 있다.
CPU(310)는 네트워크 I/F(200)를 통하여 입력된 메시지나 데이터에 따라서, 연산 처리를 실행한다. 또, 다른 노드에 송신해야 할 메시지나 데이터를 생성하여, 이들을 그 수신처와 함께 네트워크 I/F(200)에 출력한다. 이러한 처리는 메모리(320)에 기억된 프로그램이 CPU(310)에서 실행됨으로써 실현된다.
메모리(320)에는 CPU(310)에 의해 실행되는 프로그램이나, 각종 데이터가 기억된다. 메모리(320)는 CPU(310)로부터의 요구에 따라서 데이터를 기록 및 판독하지만, 네트워크 I/F(200)로부터의 요구에 따라서 DMA 전송을 통해 데이터를 기록 및 판독하는 것도 가능하다.
도 4는 라우터의 내부 구성예를 나타내는 도면이다.
라우터(100)는 입력 회로(110) 및 출력 회로(120)와, 스위치 회로(130)와, 라우팅 제어부(140)를 포함한다.
입력 회로(110) 및 출력 회로(120)는 모두 인접 노드의 수만큼 설치된다. 노드 N10에서는, 도 4에 나타낸 바와 같이, 입력 회로(110) 및 출력 회로(120)가 각각 4개씩 설치된다. 그리고, 입력 회로(110) 및 출력 회로(120)의 1 조합이 1개의 인접 노드에 접속된다.
또, 각 입력 회로(110)에는, 대응하는 인접 노드로부터 입력된 패킷을 저장하는 버퍼가 설치되고, 이들 버퍼는 논리 버퍼(111, 112)의 2개의 영역으로 논리적으로 구분되어 있다. 논리 버퍼(111)는 요구 채널에 대응하는 수신 큐를 실현하고, 논리 버퍼(112)는 응답 채널에 대응하는 수신 큐를 실현한다.
각 출력 회로(120)에도 마찬가지로, 대응하는 인접 노드에 대하여 출력하는 패킷을 저장하는 버퍼가 설치된다. 그리고, 각 버퍼는 논리 버퍼(121, 122)의 2개의 영역으로 논리적으로 구분되어 있다. 논리 버퍼(121)는 요구 채널에 대응하는 송신 큐를 실현하고, 논리 버퍼(122)는 응답 채널에 대응하는 수신 큐를 실현한다.
스위치 회로(130)는 라우팅 제어부(140)에 의한 제어 하에, 입력 회로(110)중 어느 하나로부터 또는 네트워크 I/F(200)로부터 입력된 패킷을, 출력 회로(120) 중 어느 하나 또는 네트워크 I/F(200)에 대하여 출력한다.
라우팅 제어부(140)는 스위치 회로(130)에서의 입출력 전환 처리를 제어한다. 라우팅 제어부(140)는 요구 채널을 이용한 패킷의 송수신 처리와, 응답 채널을 이용한 패킷의 송수신 처리에서는 역순의 차원 오더에 따라 라우팅한다.
도 5는 네트워크 I/F의 내부 구성예를 나타내는 도면이다.
네트워크 I/F(200)는 라우터(100)로부터의 패킷의 입력을 접수하는 입력 회로(210)와, 다른 노드에 대한 패킷을 라우터(100)에 대하여 출력하는 출력 회로(220)를 포함한다.
입력 회로(210)는 라우터(100)로부터 입력된 패킷 중, RDMA 통신용 패킷, 즉 Get 요구 패킷 및 Put 패킷에 대한 처리를 실행하기 위한 기능을 갖는다. 입력 회로(210)는, 이러한 기능으로서, 수신 데이터 판별부(211), DMA 제어부(212) 및 송신 제어부(213)를 포함한다.
수신 데이터 판별부(211)는 라우터(100)로부터 입력된 패킷에 저장된 메시지를 판별한다. 그리고, 수신 패킷이 Get 요구 패킷 또는 Put 패킷 중 어느 하나인 경우, DMA 제어부(212)에 대하여, 메모리(320)와의 사이의 DMA 전송 동작을 요구한다. 또, 수신 패킷이 Get 요구 패킷인 경우에는, 송신 제어부(213)에 대하여 Get 응답 패킷의 송신을 요구한다. 또, 수신 패킷이 RDMA 통신용 이외의 패킷인 경우, 그 패킷을 CPU(310)에 출력한다.
DMA 제어부(212)는 수신 데이터 판별부(211)로부터의 요구에 따라서 메모리(320)와의 사이에서 DMA 전송을 하여, 메모리(320)에 대한 데이터의 기록, 또는 메모리(320)로부터의 데이터의 판독을 한다. 또, 메모리(320)로부터 데이터를 판독한 경우, 그 데이터를 송신 제어부(213)에 출력한다.
송신 제어부(213)는 DMA 제어부(212)로부터의 데이터를 저장한 Get 응답 패킷을 생성하고, 그 패킷을 출력 회로(220)를 통해 라우터(100)에 출력한다. 이 때, 라우터(100)에 대하여, 출력처의 인접 노드나 사용하는 가상 채널을 지정한다.
출력 회로(220)는 CPU(310) 또는 송신 제어부(213)로부터 출력된 패킷의 입력을 접수하여, 그 패킷을 라우터(100)에 출력한다. 이 때, 출력 회로(220)는 패킷의 송신처로 하는 인접 노드와, 송신에 이용하는 가상 채널을 라우터(100)에 지정할 수 있게 되어 있다.
도 6은 라우터에서의 라우팅 처리 순서를 나타내는 흐름도이다. 이 도 6의 처리는 라우터(100) 내의 어느 하나의 입력 회로(110)에 입력된 패킷이 스위치 회로(130)에 공급될 때마다 실행되는 것이다.
[단계 S11] 라우팅 제어부(140)는 패킷의 수신 채널을 판정한다. 그 패킷이 요구 채널을 통하여 수신된 경우에는 단계 S12의 처리가 실행되고, 응답 채널을 통하여 수신된 경우에는 단계 S16의 처리가 실행된다.
[단계 S12] 라우팅 제어부(140)는, 수신 패킷의 수신처 어드레스를 참조하여, x 방향의 수신처 어드레스가 자(自)노드에 대한 x 방향의 어드레스와 일치하는지의 여부를 판정한다. 어드레스가 일치한 경우 단계 S14의 처리가 실행되고, 일치하지 않은 경우 단계 S13의 처리가 실행된다.
[단계 S13] 라우팅 제어부(140)는 수신 패킷을 요구 채널을 통하여 x 방향으로 라우팅한다. 구체적으로는, 라우팅 제어부(140)는 x 방향에 접속된 인접 노드 중, 자(自)노드보다 x 방향의 수신처 어드레스에 가까운 측의 인접 노드를, 패킷의 송신처로서 결정한다. 그리고, 그 인접 노드에 대응하는 출력 회로(120) 내의 논리 버퍼(121)에 대하여 패킷을 전송하도록, 스위치 회로(130)를 제어한다.
[단계 S14] 라우팅 제어부(140)는 수신 패킷의 수신처 어드레스를 참조하여, y 방향의 수신처 어드레스가 자(自)노드에 대한 y 방향의 어드레스와 일치하는지의 여부를 판정한다. 어드레스가 일치한 경우 단계 S20의 처리가 실행되고, 일치하지 않은 경우 단계 S15의 처리가 실행된다.
[단계 S15] 라우팅 제어부(140)는 수신 패킷을 요구 채널을 통하여 y 방향으로 라우팅한다. 구체적으로는, 라우팅 제어부(140)는 y 방향에 접속된 인접 노드 중, 자(自)노드보다 y 방향의 수신처 어드레스에 가까운 측의 인접 노드를 패킷의 송신처로서 결정한다. 그리고, 그 인접 노드에 대응하는 출력 회로(120) 내의 논리 버퍼(121)에 대하여 패킷을 전송하도록, 스위치 회로(130)를 제어한다.
[단계 S16] 라우팅 제어부(140)는 수신 패킷의 수신처 어드레스를 참조하여, y 방향의 수신처 어드레스가 자(自)노드에 대한 y 방향의 어드레스와 일치하는지의 여부를 판정한다. 어드레스가 일치한 경우 단계 S18의 처리가 실행되고, 일치하지 않은 경우 단계 S17의 처리가 실행된다.
[단계 S17] 라우팅 제어부(140)는 수신 패킷을 응답 채널을 통하여 y 방향으로 라우팅한다. 구체적으로는, 라우팅 제어부(140)는 y 방향에 접속된 인접 노드 중, 자(自)노드보다 y 방향의 수신처 어드레스에 가까운 측의 인접 노드를 패킷의 송신처로서 결정한다. 그리고, 그 인접 노드에 대응하는 출력 회로(120) 내의 논리 버퍼(122)에 대하여 패킷을 전송하도록, 스위치 회로(130)를 제어한다.
[단계 S18] 라우팅 제어부(140)는 수신 패킷의 수신처 어드레스를 참조하여, x 방향의 수신처 어드레스가 자(自)노드에 대한 x 방향의 어드레스와 일치하는지의 여부를 판정한다. 어드레스가 일치한 경우 단계 S20의 처리가 실행되고, 일치하지 않은 경우 단계 S19의 처리가 실행된다.
[단계 S19] 라우팅 제어부(140)는 수신 패킷을 응답 채널을 통하여 x 방향으로 라우팅한다. 구체적으로는, 라우팅 제어부(140)는 x 방향에 접속된 인접 노드 중, 자(自)노드보다 x 방향의 수신처 어드레스에 가까운 측의 인접 노드를 패킷의 송신처로서 결정한다. 그리고, 그 인접 노드에 대응하는 출력 회로(120) 내의 논리 버퍼(122)에 대하여 패킷을 전송하도록 스위치 회로(130)를 제어한다.
[단계 S20] 라우팅 제어부(140)는 수신 패킷을 네트워크 I/F(200)에 출력하도록 스위치 회로(130)를 제어한다. 이것에 의해, 수신 패킷은 네트워크 I/F(200)의 입력 회로(210)에 입력된다. 이 때, 수신 패킷의 송신원의 인접 노드를 나타내는 정보와, 이용된 가상 채널을 나타내는 정보가 네트워크 I/F(200)에 대하여 통지된다.
이상의 처리에 의하면, 요구 채널을 통하여 수신된 패킷에 대해서는, x 방향에 대한 전송이 우선되고, 응답 채널을 통하여 수신된 패킷에 대해서는, y 방향에 대한 전송이 우선된다. 즉, 응답 채널에서의 라우팅에서는, 요구 채널과는 역순의 차원 오더가 적용된다. 또, 자(自)노드에 대한 패킷이 수신된 경우에는, 그 패킷은 네트워크 I/F(200)에 공급된다.
다음으로, 도 7은 라우터로부터 수신 패킷이 공급되었을 때의 네트워크 I/F의 처리 순서를 나타내는 흐름도이다.
[단계 S31] 네트워크 I/F(200)의 입력 회로(210)에, 라우터(100)로부터 수신 패킷이 입력되면, 수신 데이터 판별부(211)는 라우터(100)로부터 통지된 정보에 기초하여, 수신 패킷이 요구 채널로부터 수신된 것인지의 여부를 판정한다. 요구 채널로부터 수신된 것인 경우에는 단계 S32의 처리가 실행되고, 응답 채널로부터 수신된 것인 경우에는 단계 S38의 처리가 실행된다.
[단계 S32] 수신 데이터 판별부(211)는 수신 패킷이 Get 요구 패킷인지의 여부를 판정한다. 수신 패킷이 Get 요구 패킷인 경우, 수신 데이터 판별부(211)는 수신 패킷에 저장되어 있던 판독 어드레스를 DMA 제어부(212)에 대하여 통지하고, 메모리(320)로부터의 데이터 판독을 요구한다. 이것과 함께, 수신 데이터 판별부(211)는 수신 패킷으로부터 송신원 노드의 어드레스를 추출하여, 송신 제어부(213)에 통지한다. 또한, 수신 데이터 판별부(211)는, 수신 데이터의 송신원의 인접 노드를 나타내는 정보를 송신 제어부(213)에 통지한다. 그리고, 송신 제어부(213)에 대하여, Get 응답 패킷의 송신을 요구한다. 그 후, 단계 S33의 처리가 실행된다. 한편, 수신 패킷이 Get 요구 패킷이 아닌 경우에는, 단계 S36의 처리가 실행된다.
[단계 S33] DMA 제어부(212)는 메모리(320)에 액세스하여, 수신 데이터 판별부(211)로부터 통지된 판독 어드레스에 저장된 데이터를 DMA 전송을 통해 판독하여, 송신 제어부(213)에 출력한다.
[단계 S34] 송신 제어부(213)는 DMA 제어부(212)에 의해 판독된 데이터를 저장한 Get 응답 패킷을 생성한다. 이 때, 수신 데이터 판별부(211)로부터 통지된 Get 요구 패킷의 송신원 노드의 어드레스를 Get 응답 패킷의 수신처 어드레스로 설정한다.
[단계 S35] 송신 제어부(213)는 생성한 Get 응답 패킷을 출력 회로(220)에 공급하여, 라우터(100)에 출력한다. 이 때, 송신 제어부(213)는 Get 응답 패킷의 송신처의 가상 채널을, 수신 패킷의 송신원의 인접 노드에 접속된 응답 채널로 하도록, 출력 회로(220)를 통하여 라우터(100)에 요구한다. 이것에 의해, 라우터(100)는 네트워크 I/F(200)로부터 수신한 Get 응답 패킷을, Get 요구 패킷의 송신원의 인접 노드에 대응하는 출력 회로(120)의 논리 버퍼(122)에 전송한다.
[단계 S36] 수신 데이터 판별부(211)는 수신 패킷이 Put 패킷인지의 여부를 판정한다. 수신 패킷이 Put 패킷인 경우, 수신 데이터 판별부(211)는 수신 패킷에 저장되어 있던 기록 어드레스 및 기록 데이터를 DMA 제어부(212)에 대하여 통지하고, 메모리(320)에 대한 기록을 요구한다. 그 후, 단계 S37의 처리가 실행된다. 한편, 수신 패킷이 Put 패킷이 아닌 경우, 단계 S38의 처리가 실행된다.
[단계 S37] DMA 제어부(212)는 메모리(320)에 액세스하여, 수신 데이터 판별부(211)로부터 통지된 기록 어드레스에 대하여, 기록 데이터를 DMA 전송을 통해 기록한다. 기록 완료 후에는, 그 취지가 입력 회로(210)로부터 CPU(310)에 대하여 통지될 수도 있다.
[단계 S38] 수신 데이터 판별부(211)는 수신 패킷을 CPU(310)에 출력한다.
이상의 처리에 의하면, 응답 채널을 통하여 Get 요구 패킷이 수신되면, 네트워크 I/F(200)의 처리에 의해, 메모리(320)로부터 지정된 데이터가 판독되고, Get 응답 패킷이 회신된다. 따라서, CPU(310)에서의 다른 연산 처리에 영향을 미치지 않고, Get 요구에 대한 응답 처리를 자동적으로 실행할 수 있다. 또, Get 응답 패킷은 응답 채널을 통하여 송신되기 때문에, 전술한 바와 같이, Get 요구 패킷의 전송 경로와 Get 응답 패킷의 전송 경로가 일치한다. 이 때문에, Get 응답 패킷을 보다 확실하게 요구원 노드에 회신할 수 있게 된다.
또한, Get 응답 패킷을 송신할 때에는, 송신 채널로서 응답 채널이 지정되고, 그 송신처로 하는 인접 노드로서 송신원과 동일한 노드가 지정되면 된다. 이 때문에, 예를 들어, 최적의 통신 플레인을 결정하는 등의 복잡한 처리가 불필요해진다. 따라서, 네트워크 I/F(200)의 회로 규모나 제조 비용을 억제할 수 있다.
그리고, 이러한 네트워크 I/F(200)를 모든 노드 N1∼N16에 탑재함으로써, RDMA 통신 시의 내고장성이 향상된 병렬 컴퓨터를, 회로 규모나 제조 비용을 증대시키지 않고 실현할 수 있다.
그런데, 네트워크 I/F(200)의 출력 회로(220)는 송신 제어부(213) 또는 CPU(310)로부터 입력된 패킷을 라우터(100)를 통해 송신할 수 있는지의 여부를 관리하는 기능을 갖는다. 그리고, 패킷의 송신이 불가능한 경우에는, 라우터(100)에 대하여, 네트워크 I/F(200)의 입력 회로(210)에 대한 패킷의 입력을 정지시킬 수 있다.
여기서, 도 8은 출력 회로에 의한 송신 가능 여부의 관리 순서를 나타내는 흐름도이다.
[단계 S41] 출력 회로(220)는 현재 패킷의 송신이 가능한지의 여부를 판정한다. 송신이 가능한 경우에는 단계 S42의 처리가 실행되고, 송신이 불가능한 경우에는 단계 S43의 처리가 실행된다.
[단계 S42] 출력 회로(220)는 라우터(100)에 대하여, 네트워크 I/F(200)의 입력 회로(210)에 대한 새로운 패킷의 입력이 가능하다는 것을 통지한다. 이 상태에서는, 인접 노드로부터 자(自)노드에 대한 패킷이 수신되었을 때, 그 패킷은 라우터(100)에 의해 네트워크 I/F(200)의 입력 회로(210)에 입력된다. 그 후, 단계 S41의 처리가 다시 실행된다.
[단계 S43] 출력 회로(220)는 라우터(100)에 대하여, 네트워크 I/F(200)의 입력 회로(210)에 대한 새로운 패킷의 입력이 불가능하다는 것을 통지한다. 이 상태에서는, 인접 노드로부터 자(自)노드에 대한 패킷이 수신되었을 때, 라우터(100)는 그 패킷을 네트워크 I/F(200)의 입력 회로(210)에 공급할 수 없게 되고, 그 패킷이 수신된 가상 채널에서의 새로운 패킷의 수신 동작이 정지된다.
단계 S41의 처리는, 예를 들어 출력 회로(220)에 입력된 패킷을, 송신처로서 지정된 가상 채널에 출력하도록 라우터(100)에 요구할 때 실행된다. 이 경우, 송신처의 가상 채널에 대응하는 논리 버퍼에 공간이 없을 때, 패킷의 송신이 불가능하다고 판정된다.
또는, 단계 S41의 처리는 출력 회로(220)에 탑재된 송신용 패킷의 출력 큐에 공간이 있는지의 여부에 따라 판정될 수도 있다. 이 경우, 출력 큐에 공간이 없을 때, 패킷의 송신이 불가능하다고 판정된다. 그리고, 출력 큐의 선두 데이터가 그 송신처의 가상 채널에 대응하는 논리 버퍼에 출력되면, 출력 큐에 공간이 생겨, 패킷의 송신이 가능한 상태로 이행한다.
그런데, 도 8에 나타낸 처리는, Get 요구 패킷에 대한 응답 시에도 적용 가능하다. 즉, Get 응답 패킷 송신이 불가능한 경우에는, 새로운 Get 요구 패킷을 포함하는 후속 패킷의 수신을 정지시킬 수 있다. 그리고, 이와 같이 후속 패킷의 수신을 정지시키더라도, 데드락은 발생하지 않는다.
예를 들어, Get 요구 패킷과 Get 응답 패킷이 동일한 가상 채널에서 송신되는 네트워크에서는, 어떤 하나의 노드에서 Get 응답 패킷의 송신이 불가능해졌을 때, 그 노드에서 새로운 Get 요구 패킷의 수신이 정지되면, 데드락이 발생한다. 이것은 동일한 가상 채널에서, Get 응답 패킷과 후속의 Get 요구 패킷을 포함하는 루프가 형성되기 때문이다.
이러한 사태를 회피하기 위해서는, 예를 들어 송신이 불가능해진 Get 응답 패킷을 삭제하는 방법이나, 송신이 불가능해진 Get 응답 패킷 또는 후속의 Get 요구 패킷을 메모리에 축적하는 방법을 생각할 수 있다. 전자의 방법에서는, Get 요구 패킷의 송신원 노드에서는 그 응답을 수신할 수 없기 때문에, 송신원 노드에서 Get 요구 패킷을 재송신하기 위한 기능이 필요해진다. 후자의 방법에서는, 네트워크 I/F(200)에 패킷 축적을 위한 대용량의 메모리를 탑재하거나, 또는 인터럽트에 의해 Get 응답 패킷을 CPU(310)에 전달하여, 그 후의 송신 처리를 의뢰해야 한다.
이에 비하여, 본 실시형태에서는, Get 응답 패킷이 Get 요구 패킷과는 별개의 가상 채널을 통하여 송신되기 때문에, 후속 패킷의 수신 정지에 기인하는 데드락은 발생하지 않는다. 예를 들어, Get 응답 패킷의 송신처의 응답 채널에서 송신이 가능해지면, 네트워크 I/F(200)에 대한 후속 패킷의 수신이 재개되고, 이후에 Get 통신이 정상적으로 실행되게 된다. 따라서, 본 실시형태에서는, 송신 가능 여부의 관리 처리가 단순화되어, 네트워크 I/F(200)의 회로 규모나 제조 비용을 억제할 수 있다.
[제2 실시형태]
도 9는 제2 실시형태에 따른 병렬 컴퓨터의 구성예를 나타내는 도면이다.
도 9에 나타낸 병렬 컴퓨터(1a)는 도 1에 나타낸 병렬 컴퓨터(1)에서, 노드 N13∼N16을, 데이터의 입출력을 담당하는 I/O(In/Out) 전용 노드로 한 구성을 갖는다. 도 9에서, 노드 N13a∼N16a에는, 예를 들어 각각 HDD(Hard Disk Drive)(340)가 접속된다. 노드 N13a∼N16a는, 예를 들어 도 3에 나타낸 노드 N10의 구성에서, 버스(330)에 대하여 HDD(340)가 접속된 구성을 더 갖는다. 한편, 도 9에서, 노드 N1∼N12는 계산 노드이다. 그리고, 이 병렬 컴퓨터(1a)의 각 노드 N1∼N12, N13a∼N16a는 도 1에 나타낸 병렬 컴퓨터(1)의 각 노드 N1∼N16이 갖는 라우팅 기능 및 RDMA 통신의 처리 기능을 갖는다.
그런데, 병렬 컴퓨터(1a)의 각 노드 N1∼N12, N13a∼N16a에서는, CPU(310)에 의해 생성된 패킷을 다른 노드에 송신할 때에, 그 송신에 이용되는 가상 채널을 임의로 선택할 수 있게 되어 있다. 이 점은 상기 제1 실시형태에서도 동일하다.
따라서, 본 실시형태에서는, I/O 전용 노드와 계산 노드 사이의 패킷 송수신(단, RDMA 통신용 패킷을 제외)에서는, 송신과 수신에서, 차원 오더가 상이한 별개의 가상 채널을 이용하도록 한다. 예를 들어, 계산 노드로부터 I/O 전용 노드에 대한 패킷 송신을 요구 채널을 통하여 수행하고, I/O 전용 노드로부터 계산 노드에 대한 패킷 송신을 응답 채널을 통하여 수행하도록 한다. 이러한 송신 채널의 선택은 각 노드의 CPU(310)가 그 노드의 메모리(320) 또는 HDD(340)에 기억된 개개의 프로그램을 실행함으로써 실현된다.
이러한 송신 채널의 선택 처리에 의해, 패킷이 통과하는 계산 노드의 수를 줄일 수 있다. 예를 들어, 도 9에서, 노드 N5와 노드 N15a 사이의 통신을 생각한다. 여기서는 예를 들어, 요구 채널에서는 y 방향(도 9에서의 세로 방향)의 라우팅이, 응답 채널에서는 x 방향(도 9에서의 가로 방향)의 라우팅이 각각 우선되는 것으로 한다.
노드 N5로부터 노드 N15a에 대하여 패킷을 송신하는 경우에는, 예를 들어 요구 채널을 통하여, 노드 N9, N13a, N14a, N15a의 순으로 패킷이 전송된다. 여기서, 노드 N15a로부터 노드 N5에 대한 패킷의 송신도 요구 채널을 통하여 수행되는 것으로 하면, 패킷은 노드 N11, N7, N6, N5의 순으로 전송된다. 이 경우, 패킷은 3개의 계산 노드를 통과하게 된다.
이에 비하여, I/O 전용 노드로부터 계산 노드에 대한 패킷 송신에 응답 채널을 이용한다고 하면, 노드 N15a로부터의 노드 N5에 대한 패킷은, 노드 N14a, N13a, N9, N5의 순으로 전송된다. 이 경우, 패킷이 통과하는 계산 노드는 노드 N9 하나뿐이다.
이와 같이, 패킷이 통과하는 계산 노드의 수를 적게 함으로써, 계산 노드에서의 전송 처리 부하가 작아진다. 이 때문에, 계산 노드를 기점으로 한 패킷 송신이나, 계산 노드에 대한 패킷의 수신, 계산 노드 사이의 통신 등의 처리 부하가 경감하고, 그 결과, 패킷의 전송 처리가 계산 노드에서의 연산 처리 자체에 미치는 영향도 작아진다. 따라서, 병렬 컴퓨터(1a) 전체에서의 처리 효율이 높아진다.
[제3 실시형태]
도 10은 제3 실시형태에 따른 병렬 컴퓨터의 구성예를 나타내는 도면이다.
도 10에 나타내는 병렬 컴퓨터(1b)에서는, 예를 들어 16개의 노드 N21∼N36이 4×4의 2차원 토러스형으로 접속되고, 이것에 의해 토러스 네트워크가 구성된다. 또, 각 노드 N21∼N36은 x 방향(도 13에서의 가로 방향) 및 y 방향(도 13에서의 세로 방향)에 인접하는 노드와의 사이에서, 각각 적어도 2종류의 가상 채널에 의해 접속된다. 이들 가상 채널 중, 한쪽은 요구 채널, 다른쪽은 응답 채널이다. 각 노드 N21∼N36에서는, 전술한 제1 실시형태와 마찬가지로, 요구 채널과 응답 채널에서는 서로 역순의 차원 오더에 따라 라우팅이 행해진다.
여기서, 토러스 네트워크에서는, 데드락을 방지하기 위해, 동일한 차원 오더에 따라 라우팅되는 가상 채널이 적어도 2개 형성되는 것이 바람직하다. 따라서, 도 10에 나타내는 병렬 컴퓨터(1b)에서는, 인접 노드 사이가 2개의 요구 채널과 2개의 응답 채널에 의해 접속된다.
동일한 종류의 가상 채널 사이에서는 공지된 처리 순서에 의해 패킷의 송신 채널이 적절하게 전환되고, 이것에 의해 데드락이 회피된다. 즉, 요구 채널에서는, 패킷이 한쪽 요구 채널에서의 노드 접속 루프를 넘어 더 전송될 때, 패킷의 송신처가 다른쪽 요구 채널로 전환된다. 응답 채널에서도 마찬가지로, 패킷이 한쪽 응답 채널에서의 노드 접속 루프를 넘어 더 전송될 때, 패킷의 송신처가 다른쪽 응답 채널로 전환된다.
이러한 동일한 종류의 가상 채널간의 전환이 이루어지는 것 외에, 각 노드 N21∼N36에서의 라우팅 기능은 전술한 제1 실시형태의 노드 N1∼N16이 갖는 기능과 동일하다. 그리고, 각 노드 N21∼N36은 제1 실시형태의 노드 N1∼N16과 동일한 RDMA 통신 처리 기능을 가지며, 요구 채널을 통하여 수신한 Get 요구 패킷에 대하여, 응답 채널을 통하여 자동적으로 응답할 수 있게 되어 있다. 따라서, 각 노드 N21∼N36의 회로 규모나 제조 비용을 증대시키지 않고, Get 통신시의 내고장성이 향상된다.
또한, 각 노드 N21∼N36에서는, 도 8에 나타낸 바와 같은 처리 순서에 의해, 패킷 송신 가능 여부를 관리하는 것이 가능하다. 또, 도 9의 예와 같이, 노드의 일부를 I/O 전용 노드로 하여, 계산 노드로부터 I/O 전용 노드에 대한 패킷 송신과, I/O 전용 노드로부터 계산 노드에 대한 패킷 송신을, 다른 종류의 가상 채널을 통하여 수행하도록 하는 것도 가능하다.
이상의 각 실시형태에서는, 예를 들어 2차원 메쉬 네트워크 및 2차원 토러스 네트워크에서의 각 노드의 처리에 관해 설명했다. 그러나, 이에 한정되지 않고, 3차원 이상의 메쉬 네트워크 및 토러스 네트워크에서의 각 노드에서도, 상기와 동일한 라우팅 기능 및 RDMA 통신의 처리 기능을 탑재시킬 수 있다.
또, 상기 각 노드가 갖는 기능의 적어도 일부는 컴퓨터에 의해 실현될 수 있다. 그 경우에는, 그 기능의 처리 내용을 기술한 프로그램이 제공된다. 그리고, 그 프로그램을 컴퓨터에서 실행함으로써, 상기 처리 기능이 컴퓨터 상에서 실현된다. 처리 내용을 기술한 프로그램은, 컴퓨터로 판독 가능한 기록 매체에 기록해 둘 수 있다. 컴퓨터로 판독 가능한 기록 매체로는, 자기 기록 장치, 광디스크, 광자기 기록 매체, 반도체 메모리 등이 있다.
프로그램을 유통시키는 경우에는, 예를 들어 그 프로그램이 기록된 광디스크 등의 휴대형 기록 매체가 판매된다. 또, 프로그램을 서버 컴퓨터의 기억 장치에 저장해 두고, 그 프로그램을 서버 컴퓨터로부터 네트워크를 통해 다른 컴퓨터에 전송할 수도 있다.
프로그램을 실행하는 컴퓨터는, 예를 들어 휴대형 기록 매체에 기록된 프로그램 또는 서버 컴퓨터로부터 전송된 프로그램을 자체의 기억 장치에 저장한다. 그리고, 컴퓨터는 자체의 기억 장치로부터 프로그램을 판독하여, 그 프로그램에 따른 처리를 실행한다. 컴퓨터는 휴대형 기록 매체로부터 직접 프로그램을 판독하고, 그 프로그램에 따른 처리를 실행할 수도 있다. 또, 컴퓨터는, 서버 컴퓨터로부터 프로그램이 전송될 때마다, 순서대로 수신한 프로그램에 따른 처리를 실행할 수도 있다.
1 : 병렬 컴퓨터 100 : 라우터
110 : 입력 회로 111, 112, 121, 122 : 논리 버퍼
120 : 출력 회로 130 : 스위치 회로
140 : 라우팅 제어부 200 : 네트워크 I/F
210 : 입력 회로 211 : 수신 데이터 판별부
212 : DMA 제어부 213 : 송신 제어부
220 : 출력 회로 310 : CPU
320 : 메모리 330 : 버스
N1∼N16 : 계산기 노드

Claims (9)

  1. 적어도 제1 가상 채널과 제2 가상 채널을 포함하는 2개의 가상 채널에 의해 다차원 메쉬형(mesh) 또는 다차원 토러스형(torus)으로 접속된 복수의 계산기 노드를 가지며,
    각 계산기 노드는, 상기 제1 가상 채널을 통하여 송수신되는 데이터를 제1 차원 오더(dimension order)에 따라 라우팅하고, 상기 제2 가상 채널을 통하여 송수신되는 데이터를 상기 제1 차원 오더와는 역순인 제2 차원 오더에 따라 라우팅하는 라우팅 제어부를 갖는 것을 특징으로 하는 정보 처리 시스템.
  2. 제1항에 있어서, 상기 각 계산기 노드는,
    자(自)노드에 대한 데이터가 상기 제1 가상 채널을 통하여 수신되었을 때, 그 데이터가 요구원의 계산기 노드에 대한 응답이 필요한 처리 요구 데이터인지의 여부를 판별하는 수신 데이터 판별부와,
    상기 수신 데이터 판별부에 의해 수신 데이터가 상기 처리 요구 데이터라고 판별된 경우, 그 처리 요구 데이터에 대한 응답 데이터를 상기 제2 가상 채널을 통하여 송신하도록 제어하는 응답 제어부
    를 더 갖는 것을 특징으로 하는 정보 처리 시스템.
  3. 제2항에 있어서, 상기 응답 제어부는, 자(自)노드에 접속된 다른 계산기 노드인 인접 계산기 노드 중, 하나의 인접 계산기 노드로부터 상기 제1 가상 채널을 통하여 상기 처리 요구 데이터가 수신되었을 때, 그 처리 요구 데이터에 대한 상기 응답 데이터를, 상기 하나의 인접 계산기 노드에 대하여 상기 제2 가상 채널을 통하여 송신하도록 제어하는 것을 특징으로 하는 정보 처리 시스템.
  4. 제2항 또는 제3항에 있어서, 상기 처리 요구 데이터는 요구처의 계산기 노드가 구비하는 기억부로부터 데이터를 판독하여 요구원의 계산기 노드에 송신시키기 위한 데이터인 것을 특징으로 하는 정보 처리 시스템.
  5. 제4항에 있어서, 상기 각 계산기 노드는, 상기 기억부와의 사이의 데이터 전송 제어를 포함하는 각종 연산 처리를 실행하는 연산부를 더 가지며,
    상기 응답 제어부는 상기 처리 요구 데이터가 수신되었을 때, 상기 기억부로부터 상기 연산부를 통하지 않고 데이터를 판독하여, 상기 응답 데이터로서 송신시키는 것을 특징으로 하는 정보 처리 시스템.
  6. 제2항 또는 제3항에 있어서, 상기 각 계산기 노드는 다른 계산기 노드에 대하여 송신하는 송신 데이터를 생성하는 송신 데이터 생성부를 더 가지며,
    상기 계산기 노드 중, 데이터의 입출력을 담당하는 입출력 노드가 구비하는 상기 송신 데이터 생성부는, 상기 입출력 노드 이외의 계산기 노드로부터의, 적어도 상기 응답 데이터를 제외한 수신 데이터가, 상기 제1 가상 채널 및 상기 제2 가상 채널 중 하나의 가상 채널을 통하여 수신되는 경우에, 상기 입출력 노드 이외의 계산기 노드에 대한 상기 송신 데이터를 생성했을 때, 그 송신 데이터의 송신에 이용하는 가상 채널로서, 상기 제1 가상 채널 및 상기 제2 가상 채널 중 나머지 다른 하나의 가상 채널을 지정하는 것을 특징으로 하는 정보 처리 시스템.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 각 계산기 노드가 다차원 토러스형으로 접속되는 경우, 상기 계산기 노드끼리는, 상기 제1 차원 오더에 따라 라우팅되는 복수의 상기 제1 가상 채널과, 상기 제2 차원 오더에 따라 라우팅되는 복수의 상기 제2 가상 채널에 의해 접속되는 것을 특징으로 하는 정보 처리 시스템.
  8. 적어도 제1 가상 채널과 제2 가상 채널을 포함하는 2개의 가상 채널에 의해 다차원 메쉬형 또는 다차원 토러스형으로 접속된 복수의 계산기 노드에 각각 설치되고, 다른 계산기 노드와의 사이의 데이터 송수신 동작을 제어하는 통신 제어 장치에 있어서,
    그 통신 제어 장치가 설치된 계산기 노드에 대한 데이터가 상기 제1 가상 채널을 통하여 수신되었을 때, 그 데이터가 요구원의 계산기 노드에 대한 응답이 필요한 처리 요구 데이터인지의 여부를 판별하는 수신 데이터 판별부와,
    상기 수신 데이터 판별부에 의해 수신 데이터가 상기 처리 요구 데이터라고 판별된 경우, 그 처리 요구 데이터에 대한 응답 데이터를, 상기 제1 가상 채널과는 역순의 차원 오더에 따라 라우팅되는 상기 제2 가상 채널을 통하여 송신하도록 제어하는 응답 제어부
    를 갖는 것을 특징으로 하는 통신 제어 장치.
  9. 적어도 제1 가상 채널과 제2 가상 채널을 포함하는 2개의 가상 채널에 의해 다차원 메쉬형 또는 다차원 토러스형으로 접속된 복수의 계산기 노드를 포함한 정보 처리 시스템에서의 통신 제어 방법에 있어서,
    각 계산기 노드는,
    상기 제1 가상 채널을 통하여 송수신되는 데이터를 제1 차원 오더에 따라 라우팅하고,
    상기 제2 가상 채널을 통하여 송수신되는 데이터를 상기 제1 차원 오더와는 역순인 제2 차원 오더에 따라 라우팅하는
    것을 특징으로 하는 통신 제어 방법.
KR1020100022286A 2009-03-18 2010-03-12 정보 처리 시스템, 통신 제어 장치 및 방법 KR101082701B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009065892A JP2010218364A (ja) 2009-03-18 2009-03-18 情報処理システム、通信制御装置および方法
JPJP-P-2009-065892 2009-03-18

Publications (2)

Publication Number Publication Date
KR20100105414A KR20100105414A (ko) 2010-09-29
KR101082701B1 true KR101082701B1 (ko) 2011-11-15

Family

ID=42357647

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100022286A KR101082701B1 (ko) 2009-03-18 2010-03-12 정보 처리 시스템, 통신 제어 장치 및 방법

Country Status (5)

Country Link
US (1) US8204054B2 (ko)
EP (1) EP2230606A3 (ko)
JP (1) JP2010218364A (ko)
KR (1) KR101082701B1 (ko)
CN (1) CN101841471B (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5493575B2 (ja) * 2009-08-10 2014-05-14 富士通株式会社 情報処理装置及び情報処理装置の制御方法
JP5238791B2 (ja) 2010-11-10 2013-07-17 株式会社東芝 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法
WO2012127619A1 (ja) * 2011-03-22 2012-09-27 富士通株式会社 並列計算機システム及び並列計算機システムの制御方法
EP2717169B1 (en) * 2011-05-23 2017-01-04 Fujitsu Limited Administration device, information processing device, and data transfer method
US20130282654A1 (en) * 2012-04-24 2013-10-24 Qiming Chen Query engine communication
JP6048505B2 (ja) 2012-09-24 2016-12-21 富士通株式会社 並列計算機、ノード装置、及び並列計算機の制御方法
JP5404947B2 (ja) * 2013-03-26 2014-02-05 株式会社東芝 ストレージ装置
CN103491023B (zh) * 2013-09-13 2016-08-17 中国人民解放军国防科学技术大学 用于三维torus光电混合网络的路由方法
JP2015015049A (ja) * 2014-09-19 2015-01-22 株式会社東芝 ストレージ装置
US9806908B2 (en) * 2015-02-12 2017-10-31 Advanced Micro Devices, Inc. Route mapping at individual nodes of a cluster server
JP6740683B2 (ja) * 2016-04-07 2020-08-19 富士通株式会社 並列処理装置及び通信制御方法
JPWO2018097015A1 (ja) * 2016-11-28 2019-10-17 株式会社エスペラントシステム 分散システム
KR102665997B1 (ko) * 2016-12-20 2024-05-13 에스케이하이닉스 주식회사 패킷을 부호화하는 장치 및 이를 포함하는 메모리 네트워크에서의 라우팅 방법
CN112822300B (zh) * 2021-04-19 2021-07-13 北京易捷思达科技发展有限公司 基于rdma的数据传输方法、装置及电子设备
US20230030168A1 (en) * 2021-07-27 2023-02-02 Dell Products L.P. Protection of i/o paths against network partitioning and component failures in nvme-of environments

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003289311A (ja) 2002-03-27 2003-10-10 Nec Corp 双方向リングネットワーク、ノード装置、および双方向リングネットワークのルーティング情報構成方法
WO2008128837A1 (en) 2007-04-18 2008-10-30 International Business Machines Corporation Fault recovery on a parallel computer system with a torus network

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2227341A (en) * 1989-01-18 1990-07-25 Intel Corp Message routing in a multiprocessor computer system
US5583990A (en) * 1993-12-10 1996-12-10 Cray Research, Inc. System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel
JPH07262155A (ja) * 1994-03-24 1995-10-13 Hitachi Ltd 並列計算機およびメッセージ放送方法
JPH08185380A (ja) * 1994-12-28 1996-07-16 Hitachi Ltd 並列計算機
US5701416A (en) * 1995-04-13 1997-12-23 Cray Research, Inc. Adaptive routing mechanism for torus interconnection network
US5898826A (en) * 1995-11-22 1999-04-27 Intel Corporation Method and apparatus for deadlock-free routing around an unusable routing component in an N-dimensional network
JP3860257B2 (ja) * 1996-06-28 2006-12-20 富士通株式会社 チャネルの決定方法
US5898827A (en) * 1996-09-27 1999-04-27 Hewlett-Packard Co. Routing methods for a multinode SCI computer system
JP3744362B2 (ja) * 2001-02-21 2006-02-08 日本電気株式会社 ネットワークにおけるリング形成方法及び障害回復方法並びにリング形成時のノードアドレス付与方法
US20030016677A1 (en) * 2001-07-17 2003-01-23 Karl Mauritz Fabric bus architeture
JP2004140539A (ja) * 2002-10-17 2004-05-13 Hitachi Ltd 情報ルーティング方式および情報中継装置
US8223778B2 (en) * 2003-11-19 2012-07-17 Intel Corporation Routing table architecture
US7486619B2 (en) * 2004-03-04 2009-02-03 International Business Machines Corporation Multidimensional switch network
US20090274157A1 (en) * 2008-05-01 2009-11-05 Vaidya Aniruddha S Method and apparatus for hierarchical routing in multiprocessor mesh-based systems
KR101250666B1 (ko) * 2009-01-30 2013-04-03 후지쯔 가부시끼가이샤 정보 처리 시스템, 정보 처리 장치, 정보 처리 장치의 제어 방법, 및 컴퓨터 판독 가능한 기록 매체

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003289311A (ja) 2002-03-27 2003-10-10 Nec Corp 双方向リングネットワーク、ノード装置、および双方向リングネットワークのルーティング情報構成方法
WO2008128837A1 (en) 2007-04-18 2008-10-30 International Business Machines Corporation Fault recovery on a parallel computer system with a torus network

Also Published As

Publication number Publication date
US20100238944A1 (en) 2010-09-23
US8204054B2 (en) 2012-06-19
CN101841471B (zh) 2012-07-25
KR20100105414A (ko) 2010-09-29
EP2230606A3 (en) 2012-07-18
CN101841471A (zh) 2010-09-22
JP2010218364A (ja) 2010-09-30
EP2230606A2 (en) 2010-09-22

Similar Documents

Publication Publication Date Title
KR101082701B1 (ko) 정보 처리 시스템, 통신 제어 장치 및 방법
Jerger et al. On-chip networks
US10681136B2 (en) Memory network methods, apparatus, and systems
JP3532574B2 (ja) トーラス相互結合網のための適応ルーティング機構
Jerger et al. On-chip networks
US9037671B2 (en) System and method for simple scale-out storage clusters
EP0733237B1 (en) Multidimensional interconnection and routing network for an mpp computer
US8819616B2 (en) Asymmetric mesh NoC topologies
US6055618A (en) Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel
US5533198A (en) Direction order priority routing of packets between nodes in a networked system
US20110145452A1 (en) Methods and apparatus for distribution of raid storage management over a sas domain
US20050027900A1 (en) Method and apparatus for a shared I/O serial ATA controller
US7802025B2 (en) DMA engine for repeating communication patterns
JP4818920B2 (ja) 複数のプログラム可能なプロセッサを有する集積データ処理回路
JP2009116872A (ja) ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
US6434656B1 (en) Method for routing I/O data in a multiprocessor system having a non-uniform memory access architecture
KR19980066621A (ko) 대역폭확장이 가능한 상호연결망
US9542317B2 (en) System and a method for data processing with management of a cache consistency in a network of processors with cache memories
JPH06266684A (ja) プロセッサ間ルーティング方式
JP3508857B2 (ja) ノード間データ転送方法およびデータ転送装置
US20240338330A1 (en) Apparatus and method for supporting data input/output operation based on a data attribute in a shared memory device or a memory expander
Alimi et al. Network-on-Chip Topologies: Potentials, Technical Challenges, Recent Advances and Research Direction
Martonosi et al. Synthesis Lectures on Computer Architecture
JP2002055965A (ja) コンピュータシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee