Disclaimer !
These settings and methods
are outside Intel's specifications,
just like any other overclocking method.
----------------------------------------------------
Introduction:In a world increasingly concerned with natural resources, the watchword is efficiency. So, it's time to look at adaptive voltage and by core with other eyes.
This is not to say that the era of overclocking with "Sync all cores" and "fixed voltage" is over, as it is much easier and faster to do, and brings good results, but it is not "Single Thread" efficient.
It is worth remembering that Intel supplies its processors operating stock in "by core" and "Adaptive Voltage", and now goes beyond, and manufactures its processors with performance cores and efficiency cores.
But anyway, why would I trade the easiest way to overclock it for a more complicated one? The answer is simple, because we like complicated things. Now a day, with the current processing capability, it is not necessary to overclock, and even then we do this complicated thing, just for a few extra frames. So we do it for fun. The overclock itself can be fun like a game. After all, isn't it nice to know that we can go a little over the limit with that hardware we bought?
Thanks:My thanks to Shamino and Asus for all their support and for inviting me to join the ROG Maximus Z690 platform test team.
My sincere thanks to Falkentyne and Cstkl1 for their help during testing.
Considerations:The intention of this work is not to provide an overclocking recipe or break records, but to help understand how voltages, frequencies and temperatures work in the octvb configuration.
Asus has great features in its MBs that enable TVB overclocking, but it also provides a unique optimization tool called "AI Overclocking" which works very well.
This guide will cover the basics of Load Lines, By Core Usage, VF Curves, TVB, and OCTVB.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
* * * This procedure can be applied to the Z490 / Z590 / Z690 Maximus and Strix MBs with some adjustments. * * *

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''""""""""""""""""""''''''''''''''''''''''''''''''''''''''''''''
INDEX:
My "CPU - Voltage and OCTVB Tool"
CPU Power Specifications
By core
TVB
OCTVB
Adaptive Voltage & VF curve
Specific Core Adaptive voltage
Interpolation
Understanding LLC, AC_LL & DC_LL
Choosing LLC, AC_LL and DC_LL
Undestanding the LLC, DC_LL and AC_LL numbers
The LLC effect
Setting the Full Load frequency
Defining Load Lines
System startup
Adjusting the minimum voltage to full load P-51x / E-40x
About E-cores
Defining the By Core Usage
System stability test
ASUS OCTVB
Understanding Asus OCTVB
Notes
Bios Attachments
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''""""""""""""""""""''''''''''''''''''''''''''''''''''''''''''''
Here you can download my "CPU - Voltage and OCTVB Tool"https://www.dropbox.com/sh/1rjt0ck4elpg8hc/AADenHv1lNncWfQZN6awV3JGa?dl=0CPU Power Specifications:
https://edc.intel.com/content/www/us/en/design/ipla/software-development-platforms/client/platforms/...By Core:The "By core" is nothing more than the use of processor cores at different frequencies, depending on the workload.
Below, we find the default frequency settings for some processors:

*Image credits: SkatterBencher
We will use the following nomenclature to refer to the frequencies and numbers of cores:
[frequency] X [number of cores running concurrently] - [frequency] X [number of cores running concurrently] - etc...
Full load means all cores are running at the same time on this frequency:
[Full Load] @ P-[frequency] x / E-[frequency] x
Examples:
9900K
50x2 – 48x4 – 47x8
Full load @ 47x
10900K
53x2 – 51x4 – 50x6 – 49x10
Full load @ 49x
11900K
53x2 – 52x4 – 51x6 – 49x8
Full load @ 49x
12900K:
P: 52x1 – 51x2 – 50x4 – 49x8
E: 39x4 – 37x8
Full load @ P-49x/E-37x

