SYSTEM AND METHOD FOR THERMAL MANAGEMENT OF A WEARABLE COMPUTING DEVICE BASED ON PROXIMITY TO A USER - Patent application

By using sensors to determine user proximity, the thermal management system in WCDs adjusts policies to optimize performance and user experience by reducing thermal energy when not in contact, addressing the inefficiencies of existing touch temperature-based methods.

JP7624803B2Active Publication Date: 2025-01-31QUALCOMM INC
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2019541223
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2017-02-03
Filing Date
2018-02-01
Publication Date
2025-01-31
Estimated Expiration
2038-02-01

AI Technical Summary

Technical Problem

Wearable computing devices (WCDs) face challenges in managing thermal energy without compromising performance and user experience, as existing thermal management techniques are triggered by touch temperature rather than user proximity, leading to unnecessary performance sacrifices.

Method used

Implementing a system that uses sensors to determine user proximity and adjust thermal management policies based on this proximity, utilizing sensors such as heart rate monitors, pulse oximeters, and gyroscopes to manage thermal energy generation intelligently.

Benefits of technology

Optimizes thermal energy management in WCDs by enhancing performance and user experience by adjusting thermal policies based on user proximity, reducing unnecessary power consumption and heat dissipation when not in contact with the user.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007624803000001
    Figure 0007624803000001
  • Figure 0007624803000002
    Figure 0007624803000002
  • Figure 0007624803000003
    Figure 0007624803000003
Patent Text Reader

Abstract

Because the touch temperature of a wearable computing device (“WCD”) can be a minor factor in the user experience when the WCD is not being worn by a user, embodiments of the present solution seek to modify thermal management policies based on inferred user proximity. Exemplary embodiments monitor one or more signals from readily available sensors within the WCD that have a primary purpose other than measuring user proximity. Depending on the embodiment, the sensors may be selected from the group consisting of a heart rate monitor, a pulse monitor, an O2 sensor, a bioimpedance sensor, a gyroscope, an accelerometer, a temperature sensor, a pressure sensor, a capacitive sensor, a resistive sensor, and an optical sensor. Using signals generated by such sensors, the relative physical proximity of the WCD to the user may be inferred, and based on the user proximity state, thermal policies are either relaxed or strengthened.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] Wearable computing devices ("WCDs") are becoming increasingly prevalent in today's society. These devices, sometimes referred to as "wearable gadgets" or simply "wearables," may be worn for any number of primary reasons, but are commonly worn for health monitoring and fitness tracking.

[0002] One unique aspect of a WCD is that it does not have an active cooling device, such as a fan, as is frequently found in larger computing devices such as laptop and desktop computers. Instead of using fans, a WCD may rely on strategic placement of passive cooling devices and / or spatial configuration of electronic packaging such that two or more active, heat-generating components are not placed in close proximity to one another. When two or more heat-generating components are suitably spaced from one another within a WCD, the thermal energy generated from the operation of each component may not combine to cause temperatures that may adversely affect the user experience.

[0003] In reality, however, WCDs are necessarily very limited in size, and therefore space for components within the WCD is often at a premium. Thus, there is just usually not enough space within the WCD for engineers and designers to control temperature through spatial configuration or placement of passively cooled components. Thus, to reduce thermal energy generation within the WCD, engineers and designers often utilize one or more thermal mitigation techniques that essentially trade off WCD performance for a lower rate of thermal energy generation. The implementation of a thermal mitigation technique is typically triggered by a temperature measurement within the WCD.

[0004] In most WCDs today, the trigger temperature for applying thermal mitigation techniques is tied to the "touch temperature" of the device and not to the temperature of any given component within the WCD. That is, most WCDs today are capable of performing efficiently at temperature levels above those considered acceptable for contact with a user. Thus, WCD performance is often unnecessarily sacrificed by applying thermal mitigation techniques, especially when the WCD is not in close proximity to a user. Summary of the Invention [Problem to be solved by the invention]

[0005] Thus, what is needed in the art is a method and system for leveraging the proximity of a WCD to its user such that thermal energy generated by the WCD can be intelligently managed without unduly affecting the performance and functionality of the WCD. More specifically, what is needed in the art is a method and system that leverages, among other things, one or more sensors in the WCD from which physical contact (or lack of physical contact) with a user can be inferred, and intelligently manages thermal energy generation within the WCD in light of the inference. [Means for solving the problem]

[0006] Various embodiments of methods and systems are disclosed for leveraging user proximity measurements to determine thermal management policies implemented in a wearable computing device ("WCD"). In particular, in many WCDs, the "touch temperature" of the device's exterior surface limits the extent to which the WCD's performance capabilities can be utilized. Generally, when greater power is consumed by various components of a WCD, the resulting production of thermal energy can cause the exterior temperature of the WCD to adversely affect the user experience.

[0007] Because the touch temperature of a WCD may be an insignificant factor to the user experience when the WCD is not in physical proximity to the user, one such method for determining a thermal management policy based on user proximity measurements involves monitoring one or more signals from readily available sensors in the WCD that have a primary purpose other than measuring user proximity. Depending on the embodiment, the sensors may be selected from the group consisting of a heart rate monitor, a pulse monitor, an O2 sensor, a bioimpedance sensor, a gyroscope, an accelerometer, a temperature sensor, a pressure sensor, a capacitive sensor, a resistive sensor, and an optical sensor. Using signals generated by such sensors, the method may infer the relative physical proximity of the WCD to the user.

[0008] Using the recognized sensor readings and sensor type, the method may categorize one or more signals into predefined ranked categories and may determine a user proximity state for the WCD based on the monitored signal or signals in the highest ranked category. Then, based on the user proximity state, the method may set a first temperature threshold for triggering initiation of one or more thermal management policies, the first temperature threshold being associated with a first temperature sensor in the WCD. The method may then compare the first temperature threshold to temperature measurements received from the first temperature sensor. Based on the comparison, the method may evaluate the applicability of currently implemented thermal management policies and choose to either maintain those policies or modify them in light of the user proximity state.

[0009] For example, if the temperature threshold is higher than the actual measurement, a thermal management policy may be implemented that allows one or more components to increase power consumption, even though it results in more thermal energy being generated and dissipated, improving quality of service ("QoS"). Similarly, if the temperature threshold is lower or closer to the actual temperature measurement, thermal mitigation techniques may be implemented to reduce thermal energy generation, thereby worsening QoS, but improving the user experience by lowering the temperature of the WCD.

[0010] Advantageously, as one skilled in the art will recognize, by leveraging user proximity state determination to set a temperature threshold for a WCD, the QoS provided by the WCD can be optimized when the touch temperature of the WCD is not a critical factor for the user experience.

[0011] In the drawings, unless otherwise specified, like reference numbers refer to like parts throughout the various views. In the case of a reference number accompanied by a letter designation such as "102A" or "102B", the letter designation may distinguish between two similar parts or elements present in the same view. When the reference number is intended to encompass all parts having the same reference number in all views, the letter designation for the reference number may be omitted. [Brief description of the drawings]

[0012] [Figure 1] FIG. 1 is a functional block diagram illustrating one embodiment of an on-chip system for implementing proximity-based thermal management in a wearable computing device ("WCD"). [Diagram 2] FIG. 2 is a functional block diagram illustrating an exemplary and non-limiting embodiment of the WCD of FIG. 1 in the form of a wireless phone for implementing methods and systems for monitoring thermal conditions, adjusting temperature thresholds based on user proximity, and triggering the application of thermal mitigation measures based on the adjusted thresholds. [Figure 3A] FIG. 3 is a functional block diagram illustrating an example spatial organization of hardware for the chip shown in FIG. 2. [Figure 3B] 3 is a schematic diagram illustrating an example software architecture of the WCD of FIG. 2 for proximity-based thermal management. [Figure 4] 1. FIG. 4 is an example state diagram illustrating various proximity-based policy states that may trigger a temperature threshold set by a proximity determination module in the WCD of FIG. [Diagram 5]5 illustrates example thermal management policies and associated conditions that may be utilized by the thermal policy manager module in FIG. 1 and that depend on specific user proximity conditions as shown in FIG. 4. [Figure 6] 1 is a logic flow diagram illustrating a method for managing one or more thermal policies based on an indication of user proximity. [Figure 7] 11 is a logic flow diagram illustrating a sub-method or subroutine for determining the proximity of a WCD to a user. [Figure 8] 11 is a logic flow diagram illustrating a sub-method or subroutine for applying a thermal management policy. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0013] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any aspect described herein as "exemplary" is not necessarily to be construed as exclusive or preferred or advantageous over other aspects.

