Oefeningenlessen Geavanceerde Computerarchitectuur

Maat: px
Weergave met pagina beginnen:

Download "Oefeningenlessen Geavanceerde Computerarchitectuur"

Transcriptie

1 Oefeningenlessen Geavanceerde Computerarchitectuur Lieven Eeckhout Academiejaar

2 Hybride tournament sprongvoorspeller Beschouw een hybride tournament sprongvoorspeller bestaande uit een bimodale voorspeller (2 elementen PHT0 and PHT1 met elk een 2-bit saturerende teller) een gshare voorspeller (2 elementen met elk een 2-bit saturerende teller en 1-bit BHR) een metavoorspeller (2 elementen). De metavoorspeller wordt geïndexeerd zoals een bimodale voorspeller. De metavoorspeller kiest voor de bimodale voorspeller indien de saturerende 2-bit teller strikt kleiner is dan 2 en kiest voor de gshare voorspeller indien de waarde van de saturerende 2-bit teller groter dan of gelijk is aan 2. Vul de onderstaande tabel in. Merk op dat de instructies hier 4 bytes lang zijn (RISC ISA); m.a.w. de twee minst significante bits van een instructieadres zijn altijd nul en worden dus niet gebruikt bij de indexering van de sprongvoorspeller. toestand voorspeller NA uitvoering sprong sprong -adres 0x654 0x780 0x654 0x780 0x654 0x780 sprongrichting N T T T T N voorspelling metavoorspeller bimodale Gshare bimodale gshare hybride PHT0 PHT1 PHT0 PHT1 BHR PHT0 PHT

3 Gshare versus hybride voorspeller Beschouw twee sprongvoorspellers. Voorspeller A is een gshare voorspeller die 9 adresbits en 7 bits globale geschiedenis combineert om een PHT te indexeren. Voorspeller B is een hybride voorspeller bestaande uit een metavoorspeller, een globale voorspeller en een lokale voorspeller. De metavoorspeller is een bimodale voorspeller die een PHT indexeert op basis van 5 adresbits. De lokale voorspeller is van het PAg-type en gebruikt 4 adresbits om de lokale-geschiedenistabel te indexeren; de 8-bit lange lokale geschiedenis wordt gebruikt om een PHT te indexeren bestaande uit 3-bit saturerende tellers. De globale voorspeller is van het type GAp en gebruikt 6 globale geschiedenisbits en 2 adresbits voor de indexering in de PHT. Veronderstel 2-bit saturerende tellers in alle PHT-tabellen. Teken de organisatie van beide voorspellers (met duidelijke vermelding hoe indexeringsbits berekend worden) en bereken de hardwarekost (in aantal bits) voor beide voorspellers. U mag veronderstellen dat de sprongvoorspeller bedoeld is voor een RISC ISA waarbij de codering van een instructie 4 bytes lang is. Teken voorspeller A: Teken voorspeller B: Hardwarekost (in aantal bits) voor voorspeller A: Hardwarekost (in aantal bits) voor voorspeller B: 3

4 GAg sprongvoorspeller (a) Beschouw een GAg sprongvoorspeller. Het aantal geschiedenisbits bedraagt drie. Geef de inhoud van de sprongvoorspellingstabel na (voldoend lange) uitvoering van de volgende sequentie sprongrichtingen TTTNNTTTNNTTTNN... waarbij T staat voor genomen (taken) en N staat voor niet-genomen (not-taken). Veronderstel 2-bit saturerende tellers in de PHT. (b) Beschouw nu een GAg sprongvoorspeller met twee geschiedenisbits. En beschouw opnieuw de sequentie sprongrichtingen TTTNNTTTNNTTTNN... Wat zal de voorspellingsnauwkeurigheid zijn van deze sprongvoorspeller na verloop van tijd (na de initiële overgangsfase) indien alle 2-bit saturerende tellers in de PHT initieel op 1 staan? 4

5 (c) Beschouw de volgende controleverloopgraaf: sprong (a) T N sprong (b) sprong (c) T N T N sprong (d) N De dikke kromme lijn geeft aan hoe deze controleverloopgraaf doorlopen wordt tijdens de uitvoering van het programma. Beschrijf het spronggedrag voor de vier conditionele sprongen (aangeduid in het grijs in de bovenstaande figuur): gebruik T voor genomen en N voor nietgenomen. Spronggedrag van sprong (a) Spronggedrag van sprong (b) Spronggedrag van sprong (c) Spronggedrag van sprong (d) T Hoeveel geschiedenisbits heeft een PAg voorspeller nodig opdat deze voorspeller het gedrag van deze vier sprongen perfect kan voorspellen (0% miss rate)? (Veronderstel dat er geen verwarring of aliasing optreedt op het eerste niveau van de PAg sprongvoorspeller.) 5

6 In-order superscalaire microarchitectuur Beschouw het volgende stukje code: add r1,r2,r3 ld $4(A),r4 mul r3,r4,r2 add r1,r4,r2 sub r2,r1,r5 ld $8(A),r4 add r1,r4,r3 add r2,r4,r5 add r3,r2,r5 In deze (fictieve) ISA wordt het doeloperand van een instructie uiterst rechts genoteerd; m.a.w. add r1,r2,r3 betekent dat de inhouden van registers r1 en r2 opgeteld worden en dat het resultaat in register r3 terecht komt. Veronderstel nu een in-order superscalaire architectuur en veronderstel dat alle instructies uit de bovenstaande codesequentie opgehaald werden in dezelfde cyclus uit het instructiecachegeheugen. Duid aan in de onderstaande tabel welke instructie zich in welke pijplijntrap bevindt. Veronderstel hierbij de eenvoudige pijplijnstructuur zoals aangegeven in de les: IF ID OF EX WB. De uitvoering van een leesoperatie duurt 3 cycli (MEM1 MEM2 MEM3) en de data is pas beschikbaar na MEM3. De uitvoering van een vermenigvuldiging duurt vier cycli (EX1 EX2 EX3 EX4). De uitvoering van alle andere operaties duurt 1 cyclus. Veronderstel verder dat er voldoende functionele eenheden zijn van elk type, maar dat er slechts één schrijfpoort is naar het registerbestand. Verder ondersteunt de microarchitectuur out-oforder completion. Instructies die blokkeren t.g.v. afhankelijkheden, structurele hazards, etc. blokkeren in de ID trap. Duid ook aan wanneer forwarding gebruikt wordt dit kan je doen d.m.v. een pijl tussen de producent en de consument van een registerwaarde. 6

7 add r1,r2,r3 ld $4(A),r4 mul r3,r4,r2 add r1,r4,r2 sub r2,r1,r5 ld $8(A),r4 add r1,r4,r3 add r2,r4,r5 add r3,r2,r5 7

8 Data-afhankelijkheden Beschouw het volgende stukje code: add r1,r2,r3 ldi $256,r4 mul r3,r4,r2 sub r2,r1,r5 ld $8(A),r4 add r1,r4,r3 ld $24(A),r4 mul r4,r3,r5 In deze (fictieve) ISA wordt het doeloperand van een instructie uiterst rechts genoteerd; m.a.w. add r1,r2,r3 betekent dat de inhouden van registers r1 en r2 opgeteld worden en dat het resultaat in register r3 terecht komt. De instructie ldi (load immediate) betekent dat een constante waarde opgeladen wordt in een doelregister. (a) Geef alle echte data-afhankelijkheden aan op dit stukje code. Doe dit m.b.v. pijlen. add r1,r2,r3 ldi $256,r4 mul r3,r4,r2 sub r2,r1,r5 ld $8(A),r4 add r1,r4,r3 ld $24(A),r4 mul r4,r3,r5 8

9 (b) Geef alle anti-afhankelijkheden aan op dit stukje code. Doe dit m.b.v. pijlen. add r1,r2,r3 ldi $256,r4 mul r3,r4,r2 sub r2,r1,r5 ld $8(A),r4 add r1,r4,r3 ld $24(A),r4 mul r4,r3,r5 (c) Geef alle outputafhankelijkheden aan op dit stukje code. Doe dit m.b.v. pijlen. add r1,r2,r3 ldi $256,r4 mul r3,r4,r2 sub r2,r1,r5 ld $8(A),r4 add r1,r4,r3 ld $24(A),r4 mul r4,r3,r5 (d) Pas registerhernoeming toe op dit stukje code. Veronderstel hierbij dat er voldoende fysische registers beschikbaar zijn. 9

10 (e) Stel dat de uitvoering van een leesoperatie 2 cycli duurt; een optelling, aftrekking en loadimmediate 1 cyclus; en een vermenigvuldiging 4 cycli. Bepaal met behulp van de dataverloopgraaf het minimaal aantal uitvoeringscycli. (f) Stel nu dat de eerste leesoperatie (ld $8(A),r4) een cache miss veroorzaakt in de L1 D- cache, maar een hit in de L2 cache. De toegangstijd tot de L2 cache bedraagt 10 cycli. Hoelang duurt de uitvoering dan? Aantal cycli: 10

11 (g) Stel nu opnieuw dat de eerste leesoperatie een cache hit is. Veronderstel verder dat een optelling, aftrekking en load-immediate instructie op een functionele eenheid van type A uitgevoerd kunnen worden; dat een vermenigvuldiging op een functionele eenheid van type B uitgevoerd kan worden; en dat een leesoperatie op een functionele eenheid van type C uitgevoerd wordt. Alle functionele eenheden zijn volledig gepijplijnd. Bepaal het minimaal aantal functionele eenheden van elk type zodat de totale uitvoeringstijd van dit stukje code niet toeneemt, en dus niet groter wordt dan wat je in (e) bekomen hebt. En geef aan hoe de uitvoering er dan uitziet. Cyclus 1 Cyclus 2 Cyclus 3 Cyclus 4 Cyclus 5 Cyclus 6 Cyclus 7 Cyclus 8 Cyclus 9 Cyclus 10 Hoeveel functionele eenheden zijn er nodig van type A? eenheid/eenheden Hoeveel functionele eenheden zijn er nodig van type B? eenheid/eenheden Hoeveel functionele eenheden zijn er nodig van type C? eenheid/eenheden 11

