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

Størrelse: px
Begynne med side:

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

Transkript

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

2 Schedulering av instruksjoner #include <stdio.h> int kombiner( int antall, int* x, int* y, int* z ) { int i; int a, b, c; for ( i = 0; i < antall; i ++ ) { a = *x; if ( a < 0 ) a = a; x++; b = *y; if ( b < 0 ) b = b; y++; if ( a > b ) c = a + b; else c = a b; *z = c; z++; } } main( int argc, char** argv ) { int i; int a[5] = { 1, 2, 3, 4, 7}; int b[5] = { 5, 6, 1, 7, 4}; int c[5] = {1, 2, 2, 1, 1}; if ( argc > 5 ) i = 5; else i = argc; if ( argc & 0x01 ) kombiner( i, &a[0], &b[0], &c[0] ); else kombiner( i, &c[0], &b[0], &a[0] ); for ( i = 0; i < 5; i ++ ) { printf(" %d %d %d\n", a[i], b[i], c[i] ); } } nori> program nori> in 147, våren 1999 pipelining 2 0

3 Assemblykode for virtuell maskin Dvs. instruksjoner blir utført én etter én, ovenifra og nedover kombiner: move t1,zero # i = 0; igjen: lw t0,0(a1) # a = *x; bgez t0,a_ok # if (a<0) goto a_ok subu t0,zero,t0 # a = a; a_ok: addiu a1,a1,4 # x++; lw v1,0(a2) # b = *y; bgez v1,b_ok # if (b<0) goto b_ok subu v1,zero,v1 # b = b; b_ok: addiu a2,a2,4 # y++; slt v0,v1,t0 # bne v0,zero,adder # if (a<=b) goto adder subu v0,t0,v1 # c = a b; b skriv # goto skriv adder: addu v0,t0,v1 # c = a + b; skriv: sw v0,0(a3) # *z = c; addiu a3,a3,4 # z++; addiu t1,t1,1 # i ++ slt v0,t1,a0 # bne v0,zero,igjen # if (i<antall) goto igjen jr ra # retur in 147, våren 1999 pipelining 2 1

4 Pipelinehasarder i IPS R3000 Strukturelle hasarder Datahasarder ingen, HW har tilstrekkelig med ressurser forwarding er selvsagt delayed load, men nyere implementasjoner steiler om nødvendig, men sikker gevinst hvis det kan unngås Kontrollhasarder instruksjonen etter en forgrening blir alltid utført, men nyere revisjoner av instruksjon settet har noen alternative varianter av forgreninger in 147, våren 1999 pipelining 2 2

5 Avhengigheter kombiner: move t1,zero # igjen: lw t0,0(a1) # bgez t0,a_ok # subu t0,zero,t0 # a_ok: addiu a1,a1,4 # lw v1,0(a2) # bgez v1,b_ok # subu v1,zero,v1 # b_ok: addiu a2,a2,4 # slt v0,v1,t0 # bne v0,zero,adder # subu v0,t0,v1 # b skriv # adder: addu v0,t0,v1 # skriv: sw v0,0(a3) # addiu a3,a3,4 # addiu t1,t1,1 # slt v0,t1,a0 # bne v0,zero,igjen # jr ra # in 147, våren 1999 pipelining 2 3

6 Program execution order (in instructions) beq $1, $2, 40 Time Instruction fetch ALU Data access add $4, $5, $6 (Delayed branch slot) lw $3, 300($0) 2 ns Instruction fetch 2 ns Instruction fetch ALU Data access ALU Data access 2 ns Time (in clock cycles) CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9 Value of register $2 : / Value of EX/E : X X X 20 X X X X X Value of E/WB : X X X X 20 X X X X Program execution order (in instructions) sub $2, $1, $3 I D and $12, $2, $5 I D or $13, $6, $2 I D add $14, $2, $2 I D sw $15, 100($2) I D in 147, våren 1999 pipelining 2 4

7 Datahasarder: ingen «forwarding» kombiner: move t1,zero # igjen: lw t0,0(a1) # f d e m w bgez t0,a_ok # f d e m w subu t0,zero,t0 # a_ok: addiu a1,a1,4 # lw v1,0(a2) # f d e m w bgez v1,b_ok # f d e m w subu v1,zero,v1 # f d e m w b_ok: addiu a2,a2,4 # f d e m w slt v0,v1,t0 # f d e m w # f d e m bne v0,zero,adder # # f d e f d subu v0,t0,v1 # f d e m w b skriv # f d e m w adder: addu v0,t0,v1 # f d e m w skriv: sw v0,0(a3) # f d e m w addiu a3,a3,4 # addiu t1,t1,1 # f d e m w slt v0,t1,a0 # f d e m w # f d e m # f d e bne v0,zero,igjen # f d jr ra # in 147, våren 1999 pipelining 2 5

8 Datahasarder: med «forwarding» kombiner: move t1,zero # igjen: lw t0,0(a1) # f d e m w bgez t0,a_ok # f d e m w subu t0,zero,t0 # a_ok: addiu a1,a1,4 # lw v1,0(a2) # f d e m w bgez v1,b_ok # f d e m w subu v1,zero,v1 # b_ok: addiu a2,a2,4 # slt v0,v1,t0 # bne v0,zero,adder # subu v0,t0,v1 # b skriv # adder: addu v0,t0,v1 # skriv: sw v0,0(a3) # addiu a3,a3,4 # addiu t1,t1,1 # slt v0,t1,a0 # bne v0,zero,igjen # jr ra # in 147, våren 1999 pipelining 2 6

