Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)

Like dokumenter
Dagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM)

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord.

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

! Sentrale begreper er adresserbarhet og adresserom. ! Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon

Maskinvaredelen av INF 103: oversikt og innhold (1)

Oppsummering av digitalteknikkdelen

INF2270. Datamaskin Arkitektur

Dagens temaer. Intern hukommelse (1) Maskinvaredelen av INF 103: oversikt og innhold (2) Maskinvaredelen av INF 103: oversikt og innhold (1)

INF2270. Datamaskin Arkitektur

Dagens temaer. Dagens emner er hentet fra Englander kapittel 11 (side ) Repetisjon av viktige emner i CPU-design.

IN1020. Datamaskinarkitektur

Prosessoren. Bakgrunnen Innhold LMC. Assemblerkode Oppsummering instruksjonene [Englander kap 6] Hva inneholder den? Hvordan utføres instruksjonene?

Intel Core i7. Omid Mirmotahari 4

Oppsummering digital-teknikk, teknikk, INF2270

Dagens tema. Flere teknikker for å øke hastigheten

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Overordnet maskinarkitektur. Maskinarkitektur zoomet inn. I CPU: Kontrollenheten (CU) IT1101 Informatikk basisfag, dobbeltime 11/9

tema er hentet fra kapittel 4.3 og 4.4 om pipelining Mikroprogrammert Dagens temaer Hard-wired Mikrokode Hasarder Ytelse

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and

Dagens temaer. Dagens emner er hentet fra Englander kapittel 10 (side ) Mer om adresseringsmodi. RISC og CISC-prosessorer.

Dagens temaer. Mer om adresseringsmodi. Indeksert adressering med offset og auto-inkrement eller dekrement. Register-indirekte adressering

Hvorfor lære om maskinvare*?

INF1400 Kap4rest Kombinatorisk Logikk

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

Datamaskinens oppbygning

Dagens temaer. temaer hentes fra kapittel 3 i Computer Organisation. av sekvensielle kretser. and Architecture. Tilstandsdiagram.

Dagens temaer. Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) RAM ROM. Hukommelsesbusser

Internminnet. Håkon Tolsby Håkon Tolsby

Forelesning 5. Diverse komponenter/større system

Datamaskinens virkemåte

Dagens temaer. Sekvensiell logikk: Kretser med minne. D-flipflop: Forbedring av RS-latch

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

En mengde andre typer som DVD, CD, FPGA, Flash, (E)PROM etc. (Kommer. Hukommelse finnes i mange varianter avhengig av hva de skal brukes til:

Dagens temaer. tema er hentet fra kapittel 4.3 og 4.4 om pipelining. til neste ukes forelesning (hvis tid) INF ! Mikrokode. !

Dagens temaer. Cache (repetisjon) Cache (repetisjon) Cache (repetisjon)

TDT4160 AUGUST, 2008, 09:00 13:00

Dagens temaer. Dagens temaer hentes fra kapittel 3 i Computer Organisation and Architecture. Sekvensiell logikk. Flip-flop er

Dagens tema. Dagens tema er hentet fra kapittel 4.3 og 4.4. Mer om pipelining Ytelse Hasarder. Pipelining i Pentium-arkitekturen

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Institiutt for informatikk og e-læring, NTNU CPUens deler og virkemåte Geir Ove Rosvold 4. januar 2016 Opphavsrett: Forfatter og Stiftelsen TISIP

Dagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache

IN1020. Minnehierarki

Dagens temaer. Praktisk anvendelse: Satellittkommunikasjon. eksempler på bruk av assembler/c/arkitektur teknikker for å øke hastigheten

TDT ITGK - Hardware. Kapittel 9: Følge Instruksjoner - Prinsipper for Datamaskinens Virkemåte. Terje Rydland - IDI/NTNU

Internminnet. Håkon Tolsby Håkon Tolsby

Forelesning Instruksjonstyper Kap 5.5

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

Intel Core i7. Omid Mirmotahari 4

bruksområder og oppbygging om cache-hukommelse (kapittel 6.5 i Computer Organisation Dagens temaer and Architecture ) ROM RAM

Dagens tema. Dagens tema hentes fra kapittel 3 i Computer Organisation and Architecture. Sekvensiell logikk. Flip-flop er. Tellere og registre

Innhold. Oversikt over hukommelseshierakiet. Ulike typer minne. Innledning til cache. Konstruksjon av cache Hukommelseshierarki-1 1

Dagens temaer. eksempler på bruk av assembler/c/arkitektur teknikker for å øke hastigheten. Organisation and Architecture )

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Cache (repetisjon) Cache (repetisjon) Cache (repetisjon) Dagens temaer. CPU Cache RAM. om cache-hukommelse (kapittel 6.5 i Computer Organisation

Fortsetelse Microarchitecture level

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

INF2270. Input / Output (I/O)

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte. Oversatt av Rune Sætre,

Del 1 Setup - BIOS Oppgaver: 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en.

kan adressere et større område som RAM enn det som faktisk er tilgjengelig. Siden data kan plasseres i RAM og/eller på harddisken brukes begrepet

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Hovedkort, brikkesett og busser

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)

