Comment les processeurs sont conçus et fabriqués: l'avenir des architectures informatiques

image

Malgré des améliorations continues et des progrès graduels dans chaque nouvelle génération, des changements fondamentaux ne se sont pas produits dans l'industrie du processeur depuis longtemps. Un grand pas en avant a été la transition du vide aux transistors, ainsi que la transition des composants individuels aux circuits intégrés. Cependant, après eux, aucun changement de paradigme grave de la même ampleur ne s'est produit.

Oui, les transistors sont devenus plus petits, les puces plus rapides et les performances ont augmenté des centaines de fois, mais nous commençons à voir la stagnation ...

Il s'agit de la quatrième et dernière partie d'une série d'articles sur le développement de CPU qui traite de la conception et de la fabrication de processeurs. À partir d'un niveau élevé, nous avons appris comment le code informatique est compilé en langage assembleur, puis en instructions binaires que le CPU interprète. Nous avons discuté de la conception de l'architecture du processeur et du traitement des instructions. Ensuite, nous avons examiné les différentes structures qui composent le processeur.

Un peu plus loin dans ce sujet, nous avons vu comment ces structures sont créées et comment des milliards de transistors fonctionnent ensemble à l'intérieur du processeur. Nous avons examiné le processus de fabrication physique de processeurs à partir de silicium brut. Nous avons appris les propriétés des semi-conducteurs et l'apparence de l'intérieur d'une puce. Si vous avez manqué l'un des sujets, voici une liste d'articles de la série:

Partie 1: Bases de l'architecture informatique (architectures de jeux d'instructions, mise en cache, pipelines, hyperthreading)
Partie 2: Processus de conception CPU (circuits électriques, transistors, éléments logiques, synchronisation)
Partie 3: Disposition et fabrication physique de la puce (VLSI et fabrication de silicium)
Partie 4: Tendances actuelles et orientations futures importantes en architecture informatique (mer d'accélérateurs, intégration tridimensionnelle, FPGA, Near Memory Computing)

Passons à la quatrième partie. Les sociétés de développement ne partagent pas avec le public leurs recherches ou les détails des technologies modernes, il nous est donc difficile d'imaginer clairement ce qu'il y a exactement à l'intérieur du processeur de l'ordinateur. Cependant, nous pouvons jeter un œil à la recherche moderne et découvrir dans quelle direction l'industrie évolue.

L'une des images célèbres de l'industrie du processeur est la loi de Moore. Il indique que le nombre de transistors dans une puce double tous les 18 mois. Pendant longtemps, cette règle empirique a été juste, mais la croissance commence à ralentir. Les transistors deviennent si minuscules que nous commençons à approcher la limite des tailles physiquement réalisables. Sans une nouvelle technologie révolutionnaire, nous devrons explorer d'autres possibilités de croissance de la productivité à l'avenir.


La loi de Moore depuis 120 ans. Ce graphique devient encore plus intéressant si vous apprenez que les 7 derniers points concernent le GPU Nvidia, et non les processeurs à usage général. Illustration de Steve Jarvetson

Une conclusion découle de cette analyse: pour augmenter la productivité, les entreprises ont commencé à augmenter le nombre de cœurs au lieu de la fréquence. Pour cette raison, nous observons comment les processeurs à huit cœurs sont largement utilisés, plutôt que les processeurs à double cœur avec une fréquence de 10 GHz. Nous n'avons tout simplement pas beaucoup de place pour la croissance, à l'exception de l'ajout de nouveaux cœurs.

D'un autre côté, le domaine de l'informatique quantique promet un immense espace pour la croissance future. Je ne suis pas spécialiste, et comme ses technologies sont encore en développement, il y a encore peu de vrais "spécialistes" dans ce domaine. Pour dissiper les mythes, je dirai que l'informatique quantique ne pourra pas vous fournir 1000 images par seconde dans un rendu réaliste, ou quelque chose comme ça. Jusqu'à présent, le principal avantage des ordinateurs quantiques est qu'ils permettent l'utilisation d'algorithmes plus complexes qui étaient auparavant inaccessibles.


L'un des prototypes d'ordinateurs quantiques IBM

Dans les ordinateurs traditionnels, le transistor est activé ou désactivé, ce qui correspond à 0 ou 1. Dans un ordinateur quantique, la superposition est possible, c'est-à-dire qu'un bit peut être simultanément dans les états 0 et 1. Grâce à cette nouvelle fonctionnalité, les scientifiques peuvent développer de nouvelles méthodes de calcul pour Ils pourront résoudre des problèmes pour lesquels nous n'avons toujours pas assez de puissance de calcul. Le point n'est pas tant que les ordinateurs quantiques sont plus rapides, mais qu'ils sont un nouveau modèle informatique qui nous permettra de résoudre d'autres types de problèmes.

Il reste encore une ou deux décennies avant l'introduction massive de cette technologie, alors quelles tendances commençons-nous à voir dans les vrais processeurs aujourd'hui? Des dizaines de recherches actives sont en cours, mais je n'aborderai que certains domaines qui, à mon avis, auront le plus grand impact.

Une tendance croissante est l'influence de l' informatique hétérogène . Cette technique consiste à intégrer de nombreux éléments informatiques différents dans un même système. La plupart d'entre nous profitons de cette approche en tant que GPU séparés dans les ordinateurs. Le processeur central est très flexible et peut à une vitesse décente effectuer un large éventail de tâches informatiques. D'un autre côté, les GPU sont conçus spécifiquement pour le calcul graphique, comme la multiplication matricielle. Ils font très bien face à cela et sont des ordres de grandeur plus rapides que le CPU dans de tels types d'instructions. En transférant une partie des calculs graphiques du CPU vers le GPU, nous pouvons accélérer les calculs. Tout programmeur peut optimiser le logiciel en modifiant l'algorithme, mais l'optimisation de l'équipement est beaucoup plus difficile.

Mais le GPU n'est pas le seul domaine dans lequel les accélérateurs deviennent plus populaires. La plupart des smartphones disposent de dizaines d'accélérateurs matériels conçus pour accélérer des tâches très spécifiques. Ce style informatique est appelé la mer des accélérateurs , dont les exemples sont les processeurs cryptographiques, les processeurs d'images, les accélérateurs d'apprentissage automatique, les encodeurs / décodeurs vidéo, les processeurs biométriques, et bien plus encore.

Les charges deviennent de plus en plus spécialisées, les concepteurs incluent donc davantage d'accélérateurs dans leurs puces. Les fournisseurs de services cloud, comme AWS, ont commencé à fournir aux développeurs des cartes FPGA pour accélérer leur cloud computing. Contrairement aux éléments informatiques traditionnels comme les CPU et les GPU, qui ont une architecture interne fixe, les FPGA sont flexibles. Il s'agit d'un équipement presque programmable qui peut être personnalisé pour répondre aux besoins de l'entreprise.

Si quelqu'un a besoin de reconnaissance d'image, il implémente ces algorithmes dans le matériel. Si quelqu'un veut simuler le travail d'une nouvelle architecture matérielle, alors avant de la fabriquer, elle peut être testée sur FPGA. Le FPGA offre des performances et une efficacité énergétique supérieures à celles du GPU, mais toujours inférieures à celles de l'ASIC (circuit intégré spécifique à l'application - un circuit intégré spécial). D'autres sociétés, telles que Google et Nvidia, développent des ASIC d'apprentissage automatique distincts pour accélérer la reconnaissance et l'analyse des images.