9 Kontrollhasarder: kombiner: move t1,zero # igjen: lw t0,0(a1) # # bgez t0,a_ok # f d e m w subu t0,zero,t0 # f d e m w a_ok: addiu a1,a1,4 # lw v1,0(a2) # # bgez v1,b_ok # f d e m w subu v1,zero,v1 # f d e m w b_ok: addiu a2,a2,4 # slt v0,v1,t0 # bne v0,zero,adder # f d e m w subu v0,t0,v1 # f d e m w b skriv # f d e m w adder: addu v0,t0,v1 # f d e m w skriv: sw v0,0(a3) # addiu a3,a3,4 # addiu t1,t1,1 # slt v0,t1,a0 # bne v0,zero,igjen # f d e m w jr ra # f d e m w alternativer: steile/stall delayed branch (som her) in 147, våren 1999 pipelining 2 7

10 Teknikker ved eliminering av NOP er a. From before b. From target c. From fall through add $s1, $s2, $s3 if $s2 = 0 then Delay slot sub $t4, $t5, $t6 add $s1, $s2, $s3 if $s1 = 0 then add $s1, $s2, $s3 if $s1 = 0 then Delay slot Delay slot sub $t4, $t5, $t6 Becomes Becomes Becomes if $s2 = 0 then add $s1, $s2, $s3 add $s1, $s2, $s3 if $s1 = 0 then sub $t4, $t5, $t6 add $s1, $s2, $s3 if $s1 = 0 then sub $t4, $t5, $t6 in 147, våren 1999 pipelining 2 8

11 Assemblykode eliminere er #include <regdef.h>.text.globl kombiner.set noreorder # kombiner: move t1,zero # i = 0; igjen: lw t0,0(a1) # a = *x; # delayed load bgez t0,a_ok # if ( a < 0 ) goto a_ok # delayed branch subu t0,zero,t0 # a = a; a_ok: addiu a1,a1,4 # x++; lw v1,0(a2) # b = *y; # delayed load bgez v1,b_ok # if ( b < 0 ) goto b_ok # delayed branch subu v1,zero,v1 # b = b; b_ok: addiu a2,a2,4 # y++; slt v0,v1,t0 # bne v0,zero,adder # if ( a <= b ) goto adder # delayed branch subu v0,t0,v1 # c = a b; b skriv # # delayed branch adder: addu v0,t0,v1 # c = a + b; skriv: sw v0,0(a3) # *z = c; addiu a3,a3,4 # z++; addiu t1,t1,1 # i ++ slt v0,t1,a0 # bne v0,zero,igjen # if ( i < antall ) goto igjen # delayed branch jr ra # # delayed branch.set reorder # in 147, våren 1999 pipelining 2 9

12 kombiner: move t1,zero igjen: lw t0,0(a1) bgez t0,a_ok subu t0,zero,t0 a_ok: addiu a1,a1,4 lw v1,0(a2) bgez v1,b_ok subu v1,zero,v1 b_ok: addiu a2,a2,4 slt v0,v1,t0 bne v0,zero,adder subu v0,t0,v1 b skriv adder: addu v0,t0,v1 skriv: sw v0,0(a3) addiu a3,a3,4 addiu t1,t1,1 slt v0,t1,a0 bne v0,zero,igjen jr ra kombiner: move t1,zero igjen: lw t0,0(a1) lw v1,0(a2) bgez t0,a_ok addiu a1,a1,4; subu t0,zero,t0 a_ok: bgez v1,b_ok addiu a2,a2,4 subu v1,zero,v1 b_ok: slt v0,v1,t0 bne v0,zero,skriv addu v0,t0,v1 subu v0,t0,v1 skriv: sw v0,0(a3) addiu t1,t1,1 slt v0,t1,a0 bne v0,zero,igjen addiu a3,a3,4 jr ra in 147, våren 1999 pipelining 3 0

13 Alle ene i løkken eliminert! #include <regdef.h>.text.globl kombiner.set noreorder kombiner: move t1,zero # i = 0; igjen: lw t0,0(a1) # a = *x; lw v1,0(a2) # b = *y; bgez t0,a_ok # if ( a < 0 ) goto a_ok addiu a1,a1,4 # x++; subu t0,zero,t0 # a = a; a_ok: bgez v1,b_ok # if ( b < 0 ) goto b_ok addiu a2,a2,4 # y++; subu v1,zero,v1 # b = b; b_ok: slt v0,v1,t0 # bne v0,zero,skriv # if ( a <= b ) goto skriv addu v0,t0,v1 # c = a + b; [denne hører til «adder»] subu v0,t0,v1 # c = a b; skriv: sw v0,0(a3) # *z = c; addiu t1,t1,1 # i ++ slt v0,t1,a0 # bne v0,zero,igjen # if ( i < antall ) goto igjen addiu a3,a3,4 # z++; jr ra # # men denne overlevde!.set reorder hva hvis.set noreorder fjernes? hva produserer gcc/cc av C koden? in 147, våren 1999 pipelining 3 1

