DComNet1 ISA-niveauet (2). dComNet2 Niveauer af virtuelle maskiner ISA niveauet / maskinkodeniveauet / maskinniveau.

Slides:



Advertisements
Liknende presentasjoner
12.Studienreise nach Finnland,
Advertisements

CLIC RF LOAD Preliminary design Load Parameters : freq = GHz Bandwidth = +/- 200MHz Ppeak = 80 MW Paverage = 56 W Tpulse = 140 ns Rep rate = 5.
Kvinner og politikk Kvinnelig valgmobilisering i Nord-Norge: Glasstak eller etterslep? Marcus Buck.
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
C++ for Java-programmerere
Litt mer om PRIMTALL.
Lektion 2: Hardy-Weinberg
Everyone Print Kalle Snarheim.
Grafisk design Visuell kommunikasjon
INTEGRERINGSBAROMETERET Holdninger til integrering og mangfold GRAFIKKRAPPORT.
Teknologi for et bedre samfunn 1 Asbjørn Følstad, SINTEF Det Digitale Trøndelag (DDT) Brukervennlig digitalisering av offentlig sektor.
Kompilatorer - Hva foregår under panseret? BEKK fagdag
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
TIF seminar -Visual Basic (VBA) og RExcel Elisabeth Orskaug Norsk Regnesentral Oslo, 8. november 2011.
1 Arbeidssted, bruk av fasiliteter og - mengde 5.
1 Java 6 Mer om metoder Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo.
1 Litt om OO og programmering Arne Maus. 2 OO og Java (og C++, C#)  Arven fra Simula  Programstruktur i Java  Generering av objekter  Beskyttelse.
:50 Evaluering Lysvåken i Bergen domkirke menighet 1 Svarlogg.
Java 4 Mer om forgreninger While-løkker Ole Christian Lingjærde
Objekt, Instanser og referanser + litt til. Objekter  Instanser  En instans er et objekt av en bestemt klasse  Instanser blir laget ved å kalle klassens.
SnarveierPC og nettSamarbeidMicrosoft Web- tjenester Word
Fôr til oppdrettstorsk – bruk av vegetabilsk feitt Odd Leknes Forskningsdagene 2007 Alta.
Fra forelesningene om involveringspedagogikk Et utviklingsarbeid Philip Dammen Manuset er under arbeid.
1. Vegard B. Øien Født: Posisjon: Keeper Høyde: 190 Vekt:
C for Java-programmerere
Eiendomregister mars 2002 Arne Maus. import java.util.*; import inf101.*; /* Klasse med main() som starter hele programmet */ class EiendomsregisterMain.
Kapittel 14 Simulering.
C# for javaprogrammerere
Krasjkurs i C (pluss litt matlab)
Foreløpige tall pr Randi Sæther
Om Øvelse 7 Stoff relatert til øvelse 7 Generering av tilfeldige tall Bruk ting vi har lært før.
UFLP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter (lager) for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
KOMPLEKSE TALL Laila.
Sortering og søk. Sortering av data som ligger på en fil Prisipielt to hovedmåter gjøre dette på: 1.Arbeide mot filen 1.Lese en linje, og lese de resterende.
STATUS Hedmark 2012 Statistikk om likestilling og mangfold.
Oppland Arbeiderblad Kjønn i kildebruk - Utviklingstrekk over en to års periode.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Tema: Test First Positivist: Det som ikke kan måles, eksisterer ikke! Reduserer sjanser for defekter! Gir en oppdatert ”TODO-liste” Gir trygghet til å.
Hvordan komme i gang med treningskontakt 1:
INF 295 Algoritmer og datastrukturer Forelesning 7 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
ADA 95 – del3 Foreleser: Olaf Hallan Graven Bok: Programming in ADA95 (2nd) John Barnes.
1 BM-dagen 29.okt BM1 Fysisk miljøplanlegging Studieprogram for Bygg- og miljøteknikk Meny Prosjektoppgaven Arealbruk og befolkning Transport og.
Høgskolen i Oslo Webprogrammering Java-scripting 2 Klientvalidering.
Eiendomsmeglerbransjens boligprisstatistikk Juni 2010 Norges Eiendomsmeglerforbund og Eiendomsmeglerforetakenes Forening ECON Poyry og FINN.
Velkommen! 4/4/2017.
Telefonresponstid ved fastlegekontorene i Tromsø november 2005 Kommuneoverlege Anne Helen Hansen Anne Helen Hansen, kommuneoverlege i Tromsø.
AUTOMATIC DELIVERY REWARDS (ADR) (Nytt program – 1. september) LifePak ® (eksempel) - 76,20 PSV 442,11 med 5% rabatt= 420,00 (72,39 PSV) Frakt= 51,30 (102,60)
Bankenes sikringsfond Revisjonskontoret
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
1 Kap 06 Ordnede / Sorterte lister Oppgave nr 06_02 Polynomer Klassehierarki Javadokumentasjon.
Oppgaver til kodegenerering etc. INF-5110, 2013 Oppgave 1: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet,
Bakterievækst - fordobling hver 20. minut Hver bakterie i petriskålen deler sig i løbet af 20 mi- nutter, så antallet af bakterier for- dobles hvert 20.
02 - Java datatyper Grundlæggende om datatyper og variable.
1 Pointere, referencer, struct’s mv.. 2 Erklæringer Eksempel på erklæringer int i, *ip, f ( ), *fip( ), (*pfi) ( ); Erklærer en integer, en pointer til.
To accompany Quantitative Analysis for Management, 8e by Render/Stair/Hanna 15-1 © 2003 by Prentice Hall, Inc. Upper Saddle River, NJ Kapittel 15.
Elevundersøkelsen ( ) UtvalgGjennomføringInviterteBesvarteSvarprosentPrikketData oppdatert 7. trinnVår , Symbolet (-) betyr.
Foreldremøte Firebirds
Jæger: Robuste og sikre systemer INF150 Programmering Kapittel 2: Problemløsning Kapittel 3.1 og 3.2.
URL-typer i Java. Hva er en classloader? Kompilert Java-kode er i et plattform-uavhengig format (en class-fil). Et Java-program er ikke én eksekverbar.
Hva er riktig utvikling av kollektivtrafikken i Oppland. Historikk
Aktuell sykefraværsstatistikk Inderøy kommune oppdatert 2009 NAV Arbeidslivssenter Nord-Trøndelag.
Indledende Datalogi /kelk 1 Need to know Løkker Klasser, instanser og Objekter Hvorfor objektorientering? Scope – hvor erklæres en variabel? ”Access Modifiers”
Veivalgsanalyse etter Sørlandsmesterskapet i lang (klassisk) distanse 2004.
INF Objektorientert programmering
Compiler/fortolker struktur Mellem- kode Kode- generering Kode- optimering Lexikalsk- analyse Syntax- analyse Semantik- analyse if viggo == 3 then....
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
1 Input og output mv.. 2 printf int printf(char *format, arg1, arg2, …, argn) returnerer antal udskrevne tegn Format indeholder to typer objekter: almindelige.
INF1000 (Uke 4) Mer om forgreninger, While-løkker
CMPE 152: Compiler Design April 23 Class Meeting
Utskrift av presentasjonen:

dComNet1 ISA-niveauet (2)

dComNet2 Niveauer af virtuelle maskiner ISA niveauet / maskinkodeniveauet / maskinniveau

dComNet3 ISA - Fra sidst ISA-niveauet og von-Neumann maskine: Maskininstruktioner og instruktionsformat. Absolut maskinkode. Registre og lagermodellen. IJVM maskinen: Registre: PC, SP, LV, CPP. Lagermodel: method area, constant pool, stakken. Metodekald og stakafsnit, parametre og lokale variable. IJVM simulatoren

dComNet4 IJVM Lagermodel Opdelt i tre områder (konstant pool, stakken, method area):.. indlejret i et lineært lager: celler (1 byte/celle). 32 bit 8 bit

dComNet5 IJVM registre Program Counter (PC): 32-bit register Udpeger aktuel instruktion (byte) i method area. Constant Pool Pointer: 32-bit register Udpeger bunden (word) af konstant pool i lageret Stack Pointer (SP) : 32-bit register Udpeger øverste element (word) på stakken. Local Variable Frame Pointer (LV): 32-bit register Udpeger bunden (word) af det aktuelle stakafsnit.

dComNet6 invokevirtual

dComNet7 ireturn

dComNet8.method main // int main.args 3 // ( int a, int b ).define a = 1.define b = 2 // { bipush 88 // Push object reference. iload a iload b invokevirtual min ireturn // return min (a,b); // }.method min // int min.args 3 // ( int a, int b ){.define a = 1.define b = 2.locals 1 // int r;.define r = 3 iload a // if ( a >= b ) iload b isub // stack = a-b;a-b a < b iflt else iload b // r = b; istore r goto end_if else: iload a // r = a; istore r end_if:iload r // return r; ireturn // }

dComNet9 int min(int a, int b) { int r; if (a>=b) r=b; else r=a; return r; } int main(int a, int b) { return min(a,b); } test.c

dComNet10.method main // int main.args 3 // ( int a, int b ).define a = 1.define b = 2 // { bipush 88 // Push object reference. iload a iload b invokevirtual min ireturn // return min ( a, b ); // } test.j

dComNet11.method min // int min.args 3 // ( int a, int b ){.define a = 1.define b = 2.locals 1 // int r;.define r = 3 iload a // if ( a >= b ) iload b isub // stack = a - b,... ; a - b a < b iflt else iload b // r = b; istore r goto end_if else: // else iload a // r = a; istore r end_if: iload r // return r; ireturn // }

dComNet12 test.j main index: 0 method area: 40 bytes b ac b 00 0a a ac constant pool: 2 words e oversættes til ijvm-asm test.j test.bc fortolkes af ijvm test.bc IJVM simulator Test.c oversættes til ”by hand” (næste time)

dComNet13 main index: 0 method area: 40 bytes bipush iload iload 2 10b invokevirtual 1 13acireturn iload iload isub 239b 00 0aiflt iload istore 3 30a goto iload istore iload 3 39acireturn constant pool: 2 words e Antal argumenter for main Antal lokale variable for main Start adresse for main Start adresse for min

dComNet14 IJVM Trace of foo stack = 0, 1, 43, 77, 15 bipush 88 [10 58] stack = 88, 0, 1, 43, 77, 15 iload 1 [15 01] stack = 77, 88, 0, 1, 43, 77, 15 iload 2 [15 02] stack = 43, 77, 88, 0, 1, 43, 77, 15 invokevirtual 1 [b ] stack = 12, 13, 0, 43, 77, 21, 0, 1 iload 1 [15 01] stack = 77, 12, 13, 0, 43, 77, 21, 0 iload 2 [15 02] stack = 43, 77, 12, 13, 0, 43, 77, 21 isub [64] stack = 34, 12, 13, 0, 43, 77, 21, 0 iflt 10 [9b 00 0a] stack = 12, 13, 0, 43, 77, 21, 0, 1 iload 2 [15 02] stack = 43, 12, 13, 0, 43, 77, 21, 0 istore 3 [36 03] stack = 12, 13, 43, 43, 77, 21, 0, 1 goto 7 [a ] stack = 12, 13, 43, 43, 77, 21, 0, 1 iload 3 [15 03] stack = 43, 12, 13, 43, 43, 77, 21, 0 ireturn [ac] stack = 43, 0, 1, 43, 77, 15 ireturn [ac] stack = 43 return value: 43 ijvm test.bc 77 43

dComNet15 IJVM Maskinarkitekturen Instruktionssæt: 20 instruktioner. Instruktionsformat: 1-5 bytes længde og 1 byte opkode. Datatyper: heltal (med og uden fortegn) Lagermodel: 3-delt 4Gb lineært lager. Stakmaskine: operander udpeges ved stak addressering.

dComNet16 Datatyper Intel 8051 Pentium

dComNet17 Addresseringsformer (1) Hvordan specificeres operander for instruktioner. Immediate addressing - operand er en del af instruktionen: bipush 42 Register addressing - operand ligger i et register: ADD R1,R2 (”R1 = R1 + R2”) Direct addressing - addresse på operand er en del af instruktionen: ADD R1,(1096) (”R1 = R1 + m[1096]”)

dComNet18 Addresseringsformer (2) Register indirect - operand udpeges af register indhold: ADD R1,(R2) (”R1 = R1 + m[R2]”) Indexed addressing - operand udpeges af offset og register indhold: iload x, istore x (m[LV+x]) invokevirtual x (m[CPP+x]) ldc_w x (m[CPP+x]) ADD R1,R2(4) (”R1 = R1 + m[R2+4]”) ADD R1,1096(R2) (”R1 = R1 + m[1096+R2]”)

dComNet19 Addresseringsformer (3) Adressering også krævet ifm. hopinstruktioner: PC relative addressing - hop relativt til indhold af PC: goto x, ifeq x, ilft x, if_icmpeq x (”PC = PC + x”) Øvrige adresseringsformer også mulige for hop-instruktioner.

dComNet20 Instruktionsformat Antal operander (addresser på operander): Instruktionslængde (fast eller varieret):

dComNet21 ISA design Er et samspil mellem mange ting: –Adresseringsformer. –Instruktionsformat. –Lagermodellen. –Registre. –… under hensyntagen til: –Tidseffektivitet – udførsel af instruktioner. –Pladseffektivitet – størrelsen på programmer. –Bagud-kompatibilitet. –…