[0014] As used herein, the term "application" may also include files having executable content, such as object code, scripts, bytecode, markup language files, patches, etc. In addition, "applications" as referred to herein may also include files that are not inherently executable, such as documents that may need to be opened or other data files that need to be accessed.

[0015] As used herein, terms such as "component," "database," "module," "system," "thermal energy generating component," "processing component," and the like are intended to refer to computer-related entities, whether hardware, firmware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and / or a computer. By way of example, both an application running on a computing device and a computing device may be a component. One or more components may reside within a process and / or thread of execution, and a component may be localized on one computer and / or distributed among two or more computers. Additionally, these components may execute from various computer-readable media having various data structures stored thereon. A component may communicate with local and / or remote processes, such as by following a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, a distributed system, and / or with another system by signal across a network such as the Internet).

[0016] As used herein, the terms "central processing unit ("CPU")," "digital signal processor ("DSP")," "graphical processing unit ("GPU")," and "chip" are used interchangeably. Moreover, a CPU, DSP, GPU, or chip may be comprised of one or more different processing components, generally referred to herein as "cores." Additionally, to the extent that a CPU, DSP, GPU, chip, or core is a functional component within a WCD that consumes different levels of power to operate at different levels of functional efficiency, those skilled in the art will recognize that the use of these terms does not limit the application of the disclosed embodiments or their equivalents to the context of processing components within a WCD. That is, while many of the embodiments are described in the context of processing components, it is envisioned that thermal policies triggered by proximity determinations derived from various sensor measurements may be applied to any functional component that may be within a given WCD, including, but not limited to, modems, cameras, wireless network interface controllers ("WNICs"), displays, video encoders, peripheral devices, and the like.

[0017] It will be understood that the terms "thermal" and "thermal energy" may be used herein in reference to a device or component capable of generating or dissipating energy that may be measured in units of "temperature." It will thus be further understood that the term "temperature" contemplates any measurement that may indicate the relative warmth or lack of heat of a device or component that generates "thermal energy" relative to some standard value. For example, when two components are in "thermal" equilibrium, the "temperature" of the two components is the same.

[0018] As used herein, the terms "workload," "process load," and "process workload" are used interchangeably and generally refer to the processing burden or percentage of processing burden associated with a given processing component in a given embodiment. In addition to those defined above, a "processing component" or "thermal energy generating component" or "thermal aggressor" may be, without limitation, a central processing unit, a graphical processing unit, a core, a main core, a sub-core, a processing area, a hardware engine, etc., or any component that resides inside or outside an integrated circuit in a wearable computing device. Moreover, to the extent that terms such as "thermal load," "thermal distribution," "thermal signature," "thermal processing load," and the like refer to a workload burden that may be running on a thermal aggressor, those skilled in the art will recognize that the use of these "thermal" terms in the present disclosure may relate to process load distribution, workload burden, and power consumption.

[0019] As used herein, the terms "thermal mitigation technique," "thermal policy," "thermal management," "thermal mitigation tactics," and "throttling strategy" are used interchangeably. In particular, depending on the particular context of use, one of ordinary skill in the art will recognize that any of the terms listed in this paragraph may serve to describe hardware and / or software operable to increase performance at the expense of thermal energy production, decrease thermal energy production at the expense of performance, or alternate between such goals.

[0020] The term "wearable computing device" ("WCD") is used herein to denote any device that operates from a limited capacity power source, such as a battery. Although WCDs are most commonly recognized as wrist-worn health and fitness tracking devices that may be either "standalone" devices or devices that wirelessly synchronize with a mobile phone or a remote server to fully fulfill its intended functionality, WCDs are not limited to such wearable fitness devices. In fact, a WCD may be any device that can be worn on a user's body and equipped with sensors from which the user's physical proximity can be inferred. Thus, a WCD may be, among others, a cellular phone, a pager, a PDA, a smartphone, a navigation device, a wristwatch, a fitness tracker, a media player, a tech gadget (e.g., a smart watch, a health monitor, a smart glasses, an activity tracker, etc.), a combination of the above-mentioned devices.

[0021] Managing thermal energy generation within a WCD without unnecessarily affecting quality of service ("QoS") may be accomplished by leveraging one or more sensor measurements within the WCD that may be used to indicate, estimate, or infer the proximity of the WCD to its user, i.e., whether the WCD is being worn by the user. Advantageously, the WCD already includes a sensor module that includes various combinations of sensors and associated hardware and / or software for monitoring, recording, and rendering data related to one or more of, among others, heart rate, pulse, blood oxygen saturation, bioimpedance, global positioning coordinates, rotational motion (gyroscope), acceleration force (accelerometer), temperature, pressure, capacitance, resistance, motion, specific absorption rate, light, etc. This sensor module hardware and / or software is leveraged in some embodiments of the present solution to detect whether the WCD is placed within close proximity of a user, such as on the user's wrist or arm, as a trigger for determining and applying thermal management policies within the WCD.

[0022] In an embodiment of a system and method for proximity-based thermal management, a sensor module in a WCD for some primary purpose other than determining user proximity may be used by the WCD for a secondary purpose of triggering a throttling strategy that optimizes WCD performance conditional on an acceptable temperature range for user contact (or lack of user contact). Essentially, when the WCD is not being worn by its user, an embodiment of the present solution provides a reduced thermal algorithm that results in improved performance. Conversely, when the WCD is being worn, an embodiment of the present solution selects and executes a relatively more conservative thermal policy. Moreover, when the WCD is not being worn by its user, it is envisioned that an embodiment of the present solution may provide some tasks to be performed automatically, such as downloading or uploading files to a "cloud" or complementary portable computing device or remote server, synchronizing the WCD, updating software, or any task that does not necessarily require user intervention.

[0023] As generally described above, throttling strategies are various methods, applications, and / or algorithms that may be employed by a WCD to increase its performance through adjustment of hardware and / or software parameters, such as the clock speed of a central processing unit ("CPU"). Some throttling strategies may increase the performance of the WCD at the expense of increased thermal energy production, while some other throttling strategies may mitigate undesirable increases in operating temperature by reducing or prioritizing WCD performance.

[0024] In various embodiments, the sensor module may be used by the WCD to request the application of certain throttling strategies that increase the performance efficiency of the WCD when the WCD is not in direct contact with or in close proximity to a user. Conversely, embodiments may also utilize the sensor module to trigger the implementation of throttling strategies that operate to prevent the WCD from generating heat above a temperature threshold that is acceptable for human contact.

[0025] It is further contemplated that some embodiments of the present solution may include false positive logic implemented in software and / or hardware. For embodiments including false positive logic, a sensor reading or combination of sensor readings from which it may be inferred that the WCD is being worn by a user may be "overridden" by a complementary sensor reading indicating otherwise. For example, a GPS reading indicating that the WCD is changing location (and thus is being worn by a user) may be overridden by an accelerometer reading indicating that the WCD is stationary (as may occur when the WCD is in a moving object such as a car but is not being worn by a user).

[0026] In particular, although embodiments of the present solution are described herein in the context of a WCD being either "worn" or "not worn", i.e., in the context of a binary use case, the scope of the present solution is not limited to binary applications. That is, it is envisioned that exemplary embodiments of the present solution may utilize multi-stage detection logic that may be used to further optimize thermal policy selection and implementation. For example, some embodiments may further characterize the device state beyond simply whether the WCD is worn or not to include other states, such as, but not limited to, the WCD having just been donned by the user, the WCD having been worn for an extended period of time, the WCD having just been removed from the user's body, the WCD having been removed from the user's body for an extended period of time, etc. Based on the recognition or inference of a given stage or state from the logical reconciliation of multiple sensor readings, an embodiment of the present solution may further optimize mitigation policies beyond an embodiment that simply infers a "worn" or "not worn" state. For example, if a WCD utilizing multi-stage detection infers that the WCD has been worn by a user for a relatively long duration, thermal policy temperature thresholds that would otherwise be appropriate for short durations of user contact may be correspondingly lowered. Or, as another example, if a WCD utilizing multi-stage detection infers that the WCD has just been removed from direct contact with a user, it may increase performance thresholds or implement a waiting period before beginning to perform some automated task.

