Comment les processeurs sont-ils conçus?

21

J'ai commencé à jouer avec l'électronique il y a quelque temps et à créer des portes logiques simples à l'aide de transistors. Je sais que les circuits intégrés modernes utilisent le CMOS au lieu de la logique transistor-transistor. La chose que je ne peux m'empêcher de me demander, c'est comment les processeurs sont conçus.

La conception se fait-elle toujours au niveau d'une porte (sous) logique, ou n'y a-t-il plus beaucoup d'innovation dans ce domaine et sommes-nous passés à un niveau d'abstraction plus élevé? Je comprends comment une ALU est construite, mais il y a beaucoup plus de CPU que cela.

D'où viennent les conceptions des milliards de transistors? Sont-ils principalement générés automatiquement par logiciel ou y a-t-il encore beaucoup d'optimisation manuelle?

Overv
la source
2
Je dirais Verilog ou VHDL.
avakar
3
Bien que ces sujets soient fascinants, il semble que nous soyons loin des «questions pratiques et fiables basées sur les problèmes réels auxquels vous êtes confrontés» . Je peux aussi imaginer un livre entier qui répond à cette question.
Martin
1
@Overv, il y a encore beaucoup de travail où vous vous assurez que vos blocs de base que vous connectez ensemble sont optimisés au niveau de la porte, puis vous branchez simplement ces blocs optimisés de manière optimisée!
Kortuk
13
J'ai voté pour la réouverture - bien que je convienne qu'une réponse complète disant "tout ce que vous devez savoir pour construire un CPU entier à partir de zéro" n'est pas une bonne correspondance pour ce site, je pense qu'un bref aperçu et quelques liens seraient une bonne réponse ici.
davidcary
1
Je suis surpris que nous n'ayons personne qui travaille dans l'industrie des semi-conducteurs qui puisse commenter ici une conception ASIC plus complexe. Comme je ne suis pas un expert, ce ne sont que quelques trucs que j'ai entendus: il y a beaucoup de licences dans les cœurs IP et le domaine par lequel tout est mis en place s'appelle VLSI. Je crois que la conception est effectuée en VHDL / Verilog avec des outils de synthèse hautement optimisés - comment cela se réduit au niveau de la plaquette et est fabriqué au-delà de mes connaissances.
Jon L

Réponses:

10

Il est très probable que les CPU et les SoC sont utilisés par des langages de description matérielle comme Verilog et VHDL (deux acteurs majeurs).

Ces langages permettent différents niveaux d'abstractions. Dans VHDL, vous pouvez définir des blocs logiques en tant qu'entités; il contient des ports d'entrée et de sortie. Dans le bloc, vous pouvez définir la logique requise. Supposons que vous définissiez un bloc avec l'entrée A, l'entrée B et la sortie C. Vous pouvez facilement écrire C = A et B; et, fondamentalement, vous avez créé un bloc de port ET. C'est probablement le bloc le plus simple que vous puissiez imaginer.

Les systèmes numériques sont généralement conçus avec une forte hiérarchie. On peut démarrer le «niveau supérieur» avec les fonctions principales requises par un processeur: mémoire du processeur (multiple?), PCI-express et autres bus. Dans ce niveau, les bus et les signaux de communication entre la mémoire et le processeur peuvent déjà être définis.

Lorsque vous descendez d'un niveau, cela définira le fonctionnement interne de la réalisation de quelque chose. Sur un exemple de microcontrôleur, il peut contenir une interface UART. La logique réelle requise pour créer un UART fonctionnel est définie un niveau plus bas. Ici, beaucoup d'autres logiques peuvent être nécessaires pour générer et diviser l'horloge requise, les données de tampon (tampons FIFO), les données de rapport à la CPU (une sorte de bus système).

La chose intéressante du VHDL et de la conception numérique est la réutilisation des blocs. Vous pouvez par exemple, simplement copier et coller le bloc UART dans votre niveau supérieur pour créer 2 UART (enfin, ce n'est peut-être pas aussi simple que si le bloc UART est capable de s'adresser à certains!).

Cette conception n'est pas une conception au niveau de la porte. Le VHDL peut également être «compilé» de manière à être finalement traduit en portes logiques. Une machine peut optimiser cela bien mieux qu'un humain (et plus rapidement aussi). Par exemple; les internes du bloc A nécessitent un inverseur avant d'émettre le signal. Le bloc B prend ce signal de sortie et l'inverse à nouveau. Eh bien, 2 onduleurs en série ne font pas grand-chose? Correct, vous pouvez donc tout aussi bien les laisser de côté. Cependant, dans la conception «de haut niveau», vous ne pourrez pas repérer les deux onduleurs en série. Vous ne voyez que deux ports connectés. Un compilateur peut optimiser cela beaucoup plus rapidement qu'un humain.

Fondamentalement, ce que contient la conception du système numérique est la description de la façon dont la logique doit se comporter, et l'ordinateur est utilisé pour déterminer la manière la plus efficace de définir les portes logiques individuelles.

Hans
la source
Tout comme il existe encore une place pour le code d'assemblage dans les logiciels, la conception matérielle de niveau inférieur peut être rentable dans certains cas. Par exemple, les cellules SRAM sont souvent si couramment utilisées que des conceptions hautement optimisées sont développées pour optimiser la densité (cache de dernier niveau), la latence d'accès (cache L1) ou d'autres caractéristiques, en particulier chez un fabricant de conception intégré comme Intel.
Paul A. Clayton
@Paul, la question intrigante qui se pose pour moi est de savoir combien Intel investit dans l'optimisation manuelle de leurs conceptions par rapport à l'écriture de passes d'optimisation logicielles qui permettent d'obtenir les mêmes améliorations de performances de manière dynamique et plus générale.
Ponkadoodle
6

Permettez-moi de simplifier et d'élargir mes commentaires précédents et de relier les points pour ceux qui semblent en avoir besoin.

La conception se fait-elle toujours au niveau d'une porte (sous) logique?

  • OUI

La conception se fait à plusieurs niveaux, le niveau sous-logique est toujours différent . Chaque rétrécissement de fabrication exige la plus brillante expérience en physique, en chimie et en processus lithographique, car la structure d'un transistor change et la géométrie change également pour compenser les compromis, car elle se réduit aux niveaux atomiques et coûte ~ milliards de dollars chaque étape binaire Taille. Atteindre la géométrie 14 nm est une entreprise énorme en R&D, contrôle et gestion de processus et c'est encore un euphémisme!entrez la description de l'image ici

Par exemple, les compétences professionnelles requises pour ce faire comprennent; - "Dispositions personnalisées au niveau du FET, des cellules et des blocs, plans d'étage au niveau du FUB, génération de vues abstraites, extraction RC et vérification et débogage du schéma à la disposition à l'aide des phases de développement de la conception physique, y compris l'extraction parasite, la synchronisation statique, la charge de fil modèles, génération d'horloge, édition de polygones personnalisée, algorithmes de placement et d'itinéraire automatiques, planification d'étage, assemblage de puces complètes, conditionnement et vérification. "*

- n'y a-t-il plus beaucoup d'innovation dans ce domaine? - FAUX - Il y a une innovation importante et fortement financée dans la physique des semi-conducteurs, à en juger par la loi de Moore et le nombre de brevets, elle ne s'arrêtera jamais.Les économies d'énergie, de chaleur et donc de quadruplement de capacité sont payantes à chaque fois.

- sommes-nous passés à un niveau d'abstraction plus élevé? - Il n'a jamais cessé de bouger. - Avec une demande pour plus de cœurs, faire plus dans une instruction comme les processeurs ARM RISC, les µC ou MCU intégrés plus puissants, la RAM intelligente avec DDR4 qui a ECC par défaut et des secteurs comme le flash avec des bits de priorité pour les récupérations urgentes de la mémoire. - L'évolution du CPU et les changements architecturaux ne s'arrêteront jamais. entrez la description de l'image ici

Permettez-moi de vous donner un indice. Allez faire une recherche d'emploi chez Intel, AMD, TI ou AD pour les ingénieurs et consultez les descriptions de travail.

- D'où viennent les conceptions des milliards de transistors? - Il est venu de l'ajout de plus de blocs de 64 bits de matériel. mais maintenant que les nanotubes échouent, la réflexion doit passer de l'approche descendante des blocs à l'approche ascendante des nanotubes pour que cela fonctionne.

  • Sont-ils principalement générés automatiquement par des logiciels? avec la langue fermement plantée dans la joue ...
  • En fait, ils extraient encore des conceptions de Area51 à partir de vaisseaux spatiaux et ont du chemin à parcourir .... jusqu'à ce que nous soyons entièrement conformes aux nano-nano tubes. Un ingénieur entre dans la bibliothèque et dit nVidia que nous aimerions que vous nous rejoigniez ici sur cette puce et devienne une partie, qui va dans un macro-blocs . La disposition peut être répliquée comme les fourmis dans Toystory mais le contrôle explicite sur toutes les connexions doit être routé / extrait manuellement ainsi que l'utilisation de DRC et du routage automatique pour la comparaison. Oui, les outils d'automatisation sont constamment mis à niveau pour éliminer la duplication et le temps perdu.

    - y a-t-il encore beaucoup d'optimisation manuelle?

  • Considérant qu'une compagnie aérienne a économisé suffisamment d'argent pour payer votre salaire en supprimant une seule olive du dîner en première classe, Intel cherchera des moyens de supprimer autant d'atomes que possible dans le délai imparti. Tout excès de capacité signifie de la chaleur perdue, des performances et oups aussi plus de bruit, pas si vite ...

Mais vraiment les CPU grandissent comme Tokyo, ce n'est pas du jour au lendemain, mais des dizaines de millions y vivent maintenant avec une amélioration constante. Je n'ai pas appris à concevoir chez Univ. mais en lisant et en essayant de comprendre comment les choses fonctionnent, j'ai pu me mettre à niveau dans l'industrie assez rapidement. J'ai acquis 10 ans d'expérience au cours de mes 5 premières années dans l'aérospatiale, la conception d'instruments nucléaires, la conception SCADA, la surveillance de processus, la conception d'antennes, la conception et le débogage de stations météorologiques automatisées, les VLF Rx d'OCXO PLL, la télécommande bidirectionnelle des fusées Black Brandt ... et c'était juste mon 1er travail. Je n'avais aucune idée de ce que je pouvais faire.

Ne vous inquiétez pas pour des milliards de transistors et n'ayez pas peur de ce que vous devez apprendre ou de ce que vous devez savoir. Suivez simplement votre passion et lisez des revues professionnelles entre vos heures de sommeil, vous n'aurez plus l'air si vert au travail et vous n'aurez plus l'impression de travailler.

Je me souviens d'avoir dû concevoir un ampli op 741 "comme" dans le cadre d'un examen une fois, en 20 minutes. Je ne l'ai jamais vraiment utilisé, mais je peux reconnaître le bien des grands designs. Mais alors il n'avait que 20 transistors.entrez la description de l'image ici

Mais comment concevoir un CPU doit commencer par une Spec., À savoir; Pourquoi concevoir un CPU et faire des repères mesurables à atteindre tels que; - Instructions macro par seconde (MIPS) (plus importantes que l'horloge CPU), par exemple; - La puce Itanium d'Intel est basée sur ce qu'ils appellent une conception EPIC (Explicitly Parallel Instruction Computing). - Conception CPU brevetée Transmeta avec des microprocesseurs de morphing de code de mots d'instructions très longs (VLIWCMM). Ils ont poursuivi Intel en 2006, fermé boutique et réglé pour ~ 200 millions de dollars en 2007. - Performance par watt (PPW), lorsque le coût de l'énergie> coût de la puce (pour les serveurs) - Ops par seconde en virgule flottante (FLOPS) pour les performances mathématiques.

Il y a beaucoup plus de métriques, mais ne basez jamais la qualité de conception d'un CPU sur sa vitesse GHz (voir mythe)

Alors, quels outils de jour sont nécessaires pour concevoir des CPU? La liste ne correspondrait pas à cette page, de la conception physique au niveau atomique à la conception physique EM / RF EMC physique en passant par l'ingénieur de test de vérification de conception frontale, où les compétences requises incluent; - Simulation RTL frontale - connaissance de l'architecture IA et informatique et de la conception au niveau du système - Vérification logique et simulation logique utilisant VHDL ou Verilog. - Programmation orientée objet et divers CPU, bus / interconnexion, protocoles de cohérence.

Tony Stewart Sunnyskyguy EE75
la source
6
"Verilog" et "VHDL" ne font qu'effleurer la surface de toutes ces questions naïves mais inspirantes. Le monde réel est beaucoup plus analogique que numérique que vous ne le pensez.
Tony Stewart Sunnyskyguy EE75
Avez-vous une explication du circuit de l'ampli op n'importe où? Tout ce que je peux voir est un OTA cascodé, le reste est le circuit Voodoo.
CyberMen
3
Sensationnel. Dommage, cela n'a généralement rien à voir avec la question.
Dave Tweed
3
Je dois dire que c'était une lecture très amusante. Le passage progressif de l'écrivain à la question originale pour lui faire essayer de faire exploser l'esprit du lecteur avec des chiffres et du vocabulaire, puis fournir de l'aide personnelle, suivi d'une réminiscence de ses jours d'écolier avec juste un soupçon d'arrogance et enfin de bouger sur le cliché "c'est tellement compliqué que je n'ai jamais pu le résumer ici". Absolument magnifique.
Ponkadoodle
Et même si ce commentaire est quelque peu satirique, j'espère que vous le prendrez à la légère. Honnêtement, j'ai apprécié la lecture.
Ponkadoodle
2

Présentation d'AMD sur la conception du processeur

Version d'Intel

Aucun de ces éléments ne fournit beaucoup de détails, mais néanmoins intéressant. N'acceptez pas cela comme une réponse. D'autres ont examiné votre question en détail et ont fourni plus d'efforts pour tenter de répondre en détail.

rdivilbiss
la source
J'avais déjà vu cette page TomsHardware. Cependant, il explique comment les processeurs sont fabriqués , pas comment ils sont conçus
stevenvh