Les circuits logiques séquentiels
Les registres de mémorisation Un registre permet la mémorisation de n bits. Il est donc constitué de n bascules,mémorisant chacune un bit. L'information est emmagasinée sur un signal de commande et ensuite conservée et disponible en lecture. Entrées Écriture Lecture Sorties Registre de 4 bits commandé par les entrées W et R
Les registres à décalage Il existe deux types de transmission : Transmission parallèle : codage spatial. Transmission série : codage temporel. Les registres à décalage permettent de passer d un codage à l autre. Dans un registre à décalage les bascules sont interconnectées de façon à ce que l'état logique de la bascule de rang i puisse être transmis à la bascule de rang i+ quand un signal d'horloge est appliqué à l'ensemble des bascules. L'information peut être chargée de deux manières dans ce type de registre : Entrée parallèle : comme dans le cas d'un registre de mémorisation. En général une porte d'inhibition est nécessaire pour éviter tout risque de décalage pendant le chargement parallèle. Entrée série : l'information est présentée séquentiellement bit après bit à l'entrée de la première bascule. A chaque signal d'horloge un nouveau bit est introduit pendant que ceux déjà mémorisés sont décalés d'un niveau dans le registre.
Les registres à décalage Entrée. série - Sortie parallèle et série : Démonstration Ce type de registre permet de transformer un codage temporel en un codage spatial. Registre à 0 décalage 0 0 0 0 La sortie série peut également être utilisée. L'intérêt d'utilisation d'un registre à décalage en chargement et lecture série réside dans la possibilité d'avoir des fréquences d'horloge différentes au chargement et à la lecture. Le registre constitue alors un tampon.
Les registres à décalage Entrée. parallèle et série - Sortie série : Démonstration Si X = l'entrée parallèle est inhibée et l'entrée série est validée. Si X = 0 l'entrée série est bloquée et les entrées parallèles sont validées. Ce type de registre permet de transformer un codage temporel ou spatial en un codage temporel.
Les registres à décalage Entrée parallèle et série - Sortie parallèle et série : Démonstration du 4035B X = 0 Pr = Cr = H = :validée X = H = 0, Cr=E 0, Pr = E 0 Ei E i = 0 = ( Pr =,Cr = 0, ) Qi = ( Pr = 0,Cr =, ) Q = i 0 Q i = E i
Les registres à décalage Registre à décalage à droite et à gauche < >
Les registres à décalage Les diverses possibilités sont sélectionnées par les lignes commande S 0 et S. Considérons la ligne transportant le signal d'horloge aux bascules, elle est gouvernée par l'expression logique : 0 ( S S ) Clk = H + S S = H + Le signal d'horloge sera donc inhibé si S 0 + S = 0 0 Pour sélectionner le chargement parallèle (entrées A, B, C et D) il faut : S 0 + S = S0 S = S0 = S =. Le chargement parallèle se fait sur un front actif d'horloge.
Les registres à décalage Pour sélectionner le décalage à droite (entrée E, sortie Q D ) : S 0 = et S = 0 Pour le décalage à gauche (entrée E 0, sortie Q A ) : S 0 = 0 et S = S 0 S Fonction 0 0 0 0 Registre bloqué Décalage à gauche Décalage à droite Chargement parallèle Rq : un registre à décalage à droite et à gauche permet d'effectuer des multiplications et des divisions entières par des puissances de 2.
Les compteurs Un compteur est un ensemble de n bascules interconnectées par des portes logiques. Ils peuvent donc mémoriser des mots de n bits. Au rythme d'une horloge, ils peuvent décrire une séquence déterminée c'est-à-dire occuper une suite d'états binaires et peut représenter au maximum 2 n combinaisons. Ces états restent stables et accessibles entre les impulsions d'horloge. Le nombre total N des combinaisons successives est appelé le modulo du compteur. On a N 2 n. Si N < 2 n un certain nombre d'états sont hors du cycle nominal de fonctionnement. Les compteurs binaires peuvent être classés en deux catégories : les compteurs asynchrones; les compteurs synchrones. De plus on distingue les compteurs réversibles ou compteurs-décompteurs.
Les compteurs synchrones Soit un compteur modulo 8 comptant en binaire naturel, nous choisissons un codage permettant de réduire au maximum le CCS : S 2 S S 0 les sorties Q 0, Q et Q 2 fournissent des signaux périodiques de fréquences respectivement 2, 4 et 8 plus faibles que celle de H. La division de fréquence est une des applications des compteurs.
Les compteurs synchrones En utilisant des bascules JK comme des bascules T ( J = K ) # Top Q 2 Q Q 0 K 2 =J 2 K =J K 0 =J 0 0 0 0 0 0 0 2 0 0 3 0 4 0 0 5 0 6 0 7 0 0 0 0 0 0 0 0 0 0 8 = 0 0 0 0 - - - K 0 =J 0 = K =J = Q 0 K 2 =J 2 = Q Q 0 En généralisant : K i = J i = Q i-..q 0 Ou K i = J i = J i- Q i- = K i- Q i-
Les décompteurs synchrones En utilisant des bascules JK comme des bascules T # Top Q 2 Q Q 0 K 2 =J 2 K =J K 0 =J 0 0 0 2 0 3 0 0 4 0 5 0 0 6 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0 0 8 = 0 - - - K 0 =J 0 = K =J = K 2 =J 2 = Q 0 Q Q 0 En généralisant : K i = J i = Q i-..q 0 Ou K i = J i = J i- Q i-= K i- Q i-
Les compteurs synchrones Aux deux manières d'exprimer les relations de récurrence des équations de commutation correspondent deux types de circuits. K i = J i = Q i-..q 0 est dit à report parallèle K i = J i = J i- Q i- est dit à report série évite ainsi des portes à multiples entrées mais limite la fréquence de l horloge!!!! X= 0 => Compteur, X = => Décompteur Compteur Décompteur à report parallèle
Les compteurs synchrones Compteur Décompteur à report série Si le temps de propagation d une porte NAND : MAX(T phl, T plh ) = δ s (5 ns pour TTL) T H >>6δ
Compteur synchrone Q 3 T Q T Q & T Q & T Q H Q 0 Q Q 2 Compteur synchrone à report série : T min (H) > T p (bascule) + (n-2) * T p (porte ET) Q 3 T Q T Q & T Q & T Q H Q 0 Q Q 2 Compteur synchrone à report parallèle : Tmin(H) > Tp(bascule) + Tp(porte ET)
Compteur synchrone Compteur en anneau : rapide (pas de porte) Registre à décalage bouclé H D Q Q 0 D Q Q D Q Q 2 Q Q Q N bascules : plusieurs cycles de comptage Beaucoup de cycles piège : obligation d ajouter une logique pour les casser (cf synthèse synchrone) : moins rapide 000 0 0 00 0 00 00
Compteur synchrone Compteur de Johnson : Le plus rapide (pas de porte) Registre à décalage bouclé par inversion H D Q Q 0 Q Q 2 D Q D Q Q Q Q N bascules : 2 cycles de comptage Un nominal de longueur 2N-2 états Un cycle piège de 2 états 000 00 0 0 00 0 00
Compteur chaîné asynchrone (principe) Cascade de diviseurs de fréquence par deux sur fronts montants. Les bascules n ont plus la même horloge H T Q T Q T Q Décompteur binaire Q 0 Q Q 2 H Q 0 Q Q 2 0 7 6 5 4 3 2... Structure à éviter car asynchrone
Compteur chaîné asynchrone (principe) Cascade de diviseurs de fréquence sur fronts descendants H T 0 Q 0 Q0 T Q T 2 Q 2 Compteur Q Q 2 binaire H Q 0 Q Q 2 0 2 3 4 5 6... Structure à éviter car asynchrone
Q 3 7 6 4 0 8 Compteur chaîné asynchrone (principe) Accumulation des temps de propagation : baisse de la fréquence Exemple : passage de 7 à 8 H Q 0 t p Q T min (H)> n.t p +marge Q 2 Si n bascules changent d état : n- états transitoires, par contre les excitations des bascules sont synchronisées
Les compteurs synchrones (modulo N) Exemple du compteur décimal 0-9 Compteur synchrone 4 bits en binaire naturel 4 bascules JK Si J=K : bascules T Il va compter jusqu à 5! J K SET Q ~Q Q0 SET J Q K ~Q RESET Q 2 & 3 SET J Q K ~Q RESET Q2 4 5 & 6 SET J Q K ~Q RESET Q3 RESET H
Les compteurs synchrones (modulo N) Q 3 Q 2 Q Q 0 0 0 0 0 0 0 0 0 2 0 0 0 3 0 0 4 0 0 0 5 0 0 6 0 0 7 0 8 0 0 0 9 0 0 Bouclage 0 0 0 0
Les compteurs synchrones (modulo N) Remise à l état initial (0000) pour tous les états hors cycle par une action sur le reset des bascules : Synthèse risque minimal (0) () (2) (3) (4) (5) (0) (0) (0) (0) (0) (0) = = = = = = ( 00) (2) ( 0) (2) ( 00) (2) ( 0) (2) ( 0) (2) ( ) (2) Etats hors cycle Q 0 Q Q 2 Q 3 RESET = Q 3 (Q 2 +Q )
Compteur synchrone 746 compteur intégré synchrone 4 bits binaire programmable cascadable de la famille TTL (6 broches (pins)) LD E0-3 ENT ENP CP CLR 746 Vcc+Gnd Q0-3 Co CP : horloge (front montant) Q 0-3 : sorties du compteur E 0-3 : entrées parallèles (de prog) CLR : RAZ asynchrone active à 0 LD : charg t parallèle synchrone actif au niveau bas prioritaire sur le comptage ENP/ENT : autorisation de comptage comptage si ENP.ENT= Co : retenue = si Q 3 Q 2 Q Q 0.ENT= (ENT agit sur Co en asynchrone)
Compteur synchrone Présentation du 746 ou 7463 Chronogramme ENP ENT CO
Compteur synchrone de (A) (2) à (B) (2) Utilisation d un compteur avec chargement parallèle : lorsque le modulo est détecté, on recharge le compteur (entrée prioritaire) (E) (2) H LD Compteur synchrone Détecteur Détection de B Q 3-0 Q 3 Q 2 Q Q 0 & Load Si B = 00 => Load= Q 3-0 = (A) (2)
Compteurs synchrones cascadés On dispose de compteurs 4 bits, on veut compter sur N bits (N>4) Exemple (N=2) : 0000 0000 0000 0000 0000 000... 0000 0000 0000 000 0000 0000 000 000... 0000 000 0000 0000 Compteur MSB (de 0 à 5) Il faut 3 compteurs 4 bits Le premier compte tout le temps. Le deuxième ne compte que quand le premier est à 5. (le troisième compte quand premier=5 et deuxième=5) Compteur LSB (de 0 à 5) Cascadage des compteurs
Compteurs synchrones cascadés 3 techniques dont 2 mauvaises (!!!!) Cascade asynchrone H ENP ENT Co ENP ENT Co ENP ENT Co
Compteurs synchrones cascadés Cascade synchrone série : H ENP ENT LSB Co ENP ENT Co Co = Q 3.Q 2.Q.Q 0.ENT ENP ENT Co Période de H : T min (H)> T p (Clk/Co) + 2 T p (Ent/Co)
Compteurs synchrones cascadés Cascade synchrone parallèle : ENParallèle et ENThru H ENP ENT Co ENP ENT Co ENP ENT Co Période de H : T min > T p (Clk/Co) + T p (Ent/Co) C est la bonne technique
Le pipe line Optimisation de machine séquentielle complexe : L architecture pipeline : Extrait du cours du MIT l09- Entrée : Device : machine à laver Temps : Washer pd = 30 mn Fonction : laver,essorer Sortie : Device : sèche linge Temps : Drier pd = 60 mn Fonction : sécher 32
Le pipe line Approche Traditionnelle (one shot) : 33
Le pipe line Approche Traditionnelle : 34
Le pipe line Approche optimisée (pipeline) : En négligeant les 30 premières minutes Approche traditionnelle : Approche optimisée : Temps de propagation 90 mn 20 mn* Fréquence d obtention d un bac de linge /90mn /60mn * : les changements ont lieu à chaque fin de lavage 35
Le pipe line Application aux systèmes logiques séquentielles : T p : temps de propagation du circuit, /T p : fréquence. En posant : Tp(F)=5ns, Tp(G)=20ns, Tp(H)=25ns F et G sont «en attente» (idle) lorsque H établit son niveau Le temps de propagation de ce circuit est de 45ns 36
Le pipe line Positionnons des bascules synchrones à la sortie de chaque partie : F et G peuvent traiter X i+ alors que H traite les sorties F(X i ) et G(X i ) contenu dans les bascules. Pipeline à 2 étages Temps de propagation Fréquence Approche traditionnelle : 45 ns /45 ns Approche optimisée : 50 ns* /25 ns * : l élément le plus lent fixe la fréquence de l horloge 37
Le pipe line Diagramme d un pipeline : Clock Etage du pipelin ne Temps de chargement du pipeline Propagation en diagonale des signaux dans le diagramme 38
Le pipe line Application aux traitement des instructions : L exécution schématique d une instruction est la suivante : Fetch, Decode, Execute, Save. Chargement d une instruction de la mémoire (fetch : chercher), 2. Analyse l'instruction (decode : ), 3. Exécution de l instruction (execute : ) 4. Sauvegarde du résultat (save : ) Le nombre d étape peut varier en fonction de l architecture de processeur
Le pipe line Pipeline sur une machine de Harvard : Temps de Traitement d une instruction Clock 0 2 3 4 5 6 7 Traditionnel Instruction : Instruction 2 : IF RO EX WB IF RO EX WB Pipe line Instruction : Instruction 2 : Instruction 3 : Instruction 4 : IF RO EX WB IF RO EX WB IF RO EX WB IF RO EX WB Les inconvénients : Programmation plus complexe de la structure, Gestion des interruptions (charge et décharge du pipeline), Erreur d exécution (pipeline hazard, boucle, ) 40
Les mémoires Les mémoires : Une mémoire est un dispositif de stockage de l information. Chaque information stockée est appelée «donnée» (data). Comme il est possible de stocker plusieurs données dans une mémoire, il est nécessaire d organiser le stockage de celle-ci. Pour cela, on attribut une adresse à chaque case mémoire. De même, on utilise un signal de validation du circuit mémoire. Sélection (Chip select) Donnée (m bits) Mémoire Commande (écriture ou/et lecture) Adresse ( n bits)
Les mémoires SM : activation de la bascule sinon état Hiz Bus Adresse Validation du circuit Lecture Bus de Données Écriture
Les mémoires : organisation Schéma du décodeur d adresse 4 mots mémoire = 4 portes ET
Les mémoires : organisation Une mémoire contenant 52 mots de 4 bits possède 52 portes ET pour réaliser le décodeur Largeur du bus de données (n) et d adresse (k) : n=4 et k=9 (2 9 =52) Organisation bidimensionnelle : matrice de 64 lignes et 32 colonnes (8*4 bits) 64*8=52 6 bits = 64 ET bit Au final : 64 ET 4 (8 ET+ OU) 00 portes logiques 3 bits 8 ET OU 8 ET OU 8 ET OU 8 ET OU MUX Multiplexeur 8 vers pour le choix du bit à lire Donnée 4 bits
Les mémoires : organisation Nombre de portes en fonction de la géométrie Représentation carrée donne la plus grande économie Les mêmes lignes d'adresse peuvent être utilisées pour identifier successivement la ligne puis la colonne. Cela permet de réduire le nombre de broches de connexion, donc l'encombrement et le coût des circuits. Cependant cela demande environ deux fois plus de temps par transmettre l'adresse complète. Si on cherche à accéder à des informations stockées dans une même ligne il peut être possible de définir une fois la ligne, puis pour chaque mot de n'avoir à envoyer que l'adresse de la colonne.
Les mémoires : organisation Si on cherche à accéder à des informations stockées dans une même ligne il peut être possible de définir une fois la ligne, puis pour chaque mot de n'avoir à envoyer que l'adresse de la colonne. CAS RAR Adresse Ligne (k) Adresse Colonne (k) Data (k) Adresse Colonne (k+) Data(k+) Temps d accès data(k) Temps d accès data(k)
Les mémoires : organisation Augmentation du nombre de mots De même la figure suivante montre la réalisation d'un bloc de 4 x 2k mots de n bits à l'aide de 4 boîtiers de 2k x n bits. Il nous faut k+2 lignes d'adresse. Les k bits de bas poids de l'adresse sont appliqués simultanément sur les 4 boîtiers. Les deux bits de poids forts attaquent un décodeur à quatre sorties. Chacune de ces quatre lignes permet de sélectionner un boîtier (entrée de validation du boîtier : CS). Un seul boîtier est alors connecté aux lignes de sortie.
Les mémoires : organisation Augmentation de la longueur des mots La figure suivante montre qu'il est aisé d'associer deux boîtiers de 2k mots de n bits pour obtenir un bloc de 2k mots de 2 n bits. L'adressage doit être appliqué simultanément aux deux circuits, l'un fournissant les n bits de bas poids et l'autre les n bits de haut poids. 2n
Gestion d une pile On veut concevoir une pile de 4 éléments de 3 bits. Il s agit d une machine logique synchrone dans laquelle on peut insérer ou extraire un élément. Il s agit d une mémoire qualifiée de LIFO (Last Input, First Output) : on ne peut extraire de la pile que la dernière donnée à avoir été mémorisée. Outre une horloge H, le circuit comporte 3 entrées : E2EE0 : entrée sur 3 bits que l on souhaite insérer dans la pile. W : entrée sur bit qui, lorsqu elle est à, indique que l on veut insérer la valeur présente sur E2EE0 au prochain front d horloge. R : entrée sur bit qui, lorsqu elle est à, indique de l on veut extraire, au prochain front d horloge, le dernier élément inséré dans la pile. Il possède 3 sorties : S2SS0 : valeur d un élément extrait P : sortie sur bit qui est à quand la pile est pleine (4 éléments insérés et non extraits) V : sortie sur bit qui est à quand la pile est vide (tous les éléments insérés par le passé ont été extraits). Si l on essaie d insérer un élément quand la pile est pleine ou d extraire un élément lorsque la pile est vide, il ne se passe rien. De plus, on considère que la combinaison W=R= est interdite. Pour réaliser ce circuit, on suppose que l on dispose des composants suivants (dont on ne demande pas le schéma) : De mémoires contenant 4 mots de 3 bits. o entrée horloge o entrée E2-0 : valeur de la donnée à mémoriser o entrée X2-0 : adresse de la donnée à mémoriser. o sortie S2-0 : valeur contenue dans la mémoire à l adresse X2-0. o entrée :load : commande de mémorisation si load=, la valeur en entrée est mémorisée sur un front montant d horloge à l adresse X2-0. un compteur/décompteur 2 bits en binaire naturel. o entrée horloge o entrée : c+. Lorsque cette entrée est à, la valeur du compteur est incrémentée au prochain front montant de l horloge. o entrée : c-. Lorsque cette entrée est à, la valeur du compteur est décrémentée au prochain front montant de l horloge. o entrée init : cette entrée asynchrone, active à l état bas, permet d initialiser la valeur du compteur à QQ0=00. o sorties NN0: valeur du compteur.
logigramme +V c cr R & 0 V ec + H Q Q 0 H E 2-0 & c - & P V W X X 0 H S 2-0
Gestion d une pile Analyse de machine séquentielle : K 0 =J 0 = : Bascule T K =J = C Q0 C Q + 0 = C Q + C + 0 + Q 0 = C + Q0 + C + Q 0 Q + = J Q + KQ = J Q
Gestion d une pile C + C - Q Q 0 K Q + Q 0 + 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0/0 0 0 0 0 0 0 0 0 0 0 0
Gestion d une pile Porte ET sur C- en NAND K 0 =J 0 = K =J = : Bascule T C + Q0 + C Q C+ Q0 C Q0 = 0 C + C - Q Q 0 K Q + Q 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0