The Notebook Review forums were hosted by TechTarget, who shut down them down on January 31, 2022. This static read-only archive was pulled by NBR forum users between January 20 and January 31, 2022, in an effort to make sure that the valuable technical information that had been posted on the forums is preserved. For current discussions, many NBR forum users moved over to NotebookTalk.net after the shutdown.
Problems? See this thread at archive.org.

    Undervolting CPU cache (Ring offset) in BIOS

    Discussion in 'Sager and Clevo' started by TGFB3, Mar 27, 2020.

  1. TGFB3

    TGFB3 Notebook Enthusiast

    Reputations:
    6
    Messages:
    36
    Likes Received:
    13
    Trophy Points:
    16
    I have managed to undervolt stably to -90 mW in my P775 TM1-G, but the Bios option only modifies the core undervolt. I cannot find the CPU cache option in the Bios (I do not know exactly how is it called). My reseller is Obsidian PC and I am using their Bios which in theory has all settings unlocked.

    If I use XTU (via their Control Center) to undervolt it does it to the cache, but I cannot boot into Bios even from within Windoes (advanced startup) and I think it is because it´s resetting itself due to the cache undervolt not being entirely stable. Is there a Bios undervolt option? The undervolt itself is stable if applied from within the OS, but as soon as I reboot I can see it booting, failing, resetting itself, then boots again and reapplies the undervolt from Obsidian CC. Any ideas? Should I e.g use Throttlestop to apply the undervolt on-boot instead?
     
  2. yrekabakery

    yrekabakery Notebook Virtuoso

    Reputations:
    1,470
    Messages:
    3,438
    Likes Received:
    3,688
    Trophy Points:
    331
    Core and cache use the same voltage. Any undervolt you apply to the core, the same amount is applied to the cache as well. You can verify this in the FIVR window in ThrottleStop after setting your undervolt in BIOS.
     
  3. TGFB3

    TGFB3 Notebook Enthusiast

    Reputations:
    6
    Messages:
    36
    Likes Received:
    13
    Trophy Points:
    16
    I checked; it does not show any change in the cache voltage in my case:
    upload_2020-3-27_17-35-29.png

    It also looks the same in HWInfo or XTU.
     
  4. TGFB3

    TGFB3 Notebook Enthusiast

    Reputations:
    6
    Messages:
    36
    Likes Received:
    13
    Trophy Points:
    16
    Two further questions:
    1. does Throttlestop report incorrect current limit values? If I go by what says in the BIOS my current limit is 100 (800/8), but it seems that TS is calculating with ICCMax/4 formula. I think the one in the Bios is the correct one as according to TS the default setting of 600 is 150A, but with a 95 PL1 and 1.06(ish) max volts I run into current limit throttle on extended operations (which would make sense since 95W at that voltage are more than 75 Amps).
    2. Do I have to get the cache and core undervolts to match, or is it not necessary?
     
  5. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,815
    Messages:
    6,414
    Likes Received:
    6,732
    Trophy Points:
    681
    If the BIOS is not setting the CPU core and cache voltages equally then your undervolt might not be working. The monitoring table in the top right hand corner monitors the CPU voltages every second. It shows the CPU cache offset at +0.0000. Use ThrottleStop to adjust the cache voltage to the same value as your core voltage and see if that makes any difference to temperatures or performance when testing.

    If -100 mV is stable for both the CPU core and CPU cache offsets, try increasing the CPU core offset further. Some users claim that staggering these voltages will work on 8th, 9th and 10th Gen CPUs. I have not done any hands on testing that proves or disproves this theory.

    It might. Without full access to any relevant documentation from Intel and without access to a wide variety of hardware, ThrottleStop may very well be wrong.

    When testing, remember to delete the ThrottleStop.INI config file each time before you reboot. That will force ThrottleStop to read the current limit values directly from the CPU after you boot up. I do not recall any problems with the PP0 Current Limit being reported in the TPL window.

    Are the IccMax values incorrect? When testing, I found two separate values available within the CPU. I know the first one is definitely IccMax but I still do not know what the second value refers to. This second value can be changed by adjusting the Cache IccMax slider in ThrottleStop. This mystery value might not have anything to do with Cache IccMax.

    Your screenshot above shows 20.00 Amps for this value. When testing, setting this value high or low did not seem to make any difference. On the CPU I tested, adjusting Core IccMax in XTU did not change this value within the CPU. I left adjustment of this available just in case it might be important someday. It might be important in a different or in a newer CPU. Leave it set to 20.00 if adjusting this does not solve any problems for you.

    As for the CPU Core IccMax, I tried to follow Intel XTU on that one. For the CPU I tested, I made sure that a Core IccMax setting in XTU and the same Core IccMax setting in ThrottleStop would set the IccMax register in the CPU to the same value.

    Does a current limit setting in your BIOS set the PP0 Current Limit and the IccMax current limit to the same value or to different values?

    The best thing to do is to set all of these current limits sky high. The main purpose of ThrottleStop is to stop any unnecessary throttling. Going high will accomplish that.

    ThrottleStop has proven to reliably apply its settings to the CPU on startup or when resuming from sleep or hibernate. I would not let anything XTU related touch the CPU's voltage and current control registers. XTU has proven to be completely unreliable. Nice graphs though!
     
  6. yrekabakery

    yrekabakery Notebook Virtuoso

    Reputations:
    1,470
    Messages:
    3,438
    Likes Received:
    3,688
    Trophy Points:
    331
    That’s strange. Even on the stock Clevo BIOS, any undervolt I set in BIOS would be applied equally to core and cache in ThrottleStop.
     
  7. TGFB3

    TGFB3 Notebook Enthusiast

    Reputations:
    6
    Messages:
    36
    Likes Received:
    13
    Trophy Points:
    16
    I tested again and it´s exactly as you say with XTU; with Throttlestop I could change the cache voltage on-start and still boot into the BIOS. I also tried again the internal Obsidian tool (which downloads XTU, but does not use it and I suspect works in the same way) but did not start XTU at all this time, and I found the issue. It seems that XTU will write the config changes to the BIOS, and now I am able to get into the BIOS with those settings.

    So I suspect that the Bios doesn´t like cache undervolts, but when I tried it in the Obsidian tool at -100, it did work okay in the XTU/Prime95 stress test.

    Another benefit (and the reason I am sticking with Throttlestop over the Obsidian CC for undervolting purposes) is that it solves a weird-*** issue I have: if I use the FN+3 hotkey (disables audio) it would cap the PL1 at a third approximately, going away on reboot. I do not know how or why this happened, but I suppose TS effectively removes it as it re-applies the settings from the Bios which it loads on boot. It also fixes the battery power state not going back to the AC power. I still need to find a way for getting the CPU cache undervolt in Bios since I will need to use Linux in the future for a specific program (Relion) which is gonna give a beating to the CPU and GPU, but will cross that Rubicon when I get to it.

    The core undervolt was definitively working as I see the average voltage go down by that value on Prime95, CCPNMr, PyMol and RealBench (so both benches and real tools), from 1.25 to 1.16. The Cache undervolt however makes things go better on the small FFT test in Prime (+300 MHz in steady state) so definitively leaving it undervolted in TS. Adding the TS undervolt to the cache seems to however have shaved at least 3C off the Blend test, will see what happens when I also stress the GPU in parallel.
    I think the 20 Amps might be the voltage regulator by what it says in the Bios (it´s under that section in the Obsidian bios, at least). I am not going to touch it because I have a talent to make computers go ker-splat.

    That one goes by 1/4 Amp increments so the Throttlestop value is accurate (80/4=20). The ICCMax, however, goes by 1/8 in my Bios, so if Throttlestop reads it it will report double if it is using the same 1/4 formula. So I will adjust the ICC so it reads double in Throttlestop (in my case, 200 A for a real limit of 100A which is what I adjusted the PL1 to) since it seems it´s a Bios-specific thing in this case.

    Also, thank you for taking the time for replying this - it´s a lot of info which solves most of the questions I have! (on top of for making Throttlestop itself...)
     
    Last edited: Mar 27, 2020
  8. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,815
    Messages:
    6,414
    Likes Received:
    6,732
    Trophy Points:
    681
    If the Obsidian tool uses the Intel XTU library, it might have some of the same reliability and inconsistency problems that Intel XTU has.
    Just keep in mind that if you adjust the offset voltage in ThrottleStop but you do not adjust the cache voltage, monitoring software might show the reduced voltage but that does not confirm anything. The voltage adjustments in ThrottleStop are only requests. If the CPU gets a request that it does not fully understand, the entire request might be ignored or some of the voltage request might be ignored.

    The best way to confirm if the CPU really did lower the voltage is to put a constant load on the CPU like the TS Bench 1024M test. While the CPU is loaded, enable the core only voltage change and then change the core offset voltage back to zero. Go back and forth a few times like this and watch for a change in the CPU temperature. Core temperatures are the most reliable confirmation of a change in voltage or power. If the CPU is power limit throttling, the temperature during this test might stay about the same but then you would expect to see an increase in MHz.

    In your situation, you need to compare -90 mV core and 0 mV cache to 0 mV core and 0 mV cache. That way you should be able to determine if under volting only the CPU core is actually doing anything or not. If there is no consistent and measurable difference, that would confirm that adjusting only the core offset voltage by itself is not actually accomplishing anything. The CPU is ignoring that request.

    Software reported power consumption is a number calculated within the CPU. It is some sort of approximation. It is not actual measured power consumption so this data might be misleading when only the core VID voltage is being changed.

    On my 7th Gen Asus desktop board, I am pretty sure that what I enter in the BIOS for current, shows up correctly in ThrottleStop.
     
  9. TGFB3

    TGFB3 Notebook Enthusiast

    Reputations:
    6
    Messages:
    36
    Likes Received:
    13
    Trophy Points:
    16
    That makes sense; I tried what you said and when I undervolt the cache, the temps stay the same (because my main limit is PL1 throttle) but the clocks only raise from stock if I undervolt the cache as well in Prime (3.6 sustained vs 3.8 sustained, small FFT test), whereas with an under.

    Blend test (constant PL1 throttle at 95W)
    No offset: 3.9 GHz, 71 C
    Core offset only: 4.3 GHz, 71C
    Core+cache offset: 4.3 GHz, 71C

    If I limit turbo to 43X then it no longer PL1 throttles and stays around 92W

    Small FFT test (constant PL1 throttle at 95W)
    No offset: 3.4 GHz, 73C
    Core offset: 3.6 GHz, 73C
    Core+Cache offset: 3.8 GHz, 73C

    So it seems that both undervolts do something on their own.

    Is there a way to disable the short power limit in TS? I am trying to cap the consumption at 95W in both cases but if I set the PL2 equal to PL1 then the PL1 target is never reached due to ring EDP (it will go 2-3W under that limit). I have limited the x8 multiplier to approx the 95W target and the turbo time to 1s but I do not know whether there is a better approach.

    I think the ICCMax value is just a particularity of this Bios using a 1/8 factor instead of the 1/4 which seems more common. Maybe @ John@OBSIDIAN-PC knows better, I believe he is the one who codes their Bios and Control Center
     
    Last edited: Mar 28, 2020
  10. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,815
    Messages:
    6,414
    Likes Received:
    6,732
    Trophy Points:
    681
    It is possible for the BIOS to set non-standard factors. All of the ones that I can remember seeing use 1/4 for IccMax and 1/8 for the PP0 Current Limit. I double checked my Asus desktop board and what I enter into the BIOS for IccMax shows up in ThrottleStop as the same values.

    Always good to do your own testing so you can confirm what works best on your CPU.

    If you are getting EDP across all 3 domains, try increasing your PP0 and IccMax current limits. These should all be maxed out.

    You can try clearing the box for this ThrottleStop feature. When you do this, I am not sure if the CPU will use a default value or if it will completely ignore this power limit. The best advice is do not live on the edge like this. Increase your turbo power limits appropriately. Nothing wrong with a little bit of thermal throttling if things get too hot.
     
  11. TGFB3

    TGFB3 Notebook Enthusiast

    Reputations:
    6
    Messages:
    36
    Likes Received:
    13
    Trophy Points:
    16
    When I uncheck it in TS, it seems to go back to whatever is set in the BIOS (110 in my case). I´ve left it at 95 PL1 and 100 PL2, and that does away with the EDP.
    What does PP0 stand for? Package? It´s set at 0 so I assume that means is at the Bios defaults.
    I have raised ICCMax from 100 to 125 and that seems to have solved the issue. I assume the dangers of current are related to temperature of the chip, and as long as the power/thermal throttle is present it won´t cause damage? Electrical engineering is not something I am very well versed on.
     
  12. Falkentyne

    Falkentyne Notebook Prophet

    Reputations:
    8,396
    Messages:
    5,992
    Likes Received:
    8,633
    Trophy Points:
    681
    Cache cannot be undervolted on fixed voltage. That's impossible.

    However these laptops do NOT use fixed voltage. They use VID (meaning the AC Loadline comes into play), and "override" voltage simply tells the motherboard to replace the base CPU VID with the override value, which is not the same as fixed voltage. Offset mode simply applies a +/- offset to the base CPU VID. The base VID which we will call "vCPU" is the VID when AC Loadline and DC Loadline are both set to 0.01 mOhms (1) in internal VR settings.

    CPU Vcore for offset mode is actually this formula:

    (courtesy of Elmor):
    Vcore= vCPU + (AC Loadline mOhms * dI) - (Loadline Calibration mOhms * I) + vOffset.
    where dI=d1-d0. Whatever the hell that means.

    @Prema

    I=CPU Current (Amps).
    (Remember that override mode is nothing more than offset mode with the vCPU written as a new VID.
    You can apply an offset even in override mode, which should be proof of that), in "Overclocking Performance Menu"

    Although VID you see in windows is:
    vCPU + (AC Loadline mOhms * dI - DC Loadline mOhms * I) + vOffset. ** (On desktops, voffset does not change VID)
    Loadline calibration (LLC) can not be adjusted on laptops. Should be 2.1 mOhms on 4-6 core and 1.6 mOhms on 8 core CPUs.

    But changing DC Loadline doesn't seem to change the end vcore, only the reported VID.

    In my own testing with undervolting cache, the cache voltage gets used in AVX loads and the higher of the two voltages gets used in non AVX loads (Or maybe it was the other way around, I forgot. I did post my results in the Throttlestop thread a long time ago).
     
  13. TGFB3

    TGFB3 Notebook Enthusiast

    Reputations:
    6
    Messages:
    36
    Likes Received:
    13
    Trophy Points:
    16
    I meant that on steady state load, after 30 min in Prime Small FFT/Blend, the average voltage (which is the VID in HWinfo I supposed, also based on what you said) was lower, not that I fixed the voltage.

    I had noticed that on Small FFT the voltage is higher if I do not undervolt the cache, which would explain why I get an increase of performance only in Blend with a core undervolt only but I get increases in Small FFT with both.