KR100730279B1 - 스타 토로스 토폴로지를 이용하여 칩 상의 디바이스를연결한 컴퓨터 칩 - Google Patents

스타 토로스 토폴로지를 이용하여 칩 상의 디바이스를연결한 컴퓨터 칩 Download PDF

Info

Publication number
KR100730279B1
KR100730279B1 KR1020050124586A KR20050124586A KR100730279B1 KR 100730279 B1 KR100730279 B1 KR 100730279B1 KR 1020050124586 A KR1020050124586 A KR 1020050124586A KR 20050124586 A KR20050124586 A KR 20050124586A KR 100730279 B1 KR100730279 B1 KR 100730279B1
Authority
KR
South Korea
Prior art keywords
router
intelligent
routers
computer chip
axis
Prior art date
Application number
KR1020050124586A
Other languages
English (en)
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 KR1020050124586A priority Critical patent/KR100730279B1/ko
Priority to US11/452,940 priority patent/US20070140280A1/en
Application granted granted Critical
Publication of KR100730279B1 publication Critical patent/KR100730279B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 스타 토로스 토폴로지(star-torus topology)를 이용하여 컴퓨터 칩 상의 디바이스를 연결하는 시스템에 관한 것으로, 컴퓨터 칩 상에 구성된 복수 개의 라우터 상기 복수 개의 라우터 각각은 X축 방향 및 Y축 방향으로 인접한 라우터와 연결됨 -, 및 상기 컴퓨터 칩 상에 구성되는 복수 개의 지능 소자 상기 복수 개의 지능 소자의 각각은 상기 복수 개의 라우터 중 하나 이상에 연결됨 -를 포함하는 컴퓨터 칩을 제공한다.
스타 토로스 토폴로지(Star-Torus Topology), 스타 메시 토폴로지(Star-Mesh Topology), NOC(Network on Chip)

Description

