Distributed thermal management architecture
By adopting a distributed thermal management architecture in the electronic system, thermal sensors and controllers are distributed across different subsystems, solving the signal routing congestion problem of centralized thermal management systems and achieving more efficient temperature management and performance improvement.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-07-16
- Publication Date
- 2026-03-13
AI Technical Summary
Existing centralized thermal management systems suffer from signal routing congestion and design difficulties in electronic systems, resulting in low thermal management efficiency and an inability to effectively maintain temperature gradients and performance.
A distributed thermal management architecture is adopted, in which thermal sensors and controllers are distributed in different subsystems of the system-on-a-chip and connected through a serial data bus to achieve local thermal management. Temperature data processing and control are performed using a central broadcast unit and a local limit management unit.
It reduces signal routing congestion, improves the efficiency and flexibility of thermal management, enables more precise temperature regulation, and enhances the performance and reliability of electronic systems.
Smart Images

Figure CN121666566A_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This patent application claims priority to pending U.S. nonprovisional application No. 18 / 452,880, filed August 21, 2023, which has been assigned to the assignee of this application and is expressly incorporated herein by reference, as fully set forth below and for all applicable purposes. Technical Field
[0003] This disclosure relates in general to the field of thermal management, and specifically to distributed thermal management architectures. Background Technology
[0004] Every electronic system requires some form of thermal management to operate correctly. Some of the electrical energy supplied to an electronic system is inevitably converted into heat. This heat alters the temperature gradient between the electronic system and its surrounding environment. Therefore, an efficient thermal management architecture is needed to achieve optimal performance. Summary of the Invention
[0005] To provide a basic understanding of one or more aspects of this disclosure, a summary of those aspects is given below. This summary is not an extensive overview of all intended features of this disclosure, nor is it intended to identify key or essential elements of all aspects of this disclosure, nor to depict the scope of any or all aspects of this disclosure. Its sole purpose is to present some concepts of one or more aspects of this disclosure in a simplified form as a prelude to the more detailed description that follows.
[0006] In one aspect, this disclosure provides a distributed thermal management architecture. Accordingly, an apparatus for implementing thermal management includes: a serial data bus; a central processing unit (CPU) coupled to the serial data bus; a graphics processing unit (GPU) coupled to the serial data bus; a neural signal processor (NSP) coupled to the serial data bus; and an always-on subsystem (AOSS) coupled to the serial data bus; wherein the serial data bus, CPU, GPU, NSP, and AOSS are implemented on a system-on-a-chip (SOC); wherein the CPU includes a first plurality of thermal sensors and a second plurality of thermal sensors. A plurality of controllers, wherein each of a first plurality of thermal sensors is coupled to each of the first plurality of controllers; wherein the GPU includes a second plurality of thermal sensors and a second plurality of controllers, wherein each of the second plurality of thermal sensors is coupled to each of the second plurality of controllers; wherein the NSP includes a third plurality of thermal sensors and a third plurality of controllers, wherein each of the third plurality of thermal sensors is coupled to each of the third plurality of controllers; and wherein the AOSS includes a fourth plurality of thermal sensors and a fourth plurality of controllers, wherein each of the fourth plurality of thermal sensors is coupled to each of the fourth plurality of controllers.
[0007] In one example, the CPU further includes a first plurality of central broadcast (CB) units, wherein each of the first plurality of CB units is coupled to each of the first plurality of controllers. In one example, each of the first plurality of controllers is configured to generate digital temperature data based on thermal data received from each of the first plurality of thermal sensors. In one example, the device further includes a first plurality of local limit management (LLM) units, wherein each of the first plurality of LLM units is coupled to each of the first plurality of CB units, and wherein each of the first plurality of LLM units is configured to perform a thermal management process based on whether the digital temperature data has exceeded a predetermined thermal limit.
[0008] In one example, the device further includes a second plurality of central broadcast (CB) units, wherein each of the second plurality of CB units is coupled to each of the second plurality of controllers. In one example, each of the second plurality of controllers is configured to generate digital temperature data based on thermal data received from each of the second plurality of thermal sensors. In one example, the device further includes a graphics management unit (GMU), wherein the GMU is coupled to each of the second plurality of CB units, and wherein the GMU is configured to perform a thermal management process based on whether the digital temperature data has exceeded a predetermined thermal limit.
[0009] In one example, the NSP also includes a third plurality of central broadcast (CB) units, wherein each of the third plurality of CB units is coupled to each of the third plurality of controllers. In one example, each of the third plurality of controllers is configured to generate digital temperature data based on thermal data received from each of the third plurality of thermal sensors. In one example, the device also includes a second plurality of local limit management (LLM) units, wherein each of the second plurality of LLM units is coupled to each of the third plurality of CB units, and wherein each of the second plurality of LLM units is configured to perform a thermal management process based on whether the digital temperature data has exceeded a predetermined thermal limit.
[0010] In one example, AOSS also includes a fourth plurality of central broadcast (CB) units, wherein each of the fourth plurality of CB units is coupled to each of the fourth plurality of controllers. In one example, each of the fourth plurality of controllers is configured to generate digital temperature data based on thermal data received from each of the fourth plurality of thermal sensors.
[0011] In one example, the apparatus further includes: an audio processor coupled to a serial data bus; a camera processor coupled to a serial data bus; a computer vision processor coupled to a serial data bus; a video processor coupled to a serial data bus; an RDMA (RoCE) processor over Converged Ethernet coupled to a serial data bus; and a Double Data Rate (DDR) memory controller unit coupled to a serial data bus, wherein one or more of a fourth plurality of thermal sensors are configured to measure the temperature of the audio processor, the camera processor, the computer vision processor, the video processor, and the RoCE processor; and wherein one or more of the fourth plurality of thermal sensors are configured to measure the temperature of the DDR memory controller unit.
[0012] Another aspect of this disclosure provides a method for implementing thermal management, the method comprising: sensing a first ambient temperature using a first thermal sensor located at a first subsystem location within a system-on-chip (SOC); converting the first ambient temperature into a first telemetry signal; sensing a second ambient temperature using a second thermal sensor located at a second subsystem location having the SOC; converting the second ambient temperature into a second telemetry signal; and receiving the first telemetry signal from the first thermal sensor and the second telemetry signal from the second thermal sensor at a thermal management controller.
[0013] In one example, the first telemetry signal is monotonically correlated with the first ambient temperature. In another example, the first telemetry signal is linearly correlated with the first ambient temperature. In yet another example, the location of the first subsystem and the location of the second subsystem are in the same subsystem among multiple subsystems of the SOC.
[0014] In one example, the method further includes converting a first telemetry signal into a first digital code at a thermal management controller, and converting a second telemetry signal into a second digital code. In one example, the method further includes relaying the first and second digital codes to a central broadcast (CB) unit to generate a first broadcast message and a second broadcast message. In one example, the first digital code is a proportional representation of a first ambient temperature. In one example, the first digital code is a non-linear representation of the first ambient temperature.
[0015] In one example, the first digital code is an uncompressed quantized version of a first ambient temperature, and the second digital code is an uncompressed quantized version of a second ambient temperature. In another example, the first digital code is a compressed quantized version of a first ambient temperature, and the second digital code is a compressed quantized version of a second ambient temperature.
[0016] In one example, the method further includes transmitting a first broadcast message and a second broadcast message to a local restriction management unit to perform local thermal management for a first subsystem location and a second subsystem location. In one example, the local thermal management is independent of a centralized thermal management system for the SOC, and the local restriction management unit is configured to receive auxiliary data from the centralized thermal management system for performing local thermal management.
[0017] Another aspect of this disclosure provides an apparatus for implementing thermal management, the apparatus comprising: means for sensing a first ambient temperature using a first thermal sensor located at a first subsystem location within a system-on-chip (SOC); means for converting the first ambient temperature into a first telemetry signal; means for sensing a second ambient temperature using a second thermal sensor located at a second subsystem location having the SOC; means for converting the second ambient temperature into a second telemetry signal; and means for receiving the first telemetry signal from the first thermal sensor and the second telemetry signal from the second thermal sensor at a thermal management controller.
[0018] In one example, the apparatus further includes: components for converting a first telemetry signal into a first digital code and a second telemetry signal into a second digital code at a thermal management controller; components for relaying the first digital code and the second digital code to a central broadcast (CB) unit to generate a first broadcast message and a second broadcast message; and components for transmitting the first broadcast message and the second broadcast message to a local restriction management unit to perform local thermal management on the first subsystem location and the second subsystem location.
[0019] In one example, the apparatus further includes: a component for receiving auxiliary data from a centralized thermal management system for performing local thermal management, wherein the local thermal management is independent of the centralized thermal management system for the SOC, and the local limit management unit is configured to perform the thermal management process based on whether the digitized temperature data has exceeded a predetermined thermal limit.
[0020] Another aspect of this disclosure provides a non-transitory computer-readable medium storing computer-executable code operable on a device including at least one processor and at least one memory coupled to the at least one processor, wherein the at least one processor is configured to implement thermal management, the computer-executable code including: instructions for causing a computer to use a first thermal sensor at a first subsystem location within a system-on-chip (SOC) to sense a first ambient temperature; instructions for causing the computer to convert the first ambient temperature into a first telemetry signal; instructions for causing the computer to use a second thermal sensor at a second subsystem location having the SOC to sense a second ambient temperature; instructions for causing the computer to convert the second ambient temperature into a second telemetry signal; and instructions for causing the computer to receive the first telemetry signal from the first thermal sensor and the second telemetry signal from the second thermal sensor at a thermal management controller.
[0021] In one example, the non-transitory computer-readable medium also includes instructions for causing the computer to perform the following operations: converting a first telemetry signal into a first digital code and a second telemetry signal into a second digital code at a thermal management controller; relaying the first and second digital codes to a central broadcast (CB) unit to generate a first broadcast message and a second broadcast message; and transmitting the first and second broadcast messages to a local restriction management unit to perform local thermal management on the first and second subsystem locations.
[0022] These and other aspects of this disclosure will be more fully understood upon reading the following detailed description. Other aspects, features, and embodiments of this disclosure will become apparent to those skilled in the art after reading the following description of specific exemplary embodiments of the invention in conjunction with the accompanying drawings. Although features of the invention may be discussed below with respect to certain embodiments and drawings, all embodiments of the invention may include one or more of the advantageous features discussed herein. In other words, while one or more embodiments may be discussed as having certain advantageous features, one or more such features may also be used according to the various embodiments of the invention discussed herein. Similarly, although exemplary embodiments may be discussed below as embodiments of an apparatus, system, or method, it should be understood that such exemplary embodiments may be implemented in various apparatuses, systems, and methods. Attached Figure Description
[0023] Figure 1 An example thermal management controller within a system-on-a-chip (SOC) is shown.
[0024] Figure 2 An example of an external distributed thermal management system is shown.
[0025] Figure 3 An example of an internal distributed thermal management system is shown.
[0026] Figure 4 A sample detailed block diagram of the CPU subsystem (CPUSS) for an internal distributed thermal management system is shown.
[0027] Figure 4A A sample detailed block diagram of a graphics processing unit subsystem (GPUSS) for a distributed thermal management system is shown.
[0028] Figure 5 A detailed block diagram of a neural signal processor (NSP) subsystem (NSPSS) for a distributed thermal management system is shown.
[0029] Figure 6 An example flowchart for a distributed thermal management system for a system-on-a-chip (SOC) is shown. Detailed Implementation
[0030] The detailed description below, taken in conjunction with the accompanying drawings, is intended as a description of various configurations and not as representing only the configurations in which the concepts described herein can be practiced. To provide a thorough understanding of the various concepts, the detailed description includes specific details. However, it will be apparent to those skilled in the art that these concepts can be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form to avoid obscuring these concepts.
[0031] While for the purpose of simplification, a method is shown and described as a series of actions, it should be understood and recognized that the method is not restricted by the order of the actions, as some actions may occur in a different order and / or concurrently with other actions, depending on one or more aspects. For example, those skilled in the art will understand and recognize that a method may alternatively be represented as a series of related states or events, such as in a state diagram. Furthermore, not all exemplified actions are required to implement a method according to one or more aspects.
[0032] Electronic systems are ubiquitous in modern society, found in a wide variety of products and tools. These systems rely on electrical energy sources, such as alternating current (AC) power systems or energy storage systems (e.g., batteries), to supply the energy required for their proper functioning. While some of the supplied energy is converted into a usable form, other portions of the energy are rendered unusable, such as heat, due to fundamental physical laws and properties (e.g., the second law of thermodynamics). Heat tends to raise the ambient temperature of electronic systems, which can degrade their performance or potentially limit their operability. Therefore, system designers seek thermal management systems that maintain the ambient temperature within a desired range.
[0033] In one example, a thermal management system may utilize thermal sensors to monitor the temperature across the electronic system and use the monitored temperature from a thermal management controller. For instance, the thermal management system may regulate a temperature range or gradient to maintain a desired thermal environment by active power management (e.g., activating or deactivating certain subsystems of the electronic system) or by engaging or disengaging thermal control elements (i.e., heaters, fans, fluid flows, etc.). Generally, a thermal management controller is coupled to multiple thermal sensors for temperature monitoring and multiple thermal control elements for temperature regulation.
[0034] In one example, there are two types of thermal management systems: centralized thermal management systems and distributed thermal management systems. For example, a centralized thermal management system routes all thermal sensors to a thermal management controller at a centralized location. A distributed thermal management system, on the other hand, routes thermal sensors to multiple thermal management controllers at several distributed locations.
[0035] Figure 1An example thermal management controller 100 within a system-on-a-chip (SOC) is illustrated. For example, the SOC includes an SOC die, such as a substrate layer serving as the base of the SOC. For example, the SOC die may include multiple electronic devices implementing the functionality of the SOC. For example, the thermal management controller 100 includes a clock controller 182, a main controller 183, and multiple control status registers 184. In one example, the thermal management controller 100 is part of a thermal management system that also includes or is coupled to multiple thermal sensors 181. In one example, the thermal management controller manages temperature monitoring from multiple thermal sensors. For example, the thermal sensors can be implemented using the temperature-dependent characteristics of transistors. For example, the thermal sensors can be implemented by monitoring transistor voltages that are monotonically dependent on temperature (e.g., base-emitter voltage, VBE). For example, the thermal sensors can be implemented by using a thermistor (i.e., a resistor whose resistance depends on temperature).
[0036] In one example, the main controller 183 selects a thermal sensor and transmits it to the measurement module 185 for temperature measurement, to the conversion module 186 for digital conversion of the temperature measurement, and to the broadcast interface module 187 to generate a control broadcast message for the central broadcast (CB) unit 188. In one example, the thermal management controller 100 includes a voltage reference module 190, a sensor threshold module 191, and multiple interrupt status registers 192.
[0037] In one example, the digital conversion of the temperature measurement is sent to a sensor threshold module 191, which determines whether a critical shutdown state should be invoked and whether the assertion power hold (PS_HOLD) signal 195 should be released. In one example, the sensor threshold module 191 should assert an interrupt to the application processing subsystem (APSS) 193 and decouple the interrupt to the safety island subsystem (SAILSS) 194.
[0038] In one example, the multiple thermal sensors include remote sensors (i.e., thermal sensors external to the thermal management controller 100) and embedded sensors (i.e., thermal sensors internal to the thermal management controller 100). For example, the remote sensors are placed at various locations (e.g., hot spots) on the SOC die with high heat density. For example, locations with high heat density may include a central processing unit (CPU), a graphics processing unit (GPU), a neural signal processor (NSP), etc.
[0039] In one example, the thermal management controller 100 may be instantiated within an always-on subsystem (AOSS). For example, the AOSS is the portion of the SOC that is continuously powered during normal operation (i.e., with a 100% duty cycle). In one example, the thermal management controller 100 includes multiple threshold registers to check whether each thermal sensor violates a maximum and minimum temperature threshold that triggers a critical hardware shutdown, an upper and lower software-controlled threshold, and a critical high threshold that triggers a rapid thermal response in the software. For example, a critical hardware shutdown may be deasserted via a global clock controller (GCC) to a power holding control signal (e.g., the PS_HOLD signal) to the power management integrated circuit (PMIC). In one example, a deassertion of the PS_HOLD signal to the PMIC (i.e., a low logic level) initiates a reset or power-off to protect the SOC from thermal runaway conditions. In one example, an assertion of the PS_HOLD signal (i.e., a high logic level) maintains the active power state in the SOC.
[0040] In one example, a finite state machine (FSM), part of the main controller 183 circuitry, selects and polls each embedded sensor in a cyclic manner. In another example, an analog-to-digital converter (ADC), part of the measurement module 185 and conversion module 186, converts the measured temperature of each sensor into a digital code and stores the digital code in temperature units (e.g., Celsius, Fahrenheit, or Kelvin or a fraction thereof) in a control status register 184. In one example, the digital code is compared to a threshold register value 191, and an interrupt is generated by an interrupt status register 192 for any temperature violation. In another example, the digital code is simultaneously transmitted to a broadcast interface 187 for a central broadcast unit 188 to broadcast the sensor temperature values to the subsystem.
[0041] In one example, the thermal management controller 100 operates continuously even when the SOC is in sleep mode.
[0042] In one example, a centralized thermal management system may introduce several design challenges or constraints. For instance, a large number of thermal sensors (e.g., approximately 100 or more) may require a correspondingly large number of signal (analog) routes from each thermal sensor to the thermal management controller 100. For example, for N remote sensors, the number of signal (analog) routes into each thermal management controller 100 could be equal to 2N+2. In one example, the large number of signal routes from each thermal sensor could lead to routing congestion near the AOSS input / output pads and pins. For example, the circuit layout may be fixed, and therefore there may be wasted area around the AOSS where the thermal management controller 100 is located.
[0043] Furthermore, for example, routing congestion due to a large number of signal routes can lead to difficulties in the digital design of numerous networks and may result in minimal available grid resources in local areas. For instance, multiple grids may be unavailable for a large number of signal routes. For example, with less grid available, higher current density and higher circuit resistance may lead to higher supply voltage requirements to compensate for the higher circuit resistance. Therefore, the design of thermal management systems may shift from a centralized architecture to a more distributed architecture.
[0044] In one example, two architectural implementations can be considered as alternatives to a centralized thermal management system architecture. For example, the first implementation represents an externally distributed thermal management system architecture. The second implementation represents an internally distributed thermal management system architecture.
[0045] Figure 2 An example of an external distributed thermal management system 200 is illustrated. For instance, the external distributed thermal management system 200 includes multiple components such as an Always-On Subsystem (AOSS) 210, a Graphics Processing Unit (GPU) 220, a Central Processing Unit (CPU) 230, a Neural Signal Processor (NSP) 240, a Video Processor 250, a Double Data Rate (DDR) memory unit 260, and a serial data bus (e.g., a Peripheral Component Interconnect Fast (PCIe) bus) 270. In one example, the external distributed thermal management system 200 also includes an audio subsystem, a camera, and a computer vision (CV) system.
[0046] In one example, the external distributed thermal management system 200 includes multiple distributed thermal management controllers, wherein the first controller 281 and the second controller 282 are locally located within the AOSS 210, the third controller 283, the fourth controller 284, the fifth controller 285 and the sixth controller 286 are locally located outside the CPU 230 (e.g., on top of the chip); the seventh controller 287 and the eighth controller 288 are locally located outside the NSP 240 (e.g., on top of the chip), and the ninth controller 221 and the tenth controller 222 are locally located outside the GPU 220 (e.g., on top of the chip).
[0047] In one example, a distributed thermal management controller locally located with the AOSS 210 utilizes thermal sensors that do not have a local distributed thermal management controller to perform thermal management. For example, a first controller 281 and a second controller 282 can perform thermal management for thermal sensors in the video processor 250, DDR memory cell 260, and serial data bus 270, as well as for the audio subsystem, camera, and computer vision (CV) system.
[0048] In one example, a distributed thermal management controller located locally outside the CPU 230 (e.g., on top of the chip) utilizes thermal sensors embedded in the CPU 230 to perform local thermal management. For example, a third controller 283, a fourth controller 284, a fifth controller 285, and a sixth controller 286 may utilize thermal sensors in the CPU 230 to perform local thermal management.
[0049] In one example, a distributed thermal management controller located locally outside the GPU 220 (e.g., on top of the chip) utilizes thermal sensors embedded in the GPU 220 to perform local thermal management. For example, the ninth controller 221 and the tenth controller 222 utilize thermal sensors in the GPU 220 to perform local management.
[0050] In one example, a distributed thermal management controller located locally outside the NSP 240 (e.g., on top of the chip) utilizes thermal sensors embedded in the NSP 240 to perform local thermal management. For example, the seventh controller 287 and the eighth controller 288 utilize thermal sensors in the NSP 240 to perform local thermal management.
[0051] In one example, GPU 220 can be multiple GPUs, with multiple thermal management controllers located locally outside the multiple GPUs. In one example, NSP 240 can be multiple NSPs, with multiple thermal management controllers located locally outside the multiple NSPs.
[0052] Figure 3 An example of an internal distributed thermal management system 300 is illustrated. For instance, the internal distributed thermal management system 300 includes multiple components such as an Always-On Subsystem (AOSS) 310, a Graphics Processing Unit (GPU) 320, a Central Processing Unit (CPU) 330, a Neural Signal Processor (NSP) 340, a Video Processor 350, a Double Data Rate (DDR) memory unit 360, and a serial data bus (e.g., a Peripheral Component Interconnect Fast (PCIe) bus) 370. In one example, the internal distributed thermal management system 300 also includes an audio system, a camera, and a computer vision (CV) system.
[0053] In one example, the internal distributed thermal management system 300 includes multiple distributed thermal management controllers, wherein the first controller 381 and the second controller 382 are locally located within AOSS 310; the third controller 383, the fourth controller 384, the fifth controller 385 and the sixth controller 386 are locally located within CPU 330; the seventh controller 387 and the eighth controller 388 are locally located within NSP 340; and the ninth controller 321 and the tenth controller 322 are locally located within GPU 320.
[0054] In one example, a distributed thermal management controller located locally within the AOSS 310 utilizes thermal sensors that do not have a local distributed thermal management controller to perform thermal management. For example, a first controller 381 and a second controller 382 could perform thermal management for thermal sensors in the video processor 350 and the DDR memory unit 360, as well as for audio systems, cameras, and computer vision (CV) systems.
[0055] In one example, a distributed thermal management controller located locally within CPU 330 utilizes thermal sensors embedded in CPU 330 to perform local thermal management. For example, third controller 383, fourth controller 384, fifth controller 385, and sixth controller 386 may utilize thermal sensors in CPU 330 to perform local thermal management.
[0056] In one example, a distributed thermal management controller located locally within GPU 320 utilizes thermal sensors embedded in GPU 320 to perform local thermal management. For example, the ninth controller 321 and the tenth controller 322 utilize thermal sensors in GPU 320 to perform local management.
[0057] In one example, a distributed thermal management controller located locally within the NSP 340 utilizes thermal sensors embedded in the NSP 340 to perform local thermal management. For example, the seventh controller 387 and the eighth controller 388 utilize thermal sensors in the NSP 340 to perform local thermal management.
[0058] In one example, GPU 320 can be multiple GPUs, with multiple thermal management controllers located locally within the multiple GPUs. In one example, NSP 340 can be multiple NSPs, with multiple thermal management controllers located locally within the multiple NSPs.
[0059] Figure 4 An example detailed block diagram of a CPU subsystem (CPUSS) 400 for a distributed thermal management system is illustrated. For example, the distributed thermal management system places a thermal management controller in a distributed load with high current density and high heat dissipation, close to local thermal sensors, such as the CPUSS. In one example, the distributed thermal management system connects other thermal sensors (e.g., remote thermal sensors) to the thermal management controller into a central load, such as an AOSS. In one example, the CPU subsystem 400 includes multiple CPU clusters. In one example, each CPU cluster includes multiple CPU cores (i.e., individual processing units). In one example, each CPU core includes multiple thermal sensors to monitor the CPU core temperature. In one example, multiple thermal sensors are connected to at least one thermal management controller.
[0060] In one example, CPUSS 400 includes a first CPU cluster 410 (CPU cluster 0), a second CPU cluster 420 (CPU cluster 1), and a third CPU cluster 430 (CPU cluster 2).
[0061] In one example, the first CPU cluster 410 includes multiple CPU cores and cache memory (e.g., Level 1 L1 cache memory). In another example, the first CPU cluster 410 also includes a first central broadcast (CB) unit 413 and a first local restriction management (LLM) unit 414.
[0062] In one example, the first CPU cluster 410 also includes a first thermal management controller 411 and a second thermal management controller 412. In one example, the first thermal management controller 411 and the second thermal management controller 412 are redundantly connected to each thermal sensor of the first CPU cluster 410 in a cross-connect configuration. For example, each CPU core may include two thermal sensors for redundancy. In one example, there is a signal routing between each thermal sensor of each CPU core and the thermal management controller of the first CPU cluster 410. In one example, the first CPU cluster 410 includes thermal limiting management hardware performed by the first thermal management controller 411 and the second thermal management controller 412.
[0063] In one example, the first CB unit 413 is connected to the first thermal management controller 411 and the second thermal management controller 412 to receive digitized temperature data derived from each thermal sensor of each CPU core of the first CPU cluster 410. That is, the thermal management controllers 411 and 412 receive temperature data from the thermal sensors to generate digitized temperature data based on the temperature data received from the thermal sensors.
[0064] In one example, the first CB unit 413 relays digitized temperature data to the first LLM unit 414. In one example, if the digitized temperature data indicates that a predetermined thermal limit has been exceeded (e.g., if the thermal sensor temperature is hotter than the maximum allowed temperature or colder than the minimum allowed temperature), the first LLM unit 414 performs a thermal management procedure. In one example, the first LLM unit 414 is also connected to other subsystem data, such as PMIC arbitrator data, voltage regulator manager (VRM) data, aggregate resource control (ARC) data, power domain controller (PDC) data, etc.
[0065] In one example, the first thermal management controller 411 and the second thermal management controller 412 draw DC power from the core logic power rail (e.g., the APSS_CX rail) and retain memory state in their registers from the memory power rail (e.g., MXA) to conserve power during deep sleep. For example, cold temperature conditions (e.g., 0 degrees Celsius) can be monitored by a remote thermal sensor connected to the thermal management controllers in the AOSS 460 using a fourth CB unit 463. In one example, a security alarm or error message can be routed to the Safety Island (SAIL) 450 subsystem using an interrupt request (IRQ) signal. In one example, the SAILSS can perform user-defined security policy actions, such as increasing fan speed or shutting down non-critical use cases upon receiving an alarm interrupt, and performing a smooth software shutdown upon receiving an error interrupt.
[0066] In one example, the Application Processor Subsystem (APSS) 440 executes a user application. In one example, the APSS 440 can limit or interrupt the user application upon receiving an upper limit interrupt, a lower limit interrupt, or a critical interrupt.
[0067] In one example, the second CPU cluster 420 includes multiple CPU cores and cache memory (e.g., Level 1 L1 cache memory). In another example, the second CPU cluster 420 also includes a second Central Broadcast (CB) unit 423 and a second Local Limit Management (LLM) unit 424.
[0068] In one example, the second CPU cluster 420 also includes a third thermal management controller 421 and a fourth thermal management controller 422. In one example, the third thermal management controller 421 and the fourth thermal management controller 422 are redundantly connected to each thermal sensor of the second CPU cluster 420 in a cross-connect configuration. For example, each CPU core includes two thermal sensors for redundancy. For example, there is a signal routing between each thermal sensor in each CPU core and the thermal management controller of the second CPU cluster 420. In one example, the second CPU cluster 420 includes thermal limiting management hardware performed by the third thermal management controller 421 and the fourth thermal management controller 422.
[0069] In one example, the second CB unit 423 is connected to the third thermal management controller 421 and the fourth thermal management controller 422 to receive digitized temperature data derived from each thermal sensor of each CPU core of the second CPU cluster 420. In one example, the second CB unit 423 relays the digitized temperature data to the second LLM unit 424. That is, the thermal management controllers 421 and 422 receive temperature data from the thermal sensors to generate digitized temperature data based on the temperature data received from the thermal sensors.
[0070] In one example, if the digital temperature data indicates that a predetermined thermal limit has been exceeded (e.g., if the thermal sensor temperature is hotter than the maximum allowed temperature or colder than the minimum allowed temperature), the second LLM unit 424 performs a thermal management procedure. In one example, the second LLM unit 424 is also connected to other subsystem data, such as PMIC arbitrator data, voltage regulator manager (VRM) data, aggregate resource control (ARC) data, power domain controller (PDC) data, etc.
[0071] In one example, the third thermal management controller 421 and the fourth thermal management controller 422 draw DC power from the core logic power rail (e.g., the APSS_CX rail) and retain memory state in their registers from the memory power rail (e.g., MXA) to conserve power during deep sleep. For example, cold temperature conditions (e.g., 0 degrees Celsius) can be monitored by a remote thermal sensor connected to the thermal management controllers in the AOSS 460 using the fourth CB unit 463. In one example, a safety alarm or error message can be routed to the Safety Island (SAIL) 450 subsystem using an interrupt request (IRQ) signal. In one example, the SAILSS can perform user-defined safety policy actions, such as increasing fan speed or shutting down non-critical use cases upon receiving an alarm interrupt, and performing a smooth software shutdown upon receiving an error interrupt.
[0072] In one example, the Application Processor Subsystem (APSS) 440 executes a user application. In one example, the APSS 440 can limit or interrupt the user application upon receiving an upper limit interrupt, a lower limit interrupt, or a critical interrupt.
[0073] In one example, the third CPU cluster 430 includes multiple CPU cores and cache memory (e.g., Level 1 L1 cache). In another example, the third CPU cluster 430 also includes a third central broadcast (CB) unit 433 and a third local restriction management (LLM) unit 434.
[0074] In one example, the third CPU cluster 430 also includes a fifth thermal management controller 431 and a sixth thermal management controller 432. In one example, the fifth thermal management controller 431 and the sixth thermal management controller 432 are redundantly connected to each thermal sensor of the third CPU cluster 430 in a cross-connect configuration. For example, each CPU core may include two thermal sensors for redundancy. In one example, there is a signal routing between each thermal sensor of each CPU core and the thermal management controllers of the third CPU cluster 430. In one example, the third CPU cluster 430 includes thermal limiting management hardware performed by the fifth thermal management controller 431 and the sixth thermal management controller 432.
[0075] In one example, the third CB unit 433 is connected to the fifth thermal management controller 431 and the sixth thermal management controller 432 to receive digitized temperature data derived from each thermal sensor of each CPU core of the third CPU cluster 430. In one example, the third CB unit 433 relays the digitized temperature data to the third LLM unit 434. That is, the thermal management controllers 431 and 432 receive temperature data from the thermal sensors to generate digitized temperature data based on the temperature data received from the thermal sensors.
[0076] In one example, if the digital temperature data indicates that a predetermined thermal limit has been exceeded (e.g., if the thermal sensor temperature is hotter than the maximum allowed temperature or colder than the minimum allowed temperature), the third LLM unit 434 performs a thermal management procedure. In one example, the third LLM unit 434 is also connected to other subsystem data, such as PMIC arbitrator data, voltage regulator manager (VRM) data, aggregate resource control (ARC) data, power domain controller (PDC) data, etc.
[0077] In one example, the fifth thermal management controller 431 and the sixth thermal management controller 432 draw DC power from the core logic power rail (e.g., the APSS_CX rail) and retain memory state in their registers from the memory power rail (e.g., MXA) to conserve power during deep sleep. For example, cold temperature conditions (e.g., 0 degrees Celsius) can be monitored by a remote thermal sensor connected to the thermal management controllers in the AOSS 460 using the third CB unit 463. In one example, a security alarm or error message can be routed to the Security Island (SAIL) 450 subsystem using an Interrupt Request (IRQ) signal. In one example, the SAILSS can execute user-defined security policy actions, such as increasing fan speed or shutting down non-critical use cases upon receiving an alarm interrupt, and performing a smooth software shutdown upon receiving an error interrupt. In one example, the Application Processor Subsystem (APSS) 440 executes user applications.
[0078] In one example, the APSS 440 can limit or interrupt user applications upon receiving an upper limit interrupt, lower limit interrupt, or critical interrupt. In one example, CB units (413, 423, 433, 463) are optional, and the thermal management controller can be directly coupled to the LLM unit.
[0079] Figure 4AAn example detailed block diagram of a Graphics Processing Unit Subsystem (GPUSS) 470 for a distributed thermal management system is illustrated. In one example, the distributed thermal management system places a thermal management controller in a distributed load with high current density and high heat dissipation, close to a local thermal sensor, such as the GPUSS 470. In another example, the distributed thermal management system connects other thermal sensors (e.g., remote thermal sensors) to the thermal management controller into a central load, such as AOSS. In one example, the GPUSS 470 includes a GPU cluster 471. In another example, the GPU cluster 471 includes multiple GPU cores and cache memory. In another example, the multiple GPU cores are shader processors (SPs), each GPU core (or SP) having two thermal sensors. For example, each GPU core may include multiple thermal sensors to monitor the GPU core temperature. In another example, the multiple thermal sensors are connected to at least one thermal management controller.
[0080] In one example, the GPU cluster 471 includes a first central broadcast (CB) unit 473 and a graphics management unit (GMU) 474.
[0081] In one example, the GPU cluster 471 also includes a first thermal management controller 476 and a second thermal management controller 478. In one example, the first thermal management controller 476 and the second thermal management controller 478 are redundantly connected to each thermal sensor of the GPU cluster 471 in a cross-connect configuration. For example, each GPU core may include two thermal sensors for redundancy. In one example, there is a signal routing between each thermal sensor of each GPU core and the thermal management controller of the GPU cluster 471. In one example, the GPU cluster 471 includes graphics management unit (GMU) hardware executed by the first thermal management controller 411 and the second thermal management controller 412.
[0082] In one example, the first CB unit 473 is connected to a first thermal management controller 476 and a second thermal management controller 478 to receive digitized temperature data derived from each thermal sensor of each GPU core of the GPU cluster 471. In one example, the GMU 474 manages and controls the power and thermal resources used for the GPUSS 470.
[0083] In one example, the first thermal management controller 476 and the second thermal management controller 478 draw DC power from the core logic power rail (e.g., the VDD-GFX rail) and retain memory states in their registers from the memory power rail (e.g., the MXA) to save power during deep sleep. For example, cold temperature conditions (e.g., 0 degrees Celsius) can be monitored by a remote thermal sensor connected to the thermal management controllers in the AOSS 480 using a second CB unit 483.
[0084] In one example, an Interrupt Request (IRQ) signal can be used to route security alarms or error messages to the Security Island (SAIL) 485 subsystem. In another example, SAILSS can perform user-defined security policy actions, such as increasing fan speed or shutting down non-critical use cases upon receiving an alarm interruption, and performing a smooth software shutdown upon receiving an error interruption.
[0085] In one example, the application processor subsystem (APSS) 490 executes a user application. In one example, the APSS 490 can limit or interrupt the user application upon receiving an upper limit interrupt, lower limit interrupt, or critical interrupt. In one example, a second CB unit 483 is optional, and the thermal management controller can be directly coupled to the GMU 474.
[0086] Figure 5 An example detailed block diagram of a Neural Signal Processor (NSP) subsystem (NSPSS) 500 for a distributed thermal management system is illustrated. In one example, the distributed thermal management system places a thermal management controller in a distributed load with high current density and high heat dissipation, close to a local thermal sensor, such as the NSPSS 500. In another example, the distributed thermal management system connects other thermal sensors (e.g., remote thermal sensors) to the thermal management controller into a central load, such as an AOSS. In one example, the NSP subsystem 500 includes multiple NSP clusters. For example, each NSP cluster includes multiple NSP cores (i.e., individual processing units). For example, each NSP core may include multiple thermal sensors to monitor the NSP core temperature. In one example, multiple thermal sensors are connected to at least one thermal management controller.
[0087] In one example, NSPSS 500 includes a first NSP cluster 510 (e.g., a hexagonal vector extension unit) and a second NSP cluster 520 (a hexagonal matrix extension unit).
[0088] In one example, the first NSP cluster 510 includes multiple NSP cores and cache memory (e.g., Level 1 L1 cache memory). In another example, the first NSP cluster 510 also includes a first central broadcast (CB) unit 513 and a first local restriction management (LLM) unit 514.
[0089] In one example, the first NSP cluster 510 also includes a first thermal management controller 511 and a second thermal management controller 512. In one example, the first thermal management controller 511 and the second thermal management controller 512 are redundantly connected to each thermal sensor of the first NSP cluster 510 in a cross-connect configuration. For example, each NSP core may include multiple thermal sensors for redundancy. In one example, there is a signal routing between each thermal sensor in each NSP core and the thermal management controller of the first NSP cluster 510. In one example, the first NSP cluster 510 includes thermal limiting management hardware performed by the first thermal management controller 511 and the second thermal management controller 512.
[0090] In one example, the first CB unit 513 is connected to the first thermal management controller 511 and the second thermal management controller 512 to receive digitized temperature data derived from each thermal sensor in each NSP core of the first NSP cluster 510. In one example, the first CB unit 513 relays the digitized temperature data to the first LLM unit 514. That is, the thermal management controllers 511 and 512 receive temperature data from the thermal sensors to generate digitized temperature data based on the temperature data received from the thermal sensors.
[0091] In one example, if the digital temperature data indicates that a predetermined thermal limit has been exceeded (e.g., if the thermal sensor temperature is hotter than the maximum allowed temperature or colder than the minimum allowed temperature), the first LLM unit 514 performs a thermal management procedure. In one example, the first LLM unit 514 is also connected to other subsystem data, such as PMIC arbitrator data, voltage regulator manager (VRM) data, aggregate resource control (ARC) data, power domain controller (PDC) data, etc.
[0092] In one example, the first thermal management controller 511 and the second thermal management controller 512 draw DC power from the core logic power rail (e.g., the NSP_CX rail) and retain memory state in their registers from the memory power rail (e.g., MXA) to conserve power during deep sleep. For example, cold temperature conditions (e.g., 0 degrees Celsius) can be monitored by a remote thermal sensor connected to the thermal management controllers in the AOSS 560 using a third CB unit 563. In one example, a security alarm or error message can be routed to the Safety Island (SAIL) 550 subsystem using an interrupt request (IRQ) signal. In one example, the SAILSS can perform user-defined security policy actions, such as increasing fan speed or shutting down non-critical use cases upon receiving an alarm interrupt, and performing a smooth software shutdown upon receiving an error interrupt.
[0093] In one example, the application processor subsystem (APSS) 540 executes a user application. In one example, the APSS 540 can limit or interrupt the user application upon receiving an upper limit interrupt, lower limit interrupt, or critical interrupt. In one example, the first CB unit 513 is optional, and the thermal management controller can be directly coupled to the LLM 514.
[0094] In one example, the second NSP cluster 520 includes multiple NSP cores and cache memory (e.g., Level 1 L1 cache memory). In another example, the second NSP cluster 520 also includes a second Central Broadcast (CB) unit 523 and a second Local Limit Management (LLM) unit 524.
[0095] In one example, the second NSP cluster 520 also includes a third thermal management controller 521 and a fourth thermal management controller 522. In one example, the third thermal management controller 521 and the fourth thermal management controller 522 are redundantly connected to each thermal sensor of the second NSP cluster 520 in a cross-connect configuration. For example, each NSP core includes multiple thermal sensors for redundancy. For example, there is a signal routing between each thermal sensor in each NSP core and the thermal management controller of the second NSP cluster 520. In one example, the second NSP cluster 520 includes thermal limiting management hardware performed by the third thermal management controller 521 and the fourth thermal management controller 522.
[0096] In one example, the second CB unit 523 is connected to the third thermal management controller 521 and the fourth thermal management controller 522 to receive digitized temperature data derived from each thermal sensor in each NSP core of the second NSP cluster 520. In one example, the second CB unit 523 relays the digitized temperature data to the second LLM unit 524. That is, the thermal management controllers 521 and 522 receive temperature data from the thermal sensors to generate digitized temperature data based on the temperature data received from the thermal sensors.
[0097] In one example, if the digital temperature data indicates that a predetermined thermal limit has been exceeded (e.g., if the thermal sensor temperature is hotter than the maximum allowed temperature or colder than the minimum allowed temperature), the second LLM unit 524 performs a thermal management procedure. In one example, the second LLM unit 524 is also connected to other subsystem data, such as PMIC arbitrator data, voltage regulator manager (VRM) data, aggregate resource control (ARC) data, power domain controller (PDC) data, etc.
[0098] In one example, the third thermal management controller 521 and the fourth thermal management controller 522 draw DC power from the core logic power rail (e.g., the NSP_CX rail) and retain memory state in their registers from the memory power rail (e.g., the MXA rail) to save power during deep sleep. For example, cold temperature conditions (e.g., 0 degrees Celsius) can be monitored by a remote thermal sensor connected to the thermal management controller in the AOSS 560 using the third CB unit 563. In one example, a safety alarm or error message can be routed to the Safety Island (SAIL) 550 subsystem using an interrupt request (IRQ) signal. In one example, the SAILSS can perform user-defined safety policy actions, such as increasing fan speed or shutting down non-critical use cases upon receiving an alarm interrupt, and performing a smooth software shutdown upon receiving an error interrupt.
[0099] In one example, the Application Processor Subsystem (APSS) 540 executes a user application. In one example, the APSS 540 can limit or interrupt the user application upon receiving an upper limit interrupt, lower limit interrupt, or critical interrupt. In one example, the second CB unit 523 is optional, and the thermal management controller can be directly coupled to the LLM 524.
[0100] In one example, the distributed thermal management system includes management software for operation and control functions. For example, the management software may be initialized in an extensible bootloader (XBL). In one example, when any thermal sensor violates its corresponding temperature threshold, the thermal management controller generates upper limit interrupt signals, lower limit interrupt signals, 0°C interrupt signals, critical interrupt signals, maximum interrupt signals, and minimum interrupt signals to the software driver within the APSS. In one example, because any thermal sensor violates its upper limit temperature threshold, lower limit temperature threshold, or 0°C temperature threshold, the thermal management controller generates a safety alarm interrupt to the SAILSS. In one example, because any thermal sensor violates its critical temperature threshold, maximum temperature threshold, or minimum temperature threshold, or when any logic error is detected in the controller configuration register, the thermal management controller generates a safety error interrupt to the SAILSS.
[0101] In one example, the design of the distributed thermal management system takes into account the operation of the thermal combiner module and the voltage monitor (VMON) module.
[0102] Figure 6Example flowchart 600 illustrates a distributed thermal management system for a System-on-Chip (SOC). In one example, the SOC includes multiple subsystems. For example, the multiple subsystems may include an Always-On Subsystem (AOSS), a Graphics Processing Unit (GPU), a Central Processing Unit (CPU), a Neural Signal Processor (NSP), a Video Processor, a Memory Controller Unit, a Serial Data Bus, etc.
[0103] In block 610, a first thermal sensor located at a first subsystem location within the System-on-Chip (SOC) is used to sense a first ambient temperature and convert the first ambient temperature into a first telemetry signal. That is, the first thermal sensor located at a first subsystem location within the SOC is used to sense the first ambient temperature and convert the first ambient temperature into a first telemetry signal. In one example, redundant thermal sensors exist at the first subsystem location within the SOC. In one example, the first telemetry signal is monotonically correlated with the first ambient temperature. In one example, the first telemetry signal is linearly correlated with the first ambient temperature.
[0104] In block 620, a second thermal sensor at the location of the second subsystem with the SOC is used to sense the second ambient temperature and convert the second ambient temperature into a second telemetry signal. That is, a second thermal sensor at the location of the second subsystem with the SOC is used to sense the second ambient temperature and convert the second ambient temperature into a second telemetry signal. In one example, the location of the second subsystem is the same as the location of the first subsystem. In one example, the location of the second subsystem is different from the location of the first subsystem. In one example, the locations of the first and second subsystems are in the same subsystem among multiple subsystems of the SOC. In one example, the locations of the first and second subsystems are in two different subsystems among multiple subsystems of the SOC. In one example, redundant thermal sensors exist at the location of the second subsystem within the SOC. In one example, the second telemetry signal is monotonically correlated with the second ambient temperature. In one example, the second telemetry signal is linearly correlated with the second ambient temperature.
[0105] In block 630, a first telemetry signal from a first thermal sensor and a second telemetry signal from a second thermal sensor are received at the thermal management controller. That is, the thermal management controller receives both the first telemetry signal from the first thermal sensor and the second telemetry signal from the second thermal sensor. In one example, the thermal management controller is in the same subsystem among multiple subsystems of the SOC. In another example, the thermal management controller is in one of two different subsystems among multiple subsystems of the SOC.
[0106] In block 640, a first telemetry signal is converted into a first digital code and a second telemetry signal is converted into a second digital code at the thermal management controller. That is, the first telemetry signal is converted into a first digital code and the second telemetry signal is converted into a second digital code at the thermal management controller. In one example, the first digital code is a scaled representation of a first ambient temperature. In one example, the second digital code is a scaled representation of a second ambient temperature. In one example, the first digital code is a non-linear representation of the first ambient temperature. In one example, the second digital code is a non-linear representation of the second ambient temperature. In one example, the first digital code and the second digital code are uncompressed quantized versions of the first and second ambient temperatures, respectively. In one example, the first digital code and the second digital code are compressed quantized versions of the first and second ambient temperatures, respectively. For example, the compressed quantized version uses fewer bits than the uncompressed quantized version.
[0107] In block 650, the first and second digital codes are relayed to the Central Broadcast (CB) unit to generate the first and second broadcast messages. That is, the first and second digital codes are relayed to the Central Broadcast (CB) unit to generate the first and second broadcast messages. In one example, the CB unit conforms to a broadcast network protocol to transmit data. In one example, the CB unit is optional, and the thermal management controller may be directly coupled to the local limit management unit.
[0108] In block 660, a first broadcast message and a second broadcast message are transmitted to the local limit management unit to perform local thermal management on the first and second subsystem locations. That is, the first and second broadcast messages are transmitted to the local limit management unit to perform local thermal management on the first and second subsystem locations. In one example, local thermal management is independent of the centralized thermal management system used for the SOC. In one example, the local limit management unit receives auxiliary data from the centralized thermal management system for performing local thermal management. For example, auxiliary data includes power management integrated circuit (PMIC) arbitrator data, voltage regulator manager (VRM) data, aggregate resource control (ARC) data, power domain controller (PDC) data, temperature data, etc.
[0109] On the one hand, Figure 6 One or more steps in the process of providing a distributed thermal management architecture can be executed by one or more processors, which may include hardware, software, firmware, etc. For example, one or more processors can be used to execute software or firmware that is executing... Figure 6The steps required in the flowchart. Software should be interpreted broadly to mean instructions, instruction sets, code, code segments, program code, programs, subroutines, software modules, applications, software applications, software packages, routines, subroutines, objects, executable files, threads of execution, processes, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description languages, or others.
[0110] Software may reside on a computer-readable medium. The computer-readable medium may be a non-transitory computer-readable medium. Examples of non-transitory computer-readable media include magnetic storage devices (e.g., hard disks, floppy disks, magnetic stripes), optical disks (e.g., compact discs (CDs) or digital versatile discs (DVDs)), smart cards, flash memory devices (e.g., card, stick, or key drives), random access memory (RAM), read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), registers, removable disks, and any other suitable medium for storing software and / or instructions accessible and readable by a computer. By way of example, the computer-readable medium may also include a carrier wave, a transmit line, and any other suitable medium for transmitting software and / or instructions accessible and readable by a computer. The computer-readable medium may reside in a processing system, outside the processing system, or distributed across multiple entities including the processing system. The computer-readable medium may be implemented in a computer program product. For example, a computer program product may include a computer-readable medium within packaging material. The computer-readable medium may include software or firmware. Those skilled in the art will recognize how best to achieve the functionality described throughout this disclosure depends on the specific application and the overall design constraints imposed on the system as a whole.
[0111] Any circuitry included in the processor is provided merely as an example, and other components for performing the described functions may be included in various aspects of this disclosure, including, but not limited to, instructions stored in a computer-readable medium, or any other suitable means or components described herein and utilizing, for example, the processes and / or algorithms described herein with respect to the example flowcharts.
[0112] Within this disclosure, the term "exemplary" is used to mean "serving as an example, instance, or illustration." Any specific implementation or aspect described herein as "exemplary" is not necessarily to be construed as superior to or better than other aspects of this disclosure. Similarly, the term "aspect" does not require that all aspects of this disclosure include the features, advantages, or modes of operation discussed. The term "coupling" is used herein to refer to direct or indirect coupling between two objects. For example, if object A physically contacts object B, and object B contacts object C, objects A and C can still be considered coupled to each other, even if they are not in direct physical contact. The term "circuit" is used broadly, and it is intended to include both hardware implementations of electronic devices and conductors (where these electronic devices and conductors, when connected and configured, perform the functions described in this disclosure, without limitation on the type of electronic circuit) and software implementations of information and instructions (where these information and instructions, when executed by a processor, perform the functions described in this disclosure).
[0113] One or more of the components, steps, features, and / or functions illustrated in the accompanying drawings may be rearranged and / or combined into a single component, step, feature, or function, or embodied in several components, steps, or functions. Additional elements, components, steps, and / or functions may be added without departing from the novel features disclosed herein. The apparatus, devices, and / or components illustrated in the accompanying drawings may be configured to perform one or more of the methods, features, or steps described herein. The novel algorithms described herein can also be efficiently implemented in software and / or embedded in hardware.
[0114] It should be understood that the specific order or hierarchy of steps in the disclosed methods is an example of an exemplary process. It should be understood that the specific order or hierarchy of steps in these methods may be rearranged based on design preferences. The appended method claims present the elements of various steps in an exemplary order, but are not intended to limit them to the specific order or hierarchy presented, unless specifically stated herein.
[0115] The foregoing description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects. Therefore, the claims are not intended to be limited to the aspects shown herein, but are to be consistent with the full scope of the claims, wherein references to elements in the singular form are not intended to mean “one and only one,” but rather “one or more,” unless specifically stated otherwise. The term “some” refers to one or more unless specifically stated otherwise. The phrase “at least one of” referring to a list of items means any combination of those items, including individual members. As an example, “at least one of a, b, or c” is intended to cover: a; b; c; a and b; a and c; b and c; and a, b, and c. All structural and functional equivalents of the elements throughout the various aspects described herein that are known to or will later be known to a person skilled in the art are expressly incorporated herein by reference and are intended to be covered by the claims. Furthermore, nothing disclosed herein is intended to be offered to the public, whether or not such disclosure is explicitly stated in the claims. No element of the claim shall be construed under the provisions of 35 USC §112, paragraph 6, unless the element is explicitly stated using the phrase “for a component of” or, in the case of a method claim, the element is stated using the phrase “for a step of”.
[0116] Those skilled in the art will understand that various features of different implementations can be combined or modified and remain within the spirit and scope of this disclosure.
Claims
1. An apparatus for implementing thermal management, the apparatus comprising: Serial data bus; A central processing unit (CPU) coupled to the serial data bus; A graphics processing unit (GPU) coupled to the serial data bus; A neural signal processor (NSP) coupled to the serial data bus; An always-on subsystem (AOSS) is coupled to the serial data bus; The serial data bus, the CPU, the GPU, the NSP, and the AOSS are implemented on a system-on-a-chip (SoC). The CPU includes a first plurality of thermal sensors and a first plurality of controllers, and each of the first plurality of thermal sensors is coupled to each of the first plurality of controllers; The GPU includes a second plurality of thermal sensors and a second plurality of controllers, and each of the second plurality of thermal sensors is coupled to each of the second plurality of controllers; The NSP includes a third plurality of thermal sensors and a third plurality of controllers, and each of the third plurality of thermal sensors is coupled to each of the third plurality of controllers; and The AOSS includes a fourth plurality of thermal sensors and a fourth plurality of controllers, and each of the fourth plurality of thermal sensors is coupled to each of the fourth plurality of controllers.
2. The apparatus of claim 1, wherein the CPU further comprises a first plurality of central broadcast (CB) units, wherein each of the first plurality of CB units is coupled to each of the first plurality of controllers.
3. The apparatus of claim 2, wherein each of the first plurality of controllers is configured to generate digital temperature data based on thermal data received from each of the first plurality of thermal sensors.
4. The apparatus of claim 3, further comprising a first plurality of local limit management (LLM) units, wherein each of the first plurality of LLM units is coupled to each of the first plurality of CB units, and wherein each of the first plurality of LLM units is configured to perform a thermal management process based on whether the digitized temperature data has exceeded a predetermined thermal limit.
5. The apparatus of claim 2, wherein the GPU further comprises a second plurality of central broadcast (CB) units, wherein each of the second plurality of CB units is coupled to each of the second plurality of controllers.
6. The apparatus of claim 5, wherein each of the second plurality of controllers is configured to generate digital temperature data based on thermal data received from each of the second plurality of thermal sensors.
7. The apparatus of claim 6, further comprising a graphics management unit (GMU), wherein the GMU is coupled to each of the second plurality of CB units, and wherein the GMU is configured to perform a thermal management process based on whether the digitized temperature data has exceeded a predetermined thermal limit.
8. The apparatus of claim 5, wherein the NSP further comprises a third plurality of central broadcast (CB) units, wherein each of the third plurality of CB units is coupled to each of the third plurality of controllers.
9. The apparatus of claim 8, wherein each of the third plurality of controllers is configured to generate digital temperature data based on thermal data received from each of the third plurality of thermal sensors.
10. The apparatus of claim 9, further comprising a second plurality of local limit management (LLM) units, wherein each of the second plurality of LLM units is coupled to each of the third plurality of CB units, and wherein each of the second plurality of LLM units is configured to perform a thermal management process based on whether the digitized temperature data has exceeded a predetermined thermal limit.
11. The apparatus of claim 8, wherein the AOSS further comprises a fourth plurality of central broadcast (CB) units, wherein each of the fourth plurality of CB units is coupled to each of the fourth plurality of controllers.
12. The apparatus of claim 11, wherein each of the fourth plurality of controllers is configured to generate digital temperature data based on thermal data received from each of the fourth plurality of thermal sensors.
13. The apparatus of claim 12, further comprising: An audio processor coupled to the serial data bus; A camera processor, which is coupled to the serial data bus; A computer vision processor, the computer vision processor being coupled to the serial data bus; A video processor, which is coupled to the serial data bus; A converged Ethernet RDMA (RoCE) processor coupled to the serial data bus; and A Double Data Rate (DDR) memory controller unit, the Double Data Rate (DDR) memory controller unit being coupled to the serial data bus, One or more of the fourth plurality of thermal sensors are configured to measure the temperature of the audio processor, the camera processor, the computer vision processor, the video processor, and the RoCE processor; and one or more of the fourth plurality of thermal sensors are configured to measure the temperature of the DDR memory controller unit.
14. A method for implementing thermal management, the method comprising: A first thermal sensor located at a first subsystem location within a system-on-a-chip (SOC) is used to sense the first ambient temperature. The first ambient temperature is converted into a first telemetry signal; A second thermal sensor is used at the location of the second subsystem having the SOC to sense the second ambient temperature; The second ambient temperature is converted into a second telemetry signal; as well as The thermal management controller receives the first telemetry signal from the first thermal sensor and the second telemetry signal from the second thermal sensor.
15. The method of claim 14, wherein the first telemetry signal is monotonically correlated with the first ambient temperature.
16. The method of claim 14, wherein the first telemetry signal is linearly correlated with the first ambient temperature.
17. The method of claim 14, wherein the first subsystem location and the second subsystem location are in the same subsystem among the plurality of subsystems of the SOC.
18. The method of claim 14, further comprising converting the first telemetry signal into a first digital code at the thermal management controller, and converting the second telemetry signal into a second digital code.
19. The method of claim 18, further comprising relaying the first digital code and the second digital code to a central broadcast (CB) unit to generate a first broadcast message and a second broadcast message.
20. The method of claim 19, wherein the first digital code is a proportional representation of the first ambient temperature.
21. The method of claim 19, wherein the first digital code is a nonlinear representation of the first ambient temperature.
22. The method of claim 19, wherein the first digital code is an uncompressed quantized version of the first ambient temperature, and the second digital code is an uncompressed quantized version of the second ambient temperature.
23. The method of claim 19, wherein the first digital code is a compressed and quantized version of the first ambient temperature, and the second digital code is a compressed and quantized version of the second ambient temperature.
24. The method of claim 19, further comprising transmitting the first broadcast message and the second broadcast message to a local restriction management unit to perform local thermal management on the first subsystem location and the second subsystem location.
25. The method of claim 24, wherein the local thermal management is independent of the centralized thermal management system for the SOC, and the local restriction management unit is configured to receive auxiliary data from the centralized thermal management system for performing the local thermal management.
26. An apparatus for implementing thermal management, the apparatus comprising: A component for sensing a first ambient temperature using a first thermal sensor located at a first subsystem position within a system-on-a-chip (SOC); A component used to convert the first ambient temperature into a first telemetry signal; Components for sensing a second ambient temperature using a second thermal sensor located at the second subsystem position of the SOC; A component used to convert the second ambient temperature into a second telemetry signal; and A component for receiving a first telemetry signal from the first thermal sensor and a second telemetry signal from the second thermal sensor at a thermal management controller.
27. The apparatus of claim 26, further comprising: A component for converting the first telemetry signal into a first digital code and the second telemetry signal into a second digital code at the thermal management controller; A component for relaying the first digital code and the second digital code to the central broadcast (CB) unit to generate a first broadcast message and a second broadcast message; and A component for transmitting the first broadcast message and the second broadcast message to a local restriction management unit to perform local thermal management on the first subsystem location and the second subsystem location.
28. The apparatus of claim 27, further comprising a component for receiving auxiliary data from a centralized thermal management system for performing the local thermal management, wherein the local thermal management is independent of the centralized thermal management system for the SOC, and the local limit management unit is configured to perform the thermal management process based on whether digitized temperature data has exceeded a predetermined thermal limit.
29. A non-transitory computer-readable medium storing computer-executable code, the computer-executable code being operable on a device, the device including at least one processor and at least one memory coupled to the at least one processor, wherein the at least one processor is configured to implement thermal management, the computer-executable code comprising: Instructions for enabling a computer to use a first thermal sensor located at a first subsystem position within a system-on-a-chip (SOC) to sense a first ambient temperature; Instructions for enabling the computer to convert the first ambient temperature into a first telemetry signal; Instructions for instructing the computer to use a second thermal sensor located at the second subsystem position of the SOC to sense a second ambient temperature; Instructions for enabling the computer to convert the second ambient temperature into a second telemetry signal; as well as Instructions for enabling the computer to receive the first telemetry signal from the first thermal sensor and the second telemetry signal from the second thermal sensor at the thermal management controller.
30. The non-transitory computer-readable medium of claim 28, further comprising instructions for causing the computer to perform the following operations: The first telemetry signal is converted into a first digital code at the thermal management controller, and the second telemetry signal is converted into a second digital code. The first digital code and the second digital code are relayed to the Central Broadcast (CB) unit to generate a first broadcast message and a second broadcast message; and The first broadcast message and the second broadcast message are transmitted to the local restriction management unit to perform local thermal management on the first subsystem location and the second subsystem location.