WO2025006804A1 - Heterogeneous chiplet power management - Google Patents
Heterogeneous chiplet power management Download PDFInfo
- Publication number
- WO2025006804A1 WO2025006804A1 PCT/US2024/035909 US2024035909W WO2025006804A1 WO 2025006804 A1 WO2025006804 A1 WO 2025006804A1 US 2024035909 W US2024035909 W US 2024035909W WO 2025006804 A1 WO2025006804 A1 WO 2025006804A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- chiplets
- stutter
- chiplet
- client
- idle
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
Definitions
- Power management for processor architectures such as a system-on-chip (SOC)
- SOC system-on-chip
- the various components within the SOC would synchronize to reach an idle state (e.g., a state of low or no activity) to allow power gating.
- an idle state e.g., a state of low or no activity
- having the various chiplets reach the idle state can follow similar processes.
- coordinating the chiplets can be difficult.
- FIG. 1 is a block diagram of an exemplary system for heterogeneous chiplet power management.
- FIG. 2 is a block diagram of an exemplary architecture for heterogeneous chiplets.
- FIGS. 3A-C are block diagrams of exemplary workflows for heterogeneous chiplet power management.
- FIG. 4 is a flow diagram of another exemplary workflow for heterogeneous chiplet power management.
- FIG. 5 is a flow diagram of an exemplary method for heterogeneous chiplet power management.
- the present disclosure is generally directed to heterogeneous chiplet power management.
- implementations of the present disclosure instruct heterogeneous chiplets to reach an idle state individually and locally in response to initiating entry of a low power state. After confirming that each chiplet is idle, the entry to the low power state can be completed.
- stutter clients e.g., chiplets that can perform in bursts of activity/ data
- this allows stutter clients (e.g., chiplets that can perform in bursts of activity/ data) to coordinate with other chiplets for low power states and/or partial low power states, enabling improved power management for heterogeneous chiplet architectures.
- a device for heterogeneous chiplet power management includes a plurality of heterogeneous chiplets.
- a first chiplet of the plurality of heterogeneous chiplets is configured to report, to a second chiplet of the plurality of heterogeneous chiplets in response to receiving an indication of the device initiating entry of a low power state, locally reaching an idle state, and in response to receiving a confirmation of the idle state from the second chiplet, locally complete the entry of the low power state.
- the first chiplet corresponds to a stutter client chiplet having an activity buffer and locally reaching the idle state includes filling the activity buffer based on a buffer threshold.
- the buffer threshold corresponds to a minimum idle period before the at least one chiplet wakes up to refill the activity buffer.
- the stutter client chiplet corresponds to a display engine and the activity buffer corresponds to a display buffer.
- the stutter client chiplet corresponds to a multimedia engine and the activity buffer corresponds to a multimedia buffer.
- the stutter client chiplet is configured to receive an indication of the device transitioning to a partial power state in which a subset of logic components of the stutter client chiplet is active to allow filling the activity buffer, and wherein other chiplets of the plurality of heterogenous chiplets remain idle.
- the plurality of heterogeneous chiplets are configured to abort, in response to at least one of the plurality of heterogeneous chiplets broadcasting an active state, transitioning to the partial power state while the stutter client chiplet is filling the activity buffer.
- locally reaching the idle state comprises at least one of saving a state, disabling write burst accumulation, flushing remaining writes.
- the plurality of heterogeneous chiplets are configured to abort the entry of the low power state in response to at least one of the plurality of heterogeneous chiplets broadcasting an active state.
- a system for heterogeneous chiplet power management includes a plurality of heterogeneous chiplets including a stutter client having an activity buffer, and a control circuit configured to, in response to the system initiating entry of a low power state, confirm each of the plurality of heterogenous chiplets has locally reached an idle state, in response to receiving confirmations of the idle state from each of the plurality of heterogenous chiplets, instruct the stutter client to fill the activity buffer to a buffer threshold, and in response to the stutter client filling the activity buffer, complete the entry of the low power state.
- the buffer threshold corresponds to a minimum idle period before the stutter client wakes up to refill the activity buffer.
- refilling the activity buffer further comprises accessing a memory of the system.
- the stutter client corresponds to a display engine and the activity buffer corresponds to a display buffer.
- the stutter client corresponds to a multimedia engine and the activity buffer corresponds to a multimedia buffer.
- control circuit is configured to receive an indication of a partial power state in which only components servicing the stutter client is active, and in response to the indication, instructing the stutter client and a corresponding link to power on, wherein other chiplets of the plurality of heterogenous chiplets remain idle.
- control circuit is configured to, in response to at least one of the plurality of heterogeneous chiplets broadcasting an active state, abort the partial power state.
- control circuit is configured to abort, in response to at least one of the plurality of heterogeneous chiplets broadcasting an active state, entry of the low power state.
- a method for heterogeneous chiplet power management includes (i) transitioning a plurality of heterogeneous chiplets to a new power state that corresponds to power gating idle chiplets of the plurality of heterogeneous chiplets, (ii) confirming, while a stuter client chiplet of the plurality of heterogeneous chiplets is kept at least partially powered on, the idle chiplets have completed operations for reaching an idle state, and (iii) in response to confirmations from the idle chiplets of the idle state, completing the transition to the new power state.
- the stutter client chiplet has an activity buffer and the stutter client chiplet is kept at least partially powered on to fill the activity buffer to at least a buffer threshold.
- the method includes aborting the transition to the new power state while the stuter client chiplet fills the activity buffer.
- the operations includes at least one of confirming corresponding local clients are idle, saving a state, flushing writes, disabling write burst accumulation, or confirming a corresponding fabric is idle.
- FIG. 1 is a block diagram of an example system 100 for heterogeneous chiplet power management.
- System 100 corresponds to a computing device, such as a desktop computer, a laptop computer, a server, a tablet device, a mobile device, a smartphone, a wearable device, an augmented reality device, a virtual reality device, a network device, and/or an electronic device.
- system 100 includes one or more memory devices, such as memory 120.
- Memory 120 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and/or computer-readable instructions.
- Examples of memory 120 include, without limitation, Random Access Memory (RAM), Read Only Memory (ROM), flash memory, Hard Disk Drives (HDDs), Solid-State Drives (SSDs), optical disk drives, caches, variations, or combinations of one or more of the same, and/or any other suitable storage memory.
- RAM Random Access Memory
- ROM Read Only Memory
- HDDs Hard Disk Drives
- SSDs Solid-State Drives
- optical disk drives caches, variations, or combinations of one or more of the same, and/or any other suitable storage memory.
- example system 100 includes one or more physical processors, such as processor 110.
- processor 110 generally represents any type or form of hardware-implemented processing unit capable of interpreting and/or executing computer- readable instructions.
- processor 110 accesses and/or modifies data and/or instructions stored in memory 120.
- processor 110 examples include, without limitation, chiplets (e.g., smaller and in some examples more specialized processing units that can coordinate as a single chip), microprocessors, microcontrollers, Central Processing Units (CPUs), graphics processing units (GPUs), Field-Programmable Gate Arrays (FPGAs) that implement softcore processors, Application-Specific Integrated Circuits (ASICs), systems on chip (SoCs), digital signal processors (DSPs), Neural Network Engines (NNEs), accelerators, graphics processing units (GPUs), portions of one or more of the same, variations or combinations of one or more of the same, and/or any other suitable physical processor.
- chiplets e.g., smaller and in some examples more specialized processing units that can coordinate as a single chip
- microprocessors microcontrollers
- CPUs Central Processing Units
- GPUs graphics processing units
- FPGAs Field-Programmable Gate Arrays
- DSPs digital signal processors
- NNEs Neural Network Engines
- GPUs graphics
- processor 110 includes a control circuit 112, a chiplet 114, and a stutter client chiplet 116.
- Control circuit 112 generally corresponds to circuitry and/or instructions for performing at least certain aspects of power management, such as monitoring for entry/exit conditions of power states, coordinating or otherwise facilitation communication between components (e.g., chiplet 114 and/or stutter client chiplet 116) for entry/exit, etc.
- Chiplet 114 generally corresponds to one or more chiplets.
- Stutter client chiplet 116 generally corresponds to one or more chiplets having components or clients that can stutter (e.g., perform certain activity and/or data requests in bursts in between stutter or low activity periods).
- Stutter client chiplet 116 can include an activity buffer which, when filled with data, allows stutter client chiplet 116 to operate at low activity for a period of time (e.g., as the buffer is drained) without making data requests to a memory (e.g., memory 120) or otherwise generate new data for the buffer.
- stutter client chiplet 116 can operate for a minimum idle period before reaching a critical level when the remaining unconsumed data reaches a low watermark specified by a time to underflow (e.g., reaching a blackout state), which requires the buffer to be refilled, for instance by waking up stutter client chiplet 116.
- the activity buffer can store data generated by an I/O device or internally in the client for writing to memory (e.g., memory 120) and the critical level corresponds to when data unwritten to memory reaches a high watermark specified by a time to overflow.
- this write activity buffer can be actively managed by messaging (e.g., in response to fabric idle as described further below) or passive (e.g., as part of normal idle to active transitions).
- the write activity buffer can store data captured by a camera/webcam for writing to memory.
- stutter client chiplet 116 include a graphics or display engine (e.g., for rendering frames for display that are saved in a display buffer as the activity buffer), and a multimedia engine (e.g., for decoding/rendering frames and/or audio saved in a multimedia buffer as the activity buffer).
- An idle state can correspond to a low or no activity state and in some examples, corresponds to a state having no external data requests (e.g., memory access requests to memory 120) such that corresponding links are unused and can be power gated.
- the various chiplets and components of processor 110 e.g., chiplet 114 and stutter client chiplet 116) can have various respective local conditions for reaching the idle state.
- locally reaching the idle state can include saving a state, such as chiplet 114 saving its context or state in order to be restored when exiting the low power state.
- locally reaching the idle state includes accumulating write requests, such as chiplet 114 accumulating its write requests to memory 120 or other data storage.
- locally reaching the idle state includes filling an activity buffer to a buffer threshold, such as stutter client chiplet 116 filling its activity buffer.
- processor 110 is not easily able to initiate multi-chiplet idle procedures due to variances (e.g., for reaching idle states) of the chiplets. For instance, due to high variance between chiplets and components entering the idle state, stutter client chiplet 116 can enter the blackout state while waiting for the rest of processor 110 to enter the low power state, negatively impacting performance as well as a user experience.
- Control circuit 112 can therefore be configured to coordinate the heterogeneous chiplets via a messaging protocol, which in some examples includes coordinating and/or initiating messages between chiplets, although in other examples the chiplets can broadcast messages and wait for acknowledgements.
- control circuit 112 in response to processor 110 initiating entry of a low power state, confirm that each of the heterogenous chiplets (e.g., chiplet 114 and stutter client chiplet 116) have locally reached an idle state. Then, in response to receiving confirmations of the idle state from each of the heterogenous chiplets (e.g., in accordance with the protocol), control circuit 112 can complete or facilitate the entry of the low power state.
- the heterogenous chiplets e.g., chiplet 114 and stutter client chiplet 116
- FIG. 2 illustrates an SOC 210, corresponding to processor 110, having a heterogeneous chiplet architecture.
- SOC 210 includes a chiplet 214A and a chiplet 214B, each corresponding to iterations of chiplet 114.
- SOC 210 also includes a stutter client chiplet 216A and a stutter client chiplet 216B, each corresponding to iterations of stutter client chiplet 116.
- Each stutter client can include an activity buffer, such as stutter client chiplet 216A having a buffer 219A and stutter client chiplet 216B having a buffer 219B.
- SOC 210 further includes an input/output (I/O) die 218, which can coordinate I/O of the various chiplets (e.g., chiplets 214A-214B and stutter client chiplets 216A-216B) via a link 215A, a link 215B, a link 217A, and a link 217B, each of which correspond to links for sending data/signals between the chiplets and I/O die 218.
- I/O die 218 can incorporate or otherwise communicate with a control circuit such as control circuit 112.
- SOC 210 can transition between various power states, such as various degrees of low power states in which the components of SOC 210 are in low power states, partial power states in which some components are in low power and/or idle while others are active, and full power states in which the components are active.
- various power states such as various degrees of low power states in which the components of SOC 210 are in low power states, partial power states in which some components are in low power and/or idle while others are active, and full power states in which the components are active.
- certain components can be powered off, put into idle or otherwise put into a lower power state, certain components can be powered on, made active or otherwise put into a higher power state, and certain components can remain in the same power state.
- SOC 210 can transition into a low power state that includes different types of chiplets reaching the idle state, such as chiplet 214A and/or chiplets 214B along with stutter client chiplet 216A and/or stutter client chiplet 216B.
- the control circuit can confirm chiplet 214A and/or chiplet 214B have locally reached the idle state, for example using a messaging protocol described herein in which chiplets can send acknowledgements of local clients and/or corresponding fabric being idle.
- the waiting for each respective chiplet to reach a sufficiently idle state can reduce variance and latency of entering the low power state to a more predictable latency.
- each chiplet can achieve idle for its local clients and prepare for low power entry (e.g., saving state, disabling write burst, flushing writes) while the corresponding fabric achieves idle. Waiting for fabric idle can be necessary because writes can persist in the fabric without knowledge of the clients that sent them if they are posted by the fabric to write to memory after reaching global observability, or otherwise posted into the fabric upon arrival.
- the control circuit can negotiate an idle state for stutter client chiplet 216A and/or stutter client chiplet 216B by providing an appropriate buffer threshold for stutter client chiplet 216A to fill buffer 219A and/or stutter client chiplet 216B to fill buffer 219B.
- only a single stutter client (e.g., a stutter client of stutter client chiplet 216A) can have an actively managed activity buffer in response to fabric idle.
- only stutter clients of a single stutter client chiplet (e.g., stutter clients of stutter client chiplet 216A) can have actively managed activity buffers in response to fabric idle.
- stutter client chiplets without such actively managed activity buffers can have passive activity buffers that are triggered to fill when they reach a critical level, forcing the system to an active state, are filled upon the system’s normal exit from idle to active state, or are filled upon a local chiplet transition from active to idle.
- a video codec engine can support a passive activity buffer as described.
- chiplet 214A can communicate, by sending a confirmation to the control circuit, that it reached the idle state.
- stutter client chiplet 216A can communicate, by sending a confirmation to the control circuit, that it reached the idle state.
- the control circuit can complete entry of the low power state, which can include various powering down of other components of SOC 210 as needed, such as link 215A (as chiplet 214A is idle) and link 217A (as stutter client chiplet 216A is idle) as well as other actions with respect to multiple chiplets, common or shared resources/components across SOC 210, corresponding portions of a data fabric and other interfaces, etc.
- additional actions can include power gating, clock gating, etc. as needed.
- SOC 210 can transition to a partial power state.
- stutter client chiplet 216A can, after exhausting or nearly exhausting buffer 219A, can be powered on from a low power state for refilling its buffer whereas chiplet 214A can remain idle. Accordingly, the control circuit can instruct stutter client chiplet 216A, along with link 217A, to power back on and become active.
- one or more chiplet e.g., one or more of chiplets 214A-214B and/or stutter client chiplets 216A-216B
- logic components servicing the stutter client can be powered on while components (e.g., additional interfaces, crossbars, links, probe filters, shadow tag management components of other caches that have been flushed, private caches of other clients, and other components not used by the stutter client) can remain powered down.
- components e.g., additional interfaces, crossbars, links, probe filters, shadow tag management components of other caches that have been flushed, private caches of other clients, and other components not used by the stutter client
- SOC 210 can transition between power states with the control circuit instructing components to power on or off as needed in parallel, by instructing local actions with respect to each chiplet/component, receiving confirmation of completion of the local actions, and completing the transition with respect to actions across SOC 210, as described herein.
- the chiplets can send indications/communications amongst the chiplets, and respond accordingly, as described further with respect to FIGS. 3A-3C.
- FIG. 3A-3C respectively illustrate a chart 300, a chart 301, and a chart 302 including a display engine 316 corresponding to stutter client chiplet 216A (and/or stutter client chiplet 116), a root die 318 corresponding to I/O die 218 (and/or another root die), and a non-root die 314 corresponding to chiplet 214A (and/or chiplet 114 or any other non-root or leaf die).
- FIGS. 3A-3C illustrate simplified examples, and in other examples, additional chiplets, levels of chiplets, and/or interfaces/fabrics can further be included.
- FIGS. 3A-3C illustrate chiplets having underlying state machines for transitioning between the various illustrated states and in some examples, the underlying state machines can be similar or the same across the chiplets.
- FIG. 3 A corresponds to low power entry across heterogeneous chiplets.
- a display controller e.g., a display engine 316
- non-root die 314 can start with broadcasting local clients idle 330A followed by save state 331 A.
- Root die 318 can receive the indication of local clients idle 330A, and reach local clients idle 330B along with save state 33 IB.
- local clients idle 330A and/or local clients idle 330B can be differentiated from direct entry to a partially powered stutter level for a stutter client.
- Root die 318 can further proceed with flush writes/disable write burst accumulation 332B (e.g., flushing writes in the fabric and memory controller and disabling write burst accumulation in the memory controller), the completion of which is broadcast to nonroot die 314, while non-root die 314 can proceed to perform flush writes/disable write burst accumulation 332A (e.g., including similar corresponding actions as flush writes/disable write burst accumulation 332B).
- flush writes/disable write burst accumulation 332B e.g., flushing writes in the fabric and memory controller and disabling write burst accumulation in the memory controller
- non-root die 314 can proceed to perform flush writes/disable write burst accumulation 332A (e.g., including similar corresponding actions as flush writes/disable write burst accumulation 332B).
- non-root die 314 can send fabric idle acknowledgement 334A of locally reaching its idle state (e.g., having its local clients idle as well as corresponding fabric idle without
- Root die 318 can send fabric idle acknowledgement 334B of locally reaching its idle state to display engine 316 (indicating root die 318 and non-root die 314 locally reaching idle states).
- Display engine 316 can begin fill buffer 335 of filling its display buffer based on a buffer threshold until threshold met 336.
- Display engine 316 can broadcast threshold met 336 (e.g., indicating locally reaching its idle state) to root die 318 to begin power down 337B which can include power gating and other related steps (e.g., fabric and memory controller power/clock gating, DRAM low power state, voltage regulator low current state, powering down chiplet links, powering down a phase-locked loop (PLL), and/or clock tree frequency reduction for example via bypass to a slower reference clock or clock tree gating).
- Root die 318 can further broadcast power down 337B to non-root die 314 to begin power down 337A (e.g., having similar corresponding actions as power down 337B) to complete entry to the low power state.
- FIG. 3B corresponds to display stutter across heterogeneous chiplets, for example when at a low power state.
- Display engine 316 can detect buffer exhausted 340 (e.g., that its activity buffer is exhausted and will need to exit stutter) which is broadcast to root die 318.
- Root die 318 can locally initiate stutter exit 341B, including power up stutter logic 342B and report stutter exit 343B.
- Root die 318 can also broadcast stutter exit 341B to non-root die 314 to locally initiate stutter exit 341 A, including power up stutter logic 342A and report stutter exit 343 A.
- Non- root die 314 can broadcast report stutter exit 343A to root die 318, which can further broadcast report stutter exit 343B to display engine 316.
- Display engine 316 can access memory 344, for example to refill its buffer at display stutter 345.
- Non-root die 314 can also prepare local clients idle 347A (e.g., corresponding to local clients idle 330A), which is broadcast to root die 318 to prepare local clients idle 347B (e.g., corresponding to local clients idle 330B).
- the local clients idle states can indicate that the local chiplet is idle, except for display, and thus ready to negotiate a watermark (e.g., for the buffer) with display engine 316.
- Root die 318 can further proceed to power down 348B and non-root die 314 can proceed to power down 348A.
- Display engine 316 can continue until buffer filled 346, which is broadcast to root die 318 for further initiating power down 348B, including various actions for powering down (e.g., similar to power down 337B).
- Root die 318 can also broadcast power down 348B to non-root die 314 to initiate power down 348A, including various actions for powering down (e.g., similar to power down 337A).
- Power up stutter logic can correspond to signaling partial power states for handling power efficient stutter.
- display stutter e.g., display stutter 345
- interface logic e.g., for non-stutter clients
- links e.g., links statically allocated for other clients, links that can be selectively powered off in response to powering off related components
- clocks used by non-stutter clients and/or power gates for the non-stutter clients.
- FIG. 3C corresponds to stutter exit, across heterogeneous chiplets, that can upgrade to low power exit.
- Display engine 316 can be at display stutter 350 (e.g., display stutter 345), root die 318 at local clients idle 351B (e.g., local clients idle 330B and/or local clients idle 347B), and non-root die 314 at local clients idle 351 A (e.g., local clients idle 330A and/or local clients idle 347 A).
- An incoming event of non-root die 314 can trigger active broadcast 352A, which can be sent to root die 318 as active broadcast 352B, further propagated to display engine 316 to exit stutter 353.
- FIG. 345 display stutter 350
- root die 318 at local clients idle 351B
- non-root die 314 at local clients idle 351 A (e.g., local clients idle 330A and/or local clients idle 347 A).
- active broadcast 352A and/or active broadcast 352B can be triggered by various events.
- active broadcast 352 A can be triggered by non-root die 314 becoming active while root die 318 remains idle.
- active broadcast 352B can be triggered by root die 318 becoming active while non-root die 314 remains idle, in which case active broadcast 352B can be sent to non-root die 314.
- both root die 318 and non- root die 314 can become idle at the same or nearly the same time, such that the respective active broadcast messages are sent to each other.
- Display engine 316 can proceed to buffer fill abandoned 354, during which having display engine 316 fill its activity buffer is no longer necessary due to exiting low power. For instance, display engine 316 can receive normal access to memory until the next low power entry, when the requirement to fill the activity buffer can be reinstated. Meanwhile, root die 318 can proceed to power up remaining logic 355B, which can include powering up components for a complete low power exit, as stutter logic has already been powered up prior to this point (e.g., for allowing display stutter 350 during local clients idle 351B). Non-root die 314 can similarly to power up remaining logic 355A, which similarly includes powering up remaining components for a complete low power exit.
- root die 318 can continue with enable write burst accumulation 356B, non-root die 314 can continue with enable write burst accumulation 356A. Non-root die 314 can proceed to restore state 357A, and root die 318 can proceed to restore state 357B, to complete exiting the low power state.
- a further (non-stutter) low power exit condition seen can cause “Active” to be signaled that leads to all remaining logic to exit low power.
- multiple stutter levels can be implemented.
- a multimedia exit can be differentiated from display stutter and can be indicated (e.g., instead of stutter exit 341B and/or stutter exit 341A) to enter a different partially powered state.
- Exit can then be transitioned from deeper to shallower states, for instance, from low power to display stutter to multimedia stutter to low power exit, directly from low power to multimedia to low power exit, and/or directly from low power to low power exit, as well as other transitions between deeper and shallower states.
- FIGS. 3A-3C describe a simplified communication flow amongst display engine 316, root die 318, and non-root die 314 in a simplified example architecture.
- certain actions can be modified as needed. For instance, certain reports can be bypassed over certain dies (e.g., if a particular non-root die 314 lies along a branch that has completed its activity and does not need further coordination), and/or a control circuit can directly receive certain reports.
- FIG. 4 is a flow diagram of an exemplary workflow 400 for heterogeneous chiplet power management.
- a quality-of-service (QoS) protocol maintains guarantees that allows real-time stutter clients to manage their activity buffers.
- FIG. 4 illustrates another example of managing a real-time stutter client (e.g., stutter client chiplet 116).
- a real-time stutter client e.g., stutter client chiplet 116.
- it can be determined that all other clients, with respect to the real-time stutter client, no longer have outstanding requests (e.g., local clients idle 330A and local clients idle 330B) in that all reads that have received read responses and writes have met global observability as defined by a coherence protocol (e.g., for a corresponding data fabric or other interface for ensuring data is not stale) or otherwise becoming posted in a relevant network.
- 402 can be performed using a protocol that specifies idle to a root die where the real-time stutter client exists, via hierarchical propagation.
- 404 other clients can be disconnected from generating new requests.
- 404 can be distributed/performed across each die as the messaging for 402 is performed.
- write burst accumulation can be disabled (e.g., flush writes/disable write burst accumulation 332B and flush writes/disable write burst accumulation 332A), and remaining writes flushed (e.g., past a global observability or posted in network) in the data fabric and/or memory controller to DRAM such as memory 120 (e.g., flush writes/disable write burst accumulation 332B and flush writes/disable write burst accumulation 332A).
- 406 can be initiated by a protocol triggering a multi-chiplet low power attempt after the root die receives messaging (e.g., at 402) from all other dies while locally idle in non-stutter clients. In some examples, this results in leaf to root propagation indicating completion (e.g., fabric idle acknowledgement 334B and fabric idle acknowledgement 334A).
- negotiating with the real time stutter client allows filling its activity buffer to a watermark level in which the stutter client completes outstanding requests and stops generating new requests (e.g., fill buffer 335 and threshold met 336). Additionally, by 408, the entire fabric on multiple chiplets can be quiesced of reads and writes of other clients (e.g., due to the messaging) such that the activity buffer filling can be done at the best QoS, with no traffic from other clients (e.g., similar to a monolithic die) to maximize the utilization efficiency of the activity buffer.
- the entire fabric and memory controller can be completely idle and all traffic has been preflushed, allowing a fastest possible low power entry.
- the watermark or threshold e.g., threshold met 336
- the protocol defined herein can hide multi-chiplets with distributed clients and chiplet-crossing traffic from the stutter client, such that activity buffer management performs similarly to a monolithic die.
- entering a low power state can include powering off idle data fabric components and memory controllers and putting DRAM in a low power state (e.g., self-refresh).
- entering the low power state can further include powering down chiplet links and other components as described herein.
- messaging steps across chiplets can in some examples take an unspecified amount of latency.
- activity buffer filling can take a long time, as long as flushing in other chiplets.
- multi-chiplet messaging can in some examples detect a request by any client in any chiplet to return to active state and use the messaging protocol to abort the sequence, rather than having to wait for the entire entry to complete and exit.
- This messaging can be done by reversing the “local idle,” such that any chiplet wanting to abort can send/broadcast “Active” (e.g., active broadcast 352B and active broadcast 352A) to other chiplets to return all chiplets to active state any time prior to the actual irreversible power down (e.g., in power down 337B and power down 337A).
- Active e.g., active broadcast 352B and active broadcast 352A
- 404 e.g., disconnecting clients
- Any changes made prior to the abort, such as write burst accumulation disable can also be reversed.
- FIG. 5 is a flow diagram of an exemplary method 500 for heterogeneous chiplet power management.
- the steps shown in FIG. 5 can be performed by any suitable circuit and/or system, including the system(s) illustrated in FIGS. 1 and/or 2.
- each of the steps shown in FIG. 5 represent an algorithm whose structure includes and/or is represented by multiple sub-steps, examples of which will be provided in greater detail below.
- control circuit 112 can initiate and/or otherwise facilitate system 100 transitioning processor 110 to a new power state, such as a partial power state, that corresponds to power gating certain chiplets (e.g., chiplet 114).
- the new power state corresponds to a low power state with the idle chiplets including the plurality of heterogeneous chiplets.
- the new power state corresponds to a full power state with the active chiplets including the plurality of heterogenous chiplets.
- the new power state corresponds to a partial power state in which certain clients (e.g. stutter clients) and corresponding logic components can be kept powered on while other chiplets can be power gated.
- one or more of the systems described herein confirm, while a stutter client chiplet of the plurality of heterogeneous chiplets is kept at least partially powered on, the idle chiplets have completed operations for reaching an idle state.
- control circuit 112 can confirm, chiplet 114 has completed high latency variance operations (e.g., confirming corresponding local clients are idle, saving a state, flushing writes, disabling write burst accumulation, and/or confirming a corresponding fabric is idle) while stutter client chiplet 116 is kept at least partially powered on.
- the plurality of heterogenous chiplets includes a stutter client chiplet (e.g., stutter client chiplet 116) having an activity buffer and the stutter client chiplet is kept at least partially powered on to fill the activity buffer to at least a buffer threshold.
- the transition to the new power state while the stutter client chiplet fills the activity buffer can be aborted (e.g., in response to a chiplet becoming/broadcasting active).
- control circuit 112 can complete the transition to the new power state after receiving confirmations from chiplet 114 and stutter client chiplet 116 of respectively reaching the idle state.
- Low power state management schemes for multi-socket or multi-chiplet capable SOCs often do not cover real time client traffic crossing from one die to another.
- the systems and methods provided herein allow SOCs to be constructed with heterogeneous chiplets comprising of real time traffic clients that can send traffic across an arbitrary number of die hops to a remote memory to support a system-wide-state, while maintaining full stutter functionality enjoyed by a monolithic SOC.
- a chiplet in stutter mode, a chiplet can burst (filling up a buffer) and go idle (draining the buffer) to allow a low power state during the idle.
- a system-wide low power state requires coordination across the various chiplets, which can include real time traffic clients. Due to the variance across dies, coordination can require a protocol.
- the messaging protocol described herein allows high latency variance operations (e.g., of non-display chiplets) to be completed before a display buffer fill operation in order to provide good QoS service and fast low power entry that can significantly improve activity buffer efficiency.
- the systems and methods provided herein include, for example, a messaging protocol, a chiplet link power off, and fabric low power state transitions to allow multiple clock and power gating domains to be created in chiplets and optimized for low power stutter operations where multiple chiplets can coordinate partial low power transitions between normal operating mode and the stutter mode where logic not used by these stutter clients even in remote chiplets can be powered off.
- the messaging protocol can be designed in consideration of hard real time clients such that chiplet messaging can be overlayed on top of the low power entry and exit sequences. Entry latency differences across multiple chiplets, such as latency from state saving, write burst disabling, and write flushing are not passed on to the real time stutter client’s memory blackout watermark. In addition, power transitions can be parallelized across chiplets to minimize blackout.
- the protocol described herein allows for coordination across all dies.
- each die can perform high variance actions locally (e.g., saving states, bursting out as needed) in order to quickly reach an idleness point for all dies.
- the dies communicate when complete, to proceed with other entry components (clock gating, power gating, clock tree gating, self-refresh, etc.) to enter the low power state.
- this protocol allows for a partial power up of stutter clients (e.g., bursting again), turning on, for example, what is needed for display, multimedia, interface, etc.
- the exit condition can upgrade to a higher exit condition (e.g., full system-wide power up) or can downgrade back to low power (e.g., shutting off the stutter clients).
- circuits, devices, and systems described and/or illustrated herein broadly represent any type or form of computing device or system capable of executing computer-readable instructions, such as those contained within the modules described herein.
- these computing device(s) each include at least one memory device and at least one physical processor.
- the term “memory device” generally refers to any type or form of volatile or non-volatile storage device or medium capable of storing data and/or computer- readable instructions.
- a memory device stores, loads, and/or maintains one or more of the modules and/or circuits described herein.
- Examples of memory devices include, without limitation, Random Access Memory (RAM), Read Only Memory (ROM), flash memory, Hard Disk Drives (HDDs), Solid-State Drives (SSDs), optical disk drives, caches, variations, or combinations of one or more of the same, or any other suitable storage memory.
- the term “physical processor” generally refers to any type or form of hardware-implemented processing unit capable of interpreting and/or executing computer- readable instructions.
- a physical processor accesses and/or modifies one or more modules stored in the above-described memory device.
- Examples of physical processors include, without limitation, microprocessors, microcontrollers, Central Processing Units (CPUs), Field- Programmable Gate Arrays (FPGAs) that implement softcore processors, Application-Specific Integrated Circuits (ASICs), systems on a chip (SoCs), digital signal processors (DSPs), Neural Network Engines (NNEs), accelerators, graphics processing units (GPUs), portions of one or more of the same, variations or combinations of one or more of the same, or any other suitable physical processor.
- CPUs Central Processing Units
- FPGAs Field- Programmable Gate Arrays
- ASICs Application-Specific Integrated Circuits
- SoCs systems on a chip
- DSPs digital signal processors
- NNEs Neural Network Engines
- GPUs graphics processing units
- the term “computer-readable medium” generally refers to any form of device, carrier, or medium capable of storing or carrying computer-readable instructions.
- Examples of computer-readable media include, without limitation, transmission-type media, such as carrier waves, and non-transitory-type media, such as magnetic-storage media (e.g., hard disk drives, tape drives, and floppy disks), optical-storage media (e.g., Compact Disks (CDs), Digital Video Disks (DVDs), and BLU-RAY disks), electronic-storage media (e.g., solid-state drives and flash media), and other distribution systems.
- transmission-type media such as carrier waves
- non-transitory-type media such as magnetic-storage media (e.g., hard disk drives, tape drives, and floppy disks), optical-storage media (e.g., Compact Disks (CDs), Digital Video Disks (DVDs), and BLU-RAY disks), electronic-storage media (e.g., solid-state drives
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
Description
Claims
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP24832966.6A EP4735975A1 (en) | 2023-06-30 | 2024-06-27 | Heterogeneous chiplet power management |
| CN202480040266.0A CN121336170A (en) | 2023-06-30 | 2024-06-27 | Heterogeneous chiplet power management |
| KR1020267003105A KR20260030881A (en) | 2023-06-30 | 2024-06-27 | Heterogeneous chiplet power management |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/345,946 US20250004540A1 (en) | 2023-06-30 | 2023-06-30 | Heterogeneous chiplet power management |
| US18/345,946 | 2023-06-30 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025006804A1 true WO2025006804A1 (en) | 2025-01-02 |
Family
ID=93939806
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2024/035909 Ceased WO2025006804A1 (en) | 2023-06-30 | 2024-06-27 | Heterogeneous chiplet power management |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20250004540A1 (en) |
| EP (1) | EP4735975A1 (en) |
| KR (1) | KR20260030881A (en) |
| CN (1) | CN121336170A (en) |
| WO (1) | WO2025006804A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20250189385A1 (en) * | 2023-12-06 | 2025-06-12 | Qualcomm Incorporated | Communication of thermal states for chiplets |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160048191A1 (en) * | 2014-08-14 | 2016-02-18 | Apple Inc. | Subsystem Idle Aggregation |
| US20190108861A1 (en) * | 2017-10-05 | 2019-04-11 | Advanced Micro Devices, Inc. | Dynamic control of multi-region fabric |
| US20210133913A1 (en) * | 2019-03-15 | 2021-05-06 | Intel Corporation | Disaggregation of soc architecture |
| US20220413593A1 (en) * | 2021-06-25 | 2022-12-29 | Qualcomm Incorporated | Power Management for Multiple-Chiplet Systems |
| US20230059725A1 (en) * | 2021-06-07 | 2023-02-23 | Apple Inc. | Multi-Die Power Synchronization |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10304506B1 (en) * | 2017-11-10 | 2019-05-28 | Advanced Micro Devices, Inc. | Dynamic clock control to increase stutter efficiency in the memory subsystem |
| US12147366B2 (en) * | 2022-06-29 | 2024-11-19 | Advanced Micro Devices, Inc. | Droop mitigation for an inter-chiplet interface |
| US12615209B2 (en) * | 2022-09-28 | 2026-04-28 | Intel Corporation | Inter-chiplet routing of transactions across multi-heterogeneous chiplets using hierarchical addressing |
| US12164365B2 (en) * | 2022-12-27 | 2024-12-10 | Advanced Micro Devices, Inc | Buffer display data in a chiplet architecture |
| US20240219988A1 (en) * | 2023-01-03 | 2024-07-04 | Advanced Micro Devices, Inc. | Chiplet interconnect power state management |
| US12423006B2 (en) * | 2023-06-30 | 2025-09-23 | Advanced Micro Devices, Inc. | Low power memory state during non-idle processor state |
-
2023
- 2023-06-30 US US18/345,946 patent/US20250004540A1/en active Pending
-
2024
- 2024-06-27 CN CN202480040266.0A patent/CN121336170A/en active Pending
- 2024-06-27 KR KR1020267003105A patent/KR20260030881A/en active Pending
- 2024-06-27 WO PCT/US2024/035909 patent/WO2025006804A1/en not_active Ceased
- 2024-06-27 EP EP24832966.6A patent/EP4735975A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160048191A1 (en) * | 2014-08-14 | 2016-02-18 | Apple Inc. | Subsystem Idle Aggregation |
| US20190108861A1 (en) * | 2017-10-05 | 2019-04-11 | Advanced Micro Devices, Inc. | Dynamic control of multi-region fabric |
| US20210133913A1 (en) * | 2019-03-15 | 2021-05-06 | Intel Corporation | Disaggregation of soc architecture |
| US20230059725A1 (en) * | 2021-06-07 | 2023-02-23 | Apple Inc. | Multi-Die Power Synchronization |
| US20220413593A1 (en) * | 2021-06-25 | 2022-12-29 | Qualcomm Incorporated | Power Management for Multiple-Chiplet Systems |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20260030881A (en) | 2026-03-06 |
| CN121336170A (en) | 2026-01-13 |
| US20250004540A1 (en) | 2025-01-02 |
| EP4735975A1 (en) | 2026-05-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9110669B2 (en) | Power management of a storage device including multiple processing cores | |
| US7500123B2 (en) | Apparatus and method for reducing power consumption in a graphics processing device | |
| US8438416B2 (en) | Function based dynamic power control | |
| US8914650B2 (en) | Dynamically adjusting power of non-core processor circuitry including buffer circuitry | |
| US8145928B2 (en) | Methods and systems for power management in a data processing system | |
| US9411754B2 (en) | Dynamic frequency memory control | |
| US20140181556A1 (en) | Idle Phase Exit Prediction | |
| CN108885486B (en) | Enhanced Dynamic Clock and Voltage Scaling (DCVS) Scheme | |
| US20130262792A1 (en) | Memory device support of dynamically changing frequency in memory systems | |
| JP2016506576A (en) | Integrated circuit idle phase prediction. | |
| US11966339B1 (en) | Selecting between basic and global persistent flush modes | |
| TWI470410B (en) | Electronic system and power management method | |
| KR20240122528A (en) | Last-level cache access during non-C state self-refresh | |
| WO2025006804A1 (en) | Heterogeneous chiplet power management | |
| US20250216889A1 (en) | Segment clock gating | |
| KR20260038945A (en) | Memory Self-Refresh Power Gating | |
| EP1570335B1 (en) | An apparatus and method for address bus power control | |
| CN114153303B (en) | A power consumption control system, a power consumption control method, a device, and a medium | |
| US12332722B2 (en) | Latency reduction for transitions between active state and sleep state of an integrated circuit | |
| US20250307186A1 (en) | Interrupt coalescing during processor idle | |
| CN121349283A (en) | Methods, devices and electronic equipment for adjusting memory power consumption | |
| WO2023287565A1 (en) | Systems and methods for power gating chip components | |
| CN116521112A (en) | Parameter adjusting method, display card, electronic equipment and storage medium | |
| HK1075949B (en) | An apparatus and method for address bus power control |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24832966 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202617008522 Country of ref document: IN |
|
| ENP | Entry into the national phase |
Ref document number: 1020267003105 Country of ref document: KR Free format text: ST27 STATUS EVENT CODE: A-0-1-A10-A15-NAP-PA0105 (AS PROVIDED BY THE NATIONAL OFFICE) |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2024832966 Country of ref document: EP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 2024832966 Country of ref document: EP Effective date: 20260130 |
|
| ENP | Entry into the national phase |
Ref document number: 2024832966 Country of ref document: EP Effective date: 20260130 |
|
| WWP | Wipo information: published in national office |
Ref document number: 202617008522 Country of ref document: IN |