Datorarkitektur
Från Rilpedia
En dators datorarkitektur beskriver hur en CPU (datorns centralprocessor) och andra centrala delar av datorn är uppbyggda. Olika typer av processorer använder olika datorarkitekturer. Begreppet Arkitektur för en processor kan liknas vid arkitektur för en stad, beskrivande hur breda gatorna skall vara, var husen skall stå, hur de ser ut, hur parkeringarna skall vara organiserade m.m. Maskinkod är i allmänhet kompilerad för en viss arkitektur.
Innehåll |
Instruktioner och data
En datorarkitektur kan delas upp i följande tre kategorier, som behandlar hur data och instruktioner hämtas in till processorn.
- von Neumann-arkitekturen. Instruktioner och arbetsdata samsas på en och samma buss. T.ex. att ett program laddas in från hårddisken till RAM-minnet i en dator, och sedan körs det därifrån. I RAM-minnet ligger även den data som programmet arbetar med.
- Harvardarkitekturen. Instruktioner och arbetsdata har två olika bussar, på så sätt kan t.ex. resultatet av en instruktion skrivas till RAM-minnet samtidigt som nästa instruktion hämtas från instruktionsminnet. Används ofta i mindre elektriska apparater, t.ex. miniräknare eller digitalur.
- Modifierad Harvard-arkitekturen påminner mycket om Harvard, men har en extra dataväg mellan instruktionsminnet och data-ingången på processorn, så att t.ex. konstanta textsträngar kan lagras i programmet (i instruktionsregistret), och kommas åt som vanlig data.
Databredd
Datorarkitekturer definieras även efter hur breda sk ord de förmår hantera (i ett steg). Att en processor har t.ex. en 16-bitars-ordlängd innebär att alla viktiga databussar i och runt den är 16 bitar breda. Många processorer har olika ordbredd i olika bussar, varvid termen inte är entydig.
- 8-bitars bredd användes från början av 1970-talet i mikroprocessorer. 8-bitars mikroprocessorer (med 16-bit adressering) är fortfarande den vanligast förekommande processortypen i inbyggda system. I flera av Texas Instruments grafiska kalkylatorer finns Z80, en 8-bitars processor med många 16-bitars instruktioner.
- 16-bitar har använts åtminstone sedan 1970 (PDP-11). Numera används 16-bitars mikroprocessorer i inbyggda system.
- 32-bitar har använts sedan tidigt 1960-tal (IBM System/360). Intels första 32-bit processor iAPX 432 lanserades 1981; den första 32-bit x86-processorn, 80386, lanserades 1985.
- 64-bitar har använts sedan tidigt 1960-tal (IBM 7030). En x86-baserad 64-bit arkitektur definierades av AMD 1999 och levererades i kvantitet 2003.
Andra ordlängder som använts i populära datorarkitekturer är t.ex 18 och 36 bitar (versioner av DEC PDP-serien bla); även t.ex 10, 12, 22, 26, 27, 40, 48, 50, och 60 bitar har förekommit genom åren (se t.ex Word (computing) på eng. wikipedia).
Instruktionshantering
Datorarkitekturer kan även delas in i hur komplexa arkitekturer de har.
- CISC (eng. Complex Instruction Set Computer), ett system där väldigt komplicerade instruktioner kan förekomma. I många CISC-processorer är det ett litet inbyggt mikroprogram i processorn som utför instruktionen. På så sätt kan instruktioner som utför långa sekvenser av operationer byggas.
- RISC (eng. Reduced Instruction Set Computer), en arkitektur som endast tillåter ett begränsat antal instruktioner, men där dessa å andra sidan kan utföras väldigt fort och effektivt.
- MISC (eng. Minimum Instruction Set Computer).
- PISC (eng. Pathetic Instruction Set Computer), en arkitektur där varje bit i instruktionen är en egen styrsignal i processorn, liknande det mikroprogram som är inbyggt i CISC-arkitekturen, detta medför en obehändigt bred instruktionsbuss. Det har aldrig kommersiellt släppts någon processor som bygger på PISC-arkitekturen.
- OISC (eng. One Instruction Set Computing).
- ZISC (eng. Zero Instruction Set Computing).
- VLIW (eng. Very Long Instruction Word), med väldigt bred instruktionsbuss kan flera instruktioner hämtas samtidigt till processorn, och utföras samtidigt. VLIW kallas även för EPIC (eng. Explicitly Parallel Instruction Computing).
Byteordning
Numeriskt data som skall behandlas av enskilda instruktioner kan vara ordnat på olika sätt. Den viktigaste skillnaden är byteordningen på heltal (vilka inbegriper till exempel instruktionsadresserna).