Plans cristallins de processeurs mobiles populaires montrant leur structure.

En regardant les images cristallines par rapport aux processeurs modernes, vous pouvez voir que le cœur lui-même n'occupe pas réellement la majorité de la zone CPU. Divers accélérateurs occupent une part plus importante. Cela a permis d'accélérer des calculs très spécialisés et de réduire considérablement la consommation d'énergie.

Auparavant, lorsqu'il était nécessaire d'ajouter au système de traitement vidéo, les développeurs devaient y installer une nouvelle puce. Cependant, il est très inefficace en termes de consommation d'énergie. Chaque fois qu'un signal doit sortir d'une puce via un conducteur physique vers une autre puce, une énorme quantité d'énergie est requise par bit. La petite fraction du joule lui-même ne semble pas être un gaspillage particulièrement important, mais le transfert de données à l'intérieur et non à l'extérieur de la puce peut être plus efficace de 3 à 4 ordres de grandeur. Grâce à l'intégration de tels accélérateurs avec le CPU, nous avons récemment constaté une augmentation du nombre de puces à très faible consommation d'énergie.

Cependant, les accélérateurs ne sont pas idéaux. Plus nous les ajoutons au circuit, moins la puce devient flexible et nous commençons à sacrifier les performances globales au profit des performances de pointe des types informatiques spécialisés. À un moment donné, la puce entière se transforme simplement en un ensemble d'accélérateurs et cesse d'être un processeur utile. L'équilibre entre les performances informatiques spécialisées et les performances globales est toujours très soigneusement réglé. Cet écart entre l'équipement à usage général et les charges spécialisées est appelé l' écart de spécialisation .

Bien que certaines personnes pensent. Étant donné que nous sommes au sommet de la bulle GPU / Machine Learning, nous pouvons très probablement nous attendre à ce que de plus en plus de calcul soit transféré à des accélérateurs spécialisés. Le cloud computing et l'IA continuent d'évoluer, les GPU semblent donc la meilleure solution pour atteindre le niveau de calcul volumétrique requis.

Un autre domaine dans lequel les concepteurs cherchent des moyens d'augmenter la productivité est la mémoire. Traditionnellement, la lecture et l'écriture de valeurs ont toujours été l'un des goulots d'étranglement les plus sérieux dans les processeurs. Des caches rapides et volumineux peuvent nous aider, mais la lecture à partir de la RAM ou du SSD peut prendre des dizaines de milliers de cycles d'horloge. Par conséquent, les ingénieurs considèrent souvent l'accès à la mémoire comme plus cher que les calculs eux-mêmes. Si le processeur veut ajouter deux nombres, il doit d'abord calculer les adresses de mémoire par lesquelles les nombres sont stockés, savoir à quel niveau de la hiérarchie de mémoire il y a ces données, lire les données dans des registres, effectuer des calculs, calculer l'adresse du récepteur et écrire la valeur au bon endroit. Pour des instructions simples, qui peuvent prendre un à deux cycles, cela est extrêmement inefficace.

