Académique Documents
Professionnel Documents
Culture Documents
Pascal FOUGERAY
Toutes les données, images, valeurs, phrases de ce document ne sont pas ma propriété dite “intellec-
tuelle”. Si vous voulez récupérer ce document et le façonner à votre goût, cela ne me dérange nullement. Je
n’ai presque rien inventé hormis certains exemples de travaux pratiques, j’ai beaucoup “pioché” et “trié”
dans différentes littératures les informations s’y trouvant.
Bonne lecture. . .
1
Table des matières
I Le Matériel ou Hardware 5
1 Historique 6
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Définition du terme informatique (Hachette) . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 L’historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 John VON NEUMANN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 La machine multicouche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.6 Les premiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.6.1 Le premier microprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7 L’évolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2 Représentation de l’information 18
2.1 Les systèmes de numération . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.1 Le système décimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.2 Le système binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.3 Le système octal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.4 Le système hexadécimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 La conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1 Base 10⇔Base 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2 Base 16⇔Base 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2.1 La table de conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Les nombres négatifs (signés) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.1 Le complément à 1 (restreint) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.2 Le complément à 2 (vrai) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4 Les opérations arithmétiques en système binaire . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.1 L’addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.2 La soustraction en complément à 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.3 La multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.4 La division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.5 Les nouveaux multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3 Le Codage 22
3.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2 La représentation des nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.1 Le code Gray ou code binaire réfléchi . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 Le code BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3 La représentation des caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.1 Le code EBCDIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.2 Le code ANSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.3 Les nouveaux codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.4 Les codes détecteurs d’erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.4.1 Le contrôle de la parité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2
3.4.2 Les codes autovérificateurs ou autocorrecteurs . . . . . . . . . . . . . . . . . . . 25
3.4.2.1 Les codes de blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.2.2 Les codes cycliques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5 Algèbre de BOOLE 29
5.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2 Portes logiques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2.1 Opération suiveuse : OUI (YES) . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2.2 Opération inversion : NON (NOT) . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2.3 Opération ET (AND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2.4 Opération somme : OU (OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2.5 Opération NON ET (NAND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2.6 Opération NON OU (NOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2.7 Opération OU EXCLUSIF (XOR) . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2.8 Opération NON OU EXCLUSIF (NEXOR) . . . . . . . . . . . . . . . . . . . . . 32
5.3 Quelques propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.4 Fonction logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.5 Tableau de KARNAUGH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.5.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.6 Equivalence entre circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7 La logique programmée 40
7.1 Comparaison des logiques câblée et programmée . . . . . . . . . . . . . . . . . . . . . . 40
7.1.1 La logique câblée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.1.2 La logique programmée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.2 Programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3
8 Le microprocesseur 45
8.1 La composition Interne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.2 Le jeu d’instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.3 Les registres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.4 Le Langage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
8.5 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
8.6 La composition Externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.7 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
9 Les Mémoires 50
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
9.2 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
9.3 Les Mémoires à Lecture seule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
9.4 Les mémoires à lecture-Ecriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
9.4.1 Les types de mémoires DRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
9.5 Caractéristiques principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
9.6 Le décodage d’adresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
10 La mémoire cache 54
10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
10.2 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
10.3 La hiérarchie mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
10.3.1 Première question . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
10.3.2 Deuxième question . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
10.3.3 Troisième question . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
10.3.4 Quatrième question . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
10.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
10.5 Post Scriptum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4
Table des figures
5
7.3 Le système minimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.4 Le système minimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.5 Le système minimum développé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7.6 Organigramme de programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6
B O njour, Ce cours a été écrit dans le but d’enseigner une matière qui évolue très vite même trop, mais
est fort nécessaire à la compréhension du fonctionnement de l’ordinateur. Il est évident que l’on ne
peut prétendre savoir programmer une machine ou demander à une machine d’exécuter une fonction, si on
ne sait pas ce dont elle est constituée et comment elle fonctionne.
Il est vrai que le contenu de ce cours est vaste, néanmoins il ne présente pas de difficultés majeures. La
plupart des mécanismes à comprendre sont simples et seront vu lors de travaux pratiques en salle machines.
Il existe de nombreux ouvrages sur l’architecture des ordinateurs, dont certains sont de vrais “presse
papier”1 . Pour ma part je vous conseille : Architecture et technologie des ordinateurs (3éme édition) de
Paolo Zanella et Yves Ligier aux éditions DUNOD (500 pages) que vous pouvez trouvé aux bibliothèques
du Campus 3 et de science de l’université se trouvant sur le Campus 2.
Mais bien sur, cela n’est que mon avis.
7
Première partie
Le Matériel ou Hardware
8
Chapitre 1
Historique
1.1 Introduction
L ’ INFORMATIQUE couvre aujourd’hui à peu près toutes les branches de l’activité humaine. Elle a pour
objet le traitement d’informations, codées dans les ordinateurs sous une forme binaire à l’aide de
bits (0 ou 1). L’ensemble des organes physiques qui servent à ce traitement est appelé matériel (en an-
glais hardware), par opposition au logiciel, ensemble des programmes, des langages et des systèmes d’ex-
ploitation (en anglais software). Un ordinateur communique avec l’extérieur par l’intermédiaire d’organes
d’entrée-sortie (lecteur de cartes, dérouleur de bandes, lecteur optique, clavier, écran, imprimante, mo-
dem, etc. . . ). Les résultats intermédiaires sont stockés dans des mémoires auxiliaires (bandes magnétiques,
disques magnétiques, disques optiques, disques). L’organe principal d’un ordinateur est l’unité centrale,
dans laquelle sont exécutées les instructions des programmes et s’effectuent les calculs, par opposition
aux périphériques (organes d’entrée-sortie). Les ordinateurs ont des utilisations très variées (traitement de
texte, gestion, calcul scientifique, commande d’installations en temps réel) qui nécessitent d’utiliser des
langages de programmation adaptés à l’application envisagée. Le principal avantage de l’ordinateur est
sa rapidité de calcul et d’accès aux informations. L’apparition des circuits intégrés à large échelle et des
mémoires à semi-conducteurs a permis la miniaturisation des ordinateurs, l’accroissement de leur capacité
de traitement et le développement de l’ordinateur individuel.
1.3 L’historique
L ’ IDÉE de faire exécuter des calculs par une machine date du XVII e siècle. En 1623, SCHICKARD
invente une machine à calculer capable d’effectuer des additions et des soustractions. Quelques années
plus tard Blaise PASCAL invente une machine quasiment similaire mais un peu plus perfectionnée. Elle
permettait d’additionner et même soustraire des nombres de 6 chiffres. Il en a conçu en tout plus de 5à
modèles dont les plus perfectionnées calculaient sur 8 chiffres. Pascal à réalisé sa première machine, la
Pascaline, alors qu’il n’avait que 19 ans.
9
F IG . 1.1 – Blaise PASCAL
De 1650 à 1670 LEIBNIZ conçut et construisit une machine capable d’effectuer les quatre opérations
de base. Il utilisa pour cela des principes mécaniques qui furent conservés jusqu’au XXème siècle.
10
F IG . 1.3 – LEIBNIZ
Il élabore en 1805 la machine qui porte son nom. C’était un métier à tisser qui produisait des tissus
suivant différentes techniques et avec des motifs variés. Jacquard créa les premières cartes perforées pour
utiliser plus facilement cette machine complexe. Les “cartes Jacquard” étaient accompagnées d’un appa-
reil à clavier qui permettait de changer les motifs.
Charles BABBAGE (1792-1871) Mathématicien et inventeur anglais.
En 1820, il conçoit une machine à calculer universelle programmable et programmée par un pro-
11
gramme, mécanique et numérique. Malheureusement, les principes mécaniques qu’elle nécessite se ré-
vèlent extrêmement difficile pour l’époque et la réalisation de cette machine ne peut aboutir. Il reprenait
ainsi l’idée que Joseph-Marie Jacquard avait utilisée pour son métier à tisser.
F IG . 1.8 – HOLLERITH
utilise les ressources de l’électricité dans une machine utilisant les principes de la mécanographie,
destinés aux traitements statistiques des résultats. Son invention a permis de réaliser le premier recensement
de la population aux états-Unis, sa carte perforée comprenait 12 rangées de 20 positions à perforer dans
lesquelles figuraient des données tels les nom et prénoms,l’age, la profession, la situation de famille, etc. . .
12
F IG . 1.9 – Le système d’Hollerith
Hermann HOLLERITH est aussi le créateur de la société TBM (Tabulating Machines Company) qui
devint la société IBM (International Business Machines Corporation) conceptrice du PC (Personnal Com-
puter).
Alan Mathieson TURING (juin 1912-juin 1954 ) mathématicien anglais, maître-assistant à Cambridge
dès 23 ans.
13
F IG . 1.12 – Alan TURING
Il a conçu en 1936 une machine logique capable de résoudre tous les problèmes que l’on peut formuler
en termes d’algorithmes. Pendant la guerre, il participe à la réalisation de la Bombe, ainsi qu’à la première
machine électromécanique de décryptage des messages codés avec l’Enigma Allemande.
F IG . 1.13 – L’Enigma
Dans les années qui suivent la guerre, VON NEUMANN fait la synthèse des idées de ses prédécesseurs
et reprenant la structure de la machine de BABBAGE.
M ATHÉMATICIEN américain d’origine allemande (1903-1957). Dans le cadre du projet Manhattan, puis
de la bombe H, il commence, en 1944, la construction de la machine à calculer automatique EDVAC
(Electronic Discrete Variable Automatic Computer) et ne la termine qu’en 1952.
14
F IG . 1.14 – John VON NEUMANN
Il désirait créer une méthode souple pour programmer la mémoire, de façon à ce que la machine puisse
prendre seule des décisions logiques (principe d’autonomie). Les concepts de mémoire tampon, vive et
morte ont été définis par lui (voir mémoire morte, mémoire tampon et mémoire vive).
Les règles de base qu’il a proposées pour l’architecture d’un ordinateur restent encore valables pour la
grande majorité de nos machines modernes :
1. Les ordinateurs sont structurés en unités séparées, fonctionnellement différentes : l’unité de com-
mande, l’unité de calcul, la mémoire interne et les unités périphériques.
2. La mémoire interne est divisée en cellules auxquelles on peut attribuer des adresses (la suite des
nombres naturels).
3. Chaque cellule contient une unité d’information et une seule.
4. Le système binaire est utilisé pour représenter les commandes et les données.
5. Les commandes et les données sont stockées dans la même mémoire interne.
6. Les cellules dans lesquelles sont stockées les commandes successives ont des adresses qui se suivent.
7. Les commandes sont exécutées en séquence.
8. La séquence de traitement peut présenter des interruptions conditionnelles ou inconditionnelles.
La machine de VON NEUMANN : Elle est constituée de deux ensembles.
15
3. La mémoire du système peut contenir les données mais aussi le programme. C’est une machine à
programme enregistré.
4. La séquence d’un programme peut être interrompue afin d’exécuter une autre séquence. En fonction
d’un test sur le résultat d’une opération, il est donc possible de quitter une séquence d’instructions
pour en exécuter une autre (rupture de séquence). Cette condition est nécessaire, si l’on veut réaliser
automatiquement un algorithme.
L’exécution d’un programme est définie par deux cycles (ou phases) principaux.
– Le cycle de recherche d’une instruction
– Le cycle d’exécution.
John VON NEUMANN travailla également sur le développement d’une machine appelée ENIAC :
(Maintenant l’ordinateur tient dans la poche, à l’époque c’était l’homme qui était transportable dans
l’ordinateur).
F IG . 1.17 – L’ENIAC
16
F IG . 1.18 – L’UNIVAC
L ’ ARCHITECTURE d’un ordinateur peut être expliquée par un modèle en couches. Plus la couche est
“basse” plus elle est proche de l’électronique et biensûr, plus elle est haute, plus elle se raproche du
langage humain et de sa façon de penser donc “compréhensible” par l’homme.
1. Niveau 0 : couche physique. C’est la couche étudiée dans ce cours. Ici, les circuits électroniques
exécutent les programmes en langage machine du niveau 1.
2. Niveau 1 : Couche microprogrammée. Elle interprète en instructions directement exécutables des
instructions plus complexes du niveau 2.
3. Niveau 2 : Couche machine traditionnelle. Programme en langage machine, assez hermétique pour
l’homme, puisqu’il n’est composé que d’une suite de 0 et de 1.
4. Niveau 3 : Couche système d’exploitation. Elle simplifie par des petits programmes déjà écrits, la
gestion, entre autres, des entrées sorties. Elle est très utile aux programmeurs "systèmes".
5. Niveau 4 : Couche langage d’assemblage. Ce langage est traduit (assemblé) en langage machine. Il
est propre au microprocesseur. Nous étudierons ce langage aux second et troisième trimestre, dans
le but de découvrir un peu plus en profondeur le fonctionnement interne du microprocesseur et de
l’ordinateur en général.
6. Niveau 5 : Couche langage d’application. Ce langage (C, Pascal, COBOL...) est traduit (compilé)
en langages assemblage puis machine. Nous verrons aux second et troisième trimestre que le langage
C est proche du langage d’assemblage et est trés utilisé dans les systèmes d’exploitation.
C ’ EST un circuit intégré à une puce, qui dispose des fonctions d’un processeur complet. C’est la société
R au XXe et plus précisément le 15 novembre 1971, lança le premier microprocesseur. Ted Hoff,
Intel
le créateur, avait réussi à intégrer le principe du calculateur. La puce de Hoff était en quelque sorte un
“processeur universel”. Le premier microprocesseur, le 4004, contenait 2 300 transistors il étaait cadencé
à 740 kHz, il fallait 8 cycles d’horloge pour exécuter une instructions soit 10,8 ms. Il existe actuellement
une très grande “variété” de microprocesseurs. Leurs caractéristiques sont nombreuses, mais la principale
est la puissance de calculs.1
1 Nous verrons au chapitre sur le microprocesseur, la définition de cette “bète” plus en détails.
17
F IG . 1.19 – Le i4004, le premier µP de chez Intel
R
L’article qui suit est l’annonce de ce premier microprocesseur dans une revue spécilaisée de l’époque.
NEW PRODUCT
FEATURE PRODUCT
COMPUTER ON A CHIP
COMPUTER/JANUARY/FEBRUARY 1972/71
Le but de ce cours est de décrire le fonctionnement des microprocesseurs du niveau 0 au niveau 4. Les
18
opérations rudimentaires telles que l’addition, le comptage, la mise en mémoire sont réalisées à l’aide de
circuits élémentaires. Le comportement de ces derniers est décrit à l’aide de l’algèbre binaire.
On peut chanter le cri du coq, car c’est bien un français qui à inventé le premier micro-ordinateur
En mai 1973 : Le premier micro-ordinateur vendu tout assemblé. Il s’agit du Micral conçu par François
Gernelle de la société R2E. Ce micro était basé sur le microprocesseur Intel 8008.
En juin 1973 : Le mot microcomputer (micro-ordinateur) apparait pour la première fois dans la presse
Américaine dans un article au sujet du Micral.
et bien plus tard, le premier PC, en aout 1981 : IBM lance son 5150 Personal Computer équipé de :
Un microprocesseur Intel 8088 à 4.77 MHz,
– 64 Ko de Ram,
– de 40 Ko de Rom,
– d’un lecteur de disquettes 5"25,
– du système d’exploitation PC-DOS 1.0 pour 3000 $.
Une version haut de gamme avec carte graphique couleur CGA (640x200 en 16 couleurs) coutait 6000 $.
F IG . 1.21 – Le premier PC
1.7 L’évolution
19
F IG . 1.22 – Les racines de l’ordinateur
20
Chapitre 2
Représentation de l’information
L A numération est la façon d’énoncer ou d’écrire des nombres, o n peut citer les numérations
– arabe : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.
– romaine : I, II, III, IV, V, VI, VII, VIII, IX, L, C, M.
C’est aussi un système qui organise la suite des nombres en séries hiérarchisées. Il existe une multitude
de systèmes de numération (appelé aussi bases), en fait, autant qu’il y a de nombres. Nous allons nous
intéresser à quatre d’entre eux, ceux utilisés par les ordinateurs. 1
On note en indice la base du système de numération dans lequel le nombre est représenté. Pour le
nombre décimal 1995, chaque chiffre à ce qu’on appel un rang.
Le chiffre 1 a le rang des milliers, on dit que son "poids " est de mille. Pour le nombre 1995, le chiffre
1 est appelé le chiffre de poids fort, et le 5 le chiffre de poids faible.
Exemple : 1011(2) = 1 ∗ 23 + 0 ∗ 22 + 1 ∗ 21 + 1 ∗ 20
1 Certaines bases vous sont déjà familières, telles la base dix et la base douze pour les œufs à la ferme. Il existe aussi la base 7 pour
les jours et les notes sur une partition de musique, la base 20 pour le comptage sur les doigts des mains et des pieds des Mayas, la
base 24 pour les heures, la base 60 pour les degrés, minutes et secondes venant des savants de Babylone. . .
21
En base 2, on ne parle plus de chiffres mais de bits (en anglais Binary Digit), et on dit bit de poids le
plus fort (MSB Most Significant Bit) et bit de poids le plus faible (LSB Less Significant Bit) Le comptage
en binaire ne diffère pas, sur le principe, du comptage en décimal. Lorsque la capacité numérique d’une
position est dépassée, on obtient une retenue se reportant sur la position suivante ; ceci arrive lorsque l’on
dépasse le chiffre 1 dans une position du système binaire et le chiffre 9 dans une position du système
décimal.
2.2 La conversion
C E laconsiste à passer d’une base à une autre. C’est ce que font le compilateur et l’interpréteur de pro-
grammes lorsqu’ils traduisent un programme source en programme exécutable. Nous allons voir dans
cette partie comment on procède pour passer d’une base à une autre, donc faire une conversion. Les mé-
thodes utilisées fonctionnent pour toutes les bases, nous ne vyaons que les bases utilisées en informatique.
22
2.2.2.1 La table de conversion
Base 10 Base 2 Base 8 Base 16 Base 10 Base 2 Base 8 Base 16
0 0 0 0 8 1000 10 8
1 1 1 1 9 1001 11 9
2 10 2 2 10 1010 12 A
3 11 3 3 11 1011 13 B
4 100 4 4 12 1100 14 C
5 101 5 5 13 1101 15 D
6 110 6 6 14 1110 16 E
7 111 7 7 15 1111 17 F
D A nsune case mémoire, on ne peut entrer que 1 ou 0, c’est la seule chose que comprend un ordinateur.
Pour représenter les nombres négatifs, il a fallu trouver une solution. La solution la plus immédiate
consiste à réserver un digit binaire (bit) pour le signe, les autres bits représentant la valeur absolue du
nombre. La convention qui prévaut consiste à mettre le MSB à 0 pour représenter un nombre positif et à 1
pour un nombre négatif. On parle de données ou nombres signés quand on utilise cette convention.
Exemple : sur 8 bits en nombres non signés on va de 0 à 255(10) alors qu’en nombres signés on va de
– -128 ⇐⇒ 1000 000 à
– +127 ⇐⇒ 1111 1111.
Nous allons voir comment obtenir ces conversions et leurs explications.
C O mme on le fait depuis notre plus jeune age en base 10, il est possible de réaliser des opérations arith-
métique en utilisant le système binaire. A l’intérieur de l’ordinateur, le microprocesseur ne procède
pas autrement car vue sa constitution, il ne peut “comprendre” que les informations binaires.
2.4.1 L’addition
Il suffit de savoir additionner et de se rappeler que 1+1, ne fait pas 2 mais 10 (2) !
23
2.4.2 La soustraction en complément à 2
Pour faire des soustractions en binaire, il faut convertir le nombre à soustraire en complément à 2 et
faire une addition.
2.4.3 La multiplication
Aucune difficulté, ce ne sont que des additions. Nous étudierons cela en TD.
2.4.4 La division
Comme pour la multiplication, il n’y a aucune difficulté, ce ne sont que des soustractions. Nous étudie-
rons aussi cela en TD.
24
Chapitre 3
Le Codage
3.1 Définitions
La définition du dictionnaire donne pour les mots
– code : Système de conventionnel de signes ou signaux, de règles et de lois, permettant la transfor-
mation d’un message en vue d’une utilisation particulière.
Exemples : Code de la route, Code génétique, Code postal, Code secret. . .
– codage : C’est le fait de coder.
– coder : C’est transcrire à l’aide d’un code.
En informatique on utilise une multitude de codes qui permettent, comme le donne la définition du diction-
naire, de transformer différentes représentations de l’information.
Que veulent dire les 3 lignes suivantes ?1
υ$πξι νςτ µθζετ υπλη
ειπτ ςιρφυεϑνξτ τ ς
κ$ειξπυψψψ
0 1 2 3 4 5 6 7 8 9 A B C D E F
2 0
X X X X X X X X
21 X X X X X X X X
22 X X X X X X X X
23 X X X X X X X X
On est donc conduit à utiliser un code différent où seul un bit change quand on passe d’une position à
une autre, c’est le code Gray ou code binaire réfléchi. Ce code à la particularité de n’avoir qu’un bit qui
1 S’il y a un grec parmi vous, je lui souhaite une bonne traduction, car ce texte je l’ai tapé au hazard. Je ne tiens pas à perdre mon
latin. . .
25
change à la fois. Il est utilisé dans les roues codeuses.
0 1 2 3 4 5 6 7 8 9 A B C D E F
20 X X X X X X X X
21 X X X X X X X X
22 X X X X X X X X
23 X X X X X X X X
Table ASCII
Le jeu de caracteres ASCII en octal, decimal, et hexadecimal.
26
013 11 0B VT ’\v’ 113 75 4B K
014 12 0C FF ’\f’ 114 76 4C L
015 13 0D CR ’\r’ 115 77 4D M
016 14 0E SO 116 78 4E N
017 15 0F SI 117 79 4F O
020 16 10 DLE 120 80 50 P
021 17 11 DC1 121 81 51 Q
022 18 12 DC2 122 82 52 R
023 19 13 DC3 123 83 53 S
024 20 14 DC4 124 84 54 T
025 21 15 NAK 125 85 55 U
026 22 16 SYN 126 86 56 V
027 23 17 ETB 127 87 57 W
030 24 18 CAN 130 88 58 X
031 25 19 EM 131 89 59 Y
032 26 1A SUB 132 90 5A Z
033 27 1B ESC 133 91 5B [
034 28 1C FS 134 92 5C \ ’\\’
035 29 1D GS 135 93 5D ]
036 30 1E RS 136 94 5E ^
037 31 1F US 137 95 5F _
040 32 20 SPACE 140 96 60 ’
041 33 21 ! 141 97 61 a
042 34 22 " 142 98 62 b
043 35 23 # 143 99 63 c
044 36 24 $ 144 100 64 d
045 37 25 % 145 101 65 e
046 38 26 & 146 102 66 f
047 39 27 ’ 147 103 67 g
050 40 28 ( 150 104 68 h
051 41 29 ) 151 105 69 i
052 42 2A * 152 106 6A j
053 43 2B + 153 107 6B k
054 44 2C , 154 108 6C l
055 45 2D - 155 109 6D m
056 46 2E . 156 110 6E n
057 47 2F / 157 111 6F o
060 48 30 0 160 112 70 p
061 49 31 1 161 113 71 q
062 50 32 2 162 114 72 r
063 51 33 3 163 115 73 s
064 52 34 4 164 116 74 t
065 53 35 5 165 117 75 u
066 54 36 6 166 118 76 v
067 55 37 7 167 119 77 w
070 56 38 8 170 120 78 x
071 57 39 9 171 121 79 y
072 58 3A : 172 122 7A z
073 59 3B ; 173 123 7B {
074 60 3C < 174 124 7C |
075 61 3D = 175 125 7D }
076 62 3E > 176 126 7E ~
077 63 3F ? 177 127 7F DEL
27
Le standard ASCII a été publié par l’USASI (United States of America Standards Institute) en 1968.
ASCII est l’acronyme de American Standard Code for Information Interchange.
Il s’agit d’un code sur 7 bits. De nombreux codes sur 8 bits (tels que l’ISO 8859-1n le jeu de caractères
par défaut de Linux) contiennent l’ASCII dans leur première moitié.
L’équivalent international de l’ASCII est connu sous le nom de ISO 646.
Remarque : La table des codes ASCII ci-dessus, affiche les caractères imprimables et non les codes de
contrôle. En effet les caractères dont les codes sont 10, 13 et 27 en décimal, représentent respectivement
Line Feed (Aller à la ligne), Carriage Return (Retour Chariot) et Scape (Escape), le tableau ci-dessous en
donne quelques exemples.
Code 00 01 02 03 04 05 06 07 08 09
Caractère NULL SOH STX ETX EOT ENQ ACK BELL BS HT
Code 10 11 12 13 14 15 16 17 18 19
Caractère LF VT NP CR SO SI DLE DC1 DC2 DC3
Code 20 21 22 23 24 25 26 27 28 29
Caractère DC4 NAK SYN ETB CAN EM SUB ESC FS GS
A l’intérieur de l’ordinateur les informations sont constamment “véhiculées”. Il est donc nécessaire de
s’assurer de la transmission convenable de ces informations. Pour cela on utilise divers moyens allant
du simple contrôle de parité jusqu’à l’élaboration de codes sophistiqués.
P A G LRC
VRC 0 0 0 0 Parité croisée
28
1 1 1 1
0 0 0 0
1 0 0 1
0 0 0 0
0 0 1 1
0 0 1 1
0 1 1 0
29
Chapitre 4
4.1 Introduction
L E but de ce cours est de vous montrer le codage, au sein de l’ordinateur, de n’importe quel nombre,
entier ou non et signé : 3,144592 2,718 -1E218 etc.. Comme vous l’avez déjà vu, un microprocesseur
n’est pas conçu pour travailler en base 10 mais en base 2.1
4.1.1 Rappel
Pour passer d’un nombre entier de base 10 en base 2, il suffit de faire des divisions successives par 2
jusqu’à obtenir un reste égal à 1 ou 0.
4.2 Conversion
P Par analogie, on en déduit que pour convertir une fraction décimale en base 2, il suffit de réaliser des
multiplications successives par 2, jusqu’à obtenir une partie fractionnaire nulle.
Exemple : soit à convertir 32,125 en base 2 : on sait que 32 est équivalent à 100000 et
– 0,125 * 2 = 0,25 partie entière = 0 et partie fractionnaire = 0,25
– 0,25 * 2 = 0,5 partie entière = 0 et partie fractionnaire = 0,5
– 0,5 * 2 = 1 partie entière = 1 et partie fractionnaire = 0
Ce qui donne :
32,125 = 32 + 0,125 100000 + 0, 001 = 100000,001 en base 2
4.3 Normalisation
L Eproblème qui se pose maintenant est le stockage en mémoire ou dans un registre d’une quantité écrite
en base 2. Dans un premier temps, tout nombre sera traduit sous forme d’un produit entre une fraction
(une fraction est un nombre avec une partie entière nulle, c’est à dire inférieur à 1 en valeur absolue ou
encore commençant par un point décimal) et une puissance de 2.
1 L’apparition de composants permettant les calculs en nombre flottants a permis d’accroître énormément la puissance de cal-
culs de ces derniers. Pour anecdote, en 1990 quand on achetait un micro-ordinateur de type PC, il fallait rajouter le co-processeur
mathématique qui à lui seul coutaît aussi cher que l’unité centrale.
30
Pour mémoriser un nombre, il suffit donc de coder sa puissance de 2 et sa fraction. L’intérêt de cette
méthode est que l’on sait toujours ou se trouve le point décimal et qu’il n’y a plus de partie entière, on
obtient donc un mode de représentation figé.
Il est clair qu’il faut aussi un bit pour mémoriser le signe (0 = + et 1 = - ), un bit pour chaque chiffre
de la fraction en base 2 et quelques chiffres pour représenter la puissance (positive ou négative) traduite en
base 2.
Remarque : si la fraction est trop grande, il n’est pas question de prendre en compte tous les chiffres.
E N En clair, tout nombre sera désormais écrit sous la forme d’un produit entre une puissance de 2 et une
fraction dont les chiffres sont les chiffres significatifs du nombre. La seule exception étant le 0 qui n’a
pas vraiment de chiffres significatifs.
Tout nombre non nul peut être mis sous ce format, appelé *virgule flottante normalisée*. Nous le
représenterons par SM 2e où
– S est le signe
– M la mantisse
– e l’exposant.
4.4.1 La réalité
Pour stocker un nombre décimal dans une mémoire binaire, il suffit de le convertir en binaire, puis de
mettre le résultat au format virgule flottante normalisée : SM ∗ 22 avec 0, 12 6 |M | < 12 ⇔ 0, 510 6
|M | < 110 .
Remarque : (0, 510 6 |M | ; M permet d’éliminer les 0 à droite de la virgule de façon à obtenir plus de
chiffres significatifs donc une meilleure précision).
Un nombre p de bits sera utilisé pour la fraction m. Le premier bit de celle-ci étant nécessairement 1.
Un nombre p’ de bits sera utilisé pour l’exposant e. Pour coder les exposants négatifs, il a fallu imposer
un codage (autre que le complément à 2). Une constante, k, est ajoutée à l’exposant de telle manière que
l’ensemble devienne positif. K+e s’appelle la caractéristique du nombre.
Nous allons voir les deux formats les plus utilisés dans un micro-ordinateur. Tous les deux comptent 32
bits avec p = 23 et p’ = 8
31
Chapitre 5
Algèbre de BOOLE
5.1 Définition
C ’est une algèbre binaire mise en œuvre par le mathématicien George BOOLE (1815-1864) pour étu-
dier la logique.
Les variables, dites booléennes, ne peuvent prendre que deux valeurs : VRAI ou FAUX ou bien encore
1 ou 0. On peut alors définir des opérateurs sur ces variables et consigner le résultat dans une Table de
Vérité. Ces opérateurs peuvent être réalisés par des circuits électroniques : ils sont alors appelés Portes
Logiques.
E Lles sont au nombre de 6. Elles permettent de réaliser toutes les fonctions logiques qui sont cablées à
l’intérieur d’un microprocesseur (Voir le chapitre intitulé : Le microprocesseur).
A S S=X
0 1
1 0
32
F IG . 5.2 – Porte OUI
A S S = X = ¬X
0 1
1 0
Remarque : Le petit trait est utilisé dans tous les schémas pour représenter la fonction négation : NON.
A B S S = A.B = A ∩ B = A ∧ B
0 0 0
0 1 0
1 0 0
1 1 1
F IG . 5.4 – Porte ET
33
F IG . 5.5 – Porte OU
A B S S = A.B = A ∩ B = A ∧ B
0 0 0
0 1 1
1 0 1
1 1 1
porte_non_ou.eps
34
F IG . 5.8 – Porte OU Exclusif
O On remarquera que la plupart des règles de l’algèbre classique s’appliquent ou que d’autres se com-
prennent d’une façon assez intuitive. Voici les principales lois de l’algèbre de BOOLE sur les opéra-
teurs ET et OU.
P O urrésoudre des problèmes de logique, on aura souvent besoin de plusieurs variables et on notera le
résultat : f(A,B,C...) exemple : fonction majorité où f(A,B,C)=1 si on a une majorité de 1, 0 sinon. On
35
peut alors décrire la fonction à l’aide des opérateurs de base.
S I une table de vérité contient trop de lignes, il est possible d’utiliser une autre représentation et la trans-
former en un tableau. On parle de tableau de Karnaugh, mais on devrait plutôt dire une boule de
Karnaugh. En effet, comme on peut déplacer les lignes et colonnes extérieures d’un côté vers l’autre, il est
facile d’imaginer que cela devient une boule.
5.5.1 Présentation
Considérons une fonction f de n variables. La table de vérité de f possède alors 2 n cases (soit 2n com-
binaisons). Les valeurs que peut prendre f sont regroupées en un tableau de 2 n cases en utilisant, pour le
codage du tableau, le code GRAY (voir le chapitre intitulé : Le Codage). Ce codage du tableau permet de
dégager certaines propriétés d’adjacences. Lorsque deux cases sont côte à côte, une seule variable change
de valeur, les autres sont invariantes. On peut trouver aussi des groupements plus importants possédants
de moins en moins de variables invariantes (cf. TD). Ces regroupements conduisent à une réduction de la
table, donc à une simplification de l’expression de f.
En regroupant par 2, 4 ou 8... cases, on élimine 1, 2 ou 3... variables.
BC \ A 00 01 11 10
0 f (A, B, C) f (A, B, C) f (A, B, C) f (A, B, C)
1 f (A, B, C) f (A, B, C) f (A, B, C) f (A, B, C)
Exemple : pour la fonction majoritaire que nous avons vu précédement.
Il est posible de faire 3 regroupements :
BC \ A 00 01 11 10
– 1 : C est variant. 0 0 0 1 0
– 2 : A est variant. 1 0 1 1 1
– 3 : B est variant.
E N remarquant que X.X = X et que X + X = X , alors les deux opérateurs NAND et NOR peuvent
servir d’inverseur.
36
F IG . 5.10 – Equivalence NAND, NOR, INVERSEUR
On obtient des résultats similaires en utilisant des opérateurs Non OU (cf. TD). On dit que les opérateurs
Non ET et Non OU sont "complets" puisqu’on peut avec un seul de ces opérateurs, utilisé autant de fois
que nécessaire, réaliser n’importe quelle fonction booléenne. Ces deux portes étant faciles à fabriquer, elles
sont à la base des circuits électroniques programmables tels les PALs (Pragrammable Logic Array) et les
GALs que nous ne verrons pas dans ce cours. Mais que vous arborderez surement plus tard dans un cours
intitulé Le langage VHDL.
Les deux figures ci-dessous montrent la réalisation des portes OU Exclusif et NON OU Exclusif à l’aide
de portes NON OU et NON ET.
37
Chapitre 6
6.1 Introduction
L A technologie des circuits intégrés evolue à une telle rapidité, que le temps d’écrire ces lignes, mon
document est déjà obsolète. . . L’intérêt de ce chapitre est de vous décrire la fabrication des circuits
intégrés et voir leur évolution depuis 1960.
6.2 Historique
L E transistor est un composant électronique dont le principe à été découvert en 1947, qui remplaçait
avantageusement les lampes (tubes à vides), encombrantes et peu fiables, que l’on utilisait jusqu’alors.
Les premiers transistors formaient des composants séparés. Les années 1960 voient l’apparition des circuits
intégrés. Le circuit intégré (CI) est un circuit électronique complet, concentré sur une pastille de matériau
semi-conducteur, généralement du silicium ou de l’arséniure de gallium, et parfois appelé "puce" ou “chip”
e anglais, soit du fait de sa taille (quelques millimètres carrés), soit du fait de sa couleur.
Le nombre de composants placés sur une puce n’a cessé de croître depuis l’apparition des premiers
circuits intégrés. En 1965, on pouvait “loger” environ trente composants sur une puce de 3 millimètres
carrés ; quinze ans plus tard, on en décompte plus de 100 000, actuellement plus de 30 000 000. L’échelle
d’intégration, c’est à dire la largeur des pistes de silicium que l’on est capable de réaliser, est actuellement
de l’ordre de 0,02 micron. A titre de comparaison, le diamètre d’un cheveu est d’environ 30 micron.
6.3 Conception
P OUR réaliser un circuit intégré, le circuit électronique doit d’abord être conçu au moyen d’ordinateurs
spécialisés dans la Conception Assistée par Ordinateur (CAO) et dans le Dessin Assisté par Ordi-
nateur ; puis dessiné environ 500 fois plus gros qu’il ne sera réellement. Ce schéma, appelé masque, est
ensuite utilisé pour guider, toujours par ordinateur, un faisceau lumineux qui impressionne une plaque pho-
tographique appelée réticule, qui reproduit à environ 20 fois, le schéma du circuit. Le réticule est à nouveau
contrôlé et corrigé avant d’être recopié, en le réduisant à la taille définitive du circuit par un procédé pho-
tographique (procédé dit par photogravure), sur une fine tranche découpée dans un barreau de silicium très
pur d’environ 50 cm de long pour un diamètre de 7,5 cm. Cette tranche de 0,1 mm d’épaisseur environ
porte le nom de wafer (littéralement “gaufrette”) et peut contenir jusqu’à 500 circuits de 5 mm de coté
environ.
Il existe également une technique, dite lithographie par faisceaux d’électrons, qui permet d’améliorer
la résolution en “attaquant” directement le wafer grâce à un faisceau d’électrons, ce qui permet d’obtenir
une résolution environ 20 fois supérieure à celle obtenue par la photogravure. Le wafer est ensuite porté à
une température d’environ 1 000 degrés Celsius dans un four à diffusion, puis exposé à des éléments chi-
miques (bore, phosphore...), appelés dopants, qui modifient les propriétés de semi-conducteur du silicium.
38
Ces dopants pénétrant le silicium à des endroits précis définis par le procédé photographique précédent,
déterminent ainsi transistors, diodes, bascules, etc. Il existe également une autre technique de dopage des
circuits qui est l’implantation ionique où l’introduction des impuretés se fait à température ambiante, les
atomes dopants étant ionisés et implantés aux endroits voulus grâce à un bombardement d’ions. Tous les
circuits ainsi conçus sont testés avant que les wafers ne soient découpés en puces individuelles. Chaque
puce est alors sertie dans un boîtier en plastique et reliée à des broches de connexion par de minuscules fils
d’or. Cette technique en voie de régression est remplacée par celle du film, permettant un gain de temps de
l’ordre de 10. Dans la connexion par film, la puce (ou Chip) est automatiquement connectée en une seule
fois aux pattes intérieures d’une structure, dite araignée, portée par un film. Le composant est alors recou-
vert d’une couche de plastique noir (opération dite d’empaquetage ou packaging). Ce boîtier est destiné à
éviter que le circuit intégré ne soit soumis aux agressions de l’environnement, mais aussi à l’évacuation de
la chaleur dissipée par le composant lors de son fonctionnement ainsi qu’à une meilleure manipulation.
L E circuit intégré est un composant électronique qui réunit sous un même boîtier tous les composants
d’un même circuit électronique connectés entre eux. Par opposition : Composants discrets (Transis-
tors ; diodes ; résistances etc).
Les circuits intégrés sont classés en catégories suivantes :
– SSI : Small Scale Intégration ayant moins de 12 portes élémentaires
– MSI : Medium Scale Intégration ayant de 12 à 100 portes élémentaires
– LSI : Large Scale Intégration ayant de 100 à 1000 portes élémentaires
39
– VLSI : Very Large Scale Intégration ayant plus de 1000 portes élémentaires.
A titre d’information, le microprocesseur remplaçant du Pentium 4 devrait comporter plus de 50 millions
de transistors, soit plus de 2 000 000 portes élémentaires.
40
6.5 Technologies et structures des circuits intégrés logiques
O N appelle famille logique, une catégorie de circuits logiques fabriqués au moyen de la même technique
de construction. Il existe deux grandes familles logiques :
BIPOLAIRES, qui utilisent les transistors bipolaires NPN et PNP et partagée en quatre sous familles
– TTL : Transistor Transistor Logic Les transistors travaillent en bloqués saturés.
– ECL : Emitter Coupled Logic
– MECL Multi-Emitter Coupled Logic
– CML : Current Mode Logic dans ces trois sous familles les transistors travaillent en bloqués non
saturés.
UNIPOLAIRES, qui utilisent les transistors unipolaires : TEC ; MOS ( PMOS ; NMOS ; VMOS ) MOS :
Metal oxyde Semi-conductor ( grille isolée par un oxyde métallique ).
Si toutes ces technologies cohabitent, c’est que la technologie idéale n’existe pas et que chacune d’elles
a ses raisons d’exister. Le choix d’une technologie se fera en général à partir des critères suivants
– Prix.
– Immunité aux Bruits.
– Consommation Electrique.
– Temps de Réponse.
– Facteur de mérite.
41
6.6.3 CONSOMMATION ELECTRIQUE
La consommation électrique est mesurée en mettant toutes les entrées réunies portées à un niveau
logique haut ou bas, suivant l’état dans lequel la sortie est désirée, celle-ci ne débitant pas de courant.
La puissance dissipée par un circuit intégré est spécifiée par le courant Icc, qu’il tire de l’alimentation de
tension Vcc. Le courant qu’ils drainent de l’alimentation varie en fonction des états logiques du circuit.
42
Chapitre 7
La logique programmée
43
F IG . 7.1 – Principe d’un système automatique
Structure d’un système à microprocesseur, mais il faut savoir qu’elle peut évoluer en fonction du cahier
des charges.
Pour gérer ce processus, le système à microprocesseur doit avoir les éléments suivants :
La liste des instructions à effectuer, elles sont mises en mémoire, un élément capable d’effectuer ces
instructions, le microprocesseur, des circuits spécialisés pour les Entrées/Sorties, les interfaces, il faut
aussi des liaisons électriques entre ces trois éléments, les bus et un élément cadençant le tout, l’horloge
(quartz)1 .
1 Le quartz est à l’origine une pierre appartenant à la famille des cristaux qi a la propriété de vibrer à une certaine fréquence en
fonction de sa taille et de sa géométrie, lorsque l’on soumet à une différence de potentiels. Au début des ordinateurs, on utilisait cette
pierre, mais elle a vite été remplacée par des quartz synthétiques. La fréquence des microprocesseurs ayant beaucoup augmenté, un
44
D’où le synoptique d’un système à microprocesseur
Les étapes 1 et 4 sont effectuées sous le contrôle d’un organe interne du microprocesseur appelée :
Unité de commande.
Les étapes 2 et 3 sont effectuées sous le contrôle d’un organe interne du microprocesseur appelée :
Unité arithmétique et Logique (U.A.L)2 .
Donc entre les mémoires et le microprocesseur, il y a circulation de deux types d’informations :
– Les instructions.
– Les données.
Conséquence de ces deux types d’informations, il faut deux types de mémoires. 3
– Les mémoires de données dans lesquelles on va chercher les données et stocker les résultats, ce sont
les mémoires à lecture et écriture. Elles sont appelées R.A.M. Random Acces Memory : Mémoire
à accès aléatoire.
quartz seul ne suffisait plus. On lui a ajouté une bouble à verrouillage de phase BVP.
2 Nous avons eu l’occasion de l’étudier dans le cours intitulé : Logique Combinatoire
3 Les termes qui vont être employés ci-dessous sont obsolètes, mais le principe existe toujours. La mémoire ROM contient le BIOS
de l’Ordinateur et est par définition à lecture seule. Alors que la mémoire RAM c’est les barettes que vous installés sur la carte mère
et qui reçoit des données temporaires.
45
– Les mémoires de programmes dans lesquelles on va chercher les instructions à exécuter, ce sont
les mémoires à lecture seule. Elles sont appelées R.O.M. Read Only Memory : Mémoire à lecture
seule.
De plus il faut que le système à µP puisse dialoguer avec le “monde” extérieur. C’est le rôle des interfaces,
il en existe deux types :
– Les interfaces parallèles : P.I.A (interface adaptateur pour périphérique parallèle).
– Les interfaces séries : A.C.I.A (interface adaptateur pour périphérique asynchrone). 4
Chaque élément, est commandé par le microprocesseur, est adressé par le microprocesseur, envoie ou reçoit
des informations, des données ou des résultats du ou au microprocesseur, il existe donc trois types de bus.
– Bus d’adresses : ensemble de lignes unidirectionnelles qui véhiculent le code d’adresse du micro-
processeur vers les mémoires et les interfaces.
– Bus de données : ensemble de lignes bidirectionnelles qui véhiculent les données entre le micro-
processeur et les mémoires ou les interfaces.
– Bus de commandes : ensemble de lignes bidirectionnelles utilisées pour synchroniser les actions
du microprocesseur et “isoler” les différents éléments du système à microprocesseur.
D’où le système minimum
7.2 Programmation
L E microprocesseur doit recevoir des instructions pour pouvoir “travailler”. La suite ordonnée de ces
instructions à la résolution d’un problème s’appelle le programme. Le répertoire d’instructions d’un
microprocesseur définit les opérations individuelles que celui-ci peut effectuer et se nomme le jeu d’ins-
tructions Ces séquences sont dans un premier temps traduites par un organigramme.
Organigramme : c’est la représentation par un schéma séquentiel d’un processus.
Symboles :
4 Ces termes PIA et ACIA sont surtout utilisés chez le fabricant de microprocesseur Motorola
.
R
46
*Traduction de l’organigramme en un programme* : un organigramme est traduit en un programme
écrit dans un langage appelé langage de programmation. L’objectif est d’éliminer les erreurs de syntaxe,
en ne laissant au programmeur que la responsabilité des erreurs spécifiques à l’application. Le travail du
programmeur est d’autant plus simple que le langage est facile à lire.
– Langage d’assemblage : il est plus proche du langage humain, chaque instruction est remplacée
par un code mnémonique (aide mémoire). Un programme de conversion, l’assembleur traduit le
programme obtenu en un programme directement compréhensible par le microprocesseur (langage
machine). Chaque µP possède ses propres codes instruction.
– Langage évolué : il est indépendant du type de microprocesseur utilisé et est très proche du langage
humain. Des programmes de traduction (compilateurs et interpréteurs) traduisent les programmes
écrits en langages évolués, en programmes utilisant le langage machine.
Exemples : Basic, Pascal, C et Cobol
En règle générale, dans l’écriture d’un programme, on distingue
– Le programme source écrit par le programmeur.
– Le programme objet qui est la version traduite et directement exécutable par le microprocesseur.
– Le programme exécutable ou binaire qui dépend du microprocesseur et du système d’exploitation. 5
Le programme source : chaque ligne est divisée en 4 parties appelées champs.
– Champ Label ou Etiquette : contient un code personnel suggestif permettant un repérage aisé de la
position d’une instruction.
– Champ Code Opération : contient un code mnémonique de l’instruction à effectuer (op code).
– Champ Opérande : contient l’élément alphanumérique sur lequel porte l’instruction.
– Champ Commentaire : contient les informations facilitant la compréhension de l’instruction et/ou
du programme, mais n’ayant aucune incidence sur le programme objet généré par la suite.
Exemple de programme source :
5 Nous verrons ce principe lors du second trimestre. Vous le verrez aussi avec l’enseignant de la matière Système D’exploitation.
47
Chapitre 8
Le microprocesseur
L Emicroprocesseur est un circuit intégré à une puce, qui dispose des fonctions d’un processeur com-
plet. C’est la société Intel qui, le 15 novembre 1971, lança le premier microprocesseur. Ted Hoff, le
créateur, avait réussi à simplifier le principe du calculateur. La puce de Hoff était en quelque sorte un “pro-
cesseur universel”. Le premier microprocesseur, le 4004, contenait 2 300 transistors et exécutait 60 000
opérations à la seconde. Il en existe actuellement1 , une très grande variété. On peut les classer en famille,
chaque famille représente une architecture. Leurs caractéristiques sont nombreuses, mais la principale est
la puissance de calculs, dont l’unité est le Mips (Million of Instruction Per Second) pour les microproces-
seurs simples et le Mflops (Million of Floating point Opérations Per Second) pour les microprocesseurs
plus complexes.
cpureview.html qui contient beaucoup d’informations sur les microprocesseurs et est souvent mis à jour.
2 Le silicum est une matériau qui fait partie de la famille des cristaux. Il est issu du sable que l’on trouve sur les plages, duqel on
extrait la silice.
48
– Un Décodeur de code opératoire, qui détermine quelle opération doit être effectuée parmi le
jeu d’instructions du microprocesseur.
– Un séquenceur, il génère les signaux de commandes pour piloter les autres entités du micro-
processeur, et synchroniser ce dernier avec la mémoire.
– L’UAL : elle a pour fonction d’effectuer les opérations arithmétiques telles que l’addition, la
soustraction et les opérations logiques telles que les fonctions OU, ET, décalage et rotation.
C ’est l’ensemble des instructions de base câblées3 sur la puce, donc que le microprocesseur peut exécu-
ter. Chaque famille de microprocesseurs possède son propre jeu d’instructions. Ce jeu d’instructions
est tributaire d’exigences telles que
– La simplicité.
– La rapidité.
– L’universalité.
– L’occupation sur la pastille de silicium.
– Le “confort” du programmeur.
Le nombre d’instructions composant ce jeu est compris entre 50 et 500 instructions selon que l’on ai à
faire à des microprocesseurs RISC (Reduced Instruction Set Computer) ou des microprocesseurs CISC
(Complex Instruction Set Computer)4 .
Les instructions peuvent être classées en six catégories5 .
– Transfert de données, entre le µP et la mémoire, MOVE, LOAD, STORE,. . .
– Opérations arithmétiques, ADD, SUB,. . .
– Opérations logiques OR, AND,. . .
– Contrôles des séquences, sauts conditionnels ou inconditionnels, . . .
– Entrées / Sorties, entre le µP et les périphériques,. . .
– Divers, décalages, incrémentation,. . .
C E sont des mémoires internes au microprocesseur, leur temps d’accès est en général inversement pro-
portionnel à la fréquence de l’horloge. Leur nombre et leur type varient énormément d’une architec-
ture à l’autre. En règle générale, plus un microprocesseur a de registres et plus il est performant, la quantité
varie de 10 à plus de 100. La taille d’un registre se mesure en bit (Binary Information), et lorsque l’on
parle d’un microprocesseur 32 bits, cela veut dire qu’il travaille (exécute les instructions de base) avec des
registres de taille 32 bits6 . Les registres peuvent être classés en six catégories.
3 Le terme cablé provient du faite que l’on parle ce cablâge de composants électronique entre eux.
4 Pour de plus amples renseignements sur ces deux termes, je vous invite à consulter le chapitre intitulé : Les nouvelles architec-
tures.
5 Nous verrons dans la seconde partie de ce cours ces instructions, plus en détails.
6 Nous verrons dans la seconde partie, le principe des instructions de type SIMD qui manipulent des registres de 64 et 128 bits.
49
– Registres généraux, *ils contiennent les données et résultats des opérations réalisées par le micro-
processeur, on les appelle aussi des accumulateurs.
– Registres spécifiques : Compteur Ordinal (voir ci-dessus),
– Registre d’instructions (voir ci-dessus),
– Registre d’état, (PSW : Program Status Word), appelé aussi le CCR Registre Code Condition, il
contient différents bits appelés drapeaux (flags) indiquant le résultat d’une condition. Exemple le bit
Z indique si le résultat de l’opération précédente est nul. Ces bits sont testés et permettent de faire
des sauts dans les programmes.
– Registre pointeur de pile, il permet de gérer une pile (FIFO ou LIFO) dans la mémoire centrale.
– Registres de base, ils sont utilisés comme indice pour calculer des adresses effectives. Ils contiennent
l’adresse de base, on leur rajoute l’adresse du registre d’instruction et on trouve l’adresse effective.
– Registres d’index ou d’indice, ils permettent de manipuler des tableaux de données à plusieurs di-
mensions. Pour connaître l’adresse effective, on somme l’adresse de base, avec l’adresse du registre
d’instruction et du registre d’index. Ils sont en général incrémentés ou décrémentés automatiquement
après chaque utilisation.
– Registres de deboggage, ils permettent de faire la mise au point des programmes 7.
8.4 Le Langage
L E langage de programmation d’un microprocesseur est appelé le langage machine. Il n’est composé
que de 1 et de 0, donc du binaire. Au début de l’informatique, les programmeurs programmaient en
langage machine, ce qui était très pénible, car il fallait aligner des séquences de bits, dont la signification
n’avait rien d’évidente pour l’Homme. Pour comprendre cette séquence de bits, il fallait compulser une
table décrivant toutes les opérations possibles et leur représentation binaire. Par exemple pour additionner
deux nombres, on écrivait 10001010 01011000 11010010 8. Les 8 premiers bits représentent le codage de
l’instruction que l’on nomme le code opératoire, les 2 paquets de 8 bits suivants, représentent les deux
nombres à additionner, que l’on nomme opérandes. Par la suite, on a donné des noms aux opérations, que
l’on a appelé des codes mnémoniques, exemple : ADD, DIV, OR etc. . . De même pour les données et les
résultats, on a pu les mettre sous une forme symbolique. Pour convertir ce nouveau langage en langage
machine, on utilise un programme que l’on nomme assembleur, donc ce nouveau langage s’appelle le
langage d’assemblage. Ce langage est toujours utilisé et le sera toujours, car il est le seul qui puisse exploiter
toutes les ressources du microprocesseur. Tous les noyaux (une certaine partie) des systèmes d’exploitation
sont écrits en langage machine.
8.5 Fonctionnement
L ’UC va chercher en mémoire les instructions et les données, en envoyant l’adresse sur le bus d’adessess
ainsi qu’une commande de lecture ou d’écriture sur le bus de commande. Pour le cas de la lecture,
l’instruction codée en binaire est transférée vers l’UC, où son décodage permet de déterminer l’opération
demandée ainsi que la quantité de données (opérandes) nécessaires. A partir de cela, il y a génération des
signaux utiles à l’UAL pour déclencher l’exécution de l’instruction. Ensuite, l’UC va chercher les données
et les transfère directement à l’UAL.
L’UAL exécute l’instruction et transmet le résultat à l’UC, qui va aller le stocker en mémoire. Le cycle
se répète ainsi indéfiniment, un microprocesseur ne s’arrête jamais de "travailler ".
L’exécution d’une instruction9
1. Chargement de la prochaine instruction à exécuter depuis la mémoire jusque dans le registre d’ins-
truction.
7 Nous verrons leur utilisations lors de la seconde partie du cours.
8 Cen’est qu’un exemple, le codage est pris au hasard. . .
9 Nous verrons lors du chapitre intitulé Les nouvelles architectures, que le découpage de l’éxécution d’une instruction en blocs
permet de réaliser l’exécution de ces blocs, non plus en série mais en parallèle.
50
2. Modification du compteur ordinal pour qu’il pointe sur l’instruction suivante.
3. Décodage de l’instruction que l’on vient de charger.
4. Localisation dans la mémoire des éventuelles données utilisées par l’instruction.
5. Chargement des données si nécessaire dans les registres internes de l’UAL.
6. Exécution de l’instruction.
7. Stockage du résultat dans la mémoire.
8. Retour à l’étape N◦ 1.
Les étapes 1, 2, 3, 4 et 7 sont réalisées par l’UC et les autres par l’UAL.
****
8.7 Fonctionnement
51
On peut passer à l’instruction suivante.
Remarque : tout cela n’a duré que quelques milliardièmes de secondes donc quelques nanosecondes 11 !
52
Chapitre 9
Les Mémoires
9.1 Introduction
L Es mémoires sont des structures qui permettent de stocker une information sous forme numérique ou
analogique, puis de la restituer à la demande. Il existe une grande variété de mémoires, depuis la
bascule R-S jusqu’aux mémoires de masse : disques durs et bandes magnétiques etc.. Dans ce cours, nous
allons nous intéresser aux mémoires intégrées à semi-conducteurs, capable de stocker et de restituer une
information sous forme numérique ! .
9.2 Définition
U Ne mémoire est constituée de cases, dont chacune enregistre un bit (0 ou 1). Si ces cases sont directe-
ment adressables, on dit que l’on a un accès aléatoire (disque), sinon on parle de mémoires sérielles
ou accès série (bande).
Le diagramme ci-dessous donne un aperçu des différents types de mémoires au silicium.
L Les informations sont permanentes et l’utilisateur ne peut que les lires. On trouve dans cette catégorie :
– R.O.M. : Read Only Memory (mémoire à lecture seule) appelée également mémoire morte (figée),
elle est programmée une fois pour toutes par le fabricant.
– P.R.O.M. : Programmable Read Only Memory, mémoire programmable une fois par l’utilisateur
53
– E.P.R.O.M. : Programmable Read Only Memory (ou REPROM : Reprogrammable Read Only Me-
mory) mémoire à lecture seule reprogrammable plusieurs fois par l’utilisateur après effacement sous
un rayonnement ultra violet.
– E.A.R.O.M. : Electrically Alterable Read Only Memory (ou EEPROM : Electrically Erasable PROM)
mémoire à lecture seule reprogrammable plusieurs fois par l’utilisateur mais effaçable électriquement
Ces mémoires conservent les informations stockées même après coupure de l’alimentation. On trouve
également dans cette catégorie, les réseaux logiques programmables qui permettent de réaliser des combi-
naisons logiques à partir de variables d’entrée : PAL, GAL, FPGA etc...
E Lles ne peuvent conserver l’information que temporairement, si elles sont alimentées en énergie élec-
trique, dés la coupure de l’alimentation, les informations sont perdues* !* *R.A.M * : Random Acces
Memory (mémoire à accès aléatoire), elles sont aussi appelées mémoires vives. Selon la technologie de
fabrication utilisée, on distingue 2 grandes familles :
– RAM Statique : l’information est maintenue tant que l’alimentation est présente.
– RAM Dynamique : elle nécessite une opération supplémentaire de “rafraîchissement” pour main-
tenir l’information présente.
– M.B.M : Magnétique Buble Memory (mémoire à bulle magnétique), c’est une mémoire de masse
non volatile qui utilise les propriétés des champs magnétiques (plus utilisées).
– RAM gérées séquentiellement
– F.I.F.O. : First In First Out (premier entré premier sorti), c’est une mémoire qui fonctionne en
accès séquentiel, la première information entrée est aussi la première sortie. Elle est utilisée pour
les piles.
– L.I.F.O. : Last In First Out (dernier entré premier sorti), la dernière information entrée est aussi la
dernière sortie. Elle est utilisée dans les calculateurs.1
L L existe beucoup de types de mémoire dynamique. La technologie évoluant sans cesse, il en apparait
de nouvelles pratiquement tous les ans. Ce paragraphe décrit les caractéristiques de certaines qui sont
encore utilisées ou totalemnt disparues pour les autre. Cela montre l’évolution technologique des mémoires
dynamique.
– La mémoire FPM Fast Page Mode : c’est la plus ancienne (des plus récente. . . , donc en barettes). Il
est nécessaire de la rafraîchir très souvent, et son temps d’accès varie de 60 à 70 ns.
– La mémoire EDO (Extensed Data Out) ou EDO RAM : C’est une version plus récente et plus rapide.
Cette mémoire fonctionne comme la FPM, mais les données sortent plus rapidement, car elle intègre
une petite mémoire cache qui stocke l’adresse de la prochaine cellule à lire ou écrire sans attendre
que la dglnée précédente soit lue.
– La mémoire BEDO Ram (Burst Extensed Data Out Ram) : cousine de l’EDO.
– La mémoire SDRAM (Synchronous DRAM) : Avec ce type de mémoire, il y a synchronisation des
signaux entrées/sorties avec l’horloge du système ce qui accélère les échanges. Son temps d’accès
varie de 5 à 15 ns.
– La mémoire ECC (Error Correction Code) : Mémoire à code de correction d’erreur. Cette mémoire
prend en charge la gestion des erreurs de bits en mémoire vive. Elle se présente sous forme de barettes
Dimm et est utile seulement sur un serveur ou les systèmes qui nécessitent une grande fiabilité des
données et des calculs (systèmes bancaires).
– La mémoire RamBus, elle fonctionne à des fréquences de 600 à 800 Mhz (proches de celles des
processeurs), avec un débit de 1.2 Go/s (équivalent à un temps d’accès de 1 ns, qui est déjà la vitesse
du cache interne du processeur).
1 Nous verrons son utilité dans un programme, au second trimestre.
54
9.5 Caractéristiques principales
Elles sont au nombre de quatre.
– 1 : La Capacité : c’est le nombre de bits que la mémoire peut stocker, elle est toujours une puissance
de deux.
Exemples : 1Mbits, 16Mbits, les ram actuelles atteignent 8 Gigabits et les ROM 8 Mégabits
– 2 : L’organisation : une mémoire est prévue pour travailler sur des informations de longueur définie.
On parlera de matrice.
– Octets (Byte) : 8bits,
– Mots (Word) : 16bits,
– Double mots (dubble word) : 32bits
– Quadruple mots : 64bits
– La mémoire pourra être organisée en 8, 16, 32, 64 voir 128 bits
Exemples :
64k*1bit, 8k*8bits et 4k*16bits ont la même capacité.
16M*4bits, 8M*8bits et 64M*1bit ont aussi la même capacité.
Le produit du nombre d’informations par la longueur de cette information donne la capacité de la
mémoire.
– 3 : Les temps
– D’écriture : c’est le temps qui s’écoule entre l’instant où la donnée et l’adresse sont présentées à
la mémoire et le moment ou la donnée est effectivement stockée.
– De lecture : c’est le temps qui s’écoule entre l’instant où l’adresse est présentée à la mémoire et
le moment ou la donnée est disponible en sortie
– D’accès : c’est généralement la moyenne des deux temps précédents.
– De cycle : si une opération de lecture est destructive, il faut réinscrire la donnée. Le temps de cycle
est donc la somme du temps d’accès et du temps de réinscription.
– La consommation : elle est différente au repos (standby) et en fonctionnement, et dépend de la
technologie.
– 4 : Les modèles
L A fonction décodage d’adresses permet la sélection, dans l’espace mémoire adressable du micropro-
cesseur, d’une adresse matérielle d’une case mémoire.
Exemple : pour un microprocesseur ayant un bus d’adresses de 32 fils, cela va consister à sélectionner
l’adresse matérielle parmi 232 soit 4 294 967 296 adresses.
Dans un système à microprocesseur, la partie réalisant la fonction décodage d’adresses est le décodeur
d’adresses.
55
Les différentes solutions réalisant la fonction décodage d’adresses sont au nombre de 5
Solution mettant en œuvre des opérateurs logiques de base.
Solution mettant en œuvre des décodeurs et des démultiplexeurs.
Solution mettant en œuvre des circuits comparateurs logiques.
Solution mettant en œuvre une mémoire P.R.O.M.
Solution mettant en œuvre un circuit PAL.2
56
Chapitre 10
La mémoire cache
10.1 Introduction
V O us avez du remarquer, que dans la vie, plus on élimine de papiers et plus on en entasse (je ne sais pas
pour vous, mais moi je passe mon temps à jeter des articles de presses informatiques). Ceci, vient
du fait que l’être humain a le "défaut" de vouloir tout savoir ou tout connaître (ce qui n’est pas la même
chose). Les premiers concepteurs d’ordinateurs ont vite compris que les programmeurs et utilisateurs de
ces machines auraient besoin d’une quantité toujours croissante de capacité de stockage donc de mémoires.
La philosophie suivante aurait pu être adoptée : ils en veulent, "donnez" en.
Les programmes n’accèdent pas à tout le code et toutes les données en même temps et de la même
manière. Il n’est donc pas nécessaires de disposer d’une grande quantité de mémoire pour exécuter des
programmes de tailles importantes. L’idée simpliste serait de charger des blocs de mémoires les uns derrière
les autres au fur et à mesure des besoins et du temps. Le temps, le voilà le fautif. Revenons en arrière
d’une trentaine d’années. A cette bonne vieille époque, les microprocesseurs travaillaient à des fréquences
inférieures à la dizaine de mégahertz, et les mémoires avaient des temps d’accès compris entre 150 et
120 ns. Quand le microprocesseur allait chercher une donnée en mémoire, cette dernière lui paraissait
disponible instantanément. La technologie aidant, le temps d’accès des mémoires classiques (DRAM) a
diminué, et atteint aujourd’hui la nanoseconde. Les microprocesseurs ont aussi progressé en vitesse, et leur
fréquence de travail a été multipliée par 200 voir 300.
Conclusion, avec des mémoires classiques, quand le microprocesseur désire une donnée (ce qui est très
courant), il passe la majeur partie de son temps à l’attendre et la performance des machines est diminuée.
10.2 Définition
S I on parle de hiérarchie mémoire, en les classant selon les critères prix et temps d’accès, en commençant
par le niveau de hiérarchie le plus haut, on aurait :
– La mémoire cache de Niveau 1 (la plus chère, la plus rapide et se trouvant à l’intérieur du micropro-
cesseur).
– La mémoire cache de Niveau 2 (SRAM).
57
– La RAM classique (DRAM).
– Le disque dur.
– La bande magnétique (la moins chère et la plus lente).
L’objectif de ces 5 niveaux, est de fournir à l’utilisateur un système mémoire qui soit presque aussi bon
marché que la bande magnétique, et ayant le temps d’accès de la mémoire cache de niveau 1
58
F IG . 10.2 – L’organigramme de la recherche d’une donnée en mémoire
– Si un bloc peut être placé n’importe où dans le cache, celui ci est appelé “totalement associatif” ou
“Fully Association”.
– Si un bloc peut être placé dans un ensemble restreint de places dans le cache, le cache est dit “as-
sociatif par ensemble de blocs” ou “Set Associative”. Un ensemble étant un groupe de blocs dans
le cache. Un bloc est affecté à un ensemble, puis placé n’importe où dans ce dernier. L’ensemble est
habituellement choisi par sélection de bits ; c’est-à-dire :
C’est cette dernière solution qui semble être la plus employée dans la conception des ordinateurs
59
Chaque bloc du cache possède une étiquette adresse contenant son numéro de bloc présent. Cette éti-
quette est examinée pour voir si elle correspond au numéro de bloc provenant de l’UC du microprocesseur.
Pour un gain de rapidité, toutes les étiquettes sont examinées en parallèle.
Il faut savoir si un bloc à une information non valide. Pour cela, on rajoute un bit valide à l’étiquette
pour indiquer si l’entrée correspondante contient ou non une adresse valide. Si le bit n’est pas positionné,
il ne peut y avoir un accès valide sur cette adresse.
Remarque : la stratégie “premier entré premier sorti” (FIFO), n’est plus utilisée et donnait des taux
d’échecs avoisinant les 10%
60
Le Write through a tendance à disparaître, en effet, même si on ne fait que lire une donnée dans un bloc,
il recopie ce bloc en mémoire classique et mobilise ainsi le bus mémoire pour mettre à jour cette mémoire
classique, ce qui restreint les possibilités de Direct Acces Memory DMA.
Le Write back, permet une sélection des mises à jour de la mémoire classique, le contenu du cache
n’est reporté que si une donnée a effectivement été modifiée par le microprocesseur ou si un bloc ayant
seulement été lu par le microprocesseur est remplacé.
10.4 Conclusion
E N fait, on utilise le cache comme une image de la mémoire classique. Quand il accède aux données,
le microprocesseur croît s’adresser à la mémoire classique alors qu’il s’adresse au cache. A charge
ensuite au contrôleur de cache de recopier les données dans la mémoire classique et le tour est joué. Les
diverses architectures existantes consistent à créer différents systèmes de représentation basés directement
sur les adresses mémoires ou sur les données.
Reste que l’objectif du constructeur est toujours d’optimiser le déroulement tant des phases de lecture
que d’écriture dans le but d’obtenir le cache le plus efficace possible.
N OS ordinateurs sont basés sur l’architecture de Von Neumann, cela signifie que les instructions et
les données, donc les opérateurs et les opérandes sont stockés dans la même mémoire. Ainsi le
microprocesseur doit accéder deux fois à la mémoire, une pour l’instruction et une pour la donnée. Un
système alternatif, que l’on appelle modèle Harvard, consiste à séparer les espaces mémoire : un pour les
données et un pour les instructions. De cette façon, le chargement simultané des deux, améliore la vitesse
des traitements.
Actuellement, les concepteurs ont tendance à utiliser les deux architectures, celle de Von Neumann
pour les cartes mères et celle de Harvard pour le microprocesseur, pour fabriquer ces drôles de machines
dans un monde de femmes et d’hommes.
61
Chapitre 11
11.1 Définition
L A gestion des E/S consiste en la gestion du transfert d’information entre le couple unité centrale micro-
processeur ⇔ mémoire et l’extérieur soit les unités périphériques locales ou distante. Dans un système
d’exploitation, cette fonction est réalisée par un ensemble de services appelé gestionnaire d’entrée-sortie.
62
F IG . 11.2 – Organisation E/S 2
On peut aussi remarquer que qu’il existe une multiplicité des voies d’accès ce qui diminue le risque
d’indisponibilité par suite de la saturation ou de la défaillance d’un canal ou d’un coupleur.
C sont des dispositifs servant en premier lieu à l’entrée et à la sortie de données. Ils sont sont attachés à
E
des coupleurs ou contrôleurs. Périphériques et coupleurs définissent des interfaces qui comprennent
un ensemble de fonctions (entrée, sortie, siganux de commande et d’incident) et une voie de communication
servant au tranfert de l’information.
I L existe deux grandes catégories de périphériques, les périphériques blocs et les périphériques caractères.
63
– Les périphériques caractères : Ils acceptent les données sans se soucier d’une quelconque structure.
Ils envoient ou reçoivent les données octets par octets, sans qu’on les contactée en paquets. Parmi les
périphériques caractères, on peut citer : le clavier, la souris, les imprimantes, les terminaux etc... Les
données sont transmises les unes derrière les autres, on parle alors d’accès séquentiel.
– Les périphériques blocs : Ils acceptent les données par blocs de taille fixe, chaque bloc ayant une
adresse propre. La taille des blocs va généralement de 128 octets à plusieurs kilo. Le grand avantage
par rapport aux périphériques caractères est qu’il est possible d’aller lire ou écrire un bloc à tout
moment, on parle alors d’accès aléatoire.
C E n’est pas le microprocesseur qui pilote directement le périphérique, mais un contrôleur. En essayant
de se rapprocher un peu plus du matériel, on peut dire que le périphérique en lui même est un ensemble
de composants mécaniques (moteur, disque etc...), et qu’il est géré au niveau des signaux par une carte
électronique que l’on nomme contrôleur. Ce contrôleur peut lui même être constitué d’un microprocesseur
ou micro contrôleur, qui dialogue avec le microprocesseur principale. Donc la définition d’un coupleur peut
être : c’est un dispositif de commande adapté à un type donné de périphérique. Son autonomie est limitée
à des opérations élémentaires. Il permet aussi le dialogue entre deux entités physiques (microprocesseur et
périphérique) différentes.
F IG . 11.4 – Coupleur
On peut dire que l’ensemble coupleur-périphérique est une interface entre l’Homme et le couple microprocesseur-
mémoire.
64
de déclencher une opération déterminée. Comme plusieurs demandes d’interruption peuvent survenir
simultanément, elles sont tout d’abord envoyées au contrôleur d’interruption (PIC : Programmable
Interrupt Controler) qui les retransmet ensuite au microprocesseur.
U canal ou unité d’échange, est un processeur spécialisé dans les opérations d’entrées-sorties. Il ne
N
peut être lancé que par le microprocesseur central de l’ordinateur, il est esclave. il ne possède pas
d’interruptions mais peut lui-même interrompre le microprocesseur central. Son répertoire d’instruction lui
permet d’actionner les coupleurs et les périphériques qui lui sont connectés.
S I un périphérique veut envoyer tout un bloc de données au microprocesseur, il commence d’abord par
l’interrompre, récupère les données, sur le support, de façon sérielle, puis il fait tout un ensemble
de vérifications tel que le checksum. Enfin vient le transfert des données par mots, un programme gère
ce transfert en incrémentant un compteur à chaque itération. Ce programme, s’il est exécuté par le mi-
croprocesseur, fait perdre beaucoup de temps à ce dernier, qui ne peut alors s’occuper de la gestion des
programmes de l’utilisateur. Le DMA (Direct Acces Memory) a été créé pour libérer le microprocesseur de
ce travail de bas niveau, il donne au contrôleur 2 informations, qui sont
1. l’adresse mémoire de départ où les données doivent être stockées.
2. le nombre de mots à transférer.
Le DMA est surtout utilisé pour les périphériques de type blocs. C’est en quelque sorte une forme simplifiée
de canal.
F IG . 11.5 – DMA
65
11.10 Le pilote de périphériques
L E programme qui commande le fonctionnement élémentaire d’un périphérique est appelé son pilote
(driver ou handler). Le pilote gère directement l’interface du coupleur du périphérique, traite les in-
terruptions émises par celui-ci, détecte et traite les cas d’erreur. C’est au niveau de ce module que doivent
être traitées les particularités de programmation du coupleur. Il est généralement invisible aux utilisateurs
du sysème, qui accèdent aux fonctions d’E/S au moyen de services de plus ou moins haut niveau réalisés
par des appels au superviseur. Le handler contient donc les primitives permettant de commander le pé-
riphérique. Ce driver est constitué de deux procédures, quasiment indépendantes : une procédure traitant
l’initialisation d’un transfert et une procédure de traitement de l’interruption associée à une fin de transfert.
La gestion des E/S repose sur l’utilisation des interruptions dans la plupart des cas.
L A différence considérable entre les vitesses de traitement de l’unité centrale et des organes périphé-
riques impose de tamponner les entrées-sorties, c’est-à-dire d’interposer une zone de mémoire, ou
tampon, entre les périphériques et les programmes utilisateurs. Le but est de réduire le temps d’inacti-
vité de l’unité centrale en découplant son fonctionnement de celui des périphériques. Les programmes
utilisateurs transfèrent l’information depuis ou vers le tampon, celui-ci, en parallèle, ser de source ou de
destination aux échanges avec le périphérique. Pour qu’une donnée lue sur un périphérique soit disponible
pour l’unité centrale, il faut que la lecture ait été anticipée, de même pour qu’une donnée soit écrite sur
un périphérique, elle doit être conservée en mémoire le temps de son transfert. Pour cela, on utilise des
tampons (en anglais buffer ou spool). Il existe deux types de tampons :
– Les tampons en mémoire centrale (buffer ou buffering) : l’utilisation de buffer va permettre de char-
ger les données en entrée ou de les récupérer en sortie dans une zone réservée de la mémoire (circuits
intégrés).
F IG . 11.6 – Le buffering
– Les tampons en mémoire auxilliaire (spool ou spooling) : pour éviter l’encombrement de la mémoire
centrale par les tampons d’entrée-sortie, ceux-ci peuvent être reportés sur une mémoire auxilliaire à
accès rapide (disque). Le terme spool (ne veut pas dire "bobine", mais est l’acronyme de Simulta-
neous Peripherical Operations On Line).
66
F IG . 11.8 – Le spooling
67
Chapitre 12
12.2 Introduction
E N 1975, les chercheurs d’IBM firent la constatation suivante : moins de 20% des instructions dispo-
nibles dans le microprocesseur sont utilisées dans 80% des cas. D’où la question : pourquoi ne pas
simplifier les microprocesseur en implantant sur la puce les instructions les plus courantes ’ On gagnerait
ainsi en vitesse, donc en performance, et on réduirait la surface de la puce, donc la consommation et le
coût. C’est cette idée qui fut la base de la technologie RISC (Reduced Instruction Set Computer : mi-
croprocesseur à jeu d’instructions réduit) par opposition aux CISC (Complex Instruction Set Computer).
Mais que fait-on des instructions complexes ’
Il suffit tout simplement de les remplacer par une série d’instructions simples (une multiplication est
une série de sommes). Mais à la différence de l’approche CISC, le décodage des instructions complexes
est assuré par le logiciel au niveau du compilateur, et non pas par des circuits logiques implantés sur le
microprocesseur. Il permet ainsi d’éviter les microcodes à programmer sur la puce. Ceci oblige à avoir
un compilateur plus complexe, devant être optimisé de façon à réduire les temps d’exécution, si l’on veut
préserver les avantages de la puce RISC.
Remarque : une instruction complexe à l’intérieur du microprocesseur n’est en fin de compte qu’un
“programme” implanté sur la puce.
12.3 Le PIPELINE
O N a vu que la réduction du jeu d’instructions apporte un gain de rapidité, mais l’essentiel des perfor-
mances vient de l’exploitation du gain de place pour une nouvelle fonction : le traitement en pipeline.
Une instruction du programme s’exécute généralement en 5 séquences successives. A chaque séquence cor-
respond une impulsion d’horloge
– IF : Instruction Fetch, chargement des instructions du cache mémoire vers la file d’instructions.
– DEC : Décodage, traduction de l’instruction se trouvant sur le haut de la file d’instructions.
– EX : Execution, exécution par l’ALU ou la FPU de l’instruction décodée
– MEM : Memory acces, lors d’une opération de lecture/écriture, la donnée est écrite vers une file de
lecture/écriture. Ceci évite de bloquer le pipeline dans le cas où on ne pourrait accéder à la mémoire.
– WB : Write Back, écriture du résultat de EX ou de MEM
La simplification apportée par la technologie RISC ayant conduit à des instructions standards de même
longueur, le principe du pipeline est donc de profiter de cette standardisation pour exécuter les instructions,
68
non pas de façon séquentielle, mais en cascade à 5 étages à la manière d’une chaîne de fabrication à 5
postes de travail (merci Taylor). Chaque étage est chargé d’une séquence. En permanence, 5 instructions
se trouvent donc simultanément à des séquences différentes de traitement. A chaque coup d’horloge, une
instruction est entièrement exécutée.
t t+1 t+2 t+3 t+4 t+5 t+6 t+7 t+8
ins1 IF DEC EX MEM WB MOV AX,I
ins2 IF DEC EX MEM WB MOV BX,J
ins3 IF DEC EX MEM WB SUB AX,BX
ins4 IF DEC EX MEM WB CMP AX,0
ins5 IF DEC EX MEM JE Suite
E LLE consiste à multiplier le nombre de pipelines, donc à mettre plusieurs unités de traitement travaillant
en parallèle. La cadence de traitement s’en trouve au mieux multipliée par le nombre de pipelines.
Avec 4 pipelines, les microprocesseur RISC les plus récents traitent jusqu’à 4 instructions par cycle.
E LLE consiste à augmenter la profondeur du pipeline (plus de séquences et une fréquence plus élevée
donc t plus petit) permettant ainsi d’augmenter encore la cadence du traitement. Par contre, cette
organisation demande une logistique plus complexe pour approvisionner les différents " postes ". Pour
l’instant, le bon compromis est un pipeline à 11 étages, le gain est donc beaucoup moins significatif que
dans le cas d’une multiplication du nombre de pipelines.
69
12.6 Comparaison des 2 architectures
RISC CISC
– Jeu d’instructions : Jeu réduit limité aux ins- – Jeu d’instructions : Typiquement plus de
tructions simples les plus utilisées dans le trai- 200 instructions
tement. Typiquement moins de 100 instructions – Format des instructions : Variable
– Format des instructions : Standard – Implémentation des instructions : La plu-
– Implémentation des instructions : Seules les part des instructions sont gravées sur le
instructions simples sont gravées sur le sili- silicium. Pas de microcodes. Les tâches
cium. Les autres sont programmées sous forme complexes sont décodées par le compila-
de microcodes sur des circuits logiques teur.
– Accès à la mémoire : Seules les instructions de – Accès à la mémoire : La plupart des ins-
chargement et de rangement de registres (Load tructions y ont accès.
et Store) – Vitesse d’exécution : Typiquement une
– Vitesse d’exécution : Typiquement une instruc- instruction pour 3 à 10 cycles d’horloge.
tion par cycle d’horloge – Avantages : Développement plus simple
– Avantages : Puce plus petite. Fréquence d’hor- des systèmes. Base installée importante.
loge plus élevée. Vitesse d’exécution plus – Inconvénients : Technologie gourmande
grande. en silicium. Puce plus compliquée à dé-
– Inconvénients : Nécessite des compilateurs plus velopper. Possibilités d’évolution limi-
complexes et plus performants. Programme tées
d’application plus long occupant plus de mé-
moire.
12.7 Conclusion
L A division entre les concepts CISC et RISC n’est plus aussi dichotomique que par le passé. L’ensemble
des microprocesseur utilise des solutions similaires, même si les uns sont classés CISC et les autres
RISC. Le 486 d’Intel et le 68040 de Motorola sont les deux premiers (connus du grand public) processeurs
CISC à se rapprocher de la technologie RISC. L’unité centrale contient les instructions les plus courantes,
tandis que les instructions complexes sont confiées à une unité spécifique séparée et utilisent le traitement
en pipeline. Le Pentium et le 86060 qui ont suivis, vont plus loin en adoptant l’architecture superscalaire.
Par contre les microprocesseur RISC ont tendance à enrichir leur jeu d’instructions et finissent par de-
venir aussi complexes que des CISC. Si bien qu’aujourd’hui, l’important n’est pas de savoir si tel ou tel
microprocesseur est CISC ou RISC, mais de connaître son architecture interne et ses performances.
70
Index
A F
c
accès alÃ
atoire . . . . . . . . . . . . . . . . . . . . 50, 61 famille . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
c
accès sÃ
quentiel. . . . . . . . . . . . . . . . . . . . . . .61 FIFO,LIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
accès sÃ
riec . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 flags, drapeaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Alan Mathieson TURING . . . . . . . . . . . . . . . . . . 10
ANSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 G
ANSI, EBCDIC . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 gaufrette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 GRAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
assembleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 gyclÃ
ec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
B H
BCD, DCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Hermann HOLLERITH . . . . . . . . . . . . . . . . . . . . . 9
bidirectionnelle, unidirectionnel . . . . . . . . . . . . 43 horloge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Blaise PASCAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 I
buffer, buffering . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . 42, 45
bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41, 48 interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
bus d’adresses . . . . . . . . . . . . . . . . . . . . . . . . . 43, 48 interfaces parallèles . . . . . . . . . . . . . . . . . . . . . . 43
bus de commandes . . . . . . . . . . . . . . . . . . . . . 43, 48 interfaces sÃ
ries c . . . . . . . . . . . . . . . . . . . . . . . . 43
Bus de donnÃ
es c . . . . . . . . . . . . . . . . . . . . . . . . 43
c . . . . . . . . . . . . . . . . . . . . . . . . . 48 J
bus de donnÃ
es
c . . . . . . . . . . . . . . . . . . . . . . . . . 48 jeu d’instructions . . . . . . . . . . . . . . . . . . . . . . 43, 46
bus multiplexÃ
Joseph-Marie JACQUARD . . . . . . . . . . . . . . . . . . 8
C
canal, canaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 L
Charles BABBAGE. . . . . . . . . . . . . . . . . . . . . . . . .8 c
langage Ã
voluÃ
c . . . . . . . . . . . . . . . . . . . . . . 44
CISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 langage d’assemblage . . . . . . . . . . . . . . . 14, 44, 47
code de Hamming . . . . . . . . . . . . . . . . . . . . . . . . . 25 langage machine . . . . . . . . . . . . . . . . . . . . . . . . . . 47
c
code mnÃ
monique . . . . . . . . . . . . . . . . . . . . . . 47 LEIBNIZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
c
code opÃ
ratoire. . . . . . . . . . . . . . . . . . . . . . . . .47 LRC, VRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
codes polynomiaux . . . . . . . . . . . . . . . . . . . . . . . . 26 LSB, MSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Compteur Ordinal . . . . . . . . . . . . . . . . . . . . . . . . . 45
M
coupleur, contrôleur de pÃ
riphà c c
rique . 61
c
mÃ
moire . . . . . . . . . . . . . . . . . . . . . . . . . . . 13, 41
CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
c
mÃ
moire dynamique . . . . . . . . . . . . . . . . . . . . 51
D c
mÃ
moire statique . . . . . . . . . . . . . . . . . . . . . . . 51
c
dÃ
codeur de code opÃ
ratoire c . . . . . . . . . . 46 machine traditionnelle . . . . . . . . . . . . . . . . . . . . . 14
DCB, BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 masque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
DIP, DIL, Flat Package, SMD, CMS . . . . . . . . 37 Mflops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 microprocesseur . . . . . . . . . . . . . . . . . . . . 40, 41, 45
donnÃ
esc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Mips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
dopage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 MOS, PMOS, CMOS, VMOS . . . . . . . . . . . . . . 38
DSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 MSB, LSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
E O
Enigma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 c
opÃ
randes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
71
P
c
pÃ
riphà c
rique blocs . . . . . . . . . . . . . . . . . . . 61
c
pÃ
riphà c
rique caractères . . . . . . . . . . . . . 61
Pascaline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
PIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
pilote, driver, handler . . . . . . . . . . . . . . . . . . . . . . 63
processeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43, 45
programme exÃ
cutable, c binaire . . . . . . . . . . 44
programme objet . . . . . . . . . . . . . . . . . . . . . . . . . . 44
programme source. . . . . . . . . . . . . . . . . . . . . . . . .44
puce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36, 45
Q
quartz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
R
RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
registre d’instructions . . . . . . . . . . . . . . . . . . . . . . 45
registres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
RISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
S
c
sÃ
quence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
c
sÃ
quenceur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
semi-conducteur . . . . . . . . . . . . . . . . . . . . . . . . . . 50
silicium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
spool, spooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
SSI, MSI, LSI, VLSI . . . . . . . . . . . . . . . . . . . . . . 36
système d’exploitation. . . . . . . . . . . . . . . . . . . .14
T
TPHL, THPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
transistor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
transistors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
TTL, ECL, MECL, CML . . . . . . . . . . . . . . . . . . 38
U
UAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
UAL, UnitÃ
c ArithmÃ
tique c et Logique . . 45
c
UC, UnitÃ
de Commande . . . . . . . . . . . . . . . 45
UNICODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
unidirectionnelle, bidirectionnelle . . . . . . . . . . . 43
V
vol de cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
VON NEUMANN . . . . . . . . . . . . . . . . . . . . . . . . 13
VRC, LRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
W
wafer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
72