[0027] 1 is a functional block diagram illustrating an exemplary embodiment of an on-chip system 102 for proximity-based thermal management in a wearable computing device 100. To set temperature thresholds for triggering application of one or more thermal mitigation techniques, the on-chip system 102 may utilize temperature sensor 157 and various sensors in sensor module 24 for detecting the proximity of WCD 100 to a user and measuring temperatures associated with processing component 110. Advantageously, by defining and updating allowable temperature thresholds based on the proximity of WCD 100 to a user, the QoS experienced by a user of the WCD may be optimized when not worn by avoiding unnecessary throttling of CPU 110 triggered by pre-set overly constrained temperature thresholds.

[0028] Generally, the system employs two main modules, which in some embodiments may be included in a single module: (1) a proximity determination ("PD") module 26 for determining the WCD's state of proximity to the user and adjusting temperature thresholds in light of the determined state of proximity, and (2) a thermal policy manager ("TPM") module 101 for implementing a throttling strategy based on temperature thresholds set by the PD module 26. Advantageously, system and method embodiments including the two main modules leverage sensor data from which user proximity may be inferred to exploit opportunities for processing components 110 within WCD 100 to consume more power, and therefore generate more thermal energy, when touch temperature, i.e., the temperature of the exterior of WCD 100 exposed to the user, is not a significant or relevant factor in the user experience.

[0029] To recognize user proximity conditions, the PD module 26 may receive signals from the monitoring module 114 in communication with one or more sensors associated with the sensor module 24. The sensors in the sensor module 24 may include, but are not limited to, sensors configured to measure heart rate, pulse rate, blood oxygen saturation, bioimpedance, global positioning coordinates, rotational motion (gyroscope), acceleration force (accelerometer), temperature, pressure, capacitance, resistance, motion, specific absorption rate, and light.

[0030] Some embodiments of sensors in sensor module 24 may be configured to emit an electromagnetic field and recognize disturbances in the field that indicate user proximity to WCD 100. Similarly, other sensors in sensor module 24 may generate electromagnetic transmissions (e.g., infrared) and recognize return transmissions that reflect from a nearby user. Still other embodiments may utilize a gyroscope or accelerometer in sensor module 24 to infer a user's presence based on movement of WCD 100. Still other embodiments may utilize a pulse oximeter in sensor module 24 to infer a user's presence based on recognition of blood oxygen saturation levels and / or other plethysmographic data, such as pulse rate.

[0031] Returning to the example of FIG. 1, upon receiving signals from one or more sensors of sensor module 24 from monitoring module 114, PD module 26 may prioritize readings from the various sensors based on a predefined ranking scheme. In light of the ranking, PD module 26 may then apply rules to determine whether WCD 100 is being worn by a user (i.e., to determine the “user proximity state” of the WCD). For example, an exemplary rule may require that if a pulse oximeter is associated with sensor module 24 and identified by monitoring module 114 as “online,” PD module 26 determine the user proximity state solely based on the value of the readings generated by the pulse oximeter. As another example, an exemplary rule may require that PD module 26 determine the user proximity state based on “if / then” logic that takes into account a combination of readings from multiple sensors associated with sensor module 24.

[0032] Using predefined rules that assign weighted values ​​to readings from sensors associated with sensor module 24 depending on the type of sensor and its output, PD module 26 may conclude that WCD 100 is not in close proximity to a user under some scenarios. In particular, when WCD 100 is not in physical contact with a user, the touch temperature of WCD 100 is not a significant factor in the user experience in the short term. Thus, while WCD 100 is being worn, the various processing cores 222, 224, 226, 228 of multi-core processing component 110 may increase their processing power to provide higher QoS since the touch temperature threshold is not a primary determinant for the acceptable level of thermal energy generation in the short term at hand, even though increased thermal energy dissipation may cause the touch temperature of WCD 100 to exceed a default threshold deemed acceptable for exposure to a user.

[0033] Returning to the exemplary scenario of a user proximity state indicating that the user is physically away from WCD 100, PD module 26 may communicate with TPM module 101 to override or adjust default temperature thresholds associated with the allowable touch temperature of WCD 100. In adjusting the temperature thresholds, PD module 26 may set new higher temperature thresholds associated with the temperature limits of one or more components of WCD 100. TPM module 101 may then receive temperature readings from monitoring module 114 indicative of temperature levels sensed by sensor 157, which may be associated with a surface temperature of WCD 100, and / or with one or more of various processing components 222, 224, 226, 228, individually or collectively. Based on the temperature readings from sensor 157 and the new higher temperature thresholds set by PD module 26, TPM 101 may implement thermal management techniques to optimize processing performance in light of thermal energy dissipation.

[0034] 2 is a functional block diagram illustrating an exemplary and non-limiting embodiment of the WCD 100 of FIG. 1 in the form of a wireless phone for implementing a method and system for monitoring thermal conditions, adjusting temperature thresholds based on user proximity, and triggering application of thermal mitigation strategies based on the adjusted thresholds. In particular, the embodiment of the WCD 100 illustrated in FIG. 2 is for illustrative purposes only and is not intended to suggest that all WCDs are in the form of a wireless phone or include all of the various components illustrated in the exemplary embodiment of FIG. 2. In fact, it is envisioned that most WCDs that form part of an embodiment of the present solution will include some subset of the components and associated functionality suggested by the embodiment of FIG. 2. As explained above, the WCD 100 may be in the form of a wireless phone in nature, but may also take other forms, such as, but not limited to, a wearable tech gadget in the form of a smart watch, or a health monitor, or smart glasses, or an activity tracker, or a fitness device, or the like.

[0035] As shown, WCD 100 includes an on-chip system 102 including a multi-core central processing unit ("CPU") 110 and an analog signal processor 126 coupled together. CPU 110 may include a zeroth core 222, a first core 224, and an Nth core 230, as will be understood by those skilled in the art. Additionally, a digital signal processor ("DSP") may be employed in place of CPU 110, as will be understood by those skilled in the art.

[0036] Generally, the TPM module 101 may be responsible for monitoring and applying thermal policies that may help the WCD 100 manage thermal conditions and / or thermal loads and avoid encountering adverse thermal conditions, such as reaching a critical temperature, while maintaining a high level of functionality.

[0037] 2 also shows that WCD 100 may include a monitoring module 114. The monitoring module 114 communicates with a number of operational sensors (e.g., thermal sensor 157) distributed throughout the on-chip system 102, with the CPU 110 of WCD 100, and with the TPM module 101. The monitoring module 114 may also monitor signals generated by sensors in the sensor module 24 and transmit the signals or data representative of the signals to the PD module 26. Sensor readings from the sensor module 24 may be used to determine or infer a user's proximity to the WCD 100. The TPM module 101 may work with the monitoring module 114 to identify adverse thermal conditions relative to temperature thresholds set by the PD module 26 and apply one or more thermal mitigation techniques to manage thermal aggressors within the chip 102.

[0038] 2, the display controller 128 and the touchscreen controller 130 are coupled to the digital signal processor 110. A touchscreen display 132, external to the on-chip system 102, is coupled to the display controller 128 and the touchscreen controller 130.

[0039] The WCD 100 may further include a video encoder 134, for example, a phase-inverting line ("PAL") encoder, a sequential color memory ("SECAM") encoder, a National Television Standards Committee ("NTSC") encoder, or any other type of video encoder 134. The video encoder 134 is coupled to the multi-core central processing unit ("CPU") 110. The video amplifier 136 is coupled to the video encoder 134 and the touch screen display 132. The video port 138 is coupled to the video amplifier 136. As shown in FIG. 2, a universal serial bus ("USB") controller 140 is coupled to the CPU 110. Also, a USB port 142 is coupled to the USB controller 140. The memory 112 and a subscriber identity module ("SIM") card 146 may also be coupled to the CPU 110. Additionally, as shown in FIG. 2, a digital camera 148 may be coupled to the CPU 110. In an exemplary embodiment, the digital camera 148 is a charge-coupled device ("CCD") camera or a complementary metal-oxide semiconductor ("CMOS") camera.

[0040] As further shown in FIG. 2, a stereo audio codec 150 may be coupled to the analog signal processor 126. Additionally, an audio amplifier 152 may be coupled to the stereo audio codec 150. In an exemplary embodiment, a first stereo speaker 154 and a second stereo speaker 156 are coupled to the audio amplifier 152. FIG. 2 shows that a microphone amplifier 158 may also be coupled to the stereo audio codec 150. Additionally, a microphone 160 may be coupled to the microphone amplifier 158. In certain embodiments, a frequency modulation ("FM") radio tuner 162 may be coupled to the stereo audio codec 150. Also, an FM antenna 164 is coupled to the FM radio tuner 162. Additionally, a stereo headphone 166 may be coupled to the stereo audio codec 150.

