Processorarkitektur
| Den hÀr artikeln behöver fler eller bÀttre kÀllhÀnvisningar för att kunna verifieras. (2022-10) à tgÀrda genom att lÀgga till pÄlitliga kÀllor (gÀrna som fotnoter). Uppgifter utan kÀllhÀnvisning kan ifrÄgasÀttas och tas bort utan att det behöver diskuteras pÄ diskussionssidan. |

Processorarkitektur kallar man det sÀtt en centralprocessor (CPU) eller annan processor arbetar pÄ. Processorerna har normalt, pÄ lite olika sÀtt, hand om all databehandling inklusive sÄvÀl aritmetiska som logiska berÀkningar.
VidstÄende figur visar lite förenklat hur en CPU kan fungera. Den nyttjar dock inget indexregister vilket Àr en finess som tillkom först 1949. I övrigt Äterspeglar den en fullt funktionell CPU.
Vi har alltsÄ:
- En ackumulator (AC) dÀr data mellanlagras och manipuleras (frÀmst skiftas och Äterlagras frÄn ALU:n)
- En ALU (Arithmetic Logic Unit) dÀr de aritmetiska och logiska operationerna utförs
- En programrÀknare (PC) som hÄller reda pÄ var och vad som ska exekveras/lÀsas ur arbetsminnet
- Ett adressregister (AR) dÀr adresserna mellanlagras
- Ett dataregister (DR) dÀr data mellanlagras
- Ett instruktionsregister (IR) dÀr instruktionerna realiseras i form av smÄ primitiva mikroinstruktioner.
Förutom ovanstÄende behövs:
- Ett CCR (Condition Code Register) för att tyda de aritmetiska operationernas resultat. Till exempel har vi sÄ kallade flaggor för negativt tal (Negative, N=1), för stort tal (Carry, C=1), noll (Zero, Z=1) och utanför talomrÄdet (Overflow, V=1). I normala fall har vi Àven flaggor för Interrupt (I) och sÄ kallad Half Carry (H) som intrÀffar mellan nibblar vid aritmetiska operationer.
- En heladderare (FA) för additionen eller subtraktionen (pÄ tvÄkomplementsform) som inte alltid behöver göras pÄ flyttalsform.
- Vi kan skippa separat multiplikator/dividerare om man kan acceptera multipler om 2 som aritmetisk operation med hjÀlp av skiftning (LSL=*2, LSR=/2) (Horners metod).
Dessutom kan det vara bra att ha:
- Ett stackpekarregister (SP). Detta speciellt om man vill kunna anvÀnda sig av subrutinanrop (som krÀver att minst PC+1 sparas undan som Äterhoppsadress). Det Àr Ànnu viktigare vid interrupt (IRQ) om man vÀljer att implementera det i sin processor.
Basal heltalsrepresentation
[redigera | redigera wikitext]Bilden visar hur relativa villkors-hopp (och dÀrmed positiva och negativa tal) rÀknas ut och görs i en processor. Efter att ha studerat artikeln 2-komplement och artikelavsnittet heladderare förstÄr vi bilden bÀttre. I figuren har vi antagit att programrÀknaren (PC) Àr en byte stor och att villkors-offseten Àr hÀlften sÄ stor dvs. en nibbel eller +7/-8 i tallÀngd. Man ser till exempel att V-flaggan (Overflow) aktiveras för (26+3) dvs. tallÀngden Àr överskriden (indikeras logiskt av C4 XOR C3 om nu det förtydligar). Negativa tal (N) indikeras av att MSB i nibbeln (och alla övriga högre bitpositioner, vilket Àr viktigt att komma ihÄg) Àr hög (se till exempel 26+(-8)). Carry (C) genereras sedan exempelvis för (2C+5). Slutligen genereras Z-flaggan (noll) av den logiska operatorn NOR pÄ hela resultatet.
NÀr vi nu förstÄr grundlÀggande heltalsrepresentation kan vi gÄ vidare till flyttalsrepresentation.
Flyttalsrepresentation
[redigera | redigera wikitext]Flyttal kallas den typen av tal som har en teckenbit (S), en exponent (E) pÄ tvÄkomplementsform och en mantissa (signifikant, M). Normalt representeras ett flyttal med hjÀlp av 32 bitar dÀr teckenbiten naturligtvis Àr en bit, exponenten 8 bitar och mantissan sÄledes 23 bitar. Ett godtyckligt tal kan dÄ skrivas:
dÀr S=1 alltsÄ indikerar ett negativt tal och exponenten gör att tal mellan 2-128 och 2127 (vilket lite grovt motsvarar 10+/-38) kan representeras. Det bör tillÀggas att mantissans vÀrde motsvaras av den seriella utvecklingen av 2-n dÀr n=0 motsvaras av mantissans MSB. Detta kan ocksÄ skrivas:
dÀr mn Àr mantissans koefficienter (som alltsÄ antingen Àr 0 eller 1).
Instruktioner och data
[redigera | redigera wikitext]En processorarkitektur 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. till exempel 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 till exempel 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, till exempel 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 till exempel konstanta textstrÀngar kan lagras i programmet (i instruktionsregistret), och kommas Ät som vanlig data.
Databredd
[redigera | redigera wikitext]Processorarkitekturer definieras Àven efter hur breda sÄ kallade ord de förmÄr hantera (i ett steg). Att en processor har till exempel 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 till exempel 18 och 36 bitar (versioner av DEC PDP-serien bl.a.); Àven till exempel 10, 12, 22, 26, 27, 40, 48, 50, och 60 bitar har förekommit genom Ären (se till exempel Word (computing) pÄ eng. wikipedia).
Instruktionshantering
[redigera | redigera wikitext]Datorarkitekturer kan Àven delas in i hur komplexa arkitekturer de har.
- CISC (eng. Complex Instruction Set Computing), 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 Computing), 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.
Byteordning
[redigera | redigera wikitext]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).
Se Àven
[redigera | redigera wikitext]KĂ€llor
[redigera | redigera wikitext]- John P. Hayes, Computer Architecture and Organisation, Second Edition, 1988, Singapore
Externa lÀnkar
[redigera | redigera wikitext]
CPU design pÄ Wikibooks.