Plan. Unités de calcul flottant. L arithmétique chez les Babyloniens. Partie I. Introduction. Partie I. Arnaud Tisserand. Partie II.



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

Cap Maths. Guide de l enseignant. Nouveaux programmes. cycle. Roland CHARNAY Professeur de mathématiques en IUFM

Trouver des sources de capital

La lettre. La Gestion des filiales dans une PME : Bonnes Pratiques et Pièges à éviter. Implantations à l étranger : Alternatives à la création

Progressons vers l internet de demain

Informatique Générale

Voyez la réponse à cette question dans ce chapitre.

Le compte épargne temps

Chapitre 10 Arithmétique réelle

Caractérisation de l interface Si/SiO 2 par mesure C(V)

Représentation des Nombres

TP6 : ALIMENTATION A DECOUPAGE : HACHEUR SERIE ET CONVERTISSEUR STATIQUE ABAISSEUR DE TENSION

Logiciel de Base. I. Représentation des nombres

Ventilation à la demande

Prudence, Epargne et Risques de Soins de Santé Christophe Courbage

EPFL TP n 3 Essai oedomètrique. Moncef Radi Sehaqui Hamza - Nguyen Ha-Phong - Ilias Nafaï Weil Florian

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

BAREME sur 40 points. Informatique - session 2 - Master de psychologie 2006/2007

Projet. Courbe de Taux. Daniel HERLEMONT 1

RETIRER DE L ARGENT DE VOTRE SOCIÉTÉ

Conversion d un entier. Méthode par soustraction

Le paiement de votre parking maintenant par SMS

Dossier. Vtech, leader en France. Lexibook, leader en Europe

IFT2880 Organisation des ordinateurs et systèmes

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Impact de l éolien sur le réseau de transport et la qualité de l énergie

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

COMMUNE DE FELLETIN. P R O C E S V E R B A L D U C O N S E I L M U N I C I P A L Séance ordinaire du jeudi 8 septembre 2011

Licence Sciences et Technologies Examen janvier 2010

Conception de convertisseurs DC/DC à base de MEMS

Table des matières. Introduction. 1

Parcours Hydrologie-Hydrogéologie. Apport des méthodes d infiltrométrie à la compréhension de l hydrodynamique de la zone non-saturée des sols.

V- Manipulations de nombres en binaire

Produire moins, manger mieux!

Édito. Mon Université Numérique. Édito. L Université Numérique Paris Île-de-France Les formations UNPIdF Mobilité

unenfant Avoir en préservant ses droits

Guide de configuration d'une classe

La direction des solidarités Se loger à Moissy

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Édito. Mon Université Numérique. Édito. L Université Numérique Paris Île-de-France Les formations UNPIdF Mobilité

IFT1215 Introduction aux systèmes informatiques

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

Modélisation d une section de poutre fissurée en flexion

Trilax. Données Faits. La spécificité de ce siège tient à la découverte qu il faut trois points d articulation

Introduction aux algorithmes de bandit

Édito. Mon Université Numérique. Édito. L Université Numérique Paris Île-de-France Les formations UNPIdF Mobilité

Sciences et technologies de l information et de la communication

N 320 EDITORIAL INDUSTRIE PLUS LOIN QUE NOS DROITS. PUBLICITE page 8. Adresse du site de la FTM-CGT.

Mon Université Numérique. Édito L Université Numérique Paris Île-de-France Les formations UNPIdF Mobilité

Les opérations binaires

Gestion des services IT Foundation basée sur la norme ISO/CIE 20000

Fiche technique CPU 314SC/DPM (314-6CG13)

MIPOLAM EL. gerflor.fr

Mon Université Numérique. Édito L Université Numérique Paris Île-de-France Les formations UNPIdF Mobilité

ASSURANCE AUTO. conditions générales

Cadeaux d affaires, cadeaux d entreprises, objets publicitaires - services@france-cadeaux.fr

Mon Université Numérique. Édito L Université Numérique Paris Île-de-France Les formations UNPIdF Mobilité

H Le système de bridage. multifonctionnel

Édito. Mon Université Numérique. Édito L Université Numérique Paris Île-de-France Les formations UNPIdF Mobilité

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

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

Architecture matérielle des systèmes informatiques

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

ALGORITHMIQUE ET PROGRAMMATION En C

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Catalogue des FORMATIONS

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

SERVICE PUBLIC DE WALLONIE

Édito. Mon Université Numérique. Édito. L Université Numérique Paris Île-de-France Les formations UNPIdF Mobilité

Chapitre 7. Récurrences


Architecture de l ordinateur

Correction de l examen de la première session

Présentation du langage et premières fonctions

I- Définitions des signaux.

Algorithmique et Programmation, IMA

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

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

IV- Comment fonctionne un ordinateur?

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Quantification Scalaire et Prédictive

Représentation d un entier en base b

Le réseau essentiel pour les RPs et les journalistes

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Chap17 - CORRECTİON DES EXERCİCES

Introduction au langage C

Polynômes à plusieurs variables. Résultant

Organisation des Ordinateurs

Calcul scientifique précis et efficace sur le processeur CELL

Mathématiques financières

Complément d information concernant la fiche de concordance

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

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

Probabilités sur un univers fini

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Cours d Analyse. Fonctions de plusieurs variables

Table des matières. I Mise à niveau 11. Préface

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Transcription:

Plan Unité de calcul flottant Arnaud Tierand LIRMM, CNRS Univ. Montpellier 2 Équipe ARITH ARCHI7, 9 23 mar, 27, Bouen Partie I Introduction Partie II Repréentation flottante Partie III Unité flottante Arithmétique de ordinateur Sytème de numération Repréentation de réel Apect hitorique Norme IEEE-754 Calcul flottant Addition Multiplication (et extenion) Diviion CENTRE NATIONAL DE LA RECHERCHE SCIENTIFIQUE A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 2/44 Partie I Introduction L arithmétique chez le Babylonien Utiliation d un ytème de poition (le premier de l hitoire) en bae 6 avec le chiffre uivant (et la bae auxiliaire ) : 2 3 4 5 6 7 8 9 Arithmétique de ordinateur Sytème de numération Exemple de codage : = 33 6+27 = 27 Repréentation de réel Sytème de poition en bae β ur n chiffre (pour de entier naturel) : x = x n x n 2 x x = n x i β i i= A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 3/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 4/44

Oh, la belle table de multiplication... Illutration de la table de multiplication par 25 trouvée à Sue et datée du II e millénaire av. J.-C (conervée au Muée du Louvre). Remarque : eul le produit par (), 2, 3, 4, 5, 6, 7, 8, 9,,, 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5 ont néceaire ur le 59 poible. Arithmétique de ordinateur Étude et conception de moyen pour effectuer le calcul de bae en machine. unité de calcul matérielle : additionneur/outracteur, multiplieur, divieur,... unité flottante opérateur pécifique (ex : filtre pour traitement du ignal, crypto) upport logiciel pour le calcul de bae : bibliothèque mathématique de bae (libm) bibliothèque de fonction élémentaire (in, co, exp, log,...) bibliothèque multi-préciion bibliothèque d arithmétique d intervalle validation de la qualité numérique : tet et/ou preuve de la préciion de calcul preuve du bon comportement de opération (dépaement,... ) A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 5/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 6/44 Arithmétique de ordinateur Le troi apect fondamentaux de l arithmétique de ordinateur : Sytème de repréentation de nombre : entier, virgule fixe, virgule flottante, redondant, grande bae, ytème logarithmique, ytème modulaire, corp fini... Algorithme de calcul : addition outraction, multiplication, diviion, PGCD, racine carrée, fonction élémentaire (in, co, exp, log...), opérateur compoite (ex : / (x 2 + y 2 )), opérateur pécifique (FIR, DCT, crypto), algorithme numérique, preuve de programme... Maîtrier le implantation : cible logicielle et matérielle, upport arithmétique dan le langage de programmation, validation, tet, optimiation de performance (vitee, mémoire, urface de circuit, temp réel, conommation d énergie)... Arithmétique de ordinateur Exemple de ujet de recherche dan l équipe Arith au LIRMM : étude de propriété de repréentation de nombre et de opération opérateur arithmétique pour le circuit intégré numérique opérateur de cryptographie unité flottante et logarithmique opérateur arithmétique matériel à bae conommation d énergie arithmétique pour le corp fini lien entre la géométrie dicrète et l arithmétique lien entre la phyique et l arithmétique... A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 7/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 8/44

