Maskvaredelen av INF 3: oversikt og nhold () Boolsk algebra: Regng med og, og AND, OR og NOT Analyse og design av logiske kretser: AND, OR og NOT som byggeblokker Hukommelse og sekvensiell logikk: Konstruksjon av RAM og mnekretser von Neuman modellen: Generisk CPU Organiserg og design av CPU Oppbyggg av en virkelig CPU Maskvaredelen av INF 3: oversikt og nhold () Moderne datamasker Diverse knep, triks og metoder som brukes Input/put Transport av data ut og n av datamasker Periferutstyr Harddisker, DVD, CD-ROM Pentium og PowerPC CPU er To av de vanligste CPU-typene Bruker bottom-up tilnærmg: Enkle deler settes sammen til større og mer kompliserte enheter. Kan være litt vanskelig å få oversikten til å begynne med! 3..3 INF 3 3..3 INF 3 Dagens temaer Dagens emner er hentet fra Patt & Patel kapittel 4 og (side 7-4): Intern hukommelse (RAM) Organiserg av CPU: von Neuman-modellen Komponenter i von Neuman Utførg av Instruksjoner LC- arktiekturen i mer detalj Intern hukommelse () Viktig å forstå hvordan hurtigmnet (RAM) fungerer for å skjønne hvordan CPU en er designet. Sentrale begreper er adresserbarhet og adresserom Adresserbarhet: Antall bit som kan refereres til eller aksesseres samtidig i én operasjon. Antall bit som kan refereres til i én operasjon kalles CPU ens ordlengde, og kalles gjerne et ord. De fleste masker kan adressere 3 bit i hukommelsen ad gangen, m.a.o. 3-bits ordlengde. De fleste CPU er kan også referere til halvord (halvparten antall bit i et ord) og byte ( bit). Nye CPU er (f.eks Pentium 4) har 4 bits ordlengde. 3..3 INF 3 3 3..3 INF 3 4
Intern hukommelse () Adresserom: Antall ord en CPU kan referere til totalt. Intern hukommelse (3) RAM er en matrise av lagerceller hvor man velger rader og kolonner for skrivg/lesg Adresserommet er bestemt av antall adresseljer CPU en har. D 3 Enable D D D En adresselje er et digitalt signal som brukes til å velge lagerlokasjoner. Med adresseljer kan man adressere = ulike ord. Med adresseljer kan man adressere =,43,4 ulike ord, dvs M ord. Med 3 adresseljer kan man adressere 3 =4,4,7, ulike ord, dvs 4 G ord a a a n Dekoder bit bit bit bit bit bit bit bit bit bit bit bit Adresserom: Antall rader Ingen sammenheng mellom antall ulike ord som kan adresseres, og antall bit i hvert ord. OBS: Vanlig å angi mnestørrelse i antall byte istedenfor enn i antall ord! D 3 D D D Adresserbarhet: Antall kolonner 3..3 INF 3 3..3 INF 3 von Neuman-modellen Oppdelg av en datamask i fem mdre enheter: ) Hukommelse ) Prosessergsenhet 3) Input 4) Output ) Kontollenhet Nesten alle moderne datamasker bygget opp med disse funksjonelle enhetene. Hukommelse Hukommelsesenheten er forbundet til resten av datamasken gjennom adressebussen og databussen. Adressebussen identifiserer en lokasjon eller et ord i hukommmelsen. Databussen transporterer bitmønsteret som skal leses fra/skrives til hukommelsen. Ved lesg legges adressen til ordet som skal leses først n i MAR (Memory Address Register). Deretter blir ordet som er lest fra hukommelsen lagt over i (Memory Data Register). Input PC Hukommelse MAR Prosessergsenhet TEMP ALU Kontrollenhet IR Output Ved skrivg legges adressen til lokasjonen det skal skrives til i MAR, mens bitmønsteret som skal skrives n i hukommelsen legges n i. MAR og er grensesnittet mellom prosessergsenheten og hukommelsen, dvs prosessergsenheten skriver/leser ikke direkte fra hukommelsen. 3..3 INF 3 7 3..3 INF 3
Prosessergsenheten Kontrollenhet Prosessergsenheten består av en eller flere ALU er og midlertidig lagerceller (registre). Kontrollenheten sørger for at styresignaler har riktig verdi til rett tid. ALU en utfører aritmetiske og logiske beregnger på variable som ligger i registrene, og til å beregne adresser under programutførelse ALU en arbeider på ord av samme lengde som maskens ordlengde, og spesial-operasjoner på byte og halvord. Siden ALU en skriver/leser til/fra registre blir CPUen mer effektiv med mange registere (trege RAM-celler behøves sjeldnere) Kontrollenheten neholder blant annet to registre kalt programteller (PC) og struksjonsregister (IR). Programtelleren neholder adressen til neste struksjon som skal utføres. Instruksjonsregisteret neholder struksjonen som eksekveres i øyeblikket. Kontrollenheten styrer også put og put-enheter. Moderne prosessorer bruker en egen ALU for å gjøre adresseberegnger (adresse til neste struksjon). En del kontrollfuksjoner er distribuert og nebygget i de andre enhetene. 3..3 INF 3 3..3 INF 3 Input og put (I/O) LC- fra et von Neuman perspektiv Input kan komme fra en rekke enheter som f.eks mus, tastatur, CD-ROM, DVD, skanner, nettverkskort, floppydisk, harddisk osv. En datamask må ha mst én put-enhet for å sende formasjon (både program og data) til CPUen. Output kan sendes til skjerm, nettverk, lydkort, harddisk, CD-ROM, DVD, magnettape, floppydisk etc. Datamask ha mst én put-enhet for å presentere resultater fra beregnger. Ulike I/O enheter har svært forskjellige egenskaper (hastighet, datatype, størrelse) avhengig av bruksområde. 3..3 INF 3 3..3 INF 3
Instruksjonseksekverg () I en von Neuman-mask ligger både struksjoner og data i samme hukommelse og er kun bitmønstre sett utenfra. Kontroll-enheten holder rede på om et område neholder variable eller struksjoner. Informasjon om dette fnes i struksjonen som eksekveres: En struksjon deles opp to felt: opkode (også kalt operasjonskode) og operander. Instruksjonseksekverg () : ADD-struksjonen (type ) DR = SR + SR Opkode = ADD Bitposisjon nen struksjonen DR SR Source register Instruksjonen har source-registre SR Source register Opkoden bestemmer hvilken struksjon det er, og hvordan operand-feltet skal tolkes. I LC- prosessoren ligger opkoden i bit -, m.a.o er det plass for å lagre i alt ulike struksjonstyper. Hver struksjonstype kan ha flere varianter, og disse er da bestemt av hva som ligger i operand-feltet. 3..3 INF 3 3 ADD-struksjonen (type ) DR = SR+SignExt (Imm) Opkode = ADD Destasjonsregister Destasjonsregister Bitposisjon nen struksjonen DR Source register SR Imm 3..3 INF 3 4 Operand # ligger i Imm(ediate)-feltet 4 Operand # ligger lagret direkte her Instruksjonseksekverg (3) Når en struksjon skal utføres, deles den opp i flere mdre steg som utføres etter hverandre. Ikke alle struksjoner trenger like mange steg for å eksekveres. Hvert enkelt steg deles opp i mdre steg som utføres sekvensielt. I LC--prosessoren består en struksjonssyklus av følgende faser: ) Hent struksjonen ) Dekod struksjonen 3) Beregn adresse 4) Hent operander ) Eksekver ) Lagre resultatet ) Hent Instruksjonen Neste struksjon hentes fra hukommelsen og plasseres i IntruksjonsRegisteret: ) PC kopieres over i MAR ) PC økes med 3) Hukommelsen aksesseres og nholdet i lokasjonen pekt på av MAR plasseres i 4) kopieres over i IR ) Dekod struksjonen Kontrollenheten dekoder opkode-feltet for å fne ut hvilken struksjon som skal eksekveres (én av i alt ). Styre- og kontrollsignaler for å lese terne registre, utføre riktig struksjon i ALU etc gis riktig verdier. Dekodgsoperasjonen utføres i ett steg. 3..3 INF 3 3..3 INF 3
3) Beregn adresse Ved Load/Store eller Jump, kan det være nødvendig å addere et offset til base-adressen for å fne riktig lokasjon. Dette skjer i såfall i denne fasen. 4) Hent operander Avhengig av struksjonstypen, lastes enten riktig adresse n i MAR (som fører til at nholdet av operanden blir lagt i ), eller styresignaler settes s.a nholdet av terne registrene sendes til ALUen ) Eksekver struksjonen ALU en utfører selve operasjonen, f.eks ADD eller AND. Ikke alle struksjoner har dette steget (f.eks LDR) ) Lagre resultatet Resultatet fra steg skrives tilbake til et register eller til hukommelsen hvis struksjonen var av type Store (ST). Instruction Set Architecture ISA (Instruction Set Architecture) er grensesnittetet en programmerer ser mot maskvaren, og deferer funksjoner som er tilgjengelig for programmer (assembler, operativsystem og applikasjonser). ISA deferer også struksjonstyper, adressergsmodi, mneorganiserg og registersett. LC- er svært enkel med registre, -bits ordlengde og 3 hovedtyper struksjoner med i alt struksjoner. LC- kan adressere ialt 4 M ord à bit, dvs KB. Instruksjonene er enten av typen ) Aritmetisklogiske, ) Hopp eller 3) Dataflyttg LC- har 3 ett-bits statusregistre N, Z og P som angir om verdien som skrives til et register er negativt, null eller positivt. LC- har fem ulike adressergsmodi (beregng av adressen til en variabel eller operand) 3..3 INF 3 7 3..3 INF 3 Registeradresserg Operanden(e) ligger i et register (registre). Umiddelbar adresserg Brukes for å beregne en adresse (i RAM) og laste den n i et register. Registernummeret (eller numerene) er en del av struksjonen: Reg NR Adressen beregnes relativt til programtelleren ADD DR, SR, SR DR SR SR Beregngen skjer i to steg: ) De øvre 7 bitene av adressen til struksjonen konkateneres med konstanten på bit som ligger som en del av struksjonen. ) Den framkomne verdien lastes n i registeret spesifisert av struksjonen: PC IR R 3..3 INF 3 3..3 INF 3
Direkte adresserg Adressen til en operand (i RAM) er en del av struksjonen Reg NR Adressen beregnes relativt til programtelleren Indirekte adresserg Ved direkte adresserg beregnes adressen til lokasjonen som neholder adressen til operanden Reg NR Beregngen skjer i to steg: ) Den. adressen som for direkte adresserg. Beregngen av adressen skjer i to steg: ) De øvre 7 bitene av adressen til struksjonen konkateneres med konstanten på bit som ligger som en del av struksjonen. ) Den framkomne verdien brukes som adresse til der man skal lese fra (eller skrive til). ) På den fremkomne adressen ligger adressen som man skal bruke som operand: PC IR PC MAR RAM IR MAR R3 R RAM 3..3 INF 3 3..3 INF 3 Base+offset adresserg -bits konstant verdi (del av struksjonen) legges til nholdet i et baseregister (spesifisert av struksjonen) for å fne adressen til operanden -verdien er kun positiv, og zero-extension gjør om offset til et -bits tall (fylles kun på med er til venstre) IR R Reg Reg + Det fner mange flere varianter av disse grunnleggende adressemodi Mer om adresserg ved gjennomgang av CPU er senere i kurset. Kommentar: Utvidelse av fortegn (sign-extension) Hvis konstanten er positiv (bit et lengst til venstre er ), kan man bare fylle på med til venstre for konstanten helt til man får bit. MAR R RAM Hvis bit et lengst til venstre i konstanten er, betyr det at konstanten er negativ, og man må da fylle på med helt til man får bit. Dette 3..3 INF 3 3 3..3 INF 3 4
Utvidet LC- arkitektur 3..3 INF 3