« Adressage mémoire » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Verbex (discuter | contributions)
Verbex (discuter | contributions)
Ligne 21 : Ligne 21 :
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 [[Référence (programmation)|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 [[Structure de contrôle#Boucles|mécanisme de boucle]] : on peut ainsi balayer toute une zone de données (composantes d'un [[Vecteur (structure de données)|vecteur]], d'un [[Tableau (structure de données)|tableau]], d'un [[Arbre enraciné|arbre]] etc.) en faisant varier un [[Indice#Repérage|indice]] qui détermine la position.
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 [[Référence (programmation)|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 [[Structure de contrôle#Boucles|mécanisme de boucle]] : on peut ainsi balayer toute une zone de données (composantes d'un [[Vecteur (structure de données)|vecteur]], d'un [[Tableau (structure de données)|tableau]], d'un [[Arbre enraciné|arbre]] etc.) en faisant varier un [[Indice#Repérage|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]].
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 ([[Tube (shell)|pipe]]) est omniprésent dans les [[langages de script]].


== Articles connexes ==
== Articles connexes ==

Version du 7 février 2018 à 22:10

L’adressage mémoire est, en électronique et informatique, la façon dont sont accédées des données stockées en mémoire. Une adresse mémoire est un nombre entier naturel (rarement une autre sorte d'identifiant) qui désigne une zone particulière de la mémoire, ou juste le début d'une zone. Le plus souvent, une donnée peut être lue ou écrite. La mémoire peut être temporaire (mémoire vive) pour le travail ou au contraire durable (mémoire non volatile) pour le stockage.

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 (pipe) est omniprésent dans les langages de script.

Articles connexes