Conception de circuits numériques et architecture des

publicité
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 / 22
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
Système intégré
Jeu d’instructions
3 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Plan
1
Processeur et jeu d’instruction
Introduction
Système intégré
Jeu d’instructions
4 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Introduction
Introduction
Problématique :
Comment exécuter des programmes ?
Solution :
définir un jeu d’instruction
⇒ aujourd’hui
l’implanter sous forme PC/PO
⇒ les 2 prochains cours
5 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Introduction
Moyens de communications
CK
RESETN
interruptions
Bus d’adresses
Bus de données
instructions
Bus de contrôle
Bus d’adresses
Processeur
Bus de données
données
Bus de contrôle
Bus d’adresses
Bus de données
entrées/sorties
Bus de contrôle
6 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Système intégré
Exemple de système : iPhone (OMAP 3430)
OMAP-L138 Low-Power Applications Processor
JTAG Interface
DSP Subsystem
ARM Subsystem
System Control
PLL/Clock
Generator
Input
Clock(s)
C674x
ARM926
4KB IET
General
Purpose
Timer (x3)
16 KB
16 KB
I-Cache D-Cache
Power/Sleep
Controller
RTC/
32-kHz
OSC
AET
32 KB
L1 Pgm
32 KB
L1 RAM
8 KB RAM
(Vector Table)
256 KB L2 RAM
64 KB ROM
1024 KB L2 ROM
Switched Central Ressources
Peripherals
DMA
Audio Ports
EDMA
(x2)
McASP
w/FIFO
Serial Interface
McBSP
(x2)
Control Timers
ePWM
(x2)
eCAP
(x3)
Display
Video
Parallel Port
Internal Memory
LCD
Ctrl
VPIF
uPP
128 KB
RAM
UART
(x3)
SPI
(x2)
I2C
(x2)
Connectivity
USB
2.0
USB
1.1
EMAC
10/100
MB/s
MDIO
External Memory Interfaces
HPI
MMC/SD
SATA
DDR2
Controller
Flash
NAND
7 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Système intégré
Plan mémoire du L138 - en partie
Start Address
0x0000
0x0070
0x0080
0x0084
0x00E0
0x00E0
0x00F0
0x0000
0x....
0x01BC
0000
0000
0000
0000
0000
8000
0000
0000
....
0000
End Address
0x006F
0x007F
0x0083
0x00DF
0x00E0
0x00EF
0x00F0
0x006F
0x....
0x01BC
FFFF
FFFF
FFFF
FFFF
7FFF
FFFF
7FFF
FFFF
....
0FFF
0x01BC 1000
0x01BC 17FF
0x01BC 1800
0x01BC 18FF
0x01BC
0x01C0
0x01C0
0x01C0
0x01C0
0x01C1
0x01C1
0x01C1
0x01C1
0x01C1
0x01C2
0x....
0x01BF
0x01C0
0x01C0
0x01C0
0x01C0
0x01C1
0x01C1
0x01C1
0x01C1
0x01C1
0x01C2
0x....
1900
0000
8000
8400
8800
0000
1000
2000
4000
5000
0000
....
FFFF
7FFF
83FF
87FF
FFFF
0FFF
1FFF
3FFF
4FFF
FFFF
0FFF
....
Size
ARM Mem
Map
32K
32K
2K
256
EDMA
Mem Map
Master
Peripheral
Mem Map
Reserved
DSP L2 ROM
DSP L2 RAM
Reserved
DSP L1P RAM
Reserved
DSP L1D RAM
Reserved
........
1024K
256K
4K
DSP Mem Map
ARM ETB
memory
ARM ETB
reg
ARM Ice
Crusher
32K
1K
1K
4K
4K
4K
4K
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
EDMA3 CC
EDMA3 TC0
EDMA3 TC1
Reserved
PSC 0
PLL Controller 0
Reserved
SYSCFG0
Reserved
Timer0
........
8 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Jeu d’instructions
Contenu de la mémoire
Tout est affaire d’interprétation !
cf cours numéro 1
données de tous types
instructions
Instructions
Suite de n octets
interprétés par le matériel
précisant :
les opérations à effectuer et leurs opérandes
opération op_dest, op_src1, op_src2, ...
le séquencement entre instructions
par défaut l’instruction suivante
9 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Jeu d’instructions
Ressources
Opérateurs
Unités fonctionnelles usuelles : ALU (+, −, ∨, ∧, ⊕, ...)
√
Unités plus complexes : ×, ÷, ≡, 2 , ...
Entières ou « flottantes »
Opérandes
registres
cases mémoires
10 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Jeu d’instructions
Registres
Toujours
pointeur de programme (program counter ou PC) :
adresse de l’instruction en cours d’exécution ou à exécuter
registre d’état : flags, interruptions, exceptions, etc.
Spécifiques
accumulateur : registre destination des opérations de l’ALU
pointeur de pile : indique base de la pile
Utile pour les appels de fonctions
Généralistes
registres à usage général : organisés en « banc de registres »
peuvent être utilisés comme accumulateurs et pointeur de pile
en fonction des processeurs
11 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Jeu d’instructions
ISA vs ABI
ISA : Instruction Set Architecture
définition de l’ensemble exhaustif des instructions supportées par le
processeur :
sémantique : ce que fait l’instruction
syntaxe : comment spécifier l’instruction et ses opérandes
ABI : Application Binary Interface
définition de l’usage des instructions pour un compilateur :
convention d’utilisation des registres
convention d’appel de fonction
détaillé dans le cours de logiciel de base
12 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Jeu d’instructions
ISA
Différents types d’instructions
Opérations arithmétiques et logiques
add, sub, sll, sra, inc, mov, ...
Transfert de données entre registre et mémoire
ldw, ldb, stw, stb, ...
Déroutement du programme
Sauts inconditionnels : jmp, ba
Sauts conditionnels : jcc, bcc (cc : code conditions)
Appel et retour de fonction :
call, jal
return, jr
13 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Jeu d’instructions
ISA
Choix dans la définition d’un ISA :
Critère
doit fournir un support efficace aux langages de programmation
doit pouvoir être implanté efficacement
régulier et complet
Exemples :
Nombre d’opérandes explicite : 0, 1, 2, 3
à pile : add
stack[top] ← stack[top − 1] + stack[top]
acc ← acc + mem[addr]
accumulateur : add addr
« 2 adresses » : add %ri, %rj
%ri ← %ri + %rj
« 3 adresses » : add %ri, %rj, %rk
%ri ← %rj + %rk
14 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Jeu d’instructions
ISA
Usage : a × b − (a + c × b)
stack
push a
push b
mult
push a
push c
push b
mult
add
sub
accu
clear
add c
mult b
add a
st x
clear
add a
mult b
sub x
2-addr
add %r1, b
mult %r1, c
add %r1, a
add %r2, b
mult %r2, a
sub %r2, %r1
3-addr
mult %r1, b, c
add %r1, %r1, a
mult %r2, a, b
sub %r2, %r2, %r1
3-addr-ld/st
ld %r1, c
ld %r2, b
mult %r1, %r1, %r2
ld %r3, a
add %r1, %r1, %r3
mult %r2, %r2, %r3
sub %r3, %r2, %r1
15 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Jeu d’instructions
Modes d’adressage
Définit ou l’on va chercher une instruction
Absolu
jmp address : pc ← address
Relatif à PC
jmp offset : pc ← pc + offset
Indirect registre
jmp %ri : pc ← %ri
16 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Jeu d’instructions
Modes d’adressage
Ou un opérande
Registre
mov %ri, %rj : %rj ← %ri
Immédiat
mov $12, %rj : %rj ← 12
Absolu ou direct
mov %ri, address : mem[address] ← %ri
mov address, %ri : %ri ← mem[address]
Indirect
mov %ri, (address) : mem[mem[address]] ← %ri
17 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Jeu d’instructions
Modes d’adressage
Indirect registre + déplacement
mov offset(%ri), %rj : %rj ← mem[%ri + offset]
Indirect registre + auto-incrément / auto-décrément
mov (%ri)+, %rj : %rj ← mem[%ri], %ri ← %ri + 1
mov (%ri)-, %rj : %rj ← mem[%ri], %ri ← %ri − 1
Indirect registre + index + déplacement
mov offset(%ri,%rk), %rj : %rj ← mem[%ri + %rk + offset]
Et encore d’autres !
95% des besoins couvert par immédiat et indirect registre +
déplacement
18 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Jeu d’instructions
Encodage des instructions
Langage machine
Traduction des mnémoniques textuels en suites d’octets
MIPS : 3-adresses ld/st, 32 registres, instruction sur 32 bits
3 formats d’instruction
31
2625
2120
1615
Format R : opcode
RS
RT
Format I : opcode
RS
RT
Format J : opcode
1110
65
RD
SH
0
FUNC
IMM16
IMM26
1 seule taille d’instruction, très régulier, 3 modes d’adressage
19 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Jeu d’instructions
Encodage des instructions
2-adresses, 4 registres, instruction sur 8 bits
2 bits par registre
MSB à 0, opérations entre 2 registres
MSB à 1, opérations entre 1 registre et la mémoire
opérande stocké après l’instruction (1 ou 2 octets)
Exemples :
add %r1, %r0
add %r2, $12
add %r3, addr
20 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Jeu d’instructions
ISA
Pas de portabilité du code binaire
Chaque processeur (ou famille) possède son ISA et son ABI propre
un code pour un processeur ne tourne pas sur un autre processeur
Langages de programmation
Assurent une certaine portabilité du code
Compilateur : génère du code optimisé adapté à la machine
Assembleur : transforme les mnémoniques en code binaire
Éditeur de lien : fusionne les fichiers binaire en un exécutable
21 / 22
Conception de circuits numériques et architecture des ordinateurs
Processeur et jeu d’instruction
Notes
Jeu d’instructions
Hall of fame
Quelques processeurs de ce type ayant marqué leur époque :
Intel 8080
MOSTech 6502
Motorola 6800
Zilog Z80
22 / 22
Notes
Notes
Téléchargement