Oppgave 1 Oversettelse (total vekt 20%)
|
|
- Brage Gulbrandsen
- 7 år siden
- Visninger:
Transkript
1 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 47 Program- og maskinvare Eksamensdag: 27. mai 998 Tid for eksamen: Oppgavesettet er på 8 sider. Vedlegg: Tillatte hjelpemidler: Ingen Alle Kontroller at oppgavesettet er komplett før du begynner å besvare spørsmålene. Dette oppgavesettet består av 5 oppgaver som kan løses uavhengig av hverandre. Alle oppgavene er vektet likt. Der det er snakk om programmering, skal programmene lages slik at de kan kompileres eller assembleres med cc på SGI-maskinene her ved Ifi. Hvis du synes punkter i oppgaven er uklart definert, kan du angi hvilke forutsetninger du tar hensyn til i din løsning. Lykke til! Oppgave Oversettelse (total vekt 2%) Disse tre deloppgavene går ut på å oversette mellom C og IPS assemblerkode. Det er ikke nødvendig å ta hensyn til prosessorens pipeline. -a Enkel variant (vekt 6%) Funksjonen iavg i figur beregner gjennomsnittet av n int-verdier. (Vi regner at en int er på 4 byte.) Anta at n. Oversett denne funksjonen til IPS assemblerkode. Hint Det er ikke nødvendig å forstå alle detaljer i funksjonen for å kunne oversette den. -b Variant med funksjon (vekt 7%) Funksjonen fiavg i figur 2 fungerer som iavg i oppgave -a, men hvert vektorelement blir bearbeidet av funksjonen fx før det summeres. Oversett denne funksjonen til IPS assemblerkode. (Fortsettes på side 2.)
2 Eksamen i IN 47, 27. mai 998 Side 2 int iavg(int a[], int n) { int sum =, i; Figur : En C-funksjon for å beregne gjennomsnitt for (i = ; i < n; ++i) sum += a[i]; } if (sum < ) sum -= n/2; else sum += n/2; return sum/n; Figur 2: En variant av funksjonen i figur int fiavg(int a[], int n, int (*fx)(int)) { int sum =, i; for (i = ; i < n; ++i) sum += fx(a[i]); } if (sum < ) sum -= n/2; else sum += n/2; return sum/n; Hint I denne oppgaven er det spesielt viktig å behandle de sikre («callee save») og usikre («caller save») registrene riktig. -c Oversettelse fra assemblerspråk til C (vekt 7%) I figur 3 er vist koden til en ukjent funksjon f som har følgende signatur i C: float f(float a[], int n) Prøv å forstå hva denne funksjonen gjør, og oversett den til C. Hint Siden parameteren a er en peker (til en vektor), overføres den i register $a. Returverdien skal ligge i register $f. Hint Operasjonen mtc zero,$f flytter et ord fra register zero i CPU-en til register $f i flyttallsprosessoren. (Det står omvendt i læreboken.) Oppgave 2 Kontroll av en datapath (total vekt 2%) Figur 4 viser datapath-en for en enkel IPS prosessor, og ett bit av ALU-en er vist i figur 5. Kontrollordet i figur 6 er basert på formatet i figur 7 og beskriver hvordan datapath-en blir styrt for en ukjent instruksjon. Hensikten med denne oppgaven er å finne ut hva denne instruksjonen gjør. Signalene i kontrollordet svarer til kontrollsignaler til datapath-en (figur 4) og til ALU-en (figur 5). CarryIn brukes som mente inn på minst signifikante bit i ALU-en. Forøvrig inneholder ALU-en logikk for å generere Zero og Less. (Fortsettes på side 3.)
3 Eksamen i IN 47, 27. mai 998 Side 3 #include <regdef.h>.text.globl f f: mtc zero,$f cvt.s.w $f,$f add t,zero,zero loop: lw t,(a) mtc t,$f4 c.lt.s $f4,$f bct next mov.s $f,$f4 next: addi a,a,4 addi t,t, bne t,a,loop jr ra Figur 3: En ukjent funksjon f 2-a Operasjon (vekt 7%) Hvilken operasjon (ALUresult = A op B) blir ALU-en styrt til å utføre? Hint Hva er toer-komplement av ~x? (Tegnet ~ er C-notasjon for en maskeoperasjon.) 2-b Instruksjonen (vekt 7%) Forklar kort hva instruksjonen gjør og hva den kan brukes til. Hint Hva er formålet med XOR-porten som InvZero går inn på (i figur 4)? 2-c Generalisering av instruksjonen (vekt 6%) I figur 7 er det spesifisert at register skal brukes som det ene argumentet, men man kan tenke seg å legge en referanse til et annet register inn i RSfeltet. Hva må man i så fall passe på når man lager den verdien som skal ligge i dette registeret? Oppgave 3 Hukommelseshierarki (total vekt 2%) Figur 8 viser en liten bit med kode som kopierer mellom to områder i hukommelsen. Koden er schedulert for en IPS-prosessor med pipeline og «delayed load» og «delayed branch». Anta at: loop ligger på adresse x4233 t inneholder verdien x3 t inneholder verdien x2c t2 inneholder verdien x34 (Fortsettes på side 4.)
4 Eksamen i IN 47, 27. mai 998 Side 4 Figur 4: En datapath. shift left 2 ux ux 4 add instruction [3 26] InvZero control RegDst Jump Branch emread emtoreg ALUOp emwrite ALUSrc RegWrite shift left 2 add PC Read address instruction memory instruction [3 ] instruction [25 2] instruction [2 6] instruction [5 ] ux read register read register 2 registers write read register data 2 write data read data u x A ALU zero B ALU result address write data read data data memory ux instruction [5 ] sign extend ALU control Ainvert Binvert CarryIn instruction [5 ] Operation Figur 5: En ALU. Ainvert Binvert Operation CarryIn a Result b + 2 Less 3 CarryOut Figur 6: Kontrollord for en ukjent instruksjon. RegDst ALUSrc emtoreg RegWrite emread emwrite Branch Operation Ainvert Binvert CarryIn Jump InvZero 2 OP Figur 7: Formatet på instruksjonen. RS== RT address/immediate (Fortsettes på side 5.)
5 Eksamen i IN 47, 27. mai 998 Side 5.set noreorder Figur 8: Kode som kopierer mellom to områder. loop: lw t3,(t) # read from source addi t,t,4 # increment pointer to source sw t3,(t2) # write to destination addi t,t,- # update remaining number of words bne t,zero,loop # repeat until t == addi t2,t2, 4 # increment pointer to destination.set reorder 3-a Adressereferanser (vekt 7%) Under kjøring av programmer må maskinvaren generere adresser for både instruksjoner og data. Skriv ned sekvensen med adresser som blir generert når koden i figur 8 blir utført. 3-b Simulering av en «direct mapped» cache (vekt 7%) Anta en «direct mapped» cache på 6 ord og med 8 byte per cache-linje som i utgangspunktet er tom. Cache-en bruker en «write back»-strategi, og tar alltid vare på det refererte ved «miss» (både lesing og skriving). Videre er cache-en felles for både instruksjoner og data. Simulér bruk av adressereferansene fra oppgave 3-a mot en slik cache. Vis hvordan «hit» og «miss» fordeler seg, og hva det endelige innholdet av cache-en blir. 3-c Omgjøring av tilpassing til pipelining (vekt 6%) Som nevnt er koden i figur 8 schedulert for pipelining. Forklar hvordan dette har vært gjort, og tilbakefør koden til det den kan ha vært før den ble schedulert. Oppgave 4 Delt lager i software (total vekt 2%) an kan flytte programmer fra maskiner med cache-koherens i hardware til et cluster. Et cluster er en parallell maskin som faktisk ikke har felles hukommelse, for eksempel arbeidsstasjoner som er knyttet sammen med et nettverk. I figur 9 er det vist hvordan dette er tenkt gjort ved at koden fra figur 8 er utvidet med makroene cache_load og cache_store før henholdsvis «load»- og «store»-instruksjoner. Disse makroene vedlikeholder den programmerte cache-en i systemet. akroene cache_load og cache_store må sikre at instruksjonen som kommer rett etter kan bruke det som ligger i cache-en. Det betyr at for alle aksesser som ikke kan bruke det som er i den simulerte cache-en («miss» eller feil tilstand), må koden i makroene kommunisere med prosesser på andre maskiner i clusteret for å få tak i de rette dataene, i riktig tilstand. Denne kommunikasjonen skjer ved meldingsutveksling. Figur viser en skisse av hvordan cache_load og cache_store samvirker med andre prosesser via utveksling av meldinger. Dette samvirket er basert (Fortsettes på side 6.)
6 Eksamen i IN 47, 27. mai 998 Side 6 Figur 9: Kode fra figur 8 med utvidelser som sørger for at den programmerte cache-en har riktig tilstand før «load»- og «store»-instruksjoner..set noreorder loop: cache_load(+t) # check before load lw t3,(t) # read from source addi t,t,4 # increment pointer to source cache_store(+t2) # check before store sw t3,(t2) # write to destination addi t,t,- # update remaining number of words bne t,zero,loop # repeat until t == addi t2,t2, 4 # increment pointer to destination.set reorder Figur : Skisse av samvirket med andre prosesser via meldingsutveksling. void remote_interaction(int type, unsigned address, unsigned char old_state, unsigned char new_state) { /* send request to the responsible node */ } send(type, address, data, old_state, new_state); msg = receive(); while (msg.type!= RESPONSE) /* other message */ { serve requests from other nodes and process msg msg = receive(); } /* response received */ update cacheline and corresponding state på polling, og mens en prosess venter på å få svar på sin utestående forespørsel 2 om en cache-linje i en gitt tilstand, betjener den henvendelser fra andre prosesser som aksesserer data som den selv har lagt i cache-en. Parametrene som opptrer i figur har følgende betydninger: type har verdiene REQUEST eller RESPONSE, og skiller mellom forespørsler og svar address er adressen som den programmerte cache-en sjekker old_state er tilstanden den tilhørende cache-linjen er i new_state er den ønskede tilstanden på cache-linjen data er innholdet i den aktuelle cache-linjen Figur viser hvordan hver prosess i et slikt system setter av plass i sitt virtuelle adresserom til en cache og tilstand for cache-en. Cache-en ligger fra x8, mens tilstanden for cache-linjene ligger fra x2. En gitt type == RESPONSE 2 type == REQUEST (Fortsettes på side 7.)
7 Eksamen i IN 47, 27. mai 998 Side 7 Figur : Plassering av cache for delte data og den nødvendige tilstand i en prosess virtuelle hukommelse. xffffffff shared data x8 state table x2 x cache-linje får dermed samme virtuelle adresse hos alle deltagende prosesser. Hver cache-linje kan være i én av tre tilstander: Invalid Denne cache-linjen er ikke gyldig for denne prosessen Read Only Denne cache-linjen kan leses, og andre prosesser kan også ha gyldige kopier Read/Write Denne cache-linjen kan leses og skrives, og ingen andre prosesser har gyldige kopier 4-a Å simulere en cache (vekt 7%) Anta cache-linjer på 64 byte, at det er satt av byte for tilstand per cachelinje, og at kode tilsvarende den i figur blir brukt når det er nødvendig å kommunisere med andre prosesser. Skissér i C-kode hvordan makroen cache_store sikrer at det er «cache hit» og at cache-linjen er i tilstanden Read/Write før store-operasjonen faktisk gjennomføres. Husk å antyde hvor koden fra figur skal være. 4-b Avbrudd i stedet for polling (vekt 6%) I et system som bruker denne teknikken er mottak av meldinger basert på polling i stedet for avbrudd («interrupt»). På denne måten blir meldinger fra andre prosessers koherenssystem behandlet mens mottakeren aktivt venter på et utestående svar. Hvordan må man gå fram hvis kommunikasjonen skal være basert på avbrudd i stedet for polling, og hva er ulempene med å bruke avbrudd? (Fortsettes på side 8.)
8 Eksamen i IN 47, 27. mai 998 Side 8 4-c Prosedyrer eller makroer (vekt 7%) Ovenfor er cache_load og cache_store omtalt som makroer. I stedet kan de bli implementert som prosedyrer. Hva er forskjellen på prosedyrer og makroer, og hva blir konsekvensene for dette systemet om prosedyrer blir brukt i stedet for makroer? Oppgave 5 En lagerprosess (total vekt 2%) Figur 2: To prosesser med felles lager L - Felles lager - Som vist i figur 2 har vi to prosesser L og som kommuniserer via et felles lager med følgende struktur: typedef struct { int code; unsigned char data[2]; } comm_data; Tanken er at L skal fungere som lager for : Hvis setter verdien i code-feltet og en tekst (avsluttet med -byte) i data-feltet, skal L ta vare på en kopi av teksten. Hvis setter verdien i code-feltet, skal L kopiere den siste teksten den tok vare på, over i data-feltet så kan hente den derfra. Det skal benyttes semaforer til å synkronisere dataoverføringen. Det er viktig at prosessene er blokkert når de ikke har noe å gjøre. 5-a Implementasjon med semaforer (vekt %) Skriv koden for prosessen L samt hvilke semaforer som trengs for å styre synkroniseringen. (Det er altså ikke nødvendig å skrive koden for.) Det er ikke nødvendig å skrive kode som skal kunne kompileres; det er nok å deklarere semaforer med datatypen semaphore og bruke operasjonene up og down. Hint tekst. Legg merke til at i denne deloppgaven skal ikke L lagre mer enn én 5-b Utvidet implementasjon (vekt %) Utvid koden for L fra oppgave 5-a slik at L kan lagre de 2 siste tekstene den får fra. Bruk en ringbuffer til å lagre tekstene. Når L får i code-feltet, skal den returnere en kopi av den siste teksten; når den får 2, skal den sende tilbake den nest siste, osv.
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 #
DetaljerOppgave 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
DetaljerInnhold. 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
DetaljerOppgave 1 JK-flip-flop (Total vekt 20%)
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 147 Program- og maskinvare Eksamensdag: 12. mai 1997 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 6 sider. Vedlegg: Tillatte
DetaljerOppgave 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
DetaljerLø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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF103 Fra brukergrensesnitt til maskinvare Eksamensdag: 15. desember 2001 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.
DetaljerTema for denne forelesningen: tilpassing til pipeline. forwarding. eliminere NOP. faktisk MIPS. in 147, våren 1999 pipelining 1 9
Tema for denne forelesningen: tilpassing til pipeline forwarding eliminere NOP faktisk IPS in 147, våren 1999 pipelining 1 9 Schedulering av instruksjoner #include int kombiner( int antall, int*
DetaljerUNIVERSITETET 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
DetaljerLø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
DetaljerDagens tema. Mer MIPS maskinkode. Maske-operasjoner Skift-operasjoner Lesing og skriving Pseudo-instruksjoner Mer om funksjonskall Registeroversikt
Dagens tema Mer MIPS maskinkode (P&H: 4.4 + 3.6 + 3.3 + A.6 + A.10) Maske-operasjoner Skift-operasjoner Lesing og skriving Pseudo-instruksjoner Mer om funksjonskall Registeroversikt Ark 1 av 16 Forelesning
DetaljerDagens 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
Detaljer4/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
DetaljerInnhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse
Innhold Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer Prinsipper for synkronisering av felles hukommelse Multiprosessorer koblet sammen av én buss 02.05 2001 Parallelle
DetaljerHva 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:
DetaljerUNIVERSITETET 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
DetaljerLø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
DetaljerUNIVERSITETET 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
Detaljer4/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
DetaljerLø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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF103 Fra brukergrensesnitt til maskinvare Eksamensdag: 11. desember 2003 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.
Detaljeralternativer til felles hukommelse store parallelle datamaskiner Tema for denne forelesningen: in 147, våren 1999 parallelle datamaskiner 1 9
Tema for denne forelesningen: store parallelle datamaskiner alternativer til felles hukommelse in 147, våren 1999 parallelle datamaskiner 1 9 Store parallelle datamaskiner Felles hukommelse på én buss
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 14. juni 2012 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 10 sider. Vedlegg: Tillatte hjelpemidler: INF2270
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Onsdag 4. juni 2014 Tid for eksamen: 9:00-15:00 Oppgavesettet er på
DetaljerUNIVERSITETET 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
DetaljerLøsningsforslag til eksamen i INF2270
Løsningsforslag til eksamen i INF227 Oppgave 9 Omid Mirmotahari Oppgave 6 Dag Langmyhr. juni 24 Eksamen INF227 Sensorveiledning Oppgave 2 Kretsforenkling Hva er funksjonsuttrykket for Output gitt av A
DetaljerPensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering
Oppsummering Pensum Grovt sett er alt fra forelesningene og øvingsoppgavene pensum. Detaljert oversikt finnes på kurssidene. Hovedtanker fra kurset Litt om eksamen Hvorfor har dere lært dette? Ikke mange
Detaljerdynamiske 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
DetaljerDen siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen
Den siste dagen Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen En oppsummering Oppsummering Pensum Læreboken til og med kapittel 7, kompendiet, forelesningene
DetaljerINF3430/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
DetaljerUNIVERSITETET 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
DetaljerPensumoversikt - 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
DetaljerDagens 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:
DetaljerOppsummering 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
DetaljerDagens 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
DetaljerINF3430/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
DetaljerSeksjon 1. INF2270-V16 Forside. Eksamen INF2270. Dato 1. juni 2016 Tid Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt.
Seksjon 1 INF2270-V16 Forside Eksamen INF2270 Dato 1. juni 2016 Tid 14.30-18.30 Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt. Dette oppgavesettet består av 14 oppgaver som kan løses
Detaljerytelsen 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
DetaljerUNIVERSITETET 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.
DetaljerDagems 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
DetaljerINF3430. 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
Detaljerhvor 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
DetaljerGenerell informasjon
Introduksjon Oppgave Tittel Oppgavetype Generell informasjon Dokument 1.1 Kompendiet Langsvar Arkitektur Oppgave Tittel Oppgavetype 2.1 Pipeline Flervalg (flere svar) 2.2 Boolsk Algebra Flervalg (flere
DetaljerOppgave 8.1 fra COD2e
Oppgave 8.1 fra COD2e To systemer brukes for transaksjonsprosessering: A kan utføre 1000 I/O operasjoner pr. sekund B kan utføre 750 I/O operasjoner pr. sekund Begge har samme prosessor som kan utføre
DetaljerDagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM)
Dagems temaer! ra kapittel 4 i Computer Organisation and Architecture! Kort om hurtigminne (RAM)! Organisering av CPU: von Neuman-modellen! Register Transfer Language (RTL)! Instruksjonseksekvering! Pipelining
DetaljerIN1020. 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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1060 Introduksjon til operativsystemer og datakommunikasjon Eksamensdag: 8. desember 2004 Tid for eksamen: 14.30 17.30 Oppgavesettet
DetaljerKap. 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?)
DetaljerIntel 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
DetaljerEn oppsummering (og litt som står igjen)
En oppsummering (og litt som står igjen) Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen En oppsummering Oppsummering Pensum læreboken til og med kapittel 7 forelesningene de
DetaljerITPE/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
DetaljerOPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?
OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.
DetaljerSIE 4005, 9/10 (4. Forelesn.)
SIE 4005, 9/10 (4. Forelesn.) Tredje forelesning: 8.1 The control unit 8.2 Algorithmic state machines 8.3 Design example: Binary multiplier 8.4 Hardwired Control Fjerde forelesning: litt repetisjon 8.4
DetaljerOverordnet maskinarkitektur. Maskinarkitektur zoomet inn. I CPU: Kontrollenheten (CU) IT1101 Informatikk basisfag, dobbeltime 11/9
IT1101 Informatikk basisfag, dobbeltime 11/9 Hittil: sett på representasjon av informasjon og manipulering av bits i kretser Idag: hever oss til nivået over og ser på hvordan program kjører i maskinen
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1060 Introduksjon til operativsystemer og datakommunikasjon Eksamensdag: 9. desember 2005 Tid for eksamen: 14.30 17.30 Oppgavesettet
DetaljerUNIVERSITETET 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! Sentrale begreper er adresserbarhet og adresserom. ! Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon
agems temaer Oppbygging av RAM! ra kapittel i Computer Organisation and Architecture! Kort om hurtigminne (RAM)! Organisering av CPU: von Neuman-modellen! Register Transfer Language (RTL)! Instruksjonseksekvering!
DetaljerDagens tema. Mer om C Enkle datatyper Sammensatte datatyper: Vektorer og matriser Tekster Mengder Strukturer Unioner Ringbuffere
Dagens tema Mer om C Enkle datatyper Sammensatte datatyper: Vektorer og matriser Tekster Mengder Strukturer Unioner Ringbuffere Formål: Nyttige å bruke under programmeringen Trening i programmering i C
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 5. juni 2013 Tid for eksamen : 14.30-18.30 Oppgavesettet er på : Vedlegg :
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 2. juni 2010 Tid for eksamen : 14.30-17.30 Oppgavesettet er på : 5 sider (pluss
DetaljerEksamensoppgave i TDT4258 Energieffektive datamaskinsystemer
Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer Faglig kontakt under eksamen: Asbjørn Djupdal Tlf.: 909 39452 Eksamensdato: 29. mai 2013
DetaljerINF3430/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
DetaljerProgrammeringsspråket C Del 2
Programmeringsspråket C Del 2 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no 30.08.2005 inf1060 H05 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. 30.08.2005
DetaljerAVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl. 09.00 13.00
Side 1 av 11 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE EKSAMEN
DetaljerEKSAMENSOPPGAVE, 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
DetaljerINF2270. Datamaskin Arkitektur
INF2270 Datamaskin Arkitektur Hovedpunkter Von Neumann Arkitektur ALU Minne SRAM DRAM RAM Terminologi RAM Signaler Register Register overføringsspråk Von Neumann Arkitektur John von Neumann publiserte
DetaljerHvordan en prosessor arbeider, del 1
Hvordan en prosessor arbeider, del 1 Læringsmål Kompilator, interpret og maskinkode CPU, registre Enkle instruksjoner: de fire regnearter Mer informasjon om temaet Internett Lokalnett (LAN) Mitt program
DetaljerAB 0 CD + ABC 0 D 0 + ABC 0 D + ABCD 0 + ABCD + AB 0 CD 0
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 15. desember 1993 Tidforeksamen: Oppgavesettet erpå5sider. Vedlegg: Tillatte hjelpemidler: IN240DigitalSystemkonstruksjon
DetaljerDel 1 En oversikt over C-programmering
Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av
DetaljerTDT4258 Eksamen vår 2013
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 8 TDT4258 Eksamen vår 2013 Løsningsforslag Oppgave 1 Flervalgsoppgave (16 poeng) Du får 2 poeng
DetaljerEKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen
Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 20.02.2017 Klokkeslett: 09:00 13:00 INF-1100 Innføring i programmering og datamaskiners virkemåte Sted: Teorifagbygget, Hus 3,
DetaljerDagens tema. Flere teknikker for å øke hastigheten
Dagens tema Flere teknikker for å øke hastigheten Cache-hukommelse del 1 (fra kapittel 6.5 i Computer Organisation and Architecture ) Hvorfor cache Grunnleggende virkemåte Direkte-avbildet cache Cache-arkitekturer
DetaljerKapittel 1 En oversikt over C-språket
Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 Eksamensdag : Tirsdag 5. juni 2007 Tid for eksamen : 14.30-17.30 Oppgavesettet er på : 6 sider (pluss vedlegg) Vedlegg
DetaljerSIE 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
DetaljerOversikt. 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
DetaljerHjemmeeksamen 2 i INF3110/4110
Hjemmeeksamen 2 i INF3110/4110 Innleveringsfrist: onsdag 19. november kl. 1400 Innlevering Besvarelsen av oppgave 2,3,4 og 5 skal leveres skriftlig på papir i IFI-ekspedisjonen. Merk denne med navn, kurskode,
DetaljerRepetisjon: Statiske språk uten rekursive metoder (C1 og C2) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)
Dagens tema Kjøresystemer (Ghezzi&Jazayeri.6,.7) Repetisjon Språk med rekursjon (C3) og blokker (C4) Statisk link Dynamisk allokering (C5) Parameteroverføring 1/5 Repetisjon: Statiske språk uten rekursive
DetaljerIN 147 Program og maskinvare
Dagens tema Basistyper i C Typekonvertering Formater i printf Pekere i C En kort repetisjon om pekere Hva er egentlig en peker? Pekere til alt og ingenting Pekere som parametre Pekere og vektorer Ark 1
DetaljerProgrammeringsspråket C Del 2
Programmeringsspråket C Del 2 Michael Welzl E-mail: michawe@ifi.uio.no 8/25/10 inf1060 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. 8/25/10 inf1060
DetaljerDagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)
Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Repetisjon Språk med rekursjon (C3) og blokker (C4) Statisk link Dynamisk allokering (C5) Parameteroverføring 1/25 Forelesning 11 5.11.2003 Repetisjon:
DetaljerIN1020. Minnehierarki
IN1020 Minnehierarki Hovedpunkter Bakgrunn Kort repetisjon Motivasjon Teknikker for hastighetsøkning Multiprosessor Økt klokkehastighet Raskere disker Økt hurtigminne Bruksområder Lagringskapasitet Aksesstider
DetaljerProgrammeringsspråket C Del 2
Et eksempel Programmeringsspråket C Del 2 Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no inf1060 1 inf1060 2 Forklaring:
Detaljer! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:
Dagens temaer! Ulike kategorier input/output! Programmert! Avbruddstyrt! med polling.! Direct Memory Access (DMA)! Asynkrone vs synkrone busser! Med! Fordi! -enheter menes de enheter og mekanismer som
DetaljerDagens tema: Datastrukturer
Dagens tema: Datastrukturer Matriser Dynamiske matriser Ringbuffere Mengder Lister Enkle listeoperasjoner Programmering av en listepakke Lister med hode og hale Toveislister Onsdag 24.3 Avslutning av IN147A
DetaljerEKSAMEN I TDT4160 DATAMASKINER GRUNNKURS
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 12 Faglig kontakt under eksamen: Magnus Jahre (952 22 309) EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS
DetaljerInput/Output. når tema pensum. 13/4 busser, sammenkobling av maskiner /4 PIO, DMA, avbrudd/polling
Input/Output når tema pensum 13/4 busser, sammenkobling av maskiner 8.2 8.4 20/4 PIO, DMA, avbrudd/polling 8.5 8.6 in 147, våren 1999 Input/Output 1 Tema for denne forelesningen: sammenkobling inne i datamaskiner
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 Eksamensdag : Tirsdag 6. juni 2006 Tid for eksamen : 09.00-12.00 Oppgavesettet er på : 5 sider Vedlegg : Intet Tillatte
DetaljerMed Svarforslag UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet. 3 sider (side 6, 7 og 8, rives ut, fylles ut og leveres)
Eksamen i : Med Svarforslag UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 3. juni 2009 Tid for eksamen : 14.30-17.30 Oppgavesettet er
DetaljerTDT 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
DetaljerINF5110 Obligatorisk Oppgave 2 del 2. Andreas Svendsen SINTEF. 23. April Oversikt
INF5110 Obligatorisk Oppgave 2 del 2 Andreas Svendsen SINTEF 23. April 2009 Oversikt Tilbakeblikk på oppgaven Eksempel på sjekk av semantikk Eksempel på kodegenerering Nødvendige instruksjoner for IF-noden
DetaljerCache (repetisjon) Cache (repetisjon) Cache (repetisjon) Dagens temaer. CPU Cache RAM. om cache-hukommelse (kapittel 6.5 i Computer Organisation
Dagens temaer Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) bruksområder og oppbygging ROM bruksområder og oppbygging Hukommelsesbusser Typer, Typer, Cache (repetisjon)
DetaljerDagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache
Dagens temaer Dagens emner er hentet fra Englander kapittel side 338-35 (gammel utgave). Mer om design av cache. Kort repetisjon er en spesiell type rask hukommelse som inneholder et subsett av det som
DetaljerDagens 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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 og IN 110 Algoritmer og datastrukturer Eksamensdag: 14. mai 1996 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.
DetaljerEksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer
Institutt for Datateknikk og Informasjonsvitenskap Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer Faglig kontakt under eksamen: Magnus Jahre Tlf.: 952 22 309 Eksamensdato: 19. Mai 2014 Eksamenstid
DetaljerTDT4160 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
DetaljerIN 147 Program og maskinvare
Dagens tema Mer om C Cs preprosessor Allokering av variable Separat kompilering Programmet make Pekere i C Operasjoner på pekere Pekere og vektorer Referanseparametre Pekere til «alt» og «ingenting» Dynamisk
Detaljer