14 Kompilering med gcc O2: 0x400a20: lui 0x400a24: addiu 0x400a28: addu 0x400a2c: addiu 0x400a30: sw 0x400a34: sw 0x400a38: blez gp,0xfc1 gp,gp, gp,gp,t9 sp,sp, 24 gp,0(sp) gp,16(sp) a0,0x400a94 0x400a3c: move t1,zero 0x400a40: lw t0,0(a1) 0x400a44: 0x400a48: bgez t0,0x400a54 0x400a4c: 0x400a50: subu t0,zero,t0 0x400a54: lw v1,0(a2) 0x400a58: 0x400a5c: bgez v1,0x400a68 0x400a60: addiu a1,a1,4 0x400a64: subu v1,zero,v1 0x400a68: slt v0,v1,t0 0x400a6c: beq v0,zero,0x400a7c 0x400a70: addiu a2,a2,4 0x400a74: b 0x400a80 0x400a78: addu v0,t0,v1 0x400a7c: subu v0,t0,v1 0x400a80: sw v0,0(a3) 0x400a84: addiu t1,t1,1 0x400a88: slt v0,t1,a0 0x400a8c: bne v0,zero,0x400a40 0x400a90: addiu a3,a3,4 0x400a94: jr ra 0x400a98: addiu sp,sp,24 Tilsammen 31 instruksjoner, hvorav 7 i prolog Til sammenligning resulterer kompilering med cc O2 i 101 instruksjoner! in 147, våren 1999 pipelining 3 2

15 Er det mulig å fjerne forgreninger og de tilhørende hasardene? kombiner: move t1,zero # i = 0; igjen: lw t0,0(a1) # a = *x; lw v1,0(a2) # b = *y; bgez t0,a_ok # if ( a < 0 ) goto a_ok addiu a1,a1,4 # x++; subu t0,zero,t0 # a = a; a_ok: bgez v1,b_ok # if ( b < 0 ) goto b_ok addiu a2,a2,4 # y++; subu v1,zero,v1 # b = b; b_ok: slt v0,v1,t0 # bne v0,zero,skriv # if ( a <= b ) goto skriv addu v0,t0,v1 # c = a + b; subu v0,t0,v1 # c = a b; skriv: sw v0,0(a3) # *z = c; addiu t1,t1,1 # i ++ slt v0,t1,a0 # bne v0,zero,igjen # if ( i < antall ) goto igjen addiu a3,a3,4 # z++; jr ra # # Ja, hvis «conditional move» er tilgjengelig se oppgavene 6.28 og 6.29 in 147, våren 1999 pipelining 3 3

16 En «fullstendig» IPS pipeline (fig. 6.55) IF.Flush ID.Flush EX.Flush u x Hazard detection unit ID/EX WB 0 u x EX/E IF/ID Control 0 ux EX Cause 0 ux WB E/WB WB PC 4 Instruction memory Shift left 2 isters = Except PC u x ALU Data memory ux ux Sign extend u x Forwarding unit in 147, våren 1999 pipelining 3 4

17 En moderne IPS pipeline PClock Phase Cycle Φ1 Φ2 Φ1 Φ2 Φ1 Φ2 Φ1 Φ2 Φ1 Φ2 IC RF EX DC WB Instr. Fetch Instr. Decode. File Read ITLB ICF ITC IDEC RFR Arithmetic/Logical Operations ALU RFW Load/Store Operations DVA DTLB DTC DCR LA RFW DCW Jump/Branch Operations BCP IVA Cycle Phase nemonic Descriptions IC RF EX DC WB Φ1 Φ2 ICF ITLB No activity Instruction Cache Fetch Instruction micro-tlb read Φ1 ITC Instruction cache Tag Check Φ2 Φ1 Φ2 Φ1 Φ2 Φ1 Φ2 RFR IDEC IVA BCP ALU DVA DCR DTLB LA DTC DCW RFW ister File Read Instruction Decode Instruction Virtual Address Calculation Branch Compare Arithmetic Logic Operation Data Virtual Address Calculation No new activity started Data Cache Read Data TLB look-up Load Data Alignment Data Cache Tag Check Data Cache Write ister File Write No activity Figure 7 Pipeline Activities Kilde: in 147, våren 1999 pipelining 3 5

Hva er datamaskinarkitektur?

Hva er datamaskinarkitektur? Hva er datamaskinarkitektur? Datamaskinarkitektur forholder seg til informatikk som motorlære forholder seg til samferdsel! Motorlære: bil buss motorsykkel generator bremse akselerere... Datamaskinarkitektur:

Detaljer

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

dynamiske data dynamiske data statiske data program dynamiske data statiske data reservert program dynamiske data statiske data reservert program Alle prosesser får et helt adresserom! antall prosesser varierer hele tiden! in 47, våren 997 hukommelseshierarki 2 Mange prosessers og ett fysiske adresserom? Jo, bruk den fysiske hukommelsen som en cache

Detaljer

ytelsen til hukommelseshierarkier

ytelsen til hukommelseshierarkier Tema for denne forelesningen: virtuell hukommelse ytelsen til hukommelseshierarkier andre ting å cache e in 47, våren 999 hukommelseshierarki 2 Alle prosesser får et helt adresserom! stakk stakk stakk

Detaljer

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

4/2 enkel pipelining in 147, våren 1997 pipelining 1. Pipelining. når tema læreboka. 11/3 problemer Pipelining når tema læreboka 4/2 enkel pipelining 6. 6.3 /3 problemer 6.4 6.7 in 47, våren 997 pipelining Time 6 P 7 8 9 2 2 A Task order A B C D Time 6 P 7 8 9 2 2 A Task order A B C D in 47, våren 997

Detaljer

Oppgave 1 Oversettelse (total vekt 20%)

Oppgave 1 Oversettelse (total vekt 20%) UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 47 Program- og maskinvare Eksamensdag: 27. mai 998 Tid for eksamen: 9. 5. Oppgavesettet er på 8 sider. Vedlegg: Tillatte hjelpemidler:

Detaljer

Løsningsforslag til eksamen i IN147(A)

