Computerarchitectuur. H&P App. C. Pipelining
|
|
|
- Femke Claes
- 9 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Computerarchitectuur H&P App. C. Pipelining Kristian Rietveld
2 Motivatie Pipelining is een techniek die tegenwoordig in iedere CPU wordt gebruikt om de performance te verbeteren. Idee: gebruik maken van parallelisme dat te vinden is in de verschillende acties die nodig zijn om een instructie volledig uit te voeren. Laten we ons verplaatsen naar...
3
4 Assembly lines Wat zien we in de assembly line? De productie bestaat uit meerdere stappen. De stappen worden in parallel uitgevoerd. Productietijd: tijd die het kost om alle stappen te doorlopen. Throughput: aantal auto's per uur. - Aantal auto's dat per uur uit de laatste stap komt. - De throughput wordt gelimiteerd door de langzaamste stap! - We moeten de stappen balanceren.
5 Terug naar de CPU Een CPU voert instructies uit en het uitvoeren van een instructie bestaat uit verschillende stappen. We gaan hier exact hetzelfde principe toepassen: werk aan meerdere instructies in parallel. We noemen elke stap een pipe(line) stage of segment. De tijd tussen de stappen noemen we processor cycle. - Lengte bepaald door de tijd benodigd voor de langzaamste stage. - Vaak 1 clock cycle, heel soms 2, maar nooit meer.
6 Ideale geval Als de stages perfect zijn gebalanceerd en onder ideale omstandigheden, dan is de gemiddelde tijd per instructie met pipelining terug te brengen naar: Time per instruction on unpipelined machines Number of pipeline stages De speedup door pipelining is gelijk aan het aantal stages. - n stages: we werken aan n instructies tegelijkertijd. - Stel het uitvoeren van een instructie duurt 5 tijdunits: 1/5 instructie per tijdunit. Nu beginnen we elke tijdunit aan een nieuwe instructie, dus elke tijdunit is een instructie klaar. 1 instructie per tijdunit, versnelling factor 5. En natuurlijk komen we nooit op het ideale geval uit: - Stages niet perfect gebalanceerd, pipelining heeft wat overhead,...
7 Performanceverbetering Houd goed in de gaten ten opzichte van wat je de performance verbetering in kaart brengt. Startpunt: een processor die meerdere clock cycles per instructie nodig heeft, CPI > 1. Zoals we al zagen gaat in dit geval de CPI omlaag. Of: de processor heeft 1 lange clock cycle per instructie nodig. In dat geval wordt het door middel van pipelining mogelijk de clock cycle korter te maken (klokfrequentie gaat omhoog).
8 Pipelining Pipelining is een techniek in hardware, de programmeur ziet hier niets van, hoeft hier niets voor te doen. We bestuderen nu eerst pipelining aan de hand van een klassieke 5-stage RISC pipeline. - In hoofdstuk 3 bekijken we allerhande geavanceerde technieken die hierop voortbouwen. - In inleveropdracht 2 zullen we deze klassieke pipeline implementeren. Nu eerst: 5 benodigde stappen voor het uitvoeren van een instructie.
9 Implementatie RISC ISA We bekijken een eenvoudige implementatie van een RISC ISA. - In dit ontwerp heeft elke instructie ten hoogste 5 cycles nodig. - We bekijken alleen integer operaties. De stappen zijn als volgt: - Instruction Fetch (IF) Instruction Decode, Register fetch (ID) Execution (EX) Memory (MEM) Write-back (WB)
10 Instruction Fetch (IF) Het idee is het volgende: - Stuur de program counter (PC) naar het geheugen. - Haal de instructie op dat adres op. - Laat de PC naar de volgende instructie verwijzen (4 optellen).
11 Instruction Decode (ID) Decodeer de zojuist opgehaalde instructie. - Welk type? Wat zijn de operanden? Daarnaast worden benodigde register-operanden opgehaald uit de register file. - Vergelijk de registers om te kijken of er moet worden gebrancht. - Voer sign extension uit op de immediate waarde in de instructie, als nodig. - Bereken mogelijke branch target door PC en immediate op te tellen. (Decoding en register read kunnen in parallel in RISC, omdat de registernummers altijd op dezelfde plaats in de instructie staan).
12 Execution (EX) De ALU voert de daadwerkelijke operatie uit. De operanden zijn klaar gezet in de voorgaande cycle. Wat er wordt gedaan hangt af van instructie-type: - Register-register: voer de gevraagde operatie uit op de data opgehaald uit de register file. - Register-immediate: hetzelfde, maar dan op 1 register en immediate. - Memory reference: tel base en offset bij elkaar op om het geheugenadres te bepalen (effective address). Memory reference wordt dus uitgevoerd in geval van load/store instructie.
13 Memory access (MEM) Voer de load of store instructie uit. - Adres is berekend in voorgaande cycle. Ander type operatie: dan gebeurt er niets.
14 Write back (WB) Het resultaat wordt geschreven naar het destination register in de register file. - ALU instructie: resultaat afkomstig van ALU. - Load instruction: resultaat afkomstig van memory system.
15 Executietijden Branch: 2 cycles Store: 4 cycles Alle andere instructies: 5 cycles - (Moeten allen door tot en met de write-back stage). (Enige optimalisaties zijn hier natuurlijk ook mogelijk zonder pipelining).
16 Op naar de pipeline Eigenlijk zijn er weinig wijzigingen nodig: we kunnen gewoon elke clock cycle aan een nieuwe instructie beginnen! Dus hoewel een instructie 5 cycles kost om uit te voeren, beginnen we elke cycle aan een nieuwe instructie.
17 Pipeline voorbeeld
18 RISC RISC blijkt uitermate geschikt voor pipelining door de eenvoud. Je moet er bijv. voor zorgen dat de ALU binnen 1 cycle niet door twee instructies tegelijk wordt gebruikt. - RISC: ALU operatie of load-store, dus de ALU wordt of voor een echte ALU operatie gebruikt of voor adresberekening. We gebruiken aparte instructie en data geheugens (split caches), hierdoor kunnen IF en MEM tegelijkertijd plaatsvinden. Register file wordt op 2 plaatsen gebruikt: ID, WB. Dus de register file moet 2 reads en 1 write per clock cycle kunnen uitvoeren.
19 RISC pipeline Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.2.
20 Pipeline registers De verschillende instructies in uitvoering moeten van elkaar worden geïsoleerd en mogen elkaar niet beïnvloeden. Tussentijdse resultaten moeten worden opgeslagen. Dit gebeurt in pipeline registers die tussen de stages worden geplaatst. De resultaten van ID worden opgeslagen en dienen in de volgende cycle als bron voor de EX stage. - Naam van pipeline register: ID/EX
21 Pipeline registers (2) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.3.
22 Throughput vs. Latency Het is duidelijk dat middels pipelining de throughput wordt verhoogd. De latency neemt echter toe! Door pipeline kost het iets meer tijd om een individuele instructie uit te voeren. - Pipeline register delay, clock skew, enz. Dus hoewel een enkele instructie niet sneller wordt uitgevoerd, zorgt de hogere throughput er juist wel voor dat een programma sneller wordt uitgevoerd (kleinere execution time).
23 Dan nu het slechte nieuws... Tot nu toe klinkt het allemaal heel goed, helaas is het niet zo eenvoudig... Instructies zijn afhankelijk van elkaar - De volgende instructie kan pas worden uitgevoerd, wanneer de voorgaande af is. - Dit zorgt voor vertragingen. Branching: zolang we de uitkomst niet weten, weten we niet waar we verder moeten met het uitvoeren van het programma.
24 Hazards Een hazard verhindert de volgende instructie in het programma om de pipeline te betreden. We onderscheiden 3 klassen van hazards: Structural hazards. Veroorzaakt door resource conflicts. Data hazards. Veroorzaakt door afhankelijkheden tussen instructies. Control hazards. Veroorzaakt door branches en andere instructies die de PC aanpassen.
25 Omgaan met hazards Wanneer er een hazard optreedt moet de uitvoering van de volgende instructie worden vertraagd. - We spreken dan over een pipeline stall. Instructies issued later in tijd worden opgehouden. Instructies issued eerder in tijd moeten verder worden verwerkt om de stall op te lossen. Door het ophouden van instructies ontstaan er 'bubbels' in de pipeline.
26 Structural hazards Een structural hazard komt voor wanneer een bepaalde combinatie van instructies niet kan worden uitgevoerd door resource conflicten. - Voorbeeld: er is 1 register-file write port, maar er bestaat een situatie waarin de pipeline 2 register writes in 1 clock cycle wil uitvoeren. - Voorbeeld: er is een gedeelde single-memory pipeline voor data en instructies. Wanneer een instructie een data memory referentie bevat, kan deze niet tegelijkertijd met de instruction fetch voor de volgende instructie worden uitgevoerd.
27 Structural hazards (2) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.4.
28 Structural hazards (3) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.5.
29 Structural hazards (4) Als een processor kan worden verbeterd om geen structural hazards te hebben, zal deze altijd een lagere CPI hebben. Waarom doen de ontwerpers dit niet altijd? - Heeft te maken met kosten. Een structural hazard komt soms maar weinig voor en daarom wegen de kosten om deze geheel te vermijden niet op tegen de baten.
30 Data hazards Een data hazard komt voor wanneer door pipelining de volgorde waarin de operanden worden gelezen/geschreven verandert ten opzichte van sequentiele executie. Voorbeeld: DADD DSUB AND OR XOR R1, R2, R3 R4, R1, R5 R6, R1, R7 R8, R1, R9 R10, R1, R11
31 Data hazards (2) Vergelijk de volgorde waarin de operanden worden gelezen in opeenvolgende cycles. DADD DSUB AND OR XOR R1, R2, R3 R4, R1, R5 R6, R1, R7 R8, R1, R9 R10, R1, R11 Sequentieel 1: 2: 3: 4: 5: Read Read Read Read Read R2, R1, R1, R1, R1, R3; Write R1 R5; Write R4 R7; Write R6 R9; Write R8 R11; Write R10
32 Data hazards (3) Vergelijk de volgorde waarin de operanden worden gelezen in opeenvolgende cycles. DADD DSUB AND OR XOR R1, R2, R3 R4, R1, R5 R6, R1, R7 R8, R1, R9 R10, R1, R11 Unpipelined 1: 2: 3: 4: 5: Read Read Read Read Read R2, R1, R1, R1, R1, Pipelined R3; Write R1 R5; Write R4 R7; Write R6 R9; Write R8 R11; Write R10 1: 2: 3: 4: 5: IF Read R2, R3; IF EX; Read R1, R5; IF MEM; EX; Read R1, R7; IF Write R1; MEM; EX; Read R1, R9
33 Data hazards (3) Vergelijk de volgorde waarin de operanden worden gelezen in opeenvolgende cycles. DADD DSUB AND OR XOR R1, R2, R3 R4, R1, R5 R6, R1, R7 R8, R1, R9 R10, R1, R11 Unpipelined 1: 2: 3: 4: 5: Read Read Read Read Read R2, R1, R1, R1, R1, Pipelined R3; Write R1 R5; Write R4 R7; Write R6 R9; Write R8 R11; Write R10 1: 2: 3: 4: 5: IF Read R2, R3; IF EX; Read R1, R5; IF MEM; EX; Read R1, R7; IF Write R1; MEM; EX; Read R1, R9
34 Data hazards (4) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.6.
35 Data hazards (5) Hoe lossen we dit op? - Insert stalls. - Zorgt wel voor correcte uitvoering programma, maar vernietigt performance-winst door pipelining. Kunnen we iets slimmers bedenken?
36 Forwarding Als we goed kijken, zien we dat het resultaat van DADD niet nodig is tot na dit resultaat wordt berekend: - DADD, EX stage in cycle 3 produceert het resultaat. - DSUB, EX stage in cycle 4 (!) heeft resultaat pas nodig. We kunnen hier slim gebruik van maken door het resultaat tussen de pipeline registers te verplaatsen. - Dus voordat write back heeft plaatsgevonden! We noemen deze techniek forwarding, bypassing of short-circuiting.
37 Forwarding (2) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.7.
38 Forwarding (3) In het algemeen: een resultaat kan worden geforwardet tussen de pipeline registers behorende bij de uitvoer van de ene unit en de invoer van de andere unit. - Hoeft niet per se ALU naar ALU te zijn. - In het voorbeeld zien we ook MEM -> REG en REG -> REG.
39 Forwarding (4) Voorbeeld: DADD LD SD R1, R2, R3 R4, 0(R1) R4, 12(R1) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.8.
40 Forwarding (5) Helaas kunnen niet alle data hazards met behulp van bypassing worden opgelost... LD DADD AND OR R1, R4, R6, R8, 0(R2) R1, R5 R1, R7 R1, R9 Probleem hier is dat LD pas een resultaat oplevert aan het einde van cycle 4, DADD heeft dit al bij EX aan het begin van cycle 3. Helaas kunnen we de resultaten niet terug in de tijd transporteren.
41 Forwarding (6) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.9.
42 Forwarding (7) Om het probleem op te lossen zullen we een pipeline stall moeten introduceren. - Correcte executie van het programma gaat natuurlijk boven performance! Dit wordt gedaan door een stukje hardware genaamd de pipeline interlock. - Een pipeline interlock detecteert een hazard en introduceert stalls totdat de hazard is opgelost. - Dit gebeurt voor de instructie die de data wil gebruiken totdat de bron instructie deze data produceert. - Interlock zit vaak in ID stage en houdt issue van een instructie tegen.
43 Fowarding (8) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.10.
44 Control hazards Control hazards treden op door conditionele branch instructies. We kunnen niet aan de IF voor de volgende instructie beginnen zolang we de uitkomst niet weten. Een branch kan de PC wel of niet veranderen: - We zeggen taken branch of non-taken branch. Voor een taken branch wordt de PC pas op z'n vroegst aangepast aan het einde van ID. - In ID kan branch address calculation en register comparison worden gedaan.
45 Control hazards (2) Eenvoudigste oplossing: IF na een branch opnieuw doen zodra we in ID van de branch zien dat de branch wordt genomen. - De eerste IF wordt dan effectief gezien een stall. - 1 stall cycle geeft een performance verlies van 10% tot 30% afhankelijk van de mate waarin branches voorkomen. Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.11.
46 Control hazards (3) Er zijn verschillende manieren bedacht om de branch penalty tegen te gaan. - Pipeline vastzetten totdat resultaat bekend is (zagen we zojuist). - Ga ervan uit dat de branch niet wordt genomen. Opletten dat 'processor state' niet wordt veranderd totdat branch uitkomst bekend is. Als branch toch wordt genomen, instructies in de tussentijd uitgevoerd omzetten naar no-ops en IF opnieuw starten bij het branch target.
47 Control hazards (4) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.12.
48 Control hazards (5) Een andere mogelijkheid die voorheen veel is gebruikt is de 'delayed branch': branch instruction sequential successor branch target if taken De sequential successor is in het branch delay slot. Deze instructie wordt altijd uitgevoerd, ongeacht uitkomst van de branch. Het is de taak van de compiler om een geldige en nuttige instructie in het branch delay slot te plaatsen.
49 Control hazards (6) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.14.
50 Control hazards (7) Het aantal stall cycles veroorzaakt door branches heeft zijn weerslag op de behaalde speedup door pipelining. Dit aantal stall cycles wordt bepaald door hoe vaak branches voorkomen en wat de penalty is voor een branch. In het algemeen geldt dat voor diepere pipelines de branch penalty toeneemt. - Een techniek als delayed branches is voor dergelijke pipelines niet meer voldoende.
51 Branch prediction Er wordt uitgebreid gebruik gemaakt van technieken die proberen de uitkomsten van komende branches te voorspellen. We proberen hiermee stalls te vermijden, zoals de predict-not-taken aanpak. - Penalty voor misprediction is hoog: werk dat alvast is uitgevoerd moet allemaal ongedaan worden gemaakt (pipeline flush). We bekijken statische en dynamische aanpakken.
52 Static Branch Prediction Het idee is om een programma een aantal keer uit te voeren en 'op te nemen' of branches wel of niet worden genomen. - Losse branches hebben vaak een grote neiging om of bijna altijd te worden genomen of niet. - Bijv. loop branch of een if-conditie voor een error die in de praktijk nooit voorkomt. Vervolgens compileren we het programma opnieuw gebruikmakende van deze informatie. We leggen een voorspelling voor de branches vast in de code. Met SPEC zien we misprediction rates tussen de 3% en 24% (integer-programs doen het slechter).
53 Dynamic Branch Prediction Dynamic branch prediction wordt door de hardware gedaan tijdens het uitvoeren van het programma. Dit wordt gedaan aan de hand van data uit het verleden. - Branch-prediction buffer: een klein geheugen dat wordt geindexeerd met het lage deel van het adres van een branch instructie. (Vergelijk caching!) - Hierdoor wordt een bit gelezen die zegt of de vorige keer de branch wel of niet was genomen. - Het uiteindelijke resultaat wordt weer weggeschreven naar dit geheugen.
54 Dynamic Branch Prediction (2) 1-bit prediction heeft een probleem - Stel een branch wordt bijna altijd genomen, maar nu een keer niet. => Mispredict en de bit wordt omgedraaid. - Na die ene keer niet-genomen, wordt de branch juist weer genomen. Weer een mispredict. Om dit op te lossen wordt vaak een 2-bit methode gebruikt. - Pas na 2 foute voorspellingen wordt de bit omgedraaid. Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.18.
55 Dynamic Branch Prediction (3) We kunnen bijvoorbeeld een branch-prediction buffer maken met 4096 entries van 2-bits. Klinkt misschien te simpel om waar te zijn: maar geeft een misprediction rate tussen 1% en 18% voor SPEC89. Veel grotere buffers laten voor SPEC89 benchmarks geen grote verbeteringen zijn.
56 Implementatie Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.21.
57 Implementatie data hazards Stap van ID naar EX wordt vaak instruction issue genoemd. In ID kan worden nagegaan of er voor een instructie data hazards bestaan; zo ja: stall. Voorbeeld: bron uit load instructie, Read-After-Write (RAW) hazard. - Resultaat load instructie (write) wordt door de direct volgende instructie gelezen (read). - Met welke gevallen kunnen we te maken krijgen?
58 Impl. data hazards (2) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.24.
59 Impl. data hazards (3) Een en ander wordt geimplementeerd door gegevens uit de pipeline registers tussen de stages te vergelijken. Als er een hazard wordt gedetecteerd kunnen alle control signalen in ID/EX op 0 worden gezet, wat resulteert in een no-op. - IF/ID wordt hergebruikt om de gestallde instructie vast te houden. Forwarding: soortgelijk, alleen meer gevallen om te bekijken.
60 Impl. data hazards (4) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.27.. De multiplexers bij de ALU invoeren moeten worden uitgebreid voor alle verschillende forwarding invoeren.
61 Exceptions In een processor kunnen allerlei interrupts, faults en exceptions optreden. Voorbeelden: - I/O device interrupt. - System call. - Integer overflow. - Divide by zero. - Page fault. - Misaligned memory access. - Memory protection violation. - Illegal instruction. Vele verschillende eigenschappen, belangrijkste voor nu: resume vs. terminate.
62 Exceptions (2) Terminate: programma stopt na optreden exception. Resume: instructie waar exception optrad moet worden herhaald: - Exception vindt plaats. - Een ander programma (OS) slaat state huidige programma op. - Exception wordt verholpen. - State programma wordt teruggezet. - Fault instruction wordt opnieuw gestart. Wanneer een pipeline dit ondersteunt, wordt deze restartable genoemd.
63 Exceptions (3) Het moeilijkste type exception om te ondersteunen heeft twee eigenschappen: - (1) vindt plaats 'midden' in de instructie - (2) moet restartable zijn. Dit is nodig om virtual memory te kunnen ondersteunen. Tijdens de MEM stage kan een page fault optreden. Wanneer dit wordt opgemerkt zijn de instructie na de fault instruction al in uitvoering!
64 Exceptions (4) Alle instructies voor de fault instruction moeten worden afgemaakt, die na moeten worden afgebroken. Dit kan als volgt worden bereikt: - Bij de volgende IF wordt een trap instruction in de pipeline gezet. - Voor de instructies tussen deze trap en de fault instruction worden alle writes uitgezet zodat de processor state niet wordt aangepast. (Bijv. door nullen in de pipeline registers te schrijven). - De PC van de fault instructie wordt opgeslagen en later gebruikt voor de restart.
65 Exceptions (5) We onderscheiden precise en imprecise exceptions. Precise: pipeline kan instructies na de fault instructie afmaken en fault instructie later herstarten. Imprecise: wanneer bovenstaande niet kan worden gegarandeerd. - Voorbeeld: source operanden van de fault instruction al overschreven; bijvoorbeeld wanneer fault instruction langer in uitvoering is dan instructies die erop volgen. Sommige CPUs ondersteunen beide typen exceptions.
66 ISA complications Garantie MIPS instructie set: resultaat wordt alleen aan einde pipeline weggeschreven (committed). - Processor state wordt tussentijds niet aangepast. Bij sommige instructiesets bestaat deze garantie niet en wordt implementatie precise exceptions veel ingewikkelder. - Instructies die tussentijds processor state aanpassen moeten dan in geval exception worden teruggedraaid. - Aanpassingen uitstellen kan niet altijd als de volgende stappen van de instructie afhankelijk zijn van deze wijziging. - Er bestaan ook CISC architecturen met instructies die tussentijds het RAM geheugen aanpassen...
67 ISA complications (2) Multicycle operaties geven ook problemen met pipelining. Onderstaande VAX instructies verschillen in aantal klokcycles: kan zijn van één tot wel honderden cycles. - Vele data hazards tussen en ook binnen instructies. - Alle instructies binnen zelfde aantal klokcycles laten uitvoeren te ingewikkeld en leidt tot zeer lange pipeline. Hoe passen we dan toch pipelining toe? MOVL ADDL3 SUBL2 MOVC3 R1,R2 42(R1),56(R1)+,@(51)
68 ISA complications (3) Oplossing zagen we al een keer voorbij komen: - De CISC instructies worden omgezet in meerdere microinstructies. - Vervolgens worden de micro-instructies gepipelined. Intel doet precies hetzelfde (sinds 1995) en noemt dit micro-ops. Hier zien we weer waarom sinds de jaren 90 RISC cores standaard zijn geworden.
69 Multicycle operaties Floating-point operaties duren relatief gezien langer dan integer operaties. - Het is hierdoor niet praktisch om floating-pointer operaties binnen 1 of 2 klokcycli af te ronden - Dit zou een lage klokfrequentie betekenen, omdat er veel werk binnen die ene cyclus moet worden gedaan. Hoe lossen we dit op? - Zouden we floating-point operaties een langere latency kunnen geven dan integer operaties?
70 Multicycle operaties (2) Zouden we floating-point operaties een langere latency kunnen geven dan integer operaties? Dit is precies wat we kunnen doen: - We herhalen de EX stage zolang nodig. Aantal herhalingen varieert per operatie. - We kunnen meerdere functional units hebben waar we een instructie naar toe kunnen sturen. Als een benodigde functional unit voor een (FP-)instructie bezet is: stall door structural hazard.
71 Multicycle operaties (3) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.33.
72 Multicycle operaties (4) We kunnen de EX-stage ook laten bestaan uit meerdere pipeline segments. Op die manier kunnen we bijvoorbeeld aan meerdere FP adds tegelijkertijd werken. We kunnen voor elke functional unit definieren: - Latency: minimum aantal cycles tussen instructie dat resultaat produceert en instructie dat resultaat gaat gebruiken (aantal stages na EX waarin het resultaat wordt geproduceerd). - Initiation / repeat interval: minimum aantal cycles tussen two issues van hetzelfde type. Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.34.
73 Multicycle operaties (5) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.34.
74 Multicycle operaties (6) Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.37. Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.38.
75 Multicycle operaties (7) De toevoeging van multicycle operaties brengt een aantal nieuwe complicaties met zich mee: Divide unit is niet pipelined, hierdoor kunnen structural hazards voorkomen. Instructies hebben verschillende latencies, hierdoor kan het aantal register file writes binnen 1 cycle groter zijn dan 1. - En door de langere latencies komen RAW hazard stalls vaker voor. Instructies komen niet meer in de juiste volgorde aan het einde van de pipeline, hierdoor kunnen write after write hazards voorkomen. - Tevens geeft dit problemen bij het implementeren van precise exceptions.
76 MIPS R stage pipeline, zodat klokfrequentie omhoog kan. Taken from Computer Architecture: A Quantitative Approach, fifth edition. Fig. C.41. IF PC selection, start i-cache access. IS Tweede helft i-cache access. RF Instruction decode, register fetch, i-cache hit detection. EX Execution. DF Data fetch, eerste helft cache access. DS Tweede helft cache access. TC Tag check, hadden we een hit? WB Write-back voor loads en reg-reg.
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
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
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
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.
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
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:
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
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
Computerarchitectuur. H&P Ch 2. Memory Hierarchy Design
Computerarchitectuur H&P Ch 2. Memory Hierarchy Design Kristian Rietveld http://ca.liacs.nl/ Motivatie Hoe dichter bij de CPU, hoe sneller het geheugen. - Maar ook: kleiner en duurder. Programmeurs willen
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
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
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.
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
Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?
Hoofdstuk 3: Processen: Beschrijving en Besturing Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces? 1 Wat is een proces? Een proces is een programma in uitvoering
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
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
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
Hoe werkt een computer precies?
Hoe werkt een computer precies? Met steun van stichting Edict Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Overview Introductie SIM-PL Simulatietool voor werking computer
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
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
Computerarchitectuur. Hoofdstuk 1: Introductie
Computerarchitectuur Hoofdstuk 1: Introductie Kristian Rietveld http://ca.liacs.nl/ Inhoud Bestuderen van de opbouw van moderne computerarchitecturen. Wat gebeurt er allemaal binnen een Central Processing
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)
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,
High Performance Computing
High Performance Computing Kristian Rietveld ([email protected], kamer 138) Groep Computer Systems High-Performance Computing Optimizing compilers (generieke codes, maar ook specifieke rekenkernels). Parallel
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
slides2.pdf April 12,
Werking van CPU CSN CS2 CPU, I/O en Memory management Piet van Oostrum 12 april 2002 De ALU kan alleen eenvoudige operaties uitvoeren (bijv. twee getallen optellen, vermenigvuldigen of testen of iets >
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
Digitale technieken Microprocessoren
Digitale technieken Microprocessoren ir. Patrick Colleman Inhoudstafel Inhoudstafel. Afkortingen. Inleiding - voorwoord 1 Hoofdstuk 1 : Voorstelling van getallen en karakters. 2 1.1 Voorstelling van binaire
Wat is een busverbinding?
Wat is een busverbinding? gemeenschappelijke verbinding tussen CPU, geheugen en I/O-schakelingen onderscheid tussen: databus/adresbus/controlbus intern/extern serieel/parallel unidirectioneel/bidirectioneel
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,
Memory Management. Virtual Memory. Eisen Memory Management. Verdelen geheugen over meerdere processen
Memory Management Process control information Entry point to program Process Control Block Verdelen geheugen over meerdere processen Program Branch instruction Virtual Memory Data Reference to data Processen
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
Centrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen??
Vragen?? Vandaag Hoofdstuk 4: threads (tentamenstof : 4.1 t/m 4.2) Kleine Opgaven 4.1 (niet alleen ja of nee, ook waarom!) en 4.4 inleveren maandag Centrale begrippen hoofdstuk 3 processen proces state:
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
' 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
Tentamen Computersystemen
Tentamen Computersystemen baicosy06 2e jaar bachelor AI, 2e semester 24 september 2013 13u-15u IWO 4.04A (blauw), Academisch Medisch Centrum, Meidreef 29, Amsterdam ZuidOost Het is niet toegestaan de communicatie
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
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)
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
Computerarchitectuur en Netwerken. Computerarchitectuur
Computerarchitectuur en Netwerken 1 Computerarchitectuur Lennart Herlaar 2 september 2015 Opbouw van het vak Eerst (6 keer) over de opbouw van computer en operating system Collegedictaat Systeemarchitectuur
Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015
Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015 Computersysteem Een systeem dat rekenkundige operaties, data manipulaties en beslissingen kan uitvoeren, aan de hand
Debugging in embedded en native systemen met GDB
Debugging in embedded en native systemen met GDB A.M. ten Doesschate July 15, 2015 Abstract Een korte beschrijving : intro gebruik met welke tools en hulpmiddelen van de GDB setup en een summier aantal
Inhoud vandaag. Interrupts. Algemeen ARM7 AIC
Inhoud vandaag Interrupts Algemeen ARM7 AIC Interrupts Wat is een interrupt? Een interrupt is een onderbreking van de huidige bezigheden ten gevolge van een externe gebeurtenis, zodanig dat de bezigheden
Praktische Toets Computerarchitectuur
Praktische Toets Computerarchitectuur Oefentoets, december 2016 Examinator: dr. K. F. D. Rietveld De praktische toets is open boek. Echter zijn alleen het voorgeschreven tekstboek, of materiaal uitgeprint
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
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
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
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?
Les 11: systeemarchitectuur virtuele machines
Les 11: systeemarchitectuur virtuele machines Geavanceerde computerarchitectuur Lieven Eeckhout Academiejaar 2008-2009 Universiteit Gent Virtuele machines Motivatie Interfaces Virtualisatie: inleiding
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
Antwoorden zijn afgedrukt!!!!!!!
Computerorganisatie INF/TEL (233) februari 2, 9. 2.3 uur 8 bladzijden met 9 opgaven 3 bladzijden met documentatie Let op: Vul het tentamenbriefje volledig in (d.w.z. naam, studentnummer, naam vak, vakcode,
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
ICT Infrastructuren: Processen en Threads. 18 november 2013 David N. Jansen
ICT Infrastructuren: Processen en Threads 18 november 2013 David N. Jansen Datum en Ajd van werkcollege na overleg met de aanwezigen: donderdag 8:45 10:30 Leerdoel voor vandaag. Stallings hoofdst 2 4 Hoofddoelen
Opgaven Registers Concurrency, 29 nov 2018, Werkgroep.
Opgaven Registers Concurrency, 29 nov 2018, Werkgroep. Gebruik deze opgaven om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht opgaven. 1. Safe Integer: Van een
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
Informatica Universiteit van Amsterdam. Een multi-architectuur C-compiler voor SIM-PL. Robin Perz. 20 augustus Bachelor Informatica
Bachelor Informatica Informatica Universiteit van Amsterdam Een multi-architectuur C-compiler voor SIM-PL Robin Perz 20 augustus 2013 Supervisor(s): Toto van Inge (UvA) Signed: Toto van Inge (UvA) 2 Samenvatting
Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte
Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte Voor deze oefeningenles heb je de handleiding van de uitgedeelde ARM processor nodig. Je kan deze vinden op de website van het
Digitale Systeem Engineering 1. Week 4 Toepassing: Pulse Width Modulation Jesse op den Brouw DIGSE1/2013-2014
Digitale Systeem Engineering 1 Week 4 Toepassing: Pulse Width Modulation Jesse op den Brouw DIGSE1/2013-2014 PWM basics Het regelen van het toerental van een elektromotor kan eenvoudig worden gedaan door
De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2)
De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2) Timloto o.s. / E. Gernaat / ISBN 978-90-79302-06-2 Op dit werk is de Creative Commens Licentie van toepassing. Uitgave: september 2012
De Arduino-microcontroller in de motorvoertuigentechniek (2)
De Arduino-microcontroller in de motorvoertuigentechniek (2) E. Gernaat (ISBN 978-90-79302-11-6) 1 Procescomputer 1.1 Microprocessoren algemeen De informatie-verwerking zoals is behandeld, is vrijwel geheel
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
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
2 Algemene opbouw van een computersysteem
Procescomputer E. Gernaat 1 Microprocessoren algemeen Informatie-verwerking zoals behandeld is momenteel vrijwel geheel overgenomen door microprocessoren. Wanneer we voortborduren op het idee van combinatorische
Uitleg. Welkom bij de Beverwedstrijd 2006. Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden.
Uitleg Welkom bij de Beverwedstrijd 2006 Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden. Je krijgt 5 vragen van niveau A, 5 vragen van niveau B en 5 vragen van niveau C. Wij denken
Inleiding Practicum Operating Systems
Inleiding Practicum Operating Systems Mattias Holm & Kristian Rietveld Doel - In komende 3 practica zullen we gaan werken met een custom OS. - Kort introduceren van: - Hardware. - Kernel. - Tools. - De
Meervoudige Smart-Card Duplicator. Gebruiksaanwijzing
Meervoudige Smart-Card Duplicator Gebruiksaanwijzing Project Specificaties De Smart Card Duplicating PCB is kan zes verschillende type smartcards lezen en schrijven, die allemaal gebaseerd zijn op de microchip
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
Geheugen en Adressering. Binding. Binding (2) Logische en Fysieke adresruimten. relocatie register. Dynamic loading
Geheugen en Adressering Binding Geheugen (main memory, primary storage) is noodzakelijk voor de uitvoering van programma's. te beschouwen als array van adresseerbare bytes (of woorden). verschillende processen
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
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
Hoofdstuk 2. De Von Neumann-architectuur
Input Interface Output Interface Informatica Deel III Hoofdstuk 2 De Von Neumann-architectuur 2.1. Organisatie. De overgrote meerderheid der digitale computers zijn georganiseerd zoals weergegeven in fig.