Forelesning Optimalisering av μark Kap 4.4

UNIVERSITETET I OSLO

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte

Innhold. Virtuelt minne. Paging i mer detalj. Felles rammeverk for hukommelseshierarki Hukommelseshierarki-2 1

INF2270. Minnehierarki

Dagens temaer. Dagens temaer hentes fra kapittel 3 i læreboken. Oppbygging av flip-flop er og latcher. Kort om 2-komplements form

Forelesning 9. Registre, tellere og minne

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs Løsningsforslag. Torsdag 29. November 2007 Kl

Dagens temaer. Virtuell hukommelse. Sidetabell. Virtuell hukommelse (forts.)

Dagens temaer. Virtuell hukommelse (kapittel 9.9 i læreboken) Pentium-arkitekturen i mer detalj INF 1070

befinner seg. Deretter leses instruksjonen fra i registerfilen ved ny stigende klokkepuls.

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Singletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

Løsningsforslag eksamen TDT4160 høsten 2005

SIE 4005, 9/10 (4. Forelesn.)

Kapittel 4: Microarchitecture level

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Dagens tema. Mer om cache-hukommelse Kapittel 6.5 i Computer Organisation and Architecture ) RAM. Typer, bruksområder og oppbygging 2008 ROM

Hvorfor lære om maskinvaren*?

INF2270. Input / Output (I/O)

Setup programmet brukes til å endre konfigurasjonen av BIOS og til å vise resultatene fra

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

SIE 4005, 8/10 (3. Forelesn.)

Dagens tema. Mer MIPS maskinkode. Maske-operasjoner Skift-operasjoner Lesing og skriving Pseudo-instruksjoner Mer om funksjonskall Registeroversikt

EKSAMENSOPPGAVE I FAG TDT4160 DATAMASKINER GRUNNKURS. D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Oppgave 2 Maskinkode (vekt 12%)

Innhold. Oppgave 1 Oversettelse (vekt 15%)

TDT4258 Eksamen vår 2013

Hukommelseshierarki. 16/3 cache /3 virtuell hukommelse in 147, våren 1999 hukommelseshierarki 1

Oppgave lab. 2. Hvor mye Internminne har den? - Maskinen har 2GB internminne.

Martin Olsen, Lars- Petter Ahlsen og Jon- Håkon Rabben

Transkript:

Dagems temaer Fra Kort Organisering Register kapittel 4 i Computer Organisation and Architecture om hurtigminne (RAM) av CPU: von Neuman-modellen Transfer Language (RTL) Instruksjonseksekvering Pipelining

