640 likes | 895 Views
Systèmes numériques. Du microprocesseur aux circuits logiques. Control Unit. Arith. Logic. Unit. Architecture des Ordinateurs. 1- Processeurs 2- Mémoire 3- Entrées-Sorties. mémoire. E/S. Processeur. bus. 1011 0001. 0000 0111. Organisation de la m é moire. Processeur.
E N D
Systèmes numériques Du microprocesseur aux circuits logiques
Control Unit Arith. Logic. Unit Architecture des Ordinateurs 1- Processeurs 2- Mémoire 3- Entrées-Sorties mémoire E/S Processeur bus
1011 0001 0000 0111 Organisation de la mémoire Processeur Instructions + opérandes Mémoire 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 data @: adresse
1 1 R/W @ CS CD04 CD05 Organisation de la mémoire processeur @ CD04 1011 0001 1011 0001 0000 0111 0000 0111 1: positionnement de @ 2: bit R/W en lecture reg. d’adresse CD04H CD05H 3: chip select actif 4: données sur le bus D bus d ’adresse
Exemple: mémoires de 2 Mo D0 D1 CS0 . . . a23 déc. 3 vers 8 CS a22 a21 CS7 M a20:a0 @M CS 21 bits d ’adresse R/W CS E S 1 1 0 1 0 X 1 0 Z Organisation de la mémoire D bus processeur CS1 CS2 CS3 @ bus Décodage d ’adresse
R/W 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 CS CS CS @ bus Décodage d ’adresse
CPU • La mémoire contient la suite d ’instructions constituant le programme B1 07 langage machine 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 @ CD04 Code op. Compteur de programme @ CD07 Code op. @ CD08 Code op. @ CD10 Code op.
lecture de l’instruction décodage de l’instr. A0 éxécution de l’instr. UC recherche de l’instr. ALU B1 IR MDR B1 CD05 CD04 A0 B1 A7 CD04 A7 07 CD06 CPU fetch/decode/execute • Lecture de l ’instruction depuis la mémoire (code op. registre d ’instruction IR ) • Incrémentation du compteur de programme (le PC pointe le premier arg. ou la prochaine instr. ) PC • Décodage de l’instruction par l’UC • Exécution • lecture des arguments (inc. PC) • exécution M@R 07
A0 UC ALU IR MDR B1 flag CPU Instructions de branchement • Branchement inconditionnel Jp @ad1 le PC est chargé avec l ’adresse ad1 • Branchement conditionnel Jz @ad2 • Appel à un sous programme PC • Saut absolu • Saut relatif M@R Registre de « flag » ... Z N Ov 07 =1 si le résultat délivré par l ’ALU est nul
A0 UC ALU IR MDR Mémoriser l ’adresse de retour B1 Pile (stack) flag CPU Sous Programme • Appel à un sous programme call @ad1 … @15A0 call @2200 @15A1 inst. @15A2 … … … PC @2200 inst. @2201 … … @22E1 ret M@R 07
A0 UC pile SP ALU PC IR M@R MDR B1 07 Mémoire LIFO (last in - first out) Pointeur de pile (stack pointer) flag CPU Sous Programme • Sous programmes imbriqués … @15A0 call @2200 @15A1 inst. @15A2 … … … @2200 inst. @2201 call @2900 … @22E1 ret @2900 inst. … @29A0 ret
UC pile SP ALU IR MDR B1 flag Unité de Controle @CD04 B1 @CD05 07 • Lecture de l ’instruction depuis la mémoire (code op. registre d ’instruction IR ) PCread M@Rwr Memoryread Memorywait PC en lecture M@R en écriture requête à la mémoire acquitement mémoire X • Incrémentation du compteur de programme (le PC pointe le premier arg. ou la prochaine instr. ) PC 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 • Décodage de l’instruction par l’UC 07 • Exécution • lecture des arguments (inc. PC) • exécution signal d’entrée de l’UC signal généré par l’UC
UC pile SP ALU IR MDR B1 flag 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 X 2 implémentations matérielles machine cablée machine microprogrammée PC Z M@R 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 +0011 1100 9 +3 12 La soustraction est un cas particulier de l ’addition: 1001 +1101 10110 9 -3 6
1 1 1 1 1 0 0 0 1 0 1 0 1 0 0 0 A A B B 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 Produit: A.B
A + B = A . B A . B = A + B Algèbre de Boole Quelques propriétés: (A+B).C = A.C + B.C (A.B)+C = A+C . B+C ! Théorèmes de de Morgan: Généralisation: F(Ai , + , . ) = F(Ai , . , + )
1 1 1 0 1 0 1 0 A B A.B 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 B S
1 0 1 0 1 0 0 0 A B A A+B B Portes logiques élémentaires Portes élémentaires: porte NOR Valim A B S
1 x 1 1 x 1 1 1 1 x x x x 1 01 11 0 0 10 00 BA DC 00 01 11 10 Portes logiques élémentaires Simplification d ’une fonction logique Exemple: afficheur 7-segments a N 0 1234567 8 9 10 11 12131415 DCBA 0000 00010010 0011 0100 0101 0110 0111 1000 10011010 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 table de Karnaugh:
x x x 1 1 1 x 1 x x 1 1 1 1 0 10 0 01 00 11 BA DC simplification possible: 00 01 11 10 Portes logiques élémentaires Simplification d ’une fonction logique a = situation jamais atteinte
1 1 1 1 1 1 1 1 1 1 1 1 1 x x x x x x 1 1 1 1 1 10 0 11 00 0 01 BA DCBA + DCBA= DCA DC DB DCB DCA 00 01 11 10 Portes logiques élémentaires Simplification d ’une fonction logique a = Adjacences dans la table de Karnaugh
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
A ve1 ve2 vs2 vs1 =ve2 ve1 vs1 =ve2 Paramètres électriques et temporels Définition des niveaux logiques Vs Valim A A vs2 Ve Valim
A ? ve1 vs2 ve2 vs1 =ve2 ve1 vs1 =ve2 Paramètres électriques et temporels Définition des niveaux logiques variation de la tension d ’alimentation Vs Valim A A? vs2 Ve Valim effet de la température
A ve1 Paramètres électriques et temporels Définition des niveaux logiques Vs Valim VOHmin A A 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
Valim vs IOH t vs t IOL Paramètres électriques et temporels Valim Valim Courants de sortie S S E E charge Valim Courant statique 0 Consommation de courant en commutation 0 1 =1 =0 S =0 =1 E =0 =1
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
A7:A0 0 1 1 0 0 1 0 1 A7:A0 0 1 1 0 1 1 0 1 Seven Sodd 1 0 Seven Sodd 1 0 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: contradiction
Quelques fonctions combinatoires Multiplexeur/Démultiplexeur 0 1 0 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
0 1 0 1 0 1 Logique séquentielle Principe 0 E1 S1 1 0 S2 E2 1 État initial Mémorisation
Table de vérité E1 0 1 1 0 E2 1 0 1 0 S1 1 0 1 S2 0 1 1 mém. Logique séquentielle Principe 0 E1 S1 1 1 S2 E2 0
E1 E1 t t E2 E2 t t S2 S2 t t Logique séquentielle Principe 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 1 Q T 0 R 1 E2 R Table de vérité t S T 1 1 0 R 0 1 X S 1 0 X Q 1 0 t mém. T S t
D t T S t Logique séquentielle D latch D E1 Q T E2 Table de vérité T 1 1 0 D 1 0 X Q 1 0 mém.
Logique séquentielle D bascule D (D flip-flop) Q T T ’ t t T t D Table de vérité t T ’ T 1,0 D 1 0 X Q 1 0 t T mém. Q t
D0:Dn D D D D T T T T T Q Q Q Q T Logique séquentielle Applications des bascules D Registre parallèle Division de fréquence t Q t D Q D T Q t
T t J J Q t T K K t Q T 0,1, J X 0 0 1 1 K X 0 1 0 1 état futur Qn Qn-1 Qn-1 0 1 Qn-1 mémor. mémor. mise à 0 mise à 1 toggle t Toggle (J=1 et K=1) Mise à 0 (J=0 et K=1) Mémor. (J=0 et K=0) Mise à 1 (J=1 et K=0) état antérieur Qn-1 0 0 1 1 état futur Qn 0 1 0 1 J 0 1 X X K X X 1 0 Logique séquentielle bascule JK (JK flip-flop)
Logique séquentielle Fonctions séquentielles: comptage T t Q0 t Q1 t Q2 t 7 0 1 2 3 Chaque sortie est obtenue à partir de la précédente par une division par 2 de la fréquence
Q0 Q1 Q2 1 1 1 J Q J Q J Q T T T Q Q Q K K K Logique séquentielle Fonctions séquentielles: comptage T t Q0 t Q1 t Q2 t 7 0 1 2 3 7 6 4 0
J Q T Q K 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 J Q Ck T T Q Q K K Compteur synchrone