Formule de calcul des ratios Turbo

mardi 18 février 2014Par : CyrIng

Dans le programme xfreq.c , la formule employée pour calculer les ratios du processeur Intel Core i7 est la suivante :

Ratio = TR × { d(URC) ÷ d(TSC) } × OR

où :

TR est le TurboRatio = d(UCC) ÷ d(URC)
OR est l'OperatingRatio = MSR(MSR_PLATFORM_INFO[15-8])
UCC est Unhalted Core Cycles = MSR(IA32_FIXED_CTR1)
URC est Unhalted Reference Cycles = MSR(IA32_FIXED_CTR2)
TSC est le Time Stamp Counter = MSR(IA32_TIME_STAMP_COUNTER)

La fonction Delta d(N) calculant la différence de la valeur N échantillonnée à l'instant T(t) et à l'instant 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   ]

Le Ratio à l'instant (t) est :

Ratio = (2660 ÷ 2660) × (1330 ÷ 2660) × 20
Ratio = 10.0

Pour une horloge BCLK réglée à 133 MHz, la fréquence du Core Processeur est déterminée par :

Fréq = 133 x 10
Fréq = 1330 Mhz

CyrIng