[0041] FIG. 2 further illustrates that a radio frequency ("RF") transceiver 168 may be coupled to the analog signal processor 126. An RF switch 170 may be coupled to the RF transceiver 168 and an RF antenna 172. As shown in FIG. 2, a keypad 174 may be coupled to the analog signal processor 126. Also, a mono headset with microphone 176 may be coupled to the analog signal processor 126. Additionally, a vibrator device 178 may be coupled to the analog signal processor 126. FIG. 2 also illustrates that a power source 180, e.g., a battery, is coupled to the on-chip system 102. In certain aspects, the power source includes a rechargeable DC battery or a DC power source derived from an AC-DC converter connected to an alternating current ("AC") power source.

[0042] The CPU 110 may also be coupled to one or more internal on-chip thermal sensors 157A, as well as one or more external off-chip thermal sensors 157B. The on-chip thermal sensors 157A may comprise one or more proportional to absolute temperature ("PTAT") temperature sensors based on a vertical PNP structure and typically dedicated to complementary metal oxide semiconductor ("CMOS") very large scale integrated ("VLSI") circuits. The off-chip thermal sensors 157B may comprise one or more thermistors. The thermal sensors 157 may generate a voltage drop that is converted to a digital signal using an analog-to-digital converter ("ADC") controller 103 (see FIG. 3A). However, other types of thermal sensors 157 may be employed without departing from the scope of the present invention.

[0043] In addition to being controlled and monitored by the ADC controller 103, the thermal sensors 157 may also be controlled and monitored by one or more TPM modules 101. The TPM modules may comprise software executed by the CPU 110. However, the TPM modules 101 may also be formed of hardware and / or firmware without departing from the scope of the present invention. The TPM modules 101 may be responsible for monitoring and applying thermal policies that may be triggered by any combination of signals generated by the sensors 157, 24. For example, the TPM module 101 may, in some embodiments, compare an operating temperature measured by the sensor 157A to a temperature threshold determined from a proximity signal generated by a sensor associated with the sensor module 24 and apply a thermal management policy based on the comparison. In other embodiments, the TPM module 101 may compare a "touch temperature" measurement taken by the sensor 157B to a temperature threshold determined from a proximity signal generated by a sensor of the sensor module 24 and apply a thermal management policy based on the comparison that functions to mitigate thermal energy generation. In particular, application of thermal management and / or mitigation policies by TPM module 101 may help WCD 100 avoid critical temperatures while maintaining a high level of functionality.

[0044] Similarly, the PD module 26 may comprise software executed by the CPU 110. However, the PD module 26 may also be formed from hardware and / or firmware without departing from the scope of the present invention.

[0045] Returning to FIG. 2 , touch screen display 132, video port 138, USB port 142, camera 148, first stereo speaker 154, second stereo speaker 156, microphone 160, FM antenna 164, stereo headphones 166, RF switch 170, RF antenna 172, keypad 174, mono headset 176, vibrator 178, thermal sensor 157B, proximity sensor module 24, and power supply 180 are external to on-chip system 102. However, it should be understood that monitoring module 114 may also receive one or more instructions or signals from one or more of these external devices, via analog signal processor 126 and CPU 110, to assist in real-time management of resources operable on WCD 100. Additionally, it will be understood that one or more of these devices shown as external to on-chip system 102 in the exemplary embodiment of WCD 100 in FIG. 2 may be present on chip 102 in other exemplary embodiments. Although docking station 182 is shown as being off-chip, it will be understood by those skilled in the art that docking station 182 may be in communication with chip 102 only when WCD 100 is physically housed by docking station 182. Additionally, as those skilled in the art will appreciate, docking station 182 may be configured to house WCD 100 such that one or more external devices, such as, but not limited to, a keyboard, monitor, mouse, printer, etc., may be utilized by WCD 100 for the benefit of its user.

[0046] In certain aspects, one or more of the method steps described herein may be performed by executable instructions and parameters stored in memory 112 that form one or more of TPM module 101 and PD module 26. These instructions that form TPM module 101 and PD module 26 may be executed by CPU 110, analog signal processor 126, or another processor in addition to ADC controller 103 to perform the methods described herein. Additionally, processor 110, 126, memory 112, instructions stored therein, or a combination thereof may function as a means for performing one or more of the method steps described herein.

[0047] 3A is a functional block diagram illustrating an exemplary spatial configuration of hardware for the chip 102 shown in FIG. 2. According to this exemplary embodiment, the application CPU 110 is located in the far left region of the chip 102, while the modem CPUs 168, 126 are located in the far right region of the chip 102. The application CPU 110 may comprise a multi-core processor including a zeroth core 222, a first core 224, and an Nth core 230. The application CPU 110 may be executing (when embodied in software) or may include the TPM module 101A and / or the PD module 26A (when embodied in hardware). The application CPU 110 is further illustrated as including an operating system ("O / S") module 207 and a monitoring module 114. Further details regarding the monitoring module 114 are described below with respect to FIG. 3B.

[0048] The application CPU 110 may be coupled to one or more phase-locked loops ("PLLs") 209A, 209B located adjacent to the application CPU 110 in the left region of the chip 102. Adjacent to the PLLs 209A, 209B and below the application CPU 110 may be an analog-to-digital ("ADC") controller 103, which may include its own thermal policy manager 101B and / or PD module 26B, working in conjunction with the main modules 101A, 26A of the application CPU 110.

[0049] The thermal policy manager 101B of the ADC controller 103 may be responsible for monitoring and tracking multiple thermal sensors 157 that may be provided “on-chip” of 102 and “off-chip” of 102. The on-chip or internal thermal sensors 157A may be located in various locations and may be associated with thermal aggressors in close proximity to that location.

[0050] As a non-limiting example, the first internal thermal sensor 157A1 may be located in a central area at the top of the chip 102 between the application CPU 110 and the modem CPU 168, 126 and adjacent to the internal memory 112. The second internal thermal sensor 157A2 may be located below the modem CPU 168, 126 and in an area on the right side of the chip 102. This second internal thermal sensor 157A2 may also be located between the advanced reduced instruction set computer ("RISC") instruction set machine ("ARM") 177 and the first graphics processor 135A. A digital-to-analog controller ("DAC") 173 may be located between the second internal thermal sensor 157A2 and the modem CPU 168, 126.

[0051] A third internal thermal sensor 157A3 may be located between the second graphics processor 135B and the third graphics processor 135C and in a far right region of the chip 102. A fourth internal thermal sensor 157A4 may be located in a far right region of the chip 102 and below the fourth graphics processor 135D. A fifth internal thermal sensor 157A5 may be located in a far left region of the chip 102 and adjacent to the PLL 209 and the ADC controller 103.

[0052] One or more external thermal sensors 157B may also be coupled to the ADC controller 103. A first external thermal sensor 157B1 may be located off-chip and adjacent to the upper right quadrant of the chip 102, which may include the modem CPUs 168, 126, the ARM 177, and the DAC 173. A second external thermal sensor 157B2 may be located off-chip and adjacent to the lower right quadrant of the chip 102, which may include the third graphics processor 135C and the fourth graphics processor 135D. In particular, one or more of the external thermal sensors 157B may be utilized to indicate the touch temperature of the WCD 100, i.e., the temperature that may be experienced by a user touching the WCD 100.

[0053] Those skilled in the art will recognize that various other spatial configurations of the hardware shown in Figure 3A may be implemented without departing from the scope of the present invention. Figure 3A also illustrates one exemplary spatial configuration and shows how the ADC controller 103 with the main TPM module 101A and the main PD module 26A, as well as its TPM module 101B and PD module 26B, may recognize thermal conditions that vary with the exemplary spatial configuration shown in Figure 3A, may compare temperature thresholds required by user proximity conditions with operating temperatures and / or touch temperatures, and may apply thermal management policies.

[0054] 3B is a schematic diagram illustrating an example software architecture of the WCD 100 of FIG. 2 for proximity-based thermal management. The example software architecture shown in FIG. 3B may be used to support application of thermal management policies based on temperature thresholds dictated by the perception of the WCD 100's proximity, or lack thereof, to a user. Any number of algorithms may form or be part of at least one thermal management policy that may be applied by the thermal policy manager 101 when certain thermal conditions are met.

[0055] As shown in FIG. 3B, the CPU or digital signal processor 110 is coupled to the memory 112 via the bus 211. As mentioned above, the CPU 110 is a multi-core processor having an N-core processor. That is, the CPU 110 includes a first core 222, a second core 224, and an Nth core 230. As known to those skilled in the art, each of the first core 222, the second core 224, and the Nth core 230 is available to support a dedicated application or program. Alternatively, one or more applications or programs may be distributed for processing across two or more of the available cores.

