ARCHITECTURE DES SYSTEMES

Transcription

ARCHITECTURE DES SYSTEMES
ARCHITECTURE DES
SYSTEMES
(A MICROPROCESSEURS)
R. Grisel
-1
Références bibliographiques
Architecture des ordinateurs
G.BLANCHET B.DUPOUY
Masson
Architecture des ordinateurs
J.L.HENNESSY D.A.PATTERSON
Mc Graw-Hill
Structure des ordinateurs
ERNEST HIRSH SERGE WENDLIN
Armand Colin
Pentium et compagnie
HAN.P. MESSMER
Additson-Wesley
Architecture de l'ordinateur
ANDREW TANENBAUM
Inter editions
Distributed operating systems
ANDREW TANENBAUM
Printice Hall.
Processeur et Coprocesseur
ROBERT HUMMEL
Dunod
Le microprocesseur et son
environnement,
ROBERT DUBOIS
Dunod
R. Grisel
-2
Historique
Années 1940 : apparition du transistor
Années 1950 : sortie du premier circuit intégré (Texas Instrument)
Année 1968 : Création de INTEL (INTegrated Electronics)
Année 1971 : Création du 4004 (processeur 4 bits)
Année 1972 : Création du 8008 (processeur 8 bits)
Année 1974 : Création du 8080 (processeur 8 bits)
Année 1976 : Création du 8085 (processeur 8 bits)
Année 1978 : Création du 8086 (processeur 16 bits)
Année 1978 : Création du 8088 (processeur 8 bits)
Année 1979 : Création du 80186 (processeur 16 bits)
Année 1981 : Association Intel/IBM (micro-ordinateur PC)
Année 1983 : Création du 80286 (processeur 16 bits)
Année 1985 : Création du 80386 (processeur 32 bits)
Année 1989 : Création du 80486 (processeur 32 bits)
Année 1991 : Création du pentium (processeur 64 bits)
Année 1994 : Création du pentium pro (processeur 64 bits)
Actuel (Core 2 Duo 2,4 GHz)
A suivre :s a venir : Architecture mixte, processeur asynchrone,
VLIW, ..
R. Grisel
2250
29000
100 M
-3
Machine VON NEUMAN
PRINCIPE
Canal
d'échange
Processeur
Mémoire
CARACTERISTIQUES
- Jeu d'instructions propre (défini lors de la construction de la machine).
- Programme = suite de traitement, disponibles sur la machine considérée.
- Programme et données peuvent être stockés dans la mémoire du système.
- Certaines instructions autorisent des ruptures de séquence conditionnelles.
R. Grisel
-4
Architecture générale d ’un ordinateur
Unité
d'entrée BUS
Processeur
(UCT)
BUS
Unité de
sortie
BUS
Mémoire
R. Grisel
-5
Architecture de l'ordinateur : vue externe
Définition
- Interface entre la machine physique et les logiciels
- Structure et fonctionnalité vues par le programmeur en assembleur
Informaticiens des systèmes
- Compilateurs
- Assembleurs
- Interpréteurs
Principaux éléments
- Organisation de la mémoire
- Type et structure des données (représentation et codage)
- Format d'instructions
- Modes d'adressage
- Conditions d'exceptions et d'interruptions
R. Grisel
-6
Architecture de l'ordinateur : vue interne
Définition
- Structure et fonctionnalité des principaux composants
- Manière dont sont organisés les différents composants
Concepteurs et certains utilisateurs
Architecture
externe
Architecture 1
Niveau registres
Niveau portes logiques
Niveau transistors
Architecture n
R. Grisel
-7
Architecture de l'ordinateur : vue 'micro'
Définition
- Partie de l'architecture interne
- Structure et fonctionnalité vues par le microprogrammeur
- Interface entre le 'hardware' et le 'firmware'
Microprogrammeurs : systèmes et applications
Architecture
externe
Architecture 1
Architecture n
Micro
Architecture 1
R. Grisel
-8
Eléments fonctionnels de base
Eléments combinatoires
- Multiplexeurs
- Codeurs et décodeurs
- Comparateurs
Eléments séquentiels
- Registres
- bascules
- registres à décalage
- registres universels
- Compteurs
- synchrone ou asynchrones
- binaires ou BCD
Eléments arithmétiques et logiques
- Additionneurs et soustracteurs
- Multiplieurs et diviseurs
- Opérateurs arithmétiques et logiques, …etc.
Plus l'horloge
R. Grisel
-9
ARCHITECTURE
GENERALE D’UN
MICROPROCESSEUR
R. Grisel
- 10
Architecture d ’un microprocesseur
Bus de données
Registre N
PC
Registre 0
SP
Accumulateur
Indicateurs
C
V
N
H
Z
UAL
Bus de
commandes
R-décalage
Commande
Bus d'adresses
R. Grisel
- 11
L ’unité arithmétique et logique ( UAL )
Effectue les opérations arithmétiques et logiques portant sur deux
nombres au maximum ainsi que les opérations de décalage.
Temporaire 1
ET, OU, XOR
Additionneur
Accumulateur
Soustracteur
Temporaire 2
R. Grisel
Inverseurs
- 12
L ’unité de commande
- Assure le bon ordre du déroulement des séquences du programme,
- Elabore les signaux de synchronisation,
- Gère les ordres échangés par l’UAL, les entrées, les sorties, et la mémoire,
- Assure la recherche en mémoire, le décodage et l’exécution des instructions.
Câblée
ou
micro-programmée
UAL
E/S
Bus de
commande
Unité de
commande
Bus de
commande
Mémoire
R. Grisel
- 13
L’accumulateur
C’est un registre particulier placé à l’une des entrées de l’UAL.
La plupart des instructions arithmétiques et logiques utilisent le contenu de
l’accumulateur comme premier opérande. Il peut être référencé en entrée
et en sortie.
Opérande 2
Opérande 2
Accumulateur
UAL
R-décalage
R. Grisel
- 14
Les indicateurs d ’états
Caractérisent les états de fonctionnement du microprocesseur. Ils
interviennent en particulier pour les branchement conditionnels.
C N H Z P
C : retenue arithmétique
N ou S : signe
H ou AC : retenue intermédiaire
Z : zéro
P : Parité
I : interruption
R. Grisel
I
-
-
Remarque : La plupart des instructions
exécutées
par
le
processeur
modifieront l’ensemble ou une partie
des indicateurs d’état. Aussi, il est
toujours important de se reporter au
tableau fourni par le fabricant sur lequel
figurent les bits d’état qui seront
modifiés par les instructions.
- 15
Les registres d ’adresses
Ils sont destinés au stockage des adresses. Leurs caractéristiques
essentielles est qu’ils sont connectés au bus des adresses. Tous les
microprocesseur comportent au moins un compteur ordinal. La plupart
d’entre eux contiennent plusieurs.
MUX
Registre d'index
Pointeur de pile
P-instruction
MUX
Registre d'adresse
Bus de données
Accumulateur
UAL
Bus d'adresse
R. Grisel
- 16
Les registres spéciaux : la pile
C’est une structure LIFO implantée dans la mémoire RAM externe.
Bus de données
PUSH
POP
Pointeur de pile
Base de la pile
POP
PUSH
Fond de la pile
Indicateur "pile pleine"
R. Grisel
- 17
Signaux portés par le bus de commande
INT
NMI
INTA
INTE
READ
CPU
WRITE
READY
WAIT
VD/VA
HOLD
HOLD A
RES
CLK
HLT
BA
PO, RST
SENSE
R. Grisel
Interruption
Interruption non-masquable
Interruption reconnue
Validité de l'interruption
Mémoire ou E/S
A synchroniser avec la mémoire
CPU en attente
Données ou adresses valides
Accès direct mémoire
Maintien reconnu
Reset
Horloge
Arrêt du CPU
Bus disponible
Mise en marche
Entrée direct (série)
- 18
Exécution d ’une instruction
phases :
Chaque instruction est exécutée en une séquence de trois
- la phase Recherche (fetch),
- la phase Décodage (decode),
- la phase Exécution (execute).
Auxquelles, il faut aussi ajouter :
- la recherche des opérandes,
- la mémorisation des résultats.
R. Grisel
- 19
Exécution d ’une instruction
MPU
n
IR
Mémoire
données
0
n
0
INST
Décodeur
INST
2304
Lecture
2304
PC
Décodeur
+1
0
adresses
R. Grisel
- 20
Données
MUX
ACC
R-I
W
Z
B
C
D
E
H
CONTROLEUR
SEQUENCEUR
R-TEMP
ACT
L
UAL
SP
PC
ETATS
+/- 1
Adresse
TAMPON
DEC
TAMPON
Exemple : le 8080 de INTEL
Commande
R. Grisel
- 21
Cycle machine du 8080
T1
T2
T3
T4
T5
Q1
Q2
SYNC
L ’exécution d ’une instruction nécessite entre un et cinq cycle
machines (accès mémoire). Chaque cycle machine correspond à trois,
quatre ou cinq cycle horloge.
R. Grisel
- 22
Formats des instructions
(codage horizontal)
Code opérationnel
Données /adresses
Adresses
Exemples : MOV r1, r2, ADI data , JMP addr
R. Grisel
- 23
Instruction à un octet
MOV r1, r2
01DDDSSS
Exemple
MOV C, B
Le code pour le registre
B est 000, le code pour
le registre C est 001.
01001000
R. Grisel
- 24
Instruction à deux octets
ADI data
1 1 0 0 0 1 1 0 data
Exemple
55 est codée par
ADI 55
01010101
11000110_01010101
R. Grisel
- 25
Instruction à trois octets
LDA addr
0 0 1 1 1 0 1 0 adresse
Exemple
Si adresse vaut
LDA 1234
1234
00111010_00110100_00010010
Code de LDA
faible
fort
R. Grisel
- 26
Exécutions d ’instructions sur le 8080
T1
T2
T3
T4
T5
L ’exécution d ’une instruction nécessite entre un et cinq cycle
machines (accès mémoire). Chaque cycle machine correspond à trois,
quatre ou cinq cycle horloge.
La phase de recherche de l ’instruction correspond aux états
T1, T2 et T3 du cycle machine M1.
T1 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses.
T2 : PC = PC +1 (& décodage et préparation de l ’instruction).
T3 : Transfert de l ’instruction dans le registre d ’instruction.
T4 : Décodage de l ’instruction.
T5 : Fonction du type de l ’instruction.
R. Grisel
- 27
Durée d ’une instruction
Un cycle machine
T1
T2
T3
T4
XCHG
4 états
T5
MOV r1,r2
5 états
Deux cycles machine
M1
T1
T2
M2
T3
T4
T1
T2
ADD r
6 états
T3
7 états
MOV r,M
La durée d ’une instruction et par conséquent d ’un programme
sera calculée par rapport au nombre total de cycle horloge. Avec une
horloge de 50 ns, la durée d exécution de l ’instruction MOV r1,r2 sera de
0,25 µs.
R. Grisel
- 28
Exemple : MOV D,C
Mnémonique
T1
T2
T3
MOV r1,r2 01DDDSSS Envoi de PC PC = PC + 1 INST
T4
IR (SSS)
T5
TMP (TMP)
DDD
Code
opérationnel
T1 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses.
T2 : PC = PC +1 (& décodage et préparation de l ’instruction).
T3 : Transfert de l ’instruction dans le registre d ’instruction.
T4 : Décodage de l ’instruction et transfert de C vers TMP.
T5 : Transfert de TMP vers D.
Durée = 5 fois le cycle machine
R. Grisel
- 29
Exemple : ADD r (ici r = C)
T1 de M1 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses.
T2 de M1 : PC = PC +1 (& décodage et préparation de l ’instruction).
T3 de M1 : Transfert de l ’instruction dans le registre d ’instruction.
T4 de M1 : Décodage de l ’instruction et transfert de C vers TMP et de A vers ACT.
T5 de M1 : Ignoré (cet état n ’est pas comptabilisé !).
T1 de M2 : Recherche de la prochaine instruction.
T2 de M2 : PC = PC +1 et A = ACT + TMP
Cette technique de chevauchement est utilisée partout ou cela est
possible, afin d ’augmenter la vitesse apparente de traitement du
microprocesseur. Il ne doit pas y avoir de conflit quant à l ’utilisation des
bus ou autres parties du système.
R. Grisel
- 30
Technique de chevauchement
M1
M2
Fin réelle
Instruction N
T1
T2
T3
Acquisition
T4
Décodage
Instruction N+1
T2
T1
Exécution
T1
T2
Acquisition
Durée = 4 fois le cycle machine
et non 5 fois.
Décodage
Exécution
M1
Chevauchement
20 % d ’amélioration
R. Grisel
- 31
Exemple : LDA addr
T1 de M1 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses.
T2 de M1 : PC = PC +1 (& décodage et préparation de l ’instruction).
T3 de M1 : Transfert de l ’instruction dans le registre d ’instruction.
T4 de M1 : Décodage de l ’instruction.
T1 de M2 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses.
T2 de M2 : PC = PC +1 (& décodage et préparation de la donnée).
T3 de M2 : Transfert du poids faible de l ’adresse dans le registre Z.
T1 de M3 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses.
T2 de M3 : PC = PC +1 (& décodage et préparation de la donnée).
T3 de M3 : Transfert du poids fort de l ’adresse dans le registre W.
T1 de M4 : Contenu du registre d ’adresse WZ dans le bus d ’adresses
T2 de M4 : PC = PC +1 (& décodage et préparation de la donnée).
T3 de M4 : Transfert de la donnée dans ll ’accumulateur.
R. Grisel
- 32
Exemple : JMP addr
T1 de M1 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses.
T2 de M1 : PC = PC +1 (& décodage et préparation de l ’instruction).
T3 de M1 : Transfert de l ’instruction dans le registre d ’instruction.
T4 de M1 : Décodage de l ’instruction.
T1 de M2 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses.
T2 de M2 : PC = PC +1 (& décodage et préparation de la donnée).
T3 de M2 : Transfert du poids faible de l ’adresse dans le registre Z.
T1 de M3 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses.
T2 de M3 : PC = PC +1 (& décodage et préparation de la donnée).
T3 de M3 : Transfert du poids fort de l ’adresse dans le registre W.
T1 de M1n+1 : Contenu du registre d ’adresse WZ dans le bus d ’adresses
T2 de M1n+1 : PC = WZ +1 (& décodage et préparation de la donnée).
R. Grisel
- 33
Exercice 1 : CALL adresse
T1 de M1 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses.
T2 de M1 : PC = PC +1 (& décodage et préparation de l ’instruction).
T3 de M1 : Transfert de l ’instruction dans le registre d ’instruction.
T4 de M1 : décodage de l ’instruction.
T5 de M1 : SP = SP -1.
T1 de M2 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses.
T2 de M2 : PC = PC +1 (& décodage et préparation de la donnée).
T3 de M2 : Transfert du poids faible de l ’adresse dans le registre Z.
T1 de M3 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses.
T2 de M3 : PC = PC +1 (& décodage et préparation de la donnée).
T3 de M3 : Transfert du poids fort de l ’adresse dans le registre W.
T1 de M4 : Contenu du registre SP dans le bus d ’adresses.
T2 de M4 : SP = SP -1 (& décodage et préparation de la donnée).
T3 de M4 : Transfert du poids fort du PC vers la pile.
T1 de M5 : Contenu du registre SP dans le bus d ’adresses.
T2 de M5 : (& décodage et préparation de la donnée).
T3 de M5 : Transfert du poids faible du PC vers la pile.
T1 de M1n+1 : Contenu du registre d ’adresse WZ dans le bus d ’adresses
T2 de M1n+1 : PC = WZ +1 (& décodage et préparation de la donnée).
R. Grisel
- 34
Exercice 2 : RET
T1 de M1 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses.
T2 de M1 : PC = PC +1 (& décodage et préparation de l ’instruction).
T3 de M1 : Transfert de l ’instruction dans le registre d ’instruction.
T4 de M1 : décodage de l ’instruction.
T1 de M2 : Contenu du registre SP dans le bus d ’adresses.
T2 de M2 : SP = SP +1 (& décodage et préparation de la donnée).
T3 de M2 : Transfert de l ’octet de la pile vers Z.
T1 de M3 : Contenu du registre SP dans le bus d ’adresses.
T2 de M3 : SP = SP +1 (& décodage et préparation de la donnée).
T3 de M3 : Transfert de l ’octet de la pile vers W.
T1 de M1n+1 : Contenu du registre d ’adresse WZ dans le bus d ’adresses
T2 de M1n+1 : PC = WZ +1 (& décodage et préparation de la donnée).
R. Grisel
- 35