Algorithme matériel pour le calcul de la multiplication à précision variable sur circuit FPGA



Documents pareils
IFT2880 Organisation des ordinateurs et systèmes

Représentation des Nombres

Conversion d un entier. Méthode par soustraction

Les opérations binaires

Informatique Générale

Logiciel de Base. I. Représentation des nombres

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

V- Manipulations de nombres en binaire

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

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

Représentation d un entier en base b

Chapitre 10 Arithmétique réelle

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

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

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Quoi de neuf en LabVIEW FPGA 2010?

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

Une version javascript sera disponible directement dans le cours prochainement.

Tout savoir sur le matériel informatique

THÈSE DEVANT L UNIVERSITÉ DE RENNES 1

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

Systèmes et traitement parallèles

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

Architecture de l ordinateur

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

Architecture matérielle des systèmes informatiques

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

Licence Sciences et Technologies Examen janvier 2010

Conception de Systèmes de Communications Numériques

Modélisation de la Reconfiguration Dynamique appliquée à un décodeur LDPC Non Binaire

Rappels d architecture

Cours d initiation à la programmation en C++ Johann Cuenin

Cours Informatique 1. Monsieur SADOUNI Salheddine

DOCUMENT PROTEGE PAR UN DROIT DE COPIE. CPLD ou FPGA Critères de choix. page 1

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

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

Conception et Intégration de Systèmes Critiques

Introduction aux systèmes temps réel. Iulian Ober IRIT

Les systèmes embarqués Introduction. Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon

Conception de circuits numériques et architecture des ordinateurs

IV- Comment fonctionne un ordinateur?

Métriques de performance pour les algorithmes et programmes parallèles

QUESTION 1 {2 points}

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

I- Définitions des signaux.

Electronique Numérique

Architecture des ordinateurs

UE C avancé cours 1: introduction et révisions

Chimie et physique informatiques

Éléments d'architecture des ordinateurs

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

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

ALGORITHMIQUE ET PROGRAMMATION En C

Matériel & Logiciels (Hardware & Software)

De l arithmétique d intervalles à la certification de programmes

Chapitre 1: Introduction générale

Calculateur quantique: factorisation des entiers

ADÉQUATION ALGORITHME-ARCHITECTURE APPLIQUÉE AUX CIRCUITS RECONFIGURABLES

Potentiels de la technologie FPGA dans la conception des systèmes. Avantages des FPGAs pour la conception de systèmes optimisés

Windows Server Chapitre 1: Découvrir Windows Server 2008

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

White Paper - Livre Blanc

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Limitations of the Playstation 3 for High Performance Cluster Computing

I.1- DÉFINITIONS ET NOTIONS DE BASE

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

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Sécurisation du stockage de données sur le Cloud Michel Kheirallah

FRANCAIS ENGLISH DEUTSCH ITALIANO ESPANOL NEDERLANDS PORTUGUESES MANUEL UTILISATEUR USER S GUIDE BENUTZERHANDBUCH GUIDA PER L UTENTE GUIA DEL USUARIO

Quoi de neuf en contrôle/commande et systèmes embarqués (RIO, WSN...)?

Implémentation FPGA d'algorithmes de surveillance de trafic. Projet 11 : Benoît FONTAINE Tristan GROLÉAT Franziska HUBERT

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

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

Architecture des ordinateurs

École Nationale d Ingénieurs de Sfax. Cycle de Formation doctorale dans la discipline Ingénierie des Systèmes Informatiques

Chapitre 2. Classes et objets

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits


Thème 3 Conception et vérification d architectures de systèmes sur puce

CURRICULUM VITAE. Informations Personnelles

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Étude des Corrélations entre Paramètres Statiques et Dynamiques des Convertisseurs Analogique-Numérique en vue d optimiser leur Flot de Test

Calcul scientifique précis et efficace sur le processeur CELL

