Friday, August 2, 2024

Copy of a comment I left under the Techquickie video: Intel's CPU Crashes Explained

I haven't seen a single example of a motherboard providing more voltage than what the CPU sent in a VID request.

How intel CPUs generate VID request is kinda horrible it's basically:
V/F point (a baseline voltage value for a given clock speed)
+ temperature compensation(you need more voltage to run the same clocks at higher temps)(only a couple mv per 10deg of CPU temp)
-  TVB optimization (TVB applies a negative offset to the VID based on how cool the CPU is running when enabled)(it also blocks the CPU from running TVB clocks if temps aren't low enough)
+ ACLL * expected current (this is added to the VID request to compensate for the Vdroop applied by the motherboard)

Setting the ACLL too low for most boards basically took the following form:
VRM LL = 1.1mOhms (NOT DCLL, DCLL is for something else)
ACLL = 0.3-0.6mOhms (varies by board vendor and CPU)

What the ACLL not matching VRMLL would cause the voltage to be too low at high loads. For example:
At 200A the CPU requests 1.3V VID with 0.4ACLL. The CPU expects to recieve 1.3V - (0.4mOhm * 200A) = 1.220V. The motherboard however has a VRMLL of 1.1mOhm and so it provides 1.3V - (200A * 1.1mOhm) = 1.080V. If you got lucky with the silicon lottery your CPU would still work even with this 140mv undervolt. If you got unlucky the CPU would crash.
At low loads however this ACLL mismatch doesn't really do much. For example:
At 20A the CPU requests 1.45V with 0.4ACLL so it expects to reciew 1.45V - (0.4mOhm * 20A) = 1.442V. The motherboard delivers 1.45V - (1.1mOhm * 20A) = 1.428V. This is still less voltage than the CPU expected but it's only of by -14mv so it doesn't lead to any problems.

Disabling TVB boosts voltages because TVB acts as follows(on a 14900K):
CPU sees single core load.
CPU checks if temp is less than TVB temp(supposed to be 70C) then:
CPU can use the 6GHz V/F point.
The 6GHz V/F point has a VID of say 1.5V
TVB optimization subtracts some voltage from that (AFAIK it's usually ~50mv but I'm not sure how the negative offset value is generated)
So the CPU requests 1.5(V/F point)  - 0.05V TVB optimization + (ACLL * expected current)
If the CPU temps is more than the TVB temp the CPU doesn't attempt to run 6GHz at all.

Now if you turn TVB off... the following happens:
CPU sees single core load
CPU goes to 6GHz
6GHz has a V/F point of 1.5V
CPU send VID request for 1.5V + (ACLL * expected current)
And the CPU will send that VID request all the way upto 100C (because that's the TjMax set by intel)

Technically the fact that turning TVB off doesn't disable the 6GHz V/F point does mean that the motherboard is runnign more voltage than intel spec any time the CPU is running at 6GHz. However it is still the CPU that's ultimately deciding to request that voltage. So IMO intel should've probably implemented TVB as an extension to the turbo boost table rather than as a leash for the highest V/F points. (basically intel's boost algorithm compared to AMD and Nvidia's is kinda dumb)

Now the really really high core voltages that you sometimes see on LGA1700 motherboards are actually a direct consequence of intel's (ACLL * expected current) thing. Because if the CPU sends of a VID request with a high ACLL when expecting a high level of current draw and that current draw isn't there(say like right at the end of an all core work load). You get a TON of extra voltage. The i9s are by far the worst for this because they have the highest possible expected current value and so they will send VID requests for way more than 1.55V in scenarios where it's completely inappropriet to do so and TVB/ICCMAX/CEP/power limits don't do anything about it(because this happens when the temps, power and current draw arelow). That's probably why even server boards with all the limits and safeties turned on are chewing through i9s. This is what the mid August patch should be fixing.

For now on some motherboards you can tell the CPU to not send VIDs greater than whatever voltage you feel comfortable with by setting a VR Voltage limit (IDK why intel didn't just ship the CPUs with this enabled).

Saturday, January 6, 2024

ASUS GTX 760 DirectCu II Vcore mod.

This mod is primarily for those too lazy to do a parallel VID mod. The RT8867A will trip OVP if you try to do a standard FB pin based mod so this is the rather sketchy but convinient alternative.

 

Monday, November 20, 2023

Why raising tREFI or lowering tRFC has diminshing returns on performance

 I'm pretty sure I've mentioned this in a video or something but anyway: 

As tRFC ÷ tREFI approaches 0 further reductions in tRFC or increases in tREFI will impact performance less and less.
 
tREFI increasing:
800tRFC with 8 000 tREFI = 10% of clock cycles are spent on refresh 
800tRFC with 16 000 tREFI = 5% of clock cycles are spent on refresh 
800tRFC with 32 000 tREFI = 2.5% of clock cycles are spent on refresh
800tRFC with 64 000 tREFI = 1.25of clock cycles are spent on refresh
800 tRFC with 128 000 tREFI = 0.625% of clock cycles are spent on refresh
 
so going from 8K to 32K gives 7.5% more useful clock cycles >> big performance increase
going from 64K to 128K gives you an extra 0.625% >> basically no performance increase
 
tRFC decreasing:
800tRFC with 8 000 tREFI = 10% of clock cycles are spent on refresh 
400tRFC with 8 000 tREFI = 5% of clock cycles are spent on refresh 
200tRFC with 8 000 tREFI = 2.5% of clock cycles are spent on refresh 
100tRFC with 8 000 tREFI = 1.25% of clock cycles are spent on refresh 

incase you don't know what tRFC and tREFI are:
DDR memory needs to be "refreshed" in order to retain data because it stores data as charge on capacitors that slowly discharge over time.
tRFC is how long the memory controller waits after sending a REFRESH command before sending other commands (like ACTIVATE, READ, WRITE, PRECHARGE....)
tREFI is how often the memory controller sends REFRESH commands.

Tuesday, May 2, 2023

(WIP) The state of my motherboard collection/wishlist

Boards that are indented are boards I have and intend to keep. Boards that aren't indented are boards I don't have yet... Boards that I only have for review purposes are not on this list. WIP in the sense that this list doesn't include every board in my collection yet. My dream is to some day have test data for most if not ALL of these boards as well as PCB breakdowns.

INTEL

LGA1700
ASUS Z790 Apex
ASUS Z790i Strix
        EVGA Z790 DARK
EVGA Z690 DARK
        GIGABYTE Z790 Tachyon
        GIGABYTE Z690 Tachyon
        MSI Z790i EGDE
MSI Z690i Unify
        MSI Z690 Unify X
Asrock Z690 Aqua OC

LGA1200
ASUS Z590 Apex    
        ASUS Z490 Apex
        EVGA Z590 DARK
EVGA Z490 DARK
        Gigabyte Z590 Tachyon
MSI Z590 Unify X
        Asrock Z590 OC Formula

LGA1151v2
ASUS Z390 Apex
        ASUS Z390 Gene    // ASUS did eventually fix A2 DDR4 PCB compatibility
ASUS Z390 Extreme    // contestant for best T-top
Gigabyte Z390 Xtreme     // contestant for best T-top
        Gigabyte Z390 Master    // very solid T-top
        Gigabyte Z390i Pro    // tried to power bridge mod a CPU on this

MSI Z390i    // RAM OC
MSI Z390 Godlike    // should be a beast daisy-top
        EVGA Z390 DARK    // amazing as long as you use the right mem sticks
        Asrock Z390i Phantom Gaming    // good VRM otherwise kinda meh

LGA1151
        ASUS Z270 Apex    // had some issues last time I used it
ASUS Z170 Impact
Gigabyte Z270 Gaming SOC
        Gigabyte Z270i Gaming
MSI Z270 Xpower Titanium
Asrock Z170M OC Formula
        EVGA Z170 Stinger    // ITX with a POST CODE!

LGA1150
ASUS Z97 Impact
        ASUS Z87 Extreme
        ASUS Z87 Impact    // broken chipset / BIOS
Gigabyte Z97 SOC Force
        Gigabyte Z87 G1 Sniper 5
MSI Z97 Xpower
        MSI Z87 Xpower // BIG BOARD WITH BIG VRM
        Asrock Z97 OC Formula    // fixed bent pins
Asrock Z97M OC Formula ??
        Asrock Z87 OC Formula    // very broken
        Asrock Z87M OC Formula    // fixed bent pins

LGA1155
ASUS Z77 Extreme
ASUS Z77i Deluxe
        ASUS Z68 Extreme-Z
        Gigabyte Z77 UP7    // I have 2 of these. don't ask me why
Gigabyte Z68 UD7
        Gigabyte Z68 UD5    // huge VRM using cascaded doublers need I say more
        EVGA Z77 FTW    


LGA2066
ASUS Rampage VI Extreme Encore
        ASUS Rampage VI Apex // still haven't fixed SIO voltage reading issues
        EVGA X299 DARK    // I wish it had VTTDDR control
        EVGA X299 Micro 2    // mini-DARK modded for better RAM OC
        Asrock X299 OC Formula    // weak RAM OC on Sky-X. Good for Kaby-X on LN2

LGA2011v3
ASUS Rampage V Edition 10
        Gigabyte X99-SOC Champion // just an amazing board in general
MSI X99A XPower
        MSI X99A XPower Titanium    // great at ambient but has CB bellow -90C
Asrock X99M Killer USB3.1
Asrock X99 OC Formula
        EVGA X99 Classfied    // it was very cheap on Ebay IIRC

LGA2011
        ASUS Rampage IV Black Edition // fixed bent pins
        ASUS Rampage IV Extreme    // my first motherboard
        Gigabyte X79 UD7
        MSI X79 Big Bang II Xpower    // BIG wacky VRM
        Asrock X79 Extreme 7     // wacky RAM topology
        Asrock X79 Extreme 11    // unfortunately very broken

LGA1366
ASUS Rampage 3 Black Edition
        ASUS Rampage 3 Extreme
ASUS Rampage 2 Extreme
        Gigabyte X58A-OC     // I've got 2 of these :D one needed pin unbending
        Gigabyte X58A-UD9     // BIG WEIRD VRM
        Gigabyte X58A G1.Assasin    // BIG GREEN BOARD
        Gigabyte X58 Extreme    // broken pins causing 1 RAM channel to not work
MSI X58 Big Bang
        EVGA X58 Classified 4way
EVGA X58 Classified 3
EVGA X58 Classified
        EVGA SR-2
        Sapphire X58 Pure Black    // I AM A MASSIVE SAPPHIRE FAN
        Foxconn X58 Blood Rage    // had to E-power the QPI? VRM
Biostar X58 T-power    // probably sucks but looks intresting
DFI UT X58 T3eH8    // I want at least 1 DFI board but it can't be on socket I don't already have

 

AMD

AM5
ASUS X670E Gene
        Gigabyte B650E Tachyon
MSI X670E Carbon
ASrock X670E Taichi

AM4
ASUS X570 Extreme
ASUS X570 DARK Hero
ASUS X570 Impact
        ASUS X570i Strix    // modded for 1.8+ VDDR and better VTTDDR control
        ASUS X470 Hero    // meh at ambient. easy LN2 with 2700X
ASUS B550i Strix
        Gigabyte X570 Xtreme    // my current daily board
        Gigabyte X570i PRO ES    // fished out of the recycling bin at Gigabyte HQ
        Gigabyte X570S Master    // great RAM OC. Awful Vcore regulation
        Gigabyte B550 Vision D-P    // SOC VRM exploded once. I repaired it
        Gigabyte X470 Gaming 7    // haven't repaired yet / best T-top?
        Gigabyte X370 Gaming K7    // best T-top?
        Gigabyte X370 Gaming K5    // oof VRM great T-top
        MSI X570 Godlike    // the only "good" thing about this is the PCI-e layout
    
    MSI X570 Unify X    // super strong board with a chipset that hates BCLK OC
        MSI B550 Unify X    // amazing OC board
        MSI B450 Mortat Titanium    // it's TITANIUM
Asrock B550 Taichi     // B550 Steel Legend with upgrades?
        Asrock B550 Steel Legend    // great voltage regulation. Solid RAM OC

AM3(+)
        ASUS 990FX Formula-Z
        ASUS 990FX Formula
        ASUS 890FX Extreme
        ASUS 890FX Formula
Gigabyte 990FX UD7
        Gigabyte 990FX UD5    // doesn't go over 1.9ish Vcore IIRC
        Gigabyte 990FX G1 Gaming    // VRM sucks but RAM OC and valids are STRONK
        Gigabyte 970 UD3P    // VRM modification test subject
        Gigabyte 890FX UD7
MSI 990FXA GD80
MSI 890FXA GD70
        Asrock 990FX Extreme 9    // BIOS is mega jank
        Asrock 990FX Fatal1ty Profesional    // seems OK
        Sapphire 990FX Pure Black     // Sapphire fanboying INTENSIFIES
        Biostar 890FXE    // there's an inductor on this board that isn't connected to anything

 FM2(+)     
ASUS A88X Ranger
    
    ASUS A88X-Pro    // modded for extra Vcore and I think broken ATM
Gigabyte A88X UP4
Gigabyte F2A88XN    // better RAM OC than 4 dimmers?
        Gigabyte A85X UP4
MSI A88X-G45 Gaming    // IDK if it's any good but it looks cool IMO

sTR4
ASUS Zenith II Extreme
        Gigabyte TRX40 Master    // repaired a VDDR phase
        MSI TRX40 Creation

Thursday, April 20, 2023

DDR memory latency

DDR memory latency not including memory controller for a single READ command.

READ to an already active row
tCL

READ with memory idle
tRCD >> tCL

READ to a different row in the same bank as an already active row
tRP >> tRCD >> tCL

READ right before or during a refresh
tRFC >> tRCD >> tCL

READ to a different row in the same bank in which a row was just activated
tRAS >> tRP >> tRCD >> tCL

Timings are measured in clock cycles. Therefore DDR4-3200 CL16 has the same memory latency as DDR4-4000 CL20. Same for say DDR5-6000 CL30 and DDR5 7600 CL38. 

To get the ns latency of a timing just divide the timing by the memory clock in GHz(which is half the data rate). For example:

DDR4-3200 CL16
memory clock = 1.6GHz
16/1.6GHz = 10ns

DDR5-7200 CL34
memory clock = 3.6GHz
34/3.6 = 9.44ns

At this point it might seem that as long as the memory timing latency in ns is the same the memory clock has no impact on overall memory latency. However this is not true because the RAM is not directly connected to the CPU cores. It is connected to a memory controller. The memory controller adds it's own latency to the latency of the RAM increasing the overall core to memory latency. How much latency the memory controller adds depends on it's design and clock speed. The clock of the memory controller is directly related to the memory clock. Usually in ratios like 1:1 1:2 and 1:4. Therefore to reduce the latency from the memory controller it is necessary to raise the memory clock.

The memory controller itself is also not usually directly connected to the CPU cores. There is typically an interconnect between the cores and memory controller which adds even more latency. Again how much latency is added depends on the design of the interconnect and it's clock speed. So again the latency can be reduced by raising the clock speed of the interconnect. The interconnect may or may not have a fixed ratio relationship with the memory controller clock potentially with a latency penalty for having to buffer data.

Finally how quickly the cores can process the data arriving from the memory will somewhat influence any software memory latency test.

Basically on intel
more core clock >> less latency
more ring clock >> less latency
more MC clock >> less latency
lower timings >> less latency *

on AMD Ryzen 7000
more core clock >> less latency
more IF clock >> less latency **
more MC clock >> less latency
lower timings >> less latency *

on AMD Ryzen 5000
more core clock >> less latency
more IF clock >> less latency
more MC clock >> less latency
synchronized IF and MC clock >> less latency
lower timings >> less latency *

 

* tREFI is the one timing that you need to increase in order to reduce memory latency. This is because increasing the tREFI reduces the probability that a READ command will have to wait for a refresh to complete as refreshes will be less frequent.

** Ryzen 7000 doesn't seem to have IF to MC synchronization because the IF runs at around 2GHz while the memory controller runs at 2.4-3.2GHz(3.2GHz if you're lucky) so the data beween the MC and IF is always buffered and there's no "synchronization bonus"

Wednesday, September 14, 2022

Why buying the most expensive motherboard for a given platform makes you an idiot

I don't have a problem with expensive hardware. If I could afford it I'd buy a 3090 Ti. I do have a problem with people paying more for a worse product. A 3090Ti is just better than a 3090. It's faster and the build quality is much better. The same is not true with motherboards.

The issue is that most of the time the most expensive board for a given platform simply isn't the best.

 

For example the Z690 Godlike which at the time of writing is 1200USD. 

When it comes to memory performance it's just worse than the 470USD Z690 Unify-X because a daisy chain topology simply can't do the speeds that a 1 dimm per channel topology can. So if you care about having the absolutely best CPU+RAM performance the Godlike doesn't have it.

In terms of features the Z690 Godlike uses the exact same Marvell AQC113C 10G lan controller found on the 470USD Gigabyte Z690 Aorus master.

The Z690 Godlike uses the exact same 105A power stages that the Z690 Unify-X uses.

In terms of Vcore regulation the Z690 Dark/Apex/Tachyon should either match or beat the godlike as they use similar or better output filtering components.

The Godlike has an 8 layer PCB. Same as the Z690 Unify-X or Apex. It's actually less layers than the Z690 Tachyon and Dark. This in and of itself doesn't really do anything to performance but it's worth pointing out that you aren't really getting more PCB for your 1200USD compared to a 400-850USD boards.

Now it would be tempting to think that at 1200USD the Godlike would at least get better BIOS support. However in practice motherboard manufacturers put most of the BIOS development effort into the popular boards not the expensive ones. After all a BIOS bug affecting 10 000+ users is far more important than one that affects 1 000 users.

 

You may think that the most expensive board would at least get more hardware validation. This also isn't true. If you want the most validated hardware you should just not buy motherboards at launch. For example Gigabyte massively upgraded the memory topology between the the X570 Aorus Xtreme rev1.0 and rev1.1. You'd think a 700USD board would launch with the memory topology dialed in but that's just not true. The original version of the Maximus Z690 Apex has a hardware flaw that makes it impossible for many early production boards to boot speeds higher than DDR5-6400.


If buying the most expensive motherboard meant that you automatically get the best board I wouldn't consider you an idiot. In practice however the price of a motherboard past a certain point has no impact on how good it is and so buying the most expensive one in hopes of getting the best one makes you an idiot.