KR101318426B1 - 온칩 네트워크에서 토러스 토폴로지를 이용한 라우팅 시스템 및 라우팅 방법 - Google Patents

온칩 네트워크에서 토러스 토폴로지를 이용한 라우팅 시스템 및 라우팅 방법 Download PDF

Info

Publication number
KR101318426B1
KR101318426B1 KR1020110142500A KR20110142500A KR101318426B1 KR 101318426 B1 KR101318426 B1 KR 101318426B1 KR 1020110142500 A KR1020110142500 A KR 1020110142500A KR 20110142500 A KR20110142500 A KR 20110142500A KR 101318426 B1 KR101318426 B1 KR 101318426B1
Authority
KR
South Korea
Prior art keywords
token
network
router
buffer
deadlock
Prior art date
Application number
KR1020110142500A
Other languages
English (en)
Other versions
KR20130093736A (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 한국과학기술원
Priority to KR1020110142500A priority Critical patent/KR101318426B1/ko
Publication of KR20130093736A publication Critical patent/KR20130093736A/ko
Application granted granted Critical
Publication of KR101318426B1 publication Critical patent/KR101318426B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/437Ring fault isolation or reconfiguration
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)

Abstract

온-칩 네트워크에서 토러스 토폴로지를 이용한 라우팅 시스템 및 라우팅 방법이 개시된다. 복수의 링 네트워크를 이용하여 2차원 구조로 각각 형성된 데이터 네트워크(data network) 및 토큰 네트워크(token network)를 병렬 형태로 포함하는 토러스(torus) 네트워크상에서, 패킷을 전송하는 라우팅 시스템은, 데이터 네트워크를 통해 이전 라우터로부터 수신되는 패킷의 플릿(flit)을 버퍼에 저장하는 저장 관리부, 토큰 네트워크를 형성하는 링 네트워크들 각각에 우선순위토큰 중 해당하는 링 네트워크상에서 전송되는 우선순위토큰들을 수신하는 우선순위토큰 수신부, 수신된 우선순위토큰을 이용하여 포착토큰을 생성하거나 또는 이전 라우터로부터 토큰 네트워크를 통해 포착토큰을 수신하는 포착토큰 관리부, 버퍼의 헤드부분에 저장된 플릿의 목적지 라우터를 확인하는 목적지 라우터 확인부, 목적지 라우터에 포함된 버퍼의 상태에 따라 생성 또는 수신된 포착토큰을 토큰 네트워크를 통해 목적지 라우터로 전송하거나 또는 제거하는 포착토큰 처리부 및 생성 또는 수신된 포착토큰이 목적지 라우터로 전송되고 전송된 포착토큰이 다시 수신되는 경우, 토러스 네트워크에 교착상태가 발생하였음을 확인하는 교착상태 발생 확인부를 포함한다.

Description