Løsningsforslag til eksamen i IN147(A) Løsningsforslag til eksamen i IN147(A) Dag Langmyhr Øystein Gran Larsen 27. mai 1998 Oppgave 1: Oversettelse En ganske rett frem oversettelse ser slik ut: 1 #include 2.text 4.globl iavg 6 #

Detaljer

Innhold. Oppgave 1 Oversettelse (vekt 15%)

Innhold. Oppgave 1 Oversettelse (vekt 15%) UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 147 Program- og maskinvare Eksamensdag: 29. mai 2001 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 10 sider. Vedlegg: Tillatte

Detaljer

Intel Core i7. Omid Mirmotahari 4

Intel Core i7. Omid Mirmotahari 4 INF2270 Pipeline Hovedpunkter Oppsummering av én-sykel implementasjon Forbedring av én-sykel designet Introduksjon til pipelining Oppbygning av datapath med pipelining Intel Core i7 Omid Mirmotahari 4

Detaljer

IN1020. Datamaskinarkitektur

IN1020. Datamaskinarkitektur 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

Detaljer

Oppgave 1 Oversettelse (vekt 16%)

Oppgave 1 Oversettelse (vekt 16%) UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 147 Program- og maskinvare Eksamensdag: 31. mai 1999 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider. Vedlegg: Tillatte

Detaljer

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

tema er hentet fra kapittel 4.3 og 4.4 om pipelining Mikroprogrammert Dagens temaer Hard-wired Mikrokode Hasarder Ytelse Dagens temaer 1 Dagens Mer tema er hentet fra kapittel 4.3 og 4.4 om pipelining Ytelse Pipelining Hasarder i Pentium-arkitekturen Mikrokode Hard-wired RISC Mikroprogrammert og CISC Fordeler og ulemper

Detaljer

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

Dagens temaer. tema er hentet fra kapittel 4.3 og 4.4 om pipelining. til neste ukes forelesning (hvis tid) INF ! Mikrokode. ! agens temaer! agens! Mer tema er hentet fra kapittel 4.3 og 4.4 om pipelining! Ytelse! Hasarder! Mikrokode! Hard-wired! Mikroprogrammert! RISC! Introduksjon og CISC! ordeler og ulemper til neste ukes forelesning

Detaljer

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

4/5 store parallelle maskiner /4 felles hukommelse in 147, våren 1999 parallelle datamaskiner 1. når tema pensum. Parallellitet når tema pensum 27/4 felles hukommelse 9.2 9.3 4/5 store parallelle maskiner 9.4 9.6 in 147, våren 1999 parallelle datamaskiner 1 Tema for denne forelesningen: kraftigere enn én prosessor

Detaljer

Dagens tema: Enda mer MIPS maskinkode

Dagens tema: Enda mer MIPS maskinkode Dagens tema: Enda mer MIPS maskinkode (P&H: 3.6 3.8 + 6.1 + A.6 + A.10) Pseudoinstruksjoner Flere instruksjoner Mer om funksjonskall Stakken Avhengigheter Direktiver Alt er bit! Kommunikasjon med C Ark

Detaljer

Oppgave 2 Maskinkode (vekt 12%)

Oppgave 2 Maskinkode (vekt 12%) UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 47 Program- og maskinvare Eksamensdag: 29. mai 2 Tid for eksamen: 9. 5. Oppgavesettet er på 8 sider. Vedlegg: Ingen Tillatte

Detaljer

Løsningsforslag til eksamen i IN 147(A)

Løsningsforslag til eksamen i IN 147(A) Løsningsforslag til eksamen i IN 147(A) Dag Langmyhr (oppgave 1, 4 og 6) ØysteinGranLarsen (oppgave 2, 3 og 5) 31. mai 1999 1 Oversettelse Funksjonen strxxx går gjennom en tekst og finner adresessen til

Detaljer

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

ulike stegene utføres på egne hardware-enheter som ikke er instruksjon kan deles opp i sekvensielle steg som løses etterhverandre Dagens temaer Dagens er tema er hentet fra kapittel 4.3 og 4.4 om pipelining Ytelse Pipelining Hasarder i Pentim-arkitektren ikrokode Hard-wired ikroprogrammert RISC og CISC og lemper ordeler er om pipeling

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: Eksamensdag: 12. juni 2015 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 11 sider. Vedlegg: Tillatte hjelpemidler: INF2270

Detaljer

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

TDT DESEMBER, 2014, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science Norwegian University of Science and Technology Engineering The Department of Computer and Information Science TDT416 DATAMASKINER GRUNNKURS EKSAMEN 4. DESEMBER, 214, 9: 13: Kontakt under eksamen: Gunnar

Detaljer

TDT4160 17. AUGUST, 2013, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science

TDT4160 17. AUGUST, 2013, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science Norwegian University of Science and Technology Engineering The Department of Computer and Information Science TDT416 DATAMASKINER GRUNNKURS EKSAMEN 17. AUGUST, 213, 9: 13: Kontakt under eksamen: Gunnar

Detaljer

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

TDT4160 16. DESEMBER, 2013, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science Norwegian University of Science and Technology Engineering The Department of Computer and Information Science TDT416 DATAMASKINER GRUNNKURS EKSAMEN 16. DESEMBER, 213, 9: 13: Kontakt under eksamen: Gunnar

Detaljer

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk ITPE/DATS 2400: Datamaskinarkitektur og Nettverk Forelesning 9: Instruksjonsettarkitektur 3 Knut H. Nygaard / T. M. Jonassen Institute of Computer Science Faculty of Technology, Art and Design Oslo and