TAREK OULD BACHIR DÉPARTEMENT DE GÉNIE ÉLECTRIQUE ÉCOLE POLYTECHNIQUE DE MONTRÉAL

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Le Ro le Hyper V Troisie me Partie Haute disponibilite des machines virtuelles

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

Exécution des instructions machine

Architectures d implémentation de Click&DECiDE NSI

Traitement numérique de l'image. Raphaël Isdant

La carte à puce. Jean-Philippe Babau

Transcription:

Algorithme matériel pour le calcul de la multiplication à précision variable sur circuit FPGA N.Anane, H.Bessalah, M.Anane, M.Issad et K.Messaoudi (1) Centre de Développement des Technologies Avancées CDTA Haouch Oukil, BP.17, Baba Hassen, Alger.4 Résumé Un algorithme matériel pour le calcul de la multiplication à précision variable est présenté dans cet article. La méthode de calcul est basée sur l utilisation d un multiplieur parallèle de taille m, pour le calcul de la multiplication de deux nombres de taille n m. Les deux opérandes à multiplier sont représentés en virgule flottante à précision variable, néanmoins dans cet article seulement la mantisse est prise en charge, l exposant est facilement obtenu par addition des exposants des opérandes. Dans cette méthode de calcul de la multiplication, les produits partiels sont cumulés au fur et à mesure qu ils sont calculés, ce qui résulte en l utilisation d une mémoire, pour le stockage des résultats intermédiaires, la plus faible que possible (c.à.d. la taille du résultat est de 2n m). Les circuits FPGA de Xilinx des familles virtex-2 et plus disposent de ressources très intéressantes (telle que les multiplieurs 18 18 bits, les blocs mémoires (SelectRam) et de chemins de retenue (carry chain) pour l accélération de l addition. Ces ressources ont été utilisées, dans l implémentation, avantageusement pour réduire le temps de calcul comparé à une solution qui utilise seulement les CLBs du FPGA. Notre architecture a été taillée sur-mesure pour utiliser ces ressources performantes. L architecture résultante est dédiée au calcul de la multiplication d opérandes de tailles allant de 1 64 bits à 64 64 bits avec un délai de n 2 33 ns. Index Terms Multiplication multi précision, Norme IEEE-754, Multiplication de Karatsuba, Architecture matérielle, Virtex-2 FPGA. II. INTRODUCTION urrant cette dernière décade la vitesse de calcul des Dordinateurs a connu une augmentation spectaculaire. Ceci a été grâce au développement des technologies VLSI qui a permis l'intégration de millions voir de milliards de transistors sur la même puce. Cette quantité importante de transistors a rendu possible le parallélisme et le pipelining d'opérations au niveau matériel pour atteindre les performances actuelles en termes de vitesse de calcul. Néanmoins, les normes qui régissent la précision de ces calculs ne se sont pas développées depuis 1985, date d'apparition de la norme IEEE-754 [1] qui régit le calcul en virgule flottante. La puissance de calcul offerte par les processeurs actuels a fait émerger des applications gourmandes en opérations arithmétiques, cependant un des obstacles majeurs des capacités de calcul actuelles réside dans le manque de certitude sur la fiabilité des résultats, dû à l'accumulation des erreurs d'arrondis et des erreurs d'élimination catastrophique. Dans certaines applications, ces erreurs peuvent avoir des conséquences dramatiques : tel que le cas des logiciels utilisés dans les moyens de transport (avion, train etc.) par les équipes médicales dans le domaine de la radiothérapie (administration des radiations pour les malades cancéreux) ou dans l armée (systèmes de défense etc.). Ceux-ci font partie de la liste, toujours plus longue des applications critiques pour la vie ou la sécurité. Une erreur dans ces applications peut être très coûteuse, comme en témoigne la destruction de la fusée Ariane 5 lors de son premier vol en 1996 [2] ou peut coûter des vies humaines comme le prouve la défaillance de l antimissile Patriote lors de la première guerre du golf en 1991 [3] ou bien l administration d overdose de radiation tel le cas de l institut national oncologique à Panama en 2000 [4]. Ces erreurs sont dues, en grande partie, à la nature discrète de la représentation des nombres en virgule flottante dans la norme IEEE-754, où ces nombres sont représentés sur un nombre fini de bits. Le calcul en précision variable «ou multi précision» [5] permet de varier la précision des calculs selon le problème à résoudre et la précision requise par le résultat. Pour surpasser les limitations numériques des processeurs actuels, plusieurs langages de programmation et de bibliothèques logicielles dédiées [6] ainsi que des coprocesseurs [7] ont été développés pour le calcul en précision variable. Ce type de calcul s'avère très utile dès lors que l'on a des problèmes à résoudre qui ne sont pas très stables numériquement ou dés qu'une grande précision de calcul est requise (c'est-à-dire plus grande que celle disponible sur ordinateur). Néanmoins, ces solutions logicielles s'avèrent lentes et ne répondent pas aux exigences d'une certaine classe d'applications qui nécessitent, en plus de la précision des calculs, un certain niveau de performance. Pour répondre à ces exigences une implémentation matérielle est incontournable. Dans ce travail, nous exploitons les développements récents des circuits FPGA (Field Programmable Gate Array) tels que la reprogrammation et le faible coût de développement pour

implémenter sur un circuit FPGA de la famille Virtex-2 une méthode originale permettant d effectuer rapidement la multiplication multi précision avec des ressources hardwares minimes où la multiplication de deux nombres flottants ayant une taille de 1 à 64 mots s exécute en 33 ns. Seule la mantisse a été traitée car elle représente la partie difficile à manipuler. Notre article est structuré comme suit. La section 2 rappelle la représentation des nombres en virgule flottante à précision variable. La section 3 introduit le principe de la multiplication classique. La section 4 décrit la multiplication de Karatsuba. La section 5 présente le principe d exécution de la multiplication de deux nombres de grande taille. L architecture de notre multiplieur à précision variable est détaillée dans la section 6. La section 7 résume les résultats d implémentation et enfin une conclusion est donnée en section 8. mesure pour éviter de mémoriser inutilement n nombres à (n+1) chiffres. Par contre si l on ne dispose pas de multiplieur de taille n m (pour des opérandes de grande taille), la complexité sera accrue dans la mesure où la multiplication de l opérande par un chiffre ne peut être exécutée en une seule opération. Dans ce cas, les opérandes sont subdivisés en plusieurs mots de taille égale à la taille du multiplieur à «m bits» et la multiplication est réalisée selon le concept schématisé sur la figure 2. III. REPRESENTATION DES NOMBRES EN ARITHMETIQUE VIRGULE FLOTTANTE A PRECISION VARIABLE En arithmétique à précision variable, deux formats de représentation des nombres sont utilisés : la représentation en virgule fixe à précision variable et la représentation en virgule flottante à précision variable. Cette dernière a été retenue pour notre application dans la mesure où, elle permet de représenter plus de nombres et une dynamique plus importante que la représentation en virgule fixe. Ce format est donné par la figure 1. Il se compose d un champ exposant (E), un bit signe (S), un champ type (T), un champ longueur de la mantisse (L) et une mantisse (M) qui comporte L+1 mots (M(0) à M(L)). L exposant est en format complément à 2. Le bit signe est à zéro si le nombre est positif et à un si le nombre est négatif. Le champ type indique si le nombre est infini, nul, ou pas un nombre. Le champ longueur spécifie le nombre de mots à m bits dans la mantisse [8]. Les mots de la mantisse sont stockés à partir du bit le plus significatif M(0) au bit le moins significatif M(L). La mantisse est normalisée entre 1/2 et 1. La valeur d un nombre virgule flottante à précision variable (VP) est donnée par : 16bits 8bits Exposant (E) S T L Mot Mantisse M (0) Mots Mantisse M (1) a M (L-1) Mot Mantisse M (L) mbits IV. MULTIPLICATION CLASSIQUE L algorithme de multiplication le plus simple est celui que nous utilisons lorsque nous faisons les calculs «à la main» : multiplier chaque chiffre d un opérande par chaque chiffre de l autre opérande puis effectuer les décalages adéquats pour enfin additionner le tout. Dans cette méthode dite «manuelle», nous commençons par calculer tous les produits partiels avant de les additionner. Dans la version «informatique», les additions sont effectuées au fur et à Figure 2. Multiplication classique en multi précision de deux nombres de 3 mots à. Dans cette méthode, la taille des opérandes est supposée égale à n chiffres de et le calcul d un produit partiel, qui est la multiplication d un opérande par un chiffre de l autre opérande, nécessite n multiplications de m et (n-1) additions de. D où le nombre d opérations nécessaires pour le calcul de la multiplication de deux opérandes de n m bits est de n 2 multiplications de m et de [n (n-1)+2n] additions de. Néanmoins cette méthode d exécution de la multiplication, qui consiste à calculer les produits partiels et de les stocker dans une mémoire puis faire l addition finale, est très coûteuse en mémoire dans la mesure où tous les produits partiels doivent être stockés dans la mémoire. Pour une multiplication de deux nombres de n n chiffres de, la mémoire nécessaire pour stocker tous les produits partiels est de n 2 (m+1) bits. Pour des nombres qui s'écrivent sur une taille de 512 64 bits, la mémoire nécessaire est de l'ordre de 17 Méga bits. V. MULTIPLICATION DE KARATSUBA L algorithme de Karatsuba est un algorithme récursif introduit par deux mathématiciens russes Karatsuba et Ofman en 1962. Cet algorithme est basé sur une décomposition de chacune des multiplicande et multiplicateur en deux parties : les moins signifiantes A L et B L et les plus signifiants A H et B H et utilise l égalité polynomiale suivante avec 2 m est la base de calcul: (A H.2 m +A L ) (B H.2 m +B L ) = A L B L + [( A H +A L ) (B H + B L )

- A L B L - A H B H )].2 m + (A H B H ).2 2m D où la multiplication de deux nombres de n bits se ramène donc à trois multiplications de n/2 bits, ainsi que quatre additions et deux soustractions de nombres de n/2 bits et quelques décalages. Au lieu de quatre multiplications et trois additions pour la multiplication classique. Il est clair que l algorithme de Karatsuba [9] est basé sur la substitution d une multiplication par trois additions, dans la mesure où, il fait une réduction du nombre de multiplication de un au détriment de trois additions supplémentaires. D où les performances de cet algorithme sont basées sur l écart en performances entre les deux opérateurs (de multiplication et d addition) utilisés pour réaliser cet algorithme. Il a été reporté dans [10] que la complexité algorithmique en terme de temps d exécution d une multiplication de deux nombres de taille n par l algorithme de Karatsuba est de T(n) = O(n log 3 ). Cette dernière est bien inférieure à la complexité de l algorithme classique qui est de T(n) = O(n 2 ). La multiplication de Karatsuba est assez fréquemment implantée dans des logiciels pour le calcul en précision variable. Cet algorithme s avère plus performant par rapport à l algorithme classique quand la taille des opérandes dépasse un certain seuil. Ce seuil est souvent un résultat d une expérimentation et dépend de la nature de la machine utilisée et de la manière dont est programmée cette méthode [11]. Malgré le degré de complexité algorithmique moindre que présente l algorithme de Karatsuba, sa mise en œuvre matérielle est souvent complexe et dépend du type du matériel qui va recevoir l implémentation (ASIC, FPGA, etc.). Pour une implémentation sur circuit FPGA, la multiplication de Karatsuba présente une complexité de routage qui croit avec la taille des opérandes, due aux divisions successives des opérandes pour obtenir des sous mots dont la taille est égale à celle du multiplieur utilisé dans l architecture. Cette complexité de routage est d autant plus importante que le ratio (taille des opérandes sur taille du multiplieur) est grand. VI. LA METHODE PROPOSEE la taille du multiplieur et de la taille des cases mémoires utilisés dans cette méthode. A 0 A 1 -------------- A n-2 A n-1 B 0 B 1 -------------- B n-2 B n-1 R 0 R 1 -------------- R 2n-2 R 2n-1 Figure 3 Découpage des opérandes A, B et du résultat R en mots de Dans la section précédente, nous avons parlé de la complexité de routage engendrée dans l implémentation de la méthode de Karatsuba et de l importance du délai de routage dans l implémentation de fonctions complexes sur circuits FPGAs. Pour diminuer cette complexité de routage qui engendre parfois des délais supérieurs à ceux de la logique, notre méthode est basée sur l accumulation des produits A i B j au fur et à mesure qu ils sont calculés. L algorithme de calcul de la multiplication à précision variable est comme suit : Algorithme Multiplication à précision variable Entrées A, B Sortie R= A B Initialisation R= 0 for j= 0 to n-1 do for i= 0 to n-1 do R(j+i) = LSB de (Aj Bi) + R(j+i) ; R(j+i +1) = MSB de (Aj Bi) + R(j+i +1) ; end for end for Retourner R = (R 0, R 1,., R 2n-1 ) Un exemple de calcul avec la méthode proposée de la multiplication à précision variable pour deux nombres de 3 m bits est montré sur la figure 4. La méthode qu on propose dans cette section est en faite tirée de la méthode classique avec remède à l inconvénient de l utilisation de mémoire de grande taille. Dans cette méthode, on utilise une mémoire de n 2 au lieu de n 2 2m. Cette réduction est d autant plus importante que la taille des opérandes est grande. Un intérêt particulier a été accordé à l adaptation de cette méthode à une implémentation sur circuits FPGA de Xilinx. Ces derniers sont caractérisés par des ressources intéressantes pour l implémentation de la multiplication pour des nombres de grandes tailles. Soit la multiplication R = A B où A = Σ n-1 i=0 A i 2 i m, B = Σ n-1 j=0 B j 2 j m R = Σ 2n-1 k=0 R k 2 k m = (Σ n-1 i=0 A i 2 i m ) (Σ n-1 j=0 B j 2 j m ) = Σ n-1 j=0 (Σ n-1 i=0 (A i B j ) 2 (i+j) m ) Comme montré sur la figure 3, les opérandes A, B ainsi que le résultat R sont découpés en mots de qui correspond à Figure 4. Processus de calcul de la multiplication à

précision variable proposée. VII. ARCHITECTURE L architecture qui implémente la méthode décrite dans la section précédente est montrée sur la figure 5. Dans cette architecture, les opérandes A et B sont rangés au préalable dans deux mémoires MA et MB dans des cases mémoires de. Chacun des mots A i, B j des opérandes A et B est adressé par son poids respectivement i et j, qui représente leurs emplacement dans les mémoires MA et MB. VIII. RESULTATS D IMPLEMENTATION Notre méthode a été implémentée sur un circuit FPGA en utilisant l outil de conception ISE 7.1 de Xilinx. Les différents modules constituants cette architecture ont été générés d une manière optimisée grâce à l outil CORE generator. Pour garantir le fonctionnement correct de notre architecture, elle a été simulée avec ModelSim PE 6.0, puis synthétisé en utilisant l outil XST de Xilinx. Elle a été mappée, et routée dans le circuit XC2v1000-5bg575 de la famille Virtex-2. Les résultats d implémentation de cette architecture sont représentés dans le tableau 1. Le temps d exécution d un cycle est de 33 ns. Elément Taux d occupation % IOB 72/392 21% SRAM 3/48 7 % Slice 2381/7680 11% Mult 18 18 16/40 40% BUFGMUX 11/16 68% DCM 3/8 37% Tableau 1. Taux d occupation de l architecture sur le XC2v1500 Figure 5. Architecture pour le calcul de la multiplication en multi précision A chaque itération le produit A i B j est effectué par le multiplieur parallèle de 64 64 bits, d où l obtention d un résultat sur 128 bits. Les 64 bits moins significatifs (LSB) ont un poids de (i+j) alors que les 64 bits les plus significatifs (MSB) ont un poids de (i+j+1). Le LSB et le MSB du résultat de la multiplication sont cumulés avec les résultats de l itération précédente stockés dans la mémoire résultat MR respectivement aux adresses (i+j) et (i+j+1). Et les résultats de ces deux additions sont mémorisés une autre fois aux mêmes adresses. Ce processus se poursuit jusqu aux dernier produit A n-1 B n-1. IX. CONCLUSION Dans cet article une méthode matérielle pour le calcul de la multiplication à précision variable a été présentée. Celle-ci tire ses avantages de l utilisation de la méthode classique qui présente une complexité de routage faible comparée à la méthode de Karatsuba et l utilisation astucieuse des ressources performantes des circuits FPGAs pour l implémentation d une architecture qui présente un délai de n 2 33 ns (pour la multiplication de deux nombres de n 64 bits). Ce multiplieur convient à une utilisation, comme IP Intellectual Propriety, dans un système embarqué pour des applications nécessitant le calcul multi précision. Les tailles d opérandes supportées par notre architecture vont de 64 bits à 64 64 bits. Néanmoins, ces tailles peuvent être modifiés, selon les besoins de l application, dans la mesure où nous n avons utilisé que 7% des ressources en SRAM (Tableau 1) et que la modification de la taille de la mémoire c.-à-d. n n aura aucune influence ni sur l architecture ni sur ses performances. REFERENCES [1] M.Daumas, F.Dinechin, A, Tisserand, L arithmétique des ordinateurs, <Réseaux et systèmes répartis- Calculateurs parallèles, Volume 13 n 4-5/2001. [2] Douglas N. Arnold, The Explosion of the Ariane 5, http://www.ima.umn.edu/~arnold/disasters/ariane.html, 2000. [3] Douglas N. Arnold, The Patriot Missile Failure, http://www.ima.umn.edu/~arnold/disasters/patriot.html,2000. [4] WISE News Communique Radiological accident in Panama, http://www10.antenna.nl/wise/index.html?http://www10.anten na.nl/wise/549/5278.html, June 2001.

