Architecture des ordinateurs

publicité
Plan du cours
1
Histoire de l’ordinateur
2
Présentation générale
3
Représentation interne des informations
4
Encodage de l’information
5
Circuits logiques
6
Composants électroniques
7
Mémoires
8
Unité centrale de traitement
9
Superordinateurs et microprocesseurs
10
Entrées / sorties
11
Assembleur
12
Introduction au langage MIPS
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
169 / 262
Schéma général de l’ordinateur
L’unité centrale de traitement dans l’architecture de Von
Principe de fonctionnement
Neumann
unités
d’entrée/sortie
unité de contrôle
ou
ou unité de commande
registres
L’unité centrale de traitement ou
central
est
nnéesprocesseur
depuis un périphérique
dans(CPU)
la
l’élément moteur de l’ordinateur qui
interprète et exécute les instructions
s du programme de la mémoire
du programme.
. . .
unité centrale
de traitement
Cerveau
et coeur de
truction et⇒
passage
à l’UAL pour
mémoire centrale
unité arithmétique
et logique
ou
ou principale
unité de traitement
ou
unité de calcul
l’ordinateur !
Se compose
avec éventuellement
appel à lade 2 unités séparées
e.
Intimement associé à la mémoire
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
170 / 262
Unité centrale de traitement (CPU)
Unité de commande
Dirige le fonctionnement des
autres unités : UAL, mémoire,
E/S
Prends les instructions en
mémoire, les décode et les passe
à l’UAL en fonction des cycles
horloges.
Unité Arithmétique et Logique
(UAL)
Réalise effectivement les opérations
arithmétiques (+,-,*,/) et logiques
(NOT, AND, OR, XOR).
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
171 / 262
Interconnexion des unités d’un ordinateur
Bus
Système de câblage transportant des signaux électriques qui interconnecte
les unités de l’ordinateur. Transmet des signaux correspondant à trois type
d’information : adresses, données et commandes.
Architectures à bus unique (e.g., microordinateur)
Architectures à bus spécialisés
Au maximum 2 unités peuvent utiliser un bus en même temps (⇒
attente)
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
172 / 262
Unité de commande
Unité de commande
Ensemble des dispositifs coordonnant le fonctionnement de l’ordinateur
afin de lui faire exécuter la suite d’opérations spécifiées dans les
instructions du programme
Compteur ordinal (CO) : registre contenant l’adresse en mémoire où
est stocker l’instruction à chercher ;
Registre d’instruction (RI) : reçoit l’instruction (opération +
opérande) qui doit être exécutée ;
Décodeur : détermine qu’elle opération doit être effectuée, parmi
toutes les opérations possibles ;
Séquenceur : génère les signaux de commande
Horloge : émet des impulsions électroniques régulières, synchronisant
ainsi toutes les actions du CPU.
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
173 / 262
Schéma général du fonctionnement du CPU
Mémoire centrale
Dispositif de sélection d’adresse
Bus
adresse opérande
RA
RM
CO
RI
résultats
Unité de
commande
Horloge
Décodeur
Séquenceur de commandes
Registre d’état
opérandes
Unité
arithmétique
et logique
Unité de calcul
opérandes
Registres
résultats
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
174 / 262
Cycle de recherche d’une instruction
1
Transfert de l’adresse de la
nouvelle instruction du
CO→RA.
2
Impulsion en lecture générée par
l’unité de contrôle ⇒ transfert
de l’instruction dans le RM.
RA
Mémoire centrale
RM
2
3
1
3
4
5
Transfert de l’instruction (=
code opération + adresse
opérande) du RM→RI.
Code opération → décodeur
(détermine le type d’opération)
→ séquenceur
Adresse opérande → RA
CO
RI
4
5
Décodeur
4
Horloge
Séquenceur
CO :=CO+1
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
175 / 262
Cycle d’exécution d’une instruction
L’opération spécifiée durant le cycle de recherche est ensuite effectuée par
l’UAL. La séquence exacte des actions coordonnées par le séquenceur
dépendra de l’opération :
1
2
Le séquenceur envoie les signaux de commande pour lire l’opérande à
l’adresse déjà stockée dans le RA, et le stocke dans le RM.
Transfert du contenu du RM →
UAL. Pour certaines
opérations :
I
I
I
3
RM → ACC (avant
l’exécution de l’opération)
ACC → RM (après exécution,
mémorisation du résultat)
RM → CO (instruction de
branchement)
RA
Mémoire
centrale
Unité de
commande
RM
UAL
1
Séquenceur
2
ACC
3
exécution de l’opération sous
contrôle du séquenceur.
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
176 / 262
Séquenceur
Génère les signaux de commande nécessaires pour actionner et contrôler
les unités participant à l’exécution d’une instruction donnée.
Tiens compte des temps de réponse des circuits sollicités
Peut être réalisé de 2 façons : câblé ou microprogrammé
Séquenceur câblé
Circuit séquentiel complexe qui fait correspondre à chaque instruction
exécutable un sous-circuit capable de commander son déroulement. Le
sous-circuit approprié est activé par un signal provenant du décodeur.
Séquenceur micro-programmé
Suite de microinstructions (pour chaque opération correspond un
microprogramme) stockées dans une mémoire de microprogrammation
(très rapide et séquentielle e.g., ROM ou EEPROM).
Code opération → adresse de la 1ère microinstruction ;
Ce microprogramme génère une suite de signaux de commande
équivalents à celle produite par un séquenceur câblé.
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
177 / 262
Séquenceur câblé ou microprogrammé
code op
@
mapping
ROM
CO micro
décodeur
Mémoire de
micro−programmation
MEM
séquenceur
cablé
micro−instruction 0 1 0 1 1 0 1 0
signaux
UAL
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
178 / 262
Séquenceur câblé vs. microprogrammé
Micro-programmé ⇒ souplesse et simplicité de conception.
Micro-programmé ⇒ un peu plus lent qu’un séquenceur câblé.
La plupart des processeurs moderne utilisent la micro-programmation.
Normalement le niveau de micro-programmation n’est pas accessible
au programmeur.
Changer les microprogrammes ⇒ machines à architecture
reconfigurable.
Il peut exister également un niveau de nano-programmation.
Toujours possible de remplacer un circuit logique par un
microprogramme.
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
179 / 262
Exemple d’équivalence entre circuits logiques et
microprogrammes
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
180 / 262
Niveaux de programmation
Langage
Ensemble d’instructions et de règles
syntaxiques permettant l’écriture de
code source (i.e., programme).
Le programmeur a le choix entre
différents langages (assembleur,
Ada, Java, C, etc.) ;
La machine ne comprends que le
langage machine !
⇒ Traduire le code source → code machine
⇒ Utilisation de programme traducteur : assembleur, compilateur et
interpréteur.
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
181 / 262
Structure des instructions niveau machine
Les ordinateurs sont capables de faire un certain nombre d’opérations
simples. Par exemples :
additionner 2 nombres ;
tester le signe d’une valeur numérique ;
copier le contenu d’un registre à un autre ;
stocker en mémoire un résultat :
Instruction
Une instruction doit fournir au CPU toutes les informations pour
déclencher une opération :
Code opération ;
Adresses : opérande(s) + résultat + instruction suivante.
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
182 / 262
Comment optimiser les instructions ?
En économisant des champs adresses !
On peut se passer de l’adresse de l’instruction suivante si le CO
est incrémenté à chaque étape (i.e., exécution séquentielle
seulement) ;
On peut se passer de l’adresse du résultat si l’on admet qu’il
peut être mémorisé à la place de l’opérande ;
On peut aussi se passer d’une 2ième adresse opérande si on
utilise lors de l’instruction précédente un registre spécial i.e.,
accumulateur (ACC) pour stocker le résultat de l’opération
précédente ;
On peut se passer de toutes les adresses si on utilise une pile
LIFO (Last In First Out).
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
183 / 262
Exemple de programmation avec une adresse
A = B × (C + D × E − F /G )
1.
2.
3.
4.
5.
6.
7.
8.
9.
LOAD
DIV
STA
LOAD
MPY
ADD
SUB
MPY
STA
F
G
T1
D
E
C
T1
B
A
Clement Jonquet (Polytech’ Montpellier)
(LOAD=charger dans l’accumulateur)
(DIV=diviser le contenu de l’accumulateur)
(STA=ranger le contenu de l’accumulateur)
(MPY=multiplier le contenu de l’accumulateur)
(ADD=ajouter le contenu de l’accumulateur)
(SUB=soustraire du contenu de l’accumulateur)
Architecture des ordinateurs
IG3 2011-2012
184 / 262
Exemple de programmation avec une pile
2 instructions seulement ont une adresse :
LOAD = empiler le contenu de l’adresse dans la
pile,
STA = dépiler et stocker dans l’adresse.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
LOAD
LOAD
LOAD
LOAD
MPY
ADD
LOAD
LOAD
DIV
SUB
MPY
STA
B
C
D
E
F
G
A
Clement Jonquet (Polytech’ Montpellier)
PILE={B}
PILE={B ;C}
PILE={B ;C ;D}
PILE={B ;C ;D ;E}
PILE={B ;C ;D*E}
PILE={B ;C+(D*E)}
PILE={B ;C+(D*E) ;F}
PILE={B ;C+(D*E) ;F ;G}
PILE={B ;C+(D*E) ;F/G}
PILE={B ;C+(D*E)-(F/G)}
PILE={B*(C+(D*E)-(F/G))}
PILE={}
Architecture des ordinateurs
IG3 2011-2012
185 / 262
Jeu d’instructions (1/2)
Le nombre d’instructions d’une machine varie typiquement entre 50 et
250. 2 écoles s’affrontent.
Architectures RISC (Reduced Instruction Set Computer)
Préconisent un petit nombre d’instructions élémentaires dans un format
fixe, faciles à réaliser dans le matériel et d’exécution rapide (i.e., une
instruction par cycle machine).
séquenceur câblé ;
limiter les accès mémoires ;
très bon compilateur.
Architectures CISC (Complex Instruction Set Computer)
Jeux d’instructions très riches de taille variable avec des instruction
composées (e.g., racine carré, multiplication de flottants en double
précision)
séquenceur microprogramme ;
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
186 / 262
Jeu d’instructions (2/2)
Transfert de données : mémoire → registre ou registre → registre
(LOAD, MOV, STA, etc.) ;
Opérations arithmétiques (4 opérations en virgule fixe ou flottante
et en simple ou multiple précision) ;
Opérations logiques (AND, OR, NOT, XOR, etc.) ;
Contrôle de séquence (branchements impératifs et conditionnels,
boucles, appel de procédure, etc) ;
Entrées/sorties (READ, WRITE, PRINT, etc.) ;
Manipulations diverses (décalages, conversion de format,
incrementation de registre, etc.).
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
187 / 262
Registres du CPU (1/2)
Nous avons déjà mentionné :
Compteur Ordinal (CO) - adresse de la prochaine exécution log2 (nbre de mot) ;
Registre Instruction (RI) - instruction en cours d’exécution - taille
d’un mot ;
Accumulateur (ACC) - contient un des opérandes avant l’exécution
et le résultat après - 2 × taille d’un mot ;
Existe également :
Registres généraux (ou banalisés) - informations fréquemment
utilisées, résultats intermédiaires ;
Registres d’indices (XR) - addition d’un indice pour obtenir une
adresse (i.e., adressage indexé).
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
188 / 262
Registres du CPU (2/2)
Registres de base - addition d’une adresse de référence pour obtenir
une adresse ;
Registre d’état (PSW) - indique l’état d’une condition particulière
dans le CPU (drapeaux) e.g., retenue, dépassement, etc ;
Pointeur de pile (SP) - simule une pile en mémoire centrale
(indique l’adresse correspondant au sommet de la pile) ;
Registres spécialisés - spécialisés pour une opération particulière
e.g., décalage, opérations arithmétiques sur des flottants ;
Registres banalisés - utilisés pour diverses opérations telles que le
stockage de résultats intermédiaires (variables).
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
189 / 262
Adressage des opérandes
Il existe plusieurs méthodes pour adresser les opérandes (indiquer dans
l’instruction elle mémé) :
Direct - Le champ adresse contient l’adresse effective ;
Indirect - Le champ adresse contient l’adresse où se trouve l’adresse
effective ;
Immédiat - Le champ adresse contient l’opérande ;
Implicite - Le code opération indique où se trouve l’opérande
Indexé - Adresse effective = contenu du champ adresse + contenu
du registre d’index ;
Basé - Adresse effective = contenu du registre de base + contenu du
champ adresse ;
Relatif - Adresse effective = contenu du CO + contenu du champ
adresse ;
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
190 / 262
Exemples d’adressage des opérandes
État des registres et des mémoires
adresse
100
101
102
103
contenu
a
b
c
d
adresse
200
201
300
301
contenu
300
302
alpha
beta
adresse
302
XR1
B1
B2
contenu
gamma
1
100
200
Effet de différentes conditions d’adressage
LOAD
LOAD
LOAD
LOAD
LOAD
LOAD
LOAD
LOAD
Clement Jonquet (Polytech’ Montpellier)
100
100,IMM
200,I
200,XR1
200,XR1,I
200,I,XR1
3,B1
1,B2
Architecture des ordinateurs
a
100
alpha
302
gamma
beta
d
302
IG3 2011-2012
191 / 262
Unité arithmétique et logique
Unité arithmétique et logique
Dispositif chargé de toutes les opérations élémentaires de traitement de
données. Totalement asservie à l’unité de contrôle qui déclenche et
synchronise les opérations menées. L’UAL est capable d’effectuer une
grande variété d’opérations arithmétiques et logiques :
Opérations sur un registre ;
Opérations sur un ou plusieurs opérandes ;
Opérations en virgule flottante en simple et double précision.
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
192 / 262
Réalisation d’une UAL 32 bits
Nous allons réaliser une UAL 32 bits capables d’effectuer les opérations
élémentaires (nombre entier seulement).
1
Faire une UAL 1 bit pour AND, OR et l’addition ;
2
Ajouter les opérations de soustraction et de test d’infériorité et
d’égalité ;
3
Faire une UAL 32 bits à partir des UALs 1 bit ;
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
193 / 262
UAL 1 bit, étape 1 : opérations OR et AND
Regroupement en un seul circuit ⇒ Multiplexeur pour le choix de
l’opération
opération
a
0
Résultat
b
Clement Jonquet (Polytech’ Montpellier)
1
Architecture des ordinateurs
IG3 2011-2012
194 / 262
UAL 1 bit, étape 2 : ajout de l’addition
Circuit additionneur complet pour l’addition avec retenue ;
Re opération
a
0
1
b
+
Résultat
2
Rs
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
195 / 262
UAL 32 bits : connexion de 32 UALs 1 bit
Re
a0
b0
a1
opération
Re
Résultat0
UAL1 bit
Rs
Re
Résultat1
UAL1 bit
b1
Rs
..
.
a 31
b 31
Clement Jonquet (Polytech’ Montpellier)
..
.
Re
UAL1 bit
Résultat31
Rs
Architecture des ordinateurs
IG3 2011-2012
196 / 262
UAL 1 bit, étape 3 : ajout de la soustraction
En complément à 2, soustraire = ajouter l’opposé ⇒ inverseur ;
Ajout d’un inverseur sur le bit d’entrée b ;
Ajout d’un sélecteur Binverse permettant de choisir entre b et b.
L’entrée Re sera positionnée à 1 pour ajouter 1.
Binverse
Re opération
a
0
1
b
0
+
Résultat
2
1
inférieur
3
Rs
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
197 / 262
UAL 1 bit, étape 4 : test d’infériorité et d’égalité
x < y ⇔ x − y < 0, et x = y ⇔ x − y = 0,
Tester le signe en complément à 2 ⇒ Utiliser le bit de poids fort ;
⇒ UAL 1 bit spéciale pour le bit de poids fort (slide suivant).
Binverse
Re opération
a
0
1
b
0
+
Résultat
2
1
inférieur
3
Rs
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
198 / 262
UAL 1 bit, étape 5 : UAL spéciale bit de poids fort
Dans notre UAL 32 bits, pour le bit de poids fort :
Déroutement de la sortie de l’additionneur ;
Ajout du test de débordement (non détaillé).
Binverse
Re opération
a
0
1
b
0
+
Résultat
2
1
inférieur
3
Positionner
détection de
dépassement
Débordement
Rs
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
199 / 262
UAL 32 bits finale
opération
Bopposé
a0
b0
Re
Résultat0
UAL1 bit
Rs
a1
b1
UAL1 bit
0
Rs
Re
..
.
..
.
a 31
b 31
0
Re
UAL1 bit
Résultat1
Zéro
..
.
Résultat31
Débordement
Rs
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
200 / 262
Symbole de l’UAL 32 bits
Opération UAL
a
UAL
Zéro
Résultat
Débordement
b
Rs
Clement Jonquet (Polytech’ Montpellier)
Architecture des ordinateurs
IG3 2011-2012
201 / 262
Téléchargement