Turbo ratios calculation formula
Tuesday February 18th, 2014By: CyrIngThe formula used in xfreq.c to compute the Intel Core i7 Processor ratios is the following :
Ratio = TR × { d(URC) ÷ d(TSC) } × OR where : TR the TurboRatio = d(UCC) ÷ d(URC) OR the OperatingRatio = MSR(MSR_PLATFORM_INFO[15-8]) UCC the Unhalted Core Cycles = MSR(IA32_FIXED_CTR1) URC the Unhalted Reference Cycles = MSR(IA32_FIXED_CTR2) TSC the Time Stamp Counter = MSR(IA32_TIME_STAMP_COUNTER) The d(N) Delta function substracts the N values sampled at time period T(t) and T(t-1) illustration : (t-1) (t) Cycles: .......... T0 .......... T1 .......... T2 .......... T3 .......... T4 .......... T5 .......... T6 OR : .......... 12 .......... 12 .......... 20 .......... 12 .......... 12 .......... 20 .......... 12 TSC : ........ 2660 ........ 5320 ........ 7980 ....... 10640 ....... 13300 ....... 15960 ...... 18620 [ d(TSC) = 2660 ] URC : ......... 200 .... "halted" ......... 201 ......... 202 ....... 2862 ......... 5522 ..... "halted" [ d(URC) = 2660 ] UCC : ......... 100 .... "halted" .... "halted" .... "halted" ....... 2760 ......... 4090 ..... "halted" [ d(UCC) = 1330 ] Ratio at time (t) is : Ratio = (2660 ÷ 2660) × (1330 ÷ 2660) × 20 Ratio = 10 With a BCLK clock set to 133 MHz, the Core Processor frequency is given by : Freq = 133 x 10 Freq = 1330 Mhz
CyrIng