KR101830762B1 - 전체적 대기 시간이 최소화되고 인터커넥트 비용이 감소하도록 노드들을 상호연결하는 soc ip 코어 자동 연결 방법 - Google Patents

전체적 대기 시간이 최소화되고 인터커넥트 비용이 감소하도록 노드들을 상호연결하는 soc ip 코어 자동 연결 방법 Download PDF

Info

Publication number
KR101830762B1
KR101830762B1 KR1020157023266A KR20157023266A KR101830762B1 KR 101830762 B1 KR101830762 B1 KR 101830762B1 KR 1020157023266 A KR1020157023266 A KR 1020157023266A KR 20157023266 A KR20157023266 A KR 20157023266A KR 101830762 B1 KR101830762 B1 KR 101830762B1
Authority
KR
South Korea
Prior art keywords
host
hosts
acceptance function
noc
probabilistic
Prior art date
Application number
KR1020157023266A
Other languages
English (en)
Other versions
KR20150122150A (ko
Inventor
살리에쉬 쿠말
에릭 노리쥬
Original Assignee
넷스피드 시스템즈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 넷스피드 시스템즈 filed Critical 넷스피드 시스템즈
Publication of KR20150122150A publication Critical patent/KR20150122150A/ko
Application granted granted Critical
Publication of KR101830762B1 publication Critical patent/KR101830762B1/ko

Links

Images

Classifications

    • G06F17/5031
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/06Structured ASICs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation
    • G06F2217/64
    • G06F2217/84

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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 명세서에 기술된 시스템 및 방법은 연결성, 시스템 트래픽 흐름에 대한 대역폭 및 대기 시간 요건, 그리고 시스템 인터커넥트 대기 시간 및 인터커넥트 비용과 같은 특정 성능 최적화 메트릭을 바탕으로 한, NoC(Network on Chip) 토폴로지 상에서 자동으로 그리고 동적으로 다양한 호스트의 위치를 결정하기 위한 NoC 솔루션을 제공한다. 본 발명의 실시 예에 따르면, 이동시키고자 하는 호스트를 선택하고, 그것들에 대해 Noc에서 이용 가능한 새로운 위치를 시스템 트래픽 특성에 기반하여, 그리고 상기 이동이 수행될 것인지 수행되지 않을 것인지 확률적 함수를 이용하여 결정한다. 상기 과정은 새로운 집합의 호스트들에 대하여 특정 최적화 목표가 충족될 때까지 또는 반복 횟수가 초과될 때까지 반복된다.

Description

전체적 대기 시간이 최소화되고 인터커넥트 비용이 감소하도록 노드들을 상호연결하는 SOC IP 코어 자동 연결 방법{AUTOMATICALLY CONNECTING SOCS IP CORES TO INTERCONNECT NODES TO MINIMIZE GLOBAL LATENCY AND REDUCE INTERCONNECT COST}
본 명세서에 기재된 방법 및 실시 예들은 인터커넥트 구조(interconnect architecture)에 관한 것이며, 구체적으로, SoC(System-on-Chip) IP(Intellectual Property) 코어들을 NoC(Network on Chip) 시스템 상의 NoC 노드들에 자동으로 연결하는 인터커넥트 구조에 관한 것이다.
집적화 레벨 및 시스템 복잡도의 증가와 트랜지스터의 기하학 구조 수축에 기인하여 하나의 칩에 대한 구성요소의 수는 급속히 증가하고 있다. 복잡한 SoC들은 다양한 가지 구성요소들, 예를 들어 프로세서 코어, DSP, 하드웨어 가속기, 메모리, 및 I/O를 포함할 수 있는 반면에, CMP(Chip Multi-Processor)들은 다수의 동종의 프로세서 코어들, 메모리, 및 I/O 서브시스템들을 포함할 수 있다. SoC 및 CMP 시스템 모두, 온칩(on-chip) 인터커넥트가 다양한 구성요소 사이의 고성능 통신을 제공하는 역할을 한다. 인터커넥트에 기반을 둔 종래의 버스와 크로스바의 확장 한계에 기인하여, NoC는 칩 상의 다수의 구성요소들을 상호연결하는 패러다임으로서 등장했다. NoC는 세계적으로 공용되는 통신 인프라로, 점대점(point-to-point)의 물리 링크(physical link)를 사용하여 서로 상호연결된 다양한 라우팅 노드들로 구성된다.
메세지들은 소스에 의해 주입되고 소스 노드(source node)로부터 다수의 중간 노드들과 물리 링크들을 거쳐 목적지까지로 전송된다. 그리고 나서 목적지 노드는 메시지를 내보내어 목적지로 공급한다. 본 명세서의 나머지 부분에서, '구성요소', '블럭', '호스트', 또는 '코어'라는 용어들은 NoC를 이용하여 상호연결되는 다양한 시스템 구성요소들을 나타내도록 호환성 있게 사용될 것이다. '라우터' 및 '노드'라는 용어들 또한 호환성 있게 사용될 것이다. 일반성을 잃지 않고, 다수의 상호연결된 구성요소들을 포함하는 시스템은 '멀티-코어 시스템'으로 지칭될 것이다.
시스템 네트워크를 만들기 위해 라우터들이 서로 연결될 수 있는 몇몇의 토폴로지들이 있다. 양방향 고리(도 1a 참조), 2-D(이차원) 망(mesh)(도 1b 참조), 및 2-D 타우루스(Taurus)(도 1c 참조)는 관련 기술의 토폴로지에 대한 예시들이다. 망 및 타우루스는 2.5-D(2.5차원) 또는 3-D(3차원) 조직으로 또한 확장될 수 있다. 도 1d는 3개 층의 3x3 2D 망 NoC가 서로 겹치게 보이는 3D 망 NoC를 나타낸다. NoC 라우터들은 추가적인 포트들을 두 개까지 가질 수 있으며, 하나는 위층의 라우터에 연결되고, 다른 하나는 아래층의 라우터에 연결된다. 예시에서 중간층의 라우터(111)는 두 포트를 모두 가지며, 하나는 상부 층의 라우터에 연결되고 다른 하나는 하부 층의 라우터에 연결된다. 라우터(110,112)들은 하부 및 상부 망 층에 각각 있어서, 그것들은 각각 연결된 상향 포트(113)와 하향 포트(114)만을 갖는다.
패킷은 다양한 구성요소들 사이의 상호 통신을 위한 메시지 전달 유닛이다. 라우팅(routing)은 네트워크상에서 패킷들이 소스에서 목적지까지 전달되는 일련의 라우터들 및 물리 링크들로 구성된 경로를 식별하는 과정을 포함한다. 구성요소들은 하나 또는 다수의 라우터의 하나 또는 다수의 포트로 연결되며, 각각의 포트는 고유의 ID를 갖는다. 패킷들은 패킷을 목적지 구성요소로 전송하기 위해 중간 라우터들에서 사용할 포트 ID 및 목적지의 라우터를 운반한다.
라우팅 기술의 예시들은 모든 패킷에 대하여 A에서 B까지 같은 경로를 선택하는 결정 라우팅(deterministic routing)을 포함한다. 이 라우팅 방법은 네트워크의 상태로부터 독립적이고, 기본적인 네트워크에 존재하는 다양한 경로들 간 부하 균형을 맞추지 않는다. 그러나, 이러한 결정 라우팅은 하드웨어에서 구현될 수 있으며, 패킷 순서를 유지하고, 네트워크 레벨의 교착 상태(deadlock)가 없을 수 있다. 가장 짧은 경로의 라우팅은 대기 시간(latency)을 최소화하며, 그러한 라우팅은 소스에서 목적지까지의 홉의 수를 감소시킨다. 이러한 이유로, 가장 짧은 경로는 두 구성요소 사이의 통신 경로 중 최소 전력이 소모되는 경로일 수도 있다. 차원-순서(dimension-order) 라우팅은 2-D, 2.5-D, 및 3-D 망 네트워크에서 결정 최단 경로 라우팅(deterministic shortest path routing)의 한 형태이다. 이 라우팅 스키마(scheme)에서, 메시지들은 최종 목적지에 도달할 때까지 각 좌표들을 따라 특정한 순서로 전송된다. 예를 들어 3-D 망 네트워크에서, 한 메시지는 그것이 목적지 라우터의 X-좌표와 동일한 X-좌표를 갖는 라우터에 도달할 때까지 우선 X 차원(X dimension)을 따라 전송될 수 있다. 그 다음, 메시지는 회전하여 Y 차원(Y dimension)을 따라 전송되고, 최종적으로 회전하여 Z 차원(Z dimension)을 따라 메시지가 최종 목적지 라우터에 도달할 때까지 이동한다. 차원 순서 라우팅은 최소한의 회전 및 최단 경로를 갖는 라우팅일 수 있다.
도 2a는 그림으로 설명된 2차원 망에서의 XY 라우팅의 예시이다. 더 구체적으로, 도 2a는 노드 '34'에서 '노드00'까지의 라우팅을 나타낸다. 도 2a에 나타난 예시에서, 각 구성요소는 단지 하나의 라우터의 하나의 포트에만 연결되어 있다. 패킷은 먼저 목적지 노드와 동일한 x-좌표를 갖는 노드 '04'에 도달할 때까지 x축을 따라 전송된다. 그 다음, 패킷은 목적지 노드에 도착할 때까지 y축을 따라 전송된다.
하나 이상의 라우터 또는 하나 이상의 링크가 존재하지 않는 다른 종류의 망 토폴로지에서는, 특정한 소스와 목적지 노드 사이에서는 차원 순서 라우팅이 실현 불가능하며 대안이 되는 경로들이 선택될 수 있다. 대안이 되는 경로들은 가장 최단이거나 최소한의 회전을 갖는 것은 아닐 수 있다.
소스 라우팅 및 테이블 기반 라우팅은 NoC에서 사용되는 다른 라우팅 옵션들이다. 적용 가능한 라우팅은 네트워크의 상태를 기반으로 동적으로 네트워크 상의 두 지점 간 경로를 바꿀 수 있다. 이러한 형태의 라우팅은 분석하고 시행하기 복잡할 수 있다.
NoC 인터커넥트는 다수의 물리적 네트워크들을 포함할 수 있다. 각각의 물리적 네트워크상에서 다수의 가상 네트워크들이 존재할 수 있으며, 서로 다른 가상 네트워크상에서는 서로 다른 종류의 메시지가 전송될 수 있다. 이 경우 각각의 물리 링크 또는 채널에서 다수의 가상 채널들이 존재하며, 가상 채널 각각은 양 끝 점 모두에서 버퍼를 제공한다. 주어지는 어떠한 클럭 사이클에서도, 단지 하나의 가상 채널만이 물리적 채널로 데이터를 전송할 수 있다.
NoC 인터커넥트는 큰 메시지나 패킷이 플릿(flit)이라고 알려진(흐름 제어 디지트라고도 불리는) 작은 부분들로 나누어지는 웜홀 라우팅을 이용할 수 있다. 첫번째 플릿은 헤더 플릿으로, 페이부하 데이터에 따른 해당 패킷의 경로 및 키 메시지 레벨에 대한 정보를 포함하고 메시지와 관련된 차후의 모든 플릿들에 대하여 라우팅 동작을 설정한다. 선택적으로, 데이터의 나머지 페이부하를 포함하는 하나 이상의 바디 플릿들이 헤더 플릿에 수반될 수 있다. 최종 플릿은 꼬리(tail) 플릿으로, 마지막 페이부하를 포함할 뿐만 아니라 메시지에 대한 연결을 끝내기 위한 약간의 부기(bookkeeping)를 수행한다. 웜홀 흐름 제어에서, 가상의 채널들이 종종 실행된다.
물리적 채널들은 VCs(virtual channels, 가상 채널)로 불리는 다수의 독립적인 논리 채널로 시분할된다. VCs는 패킷들을 전송하는 다수의 독립적인 경로들을 제공하지만, 그것들은 물리적 채널 상에서 시간-다중화된다. 가상 채널은 채널 상에서 패킷의 플릿 처리 조정에 필요한 상태 정보를 보유한다. 최소한, 이 상태 정보는 현재 노드의 경로 상 다음 홉으로의 출력 채널과 가상 채널의 상태(유휴, 자원 대기, 또는 활성)를 식별한다. 또한 가상 채널은 현재 노드에 임시 저장된 패킷의 플릿에 대한 포인터와 다음 노드에서 사용가능한 다수의 플릿 버퍼들을 포함한다.
"웜홀"이란 용어는 메시지들이 채널 상에서 전송되는 경로에 사용되며, 다음 라우터에서의 출력 포트는 매우 짧아서 수신된 데이터는 전체 메시지가 도착하기 전에 헤드 플릿에서 해석될 수 있다. 이는 라우터로 하여금 헤드 플릿이 도착하자마자 빠르게 라우팅을 준비하고, 그 다음 더 이상 나머지 통신에는 관여하지 않도록 한다. 메시지가 플릿에서 플릿으로 전송됨으로 인해, 메시지는 다른 라우터에서 메시지의 경로를 따라 몇몇의 플릿 버퍼들을 사용하며, 벌레 같은(worm-like) 이미지를 생성한다.
다양한 종점들 간의 통신, 및 다양한 메시지들에게 사용되기 위한 라우팅과 물리적 네트워크들에 기반하여, NoC 인터커넥트의 서로 다른 물리적 채널들은 서로 다른 레벨의 부하와 혼잡을 경험하게 된다. NoC 인터커넥트의 다양한 물리적 채널들의 용량은 채널의 폭(물리적 배선의 수) 및 구동 중일 때 클럭 주파수로 결정된다. NoC의 다양한 채널들은 서로 다른 클럭 주파수에서 구동되며, 다양한 채널들은 각 채널에서 대역폭 요건에 따라 서로 다른 폭를 갖는다. 채널에서 대역폭 요건은 채널을 가로지르는 흐름(flow) 및 그것들의 대역폭 값에 의해 결정된다. 다양한 NoC 채널들을 가로지르는 흐름들은 다양한 흐름들이 거치는 경로들로부터 영향을 받는다. 망 또는 타우루스 NoC에는, 어떤 한 쌍의 소스 노드 및 목적지 노드 사이에도 길이 또는 홉 개수가 동일한 전송 경로가 다양한 개 존재할 수 있다. 예를 들어 도 2b를 참조하면, 노드 34 및 00 사이에는 기준 XY 경로뿐만 아니라, YX 경로(203) 또는 소스에서 목적지까지 한 번 이상 회전하는 다회전 경로(202)와 같은 이용가능한 경로들이 추가로 존재한다.
다양한 트래픽 저속(slow)들에 대해 정적으로 할당된 경로들을 갖는 NoC에서, 다양한 채널들에 대한 부하는 다양한 흐름들에 대한 경로를 지능적으로 선택함으로써 조절될 수 있다. 많은 수의 트래픽 흐름와 상당한 경로 다양성이 존재할 때, 모든 NoC 채널들의 부하가 거의 균등하게 분배되어 단일 지점에서의 병목 현상이 방지되도록 경로가 선택될 수 있다. 한 번 라우팅될 때, NoC 채널 폭은 채널 상에서 흐름에 대역폭 요건에 근거하여 결정된다. 불행하게도, 채널 폭은 타이밍 또는 배선 혼잡(wiring congestion) 같은 물리적인 하드웨어 디자인 제약 때문에 임의로 커질 수 없다. 채널 폭에는 최대 한도가 존재할 수 있으며, 그래서 어떠한 단일 NoC 채널에도 최대 대역폭에 한계를 두게 된다.
덧붙여, 더 넓은 물리적 채널들이라도 메시지가 짧은 경우 더 큰 대역폭을 얻는 데 도움이 되지 않는다. 예를 들어, 패킷이 64 비트 폭을 갖는 단일 플릿 패킷이라면, 채널이 아무리 넓더라도, 그 채널을 통과하는 패킷들이 모두 유사하다면 그 채널은 단지 한 사이클당 64 비트만을 운반할 수 있다. 이와 같이, 채널 폭은 NoC에서 메시지 크기에 의해서도 제한된다. 이러한 NoC 채널 폭에 대한 최대 한도들에 기인하여, 채널은 경로들 간에 균형을 유지함에도 불구하고 충분한 대역폭을 가질 수 없다.
상기 대역폭에 대한 문제들을 해결하기 위해, 다수의 병렬 물리적 NoC들이 사용될 수 있다. 각 Noc들은 하나의 층으로 불릴 수 있으며, 다층의 NoC 구조를 만들어낸다. 호스트는 한 NoC 층에 메시지를 주입하고, 주입된 메시지는 그 NoC 층 상의 목적지로 라우팅되며, 그 NoC 층에서 상기 메시지는 호스트로 전달된다. 이와 같이, 각 층은 거의 서로 독립적으로 구동되며, 층 간의 상호 작용은 주입 또는 추출 시 일어난다. 도 3a는 2개 층의 NoC를 나타낸다. 여기서 두 NoC 층들은 좌우로 서로 인접하게 도시되어 있으며, 호스트는 좌우 도면 모두에 복제된 NoC에 연결된다. 이 예시에서, 호스트는 두 라우터에 연결되어있으며, 라우터는 첫 번째 층에서는 R1으로, 그리고 두 번째 층에서는 R2로 나타나있다. 이 예시에서, 다층의 NoC는 3D NoC와는 다르며, 즉 다수의 층들은 하나의 실리콘 다이 상에 있으며 동일한 실리콘 다이 상에서 호스트 간 통신의 높은 대역폭 요건을 충족시키기 위해 사용된다. 메시지는 한 층에서 다른 층으로 이동하지 않는다. 명확성을 목적으로, 본 명세서에서는 다층 NoC를, 서로 수직으로 배열하여 도시하는 3D NoC와 구별하기 위해 좌우 수평으로 도시할 것이다.
도 3b를 참조하면, 각 층의 라우터 R1 및 R2에 연결된 호스트가 도시되어 있다. 각 라우터는 지향성(directional) 포트(301)를 이용하여 자신이 속한 층의 다른 라우터들에 연결되어 있으며, 주입 및 추출 포트(302)를 이용하여 호스트에 연결되어 있다. 브릿지-로직(bridge-logic)(303)은 호스트와 두 NoC 층 사이에 존재하여 메시지를 송출할 NoC 층을 결정할 수 있으며, 메시지를 호스트로부터 결정된 층으로 전송하고, 또한 두 NoC 층들로부터 수신되는 메시지들 사이에서 중재 및 다중화를 수행하고 그것들을 호스트로 전달한다.
다층 NoC에서, 요구되는 층의 수는 시스템상의 모든 트래픽 흐름들의 대역폭 요건의 합, 다양한 흐름들에 의해 사용되는 경로들, 메시지 크기 분포, 최대 채널 폭 등과 같은 다수의 요인들에 의존한다. NoC 인터커넥트에서 NoC 층의 수가 설계에 의해 결정될 때, 서로 다른 메시지들과 트래픽 흐름들은 서로 다른 NoC 층을 통해 전송될 수 있다. 덧붙여, 서로 다른 층들은 라우터, 채널의 수 및 연결성에 있어서 서로 다른 토폴로지를 갖도록 NoC 인터커넥트를 설계할 수 있다. 서로 다른 층의 채널들은 각 채널을 통과하는 흐름 및 그들의 대역폭 요건에 근거하여 서로 다른 폭을 가질 수 있다.
NoC 인터커넥트에서, 트래픽 프로파일들이 균등하지 않고 상이한 양을 갖는 것들이 있다면(예를 들어, 어떤 호스트들끼리 다른 것들보다 더 빈번하게 통신하는 경우), 인터커넥트 성능은 NoC 토폴로지 및 다양한 호스트들이 토폴로지 상에서 서로에 대하여 어디에 위치하는지, 그리고 그것들이 어떤 라우터에 연결되어 있는지에 의존하게 된다. 예를 들어, 두 호스트가 서로 빈번하게 통신하며 다른 인터커넥트들보다 큰 대역폭을 요구한다면, 그것들은 서로 옆에 배치된다. 이는 이러한 통신 방법에 있어서 대기 시간을 감소시킴으로써 대기 시간의 전체 평균을 감소시킬 뿐만 아니라, 라우터 노드 및 링크의 수를 감소시켜 이에 따라 이러한 통신 방법에 있어서 더 높은 대역폭이 반드시 공급되도록 한다.
모든 호스트들이 2D 평면 NoC 토폴로지에 서로 겹쳐지지 않게 꼭 들어맞아야 하기 때문에, 두 개의 호스트들을 서로 가까워지도록 이동시키는 것은 몇몇 다른 호스트들끼리 서로 멀어지도록 만들 수 있다. 따라서, 반드시 전체적인 비용과 성능 메트릭을 최적화하기 위해서, 다양한 트레이드 오프들이 반드시 만들어져야 하며 호스트들은 반드시 모든 호스트들 사이의 대역폭 및 대기 시간 요건을 쌍으로 고려한 후에 배치되어야 한다. 비용과 성능 메트릭은, 예를 들어, 호스트들이 통신 중일 때 그 사이의 라우터 홉 수 측면에서의 평균적인 구조적 대기 시간, 또는 호스트들 중 모든 쌍 사이의 대역폭과 그들 사이의 홉 수 측면에서의 거리의 합, 또는 이들의 조합일 수 있다. 이러한 최적화의 문제는 NP-하드(NP-hard)로 알려져 있으며 휴리스틱(heuristic) 기반의 접근 방법이 주로 사용된다. 시스템상의 호스트들은 모양과 크기에 있어서 각기 서로 다를 수 있어서, 이는 2D 평면 NoC 토폴로지에 있어서 그것들을 배치하고, 약간의 공백을 유지하면서 그것들을 채우고, 호스트들이 서로 겹치는 것을 피하는데 있어서 추가적인 복잡성을 부가한다.
본 발명은 특정한 효율 함수의 형태로 나타나는 전체적인 시스템 성능이 최적화되도록, 망 또는 타우루스 NoC 인터커넥트에서 다양한 호스트들이나 IP 코어들의 위치를 자동으로 결정하는 방법, 및 호스트의 포트를 다양한 NoC 라우터들에 연결하는 방법을 제공하는 것을 목적으로 한다.
상기 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 방법은, 특정한 효율 함수의 형태로 나타나는 전체적인 시스템 성능이 최적화되도록, 망 또는 타우루스 NoC 인터커넥트에서 다양한 호스트들이나 IP 코어들의 위치를 자동으로 결정하고 호스트의 포트를 다양한 NoC 라우터들에 연결하는 단계; NoC에서 통신하고 있는 모든 호스트들 사이의 라우터 홉에서의 대기 시간, 대역폭, 및 거리에 관한 효율 함수를 결정하는 단계; 결정된 호스트 위치가, 두 호스트가 서로 공간적으로 겹쳐지지 않게 하고 서로 다른 형태 및 크기의 호스트들 사이에 여백이 최소화되게 하는지 확인하는 단계; 모든 호스트의 포트들이 이용가능한 NoC 라우터에 연결되었는지 확인하는 단계; 결정된 호스트 위치가 NoC에서 모든 호스트들이 필요로 하는 연결성에 영향을 미치지 않는지 확인하는 단계; 및 상기 호스트 위치에 기반하여 NoC 라우터 및 경로를 자동으로 설정하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따른 시스템은, 특정한 효율 함수의 형태로 나타나는 전체적인 시스템 성능이 최적화되도록, 망 또는 타우루스 NoC 인터커넥트에서 다양한 호스트들이나 IP 코어들의 위치를 자동으로 결정하고 호스트의 포트를 다양한 NoC 라우터들에 연결하며; NoC에서 통신하고 있는 모든 호스트들 사이의 라우터 홉에서의 대기 시간, 대역폭, 및 거리에 관한 효율 함수를 결정하는 단계; 결정된 호스트 위치가, 두 호스트가 서로 공간적으로 겹쳐지지 않게 하고 서로 다른 형태 및 크기의 호스트들 사이에 여백이 최소화되게 하는지 확인하며; 모든 호스트의 포트들이 이용가능한 NoC 라우터에 연결되었는지 확인하며; 결정된 호스트 위치가 NoC에서 모든 호스트들이 필요로 하는 연결성에 영향을 미치지 않는지 확인하며; 그리고 상기 호스트 위치에 기반하여 NoC 라우터 및 경로를 자동적으로 설정할 수 있다.
본 발명의 실시 예에 따르면, 전체적 대기 시간을 최소화할 수 있다.
본 발명의 실시 예에 따르면, 인터커넥트 비용을 감소시킬 수 있다.
도 1a, 1b, 1c, 및 1d는 양방향 고리, 2D 망, 2D 타우루스, 및 3D 망 NoC 토폴로지를 예시적으로 나타낸 도면이다.
도 2a는 2차원 망에 있어서 XY 라우팅의 예시도이다.
도 2b는 소스 노드와 목적지 노드 사이의 3가지 서로 다른 경로의 예시도이다.
도 3a는 2개 층의 NoC 인터커넥트에 대한 예시도이다.
도 3b는 호스트와 다수의 NoC 층 간의 브릿지 로직에 대한 예시도이다.
도 4a는 다수의 시스템 구성요소와 그것들 사이의 연결 상태를 나타내며; 도 4b는 3x6 망 NoC 토폴로지에서 다양한 호스트의 예시적인 위치를 나타내며; 도 4c는 3x6 망 NoC 토폴로지에서 다양한 호스트의 더 나은 위치를 나타낸다.
도 5는 NoC 토폴로지 상에서 특정 성능 메트릭을 향상시키기 위해 다양한 호스트를 반복적으로 이동시키는 기준 알고리즘을 나타낸다.
도 6은 호스트 위치를 개선하기 위한 더 구체적인 알고리즘을 나타낸다.
도 7은 상기 알고리즘이 호스트 위치 산출을 위한 알고리즘과 같은 시뮬레이티드 어닐링을 실행하기 위해서 어떻게 확장될 수 있는지 나타낸다.
도 8은 본 발명에 따른 실시 예가 실행되는 컴퓨터/서버의 블록 다이어그램을 나타낸다.
이하에서는 도면과 본 발명의 실시 예에 대하여 더 구체적으로 설명한다. 도면들 중 중복되는 요소들에 대한 부호 및 설명은 명확성을 위해 생략된다. 본 명세서에서 사용되는 용어들은 실시 예를 제공하기 위해 사용되는 것이며, 그에 제한되지 않는다. 예를 들어, "자동의"라는 용어의 사용은 전자동, 또는 사용자나 관리자가 작동의 특정 부분을 제어하는 반자동 구현을 포함하며, 본 발명이 구현되는 기술 분야에 있어서 통상의 기술자가 원하는 형태에 따라 결정된다.
다수의 라우터 및 라우터들 사이의 점대점 링크를 이용하여 SoC의 다양한 구성 요소들을 서로 연결하는 분산 NoC 인터커넥트에서, NoC 토폴로지상에서 다양한 호스트의 적절한 위치를 결정하고 그것들을 해당 위치에서 로컬 라우터와 연결할 필요가 있다. 예를 들어, 두 개의 호스트들이 서로 빈번하게 통신하고 있으며 다른 상호 연결들보다 큰 대역폭이 요구된다면, 그것들을 서로 더 가까이 위치시켜, 해당 호스트들간의 트랜잭션(transaction이 더 적은 라우터 홉들과 링크들을 거치도록 하고 전반적인 대기 시간과 NoC 비용을 줄일 수 있도록 하는 것이 더 좋다.
특정한 형태와 크기의 호스트들이 2D SoC 평면상에서 공간적으로 서로 겹쳐질 수 없다고 가정하면, 트레이드 오프가 필요할 것이다. 특정 호스트들을 그것들 사이의 상호 통신을 개선하기 위해 더 가까이 이동시키면, 어쩔 수 없이 다른 특정 호스트들은 멀어지게 될 것이고, 그것들 사이의 상호 통신은 불리하게 될 것이다. 시스템 성능을 개선하는 트레이드 오프를 만들기 위해, 전체적인 통신 대기 시간의 평균과 같은 특정 시스템 성능 메트릭이, 호스트들이 NoC 토폴로지에 배치되는 것과 같이 최적화를 위한 목적 함수로 사용된다. 시스템 성능 메트릭을 최대화하는 실질적 최적의 호스트 위치 결정은 연결성 및 모든 호스트들 간의 상호 통신 특성들을 분석하는 것과 호스트들을 적절하게 2D NoC 토폴로지에 배치하는 것을 포함할 수 있다.
16개의 CPU와 2개의 메모리가 3x6 망 조직에 배치되어야 하는 경우를 가정한다. 도 4a에 도시된 바와 같이, 8개의 제 1 CPU 세트는 제 1 메모리 MEM1과 통신하고, 8개의 제 2 CPU 세트는 제 2 메모리 MEM2와 통신하도록 한다. CPU들과 메모리들은 3x6 망에서 순차적으로 배치될 수 있으며, 도 4b에 도시된 바와 같이 각 호스트들은 망에서 하나의 셀을 차지하고 다양한 호스트 사이의 트래픽을 고려하지 않고 각 셀의 라우터에 직접 연결된다. 홉 수 측면에서의 구조적 대기 시간이 높은 평균 및 피크를 갖도록 하는 상호 통신 호스트들은 서로 멀리 배치된다. 예를 들어, 도면에 나타난 바와 같이 호스트 CPU1과 MEM1 사이의 메시지들은 7개의 라우터 노드들을 거쳐야 하며, 호스트 CPU13과 MEM2 사이의 메시지들은 6개의 홉을 거쳐야 한다. 이러한 긴 경로들은 대기 시간을 증가시킬 뿐만 아니라, 메시지들이 NoC상에 오랜 기간 머무름으로 인해 많은 수의 링크들에서 대역폭을 소모함으로써 인터커넥트 대역폭에도 부정적 영향을 끼친다.
상기 조직상의 호스트 세트들은 도 4c에 도시된 바와 같이 구조적 대기 시간 값의 평균 및 피크를 상당히 줄이도록 배치될 수 있다. 도시된 바와 같이, 이 조직에서 상호 통신 호스트들 간의 최대 구조적 대기 시간은 3개 라우터 홉이며, 상호 통신 호스트들 대부분은 단지 2개 라우터 홉만 떨어져 있다. 도 4c에서 호스트의 위치들은, 도 4b로부터 특정 호스트들을 현재 위치에서 새로운 위치로 반복적으로 이동시키는 과정과 이미 새로운 위치에 존재하는 호스트들에 대해서는 그것들을 특정 호스트들로 교체하는 과정에서 획득된다. 이 실시 예에서 최적의 호스트 위치들을 도출하는 것이 상대적으로 용이했던 반면, 만약 트래픽 프로파일이 복잡한 연결성 및 다양한 호스트 사이에서 매우 불균형적인 대역폭과 대기 시간 특성을 가진다면, NoC 토폴로지에 있어서 최적의 호스트 위치를 결정하는 것은 보다 더 어려울 수 있다. 사실상 그것은 잘 알려진 NP-하드 문제로 축약될 수 있다. 따라서, 이러한 조건에서는 최적의 호스트 위치를 결정하는데 있어서 반드시 휴리스틱 접근법이 반드시 사용되어야 한다. 본 명세서 기술되는 실시 예들은 특정 시스템 성능 메트릭들을 최적화하기 위하여 시스템 NoC 토폴로지에서 다양한 호스트를 배치하기 위한 다수의 최적화된 휴리스틱 알고리즘에 대해 설명한다.
제안된 휴리스틱에서는, 호스트의 위치를 결정하기 위하여 모든 호스트 사이의 연결성, 대역폭 및 대기 시간 요건, 그리고 그것들의 형태 및 크기를 전체적으로 분석한다. 본 명세서에 기술되는 실시 예들은 2-D, 2.5-D, 및 3-D NoC 인터커넥트들에 있어서 NoC 토폴로지 상의 다양한 호스트 위치에 대해 그것들의 형태 및 크기에 근거한 자동 처리에 대한 해결책들, 그리고 시스템 NoC 인터커넥트 성능을 증진시키고 NoC 비용을 절감하기 위한 상호-통신 특성들과 직결된다. 실시 예들은 다음을 포함한다: 1) NoC 토폴로지 상에서 호스트 위치, 다양한 트랜잭션들에 의해 사용되는 경로들, 호스트 상호-통신 대역폭과 대기 시간 특성, 및 요구되는 성능 메트릭들을 기반으로 한 비용 함수를 제안한다; 2) 호스트들을 최초의 위치에 두고, 그것들을 로컬 NoC 라우터들에 연결하고, 모든 트랜잭션들에 대하여 경로를 계산하고, 최초의 비용 함수를 계산한다; 3) NoC에 있어서 현재 위치 p1에서 호스트 h1을 선택하고 새로운 위치 p2에서 호스트의 위치를 결정한다; 4) 호스트 h1을 어떻게 위치 p2로 이동시킬지 결정(예를 들어 p2에서 현재 호스트 세트와 교환)하며, 이것은 비용 함수에 영향을 미칠 수 있다; 5) 상기 이동을 수용할 것인지 거절할 것인지 결정한다; 및 6) 최종적으로 상기 3, 4, 및 5 단계를 특정한 기준이 충족될 때까지 반복한다.
한 실시 예가 도 5에 도시되어 있다. 500에서, 호스트들은 NoC 토폴로지 상에서 초기의 위치에 배치되고 NoC의 로컬 라우터에 연결된다. 현재 위치, 연결성, 및 상호-호스트 통신 특성을 기반으로 하여 비용 함수가 산출된다. 그 다음 501에 도시된 바와 같이 현재 위치 p1에서 새로운 위치로 이동될 호스트 h1이 선택된다. 다양한 기준들이 이동될 호스트 선택에 사용될 수 있으며, 일부는 다음 절의 부가적인 실시 예에서 기술된다. 502에서, 새로운 위치 p2가 호스트 h1을 위해 선택될 수 있다. 만약 호스트 h2가 이미 p2에 존재한다면, h1이 이동되는 경우, h2는 h1과 교환될 수 있다. 503에서, h1이 p2로 이동된 경우(그리고 h2가 존재하는 경우 h2가 p1으로 이동된 경우) 새로운 비용 함수가 산출된다. 504에서, 새로운 비용 값과 기존의 비용 값 및 수용 함수에 근거하여, h1 및 h2가 이동될 것인지(서로 교환될 것인지) 결정한다. 최종적으로, 505에서, 501 단계로 계속 진행할지 여부를 특정한 기준들이 충족되었는지 또는 반복 횟수가 최대치에 도달하였는지를 근거로 결정한다.
최대 반복 횟수는 원하는 실시 예에 따라 다양한 방법으로 결정될 수 있다. 예를 들어, 최대 반복 횟수는 프로세스 실행을 많은 횟수로 반복하여 지금까지 발견된 최저 시스템 비용이 안정될 때, 즉 상당히 많은 시도 뒤에도 더 낮은 비용의 새로운 시스템 상태가 나타나지 않을 때를 조사하여 결정될 수 있다. 이 횟수는 향후에 최적화에 있어서 최대 반복 횟수로 사용될 수 있다. 66 x n3의 최대 반복 횟수는 일반적으로 nxn 망 네트워크에서의 실험에서 좋은 결과를 나타내긴 하지만, 고도로 최적화된 조건에서는 더 큰 값이 사용될 수 있다.
또 다른 실시 예에서는 다수의 호스트를 포함하는 그룹을 서로 교환하려는 시도가 가능하다. 호스트들이 형태와 크기에 있어서 서로 다르다면, 새로운 위치에서 더 큰 호스트들에게 공간을 제공하기 위해, 큰 호스트는 다수의 작은 호스트들과 교환될 수 있으며 반대의 경우에도 그러하다.
비용 함수는 다양한 가지 방법으로 고안될 수 있다. 단순한 비용 함수는 모든 쌍의 호스트들 사이 홉 수 측면에서의 거리와 그것들의 상호-통신 대역폭요건의 곱의 합일 수 있다. 이것은 NoC 링크들이 겪게 될 트래픽 부하 양의 총합을 반영한다. hi가 시스템상에서 i번째 호스트를 나타내는 것이고, bandwidth(hi,hj)는 호스트 hi에서 호스트 hj까지의 대역폭을 나타내는 것이며, distance(hi,hj)는 호스트 hi에서 호스트 hj까지의 거리를 라우터 홉들의 수로 나타낸 것이라고 하면, 비용 함수는 다음과 같다.
Figure 112015083203736-pct00001
Figure 112015083203736-pct00002
Figure 112015083203736-pct00003
Figure 112015083203736-pct00004
이 비용 함수를 최소화하는 경우, NoC 채널에서 필요한 대역폭을 최소화할 것이며 그에 따라 NoC의 비용이 최소화될 것이다. NoC 거리는 또한 구조적 대기 시간을 나타냄에 따라, 비용 함수는 시스템상에서 전체적인 구조상 대기 시간의 평균 또한 최소화할 수 있다. 거리와 대기 시간으이 NoC 토폴로지에서 강한 연관성이 없더라도, hi와 hj 사이의 대기 시간을 함수의 다른 인자로 사용하는 대안의 비용 함수 구현이 이용될 수 있다. 특정 호스트들 사이의 상호-통신이 다른 인터커넥트들보다 더 중요한 경우, 비용 함수의 구현은 다양한 상호 작용의 중요성을 반영하여 함수에 있어서 가중치를 적용할 수 있다.
Figure 112015083203736-pct00005
Figure 112015083203736-pct00006
Figure 112015083203736-pct00007
Figure 112015083203736-pct00008
최적화 목적을 기반으로, 다양한 가지 다른 형태의 비용 함수들도 시용될 수 있다.
NoC 토폴로지 상에서 호스트들의 최초의 위치는 다양한 가지 방법으로 선택될 수 있다. 일 실시 예에 따르면 호스트들을 무작위로 배치하여 어떤 두 호스트들도 공간적으로 서로 겹쳐지지 않게 하고 호스트의 포트들을 로컬 라우터의 호스트 포트들에 연결한다. 특정 호스트들은 단일의 망 셀보다 클 수 있어서, 특정 라우터들과 NoC 채널들을 막아 특정 경로를 차단할 수 있다. 호스트들은 모든 상호-통신하는 호스트들이 적어도 하나의 이용 가능한 NoC 경로를 갖게 하여, 그것들이 서로 통신할 수 있도록 초기에 배치되어야 한다. 호스트가 이동되는 동안, NoC 상에서의 모든 트랜잭션의 연결성이 유지되도록 이동이 제한되어야 한다. 또 다른 실시 예에 따르면, 예를 들어 이러한 위치에서는 어떠한 두 호스트들도 더 이상 서로 교환될 수 없는, 어떠한 교착 상태도 나타나지 않도록 호스트들을 초기 위치에 배치할 수 있다. 호스트들이 서로 자유롭게 교환될 수 있도록 최소한의 제한을 갖는 초기 위치가 선호된다.
또 다른 실시 예는 다른 호스트들보다 빈번하게 이동 또는 교환해야할 특정 호스트들을 선택하는 과정을 더 포함할 수 있다. 부가적으로, 알고리즘이 구동되는 횟수는 내측 및 외측 루프 두 개로 형성된 두 반복 계수기를 통해 제어될 수 있다. 내측 루프에서 호스트들은 이동을 위해 선택될 수 있으며 이동은 각각의 단계에서 특정 기준에 기반하여 수용될 수 있고, 외측 루프에서는 각각의 단계에서 이러한 기준 함수들이 조정된다. 이러한 설계 방법이 도 6에 기술되어 있다. 600에서, 호스트들을 초기 위치에 놓은 다음, 외측 루프의 반복 계수기 i는 0으로 설정된다. 601에서, 내측 루프의 반복 계수기 j는 0으로 설정되고 다양한 호스트에 할당된 가중치들을 기반으로 호스트 h1이 이동 대상으로 선택된다. 이동 대상이 될 호스트에 대한 가중치 할당은 다양한 호스트의 대기 시간 및 대역폭 특성에 의존한다. 예를 들어, 많은 수의 호스트들과 통신하는 호스트들에 대해서는 적은 수의 호스트들과 통신하는 호스트들보다 더 빈번하게 이동을 고려할 수 있다. 일 실시 예에 따라 호스트 hi에 할당되는 가중치는 다음과 같다.
Figure 112015083203736-pct00009
알고리즘의 진행에 따라 호스트 선택을 더 효율적으로 제어하기 위해서, 내측 및 외측 루프 반복 계수기에서 가중치를 포함할 수 있다.
다음으로 호스트 h1의 새로운 위치가 결정된다. 602에서, h1과 통신하는 모든 호스트들이 검토되고 그 중 하나, 예를 들어 h2가 특정 확률적 함수 f1을 기반으로 선택된다(예를 들어, 확률적 함수에 의해 나타나는 확률이 x일 때, h2를 x% 확률로 선택하는 것, 등). 확률적 함수의 사용으로, 로컬 미니마(local minima) 방지에 중요한 호스트 h1의 새로운 위치를 결정하는 데 있어서 약간의 임의성이 도입될 것이다. 다음 단계 603에서, 호스트 h2의 모든 인접한 위치들이 검토되고 그들 중 하나, 예를 들어 p3이 확률적 함수 f2를 기반으로 선택된다. 이것이 호스트 h1의 새로운 위치이다. 다음 단계 604에서, h1이 위치 p3으로 이동된다면 새로운 비용 함수가 산출되고, 만약 위치 p3에 호스트 h3이 존재하고 있었을 경우 그 후 호스트 h3은 h1의 현재 위치로 이동된다. 새로운 비용, 이전의 비용, 및 확률적 수용 함수 f3에 근거하여, 이동은 이동 결정을 기반으로 수용되거나 거절된다(예를 들어, 확률적 함수에 의해 나타나는 확률이 x일 때, x% 확률로 수용하는 것, 등). 다음으로 내측 및 외측 루프의 반복 계수기들은 갱신되고, 최대 반복 횟수와 비교되며, 도면에 도시된 바와 같이 프로세스가 반복된다. 외측 루프의 각 단계가 진행되는 동안, 단계 605에서, 함수 f1, f2 및 수용 함수 f3가 조정될 수 있다.
함수 f1은 h1이 더 빈번하게 통신하는 노드들에게 우선권을 주는 함수로 고안될 수 있다. 호스트 h1이 n개의 호스트들, h1_1 내지 h1_n과 통신하고 있고 상기 호스트들 간 통신의 대역폭 요건을 B(h1,h1_i),i=1 to n이라 하면, h1_1 내지 h1_n에서 호스트 h2가 선택될 확률은 다음과 같다.
P( h1 _i)=B( h1 , h1 _i)/∑B( h1 , h1 _i)
또한, 대기 시간 요건도 있을 수 있다; 특정 호스트들은 다른 것들보다 더 짧은 대기 시간을 가지며 반드시 h1과 통신 가능하여야 한다. L(h1,h1_i),i=1 to n으로 주어진 대기 시간 제한이 있다면, 확률적 함수는 하기와 같이 대역폭 및 대기 시간에 모두 맞추어 조절될 수 있다.
P( h1 _i)=(B( h1 , h1 _i)/∑B( h1 , h1 _i))×(∑L( h1 , h1 _i)/L( h1 , h1 _i))
대역폭 및 대기 시간이 주어진 시스템상에서 그것들의 중요성을 반영하여 가중치가 다르게 주어지는 가중 확률적 함수를 이용할 수 있다.
함수 f2는 다양한 가지 방법으로 고안될 수 있다. 간단한 방법으로 균일한 확률로 h2 바로 인접한 것들 중에서 하나를 사용할 수 있다. h2와 더 빈번하게 통신하는 호스트들을 h2로부터 멀리 이동시키는 것을 방지하게 위해, 상기 인접한 것들 중 h2와 덜 빈번하게 통신하는 것들이 우선적으로 선택될 수 있다. 여기에는 h2 및그것에 인접한 호스트들에 대한 대역폭 및 대기 시간 정보를 사용하는 확률적 함수가 반영될 수 있다.
함수 f3은 다양한 가지 방법으로 고안될 수 있다. 예를 들어 이동이 비용 함수를 감소시킨다면, 그 이동은 언제나 수용될 것이다. 반면에, 이동이 비용을 증가시킨다면, 그 이동은 특정 확률적 함수를 고려하여 수용될 것이다. 확률적 함수는 최적화의 한 종류를 기반으로 고안될 수 있다. 예를 들어, 시뮬레이티드 어닐링(simulated annealing)을 기반으로한 방법에서는, 수용 함수는 "온도"라고 불리는 시변 파라미터에 의존하며, 이는 비용 함수를 증가시키는 이동을 수용할 것인지 거절할 것인지 제어한다. 상기 알고리즘은 고온에서 내측 루프를 반복하기 시작하며 내측 루프의 각 단계마다 온도를 점차 감소시킨다. 비용 함수를 증가시키는 이동은 낮은 온도 단계에서보다 높은 온도 단계에서 더 높은 확률로 수용되며, 이에 따라 고온에서 로컬 미니마로부터 벗어날 수 있는 더 높은 확률을 얻게 된다. 시스템이 냉각됨에 따라(예를 들어, 온도가 떨어짐), 비용 함수를 증가시키는 이동은 더 낮은 확률로 수용된다. 외측 반복 루프 각각이 시작될 때, 온도는 고온으로 회복되어, 이에 따라 내측 루프에서 냉각 프로세스가 다수 만들어진다. 함수 f3은 아래와 같이 정의된다.
P( relocation )=1/(1+ exp (( cost ( old )- cost ( new ))/ cost ( initial temp ))
여기서 P(relocation)은 이동을 수용할 것인지에 대한 확률을 나타낸다. cost(old)는 이동 이전의 비용 함수이며, cost(new)는 이동 이후의 비용 함수이다. cost(initial)은 초기 시스템의 비용 함수이며, temp는 현재의 온도 레벨이다. 초기의 온도 레벨은 1 또는 다른 값으로 선택될 수 있으며 내측 루프의 단계들을 일정한 수만큼 지날 때마다 등비 급수 적으로 감소한다. 온도는 다른 방식으로도 감소될 수 있다. 내측 루프는 온도가 기 결정된 가장 낮은 허용 값 T(min)에 도달할 때까지 계속된다. 이러한 과정이 도 7에 기술되어 있다. 도 6에 나타난 실시 예와 비교하면, 본 실시 예는 단계 700에서 각 내측 루프가 시작될 때 온도의 초기치를 설정하고, 단계 701에서 그것을 등비 수열에 따라 감소시킨다. 온도가 최소 설정 값에 도달하면 내측 루프는 멈추게 된다. 또한 함수 f1 및 f2는 현재 온도 레벨, 상호-호스트 통신 대역폭과 대기 시간 특성, 및 다양한 호스트의 현재 위치를 기반으로 정해질 수 있다.
일반적인 실시 예는 초기 온도 T(initial)를 1로, 최종 온도 T(min)을 .001로 이용한다. 내측 루프의 i번째 단계에서, 현재 온도 T는 다음 공식을 따라 갱신된다: T=T(initial)×(0.9)(i/C), C는 네트워크의 크기 및 호스트의 개수에 의존하는 시스템 상수이다. n이 호스트의 총 개수일 때, C=n3 인 특정 실시 예에서 좋은 결과가 나타난다. 온도 T가 최종 값 T(min)에 도달하면 내측 루프가 종료된다.
함수 f1, f2, 및 f3은 다양한 실시 예에 있어서 유전 알고리즘 또는 기계 학습과 같은 기준 최적화 접근 방법의 작동을 따라가기 위해 다양한 가지 부가적인 방법들로 또한 고안될 수 있다.
도 8은 실시 예가 작동되는 예시적인 컴퓨터 시스템(800)을 나타낸다. 컴퓨터 시스템(800)은 본 발명이 속하는 기술 분야에서 알려진 바와 같이 하나 이상의 유닛을 실행시키는 것이 작동 가능한, I/O 유닛(835), 스토리지(860), 및 프로세서(810)를 포함하는 서버(805)를 포함한다. 본 명세서에서 "컴퓨터로 읽을 수 있는 매체"라는 용어는, 컴퓨터로 읽을 수 있는 스토리지 매체의 형태로 나타나는, 프로세서(810)의 실행에 대해 명령을 내리는데 관여하는 모든 매체들을 가리키는 것으로 사용되며, 예를 들어, 광 디스크, 자기 디스크, 읽기 전용 메모리, 랜덤 액세스 메모리, 고체 상태 장치 및 드라이브가 있다. I/O 유닛은 키보드, 마우스, 터치 장치, 또는 음성 명령과 같은 입력 장치들을 사용하는 사용자 인터페이스(840) 및 관리자 인터페이스(845)로부터 입력 신호를 처리한다.
서버(805)는 이동식 하드 드리이브, 광 미디어(CD 또는 DVD), 디스크 미디어 또는 컴퓨터가 실행 코드를 읽을 수 있는 모든 다른 매체들과 같은 제거 가능한 스토리지를 포함하는 외부 스토리지(850)에 또한 연결될 수 있다. 또한 서버는 출력 데이터를 표시하고 사용자에게 정보를 제공할 뿐만 아니라 사용자로부터 부가적인 정보도 요청받는 표시 장치와 같은 출력 장치(855)에도 연결될 수 있다. 서버(805)와 사용자 인터페이스(840), 관리자 인터페이스(845), 외부 스토리지(850), 및 출력 장치(855) 간의 연결은 802.11 표준, Blutooth® 또는 셀룰러 프로토콜과 같은 무선 프로토콜, 또는 케이블 또는 광섬유와 같은 물리적 전송 매체를 통해 이루어질 수 있다. 그리하여 출력 장치(855)는 사용자와 상호 작용을 위해 입력 장치로서도 동작할 수 있다.
프로세서(810)은 하나 이상의 모듈을 실행할 수 있다. 초기 배치 모듈(811)은 호스트들을 2D 평면에서 서로 겹쳐지지 않도록, 그리고 연결성 요건 또한 충족되도록 몇몇 최초 위치에 놓이게 설정될 수 있다. 비용 함수 모듈(812)는 NoC 토폴로지에 있어서 호스트 위치, 다양한 상호 작용들이 거치는 경로들, 호스트 상호-통신 대역폭 및 대기 시간 특성, 및 구조적 대기 시간, 인터커넥트 영역과 전력 등과 같이 요구되는 성능 메트릭에 기반하여 비용 함수를 생성한다. 이동 호스트 선택 모듈(813)은 새로운 위치로 이동이 검토된 다양한 호스트, 및 그에 상응하는 새로운 위치를 선택하도록 설정될 수 있다. 이동 수용 함수 모듈(814)은 이동 호스트 선택 모듈로부터의 이동 결정을 수용할 것인지 거절할 것인지 새로운 호스트 위치에 대한 비용을 결정하는 비용 함수 모듈의 피드백에 근거하여 결정한다. 이동 호스트 선택 모듈(813) 및 이동 수용 함수 모듈(814)는 상기 기술된, 예를 들어 도 5 내지 7의 실시 예들을 기반으로 작동한다.
나아가, 상세한 설명에 있어서 어떤 부분들은 알고리즘 및 컴퓨터 내에서 구동의 상징적 표현들로 제시되었다. 이러한 알고리즘적 설명들 및 상징적 표현들은 데이터 처리 분야에 있어서 통상의 기술자가 본 기술 분야의 다른 통상의 기술자들에게 그들의 발명에 대한 요지를 전달하는데에 매우 효과적으로 사용된다. 알고리즘은 요구되는 종결 상태 또는 결과로 이어지는 정의된 단계들의 연속이다. 실시 예에 있어서, 각 단계들은 요구되는 유형의(tangible) 결과를 얻기 위한 유형의 물리적 처리를 수행한다.
더욱이, 본 발명의 다른 실시 예들은 본 기술 분야의 통상의 기술자들에게 발명의 상세한 설명의 사항들과 본 명세서에 포함된 실시 예들의 실행으로부터 자명할 것이다. 상기 실시 예들의 다양한 측면들 및/또는 구성 요소들은 단일로 또는 어떤 결합으로 사용될 수 있다. 발명의 상세한 설명 및 실시 예들은 예시의 목적이며, 본 발명의 진정한 범위 및 주제는 다음의 청구항들로부터 정해진다.

Claims (21)

  1. NoC(Network-on-Chip) 토폴로지를 위한 호스트 위치를 결정하는 방법으로서,
    상기 NoC 토폴로지의 다수의 호스트로부터 제1 호스트를 선택하는 단계;
    다수의 NoC 토폴로지 호스트들 중에서 선택된 제2 호스트에 인접한 다수의 위치들 중 위치를 선택하는 단계; 및
    제1 호스트 이동을 수용하는지에 대한 결과를 나타내는 제3 확률적 수용 함수에 근거한 이동 결정에 따라 상기 제1 호스트를 상기 위치로 이동시키는 단계;
    를 포함하며,
    상기 제1 호스트를 선택하는 단계는:
    제1 호스트에 할당된 가중치를 기반으로 제1 호스트를 선택하며,
    상기 위치를 선택하는 단계는:
    제2 확률적 수용 함수가 상기 제2 호스트에 인접한 다수의 위치 중에서 적어도 하나의 위치에 할당한, 적어도 하나의 확률에 근거하여 위치를 선택하며,
    상기 제2 호스트는 제1 확률적 수용 함수가 다수의 호스트 중 적어도 하나에 할당한 적어도 하나의 확률에 의해 결정되는 호스트 위치 결정 방법.
  2. 제1 항에 있어서,
    최대 반복 횟수에 도달할 때까지 호스트 위치 결정 방법을 반복하고,
    상호-호스트 통신 대역폭, 상기 NoC 토폴로지, 및 하나 이상의 대기 시간 제한 중 적어도 하나를 기반으로 상기 제1 확률적 수용 함수 및 상기 제2 확률적 수용 함수를 갱신하는 단계를 더 포함하는 호스트 위치 결정 방법.
  3. 제1 항에 있어서,
    상기 NoC 토폴로지의 온도가 최소 온도 한계점에 도달할 때 때까지 호스트 위치 결정 방법을 반복하고,
    상기 NoC 토폴로지의 온도, 상호-호스트 통신 대역폭, 상기 NoC 토폴로지, 및 하나 이상의 대기 시간 제한 중 적어도 하나를 기반으로 상기 제1 확률적 수용 함수 및 상기 제2 확률적 수용 함수를 갱신하는 단계를 더 포함하는 호스트 위치 결정 방법.
  4. 제1 항에 있어서,
    상기 제1 확률적 수용 함수는,
    상기 제1 호스트와 상기 다수의 호스트 중 적어도 하나의 통신 주파수, 상기 제1 호스트와 상기 다수의 호스트 중 적어도 하나 사이의 대기 시간 제한, 및 상기 제1 호스트와 상기 다수의 호스트 중 적어도 하나 사이의 대역폭 제한 중 적어도 하나에 근거하여,
    상기 다수의 호스트 중 적어도 하나에 상기 적어도 하나의 확률을 할당하는 호스트 위치 결정 방법.
  5. 제1 항에 있어서,
    상기 제2 확률적 수용 함수는,
    상기 제2 호스트와 상기 제2 호스트에 인접하는 다수의 위치와 통신하는 통신 주파수, 상기 제2 호스트와 상기 제2 호스트에 인접하는 다수의 위치 중 적어도 하나 사이의 대기 시간 제한, 및 상기 제2 호스트와 상기 제2 호스트에 인접하는 다수의 위치 중 적어도 하나 사이의 대역폭 제한 중 적어도 하나에 근거하여,
    상기 제2 호스트에 인접하는 다수의 위치 중 적어도 하나에 상기 적어도 하나의 확률을 할당하는 호스트 위치 결정 방법.
  6. 제1 항에 있어서,
    상기 제1 확률적 수용 함수, 제2 확률적 수용 함수, 및 제3 확률적 수용 함수는,
    유전학적 최적화 알고리즘 및 기계 학습 중 적어도 하나에 근거하여 실행되는 호스트 위치 결정 방법.
  7. 제1 항에 있어서,
    상기 제3 확률적 수용 함수는,
    비용 함수의 감소 및 NoC 토폴로지 온도 중 적어도 하나에 근거하여 이동 확률을 제공하는 호스트 위치 결정 방법.
  8. NoC(Network-on-Chip) 토폴로지를 위한 호스트 위치 결정을 위한 명령들을 저장하는 컴퓨터로 읽을 수 있는 저장매체에 있어서,
    상기 명령들은:
    상기 NoC 토폴로지의 다수의 호스트로부터 제1 호스트를 선택하는 단계;
    다수의 NoC 토폴로지 호스트들 중에서 선택된 제2 호스트에 인접한 다수의 위치들 중 위치를 선택하는 단계; 및
    제1 호스트 이동을 수용하는지에 대한 결과를 나타내는 제3 확률적 수용 함수에 근거한 이동 결정에 따라 상기 제1 호스트를 상기 위치로 이동시키는 단계;
    를 포함하며,
    상기 제1 호스트를 선택하는 단계는:
    제1 호스트에 할당된 가중치를 기반으로 제1 호스트를 선택하며,
    상기 위치를 선택하는 단계는:
    제2 확률적 수용 함수가 상기 제2 호스트에 인접한 다수의 위치 중에서 적어도 하나의 위치에 할당한, 적어도 하나의 확률에 근거하여 위치를 선택하며,
    상기 제2 호스트는 제1 확률적 수용 함수가 다수의 호스트 중 적어도 하나에 할당한 적어도 하나의 확률에 의해 결정되는 컴퓨터로 읽을 수 있는 저장매체.
  9. 제8 항에 있어서,
    상기 호스트 위치 결정 방법은,
    최대 반복 횟수에 도달할 때까지 호스트 위치 결정 방법을 반복하고,
    상호-호스트 통신 대역폭, 상기 NoC 토폴로지, 및 하나 이상의 대기 시간 제한 중 적어도 하나를 기반으로 상기 제1 확률적 수용 함수 및 상기 제2 확률적 수용 함수를 갱신하는 단계를 더 포함하는 컴퓨터로 읽을 수 있는 저장매체.
  10. 제8 항에 있어서,
    상기 호스트 위치 결정 방법은,
    상기 NoC 토폴로지의 온도가 최소 온도 한계점에 도달할 때 때까지 호스트 위치 결정 방법을 반복하고,
    상기 NoC 토폴로지의 온도, 상호-호스트 통신 대역폭, 상기 NoC 토폴로지, 및 하나 이상의 대기 시간 제한 중 적어도 하나를 기반으로 상기 제1 확률적 수용 함수 및 상기 제2 확률적 수용 함수를 갱신하는 단계를 더 포함하는 컴퓨터로 읽을 수 있는 저장매체.
  11. 제8 항에 있어서,
    상기 제1 확률적 수용 함수는,
    상기 제1 호스트와 상기 다수의 호스트 중 적어도 하나의 통신 주파수, 상기 제1 호스트와 상기 다수의 호스트 중 적어도 하나 사이의 대기 시간 제한, 및 상기 제1 호스트와 상기 다수의 호스트 중 적어도 하나 사이의 대역폭 제한 중 적어도 하나에 근거하여,
    상기 다수의 호스트 중 적어도 하나에 상기 적어도 하나의 확률을 할당하는 컴퓨터로 읽을 수 있는 저장매체.
  12. 제8 항에 있어서,
    상기 제2 확률적 수용 함수는,
    상기 제2 호스트와 상기 제2 호스트에 인접하는 다수의 위치의 통신 주파수, 상기 제2 호스트와 상기 제2 호스트에 인접하는 다수의 위치 중 적어도 하나 사이의 대기 시간 제한, 및 상기 제2 호스트와 상기 제2 호스트에 인접하는 다수의 위치 중 적어도 하나 사이의 대역폭 제한 중 적어도 하나에 근거하여,
    상기 제2 호스트에 인접하는 다수의 위치 중 적어도 하나에 상기 적어도 하나의 확률을 할당하는 컴퓨터로 읽을 수 있는 저장매체.
  13. 제8 항에 있어서,
    상기 제1 확률적 수용 함수, 제2 확률적 수용 함수, 및 제3 확률적 수용 함수는,
    유전학적 최적화 알고리즘 및 기계 학습 중 적어도 하나에 근거하여 실행되는 컴퓨터로 읽을 수 있는 저장매체.
  14. 제8 항에 있어서,
    상기 제3 확률적 수용 함수는,
    비용 함수의 감소 및 NoC 토폴로지 온도 중 적어도 하나에 근거하여 이동 확률을 제공하는 컴퓨터로 읽을 수 있는 저장매체.
  15. Noc(Network-on-Chip) 토폴로지를 위한 호스트 위치를 결정하는 이동 호스트 선택 모듈을 포함하는 시스템으로서,
    상기 이동 호스트 선택 모듈은:
    상기 NoC 토폴로지의 다수의 호스트로부터, 제1 호스트에 할당된 가중치를 기반으로 제1 호스트를 선택하고;
    다수의 NoC 토폴로지 호스트들 중에서 선택된 제2 호스트에 인접한 다수의 위치들 중,
    제2 확률적 수용 함수가 상기 제2 호스트에 인접한 다수의 위치 중에서 적어도 하나의 위치에 할당한, 적어도 하나의 확률에 근거하여 위치를 선택하며,
    상기 제2 호스트는 제1 확률적 수용 함수가 다수의 호스트 중 적어도 하나에 할당한 적어도 하나의 확률에 의해 결정되며;
    제1 호스트 이동 수용에 대한 결과의 지시인 이동 결정에 따라 제1 호스트를 제1 위치에서 제3 위치로 이동시키고; 그리고
    이동 수용 함수 모듈은 제3 확률적 수용 함수에 근거하여 이동 결정을 판단하는 시스템.
  16. 제15 항에 있어서,
    최대 반복 횟수에 도달할 때까지 호스트 위치 결정을 반복하고,
    상호-호스트 통신 대역폭, 상기 NoC 토폴로지, 및 하나 이상의 대기 시간 제한 중 적어도 하나를 기반으로 상기 제1 확률적 수용 함수 및 상기 제2 확률적 수용 함수를 갱신하는 시스템.
  17. 제15 항에 있어서,
    상기 NoC 토폴로지의 온도가 최소 온도 한계점에 도달할 때 때까지 호스트 위치 결정을 반복하고,
    상기 NoC 토폴로지의 온도, 상호-호스트 통신 대역폭, 상기 NoC 토폴로지, 및 하나 이상의 대기 시간 제한 중 적어도 하나를 기반으로 상기 제1 확률적 수용 함수 및 상기 제2 확률적 수용 함수를 갱신하는 시스템.
  18. 제15 항에 있어서,
    상기 제1 확률적 수용 함수는,
    상기 제1 호스트와 상기 다수의 호스트 중 적어도 하나의 통신 주파수, 상기 제1 호스트와 상기 다수의 호스트 중 적어도 하나 사이의 대기 시간 제한, 및 상기 제1 호스트와 상기 다수의 호스트 중 적어도 하나 사이의 대역폭 제한 중 적어도 하나에 근거하여,
    상기 다수의 호스트 중 적어도 하나에 상기 적어도 하나의 확률을 할당하는 시스템.
  19. 제15 항에 있어서,
    상기 제2 확률적 수용 함수는,
    상기 제2 호스트와 상기 제2 호스트에 인접하는 다수의 위치의 통신 주파수, 상기 제2 호스트와 상기 제2 호스트에 인접하는 다수의 위치 중 적어도 하나 사이의 대기 시간 제한, 및 상기 제2 호스트와 상기 제2 호스트에 인접하는 다수의 위치 중 적어도 하나 사이의 대역폭 제한 중 적어도 하나에 근거하여,
    상기 제2 호스트에 인접하는 다수의 위치 중 적어도 하나에 상기 적어도 하나의 확률을 할당하는 시스템.
  20. 제15 항에 있어서,
    상기 제1 확률적 수용 함수, 제2 확률적 수용 함수, 및 제3 확률적 수용 함수는,
    유전학적 최적화 알고리즘 및 기계 학습 중 적어도 하나에 근거하여 실행되는 시스템.
  21. 제15 항에 있어서,
    상기 제3 확률적 수용 함수는,
    비용 함수의 감소 및 NoC 토폴로지 온도 중 적어도 하나에 근거하여 이동 확률을 제공하는 시스템.
KR1020157023266A 2013-02-27 2014-01-17 전체적 대기 시간이 최소화되고 인터커넥트 비용이 감소하도록 노드들을 상호연결하는 soc ip 코어 자동 연결 방법 KR101830762B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201313779618A 2013-02-27 2013-02-27
US13/779,618 2013-02-27
US13/961,809 2013-08-07
US13/961,809 US8667439B1 (en) 2013-02-27 2013-08-07 Automatically connecting SoCs IP cores to interconnect nodes to minimize global latency and reduce interconnect cost
PCT/US2014/012012 WO2014133684A1 (en) 2013-02-27 2014-01-17 Automatically connecting socs ip cores to interconnect nodes to minimize global latency and reduce interconnect cost

Publications (2)

Publication Number Publication Date
KR20150122150A KR20150122150A (ko) 2015-10-30
KR101830762B1 true KR101830762B1 (ko) 2018-04-04

Family

ID=50158930

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157023266A KR101830762B1 (ko) 2013-02-27 2014-01-17 전체적 대기 시간이 최소화되고 인터커넥트 비용이 감소하도록 노드들을 상호연결하는 soc ip 코어 자동 연결 방법

Country Status (4)

Country Link
US (1) US8667439B1 (ko)
JP (1) JP5936793B2 (ko)
KR (1) KR101830762B1 (ko)
WO (1) WO2014133684A1 (ko)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9244880B2 (en) 2012-08-30 2016-01-26 Netspeed Systems Automatic construction of deadlock free interconnects
US8885510B2 (en) 2012-10-09 2014-11-11 Netspeed Systems Heterogeneous channel capacities in an interconnect
US8601423B1 (en) 2012-10-23 2013-12-03 Netspeed Systems Asymmetric mesh NoC topologies
US9185026B2 (en) 2012-12-21 2015-11-10 Netspeed Systems Tagging and synchronization for fairness in NOC interconnects
US9253085B2 (en) 2012-12-21 2016-02-02 Netspeed Systems Hierarchical asymmetric mesh with virtual routers
US9774498B2 (en) 2012-12-21 2017-09-26 Netspeed Systems Hierarchical asymmetric mesh with virtual routers
US9007920B2 (en) 2013-01-18 2015-04-14 Netspeed Systems QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes
US9009648B2 (en) 2013-01-18 2015-04-14 Netspeed Systems Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification
US9130856B2 (en) 2013-01-28 2015-09-08 Netspeed Systems Creating multiple NoC layers for isolation or avoiding NoC traffic congestion
US8934377B2 (en) 2013-03-11 2015-01-13 Netspeed Systems Reconfigurable NoC for customizing traffic and optimizing performance after NoC synthesis
US9160627B2 (en) 2013-04-04 2015-10-13 Netspeed Systems Multiple heterogeneous NoC layers
US9185023B2 (en) 2013-05-03 2015-11-10 Netspeed Systems Heterogeneous SoC IP core placement in an interconnect to optimize latency and interconnect performance
US9571402B2 (en) 2013-05-03 2017-02-14 Netspeed Systems Congestion control and QoS in NoC by regulating the injection traffic
US10027433B2 (en) 2013-06-19 2018-07-17 Netspeed Systems Multiple clock domains in NoC
CN105247476A (zh) * 2013-06-29 2016-01-13 英特尔公司 片上网格互连
US9781043B2 (en) 2013-07-15 2017-10-03 Netspeed Systems Identification of internal dependencies within system components for evaluating potential protocol level deadlocks
US9471726B2 (en) 2013-07-25 2016-10-18 Netspeed Systems System level simulation in network on chip architecture
US9054977B2 (en) 2013-08-05 2015-06-09 Netspeed Systems Automatic NoC topology generation
US9473388B2 (en) 2013-08-07 2016-10-18 Netspeed Systems Supporting multicast in NOC interconnect
US9223711B2 (en) 2013-08-13 2015-12-29 Netspeed Systems Combining associativity and cuckoo hashing
US9294354B2 (en) 2013-10-24 2016-03-22 Netspeed Systems Using multiple traffic profiles to design a network on chip
US9830265B2 (en) 2013-11-20 2017-11-28 Netspeed Systems, Inc. Reuse of directory entries for holding state information through use of multiple formats
US9158882B2 (en) 2013-12-19 2015-10-13 Netspeed Systems Automatic pipelining of NoC channels to meet timing and/or performance
US9699079B2 (en) 2013-12-30 2017-07-04 Netspeed Systems Streaming bridge design with host interfaces and network on chip (NoC) layers
US9473415B2 (en) 2014-02-20 2016-10-18 Netspeed Systems QoS in a system with end-to-end flow control and QoS aware buffer allocation
US9319232B2 (en) 2014-04-04 2016-04-19 Netspeed Systems Integrated NoC for performing data communication and NoC functions
US9762474B2 (en) * 2014-04-07 2017-09-12 Netspeed Systems Systems and methods for selecting a router to connect a bridge in the network on chip (NoC)
US9465902B1 (en) 2014-04-11 2016-10-11 Altera Corporation Method and apparatus for designing a system using weighted-cost interconnect synthesis
US9244845B2 (en) 2014-05-12 2016-01-26 Netspeed Systems System and method for improving snoop performance
US9473359B2 (en) 2014-06-06 2016-10-18 Netspeed Systems Transactional traffic specification for network-on-chip design
US9535848B2 (en) 2014-06-18 2017-01-03 Netspeed Systems Using cuckoo movement for improved cache coherency
US9553762B1 (en) 2014-06-26 2017-01-24 Altera Corporation Network-on-chip with fixed and configurable functions
US10528682B2 (en) 2014-09-04 2020-01-07 Netspeed Systems Automatic performance characterization of a network-on-chip (NOC) interconnect
US9742630B2 (en) 2014-09-22 2017-08-22 Netspeed Systems Configurable router for a network on chip (NoC)
US9477280B1 (en) 2014-09-24 2016-10-25 Netspeed Systems Specification for automatic power management of network-on-chip and system-on-chip
US10042404B2 (en) 2014-09-26 2018-08-07 Netspeed Systems Automatic generation of power management sequence in a SoC or NoC
US9571341B1 (en) 2014-10-01 2017-02-14 Netspeed Systems Clock gating for system-on-chip elements
US9529400B1 (en) 2014-10-29 2016-12-27 Netspeed Systems Automatic power domain and voltage domain assignment to system-on-chip agents and network-on-chip elements
US9660942B2 (en) 2015-02-03 2017-05-23 Netspeed Systems Automatic buffer sizing for optimal network-on-chip design
US9444702B1 (en) 2015-02-06 2016-09-13 Netspeed Systems System and method for visualization of NoC performance based on simulation output
US9568970B1 (en) 2015-02-12 2017-02-14 Netspeed Systems, Inc. Hardware and software enabled implementation of power profile management instructions in system on chip
US9928204B2 (en) 2015-02-12 2018-03-27 Netspeed Systems, Inc. Transaction expansion for NoC simulation and NoC design
US10050843B2 (en) 2015-02-18 2018-08-14 Netspeed Systems Generation of network-on-chip layout based on user specified topological constraints
US10348563B2 (en) 2015-02-18 2019-07-09 Netspeed Systems, Inc. System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology
US9825809B2 (en) 2015-05-29 2017-11-21 Netspeed Systems Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip
US9864728B2 (en) 2015-05-29 2018-01-09 Netspeed Systems, Inc. Automatic generation of physically aware aggregation/distribution networks
US10218580B2 (en) 2015-06-18 2019-02-26 Netspeed Systems Generating physically aware network-on-chip design from a physical system-on-chip specification
US9665683B1 (en) * 2015-10-23 2017-05-30 Xilinx, Inc. Designing a system for a programmable system-on-chip using performance characterization techniques
US10452124B2 (en) 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
US20180159786A1 (en) 2016-12-02 2018-06-07 Netspeed Systems, Inc. Interface virtualization and fast path for network on chip
US10313269B2 (en) 2016-12-26 2019-06-04 Netspeed Systems, Inc. System and method for network on chip construction through machine learning
US10063496B2 (en) 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
US10084725B2 (en) * 2017-01-11 2018-09-25 Netspeed Systems, Inc. Extracting features from a NoC for machine learning construction
US10469337B2 (en) 2017-02-01 2019-11-05 Netspeed Systems, Inc. Cost management against requirements for the generation of a NoC
US10298485B2 (en) 2017-02-06 2019-05-21 Netspeed Systems, Inc. Systems and methods for NoC construction
WO2018193352A1 (en) * 2017-04-17 2018-10-25 Cerebras Systems Inc. Dataflow triggered tasks for accelerated deep learning
US10983910B2 (en) 2018-02-22 2021-04-20 Netspeed Systems, Inc. Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US11144457B2 (en) 2018-02-22 2021-10-12 Netspeed Systems, Inc. Enhanced page locality in network-on-chip (NoC) architectures
US10896476B2 (en) 2018-02-22 2021-01-19 Netspeed Systems, Inc. Repository of integration description of hardware intellectual property for NoC construction and SoC integration
US10547514B2 (en) 2018-02-22 2020-01-28 Netspeed Systems, Inc. Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US11023377B2 (en) 2018-02-23 2021-06-01 Netspeed Systems, Inc. Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA)
US11176302B2 (en) 2018-02-23 2021-11-16 Netspeed Systems, Inc. System on chip (SoC) builder
US10860762B2 (en) 2019-07-11 2020-12-08 Intel Corpration Subsystem-based SoC integration
KR102391802B1 (ko) * 2020-11-04 2022-04-29 성균관대학교산학협력단 유전 알고리즘 기반의 토폴로지 합성 방법
CN114500355B (zh) * 2022-02-16 2023-06-16 上海壁仞智能科技有限公司 路由方法、片上网络、路由节点和路由装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011077897A1 (ja) 2009-12-21 2011-06-30 日本電気株式会社 経路計算方法、経路計算装置、通信システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8059551B2 (en) * 2005-02-15 2011-11-15 Raytheon Bbn Technologies Corp. Method for source-spoofed IP packet traceback
EP2076874A4 (en) * 2006-05-13 2011-03-09 Sap Ag DERIVED CONSISTENT SET OF INTERFACES DERIVED FROM A BUSINESS OBJECT MODEL
US8099757B2 (en) * 2007-10-15 2012-01-17 Time Warner Cable Inc. Methods and apparatus for revenue-optimized delivery of content in a network
US8065433B2 (en) * 2009-01-09 2011-11-22 Microsoft Corporation Hybrid butterfly cube architecture for modular data centers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011077897A1 (ja) 2009-12-21 2011-06-30 日本電気株式会社 経路計算方法、経路計算装置、通信システム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Achieving network on chip fault tolerance by adaptive remapping", Parallel & Distributed Processing International Symposium : IEEE(pp. 1-4), May 2009
"Homogeneous NoC based FPGA: The Foundation for Virtual FPGA" , Computer and Information Technology 10th International Conference : IEEE(pp. 62-67), June 2010
"NoC-Based FPGA: Architecture and Routing", Networks-on-Chip First International Symposium : IEEE(pp. 253-262), May 2007