온칩 네트워크에서 토러스 토폴로지를 이용한 라우팅 시스템 및 라우팅 방법{ROUTING SYSTEM AND METHOD USING TOROUS TOPOLOGY IN ON-CHIP NETWORK}
본 발명의 실시예들은 온-칩 네트워크에서 토러스 토폴로지를 이용한 라우팅 시스템 및 라우팅 방법에 관한 것이다.
단일 칩에 더 많은 구성 요소가 집적됨에 따라 구성 요소를 서로 연결하는 온칩 네트워크(on-chip network)가 점점 더 중요해지고 있다. 종래기술에 따른 온칩 네트워크에 대한 대부분의 연구는, 2D 메쉬 토폴로지(mesh topology)를 가정하는데 이는 구조의 단순성, 그리고 상업적인 멀티코어 칩이 2D 메쉬 토폴로지를 사용했기 때문이다. 또한 기존 연구들에서는 2D 메쉬 토폴로지와 2D 토러스 토폴로지를 비교하였지만 2D 토러스 토폴로지에서 교착상태 회피를 위해 추가적인 버퍼(가상 채널)를 사용하는 것을 가정하였다. 즉, 2D 토러스 토폴로지는 랩-어라운드(wrap-around) 채널 때문에 라우팅 교착상태가 발생할 수 있고, 교착상태 회피를 위해 버퍼(가상 채널)을 추가로 사용해야 하는 문제가 있다.
본 명세서에서는 온-칩 네트워크에서보다 효율적으로 2D 토러스 토폴로지를 활용할 수 있는 시스템 및 방법이 제안된다.
토큰을 이용한 교착상태 복구(Deadlock Recovery with Tokens, DRT)를 이용하여 2D 토러스 토폴로지가 제공하는 풍부한 와이어(wire)를 활용하면서도 추가적인 버퍼(가상 채널)의 크기를 최소화할 수 있는 시스템 및 방법을 제공한다.
교착상태를 탐지하는 데에 타이머에 의존하는 부정확한 방법 대신 정확히 교착상태를 탐지할 수 있고, 필요에 따라 교착상태로부터 복구할 수 있으며, 가상 채널을 사용하여 교착상태를 회피하는 종래기술에 비해 성능 저하를 최소화하면서도 온칩 네트워크의 복잡도를 감소시킬 수 있는 시스템 및 방법을 제공한다.
복수의 링 네트워크를 이용하여 2차원 구조로 각각 형성된 데이터 네트워크(data network) 및 토큰 네트워크(token network)를 병렬 형태로 포함하는 토러스(torus) 네트워크상에서, 패킷을 전송하는 라우팅 시스템에 있어서, 데이터 네트워크를 통해 이전 라우터로부터 수신되는 패킷의 플릿(flit)을 버퍼에 저장하는 저장 관리부, 토큰 네트워크를 형성하는 링 네트워크들 각각에 우선순위토큰 중 해당하는 링 네트워크상에서 전송되는 우선순위토큰들을 수신하는 우선순위토큰 수신부, 수신된 우선순위토큰을 이용하여 포착토큰을 생성하거나 또는 이전 라우터로부터 토큰 네트워크를 통해 포착토큰을 수신하는 포착토큰 관리부, 버퍼의 헤드부분에 저장된 플릿의 목적지 라우터를 확인하는 목적지 라우터 확인부, 목적지 라우터에 포함된 버퍼의 상태에 따라 생성 또는 수신된 포착토큰을 토큰 네트워크를 통해 목적지 라우터로 전송하거나 또는 제거하는 포착토큰 처리부 및 생성 또는 수신된 포착토큰이 목적지 라우터로 전송되고 전송된 포착토큰이 다시 수신되는 경우, 토러스 네트워크에 교착상태가 발생하였음을 확인하는 교착상태 발생 확인부를 포함하는 라우팅 시스템이 제공된다.
일측에 따르면, 데이터 네트워크 및 토큰 네트워크 각각은 2k개의 링 네트워크가 각각의 축을 구성하는 k*k의 2차원 형태로 형성될 수 있고, 우선순위토큰은 토큰 네트워크의 2k개의 링 네트워크 각각에 하나씩 생성될 수 있다.
다른 측면에 따르면, 토러스 네트워크는, 복수의 링 네트워크를 이용하여 2차원 구조로 형성된 데이터 복구 네트워크(data recovery network)를 병렬 형태로 더 포함할 수 있다.
또 다른 측면에 따르면, 패킷은, 헤드플릿(head flit), 바디플릿(body flit) 및 꼬리플릿(tail flit)으로 구성될 수 있고, 라우팅 시스템은 교착상태가 발생한 것으로 확인된 경우, 버퍼의 헤드에 저장된 플릿이 헤드플릿인지 여부를 확인하는 헤드플릿 확인부, 버퍼의 헤드에 저장된 플릿이 헤드플릿인 경우, 저장된 헤드플릿을 데이터 복구 네트워크를 통해 다음 라우터로 전송하는 헤드플릿 전송부 및 버퍼의 헤드에 저장된 플릿이 헤드플릿이 아닌 경우, 다시 전송된 포착토큰을 제거하고, 수신된 우선순위토큰을 토큰 네트워크를 통해 다음 라우터로 전송하는 우선순위토큰 전송부를 더 포함할 수 있다.
복수의 링 네트워크를 이용하여 2차원 구조로 각각 형성된 데이터 네트워크 및 토큰 네트워크를 병렬 형태로 포함하는 토러스 네트워크상에서, 패킷을 전송하는 라우팅 시스템이 수행하는 라우팅 방법에 있어서, 데이터 네트워크를 통해 이전 라우터로부터 수신되는 패킷의 플릿(flit)을 버퍼에 저장하는 단계, 토큰 네트워크를 형성하는 링 네트워크들 각각에 우선순위토큰 중 해당하는 링 네트워크상에서 전송되는 우선순위토큰들을 수신하는 단계, 수신된 우선순위토큰을 이용하여 포착토큰을 생성하거나 또는 이전 라우터로부터 토큰 네트워크를 통해 포착토큰을 수신하는 단계, 버퍼의 헤드부분에 저장된 플릿의 목적지 라우터를 확인하는 단계, 목적지 라우터에 포함된 버퍼의 상태에 따라 생성 또는 수신된 포착토큰을 토큰 네트워크를 통해 목적지 라우터로 전송하거나 또는 제거하는 단계 및 생성 또는 수신된 포착토큰이 목적지 라우터로 전송되고 전송된 포착토큰이 다시 수신되는 경우, 토러스 네트워크에 교착상태가 발생하였음을 확인하는 단계를 포함하는 라우팅 방법이 제공된다.
패킷을 전송하는 라우팅 시스템에 있어서, 복수의 링 네트워크를 이용하여 2차원 구조로 형성된 데이터 네트워크를 통해 수신된 패킷의 플릿을 수신하여 버퍼에 저장하고, 데이터 네트워크를 통해 다음 라우터로 전송하는 플릿 관리부, 복수의 링 네트워크를 이용하여 2차원 구조로 형성된 토큰 네트워크를 통해 우선순위토큰을 수신하여 포착토큰을 생성하고 토큰 네트워크를 통해 다음 라우터로 전송하거나 또는 토큰 네트워크를 통해 우선순위토큰 또는 포착토큰을 수신하여 토큰 네트워크를 통해 다음 라우터로 전송하는 토큰 관리부 및 생성되어 전송된 포착토큰이 다시 수신되는 경우, 교착상태가 발생한 것으로 탐지하는 교착상태 탐지부를 포함하는 라우팅 시스템이 제공된다.
토큰을 이용한 교착상태 복구(Deadlock Recovery with Tokens, DRT)를 이용하여 2D 토러스 토폴로지가 제공하는 풍부한 와이어(wire)를 활용하면서도 추가적인 버퍼(가상 채널)의 크기를 최소화할 수 있다.
교착상태를 탐지하는 데에 타이머에 의존하는 부정확한 방법 대신 정확히 교착상태를 탐지할 수 있고, 필요에 따라 교착상태로부터 복구할 수 있으며, 가상 채널을 사용하여 교착상태를 회피하는 종래기술에 비해 성능 저하를 최소화하면서도 온칩 네트워크의 복잡도를 감소시킬 수 있다.
도 1은 16개의 코어가 있는 칩 멀티프로세서에서 2D 메쉬 토폴로지와 2D토러스 토폴로지의 성능을 비교한 도면이다.
도 2는 라우터 지연시간을 1로 가정하고, 패킷 크기와 네트워크 크기를 변화시킬 때, 8B 채널의 토러스와 16B 채널의 메쉬의 제로-로드 지연시간을 비교한 도면이다.
도 3은 메시와 토러스의 효율성을 와트(watt)당 성능으로 나타내고 있는 도면의 일례이다.
도 4는 2개의 가상 채널과 교착상태 회피를 사용한 경우, 다양한 트래픽 패턴과 버퍼 크기에 대해 포화 처리량(주입률)을 나타낸 일례이다.
도 5는 본 발명의 일실시예에 있어서, 라우팅 교착상태 시나리오를 설명하기 위한 일례이다.
도 6은 세 개의 네트워크로 (데이터 네트워크, 토큰 네트워크, 교착상태 복구 네트워크) 구성된 교착상태-복구 토큰 네트워크를 나타낸 일례이다.
도 7은 본 발명의 일실시예에 있어서, 라우팅 시스템의 내부 구성을 설명하기 위한 블록도이다.
도 8은 본 발명의 일실시예에 있어서, 라우팅 방법을 도시한 흐름도이다.
도 9는 본 발명의 일실시예에 있어서, 교착상태 복구 방법을 도시한 흐름도이다.
도 10은 본 발명의 다른 실시예에 있어서, 라우팅 시스템의 내부 구성을 설명하기 위한 블록도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
1. 배경기술 및 모티베이션( Background / Motivation )
(1) 2D 토러스 토폴로지와 2D 메쉬 토폴로지의 성능 비교(Performance comparison between Torus and Mesh)
도 1은 16개의 코어가 있는 칩 멀티프로세서에서 2D 메쉬 토폴로지와 2D토러스 토폴로지의 성능을 비교한 도면이다. 그래프(100)의 x-축은 성능측정에 이용된 벤치마크(benchmark)들을, y-축은 정규화된(normalized) 실행 시간을 각각 나타내고 있다. 2D 메쉬 토폴로지(mesh topology, 이하 '메쉬')와 2D토러스 토폴로지(torus topology, 이하 '토러스')를 공평하게 비교하기 위해, 두 네트워크에 대해 같은 바이섹션(bisection) 대역폭이 사용되었다. 따라서, 메쉬는 16바이트 채널이 사용되었고, 토러스는 8바이트 채널이 사용되었다. 결과상에서는 메쉬와 토러스간의 큰 성능 차이는 보이지 않는다. 'Apache'를 제외하고는 토러스가 아주 작은 성능 향상을 보인다. 그러나, 토러스는 메쉬에 비해 절반의 채널 대역폭을 사용해서 도 1과 같은 성능을 낼 수 있음을 나타내고 있다. 토러스의 랩-어라운드(wrap-around) 채널은 메쉬에 비해서 평균 홉 수를 줄일 수 있고, 네트워크 로드가 거의 없을 때의 지연시간인 제로-로드 지연시간(zero-load latency)을 줄일 수 있다. 패킷의 제로-로드 지연시간은 헤더 지연시간 'Th'과 직렬화 지연시간(serialization latency) 'Ts'의 합으로 다음과 같이 표현될 수 있다.
Figure 112011103458096-pat00001
여기서, 'H'는 홉 수이고, 'b'는 채널 대역폭, 'Tr'은 라우터 지연시간, 'L'은 패킷 크기를 의미할 수 있다. 홉 수 H는 네트워크 크기 'N'에 의존한다. 메쉬에서 평균 홉수가 Nk/3이고, 토러스는 Nk/4이므로, 메쉬의 홉 수가 토러스에 비해서 빠르게 증가하게 된다.
도 2는 라우터 지연시간을 1로 가정하고, 패킷 크기와 네트워크 크기를 변화시킬 때, 8B 채널의 토러스와 16B 채널의 메쉬의 제로-로드 지연시간을 비교한 도면이다. 그래프(210)의 x-축은 '8*8' 네트워크에서의 패킷 크기를, y-축은 제로-로드 지연시간을 각각 나타내고 있다. 또한, 그래프(220)의 x-축은 네트워크 차원 크기(network dimension size) 'n'을, y-축은 제로-로드 지연시간을 각각 나타내고 있다. 패킷 크기가 16B보다 작을 때에는 토러스가 절반의 대역폭으로도 낮은 제로-로드 지연시간을 보인다. 이때, 라우터 지연시간이 증가하면 그 차이는 더욱 커진다. 따라서, 좁은 채널을 사용할 때에 직렬화 지연시간이 증가하긴 하지만 홉 수가 감소하기 때문에 토러스가 전반적으로 메쉬와 거의 비슷한 지연시간을 갖게 된다.
하지만, 좁은 채널을 사용함으로써 토러스는 메쉬보다 라우터의 비용이 훨씬 줄어든다. 라우터의 면적은 포트 개수를 'p'라고 하고, 채널 폭을 'w'라고 할 때에 O(p2w2)에 비례한다. 포트 개수 'p'는 메쉬와 토러스에 대해 같은 반면에, 채널 폭 'w'가 1/2로 줄었기 때문에 전체 라우터 면적은 대략 1/4로 감소한다. 또한 'Orion2.0'을 사용해서 측정한 라우터의 소모 전력은 토러스가 2배 정도 전력 효율이 증가했음을 보인다. 즉, 도 3은 메시와 토러스의 효율성을 와트(watt)당 성능으로 나타내고 있는 도면의 일례로, 토러스가 메쉬에 비해 효율성이 2배 높음을 나타내고 있다. 도 3에 나타난 그래프(300)의 x-축은 성능측정에 이용된 벤치마크(benchmark)들을, y-축은 정규화된(normalized) 실행 사이클/파워를 각각 나타내고 있다.
(2) 토러스의 라우팅 교착상태(Routing Deadlock in Torus network)
최소차원순차 라우팅 (minimal dimension ordered routing)을 사용하더라도 토러스에 존재하는 랩-어라운드 채널이 야기하는 원형 의존성 때문에, 토러스에서는 라우팅 교착상태가 발생할 수 있다. 토러스 네트워크에서의 라우팅 교착상태는 교착상태 회피 또는 교착상태 복구로서 해결될 수 있다. 이후에서는 교착상태를 해결하기 위해 흔히 사용되는 다양한 메커니즘을 비교하고 온칩 네트워크 상에서 교착상태 복구를 사용하기 위한 당위성에 대한 근거를 제시한다.
관련 연구: 교착상태 회피는 흔히 가상 채널(virtual channel, VC)을 사용해서 원형 의존성을 제거함으로써 이뤄진다. 원형 의존성은 자원(즉, 가상 채널)을 적절히 분할함으로써 제거할 수 있기 때문에 라우팅 교착 상태가 발생하지 않는다. 이러한 가상 채널의 사용을 피하기 위해서 버블 라우터가 제안되었었다. 원형 의존성은 연루된 모든 자원이 완전히 사용되었을 때 발생한다. 버블 라우터는 항상 최소한 하나의 빈 버퍼가 있도록 유지함으로써 이 교착상태를 피하는 방법을 사용한다. 버블 라우터는 가상 컷-스로우(virtual cut-through, VCT) 흐름 제어를 사용할 것을 요구하고 패킷이 유입되거나 차원을 바꿀 때에 이용 가능한 버퍼 크기가 최대 버퍼 크기의 두 배만큼 있어야 한다는 제약사항을 존재한다. 이 제약사항은 원형 의존성 안에 항상 '버블'이 있을 것을 보장함으로써 원형 교착상태를 막는다. 버블 라우터는 원래 버퍼 크기가 제약사항이 아닌 오프칩(off-chip) 네트워크를 위해 제안되었다.
교착상태 회피는 교착상태가 발생하지 않을 것을 보장하지만 이를 위해서 추가적인 자원이 필요하게 된다. 교착상태가 자주 일어나지 않는다면 교착상태 복구가 좀더 효율적인 메커니즘이 될 수 있다. 'DISHA'는 타이머 기반 탐지 알고리즘과 중앙집중식 교착상태 버퍼를 사용하는 적응적 교착상태 복구 방법의 명칭으로, 'DISHA'에서는 각 라우터에서 오랫동안 패킷이 진행되지 않아서 타이머 값이 문턱값에 도달하면 교착상태가 발생한 것으로 가정한다. 그리고, 교착상태 복구를 위해서 단 하나의 패킷만 처리하면 되므로 중앙집중식 교착상태 버퍼가 사용된다. 하지만, 'DISHA'는 대규모 네트워크를 위해서 제안되었고, 온칩 네트워크와는 제약사항이 많이 다르다. 예를 들어, 온칩 네트워크에서는 단순한 'FIFO(First In First Out) 큐(queue)'를 버퍼로 이용하는 반면, 'DISHA'는 좀더 복잡하고 동적 접근이 가능한 큐를 필요로 한다. 따라서, 본 발명의 실시예들에서는 교착상태 토큰을 이용해서 교착상태가 발생한 것을 정확하게 탐지할 수 있는 교착상태 복구 기법을 제안한다. 또한, 교착상태 복구를 위해서 단순한 'FIFO 큐'를 사용하고 가벼운 별도의 네트워크를 추가적으로 이용한다.
교착상태 발생 빈도: 교착상태 회피를 사용할지 교착상태 복구를 사용할지에 대한 결정은 교착상태의 발생 빈도에 따라 달라질 수 있다. 교착상태가 매우 드물게 일어난다면 교착상태 복구 방식이 적합한 반면, 교착상태가 더 자주 일어난다면 교착상태 회피를 사용하는 것이 적합할 수 있다.
도 4는 2개의 가상 채널과 교착상태 회피를 사용한 경우, 다양한 트래픽 패턴과 버퍼 크기에 대해 포화 처리량(주입률)을 나타낸 일례이다. 그래프(400)는 네트워크가 포화 상태일 때(vc = 2)의 주입률(injection rate)과 첫 번째 라우팅 교착상태가 탐지되었을 때(vc = 1)의 최소 주입률을 각각 나타내고 있다. 여기서, x-축은 다양한 트래픽 패턴(Tornado 및 Uniform Random)별 버퍼 크기를, y-축은 주입률을 각각 나타내고 있다. 즉, 동일한 네트워크에 대해 가상 채널을 제거했을 때에 교착상태가 탐지되는 가장 작은 네트워크 로드를 측정한 결과, 가상 채널과 교착상태 회피를 사용할 때의 포화 네트워크 로드보다 교착상태가 탐지되는 가장 작은 네트워크 로드 값이 더 크다는 것을 알 수 있다. 따라서, 같은 양의 자원이 사용될 때에 교착상태 복구를 사용하는 것이 더 높은 성능을 제공할 뿐만 아니라, 특히 네트워크가 포화되지 않은 경우, 교착상태가 발생할 확률도 작아진다. 게다가 교착상태는 네트워크가 포화상태를 넘어서는 경우에 발생하는 경우가 많은 반면에, 칩 멀티프로세서(Chip Multi Processor, CMP)에서는 트래픽의 양이 많지 않다. 따라서, 본 발명의 실시예들에서는 2D 토러스 토폴로지에서 교착상태 회피를 위해 가상 채널을 사용하지 않고 교착상태 복구를 위해 가벼운 네트워크를 사용한다.
2. 본 발명의 실시예들에 따른 토러스에서의 교착상태 복구( deadlock Recovery in torus )
교착상태 복구는 교착상태를 '포착'하는 것과 교착상태를 '복구'하는 것으로 구성된다. 각각의 과정을 위해 별도의 네트워크가 사용되는데, 이는 교착상태 복구 메커니즘이 기존 데이터 네트워크 디자인에 주는 영향을 최소화 시키기 위함이다.
(1) 교착상태 포착
우선, 두 개의 다른 토큰들이 사용된다. 우선순위토큰과 포착토큰이다. 우선순위토큰은 토러스에서의 각각의 축에 하나씩 존재할 수 있다. 즉, k-레이딕스(radix) 2D 토러스의 경우 2k개의 우선순위토큰이 존재할 수 있다. 즉, 하나의 링에 하나씩 우선순위토큰이 존재할 수 있다. 여기서, 토러스는 'k*k' 사각형을 구성하는 2k개의 축이 각각 하나의 링(ring)으로 구성된 구조를 가질 수 있다. 우선순위토큰은 각각의 링을 순환하며 돌게 되고, 우선순위토큰을 가지고 있는 라우터(홈라우터)가 포착토큰을 네트워크에 집어넣을 수 있다. 홈라우터는 교착상태가 발생했을 가능성이 있는 상황에 교착상태를 위한 포착토큰을 만들게 된다. 포착토큰은 별도로 존재하는 토큰 네트워크에 들어가게 된다. 만일, 토큰이 네트워크를 돌면서 버려지지 않고 홈라우터로 다시 돌아오게 된다면, 순환 라우팅 교착상태가 포착되었다는 의미이고, 교착상태 복구가 필요하게 된다.
포착토큰을 전달하거나(routing) 버리는 것은 라우터의 상태와 큐의 제일 앞(head)에 있는 패킷에 의해 결정될 수 있다. 만일 큐의 제일 앞에 있는 플릿(flit, 하나의 패킷은 네트워크에서 여러 개의 플릿으로 나뉘어 전송됨)이 전송될 목적지가 가득 차 있는 상태라면 즉, 목적지 라우터에 남아있는 버퍼공간이 없을 경우, 라우팅 교착상태가 여전히 존재할 수 있다는 뜻이고, 따라서 포착토큰은 계속해서 전달이 되게 된다. 만일, 해당 라우터에 남아있는 버퍼공간이 존재하는 경우, 포착토큰은 버려진다.
도 5는 본 발명의 일실시예에 있어서, 라우팅 교착상태 시나리오를 설명하기 위한 일례이다. 도 5의 (a)는 'R1'의 'port2'가 가득 차 있고 따라서, 교착상태 포착토큰이 생성된 상황이다. 포착토큰은 'R1'의 'port2'의 큐에서 제일 앞의 플릿을 이용하여 해당 패킷이 어떤 방향으로 가려는지 확인한다. 만일, 패킷의 다음 목적지가 'R2'라면, 포착토큰은 'R2'로 움직인다. 포착토큰이 'R2'에 도착했을 때는, 'R2'의 'port1'에 있는 큐에서 제일 앞의 플릿을 이용하여 다음 목적지를 판단한다. 정리하자면 토큰은 큐의 헤더(header) 부분에 있는 플릿을 보고 동일하게 전송될 수 있다.
교착상태 포착토큰이 만들어지고 전송되는 중에, 만일 다음 이동방향이 라우터에서 빠져나가는 포트(port)이거나 다음 라우터의 버퍼가 가득 차지 않은 상황이라면 포착토큰은 버려지게 된다. 그리고, DOR(X축으로 먼저 모두 이동하고 Y축으로 이동하는 방식의 라우팅, 또는 그 반대로 Y축으로 먼저 모두 이동하고 X축으로 이동하는 방식의 라우팅)을 가정하면, 꼬리에 꼬리를 무는 식의 순환 의존 문제는 서로 다른 차원에 대해서는 발생하지 않는다. 즉, 순환 의존 문제는 X, Y 차원에 걸쳐서 발생할 수 없다. 따라서, 플릿이 이동 방향을 다른 차원으로 바꿀 경우에 포착토큰은 버려지게 된다. 위의 조건들은 순환 의존 문제가 발생할 수 없다는 것을 의미하고 따라서, 포착토큰이 버려졌다는 것은 현재 교착상태가 없다는 것을 뜻하는 것이다. 포착토큰이 버려졌다면, 교착상태가 없다는 의미이기는 하지만 단지 아직 교착상태가 발생하기 전일 뿐이라는 의미이기도 하다. 따라서 각각의 홈라우터는 포착토큰이 k-사이클 동안 돌아오지 않았을 때(k가 각 차원의 레이딕스(radix)일 때를 가정), 아직 교착상태가 발생하지는 않았으나 계속해서 교착상태를 찾는 메커니즘을 동작시키기 위해 우선순위토큰을 다시 네트워크에 집어넣게 된다.
B. 교착상태 복구
만일 교착상태 포착토큰이 하나의 링을 한 바퀴를 돌고 홈노드(홈라우터)에 도착하게 되었을 경우, 순환 의존 문제가 존재하고 있다는 뜻이고, 따라서 라우팅 교착상태가 포착되었음을 의미한다. 만일 교착상태가 포착되었다면, 교착상태에 관여하고 있는 패킷을 하나 빼내어서 별도의 교착상태 복구(deadlock recovery)를 위한 데이터 복구 네트워크(Data recovery network)에 집어넣음으로써 교착상태를 복구할 수 있다. 이러한 교착상태 복구를 위해 하나의 패킷이 선택되어 순환 의존 구조로부터 제거되어야 한다. 이 하나의 타겟 패킷은 교착상태에 포함되어있으며, 큐의 가장 앞부분에 존재하고 있는 패킷으로 정의가 된다. 또한, 간단한 FIFO 버퍼 구조를 유지하기 위해, 타겟 패킷(target packet)을 선택할 때 하나의 조건이 필요하다. 즉, 큐의 가장 앞부분에 존재하고 있는 플릿이 헤드플릿(head flit, 패킷을 구성하는 여러 개의 플릿 중 가장 첫 번째 플릿)이어야 한다는 조건이다.
라우팅은 패킷 단위로 이루어지기 때문에 만일, 홈라우터의 큐의 제일 앞에 있는 타겟 패킷이 헤드플릿이 아니고 바디플릿(body flit) 혹은 꼬리플릿(tail flit)이라면, 포착토큰을 버리고 우선순위토큰을 전달함으로써 다른 노드가 교착상태 포착토큰을 생성하도록 한다. 만일 홈라우터의 큐의 제일 앞에 헤드플릿이 있다면, 해당 패킷은 별개의 교착상태 복구 네트워크로 전달될 수 있다. 교착상태를 구성하고 있던 하나의 패킷을 다른 네트워크로 옮겼기 때문에, 순환 의존 문제가 해결되기 마련이고 따라서, 교착상태 복구과정이 완료되게 된다.
그러나, 만일 모든 노드들에 대해 큐의 제일 앞에 있는 플릿이 헤드플릿이 아닌 경우가 발생하면 어떻게 될까? 순환 라우팅 교착상태를 구성하고 있는 노드 중에 적어도 하나의 노드에 대해선 큐의 제일 앞에 헤드플릿이 존재하게 된다. 따라서, 위에서 설명한 교착상태 복구 메커니즘은 별도의 복잡한 버퍼 관리(예를 들어 동적 할당 멀티-큐(Dynamically Allocated Multi-Queue, DAMQ) 와 같은)를 필요로 하지 않고, 또 버퍼를 한번에 하나의 패킷만 사용하도록 한다는 등의 제약사항 역시 필요로 하지 않는다.
C, 토러스 네트워크에서의 라우팅 교착상태의 특징.
2D 토러스 네트워크에서 순환 라우팅 교착상태가 발생했을 경우에 교착상태를 구성하는 버퍼들 중 적어도 하나의 버퍼는 헤드플릿이 존재함을 설명한다. 첫째로, 1D(dimension) 토러스 (혹은 링) 토폴로지에서 이것이 어떻게 성립하는지를 설명하고, 다음으로 2D 토러스 네트워크에서 이것이 어떻게 적용되는지를 설명한다.
1) 1D 토러스에서의 라우팅 교착상태
만일, 라우팅 교착상태가 1D 토러스에서 발생한다면, 큐의 제일 앞에 있는 플릿들 중에 적어도 하나의 플릿은 헤드플릿이라고 가정한다. 이러한 가정을 증명하기 위해 우선, 일반성을 잃지 않으면서, 도 5에 나타난 바와 같은 단방향 링 네트워크를 가정할 수 있다. 'port 2'가 노드에서부터 넣어지는 패킷들을 저장하는 큐(injection queue)라고 가정을 하고, 'port1'이 옆에 있는 노드와 연결되어 있다고 가정하자. 만약, 네트워크에 있는 모든 패킷이 하나의 플릿으로 구성된 패킷이라고 가정한다면, 모든 플릿들은 헤드플릿이므로 큐의 제일 앞에 있는 플릿들 중에 적어도 하나의 플릿은 헤드플릿이라는 가정은 옳다.
다음으로, 패킷들이 여러 개의 플릿으로 구성된다고 가정하자. 만일 라우팅 교착상태가 1D 링에서 발생한다면, 아래의 두 가지 조건이 관찰될 수 있다.
- 교착상태를 이루는 순환 의존되는 모든 버퍼는 가득 차 있다.
- 서로 다른 패킷의 플릿들은 절대로 사이에 끼지 않는다. 즉, 한 패킷을 이루는 플릿들 사이에 다른 패킷의 플릿이 끼어있는 경우는 존재하지 않는다. 왜냐하면 전달(routing)하는 단위가 패킷이고, 바디플릿이나 꼬리플릿은 무조건 헤드플릿을 뒤따라야 하기 때문이다.
이러한 관찰된 두 가지 조건에 근거하면, 두 가지 다른 교착상태 시나리오가 도 5에서와 같이 만들어질 수 있다.
(a) 하나 이상의 주입 포트(injection port)가 교착상태에 포함되는 경우.
도 5의 (a)에 나온 것처럼, 버퍼 사이의 순환 의존성 문제는 하나 이상의 주입 포트를 포함하여 발생할 수도 있다. 이런 라우팅 교착상태가 발생했을 때, 주입 포트가 교착상태에 포함된 라우터는, 교착상태에 포함된 다른 큐를 하나 더 갖게 된다. 도 5의 (a)에선 'R1' 라우터의 'port1'에 해당하는 큐 'R1_q1'이다.
위에서 언급했던 두 번째 관찰에 따르면, 패킷들은 서로간에 사이에 낄 수 없고, 'R1_q2'가 'R2_q1'으로 패킷을 넣는 중이므로, 'R1_q1'에 해당하는 큐의 제일 앞에 있는 플릿은 무조건 헤드플릿이어야만 한다. 만일 'R1_q1'의 제일 앞에 있는 플릿이 헤드플릿이 아니라면, 그것은 두 가지 케이스 중에 하나이다. 즉, 'R2_q1'에 서로 다른 패킷이 서로 섞여서 들어간 상황(불가능한 상황임.)이거나 패킷의 목적지가 'R1'이고 현재 네트워크에서 빠져나가는 중인 경우이다. 이 경우엔 교착상태가 발생하지 않는다.
(b) 주입 포트가 교착상태에 포함되지 않았을 경우.
도 5의 (b)에 나타난 바와 같이 주입 포트에 해당하는 버퍼가 교착상태에 포함되지 않았을 경우를 가정하자. 이러한 경우, 패킷이 움직이는 경우는 생기지 않는다. 네트워크에 마지막으로 들어와서 교착상태를 발생시키는 패킷을 'P'(R1에서 들어와서 'R2_q1'에 있는 패킷)라고 하자. 만일 교착상태가 이 패킷이 들어온 이후에 발생했다면 패킷들은 서로 섞일 수 없으므로 'R1_q1'의 제일 앞부분에 있는 플릿은 무조건 헤드플릿이어야 한다.
따라서, 위의 설명에 근거했을 때, 순환 라우팅 교착상태가 발생했을 경우엔 무조건 적어도 하나의 큐에서 큐의 제일 앞에 있는 플릿이 헤드플릿임을 알 수 있다.
2) 2D 토러스에서의 라우팅 교착상태
위에서는, 2D 토러스 네트워크에서의 DOR(X축으로 먼저 모두 이동하고 Y축으로 이동하는 방식의 라우팅, 혹은 그 반대로 Y축으로 먼저 모두 이동하고 X축으로 이동하는 방식의 라우팅)을 가정했다. XY라우팅(X축으로 먼저 모두 이동하고 Y축으로 이동하는 방식의 라우팅)을 가정한다면, Y 축에 존재하는 패킷들이 X축에 존재하는 패킷들 때문에 기다리는 일은 발생하지 않는다. 따라서, 모든 순환 의존 문제는 X축 링이나 Y축 링과 같은, 하나의 축에서만 발생하게 된다. 즉, 따라서, 상술한 가정(만일, 라우팅 교착상태가 1D 토러스에서 발생한다면, 큐의 제일 앞에 있는 플릿들 중에 적어도 하나의 플릿은 헤드플릿이라고 가정)의 증명은 DOR 라우팅을 사용하는 2D 토러스에서도 쉽게 일반화될 수 있다.
D. 교착상태 토큰 아키텍쳐
도 6은 세 개의 네트워크로 (데이터 네트워크, 토큰 네트워크, 교착상태 복구 네트워크) 구성된 교착상태-복구 토큰 네트워크를 나타낸 일례이다. 도 6에서 2D 토러스 네트워크(600)는 복수의 링 네트워크를 이용하여 2차원 구조로 각각 형성된 데이터 네트워크(data network) 및 토큰 네트워크(token network)를 병렬 형태로 포함할 수 있다. 도 6에 도시된 토큰 네트워크 'Token network'는 간단한 2 비트(bit)짜리 네트워크이고 2D 토러스 네트워크가 아닌 링 네트워크(즉, 1D 토러스 네트워크) 형태로 연결되어 있다. 그 이유는 토큰은 한 축으로만 이동하기 때문이다. 또한, 도 6의 토큰 네트워크는 오직 하나의 토큰만 이동하고 네트워크상에서 컨텐션(contention, 두 개 이상의 플릿이 하나의 자원(resource)을 두고 경쟁하는 상황)이 없기 때문에 버퍼를 사용하지 않는 네트워크로 단순화하여 표현되어 있다. 간단한 데이터 복구 네트워크 'Data recovery network' 역시 표현되어 있다. 패킷이 데이터 네트워크 'Data network'에서 제거되었을 때, 해당 패킷은 데이터 복구 네트워크로 들어가게 되고 목적지로 이동하게 된다. 패킷의 목적지가 다른 축에 존재할 수 있기 때문에, 데이터 복구 네트워크는 2D 토러스 토폴로지로 구성되어야 한다. 데이터 복구 네트워크에서의 라우팅 교착상태 역시 발생하지 않도록 예방되어야 하지만, 하나의 링에서 데이터 복구 네트워크에 동시에 들어갈 수 있는 패킷 갯수는 하나로 제한이 되기 때문에 간단한 링 마이크로아키텍쳐를 확장한 것이 2D 토러스 데이터 복구 네트워크로 사용될 수 있다. 두 개의 네트워크(토큰 네트워크와 데이터 복구 네트워크)는 추가적인 칩 공간을 차지하게 되지만, 라우터가 차지하는 전체 칩 공간은 오히려 감소하게 된다. 왜냐하면, 라우팅 교착상태를 위해 존재했던 가상 채널(virtual channel)을 제거할 수 있기 때문이다.
도 7은 본 발명의 일실시예에 있어서, 라우팅 시스템의 내부 구성을 설명하기 위한 블록도이다. 본 실시예에 따른 라우팅 시스템(700)은 복수의 링 네트워크를 이용하여 2차원 구조로 각각 형성된 데이터 네트워크(data network) 및 토큰 네트워크(token network)를 병렬 형태로 포함하는 토러스(torus) 네트워크상에서, 패킷을 전송하는 시스템일 수 있다. 이러한 라우팅 시스템(700)은 도 7에 도시된 바와 같이, 저장 관리부(710), 우선순위토큰 수신부(720), 포착토큰 관리부(730), 목적지 라우터 확인부(740), 포착토큰 처리부(750) 및 교착상태 발생 확인부(760)를 포함할 수 있다.
저장 관리부(710)는 데이터 네트워크를 통해 이전 라우터로부터 수신되는 패킷의 플릿(flit)을 버퍼에 저장한다. 여기서, 데이터 네트워크는 2k개의 링 네트워크가 각각의 축을 구성하는 k*k의 2차원 형태로 형성될 수 있다. 데이터 네트워크뿐만 아니라, 토큰 네트워크 역시 2k개의 링 네트워크가 각각의 축을 구성하는 k*k의 2차원 형태로 형성될 수 있다. 이때, 토러스 네트워크는 데이터 네트워크와 토큰 네트워크를 병렬 형태로 포함할 수 있다. 이후 설명되는 데이터 복구 네트워크(data recovery network) 역시 2k개의 링 네트워크가 각각의 축을 구성하는 k*k의 2차원 형태로 형성될 수 있고, 데이터 네트워크 및 토큰 네트워크와 함께 병렬 형태로 토러스 네트워크에 포함될 수 있다. 이러한 토러스 네트워크의 구조는 도 6을 통해 이미 설명하였다.
우선순위토큰 수신부(720)는 토큰 네트워크를 형성하는 링 네트워크들 각각에 우선순위토큰 중 해당하는 링 네트워크상에서 전송되는 우선순위토큰들을 수신한다. 우선순위토큰은 토큰 네트워크의 2k개의 링 네트워크 각각에 하나씩 생성될 수 있고, 토큰 네트워크를 통해 해당하는 링 네트워크를 따라 전송될 수 있다. 즉, 우선순위토큰 수신부(720)는 토큰 네트워크의 해당하는 링 네트워크를 따라 전송되는 우선순위토큰을 수신할 수 있다. 이러한 우선순위토큰은 전송되는 링 네트워크별로 구분될 수 있다.
포착토큰 관리부(730)는 수신된 우선순위토큰을 이용하여 포착토큰을 생성하거나 또는 이전 라우터로부터 토큰 네트워크를 통해 포착토큰을 수신한다. 이미 설명한 바와 같이, 포착토큰은 우선순위토큰을 수신한 라우터만이 생성할 수 있다. 즉, 포착토큰 관리부(730)는 우선순위토큰을 수신하고, 교착상태가 의심스러운 경우, 포착토큰을 생성할 수 있다. 일례로, 교착상태가 의심스러운 경우는, 라우팅 시스템(700)의 버퍼가 가득 찬 상태일 수 있다. 또한, 다른 라우터에서 이미 포착토큰이 생성된 경우, 포착토큰 관리부(730)는 토큰 네트워크를 통해 전송되는 포착토큰을 수신할 수도 있다.
목적지 라우터 확인부(740)는 버퍼의 헤드부분에 저장된 플릿의 목적지 라우터를 확인한다. 이미 설명한 바와 같이, 포착토큰은 라우팅 시스템(700)가 포함하는 버퍼의 제일 앞부분인 헤드부분에 저장된 플릿과 동일한 라우터로 이동할 수 있다. 이를 위해, 목적지 라우터 확인부(740)는 해당 플릿의 목적지 라우터를 확인할 수 있다.
포착토큰 처리부(750)는 목적지 라우터에 포함된 버퍼의 상태에 따라 생성 또는 수신된 포착토큰을 토큰 네트워크를 통해 목적지 라우터로 전송하거나 또는 제거한다. 예를 들어, 버퍼의 상태는 목적지 라우터에 포함된 버퍼에 플릿을 저장하기 위한 공간이 존재하지 않는 제1 상태 및 목적지 라우터에 포함된 버퍼에 플릿을 저장하기 위한 공간이 존재하는 제2 상태를 포함할 수 있다. 이 경우, 포착토큰 처리부(750)는 제1 상태에 따라 생성 또는 수신된 포착토큰을 목적지 라우터로 전송하거나, 또는 제2 상태에 따라 생성 또는 수신된 포착토큰을 제거할 수 있다.
교착상태 발생 확인부(760)는 생성 또는 수신된 포착토큰이 목적지 라우터로 전송되고, 전송된 포착토큰이 다시 수신되는 경우, 토러스 네트워크에 교착상태가 발생하였음을 확인한다.
또한, 토러스 네트워크는 복수의 링 네트워크를 이용하여 2차원 구조로 형성된 데이터 복구 네트워크(data recovery network)를 병렬 형태로 더 포함할 수 있다. 이 경우, 라우팅 시스템(700)은 도 7에 도시된 바와 같이, 헤드플릿 확인부(770), 헤드플릿 전송부(780) 및 우선순위토큰 전송부(790)를 필요에 따라 더 포함할 수 있다.
헤드플릿 확인부(770)는 교착상태가 발생한 것으로 확인된 경우, 버퍼의 헤드에 저장된 플릿이 헤드플릿인지 여부를 확인한다.
헤드플릿 전송부(780)는 버퍼의 헤드에 저장된 플릿이 헤드플릿인 경우, 저장된 헤드플릿을 데이터 복구 네트워크를 통해 다음 라우터로 전송한다.
우선순위토큰 전송부(790)는 버퍼의 헤드에 저장된 플릿이 헤드플릿이 아닌 경우, 다시 전송된 포착토큰을 제거하고, 수신된 우선순위토큰을 토큰 네트워크를 통해 다음 라우터로 전송한다.
하나의 링 네트워크에서 적어도 하나의 라우터에는 버퍼의 헤드부분에 헤드플릿이 저장되어 있음을 이미 설명하였다. 따라서, 적어도 하나의 라우터에서 헤드플릿을 데이터 복구 네트워크로 전송하여 교착상태를 복구하기 위해, 라우팅 시스템(700)은 헤드플릿 확인부(770), 헤드플릿 전송부(780) 및 우선순위토큰 전송부(790)를 통해 헤드플릿을 데이터 복구 네트워크를 통해 다음 라우터로 전송하거나 또는 우선순위토큰을 토큰 네트워크를 통해 다음 라우터로 전송할 수 있다.
도 8은 본 발명의 일실시예에 있어서, 라우팅 방법을 도시한 흐름도이다. 본 실시예에 따른 라우팅 방법은 도 7을 통해 설명한 라우팅 시스템(700)을 통해 수행될 수 있다. 도 7에 도시된 바와 같이 라우팅 방법은 단계(810) 내지 단계(860)을 포함할 수 있다.
단계(810)에서 라우팅 시스템(700)은 데이터 네트워크를 통해 이전 라우터로부터 수신되는 패킷의 플릿(flit)을 버퍼에 저장한다. 여기서, 데이터 네트워크는 2k개의 링 네트워크가 각각의 축을 구성하는 k*k의 2차원 형태로 형성될 수 있다. 데이터 네트워크뿐만 아니라, 토큰 네트워크 역시 2k개의 링 네트워크가 각각의 축을 구성하는 k*k의 2차원 형태로 형성될 수 있다. 이때, 토러스 네트워크는 데이터 네트워크와 토큰 네트워크를 병렬 형태로 포함할 수 있다. 이후 설명되는 데이터 복구 네트워크(data recovery network) 역시 2k개의 링 네트워크가 각각의 축을 구성하는 k*k의 2차원 형태로 형성될 수 있고, 데이터 네트워크 및 토큰 네트워크와 함께 병렬 형태로 토러스 네트워크에 포함될 수 있다. 이러한 토러스 네트워크의 구조는 도 6을 통해 이미 설명하였다.
단계(820)에서 라우팅 시스템(700)은 토큰 네트워크를 형성하는 링 네트워크들 각각에 우선순위토큰 중 해당하는 링 네트워크상에서 전송되는 우선순위토큰들을 수신한다. 우선순위토큰은 토큰 네트워크의 2k개의 링 네트워크 각각에 하나씩 생성될 수 있고, 토큰 네트워크를 통해 해당하는 링 네트워크를 따라 전송될 수 있다. 즉, 라우팅 시스템(700)은 토큰 네트워크의 해당하는 링 네트워크를 따라 전송되는 우선순위토큰을 수신할 수 있다. 이러한 우선순위토큰은 전송되는 링 네트워크별로 구분될 수 있다.
단계(830)에서 라우팅 시스템(700)은 수신된 우선순위토큰을 이용하여 포착토큰을 생성하거나 또는 이전 라우터로부터 토큰 네트워크를 통해 포착토큰을 수신한다. 이미 설명한 바와 같이, 포착토큰은 우선순위토큰을 수신한 라우터만이 생성할 수 있다. 즉, 라우팅 시스템(700)은 우선순위토큰을 수신하고, 교착상태가 의심스러운 경우, 포착토큰을 생성할 수 있다. 일례로, 교착상태가 의심스러운 경우는, 라우팅 시스템(700)의 버퍼가 가득 찬 상태일 수 있다. 또한, 다른 라우터에서 이미 포착토큰이 생성된 경우, 라우팅 시스템(700)은 토큰 네트워크를 통해 전송되는 포착토큰을 수신할 수도 있다.
단계(840)에서 라우팅 시스템(700)은 버퍼의 헤드부분에 저장된 플릿의 목적지 라우터를 확인한다. 이미 설명한 바와 같이, 포착토큰은 라우팅 시스템(700)가 포함하는 버퍼의 제일 앞부분인 헤드부분에 저장된 플릿과 동일한 라우터로 이동할 수 있다. 이를 위해, 라우팅 시스템(700)은 해당 플릿의 목적지 라우터를 확인할 수 있다.
단계(850)에서 라우팅 시스템(700)은 목적지 라우터에 포함된 버퍼의 상태에 따라 생성 또는 수신된 포착토큰을 토큰 네트워크를 통해 목적지 라우터로 전송하거나 또는 제거한다. 예를 들어, 버퍼의 상태는 목적지 라우터에 포함된 버퍼에 플릿을 저장하기 위한 공간이 존재하지 않는 제1 상태 및 목적지 라우터에 포함된 버퍼에 플릿을 저장하기 위한 공간이 존재하는 제2 상태를 포함할 수 있다. 이 경우, 라우팅 시스템(700)은 단계(850)에서 제1 상태에 따라 생성 또는 수신된 포착토큰을 목적지 라우터로 전송하거나, 또는 제2 상태에 따라 생성 또는 수신된 포착토큰을 제거할 수 있다.
단계(860)에서 라우팅 시스템(700)은 생성 또는 수신된 포착토큰이 목적지 라우터로 전송되고 전송된 포착토큰이 다시 수신되는 경우, 토러스 네트워크에 교착상태가 발생하였음을 확인한다.
또한, 토러스 네트워크는 복수의 링 네트워크를 이용하여 2차원 구조로 형성된 데이터 복구 네트워크를 병렬 형태로 더 포함할 수 있다.
도 9는 본 발명의 일실시예에 있어서, 교착상태 복구 방법을 도시한 흐름도이다. 본 실시예에 따른 교착상태 복구 방법은 도 9에 도시된 바와 같이 단계(910) 내지 단계(930)을 포함할 수 있고, 단계(910) 내지 단계(930)은 도 8에서 설명한 단계(860) 이후에 라우팅 시스템(700)을 통해 수행될 수 있다.
단계(910)에서 라우팅 시스템(700)은 교착상태가 발생한 것으로 확인된 경우, 버퍼의 헤드에 저장된 플릿이 헤드플릿인지 여부를 확인한다.
단계(920)에서 라우팅 시스템(700)은 버퍼의 헤드에 저장된 플릿이 헤드플릿인 경우, 저장된 헤드플릿을 데이터 복구 네트워크를 통해 다음 라우터로 전송한다.
단계(930)에서 라우팅 시스템(700)은 버퍼의 헤드에 저장된 플릿이 헤드플릿이 아닌 경우, 다시 전송된 포착토큰을 제거하고, 수신된 우선순위토큰을 토큰 네트워크를 통해 다음 라우터로 전송한다.
하나의 링 네트워크에서 적어도 하나의 라우터에는 버퍼의 헤드부분에 헤드플릿이 저장되어 있음을 이미 설명하였다. 따라서, 적어도 하나의 라우터에서 헤드플릿을 데이터 복구 네트워크로 전송하여 교착상태를 복구하기 위해, 라우팅 시스템(700)은 단계(910) 내지 단계(930)를 통해 헤드플릿을 데이터 복구 네트워크를 통해 다음 라우터로 전송하거나 또는 우선순위토큰을 토큰 네트워크를 통해 다음 라우터로 전송할 수 있다.
도 10은 본 발명의 다른 실시예에 있어서, 라우팅 시스템의 내부 구성을 설명하기 위한 블록도이다. 본 실시예에 따른 라우팅 시스템(1000)은 패킷을 전송하는 시스템으로, 도 10에 도시된 바와 같이 플릿 관리부(1010), 토큰 관리부(1020) 및 교착상태 탐지부(1030)를 포함할 수 있고, 필요에 따라 교착상태 복구 처리부(1040)를 더 포함할 수 있다.
플릿 관리부(1010)는 복수의 링 네트워크를 이용하여 2차원 구조로 형성된 데이터 네트워크를 통해 수신된 패킷의 플릿을 수신하여 버퍼에 저장하고, 데이터 네트워크를 통해 다음 라우터로 전송할 수 있다. 여기서, 데이터 네트워크는 2k개의 링 네트워크가 각각의 축을 구성하는 k*k의 2차원 형태로 형성될 수 있다.
토큰 관리부(1020)는 복수의 링 네트워크를 이용하여 2차원 구조로 형성된 토큰 네트워크를 통해 우선순위토큰을 수신하여 포착토큰을 생성하고 토큰 네트워크를 통해 다음 라우터로 전송하거나 또는 토큰 네트워크를 통해 우선순위토큰 또는 포착토큰을 수신하여 토큰 네트워크를 통해 다음 라우터로 전송한다. 여기서, 토큰 네트워크 역시 2k개의 링 네트워크가 각각의 축을 구성하는 k*k의 2차원 형태로 형성될 수 있다.
교착상태 탐지부(1030)는 생성되어 전송된 포착토큰이 다시 수신되는 경우, 교착상태가 발생한 것으로 탐지한다. 즉, 포착토큰은 플릿이 전송될 다음 라우터의 버퍼 상태에 따라 다음 라우터로 전송되거나 또는 제거된다. 이미 설명한 바와 같이, 포착토큰이 제거되지 않고, 링 네트워크를 따라 전송되다가, 다시 원래의 라우터인 홈라우터로 전송되는 경우, 홈라우터는 교착상태가 발생한 것을 탐지할 수 있다.
교착상태 복구 처리부(1040)는 교착상태의 발생을 탐지한 경우, 버퍼의 헤드 부분에 저장된 헤드플릿을, 복수의 링 네트워크를 이용하여 2차원 구조로 형성된 데이터 복구 네트워크를 통해 다음 라우터로 전송한다. 이때, 교착상태 복구 처리부(940)는 버퍼의 헤드 부분에 헤드플릿이 존재하지 않는 경우, 다시 전송된 포착토큰을 제거하고, 수신된 우선순위토큰을 토큰 네트워크를 통해 다음 라우터로 전송할 수 있다. 여기서, 데이터 복구 네트워크 역시 2k개의 링 네트워크가 각각의 축을 구성하는 k*k의 2차원 형태로 형성될 수 있다.
여기서, 2k개의 링 네트워크가 각각의 축을 구성하는 k*k의 2차원 형태로 각각 형성된 데이터 네트워크, 토큰 네트워크 및 데이터 복구 네트워크는 병렬 형태로 형성되어 하나의 2차원 토러스 네트워크를 구성할 수 있다.
도 7 내지 도 10에서 생략된 내용은 도 1 내지 도 8을 참조할 수 있다.
이와 같이, 본 발명의 실시예들에 따르면, 토큰을 이용한 교착상태 복구(Deadlock Recovery with Tokens, DRT)를 이용하여 2D 토러스 토폴로지가 제공하는 풍부한 와이어(wire)를 활용하면서도 추가적인 버퍼(가상 채널)의 크기를 최소화할 수 있다. 또한, 교착상태를 탐지하는 데에 타이머에 의존하는 부정확한 방법 대신 정확히 교착상태를 탐지할 수 있고, 필요에 따라 교착상태로부터 복구할 수 있으며, 가상 채널을 사용하여 교착상태를 회피하는 종래기술에 비해 성능 저하를 최소화하면서도 온칩 네트워크의 복잡도를 감소시킬 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
700: 라우팅 시스템
710: 저장 관리부
720: 우선순위토큰 수신부
730: 포착토큰 관리부
740: 목적지 라우터 확인부
750: 포착토큰 처리부
760: 교착상태 발생 확인부
770: 헤드플릿 확인부
780: 헤드플릿 전송부
790: 우선순위토큰 전송부

