De klokslag van de processor en de machinecyclus
Eenheid buiten het stelsel · grootheid: een interval van gelijkloop en een maat voor rekenwerk
In het najaar van 2004 gelastte Intel de ontwikkeling af van een processor die op tien gigahertz moest lopen, en dat was geen technische mislukking maar de erkenning van een fysieke muur: een chip die twee keer zo hard werd gedreven vroeg vier keer het vermogen en smolt eenvoudigweg. De frequentiewedloop, die dertig jaar had geduurd, eindigde op één dag, en met hem de gewoonte een machine te beoordelen op het getal op de doos.
De klokslag zelf is het interval tussen twee flanken van het kloksignaal, juist die stap waarmee alle synchrone delen van de chip tegelijk omschakelen. Zijn omgekeerde is de frequentie, en zo duurt een klokslag bij vijf gigahertz twee tiende nanoseconde, waarin het licht zes centimeter haalt en een signaal over een koperen baan nog minder — minder dan de chip breed is.
01 · Definitie
De klokslag is de periode van het kloksignaal, dat wil zeggen het interval tussen twee gelijknamige flanken waarbij de synchrone elementen van de chip samen van toestand wisselen. De machinecyclus is een geheel aantal klokslagen waarin de processor een voltooide handeling uitvoert; in een machine met pijplijn vervangt men hem door de omgekeerde maat — het aantal klokslagen per instructie, waarvan het omgekeerde weer zegt hoeveel instructies er in één klokslag uit de pijplijn komen.
De lengte van een klokslag is niet door de natuur gezet maar door de bedrading van de chip: zij mag niet korter zijn dan de traagste weg tussen twee flipflops, met de vertraging van de flipflop zelf en een marge voor de spreiding van de parameters erbij. Vandaar de gebruikelijke greep van de ontwerper — een lange logische weg in twee trappen van de pijplijn snijden: de klokslag wordt half zo lang, de frequentie twee keer zo hoog, en de instructie loopt nu de hele trap.
Wat de frequentie begrenst is echter niet de logica maar het vermogen: het dynamische verbruik groeit met de frequentie en met het kwadraat van de spanning, en de spanning moet omhoog opdat de schakeling bij de hogere frequentie meekomt. De warmte gaat daarom ongeveer als de derde macht van de frequentie, en op die derdemachtsafhankelijkheid bleef de gigahertzwedloop bij ongeveer vier staan.
Ten slotte is de klokslag een eenheid waarvan de lengte niet vast is. Het energiebeheer verandert de frequentie honderden malen per seconde, aangepast aan belasting en temperatuur, en daarom valt uit het aantal klokslagen niets over de verstreken tijd af te lezen, wel over het verrichte werk: de klokteller telt geen seconden maar stappen van berekening, en daarin ligt zijn ware waarde.
Voer de tijd met de schuif in wereldtijd en let op twee krommen die naar tegengestelde kanten uiteengaan. De groene is de afstand die een signaal in één klokslag haalt: hoe hoger de frequentie, hoe korter die weg, en bij vijf gigahertz blijkt hij kleiner dan de chip zelf. De karmijnrode is wat een gang naar het geheugen aan klokslagen kost: zijn vertraging in nanoseconden verandert nauwelijks, en in klokslagen groeit hij dus alleen maar.
Door het werk in trappen te snijden verkort de ontwerper de klokslag, maar één instructie loopt nu die hele trap, en haar eigen vertraging daalt niet: zij stijgt. De winst verschijnt pas wanneer de trappen met verschillende instructies gevuld zijn, en bij een verkeerd voorspelde sprong moet de pijplijn geheel geleegd worden — hoe dieper, hoe duurder.
02 · Omrekening
Frequentie, periode, werk
Voer een frequentie of een kloklengte in, en het blad toont het omgekeerde, de weg van het signaal in één klokslag en de kosten van geheugentoegangen in klokslagen. De eerste familie is naar definitie exact, de tweede steunt op gemiddelde waarden van een kern, de derde op de typische vertragingen van de huidige geheugenhiërarchie.
De snelheid van het signaal over een baan is op zes tienden van de lichtsnelheid gesteld; in de fijnere instellingen van het blad kan zij op de helft worden gezet.
Op frequentie zijn alleen gelijke kernen te vergelijken, want het aantal klokslagen per instructie verschilt tussen architecturen een veelvoud: de ene machine neemt vier instructies in één klokslag, de andere amper één. Juist daarom verdween het getal in gigahertz uit de reclame, en kwamen er reeksen proeven voor in de plaats die geen klokslagen meer meten maar verricht werk.
| Waarde | Toelichting | ||
|---|---|---|---|
| {u} | {name} | {value} | {note} |
03 · Ordes van grootte
logaritmische schaal: van de klokslag tot het tijdvenster van de planner04 · Meetinstrumenten
Waarmee de klokslag wordt gezet en waarmee hij wordt geteld
De bron van de klokslag is een plaatje kwarts, dat gewoonlijk op enkele tientallen megahertz trilt met een nauwkeurigheid van ongeveer tien miljoenste. De gigahertz op de chip komen niet daarvan maar van het vermenigvuldigen van die referentiefrequentie, zodat de standvastigheid van de hele machine geërfd wordt van een stukje mineraal ter grootte van een rijstkorrel.
De fasevergrendelde lus vergelijkt de gedeelde frequentie van de oscillator met de referentie en stelt hem bij tot de fasen samenvallen; door de deler te veranderen verandert men de frequentie in bedrijf. Juist zij laat het energiebeheer toe de klokslag in rust tot enkele honderden megahertz te laten zakken en hem enkele seconden in turbo te tillen, zolang er warmtemarge is.
Binnen de kern zitten registers die klokslagen, voltooide instructies, cachemissers en verkeerd voorspelde sprongen tellen, en ze zijn vanuit het lopende programma te lezen. Uit deze getallen komt het aantal klokslagen per instructie — de enige eerlijke maat voor hoe goed de code op een bepaalde chip is gaan liggen.
Om de klokslag zelf te zien is een toestel nodig dat flanken met een oplossing van enkele picoseconden vangt, en datzelfde toont de dingen waardoor de frequentie niet verder omhoog kan: fasetrilling, het scheeflopen van de signaalaankomst in verschillende hoeken van de chip en het inzakken van de flank op een lange lijn.
05 · Schrijfregels
Klokslagen en hertz zijn niet hetzelfde
De frequentie schrijft men in hertz, met het voorvoegsel in hoofdletter voor mega en giga, terwijl een aantal klokslagen als een gewoon geheel getal wordt geschreven, zonder enige eenheid, aangezien de klokslag geen SI-eenheid is. Prestatiekengetallen schrijft men in hoofdletters zonder punten en met vermelding van de kern waarop zij slaan; frequentie en prestatie in één grootheid mengen is niet toegestaan.
De eerste schrijfwijze mengt twee verschillende grootheden: een aantal klokslagen is dimensieloos, terwijl de hertz een frequentie meet. De tweede schendt het kastteken van het voorvoegsel, dat bij mega en giga verplicht is. De derde vergelijkt op frequentie architecturen waarvan de klokslagen per instructie een veelvoud verschillen, en uit zo'n vergelijking volgt niets. De vierde neemt een veranderlijke grootheid voor een vaste.
06 · Naburige eenheden
Ernaast staan de eenheden die datzelfde werk van andere kanten meten: de hertz als frequentie van het signaal zelf, het aantal drijvendekommabewerkingen per seconde en het aantal instructies dat op één klokslag valt. Alle volgen uit elkaar zodra men de frequentie en het gedrag van de pijplijn kent.
frequentie, SI-eenheid
een dimensieloze maat
een maat voor rekenwerk
Van de fiches van Simetrium staan ernaast hertz, die de frequentie aangeeft, seconde en haar deelvoorvoegsels, unix time, waar de grens eveneens door het machinewoord wordt bepaald, en de bit s de byte, waarmee gemeten wordt wat een klokslag draagt.
07 · Historisch deel
Dertig jaar wedloop en één dag van afgelasting
De eerste processor op één chip liep op een frequentie die een chip van nu in een fractie van een microseconde doorloopt, en één instructie kostte hem acht klokslagen. De machinecyclus was toen een letterlijk begrip: de instructie lezen, ontleden, de gegevens halen, rekenen en schrijven — elke trap nam zijn eigen klokslag en alle gingen strikt om beurten.
Zodra de trappen leerden tegelijk aan verschillende instructies te werken, brak de vertrouwde maat: een instructie deed nog steeds vijf klokslagen, maar kwam elke klokslag uit de pijplijn. De telling moest worden omgedraaid en men sprak van klokslagen per instructie, die bij een goede machine onder de één zakte — dat wil zeggen: in één klokslag komt meer dan één instructie klaar.
Een architectuur met een pijplijn van eenendertig trappen werd omwille van de frequentie gebouwd en liep tegen de warmte op: de beloofde tien gigahertz vroegen een koeling die in een bureaukast ondenkbaar was. Het plan werd gesloten en de bedrijfstak wendde zich tot vele kernen — niet omdat die beter zijn, maar omdat de derdemachtsgroei van het verbruik geen andere weg liet.
Een kern van nu heeft geen enkele frequentie: in rust zakt hij tot enkele honderden megahertz, onder belasting klimt hij naar vijf gigahertz en houdt die zolang er warmtemarge is. Het getal op het blad werd een belofte onder gunstige omstandigheden, en machines daarmee vergelijken hebben fabrikanten zowel als recensenten opgegeven.
Een eenheid waarvan de lengte tijdens de meting verandert
De klokslag is voor de metroloog onhandig ingericht: zijn lengte wordt niet door een standaard gezet maar door de bedrading van de chip, en zij verandert bij een en dezelfde processor honderden malen per seconde, doordat het energiebeheer de frequentie aan belasting en temperatuur aanpast. Daarom deugt de klokteller niet om tijd te meten, al lijkt hij van buiten op een uurwerk, en een programma dat hem vertrouwt vergist zich zoveel als de frequentie is verschoven.
Voor de taak echter waarvoor de klokslag ontstond, past hij beter dan welke tijdeenheid ook. Door klokslagen te tellen meten wij geen duur maar de omvang van het rekenwerk, en daarom blijft het aantal klokslagen per instructie vergelijkbaar bij elke verandering van frequentie — het spreekt over hoe goed de code op de chip is gaan liggen, niet over hoeveel seconden voorbij zijn.
Catalogus · meeteenheden
Een fiche voor elke grootheid
Zeven SI-basiseenheden, tweeëntwintig afgeleide met een eigen naam en grootheden buiten het stelsel waarzonder techniek noch kalender zouden werken.