FLASH INFORMATIQUE FI



Supprimer l’horloge ?




Jean-Claude Martin

Riadh Ghezal

Olivier Gloriod

André Stauffer


Préambule

Circuit synchrone. Tout le monde sait, parce qu’il l’a appris, parce qu’il l’a pratiqué, que tout système logique séquentiel doit être synchrone pour qu’il fonctionne correctement. Ainsi tous les circuits utilisés en informatique, du petit microcontrôleur au gros ordinateur, ont une horloge centrale (CLK) permettant d’assurer un fonctionnement fiable (par exemple le séquencement des instructions du programme à exécuter) et une communication fiable entre ses composants (par exemple l’activation des bus de commandes et de données).

circuit synchrone 

Avec un circuit synchrone, l’horloge permet d’éviter les problèmes de retards. La figure ci-dessous montre des signaux DATA avec une commande de transfert au flanc montant de l’horloge globale CLK et commune aux deux blocs A et B, composants du circuit synchrone.

signaux synchrones 

Circuit asynchrone

Il y a bien sûr des exceptions, des circuits qui fonctionnent sans être synchrone. Par exemple de petits circuits spéciaux, comme celui de la montre électronique, où la chaîne de division du quartz (32kHz) destinée à la commande de l’aiguille des secondes (1Hz) est quasi synchrone, c’est-à-dire sans horloge commune aux 15 étages de division par 2 (32’768=215). Ceci pour économiser l’énergie de commutation d’une horloge qui commande tous les blocs. Ainsi le signal 32kHz du quartz ne commande que le premier étage de division, au lieu de tous les étages pour une version synchrone.

circuit quasi synchrone 

Avec plusieurs étages de division, le contrôle des retards est délicat par exemple lorsqu’on veut combiner plusieurs fréquences.

signaux quasi-synchrones 

Ainsi, dès que la complexité augmente, une horloge commune est utilisée, même dans les circuits horlogers, en ajoutant si nécessaire un mode de repos, qui bloque l’horloge lorsque le système n’a rien à faire.

Le coeur des PC

La fréquence d’horloge est la caractéristique principale et le coeur des systèmes informatiques, comme mon Pentium II à 450MHz de 1999 ou votre P4 à 2.2GHz (2002).

Pourquoi un PC sans coeur ? Supprimer cette horloge commune, comme dans l’exemple de la division de fréquence, permettrait

1 d’éviter les problèmes d’horloge (par exemple pour de grands systèmes avec des retards de la synchronisation d’un endroit à l’autre du système),
2 de diminuer la consommation en supprimant la contribution de CLK,
3 de limiter la pollution électromagnétique liée à la commutation synchrone de toutes les lignes d’horloge et aux pointes de courant induites par les commutations simultanées des capacités. On peut aussi
4 envisager d’augmenter la fréquence de travail si chaque bloc travaille à sa fréquence limite (et non pas à la limite globale de tout le système).

Mais supprimer l’horloge implique de résoudre autrement le bon fonctionnement d’un circuit séquentiel et la communication de données entre les composants d’un système.

Dans le cadre d’un projet HES-SO système numérique asynchrone, les auteurs du présent article ont analysé des méthodes disponibles aujourd’hui permettant de faire fonctionner correctement un système numérique asynchrone, et ont réalisé quelques exemples démonstratifs.

Communication asynchrone

La première technique de suppression de l’horloge globale CLK est de n’utiliser la logique synchrone que localement (dans les blocs, en générant une horloge locale), et de trouver une technique de communication entre blocs sans horloge (le système est donc localement synchrone et globalement asynchrone). Voici une description de circuit asynchrone.

On remplace l’horloge globale (CLK) par des signaux locaux de synchronisation entre chacun des blocs qui communiquent des données entre eux. Un exemple de ce type de synchronisation par un signal de requête (REQ) et un autre signal d’accusé de réception (ACK) est montré ci-dessous.

Pour réaliser une communication asynchrone (sans l’horloge CLK), on ajoute deux variables locales REQ et ACK. La première est générée par le bloc A, elle indique que le transfert peut débuter (et que les données DATA sont stables). La seconde est fournie par le bloc B et indique que le transfert est terminé (les données DATA peuvent changer pour un nouveau transfert).

communication asynchrone 

Cette méthode évite une horloge globale et permet une synchronisation locale. L’exemple ci-dessous montre un transfert de données sans horloge globale entre A et B. Le bloc A indique avec REQ que les données sont disponibles et stables (1), puis le bloc B lit les données DATA et indique avec ACK au moment où il a terminé (2). Le cycle peut recommencer (phases 3 et 4) :

signaux asynchrones 4 phases 

Notons que cette technique s’apparente à celles utilisées par les bus de communication, mais avec des durées de transmission qui sont déterminées par le bloc émetteur (temps 1) puis par le récepteur (temps 2). Il n’y a pas d’horloge commune sur le bus mais un dialogue asynchrone.

