T7.2/T7.3/T8.1/T8.2 Samlebåndsprosessor med 5 steg Flashcards

1
Q

Hvorfor har flersykelprosessoren dårlig ytelse?

A

Viktigste grunnen: Bruker flere klokkesykler på hver instruksjon

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hvordan kan man få flersykelprosessoren til å ha bedre ytelse

A

Utnytte parallellitet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hva går samlebåndsprinsippet ut på

A

En implementeringsteknikk der flere instruksjoner blir utført overlappende

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hva er fordelene og ulempene med en enkeltsykelprosessor?

A

CPI: Lav
Sykeltid: Høy
Areal: Lav
Kompleksitet: Lav

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hva er fordelene og ulempene med en flersykelprosessor?

A

CPI: Høy
Sykeltid: Lav
Areal: Lavere
Kompleksitet: Litt høyere

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hva er fordelene og ulempene med en samlebåndsprosessor?

A

CPI: Lav til lavere
Sykeltid: Lav til lavere
Areal: Lav til høy
Kompleksitet: Middels til høy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Hva er fordelene ved samlebåndsprosessoren sammenliknet med flersykelprosessoren og enkeltsykelprosessoren?

A

Økt ytelse: kan utnytte parallellitet og dermed øke gjennomstrømningen av instruksjoner
Bedre ressursutnyttelse: Bruk av samlebånd gjør det mulig å bruke flere enheter samtidig
Redusert klokkesykeltid
Høy skalerbarhet: Samlebåndsprosessorer kan enklere skaleres ved å legge til flere trinn i samlebåndet
Forbedret instruksjonsgjennomstrømning

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hva er ulempene ved samlebåndsprosessoren sammenliknet med flersykelprosessoren og enkeltsykelprosessoren?

A

Høy design kompleksitet
Må håndtere stall og hazards
Har en øvre grense for ytelsesforbedring
Økt strømforbruk
Mer krevende feilhåndtering

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hva er stegene i samlebåndet?

A
  1. Instruksjonshenting (IF)
  2. Instruksjonsdekoding og registerlesing (ID)
  3. Utføring (EX)
  4. Minneaksess (MEM)
  5. Tilbakeskriving (WB)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Oppstartskostnad

A

Det tar n-1 klokkesykler å fylle et n-stegs samlebånd

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Hva vil balanse i et samlebånd si?

A

Hvor godt vi lykkes med å fordele tiden mellom stegene i samlebåndet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Hvordan påvirker oppstartskostnad i samlebåndet ytelse?

A

Høy oppstartskostnad reduserer ytelsen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hvordan påvirker balanse mellom steg i samlebåndet ytelse?

A

For optimal ytelse bør hvert steg i samlebåndet ta omtrent like lang tid å fullføre. Dersom ett steg tar betydelig lengre tid enn de andre - flaskehals - redusert total gjennomstrømning.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
  • Farer (Hazards)
A

Programmet kan ikke utføres fordi det mangler noe

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  • Strukturfare
A

En enhet instruksjon trenger er ikke tilgjengelig

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
  • Datafare
A

Instruksjonen kan ikke utføres forid data ikke er tilgjengelig

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Hvordan kan datafarer unngås?

A

Med forwarding

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Load-use datafare

A

En spesifikk form for datafare der hvor data som blir lastet opp av en load instruksjon ikke har blitt tilgjengelig enda fordi de trengs av en annen instruksjon

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Hva kan en load-use datafare føre til?

A

Samlebånds stopp / boble

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Samlebåndsstopp / boble

A

Et stopp som initieres for å løse en fare

21
Q
  • Kontrollfare (forgreiningsfare)
A

Vi vet ikke hvilken instruksjon som skal utføres

22
Q
  • Avhengighet
A

En egenskap ved programmet

23
Q
  • Fare
A

En avhengighet som påvirker utføringen av programmet på en gitt maskin

24
Q
  • Hva er forskjellen mellom avhengigheter og farer?
A

En avhengighet er en egenskap ved programmet, imens en fare er en avhengighet som påvirker utføring av et program på en gitt datamaskin

25
Q
  • Hva går unngåelse strategien for å håndtere farer ut på?
A

Unngå ressurskonflikter ved å ta gode arkitekturvalg

26
Q
  • Hva går videresending strategien for å håndtere farer ut på?
A

En metod der man løser en datafare ved å hente det manglende dataelementet fra en interne buffer istedenfor å vente på at den skal komme fra registre eller minnet
Går ut op at man legger til ekstra maskinvare som sender data direkte til instruksjonen som trenger dem

27
Q
  • Hva går stans strategien for å håndtere farer ut på?
A
  • Sette inn bobler: Innføre “bobler” i samlebåndet, som er tomme klokkesykluser, for å gi tid til at dataavhengigheter blir løst.
  • Stoppe instruksjoner: Midlertidig stoppe instruksjoner som er i ferd med å bli utført, slik at nødvendige data kan bli tilgjengelige før instruksjonen fortsetter.
28
Q
  • Hva går prediksjonsstrategien for å håndtere farer ut på?
A

En metode som antar at gitt utfall for en instruksjon også jobber utifra den antagelsen istedenfor å vente og se hva det faktiske utfallet blir

