KR20160004362A - 소스 동기식 회선 교환 네트워크 온 칩(noc)을 위한 방법, 장치 및 시스템 - Google Patents

소스 동기식 회선 교환 네트워크 온 칩(noc)을 위한 방법, 장치 및 시스템 Download PDF

Info

Publication number
KR20160004362A
KR20160004362A KR1020157033826A KR20157033826A KR20160004362A KR 20160004362 A KR20160004362 A KR 20160004362A KR 1020157033826 A KR1020157033826 A KR 1020157033826A KR 20157033826 A KR20157033826 A KR 20157033826A KR 20160004362 A KR20160004362 A KR 20160004362A
Authority
KR
South Korea
Prior art keywords
router
packet
logic
circuit
control flow
Prior art date
Application number
KR1020157033826A
Other languages
English (en)
Other versions
KR101769757B1 (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 KR20160004362A publication Critical patent/KR20160004362A/ko
Application granted granted Critical
Publication of KR101769757B1 publication Critical patent/KR101769757B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

실시예에서, 라우터는 다수의 입력 포트 및 출력 포트를 포함하고, 라우터는 라우터들 사이에 통신된 제어 흐름 신호의 천이에 기초하여 NoC의 라우터들 사이의 통신을 가능하게 하기 위한 소스 동기식 하이브리드 네트워크 온 칩(Noc)의 것이다. 다른 실시예가 설명되고 청구된다.

Description

소스 동기식 회선 교환 네트워크 온 칩(NOC)을 위한 방법, 장치 및 시스템 {A METHOD, APPARATUS AND SYSTEM FOR A SOURCE-SYNCHRONOUS CIRCUIT-SWITCHED NETWORK ON A CHIP (NOC)}
본 발명은 컴퓨팅 시스템에 관한 것으로서, 특히 네트워크를 거쳐 정보를 통신하는 것에 관한 것이나 이에 제한되지는 않는다.
도 1은 멀티코어 프로세서를 포함하는 컴퓨팅 시스템의 블록 다이어그램이다.
도 2는 본 발명의 실시예에 따른 NoC의 블록 다이어그램이다.
도 3은 본 발명의 실시예에 따른 흐름 제어를 위한 크레디트 추적(credit tracking)의 상태 다이어그램이다.
도 4는 본 발명의 실시예에 따른 유한 상태 머신(finite state machine)의 블록 다이어그램이다.
도 5는 본 발명의 실시예에 따른 크레디트 추적 회로의 블록 다이어그램이다.
도 6은 본 발명의 실시예에 따른 패킷 라우터 입력 포트의 블록 다이어그램이다.
도 7은 본 발명의 실시예에 따른 패킷 라우터 출력 포트의 블록 다이어그램이다.
도 8은 본 발명의 실시예에 따른 방법의 흐름도이다.
도 9는 본 발명의 실시예에 따른 복수의 라우터를 포함하는 NoC의 블록 다이어그램이다.
도 10a 내지 도 10d는 본 발명의 일 실시예에 따른 라우터의 입력 및 출력 포트의 상세의 블록 다이어그램이다.
도 11은 본 발명의 실시예에 따른 선입 선출(first-in first-out: FIFO) 버퍼의 블록 다이어그램이다.
도 12는 본 발명의 실시예에 따른 예시적인 NoC의 블록 다이어그램이다.
도 13은 본 발명의 실시예에 따른 시스템 온 칩(system on-chip: SOC) 디자인의 실시예의 블록 다이어그램이다.
도 1을 참조하면, 멀티코어 프로세서를 포함하는 컴퓨팅 시스템의 블록 다이어그램의 실시예가 도시되어 있다. 프로세서(100)는 마이크로프로세서, 임베디드 프로세서(embedded processor), 디지털 신호 프로세서(digital signal processor: DSP), 네트워크 프로세서, 핸드헬드 프로세서(handheld processor), 애플리케이션 프로세서, 코프로세서, 시스템 온 칩(SOC), 또는 코드를 실행하기 위한 다른 디바이스와 같은 임의의 프로세서 또는 프로세싱 디바이스를 포함한다. 프로세서(100)는 일 실시예에서, 비대칭 코어 또는 대칭 코어(예시된 실시예)를 포함할 수 있는 적어도 2개의 코어 - 코어(101, 102)를 포함한다. 그러나, 프로세서(100)는 대칭 또는 비대칭일 수 있는 임의의 수의 프로세싱 요소를 포함할 수 있다.
일 실시예에서, 프로세싱 요소는 소프트웨어 스레드(thread)를 지원하기 위한 하드웨어 또는 로직(logic)을 칭한다. 하드웨어 프로세싱 요소의 예는 스레드 유닛, 스레드 슬롯, 스레드, 프로세스 유닛, 콘텍스트(context), 콘텍스트 유닛, 논리 프로세서, 하드웨어 스레드, 코어, 및/또는 실행 상태 또는 아키텍처적 상태(architectural state)와 같은 프로세서를 위한 상태를 유지하는 것이 가능한 임의의 다른 요소를 포함한다. 달리 말하면, 프로세싱 요소는 일 실시예에서, 소프트웨어 스레드, 운영 체제, 애플리케이션 또는 다른 코드와 같은 코드와 독립적으로 연관되는 것이 가능한 임의의 하드웨어를 칭한다. 물리적 프로세서(또는 프로세서 소켓)는 통상적으로, 코어 또는 하드웨어 스레드와 같은 임의의 수의 다른 프로세싱 요소를 잠재적으로 포함하는 집적 회로를 칭한다.
코어는 종종 독립적 아키텍처적 상태를 유지하는 것이 가능한 집적 회로 상에 위치된 로직을 칭하고, 여기서 각각의 독립적으로 유지된 아키텍처적 상태는 적어도 몇몇 전용 실행 리소스와 연관된다. 코어에 대조적으로, 하드웨어 스레드는 통상적으로 독립적 아키텍처적 상태를 유지하는 것이 가능한 집적 회로 상에 위치된 임의의 로직을 칭하고, 여기서 독립적으로 유지된 아키텍처적 상태는 실행 리소스로의 액세스를 공유한다. 알 수 있는 바와 같이, 특정 리소스가 공유되고 다른 것들이 아키텍처적 상태에 전용될 때, 코어와 하드웨어 스레드의 명명법 사이의 라인은 중첩한다. 또한, 코어와 하드웨어 스레드는 운영 체제에 의해 개별 논리 프로세서로서 간주되고, 여기서 운영 체제는 각각의 논리 프로세서 상에 동작을 개별적으로 스케쥴링하는 것이 가능하다.
물리적 프로세서(100)는 도 1에 도시되어 있는 바와 같이, 2개의 코어 - 코어(101, 102)를 포함한다. 여기서, 코어(101, 102)는 대칭 코어, 즉 동일한 구성, 기능 유닛 및/또는 로직을 갖는 코어로 고려된다. 다른 실시예에서, 코어(101)는 비순차적(out-of-order) 프로세서 코어를 포함하고, 반면에 코어(102)는 순차적(in-order) 프로세서 코어를 포함한다. 그러나, 코어(101, 102)는 네이티브 코어, 소프트웨어 관리형 코어, 네이티브 명령어 집합 아키텍처(Instruction Set Architecture: ISA)를 실행하도록 적용된 코어, 변환된 명령어 집합 아키텍처(ISA)를 실행하도록 적용된 코어, 공동 설계된 코어(co-designed core), 또는 다른 공지의 코어와 같은 임의의 유형의 코어로부터 개별적으로 선택될 수 있다. 이종 코어 환경(즉, 비대칭 코어)에서, 2진 변환과 같은 소정 형태의 변환이 하나 또는 양 코어 상에 코드를 스케쥴링하거나 실행하는데 이용될 수 있다. 더 설명하면, 코어(101)에 예시된 기능적 유닛은 코어(102) 내의 유닛이 도시된 실시예에서 유사한 방식으로 동작함에 따라, 이하에 더 상세히 설명된다.
도시된 바와 같이, 코어(101)는 하드웨어 스레드 슬롯(101a, 101b)이라 또한 칭할 수도 있는 2개의 하드웨어 스레드(101a, 101b)를 포함한다. 따라서, 운영 체제와 같은 소프트웨어 엔티티는 일 실시예에서, 4개의 개별 프로세서, 즉 4개의 소프트웨어 스레드를 동시에 실행하는 것이 가능한 4개의 논리 프로세서 또는 프로세싱 요소로서 프로세서(100)를 잠재적으로 간주한다. 전술된 바와 같이, 제 1 스레드는 아키텍처 상태 레지스터(101a)와 연관되고, 제 2 스레드는 아키텍처 상태 레지스터(101b)와 연관되고, 제 3 스레드는 아키텍처 상태 레지스터(102a)와 연관될 수 있고, 제 4 스레드는 아키텍처 상태 레지스터(102b)와 연관될 수 있다. 여기서, 각각의 아키텍처 상태 레지스터(101a, 101b, 102a, 102b)는 전술된 바와 같이, 프로세싱 요소, 스레드 슬롯, 또는 스레드 유닛이라 칭할 수 있다. 도시된 바와 같이, 아키텍처 상태 레지스터(101a)는 아키텍처 상태 레지스터(101b)에서 복제되고, 따라서 개별 아키텍처 상태/콘텍스트는 논리 프로세서(101a) 및 논리 프로세서(101b)를 위해 저장되는 것이 가능하다. 코어(101)에서, 할당자 및 리네이머(renamer) 블록(130) 내의 명령 포인터(instruction pointer) 및 리네이밍 로직(renaming logic)은 또한 스레드(101a, 101b)를 위해 복제될 수 있다. 재정렬/리타이어먼트(retirement) 유닛(135) 내의 재정렬 버퍼, ILTB(120), 로드/저장 버퍼 및 대기열과 같은 몇몇 리소스가 파티셔닝을 통해 공유될 수 있다. 범용 내부 레지스터, 페이지-테이블 베이스 레지스터(들), 하위 레벨 데이터-캐시 및 데이터-TLB(115), 실행 유닛(들)(140), 및 비순차적 유닛(135)의 부분과 같은 다른 리소스가 잠재적으로 완전히 공유된다.
프로세서(100)는 종종 완전히 공유되고, 파티셔닝을 통해 공유되건, 또는 프로세싱 요소에 의해/프로세싱 요소에 전용될 수 있는 다른 리소스를 포함한다. 도 1에는, 프로세서의 예시적인 논리 유닛/리소스를 갖는 완전히 예시적인 프로세서의 실시예가 도시되어 있다. 프로세서는 임의의 이들 기능 유닛을 포함하거나 생략할 수 있고, 뿐만 아니라 도시되지 않은 임의의 다른 공지의 기능 유닛, 로직, 또는 펌웨어를 포함할 수 있다는 것을 주목하라. 도시된 바와 같이, 코어(101)는 간단화된 대표적인 비순차적(out-of-order: OOO) 프로세서 코어를 포함한다. 그러나, 순차적 프로세서는 상이한 실시예에서 이용될 수 있다. OOO 코어는 실행되고/취해질 브랜치(branch)를 예측하기 위한 브랜치 타겟 버퍼(120) 및 명령을 위한 어드레스 변환 엔트리를 저장하기 위한 명령-변환 버퍼(instruction-translation buffer: I-TLB)(120)를 포함한다.
코어(101)는 페치된(fetched) 요소를 디코딩하기 위해 페치 유닛(120)에 결합된 디코드 모듈(125)을 추가로 포함한다. 페치 로직은 일 실시예에서, 스레드 슬롯(101a, 101b)과 각각 연관된 개별 시퀀서를 포함한다. 일반적으로, 코어(101)는 프로세서(100) 상에서 실행가능한 명령을 규정하고/지정하는 제 1 ISA와 연관된다. 종종 제 1 ISA의 부분인 머신 코드 명령은 수행될 명령 또는 동작을 참조하고/지정하는 명령의 부분(옵코드(opcode)라 칭함)을 포함한다. 디코드 로직(125)은 이들의 옵코드로부터 이들 명령을 인식하고 제 1 ISA에 의해 규정된 바와 같이 프로세싱을 위해 파이프라인 내에 디코딩된 명령을 통과시키는 회로를 포함한다. 예를 들어, 이하에 더 상세히 설명되는 바와 같이, 디코더(125)는 일 실시예에서, 트랜잭션 명령과 같은 특정 명령을 인식하도록 설계되거나 적용된 로직을 포함한다. 디코더(125)에 의한 인식의 결과로서, 아키텍처 또는 코어(101)는 적절한 명령과 연관된 작업을 수행하기 위해 특정의 사전규정된 작용을 행한다. 본 명세서에 설명된 임의의 작업, 블록, 동작, 및 방법은 단일의 또는 다수의 명령에 응답하여 수행될 수 있는데, 이들 중 일부는 새로운 또는 이전의 명령일 수 있다는 것을 주목하는 것이 중요하다. 디코더(126)는 일 실시예에서, 동일한 ISA(또는 그 부분집합)를 인식한다. 대안적으로, 이종 코어 환경에서, 디코더(126)는 제 2 ISA(제 1 ISA의 부분집합 또는 별개의 ISA)를 인식한다.
일 예에서, 할당자 및 리네이머 블록(130)은 명령 프로세싱 결과를 저장하기 위한 레지스터 파일과 같은 리소스를 예약하기 위한 할당자를 포함한다. 그러나, 스레드(101a, 101b)는 잠재적으로 비순차적 실행이 가능한데, 여기서 할당자 및 리네이머 블록(130)은 또한 명령 결과를 추적하기 위한 재정렬 버퍼와 같은 다른 리소스를 예약한다. 유닛(130)은 프로세서(100)의 내부의 다른 레지스터로 프로그램/명령 기준 레지스터를 리네임하기 위한 레지스터 리네이머를 또한 포함할 수 있다. 재정렬/리타이어먼트 유닛(135)은 비순차적 실행 및 이후에 비순차적으로 실행된 명령의 순차적 리타이어먼트를 지원하기 위해, 전술된 재정렬 버퍼, 로드 버퍼, 및 저장 버퍼와 같은 구성요소를 포함한다.
스케쥴러 및 실행 유닛(들) 블록(140)은 일 실시예에서, 실행 유닛 상에 명령/동작을 스케쥴링하기 위한 스케쥴러 유닛을 포함한다. 예를 들어, 부동점(floating point) 명령이 가용 부동점 실행 유닛을 갖는 실행 유닛의 포트 상에서 스케쥴링된다. 실행 유닛과 연관된 레지스터 파일은 또한 정보 명령 프로세싱 결과를 저장하도록 포함된다. 예시적인 실행 유닛은 부동점 실행 유닛, 정수 실행 유닛, 점프 실행 유닛, 로드 실행 유닛, 저장 실행 유닛, 및 다른 공지의 실행 유닛을 포함한다.
하위 레벨 데이터 캐시 및 데이터 변환 버퍼(D-TLB)(150)가 실행 유닛(들)(140)에 결합된다. 데이터 캐시는 잠재적으로 메모리 일관성 상태로 유지되는 데이터 오퍼랜드(operand)와 같은 최근에 사용된/동작된 요소를 저장하기 위한 것이다. D-TLB는 최근의 가상/선형 대 물리적 어드레스 변환을 저장하기 위한 것이다. 특정 예로서, 프로세서는 물리적 메모리를 복수의 가상 페이지로 분해하기 위한 페이지 테이블 아키텍처를 포함할 수 있다.
여기서, 코어(101, 102)는 온칩 인터페이스(on-chip interface)(110)와 연관된 제 2 레벨 캐시와 같은, 상위 레벨 또는 그이상의(further-out) 캐시로의 액세스를 공유한다. 상위 레벨 또는 그이상이라는 것은 실행 유닛(들)으로부터 증가하거나 더 멀어지는 캐시 레벨을 칭한다는 것을 주목하라. 일 실시예에서, 상위 레벨 캐시는 제 2 또는 제 3 레벨 데이터 캐시와 같은 최종 레벨 데이터 캐시 - 프로세서(100) 상의 메모리 계층 내의 최종 캐시 - 이다. 그러나, 상위 레벨 캐시는, 명령 캐시와 연관되거나 포함할 수 있기 때문에, 이에 한정되는 것은 아니다. 트레이스 캐시 - 명령 캐시의 유형 - 가 대신에 최근에 디코딩된 트레이스를 저장하기 위해 디코더(125) 이후에 결합될 수 있다. 여기서, 명령은 잠재적으로 다수의 마이크로 명령(마이크로 동작)으로 디코딩될 수 있는 매크로 명령(즉, 디코더에 의해 인식되는 일반적인 명령)을 칭한다.
도시된 구성에서, 프로세서(100)는 온칩 인터페이스 모듈(110)을 또한 포함한다. 전통적으로, 이하에 더 상세히 설명되는 메모리 콘트롤러는 프로세서(100) 외부의 컴퓨팅 시스템 내에 포함되어 왔다. 이 시나리오에서, 온칩 인터페이스(11)는 시스템 메모리(175), 칩셋(종종 메모리(175)에 접속을 위한 메모리 콘트롤러 허브 및 주변 디바이스를 접속하기 위한 I/O 콘트롤러 허브를 포함함), 메모리 콘트롤러 허브, 노스브리지(northbridge), 또는 다른 집적 회로와 같은, 프로세서(100) 외부의 디바이스와 통신하기 위한 것이다. 이 시나리오에서, 버스(105)는 멀티-드롭 버스(multi-drop bus), 점대점 상호접속부, 직렬 상호접속부, 병렬 버스, 일관성(예를 들어, 캐시 일관성) 버스, 계층적 프로토콜 아키텍처, 차등 버스, 및 GTL 버스와 같은 임의의 공지의 상호접속부를 포함할 수도 있다.
메모리(175)는 프로세서(100)에 전용되거나 또는 시스템 내의 다른 디바이스와 공유될 수 있다. 메모리(175)의 유형의 통상의 예는 DRAM, SRAM, 비휘발성 메모리(NV 메모리), 및 다른 공지의 저장 디바이스를 포함한다. 디바이스(180)는 그래픽 가속기, 메모리 콘트롤러 허브에 결합된 프로세서 또는 카드, I/O 콘트롤러 허브에 결합된 데이터 저장 장치, 무선 송수신기, 플래시 디바이스, 오디오 콘트롤러, 네트워크 콘트롤러, 또는 다른 공지의 디바이스를 포함할 수 있다는 것을 주목하라.
최근에 그러나, 더 많은 로직 및 디바이스가 SOC와 같은 단일의 다이 상에 집적화됨에 따라, 이들 디바이스의 각각은 프로세서(100) 상에 합체될 수 있다. 예를 들어 일 실시예에서, 메모리 콘트롤러 허브는 프로세서(100)를 갖는 동일한 패키지 및/또는 다이 상에 있다. 여기서, 코어의 부분(온코어 부분)(110)은 메모리(175) 또는 그래픽 디바이스(180)와 같은 다른 디바이스와 인터페이스하기 위한 하나 이상의 콘트롤러(들)를 포함한다. 이러한 디바이스와 인터페이스하기 위한 상호접속부 및 콘트롤러를 포함하는 구성은 종종 온코어(on-core)(또는 언코어(un-core) 구성)라 칭한다. 예로서, 온칩 인터페이스(110)는 온칩 통신을 위한 링 상호접속부 및 오프칩 통신을 위한 고속 직렬 점대점 링크(105)를 포함한다. 또한, SOC 환경에서, 네트워크 인터페이스, 코프로세서, 메모리(175), 그래픽 프로세서(180), 및 임의의 다른 공지의 컴퓨터 디바이스/인터페이스와 같은 더욱 더 많은 디바이스가 단일의 다이 또는 집적 회로 상에 집적화되어 높은 기능성 및 낮은 전력 소비를 갖는 작은 폼팩터(form factor)를 제공할 수 있다.
일 실시예에서, 프로세서(100)는 본 명세서에 설명된 장치 및 방법을 지원하거나 이들과 인터페이스하기 위해 애플리케이션 코드(176)를 컴파일링하고, 변환하고, 그리고/또는 최적화하도록 컴파일러, 최적화 및/또는 변환기 코드(177)를 실행하는 것이 가능하다. 컴파일러는 종종 소스 텍스트/코드를 타겟 텍스트/코드로 변환하기 위한 프로그램 또는 프로그램의 세트를 포함한다. 일반적으로, 컴파일러에 의한 프로그램/애플리케이션 코드의 컴파일링은 상위 레벨 프로그래밍 언어 코드를 하위 레벨 머신 또는 어셈블리 언어 코드로 변환하기 위해 다수의 페이즈 및 패스로 행해진다. 또한, 단일 패스 컴파일러는 여전히 간단한 컴파일링을 위해 이용될 수 있다. 컴파일러는 임의의 공지의 컴파일링 기술을 이용하고, 어휘 분석(lexical analysis), 프리프로세싱, 파싱(parsing), 구문 분석(semantic analysis), 코드 생성, 코드 변환, 및 코드 최적화와 같은 임의의 공지의 컴파일러 동작을 수행할 수 있다.
더 대형의 컴파일러는 종종 다수의 페이즈를 포함하지만, 가장 종종 이들 페이즈는 2개의 일반적인 페이즈: (1) 프론트엔드, 즉 일반적으로 통사 프로세싱, 구문 프로세싱, 및 소정의 변환/최적화가 발생할 수 있는 페이즈, 및 (2) 백엔드, 즉 일반적으로 분석, 변환, 최적화, 및 코드 발생이 생성하는 페이즈에 포함된다. 몇몇 컴파일러는 컴파일러의 프론트엔드와 백엔드 사이의 묘사의 흐림을 나타내는 중간을 나타낸다. 그 결과, 컴파일러의 삽입, 연관, 발생, 또는 다른 동작의 참조는 임의의 전술된 페이즈 또는 패스, 뿐만 아니라 컴파일러의 임의의 다른 공지의 페이즈 또는 패스에서 발생할 수 있다. 예시적인 예로서, 컴파일러는 잠재적으로 컴파일링의 프론트엔드 페이즈에서 호/동작의 삽입 및 이어서 변환 페이즈 중에 하위 레벨 코드로의 호/동작의 변환과 같은, 컴파일링의 하나 이상의 페이즈에서 동작, 호, 기능을 삽입한다. 동적 컴파일링 중에, 컴파일러 코드 또는 동적 최적화 코드는 이러한 동작/호를 삽입하고, 뿐만 아니라 실행시간 중에 실행을 위해 코드를 최적화할 수 있다는 것을 주목하라. 특정 예시적인 예로서, 2진 코드(미리 컴파일링된 코드)가 실행시간 중에 동적으로 최적화될 수 있다. 여기서, 프로그램 코드는 동적 최적화 코드, 2진 코드, 또는 이들의 조합을 포함할 수 있다.
컴파일러와 유사하게, 2진 변환기와 같은 변환기는 코드를 최적화하고 그리고/또는 변환하기 위해 정적으로 또는 동적으로 코드를 변환한다. 따라서, 코드, 애플리케이션 코드, 프로그램 코드, 또는 다른 소프트웨어 환경의 실행의 언급은 (1) 프로그램 코드를 컴파일링하고, 소프트웨어 아키텍처를 유지하고, 다른 동작을 수행하고, 코드를 최적화하거나, 또는 코드를 변환하기 위한 동적 또는 정적으로의 컴파일러 프로그램(들), 최적화 코드 최적화기, 또는 변환기의 실행, (2) 최적화되고/컴파일링되어 있는 애플리케이션 코드와 같은 동작/호를 포함하는 메인 프로그램 코드의 실행, (3) 소프트웨어 아키텍처를 유지하고, 다른 소프트웨어 관련 동작을 수행하거나, 또는 코드를 최적화하기 위해 메인 프로그램 코드와 연관된 라이브러리와 같은 다른 프로그램 코드의 실행, 또는 (4) 이들의 조합을 칭할 수도 있다.
증가하는 수의 통합 지적 재산권(intellectual property: IP) 로직 사이의 온칩 통신은 프로세서 전력 및 성능에 상당한 영향을 발생한다. 네트워크 온 칩(network on a chip: NoC)이 멀티코어 시스템에 현재 사용되는 가장 광범위하게 사용되는 패브릭 토폴로지(fabric topology) 중 하나이다. NoC는 링크와 접속된 라우터로 구성된 공유된 상호접속부를 통해 소스로부터 목적지로 데이터를 송신한다. 통상의 동기식 패킷 교환 NoC는 글로벌 클럭(global clock)에 기초하여 이들의 이웃들과 통신하는 라우터로부터 구성된다. 패킷 교환은 적어도 각각의 라우터에서 데이터를 플롭핑(flopping)/저장하는 것을 칭한다. 따라서, NoC 내의 모든 라우터는 동일한 주파수에서 동작한다. 더욱이, 낮은 트래픽율에서, 클럭 전력은 총 NoC 전력 소비를 지배하는 경향이 있어, 이에 의해 시스템 효율을 제한한다.
소스 동기식 NoC는 각각의 데이터 전송과 함께 지연 정합된 클럭을 송신하여, 완전 동기식 클럭을 위한 요구를 제거한다. 이 기술은 각각의 라우터에서 선입 선출 데이터 레지스터(FIFO)를 동기화하기 위한 요구를 제거함으로써 멀티클럭 디자인을 용이하게 한다. 더욱이, 처리량은 최악의 경우 경로 대신에, 단지 사용된 경로에 대해서만 지연을 발생시킴으로써 증가한다. 프로세스 편차는 또한 완전 동기식 디자인에서와 같이 최악의 경우 마진을 인가하는 대신에, 타이밍 편차를 평균화함으로써 완화된다. 이는 또한 클럭 스큐(skew) 및 지터(jitter)를 위한 마진을 제거한다. 그러나, 패킷 교환을 사용하는 소스 동기식 NoC는 각각의 라우터에서 적어도 1회 제어 신호 및 데이터를 플롭하기 위해 클럭 전력을 소비한다. 소스 동기식 동작 및 패킷 교환은 서로 독립적이다. 소스 동기식 하이브리드 NoC에 의해, 전송되는 실제 데이터가 존재할 때에만 플롭이 클럭킹되기 때문에, 더 낮은 클럭 전력의 견지에서 이익이 존재한다. 둘째로, 소스 동기식 하이브리드 NoC는 최저속 링크 구성요소에 의해 제한되지 않음으로써, 회로가 최악의 경우 타이밍 마진 없이 동작할 수 있기 때문에 더 편차 내성이 있게 된다.
독립적인 공급 전압 및 속도에서 동작하는 능력에 의해, 본 발명의 실시예에 따른 라우터는 패브릭 또는 트래픽 패턴이 본질적으로 비대칭인 상황에서 에너지 효율을 향상시키기 위한 기회를 제공한다.
다양한 실시예에서, 소스 동기식 디자인을 갖는 하이브리드 NoC가 제공된다. 하이브리드 NoC에서, 패킷 교환 예약 패킷이 회선 교환 데이터 채널을 설정하는데 사용된다. 실시예에서, 패킷 교환 예약 패킷은 비교적 작고, 회선 교환 데이터 전송은 비교적 클 수 있다. 패킷은 각각의 라우터 노드에서 적어도 1회(그리고 통상적으로 4회) 플롭된다. 대조적으로, 회선 교환 전송은 인트라 라우트 저장 장치를 갖지 않아, 클럭 전력을 감소시킨다. 이 방식으로, NoC는 완전 동기식 또는 패킷 교환 NoC에 비해 증가된 에너지 효율 및 처리량을 갖고 하이브리드 패킷 및 회선 교환 데이터 통신이 발생할 수 있게 한다. 대부분에 데이터를 회선 교환 채널 상에서 전송함으로써, 개입 저장 요소가 회피될 수 있어, 전력 소비를 감소시킨다. 그리고, 하이브리드 디자인을 사용함으로써, 패킷 교환 네트워크가 회선 교환 네트워크의 경로를 예약하는데 사용될 수 있어, 네트워크 리소스를 위한 경쟁으로부터 혼잡을 완화한다.
실시예는 상이한 클럭 및 전압 도메인 뿐만 아니라 이종 NoC에서 동작하는 IP 블록을 갖고 NoC에 대해 특히 적합될 수도 있다. 이와 같이, 실시예는 통합을 용이하게 하고 클럭 및 중재 전력을 감소시키기 위해 소스 동기식 동작 및 회선 교환의 이익을 조합한다.
하이브리드 NoC는 따라서 회선 교환된 데이터 채널의 에너지 효율과 패킷 교환된 네트워크의 처리량을 조합한다. 소스 동기식 구성을 사용하여, NoC를 포함하는 시스템 온 칩(SoC)과 같은 프로세서가 다수의 클럭 도메인을 갖고 설계될 수 있다. 소스 동기식 동작은 각각의 라우터 내의 글로벌 클럭 분배 또는 동기화 데이터 FIFO 버퍼 없이 수많은 클럭 도메인을 갖는 이종 NoC의 통합을 용이하게 한다. 이와 같이, 네트워크 성능은 저속 경로 또는 라우터에 의해 글로벌적으로 제한되는 것이 방지되고, 처리량은 프로세스 편차 유도된 타이밍 편차를 평균화함으로써 증가하고 클럭 스큐 및 지터를 위한 마지닝(margining)을 제거한다.
다양한 실시예에서, 소스 동기식 클럭킹은 임의의 글로벌 동기화 신호의 결여시에 개별 라우터가 통신하게 한다. 대신에, 제어 흐름 신호의 천이가 정보를 전달하는데 사용되어, 이에 의해 글로벌 클럭 신호를 위한 요구를 제거한다. 라우터는 제어 흐름 신호(예를 들어, "요청" 및 "허가" 신호)를 사용하여 이들의 이웃과 통신한다. 그러나, 레벨 감응성인 대신에, 이들은 천이 인코딩된다(transition encoded). "요청"시의 천이는 라우터의 입력 포트에서 새로운 패킷의 존재를 지시한다. "허가"시의 천이는 라우터의 출력 포트에서 이전의 데이터가 프로세싱되어 있고 새로운 데이터가 런칭될 수 있는 것을 지시한다.
이제, 도 2를 참조하면, 본 발명의 실시예에 따른 NoC(200), 뿐만 아니라 한 쌍의 접속된 라우터(210a, 210b)의 추가의 상세의 블록 다이어그램이 도시되어 있다. 도시된 바와 같이, 라우터(210a)는 출력 포트(212a)를 포함하고, 라우터(210b)는 입력 포트(212b)를 포함한다. 대응 출력 포트는 라우터(210b)의 대응 입력 포트(212b)에 통신된 "요청" 신호를 전송한다. 이어서, 이 입력 라우터는 라우터(210a)에 "허가" 신호를 재차 통신한다. 도 2에 도시된 바와 같이, "요청"이 천이할 때, 라우터의 입력 포트에서의 래치는 폐쇄되고 적절한 출력 포트에 요청을 송신한다. 이 요청이 서비스될 때, 입력 포트는 출력 포트에 허가를 재차 송신한다. 이는 래치를 개방하여, 이에 의해 새로운 패킷이 입력 포트에 진입하게 한다. 다른 쌍의 요청/허가 신호가 라우터(210b)로부터 라우터(210a)로 흐르는 데이터에 대해 다른 방향으로 통신될 수 있다는 것을 주목하라.
일 실시예에서, 라우터는 도 2에 도시된 바와 같이, "요청" 신호를 토글링하고 상호접속부를 걸쳐 이웃하는 라우터로부터 재차 수신되도록 "허가"를 대기함으로써 패킷을 런칭한다. 복귀 "허가" 신호를 위한 이 부가의 지연시간을 회피하기 위해, 몇몇 실시예는 바로 그 제 1 패킷을 위한 허가가 수신되기 전에 소스가 다수의 패킷을 런칭하게 한다. 이 크레디트 기반 시스템에서, 비행시에 다수의 패킷은 중간 저장 버퍼(예를 들어, 래치)에 의해 유지된다. 임의의 허가를 수신하기 전에 2개의 패킷이 라우터에 의해 런칭될 수 있는 크레디트-2 시스템으로서 본 명세서에 설명되었지만, 다른 크레디트 방안이 가능하다. 이들의 목적지 IP로부터 라우터 내의 상이한 포트들 사이의 거리에 따라, 각각의 포트는 마찬가지로 독립적인 크레디트 레벨에서 동작하도록 구성될 수 있다. 이 독립성은 상이한 IP 및 이들의 플로어플랜(floorplan)의 크기에 따라, 몇몇 IP가 다른 IP보다 라우터로부터 더 멀리 이격될 수 있는 SoC 통합을 위해 특히 유용하다.
일 실시예에서, 크레디트-2 모드에서 동작하는 라우터는 대응 "허가" 신호를 경유하여 확인응답을 수신하기 전에 "요청"을 2회 토글링함으로써 데이터의 2개의 패킷을 런칭할 수 있다. 이러한 흐름 제어를 위한 크레디트 추적을 위한 상태 다이어그램이 도 3에 도시되어 있다. 도 3에 도시된 바와 같이, 시스템은 크레디트-2 상태에서 시작할 수 있다. "요청" 신호의 천이시에, 상태 머신은 1의 크레디트 상태로 이동하고, 다른 "요청" 천이시에 0의 크레디트 상태로 이동한다. 이어서, "허가" 신호의 천이는 도시된 바와 같이 증가하는 크레디트 상태 1 및 2로 상태 머신의 천이를 유발한다.
이제, 도 4를 참조하면, 본 발명의 실시예에 따른 유한 상태 머신(FSM)의 블록 다이어그램이 도시되어 있다. 유한 상태 머신은 요청 및 허가의 천이에 기초하여 크레디트의 3개의 가능한 레벨을 나타내는 8개의 가능한 상태 중에서 토글링한다. 요청 및 허가의 동시 천이에 기인하는 크레디트 추적 에러를 회피하기 위해, 3개의 크레디트 상태가 8개의 유한 상태 머신 상태로 분할된다. 도 4에 주석 표기된 바와 같이, 크레디트 0은 2개의 FSM 상태를 갖고, 크레디트 1은 4개의 FSM 상태를 갖고, 크레디트 2는 2개의 FSM 상태를 갖는다. 크레디트 상태를 8개의 FSM 상태로 맵핑의 결과로서, 유한 상태 머신을 통한 천이는 천이 대신에 요청/허가 신호 레벨에 의해 설정된다. 시스템은 요청 및 허가 신호가 모두 하이인 상태로 2의 크레디트 레벨로 시작한다. 하이로부터 로우 레벨로의 변경은 하향 지향 화살표에 의해 도시되어 있고, 로우로부터 하이 레벨로의 변경은 상향 지향 화살표에 의해 도시되어 있다. 각각의 상태에서 크레디트 카운트가 도 4에 또한 도시되어 있다.
이제, 도 5를 참조하면, 본 발명의 실시예에 따른 크레디트 추적 회로의 블록 다이어그램이 도시되어 있다. 도 5에 도시된 바와 같이, 크레디트 추적 회로(300)는 논리 게이트(310, 320, 330)의 세트를 거쳐 "허가" 및 "요청" 신호를 수신한다. 이어서, AND 게이트(310, 330)의 출력은, 그 출력이 최상위 비트(most significant bit: MSB)에 대응하는 래치(340)의 설정 및 재설정 입력을 구동한다. 3개의 신호의 상태는 OR 게이트(320)의 출력에 의해 클럭킹된 래치(360)로 로직(350)을 거쳐 입력되어 따라서 크레디트 레벨을 지시한다. 더 구체적으로, 래치(360)의 출력은 크레디트 레벨이 000도 아니고 111도 아닐 때 하이이다. 요청 및 허가 천이는 논리 게이트(310, 320, 330)에 진입하기 전에 펄스로 변환된다는 것을 주목하라.
따라서, 도 5에 도시된 바와 같이, 임의의 소정의 순간에, 크레디트 추적 상태 머신은 "요청", "허가" 또는 양자 모두의 천이에 응답한다. "요청" 및 "허가"시의 동시 천이에 대해, 상태 머신은 이것이 "요청" 및 "허가"에 응답하는 순서에 무관하게 정확한 상태를 얻는다. 상태 머신은, 하이이면 패킷이 라우터 포트에 의해 런칭될 수 있는 것을 지시하는 단일 비트 출력을 생성한다. 더욱이, 양 "요청" 및 "허가"가 동시에 천이하는 상황이 주어지면, 상태 할당의 고유한 성질은 천이가 핸들링되는 순서에 무관하게 정확한 상태가 항상 얻어지는 것을 보장한다.
이제, 도 6을 참조하면, 본 발명의 실시예에 따른 패킷 라우터 입력 포트의 블록 다이어그램이 도시되어 있다. 도 6에 도시된 바와 같이, 입력 포트(400)는 어드레스 및 요청 신호를 각각 수신하기 위한 입력 래치(405, 410)를 포함한다. NOR 게이트(435)로 출력된 하나의 핫 비트 벡터를 생성하는 어드레스가 방향 로직(420)에 제공된다. 이어서, 요청 입력은 그 출력이 NOR 게이트(435)에 결합되어 있는 NAND 게이트(430)에 결합된 출력을 갖는 지연 요소(425)를 이후에 구동하는 다른 래치(415)로 래치(410)(및 펄스 변환 로직)를 통해 래칭된다. NAND 게이트(430)로의 제 2 입력은 이어서 다양한 포트로부터 허가 신호의 세트를 수신하는 OR 게이트(440)의 출력에 결합된 인버터(432)의 출력을 거쳐 수신된다는 것을 주목하라. 이 출력 신호는 또한 입력 래치(410) 및 허가 출력을 구동하는 출력 래치(448)를 클럭킹하는데 사용되는 다른 래치(445)를 구동한다. 래치(448)를 위한 클럭 신호는 인버터(446) 및 NAND 게이트(448)를 통해 구동된다는 것을 주목하라.
도 7은 본 발명의 실시예에 따른 패킷 라우터 출력 포트의 블록 다이어그램이다. 이제, 도 7을 참조하면, 라우터 출력 포트(450)는 다양한 입력 및 출력 신호로부터 그 출력이 OR 게이트(461)를 구동하는 AND 게이트(4600 내지 4603)의 세트로 요청을 수신하는 우선순위 회로(455)를 포함한다. AND 게이트(460)로의 다른 출력은 크레디트의 양이 0보다 클 때 크레디트 트래커(475)로부터 하이 신호를 수신하는 AND 게이트(480)에 의해 구동된 래치(465)를 거쳐 수신된다. 이 AND 게이트는 또한 토글 플립플롭(490)을 클럭킹하고, 이는 요청 출력 신호를 제공한다. AND 게이트(480)로의 다른 입력은 우선순위 회로(455) 및 OR 게이트(461) 각각으로부터 수신된 설정 및 재설정 입력을 갖는 출력에 결합된 다른 래치(470)를 경유한다는 것을 주목하라.
라우터의 입력 및 출력 포트는 크레디트 추적 로직과 함께 동작하도록 설계된다. 패킷의 결여시에, 입력 래치는 투명하게 체류한다. 요청 신호의 천이는 내부 레벨 감응성 요청이 생성되게 하고 방향 로직(420)에 의해 생성된 하나의 핫 비트 벡터를 사용하여 적절한 출력 포트에 전파되게 한다. 레벨 감응성 요청의 프로세싱 후에, 출력 포트는 입력 포트에 허가 신호를 송신하여 입력 래치(410)를 폐쇄한다. 내부 요청은 방향 로직(420)에 의해 생성된 하나의 핫 비트 벡터를 사용하여 적절한 출력 포트에 전파된다.
도 7에 도시된 바와 같이, 우선순위 회로(455)는 입력 포트로부터 착신 레벨 감응성 요청 신호들 중에 하나를 선택한다. 크레디트 트래커(475)의한 '크레디트 > 0' 비트가 하이이면, "요청 출력" 신호가 토글링된다. 이는 새로운 패킷의 런칭을 암시한다. 동시에, 허가가 대응 입력 포트에 재차 송신된다. 이 허가에 응답하여, 입력 포트는 그 내부 요청 신호를 재설정함으로써 그 요청을 디어서트하고(deassert), 패킷의 성공적인 전송을 나타내는 선행 라우터로 그 "허가 출력" 포트를 토글링한다. 동시에, 입력 포트(400)는 입력 래치(410)를 개방하고, 이에 의해 새로운 패킷이 라우터에 진입하게 한다.
회선 교환 데이터는 인트라 라우트 데이터 플립플롭 및 이들의 클럭 전력을 제거함으로써 에너지 소비를 감소시킨다. 소스 동기식 동작 및 회선 교환 데이터의 조합은 추가의 이익을 제공한다. 완전 동기식 동작에서, 회로 전송을 위한 클럭은 최악의 경우 코너간 네트워크 횡단을 위해 마지닝된다. 소스 동기식 기술 없이, 이웃하는 IP 블록은 NoC의 대향 종단에서 2개의 IP 블록과 동일한 회선 교환 지연시간을 갖는다. 소스 동기식 동작에 의해, 회선 교환 액티비티는 IP간 지연에 대해 기초하는 이벤트이고, 예로서 랜덤 트래픽을 갖는 16×16 메시의 65% 시간지연 감소를 야기한다. 근임계치 전압 동작과 함께 회선 교환을 사용하는 것은 낮은 전압에서 운전하는 조합형 리피터 및 단지 와이어만을 포함하는 점대점 상호접속부에 의해 규정된 상보형 금속 산화물 반도체(complementary metal oxide semiconductor: CMOS) 디자인에 의해 에너지 효율을 한계에 접근한다. 실시예는 디멀티플렉서(디먹스), 멀티플렉서(먹스), 및 이상적인 점대점 경우의 상부에 NoC 흐름을 제어하기 위한 중재 회로를 추가로 포함할 수도 있다.
하나의 하이브리드 소스 동기식 NoC 구현예에서, 요청 패킷은 소스 및 목적지 IP 사이에 회선 교환 채널을 설정한다. 데이터 전송을 시작하기 위해, 소스 IP는 목적지 IP를 향해 예약 패킷(예를 들어, 실시예에서, 1 비트(b) 요청, 8b 어드레스, 및 선택적 패킷 데이터를 포함함)을 송신한다. 패킷은 라우터마다 1회 플롭되고 하류측으로 포워딩된다. 경로 상의 각각의 라우터는 크레디트 기반 시스템에서 상류측 링크를 자유롭게 하기 위해 이전의 라우터로 재차 허가 신호(예를 들어, 1b 허가)를 송신한다. 일 실시예에서, 크레디트 시스템은 전술된 바와 같이, 크레디트-2 시스템으로서 구현될 수 있다. 회선 교환 채널이 설정될 때, 데이터는 소스로부터 목적지로 채널 상에서 통신된다. 이 회선 교환 통신에서, 목적지 라우터는 일단 회선 교환 데이터를 수신하면 소스 코어로 줄곧 확인응답을 재차 송신한다.
이제, 도 8을 참조하면, 본 발명의 실시예에 따른 방법의 흐름도가 도시되어 있다. 도 8에 도시된 바와 같이, 방법(850)은 NoC 전체에 걸쳐 존재하는 다양한 로직에 의해 수행될 수 있다. 이 로직은 데이터 통신 경로가 요구되는 소스 로직과 목적지 로직 사이에 위치된 다수의 라우터 내에 분배될 수 있다. 도시된 바와 같이, 방법(850)은 예약 요청이 라우터 내의 소스 로직으로부터 수신되고 버퍼(예를 들어, FIFO 버퍼) 내에 저장되는 블록 860에서 시작한다. 이 예약 요청은 소스 로직과 목적지 로직 사이의 데이터 통신을 위한 예약에 각각 대응하는, 다수의 예약 패킷을 저장하기 위해 버퍼를 갖거나 갖지 않고 NoC의 패킷 교환부를 거쳐 통신된 예약 패킷일 수도 있다. 다음에, 블록 870에서, 예약 패킷은 목적지 로직으로의 경로 상에서 라우터에 송신된다. 예를 들어, 소정의 라우터에서 수행된 룩업 또는 다른 라우팅 프로토콜에 기초하여, 이 예약 패킷은 소스 로직으로부터 목적지 로직으로 경로를 따라 포워딩된다.
도 8을 계속 참조하면, 다음에 이 예약 요청이 소스로직으로부터 목적지 로직으로 경로에서 최고 우선순위를 갖는지 여부가 판정될 수 있다(다이아몬드 880). 만일 그렇지 않으면, 이 예약은 최고 우선순위일 때까지 대기한다. 예약이 최고 우선순위를 가질 때, 회선 교환 채널은 소스 로직과 목적지 로직 사이에 설정된다(블록 885). 이 채널의 설정 후에, 데이터 통신이 발생한다. 더 구체적으로, 블록 890에서, 회선 교환 데이터 전송이 소스 로직과 목적지 로직 사이에서 통신된다. 각각의 전송은 그 크기가 데이터 버스에 의해 설정되는 데이터의 하나 이상의 세그먼트를 포함할 수 있다. 회로 스트리밍을 갖는 실시예에서, 채널이 폐쇄되기 전에 다수의 세그먼트가 소스 로직으로부터 목적지 로직으로 통신될 수 있다. 실시예에서, 통신은 정방향(스트림, 테일) 및 역방향(확인응답) 핸드셰이킹 신호를 갖는 2-페이즈 핸드셰이킹을 사용하여 수행된다. 소스 로직은 각각의 통신된 회선 교환 세그먼트 전송의 성공적인 수신을 지시하는 확인응답을 수신한다. 실시예에서, 회선 교환 전송은 크레디트-1 시스템을 사용하고, 반면에 패킷 교환 전송은 크레디트-2 시스템을 사용한다. 더 일반적인 개념에서, 이들 모두는 다른 독립적인 크레디트 기반 프로토콜을 가질 수 있다. 도 8의 실시예에서 이 상위 레벨에서 설명되었지만, 본 발명의 범주는 이와 관련하여 한정되는 것은 아니라는 것이 이해된다.
이제, 도 9를 참조하면, 복수의 라우터(510a 내지 510c)를 포함하는 NoC(500)의 블록 다이어그램이 도시되어 있다. 도시된 바와 같이, 각각의 입력 포트 및 출력 포트는 정렬된 방식으로 데이터 전송을 제공한다. 착신 예약이 대기열을 이루고 상이한 예약이 상이한 라우터 내로 입력됨에 따라, 이들은 상이한 라우터에서 분기된다. 따라서, 도시된 바와 같이, 라우터(510a) 내에서, 더 빠른 예약이 출력 포트의 FIFO의 예약 5 및 6 앞에 배치된다. 다음에, 라우터(510b)에서, 예약 4 및 6은 분기되고, 따라서 예약 5는 이 출력 포트의 FIFO의 헤드에 진입한다. 라우터(510c)의 입력 포트의 FIFO 내에 입력 후에, 예약 5는 출력 포트의 FIFO가 충만하기 때문에 스톨링된다(stalled).
각각의 라우터 포트에서, 예약은 FIFO 내의 최고 가용 슬롯 내에 방향 정보를 저장한다. 최고 전체 슬롯은 회로 채널 멀티플렉서(먹스) 및 디멀티플렉서(디먹스)를 제어한다. 예약은 경로 상의 출력-입력 포트의 각각의 세트에서 상이한 우선순위를 가질 수 있다. 즉, 예약은 글로벌 순서가 유지되는 한, 소스와 목적지 사이의 루트를 횡단함에 따라 슬롯 우선순위를 시프트할 수 있다. 예약은 FIFO가 충만하면 차단된다. 예약이 소스로부터 목적지로 모든 FIFO 내에 최고 우선순위를 가질 때, 소스 및 목적지 IP는 회선 교환 프로토콜을 사용하여 통신한다. 실시예에서, 이 통신은 데이터 세그먼트의 시작을 나타내는 1b 스트림 신호, 데이터 전송의 종료를 나타내는 1b 테일 신호, 2-페이즈 핸드셰이킹 프로토콜을 갖는 조합형 채널 상에 80b 데이터 및 1b 확인응답의 전송 제어 신호를 포함한다. 채널이 개방 유지되는 동안, 회로 데이터는 다수의 데이터 세그먼트(예를 들어, 80b의 데이터의 각각)를 송신하도록 스트리밍될 수 있고, 각각의 세그먼트는 그 자신의 확인응답을 갖는다. 이는 훨씬 더 큰 데이터 전송에 걸쳐 회선 교환 중재 오버헤드를 상각한다(artomize). 데이터 스트리밍이 완료될 때, 최종 확인응답은 경로를 따른 모든 FIFO 내의 우선순위를 증분함으로써 채널을 할당해제한다. 이는 FIFO로부터 완성된 최고 우선순위 예약을 제거하여, 후속의 회선 교환 전송이 발생하게 한다.
이제, 도 10a를 참조하면, 본 발명의 일 실시예에 따른 라우터의 입력 및 출력 포트의 블록 다이어그램이 도시되어 있다. 라우터는 예약 패킷, 및 회선 교환 제어 및 데이터 정보를 핸들링하는 것에 추가하여, 각각의 입력 포트로부터 정확한 출력 포트로 착신 측파대 데이터를 송신한다. 도 10a에서, 입력 포트(600)는 좌측에 도시되어 있고, 출력 포트(700)는 우측에 있다. 먼저, 패킷 교환부(601/701)를 고려한다. 크레디트-2 패킷 시스템에서, 송신된 요청의 수는 2만큼 수신된 허가의 수를 초과할 수 있다. 요청 및 허가는 천이 인코딩된다. 입력 포트에서, 요청은 레벨 감응성 신호로 변환되고, 어드레스 정보를 사용하여 디멀티플렉싱되고, 정확한 출력 포트로 송신된다. 래치 및 C-요소는 라우터가 비지(busy) 상태일 때 착신 패킷을 차단한다. 입력 포트(600)의 패킷부(601)에서 시작하여, 착신 요청은 C-요소(605)를 거쳐 수신되는데, C-요소는 허가 신호를 또한 수신하고 배타적-OR 게이트(610)의 일 입력을 구동한다. 도 10b는 본 발명의 일 실시예에 따른 C-요소의 블록 다이어그램을 도시한다. 다른 입력은 복수의 허가 신호를 수신하는 배타적-OR 게이트(620)의 허가 출력으로부터 온다. 이어서, 게이트(610)의 출력은 디멀티플렉서(615)에 결합되고, 착신 패킷 데이터, 및 어드레스 정보, 및 회로 인에이블 신호를 수신하는 래치(630)를 또한 구동한다. 게이트(610)의 출력은 입력 포트에 도달하는 요청을 프로세싱하기 위해 라우터에 의해 사용된 중간 레벨 감응성 요청 신호이다.
예약 패킷에 관한 정보는 FIFO(650) 내에 저장된다. 더 구체적으로, 정보는 디코더(625)의 출력을 거쳐 엔트리 내에 저장될 수도 있다. 실시예에서, 어드레스는 각각의 코어(그리고, 따라서 코어와 라우터 사이에 1:1 맵핑이 존재하는 경우에 라우터)와 연관될 수 있다. 이어서, 이 어드레스는 정보를 송신하기 위한 라우터의 적절한 포트를 식별하기 위해 각각의 라우터에 로컬인 방향 정보를 발생하는데 사용될 수 있다. 실시예에서, 4개의 방향 중 하나를 식별하기 위한 2개의 비트일 수 있는 이 방향 정보는 FIFO에 저장된다.
소정의 입력 포트가 개방될 때, 착신 데이터 및 어드레스 정보는 래치(630)를 통해 출력 포트(700)의 멀티플렉서(735)에 통과된다. 회선 교환 통신을 위한 다양한 요소는 이후에 다른 배타적-OR 게이트(675)에 결합된 배타적-OR 게이트(665, 670)를 거쳐 수신된 회로 확인응답 신호를 거쳐 제어된다는 것을 주목하라. 테일 신호는 데이터 전송의 종료를 지시하고, XOR 게이트(655), 디멀티플렉서(660)에, 따라서 토글 플립플롭(745) 및 XOR 게이트(765)에 제공된다. 착신 회로 스트림 신호가 (배타적-OR 게이트(680)를 거쳐) 디멀티플렉서(690)를 통해(스트림 신호를 위해) 출력 포트(700) 상에, 더 구체적으로 토글 플립(750)에 제공된다. 토글 플롭(750)의 출력은 더블 에지 플립 플롭(760)을 구동하고, 또한 배타적-OR 게이트(770)로의 입력이고, 따라서 회로 스트림 데이터를 위한 제어 신호를 출력한다. 이어서, 회로 데이터 자체는 멀티플렉서 래치(755)를 거쳐 입력 포트(600)를 통해 그리고 출력 포트(700)를 통해 통신된다.
대응 FIFO(740)는 출력 포트(700) 내에 존재하고, 방향 아비터(arbiter)(705)를 거쳐 입력을 수신하도록 구성된다. 멀티플렉서(735)는 더블 에지 트리거링된 플립 플롭(730)에 결합된다. 데이터 흐름의 방향은 이후에 허가 신호를 출력하도록 토글 플롭(710)을 구동하는 방향 아비터(705)에서 결정된다. 이제, 도 10c를 참조하면, 본 발명의 하나의 실시예에 따른 토글 플롭의 블록 다이어그램이 도시되어 있다. 그 출력이 배타적 NOR 게이트(715)의 입력에 결합되어 있는 다른 C-요소(725)의 존재를 또한 주목하라.
출력 포트로부터의 허가는 소스를 향해 상류측으로 재차 송신된다. 출력 포트에서, 방향 아비터(705)는 입력 포트 요청으로부터 선택한다. 요청은 토글 플롭(710)을 사용하여 천이로 변환된다. 천이는 이전의 라우터를 위한 발신 요청 및 허가의 모두로서 기능한다. 발신 요청은 더블 에지 트리거링된 플롭을 사용하여 어드레스 및 데이터 정보를 플롭한다. 이제, 도 10d를 참조하면, 본 발명의 일 실시예에 따른 더블 에지 트리거링된 플롭의 블록 다이어그램이 도시되어 있다. C-요소는 크레디트를 계속 추적하고, 크레디트가 초과되면 토글 플롭을 디스에이블링한다.
패킷은 따라서 도 10a의 회로부(602/702)를 사용하여 회선 교환 채널을 설정하는데 사용된다. 패킷은 모든 포트의 최고 가용 FIFO 내에 방향 정보를 저장한다. 최고 전체 우선순위 FIFO 슬롯은 회선 교환 제어 신호 및 데이터를 위한 디멀티플렉서 및 멀티플렉서를 제어한다. 래치는 단지 데이터 링크 상의 불필요한 글리치(glitch)를 방지하기 위해 회로 데이터를 위해 사용된다. 실시예에서, 래치는 회로 전송을 중에 개방 유지되고, 패킷 교환보다 상당히 낮은 클럭 전력에 대해 스트림마다 단지 1회 교환한다. 실시예에서, 모두 데이터 전송을 지시하는 2개의 포워드 제어 신호가 구현된다(스트림 및 테일). 스트림 신호는 추종을 위한(부가의 세그먼트로서) 더 많은 데이터와 회로 데이터의 통신을 지시하고, 따라서 완전한 회로 데이터 전송(하나 이상의 세그먼트의)을 위해 회로 채널을 개방 유지하고, 테일 신호는 회로 데이터 전송의 종료를 지시하고, FIFO 우선순위를 증분함으로써 회선 교환 채널을 할당해제한다. 이어서, 반대 방향에서, 역제어 신호(확인응답)가 회로 데이터 전송의 각각의 세그먼트에 대해 목적지로부터 소스로 송신된다.
이제, 도 11을 참조하면, 본 발명의 실시예에 따른 FIFO(800)의 블록 다이어그램이 도시되어 있다. FIFO(800)는 실시예에서, 회전하는 기록 및 판독 포인터를 갖는 4-딥(deep) 레지스터로서 구현된다. 도 11에서 보여지는 바와 같이, FIFO 뱅크(810)는 이후에 그레이 카운터(822) 및 디코더(824)를 포함하는 기록 포인터(820)에 의해 제어되는 디멀티플렉서(805)를 거쳐 그 엔트리들 중 대응하는 하나 내에 착신 기록 데이터를 수신한다. 디코딩은 모든 글리치를 방지하는 이러한 방식으로 FIFO에서 수행된다. 실시예에서, FIFO 포인터는 그레이 인코딩되고, FIFO는 글리칭이 존재하지 않는 것을 보장하기 위해 원형 FIFO로서 동작한다. 이 인코딩은 또한 FIFO가 충만한지 또는 비어있는지를 결정하기 위해 임의의 글리치 없이 판독 및 기록 포인터 사이의 비교를 가능하게 한다.
FIFO 뱅크(810)의 엔트리는 그레이 카운터(832) 및 디코더(834)에 의해 제어된 판독 포인터(830)를 거쳐 판독될 선택된 엔트리를 출력하는 출력 멀티플렉서(815)에 결합된다. 비어있는 및 충만 신호를 제공하는데 사용된 FIFO 상태 로직(840)의 존재를 또한 주목하라.
FIFO(800)는 따라서 패킷 교환된 예약과 회선 교환된 전송 사이의 인터페이스로서 구성된다. 포인터는 무글리치 비동기식 기록 및 판독 동작을 허용하기 위한 그레이 카운터로서 구현된다. 회로 전송을 위한 예약이 대기열 형성될 수 있기 때문에, 예약 패킷은 회선 교환 전송보다 고속으로 전파하고, 어드레스 디코딩 및 방향 중재 지연시간을 은폐하기 위해 미리 하류측 회선 교환 채널을 셋업한다.
차원 순차 라우팅(X-먼저 이어서 Y)은 패킷 네트워크에서 교착상태(deadlock)를 방지한다. 회로 전송에 의해, 패킷이 회선 교환 채널을 할당하지만, 회로 전송이 순환적 우선순위 루프를 형성하고 절대 도달하지 않을 때 부가의 교착상태 시나리오가 발생할 수 있다. 실시예는 회로 제어 신호가 도달할 때까지 단지 회전시에 요청을 스톨링(stalling)함으로써 이 교착상태 시나리오를 회피할 수 있다. 회전은 요청 및 회로 전송이 E 또는 W로부터 N 또는 S로 방향을 변경할 때 발생한다. 유사한 상황이 임의의 주 방향으로부터 코어 포트로 아래로 회전에 의해 발생할 수 있다. 이 시나리오에서, 하류측 포트가 최종 목적지이고, 가장 빠른 도달 회로 전송이 선택되기 때문에, 전송 순서는 유지될 필요가 없다. 따라서, 본 발명의 실시예를 사용하여, 교착상태는 유효 회로 전송이 도달할 때까지 회전시에(E, W -> N, S) 요청을 스톨링함으로써 회피된다.
본 명세서에 설명된 바와 같은 라우터 구현예는 다수의 상이한 유형의 시스템에서 사용될 수 있다. 이제, 도 12를 참조하면, 16×16 메시로 구현된 NoC(900)의 블록 다이어그램이 도시되어 있다. 실시예에서, 각각의 라우터(910)는 고유 클럭 및 전압을 갖는다. 실시예에서, 라우터들 사이의 링크는 32b 패킷 데이터 및 80b 회선 교환 데이터를 포함하는 126b 폭 상호접속부로 구현될 수 있다. 그러나, 본 발명의 실시예에 따른 NoC는 다수의 네트워크 토폴로지, 크기, 버스폭, 및 프로세스에 적용될 수도 있다는 것을 이해하라.
도 12에 보여지는 바와 같이, NoC(900)는 복수의 개별 라우터(910)를 포함한다. 각각의 이러한 라우터는 5개의 포트, 즉 동쪽, 서쪽, 북쪽, 남쪽 포트 및 코어 포트를 포함한다. 각각의 포트는 입력 포트 및 출력 포트로 형성된다. 대응 입력 포트 및 출력 포트와 연관된 다양한 회로 및 패킷 신호가 도 12에 또한 도시되어 있다. 이들 5개의 포트 사이에는, 다양한 크로스바아 및 중재 로직이 제공될 수 있다는 것을 주목하라. 실시예에서, E 및 W 방향 링크는 하나의 금속층 상에 적응될 수 있고, N 및 S 방향 링크는 제 2 금속층 상에 적응될 수 있고, 코어 링크는 제 3 금속층 상에 적응될 수 있다. 각각의 라우터는 112b 데이터(32b 패킷 및 80b 회선 교환 데이터를 포함함)를 송신한다. 특정 실시예에서, NoC는 랜덤 포화된 트래픽에서 369 Gb/s/W의 에너지 효율을 갖는 10.3 Tb/s의 양분 대역폭을 성취하도록 설계될 수 있다.
소스 동기식 동작은 비-최악 경우 사이클 시간에 의한 처리량 향상을 제공한다. 동일한 에너지 효율에 대해, 예시적인 소스 동기식 패킷 교환 NoC는 완전 동기식 디자인보다 대략 26% 더 높은 처리량, 및 동일한 처리량에서 대략 47% 더 높은 에너지 효율을 가질 수 있다.
스트리밍 데이터 전송을 사용하여, 더 많은 회선 교환 데이터가 각각의 요청 패킷의 결과로서 송신된다. 패킷 지연시간 및 전력 오버헤드가 더 많은 수의 회로 전송에 걸쳐 확산되어, 처리량 및 에너지 효율을 증가시킨다. 소스 동기식 콘텍스트에서 회선 교환은 인트라 라우트 저장 장치를 위한 클럭킹 및 플롭 전력을 제거하여, NoC 내의 패킷 교환 데이터에 비해 에너지 효율을 증가시킨다.
본 발명의 실시예를 사용하여, NoC는 높은 에너지 효율을 갖고 NoC 내로의 다수의 클럭킹 도메인의 합체를 용이하게 한다. 소스 동기식 동작은 글로벌 클럭 분배 및 동기화 데이터 FIFO 전력을 완화한다. 사이클 시간은 최악의 경우에 대해 마지닝하지 않음으로써 감소될 수 있고, 클럭 스큐 및 지터를 위한 마진이 제거될 수 있다. 회선 교환 전송은 또한 데이터 경로로부터 넓은 플롭 어레이를 제거함으로써 클럭 전력을 더 감소시킨다. 이들 전송은 소스 동기식 동작에 기인하여 최악의 경우 코너간 지연시간에 대해 마지닝되지 않는다. 소스 동기식 하이브리드 패킷 및 회선 교환 NoC는 상이한 클럭 도메인을 갖는 코어가 더 높은 에너지 효율을 갖고 통신하게 한다. 이는 상이한 클럭 도메인에서 상이한 IP를 갖는 이종 NoC의 통합을 용이하게 한다. 방법론은 또한 임계 경로 뿐만 아니라 클럭 스큐 및 지터와 연관된 타이밍 불확실성을 완화함으로써 프로세스 편차로의 탄력성을 증가시킨다.
글로벌 클럭에 대한 요구 없이, 상이한 IP가 독립적인 주파수 및 공급 전압에서 실행할 수 있다. 이는 상이한 구성요소들이 이들의 고유의 에너지 최적점에서 동작될 수 있고 코어/네트워크 인터페이스에서를 제외하고는 동기 회로를 위한 임의의 지연 또는 에너지 페널티를 취하지 않고 끊임없이 NoC와 합체될 수 있는 SoC 디자인에 대해 특히 유리할 수 있다. 게다가, 라우터들 사이의 통신의 소스 동기 성질은 혼잡한 트래픽을 위한 패킷 지연시간을 향상시켜, 또한 이종 시스템에서 최악의 경우보다 양호한 패킷 지연시간을 야기한다.
이러한 패브릭의 일 예는 4-레벨 계층적 스타 토폴로지에서 접속된 256 노드 패브릭이다. 상호접속 길이는 라우터가 서로로부터 멀리 이격되어 있기 때문에 증가하는 계층으로 배가된다. 모든 계층에 진입하는 패킷의 50%가 더 상위 계층에서 라우터를 향해 지향되어 있는 경우를 고려하여, 더 상위 레벨에서의 트래픽이 더 혼잡된다. 이러한 시나리오에서, 감소된 공급 전압에서 더 하위 계층 라우터를 동작하는 것은 무시할만한 처리량의 손실을 갖는 더 높은 에너지 효율을 제공한다. 이는 독립적인 공급 전압에서 동작하는 능력이 제공되면, 임의의 부가의 논리 오버헤드 없이 끊임없이 성취된다.
일 구현예에서, 패킷 교환 라우터 회로는 패킷을 송신하기 위해 클럭 대신에 제어 흐름 신호 천이를 사용한다. 이 시스템에서, 입력 포트는 착신 패킷을 수신하고, 방향을 결정하고, 패킷을 적절한 출력 포트에 포워딩한다. 이어서, 출력 포트는 하나를 다음의 라우터에 송신하기 위해 가용 패킷들 중으로부터 선택한다. 라우터는 요청 신호 천이에 의해 지시된 패킷을 수신하고, 다른 패킷을 위한 준비를 나타내는 허가 신호를 재차 천이한다. 몇몇 실시예에서, 크레디트-2 크레디트 통신 프로토콜은 허가를 수신하기 전에 2개의 패킷을 송신한다. 래치가 라우터의 입력 포트에서 폐쇄될 때, 후속의 패킷은 제 1 패킷의 프로세싱 중에 차단된다.
일 구현예에서, 더블 에지 플립플롭이 출력 포트에 사용되어 데이터를 다음의 라우터에 송신하고, C-요소가 입력 포트 내의 요청 및 확인응답 신호를 추적하는데 사용되고, C-요소는 출력 포트 내에 크레디트를 추적하고 크레디트가 소진될 때 다른 패킷을 송신하는 것을 디스에이블링하는데 사용된다. 무글리치 어드레스 디코딩 회로는 요청 신호를 적절한 출력 포트에 포워딩하는데 사용될 수 있고, 방향 중재 회로는 결핍(starvation)을 회피하면서 출력 포트에 진입하도록 송신하기 위해 도달 순서에 기초하여 입력 포트 요청 신호들 중으로부터 하나의 요청을 선택한다. 그리고, 부가의 크레디트 추적 및 저장 회로에 의해, 다중 크레디트 시스템이 활성화된다.
실시예는 회선 교환 데이터를 송신하기 위해 클럭 대신에 제어 흐름 신호 천이를 사용하는 하이브리드 회선 교환 라우터 회로를 또한 제공한다. 실시예에서, 요청 패킷은 회선 교환 경로를 생성하도록 송신된다. 각각의 라우터 내의 FIFO 요청 저장 장치는 요청 패킷이 라우터를 횡단함에 따라 요청 패킷 방향을 저장한다. 글로벌 우선순위 순서는 최고 우선순위를 갖는 가용 엔트리에 요청을 기록함으로써 NoC를 가로질러 유지될 수 있다. 이 방식으로, 채워진 FIFO 엔트리로부터의 최고 우선순위 요청은 회선 교환 채널을 구성한다. 회로의 회선 교환부에 대해, 회선 교환 스트림 신호는 추종을 위한 더 많은 전송을 갖는 회선 교환 데이터의 도달을 지시하고, 회선 교환 유효 신호는 전송을 완료하기 위한 회선 교환 데이터의 도달을 지시하고, 회선 교환 확인응답 신호는 회선 교환 데이터가 그 목적지에 도달된 것을 지시한다. 패킷은 회선 교환 전송에 추가하여 작은 측파대 전송을 위해 사용될 수 있고, 신호는 패킷이 측파대 데이터, 회선 교환 경로 셋업, 또는 양자 모두를 위해 사용되는지 여부를 지시하는데 사용될 수 있다는 것을 주목하라.
다음에 도 13을 참조하면, 실시예에 따른 시스템 온 칩(SOC) 디자인의 실시예가 도시되어 있다. 특정 예시적인 예로서, SOC(2000)가 사용자 장비(UE)에 포함된다. 일 실시예에서, UE는 휴대폰, 스마트폰, 태블릿, 초박형 노트북, 광대역 어댑터를 갖는 노트북, 또는 임의의 다른 유사한 통신 디바이스와 같은 통신을 위해 최종 사용자에 의해 사용될 임의의 디바이스를 칭한다. 종종, UE는 잠재적으로 GSM 네트워크 내의 이동국(MS)에 본질적으로 대응하는 기지국 또는 노드에 접속한다.
여기서, SOC(2000)는 2개의 코어 - 2006 및 2007을 포함한다. 상기 설명에 유사하게, 코어(2006, 2007)는 Intel® Architecture CoreTM-기반 프로세서, Advanced Micro Devices, Inc.(AMD) 프로세서, MIPS-기반 프로세서, ARM-기반 프로세서 디자인과 같은 명령어 세트 아키텍처, 또는 이들의 고객, 뿐만 아니라 이들의 실시권자 또는 채택자에 합치할 수 있다. 코어(2006, 2007)는 시스템(2000)의 다른 부분과 통신하기 위해 버스 인터페이스 유닛(2009) 및 L2 캐시(2010)와 연관된 캐시 콘트롤(2008)에 결합된다. 상호접속부(2010)는 IOSF, AMBA, 또는 본 명세서에 설명된 하나 이상의 양태를 잠재적으로 구현하는 전술된 다른 상호접속부와 같은 온칩 상호접속부를 포함한다.
상호접속부(2010)는 SIM 카드와 인터페이스하기 위한 가입자 식별 모듈(Subscriber Identity Module: SIM)(2030), SOC(2000)를 초기화하고 부스트하기 위해 코어(2006, 2007)에 의해 실행을 위한 부트 코드를 유지하기 위한 부트 ROM(2035), 외부 메모리(예를 들어, DRAM(2060))와 인터페이스하기 위한 SDRAM 콘트롤러(2040), 비휘발성 메모리(예를 들어, 플래시(2065))와 인터페이스하기 위한 플래시 콘트롤러(2045), 주변장치와 인터페이스하기 위한 주변장치 콘트롤러(2050)(예를 들어, 직렬 주변장치 인터페이스), 입력(예를 들어, 터치 활성화된 입력)을 표시하고 수신하기 위한 비디오 코덱(2020) 및 비디오 인터페이스(2025), 그래픽 관련 연산을 수행하기 위한 GPU(2015) 등과 같은 다른 구성요소에 통신 채널을 제공한다. 임의의 이들 인터페이스는 본 명세서에 설명된 양태를 합체할 수도 있다.
게다가, 시스템은 블루투스 모듈(2070), 3G 모뎀(2075), GPS(2080), 및 WiFi(2085)와 같은 통신을 위한 주변장치를 예시하고 있다. 시스템에는 전력 콘트롤러(2055)가 또한 포함된다. 전술된 바와 같이, UE는 통신을 위한 라디오를 포함하는 것을 주목하라. 그 결과, 이들 주변장치 통신 모듈은 모두 요구되는 것은 아니다. 그러나, UE 소정 형태에서, 외부 통신용 라디오가 포함되어야 한다.
이하의 예가 다른 실시예에 속한다.
일 예에서, 장치는 제 1 입력 포트 및 제 1 출력 포트를 포함하는 라우터를 포함하고, 라우터는 NoC의 것이고, 라우터는 제어 흐름 신호의 천이에 기초하여 라우터로부터 NoC의 제 2 라우터로 패킷의 통신을 가능하게 한다.
예에서, 제 1 입력 포트는 제 1 입력 포트에서 수신된 제 1 제어 흐름 신호의 천이에 응답하여, 제 2 라우터로부터 요청의 통신을 수신하기 위한 래치를 포함한다.
예에서, 제 1 입력 포트는 다른 요청의 서비스를 위한 준비를 나타내는 요청의 서비스에 응답하여 제 2 라우터에 제 2 제어 흐름 신호를 송신하고 래치를 개방한다.
예에서, 제 2 라우터는 제 2 제어 흐름 신호의 천이의 수신 전에 라우터의 복수의 패킷을 통신하고, 제 2 라우터의 크레디트 레벨은 제 2 제어 흐름 신호의 천이에 기초하여 업데이트된다.
예에서, 폐쇄될 때, 래치는 요청의 프로세싱 중에 제 1 입력 포트 내로의 새로운 패킷의 삽입을 방지한다.
예에서, 제 1 입력 포트는 제 1 흐름 제어 신호의 천이와 연관된 패킷을 수신하고, 다른 패킷의 수신을 위한 준비를 나타내는 제 2 흐름 제어 신호를 천이한다.
예에서, 장치는 라우터로의 통신 전에 복수의 패킷 중 적어도 하나를 저장하기 위해 라우터와 제 2 라우터 사이에 결합된 버퍼를 더 포함한다.
예에서, 라우터는 제 1 제어 흐름 신호 및 제 2 제어 흐름 신호를 수신하고, 제 1 및 제 2 제어 흐름 신호에 기초하여 제 3 신호를 생성하고, 제 1 및 제 2 제어 흐름 신호 및 제 3 신호에 기초하여 크레디트 레벨을 업데이트하기 위한 크레디트 로직을 포함한다.
예에서, 제 3 신호는 제 1 제어 흐름 신호의 천이에 응답하는 제 1 값 및 제 2 제어 흐름 신호의 천이에 응답하는 제 2 값이다.
예에서, 크레디트 로직은 제 2 제어 흐름 신호의 제 1 천이의 수신 전에 요청을 통신하기 위해 제 2 라우터를 활성화하고, 크레디트 레벨이 임계치 미만일 때 제 2 라우터의 요청의 통신을 방지한다.
예에서, NoC는 소스 동기식 하이브리드 패킷/회선 교환 NoC이다.
예에서, 라우터는 제 1 주파수 및 제 1 전압에서 동작하고, 제 2 라우터는 제 2 주파수 및 제 2 전압에서 동작한다.
일 예에서, 장치는 입력 포트의 세트 및 출력 포트의 세트를 각각 갖는 복수의 라우터를 포함하고, 입력 포트 및 출력 포트의 각각은 회선 교환부 및 패킷 교환부를 갖고, 소스 로직과 목적지 로직 사이의 입력 포트 및 출력 포트의 복수의 세트의 패킷 교환부는 제어 흐름 신호 천이에 기초하여 회선 교환 데이터를 통신하기 위해 소스 로직과 목적지 로직 사이에 회선 교환 채널을 설정하고, 복수의 라우터는 소스 동기식 프로토콜에 따라 동작한다.
예에서, 패킷 교환부의 각각은 요청을 저장하기 위한 버퍼를 포함하고, 요청의 우선순위는 패킷 교환부의 각각에서 가변적이다.
예에서, 버퍼는 요청 중 하나와 연관된 방향 정보를 각각 저장하기 위한 복수의 엔트리를 포함하고, 최고 우선순위를 갖는 버퍼의 가용 엔트리 내의 제 1 우선순위 요청의 저장에 의해 글로벌 우선순위 순서가 유지된다.
예에서, 장치는 버퍼의 입력에 결합된 제 1 선택기와 및 제 1 선택기를 제어하기 위한 기록 포인터 로직 - 기록 포인터 로직은 방향 정보를 기록해야 하는 버퍼의 엔트리를 선택하기 위한 그레이 카운터를 포함함 - 과, 버퍼의 출력에 결합된 제 2 선택기와, 1 선택기를 제어하기 위한 판독 포인터 로직 - 판독 포인터 로직은 방향 정보를 판독해야 하는 버퍼의 엔트리를 선택하기 위한 그레이 카운터를 포함함 - 을 더 포함한다.
예에서, 제 1 요청이 소스 로직과 목적지 로직 사이의 패킷 교환부의 각각에서 최고 우선순위를 가질 때, 회선 교환 채널은 제 1 요청과 연관된 데이터의 통신을 위해 설정된다.
예에서, 회선 교환 채널은 회선 교환 채널의 설정에 응답하여 회선 교환 데이터 통신의 복수의 데이터 세그먼트를 통신한다.
예에서, 회선 교환 채널은 소스 로직에서 복수의 데이터 패킷 중 적어도 하나 부가의 데이터 세그먼트가 후속되는 복수의 데이터 세그먼트 중 제 1 데이터 세그먼트의 도달을 나타내는 제 1 회로 제어 흐름 신호, 회선 교환 데이터 통신의 완료를 나타내는 제 2 회로 제어 흐름 신호, 및 복수의 데이터 패킷의 각각의 데이터 세그먼트의 수신을 나타내는 제 3 회로 제어 흐름 신호를 통신한다.
예에서, 복수의 라우터의 각각은 SoC의 코어와 연관된다.
예에서, 패킷 교환부는 제 1 패킷으로서 측파대 데이터를 통신한다.
예에서, 패킷 교환부는 제 2 패킷으로서 회선 교환 채널의 설정을 위한 예약 요청을 통신한다.
일 예에서, 방법은 NoC의 패킷부에서, 소스 로직으로부터 목적지 로직으로 발행된 예약 요청이 소스 로직과 목적지 로직 사이에 결합된 복수의 라우터의 버퍼 내에 저장된 복수의 예약 요청 중에 최고 우선순위를 갖는 것으로 판정하는 단계와 및 NoC의 회로부에서, 소스 로직과 목적지 로직 사이에 데이터 통신을 가능하게 하기 위해, 소스 로직과 목적지 로직 사이에 회선 교환 채널을 설정하는 단계를 포함한다.
일 예에서, NoC는 소스 동기식 하이브리드 패킷/회선 교환 NoC이다.
예에서, 방법은 목적지 로직 내의 데이터 통신의 제 1 패킷의 수신에 응답하여, 소스 로직에 통신되도록 제 1 확인응답 신호의 천이를 개시하는 단계를 더포함한다.
예에서, 방법은 제 1 확인응답 신호의 천이의 수신에 응답하여 소스 로직 내의 크레디트값을 업데이트하는 단계를 더 포함한다.
예에서, 방법은 제 1 확인응답 신호의 천이의 수신 전에 목적지 로직에 복수의 패킷을 통신하기 위해 소스 로직을 활성화하는 단계를 더 포함한다.
일 예에서, 장치는 상기 예들 중 임의의 하나 이상 중 임의의 하나에서 청구하는 바와 같은 방법을 수행하기 위한 수단을 포함한다.
다른 예에서, 머신 판독가능 저장 매체는 실행될 때 상기 예들 중 임의의 하나 이상 중 임의의 하나에서 청구된 바와 같은 방법을 구현하기 위한 머신 판독가능 명령을 포함한다.
일 예에서, 시스템은 소스 동기식 NoC의 라우터와 각각 연관된 복수의 코어를 포함하는 SoC을 포함하고, 각각의 라우터는 입력 포트의 세트 및 출력 포트의 세트 - 입력 포트 및 출력 포트의 각각은 회선 교환부 및 패킷 교환부를 갖고, 소스 코어와 목적지 코어 사이의 패킷 교환부는 제어 흐름 신호 천이에 기초하여 회선 교환 데이터의 통신을 위해 회선 교환 채널을 설정함 - 와 SoC에 결합된 비휘발성 저장 장치를 포함한다.
예에서, 제 1 패킷 교환부가 제 1 패킷 교환부로부터 제 2 패킷 교환부로 패킷의 전송을 나타내는 제 1 패킷 제어 흐름 신호의 천이를 생성하고, 제 2 패킷 교환부는 다른 패킷의 수신을 위한 준비를 나타내는 제 2 패킷 제어 흐름 신호의 천이를 생성한다.
예에서, 제 1 회선 교환부는 회선 교환 데이터의 제 1 데이터 세그먼트의 도달을 나타내는 제 1 회로 제어 흐름 신호의 천이를 생성하고, 회선 교환 데이터의 통신의 완료를 나타내는 제 2 회로 제어 흐름 신호의 천이를 생성한다.
예에서, 프로세서는 사용자 장비 터치 활성화 디바이스에 합체된다.
다른 예에서, 시스템은 디스플레이 및 메모리를 포함하고, 상기 예들 중 하나 이상의 프로세스를 포함한다.
실시예는 다수의 상이한 유형의 시스템에 사용될 수 있다. 예를 들어, 일 실시예에서, 통신 디바이스는 본 명세서에 설명된 다양한 방법 및 기술을 수행하도록 배열될 수 있다. 물론, 본 발명의 범주는 통신 디바이스에 한정되는 것은 아니고, 대신에 다른 실시예는 명령을 프로세싱하기 위한 다른 유형의 장치, 또는 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여, 디바이스가 본 명세서에 설명된 방법 및 기술 중 하나 이상을 수행하게 하는 명령을 포함하는 하나 이상의 머신 판독가능 매체에 관한 것일 수 있다.
실시예는 코드로 구현될 수 있고, 명령을 수행하기 위해 시스템을 프로그램하는데 사용될 수 있는 명령이 그 위에 저장되어 있는 비일시적 저장 매체 상에 저장될 수 있다. 저장 매체는 플로피 디스크, 광학 디스크, 고체 상태 드라이브(solid state drives: SSDs), 콤팩트 디스크 판독 전용 메모리(compact disk read-only memories: CD-ROMs), 콤팩트 디스크 재기록가능(compact disk rewritables: CD-RWs), 및 자기 광학 디스크를 포함하는 임의의 유형의 디스크, 판독 전용 메모리(read-only memories: ROMs), 동적 랜덤 액세스 메모리(dynamic random access memories: DRAMs), 정적 랜덤 액세스 메모리(static random access memories: SRAMs)와 같은 랜덤 액세스 메모리(random access memories: RAMs), 소거가능 프로그램가능 판독 전용 메모리(erasable programmable read-only memories: EPROMs), 플래시 메모리, 전기적 소거가능 프로그램가능 판독 전용 메모리(electrically erasable programmable read-only memories: EEPROMs)와 같은 반도체 디바이스, 자기 또는 광학 카드, 또는 전자 명령을 저장하기 위해 적합한 임의의 다른 유형의 매체를 포함할 수 있지만, 이들에 한정되는 것은 아니다.
본 발명이 제한된 수의 실시예와 관련하여 설명되었지만, 당 기술 분야의 숙련자들은 그로부터 수많은 수정 및 변형을 이해할 수 있을 것이다. 첨부된 청구범위는 본 발명의 진정한 사상 및 범주 내에 있는 모든 이러한 수정 및 변형을 커버하도록 의도된다.

Claims (30)

  1. 제 1 입력 포트 및 제 1 출력 포트를 포함하는 라우터를 포함하고, 상기 라우터는 네트워크 온 칩(network on a chip: NoC)의 것이고, 상기 라우터는 제어 흐름 신호의 천이(transitions)에 기초하여 상기 라우터로부터 상기 NoC의 제 2 라우터로 패킷의 통신을 가능하게 하는
    장치.
  2. 제 1 항에 있어서,
    상기 제 1 입력 포트는 상기 제 1 입력 포트에서 수신된 제 1 제어 흐름 신호의 천이에 응답하여, 상기 제 2 라우터로부터 요청의 통신을 수신하기 위한 래치(a latch)를 포함하는
    장치.
  3. 제 2 항에 있어서,
    상기 제 1 입력 포트는 다른 요청의 서비스를 위한 준비를 나타내는 상기 요청의 서비스에 응답하여 상기 제 2 라우터에 제 2 제어 흐름 신호를 송신하고 상기 래치를 개방하는
    장치.
  4. 제 3 항에 있어서,
    상기 제 2 라우터는 상기 제 2 제어 흐름 신호의 천이의 수신 전에 상기 라우터의 복수의 패킷을 통신하고, 상기 제 2 라우터의 크레디트 레벨은 상기 제 2 제어 흐름 신호의 천이에 기초하여 업데이트되는
    장치.
  5. 제 2 항에 있어서,
    상기 래치는, 폐쇄될 때, 상기 요청의 프로세싱 중에 상기 제 1 입력 포트 내로의 새로운 패킷의 삽입을 방지하는
    장치.
  6. 제 3 항에 있어서,
    상기 제 1 입력 포트는 상기 제 1 흐름 제어 신호의 천이와 연관된 패킷을 수신하고, 다른 패킷의 수신을 위한 준비를 나타내는 상기 제 2 흐름 제어 신호를 천이시키는
    장치.
  7. 제 4 항에 있어서,
    상기 라우터로의 통신 전에 상기 복수의 패킷 중 적어도 하나를 저장하기 위해 상기 라우터와 상기 제 2 라우터 사이에 결합된 버퍼를 더 포함하는
    장치.
  8. 제 1 항에 있어서,
    상기 라우터는 제 1 제어 흐름 신호 및 제 2 제어 흐름 신호를 수신하고, 상기 제 1 제어 흐름 신호 및 상기 제 2 제어 흐름 신호에 기초하여 제 3 신호를 생성하고, 상기 제 1 제어 흐름 신호 및 상기 제 2 제어 흐름 신호와 상기 제 3 신호에 기초하여 크레디트 레벨을 업데이트하기 위한 크레디트 로직을 포함하는
    장치.
  9. 제 8 항에 있어서,
    상기 제 3 신호는 상기 제 1 제어 흐름 신호의 천이에 응답하는 제 1 값 및 상기 제 2 제어 흐름 신호의 천이에 응답하는 제 2 값인
    장치.
  10. 제 8 항에 있어서,
    상기 크레디트 로직은 상기 제 2 제어 흐름 신호의 제 1 천이의 수신 전에 요청을 통신하기 위해 상기 제 2 라우터를 활성화하고, 상기 크레디트 레벨이 임계치 미만일 때 상기 제 2 라우터의 상기 요청의 통신을 방지하는
    장치.
  11. 제 1 항에 있어서,
    상기 NoC는 소스 동기식 하이브리드 패킷/회선 교환(source-synchronous hybrid packet/circuit-switched) NoC인
    장치.
  12. 제 1 항에 있어서,
    상기 라우터는 제 1 주파수 및 제 1 전압에서 동작하고, 상기 제 2 라우터는 제 2 주파수 및 제 2 전압에서 동작하는
    장치.
  13. 각각 입력 포트의 세트 및 출력 포트의 세트를 갖는 복수의 라우터를 포함하고, 상기 입력 포트 및 상기 출력 포트의 각각은 회선 교환부 및 패킷 교환부를 갖고, 소스 로직과 목적지 로직 사이의 입력 포트 및 출력 포트의 복수의 세트의 패킷 교환부는 제어 흐름 신호 천이에 기초하여 회선 교환 데이터를 통신하기 위해 상기 소스 로직과 상기 목적지 로직 사이에 회선 교환 채널을 설정하고, 상기 복수의 라우터는 소스 동기식 프로토콜에 따라 동작하는
    장치.
  14. 제 13 항에 있어서,
    상기 패킷 교환부의 각각은 요청을 저장하기 위한 버퍼를 포함하고, 상기 요청의 우선순위는 상기 패킷 교환부의 각각에서 가변적인
    장치.
  15. 제 14 항에 있어서,
    상기 버퍼는 상기 요청 중 하나와 연관된 방향 정보를 각각 저장하기 위한 복수의 엔트리를 포함하고, 최고 우선순위를 갖는 버퍼의 가용 엔트리 내의 제 1 우선순위 요청의 저장에 의해 글로벌 우선순위 순서가 유지되는
    장치.
  16. 제 15 항에 있어서,
    상기 버퍼의 입력에 결합된 제 1 선택기와,
    상기 제 1 선택기를 제어하기 위한 기록 포인터 로직 - 상기 기록 포인터 로직은 상기 방향 정보를 기록하기 위해서 버퍼의 엔트리를 선택하는 그레이 카운터(a Gray counter)를 포함함 - 과,
    상기 버퍼의 출력에 결합된 제 2 선택기와,
    상기 제 1 선택기를 제어하기 위한 판독 포인터 로직 - 상기 판독 포인터 로직은 상기 방향 정보를 판독하기 위해서 버퍼의 엔트리를 선택하는 그레이 카운터를 포함함 - 을 더 포함하는
    장치.
  17. 제 13 항에 있어서,
    제 1 요청이 상기 소스 로직과 상기 목적지 로직 사이의 상기 패킷 교환부의 각각에서 최고 우선순위를 가질 때, 상기 회선 교환 채널은 상기 제 1 요청과 연관된 데이터의 통신을 위해 설정되는
    장치.
  18. 제 17 항에 있어서,
    상기 회선 교환 채널은 상기 회선 교환 채널의 설정에 응답하여 회선 교환 데이터 통신의 복수의 데이터 세그먼트를 통신하는
    장치.
  19. 제 18 항에 있어서,
    상기 회선 교환 채널은 적어도 하나의 추가 데이터 세그먼트가 후속되는 상기 복수의 데이터 세그먼트 중의 제 1 데이터 세그먼트의 도달을 나타내는 제 1 회로 제어 흐름 신호, 상기 회선 교환 데이터 통신의 완료를 나타내는 제 2 회로 제어 흐름 신호, 및 상기 소스 로직에서 상기 복수의 데이터 패킷의 각 데이터 세그먼트의 수신을 나타내는 제 3 회로 제어 흐름 신호를 통신하는
    장치.
  20. 제 13 항에 있어서,
    상기 복수의 라우터의 각각은 시스템 온 칩(SoC)의 코어와 연관되는
    장치.
  21. 제 13 항에 있어서,
    상기 패킷 교환부는 제 1 패킷으로서 측파대(sideband) 데이터를 통신하는
    장치.
  22. 제 20 항에 있어서,
    상기 패킷 교환부는 제 2 패킷으로서 상기 회선 교환 채널의 설정을 위한 예약 요청을 통신하는
    장치.
  23. 네트워크 온 칩(NoC)의 패킷부에서, 소스 로직으로부터 목적지 로직으로 발행된 예약 요청이 상기 소스 로직과 상기 목적지 로직 사이에 결합된 복수의 라우터의 버퍼 내에 저장된 복수의 예약 요청 중에 최고 우선순위를 갖는 것으로 판정하는 단계와,
    상기 NoC의 회로부에서, 상기 소스 로직과 상기 목적지 로직 사이에 데이터 통신을 가능하게 하기 위해, 상기 소스 로직과 상기 목적지 로직 사이에 회선 교환 채널을 설정하는 단계를 포함하는
    방법.
  24. 제 23 항에 있어서,
    상기 NoC는 소스 동기식 하이브리드 패킷/회선 교환 NoC인
    방법.
  25. 제 23 항에 있어서,
    상기 목적지 로직 내의 데이터 통신의 제 1 패킷의 수신에 응답하여, 상기 소스 로직에 통신되도록 제 1 확인응답 신호의 천이를 개시하는 단계를 더 포함하는
    방법.
  26. 제 25 항에 있어서,
    상기 제 1 확인응답 신호의 천이의 수신에 응답하여 상기 소스 로직 내의 크레디트값을 업데이트하는 단계를 더 포함하는
    방법.
  27. 제 26 항에 있어서,
    상기 제 1 확인응답 신호의 천이의 수신 전에 상기 목적지 로직에 복수의 패킷을 통신하기 위해 상기 소스 로직을 활성화하는 단계를 더 포함하는
    방법.
  28. 소스 동기식 네트워크 온 칩(NoC)의 라우터와 각각 연관된 복수의 코어를 포함하는 시스템 온 칩(SoC)을 포함하고, 상기 각각의 라우터는
    입력 포트의 세트 및 출력 포트의 세트 - 상기 입력 포트 및 상기 출력 포트의 각각은 회선 교환부 및 패킷 교환부를 갖고, 소스 코어와 목적지 코어 사이의 패킷 교환부는 제어 흐름 신호 천이에 기초하여 회선 교환 데이터의 통신을 위해 회선 교환 채널을 설정함 - 와, 상기 SoC에 결합된 비휘발성 저장 장치를 포함하는
    시스템.
  29. 제 28 항에 있어서,
    제 1 패킷 교환부는 상기 제 1 패킷 교환부로부터 제 2 패킷 교환부로 패킷의 전송을 나타내는 제 1 패킷 제어 흐름 신호의 천이를 생성하고, 상기 제 2 패킷 교환부는 다른 패킷의 수신의 준비를 나타내는 제 2 패킷 제어 흐름 신호의 천이를 생성하는
    시스템.
  30. 제 29 항에 있어서,
    제 1 회선 교환부는 상기 회선 교환 데이터의 제 1 데이터 세그먼트의 도달을 나타내는 제 1 회로 제어 흐름 신호의 천이를 생성하고, 상기 회선 교환 데이터의 통신의 완료를 나타내는 제 2 회로 제어 흐름 신호의 천이를 생성하는
    시스템.
KR1020157033826A 2013-06-28 2013-06-28 소스 동기식 회선 교환 네트워크 온 칩(noc)을 위한 방법, 장치 및 시스템 KR101769757B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/048748 WO2014209391A1 (en) 2013-06-28 2013-06-28 A method, apparatus and system for a source-synchronous circuit-switched network on a chip (noc)

Publications (2)

Publication Number Publication Date
KR20160004362A true KR20160004362A (ko) 2016-01-12
KR101769757B1 KR101769757B1 (ko) 2017-08-21

Family

ID=52142512

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157033826A KR101769757B1 (ko) 2013-06-28 2013-06-28 소스 동기식 회선 교환 네트워크 온 칩(noc)을 위한 방법, 장치 및 시스템

Country Status (5)

Country Link
US (1) US9652425B2 (ko)
EP (1) EP3014818A4 (ko)
KR (1) KR101769757B1 (ko)
CN (1) CN105247817B (ko)
WO (1) WO2014209391A1 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445287B2 (en) * 2013-09-12 2019-10-15 Empire Technology Development Llc Circuit switch pre-reservation in an on-chip network
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
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)
US9680459B2 (en) 2014-12-11 2017-06-13 Intel Corporation Edge-aware synchronization of a data signal
US9680765B2 (en) 2014-12-17 2017-06-13 Intel Corporation Spatially divided circuit-switched channels for a network-on-chip
US9940236B2 (en) 2014-12-17 2018-04-10 Intel Corporation Pointer chasing across distributed memory
US9992042B2 (en) 2014-12-17 2018-06-05 Intel Corporation Pipelined hybrid packet/circuit-switched network-on-chip
US9923730B2 (en) 2014-12-17 2018-03-20 Intel Corporation System for multicast and reduction communications on a network-on-chip
US9866476B2 (en) 2014-12-17 2018-01-09 Intel Corporation Parallel direction decode circuits for network-on-chip
US11321263B2 (en) 2014-12-17 2022-05-03 Intel Corporation High bandwidth core to network-on-chip interface
US9961019B2 (en) 2014-12-22 2018-05-01 Intel Corporation Adaptively switched network-on-chip
US9787571B2 (en) 2014-12-22 2017-10-10 Intel Corporation Link delay based routing apparatus for a network-on-chip
US9979668B2 (en) 2014-12-22 2018-05-22 Intel Corporation Combined guaranteed throughput and best effort network-on-chip
US10050843B2 (en) * 2015-02-18 2018-08-14 Netspeed Systems Generation of network-on-chip layout based on user specified topological constraints
JP6481427B2 (ja) * 2015-03-10 2019-03-13 富士通株式会社 演算処理装置,情報処理装置,及び情報処理装置の制御方法
US10481203B2 (en) * 2015-04-04 2019-11-19 Nvidia Corporation Granular dynamic test systems and methods
US9864728B2 (en) * 2015-05-29 2018-01-09 Netspeed Systems, Inc. Automatic generation of physically aware aggregation/distribution networks
US11165717B2 (en) * 2015-10-26 2021-11-02 Western Digital Technologies, Inc. Fabric interconnection for memory banks based on network-on-chip methodology
US10444280B2 (en) 2015-10-27 2019-10-15 Nvidia Corporation Independent test partition clock coordination across multiple test partitions
US10243881B2 (en) 2015-10-27 2019-03-26 Western Digital Technologies, Inc. Multilayer 3D memory based on network-on-chip interconnection
KR102497804B1 (ko) * 2016-04-01 2023-02-10 한국전자통신연구원 듀얼 스위칭 네트워크 모드들에서 네트워킹 가능한 온칩 네트워크 장치 및 그것의 동작 방법
US10142258B2 (en) * 2016-04-08 2018-11-27 Advanced Micro Devices, Inc. Methods and apparatus for processing in a network on chip (NOC)
US11398980B2 (en) 2019-11-19 2022-07-26 Advanced Micro Devices, Inc. Packet router with virtual channel hop buffer control
CN112988653B (zh) * 2019-12-16 2024-04-12 广州希姆半导体科技有限公司 数据处理电路、装置以及方法
US11184245B2 (en) 2020-03-06 2021-11-23 International Business Machines Corporation Configuring computing nodes in a three-dimensional mesh topology
CN111668232B (zh) * 2020-06-19 2023-04-07 成都华微电子科技股份有限公司 集成电路芯片
US11256488B1 (en) 2020-07-29 2022-02-22 Bank Of America Corporation Graph-based vectorization for software code optimizations
US11301218B2 (en) 2020-07-29 2022-04-12 Bank Of America Corporation Graph-based vectorization for software code optimization references
KR20220102160A (ko) 2021-01-11 2022-07-20 삼성전자주식회사 패킷 전송을 위한 스위치, 그것을 갖는 네트워크 온 칩, 및 그것의 동작 방법
CN116775418B (zh) * 2023-08-22 2023-12-19 北京象帝先计算技术有限公司 一种片上网络中的路由节点、频率调整方法及电子设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266786B2 (en) * 2002-11-05 2007-09-04 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
US8064341B2 (en) 2003-10-10 2011-11-22 Nortel Networks Limited Temporal-spatial burst switching
KR100617386B1 (ko) 2004-06-03 2006-08-31 광주과학기술원 네트웍 온 칩 어플리케이션을 위한 버터플라이 팻-트리를사용한 비동기 스위치 회로
FR2883116B1 (fr) * 2005-03-08 2007-04-13 Commissariat Energie Atomique Architecture de communication globalement asynchrone pour systeme sur puce.
FR2898753B1 (fr) 2006-03-16 2008-04-18 Commissariat Energie Atomique Systeme sur puce a controle semi-distribue
US20080005402A1 (en) * 2006-04-25 2008-01-03 Samsung Electronics Co., Ltd. Gals-based network-on-chip and data transfer method thereof
EP1863232A1 (en) 2006-05-29 2007-12-05 Stmicroelectronics Sa On-chip bandwidth allocator
DE102009016742B4 (de) * 2009-04-09 2011-03-10 Technische Universität Braunschweig Carolo-Wilhelmina Mehrprozessor-Computersystem
TWI417741B (zh) 2009-09-14 2013-12-01 Univ Nat Taiwan 動態調整通道方向之方法及使用其之晶片網路架構
US8352774B2 (en) * 2010-06-23 2013-01-08 King Fahd University Of Petroleum And Minerals Inter-clock domain data transfer FIFO circuit