[0056] CPU 110 may receive commands from TPM module 101, which may comprise software and / or hardware. If embodied as software, TPM module 101 comprises instructions executed by CPU 110 that issue commands to CPU 110 and other application programs being executed by other processors.

[0057] The first core 222, the second core 224 through the Nth core 230 of the CPU 110 may be integrated on a single integrated circuit die, or may be integrated or combined on separate dies in a multi-circuit package. Designers may couple the first core 222, the second core 224 through the Nth core 230 via one or more shared caches, and may implement message or instruction communication via network topologies such as a bus topology, a ring topology, a mesh topology, and a crossbar topology.

[0058] As known in the art, the bus 211 may include multiple communication paths via one or more wired or wireless connections. The bus 211 may have additional elements, omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers, to enable communication. Additionally, the bus 211 may include address, control, and / or data connections to enable appropriate communication between the aforementioned components.

[0059] It should be noted that when the logic used by WCD 100 is implemented in software, as shown in FIG. 3B, one or more of startup logic 250, management logic 260, proximity-based thermal management interface logic 270, applications in application store 280, and portions of file system 290 may be stored on any computer-readable medium for use by or in connection with any computer-related system or method.

[0060] In the context of this specification, a computer-readable medium is an electronic, magnetic, optical, or other physical device or means that can contain or store computer programs and data for use by or in connection with a computer-related system or method. The various logical elements and data stores may be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, a system including a processor, or other system that can fetch instructions from and execute instructions from the instruction execution system, apparatus, or device. In the context of this specification, a "computer-readable medium" may be any means that can store, communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.

[0061] The computer-readable medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (non-exhaustive list) of computer-readable medium will include the following: an electrical connection with one or more wires (electronic), a portable computer diskette (magnetic), a random access memory (RAM) (electronic), a read-only memory (ROM) (electronic), an erasable programmable read-only memory (EPROM, EEPROM, or flash memory) (electronic), an optical fiber (optical), and a portable compact disk read-only memory (CDROM) (optical). It should be noted that the computer-readable medium may even be a paper or another suitable medium on which the program is printed, since the program may be captured electronically, for example, via optical scanning of the paper or other medium, and then compiled, interpreted, or otherwise processed in a suitable manner as necessary, and then stored in the computer memory.

[0062] In alternative embodiments in which one or more of the startup logic 250, management logic 260, and possibly proximity-based thermal management interface logic 270 are implemented in hardware, the various logic may be implemented using any or a combination of the following technologies, each of which is well known in the art: discrete logic circuits having logic gates for performing logical functions on data signals, application specific integrated circuits (ASICs) having appropriate combinatorial logic gates, programmable gate arrays (PGAs), field programmable gate arrays (FPGAs), etc.

[0063] The memory 112 is a non-volatile data storage device such as a flash memory or a solid state memory device. Although shown as a single device, the memory 112 may be a distributed memory device in which separate data stores are coupled to the digital signal processor.

[0064] The startup logic 250 includes one or more executable instructions for selectively identifying, loading, and executing a selection program for managing or controlling the execution of one or more of the available cores, such as the first core 222, the second core 224 through the Nth core 230. The startup logic 250 may identify, load, and execute the selection program based on a comparison by the TPM module 101 of various temperature measurements with threshold temperature settings associated with proximity conditions. An exemplary selection program may be found in the program store 296 of the embedded file system 290 and is defined by a particular combination of a performance scaling algorithm 297 and a set of parameters 298. The exemplary selection program, when executed by one or more of the core processors in the CPU 110, may operate to scale the performance of the respective processor core "up" or "down" according to one or more signals provided by the monitoring module 114 in combination with control signals provided by the one or more TPM modules 101. In this regard, the monitoring module 114 may provide one or more indicators of events, processes, applications, resource status conditions, elapsed time, and temperatures as received from the TPM module 101.

[0065] The management logic 260 includes one or more executable instructions for terminating the thermal management program in one or more of the respective processor cores, and selectively identifying, loading, and executing a replacement program that is more suitable for managing or controlling the execution of one or more of the available cores. The management logic 260 is configured to perform these functions at run time or while the WCD 100 is powered and in use by an operator of the device. The replacement program may be found in a program store 296 of the embedded file system 290, and in some embodiments may be defined by a particular combination of a performance scaling algorithm 297 and a set of parameters 298.

[0066] The replacement program, when executed by one or more of the core processors in the digital signal processor, may operate to scale the performance of each processor core according to one or more signals provided by the monitoring module 114 or one or more signals provided at the respective control inputs of the various processor cores. In this regard, the monitoring module 114 may provide one or more indicators of an event, a process, an application, a resource status condition, elapsed time, temperature, etc. in response to control signals originating from the TPM 101.

[0067] Interface logic 270 includes one or more executable instructions for presenting, managing, and interacting with external inputs to observe, configure, or otherwise update information stored in embedded file system 290. In one embodiment, interface logic 270 may operate with manufacturer inputs received via USB port 142 or wirelessly depending on the embodiment of WCD 100. These inputs may include one or more programs to be deleted from or added to program store 296. Alternatively, the inputs may include edits or modifications to one or more of the programs in program store 296. Additionally, the inputs may identify one or more modifications or total replacement of one or both of startup logic 250 and management logic 260. As an example, the inputs may include a modification of management logic 260 that instructs WCD 100 to suspend all performance scaling in RF transceiver 168 (see FIG. 2) when received signal power falls below an identified threshold.

[0068] Interface logic 270 allows a manufacturer to controllably configure and tailor an end user's experience under defined operating conditions of WCD 100. When memory 112 is a flash memory, one or more of startup logic 250, management logic 260, interface logic 270, application programs in application store 280, or information in built-in file system 290 may be edited, replaced, or otherwise modified. In some embodiments, interface logic 270 may allow an end user or operator of WCD 100 to search, locate, modify, or replace startup logic 250, management logic 260, applications in application store 280, and information in built-in file system 290. The operator may use the resulting interface to make changes that are implemented at the next startup of WCD 100. Alternatively, the operator may use the resulting interface to make changes that are implemented during run time.

[0069] Embedded file system 290 includes a hierarchically organized thermal technique store 292. In this regard, file system 290 may include a reserved portion of its total file system capacity for storing information for configuration and management of various parameters 298 and thermal management algorithms 297 used by WCD 100. As shown in FIG. 3B, store 292 includes a core store 294, which includes a program store 296, which includes one or more thermal management programs.

[0070] FIG. 4 is an example state diagram 400 illustrating various proximity-based policy states (i.e., user proximity states) 405, 410, and 415 that may trigger a temperature threshold set by proximity determination module 26 in the WCD of FIG. 1. A first policy state 405 may comprise a “close to user” state in which PD module 26 recognizes or concludes from sensor module 24 that WCD 100 is near or in contact with a user. In particular, in close to user state 405, the touch temperature of WCD 100, as may be indicated by off-chip sensor 157B, is utilized by thermal policy manager 101 to determine an appropriate thermal management policy to maintain the touch temperature below a predefined temperature threshold. In some embodiments, the touch temperature threshold may be a default temperature threshold utilized by TPM module 101 to manage thermal energy generation. TPM 101 may monitor any or a combination of thermal sensors 157 to measure or derive the touch temperature of WCD 100 before applying, maintaining, or terminating a thermal management policy.

[0071] In this exemplary near user state 405, WCD 100 is not typically in any danger or risk of reaching a critical temperature that may cause failure of any of the hardware and / or software components, since the touch temperature is typically significantly lower than the operating temperature limits of components within WCD 100. In this exemplary state, thermal sensor 157 may be detecting or tracking a temperature indicative of a touch temperature of about 20° C. or less above ambient. However, one skilled in the art will recognize that other temperature ranges may be established for near user state 405 without departing from the scope of the present invention.

[0072] A second policy state 410 may comprise a “away from user” state 410 in which PD module 26 recognizes from sensor module 24 that WCD 100 is not in proximity to a user. In particular, in away from user state 410, temperatures associated with one or more processing components of WCD 100, as may be indicated by on-chip sensor 157A or correlated with measurements by off-chip sensor 157B, are utilized by thermal policy manager 101 to determine an appropriate thermal management policy to optimize processing performance without exceeding the operating temperature thresholds of the various processing components. Advantageously, in away from user state 410, the touch temperature of WCD 100 may be allowed to exceed the temperature thresholds discussed above for state 405 because WCD 100 is not in close proximity to the user. Thus, TPM module 101 may implement a thermal management policy that allows various processing components to perform better, thereby improving QoS, even though thermal energy production associated with increased performance may cause the touch temperature to exceed its normal target threshold.