Claims (13)

  1. 복수의 링 네트워크를 이용하여 2차원 구조로 각각 형성된 데이터 네트워크(data network) 및 토큰 네트워크(token network)를 병렬 형태로 포함하는 토러스(torus) 네트워크상에서, 패킷을 전송하는 라우팅 시스템에 있어서,
    상기 데이터 네트워크를 통해 이전 라우터로부터 수신되는 패킷의 플릿(flit)을 버퍼에 저장하는 저장 관리부;
    상기 토큰 네트워크를 형성하는 링 네트워크들 각각에 우선순위토큰 중 해당하는 링 네트워크상에서 전송되는 우선순위토큰들을 수신하는 우선순위토큰 수신부;
    상기 수신된 우선순위토큰을 이용하여 포착토큰을 생성하거나 또는 상기 이전 라우터로부터 상기 토큰 네트워크를 통해 포착토큰을 수신하는 포착토큰 관리부;
    상기 버퍼의 헤드부분에 저장된 플릿의 목적지 라우터를 확인하는 목적지 라우터 확인부;
    상기 목적지 라우터에 포함된 버퍼의 상태에 따라 상기 생성 또는 수신된 포착토큰을 상기 토큰 네트워크를 통해 상기 목적지 라우터로 전송하거나 또는 제거하는 포착토큰 처리부; 및
    상기 생성 또는 수신된 포착토큰이 상기 목적지 라우터로 전송되고 상기 전송된 포착토큰이 다시 수신되는 경우, 상기 토러스 네트워크에 교착상태가 발생하였음을 확인하는 교착상태 발생 확인부
    를 포함하는 라우팅 시스템.
  2. 제1항에 있어서,
    상기 데이터 네트워크 및 상기 토큰 네트워크 각각은 2k개의 링 네트워크가 각각의 축을 구성하는 k*k의 2차원 형태로 형성되고,
    상기 우선순위토큰은 상기 토큰 네트워크의 2k개의 링 네트워크 각각에 하나씩 생성되고,
    상기 k는 양의 정수인 것을 특징으로 하는 라우팅 시스템.
  3. 제1항에 있어서,
    상기 버퍼의 상태는 상기 목적지 라우터에 포함된 버퍼에 플릿을 저장하기 위한 공간이 존재하지 않는 제1 상태 및 상기 목적지 라우터에 포함된 버퍼에 플릿을 저장하기 위한 공간이 존재하는 제2 상태를 포함하고,
    상기 포착토큰 관리부는,
    상기 제1 상태에 따라 상기 생성 또는 수신된 포착토큰을 상기 목적지 라우터로 전송하거나, 또는 상기 제2 상태에 따라 상기 생성 또는 수신된 포착토큰을 제거하는 것을 특징으로 하는 라우팅 시스템.
  4. 제1항에 있어서,
    상기 토러스 네트워크는, 복수의 링 네트워크를 이용하여 2차원 구조로 형성된 데이터 복구 네트워크(data recovery network)를 병렬 형태로 더 포함하는 것을 특징으로 하는 라우팅 시스템.
  5. 제4항에 있어서,
    상기 패킷은, 헤드플릿(head flit), 바디플릿(body flit) 및 꼬리플릿(tail flit)으로 구성되고,
    상기 교착상태가 발생한 것으로 확인된 경우, 상기 버퍼의 헤드에 저장된 플릿이 헤드플릿인지 여부를 확인하는 헤드플릿 확인부;
    상기 버퍼의 헤드에 저장된 플릿이 헤드플릿인 경우, 상기 저장된 헤드플릿을 상기 데이터 복구 네트워크를 통해 다음 라우터로 전송하는 헤드플릿 전송부; 및
    상기 버퍼의 헤드에 저장된 플릿이 헤드플릿이 아닌 경우, 상기 다시 전송된 포착토큰을 제거하고, 상기 수신된 우선순위토큰을 상기 토큰 네트워크를 통해 다음 라우터로 전송하는 우선순위토큰 전송부
    를 더 포함하는 라우팅 시스템.
  6. 복수의 링 네트워크를 이용하여 2차원 구조로 각각 형성된 데이터 네트워크 및 토큰 네트워크를 병렬 형태로 포함하는 토러스 네트워크상에서, 패킷을 전송하는 라우팅 시스템이 수행하는 라우팅 방법에 있어서,
    상기 데이터 네트워크를 통해 이전 라우터로부터 수신되는 패킷의 플릿(flit)을 버퍼에 저장하는 단계;
    상기 토큰 네트워크를 형성하는 링 네트워크들 각각에 우선순위토큰 중 해당하는 링 네트워크상에서 전송되는 우선순위토큰들을 수신하는 단계;
    상기 수신된 우선순위토큰을 이용하여 포착토큰을 생성하거나 또는 상기 이전 라우터로부터 상기 토큰 네트워크를 통해 포착토큰을 수신하는 단계;
    상기 버퍼의 헤드부분에 저장된 플릿의 목적지 라우터를 확인하는 단계;
    상기 목적지 라우터에 포함된 버퍼의 상태에 따라 상기 생성 또는 수신된 포착토큰을 상기 토큰 네트워크를 통해 상기 목적지 라우터로 전송하거나 또는 제거하는 단계; 및
    상기 생성 또는 수신된 포착토큰이 상기 목적지 라우터로 전송되고 상기 전송된 포착토큰이 다시 수신되는 경우, 상기 토러스 네트워크에 교착상태가 발생하였음을 확인하는 단계
    를 포함하는 라우팅 방법.
  7. 청구항 7은(는) 설정등록료 납부시 포기되었습니다.
    제6항에 있어서,
    상기 데이터 네트워크 및 상기 토큰 네트워크 각각은 2k개의 링 네트워크가 각각의 축을 구성하는 k*k의 2차원 형태로 형성되고,
    상기 우선순위토큰은 상기 토큰 네트워크의 2k개의 링 네트워크 각각에 하나씩 생성되고,
    상기 k는 양의 정수인 것을 특징으로 하는 라우팅 방법.
  8. 청구항 8은(는) 설정등록료 납부시 포기되었습니다.
    제6항에 있어서,
    상기 버퍼의 상태는 상기 목적지 라우터에 포함된 버퍼에 플릿을 저장하기 위한 공간이 존재하지 않는 제1 상태 및 상기 목적지 라우터에 포함된 버퍼에 플릿을 저장하기 위한 공간이 존재하는 제2 상태를 포함하고,
    상기 목적지 라우터로 전송하거나 또는 제거하는 단계는,
    상기 제1 상태에 따라 상기 생성 또는 수신된 포착토큰을 상기 목적지 라우터로 전송하거나, 또는 상기 제2 상태에 따라 상기 생성 또는 수신된 포착토큰을 제거하는 것을 특징으로 하는 라우팅 방법.
  9. 청구항 9은(는) 설정등록료 납부시 포기되었습니다.
    제6항에 있어서,
    상기 토러스 네트워크는, 복수의 링 네트워크를 이용하여 2차원 구조로 형성된 데이터 복구 네트워크(data recovery network)를 병렬 형태로 더 포함하는 것을 특징으로 하는 라우팅 방법.
  10. 청구항 10은(는) 설정등록료 납부시 포기되었습니다.
    제9항에 있어서,
    상기 패킷은, 헤드플릿(head flit), 바디플릿(body flit) 및 꼬리플릿(tail flit)으로 구성되고,
    상기 교착상태가 발생한 것으로 확인된 경우, 상기 버퍼의 헤드에 저장된 플릿이 헤드플릿인지 여부를 확인하는 단계;
    상기 버퍼의 헤드에 저장된 플릿이 헤드플릿인 경우, 상기 저장된 헤드플릿을 상기 데이터 복구 네트워크를 통해 다음 라우터로 전송하는 단계; 및
    상기 버퍼의 헤드에 저장된 플릿이 헤드플릿이 아닌 경우, 상기 다시 전송된 포착토큰을 제거하고, 상기 수신된 우선순위토큰을 상기 토큰 네트워크를 통해 다음 라우터로 전송하는 단계
    를 더 포함하는 라우팅 방법.
  11. 패킷을 전송하는 라우팅 시스템에 있어서,
    복수의 링 네트워크를 이용하여 2차원 구조로 형성된 데이터 네트워크를 통해 수신된 상기 패킷의 플릿을 수신하여 버퍼에 저장하고, 상기 데이터 네트워크를 통해 다음 라우터로 전송하는 플릿 관리부;
    복수의 링 네트워크를 이용하여 2차원 구조로 형성된 토큰 네트워크를 통해 우선순위토큰을 수신하여 포착토큰을 생성하고 상기 토큰 네트워크를 통해 다음 라우터로 전송하거나 또는 상기 토큰 네트워크를 통해 우선순위토큰 또는 포착토큰을 수신하여 상기 토큰 네트워크를 통해 다음 라우터로 전송하는 토큰 관리부; 및
    상기 생성되어 전송된 포착토큰이 다시 수신되는 경우, 교착상태가 발생한 것으로 탐지하는 교착상태 탐지부
    를 포함하는 라우팅 시스템.
  12. 제11항에 있어서,
    상기 교착상태의 발생을 탐지한 경우, 상기 버퍼의 헤드 부분에 저장된 헤드플릿을, 복수의 링 네트워크를 이용하여 2차원 구조로 형성된 데이터 복구 네트워크를 통해 다음 라우터로 전송하는 교착상태 복구 처리부
    를 더 포함하는 라우팅 시스템.
  13. 제12항에 있어서,
    상기 교착상태 복구 처리부는,
    상기 버퍼의 헤드 부분에 상기 헤드플릿이 존재하지 않는 경우, 상기 다시 전송된 포착토큰을 제거하고, 상기 수신된 우선순위토큰을 상기 토큰 네트워크를 통해 다음 라우터로 전송하는 것을 특징으로 하는 라우팅 시스템.
