Circuit asynchrone

Circuit asynchrone

Un circuit asynchrone est un circuit électronique qui n'utilise pas de signal d'horloge global pour synchroniser ses différents éléments. À la place, ceux-ci communiquent en indiquant localement quand des données sont disponibles.

Sommaire

Théorie

Les circuits asynchrones regroupent en fait plusieurs classes de circuit ayant des propriétés différentes, selon les hypothèses faites à la conception :

  • Insensibles aux délais : ces circuits fonctionnent correctement quels que soient les délais dans les fils et les portes. Ils ne sont cependant pas réalisables avec des portes logiques simples (les seules portes logiques à une sortie utilisables sont les portes C et l'inverseur)[1], et ne sont donc pas souvent utilisés en pratique. Ce modèle est cependant utilisable avec des portes plus complexes.
  • Quasi-insensibles aux délais : ces circuits ajoutent simplement l'hypothèse, pour la conception, qu'il est possible d'obtenir des fourches isochrones, c'est-à-dire deux fils induisant exactement le même délai. Tout comme le modèle suivant, c'est un modèle de conception largement utilisé pour des processeurs asynchrones.
  • Indépendants de la vitesse : ici, on considère les délais dans les fils comme étant négligeables, ce qui est une hypothèse encore plus forte que celle de quasi-insensibilité aux délais. Cela se vérifie difficilement dans les systèmes actuels, c'est pourquoi on peut leur préférer des circuits conçus comme quasi-insensibles aux délais. Cependant, les deux hypothèses sont en fait très proches en termes de conséquences, le cas indépendant de la vitesse se ramenant en fait au cas où toutes les fourches sont isochrones.
  • À délais bornés : les délais dans les portes et les fils sont supposés bornés par une durée connue. C'est le principe de conception en électronique synchrone, où les impulsions d'horloge se font à intervalle suffisamment long pour que les signaux se soient propagés dans tout le circuit et stabilisés. En électronique asynchrone, ce modèle est peu utilisé, si ce n'est pour concevoir la structure interne de certaines portes.

Comme chaque partie du circuit est indépendante, ils se prêtent bien à la modélisation mathématique, par exemple par des méthodes proches des réseaux de Petri.

Caractéristiques

Vitesse

D'une part, les circuits permettant de passer des données d'un élément à l'autre introduisent une latence supplémentaire, chaque élément comprenant généralement plusieurs bascules et verrous pour cela. Par contre, il n'est pas limité par un signal d'horloge global, et la vitesse n'est pas forcément la même selon les parties ou les données en entrée. Par exemple, pour des additionneurs, certaines implémentations asynchrones peuvent renvoyer le résultat dès qu'il est calculé, alors qu'un circuit synchrone doit toujours attendre jusqu'au signal d'horloge suivant (qui doit être suffisamment tard pour que les calculs soient terminés même dans le pire des cas). Ils permettent donc de bonnes implémentations en temps moyen de calcul, même si le pire des cas peut être bien plus long.

Consommation d'énergie

Les circuits asynchrones ne sont actifs que lorsque des données sont disponibles. Dans le cas contraire, ils ne consomment que la puissance due au courant de fuite des transistors, ce qui en fait des candidats crédibles pour des circuits à basse consommation, ou lorsque la charge de travail évolue rapidement. Cependant, pour assurer la communication entre les éléments, ils utilisent aussi plus de transistors que leurs équivalents synchrones, ce qui peut compenser les gains potentiels et qui augmente la taille des puces.

Modularité

Il est facile d'utiliser ensemble des circuits asynchrones différents, car aucun élément n'a besoin d'être commun, au contraire de l'horloge des circuits synchrones. C'est un avantage pour la communication avec d'autres éléments, mais aussi pour la conception, qui peut se faire de manière modulaire.

Émissions électromagnétiques

Du fait que les différents éléments ne sont pas synchronisés, les émissions électromagnétiques sont réduites tandis que la consommation électrique est lissée. Un circuit synchrone, a contrario, a tendance à émettre des ondes harmoniques de sa fréquence d'horloge et à présenter des pics de puissance consommée à chaque front d'horloge.

Protocoles de communication

Entre deux éléments d'un circuit asynchrone échangeant des données, on considère une communication à sens unique entre un émetteur et un destinataire. Il existe de nombreux moyens de la réaliser de manière fiable, mais seuls quelques-uns sont utilisés en pratique : lorsque ses données sont prêtes, l'émetteur les rend disponibles en sortie et en informe le destinataire ; celui-ci, lorsqu'il peut accepter les données (quand il a transmis ou utilisé les données précédentes), les copie, puis renvoie un signal via un second fil destiné aux réponses, appelé signal d'acquittement.

Protocole

On distingue deux protocoles, selon la façon dont le signal d'acquittement est codé :

  • soit elle correspond à une transition quelconque, de 1 à 0 ou de 0 à 1. On parle de protocole à deux phases, de "half-handshake" ou de codage NRZ (Non-return-to-zero).
  • soit le destinataire signale par une transition non seulement la réception des données, mais aussi la détection du passage par un état invalide : au cycle suivant, le signal d'acquittement est donc revenu à son état initial. On parle de protocole à quatre phases, de "full-handshake" ou de codage RZ (Return-to-zero). Malgré une apparente complexité, ce protocole permet des implémentations souvent plus simples et rapides que le protocole à deux phases.

Codage des données

Codage à données groupées

Dans ce protocole, un ou plusieurs fils transportent les données, avec un fil par bit. Un fil (Req) est destiné à la requête de l'émetteur indiquant que les données sont prêtes, et un autre (Ack) à la réponse du destinataire.

On parle souvent de micropipeline pour désigner les circuits utilisant ce codage, avec soit deux soit quatre phase. A l'origine, ce terme fait référence à un pipeline asynchrone utilisant un protocole 2 phases données groupées[2].

Codage double-rail

Les états et les transitions pour le codage trois états
4 états, 00, 01, 10 et 11, deux codant le 0 et deux le 1, de telle manière qu'il soit toujours possible d'atteindre l'un des deux en ne changeant que l'un des deux bits
Les états et les transitions pour le codage quatre états

Ici, les données et la requête sont encodés ensemble sur deux fils, la requête étant implicite lors des transitions sur ceux-ci. L'acquittement se fait via un troisième.

Deux protocoles sont largement répandus, utilisant soit trois, soit quatre états.

  • Codage quatre états

Ici, tous les états sont signifiants, mais deux codes correspondent à chaque valeur d'un bit, ce qui permet bien de changer d'état à chaque nouvelle donnée. Ce codage est bien adapté à un protocole à deux phases.

  • Codage trois états

Le codage utilisé ici comporte une valeur invalide (typiquement 00), et deux valeurs signifiantes (01 codant 0 et 10 codant 1 par exemple). L'état 11 est inutilisé. L'émetteur repasse par l'état invalide à chaque envoi de données. Pour signifier que le destinataire a remarqué le changement de valeur, une réponse est émise à chaque fois, y compris au passage par l'état invalide. Ce protocole comporte donc quatre phases.

Portes pour l'électronique asynchrone

Pour simplifier la création d'éléments asynchrones, plusieurs portes de base sont utilisées, souvent basées sur la porte C de Muller. On peut créer des portes permettant d'envoyer une donnée reçue sur deux sorties simultanément, d'envoyer toutes les données reçues sur les entrées sur une unique sortie, ou de contrôler l'accès à des ressources partagées. On peut aussi obtenir des portes équivalentes aux portes synchrones, mais utilisant un protocole de communication asynchrone, tels que des portes OU ou des additionneurs. Le caractère modulaire des circuits asynchrones permet de les combiner facilement.

Les implémentations varient bien sûr selon le protocole utilisé, mais aussi selon les propriétés recherchées (faible latence, bande passante élevée, fiabilité, déterminisme, faible consommation): certaines portes vont pouvoir renvoyer un résultat sans attendre que toutes les entrées soient disponibles[3] (par exemple une porte OU si une entrée vaut 1), ou se focaliser sur des considérations de taille ou de consommation.

Mise en œuvre

Pour créer des portes logiques utilisant des protocoles de communication asynchrones, les méthodes diffèrent suivant le codage et le protocole. En particulier :

  • les portes issues de la logique combinatoire peuvent être utilisées pour le codage à données groupées. Un délai doit alors être imposé au signal de requête de manière à ce qu'il arrive après la fin des calculs.
  • les portes peuvent aussi indiquer par elles-mêmes la fin des calculs, ce qui est facile avec un codage double-rail. Cela évite de devoir ajouter un délai, et est aussi bien adapté pour créer des portes à complétion anticipée[4]. Ces techniques requièrent par contre plus de transistors.

Les bascules, quant à elles, sont réalisées avec des portes dédiées, et diffèrent fortement selon le protocole utilisé : un protocole double-rail à 3 états permet d'utiliser des bascules à base de portes C. Les protocoles à données groupées nécessitent des portes spécifiques.

Conception de circuits asynchrones

Langages

Comme les seules choses qui importent dans un circuit asynchrone sont les interactions entre les éléments, on peut concevoir les circuits à partir de langages de haut niveau, souvent dérivés du langage CSP, par exemple CHP et Occam. Il est aussi possible d'utiliser des langages de description matérielle plus classiques, comme Verilog ou VHDL, qui ne sont pas spécifiquement destinés à la conception de circuits asynchrones.

Problèmes liés à la conception

La conception de circuits asynchrones souffre d'un manque d'outils dédiés, les principaux langages de description de matériels privilégiant les circuits synchrones. Cependant, il est possible d'utiliser ceux-ci pour dessiner des circuits asynchrones.

Le deuxième problème tient à la formation de ceux qui dessinent ces circuits, qui est généralement focalisée sur l'électronique synchrone, l'électronique asynchrone étant moins répandue et souvent vue comme moins efficace ou plus complexe.

Notes et références

  1. (en) Alain J. Martin, The limitations to delay insensitivity in asynchronous circuits, janvier 1990 [lire en ligne] 
  2. (en) Ivan E. Sutherland, Micropipelines, juin 1989 [lire en ligne] 
  3. (en) Charlie Brej, Early output logic and anti-tokens, septembre 2005 [lire en ligne] 
  4. (en) Charlie Brej, Asynchronous early output and early acknowledge dual-rail protocols, octobre 2002 [lire en ligne] 

Voir aussi

Articles connexes

Bibliographie

  • Pascal Vivet, Une méthodologie de conception de circuits intégrés quasi-insensibles aux délais : application à l'étude et à la réalisation d'un processeur RISC 16-bit asynchrone, 21 juin 2001 [lire en ligne] 
  • (en) Jens Sparsø, Asynchronous circuit design : A tutorial [lire en ligne] 
  • (en) Nigel Charles Paver, The design and implementation of an asynchronous microprocessor, 1994 [lire en ligne] 
  • Portail de l’électricité et de l’électronique Portail de l’électricité et de l’électronique

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Circuit asynchrone de Wikipédia en français (auteurs)

Игры ⚽ Нужен реферат?

Regardez d'autres dictionnaires:

  • Asynchrone Prozessorarchitektur — beschreibt ein bisher noch wenig verbreitetes Design von Prozessoren, das ohne zentralen Taktgeber auskommt. Anstatt alle Bauelemente mit einem gemeinsamen Taktsignal zu versorgen, ist der Prozessor aus asynchronen Schaltkreisen aufgebaut, die… …   Deutsch Wikipedia

  • Circuit résonant — Résonance  Cet article concerne la résonance en physique. Pour la station de radio, voir Resonance FM. Pour les structures de résonance en chimie, voir Mésomérie. La résonance est un phénomène selon lequel certains systèmes physiques… …   Wikipédia en Français

  • Processeur asynchrone — Un processeur asynchrone est un processeur sans horloge, à l inverse d un processeur synchrone. Un processeur asynchrone fonctionne ainsi aussi vite que le support physique le lui permet, ou reste inactif, partiellement ou totalement, quand il n… …   Wikipédia en Français

  • Machine Asynchrone — 8 kW La machine asynchrone, connue également sous le terme « anglo saxon » de machine à induction, est une machine électrique à courant alternatif sans connexion entre le stator et le rotor. Les machines possédant un rotor « en… …   Wikipédia en Français

  • Machine asynchrone — de 8 kW. La machine asynchrone, connue également sous le terme « anglo saxon » de machine à induction, est une machine électrique à courant alternatif sans connexion entre le stator et le rotor. Les machines possédant un rotor… …   Wikipédia en Français

  • Moteur asynchrone — Machine asynchrone Machine asynchrone 8 kW La machine asynchrone, connue également sous le terme « anglo saxon » de machine à induction, est une machine électrique à courant alternatif sans connexion entre le stator et le rotor. Les… …   Wikipédia en Français

  • Courant De Court-circuit — Le courant de court circuit d un générateur de tension parfait est, en théorie, infini. Fort heureusement, en pratique, la valeur du courant de court circuit est finie, limitée par les impédances internes de la source, des divers tronçons de… …   Wikipédia en Français

  • Courant de court-circuit — Le courant de court circuit d un dipôle est le courant qui le traverserait si ses bornes étaient reliées à un conducteur parfait de résistance nulle. Le courant de court circuit d un générateur de tension parfait est infini. En pratique, les… …   Wikipédia en Français

  • Mode de transfert asynchrone — Asynchronous transfer mode Pour les articles homonymes, voir ATM. Pile de protocoles 7 • Application 6 • …   Wikipédia en Français

  • Bascule (circuit logique) — Pour les articles homonymes, voir Bascule. Une bascule est un circuit logique capable, dans certaines circonstances, de maintenir les valeurs de ses sorties malgré les changements de valeurs d entrées. On appellera plus loin verrous les bascules… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”