Beruflich Dokumente
Kultur Dokumente
CPU
plan
– Organisation de la CPU
– Organisation du processeur
– Organisation des registres
– Cycle de l’instruction
– Cycle normal
– Interruptions
plan
plan
– Pipeline
– Pipeline de base
– Pipeline à 3 étages
– Pipeline à 5 étages
– Les aléas
– Aléa structurel
– Aléa de données
– Aléa de contrôle
plan
– Améliorations
– Architecture superscalaire
– Architecture VLIW
organisation
organisation
Arithmetic and Logic Unit
Status Flags
• Registers
Shifter •
Arithmetic
and
Boolean
Logic
Control
Unit
Control
Paths
registres
registres visibles
registres visibles
– conditions (flags) :
suite de bits indépendants
positionnés en fonction du résultat d’une opération
lecture seule
choix de conception
cycle de l’instruction
cycle de l’instruction
– exécution (execute)
– traitement des données (process data)
– opérations arithmétiques ou logiques
– écriture des données (write data)
– écriture du résultat dans la mémoire ou vers un
module d’E/S
– interruption (interrupt) : vérifie si une interruption est
apparue
architecture des ordinateurs cours 7 : CPU 21 février 2005
18
flot de données
– fetch :
– M AR ← P C
– l’unité de contrôle demande une lecture de la
mémoire principale
– le résultat de la lecture est placé dans MBR
– IR ← M BR
– PC ← PC + 1
flot de données
– exemple de cycle indirect pour decode
– M AR ← les N bits de poids faibles de MBR
– l’unité de contrôle demande une lecture de la
mémoire principale
– le résultat de la lecture est placé dans MBR
– M AR ← M BR
– l’unité de contrôle demande une lecture de la
mémoire principale
– le résultat de la lecture est placé dans MBR
prévisibilité
interruptions
interruptions
en cas d’interruption
1 4 1 4 1 4
2b
* Interrupt
Handler
Interrupt
Handler
END END
3a
3b
* 3
(a) No interrupts (b) Interrupts; short I/O wait (c) Interrupts; long I/O wait
T+M
•
Y N+1 T
•
Program Stack Pointer
Counter
Registers
Y Start
T
N
T+M
N+1
Y+L Return
User's Interrupt Service Control
Program Routine Stack
(a) Interrupt occurs after instruction at location N
N+1 T
Y+L •
T+M
•
Program Stack Pointer
Counter
Registers
Y Start
T
N
T+M
N+1 N+1
Y+L Return
User's Interrupt Service Control
Program Routine Stack
(b) Return from interrupt
architecture des ordinateurs cours 7 : CPU 21 février 2005
Figure 6.8 Changes in Memory and Registers for an Interrupt
26
cycle d’interruption
simple et prévisible
– M BR ← P C
– M AR ← une adresse mémoire ou sauvegarder PC
– l’unité de contrôle demande une écriture dans la
mémoire principale
– P C ← adresse de la routine d’interruption
Indirection Indirection
Multiple Multiple
operands results
No
Instruction complete, Return for string interrupt
fetcth next instruction or vector data
RISC
RISC
RISC
exemple
machine utilisant 3 formats d’instructions
instructions
4 groupes d’instructions
mémoires
mémoires
cycle d’instruction
– fetch (LI)
– RI ← mémoire d’instruction(PC)
– NCP ← CP + 4
– decode (DI)
– A ← registre(RI25..21)
– B ← registre(RI20..16)
– IMM ← RI15..0
cycle d’instruction
cycle d’instruction
– opération registre-immédiat
– SALU ← A op IMM
– branchement
– SALU ← NCP + IMM
– COND ← A op 0
cycle d’instruction
cycle d’instruction
– branchement
– si COND alors CP ← SALU sinon CP ← NCP
– autres instructions
– CP ← NCP
cycle d’instruction
performance
pipeline
pipeline à 3 étages
pipeline à 3 étages
cycle 1 2 3 4 5 6
fetch inst 1 inst 2 inst 3 inst 4 inst 5 inst 6
decode inst 1 inst 2 inst 3 inst 4 inst 5
execute inst 1 inst 2 inst 3 inst 4
pipeline à 5 étages
nécessité de
– rendre les 5 phases indépendantes
– utiliser des registres servant d’interface entre les étages
cycle 1 2 3 4 5 6
LI inst 1 inst 2 inst 3 inst 4 inst 5 inst 6
DI inst 1 inst 2 inst 3 inst 4 inst 5
EX inst 1 inst 2 inst 3 inst 4
MEM inst 1 inst 2 inst 3
ER inst 1 inst 2
architecture des ordinateurs cours 7 : CPU 21 février 2005
47
remarques
performance
– nombre de cycle :
Tk = k + (n − 1)
– accélération :
T1 nk
Tk = k+(n−1)
Speedup factor
12
k = 12 stages
10
8
k = 9 stages
k = 6 stages
4
0
1 2 4 8 16 32 64 128
Number of instructions
(a)
Speedup factor
14
n = 30 instructions
12
10
n = 20 instructions
8
6 n = 10 instructions
4
0
0 5 10 15 20
Number of stages
architecture des ordinateurs cours 7 : CPU 21 février 2005
(b)
aléas
– aléa structurel
– aléa de données
– aléa de contrôle
aléa structurel
aléa structurel
aléa structurel
aléa de données
aléa de données
exemple
I1 r2 ← mémoire(120) (EX)
I2 r3 ← r2 + r1 (DI)
aléa de données
exemple
I1 r2 ← mémoire(120) (EX)
I2 r3 ← r2 + r1 (DI)
aléa de données
I1 r2 ← mémoire(120) (WR)
I1’ NOP (EX)
I2 r3 ← r2 + r1 (DI)
aléa de données
aléa de contrôle
modification du registre PC
aléa de contrôle
modification du registre PC
aléa de contrôle
modification du registre PC
aléa de contrôle
cycle 1 2 3 4 5 6 7 8
instruction 1 LI DI EX MEM ER
instruction 2 LI DI EX MEM ER
instruction 3 LI DI EX MEM ER
instruction 4 LI DI EX
instruction 5 LI DI
instruction 6 LI
instruction 7 LI DI
instruction 8 LI
aléa de contrôle
solutions
aléa de contrôle
solutions
prédiction
architecture superscalaire
exemple
exemple
– DIV x,y
– ADDF z,w
– SUB u,v
exemple : PII
emploi d’un pipeline à 11 étages
pipeline du PII
From
Instruction Cache
32-byte path
Instruction Streaming
IFU1 Next IP
Buffer (holds 1 line)
16 bytes
16 bytes
Decoder Alignment
IFU3
Stage
16 bytes
6 ¥ 118 bits
3 ¥ 118 bits
Register
To ROB
RAT
Allocator
To ROB
MMX ALU
MMX Multiplier
Complex IEU
Complex FPU
Port 0 Simple FPU
pipeline du PIV
architecture VLIW
exemple
exemple
exemple
– A=J+K
– B=L×M
– C=N-B
– D=A/B
exemple
I1 I2 I3 I4 I5
LOAD Rj,J LOAD Rl,L STORE Ra,A STORE Rb,B STORE Rc,C
LOAD Rk,K LOAD Rm,M LOAD Rn,N STORE Rd,D
Ra = Rj + Rk
Rc = Rn - Rb
Rb = Rl × Rm
Rd = Ra / Rb