12 Registerhernoeming Veronderstel een superscalaire out-of-order architectuur met breedte 2, m.a.w. er kunnen twee instructies per klokcyclus opgehaald worden en twee instructies per klokcyclus hernoemd worden. Beschouw nu het volgende stukje programmacode: R0 ld [A] R2 ld [B] R2 R0*R2 R4 ld [C] R4 R2+R4 R2 ld [D] R2 R0*R2 R4 ld [E] R4 R2+R4 Veronderstel verder dat registerhernoeming gebeurt m.b.v. één fysiek registerbestand dat bestaat uit 7 fysieke registers. Vul nu in de onderstaande tabellen in hoe de registerhernoeming gebeurt cyclus per cyclus; m.a.w. vul de toestand in van de afbeeldingstabel alsook het fysiek registerbestand tijdens het hernoemingsproces. Veronderstel ten slotte nog dat de eerste twee instructies het reorder buffer verlaten in cyclus 3; en dat de volgende twee instructies het reorder buffer verlaten in cyclus 4; etc. Cyclus 0: R0 ld [A] R0 : F0 F0 (R0) : AR R2 ld [B] R2 : F1 F1 (R2) : AR R2 R0*R2 R4 : F2 F2 (R4) : AR R4 ld [C] F3 (--) : BS R4 R2+R4 F4 (--) : BS R2 ld [D] F5 (--) : BS R2 R0*R2 F6 (--) : BS R4 ld [E] R4 R2+R4 Cyclus 1: R0 ld [A] R0 : F0 ( ) : R2 ld [B] R2 : F1 ( ) : R2 R0*R2 R4 : F2 ( ) : R4 ld [C] F3 ( ) : R4 R2+R4 F4 ( ) : R2 ld [D] F5 ( ) : R2 R0*R2 F6 ( ) : R4 ld [E] R4 R2+R4 12

13 Cyclus 2: R0 ld [A] R0 : F0 ( ) : R2 ld [B] R2 : F1 ( ) : R2 R0*R2 R4 : F2 ( ) : R4 ld [C] F3 ( ) : R4 R2+R4 F4 ( ) : R2 ld [D] F5 ( ) : R2 R0*R2 F6 ( ) : R4 ld [E] R4 R2+R4 Cyclus 3: R0 ld [A] R0 : F0 ( ) : R2 ld [B] R2 : F1 ( ) : R2 R0*R2 R4 : F2 ( ) : R4 ld [C] F3 ( ) : R4 R2+R4 F4 ( ) : R2 ld [D] F5 ( ) : R2 R0*R2 F6 ( ) : R4 ld [E] R4 R2+R4 Cyclus 4: R0 ld [A] R0 : F0 ( ) : R2 ld [B] R2 : F1 ( ) : R2 R0*R2 R4 : F2 ( ) : R4 ld [C] F3 ( ) : R4 R2+R4 F4 ( ) : R2 ld [D] F5 ( ) : R2 R0*R2 F6 ( ) : R4 ld [E] R4 R2+R4 13

14 Cyclus 5: R0 ld [A] R0 : F0 ( ) : R2 ld [B] R2 : F1 ( ) : R2 R0*R2 R4 : F2 ( ) : R4 ld [C] F3 ( ) : R4 R2+R4 F4 ( ) : R2 ld [D] F5 ( ) : R2 R0*R2 F6 ( ) : R4 ld [E] R4 R2+R4 Cyclus 6: R0 ld [A] R0 : F0 ( ) : R2 ld [B] R2 : F1 ( ) : R2 R0*R2 R4 : F2 ( ) : R4 ld [C] F3 ( ) : R4 R2+R4 F4 ( ) : R2 ld [D] F5 ( ) : R2 R0*R2 F6 ( ) : R4 ld [E] R4 R2+R4 14

15 Out-of-order scheduling Beschouw een out-of-order architectuur die in staat is vier instructies per klokcyclus in een gecentraliseerd reservatiestation te plaatsen (dispatch width = 4). Beschouw de onderstaande (data non-captured) gepijplijnde organisatie. gecentraliseerd reservatiestation wake-up en selectie registerbestand lezen vermenigvuldigingsleeseenheid opteleenheid opteleenheid eenheid Deze microarchitectuur bestaat uit een gecentraliseerd reservatiestation. Om instructies uit te voeren op een functionele eenheid, gaat men als volgt te werk. In de eerste cyclus moeten instructies geselecteerd worden om uitgevoerd te worden (wake-up en selectie) maximaal vier per cyclus. In de daaropvolgende cyclus wordt het registerbestand gelezen de input operandi voor de instructies worden gelezen. In de derde cyclus worden de instructies dan uiteindelijk op een functionele eenheid uitgevoerd. De uitvoering van een leesoperatie duurt twee cycli maar is gepijplijnd (veronderstel steeds een cache hit). De uitvoering van een optelling duurt slechts één cyclus. De uitvoering van een vermenigvuldiging duurt vier cycli en is gepijplijnd. We veronderstellen verder dat alle noodzakelijke forwarding (incl. de distributie van tags van doeloperandi ten behoeve van wake-up) aanwezig is in de hardware opdat instructies die afhankelijk zijn van elkaar via echte data-afhankelijkheden in opeenvolgende cycli uitgevoerd kunnen worden. Beschouw het volgende stukje code: add r1,r2,r1 ld r8(a),r3 add r3,r1,r4 mul r3,r5,r3 add r4,r3,r1 sub r8,$8,r8 add r1,r2,r1 ld r8(a),r3 add r3,r1,r4 mul r3,r5,r3 15

16 Vul nu de onderstaande tabellen in die aangeven welke instructie zich in welke cyclus op welke plaats bevindt. Veronderstel dat er voldoende fysische registers beschikbaar zijn. De registernamen die U vermeldt in deze tabellen zijn fysische registers, geen architecturale registers. Cyclus 1: gecentraliseerd reservatiestation wake-up en selectie registerbestand lezen vermenigvuldigingsleeseenheid opteleenheid opteleenheid eenheid Cyclus 2: gecentraliseerd reservatiestation wake-up en selectie registerbestand lezen vermenigvuldigingsleeseenheid opteleenheid opteleenheid eenheid 16

17 Cyclus 3: gecentraliseerd reservatiestation wake-up en selectie registerbestand lezen vermenigvuldigingsleeseenheid opteleenheid opteleenheid eenheid Cyclus 4: gecentraliseerd reservatiestation wake-up en selectie registerbestand lezen vermenigvuldigingsleeseenheid opteleenheid opteleenheid eenheid 17

18 Cyclus 5: gecentraliseerd reservatiestation wake-up en selectie registerbestand lezen vermenigvuldigingsleeseenheid opteleenheid opteleenheid eenheid Cyclus 6: gecentraliseerd reservatiestation wake-up en selectie registerbestand lezen vermenigvuldigingsleeseenheid opteleenheid opteleenheid eenheid 18

19 Cyclus 7: gecentraliseerd reservatiestation wake-up en selectie registerbestand lezen vermenigvuldigingsleeseenheid opteleenheid opteleenheid eenheid Cyclus 8: gecentraliseerd reservatiestation wake-up en selectie registerbestand lezen vermenigvuldigingsleeseenheid opteleenheid opteleenheid eenheid 19

20 Cyclus 9: gecentraliseerd reservatiestation wake-up en selectie registerbestand lezen vermenigvuldigingsleeseenheid opteleenheid opteleenheid eenheid Cyclus 10: gecentraliseerd reservatiestation wake-up en selectie registerbestand lezen vermenigvuldigingsleeseenheid opteleenheid opteleenheid eenheid 20

21 Cyclus 11: gecentraliseerd reservatiestation wake-up en selectie registerbestand lezen vermenigvuldigingsleeseenheid opteleenheid opteleenheid eenheid Cyclus 12: gecentraliseerd reservatiestation wake-up en selectie registerbestand lezen vermenigvuldigingsleeseenheid opteleenheid opteleenheid eenheid 21

22 Prefetching Beschouw een datacache met een blokgrootte van 16 bytes. De bus die de datacache verbindt met het geheugen is 8 bytes breed, m.a.w. per klokcyclus kunnen 8 bytes getransfereerd worden tussen de datacache en het hoofdgeheugen. Veronderstel verder dat de toegangstijd tot het hoofdgeheugen 5 cycli duurt; dit is de tijd tussen het aanvragen van het betreffende datacacheblok en verschijnen van het eerste woord op de bus. M.a.w. het ophalen van een volledig datacacheblok uit het hoofdgeheugen duurt 7 cycli. De datacache heeft één lees/schrijfpoort. Veronderstel verder een in-order processor met een breedte van 1. Het uitvoeren van iedere instructie duurt één cyclus. Veronderstel een blokkerende cache, m.a.w., wanneer een cache miss optreedt kan geen nieuwe geheugenoperatie uitgevoerd worden. Beschouw het volgende stukje code voor een 64-bit architectuur (veronderstel dat de inhoud van r3 en r4 initieel nul is): li r2,1000 ; schrijf de immediate waarde 1000 in r2 loop: ldai r5,a(r3) ; load and increment pointer in r3 ; lees in array A ldai r6,b(r4) ; lees in array B add r7,r7,r5 add r7,r7,r6 bdnz r2,loop ; decrement r2, branch if not zero (Merk op dat de ldai instructie de pointer vermeerdert met de waarde 8.) (a) Geef nu het tijdsverloop aan in de onderstaande tabel. Duid een datacachemiss aan met m ; de transfer met t en de verschillende instructies uit de lus als A, B, +, + en br. Cyclus Array A Array B Instr Cyclus Array A Array B Instr Cyclus Array A Array B Instr 22