Oppbygging av RAM 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 CPU ens ordlengde, mens bit ene betraktet under ett kalles vanligvis et ord. De fleste CPU er kan også referere til halvord (halvparten antall bit i et ord) og byte (8 bit). Adresserom: Hvor mange unike ord 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.

3 Oppbygging av RAM (forts.) 8 adresselinjer kan adressere 8 =56 ord. 8 adresselinjer kan adressere 8 =68,435,456 ord, dvs 56 M ord. 3 adresselinjer kan adressere 3 =4,94,967,96 ord, dvs 4 G ord NB: Ingen sammenheng mellom antall ulike ord som kan adresseres, og antall bit i hvert ord Men: Det er vanlig å angi minnestørrelse i antall byte istedenfor enn i antall ord, dvs hvor mange megabyte eller gigabyte hukommelsen har 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 ordlengden, og m er antall adresselinjer

4 Adresserom: Antall bit linjer D 3 in D in D in D 0 in Enable bit bit bit bit a 0 a bit bit bit bit Dekoder a n bit bit bit bit D 3 out D out D out D 0 out Adresserbarhet: Antall bit horisontalt

5 Implementasjon DRAM celle SRAM celle

Von Neumann modellen 6 Enkel modell fra slutten av 940-tallet for organisering av en datamaskin i fem ulike enheter: Input Hukommelse MAR MBR Output Prosesseringsenhet ALU TEMP Kontrollenhet PC IR Nesten alle dagens maskiner har denne organiseringen.

7 Hukommelse Hukommelsen er koblet til resten gjennom adressebussen og databussen. Innholdet på adressebussen identifiserer et ord i hukommmelsen (ved lesning skriving fra/til hukommelsen). Databussen transporterer bitmønsteret som enten er lest fra eller skal skrives inn til en bestemt lokasjon i hukommelsen. Ved lesing legges adressen til ordet som skal leses først inn i MAR (Memory Address Register). Deretter blir ordet som er lest fra hukommelsen lagt over i MBR (Memory Buffer Register). MBR kalles også MDR (Memory Data Register) 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. MAR og MBR er grensesnittet mellom prosesserings-enheten og hukommelsen, dvs prosesseringsenheten forholder seg ved minneaksess kun til disse.

8 Prosesseringsenheten Prosesseringsenheten 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 ALU en utfører gjerne operasjoner på ord av samme lengde som maskinens ordlengde, og spesial-operasjoner på byte og halvord. 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 De fleste prosessorer bruker en dedikert ALU for å gjøre adresseberegninger (f.eks hente neste instruksjon og finne adresser ved hoppinstruksjoner). Registre bygges med D-flipflop er, mens resten av RAM/cache er bygget opp med en annen type teknologi basert på DRAM

9 Kontrollenheten Kontrollenheten sørger for at styresignaler har riktig verdi til rett tid, og styrer derfor hele datamaskinen. Kontrollenheten inneholder bl.a. to registre kalt programteller (PC) og instruksjonsregister (IR). Programtelleren inneholder adressen til neste instruksjon som skal utføres. Instruksjonsregisteret inneholder instruksjonen som eksekveres i øyeblikket. Kontrollenheten styrer i tillegg input og output-enheter i større eller mindre grad, men en del kontrollfunksjoner er også distribuert og innebygget i de andre enhetene.

0 Input og output (I/O) Inndata kan komme fra en rekke enheter som f.eks mus, tastatur, CD-ROM, DVD, skanner, USB-port, nettverkskort, floppydisk, harddisk etc. Input-enheter varierer i egenskaper som hastighet, størrelse/type data osv, men det er nødvendig å ha minst én input-enhet for å sende informasjon (både program og data) inn til minnet og prosesseringenheten. Output fra en datasmaskin kan også gå til en rekke ulike typer enheter som skjerm, nettverkskort, lydkort, harddisk, CD-ROM, DVD, magnettape, floppydisk etc. Output-enheter har som input-enheter forskjellige karakteristika. En datamaskin må ha minst én output-enhet.

