Fö 9: Datorarkitektur Introduktion till datorarkitektur. RISC eller CISC? Datorarkitektur Datorarkitektur: De attribut hos ett datorsystem som är synliga för programmerare, eller har en direkt påverkan på den logiska exekveringen av ett program. Klassifikation av datorsystem. Applikationer. Typeset by FoilTEX 1 Typeset by FoilTEX 2 Datororganisation Komponenter och kommunikationsvägar som realiserar en arkitekturspecifikation. Typiska Arkitekturattribut Instruktionsuppsättningen. Datarepresentation. I/O mekanismer. Antal och typer av register. Instruktionsexekvering. Exempelvis Pipelining. Exempel: Multiplikation. - Arkitektur: Maskininstruktion för multiplikation eller inte? - Organisation: speciell komponent för multiplikation eller inte? Minnesorganisation. Kommunikationsstruktur. Typeset by FoilTEX 3 Typeset by FoilTEX 4
Arkitekturegenskaper Exempel: Registerorganisation Kommersiella datorer har ofta en akritekturgrund som kan utökas. - Arkitekturen bevaras över flera generationer. - Organisation förändras beroende på implementationsteknik. Instruktionsuppsättningen en avgörande faktor. Typeset by FoilTEX 5 Typeset by FoilTEX 6 Moores lag Complex Instruction Set Computer Egenskaper hos en CISC arkitektur: Stort antal instruktioner (>200). Komplexa instruktioner och datatyper. - Exempel: Hårdvaru stöd för flyttalsformat (float och double). Hårdvarustöd för högnivå operationer - SWITCH/CASE. Mikroprogrammering används för att implementera instruktioner. Minnet ofta en flaskhals. Komplicerade typer av adressering. Typeset by FoilTEX 7 Typeset by FoilTEX 8
Argument för CISC Förenklar för kompilatorer. Mindre program kan ge bättre prestanda. - Mindre minne används. - Färre hämtcykler. - Färre instruktioner exekveras totalt. Problem med CISC Komplex och tidskrävande dekodning av instruktioner. Stöd för alla högnivå språk/konstruktioner stöds kan inte stödjas. Komplex design. Typeset by FoilTEX 9 Typeset by FoilTEX 10 Analys av programexekvering (1) Instruktionsfrekvens: - flytta data: 33% - villkorstest/hopp: 20% - Aritmetik/logik: 16% - Övriga: mellan 0.1% och 10%. Analys av programexekvering (2) Operandtyper: - 75-80% skalärer (heltal, flyttal, tecken, etc). - 20-25% arrayer/structar; 90% är globala variabler. Addresseringssätt: - Majoriteten använder enkla sätt (80%). Typeset by FoilTEX 11 Typeset by FoilTEX 12
Slutsatser Enkla instruktioner dominerar stort. Enkla adresseringssätt dominerar. Åtkomst av operander vanligt. Operander är enkla och kan vanligtvis lagras direkt i register. Optimering av CALL/RETURN viktigt. Reduced Instruction Set Computer Egenskaper hos en RISC Arkitektur: Litet antal instruktionstyper. Enkla instruktionsformat. En instruktion per maskincykel. Stort antal generella register. Bara LOAD och STORE mot minne. Enkla instruktioner är att föredra! Typeset by FoilTEX 13 Typeset by FoilTEX 14 Fördelar med RISC Enklare hårdvara för dekodning och exekvering. Snabbare CPU. Mindre area. Stort antal register på CPU. Färre minnesåtkomster med hjälp av temporära register. Nackdelar med RISC En operation kan kräva flera maskin instruktioner. - Fler minnesåtkomster totalt. - Försämrad exekveringshastighet. Större program. Mera minne måste användas. Svårare lågnivå programmering. Svårare att skriva effektiva kompilatorer. Effektiv pipelining av instruktioner. Mindre designkomplexitet; lägre designkostnad. Typeset by FoilTEX 15 Typeset by FoilTEX 16
CISC vs RISC Exempel: Intel i486, CISC 32-bitars processor: - Register: 8 Generella, 6 adress register (16 bitar), 2 status/kontroll register, 1 instruktionspekare (PC). - Flyttalsenhet (Matematikprocessor). - Mikroprogrammerad styrenhet. Instruktionsuppsättning: - 235 Maskininstruktioner. Exempel: FYL2XP1 x y utför y log 2 (x + 1) på 313 klockcykler. - Instruktionsstorlek: 1-12 bytes (genomsnitt 3.2). - Adresseringssätt: 11. Typeset by FoilTEX 17 Typeset by FoilTEX 18 Exempel: Intel i486, CISC (2) Minnesorganisation: - Adresslängd: 32 bitar ( 4 GB rymd). - Segmenterat minne (minnesskydd). - Stöd för demand paging. Virtuellt minne. - 8 KB internt cacheminne. Instruktionsexekvering: - Reg Reg, Reg Minne, Minne-Minne. - Instruktionspipeline: Fetch, Decode1, Decode2, Execute, Write-back. Exempel: SPARC, RISC Scalable Processor Architecture 32-bitars processor. - Heltals enhet. - Flyttalsenhet. 69 maskininstruktioner. 32 bitars virtuell adressrymd ( 4 GB). 40 520 generella 32 bitars register (2 32 överlappande registerfönster). Typeset by FoilTEX 19 Typeset by FoilTEX 20
Proceduranrop Högnivå program: Majoriteten av tiden för CALL och RETURN. Komplexa operationer som översätts till många maskininstruktioner. In/Ut parametrar. Lokala variabler. Registerfönster Bra med många generella register Problem: Om de måste sparas i primärminne vid proceduranrop. Lösning: Register delas in i överlappande fönster. - Varje proceduranrop tilldelas ett fönster. - Överlappning möjliggör parameteröverförning. Majoriteten av alla proceduranrop har endast några enstaka parametrar. Typeset by FoilTEX 21 Typeset by FoilTEX 22 Mikrodatorarkitektur (1) Processorkomponenter på ett chip. Ett moderkort: - 32 bitars processor. - Primärminne + Styrhårdvara. - Egen processor för flyttal. - En buss med kontakter för expansionskort. Mikrodatorarkitektur (2) Sekundärminneskort och I/O kort pluggas in på bussen. Extra primärminne på kort. Typeset by FoilTEX 23 Typeset by FoilTEX 24
Stordator Många bussar. Snabb processor. Specialprocessorer. Databasstöd. Driftssäkerhet, Minnesskydd, Åtkomstsäkerhet. Typiska applikationer (1) Mikrodatorer: - Hemanvändning. - Dokumenthantering, Skrivbordsapplikationer. - Spel. - Professionella Arbetsstationer. Minidatorer: - Nätverksserver. - Större arbetsstationer. - Industriell processkontroll. Typeset by FoilTEX 25 Typeset by FoilTEX 26 Typiska applikationer (1) Stordatorer: - Databashantering. - Transaktioner. - Administrativa system. Superdatorer: - Simulering. - Bild/Video behandling. - Väderprognoser. Sammanfattning Arkitekturen beskriver den utåt synliga delen av en dator. Antal register, Maskininstuktioner, etc. Arkitekturen är gemensam för en processor familj. - Program är portabla. Sekvensiell exekvering av instruktioner begränsar hastigheten. - Instruktions pipelining. - Flera processorer. Komplex instruktionsuppsättning (CISC). - Komplicerad styrenhet, mikroprogrammering. RISC Arkitektur. Typeset by FoilTEX 27 Typeset by FoilTEX 28