Architecture des ordinateurs Licence Informatique - Université de Provence Jean-Marc Talbot Algèbre de Boole - Fonctions Booléennes jtalbot@cmi.univ-mrs.fr L3 Informatique - Université de Provence () Architecture des ordinateurs 42 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 43 / 86 Contrôleur d affichage 7 segments Contrôleur d affichage 7 segments (II) n3 n2 n1 n s7 s6 s5 s4 s3 s2 s1 F : {, 1} 4 {, 1} 7 L3 Informatique - Université de Provence () Architecture des ordinateurs 44 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 45 / 86
Contrôleur d affichage 7 segments (III) F s 1 s 2 s 3 s 4 s 6 s 6 s 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 111 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 11 111 11 111 111 1111 Algèbre de Boole C est une structure algébrique donnée par un ensemble à deux valeurs {, 1} (ou {, }, {vrai, faux}) et les trois opérations suivantes : la conjonction (/2) :. ( et - and ) la disjonction (/2) : + ( ou - or ) le complément (/1) : ( non - not ) satisfaisant les axiomes suivants Commutativité Associativité a.b = b.a a + (b + c) = (a + b) + c a + b = b + a a.(b.c) = (a.b).c L3 Informatique - Université de Provence () Architecture des ordinateurs 46 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 47 / 86 Algèbre de Boole : axiomes (suite) Distributivité a.(b + c) = a.b + a.c a + (b.c) = (a + b).(a + c) Eléments neutres : 1.a = a.1 = a + a = a + = a Complément a.ā = a + ā = 1 Convention : la conjonction est plus prioritaire que le disjonction. Algèbre de Boole : opérateurs Le définition suivante des opérateurs satisfait l ensemble des axiomes le complément la conjonction la disjonction a ā 1 1 a b a.b 1 1 1 1 1 a b a + b 1 1 1 1 1 1 1 L3 Informatique - Université de Provence () Architecture des ordinateurs 48 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 49 / 86
Algèbre de Boole : propriétés Les propriétés suivantes peuvent être déduites des axiomes Elément absorbant : Absorption Idempotence Involution a. =.a = a + 1 = 1 + a = 1 a.(a + b) = a a.a = a a + (a.b) = a a + a = a Fonctions booléennes Une fonction booléenne (d arité n) f : {, 1} n {, 1} peut être donnée de manière extensionnelle par sa table de vérité x y z m = f (x, y, z) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Lois de De Morgan ā = a par une expression booléenne, qui est une expression définie avec les constantes et les opérateurs de l algèbre de Boole et un certain nombre de variables x, y, z, x 1,..., x n a.b = ā + b a + b = ā. b z + xȳz + z + z L3 Informatique - Université de Provence () Architecture des ordinateurs 5 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 51 / 86 Fonctions booléennes : FND (I) Formes normales disjonctives Une expression booléenne est en forme normale disjonctive si elle est écrit comme une disjonction de monômes chaque monône étant une conjonction de littéraux un littéral étant soit les constantes, 1, soit une variable x, soit le complément de x, x. Exemple : (x.y. z) + ( x.z) + y Fonctions booléennes : FND (II) théorème Toute expression booléenne est équivalente à une expression en forme normale disjonctive. preuve on suppose les variables comme étant x 1,..., x n, 1 On considère la table de vérité associé à l expression et appelons f la fonction booléenne ainsi représentée 2 supposons que f vaille 1 pour k entrées dans cette table (et donc pour les 2 n k autres entrées). Comme + 1 = 1 on peut écrire f comme f 1 +... + f k où f i : {, 1} n {, 1} n est à 1 que pour une seule entrée. 3 Maintenant pour chaque f i, il est simple de voir que le monôme y 1.....y n défini par y j = x j si la ieme valeur de l entrée est 1 et y j = x j sinon représente précisément la fonction f i. L3 Informatique - Université de Provence () Architecture des ordinateurs 52 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 53 / 86
Fonctions booléennes : FND (III) Fonctions booléennes Une fonction booléenne f à trois paramètres x, y, z : x y z f 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 = f 1 1 + f 2 1 + f 3 1 + f 4 1 corollaire Toute fonction booléenne peut être représentée comme une expression booléenne. preuve Il suffit d extraire l expression en forme normale disjonctive de la table de vérité de la fonction booléenne. avec f 1 = x.ȳ.z f 2 = x.y.z f 3 = x.ȳ.z f 4 = x.y. z donc f (x, y, z) = x.ȳ.z + x.y.z + x.ȳ.z + x.y. z L3 Informatique - Université de Provence () Architecture des ordinateurs 54 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 55 / 86 Fonctions booléennes : FNC (I) Fonctions booléennes : FNC (II) Formes normales conjonctives (FNC) Une expression booléenne est en forme normale conjonctive si elle écrit comme une conjonction de sommes chaque somme étant une disjonction de littéraux un littéral étant soit les constantes, 1, soit une variable x, soit le complément de x, x. théorème Toute expression booléenne est équivalente à une expression en forme normale conjonctive. On considère le produit d une somme y 1 +... + y n introduite pour chaque ligne de la table de vérité valant avec y i = x j si la ieme valeur de l entrée vaut et y j = x j sinon. Exemple : (x + y + z).( x + z).1 L3 Informatique - Université de Provence () Architecture des ordinateurs 56 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 57 / 86
Fonctions booléennes : simplifications Tableaux de Karnaugh (I) La méthode par les tableaux de Karnaugh est une méthode visuelle pour la simplification de formules logiques. Simplifications de fonctions booléennes utilisation des axiomes et des propriétés de l algèbre de Boole. la méthode des tableaux de Karnaugh Tableaux de Karnaugh Méthode de simplification basée sur la propriété (a.b) + (a. b) = a.(b + b) = a Table de vérité tableau bi-dimensionnel (séparation en deux de l ensemble des variables (un pour les lignes, un pour les colonnes)) Lignes et colonnes sont indexées par toutes les valuations des variables correspondantes tel que entre deux lignes (resp. colonnes) une seule valeur booléenne change. pour les variables x, y, z z 1 11 1 1 L3 Informatique - Université de Provence () Architecture des ordinateurs 58 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 59 / 86 Tableaux de Karnaugh (II) On remplit ce tableau avec les valeurs de la fonction booléenne. z 1 11 1 1 1 1 1 1 Tableaux de Karnaugh (III) Si deux cases adjacentes contiennent tous les deux un 1 alors les deux monômes correspondants dans la forme normale disjonctives ne diffèrent que sur une variable, donc une simplification est possible. z 1 11 1 1 1 1 1 1 z 1 11 1 1 1 1 1 1 Cette fonction booléenne a pour forme normale disjonctive x.y.z + x.y.z + x.ȳ.z + x.y. z z 1 11 1 1 1 1 1 1 L3 Informatique - Université de Provence () Architecture des ordinateurs 6 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 61 / 86
Tableaux de Karnaugh (IV) z 1 11 1 1 1 1 1 1 x.y.z + x.y. z = x.y.(z + z) = x.y On ne garde dans le monôme d un regroupement que les variables dont la valeur ne change pas. z 1 11 1 1 1 1 1 1 x.y + x.z z 1 11 1 1 1 1 1 1 x.y + x.z + y.z Tableaux de Karnaugh (III) On ne garde dans le monôme d un regroupement que les variables dont la valeur ne change pas. Tous les 1 de la table de vérité doivent être considérés : un 1 peut être utilisé dans plusieurs regroupement ; au pire un 1 isolé est un regroupement de taille un. Le tableau doit être considéré de façon circulaire (on peut replier le tableau comme une sphère). Les regroupements peuvent également être de taille 4,8,... (toutes puissances de 2) zt 1 11 1 1 1 1 1 11 1 1 1 y. z + x.ȳ.z. t L3 Informatique - Université de Provence () Architecture des ordinateurs 62 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 63 / 86 Portes Logiques (I) Porte ET Porte OU Porte NON Circuits combinatoires 1 1 1 1 1 1 1 1 1 1 1 1 1 1 L3 Informatique - Université de Provence () Architecture des ordinateurs 64 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 65 / 86
Portes Logiques (II) Le circuit Majorité Porte NON-ET Porte NON-OU Porte OU-X 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 A B C M 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 M = Ā.B.C + A. B.C + A.B. C + A.B.C L3 Informatique - Université de Provence () Architecture des ordinateurs 66 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 67 / 86 Le circuit Majorité (II) Chronogramme du circuit Majorité A B C entree A M entree B entree C M = A.B + A.C + B.C sortie M La sortie M ne dépend que des entrées A, B et C. On parle alors de circuit combinatoire L3 Informatique - Université de Provence () Architecture des ordinateurs 68 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 69 / 86
Circuits combinatoires Demi-additionneur (I) un circuit combinatoire défini par un ensemble de portes reliées les unes aux autres. les sorties des portes sont reliés aux entrées d autres portes (définissant une orientation des connexions) en suivant l orientation des connections, il est impossible que partant de la sortie d une porte, on revient à l une des ses entrées (graphe acyclique) Un circuit combinatoire peut être vu comme une porte logique (à plusieurs sorties). entrées : a et b sorties : s la somme et r la retenue a b s r a b s r 1 1 1 1 1 1 1 On parle de demi-additioneur (additioneur 1 bit) : ne permet pas d être étendu en un additioneur n bits. L3 Informatique - Université de Provence () Architecture des ordinateurs 7 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 71 / 86 Demi-additionneur (II) Additionneur (I) a b s r 1 1 1 1 1 1 1 s = a b r = a.b est l opérateur de ou-exclusif (XOR) entrées : a, b et rin la retenue d entrée sorties : s la somme et rout la retenue de sortie a b rin s rout a b rin s rout 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 L3 Informatique - Université de Provence () Architecture des ordinateurs 72 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 73 / 86
Additionneur (II) Additionneur 4 bits (I) s = a b rin a b rout = majorite(a, b, rin) rin s On ajoute les nombres (b 3 b 2 b 1 b ) 2 et (a 3 a 2 a 1 a ) 2, on obtient un résultat (s 3 s 2 s 1 s ) 2 et un bit de débordement c (correspondant à une retenue éventuelle). on utilise un demi-additionneur et 3 additionneurs. la retenue est propagée d un additionneur à l autre. rout L3 Informatique - Université de Provence () Architecture des ordinateurs 74 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 75 / 86 Additionneur 4 bits (II) De l idéal à la réalité Les circuits combinatoires sont une idéalisation dans lesquels b 3 a 3 b 2 a 2 b 1 a 1 b a le temps de propagation n est pas pris en compte adder adder adder 1/2-adder la sortie est disponible dès que les entrées sont présentes c s 3 s 2 s 1 s Inconvénient : la propagation des retenues nécessite du temps qui ralentit l opération. En réalité le temps de passage de à 1 n est pas immédiat (temps de parcours du courant électrique) instantané (temps de réponse d une porte) L3 Informatique - Université de Provence () Architecture des ordinateurs 76 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 77 / 86
De l idéal à la réalité (II) De l idéal à la réalité (II) Porte NOT Porte NAND Porte NOR lorsque V e < crit alors V s V cc lorsque crit < V e alors V s L3 Informatique - Université de Provence () Architecture des ordinateurs 78 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 79 / 86 Décodeurs (I) Décodeurs (II) Un décodeur permet de décoder un mot binaire : il comprend n entrées et 2 n sorties. la ième sortie de décodeur vaut 1 si les n entrées forment l entier i, ie (e n e n 1... e 1 e ) 2 = (i) 1. un décodeur 2 vers 4 : e e 1 s s 1 s 2 s 3 1 1 1 1 1 1 1 1 s = e.e 1 s 1 = e.e 1 s 2 = e.e 1 s 3 = e.e 1 e e 1 e n 1 e n Décodeur s s 1 s 2 2 n s 2 2 n 1 2 n Utilisation : Décodage d une adresse : (adresse cellule mémoire) Décodage d une instruction : (code opérande commande d un circuit) L3 Informatique - Université de Provence () Architecture des ordinateurs 8 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 81 / 86
Multiplexeur Autres circuits combinatoires Un multiplexeur comporte 2 n entrées, 1 sortie et n lignes de sélection (entrées). la sortie du multiplexeur vaut la valeur de la ième entrée si l entier i est codé sur les lignes de sélection, ie (l n l n 1... l 1 l ) 2 = (i) 1. e e 1 e 2 2 n e 2 2 n e 1 2 n Multiplexeur s Comparateurs Sélecteurs Codeurs Démultiplexeurs... l n 1 l n l 1 l L3 Informatique - Université de Provence () Architecture des ordinateurs 82 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 83 / 86 Unité arithmétique et logique (I) L unité arithmétique et logique (ALU) regroupe au sein d un même circuit différentes opérations arithmétique et logique. ALU 1 bit (et,ou,non,addition) Unité arithmétique et logique (II) L unité arithmétique et logique (ALU) regroupe au sein d un même circuit différentes opérations arithmétique et logique. ALU 1 bit (et,ou,non,addition) L3 Informatique - Université de Provence () Architecture des ordinateurs 84 / 86 L3 Informatique - Université de Provence () Architecture des ordinateurs 85 / 86
Unité arithmétique et logique (III) ALU 4 bits à base d ALU 1 bits c c 1 b 3 a 3 b 2 a 2 b 1 a 1 b a c s 3 s 2 s 1 s L3 Informatique - Université de Provence () Architecture des ordinateurs 86 / 86