스타 토로스 토폴로지를 이용하여 칩 상의 디바이스를 연결한 컴퓨터 칩{Computer Chip for Connecting Devices on Chip Utilizing Star-Torus Topology}
도 1a 및 도 1b는 종래기술에 따라 컴퓨터 칩 상의 디바이스들을 다중 트래픽 서클 토폴로지(multiple traffic circle topology)로 연결한 컴퓨터 칩을 도시한 도면이다.
도 2a 및 도 2b는 종래기술에 따라 컴퓨터 칩 상의 디바이스들을 링 메시 토폴로지(mesh of rings topology)로 연결한 컴퓨터 칩을 도시한 도면이다.
도 3a 및 도 3b는 종래기술에 따라 컴퓨터 칩 상의 디바이스들을 다중 링 토폴로지(multiple ring topology)로 연결한 컴퓨터 칩을 도시한 도면이다.
도 4는 본 발명에 따라 컴퓨터 칩 상의 디바이스를 연결한 컴퓨터 칩을 도시한 도면이다.
도 5는 본 발명에 따른 라우터의 일실시예를 도시한 블록도이다.
도 6은 본 발명에 따른 도 6의 라우터를 보다 상세하게 도시한 블록도이다.
도 7은 본 발명에 따른 컴퓨터 칩 상의 디바이스들 간에 교환하는 패킷의 일실시예를 도시한 도면이다.
도 8은 본 발명의 일실시예인 스타 메시 토폴로지에 따라 컴퓨터 칩 상의 디바이스를 연결한 컴퓨터 칩을 도시한 도면이다.
도 9a 및 도 9b는 본 발명의 일실시예에 따른 컴퓨터 칩에서의 평균 홉 카운트를 설명하기 위한 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
410, 420, 430, 440, 450, 460, 470, 480, 490: 라우터(router)
411, 412, 413: 지능 소자(intellectual property)
401: 네트워크 인터페이스 소자(network interface element)
511: X축 흐름 제어기(X flow controller);
512: X축 중재기(X arbiter)
513: X축 입출력 포트(X input/output port)
521: Y축 흐름 제어기(Y flow controller);
522: Y축 중재기(Y arbiter)
523: Y축 입출력 포트(Y input/output port)
531, 541, 551: 지능 소자 흐름 제어기(intellectual property flow controller);
532, 542, 552: 지능 소자 중재기(intellectual property arbiter)
533, 543, 553: 지능 소자 입출력 포트(intellectual property input/output port)
본 발명은 반도체 컴퓨터 칩(semiconductor computer chip)에 관한 것으로, 더욱 상세하게는 스타 토로스 토폴로지(star-torus topology)를 이용하여 컴퓨터 칩 상의 디바이스를 연결하는 시스템에 관한 것이다.
종래에는 독립된 기능을 수행하는 하나 이상의 컴퓨터 칩을 포함한 장치들을 연결하여 하나의 시스템을 생산하였다. 그러나, 최근에는 하나의 컴퓨터 칩 상에 다양한 기능을 수행하는 디바이스들을 포함시켜서, 하나의 칩이 독립된 시스템으로 동작하도록 하는 시스템 온 칩(SOC: System on Chip) 기술이 등장하였다. 이는 반도체 기술이 발달하면서 하나의 칩에 포함시킬 수 있는 트랜지스터의 수가 극적으로 증가하면서 가능하게 되었다. SOC 기술에서는 하나의 컴퓨터 칩 상에 여러 개의 디바이스가 집적된다. SOC 기술에서는 이러한 여러 개의 디바이스를 어떻게 연결하고, 또한 어떻게 상기 디바이스가 데이터를 교환할 수 있도록 할 것인지가 매우 중요하다. 따라서, 상기 디바이스 간의 데이터 교환을 빠르게 수행하도록 하면서 동시에 컴퓨터 칩 상에서 상기 디바이스를 연결하는 연결선들이 복잡하지 않도록 하기 위한 연구가 진행되고 있다.
도 1a 내지 도 3b에 도시된 컴퓨터 칩 상에서의 디바이스들의 네트워크 구성은 이러한 연구의 결과물들이다.
도 1a는 미국등록특허 제5,908,468호에 의하여 제시된 방법에 의한 컴퓨터 칩을 도시한 것이다. 도 1a의 종래기술에 따르면, 컴퓨터 칩 상의 디바이스들은 다중 트래픽 서클 토폴로지(multiple traffic circle topology)로 연결된다.
도 1a의 방법에 대하여, 하나의 지능 소자(IP: intellectual property)가 다 른 지능 소자에게 데이터를 전달하기 위하여 거치는 평균 홉 수(average hop count)를 계산한다. 하나의 모듈에서 다른 모듈로 데이터를 전달할 때 거치는 홉 수가 많아지면 그만큼 데이터 전달에 많은 시간을 소모하게 되므로, 평균 홉 수가 작을수록 데이터 지연이 적고, 따라서 고속으로 동작하는 컴퓨터 칩이 가능해진다. 도 1a에서 도면 부호 110A, 110B, 110C, 110D, 110E, 110F, 110G, 110H는 지능 소자이고, 120A, 120B, 120C, 120D, 120E, 120F, 120G, 120H, 122A, 122B, 122C, 122D, 122E, 122F, 122G, 122H는 라우터이다. 도 1a의 지능 소자(110A)로부터 다른 지능 소자(110B, 110C, 110D, 110E, 110F, 110G, 110H)까지의 홉 수가 도 1b에 도시되어 있다. 지능 소자(110A)로부터 지능 소자(110B)로 데이터를 전달하기 위해서는 라우터(122A) 및 라우터(122B)를 경유하여야 하므로 홉 카운터가 2이다. 마찬가지로, 지능 소자(110A)로부터 지능 소자(110H)까지의 홉 카운터도 2이다. 지능 소자(110A)로부터 다른 지능 소자들까지의 홉 카운터도 모두 도 1b에 도시되어 있다. 도 1a의 토폴로지에서 각 지능 소자들의 위치는 서로 대등하기 때문에, 다른 지능 소자들(110B, 110C, 110D, 110E, 110F, 110G, 110H)로부터 다른 지능 소자들까지의 홉 카운트를 계산하는 경우도 지능 소자(110A)로부터의 홉 카운트 계산과 동일하다. 따라서, 도 1a의 토폴로지에서 하나의 지능 소자로부터 다른 지능 소자로의 평균 홉 카운트(average hop count)는 도 1b에 도시된 바와 같이 3.29가 된다.
다음으로, 도 1a의 토폴로지에 대하여 채널을 얼마나 효율적으로 이용하는지를 측정한다. 이를 위하여 지능 소자 1개당 사용하는 라우터 포트의 수를 계산한 다. 즉, 하나의 토폴로지에 대해서 전체 라우터의 모든 포트의 수를 계산한 후 이를 지능 소자로 나눈 값을 사용한다. 이는 유닛(unit) 당 링크의 수(number of links)와 같으므로, 이 값을 L/U 비율(L/U ratio)라고 부른다(L: number of Links, U: Unit). L/U 비율은 다음과 같은 수학식으로 계산할 수 있다.
L/U 비율 = (Number of Router Ports) / (Number of IPs)
수학식 1에서 2개의 포트가 하나의 링크를 구성하게 되므로, 수학식 1의 값을 2로 나누면 지능 소자 1개당 링크수가 계산된다. 따라서, L/U 비율이 높으면 지능 소자 1개당 사용하는 링크의 수가 많은 것을 의미한다. 지능 소자 1개당 사용하는 링크의 수가 많으면, 그만큼 SOC 내에서 모듈들을 연결하는 선(line)의 수가 증가하게 되어 와이어링(wiring)이 복잡하게 된다. 따라서, L/U 비율이 적을수록 컴퓨터 칩 상에 포함되는 링크의 수가 줄어들게 되므로, 설계상 복잡성을 줄여서 전체 칩의 크기를 줄일 수 있다.
도 1a에는 총 8개의 지능 소자가 있다. 이러한 지능 소자들의 연결에 사용된 총 포트의 수를 계산한다. 도 1a에서 라우터 간의 연결은 일방향(unidirectional)이고, 라우터와 지능 소자 간의 연결은 양방향(bidirectional)이다. 먼저 외곽 서클(outer circle)에서 라우터 하나당 다른 라우터와 연결하기 위한 입력 포트 및 출력 포트가 각각 하나씩이므로, 8*2=16개의 포트가 있다. 그리고, 내부 서클(inner circle)에도 마찬가지로 라우터 하나당 다른 라우터와 연결하 기 위한 입력 포트 및 출력 포트가 각각 하나씩이므로, 8*2=16개의 포트가 있다. 또한, 라우터와 지능 소자 간의 연결은 총 16개인데, 양방향 연결이므로, 16*2=32개의 포트가 있다. 따라서, 도 1a의 토폴로지에서 L/U 비율은 = (8*2 + 8*2 + 16*2) / 8 = 8이다.
도 2a는 미국등록특허 제5,974,478호에 의하여 제시된 방법에 의한 컴퓨터 칩을 도시한 것이다. 도 2a의 종래기술에 따르면, 컴퓨터 칩 상의 디바이스들은 링 메시 토폴로지(mesh of rings topology)로 연결된다.
도 2a의 방법에 대하여, 하나의 지능 소자(IP: intellectual property)가 다른 지능 소자에게 데이터를 전달하기 위하여 거치는 평균 홉 수(average hop count)를 계산한다. 도 2a에서 도면 부호 210A, 210B, 210D, 210E, 210F, 210G, 210H, 210I는 지능 소자이고, 240A, 240B, 240C, 240D, 240E, 240F, 240G, 240H, 240I, 240J, 240K, 240L은 라우터이다. 도 2a에서 라우터 간의 연결은 일방향(unidirectional)이고, 라우터와 지능 소자 간의 연결은 양방향(bidirectional)이다. 도 2a의 지능 소자(210A)로부터 다른 지능 소자(210B, 210D, 210E, 210F, 210G, 210H, 210I)까지의 홉 수가 도 2b에 도시되어 있다. 지능 소자(210A)로부터 지능 소자(210E)로 데이터를 전달하기 위해서는 라우터(240A) 및 라우터(240D)를 경유하여야 하므로 홉 카운터가 2이다. 마찬가지로, 지능 소자(210A)로부터 다른 지능 소자들까지의 홉 카운터도 모두 도 2b에 도시되어 있다. 그런데, 도 2a의 토폴로지는 도 1a의 토폴로지와 달리, 각 지능 소자들의 위치가 서로 대등하지 않다. 지능 소자(210G) 및 지능 소자(210I)는 지능 소자(210A)와 그 위치가 대등하다. 마찬가지로, 지능 소자(210B), 지능 소자(210D), 지능 소자(210F) 및 지능 소자(210H)는 그 위치가 대등하다. 지능 소자(210E)와 그 위치가 대등한 지능 소자는 없다. 따라서, 도 2a의 토폴로지에 대한 평균 홉 카운트는, 지능 소자들 각각에 대한 평균 홉 카운트를 모두 합산하고, 이를 전체 지능 소자의 수인 7로 나누면 되므로, 도 2b에 도시된 바와 같이 4.28이 된다. 예를 들어, 도 2b에서, 지능 소자(210A)에 대한 평균 홉 카운트는 "(2+3+(4*4)+5)/7"인데, 지능 소자(210G) 및 지능 소자(210I)도 지능 소자(210A)와 평균 홉 카운트가 동일하므로, 위의 값에 3을 곱하였다.
다음으로, 도 2a의 토폴로지에 대하여 채널을 얼마나 효율적으로 이용하는지를 측정하기 위하여, L/U 비율(L/U ratio)을 계산한다. 도 2a에는 총 8개의 지능 소자가 있다. 이러한 지능 소자들의 연결에 사용된 총 포트의 수를 계산한다. 도 2a에서 라우터 간의 연결은 일방향(unidirectional)이고, 라우터와 지능 소자 간의 연결은 양방향(bidirectional)이다. 먼저 외곽 서클(outer circle)에는 라우터가 8개가 있다. 또한 외곽 서클에서 라우터 하나당 다른 라우터와 연결하기 위한 입력/출력 포트 포트는 라우터 1개당 3개이므로, 8*3=24개의 포트가 있다. 그리고, 내부 메시에는 라우터가 4개가 있다. 상기 라우터 각각은 다른 라우터와 연결하기 위한 입력/출력 포트를 라우터 1개당 4개 가지고 있으므로, 내부 메시에는 총 4*4=16개의 포트가 있다. 또한, 라우터와 지능 소자 간의 연결은 총 8개인데, 양방향 연결이므로, 8*2=16개의 포트가 있다. 따라서, 도 2a의 토폴로지에서 L/U 비율은 = (8*3 + 4*4 + 8*2) / 8 = 7이다.
도 3a는 미국등록특허 제6,266,797호에 의하여 제시된 방법에 의한 컴퓨터 칩을 도시한 것이다. 도 3a의 종래기술에 따르면, 컴퓨터 칩 상의 디바이스들은 다중 링 토폴로지(multiple ring topology)로 연결된다.
도 3a의 방법에 대하여, 하나의 지능 소자(IP: intellectual property)가 다른 지능 소자에게 데이터를 전달하기 위하여 거치는 평균 홉 수(average hop count)를 계산한다. 도 3a에서 도면 부호 310A, 310B, 310C, 310D, 310E, 310F, 310G, 310H는 지능 소자이고, 320A, 320B, 320C, 320D, 320E, 320F, 320G, 320H, 325A, 325B, 325C, 325D는 라우터이다. 도 3a에서 라우터 간의 연결, 및 라우터와 지능 소자 간의 연결 모두 양방향(bidirectional)이다. 도 3a의 지능 소자(310A)로부터 다른 지능 소자(310B, 310C, 310D, 310E, 310F, 310G, 310H)까지의 홉 수가 도 3b에 도시되어 있다. 지능 소자(310A)로부터 지능 소자(310B)로 데이터를 전달하기 위해서는 라우터(320A) 및 라우터(320B)를 경유하여야 하므로 홉 카운터가 2이다. 마찬가지로, 지능 소자(310A)로부터 다른 지능 소자들까지의 홉 카운터도 모두 도 3b에 도시되어 있다. 지능 소자(310D), 지능 소자(310E) 및 지능 소자(310H)는 지능 소자(310A)와 그 위치가 대등(equivalent)하다. 그러나, 지능 소자(310B)는 지능 소자(310A)와 그 위치가 대등하지 않다. 지능 소자(310B)로부터 다른 지능 소자(310A, 310C, 310D, 310E, 310F, 310G, 310H)까지의 홉 수도 도 3b에 도시되어 있다. 지능 소자(310C), 지능 소자(310F) 및 지능 소자(310G)는 지능 소자(310B)와 그 위치가 대등(equivalent)하다. 따라서, 도 3a의 토폴로지에 대한 평균 홉 카운트를 계산하면, 도 3b에 도시된 바와 같이, 3.58이 된다.
다음으로, 도 3a의 토폴로지에 대하여 채널을 얼마나 효율적으로 이용하는지를 측정하기 위하여, L/U 비율(L/U ratio)을 계산한다. 도 3a에는 총 8개의 지능 소자가 있다. 이러한 지능 소자들의 연결에 사용된 총 포트의 수를 계산한다. 도 3a에서 라우터 간의 연결, 및 라우터와 지능 소자 간의 연결 모두 양방향(bidirectional)이다. 먼저 1, 4행에 위치한 라우터들(310A, 325A, 320E, 320D, 325D, 320H)은 모두 각각 3개씩의 입력 포트 및 출력 포트를 가진다(양방향이므로). 도 3a에서 지능 소자(310A)와 라우터(320A)가 붙어 있는 것처럼 도시되었지만, 실제로는 지능 소자(310A)와 라우터(320A) 사이도 양방향 링크로 연결되어 있다. 따라서, 1, 4행에 위치한 라우터들의 총 포트 수는 "라우터들의 수(6) * 라우터당 포트수(3*2) = 36"이 된다. 2, 3행에 위치한 라우터들(320B, 325B, 320F, 320C, 325C, 320G)에 대해서도 총 포트 수를 계산하면, "6 * 4 * 2 = 48"이 된다. 따라서, 도 3a의 토폴로지에서 L/U 비율은 = (6*6 + 8*6) / 8 = 10.5이다.
이러한 종래 기술에도 불구하고, 디바이스 간의 데이터 교환을 보다 빠르게 수행하도록 하면서 동시에 컴퓨터 칩 상에서 상기 디바이스를 연결하는 연결선들이 보다 간단하도록 하는 컴퓨터 칩이 요구되고 있다.
따라서, 본 발명은 상술한 본 발명의 문제점을 해결하기 위한 것으로서, 컴퓨터 칩 상의 하나의 모듈에서 다른 모듈로 데이터를 전달할 때 거치는 홉 수를 줄임으로써, 그만큼 데이터 전달을 빠르게 하여 고속으로 동작할 수 있는 컴퓨터 칩을 제공하는 것을 목적으로 한다.
또한 본 발명은 컴퓨터 칩 상의 모듈들을 L/U 비율이 작게 배치하여, 컴퓨터 칩 상의 모듈들을 연결하는 선(line)의 수를 줄임으로써, 컴퓨터 칩 설계상의 복잡성을 줄이고, 컴퓨터 칩의 크기를 줄이는 것을 목적으로 한다.
또한 본 발명은, 본 발명에 의하여 제안된 컴퓨터 칩 상의 스타 토로스 토폴로지 또는 스타 메시 토폴로지 상에서 효율적으로 데이터 통신을 할 수 있는 방법 및 패킷 포맷을 제공하는 것을 목적으로 한다.
또한, 본 발명은, 지능 소자의 추가가 용이하여, 많은 수의 지능 소자를 필요로 하는 컴퓨터 칩 설계에도 적용 가능한 확장성이 좋은 컴퓨터 칩을 제공하는 것을 목적으로 한다.
상기와 같은 본 발명의 목적을 달성하기 위한 본 발명에 따른 컴퓨터 칩은, 컴퓨터 칩 상에 구성된 복수 개의 라우터 상기 복수 개의 라우터 각각은 X축 방향 및 Y축 방향으로 인접한 라우터와 연결됨 -, 및 상기 컴퓨터 칩 상에 구성되는 복수 개의 지능 소자 상기 복수 개의 지능 소자의 각각은 상기 복수 개의 라우터 중 하나 이상에 연결됨 -를 포함한다.
상기 라우터는 소스 지능 소자(source IP)로부터 목적지 지능 소자(destination IP)로 데이터를 라우팅한다. 본 발명의 일측에 따르면, 상기 라우터는, 복수 개의 입출력 포트, 상기 라우터와 X축 방향으로 연결된 라우터와의 데이터 흐름을 제어하는 X축 흐름 제어기(X flow controller), 상기 라우터와 X축 방향으로 연결된 라우터와의 통신을 중재하는 X축 중재기(X arbiter), 상기 라우터와 Y 축 방향으로 연결된 라우터와의 데이터 흐름을 제어하는 Y축 흐름 제어기(Y flow controller), 상기 라우터와 Y축 방향으로 연결된 라우터와의 통신을 중재하는 Y축 중재기(Y arbiter), 상기 라우터와 연결된 지능 소자와의 데이터 흐름을 제어하는 지능 소자 흐름 제어기(IP flow controller), 상기 라우터와 연결된 지능 소자와의 통신을 중재하는 지능 소자 중재기(IP arbiter) 및 상기 복수 개의 입출력 포트를 스위칭하는 스위치(switch)를 포함한다.
본 발명의 일측에 따르면, 상기 복수 개의 라우터 각각은 X축 방향 및 Y축 방향으로 인접한 라우터와 양방향(bidirectional)으로 연결된다.
본 발명의 또 다른 일측에 따르면, 상기 복수 개의 라우터 각각은 X축 방향 및 Y축 방향 각각에 대하여 환상 토폴로지(circular topology) 로 연결된다.
본 발명의 일 측에 따르는 컴퓨터 칩은, 컴퓨터 칩 상에 구성된 복수 개의 라우터, 상기 복수 개의 라우터를 연결하고 토로스 토폴로지로 구성되는 복수 개의 통신 패스, 및 상기 컴퓨터 칩 상에 구성되는 복수 개의 지능 소자 상기 복수 개의 지능 소자의 각각은 상기 복수 개의 라우터 중 하나에 연결됨 -를 포함한다.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 4는 본 발명에 따라 컴퓨터 칩 상의 디바이스를 연결한 컴퓨터 칩을 도시한 도면이다.
본 발명에 따른 컴퓨터 칩은 컴퓨터 칩 상에 구성된 복수 개의 라우터, 및 상기 컴퓨터 칩 상에 구성되는 복수 개의 지능 소자를 포함한다. 도 4에서 도면 부호 411, 412, 413, 421, 422, 423, 431, 432, 433, 441, 442, 443, 451, 452, 453, 461, 462, 463, 471, 472, 473, 481, 482, 483, 491, 492, 493은 지능 소자이고, 410, 420, 430, 440, 450, 460, 470, 480, 490은 라우터이다. 도 4에서 지능 소자보다 라우터가 크게 도시되어 있으나, 통상은 지능 소자가 라우터의 100배 정도 면적을 차지하게 된다.
지능 소자(intellectual property)는 프로세서 IP, 그래픽 콘트롤러 IP, 메모리 IP 등과 같이 컴퓨터 칩 상에서 어떤 기능을 수행하는 모듈이다. 이러한 지능 소자들은 지능 소자 단위로 설계되어 SOC 제조 회사에 판매되기도 한다. 라우터(router)는 소스 지능 소자(source IP)로부터 목적지 지능 소자(destination IP)로 데이터를 라우팅하는 모듈이다.
상기 복수 개의 지능 소자의 각각은 상기 복수 개의 라우터 중 하나 이상에 연결된다. 예를 들어, 도 4에서 지능 소자(411)은 라우터(410)에 연결되고, 지능 소자(421)은 라우터(420)에 연결된다. 도 4에서 복수 개의 지능 소자의 각각은 상기 복수 개의 라우터 중 하나에 연결된다. 이와 같이 지능 소자 각각이 하나의 라우터에만 연결됨으로써, 라우팅이 간편해지고, 그에 따라 라우터를 구성하는 소자의 구성이 작아지게 된다.
또한 본 발명의 일실시예에 따르면, 상기 복수 개의 지능 소자의 각각은 상기 복수 개의 라우터 중 하나에 양방향으로 연결된다. 지능 소자는 입출력 포트가 필요하므로 라우터와 양방향으로 연결될 필요가 있다. 이때 지능 소자의 입력 포트가 연결되는 라우터와 지능 소자의 출력 포트가 연결되는 라우터를 동일한 라우터로 구성하면, 컴퓨터 칩 상의 와이어링이 단순해질 뿐 아니라, 라우팅도 간단해지기 때문에, 라우터를 구성하는 소자의 구성도 작아지게 된다.
상기 복수 개의 라우터 각각은 X축 방향 및 Y축 방향으로 인접한 라우터와 연결된다. 예를 들어, 도 4에서 라우터(410)는 X축 방향으로 라우터(420)와 연결되고, Y축 방향으로 라우터(440)과 연결된다. 라우터(450)은 X축 방향으로 라우터(440) 및 라우터(460)와 연결되고, Y축 방향으로 라우터(420) 및 라우터(480)과 연결된다. 따라서, 본 발명에 따르면, 라우터는 X축 방향으로 최대 2개의 라우터와 연결되고, Y축 방향으로 최대 2개의 라우터와 연결된다. 본 발명에서 X축 방향 및 Y축 방향은 서로 다른 2개의 방향을 구별하기 위해서 사용된 것으로, X축 방향과 Y축 방향이 특별한 각도를 가지거나 할 필요는 없다. 또한 X축 방향 또는 Y축 방향으로 연결되는 라우터들이 컴퓨터 칩 상에서 모두 하나의 직선 위에 배치될 필요도 없다. 예를 들어, 도 4에서 라우터(420)이 도 4에서보다 조금 위쪽에 배치되어 있을 수도 있고, 또는 라우터(440)이 도 4에서보다 조금 왼쪽 아래에 배치되어 있을 수도 있다.
본 발명의 일실시예에 따르면, 상기 복수 개의 라우터 각각은 X축 방향 및 Y축 방향 각각에 대하여 환상 토폴로지(circular topology) 로 연결된다. 특히, 상기 복수 개의 라우터 각각이 X축 방향 및 Y축 방향 각각에 대하여 일방향 환상 토폴로지(unidirectional circular topology)로 연결되는 경우는, 상기 라우터들이 토로스 토폴로지(torus topology)를 구성한 것이 된다. 도 4에 도시된 경우가 바로 이러한 경우이다. 도 4에서 라우터(410)에서 라우터(420)으로, 라우터(420)에서 라우터(430)으로, 그리고 라우터(430)에서 다시 라우터(410)으로, 라우터들이 X축 방향으로 일방향 환상으로 연결되어 있다. Y축 방향에 대해서도 마찬가지이다.
라우터들이 토로스 토폴로지를 구성하고, 지능 소자들 각각은 상기 라우터들 중 하나에 연결된 경우를 본 발명에서는 스타 토로스 토폴로지(star torus topology)라고 부른다. 도 4에 도시된 경우가 바로 본 발명에 따른 스타 토로스 토폴로지의 일예이다. 즉, 스타 토로스 토폴로지로 구성된 컴퓨터 칩은, 컴퓨터 칩 상에 구성된 복수 개의 라우터, 상기 복수 개의 라우터를 연결하고 토로스 토폴로지로 구성되는 복수 개의 통신 패스 및 상기 컴퓨터 칩 상에 구성되는 복수 개의 지능 소자 상기 복수 개의 지능 소자의 각각은 상기 복수 개의 라우터 중 하나에 연결됨 -를 포함한다. 라우터를 연결하는 통신 패스(communication path)는, 예를 들어 라우터(410)과 라우터(420)를 연결하는 통신 패스와 같이, 라우터 사이를 연결하는 패스(path)를 의미한다.
본 발명에서 라우터는 웜홀 라우팅(wormhole routing) 또는 X-Y 라우팅(X-Y routing)을 이용하여 소스 지능 소자(source IP)로부터 목적지 지능 소자(destination IP)로 데이터를 라우팅 할 수 있다. 그런데, 토로스 토폴로지의 경우, 2*2를 넘어가는 경우, 예를 들어 도 4에 도시된 3*3을 포함하여, 2*3, 3*2 이상에서는 라우팅 중 데드락(dead lock) 가능성이 있다. 따라서, 이를 해결하기 위해서 본 발명에 따른 라우터는 가상 채널(Virtual Channel)을 사용할 수 있다. 가 상 채널은 고속 라우팅을 위하여 제안된 기법으로 입력 버퍼에 가상의 출력 버퍼를 포함시키는 기법이다. 또한, 최근의 연구 성과들을 이용하면 가상 채널을 사용하더라도 라우터를 비교적 간단하게 구성할 수 있다.
또한 본 발명의 일실시예에 따르면, 상기 복수 개의 라우터 각각을 X축 방향 및 Y축 방향 각각에 대하여 일방향 환상 토폴로지가 아닌 양방향 환상 토폴로지(bidirectional circular topology)로 연결한다. 본 실시예에 따르면, 일방향 환상 토폴로지보다 통신 경로의 수가 더 많이 증가하고, 이에 따라 데드락의 가능성이 생길 수 있지만, 3*3 이상의 토러스(torus) 구조에서는 가상 채널(virtual channel)을 사용함으로써, 데드락(deadlock)의 가능성을 차단하여, X-Y 라우팅과 같은 단순한 라우팅 방법을 채택할 수 있다. 따라서, 본 실시예에 따르면, 라우터의 구조가 간단해진다.
또한 본 발명의 일실시예에 따르면, 라우터와 지능 소자 사이에 네트워크 인터페이스 소자(network interface element)가 연결된다. 즉, 라우터와 지능 소자가 네트워크 인터페이스 소자(network interface element)를 통하여 연결되는 것이다. 도 4에서 네트워크 인터페이스 소자(401)는 라우터(430)와 지능 소자(431) 사이에 위치한다. 이때, 상기 네트워크 인터페이스 소자(401)는 라우터(430)와 지능 소자(431) 사이의 프로토콜 변환을 수행한다. 지능 소자의 경우, 이미 다른 업체에 의하여 설계된 지능 소자를 사용할 수 있다. 이 경우, 상기 지능 소자는 자신의 규격(specification)에 따른 인터페이스 규격을 가지고 있으므로, 이를 라우터의 인터페이스 규격으로 변환해 주는 구성요소가 필요하다. 지능 소자 및 라우터 를 모두 하나의 인터페이스 규격에 맞추어 설계를 하는 경우에는, 위와 같은 네트워크 인터페이스 소자가 필요 없다. 그러나, 각 업체마다 강점이 있으므로, 하나의 업체가 프로세서 IP, 메모리 IP, 그래픽 콘트롤러 IP 등 다양한 IP를 모두 설계하기보다는, 다른 업체의 IP를 구입하여 이들을 상호 연결하여 사용하는 것이 훨씬 유리하다. 따라서, 이렇게 다른 업체의 IP를 구입하여 사용하는 경우, 이를 라우터에서 사용하는 프로토콜로 변환할 필요가 있는데, 이를 수행하는 것이 네트워크 인터페이스 소자이다. 예를 들어, AMBA 3.0 Bus를 사용하는 IP들은 AXI 프로토콜을 사용하고, SONICS Bus를 사용하는 IP들은 OCP 프로토콜을 사용하는데, 라우터들은 소위 SAIT OCI(On-Chip Interconnect) 프로토콜이라는 새로 설계된 프로토콜을 사용하는 경우, 네트워크 인터페이스 소자를 포함시킴으로써, 상용의 IP들을 이용할 수 있다.
도 5는 본 발명에 따른 라우터의 일실시예를 도시한 블록도이다.
라우터는 소스 지능 소자(source IP)로부터 목적지 지능 소자(destination IP)로 데이터를 라우팅한다. 본 발명에 따른 라우터(500)는 복수 개의 입출력 포트(513, 523, 533, 543, 553), X축 흐름 제어기(X flow controller)(511), X축 중재기(X arbiter)(512), Y축 흐름 제어기(Y flow controller)(521), Y축 중재기(Y arbiter)(522), 지능 소자 흐름 제어기(IP flow controller)(531, 541, 551), 지능 소자 중재기(IP arbiter)(532, 542, 552), 및 스위치(561)를 포함한다.
X축 흐름 제어기(X flow controller)(511)는 라우터(500)와 X축 방향으로 연결된 라우터(514)와의 데이터 흐름을 제어한다. 예를 들어, X축 흐름 제어기(511) 는 라우터(500)와 라우터(514) 사이에서 데이터를 전달할 때, 수신 측 라우터의 버퍼가 풀(Full)이면, 데이터의 송신을 기다리도록 제어한다. 마찬가지로, Y축 흐름 제어기(Y flow controller)(521)는 라우터(500)와 Y축 방향으로 연결된 라우터(524)와의 데이터 흐름을 제어하고, 지능 소자 흐름 제어기(IP flow controller)(531, 541, 551)는 라우터(500)와 연결된 지능 소자(534, 544, 554)와의 데이터 흐름을 제어한다.
X축 중재기(X arbiter)(512)는 라우터(500)와 X축 방향으로 연결된 라우터(514)와의 통신을 중재하고, Y축 중재기(Y arbiter)(522)는 라우터(500)와 Y축 방향으로 연결된 라우터(524)와의 통신을 중재하고, 지능 소자 중재기(IP arbiter)(532, 542, 552)는 라우터(500)와 연결된 지능 소자(534, 544, 554)와의 통신을 중재한다. 예를 들어, 지능 소자 1(534)로부터 입력된 데이터 및 지능 소자 2(544)로부터 입력된 데이터가 동시에 라우터(514)에 전달되기를 요구할 때, IP1 중재기(532), IP2 중재기(542) 및 X축 중재기(512)가 서로 통신하여 이를 중재하여 해결한다.
스위치(switch)(561)는 상기 복수 개의 입출력 포트를 스위칭하여, 데이터 입출력 패스를 조정한다. 스위치(561)에는 크로스바 스위치(crossbar switch)가 사용될 수 있다. 입출력 포트(513, 523, 533, 543, 553)는 라우터(500)와 라우터들(514, 524) 또는 지능 소자들(534, 544, 554) 사이의 데이터 입출력을 위한 포트(port)이다.
도 6은 본 발명에 따른 도 6의 라우터를 보다 상세하게 도시한 블록도이다. 도 6에서 X축 흐름 제어기(611) 및 X축 중재기(612)를 이용하여 라우터(600)와 X축 방향으로 연결된 라우터와의 데이터 통신을 설명한다.
먼저, 라우터(600)가 X축 방향으로 연결된 라우터(이하, "인접 라우터(next router)"라 한다)로부터 데이터를 수신하는 경우를 설명한다. 라우터(600)의 X축 흐름 제어기(611)는 자신의 입력 버퍼가 사용 가능(available)하면, buf_avail 라인(615)을 통하여 현재 버퍼가 사용 가능하다는 신호를 인접 라우터에게 보낸다. 인접 라우터는 라우터(600)에게 보내야 할 데이터가 있으면, 라우터(600)의 X축 흐름 제어기(611)로부터 오는 buf_avail 라인(615)을 검사한다. 만약, buf_avail 라인(615)의 신호가 "버퍼 풀(buffer full)"이면 데이터를 보내지 않고 기다린다. 이렇게 함으로써, X축 흐름 제어기(611)는 X축 방향의 데이터 통신의 흐름을 제어하게 된다. 인접 라우터가 라우터(600)의 X축 흐름 제어기(611)로부터 오는 buf_avail 라인(615)을 검사한 결과, buf_avail 라인(615)의 신호가 "버퍼 사용 가능(buffer available)"이면, 인접 라우터는 데이터 라인(613)으로 라우터(600)의 X축 흐름 제어기(611)에게 데이터 신호를 보낸다. 상기 데이터 신호는 시리얼 또는 패럴랠 통신으로 보낼 수 있다. 패럴랠 통신인 경우, 데이터 라인(613)은 동시에 전송되어야 하는 데이터의 크기에 해당하는 통신 라인을 갖는다. 예를 들어, 1번에 32 비트를 전송하는 경우에는 32개의 통신 라인을 갖는다. 이와 함께 인접 라우터는 밸리드 라인(valid line)(614)를 통해 밸리드 신호(valid signal)를 라우터(600)의 X축 흐름 제어기(611)에게 보낸다. X축 흐름 제어기(611)는 밸리드 라인(valid line)(614)를 통해 입력되는 신호의 값이 "유효(valid)"이면, 데이터 라인 (613)을 통해 입력되는 패킷을 자신의 입력 버퍼에 저장한다.
그리고, 상기 패킷은 스위치에 전달된다. 그러면, 스위치는 상기 패킷의 목적지 주소를 해석하여, 상기 패킷을 전달할 포트를 결정하게 된다. 스위치는 상기 패킷을 상기 결정된 포트로 데이터를 송신한다.
라우터(600)가 X축 방향으로 연결된 라우터에 데이터를 송신하는 경우를 설명한다. 인접 라우터의 입력 버퍼가 사용 가능인 경우에는, 인접 라우터로부터의 buf_avail 라인(616)의 신호가 "버퍼 사용 가능(buffer available)"이 된다. 그러면 스위치는 인접 라우터에 송신하여야 할 데이터를 데이터 라인(617)을 통하여 인접 라우터에게 보낸다. 또한, 스위치는 밸리드 라인(valid line)(618)를 통해 "유효(valid)" 신호를 인접 라우터에게 송신한다.
도 6에서 보면, X축 방향, Y축 방향, IP1, IP2, IP3 각각에 대해서 입력 데이터 포트 1개, 출력 데이터 포트 1개, 입력 buf_avail 포트 1개, 출력 buf_avail 포트 1개, 입력 데이터의 유효(valid) 정보를 위한 포트 1개, 출력 데이터의 유효(valid) 정보를 위한 포트 1개로, 총 30개의 포트가 필요하다.
이상은 라우터(600) 및 상기 라우터(600)와 X축 방향으로 연결된 라우터와의 데이터 통신을 설명한 것이지만, 라우터(600)와 Y축 방향으로 연결된 라우터와의 데이터 통신, 지능 소자들과의 데이터 통신도 동일한 방법에 의해 동작 가능하다.
도 7은 본 발명에 따른 컴퓨터 칩 상의 디바이스들 간에 교환하는 패킷의 일실시예를 도시한 도면이다.
본 발명의 일실시예에 따르면, 컴퓨터 칩 상의 라우터 및 지능 소자 사이에 통신되는 데이터는 패킷으로 전달된다. 이러한 패킷의 예가 도 7에 도시되어 있는데, 도 7에서 패킷은 크게 헤더 플릿(header flit)(720), 데이터 플릿(data flit)(730), 및 테일 플릿(tail flit)(740)으로 구성된다.
헤더 플릿(720)은 헤더를 포함한다. 먼저 EOP/SOP 필드는 본 플릿이 패킷의 시작(start of packet)인지, 패킷의 끝(end of packet)인지, 패킷의 중간인지에 관한 정보를 표시한다. 헤더 플릿인 경우, EOP/SOP 필드는 "01" 값을 갖는데, 이는 패킷의 시작을 나타낸다. 패킷의 시작에는 헤더가 위치하므로, EOP/SOP 필드가 "01" 값을 가지면, 이 플릿은 헤더 플릿이 된다.
그리고, 헤더 플릿(720)은 소스 주소 필드(source address field)(701), 예약 필드(reserved field)(705), 목적지 주소 필드(destination address field)(706)를 포함한다. 소스 주소 필드(701)에는 이 패킷을 송신한 지능 소자의 주소가 기록된다. 소스 주소 필드(701)는 소스 지능 소자 주소 필드(source intellectual property address field)(702) 및 소스 라우터 주소 필드(source router address field)를 포함하고, 목적지 주소 필드(706)는 목적지 지능 소자 주소 필드(destination intellectual property address field)(707) 및 소스 라우터 주소 필드(source router address field)를 포함한다. 상기 소스 라우터 주소 필드는 소스 X축 라우터 주소 필드(source X router address field)(703) 및 소스 Y축 라우터 주소 필드(source Y router address field)(704)를 포함한다. 상기 목적지 라우터 주소 필드는 목적지 X축 라우터 주소 필드(destination X router address field)(708) 및 목적지 Y축 라우터 주소 필드(destination Y router address field)(709)를 포함한다.
상기 지능 소자 주소 필드(702, 707)에 입력되는 지능 소자의 주소는 상기 지능 소자가 연결된 라우터에 연결된 지능 소자들 중에서 유일하게 식별 가능한 주소이다. 또한, 라우터의 주소는 X축 라우터 주소 및 Y축 라우터 주소를 포함하는데, 본 발명에 따른 컴퓨터 칩 상의 라우터는 상기 X축 라우터 주소 및 상기 Y축 라우터 주소에 의하여 상기 컴퓨터 칩에서 유일하게 식별 가능하다.
예를 들어, 도 4의 라우터(420)의 라우터 주소가 (1,0)일 수 있다. 이때, 라우터(420)의 X축 라우터 주소는 "1"이고, Y축 라우터 주소는 "0"이다. 마찬가지로, 라우터(410)의 라우터 주소는 (0,0), 라우터(430)은 (2,0), 라우터(440)은 (0,1), 라우터(450)은 (1,1), 라우터(460)은 (2,1), 라우터(470)은 (0, 2), 라우터(480)은 (1,2), 라우터(490)은 (2,2)이다. 따라서, 도 4의 경우 X축 라우터 주소 필드 및 Y축 라우터 주소 필드에 대해 각각 2비트면 충분하다.
도 4에서 지능 소자(411)의 주소는 지능 소자(411)가 연결된 라우터(410)에 연결된 지능 소자들(411, 412, 413) 중에서 유일하게 식별 가능한 주소이다. 예를 들어, 지능 소자(411), 지능 소자(412), 지능 소자(413) 각각에 대하여 "00", "01", "10"의 IP 주소(IP address: intellectual property address)가 할당 된다. 마찬가지로, 라우터(420)에 연결된 지능 소자들(421, 422, 423)의 IP 주소도 각각 "00", "01", "10"이다. IP 주소는 지능 소자가 연결된 라우터에 연결된 지능 소자들 중에서 유일하게 식별 가능하면 된다. 따라서, 컴퓨터 칩 상에서 하나의 지능 소자를 유일하게 식별하기 위해서는 지능 소자 주소 및 라우터 주소가 모두 필요하 다. 예를 들어, 지능 소자(423)는 (10, 00, 01)의 주소에 의하여 유일하게 식별 가능하다. 여기서, "10"은 지능 소자(423)의 지능 소자 주소이고, (00, 01)은 지능 소자(423)가 연결된 라우터(420)의 주소이다.
따라서, 소스 지능 소자 주소 필드(702)에 입력되는 소스 지능 소자의 주소는 상기 소스 지능 소자가 연결된 라우터에 연결된 지능 소자들 중에서 유일하게 식별 가능한 주소이고, 목적지 지능 소자 필드(707)에 입력되는 목적지 지능 소자의 주소는 상기 목적지 지능 소자가 연결된 라우터에 연결된 지능 소자들 중에서 유일하게 식별 가능한 주소이다.
예약 필드(705)는 나중에 패킷의 전송에 필요한 기타 필요한 정보들을 기록하는데 사용될 수 있다.
데이터 플릿(730)은 EOP/SOP 필드와 데이터 필드(710)로 구성된다. 데이터 필드(710)에는 데이터가 기록된다. 데이터의 크기가 커서 복수 개의 데이터 플릿이 필요하면, 복수 개의 데이터 플릿이 연속된 후, 테일 플릿(740)이 전달된다. 테일 플릿(740)은 패킷의 끝에 위치하는 플릿으로, EOP/SOP 필드의 값을 "10"으로 하여 테일 플릿임을 표시한다. 테일 플릿에는 마지막 데이터가 포함된다.
라우터에 포함된 스위치는 상기 목적지 주소 필드(706)를 해석하여 상기 패킷 - 헤더 플릿, 데이터 플릿 및 테일 플릿 포함 - 적절한 출력 포트로 전달한다.
도 8은 본 발명의 일실시예인 스타 메시 토폴로지에 따라 컴퓨터 칩 상의 디바이스를 연결한 컴퓨터 칩을 도시한 도면이다.
도 8에서 도면 부호 811, 812, 813, 821, 822, 823, 831, 832, 833, 841, 842, 843, 851, 852, 853, 861, 862, 863, 871, 872, 873, 881, 882, 883, 891, 892, 893은 지능 소자이고, 810, 820, 830, 840, 850, 860, 870, 880, 890은 라우터이다. 상기 복수 개의 지능 소자의 각각은 상기 복수 개의 라우터 중 하나 이상에 연결된다. 예를 들어, 도 8에서 지능 소자(811)은 라우터(810)에 연결되고, 지능 소자(821)은 라우터(820)에 연결된다. 도 8에서 복수 개의 지능 소자의 각각은 상기 복수 개의 라우터 중 하나에 연결된다. 상기 복수 개의 지능 소자의 각각은 상기 복수 개의 라우터 중 하나에 양방향으로 연결될 수 있다.
상기 복수 개의 라우터 각각은 X축 방향 및 Y축 방향으로 인접한 라우터와 연결된다. 도 8에 도시된 실시예에 따르면, 상기 복수 개의 라우터 각각은 X축 방향 및 Y축 방향으로 인접한 라우터와 양방향(bidirectional)으로 연결된다. 도 8을 참조하여 설명하면, 라우터(840)은 Y축 방향으로 라우터(850)와 양방향으로 연결되고, X축 방향으로 라우터(810) 및 라우터(870)과 양방향으로 연결된다. 도 8에는 도 4에서와 같은 환상 연결은 없다. 이와 같이 라우터들이 X축 방향 및 Y축 방향으로 인접한 라우터와 양방향으로 연결되고, 지능 소자들 각각은 상기 라우터들 중 하나에 연결된 경우를 본 발명에서는 스타 메시 토폴로지(star mesh topology)라고 부른다. 도 8에 도시된 경우가 바로 본 발명에 따른 스타 메시 토폴로지의 일예이다.
도 9a 및 도 9b는 본 발명의 일실시예에 따른 컴퓨터 칩에서의 평균 홉 카운트를 설명하기 위한 도면이다.
도 9a에서 라우터들(910, 920, 930, 940) 각각은 X축 방향 및 Y축 방향 각각 에 대하여 일방향 환상 토폴로지(unidirectional circular topology)로 연결되고, 지능 소자들(911, 912, 921, 922, 931, 932, 941, 942) 각각은 상기 라우터들 중 하나에 연결되므로, 도 9a에 도시된 토폴로지는 본 발명에 따른 스타 토로스 토폴로지의 일예이다.
또한, 라우터들(910, 920, 930, 940)은 X축 방향 및 Y축 방향으로 인접한 라우터들과 양방향으로 연결되고, 지능 소자들(911, 912, 921, 922, 931, 932, 941, 942) 각각은 상기 라우터들 중 하나에 연결되므로, 도 9a에 도시된 토폴로지는 본 발명에 따른 스타 메시 토폴로지의 일예이기도 하다. 즉, 라우터가 2*2으로 배치되는 경우에는 본 발명에 따른 스타 토로스 토폴로지와 스타 메시 토폴로지가 동일한 토폴로지를 가지게 된다.
도 9a의 방법에 대하여, 하나의 지능 소자(IP: intellectual property)가 다른 지능 소자에게 데이터를 전달하기 위하여 거치는 평균 홉 수(average hop count)를 계산한다. 도 9a에서 도면 부호 911, 912, 921, 922, 931, 932, 941, 942는 지능 소자이고, 910, 920, 930, 940는 라우터이다. 도 9a의 지능 소자(912)로부터 다른 지능 소자(911, 921, 922, 931, 932, 941, 942)까지의 홉 수가 도 9b에 도시되어 있다. 지능 소자(912)로부터 지능 소자(911)로 데이터를 전달하기 위해서는 라우터(910)을 경유하여야 하므로 홉 카운터가 1이다. 지능 소자(912)로부터 지능 소자(921)로 데이터를 전달하기 위해서는 라우터(910) 및 라우터(920)를 경유하여야 하므로 홉 카운터가 2이다. 마찬가지로, 지능 소자(910)로부터 다른 지능 소자들까지의 홉 카운터도 모두 도 9b에 도시되어 있다. 지능 소자(920), 지 능 소자(930) 및 지능 소자(940)는 지능 소자(910)와 그 위치가 대등(equivalent)하다. 따라서, 도 9a의 토폴로지에 대한 평균 홉 카운트를 계산하면, 도 9b에 도시된 바와 같이, 2.14가 된다.
이러한 홉 카운트는 도 1a, 도 2a 및 도 3a의 종래기술에서 설명하였던 홉 카운트보다 훨씬 적은 값임을 알 수 있다. 따라서, 본 발명에 따르면, 컴퓨터 칩 상의 하나의 모듈에서 다른 모듈로 데이터를 전달할 때 거치는 홉 수를 줄임으로써, 데이터 전달을 빠르게 하는 컴퓨터 칩의 설계가 가능해진다. 이는 고속으로 동작하는 컴퓨터 칩의 설계가 가능하다는 것을 의미한다.
다음으로, 도 9a의 토폴로지에 대하여 채널을 얼마나 효율적으로 이용하는지를 측정하기 위하여, L/U 비율(L/U ratio)을 계산한다. 도 9a에는 총 8개의 지능 소자가 있다. 이러한 지능 소자들의 연결에 사용된 총 포트의 수를 계산한다. 도 9에서 라우터들(910, 920, 930, 940)은 4개 방향의 입출력 포트를 가지므로, 모두 4개씩의 입력 포트 및 출력 포트를 가진다. 따라서, 라우터들의 총 포트 수는 "라우터들의 수(4) * 라우터당 포트수(4*2) = 32"가 된다. 따라서, 도 9a의 토폴로지에서 L/U 비율은 = (4*4*2) / 8 = 4이다.
이러한 L/U 비율은 도 1a, 도 2a 및 도 3a의 종래기술에서 설명하였던 L/U 비율보다 훨씬 적은 값임을 알 수 있다. 따라서, 본 발명에 따르면, 컴퓨터 칩 상의 모듈들이 L/U 비율이 작게 배치되어, 컴퓨터 칩 상의 모듈들을 연결하는 선(line)의 수가 줄어들게 된다. 이에 따라, 본 발명에 따르면, 컴퓨터 칩 설계상의 복잡성이 줄어들고, 컴퓨터 칩의 크기가 작아진다. 또한, 이에 따라 컴퓨터 칩 상 의 와이어링의 복잡성도 개선된다.
도 9a의 토폴로지에서는 라우터 하나당 지능 소자가 2개씩 연결되어 있는데, 라우터 하나당 지능 소자를 3개씩 연결하면, 라우터들의 총 포트수는 도 9a보다 8개가 더 늘어나고, 지능 소자의 수는 12개가 되므로, L/U 비율은 (32+8)/12 = 3.33이 된다. 즉, 본 발명에 따르면, 라우터 하나 당 더 많은 지능 소자를 연결할수록 지능 소자당 소요되는 연결선의 수가 줄어들게 되어, 컴퓨터 칩의 공간 활용도가 높아지게 된다. 본 발명에 따르면, 지능 소자가 라우터 하나에만 양방향으로 연결되도록 하기만 하면, 더 많은 수의 지능 소자를 라우터에 연결할 수 있다. 따라서, 본 발명은 많은 수의 지능 소자를 필요로 하는 컴퓨터 칩 설계에도 적용 가능하므로, 뛰어난 확장성을 가진다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명에 따른 컴퓨터 칩은 컴퓨터 칩 상의 하나의 모듈에서 다른 모듈로 데이터를 전달할 때 거치는 홉 수를 줄임으로써, 그만큼 데이터 전달을 빠르게 하여 고속으로 동작할 수 있다.
또한 본 발명에 따르면, 컴퓨터 칩 상의 모듈들이 L/U 비율이 작게 배치되 어, 컴퓨터 칩 상의 모듈들을 연결하는 선(line)의 수가 줄어든다. 이에 따라, 본 발명에 따르면, 컴퓨터 칩 설계상의 복잡성이 줄어들고, 컴퓨터 칩의 크기가 작아진다. 또한, 이에 따라 컴퓨터 칩 상의 와이어링의 복잡성도 개선된다.
또한 본 발명에 따르면, 본 발명에 의하여 제안된 컴퓨터 칩 상의 스타 토로스 토폴로지 또는 스타 메시 토폴로지 상에서 효율적으로 데이터 통신을 할 수 있는 방법 및 패킷 포맷이 제공된다.
또한, 본 발명에 따르면, 지능 소자가 라우터 하나에만 양방향으로 연결되도록 하기만 하면, 더 많은 수의 지능 소자를 라우터에 연결할 수 있으므로, 본 발명은 많은 수의 지능 소자를 필요로 하는 컴퓨터 칩 설계에도 적용 가능하여, 뛰어난 확장성을 가진다.

