Pour commencer par le début, un ordinateur comporte trois parties principales :
- Un processeur qui exécute des instructions et effectue des calculs
- Une mémoire primaire qui contient des instructions et des données, directement adressables par le processeur.
- Des périphériques d'entrée/sortie utilisés pour communiquer avec l'environnement.
Focus sur (2) La mémoire primaire. Le terme "directement adressable" signifie qu'elle se conforme au bus mémoire du processeur, ainsi le processeur applique une adresse au bus d'adresse, éventuellement des données au bus de données et des signaux appropriés pour accéder à la mémoire. La mémoire stocke les données du processeur (en écriture) ou renvoie les données au processeur (en lecture) en temps voulu pour que le processeur les utilise.
Les mémoires secondaires comme les disques durs sont considérées comme des périphériques d'entrée/sortie car il y a des opérations plus complexes impliquées que ce qui est câblé dans le processeur.
Les premiers ordinateurs (avant les semi-conducteurs) avaient différents types de mémoires. Les choix courants étaient les lignes à retard et les mémoires à tambour, ces dernières étant un tambour magnétique tournant à grande vitesse, un peu comme les disques durs le sont aujourd'hui. La mémoire à tambour était mécaniquement maladroite et ne pouvait contenir que quelques kilo-mots d'information, mais elle était facile à interfacer. Lorsque le processeur avait besoin d'un certain emplacement dans la mémoire, il attendait que le tambour tourne dans la bonne position, puis lisait ou écrivait un mot dans cette position. Bien entendu, le temps d'accès à la mémoire dépendait de l'emplacement actuel et de l'adresse demandée par le processeur. Le réordonnancement des blocs d'instructions et des données pouvait donner des accélérations énormes.
Plus tard, les ordinateurs étaient équipés de mémoires à noyau magnétique. Celles-ci pouvaient être accédées dans n'importe quel ordre et chaque mot de la mémoire pouvait être accédé avec le même délai. C'est à cette époque que le terme de mémoire vive (RAM) a été introduit pour indiquer que les mots de mémoire pouvaient être accédés dans un ordre arbitraire sans aucune pénalité de performance.
Les mémoires centrales étaient très coûteuses mais elles avaient l'avantage de conserver leur contenu lorsque la machine était éteinte. C'est-à-dire qu'une fois que vous aviez programmé un bootloader nécessaire pour démarrer le système, il y restait même après un cycle d'alimentation (note pour les intéressés : en fait, une cellule de mémoire centrale perd son contenu lorsqu'elle est lue, il y avait donc des circuits qui la réécrivaient après une lecture).
Avec les semi-conducteurs, il était possible de produire des mémoires de capacité et de vitesse beaucoup plus élevées à un coût moindre. Le terme RAM a été retenu pour les mémoires que le processeur pouvait lire et écrire dans un ordre arbitraire directement sur le bus mémoire. Mais ce type de mémoires perd son contenu lorsque l'alimentation est coupée.
Un ordinateur ne peut rien faire de significatif si le processeur n'est pas alimenté en instructions, ce qui nécessitait une mémoire contenant des instructions au démarrage de l'ordinateur.
Les anciens ordinateurs avaient souvent des programmes câblés et les fabricants de semi-conducteurs fournissaient l'équivalent en mémoires mortes (ROM). Le fabricant mettait en place une ligne de production de ROMs avec votre contenu spécifique. Ce procédé était assez coûteux et n'était pas à la portée d'une petite entreprise. Au lieu de cela, ils pouvaient utiliser des ROM programmables (PROM) qui contenaient des fusibles électroniques que vous faisiez sauter lors de la programmation. Ainsi, les PROM étaient programmables une seule fois. Plus tard, il y eut les PROM effaçables (EPROM) qui étaient généralement effacées en totalité par une forte lumière ultraviolette pendant une demi-heure environ, puis les PROM effaçables électriquement (EEPROM) qui étaient effaçables par mot par le processeur. La différence avec la RAM est que le temps pour une lecture est de l'ordre de la nanoseconde à la microseconde, alors qu'une écriture ou un effacement prend des millisecondes, soit au moins 1000 fois plus longtemps, elles ne sont donc pas utilisables comme mémoire de travail comme les mémoires RAM.
Notez que les deux mémoires que nous appelons RAM et ROM sont en fait des mémoires à accès aléatoire, donc utiliser le terme RAM uniquement pour la mémoire lisible/effaçable est un peu idiot. Un meilleur tem (également utilisé historiquement) serait RWM pour Read/Write Memory par opposition à Read Only Memory.
Nous avons probablement conservé le terme RAM parce qu'il est plus facile à dire que RWM.
La mémoire RAM est une mémoire de travail.