KR101415286B1 - 메시지 라우팅 방식 - Google Patents
메시지 라우팅 방식 Download PDFInfo
- Publication number
- KR101415286B1 KR101415286B1 KR1020097021479A KR20097021479A KR101415286B1 KR 101415286 B1 KR101415286 B1 KR 101415286B1 KR 1020097021479 A KR1020097021479 A KR 1020097021479A KR 20097021479 A KR20097021479 A KR 20097021479A KR 101415286 B1 KR101415286 B1 KR 101415286B1
- Authority
- KR
- South Korea
- Prior art keywords
- address
- node
- destination
- message
- routing
- 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
-
- 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
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
노드들의 어레이 내에 각각의 프로세서 노드는 각각의 로컬 노드 어드레스를 가지고, 그리고 각각의 로컬 노드 어드레스는 최상위로부터 최하위까지의 어드레싱 순위를 갖는 복수의 컴포넌트들을 포함한다. 각각의 노드는 각각의 라우팅 방향으로 상기 로컬 노드 어드레스의 각각의 컴포넌트를 맵핑시키도록 구성된 맵핑 수단과, 그리고 목적지 노드를 식별하는 목적지 노드 어드레스를 갖는 메시지를 수신하도록 구성된 스위치를 포함한다. 상기 스위치는, 최상위 비정합 컴포넌트를 식별하기 위해 상기 로컬 노드 어드레스를 상기 목적지 노드 어드레스와 비교하는 수단과, 그리고 상기 로컬 노드 어드레스가 상기 목적지 노드 어드레스와 정합되지 않는 경우, 상기 최상위 비정합 컴포넌트에 맵핑되는 방향으로 상기 메시지를 또 다른 노드에 라우팅하는 수단을 포함한다.
Description
본 발명은 프로세서들 간에 메시지들을 라우팅하는 것에 관한 것으로, 특히 프로세서 어레이의 노드들 간에 메시들을 라우팅하는 방식 혹은 프로토콜에 관한 것이다.
도 1에 도시된 바와 같이, 집적 회로(1)는 프로세서 타일(tile)들(2)의 어레이로서 구성될 수 있고, 각각의 타일은 각각의 프로세서(4)와, 메모리(6)와, 그리고 통신부(8)를 포함한다. 타일들(2)은 상호접속(10)을 통해 연결되고, 상호접속(10)은 칩(1) 전체를 통해 데이터 및 제어 정보를 전송한다. 칩 상의 작은 개수의 타일들이 외부 접속(12)을 통해 외부 디바이스에 연결된다. 대안적으로 혹은 추가적으로, 서로 다른 칩들 상의 프로세서들이 회로를 형성하기 위해 함께 배열될 수 있다.
이러한 아키텍처의 장점은, 설계 단계에서 다수의 더 작은 모듈의 프로세서들을 함께 링크시킴으로써, 제조자가, 해당 애플리케이션 혹은 디바이스에 대한 프로세싱 및 메모리 요건, 그리고 그들의 특정된 비용, 전력, 및 영역 목표치를 따르는 특정 성능을 구비한 칩 또는 회로를 쉽게 생성할 수 있다는 것이다.
그러나, 어레이 전체에 걸쳐 메시지들을 라우팅함에 있어서는 어려운 점이 존재한다. 메시지들은 지연될 수 있고, 가장 효율적인 루트로 라우팅되지 않을 수 있거나 혹은 교착(deadlock)될 수 있다. 또한, 커다란 어레이들에서, 라우팅 프로토콜은 복잡하고 사용하기 어려울 수 있다.
본 발명의 일 실시형태에 따르면, 프로세서 노드(processor node)들의 어레이(array)가 제공되며, 각각의 노드는 상기 어레이 내에서의 노드들을 식별하는 각각의 로컬 노드 어드레스(local node address)를 가지며, 각각의 로컬 노드 어드레스는 최상위로부터 최하위까지의 어드레싱 순위(order of addressing significance)를 갖는 복수의 컴포넌트(component)들을 포함하고, 각각의 노드는, 각각의 라우팅 방향(routing direction)으로 상기 로컬 노드 어드레스의 각각의 컴포넌트를 맵핑(mapping)시키도록 구성된 맵핑 수단과; 그리고 목적지 노드를 식별하는 목적지 노드 어드레스를 갖는 메시지를 수신하도록 구성된 스위치를 포함하고, 상기 스위치는, 최상위 비정합 컴포넌트(the most significant non-matching component)를 식별하기 위해 상기 로컬 노드 어드레스를 상기 목적지 노드 어드레스와 비교하는 수단과; 그리고 상기 로컬 노드 어드레스가 상기 목적지 노드 어드레스와 정합되지 않는 경우, 상기 맵핑 수단에 의해 상기 로컬 노드 어드레스의 상기 최상위 비정합 컴포넌트에 맵핑되는 방향으로 상기 메시지를 또 다른 노드에 라우팅하는 수단을 포함한다. 바람직하게는, 반드시 필요한 것은 아니지만, 상기 컴포넌트 각각은 비트(bit)이다.
놀랍게도, 본 발명자는 라우팅 방향을 노드 어드레스들의 비트들로 맵핑시킴으로써, n 차원 프로세서 어레이 전체에 걸쳐 메시지들을 라우팅하는 효율적이고 빠르며 구현이 쉬고 교착이 없는 프로토콜을 제공할 수 있다는 것을 알아냈다. 또 다른 장점으로, 이와 동일한 간단한 방식이 임의의 차원의 수를 갖는 임의 크기의 어레이들에 대해 적용될 수 있다.
실시예들에서, 상기 스위치는 상기 비교를 비트별로 수행하고, 상기 최상위 비정합 비트가 발견되면 상기 비교를 멈출 수 있도록 구성될 수 있다. 상기 목적지 노드 어드레스는 상기 스위치에 의해 수신될 상기 메시지의 가장 이른 부분(the earliest part)일 수 있다. 상기 목적지 노드 어드레스는 상기 스위치에 의해 최상위 비트에서 최하위 비트의 순서로 수신될 수 있다.
이러한 실시예들은 특히 이로울 수 있는데, 왜냐하면 많은 노드들에서 스위치들은, 메시지를 또 다른 노드에 전달하기 이전에, 단지 상기 메시지의 가장 이른 몇 개의 비트들만을 판독할 필요가 있기 때문이다. 이러한 기술은 부가적인 빠른 "웜홀 라우팅(wormhole routing)"을 용이하게 하고, 그럼으로써 메시지의 나머지가 도착하기 이전에 어드레스에 따라 동작될 수 있다. 따라서, 스위치는 최소의 지연으로 메시지의 라우팅을 빠르게 설정할 수 있다.
상기 맵핑 수단은 라우팅 룩업 테이블(routing look-up table)을 포함할 수 있다. 상기 라우팅 룩업 데이블은 소프트 프로그래밍(soft programming)이 가능할 수 있다. 상기 맵핑 수단은 라우팅 알고리즘을 포함할 수 있다.
상기 노드들은 적어도 이차원의 어레이, 또는 적어도 삼차원의 어레이, 또는 적어도 사차원의 어레이로 구성될 있다.
각각의 노드는 적어도 하나의 로컬 프로세서를 포함할 수 있고, 그리고 상기 스위치는 상기 로컬 노드 어드레스가 상기 목적지 노드 어드레스와 정합하는 경우 상기 메시지를 상기 로컬 프로세서들 중 하나에 라우팅시키도록 구성될 수 있다. 상기 스위치는, 정합이 검출되면 그리고 상기 메시지를 프로세서로 라우팅하기 전에, 상기 목적지 노드 어드레스를 버리도록(discard) 구성될 수 있다.
적어도 하나의 노드가 복수의 프로세서들을 포함하고, 상기 메시지는 상기 노드 내의 목적지 프로세서를 식별하는 목적지 프로세서 어드레스를 더 포함하고, 그리고 상기 스위치는 상기 목적지 노드 어드레스가 상기 로컬 노드 어드레스와 정합하는 경우 상기 메시지를 상기 목적지 프로세서에 라우팅시키도록 구성될 수 있다. 상기 스위치는 상기 메시지를 상기 목적지 프로세서에 라우팅시키기 전에 상기 목적지 프로세서 어드레스를 버리도록 구성될 수 있다.
적어도 하나의 노드에서의 적어도 하나의 프로세서는 복수의 I/O 채널들을 포함할 수 있고, 상기 메시지는 상기 프로세서 내의 목적지 채널을 식별하는 목적지 채널 어드레스를 더 포함할 수 있고, 그리고 상기 스위치는 상기 목적지 노드 어드레스가 상기 로컬 노드 어드레스와 정합하는 경우 상기 메시지를 상기 목적지 채널에 라우팅시키도록 구성될 수 있다.
상기 스위치는 상기 목적지 노드 어드레스로부터 하나 또는 그 이상의 비트들을, 상기 비트들이 상기 로컬 노드 어드레스와 정합하는 경우, 버리도록 구성될 수 있다. 예를 들어, 특정 차원과 관련된 노드 어드레스 부분이 버려질 수 있는데, 왜냐하면 메시지의 위치는 그 차원 내의 특정 좌표로 좁혀지기 때문이다.
본 발명의 또 다른 실시형태에 따르면, 프로세서 노드들의 어레이에서의 메시지들을 라우팅하는 방법이 제공되고, 각각의 노드는 상기 어레이 내에서의 노드들을 식별하는 각각의 로컬 노드 어드레스를 가지며, 각각의 로컬 노드 어드레스는 최상위로부터 최하위까지의 어드레싱 순위를 갖는 복수의 컴포넌트들을 포함하고, 상기 방법은, 목적지 노드 어드레스를 포함하는 메시지를 노드에서 수신하는 단계와; 최상위 비정합 컴포넌트를 식별하기 위해 상기 로컬 노드 어드레스를 상기 목적지 노드와 비교하는 단계와; 그리고 상기 로컬 노드 어드레스가 상기 목적지 노드 어드레스와 정합하지 않는 경우, 상기 로컬 노드 어드레스의 각각의 컴포넌트를 각각의 라우팅 방향으로 맵핑시키는 맵핑 수단을 참조하여, 상기 맵핑 수단에 의해 상기 로컬 노드 어드레스의 상기 최상위 비정합 컴포넌트에 맵핑되는 방향으로 상기 메시지를 또 다른 노드에 라우팅하는 단계를 포함한다.
본 발명의 또 다른 실시형태에 따르면, n 차원 프로세서 어레이의 노드들 간에 메시지들을 라우팅하는 방법이 제공되며, 여기서, n은 정수이고, 상기 방법은, 상기 어레이 내의 차원의 수(n)를 결정하는 단계와; 상기 차원 각각(k=1...n)에서의 상기 어레이의 최대 범위(L(k))를 결정하는 단계와, 여기서 L은 노드의 수로 측정되고; 상기 차원 각각(k=1...n)을 따라, 바이너리 형식에서 순차적으로 번호가 매겨진 좌표를 정의하는 단계와, 상기 좌표는 적어도 L(k)의 길이를 포괄하여, 각각의 노드는 n개의 차원들 각각에서의 각각의 좌표로 설명되며; 각각의 차원(k = 1...n)을 따라, 2m(k) ≥ L(k)가 되도록 각각의 노드를 어드레싱하기 위해 m(k) 비트의 어드레스 부분을 배정하고, 그리고 각각의 m(k) 비트 어드레스 부분에서의 각각의 차원(k)을 따라 노드의 좌표를 저장하는 단계와; 그리고 상기 어레이 내의 각각의 노드의 각각의 어드레스 부분에 대해, 각각의 제 1 방향을 값이 영(zero)인 임의의 비트들로 맵핑시키고, 그리고 각각의 제 2 방향을 값이 일(one)인 임의의 비트들로 맵핑시키는 단계와; 그리고 복수의 상기 어드레스들 및 상기 방향들을 참조하여 메시지들을 라우팅하는 단계를 포함한다.
본 발명의 또 다른 실시형태에 따르면, n 차원 프로세서 어레이의 노드들에 어드레스를 배정하기 위한 컴퓨터 프로그램 물이 제공되며, 여기서, n은 정수이고, 상기 컴퓨터 프로그램 물은, 상기 어레이 내의 차원의 수(n)를 결정하는 단계와; 상기 차원 각각(k=1...n)에서의 상기 어레이의 최대 범위(L(k))를 결정하는 단계와, 여기서 L은 노드의 수로 측정되고; 상기 차원 각각(k=1...n)을 따라, 바이너리 형식에서 순차적으로 번호가 매겨진 좌표를 정의하는 단계와, 상기 좌표는 적어도 L(k)의 길이를 포괄하여, 각각의 노드는 n개의 차원들 각각에서의 각각의 좌표로 설명되며; 각각의 차원(k = 1...n)을 따라, 2m(k) ≥ L(k)가 되도록 각각의 노드를 어드레싱하기 위해 m(k) 비트의 어드레스 부분을 배정하고, 그리고 각각의 m(k) 비트 어드레스 부분에서의 각각의 차원(k)을 따라 노드의 좌표를 저장하는 단계와; 그리고 상기 어레이 내의 각각의 노드의 각각의 어드레스 부분에 대해, 각각의 제 1 방향을 값이 영(zero)인 임의의 비트들로 맵핑시키고, 그리고 각각의 제 2 방향을 값이 일(one)인 임의의 비트들로 맵핑시키는 단계를 수행하는 코드를 포함한다.
본 발명이 더 잘 이해되도록 하기 위해, 그리고 본 발명이 어떻게 실행되는지를 보여 주기 위해, 이제 해당하는 도면을 참조하여 예를 통해 본 발명이 설명된다.
도 1은 프로세서 어레이의 예를 나타낸다.
도 2는 프로세서 노드를 도식적으로 나타낸 것이다.
도 3은 라우팅에 적합한 메시지 포맷을 나타낸다.
도 4는 일차원 프로세서 어레이를 나타낸다.
도 5는 이차원 4×4 프로세서 어레이를 나타낸다.
도 6은 이차원 3×3 프로세서 어레이를 나타낸다.
도 7은 삼차원 3×3×2 프로세서 어레이를 나타낸다.
도 8은 사차원 2×2×2×2 프로세서 어레이를 나타낸다.
도 9는 라우팅 방법을 나타낸 흐름도이다.
도 10은 어드레스를 할당하고 방향을 라우팅하는 방법을 나타낸 흐름도이다.
도 2는 본 발명의 예시적 실시예에 따른 프로세서 타일(2')을 도식적으로 나타낸 것이다. 복수의 이러한 타일들은 결합된 구조 혹은 어레이 형태로 함께 정렬되고, 어레이 내의 각각의 타일(2')은 시스템 스위치(16)와, 그리고 어레이 내의 또 다른 타일에 각각 링크되는 복수의 쌍방향 시스템 링크들(18)을 포함한다. 시스템 링크들(18) 중 일부 혹은 모두는 각각, 각각의 다른 프로세서에 각각의 방향으 로 링크될 수 있고, 그리고/또는 시스템 링크들(18) 중 일부는 동일한 프로세서에 동일한 방향으로 링크될 수 있어, 시스템 링크들(18)의 그룹은 큰 용량을 가진 하나의 링크로서 효과적으로 취급될 수 있다. 시스템 링크(18)는 온칩(on-chip)이거나 혹은 인터칩(inter-chip)일 수 있다. 각각의 시스템 스위치(16)는 어레이 내의 노드를 정의한다.
이러한 예에서, 타일(2')은 네 개의 프로세서(4)를 포함한다. 각각의 프로세서(4)는 쌍방향 채널 링크들(22) 및 프로세서 스위치(14)를 통해 액세스가능한 다수의 서로 다른 I/O 채널들을 가질 수 있다. 프로세서 스위치들은 하나 또는 그 이상의 쌍방향 프로세서 링크들(20)에 의해 시스템 스위치에 연결된다. 타일(2')은 또한 이후 더 상세히 설명되는 바와 같이, 시스템 스위치(16)에 의해 액세스가능한 라우팅 룩업 테이블을 포함한다. 타일(2')은 또한 외부 링크들과 그리고 RAM 및 ROM과 같은 메모리(미도시)를 포함할 수 있다.
동작시, 시스템 스위치(16)는 로컬 프로세서들 중 하나(즉, 동일한 노드의 프로세서)로부터 혹은 다른 노드의 프로세서로부터 들어오는 메시지(26)를 수신한다. 각각의 노드에는 어레이 내에서의 노드를 식별하는 어드레스가 배정되고, 각각의 프로세서에는 각각의 노드 내에서 프로세서를 식별하는 어드레스가 배정되며, 그리고 각각의 채널에는 각각의 프로세서 내에서 채널을 식별하는 어드레스가 배정된다. 어드레스들은 어드레스 데이터의 컴포넌트 양(quanta)을 포함하는데, 대부분의 경우 이것은 개별 비트들이다. 도 3에 도식적으로 도시된 바와 같이, 메시지는, 목적지 노드 어드레스를 특정하는 목적지 노드 부분(28)과, 목적지 프로세서 어드 레스를 특정하는 목적지 프로세서 부분(30)과, 그리고 목적지 채널 어드레스를 특정하는 목적지 채널 부분(32)을 포함하는 헤더(27)를 포함한다. 어드레스는 또한 페이로드(payload)(34)를 포함한다. 바람직한 실시예에서, 헤더의 길이는 2 바이트(16 비트)이고, 이 경우 목적지 노드 부분은 8 비트, 목적지 프로세서 부분은 4 비트, 그리고 목적지 채널 부분은 4 비트이다. 따라서 노드는 최대 256개, 프로세서는 최대 4096개, 그리고 채널은 최대 65536개가 가능하고, 각각의 노드는 16개의 프로세서를 가질 수 있으며, 각각의 프로세서는 16개의 채널을 가질 수 있다.
시스템 스위치(16)는 자신의 로컬 노드 어드레스(즉, 자기 자신의 노드 어드레스)를 메시지의 목적지 노드 어드레스와 비교한다. 만약 정합이 존재한다면, 시스템 스위치는 메시지의 목적지 프로세서 어드레스를 검사하여, 메시지를 대응하는 프로세서 스위치(14)에 라우팅한다. 그 다음에 프로세서 스위치(14)는 메시지의 목적지 채널 어드레스를 검사하여 메시지를 대응하는 채널에 라우팅한다. 유의할 것으로, 헤더(27)는 메시지가 최종적으로 프로세서(4)에 전송되기 이전에 버려질 수 있어, 유리한 점으로, 수신 소프트웨어는 헤더를 전혀 볼 필요가 없다. 헤더는 부분적으로 버려질 수 있어, 노드 어드레스 부분(28)과 프로세서 어드레스 부분은, 메시지가 프로세서 스위치(14)에 라우팅되기 이전에 버려지고, 그리고 채널 어드레스 부분(32)은, 메시지가 프로세서 스위치(14)에 라우팅된 이후에, 하지만 메시지가 프로세서(4)에 라우팅되기 이전에 버려진다.
그러나, 만약 정합이 존재하지 않는다면, 시스템 스위치(16)는 또 다른 노드가 목적지인 메시지를 수신하고, 어느 방향으로 그것을 전달해야 하는 지를 결정해 야만 하는데, 즉, 어떤 시스템 링크(18)를 통해 메시지를 재전송해야하며 따라서 어떤 노드가 그것을 수신해야만 하는 지를 결정해야 한다. 유의할 것으로, 어레이는 열개, 백개, 혹은 심지어 천 개의 노드들을 포함할 수 있고, 그래서 메시지는 그 목적지에 도달하기 이전에 수많은 노드 사이에서 지연돼야만 할 것이다. 따라서, 어레이 전체에 걸쳐 가장 효율적인 루트를 찾는 것은 간단한 작업이 아니다.
본 발명에 따르면, 이것은 룩업 테이블(24)을 참조함으로써 달성된다. 룩업 테이블(24)은 로컬 노드 어드레스의 비트들에 대해 표로 만들어진 복수의 가능한 라우팅 방향을 포함하며, 여기서 하나의 방향은 각각의 비트에 맵핑되어 있다. 노드의 로컬 어드레스와 메시지의 목적지 어드레스 간의 비교에 근거하여, 시스템 스위치(16)는 비정합 비트를 식별하고, 그리고 룩업 테이블(24)을 참조하여 어떤 방향이 그 비트에 맵핑되어야 하는지를 결정한다.
바람직하게는 룩업 테이블은 소프트 프로그래밍이 가능하고, 그래서 고객은 모듈 방식으로 임의 개수의 프로세서들을 함께 결합할 수 있으며, 필요한 대로 라우팅을 프로그래밍할 수 있다. 대안적으로, 만약 어레이가 공급자에 의해 사전에 설계된다면, 룩업 테이블은 대신에 그 어레이에 대해 하드 프로그래밍(hard programming)될 수 있다.
단지 하나의 룩업 테이블이 도 2에 도시되었지만, 실시예들에서 복수의 이러한 룩업 테이블이 각각의 노드 상에 제공될 수 있다. 예를 들어, 시스템 링크 당 하나의 룩업 테이블이 있을 수 있다. 유리한 점으로, 이것은 메시지 라우팅의 속도를 높이는데, 왜냐하면 룩업 테이블 리소스에 대한 메시지 경합이 감소하여 복수의 메시지들이 동시에 라우팅될 수 있기 때문이다.
특히 바람직한 실시예에서, 시스템 스위치(16)는 로컬 노드 어드레스를 목적지 노드 어드레스를 비트별로, 즉, 한번에 한 비트씩 비교하고, 가장 이른 비정합 비트가 발견되면 바로 비교를 멈춘다. 이로 인해 라우팅의 속도가 특히 빨라지는데, 왜냐하면 대부분의 노드에서 시스템 스위치(16)는, 단지 메시지의 목적지 어드레스의 작은 부분만을, 또 다른 노드에 메시지를 전달하기 이전에, 판독할 필요가 있기 때문이다. 때대로, 스위치는 단지 단일 비트만을 판독할 필요가 있다. 바람직하게는, 시스템 스위치(16)는, 비정합이 발견될 때까지, 최상위 비트들, 그 다음 최상위 비트들, 등을 비교함으로써 시작한다. 바람직한 실시예에서, 목적지 노드 어드레스의 최상위 비트는 헤더(27)의 시작부분의 오른쪽에 놓이고, 그래서 라우팅 방향은 종종 메시지의 가장 이른 몇 개의 비트만을 판독함으로써 종종 결정될 수 있고, 그리고 때로는 바로 첫 번째 비트만을 단지 판독함으로써 결정될 수 있다.
이러한 기술은 부수적인 고속의 "웜홀 라우팅"을 용이하게 하고, 그럼으로써 메시지의 나머지가 도달하기 이전에 어드레스에 따라 동작될 수 있다. 따라서, 시스템 스위치(16)는 최소 지연으로 메시지의 라우팅을 빠르게 설정할 수 있다.
라우팅 룩업 테이블의 사용은 도 4의 예를 참조하여 더 상세히 설명되고, 도 4는 본 발명의 실시예에 따른 간단한 일차원 어레이를 도식적으로 나타낸 것이다.
이러한 예에서, 각각의 타일(2')은 단지 단일의 프로세서(4)를 포함하고, 그래서 프로세서 어드레스는 사실상 노드 어드레스와 동일하다. 각각의 타일은 또한 라우팅 룩업 테이블(24) 및 시스템 스위치(16)를 포함하고, 또한, 어레이가 일차원 이기 때문에, 각각의 타일(2')은 많아야 두 개의 시스템 링크(18)와 연결된다. 간단한 설명을 위해, 프로세서 스위치(14), 프로세서 링크(20), 및 채널 링크(22)와 같은 세부적인 것은 포함되지 않았다.
여덟 개의 노드를 수용하기 위해, 각각의 노드에는 3 비트 어드레스가 배정된다. 따라서, 룩업 테이블(24) 각각은 세 개의 엔트리(entry)(노드 어드레스의 각 비트에 하나씩)를 가진다. 각각의 엔트리는 두 가지 가능한 라우팅 방향, 즉 위(up)(U) 및 아래(down)(D) 중 하나를 특정할 수 있다. 룩업 테이블은 다음과 같다.
그래서, 이러한 예에서, 최상위 비트는 어레이의 특정된 반을 식별한다. 주어진 반 내에서, 두 번째 최상위 비트는 어레이의 특정된 사분의일을 식별하고, 그리고 주어진 사분의일 내에서 최하위 비트는 특정 노드까지 좁혀진다. 따라서, 만약 메시지가 잘못된 반에서 시작한다면, 관련 시스템 스위치(16)는, 단지, 목적지 및 로컬 어드레스의 최상위 비트들 간의 단일 비교에 의해서, 그것을 발견할 수 있다. 룩업 테이블(24)을 참조하여, 시스템 스위치는 어느 방향이 최상의 비트에 맵 핑되는지를 결정하고, 그 방향으로 메시지를 라우팅시켜 올바른 반으로 메시지를 이동시킨다. 메시지가 올바른 반에 있는 경우, 관련 시스템 스위치(16)는 적어도 두 가지 비교를 수행해야만 하는데, 그 하나는 최상위 비트들 간의 비교이고 다른 하나는 두 번째 최상위 비트들 간의 비교이다. 두 번째 최상위 특정 비트들 간의 비교를 통해, 시스템 스위치(16)는 메시지가 잘못된 사분의일에 있는지 여부를 알 수 있고, 만약 그렇다면, 일정 방향으로 메시지를 라우팅시켜 메시지가 올바른 사분의일로 이동하도록 할 필요가 있다. 유사한 원리가, 메시지가 올바른 사분의일로 라우팅되는 경우 최하위 비트를 사용하여 최적 목적지 노드를 찾는데 적용된다.
예시적 목적으로, 노드(N7)로부터 노드(N2)로의 메시지 라우팅을 고려한다. 노드들(N7, N6 및 N5) 각각에서, 시스템 스위치는, 단지 최상위 비트들만을 비교하고, 그리고 이들은 정합되지 않았기 때문에, 룩업 테이블(24)을 참조하여 메시지가 위 방향으로 라우팅되어야만 하는 지를 결정한다. 따라서, 유의할 것으로, 노드들(N7-N5)에서 메시지는 수신된 메시지의 단지 단일 비트만을 검사함으로써 빠르게 라우팅될 수 있다. 노드들(N4 및 N3)에서, 시스템 스위치(16)는, 메시지가 목적지 노드(N2)에 도달할 때까지, 두 번째 최상위 비트들을 비교하여 메시지가 여전히 위 방향으로 라우팅되어야만 하는지를 결정해야만 한다.
당연히 유의할 것으로, 최상위 내지 최하위 비트로 명명된 순서는 일반적으로 단지 정하기 나름이다. 그러나, 본 발명의 목적에 대해, "순위(significant)"의 의미는 어레이 내의 노드들의 위치와 연결되며, 그래서 최상위 비트는 어레이를 두 부분으로 나누고, 그 다음 최상위 비트는 이러한 부분 각각을 다시 두 개의 하위 부분으로 나누는 등등이다. 즉, 최상위로부터 최하위로의 어드레스 비트의 순위는 어레이의 공간적 분할이 점점 더 좁아지는 것에 대응한다. 순위는 비트들이 메시지의 어드레스 분분에 정렬된 순서를 의미하는 것이 아니며, 이들이 임의의 메모리 등에 정렬된 순서를 의미하는 것이 아니다. 이러한 것이 본 발명의 본질적인 것이 아니다(비록, 앞서 설명된 바와 같이, 바람직한 실시예에서, 최상위 비트가 헤더(27)의 시작부분에 놓일지라도). 전적으로, 본 명세서의 설명 목적으로, 최상위 내지 최하위 비트는 왼쪽에서 오른쪽으로 읽혀지도록 취해진다.
이와 같은 방식의 속도 및 간단함은 더 복잡한 다차원 어레이에서 특히 이롭다. 도 5는 4×4 이차원 어레이로 확장된 본 발명의 예를 도식적으로 나타낸 것이다. 편의상, 각각이 타일(2')은 그 각각의 시스템 링크들(18)과 그 각각의 노드 어드레스(0000 내지 1111)만을 갖도록 도시되었다.
각각의 노드 어드레스는 별개의 두 부분을 포함하는 것으로 고려될 수 있는데, 그 한 부분은 왼쪽-오른쪽 방향의 좌표를 특정하는 부분이며, 다른 하나는 위쪽-아래쪽 방향으로 어드레스를 특정하는 좌표이다. 이러한 예에서, 두 개의 최상위 비트는 어레이 내의 왼쪽에서 오른쪽으로 00, 01, 10, 11의 수치를 갖는다. 두 개의 최하위 비트는 어레이 내의 상부에서 하부로 00, 01, 10, 11의 수치를 갖는다. 따라서, 라우팅 룩업 테이블은 두 개의 추가적인 방향, 왼쪽(L) 및 오른쪽(R)을 노드 어드레스 상에 맵핑시킨다. 각각의 노드의 룩업 테이블은 다음과 같다.
동작시, 시스템 스위치(6)가 먼저 메시지를 수신하고, 그리고 그 목적지 노드 어드레스의 최상위 비트를 로컬 노드 어드레스의 최상위 비트와 비교한다. 최상위 비트의 정합 여부를 결정함으로써, 이것은 스위치(16)에게 메시지가 왼쪽-오른쪽 방향에서 어레이의 올바른 반 내에 있는지 여부, 즉 가장 왼쪽의 두 개의 컬럼 내에 있는지 또는 가장 오른쪽의 두 개의 컬럼 내에 있는지 여부를 알려 준다. 만약 그렇지 않다면, 룩업 테이블은, 최상위 비트에 맵핑된 라우팅 방향을 통해, 메시지를 올바른 반으로 전달하기 위해 스위치가 어느 방향으로 라우팅해야하는지를 알려준다. 올바른 반 내에 있다면, 두 번째 최상위 비트는 올바른 컬럼으로 좁혀진다. 올바른 컬럼 내에 있다면, 동일한 프로세스가 위쪽 방향-아래쪽 방향으로 최하 위 두 비트에 대해 적용된다.
유의할 것으로, 어떤 차원의 어드레스 비트들이 최상위 및 최하위로 고려되는지는 단지 용어상의 문제이다. 즉, 본 발명은 메시지의 올바른 로우(row)를 찾기 위해 위-아래 방향을 특정하는 비트들을 동일하게 판독할 수 있고, 그 다음에 후속적으로 왼쪽-오른쪽 방향에서 그 쌍을 판단하여 올바른 컬럼으로 좁혀지게 한다. 이러한 것을 위해, 최상위의 크기는 사용될 제 1 어드레스 부분의 크기만큼 간단한 것으로 고려되고, 그리고 최하위의 크기는 사용된 마지막 부분의 크기이다. 다른 크기의 부분들로부터의 비트들이 또한 삽입되는 방식으로 사용 및/또는 정렬될 수 있다. 이러한 변형 및 다른 변형은, 실질적으로, 최상위로부터 최하위로의 어드레스 비트들의 순위가 어레이의 공간적 분할이 점점 더 좁아지는 순서를 의미하는 기본 원리를 손상시키지 않는다.
도 6은 3×3 이차원 어레이의 예를 도식적으로 나타낸 것이다. 편의상, 각각의 타일(2')은 각각의 시스템 링크들(18)과 그 각각의 노드 어드레스(0000 내지 1010)만을 갖는 것으로 도시된다. 이러한 예는, 불규칙한 어레이들 혹은 그 측면 크기가 길이 2n(여기서 n은 정수)을 갖지 않은 어레이들 내에서, 본 발명이 라우팅을 제공하기 위해서 어떻게 사용될 수 있는 가를 나타낸다. 단지 예시적 목적으로, 리던던트 노드 어드레스(redundant address)의 가상 위치(imaginary position)(2")가 또한 도시된다. 3×3 어레이에 대한 룩업 테이블은 다음과 같다.
기존 노드(2')의 어드레스 및 룩업 테이블은 도 5의 4×4 어레이 내의 대응하는 노드와 동일한데, 단 예외적인 것으로, 리던던트 노드 어드레스로 인해, 룩업 데이블 내의 일부 엔트리들은 실제로 "돈 케어(don't cares)"(x)가 되는데, 왜냐하면 이들이 참조될 가능성이 있는 상황은 존재하지 않기 때문이다. 따라서, 이것은 3×3 어레이가 실제로 어떻게 4×4 그리드로부터 "절단(cut out)"될 수 있는지를 보여준다. 동일한 원리가 불규칙한 형상의 어레이를 처리하기 위해 사용될 수 있다.
도 7은 3×3×2 삼차원 어레이에 적용된 본 발명의 예를 나타낸다. 이것은 두 개의 새로운 방향, 즉 전진(Forwards, F) 및 후진(Backwards, B)을 만들어 낸다. 본 발명의 원리는 정확히 동일하고, 노드의 위치를 전진-후진 방향에서 특정하기 위해 노드 어드레스에 추가 비트가 첨부된다.
룩업 테이블은 다음과 같다.
그래서, 동작시, 메시지는 먼저, 도 5 및 도 6과 관련하여 설명된 바와 같이, 올바른 컬럼 및 로우에 라우팅된다. 시스템 스위치(16)는 로컬 어드레스와 목적지 어드레스의 최하위 비트들을 비교한다. 이것은 스위치(16)에게 메시지가 올바른 면(즉, 전면 혹은 후면)에 있는지 여부를 알려 준다. 만약 그렇지 않다면, 스위치(16)는 올바른 면으로의 도달을 위해 메시지를 어느 방향으로 라우팅해야 할지를 결정하기 위해 라우팅 테이블을 참조한다.
본 발명의 일 실시예에 따르면, 특정 차원과 관련된 노드 어드레스 부분은 버려질 수 있는데, 왜냐하면 메시지의 위치는 그 차원 내에서의 특정 좌표로 좁혀지기 때문이다. 예를 들어 도 7의 어레이를 참조하면, 메시지가 올바른 컬럼에 라우팅되는 경우, 첫 번째 및 두 번째 최상위 비트들은 이제 더 이상 필요 없게 되어 버려질 수 있다. 마찬가지로, 메시지가 올바른 로우에 라우팅되는 경우, 세 번째 및 네 번째 최상위 비트들은 이제 더 이상 필요 없게 되어 버려질 수 있다.
메시지가 라우팅됨에 따라 개개의 비트들이 버려질 수 있는데, 즉, 최상위 비트가 정합되면 버리고, 두 번째 최상위 비트가 정합되면 버리는 등등을 통해 개개의 비트들이 버려질 수 있다.
목적지 어드레스로부터 부분 혹은 개개의 비트를 버림으로써 라우팅 속도는 개선되는데, 왜냐하면 요구된 비트 비교의 수가 감소되기 때문이다. 그러나, 이러한 부분 혹은 비트를 버리는 것이 가능하도록 하기 위해, 짧아진 어드레스에 근거하여 메시지를 라우팅하기 위한 일부 방법이 구현되어야만 한다. 이러한 것을 달성할 수 있는 한 가지 방법은 각각의 시스템 링크(18)에 대해 개개의 룩업 테이블(24)을 제공하는 것이고, 이 경우 비트들은 어떤 링크들의 룩업 테이블로부터 제거된다. 예를 들어, 도 7의 예를 다시 참조하면, 만약 메시지가 먼저 왼쪽-오른쪽 방향으로 라우팅된다면. 위-아래 방향 그리고 전진-후진 방향에서의 링크들(18)은, 본래 어드레스의 첫 번째 두 개의 최상위 비트들을 비교하기 위한 임의의 비트들을 필요로 하지 않는다. 마찬가지로, 만약 메시지가 후속적으로 위-아래 방향으로 라우팅된다면, 전진-후진 링크들(18)의 룩업 데이블은 단지 단일의 비트만을 포함할 필요가 있다. 이것은 또한 룩업 테이블의 일부의 크기를 감소시키고, 리소스를 절약한다.
본 발명은 또한 사차원 혹은 그 이상의 차원으로 확장될 수 있다. 물론, 어레이는 여전히 세 가지 공간적 차원에서 존재한다. 본 명세서에서, 용어 "차원"은 간단히 "자유도(degree of freedom)"를 의미한다. 사차원 혹은 그 이상의 차원을 가진 어레이에 대해, 어레이 내의 적어도 하나의 노드는 네 개 혹은 그 이상의 다른 노드에 연결된다. 이것이 의미하는 것은 메시지가 라우팅될 수 있는 가능한 방향이 네 개 혹은 그 이상의 있을 수 있다는 것이다.
도 8은 옥타코론(octachoron)으로 알려진 2×2×2×2 사차원 하이퍼큐브(hypercube)에 적용된 본 발명의 예를 나타낸다. 각각의 노드 (N1 ... N16)는 네 개의 다른 노드에 연결되어 있고, 따라서 임의의 소정의 노드에서 메시지 라우팅에서의 자유도는 사이다.
도 7의 예에서와 같이, 세 개의 자유도, 즉 왼쪽-오른쪽, 위-아래, 및 전진-후진이 존재한다. 도 8의 예는 메시지 라우팅을 위해 네 번째 자유도를 추가하기 위해 추가적인 링크들(18)을 제공한다. 임의로 용어를 정하면, 두 개의 새로운 방향의 명칭은 본 명세서에서 노랑(Yellow, Y) 및 초록(Green, G)이고, 노랑은 초록의 반대 방향이다. 각각의 노드에서의 라우팅 테이블은 다음과 같다.
도 9는 본 발명에 따른 방법을 나타낸 흐름도이다. 이러한 방법은 단계(100)에서 시작하는 데, 먼저 노드의 시스템 스위치(16)에서 메시지의 목적지 노드 어드레스의 첫 번째 비트를 수신한다. 설명을 위해 임의의 주어진 시간에 해당 어드레스 비트는 본 명세서에서 비트 번호 i로 언급된다. 단계(102)에서, 목적지 노드 어드레스의 i번째 비트가 로컬 노드 어드레스의 i번째 비트와 비교된다. 단계(104)에서, 상기 방법은 목적지 어드레스의 i번째 비트가 로컬 어드레스와 정합하는 지 여부에 따라 분기한다. 만약 이들이 정합하지 않는다면, 상기 방법은 단계(106)로 진행하여 i번째 비트에 대해 맵핑된 방향을 결정하기 위해 룩업 테이블이 참조된다. 단계(108)에서, 메시지는 그 방향으로 라우팅된다. 그러나, 만약 목적지 및 로컬 어드레스의 i번째 비트들이 정합한다면, 상기 방법은 단계(110)로 진행하여, 노드 어드레스들의 마지막 비트에 도달했는지 여부가 결정된다. 만약 그렇다면, 메시지는 그 목적지에 도달한 것이고, 그리고 상기 방법은 단계(112)로 분기하여, 메시지는 로컬 프로세서에 라우팅된다. 그러나, 만약 마지막 비트에 도달하지 못했다면, 상기 방법은 단계(114)에서 그 다음 어드레스 비트를 고려하기 위해 계속되고, 단계(102)로부터 상기 방법은 반복된다.
앞서의 설명으로부터, 노드를 어드레싱하고 대응하는 룩업 테이블을 배정하는 바람직한 방법을 위한 임의의 패턴이 또한 있을 수 있다. 이것은 도 10의 흐름도를 참조하여 설명된다. 단계(200)에서, 어레이 내의 차원의 수(n)가 결정된다. 단계(202)에서, 각각의 차원(k = 1...n)에 대해 어레이의 최대 범위 L(k)가 결정되고, 여기서 L은 노드의 수로 측정된다. 단계(204)에서, 차원 각각(k = 1...n)에서의 좌표가 정의된다. 좌표는 바이너리 형식으로 순차적으로 번호가 부여되고, 그리고 적어도 L(k)의 길이를 포괄해야만 한다. 각각의 노드의 위치는 n 차원들 각각에서의 각각의 좌표로 설명될 수 있다. 단계(206)에서, m(k) 비트의 어드레스 부분이, 각각의 차원(k = 1...n)을 따라, 2m(k) ≥ L(k) 조건 하에서, 각각의 노드를 어드레싱하기 위해 배정되고, 따라서 차원 k를 따르는 노드의 좌표가 각각의 m(k) 비트 어드레스 부분에 저장될 수 있다. 단계(208)에서, 방향을 노드 어드레스 비트에 맵핑시킴으로써, 각각의 노드에 대한 룩업 테이블이 도출된다. 어레이 내의 각각의 노드의 각각의 어드레스 부분에 대해, 이것은 각각의 제 1 방향(예를 들어, 오른쪽 방향, 아래 방향, 후진 방향, 노랑 방향)을 값이 영(zero)인 임의 비트들에 맵핑시키는 것과, 그리고 각각의 제 2 방향(예를 들어, 왼쪽 방향, 위 방향, 전진 방향, 초록 방향)을 값이 일(one)인 임의 비트들에 맵핑시키는 것을 포함한다.
예를 들어, 도 7을 다시 참조하면, 어드레스들 및 대응하는 룩업 테이블들은 다음과 같이 배정된다. 먼저, 유의할 것으로, 어레이는 삼차원이고, 그 최대 범위는 3×3×2 노드들을 갖는다. 세 개의 노드들의 측면은 두 비트의 어드레스 부분을 요구하는데 왜냐하면 21 < 3 < 22이기 때문이다. 단지 두 개의 노드들의 측면은 일 비트 어드레스 부분을 요구한다. 따라서, 어레이는 5 비트 어드레스를 사용하여 노드들을 어드레싱하고, 두 개의 최상위 비트들은 왼쪽-오른쪽 방향으로 노드들을 어드레싱하기 위해 사용되고, 세 번째와 네 번째 최상위 비트는 위-아래 방향으로 노드들을 어드레싱하기 위해 사용되며, 그리고 최하위 비트는 전진-후진 반향으로 노드들을 어드레싱하기 위해 사용된다. 룩업 테이블을 도출해 내기 위해, 0과 1이 두 개의 최상위 비트들에서 각각 오른쪽과 왼쪽에 맵핑되고, 세 번째 내지 네 번째 최상위 비트들에서 각각 아래와 위에 맵핑되며, 그리고 최하위 비트에서 각각 후진과 전진에 맵핑된다.
이해할 것으로, 앞서의 설명은 단지 예시적으로 설명된 것이다. 다른 실시예들에서, 다른 어드레싱 패턴이 사용될 수 있다는 것은 본 발명의 기술분야에서 숙련된 자들에게는 명백할 것이다. 또한, 최상위 내지 최하위 비트의 순서는 변경될 수 있고, 그래서 메시지는 먼저 면 단위로 그 다음 로우 단위로 그 다음 컬럼 단위로 또는 로우 단위로 그 다음 면 단위로 그 다음 컬럼 단위, 등등으로 라우팅된다. 또한, 라우팅 룩업 테이블은 라우팅 알고리즘과 같은 덜 바람직한 옵션으로 대체될 수 있다. 본 발명의 기술분야에서 숙련된 자들에게는, 예를 들어, 다른 크기, 형상, 및 차원 수를 가진 어레이를 사용하여, 다른 구성이 또한 구현될 수 있는데, 여기에는 편리한 기하학적 형상을 형성하지 않는 불규칙한 어레이가 포함될 수 있고, 그리고 트리 타입의 형상을 갖는 어레이들도 포함될 수 있다. 본 발명의 범위는 설명된 실시예들에 의해 한정되는 것이 아니라, 다음의 특허청구범위에 의해서만 한정된다.
Claims (39)
- 프로세서 노드들의 어레이로서,각각의 노드는 상기 어레이 내에서의 노드들을 식별하는 각각의 로컬 노드 어드레스를 가지며, 각각의 로컬 노드 어드레스는 최상위로부터 최하위까지의 어드레싱 순위를 갖는 복수의 비트(bit)들을 포함하고, 각각의 노드는,각각의 라우팅 방향으로 상기 로컬 노드 어드레스의 각각의 비트를 맵핑시키는 맵핑 수단과; 그리고목적지 노드를 식별하는 목적지 노드 어드레스를 갖는 메시지를 수신하도록 된 스위칭 수단을 포함하고, 상기 스위칭 수단은, 최상위 비정합 비트를 식별하기 위해 상기 로컬 노드 어드레스를 상기 목적지 노드 어드레스와 비교하는 수단과; 그리고 상기 로컬 노드 어드레스가 상기 목적지 노드 어드레스와 정합되지 않는 경우, 상기 맵핑 수단에 의해 상기 로컬 노드 어드레스의 상기 최상위 비정합 비트에 맵핑되는 방향으로 상기 메시지를 또 다른 노드에 라우팅하는 수단을 포함하는 것을 특징으로 하는 프로세서 노드들의 어레이.
- 삭제
- 제1항에 있어서,상기 맵핑 수단은 라우팅 룩업 테이블을 포함하는 것을 특징으로 하는 프로세서 노드들의 어레이.
- 제3항에 있어서,상기 라우팅 룩업 데이블은 소프트 프로그래밍이 가능한 것을 특징으로 하는 프로세서 노드들의 어레이.
- 제1항에 있어서,상기 맵핑 수단은 라우팅 알고리즘을 포함하는 것을 특징으로 하는 프로세서 노드들의 어레이.
- 제1항에 있어서,각각의 노드는 적어도 하나의 로컬 프로세서를 포함하고, 그리고 상기 스위칭 수단은 상기 로컬 노드 어드레스가 상기 목적지 노드 어드레스와 정합하는 경우 상기 메시지를 상기 로컬 프로세서들 중 하나에 라우팅시키는 것을 특징으로 하는 프로세서 노드들의 어레이.
- 제1항에 있어서,상기 스위칭 수단은 상기 비교를 비트별로 수행하고, 상기 최상위 비정합 비트가 발견되면 상기 비교를 멈추는 것을 특징으로 하는 프로세서 노드들의 어레이.
- 제1항에 있어서,상기 목적지 노드 어드레스는 상기 스위칭 수단에 의해 수신될 상기 메시지의 가장 이른 부분(the earliest part)인 것을 특징으로 하는 프로세서 노드들의 어레이.
- 제1항에 있어서,상기 목적지 노드 어드레스는 상기 스위칭 수단에 의해 최상위 비트에서 최하위 비트의 순서로 수신되는 것을 특징으로 하는 프로세서 노드들의 어레이.
- 제1항에 있어서,상기 어레이는 적어도 이차원인 것을 특징으로 하는 프로세서 노드들의 어레이.
- 제10항에 있어서,상기 어레이는 적어도 삼차원인 것을 특징으로 하는 프로세서 노드들의 어레이.
- 제11항에 있어서,상기 어레이는 적어도 사차원인 것을 특징으로 하는 프로세서 노드들의 어레이.
- 제1항에 있어서,상기 스위칭 수단은, 정합이 검출되면 그리고 상기 메시지를 프로세서에 라우팅하기 전에, 상기 목적지 노드 어드레스를 버리는 것(discard)을 특징으로 하는 프로세서 노드들의 어레이.
- 제1항에 있어서,적어도 하나의 노드는 복수의 프로세서들을 포함하고, 상기 메시지는 상기 노드 내의 목적지 프로세서를 식별하는 목적지 프로세서 어드레스를 더 포함하고, 그리고 상기 스위칭 수단은 상기 목적지 노드 어드레스가 상기 로컬 노드 어드레스와 정합하는 경우 상기 메시지를 상기 목적지 프로세서에 라우팅시키는 것을 특징으로 하는 프로세서 노드들의 어레이.
- 제14항에 있어서,상기 스위칭 수단은 상기 메시지를 상기 목적지 프로세서에 라우팅시키기 전에 상기 목적지 프로세서 어드레스를 버리는 것을 특징으로 하는 프로세서 노드들의 어레이.
- 제1항에 있어서,적어도 하나의 노드에서의 적어도 하나의 프로세서가 복수의 I/O 채널들을 포함하고, 상기 메시지는 상기 프로세서 내의 목적지 채널을 식별하는 목적지 채널 어드레스를 더 포함하고, 그리고 상기 스위칭 수단은 상기 목적지 노드 어드레스가 상기 로컬 노드 어드레스와 정합하는 경우 상기 메시지를 상기 목적지 채널에 라우팅시키는 것을 특징으로 하는 프로세서 노드들의 어레이.
- 제16항에 있어서,상기 스위칭 수단은 상기 메시지를 상기 목적지 채널에 라우팅시키기 전에 상기 목적지 채널 어드레스를 버리는 것을 특징으로 하는 프로세서 노드들의 어레이.
- 제1항에 있어서,상기 스위칭 수단은 상기 목적지 노드 어드레스로부터 하나 또는 그 이상의 비트들을, 상기 비트들이 상기 로컬 노드 어드레스와 정합하는 경우, 버리는 것을 특징으로 하는 프로세서 노드들의 어레이.
- 프로세서 노드들의 어레이에서의 메시지들을 라우팅하는 방법으로서,각각의 노드는 상기 어레이 내에서의 노드들을 식별하는 각각의 로컬 노드 어드레스를 가지며, 각각의 로컬 노드 어드레스는 최상위로부터 최하위까지의 어드레싱 순위를 갖는 복수의 비트들을 포함하고, 상기 방법은,목적지 노드 어드레스를 포함하는 메시지를 노드에서 수신하는 단계와;최상위 비정합 비트를 식별하기 위해 상기 로컬 노드 어드레스를 상기 목적지 노드와 비교하는 단계와; 그리고상기 로컬 노드 어드레스가 상기 목적지 노드 어드레스와 정합하지 않는 경우, 상기 로컬 노드 어드레스의 각각의 비트를 각각의 라우팅 방향으로 맵핑시키는 맵핑 수단을 참조하여, 상기 맵핑 수단에 의해 상기 로컬 노드 어드레스의 상기 최상위 비정합 비트에 맵핑되는 방향으로 상기 메시지를 또 다른 노드에 라우팅하는 단계를 포함하는 것을 특징으로 하는 메시지 라우팅 방법.
- 삭제
- 제19항에 있어서,상기 맵핑 수단은 라우팅 룩업 테이블을 포함하는 것을 특징으로 하는 메시지 라우팅 방법.
- 제21항에 있어서,상기 라우팅 룩업 데이블은 소프트 프로그래밍이 가능한 것을 특징으로 하는 메시지 라우팅 방법.
- 제19항에 있어서,상기 맵핑 수단은 라우팅 알고리즘을 포함하는 것을 특징으로 하는 메시지 라우팅 방법.
- 제19항에 있어서,각각의 노드는 적어도 하나의 로컬 프로세서를 포함하고, 그리고 상기 방법은 상기 로컬 노드 어드레스가 상기 목적지 노드 어드레스와 정합하는 경우 상기 메시지를 상기 로컬 프로세서들 중 하나에 라우팅하는 단계를 더 포함하는 것을 특징으로 하는 메시지 라우팅 방법.
- 제19항에 있어서,상기 비교하는 단계는 상기 비교를 비트별로 수행하는 것과, 그리고 상기 최상위 비정합 비트가 발견되면 상기 비교를 멈추는 것을 포함하는 것을 특징으로 하는 메시지 라우팅 방법.
- 제19항에 있어서,상기 목적지 노드 어드레스는 수신될 상기 메시지의 가장 이른 부분인 것을 특징으로 하는 메시지 라우팅 방법.
- 제19항에 있어서,상기 목적지 노드 어드레스는 최상위 비트에서 최하위 비트의 순서로 수신되는 것을 특징으로 하는 메시지 라우팅 방법.
- 제19항에 있어서,상기 어레이는 적어도 이차원인 것을 특징으로 하는 메시지 라우팅 방법.
- 제28항에 있어서,상기 어레이는 적어도 삼차원인 것을 특징으로 하는 메시지 라우팅 방법.
- 제29항에 있어서,상기 어레이는 적어도 사차원인 것을 특징으로 하는 메시지 라우팅 방법.
- 제19항에 있어서,정합이 검출되면 그리고 상기 메시지를 프로세서로 라우팅하기 전에, 상기 목적지 노드 어드레스를 버리는 단계를 더 포함하는 것을 특징으로 하는 메시지 라우팅 방법.
- 제19항에 있어서,적어도 하나의 노드는 복수의 프로세서들을 포함하고, 상기 메시지는 상기 노드 내의 목적지 프로세서를 식별하는 목적지 프로세서 어드레스를 더 포함하고, 그리고 상기 방법은, 상기 목적지 노드 어드레스가 상기 로컬 노드 어드레스와 정합하는 경우 상기 메시지를 상기 목적지 프로세서에 라우팅시키는 단계를 더 포함하는 것을 특징으로 하는 메시지 라우팅 방법.
- 제32항에 있어서,상기 메시지를 상기 목적지 프로세서에 라우팅시키기 전에 상기 목적지 프로세서 어드레스를 버리는 단계를 더 포함하는 것을 특징으로 하는 메시지 라우팅 방법.
- 제19항에 있어서,적어도 하나의 노드의 적어도 하나의 프로세서가 복수의 I/O 채널들을 포함하고, 상기 메시지는 상기 프로세서 내의 목적지 채널을 식별하는 목적지 채널 어드레스를 더 포함하고, 그리고 상기 방법은, 상기 목적지 노드 어드레스가 상기 로컬 노드 어드레스와 정합하는 경우 상기 메시지를 상기 목적지 채널에 라우팅시키는 단계를 더 포함하는 것을 특징으로 하는 메시지 라우팅 방법.
- 제34항에 있어서,상기 메시지를 상기 목적지 채널에 라우팅시키기 전에 상기 목적지 채널 어드레스를 버리는 단계를 포함하는 것을 특징으로 하는 메시지 라우팅 방법.
- 제19항에 있어서,상기 목적지 노드 어드레스로부터 하나 또는 그 이상의 비트들을, 상기 비트들이 상기 로컬 노드 어드레스와 정합하는 경우, 버리는 단계를 포함하는 것을 특징으로 하는 메시지 라우팅 방법.
- n 차원 프로세서 어레이의 노드들 간에 메시지들을 라우팅하는 방법으로서,여기서, n은 정수이고, 상기 방법은,상기 어레이 내의 차원의 수(n)를 결정하는 단계와;상기 차원 각각(k=1...n)에서의 상기 어레이의 최대 범위(L(k))를 결정하는 단계와, 여기서 L은 노드의 수로 측정되고;상기 차원 각각(k=1...n)을 따라, 바이너리 형식에서 순차적으로 번호가 매겨진 좌표를 정의하는 단계와, 상기 좌표는 적어도 L(k)의 길이를 포괄하여, 각각의 노드는 n개의 차원들 각각에서의 각각의 좌표로 설명되며;각각의 차원(k = 1...n)을 따라, 2m(k) ≥ L(k)가 되도록 각각의 노드를 어드레싱하기 위해 m(k) 비트의 어드레스 부분을 배정하고, 그리고 각각의 m(k) 비트 어드레스 부분에서의 각각의 차원(k)을 따라 노드의 좌표를 저장하는 단계와; 그리고상기 어레이 내의 각각의 노드의 각각의 어드레스 부분에 대해, 각각의 제 1 방향을 값이 영(zero)인 임의의 비트들로 맵핑시키고, 그리고 각각의 제 2 방향을 값이 일(one)인 임의의 비트들로 맵핑시키는 단계와; 그리고복수의 상기 어드레스들 및 상기 방향들을 참조하여 메시지들을 라우팅하는 단계를 포함하는 것을 특징으로 하는 메시지 라우팅 방법.
- 컴퓨터 판독가능 매체로서,상기 컴퓨터 판독가능 매체에는 n 차원 프로세서 어레이의 노드들에 어드레스를 배정하기 위한 컴퓨터 프로그램이 수록되어 있고, 여기서, n은 정수이며, 상기 컴퓨터 프로그램은,상기 어레이 내의 차원의 수(n)를 결정하는 단계와;상기 차원 각각(k=1...n)에서의 상기 어레이의 최대 범위(L(k))를 결정하는 단계와, 여기서 L은 노드의 수로 측정되고;상기 차원 각각(k=1...n)을 따라, 바이너리 형식에서 순차적으로 번호가 매겨진 좌표를 정의하는 단계와, 상기 좌표는 적어도 L(k)의 길이를 포괄하여, 각각의 노드는 n개의 차원들 각각에서의 각각의 좌표로 설명되며;각각의 차원(k = 1...n)을 따라, 2m(k) ≥ L(k)가 되도록 각각의 노드를 어드레싱하기 위해 m(k) 비트의 어드레스 부분을 배정하고, 그리고 각각의 m(k) 비트 어드레스 부분에서의 각각의 차원(k)을 따라 노드의 좌표를 저장하는 단계와; 그리고상기 어레이 내의 각각의 노드의 각각의 어드레스 부분에 대해, 각각의 제 1 방향을 값이 영(zero)인 임의의 비트들로 맵핑시키고, 그리고 각각의 제 2 방향을 값이 일(one)인 임의의 비트들로 맵핑시키는 단계를 수행하는 코드를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
- 프로세서 노드들의 어레이로서,각각의 노드는 상기 어레이 내에서의 노드들을 식별하는 각각의 로컬 노드 어드레스를 가지며, 각각의 로컬 노드 어드레스는 최상위로부터 최하위까지의 어드레싱 순위를 갖는 복수의 비트들을 포함하고, 각각의 노드는,각각의 라우팅 방향으로 상기 로컬 노드 어드레스의 각각의 비트를 맵핑시키는 맵핑 디바이스와; 그리고목적지 노드를 식별하는 목적지 노드 어드레스를 갖는 메시지를 수신하도록 된 스위치를 포함하고, 상기 스위치는,최상위 비정합 비트를 식별하기 위해 상기 로컬 노드 어드레스를 상기 목적지 노드 어드레스와 비교하는 비교 컴포넌트와; 그리고상기 로컬 노드 어드레스가 상기 목적지 노드 어드레스와 정합되지 않는 경우, 상기 맵핑 디바이스에 의해 상기 로컬 노드 어드레스의 상기 최상위 비정합 비트에 맵핑되는 방향으로 상기 메시지를 또 다른 노드에 라우팅하는 라우팅 컴포넌트를 포함하는 것을 특징으로 하는 프로세서 노드들의 어레이.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/717,621 | 2007-03-14 | ||
US11/717,621 US7962717B2 (en) | 2007-03-14 | 2007-03-14 | Message routing scheme |
PCT/GB2008/000880 WO2008110806A1 (en) | 2007-03-14 | 2008-03-13 | Message routing scheme |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100015586A KR20100015586A (ko) | 2010-02-12 |
KR101415286B1 true KR101415286B1 (ko) | 2014-07-04 |
Family
ID=39430991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020097021479A KR101415286B1 (ko) | 2007-03-14 | 2008-03-13 | 메시지 라우팅 방식 |
Country Status (8)
Country | Link |
---|---|
US (2) | US7962717B2 (ko) |
EP (1) | EP2140365B1 (ko) |
JP (1) | JP5398552B2 (ko) |
KR (1) | KR101415286B1 (ko) |
CN (1) | CN101689172B (ko) |
AT (1) | ATE492851T1 (ko) |
DE (1) | DE602008004130D1 (ko) |
WO (1) | WO2008110806A1 (ko) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9092212B2 (en) | 2007-05-31 | 2015-07-28 | James Arthur Dean Wallace Anderson | Processors |
GB0710377D0 (en) * | 2007-05-31 | 2007-07-11 | Univ Reading The | Processors |
US8122228B2 (en) * | 2008-03-24 | 2012-02-21 | International Business Machines Corporation | Broadcasting collective operation contributions throughout a parallel computer |
US8484440B2 (en) | 2008-05-21 | 2013-07-09 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
US8131975B1 (en) | 2008-07-07 | 2012-03-06 | Ovics | Matrix processor initialization systems and methods |
US8145880B1 (en) | 2008-07-07 | 2012-03-27 | Ovics | Matrix processor data switch routing systems and methods |
US8327114B1 (en) * | 2008-07-07 | 2012-12-04 | Ovics | Matrix processor proxy systems and methods |
US7958341B1 (en) | 2008-07-07 | 2011-06-07 | Ovics | Processing stream instruction in IC of mesh connected matrix of processors containing pipeline coupled switch transferring messages over consecutive cycles from one link to another link or memory |
US8151088B1 (en) * | 2008-07-08 | 2012-04-03 | Tilera Corporation | Configuring routing in mesh networks |
US8045546B1 (en) | 2008-07-08 | 2011-10-25 | Tilera Corporation | Configuring routing in mesh networks |
US8050256B1 (en) | 2008-07-08 | 2011-11-01 | Tilera Corporation | Configuring routing in mesh networks |
US8281053B2 (en) | 2008-07-21 | 2012-10-02 | International Business Machines Corporation | Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations |
NL2002799C2 (en) * | 2009-04-24 | 2010-10-26 | Univ Delft Tech | Data structure, method and system for address lookup. |
US9063825B1 (en) * | 2009-09-21 | 2015-06-23 | Tilera Corporation | Memory controller load balancing with configurable striping domains |
CN102130813B (zh) * | 2010-01-15 | 2016-08-03 | 华为技术有限公司 | 伪线建立方法、系统及设备 |
US8665727B1 (en) * | 2010-06-21 | 2014-03-04 | Xilinx, Inc. | Placement and routing for a multiplexer-based interconnection network |
US8910178B2 (en) | 2011-08-10 | 2014-12-09 | International Business Machines Corporation | Performing a global barrier operation in a parallel computer |
US9495135B2 (en) | 2012-02-09 | 2016-11-15 | International Business Machines Corporation | Developing collective operations for a parallel computer |
KR101506208B1 (ko) * | 2013-02-13 | 2015-03-26 | 라이트웍스 주식회사 | 네트워크 온 칩의 라우팅을 위한 이더넷 프리앰블 구성 방법 |
EP3047604B1 (en) | 2013-09-17 | 2021-03-24 | Cisco Technology, Inc. | Bit indexed explicit replication |
US10461946B2 (en) | 2013-09-17 | 2019-10-29 | Cisco Technology, Inc. | Overlay signaling for bit indexed explicit replication |
US9806897B2 (en) | 2013-09-17 | 2017-10-31 | Cisco Technology, Inc. | Bit indexed explicit replication forwarding optimization |
US10218524B2 (en) | 2013-09-17 | 2019-02-26 | Cisco Technology, Inc. | Bit indexed explicit replication for layer 2 networking |
US11451474B2 (en) | 2013-09-17 | 2022-09-20 | Cisco Technology, Inc. | Equal cost multi-path with bit indexed explicit replication |
US10003494B2 (en) | 2013-09-17 | 2018-06-19 | Cisco Technology, Inc. | Per-prefix LFA FRR with bit indexed explicit replication |
US9906378B2 (en) | 2015-01-27 | 2018-02-27 | Cisco Technology, Inc. | Capability aware routing |
US10341221B2 (en) | 2015-02-26 | 2019-07-02 | Cisco Technology, Inc. | Traffic engineering for bit indexed explicit replication |
US10116557B2 (en) | 2015-05-22 | 2018-10-30 | Gray Research LLC | Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network |
WO2017120270A1 (en) * | 2016-01-04 | 2017-07-13 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications |
US10630743B2 (en) | 2016-09-23 | 2020-04-21 | Cisco Technology, Inc. | Unicast media replication fabric using bit indexed explicit replication |
US10637675B2 (en) | 2016-11-09 | 2020-04-28 | Cisco Technology, Inc. | Area-specific broadcasting using bit indexed explicit replication |
US10496578B2 (en) | 2017-01-06 | 2019-12-03 | Samsung Electronics Co., Ltd. | Central arbitration scheme for a highly efficient interconnection topology in a GPU |
US10447496B2 (en) | 2017-03-30 | 2019-10-15 | Cisco Technology, Inc. | Multicast traffic steering using tree identity in bit indexed explicit replication (BIER) |
US10587534B2 (en) | 2017-04-04 | 2020-03-10 | Gray Research LLC | Composing cores and FPGAS at massive scale with directional, two dimensional routers and interconnection networks |
US10164794B2 (en) | 2017-04-28 | 2018-12-25 | Cisco Technology, Inc. | Bridging of non-capable subnetworks in bit indexed explicit replication |
CN109117333B (zh) * | 2018-09-29 | 2023-04-07 | 深圳比特微电子科技有限公司 | 计算芯片及其操作方法 |
CN116578522B (zh) * | 2023-07-13 | 2023-12-01 | 中电海康集团有限公司 | 基于众核架构的数据处理方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100221381B1 (ko) * | 1995-11-09 | 1999-09-15 | 포만 제프리 엘 | 웜홀 네트워크 및 웜홀 네트워크의 메시지 전송 방법 |
US20020018470A1 (en) | 2000-08-11 | 2002-02-14 | Peter Galicki | Datapipe routing bridge |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4814973A (en) | 1983-05-31 | 1989-03-21 | Hillis W Daniel | Parallel processor |
US4661947A (en) * | 1984-09-26 | 1987-04-28 | American Telephone And Telegraph Company At&T Bell Laboratories | Self-routing packet switching network with intrastage packet communication |
US4651318A (en) * | 1984-11-30 | 1987-03-17 | At&T Bell Laboratories | Self-routing packets with stage address identifying fields |
US4679189A (en) * | 1985-11-27 | 1987-07-07 | American Telephone And Telegraph Company | Alternate routing arrangement |
JP2635031B2 (ja) * | 1986-11-14 | 1997-07-30 | 株式会社日立製作所 | 並列計算機の相互結合方式 |
US5008882A (en) * | 1987-08-17 | 1991-04-16 | California Institute Of Technology | Method and apparatus for eliminating unsuccessful tries in a search tree |
JPH01126760A (ja) * | 1987-11-11 | 1989-05-18 | Toshiba Corp | 並列計算機システム |
US5422881A (en) * | 1989-06-30 | 1995-06-06 | Inmos Limited | Message encoding |
GB8915135D0 (en) * | 1989-06-30 | 1989-08-23 | Inmos Ltd | Message routing |
JPH05303558A (ja) * | 1991-12-13 | 1993-11-16 | Nec Corp | アレイプロセッサのメッセージパケットルーティング方法および装置 |
JPH06243113A (ja) * | 1993-02-19 | 1994-09-02 | Fujitsu Ltd | 並列計算機における計算モデルのマッピング法 |
JP3283319B2 (ja) * | 1993-03-02 | 2002-05-20 | 松下電器産業株式会社 | プロセサエレメント及び並列処理システム |
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 |
US5430729A (en) * | 1994-04-04 | 1995-07-04 | Motorola, Inc. | Method and apparatus for adaptive directed route randomization and distribution in a richly connected communication network |
US5539739A (en) * | 1994-09-29 | 1996-07-23 | Intel Corporation | Asynchronous interface between parallel processor nodes |
JPH08185380A (ja) * | 1994-12-28 | 1996-07-16 | Hitachi Ltd | 並列計算機 |
US5926101A (en) * | 1995-11-16 | 1999-07-20 | Philips Electronics North America Corporation | Method and apparatus for routing messages in a network of nodes with minimal resources |
US6272548B1 (en) * | 1995-07-28 | 2001-08-07 | British Telecommunications Public Limited Company | Dead reckoning routing of packet data within a network of nodes having generally regular topology |
US6842430B1 (en) * | 1996-10-16 | 2005-01-11 | Koninklijke Philips Electronics N.V. | Method for configuring and routing data within a wireless multihop network and a wireless network for implementing the same |
SE9604491L (sv) * | 1996-12-05 | 1998-06-06 | Ericsson Telefon Ab L M | Anordning och förfarande i överföringssystem |
US6226710B1 (en) * | 1997-11-14 | 2001-05-01 | Utmc Microelectronic Systems Inc. | Content addressable memory (CAM) engine |
US6230252B1 (en) * | 1997-11-17 | 2001-05-08 | Silicon Graphics, Inc. | Hybrid hypercube/torus architecture |
US6643764B1 (en) * | 2000-07-20 | 2003-11-04 | Silicon Graphics, Inc. | Multiprocessor system utilizing multiple links to improve point to point bandwidth |
US20030031126A1 (en) * | 2001-03-12 | 2003-02-13 | Mayweather Derek T. | Bandwidth reservation reuse in dynamically allocated ring protection and restoration technique |
US7027413B2 (en) * | 2001-09-28 | 2006-04-11 | Sun Microsystems, Inc. | Discovery of nodes in an interconnection fabric |
WO2003038645A2 (en) * | 2001-10-31 | 2003-05-08 | University Of Texas | A scalable processing architecture |
US7581081B2 (en) * | 2003-03-31 | 2009-08-25 | Stretch, Inc. | Systems and methods for software extensible multi-processing |
US7369561B2 (en) * | 2003-07-17 | 2008-05-06 | Samsung Electronics Co., Ltd. | Apparatus and method for route summarization and distribution in a massively parallel router |
WO2005024644A2 (en) * | 2003-09-09 | 2005-03-17 | Koninklijke Philips Electronics N.V. | Integrated data processing circuit with a plurality of programmable processors |
US7349981B2 (en) * | 2003-12-18 | 2008-03-25 | Intel Corporation | System, apparatus, and method for string matching |
CN100377065C (zh) * | 2006-04-19 | 2008-03-26 | 华中科技大学 | 一种超大容量的虚拟磁盘存储系统 |
US20100250784A1 (en) * | 2009-03-26 | 2010-09-30 | Terascale Supercomputing Inc. | Addressing Scheme and Message Routing for a Networked Device |
-
2007
- 2007-03-14 US US11/717,621 patent/US7962717B2/en active Active
-
2008
- 2008-03-13 CN CN2008800149822A patent/CN101689172B/zh active Active
- 2008-03-13 KR KR1020097021479A patent/KR101415286B1/ko active IP Right Grant
- 2008-03-13 EP EP08718722A patent/EP2140365B1/en active Active
- 2008-03-13 JP JP2009553208A patent/JP5398552B2/ja active Active
- 2008-03-13 WO PCT/GB2008/000880 patent/WO2008110806A1/en active Application Filing
- 2008-03-13 DE DE602008004130T patent/DE602008004130D1/de active Active
- 2008-03-13 AT AT08718722T patent/ATE492851T1/de not_active IP Right Cessation
-
2010
- 2010-11-18 US US12/949,690 patent/US8185719B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100221381B1 (ko) * | 1995-11-09 | 1999-09-15 | 포만 제프리 엘 | 웜홀 네트워크 및 웜홀 네트워크의 메시지 전송 방법 |
US20020018470A1 (en) | 2000-08-11 | 2002-02-14 | Peter Galicki | Datapipe routing bridge |
Also Published As
Publication number | Publication date |
---|---|
EP2140365B1 (en) | 2010-12-22 |
US8185719B2 (en) | 2012-05-22 |
US20080229059A1 (en) | 2008-09-18 |
JP2010521731A (ja) | 2010-06-24 |
US7962717B2 (en) | 2011-06-14 |
JP5398552B2 (ja) | 2014-01-29 |
KR20100015586A (ko) | 2010-02-12 |
WO2008110806A8 (en) | 2009-11-19 |
CN101689172A (zh) | 2010-03-31 |
ATE492851T1 (de) | 2011-01-15 |
CN101689172B (zh) | 2012-03-28 |
DE602008004130D1 (de) | 2011-02-03 |
EP2140365A1 (en) | 2010-01-06 |
WO2008110806A1 (en) | 2008-09-18 |
US20110066825A1 (en) | 2011-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101415286B1 (ko) | 메시지 라우팅 방식 | |
US8462777B2 (en) | System and method for implementing a multistage network using a two-dimensional array of tiles | |
US8248925B2 (en) | Method and apparatus for selecting between multiple equal cost paths | |
US6078963A (en) | Router with de-centralized processing using intelligent ports | |
US20120063459A1 (en) | Packet routing | |
KR20030082598A (ko) | 클래스 네트워크 라우팅 | |
US9929977B2 (en) | Fast scheduling and optimization of multi-stage hierarchical networks | |
US8415976B1 (en) | Optimized interconnection networks | |
US6549954B1 (en) | Object oriented on-chip messaging | |
CN108123901A (zh) | 一种报文传输方法和装置 | |
JP2014509145A (ja) | 等コストマルチパス・パケット交換ネットワークでの次ホップ計算関数 | |
EP2297905A1 (en) | Cascaded memory tables for searching | |
EP3278520B1 (en) | Distributed routing table system with improved support for multiple network topologies | |
CN106250351A (zh) | 具有集成的搜索引擎的硬件可编程设备 | |
US7366166B2 (en) | Data switching using soft configuration | |
US8665727B1 (en) | Placement and routing for a multiplexer-based interconnection network | |
CN110825689B (zh) | 电子芯片的实现方法及电子芯片 | |
US20210014156A1 (en) | Network routing using aggregated links | |
CN111771361B (zh) | 分层交换设备、在分层交换设备中切换分组的方法与介质 | |
JAHNAVI et al. | Improving the Performance of NOC by using Content-Addressable Memory (CAM) | |
Mahanta et al. | An architecture based routing for heterogeneous fat tree network on chip | |
Chi et al. | Design and implementation of a routing switch for irregular interconnection networks |
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: 20170601 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180529 Year of fee payment: 5 |