Detaljer

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

befinner seg. Deretter leses instruksjonen fra i registerfilen ved ny stigende klokkepuls. SIE 4005, 15/10 (5. Forelesn.) Andre forelesning: litt repetisjon 8.4 Hardwired Control 8.7 Microprogrammed Control 8.8 A simple computer architecture Femte forelesning: noe repetisjon. 8.9 Single-Cycle

Detaljer

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

TDT DESEMBER, 2012, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science Norwegian University of Science and Technology Engineering The Department of Computer and Information Science TDT4160 DATAMASKINER GRUNNKURS EKSAMEN 17. DESEMBER, 2012, 09:00 13:00 Kontakt under eksamen:

Detaljer

HW for koordinering med omverdenen. OS syr HW og SW sammen. Tema for denne forelesningen: in 147, våren 1999 Input/Output 2 1

HW for koordinering med omverdenen. OS syr HW og SW sammen. Tema for denne forelesningen: in 147, våren 1999 Input/Output 2 1 Tema for denne forelesningen: OS syr HW og SW sammen HW for koordinering med omverdenen in 147, våren 1999 Input/Output 2 1 Operativsystemets ansvar er å koordinere programmers bruk av systemet blir delt

Detaljer

Oversikt over IN147(A):

Oversikt over IN147(A): Oversikt over IN147(A): Programmerings- og operativsystem-delen Oppsummering for IN147(A) Bit-mønstre Tallsystemer MIPS assemblerspråk C Datatyper Tillegg for de som tar hele IN147 Operativsystemer Parallellisering

Detaljer

Oppsummering av digitalteknikkdelen

Oppsummering av digitalteknikkdelen Oppsummering av digitalteknikkdelen! Følgende hovedtemaer er gjennomgått! Boolsk Algebra! von Neuman-arkitektur! Oppbygging av CPU! Pipelining! Cache! Virtuelt minne! Interne busser 09.05. INF 1070 1 Boolsk

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 14. juni 2007 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 9 sider. Vedlegg: INF1070 og INF2270 Datamaskinarkitektur

Detaljer

Intel Core i7. Omid Mirmotahari 4

Intel Core i7. Omid Mirmotahari 4 INF2270 Pipeline Hovedpunkter Oppsummering av én-sykel implementasjon Forbedring av én-sykel designet Introduksjon til pipelining Oppbygning av datapath med pipelining Intel Core i7 Omid Mirmotahari 4

Detaljer

EKSAMENSOPPGAVE, INF-2200

EKSAMENSOPPGAVE, INF-2200 EKSAMENSOPPGAVE, INF-2200 Eksamen i : INF-2200 Datamaskinarkitektur og organisering Eksamensdato : Mandag 20. februar 2012 Tid : 09:00 13:00 Sted Tillatte hjelpemidler : Aud. max. : Ingen Oppgavesettet

Detaljer

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

EKSAMENSOPPGAVE I FAG TDT4160 DATAMASKINER GRUNNKURS. D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt. Side 1 av 8 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap EKSAMENSOPPGAVE I FAG TDT4160 DATAMASKINER GRUNNKURS Faglig kontakt under eksamen: Jon Olav

Detaljer

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2011 Gunnar Tufte 2 Kapittel 4: Microarchitecture level 3 Auka yting IJVM 4 IJVM: MicrArch vs Instruction Set Architecture Instruksjonsset: Minnemodell: MIC 1 MIC 2 ISA

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF2270 Datamaskinarkitektur Eksamensdag: 11. juni 2009 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 10 sider. Vedlegg: Ingen

Detaljer

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2011 Gunnar Tufte 2 Kapittel 4: Microarchitecture level 3 Kapittel 4: Microarchitecture level Nivå mellom Under Instruction Level Architecture (ISA) Over Digital logic

Detaljer

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2008 Gunnar Tufte 2 Dagens forelesing Kapittel 1 Datamaskinsystem Kapittel 2 start 3 Gunnar Fakta Datamaskingruppa Biologisk inspirerte system: Unconvential Computing Machines

Detaljer

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2011 Gunnar Tufte 2 Kapittel 4: Microarchitecture level 3 Ny Arkitektur: IJVM 4 Instruksjonsett Stack basert 5 Mikroprogramm 0001010010000000000000111 001111000000010000001000

Detaljer

Løsningsforslag til eksamen i IN 147(A)

Løsningsforslag til eksamen i IN 147(A) Løsningsforslag til eksamen i IN 147(A) Dag Langmyhr (oppgave 1, 2 og 6) Sigbjørn Næss (oppgave 3, 4 og 5) 29. mai 2000 1 Oversettelse Assemblerversjonen av split ser slik ut: 1 #include 2 3.text

Detaljer

LX5380 RISC-DSP for New Internet Applications. Pat Hays, Chris Hanna, Jonah Probell October 25, 2001

LX5380 RISC-DSP for New Internet Applications. Pat Hays, Chris Hanna, Jonah Probell October 25, 2001 LX5380 RISC-DSP for New Internet Applications Pat Hays, Chris Hanna, Jonah Probell October 25, 2001 Outline Benefits of RISC-DSP Cores The LX5380 RISC-DSP Example: 3G Wireless Handset Example: VoIP Gateway

Detaljer

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

