Conception de circuits numériques et architecture des ordinateurs

Transcription

Conception de circuits numériques et architecture des ordinateurs
Conception de circuits numériques
et architecture des ordinateurs
Frédéric Pétrot
Année universitaire 2015-2016
Conception de circuits numériques et architecture des ordinateurs
Structure du cours
C1
C2
C3
C4
C5
C6
C7
C8
C9
C10
C11
Codage des nombres en base 2, logique booléenne,
portes logiques, circuits combinatoires
Circuits séquentiels
Construction circuits complexes
Micro-architecture et fonctionnement des mémoires
Machines à état
Synthèse de circuits PC/PO
Optimisation de circuits PC/PO
Interprétation d'instructions
Interprétation d'instructions
Interprétation d'instructions
Introduction aux caches
2 / 22
Conception de circuits numériques et architecture des ordinateurs
Plan
Plan détaillé du cours d'aujourd'hui
1
Processeur et jeu d'instruction
Introduction
Présentation de l'architecture
Implantation de l'ISA MIPS
3 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Plan
1
Processeur et jeu d'instruction
Introduction
Présentation de l'architecture
Implantation de l'ISA MIPS
4 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Introduction
Introduction
Rappel de l'épisode précédent
Implantation PC/PO de machines à pile et à accumulateur
Modes d'adressage
Exemple détaillé
Étude détaillée d'un processeur : le MIPS
Architecture symptomatique de la mouvance RISC
décrite dans Computer organization & design, the
hardware/software interface
David Patterson et John Hennessy
Très utilisé dans les applications embarquées (networking, digital
home, mobile)
5 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Présentation de l'architecture
Caractéristiques globales de l'architecture
bus de données et d'adresse sur 32 bits
taille de l'instruction : 32 bits
ISA 3-adresses
32 registres opérandes des instructions, noté $0 à $31
registres $1 à $30 : usage général
registre $0 : vaut toujours 0
registre $31 : contient adresse de retour de fonction (imposé
par 3 instructions : jal, bgezal, bltzal)
registre pc : adresse de l'instruction suivante
registre ir : instruction en cours d'exécution
registres hi et lo : résultat multiplication ou division entière
6 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Présentation de l'architecture
Exemples d'instructions
Quelques instructions assembleur
Entre registres
add $2, $3, $5
Avec une constante
addi $2, $3, 0xF00D
Branchement conditionnel
beq $5, $9, étiquette
Chargement à partir de la mémoire
lw $1, 24($2)
Branchement inconditionnel
j étiquette
$2 := $3 + $5
$2 := $3 + 0xFFFFF00D
(
étiquette si $5 ≡ $9
pc :=
pc + 4
sinon
$1 := mem4 [$2 + 24]
pc := étiquette
7 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Présentation de l'architecture
Modes d'adressage
3 modes d'adressage
registre
5 bits dans l'instruction
immédiat
5 bits dans l'instruction, pour les décalages
16 bits dans l'instruction, diérentes interprétations possibles
26 bits dans l'instruction, pour les sauts inconditionnels
indirect registre (+ déplacement)
5 bits pour identier le registre + 16 bits pour la constante
relatif à pc (2 cas)
8 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Présentation de l'architecture
Encodage des instructions
3 formats d'instruction
31
2625
2120
1615
Format R :
OPCODE
RS
RT
Format I :
OPCODE
RS
RT
Format J :
OPCODE
1110
RD
65
SH
0
FUNC
IMM 16
IMM 26
9 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Présentation de l'architecture
Tables des encodages
Codage du champ OPCODE
31...29
000
001
010
011
100
101
110
111
000
001
SPECIAL
REGIMM
addi
addiu
lh
sh
-
COP 0
lb
sb
-
28...26
010
j
slti
-
011
jal
sltiu
lw
sw
-
100
beq
andi
lbu
-
101
bne
ori
lhu
-
110
blez
xori
-
111
bgtz
lui
-
10 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Présentation de l'architecture
Tables des encodages
Champ FUNC lorsque l'OPCODE vaut SPECIAL.
5...3
000
001
010
011
100
101
110
111
000
sll
jr
mfhi
mult
add
-
001
jalr
mthi
multu
addu
-
010
srl
mflo
div
sub
slt
-
2...0
011
sra
mtlo
divu
subu
sltu
-
100
sllv
syscall
and
-
101
break
or
-
110
srlv
xor
-
111
srav
nor
-
Champ rt, lorsque l' opcode vaut REGIMM.
20...19
00
01
10
11
000
bltz
bltzal
-
001
bgez
bgezal
-
18...16
010
-
011
-
100
-
101
-
110
-
111
11 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Présentation de l'architecture
Tables des encodages
Champ RS, lorsque OPCODE vaut COP 0.
25...24
00
01
10
11
000
mfc0
-
001
-
23...21
010
-
011
-
100
mtc0
-
101
-
110
-
101
-
110
tlbwr
-
111
-
Champ FUNC, lorsque OPCODE vaut COP 0.
5...3
000
001
010
011
100
101
110
111
000
tlbp
rfe
-
001
tlbr
-
2...0
010
tlbwi
-
011
-
100
-
111
12 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Implantation de l'ISA MIPS
Implantation de l'ISA du MIPS R3000
Forme générique de quelques instructions de type R
add rd, rs, rt
sub rd, rs, rt
rd := rs + rt
rd := rs − rt
Codage
add $4, $2, $3
sll $3, $2, 0x2
0x00432021
0x00021880
13 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Implantation de l'ISA MIPS
Implantation de l'ISA du MIPS R3000
Forme générique de quelques instructions de type I
addiu rt, rs, imm16
rt := rs + imm16
15 k imm15...0
beq rs, rt, imm16
(
aic† + 4
si rs 6= rt ,
pc :=
14
2
aic + 4 + imm15 k imm15...0 k 0 sinon
lw rt, imm16(rs)
rt := mem4 [rs + imm16
15 k imm15...0 ]
†
aic
: adresse de l'instruction courante,
pc
contenant l'adresse de l'instruction suivante
Codage
addiu $4,$2,156
0x40328:bne $3,$2,0x40374
0x2444009c
0x14620012
14 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Implantation de l'ISA MIPS
Implantation de l'ISA du MIPS R3000
Forme générique des deux instructions de type J
j imm26
pc ← (aic + 4)31...28 k imm25...0 k 02
jal imm26 $31 := (aic + 4); pc ← (aic + 4)31...28 k imm25...0 k 02
Codage
0x40328:j 0x40374
0x080000DD
15 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Implantation de l'ISA MIPS
Implantation de l'ISA du MIPS R3000
Construction d'un chemin de données abstrait sur lequel ces
instructions peuvent être exécutées.
Registres implicites : pc, ir
Banc de 32 registres, à 2 accès en lecture au même cycle
Constantes : adresse du reset, incrément de pc, ...
Registre invisible du logiciel : AD contient l'adresse eective
nécessaire aux load et store
Unité de calcul : ALU
16 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Implantation de l'ISA MIPS
Implantation de l'ISA du MIPS R3000
Utilisation de ir :
Dépend du format
Immédiat sur 5 bits étendu sur 32 bits sans extension de signe
pour les décalages
Immédiat sur 16 bits étendu à 32 bits, avec ou sans extension
de signe, avec ou sans multiplication par 4
Immédiat sur 26 bits multiplié par 4 et concaténé au 4 bits de
poids fort de pc
Champs rd , rs et rt directement utilisés pour indiquer la
destination et les opérandes au banc de registres
Détails au tableau après la planche suivante
17 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Implantation de l'ISA MIPS
Partie opérative simpliée
WEPC
WERF
WEAD
WEIR SELY SELX OP S Z
OE
RES
DATA
X
C
S
T
S
P
C
$ i
A
D
I
R
A
L
U
Y
ADDR
Simplications
Vue relativement abstraite qui sera ranée en TD et en CEP
18 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Implantation de l'ISA MIPS
Survol de la partie contrôle simpliée
Vue globale hiérarchique
/RST
ir<-mem(pc)
pc<-pc+4
fetch
decod
1
nop
special
4
RST
Reset
Branch
1
1
6
4
5
Reg
nop
4
regimm
ImmU
Imm
Load
Store
19 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Implantation de l'ISA MIPS
Survol de la partie contrôle simpliée
Reset et opérations avec immédiat étendu de signe
RST
ad<-I16
pc<0xbfc0000
imd
reset
RST
/RST
rt<-rs+ad
rt<-rs<ad
addiu
sltiu
RST
/RST
20 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Implantation de l'ISA MIPS
Ajouts nécessaires pour être utilisable
Interruptions et exceptions
si exception, inhibition de l'écriture dans les registres
testées identiquement au RST, en n d'instruction
sauvegarde de l'adresse de l'instruction à laquelle reprendre
après le traitement
saut à une adresse connue à laquelle se trouve le gestionnaire
Modes de fonctionnement
noyau : on peut tout faire
utilisateur : seul une partie de la mémoire est accessible,
certaines instructions sont interdites
21 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d'instruction
Implantation de l'ISA MIPS
Hall of fame
Quelques processeurs 8 bit PC/PO ayant marqué leur époque
Intel 8080
Zilog Z80
Motorola 6800
MOSTech 6502
Quelques processeurs 16 et ou 32 bit PC/PO ayant marqué leur
époque
DEC PDP-11 a
Intel 8086
Motorola 68000
a.
Machine sur laquelle Unix et le langage C ont été développés
22 / 22