OpenDocument

Download Report

Transcript OpenDocument

Datorteknik övning 10
●
Tentamen
●
Pipelining
●
–
Data forwarding
–
Branch delay
–
Load delay
Blockvis dataöverföring
2G1518 Datorteknik
F1
F2
Ö1
Assemblerkod
4 stegs pipeline
F3
Ö2
F4
Ö3
LAB-1
Nios2time
Ö5
LAB-2
Nios2io
F6
Ö6
Hemlab-1
F7
Ö7
LAB-3
F8
Ö8
Hemlab-2
Cache-minnen
F9
Ö9
Hemlab-3
CPU-scheduling
F10
Ö10
F5
Ö4
Tentamen
C-kod
Nios2int
Tentamen
●
Inga hjälpmedel, 6 tal, 10p/tal, 30p för godkänt
●
Varje tal har ett bestämt ämnesområde
–
1. Maskinaritmetik
–
2. Assemblerprogrammering, parameteröverföring
–
3. In- och utmatning, pollning, avbrott
–
4. Cacheminnen
–
5. Pipelining
–
6. Processer och semaforer
Koppling F/Ö/L – tentatal
●
1. Maskinaritmetik
–
Exempelsamling del 6 och del 9
–
Hemlaboration 1:
Maskinnära programmering med C
Koppling kursmoment – tentatal
●
2. Assemblerprogrammering,
parameteröverföring
–
Laboration 1: Nios2time
–
Föreläsning 1–4 och övning 1–3
Koppling kursmoment – tentatal
●
3. In- och utmatning, pollning, avbrott
–
Laboration 2: Nios2io
–
Laboration 3: Nios2int
–
Föreläsning 5 och 7, övning 4, 5 och 7
Koppling kursmoment – tentatal
●
4. Cacheminnen
–
Hemlaboration 2: Cacheminnen
–
Föreläsning 8 och övning 8
Koppling kursmoment – tentatal
●
5. Pipelining
–
Föreläsning 10 och övning 10, idag
Koppling kursmoment – tentatal
●
6. Trådar och semaforer
–
Hemlaboration 3: Trådar och semaforer
–
Föreläsning 9 och övning 9
Redovisa labbarna!
●
Redovisningen ger aha-upplevelser,
särskilt för hemlab 2 om Cacheminnen
●
Boka tid nu
●
Redovisa före tentan
–
Tenta uppgift 4 – hemlab 2
–
Tenta uppgift 6 – hemlab 3
–
Tenta uppgift 3 – Salslab 3 (nios2int) om avbrott
Exempel
10.1
4-stegs pipeline
●
Fetch instruction
●
Decode instruction / Fetch Operand
●
Execute
●
Writeback
FI
FO
EX
WB
Exempel
10.1
4-stegs pipeline
öka pc med 4
register file
aritmetisklogisk enhet
register file
FO
EX
WB
2 st registernummer
FI
pc
instruktionscacheminne
adress
datacacheminne
Exempel
10.1
CPU med 4-stegs pipeline
Program
Memory
n x 16
IR0
PC+n
PC+Imm
Instruction Fetch
Register
File
32 x 32
Instruction Decode
Fetch Operand
ADD
IR1
ALU
RWM
ALU/EXE
IR2
Register
File
32 x 32
WB
Exempel
Data Dependencies
Inför nya datavägar
10.4
Program
Memory
n x 16
IR0
48: R7 <- R1+R4
PC
+2
Instruction Fetch
Register
File
32 x 32
Instruction Decode
Fetch Operand
IR1
50
46: R4 <- R5+R6
ALU
RWM
ALU/EXE
IR2
44: R1 <- R2+R3
Register
File
32 x 32
WB
NYTT
Exempel
10.2
5-stegs pipeline
●
Fetch instruction
●
Decode instruction / Fetch Operand
●
Execute
●
Memory
●
Writeback
FI
FO
EX MEM WB
Exempel
10.2
5-stegs pipeline
öka pc
med 4
register file
aritmetisklogisk enhet
register file
2 st registernummer
FI
pc
instruktionscacheminne
FO
EX MEM WB
adress
datacacheminne
Exempel
10.2
CPU med 5-stegs pipeline
Program
Memory
n x 16
IR0
PC+n
PC+Imm
Instruction Fetch
Register
File
32 x 32
Instruction Decode
Fetch Operand
ADD
PC
IR1
ALU/EXE
ALU
IR2
RWM
MEM
IR3
Register
File
32 x 32
Write Back
Exempel
10.2
Load delay
●
Load R1,12(R8)
●
Addi R2,R1,5
●
Omöjlig data-forwarding bakåt i tiden!
●
Processorn måste stoppa pipelinen
●
Load R1,12(R8)
●
Addi R2,R1,5
FI
FI
FO
EX MEM WB
FI
FO
EX MEM WB
FO
EX MEM WB
FI
FO stall EX MEM WB
Exempel
10.4
Inför nya datavägar
Program
Memory
n x 16
IR0
Register
File
32 x 32
ADD
PC
IR1
+2
ALU
IR2
RWM
IR3
Register
File
32 x 32
NYTT
Exempel
10.2
Figur 7.19 ur boken
Exempel
10.3
Branch delay
●
Bne R2,R1,L
●
Addi R2,R1,5
●
Branch target vid L:
●
Bne hämtas i FI
●
FI
FO
--
--
--
FI squash squash squash squash
FI
FO
EX MEM WB
I FO hämtas registren,
samtidigt hämtas nästa instruktion
●
Branch utförs i FO-steget med extra hårdvara
●
Sedan hämtas branch target-instruktionen
Exempel
10.3
Delayed branching
●
Bne R2,R1,L
●
Addi R2,R1,5
●
Branch target vid L:
●
FI
FO
--
--
--
FI
FO
EX MEM WB
FI
FO
EX MEM WB
Instruktionen närmast efter en hoppinstruktion
utförs alltid, oavsett om hoppet tas eller inte
●
Branch-instruktionen har en "fördröjning"
●
Platsen direkt efter branch kallas delay slot
Exempel
10.6
Beroendegraf
Exempel
10.7
Delay slot
Exempel
10.10
Extentatal
Exempel
10.10
Extentatal
Exempel
10.10
Deluppgift a)
NOP
Exempel
10.10
Deluppgift b)
Exempel
10.10
Deluppgift b)
NOP
NOP
NOP
NOP
Exempel
10.10
Deluppgift c)
Exempel
10.10
Deluppgift c)
NOP
Exempel
10.10
Deluppgift c)
NOP
NOP
Exempel
10.10
Deluppgift d)
Exempel
10.10
●
Deluppgift d)
L1: Load
R2 ← 0(R7)
●
Add
R7 ← R7 + 1
●
Store R2 → 0(R8)
●
Subi
R9 ← R9 – 1
●
Bne
R9,L1
●
Add
R8 ← R8 + 1
●
Clr
R9
Exempel
10.13
●
●
Blockvis överföring
För varje kopiering:
–
adressregistret ökas
–
antalsregistret minskas
startadress
antal bytes
...
När antalsregistret
kommer ner till noll
är överföringen klar
disk status
disk data
...