• Aucun résultat trouvé

2.2 Conception des circuits asynchrones : principes fondamentaux

2.2.1 Concepts de base

2.2.1.3 Quelques styles d’impl´ ementation

Il y a plusieurs styles d’impl´ementation des circuits asynchrones. Dans cette section, nous pr´esentons les trois styles les plus courants pour impl´ementer les circuits asynchrones : le style 4-phase donn´ees-group´ees, le style 4-phase double- rail, et le style 4-phase quatre-rail. Le but de cette section est d’expliquer ces styles d’impl´ementation. Donc, nous expliquons plus loin les fondations des pipelines construits en utilisant des verrous (latches) transparents simples comme ´el´ements de stockage. Les impl´ementations de circuits plus optimis´ees peuvent ˆetre trouv´ees dans [Spar01P].

– 4-phase donn´ees-group´ees (4-phase bundled-data)

Le style 4-phase donn´ees-group´ees ressemble ´etroitement `a la conception des circuits synchrones et m`ene normalement `a des circuits plus efficaces, grˆace `a l’utili- sation ´etendue des hypoth`eses temporelles. Le pipeline 4-phase donn´ees-group´ees est particuli`erement simple. Un pipeline de Muller [Suth89M] est employ´e pour produire des impulsions d’horloge locales. L’impulsion d’horloge produite dans une ´etape se recouvre avec l’impulsion produite aux ´etapes voisines d’une fa¸con enclench´ee. La figure 2.12 montre un pipeline avec le traitement de donn´ees des circuits combina- toires, appel´e aussi blocs fonctionnels. Ces circuits combinatoires (CC ) sont ajout´es entre les verrous (L). Avec le codage donn´ees-group´ees, pour maintenir le comporte- ment correct du pipeline les d´elais ins´er´es (D ) dans les signaux requˆetes doivent ˆetre ´

egaux ou sup´erieurs aux d´elais maximaux des circuits combinatoires correspondants (cf. section 2.2.1.1).

Fig. 2.12 : Un pipeline 4-phase donn´ees-group´ees simple.

Le fonctionnement du pipeline peut ˆetre expliqu´e comme suit : quand un ´etage re¸coit une donn´ee avec une requˆete de l’´etage pr´ec´edent, elle va acquitter (mettre le signal d’acquittement Acq. `a 1) si elle est prˆete `a consommer cette donn´ee (le signal d’acquittement Acq. venant de l’´etage suivant est mis `a 0).

Ce circuit peut ˆetre regard´e comme un flot de donn´ee « synchrone » traditionnel, se composant de verrous et de circuits combinatoires qui sont synchronis´es par un contrˆoleur d’horloge distribu´e (a distributed gated-clock driver ). Ce circuit peut ainsi ˆ

etre regard´e comme une structure flot de donn´ee asynchrone qui se compose de deux types de composants : les verrous et les blocs fonctionnels, comme indiqu´e par les ´

el´ements entour´es de pointill´es.

L’impl´ementation de pipeline repr´esent´ee dans la figure 2.12est tr`es simple mais elle a quelques inconv´enients : quand il se remplit, l’´etat des sorties des portes de Muller (C1, C2, C3, C4, etc) est (0, 1, 0, 1, etc.), et par cons´equent seul un verrou sur deux peut stocker des donn´ees. Ce n’est pas plus mauvais que dans un circuit synchrone en utilisant des bascules maˆıtre-esclave, mais il est possible de concevoir des pipelines asynchrones qui sont meilleurs sur ce point. Un autre inconv´enient est la vitesse. Le d´ebit d’un pipeline d´epend du temps qu’il prend pour accomplir un cycle de poign´ee de main et pour l’impl´ementation ci-dessus ceci implique la com- munication avec les deux voisins.

– 4-phase double-rail (4-phase dual-rail)

Le style 4-phase double-rail est l’approche inspir´ee du travail de David Muller dans les ann´ees 1950. Il est ´egalement bas´e sur le pipeline de Muller, mais d’une mani`ere plus raffin´ee avec le codage combin´e des donn´ees et de la requˆete. Si on met des pipelines de Muller en parall`ele, on peut obtenir un pipeline 1-bit en utilisant un signal d’acquittement commun par ´etage afin de synchroniser l’op´eration. La figure2.13montre l’impl´ementation d’un pipeline 1-bit avec une profondeur de trois ´

etages sans traitement de donn´ees.

Ce pipeline utilise le codage trois ´etats, cf. section2.2.1.1, pour coder les donn´ees. Donc, une paire de portes de Muller dans un ´etage de pipeline peut stocker un

Fig. 2.13 : Un pipeline 1 bit simple avec profondeur de 3 ´etages.

codeword vide (empty codeword ) {r.0, r.1} = {0, 0}, causant le signal d’acquittement sortie Acq. de cet ´etage `a 0, ou il peut stocker un des deux codeword valides {0, 1} et {1, 0}, causant le signal d’acquittement sortie Acq. de cet ´etage `a 1. Vu que le codeword {1, 1} n’est pas l´egal et puisqu’il ne se produit pas, nous pouvons donc dire que le signal d’acquittement Acq. g´en´er´e par le port OU indique sans risque que l’´etat de l’´etage du pipeline est « valide » ou « vide ».

Afin d’´etablir un pipeline N -bit, nous pouvons utiliser N pipelines 1-bit en pa- rall`ele. Parce qu’il n’est pas assur´e que tous les bits arrivent en mˆeme temps, il faut donc synchroniser ces signaux avant les blocs fonctionnels. Dans un but de minimi- sation des fils sur le lien au d´etriment de la performance et de la surface, les signaux d’acquittement individuels sont combin´es en utilisant une porte de Muller N -entr´ees pour avoir un signal d’acquittement global.

– 4-phase quatre-rail (4-phase MR[4])

L’impl´ementation 4-phase quatre-rail est similaire `a l’impl´ementation 4-phase double-rail, sauf que le codage de donn´ee « 1-of-4 » est utilis´e [Bain01D]. Avec ce codage, quatre rails sont utilis´es pour coder une information de 2 bits. Chaque rail indique une combinaison parmi quatre possibles (« 00 », « 01 », « 10 », et « 11 »). L’avantage de ce style de circuit est la consommation : il a besoin du mˆeme nombre de rails de requˆete pour envoyer deux bits, mais de la moiti´e des transitions par rapport au style 4-phase double-rail.

La figure 2.14 montre l’impl´ementation d’un pipeline 2-bit 4-phase quatre-rail avec un profondeur de trois ´etages sans traitement de donn´ees. Quatre portes de Mul- ler dans un ´etage de pipeline peuvent stocker un codeword vide {r.0, r.1, r.2, r.3} = {0, 0, 0, 0} causant le signal d’acquittement sortie Acq. de cet ´etage `a 0, ou un des quatre codeword valides {0, 0, 0, 1}, {0, 0, 1, 0}, {0, 1, 0, 0}, et {1, 0, 0, 0} causant le signal d’acquittement sortie Acq. de cet ´etage `a 1.

Fig. 2.14 : Un pipeline 2 bits 4-phase codage « 1-of-4 ».