Algorithme matériel pour le calcul de la multiplication à précision variable sur circuit FPGA
|
|
- Paule Delisle
- il y a 8 ans
- Total affichages :
Transcription
1 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 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 à 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
2 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 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 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 )
3 - 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 A n-2 A n-1 B 0 B B n-2 B n-1 R 0 R 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 à
4 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/ % Mult /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 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 à 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, [3] Douglas N. Arnold, The Patriot Missile Failure, [4] WISE News Communique Radiological accident in Panama, na.nl/wise/549/5278.html, June 2001.
5 [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 [6] M.Quercia, calcul multi précision, [7] D. M.Smith, Using Multiple Precision Arithmetic, Computing in Science &Engineering IEEE publication, July/august [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 [9] A. Karatsuba, Ofman Yu, Multiplication of multiple numbers by mean of automata, Dokadly Akad. Nauk SSSR 145, no 2, 1962, pp [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, [11] M. Daumas, JM Muller, Qualité des calculs sur ordinateur, vers des primitives plus fiables.edition Masson, Paris 1997, ISBN 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
IFT2880 Organisation des ordinateurs et systèmes
Représentation des nombres flottants Notation exponentielle Représentations équivalentes dans la base 10 de 1,234 1 2 3, 4 0 0. 0 x 1 0-2 1 2, 3 4 0. 0 x 1 0-1 1, 2 3 4. 0 x 1 0 1 2 3. 4 x 1 0 1 2. 3 4
Plus en détailReprésentation des Nombres
Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...
Plus en détailConversion d un entier. Méthode par soustraction
Conversion entre bases Pour passer d un nombre en base b à un nombre en base 10, on utilise l écriture polynomiale décrite précédemment. Pour passer d un nombre en base 10 à un nombre en base b, on peut
Plus en détailLes opérations binaires
Les opérations binaires Compétences associées A2 : Analyser et interpréter une information numérique Objectifs Etre capable: - De coder les nombres entiers en code complément à 2. - De résoudre les opérations
Plus en détailInformatique Générale
Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html
Plus en détailLogiciel de Base. I. Représentation des nombres
Logiciel de Base (A1-06/07) Léon Mugwaneza ESIL/Dépt. Informatique (bureau A118) mugwaneza@univmed.fr I. Représentation des nombres Codage et représentation de l'information Information externe formats
Plus en détailReprésentation d un nombre en machine, erreurs d arrondis
Chapitre Représentation d un nombre en machine, erreurs d arrondis Ce chapitre est une introduction à la représentation des nombres en machine et aux erreurs d arrondis, basé sur [], [].. Un exemple :
Plus en détailV- Manipulations de nombres en binaire
1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,
Plus en détailArithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot
Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,
Plus en détailCodage d information. Codage d information : -Définition-
Introduction Plan Systèmes de numération et Représentation des nombres Systèmes de numération Système de numération décimale Représentation dans une base b Représentation binaire, Octale et Hexadécimale
Plus en détailReprésentation d un entier en base b
Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir
Plus en détailChapitre 10 Arithmétique réelle
Chapitre 10 Arithmétique réelle Jean Privat Université du Québec à Montréal INF2170 Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 10 Arithmétique réelle INF2170 Automne 2013
Plus en détailArithmétique réelle. Introduction à l arithmétique flottante La précision des calculs: analyse et améliorations. Valérie Ménissier-Morain
Arithmétique réelle Introduction à l arithmétique flottante La précision des calculs: analyse et améliorations Valérie Ménissier-Morain Université Pierre et Marie Curie - Paris 6 LIP6 - Département CALSCI
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailHiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique
Architecture d ordinateur : introduction Dimitri Galayko Introduction à l informatique, cours 1 partie 2 Septembre 2014 Association d interrupteurs: fonctions arithmétiques élémentaires Elément «NON» Elément
Plus en détailQuoi de neuf en LabVIEW FPGA 2010?
Quoi de neuf en LabVIEW FPGA 2010? Yannick DEGLA Ingénieur d Application Fonctionnalités de LabVIEW FPGA 2010 Nœud d intégration d IP - Importer directement des fichiers.xco de Xilinx ou vos propres VHDL
Plus en détailDU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION
145 NOTION DE PROGRAMMATION 1/ Complétons notre microprocesseur Nous avons, dans les leçons précédentes décrit un microprocesseur théorique, cependant il s inspire du 6800, premier microprocesseur conçu
Plus en détailUne version javascript sera disponible directement dans le cours prochainement.
Author : Cédric Vanconingsloo Ce cours est principalement axé sur la compréhension du fonctionnement d'un ordinateur et l'étude du seul langage qu'il connaisse, le binaire. De ce fait, le cours est relativement
Plus en détailTout savoir sur le matériel informatique
Tout savoir sur le matériel informatique Thème de l exposé : Les Processeurs Date : 05 Novembre 2010 Orateurs : Hugo VIAL-JAIME Jérémy RAMBAUD Sommaire : 1. Introduction... 3 2. Historique... 4 3. Relation
Plus en détailTHÈSE DEVANT L UNIVERSITÉ DE RENNES 1
N d ordre : 3881 THÈSE présentée DEVANT L UNIVERSITÉ DE RENNES 1 pour obtenir le grade de : DOCTEUR DE L UNIVERSITÉ DE RENNES 1 Mention : Traitement du Signal et Télécommunications par Julien LALLET Équipe
Plus en détailGPA770 Microélectronique appliquée Exercices série A
GPA770 Microélectronique appliquée Exercices série A 1. Effectuez les calculs suivants sur des nombres binaires en complément à avec une représentation de 8 bits. Est-ce qu il y a débordement en complément
Plus en détailSystèmes et traitement parallèles
Systèmes et traitement parallèles Mohsine Eleuldj Département Génie Informatique, EMI eleuldj@emi.ac.ma 1 Système et traitement parallèle Objectif Etude des architectures parallèles Programmation des applications
Plus en détailPartie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès www.haouati.com haouaticpge@gmail.com
Partie 1 Professeur : Haouati Abdelali CPGE Lycée Omar Ibn Lkhattab - Meknès www.haouati.com haouaticpge@gmail.com Partie I : Généralités et algorithmique de base 1. Environnement matériel et logiciel
Plus en détailArchitecture de l ordinateur
Architecture de l ordinateur Emmanuel Lazard Université Paris-Dauphine mars 2011 Computers are my forte! BRAZIL (Terry Gilliam, 1985) Ce document a initialement été publié sous forme de livre : Emmanuel
Plus en détailMICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C
Haute Ecole d Ingénierie et de Gestion Du Canton du Vaud MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Programmation en mode simulation 1. DOCUMENTS DE RÉFÉRENCE...
Plus en détailArchitecture matérielle des systèmes informatiques
Architecture matérielle des systèmes informatiques IDEC, Renens. Version novembre 2003. Avertissement : ce support de cours n est pas destiné à l autoformation et doit impérativement être complété par
Plus en détailCours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions
Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental
Plus en détailLicence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
Plus en détailConception de Systèmes de Communications Numériques
Conception de Systèmes de Communications Numériques CSCN Markus Muck, Xavier Miet Markus.Muck@motorola.com Motorola Labs Paris (CRM) -1 - Motorola Labs CRM Paris Motorola consacre chaque année environ
Plus en détailModélisation de la Reconfiguration Dynamique appliquée à un décodeur LDPC Non Binaire
Modélisation de la Reconfiguration Dynamique appliquée à un décodeur LDPC Non Binaire LAURA CONDE-CANENCIA 1, JEAN-CHRISTOPHE.PREVOTET 2, YASET OLIVA 2, YVAN EUSTACHE 1 1 Université Européenne de Bretagne
Plus en détailRappels d architecture
Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée
Plus en détailCours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
Plus en détailCours Informatique 1. Monsieur SADOUNI Salheddine
Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale
Plus en détailDOCUMENT PROTEGE PAR UN DROIT DE COPIE. CPLD ou FPGA Critères de choix. page 1
Une des caractéristiques du domaine des circuits programmables est d être résolument moderne, tirant parti des évolutions concernant les procédés technologiques, la propriété intellectuelle(ip), l Internet,
Plus en détailNombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN
Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Table des matières. Introduction....3 Mesures et incertitudes en sciences physiques
Plus en détailUEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
Plus en détailConception et Intégration de Systèmes Critiques
Conception et Intégration de Systèmes Critiques 15 12 18 Non 50 et S initier aux méthodes le développement de projet (plan de développement, intégration, gestion de configuration, agilité) Criticité temporelle
Plus en détailIntroduction aux systèmes temps réel. Iulian Ober IRIT ober@iut-blagnac.fr
Introduction aux systèmes temps réel Iulian Ober IRIT ober@iut-blagnac.fr Définition Systèmes dont la correction ne dépend pas seulement des valeurs des résultats produits mais également des délais dans
Plus en détailLes systèmes embarqués Introduction. Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon
Les systèmes embarqués Introduction Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon Introduction aux systèmes embarqués Définition. Caractéristiques d
Plus en détailConception de circuits numériques et architecture des ordinateurs
Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique
Plus en détailIV- Comment fonctionne un ordinateur?
1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions
Plus en détailMétriques de performance pour les algorithmes et programmes parallèles
Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and
Plus en détailQUESTION 1 {2 points}
ELE4301 Systèmes logiques II Page 1 de 8 QUESTION 1 {2 points} En se servant de paramètres électriques donnés dans le Tableau 1 ci-dessous, on désire déterminer la fréquence d opération du compteur présenté
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailLa mémoire. Un ordinateur. L'octet. Le bit
Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve
Plus en détailComplexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation
Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul
Plus en détailI- Définitions des signaux.
101011011100 010110101010 101110101101 100101010101 Du compact-disc, au DVD, en passant par l appareil photo numérique, le scanner, et télévision numérique, le numérique a fait une entrée progressive mais
Plus en détailElectronique Numérique
Electronique Numérique 1er tome Systèmes combinatoires Etienne Messerli Yves Meyer Septembre 2010 Version 1.4 Mise à jour de ce manuel La base du présent manuel a été écrit par M. Yves Meyer de l'école
Plus en détailArchitecture des ordinateurs
Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?
Plus en détailUE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
Plus en détailChimie et physique informatiques
Chimie et physique informatiques 1 ère partie Information et ordinateurs 2 ème partie Programmation en Turbo Pascal 1 ère partie Information et ordinateurs Objectif de la 1 ère partie 1) Introduction 2)
Plus en détailÉléments d'architecture des ordinateurs
Chapitre 1 Éléments d'architecture des ordinateurs Machines take me by surprise with great frequency. Alan Turing 1.1 Le Hardware Avant d'attaquer la programmation, il est bon d'avoir quelques connaissances
Plus en détailFiche technique CPU 314SC/DPM (314-6CG13)
Fiche technique CPU 314SC/DPM (3146CG13) Données techniques N de commande 3146CG13 Type CPU 314SC/DPM Information générale Note Caractéristiques SPEEDBus Technologie SPEED7 24 x DI, 16 x DO, 8 x DIO, 4
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailTO4T Technologie des ordinateurs. Séance 1 Introduction aux technologies des ordinateurs
TO4T Technologie des ordinateurs Séance 1 Introduction aux technologies des ordinateurs Sébastien Combéfis mardi 27 janvier 2015 Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative
Plus en détailHigh Performance by Exploiting Information Locality through Reverse Computing. Mouad Bahi
Thèse High Performance by Exploiting Information Locality through Reverse Computing Présentée et soutenue publiquement le 21 décembre 2011 par Mouad Bahi pour l obtention du Doctorat de l université Paris-Sud
Plus en détailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Plus en détailALGORITHMIQUE ET PROGRAMMATION En C
Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2
Plus en détailMatériel & Logiciels (Hardware & Software)
CHAPITRE 2 HARDWARE & SOFTWARE P. 1 Chapitre 2 Matériel & Logiciels (Hardware & Software) 2.1 Matériel (Hardware) 2.1.1 Présentation de l'ordinateur Un ordinateur est un ensemble de circuits électronique
Plus en détailDe l arithmétique d intervalles à la certification de programmes
N d ordre : 388 N attribué par la bibliothèque : 06ENSL0388 ÉCOLE NORMALE SUPÉRIEURE DE LYON Laboratoire de l Informatique du Parallélisme THÈSE présentée et soutenue publiquement le 21 novembre 2006 par
Plus en détailChapitre 1: Introduction générale
Chapitre 1: Introduction générale Roch Glitho, PhD Associate Professor and Canada Research Chair My URL - http://users.encs.concordia.ca/~glitho/ Table des matières Définitions et examples Architecture
Plus en détailCalculateur quantique: factorisation des entiers
Calculateur quantique: factorisation des entiers Plan Introduction Difficulté de la factorisation des entiers Cryptographie et la factorisation Exemple RSA L'informatique quantique L'algorithme quantique
Plus en détailADÉQUATION ALGORITHME-ARCHITECTURE APPLIQUÉE AUX CIRCUITS RECONFIGURABLES
ADÉQUATION ALGORITHME-ARCHITECTURE APPLIQUÉE AUX CIRCUITS RECONFIGURABLES AILTON F. DIAS, MOHAMED AKIL, CHRISTOPHE LAVARENNE, YVES SOREL CNEN/CDTN Divisão de Computação e Informação, CP 941-012-970 Belo
Plus en détailPotentiels de la technologie FPGA dans la conception des systèmes. Avantages des FPGAs pour la conception de systèmes optimisés
Potentiels de la technologie FPGA dans la conception des systèmes Avantages des FPGAs pour la conception de systèmes optimisés Gérard FLORENCE Lotfi Guedria Agenda 1. Le CETIC en quelques mots 2. Générateur
Plus en détailWindows Server 2008. Chapitre 1: Découvrir Windows Server 2008
Windows Server 2008 Chapitre 1: Découvrir Windows Server 2008 Objectives Identifier les caractéristiques de chaque édition de Windows Server 2008 Identifier les caractéristiques généraux de Windows Server
Plus en détailCours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Plus en détailWhite Paper - Livre Blanc
White Paper - Livre Blanc Développement d applications de supervision des systèmes d information Avec LoriotPro Vous disposez d un environnement informatique hétérogène et vous souhaitez à partir d une
Plus en détailArgument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données
EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis
Plus en détailLimitations of the Playstation 3 for High Performance Cluster Computing
Introduction Plan Limitations of the Playstation 3 for High Performance Cluster Computing July 2007 Introduction Plan Introduction Intérêts de la PS3 : rapide et puissante bon marché L utiliser pour faire
Plus en détailI.1- DÉFINITIONS ET NOTIONS DE BASE
I.1- DÉFINITIONS ET NOTIONS DE BASE Informatique Information Automatique Logiciels (Software) Matériels (Hardware) Définition de l information : On appelle une information tout ce qui est transmissible
Plus en détailLe chiffre est le signe, le nombre est la valeur.
Extrait de cours de maths de 6e Chapitre 1 : Les nombres et les opérations I) Chiffre et nombre 1.1 La numération décimale En mathématique, un chiffre est un signe utilisé pour l'écriture des nombres.
Plus en détailEnseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing
Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing Chapitre 1 : Introduction Introduction générale Origine du cloud Concepts prédécésseurs «liés aux serveurs» Concepts prédécesseurs
Plus en détailSécurisation du stockage de données sur le Cloud Michel Kheirallah
Sécurisation du stockage de données sur le Cloud Michel Kheirallah Introduction I Présentation du Cloud II Menaces III Exigences de sécurité IV Techniques de sécurisation 2 26/02/2015 Présentation du Cloud
Plus en détailFRANCAIS ENGLISH DEUTSCH ITALIANO ESPANOL NEDERLANDS PORTUGUESES MANUEL UTILISATEUR USER S GUIDE BENUTZERHANDBUCH GUIDA PER L UTENTE GUIA DEL USUARIO
PAVE NUMERIQUE CALCULATRICE MANUEL UTILISATEUR USER S GUIDE BENUTZERHANDBUCH GUIDA PER L UTENTE GUIA DEL USUARIO GEBRUIKERSGIDS MANUAL DO USUARIO FRANCAIS ENGLISH DEUTSCH ITALIANO ESPANOL NEDERLANDS PORTUGUESES
Plus en détailQuoi de neuf en contrôle/commande et systèmes embarqués (RIO, WSN...)?
Quoi de neuf en contrôle/commande et systèmes embarqués (RIO, WSN...)? Mathieu PACE National Instruments, Ingénieur d applications L architecture RIO se développe Processeur FPGA E/S E/S E/S personnalisées
Plus en détailImplémentation FPGA d'algorithmes de surveillance de trafic. Projet 11 : Benoît FONTAINE Tristan GROLÉAT Franziska HUBERT
Implémentation FPGA d'algorithmes de surveillance de trafic Projet 11 : Benoît FONTAINE Tristan GROLÉAT Franziska HUBERT Projet S5, SLR 4 décembre 2009 Plan Contexte Étude bibliographique NetFPGA Les Outils
Plus en détailALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII
ALGORITHMIQUE II NOTION DE COMPLEXITE 1 2 Comment choisir entre différents algorithmes pour résoudre un même problème? Plusieurs critères de choix : Exactitude Simplicité Efficacité (but de ce chapitre)
Plus en détailAtelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques
Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques CTIA04 Page 1 1. Les types de données sous S7 300 Il existe plusieurs types de données utilisées pour la programmation
Plus en détailArchitecture des ordinateurs
Décoder la relation entre l architecture et les applications Violaine Louvet, Institut Camille Jordan CNRS & Université Lyon 1 Ecole «Découverte du Calcul» 2013 1 / 61 Simulation numérique... Physique
Plus en détailÉcole Nationale d Ingénieurs de Sfax. Cycle de Formation doctorale dans la discipline Ingénierie des Systèmes Informatiques
École Nationale d Ingénieurs de Sfax Cycle de Formation doctorale dans la discipline Ingénierie des Systèmes Informatiques & Université de Cergy-Pontoise Ecole Doctorale Sciences et Ingénierie Spécialité:
Plus en détailChapitre 2. Classes et objets
Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons
Plus en détailChapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping
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 Introduction Plusieurs dizaines de processus doivent se partager
Plus en détail4. Utilisation d un SGBD : le langage SQL. 5. Normalisation
Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :
Plus en détailLes 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
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 Table des matières Introduction....2 Haute performance (High
Plus en détailArchitecture des ordinateurs TD1 - Portes logiques et premiers circuits
Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice
Plus en détailChapitre 1 Introduction à la technologie des ordinateurs 1.1 DEFINITION DE L INFORMATIQUE L informatique (de information et automatique) est la «science du traitement rationnel (fondée sur la raison, conforme
Plus en détailThème 3 Conception et vérification d architectures de systèmes sur puce
Thème 3 Conception et vérification d architectures de systèmes sur puce Conception et simulation Frédéric Pétrot Vérification Laurence Pierre Conception et vérification d architectures de systèmes sur
Plus en détailCURRICULUM VITAE. Informations Personnelles
CURRICULUM VITAE Informations Personnelles NOM: BOURAS PRENOM : Zine-Eddine STRUCTURE DE RATTACHEMENT: Département de Mathématiques et d Informatique Ecole Préparatoire aux Sciences et Techniques Annaba
Plus en détailLES TYPES DE DONNÉES DU LANGAGE PASCAL
LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.
Plus en détailÉtude des Corrélations entre Paramètres Statiques et Dynamiques des Convertisseurs Analogique-Numérique en vue d optimiser leur Flot de Test
11 juillet 2003 Étude des Corrélations entre Paramètres Statiques et Dynamiques des Convertisseurs Analogique-Numérique en vue d optimiser leur Flot de Test Mariane Comte Plan 2 Introduction et objectif
Plus en détailCalcul scientifique précis et efficace sur le processeur CELL
Université P. et M. Curie Master spécialité informatique Calcul scientifique précis et efficace sur le processeur CELL NGUYEN Hong Diep Rapport de stage recherche de master 2 effectué au laboratoire LIP6
Plus en détailTAREK OULD BACHIR DÉPARTEMENT DE GÉNIE ÉLECTRIQUE ÉCOLE POLYTECHNIQUE DE MONTRÉAL
UNIVERSITÉ DE MONTRÉAL OPÉRATEURS ET ENGINS DE CALCUL EN VIRGULE FLOTTANTE ET LEUR APPLICATION À LA SIMULATION EN TEMPS RÉEL SUR FPGA TAREK OULD BACHIR DÉPARTEMENT DE GÉNIE ÉLECTRIQUE ÉCOLE POLYTECHNIQUE
Plus en détail1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :
GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours
Plus en détailLe Ro le Hyper V Troisie me Partie Haute disponibilite des machines virtuelles
Le Ro le Hyper V Troisie me Partie Haute disponibilite des machines virtuelles Microsoft France Division DPE Table des matières Présentation... 2 Objectifs... 2 Pré requis... 2 Quelles sont les principales
Plus en détailÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700
ÉCOLE POLYTECHNIQUE DE MONTRÉAL Département de Génie Électrique La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700 M. Corinthios et Zaher Dannawi 29 août 2007 2 Tables des
Plus en détailHubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)
Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02) Ne rien livrer au hasard, c est économiser du travail Pont Sainte Maxence(O C est quoi USB? Comment ça marche? Les standards? La technique en détail
Plus en détailExécution des instructions machine
Exécution des instructions machine Eduardo Sanchez EPFL Exemple: le processeur MIPS add a, b, c a = b + c type d'opération (mnémonique) destination du résultat lw a, addr opérandes sources a = mem[addr]
Plus en détailArchitectures d implémentation de Click&DECiDE NSI
Architectures d implémentation de Click&DECiDE NSI de 1 à 300 millions de ligne de log par jour Dans ce document, nous allons étudier les différentes architectures à mettre en place pour Click&DECiDE NSI.
Plus en détailTraitement numérique de l'image. Raphaël Isdant - 2009
Traitement numérique de l'image 1/ L'IMAGE NUMÉRIQUE : COMPOSITION ET CARACTÉRISTIQUES 1.1 - Le pixel: Une image numérique est constituée d'un ensemble de points appelés pixels (abréviation de PICture
Plus en détailLa carte à puce. Jean-Philippe Babau
La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus
Plus en détail