CM1 Introduction à l`architecture des ordinateurs

publicité
CM1
Introduction à l’architecture des ordinateurs
Olivier Marchetti (CM-TD-TP)
Laurent Lambert (TD-TP)
Laboratoire d’informatique de Paris 6 – Pôle SoC – UPMC
Année 2016-2017
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Jusqu’à présent, que savons-nous de l’informatique ?
Programmation
Algorithmique
Moyens linguistiques adaptés pour
exprimer/organiser et automatiser des
calculs, des algorithmes, des
traitements...
Cadre précis et rigoureux pour décrire
des processus automatiques fiables
(démonstration) et efficaces
(complexité).
Ne manque-t-il pas quelque chose ?
Architecture des ordinateurs
Ensemble de concepts, de principes et de techniques décrivant/régissant :
I l’élaboration de dispositifs physiques fiables et rapides,
I
l’organisation matérielle d’un ordinateur,
I
le fonctionnement matériel/logiciel et leurs interactions.
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
2 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Plan
1
Des zéros et des uns pour calculer
La représentation de l’information
Le calcul sur de l’information binaire
2
Description générale d’un ordinateur
Concepts de base au coeur de l’architecture
Vue d’ensemble d’un ordinateur
La mémoire vive – RAM
Description générale d’un CPU
Programmer un ordinateur
3
Un autre regard sur l’informatique
Réflexion sur la correction des ordinateurs
Un peu d’histoire
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
3 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
1
Des zéros et des uns pour calculer
La représentation de l’information
Le calcul sur de l’information binaire
2
Description générale d’un ordinateur
Concepts de base au coeur de l’architecture
Vue d’ensemble d’un ordinateur
La mémoire vive – RAM
Description générale d’un CPU
Programmer un ordinateur
3
Un autre regard sur l’informatique
Réflexion sur la correction des ordinateurs
Un peu d’histoire
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
4 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Question du jour : qu’est-ce qu’un ordinateur ?
Défintion d’un dictionnaire (www.cnrtl.fr/definition)
subst. masc. : machine algorithmique composée d’un assemblage de matériels
correspondant à des fonctions spécifiques, capable de recevoir de l’information, dotée
de mémoires à grande capacité et de moyens de traitement à grande vitesse, pouvant
restituer tout ou partie des éléments traités, ayant la possibilité de résoudre des
problèmes mathématiques et logiques complexes, et nécessitant pour son
fonctionnement la mise en oeuvre et l’exploitation automatique d’un ensemble de
programmes enregistrés.
Quelques remarques :
I Que signifie algorithmique ? cf. AlgoElem.
I Que signifie information ?
I Que signifie résoudre un problème mathématique ? cf. AlgoElem & AlgoAvancée.
I Que signifie programme enregistré ?
Définition : seconde tentative
Un ordinateur est une machine capable :
1 de lire toute séquence d’instructions écrites dans un langage préalablement
défini,
2
d’exécuter de façon cohérente ces instructions, c’est-à-dire d’activer
automatiquement tous les procédés calculatoires physiques nécessaires.
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
5 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Le monde numérique
Écriture
Symboles et conventions d’encodage permettent de réprésenter les choses du monde
sensible.
I
I
I
Concepts : l’écriture cunéiforme, les hiéroglyphes...
Sons : alphabet, notes de musique...
Concepts numériques : représentation unaire, chiffres romains, système positionnel.
Représentation des nombres – système positionnel
On utilise une base b donnée (donc b symboles en tout). La valeur d’un chiffre dépend
de sa position dans l’écriture du nombre (et de sa base) :
x = (an−1 an−2 . . . a1 a0 )b = an−1 · b n−1 + an−2 · b n−2 + · · · + a1 · b 1 + a0 · b 0
I
I
I
En base 10, ai ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.
En base 2, ai ∈ {0, 1}.
En base 16, ai ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C , D, E , F }.
Observations
I
Le zéro : essentiel et néanmoins dangeureux pour les calculs.
I
Deux symboles pour représenter/manipuler efficacement l’information.
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
6 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Le langage primordial des ordinateurs : le langage binaire
Un ordinateur électronique ne manipule que de l’information représentée sous
forme binaire (magnétique (mémoires), électrique (portes)).
I
Le bit (pour binary digit) est l’unité d’information.
I
Un groupe de huit bits forme un octet (UK/US, byte).
D’une certaine façon, tout est nombre ; mieux, tout est symbole !
Conventions de codage sur machine
I
Caractères : 7 bits (codage ASCII).
I
Les entiers : 4 octets (en complément à deux).
I
Les flottants (approximations de réels) : 4 ou 8 octets.
Remarques
I
Les conventions ne valent que pour ceux qui les respectent !
I
Matériel et logiciel peuvent très bien s’affranchir partiellement ou totalement de ces conventions (ex : l’implémentation matérielle pour le calcul des
flottants).
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
7 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Convention de codage : les caractères
Conventions
Plusieurs conventions existent :
I
Code ASCII (7 bits) : alphabet latin, ponctuation, chiffre, symbole.
I
Code ISO-LATIN (8 bits) : idem + caractères accentués.
I
Code UTF-16 (16 bits) : presque tous les symboles d’écriture de l’humanité.
0
1
2
3
4
5
6
7
8
9
A
B
BS
HT
LF
VT FF CR SO
SI
1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS
US
0 NUL SOH STX ETX EOT ENQ ACK BEL
C
D
E
F
!
"
#
$
%
&
'
(
)
*
+
,
-
.
3
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
4
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
5
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
6
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
7
p
q
r
s
t
u
v
w
x
y
z
{
|
}
˜
DEL
2
/
Figure: Table d’encodage ASCII.
Exemple : le caractère 'A' est encodé par 65 (4 × 16 + 1), ou encore (41)16 .
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
8 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Convention de codage : les entiers (1/2)
Plusieurs conventions pour encoder les entiers en binaire.
Représentation signe - module
Complément à un
I
Module encodé en binaire.
I
Module encodé en binaire.
I
Signe : codé sur le bit de poids
fort (1 si négatif).
I
Signe : module complémenté
bit-à-bit si négatif.
(48)10
(−91)10
=
=
(00110000)2
(11011011)2
(48)10
(−48)10
=
=
(00110000)2
(11001111)2
Avantages vs. inconvénients
√
Ensemble de valeurs encodables symétrique et facile à lire.
X Peu pratique pour les opérations élémentaires (test du signe).
X Deux zéros ⇒ danger !
+0 = (00000000)2 et −0 = (10000000)2 , −0 = (11111111)2
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
9 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Convention de codage : les entiers – compléments à 2 (2/2)
Ici, le bit de poids fort toujours interprété comme négatif :
(an−1 an−2 . . . a1 a0 )2n
=
−an−1 · 2n−1 + an−2 · 2n−2 + · · · + a1 · 21 + a0 · 20
Complément à 2
I
I
Module encodé en binaire ou en binaire complémenté.
Signe codé sur le bit de poids fort avec :
• an−1 = 0 si l’entier représenté est positif.
• an−1 = 1 si l’entier représenté est négatif, ajouter 1 au module.
(48)10
=
(00110000)2n
(−48)10
=
−−→
00110000
(1101̌0000)2n
Pour la négation, complémenter les bits du module sauf à partir du dernier 1.
Avantages vs. inconvénients
√
Notation non redondante (un seul zéro).
√
Addition ∼ soustraction.
X Intervalle de représentation non-symétrique.
X Moins intuitif.
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
10 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Convention de codage : les réels
Comment réprésenter un nombre tel que π = 3.1415 . . . ?
3.1415 . . . = 10−1 × 31.415 . . . = 10−2 × 314.15 . . . = . . .
Problème : ces écritures sont redondantes.
Notation scientifique normalisée dans une base b
Pour tout x ∈ R, on écrit
x = ±a0 , a1 a2 . . . ai . . . E ± e0 . . . ek
Ce nombre peut s’écrire
x = · be · m
avec
I
∈ {−1, 1} codant le signe.
I
m = a0 , a1 a2 . . . ai . . . ∈ [1, b[ codant la mantisse (i.e. a0 6= 0).
I
e = e0 . . . ek ∈ Z codant l’exposant.
Exemple à 5 chiffres significatifs (en base 10) :
π = 3.1415 × 100 ,
Olivier Marchetti
NA = 6.0221 × 1023 .
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
11 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Convention de codage : les flottants IEEE (simple précision)
Signe Exposant (8 bits)
Partie fractionnaire (23 bits)
0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
31 30
23 22
0
Indexation des bits
I
Le bit de signe vaut 1 si le nombre est négatif, 0 sinon.
I
L’exposant est une représentation binaire biaisée, i.e. il faut retrancher B = 27 −
1 = 127. Exposants réservés : 00000000 (nombre dénormalisé) et 11111111 (NaN,
not a number, division par zéro).
I
La mantisse code la partie fractionnaire (avec implicitement a0 = 1).
Ici :
e
m
=
=
=
(−1)Signe soit 1
P7
i − B soit − 3
i=0 bi · 2
P
−i = 1 +
1(a0 =1) + 23
i=1 a23−i · 2
1
22
= 1, 25
=⇒
=⇒
=⇒
=⇒
x
x
x
x
= 1 · be · m
= 1 · 2−3 · m
= 1 · 2−3 · 1, 25
= (0, 15625)10
Les réels n’existe pas dans un ordinateur
L’ensemble des flottants F est fini, discret et ne comporte que :
I des réprésentations correctes de certains éléments de Q ;
I
des approximations d’éléments de R.
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
12 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Machines dédiées vs. universelles
Machine dédiée
I
Absence d’une véritable distinction entre le programme et la réalisation matérielle
de la machine.
I
Programme et machine sont consubstantiels.
I
Impossible de modifier le comportement de la machine sans la modifier physiquement.
Notion de machine universelle
Dans une machine universelle, il existe une distinction fondamentale entre :
I la réalisation effective de la machine ;
I
le programme et les données.
Une machine universelle est une machine permettant de
programme chargé, quel qu’il soit.
Olivier Marchetti
contrôler tout
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
13 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Deux façons de calculer
Calcul analogique
Le calcul analogique manipule des quantités physiques englobant le continu
(courant électrique, hydraulique...).
Avantages & inconvénients :
√
Approximation intéressante du continu.
√
Repose sur des technologies existantes.
X Difficulté de contrôler l’exécution. Fiabilité ?
X Comment
implémenter
toutes
opérations ? machine universelle ?
les
Figure: Ordinateur analogique à
eau – URSS.
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
14 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Deux façons de calculer
Calcul numérique
Le calcul numérique manipule des quantités discrètes qui ne sont que des
représentations symboliques (impulsion électrique, propriété magnétique).
Avantages & inconvénients :
√
Permet d’implémenter facilement
toutes les opérations sur les entiers,
la logique.
√
Fiable et miniaturisable.
X Haute-technologie, très chers.
Figure: Transitors – inventés aux EU.
La simplicité conceptuelle du calcul numérique et l’invention du transitor
auront grandement contribué à son succès.
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
15 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Représentation binaire & calcul
Simplicité des tables arithmétiques associées à la réprésentation binaire :
x
0
0
1
1
y
0
1
0
1
+
0
1
1
0→r
x
0
0
1
1
y
0
1
0
1
×
0
0
0
1
Facilement implémentables avec les portes suivantes :
NOT
x
0
1
¬x
1
0
Olivier Marchetti
AND
x
0
0
1
1
y
0
1
0
1
x ∧y
0
0
0
1
OR
x
0
0
1
1
XOR
y
0
1
0
1
x ∨y
0
1
1
1
CM1 – Introduction à l’architecture des ordinateurs
x
0
0
1
1
y
0
1
0
1
Année 2016-2017
x ⊕y
0
1
1
0
16 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Les circuits : combinatoires vs. séquentiels
Circuit combinatoire
A
I
Formé d’éléments combinatoires.
I
Ces derniers sont reliés par des fils.
I
Structure acyclique.
A XNOR B
B
période d’horloge
Horloge
front montant
I
Synchronisation des éléments mémoires.
Olivier Marchetti
calcul
Etat
=⇒ les registres définissent un état du circuit.
=⇒ prévoir un cycle d’horloge suffisant pour la
logique combinatoire.
calcul
Etat
Formé d’éléments combinatoires et de registres.
Etat
t n−1
Circuit séquentiel
t
t n+1
Signal quasi-périodique.
tn
I
I
front descendant
t n−1
tn
t n+1
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
t
17 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Circuit combinatoires et logiques (1/3)
Comment construire un circuit qui réalise une certaine fonction ?
Exemple : l’additionneur un bit
I
En entrée :
x
y
• deux bits x et y à additionner,
• un bit ret entrée pour l’éventuelle rete-
nue à considérer.
I
ret_sortie
En sortie :
• un bit som res pour le résultat de x + y,
• un bit ret sortie pour l’éventuelle rete-
?
ret_entrée
som_res
nue à propager.
Portes logiques élémentaires ⇐⇒ expression logique de la fonction
Table de vérité
Dresser la table de vérité des
sorties de l’additionneur en
fonction de ses entrées.
Olivier Marchetti
0
1
2
3
4
5
6
7
x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
ret entrée
0
1
0
1
0
1
0
1
CM1 – Introduction à l’architecture des ordinateurs
ret sortie
0
0
0
1
0
1
1
1
Année 2016-2017
som res
0
1
1
0
1
0
0
1
18 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Circuit combinatoires et logiques (2/3)
Comment passer de la table de vérité à l’expression logique ?
Méthodologie (brutale)
Voir chaque entrée comme un littéral logique x.
I
• x est associé à la valeur 1.
• x̄ est associé à la valeur 0.
Pour chaque fonction du circuit,
I
• Pour chaque valeur de sortie non-nulle,
Former le produit logique des littéraux non-nuls ⇒ minterme.
Retourner l’expression disjonctive de ces mintermes.
I
Exemple :
I
0
1
2
3
4
5
6
7
x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
Olivier Marchetti
ret entrée
0
1
0
1
0
1
0
1
ret sortie
0
0
0
1
0
1
1
1
som res
0
1
1
0
1
0
0
1
Mintermes pour la retenue de
sortie :
x̄yre , x ȳ re , xy r¯e , xyre
I
Forme normale disjonctive :
(x̄yre ) + (x ȳ re ) + (xy r¯e ) + (xyre )
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
19 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
L’information ? Circuits combinatoires
Circuit combinatoires et logiques (3/3)
Comment passer de l’expression logique au circuit ?
En traduisant l’expression logique en porte et en fils...
x
I
Les entrées
x
I
Les mintermes
I
La fonction désirée
x
Remarques
I Complétude des opérateurs logiques OR, AND et NOT.
=⇒ toute fonction booléenne admet un circuit combinatoire.
I
Critères d’optimalité d’un circuit : profondeur & espace.
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
20 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
1
Des zéros et des uns pour calculer
La représentation de l’information
Le calcul sur de l’information binaire
2
Description générale d’un ordinateur
Concepts de base au coeur de l’architecture
Vue d’ensemble d’un ordinateur
La mémoire vive – RAM
Description générale d’un CPU
Programmer un ordinateur
3
Un autre regard sur l’informatique
Réflexion sur la correction des ordinateurs
Un peu d’histoire
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
21 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
Abstractions d’un ordinateur : un vue hiérarchique
Machine virtuelle
6
Programmes applicatifs
5
Langage de programmation
Une abstraction donnée constitue une machine virtuelle.
Ses instructions sont implémentées :
I par compilation (i.e. une traduction in extenso)
par interprétation pas-à-pas (JVM)
des instructions d’une autre machine virtuelle de niveau
inférieur.
I
4
Langage assembleur
3
SE −Noyau
Logique numérique
Langage machine
Vocabulaire propre de la
machine. On parle de jeu
d’instructions de l’architecture.
2
Langage machine
Abstraction des circuits
électroniques. On utilise des
portes pour la réaliser.
1
(Microprogramme)
Microprogramme
SE - Noyau
Premier niveau de langage sur
une machine : séquence d’étapes
pour réaliser une instruction du
langage machine.
Ensemble de fonctionnalités
dédiées à la gestion et
l’allocation des ressources
matériels et logiciels de
l’ordinateur.
0
Logique numérique
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
22 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
Un exemple familier : la programmation en C (1/2)
Pour écrire un programme C :
1 Utiliser un éditeur de texte (emacs, gedit, vi...).
2 Le compiler avec un programme tel que gcc.
lib
.c
cpp
.i
.s
cc1
as
.o
ld
a.out
.h
3
L’exécuter via le terminal, et donc le SE (GNU-Linux, of course !).
Deux choses importantes dans ce processus :
Abstraction
Traduction
C’est une description adaptée du
fonctionnement de l’ordinateur :
Permet de passer d’un niveau d’abstraction à un
autre :
I le langage C est largement indépendant de l’architecture,
I
sur le plan matériel ou logiciel,
I
à certaines échelles (électron,
données, instructions, programmes).
Olivier Marchetti
I
le langage assembleur repose le jeu d’instructions machine,
I
le code objet est destiné aux circuits.
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
23 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
Un exemple familier : la programmation en C (2/2)
Programmation : compilation vs. interprétation
La compilation améliore l’efficacité d’un programme par une analyse
poussée de son code.
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
24 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
Programme enregistré
Dans un ordinateur :
I les circuits de la machine ne réalisent qu’un petit nombre d’opérations,
I programmes et données sont dématérialisés,
=⇒ la donnée programme est une description de machine.
I
tout est adressé,
=⇒ le programme lui-même !
@instruction i + 1
Description instruction i − 1
@instruction i
Description instruction i
@instruction i −1
Description instruction i + 1
@
@instructon i = @instruction i − 1 + t(i − 1)
taille t(i) de l’instruction i
fonctionnement séquentiel ≈ programme
planaire Remarque
Pour un ordinateur, la taille des instructions est fixe (MIPS) ou variable (x86).
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
25 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
Le cycle chercher, décoder, exécuter
Qu’est-ce qui distingue un ordinateur d’un calculateur ?
PC (compteur programme) est l’adresse de la prochaine instruction à exécuter.
Remarques
I
Un ordinateur est purement séquentiel (instruction après instruction).
I
La partie contrôle implémente physiquement cet algorithme (cf. CM5&6).
Registres et ALU permettent la gestion cohérente des données et calculs :
I
• du programme exécuté ;
• du fonctionnement de l’ordinateur.
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
26 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
Architecture de von Neumann
Mémoire
Stockage
Périphérique
Principale
Secondaire
Entrée/Sortie
CPU
BUS
Tous les ordinteurs électroniques possèdent :
I
un CPU (Central Processing Unit), un ensemble de circuits guidant et effectuant les traitements de la machine ;
I
un bus, pour l’acheminement des données entres les différentes entités ;
I
une mémoire centrale, stockant de façon temporaire les programmes et leurs
données en vue de leur exécution ;
I
une mémoire secondaire, stockant de façon permanente les données d’un
ordinateur ;
I
des périphériques d’entrées/sorties, permettant de connecter d’autres dispositifs (e.g. écran, souris, modem, imprimante...).
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
27 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
Description générale de la mémoire (1/2)
La mémoire RAM (Random Access Memory )
assure :
1 le stockage temporaire des données
(programme compris),
2
l’accès en temps constant (borné) à ces
informations.
| mot |
2
−1
| mot |
2
−2
00011110
11000101
En mémoire RAM, les données sont organisées :
1
en octets (unité d’informations de la
mémoire),
2
en mots de taille fixe, i.e. une puissance de 2
d’octets (exemples : mots 16, 32, 64 bits).
Les données sont adressées par un entier allant de
0 à 2|mot| − 1 ∗ . L’adresse d’un mot est l’adresse de
son premier octet.
2
1
0
01001100
11100000
00101101
@ Données
∗
Un octet est la quantité minimale de stockage qui a sa
propre adresse.
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
28 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
Description générale de la mémoire (2/2)
Comment l’ordinateur fait-il pour accéder en temps constant à toute information
de la RAM ?
SRAM vs. DRAM
On distingue deux types de mémoire
RAM :
I
static : très rapide, mais très chère
(cache L1, L2, L3).
I
dynamic : assez rapide, peu chère
(RAM principale).
Organisation d’une DRAM
La RAM est organisée en banques :
I chaque banque est une matrice
(carrée),
I
chaque ligne stocke plusieurs mots
mémoire,
I
pour une adresse donnée, la RAM
recompose la donnée morcellée
dans ses banques.
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
29 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
Le processeur (UK/US : CPU – Central Processing Unit)
Les registres
U
nité
de
Registres
C
ontrole
Eléments mémoire du CPU (sur 32 ou 64
bits en général)
I
U
A
L
peu nombreux mais très rapides.
nité
rithmétique &
Mémoire
ogique
L’Unité Arithmétique et Logique (ALU)
Circuits réalisant des opérations :
I
arithmétiques (entiers et flottants),
I
logiques (AND, OR, XOR...),
I
comparaisons (telles que 6, ==, >...).
L’Unité de Contrôle (UC)
Figure: Intérieur du boı̂tier d’un 486
de STMicroelectronics.
Olivier Marchetti
Circuits coordonnant l’activité de l’ALU,
des registres et des interactions avec la
mémoire.
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
30 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
Les registres : éléments mémoire du CPU
Gérer l’état du programme... ou se répérer dans le temps
I
L’adresse de l’instruction suivante : registre PC (UK/US : Prog. Counter ).
I
L’adresse de retour et la valeur de retour (appel) : 1 registre chacun.
I
L’état de la pile : 2 registres.
Gérer les données... ou se réperer dans l’espace
I
Adresse des données du programme : 1 registre.
I
Opérandes (num. registre, adresse, données) : 10–20 registres généraux .
Autres éléments mémoire du CPU modernes : les caches
√
Capacité de stockage de quelques Mo.
√
Vitesse : registres > caches > mém. principale.
X Occupe près de la moitié de la surface de la puce.
=⇒ très chers.
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
31 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
Les registres : au coeur du calcul
X Plus aucun type
=⇒ organiser en mémoire les données.
X Plus aucune variable
=⇒ quelques registres et de la mémoire (chaise musicale).
X Plus aucune structure de contrôle ou structure de données
=⇒ les réinventer en jouant avec des étiquettes assembleurs.
Remarque
Les programmes haut-niveau
Olivier Marchetti
s’aplanissent .
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
32 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
Les registres : accés aux données
Comment l’instruction courante manipule-t-elle les données présentes en RAM ?
Adressage relatif
I
accès tableaux, structures...
celle contenue par CP.
√
11000101
Instruction courante
Adr. abs.
sauts d’instructions.
Adressage absolu
Les opérandes de l’instruction courante
se situent dans le CPU :
I
dans l’instruction même (une
constante) – adressage immédiat,
I
dans d’autres registres – adressage
par registre.
Olivier Marchetti
2
−1
| mot |
2
−2
Instructions
Val. déc.
Banc registres
√
| mot |
00011110
Val. déc.
S’effectue entre une valeur de décalage
et une adresse de base :
I celle d’une zone mémoire donnée,
tab[i]
tab[0]
Ins. Courante
CPU
CM1 – Introduction à l’architecture des ordinateurs
01001100
11100000
00101101
2
1
0
Données @
RAM
Année 2016-2017
33 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
CPU & RAM : organisation et fonctionnement (1/3)
Segments mémoire
La mémoire est organisée en segments :
I
le segment texte contient les instructions du programme,
I
le segment des données (données statiques et dynamiques).
Mem.
Mémoire du programme
Comment l’ordinateur fait-il pour distinguer
en mémoire le programme de ses données ?
dispo.
Tas
données stat.
Programme
Seg. données
Seg. texte
Figure: Un implémentation
possible de la mémoire pour un
programme.
Remarques
I
Le SE gère la ressource mémoire.
I
Pour se répérer dans la RAM, le CPU utilise des registres dédiés à cet effet.
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
34 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
CPU & RAM : organisation & fonctionnement (2/3)
Comment l’ordinateur exécute-t-il de gros programmes avec si peu de registres ?
−→ impossible à la main,
−→ très difficile pour un compilateur.
Segment mémoire pile
CPU&RAM gèrent une pile permettant :
I
de décharger les registres,
I
de charger ces mêmes registres par
d’autres données,
I
de restituer l’état antérieur des registres.
Pile
Mémoire du programme
Optimisation de l’usage des registres :
X utile mais limitée car
Seg. pile
Mem.
dispo.
Tas
données stat.
Programme
Seg. données
Seg. texte
Figure: Un implémentation
possible de la pile d’un
programme.
Remarques
√
Permet la récursivité.
√
Facile à implémenter (système et compilateur).
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
35 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
Programmer un ordinateur : le jeu d’instructions
Jeu d’instructions (UK/US : ISA – Instruction Set Architecture)
C’est son vocabulaire. Il contient généralement des instructions pour :
1
déplacer les données entre la mémoire et les registres,
2
effectuer des calculs arithmétiques et logiques (ALU du CPU),
3
réaliser des branchements sur le programme.
Langage Assembleur
Notation symbolique du langage de la machine telle que :
I
I
les codes opérations de la machine sont désignés par des mnémoniques
adaptés (ADD, LW,...),
les adresses mémoires sont nommées,
• numéros de registres,
• étiquettes du programmeur.
Syntaxe assembleur
<opération> <opérande(s)> # commentaire
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
36 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Concepts architecture ? Généralités ? RAM ? CPU ? Assembleur
Programmer un ordinateur : format d’une instruction
Un ordinateur exécutant un programme doit :
I lire un mot mémoire à une adresse donnée,
I décoder l’instruction et charger éventuellement des données,
I l’exécuter.
Décodage et format d’une instruction
Code opération
c(1)
[champs 2]
[champs n]
c(2)
c(n)
c(i) = taille du champs i (en bits)
I
I
Code opération : identifiant d’une action réalisée par le matériel (addition,
comparaison,...).
Autres champs : descripteurs d’opérandes. Ils peuvent désigner :
• des adresses (généralement des noms de registres),
• un nombre opérande de l’opération.
• une option de l’opération (addition particulière...).
Des catégories de formats d’instructions
Calculs mathématiques, Manipulation de donnée, Contrôle
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
37 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Correction du calcul ? Histoire
1
Des zéros et des uns pour calculer
La représentation de l’information
Le calcul sur de l’information binaire
2
Description générale d’un ordinateur
Concepts de base au coeur de l’architecture
Vue d’ensemble d’un ordinateur
La mémoire vive – RAM
Description générale d’un CPU
Programmer un ordinateur
3
Un autre regard sur l’informatique
Réflexion sur la correction des ordinateurs
Un peu d’histoire
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
38 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Correction du calcul ? Histoire
Problème sur les entiers des ordinateurs
Comment calculer les coefficients de (a + b)n ?
=⇒ en calculant les Cnk pour k ∈ {1, . . . , n} avec la formule
√
√
√
√
√
√
√
√
√
√
√
√
√
X
X
X
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
4
5
6
7
8
9
10
11
12
4
0
1
1
3
6
10
15
21
28
36
45
55
66
24
1
-4
1
4
10
20
35
56
84
120
165
220
88
5
-1
1
5
15
35
70
126
210
330
495
221
14
2
1
6
21
56
126
252
462
792
399
29
4
1
7
28
84
210
462
924
532
44
7
1
8
36
120
330
792
532
50
9
1
9
45
165
495
399
44
9
1
10
55
220
221
29
7
1
11
66
88
14
4
1
12
24
5
2
n!
.
k!(n−k)!
1
4
1
-1
1
0
-4
1
1
1
En effet, pour la première valeur érronée
12 !
13 !
Valeur exacte
479001600
6227020800
Valeur du programme (int 32 bits)
479001600
1932053504
Or le plus grand entier signé codé sur 32 bits vaut 231 − 1 < 13!.
L’ordinateur effectue un dépassement de capacité.
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
39 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Correction du calcul ? Histoire
Problème sur les flottants des ordinateurs
Calculons
I I
Pn
1
i=1 n
∈ Θ(ln(n)) avec la suite xn+1 = xn + n1 .
n
valeur avec float
vs.
valeur avec double
101
2.9289684̌2956542968750
6=
2.9289682̌5396825377652
102
5.1873779̌2968750000000
6=
5.1873775̌1763962062768
103
7.485478̌40118408203125
6=
7.485470̌86055034327501
104
9.78761̌291503906250000
6=
9.78760̌603604434464842
105
12.0908̌5083007812500000
6=
12.0901̌4612986328174316
106
14.35̌735797882080078125
6=
14.39̌272672286478105264
107
15̌.40368270874023437500
6=
16̌.69531136585671049488
108
15̌.40368270874023437500
6=
18̌.99789641384770177979
Préférer la double précision flottante.
Ordre de grandeur conservé...
X valeur constante au delà de n = 107 ... or limn→+∞ ln(n) = +∞.
float vs. double... au final, qui dit vrai ?
X Les opérations arithmétiques sur F ne sont pas des lois internes.
X L’ordinateur effectue des arrondis.
X Lorsque les ordres de grandeurs des opérandes d’une opérations sont distincts, il
s’ajoute des phénomènes d’absorption voire de cancellation .
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
40 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Correction du calcul ? Histoire
L’algorithmique à la rescousse des ordinateurs
Comment calculer
√
2 malgré les flottants ?
L’algorithme babylonien (1800-1600 av. J.C.)
Approximation des babyloniens :
1+
24
60
+
51
602
+
Procédure algorithmique
pour
1
a
xn+1 = 2 xn + xn , x0 ∈ R+
10
603
√
a:
En utilisant des double, nous avons :
Approximation de
Itération
√
2
Nb de ch. sig. corrects
1
1̌.5000000000000000000000000000000000000000000000000000
1
2
1.416̌6666666666667406815349750104360282421112060546875
3
3
1.414215̌6862745098866440685014822520315647125244140625
6
4
1.414213562374̌6898698271934335934929549694061279296875
12
5
1.4142135623730951̌454746218587388284504413604736328125
Précision max. atteinte
Convergence quadratique de {xn }... peu importent les arrondis machine !
Algorithmique numérique
Discipline à la frontière des mathématiques et de l’informatique :
√
traitant des problèmes de calculs numériques sur machine.
X n’étant plus enseignée en EISE depuis 2013...
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
41 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Correction du calcul ? Histoire
Moralité
Doit-on faire confiance aux machines et/ou aux concepteurs/programmeurs ?
Ni les unes, ni les autres !
X Une machine n’a pas d’autre intelligence que celle que son concepteur lui a
donnée.
⇒ Architecture
boguée e.g. Pentium.
X Concepteurs/programmeurs sont humains :
⇒ impossibilité de tout prévoir (espace d’états gigantesque),
⇒ erreur humaine.
X Les machines calculent avec des quantités limitées de mémoire.
⇒ Mettre en doute ces calculs !
Par contre...
la Science informatique, oui !
√
Existence de méthodes formelles pour certifier des propriétés matérielles/logicielles.
√
Compilateurs spéciaux.
√
Analyseurs statiques de codes.
√
Preuves de programmes.
...
Olivier Marchetti
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
42 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Correction du calcul ? Histoire
Concepts
Histoire : des orgines à 1930
−3000 − Ecriture
485 − Zéro, Syst. pos.
0
1673 − G.W. Leibniz
1600
1854 − G. Boole
1830
1930
Histoire
−5000
−3000 − Etat
1517 − M. Luther proteste...
0
1760 − 1ere rév. industrielle
1600
1850 − 2eme rév. industrielle
1830
1930
Techniques
−5000
−3000 − caillou
Olivier Marchetti
1439 − Imprimerie
1745 − Métier Jacquard
CM1 – Introduction à l’architecture des ordinateurs
1837 − Machine de Babbage
Année 2016-2017
43 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Correction du calcul ? Histoire
Concepts
Histoire : de 1930 à 1970
1936 − A.Turing
1946 − J. von Neumann
1940
1951 − G. Hopper
1950
1969 − H. Curry
1960
1970
Histoire
1930
1933 − A. Hitler
1945 − Bombe A
1940
1962 − Cuba
1957 − Sputnik
1950
1960
1970
Techniques
1930
1936 − Z1 (Zuse)
Olivier Marchetti
1945 − BRL ENIAC
1955 − MIT TX0
CM1 – Introduction à l’architecture des ordinateurs
1961 − Burroughs B5000
Année 2016-2017
44 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Correction du calcul ? Histoire
Concepts
Histoire : de 1970 à nos jours
1972 − R. Karp
1984 − Coq (Assist. de preuve)
1980
1993 − P. Shor
1990
2004 − Google Print
2000
2010
Histoire
1970
1975 − Fin de la guerre du VN
1984 − USA vs. ATT
1980
1991 − Fin de l’URSS
1990
2001 − Guerre au terrorisme
2000
2010
Techniques
1970
1972 − Intel 8008
Olivier Marchetti
1981 − IBM PC
1990 − Internet
CM1 – Introduction à l’architecture des ordinateurs
2006 − RFID Passeport
Année 2016-2017
45 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Correction du calcul ? Histoire
Rendre à César ce qui appartient à César (1/3)
Références bibliographiques utilisées
Organisation et conception des ordinateurs , J. Hennessy & D. Patterson,
Dunod.
Concepts fondamentaux de l’informatique , A. Aho & J. Ullman, Dunod.
Introduction à l’algorithmique , T. Cormen et al., Dunod.
Leçons sur l’informatique , R. Feynman, Odile Jacob.
en.wikipedia.org et diverses ressources...
I I
I
I
I
Images utilisées
I Les images du transparent 1 sont dues à Vinod Pangracious (doctorant au LIP6).
I Image de gauche du transparent 12 :
Sujet :
Auteur :
Licence :
Machine à coudre Singer.
Singer Manufacturing Company.
Domaine public.
I Image au centre du transparent 12 :
Sujet :
Auteur :
Licence :
I Image de droite du transparent 12 :
Sujet :
Auteurs :
Licence :
Olivier Marchetti
Orgue de barbarie.
Roman Bonnefoy.
Creative Commons AttributionShare Alike 3.0 Unported.
CM1 – Introduction à l’architecture des ordinateurs
Caisse enregistreuse.
Roger Rössing & Renate
Rössing.
Creative Commons AttributionShare Alike 3.0 Germany
Année 2016-2017
46 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Correction du calcul ? Histoire
Rendre à César ce qui appartient à César (2/3)
Images utilisées
I Image de droite du transparent 14 :
Sujet :
Auteurs :
Licence :
Transitors.
Daniel Ryde.
Creative Commons AttributionShare Alike 3.0 Unported
I Image du bas transparent 23 :
Sujet :
Auteur :
Licence :
ST 486 DX2-80.
yellowcloud,
http
://www.flickr.com/
people/63794141@N00
Creative Commons Attribution
2.0 Generic.
Schéma RAM.
Steve Mann.
Creative Commons AttributionShare Alike 3.0 Unported.
I 1re image du transparent 42 :
Sujet :
Auteur :
Licence :
Olivier Marchetti
Sujet :
Auteur :
Licence :
Bulle-enveloppe et ses jetons
de comptabilité. Terre cuite,
période d’Uruk. Provenance : tell
de l’Acropole à Suse.
Marie-Lan Nguyen.
Creative Commons Attribution
2.5 Generic.
Théorème des 4-couleurs.
Dbenbenn.
Creative Commons AttributionShare Alike 3.0 Unported.
I 3e image du transparent 44 :
Sujet :
Auteur :
Licence :
Peter Shor.
Peter Shor.
Creative Commons ShareAlike
1.0
I 5e image du transparent 44 :
Sujet :
I Image du transparent 28 :
Sujet :
Auteur :
Licence :
I 2e image du transparent 44 :
Auteur :
Licence :
Jane Rose Kasmir devant le
pentagone (21 octobre 1967).
Marc Riboud.
Copyright – avec l’aimable permission de l’auteur.
I 7e image du transparent 44 :
Sujet :
Auteur :
Licence :
CM1 – Introduction à l’architecture des ordinateurs
Yeltsine lors du coup d’état
d’août 1991.
www.kremlin.ru
Creative Commons Attribution
3.0 Unported
Année 2016-2017
47 / 48
Monde binaire ? Architecture ? Un autre regard sur l’informatique
Correction du calcul ? Histoire
Rendre à César ce qui appartient à César (3/3)
Images utilisées
I 8e image du transparent 44 :
Sujet :
Auteur :
Championnat du monde de lancer de chaussures.
Muntadhar al-Zaidi en action.
I 9e image du transparent 44 :
Sujet :
Auteur :
Licence :
Intel 8008.
Konstantin Lanzet.
Creative Commons AttributionShare Alike 3.0 Unported.
I 10e image du transparent 44 :
Sujet :
Auteur :
Licence :
IBM PC.
Bundesarchiv, B 145 BildF077869-0042
/
Engelbert
Reineke / CC-BY-SA.
Creative Commons AttributionShare Alike 3.0 Germany.
I 12e image du transparent 44 :
Sujet :
Auteur :
Licence :
Olivier Marchetti
EPC RFID.
SMARTCODE Corporation
Creative Commons AttributionShare Alike 3.0 Unported
La très grande majorité des autres images
sont issues du domaine public, à quelques
exceptions près... Bien entendu, je ne suis
absolument pas l’auteur des
photographies présentées ici.
La partie historique est sans aucun doute
à mes yeux la plus intéressante. Les
relations entre sciences, société et
défense sont passionnantes et souvent
peu avouables. Aussi, j’invite
chaleureusement tout lecteur attaché à
l’honnêteté intellectuelle à se documenter
sur ces sujets afin de ne plus croire,
répéter, ou cautionner cette affligeante
antienne sur la prétendue neutralité de la
science.
Bref, les ordinateurs n’ont pas poussé sur
d’improbables ordinatiers, mais plutôt
émergé des sillages des bombardiers
d’Hiroshima et de Nagasaki.
CM1 – Introduction à l’architecture des ordinateurs
Année 2016-2017
48 / 48
Téléchargement