Vous êtes sur la page 1sur 27

Université LARBI TEBESSI de Tébessa

Faculté des Sciences et de la Technologie

Département de Génie électrique

Notes de cours

Calculateurs & Interfaçage

3ème année Licence : Télécommunications

Préparé par : Dr. H.MAYACHE


Notes de Cours : Calculateurs & Interfaçage Introduction

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

Chapitre 01 :Architecture et fonctionnement d’un


microprocesseur

I. Structure d’un calculateur :


L’élément de base d’un calculateur est constitué par l’unité centrale de
traitement (UCT, CPU : Central Processing Unit).

Fig. 1.1. Structure d’un calculateur

L’UCT est constituée :


a. L'ALU :

Unité Arithmétique et logique. Elle est l’organe de calcul du calculateur.


Elle est constituée d'un circuit logique combinatoire qui reçoit deux
opérandes A (An…A1 A0) et B (Bn…B1 B0) et produit le résultat S (Sm…S1
S0) selon l'indication appliquée sur l'entrée C (Ck…C1 C0). Elle est
composée de circuits logiques tels que les additionneurs, soustracteurs,
comparateurs logiques…etc. Les opérations réalisées peuvent être soit
arithmétiques, S=A + B, S=A - B, S=A x B… ou logiques S=A OU B, S=A
ET B, S= A XOR B…

7
Notes de Cours : Calculateurs & Interfaçage Chapitre 01

Fig.1.2. UAL : Unité arithmétique & logique

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.

Fig.1.3. Chronogramme d’un signal d’horloge


La mémoire centrale quant à elle contient :
 Le programme à exécuter : une suite d’instructions élémentaires.
 Les données à traiter.
L’unité d’entrées/sorties : C’est l’intermédiaire entre le calculateur et le
monde extérieur.
L’unité de transfert est le support matériel de la circulation des données. Les
échanges d’ordres et de données dans le calculateur sont synchronisés par
l’horloge.
Remarque : un circuit intégré qui inclut une UCT, de la mémoire et des
périphériques est un microcontrôleur.
Définition :

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 ».

II. Organisation de la mémoire centrale :


La mémoire peut être vue comme un ensemble de cellules ou cases contenant
chacune une information : une instruction ou une donnée. Chaque case
mémoire est repérée par un numéro d’ordre unique : son adresse.

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).

Fig.1.4. Représentation simplifiée d’une mémoire

III. Circulation des données dans un calculateur :


La réalisation matérielle des ordinateurs est généralement basée sur
l’architecture de VON NEUMANN.

Dans les premiers ordinateurs, les différents pas nécessaires à l'exécution


d'une tâche, le programme, étaient directement câblés dans l'unité de contrôle.
Un grand progrès a été effectué lorsque le programme, comme les données, a
été codé et stocké dans la mémoire principale: c'est l'architecture appelée de
Von Neumann. La fonction de l'unité de contrôle est de lire le programme de la
mémoire, décoder les instructions et commander leur exécution. Effectuer un
changement de programme revient désormais à une simple réécriture de la
mémoire.

9
Notes de Cours : Calculateurs & Interfaçage Chapitre 01

Fig.1.5. Architecture de Von Neumann pour les calculateurs

Le microprocesseur échange des informations avec la mémoire et l’unité d’E/S,


sous forme de mots binaires, au moyen d’un ensemble de connexions appelé
bus.
Un bus permet de transférer des données sous forme parallèle, c’est-à-dire en
faisant circuler n bits simultanément.
Les microprocesseurs peuvent être classés selon la longueur maximale des
mots binaires qu’ils peuvent échanger avec la mémoire et les E/S :
microprocesseurs 8 bits, 16 bits, 32 bits, ...
Le bus peut être décomposé en trois bus distincts :
Le bus d’adresses permet au microprocesseur de spécifier l’adresse de la
case mémoire à lire ou à écrire ;
Le bus de données permet les transferts entre le microprocesseur et la
mémoire ou les E/S ;
Le bus de commande transmet les ordres de lecture et d’écriture de la
mémoire et des E/S.