23 (b) Veronderstel nu dat ook meerdere cachemisses (multiple outstanding misses) terzelfdertijd afgehandeld kunnen worden; we veronderstellen nu dus een niet-blokkerende cache. Hoe ziet het tijdsverloop er dan uit? We veronderstellen een zogenaamde split-transaction bus die tags toekent aan bustransacties. Om die manier kunnen meerdere bustransacties parallel afgehandeld worden. Cyclus Array A Array B Instr Cyclus Array A Array B Instr Cyclus Array A Array B Instr (c) Veronderstel nu dat ook prefetching geïmplementeerd wordt. M.a.w. we veronderstellen nu een stream buffer die het volgende cacheblok gaat ophalen wanneer een cachemiss is opgetreden. Een gewone leesoperatie krijgt uiteraard voorrang op een prefetchactie. Vul opnieuw het onderstaand tijdsverloop in. Cyclus Array A Array B Instr Cyclus Array A Array B Instr Cyclus Array A Array B Instr 23

24 Victim cache Beschouw een direct-mapped cache met 4 sets en een volledig associatieve victim cache met 2 elementen. De blokgrootte in zowel de direct-mapped cache als de victim cache is 16 bytes. Het vervangingsalgoritme in de victim cache is LRU. Het geheugen is byte-adresseerbaar. Vul de onderstaande tabel in. U duidt een hit aan indien er een hit optreedt in de direct-mapped cache of de victim cache; een miss betekent een miss in de direct-mapped cache en de victim cache. De elementen aangeduid in de overige kolommen stellen adressen voor. Bij de victim cache wordt het minst recent gebruikte cacheblok aangeduid door het LRU label. Direct-mapped cache Victim cache Adres Hit/miss Set 0 Set 1 Set 2 Set 3 Set 0 Set FF0 1F0 210/LRU 080 0A B0 0E

25 Load forwarding en bypassing Beschouw een out-of-order architectuur die load forwarding en load bypassing implementeert. Gegeven een reeks instructies met het tijdstip waarop de betreffende instructie het reservatiestation betreedt (dispatch). Veronderstel dat een instructie die het reservatiestation betreedt meteen uitgevoerd kan worden, m.a.w. de operandi zijn meteen beschikbaar. En voor iedere schrijfoperatie wordt ook meegegeven wanneer de schrijfoperatie de store queue ten vroegste kan verlaten (completion). Veronderstel verder dat er slechts één poort is tot de cache, dat alle cachetoegangen cache hits zijn en dat de uitvoering van een lees- en schrijfoperatie 2 cycli duurt: 1 cyclus voor de adresberekening (EA) en 1 cyclus voor de cachetoegang. De architectuur wordt hieronder afgebeeld: Load RS Store RS EA EA Store queue adres data Beschouw de volgende reeks instructies: Vul de onderstaande tabel in: dispatch instructie completion 1 Load A 1 Load B 1 Store C 6 Cyclus Load RS Store RS Load EA Store EA Store queue Cachetoegang

26 Beschouw nu de volgende sequentie: Vul de onderstaande tabel in: dispatch instructie completion 1 Store A 6 2 Load B 3 Load A 4 Store D 10 4 Load E 4 Load A 5 Load D Cyclus Load RS Store RS Load EA Store EA Store queue Cachetoegang

27 Cache misses Beschouw de volgende twee implementaties van een algoritme dat de som berekent over alle elementen van een array. Implementatie 1: for (i=0; i<m*n; i++) { sum += a[i]; } Implementatie 2: for (i=0; i<m; i++) { for (j=0; j<n; j++) { sum += a[m*j+i]; } } Veronderstel dat de array a[] een array is van m n 32-bit integer waarden. De variabele m werd zodanig gekozen dat er precies m elementen van de array a[] in één enkel cacheblok opgeslagen worden, of m.a.w. de grootte van een cacheblok bedraagt 4 m bytes. (a) Duid het toegangspatroon aan voor beide implementaties voor een array bestaande uit 16 elementen en een cacheblokgrootte van 16 bytes. Duid het element dat eerst gerefereerd wordt aan met een 1, het tweede element met een 2, enz. Duid door middel van een cirkel aan welke geheugenreferenties tot een cache miss zullen leiden. Implementatie 1: Implementatie 2: (b) Is er een mogelijks verschil in uitvoeringssnelheid van beide implementaties op een out-oforder microprocessor met niet-blokkerende caches? Leg uit. 27

28 Intervalanalyse Beschouw een superscalaire out-of-order architectuur met een niet-blokkerende geheugenhiërarchie. Een leesoperatie komt het reorder buffer van een superscalaire out-of-order microarchitectuur binnen op tijdstip t 0. Op tijdstip t 10 komt een foutief voorspelde sprong het reorder buffer binnen; er bestaat geen afhankelijkheid tussen de leesoperatie en de sprong. De leesoperatie die op tijdstip t 0 het reorder buffer binnenkwam, veroorzaakt een L2 cache miss op tijdstip t 5. Tengevolge van die L2 cache miss, blokkeert de leesoperatie het reorder buffer; dit betekent dat geen nieuwe instructies het reorder buffer kunnen betreden. Veronderstel dat de kost tgv. een foutief voorspelde sprong 10 cycli bedraagt, en dat de toegangstijd tot het hoofdgeheugen 200 processorcycli bedraagt. Wat is volgens U correct? (a) De kost tengevolge van de foutief voorspelde sprong serialiseert met de kost van de L2 cache miss; m.a.w. de kost van de foutief voorspelde sprong en de kost van de L2 cache miss kunnen opgeteld worden om tot de finale kost te komen. (b) De kost tengevolge van de foutief voorspelde sprong wordt verborgen onder L2 cache miss. (c) De kost van de L2 cache miss rate wordt verborgen onder de kost van de foutief voorspelde sprong. Beredeneer Uw antwoord mbv. intervalanalyse. 28

29 VLIW scheduling (a) Beschouw de volgende lus: loop: ld A(R1) -> R2 ld B(R1) -> R3 mul R2,R3 -> R4 add R4,R20 -> R20 sub R1,#4 -> R1 brnz R1,loop Plaats (of schedule) deze lus in VLIW-woorden met maximaal 3 operaties per instructie. Veronderstel dat de uitvoering van alle niet-geheugenoperaties 1 cyclus duurt en dat een geheugenoperatie 2 cycli duurt. Veronderstel verder dat er geen beperkingen zijn m.b.t. het plaatsen van operaties in instructieslots, m.a.w. in ieder slot kan om het even welke operatie geplaatst worden. Loop: 29

30 (b) Ontvouw deze lus nu vier keer en plaats de ontvouwde lus opnieuw voor diezelfde VLIW architectuur. Veronderstel dat het aantal keer dat de lus geïtereerd wordt altijd een veelvoud is van vier. Optimaliseer de code indien mogelijk. Veronderstel dat er volgende architecturale registers beschikbaar zijn. Loop: Wat is de snelheidswinst of speedup die bekomen wordt per lusiteratie tov. de oorspronkelijk lus? Speedup wordt gedefinieerd als de uitvoeringstijd van het oorspronkelijk versie gedeeld door de uitvoeringstijd van het geoptimaliseerde versie. 30

31 (c) Beschouw opnieuw dezelfde lus, maar pas nu software pipelining toe ipv. lusontvouwing. Hoe ziet de lus er dan uit? En hoe ziet het in- en uitloopstuk er dan uit? (Veronderstel dat de lus minstens drie keer uitgevoerd wordt en dat er voldoende architecturale registers beschikbaar zijn.) Plaats de lus die bekomen wordt via software pipelining nu opnieuw voor de VLIW-architectuur. Loop: 31

32 Predikaten Beschouw de volgende pseudocode: res = 0; do { m = a[i]; if (m is oneven) {res += m; break;} else { if (m is veelvoud van 4) {res -= m;} else {res -= 2*m;} } i--; } while (i!= 0); Codeer de body van de lus van de pseudocode hierboven aangegeven in de veronderstelling dat de lus body een hyperblok is. De ISA die we hier veronderstellen bestaat uit de volgende instructies: ld mem[rx] -> Ry /* leesoperatie op adres mem+rx*/ and Rx,imm -> Ry /* bitsgewijze and van Rx en een immediate */ add Rx, Ry -> Rz /* Rz ::= Rx + Ry */ sub Rx, Ry -> Rz /* Rz ::= Rx - Ry */ sll Rx,imm -> Ry /* logische shift left over imm bits */ br label /* onvoorwaardelijk sprong naar label */ brnz Rx,label /* voorwaardelijk sprong naar label als Rx!=0*/ Daarnaast bestaat er ook nog de instructie setp om een predikaat te definiëren: setp Rx -> py. Deze instructie schrijft de waarde 1 in het predikaatregister py indien Rx verschillend is van nul; indien Rx gelijk is aan nul, wordt de waarde 0 in het predikaatregister geschreven. De oplossing is van de vorm: loop: (..) instr_1 (..) instr_2... end-loop:... waarbij het predikaat telkens tussen de haakjes geplaatst wordt. De mogelijke predikaten zijn van de vorm: 0, 1, px,!px, px&py,!px&py,!px&!py. Veronderstel dat de waarde van de variabele i uit de pseudocode beschikbaar is in register R1 en dat de waarde van de variabele res uit de pseudocode beschikbaar is in R4. Verder veronderstelt U dat er volgende architecturale registers alsook predikaatregister beschikbaar zijn. 32

