CN111753489A - 模块化的集成电路设备中管芯间和管芯内通信的片上网络 - Google Patents
模块化的集成电路设备中管芯间和管芯内通信的片上网络 Download PDFInfo
- Publication number
- CN111753489A CN111753489A CN202010131251.9A CN202010131251A CN111753489A CN 111753489 A CN111753489 A CN 111753489A CN 202010131251 A CN202010131251 A CN 202010131251A CN 111753489 A CN111753489 A CN 111753489A
- Authority
- CN
- China
- Prior art keywords
- data
- die
- router
- configurable
- interface
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
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/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L23/00—Details of semiconductor or other solid state devices
- H01L23/52—Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames
- H01L23/538—Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames the interconnection structure between a plurality of semiconductor chips being formed on, or in, insulating substrates
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L24/00—Arrangements for connecting or disconnecting semiconductor or solid-state bodies; Methods or apparatus related thereto
- H01L24/01—Means 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
- H01L24/10—Bump connectors ; Manufacturing methods related thereto
- H01L24/15—Structure, shape, material or disposition of the bump connectors after the connecting process
- H01L24/16—Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L25/00—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
- H01L25/18—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof the devices being of types provided for in two or more different subgroups of the same main group of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/08—Intellectual property [IP] blocks or IP cores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2224/00—Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
- H01L2224/01—Means 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/10—Bump connectors; Manufacturing methods related thereto
- H01L2224/15—Structure, shape, material or disposition of the bump connectors after the connecting process
- H01L2224/16—Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
- H01L2224/161—Disposition
- H01L2224/16151—Disposition 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/16221—Disposition 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/16225—Disposition 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
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2224/00—Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
- H01L2224/01—Means 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/10—Bump connectors; Manufacturing methods related thereto
- H01L2224/15—Structure, shape, material or disposition of the bump connectors after the connecting process
- H01L2224/16—Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
- H01L2224/161—Disposition
- H01L2224/16151—Disposition 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/16221—Disposition 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/16225—Disposition 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/16227—Disposition 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
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L23/00—Details of semiconductor or other solid state devices
- H01L23/52—Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames
- H01L23/538—Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames the interconnection structure between a plurality of semiconductor chips being formed on, or in, insulating substrates
- H01L23/5383—Multilayer substrates
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2924/00—Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
- H01L2924/10—Details of semiconductor or other solid state devices to be connected
- H01L2924/11—Device type
- H01L2924/14—Integrated circuits
- H01L2924/143—Digital devices
- H01L2924/1431—Logic devices
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2924/00—Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
- H01L2924/10—Details of semiconductor or other solid state devices to be connected
- H01L2924/11—Device type
- H01L2924/14—Integrated circuits
- H01L2924/143—Digital devices
- H01L2924/1434—Memory
- H01L2924/1435—Random access memory [RAM]
- H01L2924/1436—Dynamic random-access memory [DRAM]
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2924/00—Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
- H01L2924/10—Details of semiconductor or other solid state devices to be connected
- H01L2924/11—Device type
- H01L2924/14—Integrated circuits
- H01L2924/143—Digital devices
- H01L2924/1434—Memory
- H01L2924/1435—Random access memory [RAM]
- H01L2924/1437—Static random-access memory [SRAM]
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2924/00—Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
- H01L2924/15—Details of package parts other than the semiconductor or other solid state devices to be connected
- H01L2924/151—Die mounting substrate
- H01L2924/1517—Multilayer substrate
- H01L2924/15192—Resurf arrangement of the internal vias
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2924/00—Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
- H01L2924/15—Details of package parts other than the semiconductor or other solid state devices to be connected
- H01L2924/151—Die mounting substrate
- H01L2924/153—Connection portion
- H01L2924/1531—Connection portion the connection portion being formed only on the surface of the substrate opposite to the die mounting surface
- H01L2924/15311—Connection 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)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Computing Systems (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本公开的系统或方法可以为模块化的集成电路系统的管芯间和/或管芯内通信提供高带宽、低时延的连通性。这样的集成电路系统可以包括(多个)结构电路扇区的第一管芯、模块化的外围知识产权(IP)的第二管芯、将第一管芯耦合到第二管芯的无源硅中介层以及包括片上网络(NOC)的模块化的接口。模块化的接口可以在第一管芯与第二管芯之间、在(多个)结构电路扇区之间、以及在第一管芯与第三管芯之间提供高带宽、低时延的通信。
Description
技术领域
本公开总体上涉及集成电路,例如,处理器和/或现场可编程门阵列(FPGA)。更具体地,本公开涉及在模块化的集成电路的管芯内和/或管芯之间提供高带宽、低时延的连通性。
背景技术
该部分旨在向读者介绍可能与本公开的各个方面有关的本领域的各个方面,下面将描述和/或要求保护这些方面。相信该讨论有助于向读者提供背景信息,以促进对本公开的各个方面的更好的理解。因此,可以理解的是,这些陈述应从这种角度来阅读,而不是作为对现有技术的承认。
现代电子器件(例如,计算机、便携式设备、网络路由器、数据中心、互联网连接的装置等)趋向于包括至少一个集成电路设备。集成电路设备可以采取各种形式,包括处理器(例如,中央处理单元(CPU))、存储器设备和可编程设备(例如,FPGA),仅举几例。特别地,可编程设备可以包括逻辑的可编程结构,该可编程结构可以在制造之后被编程(例如,配置)和重新编程(例如,重新配置)以提供基于电路设计的各种功能。
为了促进不同的功能,可编程设备可以包括在可编程结构附近和周围的各种外围知识产权核心(IP)。例如,可以将通用接口总线(UIB)IP放置在可编程结构的边线(shoreline)上,以避免消耗可编程结构的过多路由电路。然而,受限制的边线数量以及外围IP与可编程结构集成的方式可能导致降低可编程设备的功能和操作效率的设计折中。
附图说明
在阅读以下详细描述时并且在参考附图时,可以更好地理解本公开的各个方面,其中:
图1是根据本公开实施例的包括集成电路设备的数据处理系统的框图;
图2是根据本公开实施例的可以促进对图1的集成电路设备的编程的设计工作站的框图;
图3是根据本公开实施例的模块化的集成电路设备的侧视图,该模块化的集成电路设备包括已经被模块化为外围知识产权核心(IP)管芯的外围IP和被模块化为粘合管芯(glue die)的可编程结构;
图4是根据本公开实施例的图3的模块化的集成电路设备的俯视图,该模块化的集成电路设备包括外围IP管芯和粘合管芯;
图5是根据本公开实施例的图4的模块化的集成电路设备的侧视图,该模块化的集成电路设备包括用于管芯间通信的点对点互连;
图6是根据本公开实施例的图4的模块化的集成电路设备的俯视图,该模块化的集成电路设备包括用于管芯间通信的点对点互连;
图7是根据本公开实施例的图4的模块化的集成电路设备的侧视图,该模块化的集成电路设备包括用于管芯间和管芯内通信的片上网络(NOC)接口;
图8是根据本公开实施例的图4的模块化的集成电路设备的俯视图,该模块化的集成电路设备包括用于管芯间和管芯内通信的NOC接口;
图9是根据本公开实施例的促进管芯间和管芯内通信的NOC接口架构的示意图;
图10是描绘根据本公开实施例的在图8的模块化的集成电路设备的微凸块与图9的NOC接口架构之间的关系的示意图;
图11是描绘根据本公开实施例的将微凸块分配给图9的NOC接口的示意图;
图12是描绘根据本公开实施例的在图9的NOC接口的路由器之间的数据传输的时序图;
图13是根据本公开实施例的用于在数据传输时钟相位失准时促进在图9的NOC接口架构的路由器之间的异步数据传输的NOC接口的框图;
图14是进一步详细描述根据本公开实施例的用于在数据传输时钟未相位对齐时促进在图9的NOC接口架构的路由器之间的异步数据传输的NOC接口的框图;
图15是根据本公开实施例的用于在数据传输时钟相位对齐时促进在图9的NOC接口架构的路由器之间的异步数据传输的NOC接口的框图;以及
图16是根据本公开实施例的使用图9的NOC接口实现以满足应用性能需求的应用的示意图。
具体实施方式
下面将描述一个或多个具体实施例。为了提供对这些实施例的简要描述,说明书中并未描述实际实现方式的所有特征。应当认识到,在任何此类实际实现方式的开发中(如在任何工程或设计项目中),都必须做出许多实现方式特定的决策以实现开发人员的特定目标(例如,遵守系统相关的约束和业务相关的约束),这可能因实现方式而异。此外,应当认识到,这种开发努力可能是复杂且耗时的,但是对于受益于本公开的普通技术人员而言,这仍将是设计、装配和制造的采取的例行工作。
当介绍本公开的各种实施例的元件时,冠词“一(a)”、“一个(an)”和“该(the)”旨在表示存在元件中的一个或多个。术语“包括”、“包含”和“具有”旨在是包含性的,并且意味着除所列元件之外还可以存在附加元件。另外地,应当理解,对本公开的“一个实施例”或“实施例”的引用不旨在被解释为排除也并入所引述的特征的附加实施例的存在。
集成电路(例如,现场可编程门阵列(FPGA))可以包括可编程结构(例如,具有逻辑元件(例如,数字信号处理(DSP)块、路由复用器等)的逻辑阵列块(LAB)),该可编程结构可以被配置并且在某些情况下稍后被重新配置为实现电路设计。为了促进不同设计功能的实现方式,集成电路还可以包括位于可编程结构附近的一个或多个外围知识产权核心(IP),由此形成FPGA片上系统(SoC)。例如,对于FPGA,更高带宽的外围IP(例如,双倍数据速率(DDR)、低功率DDR(LPDDR)、高带宽存储器(HBM)、嵌入式静态随机存取存储器(eSRAM)、通用接口总线(UIB)、输入/输出(I/O)等)可以围绕可编程结构(例如,在其顶部或底部)放置(例如,在可编程结构的边线、边界或外围处),以改进资源(例如,路由电路)在整个FPGA SoC中的分配。
换言之,外围IP可以被放置在可编程结构的边缘附近,水平输入/输出(HIO)和/或垂直输入/输出(VIO)连接位于该处,从而数据不必行进较远并经受所导致的时延。外围IP和可编程结构的这种集成可以在单片(例如,在单个硅芯片上制造多个组件)FPGA SoC设计中发生。即,在单片FPGA SoC中,可以包括外围IP作为FPGA主芯片的一部分。尽管本公开将主要使用可编程设备(例如,FPGA)的示例,但是本公开的系统和技术可以适用于任何合适的集成电路设备,例如,处理器(例如,中央处理单元(CPU))、存储器等。
然而,这种单片FPGA SoC可能在可编程结构周围包括有限数量的边线,从而关于在设计中并入外围IP(例如,类型、数量)强制折中。作为示例,单个平面布置图(例如,集成电路布局)可以用于多个设备变型,每个设备变型具有针对外围IP和可编程结构的不同的规范。使用单个平面布置图可以减少设计和制造成本。然而,为了改进单个平面布置图对多种产品变型的适用性,平面布置图可以包括对UIB、I/O、eSRAM和可以被包括在有限的边线周围的其他外围IP的数量折中的设计。因此,单片FPGA设计可能导致针对每种设备变型的降低的设备性能,以及针对多种设备变型的降低的整体可扩展性。
此外,单片FPGA SoC的制造可能是成本低效且不准确的。例如,不良的硅产率可能减少晶片上适当执行的硅管芯的数量。在一些实例中,由于工艺变型,在晶片上制造的硅管芯中的90%可能无法使用。因此,由于在单片FPGA SoC的制造期间可以使用相对较大的硅管芯以适应管芯上的可编程逻辑、外围IP和其他组件,因此制造的FPGA SoC设备中的90%可能无法使用。
作为另一示例,标线尺寸限制可能约束单片FPGA SoC管芯的尺寸。特别地,在微光刻制造技术中,可以使用光掩模(例如,标线)以将集成电路图案层投射到晶片上,并且适当的化学步骤可以将图案层制造到晶片上。然而,光掩模变得越大(例如,为了制造相对较大的FPGA SoC管芯),在光掩模中可能引入越多的失真和缺陷。因此,单片FPGA SoC管芯的制造可能导致FPGA SoC的降低的精度和可靠性。
为了改进FPGA SoC的模块化和制造产率,可以将FPGA SoC分解为更小的管芯。例如,FPGA SoC可以被分解为外围IP管芯(每个外围IP管芯包括用于特定外围IP的架构)以及包括可编程逻辑结构的可编程结构管芯(例如,粘合管芯)。一旦被分解和模块化,外围IP管芯就可以与粘合管芯的设计和制造独立地设计并制造。此外,可以使被分解的FPGA SoC的管芯之间的接口标准化,以实现管芯的模块化。例如,利用经标准化的接口,可以将任何类型的外围IP管芯并入FPGA SoC设计中。因此,可以减少在带入(tape-in)和带出(tape-out)期间针对设计变型而消耗的成本和时间。
特别地,经标准化的接口可以包括许多管芯到管芯的互连。每个互连可以包括嵌入在无源硅中介层(例如,电接口路由)中的金属迹线,该无源硅中介层耦合到管芯的微凸块(例如,支持管芯之间的功率和信号的键合介质)以及另一管芯的另一微凸块。例如,管芯到管芯的互连可以连接粘合管芯或者将粘合管芯连接到外围IP管芯。在一些实施例中,硅中介层可以是有源硅中介层。
类似于在单片FPGA SoC的组件之间的数据传输要求,应该在模块化的集成电路的管芯之间支持高带宽且低时延的连通性。例如,通信地耦合到通用接口总线(UIB)IP管芯的粘合管芯可以支持相对较高的带宽,以促进UIB IP管芯与高带宽存储器(HBM)的接合。由于每个微凸块都可以用于发送单个信号,因此在管芯之间(例如,在UIB IP管芯与粘合管芯之间)实现高带宽且低时延的连接可以利用大量的管芯到管芯的互连和微凸块。然而,每个管芯可用的微凸块的数量可能受到管芯的尺寸、每个微凸块的高度和/或微凸块之间的间距(例如,对角线距离)的限制。因此,增加微凸块的数量以满足带宽和时延连通性需求可能会增加总体硅管芯面积以容纳额外的微凸块,并因此可能会增加FPGA SoC的制造成本。
因此,并且如下面进一步详述的,本公开的实施例总体上涉及实现模块化的集成电路的管芯内和/或管芯之间的高带宽、低时延的连通性。在一些实施例中,片上网络(NOC)接口可以与硅中介层集成以实现高带宽且低时延的连通性。特别地,NOC接口可以包括一个或多个路由器,这些路由器可以使数据优先化并适当地将数据向下游路由。此外,路由器可以包括多个端口,这些端口中的一部分可以促进与NOC接口的其他路由器的通信,并且这些端口中的另一部分可以促进经由路由器桥到其他管芯的通信以及来自其他管芯的通信。路由器桥可以提供数据优先化和时钟域交叉(CDC)功能,以实现在例如粘合管芯的时钟域与路由器的时钟域之间的同步化的数据传输。因此,NOC接口架构可以使粘合管芯上的用户逻辑能够以独立于NOC操作频率的其自己的频率来操作,从而产生可扩展的设备。另外地,由于路由器单元使NOC接口是模块化的,因此NOC接口可以是可扩展的,并且可以促进模块化的集成系统中的设计重用。
此外,在一些实施例中,路由器可以通过经由无源硅中介层在第一管芯的微凸块与第二管芯的微凸块之间跨越的发送(Tx)/接收(Rx)接口通信地耦合到另一路由器。特别地,Tx/Rx接口可以包括促进在NOC的路由器之间的异步数据传输的组件。例如,Tx/Rx接口可以包括嵌入式时钟交叉器和双倍数据速率(DDR)模块,这些组件补偿和/或减少数据偏斜并提供加速的数据传输。另外地或可替代地,Tx/Rx接口可以包括促进在NOC的路由器之间的同步数据传输的组件。作为示例,Tx/Rx接口可以包括嵌入式时钟交叉器,该嵌入式时钟交叉器实现DDR和时分复用(TDM)以提供加速的数据传输。无论如何,与经由管芯到管芯的互连的数据传输相比,Tx/Rx接口可以实现高效(例如,高带宽、低时延)的数据传输,并且具有较少的微凸块开销。因此,NOC接口可以满足连通性性能需求,而不会消耗额外的硅面积。
另外地,在一些实施例中,NOC接口可以分散在整个FPGA SoC中,以促进管芯间和管芯内通信。例如,路由器可以分散在粘合管芯的可编程结构扇区之间、在粘合管芯之间和/或在粘合管芯与外围IP管芯之间。与经由边缘HIO/VIO的通信相比,NOC接口的这种路由配置可以提供到粘合管芯的可编程结构中的进一步延伸,从而导致降低的路由拥塞以及分散应用热点(例如,集成电路的功耗部分)的能力。
考虑到前述内容,图1是根据本公开实施例的包括集成电路设备102的数据处理系统100的框图。数据处理系统100可以包括比所示的更多或更少的组件(例如,电子显示器、用户界面结构、专用集成电路(ASIC))。数据处理系统100可以包括诸如处理器或精简指令处理器(例如,精简指令集计算机(RISC)、高级RISC机器(ARM)处理器)之类的一个或多个主机处理器104,该主机处理器104可以管理针对数据处理系统100的数据处理请求(例如,以执行机器学习、视频处理、语音识别、图像识别、数据压缩、数据库搜索排名、生物信息学、网络安全模式标识、空间导航等)。
(多个)主机处理器104可以与存储器和/或存储电路106通信,该存储器和/或存储电路106可以是有形的非暂时性的机器可读介质,例如,随机存取存储器(RAM)、只读存储器(ROM)、一个或多个硬盘驱动器、闪速存储器或任何其他合适的光学、磁性或固态存储介质。存储器和/或存储电路106可以保存要由数据处理系统100处理的数据,例如,处理器可执行的控制软件、配置软件、系统参数、配置数据等。
数据处理系统100还可以包括允许数据处理系统100与其他电子设备通信的网络接口108。在一些实施例中,数据处理系统100可以是处理各种不同请求的数据中心的一部分。例如,数据处理系统100可以经由网络接口108接收数据处理请求,以执行机器学习、视频处理、语音识别、图像识别、数据压缩、数据库搜索排名、生物信息学、网络安全模式标识、空间导航或某种其他专门的任务。数据处理系统100还可以包括执行数据处理请求的实现方式的集成电路设备102。
设计者可以使用根据本公开实施例的设计工作站200(如图2中示出的)来开发可以配置集成电路设备102的设计。在一些实施例中,设计者可以使用设计软件204(例如,INTEL公司的)来生成可以用于对集成电路设备102进行编程(例如,配置)的设计。例如,设计者可以对模块化的集成电路设备102进行编程以实现特定功能(例如,实现电路设计(例如,更高级别的电路设计)),就如同集成电路设备102是单片的一样。集成电路设备102可以是可编程集成电路,例如,包括一起实现一个或多个电路设计的(多个)可编程结构管芯和(多个)外围IP管芯的现场可编程门阵列(FPGA)。
因此,设计软件204可以使用编译器206来为集成电路设备102生成较低级别的电路设计配置。即,编译器206可以向集成电路设备102提供例如以配置位流208的形式的表示设计者指定的功能的机器可读指令。(多个)主机处理器104可以协调位流208到集成电路设备102上的加载以及可编程结构的后续编程。
如上面所描述的,为了改进集成电路(例如,FPGA)的可扩展性和制造产率,可以对FPGA SoC进行分解,使得外围IP可以被模块化为外围IP管芯,并且可编程结构可以被模块化为粘合管芯。对外围IP和可编程结构的模块化可以使外围IP管芯的设计和制造能够独立于粘合管芯的设计和制造并且以实现外围IP管芯与粘合管芯之间的模块化接合的方式(例如,如由用于实现可以被标准化的不同分片(tile)的接合的基本统一的方式的规范所定义的那样)发生。因此,图3和图4分别示出了根据本公开实施例的示例集成电路设备102的侧视图和俯视图,该集成电路设备102由模块化的粘合管芯302和外围IP管芯304构成。尽管将集成电路设备102示为FPGA,但是应该认识到,外围IP可以针对任何合适类型的集成电路设备102进行模块化。
如所示的,一个或多个粘合管芯302A、302B(统称为302)可以被包括在模块化的集成电路设备102中以促进对FPGA的编程。特别地,粘合管芯302可以包括可编程结构,该可编程结构可以被分成一个或多个扇区,每个扇区包括可编程逻辑。可编程逻辑可以被布置在有时被称为可配置逻辑块(CLB)或逻辑阵列块(LAB)的组中。可编程结构还可以包括其他逻辑,例如,存储器逻辑阵列块(MLAB)、路由电路等。可编程逻辑可以从(多个)主机处理器104接收配置位流208,并且可以根据由配置位流208所体现的电路设计来进行配置。粘合管芯302可以在运行时被配置或部分配置和/或可以在稍后时间重新配置或部分重新配置,从而实现制造后的设计灵活性。
此外,如所示的,外围IP管芯304可以放置在粘合管芯302附近。外围IP管芯304可以包括外围IP,例如,I/O IP、UIB IP、存储器IP、SoC处理器等。简言之,可以使用I/O管芯和UIB管芯来分别促进在粘合管芯302与外围设备(例如,(例如,以动态随机存取存储器(DRAM)的形式的)外部存储器IP和高带宽存储器(HBM)IP)之间的通信。通过对外围IP进行模块化,可以更容易地定制产品变型并扩展未来的产品线。此外,因为外围IP管芯304由于与粘合管芯302不在相同管芯上而可以独立于粘合管芯302进行设计和/或制造,所以外围IP可以不再限制可构建管芯尺寸或FPGA设计灵活性。
在模块化的集成电路设备102的管芯302、管芯304之间的数据通信可以经由设置在无源硅中介层306(例如,2.5D硅中介层)中的嵌入式接口桥(例如,信号传导通道)发生。简言之,无源硅中介层306可以是一小块硅,其包括用于连接在无源硅中介层306上制造的管芯302、管芯304的路由层。例如,在2.5D硅中介层中,管芯302、管芯304可以在无源硅中介层306的顶部堆叠或并排放置。
为了进一步促进经由嵌入在无源硅中介层306内的接口桥310(例如,金属迹线)的通信,模块化的集成电路设备102可以在边缘上和/或整个粘合管芯302和/或外围IP管芯304中包括微凸块308。微凸块308可以是支持管芯302、管芯304之间的接合功率和信号的键合介质。例如,接口桥310的一端可以耦合到第一管芯(例如,管芯302)的微凸块308,而接口桥310的另一端可以耦合到第二管芯(例如,管芯304)的微凸块308。因此,微凸块308和接口桥310促进电连通性以在管芯302、管芯304之间携带信号。
特别地,接口桥310可以是NOC接口和/或管芯到管芯的互连接口。在无源硅中介层306内的接口桥310可以实现在管芯302、管芯304之间的经标准化和模块化的通信,由此实现由设计工作站200针对集成电路设备102的不同产品变型和编程的相对容易的定制,就如同集成电路设备102是单片的一样。
此外,可以经由穿过晶片或管芯302、管芯304的层的垂直电连接(例如,硅通孔(TSV))和/或经由提供到外部电路的连接的受控塌陷芯片连接(C4凸块312)来促进模块化的集成电路设备102上的通信。在任何情况下,无源硅中介层306都提供接口连接和/或金属层,以在管芯302、管芯304之间和管芯302、管芯304之内建立数以千计的连接。尽管模块化的集成电路102被示出为具有一定数量和类型的管芯、接口和其他组件,但是在模块化的集成电路102中也可以包括任何数量和/或类型的组件以促进其功能。
在管芯302、管芯304之间的连接可以包括促进管芯302、管芯304之间的直接通信的管芯到管芯的互连。图5和图6分别示出了根据本公开实施例的可以被包括在模块化的集成电路设备500、600中的这种管芯到管芯的直接互连502的侧视图和俯视图。对于管芯到管芯的直接通信,每个微凸块308可以与嵌入在无源硅中介层306中的接口桥310相关联,并且因此,接口桥310中的每一个可以通信地耦合两个单独的管芯302、管芯304。例如,接口桥310可以是高级接口总线直接知识产权栏(AIB-D IP栏)的一部分,该AIB-D IP栏用于在不使用片上网络接口的情况下经由硅中介层306将粘合管芯302的扇区504直接连接到外围IP管芯304。这种管芯到管芯的直接互连502可以使用户能够利用模块化的集成电路设备500的功能,就如同模块化的集成电路设备500是较大的单片FPGA SoC一样。换言之,管芯到管芯的直接互连502导致模块化的集成电路设备500表现为单片FPGA SoC。
类似于在单片FPGA SoC的组件之间的数据传输要求,应该在模块化的集成电路500的管芯302、管芯304之间支持高带宽且低时延的连通性。作为示例,在粘合管芯302的可编程结构中编程的加速功能单元(AFU)可以在对HBM和其他外部动态随机存取存储器(DRAM)进行高带宽和/或低时延访问的情况下更高效地操作,以满足系统性能。因此,可以在与和HBM或其他外部DRAM接合的外围IP管芯304(例如,UIB IP管芯或I/O IP管芯)相邻的扇区504中对AFU块进行编程(例如,放置)。可以将AFU块放置在这样的扇区504中,以减小将在这样的扇区中的AFU块耦合到外围IP管芯304的管芯到管芯的直接互连502的距离或使该距离最小化。因此,与从在粘合管芯302内更深的扇区(例如,504)中编程(例如,放置)的AFU块传输数据相比,将AFU块与外围IP管芯304相邻的放置可以导致更小的通信时延。
虽然就带宽和功耗而言,与使用传统的FPGA互连(例如,HIO、VIO)相比,使用管芯到管芯的直接互连502将管芯302、管芯304通信地连接在一起可能是更好的执行选择,但是管芯到管芯的直接互连502可能以硅面积为代价来提供高带宽且低时延的连通性。特别地,由于每个微凸块308可以用于发送单个信号,因此在管芯302、管芯304之间实现高带宽且低时延的连接可以使用大量的管芯到管芯的互连和微凸块308。然而,管芯可以容纳的微凸块的数量可能受到管芯的尺寸、每个微凸块的高度和/或微凸块308之间的间距(例如,对角线距离)的限制。例如,标准扇区504可以是2700微米乘以2300微米并基于微凸块308之间的高度和/或间距,扇区504可以容纳多达4500个微凸块。因此,增加微凸块的数量以满足带宽和时延连通性需求可能会增加总体硅管芯面积以容纳额外的微凸块,并因此可能会增加FPGASoC的制造成本。
为了使用不消耗不可接受量的功率和/或硅面积的可扩展的、模块化的通信接口来满足高带宽且低时延的连通性需求,可以将片上网络(NOC)拓扑网络与无源硅中介层306集成,使得NOC接口促进与以不同频率、数据宽度、带宽要求等运行的管芯302、管芯304的接合。图7和图8描绘了根据本公开实施例的NOC接口802的高级组织,其用于促进模块化的集成电路设备700、800中的管芯间和管芯内通信。
如下面将更详细讨论的,NOC接口802可以包括路由器804,管芯302内的管芯内接口806,以及在管芯302、管芯304之间的管芯间接口808。路由器804可以执行数据处理、数据同步化和到模块化的集成电路设备700、800的不同部分的数据传输。管芯内接口806可以通信地连接单个管芯(例如,粘合管芯302A)内的两个路由器804、805。另外地,管芯间接口808可以经由无源硅中介层306通信地连接两个路由器804、809,每个路由器属于不同的管芯,例如,属于粘合管芯302和属于外围IP管芯304。因为NOC接口802可以跨越粘合管芯302和外围IP管芯304两者的无源硅中介层306,所以NOC接口802可以向模块化的集成电路设备700、800中的大部分提供高带宽、低时延的通信。可以包括比所示的更多或更少数量的路由器804和/或可以包括比所示的更多或更少数量的与每个扇区504相关联的路由器804。
每个外围IP管芯304可以包括在无源硅中介层306内的片上结构网络(FNOC)接口810。FNOC接口810可以使用高速(例如,1-1.5GHz或更高)、高带宽(例如,在每条链路的每个方向上以每秒0.25-0.5太字节或更高的高带宽)的NOC接口802来将外围IP管芯304桥接到粘合管芯302。高级干扰总线边缘(AIB-E)(例如,边缘接口)还可以促进使用NOC接口802。例如,AIB-E可以将粘合管芯302的NOC接口、粘合管芯(例如,302A)内的NOC接口桥接在一起和/或将粘合管芯302的NOC接口桥接到外围IP管芯304的FNOC接口810。
特别地,路由器804、900可以执行数据处理、数据同步化以及到模块化的集成电路设备700、800内的目的地的数据传输,如在图9中根据本公开的实施例所示出的。虽然示出的路由器900描绘了粘合管芯302到粘合管芯302的接口,但是应当认识到的是,路由器900可以用作在粘合管芯302与外围IP管芯304之间的接口。路由器900可以是八端口路由器,其中四个端口902可以通信地耦合到相邻的路由器。例如,端口902可以是管芯内接口806的一部分,其用于促进粘合管芯302的不同部分之间的管芯内通信。其他四个端口904可以通过经由路由器桥906通信地耦合到粘合管芯302的扇区508和/或耦合到外围IP管芯304(例如,UIB IP)来促进管芯间通信。虽然示出了配置,但是应当注意,路由器900可以包括任何适当数量的端口902、904以及端口902、904的任何适当配置。
路由器桥906可以提供数据优先化和时钟域交叉(CDC)功能,例如,通过从粘合管芯频率转换为路由器频率。特别地,路由器桥906可以包括时钟交叉器910、数据宽度转换器通道912、虚拟通道914和交换机916。为了说明功能,时钟交叉器910例如可以首先从粘合管芯302的扇区508接收数据的分组。数据的分组可以包括表示分组的开始的报头、数据标识以及用于数据源和数据目的地的寻址信息。此外,数据的分组可以包括主体或数据本身,并且还包括声明分组的结束的尾部。
时钟交叉器910可以将数据协议从用户逻辑协议(例如,高级交互式执行3(AIX3)、AIX4、Avalon存储器映射(AVMM))转换为NOC操作协议。即,时钟交叉器910可以促进数据协议转换。例如,时钟交叉器910可以将数据的频率从粘合管芯频率(例如,400-500MHz)修改为NOC操作频率(例如,1GHz-1.5GHz)。作为另一示例,时钟交叉器910可以转换数据分组的组织以匹配由NOC操作协议规定的NOC分组格式。因此,桥906可以使粘合管芯302上的用户逻辑能够独立于NOC操作而以其自己的一致性(例如,频率)进行操作。
一旦数据协议已经由时钟交叉器910转换,数据宽度就可以由数据宽度转换器通道912转换。数据宽度转换器通道912可以包括地址通道、数据通道、写入地址通道、读取地址通道以及可以将数据从由粘合管芯302的用户逻辑使用的宽度转换为与由NOC接口802中使用的数据宽度兼容的宽度的其他通道。
然后,可以将数据发送到虚拟通道914,该虚拟通道914聚合具有类似优先级的数据以在下游传输期间增加整体吞吐量。换言之,数据可以在虚拟通道914中按优先级来组织,并且可以基于其优先级被选择用于下游传输。虚拟通道914可以是专用的先进先出(FIFO)缓冲器。交换机916可以基于在每个通道中保存的数据的优先级来在虚拟通道914之间切换,并且可以将数据发送到路由器端口(例如,端口904),并且随后发送到路由器900。应当认识到的是,桥906还可以实现沿相反方向的数据传输,即从路由器900到扇区508或到外围IP管芯304的数据传输。还应该认识到的是,可以包括比所示的更多或更少数量的组件作为路由器900和桥906的一部分。
一旦路由器900接收到数据,路由器900就可以进一步处理数据并将数据发送到其目的地。因此,路由器900可以在路由器时钟交叉器920处(例如,从相邻的路由器900)从输入端口918中的一个端口接收数据。路由器时钟交叉器920可以基于数据的目的地将数据协议从NOC操作协议转换为用户逻辑/外围IP管芯协议,如由例如分组化的数据的报头所确定的。换言之,并且如下面将要讨论的,路由器900和桥906可以经由在路由器900和桥906内的嵌入式时钟交叉器来支持同步和异步时钟交叉。
一旦数据被转换,数据就可以被发送到路由器虚拟通道922,该路由器虚拟通道922可以进一步聚合具有类似优先级的数据以用于联合下游传输。然后,数据可以被发送到交叉开关926,该交叉开关926可以基于数据的目的地连接到适当的输出端口。在一些实施例中,当两个数据聚合竞争交叉开关926的输出时,交换机分配器928可以基于优先级在聚合之间进行仲裁。另外地,控制逻辑924(例如,路由计算、虚拟通道分配器)可以例如通过在数据被发送之前在下游保留缓冲器空间和/或通过基于数据的目的地而找到适当的输出端口来控制路由器的操作。目的地可以包括另一路由器900、扇区508或外围IP管芯304。
在一些实施例中,外围IP管芯304的路由器900可以被组织以形成高效的交叉开关交换机,以实现在粘合管芯302上编程的用户逻辑的不同部分之间的存储器共享,而不消耗可编程结构资源(例如,路由电路)。这样的功能对于外围IP管芯304(例如,分别与HBM和外部DRAM接合的UIB和I/O外围IP)可能是有用的。
如图10中描绘的,根据本公开的实施例,NOC接口802与无源硅中介层306的集成可以经由微凸块308之间的连接来发生。例如,第一管芯(例如,粘合管芯302或外围IP管芯304)的路由器(例如,900A)可以耦合到在第一管芯302、304的边缘处的一系列微凸块308。经由无源硅中介层306,在第一管芯302、304的边缘处的微凸块308可以通信地耦合到在包括第二路由器(例如,900B)的第二管芯(例如,粘合管芯302或外围IP管芯304)的边缘处的微凸块308。应当认识到的是,可以使用更多数量的微凸块308来经由无源硅中介层306将NOC接口802的路由器900A、900B接合。
如先前所提到的,NOC接口802与无源硅中介层306的集成可以提供某些优点,例如,减少NOC接口802消耗的微凸块308,如由图11的根据实施例的模块化的集成电路设备800的微凸块布局1100所示。例如,NOC接口802可以消耗总的微凸块308的八分之一,这些微凸块将用于提供与管芯到管芯的直接互连502相同的量的带宽和时延性能。
图12的时序图1200示出了根据本公开实施例的当NOC接口802用于管芯间和/或管芯内通信时在路由器900之间传输数据的方式。作为说明性示例,来自第一管芯302、304的发送路由器(例如,900B、1202)可以经由(例如,如图10中示出的)单个微凸块308向接收路由器(例如,900A、1206)发送(例如,4位)数据的分组1204。由于单个微凸块308通常可能仅发送单个信号,因此为了在满足带宽和时延规范的同时发送4位数据,可以使用DDR(双倍数据速率)、TDM(时分复用)和/或更高的时钟频率来加快数据传输。
如所示的,可以使用例如TDM技术将并行数据的分组1204串行化为单个位宽的数据1208。此外,DDR可以与更高频率的时钟结合使用,以在传统上用于经由单个微凸块发送单个位的数据的时间内传输4位数据1204。换言之,DDR和更高频率的时钟可以用于发送多位数据1204,就如同数据1204是单个位的数据1208一样。
在该示例中,路由器900可以在路由器时钟域(clk1x_tx)1212中操作,并且可以将数据传输到在接口时钟域(例如,clk2x_tx/strb_tx)1210中操作的NOC Tx/Rx接口(例如,发送模块)。接口时钟域1210可以是路由器时钟域1212的两倍快。接口时钟域1210的增加的速度可以促进多位数据1204的传输,就如同数据1204是单个位1208一样。特别地,使用DDR,可以在较高频率时钟1210的上升沿期间发送数据1204中的一位,并且可以在较高频率接口时钟域1210的下降沿期间发送数据1204中的另一位。因此,在传统上用于发送单个位的数据(例如,A0)的时段1203中,可以发送4位的数据(例如,A0、B0、C0、D0)。因此,NOC接口802可以使用例如通常用于传输相同数据量的微凸块308的四分之一来促进模块化的集成电路设备800的部分之间的高带宽数据传输。
在一些实施例中,可以使用TDM和更高的时钟频率来实现由时序图1200所示的高带宽数据传输。例如,通过是路由器时钟域1212四倍快地运行接口时钟域1210,并且通过使用TDM来串行化数据,可以在用于发送单个位的传输时段1203中发送4位数据1208,而不使用TDM和更高频率的接口时钟域1210。然而,由于功率和其他性能约束,这样的快速时钟1210可能无法实现,并且因此DDR可以用于满足连通性性能需求。
另外地,一旦由接收路由器900B、1206接收到数据1208,接收路由器(例如,900B、1206)就可以以其原始格式再现数据1208。接收路由器900B、1206可以使用技术以与用于发送数据1208的次序相反的次序接收经串行化的数据1208。例如,接收路由器900B、1206可以使用DDR和高频率接口时钟(strb_tx)1210来接收数据1214。一旦接收到数据1214,就可以使用解复用技术对数据1214进行解串行化,以重新生成原始的4位数据1204A。解复用可以包括在接口时钟域1210的上升沿和下降沿处对数据1214进行采样。
图13示出了根据本公开实施例的NOC接口1300的实现方式,该NOC接口1300可以以类似于时序图1200所描述的方式,在数据传输时钟相位失准时促进路由器900之间的异步数据传输。例如,在异步数据传输期间,NOC接口1300可以在假设路由器时钟域1212和接口时钟域1210可能不是相位对齐的情况下来处理并传输数据。
为了以可扩展的方式以高带宽速率传输数据,特定的处理块可以在模块中分组在一起,以确保在相位失准的路由器时钟域1212与接口时钟域1210之间的同步化的数据传输,如下面所描述的。此外,这些模块可以在接口IP的扩展期间简化实现方式。特别地,可以将发送路由器900B与接收路由器900A之间的信号分组到发送模块(TX模块)1302A-1302N和接收模块1304A-1304N中。如先前所提到的,路由器900A、900B可以在由锁相环(PLL)1306控制的比Tx/Rx接口1308慢的时钟域1212(例如,1GHz)上操作。另一方面,Tx/Rx接口1308可以在诸如2GHz之类的更快的时钟域1210上操作。可以基于在NOC接口802中使用的晶体管的速度和功率性能来确定在时钟1210、时钟1212之间的比率。在一些实施例中,比率越大,根据时序图1200所描述的过程在给定时间段内可以发送的经串行化的数据的量就越大。
然而,在一些实施例中,在路由器时钟域1212与接口时钟域1210之间可能发生相位失准,从而在来自不同的发送模块1302A-1302N和接收模块1304A-1304N对的数据之间引入了偏斜。偏斜可能导致数据帧的失准,并阻止接收路由器900A正确地解码数据。在一些实施例中,为了针对发送模块1302A-1302N和接收模块1304A-1304N对中的每一个对路由器时钟域1212和接口时钟域1210进行相位对齐,可以在所有发送模块1302A-1302N之间建立时钟树。然而,基于快速的频率时钟(例如,接口时钟域1210)来建立准确且精准的时钟树可能是困难的。
因此,为了补偿和/或减少偏斜并且适当地恢复数据,可以在路由器时钟域1212与接口时钟域1210之间支持异步时钟交叉逻辑。可以使用数据处理和对齐硬件来支持异步时钟交叉机制,如下面将更详细讨论的。例如,管线定时寄存器1310可以被放置在路由器900A与Tx/Rx接口1308之间,和/或在路由器900B与Tx/Rx接口1308之间,以确保在不同的发射模块1302A-1302N与接收模块1304A-1304N对之间的定时闭合。
此外,可以在异步时钟交叉逻辑中使用字标记(例如,经由字标记块1312)和字对齐器(例如,经由字标记对齐器块1314)来补偿和/或减少偏斜。特别地,由发送路由器900B发送的数据的分组可以由字标记块1312利用指示符(例如,2位指示符(例如,2’b00、2’b01、2’b10或2’b11))进行标记,以指示由相应的发送模块1302A-1302N发送的数据的部分彼此相关联。即,指示符可以对由发送模块1302A-1302N发送的数据的序列进行编码。接收模块1304A-1304N可以包括字标记对齐器块1314,该字标记对齐器块1314使用指示符来重新对齐接收到的数据以对应于数据由发送模块1302A-1302N发送的次序。一旦数据被对齐,接收模块1304A-1304N就可以将数据发送到接收路由器900A。
为了进一步示出当路由器时钟域1212和接口时钟域1210的相位失准时NOC接口802可以如何支持异步时钟交叉逻辑,图14描绘了根据本公开实施例的包括在发送模块1302A-1302N和接收模块1304A-1304N中的硬件1400。发送模块1302A-1302N的硬件可以包括一个或多个先进先出(FIFO)缓冲器1402,该FIFO缓冲器1402从发送路由器900B接收数据。FIFO缓冲器1402可以通过隔离域(例如,存储数据直到适当的时间为止)来实现从路由器时钟域1212到接口时钟域1210的安全和/或准确的时钟交叉。
发送模块1302A-1302N还可以包括TX指针生成器1404,该TX指针生成器1404可以生成指向相应的FIFO缓冲器1402中存储要进一步向下游发送的数据的部分的指针。另外地,发送模块1302A-1302N可以包括有效性发送器1406。有效性发送器1406可以接收由发送路由器900B生成的有效信号1407。有效信号1407可以指示在时间段期间由发送路由器900B发送的数据是否为有效数据。例如,路由器900B可能空闲一段时间,并且可能不发送数据。在这样的时间期间,从发送模块1302A-1302N拾取的数据可以被忽略,并且因此由有效信号1407指示为无效。
发送模块1302A-1302N可以另外地包括双倍数据速率(DDR)输出模块1408和选通生成器1410。选通生成器1410可以耦合到占空比校正器(DCC)和延迟锁定环(DLL)处理块1412。DDR输出模块1408可以设置要以特定序列经由DDR发送的数据。例如,DDR输出模块1408可以在接口时钟域1210的上升沿和下降沿处发送数据,其中数据包括用于确定适当数据序列的指示符,如上面所描述的。因此,DDR输出模块1408可以促进NOC接口802的高带宽连通性。
DCC和DLL处理块1412的DCC处理块可以确保时钟占空比对于时间段的50%为高并且对于其他50%为低。根据DDR技术,通过尽可能地校正占空比以避免不规则或不期望的占空比,DCC和DLL处理块1412的DCC处理块可以确保数据在接口时钟域1210的上升沿和下降沿适当地发送。此外,DCC和DLL处理块1412的DLL处理块可以通过移位时钟以优化和/或确保准确的数据采样来促进对相对快速的接口时钟域1210的处理。
来自DCC和DLL处理块1412的信号可以被发送到选通生成器1410。选通生成器1410可以是使得能够对数据进行正确采样的选通时钟。例如,在发送侧,选通生成器1410可以在数据传输期间引入延迟,并且在接收侧,选通生成器可以根据相同的延迟来采样数据。
实际上,接收模块1304A-1304N的DCC和DLL处理块1416可以从选通生成器1410接收选通信号,以促进在接收器端对发送的数据进行适当的采样和重构。为了促进适当的采样,DCC和DLL处理块1416可以执行预采样训练和预采样裕度化以优化和/或确保准确的接口定时来减小采样误差。
此外,接收模块1304A-1304N的有效接收器1418可以从有效性发送器1406接收有效性信号,以指导数据加载到接收FIFO缓冲器1420以及从接收FIFO缓冲器1420的卸载。例如,有效接收器1418可以耦合到RX指针生成器1419,该RX指针生成器1419指向接收FIFO缓冲器1420中存储接收到的数据的部分。这可以进一步确保接收到的数据被正确地重组。
此外,接收模块1304A-1304N还可以包括DDR输入模块1422,该DDR输入模块1422可以经由DDR技术从发送模块1302A-1302N接收数据。换言之,DDR输入模块1422可以在接口时钟域1210的上升沿和下降沿处接收数据。一旦接收到数据,DDR输入模块1422就可以基于与数据相关联的指示符将数据发送到接收FIFO缓冲器1420。例如,当多个最近存储的数据的部分具有相同的指示符时,可以将这些数据的部分进行字对齐,并且然后经由输出端口1424发送到接收路由器900A。当最近存储的数据的部分具有不同的指示符时,那么这些数据的部分可能是未字对齐的,并且不会被发送到接收路由器900A。在一些实施例中,NOC接口1300可以沿与所描述的方向不同和/或相反的方向(例如,从路由器900A到路由器900B)发送数据。
图15示出了根据本公开实施例的模块化的集成电路设备1500的实现方式,该模块化的集成电路设备1500可以以类似于时序图1200所描述的方式,在数据传输时钟相位对齐时促进路由器900之间的异步数据传输。即,当管芯302、管芯304的路由器时钟域1212和接口时钟域1210由于这些时钟是由相同的管芯处理块生成的而相位对齐时,模块化的集成电路设备1500可以在管芯(例如,粘合管芯302或外围IP管芯304)的部分之间处理并传输数据。为了以可扩展的方式以高带宽速率传输数据,特定的处理块可以在模块中分组在一起,以确保在相位对齐的路由器时钟域1212与接口时钟域1210之间的同步化的数据传输,如下面所描述的。此外,这些模块可以在接口IP的扩展期间简化实现方式。
模块化的集成电路设备1500的管芯可以包括发送部分(例如,第一管芯部分#1)1501和接收部分(例如,第一管芯部分#2)1502。发送部分1501可以包括发送路由器900B,该发送路由器900B可以根据路由器时钟域1212操作,该路由器时钟域1212的频率由管芯宽锁相环(PLL)(例如,1503A)设置。管芯宽PLL还可以将接口时钟域1210设置为更高的频率,例如,路由器时钟域1212的频率的两倍。在一些实施例中,当使用相同的PLL针对相同管芯302、304上的不同部分1501、1502生成时钟域1210、1212时,时钟域1210、1212可以是相位对齐的。
发送路由器900B可以将数据发送到一个或多个TDM结构1504,TDM结构1504中的每一个可以包括两个TDM复用器1506、一个或多个TDM计数器1508以及一个或多个触发器1510。在一些实施例中,复用器1506可以是2:1复用器(如这里示出的)、4:1复用器、8:1复用器、4:3复用器、4:2复用器等。换言之,复用器1506可以具有促进将多位宽的数据转换为较少位宽的数据的任何TDM比率。
TDM结构1504可以串行化接收到的数据。例如,当使用2:1复用器时,复用器1506可以将数据的两位组合成单个位。可以使用路由时钟接口1212将TDM结构1504的经串行化的输出发送到DDR输出(例如,发送)模块1507。由于在路由器时钟域1212与接口时钟域1210之间的相位对齐,因此发送路由器900B可以在不使用时钟隔离缓冲器(例如,先进先出(FIFO)缓冲器)的情况下将数据直接地发送到DDR输出模块1507。DDR输出模块1507可以在接口时钟域1210的上升沿和下降沿两者上向下游发送数据。使用TDM、DDR和以较高频率操作的接口时钟域1210可以实现到管芯的另一部分(例如,接收部分1502)的更快的数据传输,例如,每个传输时段1203快多达四倍。
在下游数据传输期间,每个DDR输出模块1507可以将经串行化的数据输出到发送部分1501的微凸块308。即,单个微凸块308可以用于在接口时钟域1210的上升沿和下降沿处发送数据。可以经由无源硅中介层306将数据发送到接收部分1502的微凸块308。此外,接口时钟域1210的信号1509可以经由微凸块308和无源硅中介层306从发送部分1501发送到接收部分1502,以在接收部分1502处实现正确的数据采样。
特别地,信号1509可以由接收部分1502的DLL和DCC处理块1518接收。DLL和DCC处理块1518可以在信号1509到达DDR输入(例如,接收)模块1512A之前延迟(例如,相移)接口时钟域1210。信号1509可以用于驱动DDR输入模块1512A,并且由DLL和DCC处理块1518引入的延迟可以促进减少在数据由接收部分1502的接收路由器900A接收之前的占空比失真。
使用经移位的接口时钟域1210,DDR输入模块1520可以使用DDR对跨无源硅中介层306发送的数据进行适当的采样。换言之,DDR输入模块1512A可以通过在经移位的接口时钟域1210的上升沿和下降沿处对数据进行解复用来将数据转换为单数据速率(SDR)。此外,DDR输入模块1512A可以从接收部分PLL 1503B接收控制在DDR输入模块1512A处接收到的数据的采样的信号。
因为来自接收部分PLL 1503B的采样信号和信号1509可能不是相位对齐的(因为每个信号是由不同的PLL(例如,分别由1503B、1503A)生成的),所以时钟域可能不再是相位对齐的。因此,异步FIFO缓冲器1514A可以耦合到每个DDR输入模块1512A并且可以存储经采样的数据。FIFO缓冲器1514A可以在接收部分1502的接口时钟域1210与路由器时钟域1212之间提供时钟域隔离,如刚刚提到的,路由器时钟域1212以比接口时钟域1210慢的频率运行并且可能彼此相位失准。因此,FIFO缓冲器1514A可以用作时钟交叉缓冲器。
存储在接收FIFO缓冲器1514A中的数据可以以路由时钟域1212的速率(例如,接口时钟域1210的频率的一半)读出到接收TDM结构1516。接收TDM结构1516可以包括可以以与TDM复用器1506相反的方式操作的解复用器1518,例如,1:2解复用器。在该示例中,1:2解复用器1518可以对经串行化的2位数据进行解复用并将数据同步化到接收器路由器时钟域1212,使得可以将数据适当地传输到接收路由器900A。在一些实施例中,模块化的集成电路设备1500可以沿着与所描述的方向相反的方向(例如,从路由器900A到路由器900B)发送数据。
在一些实施例中,模块化的集成电路1500的硬件架构可以在相反的方向上工作。例如,接收部分1502的路由器900A可以将数据发送到接收部分1502的发送硬件,该接收部分1502的发送硬件可以包括与发送部分1501的发送硬件类似的架构。此外,发送部分1501可以使用类似于接收部分1502的接收硬件的接收硬件来接收数据。
无论NOC接口802是否促进同步和/或异步数据传输,NOC接口802可以促进满足已实现应用的带宽和时延性能需求,如在图16中根据本公开的实施例所示出的。作为说明性示例,可以在模块化的集成电路设备1500上实现图形应用。为了实现图形应用,可以将数字信号处理(DSP)单元1602、加速器单元1604、图形处理器1606和其他组件编程到粘合管芯302的可编程结构上。
编程的应用组件传统上可以集中在可编程结构的边缘处和外围IP附近,以减少由于经由可编程结构中的传统连接(例如,HIO/VIO)进行数据传输而引起的通信时延和路由拥塞。利用NOC接口802在模块化的集成电路设备800中的集成,可以减少通信时延和路由拥塞。特别地,由于NOC接口802分散在整个FPGA SoC中(包括在管芯302、管芯304之间),因此高带宽且低时延的连通性可以在整个可编程结构中可用。实现减少的通信时延和路由拥塞可以使得能够对粘合管芯302中更深(例如,远离粘合管芯302的边线、边缘或外围)的应用组件进行编程,并且因此可以减少应用组件的聚集。换言之,热点(例如,模块化的集成电路设备800的功耗部分)可以分散在整个可编程结构中,而不是集中在可编程结构的边线处。
在一些实施例中,应用组件可以各自在运行时期间访问存储器IP(例如,HBM和/或DRAM)以用于数据存储和加载。传统上,每个应用组件都可以访问存储器IP的单个通道。然而,能够访问单个通道的路由电路(例如,管芯到管芯的直接互连502)可能限于可编程结构的一小部分,从而进一步集中了需要应用组件的存储器带宽。然而,NOC接口802可以将存储器带宽需求分散到整个FPGA SoC中。例如,通过使应用组件能够在粘合管芯302的整个可编程结构中被编程,可以从可编程结构的不在边线处的部分请求存储器带宽。
此外,由于NOC接口802的时钟域交叉(CDC)功能,外围IP管芯304的路由器900可以被组织以形成交叉开关交换机,该交叉开关交换机可以促进将来自粘合管芯时钟域的信号交叉到外围IP时钟域。利用这种切换机制,NOC接口802可以实现在输入与输出之间的切换,使得存储器IP的多个通道可以由用户逻辑访问。因此,无论用户逻辑位于粘合管芯302中的何处,NOC接口802都可以使用户逻辑能够访问存储器IP。此外,NOC接口802可以使应用组件能够以与外围IP管芯304不同的频率进行操作。
本系统和技术涉及使用不消耗过多功率、硅面积和/或微凸块的可扩展的、模块化的通信接口来满足高带宽且低时延的连通性需求的实施例。本实施例可以促进以不同频率、数据宽度、带宽要求等运行的管芯302、管芯304的接合。本实施例还可以使多个核心能够利用由HBM和外部DDR IP存储器提供的独立存储器通道的并行性和并发性。此外,本实施例可以维持用于HBM访问的高效的交叉开关能力,并且可以向用户IO分片添加交叉开关能力以形成EMIF(外部存储器接口)以支持外部DRAM(DDRx)。此外,本实施例可以促进集成电路设备102的模块化和可扩展性。
虽然本公开中阐述的实施例可能易受各种修改和替代形式的影响,但是在附图中通过示例的方式已经示出了具体的实施例,并且已经在本文进行了详细描述。然而,应当理解,公开内容不旨在限于所公开的特定形式。公开内容将覆盖落入由所附权利要求书限定的公开内容的精神和范围内的所有修改、等效物和替代方案。
本文提出并要求保护的技术被引用并应用于具有实用性的物质对象和具体示例,这些物质对象和具体示例明确地改进了本技术领域,并且因此不是抽象的、无形的或纯理论的。此外,如果本说明书所附的任何权利要求包含被指定为“用于[执行][功能]的单元”或“用于[执行][功能]的步骤”的一个或多个元素,则这些元素旨在根据35U.S.C.112(f)进行解释。然而,对于包含以任何其他方式指定的元素的任何权利要求,这些元素都不旨在根据35U.S.C.112(f)进行解释。
Claims (20)
1.一种使用管芯间片上网络(NOC)进行通信的集成电路系统,包括:
第一管芯,其包括一个或多个可编程结构电路扇区;
第二管芯,其包括模块化的外围知识产权(IP);
无源硅中介层,其将所述第一管芯耦合到所述第二管芯;以及
包括片上网络(NOC)的模块化的接口,其中,所述模块化的接口可配置以进行以下操作:
经由位于所述第一管芯与所述第二管芯之间的所述模块化的接口的第一部分,在所述第一管芯与所述第二管芯之间提供通信;
经由位于所述一个或多个可编程结构电路扇区之间的所述模块化的接口的第二部分,在所述一个或多个可编程结构电路扇区之间提供通信;以及
经由位于所述第一管芯与第三管芯之间的所述模块化的接口的第三部分,在所述第一管芯与所述第三管芯之间提供通信,所述第三管芯包括附加的一个或多个可编程结构电路扇区。
2.根据权利要求1所述的集成电路系统,其中,所述模块化的接口可配置以提供高带宽、低时延的通信,所述高带宽、低时延的通信包括在每条链路的每个方向上以每秒0.25-0.5太字节并以所述一个或多个可编程结构电路扇区的操作频率两倍的速度发送和接收信号。
3.根据权利要求1所述的集成电路系统,其中,所述模块化的外围IP包括双倍数据速率(DDR)分片、低功率DDR(LPDDR)分片、高带宽存储器(HBM)分片、嵌入式静态随机存取存储器(eSRAM)分片、通用接口总线(UIB)分片、输入/输出(I/O)分片或其任意组合,并且其中,所述模块化的外围IP可配置以执行与所述可编程结构电路扇区相关联的功能。
4.根据权利要求1所述的集成电路系统,其中,使用所述第一管芯的微凸块和所述第二管芯的微凸块,所述NOC与所述无源硅中介层接合。
5.根据权利要求1所述的集成电路系统,其中,所述NOC包括多个路由器,所述多个路由器可配置以将数据路由到所述第一管芯的部分和/或所述第二管芯的部分。
6.根据权利要求5所述的集成电路系统,其中,所述多个路由器中的路由器包括:
第一端口,其可配置以从所述多个路由器中的相邻路由器接收数据,将所述数据发送到所述多个路由器中的另一相邻路由器,或其组合;
第二端口,其可配置以进行以下操作:
经由相关联的路由器桥从以下各项接收所述数据:
所述一个或多个可编程结构电路扇区中的扇区;
所述模块化的外围IP;或者
其组合;以及
经由所述相关联的路由器桥将所述数据发送到以下各项:
所述一个或多个可编程结构电路扇区中的另一扇区;
包括另一模块化的外围IP的第三管芯;或者
其组合;
时钟交叉缓冲器,其可配置以将所述数据的协议从路由器数据协议转换为用户逻辑数据协议;
虚拟通道,其可配置以至少部分地基于所述数据的优先级来聚合所述数据以用于下游传输;以及
交叉开关电路,其可配置以基于所述数据的目的地将所述数据路由到所述第一端口或所述第二端口。
7.根据权利要求6所述的集成电路系统,其中,所述相关联的路由器桥包括:
附加的时钟交叉缓冲器,其可配置以将所述数据的所述协议从所述用户逻辑数据协议转换为所述路由器数据协议,以促进由所述NOC进行的适当的数据传输;
数据宽度转换器,其可配置以将所述数据的宽度从用户逻辑兼容数据宽度转换为路由器兼容数据宽度;
附加的虚拟通道,其可配置以至少部分地基于所述数据的优先级来将所述数据聚合到部分中以用于下游传输;以及
交换机,其可配置以选择所述数据中被保存在虚拟通道中的一部分以用于由所述路由器处理。
8.根据权利要求1所述的集成电路系统,其中,第二管芯包括片上结构网络(FNOC),所述FNOC可配置以将所述第二管芯桥接到所述NOC。
9.一种模块化的集成电路,包括多个管芯和片上网络(NOC)接口,其中,所述NOC接口包括:
所述多个管芯中的第一管芯的第一路由器,其中,所述第一路由器可配置以发送数据;
所述多个管芯中的第二管芯的第二路由器,其中,所述第二路由器可配置以接收由所述第一路由器发送的所述数据;
一个或多个发送模块,其耦合到所述第一路由器,其中,所述一个或多个发送模块可配置以进行以下操作:
从所述第一路由器接收所述数据的相应部分;以及
使用双倍数据速率(DDR)技术,利用以比控制所述第一路由器的操作的路由器时钟快的频率操作的接口时钟发送所述数据的所述相应部分;以及
一个或多个接收模块,其耦合到所述一个或多个发送模块和所述第二路由器,其中,所述一个或多个接收模块可配置以进行以下操作:
从所述一个或多个发送模块中的与相应的接收模块相关联的发送模块接收所述数据的所述相应部分;
将所述数据的所述相应部分从双倍数据速率(DDR)解复用为单数据速率(SDR);以及
响应于对所述数据的所述相应部分进行解复用,将所述数据的所述相应部分发送到所述第二路由器。
10.根据权利要求9所述的模块化的集成电路,其中,所述第一路由器可配置以从所述第二路由器接收所述数据,并且其中,所述第二路由器可配置以从所述第一路由器发送所述数据。
11.根据权利要求9或10所述的模块化的集成电路,包括耦合到所述第一路由器和所述一个或多个发送模块的字标记块,其中,所述字标记块可配置以向所述数据的相应部分提供指示符,其中,所述指示符指示所述数据被发送到所述一个或多个接收模块的序列。
12.根据权利要求9所述的模块化的集成电路,包括耦合到所述第二路由器和所述一个或多个接收模块的字对齐块,其中,所述字对齐块可配置以对齐从所述第二路由器接收到的所述数据的相应部分。
13.根据权利要求12所述的模块化的集成电路,其中,所述字对齐块可配置以响应于所述数据被对齐而向下游发送所述数据的相应部分。
14.根据权利要求9所述的模块化的集成电路,其中,所述一个或多个发送模块包括有效性发送器,所述有效性发送器可配置以响应于被发送的数据有效而向所述一个或多个接收模块发送有效性信号。
15.根据权利要求9所述的模块化的集成电路,其中,将所述数据的所述相应部分从所述双倍数据速率(DDR)解复用为所述单数据速率(SDR)包括在所述接口时钟的上升沿处和所述接口时钟的下降沿处对所述数据进行采样。
16.根据权利要求9所述的模块化的集成电路,其中,所述接口时钟以所述路由器时钟两倍快的频率操作。
17.根据权利要求9-16中任一项所述的模块化的集成电路,其中,所述一个或多个发送模块包括选通生成器,所述选通生成器可配置以进行以下操作:
至少部分地基于所述接口时钟来生成选通时钟;以及
将所述选通时钟发送到所述一个或多个接收模块,其中,所述一个或多个接收模块可配置以根据所述选通时钟的延迟来对所述数据的相应部分进行采样。
18.一种集成电路,包括:
第一管芯,包括:
第一微凸块;
第一路由器,其可配置以使用路由器时钟发送数据;以及
第一接口,其耦合到所述第一微凸块和所述第一路由器,其中,所述第一接口包括:
第一时分复用(TDM)结构,其可配置以串行化由所述第一路由器接收到的数据;以及
第一双倍数据速率(DDR)模块,其可配置以使用以比所述路由器时钟快的频率操作的接口时钟经由DDR技术将经串行化的数据发送到所述第一微凸块;以及
第二管芯,包括:
第二微凸块,其经由无源硅中介层耦合到所述第一微凸块;
第二路由器,其可配置以使用所述路由器时钟接收由所述第一路由器发送的数据;以及
第二接口,其耦合到所述第二微凸块和所述第二路由器,其中,所述第二接口包括:
第二双倍数据速率(DDR)模块,其可配置以使用所述接口时钟经由所述DDR技术从所述第二微凸块接收所述经串行化的数据;以及
第二时分复用(TDM)结构,其可配置以进行以下操作:
对所述经串行化的数据进行解复用;以及
使用所述路由器时钟将经解复用的数据发送到所述第二路由器。
19.根据权利要求18所述的集成电路,其中,所述第一路由器可配置以接收数据,所述第一时分复用(TDM)结构可配置以对由所述第一路由器接收到的所述数据进行解复用,所述第二路由器可配置以将数据发送到所述第一路由器,并且所述第二时分复用(TDM)结构可配置以串行化所述数据。
20.根据权利要求18或19所述的集成电路,其中,所述DDR技术包括在所述接口时钟的上升沿处和所述接口时钟的下降沿处传输或发送所述数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/368,688 | 2019-03-28 | ||
US16/368,688 US11036660B2 (en) | 2019-03-28 | 2019-03-28 | Network-on-chip for inter-die and intra-die communication in modularized integrated circuit devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111753489A true CN111753489A (zh) | 2020-10-09 |
Family
ID=67298155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010131251.9A Pending CN111753489A (zh) | 2019-03-28 | 2020-02-28 | 模块化的集成电路设备中管芯间和管芯内通信的片上网络 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11036660B2 (zh) |
EP (1) | EP3716089A1 (zh) |
CN (1) | CN111753489A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114970409A (zh) * | 2022-07-27 | 2022-08-30 | 北极雄芯信息科技(西安)有限公司 | 基于多管芯互联的集成电路 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10637801B2 (en) * | 2018-04-26 | 2020-04-28 | Bae Systems Information And Electronic Systems Integration Inc. | Routing topology for digital signals with resistive combiners for reduced jitter |
US11580054B2 (en) * | 2018-08-24 | 2023-02-14 | Intel Corporation | Scalable network-on-chip for high-bandwidth memory |
GB202100742D0 (en) * | 2021-01-20 | 2021-03-03 | Graphcore Ltd | Exchange between stacked die |
US10642946B2 (en) * | 2018-12-28 | 2020-05-05 | Intel Corporation | Modular periphery tile for integrated circuit device |
US10707875B1 (en) * | 2019-05-10 | 2020-07-07 | Achronix Semiconductor Corporation | Reconfigurable programmable integrated circuit with on-chip network |
US10970248B2 (en) | 2019-05-10 | 2021-04-06 | Achronix Semiconductor Corporation | Processing of ethernet packets at a programmable integrated circuit |
US10936525B2 (en) | 2019-05-10 | 2021-03-02 | Achronix Semiconductor Corporation | Flexible routing of network data within a programmable integrated circuit |
US10891132B2 (en) | 2019-05-23 | 2021-01-12 | Xilinx, Inc. | Flow convergence during hardware-software design for heterogeneous and programmable devices |
US11188312B2 (en) * | 2019-05-23 | 2021-11-30 | Xilinx, Inc. | Hardware-software design flow with high-level synthesis for heterogeneous and programmable devices |
US10891414B2 (en) | 2019-05-23 | 2021-01-12 | Xilinx, Inc. | Hardware-software design flow for heterogeneous and programmable devices |
US10886218B2 (en) * | 2019-06-28 | 2021-01-05 | Intel Corporation | Fabric die to fabric die interconnect for modularized integrated circuit devices |
US10902171B1 (en) * | 2019-07-09 | 2021-01-26 | SiFive, Inc. | Clock crossing interface for integrated circuit generation |
US11321511B2 (en) | 2019-07-09 | 2022-05-03 | SiFive, Inc. | Reset crossing and clock crossing interface for integrated circuit generation |
US10742211B1 (en) * | 2019-07-31 | 2020-08-11 | Google Llc | Power sequencing in an active silicon interposer |
CN111414325B (zh) * | 2020-02-29 | 2021-09-17 | 苏州浪潮智能科技有限公司 | 一种Avalon总线转Axi4总线的方法 |
CN111753479B (zh) * | 2020-07-01 | 2022-03-18 | 无锡中微亿芯有限公司 | 利用硅连接层集成多裸片的片上网络的多裸片fpga |
US11943939B2 (en) * | 2021-01-04 | 2024-03-26 | Taiwan Semiconductor Manufacturing Company, Ltd. | Integrated circuit device and method |
CN112398877B (zh) * | 2021-01-20 | 2021-04-27 | 北京燧原智能科技有限公司 | 控制信号转换电路、知识产权核以及系统级芯片 |
CN112817905A (zh) * | 2021-02-05 | 2021-05-18 | 中国电子科技集团公司第五十八研究所 | 互联裸芯、互联微组件、互联微系统及其通信方法 |
CN112948322B (zh) * | 2021-02-26 | 2023-05-16 | 西安微电子技术研究所 | 一种基于弹性缓存的虚通道及实现方法 |
US11481343B1 (en) * | 2021-04-02 | 2022-10-25 | Micron Technology, Inc. | Transporting request types with different latencies |
US11675713B2 (en) * | 2021-04-02 | 2023-06-13 | Micron Technology, Inc. | Avoiding deadlock with a fabric having multiple systems on chip |
US11748289B2 (en) * | 2021-11-16 | 2023-09-05 | Xilinx, Inc. | Protocol aware bridge circuit for low latency communication among integrated circuits |
US11941742B2 (en) * | 2022-06-23 | 2024-03-26 | Apple Inc. | Tiled processor communication fabric |
US11983133B2 (en) * | 2022-08-22 | 2024-05-14 | Xilinx, Inc. | Adaptive integrated programmable data processing unit |
WO2024112966A1 (en) * | 2022-11-24 | 2024-05-30 | Molex, Llc | Port mapping for aggregator-disaggregator |
CN117370231B (zh) * | 2023-12-07 | 2024-04-12 | 芯动微电子科技(武汉)有限公司 | 实现gpu核内片上网络总线访问的协议转换模块及方法 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1875681A1 (en) * | 2005-04-13 | 2008-01-09 | Koninklijke Philips Electronics N.V. | Electronic device and method for flow control |
WO2012031362A1 (en) * | 2010-09-07 | 2012-03-15 | Corporation De L ' Ecole Polytechnique De Montreal | Methods, apparatus and system to support large-scale micro- systems including embedded and distributed power supply, thermal regulation, multi-distributed-sensors and electrical signal propagation |
US8417867B2 (en) * | 2010-11-17 | 2013-04-09 | Xilinx, Inc. | Multichip module for communications |
GB2493194A (en) * | 2011-07-28 | 2013-01-30 | St Microelectronics Res & Dev | Alerting transaction initiators in an electronic circuit in the event of a power failure or circuit error |
US8704384B2 (en) * | 2012-02-17 | 2014-04-22 | Xilinx, Inc. | Stacked die assembly |
US9479456B2 (en) * | 2012-11-02 | 2016-10-25 | Altera Corporation | Programmable logic device with integrated network-on-chip |
US9065722B2 (en) * | 2012-12-23 | 2015-06-23 | Advanced Micro Devices, Inc. | Die-stacked device with partitioned multi-hop network |
US9106229B1 (en) * | 2013-03-14 | 2015-08-11 | Altera Corporation | Programmable interposer circuitry |
US10027433B2 (en) * | 2013-06-19 | 2018-07-17 | Netspeed Systems | Multiple clock domains in NoC |
US20150103822A1 (en) * | 2013-10-15 | 2015-04-16 | Netspeed Systems | Noc interface protocol adaptive to varied host interface protocols |
US20150109024A1 (en) * | 2013-10-22 | 2015-04-23 | Vaughn Timothy Betz | Field Programmable Gate-Array with Embedded Network-on-Chip Hardware and Design Flow |
US9699079B2 (en) * | 2013-12-30 | 2017-07-04 | Netspeed Systems | Streaming bridge design with host interfaces and network on chip (NoC) layers |
US10116557B2 (en) * | 2015-05-22 | 2018-10-30 | Gray Research LLC | Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network |
US10243881B2 (en) * | 2015-10-27 | 2019-03-26 | Western Digital Technologies, Inc. | Multilayer 3D memory based on network-on-chip interconnection |
US9837391B2 (en) * | 2015-12-11 | 2017-12-05 | Intel Corporation | Scalable polylithic on-package integratable apparatus and method |
US10916516B2 (en) * | 2017-06-07 | 2021-02-09 | Xilinx, Inc. | High bandwidth memory (HBM) bandwidth aggregation switch |
US11093673B2 (en) * | 2016-12-22 | 2021-08-17 | Synopsys, Inc. | Three-dimensional NoC reliability evaluation |
US10445278B2 (en) | 2016-12-28 | 2019-10-15 | Intel Corporation | Interface bridge between integrated circuit die |
US11632112B2 (en) | 2017-12-27 | 2023-04-18 | Intel Corporation | Integrated circuit device with separate die for programmable fabric and programmable fabric support circuitry |
US10505548B1 (en) * | 2018-05-25 | 2019-12-10 | Xilinx, Inc. | Multi-chip structure having configurable network-on-chip |
US11789883B2 (en) | 2018-08-14 | 2023-10-17 | Intel Corporation | Inter-die communication of programmable logic devices |
US10673439B1 (en) * | 2019-03-27 | 2020-06-02 | Xilinx, Inc. | Adaptive integrated programmable device platform |
-
2019
- 2019-03-28 US US16/368,688 patent/US11036660B2/en active Active
-
2020
- 2020-02-06 EP EP20155799.8A patent/EP3716089A1/en active Pending
- 2020-02-28 CN CN202010131251.9A patent/CN111753489A/zh active Pending
-
2021
- 2021-06-14 US US17/347,324 patent/US11726932B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114970409A (zh) * | 2022-07-27 | 2022-08-30 | 北极雄芯信息科技(西安)有限公司 | 基于多管芯互联的集成电路 |
Also Published As
Publication number | Publication date |
---|---|
US11726932B2 (en) | 2023-08-15 |
US20190227963A1 (en) | 2019-07-25 |
US11036660B2 (en) | 2021-06-15 |
EP3716089A1 (en) | 2020-09-30 |
US20210303491A1 (en) | 2021-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3716089A1 (en) | Network-on-chip for inter-die and intra-die communication in modularized integrated circuit devices | |
US11424744B2 (en) | Multi-purpose interface for configuration data and user fabric data | |
US11972132B2 (en) | Data processing engine arrangement in a device | |
JP7274500B2 (ja) | システムオンチップインターフェースアーキテクチャ | |
US10747690B2 (en) | Device with data processing engine array | |
US11062070B2 (en) | Die to die interconnect structure for modularized integrated circuit devices | |
US11714941B2 (en) | Modular periphery tile for integrated circuit device | |
US20240028544A1 (en) | Inter-die communication of programmable logic devices | |
US12009298B2 (en) | Fabric die to fabric die interconnect for modularized integrated circuit devices | |
KR20090012073A (ko) | 반도체 집적 회로 및 반도체 장치 | |
CN118227527A (zh) | Sdram控制器子系统的源同步分区 | |
TW202226032A (zh) | 微型晶片網路及微型分區基礎結構 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |