Niveauer af abstrakte maskiner

Størrelse: px
Starte visningen fra side:

Download "Niveauer af abstrakte maskiner"

Transkript

1 Mikroarkitektur

2 Niveauer af abstrakte maskiner Spørgsmål... Hvordan realiseres IJVM maskinen (lev. 2), eller hvordan ser en IJVM-CPU ud? Opbygning (mikroarkitekturen Mic-1) Anvendelse (mikroprogrammet IJVM)

3 Maskinniveau Vores fokus er på IJVM maskinen

4 IJVM instruktioner Afvikles i en fetch-decode-execute cyklen af CPU'en

5 Fetch-decode-execute 1. Fetch the next instruction from memory into the instruction register. 2. Change the program counter to point to the following instruction. 3. Determine the type of the instruction just fetched. 4. If the instruction uses a word in memory, determine where it is. 5. Fetch the word, if needed, into a CPU register. 6. Execute the instruction. 7. Go to step 1 to begin executing the following instruction. Se SCO side 54

6 Mikroarkitektur: Mic-1

7 Mikroarkitektur: Mic-1 CPU registre kontrolenhed fetch- decode- Execute af IJVM instruktioner beregningsenhed

8 Registre: MAR: Memory Address Register. MDR: Memory Data Register. PC: Program Counter MBR: Memory Byte/Buffer Register SP: Stack Pointer LV: Local Variable Frame CPP: Constant Pool Pointer TOS: Top Of Stack OPC: Old Program Counter H: Help register

9 Kontrol af beregningsenheden Shifter kontrol: SLL8 (shift left logical 8) SRA1 (shift right arithmetic 1)

10 Timing af beregningsenheden

11 Eksempel: PC=PC

12 Eksempel: PC=PC

13 Eksempel: PC=PC

14 Eksempel: PC=PC

15 Eksempel: PC=PC

16 Lager tilgang Stack Constant Pool Method Area bytes (32 bit) / words (30 bit) PC/MBR bruges til at tilgå Method Area ved brug af byte adresser. MAR/MDR bruges til at tilgå Stack og Constant Pool ved brug af word adresser. Timing: hvis PC (MAR) sættes i cycle k indeholder MBR (MDR) indholdet af lagercellen i starten af cycle k+2.

17 Timing ved lager tilgang MDR/MBR kan læses Cykel k Cykel k+1 Cykel k+2 MAR/PC sættes Bus/lager opererer PC/MBR bruges til at tilgå Method Area ved brug af byte adresser. MAR/MDR bruges til at tilgå Stack og Constant Pool ved brug af word adresser. Timing: hvis PC (MAR) sættes i cycle k indeholder MBR (MDR) indholdet af lagercellen i starten af cycle k+2.

18 Timing ved lager tilgang Mulighed for back-to-back reads jvf. SCO 240 MDR/MBR kan læses Cykel k Cykel k+1 Cykel k+2 MAR/PC sættes Bus/lager opererer PC/MBR bruges til at tilgå Method Area ved brug af byte adresser. MAR/MDR bruges til at tilgå Stack og Constant Pool ved brug af word adresser. Timing: hvis PC (MAR) sættes i cycle k indeholder MBR (MDR) indholdet af lagercellen i starten af cycle k+2.

19 Tolkning af MAR adresse MAR indeholde word-adressen [0, ] på det maskinord der skal indlæses. Dette skal oversættes til en byte-adresse i et 4 Gb lager... Dette gøres ved at gange med 4, dvs. skifte to plads til venstre

20 Udlæsning af MBR til B-bus MBR (en byte) kan udlæses til B-bus, som 1) unsigned, hvis fx argument til iload 2) signed, hvis fx argument til bipush unsigned: w 7 w 6 w 5 w 4 w 3 w 2 w 1 w w 7 w 6 w 5 w 4 w 3 w 2 w 1 w 0 signed: w 7 w 6 w 5 w 4 w 3 w 2 w 1 w 0 w 7 w 7... w 7 w 7 w 7 w 6 w 5 w 4 w 3 w 2 w 1 w 0 Sign extension

21 Mikroarkitektur: Mic-1 CPU registre kontrolenhed fetch- decode- Execute af IJVM instruktioner beregningsenhed

22 Mikroinstruktions format 8 1

23 Mikroinstruktion: PC=PC

24 Mikroinstruktion: PC=PC+1 1 1?????????

25 Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig...

26 Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig... T = 0

27 Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig... T = [0, w]

28 Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig... T = [ w, w+ x]

29 Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig... T = [ w+ x, w+ x+ y]

30 Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig... T = [ w+ x+ y, w+ x+ y+ z]

31 Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig... T = end of cycle

32 Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig... T = end of cycle Hvorfor 1-bit flip-flops?

33 Bestemmelse af næste mikroinstruktion N Z JAMN JAMZ Addr MBR JMPC resultat fra ALU er Negativt resultat fra ALU er 0 (Zero) angiver om N/Z skal bruges ved beregning af næste mikroinstruktion 9 bit fra aktuel mikroinstruktion 8 bit fra MBR register angiver om MBR skal bruges ved beregning af næste mikroinstruktion

34 Bestemmelse af næste mikroinstruktion N Z JAMN JAMZ Addr MBR JMPC resultat fra ALU er Negativt resultat fra ALU er 0 (Zero) angiver om N/Z skal bruges ved beregning af næste mikroinstruktion 9 bit fra aktuel mikroinstruktion 8 bit fra MBR register angiver om MBR skal bruges ved beregning af næste mikroinstruktion w 8 w 7 w 6 w 5 w 4 w 3 w 2 w 1 w 0 or N or Z? w 7 w 6 w 5 w 4 w 3 w 2 w 1 w 0 or u 7 u 6 u 5 u 4 u 3 u 2 u 1 u 0 fra Addr hvis JAMN=1 hvis JAMZ=1 fra MBR hvis JMPC=1

35 Eksempel: JAMZ=1 Et betinget hop på Z (indikeret ved JAMZ=1) kan kun hoppe til adresse x (ved Z=0) eller adresse x+256 (Z=1). I eksempelt ovenfor er x = 0x92.

36 Ordreafkodning.method main // int main.args 3 // (int a, int b).define a = 1.define b = 2 iload a iload b isub ireturn main index: 0 method area: 10 bytes ac constant pool: 1 words goto(mbr), Addr= , JMPN=0, JMPZ=0, JMPC=1

37 Ordreafkodning Første mikroinstruktion for iload Første mikroinstruktion for isub 0x15 0x64.method main // int main.args 3 // (int a, int b).define a = 1.define b = 2 iload a iload b isub ireturn main index: 0 method area: 10 bytes ac constant pool: 1 words Hvis 0x15 er indlæst i MBR (via læsning fra adresse PC i lageret), så vil goto(mbr) hoppen til celle 0x15 i mikrolageret... goto(mbr), Addr= , JMPN=0, JMPZ=0, JMPC=1

38 Mikroarkitektur: Mic-1 CPU registre kontrolenhed fetch- decode- Execute af IJVM instruktioner beregningsenhed

39 Mikroprogrammering

40 Mikroprogrammering Skal have et mikroprogram, dvs. et indhold af mikrolageret der realiserer IJVMs instruktionssæt Fetch-Decode-Execute...

41 Fetch-decode-execute 1. Fetch the next instruction from memory into the instruction register. 2. Change the program counter to point to the following instruction. 3. Determine the type of the instruction just fetched. 4. If the instruction uses a word in memory, determine where it is. 5. Fetch the word, if needed, into a CPU register. 6. Execute the instruction. 7. Go to step 1 to begin executing the following instruction. Se SCO side 54

42 Fetch Stack Constant Pool Method Area bytes (32 bit) / words (30 bit) PC/MBR bruges til at tilgå Method Area ved brug af byte adresser. MAR/MDR bruges til at tilgå Stack og Constant Pool ved brug af word adresser. Timing: hvis PC (MAR) sættes i cycle k indeholder MBR (MDR) indholdet af lagercellen i starten af cycle k+2.

43 Fetch MDR/MBR kan læses Cykel k Cykel k+1 Cykel k+2 MAR/PC sættes Bus/lager opererer PC/MBR bruges til at tilgå Method Area ved brug af byte adresser. MAR/MDR bruges til at tilgå Stack og Constant Pool ved brug af word adresser. Timing: hvis PC (MAR) sættes i cycle k indeholder MBR (MDR) indholdet af lagercellen i starten af cycle k+2.

44 Decode.method main // int main.args 3 // (int a, int b).define a = 1.define b = 2 iload a iload b isub ireturn main index: 0 method area: 10 bytes ac constant pool: 1 words goto(mbr), Addr= , JMPN=0, JMPZ=0, JMPC=1

45 Decode Første mikroinstruktion for iload Første mikroinstruktion for isub 0x15 0x64.method main // int main.args 3 // (int a, int b).define a = 1.define b = 2 iload a iload b isub ireturn main index: 0 method area: 10 bytes ac constant pool: 1 words Hvis 0x15 er indlæst i MBR (via læsning fra adresse PC i lageret), så vil goto(mbr) hoppen til celle 0x15 i mikrolageret... goto(mbr), Addr= , JMPN=0, JMPZ=0, JMPC=1

46 Execute Sekvens af mikroinstruktioner der implementerer Meaning...

47 Symbolsk mikroprogrammering (Absolut) Mikroprogram 000: : : : 00203d : 00283d : 00303c : : : 00013f : 000a3f a: 00603f b: 00603f c: d: : : ff: Behov for et symbolsk mikroprogrammeringssprog med tilhørende mikroassembler Micro Assembly Language (MAL) Mikroassembler: mic1-asm

48 Symbolsk mikroprogrammering Behov for at specificere: ALU input registre, ALU og skifter operationer, output registre. Lager operationer (rd,wr,fetch). Ubetingede hop: ifm. næste mikroinstruktion og JMPC bit. Betingede hop: JAMN og JAMZ bits

49 ALU og skifter operationer i MAL Skifter operationer: 1 bit aritmetisk højreskift: >> 1 8 bit logisk venstre skift: << 8

50 Lager operationer Læsning/skrivning af ord (words) i stakområdet: Specificeres ved brug af rd og wr. Ord der læses/skrives udpeges af MAR. Læsning af ord i Constant Pool: Specificeres ved brug af rd. Ord der læses/skrives udpeges af MAR. Læsning af byte i Method Area: Specificeres ved brug af fetch. Byte der læses udpeges af PC.

51 Hop instruktioner Ubetingede hop: goto L På indholdet af MBR (JMPC=1): goto MBR Betingede hop: På N (JAMN = 1) ALU output negativt: if N goto L1; else goto L2 På Z (JAMZ = 1) ALU output 0 (Zero): if Z goto L1; else goto L2

52 Mikroassembler Oversætte symbolsk mikrokode til absolut mikrokode Problem: beregne absolutte adresser for labels under hensyntagen til: Mikroinstruktioner hvis placering er absolut (ordreafkodning). Betingede hop på N og Z. Resultat af oversættelse (512 x 36 bit) lægges ind i kontrollageret.

53 IJVM mikroprogrammet SCO figur 4.17

54 IJVM mikroprogrammet Fetch Decode Execute SCO figur 4.17

55 Invariant ved main1 PC udpeger den byte i Method Area, som indeholder instruktionskoden for den IJVM instruktion der skal afvikles MBR indeholder instruktionskoden for den IJVM instruktion, der skal afvikles, MBR=m[PC] SP udpeger det øverste ord på stakken LV udpeger det første ord i det aktuelle stakafsnit CPP udpeger det første ord i Constant Pool TOS indeholder det øverste ord på stakken, TOS=m[SP]

56 Eksempel: iadd Method Area: 0x60 0x10 0x2a 0x64 PC Opkode for næste instruktion Invariant: MBR=0x60, TOS=m[SP] Ønsker: SP b a SP a+b PC=PC+1 MBR=0x10 SP=SP-1 TOS=a+b

57 Eksempel: bipush Method Area: 0x60 0x10 0x2a 0x64 PC Opkode for næste instruktion Invariant: MBR=0x10, TOS=m[SP] Ønsker: SP a+b SP 0x2a a+b PC=PC+2 MBR=0x64 SP=SP+1 TOS=0x2a

58 Mic-1 værktøjer Beskrevet i Mic-1 Tools Manual MAL Mikroassembler Oversætte MAL programmer til absolut mikrokode: $ mic1-asm ijvm.mal ijvm.mic1 Mic-1 Simulator Afvikle IJVM programmer i bytekode format: $ mic1 ijvm.mic1 min.bc IJVM instruktioner fortolkes nu af mikroprogrammet.

59 IJVM mikroprogrammet Tilgængelig i filen ijvm.mal main: PC = PC + 1; fetch; goto (MBR) nop = 0x00: goto main iadd = 0x60: MAR = SP = SP - 1; rd H = TOS MDR = TOS = MDR + H; wr; goto main

