IN1020. Datamaskinarkitektur

Like dokumenter
Intel Core i7. Omid Mirmotahari 4

Intel Core i7. Omid Mirmotahari 4

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

INF2270. Datamaskin Arkitektur

INF2270. Datamaskin Arkitektur

Oppsummering av digitalteknikkdelen

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

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

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

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

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

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

Forelesning 5. Diverse komponenter/større system

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

Fortsetelse Microarchitecture level

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

INF1400 Kap4rest Kombinatorisk Logikk

IN1020. Minnehierarki

Notater: INF2270. Veronika Heimsbakk 10. juni 2014

4/2 enkel pipelining in 147, våren 1997 pipelining 1. Pipelining. når tema læreboka. 11/3 problemer

Datamaskinens oppbygning

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

EKSAMENSOPPGAVE, INF-2200

Kapittel 4: Microarchitecture level

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

4/5 store parallelle maskiner /4 felles hukommelse in 147, våren 1999 parallelle datamaskiner 1. når tema pensum.

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

Oppsummering digital-teknikk, teknikk, INF2270

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Løsningsforslag til eksamen i INF2270

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

Fortsetelse Microarchitecture level

TDT4160 AUGUST, 2008, 09:00 13:00

INF2270. Input / Output (I/O)

Løsningsforslag til eksamen i INF2270

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

Seksjon 1. INF2270-V16 Forside. Eksamen INF2270. Dato 1. juni 2016 Tid Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt.

Oppgave 2 Maskinkode (vekt 12%)

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse

Forelesning Forgreningspredikering Kap 4.5 Superskalaritet Kap 4.5 Spekulativ utføring Kap 4.5

Innhold. Oppgave 1 Oversettelse (vekt 15%)

Maskinvaredelen av INF 103: oversikt og innhold (1)

Dagens tema. Flere teknikker for å øke hastigheten

Forelesning Instruksjonstyper Kap 5.5

SIE 4005, 2/10 (2. Forelesn.)

! Repetisjon: ! Forutsetinger: ! Ideelt sett gir en k-trinns pipeline en faktor k i hastighetsøkning. ! Benyttes derimot ekte pipelining, behøves

Kapittel 6. Høynivå møter lavnivå Fra C til assembly Fra assembly til maskinkode Linking og lasting

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

Oppgave 1 - Linux kommandolinje (%)

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

Dataveier og optimalisering. Kapittel 9

INF2270. Input / Output (I/O)

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

ulike stegene utføres på egne hardware-enheter som ikke er instruksjon kan deles opp i sekvensielle steg som løses etterhverandre

Tema for denne forelesningen: tilpassing til pipeline. forwarding. eliminere NOP. faktisk MIPS. in 147, våren 1999 pipelining 1 9

UNIVERSITETET I OSLO

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

Fortsetelse Microarchitecture level

Institiutt for informatikk og e-læring, NTNU Kontrollenheten Geir Ove Rosvold 4. januar 2016 Opphavsrett: Forfatter og Stiftelsen TISIP

TDT4258 Eksamen vår 2013

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

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

INF2270. Omid Mirmotahari SUPERSCALAR CPUs

TDT DESEMBER, 2012, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science

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

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

TDT DESEMBER, 2011, 09:00 13:00

UNIVERSITETET I OSLO

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN

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

UNIVERSITETET I OSLO

INF2270. Minnehierarki

INF1400. Digital teknologi. Joakim Myrvoll 2014

UNIVERSITETET I OSLO

Dagens temaer. Dagens temaer er hentet fra Englander kapittel 12 side (2. utgave), side (3. utgave)

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

Oppgave 1 JK-flip-flop (Total vekt 20%)

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

TDT DESEMBER, 2014, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science

ytelsen til hukommelseshierarkier

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

Semantikk. Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Semantikk. Semantikk. En måte å svare på: gi semantikken til språket!

TDT AUGUST, 2011, 09:00 13:00

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Eksamen INF2270 våren 2018

Løsningsforslag eksamen TDT4160 høsten 2005

Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

Forelesning ISA-nivået Kap 5.1

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