33 Antwoord: Bijkomende vragen: Plaats deze lus voor de VLIW-architectuur uit de eerste vraag. Teken de dataverloopgraaf van dit hyperblok. (Merk op dat predikaten RAW afhankelijkheden introduceren.) Optimaliseer deze code. Tip: sommige instructies kunnen naar voor geschoven worden in de dataverloopgraaf door hun predikaat te verwijderen... Wat is de bekomen snelheidswinst? 33

34 Vermogenverbruik Beschouw de decodering van een MPEG4 video stroom. Een MPEG4 stroom bestaat uit een aantal frames die gedecodeerd moeten worden aan een tempo van één frame per 30ms. De MPEG4 encodering gebruikt 3 soorten decoderingen, namelijk het I-frame, het P-frame en het B-frame. Veronderstel dat het decoderen van een I-frame 10 ms duurt, dat het decoderen van een P-frame 20ms duurt en dat het decoderen van een B-frame 30 ms duurt. In het geval een frame gedecodeerd kan worden in een tijdspanne kleiner dan 30ms (de deadline), voert de decoder een lege lus uit in de resterende tijd voor de volgende deadline. Veronderstel nu dat een bepaalde videostroom gecodeerd werd in het volgende formaat: IPPP BPPP BPPP BPPP IPPP BPPP BPPP BPPP IPPP BPPP... Bereken dan de reductie in vermogenverbruik indien DVS/DFS doorgevoerd wordt. M.a.w. we schalen de frequentie en de voedingsspanning van de processor. Veronderstel dat we in een gebied opereren waarbij het simultaan schalen van de frequentie en voedingsspanning mogelijk is. 34

35 Energie-efficiëntie Beschouw de volgende data set. Grootte van de ROB IPC EPC (nj) f (GHz) Hier wordt de IPC, EPC (energieverbruik per klokcyclus), en klokfrequentie f als functie weergegeven van de grootte van het reorder buffer (ROB). Bereken nu (dit is het makkelijkst te doen in een spreadsheet) de optimale grootte van de ROB in het geval van de volgende optimalisatiecriteia: (i) optimale prestatie, (ii) optimale MIPS/W, (iii) optimale MIPS 2 /W en (iv) optimale MIPS 3 /W. Verklaar de bekomen resultaten. 35

36 MESI cachecoherentieprotocol Beschouw een chip-multiprocessor bestaande uit 4 CPUs. Iedere CPU heeft een private directmapped L1 D-cache bestaande uit 2 sets; de grootte van een cacheblok is 32 byte. We veronderstellen dat de L1 D-caches write-back en write-allocate caches zijn en dat het cachecoherentieprotocol het MESI protocol is. Beschouw het volgende tijdsverloop (de adressen die hier weergegeven worden zijn fysieke adressen): t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 CPU1 CPU2 CPU3 CPU4 ld 0x4f20 ld 0x4f24 ld 0x8c4c st 0x4f28 ld 0x4f24 st 0x8c44 ld 0xfc8c ld 0x8c40 De bedoeling van deze vraag is de toestand van de verschillende cacheblokken in te vullen in een tabel. Iedere rij in een dergelijke tabel geeft een set aan van de L1 D-cache per CPU. Vul daarin de volgende informatie in: Tag van cacheblok Coherentietoestand Gelezen van andere CPU Gelezen adres uit geheugen Geschreven adres in geheugen Voorbeeld van een dergelijke rij in de tabel kan zijn 0x4800 E 0x4800 indien het cacheblok met tag 0x4800 in de E toestand komt nadat de waarde gelezen werd uit het geheugen vanop adres 0x4800. Vul de onderstaande tabellen aan die de toestand van de verschillende caches weergeven. Veronderstel dat alle cachelijnen ongeldig zijn op tijdstip t 0. 36

37 Tijdstip t 1 : CPU1 CPU2 CPU3 CPU4 Tijdstip t 2 : CPU1 CPU2 CPU3 CPU4 37

38 Tijdstip t 3 : CPU1 CPU2 CPU3 CPU4 Tijdstip t 4 : CPU1 CPU2 CPU3 CPU4 38

39 Tijdstip t 5 : CPU1 CPU2 CPU3 CPU4 Tijdstip t 6 : CPU1 CPU2 CPU3 CPU4 39

40 Tijdstip t 7 : CPU1 CPU2 CPU3 CPU4 Tijdstip t 8 : CPU1 CPU2 CPU3 CPU4 40

41 MESI, MOESI en update cachecoherentieprotocollen Beschouw een SMP systeem met 2 CPUs verbonden via een bus. Elk van de CPUs heeft een L1 D-cache maar geen L2 cache. De L1 D-caches zijn write-back en write-allocate caches. Beschouw verder het volgende tijdsverloop: t1 t2 t3 t4 t5 t6 t7 t8 CPU 1 CPU 2 ld A ld A st A st A st A ld A st A ld A Vul nu de onderstaande tabellen in, één voor het invalidate MESI protocol, één voor het MOESI protocol en één voor het update cachecoherentieprotocol. In de tweede kolom geeft U aan of de betreffende geheugenoperatie een cache miss is, wat het type operatie is (lokale schrijfoperatie LW of lokale leesoperatie LR), en hoe de toestand verandert van de cachelijn in het geval van de invalidate protocollen. In de derde kolom geeft U aan wat de coherentietrafiek is (BR, BW of BU) en ook welke data getransfereerd wordt over de bus. In de vierde kolom geeft U de communicatie aan met het hoofdgeheugen. Veronderstel dat indien de data beschikbaar is in het systeem op het moment van een BR, de data beschikbaar gesteld wordt door een cache en niet het hoofdgeheugen via een zogenaamde cache-to-cache transfer. Tabel voor het MESI cachecoherentieprotocol: CPU1 CPU2 info over geheugenoperatie ld A coherentietrafiek trafiek naar hoofdgeheugen ld A st A st A st A ld A st A ld A 41

42 Tabel voor het MOESI cachecoherentieprotocol veronderstel hierbij dat de cachelijn in de processor waar de leesoperatie uitgevoerd wordt in de S toestand geplaatst wordt; de externe kopie (in de M toestand) komt in de O toestand. CPU1 CPU2 info over geheugenoperatie ld A coherentietrafiek trafiek naar hoofdgeheugen ld A st A st A st A ld A st A ld A Tabel voor het update cachecoherentieprotocol: CPU1 CPU2 info over geheugenoperatie ld A coherentietrafiek trafiek naar hoofdgeheugen ld A st A st A st A ld A st A ld A 42

43 Dragon update-protocol Beschouw het Dragon cachecoherentie update-protocol. Vul de onderstaande tabel in. De kolom met als hoofding Aantal kopieën vul je aan met 0 indien er geen lokale kopieën zijn, 1 indien er exact één lokale kopie is, 1 indien er één of meerdere kopieën zijn, of >1 indien er meerdere (strikt meer dan één) kopieën van de betreffende cachelijn zijn in de multiprocessor. (Opmerking: Antwoorden met 1 indien >1 het correcte antwoord is wordt beschouwd als een foutief antwoord.) De kolom met als hoofding Is het geheugen up-to-date? vul je aan met ja indien het geheugen up-to-date is met de lokale kopie, neen indien het geheugen niet up-to-date is met de lokale kopie, of mogelijks niet indien het geheugen mogelijks niet up-to-date is met de lokale kopie. Toestand Aantal kopieën Is het geheugen up-to-date? Sc E Sm M 43

44 Sequentiële consistentie Beschouw een SMP bestaande uit 2 CPUs met elk een L1 D-cache en geen L2 cache. Elk van de processors heeft een out-of-order microarchitectuur die bovendien in staat is geheugenoperaties dynamisch speculatief te herordenen, maw. load bypassing is geïmplementeerd. Het systeem is sequentieel consistent maar laat toe geheugenoperaties te herordenen zolang de echte programma-afhankelijkheden gerespecteerd blijven. Beschouw nu het volgende meerdradige prorgamma: draad 0 draad 1 st A ld B st B ld A Dit programma wordt uitgevoerd op deze SMP machine, d.i. draad 0 wordt op processor 1 uitgevoerd en draad 1 wordt op processor 2 uitgevoerd. Het onderstaande tijdsverloop geeft een mogelijke uitvoering aan. Geef nu aan op deze figuur wat de extra bustrafiek is die gegenereerd werd teneinde sequentiële consistentie te garanderen: CPU 1 CPU 2 t 0 ld B t 1 t 2 ld A st B t 3 st A t 4 t 5 ld A ld A execute t 6 t 7 ld B ld B retire En vul de onderstaande tabellen in met de toestanden (M, E, S en I) voor de verschillende cachelijnen in de verschillende CPUs; veronderstel het MESI cachecoherentieprotocol. Veronderstel dat de addressen A en B in verschillende cachelijnen terecht komen in de caches. Duid ook aan welke geheugenoperaties cache misses veroorzaken. 44

45 CPU 1 CPU 2 cachelijn van A cachelijn van B cachelijn van A cachelijn van B t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 Veronderstel nu dat de cachelijnen voor A en B conflicteren in de cache. CPU 1 CPU 2 cachelijn van A en B tag cachelijn van A en B tag t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 Veronderstel nu dat A en B tot dezelfde cachelijn behoren. CPU 1 CPU 2 t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 45

