La légende des 64 Mo
On présente souvent la limite des 64Mo comme une barrière infranchissable
derrière laquelle règnent le désordre et le chaos. Ceux qui oseraient la franchir en
subiraient les conséquences avec une machine devenue subitement anémique... On va
tâcher ici de faire la part des choses.
La mémoire du système : Cache et mémoire principale
Nous ne parlons ici que des plates-formes les plus
répandues, celles basées sur les système Pentium de Intel®.
Ces systèmes ont deux types de mémoires, la mémoire cache et la
mémoire principale.
La mémoire principale collecte les instructions et les données pour les application et
les systèmes d'exploitation installés sur votre PC. La mémoire principale, comme son
nom l'indique, est le circuit primaire pour effectuer ces opérations. La mémoire cache
est similaire à la mémoire principale mais plus petite et beaucoup plus rapide. Pour
accéder à l'information, la mémoire cache requiert moins de cycles d'horloge. On
dénombre deux types de mémoire cache (parfois plus sur d'autres systèmes). Le cache de
niveau 1 (L1) est inclus dans le processeur tandis que le cache de niveau 2 (L2) est plus
généralement localisé sur la carte mère. Bien évidemment, rien n'est aussi simple et
les plus récents processeurs peuvent également avoir un cache de niveau 2 intégré.
Pour reprendre un image de la documentation Intel, prenez un charpentier. Il dispose de
plusieurs outils pour accomplir son boulot. Les outils les plus fréquemment utilisés
sont à portée de main mais en petite quantité, disons sur sa ceinture. Les outils les
moins fréquemment utilisés, mais plus nombreux, sont dans la boîte à outils et donc
plus longs à atteindre. Ici, le charpentier c'est le processeur, la ceinture est la
mémoire cache et la boîte à outils est la mémoire principale.
La mise en cache (i.e."Cacheability" en anglais)
C'est ici qu'intervient la fameuse barrière des 64 Mo qui
fait dire tout et n'importe quoi.
Les systèmes d'exploitation et les applications utilisent la mémoire cache pour stocker
les instructions et les données sur lesquelles le processeur travaille ou est supposé
travailler dans un court laps de temps. De cette manière, le CPU fonctionne beaucoup plus
efficacement et le système s'en ressent. Cependant, le CPU ne se limite pas à accomplir
une seule et même tâche ce qui impose que les données mises en cache soient
réactualisées. Les informations nécessaires sont anticipées en fonctions des données
recueillie auprès de l'OS, des applications et des chipsets. Autrement dit, les outils
présent autour de la ceinture et dans la boîte à outils sont interchangeables. La
mémoire centrale adresse à la mémoire cache les outils qu'elle a en stocks et dont va
avoir besoin le CPU. Elle les échange contre ceux déjà présent dans la mémoire cache
mais qui ne s'avèrent plus nécessaires immédiatement.
Attention, suivez-moi bien : la partie des informations qui sont adressées de la
mémoire principale vers la mémoire cache est appelée la "mémoire cachable"
(je préfère le terme anglais, "memory cacheable", mais je n'ai pas la
traduction en français). Qu'advient-il du surplus ? De la partie de la mémoire qui n'est
pas adressée au cache ? Et bien l'information nécessaire au système sera directement
envoyée au CPU, sans passer par la mémoire cache, ce qui paradoxalement est beaucoup
plus lent.
La limite
Tous les systèmes ont une limite quant à la quantité maximale de mémoire
pouvant être mise en cache. Habituellement cette limite est de l'ordre de 64 Mo.
Théoriquement, et ça se confirme en pratique, avoir une mémoire principale supérieure
à 64 Mo, disons 128 comme cela devient de plus en plus fréquent avec les Pentium II et
Windows 98, implique une baisse globale des performances. Certains penseront qu'en
ajoutant plus de mémoire cache, disons en passant de 512ko à 1Mo, ils pourront faire
sauter le verrou. C'est faux.
Parce que la limite du cache ne dépend ni de la quantité de mémoire cache, ni de celle
de la mémoire principale. Ca dépend des spécifications du Chipset et du Tag RAM. En
gros, Tag Ram est une petite portion de la mémoire utilisée par le cache pour savoir à
quoi dans la mémoire les entrées des informations se réfèrent. En somme, c'est pour
reconnaître ses petits. La taille du Tag RAM peut contrôler quelle quantité de mémoire
principale peut être mise en cache.
A ce stade, je ne vais pas m'éterniser, mais illustrons ces propos d'un exemple :
vous avez 64 Mo de mémoire principale, 512 ko de mémoire cache composée de lignes de 32
octets (rappel : 1 octet=8bits consécutifs, un bit renfermant soit un 0 soit un 1). Je
veux dire par là qu'à chaque fois qu'une information passe par le cache, c'est un
transfert de 32 octets qui s'opère. Une ligne de cache contient des informations en
provenance d'une ou de plusieurs adresses. Enfin bref, 64 Mo de Ram signifie 26 lignes
d'adresses, soit les adresses A0 jusqu'à A25. Ca se décompose ainsi :
A0-A4 : pour spécifier l'octet dans la ligne de cache;
A5-A18 : spécifier la ligne de cache;
A19-A25 : soit 7bits pour dire au TagRAM quelle portion de la mémoire
utilise actuellement la ligne de cache. En fait 8 bits pour ce que l'on appelle le
"Dirty Bit" qui sert a contrôler l'adéquation des adresses en cache et celles
dans la mémoire principale en cas de changement.
Ajouter plus de mémoire conduira à solliciter une nouvelle adresse (A26) aux dépends du
TagRAM. Et augmenter la taille du TagRAM n'est pas une mince affaire sur les machines que
nous possédons, sans compter que l'opération n'est pas nécessairement promise au
succès pour d'autres raisons.
Bref, la véritable question qui nous préoccupe est de
savoir dans quelle proportion Windows va accuser le coup si l'on dépasse cette barrière
de 64Mo ? On dit généralement que c'est de l'ordre de 5 % et parfois plus. Cependant il
ne faut pas perdre de vue qu'un OS tel que Windows 98, présenté comme multitâches,
implique de nombreuses opérations simultanées. Vous avez souvent plusieurs applications
ouvertes. Avec 32 Mo, plus vous en ouvrirez et plus vite vous "planterez"
Windows. En passant à 128 Mo de RAM, vous limitez substantiellement les risques de
plantages du à l'épuisement de ressources. Moins vous aurez de mémoire physique, et
plus le système sollicitera la mémoire virtuelle, c'est-à-dire les accès aux disques.
Or, les accès aux disques seront toujours des centaines de fois plus lents qu'un accès
à la RAM même non cachée. Enfin, puisqu'il faut bien parler de limite, on
avouera qu'effectivement Windows 98 (tout comme Windows 95 et Windows Millenium)
est bridé en matière de RAM : la
limite maxi est de 512 Mo (voir
ici pour plus d'explications).
Mis en ligne le 30 octobre 1998 / Dernière modification : 22-11-2000