Comment les microprocesseurs commerciaux respectent-ils le timing avec une horloge gigahertz?

8

J'ai du mal à faire en sorte qu'une conception FPGA relativement simple (pour un Altera Cyclone IV) rencontre le timing pour une logique pilotée par une horloge de 250 MHz. Cela me fait me demander comment les microprocesseurs commerciaux (tels que l'Intel Core i7) parviennent à respecter le timing aux fréquences d'horloge plus d'un ordre de grandeur plus élevé.

Comment les microprocesseurs commerciaux peuvent-ils respecter le timing à 3,8 GHz lorsque je me bats à 250 MHz pour un FPGA?

Randomblue
la source
8
un fpga et un processeur sont des pommes et des oranges. Le FPGA est construit à partir de modules / cellules relativement grands qui sont interconnectés. Le compilateur pour le fpga n'est ni meilleur ni pire qu'un compilateur logiciel, ce qui signifie qu'il y a beaucoup de place pour l'amélioration des performances, vos signaux sont routés partout, à travers des cellules grandes / lentes prenant du temps. Un processeur par exemple est exactement les portes nécessaires, pas de routage supplémentaire (bien jtag scan et bist), etc. Même problème avec le compilateur mais il y a de meilleurs compilateurs de puces (chers) là-bas.
old_timer

Réponses:

7

Les FPGA n'ont pas réellement de "portes" en soi. Ils ont généralement des tables de consultation (LUT). Les LUT sont généralement implémentées à l'aide de SRAM. Par exemple, les FPGA Spartan 3 utilisent des SRAM 16 bits; c'est-à-dire que quatre entrées d'adresse produisent un signal de sortie. La "programmation" se fait en chargeant la SRAM avec un motif binaire représentant la table de vérité, de telle sorte que, par exemple pour XOR à 2 entrées, vous avez l'adresse 00 = sortie 0, l'adresse 01 = sortie 1, l'adresse 10 = sortie 1, l'adresse 11 = sortie 0.

Tout cela signifie que les FPGA ont en fait de nombreuses portes supplémentaires et inutiles pour effectuer la même fonction logique. Si vous avez besoin de FPGA pour la reprogrammabilité et le prototypage rapide, c'est parfait! En fait, certaines personnes implémentent d'abord la conception dans le FPGA, la déboguent, puis passent à un ASIC, qui sera plus petit, plus rapide et consommera moins d'énergie, tout en faisant la même chose que le FPGA.

Les microprocesseurs modernes sont également pipelinés. Par exemple, dans un programme FPGA simple, un très grand calcul impliquant plusieurs ajouts et peut-être quelques multiplications et une comparaison peut être effectuée dans le même cycle d'horloge. Faire tout ce travail en un seul cycle d'horloge signifie que le cycle d'horloge doit être long. Dans une implémentation en pipeline (qui est possible à implémenter dans les FPGA et est souvent utilisée pour réaliser la fermeture de synchronisation), le gros calcul est décomposé en morceaux, et chaque morceau est exécuté en un cycle d'horloge beaucoup plus court. Il faut toujours environ le même temps pour effectuer le calcul, mais l'avantage est qu'après le calcul de la première pièce et le déplacement de la première donnée partielle vers la deuxième pièce, la première pièce peut immédiatement commencer à traiter la deuxième donnée. Le premier calcul prendra encore plusieurs cycles,

Donc, en résumé, les FPGA ont une logique générique tandis que le CPU a une logique spécifique. FPGA a un routage générique tandis que le CPU a un routage spécifique. Le FPGA peut être pipeliné, mais le CPU est définitivement pipeliné.

ajs410
la source
6

Développant le commentaire de dwlech. Les processeurs ont des connexions directes en cuivre. Les FPGA sont interconnectés via des connexions programmables. Les processeurs mettent également les éléments critiques les uns à côté des autres. Les FPGA ont également besoin d'espace pour la SRAM qui détient la programmation.

Brian Carlton
la source
3
Gardez à l'esprit que les processeurs de fournisseurs tels qu'Intel se font à la pointe de la technologie où les compromis entre vitesse et puissance sont à la pointe de la technologie. Ce n'est pas non plus un exploit simple de «respecter le timing» sur un cœur de processeur multi-gigahertz même avec les avantages spécifiques notés par Brian Carlton.
Michael Karas,
3
Malgré ce que @Michael Karas souligne, les derniers FPGA sont souvent à la pointe de la technologie pour les fabs aussi.
Brian Carlton