Dagens tema. Dagens tema er hentet fra kapittel 4.3 og 4.4. Mer om pipelining Ytelse Hasarder. Pipelining i Pentium-arkitekturen Dagens tema Dagens tema er hentet fra kapittel 4.3 og 4.4 Mer om pipelining Ytelse Hasarder Pipelining i Pentium-arkitekturen Mikrokode Hard-wired Mikroprogrammert RISC og CISC Fordeler og ulemper 1/41

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema: Tallsystemer (P&H: 4.1 4.2) Generelt Binære, oktale og heksadesimale tall Tall, bit og byte Negative tall Assemblerspråk (P&H: 3.1 3.3 + A.9) Datamaskinens oppbygging Enkel aritmetikk Flytting

Detaljer

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

SIE 4005, 2/10 (2. Forelesn.) SIE 4005, 2/10 (2. Forelesn.) Første forelesning: 7.1 Datapaths and operations 7.2 Register Transfer operations 7.3 Microoperations (atitm., logic, shift) 7.4 MUX-based transfer 7.5 Bus-based transfer

Detaljer

Kap. 8 del 1 kodegenerering INF5110 Vår2007

Kap. 8 del 1 kodegenerering INF5110 Vår2007 Kap. 8 del 1 kodegenerering INF5110 Vår2007 Stein Krogdahl, Ifi UiO Forelesninger framover: Tirsdag 8. mai: Vanlig forelesning Torsdag 10. mai: Ikke forelesning Tirsdag 15. mai: Vanlig forelesning (siste?)

Detaljer

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer INF3430 Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer Innhold Funksjoner og operatorer Prosedyrer Begrepet overload Biblioteker Package/package body Standard biblioteker

Detaljer

Løsningsforslag til eksamen i IN147(A)

Løsningsforslag til eksamen i IN147(A) Løsningsforslag til eksamen i IN147(A) Dag Langmyhr Øystein Gran Larsen 12 mai 1997 Oppgave 1: JK-flip-flop Boolsk ligning D-signalet bestemmer neste utgang, dvs Q(t + 1), og D-signalet tar derfor de samme

Detaljer

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