Fig.1.6. Représentation simplifiée d’une mémoire

Remarque : les bus de données et de commande sont bidirectionnels, le bus


d’adresse est unidirectionnel : seul le microprocesseur peut délivrer des
adresses (il existe une dérogation pour les circuits d’accès direct `a la mémoire,
DMA).

IV. Description matérielle d’un microprocesseur :

10
Notes de Cours : Calculateurs & Interfaçage Chapitre 01
a. Définition :

Le microprocesseur, noté aussi M.P.U. (Microprocessor unit) ou encore


C.P.U. (Central Processing Unit) est un circuit intégré complexe appartenant
à la famille des VLSI (Very large scale intégration) capable d'effectuer
séquentiellement et automatiquement des suites d'opérations élémentaires.
Il a pour rôle les deux fonctions suivantes :
Le traitement des données :

On parle d'unité de traitement. Cette fonction est dédiée à l'U.A.L. Elle


concerne la manipulation des données sous formes de transfert,
opérations arithmétiques, opérations logiques....
Le contrôle du système :

Cette fonction se traduit par des opérations de décodage et d'exécution


des ordres exprimés sous forme d'instruction.
b. Puissance d’un microprocesseur :

La notion de puissance est la capacité de traiter un grand nombre


d'opérations par seconde sur de grands nombres et en grande quantité.
Intrinsèquement la puissance se joue donc sur les trois critères suivants:
La longueur des mots : le format des données et instructions (on parle de
largeur du bus des données).
Le nombre d'octets : le nombre de mots que le microprocesseur peut
adresser (on parle de largeur du bus des adresses).
La vitesse d'exécution des instructions : liée à la fréquence de
fonctionnement de l'horloge de synchronisation exprimée en MHz puis en
GHz.
c. Description :

Un microprocesseur se présente sous la forme d’un circuit intégré muni


d’un nombre généralement important de broches.
Exemples :

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

Fig.1.7. Représentation simplifiée d’une mémoire

V. Fonctionnement d’un microprocesseur :


Un microprocesseur exécute un programme. Le programme est une suite
d’instructions stockées dans la mémoire. Une instruction peut être codée sur
un ou plusieurs octets.
Une instruction peut être décrite comme suit :

Fig.1.8. Format d’une instruction

Exemple :

Ces instructions stockées dans la mémoire sont rangées de façon à simplifier


leur appel :

12
Notes de Cours : Calculateurs & Interfaçage Chapitre 01

Fig.1.9. Rangement des instructions dans une mémoire

Pour exécuter les instructions dans l’ordre établi par le programme, le


microprocesseur doit savoir à chaque instant l’adresse de la prochaine
instruction à exécuter. Le microprocesseur utilise un registre contenant cette
information. Ce registre est appelé pointeur d’instruction (IP : Instruction
Pointer) ou compteur d’instructions ou compteur ordinal.

Exemple :

13
Notes de Cours : Calculateurs & Interfaçage Chapitre 01
Fig.1.10. Pointage des instructions par le IP

Remarque : la valeur initiale du pointeur d’instruction est fixée par le


constructeur du microprocesseur. Elle vaut une valeur bien définie à chaque
mise sous tension du microprocesseur ou bien lors d’une remise à zéro (reset).
Pour savoir quel type d’opération doit être exécuté (addition, soustraction, ...),
le microprocesseur lit le premier octet de l’instruction pointée par le pointeur
d’instruction (code opératoire) et le range dans un registre appelé registre
d’instruction. Le code opératoire est décodé par des circuits de décodage
contenus dans le microprocesseur. Des signaux de commande pour l’UAL sont
produits en fonction de l’opération demandée qui est alors exécutée.
Remarque : pour exécuter une instruction, l’UAL utilise des registres de travail,
exemple : l’accumulateur, registre temporaire recevant des données
intermédiaires.
Pendant que l’instruction est décodée, le pointeur d’instruction est incrémenté
de façon à pointer vers l’instruction suivante :

Fig.1.11. Illustration du passage d’une instruction vers la suivante

puis le processus de lecture et de décodage des instructions recommence. A la


suite de chaque instruction, un registre du microprocesseur est actualisé en
fonction du dernier résultat : c’est le registre d’état du microprocesseur.
Chacun des bits du registre d’état est un indicateur d’état ou flag (drapeau).

Fig.1.12. Registre d’état du microprocesseur Z80

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 :

Fig.1.13. Registre d’état du microprocesseur Z80

Pour exécuter le programme contenu dans la mémoire centrale, le séquenceur


du microprocesseur exécute lui-même un programme appelé micro-code,
contenu dans une mémoire morte à l’intérieur du microprocesseur.
Le séquenceur est dirigé par une horloge qui délivre un signal de fréquence
donnée permettant d’enchaîner les différentes étapes de l’exécution d’une
instruction :

15
Notes de Cours : Calculateurs & Interfaçage Chapitre 01

Fig.1.14. Chronogramme de l’exécution d’une instruction

Chaque instruction est caractérisée par le nombre de périodes d’horloge (ou


microcycles) qu’elle utilise (donnée fournie par le fabricant du
microprocesseur).
Exemple : horloge à 5 MHz, période T = 1/f = 0,2 μs. Si l’instruction s’exécute
en 3 microcycles, la durée d’exécution de l’instruction est : 3 × 0,2 = 0, 6 μs.

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 :

Fig.1.15. structure complète simplifiée d’un microprocesseur

16
Notes de Cours : Calculateurs & Interfaçage Chapitre02

16
Notes de Cours : Calculateurs & Interfaçage Chapitre02

Chapitre 02 : Les mémoires


I. Mémoires ROM & RAM:
On distingue deux types de mémoires :
o Les mémoires vives : (RAM Random Access Memory) mémoires
volatiles. Elles perdent leur contenue en cas de rupture
d’alimentation (mise hors tension). Elles sont utilisées pour
stocker temporairement des données ou des programmes. Elles
peuvent être lues et écrites par le microprocesseur.
o Les mémoires mortes : (ROM Read only memory) mémoires non
volatiles. Conçues pour conserver leur contenu même en cas de
mise hors tension. Elles ne peuvent être que lue par le processeur
(pas de possibilité d’écriture). Elles généralement utilisées pour
stocker des données ou des programmes de manière définitive.
Les mémoires sont caractérisées par leur capacité : nombre total de case
mémoire contenues dans un boitier mémoire.

II. Schéma fonctionnel d’une mémoire :

Fig. 2.1. Schéma fonctionnel d’un boitier mémoire

Le nombre de ligne d’adresses dépend de la capacité de la mémoire : n lignes


d’adresses permettent d’adresser 2n cases mémoires. Exemple : 8 bits
permettent d’adresser 28 ou 256 cases ; 16 bits d’adresses permettent
d’adresser 65536 ou 64 K mots etc…

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.

III. Interfaçage microprocesseur / mémoire :


L’interfaçage microprocesseur/mémoire est réalisé par une simple connexion
des : bus de données, bus d’adresse, et signaux de commande.

Fig.2.2. Connexion entre un microprocesseur et une mémoire


Une représentation plus condensée donne :

18
Notes de Cours : Calculateurs & Interfaçage Chapitre02

Fig.2.3. Représentation condensée de l’interconnexion µpro - mémoire

IV. Chronogramme de lecture/écriture en mémoire :


Une caractéristique importante des mémoires est leur temps d’accès : c’est le
temps qui s’écoule entre l’instant où l’adresse de la case mémoire est présentée
sur le bus d’adresses et celui où la mémoire place la donnée demandée sur le
bus de données. Ce temps varie entre 5 ns (voire moins pour les mémoires dites
rapides) et 300 ns (pour les mémoires dites lentes).
Une vue du chronogramme nous permet de bien comprendre les différents
cycles nécessaires à la lecture à partir d’une mémoire :

19
Notes de Cours : Calculateurs & Interfaçage Chapitre02

Fig.2.4.Représentation par chronogramme d’une lecture à partir d’une mémoire


Si le temps d’accès d’une mémoire est supérieur à une période d’horloge
(mémoire lente), le microprocesseur peut accorder à la mémoire un temps
supplémentaire (une ou plusieurs périodes d’horloge), à la demande de celle-
ci. Ce temps supplémentaire est appelé Temps d’attente (WT/WS).

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

Fig.2.6.Représentation par chronogramme d’une écriture à partir d’une mémoire

V. Connexion de plusieurs boitiers mémoire sur le bus d’un


microprocesseur :
Les boitiers mémoire possèdent une broche notée CS : Chip Select. Lorsque
cette broche est active (état bas), le circuit peut être lu ou écrit. Lorsqu’elle est
inactive (état haut), le circuit est exclu du service : ses broches de données D0
à D7 passent à l’état de haute impédance : tout se passe comme si la mémoire
était déconnectée du bus de données du microprocesseur, d’où la possibilité de
connecter plusieurs boîtiers mémoire sur un même bus : un seul signal CS doit
être actif à un instant donné pour éviter les conflits entre les différents boîtiers.
Pour la connexion de trois boîtiers mémoire d’une capacité de 8Ko chacun, il
nous faut 13 bits pour l’adressage. Sachant que le processeur dispose quant à
lui de 16 bits d’adresse en tout, on pourra alors allouer les trois bits restants
pour la sélection de ces trois boitiers mémoire.
Dans un même boîtier, une case mémoire est désignée par les bits d’adresses
A0 à A12 :

21
Notes de Cours : Calculateurs & Interfaçage Chapitre02

Fig.2.7.Connexion de 3 boitiers mémoire avec un microprocesseur


Dans un même boîtier, une case mémoire est désignée par les bits d’adresses
A0 à A12 :
A12 A11 …… A2 A1 A0 A12 A11 …… A2 A1 A0
0 0 …… 0 0 0 1 1 …… 1 1 1
0000 H 1FFF H
Pour atteindre la mémoire no1, il faut mettre à 1 le bit A13 et à 0 les bits A14
et A15.
La plage d’adresses occupée par cette mémoire est donc :
A15 A14 A13 A12 … A0 A15 A14 A13 A12 … A0
0 0 1 0 … 0 0 0 1 1 … 1
2000 H 3FFF H
De même, pour la mémoire no2, on doit avoir A13 = 0, A14 = 1 et A15 = 0 d’où
la plage d’adresses occupée cette mémoire :
A15 A14 A13 A12 … A0 A15 A14 A13 A12 … A0
0 1 0 0 … 0 0 1 0 1 … 1
4000 H 5FFF H
Pour la mémoire no3, on doit avoir A13 = 0, A14 = 0 et A15 = 1 d’o`u la plage
d’adresses occupée cette mémoire :
A15 A14 A13 A12 … A0 A15 A14 A13 A12 … A0
1 0 0 0 … 0 1 0 0 1 … 1
8000 H 9FFF H

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 :

Fig.2.8. Cartographie ou mapping des adresses vu par le microprocesseur

VI. Décodage d’adresses :


Les trois bits A13, A14 et A15 utilisés précédemment fournissent en fait 8
combinaisons, de 000 à 111, d’où la possibilité de connecter jusqu’à 8 boîtiers
mémoire de 8 Ko sur le bus. La mémoire totale implantée devient donc de 8 ×
8 Ko = 64 Ko : valeur maximale possible avec 16 bits d’adresses.
Pour cela, il faut utiliser un circuit de décodage d’adresses, dans ce cas : un
décodeur 3 vers 8.
La figure suivante montre l’interfaçage de 8 blocs mémoire via un décodeur
74138.

Fig.2.9. Utilisation d’un décodeur 74138 pour l’interfaçage multi-mémoires

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

Le nouveau mapping donne alors :

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

Fig.2.10. Cartographie ou mapping des adresses après utilisation du décodeur

VII. Décodage d’adresses :


Jusqu’à la fin des années 1970, on utilisait des mémoires à tores magnétiques,
lentes et de faibles capacités.
Actuellement, on n’utilise plus que des mémoires à semi-conducteurs.

Fig.2.11. Les différents types de mémoires

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