• Aucun résultat trouvé

une vraie analyse temporelle statique des circuits à données

3.3.8 Comparaison de différents protocoles

Afin de valider la polyvalence de la méthode LCS, nous proposons de comparer 7 protocoles à données groupées couramment utilisés. Nous étudions également le schéma de circuit à horloge réactive qui se prête bien à la descriptionLCSet, pour avoir un point de référence, nous incluons à ce comparatif un circuit purement synchrone. Un pipeline

10. Du fait des degrés de liberté existants sur la manière de caractériser les cellules standards, de légères adaptations peuvent être nécessaires suivant le fournisseur de bibliothèque.

3.3. Du STG aux LCS en passant par les RTC 1 # I ) r o o t c l o c k s d e f i n i t i o n 2 FOR e a c h r e g i s t e r c o n t r o l l e r 3 DO c r e a t e c l o c k on p o i n t of d i v e r g e n c e 4 DO add it to l o c a l c l o c k set l i s t 5 END 6 # II ) d u m m y c l o c k s d e f i n i t i o n 7 FOR e a c h d u m m y c o n t r o l l e r 8 DO c r e a t e d u m m y c l o c k on l o o p - b r e a k e r p o i n t 9 END 10 # e v e n t s p r o p a g a t i o n 11 DO p r o p a g a t e c l o c k s ( u p d a t e _ t i m i n g ) 12 # III ) e v e n t p r o p a g a t i o n c l o c k s d e f i n i t i o n 13 FOR e a c h p r o t o c o l p h a s e

14 FOR e a c h req / ack i n p u t of FCS & d u m m y c o n t r o l l e r s 15 FOR e a c h c l o c k p r o p a g a t i n g to c u r r e n t i n p u t 16 IF c u r r e n t c l o c k is not d u m m y

17 DO c r e a t e g e n e r a t e d c l o c k on c o n t r o l l e r o u t p u t \

18 f r o m req or ack i n p u t

19 DO add it to the a p p r o p r i a t e l o c a l c l o c k set 20 # e v e n t s p r o p a g a t i o n 21 DO p r o p a g a t e c l o c k s ( u p d a t e _ t i m i n g ) 22 E N D I F 23 END 24 END 25 END 26 # IV ) c a p t u r e / l a u n c h c l o c k s d e f i n i t i o n

27 FOR e a c h req / ack i n p u t of r e g i s t e r c o n t r o l l e r s 28 FOR e a c h c l o c k p r o p a g a t i n g to c u r r e n t i n p u t 29 IF c u r r e n t c l o c k is not d u m m y

30 DO c r e a t e g e n e r a t e d c l o c k on c o n t r o l l e r o u t p u t \

31 f r o m req or ack i n p u t

32 DO add it to the a p p r o p r i a t e l o c a l c l o c k set

33 E N D I F 34 END 35 END 36 # V ) t i m i n g e x c e p t i o n s d e f i n i t i o n 37 DO d e f i n e h o l d f a l s e p a t h to / f r o m c a p t u r e c l o c k s 38 DO d e f i n e s e t u p f a l s e p a t h to / f r o m l a u n c h c l o c k s 39 DO d e f i n e a s y n c h r o n o u s g r o u p f o r e a c h l o c a l c l o c k set 40 # T r a n s f o r m c l o c k i n t o e v e n t 41 DO d e f i n e 0 - c y c l e p a t h f r o m all c l o c k s to all c l o c k s 42 DO d e f i n e all c l o c k s as p r o p a g a t e d

Table 3.1 – Nombre d’horloges constituant les LCS des contraintes de regroupement et d’´ecrasement des donn´ees pour différents protocoles à données groupées. i correspond au nombre d’étages du circuit.

Nombre d’horloges

Schéma Total Racine Factice Générée

Synchrone 1 1 0 0 Horloge réactive 6 1 0 5 WCHB 5 i 1 i 0 4 i Burst mode 10 i 2 i 0 8 i Early ack. 9 i 2 i 0 7 i Maximus 8 i 1 i 2 i 5 i Micropipeline 3 i 1 i 0 2 i Mousetrap 10 i 2 i 0 8 i Click 6 i 1 i 0 5 i

linéaire de 320 étages et large de 256 bits est construit pour chacun de ces modèles de circuits. LesRTC de regroupement et d’´ecrasement de donn´ees sont converties en règles LCSqui permettent de générer les contraintesSDCpour tous ces circuits. Ces protocoles sont alors comparés en termes de nombre d’horloges nécessaires, de temps d’exécution et d’empreinte mémoire de laSTA.

Le tableau 3.1 montre que le nombre d’horloges nécessaires pour décrire ces deux RTC pour chacun des modèles est très disparate. Pour les circuits à données groupées, nous constatons un facteur supérieur à trois entre les nombres maximum et minimum d’horloges. Cela dépend bien sûr de l’implémentation de chaque contrôleur. Le protocole Mousetrap présente les règles les plus complexes avec 10 horloges par étage de pipeline. Il intègre en effet un mécanisme de conversion de phase qui requière la définition d’EPC décrivant la propagation de chacune des polarités des signaux de contrôle. Le protocole Click utilise aussi un bloc de conversion de phase. Il y associe cependant un élément séquentiel qui permet d’éviter les boucles combinatoires et de simplifier les règlesLCS. A l’opposé, le modèle Micropipeline présente les règles les plus simples avec 3 horloges par étage. Le protocoleWCHB utilise deux horloges supplémentaires pour décrire les phases de retour-à-zéro. Les autres contrôleurs sont aussi des protocoles 4-phases et nécessitent également de modéliser les phases deRZ. Ils demandent en moyenne 9 horloges par étage pour décrire les 2RTC.

Étonnamment, si l’empreinte mémoire est relativement corrélée avec le nombre d’hor-loges, ce n’est pas le cas du temps d’exécution (voir tableau 3.2). Alors que les autres protocoles présentent des durées d’analyse sensiblement identiques, le modèle Mousetrap montre un incrément de facteur 4 sur le temps d’exécution par rapport au circuit syn-chrone. Le nombre d’horloges, plus important, ne semble pas suffisant pour justifier ce surcoût : le protocole Burst mode utilise le même nombre d’horloges mais dispose d’un temps d’analyse deux fois moindre. Nous soupçonnons que l’utilisation de verrous soit la cause principale de cette différence. Les outils synchrones n’ont pas été initialement conçus pour analyser les circuits à base de verrous et semblent avoir des performances dégradées dans ces cas-là. Le temps d’exécution du schéma Click est très proche de celui du syn-chrone. Cela semble lié à l’absence de boucle dans le circuit de contrôle, ce qui facilite le travail du moteur d’analyse temporelle. Enfin, le circuit à horloge réactive présente les résultats les plus imprévus. Alors que nous pourrions nous attendre à des performances si-milaires à la référence synchrone, le temps d’analyse est presque doublé. Nous en concluons que le temps d’exécution ne dépend pas seulement du nombre d’horloges, mais aussi du nombre d’éléments séquentiels « vus » par chacune de ces horloges.

3.4. LCS et flot d’implémentation physique Table 3.2 – Impact de la méthode LCS sur l’empreinte mémoire et le temps d’exécution de la STA pour différents protocoles d’un pipeline 320 étages et de 256 bits de large. Le ratio par horloge est donné.

Temps d’execution (s) Empreinte mémoire (Mo)

Type Schéma Total Ratio Total Ratio

Synchrone SynchroneHorloge réactive 26,5947,15 ref 1962.9 ref +77 % 2049.3 +4 % 4-phases WCHB 36,16 +36 % 2501.3 +27 % Burst mode 45,39 +71 % 3266.5 +66 % Early ack. 50,74 +91 % 3221.9 +64 % Maximus 35,93 +35 % 2612.1 +33 % 2-phases Micropipeline 32,49 +22 % 2305.5 +17 % Mousetrap 106,54 +306 % 3046.3 +55 % Click 32,27 +21 % 2521.6 +28 %

Bien sûr, cette comparaison ne prend en compte que deux RTC. D’autres analyses seraient nécessaires pour précisément comparer ces différents modèles de circuits du point de vue de leur impact sur les performances des outils deCAO. Lors de la sélection d’un protocole à données groupées de nombreux autres paramètres doivent aussi être pris en compte : le débit, l’efficacité énergétique ou la testabilité. Ceux-ci ne sont pas traités dans notre travail. Mais en analysant avec succès des circuits de grandes tailles11, cette comparaison valide le principal objectif de la méthodeLCS: laSTAdes circuits à données groupées est possible, quel que soit le protocole utilisé et la taille du circuit analysé. Ainsi, réduire le nombre d’horloges utilisées pour chaque LCS ne semble pas être une priorité. Afin de simplifier la manipulation des LCS, il semble possible de dupliquer les horloges racines (une pour chaque LCS) sans trop impacter les temps d’exécution.

Il apparaît tout de même que l’analyse des circuits à base de verrous est moins aisée. Pour faciliter la compréhension des concepteurs habitués aux circuits à base de bascules et pour exploiter au mieux les capacités detime borrowing des verrous, les outils de STA prennent systématiquement en compte la période d’horloge lors des vérifications tempo-relles. Les chemins temporels sont vérifiés entre deux fronts successifs ouvrant les verrous. Ce comportement permet d’analyser plus facilement des circuits mélangeant bascules et verrous, mais il empêche de transformer les horloges en évènement au sens de la méthode LCS. Un mode avancé de l’outil PrimeTime permet de s’affranchir de ce phénomène et d’ainsi retrouver une analyse plus réaliste12. Nous supposons que ce mode d’analyse ex-plique en partie le rallongement des temps d’exécution.

3.4 LCS et flot d’implémentation physique

Une fois traduites au format SDC, les LCS peuvent être utilisées tout au long du flot d’implémentation physique. Elles permettent aux moteurs deSTAde connaître l’ensemble des contraintes temporelles à respecter. L’approcheLCS ne présume à aucun moment de l’emplacement des délais matchés. Ainsi, elle est une véritable traduction, et non une simple interprétation, des exigences temporelles. Elle donne aux outils toute la latitude

11. A titre de comparaison, un processeur peut être implémenté en utilisant 5 étages de pipeline (voir [Dum+09;SYK18])

12. En activant la variable timing_enable_through_path, les chemins de setup et dehold sont lancés par un front ouvrant les verrous et capturés par un front les fermant.

nécessaire pour effectuer leurs optimisations sur le circuit.