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

Contenu supprimé Contenu ajouté
Ligne 181 :
===La technique du ''chaining''===
 
CetteLa technique du pipeline peut encore être améliorée dans certains cas particuliers. Imaginons que l'on ait trois paquets : A, B et C. Pour chaque i-émeénième élément de ces paquets, je souhaite effectuer le calcul Ai<math>A_n +Bi×Ci. MonB_n processeur\times neC_n</math>. disposantEn pasthéorie, d'instructionil permettant defaudrait faire en une fois ce calcul, je dois utiliser deux instruction vectorielles : une d'addition,abord et une autre dela multiplication., Onstocker pourraitle penserrésultat quetemporaire l'on doit effecteur d'abordde la multiplication des paquets B et C, stocker le résultat dans un paquetregistre temporairevectoriel, etpuis effectuerfaire l'addition de ce tableau avec le paquet A. Mais en rusant un peu, on s’aperçoit qu'on peut simplifierutiliser le tout et utiliser notre pipeline plus correctementefficacement. Une fois que le tout premier résultatélèment de la multiplication du premier vecteur est connu, pourquoi ne pas démarrer l'addition immédiatement après, et continuer la multiplication en parallèle ? Après, tout les deux calculs ont lieu dans des ALUs séparés. Il s'agit de ce qu'on appelle le Vector Chaining.
 
Pour ce faire, on doit modifier notre pipeline de façon à ce que le résultat de chaque étape d'un calcul soit réutilisable au cycle d’horloge suivant. La sortie de l'unité de multiplication doit être connectée à l'entrée de l'ALU d'addition. Un processeur implémentant le chaining a toutes ses unités de calcul reliées entre elles de cette façon : la sortie d'une unité est reliée aux entrées de toutes les autres. Il s'agit de ce qu'on appelle le '''''Vector Chaining'''''.
[[File:Vector chaining.png|centre|vignette|upright=2|Vector chaining]]
 
[[File:Vector chaining.png|centre|vignette|upright=2|Vector chaining]]
Pour ce faire, on doit modifier notre pipeline de façon à ce que le résultat de chaque étape d'un calcul soit réutilisable au cycle d’horloge suivant. La sortie de l'unité de multiplication doit être connectée à l'entrée de l'ALU d'addition. Un processeur implémentant le chaining a toutes ses unités de calcul reliées entre elles de cette façon : la sortie d'une unité est reliée aux entrées de toutes les autres.
 
===Les unités de calcul parallèles===