Pensumoversikt - kodegenerering. Kap. 8 del 1 kodegenerering INF5110 v2006. Hvordan er instruksjonene i en virkelig CPU? Arne Maus, Ifi UiO Pensumoversikt - kodegenerering Kap. 8 del 1 kodegenerering INF5110 v2006 Arne Maus, Ifi UiO 8.1 Bruk av mellomkode 8.2 Basale teknikker for kodegenerering 8.3 Kode for referanser til datastrukturer (ikke

Detaljer

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

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord. Oppbygging av RAM Sentrale begreper er adresserbarhet og adresserom Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon (lese- eller skrive-operasjon). 9.. INF Antall bit som kan

Detaljer

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN Norwegian University of Science and Technology Engineering The Department of Computer and Information Science TDT4160 DATAMASKINER GRUNNKURS EKSAMEN 17. DESEMBER, 2012, 09:00 13:00 Kontakt under eksamen:

Detaljer

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

TDT DESEMBER, 2014, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science Norwegian University of Science and Technology Engineering The Department of Computer and Information Science TDT416 DATAMASKINER GRUNNKURS EKSAMEN 4. DESEMBER, 214, 9: 13: Kontakt under eksamen: Gunnar

Detaljer

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

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Grovt sett inneholder et hovedkort En prosessor Minne (for både program og data) Klokke Kontrollere for periferutstyr.

Detaljer

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer INF3430/4430 Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer 2005-10-26 Agenda Funksjoner og operatorer Prosedyrer Begrepet overload Biblioteker Package/package body Standard

Detaljer

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

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Data.data Stakk %EAX %ECX %EDX %EBP %ESP Prosessor Kode Minne.text Hovedkortet Grovt sett inneholder et hovedkort En prosessor

Detaljer

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

! Repetisjon: ! Forutsetinger: ! Ideelt sett gir en k-trinns pipeline en faktor k i hastighetsøkning. ! Benyttes derimot ekte pipelining, behøves agens temaer er om pipeling! agens! er tema er hentet fra kapittel 4.3 og 4.4 om pipelining! Ytelse! Hasarder! ikrokode! RISC! Introdksjon! Hard-wired! ikroprogrammert og CISC! ordeler og lemper til neste

Detaljer

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk ITPE/DATS 2400: Datamaskinarkitektur og Nettverk Forelesning Knut Nygaard / T. M. Jonassen Institute of Computer Science Faculty of Technology, Art and Design Oslo and Akershus University College of Applied

Detaljer

Kapittel 4: Microarchitecture level

Kapittel 4: Microarchitecture level 1 Kapittel 4: Microarchitecture level 2 Kapittel 4: Microarchitecture level 3 Kva er og Kva gjer Realisera Instruction Level Architecture (ISA) 4 Nivå 2: Instruksjonssetarkitektur (ISA) Instruksjonssettark.

Detaljer

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

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

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema: Oversikt over min del av IN147A Bit-mønstre Tallsystemer MIPS assemblerspråk C Datatyper... samt for de som tar hele IN147 Operativsystemer Parallellisering Pensum Eksamen Veien videre Ark

Detaljer

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

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Data.data Stakk %EAX %ECX %EDX %EBP %ESP Prosessor Kode Minne.text Hovedkortet Grovt sett inneholder et hovedkort En prosessor

Detaljer

INF3430/4431. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF3430/4431. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer INF3430/4431 Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer Innhold Funksjoner og operatorer Prosedyrer Begrepet overload Biblioteker Package/package body Standard biblioteker

Detaljer

Fortsetelse Microarchitecture level

Fortsetelse Microarchitecture level 1 Fortsetelse Microarchitecture level 2 Implementasjon Kva kan gjerast for å auke ytinga 3 Implementasjon Detaljar for å utføre instruksjonssettet Ein gitt implementasjon har ein gitt yting Endre ytinga

Detaljer

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer INF3430/4430 Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer 19.09.2006 Agenda Funksjoner og operatorer Prosedyrer Begrepet overload Biblioteker Package/package body Standard

Detaljer

Operativsystemets ansvar er å koordinere. programmers bruk av I/O

Operativsystemets ansvar er å koordinere. programmers bruk av I/O Operativsystemets ansvar er å koordinere programmers bruk av systemet blir delt av flere programmer som også deler prosessoren bruker ofte avbrudd for å melde tilbake om status til operasjoner avbrudd

Detaljer

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

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

Detaljer

TDT4160 Datamaskiner Grunnkurs 2011. Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs 2011. Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2011 Gunnar Tufte 2 Bussar og busshierarki Tape Optical Bus 3 CPU og buss komunikasjon Tape Optical Bus 4 Buss linjer Bus Adr/data Bit 0 Adr/data Bit 1 Adr/data Bit 2 Adr/data

Detaljer

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

Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Grovt sett inneholder det En prosessor Minne (for både program og data) Klokke Kontrollere for periferutstyr.

Detaljer

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2008 Gunnar Tufte 2 I dag Kva er inni 8051, P4 og UltraSparc Digital logic level (start kapitel 3) VIKTIG MELDING Alle som har brukt NTNU-passord for AoC pålogging må skifte

Detaljer

Fortsetelse Microarchitecture level

Fortsetelse Microarchitecture level 1 Fortsetelse Microarchitecture level IJVM 2 Implementasjon Detaljar for å utføre instruksjonssettet Ein gitt implementasjon har ein gitt yting Endre ytinga Teknologi (prosess) Transistor implementasjon

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 15. juni 2006 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 7 sider. Vedlegg: INF1070 Datamaskinarkitektur Ingen

Detaljer

Forelesning 5. Diverse komponenter/større system

Forelesning 5. Diverse komponenter/større system Forelesning 5 Diverse komponenter/større system Hovedpunkter Komparator Dekoder/enkoder MUX/DEMUX Kombinert adder/subtraktor ALU En minimal RISC - CPU 2 Komparator Komparator sammenligner to 4 bits tall

Detaljer

Fortsetelse Microarchitecture level

Fortsetelse Microarchitecture level 1 Fortsetelse Microarchitecture level 2 Kva kan datamaskiner (frå 1. forelesing) Aritmetiske Logiske funksjonar Flytte data frå ein plass til ein anna Test er eit tal 0? Gjere desse operasjonane FORT Berekne

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 13. juni 2013 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 9 sider. Vedlegg: Tillatte hjelpemidler: INF2270 Datamaskinarkitektur

Detaljer

Dagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene

Dagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Dagens tema Dagens tema Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Inkludering av filer Cs preprosessor Før selve kompileringen går C-kompilatoren gjennom

Detaljer

Forelesning ISA: IJVM Kap 4.2

Forelesning ISA: IJVM Kap 4.2 TDT4160 Datamaskiner Grunnkurs Forelesning 27.10 ISA: IJVM Kap 4.2 Dagens tema Repetisjon: ISA vs. mikroarkitektur ISA: IJVM (4.2) Lagring av lokale variable Minnemodell Instruksjonssett Metodekall Kompilering

Detaljer

Løsningsforslag til eksamen i IN 147 og IN 147A

Løsningsforslag til eksamen i IN 147 og IN 147A Løsningsforslag til eksamen i IN 17 og IN 17A Dag Langmyhr Øystein Gran Larsen Våren 1996 1 Oversettelse I vårt forslag har vi lagt større vekt på at oversettelsen skal vært «rett frem» og lett forståelig

Detaljer

EKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.

EKSAMEN. Operativsystemer. 1. Læreboken A Practical Guide to Red Hat Linux av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater. EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 12. desember 2007 Eksamenstid: kl. 9.00 til kl. 13.00 Hjelpemidler: 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre

Detaljer

Eksamen INF2270 våren 2018

Eksamen INF2270 våren 2018 Generell informasjon Eksamen INF2270 våren 2018 Dette oppgavesettet består av 14 oppgaver som kan løses uavhengig av hverandre. Dersom du synes noe i oppgaveteksten er uklart, må du gjøre dine egne forutsetninger;

Detaljer

Dagens tema INF1070. Info om C. Cs preprosessor. Feilsøking. Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 1 av 29

Dagens tema INF1070. Info om C. Cs preprosessor. Feilsøking. Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 1 av 29 Dagens tema Info om C Cs preprosessor Feilsøking Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 1 av 29 Informasjon om C Den viktigste kilden til informasjon om C (utenom en god oppslagsbok) er

Detaljer

Informasjon om C. Dagens tema INF1070 INF1070 INF1070 INF1070. Den viktigste kilden til informasjon om C (utenom en god. C-funksjonene.

Informasjon om C. Dagens tema INF1070 INF1070 INF1070 INF1070. Den viktigste kilden til informasjon om C (utenom en god. C-funksjonene. Dagens tema Info om C Cs preprosessor Feilsøking Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 1 av 29 Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 2 av 29 NAME sqrt - square root function

Detaljer

Programmeringsspråket C

Programmeringsspråket C Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger

Detaljer

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF103 Fra brukergrensesnitt til maskinvare Eksamensdag: 16. desember 2002 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.

Detaljer

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

Oppgaver til kodegenerering etc. INF-5110, 16. mai, 2014 Oppgaver til kodegenerering etc. INF-5110, 16. mai, 2014 Oppgave 1: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet, side 539 a) Se på detaljene i hvorfor

Detaljer

Løsningsforslag til eksamen i INF2270

Løsningsforslag til eksamen i INF2270 Løsningsforslag til eksamen i INF2270 Omid Mirmotahari (oppgave 1 4) Dag Langmyhr (oppgave 5 6) 14. juni 2012 Eksamen inf2270 V12 - fasit 1) (5%) Forkort følgende uttrykk med karnaugh diagram zw xy 00

Detaljer

Dagens tema INF2270. Cs preprosessor. Separat kompilering av C funksjoner. C og minnet. Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15

Dagens tema INF2270. Cs preprosessor. Separat kompilering av C funksjoner. C og minnet. Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15 Dagens tema Cs preprosessor Separat kompilering av C funksjoner C og minnet Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15 Cs preprosessor Før selve kompileringen går C kompilatoren gjennom

Detaljer

Kap. 8 del 1 kodegenerering INF april, 2008

Kap. 8 del 1 kodegenerering INF april, 2008 Kap. 8 del 1 kodegenerering INF5110 22. april, 2008 Stein Krogdahl, Ifi UiO Forelesninger framover: Torsdag 24 april: Ikke forelesning Tirsdag 29. april: Vanlig forelesning Torsdag 1. mai: Fridag Tirsdag

Detaljer

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

Kapittel 6. Høynivå møter lavnivå Fra C til assembly Fra assembly til maskinkode Linking og lasting 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

Detaljer

Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema

Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Charles Babbage Midt på 1800-tallet

Detaljer

Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin?

Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin? Dagens tema Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin? Intel-prosessoren Enkel assemblerprogrammering Dag

Detaljer

Forelesning Adresseringsmodi Kap 5.4

Forelesning Adresseringsmodi Kap 5.4 TDT4160 Datamaskiner Grunnkurs Forelesning 21.11 Adresseringsmodi Kap 5.4 Dagens tema Adresseringsmodi (5.4) Hva? Gjennomgang av 6 forskjellige modi Bruk av stakk Eksempler Repetisjon: Instruksjonsformat

Detaljer

Del 4 Noen spesielle C-elementer

Del 4 Noen spesielle C-elementer Del 4 Noen spesielle C-elementer 1 RR 2016 Header-filer inneholder Prototypene til funksjonene i standard biblioteket Verdier og definisjoner som disse funksjonene bruker #include #include

Detaljer

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

TDT AUGUST, 2015, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science Norwegian University of Science and Technology Engineering The Department of Computer and Information Science TDT416 DATAMASKINER GRUNNKURS EKSAMEN 6. AUGUST, 215, 9: 13: Kontakt under eksamen: Odd Rune

Detaljer

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

Dagens tema. LC-2 LC-2 er en «ekstrem-risc»; den har 16 instruksjoner og 3 adresseringsmåter. Dagens tema Mer programmering i assemblerspråk Masking Hopp, tester og flagg Varianter over ld og st Vektorer og tekster Rutiner Stakker Programmering i assembler Dere kjenner sikkert den gamle gåten:

Detaljer

TDT4160 2. DESEMBER, 2011, 09:00 13:00

TDT4160 2. DESEMBER, 2011, 09:00 13:00 Norwegian University of Science and Technology Faculty of Information Technology, Mathematics and Electrical Engineering The Department of Computer and Information Science TDT4160 DATAMASKINER GRUNNKURS

Detaljer

Forelesning Mikroprogram for IJVM Kap 4.3

Forelesning Mikroprogram for IJVM Kap 4.3 TDT4160 Datamasiner Grunnurs Forelesning 31.10 Miroprogram for IJVM Kap 4.3 Dagens tema Repetison: IJVM Miroaritetur IJVM-Instrusoner Registerbru Miroprogram for IJVM (4.3) Micro Assembly Language (MAL)

Detaljer

Dagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene

Dagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Dagens tema Dagens tema Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Inkludering av filer Cs preprosessor Før selve kompileringen går C-kompilatoren gjennom

Detaljer

Oppsummering digital-teknikk, teknikk, INF2270

Oppsummering digital-teknikk, teknikk, INF2270 Oppsummering digital-teknikk, teknikk, INF227 Grovt sett kan digital-teknikk-delen fordeles i tre: Boolsk algebra og digitale kretser Arkitektur (Von Neuman, etc.) Ytelse (Pipelineling, cache, hukommelse,

Detaljer

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk ITPE/DATS 2400: Datamaskinarkitektur og Nettverk Instruksjonsettarkitektur 2 Knut Nygård / T. M. Jonassen Institute of Computer Science Faculty of Technology, Art and Design Oslo and Akershus University

Detaljer

Anatomien til en kompilator - I

Anatomien til en kompilator - I Anatomien til en kompilator - I program Symboltabell tekst tokens syntaks-tre beriket syntaks-tre Finne struktur i programmet OK i henhold til grammatikk? Preprocessor Makroer Betinget kompilering Filer

Detaljer

Forelesning Instruksjonstyper Kap 5.5

Forelesning Instruksjonstyper Kap 5.5 TDT4160 Datamaskiner Grunnkurs Forelesning 22.11 Instruksjonstyper Kap 5.5 Dagens tema Instruksjonstyper (5.5) Datatransport Datamanipulering Betingede hoppinstruksjoner Prosedyrekall Løkker I/O Eksempler

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 14. juni 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 12 sider. Vedlegg: Tillatte hjelpemidler: INF2270

Detaljer