Oefeningenlessen Geavanceerde Computerarchitectuur
|
|
- Merel Groen
- 5 jaren geleden
- Aantal bezoeken:
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 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 informatieExamen 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 informatieExamen 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 informatieExamen 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 informatieUitwerking 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 informatieExamen 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 informatieComputerarchitectuur. 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 informatieSequentië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 informatieLes 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 informatieExamen 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 informatieExamen 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 informatieLes 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 informatieExamen 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 informatieDigitale 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 informatieComputertechniek 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 informatieComputerarchitectuur. 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 informatieBeter, 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 informatieComputerarchitectuur 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 informatieProeftentamen 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 informatieComputerarchitectuur. 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 informatieVraag 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 informatieTentamen 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 informatieDigitale 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 informatieTentamen 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 informatieExamen 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 informatieComputerarchitectuur. 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 informatiescc = 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 informatieVAN 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 informatieStudentnummer:... 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 informatieExamen 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 informatieExamen 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 informatieDe 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 informatieExamen 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 informatieComputerarchitectuur 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 informatiecomputerarchitectuur 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 informatieComputerarchitectuur 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 informatieExamen 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 informatieEE1410: 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 informatieInformatica: 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 informatieOpgave 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 informatieProeftentamen 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 informatieRAM 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 informatieinformatica. 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 informatieVAN 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 informatieHoe 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 informatie1 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 informatieIndirecte 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 informatiescc =!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 informatie11011 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 informatieOefeningen 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 informatieHoofdstuk 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 informatie17 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.
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 informatieOPDRACHT 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 informatieSequentië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 informatievon-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 informatieJava 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 informatieGeheugenbeheer. 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 informatieGegevens 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 informatieComputerarchitectuur. 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 informatieInhoudsopgave. 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 informatieTECHNISCHE 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 informatieGetalformaten, 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 informatieVan 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 informatieMemoriseren: 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 informatie1=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 informatieONTWERP 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 informatieDeel 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 informatieTentamen 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 informatieLineaire 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 informatieInleiding 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 informatieExamen 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 informatieSamenvatting 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 informatieInformatica: 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 informatieOpgave 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 informatieComputerarchitectuur 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 informatieMulti-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 informatieControle 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 informatieSemaforen. 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 informatieEen 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 informatieZelftest 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 informatiecomputerarchitectuur 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 informatieComputerarchitectuur. 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 informatieAmorized 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 informatieHoofdstuk 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 informatiealgoritmiek - 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 informatieBLOK 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 informatieBij 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 informatieTECHNISCHE 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 informatieAls 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 informatieNauwkeurige 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 informatieVRIJ 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 informatieVirtueel 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 informatieAntwoorden 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 informatieTI-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 informatieTentamen 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 informatie1. 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 informatieComputerarchitectuur. 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 informatieZomercursus 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 informatieSamenvatting 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