* Data from an 12900k CPU read by Asus OCTool.
TVB:
The typical CPU has a standard clock speed and a turbo boost speed. However, CPUs with Thermal Velocity Boost have two additional Boost speeds. Also known as Intel TVB, the feature is available on 10th, 11th, 12th generation desktop chips.
TVB is a technology that takes advantage of the processor's thermal "opportunity" to increase its working frequency.
Thermal Velocity Boost allows these CPUs to achieve even higher boost speeds than their typical turbo boost.
This means that in addition to its standard clock speed and Boost of all cores, an Intel CPU can have four additional speeds.
Turbo Boost 2.0 is a single-core Boost available if the CPU is running to your power, current, and temperature specifications.
The velocity of turbo boost max 3.0 applies to two favorite cores. It is only possible if the CPU is running below its power, current, and temperature specifications.
Thermal Velocity Boost takes the fastest of the two favorite CPU cores at a higher speed than it gets with turbo boost max 3.0.
This is only possible if the CPU is running below 70 degrees Celsius and if the CPU is running below its power, current and temperature specifications.
The thermal speed increase of all cores refers to the reachable speed if all cores are active and the CPU is operating under its respective temperature limit (70 degrees Celsius).
OCTVB:The TVB overclock consists of changing boost patterns to achieve higher frequencies than standard when there is a thermal opportunity.
E.g. You can change the Boost of the 12900k to work this way.
Before +2Boost Profile:
P: 56x2 – 55x3 – 53x5 – 51x8
E: 42x4 – 41x6 – 40x8
Full load @ P-51x/E-40x
After +2Boost Profile:
P: 58x2 – 57x3 – 55x5 – 53x8
E: 42x4 – 41x6 – 40x8
Full load @ P-51x/E-40x
Note:
The Boost Profile will never be applied to the E-Cores.
The Full Load frequency will be the raw "By core" full laod due to temperature.

* Asus OCTool - Intel Monitor
Applying the Boost Profile, several rules are applied to the combination of frequency x cores so that the CPU takes advantage of the low temperature to reach high clocks.

* Asus OCTool -CPU OCTVB
What we simply do is set up a new TVB: if the workload is low, the frequency will be high, and when the workload is high, the frequency will be lower.
Changing TVB, or rather overclocking TVB, we come to Asus OCTVB.
Warning:
For OCTVB to work, you need to enable C-States !
Adaptive Voltage & VF curve:Unlike the "fixed Voltage", the “Adaptive Voltage" and "VF curve" behaveso as to monitor the frequency.
Higher frequencies require higher voltages, lower frequencies, lower voltages.

Every processor comes standard with an internal VF curve that we can't change.
Asus MBs allow us to add an offset (positive or negative) to these points of the original curve.
So, we can say that Asus allows us to change the “voltage x frequency” CPU curve.

These values can be found in the BIOS on this page:

NOTE:
The default setting for VF #11 is 5300MHz. In the image above, "By core usage" changed this frequency to 55x
And +2Boost Profile changed it again, to 57x.
Asus allows us to change the voltages of all points through the offset and allows us to change the frequency only of the last point through the "By Core usage " setting.
This VF curve shows the voltage that the CPU will use for a specific frequency.
When CPU is running 4800MHz, the VID used will be the VF#6, as well VF#5 is the VID of 4200MHz.
So the CPU is changing the voltage all the time, and these voltages can be modified by some factores like LLC and AC_LL
When we assign a frequency to a number of cores using "By Core Usage", the highest frequency will assume the last point on the VF curve.