KR1020110142500A 2011-12-26 2011-12-26 온칩 네트워크에서 토러스 토폴로지를 이용한 라우팅 시스템 및 라우팅 방법 KR101318426B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110142500A KR101318426B1 (ko) 2011-12-26 2011-12-26 온칩 네트워크에서 토러스 토폴로지를 이용한 라우팅 시스템 및 라우팅 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110142500A KR101318426B1 (ko) 2011-12-26 2011-12-26 온칩 네트워크에서 토러스 토폴로지를 이용한 라우팅 시스템 및 라우팅 방법

Publications (2)

Publication Number Publication Date
KR20130093736A KR20130093736A (ko) 2013-08-23
KR101318426B1 true KR101318426B1 (ko) 2013-10-16

Family

ID=49217794

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110142500A KR101318426B1 (ko) 2011-12-26 2011-12-26 온칩 네트워크에서 토러스 토폴로지를 이용한 라우팅 시스템 및 라우팅 방법

Country Status (1)

Country Link
KR (1) KR101318426B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10084860B2 (en) 2015-04-09 2018-09-25 Electronics And Telecommunications Research Institute Distributed file system using torus network and method for configuring and operating distributed file system using torus network
CN110365530A (zh) * 2019-07-11 2019-10-22 电子科技大学 一种独立于片上网络的测试令牌传递网络

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101995056B1 (ko) * 2015-12-30 2019-07-02 한국전자통신연구원 분산 파일 시스템 및 이의 운영방법
CN113347029B (zh) * 2020-09-29 2022-05-31 北京航空航天大学 基于拓扑重构和路径规划的Torus网络容错方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080063127A (ko) * 2006-12-27 2008-07-03 인텔 코오퍼레이션 가변적인 토큰 활성화를 구비한 링 네트워크

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080063127A (ko) * 2006-12-27 2008-07-03 인텔 코오퍼레이션 가변적인 토큰 활성화를 구비한 링 네트워크

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10084860B2 (en) 2015-04-09 2018-09-25 Electronics And Telecommunications Research Institute Distributed file system using torus network and method for configuring and operating distributed file system using torus network
CN110365530A (zh) * 2019-07-11 2019-10-22 电子科技大学 一种独立于片上网络的测试令牌传递网络