Claims (16)

  1. 컴퓨터 칩 상에 구성된 복수 개의 라우터 - 상기 복수 개의 라우터 각각은 X축 방향 및 Y축 방향으로 인접한 라우터와 연결됨 -; 및
    상기 컴퓨터 칩 상에 구성되는 복수 개의 지능 소자 - 상기 복수 개의 지능 소자의 각각은 상기 복수 개의 라우터 중 하나 이상에 연결됨 -;
    를 포함하고,
    상기 복수 개의 라우터 각각은 X축 방향 및 Y축 방향 각각에 대하여 일방향 환상 토폴로지(unidirectional circular topology)로 연결되고, 상기 복수 개의 라우터는 6개 이상인 것을 특징으로 하는 컴퓨터 칩.
  2. 제1항에 있어서,
    상기 복수 개의 라우터의 각각은 상기 복수 개의 지능 소자 중 적어도 두 개 이상에 연결되고, 상기 복수 개의 지능 소자의 각각은 상기 복수 개의 라우터 중 단 하나에 연결되는 것을 특징으로 하는 컴퓨터 칩.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서, 상기 라우터는 가상 채널(Virtual Channel)을 사용하는 것을 특징으로 하는 컴퓨터 칩.
  6. 제1항에 있어서, 상기 복수 개의 지능 소자의 각각은 상기 복수 개의 라우터 중 하나에 연결되는 것을 특징으로 하는 컴퓨터 칩.
  7. 제6항에 있어서, 상기 복수 개의 지능 소자의 각각은 상기 복수 개의 라우터 중 하나에 양방향으로 연결되는 것을 특징으로 하는 컴퓨터 칩.
  8. 제1항에 있어서,
    상기 라우터와 상기 지능 소자는 네트워크 인터페이스 소자(network interface element)를 통하여 연결되고, 상기 네트워크 인터페이스 소자는 상기 라우터와 상기 지능 소자 사이의 프로토콜 변환을 수행하는 것을 특징으로 하는 컴퓨터 칩.
  9. 제1항에 있어서, 상기 라우터는 소스 지능 소자(source IP)로부터 목적지 지능 소자(destination IP)로 데이터를 라우팅하는 것을 특징으로 하는 컴퓨터 칩.
  10. 제9항에 있어서, 상기 라우터는
    복수 개의 입출력 포트;
    상기 라우터와 X축 방향으로 연결된 라우터와의 데이터 흐름을 제어하는 X축 흐름 제어기(X flow controller);
    상기 라우터와 X축 방향으로 연결된 라우터와의 통신을 중재하는 X축 중재기(X arbiter);
    상기 라우터와 Y축 방향으로 연결된 라우터와의 데이터 흐름을 제어하는 Y축 흐름 제어기(Y flow controller);
    상기 라우터와 Y축 방향으로 연결된 라우터와의 통신을 중재하는 Y축 중재기(Y arbiter);
    상기 라우터와 연결된 지능 소자와의 데이터 흐름을 제어하는 지능 소자 흐름 제어기(IP flow controller);
    상기 라우터와 연결된 지능 소자와의 통신을 중재하는 지능 소자 중재기(IP arbiter); 및
    상기 복수 개의 입출력 포트를 스위칭하는 스위치(switch)
    를 포함하는 것을 특징으로 하는 컴퓨터 칩.
  11. 제1항에 있어서,
    상기 라우터 및 상기 지능 소자 사이에 통신되는 데이터는 패킷으로 전달되고, 상기 패킷은 소스 지능 소자 주소 필드, 소스 라우터 주소 필드, 목적지 지능 소자 주소 필드, 및 목적지 라우터 주소 필드를 포함하는 것을 특징으로 하는 컴퓨터 칩.
  12. 제11항에 있어서,
    상기 소스 지능 소자 주소 필드에 입력되는 소스 지능 소자의 주소는 상기 소스 지능 소자가 연결된 라우터에 연결된 지능 소자들 중에서 유일하게 식별 가능한 주소이고,
    상기 목적지 지능 소자 필드에 입력되는 목적지 지능 소자의 주소는 상기 목적지 지능 소자가 연결된 라우터에 연결된 지능 소자들 중에서 유일하게 식별 가능한 주소인 것을 특징으로 하는 컴퓨터 칩.
  13. 제11항에 있어서,
    상기 라우터의 주소는 X축 라우터 주소 및 Y축 라우터 주소를 포함하고, 상기 라우터는 상기 X축 라우터 주소 및 상기 Y축 라우터 주소에 의하여 상기 컴퓨터 칩에서 유일하게 식별 가능한 것을 특징으로 하는 컴퓨터 칩.
  14. 제13항에 있어서,
    상기 소스 라우터 주소 필드 및 상기 목적지 라우터 주소 필드는 각각 X축 라우터 주소 필드 및 Y축 라우터 주소 필드를 포함하는 것을 특징으로 하는 컴퓨터 칩.
  15. 컴퓨터 칩 상에 구성된 복수 개의 라우터;
    상기 복수 개의 라우터를 연결하고 토로스 토폴로지로 구성되는 복수 개의 통신 패스; 및
    상기 컴퓨터 칩 상에 구성되는 복수 개의 지능 소자 상기 복수 개의 지능 소자의 각각은 상기 복수 개의 라우터 중 하나에 연결됨 -;
    를 포함하는 것을 특징으로 하는 컴퓨터 칩.
  16. 제15항에 있어서, 상기 라우터는
    복수 개의 입출력 포트;
    상기 라우터와 X축 방향으로 연결된 라우터와의 데이터 흐름을 제어하는 X축 흐름 제어기(X flow controller);
    상기 라우터와 X축 방향으로 연결된 라우터와의 통신을 중재하는 X축 중재기(X arbiter);
    상기 라우터와 Y축 방향으로 연결된 라우터와의 데이터 흐름을 제어하는 Y축 흐름 제어기(Y flow controller);
    상기 라우터와 Y축 방향으로 연결된 라우터와의 통신을 중재하는 Y축 중재기(Y arbiter);
    상기 라우터와 연결된 지능 소자와의 데이터 흐름을 제어하는 지능 소자 흐름 제어기(IP flow controller);
    상기 라우터와 연결된 지능 소자와의 통신을 중재하는 지능 소자 중재기(IP arbiter); 및
    상기 복수 개의 입출력 포트를 스위칭하는 스위치(switch)
    를 포함하는 것을 특징으로 하는 컴퓨터 칩.