On peut économiser la variable REQ et utiliser un codage particulier des données DATA pour débuter le transfert (la variable REQ fait partie des données DATA). On parle alors de circuits auto synchrones ou autochrones.

circuit autosynchrone 

Le diagramme temporel montre un système de communications à 4 phases :

signaux autosynchrones 4 phases 

Elément de Muller

Une manière plus radicale du supprimer l’horloge est la synthèse de circuits séquentiels insensibles aux délais, appelés QDI (quasiment insensibles aux délais).

L’élément de base pour la synthèse de circuit synchrone est la bascule. Exemple ci-dessous avec une bascule de type D, composée de deux éléments de mémoire (master et slave). Pour plus de détails, nous vous proposons de revoir le volume V du traité d’électricité EPFL.

Bascule D 

Supprimer l’horloge conduit à supprimer les bascules, à les remplacer par un élément sans horloge décrit ci-dessous.

Pour des circuits QDI, on peut se contenter d’une cellule plus simple appelée cellule de Muller ou élément C. C’est un élément de mémoire élémentaire à deux états et deux entrées a et b.

Elément C 

On peut décrire son fonctionnement séquentiel par l’équation q+=ab+aq+bq et montrer qu’il est plus petit qu’une bascule synchrone puisqu’il ne contient qu’un élément de mémoire, alors que la bascule en contient deux (master et slave). Voici un exemple de réalisation en technologie CMOS :

Elément C (CMOS) 

Ce circuit peut aussi être synthétisé automatiquement à partir d’une description VHDL et être réalisé sur FPGA. Résultat de la synthèse automatique à partir des équations :

Elément C (FPGA) 

Il est donc connu et possible de réaliser des circuit séquentiels sans horloge qui fonctionnent (nous l’avons vérifié) en respectant les règles QDI (utilisation de l’élément C). Il faut bien sûr créer de nouvelles cellules (bibliothèque de cellules asynchrone) ou utiliser des portes comme dans l’exemple de l’élément C sur FPGA. Bien sûr que les cellules habituelles comme les bascules sont proscrites.

Les exemples réalisés sur circuit prédiffusé et FPGA avaient pour objectif de mesurer pratiquement le prix à payer pour supprimer l’horloge, soit l’apprentissage de nouvelles méthodes de synthèse et l’augmentation du nombre de portes pour une fonction donnée.

Circuits sans horloge réalisés

Une interface I2C a été réalisée à Yverdon, alors qu’un convertisseur AD à approximations successives était conçu au Locle (partie analogique) et à Fribourg (partie digitale).

Ces circuits sont relativement simples, ils existent en version synchrone en vue de comparaisons. Chaque bloc a été réalisé en circuits QDI, les transmissions de données en techniques auto synchrone. Toutes les parties logiques ont finalement été implantées et testées sur FPGA.

Le convertisseur AD à approximations successives (figure ci-dessous) comporte deux circuits analogiques (DAC et COMP), intégrés sur un circuit prédiffusé, et un circuit logique asynchrone (SAR). Le circuit analogique travaille avec des courants (I). Le premier bloc analogique (DAC) multiplie un courant de référence (Iref) par la valeur de s_sar. Le deuxième bloc analogique (COMP) compare deux courants (Idac et Iin), il fournit le résultat digital plus grand ou plus petit (GT et LT).

La partie digitale (SAR) commande une séquence d’approximations successives faites par la partie analogique et fournit finalement les bits (s_sar) du résultat du convertisseur AD. L’intérêt est de réaliser une machine d’états (SAR) sans horloge et avec des éléments C, avec communications asynchrones entre les blocs (communications A et B de la figure).

Convertisseur AD à approximations successives :

signaux asynchrones AD 8 bits 

Conclusions

L’élément de Muller et la technologie QDI sont une alternative à considérer dans l’avenir puisque l’horloge et la synchronisation dans un grand circuit posent des problèmes délicats.

Hélas, le prix à payer est une logique plus complexe (il faut approximativement doubler le nombre de portes équivalentes), de nouvelles cellules et bibliothèques à générer et des techniques de synthèse, d’optimisation, de simulation et de synthèse à revoir.

Une autre limitation importante est l’environnement FPGA assez incompatible aujourd’hui avec les conceptions asynchrones surtout lorsque les graphes d’état sont utilisés (en particulier toutes les bascules restent inutilisées).

 

Références

• C.H. van Berkel et al., Applications of Asynchronous Circuits. Proceedings of the IEEE, Vol. 87, No. 2, pp. 223-233, February 1999.
• M.B. Josephs et al., Modeling and Design of Asynchronous Circuits. Proceedings of the IEEE, Vol. 87, No. 2, pp. 234-242, February 1999.
• Quoc Thai Ho et al., Implementing Asynchronous Circuits on LUT Based FPGAs. Proceedings of FPL 2002, LNCS 2438, pp. 36-46, Springer-Verlag, Heidelberg 2002.



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.