SOCS 4.4 Pipelining - 4.15 Misvattingen en valkuilen

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/35

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

36 Terms

1
New cards

Wat is pipelining?

Een techniek waarbij een instructie in verschillende overlappende stappen wordt opgesplitst en uitgevoerd in een pijplijnstructuur, wat resulteert in verhoogde doorvoer en efficiënter gebruik van hardwarebronnen.

2
New cards

Waarom is pipelining belangrijk?

Pipelining verhoogt de prestaties van een processor door meerdere instructies tegelijkertijd te verwerken, wat de totale uitvoeringstijd per programma verkort en de klokcyclustijd verlaagt.

3
New cards

Doel van pipelining

Maximaliseren van de doorvoer door zoveel mogelijk instructies tegelijk in uitvoering te hebben, zonder dat dit de correcte uitvoering beïnvloedt.

4
New cards

Stages in een typische 5-staps pipeline (RISC-V)

Instruction Fetch (IF), Instruction Decode/Register Fetch (ID), Execution/Effective Address Calculation (EX), Memory Access (MEM), Write-Back (WB).

5
New cards

Pipeline throughput

Het aantal instructies dat per tijdseenheid wordt voltooid. Door pipelining kan de throughput significant toenemen, afhankelijk van het aantal pipeline-stages.

6
New cards

Pipeline latency

De tijd die het duurt om één enkele instructie volledig uit te voeren, van begin tot eind, inclusief alle pipeline-stages.

7
New cards

Structurele hazard

Treedt op wanneer hardwarebronnen, zoals een geheugen of een ALU, tegelijkertijd nodig zijn door meerdere pipeline-stages, wat kan leiden tot stalls.

8
New cards

Voorbeeld van structurele hazard

Twee instructies proberen tegelijkertijd toegang te krijgen tot dezelfde geheugenmodule in een processor met één lees-/schrijfpoort.

9
New cards

Data hazard

Een situatie waarin een instructie afhankelijk is van de uitvoer van een vorige instructie die nog niet voltooid is.

10
New cards

Types van data hazards

Read-after-Write (RAW), Write-after-Write (WAW), Write-after-Read (WAR).

11
New cards

Control hazard

Ontstaat bij vertakkingsinstructies waarbij de uitkomst (branch taken/not taken) onbekend is totdat de branch-evaluatie is voltooid.

12
New cards

Voorbeeld van een control hazard

Een "beq" (branch equal) instructie waarbij de volgende instructie niet zeker is totdat de branch-conditie is geëvalueerd.

13
New cards

Oplossingen voor control hazards

Gebruik van branch delay slots, static branch prediction, dynamic branch prediction, en sneller branch target berekenen.

14
New cards

Wat zijn branch delay slots?

Lege instructies in de pipeline die ontstaan na een branch-instructie, meestal gevuld met nuttige instructies om de impact van de branch delay te minimaliseren.

15
New cards

Static branch prediction

Een vooraf bepaalde voorspelling (bijvoorbeeld "always taken" of "always not taken") die eenvoudig te implementeren is, maar niet altijd accuraat.

16
New cards

Dynamic branch prediction

Voorspellingen gebaseerd op runtime-gedrag met behulp van hardware zoals branch history tables, om adaptief te reageren op vertakkingspatronen.

17
New cards

1-bit branch predictor

Een eenvoudig predictiemechanisme waarbij de voorspelling schakelt tussen 'taken' en 'not taken' na elke misvoorspelling.

18
New cards

2-bit branch predictor

Een robuustere voorspeller die alleen verandert na twee opeenvolgende misvoorspellingen, wat het effect van schommelingen minimaliseert.

19
New cards

Branch target buffer (BTB)

Een hardwaretabel die het doeladres en de uitkomst van eerdere branches opslaat, waardoor vertakkingslatentie wordt verminderd.

20
New cards

Forwarding (data forwarding)

Een techniek waarbij gegevens direct worden doorgestuurd van een uitvoerfase naar een eerdere uitvoerfase om data hazards te vermijden.

21
New cards

Pipeline interlocking

Een hardwaremechanisme dat de uitvoering van een instructie uitstelt totdat alle benodigde bronnen beschikbaar zijn om stalls te voorkomen.

22
New cards

Wat is speculative execution?

Het speculatief uitvoeren van instructies op basis van voorspellingen, waarbij onjuiste resultaten worden weggegooid indien de voorspelling verkeerd was.

23
New cards

Voordelen van pipelining

  1. Hogere doorvoer, 2) Lagere gemiddelde CPI, 3) Verbeterde hardware-efficiëntie, 4) Mogelijkheid tot complexere architecturen.

24
New cards

Nadelen van pipelining

  1. Grotere ontwerpcomplexiteit, 2) Gevoeligheid voor stalls en hazards, 3) Verhoogd energieverbruik, 4) Moeilijkere foutdiagnose.

25
New cards

Superscalair

Een architectuur waarin meerdere instructies per klokcyclus kunnen worden uitgevoerd door gebruik te maken van meerdere execution units.

26
New cards

Dynamic multiple issue

De hardware beslist tijdens runtime welke instructies parallel kunnen worden uitgevoerd op basis van beschikbaarheid en afhankelijkheden.

27
New cards

Out-of-order execution

Een techniek waarbij instructies worden uitgevoerd zodra hun operanden beschikbaar zijn, ongeacht de volgorde in het programma.

28
New cards

Wat is een reorder buffer (ROB)?

Een buffer die resultaten opslaat totdat ze veilig kunnen worden gecommit, wat precisie en volgorde behoudt in out-of-order execution.

29
New cards

Wat is pipeline stall?

Een onderbreking in de normale doorvoer van de pipeline door een hazard, waarbij de uitvoering tijdelijk wordt gepauzeerd.

30
New cards

Formule voor CPI in een pipeline

CPI = Ideal CPI + Pipeline stall cycles per instructie.

31
New cards

Formule voor pipeline speedup

Speedup = (Aantal pipeline-stages) / (1 + Stalls per instructie).

32
New cards

Precise exceptions

Exceptions waarbij de toestand van de processor exact overeenkomt met de instructievolgorde, essentieel voor foutcorrectie en debugging.

33
New cards

Voorbeeld van een precise exception

Een division-by-zero fout waarbij de pipeline wordt geleegd en de fout correct wordt verwerkt voordat andere instructies verdergaan.

34
New cards

Impact van cache op pipelining

Een efficiënte cache vermindert memory latency, wat stalls in de pipeline minimaliseert en de throughput verhoogt.

35
New cards

Instruction-level parallelism (ILP)

Het potentieel binnen een programma om instructies gelijktijdig uit te voeren, wat wordt benut door technieken zoals pipelining en superscalair ontwerp.

36
New cards

Pipeline bubble

Een lege plaats in de pipeline veroorzaakt door een stall of hazard, wat de prestaties verlaagt.