1 / 67

Support de cours Informatique - I2

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

dyre
Download Presentation

Support de cours Informatique - I2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Support de coursInformatique - I2 1951 2006 1990 1946 1981 2009 Nicolas Fourty – fourty@iut-valence.fr

  2. 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

  3. 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

  4. 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

  5. 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

  6. Chapitre 1 Représentation de l’information

  7. 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

  8. Numération (2) • Le système égyptien • des hiéroglyphes pour représenter chaque puissance de dix • Exemple : 17235

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. Principales Bases Symboles binaires Symboles octaux Symboles hexadécimaux

  15. 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)

  16. 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

  17. 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

  18. 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

  19. 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)

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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)

  27. 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…

  28. 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 :

  29. 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

  30. 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

  31. 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 !

  32. 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

  33. 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

  34. 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…)

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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

  41. 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

  42. Chapitre 2 Logique combinatoire etsequentielle

  43. 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é)

  44. 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é

  45. Théorèmes fondamentaux • A retenir • Corollaire : • Relation 1 : A + ( .B) = A + B • Relation 2 : A + (A.B) = A

  46. 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 =

  47. 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

  48. 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

  49. 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

  50. 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 =

More Related