Processorens klokcyklus og maskincyklussen
Enhed uden for systemet · størrelse: et interval for samgang og et mål for regnearbejde
I efteråret 2004 aflyste Intel udviklingen af en processor, der skulle køre på ti gigahertz, og det var ikke et teknisk nederlag, men erkendelsen af en fysisk mur: en chip, der blev drevet dobbelt så hurtigt, krævede fire gange effekten og smeltede ganske enkelt. Frekvenskapløbet, som havde varet tredive år, endte på en enkelt dag, og med det vanen at bedømme en maskine efter tallet på æsken.
Cyklussen selv er intervallet mellem to flanker af kloksignalet, netop det skridt, hvormed alle synkrone dele af chippen skifter på én gang. Dens omvendte er frekvensen, og derfor varer en cyklus ved fem gigahertz to tiendedele af et nanosekund, hvori lyset når seks centimeter og et signal ad en kobberbane endnu mindre — mindre end chippen er bred.
01 · Definition
Cyklussen er kloksignalets periode, altså intervallet mellem to ensartede flanker, hvor chippens synkrone elementer skifter tilstand sammen. Maskincyklussen er et helt antal klokcyklusser, hvori processoren udfører en fuldført handling; i en pipelinemaskine erstattes den af det omvendte mål — antallet af cyklusser per instruktion, hvis egen omvendte siger, hvor mange instruktioner der forlader pipelinen på én cyklus.
Længden af en cyklus sættes ikke af naturen, men af chippens ledningsføring: den må ikke være kortere end den langsomste vej mellem to vipper, medregnet vippens egen forsinkelse og en margen for spredningen i parametre. Deraf konstruktørens sædvanlige greb — at skære en lang logikvej i to pipelinetrin: cyklussen bliver halvt så lang, frekvensen dobbelt så høj, og instruktionen går nu hele trappen.
Hvad der begrænser frekvensen, er dog ikke logikken, men effekten: det dynamiske forbrug vokser med frekvensen og med kvadratet på spændingen, og spændingen må hæves, for at kredsen kan følge med ved den højere frekvens. Varmen går derfor omtrent som frekvensen i tredje potens, og på denne kubiske afhængighed gik gigahertzkapløbet i stå ved omkring fire.
Endelig er cyklussen en enhed, hvis længde ikke er bestandig. Strømstyringen ændrer frekvensen hundreder af gange i sekundet, tilpasset last og temperatur, og derfor kan man ikke af antallet af cyklusser bedømme den forløbne tid, men vel det udførte arbejde: cyklustælleren tæller ikke sekunder, men skridt i beregningen, og deri ligger dens virkelige værdi.
Før frekvensen med skyderen og følg to kurver, der går fra hinanden hver sin vej. Den grønne er den strækning, et signal når på én cyklus: jo højere frekvensen er, desto kortere den vej, og ved fem gigahertz viser den sig mindre end chippen selv. Den karminrøde er, hvad et kald til hukommelsen koster i cyklusser: dens forsinkelse i nanosekunder ændrer sig næppe, og i cyklusser vokser den derfor blot.
Ved at skære arbejdet i trin forkorter konstruktøren cyklussen, men én instruktion går nu hele den trappe, og dens egen forsinkelse mindskes ikke, men vokser. Gevinsten viser sig først, når trinene er fyldt med forskellige instruktioner, og ved et fejlgættet spring må pipelinen tømmes helt — jo dybere den er, desto dyrere.
02 · Omregning
Frekvens, periode, arbejde
Indtast en frekvens eller en cykluslængde, og bladet viser det omvendte, signalets vej på én cyklus og prisen for hukommelsesadgange i cyklusser. Den første familie er nøjagtig per definition, den anden hviler på gennemsnitstal for en kerne, den tredje på de typiske forsinkelser i nutidens hukommelseshierarki.
Signalets hastighed ad en leder er sat til seks tiendedele af lysets hastighed; i bladets finere indstillinger kan den ændres til halvdelen.
Efter frekvens kan kun ens kerner sammenlignes, thi antallet af cyklusser per instruktion afviger flerfoldigt mellem arkitekturer: den ene maskine tager fire instruktioner på én cyklus, den anden knap én. Netop derfor forsvandt gigahertztallet fra reklamerne, og i stedet kom prøvesamlinger, der ikke længere måler cyklusser, men udført arbejde.
| Værdi | Bemærkning | ||
|---|---|---|---|
| {u} | {name} | {value} | {note} |
03 · Størrelsesordener
logaritmisk skala: fra cyklussen til planlæggerens tidsvindue04 · Måleinstrumenter
Hvad der sætter cyklussen, og hvad der tæller den
Cyklussens kilde er en kvartsplade, der sædvanligvis svinger ved nogle titals megahertz med en nøjagtighed på omkring ti milliontedele. Gigahertzene på chippen kommer ikke fra den, men fra mangedoblingen af denne referencefrekvens, så hele maskinens stabilitet arves fra et stykke mineral på størrelse med et riskorn.
Den faslåste sløjfe sammenligner oscillatorens delte frekvens med referencen og justerer den, indtil faserne falder sammen; ved at ændre deleren ændres frekvensen i drift. Netop den lader strømstyringen sænke cyklussen til nogle hundrede megahertz i hvile og løfte den i turbo i nogle sekunder, så længe der er varmemargen.
Inde i kernen sidder registre, der tæller cyklusser, fuldførte instruktioner, cacheforbiere og fejlgættede spring, og de kan læses direkte fra det kørende program. Af disse tal fås antallet af cyklusser per instruktion — det eneste ærlige mål for, hvor godt koden har lagt sig på en bestemt chip.
For at se cyklussen selv kræves et instrument, der fanger flanker med en opløsning på få pikosekunder, og det samme viser de ting, for hvis skyld frekvensen ikke kan hæves videre: fasesitren, skævhed i signalets ankomst til chippens forskellige hjørner og flankens synken på en lang ledning.
05 · Skriveregler
Cyklusser og hertz er ikke det samme
Frekvensen skrives i hertz, med stort præfiks ved mega og giga, mens et antal cyklusser skrives som et helt tal uden nogen enhed, eftersom cyklussen ikke er en SI-enhed. Ydelsestal skrives med store bogstaver uden punktummer og med angivelse af, hvilken kerne de gælder; at blande frekvens og ydelse i én størrelse er ikke tilladt.
Den første skrivemåde blander to forskellige størrelser: et antal cyklusser er dimensionsløst, mens hertz måler frekvens. Den anden bryder præfiksets store bogstav, obligatorisk ved mega og giga. Den tredje sammenligner efter frekvens arkitekturer, hvis cyklusser per instruktion afviger flerfoldigt, og af en sådan sammenligning følger intet. Den fjerde tager en foranderlig størrelse for en fast.
06 · Naboenheder
Ved siden af står de enheder, der måler det samme arbejde fra andre sider: hertz som signalets egen frekvens, antallet af flydende tals-operationer per sekund og antallet af instruktioner, der falder på én cyklus. Alle følger af hinanden, så snart frekvensen og pipelinens adfærd er kendt.
frekvens, SI-enhed
et dimensionsløst mål
et mål for regnearbejde
Blandt Simetriums datablade står ved siden af hertz, som angiver frekvensen, sekund og dens delpræfikser, unix time, hvor grænsen ligeledes sættes af maskinordet, og bitten s byten, hvormed man måler det, en cyklus bærer.
07 · Historisk afsnit
Tredive års kapløb og én dags aflysning
Den første processor på en enkelt chip kørte på en frekvens, som en nutidig chip passerer på en brøkdel af et mikrosekund, og én instruktion tog den otte cyklusser. Maskincyklussen var da et bogstaveligt begreb: læse instruktionen, tyde den, hente data, regne og skrive — hvert trin tog sin cyklus, og alle gik strengt efter tur.
Så snart trinene lærte at arbejde samtidig på forskellige instruktioner, brast det vante mål: en instruktion tog stadig fem cyklusser, men forlod pipelinen hver cyklus. Tællingen måtte vendes, og man talte om cyklusser per instruktion, som hos en god maskine sank under ét — det vil sige, at der på én cyklus bliver mere end én instruktion færdig.
En arkitektur med en pipeline på enogtredive trin blev bygget for frekvensens skyld og løb ind i varmen: de lovede ti gigahertz krævede en køling, som var utænkelig i et skrivebordskabinet. Projektet blev lukket, og branchen vendte sig mod mange kerner — ikke fordi det er bedre, men fordi den kubiske vækst i forbruget ikke lod nogen anden vej.
En nutidig kerne har ikke én frekvens: i hvile falder den til nogle hundrede megahertz, under belastning stiger den mod fem gigahertz og holder dem, så længe varmemargenen rækker. Tallet på bladet blev et løfte under gunstige vilkår, og at sammenligne maskiner efter det er både producenter og anmeldere holdt op med.
En enhed, hvis længde ændrer sig undervejs i målingen
Cyklussen er ubekvemt indrettet for metrologen: dens længde sættes ikke af en normal, men af chippens ledningsføring, og den ændrer sig hos en og samme processor hundreder af gange i sekundet, da strømstyringen tilpasser frekvensen til last og temperatur. Derfor duer cyklustælleren ikke til at måle tid, skønt den udefra ligner et ur, og et program, der stoler på den, tager fejl med så meget, som frekvensen har flyttet sig.
Til den opgave derimod, som cyklussen opstod for, passer den bedre end nogen tidsenhed. Ved at tælle cyklusser måler vi ikke varighed, men omfanget af regnearbejde, og derfor forbliver antallet af cyklusser per instruktion sammenligneligt ved enhver ændring af frekvensen — det taler om, hvor godt koden har lagt sig på chippen, ikke om hvor mange sekunder der er gået.
Katalog · måleenheder
Et datablad for hver størrelse
Syv SI-basisenheder, toogtyve afledte med egne navne og størrelser uden for systemet, som hverken teknikken eller kalenderen kan undvære.