KR101883723B1 - 인터커넥트 네트워크에서의 가변 폭 데이터 채널에 대한 효과적인 지원 - Google Patents

인터커넥트 네트워크에서의 가변 폭 데이터 채널에 대한 효과적인 지원 Download PDF

Info

Publication number
KR101883723B1
KR101883723B1 KR1020160160248A KR20160160248A KR101883723B1 KR 101883723 B1 KR101883723 B1 KR 101883723B1 KR 1020160160248 A KR1020160160248 A KR 1020160160248A KR 20160160248 A KR20160160248 A KR 20160160248A KR 101883723 B1 KR101883723 B1 KR 101883723B1
Authority
KR
South Korea
Prior art keywords
frit
field
data
flit
flow control
Prior art date
Application number
KR1020160160248A
Other languages
English (en)
Other versions
KR20170069145A (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 KR20170069145A publication Critical patent/KR20170069145A/ko
Application granted granted Critical
Publication of KR101883723B1 publication Critical patent/KR101883723B1/ko

Links

Images

Classifications

    • 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/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/41Flow control; Congestion control by acting on aggregated flows or links
    • 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/4027Coupling between buses using bus bridges
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

데이터 처리 시스템의 제1 및 제2 전자 회로를 결합하는, 브리징 회로 및 그 동작 방법. 상기 제1 전자 회로는 제1 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호를 생성하고 상기 제2 전자 회로는 제2 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호에 응답한다. 제1 플릿이 동일한 타겟 버퍼의 행선지를 가질 때, 제2 흐름 제어 프로토콜과 일치하는 제2 플릿을 제공하도록 결합되고 이러한 제2 플릿은 제2 전자 회로로 전송된다. 제2 플릿은 상기 제1 플릿으로부터 복제된 데이터 및 메타데이터 필드, 상기 제1 플릿의 각각에 공통인 공통 필드, 상기 플릿으로부터 필드의 머저를 포함하는 머지 필드 및 상기 제2 플릿의 어느 부분이 유효한 데이터를 포함하는지를 나타내는 유효성 필드를 포함하고 있다.

Description

인터커넥트 네트워크에서의 가변 폭 데이터 채널에 대한 효과적인 지원{EFFICIENT SUPPORT FOR VARIABLE WIDTH DATA CHANNELS IN AN INTERCONNECT NETWORK}
집적 회로는 예를 들어, 동작 동안 데이터가 전송될 수 있도록 상호 접속된, 프로세싱 코어, 메모리 및 주변기기와 같은 다수의 기능 블록 또는 디바이스를 포함할 수 있다. 보다 단순한 회로는 하나 이상의 공유 버스 구조를 통해 통신할 수 있다. 예를 들어, 시스템 온 칩(SoC) 회로 및 다수의 프로세싱 코어를 갖는 회로와 같은 보다 복잡한 집적 회로는 버스 또는 네트워크와 같은 전용 인터커넥트 구조를 사용하여 데이터를 전송할 수 있다.
기능 블록이 재사용되는 모듈 설계를 위해, 통신 구조의 특성은 에이알엠 리미티드의 Advanced Microcontroller Bus Architecture(AMBATM)와 같은, 표준 버스 프로토콜에 의해 규정될 수 있다.
증가하는 복잡도에 대응하기 위해, 다수의 기능 블록을 갖는 집적 회로는 기능 블록간에 효율적인 통신을 위해 인터커넥트 네트워크로서 구성될 수 있다. 데이터는 용어 Flow Control Unit 또는 Flow Control Digit을 줄인 '플릿(flit)'으로 부르는 디짓의 그룹으로 네트워크를 흘러다닌다. 각각의 플릿은 이러한 네트워크를 통한 그 흐름을 제어하기 위해 정보와 함께 페이로드를 포함하고 있다.
첨부된 도면은 다양한 실시예를 보다 완전하게 설명하는데 사용되고 실시예 및 이들의 고유의 장점을 보다 더 잘 이해하기 위해 당업자에 의해 사용될 수 있다. 도면에서, 동일한 부재 번호는 대응하는 요소를 가리킨다.
도 1a는 다양한 실시예에 따른, 네트워크의 블록도이다.
도 1b는 다양한 실시예에 따른 네트워크 인터커넥트 회로의 블록도이다.
도 2는 다양한 실시예에 따른, 디바이스와 인터커넥트 회로의 접속점 사이의 브리징 회로의 블록도이다.
도 3은 다양한 실시예에 따른, 하나의 예의 프로토콜의 플릿이 어떻게 다른 프로토콜의 더 짧은 길이의 플릿으로부터 생성되는지의 예를 설명하고 있다.
도 4는 다양한 실시예에 따른, 하나의 예의 프로토콜의 플릿이 어떻게 다른 프로토콜의 더 짧은 길이의 플릿으로부터 생성되는지의 다른 예를 설명하고 있다.
도 5a 및 도 5b는 다양한 실시예에 따른, 다른 프로토콜의 2개의 더 짧은 길이의 플릿을 결합함으로써 하나의 예의 프로토콜의 플릿이 생성될 수 있는 방법의 예를 도시하고 있다.
도 6은 다양한 실시예에 따른, 다른 프로토콜의 2개의 더 짧은 길이의 플릿으로부터 하나의 예의 프로토콜의 플릿을 생성하기 위한 브리징 회로의 블록도이다.
도 7은 다양한 실시예에 따른, 다른 프로토콜의 2개의 더 짧은 길이의 플릿으로부터 하나의 프로토콜의 예의 플릿을 생성하기 위한 방법의 순서도이다.
이러한 발명이 많은 상이한 형태로 실시예가 가능하고, 이러한 실시예가 도면에 도시되고 여기에 상세한 실시예에서 설명되지만, 이러한 실시예는 본 발명의 원리의 예이고 본 발명을 도시되고 설명된 특성 실시예로 제한하는 것은 아니다. 아래의 설명에서, 유사한 부재 번호는 다수의 도면에서 동일하거나, 유사하거나 상응하는 부분을 나타내도록 사용되어 있다.
본 발명에서, 제1, 제2, 상부 및 하부 등과 같은 상대적인 용어는 다른 엔티티 또는 동작으로부터 하나의 엔티티 또는 동작을 구별하기 위한 것이고, 반드시 이러한 엔티티 또는 동작 사이의 임의의 실제 관계 또는 순서를 나타내는 것은 아니다. 용어 "포함한다", "포함하는" 또는 임의의 다른 변형은 비배타적인 포함을 의미하여, 요소의 리스트를 포함하는 프로세스, 방법, 아티클 또는 장치는 오직 이러한 요소만을 포함하는 것이 아니고 이러한 프로세스, 방법, 아티클 또는 장치에 명확히 나열되거나 포함되지 않는 다른 요소 역시 포함할 수 있다. "포함한다" 앞의 요소는 보다 많은 제약 없이, 이러한 요소를 포함하는 프로세스, 방법, 아티클 또는 장치에 추가 동일한 요소가 존재하는 것을 배재하지 않는다.
본원의 "하나의 실시예", "특정 실시예" 또는 유사한 용어는 이러한 실시예와 관련되어 설명된 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본원의 다양한 위치에서 나타내는 이러한 표현은 반드시 동일한 실시예를 가리키는 것은 아니다. 또한, 특정 특징, 구조, 또는 특성은 하나 이상의 실시예에서 제한 없이 임의의 적절한 방식으로 결합될 수 있다.
여기에 사용되는 용어 "또는"은 포함의 의미로 또는 임의의 하나 또는 임의의 조합으로서 해석되어야 한다. 따라서, "A, B 또는 C"는 A; B; C; A와 B; A와 C; B와 C; A, B 및 C중 하나를 의미한다. 이러한 규정의 예외는 요소, 기능, 단계 또는 동작의 조합이 임의의 방식으로 상호 배타적일 때만 해당할 것이다.
설명을 단순히 하고 용이하도록 하기 위해, 부재 번호는 상응하거나 유사한 요소를 나타내도록 도면에서 반복될 수 있다. 다수의 세부사항이 여기에 기술된 실시예의 이해를 위해 제시되어 있다. 이러한 실시예는 이러한 세부사항 없이 실시될 수 있다. 다른 예에서, 주지된 방법, 프로시저 및 구성요소는 기술된 실시예를 흐리지 않도록 상세하게 설명하지 않았다. 본 설명은 여기에 기술된 실시예의 범위로 제한하기 위한 것이 아니다.
본 발명의 특정 실시예에 따라, 제1 전자 회로가 제1 흐름 제어 프로토콜의 흐름 제어 유닛(flow control unit, flit)의 디짓에 상응하는 신호를 생성하고 제2 전자 회로가 제2 흐름 제어 프로토콜의 흐름 제어 유닛(flit)의 디짓에 상응하는 신호에 응답하는, 제1 전자 회로와 제2 전자 회로 사이에 결합된 브리징 회로의 동작의 방법이 제공되어 있다. 이러한 브리징 회로 및 제1과 제2 전자 회로는 플릿이 네트워크를 통한 정보 흐름 제어를 위한 기본 유닛인, 상호접속된 디바이스의 온칩 네트워크의 일부를 구성할 수 있다. 이러한 브리징 회로는 상호접속된 디바이스의 멀티칩 네트워크의 제1과 제2 전자 회로 사이의 인터페이스의 일부일 수 있다.
이러한 플릿에 의해 인터커넥트 회로를 통해 결합된 마스터와 슬레이브 로직 유닛 사이의 트랜잭션이 실행될 수 있다. 각각의 트랜잭션은 마스터 로직 유닛으로부터 슬레이브 로직 유닛으로의 어드레스 전송 및, 이러한 마스터 로직 유닛과 슬레이브 로직 유닛 사이의 하나 이상의 데이터 전송으로 구성될 수 있다. 기록 트랜잭션에 있어서 이러한 데이터 전송은 마스터 로직 유닛으로부터 슬레이브 로직 유닛으로 통과할 것이고, 판독 트랜잭션에 있어서 이러한 데이터 전송은 슬레이브 로직 유닛으로부터 마스터 로직 유닛으로 통과할 것이다.
아래의 설명이 하나의 프로토콜의 플릿을 다른 프로토콜의 플릿에 결합하는 것과 그 반대의 것에 관한 것이지만, 이러한 방식은 다른 데이터 유닛에 적용될 수 있다. 예를 들어, 정보 패킷은 네트워크 둘레에 전송하기 위한 다수의 구성요소로 분할될 수 있다. 이러한 구성요소는 여기에 기술된 플릿 결합과 유사한 방식으로 결합될 수 있다. 이에 따라, 용어 '플릿'은 정보 패킷의 임의의 구성요소를 의미하는 것으로 인식되어야 한다.
특정 실시예에서, 제1 전자 회로는 프로세서 코어와 같은 마스터 로직 유닛, 또는 메모리 제어기 또는 다른 주변기기와 같은 슬레이브 로직 유닛일 수 있다. 제2 전자 회로는 예를 들어, 인터커넥트 회로를 포함할 수 있다.
인터커넥트 회로는 규격에 맞도록 설계될 수 있다. 예를 들어, AMBA 5 Coherent Hub Interface(ABMA 5 CHI™) 프로토콜과 같은 프로토콜은 기능 블록과 인터커넥트 회로 사이의 인터페이스를 규정한다. 이로 인해 마스터와 슬레이브 로직 유닛과 같은 기능 블록이 모듈 방식으로 설계되고 검사될 수 있다.
인터커넥트 네트워크는 계층 프로토콜을 사용하여 구성될 수 있다. 예를 들어, 인터커넥트 네트워크는 물리, 링크, 라우팅 및 프로토콜 층을 포함할 수 있다.
이러한 물리층은 네트워크의 실제 배선, 연관된 송수신기, 물리층 유닛을 전송하고 수신하는 최저 레벨의 로직을 포함하고 있다. 이러한 물리층은 하나 이상의 병렬 데이터 채널을 포함할 수 있다. 예를 들어, 데이터 채널의 폭은 32, 64 또는 128 비트일 수 있다. 물리층에서의 전송의 단위는 물리 유닛(physical unit) 또는 '핏(phit)'으로 부른다. 이러한 물리층은 단일 클록 에지에서 핏을 전송할 수 있다.
링크 계층은 흐름 제어를 구현한다. 데이터는 용어 Flow Control Unit 또는 Flow Control Digit을 줄인 '플릿(flit)'으로 부르는 디짓의 그룹으로 네트워크를 흘러다닌다. 플릿은 하나 이상의 핏으로서 통신된다. 링크 계층은 플릿을 전송하고 수신하는 기능을 갖고 있다. 각각의 플릿은 하나 이상의 핏으로서 물리층에 전송된다. 각각의 플릿은 필요하다면 플릿이 재전송될 수 있도록 에러 보정 코드를 포함할 수 있다. 이러한 링크 계층은 수신기의 버퍼가 오버플로우하지 않도록 방지하는 흐름 제어 방식을 구현할 수 있다.
네트워크 또는 라우팅 계층은 헤더 및 페이로드로 구성된 패킷을 전송한다. 이러한 헤더는 보통 행선지 및 메시지 타입을 포함하고 있다. 라우팅 계층이 유닛을 수신할 때, 이러한 유닛이 그 행선지에 도달하였는지를 결정하기 위해 그 라우팅 테이블을 조사한다. 행선지에 도달하였다면, 다음 상위 계층으로 전달된다. 도달하지 않았다면, 계속 전송된다.
캐시 일관성 프로토콜과 같은 프로토콜 계층은 기능 블록들 또는 디바이스들 사이에서 패킷을 전송하고 수신한다. 패킷은 예를 들어, 메모리 캐시 행으로부터의 데이터를 포함할 수 있다. 이러한 프로토콜 계층은 또한 캐시 일관성을 유지하기 위해 캐시 일관성 메시지를 전송하고 수신할 수 있다.
특정 네트워크는 상이한 데이터 채널 폭을 구현하거나 상이한 크기의 플릿을 사용하는 기능 블록을 포함할 수 있다. 이러한 네트워크에서, 브리징이 필요할 수 있다.
특정 실시예에서, 제1 플릿이 제1 전자 회로로부터 2개 이상의 연속 데이터 비트에 수신되고 동일한 타겟 버퍼가 행선지일 때, 제1 플릿이 제2 흐름 제어 프로토콜과 일치하는 제3 플릿을 형성하기 위해 결합된다. 그다음, 제3 플릿은 제3 플릿이 타겟 버퍼로 전송되는 제2 전자 회로로 전달된다. 제3 플릿은 제2 흐름 제어 프로토콜에 따른 구조를 갖고 있고, 예를 들어, 패킷 내의 플릿의 위치를 나타내는 데이터 식별자(dataID) 필드, 제1 플릿중 하나의 에러를 나타내는 에러 필드(RespErr)와 같은 요소를 포함하는 머지(merged) 필드와 함께, 데이터 필드 및 제1 플릿으로부터 복제된 메타데이터 필드(패리티, 에러 검출 코드, 에러 보정 코드등)를 포함할 수 있다. 또한, 제3 플릿은 제3 플릿을 위한 타겟 버퍼를 나타내는 제어 필드, 및 제3 플릿의 어느 필드가 유효 데이터를 포함하는지를 나타내는 유효성 필드를 포함할 수 있다.
도 1a는 다양한 실시예에 따른, 네트워크(100)의 블록도를 도시하고 있다. 네트워크(100)는 예를 들어, 시스템 온 칩(SoC) 집적 회로에 구현될 수 있다. 도시된 단순화된 예에서, 네트워크(100)는 노드(110)를 통해, 공유 메모리(106)와 같은 데이터 리소스, 입출력 디바이스에, 인터커넥트 회로(104)를 통해 결합된, 프로세싱 코어, 프로세싱 코어의 클러스터, 또는 (그래픽스 포스트 프로세서(GPP), 디지털 신호 프로세서(DSP), 필드 프로그래머블 게이트 어레이(FPGA) 또는 주문형 집적 회로(ASIC)와 같은 다른 디바이스와 같은, 하나 이상의 디바이스(102)를 포함하고 있다. 디바이스(102)는 데이터 액세스 요청을 생성하고 여기에서 요청 노드(RN)로 부른다. 디바이스(110)는 여기에서 홈 노드(HN)로 부른다. 다수의 RN이 데이터 또는 메모리 리소스를 공유할 때, 일관된 프로토콜이 사용될 수 있고, 디바이스는 완전히 일관된(fully coherent, 예를 들어, RN-F 및 HN-F) 또는 I/O 일관된(예를 들어, RN-I)으로 부를 수 있다. 다른 디바이스는 다른 집적 회로에 접속(connection)을 제공할 수 있다(예를 들어, RN-C 및 HN-C). 예를 들어, 클록과 같은, SoC의 많은 요소가 이해를 위해 도 1a에서 생략되었음을 유념해야 한다.
도 1b는 다양한 실시예에 따른 네트워크 인터커넥트 회로(104)의 블록도이다. 이러한 인터커넥트 회로(104)는 데이터 링크(114)에 의해 접속된 다수의 접속점(112)을 포함하고 있다. 이러한 데이터 링크는 접속점(112) 사이에서 데이터가 통과되는 물리적 채널을 제공한다. 이러한 접속점은 상호접속된 디바이스 사이의 신호 흐름을 제어하는 스위치를 포함하고 있다.
이러한 네트워크는 임의의 디바이스에 직접 결합되지 않은 추가의 링크된 스위치를 포함할 수 있다. 이러한 스위치는 다양한 토폴로지로 링크될 수 있다. 예를 들어, 각각의 스위치는 완전 접속된 네트워크를 형성하기 위해 하나 걸러 스위치에 직접 링크될 수 있거나, 이러한 스위치는 링, 메시, 하이퍼큐브, 트리, 스타 또는 다른 토폴로지를 형성하도록 일부 접속될 수 있다. 예를 들어, 링 네트워크는 메시지의 라우팅을 단순화하고 회로를 요청하지만, 완전 접속된 네트워크는 메시지가 소스로부터 행선지로 통과하도록 해야 하는 스위치 홉의 수를 최소화한다.
도시된 예에서, 모든 스위치는 접속점이다. 이러한 데이터 링크(114)는 양방향일 수 있고 데이터 전송을 위한 또는 메시지 제어를 위한 다수의 채널을 포함할 수 있다. 이러한 네트워크는 임의의 수의 접속점(112)을 포함할 수 있다.
링크(114)는 네트워크의 물리층을 제공하고, 물리층 유닛을 전송하고 수신하는 최저 레벨의 로직뿐만 아니라 실제 배선을 제공한다. 이러한 물리층에서의 전송의 유닛은 물리 유닛(physical unit) 또는 '핏(phit)'으로 부른다. 이러한 물리층은 예를 들어, 단일 클록 에지에서 핏을 전송할 수 있다.
보통, 네트워크를 통해 통신되는 메시지는 하나 이상의 정보 패킷으로 분할된다. 각각의 패킷은 패킷의 행선을 나타내는 헤더 및, 메시지를 복구하기 위해 수신시 패킷이 재조립되는 방법에 관한 정보를 포함하고 있다.
이러한 네트워크를 통한 패킷의 라우팅은 네트워크 또는 라우팅 계층에서 일어난다. 각각의 접속점(112)은 패킷의 라우팅을 가능하게 하는 스위치를 포함하고 있다. 양방향 링 네트워크에서, 예를 들어, 라우팅은 단순히, 링에서 다음 접속점으로 패킷을 포워딩하는 것 또는 그것을 접속점에 결합된 디바이스에 전달하는 것중에서 선택하는 것일 수 있다.
데이터 링크 계층에서, 정보는 다양한 기술을 사용하여 스위치 사이에서 전송될 수 있다. 패킷 스위치에서, 예를 들어, 포워딩하기 전에 완전한 패킷이 스위치에서 수신되고 버퍼링된다. 이것은 불필요하게 광대한 저장 용량을 필요로 할 수 있다. 또한, 다수의 홉이 필요한 네트워크에 대해, 이것은 패킷 지연시간(메시지가 네트워크를 횡단하는데 걸리는 시간)을 증가시킨다.
대안의 방법은 일단 패킷 헤더가 수신되면, 하지만 완전한 패킷의 수신 전에, 스위치로부터의 출력 접속과 같은, 물리적 리소스를 할당하는 '컷-스루우' 패킷 스위치를 사용하는 것이다. 이러한 방식에서, 완전한 패킷을 스위치에서 기다리거나 버퍼링할 필요가 없어 패킷 지연 시간 및 필요한 스위치 버퍼 용량이 감소된다. 이러한 방식에서, 흐름 제어(예를 들어, 출력 리소스의 허락)가 패킷 레벨에서 실행된다.
때로는 '웜홀' 스위칭으로 부르는, 이러한 방식의 변형은 흐름 제어가 실행되는, '플릿' 또는 '프레임'으로 부르는, 하나 이상의 보다 작은 유닛 또는 하위 패킷으로 각각의 패킷을 분할한다. 용어 '플릿(flit)'은 예를 들어, 'flow control unit' 또는 'flow unit' 또는 'flow control digit'의 약어이다. 보통, 플릿은 적어도 패킷 헤더를 포함할 수 있는 크기를 갖고 있다. 단일 패킷으로부터의 플릿은 다수의 스위치를 차지할 수 있다. 플릿은 패킷이 네트워크에서 막힌 경우에 네트워크의 조기 포화를 차단하기 위해 스위치에 버퍼링될 수 있다. 버퍼링에 의해 링크가 플릿 레벨에서 시분할되어 가상의 채널의 세트를 생성할 수 있다.
따라서, 온칩 네트워크에서, '패킷'은 캐시 코히어런스 프로토콜과 같은 상위 계층 프로토콜의 의미있는 단위이지만, "플릿"은 네트워크에 의해 유지되는 흐름 제어의 최소 유닛이다. 일반적으로, 패킷은 하나 이상의 수의 플릿으로 구성되어 있어, 패킷 크기가 하나의 플릿 보다 큰 경우에, 패킷은 다수의 플릿으로 분할된다.
멀티칩 모듈에서, 네트워크는 이러한 모듈에서 다른 칩으로의 링크를 가질 수 있다.
플릿은 하나 이상의 '핏(phit)' 또는 physical unit으로서 물리적 채널에서 통신되는데, 여기에서, '핏'의 크기는 물리적 채널의 폭(비트)에 상응한다. 일부 적용에서, 용어 플릿 및 핏은 동일한 의미를 갖고 있고 양측 구조는 동일한 크기를 갖는다.
많은 초고밀도 집적회로(VLSI)는 이전에 설계되고 검사된 기능 회로 블록(때로 인텔렉츄얼 프로퍼티(IP) 블록으로 불린다)이 더 큰 회로를 형성하기 위해 함께 연결되는 모듈 방식으로 구성되어 있다. 이를 위해, 공통 인터페이스가 규정되었다. 예를 들어, 인터커넥트 회로(104)는 디바이스로의 결합을 돕는 하나 이상의 규정된 인터페이스를 가질 수 있다. 특히, 인터커넥트 회로와의 인터페이스는 디바이스 회로와 인터커넥트 회로 사이의 흐름 제어 디짓(플릿)의 통신을 허용하도록 규정될 수 있다.
상이한 인터페이스에 의한 디바이스 사이의 상호접속을 위해, 도 1a의 116과 같은 브리징 회로가 제공될 수 있다. 본 발명의 특정 특징에 따라, 브리징 회로는 가변 폭 데이터 트랜잭션이 인터커넥트 네트워크에서 효과적으로 처리될 수 있도록 제공되어, 데이터 성능이 향상된다.
도 2는 다양한 실시예에 따른, 디바이스(102)와 인터커넥트 네트워크의 접속점(112) 사이의 브리징 회로(116)의 블록도이다. 이러한 예에서, 접속점(112)은 데이터를 데이터 링크(114)를 통해 수신하고 플릿을 링크(204)를 통해 스위치(206)에 전달하는 하나 이상의 링크 제어기(202)를 포함하고 있다. 이러한 스위치(206)는 플릿 버퍼(208)를 사용하여 플릿을 저장하고 다수의 가상 데이터 채널을 제공할 수 있다. 이러한 가상 채널에 의해 스위치를 통한 플릿의 멀티플렉싱이 가능하다. 플릿 내의 흐름 제어 정보는 플릿이 링크(210)를 통해 링크 제어기(212)로 포워딩되어 네트워크를 계속 도는지 여부, 또는 플릿이 브리징 회로(116)로 전달되어 디바이스(102)로 포워딩되는지 여부를 판정한다.
브리징 회로(116)는 결합 유닛(216)과 추출 유닛(220)을 포함하고 있다. 결합 유닛은 디바이스(102)로부터 플릿을 수신하고 이들을 더 긴 폭을 갖는 플릿으로 결합한다. 추출 유닛(220)은 상호접속점(112)으로부터 더 큰 폭의 플릿을 수신하고 이들로부터 더 작은 폭의 플릿을 추출한다. 이러한 예에서, 인터커넥트는 디바이스 보다 큰 폭의 플릿을 사용하지만, 다른 예에서 디바이스는 인터커넥트 더 큰 폭의 플릿을 사용할 수 있다.
브리징 회로(116)는 하나 이상의 인터페이스 프로토콜에 따라 설계될 수 있다. 예를 들어, 브리징 회로는 AMBA5™Coherent Hub Interface (CHI) 프로토콜, AMBA™ ACE 및 AXI 인터페이스, 또는 그 파생물과 같은, 에이알엠 리미티드의 AMBA5™(고급 마이크로컨트롤러 버스 아키텍쳐)에 따라 설계될 수 있다. 이러한 것들은 시스템 온 칩(SoC)의 기능 블록의 접속 및 관리를 위한 공개 표준, 온칩 인터커넥트 사양을 제공하고 다수의 제어기 및 주변기기를 갖는 멀티프로세서 설계의 '첫' 개발을 돕는다.
예를 들어, AMBA5™ CHI 아키텍쳐와 같은 아키텍쳐 사양은 상이한 데이터 채널 폭을 규정할 수 있어서 상이한 플릿 크기 및 포맷을 규정할 수 있다. 다양한 데이터 폭 또는 플릿 크기의 인터커넥트 및 디바이스를 포함하는 이기종 시스템에서, 브리징 회로는 데이터 플릿을 하나의 포맷으로부터 다른 포맷으로 전환하도록 디바이스 인터페이스에서 사용될 수 있다.
다시 도 2에서, 브리징 회로(116)는 (디바이스(102)로부터 브릿지(116)로 정보를 전송하는) 링크(224) 및 (브릿지(116)로부터 디바이스(102)로 정보를 전송하는) 링크(224)를 통해 디바이스(102)에 결합되어 있다. 브릿지(116)는 다른 타입의 디바이스에 링크될 수 있다.
도 3은 다양한 실시예에 따른, 하나의 프로토콜의 예의 플릿(304)이 다른 프로토콜의 더 짧은 길이의 플릿(302)으로부터 생성되는 방법의 예를 설명하고 있다. 도 3에서, 제1 인터페이스 프로토콜에 따른 구조를 갖는 더 짧은 폭의 플릿(302)이 제2 인터페이스 프로토콜에 따른 구조를 갖는 더 긴 폭의 플릿(304)으로 이동된다. 제1 및 제2 프로토콜은 모두 상이한 폭의 플릿을 수용하는 제3 프로토콜의 서브셋일 수 있다. 도시된 단순 예에서, 플릿(302)은 메타데이터 필드(306), 데이터 필드(310), 공통 필드(312) 및 다수의 다른 필드(308)를 포함하고 있다. 이러한 공통 필드(312) 및 다른 필드(308)는 예를 들어, 소스의 식별자 및 행선지 디바이스 및 플릿 식별자와 같은, 네트워크를 둘러싼 흐름 제어와 관련된 필드를 포함하고 있다. 메타데이터 필드(306)는 예를 들어, 데이터 패리티, 바이트 인에이블 비트, 에러 검출 코드 및 에러 보정 코드와 같은, 데이터와 관련된 정보를 포함하고 있다.
아래의 설명이 상세한 설명을 위해 128-비트 및 256-비트의 플릿 폭을 갖는 예를 사용하지만, 본 메커니즘은 다른 플릿 폭 조합에 적용가능하다. 이러한 예에서, 더 큰 플릿(304)은 더 짧은 플릿(302)의 2배의 길이를 갖는 메타데이터 필드(314) 및 데이터 필드(318)를 포함하고 있다. 이러한 필드에서, 비트는 최상위 비트를 포함하는 청크(chunk) 또는 슬롯(MSB) 및 최하위 비트를 포함하는 청크 또는 슬롯(LSB)으로서 지정될 수 있다. 하나의 실시예에서, 플릿(302)으로부터의 메타데이터 필드(306) 및 데이터 필드(310)는 상응하는 플릿(304)의 LSB 슬롯에 복제된다. 플릿(302)의 다른 필드(308)는 더 큰 플릿(304)의 상응하는 다른 필드(318)에 복제될 수 있다. 플릿(302)으로부터의 공통 필드(312)는 더 큰 플릿(304)의 공통 필드(320)에 복제된다. 특정 실시예에 따라, 추가 필드(322)가 더 큰 플릿(304)에 규정되어 있다. 이러한 필드는 필드의 청크 또는 슬롯(MSB 또는 LSB)이 유효한 정보를 포함하는지 여부를 나타내는데 사용된다. 아래에, 이러한 필드는 '청크 V' 필드로 부른다. 도 3에 도시된 예에서, 오직 LSB 필드만이 유효하다. 이러한 정보는 플릿이 그 행선지에 도달할 때 어떻게 해석되는지를 결정하는데 사용된다.
도 4는 다양한 실시예에 따른, 하나의 프로토콜의 예의 플릿(304)이 다른 프로토콜의 더 짧은 길이의 플릿(302)으로부터 어떻게 생성될 수 있는지의 다른 예를 도시하고 있다. 이러한 예에서, 플릿(302)으로부터의 데이터 및 메타데이터 정보가 플릿(304)의 MSB 필드에 놓인다. '청크V' 필드(322)는 MSB 청크만이 이러한 예에서 유효하다는 것을 보여준다.
도 3 또는 도 4에 도시된 예는 인터커넥트로의 디바이스 인터페이스에서 하나의 포맷으로부터 다른 포맷으로의 데이터 플릿의 직접 전환을 사용하는 단순한 브리징 솔루션을 제공하는데 사용될 수도 있다. 그러나, 이러한 디바이스가 인터커넥트 서포트 보다 작은 데이터 폭을 갖고 있다면, 인터커넥트 데이터 대역폭은 충분히 활용되지 않을 것이다.
본 발명의 특정 실시예는 플릿 필드의 적절한 디코드 및 조작을 통한 더 작은 데이터 플릿의 더 큰 데이터 플릿 포맷으로의 기회주의적이고 효율적인 패키징 및 전환을 위한 메커니즘과 관련되어 있다.
데이터는 데이터 비이트(beat)에 물리적 링크를 통해 전송될 수 있다. 이것들은 예를 들어, 클록 에지에 상응할 수 있다. 특정 실시예에 따라, 256-비트 정렬된 데이터 워드의 (비이트 0 및 비이트 1과 같은) 2개 이상의 연속 데이터 비이트이고 동일한 타겟 버퍼로 행선지 지정된 128-비트 데이터 플릿(동일한 타겟 ID('TgtID') 및 동일한 트랜잭션 ID('TxnID') 필드를 갖는 플릿)은 단일 256-비트 데이터 플릿에 기회주의적으로 결합되고 인터커넥트 회로에 업로드되어 타겟 버퍼로 전송된다.
2개의 128-비트 데이터 비이트가 결합될 수 없다면, 이들 비이트가 상이한 타겟을 갖거나 256-비트 데이터 워드의 연속 비이트가 아니기 때문에 또는 제2 비이트가 처음 n개의 사이클(여기에서 n은 임의의 값으로 설정될 수 있다)에서 디바이스로부터 수신되지 않을 때, 각각의 비이트는 더 큰 256-비트 데이터 플릿에 캡슐화되어, 개별적으로 전송된다.
도 5a는 다양한 실시예에 따른 다른 프로토콜의 2개의 더 짧은 길이의 플릿(302, 302')을 결합함으로써 하나의 예의 프로토콜의 플릿(304)이 어떻게 생성될 수 있는지의 예를 도시하고 있다. 이러한 예에서, 더 작은 데이터 플릿(302, 302')은 가능할 때마다 기회주의적으로 결합되어 더 큰 데이터 플릿 포맷으로 행선지에 전송된다. 예를 들어, 더 작은 데이터 플릿을 결합할 때, AMBA5™ CHI 프로토콜의 데이터 식별자('DataID') 및 응답 에러('RespErr') 필드와 같은 특정 플릿 필드는 합쳐져 더 큰 데이터 플릿 포맷과 일치하게 된다.
도 5a에서, 128-비트 플릿의 2개의 비이트(302, 302')는 단일 256-비트 데이터 플릿(304)으로 결합된다. 데이터(310) 및 메타데이터(306) 필드는 256-비트 데이터 플릿(304) 내의 각각의 필드(316, 314) 내의 이들의 고유의 위치를 차지하고, (2개의 플릿에서 동일한) 공통 필드(320)는 필드(312) 비이트0 128-비트 데이터 플릿으로부터 복제된다.
플릿(304)의 다른 필드(318)는 2개의 더 짧은 플릿으로부터 다른 필드(308)들을 합침으로써 얻어진다. 예를 들어, 에러 필드는 2개의 비이트로부터의 각각의 필드 사이의 논리 'OR' 연산을 실행함으로써 합쳐질 수 있다. 다른 합쳐진 필드는 더 큰 데이터 구조에서 데이터의 위치를 나타내는 식별자('DataID')일 수 있다. 예를 들어, 2개의 플릿이 합쳐질 때 DataID[0] 비트는 클리어될 수 있고 DataID[2:1] 비트는 비이트0으로부터 복제될 수 있다. 또한, 정보(322)는 플릿(304)과 함께 전송되어 통합 시나리오와 비통합 시나리오를 구별하거나 데이터 및 메타데이터 필드의 어느 청크 또는 슬롯이 유효한지를 나타낸다. 도 5a에서, 필드(322)의 양측 비트는 양측 데이터 청크(MSB 및 LSB)가 유효하다는 것을 나타내기 위해 세팅된다.
예를 들어, 2개의 더 작은 플릿이 더 큰 플릿으로 통합될 때, 필드(322)는 아래의 표 1에 도시된 바와 같이 3개의 타입의 데이터 플릿을 구별하는, '청크V'로 불리는, 2-비트 식별자(322)이다.
청크V[1:0] 더 큰 플릿의 내용
11 고유의 위치의 256-비트 데이터/메타데이터
01 LSB 위치의 128-비트 데이터/메타데이터
10 MSB 위치의 128-비트 데이터/메타데이터
00 규정되지 않음
상기 예가 128-비트 및 256-비트 플릿을 사용하지만, 다른 크기의 플릿이 결합될 수 있다. 예를 들어, 4개의 64-비트 플릿이 256-비트 플릿으로 결합되거나 4개의 32-비트 플릿이 128-비트 플릿으로 결합될 수도 있다.
플릿의 결합이 상술되었지만, 이러한 프로세스는 더 짧은 플릿을 갖는 프로토콜을 사용하는 디바이스에 더 큰 플릿이 전송되고자 할 때 반전될 수 있다. 예를 들어, 인터커넥트로부터 256-비트 데이터 플릿을 다운로드할 때, 청크V 필드(322)는 해독되고 이러한 플릿은 하나 또는 2개의 128-비트 데이터 비이트로 분할되어 결정적인(critical) 청크 순서로 디바이스에 전송된다. 비이트 1이 전송될 때 DataID[0] 필드가 세팅되고, 모든 다른 필드는 오리지널 256-비트 데이터 플릿으로부터 복제된다.
도 5b는 다양한 실시예에 따른, 다른 프로토콜의 4개의 더 짧은 길이의 플릿으로부터 하나의 프로토콜의 예의 플릿이 생성될 수 있는 방법의 예를 도시하고 있다. 이러한 예에서, 플릿(304)의 메타데이터(314) 및 데이터(316) 필드는 4개의 청크 또는 슬롯을 갖고 있는데, 각각의 슬롯은 다른 프로토콜의 더 짧은 플릿으로부터의 상응하는 필드를 포함하는 크기를 갖고 있다. 또한, 청크V 또는 유효성 필드(322)는 데이터 필드(316) 및 메타데이터 필드(314)의 청크 또는 슬롯의 각각에 대한 하나씩, 4-비트를 포함하고 있다.
인터커넥트를 가로지르는 데이터 전송 대역폭은 고성능 시스템에서 병목일 수 있다. 상술된 메커니즘에 의해 보다 작은 데이터 플릿을 더 큰 것으로 적절하게 결합함으로써 시스템에서 유용한 대역폭을 효과적으로 사용할 수 있다. 이로 인해 2배에 이르는 데이터 전송 대역폭 향상을 얻을 수 있다.
상술된 것과 같은 메커니즘의 부재시에, 128-비트 플릿을 지원하는 전형적인 방법은 예를 들어, 도 3 및 도 4에 도시된 바와 같이, 더 작은 플릿을 더 큰 256-비트 플릿 포맷으로 캡슐화하고 한번에 하나의 플릿을 전송하는 것이 될 것이다.
도 6은 다양한 실시예에 따른, 다른 프로토콜의 더 짧은 길이의 플릿(302)으로부터 하나의 프로토콜의 예의 플릿(304)을 생성하기 위한 브리징 회로(116)의 블록도이다. 도 6에서, 인입 더 짧은 플릿(302)은 플릿 버퍼(602)에 놓인다. 비이트 신호(606)에 응답할 수 있는 선택 로직(604)은 버퍼(602)에 저장된 2개 이상의 플릿이 더 긴 플릿(304)으로 결합될 수 있는지를 판정한다. 이러한 플릿이 결합될 수 있다면, 선택 로직(604)은 플릿을 결합하여 출력하도록 링크(608)를 통해 멀티플렉서(610)를 제어한다. 선택 로직(604)은 또한 출력(612)을 스위치(614), 멀티플렉서(616, 618), 및 머지 로직(620)에 제공하고 더 긴 플릿(304)으로의 더 짧은 플릿(302)의 할당을 제어한다. 더 짧은 플릿으로부터의 데이터(310)는 멀티플렉서(616)에 의해 더 긴 플릿의 데이터 필드(316)의 슬롯으로 멀티플렉싱된다. 이러한 예에서, N개의 더 짧은 플릿은 단일 더 긴 플릿으로 결합된다(여기에서 N은 1 보다 큰 정수이다). 더 짧은 플릿은 메타데이터(306)를 포함하고 있다. 메타데이터(306)는 예를 들어, 데이터 패리티, 에러 검출 코드, 에러 보정 코드, 및 바이트 인에이블 코드와 같은, 데이터(310)와 관련된 정보를 제공한다. 메타데이터(306)는 멀티플렉서(618)에 의해 더 긴 플릿의 메타데이터 필드(314)로 멀티플렉싱된다. 더 짧은 플릿은 플릿의 각각에서 동일한 공통 필드(312)를 포함할 수 있다. 하나의 공통 필드는 스위치(614)에 의해 선택되고 더 긴 플릿의 공통 필드(310)에 저장된다. 다른 필드(308)는 머지 로직(620)에 의해 더 긴 플릿의 다른 필드(318)에 합쳐질 수 있다. 예를 들어, 더 짧은 플릿의 에러 필드는 논리 OR 연산을 사용하여 결합되어 에러가 더 짧은 플릿중 하나에 발생하였는지를 나타낼 수 있다. 선택 로직(604)은 또한 더 긴 플릿(304)의 유효성 필드(322)에 결합되어 있다. 유효성 필드(322)는 더 긴 바이트의 어느 슬롯이 유효 데이터 및 메타데이터를 포함하고 있는지를 나타내기 위해 N-비트를 포함할 수 있다. 채워질 때, 더 긴 플릿(304)은 전송될 수 있다. 이러한 더 긴 플릿은 또한 결합될 수 없는 플릿의 전송을 가능하게 하기 위해 오직 일부만 채워졌을 때 전송될 수 있다. 이러한 브리징 회로(116)는 또한 플릿 버퍼(602)에 저장된 플릿에 타임 스탬프를 적용하도록 동작가능한 타임 스탬프 로직(624)을 포함할 수 있다.
도 7은 다양한 실시예에 따른, 다른 프로토콜의 2개의 더 짧은 길이의 플릿으로부터 하나의 프로토콜 예의 플릿을 생성하기 위한 방법의 순서도(700)이다. 이러한 프로세스는 비이트 또는 클록의 사이클에 의해 제어될 수 있다. 시작 블록 702에 이어, 시스템은 블록 704에서 다음 사이클을 기다린다. 판정 블록 706으로부터의 긍정 가지에 의해 표시된 바와 같이, 새로운 플릿이 수신되면, 새로운 플릿이 블록 708에서 플릿 버퍼에 저장된다. 판정 블록 710으로부터의 긍정 가지에 의해 표시된 바와 같이, 새로운 플릿이 버퍼에서 유일한 플릿이라면, 타이머는 블록 712에서 초기화되고 플로우는 블록 704로 복귀한다. 판정 블록 710으로부터의 부정 가지에 의해 표시된 바와 같이, 새로운 플릿이 버퍼에서 유일한 플릿이 아니라면, 이러한 버퍼 내의 플릿이 더 큰 플릿으로 통합될 수 있는지를 판정하도록 판정 블록 714에서 판정이 이루어진다. 판정 블록 714로부터의 긍정 가지에 의해 표시된 바와 같이, 이러한 플릿이 통합될 수 있다면, 플릿은 버퍼로부터 제거되고 블록 716에서 더 큰 플릿으로 통합된다. 그다음, 판정 블록 718로부터의 긍정 가지에 의해 표시된 바와 같이, 더 큰 플릿이 채워지면, 더 큰 플릿은 블록 720에서 전송된다. 판정 블록 722로부터의 긍정 가지에 의해 표시된 바와 같이, 플릿 버퍼가 비어 있다면, 흐름은 블록 704로 복귀하고, 그렇지 않으면 타이머는 블록 712에서 재초기화된다.
판정 블록 706으로부터의 부정 가지에 의해 표시된 바와 같이, 새로운 새로운 플릿이 수신되지 않으면, 흐름은 판정 블록 724로 계속된다. 판정 블록 724으로부터의 긍정 가지로 표시된 바와 같이, 버퍼가 비어 있다면, 흐름은 블록 704로 계속되고, 그렇지 않으면, 타이머는 블록 726에서 감소된다. 타이머는 또한 판정 블록 714로부터의 부정 가지에 의해 표시된 바와 같이, 버퍼 내의 플릿이 통합될 수 없다면, 또는 판정 블록(718)으로부터의 부정 가지에 의해 표시된 바와 같이, 더 큰 플릿이 채워지지 않았다면 감소된다. 판정 블록 728로부터의 부정 가지에 의해 표시된 바와 같이, 타이머가 경과하지 않았다면, 흐름은 블록 704로 복귀한다. 그렇지 않으면, 판정 블록 718로부터의 긍정 가지에 의해 표시된 바와 같이, 흐름은 판정 블록 730으로 계속된다. 더 큰 플릿이 비어 있다면, 플릿 버퍼 내의 가장 오래된 더 작은 플릿이 더 큰 플릿에 배치되고 더 큰 플릿이 블록 720으로 전송된다. 그렇지 않으면, 일부 채워진 더 큰 플릿이 블록 720에서 전송된다.
본 발명의 특정 실시예에 따라, 제1 전자 회로와 제2 전자 회로 사이에 결합된 브리징 회로의 동작의 방법에 있어서, 상기 제1 전자 회로는 제1 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호를 생성하고 상기 제2 전자 회로는 제2 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호를 전송하고, 상기 방법은,
상기 제1 전자 회로로부터 수신된 제1 플릿이 상기 제2 전자 회로에 의해 동일한 타겟 버퍼에 전송될 때:
상기 제2 흐름 제어 프로토콜과 일치하는 제2 플릿을 형성하도록 상기 제1 플릿을 결합하는 단계; 및
상기 제2 플릿을 상기 제2 전자 회로에 전송하는 단계를 포함하고,
상기 제2 플릿은 상기 제2 흐름 제어 프로토콜에 따른 구조를 갖고 있고, 상기 제2 플릿은:
상기 제1 플릿으로부터 복제된 데이터 필드를 포함하는 데이터 필드;
상기 제1 플릿으로부터 복제된 메타데이터 필드를 포함하는 메타데이터 필드;
상기 제1 플릿의 각각에 공통인 필드를 포함하는 공통 필드;
상기 제1 플릿으로부터 필드의 머저를 포함하는 머지 필드; 및
상기 제2 플릿의 어느 부분이 유효 데이터를 포함하는지를 나타내는 유효성 필드를 포함하는 브리징 회로 동작 방법이 제공되어 있다.
본 발명의 특정 다른 실시예에 따라, 제1 전자 회로와 제2 전자 회로 사이에 결합된 브리징 회로의 동작의 방법에 있어서, 상기 제1 전자 회로는 제1 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호를 생성하고 상기 제2 전자 회로는 제2 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호에 응답하고, 상기 방법은 상기 제2 전자 회로로부터 수신된 제2 플릿에 응답하여:
상기 제2 프로토콜의 제2 플릿의 각각의 유효한 청크에 대해, 상기 제2 플릿은 복수의 청크를 포함하는 데이터 필드 및 복수의 청크를 포함하는 메타데이터 필드를 포함하고,
상기 제1 프로토콜의 제1 플릿을 형성하는 단계로서, 상기 제1 플릿은,
상기 제2 플릿의 데이터 필드의 유효한 청크로부터 복제된 데이터 필드;
상기 제2 플릿의 메타데이터 필드의 유효한 청크로부터 복제된 메타데이터 필드;
상기 제2 플릿의 공통 필드로부터 복제된 공통 필드;
상기 제2 플릿의 머지 필드로부터 유도된 머지 필드를 포함하는 단계, 및
상기 제1 플릿을 상기 제1 전자 회로에 전송하는 단계를 포함하는 브리징 회로 동작 방법이 제공되어 있다.
여기에 기술된 다양한 장치 및 디바이스는 제1 전자 회로와 제2 전자 회로 사이를 결합하기 위한 브리징 회로를 포함하는 데이터 처리 시스템에 있어서, 상기 제1 전자 회로는 제1 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호를 생성하고 상기 제2 전자 회로는 제2 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호에 응답하고, 상기 브리징 회로는,
상기 제1 흐름 제어 프로토콜의 제1 플릿의 데이터 필드를 수신하고 상기 데이터 필드를 상기 제2 흐름 제어 프로토콜의 제2 플릿의 데이터 필드의 복수의 청크중 하나의 청크에 결합하는 제1 멀티플렉서로서, 데이터 필드 청크의 폭은 상기 제1 플릿의 데이터 필드의 폭과 일치하는 제1 멀티플렉서;
상기 제1 플릿의 메타데이터 필드를 수신하고 상기 메타데이터 필드를 상기 제2 플릿의 메타데이터 필드의 복수의 청크중 하나의 청크에 결합하는 제2 멀티플렉서로서, 상기 메타데이터 필드 청크의 폭은 상기 제1 플릿의 메타데이터 필드의 폭과 일치하는 제2 멀티플렉서;
상기 제1 플릿의 공통 필드를 상기 제2 플릿의 공통 필드에 결합하도록 동작가능한 스위치;
상기 제2 플릿의 머지 필드를 형성하도록 복수의 제1 플릿의 필드를 합치도록 동작가능한 머지 로직;
상기 제2 플릿의 데이터 필드의 복수의 청크중 어느 청크가 유효한 데이터를 포함하고 있는지를 나타내는 유효성 필드;를 포함하는 데이터 처리 시스템을 제공한다.
여기에 기술된 일부 또는 모든 기능들은 프로그램 명령어가 저장되지 않은, 상태 머신과 같은, 주문형 로직에 의해, 하나 이상의 주문형 집적 회로(ASIC)에서, FPGA와 같은 재구성가능한 로직에서, 또는 명령어가 저장된 하나 이상의 프로그램된 프로세서에서 구현될 수도 있다. 물론, 이러한 방식의 조합 역시 사용될 수도 있다. 따라서, 이러한 기능들을 위한 방법 및 수단이 여기에 기술되었다. 또한, 당업자는 예를 들어, 유용한 시간, 현 기술, 및 경제적인 고려사항에 의해 동기화되는 상당할 수 있는 노력 및 많은 설계 선택에도 불구하고 본원에 기술된 개념 및 원리에 의해 가이드될 때, 최소 실험으로 이러한 집적 회로, 소프트웨어 명령어 및 프로그램을 용이하게 생성할 수 있다는 것이 예상된다.
여기에 사용된 바와 같이, 용어 프로세서, 컨트롤러등은 프로세서, 컨트롤러, 마이크로컨트롤러 유닛(MCU), 마이크로프로세서, 그래픽스 프로세싱 유닛(GPU), 디지털 신호 프로세서(DSP), 필드 프로그래머블 게이트 어레이(FPGA), 주문형 집적 회로(ASIC) 디바이스, 메모리 컨트롤러 또는 I/O 마스터 디바이스를 포함할 수 있다.
당업자는 본 발명이 예시된 실시예에 대해 기술되었다는 것을 인식할 것이다(그러나 이에 한정되지는 않는다.). 본 발명은 설명되고 청구된 대로 본 발명의 등가인 전용 하드웨어 및/또는 전용 프로세서와 같은 하드웨어 컴포넌트 등가물을 사용하여 구현될 수 있다. 유사하게, 범용 컴퓨터, 마이크로프로세서 기반 컴퓨터, 마이크로컨트롤러, 광컴퓨터, 아날로그 컴퓨터, 전용 프로세서 및/또는 하드와이어드 로직이 본 발명의 대안의 등가 실시예를 구성하도록 사용될 수 있다.
또한, 당업자는 상술된 실시예를 구현하는데 사용된 프로그램 순서도 및 연관된 데이터가 본 발명으로부터 벗어남 없이 롬(ROM), 램(RAM), 이이프롬(EEPROM); 비휘발성 메모리(NVM); 하드디스크 드라이브, 플로피 디스크 드라이브, 광 디스크 드라이브와 같은 대용량 기억 장치; 광 기억 소자, 자기 기억 소자, 자기 광학 기억 소자, 플래시 메모리, 코어 메모리 및/또는 다른 등가의 기억 기술과 같은 다양한 형태의 기억장치를 사용하여 구현될 수 있다는 것을 이해할 것이다. 이러한 대안의 기억 장치는 동등한 것으로 생각해야 한다.
여기에 기술된 다양한 실시예는 임의의 적절한 전자 통신 매체를 통해 송신되거나 임의의 적절한 전자 기억 매체에 저장될 수 있는 순서도 형태로 널리 기술되는 프로그래밍 명령어를 실행하는 프로그램된 프로세서를 사용하여 구현된다. 그러나, 당업자는 상술된 프로세스가 본 발명으로부터 벗어남 없이 임의의 수의 변형 및 많은 적절한 프로그래밍 언어로 구현될 수 있다는 것을 이해할 것이다. 예를 들어, 본 발명으로부터 벗어남 없이, 수행되는 특정 동작의 순서는 자주 변할 수 있고, 추가 동작이 추가되거나 동작이 삭제될 수 있다. 본 발명으로부터 벗어남 없이 에러 트랩핑이 추가되고 및/또는 강화되고 사용자 인터페이스 및 정보 제시에 변형을 줄 수 있다. 이러한 변형은 등가물로 취급된다.
따라서, 개시된 실시예의 일부 특징은 다음과 같이 정리된다:
1. 제1 전자 회로와 제2 전자 회로 사이에 결합된 브리징 회로 동작 방법에 있어서, 상기 제1 전자 회로는 제1 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호를 생성하고 상기 제2 전자 회로는 제2 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호를 전송하고, 상기 방법은,
상기 제1 전자 회로로부터 수신된 제1 플릿이 상기 제2 전자 회로에 의해 동일한 타겟 버퍼에 전송될 때:
상기 제2 흐름 제어 프로토콜과 일치하는 제2 플릿을 형성하도록 상기 제1 플릿을 결합하는 단계; 및
상기 제2 플릿을 상기 제2 전자 회로에 전송하는 단계;를 포함하고,
상기 제2 플릿은 상기 제2 흐름 제어 프로토콜에 따른 구조를 갖고 있고, 상기 제2 플릿은:
상기 제1 플릿으로부터 복제된 데이터 필드를 포함하는 데이터 필드;
상기 제1 플릿으로부터 복제된 메타데이터 필드를 포함하는 메타데이터 필드;
상기 제1 플릿의 각각에 공통인 필드를 포함하는 공통 필드;
상기 제1 플릿으로부터 필드의 머저를 포함하는 머지 필드; 및
상기 제2 플릿의 어느 부분이 유효 데이터를 포함하는지를 나타내는 유효성 필드를 포함하는 브리징 회로 동작 방법.
2. 제1항에 있어서, 상기 제2 플릿의 머지 필드는 더 큰 데이터 필드 내의 상기 제2 플릿의 데이터 필드의 위치를 나타내는 데이터 식별자 필드; 및 상기 제1 플릿중 하나의 에러를 나타내는 에러 필드를 포함하는 브리징 회로 동작 방법.
3. 제1항에 있어서, 상기 제2 플릿의 공통 필드는 상기 제1 플릿의 소스의 식별자; 및 상기 제1 플릿의 타겟의 식별자를 포함하는 브리징 회로 동작 방법.
4. 제1항에 있어서, 상기 제1 전자 회로로부터의 2개 이상의 연속 데이터 비이트에 수신된 제1 플릿의 행선지가 동일한 타겟 버퍼일 때를 판정하는 단계를 더 포함하는 브리징 회로 동작 방법.
5. 제1항에 있어서,
상기 제1 플릿을 플릿 버퍼에 저장하는 단계;
상기 제2 흐름 제어 프로토콜에 일치하는 제2 플릿을 형성하도록 결합될 수 있는 2개 이상의 제1 플릿을 상기 플릿 버퍼로부터 선택하는 단계; 및
상기 2개 이상의 선택된 제1 플릿을 결합하여 상기 제2 플릿을 형성하는 단계를 더 포함하는 브리징 회로 동작 방법.
6. 제5항에 있어서, 상기 플릿 버퍼에 저장된 제1 플릿중 하나의 플릿이 임계값을 초과할 때,
상기 제2 흐름 제어 프로토콜과 일치하는 제2 플릿을 상기 제1 플릿으로부터 생성하는 단계; 및
상기 제2 플릿을 상기 제2 전자 회로에 전송하는 단계;를 더 포함하는 브리징 회로 동작 방법.
7. 제1항에 있어서, 상기 제2 플릿의 데이터 필드는 제1 플릿의 데이터 필드의 길이의 2배의 길이를 갖는 브리징 회로 동작 방법.
8. 제1항에 있어서, 상기 제2 플릿의 데이터 필드는 제1 플릿의 데이터 필드의 길이의 4배의 길이를 갖는 브리징 회로 동작 방법.
9. 제1항에 있어서, 상기 제1 플릿과 제2 플릿 중 적어도 하나는 정보 패킷의 구성요소를 포함하는 브리징 회로 동작 방법.
10. 제1 전자 회로와 제2 전자 회로 사이에 결합된 브리징 회로 동작 방법에 있어서, 상기 제1 전자 회로는 제1 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호를 생성하고 상기 제2 전자 회로는 제2 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호에 응답하고, 상기 방법은 상기 제2 전자 회로로부터 수신된 제2 플릿에 응답하여:
상기 제2 프로토콜의 제2 플릿의 각각의 유효한 청크에 대해, 상기 제2 플릿은 복수의 청크를 포함하는 데이터 필드 및 복수의 청크를 포함하는 메타데이터 필드를 포함하고,
상기 제1 프로토콜의 제1 플릿을 형성하는 단계로서, 상기 제1 플릿은,
상기 제2 플릿의 데이터 필드의 유효한 청크로부터 복제된 데이터 필드;
상기 제2 플릿의 메타데이터 필드의 유효한 청크로부터 복제된 메타데이터 필드;
상기 제2 플릿의 공통 필드로부터 복제된 공통 필드;
상기 제2 플릿의 머지 필드로부터 유도된 머지 필드;를 포함하는 단계, 및
상기 제1 플릿을 상기 제1 전자 회로에 전송하는 단계;를 포함하는 브리징 회로 동작 방법.
11. 제10항에 있어서, 상기 제1 플릿의 머지 필드를 형성하는 단계는,
상기 제2 플릿의 데이터 식별자에 의존하는 데이터 식별자 및 상기 제2 플릿의 데이터 필드의 복수의 청크 내의 데이터 필드의 유효한 청크의 위치를 결정하는 단계를 포함하는 브리징 회로 동작 방법.
12. 제10항에 있어서, 상기 제1 플릿과 제2 플릿중 적어도 하나는 정보 패킷의 구성요소를 포함하는 브리징 회로 동작 방법.
13. 제1 전자 회로와 제2 전자 회로 사이를 결합하기 위한 브리징 회로를 포함하는 데이터 처리 시스템에 있어서, 상기 제1 전자 회로는 제1 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호를 생성하고 상기 제2 전자 회로는 제2 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호에 응답하고, 상기 브리징 회로는,
상기 제1 흐름 제어 프로토콜의 제1 플릿의 데이터 필드를 수신하고 상기 데이터 필드를 상기 제2 흐름 제어 프로토콜의 제2 플릿의 데이터 필드의 복수의 청크중 하나의 청크에 결합하는 제1 멀티플렉서로서, 데이터 필드 청크의 폭은 상기 제1 플릿의 데이터 필드의 폭과 일치하는 제1 멀티플렉서;
상기 제1 플릿의 메타데이터 필드를 수신하고 상기 메타데이터 필드를 상기 제2 플릿의 메타데이터 필드의 복수의 청크중 하나의 청크에 결합하는 제2 멀티플렉서로서, 상기 메타데이터 필드 청크의 폭은 상기 제1 플릿의 메타데이터 필드의 폭과 일치하는 제2 멀티플렉서;
상기 제1 플릿의 공통 필드를 상기 제2 플릿의 공통 필드에 결합하도록 동작가능한 스위치;
상기 제2 플릿의 머지 필드를 형성하도록 복수의 제1 플릿의 필드를 합치도록 동작가능한 머지 로직;
상기 제2 플릿의 데이터 필드의 복수의 청크중 어느 청크가 유효한 데이터를 포함하고 있는지를 나타내는 유효성 필드;를 포함하는 데이터 처리 시스템.
14. 제13항에 있어서, 상기 브리징 회로는,
상기 복수의 제1 플릿을 저장하도록 동작가능한 플릿 버퍼;
결합되는 2개 이상의 제1 플릿을 상기 플릿 버퍼에 저장된 복수의 제1 플릿으로부터 결정하도록 동작가능한 선택 로직; 및
상기 결합되는 2개 이상의 제1 플릿을 선택하도록 동작가능한 멀티플렉서;를 더 포함하는 데이터 처리 시스템.
15. 제14항에 있어서, 상기 브리징 회로는,
상기 플릿 버퍼에 저장된 각각의 플릿과 타임 스탬프를 연관시키도록 동작가능한 타임 스탬프 로직을 더 포함하고,
상기 선택 로직은 임의의 플릿이 상기 플릿 버퍼에 저장되는 시간을 제한하기 위해 상기 타임 스탬프에 응답하는 데이터 처리 시스템.
16. 제13항에 있어서, 상기 브리징 회로는 제1 물리적 링크를 통해 제1 집적 회로에 결합하고 제2 물리적 링크를 통해 제2 집적 회로에 결합하고, 상기 제1 물리적 링크의 폭은 상기 제1 플릿의 길이와 일치하고 상기 제2 물리적 링크의 폭은 상기 제2 플릿의 길이에 일치하는 데이터 처리 시스템.
17. 제13항에 있어서, 상기 브리징 회로는 제1 물리적 링크를 통해 제1 집적 회로에 결합하고 제2 물리적 링크를 통해 제2 집적 회로에 결합하고, 상기 제1 플릿의 길이는 상기 제1 물리적 링크의 폭의 정수배이고 상기 제2 플릿의 길이는 상기 제2 물리적 링크의 폭의 정수배인 데이터 처리 시스템.
18. 제13항에 있어서,
상기 제1 전자 회로;
상기 제2 전자 회로; 및
데이터 리소스;를 더 포함하고,
상기 제1 전자 회로는 하나 이상의 프로세서를 포함하고, 상기 제2 전자 회로는 상기 하나 이상의 프로세서와 상기 데이터 리소스 사이를 상기 브리징 회로를 통해 결합하는 인터커넥트 회로를 포함하는 데이터 처리 시스템.
19. 제13항에 있어서,
상기 제1 전자 회로;
상기 제2 전자 회로; 및
데이터 리소스;를 더 포함하고,
상기 제2 전자 회로는 하나 이상의 프로세서를 포함하고, 상기 제1 전자 회로는 상기 하나 이상의 프로세서와 상기 데이터 리소스 사이를 상기 브리징 회로를 통해 결합하는 인터커넥트 회로를 포함하는 데이터 처리 시스템.
20. 제13항에 있어서,
상기 제1 전자 회로;
상기 제2 전자 회로; 및
하나 이상의 프로세서;를 더 포함하고,
상기 제1 전자 회로는 데이터 리소스를 포함하고, 상기 제2 전자 회로는 상기 하나 이상의 프로세서와 상기 데이터 리소스 사이를 상기 브리징 회로를 통해 결합하는 인터커넥트 회로를 포함하는 데이터 처리 시스템.
21. 제13항의 데이터 처리 시스템을 기술한 하드웨어 기술 언어의 명령어를 저장하는 비임시 컴퓨터 판독가능 매체.
여기에 상세하게 설명된 다양한 실시예는 예시로 제시되어 있고 제한을 위한 것은 아니다. 당업자는 설명된 실시예의 형태 및 세부사항의 변경이 첨부된 청구범위에 있는 등가의 실시예가 될 수 있다는 것을 이해할 것이다.

Claims (21)

  1. 네트워크의 제1 장치와 인터커넥트 회로 사이에 결합된 브리징 회로의 동작에 의해 네트워크의 상기 인터커넥트 회로의 대역폭을 증가시키는 방법으로서, 상기 제1 장치는 제1 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호를 생성하고 상기 인터커넥트 회로는 상기 인터커넥트 회로의 하나 이상의 버퍼를 통해 상기 네트워크의 상기 제1 장치로부터 제2 장치로의 제2 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호를 전송하고, 상기 방법은,
    상기 브리징 회로에서 상기 제1 장치로부터의 2개 이상의 제1 플릿을 수신하는 단계;
    상기 제1 장치로부터 수신된 상기 2개 이상의 제1 플릿이 상기 인터커넥트 회로에 의해 상기 하나 이상의 버퍼들 중 동일한 타겟 버퍼에 전송될 때:
    상기 제2 흐름 제어 프로토콜과 일치하는 단일한 제2 플릿을 형성하도록 상기 2개 이상의 제1 플릿을 결합하는 단계; 및
    상기 인터커넥트 회로의 상기 타겟 버퍼를 통해 상기 단일한 제2 플릿을 상기 브리징 회로로부터 상기 제2 장치에 전송하고, 그에 의해 상기 인터커넥트 회로를 통해 전송된 플릿의 수는 2 이상의 팩터만큼 감소되고 상기 인터커넥트 회로의 대역폭이 증가되는 단계;
    를 포함하고,
    상기 2개 이상의 제1 플릿의 각각의 플릿은 데이터 필드, 메타데이터 필드, 공통 필드, 및 적어도 하나의 기타 필드를 포함하고,
    단일한 제2 플릿을 형성하기 위해 상기 2개 이상의 제1 플릿을 결합하는 단계는:
    상기 2개 이상의 제1 플릿으로부터의 데이터 필드를 상기 제2 플릿의 데이터 필드로 복제하는 단계;
    상기 2개 이상의 제1 플릿으로부터의 메타데이터 필드를 상기 제2 플릿의 메타데이터 필드로 복제하는 단계;
    상기 2개 이상의 제1 플릿 중 하나로부터의 공통 필드를 상기 제2 플릿의 공통 필드로 복제하는 단계;
    상기 제2 플릿의 머지 필드를 형성하기 위해 상기 2개 이상의 제1 플릿의 적어도 하나의 기타 필드를 통합하는 단계; 및
    상기 제2 플릿의 어느 부분이 유효 데이터를 포함하는지를 나타내는 상기 제2 플릿의 유효성 필드를 생성하는 단계;
    를 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
  2. 제1항에 있어서, 상기 제2 플릿의 머지 필드는 더 큰 데이터 필드 내의 상기 제2 플릿의 데이터 필드의 위치를 나타내는 데이터 식별자 필드; 및 상기 제1 플릿중 하나의 에러를 나타내는 에러 필드를 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
  3. 제1항에 있어서, 상기 제2 플릿의 공통 필드는 상기 제1 플릿의 소스의 식별자; 및 상기 제1 플릿의 타겟의 식별자를 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
  4. 제1항에 있어서, 상기 제1 플릿은 2개 이상의 데이터 비이트에 대한 상기 네트워크의 상기 제1 장치로부터의 물리적 링크 상에서 수신되고, 상기 제1 플릿이 상기 네트워크의 상기 제1 장치로부터의 2개 이상의 연속 데이터 비이트에 수신되고 상기 제1 플릿이 동일한 타겟 버퍼를 행선지로 할 때 상기 제2 흐름 제어 프로토콜과 일치하는 제2 플릿을 형성하도록 상기 제1 플릿을 결합하는 단계가 수행되는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
  5. 제1항에 있어서,
    상기 제1 플릿을 플릿 버퍼에 저장하는 단계;
    상기 제2 흐름 제어 프로토콜에 일치하는 제2 플릿을 형성하도록 결합될 수 있는 2개 이상의 제1 플릿을 상기 플릿 버퍼로부터 선택하는 단계; 및
    상기 2개 이상의 선택된 제1 플릿을 결합하여 상기 제2 플릿을 형성하는 단계;를 더 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
  6. 제5항에 있어서, 상기 플릿 버퍼에 저장된 제1 플릿중 하나의 플릿이 임계값을 초과할 때,
    상기 제2 흐름 제어 프로토콜과 일치하는 제2 플릿을 상기 제1 플릿으로부터 생성하는 단계; 및
    상기 제2 플릿을 상기 네트워크의 상기 제2 장치에 전송하는 단계;를 더 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
  7. 제1항에 있어서, 상기 제2 플릿의 데이터 필드는 제1 플릿의 데이터 필드의 길이의 2배의 길이를 갖는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
  8. 제1항에 있어서, 상기 제2 플릿의 데이터 필드는 제1 플릿의 데이터 필드의 길이의 4배의 길이를 갖는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
  9. 제1항에 있어서, 상기 제1 플릿과 제2 플릿 중 적어도 하나는 정보 패킷의 구성요소를 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
  10. 제1 항에 있어서,
    상기 브리징 회로에 의해, 복수의 데이터 청크를 구비하는 데이터 필드와 복수의 메타데이터 청크를 구비하는 메타데이터 필드를 포함하며 상기 제2 흐름 제어 프로토콜과 일치하는 제3 플릿을 상기 인터커넥트 회로로부터 수신하는 단계;
    상기 제2 플릿의 유효성 필드내의 데이터로부터 상기 제3 플릿의 복수의 데이터 청크의 유효한 데이터 청크를 식별하는 단계;
    상기 제2 흐름 제어 프로토콜의 상기 제3 플릿의 각각의 유효한 데이터 청크에 대해,
    상기 제1 흐름 제어 프로토콜과 일치하는 제4 플릿을 형성하는 단계로서, 상기 제4 플릿은:
    상기 제3 플릿의 데이터 필드의 상응하는 유효한 데이터 청크로부터 복제된 데이터 청크를 구비하는 데이터 필드;
    상기 제3 플릿의 상기 메타데이터 필드의 상응하는 유효한 메타데이터 청크로부터 복제된 메타데이터 청크를 구비하는 메타데이터 필드;
    상기 제3 플릿의 공통 필드로부터 복제된 데이터를 구비하는 공통 필드; 및
    상기 제3 플릿의 머지 필드로부터 유도된 데이터를 구비하는 머지 필드;
    를 구비하는 상기 제4 플릿을 형성하는 단계; 및
    상기 제4 플릿을 상기 제1 장치에 전송하는 단계;
    를 더 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
  11. 제10항에 있어서, 상기 제4 플릿의 상기 머지 필드를 형성하는 단계는,
    상기 제3 플릿의 데이터 식별자에 의존하는 데이터 식별자 및 상기 제3 플릿의 데이터 필드 내의 유효한 데이터 청크의 위치를 결정하는 단계를 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
  12. 제10항에 있어서, 상기 제4 플릿과 제3 플릿중 적어도 하나는 정보 패킷의 구성요소를 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
  13. 인터커넥트 회로 및 네트워크의 제1 장치와 상기 인터커넥트 회로 사이를 결합하기 위한 브리징 회로를 포함하는 데이터 처리 네트워크로서, 상기 제1 장치는 제1 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호를 생성하고 상기 인터커넥트 회로는 제2 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, flit)의 디짓에 상응하는 신호를 상기 네트워크의 제2 장치로 전송하도록 동작가능한 상기 데이터 처리 네트워크에 있어서, 상기 브리징 회로는:
    상기 제1 장치로부터 수신된 상기 제1 흐름 제어 프로토콜의 복수의 제1 플릿을 저장하도록 동작가능한 플릿 버퍼;
    상기 플릿 버퍼에 저장된 상기 복수의 제1 플릿으로부터 결합될 2개 이상의 제1 플릿을 결정하도록 동작가능한 선택 로직;
    그런 다음 결합될 상기 2개 이상의 제1 플릿 각각을 선택하도록 동작가능한 제1 멀티플렉서;
    결합될 상기 제1 플릿 중 선택된 상기 제1 플릿의 데이터 필드를 수신하고 상기 데이터 필드를 상기 제2 흐름 제어 프로토콜의 제2 플릿의 데이터 필드의 복수의 청크중 하나의 청크에 결합하는 제2 멀티플렉서로서, 상기 데이터 필드 청크의 폭은 상기 선택된 제1 플릿의 데이터 필드의 폭과 일치하는 상기 제2 멀티플렉서;
    상기 선택된 제1 플릿의 메타데이터 필드를 수신하고 상기 메타데이터 필드를 상기 제2 플릿의 메타데이터 필드의 복수의 청크중 하나의 청크에 결합하는 제3 멀티플렉서로서, 상기 메타데이터 필드 청크의 폭은 상기 선택된 제1 플릿의 메타데이터 필드의 폭과 일치하는 상기 제3 멀티플렉서;
    상기 제1 플릿의 공통 필드를 상기 제2 플릿의 공통 필드에 결합하도록 동작가능한 스위치; 및
    상기 제2 플릿의 머지 필드를 형성하도록 복수의 제1 플릿의 필드를 합치도록 동작가능한 머지 로직;
    을 포함하고,
    상기 선택 로직은 상기 제2 플릿의 데이터 필드의 복수의 청크 중 어느 청크가 유효한 데이터를 포함하고 있는지를 나타내는 유효성 필드를 상기 제2 플릿에 기록하도록 구성되고,
    상기 브리징 회로는 상기 제2 장치로의 전송을 위해 상기 인터커넥트 회로로 상기 제2 플릿을 전송하여 상기 인터커넥트 회로를 통해 전송된 제2 플릿의 수가 상기 제1 장치로부터 상기 브리징 회로에 의해 수신된 제1 플릿의 수보다 작고 상기 인터커넥트 회로의 대역폭이 증가되도록 더 구성되는 것을 특징으로 하는 데이터 처리 네트워크.
  14. 삭제
  15. 제13항에 있어서, 상기 브리징 회로는,
    상기 플릿 버퍼에 저장된 각각의 플릿과 타임 스탬프를 연관시키도록 동작가능한 타임 스탬프 로직을 더 포함하고,
    상기 선택 로직은 임의의 플릿이 상기 플릿 버퍼에 저장되는 시간을 제한하기 위해 상기 타임 스탬프에 응답하는 것을 특징으로 하는 데이터 처리 네트워크.
  16. 제13항에 있어서, 상기 브리징 회로는 제1 물리적 링크를 통해 상기 제1 장치에 결합하고 제2 물리적 링크를 통해 상기 인터커넥트 회로에 결합하고, 상기 제1 물리적 링크의 폭은 상기 제1 플릿의 길이와 일치하고 상기 제2 물리적 링크의 폭은 상기 제2 플릿의 길이와 일치하는 것을 특징으로 하는 데이터 처리 네트워크.
  17. 제13항에 있어서, 상기 브리징 회로는 제1 물리적 링크를 통해 상기 제1 장치에 결합하고 제2 물리적 링크를 통해 상기 인터커넥트 회로에 결합하고, 상기 제1 플릿의 길이는 상기 제1 물리적 링크의 폭의 정수배이고 상기 제2 플릿의 길이는 상기 제2 물리적 링크의 폭의 정수배인 것을 특징으로 하는 데이터 처리 네트워크.
  18. 제13항에 있어서,
    상기 제1 장치; 및
    데이터 리소스;
    를 더 포함하고,
    상기 제1 장치는 하나 이상의 프로세서를 포함하고, 상기 인터커넥트 회로는 상기 하나 이상의 프로세서와 상기 데이터 리소스 사이를 상기 브리징 회로를 통해 결합하는 것을 특징으로 하는 데이터 처리 네트워크.
  19. 제13항에 있어서,
    상기 제1 장치; 및
    데이터 리소스;
    를 더 포함하고,
    상기 제2 장치는 하나 이상의 프로세서를 포함하고, 상기 인터커넥트 회로는 상기 하나 이상의 프로세서와 상기 데이터 리소스 사이를 상기 브리징 회로를 통해 결합하는 것을 특징으로 하는 데이터 처리 네트워크.
  20. 제13항에 있어서,
    상기 제1 장치; 및
    하나 이상의 프로세서;
    를 더 포함하고,
    상기 제1 장치는 데이터 리소스를 포함하고, 상기 인터커넥트 회로는 상기 하나 이상의 프로세서와 상기 데이터 리소스 사이를 상기 브리징 회로를 통해 결합하는 것을 특징으로 하는 데이터 처리 네트워크.
  21. 제13항의 데이터 처리 네트워크를 기술한 하드웨어 기술 언어의 명령어를 저장하는 비임시 컴퓨터 판독가능 매체.
KR1020160160248A 2015-12-10 2016-11-29 인터커넥트 네트워크에서의 가변 폭 데이터 채널에 대한 효과적인 지원 KR101883723B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/965,237 2015-12-10
US14/965,237 US9900260B2 (en) 2015-12-10 2015-12-10 Efficient support for variable width data channels in an interconnect network

Publications (2)

Publication Number Publication Date
KR20170069145A KR20170069145A (ko) 2017-06-20
KR101883723B1 true KR101883723B1 (ko) 2018-07-31

Family

ID=57570931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160160248A KR101883723B1 (ko) 2015-12-10 2016-11-29 인터커넥트 네트워크에서의 가변 폭 데이터 채널에 대한 효과적인 지원

Country Status (3)

Country Link
US (1) US9900260B2 (ko)
KR (1) KR101883723B1 (ko)
GB (1) GB2545299B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489323B2 (en) * 2016-12-20 2019-11-26 Arm Limited Data processing system for a home node to authorize a master to bypass the home node to directly send data to a slave
US10614000B2 (en) * 2018-05-04 2020-04-07 Intel Corporation High bandwidth link layer for coherent messages
CN112039694B (zh) * 2020-08-18 2023-03-24 烽火通信科技股份有限公司 一种通信网络设备时钟配置管理方法与装置
US11880686B2 (en) * 2022-06-16 2024-01-23 Ampere Computing Llc Devices transferring cache lines, including metadata on external links
CN115473946B (zh) * 2022-11-11 2023-03-24 北京超摩科技有限公司 跨协议芯片数据传输设备及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150103822A1 (en) 2013-10-15 2015-04-16 Netspeed Systems Noc interface protocol adaptive to varied host interface protocols

Family Cites Families (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966729A (en) 1997-06-30 1999-10-12 Sun Microsystems, Inc. Snoop filter for use in multiprocessor computer systems
US6480927B1 (en) 1997-12-31 2002-11-12 Unisys Corporation High-performance modular memory system with crossbar connections
US6519685B1 (en) 1999-12-22 2003-02-11 Intel Corporation Cache states for multiprocessor cache coherency protocols
US6546447B1 (en) 2000-03-30 2003-04-08 International Business Machines Corporation Method and apparatus for dynamic PCI combining for PCI bridges
US6598123B1 (en) 2000-06-28 2003-07-22 Intel Corporation Snoop filter line replacement for reduction of back invalidates in multi-node architectures
US6810467B1 (en) 2000-08-21 2004-10-26 Intel Corporation Method and apparatus for centralized snoop filtering
US6868481B1 (en) 2000-10-31 2005-03-15 Hewlett-Packard Development Company, L.P. Cache coherence protocol for a multiple bus multiprocessor system
US7234029B2 (en) 2000-12-28 2007-06-19 Intel Corporation Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US6859864B2 (en) 2000-12-29 2005-02-22 Intel Corporation Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line
US6823409B2 (en) 2001-09-28 2004-11-23 Hewlett-Packard Development Company, L.P. Coherency control module for maintaining cache coherency in a multi-processor-bus system
US7673090B2 (en) 2001-12-19 2010-03-02 Intel Corporation Hot plug interface control method and apparatus
US7117311B1 (en) 2001-12-19 2006-10-03 Intel Corporation Hot plug cache coherent interface method and apparatus
US6912612B2 (en) 2002-02-25 2005-06-28 Intel Corporation Shared bypass bus structure
US6959364B2 (en) 2002-06-28 2005-10-25 Intel Corporation Partially inclusive snoop filter
US7093079B2 (en) 2002-12-17 2006-08-15 Intel Corporation Snoop filter bypass
GB2403561A (en) 2003-07-02 2005-01-05 Advanced Risc Mach Ltd Power control within a coherent multi-processor system
US7117312B1 (en) 2003-11-17 2006-10-03 Sun Microsystems, Inc. Mechanism and method employing a plurality of hash functions for cache snoop filtering
US7325102B1 (en) 2003-11-17 2008-01-29 Sun Microsystems, Inc. Mechanism and method for cache snoop filtering
US7240165B2 (en) 2004-01-15 2007-07-03 Hewlett-Packard Development Company, L.P. System and method for providing parallel data requests
US7974191B2 (en) 2004-03-10 2011-07-05 Alcatel-Lucent Usa Inc. Method, apparatus and system for the synchronized combining of packet data
US7698509B1 (en) 2004-07-13 2010-04-13 Oracle America, Inc. Snooping-based cache-coherence filter for a point-to-point connected multiprocessing node
US7305524B2 (en) 2004-10-08 2007-12-04 International Business Machines Corporation Snoop filter directory mechanism in coherency shared memory system
US8332592B2 (en) 2004-10-08 2012-12-11 International Business Machines Corporation Graphics processor with snoop filter
US7392351B2 (en) 2005-03-29 2008-06-24 International Business Machines Corporation Method and apparatus for filtering snoop requests using stream registers
US7383397B2 (en) 2005-03-29 2008-06-03 International Business Machines Corporation Method and apparatus for filtering snoop requests using a scoreboard
US7380071B2 (en) 2005-03-29 2008-05-27 International Business Machines Corporation Snoop filtering system in a multiprocessor system
US7373462B2 (en) 2005-03-29 2008-05-13 International Business Machines Corporation Snoop filter for filtering snoop requests
US20070005899A1 (en) 2005-06-30 2007-01-04 Sistla Krishnakanth V Processing multicore evictions in a CMP multiprocessor
CN100524266C (zh) 2005-07-11 2009-08-05 辉达公司 在总线上以包的形式传输数据传输请求的方法及设备
US8250229B2 (en) 2005-09-29 2012-08-21 International Business Machines Corporation Internet protocol security (IPSEC) packet processing for multiple clients sharing a single network address
US7366847B2 (en) 2006-02-06 2008-04-29 Azul Systems, Inc. Distributed cache coherence at scalable requestor filter pipes that accumulate invalidation acknowledgements from other requestor filter pipes using ordering messages from central snoop tag
US7383398B2 (en) 2006-03-31 2008-06-03 Intel Corporation Preselecting E/M line replacement technique for a snoop filter
US20080005486A1 (en) 2006-06-29 2008-01-03 Mannava Phanindra K Coordination of snoop responses in a multi-processor system
US7581068B2 (en) 2006-06-29 2009-08-25 Intel Corporation Exclusive ownership snoop filter
US7836144B2 (en) 2006-12-29 2010-11-16 Intel Corporation System and method for a 3-hop cache coherency protocol
US7613882B1 (en) 2007-01-29 2009-11-03 3 Leaf Systems Fast invalidation for cache coherency in distributed shared memory system
US7685409B2 (en) 2007-02-21 2010-03-23 Qualcomm Incorporated On-demand multi-thread multimedia processor
US7937535B2 (en) 2007-02-22 2011-05-03 Arm Limited Managing cache coherency in a data processing apparatus
US7640401B2 (en) 2007-03-26 2009-12-29 Advanced Micro Devices, Inc. Remote hit predictor
US7996626B2 (en) 2007-12-13 2011-08-09 Dell Products L.P. Snoop filter optimization
US9058272B1 (en) 2008-04-25 2015-06-16 Marvell International Ltd. Method and apparatus having a snoop filter decoupled from an associated cache and a buffer for replacement line addresses
US8015365B2 (en) 2008-05-30 2011-09-06 Intel Corporation Reducing back invalidation transactions from a snoop filter
US7925840B2 (en) 2008-09-05 2011-04-12 Arm Limited Data processing apparatus and method for managing snoop operations
US8423736B2 (en) 2010-06-16 2013-04-16 International Business Machines Corporation Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US8392665B2 (en) 2010-09-25 2013-03-05 Intel Corporation Allocation and write policy for a glueless area-efficient directory cache for hotly contested cache lines
JP5543894B2 (ja) * 2010-10-21 2014-07-09 ルネサスエレクトロニクス株式会社 NoCシステム及び入力切替装置
JP5913912B2 (ja) * 2010-11-05 2016-04-27 インテル コーポレイション Dragonflyプロセッサ相互接続ネットワークにおける革新的な適応型ルーティング
US8935485B2 (en) 2011-08-08 2015-01-13 Arm Limited Snoop filter and non-inclusive shared cache memory
US9477600B2 (en) 2011-08-08 2016-10-25 Arm Limited Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
US8514889B2 (en) * 2011-08-26 2013-08-20 Sonics, Inc. Use of common data format to facilitate link width conversion in a router with flexible link widths
US8638789B1 (en) 2012-05-04 2014-01-28 Google Inc. Optimal multicast forwarding in OpenFlow based networks
US9235519B2 (en) 2012-07-30 2016-01-12 Futurewei Technologies, Inc. Method for peer to peer cache forwarding
US20140095807A1 (en) 2012-09-28 2014-04-03 Qualcomm Technologies, Inc. Adaptive tuning of snoops
US20140095801A1 (en) 2012-09-28 2014-04-03 Devadatta V. Bodas System and method for retaining coherent cache contents during deep power-down operations
US20140095806A1 (en) 2012-09-29 2014-04-03 Carlos A. Flores Fajardo Configurable snoop filter architecture
US10073779B2 (en) 2012-12-28 2018-09-11 Intel Corporation Processors having virtually clustered cores and cache slices
US9304923B2 (en) 2013-03-12 2016-04-05 Arm Limited Data coherency management
US8935453B2 (en) 2013-03-15 2015-01-13 Intel Corporation Completion combining to improve effective link bandwidth by disposing at end of two-end link a matching engine for outstanding non-posted transactions
US9361236B2 (en) 2013-06-18 2016-06-07 Arm Limited Handling write requests for a data array
US20150074357A1 (en) 2013-09-09 2015-03-12 Qualcomm Incorporated Direct snoop intervention
US9244845B2 (en) 2014-05-12 2016-01-26 Netspeed Systems System and method for improving snoop performance
US9166936B1 (en) * 2014-06-26 2015-10-20 Parlant Technology, Inc. Message customization
KR102173089B1 (ko) 2014-08-08 2020-11-04 삼성전자주식회사 인터페이스 회로 및 그것의 패킷 전송 방법
US9311244B2 (en) 2014-08-25 2016-04-12 Arm Limited Enforcing ordering of snoop transactions in an interconnect for an integrated circuit
US9727466B2 (en) 2014-08-26 2017-08-08 Arm Limited Interconnect and method of managing a snoop filter for an interconnect
US9639470B2 (en) 2014-08-26 2017-05-02 Arm Limited Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit
US9507716B2 (en) 2014-08-26 2016-11-29 Arm Limited Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit
US9575893B2 (en) 2014-10-22 2017-02-21 Mediatek Inc. Snoop filter for multi-processor system and related snoop filtering method
US9886382B2 (en) 2014-11-20 2018-02-06 International Business Machines Corporation Configuration based cache coherency protocol selection
US9727464B2 (en) 2014-11-20 2017-08-08 International Business Machines Corporation Nested cache coherency protocol in a tiered multi-node computer system
US11237965B2 (en) 2014-12-31 2022-02-01 Arteris, Inc. Configurable snoop filters for cache coherent systems
US20160210231A1 (en) 2015-01-21 2016-07-21 Mediatek Singapore Pte. Ltd. Heterogeneous system architecture for shared memory
US9720838B2 (en) * 2015-03-27 2017-08-01 Intel Corporation Shared buffered memory routing
US10157133B2 (en) 2015-12-10 2018-12-18 Arm Limited Snoop filter for cache coherency in a data processing system
US20170185515A1 (en) 2015-12-26 2017-06-29 Bahaa Fahim Cpu remote snoop filtering mechanism for field programmable gate array

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150103822A1 (en) 2013-10-15 2015-04-16 Netspeed Systems Noc interface protocol adaptive to varied host interface protocols

Also Published As

Publication number Publication date
GB2545299B (en) 2018-02-14
KR20170069145A (ko) 2017-06-20
GB201616921D0 (en) 2016-11-16
US9900260B2 (en) 2018-02-20
GB2545299A (en) 2017-06-14
US20170171095A1 (en) 2017-06-15

Similar Documents

Publication Publication Date Title
KR101883723B1 (ko) 인터커넥트 네트워크에서의 가변 폭 데이터 채널에 대한 효과적인 지원
EP3776231B1 (en) Procedures for implementing source based routing within an interconnect fabric on a system on chip
US8208470B2 (en) Connectionless packet data transport over a connection-based point-to-point link
US7924708B2 (en) Method and apparatus for flow control initialization
US5590124A (en) Link and discovery protocol for a ring interconnect architecture
US6778548B1 (en) Device to receive, buffer, and transmit packets of data in a packet switching network
US9025495B1 (en) Flexible routing engine for a PCI express switch and method of use
US7584316B2 (en) Packet manager interrupt mapper
US7940788B2 (en) System for transmitting data within a network between nodes of the network and flow control process for transmitting the data
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
US7403525B2 (en) Efficient routing of packet data in a scalable processing resource
KR101699784B1 (ko) 버스 시스템 및 그것의 동작 방법
US20240232111A1 (en) Network credit return mechanisms
JP2008310832A (ja) 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法
EP1728359A1 (en) Integrated circuit and method for packet switching control
US8885673B2 (en) Interleaving data packets in a packet-based communication system
US9197584B2 (en) Increasing efficiency of data payloads to data arrays accessed through registers in a distributed virtual bridge
US7346078B2 (en) Processing of received data within a multiple processor device
US9497141B2 (en) Switch point having look-ahead bypass
US7733854B2 (en) Forced bubble insertion scheme

Legal Events

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