Hoppa till innehÄllet

Processorarkitektur

FrÄn Wikipedia
En nÄgorlunda modern CPU:s arkitektur

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Ä:

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]
Relativa hopp

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.

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.

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).

  • John P. Hayes, Computer Architecture and Organisation, Second Edition, 1988, Singapore

Externa lÀnkar

[redigera | redigera wikitext]