60 Oversættelse til absolut mikrokode $ mic1-asm ijvm.mal ijvm.mic1 entry: : goto 0x002; 001: PC = PC + 1; goto 0x041; 002: PC = PC + 1; fetch; goto (MBR); 003: goto 0x045; 004: H = TOS; goto 0x005; 005: 00103c2140 MDR = TOS = H + MDR; wr; goto 0x002; 006: H = TOS; goto 0x007; 007: 00103f2140 MDR = TOS = MDR - H; wr; goto 0x002; 008: H = TOS; goto 0x009; 009: 00100c2140 MDR = TOS = H and MDR; wr; goto 0x002;

61 Eksempel IJVM program.method main.args 3.define a = 1.define b = 2 bipush 88 iload a iload b invokevirtual min ireturn $ ijvm-asm min.j min.bc main index: 0 method area: 40 bytes b ac b 00 0a a ac constant pool: 2 words e

62 Mic-1 simulator $ mic1 ijvm.mic1 min.bc Mic1 Trace of ijvm.mic1 with min.bc stack = 0, 1, 174, 53, 15 bipush 88 [10 58] stack = 88, 0, 1, 174, 53, 15 iload 1 [15 01] stack = 53, 88, 0, 1, 174, 53, 15 iload 2 [15 02] stack = 174, 53, 88, 0, 1, 174, 53, 15 invokevirtual 1 [b ] stack = 12, 13, 0, 174, 53, 21, 0, 1 iload 1 [15 01] stack = 53, 12, 13, 0, 174, 53, 21, 0 iload 2 [15 02] stack = 174, 53, 12, 13, 0, 174, 53, 21 isub [64] stack = -121, 12, 13, 0, 174, 53, 21, 0 iflt 10 [9b 00 0a] stack = 12, 13, 0, 174, 53, 21, 0, 1 return value: 53

63 Mic-1 simulator %>mic1 b istore ijvm.mic1 min.bc Mic1 Trace of ijvm.mic1 with min.bc stack = 0, 1, 174, 53, 15 bipush 88 [10 58] stack = 88, 0, 1, 174, 53, 15 iload 1 [15 01] stack = 53, 88, 0, 1, 174, 53, 15 iload 1 [15 01] stack = 53, 12, 13, 0, 174, 53, 21, 0 istore 3 [36 03] MAR=23 MDR=53 PC=35 MBR=54 MBRU=54 SP=23 LV=17 CPP=10 TOS=53 OPC=23 H=17 0x002: PC = PC + 1; fetch; goto (MBR); MAR=23 MDR=53 PC=36 MBR=54 MBRU=54 SP=23 LV=17 CPP=10 TOS=53 OPC=23 H=17 0x036: H = LV; goto 0x01d; MAR=23 MDR=53 PC=36 MBR=3 MBRU=3 SP=23 LV=17 CPP=10 TOS=53 OPC=23 H=17 iload 3 [15 03] stack = 53, 12, 13, 53, 174, 53, 21, 0

64 Mikroarkitektur: Mic-1 CPU registre kontrolenhed fetch- decode- Execute af IJVM instruktioner beregningsenhed

Mikroarkitektur. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Mikroarkitektur. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Mikroarkitektur Niels Olof Bouvin Institut for Datalogi Aarhus Universitet 1 Level 1: Mikrokode niveauet Level 5 Problem-oriented language level Translation (compiler) Level 4 Assembly language level Translation

Læs mere

Eksamen dcomnet Q2/2010. Navn

Eksamen dcomnet Q2/2010. Navn 2582 Eksamen dcomnet Q2/2010 ID Navn Example I A32-prg1 Betragt følgende program skrevet i IA-32 symbolsk maskinsprog:.section.data x:.long 2 r:.long 27.section.text.globl _start _start: pushl x movl $0,%ebx

Læs mere

Eksamen dcomnet Q2/2012. Studiekortsnummer Navn

Eksamen dcomnet Q2/2012. Studiekortsnummer Navn Eksamen dcomnet Q2/2012 Studiekortsnummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes. Der er ét rigtigt

Læs mere

Eksamen dcomnet 2012Q4. Årskortsnummer Navn

Eksamen dcomnet 2012Q4. Årskortsnummer Navn Eksamen dcomnet 2012Q4 Årskortsnummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive årskort og navn tydeligt på forsiden, inden eksamen afsluttes. Der er ét rigtigt svar per

Læs mere