[0073] It is contemplated that in some embodiments, away from user state 410 may include temperature thresholds that exceed the default touch temperature thresholds described above, but are below the maximum operating temperatures of various processing components. In this manner, subject to the temperature thresholds set by PD module 26 when WCD 100 is in policy state 410, TPM module 101 may apply a thermal management policy that provides improved processing performance without dissipating thermal energy at a rate that may cause the touch temperature to become unbearable should WCD 100 re-enter policy state 405 when the user "puts it on." That is, in policy state 410, the default touch temperature thresholds may be adjusted by PD module 26 to allow for improved processing performance without causing WCD 100 to get so hot that thermal energy cannot be dissipated as quickly upon re-entering policy state 405 close to the user.

[0074] The temperature threshold set by PD module 26 when WCD 100 is recognized as being in policy state 410 may be associated with an adjusted touch temperature, or alternatively, with an allowable operating temperature of one or more processing components. In either case, TPM module 101 may utilize any or a combination of measurements taken by sensor 157 before applying, maintaining, or terminating a thermal management policy based on the temperature threshold set by PD module 26.

[0075] As will be appreciated by those skilled in the art, this exemplary away from user state 410 may be reached or entered by thermal policy manager 101 when a change in user proximity to states 405 and 415 is detected. In the second away from user state 410, TPM module 101 may request or actually implement one or more thermal management techniques to improve the processing performance of WCD 100 and thus increase the temperature of WCD 100 as well. In this particular state 410, thermal policy manager 101 is designed to implement or request thermal mitigation techniques that may significantly improve the quality of service provided by WCD 100 to the user, at the expense of increasing the touch temperature of WCD 100. The temperature range for the operating temperature of one or more processing components in this second away from user proximity state 410 may comprise a range between about 25° C. above ambient to about 40° C. above ambient. However, those skilled in the art will recognize that other temperature ranges may be established for policy state 410 and are within the scope of the present invention.

[0076] A third policy state 415 may comprise a “docked” state in which WCD 100 is housed by a docking station 182 or other hardware device configured to enable WCD 100 to communicate with one or more external devices, such as, but not limited to, a keyboard, a monitor, a mouse, a printer, etc. In some embodiments, the docking station or other peripheral device may include mechanical interface aspects that contribute to the efficiency of thermal energy dissipation from WCD 100. In particular, when WCD 100 is docked, PD module 26 may recognize that WCD 100 is not only physically separated from a user, but also housed by a docking station and unlikely to be physically contacted by the user. Thus, when WCD 100 is recognized as being in docked state 415, PD module 26 may set temperature thresholds such that TPM module 101 may apply thermal management policies that permit processing component 110 and / or other components of WCD 100 to run at a higher rate of power consumption. Advantageously, as WCD 100 is in communication with docking station 182, PD module 26 may recognize that performance efficiency is a more important factor to user experience than touch temperature, and may accordingly set temperature thresholds that trigger TPM module 101 to implement a thermal management policy adapted to optimizing WCD performance at the expense of thermal energy production. The temperature ranges for the threshold temperatures of various components when WCD 100 is in this third, docked state 415 may comprise ranges limited only by the maximum temperature specified for short touches (e.g., 95° C. for plastic surfaces according to UL 60950), although other limitations are contemplated within the scope of this disclosure.

[0077] As one skilled in the art will appreciate, any of a variety of user proximity policy states may be initiated based on changes in proximity to the user as detected by the sensor module 24 and recognized by the PD module 26. For example, as indicated by the arrows in this figure, each policy state may be initiated in sequence or out of sequence in response to changes in proximity to the user.

[0078] FIG. 5 illustrates an example thermal management policy and associated conditions that may be utilized by thermal policy manager module 101 in FIG. 1 and that depend on the particular user proximity state shown in FIG. 4. As previously mentioned, first proximity state 405 may comprise a “close to user” state in which thermal policy manager 101, executing by CPU 110 and in part by ADC controller 103, may monitor, poll, or receive one or more status reports for temperature from one or more thermal sensors 157, compare the status reports to a threshold temperature associated with the device's tolerable touch temperature, and apply an appropriate thermal management policy to maintain the touch temperature below the threshold. In this first policy state 405, PD module 26 may have received a signal from sensor module 24 indicating that WCD 100 is in proximity to the user. With WCD 100 in proximity to the user, the touch temperature threshold may be a primary determinant of the user experience, and thus TPM 101 may implement thermal mitigation techniques that sacrifice QoS in favor of mitigating thermal energy production.

[0079] A second proximity state 410 may comprise a "away from user" state in which thermal policy manager 101, executed by CPU 110 and in part by ADC controller 103, may monitor, poll, or receive one or more status reports for temperature from one or more thermal sensors 157, compare the status reports to a threshold temperature associated with an elevated touch temperature of the device, and apply an appropriate thermal management policy to optimize performance without exceeding an adjusted touch temperature threshold. In this second policy state 410, PD module 26 may have received a signal from sensor module 24 indicating that WCD 100 is not in proximity to a user. With WCD 100 not near the user, subject to a moderate increase in touch temperature, the touch temperature threshold may be increased such that QoS is the primary determinant of user experience. Thus, TPM 101 may implement thermal management techniques that increase performance levels of one or more components at the expense of increased thermal energy production. In particular, in some embodiments, the increased touch temperature may be determined based on a level that allows for improved performance without generating so much thermal energy that WCD 100 cannot dissipate the energy at a reasonable rate in order to re-enter the first policy state.

[0080] A third proximity state 415 may comprise a “docked” state in which thermal policy manager 101, executing by CPU 110 and in part by ADC controller 103, may monitor, poll, or receive one or more status reports for temperature from one or more thermal sensors 157, compare the status reports to threshold temperatures associated with the thermal operating limits of one or more components within WCD 100, and apply an appropriate thermal management policy to optimize performance without adversely affecting WCD 100. In this third policy state 415, PD module 26 may have received a signal from sensor module 24 indicating that WCD 100 is not in proximity to a user and / or a confirmation that WCD 100 has been accommodated by an external docking device. Because WCD 100 is not in proximity to a user and has been accommodated in a docking device to fully utilize its performance capabilities, touch temperature thresholds may not be a significant driver of user experience. Rather, in the docked state, the primary driver of user experience may be QoS, subject only to operating temperatures that may damage WCD 100. Thus, the TPM 101 may implement thermal management techniques that significantly improve component performance at the expense of thermal energy production.

[0081] 6 is a logic flow diagram illustrating a method 600 for managing one or more thermal policies based on an indication of user proximity. Method 600 leverages a user proximity calculation as a trigger for applying a thermal management policy within WCD 100.

[0082] Method 600 of FIG. 6 begins with subroutine block 605 for generating a determination of a user proximity state (further details regarding subroutine 605 are shown and described with respect to the illustration of FIG. 7). With output generated from subroutine 605, the method proceeds to a first decision block 610 where PD module 26 may receive data representative of user proximity or lack thereof to WCD 100. As described above, sensor readings generated by sensors associated with sensor module 24 may be monitored by monitoring module 114 for signals useful in calculating, determining, or inferring user proximity to WCD 100. Monitoring module 114 may be in communication with PD module 26. If it is determined in decision block 610 that WCD 100 is in proximity to a user, the "yes" branch is followed to block 615. In block 615, PD module 26 may set a temperature threshold to a level associated with an acceptable touch temperature of WCD 100 or may remain unchanged. In such a case, in block 635, TPM module 101 may apply thermal mitigation techniques operable to maintain the touch temperature of WCD 100 below an acceptable threshold (further details regarding subroutine 635 are shown and described with respect to the illustrative example of FIG. 8).

[0083] If it is determined in decision block 610 that WCD 100 is not in proximity to a user, the "no" branch is followed to decision block 620. In decision block 620, PD module 26 may determine whether WCD 100 is away from a user and / or is housed in a docking device. If it is determined that WCD 100 is away from a user but not housed in a docking device, the "no" branch is followed to block 630. In block 630, PD module 26 may set a temperature threshold for triggering a thermal management policy that permits one or more components to generate thermal energy at a rate that raises the touch temperature of WCD 100 above the default threshold described above for block 615. In particular, the temperature threshold set by PD module 26 in method block 630 may be constrained to the condition that the touch temperature threshold does not exceed the default touch temperature threshold by an amount such that WCD 100 cannot rapidly cool below the default touch temperature setting. In subroutine block 635, TPM module 101 may apply thermal mitigation techniques operable to maintain the operating temperature of WCD 100 below an acceptable threshold.