Register Transfer Language (RTL) Presis notasjon for å beskrive flytting av informasjon Notasjon: [] Innholdet av N Registernavn Overføre, kopiere (innholdet av) () Hukommelsesmodul Eksempel [IP] [IP] + [AX] Adder innholdet av AX til innholdet i IP [MAR] [BX] Legg innholdet av lokasjonen som BX [MBR] [M([MAR])] inneholder adressen til, over i MBR

Dekoder Eksekvering av instruksjoner Data Kontroll MAR Buss CTRL Logikk rd wr Register for instruksjonspeker; kalles også for PC (Program Counter) Flagg MBR A IP add 5 store 6 IR Kontroll enhet stop 0 3 4 5 6 7 8

3 Dekoder Beregne startadressen og øk programtelleren med : [IP] [IP] + 0 Buss CTRL Logikk rd wr Flagg MBR A 0 add 5 store 6 IR Kontroll enhet stop 0 3 4 5 6 7 8

4 Dekoder Last inn lokasjon 0 inn i MBR: [MBR] [M([MAR])] 0 Buss CTRL Logikk rd wr Flagg A add 5 store 6 IR Kontroll enhet stop 0 3 4 5 6 7 8

5 Dekoder Kopier instruksjonen over i instruksjonsregisteret: [IR] [MBR] 0 Buss CTRL Logikk rd wr Flagg A add 5 store 6 Kontroll enhet stop 0 3 4 5 6 7 8

6 Dekoder Hent ut instruksjonskoden fra instruksjonen og sett riktige verdier på kontrollsignaler: CU [IR(opcode)] 0 Buss CTRL Logikk rd wr Flagg A add 5 store 6 Kontroll enhet stop 0 3 4 5 6 7 8

7 Utfør instruksjonen ved å gjøre følgende: Hent ut adressen til operanden ved å dekode operandfeltet av instruksjonen: [MAR] [IR(operand-adressen)] På samme måte som ved henting av instruksjonen hentes inn operanden (fra lokasjon 4 slik det er angitt i instruksjonen): [MBR] [M(4)] Overfør innholdet fra MBR til register A: [A] [MBR]

8 Dekoder Etter at instruksjonen er eksekvert: 4 Buss CTRL Logikk rd wr Flagg add 5 store 6 Kontroll enhet stop 0 3 4 5 6 7 8

9 Utfør instruksjonen add 5 ved å gjøre følgende: Hent ut adressen til operanden ved å dekode operandfeltet av instruksjonen: [MAR] [IR(operand-adressen)] På samme måte som ved henting av instruksjonen hentes inn operanden (fra lokasjon 4 slik det er angitt i instruksjonen): [MBR] [M(5)] (NB: Feil i læreboka) Overfør operandene til ALUens to input: ALU [A];ALU [MBR] Etter at addisjonen er utført må resultatet lagres i register A: [A] ALU

0 Etter at instruksjonen add 5 er eksekvert men før resultatet er lagret og flagg satt: 5 rd wr Buss CTRL Logikk add 5 store 6 Dekoder 0 3 4 5 6 7 8 stop add 5 Kontroll enhet Flagg

Dekoder Etter at resultatet er lagret og flagg satt: 5 Buss CTRL Logikk rd wr Flagg 3 add 5 store 6 add 5 Kontroll enhet stop 0 3 4 5 6 7 8

Utfør instruksjonen store 6 ved å gjøre følgende: Hent ut adressen til der resultatet skal skrives ved å dekode operandfeltet av instruksjonen: [MAR] [IR(operand-adressen)] Kopier innholdet av A til MBR: [MBR] [A] Kopier innholdet av MBR til lokasjon 6: [M(6)] [MBR]

