KR102462577B1 - 네트워크 온 칩 통신 장치 및 네트워크 온 칩 통신을 위한 라우터 장치 - Google Patents
네트워크 온 칩 통신 장치 및 네트워크 온 칩 통신을 위한 라우터 장치 Download PDFInfo
- Publication number
- KR102462577B1 KR102462577B1 KR1020210020309A KR20210020309A KR102462577B1 KR 102462577 B1 KR102462577 B1 KR 102462577B1 KR 1020210020309 A KR1020210020309 A KR 1020210020309A KR 20210020309 A KR20210020309 A KR 20210020309A KR 102462577 B1 KR102462577 B1 KR 102462577B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- router
- output port
- channel
- routing
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/101—Packet switching elements characterised by the switching fabric construction using crossbar or matrix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/205—Quality of Service based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 네트워크 온 칩 통신 장치 및 네트워크 온 칩 통신을 위한 라우터 장치를 개시한다. 본 발명에 따르면, 복수의 입출력 포트를 포함하는 복수의 라우터 인터페이스, 상기 복수의 라우터 인터페이스를 통한 통신 요청에 대한 로컬 라우팅을 제어하는 스위칭 컨트롤러 및 상기 복수의 라우터 인터페이스를 상호 연결하는 통로인 물리 채널을 생성하는 크로스바 스위치를 포함하는 복수의 라우터; 및 가상 채널 및 직접 채널을 포함하는 복수의 링크 유닛 및 상기 복수의 링크 유닛을 제어하는 링크 컨트롤러를 통해 상기 복수의 라우터 중 서로 인접한 라우터를 연결하여 복수의 방향으로 패킷을 전달하는 복수의 링커를 포함하되, 상기 패킷은 QoS 수준과 라우터의 중재 정책 및 통신 트래픽에 따라 통신 연결에 대한 우선 순위가 적응적으로 결정되며, 상기 스위칭 컨트롤러는 모든 사이클에 서비스를 제공하기 위해 입력되는 패킷의 헤드 플릿의 정보를 분석하여 상기 QoS 수준과 상기 중재 정책 및 상기 통신 트래픽에 따라 적응적으로 결정된 상기 패킷의 우선 순위에 따라 상기 우선 순위가 가장 높은 패킷부터 차례로 요청하는 출력 포트의 상태를 확인한 후 사용 가능한 출력 포트가 있는 경우, 입력-출력 포트 쌍을 선택하고 상기 패킷 전송을 위한 물리 채널을 생성하는 네트워크 온 칩 통신 장치가 제공된다.
Description
본 발명은 네트워크 온 칩 통신 장치 및 네트워크 온 칩 통신을 위한 라우터 장치에 관한 것이다.
네트워크 온 칩(Network-on-Chip: NoC)은 SoC 칩 내부의 여러 가지 기능 모듈 사이를 연결하는 방식 중 하나로, 수많은 연산기 사이에서 통신이 발생하고, 이때 발생하는 데이터는 패킷 방식으로 내부 네트워크를 통해 전달된다.
따라서 네트워크 내부에서 전달되는 많은 데이터 패킷에 의해 발생할 수 있는 데드락(deadlock)을 방지하고 통신 효율을 개선하기 위해 가상 채널(virtual channel)을 사용하는 경우가 많다. 가상 채널을 통해 네트워크 내부에서 패킷의 추월이나 임시 보관이 가능해져 유효 통신 대역폭을 증가시킬 수 있다.
네트워크 온 칩에서 하나의 기본 통신 유닛은 일반적으로 다른 통신 유닛과 연결되는 4개 이상의 통신 포트와 IP(Intellectual property)를 위한 하나의 포트 등 총 5개 이상의 포트를 갖는 하나의 라우터로 구성되며, 각 라우터에는 하나의 로컬 코어(local core)만이 연결되고 나머지 포트는 다른 라우터와의 연결에 이용된다.
네트워크 온 칩의 설계는 일반적으로 패킷 지연 최소화, 라우터 영역 감소, 통신 에너지 오버 헤드 감소 등 여러 상충되는 제약 조건을 충족해야 한다. 다중 프로세서 시스템 온 칩(MPSoC)은 증가하는 기능적 요구를 충족하기 위해 네트워킹, 신호 처리, 범용 및 심층 신경망과 같은 많은 애플리케이션에 사용된다.
따라서 네트워크 온 칩은 광범위한 통신 시나리오 및 서비스 품질 (QoS) 요구 사항을 지원할 수 있을 만큼 충분히 유연해야 한다.
상기한 종래기술의 문제점을 해결하기 위해, 본 발명은 네트워크 구성에 대한 유연성을 확보하며 서비스 품질을 향상시킬 수 있는 네트워크 온 칩 통신 장치 및 네트워크 온 칩 통신을 위한 라우터 장치를 제안하고자 한다.
상기한 바와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따르면, 네트워크 온 칩 통신 장치로서, 복수의 입출력 포트를 포함하는 복수의 라우터 인터페이스, 상기 복수의 라우터 인터페이스를 통한 통신 요청에 대한 로컬 라우팅을 제어하는 스위칭 컨트롤러 및 상기 복수의 라우터 인터페이스를 상호 연결하는 통로인 물리 채널을 생성하는 크로스바 스위치를 포함하는 복수의 라우터; 및 가상 채널 및 직접 채널을 포함하는 복수의 링크 유닛 및 상기 복수의 링크 유닛을 제어하는 링크 컨트롤러를 통해 상기 복수의 라우터 중 서로 인접한 라우터를 연결하여 복수의 방향으로 패킷을 전달하는 복수의 링커를 포함하되, 상기 패킷은 QoS 수준과 라우터의 중재 정책 및 통신 트래픽에 따라 통신 연결에 대한 우선 순위가 결정되며, 상기 스위칭 컨트롤러는 모든 사이클에 서비스를 제공하기 위해 입력되는 패킷의 헤드 플릿의 정보를 분석하여 상기 QoS 수준과 상기 중재 정책 및 상기 통신 트래픽에 따라 결정된 상기 패킷의 우선 순위에 따라 상기 우선 순위가 가장 높은 패킷부터 차례로 요청하는 출력 포트의 상태를 확인한 후 사용 가능한 출력 포트가 있는 경우, 입력-출력 포트 쌍을 선택하고 상기 패킷 전송을 위한 물리 채널을 생성하는 네트워크 온 칩 통신 장치가 제공된다.
상기 복수의 링커는 수직 및 수평 방향으로 서로 인접한 라우터 사이에 배치되는 하나 이상의 제1 링커, 대각선 방향으로 서로 인접한 라우터 사이에 배치되는 하나 이상의 제2 링커 및 수평, 수직 및 대각선 방향 중 두 개 이상의 방향으로 서로 인접한 3 개 이상의 라우터 사이에 배치되는 제3 링커를 포함할 수 있다.
상기 복수의 라우터 인터페이스 각각은 서비스를 제공하기 위해 입력되는 패킷의 헤드 플릿을 통해 직접 라우팅이 필요한지 여부를 판단하고, 직접 라우팅이 필요한 경우 상기 스위칭 컨트롤러의 개입 없이 상기 복수의 라우터 인터페이스 각각의 내부에서 직접 데이터 경로를 설정할 수 있다.
상기 가상 채널은 하나 이상의 전용 가상 채널 및 공유 가상 채널을 포함하고, 상기 하나 이상의 전용 가상 채널은 미리 설정된 QoS 수준을 갖는 패킷으로만 점유될 수 있다.
상기 QoS 수준은 상기 라우터가 제공해야 하는 최소 요구 대역폭, 최소 또는 최대 라우팅 사이클 및 통신 패턴 중 하나를 통해 결정되고, 상기 스위칭 컨트롤러는 상기 패킷의 QoS 수준에 따른 제공 대역폭 또는 라우팅 결과를 포함하는 통신 트래픽을 모니터링하고 저장할 수 있다.
상기 스위칭 컨트롤러는 중재기, 경로 계산기 및 스위치 할당기를 포함하고, 상기 중재기는 상기 우선 순위에 따라 상기 입력-출력 포트 쌍을 선택하고, 상기 선택 결과에 따라 상기 크로스바 스위치가 물리 채널을 생성할 수 있다.
상기 경로 계산기는 상기 입력되는 패킷의 헤드 플릿으로부터 상기 입력되는 패킷의 목적지를 파악하고, 네트워크 토폴로지와 링커의 위치 및 개수에 따라 상기 목적지에 도달하기 위한 하나 이상의 출력 포트를 선택할 수 있다.
상기 스위치 할당기는 중재 단계에서 상기 출력 포트의 상태 정보를 제공하고 상기 중재기의 요청을 받아 상기 크로스바 스위치에 채널 생성 정보를 생성하여 제공하고, 상기 채널 생성 정보에 따라 상기 크로스바 스위치에서 물리 채널을 생성하도록 하고, 상기 출력 포트 사용중에는 상기 입력 패킷의 테일 플릿(tail flit)을 모니터링하여 상기 출력 포트의 상태 변화를 상기 중재기에 지연 시간 없이 제공할 수 있다.
본 발명의 다른 측면에 따르면, 네트워크 온 칩 통신을 위한 라우터 장치로서, 복수의 입출력 포트를 포함하는 복수의 라우터 인터페이스; 상기 복수의 라우터 인터페이스를 통한 통신 요청에 대한 로컬 라우팅을 제어하는 스위칭 컨트롤러; 및 상기 복수의 라우터 인터페이스를 상호 연결하는 통로인 물리 채널을 생성하는 크로스바 스위치를 포함하되, 상기 라우터 장치는 가상 채널 및 직접 채널을 포함하는 복수의 링크 유닛 및 상기 복수의 링크 유닛을 제어하는 링크 컨트롤러를 포함하는 링커를 통해 수직, 수평 및 대각선 방향 중 하나의 방향으로 인접한 다른 라우터와 양방향으로 패킷을 송수신하고, 상기 패킷은 QoS 수준과 라우터의 중재 정책 및 통신 트래픽에 따라 통신 연결에 대한 우선 순위가 적응적으로 결정되며, 상기 스위칭 컨트롤러는 모든 사이클에 서비스를 제공하기 위해 입력되는 패킷의 헤드 플릿의 정보를 분석하여 상기 QoS 수준과 상기 중재 정책 및 상기 통신 트래픽에 따라 적응적으로 결정된 상기 패킷의 우선 순위에 따라 상기 우선 순위가 가장 높은 패킷부터 차례로 요청하는 출력 포트의 상태를 확인한 후 사용 가능한 출력 포트가 있는 경우, 입력-출력 포트 쌍을 선택하고 상기 패킷 전송을 위한 물리 채널을 생성하는 라우터 장치가 제공된다.
본 발명에 따르면, 광범위한 통신 시나리오 및 서비스 품질 (QoS) 요구 사항을 지원할 수 있을 만큼 충분히 유연성을 가지면서 구현에 필요한 게이트 수와 전력 소모를 줄일 수 있는 장점이 있다.
도 1은 본 발명의 바람직한 일 실시예에 따른 네트워크 온 칩 통신 장치의 구성을 도시한 도면이다.
도 2는 4개의 라우터의 대각선 방향으로 링커가 제공되는 구조를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 라우터의 상세 구성을 도시한 도면이다.
도 4는 본 발명의 다른 실시예에 따른 라우터의 상세 구성을 도시한 도면이다.
도 5는 본 실시예에 따른 스위칭 컨트롤러의 구성을 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 링커의 상세 구성을 도시한 도면이다.
도 7은 라우터의 가상 채널의 세트를 도시한 도면이다.
도 8은 본 실시예에 따른 수정된 West-first 라우팅 알고리즘의 의사 코드를 나타낸 도면이다.
도 2는 4개의 라우터의 대각선 방향으로 링커가 제공되는 구조를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 라우터의 상세 구성을 도시한 도면이다.
도 4는 본 발명의 다른 실시예에 따른 라우터의 상세 구성을 도시한 도면이다.
도 5는 본 실시예에 따른 스위칭 컨트롤러의 구성을 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 링커의 상세 구성을 도시한 도면이다.
도 7은 라우터의 가상 채널의 세트를 도시한 도면이다.
도 8은 본 실시예에 따른 수정된 West-first 라우팅 알고리즘의 의사 코드를 나타낸 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 네트워크 온 칩 통신 장치의 구성을 도시한 도면이다.
도 1에 도시된 바와 같이, 본 실시예에 따른 네트워크 온 칩 통신 장치는 복수의 라우터(router, 100)와 링커(linker, 102)를 포함한다.
본 실시예에 따른 네트워크 온 칩 통신 장치는 통합 시스템 네트워크 아키텍쳐(Unified System Network Architecture, USNA)로 정의될 수 있다.
도 1은 16개의 로컬 코어가 있는 2×2 토러스(torus) USNA 네트워크 구성을 도시한 도면으로, 4개의 8 포트 라우터(100)에 각각 4개의 로컬 코어(104)와 링커(102)가 연결된 구조를 도시한 것이다.
각 라우터(100)의 포트의 수는 기존의 NoC와 달리 유연하게 구성할 수 있고, 각 라우터(100)의 포트에 로컬 코어(104) 또는 링커(102)가 플러그 앤 플레이 방식으로 연결된다.
링커(102)는 서로 인접한 라우터(100)를 연결하는데 사용되며, 로컬 코어(104)는 컴퓨팅 장치이다.
기존의 네트워크 온 칩의 라우터는 지정된 포트에 하나의 로컬 코어만 연결할 수 있으나, 본 실시예에 따른 네트워크 온 칩 통신 장치에서 각 라우터(100)에 연결되는 로컬 코어(104) 및 링커(102)의 수는 애플리케이션에 따라 독립적으로 조정될 수 있다.
즉, 본 실시예에 따른 네트워크 온 칩 통신 장치는 다양한 애플리케이션 요구 사항에 따라 일반 또는 맞춤형 토폴로지를 구축할 수 있다. 연산량이 많은 경우에는 로컬 코어의 수를 증가시켜 연산 능력을 향상시키고 통신량이 많은 경우에는 링커의 수를 증가시켜 통신 대역폭을 증가시킬 수 있다. 기존 네트워크 온 칩은 로컬 코어 수를 증가시키기 위해서는 라우터 수를 증가시켜야 하고 대역폭 증가는 라우터 구조의 변화를 필요로 하나 본 발명의 네트워크 온 칩은 주어진 라우터 내에서 로컬 코어와 링커의 수를 조절하여 연산량과 대역폭 증가를 조절할 수 있다. 이는 네트워크 온 칩에서 라우터의 수를 증가시키지 않고도 연산량의 증가가 가능함을 의미한다. 또한 라우터는 특정한 포트 수에 의존적이지 않고 스케일러블(scalable)한 구조를 가져 포트 수의 변화가 용이하다.
토폴로지는 라우터의 배치와 연결 방법을 의미하며 토폴로지에 따라 패킷이 목적지에 도달하기 위해 라우팅될 수 있는 경로가 다를 수 있고, 네트워크 성능 및 구현 비용에 상당한 영향이 미친다. 대표적인 토폴로지는 메시(Mesh), 토러스(Torus), 그리고 링(Ring) 등이 있다.
라우터(100)와 로컬 코어(104) 사이 및 라우터(100)와 링커(102) 사이의 인터페이스 동작은 유사하며, 이는 기존의 NoC와 달리 로컬 코어(104)와 링커(102)를 라우터(100)의 어떠한 포트에도 연결할 수 있음을 의미한다.
도 2는 4개의 라우터의 대각선 방향으로 링커가 제공되는 구조를 도시한 도면이다.
도 1 내지 2를 참조하면, 더 높은 통신 대역폭이 필요한 경우 두 개의 링커(102)가 4 개의 로컬 코어를 대체할 수 있으며, 링커(102)는 수직 및 수평 방향으로 서로 인접한 라우터(100) 사이에 배치될 뿐만 아니라, 트래픽 패턴에 따라 대각선 방향으로 서로 인접한 3개 이상의 라우터(100) 사이에 배치될 수도 있다. 패킷이 하나의 라우터를 통과하는 것을 1 홉(hop)이라 하는데, 대각선 방향 링커는 수평, 수평 방향으로 각각 1 홉씩, 총 2 홉이 필요한 패킷 전달을 1 홉에 마치도록 해주어 통신 성능을 증가시킨다.
도 3은 본 실시예에 따른 라우터의 상세 구성을 도시한 도면이다.
도 3에 도시된 바와 같이, 본 실시예에 따른 라우터는 8포트 라우터일 수 있고, 복수의 입출력 포트를 포함하는 복수의 라우터 인터페이스(Router-IF, 300), 복수의 라우터 인터페이스(300)를 통한 통신 요청에 대한 로컬 라우팅을 제어하는 스위칭 컨트롤러(Switching controller, 302) 및 복수의 라우터 인터페이스를 상호 연결하는 통로인 물리 채널을 생성하는 크로스바 스위치(Crossbar switch, 304)를 포함할 수 있다.
라우터(100)의 하나의 입출력 포트는 서로 독립적으로 동작하는 입력 포트와 출력 포트를 포함하고 서로 다른 두 개의 패킷을 동시에 전달할 수 있다. 이후, 포트는 입출력 포트와 같은 의미로 사용하고 입력 포트와 출력 포트는 포트에서 각각 입력 기능의 포트와 출력 기능의 포트만을 의미할 때 사용한다.
각 라우터 인터페이스(300)의 포트에는 로컬 코어(104) 또는 링커(102)가 연결될 수 있다. 여기서, 로컬 코어(104)는 네트워크 인터페이스(106)를 통해 라우터(100)와 연결된다. 각 라우터 인터페이스(300)에 연결된 2개의 포트는 스위칭 컨트롤러(302)의 개입 없이 직접 라우팅 할 수 있다. 라우터의 전체 포트의 수와 동작 필요에 따라 라우터 인터페이스는 3 개 이상의 포트를 포함할 수 있다.
라우터(100)에 새 패킷(헤드 플릿(head filt))이 도착하면 라우터 인터페이스(300)는 "직접 라우팅(direct routing)"이 필요한지 확인하며, "직접 라우팅"이 필요한 경우 스위칭 컨트롤러(302)의 개입 없이 라우터 인터페이스(300) 내부에서 직접 경로(direct path)를 설정한다.
즉, 직접 라우팅의 경우 라우터 인터페이스(300) 내부에서 패킷이 들어온 포트와 서로 다른 포트로 통신 채널을 생성하여 패킷을 전달하여 스위칭 컨트롤러(302)에 채널 형성 요청을 하지 않으며, 라우터(100)의 스위칭 컨트롤러(302)는 다른 패킷을 처리할 수 있어 통신 성능을 증가시킨다.
여기서 플릿은 네트워크 온 칩에서 흐름 제어가 이루어지는 최소 단위인데 헤드 플릿은 패킷의 첫번째 플릿이고 테일 플릿(tail flit)은 패킷의 마지막 플릿이다.
직접 라우팅은 패킷이 도착했을 때와 동일한 사이클(cycle)에 이루어진다.
도 4는 본 발명의 다른 실시예에 따른 라우터의 상세 구성을 도시한 도면이다
라우터 인터페이스에 2개의 링커가 연결되어 있고, 상기 링커가 각각 서로 다른 라우터에 연결되어 있을 때, 도착한 패킷에 대해 직접 라우팅이 이루어지면 해당 패킷은 라우터의 크로스바 스위치(304)를 우회하여 단일 사이클에 다음 라우터에 도달하여 한번에 두 홉을 이동한다. 즉, 도 4와 같이 8 포트 라우터(100)에서 라우터 인터페이스(300)가 수직과 수평 방향의 링커(102)를 통해 서로 다른 라우터와 연결되어 있는 구조에서 라우터 1에서 라우터 2를 거쳐 라우터 3으로 전달하는 패킷은 라우터 2에서 라우터 인터페이스(300)의 직접 라우팅을 이용하여 라우터 2에서의 라우팅 지연 없이 패킷을 전송할 수 있다.
직접 라우팅이 설정되지 않은 경우, 라우터 인터페이스(300)는 "로컬 라우팅"을 위해 라우팅 요청 신호를 스위칭 컨트롤러(302)로 전송한다.
도 5는 본 실시예에 따른 스위칭 컨트롤러의 구성을 도시한 도면이다.
도 5에 도시된 바와 같이, 본 실시예에 따른 스위칭 컨트롤러(302)는 중재기(Aribiter, ARB, 500), 경로 계산기(Route Computation, RC, 502) 및 스위치 할당기(Switch Allocator, SA, 504)를 포함한다.
패킷은 QoS 수준과 라우터의 중재 정책에 따라 통신 연결에 대한 우선 순위를 정할 수 있다.
중재기(500)는 모든 사이클에 서비스를 제공하기 위해 입력되는 패킷의 헤드 플릿의 정보를 분석하여 QoS 수준과 중재기(500)의 중재 정책에 따라 우선 순위를 부여하고 우선 순위가 가장 높은 패킷부터 차례로 요청하는 출력 포트의 상태를 확인한 후 사용 가능한 출력 포트가 있는 경우, 입력-출력 포트 쌍을 선택하고, 그 결과에 따라 상기 크로스바 스위치(304)가 물리 채널을 생성한다.
가장 간단한 2 단계 QoS 수준의 경우 일반적으로 GT 패킷과 BE 패킷으로 구분하며 GT 패킷이 더 높은 우선 순위를 갖는다. QoS 수준이 같은 경우 중재기(500) 내부의 중재 정책에 따라 우선 순위를 결정한다.
QoS 수준은 단순히 우선 순위만을 의미하는 것은 아니고 라우터가 제공해야 할 최소 요구 대역폭이나 최소 또는 최대 라우팅 사이클, 통신 패턴 중 하나를 통해 결정될 수 있다. 즉, QoS 수준이 낮아도 최소 요구 대역폭을 포함하는 특정한 QoS 수준의 경우 중재기(500)에서 최소 요구 대역폭을 제공하지 못하면 대역폭을 만족시키기 위해 더 높은 우선 순위를 제공할 수 있다. 또는 일정한 사이클에 한번씩 라우팅을 제공하거나 한계 시간이 되었을 때 가장 높은 우선 순위를 제공할 수 있다. 이를 통해 해당 QoS 수준에 대해 일정한 대역폭을 제공하여 기아 상태가 되지 않도록 하거나 일정한 사이클로 패킷을 전송하여 시스템이 요구하는 정기적인 패킷 전송을 보장할 수 있다. 이를 위해 중재기(500)는 패킷의 QoS 수준에 따른 제공 대역폭이나 라우팅 결과를 포함하는 통신 트래픽 정보를 모니터링하고 저장할 수 있다. 이를 통해 소스와 QoS 수준에 따른 제공 대역폭과 패킷의 빈도수에 대한 정보를 축적 및 저장하여 최소 요구 대역폭과 라우팅 빈도 등, QoS 수준에 따른 요구 사항을 만족시키고 사용자에게 패킷 트래픽에 대한 정보를 제공할 수 있다. QoS 수준은 그 값에 따라 우선 순위를 의미할 수도 있고 요구하는 최소 대역폭일 수도 있다. 또는 두 가지 요소를 다 의미할 수도 있다. 이외에도 우선 순위에 영향을 미치는 다른 요소를 포함할 수도 있다. 중재기는 동일한 QoS 수준의 패킷에 대해서 저장된 모니터링 결과에 따라 적응적으로 우선 순위를 부여함으로써 전체적인 라우팅 효과를 최대한 높이도록 동작한다.
중재기(500)는 패킷이 입력되면 각 QoS 수준이 의미하는 바를 해석하고 중재기 내부의 중재 정책에 따라 그에 적합한 우선 순위를 패킷에 부여하여 크로스바 스위치(304)가 물리 채널을 생성할 수 있도록 한다.
전술한 바와 같이, 중재기(500)는 경로 계산기(502)가 입력 패킷의 헤드 플릿을 분석하여 계산한 출력 포트 정보에 대해, 스위치 할당기(504)가 제공하는 출력 포트 상태 정보를 이용하여 사용 가능 여부를 파악하고 최종적으로 해당 입력 패킷에 대한 출력 포트를 결정한다. 이에 따라 사용 가능한 출력 포트에 대해 입력 패킷이 들어오는 입력 포트와 출력 포트 조합인 입력-출력 포트 쌍이 생성되는데, 하나의 입력-출력 포트 쌍은 크로스바 스위치(304)에서 하나의 물리 채널에 대응한다. 물리 채널은 크로스바 스위치(304)에서 입력-출력 포트 쌍, 그리고 그 사이의 물리적인 패킷 전송 통로를 의미한다. 하나의 출력 포트에는 하나의 패킷만 할당 가능하므로, 우선 순위에 따라 입력 패킷에 대한 출력 포트를 찾을 때, 현재의 입력 패킷에 대응하는 모든 출력 포트가 이미 우선 순위가 높은 입력 패킷에 할당된 경우에는 해당 입력 패킷은 전송을 위한 물리 채널을 생성할 수 없어, 현재 사이클에 전송할 수 없다. 이렇게 생성한 입력 포트와 출력 포트의 조합은 복수 개일 수 있으며, 이 경우 크로스바 스위치(304)에서 동시에 복수의 물리 채널을 생성시킬 수 있다. 8 포트 라우터의 경우 크로스바 스위치는 최대 8개의 단방향 물리 채널을 동시에 생성할 수 있다,
한 사이클에 선택되는 입력-출력 포트 쌍의 수는 입력 패킷의 수와 사용 가능한 출력 포트의 수에 의해 결정되거나 한 사이클에 동시 생성 가능한 채널의 수에 의해 결정된다.
중재기(500)의 복잡도를 줄이기 위해서 한 사이클에 동시에 생성하는 물리 채널의 수를 제한할 수 있는데, 이 경우, 우선 순위가 낮은 패킷은 라우팅 리소스 충돌이 없어도 (즉, 출력 포트가 사용 가능하여도) 서비스 사이클을 한 번 이상 기다려야 할 수 있으나, 패킷의 플릿 수가 많거나 패킷의 라우터에 대한 주입률(injection rate)이 높지 않은 경우에는 동시적으로 다중 패킷이 도착할 확률이 매우 낮기 때문에 네트워크 성능에 크게 영향을 주지 않는다. 그러나 패킷의 플릿 수가 많지 않거나 라우터에 대한 주입률이 높은 경우에는 성능에 영향을 주므로 한 사이클에 동시에 생성하는 채널 수를 증가시킬 필요가 있다.
본 실시예에 따른 중재기(500)는 경로 계산기(502)가 제공하는 출력 포트 정보를 이용하여 스위치 할당기(504)가 생성한 출력 포트의 상태를 확인한 후 사용 가능한 출력 포트를 선택한다.
경로 계산기(502)는 입력 패킷 헤드 플릿을 분석하여 목적지에 따라 출력 포트를 결정하여 중재기(500)로 전달한다. 이 때 출력 포트는 링커(102)의 위치와 네트워크의 토폴로지에 따라 하나 또는 그 이상으로 선택될 수 있다. 복수의 출력 포트가 선택될 경우 각 출력 포트에 우선 순위를 부여할 수 있는데, 가장 효과적인 경로를 형성하는 출력 포트에 대해 더 높은 우선 순위를 부여한다.
스위치 할당기(504)는 중재기(500)에서 생성한 입력-출력 포트 쌍을 전달 받아 채널 생성에 필요한 정보를 생성하여 크로스바 스위치(304)에 전달하여 크로스바 스위치(304)가 물리 채널을 생성하도록 한다. 채널 생성에 필요한 정보는 패킷이 들어온 입력 포트 ID와 출력 포트 ID일 수 있다.
또한 스위치 할당기(504)는 현재 생성된 물리 채널 정보를 가지고 있으며 각 포트에 대한 사용 가능 여부를 중재기(500)에 제공한다. 물리 채널이 생성되어 패킷 전송이 이루어지는 경우에는 입력 패킷의 플릿을 모니터링하여 테일 플릿(tail flit)을 발견하면 해당 물리 채널에 포함된 출력 포트가 다음 사이클에 사용 가능하므로 이를 미리 결정하여 지연 시간 없이 중재기(500)에 출력 포트의 상태를 알려 해당 출력 포트를 연속적으로 패킷 전송에 이용할 수 있도록 한다.
동일한 출력 포트에 대해 로컬 라우팅과 직접 라우팅이 동시에 이루어지는 충돌 상황이 라우터 인터페이스(300)에서 발생할 경우 전송 패킷의 우선 순위에 따라 출력 포트를 할당한다. 이 경우, 우선 순위가 낮은 패킷이 우선 순위가 높은 패킷의 전송이 완료될 때까지 기다린다.
전송할 패킷의 우선 순위가 같은 경우에는 로컬 라우팅에 더 높은 우선 순위가 할당된다. 이는 직접 라우팅과 로컬 라우팅이 충돌할 때 크로스바 스위치(304)에서 물리 채널이 생성된 상태이므로, 직접 라우팅에 우선권을 줄 경우 라우터 인터페이스(300)가 직접 라우팅을 해제할 때까지 로컬 라우팅에 할당된 물리 채널이 유휴 상태가 되어 다른 패킷의 전송에도 사용할 수 없어 라우터의 성능이 저하되기 때문이다.
QoS 수준에 따른 우선 순위는 상기 직접 라우팅과 상기 로컬 라우팅 사이의 우선 순위보다 우선하여 상기 GT 패킷에 대한 직접 라우팅이 상기 BE 패킷에 대한 로컬 라우팅보다 더 높은 우선 순위가 할당될 수 있다.
도 6은 본 발명의 일 실시예에 따른 링커의 상세 구성을 도시한 도면이다.
본 실시예에 따른 링커(102)는 라우터(100)를 연결하여 패킷 전송 유형을 결정한다.
링커는 응용 프로그램에 따라 단일 레지스터 슬라이서 또는 가상 채널(VC)을 포함할 수 있다.
도 6은 복수의 가상 채널과 특정한 QoS 수준의 패킷 전송에 사용되는 단일 레지스터 슬라이서인 단일 직접 채널(Direct channel, DC)을 갖는 링커를 도시한 도면이다. 직접 채널은 특정한 QoS 수준의 패킷이 주로 이용하는데 하나의 레지스터만 이용하므로 가상 채널에 비해 게이트 수가 무시할 만큼 작으면서도 가상 채널과 같이 하나의 채널을 제공하므로 대역폭을 증가시키는 장점이 있다. 가상 채널이 하나의 패킷을 모두 저장할 수 있는데 반해 직접 채널은 하나의 플릿만을 저장할 수 있어 특정한 QoS 수준의 패킷에 할당하여야 라우터에서 물리 채널을 우선적으로 할당 받아 패킷을 전송할 수 있다. 직접 채널은 가상 채널이 모두 차 있는 상태에서만 특정한 QoS 수준의 패킷에 대해 할당한다. 또한, 패킷에 따라 플릿의 수가 다른 경우 플릿의 수가 적은 패킷을 직접 채널에 할당하는 것이 효과적이다,
복수의 가상 채널에 저장된 패킷은 헤드 플릿을 라우터의 중재기(500)에 제공하여 출력 포트의 사용 가능 여부와 QoS 수준에 따라 선택되어 크로스바 스위치(304)를 거쳐 다음 링커로 전송된다. 직접 채널에 할당된 패킷은 즉시 전송하지 않으면 라우터의 경로를 막게 되므로, 중재기(500)는 가능한 범위에서 직접 채널의 패킷을 우선적으로 처리한다.
도 6에 도시된 바와 같이, 본 실시예에 따른 링커(102)는 라우터 외부에 위치하고 라우터 사이의 통신에만 이용하므로, 로컬 코어를 연결한 포트에 대해 기존의 NoC가 가지고 있는 주입 포트 버퍼(injection port buffer)가 제거됨에 따라 로컬 코어를 연결한 포트에 대한 포트 버퍼가 차지하는 영역만큼의 오버헤드가 감소된다.
링커(102)의 가상 채널은 기존 라우터의 입력 버퍼와 유사한 역할을 한다.
이러한 내부 버퍼를 링커(102)로 이동시킴으로써 구성을 용이하게 할 수 있고 또한 한 행과 한 열의 링커(102)를 메시 토폴로지에서 제거할 수 있으므로 가상 채널로 인한 영역 오버헤드를 더욱 줄일 수 있다. 가상 채널이 링커(102)에 포함됨으로써 라우터(100)는 패킷 전송을 위한 물리 채널만을 제공하여 구현에 필요한 게이트 수가 기존 NoC에 비해 매우 적다. 예를 들어, 도 7a에 도시된 바와 같이, 기존 NoC에서 사용하는 4×4 메시 토폴로지는 최소 64 세트의 가상 채널을 포함하는 반면, 도 7b에 도시된 바와 같이, 본 실시예에 따른 라우터의 경우 48 세트의 가상 채널을 포함한다.
한편, 상대적으로 적은 대역폭을 요구하는 경로에서는 링커(102)의 가상 채널 수를 줄일 수 있다. 따라서 가상 채널의 수를 달리하는 몇 개의 링커를 준비하여 요구하는 대역폭에 따라 적절한 링커를 사용하여 네트워크를 구성할 수 있다. 기존의 NoC는 가상 채널 수를 변경하면 라우터를 다시 설계하여야 하고 요구하는 입력 버퍼의 크기와 위치에 따라 서로 다른 라우터가 필요하므로 경로에 따라 가상 채널 수를 달리하여 네트워크 구조를 최적화하는 것이 매우 어렵다.
로컬 코어가 연결되는 주입 포트는 일반적으로 링커 포트보다 우선 순위가 높아 라우터에서 우선적으로 물리 채널을 할당 받아 처리되고 링커(102)에서 다음 홉 라우팅을 위해 대기한다. 따라서 주입 포트에 가상 채널이 없어도 로컬 코어는 새로운 패킷 주입에 거의 영향을 받지 않는다.
다시 도 6을 참조하면, 라우터(100)는 링크 유닛(Linking unit, LU, 600) 2개와 링크 컨트롤러(602) 1개를 포함하는 링커(102)를 통해 양방향으로 패킷을 송수신한다. 하나의 링크 유닛(600)이 기존 NoC의 입력 버퍼와 유사한 역할을 하고 양방향 전송을 위해 2개의 링크 유닛(600)은 서로 다른 방향의 전송을 담당한다. 또한, 링크 유닛(600)의 각 가상 채널은 QoS 수준에 따라 공유하거나 전용으로 사용하도록 정할 수 있다. 링크 컨트롤러(602)는 크로스바 스위치에서 출력되는 패킷을 패킷의 QoS 수준을 고려하여 링크 유닛(600)의 전용 가상 채널이나 공용 가상 채널, 또는 직접 채널에 할당하는 역할을 한다. 이 때 패킷의 QoS 수준을 고려하여 적절한 채널에 할당한다.
로컬 코어(104)의 수에 따라 라우터에서 1개의 포트가 남아 이웃 라우터의 포트와 링커를 통해 연결할 수 없는 상황이 발생할 경우에 링커(102)의 링크 유닛(600)을 3개로 하여 3개의 포트를 연결할 수 있다. 이 경우 링크 유닛(600)의 전송 방향은 고정되지 않고 각 포트의 통신 요청에 따라 링크 컨트롤러가 전송 방향을 바꿀 수 있도록 구성할 수 있다. 또한, 출력 포트를 2개로 설정하면 전송 요청을 2개의 라우터를 통해 수행할 수 있어 물리 채널을 먼저 할당하는 라우터로 패킷을 전송하여 전송 성능을 증가시킬 수 있다.
본 실시예에서는 대각선 링크의 장점을 활용하고 교착 상태를 방지하기 위해 기존의 West-first 라우팅을 수정한 적응형 제한적 턴 라우팅 알고리즘을 제안한다.
West-first 알고리즘은 수평 및 수직 링크가 있는 네트워크를 기반으로 하며 교착 상태를 피하기 위해 90도 회전으로 형성된 순환(cyclic) 라우팅 경로를 생성하지 않는다.
반면, 본 실시예에 따른 라우팅 알고리즘은 도 2와 같이, 대각선 방향으로 서로 인접한 라우터 사이에 링커를 배치하기 때문에 대각선 링크를 포함한 순환 라우팅 경로 생성을 방지한다.
이를 위해 다음과 같은 두 가지 규칙을 제안한다.
규칙 1은 West-first 알고리즘에서 상속되고 규칙 2는 제안된 알고리즘에 다음과 같이 추가된다. 순환 라우팅 경로를 유발하는 턴은 다음 규칙에 따라 금지된다.
규칙 1: 90°회전은 West-first로 제한된다.
규칙 2: 라우팅 쌍(라우팅을 수행하는 라우터를 중심으로 패킷을 보내는 링커와 받는 링커)이 동일한 행 또는 열에 있는 경우, 대각선 링크를 통해 패킷 전달은 금지된다. 예를 들어, 라우터가 같은 행의 오른쪽에 있는 인접 링커로 패킷을 전달할 경우 가능한 라우팅 경로는 동, 남 또는 북쪽 링크이며, 남동쪽, 북동쪽 링크는 라우팅이 금지된다.
도 8은 본 실시예에 따른 수정된 West-first 라우팅 알고리즘의 의사 코드를 나타낸 도면이다. 위의 규칙 1과 규칙 2를 반영하여 매우 간단한 방식으로 대각선 경로가 가능한 네트워크 구조에서도 교착 상태에 빠지지 않도록 라우팅을 수행할 수 있다.
본 발명의 바람직한 일 실시예에 따르면 네트워크 온 칩 통신 장치는 라우터 및 링커에서 복수의 QoS 수준을 갖는 패킷을 지원한다.
라우터 인터페이스(300)는 헤드 플릿을 분석하여 목적지 정보를 추출하고, 직접 라우팅 경로를 생성하거나 라우팅 요청 신호를 생성한다.
QoS 수준 정보는 복수의 우선 순위와 요구 대역폭, 통신 패턴 등의 정보를 포함한다.
본 실시예에 따르면, 중재 단계에서 스위칭 컨트롤러(302)는 QoS 수준과 중재기(500)의 중재 정책, 그리고 통신 트래픽에 대한 모니터링 결과에 따라 패킷에 우선 순위를 적응적으로 부여한다.
링커(102)는 패킷의 QoS 수준에 따라 링크 유닛(600)의 채널 할당을 조절할 수 있다.
링커(100)의 구조는 응용 프로그램 작업에 따라 달라질 수 있다.
본 실시예에 따른 가상 채널은 전용 가상 채널 및 공유 가상 채널을 포함할 수 있다.
전용 가상 채널은 특정한 QoS 수준의 패킷으로만 점유되고 해당하는 QoS 수준의 패킷이 없으면 유휴 상태가 된다. 복수의 특정한 QoS 수준을 정할 필요가 있을 경우 각각의 특정한 QoS 수준에 해당하는 복수의 전용 가상 채널을 포함할 수 있다.
공유 가상 채널은 모든 패킷이 점유할 수 있다.
링커(102)에서는 도 6과 같이 특정한 QoS 수준의 패킷을 위한 전용 채널로 직접 채널을 정의할 수 있다.
링커(102)는 QoS 수준에 따라 직접 채널이나 가상 채널에 패킷을 할당할 수 있고, 내부 채널에 할당된 일부 또는 모든 패킷에 대한 라우팅 요청을 라우터의 중재기(500)에 할 수 있다.
또한, 본 실시예에 따른 중재기(500)는 네트워크 성능을 더욱 향상시키기 위해 기존에 물리 채널을 할당받아 전송중인 패킷의 전송을 일시 중지시키는 우선 전송을 수행할 수 있다. QoS 수준에 따라 더 높은 우선 순위를 부여받은 패킷이 더 낮은 우선 순위의 패킷이 점유한 물리 채널의 입력이나 출력 포트가 필요한 경우 중재기는 특정 조건을 만족하는 경우, 미리 정한 정책에 따라 기존 전송을 일시 중지시키고 더 높은 우선 순위의 패킷에게 물리 채널을 할당할 수 있다. 이후 중재기(500)는 일시 중지된 패킷 전송을 재개시킨다. 우선 전송은 과도하게 사용하면 전체적인 네트워크 전송 성능을 저하시킬 수도 있으므로 엄격한 기준에 따라 실행한다.
상기한 본 발명의 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대한 통상의 지식을 가지는 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
Claims (9)
- 네트워크 온 칩 통신 장치로서,
복수의 입출력 포트를 포함하는 복수의 라우터 인터페이스, 상기 복수의 라우터 인터페이스를 통한 통신 요청에 대한 로컬 라우팅을 제어하는 스위칭 컨트롤러 및 상기 복수의 라우터 인터페이스를 상호 연결하는 통로인 물리 채널을 생성하는 크로스바 스위치를 포함하는 복수의 라우터; 및
가상 채널 및 직접 채널을 포함하는 복수의 링크 유닛 및 상기 복수의 링크 유닛을 제어하는 링크 컨트롤러를 통해 상기 복수의 라우터 중 서로 인접한 라우터를 연결하여 복수의 방향으로 패킷을 전달하는 복수의 링커를 포함하되,
상기 패킷은 QoS 수준과 라우터의 중재 정책 및 통신 트래픽에 따라 통신 연결에 대한 우선 순위가 적응적으로 결정되며, 상기 스위칭 컨트롤러는 모든 사이클에 서비스를 제공하기 위해 입력되는 패킷의 헤드 플릿의 정보를 분석하여 상기 QoS 수준과 상기 중재 정책 및 상기 통신 트래픽에 따라 적응적으로 결정된 상기 패킷의 우선 순위에 따라 상기 우선 순위가 가장 높은 패킷부터 차례로 요청하는 출력 포트의 상태를 확인한 후 사용 가능한 출력 포트가 있는 경우, 입력-출력 포트 쌍을 선택하고 상기 패킷 전송을 위한 물리 채널을 생성하되,
상기 복수의 링커는 수직 및 수평 방향으로 서로 인접한 라우터 사이에 배치되는 하나 이상의 제1 링커, 대각선 방향으로 서로 인접한 라우터 사이에 배치되는 하나 이상의 제2 링커 및 수평, 수직 및 대각선 방향 중 두 개 이상의 방향으로 서로 인접한 3 개 이상의 라우터 사이에 배치되는 제3 링커를 포함하되,
상기 대각선 방향으로 배치되는 링커의 장점을 활용하고 교착 상태를 방지하기 위해, West-first 라우팅을 수정한 적응형 제한적 턴 라우팅 알고리즘을 기반으로 라우팅을 수행하는 라우터를 중심으로 패킷을 보내는 링커와 받는 링커가 동일한 행 또는 열에 있는 경우, 상기 하나 이상의 제2 링커를 통해 패킷 전달은 금지되는 것으로 설정되며,
상기 가상 채널은 하나 이상의 전용 가상 채널 및 공유 가상 채널을 포함하고, 상기 하나 이상의 전용 가상 채널은 미리 설정된 QoS 수준을 갖는 패킷으로만 점유되며,
상기 스위칭 컨트롤러는 중재기, 경로 계산기 및 스위치 할당기를 포함하고, 상기 중재기는 상기 우선 순위에 따라 상기 입력-출력 포트 쌍을 선택하고, 상기 선택 결과에 따라 상기 크로스바 스위치가 물리 채널을 생성하고,
상기 스위치 할당기는 중재 단계에서 상기 출력 포트의 상태 정보를 제공하고 상기 중재기의 요청을 받아 상기 크로스바 스위치에 채널 생성 정보를 생성하여 제공하고, 상기 채널 생성 정보에 따라 상기 크로스바 스위치에서 물리 채널을 생성하도록 하고, 상기 출력 포트 사용중에는 상기 입력되는 패킷의 테일 플릿(tail flit)을 모니터링하여 상기 출력 포트의 상태 변화를 상기 중재기에 지연 시간 없이 제공하는 네트워크 온 칩 통신 장치. - 삭제
- 제1항에 있어서,
상기 복수의 라우터 인터페이스 각각은 서비스를 제공하기 위해 입력되는 패킷의 헤드 플릿을 통해 직접 라우팅이 필요한지 여부를 판단하고, 직접 라우팅이 필요한 경우 상기 스위칭 컨트롤러의 개입 없이 상기 복수의 라우터 인터페이스 각각의 내부에서 직접 데이터 경로를 설정하는 네트워크 온 칩 통신 장치. - 삭제
- 제1항에 있어서,
상기 QoS 수준은 상기 라우터가 제공해야 하는 최소 요구 대역폭, 최소 또는 최대 라우팅 사이클 및 통신 패턴 중 하나를 통해 결정되고,
상기 스위칭 컨트롤러는 상기 패킷의 QoS 수준에 따른 제공 대역폭 또는 라우팅 결과를 포함하는 통신 트래픽을 모니터링하고 저장하는 네트워크 온 칩 통신 장치. - 삭제
- 제1항에 있어서,
상기 경로 계산기는 상기 입력되는 패킷의 헤드 플릿으로부터 상기 입력되는 패킷의 목적지를 파악하고, 네트워크 토폴로지와 링커의 위치 및 개수에 따라 상기 목적지에 도달하기 위한 하나 이상의 출력 포트를 선택하는 네트워크 온 칩 통신 장치. - 삭제
- 네트워크 온 칩 통신을 위한 라우터 장치로서,
복수의 입출력 포트를 포함하는 복수의 라우터 인터페이스;
상기 복수의 라우터 인터페이스를 통한 통신 요청에 대한 로컬 라우팅을 제어하는 스위칭 컨트롤러; 및
상기 복수의 라우터 인터페이스를 상호 연결하는 통로인 물리 채널을 생성하는 크로스바 스위치를 포함하되,
상기 라우터 장치는 가상 채널 및 직접 채널을 포함하는 복수의 링크 유닛 및 상기 복수의 링크 유닛을 제어하는 링크 컨트롤러를 포함하는 링커를 통해 수직, 수평 및 대각선 방향 중 하나의 방향으로 인접한 다른 라우터와 양방향으로 패킷을 송수신하고,
상기 패킷은 QoS 수준과 라우터의 중재 정책 및 통신 트래픽에 따라 통신 연결에 대한 우선 순위가 적응적으로 결정되며, 상기 스위칭 컨트롤러는 모든 사이클에 서비스를 제공하기 위해 입력되는 패킷의 헤드 플릿의 정보를 분석하여 상기 QoS 수준과 상기 중재 정책 및 상기 통신 트래픽에 따라 적응적으로 결정된 상기 패킷의 우선 순위에 따라 상기 우선 순위가 가장 높은 패킷부터 차례로 요청하는 출력 포트의 상태를 확인한 후 사용 가능한 출력 포트가 있는 경우, 입력-출력 포트 쌍을 선택하고 상기 패킷 전송을 위한 물리 채널을 생성하되,
상기 링커는 수직 및 수평 방향으로 서로 인접한 라우터 사이에 배치되는 하나 이상의 제1 링커, 대각선 방향으로 서로 인접한 라우터 사이에 배치되는 하나 이상의 제2 링커 및 수평, 수직 및 대각선 방향 중 두 개 이상의 방향으로 서로 인접한 3 개 이상의 라우터 사이에 배치되는 제3 링커를 포함하되,
상기 대각선 방향으로 배치되는 링커의 장점을 활용하고 교착 상태를 방지하기 위해, West-first 라우팅을 수정한 적응형 제한적 턴 라우팅 알고리즘을 기반으로 라우팅을 수행하는 라우터를 중심으로 패킷을 보내는 링커와 받는 링커가 동일한 행 또는 열에 있는 경우, 상기 하나 이상의 제2 링커를 통해 패킷 전달은 금지되는 것으로 설정되며,
상기 가상 채널은 하나 이상의 전용 가상 채널 및 공유 가상 채널을 포함하고, 상기 하나 이상의 전용 가상 채널은 미리 설정된 QoS 수준을 갖는 패킷으로만 점유되며,
상기 스위칭 컨트롤러는 중재기, 경로 계산기 및 스위치 할당기를 포함하고, 상기 중재기는 상기 우선 순위에 따라 상기 입력-출력 포트 쌍을 선택하고, 상기 선택 결과에 따라 상기 크로스바 스위치가 물리 채널을 생성하고,
상기 스위치 할당기는 중재 단계에서 상기 출력 포트의 상태 정보를 제공하고 상기 중재기의 요청을 받아 상기 크로스바 스위치에 채널 생성 정보를 생성하여 제공하고, 상기 채널 생성 정보에 따라 상기 크로스바 스위치에서 물리 채널을 생성하도록 하고, 상기 출력 포트 사용중에는 상기 입력되는 패킷의 테일 플릿(tail flit)을 모니터링하여 상기 출력 포트의 상태 변화를 상기 중재기에 지연 시간 없이 제공하는 라우터 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210020309A KR102462577B1 (ko) | 2021-02-16 | 2021-02-16 | 네트워크 온 칩 통신 장치 및 네트워크 온 칩 통신을 위한 라우터 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210020309A KR102462577B1 (ko) | 2021-02-16 | 2021-02-16 | 네트워크 온 칩 통신 장치 및 네트워크 온 칩 통신을 위한 라우터 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220116892A KR20220116892A (ko) | 2022-08-23 |
KR102462577B1 true KR102462577B1 (ko) | 2022-11-03 |
Family
ID=83092512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210020309A KR102462577B1 (ko) | 2021-02-16 | 2021-02-16 | 네트워크 온 칩 통신 장치 및 네트워크 온 칩 통신을 위한 라우터 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102462577B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117134765B (zh) * | 2023-08-24 | 2024-06-07 | 毫厘智能科技(江苏)有限公司 | 一种可重构芯粒间连接结构的电路及芯片 |
CN117156006B (zh) * | 2023-11-01 | 2024-02-13 | 中电科申泰信息科技有限公司 | 一种片上网络的数据路由控制架构 |
CN117176674B (zh) * | 2023-11-02 | 2024-02-02 | 上海芯高峰微电子有限公司 | 片上网络及数据传输方法、芯片、设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101028806B1 (ko) * | 2009-12-18 | 2011-04-12 | 숭실대학교산학협력단 | 다양한 통신 방식에 적용 가능한 에스오씨 네트워크의 통신 장치 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090031022A (ko) * | 2007-09-21 | 2009-03-25 | 삼성전자주식회사 | 온 칩 네트워크 제어 장치 및 방법 |
KR101197294B1 (ko) * | 2010-11-19 | 2012-11-05 | 숭실대학교산학협력단 | QoS 및 전송 효율 개선을 위한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 |
KR101465424B1 (ko) | 2013-11-12 | 2014-11-27 | 성균관대학교산학협력단 | 네트워크 온 칩 라우터 및 라우팅 방법 |
CN105306382B (zh) * | 2014-07-28 | 2019-06-11 | 华为技术有限公司 | 一种无缓存noc数据处理方法及noc电子元件 |
KR102244848B1 (ko) * | 2016-10-13 | 2021-04-27 | 한국전자통신연구원 | 온도-효과-역전 현상을 사용하는 네트워크-온-칩 및 그것의 동작 방법 |
-
2021
- 2021-02-16 KR KR1020210020309A patent/KR102462577B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101028806B1 (ko) * | 2009-12-18 | 2011-04-12 | 숭실대학교산학협력단 | 다양한 통신 방식에 적용 가능한 에스오씨 네트워크의 통신 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20220116892A (ko) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102462577B1 (ko) | 네트워크 온 칩 통신 장치 및 네트워크 온 칩 통신을 위한 라우터 장치 | |
US20240348538A1 (en) | Weighting routing | |
EP3949293B1 (en) | Slice-based routing | |
US9325619B2 (en) | System and method for using virtual lanes to alleviate congestion in a fat-tree topology | |
US20030035371A1 (en) | Means and apparatus for a scaleable congestion free switching system with intelligent control | |
US9007920B2 (en) | QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes | |
US7474661B2 (en) | Apparatus and method for distributing forwarding table lookup operations among a plurality of microengines in a high-speed routing node | |
Guay et al. | vFtree-A fat-tree routing algorithm using virtual lanes to alleviate congestion | |
CN105022717A (zh) | 附加请求数优先级的片上网络资源仲裁方法及仲裁单元 | |
US20050195845A1 (en) | Low cost implementation for a device utilizing look ahead congestion management | |
US20080107106A1 (en) | System and method for preventing deadlock in richly-connected multi-processor computer system using dynamic assignment of virtual channels | |
US7016363B1 (en) | Scaleable interconnect structure utilizing quality-of-service handling | |
US20130287020A1 (en) | Switch module | |
JPH06237256A (ja) | Fddiステーション・バイパス装置 | |
CN109716719B (zh) | 数据处理方法及装置、交换设备 | |
JP3950048B2 (ja) | 複数の制御回線を用いた多重最小論理網においてスループットを増大させる拡張可能な装置および方法 | |
CN117135110B (zh) | 一种自适应路由方法、装置、系统、设备及存储介质 | |
EP3993354A1 (en) | Turn-based deadlock-free routing in a cartesian topology | |
Lan et al. | Flow maximization for noc routing algorithms | |
CN117560316A (zh) | 网络系统、网络系统通信方法、芯片、装置及存储介质 | |
Jalil et al. | Routing Algorithms, Process Model for Quality of Services (QoS) and Architectures for Two-Dimensional 4× 4 Mesh Topology Network-on-Chip | |
Flores et al. | ADAPTIVE ROUTING ON TRANSPUTER NETWORKS WITH TORUS 2-D TOPOLOGY | |
Balasubramanian | Protocols for optical WDM metropolitan area networks | |
Iyengar et al. | A multiprocessor communication architecture for high speed networks | |
AU2002317564A1 (en) | Scalable switching system with intelligent control |
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 |