« Les cartes graphiques/Les processeurs de shaders » : différence entre les versions
Contenu supprimé Contenu ajouté
Ligne 66 :
===Les registres des processeurs de shaders===
Un processeur de shaders contient beaucoup de registres, sans quoi il ne pourrait pas faire son travail efficacement.
===Les anciennes cartes graphiques : beaucoup de registres spécialisés====
Sur les processeurs de vertices des anciennes cartes 3D, il y avait bien quelques registres généraux, sans fonction préétablie, mais ils étaient secondés par un grand nombre de registres spécialisés assez nombreux. Certains étaient spécialisés dans le stockage des vertices, d'autres dans le stockage des résultats de calculs, d'autres dans le stockage de constantes, etc. Les registres spécialisés des processeurs de vertices peuvent se classer en plusieurs types :
* des ''registres généraux'', qui peuvent mémoriser tout type de données ;
* des ''registres d'entrée'', qui réceptionnent les vertices ou pixels ;
Ligne 78 ⟶ 79 :
[[File:Geforce 3 architecture vertex unit.PNG|centre|vignette|upright=2.0|Architecture d'un processeur de shaders avec accès aux textures.]]
====Les cartes graphiques modernes : une hiérarchie de registres généralistes====
De nos jours, les processeurs de shaders utilisent une hiérarchie de registres. On trouve d'abord quelques '''bancs de registres locaux''' (''Local Register File''), directement connectés aux unités de calcul. Ces derniers sont reliés à un banc de registres plus gros, le '''banc de registre global''', qui sert d'intermédiaire entre la mémoire RAM et les bancs de registres locaux. La différence entre les bancs de registres locaux/globaux et un cache vient du fait que les caches sont souvent gérés par le matériel, tandis que ces bancs de registres sont gérés via des instructions machines. Le processeur dispose d'instructions pour transférer des données entre les bancs de registres ou entre ceux-ci et la mémoire. Leur gestion peut donc être déléguée au logiciel, qui saura les utiliser au mieux.
|