• Aucun résultat trouvé

3. Les oscillateurs en anneau asynchrones

3.2. Oscillateurs en anneau auto-séquencés

Contrairement aux oscillateurs en anneau à inverseurs classiques, les oscillateurs en anneau auto-séquencés permettent la propagation simultanée de plusieurs événements sans qu’il y ait de collision grâce à des mécanismes de contrôle local dérivés des techniques de conception asynchrone. Cette section décrit ces anneaux et détaille leur comportement temporel.

3.2.1. Architecture et fonctionnement

L’oscillateur en anneau auto-séquencé est composé d’une chaîne de portes de Muller (telles que décrites dans la section 2.2.3) dont l’une des deux entrées est inversée. Il s’agit en réalité de la structure de contrôle d’un micropipeline tel que définie par I. E. Sutherland dans [Sut89], qui a été rebouclée pour former un anneau. Son architecture ainsi que la table de vérité d’un étage sont données dans Fig. 2.8. Chaque étage i est connecté à la sortie de l’étage précédent Ci−1 via son entrée directe Fi (forward input), et à celle de l’étage suivant Ci+1 via son entrée inversée Ri

(reverse input).

Figure 2.8 – Architecture d’un anneau auto-séquencé

Les étages du micropipeline communiquent entre eux via un protocole à poignée de main "2 phases" tel que décrit dans la section 2.2.2 de ce chapitre. Un événement (dans le sens transition électrique) sur une entrée Fi d’un étage correspond à une requête venant de l’étage précédent (Ci−1) tandis qu’un événement sur l’entrée Ri correspond à l’acquittement de l’étage suivant (Ci+1). Un événement sur la sortie de l’étage Cisert à la fois de requête pour l’étage suivant (Ci+1)

et d’acquittement pour l’étage précédent (Ci−1). Chaque requête et acquittement correspond au transfert d’une donnée (ici la donnée correspond à un événement) entre deux étages inter-connectés. Contrairement aux anneaux à inverseurs, plusieurs événements peuvent circuler dans l’anneau sans collision grâce au protocole à poignée de main.

L’anneau est initialisé avec N événements qui commencent à se propager durant un état tran-sitoire. L’anneau finit par atteindre un régime permanent où les événements se réarrangent dans l’anneau dans l’une des deux manières suivantes : soient il forment un agrégat qui se propage d’une manière régulière dans l’anneau (mode d’oscillation en rafale - Burst oscillation mode), soient ils se dispersent de manière uniforme tout au long de l’anneau et se propagent avec un espacement tem-porel constant (mode d’oscillation régulier - Evenly-spaced oscillation mode). Fig. 2.9 représente les deux modes d’oscillations d’un anneau asynchrone. Ces deux modes d’oscillation sont stables et dépendent des paramètres statiques de l’anneau tels que le nombre d’événements choisi à l’ini-tialisation et les délais de propagation d’un étage. Le mode d’oscillation régulier peut être utilisé pour générer des horloges configurables à haute précision fréquentielle dont la fréquence peut être réglée grâce au contrôle du nombre d’événements circulant dans l’anneau [EYRF10]. Une analyse de ces modes d’oscillation, des effets analogiques qui les provoquent et des modèles utilisés pour les décrire est proposée dans la section 4 de ce chapitre.

Figure 2.9 – Modes d’oscillation d’un anneau auto-séquencé

3.2.2. L’abstraction jetons/bulles

La suite de cette section présente la modélisation comportementale des anneaux asynchrones. Il est à noter qu’aucune hypothèse temporelle relative aux délais des portes logiques n’est faite à ce stade.

Le concept de bulles et jetons, dérivé du protocole de communication 2 phases tel que décrit dans [Ren10], offre un cadre qui facilite la représentation des données circulant dans un micropi-peline asynchrone. Nous définissons les termes suivants :

– On dit qu’un étage i contient un jeton T (token) si sa sortie Ci est différente de celle de l’étage précédent Ci−1, un jeton représente alors la présence de donnée à l’entrée d’un étage :

– On dit qu’un étage i contient une bulle B (bubble) si sa sortie Ci est égale à celle de l’étage précédent Ci−1, une bulle indique que l’étage est prêt à recevoir des données :

L’étage i contient une bulle ⇔ Ci = Ci−1

Il est à noter que le nombre de bulles et jetons est fixé à l’initialisation de l’anneau et ne varie pas durant la propagation grâce aux mécanismes de contrôle local qui empêchent la collision de données (un jeton ne peut pas se propager à l’étage suivant si celui-ci contient également un je-ton). Bien qu’elle soit généralement associée au protocole de communication 2-phases, l’abstraction jeton/bulles peut également être utilisée pour représenter les données circulant dans un anneau à inverseurs classique. Néanmoins, cela n’a pas d’intérêt concret étant donné que l’oscillateur en anneau à inverseurs ne conserve pas le nombre de données initial à cause des collisions.

3.2.3. Règles de propagation

A partir de la définition ci-dessus des bulles et jetons et de la table de vérité d’un étage de l’anneau (Fig. 2.8), on peut déduire la règle de propagation suivante :

– Un jeton présent dans l’étage i se propage à l’étage suivant i + 1 si et seulement si l’étage

i+ 1 contient une bulle (i.e. qu’il est libre et prêt à consommer une nouvelle donnée) – De manière équivalente, une bulle présente dans l’étage i+1 se propage vers l’étage précédent

i si et seulement si l’étage i contient un jeton (i.e. que lorsque l’étage i + 1 consomme une donnée il libère l’étage précédent i, celui-ci est alors prêt à consommer une nouvelle donnée) Fig. 2.10 représente la propagation d’un jeton dans un circuit de contrôle de micropipeline asyn-chrone entre un étage i et l’étage suivant i + 1. La condition pour la propagation d’une donnée dans l’anneau peut donc être résumée par l’équation :

Ci−16= Ci et Ci= Ci+1 (2.1)

Figure 2.10 – Propagation d’un jeton dans un circuit de contrôle d’une micropipeline asynchrone Ces règles impliquent que pour qu’il y ait propagation de données dans l’anneau, il faut que celui-ci contienne au moins une bulle et un jeton. Le nombre de jetons étant nécessairement pair (par construction), l’anneau doit donc contenir au moins 3 étages. Soient L le nombre d’étage de l’anneau, NT le nombre de jetons et NB le nombre de bulles, on a alors :

– L ≥ 3, avec L = NB+ NT

– NT2, avec NT pair – NB ≥1

3.2.4. Modes de fonctionnement

Intuitivement, on peut s’attendre à ce que la forme du signal de sortie d’un anneau auto-séquencé dépende à la fois du nombre de jetons y circulant ainsi que de leur disposition initiale dans l’anneau. La réalité est tout autre, toutes les observations expérimentales et simulations électriques d’anneaux auto-séquencés montrent que les données se réarrangent naturellement dans l’anneau en fonction de leur nombre et de la taille de l’anneau, mais indépendamment de leur disposition initiale. Les observations montrent également qu’il existe deux modes de propagation : le mode «régulier» qui correspond à une propagation régulière des jetons (evenly-spaced propagation mode) et le mode «rafale» qui correspond à une propagation en rafale des jetons (burst propagation mode), tels que représentés sur Fig. 2.9. La durée du régime transitoire (pendant lequel les événement se "ré-arrangent") dépend principalement de la disposition initiale des jetons dans la structure. Par ailleurs le mode "régulier" est toujours obtenu pour une gamme de jetons continue (centrée ou non autour de la moitié du nombre d’étages en fonction des l’asymétrie de l’étage de base).

De manière plus générale, les circuits de type micropipeline constituent une classe à part en-tière de circuits asynchrones. Une part importante des recherches dans le domaine de la conception asynchrone s’est donc intéressé à l’explication et modélisation des modes de propagation des don-nées dans leur circuit de contrôle afin d’optimiser les performances de ces systèmes. De ce fait, de nombreuses méthodes et approches ont été étudiées pour en évaluer et en optimiser les perfor-mances ([EFS98], [WG01], [GWG02],[HFMR08] et [Ham09]). La plupart de ces études ont pour objectif d’obtenir une propagation rapide et sans contention des données afin d’optimiser les dé-bits. La section suivante de ce chapitre traite donc de la modélisation temporelle fine des anneaux auto-séquencés et des phénomènes analogiques rentrant en jeu.