Différents types de mémoires

Accueil
du Site

Précédent -Suivant

Mémoires volatiles

On appelle "mémoires volatiles" celles dont le contenu n'est plus fiable dès que leur courant d'alimentation est coupé.
Celles qui, au contraire, conservent les contenus
s'appellent "mémoires persistantes" ou "mémoires mortes" ou ROM (Read Only Memory)

Le sigle RAM (Random Access Memory) s'applique souvent aux mémoires volatiles.
On le traduit souvent par "mémoires à accès aléatoire".
Le mot "aléatoire" est une mauvaise traduction de l'anglais "Random".
Il signifie plutôt que la RAM étant constituée d'emplacements,
on a accès par adresse à n'importe lequel de ces emplacements.

Ce type d'accès s'oppose à celui des mémoires dites "associatives"
accessibles par descripteur de contenu.
Voir plus bas

C'est malheureusement les mémoires volatiles qui sont surtout utilisées dans les ordinateurs
car les technologies actuelles ne permettent pas d'atteindre les mêmes rapports performances/prix et capacité/volume
avec des mémoires persistantes.
Il en résulte que la plupart des ordinateurs utilisent principalement des mémoires volatiles.


Mémoires non volatiles

La présence de ce type de mémoires, quoique plus chères à mêmes performances et même capacité que les mémoires volatiles, est absolument indispensable dans un ordinateur.
Un programme minimum (BIOS) placé dans une mémoire non volatile permet en effet au moment du démarrage d'activer les fonctions élémentaires : clavier, écran et surtout accès à la disquette ou au disque dur pour charger en mémoire volatile le système d'exploitation.

Dans certains systèmes informatiques industriels, autonomes ou embarqués, les programmes sont contenus dans des mémoires volatiles plutôt que dans des disquettes ou disques durs lourds, fragiles, consommant beaucoup d'énergie.

Plusieurs types de mémoires non volatiles sont actuellement commercialisés : le choix par les clients se fait en fonction du prix qui dépend fortement de la quantité commandée.

ROM à masque
Le constructeur incorpore le programme dans le circuit intégré suivant les instructions du client.
Ce procédé est le moins cher lorsque l'on commande de grandes quantités de mémoires.
Le mémoires ainsi programmées ne peuvent plus être modifiées.

Programmateurs de mémoires
La plupart des mémoires ROM dont nous allons parler ci-dessous sont "programmables".
Leurs contenus, généralement des octets, peuvent être programmés grâce à un appareil appelé programmateur.
C'est un dispositif sur lequel elles peuvent être manuellement connectées grâce à des supports à force d'insertion nulle, le temps de leur programmation.
Des programmes tournant sur PC permettent d'envoyer au programmateur les codes à enregistrer sous forme de fichiers d'octets à travers une liaison RS 232.
Certains modèles de programmateurs permettent d'enregistrer plusieurs mémoires à la fois ; intéressant en mode production.
Il est possible de programmer tout ou partie de la mémoire.
Les programmateurs de mémoires du commerce sont généralement prévus pour tous types de mémoires... ou presque.

