Prosessorens klokkesyklus og maskinsyklusen
Enhet utenfor systemet · størrelse: et intervall for samgang og et mål på regnearbeid
Høsten 2004 avlyste Intel utviklingen av en prosessor som skulle gå på ti gigahertz, og det var ikke et teknisk nederlag, men erkjennelsen av en fysisk vegg: en brikke som ble drevet dobbelt så fort, krevde fire ganger effekten og smeltet rett og slett. Frekvenskappløpet, som hadde vart i tretti år, tok slutt på én eneste dag, og med det vanen med å dømme en maskin etter tallet på esken.
Selve syklusen er intervallet mellom to flanker av klokkesignalet, nettopp det skrittet som alle synkrone deler av brikken kobler om med på én gang. Dens omvendte er frekvensen, og derfor varer en syklus ved fem gigahertz to tideler av et nanosekund, der lyset rekker seks centimeter og et signal langs en kobberbane enda mindre — mindre enn brikken er bred.
01 · Definisjon
Syklusen er klokkesignalets periode, altså intervallet mellom to like flanker der brikkens synkrone elementer skifter tilstand sammen. Maskinsyklusen er et helt antall klokkesykluser der prosessoren utfører en fullført handling; i en maskin med rørledning erstattes den av det omvendte målet — antallet sykluser per instruksjon, hvis eget omvendte sier hvor mange instruksjoner som forlater rørledningen på én syklus.
Lengden på en syklus settes ikke av naturen, men av brikkens ledningsopplegg: den må ikke være kortere enn den tregeste veien mellom to vipper, medregnet vippens egen forsinkelse og en margin for spredningen i parametrene. Derav konstruktørens vanlige grep — å skjære en lang logikkvei i to trinn av rørledningen: syklusen blir halvparten så lang, frekvensen dobbelt så høy, og instruksjonen går nå hele trappen.
Det som begrenser frekvensen, er derimot ikke logikken, men effekten: det dynamiske forbruket vokser med frekvensen og med kvadratet av spenningen, og spenningen må heves for at kretsen skal rekke over ved den økte frekvensen. Varmen går derfor omtrent som frekvensen i tredje potens, og på denne kubiske avhengigheten stanset gigahertzkappløpet ved omkring fire.
Til slutt er syklusen en enhet hvis lengde ikke er bestandig. Strømstyringen endrer frekvensen hundrevis av ganger i sekundet, tilpasset last og temperatur, og derfor kan en ikke ut fra antallet sykluser dømme om forløpt tid, men vel om utført arbeid: syklustelleren teller ikke sekunder, men skritt i beregningen, og deri ligger dens virkelige verdi.
Før frekvensen med skyveren og følg to kurver som går fra hverandre hver sin vei. Den grønne er strekningen et signal rekker på én syklus: jo høyere frekvensen er, desto kortere den veien, og ved fem gigahertz viser den seg mindre enn brikken selv. Den karmosinrøde er hva et kall til minnet koster i sykluser: dens forsinkelse i nanosekunder endrer seg knapt, og i sykluser vokser den derfor bare.
Ved å skjære arbeidet i trinn forkorter konstruktøren syklusen, men én instruksjon går nå hele den trappen, og dens egen forsinkelse minker ikke, men vokser. Gevinsten viser seg først når trinnene er fylt med ulike instruksjoner, og ved et feilgjettet hopp må rørledningen tømmes helt — jo dypere den er, desto dyrere.
02 · Omregning
Frekvens, periode, arbeid
Skriv inn en frekvens eller en syklusslengde, og bladet viser det omvendte, signalets vei på én syklus og prisen for minnetilganger i sykluser. Den første familien er nøyaktig per definisjon, den andre hviler på gjennomsnittstall for en kjerne, den tredje på de typiske forsinkelsene i dagens minnehierarki.
Signalets hastighet langs en leder er satt til seks tideler av lysets hastighet; i bladets finere innstillinger kan den endres til halvparten.
Etter frekvens kan bare like kjerner sammenlignes, for antallet sykluser per instruksjon skiller seg flere ganger mellom arkitekturer: den ene maskinen tar fire instruksjoner på én syklus, den andre knapt én. Nettopp derfor forsvant gigahertztallet fra reklamen, og i stedet kom prøvesamlinger som ikke lenger måler sykluser, men utført arbeid.
| Verdi | Merknad | ||
|---|---|---|---|
| {u} | {name} | {value} | {note} |
03 · Størrelsesordener
logaritmisk skala: fra syklusen til planleggerens tidsvindu04 · Måleinstrumenter
Hva som setter syklusen, og hva som teller den
Syklusens kilde er en kvartsplate som vanligvis svinger ved noen titalls megahertz med en nøyaktighet på omkring ti milliondeler. Gigahertzene på brikken kommer ikke derfra, men fra mangedoblingen av denne referansefrekvensen, slik at hele maskinens stabilitet arves fra en bit mineral på størrelse med et riskorn.
Den faselåste sløyfen sammenligner oscillatorens delte frekvens med referansen og justerer den til fasene faller sammen; ved å endre deleren endres frekvensen underveis. Nettopp den lar strømstyringen senke syklusen til noen hundre megahertz i hvile og løfte den i turbo i noen sekunder, så lenge det er varmemargin.
Inne i kjernen sitter registre som teller sykluser, fullførte instruksjoner, bom i hurtigminnet og feilgjettede hopp, og de kan leses rett fra programmet som kjører. Av disse tallene får en antallet sykluser per instruksjon — det eneste ærlige målet på hvor godt koden har lagt seg på en bestemt brikke.
For å se syklusen selv trengs et instrument som fanger flanker med en oppløsning på noen få pikosekunder, og det samme viser de tingene som gjør at frekvensen ikke kan heves videre: fasedirring, skjevhet i signalets ankomst til ulike hjørner av brikken og flankens synking på en lang ledning.
05 · Skriveregler
Sykluser og hertz er ikke det samme
Frekvensen skrives i hertz, med stor forbokstav i prefikset ved mega og giga, mens et antall sykluser skrives som et helt tall uten noen enhet, siden syklusen ikke er en SI-enhet. Ytelsestall skrives med store bokstaver uten punktum og med angivelse av hvilken kjerne de gjelder; å blande frekvens og ytelse i én størrelse er ikke tillatt.
Den første skrivemåten blander to ulike størrelser: et antall sykluser er dimensjonsløst, mens hertz måler frekvens. Den andre bryter prefiksets store bokstav, som er påbudt ved mega og giga. Den tredje sammenligner etter frekvens arkitekturer hvis sykluser per instruksjon skiller seg flere ganger, og av en slik sammenligning følger ingenting. Den fjerde tar en foranderlig størrelse for en fast.
06 · Naboenheter
Ved siden av står de enhetene som måler det samme arbeidet fra andre kanter: hertz som signalets egen frekvens, antallet flyttallsoperasjoner per sekund og antallet instruksjoner som faller på én syklus. Alle følger av hverandre så snart frekvensen og rørledningens oppførsel er kjent.
frekvens, SI-enhet
et dimensjonsløst mål
et mål på regnearbeid
Blant databladene til Simetrium står ved siden av hertz, som angir frekvensen, sekund og delprefiksene dens, unix time, der grensen likeledes settes av maskinordet, og biten s byten, som en måler med det en syklus bærer.
07 · Historisk del
Tretti års kappløp og én dags avlysning
Den første prosessoren på én eneste brikke gikk på en frekvens som en brikke av i dag passerer på en brøkdel av et mikrosekund, og én instruksjon tok den åtte sykluser. Maskinsyklusen var da et bokstavelig begrep: lese instruksjonen, tyde den, hente dataene, regne og skrive — hvert trinn tok sin syklus, og alle gikk strengt etter tur.
Så snart trinnene lærte å arbeide samtidig på ulike instruksjoner, brast det vante målet: en instruksjon tok fortsatt fem sykluser, men forlot rørledningen hver syklus. Tellingen måtte snus, og en snakket om sykluser per instruksjon, som hos en god maskin sank under én — det vil si at det på én syklus blir mer enn én instruksjon ferdig.
En arkitektur med en rørledning på trettien trinn ble bygd for frekvensens skyld og gikk på varmen: de lovede ti gigahertzene krevde en kjøling som var utenkelig i et skrivebordskabinett. Prosjektet ble lagt ned, og bransjen vendte seg mot mange kjerner — ikke fordi det er bedre, men fordi den kubiske veksten i forbruket ikke lot noen annen vei være åpen.
En kjerne av i dag har ingen enkelt frekvens: i hvile synker den til noen hundre megahertz, under last stiger den mot fem gigahertz og holder dem så lenge varmemarginen rekker. Tallet på bladet ble et løfte under gunstige vilkår, og å sammenligne maskiner etter det har både produsenter og anmeldere sluttet med.
En enhet hvis lengde endrer seg mens målingen pågår
Syklusen er ubekvemt innrettet for metrologen: lengden settes ikke av en normal, men av brikkens ledningsopplegg, og den endrer seg hos en og samme prosessor hundrevis av ganger i sekundet, siden strømstyringen tilpasser frekvensen til last og temperatur. Derfor duger syklustelleren ikke til å måle tid, selv om den utenfra ligner en klokke, og et program som stoler på den, bommer med så mye som frekvensen har flyttet seg.
For den oppgaven derimot som syklusen oppsto for, passer den bedre enn noen tidsenhet. Ved å telle sykluser måler vi ikke varighet, men omfanget av regnearbeid, og derfor forblir antallet sykluser per instruksjon sammenlignbart ved enhver endring av frekvensen — det taler om hvor godt koden har lagt seg på brikken, ikke om hvor mange sekunder som har gått.
Katalog · måleenheter
Et datablad for hver størrelse
Sju SI-basisenheter, tjueto avledede med egne navn og størrelser utenfor systemet, som verken teknikken eller kalenderen klarer seg uten.