Conception de circuits numériques et architecture des

Transcription

Conception de circuits numériques et architecture des
Notes
Conception de circuits numériques
et architecture des ordinateurs
Frédéric Pétrot et Sébastien Viardot
Année universitaire 2010-2011
Conception de circuits numériques et architecture des ordinateurs
Structure du cours
Notes
C1
C2
C3
C4
C5
C6
C7
C8
C9
C10
C11
C12
Codage des nombres en base 2, logique booléenne,
circuits combinatoires
Optimisation combinatoire, circuits séquentiels
Circuits séquentiels, suite
Construction circuits complexes
Machines à état
Synthèse de circuits PC/PO
Synthèse de circuits PC/PO
Conception de circuits élémentaires CMOS
Micro-architecture et fonctionnement des mémoires
Interprétation d’instructions
Interprétation d’instructions
Interprétation d’instructions
2 / 13
Conception de circuits numériques et architecture des ordinateurs
Plan
Notes
Plan détaillé du cours d’aujourd’hui
1
Processeur et jeu d’instruction
Introduction
Construction de la PC
3 / 13
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Plan
1
Processeur et jeu d’instruction
Introduction
Construction de la PC
4 / 13
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Introduction
Introduction
Implantation d’un jeu d’instruction
PO : réalise tous les transferts attendus
PC : indique le séquencement de l’interprétation
5 / 13
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Introduction
Introduction
Implantation d’un jeu d’instruction
PO : réalise tous les transferts attendus
PC : indique le séquencement de l’interprétation
5 / 13
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Construction de la PC
Séquence d’interprétation
Chaque étape prend 1 cycle
1
lecture de l’instruction dans IR
2
incrémentation de PC, décodage de l’instruction
3
déroulement des transferts
plusieurs cycles potentiellement
4
retour en 1.
Note sur 2 : PC incrémenté avant l’exécution de l’instruction
À régler
initialisation à la mise sous tension
gestion des exceptions et interruptions
6 / 13
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Construction de la PC
Structure de la machine d’états
RSTIRQ
pc<-pc+4
init
nop
nop
nop
nop
reg-acc
bit-reg
const
jump
14
Reg
2
2
Ret
Bit
6
2
Imm
Jmp
RST + IRQ
Rst
init : première phase de décodage
état
init
cond.
00
01
micro-instruction
selpc←2, wepc←1
suivant
reg-acc
bit-reg
état
cond.
11
10
micro-instruction
suivant
const
jump
7 / 13
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Construction de la PC
Détail du reset
RSTIRQ
RST
RSTIRQ
pc<-0000h
pc<-0004h
rst0
irq0
push pc
pushpc
IR<-mem[pc]
exe
pc<-pc+1
init
8 / 13
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Construction de la PC
Détail de quelques instructions
ADDWF : dest ← W + reg[f ]
etat
reg-acc
addw
condition
IR[11 :8] = "0111"
et d = 0
IR[11 :8] = "0111"
et d = 1
1
addf
1
ifetch
1
micro-instruction
nop
etat suivant
addw
addf
opc←add, wew←1
sela←0, selb←1, selw←1
opc←add, selrf←1, werf←1
sela←0, selb←1, selw←1
selir←1, weir←1
ifetch
ifetch
init
ADDLW : W ← W + IR[7 : 0]
etat
const
addl
condition
IR[11 :8] = "111-"
1
micro-instruction
nop
opc←add, wew←1
sela←1, selb←1, selw←1
etat suivant
addl
ifetch
9 / 13
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Construction de la PC
Détail de quelques instructions
DECF : dest ← reg[f ] − 1
etat
reg-acc
decw
condition
IR[11 :8] = "0011"
et d = 0
IR[11 :8] = "0011"
et d = 1
1
decf
1
micro-instruction
nop
etat suivant
decw
decf
opc←sub, wew←1
sela←0, selb←0, selw←1
opc←sub, selrf←1, werf←1
sela←0, selb←0, selw←1
ifetch
ifetch
10 / 13
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Construction de la PC
Détail de quelques instructions
DECFSZ : dest ← reg[f ] − 1
etat
reg-acc
decws
condition
IR[11 :8] = "1011"
et d = 0
IR[11 :8] = "1011"
et d = 1
z=1
decfs
z=0
z=1
micro-instruction
nop
etat suivant
decws
decfs
opc←sub, wew←1
sela←0, selb←0, selw←1
opc←sub, selrf←1, werf←1
sela←0, selb←0, selw←1
z=0
ifetchnop
ifetch
ifetchnop
ifetch
ifetchnop : lecture d’une instruction nop
etat
ifetchnop
condition
1
micro-instruction
selir←0, weir←1
etat suivant
init
11 / 13
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Construction de la PC
Détail de quelques instructions
CALL : appel de fonction
etat
jmp
call
condition
IR[11] = 0"
1
micro-instruction
nop
push pc, selpc←0, wepc←1
etat suivant
call
ifetch
RETURN : retour de fonction
etat
reg-acc
return
condition
IR[13 :0] =
"00 0000 0000 1000"
1
micro-instruction
nop
etat suivant
return
pop pc, selpc←1, wepc←1
ifetch
12 / 13
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Construction de la PC
Wrap-up
PC+PO : Facile, mais peu efficace
Plusieurs cycles par instruction
Aller/retour fréquent entre PC et PO
Utilisation non-optimale des ressources
Cours du second semestre :
spécification détaillé d’un processeur PC+PO
implantation de cette spec sur carte FPGA
Depuis 1980
Processeur pipeline
1 instruction par cycle
disparition de la machine d’état
Object du cours de 2A !
Processeur superscalaire
plusieurs instructions par cycle
exécution spéculative
réordonnancement matériel
dynamique des instructions
Object du cours de 3A !
13 / 13
Notes