The present disclosure relates generally to modeling of die-to-die interconnect architecture for an integrated circuit system design independent of underlying hardware.
This section is intended to introduce the reader to various aspects of art that may be related to various aspects of the present disclosure, which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it may be understood that these statements are to be read in this light, and not as admissions of prior art.
Integrated circuit devices are becoming faster and more efficient in data processing to keep up with the ever-increasing push for faster processing of large volumes of data. Some integrated circuit devices may include electronic devices that may include multiple integrated circuit dies, which are sometimes referred to as chiplets, communicatively coupled to perform data processing tasks. The multiple dies in an integrated circuit device may be programmable logic devices, application-specific integrated circuits, processors, transceivers, or a variety of other electronic circuit components.
Integrated circuit devices may be found in a wide variety of products, including computers, handheld devices, industrial infrastructure, televisions, and vehicles. Many of these integrated circuit devices are application-specific integrated circuits (ASICs) that are designed and manufactured to perform specific tasks. A programmable logic device such as a field programmable gate array (FPGA), by contrast, may be configured after manufacturing with a variety of different system designs. As such, programmable logic devices may be used for varying tasks and/or workloads. However, programmable logic devices may use different interfaces for connection and communication with other components. To generate system designs that include multiple integrated circuit dies, the die-to-die adapter layers and physical layers of all of the multiple integrated circuit dies may be modeled by software that compiles the system design. As such, to use a new integrated circuit die in a system design, a model of the new integrated circuit die may be created. This may take time and expertise, increasing the difficulty of using the new integrated circuit die in a system design.
Various aspects of this disclosure may be better understood upon reading the following detailed description and upon reference to the drawings in which:
One or more specific embodiments will be described below. In an effort to provide a concise description of these embodiments, not all features of an actual implementation are described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure.
When introducing elements of various embodiments of the present disclosure, the articles “a,” “an,” and “the” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements. Additionally, it should be understood that references to “one embodiment” or “an embodiment” of the present disclosure are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features.
Programmable logic devices are increasingly permeating markets, enabling customers to implement integrated circuit system designs in logic fabric (e.g., programmable logic). Programmable logic fabric of an integrated circuit may be programmed to implement a programmable circuit design to perform a wide range of functions and operations. The programmable logic fabric may include configurable blocks of programmable logic (e.g., sometimes referred to as logic array blocks (LABs) or configurable logic blocks (CLBs)) that have lookup tables (LUTs) that can operate as different logic elements based on the configuration data programmed into memory cells in the blocks. Different system designs may use different interfaces for connection and communication with other circuit components. For example, some integrated circuit dies (e.g., chiplets) may use a specific interface (e.g., peripheral component interconnect express (PCIe)) for communication. Indeed, some integrated circuit dies may communicate using a high data bandwidth interface while others may communicate using interfaces with lower data bandwidth.
This disclosure relates to generating a system design for an integrated circuit system formed using multiple integrated circuit dies (e.g., chiplets). Such suitable integrated circuit systems may be formed, for example, by disaggregating components of a monolithic integrated circuit into chiplets that may be coupled in a three-dimensional (3D) or side-by-side (2.5D) arrangement. Although this disclosure encompasses any suitable integrated circuit systems, some specific examples of modular integrated circuit systems in the form of programmable logic devices will be discussed below. It should be appreciated that these examples are meant to be elucidatory and not exhaustive. For example, a programmable logic integrated circuit system may be formed by disaggregating one or more components of a field programmable gate array (FPGA). In some cases, the integrated circuit system may include chiplets (e.g., separate dies, tiles) that respectively contain specific circuits that historically have been part of a monolithic programmable logic device (e.g., transceivers) or custom chiplets made by a third party.
The integrated circuit system may have a main fabric die (e.g., FPGA die) with a fabric embedded with certain common functions used by broad segments of potential developers or users that may couple to chiplets with supporting circuitry (e.g., disaggregated circuit elements). Indeed, the main fabric die may include programmable logic circuitry, which may be referred to as logic array blocks (LABs) or configurable logic blocks (CLBs), and programmable routing circuitry. In some cases, the main fabric die may not include certain other circuit elements found in many monolithic programmable logic devices, such as embedded memory (e.g., M20k) blocks, digital signal processor (DSP) blocks, embedded input/output (I/O), embedded hard processor systems (HPS), or the like. In some cases, disaggregated circuitry may be referred to as FPGA memory, FPGA DSP blocks, FPGA I/O blocks, and FPGA HPS blocks, or the like, to signify that they represent circuitry suitable for use by an FPGA like circuitry that is found in a monolithic FPGA. Moreover, these disaggregated components may be disposed in separate respective chiplets (e.g., there may be separate memory chiplets, DSP chiplets, I/O (transceiver) chiplets, HPS chiplets) or may be at least partly combined in certain chiplets (e.g., there may be chiplets with both memory and DSP blocks, chiplets with I/O chiplets and HPS). Disaggregating these circuit components may cause the FPGA die to use less power to operate or operate more efficiently since the programmable logic fabric may be arranged as a continuous array. Indeed, a continuous array of programmable logic fabric may be a more efficient power and performance arrangement.
Additionally or alternatively, the one or more chiplets may implement fixed-function logic found in monolithic FPGAs, such as floating point (FP) arithmetic, a cryptographic engine, an artificial intelligence (AI) engine, or the like. The chiplets may also implement functions for off-die communication, such as functions of communication ports, input/output ports, bridges or interposers, decoupling capacitors, or the like. The chiplets may further implement processes of hardened circuits, such as processors (e.g., an x86 processor, an Advanced RISC Machines (ARM) processor, a secure device manager (SDM)), hard processor system (HPS), or the like). The chiplets may also implement voltage regulation (VR), a power source, or the like.
In an example, a market segment or a customer may want an integrated circuit system with to with a certain functionality or performance requirements. The resulting integrated circuit system may meet the desires of the market due to the arrangement of the chiplets and/or the functionality of the chiplets. For example, the relative placement of the chiplets may be selected based on an expected FPGA system design that will be configured on the programmable fabric die. The relative placement of the chiplets may also be selected so as to distribute heat based on an expected operation of the FPGA system design.
The integrated circuit system according to this disclosure may take any suitable form. One example is that of a programmable logic device that includes programmable logic circuitry (e.g., programmable logic fabric, FPGA).
The integrated circuit system 12 may include any programmable logic device, such as a field programmable array (FPGA) 40, as shown in
In the example of
To program the sectors 48, the configuration data associated with the circuit design may be stored in the configuration memory 52 of the appropriate programmable logic elements 50. As such, the sectors 48 and logic elements 50 may include additional logic elements to facilitate the storage of configuration data, such as wires, gates, and registers. For example, during programming, the configuration data may be loaded into data registers and subsequently into the configuration memory 52 using pins and input/output circuitry. Additionally or alternatively, a power supply may provide a source of voltage and current to a power distribution network (PDN) that distributes electrical power to the various components of the FPGA 40. Operating the circuitry of the FPGA 40 causes power to be drawn from the power distribution network.
There may be any suitable number of programmable logic sectors 48 on the FPGA 40. Indeed, while 29 programmable logic sectors 48 are shown here, it should be appreciated that more or fewer may appear in an actual implementation (e.g., in some cases, on the order of 1, 5, 10, 50, 100, 500, 1000, 5000, 10,000, 50,000, or 100,000 sectors or more). Different programmable logic sectors 48 may include a sector controller (SC) 58 that controls the operation of the programmable logic sectors 48. Each sector controller 58 may be in communication with a device controller (DC) 60. Each sector controller 58 may accept commands and data from the device controller 60 and may read data from and write data into its configuration memory 52 based on control signals from the device controller 60. In addition to these operations, the sector controller 58 may be augmented with numerous additional capabilities. For example, such capabilities may include locally sequencing reads and writes to implement error detection and correction on the configuration memory 52 and sequencing test control signals to effect various test modes.
The sector controllers 58 and the device controller 60 may be implemented as state machines and/or processors. For example, each operation of the sector controllers 58 or the device controller 60 may be implemented as a separate routine in a memory containing a control program. This control program memory may be fixed in a read-only memory (ROM) or stored in a writable memory, such as random-access memory (RAM). The ROM may have a size larger than would be used to store only one copy of each routine. This may allow each routine to have multiple variants depending on “modes” the local controller may be placed into. When the control program memory is implemented as random access memory (RAM), the RAM may be written with new routines to implement new operations and functionality into the programmable logic sectors 48. This may provide usable extensibility in an efficient and easily understood way. This may be useful because new commands could bring about large amounts of local activity within the sector at the expense of only a small amount of communication between the device controller 60 and the sector controllers 58.
Each sector controller 58 thus may communicate with the device controller 60, which may coordinate the operations of the sector controllers 58 and convey commands initiated from outside the FPGA device 40. To support this communication, the interconnection resources 46 may act as a network between the device controller 60 and each sector controller 58. The interconnection resources may support a wide variety of signals between the device controller 60 and each sector controller 58. In one example, these signals may be transmitted as communication packets.
The FPGA 40 may be electrically programmed. With electrical programming arrangements, the programmable elements 50 may include one or more logic elements (wires, gates, registers, etc.). For example, during programming, configuration data (e.g., mapping function) is loaded into the configuration memory 52 using pins and input/output circuitry. In one example, the configuration memory 52 may be implemented as configuration random-access-memory (CRAM) cells. As discussed below, in some embodiments, the configuration data may be loaded into the FPGA 40 using an update to microcode of the processor in which the FPGA 40 is embedded. The use of configuration memory 52 based on RAM technology is described herein is intended to be only one example. Moreover, configuration memory 52 may be distributed (e.g., as RAM cells) throughout the various programmable logic sectors 48 the FPGA 40. The configuration memory 52 may provide a corresponding static control output signal that controls the state of an associated programmable logic element 50 or programmable component of the interconnection resources 46. The output signals of the configuration memory 52 may be applied to the gates of metal-oxide-semiconductor (MOS) transistors that control the states of the programmable logic elements 50, or programmable components of the interconnection resources 46.
The programmable elements 50 of the FPGA 40 may also include some communication wires to transfer a signal. In an embodiment, the programmable logic sectors 48 may be provided in the form of vertical routing channels (e.g., interconnects formed along a y-axis of the FPGA 40) and horizontal routing channels (e.g., interconnects formed along an x-axis of the FPGA 40). The routing channels of the FPGA 40 may also include or interface with network-on-chip (NoC) circuitry to transmit data in packets from one address within the FPGA 40 to another address. The FPGA 40 may include one or more function blocks, which may be partial reconfiguration regions of the programmable logic elements 50 of the FPGA 40 that may be modified (e.g., partially reconfigured) to implement new logic. The function blocks may implement logic that performs a particular task, such as routing data, which may be user-defined. Data, such as communication packets, may be transferred between the function blocks and/or the interconnection resources 46 of the FPGA 40. Further, the interconnection resources 46 may enable data to be transmitted and received by the FPGA 40. As further described herein, data may be communicated between dies of the integrated circuit system 12. Keeping the discussion of
Keeping the foregoing in mind,
The chiplet 44 may include a transceiver tile and interconnect circuitry, among other things. The interconnect circuitry 78 may include die-to-die adapter layer circuitry 74 and physical layer circuitry 76. The interconnect circuitry 78 may be implemented through a substrate 68. Additionally or alternatively, the interconnect circuitry 78 may be implemented through an interposer medium, such as a silicon interposer medium. The physical layer circuitry 72 may connect to an Embedded Multi-die Interconnect Bridge (EMIB) 80 or other suitable packaging circuitry that is embedded into the substrate 68 and connected to the physical layer circuitry 72, such as through wires connecting microbumps. The interconnect circuitry 78 may also be implemented according to an interconnect standard for die-to-die data communication onto the EMIB 17.
Although the integrated circuit system 12 is illustrated as containing the chiplet 44 and the FPGA die 64, the integrated circuit system 12 may include any combination of dies, chips, or chiplets. Similarly, the interconnect circuitries may include any interconnect circuitry technologies.
Furthermore, chiplets may be defined as digitally communicative dies (e.g., sometimes referred to as chips). Some chiplets may be integrated circuits equipped with transceivers or transceiver dies. Chiplets may be grouped as one or multiple dies. Chiplets may be interconnected to form a multi-die chiplet package implemented on a chip package substrate. Multiple chiplets may reside inside a packaging boundary of a chip. Furthermore, chiplets may also be defined as digitally communicative dies with no packaging boundary in the form of a modular digital circuit, as an example, implemented on a circuit board substrate.
The die-to-die adapter layer circuitry 70, 74 and physical layer circuitry 72, 76 in
The die-to-die adapter layer circuitry 70, 74, physical layer circuitry 72, 76, and interconnect circuitry 78 of
In the example of
With the foregoing in mind,
The design software 14 may model the circuit design agnostic of the physical layer circuitry 72. As such, the design software 14 may model the circuit design without modeling the physical layer circuitry 72. Additionally or alternatively, the design software 14 may model a first design associated with the first chiplet 44A without modeling the physical layer circuitry 72 and may also model a second design associated with the second chiplet 44B without modeling the physical layer circuitry 72. Accordingly, by separating out the physical layer circuitry 72 from modelling by the design software 14, time and resources may be reduced during programming of the FPGA die 64. Additionally, by separating out the physical layer circuitry 72 from modelling by the design software 14, the design software 14 may configure any number of circuit designs corresponding to any number of chiplets 44. For example, the design software may configure programmable logic of the FPGA die 64 for a first circuit design that corresponds to a custom chiplet manufactured by a vendor. Additionally or alternatively, the first chiplet 44A may be provided by a first manufacturer and/or vendor and the design software 14 may be provided by a second manufacturer and/or vendor. As such, the design software 14 may permit programming the programmable logic of the FPGA die 64 to communicatively couple to various chiplets provided by various manufacturers and/or vendors. Moreover, a manufacturer and/or vendor associated with the FPGA die 64 may differ from the manufacturer and/or vendor associated with the first chiplet 44A, the second chiplet 44B, or both.
The die-to-die adapter layer 70 may map any number of functions, such as functions 102A, 102B, 102C (referred to collectively as functions 102), to perform tasks. For example, the functions 102 may include a streaming function that may stream data across the FPGA die 64, a first in first out (FIFO) function, a scrambling function, an Ethernet function, an analog to digital converter (ADC) function, and so forth. The functions 102 may perform any number of tasks on the FPGA die 64.
The method 200 includes various steps represented by blocks. Although the flow chart illustrates the steps in a certain sequence, it should be understood that the steps may be performed in any suitable order and certain steps may be carried out simultaneously, where appropriate. Further, certain steps or portions of the method 200 may be performed by separate systems or devices.
The integrated circuit system 12 may be a component included in a data processing system, such as a data processing system 300, shown in
In one example, the data processing system 300 may be part of a data center that processes a variety of different requests. For instance, the data processing system 300 may receive a data processing request via the network interface 306 to perform encryption, decryption, machine learning, video processing, voice recognition, image recognition, data compression, database search ranking, bioinformatics, network security pattern identification, spatial navigation, digital signal processing, or some other specialized task.
While the embodiments set forth in the present disclosure may be susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and have been described in detail herein. However, it should be understood that the disclosure is not intended to be limited to the particular forms disclosed. The disclosure is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the disclosure as defined by the following appended claims.
The techniques presented and claimed herein are referenced and applied to material objects and concrete examples of a practical nature that demonstrably improve the present technical field and, as such, are not abstract, intangible or purely theoretical. Further, if any claims appended to the end of this specification contain one or more elements designated as “means for [perform]ing [a function] . . . ” or “step for [perform]ing [a function] . . . ”, it is intended that such elements are to be interpreted under 35 U.S.C. 112(f). However, for any claims containing elements designated in any other manner, it is intended that such elements are not to be interpreted under 35 U.S.C. 112(f).
EXAMPLE EMBODIMENT 1. An article of manufacture comprising one or more tangible, non-transitory, machine-readable media having instructions stored thereon that, when executed by one or more processors, cause the one or more processors to:
generate configuration data based on the circuit design; and
transfer the configuration data to the integrated circuit system to cause programmable logic of the integrated circuit system to implement the circuit design.
EXAMPLE EMBODIMENT 2. The article of manufacture of example embodiment 1, wherein the instructions, when executed by the one or more processors, cause the one or more processors to model the circuit design without modeling the physical layer circuitry.
EXAMPLE EMBODIMENT 3. The article of manufacture of example embodiment 1, wherein the instructions, when executed by the one or more processors, cause the one or more processors to model the circuit design with a die-to-die adapter layer.
EXAMPLE EMBODIMENT 4. The article of manufacture of example embodiment 3, wherein the die-to-die adapter layer includes circuitry comprising advanced interface bus (AIB) circuitry, universal interconnect bus (UIB) circuitry, or both.
EXAMPLE EMBODIMENT 5. The article of manufacture of example embodiment 1, wherein the circuit design is associated with a first chiplet configurable to communicatively couple to an integrated circuit die of the integrated circuit system.
EXAMPLE EMBODIMENT 6. The article of manufacture of example embodiment 5, wherein the integrated circuit die comprises the programmable logic.
EXAMPLE EMBODIMENT 7. The article of manufacture of example embodiment 5, wherein the instructions, when executed by the one or more processors, cause the one or more processors to:
model a second circuit design for the integrated circuit system, wherein the second circuit design is associated with a second chiplet configurable to communicatively couple to the integrated circuit die.
EXAMPLE EMBODIMENT 8. The article of manufacture of example embodiment 7, wherein the integrated circuit die comprises the physical layer circuitry.
EXAMPLE EMBODIMENT 9. The article of manufacture of example embodiment 7, wherein the instructions, when executed by the one or more processors, cause the one or more processors to model the second circuit design without modeling the physical layer circuitry.
EXAMPLE EMBODIMENT 10. An integrated circuit system, comprising:
a chiplet; and
an integrated circuit die communicatively coupled to the chiplet, the integrated circuit die comprising programmable logic fabric configurable to implement a circuit design, wherein the integrated circuit die receives configuration data based on the circuit design, and wherein the circuit design does not model physical layer circuitry associated with the integrated circuit die.
EXAMPLE EMBODIMENT 11. The integrated circuit system of example embodiment 10, wherein the chiplet comprises a custom chiplet.
EXAMPLE EMBODIMENT 12. The integrated circuit system of example embodiment 11, wherein the integrated circuit die is associated with a first manufacturer and the custom chiplet is associated with a second manufacturer.
EXAMPLE EMBODIMENT 13. The integrated circuit system of example embodiment 12, comprising:
a first chiplet configurable to communicatively couple to the integrated circuit die; and
a second chiplet configurable to communicatively couple to the integrated circuit die.
EXAMPLE EMBODIMENT 14. The integrated circuit system of example embodiment 13, wherein:
the integrated circuit die is configurable to implement a first circuit design associated with the first chiplet and agnostic of the physical layer circuitry of the integrated circuit die; and
the integrated circuit die is configurable to implement a second circuit design associated with the second chiplet and agnostic of the physical layer circuitry of the integrated circuit die.
EXAMPLE EMBODIMENT 15. The integrated circuit system of example embodiment 13, wherein the first chiplet is associated with a first manufacturer and the second chiplet is associated with a second manufacturer.
EXAMPLE EMBODIMENT 16. The integrated circuit system of example embodiment 13, wherein the first chiplet is associated with a first manufacturer and the integrated circuit die is associated with a second manufacturer.
EXAMPLE EMBODIMENT 17. A method of preparing an integrated circuit, comprising:
EXAMPLE EMBODIMENT 18. The method of example embodiment 17, wherein the user design is associated with a first chiplet configurable to communicatively couple to the integrated circuit die via the physical layer circuitry.
EXAMPLE EMBODIMENT 19. The method of example embodiment 18, comprising:
generating second configuration data based on a second user design associated with a second chiplet, wherein the second user design is independent of the physical layer circuitry; and
transferring the second configuration data to the integrated circuit system to cause a second portion of programmable logic of the integrated circuit die to implement the second user design.
EXAMPLE EMBODIMENT 20. The method of example embodiment 18, wherein the first chiplet is associated with a first manufacturer and the integrated circuit die is associated with a second manufacturer.