Distributed thermal management architecture
The distributed thermal management architecture addresses routing challenges in centralized systems by deploying multiple controllers within the SOC, enhancing thermal management efficiency and reducing congestion, thus maintaining optimal operating conditions.
Patent Information
- Application Number
- JP2026508766
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-08-21
- Filing Date
- 2024-07-16
- Publication Date
- 2026-08-25
AI Technical Summary
Centralized thermal management systems face challenges such as routing congestion and design constraints due to a large number of thermal sensors, leading to inefficiencies and potential thermal management issues in electronic systems.
A distributed thermal management architecture with multiple thermal management controllers located at various subsystems within the system-on-a-chip (SOC), allowing for localized thermal management and reducing the need for extensive signal routing to a single central controller.
The distributed approach minimizes routing congestion, conserves power, and enhances thermal management efficiency by enabling localized temperature monitoring and control, thereby maintaining optimal operating conditions across the SOC.
Smart Images

Figure 2026528841000001_ABST
Abstract
Description
Technical Field
[0001] (Cross - Reference to Related Applications)
[0001] This patent application claims priority to U.S. Patent Application No. 18 / 452,880, filed on August 21, 2023, assigned to the assignee of this patent application, and incorporated herein by reference in its entirety as if fully set forth herein and for all applicable purposes.
[0002]
[0002] This disclosure generally relates to the field of thermal management, and more particularly, to distributed thermal management architectures.
Background Art
[0003]
[0003] Any electronic system requires some type of thermal management for proper operation. A portion of the electrical energy supplied to an electronic system is inevitably converted into thermal energy. Thermal energy changes the temperature gradients in the electronic system and its surrounding environment. Therefore, an efficient thermal management architecture is required for optimal performance.
Summary of the Invention
[0004]
[0004] The following presents a simplified summary of one or more aspects of this disclosure to provide a basic understanding of such aspects. This summary is not an extensive overview of all contemplated features of this disclosure, nor does it identify the main or critical elements of all aspects of this disclosure, nor does it define the scope of any or all aspects of this disclosure. Its sole purpose is to present in a simplified form some concepts of one or more aspects of this disclosure as an introduction to the more detailed description that follows.
[0005]
[0005] In one embodiment, the present disclosure provides a distributed thermal management architecture. Accordingly, an apparatus for performing thermal management, the apparatus 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 system on a chip. The CPU is implemented on a chip (SOC), and includes a first set of thermal sensors and a first set of controllers, with each of the first set of thermal sensors coupled to each of the first set of controllers. The GPU includes a second set of thermal sensors and a second set of controllers, with each of the second set of thermal sensors coupled to each of the second set of controllers. The NSP includes a third set of thermal sensors and a third set of controllers, with each of the third set of thermal sensors coupled to each of the third set of controllers. The AOSS includes a fourth set of thermal sensors and a fourth set of controllers, with each of the fourth set of thermal sensors coupled to each of the fourth set of controllers.
[0006]
[0006] In one example, the CPU further includes a first plurality of central broadcast (CB) units, each of the first plurality of CB units being coupled to each of the first plurality of controllers. In one example, each of the first plurality of controllers is configured to generate digitized 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, each of the first plurality of LLM units being coupled to each of the first plurality of CB units, and each of the first plurality of LLM units is configured to execute a thermal management procedure based on whether the digitized temperature data exceeds a predetermined thermal limit.
[0007]
[0007] In one example, the device further includes a second plurality of central broadcast (CB) units, each of the second plurality of CB units being coupled to each of the second plurality of controllers. In one example, each of the second plurality of controllers is configured to generate digitized 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), the GMU is coupled to each of the second plurality of CB units, and the GMU is configured to execute a thermal management procedure based on whether the digitized temperature data exceeds a predetermined thermal limit.
[0008]
[0008] In one example, the NSP further includes a third plurality of central broadcast (CB) units, each of the third plurality of CB units being coupled to each of the third plurality of controllers. In one example, each of the third plurality of controllers is configured to generate digitized temperature data based on thermal data received from each of the third plurality of thermal sensors. In one example, the device further includes a second plurality of local limit management (LLM) units, each of the second plurality of LLM units being coupled to each of the third plurality of CB units, and each of the second plurality of LLM units is configured to execute a thermal management procedure based on whether the digitized temperature data exceeds a predetermined thermal limit.
[0009]
[0009] In one example, AOSS further includes a fourth plurality of central broadcast (CB) units, each of the fourth plurality of CB units being coupled to each of the fourth plurality of controllers. In one example, each of the fourth plurality of controllers is configured to generate digitized temperature data based on thermal data received from each of the fourth plurality of thermal sensors.
[0010]
[0010] In one example, the device 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 over Converged Ethernet (RoCE) processor 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 the fourth plurality of thermal sensors are configured to measure the temperature of the audio, camera, computer vision, video, and RoCE processors, and one or more of the fourth plurality of thermal sensors are configured to measure the temperature of the DDR memory controller unit.
[0011]
[0011] Another aspect of the present disclosure provides a method for performing thermal management, the method comprising: sensing a first ambient temperature using a first thermal sensor at a first subsystem location within a system-on-a-chip (SOC) and transducing the first ambient temperature to a first telemetry signal; sensing a second ambient temperature using a second thermal sensor at a second subsystem location having the SOC and transducing the second ambient temperature to a second telemetry signal; and receiving a first telemetry signal from the first thermal sensor and a second telemetry signal from the second thermal sensor in a thermal management controller.
[0012]
[0012] In one example, the first telemetry signal is monotonically related to the first ambient temperature. In another example, the first telemetry signal is linearly related to the first ambient temperature. In one example, the first subsystem location and the second subsystem location are in the same subsystem among multiple subsystems of the SOC.
[0013]
[0013] In one example, the method further includes converting a first telemetry signal to a first digital code and a second telemetry signal to a second digital code in a thermal management controller. In one example, the method further includes 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. In one example, the first digital code is a proportional representation of the first ambient temperature. In one example, the first digital code is a nonlinear representation of the first ambient temperature.
[0014]
[0014] In one example, 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. In another example, the first digital code is a compressed quantized version of the first ambient temperature, and the second digital code is a compressed quantized version of the second ambient temperature.
[0015]
[0015] In one example, the method further includes sending a first broadcast message and a second broadcast message to a local limit management unit in order 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 the centralized thermal management system for the SOC, and the local limit management unit is configured to receive auxiliary data from the centralized thermal management system in order to perform local thermal management.
[0016]
[0016] Another aspect of the present disclosure provides an apparatus for implementing thermal management, the apparatus including means for sensing a first ambient temperature using a first thermal sensor at a first subsystem location within a system-on-chip (SOC) and means for transducing the first ambient temperature to a first telemetry signal; means for sensing a second ambient temperature using a second thermal sensor at a second subsystem location having the SOC and means for transducing the second ambient temperature to a second telemetry signal; and a thermal management controller including means for receiving a first telemetry signal from the first thermal sensor and a second telemetry signal from the second thermal sensor.
[0017]
[0017] In one example, the apparatus further includes, in a thermal management controller, means for converting a first telemetry signal into a first digital code and a second telemetry signal into a second digital code; means for relaying the first digital code and the second digital code to a central broadcast (CB) unit in order to generate a first broadcast message and a second broadcast message; and means for transmitting the first broadcast message and the second broadcast message to a local limit management unit in order to perform local thermal management for a first subsystem location and a second subsystem location.
[0018]
[0018] In one example, the device further includes means for receiving auxiliary data from a centralized thermal management system for performing local thermal management, the local thermal management being independent of the centralized thermal management system for the SOC, and the local limit management unit is configured to perform thermal management procedures based on whether the digitized temperature data exceeds a predetermined thermal limit.
[0019]
[0019] Another aspect of the present disclosure provides a non-temporary computer-readable medium for storing computer executable code that can run 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, and the computer executable code includes instructions for causing a computer to sense a first ambient temperature using a first thermal sensor at a first subsystem location within a system-on-a-chip (SOC); instructions for causing a computer to transducer the first ambient temperature into a first telemetry signal; instructions for causing a computer to sense a second ambient temperature using a second thermal sensor at a second subsystem location having the SOC; instructions for causing a computer to transducer the second ambient temperature into a second telemetry signal; and instructions for causing a thermal management controller to receive a first telemetry signal from the first thermal sensor and a second telemetry signal from the second thermal sensor.
[0020]
[0020] In one example, the non-temporary computer-readable medium further includes instructions to cause the computer to perform the following actions in a thermal management controller: convert a first telemetry signal into a first digital code and a second telemetry signal into a second digital code; relay the first digital code and the second digital code to a central broadcast (CB) unit in order to generate a first broadcast message and a second broadcast message; and transmit the first broadcast message and the second broadcast message to a local limit management unit in order to perform local thermal management for a first subsystem location and a second subsystem location.
[0021]
[0021] These and other aspects of the present disclosure will be better understood by considering the following embodiments for carrying out the invention. Other aspects, features, and embodiments of the present disclosure will become apparent to those skilled in the art by considering the following description of specific exemplary embodiments of the present invention together with the accompanying drawings. Features of the present invention may be considered with respect to certain specific embodiments and drawings below, but all embodiments of the present invention may include one or more of the advantageous features considered herein. In other words, one or more embodiments may be considered to have certain advantageous features, but one or more of such features may also be used according to the various embodiments of the present invention considered herein. Similarly, exemplary embodiments may be considered below as device, system, or method embodiments, but it should be understood that such exemplary embodiments can be implemented in a variety of devices, systems, and methods. [Brief explanation of the drawing]
[0022] [Figure 1]
[0022] An exemplary thermal management controller within a system-on-a-chip (SOC) is illustrated. [Figure 2]
[0023] An example of an externally distributed thermal management system will be explained. [Figure 3]
[0024] An example of an internal distributed thermal management system is illustrated. [Figure 4]
[0025] An exemplary detailed block diagram of a CPU subsystem (CPUSS) for an internal distributed thermal management system is illustrated. [Figure 4A]
[0026] An exemplary detailed block diagram of a graphical processing unit subsystem (GPUSS) for a distributed thermal management system is illustrated. [Figure 5]
[0027] An exemplary detailed block diagram of a neural signal processor (NSP) subsystem (NSPSS) for a distributed thermal management system is illustrated. [Figure 6]
[0028] An exemplary flowchart of a distributed thermal management system for a system-on-chip (SOC) is illustrated.
Best Mode for Carrying Out the Invention
[0023]
[0029] The detailed description set forth below in connection with the appended drawings is intended to describe various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The "Best Mode for Carrying Out the Invention" includes specific details intended to provide a thorough understanding of various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring such concepts.
[0024]
[0030] For the sake of simplicity, the method is illustrated and described as a series of actions; however, some actions may occur in a different order than the one illustrated and described herein, and / or simultaneously with other actions, according to one or more embodiments. Therefore, the method is not limited by the order of actions. For example, those skilled in the art will understand that the method may instead be represented as a series of interrelated states or events in a state diagram, for instance. Furthermore, not all illustrated actions may be required to implement the method according to one or more embodiments.
[0025]
[0031] Electronic systems are widespread in modern society, found in a variety of products and tools. These systems rely on electrical energy sources, such as alternating current (AC) energy systems or energy storage systems (e.g., batteries), to supply the energy necessary for their proper functioning. While some of the supplied energy is converted into a useful form, other portions, due to fundamental physical laws and properties (e.g., the second law of thermodynamics), result in unusable energy, such as thermal energy. Thermal energy tends to raise the ambient temperature of electronic systems, which can degrade their performance or limit their operability. Therefore, system designers require thermal management systems to maintain the ambient temperature within a desired temperature range.
[0026]
[0032] For example, a thermal management system may utilize thermal sensors to monitor temperatures across an electronic system and use the monitored temperatures from a thermal management controller. For instance, a thermal management system may adjust temperature ranges or gradients to maintain a desired thermal environment through active power management (e.g., activating or deactivating specific subsystems of an electronic system) or by engaging or disengaging thermal control elements (i.e., heaters, fans, fluid flow, etc.). Generally, a thermal management controller is coupled with multiple thermal sensors for temperature monitoring and multiple thermal control elements for temperature adjustment.
[0027]
[0033] For example, there are two types of thermal management systems: centralized thermal management systems and distributed thermal management systems. For instance, a centralized thermal management system has all thermal sensors routed to a thermal management controller located in one central location. For instance, a distributed thermal management system has thermal sensors routed to multiple thermal management controllers located in several distributed locations.
[0028]
[0034] Figure 1 illustrates an exemplary thermal management controller 100 within a system-on-chip (SOC). For example, the SOC includes an SOC die, for example, a substrate layer that serves as the foundation for the SOC. For example, the SOC die may include multiple electronic devices that implement the functions 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, which 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, thermal sensors may be implemented using the temperature-dependent properties of transistors. For example, thermal sensors may be implemented by monitoring a transistor voltage (e.g., base-emitter voltage, VBE) that is monotonically related to temperature. For example, thermal sensors may be implemented by using a thermistor (i.e., a resistor whose resistance depends on temperature).
[0029]
[0035] In one example, the main controller 183 selects a thermal sensor and sends it to the measurement module 185 to provide a temperature measurement, to the conversion module 186 to provide a digital conversion of the temperature measurement, and to the broadcast interface module 187 to generate a control broadcast message to 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 a number of interrupt status registers 192. In one example, the digital conversion of temperature measurement is sent to a sensor threshold module 191 that determines whether a critical shutdown state should be invoked and whether the power hold (PS_HOLD) signal 195 should be deasserted. In one example, the sensor threshold module 191 should assert an interrupt to the application processing subsystem (APSS) 193 and deassert an interrupt to the safety island subsystem (SAILSS) 194.
[0030]
[0036] In one example, the multiple thermal sensors include remote sensors (i.e., thermal sensors outside the thermal management controller 100) and embedded sensors (i.e., thermal sensors inside the thermal management controller 100). For example, the remote sensors are placed on the SOC die at various locations with high thermal density (e.g., hot spots). For example, locations with high thermal density may include the central processing unit (CPU), graphics processing unit (GPU), neural signal processor (NSP), etc.
[0031]
[0037] For example, the thermal management controller 100 may be instantiated within an always-on subsystem (AOSS). For instance, the AOSS is a part of the SOC that is continuously powered during normal operation (i.e., at 100% duty cycle). For example, the thermal management controller 100 may include multiple threshold registers for checking violations of each thermal sensor using maximum and minimum temperature thresholds to trigger a critical hardware shutdown, upper and lower thresholds for software control, and a critical high threshold to trigger a fast thermal response in software. For example, a critical hardware shutdown may deassert a power hold control signal (e.g., PS_HOLD signal) to a power management integrated circuit (PMIC) via a global clock controller (GCC). For example, deasserting the PS_HOLD signal to the PMIC (i.e., a low logic level) may initiate a reset or power down to protect the SOC from a thermal runaway condition. For example, asserting the PS_HOLD signal (i.e., a high logic level) may maintain an active power state in the SOC.
[0032]
[0038] In one example, a finite state machine (FSM), part of the main controller 183's circuitry, selects and polls each embedded sensor in a round-robin manner. In another example, an analog-to-digital converter (ADC), part of the measurement module 185 and the convert module 186, converts the measured temperature of each sensor into a digital code and stores the digital code in a control status register 184 in temperature units (e.g., Celsius, Fahrenheit, or Kelvin, or fractions thereof). In one example, the digital code is compared with a threshold register value 191, and an interrupt is generated by the interrupt status register 192 for any temperature violation. In another example, the digital code is simultaneously sent to the broadcast interface 187 so that the central broadcast unit 188 can broadcast the sensor temperature values to subsystems.
[0033]
[0039] In one example, the thermal management controller 100 operates continuously even when the SOC is in sleep mode.
[0034]
[0040] For 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 large number of corresponding signal (analog) routes from each thermal sensor to the thermal management controller 100. For example, with N remote sensors, the number of signal (analog) routes to each thermal management controller 100 could be equal to 2N+2. In one example, the large number of signal routes from each thermal sensor may lead to routing congestion near the AOSS input / output pads and pins. For example, the circuit floor plan may be fixed, resulting in wasted space around the AOSS where the thermal management controller 100 is located.
[0035]
[0041] In addition, routing congestion caused by a large number of signal routes can lead to difficulties in digital designs involving numerous networks, potentially resulting in pockets where available power grid resources are minimized. For example, with a large number of signal routes, multiple power grids may become unavailable. For example, with fewer available power grids, higher current density and higher circuit resistance may lead to higher supply voltage requirements to compensate for the higher circuit resistance. As a result, the design of thermal management systems may be pushed away from centralized architectures towards more decentralized architectures.
[0036]
[0042] For example, two architectural embodiments can be considered as alternatives to a centralized thermal management system architecture. For instance, the first architectural embodiment represents an externally distributed thermal management system architecture. For instance, the second architectural embodiment represents an internally distributed thermal management system architecture.
[0037]
[0043] Figure 2 illustrates an example of an external distributed thermal management system 200. For example, the external distributed thermal management system 200 includes several 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 express (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.
[0038]
[0044] In one example, the external distributed thermal management system 200 includes multiple distributed thermal management controllers, with the first controller 281 and the second controller 282 locally installed within the AOSS 210, the third controller 283, the fourth controller 284, the fifth controller 285, and the sixth controller 286 locally installed outside the CPU 230 (e.g., on the chiptop), the seventh controller 287 and the eighth controller 288 locally installed outside the NSP 240 (e.g., on the chiptop), and the ninth controller 221 and the tenth controller 222 locally installed outside the GPU 220 (e.g., on the chiptop).
[0039]
[0045] In one example, a locally installed distributed thermal management controller, along with the AOSS210, performs thermal management using thermal sensors that do not have a local distributed thermal management controller. For example, the first controller 281 and the second controller 282 may perform thermal management for the video processor 250, the DDR memory unit 260, and the serial data bus 270, as well as for thermal sensors in the audio subsystem, camera, and computer vision (CV) system.
[0040]
[0046] In one example, a distributed thermal management controller installed locally outside the CPU 230 (e.g., on the chiptop) performs local thermal management using thermal sensors built into the CPU 230. For example, a third controller 283, a fourth controller 284, a fifth controller 285, and a sixth controller 286 may perform local thermal management using thermal sensors within the CPU 230.
[0041]
[0047] In one example, a distributed thermal management controller installed locally outside the GPU220 (e.g., on the tiptop) performs local thermal management using thermal sensors built into the GPU220. For example, the ninth controller 221 and the tenth controller 222 perform local management using thermal sensors within the GPU220.
[0042]
[0048] In one example, a distributed thermal management controller installed locally outside the NSP240 (e.g., on the tip top) performs local thermal management using thermal sensors built into the NSP240. For example, the seventh controller 287 and the eighth controller 288 perform local thermal management using thermal sensors within the NSP240.
[0043]
[0049] For example, GPU220 could be multiple GPUs, each with multiple thermal management controllers locally installed outside of them. Similarly, NSP240 could be multiple NSPs, each with multiple thermal management controllers locally installed outside of them.
[0044]
[0050] Figure 3 shows an example of an internally distributed thermal management system 300. For example, the internally distributed thermal management system 300 includes several 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 express (PCIE) bus) 370. In one example, the internally distributed thermal management system 300 also includes an audio system, a camera, and a computer vision (CV) system.
[0045]
[0051] In one example, the internal distributed thermal management system 300 includes multiple distributed thermal management controllers, with the first controller 381 and the second controller 382 locally installed in the AOSS 310, the third controller 383, the fourth controller 384, the fifth controller 385, and the sixth controller 386 locally installed in the CPU 330, the seventh controller 387 and the eighth controller 388 locally installed in the NSP 340, and the ninth controller 321 and the tenth controller 322 locally installed in the GPU 320.
[0046]
[0052] In one example, a locally installed distributed thermal management controller within AOSS310 performs thermal management using thermal sensors that do not have a local distributed thermal management controller. For example, the first controller 381 and the second controller 382 may perform thermal management for the video processor 350 and DDR memory unit 360, as well as for thermal sensors in the audio system, camera, and computer vision (CV) system.
[0047]
[0053] In one example, a distributed thermal management controller installed locally within the CPU 330 performs local thermal management using thermal sensors built into the CPU 330. For example, the third controller 383, the fourth controller 384, the fifth controller 385, and the sixth controller 386 can perform local thermal management using thermal sensors within the CPU 330.
[0048]
[0054] In one example, a distributed thermal management controller installed locally within the GPU320 performs local thermal management using thermal sensors built into the GPU320. For example, the ninth controller 321 and the tenth controller 322 perform local management using thermal sensors within the GPU320.
[0049]
[0055] In one example, a distributed thermal management controller installed locally within the NSP340 performs local thermal management using thermal sensors built into the NSP340. For example, the seventh controller 387 and the eighth controller 388 perform local thermal management using thermal sensors within the NSP340.
[0050]
[0056] For example, GPU320 could be multiple GPUs, each with multiple thermal management controllers locally installed within them. Similarly, NSP340 could be multiple NSPs, each with multiple thermal management controllers locally installed within them.
[0051]
[0057] Figure 4 illustrates an exemplary detailed block diagram of a CPU subsystem (CPUSS) 400 for a distributed thermal management system. For example, a distributed thermal management system places a thermal management controller in a distributed load with high current density and high heat dissipation near local thermal sensors such as CPUSS. In one example, the distributed thermal management system connects other thermal sensors (e.g., remote thermal sensors) to the thermal management controller to form a central load such as 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 for monitoring the CPU core temperature. In one example, the multiple thermal sensors are connected to at least one thermal management controller.
[0052]
[0058] In one example, CPUSS400 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).
[0053]
[0059] In one example, the first CPU cluster 410 includes multiple CPU cores and cache memory (e.g., a first level L1 cache memory). In one example, the first CPU cluster 410 also includes a first central broadcast (CB) unit 413 and a first local limit management (LLM) unit 414.
[0054]
[0060] 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 in a cross configuration to each thermal sensor of the first CPU cluster 410. For example, each CPU core may include two thermal sensors for redundancy. In one example, there is a signal route 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 limit management hardware performed by the first thermal management controller 411 and the second thermal management controller 412.
[0055]
[0061] 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 and generate digitized temperature data based on the temperature data received from the thermal sensors.
[0056]
[0062] In one example, the first CB unit 413 relays the digitized temperature data to the first LLM unit 414. In one example, the first LLM unit 414 executes a thermal management procedure if the digitized temperature data indicates that a predetermined thermal limit has been exceeded (for example, if the thermal sensor temperature is higher than the maximum allowable temperature or lower than the minimum allowable temperature). In one example, the first LLM unit 414 is also connected to other subsystem data such as PMIC arbiter data, voltage regulator manager (VRM) data, aggregate resource control (ARC) data, and power domain controller (PDC) data.
[0057]
[0063] In one example, the first thermal management controller 411 and the second thermal management controller 412 obtain DC power from the core logic power rail (e.g., the APSS_CX rail) and store memory state in their registers from the memory power rail (e.g., MXA) to conserve power during minimum sleep. For example, a low temperature state (e.g., 0°C) may be monitored by a remote thermal sensor connected to the thermal management controller in AOSS460 using a fourth CB unit 463. In one example, safety warnings or error messages may be routed to the safety island (SAIL) 450 subsystem using an interrupt request (IRQ) signal. In one example, SAILSS may, upon receiving a warning interrupt, implement a user-defined safety policy action such as increasing fan speed or turning off non-critical use cases, and upon receiving an error interrupt, implement a software graceful shutdown.
[0058]
[0064] In one example, the Application Processor Subsystem (APSS) 440 runs the user application. In another example, the APSS 440 may limit or interrupt the user application when it receives an upper limit, lower limit, or critical interrupt.
[0059]
[0065] In one example, the second CPU cluster 420 includes multiple CPU cores and cache memory (e.g., a first level 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.
[0060]
[0066] 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 in a cross configuration to each thermal sensor of the second CPU cluster 420. For example, each CPU core includes two thermal sensors for redundancy. For example, there is a signal route between each thermal sensor of each CPU core and the thermal management controller of the second CPU cluster 420. In one example, the second CPU cluster 420 includes thermal limit management hardware performed by the third thermal management controller 421 and the fourth thermal management controller 422.
[0061]
[0067] 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 and generate digitized temperature data based on the temperature data received from the thermal sensors.
[0062]
[0068] In one example, the second LLM unit 424 executes a thermal management procedure if the digitized temperature data indicates that a predetermined thermal limit has been exceeded (for example, if the thermal sensor temperature is higher than the maximum allowable temperature or lower than the minimum allowable temperature). In one example, the second LLM unit 424 is also connected to other subsystem data such as PMIC arbiter data, voltage regulator manager (VRM) data, aggregated resource control (ARC) data, and power domain controller (PDC) data.
[0063]
[0069] In one example, the third and fourth thermal management controllers 421 and 422 obtain 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 minimum sleep. For example, a low temperature state (e.g., 0°C) may be monitored by a remote thermal sensor connected to the thermal management controller in AOSS460 using a fourth CB unit 463. In one example, safety warnings or error messages may be routed to the Safety Island (SAIL) 450 subsystem using an interrupt request (IRQ) signal. In one example, SAILSS may, upon receiving a warning interrupt, implement a user-defined safety policy action such as increasing fan speed or turning off non-critical use cases, and upon receiving an error interrupt, implement a software graceful shutdown.
[0064]
[0070] In one example, the Application Processor Subsystem (APSS) 440 runs the user application. In another example, the APSS 440 may limit or interrupt the user application when it receives an upper limit, lower limit, or critical interrupt.
[0065]
[0071] In one example, the third CPU cluster 430 includes multiple CPU cores and cache memory (e.g., a first level L1 cache memory). In another example, the third CPU cluster 430 also includes a third central broadcast (CB) unit 433 and a third local limit management (LLM) unit 434.
[0066]
[0072] 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 in a cross configuration to each thermal sensor of the third CPU cluster 430. For example, each CPU core may include two thermal sensors for redundancy. In one example, there is a signal route between each thermal sensor of each CPU core and the thermal management controller of the third CPU cluster 430. In one example, the third CPU cluster 430 includes thermal limit management hardware performed by the fifth thermal management controller 431 and the sixth thermal management controller 432.
[0067]
[0073] 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 and generate digitized temperature data based on the temperature data received from the thermal sensors.
[0068]
[0074] In one example, the third LLM unit 434 executes a thermal management procedure if the digitized temperature data indicates that a predetermined thermal limit has been exceeded (for example, if the thermal sensor temperature is higher than the maximum allowable temperature or lower than the minimum allowable temperature). In one example, the third LLM unit 434 is also connected to other subsystem data such as PMIC arbiter data, voltage regulator manager (VRM) data, aggregated resource control (ARC) data, and power domain controller (PDC) data.
[0069]
[0075] In one example, the fifth and sixth thermal management controllers 431 and 432 obtain DC power from the core logic power rail (e.g., APSS_CX rail) and retain memory state in their registers from the memory power rail (e.g., MXA) to conserve power during minimum sleep. For example, a low temperature state (e.g., 0°C) may be monitored by a remote thermal sensor connected to the thermal management controllers in AOSS460 using a third CB unit 463. In one example, safety warnings or error messages may be routed to the Safety Island (SAIL) 450 subsystem using an interrupt request (IRQ) signal. In one example, SAILSS may, upon receiving a warning interrupt, implement user-defined safety policy actions such as increasing fan speed or turning off non-critical use cases, and upon receiving an error interrupt, implement a software graceful shutdown. In one example, the Application Processor subsystem (APSS) 440 runs user applications.
[0070]
[0076] In one example, the APSS440 may limit or interrupt a user application upon receiving an upper limit, lower limit, or critical interrupt. In another example, the CB units (413, 423, 433, 463) are optional, and the thermal management controller may be directly coupled to the LLM unit.
[0071]
[0077] Figure 4A illustrates an exemplary detailed block diagram of a graphical processing unit subsystem (GPUSS) 470 for a distributed thermal management system. In one example, the distributed thermal management system places a thermal management controller on a distributed load with high current and high heat dissipation near local thermal sensors such as GPUSS470. In one example, the distributed thermal management system connects other thermal sensors (e.g., remote thermal sensors) to the thermal management controller to a central load such as AOSS. In one example, GPUSS470 includes a GPU cluster 471. In one example, the GPU cluster 471 includes multiple GPU cores and cache memory. In one example, the multiple GPU cores are shader processors (SPs) having two thermal sensors per GPU core (or shader processor (SP)). For example, each GPU core may include multiple thermal sensors for monitoring the GPU core temperature. In one example, the multiple thermal sensors are connected to at least one thermal management controller.
[0072]
[0078] In one example, the GPU cluster 471 includes a first central broadcast (CB) unit 473 and a graphics management unit (GMU) 474.
[0073]
[0079] 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 in a cross configuration to each thermal sensor of the GPU cluster 471. For example, each GPU core may include two thermal sensors for redundancy. In one example, there is a signal route 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 performed by the first thermal management controller 411 and the second thermal management controller 412.
[0074]
[0080] In one example, the first CB unit 473 is connected to the first thermal management controller 476 and the second thermal management controller 478 to receive digitized temperature data derived from each thermal sensor of each GPU core in the GPU cluster 471. In another example, the GMU 474 manages and controls the power and thermal resources for the GPUSS 470.
[0075]
[0081] In one example, the first thermal management controller 476 and the second thermal management controller 478 obtain DC power from the core logic power rail (e.g., the VDD-GFX rail) and store memory state in their registers from the memory power rail (e.g., MXA) to conserve power during minimum sleep. For example, a low temperature state (e.g., 0°C) may be monitored by a remote thermal sensor connected to the thermal management controller in the AOSS 480 using a second CB unit 483.
[0076]
[0082] In one example, a safety warning or error message may be routed to the Safety Island (SAIL) 485 subsystem using an Interrupt Request (IRQ) signal. In one example, SAILSS may, upon receiving a warning interrupt, perform a user-defined safety policy action such as increasing fan speed or turning off non-critical use cases, and upon receiving an error interrupt, perform a software graceful shutdown.
[0077]
[0083] In one example, the Application Processor Subsystem (APSS) 490 executes the user application. In another example, the APSS 490 may limit or interrupt the user application when it receives an upper limit, lower limit, or critical interrupt. In another example, the second CB unit 483 is optional, and the thermal management controller may be directly coupled to the GMU 474.
[0078]
[0084] Figure 5 illustrates an exemplary detailed block diagram of a neural signal processor (NSP) subsystem (NSPSS) 500 for a distributed thermal management system. In one example, the distributed thermal management system places a thermal management controller on a distributed load with high current and high heat dissipation near 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 to form a central load such as 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 for monitoring the NSP core temperature. In one example, the multiple thermal sensors are connected to at least one thermal management controller.
[0079]
[0085] For example, NSPSS500 includes a first NSP cluster 510 (e.g., a hexagon vector extension unit) and a second NSP cluster 520 (a hexagon matrix extension unit).
[0080]
[0086] In one example, the first NSP cluster 510 includes multiple NSP cores and cache memory (e.g., a first level L1 cache memory). In one example, the first NSP cluster 510 also includes a first central broadcast (CB) unit 513 and a first local limit management (LLM) unit 514.
[0081]
[0087] 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 in a cross configuration to each thermal sensor of the first NSP cluster 510. For example, each NSP core may include multiple thermal sensors for redundancy. In one example, there is a signal route between each thermal sensor of each NSP core and the thermal management controller of the first NSP cluster 510. In one example, the first NSP cluster 510 includes thermal limit management hardware performed by the first thermal management controller 511 and the second thermal management controller 512.
[0082]
[0088] 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 and generate digitized temperature data based on the temperature data received from the thermal sensors.
[0083]
[0089] In one example, the first LLM unit 514 executes a thermal management procedure if the digitized temperature data indicates that a predetermined thermal limit has been exceeded (for example, if the thermal sensor temperature is higher than the maximum allowable temperature or lower than the minimum allowable temperature). In another example, the first LLM unit 514 is also connected to other subsystem data such as PMIC arbiter data, voltage regulator manager (VRM) data, aggregate resource control (ARC) data, and power domain controller (PDC) data.
[0084]
[0090] In one example, the first thermal management controller 511 and the second thermal management controller 512 obtain DC power from a core logic power rail (e.g., NSP_CX rail) and store memory state in their registers from a memory power rail (e.g., MXA) to conserve power during minimum sleep. For example, a low temperature state (e.g., 0°C) may be monitored by a remote thermal sensor connected to the thermal management controller in AOSS 560 using a third CB unit 563. In one example, safety warnings or error messages may be routed to a Safety Island (SAIL) 550 subsystem using an interrupt request (IRQ) signal. In one example, SAILSS may, upon receiving a warning interrupt, implement a user-defined safety policy action such as increasing fan speed or turning off non-critical use cases, and upon receiving an error interrupt, implement a software graceful shutdown.
[0085]
[0091] In one example, the Application Processor Subsystem (APSS) 540 executes the user application. In another example, the APSS 540 may limit or interrupt the user application when it receives an upper limit, lower limit, or critical interrupt. In another example, the first CB unit 513 is optional, and the thermal management controller may be directly coupled to the LLM 514.
[0086]
[0092] In one example, the second NSP cluster 520 includes multiple NSP cores and cache memory (e.g., a first level L1 cache memory). In one example, the second NSP cluster 520 also includes a second central broadcast (CB) unit 523 and a second local limit management (LLM) unit 524.
[0087]
[0093] 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 in a cross configuration to each thermal sensor of the second NSP cluster 520. For example, each NSP core includes multiple thermal sensors for redundancy. For example, there is a signal route between each thermal sensor of each NSP core and the thermal management controller of the second NSP cluster 520. In one example, the second NSP cluster 520 includes thermal limit management hardware performed by the third thermal management controller 521 and the fourth thermal management controller 522.
[0088]
[0094] 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 and generate digitized temperature data based on the temperature data received from the thermal sensors.
[0089]
[0095] In one example, the second LLM unit 524 executes a thermal management procedure if the digitized temperature data indicates that a predetermined thermal limit has been exceeded (for example, if the thermal sensor temperature is higher than the maximum allowable temperature or lower than the minimum allowable temperature). In one example, the second LLM unit 524 is also connected to other subsystem data such as PMIC arbiter data, voltage regulator manager (VRM) data, aggregate resource control (ARC) data, and power domain controller (PDC) data.
[0090]
[0096] In one example, the third thermal management controller 521 and the fourth thermal management controller 522 obtain DC power from the core logic power rail (e.g., the NSP_CX rail) and store memory state in their registers from the memory power rail (e.g., MXA) to conserve power during minimum sleep. For example, a low temperature state (e.g., 0°C) may be monitored by a remote thermal sensor connected to the thermal management controller in AOSS 560 using a third CB unit 563. In one example, safety warnings or error messages may be routed to the Safety Island (SAIL) 550 subsystem using an interrupt request (IRQ) signal. In one example, SAILSS may, upon receiving a warning interrupt, implement a user-defined safety policy action such as increasing fan speed or turning off non-critical use cases, and upon receiving an error interrupt, implement a software graceful shutdown.
[0091]
[0097] In one example, the Application Processor Subsystem (APSS) 540 executes the user application. In another example, the APSS 540 may limit or interrupt the user application when it receives an upper limit, lower limit, or critical interrupt. In another example, the second CB unit 523 is optional, and the thermal management controller may be directly coupled to the LLM 524.
[0092]
[0098] In one example, a distributed thermal management system includes management software for operation and control functions. For example, the management software may be initialized in an eXtensible Boot Loader (XBL). In one example, a thermal management controller generates upper limit interrupt signals, lower limit interrupt signals, 0C interrupt signals, critical interrupt signals, maximum interrupt signals, and minimum interrupt signals to the software driver in APSS when any thermal sensor violates its respective temperature threshold. In one example, a thermal management controller generates a safety warning interrupt to SAILSS due to any thermal sensor violating its upper limit, lower limit, or 0C temperature threshold. In one example, a thermal management controller generates a safety error interrupt to SAILSS due to any thermal sensor violating its critical, maximum, or minimum temperature threshold, or when any logic error is detected in the controller configuration register.
[0093]
[0099] For example, the design of a distributed thermal management system takes into account the operation of thermal coupler modules and voltage monitor (VMON) modules.
[0094]
[0100] Figure 6 illustrates an exemplary flowchart 600 for a distributed thermal management system for a system-on-a-chip (SOC). In one example, the SOC includes multiple subsystems. For example, these 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, and so on.
[0095]
[0101] In block 610, a first thermal sensor is used at a first subsystem location within the system-on-chip (SOC) to sense a first ambient temperature and to transducer the first ambient temperature into a first telemetry signal. That is, the first ambient temperature is sensed at a first subsystem location within the SOC using a first thermal sensor and to transducer the first ambient temperature into a first telemetry signal. In one example, there are redundant thermal sensors at the first subsystem location within the SOC. In one example, the first telemetry signal is monotonically related to the first ambient temperature. In another example, the first telemetry signal is linearly related to the first ambient temperature.
[0096]
[0102] In block 620, a second thermal sensor is used to sense a second ambient temperature at a second subsystem location having a SOC, and this second ambient temperature is transduced to a second telemetry signal. That is, the second ambient temperature is sensed using a second thermal sensor at a second subsystem location having a SOC, and the second ambient temperature is transduced to a second telemetry signal. In one example, the second subsystem location is the same as the first subsystem location. In one example, the second subsystem location is different from the first subsystem location. In one example, the first and second subsystem locations are in the same subsystem among multiple subsystems of the SOC. In one example, the first and second subsystem locations are in two different subsystems among multiple subsystems of the SOC. In one example, there is a redundant thermal sensor at the second subsystem location within the SOC. In one example, the second telemetry signal is monotonically related to the second ambient temperature. In one example, the second telemetry signal is linearly related to the second ambient temperature.
[0097]
[0103] In block 630, the thermal management controller receives a first telemetry signal from a first thermal sensor and a second telemetry signal from a second thermal sensor. That is, the first telemetry signal from the first thermal sensor and the second telemetry signal from the second thermal sensor are received by the thermal management controller. 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.
[0098]
[0104] In block 640, the thermal management controller converts the first telemetry signal into a first digital code and the second telemetry signal into a second digital code. That is, in the thermal management controller, the first telemetry signal is converted into a first digital code, and the second telemetry signal is converted into a second digital code. In one example, the first digital code is a proportional representation of the first ambient temperature. In one example, the second digital code is a proportional representation of the second ambient temperature. In one example, the first digital code is a nonlinear representation of the first ambient temperature. In one example, the second digital code is a nonlinear representation of the second ambient temperature. In one example, the first and second digital codes are uncompressed quantized versions of the first and second ambient temperatures, respectively. In one example, the first and second digital codes are compressed quantized versions of the first and second ambient temperatures, respectively. For example, a compressed quantized version uses fewer bits than an uncompressed quantized version.
[0099]
[0105] In block 650, the first digital code and the second digital code 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 for transmitting data. In one example, the CB unit is optional, and the thermal management controller may be directly coupled to the local limit management unit.
[0100]
[0106] In block 660, a first broadcast message and a second broadcast message are sent to the local limit management unit to perform local thermal management for the first subsystem location and the second subsystem location. That is, the first broadcast message and the second broadcast message are sent to the local limit management unit to perform local thermal management for the first subsystem location and the second subsystem location. In one example, the local thermal management is independent of the centralized thermal management system for the SOC. In one example, the local limit management unit receives auxiliary data from the centralized thermal management system to perform local thermal management. For example, the auxiliary data may include power management integrated circuit (PMIC) arbiter data, voltage regulator manager (VRM) data, aggregated resource control (ARC) data, power domain controller (PDC) data, temperature data, etc.
[0101]
[0107] In one embodiment, one or more steps for providing the distributed thermal management architecture of Figure 6 may be performed by one or more processors, which may include hardware, software, firmware, etc. One or more processors may be used, for example, to run the software or firmware required to perform the steps in the flowchart of Figure 6. Software is broadly interpreted to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executable files, execution threads, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
[0102]
[0108] Software may reside on a computer-readable medium. A computer-readable medium may be a non-temporary computer-readable medium. Examples of non-temporary computer-readable media include magnetic storage devices (e.g., hard disks, floppy disks, magnetic strips), optical discs (e.g., compact discs (CDs) or digital versatile discs (DVDs)), smart cards, flash memory devices (e.g., cards, sticks, 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 that can be accessed and read by a computer. Computer-readable media may also include, for example, carriers, transmission lines, and any other suitable medium for transmitting software and / or instructions that can be accessed and read by a computer. Computer-readable media may reside within a processing system, outside of a processing system, or be distributed across multiple entities including a processing system. Computer-readable media may be embodied in a computer program product. For example, a computer program product may include computer-readable media within its packaging materials. Computer-readable media may include software or firmware. Those skilled in the art will recognize how to best implement the functions described throughout this disclosure, depending on the specific application and the overall design constraints imposed on the entire system.
[0103]
[0109] Any circuits included in the processor(s) are provided as examples only, and other means for performing the functions described may be included in various aspects of this disclosure, including, but are not limited to, instructions stored in a computer-readable storage medium, or any other suitable apparatus or means described herein that utilize, for example, the processes and / or algorithms described herein with respect to exemplary flowcharts.
[0104]
[0110] Within the scope of this disclosure, the term “exemplary” is used to mean “serving as an example, illustration, or demonstration.” No implementation or aspect described herein as “exemplary” should necessarily be construed as being preferable or advantageous to any other aspect of this disclosure. Similarly, the term “aspect” does not require that all aspects of this disclosure include the features, advantages, or modes of operation considered. The term “coupled” is used herein to refer to a direct or indirect coupling between two objects. For example, if object A is in physical contact with object B, and object B is in contact with object C, then object A and object C can still be considered coupled to each other, even if they are not in direct physical contact with each other. The terms “circuit” and “circuit mechanism” are used broadly and are intended to include both hardware implementations of electrical devices and conductors that, when connected and configured, enable the performance of the functions described herein, and software implementations of information and instructions that, when executed by a processor, enable the performance of the functions described herein, without being limited to the type of electronic circuit.
[0105]
[0111] One or more of the components, steps, features, and / or functions illustrated in the figures may be rearranged and / or combined into a single component, step, feature, or function, or may be 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. Apparatus, devices, and / or components illustrated in the figures may be configured to perform one or more of the methods, features, or steps described herein. Furthermore, the novel algorithms described herein may be efficiently implemented in software and / or incorporated into hardware.
[0106]
[0112] It should be understood that the specific order or hierarchy of steps in the disclosed method is an illustrative example of the process. It should be understood that the specific order or hierarchy of steps in the method may be rearranged based on design preferences. The appended claims present various step elements in a sample order and are not intended to be limited to the specific order or hierarchy presented unless specifically enumerated herein.
[0107]
[0113] The foregoing description is provided to enable any person skilled in the art to practice the various embodiments described herein. Various modifications to these embodiments will be readily apparent to a person skilled in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the claims are not limited to the embodiments shown herein, but should be given the entire scope consistent with the language of the claims, and references to elements in the singular are intended to mean "one or more" rather than "only one" unless otherwise specifically stated. Unless otherwise specifically stated, the term "several" refers to one or more. A phrase referring to an enumeration of items, "at least one of ~", refers to any combination of those items, including a single element. For 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 of various aspects described throughout this disclosure, whether known to those skilled in the art or to become known thereafter, are expressly incorporated by reference herein and intended to be encompassed by the claims. Furthermore, nothing disclosed herein is intended to be made public, regardless of whether such disclosure is expressly enumerated in the claims. No element of a claim should be construed under Section 112, paragraph 6 of the United States Patent Act unless that element is expressly described using the phrase “means for” or, in the case of a method claim, “steps for.”
[0108]
[0114] Those skilled in the art will understand that various features of different embodiments may be combined or modified and still remain within the spirit and scope of the present disclosure.
Claims
1. A device for implementing thermal management, wherein the device is Serial data bus and A central processing unit (CPU) coupled to the aforementioned serial data bus, A graphics processing unit (GPU) coupled to the aforementioned serial data bus, A neural signal processor (NSP) coupled to the serial data bus, The system comprises an always-on subsystem (AOSS) coupled to the serial data bus, wherein the serial data bus, the CPU, the GPU, the NSP, and the AOSS are implemented on a system-on-a-chip (SOC). The CPU comprises 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 comprises 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 comprises 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. The AOSS comprises 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.
2. The apparatus according to claim 1, wherein the CPU further comprises a first plurality of central broadcast (CB) units, and each of the first plurality of CB units is coupled to each of the first plurality of controllers.
3. The apparatus according to claim 2, wherein each of the first plurality of controllers is configured to generate digitized temperature data based on thermal data received from each of the first plurality of thermal sensors.
4. The apparatus according to claim 3, further comprising a first plurality of local limit management (LLM) units, each of the first plurality of LLM units being coupled to each of the first plurality of CB units, and each of the first plurality of LLM units being configured to execute a thermal management procedure based on whether the digitized temperature data exceeds a predetermined thermal limit.
5. The apparatus according to claim 2, wherein the GPU further comprises a second plurality of central broadcast (CB) units, each of the second plurality of CB units being coupled to each of the second plurality of controllers.
6. The apparatus according to claim 5, wherein each of the second plurality of controllers is configured to generate digitized temperature data based on thermal data received from each of the second plurality of thermal sensors.
7. The apparatus according to claim 6, further comprising a graphics management unit (GMU), wherein the GMU is coupled to each of the second plurality of CB units, and the GMU is configured to execute a thermal management procedure based on whether the digitized temperature data exceeds a predetermined thermal limit.
8. The apparatus according to claim 5, wherein the NSP further comprises a third plurality of central broadcast (CB) units, each of the third plurality of CB units being coupled to each of the third plurality of controllers.
9. The apparatus according to claim 8, wherein each of the third plurality of controllers is configured to generate digitized temperature data based on thermal data received from each of the third plurality of thermal sensors.
10. The apparatus according to claim 9, further comprising a second plurality of local limit management (LLM) units, each of the second plurality of LLM units being coupled to each of the third plurality of CB units, and each of the second plurality of LLM units being configured to execute a thermal management procedure based on whether the digitized temperature data exceeds a predetermined thermal limit.
11. The apparatus according to claim 8, wherein the AOSS further comprises a fourth plurality of central broadcast (CB) units, each of the fourth plurality of CB units being coupled to each of the fourth plurality of controllers.
12. The apparatus according to claim 11, wherein each of the fourth plurality of controllers is configured to generate digitized temperature data based on thermal data received from each of the fourth plurality of thermal sensors.
13. An audio processor coupled to the aforementioned serial data bus, A camera processor coupled to the serial data bus, A computer vision processor coupled to the aforementioned serial data bus, A video processor coupled to the aforementioned serial data bus, An RDMA over-converged Ethernet (RoCE) processor coupled to the serial data bus, The system further comprises a double data rate (DDR) memory controller unit coupled to the serial data bus, The apparatus according to claim 12, wherein one or more of the fourth plurality of thermal sensors are configured to measure the temperature of the audio, camera, computer vision, video, and RoCE processors, 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, wherein the method is A first ambient temperature is sensed using a first thermal sensor at the location of a first subsystem within a system-on-a-chip (SOC), Transducing the first ambient temperature to a first telemetry signal, At the location of the second subsystem having the SOC, the second ambient temperature is sensed using a second thermal sensor. Transducing the second ambient temperature to a second telemetry signal, A method for a thermal management controller, comprising receiving a first telemetry signal from a first thermal sensor and receiving a second telemetry signal from a second thermal sensor.
15. The method according to claim 14, wherein the first telemetry signal is monotonically related to the first ambient temperature.
16. The method according to claim 14, wherein the first telemetry signal is linearly related to the first ambient temperature.
17. The method according to claim 14, wherein the first subsystem location and the second subsystem location are located in the same subsystem among a plurality of subsystems of the SOC.
18. The method according to claim 14, further comprising converting the first telemetry signal into a first digital code and converting the second telemetry signal into a second digital code in the thermal management controller.
19. The method according to claim 18, further comprising relaying the first digital code and the second digital code to a central broadcast (CB) unit in order to generate a first broadcast message and a second broadcast message.
20. The method according to claim 19, wherein the first digital code is a proportional representation of the first ambient temperature.
21. The method according to claim 19, wherein the first digital code is a nonlinear representation of the first ambient temperature.
22. The method according to 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 according to claim 19, wherein the first digital code is a compressed quantized version of the first ambient temperature, and the second digital code is a compressed quantized version of the second ambient temperature.
24. The method according to claim 19, further comprising transmitting the first broadcast message and the second broadcast message to a local limit management unit in order to perform local thermal management for the first subsystem location and the second subsystem location.
25. The method according to claim 24, 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 receive auxiliary data from the centralized thermal management system for the execution of the local thermal management.
26. A device for implementing thermal management, wherein the device is A means for sensing a first ambient temperature using a first thermal sensor at a first subsystem location within a system-on-chip (SOC), Means for transducing the first ambient temperature to a first telemetry signal, In the second subsystem location having the SOC, means for sensing the second ambient temperature using a second thermal sensor, Means for transducing the second ambient temperature to a second telemetry signal, A thermal management controller comprising means for receiving a first telemetry signal from a first thermal sensor and a second telemetry signal from a second thermal sensor.
27. The thermal management controller includes means for converting the first telemetry signal into a first digital code and the second telemetry signal into a second digital code, Means for relaying the first digital code and the second digital code to a central broadcast (CB) unit in order to generate a first broadcast message and a second broadcast message, The apparatus according to claim 26, further comprising means for transmitting the first broadcast message and the second broadcast message to a local limit management unit in order to perform local thermal management for the first subsystem location and the second subsystem location.
28. The apparatus according to claim 27, further comprising means for receiving auxiliary data from a centralized thermal management system for the execution of 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 execute a thermal management procedure based on whether the digitized temperature data exceeds a predetermined thermal limit.
29. A non-temporary computer-readable medium for storing computer executable code that can run on a device comprising 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, and the computer executable code is A command to the computer to sense a first ambient temperature using a first thermal sensor at a first subsystem location within a system-on-a-chip (SOC), The computer is given an instruction to cause the first ambient temperature to be converted into a first telemetry signal, The computer is given a command to use a second thermal sensor to sense the second ambient temperature at the location of the second subsystem having the SOC, The computer is given an instruction to cause the second ambient temperature to be converted into a second telemetry signal, A non-temporary computer-readable medium that includes a command for the computer to cause the thermal management controller to receive the first telemetry signal from the first thermal sensor and the second telemetry signal from the second thermal sensor.
30. To the aforementioned computer, In the thermal management controller, the first telemetry signal is converted into a first digital code, and the second telemetry signal is converted into a second digital code. In order to generate the first broadcast message and the second broadcast message, the first digital code and the second digital code are relayed to the central broadcast (CB) unit, The non-temporary computer-readable medium according to claim 28, further comprising instructions to cause a local limit management unit to transmit the first broadcast message and the second broadcast message in order to perform local thermal management for the first subsystem location and the second subsystem location.