Notes de Cours Calculateurs - Interfacage - Chap 1 - 2
Notes de Cours Calculateurs - Interfacage - Chap 1 - 2
Notes de Cours Calculateurs - Interfacage - Chap 1 - 2
Notes de cours
2
Notes de Cours : Calculateurs & Interfaçage Introduction
Intérêt du cours
Dans ce cours on va présenter le Microprocesseur 8086 de Intel, on va étudier
son jeux d'instruction complet, on va apprendre à le programmer en
assembleur et finir par étudier les codes machines.
Pourquoi un cours sur les Microprocesseurs et l'assembleur ? : Parce
que c'est la seule façon de comprendre comment fonctionne un
ordinateur à l'intérieur. Il devient ainsi beaucoup plus facile de le
programmer à l'aide d'autres langages plus évolué comme le Pascal, le
C/C++, et les langages visuels.
Pourquoi le 8086 d'Intel ? : Parce que la majeure partie des Ordinateurs
individuels utilisés de nos jours (2014) sont des PCs équipés de
microprocesseurs Intel compatibles avec le 8086. C'est-à-dire que tout
programme écrit pour tourner sur un 8086 peut être exécuté sur un
Pentium 4. Ce qui signifie que si on maîtrise la programmation en
assembleur du 8086, on a fait un grand pas vers la programmation de
nos PC actuels que ce soit en assembleur ou à l'aide d'autres langages
plus évolué comme le C/C++.
Attention : Le 8086 est un microprocesseur qui était destiné à
fonctionner dans des ordinateurs mono-tâches. C'est-à-dire qui ne
peuvent exécuter qu'un seul programme à la fois. Il fonctionnait alors
en mode réel, c.à.d. que le programme en cours d'exécution peut
accéder à n'importe quelle ressource de la machine y compris n'importe
quelle zone mémoire. Avec les systèmes d'exploitation récents comme
Windows ou Linux, les ordinateurs sont devenus multitâches c'est-à-
dire que le processeur peut travailler sur plusieurs programmes à la
fois. Il devient alors impératif de "réglementer" les accès à la mémoire
afin qu'un programme ne puisse pas aller écrire dans une zone
mémoire utilisée par un autre programme. Pour cela, Les processeurs
actuels fonctionnent en mode protégé. Ils interagissent avec le système
d'exploitation qui gère les ressources de la machine et évite les conflits
entre les programmes qui s'exécutent simultanément.
3
Notes de Cours : Calculateurs & Interfaçage Introduction
Introduction
Historique
Le microprocesseur est l'aboutissement de progrès technologiques tant dans
les domaines mécanique, informatique et électronique.
Quelques dates :
1971 : Intel met au point son tout premier microprocesseur, baptisé 4004,
produit par Gordon Moore et Robert Noyce suite à la commande spéciale du
japonais Busicom. “La genèse” est la première puce intégrant de la mémoire
RAM (mémoire vive, à accès direct) & DRAM (Dynamic RAM). Cadencé à 0.74
MHz fonctionnant avec des registres de 4 bits (contre 64 bits actuellement), ce
qui limitait la mémoire du PC à moins d'un Megaoctet (4 Gigaoctets
aujourd'hui). Composé de 2300 transistors.
1974: Reprenant les bases du 4004, Intel lance le 8080. L'Intel 8080 est le
premier CPU Intel à ne pas être conçu d'un étranger et donc à disposer d'une
réelle polyvalence quant à sa simplicité d'implantation hardware. Avec ses 6000
transistors il atteint une vitesse de 2 MHz et accepte une RAM de 64 Ko et
dispose de registres 8 bits.
1975 : Après la crise pétrolière de 1973, Motorola se voit contraint de réduire
ses effectifs. Les ingénieurs de Motorola réagissent et construisent un
processeur basé sur une architecture 8 bits, très simplifié et vendu 25$. Il a
un énorme succès malgré ses limitations hardware. Il équipe les ordinateurs et
les consoles de jeux. Cadencé à 1MHz.
1976 : Le Zilog Z80 s'apparente au 8080 d’Intel mais il est moins cher, et plus
évolué ; toujours avec un bus de 8 bits, il comporte un rafraîchissement intégré
de la mémoire DRAM, une cadence allant jusqu'à 2,5 MHz, puis avec les
améliorations, jusqu'à 4 MHz. Il comporte 8500 transistors.
1978 : A force d'évolution, Intel donne naissance au 8086, le processeur à la
base de l'appellation x86. Processeur 16 bits s'appuyant sur 29 000 transistors,
le 8086 gère désormais jusqu'à 1 Megaoctet de mémoire vive. Il atteint une
fréquence pouvant aller jusqu'à 10 Mhz. Mais c'est surtout son jeu
d'instruction qui fera sa renommée.
1982 : L'Intel 80286 est le successeur du 8086. Il a 134000 transistors et il est
cadencé à 8 MHz. Par rapport aux processeurs précédemment évoqués, il
fonctionne en 16 bits ce qui lui permet d'être deux fois plus rapide que le 8086.
4
Notes de Cours : Calculateurs & Interfaçage Introduction
Cette nouveauté est une évolution puisqu'il est le premier processeur
multitâche au sens hardware du terme, c'est à dire capable de gérer plusieurs
éléments en même temps. La firme multinationale IBM est la première à
équiper ses ordinateurs avec ce processeur.
1985 : L'Intel 80386 intervient suite à l'échec du iAPX432 de 1981. Comme ce
dernier, il fonctionne en 32 bits et accepte 4 Go de RAM. Il est composé de
quatre niveaux d'exécution, d'une gestion de mémoire simple et plus évoluée
que ses prédécesseurs. Il est cadencé entre 12 et 16 MHz et embarque 275000
transistors.
1988 : L'arrivée de l'entreprise Cyrix sur la scène internationale n'est pas
passée inaperçue. Ses microprocesseurs, les FasMath, joueront un rôle majeur
dans la décennie suivante avec les clones des Pentium de Intel. Ils sont réputés
20 à 30% plus puissants que leurs homologues.
1995 : L'Intel Pentium Pro est bâti sur une nouvelle architecture, la "P6". Celle-
ci permet de convertir des informations complexes en micro-instructions qui
peuvent être ré-agencées dans le pipeline afin d'être exécutées dans le désordre
(Out Of Order). Ce microprocesseur était réservé aux serveurs. Il est produit en
différentes version cadencées à 150, 166 et 200 MHz. Le Pentium Pro embarque
5,5 millions de transistors.
1996 : Le Cyrix 6x86 possède une architecture proche de celle du Pentium Pro,
il fonctionnait sur les mêmes cartes mères que les Pentium et s'avérait plus
performant à fréquence égale. Il était cadencé à 133MHz et comportait 6,6
millions de transistors. Le 6x86 était économique et rapide mais se voyait
ralentit au niveau de son unité flottante (FPU).
2000 : En l’occasion du nouveau millénaire les ingénieurs d’Intel ont décidé
d'équiper leur dernière puce de la génération Pentium, d'une nouvelle
architecture, la "netburst", afin de remplacer la P6. La netburst était
entièrement optimisée pour le débit, mais qui dit débit dit également puissance.
Donc avec une fréquence qui ne dépassait pas les 1,5 GHz, ce microprocesseur
s'avérait plus lent que les anciens Pentium 3. Avec des versions plus puissantes
comme celle à 2 GHz, la vitesse fut améliorée, mais en voulant atteindre les 4
GHz, Intel a observé un problème trop important de surchauffe et fut contraint
d'abandonner la netburst. Ce processeur possède 125 millions de transistors.
2003 : Intel ayant réalisé que l'architecture trois ans plus tôt n'était pas faite
pour les économies d'énergies, décida de revenir sur l'architecture des Pentium
3 et de sortir un plan B : le Pentium M. Il consomme peu d’énergie pour de
bonne performance et se voit remporter un franc succès sur de nombreuses
machines dénommées Centrino.
2008 : Voici le microprocesseur le plus récent et performant d'Intel de nos
jours, le core i7. Les Core x se déclinent selon trois générations de l'évolution
5
Notes de Cours : Calculateurs & Interfaçage Introduction
de l'architecture P6 : les ix, les Sandy Bridge ix 2000 et Ivy Bridge ix 3000. Ils
sont les microprocesseurs actuels les plus performants et devancent de plus
en plus l'autre géant, AMD. La première génération de ix possède environ 750
millions de transistors ; la deuxième en embarque environ 1,15 milliards et la
troisième générations en a 1,4 milliards.
6
Notes de Cours : Calculateurs & Interfaçage Chapitre 01
6
Notes de Cours : Calculateurs & Interfaçage Chapitre 01
7
Notes de Cours : Calculateurs & Interfaçage Chapitre 01
b. Les registres :
Ceux sont des mémoires élémentaires pouvant contenir chacun un
opérande. Ils servent aussi de zones de stockage de données de travail
pour l’UAL. Les registres peuvent être de 8, 16 ou 32 bits.
c. L’unité de contrôle:
Elle supervise le déroulement de toutes les opérations au sein du
Processeur. Elle est constituée principalement de :
PC compteur programme, RI registre d’instruction, décodeur, séquenceur,
SR Registre d’état et l’horloge.
Horloge : Elle génère les signaux qui permettent le cadencement et la
synchronisation de toutes les opérations. Elle représente un simple
signal carré à fréquence fixe (1, 2 voire 3 GHz) et à chaque front
d’horloge le microprocesseur réalise une tâche élémentaire. L’exécution
d’une instruction nécessite plusieurs cycles d’horloge.
8
Notes de Cours : Calculateurs & Interfaçage Chapitre 01
Un microprocesseur consiste en une unité centrale de traitement, contenant une
UAL des registres et une unité de contrôle, le tout dans un même et seul circuit
intégré.
Un calculateur construit autour d’un microprocesseur est appelé
« microcalculateur » ou « microordinateur ».
Une case mémoire peut être lue ou écrite par le microprocesseur (cas des
mémoires vives) ou bien seulement lue (cas des mémoires mortes).
9
Notes de Cours : Calculateurs & Interfaçage Chapitre 01
10
Notes de Cours : Calculateurs & Interfaçage Chapitre 01
a. Définition :
o Intel 8085, 8086, Zilog Z80 : 40 broches, DIP (Dual In-line Package) ;
o Motorola 68000 : 64 broches, DIP ;
o Intel 80386 : 196 broches, PGA (Pin Grid Array).
Technologies de fabrication : NMOS, PMOS, CMOS.
On peut représenter un microprocesseur par son schéma fonctionnel
(fig.1.7.) :
11
Notes de Cours : Calculateurs & Interfaçage Chapitre 01
Exemple :
12
Notes de Cours : Calculateurs & Interfaçage Chapitre 01
Exemple :
13
Notes de Cours : Calculateurs & Interfaçage Chapitre 01
Fig.1.10. Pointage des instructions par le IP
Les indicateurs d’état sont activés lorsqu’une certaine condition est remplie,
exemple : le flag Z est mis à 1 lorsque la dernière opération a donné un résultat
14
Notes de Cours : Calculateurs & Interfaçage Chapitre 01
nul, le flag C est mis à un lorsque le résultat d’une addition possède une
retenue, ...
Les indicateurs d’état sont utilisés par les instructions de saut conditionnels :
en fonction de l’état d’un (ou plusieurs) flags, le programme se poursuit de
manière différente.
Toutes ces étapes (lecture de l’instruction, décodage, exécution) sont
synchronisées par un séquenceur qui assure le bon déroulement des
opérations :
15
Notes de Cours : Calculateurs & Interfaçage Chapitre 01
L’horloge est constituée par un oscillateur à quartz dont les circuits peuvent
être internes ou externes au microprocesseur.
Structure complète d’un microprocesseur simple : pour fonctionner, un
microprocesseur nécessite donc au minimum les éléments suivants :
16
Notes de Cours : Calculateurs & Interfaçage Chapitre02
16
Notes de Cours : Calculateurs & Interfaçage Chapitre02
17
Notes de Cours : Calculateurs & Interfaçage Chapitre02
La capacité d’adressage d’une mémoire ne nous renseigne pas sur la taille
d’une mémoire mais juste la profondeur. Il faut pour cela lui associer la
longueur des mots.
Exemple : Mémoire RAM 6264 dispose d’une capacité de 8K x 8bits : 13 broches
d’adresses A0 à A12. 213 = 8192 = 8 Ko.
18
Notes de Cours : Calculateurs & Interfaçage Chapitre02
19
Notes de Cours : Calculateurs & Interfaçage Chapitre02
Signal de lecture
Microprocesseur Mémoire
Demande de WT
Fig.2.5.Représentation simplifiée de liaison basée sur la demande des signaux d’attente
Le cas l’écriture sur une mémoire est donné par le chronogramme suivant :
20
Notes de Cours : Calculateurs & Interfaçage Chapitre02
21
Notes de Cours : Calculateurs & Interfaçage Chapitre02
22
Notes de Cours : Calculateurs & Interfaçage Chapitre02
On en déduit la cartographie ou le mapping de la mémoire visible par le
microprocesseur :
23
Notes de Cours : Calculateurs & Interfaçage Chapitre02
On présente la table de vérité ce décodeur :
C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 0 0 0 1 1 1 1 1 1 1
0 0 1 1 0 1 1 1 1 1 1
0 1 0 1 1 0 1 1 1 1 1
0 1 1 1 1 1 0 1 1 1 1
1 0 0 1 1 1 1 0 1 1 1
1 0 1 1 1 1 1 1 0 1 1
1 1 0 1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1 1 1 0
FFFFH
Mémoire n° : 07
E000H
DFFFH
Mémoire n° : 06
C000H
BFFFH
Mémoire n° : 05
A000H
9FFFH
Mémoire n° : 04
8000H
7FFFH
Mémoire n° : 03
6000H
5FFFH
Mémoire n° : 02
4000H
3FFFH
Mémoire n° : 01
2000H
1FFFH
Mémoire n° : 00
0000H
24
Notes de Cours : Calculateurs & Interfaçage Chapitre02
a) Mémoires mortes :
ROM : Read Only Memory. Mémoire à lecture seule, sans écriture. Son contenu
est programmé une fois pour toutes par le constructeur.
Avantage : faible coût.
Inconvénient : nécessite une production en très grande quantité.
PROM: Programmable Read Only Memory. ROM programmable une seule fois
par l’utilisateur (ROM OTP : One Time Programming) en faisant sauter des
fusibles. Nécessite un programmateur spécialisé ; application d’une tension de
programmation (21 ou 25 V) pendant 20 ms.
EPROM : Erasable PROM, appelée aussi UVPROM. ROM programmable
électriquement avec un programmateur et effaçable par exposition à un
rayonnement ultraviolet pendant 30 minutes. Famille 27nm, exemple :
2764 (8 Ko), 27256 (32 Ko).
Avantage : reprogrammable par l’utilisateur.
EEPROM : Electrically Erasable PROM. ROM programmable et effaçable
électriquement. Lecture à vitesse normale (≤ 100 ns). Ecriture (= effacement)
très lente (≈ 10 ms).
Application : les EEPROM contiennent des données qui peuvent être
modifiées de temps en temps, exemple : paramètres de configuration des
ordinateurs.
Avantage : programmation sans extraction de la carte et sans
programmateur.
Inconvénient : coût élevé.
b) Mémoires vives :
SRAM : Static Random Access Memory. Mémoire statique à accès aléatoire, à
base de bascules à semi-conducteurs à deux états (bascules RS). Famille
62nnn, exemple : 62128 (16 Ko).
Avantage : très rapide, simple d’utilisation.
Inconvénient : compliqué à réaliser.
DRAM : Dynamic RAM. Basée sur la charge de condensateurs : condensateur
chargé = 1, condensateur déchargé = 0.
Avantage : intégration élevée, faible coût.
Inconvénient : nécessite un rafraîchissement périodique à cause du
courant de fuite des condensateurs.
Application : réalisation de la mémoire vive des ordinateurs (barrettes
mémoire SIMM : Single In-line Memory module).
25