version PDF - Flash informatique
Transcription
version PDF - Flash informatique
Supprimer l’horloge ? Jean-Claude Martin, [email protected] & [email protected], EIA-FR HES-SO Fribourg, Olivier Gloriod, [email protected] (EICN HES-SO Le Locle), et [email protected] (EPFL + EIVd Lausanne), Préambule Q D 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). DATA A B CLK 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. CLK DATA 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. 16kHz D Q DFF DFF 32kHz CLK Q CLK 8kHz Q 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. 32kHz 16kHz signaux quasi-synchrone 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 cœur des PC La fréquence d’horloge est la caractéristique principale et le cœur des systèmes informatiques, comme mon Pentium II à 450MHz de 1999 ou votre P4 à 2.2GHz (2002). Pourquoi un PC sans cœur ? 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 FI 7 - 26 septembre 2003 – page 13 Supprimer l’horloge ? méthodes disponibles aujourd’hui permettant de faire fonctionner correctement un système numérique asynchrone, et ont réalisé quelques exemples démonstratifs. variable REQ fait partie des données DATA). On parle alors de circuits auto synchrones ou autochrones. DATA 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). REQ ACK 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): DATA REQ ACK E P R V E V 3 1 2 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 FI 7 - 26 septembre 2003 – page 14 ACK circuit autosynchrone Le diagramme temporel montre un système de communications à 4 phases: P E DATA R V 1 ACK 3 2 E V 4 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. B DATA A B A DATA CLK D Q DFF DATA CLK CLK Q 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. a a C b q b q élé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: Supprimer l’horloge ? 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: a b q B start A élément C (CMOS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . eb1 . . . . . . . .1 . . . . . . . . . . . . eb2 . . . . . . . .2 . . . . . . . . . . . . eb3 . . . . . . . .3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . eb4 . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lref complnit SAR done 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: lin GT Circuit analogique LT s_sar Data OUT . . . . . . . . . . . . . . . . . élé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). 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■. FI 7 - 26 septembre 2003 – page 15