Systèmes numériques Du microprocesseur aux circuits logiques
Architecture des Ordinateurs 1- Processeurs 2- Mémoire 3- Entrées-Sorties Control Unit Arith. Logic. Unit mémoire E/S Processeur bus
Organisation de la mémoire Processeur Mémoire Instructions + opérandes E/S Ex: addition du contenu du registre R1 avec la valeur numérique 7 ADD R1,#7 B1 07 1011 0001 0000 0111 bus 1011 0001 0000 0111 data @: adresse
Organisation de la mémoire processeur 0000 0111 1011 0001 1011 0001 @ CD04 0000 0111 1: positionnement de @ 1 R/W 2: bit R/W en lecture reg. d’adresse 1 CD05H CD04H 3: chip select actif 4: données sur le bus D bus d ’adresse CD04 @ CS CD05
Organisation de la mémoire D bus M D0 CS D1 E S 1 X Z processeur Exemple: mémoires de 2 Mo 21 bits d ’adresse CS0 CS7 a23 a22 a21 déc. 3 vers 8 . a20:a0 @M R/W CS1 CS2 CS3 Décodage d ’adresse @ bus
Entrées / Sorties Une adresse est attribuée au E/S (comme à une position mémoire) D bus 3-états processeur mémoire interface d’entrée interface de sortie R/W CS CS CS Décodage d ’adresse @ bus
CPU La mémoire contient la suite d ’instructions constituant le programme langage machine B1 07 assemblage assembleur ADD R1,#7 compilation langage évolué a=a+7 Trois grands types d’instructions: transfert, calcul, branchement LD R1,#4 :chargement de la valeur numérique 4 dans le registre R1 MOV R2,ad1 :chargement du contenu de la mémoire @ad1 dans R2 ADD R1,#4 :addition de la val. num. 4 au contenu de R1, résultat dans R1 SUB R2,R3 :soustrait le contenu de R3 à celui de R2, résultat dans R2 INC R1 :incrémentation de R1 de 1 BR,ad1 :branchement inconditionnel à l’adresse ad1 JE,ad2 :branchement conditionnel (si le bit Z est égal à 1) à l ’adresse ad2
CPU Codage des instructions . . . Code op. Opérande 1 Opérande 2 Les instructions n ’ont pas toujours le même nombre d’opérandes Nécessité de « calculer » l’adresse de la prochaine instruction Code op. @ CD04 Compteur de programme Code op. @ CD07 Code op. @ CD08 Code op. @ CD10
CPU fetch/decode/execute UC ALU recherche de l’instr. lecture de l’instruction décodage de l’instr. éxécution de l’instr. fetch/decode/execute A0 A7 UC A0 07 Lecture de l ’instruction depuis la mémoire (code op. registre d ’instruction IR ) ALU Incrémentation du compteur de programme (le PC pointe le premier arg. ou la prochaine instr. ) CD06 CD05 CD04 PC B1 IR Décodage de l’instruction par l’UC A7 Exécution lecture des arguments (inc. PC) exécution CD04 M@R MDR B1 B1 07
CPU Instructions de branchement Branchement inconditionnel Jp @ad1 le PC est chargé avec l ’adresse ad1 Branchement conditionnel Jz @ad2 Appel à un sous programme A0 UC ALU flag PC Saut absolu Saut relatif IR M@R MDR Registre de « flag » ... B1 Z N Ov 07 =1 si le résultat délivré par l ’ALU est nul
CPU Sous Programme Appel à un sous programme call @ad1 UC … @15A0 call @2200 @15A1 inst. @15A2 … ALU flag PC IR @2200 inst. @2201 … … @22E1 ret M@R MDR B1 Mémoriser l ’adresse de retour Pile (stack) 07
CPU Sous Programme Sous programmes imbriqués … UC @15A0 call @2200 PC M@R MDR B1 IR UC 07 ALU A0 flag SP pile Sous programmes imbriqués … @15A0 call @2200 @15A1 inst. @15A2 … @2200 inst. @2201 call @2900 … @22E1 ret @2900 inst. … @29A0 ret Mémoire LIFO (last in - first out) Pointeur de pile (stack pointer)
Unité de Controle @CD04 B1 @CD05 07 UC PCread M@Rwr Memoryread Lecture de l ’instruction depuis la mémoire (code op. registre d ’instruction IR ) UC PCread M@Rwr Memoryread Memorywait PC en lecture M@R en écriture requête à la mémoire acquitement mémoire X SP pile ALU flag Incrémentation du compteur de programme (le PC pointe le premier arg. ou la prochaine instr. ) PC IR M@Rread Xwr ALUcmd(incX) Zread PCwr M@R en lecture registre X en écriture commande de l’ALU registre Z en lecture PC en écriture Z M@R MDR B1 Décodage de l’instruction par l’UC 07 Exécution lecture des arguments (inc. PC) exécution signal généré par l’UC signal d’entrée de l’UC
Unité de Controle Pour chaque instruction, l’UC doit générer des signaux de commande (vers l ’ALU, les registres, la mémoire) en fonction de l’état courant des registres et de stimuli extérieurs UC X SP pile 2 implémentations matérielles ALU flag machine cablée machine microprogrammée PC IR Z M@R MDR B1 07
Numération Représentation d ’un entier: an-1: MSB, bit de poids fort a0: LSB, bit de poids fort 210 = 1024 1 kilo 220 = 1048576 1 Méga Code héxadécimal 1100 0101 1011 0011 C5B3h 1210=Ch
Numération Représentation des entiers négatifs: Module et signe: N = 0an-1….a1a0 -N = 1an-1….a1a0 4 = 0100 -4 = 1100 Complément à 1: N = an-1….a1a0 -N = an-1… a1a0 4 = 0100 -4 = 1011 Complément à 2: N = an-1….a1a0 -N = an-1… a1a0 + 1 = N + 1 4 = 0100 -4 = 1100
Numération Intérêt du C2: Addition binaire: 1 1001 9 +0011 +3 12 1100 La soustraction est un cas particulier de l ’addition: 9 -3 6 1001 +1101 10110
Algèbre de Boole Variable logique: variable appartenant à {0,1} Fonction logique: fonction de variables logiques prenant ses valeurs dans {0,1} Addition: A+B 1 A B Produit: A.B 1 A B 1
Algèbre de Boole Quelques propriétés: (A+B).C = A.C + B.C Théorèmes de de Morgan: A + B = A . B A . B = A + B Généralisation: F(Ai , + , . ) = F(Ai , . , + )
Portes logiques élémentaires Matérialisation des variables logiques : Les variables logiques sont représentées (le plus souvent) par des tensions VH et VL Portes élémentaires: porte NAND Valim A B A A.B B S 1 A B
Portes logiques élémentaires Portes élémentaires: porte NOR Valim A B A+B A B A B 1 S 1 1
Portes logiques élémentaires Simplification d ’une fonction logique Exemple: afficheur 7-segments a N 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 DCBA 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 traduction visuelle de nombres écrits en binaire sur un afficheur comportant 7 DEL f b g e c d le décodeur est un circuit qui active les segments de a à g en fonction du code de N BA DC 00 01 11 10 table de Karnaugh: 00 01 11 10 1 1 1 1 1 1 x x x x 1 1 x x
Portes logiques élémentaires Simplification d ’une fonction logique BA DC 00 01 11 10 a = 00 01 11 10 1 1 1 1 1 1 x x x x 1 1 x x situation jamais atteinte simplification possible:
Portes logiques élémentaires Simplification d ’une fonction logique BA DC 00 01 11 10 a = 00 01 11 10 1 1 1 1 1 1 1 1 1 x x x x Adjacences dans la table de Karnaugh 1 1 1 x x DCBA + DCBA= DCA DB DCB DCA
Paramètres électriques et temporels Définition des niveaux logiques Rappelons le circuit de l ’inverseur CMOS Valim La caractéristique de transfert de l ’inverseur est donné par (série HC): Vs Valim E S Ve Valim
Paramètres électriques et temporels Définition des niveaux logiques Vs Valim A A A vs1 =ve2 ve1 ve2 vs2 vs2 Ve ve1 Valim vs1 =ve2
Paramètres électriques et temporels Définition des niveaux logiques variation de la tension d ’alimentation Vs Valim A ? A A? ve1 ve2 vs2 vs1 =ve2 vs2 Ve ve1 Valim vs1 =ve2 effet de la température
Paramètres électriques et temporels Définition des niveaux logiques Vs Valim VOHmin A A A ve1 ve2 vs2 VOLmax Ve VILmax VIHmin Valim VOLmax < VILmax et VOHmin > VIHmin
Paramètres électriques et temporels Définition des niveaux logiques valeur minimale de la tension d ’entrée pour que le signal soit vu comme « 1 » valeur maximale de la tension d ’entrée pour que le signal soit vu comme « 0 » dans les conditions du test le circuit assure cette tension
Paramètres électriques et temporels Courants de sortie Valim Valim IOH S=0 E=0 E=1 S=1 IOL
Paramètres électriques et temporels Valim Valim Valim Courants de sortie E S E S charge t vs Valim IOH Courant statique 0 Consommation de courant en commutation E 1 =1 =0 0 =0 S =0 =1 =1 t vs IOL
Paramètres électriques et temporels Courants de sortie courant maximal délivré par l ’alimentation au repos courants minimaux fournis à la charge pendant les transitions
Paramètres électriques et temporels Paramètres temporels E S condition de charge E t tp: temps de propagation tt: temps de transition S tf t tpHL tpLH
Paramètres électriques et temporels Paramètres temporels écart relatif maximal
Quelques fonctions combinatoires La plupart de ces fonctions sont nécessaires à la réalisation d ’un système à µP, elles existent souvent aussi sous la forme de boitiers standards Comparaison de deux mots binaires
Quelques fonctions combinatoires Générateur de parité Lors du traitement ou de la transmission d'un mot binaire, il peut arriver qu'une erreur sur un des bits intervienne (à la suite d'une variation des tensions d'alimentation ou d'une perturbation). En ajoutant à l'information utile, un bit supplémentaire appelé "bit de parité", il est possible de détecter qu'une erreur s'est produite. Ce bit vaut "1" si le nombre de "1" contenu dans le mot utile est pair: Ex: A7:A0 0 1 1 0 0 1 0 1 Seven Sodd 1 0 A7:A0 0 1 1 0 1 1 0 1 Seven Sodd 1 0 contradiction
Quelques fonctions combinatoires Multiplexeur/Démultiplexeur 1
Quelques fonctions combinatoires Arithmetic and Logic Unit ALU 16 bits registre opérande choix de l ’opérande choix d ’un fonctionnement « en ligne » ou synchronisé bits d ’état sélection de l ’opération retenue entrante sortie 3-états
Quelques fonctions combinatoires Arithmetic and Logic Unit
Logique séquentielle Principe E1 S1 E2 S2 État initial Mémorisation 1 1 1 E1 1 S1 E2 S2 1 État initial Mémorisation
Logique séquentielle Principe E1 S1 E1 1 E2 S1 S2 mém. Table de vérité S1 1 1 E1 1 E2 S1 S2 mém. Table de vérité E2 S2
Logique séquentielle Principe t t Les sorties dépendent des entrées, des états précédents des entrées et des temps de retard dans les circuits
Logique séquentielle Principe S E1 Q T R E2 Table de vérité t T 1 R 1 R E2 1 R Table de vérité t S T 1 R 1 X S 1 X Q 1 t T mém. S t
Logique séquentielle D latch D E1 Q T E2 t Table de vérité T 1 D 1 X Q D 1 X Q 1 mém.
Logique séquentielle D bascule D (D flip-flop) Q T T ’ t t t Table de vérité T ’ t T 1,0 D 1 X Q 1 t T Q mém. t
Logique séquentielle Applications des bascules D D0:Dn Registre parallèle Division de fréquence T t Q D Q t D T Q t
Logique séquentielle J K T Q bascule JK (JK flip-flop) J X 1 K T 0,1, 1 K T 0,1, état futur Qn Qn-1 mémor. mise à 0 mise à 1 toggle T t K J Q Toggle (J=1 et K=1) Mémor. (J=0 et K=0) Mise à 1 (J=1 et K=0) Mise à 0 (J=0 et K=1) J 1 X K état antérieur Qn-1 état futur Qn
Logique séquentielle Fonctions séquentielles: comptage t t t t 7 1 2 3 1 2 3 Chaque sortie est obtenue à partir de la précédente par une division par 2 de la fréquence
Logique séquentielle Fonctions séquentielles: comptage J Q K T 1 Q0 Q1 7 1 2 3 7 6 4
Logique séquentielle Fonctions séquentielles: comptage Q0 change d ’état à chaque transition de Ck Q1 change d ’état à chaque transition de Ck, si Q0=1 Q1 change d ’état à chaque transition de Ck, si Q0 .Q1 =1 Q0 Q1 Q2 1 J Q K T J Q J Q Ck T T K Q K Q Compteur synchrone
Logique séquentielle Fonctions séquentielles: comptage
Logique séquentielle Fonctions séquentielles: registres D0:Dn Registre parallèle: T Q0:Qn Les données d ’entrée (D0:Dn) sont transmises en sortie (Q0:Qn) à chaque front d ’horloge
Logique séquentielle Fonctions séquentielles: registres 1 1 1 D Q T D 1 1 1 D Q T D Q T Registre à décalage: D Q T Q T