KR1020050124586A 2005-12-16 2005-12-16 스타 토로스 토폴로지를 이용하여 칩 상의 디바이스를연결한 컴퓨터 칩 KR100730279B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050124586A KR100730279B1 (ko) 2005-12-16 2005-12-16 스타 토로스 토폴로지를 이용하여 칩 상의 디바이스를연결한 컴퓨터 칩
US11/452,940 US20070140280A1 (en) 2005-12-16 2006-06-15 Computer chip for connecting devices on the chip utilizing star-torus topology

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050124586A KR100730279B1 (ko) 2005-12-16 2005-12-16 스타 토로스 토폴로지를 이용하여 칩 상의 디바이스를연결한 컴퓨터 칩

Publications (1)

Publication Number Publication Date
KR100730279B1 true KR100730279B1 (ko) 2007-06-19

Family

ID=38173396

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050124586A KR100730279B1 (ko) 2005-12-16 2005-12-16 스타 토로스 토폴로지를 이용하여 칩 상의 디바이스를연결한 컴퓨터 칩

Country Status (2)

Country Link
US (1) US20070140280A1 (ko)
KR (1) KR100730279B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101077539B1 (ko) 2009-08-18 2011-10-28 한국과학기술원 네트워크 온 칩 및 네트워크 온 칩 시스템

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101061187B1 (ko) * 2009-06-22 2011-08-31 한양대학교 산학협력단 버스 시스템 및 그 제어 장치
FR2949879B1 (fr) * 2009-09-04 2014-07-18 Kalray Noeuds d'entree/sortie d'un reseau sur puce torique.
US20120195321A1 (en) * 2011-02-02 2012-08-02 Futurewei Technologies, Inc. Method and Apparatus for Low-Latency Interconnection Networks Using Hierarchical Rings
US8787379B2 (en) * 2011-02-02 2014-07-22 Futurewei Technologies, Inc. Destination-based virtual channel assignment in on-chip ring networks
FR2979444A1 (fr) * 2011-08-23 2013-03-01 Kalray Reseau sur puce extensible
EP3028553A1 (en) 2013-07-30 2016-06-08 Hewlett Packard Enterprise Development LP Two-dimensional torus topology
CN105453489B (zh) * 2014-05-21 2019-03-08 华为技术有限公司 一种改进型环状拓扑结构及其应用方法
CN109189720B (zh) * 2018-08-22 2022-11-25 曙光信息产业(北京)有限公司 层次化片上网络拓扑结构及其路由方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5878265A (en) 1997-07-14 1999-03-02 Advanced Micro Devices, Inc. Data transfer network on a chip utilizing polygonal hub topology
US6111859A (en) 1997-01-16 2000-08-29 Advanced Micro Devices, Inc. Data transfer network on a computer chip utilizing combined bus and ring topologies
US6266797B1 (en) 1997-01-16 2001-07-24 Advanced Micro Devices, Inc. Data transfer network on a computer chip using a re-configurable path multiple ring topology
US20040215929A1 (en) 2003-04-28 2004-10-28 International Business Machines Corporation Cross-chip communication mechanism in distributed node topology
KR20050077437A (ko) * 2004-01-28 2005-08-02 삼성전자주식회사 원칩 시스템에서 라우터들간의 라우팅 경로 설정 장치 및방법

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596742A (en) * 1993-04-02 1997-01-21 Massachusetts Institute Of Technology Virtual interconnections for reconfigurable logic systems
JPH06325005A (ja) * 1993-05-14 1994-11-25 Fujitsu Ltd 再構成可能なトーラス・ネットワーク方式
US5583990A (en) * 1993-12-10 1996-12-10 Cray Research, Inc. System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel
US5908468A (en) * 1997-10-24 1999-06-01 Advanced Micro Devices, Inc. Data transfer network on a chip utilizing a multiple traffic circle topology
US6101181A (en) * 1997-11-17 2000-08-08 Cray Research Inc. Virtual channel assignment in large torus systems
US6205532B1 (en) * 1998-05-22 2001-03-20 Avici Systems, Inc. Apparatus and methods for connecting modules using remote switching
KR100277167B1 (ko) * 1998-06-05 2001-01-15 윤덕용 가상버스들을사용한연결망을갖는분산컴퓨팅시스템및데이터통신방법
US6026444A (en) * 1998-06-24 2000-02-15 Siemens Pyramid Information Systems, Inc. TORUS routing element error handling and self-clearing with link lockup prevention
US6016510A (en) * 1998-06-24 2000-01-18 Siemens Pyramid Information Systems, Inc. TORUS routing element error handling and self-clearing with programmable watermarking
US6598145B1 (en) * 1999-02-12 2003-07-22 Avici Systems Irregular network
US6768742B1 (en) * 1999-10-08 2004-07-27 Advanced Micro Devices, Inc. On-chip local area network
US7401161B2 (en) * 2000-12-18 2008-07-15 Sun Microsystems, Inc. High performance storage array interconnection fabric using multiple independent paths
US6718428B2 (en) * 2000-12-18 2004-04-06 Sun Microsystems, Inc. Storage array interconnection fabric using a torus topology
US6909695B2 (en) * 2001-05-07 2005-06-21 Sun Microsystems, Inc. Fault-tolerant, self-healing routing scheme for a multi-path interconnection fabric in a storage network
US6766389B2 (en) * 2001-05-18 2004-07-20 Broadcom Corporation System on a chip for networking
US7349385B2 (en) * 2001-05-30 2008-03-25 Nokia Siemens Networks Gmbh & Co. Kg Integrated access platform
US20030204636A1 (en) * 2001-07-02 2003-10-30 Globespanvirata Incorporated Communications system using rings architecture
US20030187853A1 (en) * 2002-01-24 2003-10-02 Hensley Roy Austin Distributed data storage system and method
US7085913B2 (en) * 2002-02-13 2006-08-01 International Business Machines Corporation Hub/router for communication between cores using cartesian coordinates
EP1500233B1 (en) * 2002-04-11 2008-08-13 Nxp B.V. Synchronising cell transmission for packet switching
GB0304628D0 (en) * 2003-02-28 2003-04-02 Imec Inter Uni Micro Electr Method for hardware-software multitasking on a reconfigurable computing platform
US20040042493A1 (en) * 2002-08-30 2004-03-04 Emmot Darel N. System and method for communicating information among components in a nodal computer architecture
US20040062196A1 (en) * 2002-10-01 2004-04-01 Avici Systems, Inc. Single shelf router
US8336040B2 (en) * 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
US8335909B2 (en) * 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US9178784B2 (en) * 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
US7711977B2 (en) * 2004-04-15 2010-05-04 Raytheon Company System and method for detecting and managing HPC node failure
US7382721B2 (en) * 2004-04-27 2008-06-03 Hewlett-Packard Development Company, L.P. Nodal computer network
US7724733B2 (en) * 2005-03-31 2010-05-25 International Business Machines Corporation Interconnecting network for switching data packets and method for switching data packets

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111859A (en) 1997-01-16 2000-08-29 Advanced Micro Devices, Inc. Data transfer network on a computer chip utilizing combined bus and ring topologies
US6266797B1 (en) 1997-01-16 2001-07-24 Advanced Micro Devices, Inc. Data transfer network on a computer chip using a re-configurable path multiple ring topology
US5878265A (en) 1997-07-14 1999-03-02 Advanced Micro Devices, Inc. Data transfer network on a chip utilizing polygonal hub topology
US20040215929A1 (en) 2003-04-28 2004-10-28 International Business Machines Corporation Cross-chip communication mechanism in distributed node topology
KR20050077437A (ko) * 2004-01-28 2005-08-02 삼성전자주식회사 원칩 시스템에서 라우터들간의 라우팅 경로 설정 장치 및방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101077539B1 (ko) 2009-08-18 2011-10-28 한국과학기술원 네트워크 온 칩 및 네트워크 온 칩 시스템

