KR101883723B1 - 인터커넥트 네트워크에서의 가변 폭 데이터 채널에 대한 효과적인 지원 - Google Patents
인터커넥트 네트워크에서의 가변 폭 데이터 채널에 대한 효과적인 지원 Download PDFInfo
- 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
Links
- 239000000872 buffer Substances 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 54
- 230000008878 coupling Effects 0.000 claims description 21
- 238000010168 coupling process Methods 0.000 claims description 21
- 238000005859 coupling reaction Methods 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 7
- 230000001419 dependent effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 10
- 230000015654 memory Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 235000008694 Humulus lupulus Nutrition 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- UCAHJECAHMOSHI-UHFFFAOYSA-N n-[(5-bromo-2-methoxyphenyl)methyl]adamantan-1-amine Chemical compound COC1=CC=C(Br)C=C1CNC1(C2)CC(C3)CC2CC3C1 UCAHJECAHMOSHI-UHFFFAOYSA-N 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
- G06F13/4018—Coupling between buses with data restructuring with data-width conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/41—Flow control; Congestion control by acting on aggregated flows or links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold 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
집적 회로는 예를 들어, 동작 동안 데이터가 전송될 수 있도록 상호 접속된, 프로세싱 코어, 메모리 및 주변기기와 같은 다수의 기능 블록 또는 디바이스를 포함할 수 있다. 보다 단순한 회로는 하나 이상의 공유 버스 구조를 통해 통신할 수 있다. 예를 들어, 시스템 온 칩(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개의 더 짧은 길이의 플릿으로부터 하나의 프로토콜의 예의 플릿을 생성하기 위한 방법의 순서도이다.
도 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 흐름 제어 프로토콜의 흐름 제어 유닛(플릿, 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 플릿의 유효성 필드를 생성하는 단계;
를 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법. - 제1항에 있어서, 상기 제2 플릿의 머지 필드는 더 큰 데이터 필드 내의 상기 제2 플릿의 데이터 필드의 위치를 나타내는 데이터 식별자 필드; 및 상기 제1 플릿중 하나의 에러를 나타내는 에러 필드를 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
- 제1항에 있어서, 상기 제2 플릿의 공통 필드는 상기 제1 플릿의 소스의 식별자; 및 상기 제1 플릿의 타겟의 식별자를 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
- 제1항에 있어서, 상기 제1 플릿은 2개 이상의 데이터 비이트에 대한 상기 네트워크의 상기 제1 장치로부터의 물리적 링크 상에서 수신되고, 상기 제1 플릿이 상기 네트워크의 상기 제1 장치로부터의 2개 이상의 연속 데이터 비이트에 수신되고 상기 제1 플릿이 동일한 타겟 버퍼를 행선지로 할 때 상기 제2 흐름 제어 프로토콜과 일치하는 제2 플릿을 형성하도록 상기 제1 플릿을 결합하는 단계가 수행되는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
- 제1항에 있어서,
상기 제1 플릿을 플릿 버퍼에 저장하는 단계;
상기 제2 흐름 제어 프로토콜에 일치하는 제2 플릿을 형성하도록 결합될 수 있는 2개 이상의 제1 플릿을 상기 플릿 버퍼로부터 선택하는 단계; 및
상기 2개 이상의 선택된 제1 플릿을 결합하여 상기 제2 플릿을 형성하는 단계;를 더 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법. - 제5항에 있어서, 상기 플릿 버퍼에 저장된 제1 플릿중 하나의 플릿이 임계값을 초과할 때,
상기 제2 흐름 제어 프로토콜과 일치하는 제2 플릿을 상기 제1 플릿으로부터 생성하는 단계; 및
상기 제2 플릿을 상기 네트워크의 상기 제2 장치에 전송하는 단계;를 더 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법. - 제1항에 있어서, 상기 제2 플릿의 데이터 필드는 제1 플릿의 데이터 필드의 길이의 2배의 길이를 갖는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
- 제1항에 있어서, 상기 제2 플릿의 데이터 필드는 제1 플릿의 데이터 필드의 길이의 4배의 길이를 갖는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
- 제1항에 있어서, 상기 제1 플릿과 제2 플릿 중 적어도 하나는 정보 패킷의 구성요소를 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
- 제1 항에 있어서,
상기 브리징 회로에 의해, 복수의 데이터 청크를 구비하는 데이터 필드와 복수의 메타데이터 청크를 구비하는 메타데이터 필드를 포함하며 상기 제2 흐름 제어 프로토콜과 일치하는 제3 플릿을 상기 인터커넥트 회로로부터 수신하는 단계;
상기 제2 플릿의 유효성 필드내의 데이터로부터 상기 제3 플릿의 복수의 데이터 청크의 유효한 데이터 청크를 식별하는 단계;
상기 제2 흐름 제어 프로토콜의 상기 제3 플릿의 각각의 유효한 데이터 청크에 대해,
상기 제1 흐름 제어 프로토콜과 일치하는 제4 플릿을 형성하는 단계로서, 상기 제4 플릿은:
상기 제3 플릿의 데이터 필드의 상응하는 유효한 데이터 청크로부터 복제된 데이터 청크를 구비하는 데이터 필드;
상기 제3 플릿의 상기 메타데이터 필드의 상응하는 유효한 메타데이터 청크로부터 복제된 메타데이터 청크를 구비하는 메타데이터 필드;
상기 제3 플릿의 공통 필드로부터 복제된 데이터를 구비하는 공통 필드; 및
상기 제3 플릿의 머지 필드로부터 유도된 데이터를 구비하는 머지 필드;
를 구비하는 상기 제4 플릿을 형성하는 단계; 및
상기 제4 플릿을 상기 제1 장치에 전송하는 단계;
를 더 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법. - 제10항에 있어서, 상기 제4 플릿의 상기 머지 필드를 형성하는 단계는,
상기 제3 플릿의 데이터 식별자에 의존하는 데이터 식별자 및 상기 제3 플릿의 데이터 필드 내의 유효한 데이터 청크의 위치를 결정하는 단계를 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법. - 제10항에 있어서, 상기 제4 플릿과 제3 플릿중 적어도 하나는 정보 패킷의 구성요소를 포함하는 것을 특징으로 하는 인터커넥트 회로의 대역폭을 증가시키는 방법.
- 인터커넥트 회로 및 네트워크의 제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 플릿의 수보다 작고 상기 인터커넥트 회로의 대역폭이 증가되도록 더 구성되는 것을 특징으로 하는 데이터 처리 네트워크. - 삭제
- 제13항에 있어서, 상기 브리징 회로는,
상기 플릿 버퍼에 저장된 각각의 플릿과 타임 스탬프를 연관시키도록 동작가능한 타임 스탬프 로직을 더 포함하고,
상기 선택 로직은 임의의 플릿이 상기 플릿 버퍼에 저장되는 시간을 제한하기 위해 상기 타임 스탬프에 응답하는 것을 특징으로 하는 데이터 처리 네트워크. - 제13항에 있어서, 상기 브리징 회로는 제1 물리적 링크를 통해 상기 제1 장치에 결합하고 제2 물리적 링크를 통해 상기 인터커넥트 회로에 결합하고, 상기 제1 물리적 링크의 폭은 상기 제1 플릿의 길이와 일치하고 상기 제2 물리적 링크의 폭은 상기 제2 플릿의 길이와 일치하는 것을 특징으로 하는 데이터 처리 네트워크.
- 제13항에 있어서, 상기 브리징 회로는 제1 물리적 링크를 통해 상기 제1 장치에 결합하고 제2 물리적 링크를 통해 상기 인터커넥트 회로에 결합하고, 상기 제1 플릿의 길이는 상기 제1 물리적 링크의 폭의 정수배이고 상기 제2 플릿의 길이는 상기 제2 물리적 링크의 폭의 정수배인 것을 특징으로 하는 데이터 처리 네트워크.
- 제13항에 있어서,
상기 제1 장치; 및
데이터 리소스;
를 더 포함하고,
상기 제1 장치는 하나 이상의 프로세서를 포함하고, 상기 인터커넥트 회로는 상기 하나 이상의 프로세서와 상기 데이터 리소스 사이를 상기 브리징 회로를 통해 결합하는 것을 특징으로 하는 데이터 처리 네트워크. - 제13항에 있어서,
상기 제1 장치; 및
데이터 리소스;
를 더 포함하고,
상기 제2 장치는 하나 이상의 프로세서를 포함하고, 상기 인터커넥트 회로는 상기 하나 이상의 프로세서와 상기 데이터 리소스 사이를 상기 브리징 회로를 통해 결합하는 것을 특징으로 하는 데이터 처리 네트워크. - 제13항에 있어서,
상기 제1 장치; 및
하나 이상의 프로세서;
를 더 포함하고,
상기 제1 장치는 데이터 리소스를 포함하고, 상기 인터커넥트 회로는 상기 하나 이상의 프로세서와 상기 데이터 리소스 사이를 상기 브리징 회로를 통해 결합하는 것을 특징으로 하는 데이터 처리 네트워크. - 제13항의 데이터 처리 네트워크를 기술한 하드웨어 기술 언어의 명령어를 저장하는 비임시 컴퓨터 판독가능 매체.
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)
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)
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)
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 |
-
2015
- 2015-12-10 US US14/965,237 patent/US9900260B2/en active Active
-
2016
- 2016-10-05 GB GB1616921.1A patent/GB2545299B/en active Active
- 2016-11-29 KR KR1020160160248A patent/KR101883723B1/ko active IP Right Grant
Patent Citations (1)
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 |