46 Geheugenconsistentie (1) Beschouw het volgende meerdradig programma veronderstel dat alle variabelen initieel nul zijn, en dat A en B gedeelde, en u, v, w en x lokale variabelen zijn: draad 1 draad 2 A=1; B=1; u=a; v=b; w=b; x=a; (a) Wat zijn de mogelijke uitkomsten voor (u,v,w,x) na uitvoering van dit programma op een sequentieel consistent (SC) systeem? (b) Wat zijn de mogelijke uitkomsten voor (u,v,w,x) op een systeem dat partial store ordering (PSO) implementeert? 46

47 (c) Indien er een verschil is tussen (a) en (b), hoe kan het meerdradig programma aangepast worden opdat dit programma op een PSO systeem in een sequentieel consistente uitvoering resulteert? Gebruik een minimaal aantal MEMBAR of STBAR instructies; en gebruik enkel een MEMBAR instructie indien echt nodig, maw. indien een STBAR volstaat, gebruik dan een STBAR en geen MEMBAR. 47

48 Geheugenconsistentie (2) Beschouw het volgende meerdradig programma veronderstel dat de variabelen A en B zich in gemeenschappelijk geheugen bevinden en initieel nul zijn: draad 1 draad 2 B=2; A=2; A=1; print B; print A; Dit meerdradig programma wordt uitgevoerd op UMA-multiprocessorsysteem waarbij elke draad toegewezen wordt aan een andere processor. (a) Het onderstaande tijdsverloop geeft aan welke operatie op welk tijdstip het gemeenschappelijk geheugen bereikt: A=1 t B=2 print A t print B A=2 Bij welk geheugenconsistentiemodel is deze uitvoering mogelijk? Antwoord met ja of neen. consistiemodel SC TSO PSO WO Ja/Neen (b) Welke zijn de mogelijke geprinte waarden voor A en B onder SC? Verklaar. 48

49 (c) Welke zijn de mogelijke geprinte waarden voor A en B onder TSO? Verklaar. (d) Hoe dient het meerdradig programma gewijzigd te worden opdat dit programma dezelfde waarden zou printen voor A en B onder PSO als onder SC? Verklaar. 49

50 Geheugenconsistentie (3) Beschouw het volgende meerdradig programma veronderstel dat de variabelen A, B en C zich in gemeenschappelijk geheugen bevinden en initieel nul zijn: draad 1 draad 2 draad 3 A=1; while(c==0){;} while(b==0){;} B=1; print A; C=1; print C; Dit meerdradig programma wordt uitgevoerd op UMA-multiprocessorsysteem waarbij elke draad toegewezen wordt aan een andere processor. (a) Welke waarden worden mogelijks geprint voor A en C in het geval van een SCgeheugenmodel (Sequential Consistency)? Verklaar. 50

51 (b) Welke waarden worden mogelijks geprint voor A en C in het geval van een TSOgeheugenmodel (Total Store Ordering)? Verklaar. (c) Welke waarden worden mogelijks geprint voor A en C in het geval van een PSOgeheugenmodel (Partial Store Ordering)? Verklaar. 51

52 Transactioneel geheugen Beschouw de volgende uitvoering van een tweedradig programma op een transactioneelgeheugensysteem met een optimistisch conflictdetectiesysteem. De rechthoekige blokken stellen transacties voor. print B; A=1; print A; B=1; commit t t (a) Vul het bovenstaande tijdsverloop aan. M.a.w. geef aan of de transactie van de linkerdraad uitgevoerd wordt (commit) of herstart wordt (restart). (b) Welke waarden worden geprint voor de variabelen A en B? Veronderstel dat A en B initieel 0 zijn. A: B: 52

Examen Geavanceerde Computerarchitectuur

Examen Geavanceerde Computerarchitectuur Examen Geavanceerde Computerarchitectuur Academiejaar 2006-2007 Dinsdag 16 januari 2007, 14u00 Prof. dr. ir. L. Eeckhout Richting: Enkele opmerkingen vooraf: Vul eerst en vooral op ieder blad Uw naam en

Nadere informatie

Examen Geavanceerde Computerarchitectuur

Examen Geavanceerde Computerarchitectuur Examen Geavanceerde Computerarchitectuur Academiejaar 2007-2008 Maandag 21 januari 2008, 14u00 Prof. dr. ir. L. Eeckhout Naam: Richting: Enkele opmerkingen vooraf: Vul eerst en vooral op ieder blad Uw

Nadere informatie

Examen Geavanceerde Computerarchitectuur

Examen Geavanceerde Computerarchitectuur Examen Geavanceerde Computerarchitectuur Academiejaar 2010-2011 Maandag 17 januari 2010, 8u30 Prof. dr. ir. L. Eeckhout Naam: Richting: Enkele opmerkingen vooraf: Vul eerst en vooral op ieder blad Uw naam

Nadere informatie

Examen Geavanceerde Computerarchitectuur

Examen Geavanceerde Computerarchitectuur Examen Geavanceerde Computerarchitectuur Academiejaar 2008-2009 Maandag 30 januari 2009, 14u00 Prof. dr. ir. L. Eeckhout Voornaam: Naam: Richting: Enkele opmerkingen vooraf: Vul eerst en vooral op ieder

Nadere informatie

Uitwerking oefententamen Computerarchitectuur December 2016

Uitwerking oefententamen Computerarchitectuur December 2016 Uitwerking oefententamen Computerarchitectuur December 2016 I.a. De overall CPI kan worden berekend met de formule n IC i CPI Instruction count CPI i voor de ratio vullen we telkens de geven frequentie

Nadere informatie

Examen computerarchitectuur

Examen computerarchitectuur Examen computerarchitectuur Woensdag 22 juni 2005, 8u30 Prof. Koen De Bosschere Naam, Voornaam: Richting: Belangrijk 1. Vergeet niet uw naam en voornaam te vermelden. 2. Schrijf de antwoorden in de daarvoor

Nadere informatie

Computerarchitectuur. Terugblik / discussie / oefenopgaven

Computerarchitectuur. Terugblik / discussie / oefenopgaven Computerarchitectuur Terugblik / discussie / oefenopgaven Kristian Rietveld http://ca.liacs.nl/ Trends & Performance Voorkennis We bouwden een 4-bit microprocessor bij Digitale Technieken. Bij computerarchitectuur

Nadere informatie

Sequentiële gepijplijnde machine

Sequentiële gepijplijnde machine Sequentiële gepijplijnde machine Samenvatting controlesignalen Als we de controlesignalen van vorig hoofdstuk nemen, kunnen we per cyclus een naam geven aan de stap. We plaatsen hiervoor wel de registerbeschrijving

Nadere informatie

Les 4: geheugenstroom in outof-order

Les 4: geheugenstroom in outof-order Les 4: geheugenstroom in outof-order microarchitectuur Geavanceerde computerarchitectuur Lieven Eeckhout Academiejaar 2008-2009 Universiteit Gent Overzicht Geheugenhiërarchie (herhaling Computerarchitectuur

Nadere informatie

Examen Geavanceerde Computerarchitectuur

Examen Geavanceerde Computerarchitectuur Examen Geavanceerde Computerarchitectuur Academiejaar 2009-2010 Maandag 4 januari 2010, 14u00 Prof. dr. ir. L. Eeckhout Naam: Richting: Enkele opmerkingen vooraf: Vul eerst en vooral op ieder blad Uw naam

Nadere informatie

Examen computerarchitectuur

Examen computerarchitectuur Examen computerarchitectuur Dinsdag 16 juni 2009, 14u00 Prof. Koen De Bosschere Richting: Naam: Belangrijk 1. Vergeet niet uw naam te vermelden. 2. Schrijf de antwoorden in de daarvoor voorziene ruimte.

Nadere informatie

Les 9: Meerdradige uitvoering

Les 9: Meerdradige uitvoering Les 9: Meerdradige uitvoering consistentie Geavanceerde computerarchitectuur Lieven Eeckhout Academiejaar 2008-2009 Universiteit Gent Overzicht Sequentiële consistentie Versoepelde consistentie Transactional

Nadere informatie

Examen computerarchitectuur

Examen computerarchitectuur Examen computerarchitectuur Vrijdag 6 juni 2008, 14:00 Prof. Koen De Bosschere Naam, Voornaam: Richting: Belangrijk 1. Vergeet niet uw naam en voornaam te vermelden. 2. Schrijf de antwoorden in de daarvoor

Nadere informatie

Digitale technieken Deeltoets II

Digitale technieken Deeltoets II Digitale technieken Deeltoets II André Deutz 11 januari, 2008 De opgaven kunnen uiteraard in een willekeurige volgorde gemaakt worden geef heel duidelijk aan op welke opgave een antwoord gegegeven wordt.

Nadere informatie

Computertechniek vorige examens

Computertechniek vorige examens Computertechniek vorige examens Examen 2009 Groep 1 1. Geef de 2 manieren waarop de adressen van de I/O-module in de adresruimte geïntegreerd kunnen zijn. (memory-mapped en isolated dus) 2. Wat is post-indexering?

Nadere informatie

Computerarchitectuur. H&P Ch 5. Thread-Level Parallelism

Computerarchitectuur. H&P Ch 5. Thread-Level Parallelism Computerarchitectuur H&P Ch 5. Thread-Level Parallelism Kristian Rietveld http://ca.liacs.nl/ Thread-Level Parallelism In het geval van thread-level parallelism (TLP) gaan we uit van meerdere threads.

Nadere informatie

Beter, Sneller, Mooier. Processoren 12 januari 2015

Beter, Sneller, Mooier. Processoren 12 januari 2015 Beter, Sneller, Mooier Processoren 12 januari 2015 Beter! Sneller! Krachtigere CPU: maak instructies die meer doen Snellere CPU: pipeline, out-of-order execution Sneller RAM: cache meer mogelijkheden...

Nadere informatie

Computerarchitectuur en netwerken. Memory management Assembler programmering

Computerarchitectuur en netwerken. Memory management Assembler programmering Computerarchitectuur en netwerken 2 Memory management Assembler programmering Lennart Herlaar 10 september 2018 Inhoud 1 Protectie: Hoe het O.S. programma s tegen elkaar kan beschermen modes memory management

Nadere informatie

Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)

Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets) TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Afdeling ISA Basiseenheid PGS Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)

