Article de reference

Processeur (informatique)

En informatique , un processeur est un composant électronique ( circuit numérique ) qui effectue des opérations sur une source de données externe, généralement de la mémoire ou ...

En informatique , un processeur est un composant électronique ( circuit numérique ) qui effectue des opérations sur une source de données externe, généralement de la mémoire ou un autre flux de données. Ce terme désigne fréquemment l' unité centrale de traitement ( CPU ), le processeur principal d'un système. Il peut également désigner d'autres processeurs spécialisés tels que les unités de traitement graphique (GPU), les unités de traitement quantique (QPU) et les processeurs de signaux numériques (DSP). La conception et le développement d'un processeur sont complexes et longs car ils nécessitent la définition de ses exigences fonctionnelles (opérations qu'il doit effectuer) et non fonctionnelles (contraintes physiques et de performance). Il est généralement conçu pour traiter des données numériques , sous la forme d'un circuit intégré utilisant des matériaux semi-conducteurs , contenant des transistors organisés en portes logiques , elles-mêmes organisées en sections telles que des blocs IP ou des cœurs, qui peuvent être interconnectés.

des réseaux complexes de tubes à vide . Ces premiers ordinateurs étaient volumineux, coûteux et énergivores, ce qui limitait leur utilisation aux grandes organisations. Le Manchester Mark 1 représente l'un des premiers processeurs au sens moderne du terme, puisqu'il s'agit du premier ordinateur à usage général capable de stocker des programmes.

L'invention du transistor a engendré une innovation rapide dans l'industrie informatique. Les transistors ont permis de concevoir des processeurs plus denses et plus économes en énergie, réduisant ainsi la taille des ordinateurs, qui occupaient auparavant des pièces entières, à celle d'un appareil tenant sur un bureau. La puissance de traitement des processeurs a doublé chaque année grâce à la miniaturisation des transistors et à l'intégration d'un plus grand nombre d'entre eux dans un seul ordinateur ; ce phénomène est connu sous le nom de loi de Moore . Les premiers transistors utilisés en informatique mesuraient quelques millimètres de diamètre ; aujourd'hui, les transistors modernes peuvent être produits avec une taille inférieure à 5 nm.

La miniaturisation des transistors a permis d'intégrer un processeur complet sur quelques circuits intégrés monolithiques ( puces ) ; ces processeurs ont été appelés microprocesseurs . Le premier microprocesseur monopuce disponible pour le grand public fut l' Intel 4004 , qui regroupait tous les circuits logiques nécessaires à un ordinateur sur une seule puce. Il a permis d'intégrer la puissance de calcul à des appareils grand public tels que les calculatrices numériques et les flippers. L' Intel 8008 fut le premier microprocesseur monopuce utilisé comme processeur à usage général. Les processeurs modernes ont adopté ce format, utilisant des microprocesseurs monopuces discrets, dotés de mémoire externe et d'interfaces d'entrée/sortie.d'algorithmes courants utilisés dans les puces de traitement. Malgré l'utilisation de divers outils pour faciliter le développement des processeurs, le processus de conception global demeure long et complexe en raison de sa complexité.

Schéma d'un processeur avec mémoire connectée utilisant l'architecture de von Neumann\

Les exigences fonctionnelles d'un processeur sont ses opérations et son environnement d'exécution. Les opérations correspondent à l'ensemble des instructions que le processeur suit pour exécuter sa fonction principale. Elles sont écrites à l'aide de différents algorithmes, avec des opérandes variables . Le temps d'exécution du processeur, le type de sous-système de mémoire qui lui est connecté et les entrées/sorties (E/S) sont autant d'exemples d'environnements d'exécution. Ces environnements influencent la manière dont les opérations, au sein des exigences fonctionnelles, sont écrites.

Le profilage des algorithmes permet d'identifier les détails critiques d'un algorithme qui influent sur son optimalité. La comparaison du profilage entre le code prototype et les architectures de processeurs existantes permet de mieux comprendre les applications algorithmiques. Les algorithmes des processeurs existants sont généralement conçus pour optimiser des fonctions principales légèrement différentes ; par conséquent, toutes les opérations utilisées dans cette référence ne sont pas nécessairement nécessaires dans le prototype. Si le développeur se fie uniquement à la référence, le code final risque d'être inefficace.

L'architecture organisationnelle d'un processeur désigne l'ensemble ordonné des instructions de base qui lui permettent d'accomplir sa tâche. Il existe de nombreuses façons d'organiser ces instructions pour atteindre un objectif donné, mais l'efficacité du code s'en trouve modifiée. L'utilisation d'opérations sur le noyau, d'estimateurs de performance automatisés ou de générateurs de simulateurs peut aider le développeur à déterminer l'architecture organisationnelle la plus efficace pour le processeur.

Une fois le prototype final du processeur créé, il est implémenté dans différents matériels et logiciels. L'implémentation matérielle requiert une modélisation de haut niveau, notamment la conversion des blocs fonctionnels en un langage de description matérielle et leur agencement sur la puce du processeur afin d'optimiser ses performances et sa surface. L'implémentation logicielle est la partie la plus complexe du processus de conception. Elle implique le débogage des problèmes matériels et logiciels qui empêchent le processeur de fonctionner de manière cohérente avec le logiciel.

Types

Processeur

Processeur fabriqué par Intel (2023)

Les unités centrales de traitement (CPU) sont les processeurs principaux des ordinateurs et sont responsables de l'exécution des instructions des programmes. Elles effectuent des tâches de calcul à usage général grâce à deux composants principaux : l' unité arithmétique et logique (UAL), qui effectue tous les calculs mathématiques et les comparaisons logiques, et l' unité de contrôle (UC), qui gère les activités de la CPU. La ​​plupart des CPU suivent l' architecture de von Neumann , où les instructions et les données partagent un espace mémoire commun. Cette architecture exécute les programmes selon un cycle dans lequel la CPU récupère d'abord l'instruction en mémoire, l'UC la décode, puis l'instruction est exécutée, et enfin l'UAL stocke le résultat en mémoire. Les CPU fonctionnent en étroite collaboration avec la mémoire principale, les périphériques de stockage et les périphériques matériels via la carte mère. Ensemble, ces composants permettent aux CPU d'exécuter les instructions qui font fonctionner l'ordinateur, ce qui les rend essentiels dans des domaines tels que l'électronique grand public , l'automobile , l'analyse de données et la virtualisation .

GPU

NEC μPD7220 – Un GPU fabriqué par NEC en 1981

Les unités de traitement graphique (GPU) sont des composants présents dans de nombreux appareils tels que les ordinateurs portables, les PC, les smartphones, les consoles de jeux, les supercalculateurs, les robots, les terminaux de point de vente (TPV), les systèmes de calcul haute performance (HPC), les systèmes de visualisation ou les jeux haut de gamme. Hautement parallèles, elles sont conçues pour exécuter efficacement des opérations graphiques et sont utiles pour les jeux, l'apprentissage automatique, le montage vidéo et l'intelligence artificielle. Bien que les GPU aient été initialement destinés au traitement graphique, leurs domaines d'application se sont étendus au fil du temps et ils intègrent désormais une multitude de tâches, notamment en tant qu'élément matériel important pour l'apprentissage automatique .

DSP

Les processeurs de signaux numériques (DSP) sont des processeurs informatiques chargés du traitement des signaux numériques, notamment audio, vidéo et issus de capteurs. Les DSP sont conçus pour des performances prévisibles en temps réel grâce à deux caractéristiques clés : un temps d’exécution déterministe, qui garantit une vitesse d’exécution fiable, et une organisation de la mémoire permettant un accès simultané aux instructions et aux données. Programmables, les DSP conviennent à un large éventail d’applications, telles que le traitement du signal audio , la reconnaissance vocale , les télécommunications , le sonar , le radar , l’estimation de la densité spectrale , le traitement statistique du signal , le traitement d’images numériques , la compression de données , le codage vidéo , le codage audio , la compression d’images , le génie biomédical et la sismologie . L’application du calcul numérique au traitement du signal offre de nombreux avantages par rapport au traitement analogique.

QPU

L'unité de traitement quantique (UTQ) est le composant central d'un ordinateur quantique . L'UTQ traite l'information à l'aide de qubits qui constituent la puce quantique et sont intégrés aux systèmes de calcul haute performance (HPC) aux côtés des processeurs (CPU) et des processeurs graphiques (GPU). Les types de processeurs quantiques les plus courants sont les processeurs supraconducteurs , les processeurs photoniques , les processeurs quantiques à atomes neutres , les processeurs à ions piégés , les processeurs topologiques et les processeurs à points quantiques . Chacun présente des variations au niveau de son architecture, de son agencement, de sa fidélité et du nombre de qubits. Ces variations sont adaptées à des tâches spécifiques, notamment en termes de vitesse, de temps de cohérence, d'évolutivité, de compatibilité et de performance. Parmi les fabricants d'UTQ figurent IBM, D-Wave, Google et Rigetti.

DPU

Une unité de traitement de données (DPU) est un processeur informatique programmable qui intègre étroitement un processeur à usage général avec du matériel d'interface réseau.

NPU

Une unité de traitement neuronal (NPU), également connue sous le nom d' accélérateur d'IA ou de processeur d'apprentissage profond , est une classe d' accélérateur matériel spécialisé ou de système informatique conçu pour accélérer les applications d'intelligence artificielle et d'apprentissage automatique , y compris les réseaux neuronaux artificiels et la vision par ordinateur .