Circuits multi-horloges: métastabilité et synchronisation Gérard Berry Collège de France Chaire Algorithmes, machines et langages http://www.college-de-france.fr/site/gerard-berry gerard.berry@college-de-france.fr Cours 4, 5 mars 2014
Les systèmes embarqués du XXIe siècle Bien plus complexes, distribués, déterministes plusieurs fonction sur chaque SoC ou ECU, plusieurs horloges coordination des sous-systèmes réseaux embarqués : NoC, PAN, LAN, Time-Triggered, etc. Mélange de styles contrôle continu + automates, systèmes distribué, moins déterministes GALS, temps continu + discret en simulation, etc. Interfaces asynchrones et l’orchestration de services best effort depuis le Web asynchrone G. Berry, Collège de France 05/03/2014
Les circuits du XXIe siècle SPI I2C LIN CAN USB Ethernet WIFI DOCSIS Compo DISPLAY Audio H.265 CORE ITC MMU TIMER UART PRCMU PWM DAC ADC GPU MEM CTLR CPU CORE ITC MMU TIMER UART Capteur CPU CORE ITC MMU TIMER UART IPs multiples, horloges multiples, réseaux (NoCs) protocoles de communication et gestion d’énergie complexes Nécessité de niveaux de simulation multiples Construire le logiciel avant le chip simulation TLM G. Berry, Collège de France 05/03/2014
Quelques grandes questions Quels sont les caractéristiques des temps propres des acteurs? indéterminés, imprécis, précis, continus, discrets, localement réguliers, localement variables, etc. Quels rapports entre les temps des acteurs? asynchrones, synchrones, vibratoires, etc. Comment traiter des données de temporalités différentes? Quels sont les principaux styles architecturaux? synchrone réparti, GALS, synchronisation molle, simulations discrètes, continues, mixtes continues / discrètes, etc. G. Berry, Collège de France 05/03/2014
Cours et séminaires 2014 5 mars : circuits multi-horloges GALS, métastabilité 5 mars : temps réel réparti faiblement synchronisé 5 mars : A. Benveniste (INRIA) 12 mars : synchronisation d’horloges en distribué 5 mars : : synchronisation sur puce à échelle arbitraire 5 mars : : F. Anceau (CNAM / UPMC) 19 mars : coopération de modèles de temps 5 mars : : modélisation et simulation de systèmes 5 mars : : physiques 5 mars : : K-J. Åström (Lunds Univ, Sweden) G. Berry, Collège de France 05/03/2014
Cours et séminaires 2014 26 mars : circuits cycliques et logiques constructive 5 mars : modélisations hybrides continues / discrètes 5 mars : M. Pouzet (ENS Paris) 2 avril : Jouer avec le temps 5 mars : : systèmes parallèles temps-réel 5 mars : : A. Cohen (INRIA) et M. Duranton (CEA) 9 avril : Cerveau, cognition et temps 9 avril : V. van Vassenhove (Neurospin) 9 avril : compléments et réponse aux questions 9 avril : G. Berry, Collège de France 05/03/2014
Que vous soyez physiquement présents ou internautes, envoyez toutes vos questions à gerard.berry@college-de-france.fr Et inscrivez vous sur la liste de diffusion, en page d’accueil du cours http://www.college-de-france.fr/site/gerard-berry/index.htm#course G. Berry, Collège de France 05/03/2014
Pourquoi plusieurs horloges ? Difficulté de distribuer précisément des horloges sur une grande surface Mais voir le séminaire de François Anceau après ce cours! Composants (IPs) variés, venant de vendeurs variés, et ayants des fréquences propres différentes CPUs, DSPs, GPUs, MPEG, USB, WiFi, radio, contrôle de RAMs, DMAs, gestion d’énergie, etc. Introduction d’horloges arrêtables et réglables en fréquence pour économiser l’énergie baisser la fréquence permet de baisser le voltage et l’énergie dissipée dépend du carré du voltage G. Berry, Collège de France 05/03/2014
Distribution d’horloges du Pentium 4 G. Berry, Collège de France 05/03/2014
Horloges multiples du Pentium 4TM G. Berry, Collège de France 05/03/2014
Horloges réalignées sur l’Itanium TM G. Berry, Collège de France 05/03/2014
Horloges multiples synchrones même phase mésochrones : décalage de phase constant Même fréquence plésiochrones : décalage de phase variable Fréquences différentes harmoniques rapports rationnels asynchrones rapports inconnus / variables G. Berry, Collège de France 05/03/2014
Horloges asynchrones métastabilité zone h1 zone h2 1 1 G. Berry, Collège de France 05/03/2014
Références métastabilité / synchroniseurs Histoire : My Work on All Things Metastable (Me and My Glitch) Histoire : T. J. Chaney, http://www.arl.wustl.edu/~jst/cse/260/glitchChaney.pdf RG-IEEE : Metastability and Synchronizers: A Tutorial RG-IEEE : Ran Ginosar, IEEE Design & Test, Sept/Oct. 2011 RG-14 : Fourteen Ways to Fool your Synchronizer RG-14 : Ran Ginosar, Proc. ASYNC conf., 2003 RG-SC : Ginosar-Synchronization-Color.pdf RG-14 : Ran Ginosar, communication personnelle DK : Synchronization and Arbitration in Digital Systems RG-14 : D. J. Kinniment, Wiley, 2007. G. Berry, Collège de France 05/03/2014
Synchroniseur mésochrone source RG-IEEE G. Berry, Collège de France 05/03/2014
Synchroniseur mésochrone prendre la plus vieille valeur disponible Attention, avec 2 registres seulement, risque de métastabilité au début ou à la fin ! G. Berry, Collège de France 05/03/2014
Flip-Flop (registres) et Latch, vision théorique source : RG-SC FF 2 latchs opposés (Master / Slave) transparent opaque G. Berry, Collège de France 05/03/2014
Réalisation d’un latch transparent Q D clk h source : DK b clk1, D1 h0, b1 Q1 Q0 clk1, D0 h1, b0 Q1 Q0 clk0 h1, b1 QQ, QQ G. Berry, Collège de France 05/03/2014
Contraintes électriques d’un latch clk ω w T clk s setup h hold D délai long sortie 1, 0 ou glitch métastabilité G. Berry, Collège de France 05/03/2014
Bons et mauvais comportements du latch source : RG-SC G. Berry, Collège de France 05/03/2014
Longs délais et métastabilité source : RG-SC G. Berry, Collège de France 05/03/2014
Fréquence d’erreurs d’échantillonnage FR 1 / T fréquence réceptrice FE fréquence du changement de l’entrée w sh largeur de la bande interdite Err fréquence d’erreur potentielle Err FEw T FEFRw Exemple réaliste: FR 1GHz FE 100 MHz w 20 ps T 50 Err 108 10 9 2 10 11 Err 2 10 6 Oups, 2 millions de fois par seconde ! G. Berry, Collège de France 05/03/2014
Métastabilité : Chaney et Molnar, 1970+ My Work on All Things Metastable OR: (Me and My Glitch) March 2012 Thomas J. Chaney G. Berry, Collège de France 05/03/2014
Modèle analogique d’un latch métastable C : capacité R : résistance -A : amplificateur négatif VA0, VB1 VA1, VB0 stable VAVB0,5 métastable bruit thermique source : RG-IEEE G. Berry, Collège de France 05/03/2014
Entrée en métastabilité d’un latch pas 100 ps pas 1 ps pas 0,1 fs source : RG-SC G. Berry, Collège de France 05/03/2014
Effet du voltage de départ V0 source : RG-SC G. Berry, Collège de France 05/03/2014
Sortie de métastabilité source : RG-SC G. Berry, Collège de France 05/03/2014
La loi exponentielle explosion exponentielle du voltage, passage au seuil des transistors source : RG-IEEE G. Berry, Collège de France 05/03/2014
Temps de résolution et MTBF Probabilité de rester métastable après un temps t : et / où dépend du montage, 1 FO4 (“not” à 4 sorties) S : durée de stabilisation visée S : valable pour toute suite de latchs ! 𝑒 S/ MTBF FEFRw S T S 2T G. Berry, Collège de France 05/03/2014
MTBF de résolution du registre Temps de résolution S 1 cycle d 10ps : temps d’une porte élémentaire (FO4) N #d par T : nb de portes (FO4) sur un chemin critique MTBF N2/4 d eN/2 N Fréq. GHz MTBF (s) MTBF intuitif 16 6,25 1,9 106 rien du tout ! 32 3,12 2,2 103 pas grand chose ! 48 2,08 152 pas terrible ! 64 1,56 8.1 105 9,3 jours, mieux 100 1 1,3 1014 4 106 ans 128 0,78 2,6 1020 8,1 1012 ans !!! G. Berry, Collège de France 05/03/2014
Le synchroniseur 2-FF de base rarement métastable mais souvent lent et souvent non-déterministe S T jamais métastable, jamais lent mais souvent non-déterministe ! S 2T Si on s’y prend bien, la métastabilité et le long délai s’échangent contre le non-déterminisme G. Berry, Collège de France 05/03/2014
Désastre garanti Chaque synchroniseur peut être non-déterministe source RG-14 Chaque synchroniseur peut être non-déterministe indépendamment des autres ! G. Berry, Collège de France 05/03/2014
Protocole de synchronisation Source RG-IEEE G. Berry, Collège de France 05/03/2014
Synchroniseur 4 phases clk clk source RG-14 G. Berry, Collège de France 05/03/2014
G. Berry, Collège de France 05/03/2014
Simulation Esterel v7 multi-horloges visualisation Esterel Studio G. Berry, Collège de France 05/03/2014
Mauvais design FF1 FF2 Mauvaise valeur échantillonnée par FF2 source RG-14 Mauvaise valeur échantillonnée par FF2 si FF1 se stabilise trop lentement ! G. Berry, Collège de France 05/03/2014
Mauvaise optimisation gagner un registre et un cycle source RG-14 FF Mauvaise valeur échantillonnée par FF si R1 se stabilise trop lentement ! G. Berry, Collège de France 05/03/2014
Presque bon mais pas portable ! d8 source RG-14 CPU 60-100 MHz Modem 55 MHz Supprimer l’acknowledge A est dangereux, car il dit aussi si les données utilisées ont été lues Passage du CPU à 200 MHz incorrect ! G. Berry, Collège de France 05/03/2014
Reset et Clear doivent être synchronisés source : RG14 Évitent la métastabilité si RESET trop près de CLOCK G. Berry, Collège de France 05/03/2014
Synchroniseurs sûrs ou agressifs source RG-SC G. Berry, Collège de France 05/03/2014
FIFO multi-horloges Une FIFO F découple temporellement l’émetteur et le récepteur Tant que F non pleine, l’émetteur peut écrire à chaque cycle, et le lecteur peut lire à chaque cycle tant que F non vide Mais dans le cas multihorloge, on ne peut pas détecter exactement F pleine / F vide ! => Approche conservative, toujours du côté sûr : dire plein à l’émetteur même si pas vraiment plein, et vide au récepteur même si pas vraiment vide Simulation and Synthesis Techniques for Asynchronous FIFO Design Clifford E. Cummings, Sunburst Design, Inc. Proc. ESNUG San Jose 2003 G. Berry, Collège de France 05/03/2014
Fifo bi-horloges Pour contrôler le non-déterminisme, les pointeurs doivent impérativement être passés en code Gray ! wclk horloge de l’émetteur rclk horloge du récepteur G. Berry, Collège de France 05/03/2014
Pourquoi le code Gray? gray(n) bin(n) oux bin(n/2) 0000 1 0001 2 0011 3 0010 4 0110 5 0111 6 0101 7 0100 8 1100 9 1101 10 1111 11 1110 12 1010 13 1011 14 1001 15 1000 gray(n) bin(n) oux bin(n/2) Un seul bit change de n à n+1 pour un pointeur reçu, au plus un bit peut changer en 3 ticks au lieu de 2 le pointeur peut avancer de - 0 si changement pas vu - 1 si changement vu ou changement précédent vu avec 1 cycle de retard - 2 si changement et changement précédent vus ensembles tests plein / vide sûr dans tous les cas ! G. Berry, Collège de France 05/03/2014
C’est-y pas beau, le code Gray ? source http://lordikc.free.fr/wordpress/?p=12 G. Berry, Collège de France 05/03/2014
Conclusion Passer d’une zone d’horloge à une autre, c’est toute une aventure (à ne pas laisser aux débutants) Mais tout est bien compris désormais (merci D. Chaney, R. Ginosar et tous les autres) Et l’évolution se fait vers des réseaux sur puce (NoCs, Network Fabrics), qui utilisent les techniques précitées Mais ce sera pour une autre année ! G. Berry, Collège de France 05/03/2014