29
Q

Hvordan implementeres kontroll i 5-stegs samlebåndsprosessoren?

A

Ved å plassere kontrollenheten i instruksjonsdekodingsteget og la kontrollordet følge instruksjonen gjennom samlebåndsregistrene.

30
Q

Hvordan implementeres kontroll i instruction fetch steget i samlebåndet?

A

Kontrollsignalene for å lese instruksjonsminnet og skrive til programtelleren (PC) er alltid aktivert, så det er ingen spesielle kontrollsignaler som må settes i dette steget.

31
Q

Hvordan implementeres kontroll i instruction decode steget i samblebåndet?

A

De to kilde registrene er alltid på samme plass i RISC-V instruksjonsformatet, så det er ingen spesielle kontrollsignaler som må settes i dette steget.

32
Q

Hvordan implementeres kontroll i execution/address calculation steget i samlebåndet?

A

Kontrollsignalene som settes her er ALUOp og ALUSrc. Disse signalene velger ALU-operasjonen og om ALU skal bruke data fra registeret eller en tegn-utvidet immediate-verdi som input.

33
Q

Hvordan implementeres kontroll i memory access steget i samblebåndet?

A

Kontrollsignalene som settes i dette steget er Branch, MemRead og MemWrite. Disse signalene aktiveres avhengig av om instruksjonen er en gren, load eller store.

34
Q

Hvordan implementeres kontroll i tilbakeskrivnings steget i samblebåndet?

A

Kontrollsignalene MemtoReg og RegWrite bestemmer om ALU-resultatet eller minneverdien skal skrives tilbake til registerfilen, og aktiverer skrivingen av den valgte verdien.

35
Q

Hvordan kan videresending brukes til å håndtere datafarer?

A

Legger til maskinvare som bytter ut verdien lest fra registerfilen med den oppdaterte verdien - unngår at en instruksjon ikke får tak i data produsert av en tidligere instruksjon

36
Q

Hvordan implementerer man videresending?

A
  • Lagrer registernumrene i samlebåndsregistre
  • Legger til en videresendingsenhet som velger den riktige verdien
  • Utvider multiplekserne på ALU-inngangene slik at de kan ta imot verdier fra EX/MEM og MEM/WB
37
Q

Hvordan kan stopping brukes til å håndtere datafarer - spesielt les-bruk (“load-use hazards”)?

A

Man legger til maskinvare for å “holde igjen” verdien. Denne maskinvare lager et hull/”bubble” i samlebåndet og holder samme verdi i PC og IF/ID

38
Q

Hvordan lager man et hull/”bubble” i samlebåndet?

A

Ved å sette nødvendige kontrollsignaler til 0

39
Q

Hvordan påvirker videresending prosessorens ytelse?

A

Man bruker videresending så mye som mulig for å unngå ytelsestap

40
Q

Hvordan påvirker stopping prosessorens ytelse?

A

Vi bruker stopping når vi må, men for ytelse lønner det seg å ikke generere kode med les-bruk farer som utløser behovet for stopping

41
Q
  • Kontrollfarer
A

Oppstår ved betingede forgreiningsinstruksjoner fordi vi ikke vet om vi skal utføre neste instruksjon eller den instruksjonen etter vi hopper til før etter EX-steget

42
Q

Hvordan kan kontrollfarer håndteres med stans?

A

Ved å stoppe på alle betingede forgreiningsinstruksjoner

43
Q
  • Hvordan påvirker stans av kontrollfarer prosessorens ytelse?
A

Det gir en uakseptabel ytelsesreduksjon - vi mister 2 klokkesykler per forgreiningsinstruksjon og forgreiningsinstruksjoner er vanlige

44
Q

Hvordan kan kontrollfarer håndteres med prediksjon?

A
  • Man tar sjansen på at forgreiningsinstruksjonen ikke gir hopp - og henter neste instruksjon slik vi vanligvis gjør
  • Hvis vi tar feil, fjerner vi instruksjonene som ikke skal utføres fra samlebåndet ved å sette kontrollsignalene til 0 i samlebåndsregistrene
  • Man må gjøre dette for IF, ID, og EX når grenen når MEM stadiet
45
Q

Hvordan påvirker prediksjon av kontrollfarer prosessorens ytelse?

A
  • Øker belastningen på prosessoren.
  • Riktig prediksjon kan forhindre feil og redusere behovet for kostbare feilrettinger og forbedre ytelse
  • Kan gjøre systemet mer komplekst og påvirke ytelsen negativt
46
Q

I hvilket tilfelle er det forgreiningsprediksjon sparer tid?

A

Dersom forgreiningsinstruksjonen ikke gir hopp

47
Q

Hvordan flusher man IF?

A

Legger til ett kontrollsignal, kalt IF.Flush, som setter instruksjonsregisteret IF/ID til 0, dermed blir den hentede instruksjonen gjort om til en nop

48
Q

Hvordan detekterer man forgreining tidlig?

A

Utfører beq i ID ved å:
- Regne ut måladressen
- Sjekke om registerverdiene er like

49
Q

Dynamisk forgreiningsprediksjon

A

Prediksjon av grener ila. kjøretid vha. kjøretidsinformasjon