[0084] If, at decision block 620, PD module 26 determines that WCD 100 is not only away from the user but is also housed in a docking device for driving one or more external devices, the "yes" branch is followed to block 625. At block 625, PD module 26 may set a temperature threshold for application of a thermal management policy to a relatively high operating temperature. In particular, once WCD 100 is determined to be in a docked state, some embodiments may assume that the touch temperature of WCD 100 is not a primary driver of the user experience and may therefore set a temperature threshold that allows the performance efficiency of one or more components within WCD 100 to run at a rate that generates a high level of thermal energy. In some embodiments, it is assumed that the thermal management techniques implemented at block 635 may only operate to mitigate thermal energy generation that could potentially damage WCD 100, while in other embodiments, the temperature threshold set by PD module 26 when WCD 100 is docked may still be constrained to a maximum touch temperature threshold.

[0085] With regard to the application of thermal management techniques by the TPM module 101, those skilled in the art will recognize that the system and method for triggering thermal management policies based on proximity and temperature measurements is not limited by the particular thermal management technique that may or may not be triggered. Even so, thermal mitigation techniques that may be initiated by one or more embodiments include, but are not limited to, (1) load scaling and / or (2) load dynamic scaling, (3) spatial load shifting, and (4) process load reallocation. In general, thermal management techniques including load scaling may comprise adjusting or "scaling" the maximum clock frequency allowed in a dynamic voltage and frequency scaling ("DVFS") algorithm. Advantageously, such adjustments may limit maximum heat dissipation. Thermal management techniques including spatial load shifting and / or load reallocation include algorithms for distributing the workload within a given processing core or across multiple processing cores. In this manner, thermal energy generation and dissipation can be managed by distributing the workload over a larger processing area, processing the workload with processing power associated with a higher or lower power density compared to the initial allocation, or leveraging underutilized processing components to perform as heat sinks.

[0086] 7 is a logic flow diagram illustrating a sub-method or subroutine 605 for determining the proximity of WCD 100 to a user. Beginning at block 705, all available or eligible sensors in sensor module 24 may be identified by monitoring module 114 and / or PD module 26. As discussed above, any number of sensors may be included in WCD 100 for a primary purpose other than user proximity sensing, such as, but not limited to, sensing or measuring heart rate, pulse, blood oxygen saturation, bioimpedance, global positioning coordinates, rotational motion (gyroscope), acceleration force (accelerometer), temperature, pressure, capacitance, resistance, motion, specific absorption rate, light, etc. An embodiment of the present solution advantageously utilizes readings from sensors in sensor module 24 to estimate, infer, or determine user proximity.

[0087] Returning to subroutine 605, after the available sensors have been identified, the subroutine continues to block 710. In block 710, PD module 26 may categorize the identified sensors into pre-ranked categories and may assign a priority level for each sensor in the category. The purpose of categorizing and ranking the various sensors identified in block 705 may be to recognize sensor readings that may individually or in combination determine a user proximity state, among other reasons. For example, if a pulse oximeter sensor is recognized in block 705, the production of a reading by the sensor indicating a viable blood oxygen level may be utilized by an embodiment of the present solution to conclude that WCD 100 is being worn by a user (i.e., "close to user" state 405). As another example, if in block 705 a changing GPS signal is recognized (thus indicating that WCD 100 is moving and therefore may be in "close to user" state 405), but a sensor for measuring acceleration forces (i.e., an accelerometer) is producing a signal from which it may be concluded that WCD 100 is not moving, consistent with being worn, an embodiment of the solution may combine and consider the readings to conclude that WCD 100 is not being worn by a user (i.e., it may be in the glove box of a slowly moving car or the cup holder of a golf cart).

[0088] Returning to subroutine 605, in block 715, PD module 26 may consider the sensor with the highest priority in the highest ranking category (i.e., that sensor or sensors with the most important or reliable data for determining user proximity). Then, in decision block 720, if there are no other sensors in the highest ranking category, subroutine 605 may follow the "no" branch to block 730, and PD module 26 may utilize readings from the highest priority sensor to determine the user proximity state. In particular, if a single sensor with the highest priority in the highest category does not settle the user proximity state, the subroutine may loop back to consider sensors in less highly ranked categories in combination with the highest priority sensor, which combination may be used by PD module 26 to determine the possible user proximity state. In some embodiments of the present solution, it is contemplated that if sensors of the same or similar priority are considered individually and produce signal readings that would lead PD module 26 to a different user proximity determination, the present embodiment may conclude that the possible user proximity condition is the most severe, i.e., the condition associated with the lowest thermal threshold.

[0089] Returning to decision block 720, if multiple sensors are categorized into the same category, the subroutine may continue to the "yes" branch to block 725 where readings from the other sensors are read and considered. At block 730, a user proximity state may be concluded in view of the various readings produced by the sensors individually and / or in combination.

[0090] With regard to ranking the sensor categories, it is envisioned that some embodiments of the present solution may rank in the following exemplary and non-limiting manner: The highest ranked categories are, but are not limited to, heart rate monitors, pulse monitors, O 2The second highest ranked category may be associated with a health tracking sensor, such as, but not limited to, a touch sensor, such as, but not limited to, a bioimpedance sensor, a capacitive sensor, a resistive sensor, etc. The third highest ranked category may be associated with a temperature sensor (ambient and / or on-chip sensor), the readings from which may be used in combination with non-temperature sensor readings to improve user proximity state determination. The fourth highest ranked category may be reserved for a pressure sensor (it is envisioned that if the WCD 100 is in the form of a device that is typically worn tightly by the user, such as, but not limited to, a VR / AR headset, rather than a device that is typically worn loosely, such as a smart watch or fitness tracker, the pressure sensor may be categorized in a relatively higher ranked category). The fifth highest ranked category may be associated with a location and / or orientation based sensor, such as, but not limited to, an accelerometer, gyroscope, GPS, etc., due to the fact that movement therein or of itself may be due to some use case other than the WCD 100 being worn by the user. However, it is envisioned that some embodiments of the present solution may be configured to analyze the motion-based readings in more detail, such as to determine whether the motion is consistent with the WCD 100 being worn by the user, and in such embodiments, the location and / or orientation-based sensors may be the more highly categorized sensors (e.g., an embodiment configured to recognize from accelerometer readings that the wrist-worn WCD 100 is accelerating and decelerating according to a pattern consistent with the user swinging his or her arms back and forth as the user runs may assign a relatively high priority to the accelerometer sensor readings when determining a user proximity state). Logical categorizations, prioritizations, and combinations of sensor readings that may be utilized by an embodiment of the present solution to determine a user proximity state with a suitably high probability of success will occur to one of skill in the art upon review of this disclosure.

[0091] FIG. 8 is a logic flow diagram illustrating an exemplary and non-limiting sub-method or subroutine 635 for applying a thermal management policy. Method 635 of FIG. 8 begins with decision block 805. In block 805, TPM module 101 may determine whether PD module 26 has recognized a user proximity state of WCD 100 from sensor readings taken from sensor module 24 and, in response, has modified a threshold temperature for triggering a thermal management policy. In particular, as described throughout this disclosure, PD module 26 may not only modify or set the threshold temperature, but may also modify or determine aspects within WCD 100 related to the threshold temperature. For example, as described above, the threshold temperature determined by PD module 26 and used by TPM module 101 to trigger a thermal management policy may be associated with any number of aspects within WCD 100, including, but not limited to, a processing component (i.e., the operating temperature of the component), an external temperature of WCD 100 (i.e., the touch temperature of the device), or cascade logic including a first threshold temperature being measured by a first sensor on the condition that a second threshold temperature is measured by a second sensor.

[0092] If the TPM module 101 determines in decision block 805 that the threshold temperature has not been changed by the PD module 26, the currently implemented thermal management policy may be maintained by the TPM module 101. However, if in decision block 805 the TPM module 101 recognizes a change in the temperature threshold and / or the sensor monitored for the temperature threshold, the "yes" branch is followed to block 815. In block 815, the TPM module 101 may compare the newly set temperature threshold to the actual temperature measured at the associated sensor, such as, for example, sensor 157A or 157B. Based on the comparison, the TPM module 101 may review the currently implemented thermal management policy, if any, in block 820 and determine in decision block 825 whether the currently implemented thermal management policy requires adjustment. If in decision block 825 the TPM module 101 determines that no adjustment or modification of the thermal management policy is warranted in light of the comparison of block 815, the "no" branch is followed back to block 810 and the current policy is maintained. However, if in decision block 825 the TPM module 101 determines that a change or modification to the thermal management policy is justified, the "yes" branch is followed to block 830 and the TPM module 101 may choose to implement one or more alternative thermal management techniques.

[0093] Some steps in the processes or process flows described herein naturally precede other steps in order for the invention to function as described. However, the invention is not limited to the order of steps described if such order or sequence does not change the functionality of the invention. That is, it should be recognized that some steps may be performed before, after, or in parallel (substantially simultaneously) with other steps without departing from the scope and spirit of the invention. In some cases, some steps may be omitted or not performed without departing from the invention. Furthermore, the use of words such as "thereafter," "then," and "next" does not limit the order of steps. These words are used merely to guide the reader through the description of the exemplary method.

[0094] Additionally, one skilled in the art of programming, for example, based on the flow charts and associated description herein, will be able to readily write computer code for carrying out the disclosed invention, or identify suitable hardware and / or circuitry for implementing. Thus, disclosure of a particular set of program code instructions or detailed hardware devices is not deemed necessary for an adequate understanding of how to make and use the invention. The inventive functionality of the claimed computer-implemented processes is described in more detail in the above description and in conjunction with figures that may illustrate various process flows.

[0095] In one or more exemplary aspects, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored or transmitted as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. Storage media may be any available medium that can be accessed by a computer. By way of example, and not limitation, such computer-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer.

[0096] Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line ("DSL"), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium.

[0097] Disk and disc, as used herein, include compact disc ("CD"), laser disc, optical disc, digital versatile disc ("DVD"), floppy disk, and Blu-ray disc, where disks typically reproduce data magnetically and discs reproduce data optically using lasers. Combinations of the above are also intended to be included within the scope of computer-readable media.

[0098] Thus, while selected embodiments have been illustrated and described in detail, it will be understood that various substitutions and modifications may be made therein without departing from the spirit and scope of the invention, as defined by the following claims. [Explanation of symbols]

[0099] 24 Sensor Module 26 Proximity Determination Module 100 Wearable Computing Devices 101 Thermal Policy Manager Module 102 On-Chip System 103 Analog to Digital Converter Controller 110 Processing Components 112 Memory 114 Monitoring Module 126 Analog signal processor, modem CPU 128 Display Controller 130 Touch Screen Controller 132 Touch Screen Display 134 Video Encoder 135 Graphics Processor 136 Video Amplifier 138 video ports 140 Universal Serial Bus Controller 142 USB ports 146 Subscriber Identity Module Card 148 Digital Camera 150 Stereo Audio Codec 152 Audio Amplifier 154 1st stereo speaker 156 Second Stereo Speaker 157 Thermal Sensor 158 Microphone Amplifier 160 Microphones 162 Frequency Modulation Radio Tuner 164 FM Antenna 166 Stereo Headphones 168 Radio Frequency Transceiver, Modem CPU 170 RF Switch 172 RF Antenna 173 Digital Analog Controller 174 Keypad 176 Mono Headset with Microphone 177 Advanced Reduced Instruction Set Computer Instruction Set Machine 178 Vibrator Device 180 Power supply 182 Docking Station 207 Operating System Module 209 Phase Locked Loop 222 0th Core 224 First Core 230 Nth Core 250 Startup Logic 260 Management Logic 270 Proximity-Based Thermal Management Interface Logic 280 Application Store 290 File System 292 Heat Technique Store 294 Core Store 296 Program Store 297 Performance Scaling Algorithms 298 Parameters

Claims

1. 1. A method for managing thermal energy generation in a wearable computing device ("WCD"), comprising: monitoring a plurality of health tracking signals from health tracking sensors in the WCD; monitoring, wherein the sensor is selected from the group consisting of a heart rate monitor, a pulse monitor, and an O2 sensor; assigning a priority level to each signal, the priority level defining the reliability with which the relative physical proximity of the WCD to a user can be inferred; providing corresponding health tracking information based on the plurality of monitored health tracking signals and the priority level assigned to each signal to determine a user proximity status for the WCD; setting a first temperature threshold for triggering initiation of one or more thermal management policies based on the user proximity state, the first temperature threshold associated with a first temperature sensor in the WCD; comparing the first temperature threshold to a temperature measurement received from the first temperature sensor; evaluating the applicability of a currently implemented thermal management policy based on said comparison; A method for providing the above.

2. Choose to continue applying the thermal management policies currently in place Further comprising: The method of claim 1.

3. Selecting to modify the currently implemented thermal management policy. The method of claim 1 , further comprising:

4. 1. A computer system for managing thermal energy generation in a wearable computing device ("WCD"), comprising: a means for monitoring a plurality of health tracking signals from health tracking sensors in the WCD, the means comprising: the sensor is selected from the group consisting of a heart rate monitor, a pulse monitor, and an O2 sensor; means for assigning a priority level to each signal, the priority level defining the reliability with which the relative physical proximity of the WCD to a user can be inferred; means for providing corresponding health tracking information based on the plurality of monitored health tracking signals and the priority level assigned to each signal and for determining a user proximity status relative to the WCD; means for setting a first temperature threshold for triggering initiation of one or more thermal management policies based on the user proximity state, the first temperature threshold associated with a first temperature sensor in the WCD; means for comparing the first temperature threshold with a temperature measurement received from the first temperature sensor; means for evaluating the applicability of currently implemented thermal management policies based on said comparison; A computer system comprising:

5. A means to choose to continue applying the thermal management policies currently in place Further comprising:

5. The computer system of claim 4.

6. means for selecting to modify said currently implemented thermal management policy The computer system of claim 4 further comprising:

7. The method of claim 1 , wherein the determined user proximity state defines the WCD as being in proximity to a user.

8. The method of claim 7 , wherein the first temperature threshold is related to a touch temperature of the WCD.

9. The computer system of claim 4, wherein the determined user proximity state defines the WCD being in proximity to a user.

10. The computer system of claim 9, wherein the first temperature threshold is related to a touch temperature of the WCD.

11. The method of claim 1 , wherein the determined user proximity condition defines the WCD not being in physical proximity to a user.

12. The method of claim 11 , wherein the first temperature threshold is related to an operating temperature of a processing component within the WCD.

13. The computer system of claim 4, wherein the determined user proximity state defines the WCD not being physically proximate to the user.

14. The computer system of claim 13, wherein the first temperature threshold is related to an operating temperature of a processing component within the WCD.

15. setting a second temperature threshold associated with a second temperature sensor in the WCD; comparing the second temperature threshold to a temperature measurement received from the second temperature sensor; choosing to modify the currently implemented thermal management policy based on the comparison of the second temperature threshold with the temperature measurement received from the second temperature sensor; Further equipped with 13. The method of claim 12, wherein the modified thermal management policy prevents a reading of the first temperature sensor from exceeding the first temperature sensor threshold and prevents a reading of the second temperature sensor from exceeding the second temperature sensor threshold.

16. means for setting a second temperature threshold associated with a second temperature sensor in the WCD; means for comparing the second temperature threshold with a temperature measurement received from the second temperature sensor; means for choosing to modify the currently implemented thermal management policy based on the comparison of the second temperature threshold with the temperature measurement received from the second temperature sensor; Further equipped with 15. The computer system of claim 14, wherein the modified thermal management policy prevents a reading of the first temperature sensor from exceeding the first temperature sensor threshold and prevents a reading of the second temperature sensor from exceeding the second temperature sensor threshold.

17. The determined user proximity state is The method of claim 1 , further comprising providing that the WCD is housed in a docking device.

18. The method of claim 17 , wherein the first temperature threshold is related to a maximum operating temperature of a processing component within the WCD.

19. The computer system of claim 4, wherein the determined user proximity state defines the WCD being docked within a docking device.

20. The computer system of claim 19, wherein the first temperature threshold is related to a maximum operating temperature of a processing component within the WCD.

21. A computer program comprising instructions for causing a processor to carry out a method according to any one of claims 1 to 3, 7, 8, 11, 12, 15, 17 or 18.

Citation Information

Patent Citations

  • Stopping device for work device

    JP2000198700A

  • Biological-body-attached data communication device

    JP2009240730A

  • Information input / output device and information input / output method

    JP2014147033A

  • System and method for adaptive thermal management in portable computing devices

    JP2015528160A

  • System and method for adaptive thermal and performance management in electronic devices

    WO2016153666A1