• Aucun résultat trouvé

Circuit asynchrones : un état de l’art

1.3 Classification des circuits logiques

1.3.4 Circuits asynchrones à données groupées

Les circuits à données groupées (Bundled-data) (BD) séparent physiquement le contrôle et les données. Ces signaux sont transportés parallèlement et simultanément sur deux supports distincts. Comme illustré par lafigure 1.9, on peut donc distinguer deux parties dans ces circuits : la partie chemin de données et la partie chemin de contrôle.

La première est très similaire à un circuit synchrone. Elle est constituée de blocs logiques combinatoires délimités par des éléments séquentiels. Elle utilise le même modèle de délais bornés. On considère souvent que ce chemin de données est un circuit synchrone auquel l’horloge a été enlevée. Il n’est d’ailleurs pas rare que cette partie soit utilisée successivement de manière synchrone et asynchrone6.

A l’inverse, la partie contrôle est la plupart du temps un circuit QDI voire DI. Elle implémente un protocole de poignée de main entre différents contrôleurs de registres qui la constituent. Ceux-ci génèrent les signaux de validité qui contrôlent les registres, permettant ainsi de cadencer la propagation des données à travers le pipeline.

5. Une interconnexion entre la sortie d’un élément du circuit et les entrées d’au moins deux autres éléments.

6. Par exemple, le HT80C51, un micro-contrôleur asynchrone de la société Handshake Solution, propose un mode synchrone (http://www.keil.com/dd/docs/datashts/handshake/ht80c51_um.pdf).

1.3. Classification des circuits logiques

Figure 1.9 – Modèle de circuit asynchrone à données groupées.

Pour conserver la cohérence entre les données et les signaux de contrôle, il faut s’as-surer qu’ils se propagent à la même vitesse sur leurs chemins respectifs. Ainsi une hypo-thèse temporelle supplémentaire est indispensable : le temps de propagation des données (tlancement) doit être être plus court que le temps de propagation des signaux de contrôle (tcapture). De manière à tenir cette contrainte, un élément de retard, aussi appelé délai

matché, est ajouté entre chaque contrôleur avec un temps de propagation équivalent à la logique combinatoire correspondante.

1.3.4.1 Protocoles à données groupées

Il existe de nombreux protocoles adaptés aux circuitsBDs. D’un côté, les protocoles 2 phases sont considérés rapides et efficaces grâce à leur poignée de main ne nécessitant que deux transitions : un événement de requête et un événement d’acquittement. Cependant, ils requièrent un mécanisme de conversion de phase pour transformer les fronts montants et descendants de ces évènements en un signal capable d’activer les éléments séquentiels du chemin de données. Ces mécanismes génèrent des chemins temporels et des boucles combinatoires qui rendent l’analyse temporelle statique (Static Timing Analysis) (STA) plus délicate. D’un autre côté, les protocoles 4 phases utilisent une séquence deRZ pour retrouver leur état initial à la fin de la poignée de main. Quatre transitions sont donc nécessaires pour effectuer un cycle de communication complet : deux évènements sur la requête et deux évènements sur l’acquittement. Ces protocoles apparaissent donc plus lents et moins efficaces que leurs homologues 2 phases. Ils utilisent cependant des structures de branchements (fourches, démultiplexeurs, multiplexeurs, etc.) plus simples et la phaseRZ peut être exploitée pour réduire la consommation et la surface de ces protocoles [Sim+16]. La figure 1.10donne l’implémentation typique d’un contrôleur de registre pour 7 pro-tocoles différents. A titre de comparaison, il donne aussi l’implémentation d’un circuit synchrone à base d’horloge réactive. Dans un souci de généricité et d’adéquation à un contexte industriel, chacune de ces primitives est construite avec des cellules logiques standards. A chaque fois qu’une porte de Muller est requise, nous utilisons donc l’implé-mentation de type « porte majorité » (figure 1.7f). Trois protocoles 2 phases très connus sont présentés : Micropipeline, Mousetrap et Click.

En 1989, Sutherland [Sut89] proposait le tout premier protocole à données grou-pées : le Micropipeline. Ce protocole est très simple. Il utilise une unique porte de Muller (figure 1.10b) pour resynchroniser les signaux de requête et d’acquittement de ses canaux d’entrée et de sortie. Comme des registres fonctionnant sur les deux fronts d’horloge (dual-edge flip-flop) sont rarement disponibles dans les bibliothèques de cellules standard, nous utilisons un générateur d’impulsions à base d’une porte OU-exclusif (XOR) pour faire la

(a) Horloge réactive (b) Micropipeline (c) Mousetrap (d) Click

(e) WCHB (f) Burst mode (g) Early Ack (h) Maximus

Figure 1.10 – Implémentations typiques de différents schémas de circuits.

conversion de phase et ainsi contrôler de simples registres7.

Une dizaine d’années plus tard, Singh et Nowick [SN01] présentaient le schéma Mou-setrap (figure 1.10c). Leur objectif était alors de créer des pipelines asynchrones avec un débit plus important tout en conservant une très faible empreinte. Ils remplacent alors la porte de Muller du contrôleur et l’élément mémorisant du chemin de données par des verrous D, initialement ouverts, qui permettent aux données et aux signaux de requête de se propager très rapidement et sans discontinuité dans le circuit. Données et requêtes sont piégées par les contrôleurs – à la manière d’un piège à souris – dès qu’elles ont traversé leur verrou respectif. L’étage reste alors bloqué jusqu’à ce que le contrôleur suivant ait à son tour basculé. La conversion de phase est aussi assurée par une porteXORqui détecte le statut du canal de sortie8 et ferme ou ouvre le verrou en conséquence.

Une autre dizaine d’années plus tard, Peeters et al. [Pee+10] soumettaient à la communauté un nouveau modèle, baptisé Click (figure 1.10d), dans le but de simplifier l’analyse temporelle et d’améliorer la testabilité des circuits à données groupées. Cette primitive n’utilise aucune porte logique exotique et l’état interne du protocole est stocké dans un simple registre. Ainsi, ce contrôleur peut être testé avec les méthodes de Design For Test (DFT) habituelles. De plus, le registre casse les boucles combinatoires internes du contrôleur qui sinon perturbent les outils deSTA. La conversion de phase est faite à l’aide de deux portesXOR, chacune d’elle permettant de détecter l’état du canal d’entrée

7. Des verrous sont employés dans l’implémentation proposée par Sutherland [Sut89]. Cependant les concepteurs sont généralement réticents à les utiliser. Nous préférons donc l’utilisation de registres classiques.

8. Première phase du protocole lorsque requête et acquittement ont des valeurs différentes, deuxième phase dans le cas contraire.

1.3. Classification des circuits logiques ou du canal de sortie. Bien sûr, ces avantages sont apportés au prix d’une taille et d’une consommation plus importante.

La figure 1.10 présente également quatre protocoles 4 phases : Weak Condition Half-Buffer (WCHB), Burst mode, Early acknowledgment et Maximus.

Le protocole WCHB [FD96] (figure 1.10e) est identique à un schéma Micropipeline pour lequel le bloc de conversion de phase aurait été enlevé. L’implémentation en cellules standard de ce protocole est donc très petite, mais elle présente une limitation majeure : seule la moitié des étages d’un pipeline utilisant ce schéma peuvent simultanément contenir une donnée. En d’autres termes, les données sont toujours espacées par un contrôleur. Le terme half-buffer dans le nom de ce protocole retranscrit cette spécificité9.

Les schémas Burst-mode [YBA96] (figure 1.10f) et Early acknowledgment [MY08] (fi-gure 1.10g) implémentent tous deux un protocole à capture tardive. La donnée est mémo-risée sur le front descendant de la requête du canal d’entrée. Ce type de protocole permet de réduire la taille du délaimatché, car celui-ci est parcouru deux fois avant que les don-nées ne deviennent valides. De plus, le protocole Early acknowledgment utilise un délai asymétrique de manière à accélérer la phase de retour-à-zéro. Il autorise ainsi un temps de cycle très proche du pire chemin de la partie chemin de données.

Enfin, le protocole Maximus [Sim+16] (figure 1.10h) est aussi un protocole tardif. Il a été conçu pour minimiser les phases de RZ sans avoir recours à un délai asymétrique. Il en résulte le schéma le plus complexe de tous ceux présentés (trois portes de Muller sont nécessaires), mais qui est particulièrement efficace lorsque le chemin de données est conséquent (la complexité du contrôleur est alors masquée par le gain associé aux délais

matchés réduits).