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



Like dokumenter
ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Forelesning 5. Diverse komponenter/større system

INF1400 Kap4rest Kombinatorisk Logikk

Datamaskinens oppbygning

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

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

Intel Core i7. Omid Mirmotahari 4

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

IN1020. Datamaskinarkitektur

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

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

Intel Core i7. Omid Mirmotahari 4

TDT4160 AUGUST, 2008, 09:00 13:00

Løsningsforslag til øving 5 TFE4105 Digitalteknikk og Datamaskiner Høsten 2006

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

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

Hvordan en prosessor arbeider, del 1

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

En oppsummering (og litt som står igjen)

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

INF2270. Datamaskin Arkitektur

Fortsetelse Microarchitecture level

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

Kapittel 4: Microarchitecture level

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Dagens tema. LC-2 LC-2 er en «ekstrem-risc»; den har 16 instruksjoner og 3 adresseringsmåter.

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

Oppsummering av digitalteknikkdelen

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

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

Dagens tema. Rask-maskinen. Rasko-kode Raskas-kode. Litt datamaskinhistorie Registre og lagre Instruksjoner

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

En overikt. Dagens tema. Datamaskinenes historie. Rask-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner. Rasko-kode.

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Forelesning ISA-nivået Kap 5.1

Den siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen

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

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

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse

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

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

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

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

IN 147 Program og maskinvare

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

Dagens tema. Datamaskinenes historie. De første moderne datamaskiner. Løsning. Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

INF2270. Datamaskin Arkitektur

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

Kap. 8 del 1 kodegenerering INF5110 Vår2007

Generiske mekanismer i statisk typede programmeringsspråk

Dataveier og optimalisering. Kapittel 9

Forelesning Optimalisering av μark Kap 4.4

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

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

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

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

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN

Velkommen til INF Kompilatorteknikk

Datamaskinarkitektur våren 2009

Litt om Javas class-filer og byte-kode

Løsningsforslag eksamen TDT4160 høsten 2005

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Kodegenerering, del 2: Resten av Kap. 8 pluss tilleggsnotat (fra kap. 9 i ASU ) INF5110 V2007

Generell informasjon

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

Velkommen til INF5110 Kompilatorteknikk

TDT4258 Eksamen vår 2013

Introduksjon til DARK assembly

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

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

Dagens tema. Flere teknikker for å øke hastigheten

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

Kap. 8 del 1 kodegenerering INF april, 2008

Oppgave 1 - Linux kommandolinje (%)

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Fortsetelse Microarchitecture level

Fortsetelse Microarchitecture level

UNIVERSITETET I OSLO

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

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

Design med ASIC og FPGA (Max kap.7 og 18)

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl

Løsningsforslag til eksamen i INF2270

Pensumoversikt - kodegenerering. Kap. 8 del 1 kodegenerering INF5110 v2006. Hvordan er instruksjonene i en virkelig CPU? Arne Maus, Ifi UiO

Velkommen til INF Kompilatorteknikk

Mer kodegenerering: Tilleggsnotat fra AHU Om Javas Byte-kode INF april 2009

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17

TDT AUGUST, 2011, 09:00 13:00

TDT DESEMBER, 2009, 09:00 13:00

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

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

UNIVERSITETET I OSLO

Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode)

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

Transkript:

Kapittel 6 Høynivå møter lavnivå Fra C til assembly Fra assembly til maskinkode Linking og lasting CISC eller RISC Komplekst eller enkelt. Hva er raskest? Pipelining Smart bruk av registre Kode for lavt energiforbruk 21.03.2013

CISC eller RISK Complex instruction set computer Redusere det semantiske gapet Klart seg veldig bra på desktopen (Intel, AMD) Binærkompatibilitet. Reduced instruction set computer Bedre å gjøre enkle ting raskt og heller gjøre det flere ganger Load store arkitektur Ofte bra på strømforbruk og dermed attraktivt i mobiler (ARM) P.t. ca 10-15 ganger så mange RISC som CISC prosessorer Risk er trendy Men det som betyr noe er uansett best mulig ytelse (fart, strøm, varme) til lavest mulig pris CISC or RISC er nærmere i praksis enn i prinsipp.