Also Published As

Publication number Publication date
WO2014133684A1 (en) 2014-09-04
JP2016510549A (ja) 2016-04-07
JP5936793B2 (ja) 2016-06-22
KR20150122150A (ko) 2015-10-30
US8667439B1 (en) 2014-03-04

Similar Documents

Publication Publication Date Title
KR101830762B1 (ko) 전체적 대기 시간이 최소화되고 인터커넥트 비용이 감소하도록 노드들을 상호연결하는 soc ip 코어 자동 연결 방법
JP6060316B2 (ja) NoCを構成するための方法及びシステム並びにコンピュータ可読記憶媒体
US9569579B1 (en) Automatic pipelining of NoC channels to meet timing and/or performance
JP6216454B2 (ja) ネットワークオンチップアーキテクチャにおけるシステムレベルシミュレーション
US9529400B1 (en) Automatic power domain and voltage domain assignment to system-on-chip agents and network-on-chip elements
US9130856B2 (en) Creating multiple NoC layers for isolation or avoiding NoC traffic congestion
JP2016510549A5 (ko)
US9477280B1 (en) Specification for automatic power management of network-on-chip and system-on-chip
KR102374572B1 (ko) 네트워크 온 칩 설계를 위한 트랜잭션 트래픽 스펙
US9185023B2 (en) Heterogeneous SoC IP core placement in an interconnect to optimize latency and interconnect performance
US9160627B2 (en) Multiple heterogeneous NoC layers
US10313269B2 (en) System and method for network on chip construction through machine learning
US10547514B2 (en) Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US20180183727A1 (en) Traffic mapping of a network on chip through machine learning
US10469338B2 (en) Cost management against requirements for the generation of a NoC
US9762474B2 (en) Systems and methods for selecting a router to connect a bridge in the network on chip (NoC)
US20180198682A1 (en) Strategies for NoC Construction Using Machine Learning

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant