This relates generally to integrated circuit packages, and more particularly, to integrated circuit packages with heat dissipation circuitry.
An integrated circuit package typically includes one or more integrated circuit dies mounted on a substrate. As integrated circuit technology scales towards smaller device dimensions, device performance continues to improve at the expense of increased power consumption, which can generate a substantial amount of heat. If this heat is not properly dissipated, circuitry on the integrated circuit package can overheat and suffer from meltdown and degradation in reliability and performance.
In an effort to help dissipate heat in a high-performance integrated circuit package, conventional wicked heat pipes have been developed to help transfer heat among the different dies on the integrated circuit package. Traditional wicked heat pipes include insertable wicked or micro-grooved structures that serve to transport cooling liquid inside an integrated vapor chamber. Conventional wicked heat pipes, however, face a variety of challenges: they are difficult and costly to manufacture (i.e., inserting wicks into heat pipes is a challenging process); they show poor performance in gravity operations; the wicks can cause thermal resistance inside the pipe itself; they exhibit poor durability (i.e., the wicks can often deform, peel, or crack over time); etc.
It is within this context that the embodiments described herein arise.
The present embodiments relate to an integrated circuit package with adjustable (reconfigurable) wickless heat pipes such as wickless constrained vapor bubble (CVB) heat pipe structures. The wickless CVB heat pipe structures may be programmed using a micro-electro-mechanical systems (MEMS) switch. When the MEMS switch is disabled, the wickless CVB heat pipe structures may exhibit a first heat transfer efficiency. When the MEMS switch is enabled, the wickless CVB heat pipe structures may exhibit a second heat transfer efficiency that is greater than the first heat transfer efficiency. The wickless CVB heat pipe structures can be arranged and selectively enabled to help dissipate local hot spots within the integrated circuit package. A hot spot or local hot spot may be defined as an area on an integrated circuit device that generates substantially more heat than its surrounding area (e.g., a given region that generates at least 20% more heat, at least 30% more heat, at least 50% more heat, or at least 100% more heat than surrounding regions).
It will be recognized by one skilled in the art, that the present exemplary embodiments may be practiced without some or all of these specific details. In other instances, well-known operations have not been described in detail in order not to unnecessarily obscure the present embodiments.
As shown in
Details of an adjustable wickless CVB heat pipe structure 102 are discussed in connection with
As shown in
The portion inside housing 110 that is not occupied by fluid 112 forms a self-contained vapor bubble such as constrained vapor bubble 114. The size of bubble 114 may be defined by the distance between a heated meniscus 116 lining the heated edge of pipe 102 and a bulk meniscus 118 near the bulk portion of fluid 112. In the example of
Still referring to
In the example of
Typically, heat generated at the edges or corners of an integrated circuit die tends to be trapped or concentrated in that region since edge/corners portions do not readily disperse heat. Heat pipe structures 102 may be configured to transfer any local hot spots from the edge/peripheral portions of die 10 towards the center or bulk portion of die 10, which offers more volume for lateral dispersion of heat. Configured in this way, heat pipe structures 102 may be selectively activated to transfer heat from the peripheral portions of die 10 to the bulk portion of die 10.
In another suitable embodiment, integrated circuit package 100 may be a multichip package that includes more than one integrated circuit die (see, e.g.,
In the example of
Similar to the embodiment of
First heat pipe structure 102-1 may be adjusted by first switch 130-1 (e.g., a piezoelectrically-driven switch). First switch 130-1 may be activated by turning on switch 160-1 to apply a voltage V across switch 130-1. Switch 160-1 may be controlled by a corresponding memory element 20-1. The bias voltage V, switch 160-1, and memory element 20-1 may all be considered part of the CVB control circuitry 104 (see, e.g.,
Memory element 20-1 may be a volatile memory element (e.g., static random-access memory, configuration random-access memory, dynamic random-access memory, etc.) or a nonvolatile memory element (e.g., read-only memory, erasable programmable read-only memory, electrically erasable programmable read-only memory, flash memory, non-volatile random-access memory, etc.). When memory element 20-1 stores a logic “0”, switch 160-1 is turned off, so the filament in switch 130-1 will be in its neutral unstressed state. When memory element 20-1 stores a logic “1”, switch 160-1 is turned on, which causes the filament in switch 130-1 to flex to a stressed state. When the filament in switch 130-1 is flexed or bent, the size of bubbles 114-1 and 114-2 will be reduced, which substantially increases the heat transfer capability of heat pipe structure 102-1.
Similarly, heat pipe structures 102-2, 102-3, and 102-4 may be respectively adjusted by switches 130-2, 130-3, and 130-4. Switches 130-2, 130-3, and 130-4 may be respectively activated using switches 160-2, 160-3, and 160-4, which are respectively controlled by memory elements 20-2, 20-3, and 20-4. Heat pipe structures 102-2, 102-3, and 102-4 may be controlled using these switches and memory elements in substantially the same way as heat pipe structure 102-1 as described above and need not be repeated in detail. Switches 160-1, 160-2, 160-3, and 160-4 and memory elements 20-1, 20-2, 20-3, and 20-4 may all be considered as part of control circuitry 104 residing on main die 10.
Since severe hot spot regions 170 and 176 overlap with heat pipe structure 102-1, switch 160-1 may be turned on to activate switch 130-1, thereby reducing the size of bubbles 114-1 and 114-2. Similarly, since severe hot spot region 174 overlap with heat pipe structure 102-3, switch 160-3 may be turned on to activate switch 130-3, which also reduces the size of the vapor constrained bubbles within heat pipe structure 102-3.
In this example, note that heat pipe structure 102-2 is kept deactivated since hot spot 172 was only moderate to begin with. Keeping heat pipe structure 102-2 disengaged maximizes the use of the of the lower temperature region of die 10 to sink heat only from the severe hot spots since heat from even modest or moderate temperature regions would have competed for the valuable low-temperature bulk region at die 10, which could reduce the efficacy of the overall heat management process. In other words, the heat management process not only has to determine the location of the hot spots but also consider the severity of each hot spot region to selectively decide how to provide the optimal heat dilution solution.
The example shown in
As illustrated by the example of
Programmable integrated circuit 10 contains memory elements 20 that can be loaded with configuration data (also called programming data) using pins 14 and input-output circuitry 12. Once loaded, the memory elements 20 may each provide a corresponding static control output signal that controls the state of an associated logic component in programmable logic 18. Typically, the memory element output signals are used to control the gates of metal-oxide-semiconductor (MOS) transistors. Some of the transistors may be p-channel metal-oxide-semiconductor (PMOS) transistors. Many of these transistors may be n-channel metal-oxide-semiconductor (NMOS) pass transistors in programmable components such as multiplexers. When a memory element output is high, an NMOS pass transistor controlled by that memory element will be turned on to pass logic signals from its input to its output. When the memory element output is low, the pass transistor is turned off and does not pass logic signals.
A typical memory element 20 is formed from a number of transistors configured to form cross-coupled inverters. Other arrangements (e.g., cells with more distributed inverter-like circuits) may also be used. With one suitable approach, complementary metal-oxide-semiconductor (CMOS) integrated circuit technology is used to form the memory elements 20, so CMOS-based memory element implementations are described herein as an example. In the context of programmable integrated circuits, the memory elements store configuration data and are therefore sometimes referred to as configuration random-access memory (CRAM) cells.
An illustrative circuit design system 300 that can be used to design programmable device 10 is shown in
Software-based components such as computer-aided design tools 320 and databases 330 reside on system 300. During operation, executable software such as the software of computer aided design tools 320 runs on the processor(s) of system 300. Databases 330 are used to store data for the operation of system 300. In general, software and data may be stored on non-transitory computer readable storage media (e.g., tangible computer readable storage media). The software code may sometimes be referred to as software, data, program instructions, instructions, scripts, or code. The non-transitory computer readable storage media may include computer memory chips such as read-only memory (ROM), non-volatile memory such as non-volatile random-access memory (NVRAM), one or more hard drives (e.g., magnetic drives or solid state drives), one or more removable flash drives or other removable media, compact discs (CDs), digital versatile discs (DVDs), Blu-ray discs (BDs), other optical media, floppy diskettes, tapes, or any other suitable memory or storage device(s).
Software stored on the non-transitory computer readable storage media may be executed on system 300. When the software of system 300 is installed, the storage of system 300 has instructions and data that cause the computing equipment in system 300 to execute various methods or processes. When performing these processes, the computing equipment is configured to implement the functions of circuit design system 300.
Computer aided design (CAD) tools 320, some or all of which are sometimes referred to collectively as a CAD tool, a circuit design tool, or an electronic design automation (EDA) tool, may be provided by a single vendor or by multiple vendors. Tools 320 may be provided as one or more suites of tools (e.g., a compiler suite for performing tasks associated with implementing a circuit design in a programmable logic device) and/or as one or more separate software components (tools). Database(s) 330 may include one or more databases that are accessed only by a particular tool or tools and may include one or more shared databases. Shared databases may be accessed by multiple tools. For example, a first tool may store data for a second tool in a shared database. The second tool may access the shared database to retrieve the data stored by the first tool. This allows one tool to pass information to another tool. Tools may also pass information between each other without storing information in a shared database if desired.
Illustrative computer aided design tools 420 that may be used in a circuit design system such as circuit design system 300 of
The design process may start with the formulation of functional specifications of the integrated circuit design (e.g., a functional or behavioral description of the integrated circuit design). A circuit designer may specify the functional operation of a desired circuit design using design and constraint entry tools 464. Design and constraint entry tools 464 may include tools such as design and constraint entry aid 466 and design editor 468. Design and constraint entry aids such as aid 466 may be used to help a circuit designer locate a desired design from a library of existing circuit designs and may provide computer-aided assistance to the circuit designer for entering (specifying) the desired circuit design.
As an example, design and constraint entry aid 466 may be used to present screens of options for a user. The user may click on on-screen options to select whether the circuit being designed should have certain features. Design editor 468 may be used to enter a design (e.g., by entering lines of hardware description language code), may be used to edit a design obtained from a library (e.g., using a design and constraint entry aid), or may assist a user in selecting and editing appropriate prepackaged code/designs.
Design and constraint entry tools 464 may be used to allow a circuit designer to provide a desired circuit design using any suitable format. For example, design and constraint entry tools 464 may include tools that allow the circuit designer to enter a circuit design using truth tables. Truth tables may be specified using text files or timing diagrams and may be imported from a library. Truth table circuit design and constraint entry may be used for a portion of a large circuit or for an entire circuit.
As another example, design and constraint entry tools 464 may include a schematic capture tool. A schematic capture tool may allow the circuit designer to visually construct integrated circuit designs from constituent parts such as logic gates and groups of logic gates. Libraries of preexisting integrated circuit designs may be used to allow a desired portion of a design to be imported with the schematic capture tools.
If desired, design and constraint entry tools 464 may allow the circuit designer to provide a circuit design software application code to the circuit design system 300 using a hardware description language such as Verilog hardware description language (Verilog HDL), Very High Speed Integrated Circuit Hardware Description Language (VHDL), SystemVerilog, or a higher-level circuit description language such as OpenCL, SystemC, C/C++, just to name a few. The designer of the integrated circuit design can enter the circuit design by writing the application code with editor 468. Blocks of code may be imported from user-maintained or commercial libraries if desired.
After the design has been entered using design and constraint entry tools 464, behavioral simulation tools 472 may be used to simulate the functionality of the circuit design. If the functionality of the design is incomplete or incorrect, the circuit designer can make changes to the circuit design using design and constraint entry tools 464. The functional operation of the new circuit design may be verified using behavioral simulation tools 472 before synthesis operations have been performed using tools 474. Simulation tools such as behavioral simulation tools 472 may also be used at other stages in the design flow if desired (e.g., after logic synthesis). The output of the behavioral simulation tools 472 may be provided to the circuit designer in any suitable format (e.g., truth tables, timing diagrams, etc.).
Once the functional operation of the circuit design has been determined to be satisfactory, logic synthesis and optimization tools 474 may generate a gate-level netlist of the circuit design, for example using gates from a particular library pertaining to a targeted process supported by a foundry, which has been selected to produce the integrated circuit. Alternatively, logic synthesis and optimization tools 474 may generate a gate-level netlist of the circuit design using gates of a targeted programmable logic device (i.e., in the logic and interconnect resources of a particular programmable logic device product or product family).
Logic synthesis and optimization tools 474 may optimize the design by making appropriate selections of hardware to implement different logic functions in the circuit design based on the circuit design data and constraint data entered by the logic designer using tools 464. As an example, logic synthesis and optimization tools 474 may perform multi-level logic optimization and technology mapping based on the length of a combinational path between registers in the circuit design and corresponding timing constraints that were entered by the logic designer using tools 464.
After logic synthesis and optimization using tools 474, the circuit design system may use tools such as placement, routing, and physical synthesis tools 476 to perform physical design steps (layout synthesis operations). Tools 476 can be used to determine where to place each gate of the gate-level netlist produced by tools 474. For example, if two counters interact with each other, tools 476 may locate these counters in adjacent regions to reduce interconnect delays or to satisfy timing requirements specifying the maximum permitted interconnect delay. Tools 476 create orderly and efficient implementations of circuit designs for any targeted integrated circuit (e.g., for a given programmable integrated circuit such as a field-programmable gate array (FPGA)).
Tools such as tools 474 and 476 may be part of a compiler suite (e.g., part of a suite of compiler tools provided by a programmable logic device vendor). In certain embodiments, tools such as tools 474, 476, and 478 may also include timing analysis tools such as timing estimators. This allows tools 474 and 476 to satisfy performance requirements (e.g., timing requirements) before actually producing the integrated circuit.
After an implementation of the desired circuit design has been generated using tools 476, the implementation of the design may be analyzed and tested using analysis tools 478. For example, analysis tools 478 may include timing analysis tools, power analysis tools, or formal verification tools, just to name few.
After satisfactory optimization operations have been completed using tools 420 and depending on the targeted integrated circuit technology, tools 420 may produce a mask-level layout description of the integrated circuit or configuration data for programming the programmable logic device.
Illustrative operations involved in using tools 420 of
At step 504, tools 420 may compile source code 502 via a process sometimes referred to as behavioral synthesis or algorithmic synthesis to convert code 502 into a hardware description 506. Hardware description 506 may (as an example) be a register transfer level (RTL) description. The RTL description may have any form of describing circuit functions at the register transfer level. For example, the RTL description may be expressed using a hardware description language such as the Verilog hardware description language (Verilog HDL or Verilog), the SystemVerilog hardware description language (SystemVerilog HDL or SystemVerilog), or the Very High Speed Integrated Circuit Hardware Description Language (VHDL).
In general, code 502 may include untimed or partially timed functional code (i.e., the application code does not describe cycle-by-cycle hardware behavior), whereas the hardware description 506 may include a fully timed design description that details the cycle-by-cycle behavior of the circuit at the register transfer level.
Code 502 and/or hardware description 506 may also include target criteria such as area use, power consumption, delay minimization, clock frequency optimization, or any combination thereof. The optimization and target criteria may be collectively referred to as constraints.
Those constraints can be provided for individual data paths, portions of individual data paths, portions of a design, or for the entire design. For example, the constraints may be provided with code 502, description 506, in a constraint file, or through user input (e.g., using the design and constraint entry tools 464 of
During step 508, logic synthesis operations may generate gate-level description 510 from hardware description 506 using logic synthesis and optimization tools 474 (
During step 512, placement operations using placement tools 476 of
During step 515, routing operations using for example routing tools 476 of
While placement and routing are being performed at steps 512 and 515, physical synthesis operations 517 may be concurrently performed to further modify and optimize the circuit design (e.g., using physical synthesis tools 476 of
During the design and compilation phase, CAD tools 420 (
Once design tools 420 knows where severe hot spots are likely to occur on die 10, tools 420 can then modify the final layout description 516 to ensure that only the heat pipe structures directly overlapping with the serve hot spot regions are activated (e.g., by programming the associated CRAM elements 20 to store logic ones).
The example above in which the determination of which heat pipe structures to engage is performed during the design/compilation phase of an integrated circuit is merely illustrative. In another suitable embodiment, which is not exclusive to step 550 above but can optionally be used to supplement step 550, the CVB heat pipe structures may be dynamically adjusted during application runtime. This may be advantageous because hot spots can change location over time due to dynamic thermal migration or shifts in an application design's stress points that can naturally occur.
At step 904, package 100 may be configured to monitor and/or forecast the location of new hot spots. For example, package 100 might analyze the readings from distributed temperature sensors such as sensors 900 (see
In general, there may be any suitable number of temperature sensors 900 distributed across the surface of each die within integrated circuit package 900. Temperature sensors 900 may be thermistor-based temperature sensing circuits, diode-based temperature sensing circuits (e.g., silicon bandgap temperature sensors), and/or other suitable type of integrated circuit temperature sensing components.
Temperature sensors 900 may pass the temperature measurement readings to control circuitry 104 (
The ability to embed multiple adjustable CVB heat pipe structures on integrated circuits and the capability to program and reprogram the CVB heat pipe structures using MEMS switches to remove heat from local hot spots allows users to tackle heat generation in a dynamic manner without running into thermal management limitations, thereby providing more flexibility and increased performance for longer periods of time.
The foregoing is merely illustrative of the principles of this invention and various modifications can be made by those skilled in the art. The foregoing embodiments may be implemented individually or in any combination.