Nadere informatie

Computerarchitectuur. H&P App. C. Pipelining

Computerarchitectuur. H&P App. C. Pipelining Computerarchitectuur H&P App. C. Pipelining Kristian Rietveld http://ca.liacs.nl/ Motivatie Pipelining is een techniek die tegenwoordig in iedere CPU wordt gebruikt om de performance te verbeteren. Idee:

Nadere informatie

Vraag 1 (2 punten) (iii) Een lees-opdracht van virtueel adres 2148 seg 0, offset 2148 - idem

Vraag 1 (2 punten) (iii) Een lees-opdracht van virtueel adres 2148 seg 0, offset 2148 - idem Tentamen A2 (deel b) 24-06-2004 Geef (liefst beknopte en heldere) motivatie bij je antwoorden; dus niet enkel ja of nee antwoorden, maar ook waarom. Geef van berekeningen niet alleen het eindresultaat,

Nadere informatie

Tentamen Computersystemen

Tentamen Computersystemen Tentamen Computersystemen baicosy6 2e jaar bachelor AI, 2e semester 21 oktober 213, 9u-11u OMHP D.9 vraag 1 Van een Single Cycle Harvard machine hebben de componenten de volgende propagation delay time:

Nadere informatie

Digitale en analoge technieken

Digitale en analoge technieken Digitale en analoge technieken Peter Slaets February 14, 2006 Peter Slaets () Digitale en analoge technieken February 14, 2006 1 / 33 Computerarchitectuur 1 Processors 2 Primair geheugen 3 Secundair geheugen

Nadere informatie

Tentamen 17 augustus 2000 Opgaven Computerarchitectuur

Tentamen 17 augustus 2000 Opgaven Computerarchitectuur Tentamen 17 augustus 2000 Opgaven - 1 - Computerarchitectuur Tentamen Computerarchitectuur (213005) 17 augustus 2000 2 bladzijden met 5 opgaven 3 antwoordbladen Het raadplegen van boeken, diktaten of aantekeningen

Nadere informatie

Examen computerarchitectuur

Examen computerarchitectuur Examen computerarchitectuur Vrijdag 6 juni 2003, 8u30 Prof. Koen De Bosschere Naam, Voornaam: Richting: Belangrijk 1. Vergeet niet uw naam en voornaam te vermelden. 2. Schrijf de antwoorden in de daarvoor

Nadere informatie

Computerarchitectuur. App. B. Review of Memory Hierarchy

Computerarchitectuur. App. B. Review of Memory Hierarchy Computerarchitectuur App. B. Review of Memory Hierarchy Kristian Rietveld http://ca.liacs.nl/ Caching De memory wall is een zeer groot probleem dat vraagt om oplossingen. De gebruikelijke oplossing is

Nadere informatie

scc = b) CD AB

scc = b) CD AB Computerarchitectuur en -organisatie (213030) Dinsdag 21 januari 2040, 13.30 17.00 uur 7 bladzijden met 8 opgaven 4 bladzijden met documentatie Let op: Vul het tentamenbriefje volledig in (d.w.z. naam,

Nadere informatie

VAN HET PROGRAMMEREN. Inleiding

VAN HET PROGRAMMEREN. Inleiding OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,

Nadere informatie

Studentnummer:... Opleiding:... a) Met welke term wordt het interface tussen software en hardware van een processor aangeduid?

Studentnummer:... Opleiding:... a) Met welke term wordt het interface tussen software en hardware van een processor aangeduid? Computerorganisatie (213110) Dinsdag 15 augustus 2000, 13.30 17.00 uur 7 bladzijden met 6 opgaven 3 bladzijden met documentatie Bij dit tentamen mag geen gebruik worden gemaakt van boeken, dictaten of

Nadere informatie

Examen besturingssystemen

Examen besturingssystemen Examen besturingssystemen Vrijdag 3 februari 2006, 9u 12u Prof. Koen De Bosschere Richting: Naam: Belangrijk 1. Vergeet niet uw naam te vermelden. 2. Schrijf de antwoorden in de daarvoor voorziene ruimte.

Nadere informatie

Examen besturingssystemen

Examen besturingssystemen Examen besturingssystemen Zaterdag 14 januari 2017, 8u30 Prof. Koen De Bosschere Richting: Naam: Belangrijk 1. Vergeet niet uw naam te vermelden. 2. Schrijf de antwoorden in de daarvoor voorziene ruimte.

Nadere informatie

De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012

De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012 De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012 Tanenbaum hoofdstuk 2 von Neumann - architectuur. Tanenbaum, Structured Computer Organiza4on, FiMh Edi4on, 2006 Pearson Educa4on,

Nadere informatie

Examen besturingssystemen

Examen besturingssystemen Examen besturingssystemen Vrijdag 11 januari 2008, 13u30 17u00 Prof. Koen De Bosschere Richting: Naam: Belangrijk 1. Vergeet niet uw naam te vermelden. 2. Schrijf de antwoorden in de daarvoor voorziene

Nadere informatie

Computerarchitectuur en netwerken. Memory management Assembler programmering

Computerarchitectuur en netwerken. Memory management Assembler programmering Computerarchitectuur en netwerken 2 Memory management Assembler programmering Lennart Herlaar 12 september 2016 Inhoud 1 Protectie: Hoe het O.S. programma s tegen elkaar kan beschermen modes memory management

Nadere informatie

computerarchitectuur antwoorden

computerarchitectuur antwoorden 2017 computerarchitectuur antwoorden F. Vonk versie 1 2-8-2017 inhoudsopgave hardware... - 3 - CPU... - 3 - bussen... - 4 - bridges... - 4 - RAM... - 4 - hardware architectuur... - 5 - Dit werk is gelicenseerd

Nadere informatie

Computerarchitectuur en netwerken Toets 1 4 okt

Computerarchitectuur en netwerken Toets 1 4 okt 11.00 13.00 De open vragen moet je beantwoorden op tentamenpapier. De multiple-choice antwoorden moet je op het vragenblad invullen in de rechtervakjes en dat blad inleveren. Schrijf je naam, studentnummer

Nadere informatie

Examen computerarchitectuur

Examen computerarchitectuur Examen computerarchitectuur Vrijdag 8 juni 2007, 14u00 Prof. Koen De Bosschere Naam, Voornaam: Richting: Belangrijk 1. Vergeet niet uw naam en voornaam te vermelden. 2. Schrijf de antwoorden in de daarvoor

Nadere informatie

EE1410: Digitale Systemen BSc. EE, 1e jaar, , 10e hoorcollege

EE1410: Digitale Systemen BSc. EE, 1e jaar, , 10e hoorcollege EE1410: Digitale Systemen BSc. EE, 1e jaar, 2012-2013, 10e hoorcollege Arjan van Genderen, Stephan Wong, Computer Engineering 13-5-2013 Delft University of Technology Challenge the future Hoorcollege 10

Nadere informatie

Informatica: C# WPO 5

Informatica: C# WPO 5 Informatica: C# WPO 5 1. Inhoud While-loop, do while, debuggen, graphics 2. Oefeningen Demo 1: Power of 2 Demo 2: Tel totdat... Demo 3: Debug oplossing demo s 1 en 2 A: Count down A: Random counting A:

Nadere informatie

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files 1 Introductie In deze oefening zal je je LCD display leren aansturen. Je controleert deze display door er instructies naar te

Nadere informatie

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets) TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Afdeling ISA Basiseenheid PGS Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Nadere informatie

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen Jan Genoe KHLim Situering RAM-geheugens Geheugens Halfgeleider Geheugens Serieel toegankelijk geheugen Willekeurig toegankelijk geheugen Read Only Memory ROM Random Access Memory RAM Statische RAM SRAM

Nadere informatie

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo)

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo) informatica hardware overzicht moederbord CPU RAM GPU architectuur (vwo) 1 moederbord basis van de computer componenten & aansluitingen chipset Northbridge (snel) Southbridge ("traag") bussen FSB/HTB moederbord

Nadere informatie

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW: OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,

Nadere informatie

Hoe werkt een rekenmachine?

Hoe werkt een rekenmachine? Hoe werkt een rekenmachine? Uit welke hardware-componenten bestaat een rekenmachine? Welke instructies kan de machine uitvoeren? Practicum met de rekenmachine I Constante getallen Instructies van het type

Nadere informatie

1 Aanvulling cosy deeltijd

1 Aanvulling cosy deeltijd 1 Aanvulling cosy deeltijd 1.1 Multiprocessor versus multicomputer Het kenmerk van een multiprocessor is dat meer CPU hetzelfde geheugen delen. Voordeel van deze aanpak is het relatief eenvoudige programmeermodel.

Nadere informatie

Indirecte adressering

Indirecte adressering Indirecte adressering 1 pagina 1 Absolute adressering - Directe adressering Operand Operand- Supplementaire Beschrijving adres toegangsbreedte (voorbeeld) I 37.4 byte, woord, Ingangen dubbelwoord Q 27.7

Nadere informatie

scc =!F3.!F2 b) CD AB