Also Published As

Publication number Publication date
KR101769757B1 (ko) 2017-08-21
US20150220470A1 (en) 2015-08-06
EP3014818A1 (en) 2016-05-04
WO2014209391A1 (en) 2014-12-31
CN105247817A (zh) 2016-01-13
EP3014818A4 (en) 2017-03-15
CN105247817B (zh) 2019-05-07
US9652425B2 (en) 2017-05-16

Similar Documents

Publication Publication Date Title
KR101769757B1 (ko) 소스 동기식 회선 교환 네트워크 온 칩(noc)을 위한 방법, 장치 및 시스템
EP3238391B1 (en) Adaptively switched network-on-chip
EP3235195B1 (en) Spatially divided circuit-switched channels for a network-on-chip
CN107078971B (zh) 组合保证吞吐量和尽力而为的片上网络
CN107113227B (zh) 流水线化混合分组/电路交换片上网络
US11868296B2 (en) High bandwidth core to network-on-chip interface
EP3230818A1 (en) Edge-aware synchronization of a data signal
EP3235194B1 (en) Parallel direction decode circuits for network-on-chip

Legal Events

Date Code Title Description
A201 Request for examination
PA0105 International application

Patent event date: 20151126

Patent event code: PA01051R01D

Comment text: International Patent Application

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20161111

Patent event code: PE09021S01D

PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20170515

PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20170814

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20170816

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20200730

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20210728

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20220728

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20240729

Start annual number: 8

End annual number: 8