Obligement - L'Amiga au maximum

Mercredi 22 novembre 2017 - 23:06  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Dossier : Mémoire cache, mémoire dynamique, mémoire statique
(Article écrit par Jérôme Pagès et extrait d'Amiga News - novembre 1991)


Qu'est-ce que la mémoire cache et à quoi ça sert ? Est-ce un synonyme de mémoire virtuelle ? Et à quoi sert le RAM Disk de l'Amiga ?

Malheureusement non, mémoire cache et mémoire virtuelle désignent bien des types de mémoire différents. Voici donc quelques explications sur les circuits mémoires et leurs utilisations qui permettront de mieux comprendre le sens de ces mots. Il faut distinguer dans le mot mémoire deux sens distincts, le sens physique ou électronique du terme (circuit mémoire dynamique, circuit mémoire statique, etc.) et le terme plus générique (mémoire centrale, mémoire cache ou mémoire virtuelle).

Tout d'abord, qu'appelle-t-on mémoire au sens physique ?

C'est un mécanisme électronique permettant de stocker un ensemble ordonné d'informations binaires. Chaque information (ou bit) peut prendre deux valeurs distinctes "0" ou "1" et a une place bien définie (une adresse) dans le circuit.

C'est la méthode de stockage qui fait les différences entre les mémoires. On peut distinguer deux grandes catégories : mémoire dynamique et mémoire statique.

Mémoire dynamique

Principe : 1 information (1 bit) = 1 transistor.

On utilise, en fait, un phénomène particulier aux transistors électroniques de type MOS ("la capacité parasite").

Écriture dans la mémoire : pour mémoriser une information, on commence par indiquer au circuit le numéro de la case mémoire qui nous intéresse, ensuite on décharge la capacité du transistor correspondant, puis on la charge pour stocker un "1" sinon on la laisse telle quel pour stocker un "0".

Lecture dans la mémoire : pour lire la valeur d'une information, on donne d'abord le numéro de la case mémoire (comme pour l'écriture). Ensuite, le principe électronique utilisé contraint le circuit à d'abord décharger la capacité du transistor correspondant, ce qui permet de savoir si cette capacité était chargée (1 en mémoire) ou déchargée (0). Avant de recommencer toute opération, on doit remettre la case mémoire dans l'état dans lequel elle était avant la lecture, et donc refaire un chargement de capacité si le bit lu était un 1.

Avantages des mémoires dynamiques : une intégration très importante ; dans un petit circuit de quelques mm2 les techniques utilisées peuvent rassembler plusieurs millions de transistors. De plus, ces circuits mémoires sont nettement moins chers que les autres. Prix du 41256 (c'est son nom) pour l'Amiga : environ 30 FF (il en faut 16 pour 512 ko). Il faut savoir que les prix peuvent varier beucoup (il y a quelque temps, ils valaient quatre fois plus...).

Inconvénients : la charge des capacités ne tient pas longtemps et il faut donc "rafraîchir" très souvent la mémoire. En conséquence, le temps d'accès à l'information (temps à attendre pour avoir l'information) est relativement long et fait perdre du temps au microprocesseur. Cependant, il existe des circuits plus ou moins rapide (le prix est en fonction de cette rapidité). Pour l'Amiga, par exemple, le temps d'accès est de l'ordre d'une centaine de nanosecondes (une nanoseconde = un milliardième de seconde).

Mémoire statique

Principe : 1 information = 1 bascule.

Pour ces mémoires, pas besoin de rafraîchissement. La lecture et l'écriture sont directes et se font donc plus rapidement.

Avantage : ces mémoires sont très rapides, elles ne font pas attendre le microprocesseur. Le temps d'accès est seulement de quelques nanosecondes.

Inconvénient : elles sont plus volumineuses, et leur coût est très élevé.

Le choix

Ces deux catégories de circuits vont donc être utilisées en fonction de leurs avantages.

Sur l'Amiga en configuration normale, la mémoire centrale est constituée par des composants de type dynamique (coût moindre). Par contre, lorsque l'on utilise des cartes accélératrices, tout est mis en oeuvre pour faire attendre le moins possible le microprocesseur. L'utilisation de mémoire dynamique est donc à éviter. Deux solutions sont envisagées généralement :
  • Utiliser seulement de la mémoire statique comme mémoire centrale. C'est de loin la solution la plus onéreuse.
  • Utiliser tout de même de la mémoire dynamique comme mémoire centrale et placer un cache (mémoire intermédiaire constitué de mémoires statiques) entre le microprocesseur et la mémoire centrale
Mémoire

Mémoire cache

Fonctionnement du cache

Lorsque le microprocesseur demande l'accès à une information particulière de la mémoire centrale, ce n'est pas seulement celle-ci qui est transférée dans la mémoire cache mais un bloc de mémoire entier (souvent quelques dizaines d'octets).

Le cache contient ainsi plusieurs blocs qui sont remplis au fur et à mesure des besoins du microprocesseur. Quand tous les blocs sont remplis, un système de contrôle du cache détermine quel bloc va être écrasé par le nouveau (le bloc le plus ancien dans le cache par exemple).

Ce principe utilise le phénomène de localité (spatiale et temporelle ; eh oui Albert, même dans l'informatique !) des références faites par le microprocesseur à la mémoire. En d'autres termes, il suffit de faire un petit peu de programmation langage machine pour se rendre compte qu'un programme à tendance à faire appel à des adresses mémoires qui ont été récemment utilisées (localité temporelle dans les boucles, variables locales ou piles), ou encore des adresses qui sont proches les unes des autres (localité spatiale dans la succession des adresses pour un même programme par exemple).

Grâce à ce cache, le microprocesseur a moins souvent accès à la mémoire lente. Cependant, le système perd du temps à recopier le bloc complet. Il faut donc définir une taille de bloc raisonnable. De plus, le prix de l'ensemble du cache est lié directement au nombre de blocs dans celui-ci, il faut donc là aussi veiller à faire une bonne évaluation du nombre requis (c'est le travail du concepteur).

Le cache permet de limiter les pertes de temps en accès mémoire. Mais pour concevoir des architectures de machines vraiment efficaces les concepteurs se sont rendu compte qu'il fallait éviter le gaspillage de celle-ci, ce qui nous amène à parler de la mémoire virtuelle.

Mémoire virtuelle

Les concepteurs utilisent le système de mémoire virtuelle pour gérer au mieux la mémoire centrale quand des programmes nécessitent un espace susceptible d'être supérieur à celui de la mémoire centrale ou qu'il faut partager cette mémoire entre plusieurs programmes (cas du multitâche de l'Amiga qui n'utilise pas cette méthode en configuration normale).

Concrètement mais sans rentrer dans le détail, le programme bénéficie d'un champ d'adressage très vaste qui est indépendant de l'adressage réel de la machine. Un contrôleur (circuit électronique spécialisé) traduit donc l'adresse virtuelle en adresse réelle et n'alloue que la mémoire qui est réellement utilisée. Ce contrôleur est chargé d'éviter le gaspillage de mémoire ou l'émiettement de celle-ci.

Adresse mémoire

Il est possible de combiner l'utilisation d'un cache et l'adressage virtuel.

Conclusion

Le cache donne l'illusion de travailler avec une mémoire plus rapide. De même, le mécanisme de la mémoire virtuelle donne l'illusion de disposer d'une mémoire plus grande. Que nous réservent alors les futures machines ?

Le RAM Disk de l'Amiga permet de disposer de la mémoire libre (non réservée par une tâche) comme support de fichiers au même titre qu'une disquette. On peut donc y créer des fichiers, les lire normalement, les modifier et les détruire comme on peut le faire sur une disquette.

L'avantage évident du RAM Disk est la très grande rapidité de ces manipulations puisque l'accès à ces fichiers est direct, pas besoin d'aller chercher l'information sur le support magnétique d'une disquette et de la recopier dans la mémoire (elle y est déjà !). Le mode d'accès au RAM Disk est le même que pour les autres unités DF0:, DF1: ou DH0: par exemple.

Pour bénéficier du RAM Disk dans le Workbench, il suffit d'y faire allusion dans le startup-sequence de la disquette Workbench (commande "List RAM:" par exemple). Une icône apparaîtra alors sur l'écran du Workbench.

L'utilisation du RAM Disk est fortement conseillée car elle peut être synonyme de gain de temps énorme. Mais attention, votre Amiga a lui aussi besoin de mémoire donc faites la chasse au gaspi !


[Retour en haut] / [Retour aux articles]