ROM à fusibles
La valeur de chacun des bits de la mémoire est liée à la présence ou l'absence d'un fusible particulier dans son circuit interne.
Vendues vierges, (tous fusibles intacts) elles sont programmables grâce à des programmateurs procédant par destruction des fusibles appropriés à l'intérieur du circuit intégré.
Une fois programmées, ces ROM ne peuvent plus être modifiées (sauf cas particulier où aucun fusible n'est à restituer).
Encore employées dans certains automatismes, elles déclinent vers l'obsolescence.

ROM OTP (One Time Programming)
Ces ROM sont vendues vierges et programmables par programmateur approprié.
Une fois programmée elle ne peut plus être modifiée (sauf si seulement des bits à un doivent être rectifiés à zéro)
Ces mémoires concurrencent les ROM à masque dans les petites quantités.

EPROM (UVPROM) (Erasable and Programmable ROM) - Photo d'une EPROM : -
Ces mémoires sont programmables par des programmateurs appropriés. Photo d'un programmateur :

Leur particularité est qu'elles sont effaçables par exposition à des rayons Ultra Violets (UV).
Photo d'un effaceur d'EPROM à UV

A cet effet, elles sont dotées d'une fenêtre circulaire transparente placée au-dessus de la puce.
Une fois effacée, une EPROM peut être reprogrammée.
Il est conseillé de ne pas dépasser un certain nombre de cycles programmation-effacement.
Voir constructeur.
Ces mémoires s'avèrent intéressantes lors de la phase de mise au point d'un programme sur système autonome.
Elles permettent également de changer le programme BIOS d'une carte par téléchargement sur le site du constructeur.
Si la mémoire de la carte n'est pas une mémoire flash, on pourra la remplacer par une EPROM.

EEPROM (Electricaly Erasable and Programmable ROM)
Il s'agit de mémoires non volatiles effaçables et re-programmables par impulsions électriques.
Or, ces impulsions sont des tensions généralement beaucoup plus élevées que celles des signaux habituels de la carte, et elles ont des temps d'écriture nettement plus longs que celles d'une mémoire volatile.
Résultat : pour les reprogrammer, ou on se sert d' un programmateur externe, ou on crée un dispositif complexe sur la carte qui ne fonctionnera de toute manière pas à la vitesse normale d'exécution.

Lorsque les mémoires flash ou CMOS n'existaient pas, ce type de mémoire a été employé pour enregistrer des paramètres variables devant survivre à la coupure de courant. Ce fut le cas d'anciennes cartes PC où on enregistrait le "setup" : caractéristiques des disques durs entre autre.

FLASH
Ces mémoires sont persistantes et peuvent être écrites aux vitesses habituelles des bus.
Elles sont aussi plus chères que les statiques ou dynamiques à performances égales.
La tendance actuelle est à placer le BIOS des cartes mères sur des mémoires flash pour faciliter les mises à jour téléchargeables par le réseau.


Mémoires volatiles

Rappelons que ces mémoires perdent leur contenu dès que leur courant d'alimentation est coupé

On peut y distinguer les mémoires statiques et les mémoires dynamiques

Les mémoires statiques
s'apparentent tout à fait au modèle qui vous a été donné dans les bases.(c.f. )
Tant que le courant n'est pas coupé les informations restent dans la mémoire.

Elles sont principalement utilisées dans les systèmes industriels.
En effet, bien qu'elles soient plus volumineuses et coûteuses, à performances égales, que les mémoires dynamiques, elles offrent l'avantage sur ces dernières de ne pas nécessiter un système de gestion complexe qui grève les performances et complique la sécurité de l'accès.

Mémoires CMOS
Ce sont des mémoires volatiles construites en technologie CMOS.
Les électroniciens reconnaîtront là une technologie à faible consommation de courant.
Ces mémoires ne consomment du courant qu'au moment précis où elles sont écrites ou lues.Ce qui représente des instants très courts.
Dans l'état de simple mémorisation elles ne consomment pas de courant du tout. Mettons quelques pico Ampères.
Ceci permet de leur adjoindre une pile de petite taille qui sauvegarde leurs données en évitant la coupure de leur courant d'alimentation.

Elles ont utilisées sur les cartes mères des ordinateurs pour sauvegarder les paramètres de configuration initiale de l'ordinateur.
Par exemple la date et l'heure sont retenues dans ce type de mémoire à laquelle on adjoint un compteur d'incrémentation appelé "horloge temps réel".
D'autres paramètres concernant la configuration des disques durs etc. peuvent être retenues dans ce type de mémoire. L'ensemble de ces informations s'appelle le "setup" de l'ordinateur.

Attention : ne pas confondre les paramètres de "setup" qui résident dans la CMOSRAM et le programme BIOS qui réside dans la ROMBIOS !

N.B. On ne peut pas envisager sérieusement de conserver les données sur des autres RAM volatiles en leur adjoignant une batterie de sauvegarde.
Un calcul rapide montre qu'il faudrait des batteries énormes pour un temps de sauvegarde très cou
rts.


Mémoire dynamiques DRAM (Dynamic RAM)

Photo de DRAM sur barrette

Ces mémoires ont la particularité de perdre la fiabilité de leurs contenus au bout de quelques millisecondes après que ceux-ci aient été écrits ou lus.
Autrement dit, si on veut la conserver intacte, il faut constamment lire et réécrire la totalité des emplacements.

C'est une tâche considérable. Elle n'est pas dévolue au microprocesseur, car cela obérerait gravement la vitesse d'exécution du programme.
Elle requiert un contrôleur de mémoire dynamique qui "rafraîchit" régulièrement l'ensemble de la mémoire.

Ce contrôleur peut être plus ou moins intégré à la mémoire elle-même.
Il ne procède pas octet par octet, mais, grâce à l'organisation de ma mémoire en rangs et colonnes (rows & columns)
tout un rang peut être rafraîchi en une seule opération.

Ce type de mémoire ne pose pas de problème dans les PC car bien géré par les cartes mères grâce à des circuits de gestion appropriés (chipset).

Il n'en est pas de même dans les systèmes autonomes (embarqués) où elle complique la conception des cartes et menace la sécurité de fonctionnement,
notamment dans les applications en temps réel. On préfère dans ce cas les mémoires statiques.

FPM Fast Page Memory
Anciennes mémoires dynamiques. Lentes comparées aux technologies actuelles.

EDO DRAMS - Extended Data Out -
Perfectionnement du micro-système électronique des sorties permettant de ne pas attendre la fin de cycle d'écriture pour envoyer les données suivantes.

SDRAMS Synchronous Dynamic RAMS
Le mode d'accès décrit à la page traitant des principes des mémoires (c.f. ) s'appelle le mode asynchrone.

D'une manière générale, un accès asynchrone à un système quelconque fournissant ou recevant des données (peut être une mémoire, une imprimante, un modem...)
consiste à lui envoyer un signal de sollicitation auquel le système le système interpellé s'exécute après un temps donné.
Ce temps dépend entre autre de la technologie du dispositif et de sa qualité de fabrication.
Un temps d'accès est garanti par la fiche technique du dispositif asynchrone.
Si ce temps ne correspond pas au chronogramme du système qui sollicite ses services, on peut s'attendre à des dysfonctionnements.

Un dispositif synchrone fonctionne d'une manière subtilement différente.
Le système demandeur (par exemple le processeur) et le dispositif commandé (par exemple la mémoire synchrone) sont tous deux soumis à un même signal d'horloge. Le fonctionnement interne de l'un et l'autre sont réglés par cette horloge. Par exemple, si l'un des dispositifs comporte des portes logiques, celles-ci sont individuellement prépositionnées par un signal de préparation et fournissent les informations toutes ensemble (en synchronisme), au même moment : celui du top horloge. (Dans un dispositif à logique interne asynchrone, les portes se positionnent les unes après les autres, le retard est très pénalisant et de plus dépend du nombre de protes traversées).
Les schémas de logiques synchrones sont certes plus complexes, mais la rapidité est beaucoup plus élevée. Voir un exemple de système de compteurs synchrones à la page :
"Logique Séquentielle Synchrone".

MODE BURST
(burst = salve)
On constate que dans le flux de données échangés avec les mémoires, les mêmes séquences se reproduisent assez souvent. Si au lieu de lire une mémoire adresse par adresse, on la lit rang par rang, c'est à dire une suite d'emplacements contigus
, on augmente la probalilité d'acquérir une séquence d'un seul coup au lieu de la décomposer en autant de lectures que d'octets.

Mémoires associatives

Les mémoires associatives fonctionnenet sur un tout autre mode que les mémoires RAM à accès dit "aléatoire".
Les mémoires associatives enregistrent à la fois descontenus et de courtes informations décrivant chacun des contenus.
On appelle ces informations des descripteurs.
Ces contenus peuvent être des pages Web, des fichiers, des dessins, des séquences de code programme, etc.

Bien entendu, comme ces mémoires n'ont pas une capacité infinie - elles ont plutôt une capacité moindre que celles des RAM classiques -
on ne peut pas enregistrer dans ces mémoires autant de contenus que l'on veut. Si on insiste, toutefois, le nouveau contenu et son descripteur
remplace le plus âgé des contenus et le descripteur correspondant. Ces derniers sont perdus. Mais çà n'a pas beaucoup d'importance
dans l'usage habituel que nous décrirons bientôt.

Lorsqu'on souhaite récupérer un contenu donné on envoie d'abord son descripteur à la mémoire.
Si elle possède effectivement ce contenu, le mémoire est capable de le régurgiter très vite, beaucoup plus vite qu'une mémoire classique.

Insistons sur le fait que ces mémoires, qui ont apparemment un fonctionnement très complexe, sont beaucoup plus rapides d'accès que
les mémoires classiques. Leur inconvénient est leur faible capacité pour un prix abordable.

On s'en sert en électronique neuronale pour simuler les comportements des neurones et ouvrir ainsi la voie à une informatique
très avancée.

Lien : http://www.ifrance.com/bebene/inte.htm

Caches

Un point faible des mémoires classiques (RAM, EPROM, DRAM etc ) des mémoires dites à accès aléatoire : Random Access Mémories,
est la lenteur du processus d'écriture et de lecture : temps d'accès. Voir cours sur l'Unité Centrale :

Les mémoires cache, de type "associatives" comme décrit ci-dessus sont plus rapides d'accès.

Voici comment on les utilise :

  • On dispose ces mémoires cache le plus près possible du processeur. Certaines sont même à l'intérieur du processeur (Caches internes)
    ceci pour diminuer le temps de récupération de l'information.
  • Lorsque le processeur enregistre une séquence d'information en mémoire, il le fait parallèlement dans les RAM classiques présentes sur la carte
    et dans la mémoire cache. Ce qui ne fait pas perdre de temps puis que les enregistrement sen font en même temps.
  • Lorsque le processeur a besoin d'une séquence en mémoire, il demande au cache si par hasard il ne la posséderait pas déjà.
  • Si oui, le processeur récupère la séquence dans le cache ce qui se fait incomparablement plus vite que dans la mémoire RAM classique.
  • Sinon, le processeur la demande à la mémoire et, en même temps, l'enregistre sur le cache. Ce qui ne fait pas perdre de temps.

Le lecteur doit se demander si le precessus décrit est bien sérieux. Car enfin, le cache semble exiger un travail supplémentaire du processeur
au lieu de l'allèger, comme c'était le but initial.

En fait, c'est là qu'interviennent les lois du hasard : on constate que les mêmes séquences reviennent souvent identiques à elles-mêmes.
Un programme comporte souvent des boucles qui ne sont que des cycles d'instructions identiques se déroulant un très grand nombre de fois.
Dans ce type de séquences, le cache est bien supérieur à la mémoire RAM classique.
L'expérience montre que l'utilisation de caches augmente considérablement la vitesse d'exécution des programmes.
Bien entendu on peut écrire sur mesure des programmes sans boucles et aux codes non répétitifs pour rendre le cache inutile donc nuisible.
Mais dans le cas des programmes habituels, surtout ceux qui comportent beaucoup de calculs - graphique - vidéo - compréssion - etc. -
les caches se montrent très efficaces pour l'accélération de l'exécution des programmes.

On distingue :

  • le cache primaire - cache interne - cache L1 - : mémoire fondue à l'intérieur du processeur,
  • le cache secondaire - cache externe - cache L2 - : mémoire placée très près du processeur sur la carte

Pourquoi plusieurs caches ?

Toius d'abord, plus la capacité de la mémoire cache est grande, plus il est rapide.
En effet, nous avons dit que si on enregistre dans le cache au delà de sa capacité, les informations les moins récentes
sont éffacées pour faire place aux nouvelles.
Si le processeur a besoin de plus de séquences de programme que le chache ne peut en contenir il perdra beaucoup de temps
à effacer puis enregistrer les mêmes séquences.

Mais un cache primaire ne peut pas avoir une très grande capacité du fait qu'il est interne au processeur.
Le coût des processeurs augmente déjà considérablement en fonction de la capacité du cache interne.

Dès lors on utilise un cache externe, moins bien placé, certes, car l'information est placée plus loin du processeur.
Donc moins rapide. Toutefois, il est plus rapide de par son fonctionnement que les méméoires RAM de la carte mère.

Plus les mémoires sont proches du processeur, plus elles sont rapides mais moindre est leur capacité.
Tout est question de compromis. Voyez-vous même le prix des différentes solutions et vous comprendrez
pourquoi on ne peut pas encore remplacer les RAM par des caches.


Orientation

Précédent -Suivant
Sommaire
Mémoires
Types de mémoires
Mémoires magnétiques
Unité centrale
ALU
Sélection d'adresses
Multiplexage
Contrôle de flux
Transferts de données
Architectures matérielles
Sommaire

du Site