dynamiske data dynamiske data statiske data program dynamiske data statiske data reservert program dynamiske data statiske data reservert program

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

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT DESEMBER, 2008, 09:00 13:00

Transkript:

IN1020 Datamaskinarkitektur

Hovedpunkter Von Neumann Arkitektur BUS Pipeline Hazarder

Intel Core i7 Omid Mirmotahari 4

Von Neumann Arkitektur John von Neumann publiserte i 1945 en model for datamaskin arkitektur som brukes fortsatt den dag i dag. Hovedbidraget hans og unikheten i denne modellen er å bruke et enkelt minneelement som både skal brukes for program og data. 5

Data- og instruksjonsbus Bus er kommunikasjonskanalen mellom registere, funksjonelle enheter (ALU), minne og I/O enheter. Bus kan deles mellom flere enheter, men kun en som kan sende av gangen. I en von Neumann arkitektur er det en bus mellom minne og CPU som skal både overføre instruksjon og data, dette vil da være flaskehalsen. Internt i en CPU er den en eller flere bus(er) som overfører data mellom interne registere. Omid Mirmotahari 6

Eksempel Omid Mirmotahari 7

Oppsummering av én-sykel implementasjon Høy effektivitet oppnås gjennom: 1. Alle instruksjoner bruker én klokkesykel 2. Operasjoner utføres samtidig ved å bruke flere identiske komponenter 3. Instruksjonsminne og dataminne aksesseres samtidig Omid Mirmotahari 8

(1) Alle instruksjoner bruker én klokkesykel Klokkeperioden må være like lang som den lengste forsinkelsen for enhver instruksjon gjennom data-path en Resultat: Raskere instruksjoner tvinges til å bruke mer tid enn nødvendig Mulig løsning: Klokke med variabel periode Vurdering: Vanskelig å implementere Omid Mirmotahari 9

(2) Bruke flere identiske komponenter Trenger flere like komponenter som egentlig gjør samme jobb Resultat: Trenger mer plass på CPU en og øker effektforbruket Mulig løsning: Endre kontroll-logikk slik at samme komponent kan brukes til flere oppgaver. Vurdering: Vanskelig, umulig eller lite effektivt hvis man krever at alle instruksjoner skal ta én klokkesykel. Omid Mirmotahari 10

(3) Inst. MEM og Data MEM aksesseres samtidig Må kunne aksessere to forskjellig lokasjoner i samme minne-enhet samtidig. Resultat: Må enten ha 2 separate minne-enheter, eller kunne adressere flere ord samtidig i én minne-enhet Mulig løsning: Operere med en minne-enhet for program, og en annen for data Vurdering: Lite fleksibelt ved blant annet dynamisk data-allokering, og mer plasskrevende (doble adressebusser osv) Omid Mirmotahari 11

Forbedring av én-sykel designet Innfører to nye strategier for å øke hastighet: 1. Multicycle 2. Pipelining Omid Mirmotahari 12

Multicycle Multi-cycle bruker mer enn én klokkesykel per instruksjon hvis nødvendig De ulike trinnene i en instruksjon kan dele samme komponent Trenger ikke separat data- og instruksjonsminne Trenger ekstra registre for å mellomlagre data Omid Mirmotahari 13

Multi cycle Omid Mirmotahari 14

Pipelining Innfører samlebåndsprinsipp for eksekvering av instruksjoner Hver instruksjon må splittes opp i uavhengige deler (subinstruksjoner) som utføres etter hverandre Hver subinstruksjon kan utføres uavhengig av de andre subinstruksjonene Neste instruksjon settes igang før forrige instruksjon er helt ferdig. NB!! Hver instruksjon tar like lang tid å utføre, men prosessoren utfører flere instruksjoner i et gitt tidsrom! Omid Mirmotahari 15

Pipelining - Analogi Vasking av klær 1. Vaske i vaskemaskin 2. Trøke i tørketrommel 3. Brette sammen 4. Sette dem i skapet Omid Mirmotahari 16

Omid Mirmotahari 17

Pipelining instruksjonssett Eksempelvis kan vi ha følgende subinstruksjoner i en pipeline IF: Instruction fetch (get the instruction) DE: decode and load (from a register) EX: Execute WB: Write back (write the result to a register) PS! Read og write fra register/mem kan gjøres i hver sin halvdel av en sykel (1/2 klokkeperiode) Omid Mirmotahari 18

