Les Mémoires

Electronics, Computer Architecture · course

Voir tous les documents en électronique et automatique

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