MMM
Results 1 to 22 of 22

Thread: Tcase/Tjunction/Temp question

Hybrid View

  1. #1
    Registered User
    Join Date
    Nov 2006
    Location
    Israel
    Posts
    73
    I apologize but I only now had the time to review this.

    Next you have to assume that the Tjunction is 100 degrees Celsius and if bit 30 of MSR 0xEE is set then it is 85 degrees Celsius. At least that is what I have found by analyzing Linux Coretemp driver. After you have correct Tjunction, reading the DTS is simple.
    Here is a quote for one of the replies in that thread. Both the author of the coretemp.c driver and the guy I quoted have used reverse engineering to reach this assumption(that you can locate the TjMAX value which is either 85c or 100c). While it might be incorrect, I wonder how it has proved to be correct in so many cases and tests? Oddly enough, no one has never objected the assumption that the TjMax is either 85c or 100c. In addition, as mentioned in the quote they are verifying this data according to a certain bit in a specific register. How did they get this logic correct in so many cases if this assumption is incorrect?

    EDIT: A VERY important note - It seems that the DTS delta temperature is calculated from the PROCHOT# temp(TCC Activation temp). Maybe the right way to calculate the temperature would just be to supply the DTS value(which is negative), and to know that when it reaches 0 - the CPU will start throttling.
    The problem in this case is that PROCHOT# may differ from one CPU to another and it will make it impossible to keep an appropriate track on CPU temps that way. Is there a way to read the PROCHOT# value in each CPU? To my understading this is impossible.

    A nice test to see if this is correct would be to see if indeed several tested processors start throttling at 85C. If I remember correctly this is indeed the case. That would mean that while the temperature isn't really 85C(since it is related to PROCHOT#), it does give some kind of indication on the temps. If the PROCHOT# temperature is higher on one CPU, then that probably means that it is somewhat more durable than the other one with a lower PROCHOT# temperature.

    Any programmers in here dealing with this situation - it would be nice if you would jump into this discussion so we can try to finally reach a sensible conclusion.
    Last edited by GGuyZ; 03-21-2007 at 08:57 AM.

  2. #2
    Xtreme Member
    Join Date
    Jan 2007
    Location
    Vienna, Austria
    Posts
    330
    Quote Originally Posted by GGuyZ View Post
    I apologize but I only now had the time to review this.



    Here is a quote for one of the replies in that thread. Both the author of the coretemp.c driver and the guy I quoted have used reverse engineering to reach this assumption(that you can locate the TjMAX value which is either 85c or 100c). While it might be incorrect, I wonder how it has proved to be correct in so many cases and tests? Oddly enough, no one has never objected the assumption that the TjMax is either 85c or 100c. In addition, as mentioned in the quote they are verifying this data according to a certain bit in a specific register. How did they get this logic correct in so many cases if this assumption is incorrect?

    EDIT: A VERY important note - It seems that the DTS delta temperature is calculated from the PROCHOT# temp(shutdown temp). Maybe the right way to calculate the temperature would just be to supply the DTS value(which is negative), and to know that when it reaches 0 - the CPU will shut down.

    The problem in this case is that PROCHOT# may differ from one CPU to another and it will make it impossible to keep an appropriate track on CPU temps that way. Is there a way to read the PROCHOT# value in each CPU? To my understading this is impossible.

    Now that I think about it, this assumption is actually impossible. If this was indeed correct, then whenever the CPU temp reaches 85C(or 100C in C2Q) we would have encountered CPU shutdown. This is obviously ridiculous.

    Any programmers in here dealing with this situation, it would be nice if you would jump into this discussion so we can try to finally reach a sensible conclusion
    you are almost there! to make this even more complicated, intel introduced two different thermalpoints:
    • PROCHOT# signals, TCC thermal control circuit activation => aka throttling
    • THERMTRIP# thats the point, where the processor signals to the bios to shutdown the system

    you are right, DTS reports a negative value which in fact is the current temperature delta to PROCHOT# (TCC activation)

    both temperature values (PROCHOT# and THERMTRIP#) are calibrated during manufacturing and set by burning some bridges directly on the die. thus, this values can't be changed afterwards but what hurts even more, can't read by software. additionally, this temperatures differs from die to die.
    some steppings of the mobile c2d processors indicate this temp to be approximately 85 or 100 via a single bit in the EXT_CONFIG register (msr 0EEh) but desktop, workstation and server processors don't. (this statement is from a forum at intel and from an intel representative)

    you ask: "How did they get this logic correct in so many cases if this assumption is incorrect?" well, in the past in most cases the programs used accidentally the correct value either 85c or 100c although this was not correct either. it could have been 83c or even 88c - nobody knows!

    the best solution, as i assume, would be the one you already mentioned: use plain dts readings!
    let's get rid of all this hype about absolute temperatures and focus just on plain DTS readings. i personally prefer to know the degrees i'm away from THERMTRIP# instead a 'virtual' temperature that might be correct or some degrees off nobody knows how far off!

    if i got the feature list correctly, coretemp will show this value in the current release. unfortunately there is another bug within coretemp 0.95, so i'm not able to verify this. in the meantime, you can calculate DTS back by yourself: DTS = Tjunction - Tcore (coretemp)
    Processor: Intel Core i7 990X
    Motherboard: ASUS Rampage III Extreme
    Memory: Corsair CMT6GX3M3A2000C8
    Video Card: MSI N680GTX Lightning
    Power Supply: Seasonic S12 650W
    Case: Chieftec BH-01B-B-B

  3. #3
    Registered User
    Join Date
    Nov 2006
    Location
    Israel
    Posts
    73
    fgw, I appreciate the reply. However, even before you replied I've edited my message. I confused PROCHOT# with THERMTRIP# for a moment. I immediately corrected myself.

    This is what happens when you write long messages from work. But in any case, I believe we now hold the same opinion, because what I've written matches your response almost completely.

    From now on I am going to recommend people to not look at the temperature as an absolute one, but as a relative one to the pseudo TjMax. I.E: 60c in a C2D is 25c before the THERMTRIP#, while 60c in C2Q is 40C before that.

Bookmarks

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •