Qu'est-ce qu'un coprocesseur ?

Au cœur de chaque ordinateur, vous trouverez le CPU. La Unité centrale de traitement est un matériel critique. Il exécute le système d'exploitation et tous les programmes de votre ordinateur. Les processeurs sont conçus comme des processeurs à usage général. De par leur nature même, ils sont censés être capables de tout gérer.

Cependant, les processeurs ne sont pas très bons pour certains types de charges de travail car leur matériel à usage général ne peut pas être optimisé pour des tâches spécifiques sans perdre sa nature à usage général. Ou devenir désespérément grand, complexe et coûteux. De plus, n'importe quel processeur ne sera capable de gérer qu'une quantité de données et de traitement à la fois. Un coprocesseur est une deuxième unité de traitement explicitement conçue pour prendre en charge l'un de ces scénarios ou les deux.

Un coprocesseur est simplement une seconde unité de traitement au sein d'un ordinateur. Dans certains scénarios, il peut s'agir d'un processeur physique double sur la même carte mère que sur certains serveurs. Dans les scénarios de calcul haute performance et de supercalcul, ces coprocesseurs à usage général peuvent également être trouvés sur des cartes d'extension PCIe. Le coprocesseur se concentre souvent sur une tâche spécifique plutôt que sur un processeur à usage général. Ces processeurs spécifiques à une tâche peuvent être connectés directement à la carte mère ou inclus sur une carte fille séparée comme une carte d'extension PCIe.

Les premiers coprocesseurs

Les premiers coprocesseurs étaient relativement simples. Ils ont été conçus pour gérer les E / S ou les entrées et sorties des ordinateurs centraux. Le problème était que le traitement des E/S était une tâche très chronophage pour le CPU. La tâche de traitement proprement dite, cependant, était relativement simple. C'était donc assez bon marché pour fabriquer un processeur pour le gérer. Alors que le coprocesseur prenait efficacement les E/S, le processeur devait émettre des paramètres d'E/S simples, libérer du temps processeur et augmenter les performances du système.

L'IBM PC d'origine comprenait un coprocesseur arithmétique en virgule flottante en option. Les processeurs de l'époque effectuaient ce type de calcul dans un logiciel qui était lent mais suffisamment fonctionnel pour les rares cas où il était nécessaire pour la plupart des utilisateurs. Cependant, la conception assistée par ordinateur ou les systèmes de CAO utilisaient constamment ce type de mathématiques. En séparant l'arithmétique à virgule flottante sur un coprocesseur, non seulement les vitesses ont été augmentées en cas de besoin, grâce à l'accélération matérielle, mais les utilisateurs qui n'en avaient pas besoin pouvaient économiser de l'argent en achetant un système sans le coprocesseur.

En fin de compte, ces coprocesseurs simples avaient leurs fonctions intégrées dans l'architecture du CPU. Ceci est en partie le résultat naturel du développement continu du processeur, mais est également lié aux difficultés à poursuivre la synchronisation simple à mesure que les vitesses d'horloge du processeur augmentent. Alors que ces processeurs et coprocesseurs fonctionnaient assez bien à 75 MHz, il y aurait un retard massif, une consommation d'énergie et des problèmes d'interférences radio aux fréquences GHz d'aujourd'hui. Ces problèmes ont nécessité des systèmes de signalisation plus complexes entre les processeurs et les coprocesseurs modernes.

GPU

Le GPU ou Graphics Processing Unit est probablement la forme la plus connue du coprocesseur. Ils sont conçus pour être optimisés pour la charge de travail hautement parallélisable du rendu graphique. Les processeurs peuvent effectuer cette tâche dans un logiciel ou avec une puce graphique intégrée. Cependant, pour offrir les hautes performances des GPU modernes, ils devraient intégrer l'intégralité de la puce GPU dans la puce CPU.

Cela augmenterait considérablement le coût et la complexité d'un processeur et augmenterait également considérablement la production de chaleur. Les puces graphiques intégrées occupent déjà une bonne partie de l'espace du processeur. Ils peuvent réduire la vitesse globale du processeur en raison de leur production de chaleur.

Carte son

Historiquement, les processeurs pouvaient traiter les signaux audio mais n'étaient pas fantastiques. Les artefacts audio et statiques qui en résultent ont conduit à la création de cartes son. Ceux-ci fourniraient des ports d'entrée et de sortie audio et effectueraient le traitement audio réel sur la carte son elle-même. Cela a considérablement augmenté l'isolation du signal et la qualité de la sortie sonore. Bien que certaines cartes son existent encore, elles sont totalement inutiles dans les ordinateurs modernes en tant que traitement du son intégré directement sur les cartes mères. Les processeurs sont bien meilleurs qu'à l'apogée des cartes son.

NPU

Un type de coprocesseur relativement récent est le NPU ou Neural Processing Unit. Ceux-ci sont conçus pour exécuter ou accélérer les charges de travail d'IA. Les NPU à un niveau élevé sont assez similaires aux GPU, juste avec des optimisations spécifiques aux charges de travail AI. Au fur et à mesure que les performances de la charge de travail de l'IA deviennent davantage une chose que les utilisateurs normaux utilisent sur les smartphones et les ordinateurs, celles-ci deviendront probablement plus courantes.

Coprocesseurs intégrés

Les processeurs modernes intègrent de nombreuses formes de coprocesseurs directement dans la matrice ou l'architecture globale du processeur. Cela peut être facilement vu avec des puces graphiques intégrées gravées dans le même silicium que le reste du processeur. Cependant, le traitement réel n'est pas effectué par les cœurs du processeur. Dans les processeurs Ryzen d'AMD, il existe également une matrice d'E/S distincte qui gère la communication entre les chiplets et le reste de l'ordinateur. Certains appareils mobiles modernes sont également équipés de NPU pour le traitement de l'IA.

Conclusion

Un coprocesseur est un processeur secondaire, tertiaire, quaternaire, etc., dans un dispositif informatique où la CPU est le processeur principal. Il n'y a pas de limite au nombre de coprocesseurs dans un système. Cependant, le support logiciel/matériel, la dissipation thermique, l'espace physique et le coût joueront tous un rôle.

Un coprocesseur gère des tâches pour le processeur qui améliorent les performances globales à la fois dans la tâche spécifique en l'exécutant dans un environnement optimisé. mode, et dans d'autres tâches, en éliminant le besoin pour le processeur de gaspiller sa puissance de traitement en exécutant la tâche de manière non optimisée mode. Au fil du temps, de nombreux coprocesseurs sont intégrés dans les processeurs à mesure que la technologie progresse. Cependant, les limites de puissance et thermiques restreignent cela dans certains scénarios.