Adressage mémoire

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 29 décembre 2014 à 11:44 et modifiée en dernier par Verbex (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

L’adressage mémoire est une technique électronique et informatique permettant à certains composants d'accéder à la mémoire. Une adresse mémoire est un identifiant qui désigne une zone particulière de la mémoire physique où des données peuvent être lues et stockées, temporairement (mémoire vive) ou de façon durable (mémoire non volatile). Cet identifiant est usuellement un nombre entier.

Utilisation

L'immense majorité des programmes informatiques fait usage de la mémoire lors de son exécution. Le stockage temporaire d'une donnée (une variable) implique l'accès à la mémoire vive : dans ce cas, c'est le processeur qui écrit sur le bus. Lors d'un accès à un composant DMA (par exemple un disque dur), c'est le contrôleur DMA qui, cette fois, agit directement sur le bus système.

Adressage direct

L'interface utilisée est dans la plupart des cas un bus, c'est-à-dire un ensemble de fils dédiés à une utilisation particulière (ici l'accès à la mémoire).

Sur N fils, on peut coder 2N valeurs. Ainsi, en précisant la largeur du bus d'adresse, en nombre de bits (ou fils), on indique la capacité mémoire maximum accessible par le processeur (la taille de son espace d'adressage).

En plus des fils codant l'adresse, la mémoire vive nécessite au moins un fil supplémentaire indiquant l'opération qui sera faite sur la mémoire : lecture ou écriture.

Il est possible de multiplexer le bus d'adresse avec le bus de données, en mettant en commun un certain nombre de fils, sachant qu'un signal supplémentaire devra être généré pour savoir comment interpréter les valeurs binaires circulant sur ces fils (adresse ou données). Un exemple de processeurs avec bus multiplexé : les 8086 ou 8088 d'Intel.

Un bus d'adresse trop petit, donc un adressage mémoire restreint, a été l'un des facteurs déterminants dans la disparition de certaines lignées d'ordinateurs. Par exemple, le PDP-10, une machine 36 bits dont l'espace d'adressage n'était que de 18 bits (256 kibioctets), n'a jamais eu de successeur. La gamme de mini-ordinateurs PDP-11 de DEC a été remplacée par les VAX, ce qui est d'ailleurs l'abréviation de Virtual Address Extension.

Adressage indirect

On parle d'adressage indirect lorsque, pour accéder à une donnée, on récupère son adresse dans une variable (ou segment de mémoire). C'est donc un adressage par référence au contenu de cette autre variable. L'adressage indirect est la méthode la plus pratique pour accéder séquentiellement à des données stockées de façon régulière, par un mécanisme de boucle : on peut ainsi balayer toute une zone de données (composantes d'un vecteur, d'un tableau, d'un arbre etc.) en faisant varier un indice qui détermine la position.

Mécanisme voisin de l'adressage indirect, la substitution de commande consiste à donner les arguments d'une commande implicitement, en les définissant comme le résultat de l'exécution d'une autre commande. Ce mécanisme est omniprésent dans les langages de script.

Articles connexes