Admin ]

Affichage optimisé : 1280x1024. Nous sommes le  mardi 16 octobre 2018
Vous êtes ici : Accueil  /  2- Systèmes Numériques - Structures
Le temps dans les systèmes numériques
jeudi 16 octobre 2014, par gerla
horloge, bascule, registre

La maîtrise du temps est une obsession toute humaine. Les notes d’une partition de musique sont jouées dans un ordre donné et selon un rythme (le tempo ). Dans les systèmes micro-informatiques, la suite des instructions se déroule selon un programme propre et/ou en fonction de l’apparition d’évènements situés dans l’environnement de fonctionnement du système. Une base de temps (ou horloge) donne le cadencement.

Cette notion faisant intervenir le temps est la porte d’entrée vers la logique séquentielle.

Cet article vient très en amont des systèmes microinformatiques développés dans le tome 2 de Techniques audiovisuelles et multimédias publié aux éditions Dunod et également disponible dans toutes les bonnes librairies.

1- Générateur d’horloge et Horloge

Une horloge est un signal électrique pseudo rectangulaire (figure 1) , de fréquence déterminée par le contexte et les besoins de la technique mise en œuvre. Le signal d’horloge CLK (clock ou clock pulse) est produit par un générateur le plus souvent piloté par un quartz. Le quartz permet d’assurer la stabilité dans le temps (fréquence du signal présentant le moins de fluctuation possible) du fonctionnement du générateur.

(JPG)

La durée du front descendant n’est forcément strictement égale à la durée du front montant. Cela dépend des composants du circuit fonctionnant en commutation. Les comportements des circuits à l’ouverture et à la fermeture ne sont pas strictement identiques.

2- Bascule, Mémoire élémentaire

Le signal d’horloge CLK permet de valider et transférer les niveaux logiques sur les fronts montants ou descendants. Dans cette situation, il faut que le niveau logique de la variable à transférer puisse être maintenu jusqu’au-delà du top d’horloge validant le transfert.

L’utilisation d’une bascule permet de maintenir l’état d’une variable (appelée donnée) pendant un laps de temps alors qu’elle est susceptible d’être perdue. La structure électronique la plus simple permettant de maintenir une donnée (ou mémoire élémentaire) est une bascule (figure 2a) .

Quand l’entrée SET est portée à un niveau haut (1), la sortie Q bascule également au niveau haut. Quelque soit le changement d’état de l’entrée SET, la sortie Q est maintenue ( fonction mémoire ) au niveau haut tant que l’entrée d’initialisation ( RESET) est au niveau bas (0).

En d’autres termes, la mémorisation d’un état logique (mémoire élémentaire) est obtenue à partir d’un composant ayant 2 états stables de fonctionnement. Cet élément est bistable.

(JPG)

La figure 2b donne la structure d’une bascule RS réalisée à partir de 4 portes NAND (ET-NON). La première ligne de la table de vérité montre que lorsque S et R sont à 0, la sortie Q recopie (fonction mémoire) l’état Qn-1 (état de Q antérieur). Lorsque S et R sont simultanément à 1, les sorties Q et [Q barre] sont dans un niveau à priori indéterminé (aléa technologique) et/ou instable. Cette situation n’est pas acceptable. Les mémoires élémentaires devront être élaborées à partir de structures plus complexes.

3- Synchronisation de la prise en charge et du transferts de données

Les bascules envisagées précédemment présentent de nombreux inconvénients dans leur mode de fonctionnement. En particulier, on ne maîtrise pas l’instant de changement d’état de la bascule (mémorisation et initialisation). Pour corriger ce type de défaut, une horloge détermine quand le changement d’état doit avoir lieu.

La transmission de données (ou de niveaux logiques) se faisant en synchronisme avec un signal d’horloge est appelée transmission synchrone. Cette solution est actuellement la plus utilisée, en particulier quand des débits importants doivent être atteints.

(JPG)

Après la mise en marche ou après un cycle de fonctionnement (figure 3, durée t0) , la sortie Q et la sortie complémentée [Q barre] sont positionnées dans un état logique 0 ou 1. Sur un front descendant de l’horloge CLK, l’impulsion de Reset permet de mettre à 0 la sortie Q (et de mettre à 1 la sortie [Q barre]). Le dispositif est alors initialisé (t1).

Lorsqu’un niveau haut arrive sur l’entrée de la variable binaire ou de donnée (Data), la sortie Q bascule à l’état 1 (durée t1) sur le front descendant de l’horloge (synchronisation du transfert de donnée, durée t2) . Lors de l’impulsion de donnée suivante (correspondant au temps t3) , la sortie Q bascule à nouveau et passe à l’état 0.

Remarque : l’analyse des chronogrammes de la figure 3 montre que les fronts de montée ou de descente de l’horloge CLK sont rapides alors que les changements d’état des autres lignes d’entrée sont lents . En fait, ce qui est important, c’est que l’état de la ligne d’entrée considérée soit établi lors du changement d’état (front) de l’horloge.

Dans les systèmes les plus simples, un seul front d’horloge est utilisé (le front descendant est souvent utilisé) pour synchroniser la validation et le transfert des données.

Ce type de bascule (figure 3) est encore appelé flip flop. La structure interne des bascules peut varier selon la qualité de la réponse recherchée et selon la fonctionnalité des entrées auxiliaires.

4- Association de bascules : registre et compteur

A un instant donné, l’information binaire est généralement composée de plusieurs bits (abréviation de binary digit , un bit représente l’état 0 ou 1 que peut prendre une variable binaire). Ces données sont organisées en mots dont le format peut varier selon la complexité du système considéré. Les formats courants sont de 4 bits, de 8 bits (1 octet) ou d’un multiple entier de 8 bits (16, 32, 64 ou128 bits).

Un registre tampon (latch) est très souvent utilisé comme une mémoire temporaire. A ce titre, un registre est composé d’autant de bascules bistables qu’il y a de bits dans le mot binaire à maintenir. Par exemple, pour mémoriser un mot de 8 bits (1 octet) pendant un laps de temps, on utilise un registre tampon comportant 8 bascules. Il est bien évidemment possible de monter des registres en série afin de mémoriser temporairement des mots composés de plusieurs octets.

Les données maintenues dans un registre sont disponibles très rapidement. En d’autres termes, le temps d’accès à des données placées dans un registre est très court. En fonction de son implantation dans les circuits et de son application, le registre devient par exemple un accumulateur dans une unité centrale de calcul (CPU). Les registres peuvent également être différentiés en fonction du contenu qui est stocké (données, instructions, adresses).

La figure 4a montre le principe d’agencement d’un registre tampon de 4 bits. Les données provenant de la source A étant présentes sur les entrées D0 à D3, au front d’horloge descendant (par exemple), les données sont chargées dans les bascules du registre et maintenues. Ces données ne sont disponibles en sorties Q0 à Q3 que lorsque la ligne de validation DLen est activée (logique 3 états).

(JPG)

Au delà du nom donné en fonction de l’application considérée, il existe d’autres types de registres associant des bascules sur le principe du registre tampon. En particulier, on cite les registres à décalage (shift register) qui sont intéressants pour :

• la conversion d’une transmission série (les bits d’un mot sont transmis les uns après les autres sur un seul fil) en une transmission parallèle (figure 4b)  ;

• la conversion d’une transmission parallèle en une transmission série  ;

• le décalage à droite (ce qui peut revenir à faire une division par 2 d’un nombre binaire) ;

• le décalage à gauche (ce qui revient à faire une multiplication par 2 d’un nombre binaire).

Sur la figure 4b , au premier top d’horloge CLK1 (sur le front descendant, par exemple), la bascule 3 du convertisseur série/parallèle, charge le premier bit du mot (1011, dans l’exemple), les autres sorties des bascules se trouvant dans un état quelconque X. Au top suivant CLK2, l’état de sortie de la bascule 3 est pris en charge par la bascule 2 (décalage) alors que la bascule 3 prend l’état du bit suivant présent dans le mot d’entrée. Et ainsi de suite jusqu’à chargement complet du mot de données présent sur le bus série. La ligne DLEn valide ensuite les états sur les sorties Q1 à Q4.

Un compteur est réalisé à partir de bascules montées en série ( figure 5 ). Chaque bascule se comporte en diviseur de fréquence .

(JPG)

La fonction globale permet de compter des impulsions (et de déclencher un processus au bout d’un certain nombre d’impulsions, fonction temporisation). Le nombre de bascules bistables qui composent un compteur détermine la capacité maximale de comptage. Un compteur comportant n bascules peut compter de 0 à (2 puissance n) -1. Le comptage peut être remis à zéro sur une valeur intermédiaire prédéterminée.

5- Horloges et temps

Dans un système numérique autonome et localisé autour d’un bloc de calcul, une horloge à quartz telle que décrite au premier paragraphe, suffit à cadencer et synchroniser l’ensemble des opérations réalisées. Un ensemble de diviseurs (revoir la figure 5 ) permet d’obtenir des horloges à fréquences sous-multiples quand cela est nécessaire.

Dans un système comportant plusieurs unités de calcul plus ou moins distantes l’une de l’autre, la situation est plus complexe. Chaque unité de calcul comportant son horloge à quartz, il est peu probable de retrouver rigoureusement la même fréquence sur les différentes machines. Si des évènements, se déroulant en parallèle sur des machines numériques différentes, doivent être datés (associé à une valeur de temps), une erreur de chronologie (ordre dans lequel on obtient les résultats sur chaque machine) peut entraîner un résultat global erroné.

Afin d’éviter les risques d’erreur et obtenir une cohérence des temps, à chacun des résultats obtenus sur chacune des machines est associé une date. La machine recevant un résultat daté peut donc se synchroniser sur cette date (qui ne peut être que postérieure). On parle d’ horloge logique ou d’horloge de Lamport. et d’algorithme de Lamport.

voir aussi ...
du même auteur ... gerla
Document(s) associé(s) :
4.9 ko