RISK motivasjon. Hva gjør prosessoren? Tilpasset fra D. Knuth artikkel I 1971. Referanse I boka.

RISK motivasjon. Hva gjør prosessoren? Tilpasset Tannenbaum artikkel i 1999. Referanse I boka.

RISK Vi skriver opplagt normalt enkle programmer. Tilordninger og enkle operasjoner står for en veldig stor del av kjøretiden Dette gav inspirasjonen til RISC

Hastighetsforbedring (speed-up) Speedup S = Kjøretid uten forbedring over kjøretid med forbedring (Prosent forbedring) Kjøretid T =Antall instruksjoner (IC) * antall sykler pr instruksjon (CPI) * sykel-tid (t) Kombinert:

Eksempel Sjekk av trade-off: Færre sykler pr instruksjon: 5 til 3,5. Men lengere klokketid: 100ns til 120ns.

Pipeline Som et samlebånd hvor instruksjonen utføres i flere steg, stasjon for stasjon. Begynne på neste instruksjon så fort det er blitt ledig i første stasjon. Positivt: Gir økt fart. Kortere klokketid og en instruksjon blir fortsatt ferdig hver klokkesykel. Utfordring: Hvordan ha full pipeline hele tiden? Hazards, braching..

Pipeline (SP)ARC Siste steg kan deles i ALU og writeback Writeback ikke alltid nødvendig. I det følgende deler vi i 5 steg for enkelhets skyld

Pipeline srl %r3, %r5 addcc %r1, 10, %r1 ld %r1, %r2 subcc %r2, %r4, %r4 be label srl addcc nop nop ld subcc nop nop be nop nop nop nop nop srl addcc nop nop ld subcc nop nop be nop nop nop nop nop srl addcc nop nop ld subcc nop nop be nop nop nop nop nop srl addcc nop nop ld subcc nop nop be nop nop nop nop nop nop nop ld nop

Pipeline srl %r3, %r5 addcc %r1, 10, %r1 ld %r1, %r2 subcc %r2, %r4, %r4 be label srl addcc nop nop ld subcc nop nop be nop nop nop nop nop srl addcc nop nop ld subcc nop nop be nop nop nop nop nop srl addcc nop nop ld subcc nop nop be nop nop nop nop nop srl addcc nop nop ld subcc nop nop be nop nop nop nop nop nop nop ld nop

Pipeline srl addcc nop nop ld subcc nop nop be nop nop nop nop nop srl addcc nop nop ld subcc nop nop be nop nop nop nop nop srl addcc nop nop ld subcc nop nop nop be nop nop nop nop srl addcc nop nop ld subcc nop nop be nop nop nop nop nop nop nop ld nop

Pipeline En hazard - Kan kanskje fikses av kompilatoren, men er det en god ide? - Direkte tilbakekobling kan muligens vinne ett steg. - Kan definitivt fikses ved å holde tilbake instruksjoner i pipen til resultatet er klart - Har omrokering fra forrige slide noen ulemper? srl addcc nop nop ld subcc nop nop be nop nop nop nop nop srl addcc nop nop ld subcc nop nop be nop nop nop nop nop srl addcc nop nop subcc nop nop be nop nop nop nop nop srl addc nop c nop ld subcc nop nop be nop nop nop nop nop nop nop ld nop ld

Overlappende register-vinduer

SPARC registre

SPARC registre

Bærbart Kunsten å spare strøm Generelt: Et raskt program er et strømsparende program Det koster mer strøm å toggle fra 0 1 eller motsatt, enn å vedlikeholde eksisterende ladning. Dermed vil kode som optimaliseres for å unngå slike skifter gi lavere strømforbruk

Bærbart Kunsten å spare strøm Assembly ld [2096], %r16 ld [2100], %r17 ld [2104], %r18 ld [2108], %r19 I maskinkode

Bærbart Kunsten å spare strøm Bytte de siste to instruksjonene gir: Andre optimaliseringer kan være å bytte mellom likelydende instruksjoner etc.

Gray - koding En tallrepresentasjon hvor et bit bytter av gangen. Fint for sekvenser av instruksjoner og for å adressere sekvenser av minne