Forelesning ISA-nivået Kap 5.1

Like dokumenter
Forelesning Instruksjonstyper Kap 5.5

Løsningsforslag eksamen TDT4160 høsten 2005

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

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

Forelesning Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B

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

Operativsystemer og grensesnitt

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

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

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Forelesning Adresseringsmodi Kap 5.4

TDT4258 Eksamen vår 2013

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

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

Maskinvaredelen av INF 103: oversikt og innhold (1)

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Litt om Javas class-filer og byte-kode

Forelesning ISA: IJVM Kap 4.2

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Forelesning 5. Diverse komponenter/større system

Scheduling og prosesshåndtering

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

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN

IN1020. Datamaskinarkitektur

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)

Forelesning Hurtigbuffer Kap 4.5

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

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

Intel Core i7. Omid Mirmotahari 4

TDT4160 AUGUST, 2008, 09:00 13:00

Intel Core i7. Omid Mirmotahari 4

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

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

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

INF1400 Kap4rest Kombinatorisk Logikk

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

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

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

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

2. Hvor mye Internminne har den? Svar: 2GB

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

Læringsmål og pensum. v=nkiu9yen5nc

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

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

Datamaskinens oppbygning

Oppsummering av digitalteknikkdelen

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

En oppsummering (og litt som står igjen)

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

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

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

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

Tildeling av minne til prosesser

Hvordan en prosessor arbeider, del 1

Definisjon av prosess

Faglig kontakt under eksamen: Orestis Gkorgkas

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

Minnehåndtering i operativsystemer

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

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

Fortsetelse Microarchitecture level

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

1. Introduksjon til operativsystemer

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.

Oppgaver til kodegenerering etc. INF-5110, 16. mai, 2014

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

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

Oppgave 1 - Linux kommandolinje (%)

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

Kap. 8 del 1 kodegenerering INF5110 Vår2007

Håndtering av minne i et OS

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

Forelesning Optimalisering av μark Kap 4.4

INF2270. Input / Output (I/O)

Skisse til løsning for eksamensoppgave i TDT4186 Operativsystemer

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

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

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Generelt om operativsystemer

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

INF2270. Input / Output (I/O)

Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015

TDT DESEMBER, 2009, 09:00 13:00

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

Transkript:

TDT4160 Datamaskiner Grunnkurs Forelesning 10.11 ISA-nivået Kap 5.1

Dagens tema Instruksjonssettarkitektur (5.1) Hva er ISA? Bakoverkompatibilitet Hva omfatter ISA? Minnemodeller Registre Instruksjoner Eksempler på ISA P4, 8051

Nivåer i dagens maskiner Dark (AoC) Faget Operativsystemer Kapittel 5 Kapittel 4 Kapittel 3

Instruksjonssettarkitektur Opprinnelig det eneste nivået Ofte bare kalt arkitektur Grense mellom maskinvare og programvare Ingen god ide med maskiner som utfører C, C++, Java-kode direkte Må kunne utføre programmer skrevet i forskjellige programmeringsspråk Programkode Maskinkode (ISA) Utføres

ISA som grensesnitt

Bakoverkompatibilitet Ny ISA lages sjelden kun utifra hva som er mest optimalt akkurat nå Hensyn til andre prosessorer i samme familie Ønsker å fortsette å kjøre de samme programmene Eks: 808880486Pentium 4 Ny ISA må omfatte alt i gammel ISA Men: Kan legge til nye instruksjoner Dessuten: Kan implementere ISA annerledes Samlebånd, superskalaritet, registeromdøping, Dette er egenskaper ved μark, ikke ISA

Hva er en bra ISA? God design på ISA er viktig Lærebok: Kan bety opptil 25% ytelsesforskjell To kunder for ISA 1: Maskinvaredesignere ISA-instruksjoner som kan implementeres effektivt 2: Programvaredesignere Enkelt å generere effektiv ISA-kode Gjøres som regel av kompilator, ikke av person Regularitet & kompletthet

Hva omfatter ISA? For å kunne skrive ISA-kode, må man vite: Hvordan hovedlageret er organisert (Minnemodell) Hvilke registre som finnes Hva registrene skal brukes til Hvilke datatyper som finnes Hvilke instruksjoner som finnes og hva de gjør osv Svarene på alt dette definerer ISA-nivået

Klart skille ISA-μArk? I følge forrige foil, er trenger man f.eks. ikke å vite om det er samlebånd eller ikke i μark Men: Kan ha konsekvenser for optimalisering Eksempel: Superskalar med en heltallsenhet og en flyttallsenhet Da optimalt med annenhver heltallsinstr. og flyttallsinstr. i ISA-koden Derfor: Kan være nødvendig å vite detaljer om μark for å lage optimal ISA-kode

Minnemodeller Omfatter bl.a.: Størrelse på adresser (antall bit) Normalt 32 bit som gir 4 G adresser Adresserbar enhet Normal 8 bit (byte), men 1-60 bits har eksistert Organisering i større enheter Ord på typisk 4 byte (32 bit) eller 8 byte (64 bit) Mange instruksjoner manipulerer ord om gangen