Beoin dan le proceeur/architecture évolué Opérateur arithmétique capable de fonctionner à de haute fréquence Opérateur arithmétique à bae conommation d énergie pour le application embarquée et le appareil portable Prendre en compte le nouvelle contrainte technologique Ajout de nouvelle fonctionnalité de calcul, exemple : FMA (fued multiply and add), opérateur de cryptographie, unité graphique Sujet de recherche actuel ur le opérateur arithmétique matériel : nouvelle fonctionnalité bae conommation d énergie opérateur reconfigurable opérateur pour la cryptographie/ignature... Sytème de numération Critère de claification : propriété de nombre repréenté entier N, Z rationnel Q réel R... propriété du ytème de repréentation poitionnel ou non redondant ou non préciion fixe ou arbitraire complétude (dan un enemble fini)... Un ytème de numération c et (au moin) deux choe : un codage de donnée un enemble de règle d interprétation du codage A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 9/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant /44 Repréentation de entier relatif Il exite différente repréentation poible pour le entier igné : igne et magnitude (valeur abolue) n 2 A = ( a a n 2... a a ) = ( ) a a i 2 i complément à (la bae) deux n 2 A = (a n a n 2... a a ) = a n 2 n + a i 2 i biaiée (ouvent B = 2 n ) A = A math + B... i= i= entier 8 7 6 5 4 3 2 2 3 4 5 6 7 8 Repréentation de entier relatif igne/magnitude repréentation complément 2 biaiée (B=7) A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant /44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 2/44

