The present disclosure generally relates to reducing power consumption in electronic devices and more particularly to systems and methods for reducing power consumption in the interface and routing circuitry associated with various core modules of an integrated circuit or system of integrated circuits.
Conventional electronic device design is often dictated by power use, particularly in the realm of portable, battery-operated electronic devices. To address this, and to take advantage of smaller semiconductor process dimensions, more and more functionality has been integrated into a single package of multiple integrated circuits (ICs), or even a single IC, because a single package or single IC can be powered more efficiently. This has resulted in the development of system in package (SIP) and system on chip (SOC) electronic devices, and their operation is typically a balance between performance and power dissipation concerns.
SOCs are typically designed according to a strict hierarchy. Relatively large and/or complex structures such as function-specific modules, microprocessor cores, and other core modules, are often designed separately and characterized according to a time intensive pre-validation process. These structures are denoted as “hard macros.” It is common to place a number of hard macros onto a die, but hard macros require glue logic to accommodate the routing of signals to and from each hard macro. In contrast to hard macro core modules, glue logic is typically implemented as one or more “soft macros” that are not designed and tested separately.
The design process difference between hard macros and soft macros leads to a physical difference between them. In general, both a soft macro and a hard macro have corresponding footprints on the die. The footprint refers to the semiconductor substrate surface area dedicated to the various transistors and other devices that constitute a given module or circuit (e.g., a soft or hard macro). As known in the semiconductor arts, a plurality of metal layers are deposited on the semiconductor substrate and thus over the footprints of the various modules. These metal layers support the signaling between transistors and the other devices on the die. For example, the metal layers may form traces or leads that interconnect one logic device to another. It is these metal layer leads that provide one physical distinction between hard macros and soft macros.
Because of the separate design and testing of a hard macro, the metal layer leads that interconnect its devices (e.g., logic gates, and/or other semiconductor devices) are confined to the space above the corresponding footprint on the die. This is not the case for a soft macro: a soft macro's devices may be interconnected by metal layer traces that travel outside the soft macro's footprint and then travel back inside the footprint as they interconnect one device to another. This physical distinction is shown in
These design distinctions between hard macros and soft macros leads to a power distribution and/or consumption issue. Typically, hard macros include their own power management logic and other devices. In particular, because the hard macros are designed separately, they are powered by their own local power rail and thus may be readily shut down when not needed to prolong battery life. An example SOC 850 is shown in
Thus, there is a need in the art for selectively collapsible glue logic systems and methods that reduce power usage in a constituent electronic device without substantially degrading overall performance.
Provided are systems and methods for reducing power consumption in the interface and routing circuitry associated with various core modules of an integrated circuit (IC) or system of integrated circuits. One system includes one or more core modules, a glue logic matrix electrically coupled to the core modules, and a power controller electrically coupled to a portion of the glue logic matrix (a glue logic domain) that corresponds to one or more of the core modules. The power controller is adapted to couple and decouple the glue logic domain from a power source based on signals provided to the power controller and/or power down states of core modules and/or other glue logic domains. The power controller is also adapted to facilitate the power transitions of the glue logic domain using a variety of systems and methods, such as logic state retention, logic state clamping, ordered or scheduled transitioning, and/or other power transition systems and methods.
In one embodiment, an electronic device includes a plurality of core modules, each core module being configured to have a power-on state and a power-off state; a plurality of glue logic domains corresponding to the plurality of core modules, wherein each glue logic domain is adapted to interface its corresponding core module to remaining ones of the core modules, and wherein each glue logic domain is implemented as one or more soft macros; and a power controller adapted to control a power state for each glue logic domain, wherein the power controller is adapted to command a power-off state for each glue logic domain corresponding to a core module in the power off state.
In another embodiment, a method for controlling power to glue logic disposed within a glue logic domain includes receiving a power down signal to power down the glue logic domain; clamping one or more outputs of the glue logic disposed within the glue logic domain; and decoupling the glue logic from a power source for the glue logic domain.
In another embodiment, a method for controlling power to glue logic disposed within a monitored glue logic domain includes detecting a power down state of a core module or an external glue logic domain associated with the monitored glue logic domain; clamping one or more outputs of the glue logic disposed within the monitored glue logic domain; and decoupling the glue logic from a power source for the monitored glue logic domain.
In a further embodiment, a method for determining a layout for an IC comprising collapsible glue logic includes receiving a net list for the layout; determining one or more glue logic domains for the collapsible glue logic listed in the net list; determining a power grid placement based, at least in part, on the glue logic domains; determining a further device placement based, at least in part, on the glue logic domains and the power grid placement; and determining a detailed circuit routing between the further devices based on the net list and the determined placements.
The claims listed below are incorporated into this section by reference. The above and other features and advantages of the present disclosure will be more readily apparent from the detailed description of the embodiments set forth below taken in conjunction with the accompanying drawings.
The various figures and text attached herein illustrate various processes, devices, and systems for implementing one or more electronic smoking devices and/or assemblies, processes to make, sell and/or use such devices and/or assemblies, and/or systems embodying such processes, devices, and/or assemblies, for example, in accordance with embodiments of the disclosure.
Embodiments of the present disclosure and their advantages are best understood by referring to the detailed description that follows. It should be appreciated that like reference numerals are used to identify like elements illustrated in one or more of the figures, wherein showings therein are for purposes of illustrating embodiments of the present disclosure and not for purposes of limiting the same.
To provide more efficient power savings for a system including a plurality of independently-collapsible hard macro cores or modules, a plurality of collapsible soft macro glue logic domains is provided corresponding to the plurality of hard macro cores. In this fashion, each glue logic domain corresponds to one or more cores such that each glue logic domain is configured to accommodate the interfacing of the corresponding core to remaining ones of the cores. More generally, among the hard macro cores, some of the cores may be in a master/slave relationship with each other. In such an embodiment, the corresponding glue logic domain may accommodate the interfacing for both a master core and any of its slaves. It will thus be appreciated that the cores may be divided into independently-controlled sets. A set may have just a single core as a member if it is not in a master-slave relationship with other ones of the cores. Alternatively, a set corresponding to a core in a master-slave relationship with other cores would include the remaining cores in that master-slave relationship. Each set thus has a corresponding glue logic domain to accommodate the interfacing of that set to remaining ones of the cores.
A power controller is configured to monitor whether each core is collapsed (powered off) or powered on so as to command a power state for the corresponding glue logic domains accordingly. In other words, the power controller powers off those glue logic domains corresponding to collapsed cores. If a core is powered on, the power controller maintains the corresponding glue logic domain in a power-on state accordingly. The resulting control by the power controller is quite advantageous because of the additional power savings of turning off those glue logic domains corresponding to collapsed cores. Moreover, this power savings is achieved despite the implementation of the glue logic domains as soft macros, which eases the design complications considerably. These advantageous features may be better appreciated with regard to the following discussion of some example embodiments.
Turning now to the drawings,
Similarly, glue logic domain 152 includes interface units 121 and 122 for interfacing to master core 111 and slave core 112, respectively. Finally, glue logic domain 151 includes an interface unit 120 for interfacing to core 110. The signaling between the various interface units is accommodated by routing logic modules 130-135 such as switch fabrics. Each interface unit (IU) couples to its corresponding core over a bus 116. Similarly busses such as busses 136 couple between the routing logic modules and between the interface units and the routing logic modules (RLs). Glue logic domains 151-153 may be collectively referred to as a glue matrix.
Glue logic domains 151-153 delineate portions of the glue matrix that are subject to similar power down/up states during normal operation of electronic device 100. For example, in embodiments where master 113 controls operation of slaves 114 and 115, a power down state of master 113 may force a power down state of slave 114 and 115. If all three core modules are in a power down state, interface units 123-125 and routing logic modules 133-135 in glue logic domain 153 may also be powered down without degrading the performance of remaining core modules 110-112. Thus, glue logic domain 153 may be decoupled from a power source without negatively impacting the operation of powered cores in device 100.
Power sources for electronic device 100 may be implemented as one or more metal and/or conductive power rails, such as power rails 101-104. For example, in some embodiments, electronic device 100 may be implemented as a system on chip (SOC). When implemented as an SOC, power rails 101-104 may be formed as leads in one or more metal layers overlaying the substrate in which device 100. As shown in
A power controller 140 controls the power on or power off state for the glue logic domains as discussed above. As shown, power controller 140 receives power from power rail 101 and controls glue logic domain 151-153 through respective buses 141-143. Busses 141-143 may be implemented as two-way buses to facilitate control and communication with other modules of electronic device 100, as described more fully within. For example, power controller 140 may be adapted to couple or decouple glue logic domains 151-153 from their respective power source(s), and/or to clamp or de-clamp outputs of glue logic within glue logic domains 151-153. Power controller 140 may be adapted to detect power states of various modules and/or glue logic domains of electronic device 100 based on communications with modules within each of glue logic domains 151-152, For example, power controller 140 may be adapted to communicate (e.g., send and receive signals) with core 110 through interface unit 120 using busses 141 and 116. In some embodiments, power controller 140 may be adapted to provide power over buses 141-143 to select components within respective glue logic domains 151-153.
Each of hard macro core modules 110-115, soft macro glue logic domains 150-153, and power controller 140 may be implemented as one or more logic devices, semiconductor structures, and/or other semiconductor devices with metal traces interconnecting the semiconductor devices of each component. For example, each of core modules 110-115, IUs 120-125, RLs 130-135, and power controller 140 may comprise one or more microcontrollers, microprocessors, field programmable gate arrays (FPGAs), semiconductor-based memory structures, multiplexors, amplifiers, transistors, and/or other IC structures. Power controller 140 may be implemented as a hard or soft macro, and in some embodiments, be implemented as a number of interconnected power controllers 140 distributed across IC 100 and acting in conjunction to control power states of each of glue logic domains 151-153. Buses 116, 136, and 141-143 may be implemented as signal buses interconnecting the various modules of IC 100, and may each include multiple metal traces and/or patterns adapted to conduct signals (e.g., data signals, control signals, power, and/or other signals) between the various modules of IC 100.
As noted earlier, hard macros such as core modules 110-115 are structurally distinct from soft macros such as glue logic domains 151-153. In particular, these structures are represented in
To better illustrate the advantageous control of the glue logic domains, a glue logic domain 251 is shown in more detail in
Head switch 261 may be adapted to couple and decouple power rail 203 from inter-domain power rail 205 (which in turn powers interface unit 220 and routing logic module 230) based on signals provided by GDHSL 260. Clamp cells 271 and 272 may be adapted to clamp outputs of interface unit 220 and/or 230 (e.g., buses 216 and/or 236) to one or more logic states based on signals provided by CL 270. GDHSL 260 may be adapted to determine a power state for glue logic domain 251 and/or various components within glue logic domain 251 based on signals received from core module 210 and/or other core modules, detected power states of core module 210, other core modules, or other glue logic domains, and/or other signals provided to power controller 240 or from CL 270. CL 270 may be adapted to retrieve and store a logic state of outputs of interface unit 220 and/or routing logic 230, to clamp those outputs to the retrieved logic state or a known logic state (e.g., all null, or another pattern of logic states), and to determine other clamp cell characteristics based on signals provided to power controller 240 or from GDHSL 260. GDHSL 260 and CL 270 may each be implemented as one or more of the logic devices, semiconductor structures, and/or other semiconductor devices (and interconnecting metal traces) of power controller 240.
GDHSL 260, bus 241, head switch 261, and power rails 201, 203, and 205 may be implemented in a number of different embodiments and form at least part of a global distributed head switch system for one or more glue logic domains. For example,
As with global distributed head switch system 300 of
In various embodiments, collapsible glue logic of an electronic device (e.g., IU/RL 420 of electronic device 100) benefits from clamped outputs in that the clamped outputs provide a known state for the outputs when power is decoupled from the glue logic (e.g., when a glue logic domain is collapsed), while power is decoupled from the glue logic, and when power is coupled to the glue logic (e.g., when powering up from a power down state). Clamping outputs of collapsible glue logic modules eliminates erratic operation of the glue logic caused by undefined logic states (e.g., residual voltages) existing on the metal traces interconnecting core modules and glue logic domains. In some embodiments, clamping outputs of collapsible glue logic modules to a particular state or pattern can communicate a state (e.g., a power down or collapsed state, and/or entry into or exit from a power down state) of a glue logic domain to other glue logic domains and/or core modules.
Power controllers for glue logic domains, such as power controller 140 in
At block 502, power controller 140 may receive a power down signal to power down a glue logic domain. For example, power controller 140 may be adapted to receive a power down signal over bus 141 from core module 110 to power down glue logic domain 151. In some embodiments, core module 110 may determine that it is ready to enter a power-off state. Prior to or while entering the power-off state, core module 110 may provide a power down signal to glue logic domain 151 over bus 116 (e.g., to IU 120), which may then be provided to power controller 140 over bus 141. In other embodiments, where bus 141 couples core module 110 directly to power controller 140, the power down signal may be provided directly to power controller 140 over bus 141. In additional embodiments, core module 110 may determine that it may not need to communicate and/or interface with external modules (e.g., using glue logic in glue logic domain 151) for a period of time, for example, and provide a power down signal to glue logic domain 151.
At block 504, power controller 140 may clamp an output of glue logic in glue logic domain 151, in response to receiving a power down signal as described in block 502. For example, clamp logic 441 of
At block 506, power controller 140 may decouple IU 120 and/or RL 130 from power rail 103, in response to receiving a power down signal as described in block 502. For example, as shown in
At block 508, power controller 140 may receive a power up signal to power up glue logic domain 151. For example, power controller 140 may receive a power up signal over bus 141 from core module 110 to power up glue logic domain 151. In some embodiments, core module 110 may determine that it is ready to enter a power-on state, for example, or may determine that it will need to communicate and/or interface with external modules (e.g., using glue logic in glue logic domain 151) for a period of time. Prior to, while, or after entering the power-on state, core module 110 may provide a power up signal to glue logic domain 151 over bus 116 (e.g., to IU 120), which may then be provided to power controller 140 over bus 141. In other embodiments, where bus 141 couples core module 110 directly to power controller 140, the power up signal may be provided directly to power controller 140 over bus 141.
At block 510, power controller 140 may couple IU 120 and/or RL 130 to power rail 103, in response to receiving a power up signal as described in block 508. For example, as shown in
At block 512, power controller 140 may de-clamp an output of glue logic in glue logic domain 151, in response to receiving a power up signal as described in block 508. For example, clamp logic 441 of
At block 602, power controller 140 may detect a power down state of a core module and/or an external glue logic domain associated with a monitored glue logic domain. For example, power controller 140 may be adapted to monitor glue logic domain 151 (e.g., making glue logic domain 151 a monitored glue logic domain) and detect a power down state of core module 110 (e.g., the core module associated with glue logic domain 151) or glue logic domains 152 and 153 (e.g., external glue logic domains associated with/adjacent to/coupled to monitored glue logic domain 151). In some embodiments, power controller 140 may be adapted to detect a power down state of core module 110 and/or glue logic domains 152-153 by monitoring operation of IU 120 and/or RL 130 (e.g., the inputs and/or outputs of buses 116 and/or 136) and detecting a particular logic state on buses 116 and/or 136 (e.g., a null logic state), or detecting an unchanging logic state, for example, for a pre-determined period of time (e.g., multiple bus clock cycles). Such substantially static logic states may indicate a corresponding power down state for core module 110 and/or external glue logic domains 152-153, and can indicate that monitored glue logic domain 151 may be powered down without negatively impacting operation of IC 100. In various embodiments, power controller 140 may be adapted to monitor and detect such logic states over bus 141, as described herein.
At block 604, power controller 140 may clamp an output of glue logic in monitored glue logic domain 151, in response to detecting a power down state as described in block 602. For example, clamp logic 441 of
At block 606, power controller 140 may decouple IU 120 and/or RL 130 from power rail 103, in response to detecting a power down state as described in block 602. For example, as shown in
At block 608, power controller 140 may detect a power up state of core module 151 and/or external glue logic domains 152-153. For example, power controller 140 may be adapted to detect a power up state of core module 110 and/or glue logic domains 152-153 by monitoring operation of IU 120 and/or RL 130 (e.g., the inputs and/or outputs of buses 116 and/or 136) and detecting a change in a logic state on buses 116 and/or 136 (e.g., from a null logic state), or detecting a changing logic state, for example, over a pre-determined period of time (e.g., multiple bus clock cycles). Such substantially changing logic states may indicate a corresponding power up state for core module 110 and/or external glue logic domains 152-153, and can indicate that monitored glue logic domain 151 may be powered up without wasting or dissipating power unnecessarily in IC 100. In other embodiments, power controller 140 may be adapted to detect or receive a power up signal over bus 141 from core module 110 to power up glue logic domain 151. In some embodiments, core module 110 may determine that it is ready to enter a power-on state. Prior to, while, or after entering the power-on state, core module 110 may provide a power up signal to glue logic domain 151 over bus 116 (e.g., to IU 120), which may then be provided to power controller 140 over bus 141. In other embodiments, where bus 141 couples core module 110 directly to power controller 140, the power up signal may be provided directly to power controller 140 over bus 141.
At block 610, power controller 140 of may couple IU 120 and/or RL 130 to power rail 103, in response to detecting a power up state as described in block 608. For example, as shown in
At block 612, power controller 140 may de-clamp an output of glue logic in glue logic domain 151, in response to detecting a power up state as described in block 608. For example, clamp logic 441 of
Methods to control power to glue logic domains may provide higher power efficiencies when used in conjunction with a layout of hard macro core modules and soft macro glue logic in an IC that prioritizes effective arrangement of glue logic into delineated glue logic domains. For example,
As those of some skill in this art will by now appreciate and depending on the particular application at hand, many modifications, substitutions and variations can be made in and to the materials, apparatus, configurations and methods of use of the devices of the present disclosure without departing from the spirit and scope thereof. For example, such variations may include multiple hierarchical layers of core modules and glue logic domains controlled by corresponding power controllers, where higher-order layers may control the power states of lower-order layers, including power controllers implemented in lower-order layers. In light of this, the scope of the present disclosure should not be limited to that of the particular embodiments illustrated and described herein, as they are merely by way of some examples thereof, but rather, should be fully commensurate with that of the claims appended hereafter and their functional equivalents.