De la logique à la mémoire

TODO: Du contenu supplémentaire sera rajouté ici pour parler de la mémoire.

La construction de la mémoire

Les transistors, les portes logiques et leur représentation en tables de vérités, permettent de manipuler des 0 et des 1 au niveau physique. Tant qu’un courant électrique se déplace dans nos circuits, nous sommes capables de le transformer, de le laisser passer ou de l’arrêter, dans le but d’exprimer des portes «ouvertes» ou des portes «fermées» et donc des nombres binaires.

Mais comment faire pour stocker cette information?

Pour comprendre comment la mémoire des ordinateurs fonctionne, il faut commencer par la classer en deux grandes catégories. La mémoire volatile, et la mémoire non volatile. La mémoire volatile s’efface quand la machine et éteinte. La mémoire non volatile, elle, persiste. Si votre smartphone s’éteint alors que vous êtes en train de retoucher une photo, ces retouches disparaissent. Elles étaient stockées sur la mémoire volatile. Par contre, au moment où vous avez sauvegardé ces retouches, elles s’inscrivent dans la mémoire non volatile.

Les verrous informatiques

Pour stocker de l’information avec un circuit logique, il faut utiliser une autre technique que ce que nous avons fait jusqu’à maintenant, où toutes les sorties dépendent exlusivement et immédiatement des entrées. Regardons ce qui se passe avec ce circuit, par exemple: c’est une simple porte OU, dont l’une des entrées est en fait sa propre sortie.

Au début, les deux entrées de la porte valent 0, comme sa sortie. Essayez de faire passer l’entrée \(X\) à 1: vous verrez que la sortie \(Z\) passera à 1 elle aussi, comme il s’agit d’une porte OU. Mais comme \(Z\) est aussi relié à l’autre entrée de la porte, nous avons maintenant un circuit que nous ne pouvons plus modifier la sortie: même si \(X\) passe de nouveau à 0, l’autre entrée reste à 1 et suffit donc pour que \(Z\) valent maintenant 1 indéfiniment. Nous sommes obligés de remettre le circuit complètement à zéro (l’équivalent de débrancher la prise de courant et de la rebrancher) pour obtenir à nouveau un 0 sur la sortie \(Z\).

Assurément, ce circuit n’est pas très intéressant: il se bloque dans un état sans retour possible. Serait-ce possible de construire un circuit un peu plus élaboré qui nous permettrait de choisir la valeur de sa sortie et de la conserver? Ces circuits existent en effet et sont à la base du stockage de l’information dans les microprocesseurs. On appelle ces circuits des verrous. Examinons le circuit ci-dessous: c’est le verrou dit «S-R», pour set/reset, en anglais.

Dans l’exemple ci-dessus, à partir du moment où on a «ouvert» la porte S (donc qu’on a «set», c’est à dire «établi» l’état initial), la sortie Q est 1. Si on avait une ampoule à cet endroit, elle serait allumée. Maintenant, même si on «ferme» la porte S, Q reste bloqué sur 1. On a donc créé une forme de mémoire. La seule façon «d’éteindre» la sortie Q est d’ouvrir R (donc de «reset», c’est à dire réinitialiser le système).

Voici une vidéo qui illustre ce principe de verrou S-R.

Pour aller plus loin, une vidéo de résumé qui parle aussi des bascules et des registres:

Pour aller plus loin

Dans le jeu en ligne «Nandgame» (https://nandgame.com), on construit petit à petit un ordinateur complet juste avec, à la base, des portes NON-ET. Elles sont la particularité, avec la porte NON-OU, de pouvoir simuler toutes les autres portes (y compris un inverseur).