Architecture des microcontrôleurs

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Reporting de la Cellule Nationale Droit dOption Situation au 31 décembre 2011.
L’électronique numérique
Additions soustractions
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
ACTIVITES NUMERIQUES Ranger les nombres Trouver le nombre manquant
CHAPITRE 3 Addition, Soustraction et Multiplication
Les numéros 70 –
Les numéros
Les identités remarquables
Le codage de l ’information
Architecture des Ordinateurs
Architecture des Ordinateurs
Les types de codage Le complément à 2 : Nombres entiers
Introduction à la logique
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Données statistiques sur le droit doption au 31/01 8 février 2012.
Technologies et pédagogie actives en FGA. Plan de latelier 1.Introduction 2.Les technologies en éducation 3.iPads 4.TNI 5.Ordinateurs portables 6.Téléphones.
Présentation Unité de codage
Révision (p. 130, texte) Nombres (1-100).
La législation formation, les aides des pouvoirs publics
Le binaire L’historique.
La méthodologie………………………………………………………….. p3 Les résultats
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Jack Jedwab Association détudes canadiennes Le 27 septembre 2008 Sondage post-Olympique.
Partie Informatique Algorithmique Introduction A. LOTFI
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Présentation générale
Les puissances de 10 - Sommaire
Nature, numération, code
Et l'énergie dans tout çà ….
B.Shishedjiev - Informatique
Le codage des nombres en informatique
Formats des nombres réels
Décomposer un nombre en facteurs premiers.
Les nombres.
Les chiffres & les nombres
RACINES CARREES Définition Développer avec la distributivité Produit 1
La statistique descriptive
Identifiez les nombres
Les maths en francais 7ième année.
Les expressions algébriques
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Jean-Marc Léger Président Léger Marketing Léger Marketing Les élections présidentielles américaines.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Les Nombres 0 – 100 en français.
Résoudre une équation du 1er degré à une inconnue
Aire d’une figure par encadrement
Les fondements constitutionnels
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Mise en forme en Mathématiques
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Formation des commissaires sportifs
Certains droits réservés pour plus d’infos, cliquer sur l’icône.
Nom:____________ Prénom: ___________
Informatique, Ordinateur & Programme ...
Codage de l’information
Chapitre 2 : Représentation de l’information dans la machine
Le Système Binaire Introduction Les bases à connaitre Conversions
Codage des nombres réels avec la norme IEEE-754
Annexe Résultats provinciaux comparés à la moyenne canadienne
Chapitre 3 :Algèbre de Boole
Le codage des nombres binaires
La formation des maîtres et la manifestation de la compétence professionnelle à intégrer les technologies de l'information et des communications (TIC)
Chapitre 4 La représentation des nombres.
Chapitre 2 : Représentation de l’information dans la machine Introduction Représentation des nombres négatifs –Signe / valeur absolue –Complément à 1 –Complément.
Transcription de la présentation:

Architecture des microcontrôleurs Chapitre 1: Introduction ABDALLAH Mohamed mohamed.abdallah@isetso.rnu.tn JEDIDI Hassen Hassen.jedidi@esprit.ens.tn © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

Histoire des calculateurs © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 , 1500 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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

Une évolution Taille Nombre Mais pas seulement ….. © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

Loi de MOORE Année 1971 2001 Transistors 2300 42 000 000 Fréq (Khz) 108 2 000 000 Tech (µm) 10,0 0,13 Intel 4004 Intel Pentium 4 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Autres barrières historiques © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Des nouvelles IHM © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Des nouveaux objets et dispositifs communicants Tag RFID Capteurs Robots © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Des nouveaux objets et dispositifs communicants (2) © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Vers la convergence totale Mobilité Multimédia Connectivité © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Microcontrôleur © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 1990 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 2009 H.JEDIDI & M.ABDALLAH

Microcontrôleur(2) © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Circuit intégré © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

Schéma bloc d’un microcontrôleur © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Schéma bloc d’un microcontrôleur Mémoires Ports E/S Contrôle ALU Timer © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

Représentation et traitement des données © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Codage et décodage d’informations © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Les différents types de caractères © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Code ASCII © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Unité de stockage © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 2 3 3 4 5 6 7 Partie fractionnelle Partie entière 345 , 567 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 ( 1 1 0 1)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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

Exercice Effectuer les transformations suivantes à la base 10 (123)6=(?)10 (1100,11)2 =(?)10 (2563)8 =(?)10 (1ABC)16 =(?)10 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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=(011 100 101)2 (65,76)8=(110 101, 111 110)2 (35,34)8=(011 101 , 011 100)2 Remarque : le remplacement se fait de droit à gauche pour la partie entière et de gauche à droite pour la partie fractionnelle . © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 : (11001010010110)2=(011 001 010 010 110)2=(31226)8 (110010100,10101)2= (110 010 100 , 101 010)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 2009 H.JEDIDI & M.ABDALLAH

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=(0011 0100 0101 1011)2 (AB3,4F6)16 = ( 1010 1011 0011 , 0100 1111 0110 ) 2 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 : (11001010100110)2=(0011 0010 1010 0110)2=(32A6)16 (110010100,10101)2= (0001 1001 0100,1010 1000)2=(194,A8)16 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Opérations arithmétiques en binaire + 1 1 0 1 1 1 1 0 0 0 1 1 + 1 0 0 0 1 0 1 1 1 1 1 1 1 1 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Opérations arithmétiques en octal 1 1 4 3 6 5 + 4 5 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 2009 H.JEDIDI & M.ABDALLAH

Opérations arithmétiques en hexadécimal 1 4 8 6 5 + 7 A 5 1 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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

Représentation des nombres entiers © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

-(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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 1 0 1 0 0 1 0 1 + 1 1 1 1 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 101010 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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

-(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 2009 H.JEDIDI & M.ABDALLAH

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 1 0 0 1 1 0 0 0 0 + 1 1 0 0 1 Si on prend le résultat sur 4 bits on trouve la même valeur de a = 1001 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Trouver le complément à vrai de : 01000101 sur 8 bits ? Exemple Trouver le complément à vrai de : 01000101 sur 8 bits ? CA2(01000101)= CA1(01000101)+ 1 CA1(01000101)= (10111010) CA2(01000101)=(10111010)+ 1 = (10111011) 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. 0 1 0 0 0 1 0 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 0 0 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 101010 en complément à deux sur 6 bits ? Le bit poids fort indique qu'il s'agit d'un nombre négatif. Valeur = - CA2(101010) = - (010101 + 1) = - (010110)2= - ( 22) © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

-(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 2009 H.JEDIDI & M.ABDALLAH

Opérations arithmétiques en CA2 Effectuer les opérations suivantes sur 5 Bits , en utilisant la représentation en CA2 + 9 - 4 + 5 0 1 0 0 1 1 1 1 0 0 + 1 0 0 1 0 1 + 9 + 4 + 13 0 1 0 0 1 0 0 1 0 0 + 0 1 1 0 1 Report Le résultat est positif (01101)2= ( 13)10 Le résultat est positif (00101)2= ( 5)10 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Le résultat est négatif : Résultat = - CA2 (10011) = -( 01101) = - 13 1 0 1 1 1 1 1 1 0 0 - 9 + 9 + 0 1 0 1 1 1 0 1 0 0 1 + 1 0 0 0 0 0 + - 9 - 4 - 13 1 1 0 0 1 1 Report Report Le résultat est négatif : Résultat = - CA2 (10011) = -( 01101) = - 13 Le résultat est positif (00000)2= ( 0)10 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Représentation des nombres réels © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 4 bits 8 bits (0,015)8=(0,000001101)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 0 1 1 1 1 0 1 0 0 0 0 1 bit 4 bits 8 bits © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Signe mantisse : négatif ( 1) Mantisse normalisée : 0,1101000001 - (15,01)8 = - (001101,000001)2= - 0,1101000001 * 24 Signe mantisse : négatif ( 1) Mantisse normalisée : 0,1101000001 Exposant = 4 , en complément à deux il garde la même valeur ( 0100) On remarque que la mantisse est sur 10 bits (1101 0000 01), 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 0 1 0 0 1 1 0 1 0 0 0 0 1 bit 4 bits 8 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 2009 H.JEDIDI & M.ABDALLAH

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) - 1 + 2 (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 2009 H.JEDIDI & M.ABDALLAH

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 2009 H.JEDIDI & M.ABDALLAH

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 4 bits 11 bits (0,015)8=(0,000001101)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é = -5 + 8 = +3 = ( 0011)2 0011 1 1 0 1 0 0 0 0 0 0 0 1 bit 4 bits 11 bits © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Signe mantisse : négatif ( 1) Mantisse normalisée : 0,1101000001 - (15,01)8=(001101,000001)2= 0,1101000001 * 24 Signe mantisse : négatif ( 1) Mantisse normalisée : 0,1101000001 Exposant réel = + 4 Calculer le biais : b= 24-1 = 8 Exposant Biaisé = 4 + 8 = +12 = ( 1100)2 1 1100 1 1 0 1 0 0 0 0 0 1 0 1 bit 4 bits 11 bits © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Fin du premier Chapitre © ESPRIT 2009 H.JEDIDI & M.ABDALLAH