KR100674934B1 - 온 칩 버스(On Chip Bus)에서 최적화된타일-스위치(tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체 - Google Patents

온 칩 버스(On Chip Bus)에서 최적화된타일-스위치(tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체 Download PDF

Info

Publication number
KR100674934B1
KR100674934B1 KR1020050001124A KR20050001124A KR100674934B1 KR 100674934 B1 KR100674934 B1 KR 100674934B1 KR 1020050001124 A KR1020050001124 A KR 1020050001124A KR 20050001124 A KR20050001124 A KR 20050001124A KR 100674934 B1 KR100674934 B1 KR 100674934B1
Authority
KR
South Korea
Prior art keywords
tile
switch
core
mapped
arbitrary
Prior art date
Application number
KR1020050001124A
Other languages
English (en)
Other versions
KR20060080712A (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 KR1020050001124A priority Critical patent/KR100674934B1/ko
Priority to US11/249,082 priority patent/US7626983B2/en
Publication of KR20060080712A publication Critical patent/KR20060080712A/ko
Application granted granted Critical
Publication of KR100674934B1 publication Critical patent/KR100674934B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01CCONSTRUCTION OF, OR SURFACES FOR, ROADS, SPORTS GROUNDS, OR THE LIKE; MACHINES OR AUXILIARY TOOLS FOR CONSTRUCTION OR REPAIR
    • E01C19/00Machines, tools or auxiliary devices for preparing or distributing paving materials, for working the placed materials, or for forming, consolidating, or finishing the paving
    • E01C19/02Machines, tools or auxiliary devices for preparing or distributing paving materials, for working the placed materials, or for forming, consolidating, or finishing the paving for preparing the materials
    • E01C19/10Apparatus or plants for premixing or precoating aggregate or fillers with non-hydraulic binders, e.g. with bitumen, with resins, i.e. producing mixtures or coating aggregates otherwise than by penetrating or surface dressing; Apparatus for premixing non-hydraulic mixtures prior to placing or for reconditioning salvaged non-hydraulic compositions
    • E01C19/1059Controlling the operations; Devices solely for supplying or proportioning the ingredients
    • E01C19/1068Supplying or proportioning the ingredients

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Architecture (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

온 칩 버스(On Chip Bus)에서 최적화된 타일-스위치(tile-switch) 맵핑(mapping) 구조를 결정하는 방법 및 그 방법을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 개시된다. 본 발명의 실시예에 따른 타일-스위치(tile-switch) 맵핑(mapping) 구조를 결정하는 방법은, 온 칩 버스(On Chip Bus)에서, 임의의 코어(core)들과 타일들이 맵핑된 후 소정의 최적화 맵핑 방법을 이용하여 상기 타일들을 임의의 스위치(switch)들에 맵핑시켜 최적화된 타일-스위치(tile-switch) 맵핑(mapping) 구조를 결정하는 방법에 관한 것이다. 상기 최적화 맵핑 방법은 제 1 단계 내지 제 3 단계의 연산 과정을 구비한다. 본 발명에 따른 최적화된 타일-스위치(tile -switch) 맵핑(mapping) 구조를 결정하는 방법 및 그 방법을 기록한 컴퓨터로 읽을 수 있는 기록 매체는 코어들과 타일들의 맵핑 관계가 결정된 상태에서, 코어들 사이의 홉 거리를 최소로 하는 타일-스위치 맵핑 구조 결정 방법을 제공함으로써 온 칩 버스에서의 에너지 소비를 감소시키고 통신 지연 시간을 최소화 할 수 있는 장점이 있다. 또한, 최적의 맵핑 구조를 제공함으로써 다른 맵핑 구조의 최적화 정도를 비교할 수 있는 기준을 제시하는 장점이 있다.

Description

온 칩 버스(On Chip Bus)에서 최적화된 타일-스위치(tile-switch) 맵핑(mapping) 구조를 결정하는 방법 및 그 방법을 기록한 컴퓨터로 읽을 수 있는 기록 매체{Method of deciding tile-switch mapping architecture within on-chip-bus and computer-readable medium for recoding the method}
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 종래의 온 칩 버스 구조의 한 예를 도시한 블록도이다.
도 2는 코어들과 타일들 및 스위치들간의 맵핑을 설명하는 개념도이다.
도 3은 본 발명의 실시예에 따른 타일-스위치 맵핑 구조 결정 방법을 설명하는 개념도이다.
도 4는 본 발명의 실시예에 따른 타일-스위치 맵핑 구조 결정 방법을 설명하는 플로우 차트이다.
본 발명은 시스템 온 칩의 온 칩 버스에서 최적화된 타일- 스위치(tile-switch) 맵핑(mapping) 구조를 결정하는 방법에 관한 것으로서, 특히 시스템 온 칩을 구성하는 코어들간의 통신에 필요한 에너지 소모량과 통신 지연 시간을 개선할 수 있는 메쉬(mesh) 기반의 온 칩 버스에서 타일과 스위치들간의 최적화된 맵핑 구조를 결정하는 방법 및 상기 방법을 기록한 기록 매체에 관한 것이다.
필요로 하는 기능을 수행하는 칩들을 그룹(group)화하여 개발하고 제품화하는 칩 세트(chip set)의 개념을 넘어서, 최근의 시스템 구현은 하나의 칩에 다양한 기능 블록들을 모두 집적시킨 시스템 온 칩(SOC; System On Chip)의 개념으로 발전하고 있다.
시스템 온 칩은 마이크로 프로세서, 온 칩 메모리, 오디오와 비디오 컨트롤러 및 코덱(CODEC; Coder and Decoder), 디지털 신호 처리기(DSP; Digital Signal Processor) 등의 다양한 기능 블록들, 즉, 코어(core)들을 하나의 칩 위에 집적시켜서 제품의 사이즈를 줄이고, 이들 각 구성요소를 사용한 시스템의 개발에 들어가는 시간과 비용의 부담을 줄이는데 그 목적이 있다.
여기에서, 시스템 온 칩을 구성하는 코어들은 필요한 경우에는 별도로 개발되어질 수도 있으나, 전문 개발 업체들에 의해서 이미 개발된 코어를 이용할 수도 있다. 이러한 코어의 재사용성(reusability) 때문에 개발에 들어가는 시간과 비용의 절감을 꾀할 수 있는 장점이 있다.
한편, 시스템 온 칩을 구성하는 코어들 간에도 높은 데이터 대역폭을 필요로 하는 응용 예들이 증가하고 있어 이에 따라서 코어들간의 데이터 송수신의 부담이 증가하고 있다.
예를 들면, 시스템 온 칩에 대용량의 온 칩 메모리가 내장되어 있거나, 오디오와 비디오 신호를 처리하기 위한 컨트롤러 또는 코덱이 내장된 시스템 온 칩의 경우에는 칩 내부의 기능 블록 코어들 간의 데이터 송수신 설계 측면에서 상당한 개발 부담이 존재한다.
일반적으로 많은 수의 칩들과 칩들 사이의 데이터 전달에는 버스(bus)가 이용된다. 예를 들면, ARM CPU가 사용되는 임베디드(embedded) 시스템에서는 시스템을 구성하는 CPU, 메모리 컨트롤러, 디스플레이 컨트롤러 등의 구성요소를 AMBA(Advanced Microprocessor Bus Architecture)와 같은 버스 아키텍쳐를 이용하여 연결시킨다.
시스템 온 칩이 종래의 칩 세트 개념을 하나의 칩 위에 집적시키는 방향으로 발전되어 가게되고, 시스템 온 칩 내부의 코어들간의 연결 관계도 상기한 버스 구조를 차용하여 이루어지는 방향으로 발전해가고 있다. 따라서, 종래 저집적도의 시스템 온 칩의 경우에는 칩 레벨의 버스 구조가 큰 수정 없이 그대로 차용되는 방향으로 이루어졌다.
그러나, 시스템 온 칩의 집적도가 급격히 높아지게 됨에 따라 버스를 구성하는 와이어 폭이 극히 좁아지게 되고 와이어의 인덕턴스, 저항, 커패시턴스 등의 특성치가 코어들을 구성하는 게이트들의 사이즈들과 비교하여서 무시할 수 없는 수준에 이르게 되었다. 이에 따라 종래의 버스 구조를 시스템 온 칩에 그대로 적용할 경우에는 원하는 시스템의 성능을 구현하기가 어려워지게 되었다.
따라서, 이와 같은 시스템 온 칩에 대응된 효율적인 온 칩 버스 구조(on- chip bus architecture)와 설계 방법론(design methodology)을 포함한 기술 분야로서 네트워크 온 칩(NOC; Network On Chip)의 기술 분야가 대두되었으며, 현재 다양한 형태의 온 칩 버스 구조가 제시되고 있다.
도 1은 종래의 온 칩 버스 구조의 한 예를 도시한 블록도이다.
도 1의 온 칩 버스 구조는 9개의 코어들이 포함된 시스템 온 칩에 사용될 수 있는 버스 구조의 한 형태로, AMD(Advanced Micro Devices, Inc.)사에 의해 출원된 미국 등록 특허 제5,974,487호에서 개시된 버스 구조를 일부 수정하여 도시한 것이다.
도 1의 온 칩 버스 구조(100)는 다양한 기능 블록들인 9개의 코어(110a~110i)들, 코어들(110a~110i)간의 통신을 담당하는 스위치들(120a~120l) 및 스위치들(120a~120l)간을 연결하는 링크(link; 130a~130l,131a~131h)들을 구비한다.
각 링크들(130a~130l,131a~131h)과 스위치들(120a~120l)은 링 구조(ring topology)로 이루어져 있으며, 상기 링 구조들이 모여서 2차원 메쉬(mesh)형태를 이루어 전체적인 버스구조를 이루고 있다.
이 경우, 스위치(120a~120l)들은 메쉬 형태의 교차점(intersection)에 위치한다. 각 스위치는 다른 스위치로부터 링크를 통하여 수신한 데이터를 다시 다른 스위치로 링크를 통하여 송신한다.
또한 각 스위치는 다른 스위치로부터 링크를 통하여 수신한 데이터를 자신에게 연결된 코어에 전달하고, 자신에게 연결된 코어가 송신하는 데이터를 목적 (destination) 코어에 전달하기 위해서, 다른 스위치로 링크를 통하여 데이터를 전송한다.
여기에서, 상기 스위치들간의 링크는 양방향(bi-directional)으로 연결될 수도 있으며, 단방향(uni-directional)으로만 연결될 수도 있다. 양방향 링크는 서로 반대 방향으로 송신하는 단방향 와이어 쌍으로 이루어질 수도 있고, 하나의 와이어로 양방향 송수신을 구성할 수도 있다.
도 1에서 예시된 온 칩 버스 구조(100)의 코어들간 통신을 설명하면, 코어(110a)가 코어(110e)에 전송하여야 할 데이터가 있을 경우에, 코어(110a)는 코어(110a)가 연결된 스위치(120a)로 데이터를 전송한다.
스위치(120a)는 코어(110a)로부터 수신한 데이터를 스위치(120a)와 스위치 (120d)간에 연결된 링크(131a)를 통해서 스위치(120d)로 전달한다. 마지막으로 스위치(120d)는 링크(131a)를 통해서 수신한 데이터를 스위치(120d)에 연결되어 있는 코어(110e)로 전달한다.
즉, 도 1과 같은 온 칩 버스 구조(100)에 있어서, 코어들간의 데이터 송수신은 각 코어가 연결된 스위치들과 스위치들을 연결한 링크를 매개로 하여 이루어진다.
도 2는 코어들과 타일들 및 스위치들간의 맵핑을 설명하는 개념도이다.
도 2에는 코어 커뮤티케이션 그래프(Core-Communication -Graph)와 네트워크 온 칩 구조(Network On Chip Architecture)가 도시된다. 코어 커뮤니케이션 그래프는 도 1과 같은 온 칩 버스 구조(100)를 형성하기 위해서 어떠한 코어들(210)이 서 로 연결될지를 결정하기 위한 그래프이다.
도 2에서는 코어 s 가 코어 d 및 d'와 연결되고 있다. 여기서, 코어란 시스템 온 칩 상에 장착되는 메모리, 프로세서 등의 기능 블록들을 의미한다.
네트워크 온 칩 구조는 복수개의 스위치들(230)과 복수개의 타일(tile ;220)들 및 복수개의 스위치들(230)을 연결하는 복수개의 링크들을 구비하며, 타일들(220)과 스위치들(230)의 연결관계를 결정한다. 타일은 코어들이 장착되는 공간이며 스위치들과 연결된다.
도 2에서는 코어 s가 타일 k에 맵핑되고, 코어 d가 타일 l에 맵핑되며 코어 d'가 타일 l'에 맵핑되고 있다. 그리고, 도 2에는 타일 k를 둘러싼 스위치들 중의 하나가 스위치 i이고, 타일 l을 둘러싼 스위치들 중의 하나가 스위치 j 이며 스위치 i에서 스위치 j로 데이터 통신 루트(route)인 x, y 가 도시된다.
그런데, 도 1과 같은 온 칩 버스 구조(100)를 형성하는 경우, 코어들과 타일들의 맵핑 관계가 이미 결정되어 있다면, 타일들이 어떠한 스위치들에 연결되는 가가 중요하다. 메쉬(mesh) 기반의 온 칩 버스 구조에서 하나의 코어가 다른 하나의 코어와 데이터를 송수신 할 때 소비되는 에너지 및 통신 지연 시간은 상기 코어들 사이의 홉 거리(hop distance)에 비례한다.
따라서, 데이터 송 수신에 필요한 홉 거리를 최소화할 수 있는 타일-스위치 맵핑 방법이 필요하다. 그러나, 종래의 타일-스위치 맵핑 방법들은 타일-스위치간의 일대일 맵핑 만을 고려하고 있다.
또한, 종래의 맵핑 방법들은 경험칙을 이용하여 타일-스위치 맵핑을 결정하 므로 코어들 사이에서의 데이터 송수신의 에너지 소비를 줄이고 통신 지연 시간을 줄이기 위한 최적화된 맵핑 구조를 제시하지 못하는 문제가 있다.
따라서, 각 코어들간의 데이터 송수신에 필요한 홉 거리를 최소화할 수 있도록 코어들과 스위치들의 맵핑 관계를 결정함으로써 에너지 소비 및 통신 지연 시간을 최소화 할 수 있는 타일-스위치 맵핑 방법이 필요하다.
본 발명이 이루고자하는 기술적 과제는 코어들과 타일들의 맵핑 관계가 결정된 상태에서, 코어들 사이의 홉 거리를 최소로 하는 타일-스위치 맵핑 구조 결정 방법을 제공하는데 있다.
본 발명이 이루고자하는 다른 기술적 과제는 코어들과 타일들의 맵핑 관계가 결정된 상태에서, 코어들 사이의 홉 거리를 최소로 하는 타일-스위치 맵핑 구조 결정 방법을 기록한 기록 매체를 제공하는데 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 타일-스위치(tile-switch) 맵핑(mapping) 구조를 결정하는 방법은, 온 칩 버스(On Chip Bus)에서, 임의의 코어(core)들과 타일들이 맵핑된 후 소정의 최적화 맵핑 방법을 이용하여 상기 타일들을 임의의 스위치(switch)들에 맵핑시켜 최적화된 타일-스위치(tile-switch) 맵핑(mapping) 구조를 결정하는 방법에 관한 것이다.
상기 최적화 맵핑 방법은 제 1 단계 내지 제 3 단계의 연산 과정을 구비한다.
제 1 단계는 임의의 타일 k에서 임의의 타일 l로의 데이터 커뮤니케이션 플로우(flow)와 임의의 스위치 i와 임의의 스위치 j 사이의 홉 거리(hop distance)를 곱하는 연산을 수행하는데 있어서, 상기 임의의 스위치 i및 j를 임의의 타일 k를 둘러싼 스위치들과 임의의 타일 l을 둘러싼 스위치들로 변경하여 상기 연산을 수행한 후, 결과 값들을 모두 합산한다.
제 2 단계는 임의의 코어 s가 상기 타일 k에 맵핑되고 임의의 코어 d 가 상기 타일 l에 맵핑되는 상태에서, 상기 코어 s에서 상기 코어 d로의 커뮤니케이션 볼륨(volume)과 상기 제 1 단계의 결과 값을 곱하는 연산을 수행하는 데 있어서, 상기 타일 k 및 l을 임의의 모든 타일들로 변경하여 상기 곱하는 연산을 수행한 결과 값들을 모두 합산한다.
제 3 단계는 상기 제 2 단계의 연산을 임의의 모든 코어들에 대하여 수행한 후, 결과 값들을 모두 합산하는 제 3 단계를 수행하여 상기 스위치 i에서 상기 스위치 j로의 홉 거리가 최소인 상기 임의의 타일 k 및 l을 결정한다.
상기 최적화 맵핑 방법은 상기 제 3단계의 결과를 임의의 모든 코어들에 대하여 수행된 상기 코어 s에서 상기 코어 d로의 커뮤니케이션 볼륨(volume)으로 나누어 상기 스위치 i에서 상기 스위치 j로의 평균 홉 거리가 최소인 상기 임의의 타일 k 및 l을 결정하는 제 4단계를 더 구비한다.
제 1 내지 제 4 단계는 상기 임의의 코어 s가 상기 임의의 타일 k에 맵핑되고, 상기 다른 임의의 코어 d가 상기 임의의 타일 l에 맵핑된 상태에서, 상기 임의의 스위치 i는 상기 임의의 타일 k를 둘러싸는 스위치들 중에 하나로서 상기 임의 의 타일 k에 연결되고 상기 임의의 스위치 j는 상기 임의의 타일 l을 둘러싸는 스위치들 중에 하나로서 상기 임의의 타일 l에 연결된다고 가정한다.
상기 최적화 맵핑 방법은 다음 수학식으로 표현되며,
Figure 112005000694143-pat00001
여기서,
Figure 112005000694143-pat00002
는 상기 데이터 커뮤니케이션 플로우이고,
Figure 112005000694143-pat00003
는 상기 임의의 스위치 i와 상기 임의의 스위치 j 사이의 홉 거리(hop distance)를 나타내며,
Figure 112005000694143-pat00004
,
Figure 112005000694143-pat00005
은 각각 상기 타일 k를 둘러싼 스위치들과 상기 타일 l을 둘러싼 스위치들을 나타내며,
Figure 112005000694143-pat00006
은 상기 코어 s가 상기 타일 k에 맵핑되고 상기 코어 d가 상기 타일 l에 맵핑된 상태에서 상기 코어 s와 상기 코어 d 사이의 커뮤니케이션 볼륨(volume)을 나타낸다.
전체 코어들의 수는 전체 타일들의 수와 같거나 또는 적으며, 두 개 또는 그 이상의 코어들이 하나의 타일에 맵핑되지 아니한다. 상기 스위치들과, 상기 타일(tile)들은 복수개의 링크들에 의해서 연결되는 네트워크 온 칩 구조(Network On Chip Architecture)를 형성하며, 상기 네트워크 온 칩 구조는 2차원 매쉬(2-dimension mesh) 구조이다.
하나의 타일에 연결되는 스위치들의 최대 개수는 1개 이상 4개 이하이다. 상기 코어와 스위치들의 관계는 다음 수학식으로 표현되며,
Figure 112005000694143-pat00007
여기서,
Figure 112005000694143-pat00008
하나의 코어에 연결될 수 있는 최대 스위치들의 개수이고,
Figure 112005000694143-pat00009
는 만일 코어 s가 맵핑된 타일 k에 스위치 i가 맵핑되면 1을 가지며 그렇지 아니하면 0을 가지고,
Figure 112005000694143-pat00010
는 상기 타일 k를 둘러싼 스위치들을 나타낸다.
하나의 스위치에 연결되는 코어들의 최대 개수는 1개 이상 4개 이하이다. 상기 코어와 스위치들의 관계는 다음 수학식으로 표현되며,
Figure 112005000694143-pat00011
여기서,
Figure 112005000694143-pat00012
하나의 스위치에 연결될 수 있는 코어들의 최대 개수이고,
Figure 112005000694143-pat00013
는 만일 코어 s가 맵핑된 타일 k에 스위치 i가 연결되면 1을 가지며 그렇지 아니하면 0을 가지고, 는 스위치 i를 둘러싼 타일들을 나타낸다.
만일 상기 임의의 코어 s가 맵핑된 타일 k가 상기 임의의 스위치 i에 연결되고, 상기 임의의 코어 d가 맵핑된 타일 l이 상기 임의의 스위치 j에 연결되면, 상기 데이터 커뮤니케이션 플로우는 1 이고, 그렇지 아니하면 상기 데이터 커뮤니케이션 플로우는 0 이다.
상기 데이터 커뮤니케이션 플로우는 다음 수학식들로 표현되며,
Figure 112005000694143-pat00014
Figure 112005000694143-pat00015
,
Figure 112005000694143-pat00016
Figure 112005000694143-pat00017
,
= 1
여기서,
Figure 112005000694143-pat00018
는 상기 데이터 커뮤니케이션 플로우를 나타내고,
Figure 112005000694143-pat00019
는 코어 s가 맵핑된 타일 k에 스위치 i가 연결되는 경우를 나타내며,
Figure 112005000694143-pat00020
는 코어 d가 맵핑된 타일 l에 스위치 j가 연결되는 경우를 나타낸다.
임의의 링크의 총 대역폭(bandwidth)은 상기 임의의 링크에 동시에 밀집(congested)될 수 있는 최대 대역폭 보다 작거나 같아야 하고, 상기 임의의 링크의 최대 대역폭은 링크 용량(capacity)을 초과하지 아니한다.
상기 임의의 링크의 대역폭은 다음 수학식으로 표현되며,
Figure 112005000694143-pat00021
,
Figure 112005000694143-pat00022
,
Figure 112005000694143-pat00023
여기서,
Figure 112005000694143-pat00024
는 스위치 i와 스위치 j사이의 임의의 X 및 Y 루트(route) 사이의 링크의 대역폭을 의미하고,
Figure 112005000694143-pat00025
는 코어 s에서 코어 d로의 데이터 커뮤니케이션 플로우를 위하여 요구되는 대역폭을 의미하며,
Figure 112005000694143-pat00026
는 임의의 링크에 동시에 밀집(congested)될 수 있는 최대 대역폭을 의미하며, C 는 임의의 링크가 전송할 수 있는 데이터 최대 용량인 링크 용량(capacity)을 의미한다.
상기 다른 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 기록 매체는 온 칩 버스(On Chip Bus)에서, 임의의 코어(core)들과 타일들이 맵핑된 후 소정의 최적화 맵핑 방법을 이용하여 상기 타일들을 임의의 스위치(switch)들에 맵핑시켜 최적화된 타일-스위치(tile-switch) 맵핑(mapping) 구조를 결정하는 방법을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
상기 기록 매체는 임의의 타일 k에서 임의의 타일 l로의 데이터 커뮤니케이션 플로우(flow)와 임의의 스위치 i와 임의의 스위치 j 사이의 홉 거리(hop distance)를 곱하는 연산을 수행하는데 있어서, 상기 임의의 스위치 i및 j를 임의의 타일 k를 둘러싼 스위치들과 임의의 타일 l을 둘러싼 스위치들로 변경하여 상기 연산을 수행한 후, 결과 값들을 모두 합산하는 제 1 단계, 임의의 코어 s가 상기 타일 k에 맵핑되고 임의의 코어 d 가 상기 타일 l에 맵핑되는 상태에서, 상기 코어 s에서 상기 코어 d로의 커뮤니케이션 볼륨(volume)과 상기 제 1 단계의 결과 값을 곱하는 연산을 수행하는 데 있어서, 상기 타일 k 및 l을 임의의 모든 타일들로 변경하여 상기 곱하는 연산을 수행한 결과 값들을 모두 합산하는 제 2 단계 및 상기 제 2 단계의 연산을 임의의 모든 코어들에 대하여 수행한 후, 결과 값들을 모두 합산하는 제 3 단계를 수행하여 상기 스위치 i에서 상기 스위치 j로의 홉 거리가 최소인 상기 임의의 타일 k 및 l을 결정하는 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법을 기록한 것이다.
상기 기록 매체는 상기 제 3단계의 결과를 임의의 모든 코어들에 대하여 수행된 상기 코어 s에서 상기 코어 d로의 커뮤니케이션 볼륨(volume)으로 나누어 상기 스위치 i에서 상기 스위치 j로의 평균 홉 거리가 최소인 상기 임의의 타일 k 및 l을 결정하는 제 4단계를 더 기록할 수 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 3은 본 발명의 실시예에 따른 타일-스위치 맵핑 구조 결정 방법을 설명하는 개념도이다.
먼저, 임의의 코어(core)들 사이의 연결관계를 나타내는 코어 커뮤니케이션 그래프(310)를 결정한다. 임의의 코어들의 연결관계는 시스템 온 칩의 설계자의 필요에 의해서 결정된다. 이하에서는 설명의 편의를 위하여 임의의 코어 s가 임의의 코어 d에 연결되는 경우를 가정하여 설명한다. 이는 도 2에 도시되어 있다.
그리고, 복수개의 스위치 (switch)들과 복수개의 타일(tile)들 및 상기 복수개의 스위치들을 연결하는 복수개의 링크들을 구비하는 네트워크 온 칩 구조(320)를 결정한다. 여기서, 네트워크 온 칩 구조(320)는 설명의 편의를 위하여 2차원 메쉬(2-dimension mesh) 구조인 경우를 가정한다. 그러나, 이에 한정되는 것이 아님은 당업자라면 이해할 수 있을 것이다.
코어 커뮤니케이션 그래프(310)와 네트워크 온 칩 구조(320)가 결정되면 경험칙에 따르는 일반적인 코어-타일 맵핑 방법(330)에 의해서 코어와 타일들을 맵핑시킨 코어-타일 맵핑 구조(340)를 결정한다.
즉, 어떠한 코어가 어떠한 타일에 연결되는지를 종래의 코어-타일 맵핑 방법에 의하여 결정한다. 여기서, 설명의 편의를 위하여, 임의의 코어 s가 임의의 타일 k에 맵핑되고, 다른 임의의 코어 d가 임의의 타일 l에 맵핑된다고 가정한다.
코어-타일 맵핑 구조(340)가 결정된 상태에서 소정의 최적화 맵핑 방법(350)을 이용하여 상기 코어들을 상기 스위치들에 맵핑시켜 최적화된 타일-스위치(tile-switch) 맵핑(mapping) 구조(360)를 결정한다.
최적화 맵핑 방법(350)에 의해서 결정된 타일-스위치 맵핑 구조(360)는 코어 s에서 코어 d로의 홉 거리가 최소이며 데이터 송수신 시 에너지 및 통신 지연 시간을 최소화시킬 수 있는 구조이다.
도 3의 최적화 맵핑 방법(350)은 도 4를 참조하여 좀 더 상세히 설명된다.
도 4는 본 발명의 실시예에 따른 타일-스위치 맵핑 구조 결정 방법을 설명하는 플로우 차트이다.
도 4를 참조하면, 최적화 맵핑 방법(350)은 제 1 단계 내지 제 3 단계의 연산 과정을 구비한다.
설명의 편의를 위하여, 임의의 코어 s가 상기 임의의 타일 k에 맵핑되고, 상기 다른 임의의 코어 d가 상기 임의의 타일 l에 맵핑된 상태에서, 상기 임의의 스위치 i는 상기 임의의 타일 k를 둘러싸는 스위치들 중에 하나로서 상기 임의의 타일 k에 연결되고 상기 임의의 스위치 j는 상기 임의의 타일 l을 둘러싸는 스위치들 중에 하나로서 상기 임의의 타일 l에 연결되는 구조가 최적의 타일-스위치 맵핑 구조라고 가정한다.
즉, 최적화 맵핑 방법(350)은 에너지 소비와 통신 지연 시간을 최소화시키면서 임의의 코어 s가 임의의 코어 d에 연결되도록 하는 최적의 타일-스위치 맵핑 구조를 결정하는 방법이며, 코어 s가 연결된 타일 k가 스위치 i에 연결되고, 코어 d 가 연결된 타일 l이 스위치 j에 연결되면 최적의 타일-스위치 맵핑 구조인 것으로 가정한다.
최적화 맵핑 방법(350)은 다음 수학식 1로 표현될 수 있다.
Figure 112005000694143-pat00027
코어 s 및 d, 타일 k 및 l, 스위치 i 및 j의 값들을 다양하게 변경시켜가면서 상기 수학식에 의한 연산을 수행하면 복수개의 결과 값들이 얻어진다. 이 결과 값들은 상기 코어 s 및 d를 연결하는 홉 거리이다.
따라서, 상기 연산의 결과 값들 중 최소의 값을 선택하면, 최소 값이 얻어지기 위해서 코어 s 및 d, 타일 k 및 l, 스위치 i 및 j에 대입된 실제 코어들, 실제 타일들 및 실제 스위치들이 최적의 맵핑 구조를 가진다고 할 수 있다.
최적화 맵핑 방법(350)을 이용하여 최적화된 타일-스위치 맵핑 구조를 결정하기 위한 제 1 단계를 설명하면 다음과 같다.
제 1 단계는 임의의 타일 k에서 임의의 타일 l로의 데이터 커뮤니케이션 플로우(flow)와 임의의 스위치 i와 임의의 스위치 j 사이의 홉 거리(hop distance)를 곱하는 연산을 수행하는데 있어서, 상기 임의의 스위치 i및 j를 임의의 타일 k를 둘러싼 스위치들과 임의의 타일 l을 둘러싼 스위치들로 변경하여 상기 연산을 수행한 후, 결과 값들을 모두 합산한다.(410 단계)
제 1단계는 수학식 1의 가장 내부의 합산 연산(시그마 연산)을 수행하는 단계이다.
상기 수학식 1에서 데이터 커뮤니케이션 플로우는
Figure 112005000694143-pat00028
로 표시되고, 임의의 스위치 i와 임의의 스위치 j 사이의 홉 거리(hop distance)는
Figure 112005000694143-pat00029
로 표시된다.
Figure 112005000694143-pat00030
,
Figure 112005000694143-pat00031
은 각각 상기 타일 k를 둘러싼 스위치들과 상기 타일 l을 둘러싼 스위치들을 나타낸다.
타일 k 및 타일 l을 둘러싼 스위치들은 여러 개가 있을 수 있으며, 타일 k 및 타일 l을 둘러싼 스위치들 중에서 임의의 스위치인 i 및 j를 선택하여 데이터 커뮤니케이션 플로우와 홉 거리를 계산하고 두 값을 곱한다.
그리고, 임의의 스위치 i 및 j의 값을 타일 k 및 타일 l을 둘러싼 스위치들로 변경시키면서 각각의 데이터 커뮤니케이션 플로우와 홉 거리를 계산하고 두 값을 곱한다.
본 발명의 실시예에서 네트워크 온 칩 구조가 2차원 메쉬 구조인 경우, 타일 k 및 타일 l을 둘러싼 스위치들은 4개가 되므로 임의의 스위치 i및 j에 대하여 상기 제 1 단계의 연산을 수행하면 4개의 결과 값들이 발생되고, 4개의 결과 값들이 최종적으로 합산 연산(시그마 연산)에 의해서 더해진다.
만일 상기 임의의 코어 s가 맵핑된 타일 k가 상기 임의의 스위치 i에 연결되고, 상기 임의의 코어 d가 맵핑된 타일 l이 상기 임의의 스위치 j에 연결되면, 상기 데이터 커뮤니케이션 플로우는 1 의 값을 가지고, 그렇지 아니하면 상기 데이터 커뮤니케이션 플로우는 0의 값을 가진다.
코어 s가 연결된 상기 임의의 타일 k 에 스위치 i가 맵핑되고, 코어 d가 연결된 임의의 타일 l 에 스위치 j가 맵핑되는 경우를 최적의 타일-스위치 맵핑 구조로 가정하였다. 따라서, 데이터 커뮤티케이션 플로우는 최적의 타일-스위치 맵핑 구조에서만 1의 값을 가지고 나머지 구조에서는 0의 값을 가지는 것이다.
상기 데이터 커뮤니케이션 플로우는 다음 수학식 2로 표현될 수 있다.
Figure 112005000694143-pat00032
Figure 112005000694143-pat00033
Figure 112005000694143-pat00034
Figure 112005000694143-pat00035
, ,
= 1
여기서,
Figure 112005000694143-pat00036
는 상기 데이터 커뮤니케이션 플로우를 나타내고,
Figure 112005000694143-pat00037
는 코어 s가 맵핑된 타일 k에 스위치 i가 연결되는 경우를 나타내며,
Figure 112005000694143-pat00038
는 코어 d가 맵핑된 타일 l에 스위치 j가 연결되는 경우를 나타낸다.
여기서, 만일 상기 코어 s가 연결된 타일 k 가 상기 임의의 스위치 i에 연결되고, 코어 d가 연결된 타일 l이 상기 임의의 스위치 j에 연결되면
Figure 112005000694143-pat00039
Figure 112005000694143-pat00040
는 1을 가지며, 그렇지 아니하면 0이다.
따라서, 코어 s가 연결된 타일 k 가 상기 임의의 스위치 i에 연결되고, 코어 d가 연결된 타일 l이 상기 임의의 스위치 j에 연결되는 최적의 구조에서는 상기 데이터 커뮤니케이션 플로우는 1이 된다.
제 2 단계는 임의의 코어 s가 상기 타일 k에 맵핑되고 임의의 코어 d 가 상기 타일 l에 맵핑되는 상태에서, 상기 코어 s에서 상기 코어 d로의 커뮤니케이션 볼륨(volume)과 상기 제 1 단계의 결과 값을 곱하는 연산을 수행하는 데 있어서, 상기 타일 k 및 l을 임의의 모든 타일들로 변경하여 상기 곱하는 연산을 수행한 결과 값들을 모두 합산한다.(420 단계)
제 2단계는 제 1단계의 연산을 포함하는 두 번째 합산 연산(시그마 연산)을 수행하는 단계이다. 수학식 1에서 상기 코어 s가 상기 타일 k에 맵핑되고 상기 코어 d가 상기 타일 l에 맵핑된 상태에서 상기 코어 s와 상기 코어 d 사이의 커뮤니 케이션 볼륨(volume)은
Figure 112005000694143-pat00041
로 표시된다.
제 1 단계의 연산에서 임의의 타일 k 및 l의 값을 모든 타일들로 변경시켜 가면서 제 1 단계의 연산을 수행한다. 그러면 모든 타일들에 대하여, 그리고 모든 타일들을 둘러싼 모든 스위치들에 대하여 각각 홉 거리와 커뮤니케이션 데이터 플로우가 계산되고 두 값이 곱해진다.
곱해진 결과 값들 각각에 대하여 역시 임의의 타일 k 및 l의 값을 모든 타일들로 변경시켜 가면서 얻어진 커뮤니케이션 볼륨
Figure 112005000694143-pat00042
을 곱한다. 커뮤니케이션 볼륨은 임의의 코어 s에서 임의의 코어 d로의 데이터 통신의 양에 관련된 값이며 일종의 가중치 역할을 한다.
제 3 단계는 상기 제 2 단계의 연산을 임의의 모든 코어들에 대하여 수행한 후, 결과 값들을 모두 합산한다.(430 단계)
제 3 단계는 제 2단계의 연산을 포함하는 세 번째 합산 연산(시그마 연산)을 수행하는 단계이다.
수학식 1의 홉 거리와 데이터 커뮤니케이션 플로우의 계산 및 커뮤니케이션 볼륨의 계산에서 임의의 코어 s와 코어 d의 값을 모든 코어들로 변경시켜가면서 제 1 단계 및 제 2 단계의 연산을 수행한다.
그러면 모든 코어들에 대하여, 모든 타일들에 대하여, 그리고 모든 타일들을 둘러싼 모든 스위치들에 대하여 각각 홉 거리와 커뮤니케이션 데이터 플로우 및 커뮤니케이션 볼륨이 계산된다.
이러한 연산 과정을 거쳐서 얻어진 값들을 모두 합산하면, 임의의 스위치 i에서 임의의 스위치 j로의 홉 거리의 최소 값을 구할 수 있다.
이때, 임의의 스위치 i는 코어 s가 맵핑된 타일 k에 연결된 스위치이며 임의의 스위치 j는 코어 d가 맵핑된 타일 l에 연결된 스위치이다. 상기 홉 거리의 최소 값이 얻어진 경우에 대응되는 코어들과 타일들과 스위치들의 맵핑 구조가 에너지와 통신 지연 시간을 최소화시킬 수 있는 최적화된 타일-스위치 맵핑 구조를 형성한다.
최적화 맵핑 방법(350)은 상기 제 3단계의 결과를 임의의 모든 코어들에 대하여 수행된 상기 코어 s에서 상기 코어 d로의 커뮤니케이션 볼륨(volume)으로 나누어 상기 스위치 i에서 상기 스위치 j로의 평균 홉 거리가 최소인 상기 임의의 타일 k 및 l을 결정하는 제 4단계를 더 구비할 수 있다.
제 4단계는 제 3단계의 결과를 임의의 모든 코어들에 대하여 수행된 상기 커뮤니케이션 볼륨(volume)으로 나누어 평균 홉 거리가 최소인 타일 k 및 l을 결정하는 과정이다. 앞서 설명된 제 1 내지 제 4 단계의 연산과정을 수행하는데 있어서, 다음과 같은 제한 조건들이 있다.
먼저, 코어와 타일의 맵핑에 관한 제한 조건이다. 전체 코어들의 수는 전체 타일들의 수와 같거나 또는 적으며, 두 개 또는 그 이상의 코어들이 하나의 타일에 맵핑되지 아니한다. 즉, 하나의 코어는 하나의 타일에만 맵핑된다. 반대로, 하나의 타일에는 하나의 코어가 맵핑되거나 또는 코어가 전혀 맵핑되지 아니할 수 있다.
다음은 코어와 스위치들에 관한 제한 조건이다. 하나의 코어에 연결되는 스 위치들의 최대 개수는 1개 이상 4개 이하이다. 이는 하나의 타일에 연결되는 스위치들의 최대 개수는 1개 이상 4개 이하라는 의미와 동일하다. 타일과 스위치들의 관계는 다음 수학식 3으로 표현된다.
Figure 112005000694143-pat00043
여기서,
Figure 112005000694143-pat00044
하나의 코어에 연결될 수 있는 스위치들의 최대 수이며, 네트워크 온 칩(NOC)이 2차원 메쉬 구조일 경우 1
Figure 112005000694143-pat00045
4의 관계가 성립한다.
Figure 112005000694143-pat00046
는 만일 코어 s가 맵핑된 타일 k에 스위치 i가 맵핑되면 1을 가지며 그렇지 아니하면 0을 가지고,
Figure 112005000694143-pat00047
는 상기 타일 k를 둘러싼 스위치들을 나타낸다. 코어 s 가 타일 k 에 맵핑되면 수학식 3의 중간 항은 1에서 4 사이의 한 값이 된다. 따라서, 하나의 타일에 연결되는 스위치들의 개수는 1개 이상 4개 이하가 된다.
다음은 코어와 스위치들에 관한 또 다른 제한 조건이다. 하나의 스위치에 연결되는 코어들의 최대 개수는 1개 이상 4개 이하이다. 이는 하나의 스위치에 연결되는 타일들의 최대 개수는 1개 이상 4개 이하라는 의미와 동일하다.
상기 코어와 스위치들의 관계는 다음 수학식 4로 표현된다.
Figure 112005000694143-pat00048
여기서,
Figure 112005000694143-pat00049
하나의 스위치에 연결될 수 있는 코어들의 최대 개수이며, 네트 워크 온 칩(NOC)이 2차원 메쉬 구조일 경우 1
Figure 112005000694143-pat00050
4의 관계가 성립한다.
Figure 112005000694143-pat00051
는 만일 코어 s가 맵핑된 타일 k에 스위치 i가 연결되면 1을 가지며 그렇지 아니하면 0을 가지고, 는 스위치 i를 둘러싼 타일들을 나타낸다.
수학식 4에서, 중간 항은 0에서 4 사이의 하나의 값이 된다. 따라서, 하나의 스위치에 연결될 수 있는 코어들의 수는 0개 이상 4개 이하가 된다.
다음은 링크의 대역폭(bandwidth)에 관한 조건이다. 임의의 링크의 총 대역폭은 상기 임의의 링크에 동시에 밀집(congested)될 수 있는 최대 대역폭 보다 작거나 같아야 하고, 상기 임의의 링크의 최대 대역폭은 링크 용량(capacity)을 초과하지 아니한다.
상기 임의의 링크의 대역폭은 다음 수학식 5로 표현된다.
Figure 112005000694143-pat00052
Figure 112005000694143-pat00053
Figure 112005000694143-pat00054
, ,
여기서,
Figure 112005000694143-pat00055
는 스위치 i와 스위치 j 사이의 임의의 X 및 Y 루트(route) 사이의 링크의 대역폭을 의미하고,
Figure 112005000694143-pat00056
는 코어 s에서 코어 d로의 데이터 커뮤니케이션 플로우를 위하여 요구되는 대역폭을 의미하며,
Figure 112005000694143-pat00057
는 임의의 링크에 동시에 밀집(congested)될 수 있는 최대 대역폭을 의미하며, C 는 임의의 링크가 전송할 수 있는 데이터 최대 용량인 링크 용량(capacity)을 의미한다.
코어 s와 d를 연결하는 스위치 i와 j 사이의 임의의 링크는 데이터를 송수신 하기 위하여 충분한 대역폭을 가져야 한다. 임의의 X 및 Y 루트(route) 사이의 링 크의 대역폭
Figure 112005000694143-pat00058
은 임의의 링크에 동시에 밀집(congested)될 수 있는 최대 대역폭인
Figure 112005000694143-pat00059
보다 작아야 한다.
그리고, 임의의 링크에 동시에 밀집(congested)될 수 있는 최대 대역폭
Figure 112005000694143-pat00060
은 임의의 링크가 전송할 수 있는 데이터 최대 용량인 C보다 작아야 한다.
Figure 112005000694143-pat00061
는 스위치 i와 스위치 j 사이에 임의의 X 및 Y 루트(route)가 존재하면 1의 값을 가지고, 그렇지 아니하면 0의 값을 가진다.
이상에서 설명된 조건과 상기 제 1 내지 제 4 단계에 의해서 에너지 소비와 통신 지연 시간이 최소화되는 최적화된 타일-스위치 맵핑 구조가 결정될 수 있다.
한편, 본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
또한 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정 한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 최적화된 타일-스위치(tile -switch) 맵핑(mapping) 구조를 결정하는 방법 및 그 방법을 기록한 컴퓨터로 읽을 수 있는 기록 매체는 코어들과 타일들의 맵핑 관계가 결정된 상태에서, 코어들 사이의 홉 거리를 최소로 하는 타일-스위치 맵핑 구조 결정 방법을 제공함으로써 온 칩 버스에서의 에너지 소비를 감소시키고 통신 지연 시간을 최소화 할 수 있는 장점이 있다. 또한, 최적의 맵핑 구조를 제공함으로써 다른 맵핑 구조의 최적화 정도를 비교할 수 있는 기준을 제시하는 장점이 있다.

Claims (16)

  1. 온 칩 버스(On Chip Bus)에서, 임의의 코어(core)들과 타일들이 맵핑된 후 소정의 최적화 맵핑 방법을 이용하여 상기 타일들을 임의의 스위치(switch)들에 맵핑시켜 최적화된 타일-스위치(tile-switch) 맵핑(mapping) 구조를 결정하는 방법에 있어서,
    상기 최적화 맵핑 방법은,
    임의의 타일 k에서 임의의 타일 l로의 데이터 커뮤니케이션 플로우(flow)와 임의의 스위치 i와 임의의 스위치 j 사이의 홉 거리(hop distance)를 곱하는 연산을 수행하는데 있어서, 상기 임의의 스위치 i및 j를 임의의 타일 k를 둘러싼 스위치들과 임의의 타일 l을 둘러싼 스위치들로 변경하여 상기 연산을 수행한 후, 결과 값들을 모두 합산하는 제 1 단계 ;
    임의의 코어 s가 상기 타일 k에 맵핑되고 임의의 코어 d 가 상기 타일 l에 맵핑되는 상태에서, 상기 코어 s에서 상기 코어 d로의 커뮤니케이션 볼륨(volume)과 상기 제 1 단계의 결과 값을 곱하는 연산을 수행하는 데 있어서, 상기 타일 k 및 l을 임의의 모든 타일들로 변경하여 상기 곱하는 연산을 수행한 결과 값들을 모두 합산하는 제 2 단계 ; 및
    상기 제 2 단계의 연산을 임의의 모든 코어들에 대하여 수행한 후, 결과 값들을 모두 합산하는 제 3 단계를 수행하여 상기 스위치 i에서 상기 스위치 j로의 홉 거리가 최소인 상기 임의의 타일 k 및 l을 결정하는 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법.
  2. 제 1항에 있어서,
    상기 제 3단계의 결과를 임의의 모든 코어들에 대하여 수행된 상기 코어 s에서 상기 코어 d로의 커뮤니케이션 볼륨(volume)으로 나누어 상기 스위치 i에서 상기 스위치 j로의 평균 홉 거리가 최소인 상기 임의의 타일 k 및 l을 결정하는 제 4 단계를 더 구비하는 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법.
  3. 제 2항에 있어서, 제 1 내지 제 4 단계는,
    상기 임의의 코어 s가 상기 임의의 타일 k에 맵핑되고, 상기 다른 임의의 코어 d가 상기 임의의 타일 l에 맵핑된 상태에서,
    상기 임의의 스위치 i는 상기 임의의 타일 k를 둘러싸는 스위치들 중에 하나로서 상기 임의의 타일 k에 연결되고 상기 임의의 스위치 j는 상기 임의의 타일 l을 둘러싸는 스위치들 중에 하나로서 상기 임의의 타일 l에 연결된다고 가정하는 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법.
  4. 제 3항에 있어서, 상기 최적화 맵핑 방법은
    다음 수학식으로 표현되며,
    Figure 112005000694143-pat00062
    여기서,
    Figure 112005000694143-pat00063
    는 상기 데이터 커뮤니케이션 플로우이고,
    Figure 112005000694143-pat00064
    는 상기 임의의 스위치 i와 상기 임의의 스위치 j 사이의 홉 거리(hop distance)를 나타내며,
    Figure 112005000694143-pat00065
    ,
    Figure 112005000694143-pat00066
    은 각각 상기 타일 k를 둘러싼 스위치들과 상기 타일 l을 둘러싼 스위치들을 나타내며,
    Figure 112005000694143-pat00067
    은 상기 코어 s가 상기 타일 k에 맵핑되고 상기 코어 d가 상기 타일 l에 맵핑된 상태에서 상기 코어 s와 상기 코어 d 사이의 커뮤니케이션 볼륨 (volume)을 나타내는 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법.
  5. 제 3항에 있어서,
    전체 코어들의 수는 전체 타일들의 수와 같거나 또는 적으며, 두 개 또는 그 이상의 코어들이 하나의 타일에 맵핑되지 아니하는 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법.
  6. 제 3항에 있어서, 상기 스위치들과, 상기 타일(tile)들은 복수개의 링크들에 의해서 연결되는 네트워크 온 칩 구조(Network On Chip Architecture)를 형성하며,
    상기 네트워크 온 칩 구조는,
    2차원 매쉬(2-dimension mesh) 구조인 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법.
  7. 제 3항에 있어서,
    하나의 코어에 연결되는 스위치들의 최대 개수는 1개 이상 4개 이하인 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법.
  8. 제 7항에 있어서, 상기 코어와 스위치들의 관계는,
    다음 수학식으로 표현되며,
    Figure 112005000694143-pat00068
    여기서,
    Figure 112005000694143-pat00069
    하나의 코어에 연결될 수 있는 최대 스위치들의 개수이고,
    Figure 112005000694143-pat00070
    는 만일 코어 s가 맵핑된 타일 k에 스위치 i가 맵핑되면 1을 가지며 그렇지 아니하면 0을 가지고,
    Figure 112005000694143-pat00071
    는 상기 타일 k를 둘러싼 스위치들을 나타내는 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법.
  9. 제 3항에 있어서,
    하나의 스위치에 연결되는 코어들의 최대 개수는 1개 이상 4개 이하인 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법.
  10. 제 9항에 있어서, 상기 코어와 스위치들의 관계는,
    다음 수학식으로 표현되며,
    Figure 112005000694143-pat00072
    여기서,
    Figure 112005000694143-pat00073
    하나의 스위치에 연결될 수 있는 코어들의 최대 개수이고,
    Figure 112005000694143-pat00074
    는 만일 코어 s가 맵핑된 타일 k에 스위치 i가 연결되면 1을 가지며 그렇지 아니하면 0을 가지고, 는 스위치 i를 둘러싼 타일들을 나타내는 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법.
  11. 제 3항에 있어서,
    만일 상기 임의의 코어 s가 맵핑된 타일 k가 상기 임의의 스위치 i에 연결되고, 상기 임의의 코어 d가 맵핑된 타일 l이 상기 임의의 스위치 j에 연결되면, 상기 데이터 커뮤니케이션 플로우는 1 이고,
    그렇지 아니하면 상기 데이터 커뮤니케이션 플로우는 0 인 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법.
  12. 제 11항에 있어서, 상기 데이터 커뮤니케이션 플로우는,
    다음 수학식들로 표현되며,
    Figure 112005000694143-pat00075
    Figure 112005000694143-pat00076
    ,
    Figure 112005000694143-pat00077
    Figure 112005000694143-pat00078
    ,
    = 1
    여기서,
    Figure 112005000694143-pat00079
    는 상기 데이터 커뮤니케이션 플로우를 나타내고,
    Figure 112005000694143-pat00080
    는 코어 s가 맵핑된 타일 k에 스위치 i가 연결되는 경우를 나타내며,
    Figure 112005000694143-pat00081
    는 코어 d가 맵핑된 타일 l에 스위치 j가 연결되는 경우를 나타내는 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법.
  13. 제 3항에 있어서,
    임의의 링크의 총 대역폭(bandwidth)은 상기 임의의 링크에 동시에 밀집 (congested)될 수 있는 최대 대역폭 보다 작거나 같아야 하고,
    상기 임의의 링크의 최대 대역폭은 링크 용량(capacity)을 초과하지 아니하는 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법.
  14. 제 13항에 있어서, 상기 임의의 링크의 대역폭은,
    다음 수학식으로 표현되며,
    Figure 112005000694143-pat00082
    ,
    Figure 112005000694143-pat00083
    ,
    Figure 112005000694143-pat00084
    여기서,
    Figure 112005000694143-pat00085
    는 스위치 i와 스위치 j사이의 임의의 X 및 Y 루트(route) 사이의 링크의 대역폭을 의미하고,
    Figure 112005000694143-pat00086
    는 코어 s에서 코어 d로의 데이터 커뮤니케이션 플로우를 위하여 요구되는 대역폭을 의미하며,
    Figure 112005000694143-pat00087
    는 임의의 링크에 동시에 밀집(congested)될 수 있는 최대 대역폭을 의미하며, C 는 임의의 링크가 전송할 수 있는 데이터 최대 용량인 링크 용량(capacity)을 의미하는 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법.
  15. 온 칩 버스(On Chip Bus)에서, 임의의 코어(core)들과 타일들이 맵핑된 후 소정의 최적화 맵핑 방법을 이용하여 상기 타일들을 임의의 스위치(switch)들에 맵핑시켜 최적화된 코어-스위치(core-switch) 맵핑(mapping) 구조를 결정하는 방법을 기록한 컴퓨터로 읽을 수 있는 기록매체에 있어서,
    임의의 타일 k에서 임의의 타일 l로의 데이터 커뮤니케이션 플로우(flow)와 임의의 스위치 i와 임의의 스위치 j 사이의 홉 거리(hop distance)를 곱하는 연산을 수행하는데 있어서, 상기 임의의 스위치 i및 j를 임의의 타일 k를 둘러싼 스위치들과 임의의 타일 l을 둘러싼 스위치들로 변경하여 상기 연산을 수행한 후, 결과 값들을 모두 합산하는 제 1 단계 ;
    임의의 코어 s가 상기 타일 k에 맵핑되고 임의의 코어 d 가 상기 타일 l에 맵핑되는 상태에서, 상기 코어 s에서 상기 코어 d로의 커뮤니케이션 볼륨(volume)과 상기 제 1 단계의 결과 값을 곱하는 연산을 수행하는 데 있어서, 상기 타일 k 및 l을 임의의 모든 타일들로 변경하여 상기 곱하는 연산을 수행한 결과 값들을 모두 합산하는 제 2 단계 ; 및
    상기 제 2 단계의 연산을 임의의 모든 코어들에 대하여 수행한 후, 결과 값들을 모두 합산하는 제 3 단계를 수행하여 상기 스위치 i에서 상기 스위치 j로의 홉 거리가 최소인 상기 임의의 타일 k 및 l을 결정하는 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  16. 제 15항에 있어서, 상기 기록 매체는
    상기 제 3단계의 결과를 임의의 모든 코어들에 대하여 수행된 상기 코어 s에서 상기 코어 d로의 커뮤니케이션 볼륨(volume)으로 나누어 상기 스위치 i에서 상기 스위치 j로의 평균 홉 거리가 최소인 상기 임의의 타일 k 및 l을 결정하는 제 4 단계를 더 구비하는 것을 특징으로 하는 타일-스위치(tile-switch) 맵핑(mapping) 구조 결정 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020050001124A 2005-01-06 2005-01-06 온 칩 버스(On Chip Bus)에서 최적화된타일-스위치(tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체 KR100674934B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050001124A KR100674934B1 (ko) 2005-01-06 2005-01-06 온 칩 버스(On Chip Bus)에서 최적화된타일-스위치(tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체
US11/249,082 US7626983B2 (en) 2005-01-06 2005-10-12 Method of creating optimized tile-switch mapping architecture in on-chip bus and computer-readable medium for recording the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050001124A KR100674934B1 (ko) 2005-01-06 2005-01-06 온 칩 버스(On Chip Bus)에서 최적화된타일-스위치(tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체

Publications (2)

Publication Number Publication Date
KR20060080712A KR20060080712A (ko) 2006-07-11
KR100674934B1 true KR100674934B1 (ko) 2007-01-26

Family

ID=36642155

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050001124A KR100674934B1 (ko) 2005-01-06 2005-01-06 온 칩 버스(On Chip Bus)에서 최적화된타일-스위치(tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체

Country Status (2)

Country Link
US (1) US7626983B2 (ko)
KR (1) KR100674934B1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100624641B1 (ko) * 2004-10-07 2006-09-15 삼성전자주식회사 기능 블록 코어-스위치 포인트 다중 매핑 온 칩 버스 구조및 이를 이용한 반도체 장치
US7802073B1 (en) * 2006-03-29 2010-09-21 Oracle America, Inc. Virtual core management
US20080005402A1 (en) * 2006-04-25 2008-01-03 Samsung Electronics Co., Ltd. Gals-based network-on-chip and data transfer method thereof
US7502378B2 (en) * 2006-11-29 2009-03-10 Nec Laboratories America, Inc. Flexible wrapper architecture for tiled networks on a chip
US7797512B1 (en) 2007-07-23 2010-09-14 Oracle America, Inc. Virtual core management
US8151088B1 (en) 2008-07-08 2012-04-03 Tilera Corporation Configuring routing in mesh networks
US8050256B1 (en) 2008-07-08 2011-11-01 Tilera Corporation Configuring routing in mesh networks
US8045546B1 (en) 2008-07-08 2011-10-25 Tilera Corporation Configuring routing in mesh networks
CN102567277A (zh) * 2010-12-30 2012-07-11 世意法(北京)半导体研发有限责任公司 用于通过片上网络系统来降低功耗的方法
US9619418B2 (en) * 2012-02-17 2017-04-11 Netronome Systems, Inc. Local event ring in an island-based network flow processor
US9626306B2 (en) * 2012-02-17 2017-04-18 Netronome Systems, Inc. Global event chain in an island-based network flow processor
WO2014031110A1 (en) * 2012-08-22 2014-02-27 Empire Technology Development Llc Resource allocation in multi-core architectures
US9294354B2 (en) * 2013-10-24 2016-03-22 Netspeed Systems Using multiple traffic profiles to design a network on chip
US10050843B2 (en) * 2015-02-18 2018-08-14 Netspeed Systems Generation of network-on-chip layout based on user specified topological constraints
US9864728B2 (en) * 2015-05-29 2018-01-09 Netspeed Systems, Inc. Automatic generation of physically aware aggregation/distribution networks

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018782A (en) 1997-07-14 2000-01-25 Advanced Micro Devices, Inc. Flexible buffering scheme for inter-module on-chip communications
JP2000099562A (ja) 1998-09-25 2000-04-07 Nec Ic Microcomput Syst Ltd 集積回路のレイアウト設計支援装置およびレイアウト設計支援方法
KR20010087374A (ko) * 1998-10-19 2001-09-15 데이비드 씨. 채프만 집적회로를 배선하기 위한 접근방법
KR20020058911A (ko) * 2000-12-30 2002-07-12 박종섭 표준셀을 이용한 그루핑을 통하여 효율적으로 칩을설계하는 방법
JP2003076729A (ja) 2001-09-04 2003-03-14 Nec Microsystems Ltd 半導体集積回路の設計方法
KR20040014359A (ko) * 2002-08-09 2004-02-14 마쯔시다덴기산교 가부시키가이샤 반도체 집적회로 장치의 설계 방법 및 설계 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974487A (en) * 1997-07-14 1999-10-26 Advanced Micro Devices, Inc. Data transfer network on a chip utilizing a mesh of rings topology
US6331977B1 (en) * 1998-08-28 2001-12-18 Sharp Electronics Corporation System on chip (SOC) four-way switch crossbar system and method
US7145903B2 (en) * 2001-09-06 2006-12-05 Meshnetworks, Inc. Multi-master bus architecture for system-on-chip designs
US7353362B2 (en) * 2003-07-25 2008-04-01 International Business Machines Corporation Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
KR100674933B1 (ko) * 2005-01-06 2007-01-26 삼성전자주식회사 온 칩 버스(On Chip Bus)에서 최적화된코어-타일-스위치(core-tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018782A (en) 1997-07-14 2000-01-25 Advanced Micro Devices, Inc. Flexible buffering scheme for inter-module on-chip communications
JP2000099562A (ja) 1998-09-25 2000-04-07 Nec Ic Microcomput Syst Ltd 集積回路のレイアウト設計支援装置およびレイアウト設計支援方法
KR20010087374A (ko) * 1998-10-19 2001-09-15 데이비드 씨. 채프만 집적회로를 배선하기 위한 접근방법
KR20020058911A (ko) * 2000-12-30 2002-07-12 박종섭 표준셀을 이용한 그루핑을 통하여 효율적으로 칩을설계하는 방법
JP2003076729A (ja) 2001-09-04 2003-03-14 Nec Microsystems Ltd 半導体集積回路の設計方法
KR20040014359A (ko) * 2002-08-09 2004-02-14 마쯔시다덴기산교 가부시키가이샤 반도체 집적회로 장치의 설계 방법 및 설계 장치

Also Published As

Publication number Publication date
KR20060080712A (ko) 2006-07-11
US7626983B2 (en) 2009-12-01
US20060150138A1 (en) 2006-07-06

Similar Documents

Publication Publication Date Title
KR100674933B1 (ko) 온 칩 버스(On Chip Bus)에서 최적화된코어-타일-스위치(core-tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체
KR100674934B1 (ko) 온 칩 버스(On Chip Bus)에서 최적화된타일-스위치(tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체
US20210326193A1 (en) Processing System With Interspersed Processors DMA-FIFO
US11237880B1 (en) Dataflow all-reduce for reconfigurable processor systems
US7051132B2 (en) Bus system and path decision method therefor
JP3958336B2 (ja) インターフェースの設計方法
CN103227755B (zh) 使用推测技术的处理器到基于消息的网络的接口
CN103052114A (zh) 数据缓存放置系统及数据缓存的方法
Tsai et al. Design of low latency on-chip communication based on hybrid NoC architecture
US20050246667A1 (en) Bus structure, database and method of designing interface
Sun Simulation and performance evaluation for networks on chip
Saastamoinen et al. An IP-based on-chip packet-switched network
Kanduri et al. Predictable application mapping for manycore real-time and cyber-physical systems
Killian et al. Brief announcement: The overlay network content distribution problem
Regidor et al. NoC generation of an optimal memory distribution for multimedia systems
CN115271080A (zh) 量子计算任务执行方法、装置及量子计算机操作系统

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141231

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20191226

Year of fee payment: 14