KR20160013799A - 무버퍼 noc 및 noc 전자요소의 데이터 처리 방법 - Google Patents
무버퍼 noc 및 noc 전자요소의 데이터 처리 방법 Download PDFInfo
- Publication number
- KR20160013799A KR20160013799A KR1020150073140A KR20150073140A KR20160013799A KR 20160013799 A KR20160013799 A KR 20160013799A KR 1020150073140 A KR1020150073140 A KR 1020150073140A KR 20150073140 A KR20150073140 A KR 20150073140A KR 20160013799 A KR20160013799 A KR 20160013799A
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- routing node
- priority
- noc
- program
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- 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/11—Identifying congestion
-
- 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/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/003—Arrangements for allocating sub-channels of the transmission path
- H04L5/0053—Allocation of signaling, i.e. of overhead other than pilot signals
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
높은 프로그램 우선순위를 가지는 패킷이 편향되는 비율을 감소시키고 높은 우선순위를 가지는 프로그램의 성능을 향상시키기 위해, 무버퍼 NOC 및 NOC 전자요소를 위한 데이터 처리 방법이 제공된다. 상기 방법은, 라우팅 노드에 의해 하나의 처리 기간 내에, 동일한 전달 포트에 송신되어야 하는 복수의 패킷을 수신하는 단계; 상기 복수의 패킷의 우선순위 정보를 취득하고 상기 우선순위 정보에 기초하여 상기 패킷의 우선순위 레벨을 결정하는 단계 - 각 패킷에 대해, 상기 우선순위 정보는 상기 패킷의 시간 길이 정보 및 상기 패킷에 대응하는 프로그램의 프로그램 우선순위 정보를 포함하고, 상기 패킷의 시간 길이 정보는, 상기 패킷이 상기 NOC에 잔존하는 기간을 나타냄 -; 최고 우선순위를 가지는 패킷을 상기 전달 포트를 통해 전달하는 단계를 포함한다. 상기 방법 및 NOC 전자요소는 무버퍼 NOC를 위한 데이터 처리에 적용된다.
Description
본 발명은 집적회로 기술분야에 관한 것으로, 특히, 무버퍼 NOC 및 NOC 전자요소의 데이터 처리 방법에 관한 것이다.
반도체 기술의 발전에 따라, 집적회로(integrated circuit, IC) 설계자는 단일 웨이퍼에 더 많은 복잡한 기능들을 집적할 수 있고, 시스템온칩((system on a chip, SOC)은 점차 집적시스템(integrated system)으로 변화되는 IC로서 존재하게 된다. 좁은 의미에서, SOC는 전자 정보 시스템의 집적이고; 일반적인 의미에서, SOC는 소형 마이크로 전자 시스템이다. SOC에서, 디지털-아날로그 하이브리드 회로는 단일 웨이퍼에 집적되어 있다. SOC는 임베디드 코어(embedded core), 저장 장치(storage), 전용 기능 모듈(dedicated function module), 입력/출력 인터페이스 모듈(input/output interface module), 등과 같은 다양한 기능 모듈을 포함한다. 또, 컴퓨터 전체의 모든 기능을 단 하나의 칩으로 구현하기 위해, 모델 알고리즘(model algorithm), 칩 구조체(chip structure), 계층적 회로(hierarchical circuit), 그리고 심지어 장치 설계(device design)가 SOC에 종합적으로 고려된다.
기능 모듈이 정교하고 복잡해짐에 따라, 기능 모듈 간의 정보 통신을 위한 데이터 링크의 양이 크게 증대되었고, 그 결과 SOC 설계의 어려움 및 SOC의 시스템 소비 증가를 초래하였다. 1999년쯤에, 여러 연구 그룹은 새로운 집적 회로 아키텍처, 네트워크온칩(Network On Chip, NOC)를 제안하였다. NOC의 기본 개념은, 컴퓨터 네트워크 기술이 SOC 아키텍처의 단점을 완전히 극복하기 위한 칩 설계로 이동되는 것에 있다.
NOC는 네트워크 기반 통신이 단 하나의 칩으로 달성되는 멀티프로세서 시스템(multiprocessor system)으로 정의될 수 있다. NOC는 라우팅 노드(routing node)와 통신 노드(communication node)를 포함한다. 라우팅 노드는 일반적인 계산 타스크(computaiton task)을 수행하기 위한 것이고, 통신 노드는 라우팅 노드 간의 데이터 통신을 담당하는 것이다. 통신 노드의 네트워크에서는 분산 컴퓨터 시스템을 위한 통신 방법(communication approach)이 사용되고, 통신 타스크(communication task)는 라우팅 및 패킷 교환 기술(packet switching technology)을 사용하여 수행된다.
명백히, 라우터는 패킷 전달 및 송신을 위한 NOC의 핵심 구성 요소이다. 종래 라우터는 주로 가상 채널(virtual channel), 데이터 버퍼, 우선순위 아비터(priority arbiter), 크로스바 스위치(crossbar switch), 등의 구성요소를 포함한다. 최근의 연구에서, 무버퍼 NOC(NOC without buffer)라고 불리는, 가상 채널 및 데이터 버퍼가 없는 NOC가 NOC의 성능을 향상시키기 위해 제안되었다.
종래, 무버퍼 NOC는 버퍼링 기능이 없으므로, 무버퍼 NOC가 패킷을 전달할 때, 라우팅 노드는 수신된 패킷을, 수신된 패킷이 예상 전달 포트(expected forwarding port)를 통해 송신될 수 있을 것인지에 상관없이, 다음 패킷을 수신하기 전에 송신해야 한다. 이러한 방식에서는, 복수의 패킷이 포트에 대해 경쟁하는 경우, 단 하나의 패킷이 그 예상 포트에 할당될 수 있고 다른 모든 패킷은 예상외의(unexpected) 포트에 송신되므로, 예상외의 포트로 송신된 패킷에 대한 편향(deflection, 방향 바꿈)이 발생한다. 또, 새로운 패킷이 무버퍼 NOC의 전달 포트를 통해 네트워크로 주입되어야 하는 경우, 새로운 패킷은 라우터 내에 여유 주입 포트(free injection port)가 없으면 즉시 주입될 수 없어, 기아(starvation)을 초래한다. 이 때문에, 무버퍼 NOC의 경우에 송신될 복수의 패킷이 존재하는 경우, 그 복수의 패킷은 무작위로 송신될 것이므로, 높은 우선순위를 갖는 패킷이 편향되어, 무버퍼 NOC는 높은 우선순위를 가지는 프로그램의 성능을 보장할 수 없다.
높은 프로그램 우선순위를 가지는 패킷이 편향되는 비율을 감소시킴으로써 높은 우선순위를 가지는 프로그램의 성능을 향상시키기 위해, 본 발명의 실시예에 따른 무버퍼 네트워크온칩(network on chip, NOC, without buffer) 및 NOC 전자요소를 위한 데이터 처리 방법이 제공된다.
본 발명의 실시예에 따른 기술적 해결방안을 이하에 설명한다.
제1 측면에서, 무버퍼 NOC 전자요소에 적용되는, 무버퍼 NOC를 위한 데이터 처리 방법이 제공되며, 상기 방법은,
라우팅 노드에 의해 하나의 처리 기간 내에, 동일한 전달 포트에 송신되어야 하는 복수의 패킷을 수신하는 단계;
상기 복수의 패킷의 우선순위 정보를 취득하고 상기 우선순위 정보에 기초하여 상기 패킷의 우선순위 레벨을 결정하는 단계 - 각 패킷에 대해, 상기 우선순위 정보는 패킷의 시간 길이 정보 및 패킷에 대응하는 프로그램의 프로그램 우선순위 정보를 포함하고, 상기 패킷의 시간 길이 정보는, 패킷이 상기 NOC에 잔존하는 기간을 나타냄 -; 및
최고 우선순위를 가지는 패킷을 상기 전달 포트를 통해 전달하는 단계를 포함한다.
제1 측면의 제1 구현예에서, 상기 복수의 패킷의 우선순위 정보를 취득하고 상기 우선순위 정보에 기초하여 상기 패킷의 우선순위 레벨을 결정하는 단계는,
각 패킷의 우선순위 정보 및 미리 저장된 우선순위 임계값을 취득하는 단계; 및
상기 패킷의 우선순위 정보 및 상기 우선순위 임계값에 기초하여 각 패킷의 우선순위 레벨을 결정하는 단계를 포함한다.
제1 측면의 제2 구현예에서, 상기 복수의 패킷의 우선순위 정보를 취득하고 상기 우선순위 정보에 기초하여 상기 복수의 패킷의 우선순위 레벨을 결정하는 단계 이전에,
패킷이 상기 NOC의 라우팅 노드 중 첫번째 라우팅 노드에 진입하는 경우, 상기 라우팅 노드 중 첫번째 라우팅 노드에 대응하는 CPU의 레지스터로부터 상기 패킷에 대응하는 우선순위 정보를 취득하고, 상기 패킷에 대응하는 우선순위 정보를 상기 패킷의 헤드에 기록하는 단계를 더 포함하고,
상기 복수의 패킷의 우선순위 정보를 취득하고, 상기 우선순위 정보에 기초하여 상기 패킷의 우선순위 레벨을 결정하는 단계는,
상기 패킷의 헤드로부터 상기 패킷에 대응하는 우선순위 정보를 판독하고, 상기 패킷의 우선순위 정보에 기초하여 상기 패킷의 우선순위 레벨을 획득하는 단계를 포함한다.
제1 측면 또는 제1 측면의 제1 구현예 또는 제1 측면의 제2 구현예와 결합하여, 제1 측면의 제3 구현예에서, 상기 동일한 전달 포트에 송신될 복수의 패킷 중에서 최고 우선순위를 가지는 패킷을 결정하는 단계 후에, 상기 방법은
상기 최고 우선순위를 가지는 패킷 이외의 다른 패킷을 상기 전달 포트 이외의 다른 전달 포트를 통해 전달하는 단계를 더 포함한다.
제2 측면에서, 무버퍼 NOC를 위한 데이터 처리 방법이 제공된다. 상기 방법은 무버퍼 NOC 전자요소에 적용되며,
상기 NOC 전자요소의 각 라우팅 노드의 노드 정보를 취득하는 단계 - 상기 노드 정보는, 상기 라우팅 노드의 기아율(starving ratio), 상기 라우팅 노드로 현재 주입된 패킷에 대응하는 프로그램의 패킷 각각에 대한 플릿당 명령어의 양(quantity of instructions per flit, IPF), 및 상기 현재 주입된 패킷의 우선순위를 나타내는 프로그램 우선순위 정보를 포함함 -;
상기 NOC 전자요소에 혼잡(congestion)이 발생하면, 각각의 라우팅 노드로 현재 주입된 패킷의 IPF 및 프로그램 우선순위 정보에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율(injection restriction ratio)을 계산하는 단계 - 상기 주입 제한 비율은, 상기 라우팅 노드에 의해 상기 라우팅 노드로 주입되는 것이 제한되는, 상기 현재 주입된 패킷에 대응하는 프로그램의 백분율임 -; 및
상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 상기 주입 제한 비율을 대응하는 라우팅 노드에 할당하는 단계
를 포함하고,
각 라우팅 노드는, 대응하는 주입 제한 비율에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램이 상기 라우팅 노드로 주입되는 것을 제한한다.
제2 측면의 제1 구현예에서, 상기 각각의 라우팅 노드로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 계산하는 단계는,
각각의 라우팅 노드로 현재 주입된 패킷의 IPF 및 프로그램 우선순위 정보 및 주입 제한 비율식에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 결정하는 단계를 포함하고, 상기 주입 제한 비율식은 이고, 상기 식에서 T는 상기 주입 제한 비율을 나타내고, Priority는 상기 현재 주입된 패킷의 프로그램 우선순위를 나타내고, 는 상수이다.
제2 측면 또는 제2 측면의 제1 구현예와 결합하여, 제2 측면의 제2 구현예에서, 상기 방법은,
각 라우팅 노드에 대해, 상기 라우팅 노드의 기아율과 상기 라우팅 노드에 대응하는 기아율 임계값을 비교하여, 상기 라우팅 노드에 혼잡이 발생하는지를 결정하는 단계; 및
상기 NOC 전자요소의 어느 라우팅 노드에 혼잡이 발생하면, 상기 NOC 전자요소에 혼잡이 발생하는 것으로 결정하는 단계를 더 포함한다.
제3 측면에서, NOC 전자요소가 제공된다. 상기 NOC 전자요소는 하나 이상의 라우팅 노드를 포함하고, 각 라우팅 노드는 저장 장치, 프로세서, 스위칭 유닛, 입력 포트 및 출력 포트를 포함하고,
상기 저장 장치는, 패킷이 목적지에 도달하는 경로가 기록되어 있는 라우팅 테이블을 저장하도록 구성되어 있고;
상기 프로세서는, 하나의 처리 기간 내에, 동일한 전달 포트에 송신되어야 하는 복수의 패킷을 수신하고, 상기 복수의 패킷의 우선순위 정보를 취득하고 상기 우선순위 정보에 기초하여 상기 복수의 패킷의 우선순위 레벨을 결정하고, 최고 우선순위를 가지는 패킷을 상기 전달 포트를 통해 전달하도록, 구성되어 있고;
각 패킷에 대해, 상기 우선순위 정보는 패킷의 시간 길이 정보 및 패킷에 대응하는 프로그램의 프로그램 우선순위 정보를 포함하고, 상기 패킷의 시간 길이 정보는, 패킷이 상기 NOC에 잔존하는 기간을 나타낸다.
제3 측면의 제1 구현예에서,
상기 저장 장치는 우선순위 임계값을 저장하도록 더 구성되어 있고;
상기 프로세서가 상기 복수의 패킷의 우선순위 정보를 취득하고 상기 우선순위 정보에 기초하여 상기 복수의 패킷의 우선순위 레벨을 결정하는 경우, 상기 프로세서는 상기 패킷의 우선순위 정보를 취득하고, 상기 저장 장치로부터 우선순위 임계값을 취득하고, 상기 패킷의 우선순위 정보 및 상기 우선순위 임계값에 기초하여 상기 패킷의 우선순위 레벨을 획득하도록, 더 구성되어 있다.
제3 측면의 제2 구현예에서,
상기 프로세서는, 패킷이 상기 NOC의 하나 이상의 라우팅 노드 중 첫번째 라우팅 노드에 진입하는 경우, 상기 하나 이상의 라우팅 노드 중 첫번째 라우팅 노드에 대응하는 CPU의 레지스터로부터 상기 패킷에 대응하는 우선순위 정보를 취득하고, 상기 패킷에 대응하는 우선순위 정보를 상기 패킷의 헤드에 기록하도록 더 구성되어 있고;
상기 프로세서가 상기 복수의 패킷의 우선순위 정보를 취득하고 상기 우선순위 정보에 기초하여 상기 복수의 패킷의 우선순위 레벨을 결정하는 경우, 상기 프로세서는 상기 패킷의 헤드로부터 각 패킷에 대응하는 우선순위 정보를 판독하고, 상기 패킷의 우선순위 정보에 기초하여 상기 패킷의 우선순위 레벨을 획득하도록, 더 구성되어 있다.
제3 측면 또는 제3 측면의 제1 구현예 또는 제3 측면의 제2 구현예와 결합하여, 제3 측면의 제3 구현예에서,
상기 프로세서는 상기 최고 우선순위를 가지는 패킷 이외의 다른 패킷을 상기 전달 포트 이외의 다른 전달 포트를 통해 전달하도록 더 구성되어 있다.
제4 측면에서, 하나 이상의 라우팅 노드 및 데이터 프로세서를 포함하는 NOC 전자요소가 제공되고, 각 라우팅 노드는 주입 포트와 하나 이상의 전달 포트를 포함하며,
상기 데이터 프로세서는, 상기 NOC 전자요소의 라우팅 노드로부터 상기 NOC 전자요소의 각 라우팅 노드의 노드 정보를 취득하도록 구성되어 있고, 상기 노드 정보는, 상기 라우팅 노드의 기아율, 상기 라우팅 노드로 현재 주입된 패킷에 대응하는 프로그램의 패킷 각각에 대한 플릿당 명령어의 양(IPF), 및 상기 현재 주입된 패킷의 우선순위를 나타내는 프로그램 우선순위 정보를 포함하며;
상기 데이터 프로세서는, 상기 NOC 전자요소에 혼잡이 발생하면, 각각의 라우팅 노드로 현재 주입된 패킷의 IPF 및 프로그램 우선순위 정보에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 계산하도록 더 구성되어 있고, 상기 주입 제한 비율은, 상기 라우팅 노드에 의해 상기 라우팅 노드로 주입되는 것이 제한되는, 상기 현재 주입된 패킷에 대응하는 프로그램의 백분율이며;
상기 데이터 프로세서는, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진, 상기 주입 제한 비율을 대응하는 라우팅 노드에 할당하도록 더 구성되어 있고;
각 라우팅 노드는, 상기 데이터 프로세서에 의해 할당된 대응하는 주입 제한 비율에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램이 상기 라우팅 노드로 주입되는 것을 제한하도록 더 구성되어 있다.
제4 측면의 제1 구현예에서, 상기 데이터 프로세서가, 각각의 라우팅 노드로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 계산하는 경우, 상기 데이터 프로세서는, 각각의 라우팅 노드로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보 및 주입 제한 비율식에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 결정하도록 더 구성되어 있고, 상기 주입 제한 비율식은 이며, 상기 식에서 T는 상기 주입 제한 비율을 나타내고, Priority는 상기 현재 주입된 패킷의 프로그램 우선순위를 나타내고, 는 상수이다.
제4 측면 또는 제4 측면의 제1 구현예와 결합하여, 제4 측면의 제2 구현예에서, 상기 데이터 프로세서는,
각 라우팅 노드에 대해, 상기 라우팅 노드의 기아율과 상기 라우팅 노드에 대응하는 기아율 임계값을 비교하여, 상기 라우팅 노드에 혼잡이 발생하는지를 결정하고,
상기 NOC 전자요소의 어느 라우팅 노드에 혼잡이 발생하면, 상기 NOC 전자요소에 혼잡이 발생하는 것으로 결정하도록, 더 구성되어 있다.
제4 측면 또는 제4 측면의 제1 구현예 또는 제4 측면의 제2 구현예와 결합하여 제4 측면의 제3 구현예에서, 상기 NOC 전자요소의 각 라우팅 노드의 노드 정보는 상기 라우팅 노드의 레지스터에 저장되어 있다.
제5 측면에서, 하나 이상의 라우팅 노드 및 데이터 프로세서를 포함하는 NOC 전자요소가 제공되고, 각 라우팅 노드는 주입 포트 및 하나 이상의 전달 포트를 포함하며,
상기 NOC 전자요소의 라우팅 노드는, 하나의 처리 기간 내에, 동일한 전달 포트에 송신되어야 하는 복수의 패킷을 수신하고; 상기 패킷의 우선순위 정보를 취득하고 상기 우선순위 정보에 기초하여 상기 패킷의 우선순위 레벨을 결정하고; 최고 우선순위를 가지는 패킷을 상기 전달 포트를 통해 송신하도록, 구성되어 있고, 상기 우선순위 정보는 상기 패킷의 시간 길이 정보 및 상기 패킷에 대응하는 프로그램의 프로그램 우선순위 정보를 포함하고, 상기 패킷의 시간 길이 정보는 패킷이 상기 NOC에 잔존하는 기간을 나타내며;
상기 데이터 프로세서는, 상기 NOC 전자요소의 라우팅 노드로부터 상기 NOC 전자요소의 각 라우팅 노드의 노드 정보를 취득하도록 구성되어 있고, 상기 노드 정보는, 상기 라우팅 노드의 기아율, 상기 라우팅 노드로 현재 주입된 패킷에 대응하는 프로그램의 각 패킷에 대한 IPF, 및 상기 현재 주입된 패킷의 우선순위를 나타내는 데 사용되는 프로그램 우선순위 정보를 포함하며; 상기 NOC 전자요소에 혼잡이 발생하면, 상기 데이터 프로세서는, 각각의 라우팅 노드로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 계산하도록 더 구성되어 있고, 상기 주입 제한 비율은, 상기 라우팅 노드에 의해 상기 라우팅 노드로 주입되는 것이 제한되는, 상기 현재 주입된 패킷에 대응하는 프로그램의 백분율이며; 상기 데이터 프로세서는, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 상기 주입 제한 비율을, 대응하는 라우팅 노드에 할당하도록 더 구성되어 있고;
상기 NOC 전자요소의 각 라우팅 노드는, 상기 데이터 프로세서에 의해 할당된 대응하는 주입 제한 비율에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램이 상기 라우팅 노드로 주입되는 것을 제한하도록 더 구성되어 있다.
본 발명의 실시예에 따른 무버퍼 NOC 및 NOC 전자요소를 위한 데이터 처리 방법에서, 라우팅 노드는 하나의 처리 기간 내에, 동일한 전달 포트에 송신되어야 하는 복수의 패킷을 수신하고, 복수의 패킷의 우선순위 정보를 취득하고 우선순위 정보에 기초하여 패킷의 우선순위 레벨을 결정하고, 최고 우선순위를 가지는 패킷을 상기 전달 포트를 통해 전달하는 단계를 포함하며, 우선순위 정보는 패킷의 시간 길이 정보 및 패킷에 대응하는 프로그램의 프로그램 우선순위 정보를 포함하고, 패킷의 시간 길이 정보는, 패킷이 NOC에 잔존하는 기간을 나타낸다. 따라서, 패킷이 전달 포트를 통해 라우팅 노드에 주입될 때, 높은 우선순위를 가지는 패킷이 더 큰 승리의 기회를 가질 수 있고, 높은 프로그램 우선순위를 가지는 패킷이 무버퍼 NOC에 잔존하는 기간이 단축되며, 또한, 높은 프로그램 우선순위를 가지는 패킷이 편향되는 비율을 감소시킴으로써 높은 우선순위를 가지는 프로그램의 성능이 향상된다.
본 발명의 실시예 또는 종래기술에 따른 기술적 해결방안을 본 발명이 속하는 기술분야의 통상의 지식을 가진자(이하, 당업자라고 함)가 더욱 잘 이해할 수 있도록, 이하에 본 발명의 개시에 사용된 도면을 간단하게 설명한다. 명백히, 이하에 설명한 도면은 단지 본 발명의 일부 실시예일 뿐이며, 당업자라면 창의적인 노력 없이 이들 도면에 따라 다른 도면을 얻을 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 NOC 전자요소의 라우팅 노드의 포트의 개략도이다.
도 2는 본 발명의 실시예에 따른 라우팅 노드 중에서 패킷의 라우팅을 보여주는 개략 데이터 송신도이다.
도 3은 본 발명의 실시예에 따른 무버퍼 NOC를 위한 데이터 처리 방법의 개략 흐름도이다.
도 4는 본 발명의 실시예에 따른 무버퍼 NOC를 위한 데이터 처리 방법의 개략 흐름도이다.
도 5는 본 발명의 실시예에 따른 무버퍼 NOC를 위한 데이터 처리 방법의 개략 흐름도이다.
도 6은 본 발명의 실시예에 따른 NOC 전자요소의 개략 구성도이다;
도 7은 본 발명의 실시예에 따른 NOC 전자요소의 어느 라우팅 노드의 개략 구성도이다;
도 8은 본 발명의 다른 실시예에 따른 NOC 전자요소의 개략 구성도이다.
도 9는 본 발명의 또다른 실시 예에 따른 NOC 전자요소의 개략 구성도이다.
도 1은 본 발명의 실시예에 따른 NOC 전자요소의 라우팅 노드의 포트의 개략도이다.
도 2는 본 발명의 실시예에 따른 라우팅 노드 중에서 패킷의 라우팅을 보여주는 개략 데이터 송신도이다.
도 3은 본 발명의 실시예에 따른 무버퍼 NOC를 위한 데이터 처리 방법의 개략 흐름도이다.
도 4는 본 발명의 실시예에 따른 무버퍼 NOC를 위한 데이터 처리 방법의 개략 흐름도이다.
도 5는 본 발명의 실시예에 따른 무버퍼 NOC를 위한 데이터 처리 방법의 개략 흐름도이다.
도 6은 본 발명의 실시예에 따른 NOC 전자요소의 개략 구성도이다;
도 7은 본 발명의 실시예에 따른 NOC 전자요소의 어느 라우팅 노드의 개략 구성도이다;
도 8은 본 발명의 다른 실시예에 따른 NOC 전자요소의 개략 구성도이다.
도 9는 본 발명의 또다른 실시 예에 따른 NOC 전자요소의 개략 구성도이다.
이하에 본 발명의 실시예의 도면을 참조하여 본 발명의 실시예에 따른 기술적 해결방안을 명확하고 완전하게 설명한다. 명백히, 설명한 실시예는 본 발명의 실시예의 전부가 아니라 일부이다. 당업자가 본 발명의 실시예에 기초하여 창의적인 노력 없이 얻은 모든 다른 실시예는 본 발명의 보호 범위에 속한다.
본 발명의 실시예는 무버퍼 네트워크온칩(NOC)에 적용된다. 무버퍼 NOC는 가상 채널 및 데이터 버퍼가 없는 NOC의 일종이다. 이런 종류의 NOC 전자요소는 라우팅 노드와 통신 노드를 포함하고, 라우팅 노드는 일반적인 계산 타스크를 수행하도록 구성되어 있고, 통신 노드는 라우팅 노드 간의 데이터 통신을 담당하는 것이다. 라우팅 노드의 포트의 개략도인 도 1에 도시된 바와 같이, 라우팅 노드는 교환 스위치(exchange switch), 로컬 포트(즉, 주입 포트), 및 동서남북 네 방향의 전달 포트를 포함한다. 교환 스위치는 라우팅 노드 내의 각각의 포트 링크 간에 데이터를 교환하도록 구성되어 있다. 로컬 포트는 라우팅 노드에 의해 송신된 패킷 및 라우팅 노드에 의해 수신된 패킷을 전달하도록 구성되어 있다. 네 개의 전달 포트는 다른 라우팅 노드에 연결되고 라우팅 노드와 다른 노드 간의 패킷 송신을 위해 구성되어 있다. 그리고 동, 서, 남 북의 네 방향에 동일한 라우팅 구조를 갖는 전달 포트가 있기 때문에, 각 방향의 전달 포트는 다음과 같은 구성 요소: 가상 채널 제어기, 입력 가상 버퍼 모듈, 라우팅 디코더 및 요청 아비터(request arbiter)를 포함한다.
구체적으로, 패킷이, 소스 라우팅 노드의 ID에 기초하여, 소스 라우팅 노드의 로컬 포트를 통해 라우팅 노드로 진입한 후, 패킷은, 패킷에 실려있는 목적지 라우팅 노드의 ID에 기초하여, 목적지 라우팅 노드로 전송될 수 있고, 패킷은 목적지 라우팅 노드의 로컬 포트를 통해 그 라우팅 노드로부터 출력된다. 예로서, 라우팅 노드 사이의 패킷 라우팅의 개략도인 도 2에 도시된 바와 같이, 라우팅 노드 6을 소스 라우팅 노드로서 가지고 라우팅 노드 24를 목적지 라우팅 노드로서 가지는 패킷 1에 대해, 상세한 송신 프로세스를 설명하면 다음과 같다: 패킷 1은, 라우팅 노드 6의 주입 포트를 통해 주입 된 후, 패킷 1은 라우팅 노드 6의 동쪽의 전달 포트를 통해 라우팅 노드 11로 전달되고; 라우팅 노드 11는 패킷을 수신 한 후, 라우팅 노드 11는 라우팅 노드 11의 동쪽의 전달 포트를 통해 라우팅 노드 16에 패킷을 전단할 수 있고; 패킷이 라우팅 노드 24에 전달될 때까지, 전달은 이러한 방식으로 계속되며; 패킷을 수신 한 후, 라우팅 노드 24는 패킷을 송신할 수있다.
상기에 기초하여, 본 발명의 실시예에 따른 무버퍼 NOC 및 NOC 전자요소에 대한 새로운 데이터 처리 방법이 제공된다.
무버퍼 NOC를 위한 데이터 처리 방법이 본 발명의 실시 예에 따라 제공된다. 상기 방법은 하나 이상의 라우팅 노드를 포함하는 NOC 전자요소에 적용된다. 각 라우팅 노드는 주입 포트와 하나 이상의 전달 포트를 포함한다. 도 3에 도시 된 바와 같이, 무버퍼 NOC를 위한 데이터 처리 방법은 구체적으로 다음과 같은 단계를 포함한다.
단계 101: 라우팅 노드가 하나의 처리 주기 내에, 동일한 전달 포트로 송신되어야 하는 복수의 패킷을 수신한다.
단계 102: 라우팅 노드가 패킷의 우선순위 정보를 취득하고 우선순위 정보에 기초하여 패킷의 우선순위 레벨을 결정한다.
우선순위 정보는 패킷의 시간 길이 정보 및 패킷에 대응하는 프로그램의 프로그램 우선순위 정보를 포함한다. 패킷에 대응하는 프로그램의 프로그램 우선순위 정보는 패킷에 대응하는 프로그램의 우선순위를 기술(記述)하고, 패킷의 시간 길이 정보는 패킷이 무버퍼 NOC에 잔존한 기간, 즉 패킷이 무버퍼 NOC에 진입한 후 머무르는 기간을 나타낸다. 패킷의 시간 길이 정보가 긴 기간을 나타낼수록 패킷이 무버퍼 NOC에 머무르는 시간이 더 길다는 것을 의미하므로, 패킷이 자원을 점유하는 것을 피하기 위해 가능한 한 빨리 그 패킷을 송신할 필요가 있다. 따라서, 패킷의 시간 길이 정보가 긴 기간을 나타낼수록, 패킷에 대응하는 우선순위가 더 높다. 예시적으로, 패킷의 우선순위 정보는 패킷의 헤드에 있는 헤드 정보로서 저장될 수있다. 패킷의 헤드는 목적지 라우팅 노드의 ID, 소스 라우팅 노드의 ID 및 패킷 데이터 타입을 포함하지만 이에 한정되는 것은 아니다.
예시적으로, 라우팅 노드가, 하나의 처리 기간 내에, 동일한 전달 포트를 점유하는 복수의 패킷을 수신하고, 각 패킷의 시간 길이 정보 및 각 패킷에 대응하는 프로그램의 프로그램의 우선순위 정보를 각각 획득한 다음, 각 패킷의 시간 길이 정보 및 각 패킷에 대응하는 프로그램의 프로그램의 우선순위 정보에 기초하여 각 패킷의 우선순위 레벨을 계산하고, 최종적으로 각각의 패킷의 계산된 우선순위 레벨에 기초하여 최고 우선순위를 가지는 패킷을 결정하고 최고 우선순위를 가지는 패킷을 전달 포트로부터 송신한다.
선택적으로, 패킷의 프로그램 우선순위 정보가 패킷의 헤드 정보로부터 획득되는 경우, 단계 102 이전에, 상기 방법은 다음의 단계를 더 포함한다.
단계 102a에서, 패킷이 NOC의 라우팅 노드 중 첫번째 라우팅 노드에 진입하는 경우, 라우팅 노드 중 첫번째 라우팅 노드에 대응하는 CPU의 레지스터로부터 패킷에 대응하는 우선순위 정보를 취득하고, 패킷에 대응하는 우선순위 정보를 패킷의 헤드에 기록한다.
또한, 단계 102a에 기초하여, 단계 102는 구체적으로, 라우팅 노드가, 패킷의 헤드로부터 패킷에 대응하는 우선순위 정보를 판독하고, 패킷의 우선순위 정보에 기초하여 패킷의 우선순위 레벨을 획득하는 단계를 더 포함한다.
예시적으로, 임의의 패킷이 주입 포트를 통해 NOC 전자요소의 임의의 라우팅 노드로 주입되는 경우, 라우팅 노드는 패킷에 대응하는 우선순위 정보를 판독하고, 패킷의 헤드에 그 우선순위 정보를 기록하며, 패킷에 대응하는 우선순위 정보는 라우팅 노드에 대응하는 중앙 처리 장치(central procession unit, 약칭하여 CPU)의 레지스터에 미리 저장되어 있다. 라우팅 노드에 대응하는 CPU 내의 레지스터에 미리 저장된 우선순위 정보는 실제 애플리케이션의 요건에 기초하여 시스템 또는 사용자에 의해 미리 구성된다. 예시적으로, 라우팅 노드의 레지스터는 라우팅 노드에 대응하는 CPU 내의 QoS(Quality of Service, 서비스 품질) 레지스터이다.
단계 103에서, 라우팅 노드가 최고 우선순위를 가지는 패킷을 전달 포트를 통해 송신한다.
선택적으로, 단계 102 후에, 다음 단계가 더 포함될 수 있다.
단계 102b에서, 라우팅 노드가 최고 우선순위를 가지는 패킷 이외의 다른 패킷을 상기 전달 포트 이외의 다른 전달 포트를 통해 전달한다.
예시적으로, 라우팅 노드의 하나의 처리 기간 내에 동일한 전달 포트로 송신되되는 복수의 패킷이 있는 경우에, 라우팅 노드는 각 패킷의 우선순위 정보에 기초하여 각 패킷의 우선순위 레벨을 계산하고, 우선순위 레벨 기초하여 포트들에 그 복수의 패킷을 할당한다. 최고 우선순위를 가지는 패킷은 전달 포트에 직접 할당되고, 즉 최고 우선순위를 가지는 패킷은 전달 포트를 통해 송신되는 한편 보다 낮은 우선순위를 가지는 다른 패킷은 편향된다, 즉 다른 패킷은 다른 전달 포트를 통해 각각 송신된다.
선택적으로, 단계 102는 구체적으로 다음 단계를 포함한다.
단계 102c1에서, 라우팅 노드가 패킷의 우선순위 정보 및 미리 저장된 우선순위 임계값을 획득한다.
우선순위 임계값, 핸디캡(handicap)은 고정 파라미터(fixed parameter)이고, 주로 NOC 네트워크의 크기에 기초하여 결정된다(예를 들어, 64개의 코어를 구비한 NOC는 하나의 값을 갖는 핸디캡에 대응하고, 32개의 코어를 구비한 NOC는 다른 값을 가지는 핸디캡에 대응한다). NOC 네트워크의 크기가 결정된 후, 핸디캡의 값은 고정된 값으로 호출(call)되고, 변경할 수 없다. 또한, 핸디캡은 라우팅 노드에 대응하는 CPU의 레지스터에 저장된다. 라우팅 노드가 우선순위 임계값에 기초하여 각 패킷의 우선순위 레벨을 계산할 필요가 있는 경우, 우선순위 임계값은 라우팅 노드에 대응하는 CPU의 레지스터로부터 판독될 수 있다.
단계 102c2에서, 라우팅 노드는 패킷의 우선순위 정보 및 우선순위 임계값에 기초하여 패킷의 우선순위 레벨을 결정한다.
예시적으로, 라우팅 노드가 각 패킷의 프로그램의 우선순위 정보, 각 패킷의 시간 길이 정보 연령(time length information age) 및 NOC의 핸디캡을 획득한 후, 라우팅 노드는 식 1 또는 식 2를 사용하여 각 패킷의 우선순위 레벨을 계산할 수있고; 여기서, 핸디캡은 주로 각각의 패킷 사이의 차이를 증폭하여, 높은 우선순위를 가지는 패킷을 더 높은 레벨로 올리고 낮은 우선순위를 가지는 패킷을 더 낮은 레벨로 낮추기 위해 사용되며; 구체적으로는 식 1 및 식 2는 다음과 같다:
유의해야 할 것은, 식 1 및 식 2가 실제 애플리케이션 상황에 기초하여 수정 및 설정될 수도 있다는 것이다. 여기서 식 1 및 식 2는 단지 예시일 뿐이고 구체적인 계산식은 이에 한정되지 않는다.
구체적으로, 라우팅 노드는 각각의 패킷의 계산된 우선순위 레벨에 기초하여 각각의 패킷에 대한 전달 포트를 할당할 때, 최고 우선순위를 가지는 패킷은 전달 포트를 직접 통과하고, 즉 최고 우선순위를 가지는 패킷은 전달 포트를 통해 전달되는 반면, 다른 패킷은 다른 전달 포트를 통해 전달된다. 편향된 패킷의 경우, 패킷의 연령 값은, 패킷이 다른 전달 포트에 할당되도록 편향됨에 따라 증가될 수 있고, 따라서, 패킷은 전달 포트에 대한 다음 경쟁에 더 유리하다.
본 발명의 실시예에 따른 무버퍼 NOC를 위한 데이터 처리 방법에서, 라우팅 노드는, 하나의 처리 기간 내에, 동일한 전달 포트로 송신되어야 하는 복수의 패킷을 수신하고, 패킷의 우선순위 정보를 취득하고 우선순위 정보에 기초하여 패킷의 우선순위 레벨을 결정하고, 우선순위 정보는 패킷의 시간 길이 정보 및 패킷에 대응하는 프로그램의 프로그램 우선순위 정보를 포함하고, 패킷의 시간 길이 정보는 패킷이 NOC에 잔존하는 기간을 나타내며; 최고 우선순위를 가지는 패킷이 전달 포트를 통해 전달된다. 따라서, 패킷이 전달 포트를 통해 라우팅 노드로 주입되는 경우 높은 우선순위를 가지는 패킷이 더 큰 승리의 기회를 가질 수 있고, 높은 프로그램 우선순위를 가지는 패킷이 무버퍼 NOC에 잔존하는 기간이 단축되고, 또한, 우선순위가 높은 프로그램의 성능은, 높은 프로그램 우선순위를 가지는 패킷이 편향되는 비율을 감소시킴으로써, 향상된다.
무버퍼 NOC를 위한 데이터 처리 방법이 본 발명의 실시예에 따라 제공된다. 상기 방법은 NOC 전자요소에 적용된다. NOC 전자요소는 하나 이상의 라우팅 노드 및 데이터 프로세서를 포함한다. 도 4에 도시 된 바와 같이, 무버퍼 NOC를 위한 데이터 처리 방법은 구체적으로 다음과 같은 단계를 포함한다.
단계 201에서, NOC 전자요소의 데이터 프로세서가 무버퍼 NOC 내의 각각의 라우팅 노드의 노드 정보를 취득한다.
구체적으로, 본 발명의 실시예에 따른 데이터 프로세서는 NOC 내의 집중식 제어기(centralized controller)일 수 있거나, NOC 내의 임의의 라우팅 노드에 대응하는 CPU일 수 있거나, 독립된 계산 유닛일 수 있다. 본 발명의 실시예에서 NOC는 하나 이상의 라우팅 노드를 포함하고, 각 라우팅 노드는 패킷을 주입하도록 구성된 주입 포트 및 네트워크에 패킷을 전달하도록 구성된 복수의 전달 포트를 포함한다.
본 발명의 실시예에서 기술하는 라우팅 노드의 노드 정보는, 라우팅 노드의 기아율, IPF(Instructions Per Flit, 각 패킷에 대응하는 명령어의 양), 및 라우팅 노드로 현재 주입된 패킷에 대응하는 프로그램의 프로그램 우선순위 정보를 포함하지만 이에 한정되는 것은 아니다. 구체적으로, 프로그램 우선순위 정보는 현재된 주입된 패킷의 우선순위를 나타내는 데 사용되고, 라우팅 노드의 기아율은 하나의 NOC 데이터 기간에 대한 라우팅 노드의 기아 기간(starving period)의 비율이고, 기아 기간은 라우팅 노드에서 기아가 발생하는 기간이다.
예시적으로, 현재 주입된 패킷에 대응하는 프로그램의 IPF가 높으면, 이는 현재 주입된 패킷에 대응하는 프로그램의 패킷을 라우팅 노드로 주입하기 위해 대량의 명령어가 라우팅 노드에 의해 실행될 필요가 있음을 나타내고, 이는 또한 현재 주입된 패킷에 대응하는 프로그램이 네트워크 지연(network latency)에 높은 민감도를 가지고 있음을 나타낸다. 현재 주입된 패킷에 대응하는 프로그램의 IPF가 낮으면, 이는 현재 주입된 패킷에 대응하는 프로그램의 패킷을 라우팅 노드로 주입하기 위해 소량의 명령어가 라우팅 노드에 의해 실행될 필요가 있음을 나타내고, 이는 또한 현재 주입된 패킷에 대응하는 프로그램이 네트워크 지연에 낮은 민감도를 가지고 있음을 나타낸다.
구체적으로, NOC 전자요소의 데이터 프로세서가 라우팅 노드로 현재 주입된 패킷에 대응하는 프로그램의 프로그램의 우선순위 정보를 취득하는 경우, 현재 주입된 패킷에 대응하는 프로그램의 프로그램의 우선순위 정보는 현재 주입된 패킷의 헤드를 직접 분석하여 취득될 수 있거나, 패킷에 대응하는 프로그램의 프로그램 우선순위 정보는, 패킷의 헤드 정보에 저장된 목적지 라우팅 노드의 ID, 근원지 주소 등에 기초하여, 라우팅 노드의 레지스터로부터 직접 취득될 수 있다.
단계 202에서, NOC 전자요소에 혼잡이 발생하면, NOC 전자요소의 데이터 프로세서가, 각각의 라우팅 노드로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보에 기초하여, 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 계산한다.
주입 제한 비율은, 라우팅 노드에 의해 라우팅 노드로 주입되는 것이 제한되는, 현재 주입된 패킷에 대응하는 프로그램의 백분율, 즉, 라우팅 노드로 주입되는 것이 제한된, 라우팅 노드로 현재 주입된 패킷에 대응하는 프로그램의 패킷의 비율이다. 또, 주입 제한 비율은 다음 기간에 주입될 라우팅 노드에 대응하는 CPU의 패킷의 비율을 나타내는 데 사용된다, 즉, 라우팅 노드에 대응하는 CPU에 의해 송신된 각 패킷에 대해, 주입 제한 비율에 기초하여 주입 여부가 결정되어야 하고, 각 패킷의 주입 프로세스는 확률 프로세스이다.
선택적으로, 단계 202는 구체적으로 다음 단계를 포함한다:
단계 202a에서, NOC 전자요소의 데이터 프로세서가, 각각의 라우팅 노드로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보 및 주입 제한 비율식에 기초하여, 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 결정한다.
예시적으로, NOC 전자요소에 혼잡이 발생하면, NOC 전자요소의 데이터 프로세서는, 각각의 라우팅 노드로 현재 주입된 패킷에 대응하는 프로그램의 IPF와 프로그램 우선순위 정보 및 주입 제한 비율식에 기초하여, 미리 설정된 기간 내에 각각의 라우팅 노드로 주입될 패킷에 대해 상이한 범위의 제한을 가한다. 구체적으로, 미리 설정된 제1 임계값보다 낮은 우선순위를 가지는 프로그램, 및 미리 설정된 제2 임계값보다 낮은 IPF를 가지는 프로그램(즉, 네트워크 지연에 민감하지 않는 프로그램)에 대해, 대응하는 라우팅 노드는, 라우팅 노드로 주입될, 현재 주입된 패킷에 대응하는 프로그램에 대해 높은 주입 제한 비율을 가한다. 다시 말해, 낮은 우선순위 및 네트워크 지연에 대해 낮은 민감도를 갖는 프로그램은 라우팅 노드로 주입되는 것이 제한되므로, NOC 전자요소 내에 패킷의 양이 감소되며, 따라서, NOC 전자요소의 혼잡이 감소된다. 반면 미리 정해진 제1 임계값보다 높은 우선순위를 가지는 프로그램의 경우, 대응하는 라우팅 노드는 현재 주입된 패킷에 대응하는 프로그램에 대해 낮은 주입 제한 비율을 가하므로, 높은 우선순위를 가지는 프로그램이 성공적 라우팅 노드로 주입되도록 더 큰 기회를 제공받고, 높은 우선순위를 가지는 프로그램은 기아 및 편향의 최소 발생을 보장받으며, 패킷이 NOC 전자요소에 잔존하는 기간은 직접적으로 단축되고 NOC 전자요소의 혼잡이 감소된다.
구체적으로는, 상기한 주입 제한 비율식으로부터, 각 라우팅 노드로 현재 주입된 패킷에 대응하는 프로그램의 프로그램의 우선순위 정보와 IPF 사이의 음의 상관관계가 존재하므로, 미리 설정된 제1 임계값보다 높은 우선순위를 가지는 프로그램에 대한 주입 제한 비율은, 미리 설정된 제1 임계값보다 낮은 우선순위를 가지는 프로그램에 대한 주입 제한 비율 및 미리 설정된 제2 임계값보다 낮은 IPF를 가지는 프로그램에 대한 주입 제한 비율보다 낮다.
유의해야 할 것은, δ는 계산된 주입 제한 비율이 너무 작아지는 것을 방지하기 위해 설정된 최소 임계값이라는 것이다.
선택적으로, 단계 202 이전에, 다음 단계가 더 포함된다:
단계 202b에서, NOC 전자요소의 데이터 프로세서는, 각 라우팅 노드에 대해, 라우팅 노드의 기아율과 라우팅 노드에 대응하는 기아율 임계값을 비교하여, 라우팅 노드에 혼잡이 발생하는지를 결정한다.
NOC 전자요소의 어느 라우팅 노드에 혼잡이 발생하면, 무버퍼 NOC에 혼잡이 발생하는 것으로 결정한다.
NOC 전자요소의 어느 라우팅 노드에 혼잡이 발생하면, 무버퍼 NOC에 혼잡이 발생하는 것으로 결정된다. 구체적으로, NOC 전자요소의 데이터 프로세서가 각 라우팅 노드에 대해 혼잡 결정을 수행하는 경우, 라우팅 노드의 기야율이 라우팅 노드에 대해 미리 설정된 기아율 임계값과 비교되고, 라우팅 노드의 기아율이 라우팅 노드에 대해 미리 설정된 기아율 임계값을 초과하면 라우팅 노드에 혼잡이 발생하는 것으로 간주된다. 유의해야 할 것은 각각의 라우팅 노드는 상이한 기아율 임계값에 대응한다는 것이다. 각 라우팅 노드에 대한 기아율 임계값은, 라우팅 노드의 기아율, 현재 주입된 패킷에 대응하는 프로그램의 IPF와 프로그램 우선순위 정보, 및 현재 애플리케이션 시나리오의 조합에 기초하여, 라우팅 노드에 의해 취득된다.
단계 203에서, NOC 전자요소의 데이터 프로세서가 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을, 대응하는 라우팅 노드에 할당하고, 각각의 라우팅 노드가, 대응하는 주입 제한 비율에 기초하여, 현재 주입된 패킷에 대응하는 프로그램이 라우팅 노드로 주입되는 것을 제한한다.
구체적으로, NOC 전자요소의 데이터 프로세서가 패킷에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 계산한 후, 각각의 라우팅 노드에 대응하는 주입 제한 비율은 대응하는 라우팅 노드에 할당된다. 주입 제한 비율을 수신한 후, 각 라우팅 노드는, 수신 주입 제한 비율에 기초하여, 현재 주입된 패킷에 대응하는 프로그램의 패킷 각각에 대한 주입 결정을 수행할 수 있다. 예를 들어, 특정 라우팅 노드에 대한 주입 제한 비율이 50%인 경우, 라우팅 노드는, 50%의 주입 제한 비율에 기초하여, 라우팅 노드로 현재 주입된 패킷에 대응하는 프로그램의 패킷의 50%가 라우팅 노드로 주입되는 것을 제한한다.
본 발명의 실시예에 따른 무버퍼 NOC 전자요소를 위한 데이터 처리 방법에서, NOC 전자요소에 혼잡이 발생하면, NOC 전자요소의 데이터 프로세서는, 각각의 라우팅로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보에 기초하여, 각각의 라우팅 노드의 노드 정보에서, 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 계산한다. 구체적으로, 미리 설정된 제1 임계값보다 높은 우선순위를 가지는 프로그램에 대한 주입 제한 비율은, 미리 설정된 제1 임계값보다 낮은 우선순위를 가지는 프로그램 및 미리 설정된 제2 임계값보다 낮은 IPF를 가지는 프로그램의 주입 제한 비율보다 낮다. 그 후, 각각의 라우팅 노드들에 대응하는 주입 제한 비율은 각각의 라우팅 노드의 대응하는 라우팅 노드에 할당되고, 각 라우팅 노드는, 대응하는 주입 제한 비율에 기초하여, 현재 주입된 패킷에 대응하는 프로그램의 패킷 각각을 라우팅 노드로 주입할 것인지를 결정한다. 따라서, 라우팅 노드가, 할당 주입 제한 비율에 기초하여, 현재 주입 패킷에 대응하는 프로그램의 패킷에 대해 제한을 수행하는 경우, 높은 우선순위를 가지는 프로그램에 대응하는 주입 제한 비율은 오히려 낮기 때문에, 높은 우선순위를 가지는 프로그램의 패킷이 가능한 한 빨리 전달 포트로부터 라우팅 노드로 주입되도록 보장된다. 따라서, 높은 우선순위를 가지는 프로그램의 패킷이 편향되는 횟수가 감소하여, 높은 우선순위를 가지는 프로그램의 전반적인 성능은 향상되고, 높은 우선순위를 가지는 프로그램의 패킷의 전송 효율이 향상되고, 무버퍼 NOC의 혼잡이 완화된다.
유의해야 할 것은, 도 2에 대응하는 실시예에서 설명한, 하나의 처리 기간 내에 라우팅 노드가 패킷의 프로그램 우선순위에 기초하여 동일한 전달 포트로 송신된 각각의 패킷에 대해 전달 포트를 할당하는 프로세스, 및 도 3에 대응하는 실시예에서 설명한, NOC 전자요소의 혼잡 상태에서 NOC 전자요소의 데이터 프로세서가, NOC 전자요소의 혼잡 상황 및 프로그램의 프로그램 우선순위에 기초하여, 각각의 라우팅 노드로 주입된 패킷에 대응하는 프로그램에 상이한 범위의 제한을 가하는 프로세스는, 동일한 실시예에서 구현될 수 있다는 것이다.
전술한 것에 기초하여, 본 발명의 실시예에 따른 무버퍼 NOC를 위한 데이터 처리 방법이 제공된다. 상기한 실시예와 관련된 기술용어 및 개념의 설명에 대해서는 대응하는 도 2 및 도 3을 참조할 수 있으므로, 여기서는 상세하게 설명하지 않는다. 구체적으로, 본 발명의 실시예는 NOC 전자요소에 적용된다. NOC 전자요소는 하나 이상의 라우팅 노드와 데이터 프로세서를 포함한다. 데이터 프로세서는 NOC 내의 집중식 제어기일 수 있거나, NOC 내의 임의의 라우팅 노드에 대응하는 CPU일 수 있거나, 독립된 계산 유닛일 수 있다. NOC의 각 라우팅 노드는 패킷을 주입하도록 구성된 하나의 주입 포트와 패킷을 네트워크에 전달하도록 구성된 복수의 전달 포트를 포함한다. 도 5에 도시된 바와 같이, 무버퍼 NOC를 위한 데이터 처리 방법은 구체적으로 다음 단계를 포함한다.
단계 301a에서, 라우팅 노드가, 하나의 처기 주기 내에, 동일한 전달 포트로 송신되어야 하는 복수의 패킷을 수신한다.
단계 302a에서, 라우팅 노드가 패킷의 우선순위 정보를 취득하고, 우선순위 정보에 기초하여 패킷의 우선순위 레벨을 결정한다.
단계 303a1에서, 라우팅 노드가 전달 포트를 통해 최고 우선순위를 가지는 패킷을 송신한다.
단계 303a2에서, 라우팅 노드가 상기 전달 포트 이외의 다른 전달 포트를 통해 최고 우선순위를 가지는 패킷 이외의 다른 패킷을 송신한다.
단계 301a 내지 단계 303a1를 실행 또는 단계 301a 내지 단계 303a2를 실행하는 프로세스에서, 무버퍼 NOC를 위한 데이터 처리 방법은 다음 단계를 더 포함한다.
단계 301b에서, NOC 전자 요소의 데이터 프로세서가 무버퍼 NOC의 각각의 라우팅 노드의 노드 정보를 취득한다.
단계 302b에서, NOC 전자 요소에 혼잡이 발생하면, NOC 전자 요소의 데이터 프로세서가 각각의 라우팅 노드로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보에에 기초하여, 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 계산한다.
주입 제한 비율은, 라우팅 노드에 의해 라우팅 노드로 주입되는 것이 제한되는, 현재 주입된 패킷에 대응하는 프로그램의 백분율이다.
선택적으로, 단계 302b는 구체적으로 다음 단계를 포함한다.
단계 303b1에서, NOC 전자요소의 데이터 프로세서가, 각각의 라우팅 노드로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보 및 주입 제한 비율식에 기초하여, 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 결정한다.
선택적으로, 단계 302b 이전에, 다음 단계가 더 포함된다:
단계 302b2에서, NOC 전자요소의 데이터 프로세서가, 각 라우팅 노드에 대해, 라우팅 노드의 기아율과 라우팅 노드에 대응하는 기아율 임계값을 비교하여, 라우팅 노드에 혼잡이 발생하는지를 결정한다.
NOC 전자요소의 어느 라우팅 노드에 혼잡이 발생하면, 무버퍼 NOC에 혼잡이 발생하는 것으로 결정된다.
단계 303b에서, NOC 전자 요소의 데이터 프로세서가, 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 대응하는 라우팅 노드에 할당하고, 각각의 라우팅 노드가, 대응하는 주입 제한 비율에 기초하여, 현재 주입된 패킷에 대응하는 프로그램이 라우팅 노드로 주입되는 것을 제한한다.
예시적으로, 상기 단계 301a 내지 304a1 또는 304a2는 하나의 처리 기간 내에 라우팅 노드가 동일 전달 포트에 송신된 각각의 패킷에 대해 전달 포트를 할당하는 프로세스를 설명하고; 상기 단계 301b 내지 304b는 NOC 전자요소의 혼잡 상태에서 NOC 전자요소의 데이터 프로세서가, NOC 전자요소의 혼잡 상황 및 각각의 라우팅 노드로 진입된 패킷에 대응하는 프로그램의 프로그램 우선순위에 기초하여, 각각의 라우팅 노드로 주입된 패킷에 대응하는 프로그램에 상이한 범위(extent)의 제한을 가하는 프로세스를 설명한다.
본 발명의 실시예에 따른 무버퍼 NOC 전자요소를 위한 데이터 처리 방법에서는, NOC 전자요소의 데이터 프로세서가 패킷의 프로그램 우선순위에 기초하여 동일한 전달 포트로 송신된 각각의 패킷에 대한 전달 포트를 할당하는 프로세스에 의해, 패킷이 전달 포트를 통해 라우팅 노드로 주입되는 경우, 높은 우선순위를 가지는 프로그램이 더 큰 기회를 가질 수 있고, 높은 프로그램 우선순위를 가지는 패킷이 무버퍼 NOC 내에 잔존하는 기간이 단축되며, 또한 높은 우선 순위를 가지는 패킷이 편향되는 비율을 감소시킴으로써 높은 우선순위를 가지는 프로그램의 성능이 향상된다. 또, NOC 전자요소에 혼잡이 발생하면, NOC 전자요소의 데이터 프로세서는, 각각의 라우팅 노드의 노드 정보에 기초하여, 현재 주입된 패킷에 대응하는 각각의 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 계산하고 각각의 라우딩 노드에 주입 제한 비율을 대응시킨다. 구체적으로, 미리 설정된 제1 임계값보다 높은 우선순위를 가지는 프로그램에 대한 주입 제한 비율은, 미리 설정된 제1 임계값보다 낮은 우선순위를 가지는 프로그램 및 미리 설정된 제2 임계값보다 낮은 IPF를 가지는 프로그램의 주입 제한 비율보다 낮다. 그 후, 계산된 주입 제한 비율이 대응하는 라우팅 노드에 각각 할당되어, 각 라우팅 노드는, 대응하는 주입 제한 비율에 기초하여, 현재 주입된 패킷에 대응하는 프로그램의 패킷 각각을 라우팅 노드로 주입할 것인지를 결정한다. 상기한 프로세스에 의해, 라우팅 노드가, 할당 주입 제한 비율에 기초하여, 현재 주입 패킷에 대응하는 프로그램의 패킷에 대해 제한을 수행하는 경우, 높은 우선순위를 가지는 프로그램에 대응하는 주입 제한 비율은 오히려 낮기 때문에, 높은 우선순위를 가지는 프로그램의 패킷이 가능한 한 빨리 전달 포트로부터 라우팅 노드로 주입되도록 보장된다. 따라서, 높은 우선순위를 가지는 프로그램의 패킷이 편향되는 횟수가 감소되어, 높은 우선순위를 가지는 프로그램의 전반적인 성능은 향상되고, 높은 우선순위를 가지는 프로그램의 패킷의 전송 효율이 향상되고, 무버퍼 NOC의 혼잡이 완화된다.
본 발명의 실시예에 따라 NOC 전자요소가 제공된다. 도 6에 도시된 바와 같이, NOC 전자요소(3)는 하나 이상의 라우팅 노드(31)를 포함한다. 구체적으로, NOC 전자요소의 하나의 라우팅 노드의 개략 구성도인 도 7에 도시된 바와 같이, 라우팅 노드(31)는, 저장 장치(311), 프로세서(312), 스위칭 유닛, 입력 포트 및 출력 포트를 포함한다. 프로세스 및 저장 장치의 기능을 이하에 설명한다.
저장 장치(311)는 라우팅 테이블을 저장하도록 구성되어 있고, 패킷이 목적지에 도달하는 경로가 라우팅 테이블에 기록되어 있다.
프로세서(312)는, 하나의 처리 기간 내에, 동일한 전달 포트에 송신되어야 하는 복수의 패킷을 수신하고; 패킷의 우선순위 정보를 취득하고 우선순위 정보에 기초하여 패킷의 우선순위 레벨을 결정하고; 최고 우선순위를 가지는 패킷을 전달 포트를 통해 전달하도록, 구성되어 있고; 우선순위 정보는 패킷의 시간 길이 정보 및 패킷에 대응하는 프로그램의 프로그램 우선순위 정보를 포함하고, 패킷의 시간 길이 정보는, 패킷이 NOC에 잔존하는 기간을 나타낸다.
선택적으로, 저장 장치(311)는 우선순위 임계값을 저장하도록 더 구성되어 있다.
프로세서(312)가 패킷의 우선순위 정보를 취득하고 우선순위 정보에 기초하여 패킷의 우선순위 레벨을 결정하는 경우, 프로세서(312)는 구체적으로 패킷의 우선순위 정보를 취득하고, 저장 장치(311)로부터 우선순위 임계값을 취득하고, 패킷의 우선순위 정보 및 우선순위 임계값에 기초하여 패킷의 우선순위 레벨을 획득하도록 구성되어 있다.
선택적으로, 프로세서(312)는, 패킷이 NOC의 라우팅 노드 중 첫번째 라우팅 노드에 진입하는 경우, 라우팅 노드 중 첫번째 라우팅 노드에 대응하는 CPU의 레지스터로부터 패킷에 대응하는 우선순위 정보를 취득하고, 패킷에 대응하는 우선순위 정보를 패킷의 헤드에 기록하도록 더 구성되어 있다.
프로세서(312)가 패킷의 우선순위 정보를 취득하고 우선순위 정보에 기초하여 패킷의 우선순위 레벨을 결정하는 경우, 프로세서(312)는 구체적으로 패킷의 헤드로부터 각 패킷에 대응하는 우선순위 정보를 판독하고, 패킷의 우선순위 정보에 기초하여 패킷의 우선순위 레벨을 획득하도록 더 구성되어 있다.
선택적으로, 프로세서(312)는 최고 우선순위를 가지는 패킷 이외의 다른 패킷을 상기 전달 포트 이외의 다른 전달 포트를 통해 전달하도록 더 구성되어 있다.
본 발명의 실시예에 따른 NOC 전자요소에서, 라우팅 노드는, 하나의 처리 기간 내에, 동일한 전달 포트로 송신되어야 하는 복수의 패킷을 수신하고, 패킷의 우선순위 정보를 취득하고 우선순위 정보에 기초하여 패킷의 우선순위 레벨을 결정하고, 우선순위 정보는 패킷의 시간 길이 정보 및 패킷에 대응하는 프로그램의 프로그램 우선순위 정보를 포함하고, 패킷의 시간 길이 정보는 패킷이 NOC에 잔존하는 기간을 나타내며; 최고 우선순위를 가지는 패킷이 전달 포트를 통해 전달된다. 따라서, 패킷이 전달 포트를 통해 라우팅 노드로 주입되는 경우, 높은 우선순위를 가지는 패킷이 더 큰 승리의 기회를 가질 수 있고, 높은 프로그램 우선순위를 가지는 패킷이 무버퍼 NOC에 잔존하는 기간이 단축되고, 또한, 우선순위가 높은 프로그램의 성능은, 높은 프로그램 우선순위를 가지는 패킷이 편향되는 비율을 감소시킴으로써, 향상된다.
본 발명의 실시예에 따라 NOC 전자요소가 제공된다. 도 8에 도시된 바와 같이, NOC 전자요소(4)는 하나 이상의 라우팅 포트(41) 및 데이터 프로세서(42)를 포함한다. 데이터 프로세서(42)는 NOC 내의 집중식 제어기일 수 있거나, NOC 내의 임의의 라우팅 노드에 대응하는 CPU일 수 있거나, 독립된 계산 유닛일 수 있다. NOC의 각 라우팅 노드(41)는 패킷을 주입하도록 구성된 주입 포트 및 패킷을 네트워크에 전달하도록 구성된 복수의 전달 포트를 포함한다.
데이터 프로세서(42)는, NOC 전자요소(4)의 라우팅 노드(41)로부터 NOC 전자요소(4)의 각 라우팅 노드(41)의 노드 정보를 취득하도록 구성되어 있다.
노드 정보는, 라우팅 노드(41)의 기아율, 라우팅 노드(41)로 현재 주입된 패킷에 대응하는 프로그램의 IPF 및 프로그램 우선순위 정보를 포함한다. 프로그램 우선순위 정보는 현재 주입된 패킷의 우선순위를 나타내는 데 사용된다.
데이터 프로세서(42)는, NOC 전자요소(4)에 혼잡이 발생하면, 각 라우팅 노드(41)로 현재 주입된 패킷의 IPF 및 프로그램 우선순위 정보에 기초하여, 현재 주입된 패킷에 대응하는 프로그램에 대해 각 라우팅 노드(41)에 의해 가해진 주입 제한 비율을 계산하도록 더 구성되어 있다.
주입 제한 비율은, 라우팅 노드(41)에 의해 라우팅 노드로 주입되는 것이 제한되는, 현재 주입된 패킷에 대응하는 프로그램의 백분율이다.
데이터 프로세서는, 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드(41)에 의해 가해진,주입 제한 비율을, 대응하는 라우팅 노드(41)에 할당하도록 더 구성되어 있다.
각 라우팅 노드(41)는, 데이터 프로세서(42)에 의해 할당된 대응하는 주입 제한 비율에 기초하여, 현재 주입된 패킷에 대응하는 프로그램이 라우팅 노드(41)로 주입되는 것을 제한하도록 구성되어 있다.
선택적으로, 데이터 프로세서(42)가, 각 라우팅 노드(41)로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보에 기초하여, 현재 주입된 패킷에 대응하는 프로그램에 대해 각 라우팅 노드(41)에 의해 가해진 주입 제한 비율을 계산하는 경우, 데이터 프로세서(42)는 구체적으로, 라우팅 노드(41)로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보 및 주입 제한 비율식에 기초하여, 현재 주입된 패킷에 대응하는 프로그램에 대해 각 라우팅 노드(41)에 의해 가해진 주입 제한 비율을 결정하도록 더 구성되어 있다.
선택적으로, 데이터 프로세서(42)는, 각 라우팅 노드(41)의 기아율에 기초하여, NOC 전자요소(4)에 혼잡이 발생하는지를 결정한다. 구체적으로, 데이터 프로세서(42)는, 각 라우팅 노드(41)에 대해, 라우팅 노드(41)의 기아율과 라우팅 노드(41)에 대응하는 기아율 임계값을 비교하여, 라우팅 노드(41)에 혼잡이 발생하는지를 결정한다.
NOC 전자요소(4)의 어느 라우팅 노드에 혼잡이 발생하면, NOC 전자요소(4)에 혼잡이 발생하는 것으로 결정된다.
선택적으로, NOC 전자요소(4)의 각 라우팅 노드(41)의 노드 정보는 라우팅 노드(41)의 레지스터에 저장되어 있다.
본 발명에 따른 NOC 전자요소에서, 무버퍼 NOC에 혼잡이 발생하면, 무버퍼 NOC의 데이터 프로세서는, 각각의 라우팅 노드로 현재 주입된 패킷의 IPF 및 프로그램 우선순위 정보에 기초하여, 각각의 라우팅 노드의 노드 정보에서, 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 계산한다. 구체적으로, 미리 설정된 제1 임계값보다 높은 우선순위를 가지는 프로그램에 대한 주입 제한 비율은, 미리 설정된 제1 임계값보다 낮은 우선순위를 가지는 프로그램 및 미리 설정된 제2 임계값보다 낮은 IPF를 가지는 프로그램의 주입 제한 비율보다 낮다. 그 후, 각각의 라우팅 노드에 대응하는 주입 제한 비율이 대응하는 라우팅 노드에 각각 할당되고, 각 라우팅 노드는, 대응하는 주입 제한 비율에 기초하여, 현재 주입된 패킷에 대응하는 프로그램의 패킷 각각을 라우팅 노드로 주입할 것인지를 결정한다. 따라서, 라우팅 노드가, 할당 주입 제한 비율에 기초하여, 현재 주입 패킷에 대응하는 프로그램의 패킷에 대해 제한을 수행하는 경우, 높은 우선순위를 가지는 프로그램에 대응하는 주입 제한 비율은 오히려 낮기 때문에, 높은 우선순위를 가지는 프로그램의 패킷이 가능한 한 빨리 전달 포트로부터 라우팅 노드로 주입되도록 보장된다. 따라서, 높은 우선순위를 가지는 프로그램의 패킷이 편향되는 횟수가 감소되어, 높은 우선순위를 가지는 프로그램의 전반적인 성능은 향상되고, 높은 우선순위를 가지는 프로그램의 패킷의 전송 효율이 향상되고, 무버퍼 NOC의 혼잡이 완화된다.
본 발명의 실시예에 따라 NOC 전자요소가 제공된다. 도 9에 도시된 바와 같이, NOC 전자요소(5)는 하나 이상의 라우팅 포트(51) 및 데이터 프로세서(52)를 포함한다. 각 라우팅 노드(51)는 외부로부터 라우팅 노드(51)로 패킷을 주입하도록 구성된 주입 포트 및 패킷을 라우팅 노드(51)로부터 네트워크에 전달하도록 구성된 하나 이상의 전달 포트를 포함한다. 데이터 프로세서(52)는 NOC 내의 집중식 제어기일 수 있거나, NOC 내의 임의의 라우팅 노드에 대응하는 CPU일 수 있거나, 독립된 계산 유닛일 수 있다.
NOC 전자요소(5)의 라우팅 노드는, 하나의 처리 기간 내에, 동일한 전달 포트로 송신되어야 하는 복수의 패킷을 수신하고; 패킷의 우선순위 정보를 취득하고 그 우선순위 정보에 기초하여 패킷의 우선순위 레벨을 결정하고; 최고 우선순위를 가지는 패킷을 전달 포트를 통해 송신하도록, 구성되며, 우선순위 정보는 패킷의 시간 길이 정보 및 패킷에 대응하는 프로그램의 프로그램 우선순위 정보를 포함하고, 패킷의 시간 길이 정보는 패킷이 NOC에 잔존하는 기간을 나타낸다.
데이터 프로세서(52)는 NOC 전자요소(5)의 라우팅 노드(51)로부터 NOC 전자요소(5)의 각 라우팅 노드(51)의 노드 정보를 취득하도록 구성되어 있다. 노드 정보는, 라우팅 노드(51)의 기아율, 라우팅 노드(51)로 현재 주입된 패킷에 대응하는 프로그램의 IPF 및 프로그램 우선순위 정보를 포함한다. 프로그램 우선순위 정보는 현재 주입된 패킷의 우선순위를 나타내는 데 사용된다. 데이터 프로세서(52)는 각 라우팅 노드(51)의 기아율에 기초하여 NOC 전자요소(5)에 혼잡이 발생하는지를 결정하도록 더 구성되어 있고, NOC 전자요소(5)에 혼잡이 발생하면, 데이터 프로세서(52)는, 각 라우팅 노드(51)로 현재 주입된 패킷의 IPF 및 프로그램 우선순위 정보에 기초하여, 현재 주입된 패킷에 대응하는 프로그램에 대해 각 라우팅 노드(51)에 의해 가해진 주입 제한 비율을 계산하도록 더 구성되어 있다. 주입 제한 비율은, 라우팅 노드(51)에 의해 라우팅 노드(51)로 주입되는 것이 제한되는, 현재 주입된 패킷에 대응하는 프로그램의 백분율이다. 데이터 프로세서(52)는, 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드(51)에 의해 가해진 주입 제한 비율을, 대응하는 라우팅 노드(51)에 할당하도록 더 구성되어 있다.
NOC 전자요소(5)의 각 라우팅 노드(51)는, 데이터 프로세서(52)에 의해 할당된 대응하는 주입 제한 비율에 기초하여, 현재 주입된 패킷에 대응하는 프로그램이 라우팅 노드(51)로 주입되는 것을 제한하도록 구성되어 있다.
선택적으로, 라우팅 노드(51)는 최고 우선순위를 가지는 패킷 이외의 다른 패킷을 상기 전달 포트 이외의 다른 전달 포트를 통해 전달하도록 더 구성되어 있다.
선택적으로, 라우팅 노드(51)가 패킷의 우선순위 정보를 취득하고 우선순위 정보에 기초하여 패킷의 우선순위 레벨을 결정하는 경우, 라우팅 노드(51)는 구체적으로 각 패킷의 우선순위 정보 및 우선순위 임계값을 취득하고, 패킷의 우선순위 정보 및 우선순위 임계값에 기초하여 각 패킷의 우선순위 레벨를 결정하도록, 더 구성되어 있다.
선택적으로, 라우팅 노드(51)는, 패킷이 NOC의 라우팅 노드 중 첫번째 라우팅 노드에 진입하는 경우, 라우팅 노드 중 첫번째 라우팅 노드에 대응하는 CPU의 레지스터로부터 패킷에 대응하는 우선순위 정보를 취득하고, 패킷에 대응하는 우선순위 정보를 패킷의 헤드에 기록하도록, 더 구성되어 있다.
라우팅 노드(51)가 패킷의 우선순위 정보를 취득하고 우선순위 정보에 기초하여 패킷의 우선순위 레벨을 결정하는 경우, 라우팅 노드(51)는 구체적으로 패킷의 헤드로부터 각 패킷에 대응하는 우선순위 정보를 판독하고, 패킷의 우선순위 정보에 기초하여 패킷의 우선순위 레벨을 취득하도록, 구성되어 있다.
선택적으로, 데이터 프로세서(52)가, 각 라우팅 노드(51)로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보에 기초하여, 현재 주입된 패킷에 대응하는 프로그램에 대해 각 라우팅 노드(51)에 의해 가해진 주입 제한 비율을 계산하는 경우, 데이터 프로세서(52)는 구체적으로, 각 라우팅 노드(51)로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보 및 주입 제한 비율식에 기초하여, 현재 주입된 패킷에 대응하는 프로그램에 대해 각 라우팅 노드(51)에 의해 가해진 주입 제한 비율을 결정하도록 구성되어 있다. 주입 제한 비율식은 이며, 이 식에서 T는 주입 제한 비율을 나타내고, Priority는 현재 주입된 패킷의 프로그램 우선순위를 나타내고, 는 상수이다.
선택적으로, 데이터 프로세서(52)는, 각 라우팅 노드(51)의 기아율에 기초하여, NOC 전자요소(5)에 혼잡이 발생하는지를 결정하는 경우, 데이터 프로세서(42)는 구체적으로, 각 라우팅 노드(51)에 대해, 라우팅 노드(51)의 기아율과 라우팅 노드(51)에 대응하는 기아율 임계값을 비교하여, 라우팅 노드(51)에 혼잡이 발생하는지를 결정하도록 구성되어 있다.
NOC 전자요소(5) 내의 어느 라우팅 노드(51)에 혼잡이 발생하면, NOC 전자요소(5)에 혼잡이 발생하는 것으로 결정된다.
선택적으로, NOC 전자요소(5)의 각 라우팅 노드(51)의 노드 정보는 라우팅 노드(51)의 레지스터에 저장되어 있다.
본 발명의 실시예에 따른 NOC 전자요소에서는, NOC 전자요소의 라우팅 노드가 패킷의 프로그램 우선순위에 기초하여 동일한 전달 포트로 송신된 각각의 패킷에 대한 전달 포트를 할당하는 프로세스에 의해, 패킷이 전달 포트를 통해 라우팅 노드로 주입되는 경우, 높은 우선순위를 가지는 프로그램이 더 큰 기회를 가질 수 있고, 높은 프로그램 우선순위를 가지는 패킷이 무버퍼 NOC 내에 잔존하는 기간이 단축되며, 또한 높은 우선 순위를 가지는 패킷이 편향되는 비율을 감소시킴으로써 높은 우선순위를 가지는 프로그램의 성능이 향상된다. 또, NOC 전자요소에 혼잡이 발생하면, NOC 전자요소의 데이터 프로세서는, 각각의 라우팅 노드의 노드 정보에 기초하여, 현재 주입된 패킷에 대응하는 각각의 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 계산하고, 각각의 라우팅 노드를 주입 제한 비율에 대응시킨다. 구체적으로, 미리 설정된 제1 임계값보다 높은 우선순위를 가지는 프로그램에 대한 주입 제한 비율은, 미리 설정된 제1 임계값보다 낮은 우선순위를 가지는 프로그램 및 미리 설정된 제2 임계값보다 낮은 IPF를 가지는 프로그램의 주입 제한 비율보다 낮다. 그 후, 계산된 주입 제한 비율이 대응하는 라우팅 노드에 각각 할당되어, 각 라우팅 노드는, 대응하는 주입 제한 비율에 기초하여, 현재 주입된 패킷에 대응하는 프로그램의 패킷 각각을 라우팅 노드로 주입할 것인지를 결정한다. 상기한 프로세스에 의해, 라우팅 노드가, 할당 주입 제한 비율에 기초하여, 현재 주입 패킷에 대응하는 프로그램의 패킷에 대해 제한을 수행하는 경우, 높은 우선순위를 가지는 프로그램에 대응하는 주입 제한 비율은 오히려 낮기 때문에, 높은 우선순위를 가지는 프로그램의 패킷이 가능한 한 빨리 전달 포트로부터 라우팅 노드로 주입되도록 보장된다. 따라서, 높은 우선순위를 가지는 프로그램의 패킷이 편향되는 횟수가 감소되어, 높은 우선순위를 가지는 프로그램의 전반적인 성능은 향상되고, 높은 우선순위를 가지는 프로그램의 패킷의 전송 효율이 향상되고, 무버퍼 NOC의 혼잡이 완화된다.
전술한 기능 모듈의 분할은 편리하고 간결한 설명을 위해 예시된 것임이 당업자에게 명백할 것이다. 실제 애플리케이션에서, 전술한 기능들은 필요에 따라 구현을 위해 다른 기능 모듈에 할당될 수 있다, 즉, 장치는 전술한 기능의 일부 또는 전부를 구현하기 위해, 다른 기능 모듈로 분할될 수 있다. 전술한 시스템, 장치, 및 유닛의 상세한 동작 프로세스에 대해서는 전술한 방법 실시예의 대응하는 프로세스를 참조할 수 있으므로, 상세한 것은 여기서 다시 설명하지 않는다.
본 발명의 실시예에 따른, 개시된 시스템, 장치, 및 방법은 다른 방식으로도 구현될 수 있다는 것을 이해해야 한다. 예를 들어, 기재된 장치 실시예는 단지 예시일 뿐이다. 예를 들어, 유닛의 분할은 단지 논리 기능에 기초한 것일 뿐이며, 유닛은 실제 구현예에서 다른 방식으로 분할될 수 있다. 예를 들어, 복수의 유닛 또는 모듈은 결합될 수 있거나, 다른 시스템에 통합될 수 있거나, 또는 일부 특징(feature)은 생략되거나 수행되지 않을 수 있다. 또한, 개별 구성요소 사이의 표시되거나 논의된 결합(coupling), 직접 결합 또는 통신 연결은, 전자적으로, 기계적으로 또는 다른 형태로 구현될 수 있는 일부 인터페이스, 장치, 또는 유닛 사이의 간접 결합 또는 통신 연결을 통해 구현될 수 있다.
별개의 부분(separate part)으로서 설명된 유닛은 물리적으로 분리될 수 있거나 분리될 수 없을 수도 있다. 유닛으로 표시된 구성요소은 물리적인 유닛일 수 있거나 물리적인 유닛이 아닐 수 있으며, 한 장소에 위치할 수 있거나, 또는 복수의 네트워크 유닛상에 분산될 수 있다. 유닛의 일부 또는 전부는 본 발명의 실시예에 따른 해결방안을 구현하기 위해 실제 필요에 따라 선택될 수 있다.
또한, 본 발명의 실시예에 따른 개별 기능 유닛은 하나의 처리 유닛에 통합될 수 있거나, 유닛은 별개로 존재할 수 있거나, 둘 이상의 유닛이 하나의 유닛으로 통합될 수 있다. 통합 유닛(integrated unit)은 하드웨어 또는 소프트웨어 기능 유닛의 형태로 구현될 수 있다.
기능들이 소프트웨어 기능 유닛의 형태로 구현되고 소프트웨어 기능 유닛이 개별 제품으로서 판매 또는 사용되는 경우, 소프트웨어 기능 유닛은 또한 컴퓨터로 판독 가능한 저장 매체에 저장될 수 있다. 이러한 이해를 바탕으로, 본질적으로 본 발명의 기술적 해결방안, 종래기술에 기여하는 본 발명의 일부, 또는 기술적 해방안의 일부는 소프트웨어 제품의 형태로 구현될 수 있다. 컴퓨터 소프트웨어 제품은 저장 매체에 저장되고 컴퓨터 디바이스(개인용 컴퓨터, 서버, 또는 네트워크 디바이스일 수 있음)에 본 발명의 실시예에 따른 방법의 단계들 중 일부 또는 전부를 구현하도록 지시하기 위한 여러 명령어를 포함한다. 전술한 기억 매체로는, USB 디스크, 모바일 하드 디스크 드라이브, 읽기 전용 메모리(Read-Only Memory, ROM), 임의 접근 메모리(Random Access Memory, RAM), 자기 디스크, 광디스크, 등의, 프로그램 코드를 저장할 수 있는 각종 매체를 포함한다.
전술한 실시예는 본 발명의 기술적 해결방안을 설명하기 위한 것이지 본 발명을 한정하기 위한 것이 아니다. 본 발명은 전술한 실시예와 함께 상세하게 설명되었지만, 당업자는 전술한 실시예에 따른 기술적 해결방안을 수정을 가하거나, 실시예의 일부 기술적 특징을 동등물로 대체할 수 있음을 이해하여야 한다. 그러한 수정 및 동등물은, 관련 기술적 해결방안이 본 발명의 실시예에 따른 기술적 해결방안의 사상 및 범위를 벗어나게 하지는 않는다.
Claims (23)
- 무버퍼 네트워크온칩(network on chip, NOC) 전자요소(NOC electronic element without buffer)에 적용되는, 무버퍼 NOC를 위한 데이터 처리 방법으로서,
라우팅 노드(routing node)에 의해 하나의 처리 기간 내에, 동일한 전달 포트(forwarding port)에 송신되어야 하는 복수의 패킷을 수신하는 단계;
상기 복수의 패킷의 우선순위 정보를 취득하고 상기 우선순위 정보에 기초하여 상기 패킷의 우선순위 레벨을 결정하는 단계 - 각 패킷에 대해, 상기 우선순위 정보는 상기 패킷의 시간 길이 정보 및 상기 패킷에 대응하는 프로그램의 프로그램 우선순위 정보를 포함하고, 상기 패킷의 시간 길이 정보는 패킷이 상기 NOC에 잔존하는 기간을 나타냄 -; 및
최고 우선순위를 가지는 패킷을 상기 전달 포트를 통해 전달하는 단계
를 포함하는 데이터 처리 방법. - 제1항에 있어서,
상기 복수의 패킷의 우선순위 정보를 취득하고 상기 우선순위 정보에 기초하여 상기 패킷의 우선순위 레벨을 결정하는 단계는,
각 패킷의 우선순위 정보 및 미리 저장된 우선순위 임계값을 취득하는 단계; 및
상기 패킷의 우선순위 정보 및 상기 우선순위 임계값에 기초하여 각 패킷의 우선순위 레벨을 결정하는 단계를 포함하는, 데이터 처리 방법. - 제1항에 있어서,
상기 복수의 패킷의 우선순위 정보를 취득하고 상기 우선순위 정보에 기초하여 상기 패킷의 우선순위 레벨을 결정하는 단계 이전에,
패킷이 상기 NOC의 라우팅 노드 중 첫번째 라우팅 노드에 진입하는 경우, 상기 라우팅 노드 중 첫번째 라우팅 노드에 대응하는 CPU의 레지스터로부터 상기 패킷에 대응하는 우선순위 정보를 취득하고, 상기 패킷에 대응하는 우선순위 정보를 상기 패킷의 헤드에 기록하는 단계를 더 포함하고,
상기 복수의 패킷의 우선순위 정보를 취득하고 상기 우선순위 정보에 기초하여 상기 패킷의 우선순위 레벨을 결정하는 단계는,
상기 패킷의 헤드로부터 상기 패킷에 대응하는 우선순위 정보를 판독하고, 상기 패킷의 우선순위 정보에 기초하여 상기 패킷의 우선순위 레벨을 획득하는 단계를 포함하는, 데이터 처리 방법. - 제1항에 있어서,
상기 동일한 전달 포트에 송신될 상기 복수의 패킷 중에서 최고 우선순위를 가지는 패킷을 결정한 후에,
상기 최고 우선순위를 가지는 패킷 이외의 다른 패킷을 상기 전달 포트 이외의 다른 전달 포트를 통해 전달하는 단계를 더 포함하는 데이터 처리 방법. - 제2항에 있어서,
상기 동일한 전달 포트에 송신될 복수의 패킷 중에서 최고 우선순위를 가지는 패킷을 결정한 후에,
상기 최고 우선순위를 가지는 패킷 이외의 다른 패킷을 상기 전달 포트 이외의 다른 전달 포트를 통해 전달하는 단계를 더 포함하는 데이터 처리 방법. - 제3항에 있어서,
상기 동일한 전달 포트에 송신될 복수의 패킷 중에서 최고 우선순위를 가지는 패킷을 결정한 후에,
상기 최고 우선순위를 가지는 패킷 이외의 다른 패킷을 상기 전달 포트 이외의 다른 전달 포트를 통해 전달하는 단계를 더 포함하는 데이터 처리 방법. - 무버퍼 NOC 전자요소에 적용되는, 무버퍼 NOC를 위한 데이터 처리 방법으로서,
상기 NOC 전자요소의 각 라우팅 노드의 노드 정보를 취득하는 단계 - 상기 노드 정보는 상기 라우팅 노드의 기아율(starving ratio), 상기 라우팅 노드로 현재 주입된 패킷에 대응하는 프로그램의 패킷 각각에 대한 플릿당 명령어의 양(quantity of instructions per flit, IPF), 및 상기 현재 주입된 패킷의 우선순위를 나타내는 프로그램 우선순위 정보를 포함함 -;
상기 NOC 전자요소에 혼잡(congestion)이 발생하면, 각각의 라우팅 노드로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율(injection restriction ratio)을 계산하는 단계 - 상기 주입 제한 비율은, 상기 라우팅 노드에 의해 상기 라우팅 노드로 주입되는 것이 제한되는, 상기 현재 주입된 패킷에 대응하는 프로그램의 백분율임 -; 및
상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 상기 주입 제한 비율을, 대응하는 라우팅 노드에 할당하는 단계
를 포함하고,
각 라우팅 노드는, 대응하는 주입 제한 비율에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램이 상기 라우팅 노드로 주입되는 것을 제한하는,
데이터 처리 방법. - 제7항에 있어서,
각각의 라우팅 노드로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 계산하는 단계는,
각각의 라우팅 노드로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보 및 주입 제한 비율식에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 결정하는 단계를 포함하고,
상기 주입 제한 비율식은 이고, 상기 식에서 T는 상기 주입 제한 비율을 나타내고, Priority는 상기 현재 주입된 패킷의 프로그램 우선순위를 나타내고, 는 상수인, 데이터 처리 방법. - 제7항에 있어서,
각 라우팅 노드에 대해, 상기 라우팅 노드의 기아율과 상기 라우팅 노드에 대응하는 기아율 임계값을 비교하여, 상기 라우팅 노드에 혼잡이 발생하는지를 결정하는 단계; 및
상기 NOC 전자요소의 어느 라우팅 노드에 혼잡이 발생하면, 상기 NOC 전자요소에 혼잡이 발생하는 것으로 결정하는 단계를 더 포함하는 데이터 처리 방법. - 제8항에 있어서,
각 라우팅 노드에 대해, 상기 라우팅 노드의 기아율과 상기 라우팅 노드에 대응하는 기아율 임계값을 비교하여, 상기 라우팅 노드에 혼잡이 발생하는지를 결정하는 단계; 및
상기 NOC 전자요소의 어느 라우팅 노드에 혼잡이 발생하면, 상기 NOC 전자요소에 혼잡이 발생하는 것으로 결정하는 단계를 더 포함하는 데이터 처리 방법. - 저장 장치, 프로세서, 스위칭 유닛, 입력 포트 및 출력 포트를 각각 포함하는 하나 이상의 라우팅 노드를 포함하는 네트워크온칩(NOC) 전자요소로서,
상기 저장 장치는, 패킷이 목적지에 도달하는 경로가 기록되어 있는 라우팅 테이블을 저장하도록 구성되어 있고;
상기 프로세서는, 하나의 처리 기간 내에, 동일한 전달 포트에 송신되어야 하는 복수의 패킷을 수신하고, 상기 복수의 패킷의 우선순위 정보를 취득하고 상기 우선순위 정보에 기초하여 상기 복수의 패킷의 우선순위 레벨을 결정하고, 최고 우선순위를 가지는 패킷을 상기 전달 포트를 통해 전달하도록, 구성되어 있고; 각 패킷에 대해, 상기 우선순위 정보는 상기 패킷의 시간 길이 정보 및 상기 패킷에 대응하는 프로그램의 프로그램 우선순위 정보를 포함하고, 상기 패킷의 시간 길이 정보는, 패킷이 상기 NOC에 잔존하는 기간을 나타내는,
NOC 전자요소. - 제11항에 있어서,
상기 저장 장치는 우선순위 임계값을 저장하도록 더 구성되어 있고;
상기 프로세서가 상기 복수의 패킷의 우선순위 정보를 취득하고 상기 우선순위 정보에 기초하여 상기 복수의 패킷의 우선순위 레벨을 결정하는 경우, 상기 프로세서는 상기 패킷의 우선순위 정보를 취득하고, 상기 저장 장치로부터 우선순위 임계값을 취득하고, 상기 패킷의 우선순위 정보 및 상기 우선순위 임계값에 기초하여 상기 패킷의 우선순위 레벨을 획득하도록, 더 구성되어 있는, NOC 전자요소. - 제11항에 있어서,
상기 프로세서는, 패킷이 상기 NOC의 하나 이상의 라우팅 노드 중 첫번째 라우팅 노드에 진입하는 경우, 상기 하나 이상의 라우팅 노드 중 첫번째 라우팅 노드에 대응하는 CPU의 레지스터로부터 상기 패킷에 대응하는 우선순위 정보를 취득하고, 상기 패킷에 대응하는 우선순위 정보를 상기 패킷의 헤드에 기록하도록, 더 구성되어 있고;
상기 프로세서가 상기 복수의 패킷의 우선순위 정보를 취득하고 상기 우선순위 정보에 기초하여 상기 복수의 패킷의 우선순위 레벨을 결정하는 경우, 상기 프로세서는 상기 패킷의 헤드로부터 각 패킷에 대응하는 우선순위 정보를 판독하고, 상기 패킷의 우선순위 정보에 기초하여 상기 패킷의 우선순위 레벨을 획득하도록, 더 구성되어 있는, NOC 전자요소. - 제11항에 있어서,
상기 프로세서는 상기 최고 우선순위를 가지는 패킷 이외의 다른 패킷을 상기 전달 포트 이외의 다른 전달 포트를 통해 전달하도록 더 구성되어 있는, NOC 전자요소. - 제12항에 있어서,
상기 프로세서는 상기 최고 우선순위를 가지는 패킷 이외의 다른 패킷을 상기 전달 포트 이외의 다른 전달 포트를 통해 전달하도록 더 구성되어 있는, NOC 전자요소. - 제13항에 있어서,
상기 프로세서는 상기 최고 우선순위를 가지는 패킷 이외의 다른 패킷을 상기 전달 포트 이외의 다른 전달 포트를 통해 전달하도록 더 구성되어 있는, NOC 전자요소. - 주입 포트 및 하나 이상의 전달 포트를 각각 포함하는 하나 이상의 라우팅 노드, 및 데이터 프로세서를 포함하는 네트워크온칩(NOC) 전자요소로서,
상기 데이터 프로세서는, 상기 NOC 전자요소의 라우팅 노드로부터 상기 NOC 전자요소의 각 라우팅 노드의 노드 정보를 취득하도록 구성되어 있고, 상기 노드 정보는, 상기 라우팅 노드의 기아율, 상기 라우팅 노드로 현재 주입된 패킷에 대응하는 프로그램의 패킷 각각에 대한 플릿당 명령어의 양(IPF), 및 상기 현재 주입된 패킷의 우선순위를 나타내는 프로그램 우선순위 정보를 포함하며;
상기 데이터 프로세서는, 상기 NOC 전자요소에 혼잡이 발생하면, 각각의 라우팅 노드로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 계산하도록 더 구성되어 있고, 상기 주입 제한 비율은, 상기 라우팅 노드에 의해 상기 라우팅 노드로 주입되는 것이 제한되는, 상기 현재 주입된 패킷에 대응하는 프로그램의 백분율이며;
상기 데이터 프로세서는, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 상기 주입 제한 비율을, 대응하는 라우팅 노드에 할당하도록 더 구성되어 있고;
각 라우팅 노드는, 상기 데이터 프로세서에 의해 할당된 대응하는 주입 제한 비율에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램이 상기 라우팅 노드로 주입되는 것을 제한하도록 더 구성되어 있는, NOC 전자요소. - 제17항에 있어서,
상기 데이터 프로세서가, 각각의 라우팅 노드로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 계산하는 경우, 상기 데이터 프로세서는, 각각의 라우팅 노드로 현재 주입된 패킷의 IPF와 프로그램 우선순위 정보 및 주입 제한 비율식에 기초하여, 상기 현재 주입된 패킷에 대응하는 프로그램에 대해 각각의 라우팅 노드에 의해 가해진 주입 제한 비율을 결정하도록 더 구성되어 있고, 상기 주입 제한 비율식은 이며, 상기 식에서 T는 상기 주입 제한 비율을 나타내고, Priority는 상기 현재 주입된 패킷의 프로그램 우선순위를 나타내고, 는 상수인, NOC 전자요소. - 제17항에 있어서,
상기 데이터 프로세서는,
각 라우팅 노드에 대해, 상기 라우팅 노드의 기아율과 상기 라우팅 노드에 대응하는 기아율 임계값을 비교하여, 상기 라우팅 노드에 혼잡이 발생하는지를 결정하고,
상기 NOC 전자요소의 어느 라우팅 노드에 혼잡이 발생하면, 상기 NOC 전자요소에 혼잡이 발생하는 것으로 결정하도록, 더 구성되어 있는, NOC 전자요소. - 제18항에 있어서,
상기 데이터 프로세서는,
각 라우팅 노드에 대해, 상기 라우팅 노드의 기아율과 상기 라우팅 노드에 대응하는 기아율 임계값을 비교하여, 상기 라우팅 노드에 혼잡이 발생하는지를 결정하고,
상기 NOC 전자요소의 어느 라우팅 노드에 혼잡이 발생하면, 상기 NOC 전자요소에 혼잡이 발생하는 것으로 결정하도록, 더 구성되어 있는, NOC 전자요소. - 제17항에 있어서,
상기 NOC 전자요소의 각 라우팅 노드의 노드 정보는 상기 라우팅 노드의 레지스터에 저장되어 있는, NOC 전자요소. - 제18항에 있어서,
상기 NOC 전자요소의 각 라우팅 노드의 노드 정보는 상기 라우팅 노드의 레지스터에 저장되어 있는, NOC 전자요소. - 제19항에 있어서,
상기 NOC 전자요소의 각 라우팅 노드의 노드 정보는 상기 라우팅 노드의 레지스터에 저장되어 있는, NOC 전자요소.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410364429.9 | 2014-07-28 | ||
CN201410364429.9A CN105306382B (zh) | 2014-07-28 | 2014-07-28 | 一种无缓存noc数据处理方法及noc电子元件 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160013799A true KR20160013799A (ko) | 2016-02-05 |
KR101609288B1 KR101609288B1 (ko) | 2016-04-05 |
Family
ID=53058738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150073140A KR101609288B1 (ko) | 2014-07-28 | 2015-05-26 | 무버퍼 noc 및 noc 전자요소의 데이터 처리 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10084710B2 (ko) |
JP (1) | JP5965464B2 (ko) |
KR (1) | KR101609288B1 (ko) |
CN (1) | CN105306382B (ko) |
DE (1) | DE202014009422U1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220116892A (ko) * | 2021-02-16 | 2022-08-23 | 숭실대학교산학협력단 | 네트워크 온 칩 통신 장치 및 네트워크 온 칩 통신을 위한 라우터 장치 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG10201600276YA (en) * | 2016-01-14 | 2017-08-30 | Huawei Int Pte Ltd | Device, method and system for routing global assistant signals in a network-on-chip |
CN109995633B (zh) * | 2017-12-29 | 2021-10-01 | 华为技术有限公司 | 一种芯片及相关设备 |
CN108322405A (zh) * | 2018-03-21 | 2018-07-24 | 山东超越数控电子股份有限公司 | 一种基于数据的流量均衡方法与装置 |
US11895092B2 (en) | 2019-03-04 | 2024-02-06 | Appgate Cybersecurity, Inc. | Network access controller operation |
CN115842793B (zh) * | 2022-11-16 | 2024-08-30 | 深圳市丰润达科技有限公司 | 三层交换机的路由转发方法、装置、设备及存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100785472B1 (ko) * | 2006-09-19 | 2007-12-13 | 삼성전자주식회사 | 긴급 NoC 패킷 대기시간 관리 장치 및 그 방법 |
CN101420380B (zh) * | 2008-11-28 | 2012-11-14 | 西安邮电学院 | 一种双层双环型片上系统 |
US8509078B2 (en) | 2009-02-12 | 2013-08-13 | Microsoft Corporation | Bufferless routing in on-chip interconnection networks |
CN101808032B (zh) * | 2010-03-04 | 2012-07-25 | 南京大学 | 面向静态XY路由算法的二维网格NoC路由器优化设计方法 |
CN103283192A (zh) | 2011-03-28 | 2013-09-04 | 松下电器产业株式会社 | 中继器、中继器的控制方法以及程序 |
CN102394829A (zh) * | 2011-11-14 | 2012-03-28 | 上海交通大学 | 片上互连网络中基于可靠性需求的仲裁方法 |
EP2782301B1 (en) * | 2011-11-17 | 2018-03-14 | Panasonic Intellectual Property Management Co., Ltd. | Router device, method for controlling router device, and computer program |
US9036482B2 (en) * | 2011-12-08 | 2015-05-19 | The Hong Kong University Of Science And Technology | Bufferless nonblocking networks on chip |
US9703707B2 (en) * | 2012-12-04 | 2017-07-11 | Ecole polytechnique fédérale de Lausanne (EPFL) | Network-on-chip using request and reply trees for low-latency processor-memory communication |
US9014005B2 (en) * | 2013-01-14 | 2015-04-21 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Low-latency lossless switch fabric for use in a data center |
US9699096B2 (en) * | 2013-12-26 | 2017-07-04 | Intel Corporation | Priority-based routing |
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 |
-
2014
- 2014-07-28 CN CN201410364429.9A patent/CN105306382B/zh active Active
- 2014-11-26 DE DE202014009422.5U patent/DE202014009422U1/de active Active
- 2014-11-26 JP JP2014239242A patent/JP5965464B2/ja active Active
-
2015
- 2015-05-26 KR KR1020150073140A patent/KR101609288B1/ko active IP Right Grant
- 2015-05-26 US US14/721,730 patent/US10084710B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220116892A (ko) * | 2021-02-16 | 2022-08-23 | 숭실대학교산학협력단 | 네트워크 온 칩 통신 장치 및 네트워크 온 칩 통신을 위한 라우터 장치 |
Also Published As
Publication number | Publication date |
---|---|
US10084710B2 (en) | 2018-09-25 |
JP5965464B2 (ja) | 2016-08-03 |
CN105306382A (zh) | 2016-02-03 |
KR101609288B1 (ko) | 2016-04-05 |
DE202014009422U1 (de) | 2015-04-29 |
JP2016032288A (ja) | 2016-03-07 |
US20160028634A1 (en) | 2016-01-28 |
CN105306382B (zh) | 2019-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101609288B1 (ko) | 무버퍼 noc 및 noc 전자요소의 데이터 처리 방법 | |
US9825887B2 (en) | Automatic buffer sizing for optimal network-on-chip design | |
US9571402B2 (en) | Congestion control and QoS in NoC by regulating the injection traffic | |
JP5036920B1 (ja) | 中継装置、中継装置の制御方法、およびプログラム | |
US9013997B2 (en) | System for performing distributed data cut-through | |
US9825809B2 (en) | Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip | |
US9007920B2 (en) | QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes | |
US20180183722A1 (en) | Interface virtualization and fast path for network on chip | |
US10983910B2 (en) | Bandwidth weighting mechanism based network-on-chip (NoC) configuration | |
US20090274049A1 (en) | Non-blocked network system and packet arbitration method thereof | |
CN109716719B (zh) | 数据处理方法及装置、交换设备 | |
EP3579507A1 (en) | Dynamic scheduling method, device, and system | |
US20120008620A1 (en) | Connection arrangement | |
US20190089582A1 (en) | Trace network used as a configuration network | |
US11144457B2 (en) | Enhanced page locality in network-on-chip (NoC) architectures | |
Zhang et al. | QBNoC: QoS-aware bufferless NoC architecture | |
US9110721B2 (en) | Job homing | |
CN118233411A (zh) | 片上网络、路由控制方法以及存储介质 | |
CN118101557A (zh) | 片上网络结构及片上网络的流量均衡方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
FPAY | Annual fee payment |
Payment date: 20190319 Year of fee payment: 4 |