CM5
Transcription
CM5
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+1 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 . série - Sortie parallèle et série : Entrée Démonstration Ce type de registre permet de transformer un codage temporel en un codage spatial. 1 Registre à 0 décalage 0 0 1 0 0 1 1 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 . parallèle et série - Sortie série : Entrée Démonstration Si X = 1 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 X=1 Pr = Cr = 1 H =1 :validée H = 0, Cr=E0, Pr = E0 Ei = 0 ⇒ (Pr = 1, Cr = 0,) ⇒ Q i = 0 Ei = 1 ⇒ (Pr = 0, Cr = 1,) ⇒ Q i = 1 Q i = Ei 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 S0 et S1. Considérons la ligne transportant le signal d'horloge aux bascules, elle est gouvernée par l'expression logique : ( Clk = H + S 0 ⋅ S1 = H ⋅ S 0 + S1 ) Le signal d'horloge sera donc inhibé si S0 + S1 = 0 Pour sélectionner le chargement parallèle (entrées A, B, C et D) il faut : S0 +S1 = S0 ⋅S1 = 1 S0 = S1 = 1. 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 E1, sortie QD) : S = 1 et S = 0 0 1 Pour le décalage à gauche (entrée E0, sortie QA) : S = 0 et S = 1 0 1 S0 S1 Fonction 0 0 Registre bloqué 0 1 Décalage à gauche 1 0 Décalage à droite 1 1 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 2n 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 ≤ 2n. Si N < 2n 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 : S2 S1 S0 les sorties Q0, Q1 et Q2 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 (J=K) En utilisant des bascules JK comme des bascules T # Top Q2 Q1 Q0 K2=J2 K1=J1 K0=J0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 2 0 1 0 0 0 1 3 0 1 1 1 1 1 4 1 0 0 0 0 1 5 1 0 1 0 1 1 6 1 1 0 0 0 1 7 1 1 1 1 1 1 8=0 0 0 0 - - - K0=J0= 1 K1=J1= Q0 K2=J2= Q1Q0 En généralisant : Ki = Ji = Qi-1 …..Q0 Ou Ki = Ji = Ji-1 Qi-1= Ki-1 Qi-1 Les décompteurs synchrones En utilisant des bascules JK comme des bascules T # Top Q2 Q1 Q0 K2=J2 K1=J1 K0=J0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 2 1 0 1 0 0 1 3 1 0 0 1 1 1 4 0 1 1 0 0 1 5 0 1 0 0 1 1 6 0 0 1 0 0 1 7 0 0 0 1 1 1 8=0 1 1 1 - - - K0=J0= 1 K1=J1= Q0 K2=J2= Q1Q0 En généralisant : Ki = Ji = Qi-1 …..Q0 Ou Ki = Ji = Ji-1 Qi-1= Ki-1 Qi-1 Les compteurs synchrones Aux deux manières d'exprimer les relations de récurrence des équations de commutation correspondent deux types de circuits. • Ki = Ji = Qi-1 …..Q0 est dit à report parallèle • Ki = Ji = Ji-1 Qi-1 est dit à report série évite ainsi des portes à multiples entrées mais limite la fréquence de l’horloge !!!! X= 0 => Compteur, X = 1 => 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(TpHL, TpLH) = δ s (15 ns pour TTL) TH >>6δ Compteur synchrone 1 T Q T Q Q0 H & T Q Q1 & Q3 T Q Q2 Compteur synchrone à report série : Tmin(H) > Tp(bascule) + (n-2) * Tp(porte ET) Q3 1 H T Q T Q0 Q & Q1 T Q & T Q Q2 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é D H Q Q Q0 D Q Q1 D 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 Q Q2 Q 000 110 011 100 101 010 001 111 Compteur synchrone Compteur de Johnson : Le plus rapide (pas de porte) Registre à décalage bouclé par inversion D H Q Q Q0 D Q Q1 Q N bascules : 2 cycles de comptage Un nominal de longueur 2N-2 états Un cycle piège de 2 états D Q Q2 Q 000 101 100 010 110 111 011 001 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 1 T Q T Q T Q Décompteur binaire H Q0 H Q0 Q1 Q2 0 7 6 Q1 5 4 Q2 3 2 ... Structure à éviter car asynchrone Compteur chaîné asynchrone (principe) Cascade de diviseurs de fréquence sur fronts descendants 1 T0 Q 0 T1 Q 1 T2 Q 2 Q0 Q1 Q2 H Compteur binaire H Q0 Q1 Q2 0 1 2 3 4 5 6 ... Structure à éviter car asynchrone Compteur chaîné asynchrone (principe) Accumulation des temps de propagation : baisse de la fréquence Exemple : passage de 7 à 8 H Q0 tp Q1 Tmin (H)> n.tp+marge Q2 Q3 7 6 4 0 8 Si n bascules changent d’état : n-1 é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 Il va compter jusqu’à 15! Si J=K : bascules T 4 1 SET 1 J SET J Q1 Q0 ~Q RESET H J Q K ~Q 2 K ~Q Q2 RESET RESET & J Q K ~Q 5 Q Q K SET 3 & SET 6 RESET Q3 Les compteurs synchrones (modulo N) Q3 Q2 Q1 Q0 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1 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 (10) (10) = (1010 )( 2 ) (11) (10) = (1011)( 2) (12) (10) = (1100 )( 2 ) (13) (10) = (1101)( 2) Etats hors cycle (14) (10) = (1110 )( 2 ) (15) (10) = (1111)( 2 ) Q0 Q1 Q2 Q3 RESET = Q3(Q2+Q1) Compteur synchrone 74161 compteur intégré synchrone 4 bits binaire programmable cascadable de la famille TTL (16 broches (pins)) LD ENT ENP E0-3 74161 CP CLR Co Vcc+Gnd Q0-3 CP : horloge (front montant) Q0-3 : sorties du compteur E0-3 : entrées parallèles (de prog) CLR : RAZ asynchrone active à 0 LD : chargt parallèle synchrone actif au niveau bas prioritaire sur le comptage ENP/ENT : autorisation de comptage comptage si ENP.ENT=1 Co : retenue =1 si Q3Q2Q1Q0.ENT=1 (ENT agit sur Co en asynchrone) Compteur synchrone Présentation du 74161 ou 74163 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) Compteur synchrone H Détecteur LD Q3-0 Détection de B Q3 Q2 Q1 Q0 Load & Si B = 1001 => Load=1 Q3-0= (A)(2) Compteurs synchrones cascadés On dispose de compteurs 4 bits, on veut compter sur N bits (N>4) Exemple (N=12) : 0000 0000 0000 0000 ... 0000 0000 0000 0001 0000 0001 ... 0000 1111 0001 0000 0000 0001 1111 0000 0001 1111 0000 Il faut 3 compteurs 4 bits Le premier compte tout le temps. Le deuxième ne compte que quand le premier est à 15. (le troisième compte quand premier=15 et deuxième=15) Compteur LSB (de 0 à 15) Compteur MSB (de 0 à 15) Cascadage des compteurs Compteurs synchrones cascadés 3 techniques dont 2 mauvaises (!!!!) Cascade asynchrone 1 H ENP ENT Co ENP ENT Co ENP ENT Co Compteurs synchrones cascadés Co = Q3.Q2.Q1.Q0.ENT Cascade synchrone série : 1 H LSB ENP ENT Co ENP ENT Co ENP ENT Période de H : Tmin (H)> Tp(Clk/Co) + 2 Tp(Ent/Co) Co Compteurs synchrones cascadés Cascade synchrone parallèle : ENParallèle et ENThru 1 H ENP ENT Co 1 ENP ENT Co ENP ENT Période de H : Tmin > Tp(Clk/Co) + Tp(Ent/Co) C’est la bonne technique Co Le pipe line Optimisation de machine séquentielle complexe : L’architecture pipeline : Extrait du cours du MIT l09-1 Entrée : Device : machine à laver Temps : Washerpd= 30 mn Fonction : laver,essorer Sortie : Device : sèche linge Temps : Drierpd= 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 Temps de propagation Approche traditionnelle : Approche optimisée : Fréquence d’obtention d’un bac de linge 90 mn 1/90mn 120 mn* 1/60mn * : les changements ont lieu à chaque fin de lavage 35 Le pipe line Application aux systèmes logiques séquentielles : Tp : temps de propagation du circuit, 1/Tp : fréquence. F et G sont « en attente » (idle) lorsque H établit son niveau En posant : Tp(F)=15ns, Tp(G)=20ns, Tp(H)=25ns 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 Xi+1 alors que H traite les sorties F(Xi) et G(Xi) contenu dans les bascules. Pipeline à 2 étages Temps de propagation Approche traditionnelle : Approche optimisée : Fréquence 45 ns 1/45 ns 50 ns* 1/25 ns * : l’élément le plus lent fixe la fréquence de l’horloge 37 Le pipe line Diagramme d’un pipeline : Etage du pipeline Clock 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 1. 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 Traditionnel Instruction 1 : 0 1 IF 2 RO 3 4 IF Instruction 2 : Pipe line Instruction 3 : Instruction 4 : IF 6 7 EX WB Instruction 2 : Instruction 1 : 5 RO RO EX WB IF RO EX WB IF RO EX WB IF RO 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, )… EX WB EX WB 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. Commande (écriture ou/et lecture) Sélection (Chip select) Donnée (m bits) Mémoire 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 512 mots de 4 bits possède 512 portes ET pour réaliser le décodeur… Largeur du bus de données (n) et d’adresse (k) : n=4 et k=9 (29=512) Organisation bidimensionnelle : matrice de 64 lignes et 32 colonnes (8*4 bits) 6 bits = 64 ET 64*8=512 1 bit Au final : 64 ET 4 (8 ET+1 OU) 100 portes logiques MUX 3 bits Multiplexeur 8 vers 1 pour le choix du bit à lire 8 ET 1 OU 8 ET 1 OU 8 ET 1 OU Donnée 4 bits 8 ET 1 OU 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. Adresse Ligne (k) Adresse Colonne (k) Adresse Colonne (k+1) CAS RAR Data (k) Temps d’accès data(k) Data(k+1) 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 : E2E1E0 : entrée sur 3 bits que l’on souhaite insérer dans la pile. W : entrée sur 1 bit qui, lorsqu’elle est à 1, indique que l’on veut insérer la valeur présente sur E2E1E0 au prochain front d’horloge. R : entrée sur 1 bit qui, lorsqu’elle est à 1, 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 : S2S1S0 : valeur d’un élément extrait P : sortie sur 1 bit qui est à 1 quand la pile est pleine (4 éléments insérés et non extraits) V : sortie sur 1 bit qui est à 1 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=1 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=1, 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 à 1, la valeur du compteur est incrémentée au prochain front montant de l’horloge. o entrée : c- . Lorsque cette entrée est à 1, 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 à Q1Q0=00. o sorties N1N0: valeur du compteur. logigramme +Vc cR 0 V R & H & ec + 1 H Q1 Q0 &P c - ≥1V 1 E2-0 W X1 X0 H S2-0 Gestion d’une pile Analyse de machine séquentielle : K0=J0= 1 : Bascule T K1=J1= C+ Q0 ⋅ C− Q0 = C+ Q0 + C− Q0 = C+ Q0 + C− + Q0 Q1+= J1 Q1 + K1Q1 = J1 ⊕ Q1 Gestion d’une pile Q1+ Q0+ 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 10 1 0 1 0 1 10 1 1 1 0 0 C+C- Q1 Q0 01 0 0 01 0 1 01 1 0 01 1 1 10 0 10 K1 1 01 00 01 01/10 10 11 10 01 Gestion d’une pile K0=J0= 1 : Bascule T Porte ET sur C- en NAND K1=J1= C+C- Q1 Q0 K1 Q1+ Q0+ 01 0 0 1 1 1 01 0 1 0 0 01 1 0 0 1 01 1 1 1 0 10 0 0 0 1 10 0 1 1 0 10 1 0 1 1 10 1 1 0 0 1 1 1 C+ Q0 ⋅ C− Q0 = C+ Q0 + C− Q0 10 00 01 01 01 10 11 10 01 01 10 10