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

Contenu supprimé Contenu ajouté
Ligne 103 :
* Les '''processeurs à registres vectoriels''' possèdent des registres vectoriels dédiés aux vecteurs.
 
{|
<gallery widths=400px heights=250px>
|[[File:Processeur vectoriel mémoire-mémoire.png|Processeur vectoriel mémoire-mémoire.]]
|[[File:Processeur vectoriel à registres vectoriels.png|Processeur vectoriel à registres vectoriels.]]
|}
</gallery>
 
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.