TDP: verklaard

Door Darkstone op donderdag 17 januari 2013 01:12 - Reacties (10)
Categorie: -, Views: 6.773

Neem een moment om eens na te denken over het begrip TDP, wat Thermal Design Power betekent, een specificatie van processoren. In de volksmond wordt TDP vaak uitgelegd als het maximaal wat de chip kan verbruiken. Dat is deels waar: AMD definieert TDP als het theoretische maximumverbruik1, Intel definieert TDP als het gemiddelde verbruik onder zware load met maximale Tcase 2. Tegenwoordig heb je ook ACP van AMD en SPD van Intel die, respectievelijk, het gemiddelde maximumverbruik en het gemiddelde verbruik is. Dat woordje maximum is een belangrijke: SPD heeft absoluut niets te maken met het verbruik van de processor onder een stresstest.

Het type TDP wat ik hier onder de loep wil nemen is dat van Intel. Of meer specifiek, de implementatie van TDP in de (op de Sandy Bridge architectuur gebaseerde) mobile i5-2520M 3 in de latitude E6520. (om typwerk te besparen, vanaf hier simpelweg 'i5' en 'laptop' genoemd). Hieronder volgen enkele specificaties van de i5:

TypeIntel Core i5-2520M
Stock snelheid2.5Ghz
Max. turbo (1 core)3.2Ghz (7 bins)
Max. turbo (2 cores)3.0Ghz (5 bins)
Aantal cores/threads2/4
GPU typeIntel HD 3000
Stock snelheid[ (GPU)650Mhz
max. turbo (GPU)1300Mhz
TDP35 watt


De laptop is uitgerust met uitstekende koeling en een dedicated grafische kaart, die verder niet gebruikt wordt. Om de indruk te geven van de koeling: met zowel de ventilatiegaten in als uit zo veel mogelijk afgedekt bereikte ik na een bijna uur durende stresstest de maximimtemperatuur van 93° zonder noemswaardige throtteling. (af en toe één bin lager, maar vooruit). Op lage kloksnelheden is het mogelijk om prime95 passief te draaien, dat geldt ook voor de IGP.

Deze combinatie wordt aan een aantal stresstests onderworpen. De CPU wordt getrest met prime95, welke altijd in "In-place large TFT" mode wordt gedraaid. De GPU (IGP) wordt gestrest met RTHDRIBL op de helft van mijn 1080p scherm.

De resulterende informatie wordt gelogd met HWInfo32, tenzij anders vermeld, met een resolutie van 1 seconde. HWinfo is bij mij helaas niet in staat om de kloksnelheden van de CPU nauwkeurig te loggen. Daarom zul je deze niet in de grafieken vinden. Ondanks dat het best interessante data is. De kloksnelheden van de CPU worden geïnspecteerd, maar niet gelogd, met throttlestop.

Test

De volgende test cases worden behandeld. Let er op, indien je deze testen herhaalt, dat het energieschema op maximum performance of vergelijkbaar is ingesteld. Let er ook op dat throttlestop uit staat. (hij mag wel draaien, maar niet actief, al heeft dat voor zover ik heb getest geen invloed op de resultaten).

• Alleen CPU load
• Alleen GPU load
• GPU en CPU load.
• Eerst CPU load, daarna GPU load
• Eerst GPU load, daarna CPU load
Alleen CPU load
alleen CPU load
Bij het starten van de test verbruikt de package in totaal ongeveer 32w. Het maximum geobserveerde verbruik is 32.6w voor de package, waarvan 28.82w de CPU. De stijgende lijn is te verklaren doordat transistors meer stroom verbruiken naarmate ze warmer worden. De processor kan de turbo boost tot in de eeuwigheid volhouden.
Alleen GPU load
Alleen GPU load
Hier hebben we te maken met een bug in het power management van windows: de test is gestart op het 'High performance' schema. Maar de GPU bleef op de stock clocks draaien. Na het omschakelen naar 'Balanced' en weer terug naar 'High performance' ging de GPU naar de juiste versnelling. Waar hij de rest van de test bleef.

Het maximaal geobserveerde package verbruik is 22.5w, terwijl de GPU maximaal 10.9w verstookt in deze omstandigheden. Er is ook lichte CPU load te zien, te verklaren doordat de CPU de GPU van data moet voorzien.
GPU en CPU load
Belangrijk bij deze test is dat de CPU en de GPU stresstesten ongeveer tegelijkertijd worden gestart. Tellen we het maximaal geobserveerde verbruik van de CPU en de GPU in de tests hiervoor bij elkaar op, dan komen we uit op ongeveer 39w (+ enkele watt voor de northbridge en RAM i/o en …)
CPU en gPU load
Het wordt nu al interessanter. De GPU bereikt niet meer de maximale kloksnelheden, maar blijft steken op zo'n 1150Mhz. Na 41 seconden geeft de CPU er de brui aan en gaat hij terug naar zo'n 2.6Ghz. Daarna neemt de snelheid van de CPU heeeeel langzaam af tot hij op de 2.5Ghz terechtkomt. Let op de groene lijn. De totale package power is werkelijk kaarsrecht in het 2e gedeelte van de test.

In het eerste gedeelte van de test gebruikte de package 38.9w. Bij het tweede gedeelte was dat 33.8w. De CPU temperatuur op het 'kantelpunt' was 79°
Eerst CPU load, daarna GPU load
Op dit punt vond ik het interessant om te kijken of er een verschil zat in de volgorde waarin je de load toepast. Eerst wordt de CPU flink aan het werk gezet, na enige tijd wordt de GPU bijgezet.
CPU daarna GPU load
De CPU startte de stresstest met het gebruikelijke tempo. Wat de GPU doet is interessanter: bij het starten van de GPU stresstest gaat hij naar 800Mhz, waar dat bij de vorige test 1150Mhz was. Het resultaat is een hoger geklokte CPU, na een vrij arubte dip daalde de snelheid langzaam van 2.75Ghz naar 2.7Ghz: 200Mhz meer CPU, ten koste van een 350Mhz lager geklokte GPU, in vergelijking met gelijktijdige start.

Na het starten van de GPU stresstest duurde het 18 seconden voordat de kloksnelheid van de CPU begon te dalen, op welk punt de core 78° aantikte. De Package stabiliseerde zichzelf op 33.1W.
Eerst GPU load, daarna CPU load
GPU daarna CPU load
Voorspelbare resultaten, het verbruik van de package gaat richting de 40w, blijft daar 28 seconden, en laat vervolgens een kaarsrechte lijn zien die 33.9w meet.

De CPU bleef stabiel op 2.5Ghz, de stock clocks. Op moment van downclocken was de package 80°. Een temperatuur die overigens al 13 seconden daarvoor is aangetikt.

Samenvatting

De testen zijn allemaal samen te vatten als volgt:
Als het TDP niet wordt behaald draaien de componenten zo veel mogelijk op de maximale kloksnelheid. Wanneer het TDP wordt overschreden duurt het X tijd voordat de processor besluit het TDP te handhaven. Overigens lijkt 'het TDP' eerder 34w te zijn dan 35w.

De temperatuur lijkt niet van invloed te zijn op dit process. Om die reden heeft throttlestop ook geen effect in deze tests.

Nadere inspectie wijst mij op dit schermpje in throttlestop:
power limit / TPL in throttlestop

Na enig onderzoek kom ik op de volgende verklaring uit:
Intel® 64 and IA-32 Architectures Software Developer’s Manual
Volume 3A: System Programming Guide, Part 1

MSR_PKG_POWER_LIMIT allows a software agent to define power limitation for the package domain. Power limitation is defined in terms of average power usage (Watts) over a time window specified in MSR_PKG_POWER_LIMIT. Two power limits can be specified, corresponding to time windows of different sizes. Each power limit provides independent clamping control that would permit the processor cores to go below OS-requested state to meet the power limits.
http://forum.techinferno....-potential.html#post13967

Kortom, je kan 2 thresholds instellen plus een tijd dat die threshold mag worden overschreden. Als de processor een bepaalde tijd over een bepaalde limiet heen gaat, forceert-ie een lagere kloksnelheid of worden er andere manieren toegepast om het energieverbruik binnen de perken te houden.

concluderend, Intel TDP is een lange-termijn maximumverbruik, en heeft niets te maken met het echte maximumverbruik. Dat kan veel hoger liggen, en er zijn vast nog veel ergere scenario’s te bedenken dan diegene die ik hier heb getest.

Verder moet je er ok rekening mee houden dat het TDP in feite user defined is. Het werkelijke TDP kan volgens de bron hierboven met een factor 1.3 worden verhoogd. In sommige laptops kan de user dat doen. Het spreekt voor zich dat dat bij dit zakelijke model laptop niet tot de mogelijkheden behoort.

Ik vraag me dan alleen wel af hoe ze dat doen met de quadcores. Na wat snelle rekensommen zou een sandy-bridge quadcore op 2.5Ghz de limiet van 45w moeten doorbreken, terwijl er quadcores bestaan op deze architectuur die boven de 3Ghz draaien. Mogelijk is dat te verklaren door betere binning om lagere voltages voor elkaar te krijgen.

references

[1] http://www.amd.com/us/Documents/43761C_ACP_WP_EE.pdf
[2] http://www.intel.com/cont...processor-power-paper.pdf
[3] http://ark.intel.com/prod...r-3M-Cache-up-to-3_20-GHz


update de tests hier zijn gedraaid met prime95 25.11. Wanneer ik ik plaats daarvan prime95 27.7 start is het energieverbruik een watt of 5(!) hoger, package = 37.8w. Na enige tijd klokt de processor terug naar 2.8Ghz.