scc =!F3.!F2 b) CD AB Computerarchitectuur en -organisatie (213030) Dinsdag 21 januari 2040, 13.30 17.00 uur 7 bladzijden met 8 opgaven 4 bladzijden met documentatie Let op: Vul het tentamenbriefje volledig in (d.w.z. naam,

Nadere informatie

11011 Processor MMI Intro. Binaire representatie. Computer: Logische opbouw (Von Neumann) 3-input 1-hot detector.

11011 Processor MMI Intro. Binaire representatie. Computer: Logische opbouw (Von Neumann) 3-input 1-hot detector. NOT NOT NOT NOT NOT NOT 9-09-7 Intro MMI The Digital World 2 Peter van Kranenburg Vandaag: Terugblik vorige week Werking CPU Soorten instructies Werking CPU Cache Pipelining Digitale representatie Tekst

Nadere informatie

Oefeningen Interpretatie I Reeks 6 : Registermachines

Oefeningen Interpretatie I Reeks 6 : Registermachines Oefeningen Interpretatie I Reeks 6 : Registermachines Deze oefeningenreeks behandelt het beschrijven van computationele processen aan de hand van registermachineprogrammaʼs. Registermachines manipuleren

Nadere informatie

Hoofdstuk 7. Computerarchitectuur

Hoofdstuk 7. Computerarchitectuur Hoofdstuk 7 Computerarchitectuur 1 controlebus CPU MEMORY I/O databus adresbus Figuur 71 Schematische opbouw van een computersysteem 8 Figuur 72 Een busverbinding Buslijn Out E A In Out E B In Out E C

Nadere informatie

17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies

17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies 17 Operaties op bits In hoofdstuk 1 is gezegd dat C oorspronkelijk bedoeld was als systeemprogrammeertaal om het besturingssysteem UNIX te implementeren. Bij dit soort toepassingen komt het voor dat afzonderlijke

Nadere informatie

' Het tentamen is gesloten boek, dus het is niet toegestaan om het tekstboek, slides of eigen gemaakte aantekeningen te gebruiken.

' Het tentamen is gesloten boek, dus het is niet toegestaan om het tekstboek, slides of eigen gemaakte aantekeningen te gebruiken. Tentamen Operating Systems Dinsdag 14 juni 2016,10:00-13:00 Examinator: dr. K. F. D. Rietveld ' Het tentamen is gesloten boek, dus het is niet toegestaan om het tekstboek, slides of eigen gemaakte aantekeningen

Nadere informatie

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet. Les C-02: Werken met Programma Structuur Diagrammen 2.0 Inleiding In deze lesbrief bekijken we een methode om een algoritme zodanig structuur te geven dat er gemakkelijk programmacode bij te schrijven

Nadere informatie

Sequentiële Logica. Processoren 24 november 2014

Sequentiële Logica. Processoren 24 november 2014 Sequentiële Logica Processoren 24 november 2014 Inhoud Eindige automaten Schakelingen met geheugen Realisatie van eindige automaten Registers, schuifregisters, tellers, etc. Geheugen Herinnering van week

Nadere informatie

von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014

von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014 von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014 Herhaling: Booleaanse algebra (B = {0,1},., +, ) Elke Booleaanse functie f: B n B m kan met., +, geschreven worden Met Gates (electronische

Nadere informatie

Java virtuele machine JVM

Java virtuele machine JVM Implementatie Java Java virtuele machine JVM Java programma vertaald naar byte code instructies Byte code instructies uitgevoerd door JVM JVM is processor architectuur kan in principe in hardware worden

Nadere informatie

Geheugenbeheer. ICT Infrastructuren 2 december 2013

Geheugenbeheer. ICT Infrastructuren 2 december 2013 Geheugenbeheer ICT Infrastructuren 2 december 2013 Doelen van geheugenbeheer Reloca>e (flexibel gebruik van geheugen) Bescherming Gedeeld/gemeenschappelijk geheugen Logische indeling van procesonderdelen

Nadere informatie

Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 )

Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 ) OI 2010 Finale 12 Mei 2010 Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub VOORNAAM :....................................................... NAAM :..............................................................

Nadere informatie

Computerarchitectuur. H&P Appendix A: Instruction Set Principles

Computerarchitectuur. H&P Appendix A: Instruction Set Principles Computerarchitectuur H&P Appendix A: Instruction Set Principles Kristian Rietveld http://ca.liacs.nl/ Instruction Sets Een processor moet precies worden verteld wat deze moet doen. Dit staat opgeschreven

Nadere informatie

Inhoudsopgave. Optimalisatie van de mmips. Forwarding optie 1. Design flow. implementation

Inhoudsopgave. Optimalisatie van de mmips. Forwarding optie 1. Design flow. implementation 2 Inhoudsopgave Optimalisatie van de mmips pc Sander Stuijk Veel gestelde vragen Hoe moet ik forwarding implementeren? Hoe moet ik clipping implementeren? Waarom is mijn simulatie zo traag? Hoe kan ik

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE Tentamen Computers bij fysische experimenten (3BB20) op dinsdag 25 oktober 2005 Het tentamen duurt 90 minuten en wordt gemaakt zonder

Nadere informatie

Getalformaten, timers en tellers

Getalformaten, timers en tellers Getalformaten, timers en tellers S_CU CU S PV R CV DEZ CV_BCD S_ODT S TV BI R BCD 1 pagina 1 Getalformaten (16 bits) PG CPU BCD W#16#296 Voorteken (+) 2 9 6 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 Positieve getallen

Nadere informatie

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Van Poort tot Pipeline Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Van Poort tot Pipeline Pipeline processor One cycle machine Calculator File of registers Assembly

Nadere informatie

Memoriseren: Een getal is deelbaar door 10 als het laatste cijfer een 0 is. Of: Een getal is deelbaar door 10 als het eindigt op 0.

Memoriseren: Een getal is deelbaar door 10 als het laatste cijfer een 0 is. Of: Een getal is deelbaar door 10 als het eindigt op 0. REKENEN VIJFDE KLAS en/of ZESDE KLAS Luc Cielen 1. REGELS VAN DEELBAARHEID. Luc Cielen: Regels van deelbaarheid, grootste gemene deler en kleinste gemeen veelvoud 1 Deelbaarheid door 10, 100, 1000. Door

Nadere informatie

1=2720/2725 Operating System Concepten

1=2720/2725 Operating System Concepten TECHNISCHE UNIVERSITEIT DELFT Faculteit EWI, Afdeling SCT 1 1 1=2720/2725 Operating System Concepten ^ november 2013, 14.00-17.00 uur. docent: H.J. Sips Dit is een tentamen met 9 open vragen Opgave Punten

Nadere informatie

ONTWERP VAN GEDISTRIBUEERDE SOFTWARE ACADEMIEJAAR 2009-2010 1 STE EXAMENPERIODE, 15 JANUARI 2010, 14U 17U30 VRAAG 1: INLEIDENDE BEGRIPPEN[20 MIN]

ONTWERP VAN GEDISTRIBUEERDE SOFTWARE ACADEMIEJAAR 2009-2010 1 STE EXAMENPERIODE, 15 JANUARI 2010, 14U 17U30 VRAAG 1: INLEIDENDE BEGRIPPEN[20 MIN] ONTWERP VAN GEDISTRIBUEERDE SOFTWARE ACADEMIEJAAR 2009-2010 1 STE EXAMENPERIODE, 15 JANUARI 2010, 14U 17U30 Naam :.. Richting :.. Opmerkingen vooraf : - werk verzorgd en duidelijk, zodat er geen dubbelzinnigheden

Nadere informatie

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax, Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt

Nadere informatie

Tentamen Computerorganisatie in aug. 1999, uur. N.B.: Dit tentamen bestaat uit 30 opgaven Totaal aantal bladzijden: 9

Tentamen Computerorganisatie in aug. 1999, uur. N.B.: Dit tentamen bestaat uit 30 opgaven Totaal aantal bladzijden: 9 TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Subfaculteit Technische Wiskunde en Informatica Werkeenheid Technische Informatica Tentamen Computerorganisatie in101 27 aug. 1999,

Nadere informatie

Lineaire data structuren. Doorlopen van een lijst

Lineaire data structuren. Doorlopen van een lijst Lineaire data structuren array: vast aantal data items die aaneensluitend gestockeerd zijn de elementen zijn bereikbaar via een index lijst: een aantal individuele elementen die met elkaar gelinkt zijn

Nadere informatie

Inleiding Digitale Techniek

Inleiding Digitale Techniek Inleiding Digitale Techniek Week 4 Binaire optellers, tellen, vermenigvuldigen, delen Jesse op den Brouw INLDIG/25-26 Optellen Optellen is één van meest gebruikte rekenkundige operatie in digitale systemen.

Nadere informatie

Examen besturingssystemen

Examen besturingssystemen Examen besturingssystemen Dinsdag 8 februari 2005, 9u 12u Prof. Koen De Bosschere Richting: Naam: Belangrijk 1. Vergeet niet uw naam te vermelden. 2. Schrijf de antwoorden in de daarvoor voorziene ruimte.

Nadere informatie

Samenvatting Computer Architectuur 2006-2007

Samenvatting Computer Architectuur 2006-2007 Controletransferinstructies = Instructies die verandering brengen in de zuiver sequentiële uitvoering van de instructies. Ze doen dit door de instructiewijzer een andere waarde te geven. Ze kunnen met

Nadere informatie

Informatica: C# WPO 10

Informatica: C# WPO 10 Informatica: C# WPO 10 1. Inhoud 2D arrays, lijsten van arrays, NULL-values 2. Oefeningen Demo 1: Fill and print 2D array Demo 2: Fill and print list of array A: Matrix optelling A: Matrix * constante

Nadere informatie

Opgave Constraint Processing