Repréentation de réel Repréentation en machine ou dan le circuit : virgule fixe virgule flottante ytème logarithmique... Important : du fait de la préciion fixe, on a une approximation de nombre réel. Virgule fixe Dan bon nombre de proceeur DSP, on trouve un upport matériel trè efficace (en vitee et conommation d énergie) pour le calcul ur le réel à l aide de multiple format en virgule fixe (6, 24 ou 32 bit). 23 MSB 6 5 4 3 2 9 8 7 6 5 4 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 4 5 6 7 8 9 2 3 4 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 4 5 6 7 8 9 2 3 4 5 6 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 8Q6 7 6 5 4 3 2 2 3 4 5 6 7 8 9 2 3 4 5 6 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 N6 ou Z6 Q5 Q6 poition de bit 8 LSB Mai la qualité numérique et la portablilité ont moindre qu en IEEE-754 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 3/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 4/44 Virgule flottante Un nombre x et repréenté en virgule flottante de bae β par : on igne x (codage ur un bit : pour x poitif et pour x négatif) on expoant e x, un entier de k chiffre compri entre e min et e max a mantie m x de n + chiffre tel que avec où x i {,,..., β }. x = ( ) x m x β ex m x = x. x x 2 x 3 x n Pour de quetion de préciion, on exige que la mantie oit normaliée, c et-à-dire que on premier chiffre x oit différent de. On a alor m x [, β[. Il faut alor un codage pécial pour le nombre. Sytème logarithmique Un nombre et repréenté par on igne et le logarithme de a valeur abolue écrit en virgule fixe (le nombre doit être repréenté par un codage pécial). Le opération dan ce ytème effectuent en utiliant : log 2 (a b) = log 2 a + log 2 b log 2 (a b) = log 2 a log 2 b log 2 (a ± b) = log 2 a + log 2 ( ± 2 log 2 b log 2 a ) log 2 (a q ) = q log 2 a où le fonction log 2 ( + 2 x ) et log 2 ( 2 x ) ont tabulée ou approchée. Application en traitement du ignal et en contrôle numérique. Il y avait même un projet européen pour concevoir un proceeur avec de unité de calcul 32 bit en ytème logarithmique. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 5/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 6/44

Autre re fe rence Pour en avoir plu... Digital Arithmetic Livre de G. Guitel : Hitoire compare e de nume ration e crite, Flammarion, 975 Milo Ercegovac et Toma Lang Livre de G. Ifrah : Hitoire univerelle de chiffre, Robert Lafond, 23 Morgan Kaufmann ISBN : 5586 798 6 994 Livre collectif : Calcul et arithme tique de ordinateur (Traite IC2), Herme Science, 24 Livre collectif : Qualite de Calcul ur Ordinateur, Maon, 997 Nume ro pe cial collectif de la revue Re eaux et yte me re parti, Arithme tique de ordinateur calculateur paralle le ur l arithme tique de ordinateur, Herme, 2 Jean Michel Muller Document de Jean Vuillemin : Le Langage Nume rique, http://www.di.en.fr/ jv/homepage/pdf/langnum.pdf 989 Maon ISBN : 2 225 8689 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unite de calcul flottant Un ite web ur le boulier : http://www.ee.ryeron.ca:88/ elf/abacu/hitory.html 7/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unite de calcul flottant 8/44 Repre entation virgule flottante Partie II Un nombre x et repre ente en virgule flottante de bae β par : on igne x (codage ur un bit : pour x poitif et pour x ne gatif) Repre entation flottante on expoant ex, un entier de k chiffre compri entre emin et emax a mantie mx de n + chiffre Apect hitorique tel que x = ( )x mx β ex avec Norme IEEE-754 m x = x. x x2 x3 xn ou xi {,,..., β }. Calcul flottant Pour de quetion de pre ciion, on exige que la mantie oit normalie e, c et-a -dire que on premier chiffre x oit diffe rent de. On a alor mx [, β[. Il faut alor un codage pe cial pour le nombre. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unite de calcul flottant 9/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unite de calcul flottant 2/44

Au début était le chao... Le repréentation flottante étaient pendant longtemp trè différente le une de autre elon le contructeur de proceeur. machine β n e min e max Cray 2 48 892 89 2 96 892 89 DEC VAX 2 53 23 23 2 56 27 27 HP 28 et 48G 2 499 499 IBM 39 6 6 64 63 6 4 64 63 6 28 64 63 Problème : il n était pa poible de faire raionnablement de programme et de bibliothèque numérique portable! Autre exemple de problème IBM Sytem/37 en FORTRAN on avait 4 = 2 Sur certaine machine CDC et Cray on avait : x + y y + x.5 x x/2. Avec ça, comment écrire de programme numériquement correct de façon imple? A l époque, le contructeur ne intéreent qu aux format de tockage de donnée et pa beaucoup aux propriété mathématique de unité de calcul... A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 2/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 22/44 Quetion hitoire De quand date le premier ordinateur avec de flottant? Répone : Le Z3 et créé en 94 par Konrad Zue (9 995) à Berlin. Le Z3 : architecture et caractéritique Memory addre 8 (lamp) Output (keyboard) Input Punched Tape Reader data 22 5.33 Hertz Clock generator Control Unit data 22 intr. Floating point Unit 22 reg reg 2 photographie de la verion recontruite en 96 Source : http://www.epemag.com/zue/ A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 23/44 Taille 5 m 2 m.8 m Poid kg Fréquence 5.33 Hz Technologie électrique à relai (num. : 6, mém. : 4) Conommation 4 W A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 24/44

Le Z3 : format de donnée et unité flottante Proceeur Intel 486 : caractéritique Format flottant : bit de igne 7 bit d expoant repréenté en complément à deux expoant à -64 valeur expoant à 63 infini 4 bit de mantie + bit implicite Unité flottante : addition/outraction en 3 cycle (.6 /op) multiplication en 6 cycle (3. /op) diviion en 8 cycle (3.4 /op) racine carrée (temp variable) Autre intruction : lecture clavier, affichage, load, tore. proceeur 32 bit coproceeur arithmétique intégré commercialiation en 989 fréquence : 5, 33 et 25 MHz nombre de tranitor : 2 technologie : CMOS.8 ou. µm urface : 8 mm 2 alimentation : 5 V boitier : 68 PGA pipeline : 5 étage cache L : 8 KB (4w SA, WT) UAL : A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 25/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 26/44 Proceeur Intel 486 : architecture unité entière unité flottante regitre CTRL pile de regitre CTRL UAL ADD MUL RAD bu de donnée A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 27/44 Norme IEEE-754 Aprè de nombreue année de travail, une norme fixe la repréentation de donnée et le comportement de opération de bae en virgule flottante. Cette norme fixe : le format de donnée le valeur péciale le mode d arrondi la préciion de opération de bae le règle de converion En fait, il y a deux norme : ANSI/IEEE Standard for Binary Floating-Point Arithmetic en 985 ANSI/IEEE Standard for Radix-Independent Floating-Point Arithmetic en 987 (où β = 2 ou ) ANSI : American National Standard Intitute, IEEE : Intitute of Electrical and Electronic Engineer A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 28/44

Objectif de la norme IEEE-754 permettre de faire de programme portable rendre le programme déterminite d une machine à une autre conerver de propriété mathématique permettre/impoer l arrondi correct permettre/impoer de converion fiable faciliter la contruction de preuve faciliter la getion de exception faciliter le comparaion (unicité de la repréentation, auf pour ) permettre un upport pour l arithmétique d intervalle IEEE-754 : format de bae En bae β = 2, la normaliation de la mantie implique que le premier bit et toujour un qui n et pa tocké phyiquement, on parle de implicite. nombre de bit format total igne expoant mantie double préciion 64 52 + imple préciion 32 8 23 + double préciion imple préciion 63 56 48 4 32 24 6 8 MSB poition de bit LSB A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 29/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 3/44 IEEE-754 : mantie et fraction La mantie (normaliée) du nombre flottant x et repréentée par n + bit : m x =. x x 2 x 3 x n x n } {{ } f x où le x i ont de bit. La partie fractionnaire de m x et appelée fraction (de n bit) : f x. On a alor : m x = + f x IEEE-754 : expoant L expoant e x et un entier igné de k bit tel que : e min e e max Différente repréentation ont poible : complément à 2, igne et magnitude, biaiée. C et la repréentation biaiée qui et choiie. Ceci permet de faire le comparaion entre flottant dan l ordre lexicographique (auf pour le igne x ) et de repréenter le nombre avec e x = f x =. L expoant tocké phyiquement et l expoant biaié e b tel que : On a aui : m x < 2 e b = e + b où b et le biai. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 3/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 32/44

IEEE-754 : expoant (uite) Le expoant non biaié e min et e max + (repectivement et 2 k en biaié) ont réervé pour zéro, le dénormalié et le valeur péciale. math. taille biai non-biaié biaié format k b e min e max e min e max SP 8 27 (= 2 8 ) 26 27 254 DP 23 (= 2 ) 22 23 246 expoant réervé plage d expoant utiliable expoant réervé 27 26 25 2 2 26 27 28 non biaié IEEE-754 : zéro Le nombre zéro et codé en mettant tou le bit de l expoant et de la fraction à dan le mot machine. Le bit de igne encore libre permet d avoir deux repréentation différente du nombre zéro : et +. Le fait que zéro oit igné et cohérent avec le fait qu il y ait deux infini ditinct. On a alor : + = + et = La norme impoe que le tet = + retourne la valeur vrai. En imple préciion, on a donc : machine 2 25 26 27 28 29 253 254 255 biaié + A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 33/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 34/44 IEEE-754 : valeur péciale Le infini : et + Il ont codé en utiliant le plu grand expoant poible et une fraction nulle. L infini et igné. e = e max + et f x = IEEE-754 : nombre dénormalié L objectif de nombre dénormalié et d uniformier la répartition de nombre repréentable autour de. En effet, le implicite dan la mantie implique qu il n y a pa de nombre repréentable entre et 2 e min alor qu il y en a 2 n entre 2 e min et 2 e min+. Not a Number : NaN Permet de repréenter le réultat d une opération invalide telle que /, ou. NaN et codé en utiliant le plu grand expoant poible et une fraction non-nulle. Le NaN e propagent dan le calcul. e = e max + et f x En imple préciion, on a donc : an avec e min e 2 2 min +.................. dénormalié + NaN (par exemple) Le nombre dénormalié écrivent (avec e b = ) : x = ( ) x (.f x ) 2 e min A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 35/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 36/44

IEEE-754 : mode d arrondi Si a et b ont deux nombre exactement repréentable en machine (ou nombre machine) alor le réultat d une opération r = a b n et, en général, pa repréentable en machine. Il faut arrondir le réultat. Par exemple, en bae β =, le nombre /3 n et pa repréentable avec un nombre fini de chiffre. La norme propoe 4 mode d arrondi : arrondi ver + (ou par excè), noté (x) : retourne le plu petit nombre machine upérieur ou égal au réultat exact x arrondi ver (ou par défaut), noté (x) : retourne le plu grand nombre machine inférieur ou égal au réultat exact x arrondi ver, noté Z(x) : retourne (x) pour le nombre négatif et (x) pour le poitif arrondi au plu prè, noté (x) : retourne le nombre machine le plu proche du réultat exact x (celui dont la mantie e termine par un pour le milieu de nombre machine conécutif, on parle d arrondi pair) A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 37/44 mode d arrondi IEEE-754 : mode d arrondi (uite) nombre machine ver +inf ver inf au plu prè Propriété d arrondi correct : oient a et b deux nombre machine, une de opération (+,,, ) et le mode d arrondi choii (parmi le 4 mode IEEE). Le réultat fourni lor du calcul de (a b) doit être (a th b). Le réultat retourné doit être celui obtenu par un calcul avec une préciion infinie, pui arrondi. On a la même exigence pour la racine-carrée. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 38/44 IEEE-754 : mode d arrondi en C IEEE-754 : mode d arrondi en C (uite) #i n c l u d e < t d i o. h> #i n c l u d e u t i l i e e e. h #i n c l u d e <f e n v. h> / g e t i o n de l e n v i r o n n e m e n t f l o t t a n t / partie entière partie fractionnaire 2 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 2 2 22 23 24 25 26 27... a i n t main ( ) { c f l o a t a, b, up, down ; / a = 2 2ˆ( 23) e t b = 2ˆ( 24) / a.. i g = ; a.. exp = +27; a.. man = (2<<22) ; b.. i g = ; b.. exp = 24+27; b.. man = ; c f l o a t p r i n t ( a, a ) ; c f l o a t p r i n t ( b, b ) ; f e e t r o u n d (FE UPWARD ) ; / p a e en a r r o n d i v e r l e haut / up. f = a. f + b. f ; c f l o a t p r i n t ( ( a+b ) rnd up, up ) ; f e e t r o u n d (FE DOWNWARD) ; / p a e en a r r o n d i v e r l e ba / down. f = a. f + b. f ; c f l o a t p r i n t ( ( a+b ) rnd down, down ) ; r e t u r n ; } réultat exact (a+b) (a+b)... b... ( a+b ) rnd up = 2. e+ ( a+b ) rnd up = 28( ) ( a+b ) rnd up = 28( ). ( a+b ) rnd up = x4 ( a+b ) rnd down =. 999999887974492875 e+ ( a+b ) rnd down = 27( ) 838867 ( a+b ) rnd down = 27( ). ( a+b ) rnd down = x 3 f f f f f f f A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 39/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 4/44

Le converion normaliée ont : flottant ver entier entier ver flottant IEEE-754 : converion flottant ver entier tocké dan un flottant entre flottant de différent format entre format binaire et décimal Propriété de double converion impoée par la norme : binaire x décimal x () binaire x (2) : on retrouve le nombre initial, c et-à-dire x = x (2), i x () a au moin 9 chiffre décimaux pour x en imple préciion (7 en DP) décimal y binaire y (2) décimal y () : on retrouve le nombre initial, c et-à-dire y = y (), i y a au plu 6 chiffre décimaux et que y (2) en imple préciion et converti en y () avec 6 chiffre décimaux (5 en DP) A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 4/44 IEEE-754 : comparaion La norme impoe que l opération de comparaion oit exacte et ne gérèe pa de dépaement de capacité. Le comparaion normaliée ont : égalité upérieur inférieur non-ordonné Lor de ce comparaion le igne de zéro n et pa pri en compte. Dan le ca de comparaion impliquant un NaN, la comparaion retourne faux. Sauf dan le ca de l égalité : i x = NaN alor x = x retourne faux 2 et x x retourne vrai. 2 Ce qui permet de teter i une valeur et un NaN. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 42/44 IEEE-754 : drapeaux ou exception La norme précie qu aucun calcul ne doit entraver le bon fonctionnement de la machine. Un mécanime de drapeaux permet d informer le ytème ur le comportement de opération. La norme prévoit 5 drapeaux : opération invalide : le réultat par défaut et NaN dépaement de capacité ver (overflow) : le réultat et oit ± oit le plu grand nombre repréentable (en valeur abolue) uivant le igne du réultat exact et du mode d arrondi depaement de capacité ver (underflow) : le réultat et oit ± oit un dénormalié diviion par zéro : le réultat et ± réultat inexact : levé lorque que le réultat d une opération n et pa exact Ce drapeaux, une foi levé, le retent pendant tout le calcul juqu à une remie à zéro volontaire (ticky flag). Il peuvent être lu et écrit par l utiliateur. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 43/44 IEEE-754 : dynamique de la repréentation La dynamique d une repréentation et le rapport entre le plu grand nombre et le plu petit nombre repréentable et trictement poitif. en virgule fixe ur n bit, on a : D fixe = 2n en virgule flottante (e ur k bit et m ur n + bit), on a : D flottant = m max 2 emax m min 2 e min = (2 2 n ) 2 2k (2 n ) 2 2k +2 Pour 32 bit on a : D fixe = 4.29 9 et D flottant = 2.43 85. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 44/44

IEEE-754 : autre format format taille totale taille expoant taille mantie imple étendu 32 24 double étendu 64 5 43 double étendu PC 8 5 64 quad (Sun) 28 5 3 Dan le format étendu, il n y a pa de bit implicite pour la mantie, il doit être tocké dan le mot machine. IEEE-754 : réumé expoant fraction valeur normalié e min e e max f ±(.f ) 2 e dénormalié e = e min f > ±(.f ) 2 e min zéro (igné) e = e min f = ± infini e = e max + f = ± Not a Number e = e max + f > NaN format # bit total k n e min e max b imple préciion 32 8 23 26 27 27 double préciion 64 52 22 23 23 valeur imple préciion double préciion + grand normalié > 3.4282347 38.79769334862357 38 + petit normalié >.7549435 38 2.225738585724 38 + grand dénormalié >.754942 38 2.225738585729 38 + petit dénormalié >.429846 45 4.94656458424654 324 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 45/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 46/44 Exemple de repréentation implifiée = = repréentation flottante e= e=2 e=3 (non IEEE) inf +inf igne bit 4 2 8 7 6 5 4 3 2 2 3 4 5 6 7 8 2 4 expoant 3 bit mantie 3 bit. β 2 β β β 2 3 4 5 6 7 8 2 4..625...25. e= 2 e= e=..875....5.25...325...375...4375..25.5.75 2...........5.625.75.875... +inf fraction 2 bit nombre repréentable valeur péciale nombre dénormalié biai = 3 + e= 2 e= e= e= e=2 e=3 réervé Repréentation flottante non-tandard Exemple du proceeur DSP (digital ignal proceor) SHARC 26 d Analog Device où il y a pluieur format flottant non-tandard (et eulement un compatible IEEE-754 imple préciion). 39 MSB 32 24 6 poition de bit 8 LSB imple préciion (,8,23) IEEE préciion étendue (,8,3) IEEE format court (,4,) IEEE A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 47/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 48/44

Référence ur le flottant IEEE-754 Calcul flottant Documentation de W. Kahan (le père de la norme) http://www.c.berkeley.edu/ wkahan/ieee754tatu/ Documentation générale et cript Java pour faire de converion http: //babbage.c.qc.edu/coure/c34/ieee-754reference.html Verion web de l article de D. Goldberg dan ACM Computing Survey http://doc.un.com/ource/86-3568/ncg goldberg.html Documentation du Centre Charle Hermite (Nancy) http://cch.loria.fr/documentation/ieee754/ Calculer avec de flottant demande de faire attention à certain problème potentiellement dangereux... Source principale de problème : approximation du fait de la préciion finie. Regardon quelque exemple. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 49/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 5/44 Suite de J.-M. Muller u = 2 u = 4 u n+ = 3 u n + 3 u nu n u(n) 5 5 5 5 2 n u n programme C n u n programme C 2. 9 2.9358995437622-4. -.7979398232 2 8.5.8982393574288 3 9.378377944287 2.6654479984688 4 7.847469375 3.46363769532 5 7.5434646664453 4.24948279 6 6.858347866823 5.5258789625 7 6.5785794258768 6.762939453 8 6.23555594482422 7. Et pourtant, (u n ) converge théoriquement ver 6! A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 5/44 n Exemple de Shampine et Watt (/2) On cherche la olution de l équation différentielle uivante : { f (x) = (f (x) x 2 ) f () =.2 Réolution numérique par la méthode de Runge-Kutta d ordre 4 (et point) ur un PentiumIV : valeur f (x) prg. C (float) prg. C (double) exacte f ().7524.22.22 f (2) 8.3 4.42 4.42 f (3) -.426e+7 9.667 9.62 f (4) 4.97446e+ -25.367 6.82 f (5) -.9225e+4.45778e+7 26.2 f (6) -7.33462e+9 -.2277e+ 37.22 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 52/44

Exemple de Shampine et Watt (2/2) La olution de { f (x) = (f (x) x 2 ) f () =.2 et f (x) = 5 + 5 x + x 2 Celle de { f (x) = (f (x) x 2 ) f () = c et f (x) = 5 + 5 x + x 2 + (c 5 )ex La olution dépend donc trè fortement de condition initiale. Maple : BUG # 542 Bug préent ur la verion Maple 6., IBM INTEL NT, Jun 9 2 Build ID 7954. entrée réultat Maple valeur théorique /247483648; Error, diviion by zero /247483648 247483648; 247483648 247483648.234;.234 247483648.234 247483648; 247483648 247483648 Caue : problème dan la lecture de nombre entier (integer paring) : petit entier avec un format du proceeur et grand entier avec un format interne, erreur dan le mode de élection du format. Source : http://maple.bug-lit.org/ A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 53/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 54/44 Entrée : Maple : bug de la factorielle (verion 7) >! /!, 2! /!, 2! /!, 3! /!, 3! /! ;,,,, Comportement corrigé : Petit problème numérique : un polynôme rebelle? Avec un petit programme C, calculon de valeur (float) de p(x) ci-deou pour x entre.988 et.2, et traçon la courbe correpondante. p(x) = x 7 7x 6 + 2x 5 35x 4 + 35x 3 2x 2 + 7x 3e 4 2e 4 >! /!, 2! /!, 2! /!, 3! /!, 3! /! ;, 32, 2, 66, 56 Il y a une erreur dan le code de la fonction factorielle de la verion 7 de Maple (il y de correctif poible pour cette verion). p(x) e 4 e 4 2e 4 Source : Maple Uer Group Anwer (http://www-math.math.rwth-aachen.de/mapleanwer/) A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 55/44 3e 4.99.995.5. x A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 56/44

Augmenter la préciion : une tratégie fiable? Exemple de S. Rump : f (a, b) = 333.75b 6 + a 2 (a 2 b 2 b 6 2b 4 2) + 5.5b 8 + a 2b Sur un ordinateur IBM 37, on a : préciion valeur calculée imple.7263 double.72639453 étendue.7263945378 Mai ce réultat trè proche ont totalement faux! La bonne valeur et -.827396599468236846... Petit problème numérique : I n = ni n e (/4) Problème : approcher numériquement I n = x n e x dx pour n = 5. Méthode : utilier la récurrence I n = ni n e avec I = e n programme C valeur exacte.2642477.26424765753568895245 2.662794.6627944278839222384 3.3928943.392894256922854476967 4.8783632386.87836323856249962995493 5.73278.73278983598592592 6.5993362749.599336274873766375599879 7.56559524.5655952494432434878 8.453686875.4536868758899926653 9.44347757.4434775795549593978753.36463345.3646334624727238322656 2-82.768974.835467697256263264475 3-8.96529476e+5.224952957858969533439 4-2.756557975e+3.99388539723753 5 -.27535737e+48.7354767958888639367 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 57/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 58/44 Petit problème numérique : I n = ni n e (2/4) En intégrant par partie I n, on a : I n = x n e x dx = [x n ( e x )] = ( e ) + n = e + ni n nx n ( e x )dx x n e x dx Petit problème numérique : I n = ni n e (3/4) Quetion : pourquoi un tel comportement numérique? Répone : en paant de I n à I n, l erreur numérique (accumulation de erreur de repréentation et de premier calcul) et multipliée par n. L erreur numérique ur l évaluation de I n croit donc comme n!. Rq : 5! = 344932733784362686664768844377645689652 Rappel : f (x)g(x)dx = f (x)g(x) f (x)g (x)dx En tranformant un peu la méthode, on a... A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 59/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 6/44

Petit problème numérique : I n = ni n e (4/4) Récurrence rétrograde : I n = In+ e n en connaiant I p avec p >> n. Gain : en partant de I p, l erreur ur I n era proportionnelle à 5! p!. n I p =.5 I p =. I p = 2345. 6.5 2345 59.446465735.227979969 25.75633 58.6484845.66265387 3.4936273 57.64544866.645695389.665777245 56.656726778.6567345.7622555 55.6686548267.66865493.675383863 54.682977.682973.6863382 53.6938698739.6938698739.6938758 52.7724376.7724376.7724495 5.726544.726544.726547 5.735476796.735476796.735476796 Rappel : valeur exacte.7354767958888639367... Source : J.-M. Muller A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 6/44 Exemple de propriété vraie en machine L addition flottante et la multiplication flottante ont commutative mai pa aociative (dépaement de capacité par exemple). La multiplication flottante n et pa ditributive par rapport à l addition. Si aucun dépaement de capacité ver l infini ou ver zéro ne e produit pendant le calcul, le propriété uivante ont vérifiée avec de nombre flottant et de opération flottante IEEE. x = x = x x = x = x x = x = x 2 x = x x = 2x.5 x = x 2 = x/2 ( x) i x ( ) = A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 62/44 Exemple de propriété vraie en machine (uite) Grâce à la norme IEEE, en l abence de dépaement de capacité (ver + ou ver ) et de diviion par, avec x et y deux nombre machine on a : x x 2 + y 2 même aprè 5 erreur d arrondi. Problème d intégration numérique À l aide de la méthode de rectangle, eayon de calculer 2 dx x (le réultat théorique et ln(2)), et ce pour pluieur nombre de rectangle : préciion abolue du réultat.... en SP e 5 e+6 e+7 e+8 nombre de rectangle A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 63/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 64/44

Préciion et erreur d arrondi A chaque arrondi, il et poible de perdre un peu de préciion, on parle d erreur d arrondi. Même i une opération iolée retourne le meilleur réultat poible (l arrondi du réultat exact), une uite de calcul peut conduire à d importante erreur du fait du cumul de erreur d arrondi. Préciion en nombre de bit jute (p bit = log 2 ( err abolue )) : a =. =.75 a =. =.74846875 a a =. =.9325 p bit = 9 Si a et la valeur exacte, alor a repréente a avec un bit faux (et pa 8). En effet, a a = 2 9, où 2 9 et le poid du dernier bit de a. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 65/44 Phénomène de cancellation (ou élimination) Se produit lor de la outraction de deux nombre trè proche. partie entière réultat exact (a b) partie fractionnaire 2 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 2 2 22 23 24 25 26 27 28 29... renormaliation L opération (a b) et exacte car le opérande ont uppoé exacte. Mai i le opérande ont elle-même de réultat de calcul avec de erreur d arrondi, le ajouté à droite (partie rouge foncé) ont faux. La cancellation et dite catatrophique quand il n y a preque plu de chiffre ignificatif. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 66/44 a b Phénomène d aborption Se produit lor de l addition de deux nombre ayant de ordre de grandeur trè différent où l on peut perdre le plu petit. partie entière réultat exact (a+b) partie fractionnaire 2 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 2 2 22 23 24 25 26 27 28 29...... b... On parle même d aborption catatrophique dan certain ca. Exemple : en imple préciion, avec a = 2 3 et b = 2 3 on a alor : a b = 2 3 et donc (a b) a = a Exemple du phénomène d aborption Calculer numériquement, pour de grande valeur de N, la omme : N i= Réultat d un programme C (flottant SP) ur un proceeur Pentium4 : N ordre N.2985e+.435736e+.54368e+.54368e+ N.295e+.439265e+.66863e+.88792e+ exacte.295e+.439273e+.66953e+.89979e+ En rouge le chiffre faux. Source : J.-M. Muller i A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 67/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 68/44

Le différente ource d erreur De erreur numérique qui cauent de catatrophe problème phyique erreur de meure modèle erreur de modéliation algorithme réolution erreur de méthode programme informatique erreur d arrondi À notre niveau, on peut eulement travailler pour propoer de algorithme numérique avec de plu petite erreur de méthode et de implantation logicielle qui maîtrient mieux le problème d arrondi. En pratique, pour obtenir de bon réultat, il faut concevoir de algorithme en prenant en compte dè le début le erreur d arrondi. Le 25 février 99, à Dharan en Arabie Saoudite, un miile (anti-miile) Patriot américain loupe un miile Scud iraquien. Ceci provoqua la mort de 28 peronne et plu d une centaine de bleé. Perte d une plate-forme pétrolière en mer du nord, au large de la Norvège, le 23 août 99 : coût etimé à 7 M$. En 982 à la boure de Vancouver, le calcul ur un indice nouveau, de valeur initiale., ont tronqué (plutôt qu arrondi). Aprè 22 moi la valeur de l indice calculé et de 52 au lieu de 98.892... Lien web : http://www.ima.umn.edu/ arnold/diater/diater.html http: //ta.twi.tudelft.nl/nw/uer/vuik/wi2/diater.html http://www5.in.tum.de/ huckle/buge.html A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 69/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 7/44 Exploion du vol Ariane 5 Le 4 juin 996, lor de on premier vol, la fuée européenne Ariane 5 exploe 3 econde aprè on décollage cauant la perte de la fuée et de on chargement etimé à 5 M$. Un petit programme rigolo Que fait le programme uivant, dû à Gentleman 3? #include < t d i o. h> i n t main ( ) { f l o a t a =., b =. ; Aprè deux emaine d enquête, un problème et trouvé dan le ytème de référence inertiel. La vitee horizontale de la fuée par rapport au ol était calculée ur de flottant 64 bit. Dan le programme du calculateur de bord, il y avait une converion de cette valeur flottante 64 bit ver un entier igné 6 bit. Malheureuement, rien n était fait pour teter que cette converion était bien poible mathématiquement (an dépaement de capacité)... } while ( ( ( ( a +. ) a ). ) ==. ) a = 2. a ; while ( ( ( ( a + b ) a ) b )!=. ) b = b +. ; p r i n t f ( Gentleman : %f \n, b ) ; return ; A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 7/44 3 W. M. Gentleman, More on algorithm that reveal propertie of floating point arithmetic unit, Communication of the ACM, vol. 7, n. 5, 974. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 72/44

Un petit programme rigolo (uite) Dan le ca de notre repréentation de tet (, 3, 3), on a : a= a=2 a=4 a=8 b= b=2 2 3 4 5 6 7 8 2 4 a b tet effectué.. ((a +.) a). = ((2.) a). = (.). = 2.. ((a +.) a). = ((3.) a). = (.). = 4.. ((a +.) a). = ((5.) a). = (.). = 8.. ((a +.) a). = (( {z} 8. ) a). = (.). =. round(9) 8.. ((a + b) a) b = (( {z} 8. ) a) b = (.) b =. round(9) 8. 2. ((a + b) a) b = ((.) a) b = (2.) b =. Un petit programme rigolo (fin) Le programme de Gentleman retourne la bae utiliée par le unité de calcul flottant du proceeur (2 pour mon PC avec un Pentium IV). Pourquoi? a/2... a 2 a a a+ a+2... a+b a+b β β première boucle : recherche de a repréentable tel que a + ne oit pa repréentable deuxième boucle : recherche de b repréentable tel que a + b oit repréentable le réultat et b = β la bae interne de l unité flottante A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 73/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 74/44 Addition Multiplication (et extenion) Diviion Partie III Unité flottante Addition Décompoition du problème en deux partie : addition de mantie (addition d entier) cellule de bae principaux type d additionneur getion de la virgule technique de bae optimiation exemple de répartition de coût A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 75/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 76/44

Cellule de bae pour l addition La cellule HA En plu de porte logique de bae, nou allon utilier de porte préentant une propriété arithmétique bien utile : le comptage de. Un compteur (m, k) et une cellule, élémentaire ou non, qui compte le nombre de préent ur e m entrée et donne le réultat en numération imple de poition ur k bit en ortie. m i= k a i = j 2 j j= a m a m 2 a a... (m,k)... k a r HA b Réaliation pratique du HA : a b r a b Équation arithmétique : 2r + = a + b Équation logique : = a b r = ab La cellule demi-additionneur (half-adder ou HA) et un compteur (2,2) tandi que la cellule d addition complète (full-adder ou FA) et un compteur (3,2). Ce deux porte ont largement utiliée dan le opérateur arithmétique. r A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 77/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 78/44 a r b FA c La cellule FA a b c r Article ur le FA dan le journaux IEEE Équation arithmétique : 2r + = a + b + c Équation logique : = a b c r = ab + ac + bc Additionneur équentiel C et l additionneur le plu imple. Il et compoé de n cellule FA connectée en érie. 6 a5 b5 a4 b4 a3 b3 a2 b2 a b a b FA r5 r4 r3 r2 r FA FA FA FA 5 4 3 2 Dan la littérature, on le trouve ou le nom de Ripple-Carry Adder (RCA) ou parfoi de Carry-Propagate Adder (CPA) 4. FA r Nombre d article 3 2 Il exite de nombreue réaliation pratique de la cellule FA. délai urface complexité O(n) O(n) 99 992 994 996 998 2 22 Année A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 79/44 4 Attention : CPA peut aui déigner un additionneur non redondant (propage mai ne conerve pa). A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 8/44

Propagation et génération de retenue Autre façon de voir la table de vérité de la cellule FA : a b r remarque c génération c c propagation c c propagation c génération a, b r remarque a = b a c génération a b c c propagation Dan certaine référence bibliographique, on parle d aborption (kill) dan le ca particulier de la génération d une retenue ortante à (a = b = ). p = a b g = ab k = ab = a + b g p k a b Chaîne de retenue dan l additionneur équentiel Du fait de la dépendance linéaire entre le cellule, il y a une grande variabilité du temp de calcul en fonction de la longueur de la plu grande chaîne de propagation de retenue. pire ca en n propagation (ex : + ) meilleur ca en propagation (ex : + ) ca moyen? En 946, A. Burk, H. Goldtine et J. Von Neumann préentent dan preliminary dicuion of the logical deign of an electronic intrument l étude du temp de calcul moyen d un additionneur équentiel. Soit L(n) la longueur moyenne de la plu grande chaîne de propagation de retenue dan un additionneur équentiel de n bit avec une ditribution uniforme et équiprobable de entrée. On a : L(n) log 2 n A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 8/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 82/44 Soutraction En complément à 2 on va faire : A B = A+( B) Pour avoir l oppoé de B : Additionneur à élection de retenue Idée : couper en deux et calculer le bloc de poid fort avec le deux retenue entrante poible et électionner la bonne ortie avec la retenue ortante de poid faible (Carry-Select Adder ou Conditional-Sum Adder). a H b H n 2 B + B = }.{{.. } = 2 n + 2 i = n bit i= B = B + a L b L L poid faible a5 b5 a4 b4 a3 b3 a2 b2 a b a b A/S + FA FA FA FA FA FA n poid fort H 5 4 3 2 Verion récurive délai en O(log n) mai... A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 83/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 84/44

Il y a un petit problème de ortance Additionneur à retenue bondiante a3 b3 a2 b2 a b a b Idée : découper en bloc où chaque bloc permet de détecter rapidement une propagation ur tout le bloc (Carry-Skip Adder). a i:j b i:j FA FA FA FA FA FA FA P P P r j+ r i 4 3 2 La ortance de certain nœud n et pa bornée. On peut ajouter de porte (invereur ou buffer) pour regénérer le ignal mai cela augmente le délai car ce nœud ont ur le chemin critique. Quetion : bloc de même taille? taille optimale de bloc? i:j A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 85/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 86/44 Ca de bloc de même taille Le pire ca d un additionneur de n bit découpé en bloc de k bit e produit lorque l on doit propager du bit juqu au bit n 2 (génération de retenue aux bit et n et propagation au milieu). Soit τ le temp de propagation ur un bit et τ 2 le temp de aut d un bloc de k bit (τ 2 < τ ). T (k) = 2(k )τ + ( n k 2)τ 2 T (k) = 2τ nτ 2 k 2 T (k) = 2nτ 2 k 3 k opt = nτ2 2τ T (k opt ) = O( n) Ca de bloc de taille variable Le problème et compliqué dan le ca général, mai de nombreue olution (heuritique) ont été propoée pour le ca e préentant en pratique. Exemple de olution dan A Simple Strategy for Optimized Deign of One-Level Carry-Skip Adder. M. Alioto et G. Palumbo. IEEE Tran. CaS I, jan. 3. 32 bit 2 3 5 6 5 4 3 2 64 bit 3 6 8 9 7 5 3 2 5 7 9 8 6 4 2 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 87/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 88/44

Additionneur à retenue anticipée Juqu ici on a eayé de propager au plu vite le retenue. On va maintenant eayer de le calculer au plu vite. L étage de rang i reçoit une retenue entrante c i égale à dan le eul ca uivant 5 :. l étage i génère une retenue g i = l étage i propage une retenue générée à l étage i 2 p i = g i 2 = le étage i et i 2 propagent une retenue générée à l étage i 3 p i = p i 2 = g i 3 = le étage de i à propagent la retenue entrante c à p i = p i 2 =... = p = p = c = Additionneur à retenue anticipée On peut donc calculer le retenue avec la relation 6 uivante : c i = g i + p i g i 2 + p i p i 2 g i 3 +... + p i p g + p i p c Le principe de additionneur à retenue anticipée (Carry Look Ahead) conite à évaluer de manière totalement parallèle : le couple (g i, p i ) le retenue c i à l aide de la relation ci-deu le omme i = a i b i c i = p i c i cn a b a b a b a b n n 2 n n 2 PG PG PG PG gn cn pn gn 2 pn 2 g p g p cn 2 calcul de c i c c n n n 2 5 Rappel : p i = a i b i, g i = a ib i et k i = a i + b i. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 89/44 6 qui e démontre par récurrence en utiliant c i = g i + c i p i. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 9/44 Calcul de retenue pour un CLA 4 bit Remarque ur le CLA c = g + p c c 3 = g 2 + p 2g + p 2p g + p 2p p c c 2 = g + p g + p p c c 4 = g 3 + p 3g 2 + p 3p 2g + p 3p 2p g + p 3p 2p p c p3 g3 p2 g2 p g p g c Problème de ortance non bornée. Problème d entrance 7 non bornée pour certaine porte. Additionneur théoriquement en temp contant mai logarithmique en pratique du fait de l ajout de porte upplémentaire pour réoudre le problème d entrance et de ortance. Le CLA à 4 bit ervent ouvent comme petite brique de bae (élémentaire ou pa) pour concevoir de plu gro additionneur (CLA ou autre). c4 c3 c2 c 7 Nombre d entrée limité dan une porte. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 9/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 92/44

Réolution de problème par préfixe parallèle Le n ortie (y n, y n 2,, y ) ont calculée à partir de n entrée (x n, x n 2,, x ) en utiliant un opérateur aociatif avec : y = x y = x x y 2 = x 2 x x. y n = x n x n 2 x x x9 x8 x7 x6 x5 x4 x3 x2 x x Addition par préfixe parallèle Étape : Calcul de génération et propagation de entrée : g i = a i b i et p i = a i b i i =,,..., n Étape 2 : Calcul de retenue c i par préfixe parallèle à m niveaux : (Gi:i, Pi:i) = (g i, p i ) (Gi:k l i:k ) = l (Gi:j, P l i:j ) (G l = (G l i:j + P l i:j G l j:k, Pl j:k ) j:k, Pl i:j P l j:k ) c i+ = G m i: + P m i:c i =,,..., n k j i et l =,..., m Étape 3 : Calcul de omme : i = p i c i i =,,..., n y9 y8 y7 y6 y5 y4 y3 y2 y y A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 93/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 94/44 Quelque additionneur à préfixe parallèle Addition en notation cientifique 5 4 3 2 9 8 7 6 5 4 3 2 2 3 4 5 6 7 5 4 3 2 9 8 7 6 5 4 3 2 2 3 4 5 6 Brent Kung 5 4 3 2 9 8 7 6 5 4 3 2 Format : bae, 4 chiffre de mantie, arrondi au plu proche. Opération :.6 5 + 9.927 4 =? 8 9 2 3 4 5 érie 5 4 3 2 9 8 7 6 5 4 3 2 2 3 4 Sklanky 2 3 4 Kogge Stone 5 4 3 2 9 8 7 6 5 4 3 2 2 3 4 5.9927... poid 4 +.6... poid 5.87... poid 3 =.87... 3 =.9 3 Han Carlon A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 95/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 96/44

Addition flottante Entrée : x = ( ) x m x 2 ex et y = ( ) y m y 2 ey Réultat : r = x y où r = ( ) r m r 2 er Principe : Étape : addition/outraction mantie, calcul expoant m r m x ± m y en fait m r = f (m x, m y, e x, e y, x, y ) e r = max(e x, e y ) Étape 2 : normaliation mantie Étape 3 : arrondi Étape 4 : traitement ca péciaux A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 97/44 Addition/outraction de mantie Étape. : différence de expoant Étape.2 : échange de valeur Étape.3 : alignement de mantie Étape.4 : calcul du type d opération Étape.5 : addition/outraction Étape.6 : correction du igne d = e x e y x y i d < m y = m y 2 d op = + i (, x = y ) ou (, x y ) op = i (, x y ) ou (, x = y ) m r = m x op m y m r = m r i m r < A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 98/44 Principe : Normaliation de la mantie Étape 2. : détection du de poid fort (MSO mot ignificant one) t = LOD(m r ) Étape 2.2 : normaliation (et correction expoant) Il y a 3 ca poible : m r = m r 2 t et e r = e r + t rien à faire (t = ) débordement (t = ) cancellation (t > )......... +... +... -............ LOD : leading one detector A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 99/44 Arrondi Entrée : mantie pa encore dan le bon format (trop de bit) Sortie : mantie dan le bon format m r =. xxxx...xxxx } {{ } xxxx...xxxx } {{ } n bit k bit m r =. xxxx...xxxx } {{ } n bit Solution : utiliation de 3 bit de garde pour arrondir, groo modo on ajoute + à m r uivant gr et le igne de r. { }} { xx } xx...xxxx {{ } k bit gr }{{} 3 bit Ca pécial : l arrondi propage une retenue qui néceite une renormaliation de la mantie. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant /44

Traitement de ca péciaux Schéma fonctionnel e x e y m x m y x y fp op ign addition x F + x F + + NaN NaN NaN y F x + y ou y y x + y + NaN x + x + NaN + x + + x + NaN y F + x + y y y x + y ou + + NaN + NaN + + + + + NaN NaN NaN NaN NaN NaN NaN NaN NaN d opp R SH LOD ign EOP L implantation pratique et imple car c et jute quelque porte logique. R/L SH t ROUND SP pack A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant /44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 2/44 Optimiation Multiplication (et extenion) Séparer le ca impoible imultanément Exemple : Cloe/Far Path, i d > alor pa de cancellation poible Anticiper certaine valeur Exemple : Commencer à calculer t en même temp que l addition/outraction de mantie R/L SH LOD t S: % D: % R/L SH LOP t S:5% D: 7% Décompoition du problème en deux partie : multiplication de mantie getion de la virgule (imple) Spéculer ur le réultat le plu probable (latence variable) Problème : le optimiation entrainent une augmentation ignificative de la urface A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 3/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 4/44

Implantation matérielle du multiplieur par addition décalage Multiplieur ou multiplicateur? Dan Le petit Laroue 23 on trouve : reet clk et A B Reg SP a i SHL MULTIPLIEUR n.m. INFORM. Organe d un calculateur analogique ou numérique permettant d effectuer le produit de deux nombre. Reg P délai urface complexité O(n) O(n) MULTIPLICATEUR n.m. ARITHM. Nombre par lequel on multiplie un autre appelé multiplicande. (Dan 3 foi 4, égal à 4 + 4 + 4, 3 et le multiplicateur.) A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 5/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 6/44 Accélération de la multiplication érie parallèle Idée : utilier de chiffre du multiplicateur dan une bae plu grande. B Recodage de Booth Idée de Booth en 95 : augmenter le nombre de dan le multiplicateur en le recodant avec l enemble de chiffre igné { =,, }. reet clk et A Reg SP a2i SHR 2B 3B Utiliation de l identité : 2 i+k + 2 i+k + 2 i+k 2 + + 2 i = 2 i+k+ 2 i Exemple : le nombre 6 peut écrire =. Cette méthode permet de tranformer le chaîne de par une écriture avec plu de. Reg SP a 2i+ SHL Mai dan certain ca on peut faire apparaître plu de dan la chaîne recodée que dan la chaîne initiale! Exemple : la chaîne e recode par Booth en. P Reg = utiliation du recodage de Booth modifié A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 7/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 8/44

Recodage de Booth modifié Idée : ne pa recoder le iolé mai eulement le chaîne de. a 7 a 6 a 5 a 4 a 3 a 2 a a =a Multiplieur érie parallèle avec recodage modifié de Booth y 7 y 6 y 5 y4 y 3 y 2 y y a i a i a i 2 y i y i ignification opération chaîne de + fin chaîne de +B iolé +B fin chaîne de +2B début chaîne de 2B iolé B début chaîne de B milieu chaîne de + reet clk et A Reg SP pécial Recodage B B 2B add/ou Reg P SHR SHL Avantage : faire un produit de 2 nombre de n bit en n/2 + addition décalage au plu. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 9/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant /44 Multiplieur cellulaire de Braun Multiplieur arborecent a i r b j a3 a i b j a FA b j a i b c FA a2 a FA FA FA FA FA FA FA FA FA a FA b3 b2 b b p7 p6 p5 p4 p3 p2 p p Temp de calcul en O(n). A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant /44 FA. Génération parallèle de produit partiel a i b j avec ou an recodage de Booth temp en O() (ortance a i,b j O(log n)) 2. Calcul de la omme en carry-ave de produit partiel à l aide d un arbre de réduction temp en O(log n) 3. Addition finale de 2 vecteur de bit de la omme carry-ave avec un additionneur rapide temp en O(log n) A 2 n bit 4n bit 2n bit génération réduction P B n bit On a donc une tructure permettant la multiplication en un temp de l ordre de O(log n). n bit a i b j P (carry ave) A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 2/44

Génération de produit partiel Génération de produit partiel : Booth 2 Dan le produit P = A B où A et B ont de entier de n bit, la génération de produit partiel néceite n 2 cellule AND (ou n 2 2n 2 AND et 2n 2 NAND dan le ca d entrée en complément à deux). Tou le produit partiel a i b j peuvent être obtenu en même temp modulo le problème de ortance ur le entrée a i et b j. LSB multiplicateur MSB On peut utilier un recodage de Booth modifié pour diminuer le nombre de produit partiel. Le olution le plu courante en terme de recodage de Booth modifié dan le multiplieur arborecent ont : Booth 2 : recodage de a i en bae 4 avec l enemble de chiffre {, ±, ±2}. Booth 3 : recodage de a i en bae 8 avec l enemble de chiffre {, ±, ±2, ±3, ±4}. MSB multiplicande LSB A 2A LSB MSB multiplicateur produit partiel A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 3/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 4/44 Génération de produit partiel : Booth 3 LSB Gain du recodage de Booth Ca du recodage de Booth 2 : b j+2 3b j+ b j b j A 2A 3A 4A LSB MSB multiplicateur multiplicateur MSB Vitee : le gain d un étage ou deux ur l arbre de réduction de produit partiel et plu ou moin compené par l étage de recodage et génération de produit partiel beaucoup plu complexe. Surface : véritable gain (3 %) car on utilie le cellule de recodage pour régénérer le ignal pour éviter le problème de ortance (choe qu il faut faire an le recodage avec de buffer upplémentaire) et le cellule de génération e réalient bien en CMOS. Ca du recodage de Booth 3 : Rarement utilié en pratique car le étage de génération de produit partiel deviennent beaucoup trop complexe (nombreue porte et dont certaine avec 3 ou 4 entrée). A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 5/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 6/44

Arbre de réduction de produit partiel Il faut maintenant calculer la omme carry-ave de n/2 + produit partiel. Pour cela, différent type d arbre de réduction ont poible : Arbre de Wallace Le arbre de Wallace 8 ont de compteur à p entrée ( log 2 p ortie). Un arbre de Wallace à 2 p+ e contruit facilement à partir d arbre de Wallace à 2 p entrée (un arbre de Wallace à 3 entrée et une cellule FA). W 3 = FA a H a L W 3 b H b L À bae de cellule FA : arbre de Wallace arbre de Dadda algorithme de réduction rapide W 5 i i i i i W 3 i+ i a H b H b L a H b H a L b L a L W 3 À bae de cellule 4 donne 2 W 3 i+ i b L a H À bae de grand compteur W 3 i+2 i+ a H b H b H a L b L a L W 3 W 5 W7 W 5 W 3 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 7/44 8 C.S. Wallace. A uggetion for a fat multiplier. IEEE Tranaction on Computer, février 964. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 8/44 Arbre de Dadda Idée : faire le minimum de réduction à chaque étape pour gagner un niveau dan la uite n(h) = 3n(h )/2 et n() = 2. Dadda h 2 3 4 5 6 7 8 9 n(h) 3 4 6 9 3 9 28 42 63 94 4 Standard 8 FA + 4 HA + ADD(8) 9 FA + 3 HA + ADD(8) Gain en urface pour le grand multiplieur. Exemple : n = 2 bit % de porte en moin qu avec un arbre de Wallace. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 9/44 Algorithme pour la génération automatique d arbre de réduction optimié Il exite de généraliation et amélioration de la méthode de Dadda pour différent type de compteur et utiliant de modèle de délai complexe (ex : bit de retenue plu rapide que ceux de omme). Par exemple, la méthode TDM 9 permet de gagner juqu a 3% en vitee et 5% en urface par rapport à une olution utiliant un arbre de cellule 4 donne 2. La génération automatique de multiplieur et un problème trè compliqué et fait intervenir différent apect (ouvent antagonite) : vitee, urface, régularité topologique, conommation d énergie, beoin en cellule péciale... 9 V. Oklobdzija, D. Villeger et S. Liu. A method for peed optimized partial product reduction and generation of fat parallel multiplier uing an algorithmic approach.ieee Tranaction on Computer, mar 996. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 2/44

Problème topologique au niveau cellule Quelle et la topologie la plu efficace et la plu imple à gérer? Addition finale pour multiplieur L addition finale dan un multiplieur arborecent (aimilation de retenue) peut e faire avec un additionneur rapide. Mai de petite optimiation ont poible en utiliant le temp d arrivée relatif de bit de la omme carry-ave aprè réduction (adaptation du type d additionneur uivant le région). 4 ZM OS 4to2 Délai de réduction [d(xor)] 2 8 6 4 région 3 CeA région 2 CLA région RCA Réduction de 4 bit (an mentionner le retenue latérale). 2 4 96 88 8 72 64 56 48 4 32 24 6 8 Poition [rang] A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 2/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 22/44 Entrée : Réultat : Multiplication flottante x = ( ) x m x 2 ex et y = ( ) y m y 2 ey r = x y où r = ( ) r m r 2 er Principe : Étape : multiplication mantie, calcul expoant Étape 2 : normaliation mantie m r = m x m y e r = e x + e y [, 2] [, 2] = [, 4] Multiplication-addition fuionnée (FMA) Le FMA (pour fued multiply and add) exite depui de nombreue année dan le DSP et arrive de plu en plu dan le proceeur généralite. Cette opération effectue le calcul uivant en une eule intruction (au lieu de 2 an unité FMA). r = (a + b c) Pour le moment le comportement de cette opération n et pa normalié en IEEE-754. En pratique le proceeur généralite qui poède une unité FMA retournent le meilleur réultat poible : l arrondi du réultat théorique (arrondi correct de (a + b c)) en effectuant un eul arrondi. Exemple d utiliation : évaluation de polynôme p(x) = p + (p + (p 2 + (p 3 + p 4 x) x) x) x Étape 3 : arrondi (proche addition) Étape 4 : traitement ca péciaux A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 23/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 24/44

Diviion Diviion retaurante x Décompoition du problème en deux partie : diviion de mantie getion de la virgule (aez imple) f o r i from to n do 2 x 2x 3 x x d 4 i f x then 5 q i 6 e l e 7 q i 8 x x + d clk init d b MSB SHR a a b Reg Le caractère retaurant de cet algorithme vient de l annulation de l effet de la ligne 3 par la ligne 8 dan certain ca. q i A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 25/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 26/44 Diagramme de Roberton de la diviion retaurante x (i+) x = d = x (i+) d x () = q = q j+ = q j+ = x () = q = x (2) = q2 = f o r i from to n do 2 x 2x 3 i f x then 4 x x d 5 q i 6 e l e 7 x x + d 8 q i Diviion non retaurante q i conv MSB clk init d x Reg SHR d x (i) x (3) x () x (2) x () x (i) x (3) = q3 = 3 8 =.375 q j+ = d d d x (i+) q j+ = d x (i) La converion de {, } ver {, } peut e faire à la volée (MSDF) avec un petit opérateur. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 27/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 28/44

Comment aller plu vite? Idée : faire de itération avec de q i dan une bae plu grande. Problème : faire de comparaion précie avec pluieur multiple du divieur. x (i+) 2 2 x (i) d x (i+) zone de choix difficile 2 3 d Solution : utilier une repréentation redondante pour le quotient. faire de comparaion approchée x (i) Diviion SRT La méthode SRT propoée par Sweeney, Roberton et Tocher en 958 et baée ur : une repréentation redondante de chiffre du quotient en bae β (pour implifier le choix de q i ). une repréentation redondante de rete partiel (pour accélérer la outraction, en borrow-ave par exemple). une table permettant de déduire q i+ à partir de quelque bit de poid fort de d et de x (i) (aprè converion en non-redondant). d trunc(d, k d, MSB) 2 f o r i from to n/ log 2 β do 3 x (i) trunc(x (i), k x, MSB) 4 q i+ T(d, conv(x (i) )) 5 x (i+) βx (i) q i+ d zone à choix multiple A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 29/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 3/44 Architecture générale d un divieur SRT Table pour un divieur SRT x 2n x n Diagramme rete-divieur : init bae β = 4. SHR MSB MSB k x k d T d n q i { 2,,,, 2} entrée : d ur 3 bit x ur 5 bit... zone impoible 2 q i k 8d/3. clk 2n Reg n 2n conv Remarque : Le diagramme et ymétrique par rapport à l axe d. 5d/3 4d/3 2d/3 d/3....... d 2n A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 3/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 32/44

Extenion à la racine carrée Méthode de Newton On peut calculer de racine carrée avec un algorithme à addition-décalage proche de celui pour la divion. Exemple : on cherche r = c avec x () = c et On cherche une racine de l équation f (x) = (où f et uppoée continument dérivable) en utiliant la uite (x i ) définie par : f o r i from to n/ log 2 β do 2 x (i) trunc(x (i), k x, MSB) 3 r (i) trunc(r (i), k r, MSB) 4 r i+ T(conv(r (i) ), conv(x (i) )) 5 r (i+) r (i) + r i+ β i 6 x (i+) βx (i) 2r (i) r i+ r 2 i+ β i x i+ = x i f (x i) f (x i ) Si x et uffiament proche d une racine imple α de f, alor la uite (x i ) converge quadratiquement ver α (le nombre de chiffre ignificatif double à chaque étape). f(x ) i x i+ x i f (x) = x 2 2 2 i 2 3 4 x i 3 2.66666667 2.64256 2.24 2. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 33/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 34/44 Méthode de Newton pour la diviion Pour trouver le quotient q = a/d on va procéder en 2 étape :. calcul de t = /d à l aide de la fonction f (x) = x d. On doit donc calculer l itération uivante : x i+ = x i x i d x i 2 = x i + x i dx i 2 = x i (2 x i 2 ) Le coût de chaque itération et de 2 multiplication et addition. La valeur x et obtenue par une lecture dan une petite table. 2. calcul de q = t a Exemple de l Itanium Utiliation du multiplieur accumulateur flottant ur de regitre de 82 bit. Initialiation de la méthode de Newton par une lecture de table qui donne une approximation de /d à 8.886 bit prè. Exemple d algorithme pour la imple préciion (mantie de 23 bit) : y T(d) 2 q (a y ) rn 3 e ( b y ) rn 4 q (q + e q ) rn 5 e (e e ) rn 6 q 2 (q + e q ) rn 7 e 2 (e e ) rn 8 q 3 (q 2 + e 2 q 2 ) rn 9 q 3 round(q 3) A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 35/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 36/44

Méthode de Newton pour la racine carrée Entrée : Diviion flottante Première idée : utilier Newton avec f (x) = x 2 c, on a alor : x i+ = x i x i 2 c = x i x i 2x i 2 + c = (x i + c ) 2x i 2 x i Seconde idée : utilier Newton avec la fonction f (x) = c qui a pour x 2 olution c (enuite on multiplie par c pour avoir c). x i+ = x i x 2 c 2 x i 3 = x i + x i cx 3 i 2 = x ( ) i 3 cxi 2 2 Chaque itération fait intervenir 3 multiplication et une addition. Réultat : x = ( ) x m x 2 ex et y = ( ) y m y 2 ey q = x y où q = ( ) q m q 2 eq Principe : Étape : diviion mantie, calcul expoant Étape 2 : normaliation mantie m q = m x /m y e q = e x e y [, 2]/[, 2] = [/2, 2] Étape 3 : arrondi (proche addition) Étape 4 : traitement ca péciaux A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 37/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 38/44 Mai... La diviion, une opération peu utiliée? Oui, mai... Rapport technique de S. Oberman et M. Flynn : Deign iue in floating-point diviion, CSL-TR-94-647 Stanford Univerity. L arrondi et plu ou moin complexe/coûteux uivant l algorithme utilié pour la diviion de mantie. Algorithme SRT : production du rete = bit de garde = arrondi imple Algorithme à la Newton : pa d info ur le igne du rete = faire x q y (au moin partiellement) pour avoir le igne du rete Temp d utiliation [%] 5 4 3 2 Ditribution de intruction et du temp de calcul de unité flottante 4% 42% 36% 24% 8% 3% % 7% 3% 2% % 3% div mul add ub ab mov cvtd neg cvtw / + * 5 4 3 2 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 39/44 intruction unité SPECfp92 ur DECtation avec un MIPS R3 (latence : 2c add, 5c mul, 9c div), compil. O3. A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 4/44

Pour en avoir plu... Binary Adder Architecture for Cell-Baed VLSI and their Synthei Un uper ite web... http://tima-cmp.imag.fr/~guyot/cour/oparithm/francai/op_ar2.htm (recherche google ur Alain Guyot op art ) Reto Zimmermann 998 Hartung Gorre ISBN : 3 89649 289 6 Advanced Computer Arithmetic Deign Micheal Flynn et Stuart Obermann 2 Wiley Intercience ISBN : 47 429 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 4/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 42/44 Évolution de l arithmétique flottante Réviion de la norme IEEE-754 Unité en quadruple préciion (28 bit) Repréentation décimale Primitive plu complexe Unité reconfigurable... Contact: Fin, de quetion? mailto:arnaud.tierand@lirmm.fr http://www.lirmm.fr/ tieran Equipe/projet Arith Laboratoire LIRMM, CNRS Univ. Montpellier 2 6 rue Ada. F-34392 Montpellier cedex 5. France Join u for ARITH8 Pari http://www.lirmm.fr/arith8 8 th IEEE Sympoium on Computer Arithmetic Montpellier, France, June 25-27, 27 Merci Monptellier Submiion deadline October 5th, 26 Acceptance notification February 27 Final verion deadline March 27 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 43/44 A. Tierand LIRMM, CNRS-UM2 ARCHI7 Unité de calcul flottant 44/44