UE MAREP Cours 1 : Algèbre de Boole et entiers naturels Patricia Renault UPMC 2005/2006
Plan Introduction Présentation générale de l’architecture d’un ordinateur Logique Booléenne et algèbre de Boole Représentation des entiers naturels
Plan Introduction Présentation de l ’UE Bibliographie Présentation générale de l’architecture d’un ordinateur Logique Booléenne et algèbre de Boole Représentation des entiers naturels
Présentation de l’UE Objectifs principaux : Évaluation Architecture d’un ordinateur Représentation des données et programmes Ecriture, test et debug de programme assembleur Évaluation 70% pour l'examen final 30% pour le contrôle continu 10% partiel 10% TME solitaire 10% appréciation en TD/TME
Présentation du module Calendrier 12 semaines de cours, 12 semaines de TD/TME TD/TME commencent la semaine du 3 octobre Partiels (QCM) la semaine du 21 novembre TME solitaire la semaine du 28 novembre Site web de l'UE : http://www-licence.ufr-info-p6.jussieu.fr/lmd/licence/2005/ue/LI221-2005oct
Bibliographie et outils « Architecture des Ordinateurs, représentation des nombres et codes », P. Darche, Ed Gaëtan Morin, collection « les cahiers de l'IUT ». 2000. « Architectures logicielles et matérielles , cours, études de cas et exercices corrigés », P. Amblard et al. Ed Dunod, 2000. Environnement : Linux. Outils informatiques éditeurs : emacs/vi/gvim/gedit simulateur niveau porte : diglog simulateur MIPS : simips
Plan Introduction Présentation générale de l’architecture d’un ordinateur Description Architecture des processeurs Logique Booléenne et algèbre de Boole Représentation des entiers naturels
Description Ordinateur minimal Communication avec l'extérieur
Processeur : Unité de traitement de l’information Mémoire Centrale : Unité de stockage temporaire des informations nécessaires à l’exécution d’un programme (instructions du programme, données) Périphérique : Unité connexe permettant de communiquer avec l’ensemble processeur-mémoire (clavier, écran, disque dur, disquette, CD-ROM, réseau, …) Bus : Support physique de transfert d’informations entre les différentes unités
Architecture des processeurs
Unité de commande Partie opérative Analyse les ordres à exécuter et les séquence en actions élémentaires permettant leur réalisation. Partie opérative Réalise les ordres demandés par l ’unité de commande (opérations arithmétiques sur des nombres entiers, opérations logiques sur des vecteurs de bits) à partir d ’opérandes stockées dans les registres internes (stockage très temporaire des opérandes ou des résultats intermédiaires de calcul)
Architecture des processeurs Grandeur physique manipulée : tension électrique 2 niveaux de tension : 0V = 0 1.5V = 1 Formalisation de l’information Mot binaire : mot formé sur l’alphabet {0,1} : 0010111 Bit : 0 ou 1 Quartet : mot binaire composé de 4 bits : 0111 Octet (ou byte en anglais) : mot binaire composé de 8 bits : 1101 0110 Mot MIPS : mot binaire de 32 bits : 0110 1111 0001 1011 1000 0111 1110 1111
Plan Introduction Présentation générale de l’architecture d’un ordinateur Logique Booléenne et algèbre de Boole Définitions Opérations Théorèmes et règles Circuits logiques Représentation des entiers naturels
Définitions Logique Booléenne : Formalisation des raisonnements basés sur des éléments qui peuvent être soit FAUX soit VRAI. B = {FAUX, VRAI} = {F,V} = {0,1}. Ordre sur les élément de B : 0 < 1. Variable booléenne : Variable pouvant contenir soit FAUX, soit VRAI. Fonction booléenne : Fonction de B n dans B. Table de vérité : Enumération ligne par ligne des valeurs prises par f en fonction des valeurs de ses paramètres.
Exemple f : B 2 B x, y si x = 0, y = 0 f = 1 Table de vérité de f Remarque : il y a 24=16 fonctions booléennes de 2 variables.
Opérations de base
Théorèmes et règles <B,0,1,+,.,~> forme une algèbre de Boole car il respecte les axiomes : Addition et multiplication associatives et commutatives x,y,z B 3, x + (y + z) = (x + y) + z et (x.y).z = x.(y.z) x,y B 2, x + y = y + x et x.y = y.x 0 est élément neutre pour l’addition, 1 est élément neutre pour la multiplication : x B , x + 0 = x et x.1 = x l’addition et la multiplication sont distributives l’une par rapport à l’autre : x,y,z B 3, x . (y + z) = (x . y) + (x . z) et x + (y . z) = (x + y) . (x + z) la somme d’un élément et de son complément est 1, le produit d’un élément et de son complément est 0 : x B , x + ~x = 1 et x.~x = 0
Théorèmes et règles Règle de De Morgan : Règles de simplification x,y B, ~(x + y) = ~x .~y et ~(x.y) = ~x + ~y Règles de simplification x B, ~~x = x (loi d’involution) x B, x . 0 = 0 et x + 1 = 1 (éléments absorbants) x B, x . x = x et x + x = x (idempotence) x,y B 2, x . (x + y) = x et x + (x . y) = x Expression algébrique d’une fonction booléenne : Toute fonction booléenne f peut s’exprimer à partir des constantes 0 et 1, des noms des variables booléennes paramètres de f et des opérations ~, +, . de l’algèbre de Boole.
Forme canonique disjonctive Une expression de f peut être construite en réalisant le OU des termes représentants les lignes de la table de vérité pour lesquelles f vaut 1 (termes appelés monômes). Ces termes sont des produits (des ET) des noms des variables de f, complémentés si la contribution de la variable est à 0. Exemples : f = ~x.~y+x.y f = ~x.~y+~x.y+x.y
Forme canonique conjonctive Une expression de f peut être construite en réalisant le ET des termes représentants les lignes de la table de vérité pour lesquelles f vaut 0. Ces termes sont des sommes (des OU) des noms des variables de f, complémentés si contribution de la variable est à 1. Exemples : f = (x+~y).(~x+y) f = ~x+y
Portes logiques de base a+b a b a.b a ~a
Circuits logiques Circuit logique : Diagramme orienté composé de signaux d’entrées, de portes logiques, de signaux de sorties et respectant les règles de connectique suivantes : Les entrées des portes logiques sont connectées aux signaux d’entrée ou aux sorties d’autres portes. Les signaux de sortie sont connectés aux sorties de portes du circuit. La composition de fonctions g o f est représentée par la mise en séquence de f et g : le signal de sortie de f est connecté au signal d’entrée de g.
Exemples f=~x.y+~y.x f=a.b+~c f=a.~b+~a.c+~c.b f=~(x.y)+z.~x.y
Plan Introduction Présentation générale de l’architecture d’un ordinateur Logique Booléenne et algèbre de Boole Représentation des entiers naturels Bases 2, 10, 16 Conversion Exemples
Bases 2, 10, 16 la base B, un nombre N s’écrit Base 10 : Base 2 : valeurs possibles de ai 0, 1, 2, …, 7, 8, 9 N = 1011d = 1*103+0*102+1*101+1*100 = 1011d Base 2 : valeurs possibles de ai 0, 1 N = 1011b = 1*23+0*22+1*21+1*20 = 11d Base 16 : valeurs possibles de ai 0, 1, 2, …, 9, A, B, C, D, E, F N = 1011h = 1*163+0*162+1*161+1*160 = 4113d
Bases 2, 10, 16 Taille bornée des entiers stockés Extension : Soit un entier M représenté sur n symboles dans une base B, on a M [0, Bn-1] Exemples : sur 3 digits en décimal, on peut représenter les entiers [0, 999 ] sur 3 bits en binaire, on peut représenter les entiers [0, 7] sur 3 symboles en hexadécimal, on peut représenter les entiers [0, 4095] Extension : la base B, un entier représenté sur p symboles peut être étendu en un entier sur n>p symboles en introduisant des 0 sur les symboles de rang p à n-1 Exemple : l’extension de 011b sur 5 bits donne 00011b
Conversion 2->10, 16->10 la base B, un nombre N s’écrit Exemples : 010100b = 0*20+0*21+1*22+0*23+1*24+0*25 = 4 + 16 = 20d 1111b = 1*20+1*21+1*22+1*23 = 1+2+4+8 = 15d 012h = 2*160+1*161+0*162 = 2+16 = 18d 1AEh = 14*160+10*161+1*162 = 14+160+256=430d
Conversion 10->2 Comment à partir de N retrouver les ai ? Divisions successives Jusqu’à l’obtention d’un quotient nul Attention : lecture du bas vers le haut Tableau de puissance de 2 Parcourir le tableau des 2i de gauche à droite Si N2i, alors mettre 1 dans case 2i et N=N-2i Sinon mettre 0 dans case 2i Continuer jusqu’à 20 Exemple = 6d=110b
Conversion 10->16 Idem base 2 Divisions successives Jusqu’à l’obtention d’un quotient nul Attention : lecture du bas vers le haut Tableau de puissance de 16 Parcourir le tableau des 16i de gauche à droite Si N 16i, alors mettre 1 dans case 16i et N=N-16i Sinon mettre 0 dans case 16i Continuer jusqu’à 160 Exemple = 687d=2AFh
Conversion 2->16, 16->2 2->16 : Séparer le nombre binaire en quartet (de droite à gauche ) Convertir chaque quartet en hexadécimal Exemple : 11011110001010000b Séparation en quartet : 1 1011 1100 0101 0000 Conversion : 1 1011 1100 0101 0000b = 1 B C 5 0h 16->2 : Conversion de chaque symbole par un quartet Exemple : AF23h En quartet : Ah=1010b, Fh=1111b, 2h=0010b, 3h=0011b Conversion : AF23h = 1010 1111 0010 0011b
Exemples 1010b= 1101000b= 12h= 3Ah= 27d= 35d=