Also Published As

Publication number Publication date
US20070140280A1 (en) 2007-06-21

Similar Documents

Publication Publication Date Title
KR100730279B1 (ko) 스타 토로스 토폴로지를 이용하여 칩 상의 디바이스를연결한 컴퓨터 칩
Zeferino et al. SoCIN: a parametric and scalable network-on-chip
Duato et al. Performance evaluation of adaptive routing algorithms for k-ary n-cubes
Pande et al. High-throughput switch-based interconnect for future SoCs
Moraes et al. A Low Area Overhead Packet-switched Network on Chip: Architecture and Prototyping.
JPH10200567A (ja) Lanスイッチ
Jovanović et al. CuNoC: A dynamic scalable communication structure for dynamically reconfigurable FPGAs
WO2005086912A2 (en) Scalable network for computing and data storage management
CN113220627A (zh) 一种二维片上网络路由节点结构
KR101028806B1 (ko) 다양한 통신 방식에 적용 가능한 에스오씨 네트워크의 통신 장치
CN1179214C (zh) 使用多个控制线路增大多层最小逻辑网络中的通过量的可扩缩设备和方法
Kumar et al. A survey for silicon on chip communication
Jamali et al. MinRoot and CMesh: Interconnection architectures for network-on-chip systems
Qasem et al. Square-octagon interconnection architecture for network-on-chips
Marconett A Survey of Architectural Design and Implementation Tradeoffs in Network on Chip Systems
Kaushal et al. Network on Chip Architecture and Routing Techniques: A survey
Rooban et al. Design of Router Architecture Based on Wormhole Switching Mode for NoC
Kayarkar et al. Router architecture for the interconnection network: A review
Valuskar et al. FPGA Implementation of Ring and Star NoC Architectures
Rekha et al. Analysis and Design of Novel Secured NoC for High Speed Communications
Trigui et al. Mesh 2D Network on Chip with an open core protocol based network interface
Sathe et al. Design of a guaranteed throughput router for on-chip networks
REDDY et al. Design of Reconfigurable NoC Architecture for Low Area and Low Power Applications
Ben Abdallah et al. Multicore SoC On-Chip Interconnection Networks
Sayankar et al. Overview of network on chip architecture

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
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20120531

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130531

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee