KR20100134004A - 익스프레스 가상 채널을 사용하기 위한 방법, 라우터 노드 및 인스트럭션 세트 - Google Patents

익스프레스 가상 채널을 사용하기 위한 방법, 라우터 노드 및 인스트럭션 세트 Download PDF

Info

Publication number
KR20100134004A
KR20100134004A KR1020107022092A KR20107022092A KR20100134004A KR 20100134004 A KR20100134004 A KR 20100134004A KR 1020107022092 A KR1020107022092 A KR 1020107022092A KR 20107022092 A KR20107022092 A KR 20107022092A KR 20100134004 A KR20100134004 A KR 20100134004A
Authority
KR
South Korea
Prior art keywords
express
virtual channel
node
flow control
control unit
Prior art date
Application number
KR1020107022092A
Other languages
English (en)
Other versions
KR101170262B1 (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 KR20100134004A publication Critical patent/KR20100134004A/ko
Application granted granted Critical
Publication of KR101170262B1 publication Critical patent/KR101170262B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/33Flow control; Congestion control using forward notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/40Wormhole routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • 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/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix

Abstract

본 발명은 칩상의 구성요소 네트워크에서 익스프레스 가상 채널을 사용하기 위한 방법, 라우터 노드 및 인스트럭션 세트에 관한 것이다. 입력 링크(302)는 익스프레스 가상 채널(110)을 통한 패킷-교환 네트워크에서 소스 노드(102)로부터 익스프레스 흐름 제어 유닛을 수신할 수 있다. 출력 링크(306)는 익스프레스 흐름 제어 유닛을 싱크 노드(106)로 송신할 수 있다. 스위치 할당기(322)는 익스프레스 흐름 제어 유닛을 출력 링크(306)로 전송할 수 있다.

Description

익스프레스 가상 채널을 사용하기 위한 방법, 라우터 노드 및 인스트럭션 세트{EXPRESS VIRTUAL CHANNELS IN A PACKET SWITCHED ON-CHIP INTERCONNECTION NETWORK}
본 발명은 전반적으로 칩 멀티-프로세서상의 구성요소들 간의 통신 분야에 관한 것이다. 보다 구체적으로, 본 발명은 칩 멀티-프로세서상의 구성요소들 간의 익스프레스 가상 통신 채널 생성에 관한 것이다.
칩 멀티-프로세서(CMP) 또는 애플리케이션-특정 시스템-온-칩(ASOC)은 서로 통신해야 하는 다수의 구성요소들을 구비할 수 있다. 이들 구성요소들은 프로세서, 캐시, 데이터 레지스터 또는 그외의 칩 구성요소들과 같은 아이템을 포함할 수 있다. 칩 구성요소는 버스 시스템 또는 전용 와이어 시스템을 사용하여 통신할 수 있다. 두 시스템 모두 신호 간의 간섭을 야기할 뿐 아니라 칩 상의 요긴한 공간을 많이 차지할 수 있는 다수의 와이어를 필요로 할 수 있다.
구성요소들은 패킷-스위칭 시스템을 사용함으로써 보다 많은 공간에서 효율적인 방식으로 통신할 수 있다. 패킷-스위칭 시스템은 구성요소로부터 구성요소로 데이터 패킷을 전달함으로써 동작할 수 있으며, 이는 임의의 두 구성요소들 간의 와이어의 양을 감소시킨다.
도면에는 단지 본 발명의 전형적인 실시예들만이 도시되었으며, 따라서 이러한 도면이 본 발명의 범주를 제한하는 것으로 간주되어서는 안 된다. 본 발명은 첨부된 도면을 통해서 구체적이고 자세하게 기술 및 설명될 것이다.
도 1은 칩 멀티프로세서 구성요소 데이터 패킷 전송의 일 실시예를 도시한 블록도.
도 2는 칩 상의 구성요소 네트워크의 일 실시예를 2차원 메시 네트워크(mesh network)로서 도시한 도면.
도 3은 익스프레스 가상 채널을 구현하는 라우터 노드 마이크로-아키텍처의 일 실시예를 도시한 블록도.
도 4는 칩 상의 동적 익스프레스 가상 채널 구성요소 네트워크의 일 실시예를 2차원 메시 네트워크로서 도시한 도면.
도 5는 칩 상의 라우트-플렉서블한(route-flexible) 동적 익스프레스 가상 채널 구성요소 네트워크의 일 실시예를 도시한 도면.
도 6은 가상 채널로부터의 데이터 패킷을 프로세싱하기 위한 라우터 노드에 대한 방법의 일 실시예를 도시한 순서도.
도 7은 익스프레스 가상 채널 네트워크 내의 결핍 발생의 일 실시예를 메시 네트워크 내에 도시한 도면.
도 8은 정상 가상 채널 크레딧 기반의 버퍼 관리 시스템의 일 실시예를 타임라인에 도시한 도면.
도 9는 익스프레스 가상 채널 크레딧 기반의 버퍼 관리 시스템의 일 실시예를 타임 라인에 도시한 도면.
도 10은 정적 버퍼 관리 시스템에 대한 버퍼 카운트의 일 실시예를 도시한 블록도.
도 11은 동적 공유 버퍼 관리 시스템에 대한 버퍼 카운트의 일 실시예를 도시한 블록도.
도 12는 소정의 노드로/로부터 이용가능할 수 있는 경로들의 조합의 일 실시예를 도시한 블록도.
도 13은 가상 채널의 정적 분할의 일 실시예를 도시한 블록도.
도 14는 라우터 노드로서 동작할 수 있는 컴퓨터 시스템의 일 실시예를 도시한 블록도.
본 발명의 추가적인 특성 및 장점이 아래의 설명에서 기술되어 부분적으로는 아래의 설명으로부터 명백해질 것이며, 이는 본 발명을 실시함으로써 알 수 있을 것이다. 본 발명의 특성 및 장점은 첨부된 특허청구범위에 구체적으로 명시된 장치 및 조합물에 의해 구현 및 획득될 수 있다. 본 발명의 이러한 특성과 그외의 특성이 아래의 설명과 첨부된 특허청구범위로부터 보다 명백해질 것이며, 이는 본 명세서에 서술된 바와 같은 본 발명의 실시를 통해 알 수 있을 것이다.
본 발명의 다수의 실시예들이 아래에서 자세하게 기술되었다. 특정한 구현이 기술되었지만, 이것은 단지 예시적인 것임을 이해해야 한다. 당업자는 본 발명의 사상 및 범주로부터 벗어나지 않고 다른 구성요소와 구성이 사용될 수 있음을 이해할 것이다.
본 발명은 본 발명의 기본 개념과 관련된 방법, 장치 및 컴퓨터 인스트럭션 세트와 같은 다수의 실시예들 및 그외의 실시예들을 포함한다. 칩 상의 구성요소 네트워크에서 익스프레스 가상 채널을 사용하기 위한 방법, 라우터 노드 및 인스트럭션 세트가 개시되었다. 입력 링크는 익스프레스 가상 채널을 통해 패킷-스위칭되는 네트워크 내에서 소스 노드로부터 익스프레스 흐름 제어 유닛을 수신할 수 있다. 출력 링크는 익스프레스 흐름 제어 유닛을 싱크 노드로 전송할 수 있다. 스위치 할당기는 익스프레스 흐름 제어를 출력 링크로 직접 포워딩할 수 있다.
칩 멀티-프로세서(CMP) 또는 애플리케이션-특정 시스템 온 칩(ASOC)은 서로 통신해야 하는 다수의 구성요소들을 구비할 수 있다. 이들 구성요소들은 과도한 칩 공간을 사용하지 않고 데이터를 전달하도록 패킷 스위칭을 사용할 수 있다. 도 1은 칩 멀티프로세서 구성요소 데이터 전송(100)의 일 실시예를 도시한 블록도이다. 소스 노드(102)로서 동작하는 구성요소는 데이터의 세트를 데이터 패킷으로 조직할 수 있다. 데이터 패킷은 하나 이상의 흐름 제어 유닛(FLIT)으로 분리될 수 있다. 소스 노드(102)는 각 FLIT를 가장 근접한 이용가능한 구성요소로 전송할 수 있다. 라우터 노드(104)로서 동작하는 수신 구성요소는, 싱크 노드(106)로서 동작하는 구성요소가 도달할 때까지 다음으로 근접한 이용가능한 구성요소로 데이터를 전송할 수 있다. FLIT이 소스 노드(102)로부터 싱크 노드(106)로 흐르는 경로는 가상 채널로 조직될 수 있다. 정상 가상 채널(NVC)(108)에서, 소스 노드(102)는 FLIT을 버퍼링할 수 있는 라우터 노드(104)로 FLIT을 전송하고, 해당 FLIT과 파이프라인을 통해 오는 다른 FLIT를 조직할 수 있으며, 그 다음 FLIT를 출력 링크로 전송하고, 이는 다시 다음 라우터 노드(104) 또는 싱크 노드(106)로 전송될 것이다.
익스프레스 가상 채널(EVC)(110)은 전용 링크의 대기시간 및 에너지에 도달함으로써 패킷화된 온-칩 네트워크와 이상적인 상호접속 패브릭 사이의 성능 및 에너지 격차를 줄이는 데에 사용될 수 있다. EVC(110)는 FLIT가 노드의 쌍 사이에 사전규정된 경로에 따라 중간 라우터 노드(104)를 바이패싱하도록 할 수 있다. EVC(110) 상에서의 FLIT 이동은 다른 FLIT에 대해 주어진 선호일 수 있으며, 그에 따라 버퍼링되지 않고 출력 링크를 직접 사용하며 각 라우터 노드(104)에서 라우터 파이프라인을 통과해야만 하도록 할 수 있다. EVC(110)는 임의의 회로 셋업 페이즈, 패킷 전송 대기시간에 대한 뚜렷한 컷다운 없이 회로 스위칭과 유사한 방식으로 네트워크 내에서의 흐름의 생성을 용이하게 할 수 있다. 또한, FLIT가 가상으로 중간 라우터 노드(104)를 바이패싱하는 것을 가능케 함으로써, EVC(110)는 버퍼링 정도, 라우터 스위칭 동작 및 홉(hop)당 리소스 컨텐션을 감소시킬 수 있으며, 에너지 및 영역 효율성을 증가시킨다.
도 2는 정적 EVC 패킷 스위칭된 네트워크(200)의 일 실시예를 2차원 메시 네트워크로서 도시한다. 패킷 스위칭된 칩 멀티프로세서 네트워크가 언급되었지만, EVC(110)는 임의의 패킷 스위칭된 네트워크에서 사용될 수 있다. 메시 네트워크의 크기 및 2차원 특성은 예시적인 것이며 본 발명의 목적을 제한하는 것은 아니다. 각 노드(202)는 소스 노드(102), 라우터 노드(104) 또는 싱크 노드(106)로서 동작할 수 있다. 네트워크(200) 내의 각 노드(202)는 NVC(108)에 의해 인접하는 노드(202)로 접속될 수 있다. 또한, 노드(202)는 EVC(110)에 의해 인접하지 않는 노드로 접속될 수 있으며, 이는 FLIT가 임의의 라우터 노드(104)에서 정지 또는 버퍼링하지 않고 사전정의된 경로를 따라서 복수의 중간 노드 또는 라우터 노드(104)를 가로지르는 것을 허용한다. 예를 들어, 노드 B로부터 노드 G로의 FLIT 이동은 노드 B로부터 노드 D로의 규칙적인 NVC 경로(108)를 취할 수 있으며, 그 다음 노드 D로부터 노드 G로의 EVC(110) 또는 링크를 취할 수 있다. EVC(110)는 노드 E 및 F와 같은 라우터 노드(104)를 통해 대기시간을 제거할 수 있으며, 라우터 노드(104) 상의 모든 버퍼 동작을 제거함으로써 파워를 절약한다. 정적 EVC 네트워크에서, 특정한 소스 노드(102) 및 싱크 노드(106)가 EVC(110)에 의해 접속될 수 있다. 네 개의 노드의 정적 EVC(110)가 현재의 예시에서 사용되었지만, 더 길거나 짧은 길이의 정적 EVC(110)가 선택되어 사용될 수도 있다.
라우터는 가상 채널 흐름 제어의 최상단의 익스프레스 링크를 구현할 수 있다. 라우터는 익스프레스 경로 상에서 이동하는 데이터 패킷에 의해서만 가입될 수 있는 가상 채널을 지정할 수 있다. 도 3은 EVC(110)을 구현하는 라우터 노드 마이크로-아키텍처(300)의 일 실시예를 도시한 블록도이다. 라우터 노드(104)는 입력 링크(302) 상의 가상 채널을 통해 FLIT을 수신하며 FLIT을 흐름 제어 모듈(304)로 보낼 수 있다. 흐름 제어에 사용되는 가상 채널은 NVC(108) 및 EVC(110)로서 구성될 수 있다. 흐름 제어 모듈(304)은 어느 FLIT을 크로스바 스위치(308)에 의해 선택된 출력 링크(306)로 포워딩할지를 선택하는 FLIT 우선순위를 결정하는 데에 가상 채널을 사용할 수 있다.
라우트 계산 로직 모듈(route computation logic module)(310)은 각 라우터 노드(104)에서 소스 노드(102)와 싱크 노드(106) 사이에서 이동하는 데이터 패킷의 경로 또는 라우트 계산을 계산할 수 있다. 라우트 계산 로직 모듈(310)은 데이터 패킷이 EVC(110) 상에 위치될 수 있는지의 자격을 부여할 수 있다. 또한, 라우트 계산 로직 모듈(310)은, 데이터 패킷이 노드 또는 EVC 경로(110) 엔드포인트에 도달하면 라우트 계산이 라우터 파이프라인의 중요한 경로에서 필요치 않도록 모든 데이터 패킷에 대한 예견(look-ahead) 라우팅을 실행할 수 있다. 라우트 계산은 어떠한 방식으로도 사용되는 기본 라우팅 알고리즘에 영향을 미치지 않는다. EVC 할당기(312)는 노드들의 쌍 사이에서의 이동을 위해 익스프레스 레인을 사용하고자 하는 데이터 패킷에 EVC(110)를 할당할 수 있는 반면, NVC 할당기(314)는 이웃하는 노드로 이동하고자 하는 다른 데이터 패킷에 NVC(108)를 할당할 수 있다.
흐름 제어 모듈(304)은 EVC 입력 버퍼(EVC BUF)(316)를 통해 EVC(110)로부터 또는 NVC 입력 버퍼(NVC BUF)(318)를 통해 NVC(108)로부터 FLIT를 수신할 수 있다. EVC 래치(320)는 자신의 익스프레스 경로(110) 상에서 임의의 라우터 노드(104)를 통과할 때 FLIT를 스테이지(stage)할 수 있다. EVC 래치(320)를 통한 FLIT 이동은 동일한 출력 포트(306) 상에서의 임의의 다른 데이터 패킷 흐름을 미연에 방지할 수 있다. EVC 래치(320)는 두 노드들 사이에서의 진행중인 데이터 패킷 전송이 하위 우선순위의 EVC 흐름과 같이 소스 노드(102)에 의해 전달되는 것을 방해할 수 있다.
스위치 할당기(322)는 NVC 흐름(108)보다 EVC 흐름(110)를 선호할 수 있다. 스위치 할당기(322)는 보다 많은 홉을 갖는 FLIT의 EVC 흐름(110)가 해당 라우터 노드(104)를 사용할 수 있도록 소스 노드(102)에서 보다 적은 홉을 갖는 FLIT의 EVC 흐름(110)를 방해할 수 있다. 스위치 할당기(322)는 더 멀리 있는 소스 노드(102)로부터의 FLIT의 EVC 흐름(110)이 해당 라우터 노드(104)를 사용할 수 있도록 더 가까운 소스 노드(102)에서 FLIT의 EVC 흐름(110)를 방해할 수 있다.
네트워크(200)는 EVC(110) 및 NVC(108)로 정적으로 분할될 수 있거나, 또는 보다 동적으로 생성된 가상 채널들을 구비할 수 있다. 도 4는 동적 EVC 패킷 스위칭된 네트워크(400)의 일 실시예를 2차원 메시 네트워크로서 도시하였다. 동적 EVC 패킷 스위칭된 네트워크(400)에서, 노드들(202) 사이의 홉들의 임의의 세트는 동적 EVC(402)로서 지정될 수 있다. EVC 경로(402)의 길이는 구성요소 네트워크 제한에 의해 결정되는 최대 EVC 길이 내에서, 소정의 데이터 경로의 경로에 대해 필요한 바에 따른 크기를 가질 수 있다. 예를 들어, 정적 EVC 네트워크(200)에서, 소스 노드(102)는 단일 홉 NVC 경로(108)를 통해 노드 B로부터 노드 C 및 노드 C로부터 노드 D로, 그리고 정적으로 할당되는 EVC 경로(110)를 통해 노드 D로부터 노드 G로 횡단할 수 있다. 3-홉 최대 EVC 경로(402)를 허용하는 동적 네트워크에서, 소스 노드(102)는 노드 B로부터 노드 E로 직접 FLIT를 전송할 수 있으며, 그 다음 노드 G로 가기 위해 2-홉 길이의 서브셋 EVC 경로(402)를 사용할 수 있다.
도 5는 칩(500) 상의 루트 플렉시블(route-flexible) 동적 EVC 컴포넌트 네트워크의 일실시예를 블록도로서 도시한 것이다. 때론, 데이터 경로는 자원 제한으로 인해 가장 긴 EVC 경로(502)와 같은 최적의 EVC 경로(502)를 사용할 수 없을 수도 있다. 이 경우, 소스 노드(102)는 가용 자원을 가지고 그 다음의 보다 짧은 EVC 경로(504)와 같은 다른 EVC 경로(504)를 통해 FLIT를 전송 수도 있다. 예컨대, 소스 노드 A(102)가 FLIT를 싱크 노드 G로 송신하는 가장 효율적인 데이터 경로는 FLIT를 소스 노드 A(102)로부터 제 1 최적의 EVC 경로(502)를 따라 노드 D로 직접 전송한 후에, 라우터 노드 D(104)로부터 제 2 최적의 EVC 경로(502)를 따라 싱크 노드 G(106)로 전송하는 것일 수 있다. 그러나, 가장 효율적인 데이터는 가용 자원을 갖지 않을 수도 있다. 소스 노드 A(102)는 FLIT를 다른 경로(504)를 따라 싱크 노드로 전송할 수도 있다. 소스 노드 A(102)는 FLIT를 다른 EVC 경로(504)를 따라 라우터 노드 C(104)로 전송한 다음, 라우터 노드 C(104)로부터 라우터 노드 E(104)로 전송하고, 그 다음에 라우터 노드 E(104)로부터 싱크 노드 G(106)로 전송할 수 있다. EVC 할당기(212)는 데이터 패킷의 라우팅 정보를 고려하여 최선의 루트를 결정할 수 있다.
도 6은 라우터 노드에서 가상 채널로부터의 FLIT를 처리하기 위한 방법(600)의 일실시예를 도시한 순서도이다. 라우터 노드(104)는 가상 채널(VC)를 통해 FLIT를 수신할 수 있다(블록 602). FLIT가 정상 FLIT(NF)이면(블록 604), 라우터 노드(104)는 입력 버퍼에 NF를 저장하고(블록 606), 그 후 NF를 처리한다(블록 608). NF는 라우터 노드(104)가 소스 노드(102)인 FLIT, NVC(108) 상의 이웃 노드로부터 라우터 노드(104)에 도달한 FLIT 또는 라우터 노드(104)가 EVC(110)의 종착점이지만 싱크 노드(106)는 아닌 FLIT일 수 있다. 입력 포트는, NVC(108)에 도달하는 경우에는 NVC 입력 버퍼(318)가 될 수 있고, 또는 EVC(110)에 도달하는 경우에는 EVC 입력 버퍼(316)가 될 수 있다. 라우터 노드(104)는 처리된 NF를 출력 링크(306)로 전송할 수 있다(블록 610). FLIT가 익스프레스 FLIT(EF; express FLIT)(110)이면(블록 604), 라우터 노드(104)는 EF를 출력 링크(306)로 전송할 수 있다(블록 612). 익스프레스 FLIT는 EVC(110)의 중간에서 라우터 노드(104)에 의해 수신된 FLIT일 수 있다.
특정 메시지 흐름에 대한 대역폭을 사전 예약하는 임의의 네트워크에서는, 사전 확립된 회로 블록 상에서 진행하는 메시지가 다른 메시지를 차단하는 경우에 결핍(starvation)이 발생할 수 있다. 도 7은 EVC 네트워크에서의 결핍(700)의 사건의 일실시예를 메시 네트워크로 도시한 것이다. 보다 높은 우선순위가 EF(702)에 주어지면 결핍 시나리오(starvation scenario)(704)가 발생할 수 있다. 보다 구체적으로, EVC(702)의 경로를 따른 라우터 노드 D(104)가 서비스로의 EF를 가지면, 라우터 노드 D(104)에 국부적으로 버퍼링된 NF는 물리적 채널을 사용할 기회를 절대 얻지 못할 수 있다. 추가 업스트림으로부터의 익스프레스 데이터 패킷 또한 계속해서 다운스트림 라우터에서 출발하는 다른 EVC(110) 상에서 익스프레스 데이터 패킷을 갖지 못할 수 있다.
이것을 해결하기 위해, 각각의 라우터 노드(104)는 라우터 노드(104)가 특정 EVC 경로(110)를 갖지 않는 연속 사이클의 수의 카운트를 관리할 수 있다. 연속 사이클의 수의 임계값(threshold) 동안 익스프레스 FLIT를 서비스 한 후, 라우터 노드(104)는 "결핍 개선 시작(Begin Starvation Remediation)" 메시지와 같은 결핍 메시지 또는 "결핍 시작(Starvation On)" 토큰을 크레딧 채널을 따라 EVC 소스 노드 A(102)로 상향 송신한다. 이 토큰을 수신하면, 소스 노드 A(102)는 대응 링크 상에서의 EF 송신을 중지하고, 국부적으로 결핍된 FLIT가 서비스될 수 있게 한다. 소정 수의 사이클 동안 그렇게 한 후에, 라우터 노드 D(104)는 "결핍 개선 종료(End Starvation Remediation)" 메시지 또는 "결핍 오프(Starvation Off)" 토큰을 EVC 소스 노드 A(102)로 송신하여 EVC 통신이 재개될 수 있음을 통지할 수 있다.
도 6에 도시된 바와 같이, EF의 경우, 동일 출력 포트(306)를 향하는 NF가 버퍼링되면(블록 614), 라우터 노드(104)는 결핍 카운트(SCT)를 증분시킬 수 있다(블록 616). 라우터 노드(104)는 SCT가 결핍 임계값(STHR)에 도달했는지를 확인하기 위해 SCT를 체크할 수 있다(블록 618). SCT가 STHR에 도달했으면(블록 618), 라우터 노드(104)는 "결핍 개선 시작" 메시지(BSRM)를 모든 EVC 소스 노드(102)로 송신할 수 있다(블록 620). 적절한 모든 업스트림 노드가 BRSM을 수신할 수 있도록 충분한 시간이 지난 후에, 라우터 노드(104)는 라우터 노드가 EF를 수신하고 있지 않는 동안 결핍 개선 모드로 진입할 수 있다. 라우터 노드(104)가 결핍 개선 모드에 있는 동안, EVC 소스 노드(102)는 EF의 전송을 멈출 수 있고, EF를 리라우트할 수도 있으며 또는 다른 보상 동작을 취할 수도 있다. 라우터 노드(104)는 결핍 개선 주기 카운터(SRP)를 0으로 설정할 수 있다(블록 622).
NF의 경우, 라우터 노드(104)가 결핍 개선 모드에 있지 않으면(블록 624), 라우터 노드(104)는 SCT를 0으로 리셋할 수 있다(블록 626). 라우터 노드(104)가 결핍 개선 모드에 있으면(블록 624), 라우터 노드(104)는 NF가 성공적으로 출력 포트(306)로 라우팅되면 SRP를 증분시킬 수 있다(블록 628). 결핍 개선 주기가 끝나면(블록 630), 라우터 노드(104)는 "결핍 개선 종료" 메시지(ESRM)를 모든 업스트림 EVC 소스 노드(102)로 송신하여, 라우터 노드(104)가 한번 더 EF를 수신하고 있음을 통지한다(블록 632).
칩 상의 컴포넌트 네트워크는 버퍼링된 흐름 제어 기법을 이용하여 버퍼를 관리하고 인접 라우터 노드(104) 사이에서 그들의 가용성을 통신한다. 다운스트림 노드는 이용가능한 빈 버퍼의 수를 백프레셔(backpressure)를 통해 업스트림 노드에 알려준다. 크레딧 기반 버퍼 관리는 업스트림 라우터를 사용하여 다운스트림에 이용가능한 빈 버퍼의 수의 카운트를 관리한다. 이 카운트는 FLIT가 송신될 때마다 감분되어 다운스트림 버퍼를 소비할 수 있다. FLIT가 다운스트림 노드를 떠나 관련 버퍼를 비우면, 크레딧이 다시 업스트림으로 전송되고 대응하는 빈 버퍼 카운트가 증분될 수 있다.
컴포넌트 네트워크는 단순한 버퍼 관리 체계를 사용하여 가상 채널에 대한 크레딧 라운드 트립 지연과 같은 각각의 가상 채널에 버퍼링을 정적으로 할당할 수 있다. 도 8은 NVC(108) 크레딧 기반 버퍼 관리 시스템의 일실시예를 타임라인으로 도시한 것이다. 시간 t1에서, 노드 B는 FLIT를 다음 노드로 전송하고(화살표 802), 노드 B는 t1과 t2 사이에 크레딧을 노드 A로 전송할 수 있다(화살표 804). 노드 A는 t2와 t3 사이에 크레딧을 처리할 수 있다(화살표 806). 노드 A는 t3와 t4 사이에 FLIT를 노드 B로 전송하는(화살표 802) 동안 크레딧을 이전의 노드로 전송할 수 있다(화살표 804). 노드 B는 t4에서 t5까지 비 익스프레스 파이프라인에서 FLIT를 처리할 수 있다. 따라서, 크레딧 라운드 트립 지연(TCRN)이 t1에서 t5로 취해질 수 있다.
EVC(110)를 사용하는 경우, 다운스트림 EVC 싱크 노드(106)에서 빈 버퍼를 확인하기 위해 버퍼 가용성에 대한 통신이 몇몇 홉을 따라 행해질 수 있다. 버퍼 가용성에 대한 멀티 홉 통신은 버퍼 처리 시간을 보다 길게 하여 수율에 악영향을 줄 수 있다. 도 9는 EVC(110) 크레딧 기반의 버퍼 관리 시스템(900)의 일실시예를 타임라인으로 도시한 것이다. 시간 t1에서, 노드 D는 FLIT를 다음 노드로 전송하고(화살표 902), 노드 D는 t1과 t2 사이에서 크레딧을 노드 A로 전송한다(화살표 904). 노드 A는 t2와 t3 사이에서 크레딧을 처리한다(화살표 906). 노드 A는 t3과 t4 사이에서 FLIT를 노드 B로 전송하는(화살표 902) 동안 크레딧을 이전의 노드로 전송할 수 있다(화살표 904). 노드 B는 t4에서 t5까지 FLIT를 익스프레스 파이프라인의 일부로서 출력 링크로 전송할 수 있다(화살표 908). 노드 B는 t5와 t6 사이에서 FLIT를 노드 C로 전송할 수 있다(화살표 902). 노드 C는 t6에서 t7까지 FLIT를 익스프레스 파이프라인의 일부로서 출력 링크로 전송할 수 있다(화살표 908). 노드 C는 t7과 t8 사이에서 FLIT를 노드 D로 전송할 수 있다. 노드 C는 t8에서 t9까지 비 익스프레스 파이프라인에서 FLIT를 처리할 수 있다. 따라서, 크레딧 라운드 트립 지연(TCRE)이 t1에서 t9로 취해질 수 있다.
버퍼 관리 시스템은 버퍼를 정적으로 조직할 수 있다. 도 10은 정적 버퍼 관리 시스템(1000)에 대한 버퍼 카운트의 일실시예를 블록도로서 도시한 것이다. 일정한 수의 버퍼가 각각의 가상 채널에 도달하는 FLIT에 대해 예약된 각각의 가상 채널에 할당될 수 있다. 버퍼의 NVC 세트(1002)는 각각의 NVC(108)를 위해 확보될 수 있고, 버퍼의 EVC 세트(1004)는 각각의 EVC(110)를 위해 확보될 수 있다. 버퍼의 각 EVC 세트의 크기는 그 세트 내의 버퍼의 수를 절정할 때 TCRE를 고려하여 취해질 수 있다.
정적 버퍼 관리는 반대 트래픽의 경우에 버퍼를 할당하는데 비효율적일 수 있다. 예컨대, 네트워크 트래픽의 대다수가 바로 인접한 이웃만 가지면, EVC(110)는 사용될 수 없을 수 있으며 EVC(110)에 일정하게 할당된 버퍼 공간이 사용되지 않을 수 있다. 버퍼를 NVC(108) 및 EVC(110)과 같은 VC로 일정하게 분할하는 대신에, 요구시에 버퍼가 VC에 할당될 수도 있다. EVC의 존재를 업스트림 노드로 신호하는 하이 워크 마크 방안은 버퍼들이 이용가능하게 될 때 짧은 홉 EVC(402) 또는 NVC(108)를 긴 홉에 대해 우선시할 수 있다. 예컨대, 2개의 홉 EVC(402)이 적어도 8개의 버퍼가 이용가능도록 요구하면, 다운스트림 라우터는 다운스트림 라우터에서의 버퍼 카운트가 8일 때 EVC(402)의 2개의 노드가 이용가능하다는 것을 업스트림 라우터에게 신호할 수 있다. 버퍼는 VC를 가로질러 자유롭게 부유하도록 허용될 수 있어, VC는 하나의 FLIT만 가질 수 있다.
도 11은 동적으로 공유된 버퍼 관리 시스템(1100)에 대한 버퍼 카운트의 일실시예를 블록도로 도시한 것이다. 버퍼 카운트(1102)는 가용 버퍼 또는 빈 버퍼의 수를 나타낼 수 있다. 버퍼 카운트(1102)가 가용 버퍼의 수가 NVC 임계값 수(1104) 또는 NVC(108)를 동작시키는데 필요한 버퍼의 수와 동일하면, 노드는 NVC(108)를 사용할 수 있다. 버퍼 카운트(1102)가 가용 버퍼의 수가 EVC 임계값 수(1106) 또는 EVC(402)를 동작시키는데 필요한 버퍼의 수와 동일하면, 노드는 EVC(402)를 사용할 수 있다. EVC 임계값(1106)는 EVC 경로(402)의 길이와 관련될 수 있다.
버퍼링을 유연하게 할 수 있도록, 다운스트림 라우터는 업스트림 라우터에 적절한 신호를 전송할 필요가 있을 수 있다. 도 12는 주어진 노드에 대해 이용가능한 경로들(1200)의 조합의 일실시예를 블록도로 도시한 것이다. 8개 노드 네트워크가 도시되어 있지만, 다른 크기의 네트워크를 사용해도 된다.
VC는 정적으로 분할될 수 있다. 도 13은 가상 채널의 정적 분할(1300)의 일실시예를 블록도로 도시한 것이다. VC(1302) 또는 패킷 상태 트래커의 총 개수는 NVC(108)와 상이한 길이의 EVC(402) 사이에서 분할될 수 있다. 이 분할은 설계시에 행해질 수 있다. EVC 길이가 IMAX까지인 컴포넌트 네트워크의 경우, 총 (k×IMAX)개의 가상 채널 세트가 준비될 수 있다. 컴포넌트 네트워크는 NVC(108)에 대해 k1 개의 가상 채널을 할당할 수 있고, 길이가 2인 EVC(402)에 대해 k2개의 가상 채널을 할당할 수 있으며, 길이가 3인 EVC(402)에 대해 k3개의 가상 채널을 할당할 수 있는 등, 이런 방식으로 가상 채널을 할당할 수 있다.
도 14는 패킷 교환 네트워크에서 라우터 노드(104)로 동작하는 컴퓨팅 시스템(1400)의 가능한 구성을 도시한 것이다. 라우터 노드(104)는 버스(1440)를 통해 접속되어 있는 컨트롤러/프로세서(1410), 메모리(1420), 네트워크 인터페이스(1430)를 포함할 수 있다. 라우터 노드(104)는 예컨대 마이크로소프트 윈도우, 유닉스(UNIX) 또는 리눅스(LINUX)와 같은 운영체제를 구현할 수도 있다. 클라이언트 및 서버 소프트웨어는 예컨대 C, C++, 자바 또는 비주얼 베이직과 같은 프로그래밍 언어로 작성될 수 있다. 서버 소프트웨어는 예컨대, Java®server 또는 .NET®framework와 같은 애플리케이션 프레임워크 상에서 실행될 수 있다.
컨트롤러/프로세서(1410)는 당업자에게 공지된 임의의 프로그램된 프로세서일 수 있다. 그러나, 의사 결정 지원 방법(decision support method)은 또한 범용 또는 특수목적 컴퓨터, 프로그램된 마이크로프로세서 또는 마이크로컨트롤러, 주변 집적 회로 요소, ASIC(application-specific integrated circuit) 또는 기타 집적 회로, 이산 요소 회로와 같은 하드웨어/전자 로직 회로, 프로그램가능한 로직 어레이와 같은 프로그램가능한 로직 디바이스, 필드 프로그램가능한 게이트어레이 등에서 구현될 수도 있다. 일반적으로, 본 명세서에 개시된 EVC 라우팅 방법을 구현할 수 있는 디바이스 또는 디바이스들을 사용하여 본 발명의 의사 결정 지원 시스템 기능을 구현할 수도 있다.
메모리(1420)는 RAM, 캐시, 하드 드라이브 또는 기타 메모리 디바이스와 같은 하나 이상의 전기적, 자기적, 광학적 메모리를 포함하는 휘발성 및 비휘발성 데이터 저장부를 포함할 수 있다. 메모리는 특정 데이터에 대한 액세스 속도를 촉진하기 위한 캐시를 포함할 수도 있다. 메모리(1420)는 또한 컴팩트 디스크-판독 전용 메모리(CD-ROM), 디지털 비디오 디스크-판독 전용 메모리(DVD-ROM), DVD 판독 기록 입력, 데이터가 테이프 드라이브 또는 시스템에 직접 업로드될 수 있게 하는 다른 분리가능한 메모리에 접속될 수도 있다.
네트워크 접속 인터페이스(1430)는 통신 디바이스, 모뎀, 네트워크 인터페이스 카드, 트랜시버 또는 네트워크로부터 신호를 송신 및 수신할 수 있는 임의의 기타 디바이스에 접속될 수 있다. 네트워크 접속 인터페이스(1430)는 라우터 노드(104)를 네트워크에 접속하는데 사용될 수 있다. 라우터 노드(104)의 컴포넌트들은 예컨대 전기 버스(1440)를 통해 접속되거나 또는 무선으로 링크될 수 있다.
클라이언트 소프트웨어 및 데이터베이스는 메모리(1420)로부터 제어기/프로세서(1410)에 의해 액세스될 수 있으며, 예를 들어, 데이터베이스 애플리케이션, 워드 프로세싱 애플리케이션 및 본 발명의 결정 지원 기능을 실시하는 구성요소를 포함할 수 있다. 라우터 노드(104)는, 예를 들어, Microsoft Windows®, LINUX 또는 UNIX와 같은 임의의 운영 시스템을 구현할 수 있다. 클라이언트 및 서버 소프트웨어는, 예를 들어, C, C++, Java 또는 Visual Basic과 같은 임의의 프로그래밍 언어로 기록될 수 있다. 요구되는 것은 아니지만, 본 발명은, 적어도 부분적으로, 범용 컴퓨터와 같은 전자 장치에 의해 실행되는 프로그램 모듈과 같은 컴퓨터-실행 가능한 인스트럭션의 일반적인 관점으로 설명된다. 일반적으로, 프로그램 모듈은 특정 작업을 수행하거나 특정 추상화 데이터 유형을 구현하는 루틴 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 또한, 당업자는 본 발명의 다른 실시예가 개인 컴퓨터, 소형 장치, 멀티-프로세서 시스템, 마이크로프로세서 기반 또는 프로그래밍 가능한 소비자 전자장치, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 많은 종류의 컴퓨터 시스템 구성을 사용하는 네트워크 연산 환경에서 실시될 수 있다는 것을 인식할 것이다.
요구되는 것은 아니지만, 본 발명은, 적어도 부분적으로, 범용 컴퓨터와 같은 전자 장치에 의해 실행되는 프로그램 모듈과 같은 컴퓨터-실행 가능한 인스트럭션의 일반적인 관점으로 설명된다. 일반적으로, 프로그램 모듈은 특정 작업을 수행하거나 특정 추상화 데이터 유형을 구현하는 루틴 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 또한, 당업자는 본 발명의 다른 실시예가 개인 컴퓨터, 소형 장치, 멀티-프로세서 시스템, 마이크로프로세서 기반 또는 프로그래밍 가능한 소비자 전자장치. 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 많은 종류의 컴퓨터 시스템 구성을 사용하는 네트워크 연산 환경에서 실시될 수 있다는 것을 인식할 것이다.
또한, 실시예는 분산형 연산 환경에서도 실시될 수 있는데, 여기서 통신 네트워크를 통해 (하드웨어 링크, 무선 링크 또는 그 조합에 의해) 링크되는 로컬 및 원격 프로세싱 장치에 의해 작업이 수행된다.
또한, 본 발명의 범위 내의 실시예는 내부에 저장되는 컴퓨터-실행 가능한 인스트럭션 또는 데이터 구조를 갖는 컴퓨터 판독 가능한 매체를 포함할 수 있다. 이러한 컴퓨터 판독 가능한 매체는, 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 제한적이 아닌 예시적으로, 이러한 컴퓨터 판독 가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 컴퓨터 실행 가능한 인스트럭션 또는 데이터 구조의 형태로 원하는 프로그램 코드 수단을 전송하거나 저장하기 위해 사용될 수 있는 임의의 다른 매체를 포함할 수 있다. 네트워크 또는 다른 통신 접속(하드와이어드, 무선 또는 그 조합)을 통해 정보가 컴퓨터로 전달되거나 제공되는 경우, 컴퓨터는 컴퓨터 판독 가능한 매체로서 접속을 올바르게 본다. 따라서, 임의의 이러한 접속은 컴퓨터 판독 가능한 매체로 올바르게 불린다. 전술한 조합도 컴퓨터 판독 가능한 매체의 범위 내에 포함되어야 한다.
컴퓨터-실행 가능한 인스트럭션은, 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터 또는 특수 목적 프로세싱 장치로 하여금 소정의 기능 또는 기능 집합을 수행하게 하는 인스트럭션 및 데이터를 포함한다. 또한, 컴퓨터-실행 가능한 인스트럭션은 단독으로 또는 네트워크 호나경에서 컴퓨터에 의해 실행되는 프로그램 모듈을 포함한다. 일반적으로 프로그램 모듈은 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트 및 데이터 구조 등을 포함한다. 컴퓨터-실행 가능한 인스트럭션, 관련 데이터 구조 및 프로그램 모듈은 본 명세서에서 설명되는 방법의 단계들을 실행하는 프로그램 코드 수단의 예를 나타낸다. 이러한 실행 가능한 인스트럭션 또는 관련 데이터 구조의 특정 시퀀스는 이러한 단계에서 설명되는 기능을 구현하는 대응 동작의 예를 나타낸다.
전술한 설명은 특정 세부 사항을 포함할 수 있지만, 이는 어떠한 방식으로든 청구범위를 제한하는 것으로 해석되어서는 안 된다. 본 발명의 설명된 실시예의 다른 구성은 본 발명의 범위의 일부이다. 예를 들어, 본 발명의 원리는 이러한 시스템을 개별적으로 채택하는 각 개인 사용자에게 적용될 수 있다. 이는, 많은 수의 가능한 애플리케이션 중 하나가 본 명세서에서 설명되는 기능성을 필요로 하지 않더라고 각 사용자가 본 발명의 이점을 사용할 수 있게 한다. 전자장치의 다수의 인스턴스 각각은 다양한 가능한 방식으로 콘텐츠를 처리할 수 있다. 이는 반드시 모든 최종 사용자에 의해 사용되는 일 시스템일 필요는 없다. 따라서, 주어진 특정 예가 아닌 첨부된 청구범위 및 그 법적 균등물만이 본 발명을 정의한다.

Claims (20)

  1. 익스프레스 가상 채널(an express virtual channel)을 통해 패킷-교환 네트워크의 소스 노드로부터 익스프레스 흐름 제어 유닛을 수신하는 단계와,
    상기 익스프레스 흐름 제어 유닛을 출력 링크로 직접적으로 전송하여 싱크 노드로 송신하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 익스프레스 가상 채널로부터 수신된 익스프레스 흐름 제어 유닛을 추적하는 단계와,
    결핍 임계 값(starvation threshold)에 도달하면 결핍 개선(starvation remediation) 모드로 진입하는 단계와,
    정상 흐름 제어 유닛을 인접 노드로 전송하는 단계를 더 포함하는
    방법.
  3. 제 1 항에 있어서,
    상기 익스프레스 가상 채널은 정적 길이를 갖는
    방법.
  4. 제 1 항에 있어서,
    상기 익스프레스 가상 채널은 동적 길이를 갖는
    방법.
  5. 제 1 항에 있어서,
    최적의 익스프레스 가상 채널이 이용 가능하지 않은 경우, 상기 익스프레스 가상 채널은 대체 익스프레스 가상 채널인
    방법.
  6. 제 1 항에 있어서,
    상기 익스프레스 가상 채널은 정적으로 할당되는 버퍼를 갖는
    방법.
  7. 제 1 항에 있어서,
    상기 익스프레스 가상 채널은 동적으로 할당되는 버퍼를 갖는
    방법.
  8. 익스프레스 가상 채널을 통해 패킷-교환 네트워크의 소스 노드로부터 익스프레스 흐름 제어 유닛을 수신하는 입력 링크와,
    상기 익스프레스 흐름 제어 유닛을 싱크 노드로 송신하는 출력 링크와,
    상기 익스프레스 흐름 제어 유닛을 직접적으로 상기 출력 링크로 전송하는 스위치 할당기를 포함하는
    라우터 노드.
  9. 제 8 항에 있어서,
    정상 흐름 제어 유닛이 인접 노드에 도달할 수 있도록 결핍 임계값에 도달하는지를 판정하는 결핍 카운터를 더 포함하는
    라우터 노드.
  10. 제 8 항에 있어서,
    상기 익스프레스 가상 채널은 정적 길이를 갖는
    라우터 노드.
  11. 제 8 항에 있어서,
    상기 익스프레스 가상 채널은 동적 길이를 갖는
    라우터 노드.
  12. 제 8 항에 있어서,
    최적의 익스프레스 가상 채널이 이용 가능하지 않은 경우, 상기 익스프레스 가상 채널은 대체 익스프레스 가상 채널인
    라우터 노드.
  13. 제 8 항에 있어서,
    상기 익스프레스 가상 채널은 정적으로 할당되는 버퍼를 갖는
    라우터 노드.
  14. 제 8 항에 있어서,
    상기 익스프레스 가상 채널은 동적으로 할당되는 버퍼를 갖는
    라우터 노드.
  15. 제 8 항에 있어서,
    상기 패킷-교환 네트워크는 칩 멀티프로세서인
    라우터 노드.
  16. 저장 매체에 존재하는 인스트럭션 세트로서,
    상기 인스트럭션 세트는 데이터를 처리하는 방법을 구현하도록 프로세서에 의해 실행 가능하며,
    상기 방법은
    익스프레스 가상 채널을 통해 패킷-교환 네트워크의 소스 노드로부터 익스프레스 흐름 제어 유닛을 수신하는 단계와,
    상기 익스프레스 흐름 제어 유닛을 출력 링크로 직접적으로 전송하여 싱크 노드로 송신하는 단계를 포함하는
    인스트럭션 세트.
  17. 제 16 항에 있어서,
    상기 익스프레스 가상 채널로부터 수신된 익스프레스 흐름 제어 유닛을 추적하는 단계와,
    결핍 임계 값에 도달하면 결핍 개선 모드로 진입하는 단계와,
    정상 흐름 제어 유닛을 인접 노드로 전송하는 단계를 더 포함하는
    인스트럭션 세트.
  18. 제 16 항에 있어서,
    상기 익스프레스 가상 채널은 동적 길이를 갖는
    인스트럭션 세트.
  19. 제 16 항에 있어서,
    최적의 익스프레스 가상 채널이 이용 가능하지 않은 경우, 상기 익스프레스 가상 채널은 대체 익스프레스 가상 채널인
    인스트럭션 세트.
  20. 제 16 항에 있어서,
    상기 익스프레스 가상 채널은 동적으로 할당되는 버퍼를 갖는
    인스트럭션 세트.
KR1020107022092A 2008-04-02 2009-03-31 익스프레스 가상 채널을 사용하기 위한 방법, 라우터 노드 및 인스트럭션 세트 KR101170262B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/061,302 2008-04-02
US12/061,302 US8223650B2 (en) 2008-04-02 2008-04-02 Express virtual channels in a packet switched on-chip interconnection network
PCT/US2009/038874 WO2009146025A2 (en) 2008-04-02 2009-03-31 Express virtual channels in a packet switched on-chip interconnection network

Publications (2)

Publication Number Publication Date
KR20100134004A true KR20100134004A (ko) 2010-12-22
KR101170262B1 KR101170262B1 (ko) 2012-08-01

Family

ID=41133227

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107022092A KR101170262B1 (ko) 2008-04-02 2009-03-31 익스프레스 가상 채널을 사용하기 위한 방법, 라우터 노드 및 인스트럭션 세트

Country Status (9)

Country Link
US (2) US8223650B2 (ko)
JP (2) JP5201514B2 (ko)
KR (1) KR101170262B1 (ko)
CN (2) CN101978659B (ko)
BR (2) BRPI0911376A2 (ko)
DE (2) DE112009000836T5 (ko)
GB (1) GB2470878B (ko)
RU (1) RU2487401C2 (ko)
WO (2) WO2009146025A2 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8223650B2 (en) 2008-04-02 2012-07-17 Intel Corporation Express virtual channels in a packet switched on-chip interconnection network
US8539130B2 (en) * 2009-09-24 2013-09-17 Nvidia Corporation Virtual channels for effective packet transfer
US9015448B2 (en) 2010-06-17 2015-04-21 Advanced Micro Devices, Inc. Message broadcast with router bypassing
CN103181127B (zh) * 2011-03-09 2016-05-25 松下知识产权经营株式会社 中继装置、中继装置的控制方法及程序
CN102437953B (zh) * 2011-12-14 2014-07-30 清华大学 片上网络中的低功耗自适应路由方法
WO2013095665A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Tracking distributed execution on on-chip multinode networks without a centralized mechanism
US9608922B2 (en) * 2011-12-23 2017-03-28 Intel Corporation Traffic control on an on-chip network
US9647921B2 (en) 2012-08-07 2017-05-09 Qualcomm Incorporated Statistics and failure detection in a network on a chip (NoC) network
CN103383671A (zh) * 2013-02-26 2013-11-06 西安交通大学 一种基于片上网络的dram通讯优化方法
US9166687B2 (en) * 2013-03-28 2015-10-20 Cisco Technology, Inc. Method and apparatus for using credits to determine cable length
US10193827B2 (en) 2013-08-13 2019-01-29 Dean Michael Ancajas Hot carrier injection tolerant network on chip router architecture
US20150049758A1 (en) * 2013-08-13 2015-02-19 Utah State University Hot carrier injection tolerant network on chip router architecture
US10445287B2 (en) * 2013-09-12 2019-10-15 Empire Technology Development Llc Circuit switch pre-reservation in an on-chip network
US9602587B2 (en) * 2014-06-26 2017-03-21 Altera Corporation Multiple plane network-on-chip with master/slave inter-relationships
CN107005489B (zh) * 2014-12-29 2021-02-02 甲骨文国际公司 用于支持分组交换的系统、方法、介质和设备
CN104636085B (zh) * 2015-01-27 2017-10-03 北京理工大学 一种片上网络消息缓冲区的存储管理模块
US9658675B1 (en) 2015-02-19 2017-05-23 Amazon Technologies, Inc. Achieving power saving by a circuit including pluralities of processing cores based on status of the buffers used by the processing cores
US9658676B1 (en) * 2015-02-19 2017-05-23 Amazon Technologies, Inc. Sending messages in a network-on-chip and providing a low power state for processing cores
CN105991428B (zh) * 2015-03-05 2020-11-10 中兴通讯股份有限公司 交换机路由冲突的处理方法及装置
CN104683242B (zh) * 2015-03-15 2018-05-25 西安电子科技大学 一种二维片上网络的拓扑结构以及路由方法
US20190199633A1 (en) * 2017-12-27 2019-06-27 Futurewei Technologies, Inc. Method and apparatus for forwarding in information centric networking
US11502934B2 (en) * 2018-08-21 2022-11-15 The George Washington Univesity EZ-pass: an energy performance-efficient power-gating router architecture for scalable on-chip interconnect architecture
CN110049104A (zh) * 2019-03-15 2019-07-23 佛山市顺德区中山大学研究院 基于分层片上互连网络的混合缓存方法、系统及存储介质
US11386031B2 (en) * 2020-06-05 2022-07-12 Xilinx, Inc. Disaggregated switch control path with direct-attached dispatch
US11757798B2 (en) 2020-12-28 2023-09-12 Arteris, Inc. Management of a buffered switch having virtual channels for data transmission within a network

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2563819B2 (ja) * 1988-03-04 1996-12-18 日本電信電話株式会社 優先制御方法
US5875464A (en) * 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
US5388101A (en) * 1992-10-26 1995-02-07 Eon Corporation Interactive nationwide data service communication system for stationary and mobile battery operated subscriber units
JPH0816470A (ja) * 1994-07-04 1996-01-19 Hitachi Ltd 並列計算機
JP3224963B2 (ja) * 1994-08-31 2001-11-05 株式会社東芝 ネットワーク接続装置及びパケット転送方法
JPH08256154A (ja) * 1995-03-17 1996-10-01 Nec Corp Atmのセルバッファ制御方法
US6055618A (en) 1995-10-31 2000-04-25 Cray Research, Inc. Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel
US6285679B1 (en) 1997-08-22 2001-09-04 Avici Systems, Inc. Methods and apparatus for event-driven routing
US6009488A (en) 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US20020150056A1 (en) 1998-05-15 2002-10-17 Martin Abadi Method for avoiding broadcast deadlocks in a mesh-connected network
US6973455B1 (en) * 1999-03-03 2005-12-06 Emc Corporation File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator
US6338123B2 (en) * 1999-03-31 2002-01-08 International Business Machines Corporation Complete and concise remote (CCR) directory
US6751190B1 (en) * 1999-05-18 2004-06-15 Cisco Technology, Inc. Multihop nested tunnel restoration
US6674720B1 (en) * 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
JP2001156798A (ja) * 1999-11-29 2001-06-08 Hitachi Ltd Vc切替え方法およびatm交換機
US20010049742A1 (en) * 2000-05-31 2001-12-06 Steely Simon C. Low order channel flow control for an interleaved multiblock resource
US20020146022A1 (en) 2000-05-31 2002-10-10 Van Doren Stephen R. Credit-based flow control technique in a modular multiprocessor system
US6842826B1 (en) * 2000-06-07 2005-01-11 International Business Machines Incorporated Method and apparatus for providing efficient management of least recently used (LRU) algorithm insertion points corresponding to defined times-in-cache
JP2002057710A (ja) * 2000-08-11 2002-02-22 Nippon Telegr & Teleph Corp <Ntt> ショートカットパス経路選択方法
JP2002169787A (ja) * 2000-11-30 2002-06-14 Matsushita Electric Ind Co Ltd 複数のプロセッサ部を含む半導体装置
US6907490B2 (en) * 2000-12-13 2005-06-14 Intel Corporation Method and an apparatus for a re-configurable processor
CN1269053C (zh) 2001-02-24 2006-08-09 国际商业机器公司 分组路由方法、系统及用于分组路由的可扩展网络交换机
US6711662B2 (en) * 2001-03-29 2004-03-23 Intel Corporation Multiprocessor cache coherence management
US7126921B2 (en) 2001-05-14 2006-10-24 Tropic Networks Inc. Packet network providing fast distribution of node related information and a method therefor
JP2002342163A (ja) * 2001-05-15 2002-11-29 Fujitsu Ltd マルチスレッドプロセッサ用キャッシュ制御方式
US6807599B2 (en) * 2001-10-15 2004-10-19 Advanced Micro Devices, Inc. Computer system I/O node for connection serially in a chain to a host
US6757755B2 (en) * 2001-10-15 2004-06-29 Advanced Micro Devices, Inc. Peripheral interface circuit for handling graphics responses in an I/O node of a computer system
JP3679374B2 (ja) * 2002-03-06 2005-08-03 日本電信電話株式会社 ノードおよび光パスネットワークおよびプログラムおよび記録媒体
WO2003088048A1 (en) * 2002-04-08 2003-10-23 University Of Texas System Non-uniform cache apparatus, systems, and methods
JP3678715B2 (ja) * 2002-04-24 2005-08-03 エヌイーシーコンピュータテクノ株式会社 分散共有メモリ型マルチプロセッサシステム及びそれに用いるタグ制御方法
US7096323B1 (en) * 2002-09-27 2006-08-22 Advanced Micro Devices, Inc. Computer system with processor cache that stores remote cache presence information
JP2004248085A (ja) * 2003-02-14 2004-09-02 Kyocera Corp 経路決定方法および経路決定装置
US7433316B2 (en) 2003-02-20 2008-10-07 Hewlett-Packard Development Company, L.P. Summarizing nodes in route propagation in auxiliary network for P2P overlay networks
US7957428B2 (en) * 2004-05-21 2011-06-07 Intel Corporation Methods and apparatuses to effect a variable-width link
US20060080461A1 (en) * 2004-06-02 2006-04-13 Wilcox Jeffrey R Packet exchange for controlling system power modes
US7558920B2 (en) * 2004-06-30 2009-07-07 Intel Corporation Apparatus and method for partitioning a shared cache of a chip multi-processor
US7287122B2 (en) * 2004-10-07 2007-10-23 International Business Machines Corporation Data replication in multiprocessor NUCA systems to reduce horizontal cache thrashing
US8098571B2 (en) * 2004-10-28 2012-01-17 Alcatel Lucent Stack manager protocol with automatic set up mechanism
US20060248287A1 (en) * 2005-04-29 2006-11-02 Ibm Corporation Methods and arrangements for reducing latency and snooping cost in non-uniform cache memory architectures
US20070143546A1 (en) * 2005-12-21 2007-06-21 Intel Corporation Partitioned shared cache
JP4572169B2 (ja) * 2006-01-26 2010-10-27 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム及びその動作方法
US7571285B2 (en) * 2006-07-21 2009-08-04 Intel Corporation Data classification in shared cache of multiple-core processor
US7773617B2 (en) * 2006-11-08 2010-08-10 Sicortex, Inc. System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system
US8014387B2 (en) * 2007-08-27 2011-09-06 International Business Machines Corporation Providing a fully non-blocking switch in a supernode of a multi-tiered full-graph interconnect architecture
US8223650B2 (en) 2008-04-02 2012-07-17 Intel Corporation Express virtual channels in a packet switched on-chip interconnection network

Also Published As

Publication number Publication date
RU2010139595A (ru) 2012-04-10
CN101978659B (zh) 2013-11-06
US20130070763A1 (en) 2013-03-21
GB2470878B (en) 2013-03-20
JP5335892B2 (ja) 2013-11-06
GB2470878A (en) 2010-12-08
WO2009146025A3 (en) 2010-03-18
CN103501285B (zh) 2015-07-22
BRPI0911376A2 (pt) 2018-03-20
WO2009146025A2 (en) 2009-12-03
RU2487401C2 (ru) 2013-07-10
JP5201514B2 (ja) 2013-06-05
BRPI0911368A2 (pt) 2017-02-07
US20090252171A1 (en) 2009-10-08
DE112009000834B4 (de) 2017-05-24
JP2011517903A (ja) 2011-06-16
JP2011511989A (ja) 2011-04-14
GB201017257D0 (en) 2010-11-24
US9391913B2 (en) 2016-07-12
CN103501285A (zh) 2014-01-08
US8223650B2 (en) 2012-07-17
WO2009146027A1 (en) 2009-12-03
KR101170262B1 (ko) 2012-08-01
CN101978659A (zh) 2011-02-16
DE112009000834T5 (de) 2011-04-28
DE112009000836T5 (de) 2011-04-28

Similar Documents

Publication Publication Date Title
KR101170262B1 (ko) 익스프레스 가상 채널을 사용하기 위한 방법, 라우터 노드 및 인스트럭션 세트
US9444740B2 (en) Router, method for controlling router, and program
JP5895202B2 (ja) 中継器、中継器の制御方法、およびコンピュータプログラム
US8234435B2 (en) Relay device
US20130028083A1 (en) Router, method for controlling router, and program
US20040213151A1 (en) Fabric access integrated circuit configured to bound cell reorder depth
JP4820466B2 (ja) 半導体システム、中継器およびチップ回路
JP5834178B2 (ja) 半導体回路のバスシステム
Latif et al. PVS-NoC: Partial virtual channel sharing NoC architecture
Al Faruque et al. Configurable links for runtime adaptive on-chip communication
JP5965464B2 (ja) バッファを有しないnocのデータ処理方法、及びnoc電子素子
Reshma Raj et al. Odd-even based adaptive two-way routing in mesh NoCs for hotspot mitigation
Palumbo et al. A novel non-exclusive dual-mode architecture for mpsocs-oriented network on chip designs
Danashtalab et al. Basic concepts on on-chip networks
Rajiva Lochana et al. Advanced-Path-Congestion-Aware Adaptive Routing Switch-Buffer Management for Network-on-Chip
Kavyashree et al. Architectural based congestion management for Network on Chip implemented on FPGA
CN112486871A (zh) 一种用于片上总线的路由方法以及系统
Oommen et al. Reconfigurable router using RLBS algorithm
Wei et al. Novel time-multiplexing bidirectional on-chip network
Shariat et al. Reducing router's area in NoC by changing buffering method while providing QoS
Isask’har Walter et al. Curing Hotspots in Wormhole NoCs
Song et al. A Dynamic Link Allocation Router
Obaidullah et al. Reconfigurability of On-chip Networks
Ok et al. An alternate dimension-order collective communication scheme on packet-switched 2D-mesh network

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170704

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 7