KR102528542B1 - 액티브-바이-액티브 프로그래밍가능 디바이스 - Google Patents

액티브-바이-액티브 프로그래밍가능 디바이스 Download PDF

Info

Publication number
KR102528542B1
KR102528542B1 KR1020207008123A KR20207008123A KR102528542B1 KR 102528542 B1 KR102528542 B1 KR 102528542B1 KR 1020207008123 A KR1020207008123 A KR 1020207008123A KR 20207008123 A KR20207008123 A KR 20207008123A KR 102528542 B1 KR102528542 B1 KR 102528542B1
Authority
KR
South Korea
Prior art keywords
programmable
sip
coupled
fabric
circuit
Prior art date
Application number
KR1020207008123A
Other languages
English (en)
Other versions
KR20200034815A (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
Priority claimed from US15/013,690 external-priority patent/US10042806B2/en
Priority claimed from US15/013,696 external-priority patent/US10002100B2/en
Application filed by 자일링크스 인코포레이티드 filed Critical 자일링크스 인코포레이티드
Priority to KR1020237014524A priority Critical patent/KR102663824B1/ko
Publication of KR20200034815A publication Critical patent/KR20200034815A/ko
Application granted granted Critical
Publication of KR102528542B1 publication Critical patent/KR102528542B1/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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • H03K19/17744Structural details of routing resources for input/output signals
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2224/00Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
    • H01L2224/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L2224/10Bump connectors; Manufacturing methods related thereto
    • H01L2224/15Structure, shape, material or disposition of the bump connectors after the connecting process
    • H01L2224/16Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
    • H01L2224/161Disposition
    • H01L2224/16151Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive
    • H01L2224/16221Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive the body and the item being stacked
    • H01L2224/16225Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive the body and the item being stacked the item being non-metallic, e.g. insulating substrate with or without metallisation
    • H01L2224/16227Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive the body and the item being stacked the item being non-metallic, e.g. insulating substrate with or without metallisation the bump connector connecting to a bond pad of the item
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2224/00Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
    • H01L2224/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L2224/10Bump connectors; Manufacturing methods related thereto
    • H01L2224/15Structure, shape, material or disposition of the bump connectors after the connecting process
    • H01L2224/16Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
    • H01L2224/161Disposition
    • H01L2224/16151Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive
    • H01L2224/16221Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive the body and the item being stacked
    • H01L2224/16225Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive the body and the item being stacked the item being non-metallic, e.g. insulating substrate with or without metallisation
    • H01L2224/16235Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive the body and the item being stacked the item being non-metallic, e.g. insulating substrate with or without metallisation the bump connector connecting to a via metallisation of the item
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/03Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes
    • H01L25/04Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers
    • H01L25/065Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L25/0655Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00 the devices being arranged next to each other
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2924/00Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
    • H01L2924/15Details of package parts other than the semiconductor or other solid state devices to be connected
    • H01L2924/151Die mounting substrate
    • H01L2924/1517Multilayer substrate
    • H01L2924/15192Resurf arrangement of the internal vias
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2924/00Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
    • H01L2924/15Details of package parts other than the semiconductor or other solid state devices to be connected
    • H01L2924/151Die mounting substrate
    • H01L2924/153Connection portion
    • H01L2924/1531Connection portion the connection portion being formed only on the surface of the substrate opposite to the die mounting surface
    • H01L2924/15311Connection portion the connection portion being formed only on the surface of the substrate opposite to the die mounting surface being a ball array, e.g. BGA

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Information Transfer Systems (AREA)
  • Combinations Of Printed Boards (AREA)
  • Microcomputers (AREA)
  • Logic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

예시적인 집적 회로(IC) 시스템은, 상부에 장착되는 프로그래밍가능 집적 회로(IC)(101A) 및 컴패니언 IC(103A)를 갖는 패키지 기판(202)을 포함하고, 프로그래밍가능 IC는 프로그래밍가능 패브릭(404)을 포함하고 컴패니언 IC는 애플리케이션 회로부(107A)를 포함한다. IC 시스템은, 프로그래밍가능 IC에 배치된 제1 시스템-인-패키지(SiP) IO 회로(140A), 컴패니언 IC에 배치된 제2 SiP IO 회로(142), 및 제1 SiP IO 회로와 제2 SiP IO 회로를 전기적으로 커플링하는 패키지 기판 상의 전도성 인터커넥트(138)를 포함하는 SiP 브리지(144)를 더 포함한다. IC 시스템은, 프로그래밍가능 패브릭과 제1 SiP IO 회로 사이에 커플링된 프로그래밍가능 IC 내의 제1 집합 및 제1 분산 회로들(110, 112)을 더 포함한다. IC 시스템은, 애플리케이션 회로부와 제2 SiP IO 회로 사이에 커플링된 컴패니언 IC 내의 제2 집합 및 제2 분산 회로들(126, 128)을 더 포함한다.

Description

액티브-바이-액티브 프로그래밍가능 디바이스 {ACTIVE-BY-ACTIVE PROGRAMMABLE DEVICE}
본 개시내용의 예들은 일반적으로 전자 회로들에 관한 것으로, 특히, 액티브-바이-액티브 프로그래밍가능 디바이스(active-by-active programmable device)에 관한 것이다.
필드 프로그래밍가능 게이트 어레이(field programmable gate array)(FPGA)들과 같은 현대의 프로그래밍가능 디바이스들은 사이즈가 커지고 있고 더 이종으로 되고 있다. 모든 이종 회로 블록들을 요구하지 않는 대부분의 애플리케이션들에 대한 프로그래머빌러티(programmability)의 증가하는 오버헤드와 더 고비용의 프로세스 기술 양측 모두로 인해 이들의 비용도 또한 급격히 증가하고 있다. 범용 입/출력(input/output)(IO) 또는 멀티-기가비트 직렬 트랜시버(multi-gigabit serial transceiver)(MGT)들과 같은 이들 대형 회로 블록들 중 많은 것이 새로운 프로세스 기술의 혜택들을 요구하지 않는다. 따라서, 전통적인 모놀리식 아키텍처들은 시장의 비용 요건들을 더 이상 충족시키지 않아서, 시스템-인-패키지(system-in-package)(SiP) 디바이스들의 개발에 이르게 한다. 그러나, 대부분의 SiP 솔루션들은 고비용의 인터포저들의 사용 또는 복잡한 3차원 다이 적층과 같은 진보된 패키징 기법들에 의존한다. 이와 같이, 이들 SiP 솔루션들의 부가 비용은 생산량(production volume)이 적은 하이-엔드 또는 틈새 애플리케이션들로 그 혜택들을 제한한다.
액티브-바이-액티브 프로그래밍가능 디바이스를 제공하기 위한 기법들이 설명된다. 예에서, 집적 회로(integrated circuit)(IC) 시스템은, 상부에 장착되는 프로그래밍가능 집적 회로(IC) 다이 및 컴패니언(companion) IC 다이를 갖는 패키지 기판을 포함하고, 프로그래밍가능 IC 다이는 프로그래밍가능 패브릭(programmable fabric)을 포함하고 컴패니언 IC 다이는 애플리케이션 회로부를 포함한다. IC 시스템은, 프로그래밍가능 IC 다이에 배치된 제1 시스템-인-패키지(SiP) IO 회로, 컴패니언 IC 다이에 배치된 제2 SiP IO 회로, 및 제1 SiP IO 회로와 제2 SiP IO 회로를 전기적으로 커플링하는 패키지 기판 상의 전도성 인터커넥트를 포함하는 SiP 브리지를 더 포함한다. IC 시스템은, 프로그래밍가능 패브릭과 제1 SiP IO 회로 사이에 커플링된 프로그래밍가능 IC 다이 내의 제1 집합 및 제1 분산 회로들을 더 포함한다. IC 시스템은, 애플리케이션 IO와 제2 SiP IO 회로 사이에 커플링된 컴패니언 IC 다이 내의 제2 집합 및 제2 분산 회로들을 더 포함한다.
다른 예에서, 프로그래밍가능 집적 회로(IC)는, 외부 전도성 인터커넥트를 통해 컴패니언 IC에 커플링된 시스템-인-패키지(SiP) 입/출력(IO) 회로; 애플리케이션 회로부의 적어도 일부가 없는 프로그래밍가능 패브릭; 및 프로그래밍가능 패브릭과 SiP IO 회로 사이에 커플링된 집합 및 분산 회로들을 포함한다.
다른 예에서, 집적 회로(IC) 시스템 내의 프로그래밍가능 IC로부터 데이터를 송신하는 방법은, 프로그래밍가능 IC 내의 집적 회로의 복수의 채널들을 통해 제1 시스템-인-패키지(SiP) IO 회로에 데이터를 커플링하는 단계를 포함한다. 이 방법은, 프로그래밍가능 IC와 컴패니언 IC 사이의 보다 작은 수의 물리 채널들을 통해 복수의 채널들로부터 데이터를 송신하는 단계를 더 포함한다. 이 방법은, 컴패니언 IC 내의 제2 SiP IO 회로에서 복수의 물리 채널들로부터의 데이터를 수신하는 단계를 더 포함한다. 이 방법은, 컴패니언 IC 내의 분산 회로의 복수의 채널들을 통해 컴패니언 IC 내의 애플리케이션 회로부에 제2 SiP IO 회로로부터의 데이터를 커플링하는 단계를 더 포함한다. 이 방법은, 애플리케이션 IO 회로들로부터 데이터를 송신하는 단계를 더 포함한다.
다른 예에서, 프로그래밍가능 집적 회로에 대한 시스템 레벨 인터커넥트 링을 제공하기 위한 기법들이 설명된다. 예에서, 프로그래밍가능 집적 회로(IC)는, 프로그래밍가능 인터커넥트를 갖는 프로그래밍가능 패브릭, 및 그 프로그래밍가능 패브릭의 적어도 하나의 에지에 인접한 와이어 트랙들을 포함한다. 프로그래밍가능 IC는, 프로그래밍가능 패브릭의 적어도 하나의 에지와 집적된 적어도 하나의 링 노드를 더 포함하고, 적어도 하나의 링 노드는 프로그래밍가능 인터커넥트와 와이어 트랙들 사이에 커플링된다. 프로그래밍가능 IC는, 와이어 트랙들에 커플링된 시스템-인-패키지(SiP) 입/출력(IO) 회로를 더 포함한다.
다른 예에서, 집적 회로(IC) 시스템은, 상부에 장착되는 프로그래밍가능 집적 회로(IC) 다이 및 컴패니언 IC 다이를 갖는 패키지 기판을 포함하고, 프로그래밍가능 IC 다이는 프로그래밍가능 패브릭을 포함하고 컴패니언 IC 다이는 애플리케이션 회로부를 포함한다. IC 시스템은, 프로그래밍가능 IC 다이에 배치된 제1 시스템-인-패키지(SiP) IO 회로, 컴패니언 IC 다이에 배치된 제2 SiP IO 회로, 및 제1 SiP IO 회로와 제2 SiP IO 회로를 전기적으로 커플링하는 패키지 기판 상의 전도성 인터커넥트를 포함하는 SiP 브리지를 더 포함한다. 프로그래밍가능 IC 다이는, 프로그래밍가능 인터커넥트를 갖는 프로그래밍가능 패브릭, 그 프로그래밍가능 패브릭의 적어도 하나의 에지에 인접한 와이어 트랙들 - 와이어 트랙들은 제1 SiP IO 회로에 커플링됨 -, 및 프로그래밍가능 패브릭의 적어도 하나의 에지와 집적된 적어도 하나의 링 노드 - 적어도 하나의 링 노드는 프로그래밍가능 인터커넥트와 와이어 트랙들 사이에 커플링됨 - 를 포함한다.
다른 예에서, IC 시스템 내의 프로그래밍가능 집적 회로(IC)로부터 데이터를 송신하는 방법은, 프로그래밍가능 IC의 프로그래밍가능 패브릭의 에지와 집적된 링 노드에 데이터를 커플링하는 단계를 포함하고, 링 노드는 에지에 인접한 와이어 트랙들과 프로그래밍가능 패브릭의 프로그래밍가능 인터커넥트 사이에 커플링된다. 이 방법은, 와이어 트랙들의 복수의 채널들을 통해 제1 시스템-인-패키지(SiP) IO 회로에 링 노드로부터의 데이터를 커플링하는 단계를 더 포함한다. 이 방법은, 프로그래밍가능 IC와 컴패니언 IC 사이의 보다 작은 수의 물리 채널들을 통해 복수의 채널들로부터 데이터를 송신하는 단계를 더 포함한다.
이들 그리고 다른 양태들은 다음의 상세한 설명을 참조하여 이해될 수 있다.
상기에 언급된 피처(feature)들이 상세히 이해될 수 있는 방식으로, 상기에 간단히 요약된 더 구체적인 설명은 예시적인 구현들을 참조하여 행해질 수 있고, 그 일부는 첨부된 도면들에 예시된다. 그러나, 첨부된 도면들은 단지 전형적인 예시적인 구현들만을 예시하고 그에 따라 그 범주를 제한하는 것으로 간주되어서는 안 된다는 것에 유의해야 한다.
도 1은 예에 따른 집적 회로(IC) 시스템을 도시하는 블록도이다.
도 2는 예에 따른 멀티-칩 모듈(multi-chip module)(MCM)의 단면도이다.
도 3은 예시적인 필드 프로그래밍가능 게이트 어레이(FPGA) 아키텍처를 예시한다.
도 4는 다른 예에 따른 IC 시스템을 도시하는 블록도이다.
도 5는 예에 따른 도 4의 IC 다이의 더 상세한 뷰를 도시하는 블록도이다.
도 6은 예에 따른 시스템-인-패키지(SiP) 스택들을 도시하는 블록도이다.
도 7은 예에 따른 데이터 링크 계층을 더 상세히 도시하는 블록도이다.
도 8은 예에 따른 SiP 브리지의 데이터 링크 계층 내의 아비트레이션(arbitration)의 방법을 도시하는 흐름도이다.
도 9는 다른 예에 따른 SiP 브리지의 데이터 링크 계층 내의 아비트레이션의 방법을 도시하는 흐름도이다.
도 10은 예에 따른 IC 시스템 내의 프로그래밍가능 IC로부터 데이터를 송신하는 방법을 도시하는 흐름도이다.
도 11은 예에 따른 IC 시스템 내의 프로그래밍가능 IC로 데이터를 수신하는 방법을 도시하는 흐름도이다.
도 12는 예시적인 구현에 따른 물리 계층 로직을 도시하는 블록도이다.
도 13은 예에 따른 프로그래밍가능 패브릭의 수평 에지와의 시스템 레벨 인터커넥트의 집적을 도시하는 블록도이다.
도 14는 예에 따른 프로그래밍가능 패브릭의 수직 에지와의 시스템 레벨 인터커넥트의 집적을 도시하는 블록도이다.
도 15는 예에 따른 시스템 레벨 인터커넥트의 링 서브-노드를 도시하는 블록도이다.
도 16a 내지 도 16f는 예시적인 시스템 레벨 인터커넥트 링(system-level interconnect ring)(SIR) 구현들을 도시한다.
도 17은 예에 따른 IC 시스템 내의 프로그래밍가능 IC로부터 데이터를 송신하는 방법을 도시하는 흐름도이다.
이해를 용이하게 하기 위해, 도면들에서 공통적인 동일한 요소들을 지정하기 위해 가능한 곳에 동일한 참조 부호들이 사용되었다. 일 예의 요소들이 다른 예들에 유익하게 포함될 수 있다는 것이 고려된다.
이하, 다양한 피처들이 도면들을 참조하여 설명된다. 도면들은 축척대로 그려질 수 있거나 그려지지 않을 수도 있고 유사한 구조체들 또는 기능들의 요소들은 도면들 전반에 걸쳐 동일한 참조 번호들로 표현된다는 것에 유의해야 한다. 도면들은 피처들의 설명을 용이하게 하도록 단지 의도된다는 것에 유의해야 한다. 이들은 청구된 발명의 완전한 설명으로서 또는 청구된 발명의 범주에 대한 제한으로서 의도되지 않는다. 부가적으로, 예시된 예는 도시된 모든 양태들 또는 이점들을 가질 필요가 없다. 특정 예와 관련하여 설명된 양태 또는 이점은 반드시 그 예로 제한되지는 않으며, 그렇게 예시되지 않더라도, 또는 그렇게 명시적으로 설명되지 않더라도, 임의의 다른 예들에서 실시될 수 있다.
액티브-바이-액티브 프로그래밍가능 디바이스가 설명된다. 예에서, 시스템-인-패키지(SiP) 기반 프로그래밍가능 디바이스는 멀티-칩 모듈(MOM) 패키지를 채용한다. MOM 패키지는 필드 프로그래밍가능 게이트 어레이(FPGA)와 같은 프로그래밍가능 집적 회로(IC), 및 패키지 기판 상에 배치된 하나 이상의 컴패니언 집적 회로(IC) 디바이스들을 포함한다. 프로그래밍 가능 IC 및 컴패니언 IC들은 패키지 기판 상에 나란히 배치된다(예를 들어, 액티브-바이-액티브). 프로그래밍가능 IC와 각각의 컴패니언 IC 디바이스 사이의 커넥션은 고 대역폭 SiP 브리지를 사용하여 구현된다. SiP 브리지는 적은 수의 와이어들을 사용하여 구현할 수 있어서, 고비용의 인터포저보다는 MCM 패키지의 사용을 가능하게 한다. 하나의 디바이스로부터 다른 디바이스로 전송될 데이터는 집단 대역폭으로 집합되고 SiP 브리지를 통해 전달된다. SiP 브리지 상에서 수신된 집합 데이터는 계통적 분산 메커니즘(systematic disperse mechanism)을 통해 목적지로 전달된다. 본 명세서에서 설명되는 예들에서, SiP 브리지는 적어도 물리 및 데이터 링크 계층들을 포함하는 프로토콜 스택을 사용하여 구현된다. 전송 계층과 같은 보다 높은 계층들이 또한 채용될 수 있다. 물리 계층은 본 명세서에서 상세화된 특정 요건들을 충족시키는 임의의 USR(ultra-short reach) 직렬화기/역직렬화기(serializer/deserializer)(SerDes) 기술일 수 있다. 본 명세서에서 추가로 설명되는 바와 같이, 데이터 링크 계층은 목적지에서의 혼잡을 회피시키는 방식으로 이용가능한 물리 채널들에 걸쳐 집합된 데이터를 시간-멀티플렉싱하도록 구성된다. 각각의 디바이스는, 애플리케이션 회로들과 SiP 브리지(들) 사이의 데이터의 집합 및 분산을 용이하게 하기 위한 시스템 레벨 인터커넥트를 포함할 수 있다.
예들에서, 컴패니언 IC 다이는 SiP 디바이스의 애플리케이션 입/출력(IO) 회로들의 일부 또는 전부를 포함한다. 따라서, 프로그래밍가능 IC는 그러한 애플리케이션 IO 회로들 없이 구성될 수 있다. 프로그래밍가능 IC로부터의 애플리케이션 IO 회로들의 제거는 다른 회로들에 의한 사용을 위한 다이 면적을 자유롭게 한다. 또한, 프로그래밍가능 IC는 보다 새로운 프로세스 기술 피처들을 이용하는 보다 새로운 프로세스 기술을 사용하여 제조될 수 있는 한편, 애플리케이션 IO 회로들을 갖는 컴패니언 IC는 보다 오래되고 덜 고비용인 프로세스 기술을 사용하여 제조될 수 있다. 그 결과, 전체 솔루션은 동일한 기능성을 보다 낮은 비용으로 전달할 것이다. 프로그래밍가능 IC 및 컴패니언 IC 디바이스는 SiP 브리지에 의해 연결된다. 프로그래밍가능 IC 및 컴패니언 IC 디바이스 각각은, SiP 브리지의 엔드포인트를 정의하는 SiP IO 회로를 포함한다. 프로그래밍가능 IC와 컴패니언 IC 각각은, 애플리케이션 회로들과 SiP IO 회로들 사이에 데이터의 집합 및 분산을 제공하기 위한 시스템 레벨 인터커넥트를 포함할 수 있다. 프로그래밍가능 IC에서의 사용을 위한 시스템 레벨 인터커넥트의 일 예는 시스템 레벨 인터커넥트 링(system-level interconnect ring)(SIR)이다. 본 명세서에서 추가로 설명되는 바와 같이, SIR은 프로그래밍가능 IC에 대한 회로들을 구현하는 데 사용되는 설계 툴들 및 프로그래밍가능 패브릭의 최소 증대를 가능하게 한다. 이들 그리고 다른 양태들은 다음의 도면들을 참조하여 이해될 수 있다.
도 1은 예에 따른 집적 회로(IC) 시스템(100)을 도시하는 블록도이다. IC 시스템(100)은, IC 다이(103)에 커플링된 IC 다이(101)를 포함한다. 예에서, IC 다이(101) 및 IC 다이(103)는 시스템-인-패키지(SiP)를 형성하는 멀티-칩 모듈(MCM)의 일부이다. IC 다이(101)는 애플리케이션 회로들(105), 집합 회로들(110), 분산 회로들(112), 및 SiP 입/출력 회로(SiP IO(140))를 포함한다. 예에서, 애플리케이션 회로들(105)은, 하나 이상의 프로세싱 요소들(PE(들)(102)), 메모리(mem(104)), 지원 회로들(SC(106)), 및 입/출력 회로들(IO(108))과 같은 다양한 컴포넌트들을 포함한다. 다른 예들에서, 컴포넌트들(102 내지 108) 중 하나 이상은 애플리케이션 회로들(105)로부터 생략될 수 있다. 애플리케이션 회로들(105)의 컴포넌트들(102 내지 108) 각각은 집합 회로들(110)과 분산 회로들(112) 양측 모두에 커플링될 수 있다. 대안적으로, 컴포넌트들(102 내지 108) 중 하나 이상은 집합 회로들(110) 또는 분산 회로들(112) 중 하나에만 커플링될 수 있다. 집합 회로들(110) 및 분산 회로들(112)은 각각 SiP IO(140)의 내부 인터페이스에 커플링된다.
예에서, SiP IO(140)는 전송 로직(114), 데이터 링크 로직(116), 및 물리 로직(118)을 갖는 멀티플렉싱 IO 로직을 구현한다. 도시된 예에서, 멀티플렉싱된 IO 로직은 전체적으로 SiP IO(140) 내에서 구현된다. 다른 예들에서, 멀티플렉싱된 IO 로직의 주어진 계층 또는 그 일부는 애플리케이션 회로들(105)에서 구현될 수 있다. 예에서, 전송 로직(114)은 애플리케이션 회로들(105)에서 구현되고 데이터 링크 로직(116) 및 물리 로직(118)은 SiP IO(140)에서 구현된다. 예에서, 데이터 링크 로직(116)의 아비트레이션 부분은 애플리케이션 회로들(105)에서 구현되고 데이터 링크 로직(116)을 위한 멀티플렉싱 로직은 SiP IO(140)에서 구현된다.
IC 다이(103)는 IC 다이(101)와 유사한 회로부를 포함할 수 있다. 도 1에 도시된 예에서, IC 다이(103)는 애플리케이션 회로들(107), 집합 회로들(126), 분산 회로들(128), 및 SiP IO(142)를 포함한다. 예에서, 애플리케이션 회로들(107)은, PE(들)(120), 메모리(mem(132)), 지원 회로들(SC(134)), 및 입/출력 회로들(IO(136))과 같은 다양한 컴포넌트들을 포함한다. 다른 예들에서, 컴포넌트들(130 내지 136) 중 하나 이상은 애플리케이션 회로들(107)로부터 생략될 수 있다. 애플리케이션 회로들(107)의 컴포넌트들(130 내지 136) 각각은 집합 회로들(126)과 분산 회로들(128) 양측 모두에 커플링될 수 있다. 대안적으로, 컴포넌트들(130 내지 136) 중 하나 이상은 집합 회로들(126) 또는 분산 회로들(128) 중 하나에만 커플링될 수 있다. 집합 회로들(126) 및 분산 회로들(128)은 각각 SiP IO(142)의 내부 인터페이스에 커플링된다. SiP IO(140)와 유사하게, SiP IO(142)는 전송 로직(124), 데이터 링크 로직(122), 및 물리 로직(120)을 갖는 멀티플렉싱 IO 로직을 구현한다. 도시된 예에서, 멀티플렉싱된 IO 로직은 전체적으로 SiP IO(142) 내에서 구현된다. 다른 예들에서, IC 다이(101)와 관련하여 상술된 바와 같이, 멀티플렉싱된 IO 로직의 주어진 로직 계층 또는 그 일부는 애플리케이션 회로들(107)에서 구현될 수 있다.
IC 다이(101)와 IC 다이(103)는 SiP 브리지(144)에 의해 커플링된다. SiP 브리지(144)는 SiP IO(140), SiP IO(142), 및 신호 경로들(138)을 포함한다. SiP IO(140)의 외부 인터페이스는 신호 경로들(138)에 의해 SiP IO(142)의 외부 인터페이스에 커플링된다. 물리 로직(118/120)은 SiP 브리지(144)의 물리 계층을 구현하고 복수의 물리 채널들을 지원한다. 데이터 링크 로직(116/122)은 SiP 브리지(144)의 데이터 링크 계층을 구현하고 SiP 브리지(144)의 각각의 면 상의 복수의 채널들(집합 채널들 및 분산 채널들로 지칭됨)을 지원한다. 전송 로직(114/124)은 SiP 브리지(144)의 전송 계층을 구현한다. 커넥션이 없는 또는 커넥션 기반의 전송 계층들을 포함하는 다양한 전송 계층들이 채용될 수 있다. 전송 계층은 본 기술분야에 알려진 패킷화, 역패킷화, 오류 정정, 패킷 순서화 등을 제공할 수 있다.
애플리케이션 회로들(105)은, 집합 회로들(110)의 채널들에 커플링된 다수의 출력들을 포함할 수 있다. 집합 회로들(110)은 SiP IO(140)의 내부 입력들(소스 포트들로 지칭됨) 중에서 애플리케이션 회로들(105)의 출력들을 선택적으로 커플링한다. 예를 들어, SiP IO(140)는, 집합 회로들(110)의 M개의 집합 채널들에 커플링된 M개의 소스 포트들을 포함할 수 있고, 여기서 M은 양의 정수이다. 집합 회로들(110)은 M개의 집합 채널들을 통해 SiP IO(140)의 M개의 소스 포트들에 애플리케이션 회로들(105)의 출력들을 선택적으로 커플링할 수 있다. SiP IO(140)는, 신호 경로들(138)을 통해 구현되는 K개의 물리 채널들을 구동하는 K개의 외부 출력들을 포함할 수 있고, 여기서 K는 양의 정수이다. 예에서, K는 M보다 더 작고 SiP IO(140)는 K개의 외부 출력들 중에서 M개의 소스 포트들을 멀티플렉싱한다. SiP IO(142)는, K개의 물리 채널들로부터 수신하는 K개의 외부 입력들을 포함할 수 있다. SiP IO(142)는 N개의 내부 출력들 중에서 K개의 외부 입력들(목적지 포트들로 지칭됨)을 디멀티플렉싱하고, 여기서 N은 양의 정수이다. 예에서, N은 K보다 더 크다. 분산 회로들(128)은 N개의 분산 채널들을 통해 애플리케이션 회로들(107)의 입력들 중에서 SiP IO(142)의 N개의 목적지 포트들을 선택적으로 커플링한다.
마찬가지로, 애플리케이션 회로들(107)은, 집합 회로들(126)의 집합 채널들에 커플링된 다수의 출력들을 포함할 수 있다. 집합 회로들(126)은 SiP IO(142)의 소스 포트들 중에서 애플리케이션 회로들(107)의 출력들을 선택적으로 커플링한다. 예를 들어, SiP IO(142)는, 집합 회로들(126)의 N'개의 집합 채널들에 커플링된 N'개의 소스 포트들을 포함할 수 있고, 여기서 N'는 양의 정수이다. 집합 회로들(126)은 N'개의 집합 채널들을 통해 SiP IO(142)의 N'개의 소스 포트들에 애플리케이션 회로들(107)의 출력들을 선택적으로 커플링할 수 있다. SiP IO(142)는, 신호 경로들(138)을 통해 구현되는 K'개의 물리 채널들을 구동하는 K'개의 외부 출력들을 포함할 수 있고, 여기서 K'는 양의 정수이다. 예에서, K'는 N'보다 더 작고 SiP IO(142)는 K'개의 외부 출력들 중에서 N'개의 소스 포트들을 멀티플렉싱한다. SiP IO(140)는, K'개의 물리 채널들로부터 수신하는 K'개의 외부 입력들을 포함할 수 있다. SiP IO(140)는 M'개의 목적지 포트들 중에서 K'개의 외부 입력들을 디멀티플렉싱하고, 여기서 M'는 양의 정수이다. 예에서, M'는 K'보다 더 크다. 분산 회로들(112)은 M'개의 분산 채널들을 통해 애플리케이션 회로들(105)의 M'개의 입력들 중에서 SiP IO(140)의 M'개의 목적지 포트들을 선택적으로 커플링한다.
일부 예들에서, SiP 브리지(144)가 IC 다이(101)와 IC 다이(103) 사이의 각각의 방향으로 동일한 수의 물리 채널들을 지원하도록 K = K'이다. IC 다이(101)로부터 데이터를 송신하기 위해, 집합 회로들(110)은 애플리케이션 회로들(105)의 출력을 M개의 집합 채널들로 집합하고 SiP IO(140)는 K개의 물리 채널들에 걸쳐 M개의 집합 채널들을 멀티플렉싱한다. IC 다이(103)에서 데이터를 수신하기 위해, SiP IO(142)는 K개의 물리 채널들을 N개의 채널들로 디멀티플렉싱하고 분산 회로들(128)은 N개의 분산 채널들을 애플리케이션 회로들(107)의 입력들로 분산한다. 마찬가지로, IC 다이(103)로부터 데이터를 송신하기 위해, 집합 회로들(126)은 애플리케이션 회로들(107)의 출력을 N'개의 집합 채널들로 집합하고 SiP IO(142)는 K'개의 물리 채널들에 걸쳐 N'개의 집합 채널들을 멀티플렉싱한다. IC 다이(101)에서 데이터를 수신하기 위해, SiP IO(140)는 K'개의 물리 채널들로부터 수신된 K'개의 채널들을 M'개의 채널들로 디멀티플렉싱하고 분산 회로들(112)은 M'개의 분산 채널들을 애플리케이션 회로들(105)의 입력들로 분산한다. 일부 예들에서, 집합 회로들(110) 및 분산 회로들(112)은 애플리케이션 회로들(105)의 총 2*M개의 채널들을 제공하고 집합 회로들(126) 및 분산 회로들(128)은 애플리케이션 회로들(107)의 총 2*N개의 채널들을 제공하도록 M = M'이고 N = N'이다. 일부 예들에서, M = M' = N = N'이다.
예에서, 애플리케이션 회로들(105) 및 애플리케이션 회로들(107)은 SiP 브리지(144)를 통해 패킷화된 데이터를 교환한다. 전송 로직(114)은 w 비트들을 각각이 포함하는 패킷들로 애플리케이션 회로들(105)의 출력을 형성하고, 여기서 w는 양의 정수이다. 전송 로직(114)은 또한 분산 회로들(112)로부터 수신된 데이터를 역패킷화한다. 전송 로직(124)은 전송 로직(114)과 유사하게 기능할 수 있다.
데이터 링크 로직(116)은 집합 회로들(110)의 출력을 복수의 집합 채널들(예를 들어, M개의 집합 채널들)로 조직화하고, 여기서 각각의 집합 채널은 w 비트 패킷을 제공하기 위해 w 비트 폭으로 된다. 즉, 집합 회로들(110)은 멀티-채널 출력을 포함한다. 마찬가지로, 데이터 링크 로직(116)은 분산 회로들(112)의 입력들을 복수의 분산 채널들(예를 들어, M'개의 분산 채널들)로 분할하고, 여기서 각각의 분산 채널은 w 비트 패킷을 수신하기 위해 w 비트 폭으로 된다. 즉, 분산 회로들(112)은 멀티-채널 입력을 포함한다. 데이터 링크 로직(116)은 각각의 집합 채널에 대한 송신 큐를 유지한다. 데이터 링크 로직(116)은 물리 로직(118)에 의해 이용가능한 물리 채널들을 통해 송신될 패킷들을 선택하기 위해 송신 큐들 중에서 아비트레이션한다. 데이터 링크 로직(116)은 또한 물리 채널들을 분산 회로들(112)의 이용가능한 분산 채널들로 디멀티플렉싱한다. 데이터 링크 로직(122)은 데이터 링크 로직(116)과 유사하게 기능할 수 있다.
물리 로직(118)은 신호 경로들(138)에 걸친 신호들로서의 송신을 위해 이용가능한 출력 물리 채널들 내의 패킷들을 직렬화할 수 있다. 물리 로직(118)은 또한 신호 경로들(138)로부터 수신된 신호들을 이용가능한 입력 물리 채널들로 역직렬화할 수 있다. 물리 로직(120)은 물리 로직(118)과 유사하게 기능할 수 있다.
예에서, 애플리케이션 회로들(105)은 하나 이상의 직접 신호 경로들(146)을 통해 직접 애플리케이션 회로들(107)에 커플링될 수 있다. 즉, SiP 브리지(144)를 가로지르지 않는 IC 다이(101)와 IC 다이(103) 사이의 일부 통신이 있을 수 있다. 추가로, IC 다이(101)는, 전력 및 접지를 수신할 뿐만 아니라 다른 외부 회로들에 신호들을 전송 및 수신하는 데 사용될 수 있는 외부 인터페이스(147)를 포함할 수 있다. 마찬가지로, IC 다이(103)는, 전력 및 접지를 수신할 뿐만 아니라 다른 외부 회로들에 신호들을 전송 및 수신하는 데 사용될 수 있는 외부 인터페이스(148)를 포함할 수 있다.
도 1에 도시된 예에서, IC 다이(101)는 하나의 다른 IC 다이로의 하나의 SiP 브리지에 대한 SiP IO를 포함한다. 다른 예들에서, IC 다이는 다수의 IC 다이로의 다수의 SiP 브리지들에 대한 다수의 SiP IO들을 포함할 수 있다. 그러한 실시예들에서, IC 다이는, 다수의 SiP 브리지들에 애플리케이션 회로들을 커플링하기 위한 집합 및 분산 회로들의 다수의 인스턴스들을 포함할 수 있다.
도 2는 예에 따른 MCM(200)의 단면도이다. MCM(200)은 상술된 IC 시스템(100)을 구현할 수 있다. MCM(200)은, 패키지 기판(202) 상에 장착된 IC 다이(101) 및 IC 다이(103)를 포함한다. IC 다이(101)는 콘택들(214)에 의해 패키지 기판(202)에 전기적으로 그리고 기계적으로 커플링된다. IC 다이(103)는 콘택들(216)에 의해 패키지 기판(202)에 전기적으로 그리고 기계적으로 커플링된다. 콘택들(214) 및 콘택들(216)은 솔더 볼들, 솔더 범프들 등일 수 있다. 패키지 기판(202)은, IC 다이(101) 및 IC 다이(103)가 장착되는 표면에 또는 그 표면에 가까이 배치된 전도성 인터커넥트(208)를 포함한다. 패키지 기판(202)은, 대향 표면에 또는 그 표면에 가까이 배치된 전도성 인터커넥트(206)를 포함한다. 전도성 인터커넥트(208) 및 전도성 인터커넥트(206) 각각은, 특정 패턴을 갖는 하나 이상의 금속 층들을 포함한다. IC 다이(101)의 콘택들(214) 중 일부는 전도성 인터커넥트(208)에 전기적으로 커플링된다. IC 다이(103)의 콘택들(216) 중 일부는 전도성 인터커넥트(208)에 전기적으로 커플링된다. 콘택들(214) 중 다른 것들은 비아들(218)을 통해 전도성 인터커넥트(206)에 전기적으로 커플링된다. 콘택들(216) 중 다른 것들은 비아들(220)을 통해 전도성 인터커넥트(206)에 전기적으로 커플링된다. 전도성 인터커넥트(206)는 콘택들(204)에 전기적으로 커플링된다. 콘택들(204)은 솔더 볼들, 솔더 범프들 등일 수 있다.
콘택들(204)은 MCM(200)의 외부 핀들을 포함한다. MCM(200)은 회로 보드에 장착될 수 있다. 회로 보드 상의 컨덕터들은 패키지 기판(202)의 콘택들(204)을 통해 IC 다이(101) 및 IC 다이(103)에 전기적으로 커플링될 수 있다. MCM(200) 내에서, IC 다이(101)는 전도성 인터커넥트(208)를 통해 IC 다이(103)에 전기적으로 커플링된다. 상술된 IC 시스템(100)을 구현하기 위해, 전도성 인터커넥트(208)가 패터닝되어 IC 다이(101)와 IC 다이(103) 사이의 신호 경로들(138)을 형성한다. 예에서, 전도성 인터커넥트(208)가 또한 패터닝되어 (존재한다면) 전용 신호 경로(들)(146)를 형성한다. SiP IO(140)의 외부 인터페이스는 콘택들(214) 중 일부를 통해 전도성 인터커넥트(208)에 형성된 신호 경로들(138)이 커플링된다. 마찬가지로, SiP IO(142)의 외부 인터페이스는 콘택들(216) 중 일부를 통해 전도성 인터커넥트(208)에 형성된 신호 경로들(138)이 커플링된다.
예에서, IC 다이(101)와 IC 다이(103) 중 적어도 하나는 필드 프로그래밍가능 게이트 어레이(FPGA) 등과 같은 프로그래밍가능 IC를 포함한다. 도 3은 멀티-기가비트 트랜시버("MGT")들(301), 구성가능 로직 블록("CLB")들(302), 랜덤 액세스 메모리 블록("BRAM")들(303), 입/출력 블록("IOB")들(304), 구성 및 클록킹 로직("CONFIG/CLOCKS")(305), 디지털 신호 프로세싱 블록("DSP")들(306), 특수 입/출력 블록들("I/O")(307)(예를 들어, 구성 포트들 및 클록 포트들), 및 다른 프로그래밍가능 로직(308) 예컨대 디지털 클록 관리자들, 아날로그-디지털 컨버터들, 시스템 모니터링 로직 등을 포함하는 다수의 상이한 프로그래밍가능 타일들을 포함하는 FPGA 아키텍처(300)를 예시한다. 일부 FPGA들은 또한 전용 프로세서 블록들("PROC")(310)을 포함한다.
일부 FPGA들에서, 각각의 프로그래밍가능 타일은, 도 3의 상부에 포함된 예들에 의해 도시된 바와 같이, 동일한 타일 내의 프로그래밍가능 로직 요소의 입력 및 출력 단자들(320)로의 커넥션들을 갖는 적어도 하나의 프로그래밍가능 인터커넥트 요소("INT")(311)를 포함할 수 있다. 각각의 프로그래밍가능 인터커넥트 요소(311)는 또한 동일한 타일 또는 다른 타일(들) 내의 인접한 프로그래밍가능 인터커넥트 요소(들)의 인터커넥트 세그먼트들(322)로의 커넥션들을 포함할 수 있다. 각각의 프로그래밍가능 인터커넥트 요소(311)는 또한 로직 블록들(도시되지 않음) 사이의 일반적인 라우팅 리소스들의 인터커넥트 세그먼트들(324)로의 커넥션들을 포함할 수 있다. 일반적인 라우팅 리소스들은 인터커넥트 세그먼트들(예를 들어, 인터커넥트 세그먼트들(324))의 트랙들을 포함하는 로직 블록들(도시되지 않음)과 인터커넥트 세그먼트들을 연결하기 위한 스위치 블록들(도시되지 않음) 사이의 라우팅 채널들을 포함할 수 있다. 일반적인 라우팅 리소스들의 인터커넥트 세그먼트들(예를 들어, 인터커넥트 세그먼트들(324))은 하나 이상의 로직 블록들에 걸쳐 있을 수 있다. 일반적인 라우팅 리소스들과 함께 취해지는 프로그래밍가능 인터커넥트 요소들(311)은 예시된 FPGA에 대한 프로그래밍가능 인터커넥트 구조체("프로그래밍가능 인터커넥트")를 구현한다.
예시적인 구현에서, CLB(302)는, 단일 프로그래밍가능 인터커넥트 요소("INT")(311)에 더하여 사용자 로직을 구현하도록 프로그래밍될 수 있는 구성가능 로직 요소("CLE")(312)를 포함할 수 있다. BRAM(303)은 하나 이상의 프로그래밍가능 인터커넥트 요소들에 부가적으로 BRAM 로직 요소("BRL")(313)를 포함할 수 있다. 전형적으로, 타일에 포함된 인터커넥트 요소들의 수는 타일의 높이에 좌우된다. 그려진 예에서, BRAM 타일은 5개의 CLB들과 동일한 높이를 갖지만, 다른 수들(예를 들어, 4개)이 또한 사용될 수 있다. DSP 타일(306)은 적절한 수의 프로그래밍가능 인터커넥트 요소들에 부가적으로 DSP 로직 요소("DSPL")(314)를 포함할 수 있다. IOB(304)는 프로그래밍가능 인터커넥트 요소(311)의 하나의 인스턴스에 부가적으로, 예를 들어, 입/출력 로직 요소("IOL")(315)의 2개의 인스턴스들을 포함할 수 있다. 본 기술분야의 통상의 기술자에게 명백한 바와 같이, 예를 들어, I/O 로직 요소(315)에 연결된 실제 I/O 패드들은 전형적으로 입/출력 로직 요소(315)의 면적으로 국한되지 않는다.
그려진 예에서, (도 3에 도시된) 다이의 중심에 가까운 수평 면적은 구성, 클록, 및 다른 제어 로직에 대해 사용된다. 이 수평 면적 또는 컬럼(column)으로부터 연장되는 수직 컬럼들(309)은 FPGA의 폭에 걸쳐 클록들 및 구성 신호들을 분배하는 데 사용된다.
도 3에 예시된 아키텍처를 활용하는 일부 FPGA들은, FPGA의 큰 부분을 구성하는 정규 컬럼 구조체를 방해하는 부가적인 로직 블록들을 포함한다. 부가적인 로직 블록들은 프로그래밍가능 블록들 및/또는 전용 로직일 수 있다. 예를 들어, 프로세서 블록(310)은 CLB들 및 BRAM들의 수 개의 컬럼들에 걸쳐 있다. 프로세서 블록(310)은 단일 마이크로프로세서로부터 마이크로프로세서(들), 메모리 제어기들, 주변 기기들 등의 완전한 프로그래밍가능 프로세싱 시스템까지의 범위에 있는 다양한 컴포넌트들일 수 있다.
도 3은 단지 예시적인 FPGA 아키텍처를 예시하도록 의도된다는 것에 유의한다. 예를 들어, 로우(row) 내의 로직 블록들의 수들, 로우들의 상대적 폭, 로우들의 수 및 순서, 로우들에 포함된 로직 블록들의 타입들, 로직 블록들의 상대적 사이즈들, 및 도 3의 상부에 포함된 인터커넥트/로직 구현들은 순전히 예시적인 것이다. 예를 들어, 실제 FPGA에서, CLB들의 하나 초과의 인접한 로우는 CLB들이 나타나는 어디에나 전형적으로 포함되어, 사용자 로직의 효율적인 구현을 용이하게 하지만, 인접한 CLB 로우들의 수는 FPGA의 전체 사이즈에 따라 달라진다.
예에서, IC 다이(101)는, FPGA 아키텍처(300)를 갖는 프로그래밍가능 패브릭을 포함한다. 따라서, IC 다이(101)는 SiP IO(140) 및 시스템 레벨 인터커넥트(350)를 더 포함한다. 시스템 레벨 인터커넥트(350)는 집합 회로들(110) 및 분산 회로들(112)을 포함한다. 예에서, 시스템 레벨 인터커넥트(350)는 시스템 레벨 인터커넥트 링(SIR)을 포함한다. SIR의 다양한 예들이 후술된다. 일반적으로, 시스템 레벨 인터커넥트(350)는 프로그래밍가능 패브릭과 SiP IO(140) 사이의 인터페이스를 제공한다. 예에서, 시스템 레벨 인터커넥트(350)는 (예를 들어, 구성 비트스트림의 로딩을 통해) 프로그래밍가능 패브릭과 유사한 방식으로 구성될 수 있다. 다른 예들에서, 시스템 레벨 인터커넥트(350)는 IC 다이(101)의 동작 동안 동적으로 프로그래밍될 수 있다.
예에서, SiP IO(140)는 프로그래밍가능 패브릭에 구성된 회로들이 SiP 브리지(144)를 통해 IC 다이(103)와 통신하는 데 사용할 수 있는 IO 인터페이스를 제공한다. 회로들은 다른 외부 회로들에 대한 부가적인 IO를 위해, IOB들(304), MGT들(301), 및 임의의 다른 IO들(예를 들어, 메모리 IO들, 커스텀 IO들 등)과 같은 FPGA 아키텍처(300)의 애플리케이션 IO를 사용할 수 있다. 도 3의 예에서, FPGA 아키텍처(300)는 SiP IO(140)와 애플리케이션 IO 양측 모두를 포함한다.
더 상세히 후술되는 다른 예들에서, 애플리케이션 IO의 적어도 일부는 FPGA 외부에, 예컨대 MCM의 컴패니언 IC에 배치될 수 있다. 예를 들어, FPGA 아키텍처를 갖는 IC 다이(101)는 SiP IO(140)만으로 구성될 수 있다. 즉, IOB들(304) 및 MGT들(301)은 FPGA 아키텍처(300)로부터 제거된다. 모든 애플리케이션 IO는 IC 다이(103)에 배치될 수 있다. IC 다이(101) 내의 프로그래밍가능 패브릭은 SiP 브리지(144)를 사용하여 IC 다이(103) 내의 애플리케이션 IO에 액세스할 수 있다. 일부 예들에서, FPGA 아키텍처를 갖는 IC 다이(101)는 SiP IO에 부가적으로 구성 IO, JTAG IO 등과 같은 일부 전용 IO를 포함할 수 있다. 이 전용 IO는 FPGA의 프로그래밍 및/또는 테스팅에 사용되고 프로그래밍가능 패브릭에 구성된 회로들에 대한 애플리케이션 IO로서 사용되지 않는다.
도 4는 다른 예에 따른 IC 시스템(400)을 도시하는 블록도이다. 도 1 및 도 3의 요소들과 동일하거나 유사한 도 4의 요소들은 동일한 참조 번호들로 지정된다. IC 시스템(400)에서, IC 다이(101A)는 시스템 레벨 인터커넥트(350)에 커플링된 프로그래밍가능 패브릭(404)을 갖는 FPGA 다이이다. IC 다이(103A)는 애플리케이션 IO(107A)를 포함하는 주문형 집적 회로(ASIC) 다이("컴패니언 IC"로도 또한 지칭됨)이다. IC 다이(103A)는 애플리케이션 IO(107A)를 갖는 것으로서 설명되지만, 일반적으로, IC 다이(103A)는, IO 회로부 및/또는 다른 타입들의 회로부를 포함할 수 있는 애플리케이션 회로부를 포함할 수 있다. 시스템 레벨 인터커넥트(350)는 SiP IO(140A)의 내부 인터페이스에 커플링된다. 시스템 레벨 인터커넥트(350)는 상술된 집합 회로들(110) 및 분산 회로들(112)의 기능들을 수행한다. SiP IO(140A)는 상술된 SiP IO(140)와 유사하지만, 전송 로직(114) 및 데이터 링크 로직(116)의 일부가 없다. 오히려, 전송 로직(114)은 프로그래밍가능 패브릭(404)에서 구현된다. 예를 들어, 프로그래밍가능 패브릭(404)은 전송 로직(114)을 구현할 수 있는 PE들(102)과 같은 회로들로 구성될 수 있다. PE들(102)은 메모리(104)(예를 들어, BRAM들(303)) 및/또는 지원 회로들(106)(예를 들어, DSP들(306))에 커플링되고 이들을 사용할 수 있다. 다른 예에서, PE들(102), 메모리(104), 및 지원 회로들(106)은 또한 데이터 링크 로직(116)에 대한 아비트레이션 로직(406)을 구현할 수 있다. SiP IO(140A)는 물리 로직(118) 및 데이터 링크 로직(116)의 멀티플렉싱 로직을 포함한다. 또 다른 예에서, 프로그래밍가능 패브릭(404)은 아비트레이션 로직(406)과 전송 로직(114) 양측 모두를 구현할 수 있다.
도 4의 예에서, 시스템 레벨 인터커넥트(350)는 프로그래밍가능 패브릭(404)의 모든 4개의 면들을 둘러싸는 링으로서 도시된다. 프로그래밍가능 패브릭(404)은 그 상부, 하부, 좌측, 및 우측에서 시스템 레벨 인터커넥트(350)에 커플링된다. 추가로 아래에 논의되는 다른 예에서, 시스템 레벨 인터커넥트(350)는 SIR의 상이한 구현들과 같은 다른 형태들을 가질 수 있다. 다른 예에서, 시스템 레벨 인터커넥트(350)는 네트워크-온-칩(network-on-chip)(NoC) 등을 포함할 수 있다.
예에서, 프로그래밍가능 패브릭(404)은 어떠한 애플리케이션 IO도 포함하지 않는다. 오히려, IC 다이(103A) 내의 애플리케이션 IO(107A)는 애플리케이션 IO, 예컨대 IOB들(304), MGT들(301), 및 임의의 다른 IO들(402)(예를 들어, 메모리 IO들, 커스텀 IO들 등)을 포함한다. 애플리케이션 IO(107A)는 집합 회로들(126) 및 분산 회로들(128)에 커플링된다. 프로그래밍가능 패브릭(404)에 구성된 회로들은 시스템 레벨 인터커넥트(305) 및 SiP 브리지(144)를 통해 데이터를 애플리케이션 IO(107A)와 교환할 수 있다. 일부 예들에서, IC 다이(101A)는 또한 구성 IO, JTAG IO 등과 같은 전용 IO(108)를 포함한다. 이 전용 IO(108)의 일부 또는 전부는 또한 IC 다이(103A)에 커플링될 수 있다.
도 5는 예에 따른 IC 다이(104A)의 더 상세한 뷰를 도시하는 블록도이다. 특히, 프로그래밍가능 패브릭(404)은 9개의 패브릭 서브-영역(FSR)들(508A, 508B, ..., 508I)(집합적으로 FSR들(508))을 포함하는 것으로서 도시된다. 일반적으로, 프로그래밍가능 패브릭(404)은 임의의 수의 FSR들을 포함할 수 있다. 각각의 FSR(408)은 도 3에 도시된 프로그래밍가능 패브릭과 유사한 CLB들, BRAM들, DSP들 등의 칼럼들을 포함한다. 추가로, FSR들(508) 각각은 0개 이상의 링 노드(RN)들(504)을 포함한다. 패브릭의 중앙에서의 FSR들(508)(예를 들어, FSR(508E))은 어떠한 RN들(504)도 포함하지 않는다. 패브릭의 내부 에지들을 따른 FSR들(508)(예를 들어, FSR들(508B, 508D, 508F, 및 508H))은 하나의 RN(504)을 포함한다. 패브릭의 코너들에서의 FSR들(508)은 2개의 RN들(504)을 포함한다. 각각의 RN(504)은 복수의 링 서브-노드(RSN)들(506)을 포함한다. 추가로 후술되는 바와 같이, RN들(504)은 각각의 FSR들(508) 내의 패브릭 컴포넌트들 중 일부를 대체시킨다.
RN들(504)은 와이어 트랙들(502)에 커플링된다. 본 예에서, 와이어 트랙들(502)은 프로그래밍가능 패브릭(404) 주위에 링을 형성한다. 아래에 논의되는 바와 같이 다른 인터커넥트 구조체들이 채용될 수 있다. 함께, RN들(504) 및 와이어 트랙들(502)은 시스템 레벨 인터커넥트(350)를 구현할 수 있는 시스템 레벨 인터커넥트를 형성한다. 예에서, 시스템 레벨 인터커넥트는 2개의 채널 세트들, 즉, 패브릭으로부터 데이터를 송신하기 위한 것 및 패브릭으로 데이터를 수신하기 위한 것을 지원한다. 예를 들어, 와이어 트랙들(502)은 256개의 트랙들로 구성되어, 하나의 수신 채널 세트 및 하나의 송신 채널 세트 각각이 128개의 트랙들의 폭을 갖는 것을 가능하게 할 수 있다. 물론, 와이어 트랙들(502)은 256개보다 더 많은 또는 더 적은 트랙들로 구성될 수 있다. RN들(504) 각각은 와이어 트랙들(502)에 커플링된다. 각각의 RN(504)은, 프로그래밍가능 패브릭(404)과 시스템 레벨 인터커넥트 사이의 양방향 인터페이스를 제공하는 라우터 스위치를 포함한다. 프로그래밍가능 패브릭(404)에 구성된 회로들은 RN들(504)을 프로그래밍하는 것에 의해 특정 와이어 트랙들(502)에 커플링될 수 있다. RN들(504)은 FPGA에 로딩된 구성 데이터를 사용하여 프로그래밍되거나, 또는 FPGA의 동작 동안 동적으로 프로그래밍될 수 있다.
각각의 RSN(506)은 RN(504)의 반복가능한 부분을 포함한다. 예를 들어, 와이어 트랙들(502)이 256개의 트랙들로 구성되는 경우, 그러면 RN(504)은, 각각이 32개의 와이어 트랙들을 제어하는 8개의 RSN들(506)을 포함할 수 있다. 물론, RN(504)은 보다 많은 또는 보다 적은 RSN들(506)을 포함할 수 있고 RSN들(506)은 32개보다 더 많은 또는 더 적은 와이어 트랙들을 제어할 수 있다. 각각의 RSN(506)은 그것이 프로그래밍가능 패브릭(404)의 수평 에지를 따른 또는 프로그래밍가능 패브릭(404)의 수직 에지를 따른 RN(504)의 일부인지 여부에 관계없이 동일한 레이아웃을 가질 수 있다. 이러한 방식으로, FPGA에서의 구현을 위한 회로들을 설계하는 데 사용되는 설계 툴들은 수평 에지를 따른 RN들(504)과 수직 에지를 따른 RN들(504) 사이를 구별할 필요가 없다. RSN(506)의 예시적인 구조체가 후술된다.
도 6은 예에 따른 SiP 스택들(601 및 603)을 도시하는 블록도이다. SiP 스택(601)은 SiP IO(예를 들어, SiP IO(140 또는 140A))의 일부일 수 있고 SiP 스택(603)은 다른 SiP IO(예를 들어, SiP IO(142 또는 142A))의 일부일 수 있다. 예에 의한 명료성의 목적들을 위해, 전송 로직(114/124)은 도시되지 않는다.
SiP 스택(601)은 데이터 링크 회로들(602) 및 물리 회로들(604)을 포함한다. SiP 스택(603)은, 데이터 링크 로직을 구현하는 데이터 링크 회로들(608) 및 물리 로직을 구현하는 물리 회로들(606)을 포함한다. 물리 회로들(604 및 606)은 물리 계층을 형성한다. 데이터 링크 회로들(602 및 608)은 데이터 링크 계층을 형성한다.
그 예에서, SiP 스택(601)은 M * w개의 소스 포트들 및 M * w개의 목적지 포트들을 포함한다. 데이터 링크 회로들(602)의 소스 포트들 및 목적지 포트들은 각각 집합 회로들(110) 및 분산 회로들(112)(예를 들어, 시스템 레벨 인터커넥트(350))에 커플링된다. 데이터 링크 회로들(602)은 K * w개의 외부 출력들 및 K * w개의 외부 입력들을 포함한다. 데이터 링크 회로들(602)의 외부 출력들 및 외부 입력들은 물리 회로들(604)에 커플링된다. 물리 회로들(604)은 신호 경로들(138)에 의해 물리 회로들(606)에 커플링된다. 물리 계층에 따라, 신호 경로들(138)은 대략 2 * K개의 신호 경로들을 포함할 수 있다. 데이터 링크 회로들(608)은 K * w개의 외부 입력들 및 K * w개의 외부 출력들을 포함한다. 데이터 링크 회로들(608)의 외부 입력들 및 출력들은 물리 회로들(606)에 커플링된다. 데이터 링크 회로들(608)은 N * w개의 목적지 포트들 및 N * w개의 소스 포트들을 포함한다. 데이터 링크 회로들(608)의 소스 포트들 및 목적지 포트들은 각각 집합 회로들(126) 및 분산 회로들(128)에 커플링된다.
동작 시에, 데이터 링크 회로들(602)은 폭 w의 M개의 집합 채널들을 폭 w의 K개의 물리 채널들로 멀티플렉싱한다. 물리 회로들(604)은 K개의 물리 채널들 상의 패킷들을 신호 경로들(138)에서 직렬화한다. 물리 회로들(606)은 신호 경로들(138)로부터의 신호들을 폭 w의 K개의 물리 채널들로 역직렬화한다. 데이터 링크 회로들(608)은 K개의 물리 채널들을 폭 w의 N개의 분산 채널들로 디멀티플렉싱한다. 데이터 링크 회로들(608)로부터 데이터 링크 회로들(602)로 송신할 때(즉, 역방향)의 동작은 동일하다.
도 7은 예에 따른 데이터 링크 계층을 더 상세히 도시하는 블록도이다. 도 7의 예에서, M = N = 3이고 K = 2이다. 데이터 링크 회로들(602)은 송신 큐들(702-1 내지 702-3)(집합적으로 송신 큐들(702)), 멀티플렉서들(704-1 및 704-2)(집합적으로 멀티플렉서들(704)), 및 아비트레이션 로직(406)을 포함한다. 데이터 링크 회로들(608)은 멀티플렉서들(706-1 내지 706-3)(집합적으로 멀티플렉서들(706))을 포함한다. 송신 큐들(702-1 내지 702-3)의 입력들은 각각 소스 포트들(708-1 내지 708-3)(집합적으로 소스 포트들(708))에 커플링된다. 멀티플렉서들(706-1 내지 706-3)의 출력들은 각각 목적지 포트들(710-1 내지 710-3)(집합적으로 목적지 포트들(710))에 커플링된다. 멀티플렉서들(704)의 제어 입력들은 아비트레이션 로직(406)의 출력들에 커플링된다. 아비트레이션 로직(406)의 입력들은 송신 큐들(702)의 출력들에 커플링된다. 예에서, 아비트레이션 로직(406)은 SiP IO와는 별개로, 예컨대 프로그래밍가능 패브릭(404)에서 구현된다.
동작 시에, 아비트레이션 로직(406)은 멀티플렉서들(704)을 제어하여 K개의 물리 채널들에 걸쳐 송신된 패킷들의 목적지 충돌들이 없도록 한다. 송신될 각각의 패킷은 목적지 포트를 포함한다. 아비트레이션 로직(406)은 K개의 물리 채널들에 걸쳐 병렬로 송신될 2개의 패킷들이 동일한 목적지 포트를 갖지 않는다는 것을 보장하기 위한 아비트레이션 알고리즘을 실행한다. 예시적인 아비트레이션 알고리즘들이 후술된다.
도 8은 예에 따른 SiP 브리지의 데이터 링크 계층 내의 아비트레이션의 방법(800)을 도시하는 흐름도이다. 방법(800)은 아비트레이션 로직(406)에 의해 수행될 수 있다. 방법(800)은 단계 802에서 시작하고, 여기서 아비트레이션 로직(406)은 모든 목적지 포트들이 미사용된 것으로서 마킹한다. 도 7의 예에서, 목적지 포트들은 출력들(710-1 내지 710-3)을 포함한다. 일반적으로, N개의 목적지 포트들이 있을 수 있는데, 대응하는 분산 회로들의 각각의 입력 채널에 대해 하나씩 있을 수 있다.
단계 804에서, 아비트레이션 로직(406)은 스케줄링을 위한 멀티플렉서를 선택한다. 도 7의 예에서, 아비트레이션 로직(406)에 의해 스케줄링될 2개의 멀티플렉서들(704-1 및 704-2)이 있다. 일반적으로, K개의 멀티플렉서들(704)이 있을 수 있는데, 각각의 물리 채널에 대해 하나씩 있을 수 있다.
단계 806에서, 아비트레이션 로직(406)은 송신할 준비가 된 각각의 송신 큐에 대한 목적지 포트를 식별한다. 도 7의 예에서, 3개의 송신 큐들(702-1 내지 702-3)이 있다. 일반적으로, M개의 송신 큐들이 있을 수 있는데, 대응하는 집합 회로의 각각의 출력 채널에 대해 하나씩 있을 수 있다. 송신 큐가 비어 있지 않은 경우, 아비트레이션 로직(406)는 송신 큐를 송신할 준비가 된 것으로서 간주할 수 있다. 송신 큐들(702) 각각은 특정 목적지 포트를 갖는 하나 이상의 패킷들을 저장한다. 아비트레이션 로직(406)은 목적지 포트들을 식별하기 위해 패킷(들)을 파싱한다.
단계 808에서, 아비트레이션 로직(406)은 송신을 위해 미사용된 목적지 포트(들)를 타깃으로 하는 하나 이상의 송신 큐들을 스케줄링한다. 예에서, 최대 매칭 알고리즘의 변형들을 사용하여 스케줄링이 병렬로 행해질 수 있다. 사용된 목적지 포트를 타깃으로 하는 송신 큐가 패킷(들)을 포함하는 경우, 아비트레이션 로직(406)은 송신 큐를 홀딩한다. 단계 810에서, 아비트레이션 로직(406)은 식별된 목적지 포트들을 사용된 것으로서 마킹한다. 단계 812에서, 아비트레이션 로직은 스케줄링할 멀티플렉서들이 더 있는지 여부를 결정한다. 그러한 경우, 방법(800)은 단계 804로 리턴하고 다음 멀티플렉서를 선택한다. 그렇지 않으면, 방법(800)은 단계 802로 리턴하고 모든 목적지 포트들을 미사용된 것으로서 마킹한다. 이와 같이, 아비트레이션 로직(406)은 각각의 멀티플렉서(예를 들어, 멀티플렉서들(704) 각각)가 스케줄링되도록 단계 804 내지 단계 812를 실행한다. 아비트레이션 로직(406)은 다수의 스케줄링 라운드들에 대해 단계 802 내지 단계 812를 실행한다. 이러한 방식으로, 아비트레이션 로직(406)은 멀티플렉서들(704)을 제어하기 위한 스케줄들을 생성 및 구현하여 멀티플렉서들(704)이 송신 큐들(702)의 출력을 멀티플렉싱하여, 물리 채널들을 통해 병렬로 송신된 패킷들이 상이한 목적지 포트들을 갖도록 하고 멀티플렉서들(706)에서 혼잡 또는 충돌이 없도록 한다.
도 9는 다른 예에 따른 SiP 브리지의 데이터 링크 계층 내의 아비트레이션의 방법(900)을 도시하는 흐름도이다. 방법(900)은 아비트레이션 로직(406)에 의해 수행될 수 있다. 방법(900)은 목적지 포트 충돌들을 관리하는 것에 부가적으로 아비트레이션 로직(406)이 송신 큐들(702) 각각에 가중치들을 할당하고 가중치들에 기초하여 물리 채널들을 통한 송신을 위해 송신 큐들로부터 패킷들을 선택한다는 점에서 방법(800)과는 상이하다.
방법(900)은 단계 902에서 시작하고, 여기서 아비트레이션 로직(406)은 모든 목적지 포트들이 미사용된 것으로서 마킹한다. 도 7의 예에서, 목적지 포트들은 출력들(710-1 내지 710-3)을 포함한다. 일반적으로, N개의 목적지 포트들이 있을 수 있는데, 대응하는 분산 회로들의 각각의 입력 채널에 대해 하나씩 있을 수 있다.
단계 904에서, 아비트레이션 로직(406)은 할당된 가중치들에 기초하여 각각의 송신 큐에 대한 결손 카운트들을 업데이트한다. 즉, 아비트레이션 로직(406)은 각각의 송신 큐에 가중치를 할당할 수 있다. 일부 송신 큐들은 다른 송신 큐들보다 더 많은 가중치(더 높은 우선순위)를 가질 수 있다. 결손 카운트들은 스케줄링 동안 주어진 시간에서 주어진 송신 큐로부터 얼마나 많은 패킷들이 선택되는지를 제어하는 데 사용된다.
단계 906에서, 아비트레이션 로직(406)은 스케줄링을 위한 멀티플렉서를 선택한다. 도 7의 예에서, 아비트레이션 로직(406)에 의해 스케줄링될 2개의 멀티플렉서들(704-1 및 704-2)이 있다. 일반적으로, K개의 멀티플렉서들(704)이 있을 수 있는데, 각각의 물리 채널에 대해 하나씩 있을 수 있다.
단계 908에서, 아비트레이션 로직(406)은 송신 큐(예를 들어, 송신 큐들(702) 중 하나)를 선택한다. 단계 910에서, 아비트레이션 로직(406)은 선택된 송신 큐 내의 패킷(들)에 의해 타깃으로 된 목적지 포트가 미사용되는지 여부를 결정한다. 그렇지 않은 경우, 방법(900)은 단계 908로 리턴하고 아비트레이션 로직(406)은 다음 송신 큐를 선택한다. 그렇지 않으면, 방법(900)은 단계 912로 진행한다.
단계 912에서, 아비트레이션 로직(406)은 식별된 목적지 포트를 사용 중인 것으로서 마킹한다. 단계 914에서, 아비트레이션 로직(406)은 비워질 때까지 또는 대응하는 결손 카운트가 임계치를 만족할 때까지 송신을 위해 선택된 송신 큐를 스케줄링한다. 보다 높은 결손 카운트는, 보다 적은 결손 카운트보다 주어진 송신 큐로부터 더 많은 패킷들이 선택되게 한다.
단계 916에서, 아비트레이션 로직(406)은 선택된 송신 큐가 비어 있는지 여부를 결정한다. 그러한 경우, 방법(900)은 단계 918로 진행하고, 여기서 아비트레이션 로직(406)은 선택된 송신 큐에 대한 결손 카운트를 초기 값으로 리셋한다. 선택된 송신 큐가 비어 있지 않은 경우, 방법(900)은 그 대신에 단계 920으로 진행한다.
단계 920에서, 아비트레이션 로직(406)은 이 반복에서 프로세싱될 송신 큐들이 더 있는지 여부를 결정한다. 모든 송신 큐들이 프로세싱된 경우, 방법(900)은 단계 922로 진행한다. 그렇지 않으면, 방법(900)은 단계 908로 리턴하고 다음 송신 큐를 선택한다. 단계 922에서, 아비트레이션 로직(406)은 스케줄링될 멀티플렉서들이 더 있는지 여부를 결정한다. 그러한 경우, 방법(900)은 단계 906으로 리턴하고 다음 멀티플렉서를 선택한다. 그렇지 않으면, 방법(900)은 단계 902로 리턴하고 모든 목적지 포트들을 미사용된 것으로서 마킹한다. 이와 같이, 아비트레이션 로직(406)은 각각의 멀티플렉서(예를 들어, 멀티플렉서들(704) 각각)가 스케줄링되도록 단계 906 내지 단계 922를 실행한다. 아비트레이션 로직(406)은 선택된 멀티플렉서가 주어진 각각의 송신 큐에 대해 단계 908 내지 단계 920을 실행한다. 아비트레이션 로직(406)은 다수의 스케줄링 라운드들에 대해 단계 902 내지 단계 922를 실행한다. 이러한 방식으로, 아비트레이션 로직(406)은 멀티플렉서들(704)을 제어하기 위한 스케줄들을 생성 및 구현하여 멀티플렉서들(704)이 송신 큐들(702)의 출력을 멀티플렉싱하여, 물리 채널들을 통해 병렬로 송신된 패킷들이 상이한 목적지 포트들을 갖도록 하고 멀티플렉서들(706)에서 혼잡 또는 충돌이 없도록 한다. 아비트레이션 로직(406)은 또한 가중 스킴을 사용하여 큐 우선순위 및 공정성을 고려한다.
도 10은 예에 따른 IC 시스템 내의 프로그래밍가능 IC로부터 데이터를 송신하는 방법(1000)을 도시하는 흐름도이다. 방법(1000)은 IC 다이(101)에 의해 수행되어 IC 시스템(400)으로부터의 프로그래밍가능 패브릭(404)으로부터 데이터를 송신할 수 있다. 방법(1000)은 단계 1002에서 시작하고, 여기서 시스템 레벨 인터커넥트(350)는 그의 집합 채널들을 통해 SiP IO(140A)에 데이터를 커플링한다. 예에서, 프로그래밍가능 패브릭(404)은, 데이터를 패킷들로 분할하도록 구성된 전송 로직(114)을 포함한다(단계 1004).
단계 1006에서, SiP IO(140A)는 SiP 브리지(144)의 보다 작은 수의 물리 채널들을 통해 집합 채널들로부터 데이터를 송신한다. 예를 들어, 단계 1008에서, 데이터 링크 로직(116)은 집합 채널들로부터의 데이터를 송신 큐들로 큐잉한다. 단계 1010에서, 데이터 링크 로직(116)은 물리 채널들 중에서 송신 큐들을 멀티플렉싱하는 한편, 아비트레이션 로직(406)은 목적지 충돌들을 관리한다. 단계 1012에서, 아비트레이션 로직(406)은 또한 송신 큐들에 가중치들을 할당하고 가중치들에 기초하여 송신을 위한 패킷들을 선택할 수 있다.
단계 1014에서, IC 다이(103) 내의 SiP IO(142)는 SiP 브리지(144)로부터 데이터를 수신한다. 단계 1016에서, 분산 회로들(128)은 분산 채널들을 통해 애플리케이션 IO(107A)에 SiP IO(142)로부터의 데이터를 커플링한다. 단계 1018에서, 애플리케이션 IO(107A)는 데이터를 소비하거나 및/또는 데이터를 외부 회로(들)로 송신한다.
도 11은 예에 따른 IC 시스템 내의 프로그래밍가능 IC로 데이터를 수신하는 방법(1100)을 도시하는 흐름도이다. 방법(1100)은 IC 다이(101)에 의해 수행되어 애플리케이션 회로들(107)로부터 데이터를 수신할 수 있다. 방법(1100)은 단계 1102에서 시작하고, 여기서 집합 회로들(126)은 집합 채널들을 통해 SiP IO(142)에 애플리케이션 회로들(107)로부터의 데이터를 커플링한다. 예에서, SiP IO(142)는, 데이터를 패킷들로 분할하도록 구성된 전송 로직(124)을 포함한다(단계 1104).
단계 1106에서, SiP IO(142)는 SiP 브리지(144)의 보다 작은 수의 물리 채널들을 통해 집합 채널들로부터 데이터를 송신한다. 예를 들어, 단계 1108에서, 데이터 링크 로직(122)은 집합 채널들로부터의 데이터를 송신 큐들로 큐잉한다. 단계 1110에서, 데이터 링크 로직(122)은 물리 채널들 중에서 송신 큐들을 멀티플렉싱하는 동안, 목적지 충돌들을 관리한다. 단계 1112에서, 데이터 링크 로직(122)은 또한 송신 큐들에 가중치들을 할당하고 가중치들에 기초하여 송신을 위한 패킷들을 선택할 수 있다. 즉, 데이터 링크 로직(122)은 아비트레이션 로직(406)과 유사한 아비트레이션 로직을 포함할 수 있다.
단계 1114에서, IC 다이(101) 내의 SiP IO(140A)는 SiP 브리지(144)로부터 데이터를 수신한다. 단계 1116에서, 시스템 레벨 인터커넥트(350)는 분산 채널들을 통해 프로그래밍가능 패브릭(404)에 SiP IO(140A)로부터의 데이터를 커플링한다. 단계 1118에서, 프로그래밍가능 패브릭(404)은 데이터를 소비한다.
도 12는 예시적인 구현에 따른 물리 로직(1200)을 도시하는 블록도이다. 물리 로직(1200)은 복수의 SerDes 트랜시버들(1201), 예를 들어, SerDes 트랜시버들(1201-1 내지 1201-K)을 포함한다. 각각의 SerDes 트랜시버(1201)는 K개의 출력 물리 채널들 및 K개의 입력 물리 채널들을 지원한다. 각각의 SerDes 트랜시버(1201)는, 복수의 신호 라인들, 예를 들어, 신호 라인들(1204-1 내지 1204-w)을 포함하는 병렬 인터페이스(1204)를 포함한다. 각각의 SerDes 트랜시버(1201)는 직렬 인터페이스(1202)를 포함한다. 병렬 인터페이스들(1204)은, 상술된 바와 같이, 데이터 링크 회로들의 외부 포트들에 커플링된다. 각각의 SerDes 트랜시버(1201)는 그의 병렬 입력을 직렬화하거나 또는 그의 직렬 입력을 역직렬화하도록 구성된다.
상기에 언급된 바와 같이, 본 명세서에서 설명되는 IC 시스템들은 특정 요건들을 충족시키는 임의의 타입의 USR SerDes 기술을 사용할 수 있다. 우선순위 순으로 고려할 물리 계층의 3개의 파라미터들이 있다: (1) 핀 당 대역폭; (2) 비트 당 전력; 및 (3) 면적. 성능 지수(figure of merit)(FoM)는 처음 2개의 인자들을 포함하는 임의의 물리 로직에 대해 정의될 수 있다: FoM = (핀 당 대역폭) / (비트 당 전력). 예에서, 본 명세서에서 설명되는 물리 로직은 20 (Gb/s)(pJ/비트) 이상인 FoM을 포함할 수 있다.
도 13은 예에 따른 프로그래밍가능 패브릭(404)의 수평 에지와의 시스템 레벨 인터커넥트(350)의 집적을 도시하는 블록도이다. 그 예에서, 프로그래밍가능 패브릭(404)은 인터커넥트 요소들(311) 및 CLE들(312)의 패브릭을 포함한다. 각각의 CLE(312)는 슬라이스(312L) 및 슬라이스(312M)를 포함한다. CLE 슬라이스들(312L 및 312M)은 룩업 테이블(LUT)들, 멀티플렉서들, 플립 플롭들, 조합 로직 등을 포함할 수 있다. 인터커넥트 요소들(111)은 CLE들(312)을 프로그래밍가능 인터커넥트(도 3에 도시되고 상술됨)에 커플링하도록 구성된다.
시스템 레벨 인터커넥트(350)는 프로그래밍가능 패브릭(404)의 수평 에지(수평 패브릭 에지(1308)) 및 와이어 트랙들(502)을 포함한다. 수평 패브릭 에지(1308)는 인터커넥트 요소들(311A) 및 RSN들(506)을 포함한다. 각각의 RSN(506)은 한 쌍의 CLE들(312L 및 312M)과 등가인 영역을 점유한다. 각각의 RSN(506)은, 와이어 트랙들(502)의 일부에 커플링된 스위치 회로부를 포함한다. 특히, 각각의 RSN(506)은 와이어 트랙들(502)을 통한 인접 회로부에 대한 시계방향(CW) 링크들(1304)을 포함한다. 각각의 RSN(506)은 또한 와이어 트랙들(502)을 통한 인접 회로부에 대한 반시계방향(CCW) 링크들(1302)을 포함한다. 인접 회로부는 RSN(506)의 위치에 따라 다른 RN 또는 SiP IO(140A)에서의 RSN일 수 있다. 인터커넥트 요소들(311A)은 RSN들(506)을 프로그래밍가능 패브릭(404)의 프로그래밍가능 인터커넥트에 커플링하도록 구성된다.
예에서, 와이어 트랙들(502)은 상기의 예들에서 설명된 바와 같이 256개의 트랙들을 포함한다. RSN(506)은 CW 및 CCW 방향들 양측 모두로 와이어 트랙들(502)의 일부에 커플링된다. 예를 들어, RSN(506)은 CW 및 CCW 방향들 각각에서 32개의 와이어 트랙들(502)에 커플링될 수 있다(예를 들어, 총 64개의 링크들). 복수의 RSN들(506)은, 모든 와이어 트랙들(502)에 커플링되는 RN(504)을 형성하도록 조합된다. 예를 들어, RSN들(506)이 32개의 와이어 트랙들을 제어하는 경우, 그러면 RN(504)은 8개의 RSN들(506)을 포함한다.
하나 이상의 세트들의 RSN들(506)은 도 13에 도시된 바와 같이 프로그래밍가능 패브릭(404)에 집적되어 수평 에지를 따라 하나 이상의 RN들(504)을 구성할 수 있다. 예를 들어, 프로그래밍가능 패브릭(404)의 각각의 FSR(508)은 하나의 RN(504)을 포함할 수 있다. CLE들(312)의 일부는 패브릭 에지(1308)로부터 제거되고 RSN들(506)의 회로부로 대체된다. 프로그래밍가능 인터커넥트의 일부(예를 들어, 수평의 긴 와이어들)는 와이어 트랙들(502)을 수용하도록 제거된다.
도 14는 예에 따른 프로그래밍가능 패브릭(404)의 수직 에지와의 시스템 레벨 인터커넥트(350)의 집적을 도시하는 블록도이다. 그 예에서, 프로그래밍가능 패브릭(404)은 인터커넥트 요소들(111) 및 CLE들(312)의 패브릭을 포함한다. 각각의 CLE(312)는 슬라이스(312L) 및 슬라이스(312M)를 포함한다. CLE 슬라이스들(312L 및 312M)은 룩업 테이블(LUT)들, 멀티플렉서들, 플립 플롭들, 조합 로직 등을 포함할 수 있다. 인터커넥트 요소들(311)은 CLE들(312)을 프로그래밍가능 인터커넥트(도 3에 도시되고 상술됨)에 커플링하도록 구성된다.
시스템 레벨 인터커넥트(350)는 프로그래밍가능 패브릭(404)의 수직 에지(수직 패브릭 에지(1408)) 및 와이어 트랙들(502)을 포함한다. 수직 패브릭 에지(1408)는 인터커넥트 요소들(311A) 및 RSN들(506)을 포함한다. 각각의 RSN(506)은 한 쌍의 CLE들(312L 및 312M)과 등가인 영역을 점유한다. 각각의 RSN(506)은, 와이어 트랙들(502)의 일부에 커플링된 스위치 회로부를 포함한다. 특히, 각각의 RSN(506)은 와이어 트랙들(502)을 통한 인접 회로부에 대한 CW 링크들(1404)을 포함한다. 각각의 RSN(506)은 또한 와이어 트랙들(502)을 통한 인접 회로부에 대한 CCW 링크들(1402)을 포함한다. 인접 회로부는 RSN(506)의 위치에 따라 다른 RN 또는 SiP IO(140A)에서의 RSN일 수 있다. 인터커넥트 요소들(311A)은 RSN들(506)을 프로그래밍가능 패브릭(404)의 프로그래밍가능 인터커넥트에 커플링하도록 구성된다.
예에서, 와이어 트랙들(502)은 상기의 예들에서 설명된 바와 같이 256개의 트랙들을 포함할 수 있다. RSN(506)은 CW 및 CCW 방향들 양측 모두로 와이어 트랙들(502)의 일부에 커플링된다. 예를 들어, RSN(506)은 CW 및 CCW 방향들 각각에서 32개의 와이어 트랙들(502)에 커플링될 수 있다(예를 들어, 총 64개의 링크들). 복수의 RSN들(506)은, 모든 와이어 트랙들(502)에 커플링되는 RN(504)을 형성하도록 조합된다. 예를 들어, RSN들(506)이 32개의 와이어 트랙들을 제어하는 경우, 그러면 RN(504)은 8개의 RSN들(506)을 포함한다.
하나 이상의 세트들의 RSN들(506)은 도 14에 도시된 바와 같이 프로그래밍가능 패브릭(404)에 집적되어 수직 에지를 따라 하나 이상의 RN들(504)을 구성할 수 있다. 예를 들어, 프로그래밍가능 패브릭(404)의 각각의 FSR(508)은 그의 수직 에지들 중 하나 또는 양측 모두를 따른 하나의 RN(504)을 포함할 수 있다. CLE들(312)의 일부는 수직 패브릭 에지(1408)로부터 제거되고 RSN들(506)의 회로부로 대체된다. 프로그래밍가능 인터커넥트의 일부(예를 들어, 수직의 긴 와이어들)는 와이어 트랙들(502)을 수용하도록 제거된다.
도 15는 예에 따른 RSN(506)을 도시하는 블록도이다. RSN(506)은 아비터(arbiter)(1502), 버퍼들(1504), 플립 플롭들(1506), 플립 플롭들(1508), 버퍼들(1510), 버퍼들(1512), 플립 플롭들(1514), 멀티플렉서(1516), 멀티플렉서(1518), 및 멀티플렉서(1520)를 포함한다. 버퍼들(1510)은 좌측 RSN으로부터(예를 들어, 동일한 RN 또는 인접한 RN에서) 16 비트 입력을 수신한다. 마찬가지로, 버퍼들(1504)은 우측 RSN으로부터(예를 들어, 동일한 RN 또는 인접한 RN에서) 또는 SiP IO(140)로부터 16 비트 입력을 수신한다. 버퍼들(1510) 및 버퍼들(1504)의 출력들은 멀티플렉서들(1518)의 입력들에 커플링된다. 멀티플렉서들(1518)의 출력은 플립 플롭들(1514)의 입력에 커플링된다. 플립 플롭들(1514)은, 인터커넥트 요소(311A)에 커플링된 16 비트 출력을 포함한다.
버퍼들(1512)은, 인터커넥트 요소(311A)에 커플링된 16 비트 입력을 포함한다. 버퍼들(1512)의 출력은 멀티플렉서(1520)의 입력 및 멀티플렉서(1516)의 입력에 커플링된다. 멀티플렉서(1520)의 다른 입력은 버퍼들(1504)의 출력에 커플링된다. 멀티플렉서(1516)의 다른 입력은 버퍼들(1510)의 출력에 커플링된다. 멀티플렉서들(1520)의 출력은 플립 플롭들(1508)의 입력에 커플링된다. 멀티플렉서들(1516)의 출력은 플립 플롭들(1506)의 입력에 커플링된다. 플립 플롭들(1508)은, 좌측 RSN에 커플링된 16 비트 출력을 포함한다. 플립 플롭들(1506)은, 우측 RSN 또는 SiP IO(140A)에 커플링된 16 비트 출력을 포함한다. 멀티플렉서들(1516, 1518, 및 1520)의 제어 입력들은 아비터(1502)의 출력들에 커플링된다. 아비터(1502)의 입력들은 버퍼들(1504, 1510,및 1512)의 출력들에 커플링된다.
동작 시에, RSN(506)은 버퍼들(1512)을 사용하여 인터커넥트 요소(311A)를 통해 프로그래밍가능 패브릭(404)으로부터의 입력을 버퍼링한다. 아비터(1502)는 버퍼링된 입력을 플립 플롭들(1508) 또는 플립 플롭들(1506)로 라우팅한다. 플립 플롭들(1506)은 CW 링크들을 통해 와이어 트랙들(502)에 커플링된다. 플립 플롭들(1508)은 CCW 링크들을 통해 와이어 트랙들(502)에 커플링된다. 플립 플롭들(1506 및 1508)은 인접 회로부(예를 들어, 인접 RSN 또는 SiP IO(140A))로의 송신을 위해 데이터를 등록한다. RSN(506)은 또한 버퍼들(1504 및 1510)을 사용하여 인접 회로부(예를 들어, 인접 RSN 또는 SiP IO(140A))로부터의 입력을 버퍼링한다. 버퍼들(1504)은 CCW 링크들을 통해 와이어 트랙들(502)에 커플링된다. 버퍼들(1510)은 CW 링크들을 통해 와이어 트랙들(502)에 커플링된다. 아비터(1502)는 버퍼들(1504) 또는 버퍼들(1510)로부터의 버퍼링된 입력을 플립 플롭들(1514)로 라우팅한다. 플립 플롭들(1514)은 인터커넥트 요소(311A)를 통해 프로그래밍된 패브릭(404)에 등록된 출력을 제공한다. 따라서, RSN(506)은 16 비트 스위치를 구현한다. 다른 예들에서, RSN(504)은 16 비트보다 더 작은 또는 더 큰 폭을 갖는 스위치를 구현할 수 있다. 도 15에 도시된 RSN(506)의 레이아웃은 프로그래밍가능 패브릭(404)의 수평 에지 또는 수직 에지를 따라 동일한 RSN 구현이 사용되게 한다.
도 16a 내지 도 16f는 시스템 레벨 인터커넥트(350)의 예시적인 SIR 구현들을 도시한다. 도 16a에 도시된 바와 같이, 와이어 트랙들(502)은 프로그래밍가능 패브릭(404) 주위의 트랙들의 링을 포함한다. RN들(504)은 프로그래밍가능 패브릭(404)의 양측 모두의 수평 에지들 및 양측 모두의 수직 에지들을 따라 집적된다. 와이어 트랙들(502)은 RN들(504)과 SiP IO(140A) 사이에 커플링된다. 프로그래밍가능 패브릭(404)에 구성된 회로부(1602)는 에지들 중 임의의 것을 따라 배치된 RN들(504) 중 임의의 것을 통해 SiP IO(140A)에 커플링될 수 있다.
도 16b에 도시된 바와 같이, 와이어 트랙들(와이어 트랙들(502A))의 다른 구현은 프로그래밍가능 패브릭 주위의 트랙들의 부분 링을 포함한다. 도시된 예에서, 와이어 트랙들(502A)은 프로그래밍가능 패브릭(404)의 양측 모두의 수평 에지들과 하나의 수직 에지를 둘러싸고 있다. 다른 예들에서, 와이어 트랙들(502A)은 프로그래밍가능 패브릭(404)의 양측 모두의 수직 에지들과 하나의 수평 에지를 둘러싸고 있을 수 있다. 또 다른 예들에서, 와이어 트랙들(502A)은 하나의 수직 에지 및 하나의 수평 에지에 인접할 수 있다. 와이어 트랙들(502A)은 RN들(504)과 SiP IO(140A) 사이에 커플링된다. 프로그래밍가능 패브릭(404)에 구성된 회로부(1604)는 RN들(504) 중 임의의 것을 통해 SiP IO(140A)에 커플링될 수 있다.
도 16c에 도시된 바와 같이, 와이어 트랙들(와이어 트랙들(502B))의 다른 구현은 프로그래밍가능 패브릭(404)의 하나의 수평 에지에 인접한 트랙들을 포함한다. 와이어 트랙들(502B)은 RN들(504)과 SiP IO(140A) 사이에 커플링된다. 프로그래밍가능 패브릭(404)에 구성된 회로부(1606)는 RN들(504) 중 임의의 것을 통해 SiP IO(140A)에 커플링될 수 있다.
도 16d에 도시된 바와 같이, 와이어 트랙들(와이어 트랙들(502C))의 다른 구현은 프로그래밍가능 패브릭(404)의 하나의 수직 에지에 인접한 트랙들을 포함한다. 와이어 트랙들(502C)은 RN들(504)과 SiP IO(140A) 사이에 커플링된다. 프로그래밍가능 패브릭(404)에 구성된 회로부(1608)는 RN들(504) 중 임의의 것을 통해 SiP IO(140A)에 커플링될 수 있다.
도 16e에 도시된 바와 같이, SIR의 다른 구현은 2개의 세트들의 와이어 트랙들(502A 및 502C)을 포함한다. 와이어 트랙들(502A)은 프로그래밍가능 패브릭(404)의 하나 이상의 면들(예를 들어, 도시된 바와 같은 2개의 수평 및 하나의 수직 면)에 인접해 있다. 와이어 트랙들(502C)은 프로그래밍가능 패브릭(404)의 하나 이상의 면들(예를 들어, 도시된 바와 같은 하나의 수직 면)에 인접해 있다. 와이어 트랙들(502A)은 RN들(504)과 SiP IO(140A) 사이에 커플링된다. 와이어 트랙들(502C)은 다른 세트의 RN들(504)과 다른 SiP IO 회로(104B) 사이에 커플링된다. 프로그래밍가능 패브릭(404)에 구성된 회로부(1610)는 와이어 트랙들(502A)에 커플링된 RN들(504) 중 임의의 것을 통해 SiP IO(140A)에 커플링될 수 있다. 프로그래밍가능 패브릭(404)에 구성된 회로부(1612)는 와이어 트랙들(502C)에 커플링된 RN들(504) 중 임의의 것을 통해 SiP IO 회로(140B)에 커플링될 수 있다.
도 16f에 도시된 바와 같이, SIR의 다른 구현은 와이어 트랙들(502)(예를 들어, 와이어 트랙들(502-1 내지 502-4))의 메시를 포함한다. 각각의 세트의 와이어 트랙들(502)은 프로그래밍가능 패브릭(404)의 하나 이상의 FSR들(508)을 둘러싸고 있다. 와이어 트랙들(502)은 메시로서 인터커넥트된다. 각각의 FSR(508)은, 그의 하나 이상의 에지들을 따라 배치된 RN들(504)을 포함한다. RN들(504)은 각각의 와이어 트랙들(502-1 내지 502-4)에 커플링된다. 와이어 트랙들(502)의 메시는 SiP IO(140A)에 커플링된다. FSR들(508) 중 임의의 것에 구성된 회로부(도시되지 않음)는 하나 이상의 RN들(504) 및 하나 이상의 와이어 트랙들(502-1 내지 502-4)을 통해 SiP IO(140A)에 커플링될 수 있다. 4개의 와이어 트랙 링들이 도시되어 있지만, SIR은 4개보다 더 많은 또는 더 적은 와이어 트랙 링들을 포함할 수 있다.
도 17은 예에 따른 IC 시스템 내의 프로그래밍가능 IC로부터 데이터를 송신하는 방법(1700)을 도시하는 흐름도이다. 방법(1700)은 IC 다이(101)에 의해 수행되어 IC 시스템(400)으로부터의 프로그래밍가능 패브릭(404)으로부터 데이터를 송신할 수 있다. 방법(1700)은 단계 1702에서 시작하고, 프로그래밍가능 패브릭 내의 회로부는 프로그래밍가능 패브릭의 에지들과 집적된 링 노드(들)(504)에 데이터를 커플링한다. 단계 1703에서, 링 노드(들)(504)는 와이어 트랙들(502)의 채널들을 통해 SiP IO(140A)에 데이터를 커플링한다. 예에서, 프로그래밍가능 패브릭(404)은, 데이터를 패킷들로 분할하도록 구성된 전송 로직(114)을 포함한다(단계 1704).
단계 1706에서, SiP IO(140A)는 SiP 브리지(144)의 보다 작은 수의 물리 채널들을 통해 버스 채널들로부터 데이터를 송신한다. 예를 들어, 단계 1708에서, 데이터 링크 로직(116)은 버스 채널들로부터의 데이터를 송신 큐들로 큐잉한다. 단계 1710에서, 데이터 링크 로직(116)은 물리 채널들 중에서 송신 큐들을 멀티플렉싱하는 한편, 아비트레이션 로직(406)은 목적지 충돌들을 관리한다. 단계 1712에서, 아비트레이션 로직(406)은 또한 송신 큐들에 가중치들을 할당하고 가중치들에 기초하여 송신을 위한 패킷들을 선택할 수 있다.
단계 1714에서, IC 다이(103) 내의 SiP IO(142)는 SiP 브리지(144)로부터 데이터를 수신한다. 단계 1716에서, 분산 회로들(128)은 분산 채널들을 통해 애플리케이션 IO(107A)에 SiP IO(142)로부터의 데이터를 커플링한다. 단계 1718에서, 애플리케이션 IO(107A)는 데이터를 외부 회로(들)로 송신한다.
일부 부가적인 예들이 후속된다.
일 예에서, 집적 회로(IC) 시스템이 제공될 수 있고, 그러한 시스템은, 상부에 장착되는 프로그래밍가능 집적 회로(IC) 다이 및 컴패니언 IC 다이를 갖는 패키지 기판 - 프로그래밍가능 IC 다이는 프로그래밍가능 패브릭을 포함하고 컴패니언 IC 다이는 애플리케이션 회로부를 포함함 -; 프로그래밍가능 IC 다이에 배치된 제1 SiP IO 회로, 컴패니언 IC 다이에 배치된 제2 SiP IO 회로, 및 제1 SiP IO 회로와 제2 SiP IO 회로를 전기적으로 커플링하는 패키지 기판 상의 전도성 인터커넥트를 포함하는 시스템-인-패키지(SiP) 브리지; 프로그래밍가능 패브릭과 제1 SiP IO 회로 사이에 커플링된 프로그래밍가능 IC 다이 내의 제1 집합 및 제1 분산 회로들; 및 애플리케이션 IO와 제2 SiP IO 회로 사이에 커플링된 컴패니언 IC 다이 내의 제2 집합 및 제2 분산 회로들을 포함할 수 있다.
그러한 IC 시스템에서, 제1 및 제2 SiP IO 회로들은 전도성 인터커넥트를 통해 구현된 제1 복수의 물리 채널들 상에서 제1 및 제2 집합 회로들의 멀티-채널 출력을 각각 멀티플렉싱하고; 제1 및 제2 분산 회로들의 멀티-채널 입력 상에서 전도성 인터커넥트를 통해 구현된 제2 복수의 채널들 각각으로부터의 입력을 디멀티플렉싱하도록 구성될 수 있다.
그러한 IC 시스템에서, 제1 집합 및 제1 분산 회로들은, 프로그래밍가능 패브릭의 프로그래밍가능 인터커넥트와 SiP IO 회로 사이에 커플링된 시스템 레벨 인터커넥트를 포함할 수 있다.
그러한 IC 시스템에서, 시스템 레벨 인터커넥트는 네트워크-온-칩(NoC)을 포함할 수 있다.
그러한 IC 시스템에서, 프로그래밍가능 IC 다이는 SiP 브리지와는 별개로 컴패니언 IC 다이로의 직접 커넥션을 포함할 수 있다.
그러한 IC 시스템에서, 프로그래밍가능 IC 다이는 아비트레이션 로직을 포함할 수 있고, 제1 SiP IO 회로는 데이터 링크 회로 및 트랜시버 회로를 포함할 수 있고, 여기서: 데이터 링크 회로의 내부 인터페이스는 제1 집합 및 제1 분산 회로들에 커플링될 수 있고; 데이터 링크 회로의 외부 인터페이스는 트랜시버 회로의 내부 인터페이스에 커플링될 수 있고; 트랜시버 회로의 외부 인터페이스는 전도성 인터커넥트에 커플링될 수 있고; 데이터 링크 회로의 제어 인터페이스는 아비트레이션 로직에 커플링될 수 있다.
그러한 IC 시스템에서, 아비트레이션 로직은 프로그래밍가능 IC 다이의 프로그래밍가능 패브릭 내에서 구현될 수 있다.
그러한 IC 시스템에서, 프로그래밍가능 IC 다이는, 제1 집합 회로로 송신된 데이터를 패킷화하고 제1 분산 회로로부터 수신된 데이터를 역패킷화하도록 구성된 전송 로직을 포함할 수 있다.
그러한 IC 시스템에서, 전송 로직은 프로그래밍가능 IC 다이의 프로그래밍가능 패브릭 내에서 구현될 수 있다.
다른 예에서, 프로그래밍가능 IC가 제공될 수 있다. 그러한 프로그래밍가능 IC는, 외부 전도성 인터커넥트를 통해 컴패니언 IC에 커플링되도록 구성된 시스템-인-패키지(SiP) 입/출력(IO) 회로; 애플리케이션 회로부의 적어도 일부가 없는 프로그래밍가능 패브릭; 및 프로그래밍가능 패브릭과 SiP IO 회로 사이에 커플링된 집합 및 분산 회로들을 포함할 수 있다.
그러한 프로그래밍가능 IC에서, 집합 및 분산 회로들은, 프로그래밍가능 패브릭의 프로그래밍가능 인터커넥트와 SiP IO 회로 사이에 커플링된 시스템 레벨 인터커넥트를 포함할 수 있다.
그러한 프로그래밍가능 IC에서, 시스템 레벨 인터커넥트는 네트워크-온-칩(NoC)을 포함할 수 있다.
그러한 프로그래밍가능 IC에서, 프로그래밍가능 패브릭은 SiP IO 회로와는 별개로 컴패니언 IC에 직접 연결될 수 있다.
그러한 IC에서, 프로그래밍가능 패브릭은 아비트레이션 로직을 구현하도록 구성될 수 있고, SiP IO 회로는 데이터 링크 회로 및 트랜시버 회로를 포함할 수 있고, 여기서: 데이터 링크 회로의 내부 인터페이스는 집합 및 분산 회로들에 커플링될 수 있고; 데이터 링크 회로의 외부 인터페이스는 트랜시버 회로의 내부 인터페이스에 커플링될 수 있고; 트랜시버 회로의 외부 인터페이스는 외부 전도성 인터커넥트에 커플링될 수 있고; 데이터 링크 회로의 제어 인터페이스는 아비트레이션 로직에 커플링될 수 있다.
그러한 프로그래밍가능 IC에서, 프로그래밍가능 패브릭은 집합 회로로 송신된 데이터를 패킷화하고 분산 회로로부터 수신된 데이터를 역패킷화하는 전송 로직을 구현하도록 구성될 수 있다.
다른 예에서, IC 시스템 내의 프로그래밍가능 IC로부터 데이터를 송신하는 방법이 제공될 수 있다. 이 방법은, 프로그래밍가능 IC 내의 집적 회로의 복수의 채널들을 통해 제1 시스템-인-패키지(SiP) IO 회로에 데이터를 커플링하는 단계; 프로그래밍가능 IC와 컴패니언 IC 사이의 보다 작은 수의 물리 채널들을 통해 복수의 채널들로부터 데이터를 송신하는 단계; 컴패니언 IC 내의 제2 SiP IO 회로에서 복수의 물리 채널들로부터의 데이터를 수신하는 단계; 및 컴패니언 IC 내의 분산 회로의 복수의 채널들을 통해 컴패니언 IC 내의 애플리케이션 회로부에 제2 SiP IO 회로로부터의 데이터를 커플링하는 단계를 포함할 수 있다.
일부 그러한 방법에서, 데이터는 패킷들로 분할될 수 있다.
일부 그러한 방법에서, 제2 SiP IO 회로는, 분산 회로의 각각의 복수의 채널들에 커플링된 복수의 내부 출력 포트들을 포함할 수 있고, 패킷들 각각은 복수의 내부 출력 포트들 중 하나로부터 선택된 목적지 포트를 갖는다.
일부 그러한 방법에서, 송신하는 단계는, 각각의 복수의 송신 큐들에서 집합 회로의 복수의 채널들로부터의 데이터를 큐잉하는 단계; 및 복수의 물리 채널들을 통해 병렬로 송신된 패킷들이 상이한 목적지 포트들을 갖도록 복수의 물리 채널들 중에서 송신 큐들의 출력을 멀티플렉싱하는 단계를 포함할 수 있다.
일부 그러한 방법에서, 멀티플렉싱하는 단계는, 복수의 송신 큐들 각각에 가중치들을 할당하는 단계; 및 가중치들에 기초하여 복수의 물리 채널들을 통한 송신을 위해 송신 큐들로부터 패킷들을 선택하는 단계를 더 포함할 수 있다.
다른 예에서, 프로그래밍가능 IC가 제공될 수 있다. 그러한 프로그래밍가능 IC는, 프로그래밍가능 인터커넥트를 갖는 프로그래밍가능 패브릭; 그 프로그래밍가능 패브릭의 적어도 하나의 에지에 인접한 와이어 트랙들; 프로그래밍가능 패브릭의 적어도 하나의 에지와 집적된 적어도 하나의 링 노드 - 적어도 하나의 링 노드는 프로그래밍가능 인터커넥트와 와이어 트랙들 사이에 커플링됨 -; 및 와이어 트랙들에 커플링된 시스템-인-패키지(SiP) 입/출력(IO) 회로를 포함할 수 있다.
그러한 프로그래밍가능 IC에서, 와이어 트랙들은 프로그래밍가능 패브릭의 2개의 수평 에지들 및 2개의 수직 에지들에 인접하고, 적어도 하나의 링 노드는, 프로그래밍가능 패브릭의 2개의 수평 및 2개의 수직 에지들과 집적된 복수의 링 노드들을 포함할 수 있다.
그러한 프로그래밍가능 IC에서, 와이어 트랙들은 프로그래밍가능 패브릭의 3개의 에지들에 인접할 수 있고, 적어도 하나의 링 노드는, 프로그래밍가능 패브릭의 3개의 에지들과 집적된 복수의 링 노드들을 포함할 수 있다.
그러한 프로그래밍가능 IC에서, 와이어 트랙들은 제1 와이어 트랙들을 포함할 수 있고 적어도 하나의 링 노드는 적어도 하나의 제1 링 노드를 포함할 수 있고, 프로그래밍가능 IC는, 프로그래밍가능 패브릭의 적어도 하나의 에지에 인접한 제2 와이어 트랙들; 및 프로그래밍가능 패브릭의 적어도 하나의 에지와 집적된 적어도 하나의 제2 링 노드를 더 포함할 수 있고, 적어도 하나의 제2 링 노드는 프로그래밍가능 인터커넥트와 제2 와이어 트랙들 사이에 커플링된다.
그러한 프로그래밍가능 IC에서, SiP IO 회로는 제1 SiP IO 회로를 포함할 수 있고, 프로그래밍가능 IC는, 제2 와이어 트랙들에 커플링된 제2 SiP IO 회로를 더 포함할 수 있다.
그러한 프로그래밍가능 IC에서, 적어도 하나의 링 노드 각각은, 프로그래밍가능 패브릭 내의 동일한 레이아웃을 각각이 갖는 복수의 링 서브-노드들을 포함할 수 있다.
그러한 프로그래밍가능 IC에서, 복수의 링 서브-노드들 각각은, 프로그래밍가능 패브릭의 인터커넥트 요소에 커플링된 스위치 회로부를 포함할 수 있다.
다른 예에서, 다른 IC 시스템이 제공될 수 있다. 그러한 IC는, 상부에 장착되는 프로그래밍가능 집적 회로(IC) 다이 및 컴패니언 IC 다이를 갖는 패키지 기판 - 프로그래밍가능 IC 다이는 프로그래밍가능 패브릭을 포함하고 컴패니언 IC는 애플리케이션 회로부를 포함함 -; 프로그래밍가능 IC 다이에 배치된 제1 시스템-인-패키지(SiP) IO 회로, 컴패니언 IC 다이에 배치된 제2 SiP IO 회로, 및 제1 SiP IO 회로와 제2 SiP IO 회로를 전기적으로 커플링하는 패키지 기판 상의 전도성 인터커넥트를 포함하는 SiP 브리지를 포함할 수 있고, 프로그래밍가능 IC 다이는, 프로그래밍가능 인터커넥트를 갖는 프로그래밍가능 패브릭; 프로그래밍가능 패브릭의 적어도 하나의 에지에 인접한 와이어 트랙들 - 와이어 트랙들은 제1 SiP IO 회로에 커플링됨 -; 및 프로그래밍가능 패브릭의 적어도 하나의 에지와 집적된 적어도 하나의 링 노드 - 적어도 하나의 링 노드는 프로그래밍가능 인터커넥트와 와이어 트랙들 사이에 커플링됨 - 를 포함한다.
일부 그러한 IC에서, 와이어 트랙들은 프로그래밍가능 패브릭의 2개의 수평 에지들 및 2개의 수직 에지들에 인접할 수 있고, 적어도 하나의 링 노드는, 프로그래밍가능 패브릭의 2개의 수평 및 2개의 수직 에지들과 집적된 복수의 링 노드들을 포함할 수 있다.
일부 그러한 IC에서, 와이어 트랙들은 프로그래밍가능 패브릭의 3개의 에지들에 인접할 수 있고, 적어도 하나의 링 노드는, 프로그래밍가능 패브릭의 3개의 에지들과 집적된 복수의 링 노드들을 포함할 수 있다.
일부 그러한 IC에서, 와이어 트랙들은 제1 와이어 트랙들을 포함할 수 있고 적어도 하나의 링 노드는 적어도 하나의 제1 링 노드를 포함할 수 있고, 프로그래밍가능 IC는, 프로그래밍가능 패브릭의 적어도 하나의 에지에 인접한 제2 와이어 트랙들; 및 프로그래밍가능 패브릭의 적어도 하나의 에지와 집적된 적어도 하나의 제2 링 노드를 더 포함할 수 있고, 적어도 하나의 제2 링 노드는 프로그래밍가능 인터커넥트와 제2 와이어 트랙들 사이에 커플링된다.
일부 그러한 IC에서, SiP IO 회로는 제1 SiP IO 회로를 포함할 수 있고, 프로그래밍가능 IC는, 제2 와이어 트랙들에 커플링된 제2 SiP IO 회로를 더 포함할 수 있다.
일부 그러한 IC에서, 적어도 하나의 링 노드 각각은, 프로그래밍가능 패브릭 내의 동일한 레이아웃을 각각이 갖는 복수의 링 서브-노드들을 포함할 수 있다.
일부 그러한 IC에서, 복수의 링 서브-노드들 각각은, 프로그래밍가능 패브릭의 인터커넥트 요소에 커플링된 스위치 회로부를 포함할 수 있다.
다른 예에서, 프로그래밍가능 IC로부터 데이터를 송신하는 방법이 제공될 수 있다. 그러한 방법은, 프로그래밍가능 IC의 프로그래밍가능 패브릭의 에지와 집적된 링 노드에 데이터를 커플링하는 단계 - 링 노드는 에지에 인접한 와이어 트랙들과 프로그래밍가능 패브릭의 프로그래밍가능 인터커넥트 사이에 커플링됨 -; 와이어 트랙들의 복수의 채널들을 통해 제1 시스템-인-패키지(SiP) IO 회로에 링 노드로부터의 데이터를 커플링하는 단계; 및 프로그래밍가능 IC와 컴패니언 IC 사이의 보다 작은 수의 물리 채널들을 통해 복수의 채널들로부터 데이터를 송신하는 단계를 포함할 수 있다.
그러한 방법은, 컴패니언 IC 내의 제2 SiP IO 회로에서 복수의 물리 채널들로부터의 데이터를 수신하는 단계; 및 컴패니언 IC 내의 분산 회로의 복수의 물리 채널들을 통해 컴패니언 IC 내의 애플리케이션 회로부에 제2 SiP IO 회로로부터의 데이터를 커플링하는 단계를 포함할 수 있다.
일부 그러한 방법에서, 데이터는 패킷들로 분할될 수 있다.
일부 그러한 방법에서, 제2 SiP IO 회로는, 분산 회로의 각각의 복수의 채널들에 커플링된 복수의 내부 출력 포트들을 포함할 수 있고, 패킷들 각각은 복수의 내부 출력 포트들 중 하나로부터 선택된 목적지 포트를 갖는다.
일부 그러한 방법에서, 송신하는 단계는, 각각의 복수의 송신 큐들에서 복수의 채널들로부터의 데이터를 큐잉하는 단계; 및 복수의 물리 채널들을 통해 병렬로 송신된 패킷들이 상이한 목적지 포트들을 갖도록 복수의 물리 채널들 중에서 송신 큐들의 출력을 멀티플렉싱하는 단계를 포함할 수 있다.
일부 그러한 방법에서, 멀티플렉싱하는 단계는, 복수의 송신 큐들 각각에 가중치들을 할당하는 단계; 및 가중치들에 기초하여 복수의 물리 채널들을 통한 송신을 위해 송신 큐들로부터 패킷들을 선택하는 단계를 더 포함할 수 있다.
전술된 것이 특정 예들에 관한 것이지만, 다른 그리고 추가의 예들은 그 기본 범주로부터 벗어남이 없이 안출될 수 있고, 그 범주는 후속하는 청구범위에 의해 결정된다.

Claims (19)

  1. 프로그래밍가능(programmable) 집적 회로(IC)에 있어서,
    프로그래밍가능 인터커넥트를 갖는 프로그래밍가능 패브릭(fabric);
    상기 프로그래밍가능 패브릭의 적어도 하나의 에지에 인접한 와이어 트랙들;
    상기 프로그래밍가능 패브릭의 적어도 하나의 에지와 집적된 적어도 하나의 링 노드 - 상기 적어도 하나의 링 노드는 상기 프로그래밍가능 인터커넥트와 상기 와이어 트랙들 사이에 커플링되고, 상기 적어도 하나의 링 노드는 상기 프로그래밍가능 패브릭의 인터커넥트 요소에 커플링된 스위치 회로부(switch circuitry)를 포함함 - ; 및
    상기 와이어 트랙들에 커플링된 시스템-인-패키지(SiP) 입/출력(IO) 회로
    를 포함하는 것인 프로그래밍가능 IC.
  2. 제1항에 있어서,
    상기 와이어 트랙들은 상기 프로그래밍가능 패브릭의 2개의 수평 에지 및 2개의 수직 에지에 인접하고, 상기 적어도 하나의 링 노드는 상기 프로그래밍가능 패브릭의 2개의 수평 에지 및 2개의 수직 에지와 집적된 복수의 링 노드를 포함하는 것인 프로그래밍가능 IC.
  3. 제1항에 있어서,
    상기 와이어 트랙들은 상기 프로그래밍가능 패브릭의 3개의 에지에 인접하고, 상기 적어도 하나의 링 노드는 상기 프로그래밍가능 패브릭의 3개의 에지와 집적된 복수의 링 노드를 포함하는 것인 프로그래밍가능 IC.
  4. 제1항에 있어서,
    상기 와이어 트랙들은 제1 와이어 트랙들을 포함하고, 상기 적어도 하나의 링 노드는 적어도 하나의 제1 링 노드를 포함하며,
    상기 프로그래밍가능 IC는,
    상기 프로그래밍가능 패브릭의 적어도 하나의 에지에 인접한 제2 와이어 트랙들; 및
    상기 프로그래밍가능 패브릭의 적어도 하나의 에지에 집적된 적어도 하나의 제2 링 노드 - 상기 적어도 하나의 제2 링 노드는 상기 프로그래밍가능 인터커넥트와 상기 제2 와이어 트랙들 사이에 커플링됨 -
    를 더 포함하는 것인 프로그래밍가능 IC.
  5. 제4항에 있어서,
    상기 SiP IO 회로는 제1 SiP IO 회로를 포함하고,
    상기 프로그래밍가능 IC는 상기 제2 와이어 트랙들에 커플링된 제2 SiP IO 회로를 더 포함하는 것인 프로그래밍가능 IC.
  6. 제1항에 있어서,
    상기 적어도 하나의 링 노드 각각은:
    상기 프로그래밍가능 패브릭 내에서 각각 동일한 레이아웃을 갖는 복수의 링 서브-노드를 포함하는 것인 프로그래밍가능 IC.
  7. 제6항에 있어서,
    상기 복수의 링 서브-노드 각각은 상기 프로그래밍가능 패브릭의 인터커넥트 요소에 커플링된 스위치를 포함하는 것인 프로그래밍가능 IC.
  8. 집적 회로(IC) 시스템에 있어서,
    상부에 프로그래밍가능 IC 다이 및 컴패니언(companion) IC 다이 - 상기 컴패니언 IC 다이는 애플리케이션 회로부(application circuitry)를 포함함 - 가 장착되어 있는 패키지 기판과,
    상기 프로그래밍가능 IC 다이에 배치된 제1 시스템-인-패키지(system-in-package)(SiP) IO 회로, 상기 컴패니언 IC 다이에 배치된 제2 SiP IO 회로, 및 상기 제1 SiP IO 회로와 상기 제2 SiP IO 회로를 전기적으로 커플링하는, 상기 패키지 기판 상의 전도성 인터커넥트를 포함하는 SiP 브리지를 포함하고,
    상기 프로그래밍가능 IC 다이는,
    프로그래밍가능 인터커넥트를 갖는 프로그래밍가능 패브릭(fabric);
    상기 프로그래밍가능 패브릭의 적어도 하나의 에지에 인접한 와이어 트랙들 - 상기 와이어 트랙들은 상기 제1 SiP IO 회로에 커플링됨 - ; 및
    상기 프로그래밍가능 패브릭의 적어도 하나의 에지와 집적된 적어도 하나의 링 노드 - 상기 적어도 하나의 링 노드는 상기 프로그래밍가능 인터커넥트와 상기 와이어 트랙들 사이에 커플링되고, 상기 적어도 하나의 링 노드는 상기 프로그래밍가능 패브릭의 인터커넥트 요소에 커플링된 스위치 회로부(switch circuitry)를 포함함 -
    를 포함하는 것인 IC 시스템.
  9. 제8항에 있어서,
    상기 와이어 트랙들은 상기 프로그래밍가능 패브릭의 2개의 수평 에지 및 2개의 수직 에지에 인접하고, 상기 적어도 하나의 링 노드는 상기 프로그래밍가능 패브릭의 2개의 수평 에지 및 2개의 수직 에지와 집적된 복수의 링 노드를 포함하는 것인 IC 시스템.
  10. 제8항에 있어서,
    상기 와이어 트랙들은 상기 프로그래밍가능 패브릭의 3개의 에지에 인접하고, 상기 적어도 하나의 링 노드는 상기 프로그래밍가능 패브릭의 3개의 에지와 집적된 복수의 링 노드를 포함하는 것인 IC 시스템.
  11. 제8항에 있어서,
    상기 와이어 트랙들은 제1 와이어 트랙들을 포함하고, 상기 적어도 하나의 링 노드는 적어도 하나의 제1 링 노드를 포함하며,
    상기 프로그래밍가능 IC 다이는,
    상기 프로그래밍가능 패브릭의 적어도 하나의 에지에 인접한 제2 와이어 트랙들; 및
    상기 프로그래밍가능 패브릭의 적어도 하나의 에지에 집적된 적어도 하나의 제2 링 노드 - 상기 적어도 하나의 제2 링 노드는 상기 프로그래밍가능 인터커넥트 및 상기 제2 와이어 트랙들 사이에 커플링됨 -
    를 더 포함하는 것인 IC 시스템.
  12. 제8항에 있어서,
    상기 적어도 하나의 링 노드 각각은,
    상기 프로그래밍가능 패브릭 내에서 각각 동일한 레이아웃을 갖는 복수의 링 서브-노드를 포함하는 것인 IC 시스템.
  13. 제12항에 있어서,
    상기 복수의 링 서브-노드 각각은 상기 프로그래밍가능 패브릭의 인터커넥트 요소에 커플링된 스위치를 포함하는 것인 IC 시스템.
  14. 집적 회로(IC) 시스템에서 프로그래밍가능 IC로부터 데이터를 송신하는 방법에 있어서,
    상기 프로그래밍가능 IC의 프로그래밍가능 패브릭의 에지에 집적된 링 노드 - 상기 링 노드는 상기 프로그래밍가능 패브릭의 프로그래밍가능 인터커넥트와 상기 에지에 인접한 와이어 트랙들 사이에 커플링되고, 상기 링 노드는 상기 프로그래밍가능 패브릭의 인터커넥트 요소에 커플링된 스위치 회로부를 포함함 - 에 상기 데이터를 커플링하는 단계;
    상기 와이어 트랙들의 복수의 채널들을 통해, 제1 시스템-인-패키지(system-in-package)(SiP) IO 회로에 상기 링노드로부터의 데이터를 커플링하는 단계; 및
    상기 프로그래밍가능 IC와 컴패니언 IC 사이에서 더 적은 수의 물리적인 채널들 상에서 상기 복수의 채널들로부터의 데이터를 송신하는 단계
    를 포함하는 데이터를 송신하는 방법.
  15. 제14항에 있어서,
    상기 데이터는 패킷들로 분할되는 것인 데이터를 송신하는 방법.
  16. 제14항에 있어서,
    상기 컴패니언 IC 내의 제2 SiP IO 회로에서 상기 복수의 물리적인 채널들로부터 상기 데이터를 수신하는 단계; 및
    상기 컴패니언 IC 내의 분산 회로(dispersal circuit)의 복수의 채널들을 통해 상기 컴패니언 IC 내의 애플리케이션 회로부에 상기 제2 SiP IO 회로로부터의 상기 데이터를 커플링하는 단계
    를 더 포함하는 것인 데이터를 송신하는 방법.
  17. 제16항에 있어서,
    상기 제2 SiP IO 회로는 상기 분산 회로의 복수의 채널들 각각에 커플링된 복수의 내부 출력 포트를 포함하고, 상기 데이터의 패킷들은 각각 상기 복수의 내부 출력 포트 중 하나로부터 선택된 목적지 포트를 갖는 것인 데이터를 송신하는 방법.
  18. 제17항에 있어서,
    상기 데이터를 송신하는 단계는,
    복수의 송신 큐(queue) 각각 내에 상기 복수의 채널들로부터의 데이터를 큐잉(queuing)하는 단계; 및
    상기 복수의 물리적인 채널들 상에서 병렬로 송신되는 패킷들이 상이한 목적지 포트를 갖도록 상기 복수의 물리적인 채널들 사이에서 상기 송신 큐의 출력을 멀티플렉싱하는 단계
    를 포함하는 것인 데이터를 송신하는 방법.
  19. 제18항에 있어서,
    상기 멀티플렉싱하는 단계는,
    상기 복수의 송신 큐 각각에 가중치를 할당하는 단계; 및
    상기 가중치에 기초하여 상기 복수의 물리적인 채널들 상에서의 송신을 위해 상기 송신 큐로부터 패킷들을 선택하는 단계를 더 포함하는 것인 데이터를 송신하는 방법.
KR1020207008123A 2016-02-02 2017-01-30 액티브-바이-액티브 프로그래밍가능 디바이스 KR102528542B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237014524A KR102663824B1 (ko) 2016-02-02 2017-01-30 액티브-바이-액티브 프로그래밍가능 디바이스

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US15/013,696 2016-02-02
US15/013,690 US10042806B2 (en) 2016-02-02 2016-02-02 System-level interconnect ring for a programmable integrated circuit
US15/013,696 US10002100B2 (en) 2016-02-02 2016-02-02 Active-by-active programmable device
US15/013,690 2016-02-02
KR1020187024389A KR102093459B1 (ko) 2016-02-02 2017-01-30 액티브-바이-액티브 프로그래밍가능 디바이스
PCT/US2017/015665 WO2017136289A2 (en) 2016-02-02 2017-01-30 Active-by-active programmable device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020187024389A Division KR102093459B1 (ko) 2016-02-02 2017-01-30 액티브-바이-액티브 프로그래밍가능 디바이스

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237014524A Division KR102663824B1 (ko) 2016-02-02 2017-01-30 액티브-바이-액티브 프로그래밍가능 디바이스

Publications (2)

Publication Number Publication Date
KR20200034815A KR20200034815A (ko) 2020-03-31
KR102528542B1 true KR102528542B1 (ko) 2023-05-02

Family

ID=58054513

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020207008123A KR102528542B1 (ko) 2016-02-02 2017-01-30 액티브-바이-액티브 프로그래밍가능 디바이스
KR1020237014524A KR102663824B1 (ko) 2016-02-02 2017-01-30 액티브-바이-액티브 프로그래밍가능 디바이스
KR1020187024389A KR102093459B1 (ko) 2016-02-02 2017-01-30 액티브-바이-액티브 프로그래밍가능 디바이스
KR1020247014672A KR20240063207A (ko) 2016-02-02 2017-01-30 액티브-바이-액티브 프로그래밍가능 디바이스

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020237014524A KR102663824B1 (ko) 2016-02-02 2017-01-30 액티브-바이-액티브 프로그래밍가능 디바이스
KR1020187024389A KR102093459B1 (ko) 2016-02-02 2017-01-30 액티브-바이-액티브 프로그래밍가능 디바이스
KR1020247014672A KR20240063207A (ko) 2016-02-02 2017-01-30 액티브-바이-액티브 프로그래밍가능 디바이스

Country Status (5)

Country Link
EP (2) EP3411953B1 (ko)
JP (2) JP6621943B2 (ko)
KR (4) KR102528542B1 (ko)
CN (2) CN109075787B (ko)
WO (1) WO2017136289A2 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111753484B (zh) * 2020-06-30 2021-12-24 无锡中微亿芯有限公司 一种基于电路性能的多裸片结构fpga的布局方法
CN111755437B (zh) * 2020-07-01 2022-05-31 无锡中微亿芯有限公司 利用硅连接层形成片上网络的fpga装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040178819A1 (en) 2003-03-12 2004-09-16 Xilinx, Inc. Multi-chip programmable logic device having configurable logic circuitry and configuration data storage on different dice
US20130336039A1 (en) 2012-06-05 2013-12-19 Rambus Inc. Memory bandwidth aggregation using simultaneous access of stacked semiconductor memory die
US20140049932A1 (en) 2012-08-16 2014-02-20 Xilinx, Inc. Flexible sized die for use in multi-die integrated circuit
US20150188847A1 (en) * 2013-12-30 2015-07-02 Netspeed Systems STREAMING BRIDGE DESIGN WITH HOST INTERFACES AND NETWORK ON CHIP (NoC) LAYERS

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570404B1 (en) * 1996-03-29 2003-05-27 Altera Corporation High-performance programmable logic architecture
JPH1022449A (ja) * 1996-07-02 1998-01-23 Matsushita Electric Ind Co Ltd 半導体装置
US7170315B2 (en) * 2003-07-31 2007-01-30 Actel Corporation Programmable system on a chip
ATE469397T1 (de) * 2004-03-26 2010-06-15 Koninkl Philips Electronics Nv Integrierte schaltung und verfahren zur transaktionszurückziehung
US7434192B2 (en) 2004-12-13 2008-10-07 Altera Corporation Techniques for optimizing design of a hard intellectual property block for data transmission
US7525340B2 (en) * 2005-09-19 2009-04-28 Altera Corporation Programmable logic device architecture for accommodating specialized circuitry
JP4983065B2 (ja) * 2006-03-29 2012-07-25 富士通セミコンダクター株式会社 半導体装置
US7954131B2 (en) * 2007-06-13 2011-05-31 Time Warner Cable Inc. Premises gateway apparatus and methods for use in a content-based network
JP2009032857A (ja) * 2007-07-26 2009-02-12 Hitachi Ltd 半導体集積回路および半導体装置
US7701252B1 (en) * 2007-11-06 2010-04-20 Altera Corporation Stacked die network-on-chip for FPGA
US8412136B2 (en) * 2008-02-12 2013-04-02 Texas Instruments Incorporated Measuring load impedance of an amplifier driving a variable load
US9229887B2 (en) * 2008-02-19 2016-01-05 Micron Technology, Inc. Memory device with network on chip methods, apparatus, and systems
US7701251B1 (en) * 2008-03-06 2010-04-20 Xilinx, Inc. Methods and apparatus for implementing a stacked memory programmable integrated circuit system in package
US7969009B2 (en) * 2008-06-30 2011-06-28 Qualcomm Incorporated Through silicon via bridge interconnect
US8237269B2 (en) * 2008-08-01 2012-08-07 Qualcomm Incorporated High Q transformer disposed at least partly in a non-semiconductor substrate
US8982581B2 (en) * 2010-06-30 2015-03-17 Xilinx, Inc. Electro-static discharge protection for die of a multi-chip module
TWI441560B (zh) * 2011-06-30 2014-06-11 Interlight Optotech Corp 發光二極體模組及其操作方法
CN102543770A (zh) * 2012-01-18 2012-07-04 浙江阳光照明电器集团股份有限公司 一种紧凑型荧光灯专用半桥驱动集成电路的封装方法
EP2812919B1 (en) * 2012-02-08 2021-07-07 Xilinx, Inc. Stacked die assembly with multiple interposers
CN103716919B (zh) * 2012-09-28 2018-10-30 德克萨斯仪器股份有限公司 无线桥式ic
US9153292B2 (en) * 2013-03-07 2015-10-06 Xilinx, Inc. Integrated circuit devices having memory and methods of implementing memory in an integrated circuit device
US8901748B2 (en) * 2013-03-14 2014-12-02 Intel Corporation Direct external interconnect for embedded interconnect bridge package
CN203800042U (zh) * 2013-07-01 2014-08-27 群丰科技股份有限公司 内嵌式封装体结构

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040178819A1 (en) 2003-03-12 2004-09-16 Xilinx, Inc. Multi-chip programmable logic device having configurable logic circuitry and configuration data storage on different dice
US20130336039A1 (en) 2012-06-05 2013-12-19 Rambus Inc. Memory bandwidth aggregation using simultaneous access of stacked semiconductor memory die
US20140049932A1 (en) 2012-08-16 2014-02-20 Xilinx, Inc. Flexible sized die for use in multi-die integrated circuit
US20150188847A1 (en) * 2013-12-30 2015-07-02 Netspeed Systems STREAMING BRIDGE DESIGN WITH HOST INTERFACES AND NETWORK ON CHIP (NoC) LAYERS

Also Published As

Publication number Publication date
WO2017136289A8 (en) 2018-09-13
KR102663824B1 (ko) 2024-05-03
KR102093459B1 (ko) 2020-03-25
CN114741344A (zh) 2022-07-12
CN109075787A (zh) 2018-12-21
WO2017136289A3 (en) 2017-11-02
KR20240063207A (ko) 2024-05-09
KR20200034815A (ko) 2020-03-31
EP3780393A3 (en) 2021-06-23
JP2020074091A (ja) 2020-05-14
EP3411953A2 (en) 2018-12-12
JP6957581B2 (ja) 2021-11-02
KR20230070047A (ko) 2023-05-19
EP3411953B1 (en) 2021-03-03
JP2019507452A (ja) 2019-03-14
EP3780393A2 (en) 2021-02-17
CN109075787B (zh) 2022-04-29
JP6621943B2 (ja) 2019-12-18
KR20180108705A (ko) 2018-10-04
WO2017136289A2 (en) 2017-08-10

Similar Documents

Publication Publication Date Title
US10042806B2 (en) System-level interconnect ring for a programmable integrated circuit
USRE49163E1 (en) Active-by-active programmable device
US9859896B1 (en) Distributed multi-die routing in a multi-chip module
EP2641270B1 (en) Multichip module for communications
US10784121B2 (en) Standalone interface for stacked silicon interconnect (SSI) technology integration
KR102381158B1 (ko) 적층형 실리콘 상호 연결(ssi) 기술 통합을 위한 독립형 인터페이스
US11670589B2 (en) Fabric die to fabric die interconnect for modularized integrated circuit devices
US9911465B1 (en) High bandwidth memory (HBM) bandwidth aggregation switch
JP6957581B2 (ja) アクティブ・バイ・アクティブプログラマブルデバイス
US20210217729A1 (en) Multi-chip stacked devices
US11121715B2 (en) Coarse-grain programmable routing network for logic devices
EP1667325B1 (en) Programmable logic device with unified cell structure including signal interface bumps
US11755511B2 (en) Data bus inversion using multiple transforms
CN110660787A (zh) 用于多芯片封装(mcp)的可旋转架构

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant