The invention relates to a method for obtaining temperature values from at least two thermal sensors arranged on resources within a three-dimensional die structure determining at least a partial three-dimensional temperature distribution for said die structure and controlling activity of said resources of said dies in response to said three-dimensional temperature distribution.
|
0. 38. A method comprising:
obtaining temperature values from at least two thermal sensors arranged in proximity to resources within a three-dimensional die structure;
performing one or more comparisons of the temperature values to each other; and
controlling activity of one or more of the resources in response to the one or more comparisons.
22. A method comprising
obtaining temperature values from a number of selected thermal sensors located on dies within a three-dimensional die structure;
determining at least a partial three-dimensional temperature distribution for said die structure;
controlling activity of resources of said dies in response to said three-dimensional temperature distribution.
1. A method comprising
obtaining temperature values from at least two thermal sensors arranged on resources within a three-dimensional die structure;
determining at least a partial three-dimensional temperature distribution for said die structure; and
controlling activity of said resources of said dies in response to said three-dimensional temperature distribution.
0. 65. A non-transitory computer program product including computer program code that, if executed by a device, causes the device to implement operations comprising:
obtaining temperature values from at least two thermal sensors arranged in proximity to resources within a three-dimensional die structure;
performing one or more comparisons of the temperature values to each other; and
controlling activity of one or more of the resources in response to the one or more comparisons.
23. A device comprising
at least two semiconductor dies packaged together in a three-dimensional die structure;
at least one thermal sensor located on each of said dies;
a control unit connected to and controlling said thermal sensors;
wherein said control unit is adapted to obtain temperature values sensed by said thermal sensors;
determine at least a partial three-dimensional temperature distribution for said die structure; and
issue throttle orders for resources on said dies in dependence of said temperature distribution.
0. 52. A device comprising:
at least two semiconductor dies packaged together in a three-dimensional die structure;
at least one thermal sensor located on each of said dies;
a control unit connected to and configured to control the thermal sensors;
wherein the control unit is further configured to:
obtain temperature values from at least two thermal sensors arranged in proximity to resources within the three-dimensional die structure;
perform one or more comparisons of the temperature values to each other; and
control activity of one or more of the resources in response to the one or more comparisons.
2. The method of
comparing temperature values of said at least two thermal sensors with each other;
locating at least one heat source based on said comparing;
identifying at least one resource associated with said at least one heat source; and
wherein said controlling of activity includes throttling activity at least in said at least one identified resource.
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
9. The method of
10. The method of
11. The method of
selecting a specific sensor for evaluation;
wherein said obtained temperature values include a selected temperature value sensed by said selected sensor; and
wherein said comparing comprises comparing said selected temperature value to at least a further one of said obtained temperature values; and
issuing a throttle order for a resource associated with said selected sensor if said selected temperature value is determined to be the highest value in said comparing.
12. The method of
13. The method of
14. The method of
comparing a selected temperature value associated with said selected resource to a second temperature value associated with the resource which has issued said throttle request; and
issuing a throttle order for said selected resource if said selected temperature value is higher than said second temperature value.
15. The method of
16. The method of
17. The method of
18. The method of
19. The method of
20. The method of
21. A non-transitory computer program product including computer program code which, when executed, causes a device to execute a method according to
24. The device of
25. The device of
26. The device of
27. The device of
28. The device of
30. The device of
34. The device of
35. The device of claim 31 34, wherein said sensing unit or said compensation unit are is coupled to a comparator configured for comparing values sensed by said sensing unit.
36. The device of claim 31 35, wherein said control unit includes at least one of said sensing unit, said compensation unit and or said comparator.
37. The device of
0. 39. The method of claim 38, wherein said performing includes:
locating at least one heat source based on said one or more comparisons;
identifying at least one resource associated with said at least one heat source; and
wherein said controlling activity includes throttling activity at least in said at least one identified resource.
0. 40. The method of claim 39, wherein said activity is throttled if said at least one temperature value associated with said at least one identified resources is above a predefined threshold.
0. 41. The method of claim 39, wherein said identifying includes identifying a resource associated with the highest of the compared temperature values.
0. 42. The method of claim 39, wherein at least one of said comparing or said throttling is based on information on relative sensor locations within the die structure.
0. 43. The method of claim 38, further comprising receiving a signal indicating a temperature value above a second predefined threshold.
0. 44. The method of claim 43, further comprising sensing said temperature values in response to said received signal.
0. 45. The method of claim 38, further comprising continuously sensing said temperature values.
0. 46. The method of claim 44, further comprising:
selecting a specific sensor to be sensed and
providing a control sequence signal for switching elements connected to said specific sensor.
0. 47. The method of claim 38, further comprising
selecting a specific sensor for evaluation;
wherein the obtained temperature values include a specific sensor temperature value sensed by the specific sensor; and
wherein said performing comprises comparing said specific sensor temperature value to at least a further one of the obtained temperature values; and
issuing a throttle order for a resource associated with the specific sensor if the specific sensor temperature value is determined to be the highest value in said comparing.
0. 48. The method of claim 47, further comprising issuing a throttle request for a defined further resource if a temperature value associated with the further resource is higher than the specific sensor temperature value.
0. 49. The method of claim 38, further comprising:
checking whether a throttle request exists for a selected resource;
comparing a selected temperature value associated with the selected resource to a second temperature value associated with the resource which has issued said throttle request; and
issuing a throttle order for the selected resource if the selected temperature value is higher than the second temperature value.
0. 50. The method of claim 38, further comprising determining a measure of confidence that at least a selected resource needs to be throttled.
0. 51. The method of claim 50, wherein the measure of confidence is include in a throttle order.
0. 53. The device of claim 52, wherein the control unit is further configured to sense a selected thermal sensor.
0. 54. The device of claim 52, wherein the control unit is configured to continuously evaluate at least a subset of the thermal sensors, said evaluation including the performing of comparisons and the controlling activity of one or more of the resources.
0. 55. The device of claim 52, further comprising one or more memory elements configured to store at least one of throttle orders issued in conjunction with the controlling activity of one or more of the resources or the temperature values.
0. 56. The device of claim 52, further comprising switching elements coupled between the control unit and the thermal sensors, the switching elements being configured to select a specific thermal sensor.
0. 57. The device of claim 56, wherein one or more of the switching elements comprises a multiplexer.
0. 58. The device of claim 56, wherein the switching elements are arranged such that only a single sensor at a time is connected to the control unit.
0. 59. The device of claim 52, further including a sensing unit.
0. 60. The device of claim 59, wherein the sensing unit comprises an analog-to-digital converter.
0. 61. The device of claim 59, wherein the sensing unit is coupled to a compensation unit configured to modify values sensed by the sensing unit.
0. 62. The device of claim 61, wherein at least one of the sensing unit or the compensation unit is coupled to a comparator configured to compare values sensed by the sensing unit.
0. 63. The device of claim 62, wherein the control unit includes at least one of the sensing unit, the compensation unit, or the comparator.
0. 64. The device of claim 52, wherein at least one said thermal sensor comprises a thermal diode.
0. 66. The computer program product of claim 65, wherein said performing includes:
locating at least one heat source based on said one or more comparisons;
identifying at least one resource associated with said at least one heat source; and
wherein said controlling activity includes throttling activity at least in said at least one identified resource.
0. 67. The computer program product of claim 66, wherein said activity is throttled if said at least one temperature value associated with said at least one identified resources is above a predefined threshold.
0. 68. The computer program product of claim 66, wherein said identifying includes identifying a resource associated with the highest of the compared temperature values.
0. 69. The computer program product of claim 66, wherein at least one of said comparing or said throttling is based on information on relative sensor locations within the die structure.
0. 70. The computer program product of claim 65, the operations further comprising receiving a signal indicating a temperature value above a second predefined threshold.
0. 71. The computer program product of claim 70, the operations further comprising sensing said temperature values in response to said received signal.
0. 72. The computer program product of claim 65, the operations further comprising continuously sensing said temperature values.
0. 73. The computer program product of claim 72, the operations further comprising:
selecting a specific sensor to be sensed; and
providing a control sequence signal for switching elements connected to said sensor.
0. 74. The computer program product of claim 65, the operations further comprising
selecting a specific sensor for evaluation;
wherein the obtained temperature values include a specific sensor temperature value sensed by the specific sensor; and
wherein said performing comprises comparing said specific sensor temperature value to at least a further one of the obtained temperature values; and
issuing a throttle order for a resource associated with the specific sensor if the specific sensor temperature value is determined to be the highest value in said comparing.
0. 75. The computer program product of claim 74, the operations further comprising issuing a throttle request for a defined further resource if a temperature value associated with the further resource is higher than the specific sensor temperature value.
0. 76. The computer program product of claim 65, the operations further comprising:
checking whether a throttle request exists for a selected resource;
comparing a selected temperature value associated with the selected resource to a second temperature value associated with the resource which has issued said throttle request; and
issuing a throttle order for the selected resource if the selected temperature value is higher than the second temperature value.
0. 77. The computer program product of claim 65, the operations further comprising determining a measure of confidence that at least a selected resource needs to be throttled.
0. 78. The computer program product of claim 77, wherein the measure of confidence is included in a throttle order.
|
The evaluation loop is then passed as shown in the pseudocode example A of FIG. 13, or also in
There may be additional prescriptions and definitions in the algorithm, e.g. for the case that more than one sensor exceeds its temperature threshold. Also, an embodiment may include not only comparing the actual temperatures, but also taking into account that the allowable and expected temperature range may vary for different die resources, e.g. due to different die materials. This may be implemented by adding or subtracting a predefined temperature value in the comparison of measured temperatures, such that a sensor may be throttled although it does not show the highest temperature in absolute numbers. In other examples, not only the sensors below and above the “triggering” sensor may be considered, but also further layers farther below or above the respective die layer. It is conceivable to make further sensor measurements dependent on a first result from a temperature evaluation, such as a case where a lower sensor shows the highest temperature reading, which may trigger temperature sensing for the next lower die level.
The method as described above may be modified in numerous ways. As an example, not only binary throttling orders may be used. In some embodiments, several threshold values may be defined for the evaluation and/or throttling functions, such that one of a number of throttling procedures is chosen dependent on the level of overheating. A multi-level throttling system may be implemented by indicating the actual measured temperature in the throttling order, such that the throttling function determines the action to take. In other embodiments, the classification of measured temperatures into levels of overheating may be performed at the evaluation stage, such that throttling orders with e.g. integer values between 0 and 3 (or other values) are issued based on the sensed temperature or certain temperature differences between sensors. Then, the throttling function provides the required throttling action based on these values. As an example, a resource may only be throttled to a lower level of activity up to a certain temperature reading, and a complete deactivation of the resource may be order for very high temperature values.
Other embodiments may include considering other or further sensors. Since heat may also propagate within a die and not only between stacked dies, it is conceivable to incorporate sensor readings from those sensors which are close to the triggering sensor on the same die. The algorithm might then be implemented similarly to the example above, i.e. by subsequent comparisons of the sensor reading which triggered the evaluation with those of neighboring sensors. In more complex embodiments, any number or combination of sensors may be considered in evaluation, and even the complete set of sensors within a die system may be used for deciding on cooling measures based on the three-dimensional temperature map.
It may also be possible to define some absolute thresholds for sensor readings which may lead to throttling of the resource independent of a comparison result. That is, even if a neighboring sensor shows higher temperature value, such an additional throttling threshold may order throttling of this resource as well, instead of only the resource associated with the highest temperature reading. This may help to prevent overheating in cases where the actual heat source is not unambiguously determinable, since a resource may show very high temperatures when the respective die area is heated by activities of both this resource and a neighboring resource. These thresholds may be similar or different from those defined for the initial interrupt.
Any of the previously described processes may also be concurrent. Running of the processes in parallel may decouple the speed at which the individual processes need to be run. In addition, the operation principle may be changed from interrupt-drive as described above to a continuous operation. An example of such an embodiment is shown in
The left part of
An exemplary algorithm for an embodiment such as that of
More particularly, memory may again be allocated for temperature sensor readings and thresholds, similar to the example of
Different from the first example algorithm, the loop is not triggered by an interrupt but is continuously looping, thus integrating the temperature threshold monitoring into the loop by a check. Temperature values are read from the sensors continuously (step 200) and may be stored, buffered or directly transferred for use in the control loop. In each cycle, each controlled sensor is evaluated. If a temperature above a preset threshold is detected for a specific sensor in step 204 which has been selected for evaluation in step 202, an inner loop (lines 80 to 87) is started which compares the temperature of the currently processed sensor to that of neighboring sensors (step 206). In the example, the sensors below and above are used again for comparing by applying predefined functions like above_sensor and below_sensor, but other or more sensors in the system may be used in further embodiments. The sensors which are chosen for temperature evaluation may be predefined or might also be updated when required.
Again, a binary throttle order is issued if the processed sensor or rather the corresponding resource has a higher temperature compared with predefined neighboring sensors (step 212). If this processed sensor is not the one having the highest temperature, the algorithm loop continues by setting a throttle_request to a value of 1 in step 214, which may indicate that at least one of the resources surrounding the sensor s needs to be throttled. The resources which are covered by such a request may be defined as required, e.g. the request may only extend to the resources above or below the current sensor, or to all sensors located on the same die. Possible uses of the throttle request variable will be discussed below.
For the case that the processed sensor does not show a temperature above its threshold in step 204, the outer loop continues as follows (line 88). It may be checked whether there are throttle requests for the current sensor which have been issued by neighboring sensors in step 208. If a neighboring sensor has issued a throttle request, i.e. this neighboring sensor has determined that one of its own neighboring resources (including the resource in question) should be throttled, and the temperature measured by that sensor is lower than the temperature of the processed sensor as determined in step 210, the currently processed sensor is again throttled (step 212). A throttle request by a neighboring sensor which does not involve a relatively higher temperature at a sensor compared to that neighboring sensor will not induce a throttling order and end the procedure for this sensor (step 216). Similarly as for other embodiments, the throttle request may alternatively indicate the confidence that the surrounding resources need to be throttled as a numerical value instead of a binary request flag.
Various combinations and enhancements of the above exemplary embodiments are possible. Also, they may be modified in different ways. For example, further actions may be taken in response to certain temperature readings. Warnings may be issued to a user, or memory allocations may be moved from overheated memory resources to another resource in order to protect data and prevent a break down of functionality. The respective actions may be triggered by additional orders and/or requests included in an algorithm. There may also be different thresholds for cooling measures and further actions. In case of an interrupt triggered evaluation process, it may be implemented that not only the triggering sensor is processed but also other sensors. Furthermore, several sensing cycles instead of a single one may be induced by an interrupt to produce reliable temperature readings, and/or to obtain a number of temperature values as a function of time which may be used as additional information for evaluation.
In order to read separate sensors in a die system as desired, e.g. for an interrupt triggered or continuous temperature sensing, a suitable hardware implementation is required. It is assumed that in the described example at least several sensors 22 located on one or more dies 2, 4, 6 are controlled by a single control unit or control entity. This entity may analyze, control and evaluate all temperature related issues in a die system, or only a part of it. The control system may be implemented as described above on a logical level. For reading the sensor values, the control may cycle through all the sensors activating only one at a time. The sensor value may then be sensed or read back using a shared signaling resource (cf.
The evaluation and throttling sequences as described by way of example above require selecting a specific sensor from the three-dimensional sensor arrangement in a die stack. There are several possibilities for achieving this effect. One option is to control the galvanic connection to the sensor by multiplexing. An implementation may include a single multiplexer on each die for all sensors arranged thereon, or several smaller multiplexers on each die. In other embodiments, other switching elements may be used. For example, a specific sensor may be selected by digital logic such as using control registers which are writeable from outside the die. The registers may act as switch control inputs, while the corresponding switches control a connection to a voltage or current source associated with the temperature sensors.
A first option for programming the sensor selection is to use programmable control registers that control which of the sensors is active. The information in the registers may be implemented in a one-hot, binary, or Gray encoding. One-hot refers to a group of bits where the only allowable combinations are those with a single bit set on high or 1, and all other bits on low or zero. Gray encoding usually refers to a modified binary encoding where two successive values differ in only one bit. All these and further register implementations which may be used in relation to inventive embodiments are known in the art and will not be explained here in more detail. Writing and possibly reading of such registers in a control system may be achieved through the normal data interface of a die.
Another option would be an interface containing a single data signal line and a single clock. These two signals may be referred to as a combined control signal in the following. The exemplary control line shown in
The first multiplexer shown on the bottom of the die in
If this signal from control to first multiplexer is not enabled, none of the sensors on this die will be active regardless of their control bits. The control signal (depicted as arrows) is then conveyed through the chain of multiplexers, giving signals which decide on the status of each multiplexer. Parallel to the control line, the electrical connections are shown between the multiplexers and to the thermal sensors as lines without arrows. In the present example, eight sensors are located on the die, and seven multiplexers are required for allowing to select a single one of these sensors. When more or less sensors are present on a die, the number of multiplexers used will also be different. From the last multiplexer on the die, the control signal continues to the sensor circuits on the next die within the system that is controlled by the same control entity. These further dies and their connections to the comparator, ADC and compensator are not shown in the figure. It will be understood that the control entity including the external sensing, evaluation and control elements may control any number of sensors on several dies.
Reading the selected sensor is accomplished as follows. A program is fed in via the control block. For each sensor to be selected, a specific program may be stored or generated in the control unit for controlling the multiplexer structures. The program is fed in with one bit per rising edge of the clock signal, which is not shown separately here but is included in the “control signal” of the figures. In the present case, the program may be “xx10xxx01”. It will be understood that the sequence of binary signals in such a program will depend on the specific set-up of the control lines, i.e. the way several multiplexers are connected to each other. When higher-order multiplexers are used instead of 2-1-multiplexers, a different control signal will be required to allow a selection of more than two outputs. In the present example, the first signal value is an enabled bit or ‘1’ fed to the “chip enable” multiplexer. This signal enables the selection of a sensor on the die. A ‘0’ at this point, i.e. on the last position of the example control program, would lead to the open line and thus prevent a closed electric connection with any of the sensors. The second signal is a 0, meaning that the upper set of sensors is chosen. It is seen from the figure that after this second multiplexer, the signals for the multiplexers associated with the four lower sensors are not relevant for the further result. This is why those signals, i.e. the next three signals in the example control sequence, are indicated as a value of ‘x’. After running through the three multiplexers of the lower sensor set, the multiplexer is reached which is directly connected to the selected sensor. Therefore, the signal of ‘0’ at this place together with the ‘1’ signal for the next multiplexer completes the electrical connection to the desired sensor. Again, after these multiplexers, the signal for the last multiplexer on the die connected to the remaining pair of sensors is not relevant, since the second-to-last multiplexer has prevented a connection of these sensors. Since only one die is considered in this example, the signal for a subsequent die is again not important and indicated with ‘x’. When further dies are connected into the control sequence, the signal sequence may continue with suitable signals in order to select a sensor on another die or to set the chip select signal for a further die to 0, which would prevent selection of more than one sensor.
Inside the analog-digital converter ADC, a current source is activated after programming of the control sequence. The ADC can then sense the voltage over the selected sensor, converting that voltage into a corresponding digital value. Subsequently the digital value is fed to the compensation block, which has individual information on the characteristics of all sensors and calibration information. Using this information, the ADC value is corrected to better correspond to the actual temperature on the die. Finally, the comparator compares this compensated value to the set threshold values and either produces an interrupt or a continuous status signal. On a third output, the compensated sensor value may be given, for instance for archival or long-term follow-up purposes. When an interrupt is generated in response to a sensor reading, the controlling and throttling of resources as described above may be triggered. It shall be noted that the control entity for controlling the resource activity may be included in the interrupt control described in connection with
In
The selection of a single sensor in an embodiment as in those examples may then be used for implementing sensing and evaluation loops as described above. However, it shall be noted that the above hardware examples are not necessarily restricted to stacked die implementations or to combinations with algorithms as those described above, but may be used in any implementation where a single specific sensor shall be selected and read.
Although exemplary embodiments of the present invention have been described, these should not be construed to limit the scope of the appended claims. Those skilled in the art will understand that various modifications may be made to the described embodiments and that numerous other configurations or combinations of any of the embodiments are capable of achieving this same result. Moreover, to those skilled in the various arts, the invention itself will suggest solutions to other tasks and adaptations for other applications. It is the applicant's intention to cover by claims all such uses of the invention and those changes and modifications which could be made to the embodiments of the invention herein chosen for the purpose of disclosure without departing from the spirit and scope of the invention.
Kuusilinna, Kimmo, Klint, Jani, Hill, Tapio
Patent | Priority | Assignee | Title |
10514305, | Mar 31 2011 | Intel Corporation | Induced thermal gradients |
Patent | Priority | Assignee | Title |
6954394, | Nov 27 2002 | SanDisk Technologies LLC | Integrated circuit and method for selecting a set of memory-cell-layer-dependent or temperature-dependent operating conditions |
6996491, | Feb 19 2002 | Oracle America, Inc | Method and system for monitoring and profiling an integrated circuit die temperature |
7149645, | Dec 30 2004 | Intel Corporation | Method and apparatus for accurate on-die temperature measurement |
7248524, | Jun 30 2004 | Thin Film Electronics ASA | Operating temperature optimization in a ferroelectric or electret memory |
7852138, | Dec 24 2007 | THINKLOGIX, LLC | Thermal sensors for stacked dies |
8037893, | May 03 2006 | CAVIUM INTERNATIONAL; MARVELL ASIA PTE, LTD | Optimizing thermal performance using thermal flow analysis |
20030102556, | |||
20050231925, | |||
20060265174, | |||
20070145578, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Aug 19 2011 | Nokia Corporation | Uniforce Tech Limited Liability Company | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029462 | /0707 | |
Dec 13 2012 | Uniforce Tech Limited Liability Company | (assignment on the face of the patent) | / | |||
Aug 26 2015 | Uniforce Tech Limited Liability Company | Gula Consulting Limited Liability Company | MERGER SEE DOCUMENT FOR DETAILS | 037360 | /0737 | |
Dec 22 2022 | Gula Consulting Limited Liability Company | INTELLECTUAL VENTURES ASSETS 186 LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 062756 | /0052 | |
Feb 14 2023 | MIND FUSION, LLC | INTELLECTUAL VENTURES ASSETS 186 LLC | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 063155 | /0300 | |
Feb 14 2023 | INTELLECTUAL VENTURES ASSETS 186 LLC | MIND FUSION, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 064271 | /0001 | |
Jul 15 2023 | MIND FUSION, LLC | THINKLOGIX, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 064357 | /0554 |
Date | Maintenance Fee Events |
May 09 2018 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
May 11 2022 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jul 22 2017 | 4 years fee payment window open |
Jan 22 2018 | 6 months grace period start (w surcharge) |
Jul 22 2018 | patent expiry (for year 4) |
Jul 22 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 22 2021 | 8 years fee payment window open |
Jan 22 2022 | 6 months grace period start (w surcharge) |
Jul 22 2022 | patent expiry (for year 8) |
Jul 22 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 22 2025 | 12 years fee payment window open |
Jan 22 2026 | 6 months grace period start (w surcharge) |
Jul 22 2026 | patent expiry (for year 12) |
Jul 22 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |