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?
Réponses:
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.
la source
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?
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!
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.
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.
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?
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.
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.
la source
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.
la source