700 likes | 1.04k Views
Support de cours Informatique - I2. 1951. 2006. 1990. 1946. 1981. 2009. Nicolas Fourty – fourty@iut-valence.fr. Positionnement. UE2 : Informatique et Électronique I1 : Utilisation des systèmes d’exploitation des ordinateurs
E N D
Support de coursInformatique - I2 1951 2006 1990 1946 1981 2009 Nicolas Fourty – fourty@iut-valence.fr
Positionnement • UE2 : Informatique et Électronique • I1 : Utilisation des systèmes d’exploitation des ordinateurs • I2 : Représentation de l’information et architecture des machines • I3 : Algorithmique et programmation • I4 : Base de données • I5 : Programmation orientée objet • I6 : Programmation événementielle et réseau Analyse Algorithmique Système d'exploitation et temps réels Programmation (langage évolué) LOGICIEL Programmation (langage d'assemblage) Architecture des ordinateurs Electronique (numérique - analogique) Technologie des composants Physique des composants et capteurs MATERIEL
Plan de cours • Positionnement • Objectifs • Bibliographie • Chapitre 1 – Représentation de l’information • Numération • Arithmétique binaire • Chapitre 2 – Logique combinatoire et séquentielle • Opérations logiques • Principaux systèmes combinatoires • Logique séquentielle • Chapitre 3 – Architectures à processeurs • Processeur / Mémoires / Bus • Systèmes d’entrées / sorties • Programmation en langage C pour l’embarqué I2.1 I2.2
Introduction • Objectifs • Comprendre et utiliser les systèmes de numération et de codage, les composants élémentaires des machines numériques ainsi que leur organisation • Compétences à acquérir Être capable : • d’identifier les composants élémentaires d’un système de traitement numérique • d’exprimer une information (numérique et alphanumérique) dans différents systèmes de codage • de définir le cheminement des données et l’adressage matériel • de décrire les mécanismes d’entrées-sorties par scrutation et interruption • Pré requis • Pas de compétences particulières • Bac ou équivalent • Motivation, organisation et travail continu … 1 – Introduction
Bibliographie • Bibliographie • JJ. Mercier , "Computer 1 – Bit après bit" , Technosup-Ellipses, 308 pages, ISBN 2-7298-2321-2, 2005 • JJ. Mercier, "Computer 2 – Séquence après séquence" , Technosup-Ellipses, 280 pages IBSN 2-7298-2619-X , 2006 • JJ. Mercier,"Computer 3 – Instructions après instructions" , Technosup-Ellipses, 174 pages ISBN 2-7298-2616-5, 2007 • T. Val : Support de cours I2, département R&T, IUT Blagnac • Remerciements • Cours, texte, figures, tables extraits des différents livres rédigés par le Pr. Jean-Jacques Mercier • Support de cours , TD, TP inspirés des supports du Pr. Thierry Val • Support de cours TD et TP inspirés des supports de Philippe Objois 1 – Introduction
Chapitre 1 Représentation de l’information
Numération • Historique sur la représentation écrite des nombres • Le système babylonien (base 60) : • Exemple : 22936 d’aujourd’hui s’écrivait à cette époque : • 6 x 602 + 22 x 601 + 16 x 600 soit la suite 6 , 22 , 16 • Pas de représentation du 0, c'est-à-dire RIEN
Numération (2) • Le système égyptien • des hiéroglyphes pour représenter chaque puissance de dix • Exemple : 17235
Numération (3) • Le système romain • 7 majuscules comme symboles numériques Le chiffre 4 pouvait être représenté par IV mais aussi par IIII Le chiffre 9 pouvait être représenté par IX mais aussi par VIIII Le nombre 18 avait deux représentations possiblesXVIII mais aussi par XIIX Le nombre 80 avait deux représentations possiblesLXXXmais aussi par XXC • Règles • Règle 1 : pour former un nombre on peut mettre jusqu’à quatre fois le même symbole côte à côte. • Règle 2 : à partir d’un symbole représentant la plus grande valeur : • la valeur de tout symbole ou ensemble de symboles situé à droite du symbole s’ajoute • la valeur de tout symbole ou ensemble de symboles situé à gauche du symbole se soustrait
Le système décimal • Principe • Utilisation des chiffres arabes (d'origine hindou…) • Représentation des nombres entiers initialement • Utilisation de 10 symboles : 0 1 2 3 4 5 6 7 8 9 • 10 symboles base 10 système décimal • Un nombre est constitué d’une somme d’éléments dans chacun desquels on trouve : • un des symboles du système (ou de la base) représentant une valeur absolue, • un coefficient multiplicateur représentant la valeur de la position (poids). • Exemple: Symboles Poids • ( 5 x 100 ) + ( 3 x 10 ) + ( 8 x 1 ) • Somme = 500 + 30 + 8 = 538 • Poids forts à gauche, Poids faibles à droite • Les poids sont des puissances de 10 : … 104 103 102 101 100 : … 10000 1000 100 10 1 • Généralisation • N = (Sjx basep) + .... + (Skx base2) + (Slx base1) + (Smx base0) = • où Sj, Sk, ........ , Sl, Smsont les symboles associés à la base considérée • avec Si { 0 , 1 , 2 , ........, B-1 } ensemble des symboles de la base
Le système binaire • Historique • Les premières machines à calculer étaient mécaniques (PASCAL…) • Georges Boole (1815-1864) proposa l'utilisation de 2 symboles 0 et 1 avec l’algèbre ‘de Boole’, • Les progrès en électricité, puis électronique ont permis le développement de machines automatiques utilisant le système binaire pour réaliser des calculs : les ordinateurs • 0 : le courant ne passe pas • 1 : le courant passe • Principe • Répartition des poids de la base binaire : … 29 28 27 26 25 24 23 22 21 20 • soit encore : ... 512 256 128 64 32 16 8 4 2 1 • Exemple : Supposons que nous ayons la suite de symboles : 1 0 0 1 0 1 1 0 1 • N = (1 x 256) + (0 x 128) + (0 x 64) + (1 x 32) + (0 x 16) + (1 x 8) + (1 x 4) + (0 x 2) + (1 x 1) • N = 256 + 0 + 0 + 32 + 0 + 8 + 4 + 0 + 1 = 301 • Nous pouvons en déduire que : ( 301 ) en base décimale = ( 0 1 0 0 1 0 1 1 0 1 ) en base ‘binaire naturel’ • Nous écrirons : ( 301)d = ( 0 1 0 0 1 0 1 1 0 1 )b ou bien (301)10 = ( 0 1 0 0 1 0 1 1 0 1 )2
Le système hexadécimal • Presentation • Le système hexadécimal utilise la base 16 et nécessite 16 symboles : 0 1 2 3 4 5 6 7 8 9 A B C D E F • format largement utilisé en informatique car il offre une conversion facile avec le système binaire et une meilleure compacité • possibilité de traduire du binaire vers de l'hexadécimal et réciproquement. Cette caractéristique s'explique par le fait que 16 est lui-même une puissance de 2 à un chiffre dans la base 16, correspondent exactement quatre chiffres dans la base 2 • Exemple : Supposons que nous ayons la suite de symboles : 12D • N = (1 x 162) + (2 x 161) + (13 x 160) • N = 256 + 32 + 13 = 301 • Nous pouvons en déduire que : ( 301 ) en base décimale = ( 12D) en base hexadécimale • Nous écrirons : ( 301)d = ( 12D)h ou bien (301)10 = ( 12D)16
Quelques remarques • Remarque 1 • Le poids d'ordre n + 1 est toujours égal à la somme des n poids précédents + 1. 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 • Remarque 2 • Tout chiffre ou nombre exprimé en binaire dont le bit de poids le plus faible (LSB) est : • un 1 est toujours un chiffre ou un nombre décimal impair • un 0 est toujours un chiffre ou un nombre décimal pair • Remarque 3 : deux mondes qui se côtoient • Monde de la machine • Monde de l’humain Hexadécimal Décimal Binaire Octal
Principales Bases Symboles binaires Symboles octaux Symboles hexadécimaux
Changements de base • Principe général (Système humain)décimal division par la future base (système machine)binaire Multiplications des symbole par les poids (Système humain)décimal • Décimal binaire Soit (542)d à convertir dans une base ‟binaire naturelle” 542 ÷ 2 = 271 reste 0 poids faible (LSB) • ÷ 2 = 135 reste 1 • ÷ 2 = 67 reste 1 • ÷ 2 = 33 reste 1 (1 0 0 0 0 1 1 1 1 0)b = (542)d 33 ÷ 2 = 16 reste 1 16 ÷ 2 = 8 reste 0 8 ÷ 2 = 4 reste 0 4 ÷ 2 = 2 reste 0 2 ÷ 2 = 1 reste 0 1 ÷ 2 = 0 reste 1 poids fort (MSB)
Changements de base (2) • Décimal Hexadécimal Soit (542)d à convertir dans une base hexa décimale 542 ÷ 16 = 33 reste 14 (E) poids faible (LSB) • ÷ 16 = 2 reste 1 (21E)h = (542)d 2 ÷ 16 = 0 reste 2 poids fort (MSB) • Autre méthode pratique par soustraction : restes Nous pouvons écrire : (1 0 0 0 0 1 1 1 1 0)b = (542)d
Changements de base (3) • Binaire Décimal N = ( Sn x 2n ) + … + ( S3 x 23 ) + ( S2 x 22 ) + ( S1 x 21 ) + ( S0 x 20 ) Soit à convertir en décimal : N = (1 0 1 1 1 1 0)b N = ( 1 x 64 ) + ( 0 x 32 ) + ( 1 x 16 ) + ( 1 x 8 ) + ( 1 x 4 ) + (1 x 2 ) + ( 0 x 1 ) N = 64 + 0 + 16 + 8 + 4 + 2 + 0 N = 94 d’où (1 0 1 1 1 1 0)b= (94)d • Hexadécimal Décimal N = ( Sn x 16n) + … + ( S3 x 163) + ( S2 x 162) + ( S1 x 161) + ( S0 x 160 ) Soit à convertir en décimal : N = (A 2 E)h N = ( 10 x 256 ) + ( 2 x 16 ) + ( 14 x 1 ) N = 2560 + 32 + 14 N = 2606 d’où (A 2 E)h= (2606)d
Changements de base (4) • Hexadécimal Binaire Exemple : Soit le nombre (425)d = ( 1 1 0 1 0 1 0 0 1 )b • 8 4 2 1 8 4 2 1 8 4 2 1 • par bloc de 4 symboles 0 0 0 1 1 0 1 0 1 0 0 1 • Ce qui donne en base 16 ( 1 A 9 ) h • Exercice d’application : Transformer le nombre (145)d en base 2 puis en base 16
Représentation des nombres réels • Introduction (en décimal) • Le déplacement de la virgule vers la droite corresponds à une multiplication par dix du nombre • Le déplacement de cette virgule vers la gauche corresponds à une division par dix du nombre • exemple:N = 7 6 8 4, 5 2 9 • N x 10 = 7 6 8 4 5, 2 9 • N ÷ 10 = 7 6 8, 4 5 2 9 • En binaire • Le déplacement de la virgule vers la droite corresponds à une multiplication par deux du nombre • Le déplacement de cette virgule vers la gauche corresponds à une division par deux du nombre • exemple:N = 1 0 1 0, 1 0 1 • N x 2 = 1 0 1 0 1, 0 1 • N ÷ 2 = 1 0 1, 0 1 0 1 • Remarque • Le nombre de bit de la partie à droite de la virgule n'est pas toujours suffisant • Ce nombre de bit en tout est limité par les capacités de la machine • Problème de précision (cf. plus tard)
La partie fractionnaire • 1ère méthode : les poids fractionnaires • Soustractions successives des poids • Les poids : 0, 0,5 0, 0078125 0,25 0,00390625 0,125 0,001953125 0,0625 0,0009765625 0,03125 0,00048828125 0,015625 0,000244140625 • exemple : Soit le nombre (0,53125)d à convertir en base 2 • Nombre Poids b-n Reste Symboles • 0,53125 – 0,5 = 0,03125 1 • 0,03125 – 0,25 = / 0 • 0,03125 – 0,125 = / 0 d’où : (0,53125)d = (0,10001)b • 0,03125 – 0,0625 = / 0 • 0,03125 – 0,3125 = 0 1
La partie fractionnaire (2) • Dans le sens binaire décimal : Même principe que pour la partie entière On multiplie chaque symbole binaire, par le poids correspondant à sa position et on additionne les valeurs. N = ( Sn x 2n ) + … ( S1 x 21 ) + ( S0 x 20) , ( S-1x 2-1) + ( S-2x 2-2) + … + ( S-px 2-p ) Exemple : (101,00101)b N = ( 1 x 4 ) + ( 0 x 2 ) + ( 1 x 1 ) , ( 0 x 0,5 ) + ( 0 x 0,25 ) + ( 1 x 0,125 ) + ( 0 x 0,0625 ) + (1 x 0,03125) N = 5,15625 Remarque Pour les autres bases, le principe est le même, seuls les poids changent Poids en hexadécimal : 0, 0,0625 0,0000152587890625 0,00390625 0,00000095367431640625 0,000244140625 0,000000059604644775390625
La partie fractionnaire (3) • 2ème méthode : arithmétique • On multiplie par bla partie fractionnaire • Exemple en binaire : N = (0,51953125)d 0,51953125 x 2 = 1, 0390625 0,0390625 x 2 = 0, 078125 0,078125 x 2 = 0, 15625 N = (0,10000101)b = (0,51953125)d 0,15625 x 2 = 0, 3125 0,3125 x 2 = 0, 625 0,625 x 2 = 1, 25 0,25 x 2 = 0, 5 0,5 x 2 = 1, 0 • Exemple en hexadécimal : N=(0,6357421875)d 0,6357421875 x 16 = 10, 171875 0,171575 x 16 = 2, 75 N= (0, A 2 C )h = (0,6357421875)d 0 ,75 x 16 = 12, 0
Précision et erreurs • Illustration Soit à convertir en binaire la valeur N = (0,1)d 0,1 x 2 = 0, 2 0 0,2 x 2 = 0, 4 0 0,4 x 2 = 0, 8 0 Se répète à l’infini 0,8 x 2 = 1, 6 1 0,6 x 2 = 1, 2 1 0,2 x 2 = 0, 4 0 0,4 x 2 = 0, 8 0 0,8 x 2 = 1, 6 1 0,6 x 2 = 1, 2 1 0,4 x 2 = 0, 8 0 0,4 x 2 = 0, 8 0 0,8 x 2 = 1, 6 1 0,6 x 2 = 1, 2 1 …. x .. = … • Même en considérant un nombre de poids infini il est impossible de représenter en binaire le nombre N = (0,1)d • N = (0,1)d = (0,0001100110011001100110011…)b
le code DCB • Le code DCB (Décimal Codé Binaire) • Utilisation dans des langages informatiques (COBOL…), factures, feuilles de paye, gestion… • Représentation des nombres très grands • Concaténation de plusieurs quartés : chaque symbole d’un nombre codé en DCB représente un chiffre codé en binaire naturel • 10 symboles 0 0 0 0 0 4 0 1 0 0 8 1 0 0 0 1 0 0 0 1 5 0 1 0 1 9 1 0 0 1 • 0 0 1 0 6 0 1 1 0 3 0 0 1 1 7 0 1 1 1 • Exemple : 5 6 7 0, 3 2 5 01010110 0111 0000, 0011 0010 0101 • Inconvénients : • il faut beaucoup de place mémoire • Problème d'ajustement lors des calculs • Il faut des bits en plus pour représenter le nombre
Nombres en virgule flottante • Problématique Avoir la plus grande précision sur un nombre de bit fixe. • Utilisation • Utilisation par les scientifiques pour les calculs arithmétiques • Nombres très grands (années lumières…) • Nombres très proches de 0 (grande précision…) • Idem à la représentation dans les calculatrices scientifiques : 3.8E8 = 3.8 * 108 Comme en mathématiques, nous appellerons : • la mantisse : l’ensemble des symboles représentant le nombre lui-même • l’exposant : l’ensemble des symboles représentant le déplacement de la virgule • En binaire, l'exposant représente le décalage de la virgule : • Exemple : π =3,1415926536 = 11,00100100001111 (N)2 = ± ( SkSlSm Sn ) x 2 ± puissance • mantisse exposant • π = 0,1100100100001111 0010 • 2 L’exposant est le nombre de sauts de la virgule
Les codes réfléchis • Code de GRAY • Combinaisons successives adjacentes (1 seul bit de différence) • Code réfléchi au sens strict : en plus, la première est adjacente à la dernière • Sinon : code réfléchi au sens large • Utilisé pour les capteurs de position et capteurs optiques angulaires • Éviter les aléas quand 2 bits changent en même temps (impossible : cf. logique séquentielle)
Représentation des caractères • Le code ASCII (American Standard Code for Information Interchange) • Problème : comment représenter des caractères (A, B, C, ?, !...) dans un ordinateur ? • Tables de correspondances entre tous les caractères et les combinaisons binaires associées • Remarque : il faut que l'on sache que l'on veut représenter des caractères • sinon, il n'y a pas de différence entre nombres et caractères • Plusieurs codes différents : ASCII 7 bits, ASCII 8 bits, EBCDIC, UNICODE…
Arithmétique binaire • Objectif : Étudier les méthodes de calcul utilisées par les ordinateurs (addition, soustraction, multiplication, division…) • Principe de l’addition • Les calculs se font avec un nombre limité de bits pour le résultat • Il peut y avoir débordement ! • Les calculs se font modulo 2 • Table d’addition binaire : Retenue 0 0 0 1 0 0 1 1 + 0 + 1 + 0 + 1 Résultat = 0 = 1 = 1 = 0 Exemple :
Arithmétique binaire (2) • Principe de la soustraction 0 0 1 1 Retenue 0 1 0 0 - 0 - 1 - 0 - 1 Résultat = 0 = 1 = 1 = 0 Exemple • Le résultat peut etre inférieur à 0 • Problème il faut savoir représenter des nombres négatifs
Représentation des négatifs • 3 possibilités • Le 0 est représenté 2 fois avec les solutions Signe + Valeur absolue et C1 • En C2, on considère que 0 est positif • Pour le C2, il y a dissymétrie entre valeurs négatives (1 de plus) et valeurs positives • Sur 8 bits en C2, on va de -128 à +127 • Sur 16 bits en C2 (INTEGER ou INT), on va de -32768 à + 32767
Le complément à 2 • Méthode de calcul 1ère méthode (simple à mémoriser) C2= C1+ 1 2ème méthode (plus rapide) • Lire le nombre binaire de droite à gauche, • recopier tous les bits 0 jusqu’au premier bit à 1 que l’on rencontre et que l’on recopie, • inverser ensuite tous les autres bits, y compris le bit de signe (radical). On reconnait le signe d’un nombre binaire codé en C2 sur N bits en regardant le MSB : si 1 : négatif, si 0 : positif Le C2(Nb) = -Nb Le C2(-Nb) = Nb donc Le C2(C2(Nb)) = Nb On utilise le C2 pour les mantisses et les exposants également !
Arithmétique en C2 • Addition (et soustraction) binaires en C2 • Z = X + Y : pas de problèmes si les 2 valeurs X et Y sont positives (ou négatives !) • Z = X - Y = X + (-Y) = X + C2(Y) : une soustraction devient une addition grâce au C2 • Les montages de calculs arithmétiques sont les plus simples avec le C2 • X > 0 et Y > 0 : débordement Résultats homogène Résultat homogène si Sans retenue ni débordement on considère un bit de plus • X > 0 et Y < 0 : retenue qu’il faut ignorer Les résultats sont toujours homogènes et il ne peut y avoir de dépassement car les signes étant opposés la valeur absolue du résultat ne peut être supérieure à la plus grande des valeurs
Arithmétique en C2 (2) • X < 0 et Y < 0 : • Bilan : • La représentation en C2 ne nécessite aucune correction ! • Le seul problème est de détecter si un débordement de valeur a eu lieu • Pour détecter un débordement : on compare les signes de X et Y (Sx et Sy) Sx = Sy ≠ Retenue de poids Bm débordement nécessitant un poids supplémentaire Nouveau radical = retenue finale au-delà de l’ancien radical Sx= Sy ≠ Retenue de poids Bm débordement introduction d’un poids
Multiplications en binaire • Présentation • Dans des processeurs classiques, les multiplications sont des opérations algorithmiques • Elles sont souvent programmées sauf dans les co-processeurs arithmétiques • On peut simplement faire des additions successives 3 fois • Table binaire de multiplication • 1 x 1 = 1 1 x 0 = 0 0 x 1 = 0 0 x 0 = 0 • Principe général • ( CM1 …) • Il existe des méthodes rapides (BOOTH, radix-4…)
Multiplications en binaire (2) • Exemple de multiplication par 10 rapide • La multiplication par 10 est très souvent nécessaire dans des programmes (ou par 100, 1000…) • La valeur 10 est en fait la somme de 2 et de 8 ( 10 = 2 + 8 ) • un nombre binaire, donc en base 2, décalé de 1 poids à gauche est multiplié par 2 • un nombre binaire, donc en base 2, décalé de 3 poids à gauche est multiplié par 8 • la somme des résultats de ces deux décalages exprime le nombre multiplié par 10 X = (0 0 0 0 1 0 10)b = (10)d 2X = X = (0 0 0 1 0 1 0 0)b= (20)d 3X = X = (0 1 0 1 0 0 0 0)b= (80)d 10X = 3X +2X = (0 1 1 0 0 1 00)b = (100)d • Il suffit donc de 3 étapes : • 2 décalages (très facile à faire dans un microprocesseur) • 1 addition Attention aux débordements : de façon générale, pour une multiplication, le nombre de symboles du résultat peut être le double des symboles initiaux (si ces derniers sont de même dimension) : • Exemple en décimal : 999 x 999 = 998 001 • Exemple en binaire sans tenir compte du signe : 1111 x 1111 = 1110 0001
Divisions en binaire • Principe • A chaque étape, on tente de soustraire du dividende D, le diviseur d : • On doit tester si D > d Exemple : (34)d = (0 0 1 0 0 0 1 0)bdivisé par (6)d = (0 0 0 0 0 1 1 0)b Quotient Reste
Divisions en binaire (2) • Méthode par restauration des restes partiels • Tentative de soustraction du dividende, du plus grand multiple possible du diviseur. • Si la tentative échoue alors, après avoir restauré la valeur du dividende, on tente une nouvelle soustraction avec un multiple du diviseur moins élevé. • Dès qu’une tentative a réussi, on note le multiple du diviseur comme poids du quotient Exemple : (66)d = (0 1 0 0 0 0 1 0)b divisé par (7)d • Pour les nombres réels > 0 en virgule fixe, il faut : • Aligner les virgules • Considérer les nombres comme des entiers • Pour les nombres signés, les algorithmes sont plus complexes
Arithmétique en BCD • Des ajustements doivent être réalisés lors des calculs • Exemple lors de l'addition de nombres codés en DCB : Problème des pseudo-tétrades Tétrades valides • Par exemple, si on fait : 8 + 6 = 14 1 0 0 0 + 0 1 1 0 = 1 1 1 0 Tétrades invalides
Arithmétique en BCD (2) • Trois cas se présentent • cas 1 :cas 3 : • - pas de retenue - retenue • - résultat appartient - résultat n’appartient • aux tétrades valides pas aux tétrades • valides • cas 2 : • - pas de retenue • - résultat n’appartient • pas aux tétrades • valides • Si le résultat appartient aux pseudo-tétrades ou si il y a une retenue : • Il faut ajouter + 6 au résultat obtenu • Exemples : 13 = 1 1 0 1 + 0 1 1 0 = 0 0 0 1 0 0 1 1 17 = 0 0 0 1 + 0 1 1 0 = 0 0 0 1 0 1 1 1 • 1 3 1 7
Arithmétique en flottants • Problème de la virgule fixe lors de calculs : • Supposons un ordinateur qui opère sur des mots de 16 bits (en C2 car pouvant être négatifs) • Soit à additionner (87 , 31640625)d = (0101 0111 , 0101 0001)b avec (108 , 7890625)d = (0110 1100 , 1100 1010)b • Il vaut mieux perdre un bit de poids faible et avoir un résultat « presque » juste • Les bits les plus significatifs sont ainsi conservés • On associe à la virgule flottante la notion de mantisse et d'exposant • La mantisse est codée en C2 pour représenter des nombres négatifs • L'exposant est codé en C2 pour représenter des décalages à droite et à gauche Faux
Arithmétique en flottants (2) • Afin de faciliter les calculs, on va normaliser la représentation • La technique la plus simple consiste à faire un cadrage à gauche de la mantisse : • Exemple pour un nombre positif : • Cette virgule n'est pas codée : on l'appelle virgule virtuelle • Pour un nombre négatif, c'est l'inverse : 1,xxxxx… • Quelques exemples : • 45,125 Exposant 000000110 Mantisse 0,101 1010 0100 0000 • -12,0625 Exposant 000000100 Mantisse 1,001 1111 1000 0000 • 0,1640625 Exposant 111111110 Mantisse 0,101 1000 0000 0000 • 0,08203125 Exposant 111111110 Mantisse 0,101 1000 0000 0000 • Il existe aussi des méthodes plus complexes liées au codage des nombres en virgule flottante : • Le bit caché, • L'exposant biais, • Norme IEEE 754… Avec une représentation homogène, les calculs (additions, soustractions…) sont facilités
Chapitre 2 Logique combinatoire etsequentielle
Opérations logiques • Introduction • Le but est de disposer d’opérateurs logiques câblés pour implémenter des fonctions logiques • En 1854, Georges BOOLE (1815-1864), philosophe et mathématicien anglais, a introduit et développé de manière théorique le raisonnement logique : l'algèbre de BOOLE. • En 1938, Claude E. SHANNON offre un support physique aux études théoriques. • Tout est basé sur des équations logiques • Les variables sont dans 2 états : Vrai (1) ou Faux (0) Variables booléennes • 3 opérations logiques fondamentales : • On définit des opérateurs logiques plus complexes à partir de ces 3 derniers • Le NAND : Non ET • Le NOR : Non OU • Remarque : le temps n'intervient pas (cf. logique séquentielle) • Le OU exclusif A B (XOR) • Le OU inclusif A B (Fonction égalité)
Les portes logiques • L'inverseur (opérateur unaire) Symbole Table de vérité • Le OU logique (opérateur binaire) Symbole Table de vérité • Le ET logique (opérateur binaire) Symbole Table de vérité • Le OU exclusif (opérateur binaire) Symbole Table de vérité
Théorèmes fondamentaux • A retenir • Corollaire : • Relation 1 : A + ( .B) = A + B • Relation 2 : A + (A.B) = A
Théorème de DE MORGAN • Définitions préliminaires • Une expression est une expression logique de la forme: A . B . C . D . … . X Exemple : (A + B) . (C + D + E ) . (X + Y + Z) • Une expression une expression logique telle que : A + B + C + D + … + X Exemple : (A . B) + (C . D . E ) + (X . Y . Z) • Théorème de DE MORGAN = = . . … . • Permet de passer de à • On s'en sert souvent avec 2 variables seules : Exemples : = . A . B = • = A+B =
Théorème de DE MORGAN (2) • Exemple d'utilisation • Soit : F = = = . = .) = . B) • Remarque pour le XOR : A (B C) = (A B) C = B (A C) = A B C (nombre impair de 1) • Il faut parfaitement connaître les théorèmes pour pouvoir simplifier les équations logiques algébriquement. • On s'en sert aussi pour simplifier les tests dans les programmes informatiques A B A B
Les fonctions booléennes • Le diagramme d’Euler ou de Venn A=1 ET B=1 (A ET B)=1 A=1 OU B=1 (A OU B)=1 • Les tables de vérités Equation Mathématique Loi logique A=1 A=0 A=1 A=0 A=1 B=1 A=1 B=1 x y F(x) Combinaisons d’entrée Valeur de la fonction en sortie
Les tables de vérités • Exemple à 3 variables : • Soit en entrée un nombre A codé sur 3 bits : A2A1A0 • La sortie S est vrai quand un nombre décimal pair est en entrée • Exemple à 4 variables en entrée et 3 en sorties Valeurs décimales des combinaisons
Extraction des équations • Exemple • Définition : Quand toutes les combinaisons valides (S=1) d’une fonction logique sont exprimées avec toutes les variables d’entrées, on dit que cette fonction est sous forme canonique. • Nous verrons par la suite comment simplifier une forme canonique • Représentation numérique Reprenons l'exemple précédent Nous écrirons en représentation numérique : F = R ( 0 , 2 , 4 , 6 ) Avec R signifiant réunion de ( 0 , 2 , 4 , 6 ) Valeurs décimales des combinaisons S =