CHAPITRE II
LES MEMOIRES
Introduction
Le but de ce chapitre est de :
présenter les mémoires à semi-conducteur, en particulier les mémoires mortes, de façon à
comprendre leur fonctionnement et à les utiliser pour la réalisation de fonctions logiques.
constituer des blocs mémoires à partir des blocs mémoires élémentaires,
traiter le problème de décodage d’adresse dans les systèmes à microprocesseurs.
Une mémoire est un dispositif d’enregistrement, de conservation et de restitution de l’information.
les mémoires VIVES : ce sont des mémoires pour lesquelles on ne peut pas garantir l’intégrité
de l’information inscrite si entre temps il y a eu interruption de l’alimentation électrique.
Lorsqu’elles sont alimentées, elles peuvent être lues et écrites.
les mémoires MORTES : ce sont des mémoires pour lesquelles on inscrit l’information dans
leur structure matérielle. Elles conservent ainsi
l’information même en l’absence de
l’alimentation électrique. Cette classe est la plus adaptée pour être considérée comme un
circuit logique programmable. L’écriture appelée aussi programmation, se fait à l’aide d’un
dispositif spécial appelé programmateur.
Architecture et Microprocesseur
1
Organisation de la mémoire
1. Cellule élémentaire et mot mémoire
L’élément de base d’une mémoire à semi-conducteur est le bit, stocké dans une cellule mémoire,
appelée aussi point mémoire.
La cellule élémentaire d’une mémoire morte peut être assimilée à un interrupteur à semi-conducteur
constitué soit d’une diode soit de transistors.
Le cellule élémentaire d’une mémoire vive peut être assimilée à une bascule RS, JK ou D. Elle est
généralement du type D.
Chaque mot mémoire est contenu dans une case mémoire.
2. Bus d’adresse
Une mémoire contient plusieurs cases. Pour identifier chaque case, on lui attribue un numéro
appelé adresse. Cette adresse s’obtient par la combinaison binaire d’un ensemble de fils appelé
bus d’adresse.
Architecture et Microprocesseur
2
Lorsque l’on a une mémoire de n bits d’adresse :
sa capacité est C=2ncases
ses cases sont numérotées de 0 à 2n-1
son bus d’adresse est noté A
…….A
0
n-1
Lorsque C vaut 1024 cases soit 210 cases une mémoire de 1 kilo cases notée 1Kcases.
Lorsque C vaut 1024 Kilo cases 1024*1024 cases soit 220 cases une mémoire de 1 Méga cases
notée 1Mcases.
3. Bus de donnée
Pour mettre le contenu d’une case mémoire en relation avec l’extérieur, la mémoire dispose d’un
ensemble de fils appelé bus de donnée.
Architecture et Microprocesseur
3
Fonctionnement d’une mémoire
1. Notion de sélection d’une mémoire
Les mémoires sont conçues pour pouvoir être connectées ensemble sur un même bus de donnée. Il
faut donc éviter les conflits électriques entre des mémoires qui tenteraient de mettre en même
temps les données sur le bus commun.
Pour cela, le mémoire est dotée d’une entrée de sélection CS (Chip Select). Cette entrée permet de
déconnecter électroniquement du bus de donnée lorsqu' elle n’est pas sélectionnée.
Si CS = 0 la mémoire et sélectionnée et le bus de donnée interne peut être connecté au contenu
Publicité
de la case d’adresse An-1….A0.
Si CS = 1 la mémoire est déconnectée et le bus de donnée externe est en haute impédance.
Architecture et Microprocesseur
4
2. Notion de lecture d’une mémoire
Lire une mémoire consiste à transférer sur son bus de donnée externe le contenu d’une case
mémoire dont le numéro est placé sur le bus d’adresse.
La mémoire dispose d’une entrée notée OE : Output Enable (autorisation de sortie des données).
Cette entrée permet de donner l’ordre de lecture.
Si OE = 0 alors on autorise la sortie des données.
Si OE=1 alors il n’y a pas de lecture et le bus de donnée est en haute impédance.
La lecture effective n’a lieu que si la mémoire est sélectionnée (CS=0)
Architecture et Microprocesseur
5
3. Notion d’écriture mémoire
Ecrire dans une mémoire, on dit aussi programmer une mémoire, consiste à transférer la donnée
présente sur le bus de données dans le contenu de la case mémoire dont le numéro est présenté sur
le bus d’adresse.
La mémoire dispose d’une entrée notée WR par laquelle on donne l’ordre d’écriture.
Si WR=0 alors l’écriture est possible si bien sur la mémoire est sélectionnée (CS=0).
Si WR=1 alors il n’y a pas d’écriture.
Architecture et Microprocesseur
6
Architecture et Microprocesseur
7
Architecture et Microprocesseur
8
Architecture et Microprocesseur
9
Types de mémoire à semi-conducteur
1. Mémoires vives : RAM
Il existe deux types de mémoire vive :
la mémoire vive statique SRAM : elle est rapide et consommatrice d’énergie. L’élément de
base est du type de la bascule D.
La mémoire vice dynamique DRAM : elle est de grande capacité. L’élément de base est
équivalent à un condensateur.
La mémoire RAM n’est pas très utilisé pour la réalisation des systèmes logiques, car il faudrait
recharger leur contenu après chaque mise sous tension.
2. Mémoires mortes : ROM
Il existe plusieurs types de mémoire morte qui diffèrent par :
soit leur structure interne,
soit le nombre de reprogrammation possibles,
soit le mode d’effacement.
Architecture et Microprocesseur
10
Programmer une mémoire morte consiste à modifier son contenu (c’est une opération d’écriture).
Lorsqu’une mémoire n’est pas programmée, on dit qu’elle est vierge.
ROM (Read Only Memory) : elles sont programmables à la fabrication par le constructeur.
PROM (Programmable ROM) : elles sont programmables une seule fois par l’utilisateur.
EPROM (Erasable PROM)
: elles sont programmables plusieurs fois et effaçables par
exposition aux ultraviolets à travers une fenêtre réservée à cet effet. L’effacement est global; il
consiste à remettre tous les bits de la mémoire dans leur état de virginité. La programmation
nécessite une tension élevée (~12,5V) par rapport à la tension d’alimentation.
EEPROM (Electrically EPROM) : elles sont programmables plusieurs fois et effaçables
électriquement. L’opération d’écriture commence toujours automatiquement par l’effacement
Publicité
de la case puis se termine par l’écriture effective. La programmation d’une case dure environ
10ms.
Architecture et Microprocesseur
11
Flash EPROM (EPROM rapide en programmation) : elles sont programmables plusieurs fois et
effaçables électriquement. La différence avec les EPROM réside dans la séquence de
programmation et le mode d’effacement.
Les noms génériques sont :
pour les EPROM :
8 Koctets : 2764 ou 27C64
16 Koctets : 27128 ou 27C128
32 Koctets : 27256 ou 27C256
64 Koctets : 27512 ou 27C512
Elles sont organisées en mots e 8 bits. Les chiffres 64, 128, 256 et 512 représentent la capacité de
la mémoire exprimée en Kbits.
pour les EEPROM : leurs dénominations sont presque identiques à celle des EPROM, il suffit
de remplacer 27 par 28.
pour les flash EPROM : la lettre C est remplacée par F.
Architecture et Microprocesseur
12
Constitution de blocs mémoire :
Décodage d’adresse
Exemple : connexion de trois boitiers mémoire d’une capacité de 8 Ko chacun (13 lignes
d’adresses) sur un bus d’adresse de 16 bits.
Architecture et Microprocesseur
13
Dans un même boîtier, une case mémoire est désignée par les bits d’adresses A
0
à A
12
:
Pour atteindre la mémoire N°1 A
=1 et A
13
=A
15
=0 la plage d’adresses occupée par cette
14
mémoire est donc :
Pour la mémoire N°2 A
13
= 0, A
14
= 1 et A
15
= 0 la plage d’adresses occupée cette mémoire :
Pour la mémoire N°3 A
= 0, A
= 0 et A
= 1 la plage d’adresses occupée cette mémoire :
13
14
15
Architecture et Microprocesseur
14
Les trois bits A13, A14 et A15 fournissent en fait 8 combinaisons, 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 =
64 Ko : valeur maximale possible avec 16 bits d’adresses.
Publicité
Pour cela, il faut utiliser un circuit de décodage d’adresses : un décodeur 3 vers 8.
Architecture et Microprocesseur
15
Table de vérité du décodeur d’adresses :
Le mapping de la mémoire :
Architecture et Microprocesseur
16
Hiérarchie mémoire
L’ordinateur contient différents niveaux de mémoire, organisés selon une hiérarchie mémoire.
Mémoires internes : mémoires volatiles
Mémoires de stockage :
mémoires permanentes
Registres
N bits (32, 64)
1 nanoseconde
Mémoires Caches
Koctets
5 nanosecondes
Mémoires Centrales
Goctets
10 nanosecondes
Mémoires de masse
100 -200 Goctets
5 millisecondes
Architecture et Microprocesseur
17
contient les informations
les plus récemment accédées par
le processeur
Mémoire morte non
volatile (lecture): contient
l’amorce (boot) de
l’ordinateur
Registre
Mémoire
SRAM
Mémoire
DRAM
Mémoire
ROM
contient les informations
manipulées
couramment par le
processeur
Mémoire Vive, volatile (lecture/écriture) :
contient le code et les données
des programmes exécutés par le processeur
Architecture et Microprocesseur
18
La mémoire cache est une mémoire intermédiaire placée entre le processeur et la mémoire centrale
dont le temps d'accès est de 4 à 20 fois inférieur à celui de la mémoire centrale. Elle comporte un
nombre fini d’entrées.
Processeur
Registre
mémoire
cache
mémoire
centrale
Publicité
Architecture et Microprocesseur
19
1. Principe de localité
1. L'info cherchée est-elle dans le cache?
OUI Succès (a) : ramener l'info dans le
processeur.
NON Défaut (2) : chercher l'info dans
la mémoire centrale.
2. L'info est-elle en mémoire centrale ?
OUI Succès (b) : ramener l'info dans le
cache, puis dans le processeur (a)
NON Défaut
Architecture et Microprocesseur
20
2. Le cache en lecture
Si(A) présent Alors Charger processeur avec (A)
Sinon Charger cache avec (A) et ses voisines
Charger processeur avec (A)
FinSi
FinSi
Architecture et Microprocesseur
21
Si (A) présent Alors Charger processeur avec (A)
Sinon Charger cache avec (A) et ses voisines
Charger processeur avec (A)
FinSi
FinSi
Architecture et Microprocesseur
22
Si (A) présent Alors charger processeur avec (A)
Sinon charger cache avec (A) et ses voisines
charger processeur avec (A)
FinSi
FinSi
Architecture et Microprocesseur
23
3. Le cache en écriture
Si (A) présente Alors Modifier (A) dans le cache
Modifier (A) en mémoire principale
Sinon Modifier (A) en mémoire principale
FinSi
Architecture et Microprocesseur
24
Si (A) présente Alors Modifier (A) dans le cache
Modifier (A) en mémoire principale
Sinon Modifier (A) en mémoire principale
FinSi
Architecture et Microprocesseur
25
Si (A) présente Alors Modifier (A) dans le cache
Modifier (A) en mémoire principale
Sinon Modifier (A) en mémoire principale
FinSi
Architecture et Microprocesseur
26