[5] J.-C Bajard. ; L. Imbert; F. Rico, Evaluation rapide des fonctions élémentaires en multi précision, TSI : Technique et Science Informatiques, 2001, Vol. 20, n 2, pp. 267-286 [6] M.Quercia, calcul multi précision, http://pauillac.inria.fr/~quercia/papers/multiprecision.ps.gz. [7] D. M.Smith, Using Multiple Precision Arithmetic, Computing in Science &Engineering IEEE publication, July/august 2003. [8] M. J. Schulte, E. E. Swartzlander Jr. A Family of Variable-Precision Interval Arithmetic Processors IEEE Trans. On Computers Vol. 49, No. 5, May 2000. [9] A. Karatsuba, Ofman Yu, Multiplication of multiple numbers by mean of automata, Dokadly Akad. Nauk SSSR 145, no 2, 1962, pp293-294. [10] Serdar S. Erdem,Çetin K. Koç, A Less Recursive Variant of Karatsuba-Ofman Algorithm for Multiplying Operands of Size a Power of Two, 16 th IEEE Symposium on Computer Arithmetic, 2003. [11] M. Daumas, JM Muller, Qualité des calculs sur ordinateur, vers des primitives plus fiables.edition Masson, Paris 1997, ISBN 2-225-85534-X. [12] Kassem Kalach «Implémentation de la multiplication es grands nombres dans le contexte des algorithmes cryptographiques» Thèse de Master université de Montréal. DAT 2008