KR101802810B1 - 하이브리드 회선 교환 및 패킷 교환 라우터의 아키텍처 및 그 방법 - Google Patents

하이브리드 회선 교환 및 패킷 교환 라우터의 아키텍처 및 그 방법 Download PDF

Info

Publication number
KR101802810B1
KR101802810B1 KR1020167003253A KR20167003253A KR101802810B1 KR 101802810 B1 KR101802810 B1 KR 101802810B1 KR 1020167003253 A KR1020167003253 A KR 1020167003253A KR 20167003253 A KR20167003253 A KR 20167003253A KR 101802810 B1 KR101802810 B1 KR 101802810B1
Authority
KR
South Korea
Prior art keywords
router
packet
logic
switched
network
Prior art date
Application number
KR1020167003253A
Other languages
English (en)
Other versions
KR20160030550A (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 KR20160030550A publication Critical patent/KR20160030550A/ko
Application granted granted Critical
Publication of KR101802810B1 publication Critical patent/KR101802810B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6402Hybrid switching fabrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/251Cut-through or wormhole routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload

Abstract

네트워크 통신을 위해 회선 교환 라우팅 및 패킷 교환 라우팅을 수행하는 기술 및 메커니즘이 기술된다. 실시예에서, 라우터는 라우터에 의해 수신된 패킷의 제어 정보를 평가하며, 그 평가는 패킷이 측파대 전달을 위한 데이터를 포함하는지를 검출한다. 그 평가에 기초하여, 라우터는 라우터의 복수의 모드 중에서 선택을 수행하며, 복수의 모드는 네트워크에서 측파대 데이터의 패킷 교환 전달을 위해 패킷을 라우팅하는 제 1 모드를 포함한다. 복수의 모드는 또한 패킷에 따라서 회선 교환 채널을 구성하는 제 2 모드를 포함한다. 다른 실시예에서, 라우터는 계층 네트워크에서 패킷을 라우팅하는 방향을 결정하며, 방향의 결정은 계층 네트워크의 계층에서의 라우터 레벨에 기초한다.

Description

하이브리드 회선 교환 및 패킷 교환 라우터의 아키텍처 및 그 방법{ARCHITECTURE AND METHOD FOR HYBRID CIRCUIT-SWITCHED AND PACKET-SWITCHED ROUTER}
본 개시는 컴퓨팅 시스템에 관한 것으로, (배타적이지 않지만) 상세하게는 네트워크 온 칩(network-on-chip)의 통신에 관한 것이다.
한정된 전력의 컴퓨팅 환경에서 집적 밀도가 지속적으로 증가함에 따라, 멀티 코어 프로세서는 줄어든 전압 및 주파수에서 병렬 처리를 통해 전력 효율 대비 증가된 성능을 제공하고 있다. 코어의 개수가 증가함에 따라 코어들 간의 온 다이 통신(on-die communication)을 위한 인터커넥트 네트워크와 같은 인터커넥트 네트워크가 스케일러블한 성능을 가능하게 해주는 열쇠이다. 회선 교환 네트워크(circuit-switched network)는 중간 버퍼링 또는 중재에 대한 요구없이 데이터 전송 동안 전용 채널을 제공한다. 이것은 패킷 교환 네트워크(packet-switched network)와 비교하여 볼 때 - 적어도 데이터 저장 클럭 전력을 줄임으로써 - 낮은 전력 소비와 높은 처리량을 꾀할 수 있다. 그 결과, 패킷 교환 네트워크는 특히 더 작은 비트 폭 메시지에 대해 더 높은 자원 활용을 성취할 수 있다.
그러나 버퍼링 및 중재를 피함으로써, 전용 채널 자원은 데이터 전송 전에 예약되어야 하며, 아마도 이것은 더욱 최적한 다른 데이터 전송이 이루어지지 못하게 한다. 미리 예정된 소스 지향 라우팅 방식(pre-scheduled source-directed routing scheme)과 달리, 분산 라우팅 방식은 미리 정의된 트래픽 패턴이나 애플리케이션으로 한정되지 않고, 미완의 실시간 정보에 기초하여 패킷 라우트 및 자원 예약을 위한 우선순위를 결정한다.
그뿐만 아니라, 메시 및 계층 트리(hierarchical tree)(계층 스타라고도 지칭함)와 같은 네트워크 토폴로지는 전체 전력 대 대역폭에서 상이한 상쇄 관계를 제공한다. 메시 네트워크는 거리가 증가함에 따라서 성능 저하가 점차적으로 많아지는 균일한 트래픽 분포를 선호한다. 계층 스타 토폴로지는 전체 라우터 홉 카운트를 줄임으로써 더 많은 로컬 트래픽에 상대적으로 개선된 성능을 제공한다. 미래의 집적된 네트워크 온 칩(network-on-chip, NoC) 애플리케이션의 다양한 요구사항은 상이한 토폴로지 및 효율성 상쇄관계의 복수의 온 다이 네트워크를 이용한 이종의 접근방법을 제안한다.
본 발명의 다양한 실시예는 첨부의 도면에서 한정하지 않고 예제를 통해 예시된다.
도 1은 실시예에 따라서 라우팅을 수행하는 메시 네트워크의 요소를 예시하는 레이아웃 다이어그램이다.
도 2는 실시예에 따라서 라우팅을 수행하는 계층 네트워크의 요소를 예시하는 레이아웃 다이어그램이다.
도 3a는 실시예에 따라서 라우터를 동작하기 위한 방법의 요소를 예시하는 흐름도이다.
도 3b는 실시예에 따라서 패킷 데이터를 라우팅하기 위한 방법의 요소를 예시하는 흐름도이다.
도 4a는 실시예에 따라서 라우터 디바이스의 요소를 예시하는 블록도이다.
도 4b는 실시예에 따라서 포트 교환 및 회선 교환을 제공하는 라우터 회로의 요소를 예시하는 블록도이다.
도 4c는 실시예에 따라서 라우터 포트의 요소를 예시하는 블록도이다.
도 5a는 실시예에 따라서 회선 교환 네트워크 경로를 구성하는 통신 요소를 예시하는 블록도이다.
도 5b는 실시예에 따라서 회선 교환 네트워크 경로를 구성하는 통신 요소를 예시하는 시퀀스 다이어그램이다.
도 5c는 실시예에 따라서 네트워크 메시지전달의 요소를 예시하는 블록도이다.
도 6은 실시예에 따라서 회선 교환 네트워크 경로를 구성하는 회로의 요소를 예시하는 블록도이다.
도 7은 실시예에 따라서 패킷 정보에 기초하여 라우팅을 수행하는 회로의 요소를 예시하는 블록도이다.
도 8a는 실시예에 따라서 메시 네트워크에서 패킷 교환 라우팅을 위한 회로의 요소를 예시하는 블록도이다.
도 8b는 실시예에 따라서 메시 네트워크에서 패킷 교환 라우팅을 위한 회로의 요소를 예시하는 회로도이다.
도 9는 실시예에 따라서 계층 네트워크에서 패킷 교환 라우팅을 위한 회로의 요소를 예시하는 블록도이다.
도 10은 실시예에 따라서 계층 네트워크에서 동작하는 중계기 회로의 요소를 예시하는 블록도이다.
본 출원에서 논의되는 실시예는 네트워크에서 정보의 회선 교환 라우팅 및 패킷 교환 라우팅 둘 다를 위한 기술 및/또는 메커니즘을 다양하게 제공한다. 실시예에서, 라우터는 패킷 교환 네트워크를 통해 패킷의 적어도 일부를 수신하도록 구성된 자원을 포함한다. 그러한 패킷 교환 정보(packet-switched information)에 기초하여, 라우터는 네트워크의 소스 노드와 네트워크의 목적지 노드 사이에서 다른 데이터가 라우터와 교환될 회선 교환 경로 중 적어도 일부를 구성하는 모드에서 동작할 수 있다. 대안으로, 라우터는 네트워크의 패킷 교환 측파대 채널에서 데이터를 전달하기 위해 패킷을 라우팅하는 대신 - 예를 들면, 패킷 정보에 기초하여 회선 교환 경로의 적어도 일부분을 구성하지 않고 - 수신된 패킷 내 정보에 기초하여 상이한 모드에서 동작할 수 있다. 그러한 측파대 채널은 예를 들면, 라우터에 의해 회선 교환 통신과 동반될 수 있다. 실시예에서, 네트워크의 회선 교환 경로를 임의로 구성하는 것은 측파대 채널에서 전달된 데이터와 무관할 수 있다.
도 1은 예시적인 구성에 따라서 인트라 다이 통신(intra-die communication)을 제공하는 패킷 교환 네트워크 및 회선 교환 네트워크 중 어느 한 네트워크로서 동작하는 회로 로직을 포함하는 복수의 코어를 포함하는 다이를 도시한다. 다른 구성이 또한, 상이한 실시예에 따라서 사용될 수 있다.
구체적으로, 도 1은 각각의 라우터(11, 21, 31, 41, 51, 61, 71, 81, 91)를 포함하거나 각각의 라우터에 연결된 복수의 코어(12, 22, 32, 42, 52, 62, 72, 82, 92)를 포함하는 다이(100)를 도시한다. 그러므로 다이(100)는 복수 코어 다이라고 간주된다. 비록 코어가 상이하게 구성되거나 배열될 수 있을지라도, 다이(100)는 격자(grid)처럼 구성되거나 배열된 멀티 코어를 도시한다. 코어는 패킷 교환 네트워크 및/또는 회선 교환 네트워크와 같은 다이(100)의 네트워크에서 제공될 수 있거나 네트워크에서 통신할 수 있다.
라우터(11, 21, 31, 41, 51, 61, 71, 81, 91)는 코어(12, 22, 32, 42, 52, 62, 72, 82, 및 92) 간의 통신을 위해 인터커넥트(14, 16, 24, 26, 34, 44, 46, 54, 56, 64, 74 및 84)에 의해 함께 연결될 수 있다. 구체적으로, 라우터(11)는 인터커넥트(14)에 의해 라우터(21)에 연결될 수 있으며, 라우터(11)는 인터커넥트(16)에 의해 라우터(41)에 연결될 수 있다. 라우터(21)는 인터커넥트(24)에 의해 라우터(31)에 연결될 수 있으며, 라우터(21)는 인터커넥트(26)에 의해 라우터(51)에 연결될 수 있다. 또한 라우터(31)는 인터커넥트(34)에 의해 라우터(61)에 연결될 수 있다. 라우터(41)는 인터커넥트(44)에 의해 라우터(51)에 연결될 수 있으며, 라우터(41)는 인터커넥트(46)에 의해 라우터(71)에 연결될 수 있다. 라우터(51)는 인터커넥트(54)에 의해 라우터(61)에 연결될 수 있으며, 라우터(51)는 인터커넥트(56)에 의해 라우터(81)에 연결될 수 있다. 또한 라우터(61)는 인터커넥트(64)에 의해 라우터(91)에 연결될 수 있다. 라우터(71)는 또한 인터커넥트(74)에 의해 라우터(81)에 연결될 수 있으며, 라우터(81)는 인터커넥트(84)에 의해 라우터(91)에 연결될 수 있다.
도 1에서, 패킷은 패킷 교환 네트워크의 자원을 이용하여 여러 라우터 사이에서 전달될 수 있다. 즉, 패킷 교환 네트워크는 라우터(및 라우터의 연관 코어) 사이의 통신을 제공할 수 있다. 패킷은 제어 부분과 데이터 부분을 포함할 수 있다. 제어 부분은 패킷의 목적지 어드레스를 포함할 수 있으며, 데이터 부분은 다이(100) 상에서 전달될 특정 데이터를 포함할 수 있다. 예를 들면, 제어 부분은 다이의 코어들 중 하나의 코어에 대응하는 목적지 어드레스를 포함할 수 있다. 패킷 교환 네트워크는 소스에서부터 목적지에 이르기까지 전용 경로가 보장되지 않기 때문에 버퍼링하는 것을 포함할 수 있고 그래서 둘 이상의 패킷이 동일한 링크 또는 인터커넥트를 지나가야 한다면 패킷은 일시적으로 중단되어야 할 수 있다.
패킷 교환 네트워크에서, 패킷이 소스에서 목적지로 이동할 때 패킷은 각각의 라우터에서 버퍼링될 수 있다. 패킷은 각각의 코어의 (또는 각각의 코어와 연관된) 라우터에서 각기 수신되고, 전달되고 처리될 수 있다. 예를 들면, 도 1은 코어(62)의 라우터(61)의 두 컴포넌트, 즉 제어 부분 컴포넌트(61a) 및 데이터 부분 컴포넌트(61b)를 도시한다. 비록 컴포넌트(61a 및 61b)가 라우터의 별개의 요소로서 도시될지라도, 컴포넌트(61a 및 61b)는 하나의 컴포넌트로서 제공될 수 있다.
제어 부분 컴포넌트(61a)는 패킷이 코어의 라우터를 통과할 때 패킷의 제어 부분을 버퍼링하기 위해 직렬 연결된 복수의 플립플롭(66a)을 포함할 수 있다. 플립플롭(66a)의 첫 플립플롭은 다른 코어에서 배치된 다른 라우터로부터 패킷의 제어 부분을 수신할 수 있고, 한 라우터의 플립플롭(66a)의 마지막 플립플롭은 패킷의 제어 부분을 (다른 코어 상의) 다른 라우터에 제공할 수 있다.
데이터 부분 컴포넌트(61b)는 패킷이 코어의 라우터를 통과할 때 패킷의 데이터 부분을 버퍼링하기 위해 직렬 연결된 복수의 플립플롭(66b)을 포함할 수 있다. 플립플롭(66b)의 첫 플립플롭은 다른 코어에서 배치된 다른 라우터로부터 패킷의 데이터 부분을 수신할 수 있고, 라우터의 플립플롭(66b)의 마지막 플립플롭은 패킷의 데이터 부분을 (코어들 중 다른 코어 상의) 다른 라우터에 제공할 수 있다.
패킷 교환 네트워크는 컴포넌트(61a 및 61b)의 플립플롭(66a 및 66b)을 이용하여 각 라우터에서 패킷을 버퍼링할 수 있다. 패킷 교환 네트워크는 이웃 라우터들 사이에서 포인트-투-포인트 통신을 사용할 수 있다. 패킷의 제어 부분은 4GHz 클럭과 같은 패킷 클럭에 기초하여 라우터들 사이에서 전달될 수 있다. 패킷의 데이터 부분은 4GHz 클럭과 같은 유사한 클럭에 기초하여 라우터들 사이에서 전달될 수 있다. 패킷 교환은 라우팅할 때 융통성이 있지만, 패킷 교환은 각 라우터에서 패킷을 버퍼링할 필요성과 연관되어 많은 전력을 소비할 수 있다.
실시예에서, 다이(100)의 라우터는 패킷 교환 네트워크 및 회선 교환 네트워크와 같은, 두 네트워크에서 다양하게 제공될 수 있거나 두 네트워크에서 통신할 수 있다. 도 1에서, 패킷은 패킷 교환 네트워크의 자원을 이용하여 그리고 회선 교환 네트워크의 자원을 이용하여 각종 라우터(11, 21, 31, 41, 51, 61, 71, 81, 91) 사이에서 다양하게 전달될 수 있다.
도 1은 또한 데이터의 회선 교환 라우팅을 위한 라우터(61)의 제어 부분 컴포넌트(61c)를 도시한다. 비록 도 1이 컴포넌트(61a, 61c)를 라우터(61)의 별개의 요소로서 도시할지라도, 컴포넌트(61a, 61c)는 실시예에서 하나의 컴포넌트로서 제공될 수 있다. 데이터 부분 컴포넌트(61c)는 이웃 코어로부터(예를 들면, 이들 코어의 연관 라우터로부터) 패킷의 데이터 부분을 수신하고 그 데이터 부분을 다른 이웃 코어(라우터)에 제공하는 멀티플렉서(68)를 포함할 수 있다. 이와 같이, 데이터 부분 컴포넌트(61c)는 (패킷 교환 네트워크의) 플립플롭(66b)을 활용하지 않을 수 있다. 따라서 회선 교환 네트워크는 각각의 코어에서 데이터 패킷을 버퍼링하지 않을 수 있다. 패킷 교환 네트워크 및 회선 교환 네트워크는 둘 다 멀티플렉서를 사용할 수 있다.
예를 들면, 패킷의 제어 부분은 그 패킷의 대응하는 데이터 부분을 동시에 전송하지 않고 소스 코어의 (또는 소스 코어에 대한) 라우터로부터 목적지 코어의 (또는 목적지 코어에 대한) 라우터로 전송될 수 있다. 패킷의 제어 부분의 전송은 패킷 교환 네트워크의 자원을 활용할 수 있다. 제어 부분이 목적지 코어의 라우터에서 수신되면, 회선 교환 네트워크의 자원을 활용하여 확인응답(acknowledgement) 신호 (또는 메시지)가 그 라우터로부터 소스 코어의 라우터로 전송될 수 있다. 그러면 소스 코어는 회선 교환 네트워크의 자원을 활용하여 소스 코어로부터 목적지 코어로 패킷의 데이터 부분을 전송할 수 있다.
다이(100)는 두 네트워크의 자원을 활용하기 때문에, 상이한 클럭 속도가 사용될 수 있고, 이는 낮은 전력 소비에 이르게 한다. 예를 들면, 패킷의 제어 부분은 패킷 교환 클럭에 대응하는 4GHz 클럭과 같은 패킷 클럭에 기초하여 다이(100)의 코어들 사이에서 전달될 수 있다. 패킷의 데이터 부분은 회선 교환 클럭에 대응하는 1 GHz 클럭과 같은 상이한 느린 클럭에 기초하여 다이(100)의 코어들 사이에서 전달될 수 있다.
각각의 제어 부분(또는 요청)이 각각의 라우터/인터커넥트 세그먼트를 통과할 때, 닥쳐오는 패킷의 데이터 부분을 위해 그 세그먼트(즉, 대응하는 인터커넥트)에 필요한 대응하는 데이터 채널이 할당될 수 있다. 그러므로, 제어 부분이 목적지 코어 라우터에 도달할 때, 닥쳐오는 패킷의 데이터 부분을 위한 완전한 채널 또는 회선이 설정될 수 있다. 이러한 채널은 그 방향을 따라 놓인 각 라우터에서 각각의 멀티플렉서 및/또는 중계기(명시적으로 도시되지 않음)를 가진 목적지 코어(또는 그의 연관된 라우터)에서만 존재하는 래치 요소 또는 저장 요소를 활용할 수 있다.
제어 부분을 수신하면, 목적지 코어(및/또는 그의 연관된 라우터)는 단일의 확인응답 신호(또는 메시지를) 반대로 소스로 전송하며, 그럼으로써 목적지에서 데이터를 수신할 준비가 되었다고 표시할 수 있다. 소스가 이러한 확인응답 신호를 수신할 때, 소스는 데이터를 그의 출력으로 보낼 수 있다. 데이터는 경로를 따라서 놓인 상태 요소에 의한 인터럽트 없이 소스 노드로부터 목적지 노드로 전파될 수 있다.
도 1은 또한 부분(61c)을 통해 데이터의 교환과 동시적으로 일어나거나 아니면 그 데이터의 교환에 추가하여 일어나는 다른 데이터(본 출원에서는 측파대 데이터(sideband data)라고 지칭함)의 패킷 교환 라우팅을 위한 라우터(61)의 측파대 데이터 부분 컴포넌트(61d)를 도시한다. 특정 실시예에서, 대안으로 부분(61d)을 통한 측파대 데이터의 교환은 부분(61b)을 통한 데이터 교환과 동시적으로 일어날 수 있다. 비록 도 1이 컴포넌트(61a, 61d)를 별개의 요소로서 도시할지라도, 컴포넌트(61a, 61d)는 실시예에서 하나의 컴포넌트로서 제공될 수 있다.
측파대 데이터 부분 컴포넌트(61d)는 패킷이 코어의 라우터를 통과할 때 제어 부분 및 데이터 부분을 포함하는 패킷을 버퍼링하도록 직렬 연결된 복수의 플립플롭(66d)을 포함할 수 있다. 플립플롭(66d)의 첫 플립플롭은 다른 코어에서 배치된 또는 다른 코어에 속한 다른 라우터로부터 패킷을 수신할 수 있고, 한 라우터의 플립플롭(66d) 중 마지막 플립플롭은 패킷을 (다른 코어 상의) 다른 라우터로 제공할 수 있다. 패킷 교환 네트워크는 컴포넌트(61d) 내 플립플롭(66d)을 이용하여 각각의 라우터에서 패킷을 버퍼링할 수 있다. 패킷 교환 네트워크는 측파대 데이터를 교환하기 위해 이웃 라우터들 사이에서 포인트-투-포인트 통신을 사용할 수 있다.
단일의 데이터 패킷을 전송하기 위해, 회선 교환 네트워크는 전체 경로를 할당할 수 있는데 반해, 패킷 교환 네트워크는 오직 단일의 세그먼트(또는 인터커넥트)만을 할당할 수 있다. 이것은 처리량에서 차이를 낳는다. 이러한 처리량 차이를 보상하기 위해, 회선 교환 네트워크의 데이터 비트 폭은 동일한 처리량의 결과를 가져오도록 증가될 수 있다.
도 2는 다이(100)의 메시 토폴로지에 대한 대안의 토폴로지를 포함하는 실시예에 따른 다이의 요소를 예시한다. 구체적으로, 도 2는 계층(계층 트리 또는 계층 스타라고도 지칭함) 토폴로지를 포함하는 다이(200)를 도시한다. 한정하지 않는 예시로서, 다이(200)는 패킷을 네트워크 계층 아래를 향해 몇몇 복수의 네트워크 노드로 (및/또는 복수의 네트워크 노드로부터 네트워크 계층 위를 향해) 다양하게 라우팅하는 라우터(R0)를 포함할 수 있다. 그러한 복수의 네트워크 노드는 하나 이상의 코어 및/또는 예시적인 라우터(R1, R2, R3, R4)로 표시된 바와 같은 하나 이상의 라우터의 임의의 다양한 조합을 포함할 수 있다.
라우터(R1)는 패킷을 네트워크 계층 아래를 향해 다이(200)의 코어(c11, c12, c13, c14)로 (및/또는 그 코어로부터 네트워크 계층 위를 향해) 다양하게 라우팅하도록 구성될 수 있다. 라우터(R2)는 패킷을 네트워크 계층 아래를 향해 다이(200)의 코어(c11, c12, c13, c14)로 (및/또는 그 코어로부터 네트워크 계층 위를 향해) 다양하게 라우팅하도록 구성될 수 있다. 라우터(R3)는 패킷을 네트워크 계층 아래를 향해 다이(200)의 코어(c31, c32, c33, c34)로 (및/또는 그 코어로부터 네트워크 계층 위를 향해) 다양하게 라우팅하도록 구성될 수 있다. 라우터(R4)는 패킷을 네트워크 계층 아래를 향해 다이(200)의 코어(c41, c42, c43, c44)로 (및/또는 그 코어로부터 네트워크 계층 위를 향해) 다양하게 라우팅하도록 구성될 수 있다. 다이(200)는 등급 4의 계층의 일 예를 예시하며, 이러한 계층에서 노드(예를 들면, 라우터)는 각기 계층에서 하위의 각각의 인접한 네 개의 노드 모두와 연결한다. 이것은 각자가 계층에서 상위의 각각의 인접한 노드에도 연결하는 5-포트 라우터로 구현될 수 있다. 그러나, 상이한 실시예에 따라서 추가 등급 또는 이와 다른 등급의 계층이 다이(200)에서 제공될 수 있다.
다이(100)와 유사하게, 다이(200)의 코어 및 라우터는 패킷 교환 네트워크 및/또는 회선 교환 네트워크와 같은 다이(200)의 네트워크에서 제공될 수 있거나 네트워크에서 통신할 수 있다. 예를 들면, 라우터(R0, R1, R2, R3, R4) 중 일부 또는 모두는 각기 컴포넌트(61a, 61b, 61c, 61d)의 기능성을 제공하는 각자의 회로를 포함할 수 있다.
비록 계층으로서 네트워크를 형성하고 있지만, 다이(200)의 라우터 및 코어는 도 2에서 도시된 바와 같이 서로에 대해 격자 모양의 패턴으로 배열될 수 있다. 예를 들면, 계층에서 각각의 최저 레벨 라우터는 인접 코어들의 중앙에 배치될 수 있다. 대안으로 또는 부가적으로, 계층적 레벨 n+1에서 라우터는 다음 순위의 하위 계층 레벨 n에 있는 인접한 노드들의 중앙에 배치될 수 있다. 이러한 구현은 총 배선 길이를 줄이며 규칙적인 라우팅 패턴을 생성한다. 그러한 배열은 예를 들면, 코어/라우터 사이에서 라우트가 상대적으로 더 작은 홉 카운트를 갖게 함으로써 비교적 집중된 트래픽 패턴에 효과적인 라우팅을 제공한다. 예를 들면, 등급 4 계층에서 홉 카운트는 (로그 4N)의 순서에 의거하여 조정하며, 여기서 N은 네트워크에서 코어의 개수이다. 메시 네트워크의 경우 (sqrt N)의 조정 순서보다 적은 그러한 홉 카운트 조정은 큰 N을 가진 코어가 많은 네트워크에는 상당하게 조정된다. 그러나, 계층의 상위 레벨에서, 계층 레벨 간의 인터커넥트 길이는 증가할 수 있다. 더 긴 채널을 지나감으로써 생기는 증가된 지연을 수용하기 위해, 다이(200)에는 - 예를 들면, 최저 레벨의 채널 - 예를 들면, 라우터(R1)를 다양하게 C11, C12, C13, C14에 연결하는 채널 중 임의의 채널 - 의 길이와 대등한 간격마다 - 연이은 중계기가 포함될 수 있다.
도 10은 예시적인 실시예에 따른 하나의 그러한 중계기(1000)의 요소를 예시한다. 중계기(1000)에서, 입력 포트(PS Packet_in)(1030)는 - 예를 들면, 래치 및 플립플롭의 동작이 제어 신호 입력(Hold_in)(1020), 제어 신호 출력 (Hold_out)(1025) 및 패킷 클럭 신호(PClk)(1010)에 의해 제어되는 - 래치 및 플립플롭 로직을 통해 출력 포트(PS Packet_out)(1035)에 연결된다. 실시예에서, PS Packet_in(1030)을 통해 수신된 패킷은 오직 PS Packet_out(1035)으로 출력될 수 있다. 예시적인 중계기(1000)에서, Packet_in(1030)은 - 예를 들면, 열한 개(11) 어드레스 및/또는 제어 신호 라인과 임의의 측파대 데이터를 수용하는 32비트의 신호 라인을 포함하여 - 그러한 패킷을 위한 사십삼(43)개의 신호 라인을 포함할 수 있다(여기서 데이터 패킷은 그러한 측파대 데이터의 전달을 위한 데이터 패킷이다).
도 3a는 실시예에 따라서 네트워크 통신을 제공하기 위한 방법(300)의 요소를 예시한다. 방법(300)은 다이(100)의 메시 네트워크의 특징 및/또는 다이(200)의 계층 네트워크의 특징 중 일부 또는 모두를 포함하는 네트워크에서 통신을 위해 수행될 수 있다. 예를 들면, 방법(300)의 일부 또는 모든 동작은 라우터(61)의 기능성과 같은 기능성을 가진 네트워크 노드에 의해 수행될 수 있다.
방법(300)은 (305)에서, 라우터의 입력 포트에서 패킷 - 패킷은 제어 정보를 포함함 - 을 수신하는 단계를 포함할 수 있다. 실시예에서, 패킷은 다른 라우터로부터 입력 포트의 제 1 입력 부분을 통해 수신된다. 패킷의 제어 정보는 예를 들면, 패킷이 측파대 전달을 위한 데이터를 포함하는지를 명시하는 측파대 인에이블 신호(값)을 포함할 수 있다. 그러한 측파대 데이터는 예를 들면, 회선 교환 네트워크 경로의 구성을 제어하기 위해 교환될 수 있는 제어 정보와 구별될 것이다. 대안으로 또는 부가적으로, 패킷의 제어 정보는 제 1 입력 부분에다 유효 패킷의 존재를 표시하는 유효 신호(값)을 포함할 수 있다.
방법(300)은 (310)에서, 제 2 라우터로부터 입력 포트의 제 2 입력 부분을 통해 제 1 데이터를 수신하는 단계를 더 포함할 수 있다. 실시예에서, 입력 포트의 제 1 입력 부분 및 제 2 입력 부분은 패킷 교환 정보(예를 들면, 패킷)를 다양하게 수신하고 회선 교환된 데이터를 다양하게 수신한다. 라우터의 동작 모드에 따라서, 제 1 입력 부분을 통해 수신된 패킷 교환 정보는 라우터에 의한 회선 교환 라우팅을 구성하기 위한 근거를 제공할 수 있거나 또는 대신에 측파대 데이터를 전달하기 위해 라우터로부터 패킷 교환 라우팅될 수 있다.
예를 들면, 방법(300)은 (315)에서, 예를 들면 측파대 데이터의 존재가 표시되는지를 검출하기 위해 패킷의 제어 정보를 평가하는 단계를 포함할 수 있다. 실시예에서, (315)에서 평가는 패킷의 측파대 인에이블 신호의 평가를 포함한다. 한정하지 않는 예로서, 라우터의 회로 로직은 측파대 인에이블 신호 및 패킷의 데이터 유효 신호에 기초하여 불린(Boolean) AND 연산을 평가할 수 있다.
(315)에서의 평가에 기초하여, 방법(300)은 복수의 이용 가능한 모드 중에서 선택을 수행할 수 있다. 예를 들면, (315)에서의 평가가 측파대 데이터가 표시되어 있다고 검출할 때, 방법(300)은 (320)에서 라우터로부터 패킷 교환 측파대 데이터를 전달하기 위해 패킷을 라우팅하는 라우터의 제 1 모드를 선택할 수 있다. 이와 반대로, (315)에서의 평가가 측파대 데이터가 표시되어 있지 않는다고 검출할 때, 방법(300)은 (325)에서 패킷에 따라서 회선 교환 채널을 구성하는 라우터의 제 2 모드를 선택할 것이다. 회선 교환 채널은 (310)에서 네트워크의 소스 노드와 네트워크의 목적지 노드 사이에서 수신되는 제 1 데이터의 전달을 위한 채널일 수 있다. (320)에서의 선택 단계 또는 (325)에서의 선택 단계는 그러한 선택을 표시하는 - 예를 들면, 선택된 모드의 구성을 개시하는 - 신호를 발생하는 라우터의 구성 로직을 포함할 수 있거나 아니면 그러한 라우터의 구성 로직을 구성할 수 있다.
예를 들면, 본 출원에서 논의되는 바와 같이, 회선 교환 채널의 적어도 일부를 구성하는 라우터의 로직은 회선 교환 채널의 그 부분에 대한 방향의 결정 및/또는 전달을 위해 동작하는 회로를 포함할 수 있다. 그러한 실시예에서, (320)에서 제 1 모드의 선택은 그러한 회로를 선택적으로 디스에이블하는 것 및/또는 그러한 회로에 입력을 제공하는 것을 포함할 수 있다. 대안으로 또는 부가적으로, (325)에서 제 2 모드의 선택은 그러한 회로를 선택적으로 인에이블하는 것 및/또는 그러한 회로에 입력을 제공하는 것을 포함할 수 있다.
도 3b는 실시예에 따라서 네트워크 통신을 제공하기 위한 방법(350)의 요소를 예시한다. 방법(350)의 일부 또는 모든 동작은 다이(200)의 라우터(R0, R1, R2, R3, R4) 중 한 라우터에 의해 제공되는 기능성과 같은 기능성을 가진 네트워크 노드에 의해 수행될 수 있다. 예를 들면, 방법(350)은 역시 방법(300)을 수행하는 라우터(또는 그러한 라우터를 포함하는 코어)에 의해 수행될 수 있다.
실시예에서, 방법(350)은 (355)에서, 라우터의 입력 포트에서 다른 라우터로부터 패킷을 수신하는 단계를 포함하며, 이때 패킷은 목적지 어드레스를 포함하며, 목적지 어드레스의 제 1 어드레스 값은 총 n 비트를 포함한다. 목적지 어드레스는 패킷의 목적지 노드 - 예를 들면, 목적지 노드는 (355)에서 패킷을 수신하는 노드를 가진 계층 네트워크에 있음 - 의 어드레스를 포함할 수 있다. 예를 들면, 그러한 계층 네트워크의 계층은 라우터를 포함하는 레벨 N 및 계층에서 레벨 N보다 낮은 레벨 N-1을 포함할 수 있다. 레벨 N-1은 - 예를 들면, 라우터를 통해 계층의 레벨 N과 각기 통신하는 - 각종의 코어 및/또는 라우터 중 임의의 것을 포함하는 복수의 노드를 포함할 수 있다. 그러한 실시예에서, 라우터는 그러한 복수의 노드들의 배열의 중앙에 배치될 수 있다. 그러한 배열은 예를 들면, 라우터(R0)의 주변 라우터(R1, R2, R3, R4)와의 관계에 의해 그리고 유사하게 라우터(R1, R2, R3, R4) 각각의 주변 라우터에 대한 이들 라우터 중 임의의 라우터의 배열로 예시된다. 대안으로 또는 부가적으로, 라우터는 상이한 라우터의 주위에 배열된 복수의 그러한 노드 중 하나일 수 있다.
방법(350)은 또한 (360)에서, 계층 네트워크의 계층에서 라우터의 레벨에 대응하는 값 k를 결정하는 단계를 포함할 수 있다. 예를 들면, 상이한 계층 레벨은 하나 이상의 어드레스 값의 각각마다, 패킷을 라우팅하는 방향을 결정하기 위해 수행되는 평가에서 시프트되거나 폐기되거나 아니면 무시되는 어드레스 값의 최하위 비트의 개수를 표시하는 특정 시프트 값을 할당받을 수 있다. 대안으로 또는 부가적으로, 그러한 평가는 패킷에 기초하여 구성되는 회선 교환 경로의 적어도 일부의 방향을 결정하기 위해 수행될 수 있다. 본 출원에서 논의되는 바와 같이, 최저 계층 레벨은 예를 들면, 어떤 기준치 값 - 예를 들면, 제로(0) - 의 k 값(시프트 값)에 대응할 수 있으며, 이 때 계층에서 각각의 다음 상위 레벨에 대한 각각의 시프트 값은 어떤 증분 값 - 예를 들면, 일(1) - 만큼씩 연속하여 높다.
값 k에 기초하여, 방법(350)은 (365)에서, 제 1 어드레스 값에 기초하여 비교를 수행하는 단계를 비롯한, 패킷에 대한 패킷 교환 라우트의 방향을 결정하기 위해 목적지 어드레스를 평가하는 단계를 포함할 수 있으며, 여기서 - 제 1 어드레스 값의 n 비트 중, 오직 (n-k) 비트만 비교된다. 한정하지 않는 예시로, (365)에서 평가하는 단계는 계층 네트워크의 격자 모양의 배열의 제 1 치수(예를 들면, x-치수)를 따라서 있는 위치를 표시하는 어드레스 값의 (n-k) 비트에 기초하여 다양하게 비교를 수행하는 단계를 포함할 수 있다. 대안으로 또는 부가적으로, 그러한 비교는 그러한 격자 모양의 배열의 제 2 치수(예를 들면, y-치수)를 따라서 있는 위치를 표시하는 다른 어드레스 값의 (n-k) 비트에 기초하여 다양하게 이루어질 수 있다. 실시예에서, (365)에서 평가 단계는 목적지 어드레스의 어드레스 값 및 방법(350)을 수행하는 라우터에 대응하는 어드레스 값에 기초하여 비교를 수행하는 단계를 포함할 수 있다. (365)에서 평가 단계는 목적지 노드가 라우터를 포함하는 네트워크 노드의 로우(row)들의 범위 내에 있는지 및/또는 목적지 노드가 라우터를 포함하는 네트워크 노드의 컬럼(column)들의 범위 내에 있지를 결정하는 단계를 포함할 수 있다. 로우의 범위의 크기 및/또는 컬럼의 범위의 크기는 네트워크의 계층에서 라우터의 레벨에 좌우될 수 있다.
도 4a는 실시예에 따라서 패킷 교환 라우팅 및 회선 교환 라우팅을 제공하는 라우터(400)의 요소를 예시한다. 라우터(400)는 예를 들면, 다이(100)의 메시 네트워크와 같은 메시 네트워크에서 동작할 수 있거나 다이(200)의 계층 네트워크와 같은 계층 네트워크에서 동작할 수 있다. 실시예에서, 라우터(400)는 방법(300) 및/또는 방법(350)의 일부 또는 모든 동작을 수행하는 로직을 포함한다.
라우터(400)는 인접 네트워크 노드와 다양하게 연결하고 그 인접 네트워크 노드와 통신하도록 구성되는 몇 개의 복수의 포트를 포함할 수 있다. 포트 또는 라우터(400)는 예를 들면, 인접 노드의 방향 및/또는 그러한 노드와의 트래픽 교환 방향에 따라서 논리적으로 분할될 수 있다. 예를 들면, 라우터(400)는 (각기) 라우터(400)에 대해 "북쪽" 방향으로 배치된 노드로부터 통신신호를 수신하고 통신신호를 그 노드로 전송하도록 구성된 노쓰 포트(north port, NP) In(404) 및 NP Out(402)를 포함할 수 있다. 유사하게, 라우터(400)는 라우터(400)에 대해 "남쪽" 방향으로 배치된 노드와 (각기) 통신신호를 수신하고 전송하도록 구성된 사우쓰 포트(south port, SP) In(408) 및 SP Out(406)를 포함할 수 있다. 대안으로 또는 부가적으로, 라우터(400)는 라우터(400)에 대해 "동쪽" 방향으로 배치된 노드와 (각기) 통신신호를 수신하고 전송하도록 구성된 이스트 포트(east port, EP) In(412) 및 EP Out(410)를 포함할 수 있다. 대안으로 또는 부가적으로, 라우터(400)는 라우터(400)에 대해 "서쪽" 방향으로 배치된 노드와 (각기) 통신신호를 수신하고 전송하도록 구성된 이스트 포트(west port, WP) In(414) 및 WP Out(416)를 포함할 수 있다.
실시예에서, 라우터(400)는 네트워크의 다른 에이전트와 (각기) 통신신호를 수신하고 전송하도록 구성된 다른 입력 포트(418) 및 출력 포트(420)를 포함할 수 있다. 일 실시예에서, 포트(418, 420)는 라우터(400)를 포함하거나, 라우터에 인접하거나, 아니면 라우터(400)와 연관된 "로컬" 코어의 프로세서 로직과 통신하기 위한 포트이다. 다른 실시예에서, 포트(418, 420)는 라우터(400)의 네트워크 계층보다 높은 다음 레벨의 네트워크 계층에 있는 네트워크 노드와 통신하기 위한 포트이다. 실시예에서, 라우터(400)는 도 4a에서 도시된 포트간 통신(inter-port communication)의 경로를 제공하는 크로스바 스위칭 로직을 포함한다.
도 4b는 실시예에 따라서 패킷 교환된 통신신호 및 회선 교환된 통신신호를 교환하기 위한 라우터(430)의 요소를 예시한다. 라우터(430)는 예를 들면, 라우터(400)의 일부 또는 모든 특징을 포함할 수 있다. 라우터(430)는 방법(300)의 일부 또는 모든 동작을 수행하는 회로 로직을 포함할 수 있다.
라우터(430)는 라우터(430)와 네트워크를 형성한 다른 라우터(도시되지 않음)로부터 패킷을 수신하는 입력 포트를 포함할 수 있다. 예를 들면, 예시적인 패킷 교환(packet-switched, PS) 입력(442)은 라우터(430)의 PS 수신기 로직(440)에 의해 수신될 수 있으며, 여기서 PS 입력(442)는 시간을 경과하여 수신된 하나 이상의 패킷을 포함한다. 실시예에서, PS 입력(442) 내의 패킷은 라우터(430)가 라우터(430)의 동작 모드를 결정하기 위해 평가할 수 있는 - 예를 들면, 측파대 인에이블 신호 SB_en(444)를 포함하는 - 제어 정보를 포함한다. 한정하지 않는 예시로서, 라우터(430)는 그러한 제어 정보를 일부 또는 모두 수신하거나 또는 예를 들면 그러한 제어 정보에 의거 동작하는 일부 조합 로직(도시되지 않음)의 출력을 수신하는 평가 로직(450)을 포함할 수 있다. 그러한 조합 로직은 특정 실시예에서 평가 로직(450)에 포함될 수 있다.
제어 정보의 평가에 기초하여, 평가 로직(450)은 라우터의 복수의 동작 모드 중에서 선택하기 위해 라우터(430)의 구성 로직에 신호할 수 있으며, 동작 모드는 측파대 데이터 전달을 위해 패킷 교환 라우팅을 위한 제 1 모드 및 회선 교환 경로의 적어도 일부분의 구성을 위한 제 2 모드를 포함한다. 일 실시예에 따른 그러한 모드 선택은 개념적으로 라우터(430)의 PS 수신기 로직(440)과 회선 교환(circuit-switch, CS) 구성 로직(460) 사이에 연결된 스위치(SW1)로 예시된다. 실시예에서, CS 구성 로직(460)은 CS 입력(462)을 비롯한 복수의 입력 중 임의의 입력으로부터 CS 출력(466)으로의 회선 교환 경로를 다양하게 구성하는 멀티플렉서 및/또는 다른 그러한 로직을 포함한다. CS 입력(462)을 비롯한 복수의 입력은 각기 라우터(430)의 상이한 각각의 입력 포트로부터 제공될 수 있다.
라우터(430)의 제 2 모드 - 예를 들면, SW1가 닫힌 스위치로서 구성되는 모드 - 에서, CS 구성 로직(460)은 PS 수신기 로직(440)에 의해 수신되는 PS 입력(442) 내 패킷 정보에 기초하여 그러한 회선 교환 경로를 구성할 수 있다. 그에 반해서, 라우터(430)의 제 1 모드 - 예를 들면, SW1가 개방된 스위치로서 구성되는 모드 - 에서, CS 구성 로직(460)은 하나 이상의 방법으로 그러한 회선 교환 경로를 구성하지 못할 수 있다. 게다가 또는 대안으로, 제 1 모드에서, PS 수신기 로직(440)은 PS 입력(442)에서 수신된 패킷의 패킷 교환 라우팅 - 예를 들면, 그러한 라우팅은 측파대 데이터를 PS 출력(446)에서 전달하는 것임 - 을 수행할 수 있다.
도 4c는 실시예에 따라서 하이브리드 패킷 교환/회선 교환 라우터(470)의 요소를 예시한다. 라우터(470)는 예를 들면, 라우터(430)의 일부 또는 모든 특징을 포함할 수 있다. 실시예에서, 라우터(470)는 다른 라우터로부터 통신신호를 수신하는 In 포트(480) 및 통신신호를 그 다른 라우터로 전송하는 Out 포트(490)를 포함할 수 있다. 라우터(470)는 상이한 실시예에 따라서, 네트워크의 각각의 노드와 각기 통신하는 복수의 다른 그러한 포트 쌍을 포함할 수 있다.
In 포트(480)는 (예를 들면, 전체 패킷 또는 패킷의 제어 부분을 포함하는) 패킷 교환된 통신신호를 수신하도록 구성된 하나의 입력 부분 및 (예를 들면, 패킷의 데이터 부분을 포함하는) 회선 교환된 통신신호를 수신하도록 구성된 다른 입력 부분을 포함할 수 있다. 그러한 입력 부분은 각기 In 포트(480)의 예시적인 PS 입력 부분 및 CS 입력 부분으로 표현된다. 유사하게, Out 포트(490)는 패킷 교환 통신신호를 출력하는 PS 출력 부분 및 회선 교환된 통신신호를 출력하는 CS 입력 부분을 포함할 수 있다.
실시예에서, 라우터(470)를 포함하는 네트워크에서 회선 교환 채널의 구성은 In 포트(480)의 PS 입력 부분을 통해 수신되는 구성 요청 메시지를 포함한다. 그러한 요청 메시지는 유효 비트 및 방향 정보가 라우터(470)에 저장되게 할 수 있으며, 유사하게 각각의 유효 비트 및 방향 정보가 네트워크를 통과할 때 각종 라우터에 저장되게 할 수 있다. 방향 정보는 라우터(470)의 하나 이상의 멀티플렉서가 회선 교환 데이터 경로를 제공하도록 구성하는데 제공될 수 있다.
실시예에서, 각각의 확인응답 신호는 적어도 부분적으로 형성된 회선 교환 경로의 소스 노드 및 목적지 노드 각각으로부터 전송될 수 있다. 따라서, In 포트(480) 및 Out 포트(490)는 각기 각각의 소스 확인응답(source acknowledge, Src Ack) 신호 라인 및 목적지 확인응답(destination acknowledge, Dest Ack) 신호 라인을 포함할 수 있다. 소스 노드 및 목적지 노드로부터 각각의 확인응답이 도달한 것은 요청된 경로가 완성된 것 및 회선 교환 데이터 경로를 통한 데이터 전달이 시작할 수 있다는 것을 라우터(470)에게 표시할 수 있다. 확인응답의 도달은 또한 후속하는 요청 패킷이 네트워크를 통해 전파할 수 있도록 라우터(470)에 저장된 유효 비트를 클리어할 수 있다. 실시예에서, In 포트(480) 및 Out 포트(490)는 또한 각기 라우터들 간의 흐름 제어를 위해 제공하는 패킷 홀드 신호를 포함할 수 있다.
도 5a는 네트워크에서 회선 교환 데이터 경로를 구성하기 위해 실시예에 따라서 주고 받는 예시적인 통신(500)을 도시한다. 통신은 예를 들면, 다이(100) 및/또는 다이(200)의 네트워크와 같은 네트워크에서 수행될 수 있다. 실시예에서, 통신(500)은 각기 라우터(400)의 일부 또는 모든 기능성을 다양하게 제공하는 하나 이상의 라우터를 이용하여 수행된다.
실시예에서, 통신(500)은 회선 교환 경로를 구성하도록 하는 패킷 교환 요청의 교환(505)을 포함하되, 상기 교환(505)은 소스 노드로부터 n개 라우터를 통해 목적지 노드까지의 교환이다. 그러한 요청은 예를 들면, In 포트(480)의 PS 입력 및 Out 포트(490)의 PS 출력 중 어느 하나 또는 둘 다와 교환될 수 있다. 교환(505)에 뒤이어 회선 교환 경로의 구성을 확인하기 위해 확인응답 메시지를 반대로 소스 노드에 제공하는 회선 교환의 교환(510)이 수행될 수 있다. 확인응답 교환(510) 이후, 회선 교환 데이터의 교환(515)이 회선 교환 경로를 통해 일어날 수 있다.
데이터 처리량을 개선하기 위해, 상이한 클럭이 네트워크의 요청 패킷 교환 부분 및 데이터 회선 교환 부분을 동기화하는데 사용될 수 있다. 패킷 교환 요청은 클럭의 각 사이클마다 이웃 노드들 사이에서만 전달할 수 있는데 반해, 회선 교환 데이터는 단일의 클럭 사이클 내에서 전체 네트워크를 가로질러 전달할 수 있다. 따라서, 네트워크의 패킷 교환 부분은 네트워크의 회선 교환 부분의 주파수 클럭(circuitclock)보다 높은 주파수 클럭(packetclock)으로 동작할 수 있다. 대안으로 또는 부가적으로, 하나의 회선 교환 데이터의 전송은 하나 이상의 향후 전송에 대해 확인응답의 교환과 동시에 및/또는 회선 교환 경로의 구성을 위한 하나 이상의 요청의 교환과 동시에 일어날 수 있다. 따라서, 그러한 교환에 참여하는 라우터는 향후 데이터 전송의 라우팅 방향을 결정하고 저장함으로써 향후의 회선 교환 경로 구성을 준비할 수 있다.
도 5b는 실시예에 따라서 회선 교환 데이터 경로를 구성하는 통신(520)의 요소를 예시한다. 통신(520)은 예를 들면, 통신(500)의 일부 또는 모든 특징을 포함할 수 있다. 예를 들면, 통신(520)은 라우터 0로부터 라우터 4까지 네트워크 경로를 횡단하는 목적지 확인응답(Dest Ack)을 포함한다. 통신(520)은 또한 네트워크 경로를 따라서 반대 방향으로 횡단하는 소스 확인응답(Src Ack) 메시지를 포함할 수 있다.
분산된 제어를 이용한 자원 활용을 개선하기 위해, 라우터 0 내지 라우터 4에서 복수의 요청된 경로를 위한 각각의 정보를 동시에 저장하기 위해 각각의 큐 슬롯(queue slot)이 동작할 수 있다. 큐 슬롯은 확인응답 국면 동안 회선 교환 네트워크가 선택하기 위한 여러 잠재적인 경로를 제공한다. 각각의 요청 패킷은 하나의 라우터에서부터 다음 라우터로 전파하므로, 라우팅 방향은 복수의 라우터의 각각에서 각각의 큐 슬롯에 저장될 수 있다. 예를 들면, circuitclock 사이클 동안, 도 6에서 예시된 바와 같이, 라우터 포트의 회로 로직은 순환 우선순위에 기초하여 그의 큐 슬롯 중 하나를 선택할 수 있다. 그 큐 슬롯에 이미 저장된 방향은 Src Ack 및/또는 Dest Ack 신호를 라우팅하는데 사용될 수 있다. 경로를 따라서 있는 라우터에 Src Ack 및 대응하는 Dest Ack가 모두 도달한 것은 다음 circuitclock 사이클에서 데이터 전송을 위한 완전한 경로가 구성되어 있음을 표시할 수 있다. 준비되지 않은 경로는 향후의 circuitclock 사이클을 기다려야 하지만, 준비된 경로는 데이터 전송 이후 자신의 자원을 방임할 수 있다.
도 5c는 실시예에 따라서 수행되는 회선 교환 통신의 시퀀스(530)를 예시한다. 비록 특정 실시예가 이러한 점으로 한정되지 않지만, 시퀀스(530)는 다이(100)의 네트워크와 같은 네트워크에서 수행될 수 있다. 시퀀스(530)는 예를 들면, 통신(500) 및/또는 통신(520)을 포함할 수 있거나 아니면 이러한 통신에 기초할 수 있다.
통신(530)의 일부는 두 회선 경로가 구성(준비)되는 클럭(예를 들면, circuitclock)의 사이클 1에서 일어나며, 제 3 경로는 아직 구성되지 않는다. 사이클 1 동안, 두 회선 교환 경로에 대하여 통신(520)의 확인응답 메시지와 같은 확인응답 메시지의 교환이 각기 수행되어 그러한 경로가 구성(준비)되었다고 표시한다. 제 3 경로에 대한 확인응답 메시지의 교환이 준비된 경로 중 한 경로에 대한 확인응답 메시지 교환의 완료를 대기하고 있는 한, 사이클 1 동안 그러한 제 3 경로는 아직 준비되지 않는다.
통신(530)의 다음 사이클 2 동안, 사이클 1에서 준비된 것으로 확인응답을 한 회선 교환 경로는 - 예를 들면, 각종 라우터의 포트의 각각의 CS 입력 및 CS출력을 사용하여 - 데이터 전송을 수행할 수 있다. 사이클 2에서 회선 교환 데이터의 교환과 동시에, 예를 들면, 약간 나중의 클럭 사이클(도시되지 않음)에서, 제 3 경로에 대해 확인응답 교환이 완료되어 데이터 교환을 위한 제 3 경로의 준비를 표시할 수 있다. 도 5c에서 예시된 바와 같이, 실시예에 따른 메시 네트워크는 x-일차, y-이차 (또는 y-일차, x-이차) 라우팅이라고 지칭되는 라우팅을 사용할 수 있는데, 이러한 라우팅에서 패킷은 초기에는 네트워크에서 제 1 방향을 따라서 라우팅되고, 그런 다음 - 예를 들면, 후속하여 제 1 방향을 따라 라우팅되지 않고 - 네트워크 격자에서 수직하는 방향을 따라서 라우팅된다.
도 6은 실시예에 따라서 패킷 교환 라우팅 및 회선 교환 라우팅을 제공하는 집적 회로(600)의 요소를 예시한다. 집적 회로(600)는 예를 들면, 라우터(400)의 일부 또는 모든 기능성을 포함할 수 있다. 한정하지 않는 예시로서, 집적 회로(600)는 다이(100) 및/또는 다이(200)의 하나 이상의 라우터를 포함할 수 있다.
실시예에서, 집적 회로(600)는 라우터의 각기 상이한 입력 포트의 각각으로의 입력(610)을 포함한다. 라우터는 라우터 입력 포트와 라우터의 출력 포트 사이에서 상이한 시간에 상이한 회선 교환 경로를 선택적으로 구성하는 로직 - 도 6에서 예시적인 멀티플렉서로 표현됨 - 을 포함할 수 있다. 대안으로 또는 부가적으로, 라우터는 상이한 시간에, 라우터의 각각의 입력 포트의 다양한 Src Ack 신호 라인 중 임의의 신호 라인을 라우터의 출력 포트의 Src Ack 신호 라인으로 다양하게 멀티플렉싱하는 회선 교환(circuit-switched, CS) 확인응답 로직(620)을 포함할 수 있다. 대안으로 또는 부가적으로, CS 확인응답 로직(620)은 상이한 시간에 입력 포트의 Dest Ack 신호 라인을 라우터의 각각의 출력 포트의 Dest Ack 신호 라인 중 임의의 신호라인으로 다양하게 디멀티플렉싱할 수 있다.
집적 회로(600)는 - 예를 들면, 라우터에 의해 수신되는 패킷 교환 정보에 기초하여 - 방향 정보를 저장하는 레지스터 파일(630)(또는 다른 저장소)을 포함할 수 있다. 각각의 패킷 클럭에서, 방향 값(이 예에서는 2비트 값)이 각각의 큐 엔트리(또는 "슬롯")에 의해 어드레스 지정된 래치에 기록될 수 있다. 방향 정보는 향후 데이터 교환을 위한 회선 교환 라우팅의 방향을 표시할 수 있다. 예를 들면, 방향 레지스터 파일(630)에서 슬롯은 입력(610)의 멀티플렉싱을 결정하는 출력으로서 제공될 수 있다. 실시예에서, 슬롯 선택 로직(640)은 방향 레지스터 파일(630)의 엔트리를 선택하여 그러한 출력을 제공한다. 슬롯 선택 로직(640)에 의한 선택은 방향 레지스터 파일(630)의 해당 슬롯이 유효 데이터에 대응하는지를 표시하는 한 세트의 유효 비트(650)에 기초할 수 있다. 한 세트의 유효 비트(650)의 값은 각기 라우터에 의해 수신된 각각의 패킷 교환 정보의 제어 정보에 다양하게 기초할 수 있다.
실시예에서, 양방향의 소스 및 목적지 확인응답은 연속적인 circuitclock 사이클 내에서 네트워크를 가로질러 전송될 수 있다. 시프트 레지스터(660)의 글로벌 포인터는 한 세트의 유효 값 슬롯(650) 중에서 선택하기 위한 시작 포인트를 제공할 수 있다. 특정한 circuitclock 사이클에서, 슬롯 선택 회로(640)는 현재 포인터 위치에서 시작하는 다음의 유효 큐 슬롯을 탐색할 수 있다. 이러한 포인터를 시프트 레지스터(660)를 이용하여 사이클마다 선회하면 공정성이 향상되고 중단되는 것을 방지할 수 있다. 복수의 라우터 전체에서 전역 포인터를 사용하면 공통 경로가 선택되는 것을 보장할 수 있다.
도 7은 실시예에 따라서 패킷 교환 라우팅 및 회선 교환 라우팅을 수행하는 라우터(700)의 요소를 예시한다. 라우터(700)는 다이(100)(또는 대안으로, 다이(200))의 네트워크의 일부 또는 모든 특징을 갖는 네트워크에서 동작할 수 있다. 예를 들면, 라우터는 라우터(400)의 기능성, 집적 회로(600)의 라우터의 기능성, 및/또는 기타의 것의 기능성을 제공할 수 있다. 실시예에서, 라우터(700)는 방법(300)의 일부 또는 모든 동작 및/또는 방법(350)의 일부 또는 모든 동작을 수행하는 로직을 포함한다.
실시예에서, 라우터(700)는 라우터(700)에 전송된 패킷 교환 통신신호를 수신하는 부분을 포함하는 IN 포트(710) 및 라우터(700)로부터 패킷 교환 정보를 전송하는 부분을 포함하는 OUT 포트(750)를 포함한다. IN 포트(710) 및 OUT 포트(750)는 또한 회선 교환 정보를 주고 받는 각각의 다른 부분(도시되지 않음) - 예를 들면, 그러한 다른 부분은 각각의 회선 교환 경로의 적어도 일부를 구성하는 각각의 구성 로직을 포함하며, 예를 들면, 그러한 구성은 그 회선 교환 경로를 따라서 전달되는 데이터를 라우터(700)가 수신하기 전에 수행됨 - 을 포함할 수 있다.
IN 포트(710)는 상이한 시간에, PS 입력(705)의 X개 신호 라인 - 여기서 X는 어떤 정수임 - 을 라우터(700)의 복수의 출력 포트 중 임의의 출력 포트로 다양하게 디멀티플렉싱하는 디멀티플렉서 로직(720)을 포함할 수 있다. 디멀티플렉서 로직(720)의 동작은 PS 입력(705)을 통해 수신된 패킷의 패킷 교환 라우팅을 가능하게 할 수 있다. 한정하지 않는 예시로서, PS 입력(705)의 X개 신호 라인은 PS 입력(705)을 통해 수신된 패킷(715)의 예시된 포맷을 제공할 수 있다. 구체적으로, 패킷(715)은 예를 들면, 네트워크의 격자의 x-축을 따라서 있는 위치를 표시하는 3-비트 어드레스 값, 및 격자의 y-축을 따라서 있는 위치를 표시하는 다른 3-비트 어드레스 값을 포함하는 목적지 어드레스 비트를 포함할 수 있다. 실시예에서, 방향 로직(725)은 그러한 어드레스 값을 평가하여 패킷(715)을 알맞은 출력포트로 전달하기 위한 디멀티플렉서 로직(720)의 경로를 선택할 수 있다.
대안으로 또는 부가적으로, OUT 포트(750)는 상이한 시간에, (라우터(700)의 각각의 입력 포트로부터 제공된) 복수의 PS 입력 중 임의의 입력을 PS 출력(755)의 X개 신호 라인에 다양하게 멀티플렉싱하는 멀티플렉서 로직(785)을 포함할 수 있다. 멀티플렉서 로직(785)의 동작은 패킷(715)과 같은 패킷의 패킷 교환 라우팅을 가능하게 할 수 있다. 한정하지 않는 예시로서, 패킷(715)은 패킷(715)의 유효성(예를 들면, 존재)를 표시하는 유효 비트 및/또는 패킷(715)이 측파대 전송신호의 일부로서 전송될 데이터를 포함하는지를 표시하는 측파대 인에이블(sideband enable, SB_en) 비트 또는 비트들을 포함할 수 있다. 실시예에서, SB_en은 - 예를 들면, 우선순위 로직(780)에 의해 유효 비트와 합동하여 - 패킷(715)이 측파대 통신신호의 패킷으로서 포워드될 것인지 또는 패킷(715)이 회선 교환 경로의 일부 또는 전부를 구성하는데 사용될 것인지를 결정하기 위해 평가된다.
예를 들면, 우선순위 로직(780)은 하나 이상의 SB_en, 유효성 값, 및 패킷의 목적지 어드레스 정보를 수신하고 평가할 수 있다. 그러한 평가의 결과로서, 우선 순위 로직(780)은 방향 데이터가 회선 교환 경로의 구성을 위해 전달될 것인지를 표시하는 출력(765)을 제공할 수 있다. 출력(765)은 실시예에서 그러한 방향 데이터를 포함할 수 있다. 대안으로, 출력(765)은 방향 로직(725)에 의해 그러한 방향 데이터의 출력을 제어할 수 있다.
예를 들면, 패킷의 방향 데이터는 우선 순위 로직(780)이 패킷(715)이 회선 교환 경로 구성을 위한 요청 패킷이라고 결정하는 경우에 방향 레지스터 파일에 기록될 수 있다. 패킷(715)에 대한 출력(765)이 방향 레지스터 파일에 기록되는 위치를 나중에 찾아낼 수 있게 하는 큐 슬롯 출력(770)이 또한 제공될 수 있다. 예를 들면, 패킷(715)은 패킷(715)과 연관되는 슬롯 값을 표시하는 큐 슬롯 값(예를 들면, 이 예에서는 3비트 값)을 더 포함할 수 있고, 이 경우 출력(770)은 그러한 큐 슬롯 값을 포함하거나 아니면 그러한 큐 슬롯 값에 기초한다.
실시예에서, 우선 순위 로직(780)이 패킷(715)이 측파대 데이터의 전달을 위한 패킷이라고 결정하는 경우에는 그러한 방향 데이터의 기록은 선택적으로 방지되거나 수정될 수 있다. 실시예에서, 패킷(715)이 측파대 데이터의 전달을 위한 패킷이라고 결정되는 경우에는 출력(770)의 제공이 선택적으로 방지되거나 아니면 변경될 수 있다. 패킷(715)의 측파대 데이터는 그러한 데이터를 수용하는 예시적인 N 비트 - 예를 들면, 라우터(700)의 예시적인 실시예에서 X는 (N+11)과 같음 - 로 표현된다.
실시예에서, 패킷 교환 동작의 제어는 다른 제어 시그널링의 전달에 기초하고/하거나 조절될 수 있다. 한정하지 않는 예시로서, PS 입력(705)의 래치하는 동작은 각종 출력 포트로부터의 홀드 신호에 의거 동작하는 조합 로직(730)에 의해 발생된 홀드 신호에 기초할 수 있다. 대안으로 또는 부가적으로, PS 출력(755)을 래치하는 동작은 OUT 포트(750)의 홀드 신호에 기초할 수 있다. 실시예에서, OUT 포트(750)는 OUT 포트(750)의 홀드 신호를 라우터(700)의 각종 입력 포트 중 임의의 입력 포트로 전달하는 디멀티플렉서 로직(760)을 포함하거나 디멀티플렉서 로직에 연결될 수 있다.
도 8a는 실시예에 따라서 패킷 교환 정보의 방향을 결정하기 위한 방향 로직(800)의 요소를 예시한다. 방향 로직(800)은 예를 들면, 라우터(400)의 일부 또는 모든 특징을 갖는 디바이스에서 동작할 수 있다. 방향 로직(800)은 - 예를 들면, 다이(100)의 메시 네트워크와 같은 메시 네트워크의 경우 - x-일차, y-이차 라우팅을 구현하기 위한 로직의 일 예이다. 실시예에서, 방향 로직은 방향 로직(725) 또는 우선 순위 로직(780)의 기능성에 대응하는 기능성을 제공한다.
실시예에서, 방향 로직(800)은 이차원 어드레스 공간의 제 1 치수와 연관된 어드레스 값을 비교하는 제 1 회로(810)를 포함한다. 방향 로직의 제 2 회로(820)는 또한 어드레스 공간의 제 2 치수와 연관된 어드레스 값을 비교할 수 있다. 어드레스 공간의 치수는 - 예를 들면, 네트워크 노드가 다이의 격자 모양의 패턴으로 배치되어 있으므로 - 그러한 노드의 물리적 레이아웃에 대응할 수 있거나 아니면 그 물리적 레이아웃에 관련할 수 있다. 예를 들면, 물리적 레이아웃에서 방향 로직(800)의 위치에 대비한 그러한 물리적 레이아웃의 다양한 방향은 도 8a에서 "북쪽", "남쪽", "동쪽" 및 "서쪽"의 표시를 사용하여 언급된다.
한정하지 않는 예시로서, 제 1 회로(810)는 라우터(800)의 어드레스 및 라우터(800)에 의해 수신된 패킷의 목적지 노드의 어드레스의 각 x-치수 값을 수신할 수 있다. 대안으로 또는 부가적으로, 제 2 회로(820)는 라우터(800)의 어드레스 및 목적지 노드의 어드레스의 각 y-치수 값을 수신할 수 있다. 실시예에서, 그러한 어드레스 값들의 비교는 제 1 회로(810) 및 제 2 회로(810)에 의해 다양하게 수행된다. 도 8b는 실시예에 따라서 그러한 비교를 수행하는 회로(830)의 일 예를 예시한다. 제 1 회로(810) 및 제 2 회로(820)에 의한 비교에 기초하여, 방향 로직(800)은 라우터(800)로부터 목적지 노드를 향한 패킷의 다음 라우팅이 특정 방향, 예를 들면, 라우터(800)에 대해 북쪽, 남쪽, 동쪽 또는 서쪽으로 향할 것인지를 결정할 수 있다.
도 9는 실시예에 따라서 패킷 교환 정보의 방향을 결정하는 방향 로직(900)의 요소를 예시한다. 방향 로직(900)은 예를 들면, 라우터(400)의 일부 또는 모든 특징을 갖는 디바이스에서 동작할 수 있다. 방향 로직(900)은 다이(200)의 계층 네트워크와 같은 계층 네트워크의 라우팅을 구현하는 로직의 일 예이다. 방향 로직(900)은 방향 로직(725) 또는 우선 순위 로직(780)의 기능성에 대응하는 기능성을 제공할 수 있다. 실시예에서, 라우터는 방향 로직(800) 및 방향 로직(900) 둘 다의 기능성을 제공하는 방향 로직을 포함하며, 예를 들면, 이 경우 라우터는 메시 네트워크에서 통신신호의 라우팅 및 계층 네트워크에서 통신신호의 라우팅 중 특정 라우팅을 선택하도록 다양하게 구성(예를 들면, 재구성)될 수 있다.
방향 로직(900)을 포함하는 라우터는 2D 어드레스 공간의 각각의 치수(각각의 x 및 y)에 대응하는 두 개의 n-비트 어드레스 값 Xrtr[n-1:0], Yrtr[n-1:0]에 의해 어드레스 지정될 수 있다. 일부 시점에서, 라우터는 어드레스 공간 내 어드레스의 두 개의 다른 n-비트 어드레스 값 Xdest[n-1:0], Ydest[n-1:0]에 의해 어드레스 지정 가능한 네트워크 노드를 향하는 패킷을 수신할 수 있다. 방향 로직(900)은 어드레스 값 Xrtr[n-1:0], Yrtr[n-1:0], Xdest[n-1:0], Ydest[n-1:0] 중 일부 비트 또는 모든 비트에 기초하여 평가를 수행하여 라우터로부터 패킷을 전송하는 방향을 결정할 수 있다.
실시예에서, 어드레스 공간의 치수는 네트워크 노드의 물리적 레이아웃에 대응하거나 아니면 그 물리적 레이아웃과 관련한다. 예를 들면, 방향 로직(900)을 포함하는 라우터의 위치에 대비한 그러한 물리적 레이아웃의 다양한 방향은 도 9에서 "SW(남서)", "SE(남동)", "NW(북서)" 및 "NE(북동)"의 표시를 사용하여 언급된다. 실시예에서, 방향 SW, SE, NW, NE의 일부 또는 모든 방향은 각기 라우터에 대해 x-치수를 따라서 존재하는 옵셋 및 라우터에 대해 y-치수를 따라서 존재하는 옵셋의 각각의 조합을 포함한다.
실시예에서, 방향 로직(900)은 Xrtr[n-1:0], Yrtr[n-1:0], Xdest[n-1:0] 및 Ydest[n-1:0]을 각기 수신하는 시프트 레지스터(910a, 910b, 910c, 910d)를 포함한다. 또한, 시프트 레지스터(910a, 910b, 910c, 910d)는 방향 로직(900)에 의한 후속 평가에서 제외될 다수의 어드레스 값 비트를 표시하는 시프트 값 k를 수신할 수 있다. 예를 들면, 시프트 값 k에 기초하여, 각각의 시프트 레지스터(910a, 910b, 910c, 910d)는 그 시프트 레지스터에 의해 수신된 각각의 어드레스 값의 k 비트 - 예를 들면, k개의 최하위 비트 - 를 시프트하거나, 폐기하거나, 아니면 후속 처리에서 제외할 수 있다.
예를 들면, 시프트 레지스터(910a, 910b, 910c, 910d)는 후속 평가를 받는 Xrtr[n-1:0], Yrtr[n-1:0], Xdest[n-1:0] 및 Ydest[n-1:0]의 각각의 (n-k)개의 최상위 비트를 다양하게 분배할 수 있다. 실시예에서, 방향 로직(900)의 평등성 검출 로직(920a)은 시프트 레지스터(910a, 910c)로부터 Xrtr[n-1 :0]의 (n-k-1)개 최상위 비트 Xrtr[n-l:k+l] 및 Xdest[n-1:0]의 (n-k-1)개 최상위 비트 Xdest[n-l:k+l]를 수신할 수 있다. 또한 평등성 검출 로직(920b)은 시프트 레지스터(910b, 910d)로부터 Yrtr[n-1:0]의 (n-k-1)개 최상위 비트 Yrtr[n-l:k+l] 및 Ydest[n-1:0]의 (n-k-1)개 최상위 비트 Ydest[n-l:k+l]를 수신할 수 있다. 등가 검출 로직(920a, 920b)은 목적지 노드가 방향 로직(900)을 포함하는 라우터를 구비하는 로우의 특정 범위 내에 있는지 및/또는 목적지 노드가 라우터를 포함하는 컬럼의 특정 범위 내에 있는지를 결정할 수 있다. 로우의 범위 및/또 컬럼의 범위의 크기는 라우터가 계층의 낮은 레벨에 있는 것과 비교하여 볼 때, 라우터가 계층의 높은 레벨에서 있는 것이 상대적으로 클 수 있다. 이것은 네트워크의 계층이 높을수록 더 간단하고/하거나 빠른 방향 결정을 가능하게 해준다.
또한, 선택기 로직(940)은 시프트 레지스터(910c, 910d)로부터 Xdest[k] 및 Ydest[k]를 수신할 수 있다. 조합 로직(930)은 평등성 검출 로직(910, 920)으로부터의 각각의 출력을 수신하고 만일 두 Xrtr[n-l:k+l] 및 Xdest[n-l:k+l]이 서로 같고 Yrtr[n-l:k+l] 및 Ydest[n-l:k+l]이 서로 같으면 로직 하이 신호를 출력할 수 있다. 그러한 로직 하이 신호는 수신된 Xdest[k] 및 Ydest[k]에 기초하여 선택기 로직(940)으로부터의 출력의 선택을 가능하게 할 수 있다. 예를 들면, 인에이블된 출력은 방향 SW, SE, NW, NE - 예를 들면, 그러한 방향은 방향 로직(900)을 포함하는 라우터의 계층 레벨보다 낮은 계층 레벨을 갖는 각 노드에 대응함 - 중 한 방향을 선택할 수 있다. 그렇지 않고, 조합 로직(930)의 출력이 로직 로우인 경우, 방향 로직은 패킷이 네트워크의 계층에서 상위 레벨로 라우팅될 것임을 표시하는 Up 신호를 제공할 수 있다.
일 구현예에서, 직접 회로는 제 2 라우터로부터 제 1 패킷 - 제 1 패킷은 제어 정보를 포함함 - 을 수신하는 제 1 입력 부분 및 제 2 라우터로부터 제 1 데이터를 수신하는 제 2 입력 부분을 포함하는 제 1 입력 포트를 구비하는 제 1 라우터를 포함한다. 제 1 라우터는 제어 정보의 평가를 수행하는 평가 로직, 및 그 평가에 기초하여 제 1 라우터로부터 패킷 교환 측파대 데이터를 전달하기 위해 제 1 패킷을 라우팅하는 제 1 라우터의 제 1 모드와 제 1 패킷에 따라서 회선 교환 채널 - 회선 교환 채널은 소스 노드와 목적지 노드 사이에서 제 1 데이터를 전달하기 위한 채널임 - 을 구성하는 제 1 라우터의 제 2 모드 중에서 선택을 수행하는 구성 로직을 포함한다.
실시예에서, 제어 정보의 평가를 수행하는 평가 로직은 제 1 패킷의 측파대 인에이블 신호를 평가하는 평가 로직을 포함한다. 다른 실시예에서, 측파대 인에이블 신호를 평가하는 평가 로직은 측파대 인에이블 신호 및 제 1 패킷의 데이터 유효 신호의 불린(Boolean) AND를 평가하는 평가 로직을 포함한다. 다른 실시예에서, 제 1 라우터는 방향 레지스터 파일 및 그 방향 레지스터 파일에 기초하여 회선 교환 라우트의 방향을 결정하는 로직을 포함하며, 제 1 모드를 선택하는 구성 로직은 방향 레지스터 파일에의 기록을 방지하는 구성 로직을 포함한다. 다른 실시예에서, 제 1 라우터는 출력 포트 및 패킷을 출력 포트에 제공하기 위해 제 1 라우터의 복수의 입력 포트 중에서 선택하는 우선순위 로직을 포함하며, 방향 레지스터 파일에의 기록을 방지하는 구성 로직은 우선순위 로직을 디스에이블하거나 우선순위 로직을 방향 레지스터 파일로부터 스위칭 가능하게 연결 해제하는 구성 로직을 포함한다. 다른 실시예에서, 제 1 라우터는 측파대 데이터의 패킷 교환 라우팅(packet-switched routing) 및 다른 데이터의 회선 교환 라우팅(circuit-switched routing)을 동시에 수행한다. 다른 실시예에서, 제 1 입력 부분은 또한 제 2 라우터로부터 제 2 패킷 - 제 2 패킷은 제 2 제어 정보를 포함함 - 을 수신하며, 평가 로직은 제 2 제어 정보의 평가를 수행하고, 구성 로직은 제 2 제어 정보의 평가에 기초하여, 제 1라우터로부터 제 2 패킷 교환 측파대 데이터를 전달하기 위해 제 2 패킷을 라우팅하는 제 1 모드와, 제 2 패킷에 따라서 제 2 회선 교환 채널을 구성하는 제 2 모드 중에서 선택을 수행한다. 다른 실시예에서, 제 1 입력 부분을 통해 수신된 패킷 시퀀스의 각 패킷마다, 평가 로직은 패킷의 각각의 평가를 수행하고, 평가 로직은 각각의 평가에 기초하여 제 1 모드와 제 2 모드 사이의 선택을 수행한다. 다른 실시예에서, 네트워크는 메시 네트워크를 포함한다.
다른 실시예에서, 네트워크는 계층 네트워크(hierarchical network)를 포함한다. 다른 실시예에서, 계층 네트워크의 계층은 제 1 라우터를 포함하는 레벨 N과, 계층에서 레벨 N보다 낮은 레벨 N-1을 포함하며, 레벨 N-1은 각기 제 1 라우터를 통해 레벨 N과 통신하는 복수의 노드를 포함하고, 제 1 라우터는 복수의 노드의 배열의 중앙에 배치된다. 다른 실시예에서, 계층 네트워크의 계층은 제 2 라우터를 포함하는 레벨 N과, 계층에서 레벨 N보다 낮은 레벨 N-1을 포함하며, 레벨 N-1은 제 1 라우터를 포함하는 복수의 노드를 포함하고, 복수의 노드는 각기 제 2 라우터를 통해 레벨 N과 통신하고, 제 2 라우터는 복수의 노드를 통해 레벨 N과 통신하고, 제 2 라우터는 복수의 노드의 배열의 중앙에 배치된다. 다른 실시예에서, 계층의 최저 레벨은 제 1 노드를 포함하고 계층의 제 2의 최저 레벨은 채널을 통해 제 1 노드에 연결된 제 2 노드를 포함하며, 계층 네트워크의 복수의 중계기에 대해, 네트워크의 각각의 인접한 노드로부터 중계기의 거리는 채널의 길이와 같다. 다른 실시예에서, 집적 회로는 또한 계층에서 제 1 라우터의 레벨에 대응하는 값 k를 결정하고, 값 k에 기초하여, 패킷의 패킷 교환 라우팅의 방향을 결정하기 위해 패킷의 목적지 어드레스를 평가하는 로직을 포함하며, 목적지 어드레스는 총 n 비트를 포함하는 제 1 어드레스 값을 포함하며, 목적지 어드레스를 평가하는 로직은 제 1 어드레스 값의 오직 (n-k) 비트에 기초하여 비교를 수행하는 로직을 포함한다. 어떤 실시예는 전술한 실시예의 일부 또는 모든 특징의 조합을 포함한다.
다른 구현예에서, 집적 회로에서의 방법은 제 1 라우터의 제 1 입력 포트에서 제 1 패킷 - 제 1 패킷은 제어 정보를 포함하며, 제 1 패킷은 제 1 입력 포트의 제 1 입력 부분을 통해 제 2 라우터로부터 수신됨 - 을 수신하는 단계와, 제 1 입력 포트의 제 2 입력 부분을 통해 제 2 라우터로부터 제 1 데이터를 수신하는 단계를 포함한다. 방법은 또한 제어 정보의 평가를 수행하는 단계와, 평가에 기초하여, 제 1 라우터로부터 패킷 교환(packet-switched) 측파대 데이터(sideband data)를 전달하기 위해 제 1 패킷을 라우팅하는 제 1 라우터의 제 1 모드와, 제 1 패킷에 따라서 회선 교환 채널(circuit-switched channel) - 회선 교환 채널은 네트워크의 소스 노드와 네트워크의 목적지 노드 사이에서 제 1 데이터의 전달을 위한 채널임 - 을 구성하는 제 1 라우터의 제 2 모드 중에서 선택을 수행하는 단계를 포함한다.
실시예에서, 제어 정보의 평가를 수행하는 단계는 제 1 패킷의 측파대 인에이블 신호를 평가하는 단계를 포함한다. 다른 실시예에서, 측파대 인에이블 신호를 평가하는 단계는 측파대 인에이블 신호 및 제 1 패킷의 데이터 유효 신호의 불린(Boolean) AND를 평가하는 단계를 포함한다. 다른 실시예에서, 제 1 라우터는 방향 레지스터 파일 및 방향 레지스터 파일에 기초하여 회선 교환 라우트의 방향을 결정하는 로직을 포함하며, 방법은 또한 제 1 모드의 선택에 기초하여, 방향 레지스터 파일에의 기록을 방지하는 단계를 포함한다. 다른 실시예에서, 제 1 라우터는 출력 포트 및 패킷을 출력 포트에 제공하기 위해 제 1 라우터의 복수의 입력 포트 중에서 선택하는 우선순위 로직을 포함하며, 방향 레지스터 파일에의 기록을 방지하는 단계는 우선순위 로직을 디스에이블하는 단계 또는 우선순위 로직을 방향 레지스터 파일로부터 스위칭 가능하게 연결 해제하는 단계를 포함한다. 다른 실시예에서, 제 1 라우터는 측파대 데이터의 패킷 교환 라우팅 및 다른 데이터의 회선 교환 라우팅을 동시에 수행한다. 다른 실시예에서, 방법은 또한 제 1 입력 부분을 통해 제 2 라우터로부터 제 2 패킷을 수신하는 단계 - 제 2 패킷은 제 2 제어 정보를 포함함 - 와, 제 2 제어 정보의 평가를 수행하는 단계와, 제 2 제어 정보의 평가에 기초하여, 제 1 라우터로부터 제 2 패킷 교환 측파대 데이터를 전달하기 위해 제 2 패킷을 라우팅하는 제 1 모드와 제 2 패킷에 따라서 제 2 회선 교환 채널을 구성하는 제 2 모드 중에서 선택을 수행하는 단계를 포함한다. 다른 실시예에서, 방법은 또한 제 1 입력 부분을 통해 수신된 패킷 시퀀스의 각 패킷마다, 패킷의 각각의 평가를 수행하는 단계 및 각각의 평가에 기초하여 제 1 모드와 제 2 모드 사이의 선택을 수행하는 단계를 포함한다. 다른 실시예에서, 네트워크는 메시 네트워크를 포함한다.
다른 실시예에서, 네트워크는 계층 네트워크를 포함한다. 다른 실시예에서, 계층 네트워크의 계층은 제 1 라우터를 포함하는 레벨 N과, 계층에서 레벨 N보다 낮은 레벨 N-1을 포함하고, 레벨 N-1은 제 1 라우터를 통해 각기 레벨 N과 통신하는 복수의 노드를 포함하며, 제 1 라우터는 복수의 노드의 배열의 중앙에 배치된다. 다른 실시예에서, 계층 네트워크의 계층은 제 2 라우터를 포함하는 레벨 N과, 계층에서 레벨 N보다 낮은 레벨 N-1을 포함하며, 레벨 N-1은 제 1 라우터를 포함하는 복수의 노드를 포함하고, 복수의 노드는 각기 제 2 라우터를 통해 레벨 N과 통신하고, 제 2 라우터는 복수의 노드를 통해 레벨 N과 통신하고, 제 2 라우터는 복수의 노드의 배열의 중앙에 배치된다. 다른 실시예에서, 계층의 최저 레벨은 제 1 노드를 포함하고 계층의 제 2의 최저 레벨은 채널을 통해 제 1 노드에 연결된 제 2 노드를 포함하며, 계층 네트워크의 복수의 중계기에 대해, 네트워크의 각각의 인접한 노드로부터 중계기의 거리는 채널의 길이와 같다. 다른 실시예에서, 방법은 또한 계층에서 제 1 라우터의 레벨에 대응하는 값 k를 결정하는 단계와, 값 k에 기초하여, 패킷의 패킷 교환 라우팅의 방향을 결정하기 위해 패킷의 목적지 어드레스를 평가하는 단계를 포함하며, 목적지 어드레스는 총 n 비트를 포함하는 제 1 어드레스 값을 포함하며, 평가하는 단계는 제 1 어드레스 값의 오직 (n-k) 비트에 기초하여 비교를 수행하는 단계를 포함한다. 어떤 실시예는 전술한 실시예의 일부 또는 모든 특징의 조합을 포함한다.
다른 구현예에서, 집적 회로 다이는 네트워크에서 서로 연결된 복수의 라우터를 포함하고, 복수의 라우터는 제 1 라우터 및 제 2 라우터를 포함한다. 제 1 라우터는 제 2 라우터로부터 제 1 패킷 - 제 1 패킷은 제어 정보를 포함함 - 을 수신하는 제 1 입력 부분과, 제 2 라우터로부터 제 1 데이터를 수신하는 제 2 입력 부분을 포함한다. 제 1 라우터는 제어 정보의 평가를 수행하는 평가 로직과, 평가에 기초하여, 제 1 라우터로부터 패킷 교환(packet-switched) 측파대 데이터(sideband data)를 전달하기 위해 제 1 패킷을 라우팅하는 제 1 라우터의 제 1 모드와, 제 1 패킷에 따라서 회선 교환 채널(circuit-switched channel) - 회선 교환 채널은 소스 노드와 목적지 노드 사이에서 제 1 데이터의 전달을 위한 채널임 - 을 구성하는 제 1 라우터의 제 2 모드 중에서 선택을 수행하는 구성 로직을 포함한다.
실시예에서, 제어 정보의 평가를 수행하는 평가 로직은 제 1 패킷의 측파대 인에이블 신호를 평가하는 평가 로직을 포함한다. 다른 실시예에서, 제 1 라우터는 방향 레지스터 파일 및 방향 레지스터 파일에 기초하여 회선 교환 라우트의 방향을 결정하는 로직을 포함하며, 제 1 모드를 선택하는 구성 로직은 방향 레지스터 파일에의 기록을 방지하는 구성 로직을 포함한다. 다른 실시예에서, 제 1 라우터는 측파대 데이터의 패킷 교환 라우팅 및 다른 데이터의 회선 교환 라우팅을 동시에 수행한다. 어떤 실시예는 전술한 실시예의 일부 또는 모든 특징의 조합을 포함한다.
다른 구현예에서, 집적 회로는 제 2 라우터로부터 목적지 어드레스를 포함하는 제 1 패킷을 수신하는 제 1 입력 포트를 포함하는 제 1 라우터를 포함하며, 목적지 어드레스의 제 1 어드레스 값은 총 n 비트를 포함한다. 제 1 라우터는 계층 네트워크의 계층에서 제 1 라우터의 레벨에 대응하는 값 k를 결정하는 방향 로직을 포함하며, 방향 로직은 또한 값 k에 기초하여, 제 1 패킷의 패킷 교환 라우트의 방향을 결정하기 위해 목적지 어드레스를 평가하고, 방향 로직은 제 1 어드레스 값에 기초하여 비교를 수행하며, 제 1 어드레스 값의 n 비트 중에서, 비교는 오직 (n-k) 비트에 기초한다. 실시예에서, 계층은 제 1 라우터를 포함하는 레벨 N과, 계층에서 레벨 N보다 낮은 레벨 N-1을 포함하며, 레벨 N-1은 라우터를 통해 각기 레벨 N과 통신하는 복수의 노드를 포함하고, 제 1 라우터는 복수의 노드의 배열의 중앙에 배치된다. 다른 실시예에서, 계층의 최저 레벨은 제 1 노드를 포함하고 계층의 제 2의 최저 레벨은 채널을 통해 제 1 노드에 연결된 제 2 노드를 포함하며, 계층 네트워크의 복수의 중계기에 대해, 네트워크의 각각의 인접한 노드로부터 중계기의 거리는 채널의 길이와 같다. 어떤 실시예는 전술한 실시예의 일부 또는 모든 특징의 조합을 포함한다.
다른 구현예에서, 집적 회로는 제 1 라우터의 제 1 입력 포트에서 제 1 패킷을 수신하는 수단을 포함하며, 제 1 패킷은 제어 정보를 포함하고, 제 1 패킷은 제 1 입력 포트의 제 1 입력 부분을 통해 제 2 라우터로부터 수신된다. 집적 회로는 또한 제 1 입력 포트의 제 2 입력 부분을 통해 제 2 라우터로부터 제 1 데이터를 수신하는 수단과, 제어 정보의 평가를 수행하는 수단과, 평가에 기초하여, 제 1 라우터로부터 패킷 교환 측파대 데이터를 전달하기 위해 제 1 패킷을 라우팅하는 제 1 라우터의 제 1 모드와, 제 1 패킷에 따라서 회선 교환 채널 - 회선 교환 채널은 네트워크의 소스 노드와 네트워크의 목적지 노드 사이에서 제 1 데이터의 전달을 위한 채널임 - 을 구성하는 제 1 라우터의 제 2 모드 중에서 선택을 수행하는 수단을 포함한다.
실시예에서, 제어 정보의 평가를 수행하는 수단은 제 1 패킷의 측파대 인에이블 신호를 평가하는 수단을 포함한다. 전술한 실시예의 일부 또는 전부에서, 측파대 인에이블 신호를 평가하는 수단은 측파대 인에이블 신호 및 제 1 패킷의 데이터 유효 신호의 불린(Boolean) AND를 평가하는 수단을 포함한다. 전술한 실시예의 일부 또는 전부에서, 제 1 라우터는 방향 레지스터 파일 및 방향 레지스터 파일에 기초하여 회선 교환 라우트의 방향을 결정하는 로직을 포함하며, 집적 회로는 또한 제 1 모드의 선택에 기초하여, 방향 레지스터 파일에의 기록을 방지하는 수단을 포함한다. 전술한 실시예의 일부 또는 전부에서, 제 1 라우터는 출력 포트 및 패킷을 출력 포트에 제공하기 위해 제 1 라우터의 복수의 입력 포트 중에서 선택하는 우선순위 로직을 포함하며, 방향 레지스터 파일에의 기록을 방지하는 수단은 우선순위 로직을 디스에이블하는 수단 또는 우선순위 로직을 방향 레지스터 파일로부터 스위칭 가능하게 연결 해제하는 수단을 포함한다. 전술한 실시예의 일부 또는 전부에서, 제 1 라우터는 측파대 데이터의 패킷 교환 라우팅 및 다른 데이터의 회선 교환 라우팅을 동시에 수행한다. 전술한 실시예의 일부 또는 전부에서, 집적 회로는 또한 제 1 입력 부분을 통해 제 2 라우터로부터 제 2 패킷을 수신하는 수단 - 제 2 패킷은 제 2 제어 정보를 포함함 - 과, 제 2 제어 정보의 평가를 수행하는 수단과, 제 2 제어 정보의 평가에 기초하여, 제 1 라우터로부터 제 2 패킷 교환 측파대 데이터를 전달하기 위해 제 2 패킷을 라우팅하는 제 1 모드와 제 2 패킷에 따라서 제 2 회선 교환 채널을 구성하는 제 2 모드 중에서 선택을 수행하는 수단을 포함한다. 전술한 실시예의 일부 또는 전부에서, 집적 회로는 또한 제 1 입력 부분을 통해 수신된 패킷 시퀀스의 각 패킷마다, 패킷의 각각의 평가를 수행하는 수단과, 각각의 평가에 기초하여 제 1 모드와 제 2 모드 사이의 선택을 수행하는 수단을 포함한다. 전술한 실시예의 일부 또는 전부에서, 네트워크는 메시 네트워크를 포함한다.
전술한 실시예의 일부 또는 전부에서, 네트워크는 계층 네트워크를 포함한다. 전술한 실시예의 일부 또는 전부에서, 계층 네트워크의 계층은 제 1 라우터를 포함하는 레벨 N과, 계층에서 레벨 N보다 낮은 레벨 N-1을 포함하고, 레벨 N-1은 제 1 라우터를 통해 각기 레벨 N과 통신하는 복수의 노드를 포함하며, 제 1 라우터는 복수의 노드의 배열의 중앙에 배치된다. 전술한 실시예의 일부 또는 전부에서, 계층 네트워크의 계층은 제 2 라우터를 포함하는 레벨 N, 및 계층에서 레벨 N보다 낮은 레벨 N-1을 포함하며, 레벨 N-1은 제 1 라우터를 포함하는 복수의 노드를 포함하고, 복수의 노드는 각기 제 2 라우터를 통해 레벨 N과 통신하고, 제 2 라우터는 복수의 노드를 통해 레벨 N과 통신하고, 제 2 라우터는 복수의 노드의 배열의 중앙에 배치된다. 전술한 실시예의 일부 또는 전부에서, 계층의 최저 레벨은 제 1 노드를 포함하고 계층의 제 2의 최저 레벨은 채널을 통해 제 1 노드에 연결된 제 2 노드를 포함하며, 계층 네트워크의 복수의 중계기에 대해, 네트워크의 각각의 인접한 노드로부터 중계기의 거리는 채널의 길이와 같다. 전술한 실시예의 일부 또는 전부에서, 집적 회로는 또한 계층에서 제 1 라우터의 레벨에 대응하는 값 k를 결정하는 수단과, 값 k에 기초하여, 패킷의 패킷 교환 라우팅의 방향을 결정하기 위해 패킷의 목적지 어드레스를 평가하는 수단을 포함하며, 목적지 어드레스는 총 n 비트를 포함하는 제 1 어드레스 값을 포함하며, 평가하는 것은 제 1 어드레스 값의 오직 (n-k) 비트에 기초하여 비교를 수행하는 것을 포함한다. 어떤 실시예는 전술한 실시예의 일부 또는 모든 특징의 조합을 포함한다.
네트워크에서 통신신호를 교환하기 위한 기술 및 아키텍처가 본 출원에서 설명된다. 전술한 설명에서, 설명 목적상, 특정 실시예의 완전한 이해를 제공하기 위해 많은 특정한 세부내용은 설명되지 않는다. 그러나, 본 기술에서 통상의 지식을 가진 자라면 특정 실시예는 이러한 특정 세부내용 없이 실시될 수 있다는 것을 인식할 것이다. 다른 사례에서, 설명을 모호하게 하지 않기 위하여 구조 및 디바이스는 블록도의 형태로 도시된다.
명세서에서 "일 실시예" 또는 "실시예"라는 말은 실시예와 관련하여 설명된 특별한 특징, 구조 또는 특징이 본 발명의 적어도 한 실시예에 포함된다는 것을 의미한다. 명세서의 여러 곳에서 "일 실시예에서"라는 관용구가 출현한다 하여 모두가 동일한 실시예를 언급하는 것은 아니다.
본 출원의 상세한 설명의 일부 부분은 컴퓨터 메모리 내부의 데이터 비트에 의거한 동작의 알고리즘적 및 상징적 표현의 측면에서 제시된다. 이러한 알고리즘적 설명 및 표현은 본 기술에서 통상의 지식을 가진 자에 의해 이들의 작업의 실체를 본 기술에서 통상의 지식을 가진 다른 자에게 가장 효과적으로 전달해주는데 사용되는 수단이다. 알고리즘은 본 출원에서 일반적으로 희망하는 결과에 이르는 단계의 일관성 있는 시퀀스일 것으로 생각된다. 단계는 물리량의 물리적인 조작을 요하는 단계이다. 통상, 반드시 그러하지 않지만, 이러한 양은 저장되고, 전달되고, 조합되고, 비교되며, 그렇지 않으면 조작될 수 있는 전기 또는 자기 신호의 형태를 취한다. 이러한 신호를 비트, 값, 요소, 기호, 문자, 용어, 또는 숫자 등으로 언급하는 것이 주로 공통으로 사용하는 이유 때문에 때로는 편리한 것으로 입증된다.
그러나, 이러한 용어 및 유사한 용어는 모두 적절한 물리량과 연관될 것이며 그저 그러한 양에 적용된 편리한 표시일 뿐이라는 것을 명심하여야 한다. 본 출원에서의 논의로부터 명백한 바와 같이 달리 구체적으로 언급되지 않는 한, 전체 설명에서, "처리하는" 또는 "컴퓨팅하는" 또는 "계산하는" 또는 "결정하는" 또는 "디스플레이하는" 등과 같은 용어를 활용하는 설명은 컴퓨터 시스템의 레지스터와 메모리 내에서 물리(전자)량으로서 표현되는 데이터를 조작하여 컴퓨터 시스템 메모리 또는 레지스터 또는 다른 그러한 정보 저장, 전송 또는 디스플레이 디바이스 내의 물리량으로 유사하게 표현되는 다른 데이터로 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 작동 및 프로세스를 말하는 것이라고 인식된다.
어떤 실시예는 또한 본 출원에서 동작을 수행하기 위한 장치와도 관련된다. 이러한 장치는 필요한 목적을 위해 특별하게 구성될 수 있거나, 컴퓨터 내에 저장된 컴퓨터 프로그램에 의해 선택적으로 작동되거나 재구성되는 범용 컴퓨터를 포함할 수 있다. 그러한 컴퓨터 프로그램은 다음의 것으로 한정되지 않지만, 플로피 디스크, 광디스크, CD-ROM, 및 자기-광디스크를 비롯한 임의의 형태의 디스크, 판독 전용 메모리(ROM), 다이나믹 RAM(dynamic random access memory, DRAM)과 같은 RAM, EPROM, EEPROM, 자기 또는 광학 카드, 또는 전자 명령어를 저장하기에 적합하고 컴퓨터 시스템 버스에 연결된 임의의 형태의 매체와 같은 컴퓨터 판독 가능한 저장 매체에 저장될 수 있다.
본 출원에서 제시된 알고리즘 및 디스플레이는 임의의 특정 컴퓨터나 다른 장치와 본질적으로 관련되지 않는다. 다양한 범용 시스템이 본 출원에서의 가르침에 따라서 프로그램과 함께 사용될 수 있거나, 요구된 방법 단계를 수행하기 위해 더욱 특화된 장치를 구성하는 것이 편리하다고 입증할 수 있다. 이러한 각종의 시스템에 필요한 구조는 본 출원의 설명으로부터 자명해질 것이다. 또한, 어떤 실시예는 임의의 특정한 프로그래밍 언어를 참조하여 설명되지 않는다. 각종의 프로그래밍 언어는 본 출원에서 설명된 그러한 실시예의 가르침을 구현하는데 사용될 수 있다는 것이 인식될 것이다.
본 출원에서 설명된 것 이외에, 개시된 실시예 및 그의 구현에 대해 다양한 수정이 그의 범주를 일탈하지 않고도 이루어질 수 있다. 그러므로 본 출원에서의 예시 및 예제는 예시적인 것으로 해석되어야 하며, 제한하는 의미로 해석되지 않아야 한다. 본 발명의 범주는 오직 다음의 청구범위에 의거 판단되어야 한다.

Claims (25)

  1. 라우터로서,
    제 1 입력 포트 - 상기 제 1 입력 포트는 제어 정보를 포함하는 제 1 패킷을 다른 라우터로부터 수신하는 제 1 입력 부분과, 상기 다른 라우터로부터 제 1 데이터를 수신하는 제 2 입력 부분을 포함함 - 와,
    상기 제어 정보의 평가를 수행하도록 구성된 회로를 포함하는 평가 로직 - 상기 평가 로직은 상기 제 1 패킷의 측파대 인에이블 신호를 평가하고 상기 제 1 패킷의 데이터 유효 신호를 평가하는 평가 로직을 포함함 - 과,
    상기 측파대 인에이블 신호 및 상기 데이터 유효 신호 둘 다의 상기 평가에 기초하여, 상기 라우터로부터 패킷 교환 측파대 데이터(packet-switched sideband data)를 전달하기 위해 상기 제 1 패킷을 라우팅하는 상기 라우터의 제 1 모드와, 상기 제 1 패킷에 따라서 회선 교환 채널(circuit-switched channel)을 구성하는 상기 라우터의 제 2 모드 중에서 선택을 수행하도록 구성된 회로를 포함하는 구성 로직(configuration logic)을 포함하되, 상기 회선 교환 채널은 소스 노드와 목적지 노드 사이에서 상기 제 1 데이터의 전달을 위한 것인
    라우터.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 제어 정보를 평가하는 평가 로직은 상기 측파대 인에이블 신호 및 상기 데이터 유효 신호의 불린(Boolean) AND를 평가하는 평가 로직을 포함하는
    라우터.
  4. 제 1 항에 있어서,
    상기 라우터는 방향 레지스터 파일 및 상기 방향 레지스터 파일에 기초하여 회선 교환 라우트의 방향을 결정하는 로직을 포함하며,
    상기 제 1 모드를 선택하는 구성 로직은 상기 방향 레지스터 파일에의 기록을 방지하는 구성 로직을 포함하는
    라우터.
  5. 제 4 항에 있어서,
    상기 라우터는 출력 포트 및 패킷을 상기 출력 포트에 제공하기 위해 상기 라우터의 복수의 입력 포트 중에서 선택하는 우선순위 로직을 포함하며,
    상기 방향 레지스터 파일에의 상기 기록을 방지하는 구성 로직은 상기 우선순위 로직을 디스에이블하거나 상기 우선순위 로직을 상기 방향 레지스터 파일로부터 스위칭 가능하게 연결 해제하는 구성 로직을 포함하는
    라우터.
  6. 제 1 항에 있어서,
    상기 라우터는 상기 측파대 데이터의 패킷 교환 라우팅(packet-switched routing) 및 다른 데이터의 회선 교환 라우팅(circuit-switched routing)을 동시에 수행하는
    라우터.
  7. 제 1 항에 있어서,
    상기 제 1 입력 부분은 또한 상기 다른 라우터로부터 제 2 패킷 - 상기 제 2 패킷은 제 2 제어 정보를 포함함 - 을 수신하며,
    상기 평가 로직은 상기 제 2 제어 정보의 평가를 수행하고, 상기 구성 로직은 상기 제 2 제어 정보의 평가에 기초하여,
    상기 라우터로부터 제 2 패킷 교환 측파대 데이터를 전달하기 위해 상기 제 2 패킷을 라우팅하는 상기 제 1 모드와,
    상기 제 2 패킷에 따라서 제 2 회선 교환 채널을 구성하는 제 2 모드
    중에서 선택을 수행하는
    라우터.
  8. 제 1 항에 있어서,
    상기 제 1 입력 부분을 통해 수신된 패킷 시퀀스의 각 패킷마다, 상기 평가 로직은 상기 패킷의 각각의 평가를 수행하고,
    상기 평가 로직은 상기 각각의 평가에 기초하여 상기 제 1 모드와 상기 제 2 모드 사이의 선택을 수행하는
    라우터.
  9. 제 1 항에 있어서,
    상기 라우터는 계층 네트워크(hierarchical network)의 노드로서 동작하는
    라우터.
  10. 제 9 항에 있어서,
    상기 계층 네트워크의 계층은,
    상기 라우터를 포함하는 레벨 N과,
    상기 계층에서 레벨 N보다 낮은 레벨 N-1을 포함하며,
    상기 레벨 N-1은 상기 라우터를 통해 각기 상기 레벨 N과 통신하는 복수의 노드를 포함하고, 상기 라우터는 상기 복수의 노드의 배열의 중앙에 배치되는
    라우터.
  11. 제 9 항에 있어서,
    상기 계층 네트워크의 계층은,
    제 1 노드를 포함하는 상기 계층의 최저 레벨 및 채널을 통해 상기 제 1 노드에 연결된 제 2 노드를 포함하는 상기 계층의 제 2의 최저 레벨을 포함하며,
    상기 계층 네트워크의 복수의 중계기 각각마다, 상기 네트워크의 각각의 인접한 노드로부터 상기 중계기의 거리는 상기 채널의 길이와 같은
    라우터.
  12. 제 9 항에 있어서,
    상기 라우터는 상기 계층 네트워크의 계층에서 상기 라우터의 레벨에 대응하는 값 k를 결정하는 것과,
    상기 값 k에 기초하여, 상기 패킷의 패킷 교환 라우팅의 방향을 결정하기 위해 상기 패킷의 목적지 어드레스를 평가하는 것을 더 포함하며,
    상기 목적지 어드레스는 총 n 비트를 포함하는 제 1 어드레스 값을 포함하며, 상기 평가하는 것은 상기 제 1 어드레스 값의 오직 (n-k) 비트에만 기초하여 비교를 수행하는 것을 포함하는
    라우터.
  13. 집적 회로에서의 방법으로서,
    제 1 라우터의 제 1 입력 포트에서 제 1 패킷을 수신하는 단계 - 상기 제 1 패킷은 제어 정보를 포함하며, 상기 제 1 패킷은 상기 제 1 입력 포트의 제 1 입력 부분을 통해 제 2 라우터로부터 수신됨 - 와,
    상기 제 1 입력 포트의 제 2 입력 부분을 통해 상기 제 2 라우터로부터 제 1 데이터를 수신하는 단계와,
    상기 제어 정보의 평가를 수행하는 단계 - 상기 제어 정보의 평가를 수행하는 단계는 상기 제 1 패킷의 측파대 인에이블 신호를 평가하는 단계와 상기 제 1 패킷의 데이터 유효 신호를 평가하는 단계를 포함함 - 와,
    상기 측파대 인에이블 신호와 상기 데이터 유효 신호 둘 다의 상기 평가에 기초하여,
    상기 제 1 라우터로부터 패킷 교환 측파대 데이터(packet-switched sideband data)를 전달하기 위해 상기 제 1 패킷을 라우팅하는 상기 제 1 라우터의 제 1 모드와,
    상기 제 1 패킷에 따라서 회선 교환 채널(circuit-switched channel) - 상기 회선 교환 채널은 네트워크의 소스 노드와 상기 네트워크의 목적지 노드 사이에서 상기 제 1 데이터의 전달을 위한 것임 - 을 구성하는 상기 제 1 라우터의 제 2 모드
    중에서 선택을 수행하는 단계를 포함하는
    방법.
  14. 삭제
  15. 제 13 항에 있어서,
    상기 측파대 인에이블 신호를 평가하는 단계는 상기 측파대 인에이블 신호 및 상기 데이터 유효 신호의 불린(Boolean) AND를 평가하는 단계를 포함하는
    방법.
  16. 제 13 항에 있어서,
    상기 제 1 라우터는 방향 레지스터 파일 및 상기 방향 레지스터 파일에 기초하여 회선 교환 라우트의 방향을 결정하는 로직을 포함하며,
    상기 방법은,
    상기 제 1 모드의 선택에 기초하여, 상기 방향 레지스터 파일에의 기록을 방지하는 단계를 더 포함하는
    방법.
  17. 제 16 항에 있어서,
    상기 제 1 라우터는 출력 포트 및 패킷을 상기 출력 포트에 제공하기 위해 상기 제 1 라우터의 복수의 입력 포트 중에서 선택하는 우선순위 로직을 포함하며,
    상기 방향 레지스터 파일에의 기록을 방지하는 단계는 상기 우선순위 로직을 디스에이블하는 단계 또는 상기 우선순위 로직을 상기 방향 레지스터 파일로부터 스위칭 가능하게 연결 해제하는 단계를 포함하는
    방법.
  18. 제 13 항에 있어서,
    상기 제 1 라우터는 계층 네트워크(hierarchical network)의 노드로서 동작하며,
    상기 방법은,
    상기 계층 네트워크의 계층에서 상기 제 1 라우터의 레벨에 대응하는 값 k를 결정하는 단계와,
    상기 값 k에 기초하여, 상기 패킷의 패킷 교환 라우팅의 방향을 결정하기 위해 상기 패킷의 목적지 어드레스를 평가하는 단계를 더 포함하며,
    상기 목적지 어드레스는 총 n 비트를 포함하는 제 1 어드레스 값을 포함하며, 상기 평가하는 단계는 상기 제 1 어드레스 값의 오직 (n-k) 비트에만 기초하여 비교를 수행하는 단계를 포함하는
    방법.
  19. 네트워크에서 서로 연결된 복수의 라우터를 포함하는 집적 회로 다이로서 - 상기 복수의 라우터는 제 1 라우터 및 제 2 라우터를 포함함 - ,
    상기 제 1 라우터는,
    제 1 입력 포트 - 상기 제 1 입력 포트는 제어 정보를 포함하는 제 1 패킷을 상기 제 2 라우터로부터 수신하는 제 1 입력 부분과, 상기 제 2 라우터로부터 제 1 데이터를 수신하는 제 2 입력 부분을 포함함 - 와,
    상기 제어 정보의 평가를 수행하는 평가 로직 - 상기 평가 로직은 상기 제 1 패킷의 측파대 인에이블 신호를 평가하고 상기 제 1 패킷의 데이터 유효 신호를 평가하는 평가 로직을 포함함 - 과,
    상기 측파대 인에이블 신호와 상기 데이터 유효 신호 둘 다의 상기 평가에 기초하여, 상기 제 1 라우터로부터 패킷 교환 측파대 데이터(packet-switched sideband data)를 전달하기 위해 상기 제 1 패킷을 라우팅하는 상기 제 1 라우터의 제 1 모드와, 상기 제 1 패킷에 따라서 회선 교환 채널(circuit-switched channel)을 구성하는 상기 제 1 라우터의 제 2 모드 중에서 선택을 수행하는 구성 로직을 포함하되, 상기 회선 교환 채널은 소스 노드와 목적지 노드 사이에서 상기 제 1 데이터의 전달을 위한 것인
    집적 회로 다이.
  20. 삭제
  21. 제 19 항에 있어서,
    상기 제 1 라우터는 방향 레지스터 파일 및 상기 방향 레지스터 파일에 기초하여 회선 교환 라우트의 방향을 결정하는 로직을 포함하며,
    상기 제 1 모드를 선택하는 구성 로직은 상기 방향 레지스터 파일에의 기록을 방지하는 구성 로직을 포함하는
    집적 회로 다이.

  22. 제 19 항에 있어서,
    상기 제 1 라우터는 상기 측파대 데이터의 패킷 교환 라우팅(packet-switched routing) 및 다른 데이터의 회선 교환 라우팅(circuit-switched routing)을 동시에 수행하는
    집적 회로 다이.
  23. 라우터로서,
    다른 라우터로부터 목적지 어드레스를 포함하는 제 1 패킷을 수신하는 제 1 입력 포트 - 상기 목적지 어드레스의 제 1 어드레스 값은 총 n 비트를 포함함 - 와,
    계층 네트워크의 계층에서 상기 라우터의 레벨에 대응하는 값 k를 결정하도록 구성된 회로를 포함하는 방향 로직 - 상기 방향 로직은 또한 상기 값 k에 기초하여, 상기 제 1 패킷의 패킷 교환 라우트의 방향을 결정하기 위해 상기 목적지 어드레스를 평가하며, 상기 방향 로직은 상기 제 1 어드레스 값에 기초하여 비교를 수행하며, 상기 비교는 상기 제 1 어드레스 값의 상기 n 비트 중에서, 오직 (n-k) 비트에만 기초함 - 과,
    상기 라우터로부터 상기 제 1 패킷을 전송하는 출력 포트를 포함하고,
    상기 제 1 패킷은 상기 패킷 교환 라우트의 방향에 따라서 상기 계층 네트워크 내에서 라우팅되는
    라우터.
  24. 제 23 항에 있어서,
    상기 계층은,
    상기 라우터를 포함하는 레벨 N과,
    상기 계층에서 레벨 N보다 낮은 레벨 N-1을 포함하며,
    상기 레벨 N-1은 상기 라우터를 통해 각기 상기 레벨 N과 통신하는 복수의 노드를 포함하고, 상기 라우터는 상기 복수의 노드의 배열의 중앙에 배치되는
    라우터.
  25. 제 23 항에 있어서,
    상기 계층의 최저 레벨은 제 1 노드를 포함하고 상기 계층의 제 2의 최저 레벨은 채널을 통해 상기 제 1 노드에 연결된 제 2 노드를 포함하며,
    상기 계층 네트워크의 복수의 중계기에 대해, 상기 네트워크의 각각의 인접한 노드로부터 상기 중계기의 거리는 상기 채널의 길이와 같은
    라우터.
KR1020167003253A 2013-09-06 2013-09-06 하이브리드 회선 교환 및 패킷 교환 라우터의 아키텍처 및 그 방법 KR101802810B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/058630 WO2015034525A1 (en) 2013-09-06 2013-09-06 Architecture and method for hybrid circuit-switched and packet-switched router

Publications (2)

Publication Number Publication Date
KR20160030550A KR20160030550A (ko) 2016-03-18
KR101802810B1 true KR101802810B1 (ko) 2017-11-29

Family

ID=52625569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167003253A KR101802810B1 (ko) 2013-09-06 2013-09-06 하이브리드 회선 교환 및 패킷 교환 라우터의 아키텍처 및 그 방법

Country Status (5)

Country Link
US (1) US9634866B2 (ko)
EP (1) EP3042304A4 (ko)
KR (1) KR101802810B1 (ko)
CN (1) CN105765557B (ko)
WO (1) WO2015034525A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105637821B (zh) * 2013-10-22 2020-06-05 慧与发展有限责任合伙企业 混合电路-分组交换机
US9680459B2 (en) 2014-12-11 2017-06-13 Intel Corporation Edge-aware synchronization of a data signal
US9680765B2 (en) 2014-12-17 2017-06-13 Intel Corporation Spatially divided circuit-switched channels for a network-on-chip
US9940236B2 (en) 2014-12-17 2018-04-10 Intel Corporation Pointer chasing across distributed memory
US9992042B2 (en) 2014-12-17 2018-06-05 Intel Corporation Pipelined hybrid packet/circuit-switched network-on-chip
US9866476B2 (en) * 2014-12-17 2018-01-09 Intel Corporation Parallel direction decode circuits for network-on-chip
US11321263B2 (en) 2014-12-17 2022-05-03 Intel Corporation High bandwidth core to network-on-chip interface
US9923730B2 (en) 2014-12-17 2018-03-20 Intel Corporation System for multicast and reduction communications on a network-on-chip
US9979668B2 (en) 2014-12-22 2018-05-22 Intel Corporation Combined guaranteed throughput and best effort network-on-chip
US9787571B2 (en) 2014-12-22 2017-10-10 Intel Corporation Link delay based routing apparatus for a network-on-chip
US9961019B2 (en) 2014-12-22 2018-05-01 Intel Corporation Adaptively switched network-on-chip
US9577634B2 (en) * 2015-06-25 2017-02-21 Intel Corporation Scalable crossbar apparatus and method for arranging crossbar circuits
US10237180B2 (en) * 2015-11-25 2019-03-19 Volta Networks, Inc. Network routing systems and techniques
US9992135B2 (en) * 2015-12-11 2018-06-05 Intel Corporation Apparatus and method for fusion of compute and switching functions of exascale system into a single component by using configurable network-on-chip fabric with distributed dual mode input-output ports and programmable network interfaces
US10594593B2 (en) 2016-03-29 2020-03-17 British Telecommunications Public Limited Company Methods and apparatus for transmitting data
CN106022590B (zh) * 2016-05-13 2019-12-10 国网北京市电力公司 有源配电网的电压质量评估方法和装置
US11113223B1 (en) * 2018-04-03 2021-09-07 Xilinx, Inc. Dual mode interconnect
SG11202106270UA (en) 2018-12-12 2021-07-29 Interactic Holdings Llc Method and apparatus for improved data transfer between processor cores

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060117367A1 (en) * 2002-10-22 2006-06-01 Lyle James D Integrated addressing scheme for use in a system having a tree structure
US20060159049A1 (en) * 2005-01-18 2006-07-20 Samsung Electronics Co., Ltd. Method and apparatus for minimizing hand-off time using mobile node information
US20130138858A1 (en) * 2011-11-29 2013-05-30 Robert P. Adler Providing A Sideband Message Interface For System On A Chip (SoC)
US20130142066A1 (en) * 2011-03-28 2013-06-06 Panasonic Corporation Router, method for controlling router, and program

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6882640B1 (en) * 2000-09-22 2005-04-19 Siemens Communications, Inc. System and method for utilizing circuit switched and packet switched resources
US7110371B2 (en) * 2002-08-28 2006-09-19 Intel Corporation System and method to communicate between a host and a modem
US7852876B2 (en) 2004-05-05 2010-12-14 M-Stack Limited Apparatus, and an associated method, for routing data through logical layers of a communication device
WO2007101877A1 (de) * 2006-03-08 2007-09-13 Siemens Home And Office Communication Devices Gmbh & Co. Kg Verfahren und konfigurations-softwareaktualisierungsserver zum übertragen von daten zwischen einem kundengerät und dem server
US20090117884A1 (en) * 2006-03-08 2009-05-07 Siemens Home And Office Communication Devices Gmbh & Co. Kg Method and telephone for use of telephone book data stored in a telephone book data bank of a server
US8194690B1 (en) * 2006-05-24 2012-06-05 Tilera Corporation Packet processing in a parallel processing environment
US8284766B2 (en) 2007-12-28 2012-10-09 Intel Corporation Multi-core processor and method of communicating across a die
CN103209128B (zh) * 2013-03-06 2016-03-30 中国人民解放军国防科学技术大学 同时支持数据报和虚电路服务的数据转发方法及路由器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060117367A1 (en) * 2002-10-22 2006-06-01 Lyle James D Integrated addressing scheme for use in a system having a tree structure
US20060159049A1 (en) * 2005-01-18 2006-07-20 Samsung Electronics Co., Ltd. Method and apparatus for minimizing hand-off time using mobile node information
US20130142066A1 (en) * 2011-03-28 2013-06-06 Panasonic Corporation Router, method for controlling router, and program
US20130138858A1 (en) * 2011-11-29 2013-05-30 Robert P. Adler Providing A Sideband Message Interface For System On A Chip (SoC)

Also Published As

Publication number Publication date
EP3042304A1 (en) 2016-07-13
WO2015034525A1 (en) 2015-03-12
CN105765557A (zh) 2016-07-13
CN105765557B (zh) 2019-03-26
KR20160030550A (ko) 2016-03-18
US20150071282A1 (en) 2015-03-12
EP3042304A4 (en) 2017-06-07
US9634866B2 (en) 2017-04-25

Similar Documents

Publication Publication Date Title
KR101802810B1 (ko) 하이브리드 회선 교환 및 패킷 교환 라우터의 아키텍처 및 그 방법
US9742630B2 (en) Configurable router for a network on chip (NoC)
US11003604B2 (en) Procedures for improving efficiency of an interconnect fabric on a system on chip
US8401012B2 (en) Packet routing
KR101937211B1 (ko) 상호 연결에서 이종 채널 용량
JP3894957B2 (ja) 大きな網目状接続コストを伴う大容量データを管理するための、2次元または多次元プログラマブルセル構造を有するモジュール並びにdfpに対する内部バスシステム
US9185023B2 (en) Heterogeneous SoC IP core placement in an interconnect to optimize latency and interconnect performance
US7801033B2 (en) System of virtual data channels in an integrated circuit
US7439763B1 (en) Scalable shared network memory switch for an FPGA
WO2011137813A2 (zh) 先进可扩展接口总线以及相应的数据传输方法
US11730325B2 (en) Dual mode interconnect
US9185026B2 (en) Tagging and synchronization for fairness in NOC interconnects
JPH05241947A (ja) 分散クロスバー・スイッチ・アーキテクチャにおける交換接続の配列。
US20140032731A1 (en) Recursive, All-to-All Network Topologies
US7568074B1 (en) Time based data storage for shared network memory switch
US10983910B2 (en) Bandwidth weighting mechanism based network-on-chip (NoC) configuration
Lusala et al. A SDM-TDM based circuit-switched router for on-chip networks
CN107276920A (zh) 一种应用于混合三维片上网络的分布式流控系统及机制
US20180198682A1 (en) Strategies for NoC Construction Using Machine Learning
US7730276B1 (en) Striping of data into memory of a network data switch to prevent read and write collisions
US10990552B1 (en) Streaming interconnect architecture for data processing engine array
US20140082215A1 (en) Arbitrating between data paths in a bufferless free flowing interconnect
Chatmen et al. A new network on chip design dedicated to multicast service
US11144457B2 (en) Enhanced page locality in network-on-chip (NoC) architectures
US7996604B1 (en) Class queue for network data switch to identify data memory locations by arrival time

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