Alignment Kan et 8 bytes ord ha vilkårlig adresse? Nei Alignment. Kan kun ligge på adresse 0, 8, 16.. Ja Nonalignment Ofte enklere og raskere å hente ord som ligger på naturlige adresser P4 kan ikke oppgi 3 siste adressebit, men må støtte vilkårlige adresser pga. bakoverkompatibilitet

Dagens oppgave Når P4 skal sende en adresse til hovedlager, er de 3 siste bit implisitt lik 0 Samtidig må P4 støtte operasjoner mot ord som ikke er aligned (pga. bakoverkomp.) Hvordan vil en leseoperasjon mot et nonaligned ord skje?

Delt / ikke delt adresserom Normalt har man kun ett adresserom felles for data og instruksjoner Alternativ: Forskjellig adresserom En instruksjon på adresse 8 og et dataelement på adresse 8 ligger ikke på samme sted 32 bits adresse gir dermed 2x2 32 lokasjoner Skriveoperasjoner kan ikke ødelegge instruksjoner NB! Ikke det samme som delt hurtigbuffer Kan ha delt hurtigbuffer med ett adresserom

LOAD/STORE og endret instruksjonsrekkefølge Har sett: Bytting av rekkefølge under utføring av ISAinstruksjoner kan være gunstig Trenger ISA-prog. å vite dette? LOAD/STORE et problem Kan serialisere alle slike instr. Kan bruke spesiell SYNC-instr. Må gjøres på ISA-nivå! Kan løse problem i μark Trend at μark-detaljer gjøres synlig på ISA-nivå I1: STORE X, R1 I2: LOAD Y, R5 I1: STORE X, R1 I2: LOAD Y, R5 Hovedlager Hovedlager

Registre Registre er på toppen av minnehierarkiet Viktig ressurs å utnytte effektivt Noen registre er skjult fra ISA-nivået Eksempel: TOS og MAR fra Mic-eksempel i kap 4 To typer Generelle registre Lokale variable, mellomlagring av resultater, Spesialregistre Programteller, stakkpeker Statusord (PSW) inneholder bl.a. ALU-flagg

Registre og kjernemodus De fleste prosessorer har (minst) to modi på ISA-nivået: Kjernemodus og brukermodus Operativsystem kjører i kjernemodus, programmer i brukermodus Brukermodus begrenser hvilke instruksjoner som kan utføres og hvilke registre som kan leses fra / skrives til Gjør det vanskeligere for et program å ødelegge for (el. spionere på) et annet

Instruksjoner Hvilke instruksjoner som finnes og hvordan de fungerer er helt sentralt i ISA-nivået Viktigste typer: Flytting av data Aritmetiske operasjoner Sammenligninger og hoppinstruksjoner Prosedyrekall Løkker I/O Dekkes av kap 5.5, mer siden

Eksempler på ISA Pentium 4 (IA-32) 8051 Fokus på Historikk & bakgrunn Egenskaper

Pentium 4: IA-32 Brukes i «desktop»-maskiner, «server-farms» 80386 og nyere Intel-prosessorer har i all hovedsak hatt samme ISA-arkitektur: IA-32 Tidligere prosessorer var 4, 8 eller 16-bit Hovedendringer siden 80386 har vært nye instruksjoner: MMX, SSE, SSE2 Pentium 4 kan likevel utføre programmer skrevet for prosessorer helt tilbake til 8088 Real mode, Virtual 8086 mode

P4: IA-32 Egenskaper Har kjernemodus og brukermodus (+ to til) Adresserom delt i 16 386 segmenter, hvert segment med adresser fra 0 til 2 32 I praksis brukes bare 1 segment Få/ingen helt generelle registre Alle har sitt spesialformål De fleste finnes i 8, 16 og 32-bits versjoner Dermed vanskelig å lage god kompilator

8051 Brukes ofte i «embedded» systemer Basert på Intels 8080 laget for å ha alt på en chip Gammelt design, men enkelt og billig Finnes i flere varianter med varierende størrelse på lager I hovedsak kun lager-på-brikke, men mulighet for aksess av ekstern lager Ikke separate kjerne-/brukermodi Kjører aldri flere program samtidig

8051: Minnemodell Separate adresserom for program og data Dermed kan program være i ROM og data i RAM 4 sett av 8 8-bits registre Ligger først i data-adresserom Bytter mellom sett under avbruddshåndtering Gir veldig rask bytting, bra for mye I/O og sanntidssystemer 16 bytes bitadresserbart minne Praktisk for boolske variable Spesial-instruksjoner

8051: Registerbruk PSW: Statusord RS aktivt registersett IE avbruddskontroll Eksterne avbrudd Avbrudd pga. timere IP avbruddsprioritet To nivå: Høy/lav TCON timerkontroll TMOD timermodus Timer eller teller