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