Note:
When we apply a Boost, this Boost will be applied to the last point of the VF curve.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Watch out here!
Note that the maximum frequency set in "By Core Usage" is 55x.
So why is the last line of the VF curve (VF #11) 57x?
The explanation is easy:
The "Per core usage" is the raw frequency, without any OCTVB boost.
When boost is applied, you will see the higher frequency boosted int the VF curves.
(To see the boosted frequency in the VF curve you need to "save and exit" after selecting the Boost profile and entre BIOS again)
If you want to limit some core frequency, you should limit the raw "By core usage" frequency.
So, in the example below, with +2Boost profile, core 0 and core 1 are limited to 57x (not 55x) and cores 2 and 3 to 56x (not 54x)
If you are using +1Boost profile, core 0 and core 1 will be limited to 56x (not 55x) and cores 2 and 3 to 55x (not 54x)

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Therefore, the minimum "By core usage" frequency (51x) will be the full load frequency and the highest will be the highest plus the selected booster.
In this case, the + 2Boost profile was applied.
So, for our TBV overclock, the important points will always be the last two in the VF curve.
The points VF#7 and VF#8 for the 10900K and 11900K and the POINTS VF#7 and VF#11 for the 12900K.
Points VF#8,9 and 10 in the 12900K will not be used and must remain in AUTO.
About ADL VF curve1-7 are unique points,
11 is OC point (user can change this ratio). This is the only ratio user can change on this curve.
8-10 are copies of 7
7 is the last unique point
The rule appears to be when ratios are the same, point 7 must be >= point 8 otherwise it will MCA
Acode does not like when point 7 voltage offset is less than point 8
If you want to program 7 negative, you must program point 8 negative first
If you want to program point 8 positive, you must program point 7 positive first
If you don't follow this rule then Acode throws MCA
If programming a negative offset to point 7, best way is to start with point 10 and program it negative, then go to 9,8, and 7 programing them all the same negative value
If programming a positive offset to only point 8, best way is to start with 7 and then go to 8,9, and 10 programming them all to the same positive value
Specific Core Adaptive voltage:The Specific Core Adaptive Voltage is a resource that allows you to set the adaptive voltage individually for each core.
The goal is to set more voltage to the worst cores and less voltage to the best cores.
The Specific Core Adaptive voltage is a step beyond, to be used after you are stable using the global adaptive voltage.
Let’s say we are running the max frequency of 5700MHz and the system is stable with a global adaptive voltage of 1460mv.
So, at this point, we know that 1460mv is enough for the worst cores run 57x.
With this logic, if 1460mv is enough for the worst cores, probably the best cores can run this frequency with less than 1460mv.
But how less? That is what we are going to know.
The first step is to enter BIOS at the IA Optimization page and take note of the P-cores VIDs from Core0 to Core7.

This information will show us the worst core VID. In the example above, core 4.
Now we know this core will need 1460mv to run 57x. All the others cores will be able to run 57x with less voltage.
Now let’s find the voltages we will need to run 57x for the others cores.
The math is simple:
Specific Core Adaptive Voltage = (Global_Adaptive) – [(Worst_Core_VID) – (Core_number_VID + offset_for_this_core)]
So, for the global adaptive of 1460mv (the one that our system is stable) and the specific core VID shown in the bios page above, we will have the following values:
* We will not use any specific core offset now.
Global_Adaptive=1460
Worst_Core_VID=1329
Core0 = (1460) – [(1329) - (1299)] = 1430mv
Core1 = (1460) – [(1329) - (1299)] = 1430mv
Core2 = (1460) – [(1329) - (1304)] = 1435mv
Core3 = (1460) – [(1329) - (1304)] = 1435mv
Core4 = (1460) – [(1329) - (1329)] = 1460mv
Core5 = (1460) – [(1329) - (1289)] = 1420mv
Core6 = (1460) – [(1329) - (1319)] = 1450mv
Core7 = (1460) – [(1329) - (1284)] = 1415mv
As you can see at the image below.

So, using these Specific Core Adaptive Voltages you will run as stable as before when you were using the global Adaptive voltage, with the advantage of reducing the Vcore when bad cores are sleeping.
A tip about " Specific Core Adaptive voltage offset".
You can use the Specific Core Adaptive voltage offset to “normalize” the cores voltages as you can see below.
But I don’t think it is the best strategy.

You can download my Excel voltage tool to help you with this math.
[url]www.dropbox.com
Interpolation:In mathematics, linear interpolation is a method of curve fitting using linear polynomials to construct new data points within the range of a discrete set of known data points.
We can use interpolation to find a voltage between two VF points, or between the last VF point and the adaptive voltage.
So let take as an example the following VF curve with an OC frequency of 5700MHz:

The 5100MHz VID is in some place between VF#6 (1184) and VF#7 (1299)
To find the estimated 5100MHz VID we will apply the following formula:
5100_VID = (VF#7_VID - VF#6_VID ) / (VF#7_freq - VF#6_freq) * (5100 - VF#6_freq) + VF#6_VID
5100_VID = (1299 - 1184) / (5300 - 4800) * (5100 - 4800) + 1184
5100_VID = (115) / (500) * (300) + 1184
5100_VID = 1253mv
So the estimated VID for 5100MHz will be 1253mv
If you apply a negative offset of 50mv to VF#6 you must use the new VF#6_VID value to find the new 5100_VID
So, in this case, the new 5100_VID is 1245mv.
You can increase or decrease the 5100_VID by changing the VF#6 offset or the VF#7 offset.
Attention here because if you decide to change VF#7 this will have an effect on the interpolation of VF#7 to the adaptive voltage.
The voltage that will be applied at the maximum OC frequency will be the adaptive voltage or VF #11 (whichever is higher).
In this example, the Adaptive is higher than VF#11
Adaptive = 1458
VF#11 + offset = 1445
So now let's find the estimated 5500_VID with a 20mv positive offset applied to VF#7:
VF#7 = 1299
VF#7+offset = 1299+20 = 1319mv
5500_VID = (Adaptive- VF#7_VID+offset) / (OC_Freq - VF#7_freq) * (5500 - VF#7_freq) + VF#7_VID+offset
5500_VID = (1458 - 1319) / (5700 - 5300) * (5500 - 5300) + 1319
5500_VID = 1389mv

The interpolation is a linear curve as you can see below.

You can download my interpolation tool here.
https://www.dropbox.com/sh/1rjt0ck4elpg8hc/AADenHv1lNncWfQZN6awV3JGa?dl=0