Maskinarkitektur. Lars Kristensen [email protected]. Christian Storm [email protected]. dmasark 1

Maskinarkitektur. Lars Kristensen kris@daimi.au.dk. Christian Storm cstorm@daimi.au.dk. dmasark 1 Maskinarkitektur Lars Kristensen [email protected] Christian Storm [email protected] dmasark 1 Praktiske oplysninger http://www.daimi.au.dk/dmasark dmasark 2 Forelæsninger Tirsdag 12.15-14.00, Store Aud,

Læs mere

dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet)

dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) Efterår 2009 1 Talrepræsentation På maskinkodeniveau (Instruction Set Architecture Level) repræsenteres ordrer og operander ved bitfølger

Læs mere

Computerarkitektur Eksamen 2014Q3. Niels Olof Bouvin. Studienummer Navn

Computerarkitektur Eksamen 2014Q3. Niels Olof Bouvin. Studienummer Navn Computerarkitektur Eksamen 2014Q3 Niels Olof Bouvin Studienummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes.

Læs mere

Eksamen Computerarkitektur 2013Q4. Niels Olof Bouvin. Studienummer Navn

Eksamen Computerarkitektur 2013Q4. Niels Olof Bouvin. Studienummer Navn Eksamen Computerarkitektur 2013Q4 Niels Olof Bouvin Studienummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes.

Læs mere

Computere og Netværk (dcomnet)

Computere og Netværk (dcomnet) Computere og Netværk (dcomnet) http://www.cs.au.dk/dcomnet Jens Kargaard Madsen ([email protected]) Jens Bennedsen ([email protected]) dcomnet 1 Computere og netværk Beskrivelse At give den studerende kendskab til computere

Læs mere

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) Efterår 2009 1 Simpel aritmetik på maskinniveau I SCO, appendix A, er det beskrevet, hvordan man adderer ikke-negative heltal

Læs mere

CPUer og maskinkode DM534. Rolf Fagerberg

CPUer og maskinkode DM534. Rolf Fagerberg CPUer og maskinkode DM534 Rolf Fagerberg CPUers opbygning En CPU er bygget op af elektriske kredsløb (jvf. sidste forelæsning), som kan manipulere bits. En CPU manipulerer flere bits ad gangen, deres antal

Læs mere

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Computerarkitektur. - en introduktion til computerarkitektur med LINDA Computerarkitektur - en introduktion til computerarkitektur med LINDA [email protected] Faraz Butt [email protected] Mads Danquah [email protected] Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig

Læs mere

Introduktion til Computerarkitektur. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Introduktion til Computerarkitektur. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Introduktion til Computerarkitektur Niels Olof Bouvin Institut for Datalogi Aarhus Universitet 1 Formål med dagens forelæsning Kurset læringsmål og emner folk og form eksamen Området maskinarkitektur 2

Læs mere

Niveauer af abstrakte maskiner