3 Dekoder Etter at store 6 er utført: 6 Buss CTRL Logikk rd wr Flagg 3 3 3 add 5 store 6 store 6 Kontroll enhet stop 3 0 3 4 5 6 7 8

4 Ytelsesforbedring To viktige teknikker for å øke hastigheten til en CPU er pipelining og cache Pipelining: Starte eksekvering av en ny instruksjon hver klokkesykel Cache: Egen type hurtigminne som nesten er like rask som interne registre, men med mye større kapasitet, dog ikke like mye som RAM Dessuten benyttes også parallell-eksekvering benyttes også der det er mulig, spesielt internt i CPU-hardware (superskalare maskiner) Men: En av de viktigste årsakene til at maskiner blir raskere er allikevel at transistorene blir mindre, trekker mindre strøm, og kan endre tilstand raskere

5 Pipelining Kan sammenlignes med samlebåndsproduksjon: Isteden for å vente til forrige instruksjon er ferdig eksekvert, setter man i gang neste instruksjon så fort som første steg av forrige instruksjon er ferdig. Med pipelining øker man antallet instruksjoner som blir ferdig eksekvert per tidsenhet, men: hver instruksjon tar fortsatt like lang tid Forutsetningen for at pipelining er at hver enhet som utfører en del av en instruksjon arbeider uavhengig av de andre enhetene i pipelinen Gitt en prosessor hvor hver instruksjon består av fire steg: FETCH (Hent instruksjon) DECODE (Dekod instruksjonen) EXECUTE (Utfør instruksjonen) WRITE BACK (Skriv resultatet til minne)

6 Pipelining (forts) Antar at det finnes 4 uavhengige hardware-enheter som kan utføre hver av disse stegene uten å benytte de andre delene: For eksempel skal FETCH ikke trenge å bruke EXECUTE-enheten for å hente en instruksjon eller variabel (men EXECUTE er avhengig av input fra DECODEsteget, og DECODE-steget er avhengig av input fra FETCH-steget osv) Alle enhetene kunne jobbe i parallell, med hver sine steg fra ulike instruksjoner, uten å gå i beina på hverandre.

Uten pipelining Instruksjon Instruksjon Instruksjon 3 F D E WB F D E WB F D E WB Med pipelining F D E WB Instruksjon 7 F D E WB Instruksjon F D E WB Instruksjon 3 F D E WB Instruksjon 4 F D E WB Instruksjon 5 Tid (klokke sykler) Uten pipelining kan FETCH-steget til instruksjon først kan starte etter WRITE- BACK steget til instruksjon Med pipelining starter FETCH-steget til instruksjon rett etter at FETCH-steget til instruksjon er ferdig

Uten pipelining Instruksjon Instruksjon Instruksjon 3 F D E WB F D E WB F D E WB Med pipelining F D E WB Instruksjon 8 F D E WB Instruksjon F D E WB Instruksjon 3 F D E WB Instruksjon 4 F D E WB Instruksjon 5 Tid (klokke sykler) Uten pipelining er det kun ett steg fra én instruksjon som prosesseres ad gangen i prosessoren. Med pipelining er det opptil 4 steg fra forskjellige instruksjoner som prosesseres i parallell. I klokkesykel 4 utføres WRITE-BACK fra instruksjon, EXECUTE fra instruksjon 3, DECODE fra instruksjon 4 og FETCH fra instruksjon nummer 5

9 Uten pipelining Instruksjon Instruksjon Instruksjon 3 F D E WB F D E WB F D E WB Med pipelining F D E WB Instruksjon F D E WB Instruksjon F D E WB Instruksjon 3 F D E WB Instruksjon 4 F D E WB Instruksjon 5 Tid (klokke sykler) Uten pipelining avsluttes en instruksjon hver fjerde klokkesykel. Med pipelining er instruksjon ferdig etter 3. klokkesykel, instruksjon ferdig etter 4. klokkesykelosv. Mao: En instruksjon er ferdig hver klokkesykel.