Registreringsvindue

I computerarkitektur udgør registervinduer en teknik til at forbedre udførelsen af funktionsopkald . De blev først brugt i Berkeleys RISC- processorer , som er kilden til SPARC- , AMD 29000- og Intel i960- arkitekturen .

De fleste processorer har et lille antal meget hurtige minder kaldet registre . Processorer bruger registre til midlertidigt at gemme værdier under udførelsen af ​​instruktionspakker. At øge antallet af registre i det indledende processordesign kan resultere i meget store præstationsgevinster.

Mens registre er en præstationsfaktor, har de også ulemper. Forskellige dele af et computerprogram bruger hver deres egne midlertidige værdier og vil derfor alle bruge registre. Da det er meget vanskeligt fuldt ud at forstå strømmen af ​​en programudførelse, er der ingen enkel måde at lade udvikleren på forhånd vide, hvor mange registre hver del af et program skal bruge. Normalt ignoreres overvejelser som dette simpelthen: udviklere og endnu mere sandsynligt forsøger de compilere, de bruger, at bruge alle synlige registre. Dette er også den eneste korrekte måde at gå videre, hvis den anvendte processor har få registre.

Det er her registreringsdatabase-vinduerne kommer i spil. Da hver del af programmet gerne vil have registre for sig selv, er det tilstrækkeligt at give flere separate sæt registre til de forskellige dele af programmet. Problemet er, at hvis alle registre er synlige, vil en part bruge registre, der ikke er en del af det sæt af registre, som de er tildelt. Tricket er derfor at gøre det usynligt for alle de registre, der ikke hører til dets sæt af registre.

Således ved udformningen af ​​Berkeley RISC ser programmer kun 8 registre ud af i alt 64. Det komplette sæt af registre udgør en registrebank , og hver delmængde på 8 registrerer et vindue . På denne måde kan der være op til 8 funktionsopkald, der hver har deres eget sæt med 8 registre. Hvis programmet ikke præsenterer nogen indlejrede funktionsopkald, hvis dybde overstiger 8, behøver processoren ikke at aflæse registre, det vil sige at gemme dem i hovedhukommelsen eller i cachen, hukommelser, hvis adgangstider er ekstremt langsomme i forhold til det af registre. Bemærk også, at statistiske undersøgelser af programmer såsom operativsystemer eller reelle applikationer har vist, at den maksimale dybde for indlejrede opkald i gennemsnit er 8, og at der kun er større dybde i 1%.

Se også

Referencer

  1. CISC / RISC sammenligning