Niveauer af abstrakte maskiner Det digitale niveau Niveauer af abstrakte maskiner Mikroarkitektur: Mic-1 Digitale kredsløb Logiske tilstande: 0 (0-1 V), 1 (2-5 V) Mikroarkitektur: Mic-1 Kombinatoriske kredsløb Logiske tilstande: 0 (0-1

Læs mere

Design af et ISA. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Design af et ISA. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Design af et ISA Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Level 2: Maskinniveau (ISA) Level 5 Problem-oriented language level Translation (compiler) Level 4 Assembly language level Translation

Læs mere

Niveauer af abstrakte maskiner

Niveauer af abstrakte maskiner Det digitale niveau Niveauer af abstrakte maskiner Digitale kredsløb Logiske tilstande: (- V), (2-5 V) Kombinatoriske kredsløb Logiske tilstande: (- V), (2-5 V) Registre Logiske tilstande: (- V), (2-5

Læs mere

MIPS, registerallokering og MARS

MIPS, registerallokering og MARS MIPS, registerallokering og MARS Torben Mogensen 2011 Resumé Vi beskriver modulerne Mips.sml og RegAlloc.sml, samt hvordan de bruges sammen med MIPS-emulatoren MARS. 1 MIPS modulet Modulet Mips.sml indeholder

Læs mere

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1 Project Step 7 Behavioral modeling of a dual ported register set. Copyright 2006 - Joanne DeGroat, ECE, OSU 1 The register set Register set specifications 16 dual ported registers each with 16- bit words

Læs mere

DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E

DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E Vejledende løsninger til

Læs mere

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU OUTLINE INEFFICIENCY OF ATTILA WAYS TO PARALLELIZE LOW COMPATIBILITY IN THE COMPILATION A SOLUTION

Læs mere

Processer og tråde. dopsys 1

Processer og tråde. dopsys 1 Processer og tråde dopsys 1 Motivation.. parallelle processer udnytter hardwaren bedre: Batch operativsystemer (50 erne) hhv. små systemer: Multiprogrammering og time-sharing (fra 60 erne og frem): dopsys

Læs mere

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen mandag den 23. juni 2003 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

//--------------------------------- Definition af porte og funktioner -------------------------

//--------------------------------- Definition af porte og funktioner ------------------------- Temeraturmåler (C-program).txt // Initialiserings-sekvens #include #pragma model=medium #pragma code=0x0000 #pragma xdata=0x4000 #pragma asm=on #pragma parameters=register //#define display P4

Læs mere

Boligsøgning / Search for accommodation!

Boligsøgning / Search for accommodation! Boligsøgning / Search for accommodation! For at guide dig frem til den rigtige vejledning, skal du lige svare på et par spørgsmål: To make sure you are using the correct guide for applying you must answer

Læs mere

Operativsystemer - dopsys

Operativsystemer - dopsys Operativsystemer - dopsys Erik Ernst [email protected] dopsys 1 Q/A Mange deltagere er nu på 2. år af datalogistudiet, med dcomnet 1 for år siden Er din baggrund anderledes? dopsys 2 Praktiske oplysninger

Læs mere

Peter Kellberg. Rundt om Danmarks Statistiks makroer. Design, Standardisering, Teknik

Peter Kellberg. Rundt om Danmarks Statistiks makroer. Design, Standardisering, Teknik Peter Kellberg Rundt om Danmarks Statistiks makroer Design, Standardisering, Teknik SAS Forum 2009 Ét makrobibliotek ca 50 makroer, vi selv har lavet mange andre fx CLAN Autocall makroer en makro er et

Læs mere

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund AVR MP3 29-05-08 Indholdsfortegnelse 1 Introduktion...2 2 Udviklingsmiljø...2 3 Beskrivelse af systemet...3 3.1 VS1001k...3 3.2 MP3 file formatet...6 4 Konklusion...6 5 Litteratur liste...6 6 Illustrations

Læs mere

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Læs mere

Internt interrupt - Arduino

Internt interrupt - Arduino Programmering for begyndere Brug af Arduino Internt interrupt - Arduino - Afslutning EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Intern interrupt Jeg vil rydde lidt op. Her er nogle punkter vil har glemt

Læs mere

Grundlæggende Algoritmer og Datastrukturer. Analyseværktøjer [CLRS, 1-3.1]

Grundlæggende Algoritmer og Datastrukturer. Analyseværktøjer [CLRS, 1-3.1] Grundlæggende Algoritmer og Datastrukturer Analyseværktøjer [CLRS, 1-3.1] Eksempler på en beregningsprocess Puslespil ved ombytninger Maximum delsum Hvad er udførselstiden for en algoritme? Maskinkode

Læs mere

Pentium IA-32 Maskinarkitekturen

Pentium IA-32 Maskinarkitekturen Pentium IA-32 Maskinarkitekturen 1 Historie (1) Starter i 1970 med udviklingen af Intel 4004: 2 Historie (2) Baglæns kompatibilitet tilbage til 8086. 3 Intel 4004 and Pentium 4 http://www.intel.com/museum/archives/index.htm

Læs mere

Planen for idag. Kontrol af ydre enheder. Systemarkitektur. Synkronisering ved aktiv venten. Multiprogrammering[1]: Ydre enheder og multiprogrammer

Planen for idag. Kontrol af ydre enheder. Systemarkitektur. Synkronisering ved aktiv venten. Multiprogrammering[1]: Ydre enheder og multiprogrammer : Ydre enheder og multiprogrammer Forår 2003 Jørgen Sværke Hansen Planen for idag Samspil mellem CPU og ydre enheder: Generelt Kontrolregistre Afbrydelser Specifikt for Alpha AXP (kernemaskinerne) Multiprogrammering:

Læs mere

Programmering i C Intro og grundlæggende C 5. marts 2007

Programmering i C Intro og grundlæggende C 5. marts 2007 Programmering i C Intro og grundlæggende C 5. marts 2007 Mads Pedersen, OZ6HR [email protected] Plan for kurset Ma. 5/3: Ma. 19/3: Ma. 2/4: To. 12/4: Formål, intro, grundlæggende Videre, sprogkonstruktioner

Læs mere

DM13-1. Obligatoriske Opgave - Kredsløbs design

DM13-1. Obligatoriske Opgave - Kredsløbs design DM13-1. Obligatoriske Opgave - Kredsløbs design Jacob Christiansen [email protected] Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense 1. Opgaven Opgaven består i at designe et kredsløb,

Læs mere

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm.

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm. Computer Literacy Computer Literacy handler om at forstå hvad computer (hardware) og software kan gøre. Denne præsentation fokuserer kun på hardware februar 2002 Computerliteracy -hardware (15 dias) 1

Læs mere

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract Sproget Six Til brug i rapportopgaven på kurset Oversættere Vinter 2006 Abstract Six er baseret på det sprog, der vises i figur 6.2 og 6.4 i Basics of Compiler Design. Den herværende tekst beskriver basissproget

Læs mere

Abstrakte datatyper C#-version

Abstrakte datatyper C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype

Læs mere

Algoritmer og invarianter

Algoritmer og invarianter Algoritmer og invarianter Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker. Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker.

Læs mere

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index DET KONGELIGE Index Download driver... 2 Find the Windows 7 version.... 2 Download the Windows Vista driver.... 4 Extract driver... 5 Windows Vista installation of a printer.... 7 Side 1 af 12 DET KONGELIGE

Læs mere

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. API for sekventiel tilgang (API =

Læs mere

Sammenlign og byt. Et eksempel på dokumentering af et program

Sammenlign og byt. Et eksempel på dokumentering af et program Sammenlign og byt Et eksempel på dokumentering af et program Sammenlign og byt Jeg har valgt, som et eksempel, at dokumentere et meget enkelt program som indlæser to tal, sammenligner dem og udskriver

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

3D NASAL VISTA 2.0

3D NASAL VISTA 2.0 USER MANUAL www.nasalsystems.es index index 2 I. System requirements 3 II. Main menu 4 III. Main popup menu 5 IV. Bottom buttons 6-7 V. Other functions/hotkeys 8 2 I. Systems requirements ``Recommended

Læs mere

Algoritmer og Datastrukturer 1

Algoritmer og Datastrukturer 1 Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Analyseværktøjer [CLRS, 1-3.1] Eksempler på en beregningsprocess Puslespil ved ombytninger Maximum delsum Hvad er udførselstiden for en algoritme? Maskinkode

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Part 5 Leisure Time and Transport

Part 5 Leisure Time and Transport Part 5 Leisure Time and Transport Lesson 3 Situation and Listen & Practice Situation Line and Louise are colleagues. They meet at a café before work. Line is late because h bike had a puncture on the way.

Læs mere

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater Design by Contract Design and Programming by Contract Anne Haxthausen [email protected] Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere

Læs mere

Maskinsprog. Martin Zachariasen, DIKU. Programmer og ordrer. Ordretyper. Operander og deres placering. Ordreformat. Procedurekald. Andre arkitekturer

Maskinsprog. Martin Zachariasen, DIKU. Programmer og ordrer. Ordretyper. Operander og deres placering. Ordreformat. Procedurekald. Andre arkitekturer Maskinsprog Martin Zachariasen, DIKU Litteratur: Patterson & Hennessy, kap. 3 Programmer og ordrer Ordretyper Operander og deres placering Ordreformat Procedurekald Andre arkitekturer 1 Stored-program

Læs mere

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4.

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4. APPETITVÆKKEREN OZ6YM, Palle A. Andersen Efteråret 2017 Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4. DEMO-video

Læs mere

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer Introduktion til datastrukturer Introduktion til datastrukturer Philip Bille Datastrukturer Datastruktur. Metode til at organise data så det kan søges i/tilgås/manipuleres effektivt. Mål. Hurtig Kompakt

Læs mere

ARP og ICMP. - service protokoller, som vi ikke kan undvære! Netteknik 1

ARP og ICMP. - service protokoller, som vi ikke kan undvære! Netteknik 1 ARP og ICMP - service protokoller, som vi ikke kan undvære! Netteknik 1 ARP & ICMP Protokoller, som udfører forskellige servicefunktioner på og imellem OSI lagene 2 og 3 Type Code Checksum Type-specific

Læs mere