Chapitre I : Synchronisation de système 1.1. Introduction Les technologies pour la conception et la construction microélectronique ont eu une amélioration significative depuis que les premiers circuits intégrés discrets commerciales ont été introduites à la fin des années 1950. Comme prévu par la loi de Moore dans les années 1960, la densité des circuits intégrés (IC : Integrated Circuit) a doublé environ tous les 18 mois, et ce doublement de quantité a été accompagnée d'une augmentation exponentielle de la vitesse du circuit (ou, plus précisément, la fréquence d'horloge). A la suite de cette révolution extraordinaire dans la technologie des semi-conducteurs, il n'est pas rare pour les circuits intégrés modernes de contenir plus de dix millions d'éléments de commutation (i.e. transistors) emballées dans une zone de puce de 500mm2. Les performances des CI sont généralement caractérisées par la vitesse de fonctionnement, la fonctionnalité disponible, et la consommation d'énergie. Il existe de nombreux facteurs qui influent directement sur ces caractéristiques. L'augmentation de performances des circuits a été en grande partie réalisée par les méthodes suivantes: • Réduction de la taille; capacité à fabriquer des structures plus petites et plus rapides, • Augmentation de la surface de la puce, ce qui permet un plus grand nombre de circuits et donc une plus grande fonctionnalité sur la puce • Les progrès de la technologie d'emballage, permettant l'augmentation du volume de trafic de données entre un CI et de son environnement ainsi que l'élimination efficace de la chaleur. Les circuits intégrés les plus complexes sont considérés comme des circuits VLSI (Very LargeScale Integration). Ce terme décrit la complexité des circuits intégrés modernes constitués de centaines de milliers à plusieurs millions d'éléments de transistor actives. Actuellement, les fabricants de circuits intégrés ont une capacité technologique pour la production de masse de circuits VLSI de 0,12μm. Ces technologies de sub-1/2-micrometer sont identifiés par le terme submicroniques profonds (DSM : deep submicrometer). 1.2. Systèmes VLSI synchrones 1.2.1. Présentation générale Typiquement, un système VLSI numérique exécute un algorithme de calcul complexe, telle qu'une transformée de Fourier rapide ou une architecture microprocesseur RISC. Bien que les systèmes VLSI contiennent un grand nombre de composants, ces systèmes emploient seulement un nombre limité de différents types de portes logiques. Chaque élément logique accepte certains signaux d'entrée et calcule un signal de sortie utilisé par d'autres éléments. Un système VLSI est un réseau de plusieurs dizaines de milliers de portes logiques dont les bornes sont reliées entre elles afin de mettre en œuvre l'algorithme cible. Les variables de commutation agissant comme des entrées et des sorties d'une porte logique dans un système VLSI sont représentés par des qualités physiques tangibles, car un certain nombre de ces appareils sont reliés entre eux pour obtenir la fonction désirée de chaque porte logique. Les spécificités des caractéristiques physiques sont résumées par le terme «technologie» qui englobe tous les détails pour le type et le comportement des dispositifs qui peuvent être construit, le nombre et la séquence des étapes de fabrication, et l'impédance des différents matériaux d'interconnexion utilisés. Aujourd'hui, plusieurs technologies permettent la mise en œuvre de systèmes VLSI à haute performance, ceux-ci sont les CMOS, les bipolaires, et les BiCMOS. La conception d'un système VLSI peut exiger beaucoup d'efforts en vue d'examiner une large gamme de questions d'architecture et de logique; c'est en choisissant les portes et les interconnexions appropriées que la fonction requise du circuit est atteinte. Aucune conception n’est terminée sans tenir compte des caractéristiques dynamiques de propagation du signal. Chaque calcul effectué par un circuit 1 de commutation implique de multiples transitions de signaux entre les états logiques et nécessite une quantité limitée de temps pour se terminer. La tension à chaque nœud de circuit doit atteindre une valeur spécifique pour que le calcul soit achevé. Par conséquent, la conception de CI est largement centrée autour de la tâche de prédire et d’interpréter les formes des signaux aux différents points du circuit. Dans un système de type VLSI, des millions de transitions de signaux individuels déterminent les retards des portes et la vitesse globale du système. Certaines de ces transitions peuvent être exécutées simultanément, tandis que d'autres doivent être exécutées dans un ordre chronologique strict. L'apparition séquentielle de ces dernières doit être bien coordonnée dans le temps de sorte que le fonctionnement du système soit logiquement correct, et que ses résultats soient fiables. Cette coordination qui est connu comme la « synchronisation » est essentielle pour assurer que toute paire d'opérations logiques dans un circuit ayant une relation de priorité procède dans le bon ordre. Dans les CI numériques, la synchronisation est obtenue à tous les stades de la conception du système. A quelques exceptions près, ces circuits sont basés sur un schéma de cadencement entièrement synchrone. Un exemple d'un système entièrement synchrone est représenté sur la Fig. 1.1 (a). Comme illustré sur la Fig. 1.1 (a), il y a trois composantes reconnaissables dans ce système. Le premier volet, les portes logiques appelés collectivement la logique combinatoire, fournissent l'ensemble des opérations que le système exécute. La deuxième composante, les éléments de stockage cadencés ou tout simplement les registres, sont des éléments qui stockent les résultats des opérations logiques. Ensemble, la logique combinatoire et les registres constituent la partie de calcul du système et sont reliés entre eux d'une manière qui met en œuvre la fonction requise. La troisième composante, connue comme étant le réseau de distribution d'horloge, qui commande la synchronisation d'ensemble du circuit en générant une référence de temps et en distribuant convenablement cette référence à chaque registre. Figure 1.1: Système synchrone ; a) le modèle de la machine à états finis ; b) chemin de données locales. Le fonctionnement normal d'un système, tel que représenté sur la Fig. 1.1 (a), se compose de l'exécution itératif des calculs dans la logique combinatoire, suivie de la mémorisation des résultats traités dans les registres. Le processus réel de stockage est temporellement contrôlé par le signal d'horloge. Les transitions des signaux dans les sorties de porte logique sont terminées si les sorties sont établis à un état valide. Au début de chaque cycle de calcul, les entrées du système ainsi que les données stockées dans les registres, initient un nouveau processus de commutation. A chaque avancée du temps, les signaux se propagent à travers la logique combinatoire, et générant les résultats à sa sortie. A la fin 2 de la période d'horloge, ces résultats sont stockés dans les registres et sont actionnés pendant le cycle d'horloge suivant. Par conséquent, le fonctionnement d'un système numérique peut être considéré comme l'exécution séquentielle d'un grand ensemble de calculs simples qui se produisent simultanément dans la partie logique combinatoire du système. Le concept d'un chemin de données locales est une abstraction utile pour chacune de ces opérations simples et est représentée sur la Fig. 1.1 (b). La grandeur du retard de la logique combinatoire est liée avec l'exigence de stockage de données dans les registres à l'intérieur d'une période d'horloge. Le registre initial R i est l'élément de stockage au début de la voie de données locale et fournit une partie ou la totalité des signaux d'entrée pour la logique combinatoire au début du cycle de calcul. Le trajet se termine par les données d’encliquetage final avec succès dans le registre Rf, où les résultats sont stockés à la fin du cycle de calcul. 1.2.2. Avantages et inconvénients des systèmes synchrones Le comportement d'un système entièrement synchrone est bien définie et contrôlable tant que la fenêtre de temps fourni par la période d'horloge est suffisamment longue pour permettre à chaque signal dans le circuit de se propager à travers les portes logiques et les interconnexions et d’être inscrit à l'intérieur du registre final. Lors de la conception le système et le choix de la période d'horloge appropriée, deux exigences contradictoires, doivent être satisfaites. Tout d'abord, plus la période d'horloge est petite, plus le nombre de cycles de calculs pouvant être effectués par le circuit dans un laps de temps donné augmente. En variante, la fenêtre de temps défini par la période d'horloge doit être suffisamment grande pour que les signaux les plus lents atteignent les registres de destination avant que le cycle d'horloge actuel ne soit terminé et que le cycle d'horloge suivant ne soit amorcé. Cette manière d'organiser les calculs ont fait que la synchronisation synchrone soit le régime de premier choix pour les systèmes VLSI numériques: • Il est facile à comprendre et ses propriétés et ses variations sont bien comprises. • Le comportement non déterministe du retard de propagation dans la logique combinatoire est éliminé, de telle sorte que le système dans son ensemble ait un comportement complètement déterministe correspondant à la mise en œuvre de l’algorithme. • La conception du circuit n'a pas besoin de se préoccuper des sorties car la seule caractéristique dynamique pertinente de la logique combinatoire est le retard de propagation. • L'état du système est complètement défini dans les éléments de stockage; ce fait simplifie la conception, la mise au point, et les phases de test dans l'élaboration d'un grand système. Cependant, le paradigme synchrone a aussi certaines limites qui rendent la conception d'un système synchrone VLSI difficile: • Cette approche synchrone présente un inconvénient car elle nécessite que l'ensemble du circuit fonctionne aussi lentement que le plus lent chemin de registre à registre. Ainsi, le débit global d'un système entièrement synchrone dépend de ces chemins dans la logique combinatoire avec les plus grands retards; ces chemins sont également connus comme le pire des cas d’exécution ou des chemins critiques. Dans un système de type VLSI, les retards de propagation dans les chemins combinatoires sont réparties de façon inégale de sorte qu'il peut y avoir plusieurs chemins ayant des retards beaucoup plus petites que la période d'horloge. Ce déséquilibre des retards de propagation est parfois si dramatique que la vitesse du système est dictée par une poignée de chemins très lents. • Le signal d'horloge doit être distribué à des dizaines de milliers de registres de stockage dispersés dans le système. Par conséquent, une partie importante de la zone de système et la puissance dissipée est consacrée au réseau de distribution d'horloge, qui est une structure de circuit qui n’effectue pas de fonction de calcul. • Le fonctionnement fiable du système dépend des hypothèses concernant les valeurs des retards de propagation qui, s'il n'est pas satisfait, peut conduire à des violations de synchronisation catastrophiques et rend le système inutilisable. 3 1.3. Synchronisation synchrone et réseaux de distribution d’horloge 1.3.1. Fondement La plupart des circuits numériques intégrés haute performance mettent en œuvre un traitement de données avec des algorithmes basés sur l'exécution itérative des opérations de base. Ces algorithmes sont parallélisées en pipeline en insérant des registres cadencés à des endroits précis dans tout le circuit. La stratégie de synchronisation pour ces registres cadencés dans la grande majorité des systèmes VLSI/ULSI est une approche totalement synchrone. Il n'est pas rare que le processus de calcul dans ces systèmes se propage sur des centaines de milliers d'éléments logiques fonctionnelles et sur des dizaines de milliers de registres. Plusieurs facteurs influent sur le temps de propagation des signaux. Étant donné que le réseau de distribution d'horloge est constitué de portes logiques et d'interconnexions, les signaux dans le réseau de distribution d'horloge sont également différés en temps. En outre, la dépendance du bon fonctionnement d'un système au retard du signal dans le réseau de distribution d'horloge est beaucoup plus grande que celle au retard des portes logiques. Rappelons qu’en délivrant le signal d'horloge aux registres à des moments précis, le réseau de distribution d'horloge quantifie essentiellement le temps d'un système synchrone (en périodes d'horloge), ce qui permet l'exécution simultanée d'opérations. La nature du signal d'horloge sur puce est devenue un facteur primaire limitant les performances d’un circuit, amenant le réseau de distribution d'horloge à devenir un goulot d'étranglement pour les systèmes VLSI à haute vitesse. La principale source de charge pour les signaux d'horloge est de passer à travers des portes logiques à l'interconnexion, changeant ainsi la nature physique de la charge à partir d'une capacité localisée (C) à un réseau résistif-capacitif distribué (RC) de la charge. Ces impédances d'interconnexion dégradent les formes des signaux et augmentent le retard de trajet. Ces changements ont un impact profond sur les choix de la méthodologie de conception synchrone et sur la performance globale du circuit. Parmi les conséquences les plus importantes sont la puissance accrue dissipée par le réseau de distribution d'horloge, ainsi que les contraintes de temps de plus en plus difficiles qui doivent être remplies afin d'éviter des violations de synchronisation. Par conséquent, la plupart des approches utilisées pour concevoir un réseau de distribution d'horloge tentent de simplifier les objectifs de performance, en ciblant un décalage d'horloge global minime ou nulle. Ceci peut être obtenu par différentes stratégies de routage, la synthèse de tampon d'horloge en arbre, par symétrie H-arbres, ou par série de tampons connectés distribués comme un maillage. 1.3.2. Définitions et notations Un système numérique synchrone est un réseau de portes logiques et de registres dont les bornes d'entrée et de sortie sont reliées entre elles par des fils. Une séquence de portes logiques connectés (pas de registres) est appelé un chemin de signal. Les chemins de signaux délimitées par les registres sont appelés chemins séquentiellement adjacentes et sont définies comme suit : Définition 1.1: Paire de registres séquentielle adjacente. Pour une paire de registre arbitrairement ordonnée dans un circuit synchrone, l'une des deux situations suivantes peut être observée. Soit il existe au moins un trajet de signal qui connecte une certaine sortie de Ri à une certaine entrée de Rf, ou Rf de n'importe quelle entrée ne peut pas être atteint à partir de n'importe quelle sortie de Ri en se propageant à travers une unique séquence d’éléments logiques. Dans le premier cas, désigné par π 1 βΆ π 2 , la paire de registres est appelée une séquence adjacente de paire de registres et des événements de commutation à la sortie de Ri peuvent éventuellement affecter l'entrée de Rf au cours de la même période de l'horloge. Une paire adjacente de manière séquentielle de registres est également considéré comme un chemin local de données. Un circuit entièrement numérique synchrone est formellement défini comme suit: Définition 1.2 : Un circuit numérique totalement synchrone π = 〈πΊ, π , πΆ〉 est ordonné triplement, si: - πΊ = {π1 , π2 , … , ππ } est l'ensemble de toutes les portes logiques combinatoires, - π = {π 1 , π 2 , … , π π } est l'ensemble de tous les registres, et 4 πΆ = βππ,π βπ×π est une matrice décrivant la connectivité de G, où pour chaque élément ππ,π de C: 0, π π (π π βΆ π π ) ππ,π = { 1, π π (π π β π π ) A noter que dans un système numérique entièrement synchrone, il n'y a pas de cycles de signaux purement combinatoires; c'est-à-dire qu’il est impossible de parvenir à l'entrée d'une porte logique gk en commençant par la même porte et en passant par une séquence de portes. - Modèle graphique d'un circuit numérique entièrement synchrone Un circuit synchrone peut être modélisé par des graphes orientés G, avec un ensemble de sommets π = {π£1 , π£2 , … , π£π } et un ensemble d’arêtes πΈ = {π1 , π2 , … , ππ } ∈ π × π. Un exemple de diagramme de circuit G est illustré à la Fig.1.2.a. Le nombre de registres dans le circuit est |π| = π, où le sommet vk correspond au registre Rk. Le nombre de chemins de données dans le circuit est |πΈ| = ππ = 11 (exemple de la Fig.1.2). Une arête est dirigée de vi à vj si π π → π π . Dans le cas où plusieurs chemins entre une paire séquentielle de registres adjacent π π → π π existent, une seule arête relie vi à vj. Le graphe sous-jacent Gu de G est un graphe non-orienté ayant le même ensemble de sommet V, où les directions ont été supprimées des arêtes. Le graphe sous-jacent Gu du graphe G (Fig.1.2.a) est représenté sur la Fig.1.2.b. En outre, une entrée ou une sortie du circuit est indiqué par une arête incidente à un seul sommet. Figure 1.2 : Graphe G (N = 5 registres). a) Le graphe orienté G. b) Le graphe sous-jacent Gu de G. Définition 1.3: Soit π = 〈πΊ, π , πΆ〉 un circuit numérique entièrement synchrone. Pour toute paire ordonnée de registres 〈π π , π π 〉 pilotée par les signaux d'horloge Ci et Cj, le décalage d'horloge TSkew(i, j) est défini comme étant la différence: π π πππππ€ (π, π) = π‘ππ − π‘ππ (1.1) π π où π‘ππ et π‘ππ sont respectivement les retards des signaux d'horloge Ci et Cj. π π Dans la définition 1.3, les retards d'horloge π‘ππ et π‘ππ sont calculés par rapport à un point de référence commun utilisé comme source du réseau de distribution d'horloge de la puce. Le décalage d'horloge πππππ€ (π, π) obéit à la propriété antisymétrique : πππππ€ (π, π) = −πππππ€ (π, π) (1.2) Le décalage de l'horloge πππππ€ (π, π) est un composant des contraintes temporelles d'un chemin local de données. Les substitutions suivantes sont introduites pour simplifier la notation: Définition 1.4: Soit π = 〈πΊ, π , πΆ〉 un circuit numérique entièrement synchrone où les registres π π , π π ∈ π . et. Le retard du trajet le plus long de la voie de données locale π π → π π est défini comme étant : π,π πΉπ πΉπ π·πΆππ + π·ππ + πΏπ + 2βπΉπΏ , π π π π ππ‘ π π π πππ‘ πππ πππ ππ’πππ π,π Μ π·ππ = { πΏπ (1.3) π,π πΏπ π·πΆππ + π·ππ + πΏπ + βπΏπΏ + βπΏπ , π π π π ππ‘ π π π πππ‘ πππ ππππ’ππ‘π De même, le retard du trajet le plus court de la voie de données locale π π → π π est défini comme étant : 5 π,π π,π Μππ π· ={ πΉπ π·ππ + π·πΆπ − πΏπ»πΉπ‘ − 2βπΉπΏ , π π π π ππ‘ π π π πππ‘ πππ πππ ππ’πππ π,π πΏπ πΏπ π·πΆππ + π·ππ − πΏπ» − βπΏπΏ − βπΏπ , π π π π ππ‘ π π π πππ‘ πππ ππππ’ππ‘π (1.4) En exemple, en utilisant les notations de la définition 1.4, les contraintes temporelles d'un chemin local de données π π → π π avec bascules deviennent : π,π Μππ ππ πππ€ (π, π) ≤ ππΆπ − π· (1.5) π,π Μππ ≤ ππ πππ€ (π, π) −π· (1.6) Pour un chemin local de données π π → π π constitué de flux de bascules Ri et Rf, l'établissement et le maintien des violations de temps sont évités si Eq.1.5 et Eq.1.6, sont satisfaits. Le décalage d'horloge ππ πππ€ (π, π) pour un chemin local de données π π → π π peut être positif ou négatif. Un décalage négatif peut être utilisé pour accélérer efficacement un chemin local de données π π → π π en permettant un ππ πππ€ (π, π) supplémentaire augmentant le temps pour le signal pour se propager de Ri à Rf. Cependant, un décalage négatif excessif peut créer un maintien de violation du temps, créant ainsi une limite inférieure sur ππ πππ€ (π, π) tel que décrit par Eq.1.6. Un maintien de violation de temps est un risque de synchronisation ou une condition de concurrence, aussi connu comme étant la double horloge. De même, un décalage positif diminue la période horloge TCP par ππ πππ€ (π, π), limitant de ce fait la fréquence d'horloge maximale. Dans ce cas, un risque de synchronisation connu comme étant la synchronisation zéro peut être créée. 1.3.3. Planification d’horloge Examiner les contraintes des équations. 1.5 et 1.6 révèle une procédure de prévention des risques d'horloge. En supposant que l’Eq.1.5 n'est pas remplie, une grande valeur appropriée de TCP peut être choisi pour satisfaire la contrainte de l’équation et prévenir d’une synchronisation zéro. A noter que, contrairement à l'Eq.1.5, l’Eq.1.6 est indépendante de TCP. Par conséquent, TCP ne peut pas être varié pour corriger un risque de double horloge, mais une refonte du réseau de distribution d'horloge doit être faite. Les risques de double et zéro horloge peuvent être éliminés si deux choix simples caractérisant entièrement un circuit numérique synchrone sont faites. Plus précisément, si des valeurs égales sont choisis pour tous les retards d'horloge, le décalage ππ πππ€ (π, π) = 0 pour chaque chemin local π π → π π , π π ∀〈π π , π π 〉: π‘ππ = π‘ππ βΉ ππ πππ€ (π, π) = 0 (1.7) Par conséquent, les équations 1.5 et 1.6 deviennent : π π,π π Μππ ππ πππ€ (π, π) ≤ π‘ππ − π‘ππ = 0 ≤ ππΆπ − π· (1.8) π,π π π Μππ ≤ 0 = ππ πππ€ (π, π) = π‘ππ − π‘ππ −π· (1.9) On notera que l'Eq.1.8 peut être satisfaite pour chaque chemin local de données π π → π π dans π,π Μππ un circuit si une valeur suffisamment grande (plus grande que la plus grande valeur de π· dans un circuit) est choisie pour TCP. En outre, l'Eq.1.9 peut être satisfaite à travers un circuit entier s’il peut π,π Μππ être assuré que π· ≥ 0 pour chaque chemin local π π → π π du circuit. La contrainte temporelle des équations 1.8 et 1.9 peut être satisfaite en choisissant la plus grande période d'horloge TCP possible et π,π Μππ π· est positif pour chaque chemin local correctement conçus π π → π π . L'application de cette méthode de synchronisation zéro d'horloge (Eqs.1.7, 1.8, et 1.9) a été au centre de la conception de circuits numériques entièrement synchrones. Ceci en faisant en sorte que chaque signal d’horloge atteint chaque registre Rj à peu près en même temps. 6 1.3.4. Structure de réseau de distribution d'horloge Le réseau de distribution d'horloge est généralement organisé comme une structure en arbre comme illustré à la Fig.1.3, et est souvent appelé arbre d’horloge. Un schéma de circuit d'un réseau de distribution d'horloge est représenté à la Fig.1.3.a. Une représentation graphique résumée de l'arborescence représentée sur la Fig.1.3.a est représenté sur la Fig.1.3.b. La source unique du signal d'horloge est à la racine de l'arbre. Ce signal est distribué à partir de la source à chaque registre dans le circuit à travers une séquence de tampons et d’interconnexions. Typiquement, un tampon dans le réseau conduit à une combinaison de tampons et à d'autres registres dans le circuit VLSI. Un réseau d'interconnexion de fils relie la sortie de tampons pilotes aux entrées de tampons pilotés et celles des registres. Un nœud interne de l'arbre correspond à un tampon, et une feuille de l'arbre correspond à un registre. Les N feuilles de l'arbre sont notés de F1 à FN, où la feuille Fj correspond à un registre Rj. Figure 1.3 : Structure d'un arbre de réseau de distribution d'horloge. a) structure de circuit de réseau de distribution d'horloge, b) structure d'arbre d'horloge correspondante a. Dépendance linéaire de la synchronisation d'horloge Un corollaire important lié à la propriété de conservation de décalage de l'horloge, c'est qu'il y a une dépendance linéaire parmi les horloges décalées d'un chemin global de données, qui forme un cycle dans le graphe sous-jacent du circuit. Plus précisément, si π£0 , π1 , π£1 ≠ π£0 , … , π£π−1 , ππ , π£π ≡ π£0 est un cycle dans le graphe sous-jacent du circuit, alors 0 1 ] 1 2 ] 0 = [π‘ππ − π‘ππ + [π‘ππ − π‘ππ + β― = ∑π−1 (1.10) π=0 ππ πππ€ (π, π + 1) Les propriétés décrites par l'Eq.1.10 sont illustrées sur la Fig.1.2 pour le cycle sous-jacent v1, v4, v3, v2, v1. A noter que : 3 3 1 4 ) 4 2 ) 2 1 ) ) + (π‘ππ 0 = (π‘ππ − π‘ππ + (π‘ππ − π‘ππ − π‘ππ + (π‘ππ − π‘ππ = ππ πππ€ (1,4) + ππ πππ€ (4,3) + ππ πππ€ (3,2) + ππ πππ€ (2,1) (1.11) L'importance de cette propriété est que l'Eq.1.10 décrit la corrélation entre certaines horloges biaisées dans un circuit. Par conséquent, ces déviations d'horloge non corrélés ne peuvent être optimisées indépendamment les uns des autres. A la Fig. 1.2, on note qu'il n'est pas nécessaire qu'un cycle orienté existe dans le graphe orienté G d'un circuit pour que l’Eq.1.10 soit satisfaite. Par exemple, v2, v3, v4 n'est pas un cycle dans le graphe orienté G de la Fig.1.3 (a), mais v2, v3, v4 est un cycle dans le graphe non orienté Gu de la Fig.1.3(b). En outre, ππ πππ€ (2,3) + ππ πππ€ (3,4) + ππ πππ€ (4,2) = 0; autrement dit, les déviations ππ πππ€ (2,3), ππ πππ€ (3,4), ππ πππ€ sont linéairement dépendante. Un maximum de (|π − 1|) = (π − 1) décalage d'horloge peuvent être choisis indépendamment les uns des autres, ce qui est t démontré en examinant l’arbre du graphe sous-jacent Gu. Tout arbre de sousjacent Gu contiens (N - 1) bords, chaque bord correspondant à un chemin local de données, et l'ajout de tout autre bord à Gu va former un cycle tel que Eq.1.10 soit respectée pour ce cycle. Par exemple, pour le circuit modélisé par le graphe représenté sur la Fig.1.2, quatre décalages d’horloge indépendantes peuvent être choisis de telle sorte que les trois décalages restants soient exprimés en fonction du décalage d’horloge indépendant. 7 b. Plages admissibles Les résultats précédents, ont indiqués que le contrôle serré de décalage d'horloge plus que celui des retards d'horloge est nécessaire pour le circuit fonctionne de manière fiable. Les relations dans les équations 1.5 et 1.6 sont utilisés afin de déterminer une plage admissible de décalage d'horloge alloué pour chaque chemin local de données. Le concept de plage admissible pour le décalage d'horloge ππ πππ€ (π, π) d’un chemin local de données π π → π π est illustré sur la Fig.1.4. π,π π,π Μππ Μππ Lorsque ππ πππ€ (π, π) ∈ [−π· , ππΆπ − π· ] les équations Eq.1.5 et Eq.1.6 sont alors satisfaites. Figure 1.4 : Plage admissible d’avancement horloge d'un chemin local de données π π → π π . Il y a π,π π,π Μππ Μππ violation de synchronisation si ππ πππ€ (π, π) ∉ [−π· , ππΆπ − π· ]. La fiabilité d’un circuit est liée à la probabilité d'une violation de cadencement se produisant pour tout chemin local π π → π π . Par conséquent, la fiabilité de tout chemin local π π → π π du circuit (et donc de l'ensemble du circuit) est augmentée de deux façons: 1. En choisissant un décalage d'horloge ππ πππ€ (π, π) pour un chemin local dans la mesure du π,π π,π Μππ Μππ possible à partir des frontières de l'intervalle [−π· , ππΆπ − π· ], ce faisant, en positionnant (idéalement) ππ πππ€ (π, π) au milieu de la plage admissible, c'est-à-dire : π,π π,π Μππ Μππ ππ πππ€ (π, π) = 1/2[ππΆπ − (π· +π· )] π,π π,π Μππ + π· Μππ )] de la plage admissible du chemin local de 2. En augmentant la largeur [ππΆπ − (π· données π π → π π . En raison de la dépendance linéaire du décalage d'horloge, il n'est pas possible de construire un circuit type tel que, pour chaque chemin local de données local π π → π π , le décalage d'horloge ππ πππ€ (π, π) soit au milieu de la plage admissible. c. Ecart d'arbre d'horloge Dans un circuit donné, le retard du signal d’horloge provenant de la source d'horloge au registre Rj est égale à la somme des retards de propagation des tampons sur la voie unique qui existe entre la racine et la feuille Fj correspondant au j-ième. En outre, si π π → π π est une paire adjacente de registre ′ de manière séquentielle, il existe une partie dans des deux trajets (notée πππ ) entre la racine et respectivement Ri et Rf, , qui est commune aux deux chemins. Un exemple d’arbre d'horloge est représenté à la Fig.1.5 où chacun des sommets de 1 à 10 correspond à un tampon dans l'arbre. Les sommets 4, 5 et 9 sont des feuilles de l'arbre et correspondent respectivement aux registres R4, R5, et R9. Les chemins locaux de données π 4 → π 5 et π 5 → π 9 sont indiqués par des flèches, tandis que chacun des trajets des signaux d'horloge pour les registres R4, R5, et R9 sont légèrement ombragé. La partie commune des trajets de signaux d'horloge aux deux registres est surlignée d’une ombre sombre (1 → 2 → 3 pour π 4 → π 5 et 1 → 2 pour π 5 → π 9 ). De même, il existe une portion de chemin du signal d'horloge pour tous registres Ri et Rf d’une π π paire de registre adjacente π π → π π de manière séquentielle (notée respectivement πππ ππ‘ πππ ) qui est unique à ce registre. 8 Figure 1.5 : Illustration de l'écart d'arbre d'horloge. Le décalage de l'horloge ππ πππ€ (π, π) entre la paire de registres adjacente π π → π π est π π égale à la différence entre les temps accumulées de propagation de tampons entre πππ et πππ , c'est-àπ π dire que ππ πππ€ (π, π) = π·ππππ¦(πππ ) − π·ππππ¦(πππ ). Par conséquent, toute variation de paramètres du ′ circuit sur πππ n’affectera pas la valeur de ππ πππ€ (π, π). Pour l'exemple de la Fig.1.5 : ππ πππ€ (4,5) = 4) 5 5 9 π·ππππ¦(π45 − π·ππππ¦(π45 ) et ππ πππ€ (5,9) = π·ππππ¦(π59 ) − π·ππππ¦(π59 ). La nature de l’écart d'arbre d'horloge propose une approche pour réduire au minimum les effets des variations des paramètres du processus sur le fonctionnement correct du circuit. Pour illustrer cette approche, chaque branche π → π de l'arbre de la Fig.1.5 est marquée par deux nombres : ππ,π > 0 qui est le délai prévu pour la branche et ππ,π ≥ 30 qui est l'erreur maximale (écart) de ce retard. En d'autres termes, le délai réel de la branche π → π se situe dans l'intervalle [ππ,π − ππ,π ; ππ,π + ππ,π ]. Ainsi la valeur cible pour un décalage d’horloge cible pour les chemins locaux π 4 → π 5 et π 5 → π 9 sont présentées dans la deuxième colonne du tableau 1.1, et les valeurs limites des décalages d’horloge (compte tenue de ε) dans la troisième colonne. ′ Comme les résultats du tableau 1.1 le montrent, il est avantageux de maximiser πππ pour chaque ′ chemin local π π → π π avec une plage admissible relativement étroite, tels que les variations de πππ π,π π,π Μππ Μππ n'affectent pas ππ πππ€ (π, π). De même, lorsque la plage admissible [−π· , ππΆπ − π· ] est plus large, ′ πππ peut être réduite seulement une petite franction du trajet total de la racine à Ri et à Rf. Tableau 1.1 : Valeurs cibles et valeurs réelles des décalages d'horloge pour les chemins locaux de données la section locale chemins de données π 4 → π 5 et π 5 → π 9 de la Fig.1.5. Décalage cible Valeurs limites de décalage π3,4 − π3,5 ππ πππ€ (4,5) π3,4 − π3,5 ± (π3,4 + π3,5 ) π2,3 + π3,5 − π2,6 − π6,9 ππ πππ€ (5,9) π2,3 + π3,5 − π2,6 − π6,9 ± (π2,3 + π3,5 + π2,6 + π6,9 ) 9 1.4. Propriétés de synchronisation d’éléments de stockage synchrones 1.4.1. Introduction Le réseau de distribution d'horloge fournit la référence de temps pour les éléments de stockage (ou registres) afin d'appliquer l'ordre logique requise des opérations. Cette référence de temps est constitué d'un ou plusieurs signaux d'horloge qui sont fournis à chaque et pour tout registre du circuit. Ces signaux d'horloge commandent l'ordre des événements de calcul en contrôlant les temps exacts des entrées de données dans chaque registre. Les signaux de données sont inévitablement différés en temps car ces signaux se propagent à travers les portes logiques et le long d’interconnexions de chemins locaux de données. Ces retards de propagation peuvent être évalués avec une certaine exactitude et utilisés pour obtenir des relations de synchronisation pour les signaux d’un circuit. 1.4.2. Eléments de stockage Les éléments de stockage (registres) rencontrés dans les systèmes VLSI varient considérablement dans leur fonction et les relations temporelles. Cependant indépendamment de ces différences, tous les éléments de stockage partagent une caractéristique commune : l'existence de deux groupes de signaux avec des buts largement différentes. Une vue généralisée d’un registre est représenté sur la Fig.1.6. Les signaux d'entrée / sortie d'un registre peuvent être divisés en deux groupes. Un groupe de signaux, appelé signaux de données, est constitué de signaux d'entrée et de sortie de l'élément de stockage. Ces signaux d'entrée et de sortie sont connectés aux bornes de signaux de données d’autres éléments de stockage, ainsi qu’aux bornes de portes logiques ordinaires. L’autre groupe, nommé signaux de commande, sont des signaux qui contrôlent le stockage des signaux de données dans les registres mais ne participent pas au processus de calcul logique. Certains signaux de commande permettent le stockage d'un signal de données dans un registre, indépendamment des valeurs des signaux de données. Ces signaux de commande sont généralement utilisés pour initialiser les données dans un registre avec une valeur particulière. D'autres signaux de commande, comme le signal d'horloge, contrôlent le processus de mémorisation d'un signal de données dans un registre. Dans un circuit synchrone, chaque registre comporte au moins une horloge pour le signal entrée. Figure 1.6 : Vue générale d'un registre. 1.4.3. Verrous Un verrou est un registre dont le comportement dépend de la valeur ou du niveau du signal d’horloge. Par conséquent, un verrou est souvent désigné comme étant un verrou transparent, un registre de niveau sensible, ou un verrou de maintien de polarité. Un simple type de verrou avec un signal d'horloge C et un signal d'entrée D est représenté sur la Fig. 1.7.a. La sortie du verrou est typiquement nommée Q, et son fonctionnement est illustré à la Fig.1.7.b. Le registre illustré dans la Fig.1.7 est un verrou de polarité positive car il est transparent durant la période d'horloge pour lequel C est élevée. Le fonctionnement de ce verrouillage positif est résumé dans le tableau 1.2 10 Comme décrit dans le tableau 1.2 et illustré sur la Fig. 1.7.b, le signal de sortie du verrou suit le signal d’entrée tant que le signal d’horloge reste haut, c’est-à-dire : πΆ = 1 ⇒ π = π·. Par conséquent, le verrou est dit être dans un état transparent dans l'intervalle π‘0 < π‘ < π‘1 (Fig.1.7.b). Lorsque le signal d'horloge C passe de 1 à 0, la valeur actuelle de D sont stockées dans le registre et la sortie Q reste fixe avec cette valeur indépendamment des changements de l'entrée de données D. Le verrou ne transmet pas les données du signal d'entrée à la sortie, mais transmet plutôt la dernière valeur du signal lors de la transition du signal d’horloge de l’état haut à l’état bas. Par analogie avec le terme transparent l’état du verrou est appelé opaque et correspond à l'intervalle π‘1 < π‘ < π‘2 (Fig.1.7) lorsque le signal d'entrée est isolé de la sortie. Comme le montre la Fig. 1.7.b, la période d'horloge est ππΆπ = π‘2 − π‘0 . Le front du signal d'horloge qui commande le verrou de passer à son état transparent est appelé front d’impulsion d'horloge de premier plan. Dans le cas de polarité positive de la Fig.1.7, le front de premier plan commence à π‘0 . Le front de sens opposé du signal d'horloge est appelé front de fuite. Notez que pour un verrou négatif, le front de premier plan est la transition du signal d’horloge du haut vers le bas. Figure 1.7 : Représentation et principe de fonctionnement d'un registre sensible (verrou) au niveau schématique. a) Verrou ; b) Opération idéalisée du verrou représenté en a). Tableau 1.2 : Fonctionnement d’un verrou de polarité positive Signal d’horloge Sortie Etat du verrou Haut L’entrée passe Transparent Bas Maintient la sortie Opaque a. Paramètres de verrous Les registres, tels qu’illustrés sur la Fig.1.7, sont construits à base de transistors. Les relations exactes entre les signaux sur les bornes du registre peuvent être présentées sous forme analytique. Dans cette section, cependant, les registres sont considérés avec un niveau supérieur d’abstraction afin de ne pas tenir compte des détails de mises en œuvre électrique spécifique. Les paramètres caractérisant les verrous sont : la largeur minimum d’impulsion d’horloge, le retard du verrou de l’horloge à la sortie, le retard du verrou de l’entrée à la sortie, le temps de configuration, et le temps de verrouillage. b. Largeur minimum de l'impulsion d'horloge πΏ La largeur minimale de l'impulsion d'horloge, notée πΆππ , est la largeur minimale admissible de la partie du signal d'horloge au cours de laquelle le verrou est transparent. L'augmentation de la 11 πΏ πΏ valeur de πΆππ n'affecte pas les valeurs de π·π·π , πΏππΏ , et πΏπ»πΏ (défini ci-après). La largeur minimale de πΏ l'impulsion d'horloge, πΆππ = π‘6 − π‘1, est illustré sur la Fig.1.8. (avec ππΆπ = π‘8 − π‘1 ). c. Retard Horloge/Sortie πΏ Le retard de l'horloge à la sortie π·πΆπ (généralement appelé le retard de l'horloge à Q) est le retard de propagation de la bascule à partir du front montant du signal d'horloge aux bornes de la sortie. πΏ La valeur de π·πΆπ = π‘2 − π‘1 est représenté sur la Fig.1.8, et est défini en supposant que le signal d'entrée de données atteint une valeur stable suffisamment tôt, c'est-à-dire que régler le signal d'entrée de πΏ données arrivant tôt par rapport au front l'horloge de premier plan n'affectera pas la valeur de π·πΆπ . d. Retard Données/Sortie πΏ Le retard de données à la sortie π·π·π (généralement appelé le retard des données à Q) est le retard de propagation du verrou depuis la borne du signal de données à la borne de sortie. La valeur de πΏ π·π·π est défini en supposant que le signal d'horloge signal a mis le verrou à l'état transparent suffisamment tôt, c'est-à-dire que avancer la venue du front au premier plan du signal d’horloge ne πΏ πΏ changera pas la valeur de π·π·π . Le retard des données à la sortie π·π·π = π‘4 − π‘3 (Fig.1.8). e. Temps de configuration Le temps de configuration du verrou πΏππΏ = π‘6 − π‘5 (Fig.1.8), est le temps minimum entre un changement du signal de données et le front de fuite du signal d’horloge, de tel sorte que la nouvelle valeur de D puisse arrivée jusqu’à Q et être stockée durant l’état opaque. f. Temps de verrouillage Le temps de verrouillage πΏπ»πΏ est le temps minimum après le front de fuite d'horloge où le signal de données doit rester constant de sorte que cette valeur de D soit stockée avec succès dans le verrou durant l'état opaque. Cette définition de πΏπ»πΏ suppose que le dernier changement de la valeur de D ne s’est pas faite après πΏππΏ avant le front de fuite du signal d’horloge. Le terme πΏπ»πΏ = π‘7 − π‘6 est représenté sur la Fig.1.8. Figure 1.8 : Paramètres d'un verrou 12 1.4.4. Bascules Un registre à déclenchement par front ou bascule est un type de registre qui, à la différence des verrous, n'est jamais transparent par rapport au signal d'entrée de données. La sortie d'une bascule, normalement, ne suit pas à tout moment le signal d’entrée de données au cours d'opérations du registre, mais plutôt tient compte de la valeur de la donnée précédemment mémorisée jusqu'à ce qu'un nouveau signal de données soit stocké dans la bascule. Un type simple de bascule avec un signal d'horloge C et un signal d'entrée D est montré dans la Fig.1.9.a; semblable aux verrous, la sortie d'une bascule est habituellement notée Q. Son fonctionnement est illustré sur la Fig.1.9.b. Figure 1.9 : Représentation et principe de fonctionnement d'un registre à déclenchement par front. a) Bascule ; b) Fonctionnement idéalisée de la bascule en a). Avec les bascules typiques, les données sont stockées soit lors du front montant soit lors du front descendant du signal d'horloge. Ces bascules sont respectivement appelées bascule à déclenchement par front positif et bascule à déclenchement par front négatif. Les termes verrouillage, stockage, et front positif sont utilisés pour identifier le front du signal d'horloge à laquelle le stockage dans la bascule se produit. Le front de verrouillage du signal d’horloge est aussi appelé front de premier plan ou front d’attaque. En outre, notez que certaines bascules, appelées bascules à déclenchement par double front, peuvent stocker des données à chaque front du signal d'horloge. Cependant, la complexité de ces bascules est trop grande pour des registres et elles sont donc rarement utilisées. Comme représenté sur le chronogramme de la Fig.1.9.b, la sortie de la bascule reste inchangée la plus part du temps, quelles que soient les transitions dans le signal de données. Seules les valeurs du signal de données au voisinage du front d’arrêt de stockage du signal d'horloge peuvent affecter la sortie de la bascule. Par conséquent, les changements de la sortie ne seront observés que lorsque les données actuellement stockées a une valeur logique π₯, et que le front de mémorisation du signal d'horloge se produit pendant que le signal d'entrée de données a une valeur logique π₯Μ . a. Paramètres des bascules Les paramètres de temps significatifs pour une bascule sont identiques à ceux des verrous et sont illustrés à la Fig.1.10. b. Largeur minimum de l'impulsion d'horloge πΉ La largeur minimale de l'impulsion d'horloge πΆππ est la largeur minimale admissible de l'intervalle de temps entre le front d’attaque et le front de déverrouillage du signal d'horloge. La largeur πΉ minimale de l'impulsion d'horloge πΆππ = π‘6 − π‘3 (Fig.1.10) est définie comme étant l'intervalle minimum entre les fronts d’attaque et de déverrouillage du signal d’horloge de sorte que la bascule 13 πΉ puisse fonctionner correctement. Accroître πΆππ n'affectera pas les valeurs des temps de configuration et de verrouillage. La période d'horloge étant ππΆπ = π‘6 − π‘1 (Fig.1.10). c. Retard Horloge/sortie πΉ Comme le montre la Fig. 1.10, le retard de la bascule de l’horloge à la sortie est π·πΆπ = π‘5 − π‘3 . Ce paramètre de retard de propagation est le temps de propagation depuis le signal d’horloge aux bornes de sorties. d. Temps de configuration Le temps de configuration πΏππΉ = π‘3 − π‘2 (Fig.1.10). Ce paramètre πΏππΉ est défini comme étant le minimum de temps entre un changement du signal de données et le front d’attaque du signal d'horloge de telle sorte que la nouvelle valeur de D se propage à la sortie Q de la bascule et est verrouillée avec succès au sein de la bascule. e. Temps de verrouillage Le temps de verrouillage πΏπ»πΉ d’une bascule est le temps minimum après l'arrivée du front de verrouillage de l'horloge durant lequel le signal d’entré de données doit rester constant afin de pouvoir stocker le signal D à l'intérieur de la bascule. Le temps de verrouillage πΏπ»πΉ = π‘4 − π‘3 (Fig.1.10). Cette définition de πΏπ»πΉ suppose que le dernier changement de D s'est produit au plus tard avant l'arrivée du front de verrouillage du signal d’horloge. Figure 1.10 : Paramètres d'une bascule 1.4.5. Signal d'horloge Le signal d'horloge est systématiquement fourni à chaque élément de stockage au sein d'un circuit. Ce signal est crucial pour le bon fonctionnement d’un système numérique entièrement synchrone. Un signal d’horloge typique π(π‘) et sa période ππΆπ d’un système numérique synchrone est illustré sur la Fig.1.11. Afin d'assurer la plus haute fréquence d'horloge possible, l'objectif pour ππΆπ est d’avoir la plus petite valeur possible tel que : ∀π‘ βΆ π(π‘) = π(π‘ + πππΆπ ) (1.12) où n est un nombre entier. La largeur de l'impulsion d'horloge CW est illustrée sur la Fig.1.11. 14 ππ Typiquement, ππΆπ est constante, soit ππ‘πΆπ = 0. Si π(π‘) a un retard τ depuis un point de référence, alors le front d’attaque de π(π‘) se produisent aux instants : π + πππΆπ pour π ∈ {… , −2, −1,0,1,2, … } (1.13) et les bords de fuite se produisent aux instants : π + πΆπ€ + πππΆπ pour π ∈ {… , −2, −1,0,1,2, … } (1.14) Cependant, en pratique, il est possible pour les fronts d’avoir des fluctuations dans le temps, c’est-à-dire qu’ils ne se produisent pas aux instants décrits par les Eq.1.13 et Eq.1.14. Ce phénomène est connu comme étant le décalage d'horloge et peut être dû à diverses causes, telles que des variations dans les caractéristiques des procédés de fabrication, la température ambiante, le bruit d'alimentation, et l'oscillateur. Pour tenir compte du décalage d'horloge, les paramètres suivants sont introduits: • L'écart maximal βπΏ du front d'attaque : qui permet de situer le front d’attaque dans l’intervalle [π + πππΆπ − βπΏ ; π + πππΆπ + βπΏ ]. • L'écart maximal β π T du front de fuite : qui permet de situer le front d’attaque dans l’intervalle [π + πΆπ€ + πππΆπ − β π ; π + πΆπ€ + πππΆπ + β π ]. Figure 1.11 : Signal d'horloge typique. Décalage d’horloge Considérons le chemin local de données représenté sur la Fig.1.1.b, et supposons que les registres qui y sont présentés sont des bascules. Le signal d'horloge de période ππΆπ est délivré à chacun des registres Ri et Rf. Soient le signal d'horloge Ci pilotant le registre Ri, et Cf celui pilotant Rf . Aussi, π π posons π‘ππ et π‘ππ les retards de Ci et de Cf. Tel que décrit par l'Eq.1.13, les fronts de verrouillage et d’attaques de Ci se produisent aux instants : π π π … , π + π‘ππ − ππΆπ , π + π‘ππ , π + π‘ππ + ππΆπ , … De même, les fronts de verrouillage et d’attaques de Cf se produisent aux instants : π π π … , π + π‘ππ − ππΆπ , π + π‘ππ , π + π‘ππ + ππΆπ , … tel que décrit par l'Eq.1.14. π π Le décalage de l'horloge ππ πππ€ (π, π) = π‘ππ − π‘ππ entre Ci et Cf est présenté comme étant la différence de temps d'arrivée de Ci et de Cf. Ce concept est illustré par la Fig.1.12. On notera que, π π dépendamment des valeurs de π‘ππ et de π‘ππ , le décalage peut être nul, négatif, ou positif. En outre, le décalage défini ici n’est valable que pour des registres adjacents de manière séquentielle. Figure 1.12 : Décalage d’horloge nul, négatif ou positif. 15 1.4.6. Analyse d'une phase unique d’un chemin local de données avec des bascules Un chemin local de données composé de deux bascules ainsi que la logique combinatoire entre les bascules sont représentés à la Fig.1.13. La bascule initiale Ri, est à l'origine du signal de données, et la bascule finale Rf est la destination. Le bloc combinatoire bloc Lif entre Ri et Rf accepte les signaux d’entrée de données fournies par Ri, et d’autres registres et portes logiques opèrent afin de transmettre les signaux à Rf. La période du signal d'horloge est noté TCP, et les retards des signaux Ci π π et Cf des bascules Ri et Rf sont désignés respectivement par π‘ππ et π‘ππ . Les données d'entrée et de sortie de Ri et Rf sont désignés respectivement par Di, Qi, Df, et Qf. Figure 1.13 : Chemin local de données à phase unique. a. Prévention du retard de signal de données dans un chemin local de données Le fonctionnement du chemin local π π → π π représenté sur la Fig.1.13 exige que tout signal de données devant être stocké dans π π arrive au plus tard, à l'entrée de données Df, à πΏππΉπ‘ avant que le front de verrouillage de Cf. Il est possible que le cas inverse se produise, c'est-à-dire que Df n'arrive pas suffisamment tôt pour être correctement stocké dans π π . Si cette situation se produit, le chemin local de données représenté sur la Fig.1.13 ne fonctionne pas comme prévu, et on dit qu’il y a défaut de synchronisation ou violation de synchronisation a été créé. Cette forme de violation est généralement appelée une violation de configuration (ou violation de chemin long). Une violation de configuration est représentée sur la Fig.1.14 et est utilisé dans pour illustré ce qui suit. Les périodes d'horloge Ci et Cf sont surlignés dans la Fig.1.15, et il en est de même pour les parties des signaux de données Di, Qi, et Df qui sont pertinents pour le fonctionnement du chemin local représentée sur la Fig.1.14. Plus précisément, la partie ombragée de Di correspond aux données devant être stockées dans Ri, au début de la k-ième période d'horloge. Ce signal de données se propage vers la sortie du Ri et est indiqué par la partie surlignée de Qi. Le bloc logique combinatoire opère sur Qi durant la k-ième période d'horloge. Le résultat de cette opération est la partie surlignée de Df qui doit être stocké dans π π durant la (k+1)-ème période d'horloge. π Le front d'attaque de Ci qui initie la k-ième période d'horloge se produit à l’instant π‘ππ + πππΆπ . π De même, le front d'attaque de Cf qui initie la (k +1)-ème période d'horloge se produit à l’instant π‘ππ + (π + 1)ππΆπ . Par conséquent, le dernier instant d'arrivée de Df sur π π doit satisfaire : πΉπ π πΉπ π‘π΄π ≤ [π‘ππ + (π + 1)ππΆπ − βπΉπΏ ] − πΏπ (1.15) π Le terme [π‘ππ + (π + 1)ππΆπ − βπΉπΏ ] de l'Eq.1.15 correspond à la situation critique du front πΉπ d'attaque de Cf arrivant avec l’avance maximale possible βπΉπΏ . Le terme −πΏπ est le temps de πΉπ configuration de π π . La valeur de π‘π΄π , est constitué de deux composants: πΉπ 1. Le dernier temps d'arrivée π‘ππ où un signal valide Qi apparaît à la sortie de Ri : qui est la π πΉπ πΉπ πΉ somme π‘ππ = π‘ππ + πππΆπ + βπΏ + π·πΆππ du dernier instant d'arrivée possible du front d'attaque de Ci et de l’écart maximum de l’horloge à Q de Ri. π,π 2. Le retard de propagation maximal π·ππ des signaux de données dans le bloc logique combinatoire πΏππ et l’interconnexion sur le chemin π π → π π . 16 πΉπ Par conséquent, π‘π΄π peut être décrit par l’Eq.1.16. πΉπ π,π π,π π πΉπ πΉπ π‘π΄π = π‘ππ + π·ππ = (π‘ππ + πππΆπ + βπΉπΏ + π·πΆππ ) + π·ππ (1.16) En substituant l'Eq.1.16 dans l'Eq.1.15, la condition de synchronisation garantissant l'arrivée correcte du signal à l’entrée des données D de l'entrée D de π π est : π,π π,π π πΉπ π (π‘ππ + πππΆπ + βπΉπΏ + π·ππ ) + π·ππ ≤ [π‘ππ + (π + 1)ππΆπ − βπΉπΏ ] − πΏπ (1.17) De l’équation 1.17 ont obtient : π,π πΉπ πΉπ ππ πππ€ (π, π) + 2βπΉπΏ ≤ ππΆπ − (π·πΆππ + π·ππ + πΏπ ) (1.18) La violation de l'Eq.1.18 est illustrée à la Fig.1.14. La relation temporelle de l’Eq.1.18 représente trois résultats, décrivant l'arrivée tardive de Df à l'entrée de π π dans le chemin π π → π π : π,π πΉπ πΉπ 1. Compte tenu de toutes les valeurs de ππ πππ€ (π, π), βπΉπΏ , π·ππ , πΏπ , et π·πΆππ , l'arrivée tardive de Df peut être évitée en contrôlant la valeur de ππΆπ . Une valeur suffisamment grande de ππΆπ peut être choisie afin d’assouplir Eq.1.18 en augmentant la limite supérieure décrite à sa droite. 2. Pour un fonctionnement correct, ππΆπ ne doit pas nécessairement être supérieure à la durée π,π πΉπ πΉπ (π·πΆππ + π·ππ + πΏπ ). Si ππ πππ€ (π, π) est bien contrôlé, le choix d’une valeur négative particulière pour le décalage de l'horloge détend le côté gauche de l'Eq.1.18, ce qui permet de satisfaire l’équation malgré π,π πΉπ πΉπ que ππΆπ − (π·πΆππ + π·ππ + πΏπ ) < 0. π,π πΉπ πΉπ 3. 2βπΉπΏ et (π·πΆππ + π·ππ + πΏπ ) sont nuisibles dans sens que ces termes imposent une limite inférieure sur la période d'horloge ππΆπ . Bien que le décalage négatif puisse être utilisé pour assouplir l'inégalité de l'Eq.1.18, ces deux termes vont à l'encontre de l’assouplissement des valeurs de ππΆπ et de ππ πππ€ (π, π). L’équation 1.18 peut être réécrite sous une forme qui précise la limite supérieure de ππ πππ€ (π, π) : π,π πΉπ πΉπ ππ πππ€ (π, π) ≤ ππΆπ − (π·πΆππ + π·ππ + πΏπ ) − 2βπΉπΏ (1.19) Figure 1.15 : Chronogramme d'un chemin local de données à bascules avec violation de la contrainte configuration 17 b. Prévention de l'arrivée précoce du signal de données dans un chemin local de données Nous allons analyser les relations de synchronisation du chemin local de données π π → π π pour éviter l’arrivée prématurée de Df. Pour ce faire, rappelons que tout signal Df devant être stocké dans π π doit devancer le front de verrouillage de Cf d’au moins πΏππΉπ‘ . Il est possible que l’événement opposé se produise, pour de nouvelles données π·ππππ€ devant écraser la valeur de π·π et devant être stockées dans π π . Si cette situation se produit, le chemin local de données représenté sur la Fig.1.13 ne fonctionnera pas comme escompté en raison de la violation de synchronisation catastrophique connu comme violation de maintien (ou violation de chemin court). Une violation de maintien est plus dangereuse qu’une violation de configuration, car une violation de maintien ne peut être dissoute par simple réglage de la période d’horloge ππΆπ . Une violation de maintien est représentée sur la Fig.1.15. La situation représentée sur la Fig.1.15 est différente de celle représentée sur la Fig.1.14. Dans la Fig.1.14, un signal de données stocké dans π π au cours de la k-ième période d'horloge arrive trop tard pour être stocké dans π π au cours de la (k +1)-ième période d'horloge. Dans la Fig.1.15, cependant, les données stockées dans π π au cours de la k-ième période d'horloge arrive dans π π trop tôt et détruisent les données qui doivent être stockées dans π π pendant la k-ième période d'horloge. Comme illustré sur la Fig. 1.15, le front d’attaque (ou de verrouillage) de πΆπ qui déclenche la kπ ième période d'horloge se produit à l’instant π‘ππ + πππΆπ . De même, le front de verrouillage de πΆπ qui π initie la k-ième période d'horloge se produit à l’instant π‘ππ + πππΆπ . Par conséquent, le plus tôt temps πΉπ d’arrivée π‘π΄π du signal de données π·π dans π π doit satisfaire à la condition suivante: πΉπ π πΉπ π‘π΄π ≥ (π‘ππ + πππΆπ + βπΉπΏ ) + πΏπ» (1.120) π Le terme (π‘ππ + πππΆπ + βπΉπΏ ) de l'Eq.1.20 correspond à la situation critique du front d’attaque à la k-ième période d’horloge de πΆπ arrivant tardivement avec l'écart maximal possible βπΉπΏ . La valeur de πΉπ π‘π΄π a deux composantes: πΉπ 1. Le premier instant d’arrivé π‘ππ où un signal valide de données ππ apparaît à la sortie de π π : qui est, πΉπ π πΉπ la somme π‘ππ = π‘ππ + πππΆπ − βπΉπΏ + π·πΆππ de l’instant d’arrivée le plus tôt du front d’attaque de πΆπ et de l’écart minimum Horloge/Sortie de π π . π,π 2. Le retard de propagation minimal π·ππ des signaux au sein du bloc de logique combinatoire πΏππ et dans les fils d'interconnexion le long de la trajectoire π π → π π . πΉπ Par conséquent, π‘π΄π peut être décrit comme étant : πΉπ πΉπ π,π π,π π πΉπ π‘π΄π = π‘ππ + π·ππ = (π‘ππ + πππΆπ − βπΉπΏ + π·πΆππ ) + π·ππ (1.21) La condition de synchronisation qui garantit que π·π n'arrive pas trop tôt dans π π est : π,π π πΉπ π πΉπ (π‘ππ + πππΆπ − βπΉπΏ + π·πΆππ ) + π·ππ ≥ (π‘ππ + πππΆπ + βπΉπΏ ) + πΏπ» (1.22) L’équation 1.22 peut encore être simplifiée pour avoir : π,π πΉπ πΉπ ππ πππ€ (π, π) − 2βπΉπΏ ≥ −(π·πΆππ + π·ππ ) + πΏπ» (1.23) La relation de synchronisation décrit par l'Eq.1.23 fournit certains faits importants, décrivant l’instant d’arrivée au plus tôt de π·π à l’entrée de π π dans un chemin local : 1. Contrairement à l'équation. 1.18, l'inégalité de l’Eq.1.23 ne dépend pas de ππΆπ . Par conséquent, une violation de l'équation ne peut pas être corrigée en manipulant simplement la valeur de ππΆπ . 18 2. La relation dans l'Eq.1.23 peut être satisfaite avec une valeur suffisamment grande de ππ πππ€ (π, π). πΉπ Cependant, les termes 2βπΉπΏ et πΏπ» sont nuisibles dans le sens que ces termes imposent une borne inférieure pour ππ πππ€ (π, π). La relation dans l'Eq.1.23 peut être réécrite pour mettre en exergue la limite inférieure imposée sur le décalage d'horloge : π,π πΉπ πΉπ ππ πππ€ (π, π) ≥ −(π·πΆππ + π·ππ ) + πΏπ» + 2βπΉπΏ (1.24) Figure 1.15 : Chronogramme d'un chemin local de données composé da bascules avec une violation de la contrainte de verrouillage. 1.4.7. Analyse d'une phase unique d’un chemin local de données avec des verrous Un chemin local de données composé de deux loquets ainsi que la logique combinatoire entre les loquets sont représentés à la Fig.1.16. Le verrou initial Ri, est à l'origine du signal de données, et le verrou final Rf est la destination. Le bloc combinatoire bloc Lif entre Ri et Rf accepte les signaux d’entrée de données fournies par Ri, et d’autres registres et portes logiques opèrent afin de transmettre les signaux à Rf. La période du signal d'horloge est noté TCP, et les retards des signaux Ci π π et Cf des bascules Ri et Rf sont désignés respectivement par π‘ππ et π‘ππ . Les données d'entrée et de sortie de Ri et Rf sont désignés respectivement par Di, Qi, Df, et Qf. Figure 1.16 : Un chemin local de données à phase unique avec des verrous. a. Prévention de l'arrivée tardive du signal de données La donnée π·π , est stocké dans π π au cours de la k-ième période d'horloge. La donnée ππ dans π π se propage le long de πΏππ ainsi que dans les interconnexions de π π → π π . Lors de la (k+1)-ième période d'horloge, le résultat de calcul π·π de πΏππ est stocké dans π π . Le signal π·π doit avoir au moins une avance 19 de temps πΏππΏ avant le bord de fuite de πΆπ de la (k+1)-ième période d'horloge. Le dernier instant d’arrivée πΏπ π‘π΄π de π·π à l’entrée de π π doit satisfaire : πΏπ π πΏπ πΏ π‘π΄π ≤ [π‘ππ + (π + 1)ππΆπ + πΆππ − βπΏπ ] − πΏπ (1.25) π Dans l'équation 1.15, le premier terme du côté droit est [π‘ππ + (π + 1)ππΆπ − βπΏπ ], tandis que πΏ πΏ dans l'Eq.1.25, le premier terme du côté droit a un terme additionnel πΆππ . Cet addition de πΆππ correspond à la notion que, contrairement aux bascules, le signal de données est stocké dans un verrou π πΏ (Fig.1.16) durant le front de fuite du signal d'horloge. Le terme [π‘ππ + (π + 1)ππΆπ + πΆππ − βπΏπ ] de l’Eq.1.25 correspond à la situation critique où le front de fuite du signal d'horloge arrivant plus tôt avec le maximum d’écart possible βπΏπ . πΏπ La valeur π‘π΄π de l'Eq.1.25 est constituée de deux composants: πΏπ 1. L'instant limite d'arrivée π‘ππ d’un signal de données valide ππ à la sortie de π π . 2. Le retard maximum de propagation du signal à travers le bloc πΏππ et les interconnexions. πΏπ Par conséquent, π‘π΄π peut être décrit à l’Eq.1.26. πΏπ π,π πΏπ π‘π΄π = π·ππ + π‘ππ (1.26) πΏπ Cependant, contrairement aux bascules, le terme π‘ππ de l’Eq.1.26 n'est pas la somme des πΏπ retards à travers π π . La raison en est que la valeur de π‘ππ dépend du cas où π·π arrive avant ou pendant πΏπ l'état transparent de π π lors de la k-ième période d'horloge. Par conséquent, la valeur de π‘ππ de l'équation est la plus grande de deux quantités : π πΏπ πΏπ πΏπ πΏπ π‘ππ = πππ₯[(π‘π΄π + π·π·ππ ), (π‘ππ + πππΆπ + βπΏπΏ + π·πΆππ )] (1.27) Il y a deux termes sur le côté droit de l'Eq.1.27: πΏπ πΏπ 1. L'expression (π‘π΄π + π·π·ππ ) correspond à la situation où π·π arrive à π π après le front de verrouillage de la k-ième période d'horloge. π πΏπ 2. L'expression (π‘ππ + πππΆπ + βπΏπΏ + π·πΆππ ) correspond à la situation où π·π arrive à π π avant l’arrivée du front de verrouillage de la k-ième période d'horloge. Le temps limite d’arrivée est : πΏπ π,π π πΏπ πΏπ πΏπ π‘π΄π = π·ππ + πππ₯[(π‘π΄π + π·π·ππ ), (π‘ππ + πππΆπ + βπΏπΏ + π·πΆππ )] Et on obtient : π,π π πΏπ πΏπ πΏπ π·ππ + πππ₯[(π‘π΄π + π·π·ππ ), (π‘ππ + πππΆπ + βπΏπΏ + π·πΆππ )] π πΏπ πΏ ≤ [π‘ππ + (π + 1)ππΆπ + πΆππ − βπΏπ ] − πΏπ (1.28) (1.29) En satisfaisant l'Eq.1.29, la violation de configuration dans le chemin local de données avec des verrous représentés sur la Fig. 1.17 sont évités. L'opération max dans l'Eq.1.29 crée une situation mathématiquement difficile car on ne sait pas qui des quantités dans l'opération max est supérieure. Pour surmonter cet obstacle, cette opération max peut être divisé en deux conditions: π,π π πΏπ πΏπ πΏπ πΏ π·ππ + (π‘π΄π + π·π·ππ ) ≤ [π‘ππ + (π + 1)ππΆπ + πΆππ − βπΏπ ] − πΏπ (1.30) π,π π πΏπ π πΏπ πΏ πΏ πΏ π·ππ + (π‘ππ + πππΆπ + βπΏ + π·πΆππ ) ≤ [π‘ππ + (π + 1)ππΆπ + πΆππ − β π ] − πΏπ (1.31) π π En tenant compte du fait que ππ πππ€ (π, π) = π‘ππ − π‘ππ , Eq.1.30 et Eq.1.31 deviennent : π,π π πΏπ πΏπ πΏπ πΏ π·ππ + (π‘π΄π + π·π·ππ ) ≤ [π‘ππ + (π + 1)ππΆπ + πΆππ − βπΏπ ] − πΏπ π,π πΏπ πΏπ πΏ ) ππ πππ€ (π, π) + (βπΏπΏ + βπΏπ ) ≤ (ππΆπ + πΆππ − (π·πΆππ + π·ππ + πΏπ ) 20 (1.32) (1.33) L'équation 1.33 peut être réécrite sous une forme qui précise la limite supérieure du décalage d'horloge : π,π π πΏπ πΏπ πΏπ πΏ π·ππ + (π‘π΄π + π·π·ππ ) ≤ [π‘ππ + (π + 1)ππΆπ + πΆππ − βπΏπ ] − πΏπ (1.34) π,π πΏπ πΏπ πΏ πΏ πΏ ππ πππ€ (π, π) ≤ (ππΆπ + πΆππ − βπΏ − β π ) − (π·πΆππ + π·ππ + πΏπ ) (1.35) b. Prévention de l'arrivée précoce du signal de données Rappelons la différence entre l'arrivée tardive et l’arrivée précoce d'un signal de données sur π π . Dans le premier cas, la donnée stockée dans π π au cours de la k-ième période d'horloge arrive trop tard pour être stockée dans π π durant la (k +1)-ième période d'horloge. Dans second cas, la donnée mémorisée dans π π au cours de la k-ième période d'horloge arrive trop tôt sur π π et écrase la donnée stocké dans π π durant la k-ième période d'horloge. Pour que le signal de données soit verrouillé avec succès dans π π au cours de la k-ième période d'horloge, il ne devrait pas avoir de changement du signal π·π jusqu'à ce qu'au moins le temps de maintien après l'arrivée du front de fuite de πΆπ arrive. Par conséquent, l’instant d’arrivé au plus tôt de π·π sur π·π doit satisfaire la condition suivante : πΏπ π πΏπ πΏ π‘π΄π ≥ (π‘ππ + πππΆπ + πΆππ + βπΏπ ) + πΏπ» (1.36) π πΏ Le terme (π‘ππ + πππΆπ + πΆππ + βπΏπ ) de l’Eq.1.36 correspond à la situation critique où le front πΏπ de fuite de la k-ième période d'horloge πΆπ arrive avec un retard maximum de βπΏπ . La valeur de π‘π΄π est constitué de deux composants: π πΏπ 1. L’instant le plus tôt d'arrivée de ππ apparaissant à la sortie de π π : est la somme π‘ππ = π‘ππ + πππΆπ − πΏπ πΏ βπΏ + π·πΆππ de l’instant d’arrivée le plus tôt du front de verrouillage de πΆπ et du retard minimum horloge/Q de πΆπ . 2. Le retard de propagation minimale du signal à travers πΏππ et les interconnexions. πΏπ Par conséquent, π‘π΄π peut être décrit comme suit : πΏπ π,π π,π π πΏπ πΏπ π‘π΄π = π‘ππ + π·ππ = (π‘ππ + πππΆπ − βπΏπΏ + π·πΆππ ) + π·ππ (1.37) La condition de synchronisation garantissant que π·π n'arrive pas trop tard sur π π . π,π π πΏπ π πΏπ πΏ (π‘ππ + πππΆπ − βπΏπΏ + π·πΆππ ) + π·ππ ≥ (π‘ππ + πππΆπ + πΆππ + βπΏπ ) + πΏπ» (1.38) Soit : π,π πΏπ πΏπ ππ πππ€ (π, π) − (βπΏπΏ + βπΏπ ) ≥ −(π·πΆππ + π·ππ ) + πΏπ» (1.39) La relation de synchronisation décrit par l’Eq.1.39 représente deux résultats importants : 1. La relation de l'Eq.1.39 ne dépend pas de la valeur de la période d'horloge 2. La relation dans l'Eq.1.39 peut être satisfaite avec une valeur suffisamment grande de ππ πππ€ (π, π). En outre, l'Eq.1.39 peut être réécrite afin de mettre en exergue la borne inférieure de ππ πππ€ (π, π) imposée : π,π πΏπ πΏπ ππ πππ€ (π, π) ≥ (βπΏπΏ + βπΏπ ) − (π·πΆππ + π·ππ ) + πΏπ» (1.40) 21