Also Published As

Publication number Publication date
KR20130093736A (ko) 2013-08-23

Similar Documents

Publication Publication Date Title
US11784920B2 (en) Algorithms for use of load information from neighboring nodes in adaptive routing
US7940788B2 (en) System for transmitting data within a network between nodes of the network and flow control process for transmitting the data
US8417778B2 (en) Collective acceleration unit tree flow control and retransmit
Lu et al. Connection-oriented multicasting in wormhole-switched networks on chip
US9698791B2 (en) Programmable forwarding plane
US9798603B2 (en) Communication device, router having communication device, bus system, and circuit board of semiconductor circuit having bus system
US20090028172A1 (en) Speculative forwarding in a high-radix router
CN103684961A (zh) 自动构建无死锁互连
KR101318426B1 (ko) 온칩 네트워크에서 토러스 토폴로지를 이용한 라우팅 시스템 및 라우팅 방법
US9106593B2 (en) Multicast flow reordering scheme
US10374943B2 (en) Routing packets in dimensional order in multidimensional networks
Warnakulasuriya et al. Characterization of deadlocks in interconnection networks
US9729449B2 (en) Method and apparatus for enhanced routing within a shortest path based routed network containing local and long distance links
US20130031412A1 (en) Processing apparatus, test signal generator, and method of generating test signal
Ahmed et al. Deadlock-recovery support for fault-tolerant routing algorithms in 3d-noc architectures
US8325768B2 (en) Interleaving data packets in a packet-based communication system
Tsai et al. Hybrid path-diversity-aware adaptive routing with latency prediction model in Network-on-Chip systems
Song et al. A new mechanism for congestion and deadlock resolution
Song et al. Distributed resolution of network congestion and potential deadlock using reservation-based scheduling
Kumar et al. Adaptive fault tolerant routing in interconnection networks: a review
CN110691043B (zh) 一种支持多源多虚通道非连续传输的插花整理方法
US10757038B2 (en) Reservation-based switching devices
Tang et al. Design of a pipelined clos network with late release scheme
Naqvi et al. A multi-credit flow control scheme for asynchronous NoCs
WO2004088938A1 (ja) 通信装置及び通信方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20161004

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee