On Aug 16, 2013, at 3:03 AM, Clemens Ladisch <clemens@xxxxxxxxxx> wrote: Thanks Clemens! Seems like, there is big gap in my understanding. > Dev, Kapil wrote: >> On Thu, Aug 15, 2013 at 3:55 AM, Clemens Ladisch wrote: >>> On 08/14/2013 09:16 PM, Dev, Kapil wrote: >>>> I got a little confused about the way temperature-computation is >>>> explained on page 393. The interpretation of D18F3xA4[31:21] seems to >>>> be different based on the D18F3xA4[17:16] bits. >>> >>> These two bits should always be 00; Linux never tries to write the >>> temperature value. >> >> I see. It means that D18F3xA4[31:21] always denotes the Tctl >> temperature (control temperature). Where, Tctl <= Tmeasured <= >> Tctl+TmpMaxDiffUp. > > All four fields in bits 0..12 can make the shown temperature value > slightly out of date. This is intentional to smooth out the > measurements. > >> The value of TmpMaxDiffUp is between 0 and 9C > > No, it is between 0 and 9. > >> depending on the value of two bits, D18F3xA4[6:5]. Should I check the >> value of these two bits > > Over time, the average value should be accurate. > >> I noticed, that the reported temperature was very erratic, changing >> anywhere between 3 C and 30C, > > No, between 3 and 30. > >> even when there was no workload running on the cpu. > > When the CPU is mostly idle, even small wakeups for interrupts will > result in rather large relative changes in power consumption and, > therefore, power dissipation. > >> If I understand it correctly, the implementation is such that it >> reports following values: >> 1) Highest temperature = 70 > > This is not the highest possible value; temp1_max is the highest value > during normal operation. On AMD CPUs, this is the point at which the > CPU fan should run at 100 % (of TDP). > >> 2) Critical temperature = mostly 70; [...] which kind of means that >> D18F3x64[22:16] is mostly fixed to 36? > > This register has whatever value the BIOS has written into it. > >> 3) Hysteresis value: [...] Is the value of D18F3x64[22:16] fixed or >> it changes based on some condition? > > It changes when the BIOS (or somebody else) writes to it. > >> I am trying to compute the temperature values as accurately as >> possible because my project involves calibrating the die-temperature >> values against other measurements > > Did you read section 2.11.1? It says: > | Tctl does not represent a temperature which could be measured on the > | die or the case of the processor. Instead, it specifies the processor > | temperature relative to the maximum operating temperature > > The maximum operating temperature is defined as 70, but does not > correspond to a known absolute temperature. > > This temperature sensor is designed to control the CPU fan; it is _not_ > intended to result in a value that can be shown to the user in a way > that makes much sense. > Yes, I read it and I understood it in a way that Tctl is changed dynamically to track Tmeasured. Although, the scale of Tctl is weird, but I still thought these final values were still in degree C. I think that you are saying that the units of final reported values are not deg-C. I will read the document again, more carefully this time. I had following understanding: Based on page 220, fig-14, max operating T and Tctl_max are the same. Also, the temperature of the part is [Tctl_max - Tctl] below the max operating T, which is the same as Tctl_max. So, it kind of means that Tctl itself is the temperature of the part (without the slew-rate control). Thats why I assumed that TmpMaxDiffUp was between 0C and 9C because I assumed that Tctl had units of degree C. I thought that when they say the temperature of the part or measured temperature, they mean the die-tmperature coming through temperature calculation circuit (TCC). But, it seems like thats the wrong understanding. Little bit detail of what I intend to do: I have a high-end IR camera which I use to take real-time high resolution image of the processor. Unfortunately, I need to calibrate the camera itself against true temperature. I need two temperature-points at which the temperature reported by the sensor is correct; using those two points, I might be able to calibrate the camera in the entire range and could potentially figure out the discrepancy in reported temperature at every other temperature reading. I am not sure if I am clear; if not, please let me know. Also, I have come to know that these sensors are more accurate at higher temperature; but, this information is not sufficient enough. I am looking for those temperature values at which the reported value is the same as the absolute temperature of the die. I thought this value is 70C for AMD processor. If those values are high, I could achieve them by controlling the cooling of the processor. In my experiments, I remove the fan and use liquid cooling with controlled fluid-temperature. Regards, Kapil > > Regards, > Clemens _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors