• Aucun résultat trouvé

3. Les oscillateurs en anneau asynchrones

3.1. Oscillateurs en anneau à inverseurs

Les oscillateurs en anneau à inverseurs sont des structures composées de chaîne d’inverseurs qui sont largement utilisées dans l’industrie pour générer des signaux d’horloge de part leur simplicité et bonne intégration dans les flots de conception standard. Bien qu’ils soient qualifiés d’asynchrones, ces oscillateurs n’utilisent pas de protocole de requête/acquittement comme ceux décrits dans la section précédente (les collisions de données sont possibles).

3.1.1. Architecture et principe de fonctionnement

L’architecture d’un anneau à inverseurs (Inverter Ring Oscillator - IRO) est représentée dans Fig. 2.6. L’anneau se compose d’une chaîne d’inverseurs rebouclée sur elle même. Chaque inverseur effectue la négation de la valeur du signal en entrée, ce qui peut donner lieu à la propagation d’événements (ou "fronts") au sein de l’anneau comme décrit dans Fig. 2.7. Chaque séquence (constituée des valeurs de sortie de deux étages successifs) de type "00" ou "11" correspond alors

2. http ://ceur-ws.org/Vol-827/16_OndrejGallo_article.pdf

3. http ://www.cs.columbia.edu/async/publications/minimalist-tech-report.pdf

Figure 2.6 – Architecture d’un anneau à inverseurs

à un événement susceptible de se propager dans l’anneau. Chaque événement se propage après un délai, noté D, correspondant au temps de propagation d’un inverseur.

Figure 2.7 – (a) Propagation d’un événement présent à l’entrée de l’étage Ci−1 vers l’entrée de l’étage Ci (b) Chronogramme de la propagation de cet événement

3.1.2. Modes de fonctionnement

Au niveau de leur comportement, en fonction de la parité du nombre d’étages, deux cas de figure peuvent se présenter :

• Le nombre d’étages est impair

Le nombre d’événements à l’initialisation est alors nécessairement impair (par construction). Quelque soit ce nombre initial d’événements, le circuit finit par se stabiliser dans un mode d’oscillation stable. En effet, les différences de délais entre les différents inverseurs, aussi minimes soient elles (dues par exemple à la variabilité de procédé de fabrication), font que les événements finissent par se collisionner et s’annuler deux-à-deux. Par exemple, un anneau à 3 étages initialisé à l’état "000" (trois événements potentiels) finit nécessairement dans un état ne comportant qu’un événement (par exemple "010" ou "001"). Il apparait alors un comportement oscillatoire transitoire avec des

événements qui finissent par se rattraper dans le temps et s’annuler deux-à-deux. Ne subsiste alors qu’un événement qui se propage librement dans l’anneau, entrainant un comportement oscilla-toire stable. Il s’agit ici de l’utilisation standard des anneaux à inverseurs pour générer un signal d’horloge. La fréquence d’oscillation d’un tel anneau est donnée par la formule suivante :

Fosc= 1 2LD

où L est le nombre d’étages et D le délai de propagation d’un étage. La différence de phase entre deux étages successifs de l’anneau correspond au délai de propagation d’un étage D. Comme il n’y a qu’un événement qui se propage, alors la résolution de phase minimale de l’anneau correspond à ce délai D.

• Le nombre d’étages est pair

Le nombre d’événements à l’initialisation est alors nécessairement pair. Comme dans le cas précé-dent, le circuit oscille dans un régime transitoire le temps que tous les événements se collisionnent et s’annulent deux-à-deux. Le circuit arrête alors d’osciller et se stabilise dans un état bloqué (par exemple un anneau à deux inverseurs finit toujours par se stabiliser dans l’état "01" ou "10"). Ce type de fonctionnement est exploité dans [FCN13] pour l’implantation de fonction physique inclonable (Physical Unclonable Function - PUF) et correspond au fonctionnement d’un circuit bistable. La durée des oscillations transitoires dépend principalement des asymétries dans les diffé-rentes branches de l’anneau et des pentes des signaux oscillants. Il existe également un cas théorique où ce type de circuit oscille indéfiniment. Ce comportement est observé en simulation si toutes les branches du circuit sont rigoureusement identiques (avec le même délai de propagation), les évé-nements peuvent circuler indéfiniment sans se rattraper s’ils sont initialisés uniformément répartis dans la structure. Ce cas est néanmoins rarement observé en pratique : les légères asymétries dues à la variabilité de procédé de fabrication des transistors sont généralement suffisantes pour provoquer la collision d’événements et donc l’arrêt des oscillations.

3.1.3. Utilisation

Il est à retenir que ces anneaux sont la plupart du temps utilisés avec un nombre impair d’étages pour obtenir le comportement oscillatoire permanent attendu d’une horloge. Les étages sont souvent non initialisés puisqu’après un temps de démarrage et indépendamment de l’initiali-sation, il ne subsiste qu’un événement qui se propage durant le régime d’oscillation permanent. Il est à noter aussi qu’il existe plusieurs variantes des ces oscillateurs utilisant des portes plus com-plexes (pour permettre par exemple d’initialiser chaque étage indépendamment). L’anneau peut également consister en une seule porte inverseuse suivie d’un nombre quelconque d’éléments de retard.

L’implantation de ce type d’anneau est très simple et s’intègre parfaitement dans le flot de conception de circuits ASIC (Application-Specific Integrated Circuit). En ce qui concerne l’implan-tation dans les circuits reprogrammables, notamment les FPGA (Field-Programmable Gate Array), le concepteur dispose de plusieurs solutions pour réaliser des portes inverseuses et des éléments de retard. Ceux-ci peuvent être réalisés dans des blocs logiques programmables de type LUT (Look-Up-Table). Néanmoins, la précision en phase et fréquence de ce type d’implantation est fortement

conditionnée par la maîtrise des délais dans les lignes de retard qui sont souvent réalisées avec des structures complexes composées de multiplexeurs.

Les oscillateurs en anneau à inverseurs sont largement cités dans la littérature scientifique et ont été abondamment étudiés, modélisés et caractérisés. Ces oscillateurs sont a priori des circuits asynchrones, mais qui ne respectent pas les règles de conception décrits dans la section précédente. Le reste de cette section s’intéresse à un type d’oscillateur en anneau asynchrone qui respecte les règles de conception asynchrone, il utilise notamment un protocole de communication 2-phase pour gérer l’ordonnancement des évènements qui se propagent et pour éviter leur collision.