KR20110102932A - 정보 처리 시스템, 정보 처리 장치, 정보 처리 장치의 제어 방법, 및 컴퓨터 판독 가능한 기록 매체 - Google Patents
정보 처리 시스템, 정보 처리 장치, 정보 처리 장치의 제어 방법, 및 컴퓨터 판독 가능한 기록 매체 Download PDFInfo
- Publication number
- KR20110102932A KR20110102932A KR1020117017974A KR20117017974A KR20110102932A KR 20110102932 A KR20110102932 A KR 20110102932A KR 1020117017974 A KR1020117017974 A KR 1020117017974A KR 20117017974 A KR20117017974 A KR 20117017974A KR 20110102932 A KR20110102932 A KR 20110102932A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- virtual channel
- information processing
- dimension
- destination
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/101—Packet switching elements characterised by the switching fabric construction using crossbar or matrix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
- H04L49/1523—Parallel switch fabric planes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
정보 처리 장치가 서로 다차원으로 접속된 정보 처리 시스템에 있어서, 정보 처리 장치에 데이터가 송출되는 차원의 수신처와, 자장치의 동차원의 위치를 비교하여, 그 비교의 결과,자장치의 위치가 정보 처리 장치 1대만큼 바로 앞의 위치였던 경우, 그 데이터가 속하는 가상 채널을 변경하는 제어를 행한다.
Description
본 발명은 정보 처리 시스템에 관한 것으로, 예컨대 복수의 정보 처리 장치가 서로 다차원으로 접속된 정보 처리 시스템, 정보 처리 장치, 정보 처리 장치의 제어 방법, 정보 처리 장치의 제어 프로그램 및 제어 프로그램을 저장한 컴퓨터 판독 가능한 기록 매체에 관한 것이다.
다수의 정보 처리 장치가 서로 접속된 정보 처리 시스템은 병렬 계산기 시스템이라고 불리고 있다. 병렬 계산기 시스템에 있어서 다수의 정보 처리 장치를 접속하는 네트워크로서 가장 이상적인 것 중 하나는, 각 정보 처리 장치가 시스템 상의 다른 모든 정보 처리 장치와 1대1로 접속되는 풀커넥션이라는 방식이다. 그러나 풀커넥션에서는 각 정보 처리 장치를 접속할 때의 케이블의 비용이 증가하여, 케이블 배선이 복잡하게 된다고 하는 문제가 상정(想定)된다. 따라서 매우 다수의 정보 처리 장치를 포함하는 시스템에 풀커넥션 방식을 적용하는 것은 곤란하다고 생각된다.
그 대책으로서 현재 널리 이용되고 있는 것이, 다차원 토러스, 다차원 메쉬와 같은 토폴로지 구조를 이용하여 네트워크를 형성하는 방식이다. 이 방식에서는 하나의 정보 처리 장치에 대하여 수 개의 정보 처리 장치만을 1대1로 접속하고, 그 접속 방법을 연속해서 실시한다. 그 결과, 시스템에 포함되는 모든 정보 처리 장치를 서로 접속시킨다. 상기 방식에 따르면, 정보 처리 장치 사이에 다른 정보 처리 장치를 경유시킴으로써, 임의의 정보 처리 장치로부터 결과적으로 시스템에 포함되는 모든 정보 처리 장치에 액세스할 수 있다. 즉 원리적으로는 시스템 상의 모든 정보 처리 장치에 대하여, 어떤 정보 처리 장치로부터라도 액세스할 수 있다.
그러나 다차원 토러스, 다차원 메쉬와 같은 토폴로지 구조를 이용한 방식에서는, 모든 정보 처리 장치가 1대1로 접속되어 있지는 않다. 이 때문에 이하의 문제를 생각할 수 있다. 즉, 어떤 정보 처리 장치에서 다른 정보 처리 장치로 데이터를 전송하는 최단 경로는 풀컬렉션 방식의 경우에는 1가지였지만, 다차원 토러스, 다차원 메쉬와 같은 토폴로지 구조를 이용하는 경우, 정보 처리 장치 사이의 최단 경로는 여러 가지 존재한다. 따라서 여러 가지의 경로 중에서 어떤 경로를 채용할지를 결정하기 위한 루팅 알고리즘이 필요하게 된다.
"Age-based packet arbitration in large radix k-ary and n-cubes", Denis Abts and Deborah Weisser, SC07, 2007
"Routing and flow control in systems network algorism", V. Ahuja, IBM journal, 1978
"Flexible oblivious router algorism", U. Par et. al., IBM journal, 1995
「컴퓨터 아키텍쳐 정량적 어프로치 제4판」, 저자 : John L. Hennessy and David A. Patterson, 출판사 : 주식회사 쇼에이샤(翔泳社), 부록 E, E-3 P22∼ 개요, E-4 P30∼ 토폴로지 관련, E-5 P45∼ 루팅 관련, E-6 P57∼ 스위치의 마이크로 아키텍쳐 관련
실시예에서는, 정보 처리 장치가 서로 다차원으로 접속된 정보 처리 시스템에 있어서, 데이터의 송출 대기 시간을 단축하는 것을 목적으로 한다.
각 정보 처리 장치는, 데이터가 송출되는 차원에서의 수신처와 자장치(自裝置)의 동차원의 위치를 비교하여, 수신처 비교 결과 자장치의 위치가 데이터의 상기 차원에 있어서의 수신처가 되는 정보 처리 장치 1대만큼 바로 앞의 위치였던 경우, 데이터의 가상 채널을 변경한다.
개시된 바에 따르면, 정보 처리 장치가 서로 다차원으로 접속된 정보 처리 시스템에 있어서, 가상 채널의 유효 이용을 가능하게 하여 데이터의 송출 대기 시간을 단축할 수 있다.
도 1은 실시예 1의 정보 처리 시스템의 전체의 구성예를 설명하기 위한 블록도이다.
도 2는 도 1에서의 각 정보 처리 장치의 내부 구성예를 설명하기 위한 블록도이다.
도 3은 도 2에서의 루팅 컨트롤러로 실시되는 차원 오더 루팅 방식에 의한 차원 제어 방법에 관해서 설명하기 위한 처리 흐름도이다.
도 4는 도 2에서의 루팅 컨트롤러로 실시되는 가상 채널 제어 방법에 관해서 설명하기 위한 처리 흐름도이다.
도 5는 도 2에서의 루팅 컨트롤러의 구성예에 관해서 설명하기 위한 블록도이다.
도 6은 도 4에 도시되는 가상 채널 제어 방법에 관해서 실례를 들어 설명하기 위한 제1 도면이다.
도 7은 도 4에 도시되는 가상 채널 제어 방법에 관해서 실례를 들어 설명하기 위한 제2 도면이다.
도 8은 가상 채널 제어 방법의 실시에 의해서 얻어지는 작용 효과에 관해서 설명하기 위한 제1 도면이다.
도 9는 가상 채널 제어 방법의 실시에 의해서 얻어지는 작용 효과에 관해서 설명하기 위한 제2 도면이다.
도 10은 가상 채널 제어 방법의 동작의 흐름을 구체적으로 설명하기 위한 처리 흐름도이다.
도 11은 실시예 1에 의한 정보 처리 시스템에 있어서 적용 가능한 데이터 패킷의 구성예에 관해서 설명하기 위한 도면이다.
도 12는 도 2에서의 루팅 컨트롤러에 포함되는, 크로스바 인터페이스의 구성예에 관해서 설명하기 위한 제1 도면이다.
도 13은 도 2에서의 루팅 컨트롤러에 포함되는, 크로스바 인터페이스의 구성예에 관해서 설명하기 위한 제2 도면이다.
도 14는 도 2에서의 루팅 컨트롤러의 구성예에 관해서 설명하기 위한 도면이다.
도 15는 도 2에서의 정보 처리부의 구성예에 관해서 설명하기 위한 블록도이다.
도 16은 실시예 1을 적용한 경우의 효과를 검증하기 위한 시뮬레이션 결과에 관해서 설명하기 위한 도면이다.
도 2는 도 1에서의 각 정보 처리 장치의 내부 구성예를 설명하기 위한 블록도이다.
도 3은 도 2에서의 루팅 컨트롤러로 실시되는 차원 오더 루팅 방식에 의한 차원 제어 방법에 관해서 설명하기 위한 처리 흐름도이다.
도 4는 도 2에서의 루팅 컨트롤러로 실시되는 가상 채널 제어 방법에 관해서 설명하기 위한 처리 흐름도이다.
도 5는 도 2에서의 루팅 컨트롤러의 구성예에 관해서 설명하기 위한 블록도이다.
도 6은 도 4에 도시되는 가상 채널 제어 방법에 관해서 실례를 들어 설명하기 위한 제1 도면이다.
도 7은 도 4에 도시되는 가상 채널 제어 방법에 관해서 실례를 들어 설명하기 위한 제2 도면이다.
도 8은 가상 채널 제어 방법의 실시에 의해서 얻어지는 작용 효과에 관해서 설명하기 위한 제1 도면이다.
도 9는 가상 채널 제어 방법의 실시에 의해서 얻어지는 작용 효과에 관해서 설명하기 위한 제2 도면이다.
도 10은 가상 채널 제어 방법의 동작의 흐름을 구체적으로 설명하기 위한 처리 흐름도이다.
도 11은 실시예 1에 의한 정보 처리 시스템에 있어서 적용 가능한 데이터 패킷의 구성예에 관해서 설명하기 위한 도면이다.
도 12는 도 2에서의 루팅 컨트롤러에 포함되는, 크로스바 인터페이스의 구성예에 관해서 설명하기 위한 제1 도면이다.
도 13은 도 2에서의 루팅 컨트롤러에 포함되는, 크로스바 인터페이스의 구성예에 관해서 설명하기 위한 제2 도면이다.
도 14는 도 2에서의 루팅 컨트롤러의 구성예에 관해서 설명하기 위한 도면이다.
도 15는 도 2에서의 정보 처리부의 구성예에 관해서 설명하기 위한 블록도이다.
도 16은 실시예 1을 적용한 경우의 효과를 검증하기 위한 시뮬레이션 결과에 관해서 설명하기 위한 도면이다.
도 1은 실시예 1에 의한 정보 처리 시스템의 전체 구성도이다. 도 1에 있어서, 정보 처리 시스템은 각 노드 N이 이차원 토러스형으로 접속된 토폴로지를 갖는다. 즉 도 1에서, 좌우 단부에 위치하는 노드는 각각 (0), (1), …, (5)의 동일한 숫자끼리 접속된다. 마찬가지로 상하 단부에 위치하는 노드는 각각 (10), (11), …, (15)의 동일한 숫자끼리로 접속된다. 그 결과 각 노드가 2차원 토러스형으로 접속된다.
여기서 노드 N은, 그 각각이 정보 처리 장치이다. 도 1의 구성예의 경우, 노드 N은 +/-x 방향(도면에서 가로 방향)을 따라서 6개, +/-y 방향(도면에서 세로 방향)을 따라서 6개 배열되어, 계(計) 36개의 노드 N이 포함된다. 한편 도 1에서, 우측 방향을 +x 방향, 아래 방향을 +y 방향으로 한다. 각 노드 N은 +/-x 방향, +/-y 방향으로 서로 인접하는 노드 N과의 사이가 물리 채널에 의해서 각각 접속되어 있다. 각 물리 채널은 양방향의 것으로 되어 있다. 여기서 도 1에 도시되는 바와 같이, 36개의 노드 N 중, -x 및 -y 방향의 코너에 위치하는 노드 N00(도 1에서, 좌측 상부 코너의 노드 N00)의 좌표가 원점(0,0)으로 되어 있다. 마찬가지로 +x 및 +y 방향의 코너에 위치하는 노드 N55(도 1에서, 우측 하부 코너의 노드 N55)의 좌표가 (5,5)로 되어 있다. 마찬가지로 +x 및 -y 방향의 코너에 위치하는 노드 N50(도 1에서, 우측 상부 코너의 노드 N50)의 좌표가 (5,0)으로 되고 있다. 마찬가지로 -x 및 +y 방향의 코너에 위치하는 노드 N05(도 1에서, 좌측 하부 코너의 노드 N05)의 좌표가 (0,5)로 되고 있다. 즉 원점에 위치하는 노드 N에 대하여, +x 방향으로 n번째, +y 방향으로 m번째에 위치하는 노드 N의 좌표는 (n,m)이 된다. 예컨대 도 1에서, 원점에 위치하는 노드 N00에 대하여, +x 방향으로 3번째, +y 방향으로 2번째로 위치하는 노드 N32의 좌표는 도시한 바와 같이 (3,2)로 된다. 한편 도 1에서, 각 노드의 좌표는 상기 노드를 나타내는 정방형의 우측 상부 코너의 외측 부분에 나타내어져 있다.
도 2는 각 노드 N의 내부 구성예를 설명하기 위한 블록도이다. 도 2에 도시되는 바와 같이, 노드 N은, 루팅 컨트롤러(4) 및 정보 처리부(5)를 구비한다. 루팅 컨트롤러(4)는, 정보 처리부(5)에 의해 생성된 데이터 패킷, 또는 인접 노드로부터 전송되어 온 데이터 패킷의 차원 제어 및 가상 채널 제어를 행한다. 차원 제어 및 가상 채널 제어에 대해서는 후술한다. 여기서 노드 사이를 접속하는 물리 채널이, 노드 N 내부에 있어서 루팅 컨트롤러(4)에 접속되어 있다. 또한, 정보 처리부(5)는 CPU(Central Processing Unit)를 가지며, 도 15와 함께 후술한다.
루팅 컨트롤러(4)는, 소위 차원 오더 루팅이라 불리는 루팅 방식을 실시한다. 차원 오더 루팅에 관해서 이하에 설명한다. 도 1과 같이, 복수의 정보 처리 장치, 즉 노드 N이 다차원, 실시예 1의 경우 2차원으로 접속된 정보 처리 시스템을 상정한다. 차원 오더 루팅이란, 노드가 다차원으로 접속된 정보 처리 시스템에 있어서, 각 차원의 좌표를 규칙에 따른 순서로 순차 수신처의 좌표에 일치시켜 간다고 하는 알고리즘이다. 상기 규칙에 따른 순서는, 예를 들면 상기 2차원 토러스형으로 접속된 정보 처리 시스템의 경우 x, y의 순이 된다. 여기서 복수의 정보 처리 장치가 실시예와 같이 2차원 토러스형으로 접속된 정보 처리 시스템인 경우로서, 출발점 즉 정보의 송신원의 좌표가 (0,0)이고, 종착점 즉 정보의 수신처의 좌표가 (2,1)이었던 경우를 상정한다. 이 경우에 있어서는 (0,0)→(1,0)→(2,0)→(2,1)의 순서로 데이터 패킷을 전송한다.
즉 우선, x 좌표 상에 배치된 노드를 따라서 데이터 패킷을 전송한다. 여기서는 데이터 패킷을 유지하는 노드의 x 좌표값이 데이터 패킷의 수신처의 x 좌표와 일치할 때까지, 노드 사이에서 순차 데이터 패킷을 전송한다. 데이터 패킷을 유지하는 노드의 x 좌표값이 데이터 패킷 수신처의 x 좌표와 일치한 경우, 그 노드는 데이터 패킷을 y축 방향으로 전송한다. 그 후, y축 방향에 배치된 노드를 따라서 데이터 패킷을 전송한다. 여기서는 데이터 패킷을 유지하는 노드의 y 좌표값이 데이터 패킷의 수신처의 y 좌표와 일치할 때까지, 노드 사이에서 순차 데이터 패킷을 전송한다. 즉 어느 차원에 있어서, 데이터 패킷을 유지하는 노드의 위치가 수신처위치와 일치할 때까지, 동차원 상의 노드 사이에서 데이터 패킷을 순차 전송한다. 이어서, 차원을 변경하여, 변경 후의 차원에 있어서, 데이터 패킷을 유지하는 노드의 위치가 동차원의 수신처 위치와 일치할 때까지, 동차원 상에서 데이터 패킷을 순차 전송한다. 이 순서에 의해서 순차 각 차원에 있어서 데이터 패킷을 유지하는 노드의 위치가 수신처 위치와 일치한다. 최종적으로 모든 차원에 있어서 그 데이터 패킷을 유지하는 노드의 위치가 수신처 위치와 일치한다. 즉 데이터 패킷이 수신처의 노드에 도달한다.
이 루팅 알고리즘의 이점은, 후술하는 날짜 변경선에 따른 제어를 포함함으로써, 데이터의 전송 경로가 루프 구조가 됨으로 인해 생기는 데드로크를 논리적으로 야기하지 않는, 즉 데드로크 프리가 되는 점이다.
한편 도 2에서, P11, P12, P21, P22는 각각 후술하는 송수신 포트를 나타낸다.
도 3은 실시예 1에 의한, 차원 오더 루팅을 행하기 위한 차원 제어 방법을 설명하는 흐름도이다.
도 3의 단계 S1에서, 데이터 패킷을 i 차원으로 송출하는 경우에 있어서, 인접하는 노드로부터 데이터 패킷을 수신한 노드는, 데이터 패킷이 i 차원의 수신처에 도달했는지 여부를 판정한다. i 차원의 수신처에 위치하는 노드 이외의 노드가 데이터 패킷을 수신한 경우에, 그 노드는, 데이터 패킷을 수신한 차원과 동일한 차원을 따라서 데이터 패킷을 송출한다. 즉 이 경우, 데이터 패킷이 x축을 따라서 전송되어 온 경우에는, 그 데이터 패킷을 수신한 노드가 데이터 패킷을 송출하는 차원은 계속해서 x축이다.
단계 S1에서, 각 노드는 데이터 패킷의 x축의 수신처 좌표를 수신한 데이터 패킷의 헤더로부터 판독한다. 한편 데이터 패킷의 구성예에 관해서는 도 11과 함께 후술한다. 그리고 판독된 데이터 패킷의 x축의 수신처 좌표를 자장치의 x 좌표와 비교한다. 비교의 결과, 데이터 패킷의 수신처 x 좌표가 자장치의 x 좌표와 일치한 경우(단계 S1의 YES), 데이터 패킷은 현시점에서 x축의 수신처에 도달하고 있다. 이 때문에, 다음 차원, (i+1) 차원, 예컨대 y축의 수신처에 도달하기 위해서, 데이터 패킷의 전송을 행하는 차원을 (i+1) 차원, 즉 y축으로 변경한다(단계 S2). 다른 한편, 단계 S1의 판정 결과가 NO인 경우, 데이터 패킷은 아직 x축의 수신처에 도달하고 있지 않기 때문에, x축의 수신처에 도달하도록, 데이터 패킷을 수신한 노드는 그 데이터 패킷의 전송을 행하는 차원으로서 계속해서 x축을 유지한다(단계 S3).
여기서 차원 오더 루팅의 알고리즘은 전술한 바와 같이 데드로크 프리로 된다고 하는 이점을 갖는 한편, 통신 효율이라는 관점에서는 검토의 여지가 있다고 생각된다. 즉 차원 오더 루팅을 적용한 경우, 실제의 운용상, 전술한 예와 같이 x축, y축 등 축을 직진하는 양태의 통신이, x축에서 y축으로 차원을 바꿔 타는 양태의 전송에 비해서 상당히 많다고 생각된다. 그 결과, 수신한 데이터 패킷을 일시적으로 저장하는 버퍼의 사용율에 노드 사이에서 편차가 생기거나, 발생수가 적은, 축을 바꿔 타는 양태의 전송이, 직진하는 양태의 전송을 저해하는 사태가 상정된다. 실시예 1에서는 데드로크 프리라고 하는 특징을 갖는 차원 오더 루팅을 채용하면서, 시스템 전체의 통신 효율을 향상시킨다.
도 4는 실시예 1의 가상 채널 제어 방법에 관해서 설명하기 위한 흐름도이다.
도 4에서, 노드는 데이터 패킷을 송출할 때, 송출하는 데이터 패킷이 날짜 변경선을 넘는지 여부를 판정한다(단계 S11). 여기서 날짜 변경선이란 차원마다 정해져 있으며, 각 차원의 정해진 노드 사이에 형성된다. 각 차원의 정해진 노드 사이란, 예컨대 도 1에 도시되는 정보 처리 시스템의 경우, (0), (1), (2), …, (5)에서 좌우단의 노드가 각각 서로 접속되는 부분이다. 또한 마찬가지로, (10), (11), (12), …, (15)에서 상하단의 노드가 각각 서로 접속되는 부분이다. 날짜 변경선이란, 도 1에 도시되는 정보 처리 시스템과 같이, 토러스형으로 접속된 정보 처리 시스템에 있어서, 상기 차원 오더 루팅을 실시함에 있어서, 데드로크 프리를 실현하기 위해서 마련된다. 즉 데이터 패킷을 전송하는 경로가, 차원이 변경되는 기회가 적은 경로였다고 하면, 동일 차원을 데이터 패킷이 전송되는 동안에 데드로크가 생길 가능성이 있다. 날짜 변경선은, 이와 같이 데이터 패킷이 전송되는 경로가, 차원이 변경되는 기회가 적은 경로였던 경우, 데이터 패킷이 전송되는 동안에 동일 차원이 가상 채널의 변경을 생기게 하기 위해서 마련된다. 그 결과, 차원 오더 루팅을 실시함에 있어서 데드로크 프리를 실현할 수 있다.
여기서 가상 채널에 관해서 설명한다. 예컨대 도 1에 도시되는 정보 처리 시스템과 같이 노드가 토러스형으로 접속된 구조에 있어서, 노드 사이는 물리적으로는 1 채널로 접속된다. 실시예 1에서는 각 노드에 복수의 버퍼를 설치하여, 복수 버퍼의 각각에 가상 채널을 할당한다. 그 결과, 노드 사이가, 상기 복수 버퍼와 동수의 복수의 가상 채널로 접속되어 있는 것과 같은 효과를 얻을 수 있다.
상기 데드로크에 관해서 설명한다. 도 1에 도시되는 정보 처리 시스템과 같이 토러스형으로 접속된 구조에 있어서 데이터 패킷을 전송할 때, 특정한 복수의 노드가 루프 구조로 되는 경우가 있다. 특정한 복수의 노드가 루프 구조가 되는 경우, 각 노드가 갖는 하나의 가상 채널의 모든 버퍼에 데이터 패킷이 저장되어, 공간이 없는 상태로 되는 경우가 있다. 각 노드가 갖는 하나의 가상 채널의 모든 버퍼에 데이터 패킷이 저장되어, 공간이 없는 상태에서는, 각 노드가 데이터 패킷을 송출하는 상대 측의 노드가 갖는 상기 하나의 가상 채널의 버퍼에 공간이 없다. 이 때문에, 각 노드는 상기 하나의 가상 채널의 버퍼에 저장하고 있는 데이터 패킷을 송출할 수 없다. 이러한 상태를 데드로크라고 부른다. 상기 날짜 변경선의 기능에 의해 동일 차원을 데이터 패킷이 전송되는 동안, 날짜 변경선을 넘으면 가상 채널의 변경이 생긴다. 가상 채널의 변경에 의해 상기 루프 구조에 포함되는 각 노드가 갖는 버퍼 중, 상기 공간이 없는 버퍼와는 별도의 가상 채널의 버퍼가 사용된다. 이와 같이 하여, 공간이 없는 버퍼와는 별도의 가상 채널의 버퍼가 사용되면, 그 별도의 가상 채널의 버퍼는 공간을 가지며, 노드는 상대 노드의 그 버퍼의 공간에 대하여 데이터 패킷을 송출할 수 있다. 따라서 상기 데드로크는 생기지 않는다.
도 4의 설명으로 되돌아가면, S11에서는, 노드가 데이터 패킷을 수신했을 때, 그 노드가 날짜 변경선에 인접하는 노드이고 또한 데이터 패킷을 송출하는 방향이 날짜 변경선을 넘는 방향인지 여부를 판단한다. 판단의 결과, 그 노드가 날짜 변경선에 인접하는 노드이며 또한 데이터 패킷을 송출하는 방향이 날짜 변경선을 넘는 방향이었던 경우, 단계 S11의 판정 결과는 YES가 된다. 단계 S11의 판정 결과가 YES인 경우, 데이터 패킷의 가상 채널을 현재의 가상 채널에서 다른 가상 채널로 변경한다(단계 S12). 예컨대 하나의 가상 채널에서 다른 가상 채널로 변경한다. 여기서 가상 채널의 변경은, 데이터 패킷이 가지는 헤더가 갖는 가상 채널 정보(VC)(도 11과 함께 후술함)를 재기록함으로써 이루어진다. 데이터 패킷의 헤더의 가상 채널 정보(VC)가 재기록되면 그 데이터 패킷을 수신한 상대 측의 노드에서는 다음 동작이 이루어진다. 즉 상대 측의 노드에서는, 수신한 데이터 패킷이 갖는 헤더의 가상 채널 정보(VC)가 나타내는 가상 채널의 버퍼에, 수신한 데이터 패킷을 저장한다.
단계 S11의 판정 결과가 NO인 경우, 단계 S13으로 이행한다. 단계 S13에서는, 데이터 패킷을 송출하는 차원의 수신처 좌표에 대하여, 자(自)노드의 동차원 좌표가 노드 1대만큼 바로 앞의 좌표인지 여부를 판정한다. 판정 결과, 자노드의 좌표가 수신처 좌표로부터 노드 1대만큼 바로 앞의 좌표였던 경우(YES), 데이터 패킷의 가상 채널을 현재의 가상 채널에서 다른 가상 채널로 변경한다(단계 S14). 예컨대 하나의 가상 채널에서 다른 가상 채널로 변경한다.
단계 S13의 판정 결과가 NO인 경우, 단계 S15로 이행한다. 단계 S15에서는, 데이터 패킷을 송출하는 차원의 수신처 좌표가, 자노드의 동차원의 좌표와 일치하는지 여부를 판정한다. 판정의 결과, 좌표가 일치한 경우(YES), 자노드가 그 데이터 패킷의 최종적인 수신처인지 여부를 판정한다(단계 S16). 판정 결과, 자노드가 그 데이터 패킷의 최종적인 수신처였던 경우(YES), 도 4의 처리를 종료한다. 다른 한편, 단계 S16의 판정 결과가 NO였던 경우, 데이터 패킷의 가상 채널이 이미 상기 단계 S11 또는 단계 S13에서 변경되고 있었던 경우에는, 데이터 패킷의 가상 채널을 변경 전의 가상 채널로 되돌린다(단계 S17). 예컨대 상기 다른 가상 채널에서 하나의 가상 채널로 되돌린다. 데이터 패킷의 가상 채널이 상기 단계 S11 또는 단계 S13에서 변경되지 않았던 경우에 단계 S17에서는 어떠한 가상 채널의 변경도 이루어지지 않는다.
이하에 도 5∼7과 함께, 도 4와 함께 전술한 가상 채널 제어 방법에 관해서 더욱 구체적으로 설명한다.
가상 채널 제어 방법에서는 전술한 바와 같이, 각 노드가 복수의 버퍼를 갖는다. 그리고 이러한 구조를 갖는 송수신 포트를 복수 개 설치한다. 가상 채널 제어 방법을 적용한 노드 N의 구성에 관하여, 도 5와 함께 이하에 설명한다.
도 5는 도 2와 함께 전술한 각 노드 N의 구성을 도시한다. 단 도 5의 경우 설명의 편의상, 루팅 컨트롤러(4)의 기능에 관한 구성만 나타내고 있다. 도 5에 도시되는 바와 같이, 루팅 컨트롤러(4)는 크로스바 스위치(41)를 갖는다. 이 크로스바 스위치(41)는, 크로스바 스위치(41)를 갖는 노드 N이 송출하는 데이터 패킷이 경합한 경우에, 조정을 행하는 조정부로서의 기능을 갖는다.
여기서 도 1, 2와 함께 전술한 각 노드 N은 데이터를 송수신하는 포트로서, 각 방향에 대해 1 세트의 데이터 송수신 포트를 갖는다. 여기서 1 세트의 데이터 송수신 포트란, 송신 포트 1개 및 수신 포트 1개의 세트를 의미한다. 송수신 포트로서 노드 N에는, +x 방향용의 송수신 포트(P11), -x 방향용의 송수신 포트(P12), +y 방향용의 송수신 포트(P21) 및 -y 방향용의 송수신 포트(P22)인 합계 4 세트의 송수신 포트가 설치되어 있다. 또한 각 송수신 포트에 대해서, 송출하는 데이터 패킷을 일시적으로 저장하는 버퍼가, 가상 채널의 개수만큼 설치된다. 실시예 1의 경우 가상 채널은 VC0, VC1로서 합계 2개이며, 노드 N에는 송수신 포트가 합계 4 세트가 설치되기 때문에, 버퍼는 도 5에 도시되는 바와 같이, 합계로서 8개가 설치된다. 도 5에서, 송수신 포트마다 2개 설치된 버퍼는 VC0, VC1로서 나타내어져 있다. 송출하는 데이터가 경합하는 경우란, 데이터 패킷을 송출하는 각 방향에 대하여, 가상 채널이 동일한 2 이상의 데이터 패킷을 송출하는 경우이다.
또한 노드 N에 수신된 데이터 패킷은 수신된 방향마다, 2개의 버퍼(VC0, VC1) 중, 그 데이터 패킷의 가상 채널에 관해서 형성된 측의 버퍼에 저장된다. 각 버퍼는 FIFO(First In First Out) 구조를 가지며, 전술한 바와 같이 각 버퍼에 저장된 데이터 패킷 중 선두의 데이터 패킷에서부터 순차 송출된다. 여기서 상기 계 8개의 버퍼의 선두의 데이터 패킷 중, 가상 채널이 동일하고, 그 송출하는 방향이 서로 일치하는 복수의 데이터 패킷이, 상기 경합하는 데이터 패킷으로 된다.
도 6은 도 4와 함께 전술한 가상 채널 제어 방법을 실시한 경우의 데이터 패킷의 움직임을 설명하기 위한 도면이다. 도 6에서, 데이터 전송 방향 A로서 나타내어지는 바와 같이, 데이터는 우측 아래에 위치하는 노드에서 좌측 위에 위치하는 노드에 대하여 전송된다. 즉, 도 6에서, 데이터는 노드 N1에서부터 N5까지 순차전송된다. 단 도 6의 예의 경우, 노드 N5는 그 데이터 패킷의 최종적인 수신처의 노드가 아닌 것으로 한다.
도 6에서, 각 노드가 갖는 2개의 타원은 각각 가상 채널(VC0, VC1)의 버퍼를 나타낸다. 또한 상기 2개의 타원 중, 해칭되어 있는 쪽의 타원은, 상기 데이터 패킷이 저장된 측의 버퍼를 나타낸다.
도 6에서, 데이터는 우선 좌측 방향으로 노드 N1에서 N3까지 전송되어, 데이터가 차원의 수신처, 즉 노드 N3의 위치에 도달한 후, 데이터를 전송하는 차원이 변경된다. 그 후 도 6에서, 위 방향으로 노드 N3에서부터 N5까지 데이터가 전송된다. 도 6의 예의 경우, 데이터의 전송 중에 날짜 변경선을 넘는 일은 없는 것으로 한다. 따라서 도 6에 도시되는 데이터 전송 동안, 도 4의 단계 S11의 판정 결과는 항상 NO이다.
도 6에서, 데이터가 노드 N1에서 N2로 송출되었을 때, 데이터를 수신한 차원의 노드 N2의 좌표는, 그 차원의 수신처의 노드인 N3의 1대 바로 앞의 좌표이다. 따라서 도 4의 단계 S13의 판정 결과는 YES가 된다. 여기서 노드 N2가 수신하는 데이터에 대하여, SD1로서 나타내어지는 바와 같이, 각 노드 N1, N2에 있어서, 가상 채널(VC0)의 버퍼가 사용되고 있다. 따라서, 노드 N2에서는 S13의 판정 결과에 기초하여 데이터의 가상 채널이 변경되어, 데이터를 전송할 때에 사용되는 버퍼가 가상 채널 VC0의 것에서 VC1의 것으로 변경된다(단계 S14). 그 결과 데이터는 노드 N2에서 송출된 후(SD2), 노드 N3의 가상 채널(VC1)의 버퍼에 저장된다.
여기서 노드 N2로부터 데이터를 수신한 차원의 노드 N3의 좌표는, 그 차원의 데이터의 수신처의 좌표와 일치한다. 따라서, 노드 N3에 있어서의 도 4의 단계 S15의 판정 결과는 YES가 된다. 또한 노드 N3은 데이터의 최종적인 수신처의 노드가 아니다(단계 S16의 NO). 그 결과, 노드 N3에서 노드 N4로 데이터가 송출될 때(SD3), 데이터를 전송하는 가상 채널은 현재의 VC1에서 VC0로 되돌려진다(단계 S17). 즉 채널 바꿔 타기(SD1)로 VC0에서 VC1로 이동한 데이터는, 다시 원래의 가상 채널(VC0)로 되돌아간다(SD3). 그 후 데이터는 노드 N4에서 노드 N5로 송출된다. 노드 N4에서 노드 N5로의 데이터 송출은 도 6에서, SD4로서 나타내어져 있다.
이어서 도 7과 함께 도 6의 예와는 다른 가상 채널 제어 방법의 예에 대해서 설명한다.
도 7은 도 1과 함께 전술한 노드의 배열로부터, x축을 따라서 배열된 6개의 노드 N11∼N16을 추출하여 도시한 것이다. 각 노드 N11∼N16의 x 좌표는 각각 0∼5이다. 설명의 편의상, 도 7에서, 데이터 패킷은 -x 측에서 +x 측으로 전송되는 것으로 한다. 또한, 도 7에서, 각 노드의 상단은 가상 채널(VC0)의 버퍼를 나타내고, 하단은 가상 채널(VC1)의 버퍼를 나타낸다. 또한 각 노드 내에 나타내어져 있는 「0>3」,「0>2」,「1>4」,「1>3」과 같은 사항은, 각 노드의 버퍼에 저장된 데이터 패킷을 나타낸다. 여기서 예컨대 「0>3」의 「>」의 좌측의 숫자「0」은, 데이터 패킷의 송신원의 x 좌표를 나타내고, 우측의 숫자「3」은 데이터 패킷 수신처의 x 좌표를 나타낸다.
또한 도 7의 예에서는 날짜 변경선이, x 좌표「0」과 「5」와의 사이, 즉 노드 N11과 노드 N16과의 사이에 형성되어 있다. 예컨대 노드 N16의 VC0의 버퍼의 최상단에 저장된 데이터「4>1」은, 송신원의 x 좌표가 4이며, 수신처의 x 좌표가 1이다. 즉, 이 데이터는 노드 N15에서 노드 N12로 전송된다. 여기서 실시예 1에서는 토러스형의 접속, 즉 원환형의 접속이 이루어지고 있고, 전송 방향은 한 방향, 도 7의 예의 경우, x축의 차원에 있어서의 데이터의 전송 방향은 +x 방향으로 되어 있다. 따라서 「4>1」의 데이터 패킷은, 노드 N16의 왼쪽 옆에 위치하는 x 좌표가 4인 노드 N15로부터 +x 방향으로 송신되어 노드 N16에 수신되고, 그 후 x 좌표가 0인 노드 N11에 노드 N16으로부터 전송된 후, 노드 N11에서 x 좌표가 1인 노드 N12로 전송된다. 즉 이 경우, 원환형의 접속에 의해, 데이터 패킷이 x 좌표의 최대치 「5」인 노드 N16에 이른 후, x 좌표가 최소치「0」을 갖는 노드 N11에 직접 N16으로부터 송신된다. 그 후 데이터 패킷은 수신처의 x 좌표 「1」의 노드 N12에 전송된다. 여기서 데이터 패킷이 노드 N16에서 노드 N11로 전송될 때, x 좌표「5」와 「0」과의 사이, 즉 날짜 변경선을 데이터 패킷이 통과한다. 이 경우, 도 4의 단계 S11의 판정 결과가 YES가 되어, 가상 채널이 현재의 VC0에서 VC1로 변경된다.
이어서 도 7에서, 노드 N12의 하단의 가상 채널(VC1)의 버퍼의 최상단에 나타내어지는 데이터 패킷「0>1」에 주목한다. 이 데이터 패킷은 송신원의 x 좌표가 「0」으로, 즉 그 데이터 패킷을 유지하는 노드 N12의 바로 왼쪽 옆의 노드 N11의 좌표 위치이다. 또한 데이터 패킷의 수신처 x 좌표가 「1」로, 노드 N12 자신의 좌표 위치이다. 따라서 데이터 패킷은 노드 N11에서 노드 N12에 대하여, +x 방향, 즉 도 7에서 우측으로 송신되어 온 것이다. 노드 N11에서 노드 N12로의 데이터 패킷 송신 전, 노드 N11에서는, 데이터 패킷의 가상 채널은 VC0이며, 데이터 패킷을 송출하는 차원인 x축 차원의 수신처「1」에 대하여, 자신의 동차원의 좌표 위치「0」이 노드 1대만큼 바로 앞이라고 판정한다(도 4에서, 단계 S13의 YES). 그 결과, 노드 N11에서는 가상 채널이 VC0에서 VC1로 변경된다(도 4에서, 단계 S14). 그 후, 가상 채널(VC1)에서 상기 데이터 패킷은 노드 N12에 수신된다. 동일한 순서에 의해, 각각의 노드의 바로 왼쪽 옆의 노드에 있어서, 데이터 패킷의 가상 채널이 VC0에서 VC1로 변경으로 된 후에 노드가 수신한 데이터 패킷은 다음과 같다. 즉 도 7에서, 노드 N13 중, 하단의 「1>2」, 「0>2」, 노드 N14 중, 하단의 「2>3」, 「1>3」, 「0>3」, 노드 N15 중, 하단의 「3>4」, 「2>4」, 「1>4」이다. 더욱이 노드 N16 중, 하단의 「4>5」, 「3>5」, 「2>5」이다.
이와 같이 실시예 1에서는, 날짜 변경선을 넘는 데이터의 가상 채널이 VC0에서 VC1로 변경된다고 하는 룰, 즉 도 4 중, 단계 S11, S12에 더하여, 도 4 중, 단계 S13, S14의 룰을 적용한다. 즉, x축에서 y축으로의 이동과 같이 데이터 전송의 차원이 변하는 노드의 1대 바로 앞의 노드로써, 가상 채널을 변경한다고 하는 룰을 더한다.
이하에 상기 실시예 1의 효과에 관해서 설명한다.
실시예 1의 효과로서, 크로스바 스위치(41)와의 셰이크핸드 기회와 그 성립 확률의 증대를 들 수 있다. 이 점에 관해서 도 8과 함께 설명한다. 각 노드에 있어서 다른 노드에 데이터를 송출할 때 이하의 동작이 이루어진다. 우선 크로스바 스위치(41)에 대하여, 각 방향의 송수신 포트를 갖는 크로스바 인터페이스(42∼45)로부터 데이터의 송신 요구가 나온다. 그리고 송신 요구를 받은 크로스바 스위치(41)는 송신 가능한 상태가 되면, 크로스바 인터페이스(42∼45)에 대하여 송신 허가를 부여한다. 통상 버퍼는 FIFO 구조를 가지며, 각 버퍼의 선두의 데이터 패킷에 관해서만 송신 요구가 나온다. 도 8에서, 가상 채널마다의 버퍼는 VC0, VC1로서 나타내어져 있다.
실시예 1의 경우, 도 4에서, 단계 S13, S14의 룰을 단계 S11, S12의 룰에 추가하여 마련했기 때문에, 가상 채널(VC0, VC1) 사이의 데이터 패킷 이동의 기회가 비약적으로 증대된다. 그 결과, 각 방향의 송수신 포트에 대하여 데이터 패킷이 VC0, VC1의 2개의 버퍼로 분산되기 쉽게 된다. 그 결과, 도 7에 도시되는 바와 같이, 노드 사이에서 전송되는 데이터 패킷이 한 쪽의 가상 채널의 버퍼로 치우치는 일없이, VC0, VC1의 2개의 버퍼의 각각에 데이터 패킷이 분산되어 저장된다. 그 결과, 각 버퍼의 선두의 데이터 패킷에 대해 크로스바 스위치(41)에 대하여 송신 요구가 나오게 되므로, 복수 개의 송신 요구를 동시에 낼 수 있는 상태가 된다. 그 결과, 각 크로스바 인터페이스(42∼45)와 크로스바 스위치(41) 사이에서 셰이크핸드가 성립할 가능성도 증대된다. 여기서 셰이크핸드의 성립이란, 어떤 방향의 크로스바 인터페이스(42∼45)가 크로스바 스위치(41)에 송신 요구를 내었을 때에, 송신 요구에 대한 송신 허가가 주어지는 것을 의미한다.
도 8의 예에서는, 각 크로스바 인터페이스의 가상 채널(VC0, VC1)의 각각의 버퍼에 저장되어 있는 데이터 패킷의 가상 채널은 변경되지 않는 것으로 한다. 즉 가상 채널(VC0)의 버퍼에 저장된 데이터 패킷의 가상 채널은 VC0이며, 마찬가지로 가상 채널(VC0)의 버퍼에 저장된 데이터 패킷의 가상 채널은 VC1인 것으로 한다.
또한 도 8의 예에서는 이하의 경우를 상정하고 있다. 즉 -x의 크로스바 인터페이스(43)의 가상 채널(VC0)의 버퍼의 선두에 +x 방향으로 향하는 데이터 패킷이 저장되고, 가상 채널(VC1)의 버퍼의 선두에 +y 방향으로 향하는 데이터 패킷이 저장되어 있다. 마찬가지로 -y의 크로스바 인터페이스(45)의 가상 채널(VC0)의 버퍼의 선두에 +y 방향으로 향하는 데이터 패킷이 저장되고, 가상 채널(VC1)의 버퍼의 선두에 +x 방향으로 향하는 데이터 패킷이 저장되어 있다. 이러한 경우, 크로스바 스위치(41)는 다음과 같은 식으로 동작을 한다.
크로스바 인터페이스(43)의 가상 채널(VC0)의 버퍼의 +x 방향으로 향하는 데이터 패킷에 대해, 크로스바 스위치(41)에 대하여 송신 요구가 나온다(S21). 마찬가지로 크로스바 인터페이스(45)로부터 +y 방향으로 향하는 가상 채널(VC0)의 버퍼의 데이터 패킷에 대해, 크로스바 스위치(41)에 대하여 송신 요구가 나온다(S22). 이들 S21, S22의 송신 요구는 그 방향이 +x, +y로 서로 다르다. 따라서 크로스바 인터페이스(43)로부터 송신되는 데이터 패킷과, 크로스바 인터페이스(45)로부터 송신되는 패킷은 경합하지 않는다. 따라서 양 크로스바 인터페이스(43, 45)로부터의 송신 요구 S21, S22에 대하여 크로스바 스위치(41)는 각각 송신 허가를 낸다. 그 결과, 양 크로스바 인터페이스(43, 45)의 송신 요구 S21, S22에 따른 데이터 패킷이 양쪽 모두 송출된다.
마찬가지로 크로스바 인터페이스(43)로부터 +y 방향으로 향하는 가상 채널(VC1)의 버퍼의 데이터 패킷에 대해, 크로스바 스위치(41)에 대하여 송신 요구 S23이 나오게 된다. 마찬가지로 크로스바 인터페이스(45)로부터 +x 방향으로 향하는 가상 채널(VC1)의 버퍼의 데이터 패킷에 대해, 크로스바 스위치(41)에 대하여 송신 요구가 나오게 된다(S24). 양 크로스바 인터페이스(43, 45)로부터의 송신 요구 S23, S24는 그 방향이 +y, +x로 서로 다르다. 따라서 양 크로스바 인터페이스(43, 45)로부터의 송신 요구 S23, S24는 경합하지 않는다. 따라서 양 크로스바 인터페이스(43, 45)로부터의 송신 요구 S23, S24에 대하여 크로스바 스위치(41)는 각각 송신 허가를 낸다. 그 결과 양 크로스바 인터페이스(43, 45)로부터의 송신 요구 S23, S24에 따른 데이터 패킷이 양쪽 모두 송출된다.
이와 같이 실시예 1에 따르면, 2개의 데이터 패킷이 동시에 송출되고, 병렬도가 높다. 즉 실시예 1에 따르면 각 송수신 포트에서 모든 데이터 패킷이 2개의 가상 채널(VC0, VC1)을 유효하게 이용하여 선두로 나오게 된다. 그 결과 송신 요구가 다른 가상 채널을 이용하여 동시에 병행해서 다수 나오게 될 가능성이 높아져, 데이터 패킷의 송출 방향이 경합하지 않을 가능성이 증가하여, 데이터 송출의 효율이 높아진다.
여기서 도 1에 도시되는 바와 같은 구조의 정보 처리 시스템의 경우, 가상 채널(VC0)에는 동축 통신의 데이터 패킷이 존재하고, 상대적으로 가상 채널(VC1)에는 축 이동 통신의 데이터 패킷이 존재하는 빈도가 높아진다. 여기서 동축 통신이란, 차원을 이동하지 않고서 전송되는 데이터를 가리키며, 축 이동 통신이란, 차원을 이동하여 전송되는 데이터를 가리킨다. 그 결과, 각 크로스바 인터페이스로부터의 송신 요구가 각 가상 채널을 통해 동시에 병행하여 다수 나오게 되는 효과와 더불어, 데이터 패킷을 동시에 병행하여 복수 방향의 송수신 포트로부터 송출할 수 있는 기회의 빈도가 높아진다. 데이터 패킷을 동시에 병행하여 복수 방향의 송수신 포트로부터 송출할 수 있는 기회의 빈도가 높아지는 이유는 다음과 같다. 즉 전술한 바와 같이, 각 크로스바 인터페이스로부터의 송신 요구가 각 가상 채널의 버퍼로부터 동시에 병행되어 다수 나오기 때문에, 다른 송신 요구와 경합하지 않는 송신 요구의 발생 빈도가 높아진다. 다른 송신 요구와 경합하지 않는 송신 요구는 곧바로 허가되어 송출할 수 있기 때문에, 데이터 패킷을 동시에 병행하여 복수 방향의 송수신 포트로부터 송출할 수 있는 기회의 빈도가 높아진다.
또한 실시예 1에서는 도 7에 도시되는 바와 같이, 가상 채널(VC0)의 버퍼의 사용율과 가상 채널(VC1)의 버퍼의 사용율의 차가 작다. 그 결과 버퍼를 곧 다 써 버려, 결과적으로 데이터가 정체되어 버린다고 하는 사태가 생길 가능성을 낮출 수 있다. 즉 실시예 1에 따르면 가상 채널(VC0, VC1)의 합계 2개의 버퍼에 균등하게 데이터 패킷이 배분되어지기 때문에, 물리적인 버퍼의 양을 늘리는 일없이, 실질적으로 가상 채널(VC0)의 버퍼의 양을 늘린 것과 동등한 효과를 얻을 수 있다.
더욱이 실시예 1에 따르면, 크로스바 스위치(41)에 대하여 동시에 복수의 송신 요구를 낼 수 있게 되기 때문에, 어떤 데이터 패킷이 전송될 수 있는 상태가 되었을 때, 그 전송 기회를 놓칠 가능성이 감소한다. 이 때문에 크로스바 스위치(41)가 행하는 조정에 걸리는 시간의 변동이 억제된다. 일례로서, 도 9에 도시하는 참고예에서는, 단계 S32에서 나타내어지는 +y 방향의 동축 통신이 발생하고, 동시에 단계 S31에서 나타내어지는 다른 축, 즉 +x 방향에서 +y 방향으로 전송 방향을 변경하는 축 이동 통신이 발생한 경우이다. 이 경우, 상기 동축 통신 S32와 축 이동 통신 S31과의 송출 방향이 각각 +y로 서로 일치한다. 또한 가상 채널도 각각 VC0에서 서로 일치하는 것으로 한다. 이 때문에 S32, S31 각각의 통신에 대한 송신 요구끼리가 경합한다. 그 결과 S32, S31 각각의 통신을 동시에 실시할 수 없고, 한 쪽의 통신에 대해 통신 기회가 상실된다. 이에 대하여 실시예 1에 따르면, 전술한 도 8에 도시하는 예에서 나타내어지는 바와 같이, 데이터 패킷이 2개의 가상 채널의 버퍼(VC0, VC1)에 분산되어 저장된다. 그 결과 단계 S22에서 나타내어지는 +y 방향의 동축 통신과, 단계 S23에서 나타내어지는 +x 방향에서 +y 방향으로 전송 방향을 변경하는 통신이 발생하여, 송출 방향이 +y에서 일치하는 경우라도 S22, S23 각각의 통신을 동시에 실시할 수 있다.
즉 실시예 1에 따르면, 크로스바 스위치(41)에 대하여 동시에 병행하여 다수의 송신 요구를 내는 것이 가능하기 때문에, 통신 기회가 상실되는 사태의 발생 빈도를 효과적으로 줄일 수 있다. 즉 도 8에 도시되는 실시예 1의 경우, 이하에 나타내어지는 동작이 이루어진다. 단계 S22에서 나타내어지는 동축 통신의 데이터 패킷과 단계 S23에서 나타내어지는 다른 축으로부터의 축 이동 통신의 데이터 패킷이 양쪽 모두가 각각 다른 가상 채널에 대응하는 버퍼(VC0, VC1)의 선두에 온다. 동축 통신의 데이터 패킷과 다른 축으로부터의 축 이동 통신의 데이터 패킷이 양쪽 모두 다른 가상 채널에 대응하는 버퍼(VC0, VC1)의 선두에 오면, 동축 통신의 송신 요구와 축 이동 통신의 송신 요구가 동시에 병행하여 나오게 된다. 따라서 동축 통신과 축 이동 통신이 동시에 병행되어 실시되게 된다.
또한 도 9의 참고예에서는, 단계 S31, S32 모두, +y 방향의 데이터 패킷이 버퍼의 선두에 있고, +y 방향에 대한 송신 요구가 나와 있는 상태이다. 다른 한편, S31, S32의 통신에 따른 데이터 패킷이 저장되어 있는 크로스바 인터페이스(43, 45)의 각각의 VC0의 버퍼의 각각에는, 그 +y 방향용의 데이터 패킷의 다음에 +x 방향용의 데이터 패킷이 저장되어 있다. 그러나 상기 +x 방향용의 데이터 패킷은 버퍼의 선두에 없기 때문 크로스바 스위치(41)에 대하여 송신 요구를 낼 수 없어, 송출할 수 없다. 이에 대하여 도 8에 도시하는 실시예 1에 따르면, +x 방향용의 데이터 패킷은, 크로스바 인터페이스(43, 45)의 각각에 있어서, 가상 채널(VC1)의 버퍼에 저장되고 있다. 이 가상 채널(VC1)의 버퍼는, +y 방향용의 데이터 패킷이 저장되어 있는 가상 채널(VC0)의 버퍼와는 다르다. 따라서 상기 +x 방향용의 데이터 패킷은 각각 가상 채널(VC1)의 버퍼의 선두에 있다. 따라서 단계 S21, S24에 나타내어지는 바와 같이, 상기 +X 방향용의 각각의 데이터 패킷의 통신 요구를 동시에 병행하여 크로스바 스위치(41)에 대해 낼 수 있다.
이와 같이 실시예 1에 따르면 도 8에 도시되는 바와 같이, +x 방향용의 데이터 패킷과 +y 방향용의 데이터 패킷이 양쪽 모두 버퍼의 선두에 올 가능성이 늘어난다. +x 방향용의 데이터 패킷과 +y 방향용의 데이터 패킷이 양쪽 모두 버퍼의 선두에 오면, 이하의 동작이 이루어진다. 즉, +x 방향용의 데이터 패킷의 송신 요구(S21, S24)와 +y 방향용의 데이터 패킷의 송신 요구(S23, S22)가 동시에 병행하여 나오게 된다. 따라서 도 8에 도시되는 바와 같이, x축의 통신과 y축의 통신이 동시에 병행하여 실시되게 된다. 실시예 1에 따르면 상기 효과에 의해 병렬 계산기 시스템 전체의 통신 효율이 향상된다.
도 10은 본 실시예의 가상 채널 제어 방법에 관하여 보다 구체적으로 설명하기 위한 흐름도이다. 도 10에서, 노드는 데이터 패킷을 송출할 때, 단계 S31에서 데이터 패킷의 수신처를 확인한다. 여기서 확인하는 수신처는, 데이터 패킷을 송출하는 차원에 있어서의 수신처이다. 데이터 패킷을 송출하는 차원은, 전술한 차원 제어 방법의 실시에 의해 결정된다. 예컨대 데이터 패킷을 송출하는 차원이 x축이라면, 데이터 패킷의 x 좌표의 수신처를 확인한다. 이어서 단계 S32에서, 확인한 데이터 패킷의 수신처와 자노드의 위치를 비교한다. 비교 결과, 자노드의 위치가 데이터 패킷의 수신처에 대하여 노드 1대만큼 바로 앞이라면(S32 YES), 즉 현재의 위치가 수신처의 1대 바로 앞이라면, 단계 S33으로 이행한다. 단계 S33에서 노드는, 데이터 패킷을 송출하는 가상 채널을, 현재의 가상 채널에서 다른 가상 채널로 변경한다. 다른 한편, 단계 S32의 판정 결과가 NO인 경우, 노드는 그 데이터 패킷에 대해, 가상 채널의 변경은 행하지 않는다(단계 S34). 단계 S33 또는 S34 이후에, 노드는 크로스바 스위치(41)에 데이터 패킷을 송신한다.
도 10 등에 도시하는 바와 같은 가상 채널 제어 방법을 실현할 때, 데이터 패킷의 헤더에 저장되어 있는 정보를 이용할 수 있다. 데이터 패킷의 필요 최저한의 구성은 도 11에 나타낸 바와 같다. 즉 헤더로서 데이터 패킷의 수신처가 되는 노드의 x 좌표 및 y 좌표가 저장된다. 한편 데이터 패킷의 헤더에 저장하는 정보로서, 전술한 수신처 좌표 대신에, 수신처까지의 상대 좌표로 하는 방법도 가능하다. 이 방법의 경우, 수신처까지의 상대 좌표를 헤더에 저장하여, 데이터 패킷이 노드 사이를 이동할 때마다 그 상대 좌표를 적절하게 바꿔 기록한다. 더욱이 데이터 패킷의 헤더에는 가상 채널 정보(VC)(예컨대, 2 비트)가 저장된다. 가상 채널 정보(VC)에는, 그 데이터 패킷의 가상 채널이 VC0인지 VC1인지를 식별하기 위한 정보가 기록된다. 각 노드는 데이터 패킷을 수신하면 그 가상 채널 정보(VC)를 참조하여, 가상 채널 정보(VC)가 나타내는 가상 채널의 버퍼에 그 패킷을 저장한다.
도 12는 도 2에 도시되는 루팅 컨트롤러(4) 내의 구성예를 도시하는 블록도이다. 도 12는, 도 2에 도시되는 4 방향 +x, -x, +y, -y의 각 방향의 송수신 포트에 설치된 4개의 크로스바 인터페이스(42∼45) 및 도 14와 함께 후술하는 CPU 크로스바 인터페이스(48)의 각각의 구성예를 도시한다.
도 12에 도시되는 크로스바 인터페이스(42∼45) 및 CPU 크로스바 인터페이스(48)의 각각은, 패킷 입력부(401), 헤더 해석부(402), 디멀티플렉서(403), 가상 채널(VC0)의 버퍼(404), 가상 채널(VC1)의 버퍼(405), 멀티플렉서(406) 및 패킷 출력부(411)를 갖는다.
패킷 입력부(401)는 헤더 해석부(402)에 접속되어, 송수신 포트를 통해, 그 루팅 컨트롤러가 설치되는 노드가 수신한 데이터 패킷을 헤더 해석부(402)에 건네 준다. 헤더 해석부(402)에서는, 수신한 데이터 패킷의 헤더에 저장된 수신처 x 좌표, 수신처 y 좌표 및 가상 채널 정보(VC)를 확인하여, 확인 결과에 따라서 도 3과 함께 전술한 차원 제어 방법 및 도 4와 함께 전술한 가상 채널 제어 방법을 각각 실행한다.
헤더 해석부(402)는 가상 채널 제어 방법을 실행한 결과, 그 데이터 패킷의 가상 채널을 변경하는지 여부를 결정한다. 헤더 해석부(402)는 그 결정 결과, 가상 채널을 변경하는 경우, 데이터 패킷의 가상 채널 정보(VC)를 재기록한다. 헤더 해석부(402)는 상기 결정 결과, 가상 채널을 변경하지 않는 경우, 데이터 패킷의 가상 채널 정보(VC)를 재기록하지 않는다. 그 후 헤더 해석부(402)는 데이터 패킷을 디멀티플렉서에 송출한다. 또 헤더 해석부(402)는 그 데이터 패킷을 멀티플렉서(406)에서 크로스바 스위치(41)로 송출할 때, 미리 그 데이터 패킷에 따른 송신 요구(408)를 크로스바 스위치(41)에 송신한다.
디멀티플렉서(403)는 헤더 해석부(402)의 제어 하에, 헤더 해석부(402)로부터 송출된 데이터 패킷의, 그 노드에 수신된 시점의 가상 채널 정보(VC)가 나타내는 가상 채널의 버퍼(404 또는 405)에, 그 데이터 패킷을 저장한다. 즉 헤더 해석부(402)가 전술한 바와 같이, 가상 채널 제어 방법의 실시 결과, 가상 채널 정보(VC)를 재기록한 경우라도, 디멀티플렉서(403)는 재기록하기 전의 가상 채널 정보(VC)가 나타내는 가상 채널의 버퍼에 데이터 패킷을 저장한다.
각 버퍼(404, 405)에 저장된 데이터 패킷은 헤더 해석부(402)의 제어 하에, 순차 멀티플렉서(406)를 통하여, 그 크로스바 인터페이스에서 크로스바 스위치(41)로 송신된다. 데이터 패킷이 크로스바 인터페이스에서 크로스바 스위치(41)로 송신될 때, 전술한 바와 같이, 미리 상기 데이터 패킷에 관한 송신 요구(408)가, 그 크로스바 인터페이스의 헤더 해석부(402)로부터 크로스바 스위치(41)에 송신된다. 헤더 해석부(402)에서는, 크로스바 스위치(41)로부터 송신 허가가 나온 경우에만, 버퍼(404, 405)로부터 데이터 패킷을 빼내어, 멀티플렉서(406)를 통해 크로스바 스위치(41)에 송출한다.
크로스바 스위치(41)에서는 이와 같이 하여 각 크로스바 인터페이스(42∼45, 48)로부터 송신된 송신 요구가 경합한 경우, 송신 요구 사이의 조정을 행한다. 한편 송신 요구가 경합하는 경우란, 복수의 송신 요구에 따른 데이터 패킷의 송출 방향이 서로 일치하고, 또한 가상 채널 정보(VC)가 나타내는 가상 채널이 서로 일치하는 경우이다. 4 세트의 송수신 포트에 대한 조정의 순서는 특별히 한정되지 않지만, 예컨대 4 세트의 송수신 포트에 미리 순위를 붙여, 그 순위에 따르는 방법, 조정의 이력을 가미하는 방법 등을 생각할 수 있다.
크로스바 스위치(41)는, 데이터 패킷의 송신 요구가 다른 데이터 패킷의 송신 요구와 경합하지 않는 경우, 그 데이터 패킷에 송신 허가를 부여한다. 그리고 크로스바 스위치(41)는 그 송신 허가에 따라서 송신원의 크로스바 인터페이스로부터 송신되어 온 데이터 패킷을 송출 방향의 크로스바 인터페이스에 송신한다. 다른 한편 데이터 패킷의 송신 요구가 다른 데이터 패킷의 송신 요구와 경합한 경우, 크로스바 스위치(41)는 전술한 바와 같이 조정을 행한다. 조정의 결과, 크로스바 스위치(41)는 하나의 데이터 패킷에 송신 허가를 부여한다. 그리고 크로스바 스위치(41)는 그 송신 허가에 따라서 송신원의 크로스바 인터페이스로부터 송신되어 온 데이터 패킷을 송출 방향의 크로스바 인터페이스에 송신한다. 데이터 패킷은 그 송출 방향의 크로스바 인터페이스의 패킷 출력부(411)로부터 송수신 포트를 통하여 노드의 외부로 송출된다.
도 12의 예에서는 크로스바 인터페이스(42∼45, 48)의 각각의 각 블록(401, 402, 403, 404, 405, 406, 411)은 전부 하드웨어에서 실현된다. 이와 같이 하드웨어로 실현함으로써, 소프트웨어로 실현하는 경우에 비하여, 데이터 패킷의 처리를 고속으로 실행할 수 있다는 이점이 있다.
도 13은 도 12에 도시되는 각 크로스바 인터페이스(42∼45, 48)의 각각의 구성 중, 헤더 해석부(402) 대신에 헤더 송신부(408)를 설치한 예를 도시한다. 도 13의 예의 경우, 헤더 해석부(402)가 행하는 동작을, 크로스바 인터페이스의 외부에 설치되는 정보 처리부(5)가 소프트웨어를 실행함으로써 실현한다. 그 밖의 점은 도 12의 경우와 마찬가지로, 중복되는 설명을 생략한다. 여기서 도 13의 구성의 경우, 도 3과 함께 전술한 차원 제어 방법 또는 도 4와 함께 전술한 가상 채널 제어 방법을 변경하는 경우, 차원 제어 방법 또는 가상 채널 제어 방법의 구체적인 내용을 비교적 용이하게 변경할 수 있다. 즉 도 13의 구성의 경우, 정보 처리부(5)에 인스톨하는 소프트웨어를 변경하는 것만으로 차원 제어 방법 또는 가상 채널 제어 방법의 구체적인 내용을 용이하게 변경할 수 있다. 그 결과 루팅의 방법을 용이하게 변경할 수 있다.
도 14는 크로스바 인터페이스(42∼45)를 각 방향 +x, -x, +y, -y의 송수신 포트(P11, P12, P21, P22)에 배치한 루팅 컨트롤러(4)의 구성예를 도시하는 블록도이다. 도 14에 도시되는 바와 같이, 루팅 컨트롤러(4)에는 각 방향마다의 크로스바 인터페이스(42∼45) 외에, 상기 CPU 크로스바 인터페이스(48)가 설치된다. CPU 크로스바 인터페이스(48)는 노드에 있어서 정보 처리부(5)와 접속된다. 실시예 1에서는, CPU 크로스바 인터페이스(48)는 도 12, 도 13과 함께 전술한 각 방향의 크로스바 인터페이스(42∼45)와 같은 구성을 갖는다. CPU 크로스바 인터페이스(48)는 정보 처리부(5)로부터 데이터 패킷을 수신하면, 도 12 중, 패킷 입력부(401)를 통하여 패킷 해석부(402)에 데이터 패킷을 건넨다. 패킷 해석부(402)는 도 3의 차원 제어 방법 및 도 4의 가상 채널 제어 방법을 실행한다. 차원 제어 방법에 있어서의 「데이터 패킷을 송출하는 차원」으로서는, 초기값으로서 예컨대 제1 차원, x축으로 한다. 또한 가상 채널 제어 방법에 있어서의 「데이터 패킷의 가상 채널」로서는, 초기값으로서 예컨대 제1 가상 채널, 즉 가상 채널(VC0)로 한다. 또한, 크로스바 스위치(41)는 각 방향의 크로스바 인터페이스(42∼45)에 더하여, CPU 크로스바 인터페이스(48)로부터의 송신 요구도 수신하고, CPU 크로스바 인터페이스(48)로부터의 송신 요구도 포함시켜, 필요에 따라, 송신 요구 사이의 조정을 한다.
도 15는 정보 처리부(5)의 구성예를 도시한다. 도 15에서, 본체부(101)는, 대략 버스(200)에 의해 접속된 CPU(201), RAM이나 ROM 등으로 이루어지는 메모리부(202), 디스크(110)용 디스크 드라이브(203) 및 하드디스크 드라이브(HDD)(204)를 갖는다. 디스플레이(102), 키보드(103) 및 마우스(104)도, 도시한 바와 같이 버스(200)를 통해 CPU(201)에 접속되어 있지만, 이들은 직접 CPU(201)에 접속되어 있더라도 좋다. 한편, 정보 처리부(5)의 구성은 도 15에 도시하는 구성에 한정되지 않으며, 대신에 각종의 주지된 구성을 사용하더라도 좋다.
전술한 구성의 정보 처리부(5)에 있어서, 도 13의 구성을 채용하는 경우, 상기 차원 제어 방법 및 가상 채널 제어 방법을 컴퓨터에 실행시키기 위한 프로그램이 인스톨되어 CPU(201)에서 실행된다. 그 결과, 도 13과 함께 전술한 바와 같이, 소프트웨어에 의해서 차원 제어 방법 및 가상 채널 제어 방법이 실현된다.
이하에 실시예 1의 작용 효과를 시뮬레이션에 의해 검증한 결과를 설명한다. 시뮬레이션의 초기 조건과 설정 내용은 다음과 같다.
● 토폴로지로서 8 노드×8 노드의 배열로 2차원 토러스형의 접속으로 했다.
● CPU 크로스바 인터페이스(48)를 2개 설치했다.
● 데이터 패킷의 패턴 : 모든 노드가 64개의 데이터 패킷을 가지고, 각각의 노드가 다른 노드에 데이터 패킷을 전송하고자 한다. 64개의 데이터 패킷의 패턴은 모든 노드에서 「동일한 목적지+길이」의 조합 패턴을 갖도록 했다.
● 「패킷의 길이」, 「데이터 패킷의 목적지」는, 균등 난수를 이용하여 설정했다. 「데이터 패킷의 길이」는 1∼128 클록 사이클에 상당하는 범위에서 설정했다.
● 모든 데이터 패킷은 초기 상태에서는 CPU 크로스바 인터페이스(48)에 저장되어 있는 것으로 했다.
● 케이블 지연은 없는 것으로 했다.
또한 시뮬레이션에 있어서의 알고리즘은 다음과 같다.
1) 크로스바 스위치(41)는 현재의 송신 상황을 확인한다.
2) 크로스바 스위치(41)는 CPU 크로스바 인터페이스(48)와 각 방향의 크로스바 인터페이스(42∼45)로부터 송신되는 송신 요구를 확인하여, 송신 상황에 따른 공평한 조정을 행한다.
3) 크로스바 스위치(41)에 의한 조정 결과, 「송신 허가」를 수취한 크로스바 인터페이스(42∼45) 또는 CPU 크로스바 인터페이스(48)는 데이터 패킷의 송출을 시작한다.
4) 이상의 프로세스를 모든 데이터 패킷이 원하는 CPU 크로스바 인터페이스(48)에 도착할 때까지 각 타임 스텝으로 행한다.
상기 시뮬레이션 결과를 도 16에 도시한다. 도 16에서, 종축은 미도달 데이터 패킷수를 나타내고, 횡축은 경과 시간을 나타낸다. 실선(normal-all)은 통상의 차원 오더 루팅의 미도달 패킷수를 나타낸다. 미세한 파선(onehop-all)은 실시예 1의 방법을 실시한 경우의 미도달 데이터 패킷수를 나타낸다. 이어서 미세한 파선(normal-x)은 통상의 차원 오더 루팅으로 현재 x축의 송수신 포트 상에 존재하는 데이터 패킷수를 나타낸다. 거친 파선(onehop-x)은 실시예 1의 방법을 실행한 경우에 있어서 x축 상에 존재하는 데이터 패킷수를 나타낸다. 1점 쇄선(normal-y)은 통상의 차원 오더 루팅의 y축 상에 존재하는 데이터 패킷수를 나타낸다. 2점 차선(onehop-y)은 실시예 1의 방법을 실행한 경우에 있어서 y축 상에 존재하는 데이터 패킷수를 나타낸다.
상기 결과로부터 이하의 점을 이해할 수 있다. 즉, 시스템 전체에서 x축에 존재하는 데이터 패킷수의 피크 최대수가 실시예 1의 방법을 이용하면 저하되고, 반대로 y축의 피크 최대수는 증가한다. 따라서 효율적으로 차원 오더 루팅이 이루어져, 결과적으로 병렬도가 향상되어, 통신 시간의 10% 정도의 삭감에 성공했다.
상기 시뮬레이션은 간단하게 하기 위해 2차원 토러스형 접속인 경우에 관해서 행했지만, 실시예 1의 기술적 사상은 토폴로지에 상관없이 유효함은 물론이다.
4 : 루팅 컨트롤러 5 : 정보 처리부
41 : 크로스바 스위치
42, 43, 44, 45 : 각 방향의 크로스바 인터페이스
48 : CPU 크로스바 인터페이스 402 : 헤더 해석부
404, 405 : 버퍼 408 : 헤더 송신부
VC0, VC1 : 가상 채널
P11, P12, P21, P12 : 데이터 송수신 포트
41 : 크로스바 스위치
42, 43, 44, 45 : 각 방향의 크로스바 인터페이스
48 : CPU 크로스바 인터페이스 402 : 헤더 해석부
404, 405 : 버퍼 408 : 헤더 송신부
VC0, VC1 : 가상 채널
P11, P12, P21, P12 : 데이터 송수신 포트
Claims (20)
- 복수의 정보 처리 장치가 서로 다차원으로 접속된 정보 처리 시스템으로서,
상기 복수의 정보 처리 장치의 각각은, 데이터를 송수신하는 방향마다, 제1 가상 채널에 속하는 데이터를 저장하는 제1 수신 저장 장치와, 제2 가상 채널에 속하는 데이터를 저장하는 제2 수신 저장 장치를 가지며,
데이터를 송출하는 차원의 수신처와, 자(自)장치의 동(同)차원의 위치를 비교하여, 그 비교의 결과, 자장치의 위치가 정보 처리 장치 1대만큼 바로 앞의 위치였던 경우, 그 데이터가 속하는 가상 채널을 변경하는 가상 채널 제어부와,
상기 가상 채널 제어부에 의한 가상 채널의 제어 후의 상기 데이터가 속하는 가상 채널에 따라, 상기 데이터를 상기 제1 또는 제2 수신 저장 장치에 저장하는 데이터 저장부와,
데이터를 송출하는 차원의 수신처와 자장치의 동차원의 위치를 비교하여, 상기 자장치의 위치가 상기 수신처와 일치한 경우, 그 데이터를 송출하는 차원을 다음 차원으로 변경하는 송출 차원 제어부와,
상기 제1 및 제2 수신 저장 장치에 저장된 데이터 중에서, 각 수신 저장 장치에 대해 1 단위의 데이터끼리의 조정을 행하고, 상기 조정의 결과, 데이터를 송출하는 각 방향에 대해 1 단위의 데이터를 실제로 송출하는 데이터로서 결정하는 조정부를 갖는 것을 특징으로 하는 정보 처리 시스템. - 제1항에 있어서, 상기 가상 채널 제어부는, 상기 송출 차원 제어부에 의한 상기 비교의 결과, 수신처의 위치와 자장치의 위치가 일치했을 때에, 이미 그 데이터를 송출하는 가상 채널의 변경이 이루어져 있으면 변경 전의 가상 채널로 되돌리는 것을 특징으로 하는 정보 처리 시스템.
- 제1항에 있어서, 상기 가상 채널 제어부는, 자장치의 위치가 데이터를 송출하는 차원의 가상 채널 변경 위치와 일치한 경우, 그 데이터를 송출하는 가상 채널을 변경하는 것을 특징으로 하는 정보 처리 시스템.
- 제1항에 있어서, 상기 복수의 정보 처리 장치는 다차원 토러스형으로 접속되어 있는 것을 특징으로 하는 정보 처리 시스템.
- 복수의 정보 처리 장치가 서로 다차원으로 접속된 정보 처리 시스템에 있어서의 각각의 정보 처리 장치로서,
데이터를 송수신하는 방향마다, 제1 가상 채널에 속하는 데이터를 저장하는 제1 수신 저장 장치와, 제2 가상 채널에 속하는 데이터를 저장하는 제2 수신 저장 장치를 가지며,
데이터를 송출하는 차원의 수신처와, 자장치의 동차원의 위치를 비교하여, 그 비교의 결과, 자장치의 위치가 정보 처리 장치 1대만큼 바로 앞의 위치였던 경우, 그 데이터가 속하는 가상 채널을 변경하는 가상 채널 제어부와,
상기 가상 채널 제어부에 의한 가상 채널 제어의 실행 후의 상기 데이터가 속하는 가상 채널에 따라, 상기 데이터를 상기 제1 또는 제2 수신 저장 장치에 저장하는 수신 데이터 저장부와,
데이터를 송출하는 차원의 수신처와 자장치의 동차원의 위치를 비교하여, 상기 자장치의 위치가 상기 수신처와 일치한 경우, 그 데이터를 송출하는 차원을 다음 차원으로 변경하는 송출 차원 제어부와,
상기 제1 및 제2 수신 저장 장치에 저장된 데이터 중에서, 각 수신 저장 장치에 대해 1 단위의 데이터끼리의 조정을 행하고, 상기 조정의 결과, 데이터를 송출하는 각 방향에 대해 1 단위의 데이터를 실제로 송출하는 데이터로서 결정하는 조정부를 갖는 것을 특징으로 하는 정보 처리 장치. - 제5항에 있어서, 상기 가상 채널 제어부는, 상기 송출 차원 제어부에 의한 상기 비교의 결과, 수신처의 위치와 자장치의 위치가 일치했을 때에, 그 데이터를 송출하는 가상 채널이 이미 변경되어 있으면 변경 전의 가상 채널로 되돌리는 것을 특징으로 하는 정보 처리 장치.
- 제5항에 있어서, 상기 가상 채널 제어부는, 자장치의 위치가 데이터를 송출하는 차원의 가상 채널 변경 위치와 일치한 경우, 그 데이터를 송출하는 가상 채널을 변경하는 것을 특징으로 하는 정보 처리 장치.
- 제5항에 있어서, 상기 정보 처리 시스템에서는, 상기 복수의 정보 처리 장치가 다차원 토러스형으로 접속되어 있는 것을 특징으로 하는 정보 처리 장치.
- 복수의 정보 처리 장치가 서로 다차원으로 접속된 정보 처리 시스템에 있어서의, 각각의 정보 처리 장치의 제어 방법으로서,
데이터를 송수신하는 방향마다, 제1 가상 채널에 속하는 데이터를 저장하는 제1 수신 저장 장치와, 제2 가상 채널에 속하는 데이터를 저장하는 제2 수신 저장 장치를 가지며,
데이터를 송출하는 차원의 수신처와, 자장치의 동차원의 위치를 비교하여, 그 비교의 결과, 자장치의 위치가 정보 처리 장치 1대만큼 바로 앞의 위치였던 경우, 그 데이터가 속하는 가상 채널을 변경하는 가상 채널 제어 단계와,
상기 가상 채널 제어 단계의 실행 후의 상기 데이터가 속하는 가상 채널에 따라, 상기 데이터를 상기 제1 또는 제2 수신 저장 장치에 저장하는 수신 데이터 저장 단계와,
데이터를 송출하는 차원의 수신처와 자장치의 동차원의 위치를 비교하여, 상기 자장치의 위치가 상기 수신처와 일치한 경우, 그 데이터를 송출하는 차원을 다음 차원으로 변경하는 송출 차원 제어 단계와,
상기 제1 및 제2 수신 저장 장치에 저장된 데이터 중에서, 각 수신 저장 장치에 대해 1 단위의 데이터끼리의 조정을 행하고, 상기 조정의 결과, 데이터를 송출하는 각 방향에 대해 1 단위의 데이터를 실제로 송출하는 데이터로서 결정하는 조정 단계를 실행하는 것을 특징으로 하는 정보 처리 장치의 제어 방법. - 제9항에 있어서, 상기 가상 채널 제어 단계는, 또한 상기 송출 차원 제어 단계에서의 상기 비교의 결과, 수신처의 위치와 자장치의 위치가 일치했을 때에, 그 데이터를 송출하는 가상 채널이 이미 변경되어 있으면, 변경 전의 가상 채널로 되돌리는 것을 특징으로 하는 정보 처리 장치의 제어 방법.
- 제9항에 있어서, 상기 가상 채널 제어 단계는, 자장치의 위치가 데이터를 송출하는 차원의 가상 채널 변경 위치와 일치한 경우, 그 데이터를 송출하는 가상 채널을 변경하는 단계를 더 포함하는 것을 특징으로 하는 정보 처리 장치의 제어 방법.
- 제9항에 있어서, 상기 정보 처리 시스템에서는, 상기 복수의 정보 처리 장치가 다차원 토러스형으로 접속되어 있는 것을 특징으로 하는 정보 처리 장치의 제어 방법.
- 복수의 정보 처리 장치가 서로 다차원으로 접속된 정보 처리 시스템에 있어서의 각각의 정보 처리 장치로서, 데이터를 송수신하는 방향마다, 제1 가상 채널에 속하는 데이터를 저장하는 제1 수신 저장 장치와, 제2 가상 채널에 속하는 데이터를 저장하는 제2 수신 저장 장치를 갖는 정보 처리 장치의 동작을 제어하는 컴퓨터를,
데이터를 송출하는 차원의 수신처와, 자장치의 동차원의 위치를 비교하여, 그 비교의 결과, 자장치의 위치가 정보 처리 장치 1대만큼 바로 앞의 위치였던 경우, 그 데이터가 속하는 가상 채널을 변경하는 가상 채널 제어부와,
상기 가상 채널 제어부에 의한 가상 채널 제어의 실행 후의 상기 데이터가 속하는 가상 채널에 따라, 그 데이터를 상기 제1 또는 제2 수신 저장 장치에 저장하는 수신 데이터 저장부와,
데이터를 송출하는 차원의 수신처와 자장치의 동차원의 위치를 비교하여, 상기 자장치의 위치가 상기 수신처와 일치한 경우, 그 데이터를 송출하는 차원을 다음 차원으로 변경하는 송출 차원 제어부와,
상기 제1 및 제2 수신 저장 장치에 저장된 데이터 중에서, 각 수신 저장 장치에 대해 1 단위의 데이터끼리의 조정을 행하고, 상기 조정의 결과, 데이터를 송출하는 각 방향에 대해 1 단위의 데이터를 실제로 송출하는 데이터로서 결정하는 조정부로서 기능시키기 위한 정보 처리 장치의 제어 프로그램. - 제13항에 있어서, 상기 가상 채널 제어부는, 상기 송출 차원 제어부에 의한 상기 비교의 결과, 수신처의 위치와 자장치의 위치가 일치했을 때에, 그 데이터를 송출하는 가상 채널이 이미 변경되어 있으면 변경 전의 가상 채널로 되돌리는 것을 특징으로 하는 정보 처리 장치의 제어 프로그램.
- 제13항에 있어서, 상기 가상 채널 제어부는, 자장치의 위치가 데이터를 송출하는 차원의 가상 채널 변경 위치와 일치한 경우, 그 데이터를 송출하는 가상 채널을 변경하는 것을 특징으로 하는 정보 처리 장치의 제어 프로그램.
- 제13항에 있어서, 상기 정보 처리 시스템에서는, 상기 복수의 정보 처리 장치가 다차원 토러스형으로 접속되어 있는 것을 특징으로 하는 정보 처리 장치의 제어 프로그램.
- 복수의 정보 처리 장치가 서로 다차원으로 접속된 정보 처리 시스템에 있어서의 각각의 정보 처리 장치로서, 데이터를 송수신하는 방향마다, 제1 가상 채널에 속하는 데이터를 저장하는 제1 수신 저장 장치와, 제2 가상 채널에 속하는 데이터를 저장하는 제2 수신 저장 장치를 갖는 정보 처리 장치를 제어하는 컴퓨터를,
데이터를 송출하는 차원의 수신처와, 자장치의 동차원의 위치를 비교하여, 그 비교의 결과, 자장치의 위치가 정보 처리 장치 1대만큼 바로 앞의 위치였던 경우, 그 데이터가 속하는 가상 채널을 변경하는 가상 채널 제어부와,
상기 가상 채널 제어부에 의한 가상 채널 제어의 실행 후의 상기 데이터가 속하는 가상 채널에 따라, 그 데이터를 상기 제1 또는 제2 수신 저장 장치에 저장하는 수신 데이터 저장부와,
데이터를 송출하는 차원의 수신처와 자장치의 동차원의 위치를 비교하여, 상기 자장치의 위치가 상기 수신처와 일치한 경우, 그 데이터를 송출하는 차원을 다음 차원으로 변경하는 송출 차원 제어부와,
상기 제1 및 제2 수신 저장 장치에 저장된 데이터 중에서, 각 수신 저장 장치에 대해 1 단위의 데이터끼리의 조정을 행하고, 상기 조정의 결과, 데이터를 송출하는 방향에 대해 1 단위의 데이터를 실제로 송출하는 데이터로서 결정하는 조정부로서 기능시키기 위한 정보 처리 장치의 제어 프로그램을 저장한 컴퓨터 판독 가능한 정보 기록 매체. - 제17항에 있어서, 상기 가상 채널 제어부는, 상기 송출 차원 제어부에 의한 상기 비교의 결과, 수신처의 위치와 자장치의 위치가 일치했을 때, 그 데이터를 송출하는 가상 채널이 이미 변경되어 있으면 변경 전의 가상 채널로 되돌리는 것을 특징으로 하는 정보 처리 장치의 제어 프로그램을 저장한 컴퓨터 판독 가능한 정보 기록 매체.
- 제17항에 있어서, 상기 가상 채널 제어부는, 자장치의 위치가 데이터를 송신하는 차원의 가상 채널 변경 위치와 일치한 경우, 그 데이터를 송출하는 가상 채널을 변경하는 것을 특징으로 하는 정보 처리 장치의 제어 프로그램을 저장한 컴퓨터 판독 가능한 정보 기록 매체.
- 제17항에 있어서, 상기 정보 처리 시스템에서는, 상기 복수의 정보 처리 장치가 다차원 토러스형으로 접속되어 있는 것을 특징으로 하는 정보 처리 장치의 제어 프로그램을 저장한 컴퓨터 판독 가능한 정보 기록 매체.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/051609 WO2010087002A1 (ja) | 2009-01-30 | 2009-01-30 | 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110102932A true KR20110102932A (ko) | 2011-09-19 |
KR101250666B1 KR101250666B1 (ko) | 2013-04-03 |
Family
ID=42395272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117017974A KR101250666B1 (ko) | 2009-01-30 | 2009-01-30 | 정보 처리 시스템, 정보 처리 장치, 정보 처리 장치의 제어 방법, 및 컴퓨터 판독 가능한 기록 매체 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8090895B2 (ko) |
EP (1) | EP2393015B1 (ko) |
JP (1) | JP5195933B2 (ko) |
KR (1) | KR101250666B1 (ko) |
CN (1) | CN102301365B (ko) |
WO (1) | WO2010087002A1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010218364A (ja) * | 2009-03-18 | 2010-09-30 | Fujitsu Ltd | 情報処理システム、通信制御装置および方法 |
US8539130B2 (en) * | 2009-09-24 | 2013-09-17 | Nvidia Corporation | Virtual channels for effective packet transfer |
US8850089B1 (en) * | 2010-06-18 | 2014-09-30 | Integrated Device Technology, Inc. | Method and apparatus for unified final buffer with pointer-based and page-based scheme for traffic optimization |
WO2013116129A1 (en) * | 2012-01-31 | 2013-08-08 | Zte (Usa) Inc. | Method & system for managing multimedia quality of experience in a transport-independent fashion |
JP5790526B2 (ja) * | 2012-02-06 | 2015-10-07 | 富士通株式会社 | 分散処理方法および分散処理システム |
NO2776466T3 (ko) * | 2014-02-13 | 2018-01-20 | ||
CN104484293B (zh) * | 2014-11-20 | 2017-09-08 | 浪潮(北京)电子信息产业有限公司 | 一种在多控存储系统中实现前端协议的方法和设备 |
US20160187958A1 (en) * | 2014-12-24 | 2016-06-30 | Intel Corporation | Techniques for managing power and performance for a networking device |
US10462059B2 (en) | 2016-10-19 | 2019-10-29 | Intel Corporation | Hash table entries insertion method and apparatus using virtual buckets |
WO2018097015A1 (ja) * | 2016-11-28 | 2018-05-31 | 株式会社ターボデータラボラトリー | 分散システム |
JP7167687B2 (ja) * | 2018-12-18 | 2022-11-09 | 富士通株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4933933A (en) * | 1986-12-19 | 1990-06-12 | The California Institute Of Technology | Torus routing chip |
JPH01241660A (ja) * | 1988-03-24 | 1989-09-26 | Toshiba Corp | プロセッサ間通信方式 |
JPH0626684A (ja) | 1992-07-13 | 1994-02-04 | Matsushita Seiko Co Ltd | 換気ユニットの電装ボックス |
JPH06266684A (ja) | 1993-03-15 | 1994-09-22 | Toshiba Corp | プロセッサ間ルーティング方式 |
JPH07191947A (ja) | 1993-12-27 | 1995-07-28 | Toshiba Corp | 並列計算機 |
JPH08185380A (ja) | 1994-12-28 | 1996-07-16 | Hitachi Ltd | 並列計算機 |
US5659796A (en) * | 1995-04-13 | 1997-08-19 | Cray Research, Inc. | System for randomly modifying virtual channel allocation and accepting the random modification based on the cost function |
US5701416A (en) * | 1995-04-13 | 1997-12-23 | Cray Research, Inc. | Adaptive routing mechanism for torus interconnection network |
JP3860257B2 (ja) | 1996-06-28 | 2006-12-20 | 富士通株式会社 | チャネルの決定方法 |
US6938094B1 (en) * | 1999-09-17 | 2005-08-30 | Advanced Micro Devices, Inc. | Virtual channels and corresponding buffer allocations for deadlock-free computer system operation |
US6888843B2 (en) * | 1999-09-17 | 2005-05-03 | Advanced Micro Devices, Inc. | Response virtual channel for handling all responses |
US6751698B1 (en) * | 1999-09-29 | 2004-06-15 | Silicon Graphics, Inc. | Multiprocessor node controller circuit and method |
US6674720B1 (en) | 1999-09-29 | 2004-01-06 | Silicon Graphics, Inc. | Age-based network arbitration system and method |
US6633580B1 (en) * | 2000-03-07 | 2003-10-14 | Sun Microsystems | N×N crossbar packet switch |
EP1370967A4 (en) | 2001-02-24 | 2009-10-21 | Ibm | OPTIMIZED RESIZING NETWORK SWITCH |
US6912612B2 (en) * | 2002-02-25 | 2005-06-28 | Intel Corporation | Shared bypass bus structure |
CN100461748C (zh) * | 2004-10-22 | 2009-02-11 | 华为技术有限公司 | 直接互连交换网路由的方法 |
CN100399771C (zh) * | 2004-12-09 | 2008-07-02 | 电子科技大学 | 一种多维交换结构中的无死锁自适应路由方法 |
CN101163133B (zh) * | 2006-10-10 | 2011-06-29 | 天津中科蓝鲸信息技术有限公司 | 一种多机虚拟环境下实现资源共享的通信系统及通信方法 |
CN101242372A (zh) * | 2008-03-10 | 2008-08-13 | 清华大学 | k元N维mesh网中的无死锁路由方法 |
CN101262444A (zh) * | 2008-03-10 | 2008-09-10 | 清华大学 | 基于通道交叠的容错mesh网避免死锁的路由方法 |
CN101267394A (zh) * | 2008-03-10 | 2008-09-17 | 清华大学 | 三维mesh网中无死锁的平面自适应路由方法 |
CN101335704B (zh) * | 2008-04-18 | 2011-05-11 | 清华大学 | 三维torus网中的无死锁自适应路由方法 |
CN101267398B (zh) * | 2008-04-18 | 2010-09-01 | 清华大学 | 二维torus网中的无死锁自适应路由方法 |
-
2009
- 2009-01-30 CN CN2009801558243A patent/CN102301365B/zh active Active
- 2009-01-30 KR KR1020117017974A patent/KR101250666B1/ko active IP Right Grant
- 2009-01-30 JP JP2010548330A patent/JP5195933B2/ja active Active
- 2009-01-30 EP EP09839192.3A patent/EP2393015B1/en active Active
- 2009-01-30 WO PCT/JP2009/051609 patent/WO2010087002A1/ja active Application Filing
-
2011
- 2011-07-21 US US13/137,122 patent/US8090895B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2010087002A1 (ja) | 2010-08-05 |
JPWO2010087002A1 (ja) | 2012-07-26 |
EP2393015B1 (en) | 2015-07-01 |
CN102301365B (zh) | 2013-12-25 |
US8090895B2 (en) | 2012-01-03 |
CN102301365A (zh) | 2011-12-28 |
JP5195933B2 (ja) | 2013-05-15 |
EP2393015A1 (en) | 2011-12-07 |
US20110283038A1 (en) | 2011-11-17 |
EP2393015A4 (en) | 2014-04-09 |
KR101250666B1 (ko) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101250666B1 (ko) | 정보 처리 시스템, 정보 처리 장치, 정보 처리 장치의 제어 방법, 및 컴퓨터 판독 가능한 기록 매체 | |
KR100620835B1 (ko) | 최적화된 가변 네트워크 스위치 | |
US20180324111A1 (en) | Storage device in which forwarding-function-equipped memory nodes are mutually connected and data processing method | |
US8667439B1 (en) | Automatically connecting SoCs IP cores to interconnect nodes to minimize global latency and reduce interconnect cost | |
US7477608B2 (en) | Methods for routing packets on a linear array of processors | |
JP5387918B2 (ja) | ルータ、そのルータを有する情報処理装置及びパケットのルーティング方法 | |
US20170063734A1 (en) | Automatic buffer sizing for optimal network-on-chip design | |
KR101082701B1 (ko) | 정보 처리 시스템, 통신 제어 장치 및 방법 | |
US9143436B2 (en) | Information processing apparatus, parallel computer system, and control method of parallel computer system | |
JPH10506736A (ja) | トーラス相互結合網のための適応ルーティング機構 | |
JP2008271017A (ja) | ファブリックスイッチ、バッファ容量制御方法、およびバッファ容量制御プログラム | |
Szymanski | An analysis of'hot-potato'routing in a fiber optic packet switched hypercube | |
EP2288084B1 (en) | Network system, information processing apparatus, and control method for network system | |
US20130163608A1 (en) | Communication control device, parallel computer system, and communication control method | |
Lee et al. | Insertion loss-aware routing analysis and optimization for a fat-tree-based optical network-on-chip | |
KR20040054721A (ko) | 컴퓨터 시스템의 입력/출력 노드에서 태깅 및 중재 매카니즘 | |
US9258358B2 (en) | Parallel computing system and control method of parallel computing system | |
KR20040054722A (ko) | 컴퓨터 시스템 i/o 노드 | |
JP4806295B2 (ja) | 通信インターフェース装置及び通信方法 | |
RU2607251C2 (ru) | Сеть трансляции информации и соответствующий узел сети | |
JP4687925B2 (ja) | 優先調停システム及び優先調停方法 | |
US10516596B2 (en) | Information processing apparatus, method and non-transitory computer-readable storage medium | |
US20140201475A1 (en) | Information processing system and method of controlling the same | |
JP2011248681A (ja) | 並列計算システム、プロセッサ、ネットワークスイッチ装置、及び通信方法 | |
JP2022048644A (ja) | 半導体装置及び転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160303 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170302 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190227 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20200227 Year of fee payment: 8 |