Pourquoi les circuits entièrement asynchrones ne sont-ils pas plus répandus? [fermé]

19

D'après ma compréhension, la plupart des processeurs grand public modernes sont basés sur une logique synchrone. Certaines applications à haute vitesse (traitement du signal, etc.) utilisent la logique ansync pour sa vitesse plus élevée.

Cependant, sur le marché actuel, la vitesse des produits de consommation est l'un des principaux arguments de vente (voir AMD vs Intel.) Le développement d'une lithographie plus compliquée est-il plus rapide que l'adoption d'une logique entièrement asynchrone? Ou la logique ansync est-elle trop compliquée / peu pratique pour les applications VLSI?

Corsair64
la source
4
Je pense qu'il est très difficile de les programmer de manière procédurale.
mehmet.ali.anil
16
Les architectures actuelles sont hybrides. Les blocs synchrones sont interconnectés de manière asynchrone. Et oui, la logique asynchrone est beaucoup plus compliquée.
Eugene Sh.
5
Parce que nous n'avons pas encore de bons outils pour la fermeture de synchronisation asynchrone.
Oldfart
2
Les systèmes deviennent de plus en plus asynchrones. Sur les processeurs modernes, la RAM, le cache et les cœurs de processeur fonctionnent tous avec des horloges indépendantes. Les nouveaux processeurs Intel HEDT vont encore plus loin et permettent à chacun des nombreux cœurs des puces de fonctionner à des horloges indépendantes les unes des autres et de la RAM, du cache et des bus externes, etc.
J ...
1
Une chose à retenir, les horloges synchrones introduisent un rythme cardiaque normalisé pour le système, tandis que si vous optez pour une conception asynchrone pure, sinon des différences de synchronisation triviales comme le retard de propagation peuvent devoir être prises en compte par d'autres moyens. Il est également relativement efficace d'implémenter des fonctions pures dans des conceptions asynchrones, mais les fonctions avec état (ou les opérations plus dures comme la racine carrée) peuvent devenir compliquées. L'acheminement des signaux peut également être difficile (pas de bus, vous pouvez rester bloqué en connectant tout à tout).
HJR

Réponses:

45

J'ai passé quelques années dans une startup à commercialiser la technologie de conception asynchrone, donc je connais les raisons:

  • async n'est pas intrinsèquement plus rapide. Le pire retard de trajet reste le même. C'est juste que parfois vous bénéficiez d'une exécution de chemin plus rapide.

  • async a également des frais généraux de détection de fin.

  • Outils de conception. C'est vraiment le plus gros: il n'y a pas vraiment de "flux" asynchrone complet d'outils disponibles avec la même qualité que la conception synchrone.

  • Formation. Vous devez effectivement recycler tous vos concepteurs sur le nouveau paradigme et les nouveaux outils.

  • Risque et conservativisme. Une grande partie de l'industrie consiste à «produire quelque chose de similaire à la dernière, mais un peu différent». Cela a de très grandes chances de fonctionner. Les entreprises sont beaucoup plus réticentes à construire quelque chose de totalement différent, car il a beaucoup plus de chances d'être une radiation totale coûtant des dizaines de millions de dollars.

pjc50
la source
Cela pourrait être intrinsèquement moins cher mais plus lent.
Tony Stewart Sunnyskyguy EE75
3
Je me souviens d'y avoir pensé une fois, et j'ai également réalisé: une puce synchronisée est trivialement sous-synchronisée (pour batterie / température / etc), alors qu'une puce asynchronisée l'est probablement moins?
Mooing Duck
En termes d'outils de conception / paradigme, la logique synchrone est capable d'ignorer totalement les pépins en sortie de la logique combinatoire et ne nécessite que les signaux d'horloge sans pépins. De plus, les circuits asynchrones sont plus susceptibles de nécessiter l'ajout d'un retard supplémentaire pour certains signaux, pour garantir qu'un signal prêt ne puisse pas arriver au bloc suivant avant l'arrivée des données, etc. Dans les circuits synchrones, un retard artificiel est rarement nécessaire. L'un des rares cas qui me vient à l'esprit est de satisfaire aux exigences de temps d'attente, qui peuvent souvent être satisfaites par un retard naturel. Certaines situations de domaine d'horloge croisée peuvent également nécessiter un délai.
Kevin Cathcart
Je pense que dans de nombreuses situations, l'utilisation d'une horloge à deux phases sans chevauchement pourrait offrir de nombreux avantages par rapport à une seule horloge. Lorsque vous utilisez une seule horloge, toute impulsion runt peut faire sauter un système, mais lorsque vous utilisez une horloge biphasée générée en alimentant une entrée d'horloge via deux comparateurs, les impulsions runt sur une phase d'horloge seraient inoffensives si elles étaient précédées ou suivies par une impulsion d'horloge de longueur valide sans impulsion intermédiaire sur la phase d'horloge opposée.
supercat
3
@MooingDuck Cela dépend du paradigme logique. J'ai travaillé sur une logique de convention nulle, et elle fonctionnerait aussi vite que les conditions (processus, tension, température) le permettraient. Vous n'auriez pas besoin de le sous-synchroniser à cause de ces conditions, il le ferait automatiquement .
W5VO
3

Il est très tentant de concevoir des circuits intégrés asynchrones. Les autres réponses couvrent déjà de nombreuses raisons de réfléchir à deux fois avant de le faire. En voici encore un:

Le développement des circuits intégrés n'est pas terminé avec la conception. La vérification et le test sont tout aussi importants. Non seulement les outils de conception sont très avancés pour les circuits synchrones, mais c'est la même chose avec les outils de simulation et les équipements de test.

Vérification

Il ne suffit pas que les circuits fonctionnent dans des conditions de laboratoire. Ils doivent être robustes en ce qui concerne la plage de tension de fonctionnement (V), la plage de température de fonctionnement (T) et la variation due au processus de fabrication (P). Pour la logique synchrone, cela peut être garanti à l'aide d'une analyse de synchronisation statique. Le circuit est décomposé sur tous les chemins de synchronisation, de la bascule à la bascule. Les temps de configuration et de maintien sont vérifiés pour chaque chemin de synchronisation unique et pour différentes combinaisons de P, T et V. Ces combinaisons PTV sont les soi-disant coins de simulation.

Une vérification similaire pourrait être effectuée pour les circuits asynchrones, mais elle est beaucoup plus difficile et beaucoup moins supportée par les outils de conception. Il limite également le concepteur aux constructions asynchrones qui peuvent être vérifiées. Il n'y a pas de vérification fiable pour les circuits asynchrones arbitraires.

Tester

Des difficultés similaires se posent lorsqu'il s'agit de tester le matériel. Le test de la logique synchrone est entièrement pris en charge par les normes et l'équipement de test. Le test des circuits asynchrones est non seulement plus compliqué, mais en raison du manque d'abstraction de synchronisation, il n'est même pas suffisant pour prouver que le circuit fonctionnera pour tous les coins du PTV. Le circuit pourrait échouer en raison des conditions de course à une combinaison de PTV, qui n'est pas couverte par les virages.

Sommaire

Les concepteurs de circuits intégrés n'ont pas abandonné le paradigme asynchrone, mais la logique asynchrone présente de lourds inconvénients lors de la vérification et de la validation. Dans un contexte industriel, la conception de circuits intégrés asynchrones doit être limitée à une construction dont il peut être prouvé qu'elle fonctionne sur tout l'espace des paramètres de variation du processus, ainsi que sur les plages de fonctionnement pour la température et la tension.

La conception dite «localement synchrone globalement asynchrone» est un moyen d'obtenir plus d'avantages et moins d'inconvénients des deux paradigmes de synchronisation.

bogl
la source
0

Les compteurs binaires asynchrones sont plus simples car ils n'utilisent qu'une cellule mémoire ou une bascule T par division par deux. D'où les anciens CD et 74HC4020 et 4040 offrent de nombreuses étapes binaires à moindre coût. Le délai de propagation dans chaque étape signifie qu'il ne peut pas être utilisé sans conditions de concurrence critique ou avec un décodage de porte des adresses binaires, sauf si le délai de propagation est inférieur à 1/2 cycle d'horloge d'entrée en utilisant le bord arrière pour verrouiller le résultat. La latence de sortie est ensuite multipliée par N étages.

Les compteurs binaires synchrones utilisent une cellule de mémoire supplémentaire à D FF pour retarder, mais minimisent le retard à 1 valeur pour n'importe quelle longueur de compteurs afin qu'il consomme plus de surface.

Par conséquent, tous les processeurs utilisent des horloges complémentaires pour optimiser la latence attendue en lecture / écriture d'adresse et de mémoire afin de maximiser le débit mais sans dépasser le temps de propagation, de configuration et de maintien.

La mémoire utilise désormais de nombreuses phases telles que DDR, 3DR, 4DR, 5DR en particulier pour la mémoire graphique, mais avec des horloges CPU allant beaucoup plus vite que le taux de RAM à cycle unique, de sorte que les retards d'adresse de lecture et d'écriture peuvent être chronométrés par un ou plusieurs ou la moitié des comptes super-horloge (par exemple 100 MHz xN) désignée par le nombre T fractionnaire ou entier pour chaque paramètre. Ces retards d'hélice augmentent avec la température. Pour CMOS et réduisez avec une tension Vram plus élevée qui, si elle est correctement refroidie, pourrait réduire la latence ou toute autre augmentation du Pd et de la température et l'aggraver (plus lentement). Ainsi, le refroidissement, V, f, T sont tous essentiels pour une latence optimale, qu'il soit utilisé pour les opérations Async ou Sync.

Tony Stewart Sunnyskyguy EE75
la source
-1

Les premières conceptions logiques étaient asynchrones. Souvent, ils étaient également mélangés à des circuits analogiques. Cependant, avec le temps, les conceptions sont devenues plus compliquées, ce qui a exigé davantage d'ingénieurs pour travailler sur une seule conception. Les chronogrammes de l'async. la logique peut être lourde quand il y a beaucoup d'états. Ajoutez maintenant une équipe d'ingénieurs essayant d'interfacer différents blocs de logique ensemble, mais les synchronisations entre eux ne sont pas très bien alignées. Les dessins deviennent fragiles aux changements de manière imprévue.

Entrez la conception de la logique synchrone. Maintenant, tous les flux d'état sont alignés sur un signal d'horloge qui permet aux interfaces d'être très bien définies et plus robustes contre les changements de conception. Oui, il pourrait utiliser plus de portes, mais il est (généralement) stable par conception; par opposition à stable tant que personne n'y touche!

Aaron
la source
1
Il existe également des méthodologies de conception asynchrones qui garantissent «une conception correcte» et des «interfaces bien définies». Celles-ci sont simplement différentes des hypothèses simplificatrices faites pour les conceptions synchrones.
Edgar Brown