Omid Mirmotahari 19

Omid Mirmotahari 20

Pipeline med flere trinn Denne 4-trinns pipeline er den korteste som finnes for en CPU. Moderne CPU bruker vesentlig flere trinn Pentium III har 16 trinn, Pentrium 4 har 31 trinn Omid Mirmotahari 21

Speed-up Det å ha en 4 trinns pipeline betyr ikke at man får 4 ganger raskere prosessering. Det går alltid noe tid bort til administrering av instruksjoner. Omid Mirmotahari 22

Effektiv speed-up En k-trinns pipeline som trenger én klokkesykel pr trinn med eksekverering av n instruksjoner vil ha en speed-up på: For veldig store programmer så vil vi nærme oss k, men dette skal vi se i neste foil hvorfor vi ikke klarer. Omid Mirmotahari 23

Komplikasjoner ved pipelining Til enhver tid kan det være subinstruksjoner fra opptil 4 instruksjoner i en pipeline Noen ganger er ikke alle subinstruksjonene gyldige Neste instruksjon kan ikke eksekveres rett etter hvis hopp-betingelsen slår til En slik situasjon kalles HAZARD. Vi har tre typer: 1. Resource hazard 2. Data hazard 3. Control Hazard Omid Mirmotahari 24

Resource Hazard Kan oppstå hvis to subinstruksjoner i pipelinen ønsker å aksessere samme ressurs (eks minne) Løsning 1: Designe slik at de ikke oppstår (!) Løsning 2: Stoppe (STALL) pipelinen lenge nok til resurssen kan aksesseres sekvensielt. (lese inne en NOP?) Løsning 3: Bruke lokale register som er organisert i en REGISTER FILE Løsning 4: Bruke Harvard arkitekturen som har 2 separate minner for data og instruksjon. Omid Mirmotahari 25

Resource Hazard Andre resources kan også gi harzards, litt avhengig av hvordan CPU arkitekturen er bygget opp Minne Cache Register files Busser ALU osv Omid Mirmotahari 26

Data Hazard Data hazard oppstår fordi to forskjellige instruksjoner trenger å aksessere samme data samtidig. Trenger resultat fra forrige instruksjon før denne har produsert gyldig svar. Omid Mirmotahari 27

Data Hazard Omid Mirmotahari 28

Data Hazard Løsning 1: Detektere avhengigheten i IF-stadiet av pipelinen for første instruksjon og stoppe (STALL) neste instruksjons EX-stadie til WB-stadiet for første instruksjon er ferdig. Løsning 2: Snu om på rekkefølgen av instruksjonene slik at man ikke er avhengig av instruksjon rett før i pipelinen. Løsning 3: Ha en snarvei (FORWARDING) i pipelinen, i dette tilfelle en direkte datapath som aktiviseres ved en hazard. Omid Mirmotahari 29

Data Hazard Løsning 3 er bedre fordi alt skjer i hardware og ikke i kompilatoren. Forwarding benyttes også mellom andre enheter i datapathen, feks mellom utgangen av MEM og inngangen til ALU Omid Mirmotahari 30

Control Hazard I utgangspunktet har vi tenkt en pipeline som innhenter neste instruksjoner fortløpende. Men problemet oppstår når vi får en JUMP instruksjon. Da må vi tømme pipelinen for andre instruksjoner og lese inn den nye. Omid Mirmotahari 31

Control Hazard Omid Mirmotahari 32

Control Hazard Løsning 1: Stoppe (STALL) ikke hent inn andre instruksjoner før det er helt klart at man ikke skal hoppe. Løsning 2: Prøv å forutsi om man skal hoppe, eksekver som vanlig ved ikke-hopp, stop pipelinen som løsning 1 ved hopp. Løsning 3: Dobling av hardware for deler av pipelinen. Dette for å kunne ha to parallelle pipelines som kan inneholde begge instruksjonsadressene. Når det er klart om instruksjonen er en hopp så flushes den andre. Omid Mirmotahari 33