Opgave Constraint Processing Opgave Constraint Processing De deadline voor het indienen van je verslag is woensdag 9 december, 12u. We verwachten je verslag op papier in de studentenbrievenbus in 200A. In dit project zullen we een

Nadere informatie

Computerarchitectuur 2016 Inleveropdracht 3: Exploiting Memory Hierarchies in Modern Systems

Computerarchitectuur 2016 Inleveropdracht 3: Exploiting Memory Hierarchies in Modern Systems Computerarchitectuur 2016 Inleveropdracht 3: Exploiting Memory Hierarchies in Modern Systems Gesuggereerde Deadline: zondag 27 november 2016 Zoals we in het hoorcollege uitgebreid hebben besproken spelen

Nadere informatie

Multi-core systemen. door Alexander Melchior

Multi-core systemen. door Alexander Melchior Multi-core systemen Multi-cpu & Multi-core Multi cpu & Multi core door Alexander Melchior Toevoeging aan GDP Overdragen Capita Selecta Waarom? Een stukje geschiedenis 2005: Introductie eerste consumenten

Nadere informatie

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2 Controle structuren De algemene vorm: 1 bloks door middel van indentatie Keuze Herhaling if expressie :...... In de volgende vorm is het else gedeelte weggelaten: if expressie :... Het if keuze- of conditioneel

Nadere informatie

Semaforen. Semaforen p. 1/2

Semaforen. Semaforen p. 1/2 Semaforen 2008 Semaforen p. 1/2 Vorige Keer mbv mutual exclusion kritieke sectie (cs) 1. software : Dekker s, Peterson s algoritme 2. hardware: uniprocessor machine: disable interrupts 3. hardware: multiprocessor

Nadere informatie

Een interrupt is een hardwaremechanisme dat een extern apparaat in staat stelt om de CPU een signaal te sturen wanneer de I/O operatie voltooid is.

Een interrupt is een hardwaremechanisme dat een extern apparaat in staat stelt om de CPU een signaal te sturen wanneer de I/O operatie voltooid is. Procesbeheer: interrupts en uitvoering van besturingssystemen. a) Beschrijf de werking en de bedoeling van interrupts: Hoe deze door de processorhardware en het besturingssysteem worden verwerkt? Waarom

Nadere informatie

Zelftest TSO/E REXX. Document: n0167test.fm 25/01/2017. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Zelftest TSO/E REXX. Document: n0167test.fm 25/01/2017. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium Zelftest TSO/E REXX Document: n0167test.fm 25/01/2017 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST TSO/E REXX Deze test is een hulpmiddel

Nadere informatie

computerarchitectuur F. Vonk versie

computerarchitectuur F. Vonk versie 2017 computerarchitectuur F. Vonk versie 1 2-8-2017 inhoudsopgave 1. inleiding... - 3-2. hardware... - 4-3. moederbord... - 5-4. CPU... - 7-5. bussen... - 12-6. bridges... - 15-7. RAM... - 16-8. hardware

Nadere informatie

Computerarchitectuur. H&P Appendix A: Instruction Set Principles

Computerarchitectuur. H&P Appendix A: Instruction Set Principles Computerarchitectuur H&P Appendix A: Instruction Set Principles Kristian Rietveld http://ca.liacs.nl/ Instruction Sets Een processor moet precies worden verteld wat deze moet doen. Dit staat opgeschreven

Nadere informatie

Amorized Analysis en Union-Find Algoritmiek

Amorized Analysis en Union-Find Algoritmiek Amorized Analysis en Union-Find Vandaag Amortized analysis Technieken voor tijdsanalyse van algoritmen Union-find datastructuur Datastructuur voor operaties op disjuncte verzamelingen Verschillende oplossingen

Nadere informatie

Hoofdstuk 7: Werken met arrays

Hoofdstuk 7: Werken met arrays Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, januari 2004 Hoofdstuk 7: Werken met arrays 7.0 Leerdoel

Nadere informatie

algoritmiek - antwoorden

algoritmiek - antwoorden 2016 algoritmiek - antwoorden F. Vonk versie 1 28-8-2016 inhoudsopgave eenvoudige algoritmes... - 3 - complexe algoritmes... - 7 - zoeken (vwo)... - 10 - sorteren (vwo)... - 12 - Dit werk is gelicenseerd

Nadere informatie

BLOK 3 HOOFDSTUK 8 PARAGRAAF 2

BLOK 3 HOOFDSTUK 8 PARAGRAAF 2 BLOK 3 HOOFDSTUK 8 PARAGRAAF 2 4-BITS DEMOCOMPUTER IN 1000 STO R0 0000 opdracht tot opslaan 0000 waar moet het worden opgeslagen IN 1000 LD R1 0011 opdracht tot kopiëren 0000 welk adres moet gekopieerd

Nadere informatie

Bij problemen of vragen omtrent de login gegevens, kan er contact worden opgenomen met de webmaster bij Lannoo.

Bij problemen of vragen omtrent de login gegevens, kan er contact worden opgenomen met de webmaster bij Lannoo. Jean-Baptiste de Ghellincklaan 13, Bus 301 9051 Gent +32/497.52.61.20 www.misterduke.be Manual: Aanmaak Event/ Expo : Lannoocampus-Academie.nl 1. Inloggen CMS Via http://www.lannoocampus-academie.nl/beta/cms

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN ComputerSystemen Deeltentamen B (weken 6..9) vakcode 2M208 woensdag 19 Maart 2003, 9:00-10:30

TECHNISCHE UNIVERSITEIT EINDHOVEN ComputerSystemen Deeltentamen B (weken 6..9) vakcode 2M208 woensdag 19 Maart 2003, 9:00-10:30 TECHNISCHE UNIVERSITEIT EINDHOVEN ComputerSystemen Deeltentamen B (weken 6..9) vakcode 2M208 woensdag 19 Maart 2003, 9:00-10:30 Algemene opmerkingen (lees dit!): - Dit tentamen duurt ANDERHALF UUR! - Dit

Nadere informatie

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

Nauwkeurige on-the-fly prestatie-analyse van multi-core processors

Nauwkeurige on-the-fly prestatie-analyse van multi-core processors Nauwkeurige on-the-fly prestatie-analyse van multi-core processors Maarten Heyse Promotor: prof. dr. ir. Lieven Eeckhout Begeleider: Stijn Eyerman Masterproef ingediend tot het behalen van de academische

Nadere informatie

VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 BERINGEN. De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis

VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 BERINGEN. De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis Burg.Geyskensstraat 11 3580 BERINGEN De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis Versie: vrijdag 2 november 2007 2 Toegepaste informatica 1 De Microprocessor Zowel

Nadere informatie

Virtueel Geheugen en demand paging (1)

Virtueel Geheugen en demand paging (1) Virtueel Geheugen en demand paging (1) Programma's zijn vaak niet in hun geheel in het geheugen nodig, vanwege: zelden gebruikte onderdelen groter gedeclareerde arrays dan nodig als programma helemaal

Nadere informatie

Antwoorden vragen en opgaven Basismodule

Antwoorden vragen en opgaven Basismodule Antwoorden vragen en opgaven Basismodule Antwoorden van vragen en opgaven van hoofdstuk 1 1. Is elke combinatorische schakeling een digitale schakeling? Zo nee, waarom niet? Antwoord: Elke combinatorische

Nadere informatie

TI-2720 Operating System Concepten. 6 november 2012, uur. docent: H.J. Sips. Dit is een tentamen met 9 open vragen

TI-2720 Operating System Concepten. 6 november 2012, uur. docent: H.J. Sips. Dit is een tentamen met 9 open vragen TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Sectie Parallelle en Gedistribueerde Systemen TUDelft TI-2720 Operating System Concepten 6 november 2012, 14.00-17.00 uur.

Nadere informatie

Tentamen Computersystemen

Tentamen Computersystemen Tentamen Computersystemen baicosy06 2e jaar bachelor AI, 2e semester 23 september 2013 13u-15u IWO 4.04A (blauw), Academisch Medisch Centrum, Meidreef 29, Amsterdam ZuidOost Het is niet toegestaan communicatieapparatuur

Nadere informatie

1. REGELS VAN DEELBAARHEID.

1. REGELS VAN DEELBAARHEID. REKENEN VIJFDE KLAS Luc Cielen 1. REGELS VAN DEELBAARHEID. Deelbaarheid door 10, 100, 1000 10: het laatste cijfer (= cijfer van de eenheden) is 0 100: laatste twee cijfers zijn 0 (cijfers van de eenheden

Nadere informatie

Computerarchitectuur. Hoofdstuk 3: Instruction-Level Parallelism

Computerarchitectuur. Hoofdstuk 3: Instruction-Level Parallelism Computerarchitectuur Hoofdstuk 3: Instruction-Level Parallelism Kristian Rietveld http://ca.liacs.nl/ Instruction-level Parallelism Doel: gebruik maken van potentiële overlap tussen opeenvolgende instructies.

Nadere informatie

Zomercursus Wiskunde. Module 1 Algebraïsch rekenen (versie 22 augustus 2011)

Zomercursus Wiskunde. Module 1 Algebraïsch rekenen (versie 22 augustus 2011) Katholieke Universiteit Leuven September 011 Module 1 Algebraïsch rekenen (versie augustus 011) Inhoudsopgave 1 Rekenen met haakjes 1.1 Uitwerken van haakjes en ontbinden in factoren............. 1. De

Nadere informatie

Samenvatting Computer Architectuur 2006-2007

Samenvatting Computer Architectuur 2006-2007 Sequentiële logica Wat is sequentiële logica We noemen dit ook wel final state machine. Het neemt een ingang en een huidige toestand en vertaalt die via een combinatorische functie in een uitgang en een

Nadere informatie