Un circuit asynchrone est un réseau de composants largement indépendants qui transmettent des données lorsque leurs opérations sont terminées. Ceci contraste avec un circuit synchrone où les éléments sont interrogés pour des données en réponse à un signal de synchronisation global. Dans un circuit asynchrone, les protocoles de transfert de données déterminent quand et comment les données sont échangées. Au lieu d’interroger régulièrement chaque composant, les données sont transférées lorsque le composant lui-même signale qu’il est prêt.
La majorité des implémentations de circuits électroniques utilisent une conception synchrone. Il s’agit d’un modèle plus simple où tous les composants fonctionnent dans le même laps de temps. Dans un circuit asynchrone, les composants fonctionnent indépendamment de tout intervalle de temps. Au lieu d’un temps discret imposé globalement, les composants utilisent des protocoles de prise de contact et de transfert. Ceux-ci effectuent la synchronisation, le transfert de données et le séquençage des opérations nécessaires.
Il existe plusieurs protocoles de transfert utilisés dans les circuits asynchrones. Tous incluent l’établissement de liaison, qui garantit que lorsqu’un composant est prêt à transmettre des données à un voisin, celui-ci est libre de les recevoir et de les transmettre. Étant donné que les composants fonctionnent sans référence à un intervalle de temps commun, les opérations peuvent être exécutées dans le désordre. Le protocole de transfert encode les données produites de telle manière qu’elles puissent être assemblées dans le bon ordre.
Certains des premiers ordinateurs utilisaient une conception asynchrone. L’Illinois Integrator and Automatic Computer, ou ILLIAC I, développé par l’Université de l’Illinois en 1951, était une telle conception. Cependant, les progrès rapides de la technologie des circuits intégrés nécessitaient une conception plus basique, compatible avec les ressources disponibles. La conception synchrone avec une horloge système est devenue l’approche privilégiée.
La conception de circuits asynchrones présente plusieurs avantages potentiels. La consommation d’énergie serait bien moindre avec la suppression du circuit de temporisation et il n’y aurait plus besoin d’alimenter les transistors non utilisés. La vitesse de fonctionnement serait déterminée par les latences réelles entre les composants. Dans la conception synchrone, la vitesse est imposée pour accommoder l’élément le plus faible. Un circuit conçu pour fonctionner sous une logique asynchrone serait généralement moins affecté par les légères variations des composants dues au processus de fabrication.
Les inconvénients de la conception de circuits asynchrones proviennent principalement de sa complexité. Le nombre d’éléments nécessaires peut être beaucoup plus important que celui requis pour un circuit synchrone. Il existe peu d’outils de conception assistée par ordinateur (CAO) conçus pour la conception de circuits asynchrones. Ces circuits sont également beaucoup plus difficiles à déboguer et à dépanner que les conceptions conventionnelles. La surcharge matérielle supplémentaire et la difficulté de mise en œuvre peuvent compenser les gains de consommation d’énergie et d’efficacité.