Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Architecture des microcontrôleurs
Chapitre 1: Introduction ABDALLAH Mohamed JEDIDI Hassen © ESPRIT H.JEDIDI & M.ABDALLAH
2
Objectifs Comprendre l’architecture des microcontrôleurs.
Le but de ce module est de : Comprendre l’architecture des microcontrôleurs. Développer des programmes en Assembleur et en langage C et les tester sur des simulateurs et des maquettes. Réaliser un mini projet a base d’un microcontrôleur de la famille Microchip. © ESPRIT H.JEDIDI & M.ABDALLAH
3
Programme du module Introduction
Architecture et fonctionnement des PIC 16F84 Le jeu d’instructions Les modes d’adressage Les interruptions Le TIMER Le WATCHDOG © ESPRIT H.JEDIDI & M.ABDALLAH
4
Le Mini-Projet Le mini-projet se déroule pendant la deuxième période.
Le mini-projet est réalisé par binôme. Un sujet ne peut être pris par plus d’un binôme. Le projet doit être réalisé sur les PIC 16F877. Une soutenance est prévue durant la dernière semaine du semestre pour présenter le mini-projet. © ESPRIT H.JEDIDI & M.ABDALLAH
5
Histoire des calculateurs
© ESPRIT H.JEDIDI & M.ABDALLAH
6
Histoire des Sciences : quelques points de repères
1800 : pile de Volta 1826 : loi d’ohm 1831 : premier relais électrique 1837 : télégraphe de Morse 1847 : lois de kirchhoff 1866 : dynamo 1876 : téléphone (Bell) 1904 : la diode, premier tube à vide 1907 : la triode à vide (Lee de Forest) 1909 : premier central téléphonique automatique 1914 : premier circuits électroniques 1946 : ENIAC (Electronic Numeral Integrator and Calculator) : premier calculateur électronique (17468 tubes électroniques , relais, 30 tonnes, 15O KW, 5000 additions par seconde). 1947 : transistor à pointes germanium (brattain, bardeen, shockley) Nobel 1958 1954 : transistor silicium (G. Teal, TI) © ESPRIT H.JEDIDI & M.ABDALLAH
7
Histoire des Sciences : quelques points de repères(2)
1959 : circuit intégré (J. Kilby Nobel 2000 en parallèle avec Noyce) assemblage sur un même substrat de résistances, condensateurs et transistors interconnectés. 1959 : transistor à effet de champ (FET) : transistor MOS 1970 : mémoire DRAM 1024 bits Intel 1971 : microprocesseur 4004, Intel 1980 : microcontrôleur 8 bits ASIC Microélectronique CMOS 1990 : microcontrôleur 32 bits 2000 « convergence » des S T I C: Sciences de l ’information et de la communication S O C IP (composant virtuel matériel/logiciel) < 2010 : 1 processeur CMOS = 1 milliard de transistors sur une puce …nouveaux types de mémoires © ESPRIT H.JEDIDI & M.ABDALLAH
8
Une évolution Taille Nombre Mais pas seulement …..
© ESPRIT H.JEDIDI & M.ABDALLAH
9
Loi de Moore En 1965, Gordon Moore, un des fondateurs de la société Intel remarqua que le nombre de transistors dans un circuit intégré doublait tous les 18 à 24 mois. Cette observation est devenue une loi, dite loi de Moore et n’a pas été démentie jusqu’à présent. Pour les microprocesseurs, grâce à d’autres améliorations telles que l’addition de nouveaux circuits, l’amélioration en vitesse a été de quatre à cinq tous les trois ans. © ESPRIT H.JEDIDI & M.ABDALLAH
10
Loi de MOORE Année 1971 2001 Transistors 2300 42 000 000 Fréq (Khz)
108 Tech (µm) 10,0 0,13 Intel 4004 Intel Pentium 4 © ESPRIT H.JEDIDI & M.ABDALLAH
11
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
12
Autres barrières historiques
© ESPRIT H.JEDIDI & M.ABDALLAH
13
Des nouvelles IHM © ESPRIT H.JEDIDI & M.ABDALLAH
14
Des nouveaux objets et dispositifs communicants
Tag RFID Capteurs Robots © ESPRIT H.JEDIDI & M.ABDALLAH
15
Des nouveaux objets et dispositifs communicants (2)
© ESPRIT H.JEDIDI & M.ABDALLAH
16
Vers la convergence totale
Mobilité Multimédia Connectivité © ESPRIT H.JEDIDI & M.ABDALLAH
17
Microcontrôleur © ESPRIT H.JEDIDI & M.ABDALLAH
18
Contrôleur un contrôleur est un dispositif qui - placé au cœur d’un processus - surveille l’évolution d’un événement et compare son état (ou sa valeur) à une donnée prédéterminée, pour intervenir dès que les limites préfixées sont atteintes. Son travail consiste à surveiller (lire) la valeur d’une situation, et à la comparer en permanence à une valeur fixée d’avance. © ESPRIT H.JEDIDI & M.ABDALLAH
19
Microcontrôleur Les plus souples de tous les contrôleurs sont évidemment les contrôleurs faisant appel à l’électronique, et plus particulièrement les microcontrôleurs Selon un arrêté français du 14 septembre relatif à la terminologie des composants électroniques « Circuit intégré comprenant essentiellement un microprocesseur, ses mémoires, et des éléments personnalisés selon l'application » © ESPRIT H.JEDIDI & M.ABDALLAH
20
Microcontrôleur(2) © ESPRIT H.JEDIDI & M.ABDALLAH
21
Circuit intégré © ESPRIT H.JEDIDI & M.ABDALLAH
22
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
23
Architecture de Von Neumann
Une mémoire pour le programme et les données. Double utilisation des BUS données et d’adresses. Employée dans la plupart des processeurs (Intel 80xx, Motorola HC05, …) © ESPRIT H.JEDIDI & M.ABDALLAH
24
Architecture de Harvard
Mémoire programme et mémoire données séparée. Bus indépendant pour chaque mémoire. Utilisée dans les microcontrôleurs de Microchip © ESPRIT H.JEDIDI & M.ABDALLAH
25
RISC/ CISC CISC RISC Avantages Jeu d’instructions riche
Jeu d’instructions facile à mémoriser. Le code est compact, chaque instruction dure un cycle. Inconvénients Durée d’une instruction variable. Codage sur plusieurs octets Jeu d’instruction pauvre © ESPRIT H.JEDIDI & M.ABDALLAH
26
Schéma bloc d’un microcontrôleur
© ESPRIT H.JEDIDI & M.ABDALLAH
27
Schéma bloc d’un microcontrôleur
Mémoires Ports E/S Contrôle ALU Timer © ESPRIT H.JEDIDI & M.ABDALLAH
28
Classes des processeurs
Microprocesseurs Architecture: CPU mono-chip, nécessite des circuits additionnels externes RISC: Reduced Instruction Set Computer CISC: Complex Instruction Set Computer Exemples: Pentium-Series, PowerPC, MIPS,… © ESPRIT H.JEDIDI & M.ABDALLAH
29
Classes des processeurs
Microcontrôleurs Architecture: CPU, RAM, ROM, interfaces Serie/Parallèle, timer, circuits d’interruptions. Applications: contrôle / commande de processus. Caractéristiques: pas d’exigence de vitesse, jeu d’instructions compact. Exemples: 8051, 68HC11, PIC,… © ESPRIT H.JEDIDI & M.ABDALLAH
30
Classes des processeurs
Processeurs numériques des signaux (DSP) Architecture: CPU optimisée pour le traitement mathématique temps réel rapide et répétitif RAM, ROM, interfaces série / parallèle, timer, circuits d’interruptions Exemples: ADSP-21xx, AD-BF-5xx, AD-TS-xxx, TMS320Cxx,… © ESPRIT H.JEDIDI & M.ABDALLAH
31
Exemples de microcontrôleurs
Référence Fabricant Vitesse RAM (O) ROM / EPROM / FLASH (Ko) EEPROM(Ko) E / S Logiques Timer Entrées Analogiques Particularité 8051 Intel 12 Mhz 128 4 Ko X 32 2 16C71 Microchip 20 Mhz 36 1Kx14 13 1 4 RISC 6805 S2 Motorola 4 MHz 64 1 Ko 16 8 68HC11 A1 8 MHz 256 512 22 AT90S 8515 Atmel 20 MHz 3 ST 6265 Thomson 21 © ESPRIT H.JEDIDI & M.ABDALLAH
32
Domaines d’application
Contrôle des processus industriels: régulation, pilotage. Appareil de mesure: affichage, calcul statistique, mémorisation. Automobile: ABS, injection, GPS, airbag Téléphones: fax, portable, modem) Electroménager : lave-vaisselle, lave-linge, four micro-onde) © ESPRIT H.JEDIDI & M.ABDALLAH
33
Représentation et traitement des données
© ESPRIT H.JEDIDI & M.ABDALLAH
34
Codage et décodage d’informations
© ESPRIT H.JEDIDI & M.ABDALLAH
35
Les différents types de caractères
© ESPRIT H.JEDIDI & M.ABDALLAH
36
Code ASCII © ESPRIT H.JEDIDI & M.ABDALLAH
37
Unité de stockage © ESPRIT H.JEDIDI & M.ABDALLAH
38
Le système décimal On utilise dix symboles différents: { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } N’importe quelle combinaison des symboles { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } nous donne un nombre. Poids fort Poids faible Partie fractionnelle Partie entière 345 , 567 © ESPRIT H.JEDIDI & M.ABDALLAH
39
Système binaire ( système à base 2 )
Dans le système binaire, pour exprimer n’importe quelle valeur on utilise uniquement 2 symboles : { 0 , 1} ( 1101)2 La base Un bit ( )2 Le bits du poids forts Le bits du poids faible . Un nombre dans la base 2 peut être écrit aussi sous la forme polynomial © ESPRIT H.JEDIDI & M.ABDALLAH
40
Comptage en binaire .Sur 2 bits : Sur un seul bit : 0 , 1 Décimal
1 2 3 4 5 6 7 000 001 010 011 100 101 110 111 .Sur 2 bits : Décimal Binaire 1 2 3 00 01 10 11 © ESPRIT H.JEDIDI & M.ABDALLAH
41
Le système octal ( base 8 )
8 symboles sont utilisés dans ce système: { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 } Exemple 1 : Exemple 2 : Le nombre (1289) n’existe pas dans la base 8 puisque les symboles 8 et 9 n’appartiennent pas à la base . © ESPRIT H.JEDIDI & M.ABDALLAH
42
Le système hexadécimal ( base 16 )
1 2 3 4 5 6 7 8 9 A 10 B 11 C 12 D 13 E 14 F 15 On utilise seize (16) symboles différents: © ESPRIT H.JEDIDI & M.ABDALLAH
43
Résumé Dans une base X , on utilise X symboles distincts pour représenter les nombres. La valeur de chaque symbole doit être strictement inférieur à la base X. Chaque nombre dans une base X peut être écrit sous sa forme polynomiale . © ESPRIT H.JEDIDI & M.ABDALLAH
44
Conversion d’une base X à la base 10
Cette conversion est assez simple puisque il suffit de faire le développement en polynôme de ce nombre dans la base X , et de faire la somme par la suite. Exemple : © ESPRIT H.JEDIDI & M.ABDALLAH
45
Exercice Effectuer les transformations suivantes à la base 10
(123)6=(?)10 (1100,11)2 =(?)10 (2563)8 =(?)10 (1ABC)16 =(?)10 © ESPRIT H.JEDIDI & M.ABDALLAH
46
Conversion de la base 10 à la base 2
Le principe consiste à faire des divisions successives du nombre sur 2 , et prendre le reste des divisions dans l’ordre inverse. 35 2 17 1 8 4 Exemple 1 : (35)10=(?)2 Après division : on obtient : (35)10=(100011)2 © ESPRIT H.JEDIDI & M.ABDALLAH
47
Conversion de la base 10 à la base 2 : cas d’un nombre réel
Un nombre réel est constitué de deux parties : la partie entière et la partie fractionnelle. La partie entière est transformée en effectuant des divisions successives. La partie fractionnelle est transformée en effectuant des multiplications successives par 2 . Exemple : 35,625=(?)2 P.E= 35 = (100011)2 PF= 0,625 = (?)2 0,625 * 2 = 1,25 0,25 * 2 = 0 ,5 0,5 * 2 = 1 ,0 (0,625)=(0,101)2 Donc 35,625=(100011,101)2 © ESPRIT H.JEDIDI & M.ABDALLAH
48
Exemple 2: (0,6)10=(?)2 0,6 * 2 = 1,2 0,2 * 2 = 0,4 0,4 * 2 = 0,8 0,8 * 2 = 1,6 (0,6)= (0,1001)2 Remarque : Le nombre de bits après la virgule va déterminer la précision . Exercice : Effectuer les transformations suivantes : (23,65)=(? )2 (18,190)=(?)2 © ESPRIT H.JEDIDI & M.ABDALLAH
49
Conversion du décimal à une base X
La conversion se fait en prenant les restes des divisions successives sur la base X dans le sens inverse. Exemple : 35 = (?)3 35 3 11 2 1 35=(1022)3 Question : Effectuer les transformations suivantes : (43)10=(?)2=(?)5 =(?)8 =(?)16 © ESPRIT H.JEDIDI & M.ABDALLAH
50
43 2 21 1 10 5 43 5 8 3 1 (133)5 (101011)2 43 16 2 11 8 5 3 (53)8 43 (2B)16 © ESPRIT H.JEDIDI & M.ABDALLAH
51
Conversion d’une base b1 à une base b2
Il n’existe pas de méthode pour passer d’une base b1 à une autre base b2 directement. L’idée est de convertir le nombre de la base b1 à la base 10 , en suit convertir le résultat de la base 10 à la base b2 . b1 b2 10 Développement en polynôme Divisions successives ? © ESPRIT H.JEDIDI & M.ABDALLAH
52
Exercice : effectuer les transformations suivantes (43)6=(?)5=(?)8
Exemple : ( 34)5=(?)7 19 7 2 5 (19)10=(25)7 ( 34)5=(25)7 Exercice : effectuer les transformations suivantes (43)6=(?)5=(?)8 (2A)16=(?)9 © ESPRIT H.JEDIDI & M.ABDALLAH
53
Conversion : binaire octal
000 001 010 011 100 101 110 111 1 2 3 4 5 6 7 . En octal chaque, symbole de la base s’écrit sur 3 bits en binaire. . L’idée de base est de replacer chaque symbole dans la base octal par sa valeur en binaire sur 3 bits ( faire des éclatement sur 3 bits ). Exemples : (345)8=( )2 (65,76)8=( , )2 (35,34)8=( , )2 Remarque : le remplacement se fait de droit à gauche pour la partie entière et de gauche à droite pour la partie fractionnelle . © ESPRIT H.JEDIDI & M.ABDALLAH
54
Conversion : Octal binaire
. L’idée de base est de faire des regroupements de 3 bits à partir du poids faible. . Par la suite remplacer chaque regroupement par la valeur octal correspondante . Exemple : ( )2=( )2=(31226)8 ( ,10101)2= ( , )2=(624,51)8 Remarque : le regroupement se fait de droit à gauche pour la partie entière et de gauche à droite pour la partie fractionnelle . © ESPRIT H.JEDIDI & M.ABDALLAH
55
Conversion : hexadécimal binaire
1 2 3 4 5 6 7 8 9 A 10 B 11 C 12 D 13 E 14 F 15 . En Hexa chaque symbole de la base s’écrit sur 4 bits. . L’idée de base est de replacer chaque symbole par sa valeur en binaire sur 4 bits ( faire des éclatement sur 4 bits ). Exemple : (345B)16=( )2 (AB3,4F6)16 = ( , ) 2 © ESPRIT H.JEDIDI & M.ABDALLAH
56
Conversion : binaire hexadécimal
. L’idée de base est de faire des regroupements de 4 bits à partir du poids faible. Par la suite remplacer chaque regroupement par la valeur Héxa correspondante . Exemple : ( )2=( )2=(32A6)16 ( ,10101)2= ( , )2=(194,A8)16 © ESPRIT H.JEDIDI & M.ABDALLAH
57
Opérations arithmétiques en binaire
+ 1 1 0 1 1 + 1 1 1 1 1 1 © ESPRIT H.JEDIDI & M.ABDALLAH
58
Opérations arithmétiques en octal
1 1 + 5 8 11 6 En octal 11 s’écrit 13 En octal 8 s’écrit 10 3 Le résultat final : (5036)8 © ESPRIT H.JEDIDI & M.ABDALLAH
59
Opérations arithmétiques en hexadécimal
1 + A 12 18 11 6 C En hexa 11 s’écrit B En hexa 18 s’écrit 12 B 2 Le résultat final : (C2B6)16 © ESPRIT H.JEDIDI & M.ABDALLAH
60
Exercice Effectuer les opérations suivantes et transformer le résultat au décimal à chaque fois: (1101)2+(111)2=(?)2 (43)8+(34)8=(?)8 (AB1)16+(237)8=(?)16 © ESPRIT H.JEDIDI & M.ABDALLAH
61
Représentation des nombres entiers
© ESPRIT H.JEDIDI & M.ABDALLAH
62
1. Représentation des nombres entiers
Il existe deux types d’entiers : les entiers non signés ( positifs ) et les entiers signés ( positifs ou négatifs ) Problème : Comment indiquer à la machine qu’un nombre est négatif ou positif ? Il existe 3 méthodes pour représenter les nombres négatifs : Signe/ valeur absolue Complément à 1( complément restreint ) Complément à 2 ( complément à vrai ) © ESPRIT H.JEDIDI & M.ABDALLAH
63
1.1 Représentation signe / valeur absolue ( S/VA )
Si on travail sur n bits , alors le bit du poids fort est utilisé pour indiquer le signe : 1 : signe négatif 0 : signe positif Les autres bits ( n -1 ) désignent la valeur absolue du nombre. Exemple : Si on travail sur 4 bits. 1 001 0 001 Valeur absolue Valeur absolue Signe Signe 1001 est la représentation de - 1 0001 est la représentation de + 1 © ESPRIT H.JEDIDI & M.ABDALLAH
64
-(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 ) Sur 3 bits on obtient :
valeur VA signe + 0 + 1 + 2 + 3 00 01 10 11 - 0 - 1 - 2 - 3 1 Les valeurs sont comprises entre -3 et +3 -3 ≤ N ≤ +3 - ( 4-1 ) ≤ N ≤ + (4 -1 ) -(22 -1) ≤ N ≤ +(22-1 ) -(2 (3 -1) -1) ≤ N ≤ +(2 (3 -1) -1 ) Si on travail sur n bits , l’intervalle des valeurs qu’on peut représenter en S/VA : -(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 ) © ESPRIT H.JEDIDI & M.ABDALLAH
65
Avantages et inconvénients de la représentation signe/valeur absolue
C’est une représentation assez simple . On remarque que le zéro possède deux représentations +0 et -0 ce qui conduit à des difficultés au niveau des opérations arithmétiques. Pour les opérations arithmétiques il nous faut deux circuits : l’un pour l’addition et le deuxième pour la soustraction . L’idéal est d’utiliser un seul circuit pour faire les deux opérations, puisque a- b =a + ( -b ) © ESPRIT H.JEDIDI & M.ABDALLAH
66
1.2 Représentation en complément à un ( complément restreint )
On appel complément à un d’un nombre N un autre nombre N’ tel que : N+N’=2n-1 n : est le nombre de bits de la représentation du nombre N . Exemple : Soit N=1010 sur 4 bits donc son complément à un de N : N’= (24 - 1)-N N’=(16-1 )-(1010)2= (15 ) - (1010)2 = (1111)2 – (1010)2 = 0101 + © ESPRIT H.JEDIDI & M.ABDALLAH
67
Remarque 1 : Pour trouver le complément à un d’un nombre, il suffit d’inverser tous les bits de ce nombre : si le bit est un 0 mettre à sa place un 1 et si c’est un 1 mettre à sa place un 0 . Exemple : Sur 4 Bits Sur 5 Bits © ESPRIT H.JEDIDI & M.ABDALLAH
68
Remarque 2 Dans cette représentation , le bit du poids fort nous indique le signe ( 0 : positif , 1 : négatif ). Le complément à un du complément à un d’un nombre est égale au nombre lui même . CA1(CA1(N))= N Exemple : Quelle est la valeur décimale représentée par la valeur en complément à 1 sur 6 bits ? Le bit poids fort indique qu'il s'agit d'un nombre négatif. Valeur = - CA1(101010) = - (010101)2= - ( 21)10 © ESPRIT H.JEDIDI & M.ABDALLAH
69
Valeur décimal Valeur en binaire Valeur en CA1 + 0 + 1 + 2 + 3 000 001
Si on travail sur 3 bits : Valeur décimal Valeur en binaire Valeur en CA1 + 0 + 1 + 2 + 3 000 001 010 011 - 3 - 2 - 1 - 0 - 011 - 010 - 001 - 000 100 101 110 111 Dans cette représentation , le bit du poids fort nous indique le signe . On remarque que dans cette représentation le zéro possède aussi une double représentation ( +0 et – 0 ) . © ESPRIT H.JEDIDI & M.ABDALLAH
70
-(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 ) -3 ≤ N ≤ +3
Sur 3 bits on remarque que les valeurs sont comprises entre -3 et +3 -3 ≤ N ≤ +3 - ( 4-1 ) ≤ N ≤ + (4 -1 ) -(22 -1) ≤ N ≤ +(22-1 ) -(2 (3 -1) -1) ≤ N ≤ +(2 (3 -1) -1 ) Si on travail sur n bits , l’intervalle des valeurs qu’on peut représenter en CA1 : -(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 ) © ESPRIT H.JEDIDI & M.ABDALLAH
71
1.3 Complément à 2 ( complément à vrai )
Si on suppose que a est un nombre sur n bits alors : a + 2 n = a modulo 2n et si on prend le résultat sur n bits on va obtenir la même valeur que a . a + 2 n = a Exemple : soit a = 1001 sur 4 bits 24= 10000 + Si on prend le résultat sur 4 bits on trouve la même valeur de a = 1001 © ESPRIT H.JEDIDI & M.ABDALLAH
72
Trouver le complément à vrai de : 01000101 sur 8 bits ?
Exemple Trouver le complément à vrai de : sur 8 bits ? CA2( )= CA1( )+ 1 CA1( )= ( ) CA2( )=( )+ 1 = ( ) Remarque 1 : Pour trouver le compétemment à 2 d’un nombre : il faut parcourir les bits de ce nombre à partir du poids faible et garder tous les bits avant le premier 1 et inverser les autres bits qui viennent après. © ESPRIT H.JEDIDI & M.ABDALLAH
73
Remarque 2 Dans cette représentation , le bit du poids fort nous indique le signe ( 0 : positif , 1 : négatif ). Le complément à deux du complément à deux d’un nombre est égale au nombre lui même . CA2(CA2(N))= N Exemple : Quelle est la valeur décimale représentée par la valeur en complément à deux sur 6 bits ? Le bit poids fort indique qu'il s'agit d'un nombre négatif. Valeur = - CA2(101010) = - ( ) = - (010110)2= - ( 22) © ESPRIT H.JEDIDI & M.ABDALLAH
74
Si on travail sur 3 bits : + 0 + 1 + 2 + 3 000 001 010 011 - 4 - 3 - 2
valeur Valeur en binaire Valeur en CA2 + 0 + 1 + 2 + 3 000 001 010 011 - 4 - 3 - 2 - 1 - 100 - 011 - 010 - 001 100 101 110 111 Dans cette représentation , le bit du poids fort nous indique le signe . On remarque que le zéro n’a pas une double représentation. © ESPRIT H.JEDIDI & M.ABDALLAH
75
-(2 (n -1)) ≤ N ≤ +(2 (n -1) -1 ) -4 ≤ N ≤ +3 - 4 ≤ N ≤ + (4 -1 )
Sur 3 bits on remarque que les valeurs sont comprises entre -4 et +3 -4 ≤ N ≤ +3 - 4 ≤ N ≤ + (4 -1 ) - 22 ≤ N ≤ +(22-1 ) -2 (3 -1) ≤ N ≤ (2 (3 -1) -1 ) Si on travail sur n bits , l’intervalle des valeurs qu’on peut représenter en CA2 : -(2 (n -1)) ≤ N ≤ +(2 (n -1) -1 ) La représentation en complément à deux ( complément à vrai ) est la représentation la plus utilisée pour la représentation des nombres négatifs dans la machine. © ESPRIT H.JEDIDI & M.ABDALLAH
76
Opérations arithmétiques en CA2
Effectuer les opérations suivantes sur 5 Bits , en utilisant la représentation en CA2 + 9 - 4 + 5 + + 9 + 4 + 13 + Report Le résultat est positif (01101)2= ( 13)10 Le résultat est positif (00101)2= ( 5)10 © ESPRIT H.JEDIDI & M.ABDALLAH
77
Le résultat est négatif : Résultat = - CA2 (10011) = -( 01101) = - 13
- 9 + 9 + 0 + + - 9 - 4 - 13 Report Report Le résultat est négatif : Résultat = - CA2 (10011) = -( 01101) = - 13 Le résultat est positif (00000)2= ( 0)10 © ESPRIT H.JEDIDI & M.ABDALLAH
78
Représentation des nombres réels
© ESPRIT H.JEDIDI & M.ABDALLAH
79
2. La représentation des nombres réels
Un nombre réel est constitué de deux parties : la partie entière et la partie fractionnelle ( les deux parties sont séparées par une virgule ) Problème : comment indiquer à la machine la position de la virgule ? Il existe deux méthodes pour représenter les nombre réel : Virgule fixe : la position de la virgule est fixe Virgule flottante : la position de la virgule change ( dynamique ) © ESPRIT H.JEDIDI & M.ABDALLAH
80
2.1 La virgule fixe Dans cette représentation la partie entière est représentée sur n bits et la partie fractionnelle sur p bits , en plus un bit est utilisé pour le signe. Exemple : si n=3 et p=2 on va avoir les valeurs suivantes valeur P.F P.E Signe + 0,0 + 0,25 + 0,5 + 0,75 + 1,0 . 00 01 10 11 .00 000 001 Dans cette représentation les valeurs sont limitées et nous n’avons pas une grande précision © ESPRIT H.JEDIDI & M.ABDALLAH
81
2.2 Représentation en virgule flottante
Chaque nombre réel peut s’écrire de la façon suivante : N= ± M * b e M : mantisse , b : la base , e : l’exposant Exemple : 15,6 = 0,156 * 10+2 - ( 110,101)2 = - (0,110101)2 * 2+3 (0,00101)2= ( 0,101)2 * 2-2 Remarque : on dit que la mantisse est normalisée si le premier chiffre après la virgule est différent de 0 et le premier chiffre avant la virgule est égale à 0. © ESPRIT H.JEDIDI & M.ABDALLAH
82
Pour la représentation de l’exposant on utilise :
Dans cette représentation sur n bits : La mantisse est sous la forme signe/valeur absolue 1 bit pour le signe et k bits pour la valeur. L’exposant ( positif ou négatif ) est représenté sur p bits . Signe mantisse Exposant Mantisse normalisée 1 bit p bits k bits Pour la représentation de l’exposant on utilise : * Le complément à deux * Exposant décalé ou biaisé © ESPRIT H.JEDIDI & M.ABDALLAH
83
Représentation de l’exposant en complément à deux
On veut représenter les nombres ( 0,015)8 et -( 15, 01)8 en virgule flottante sur une machine ayant le format suivant : Signe mantisse Exposant en CA2 Mantisse normalisée 1 bit bits bits (0,015)8=(0, )2= 0,1101 * 2-5 Signe mantisse : positif ( 0) Mantisse normalisé : 0,1101 Exposant = -5 utiliser le complément à deux pour représenter le -5 Sur 4 bits CA2(0101)=1011 1 bit bits bits © ESPRIT H.JEDIDI & M.ABDALLAH
84
Signe mantisse : négatif ( 1) Mantisse normalisée : 0,1101000001
- (15,01)8 = - (001101,000001)2= - 0, * 24 Signe mantisse : négatif ( 1) Mantisse normalisée : 0, Exposant = 4 , en complément à deux il garde la même valeur ( 0100) On remarque que la mantisse est sur 10 bits ( ), et sur la machine seulement 8 bits sont utilisés pour la mantisse. Dans ce cas on va prendre les 8 premiers bits de la mantisse 1 1 bit bits bits Remarque : si la mantisse est sur k bits et si elle est représentée sur la machine sur k’ bits tel que k> k’ , alors la mantisse sera tronquée : on va prendre uniquement k’ bits perdre dans la précision . © ESPRIT H.JEDIDI & M.ABDALLAH
85
L’ Exposant décalé ( biaisé )
en complément à 2, l’intervalle des valeurs qu’on peut représenter sur p bits : - 2 (p -1) ≤ N ≤ 2 (p -1) -1 Si on rajoute la valeur 2 (p -1) à tout les terme de cette inégalité : - 2 (p -1) + 2 (p -1) ≤ N + 2 (p -1) ≤ 2 (p -1) (p -1) 0 ≤ N + 2 (p -1) ≤ 2 p - 1 On pose N’= N + 2 (p -1) donc : 0 ≤ N’ ≤ 2 p -1 Dans ce cas on obtient des valeur positives. La valeur 2p-1 s’appelle le biais ou le décalage © ESPRIT H.JEDIDI & M.ABDALLAH
86
Exposant Biaisé = Exposant réel + Biais
Avec l’exposant biaisé on a transformé les exposants négatifs à des exposants positifs en rajoutons à l’exposant la valeur 2p -1. Exposant Biaisé = Exposant réel + Biais © ESPRIT H.JEDIDI & M.ABDALLAH
87
Exemple On veut représenter les nombres ( 0,015)8 et -( 15, 01)8en virgule flottante sur une machine ayant le format suivant : Signe mantisse Exposant décalé Mantisse normalisée 1 bit bits bits (0,015)8=(0, )2= 0,1101 * 2-5 Signe mantisse : positif ( 0) Mantisse normalisé : 0,1101 Exposant réel = -5 Calculer le biais : b= 24-1 = 8 Exposant Biaisé = = +3 = ( 0011)2 0011 1 bit bits bits © ESPRIT H.JEDIDI & M.ABDALLAH
88
Signe mantisse : négatif ( 1) Mantisse normalisée : 0,1101000001
- (15,01)8=(001101,000001)2= 0, * 24 Signe mantisse : négatif ( 1) Mantisse normalisée : 0, Exposant réel = + 4 Calculer le biais : b= 24-1 = 8 Exposant Biaisé = = +12 = ( 1100)2 1 1100 1 bit bits bits © ESPRIT H.JEDIDI & M.ABDALLAH
89
Fin du premier Chapitre © ESPRIT H.JEDIDI & M.ABDALLAH
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.