Architecture des ordinateurs : Codage binaire et hexadécimal Arithmétique des processeurs (J1IN4001)

Documents pareils
Logiciel de Base. I. Représentation des nombres

Informatique Générale

IFT2880 Organisation des ordinateurs et systèmes

Chapitre 10 Arithmétique réelle

Codage d information. Codage d information : -Définition-

Les opérations binaires

Conversion d un entier. Méthode par soustraction

Représentation des Nombres

Chapitre 1 I:\ Soyez courageux!

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Représentation d un nombre en machine, erreurs d arrondis

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

V- Manipulations de nombres en binaire

Cours Informatique 1. Monsieur SADOUNI Salheddine

Représentation d un entier en base b

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Une version javascript sera disponible directement dans le cours prochainement.

Le codage informatique

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Bases de programmation. Cours 5. Structurer les données

Architecture de l ordinateur

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Système binaire. Algèbre booléenne

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Glossaire des nombres

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

1 Introduction au codage


MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Arithmétique réelle. Introduction à l arithmétique flottante La précision des calculs: analyse et améliorations. Valérie Ménissier-Morain

Rappels Entrées -Sorties

ASR1 TD7 : Un microprocesseur RISC 16 bits

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

La mémoire. Un ordinateur. L'octet. Le bit

TP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?

Microprocesseur + Logiciel

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Jeux de caracte res et encodage (par Michel Michaud 2014)

Plan du cours. Historique du langage Nouveautés de Java 7

Le chiffre est le signe, le nombre est la valeur.

Programmation C. Apprendre à développer des programmes simples dans le langage C

Architecture matérielle des systèmes informatiques

Mathématiques appliquées à l informatique

Le multiplexage. Sommaire

Algorithme. Table des matières

IV- Comment fonctionne un ordinateur?

UE Programmation Impérative Licence 2ème Année

Lecteur de carte à puce LCPM1 SOMMAIRE

Organisation des Ordinateurs

Conservation des documents numériques

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Cours 1 : Qu est-ce que la programmation?

Introduction à l algorithmique et à la programmation (Info 2)

EBS 204 E C B S. Publication : Novembre 96

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

EXERCICES DE REVISIONS MATHEMATIQUES CM2

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Introduction à NetCDF

Structure du format BMP, sa lecture, sa construction et son écriture

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Conventions d écriture et outils de mise au point

Le Langage SQL version Oracle

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

TO4T Technologie des ordinateurs. Séance 1 Introduction aux technologies des ordinateurs

Traitement de texte : Quelques rappels de quelques notions de base

GPA770 Microélectronique appliquée Exercices série A

IFT1215 Introduction aux systèmes informatiques

Introduction à MATLAB R

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155)

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

CODAGE DES SMS. 2 Commandes «AT» 25 3 Matériels utilisés 55 4 Interfacer un téléphone GSM 73 5 Réalisations électroniques 101

Architecture des ordinateurs

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Concevoir son microprocesseur

Unités, mesures et précision

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

I.1- DÉFINITIONS ET NOTIONS DE BASE

Manuel de référence du langage Exemples Les aventures de Docteur R.

Algèbre binaire et Circuits logiques ( )


Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

REALISATION D UNE CALCULATRICE GRACE AU LOGICIEL CROCODILE CLIPS 3.

Initiation au binaire

ET LO GICIEL D UN S YS T EME IN FORMATIQUE

Conception de circuits numériques et architecture des ordinateurs

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

Cours d Informatique

Licence Sciences et Technologies Examen janvier 2010

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Les bases de données Page 1 / 8

Transcription:

Architecture des ordinateurs : Codage binaire et hexadécimal Arithmétique des processeurs (J1IN4001) F. Pellegrini Université de Bordeaux Ce document est copiable et distribuable librement et gratuitement à la condition expresse que son contenu ne soit modifié en aucune façon, et en particulier que le nom de son auteur et de son institution d'origine continuent à y figurer, de même que le présent texte.

Notation positionnelle (1) La notation positionnelle représente un nombre sous la forme d'une séquence de chiffres Chaque chiffre représente le multiple d'une puissance d'un nombre appelé base Les puissances croissent à partir de zéro, de la droite vers la gauche Nous utilisons couramment la base 10, avec les chiffres de «0» à «9» 123 = 1 10 2 + 2 10 1 + 3 10 0 2

Notation positionnelle (2) La notation positionnelle présente de nombreux avantages : Utilise toujours les mêmes chiffres À la différence de l'écriture en chiffres romains : I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000,... Permet d'écrire facilement de très grands nombres 3

Notation binaire La notation binaire utilise la base 2 et les chiffres «0» et «1» 101011 = 1 2 5 + 0 2 4 + 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 Pour lever toute ambiguïté,, on indique parfois la base (en décimal) à la fin d'un nombre 101011 2 101011 10 101011 2 = 43 10 4

Notation hexadécimale (1) La notation binaire est naturelle pour représenter les états de la mémoire d'un ordinateur On groupe les états sous forme de «mots» Mais elle est fastidieuse! Même les nombres les plus courants peuvent être longs à écrire Il faut trouver une notation plus économe en place 5

Notation hexadécimale (2) Il faut trouver une base qui : Se convertisse facilement en une écriture binaire Donc une puissance de 2 Soit plus grande que 2, mais pas trop grande Retenir 32 chiffres ou plus serait plutôt pénible... Permette d'écrire facilement des octets Donc dont le log 2 soit un diviseur de 8 : base 4 ou 16 Choix : base 16, ou «codage hexadécimal» 16 = 2 4, log 2 (16) = 4 = 8 / 2 6

Notation hexadécimale (3) Les chiffres hexadécimaux vont de «0» à «9», puis de «A» à «F» 0 0000 4 0100 8 1000 C 1100 1 0001 5 0101 9 1001 D 1101 2 0010 6 0110 A 1010 E 1110 3 0011 7 0111 B 1011 F 1111 B0A 16 11 16 2 + 0 16 1 + 10 16 0 = 2826 10 Dans de nombreux langages, on préfixe les nombres hexadécimaux par «0x...» ou «0X...» 7

Arithmétique entière (1) Avec n bits, on dispose de 2 n combinaisons possibles, qui permettent de représenter les nombres entiers naturels de 0 à 2 n 1 Les règles classiques de l'addition s'appliquent + 0 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 53 148 201 8

Arithmétique entière (2) Pour représenter des nombres négatifs, on peut transformer le bit de poids le plus fort en bit de signe, pour coder 2 n-1 nombres entiers positifs et 2 n-1 nombres entiers négatifs Lorsque le bit de signe est à 0, on considère que le nombre est positif, et on code les entiers naturels de 0 à 2 n-1 1 Bit de signe 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 127 9

Arithmétique entière (3) Lorsque le bit de signe est à 1, on considère que le nombre est négatif Plusieurs moyens sont envisageables pour coder les entiers négatifs avec les (n-1)( bits restants 10

Arithmétique entière (4) Codage des nombres négatifs au format naturel Même codage des n-1 bits restants que pour les nombres positifs Problèmes : 1 0 0 0 0 0 0 1-1 On a deux zéros (gaspillage d'une configuration) 0 0 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 0-0 Nécessité d'un circuit spécifique pour la soustraction 11

Arithmétique entière (5) Pour éviter les problèmes du codage précédent, il faut un codage des nombres négatifs tel que : Le bit de signe soit à 1 Il n'y ait qu'un seul zéro On puisse utiliser la méthode d'addition standard pour additionner nombres positifs et négatifs 12

Arithmétique entière (6) En particulier, avec les contraintes précédentes, on veut : 0 0 0 0 0 0 0 1 1 + 1....... -1 0 0 0 0 0 0 0 0 0 La seule solution possible est donc : 1 1 1 1 1 1 1 1 qui génère une retenue en sortie («carry»), perdue car elle ne peut pas être stockée -1 13

Arithmétique entière (7) Pour représenter l'opposé d'un nombre entier, on prend son complément bit à bit, auquel on ajoute 1 Cette notation est appelée «complément à deux» Complément bit à bit +1 0 0 0 0 0 1 0 1 5 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1-5 14

Arithmétique entière (8) Ajouter un nombre à son opposé en complément à deux donne toujours zéro car : Ajouter un nombre à son complément bit à bit donne toujours un vecteur constitué uniquement de 1 Ajouter 1 à ce vecteur donne un vecteur constitué uniquement de 0, après perte de la retenue + 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 1 5-5 1 0 0 0 0 0 0 0 0 0 15

Arithmétique entière (9) Ce principe s'étend à toute addition entre entiers signés + 0 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 46-53 -7 16

Arithmétique entière (10) Principales valeurs en complément à deux pour un nombre sur 8 bits 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1-1 0 1 1 1 1 1 1 1 127 1 0 0 0 0 0 0 0-128 Le domaine de validité d'un nombre entier signé sur n bits est donc [-2 n-1,2 n-1-1] 17

Arithmétique entière (11) Les nombres signés sont organisés de façon croissante en deux sous-blocs considérés de façon non signée Par exemple, sur 16 bits : 8000 FFFF 0000 7FFF 18

Arithmétique entière (12) Il y a débordement arithmétique («overflow») lorsque le résultat attendu n'est pas représentable dans le système choisi + 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 110 43-103 (et non 153) 19

Arithmétique flottante (1) Dans de nombreux calculs, il n'est pas possible d'utiliser des nombres entiers, et le domaine des nombres manipulés est très grand Masse de l'électron : 9 10-28 grammes Masse du soleil : 2 10 33 grammes Le domaine dépasse les 10 60 Nécessité de trouver un format adapté pour représenter de tels nombres avec un petit nombre de bits (32 ou 64 en pratique) 20

Arithmétique flottante (2) Comme le domaine à représenter est infini, il faut l'échantillonner de façon représentative On représentera donc un nombre à virgule sous la forme scientifique f : fraction, ou mantisse n = f 10 e e : exposant, sous la forme d'un entier signé 21

Arithmétique flottante (3) Par exemple : 3.14 = 0.314 10 1 = 3.140 10 0 0.00001 = 0.01 10-3 = 1.000 10-5 Le domaine dépend de la taille maximale de l'exposant La précision dépend du nombre maximal de chiffres significatifs de la mantisse 22

Arithmétique flottante (4) Il existe plusieurs représentations possibles du même nombre On privilégie toujours la forme normalisée, telle que le premier chiffre de la mantisse soit significatif, c'est-à-dire différent de zéro Cette forme maximise l'utilisation des chiffres significatifs de la mantisse, et donc la précision f = 0 ou f [1.0 ; 10.0 [ f = 10 0. 10-1 10-2 10-3 10-4 10-5 10-6... 23

Norme IEEE 754 (1) Ce standard définit trois formats de nombres à virgule flottante Simple précision (32 bits) Double précision (64 bits) Précision étendue (80 bits) Utilisé pour stocker les résultats intermédiaires de calculs au sein des coprocesseurs arithmétiques Utilise la base 2 pour les mantisses et le codage par excès pour les exposants f = 2 0 2-1 2-2 2-3 2-4 2-5 2-6....... 24

Norme IEEE 754 (2) Format des nombres Commencent par un bit de signe (0 : positif) Exposants définis par excès (127 pour la simple précision et 1023 pour la double précision) 1 Valeurs minimum (0) et maximum (255 ou 2047) réservées pour des codages spéciaux 8 23 1 11 52 Signe Exposant Mantisse 25

Norme IEEE 754 (3) Une mantisse normalisée est constituée d'un chiffre 1, de la virgule, et du reste de la mantisse Comme le 1 de tête doit toujours être présent, il n'est pas nécessaire de le stocker La pseudo-mantisse de la norme IEEE 754 est donc constituée implicitement d'un 1 et de la virgule, suivis des 23 ou 52 bits effectifs On parle aussi de «significande» Le significande code des valeurs dans [1;2[ 26

Norme IEEE 754 (4) Exemple : représentation en simple précision du nombre 0.75 10 : 0.75 10 = 1.1 2 2-1 Le significande est donc :.1000...0 L'exposant est donc : -1 + 127 = 126 = 01111110 2 Le codage du nombre sur 32 bits est donc : 001111110 10000000000000000000000 3F400000 16 27

Norme IEEE 754 (5) Un des problèmes principaux avec les nombres à virgule flottante est la gestion des erreurs numériques telles que : Débordements («overflow») : le nombre est trop grand pour être représenté Débordements inférieurs («underflow») : le nombre est trop petit pour être représenté Résultat qui n'est pas un nombre («not-a- number», ou NaN), comme par exemple le résultat d'une division par 0 28

Norme IEEE 754 (6) En plus des nombres normalisés classiques, la norme IEEE 754 définit donc quatre autres types numériques : Not-a-number : résultat impossible Infini : infinis positif et négatif, pour le débordement Zéro : zéros positif et négatif, pour le débordement inférieur («underflow») Nombres dénormalisés, pour les valeurs trop petites pour être représentables de façon normalisée 29

Norme IEEE 754 (7) Tableau récapitulatif Simple précision Double précision Taille totale 32 64 Bit de signe 1 1 Bits d'exposant 8 11 Bits de significande 23 52 Domaine décimal 10 à 10 10 à 10 30