Architecture des ordinateurs Algèbre de Boole et circuits logiques Michel Salomon IUT de Belfort-Montbéliard Département d’informatique Michel Salomon Architecture des ordinateurs 1 / 21 Introduction Un système informatique est un système binaire → un circuit d’un syst. info. a deux états d’équilibre : 0 et 1 Au niveau électrique ou électronique États associés à deux niveaux de tension V0 (haut) et V1 (bas) qui définissent un signal logique ou numérique En pratique un niveau est défini par un domaine de tension ou de courant Exemple : technologie Transistor Transistor Logic • niveau haut → plage de +2, 7V à +5V ; • niveau bas → ≤ +0, 8V Électronique numérique ⇒ circuit numérique Michel Salomon Architecture des ordinateurs 2 / 21 Introduction Un circuit numérique transporte un (ou plusieurs signaux) signal logique Son état est caractérisé par une variable pouvant prendre deux valeurs possibles : 0 et 1 En ne considérant que le niveau logique : état d’une ligne ; valeur d’un signal logique ou d’une variable logique ; utilisation de la notion de circuit logique Rôle d’un circuit logique Exécute des opérations sur des variables logiques ; transporte et traite des signaux logiques réalise (implémente) une fonction logique Michel Salomon Architecture des ordinateurs 3 / 21 Introduction Les fonctions logiques Chacune est définie par une table de vérité ; leur étude repose sur l’algèbre de Boole Plusieurs représentations sont possibles : expression (ou équation) algébrique ; logigramme (représentation graphique) ; voire un chronogramme Toute fonction (et donc circuit) logique peut être réalisée avec un petit nombre de fonctions logiques de base (appelées aussi opérateurs logiques ou portes) Michel Salomon Architecture des ordinateurs 4 / 21 La logique des propositions Proposition = un énoncé Vrai ou Faux Exemples a : “on est mardi” ; b : “il est 8 heures” ; “cours d’architecture si a et b” On peut combiner les propositions par des connecteurs pour en former des nouvelles, les plus courants sont : ∨ → loi Ou, dite disjonction → Ou logique ; ∧ → loi Et, dite conjonction → Et logique ; ¬ → contraire ou négation → Non logique Valeurs de ces propositions définies par des tables de vérité a V F ¬a F V Michel Salomon a V V F F b V F V F a∨b V V V F a∧b V F F F Architecture des ordinateurs 5 / 21 De la logique des propositions à l’algèbre de Boole En plus des connecteurs, il y a plusieurs lois Exemple : ¬a ∧ ¬b = ¬(a ∨ b) a V V F F b V F V F ¬a ¬b ¬a ∧ ¬b F F F F V F V F F V V V a∨b V V V F ¬(a ∨ b) F F F V George Boole exprima la logique des propositions sous forme algébrique → algèbre de Boole Claude Shannon utilisa l’algèbre de Boole en définissant le codage suivant : Vrai → 1 et Faux → 0 a∨b ⇔a+b; a ∧ b ⇔ a × b (ou a · b, ou encore ab) ; ¬a ⇔ a (0 = 1, 1 = 0) Michel Salomon Architecture des ordinateurs 6 / 21 L’algèbre de Boole Permet de décrire le traitement des signaux logiques sous forme d’expressions (ou équations) algébriques Constantes, variables et opérateurs logiques Constantes : 0,1 Variables : a, b, c, . . . ;x , y , z, . . . ;x1 , x2 , x3 , . . . ;etc. Opérateurs (ou fonctions de base) Fonctions ayant une ou deux entrées et une sortie Description par leur table de vérité Fonctions de n variables : • table de vérité ayant 2n états d’entrée ; • chaque état d’entrée a deux valeurs possibles en sortie n → il y a 22 fonctions possibles Table de vérité des fonctions à une variable a 0 1 F1 0 0 F2 0 1 F3 1 0 F4 1 1 Seule fonction intéressante : F3 = non(a) ⇔ Non logique Michel Salomon Architecture des ordinateurs 7 / 21 L’algèbre de Boole Constantes, variables et opérateurs (suite) Table de vérité des fonctions à deux variables a b 0 0 0 1 1 0 1 1 a+b 0 1 1 1 a+b 1 0 0 0 a·b 0 0 0 1 a·b 1 1 1 0 a⊕b 0 1 1 0 a⊕b 1 0 0 1 Seules fonctions intéressantes : Ou → ou(a, b) = a + b ; Non Ou ou nor → nor(a, b) = a + b Et → et(a, b) = a · b ; Non Et ou nand → nand(a, b) = a · b Ou-exclusif ou xor → xor(a, b) = a ⊕ b Toute fonction peut s’exprimer à partir des opérateurs et, ou, non → ces opérateurs sont dits de base Michel Salomon Architecture des ordinateurs 8 / 21 L’algèbre de Boole Opérateurs complets Groupe logique complet Ensemble de fonctions logiques à partir desquelles on peut construire toute fonction logique Opérateur complet → groupe logique complet à lui seul Théorèmes et axiomes fondamentaux Construction à partir des opérateurs × (et), + (ou), (non) Théorème des constantes a+0=a ; a×0=0 a+1=1 ; a×1=a Idempotence a + a = a et a × a = a Complémentation a + a = 1 et a × a = 0 Commutativité a + b = b + a et a × b = b × a Michel Salomon Architecture des ordinateurs 9 / 21 L’algèbre de Boole Théorèmes et axiomes fondamentaux Distributivité a + (b · c) = (a + b) · (a + c) a · (b + c) = (a · b) + (a · c) Associativité a + (b + c) = a · (b · c) = (a + b) + c (a · b) · c Théorème de De Morgan a·b = a+b a+b = a·b Autres relations (absorption) a=a a·b+a·b = a ; a + (a · b) = a ; a · (a + b) = a (a + b) · (a + b) = a Michel Salomon Architecture des ordinateurs 10 / 21 L’algèbre de Boole Une expression (ou équation) logique est définie récursivement Variables ou constantes logiques sont des expressions logiques ; si X est une expression logique, (X ) l’est également ; si X et Y sont deux expressions logiques alors X; X +Y ; X ×Y ; sont aussi des expressions logiques Une expression logique a pour valeur 0 ou 1, calculée par : les tables de vérité des opérateurs et, ou, non ; non a priorité sur et qui a priorité sur ou ; les parenthèses modifient les priorités À une expression logique correspond une fonction logique unique, la réciproque est fausse Michel Salomon Architecture des ordinateurs 11 / 21 De la fonction logique au circuit logique la réalisant 1 Une fonction à n variables est une application de {0, 1}n dans {0, 1}, elle est définie par une table de vérité La table de vérité comporte 2n lignes ; Toutes les combinaisons possibles des n entrées avec pour chacune les états de sortie correspondant 2 De la table de vérité à l’expression logique Développement en somme de produits logiques → forme normale disjonctive (méthode des Minterms) Développement en produit de sommes logiques → forme normale conjonctive (méthode des Maxterms) 3 Simplification de l’expression logique Des expressions logiques désignent la même fonction logique : si leurs tables de vérité sont identiques ; si on peut obtenir algébriquement l’une à partir de l’autre 4 Représentation graphique de l’expression logique simplifiée → logigramme du circuit Michel Salomon Architecture des ordinateurs 12 / 21 De la table de vérité à l’expression logique Développement en somme de produits logiques - Minterms a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 F (a, b, c) 1 0 0 1 1 1 0 1 F (a, b, c) = 1 si : (a=0 et b=0 et c=0) (a=0 et b=1 et c=1) (a=1 et b=0 et c=0) (a=1 et b=0 et c=1) (a=1 et b=1 et c=1) ou ou ou ou F (a, b, c) = a · b · c + a · b · c + a · b · c + a · b · c + a · b · c Minterm = produit logique de toutes les variables d’entrées Variable sous la forme vraie → si la variable = 1 ou sous la forme complémentée → si la variable = 0 Michel Salomon Architecture des ordinateurs 13 / 21 De la table de vérité à l’expression logique Développement en produit de sommes logiques - Maxterms a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 F (a, b, c) 1 0 0 1 1 1 0 1 F (a, b, c) = 0 si : (a=0 et b=0 et c=1) ou (a=0 et b=1 et c=0) ou (a=1 et b=1 et c=0) avec la loi de De Morgan F (a, b, c) = 1 si : (a=1 ou b=1 ou c=0) et (a=1 ou b=0 ou c=1) et (a=0 ou b=0 ou c=1) F (a, b, c) = (a + b + c) · a + b + c · a + b + c Maxterm = somme logique de toutes les variables d’entrées Variable sous la forme vraie → si la variable = 0 ou sous la forme complémentée → si la variable = 1 Michel Salomon Architecture des ordinateurs 14 / 21 Simplification d’une expression (équation) logique Plusieurs méthodes de simplification : 1 2 algébrique → utilise théorèmes, axiomes de l’algèbre de Boole ; table, tableau ou diagramme de Karnaugh Simplification algébrique d’une fonction / expression logique F (a, b) = a · b + a · (b + b) = a·b+a·1 = a·b+a (1) = (a + a) · (b + a) (2) = 1 · (b + a) = b+a on peut aboutir au même résultat de différentes manières. Par exemple, une expression différente de (2) à partir de (1) F (a, b) = a · b + a = (a · b) · a = . . . Michel Salomon Architecture des ordinateurs 15 / 21 Simplification d’une expression (équation) logique Simplification par table de Karnaugh La table de vérité est représentée sous forme d’un tableau Deux cases adjacentes en ligne ou colonne ne différent que par l’état d’une variable et une seule ; de plus, chaque ligne et colonne est circulaire → chaque case a 4 voisins (gauche,droit et haut,bas) Tables de Karnaugh (case en couleur avec ses voisins) cd ab 00 01 11 10 00 a b bc 0 1 00 01 11 10 a 01 0 0 11 1 1 10 2 variables 3 variables Michel Salomon 4 variables Architecture des ordinateurs 16 / 21 Simplification d’une expression (équation) logique Simplification par table de Karnaugh (suite) Chaque case contenant un 1 est codée par un minterm Les cases adjacentes contenant des 1 forment des groupes/blocs Groupement horizontal et/ou vertical ; le nombre de 1 d’un bloc est une puissance de 2 (1,2,4, etc.) ; on veut les blocs les plus grands et le moins de blocs ; un 1 peut appartenir à plusieurs blocs Plus un bloc est grand, plus l’expression le codant sera simple Un bloc est codé par un produit logique de variables ; si une variable et sa forme complémentée sont dans le même bloc on l’élimine du produit logique Basée sur la relation a · b + a · b = a · (b + b) = a Michel Salomon Architecture des ordinateurs 17 / 21 Simplification d’une expression (équation) logique Simplification par table de Karnaugh (suite) Simplification d’une fonction / expression logique a b c d 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 F 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 cd cd cd cd cd ab 00 01 11 10 ab 00 0 0 0 0 ab 01 1 1 0 1 ab 11 1 0 0 1 ab 10 0 1 1 0 Exemple de Minterm : abcd F(a,b,c,d)= abd + abc + bd Michel Salomon Architecture des ordinateurs 18 / 21 Logigramme d’un circuit logique Un circuit logique est un assemblage de portes logiques ; le terme logigramme désigne sa représentation schématique Portes élémentaires - norme ANSI/IEEE 91-1984 non a a a b a+b xor et a b a.b a b a.b nand ou a b a+b a b a+b nor Michel Salomon Architecture des ordinateurs 19 / 21 Logigramme d’un circuit logique Un circuit logique est un assemblage de portes logiques ; le terme logigramme désigne sa représentation schématique Portes élémentaires - norme IEC 60617-12 non a 1 a a b =1 a+b xor et a b & a.b a b & a.b nand ou a b >1 a+b a b >1 a+b nor Michel Salomon Architecture des ordinateurs 20 / 21 Classification des circuits logiques Il y a deux catégories de circuits logiques : 1 - les circuits combinatoires ils ne font que combiner selon une table de vérité des variables logiques en entrée du circuit 2 - les circuits séquentiels construits à partir de circuits combinatoires ; ils sont caractérisés par une capacité de mémorisation Michel Salomon Architecture des ordinateurs 21 / 21