Une nouvelle idée qui est activement explorée est une technique appelée Near Memory Computing . Au lieu de récupérer de petits morceaux de données de la mémoire et de les calculer avec un processeur rapide, les chercheurs renversent le travail. Ils expérimentent la création de petits processeurs directement dans des contrôleurs de mémoire RAM ou SSD. Étant donné que les calculs se rapprochent de la mémoire, il existe un potentiel d'économies énormes en énergie et en temps, car les données n'ont plus besoin d'être transmises si souvent. Les modules informatiques ont un accès direct aux données dont ils ont besoin, car ils sont directement en mémoire. Cette idée en est encore à ses balbutiements, mais les résultats semblent prometteurs.

L'un des obstacles à surmonter pour l'informatique en mémoire proche est les limites du processus de fabrication. Comme indiqué dans la troisième partie , le processus de production de silicium est très complexe et implique des dizaines d'étapes. Ces processus sont généralement spécialisés pour la fabrication d'éléments de logique rapide ou d'éléments de stockage densément espacés. Si vous essayez de créer une puce mémoire en utilisant un processus de fabrication optimisé pour l'informatique, vous obtenez une puce avec une densité d'éléments extrêmement faible. Si nous essayons de créer un processeur en utilisant le processus de fabrication de disques, nous obtenons des performances très faibles et des délais importants.


Exemple d'intégration 3D montrant les connexions verticales entre les couches de transistors.

Une solution potentielle à ce problème est l'intégration 3D . Les processeurs traditionnels ont une très large couche de transistors, mais cela a ses limites. Comme son nom l'indique, l'intégration tridimensionnelle consiste à disposer plusieurs couches de transistors les unes sur les autres pour augmenter la densité et réduire les retards. Les colonnes verticales produites dans différents processus de fabrication peuvent ensuite être utilisées pour l'assemblage entre couches. Cette idée a été proposée il y a longtemps, mais l'industrie s'y est désintéressée en raison de graves difficultés de mise en œuvre. Récemment, nous assistons à l'émergence de la technologie de stockage 3D NAND et à la relance de ce domaine de recherche.

En plus des changements physiques et architecturaux, une autre tendance affectera fortement l'ensemble de l'industrie des semi-conducteurs - une plus grande importance accordée à la sécurité. Jusqu'à récemment, la sécurité du processeur était considérée presque au dernier moment. Cela ressemble à la façon dont Internet, le courrier électronique et de nombreux autres systèmes que nous utilisons activement aujourd'hui ont été développés presque sans égard à la sécurité. Toutes les mesures de protection existantes ont été «ratées» au fur et à mesure des incidents, afin que nous nous sentions en sécurité. Dans le domaine des processeurs, de telles tactiques ont nui aux entreprises, et notamment à Intel.

Bugs Spectre et Meltdown sont probablement les exemples les plus célèbres de la façon dont les concepteurs ajoutent des fonctionnalités qui accélèrent considérablement le processeur, sans être pleinement conscients des risques de sécurité associés à cela. Dans le développement de processeurs modernes, une plus grande attention est accordée à la sécurité en tant qu'élément clé de l'architecture. Lorsque la sécurité est améliorée, les performances en souffrent souvent, mais étant donné les dommages que de graves bogues de sécurité peuvent causer, on peut dire sans risque qu'il vaut mieux se concentrer sur la sécurité dans la même mesure que sur les performances.

Dans les parties précédentes de la série, nous avons abordé des techniques telles que la synthèse de haut niveau, qui permet aux concepteurs de décrire d'abord la structure dans un langage de haut niveau, puis de permettre à des algorithmes complexes de déterminer la configuration matérielle optimale pour la fonction. Avec chaque génération, les cycles de conception deviennent plus chers, les ingénieurs recherchent donc des moyens d'accélérer le développement. Il faut s'attendre à ce qu'à l'avenir cette tendance dans la conception de matériel avec logiciel ne fasse que s'intensifier.

Bien sûr, nous ne sommes pas en mesure de prédire l'avenir, mais les idées innovantes et les domaines de recherche que nous considérons dans l'article peuvent servir de lignes directrices pour les attentes dans la conception des futurs processeurs. Nous pouvons dire avec confiance que nous approchons de la fin des améliorations habituelles du processus de fabrication. Pour continuer à augmenter la productivité à chaque génération, les ingénieurs devront inventer des solutions encore plus complexes.

Nous espérons que notre série de quatre articles a stimulé votre intérêt à étudier la conception, la vérification et la production de processeurs. Il existe un nombre infini de documents sur ce sujet, et si nous essayions de tous les révéler, chacun des articles pourrait devenir un cursus universitaire complet. J'espère que vous avez appris quelque chose de nouveau et maintenant vous comprenez mieux à quel point les ordinateurs sont sophistiqués à chaque niveau.

Source: https://habr.com/ru/post/fr458670/


All Articles