« Fonctionnement d'un ordinateur/Les architectures à parallélisme de données » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 90 :
 
La gestion des accès mémoire est assez hétéroclite, la façon de faire étant différente selon le architectures.
 
* Sur certains processeurs assez anciens, les instructions vectorielles lisent et écrivent en mémoire RAM, sans passer par des registres : on parle de '''processeurs memoire-mémoire'''.
 
|[[File:Processeur vectoriel mémoire-mémoire.png|centre|vignette|upright=2|Processeur vectoriel mémoire-mémoire.]]
 
* Les '''processeurs à registres vectoriels''' possèdent des registres vectoriels dédiés aux vecteurs.
 
|[[File:Processeur vectoriel à registres vectoriels.png|centre|vignette|upright=2|Processeur vectoriel à registres vectoriels.]]
{|
|[[File:Processeur vectoriel mémoire-mémoire.png|Processeur vectoriel mémoire-mémoire.]]
|[[File:Processeur vectoriel à registres vectoriels.png|Processeur vectoriel à registres vectoriels.]]
|}
 
Généralement, les données d'un vecteur sont placées les unes à coté des autres en mémoire et l'instruction peut utiliser le mode d''''adressage absolu'''. Avec le mode d'adressage absolu, les instructions ont juste à préciser l'adresse mémoire d'un vecteur, qui n'est alors qu'un paquet de données contigües en mémoire. Par exemple, si mon processeur manipule des vecteurs de 8 octets, chaque instruction d'accès mémoire utilisant le mode d'adressage absolu va lire ou écrire dans des blocs de 8 octets. L'adresse de départ de ces blocs n'est soumise à aucune contrainte d'alignement, ce qui n'est pas le cas sur les processeurs modernes utilisant des jeux d'instructions comme le SSE, le MMX, etc. La raison à cela est que gérer des accès non alignés en mémoire rend les circuits de lecture/écriture en mémoire plus complexes. En contrepartie, ces contraintes compliquent l'utilisation des instructions vectorielle. Par exemple, un compilateur aura plus de mal à utiliser des instructions de calcul vectorielle en présence de contraintes d'alignement.