agems temaer Oppbygging av RAM! ra kapittel i Computer Organisation and Architecture! Kort om hurtigminne (RAM)! Organisering av CPU: von Neuman-modellen! Register Transfer Language (RTL)! Instruksjonseksekvering! Pipelining! Sentrale begreper er adresserbarhet og adresserom! Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon (lese- eller skrive-operasjon).! Antall bit som kan refereres til i én operasjon kalles gjerne CPU ens olengde, mens bit ene betraktet under ett kalles vanligvis et o.! e fleste CPU er kan også referere til halvo (halvparten antall bit i et o) og byte ( bit).! Adresserom: Hvor mange unike o en CPU kan referere til totalt; dvs. hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av.! Adresserommet er bestemt av hvor mange adresselinjer CPU en har Oppbygging av RAM (forts.)! adresselinjer kan man adressere = o.! adresselinjer kan man adressere =,, o, dvs M o.! adresselinjer kan man adressere =,9,9,9 o, dvs G o! NB: Ingen sammenheng mellom antall ulike o som kan adresseres, og antall bit i hvert o! Men: et er vanlig å angi minnestørrelse i antall byte istedenfor enn i antall o, dvs hvor mange megabyte eller gigabyte hukommelsen har a a a n nable in in in in bit bit bit bit bit bit bit bit bit bit bit bit Adresserom: Antall bit linjer! Logisk sett er RAM organisert som en n x m matrise av -bits celler hvor man kan velge ut én rad ad gangen for skriving/lesing, og der n er olengden, og m er antall adresselinjer Adresserbarhet: Antall bit horisontalt
Von Neumann modellen! nkel modell definert på slutten av 9-tallet for organisering av en datamaskin i fem ulike er: Input Hukommelse MAR MBR Prosesserings TMP ALU Output Hukommelse! Hukommelsen er koblet til resten gjennom adressebussen og databussen.! Innholdet på adressebussen identifiserer et o i hukommmelsen (ved lesning skriving fra/til hukommelsen).! atabussen transporterer bitmønsteret som enten er lest fra eller skal skrives inn til en bestemt lokasjon i hukommelsen.! Ved lesing legges adressen til oet som skal leses først inn i MAR (Memory Address Register). eretter blir oet som er lest fra hukommelsen lagt over i MBR (Memory Buffer Register). MBR kalles også MR (Memory ata Register) PC! Ved skriving legges adressen til lokasjonen det skal skrives til i MAR, mens bitmønsteret som skal skrives inn i hukommelsen legges først inn i MBR.! Nesten alle dagens maskiner har denne organiseringen.! MAR og MBR er grensesnittet mellom prosesserings-en og hukommelsen, dvs prosesseringsen forholder seg kun til disse ved minneaksess Prosesseringsen en! Prosesseringsen består av en eller flere ALU er og registre.! ALU en utfører aritmetiske og logiske beregninger på variable som ligger i registrene, og beregner adresser under programeksekvering! en sørger for at styresignaler har riktig vei til rett tid, og styrer derfor hele datamaskinen.! ALU en utfører gjerne operasjoner på o av samme lengde som maskinens olengde, og spesial-operasjoner på byte og halvo.! Siden ALU en henter input fra registre, og skrives resultatene også til registre (ikke direkte til/fra hukommelse) blir prosesseringen mer effektiv med mange registre, minneaksess mot langsom RAM unngås! e fleste prosessorer bruker en dedikert ALU for å gjøre adresseberegninger (f.eks hente neste instruksjon og finne adresser ved hoppinstruksjoner).! en inneholder bl.a. to registre kalt programteller (PC) og instruksjonsregister ().! Programtelleren inneholder adressen til neste instruksjon som skal utføres.! Instruksjonsregisteret inneholder instruksjonen som eksekveres i øyeblikket.! en styrer i tillegg input og put-er i større eller mindre grad, men en del kontrollfunksjoner er også distribuert og innebygget i de andre ene.! Registre bygges med -flipflop er, mens resten av RAM/cache er bygget opp med en annen type teknologi basert på lagring av elektriske ladninger (kondensatorer)
Input og put (I/O) Register Transfer Language (RTL)! Inndata kan komme fra en rekke er som f.eks mus, tastatur, C-ROM, V, skanner, USB-port, nettverkskort, floppydisk, hadisk etc.! Input-er varierer i egenskaper som hastighet, størrelse/type data osv, men det er nødvendig å ha minst én input- for å sende informasjon (både program og data) inn til minnet og prosesseringen.! Output fra en datasmaskin kan også gå til en rekke ulike typer er som skjerm, nettverkskort, lydkort, hadisk, C-ROM, V, magnettape, floppydisk etc.! Presis notasjon for å beskrive flytting av informasjon! Notasjon: [] Innholdet av N Registernavn Overføre, kopiere (innholdet av) () Hukommelsesmodul! Output-er har som input-er forskjellige karakteristika. n datamaskin ha minst én put-.! ksempel [IP] [IP] + [AX] [MAR] [BX] [MBR] [M([MAR])] Adder innholdet av AX til innholdet i IP Legg innholdet av lokasjonen som BX inneholder adressen til over i MBR 9 ksekvering av instruksjoner ata Beregne startadressen og øk programtelleren med : [IP] [IP] + Register for instruksjonspeker; kalles også for PC (Program Counter) MAR MBR A IP add store lagg MBR A add store lagg
Last inn lokasjon inn i MBR: [MBR] [M([MAR])] Kopier instruksjonen over i instruksjonsregisteret: [] [MBR] A add store lagg A add store lagg Hent ut instruksjonskoden fra instruksjonen og sett riktige veier på kontrollsignaler: CU [(opcode)] A add store lagg Utfør instruksjonen ved å gjøre følgende:! Hent ut adressen til operanden ved å dekode operandfeltet av instruksjonen: [MAR] [(operand-adressen)]! På samme måte som ved henting av instruksjonen hentes inn operanden (fra lokasjon slik det er angitt i instruksjonen): [MBR] [M()]! Overfør innholdet fra MBR til register A: [A] [MBR]
tter at instruksjonen er eksekvert: add store lagg Utfør instruksjonen add ved å gjøre følgende:! Hent ut adressen til operanden ved å dekode operandfeltet av instruksjonen: [MAR] [(operand-adressen)]! På samme måte som ved henting av instruksjonen hentes inn operanden (fra lokasjon slik det er angitt i instruksjonen): [MBR] [M()] (NB: eil i læreboka)! Overfør operandene til ALUens to input: ALU [A];ALU [MBR]! tter at addisjonen er utført må resultatet lagres i register A: [A] ALU tter at instruksjonen add er eksekvert men før resultatet er lagret og flagg satt: tter at resultatet er lagret og flagg satt: add add store lagg add add store lagg 9
Utfør instruksjonen store ved å gjøre følgende:! Hent ut adressen til der resultatet skal skrives ved å dekode operandfeltet av instruksjonen: [MAR] [(operand-adressen)]! Kopier innholdet av A til MBR: [MBR] [A]! Kopier innholdet av MBR til lokasjon : [M()] [MBR] tter at store er utført: add store store lagg Ytelsesforbedring Pipelining! To viktige teknikker for å øke hastigheten til en CPU er pipelining og cache! Kan sammenlignes med samlebåndsproduksjon:! Pipelining: Starte eksekvering av en ny instruksjon hver klokkesykel! Cache: gen type hurtigminne som nesten er like rask som interne registre, men med mye større kapasitet, dog ikke like mye som RAM! essuten benyttes også parallell-eksekvering benyttes også der det er mulig, spesielt internt i CPU-haware (superskalare maskiner)! Men: n av de viktigste årsakene til at maskiner blir raskere er allikevel at transistorene blir mindre, trekker mindre strøm, og kan endre tilstand raskere! Isteden for å vente til forrige instruksjon er feig eksekvert, setter man i gang neste instruksjon så fort som første steg av forrige instruksjon er feig.! Med pipelining øker man antallet instruksjoner som blir feig eksekvert per tids, men: hver instruksjon tar fortsatt like lang tid! orutsetningen for at pipelining er at hver som utfører en del av en instruksjon arbeider uavhengig av de andre ene i pipelinen! Gitt en prosessor hvor hver instruksjon består av fire steg: TCH (Hent instruksjon) CO (ekod instruksjonen) XCUT (Utfør instruksjonen) WRIT BACK (Skriv resultatet til minne)
Pipelining (forts) Uten pipelining Instruksjon Instruksjon Instruksjon! Antar at det finnes uavhengige haware-er som kan utføre hver av disse stegene uten å benytte de andre delene:! or eksempel skal TCH ikke trenge å bruke XCUT-en for å hente en instruksjon eller variabel (men XCUT er avhengig av input fra COsteget, og CO-steget er avhengig av input fra TCH-steget osv)! Alle ene kunne jobbe i parallell, med hver sine steg fra ulike instruksjoner, uten å gå i beina på hverandre. Med pipelining Instruksjon Instruksjon Instruksjon Instruksjon Instruksjon Tid (klokke sykler)! Uten pipelining kan TCH-steget til instruksjon først kan starte etter WRIT- BACK steget til instruksjon! Med pipelining starter TCH-steget til instruksjon rett etter at TCH-steget til instruksjon er feig Uten pipelining Instruksjon Instruksjon Instruksjon Uten pipelining Instruksjon Instruksjon Instruksjon Med pipelining Med pipelining Instruksjon Instruksjon Instruksjon Instruksjon Instruksjon Instruksjon Instruksjon Instruksjon Instruksjon Instruksjon Tid (klokke sykler)! Uten pipelining er det kun ett steg fra én instruksjon som prosesseres ad gangen i prosessoren.! Med pipelining er det opptil steg fra forskjellige instruksjoner som prosesseres i parallell. I klokkesykel utføres WRIT-BACK fra instruksjon, XCUT fra instruksjon, CO fra instruksjon og TCH fra instruksjon nummer! Uten pipelining avsluttes en instruksjon hver fjee klokkesykel. Tid (klokke sykler)! Med pipelining er instruksjon feig etter. klokkesykel, instruksjon feig etter. klokkesykelosv. Mao: n instruksjon er feig hver klokkesykel.