Synthèse portable pour micro-architectures à grain fin Application aux turbo décodeurs et nano-fabriques

Dimension: px
Commencer à balayer dès la page:

Download "Synthèse portable pour micro-architectures à grain fin Application aux turbo décodeurs et nano-fabriques"

Transcription

1 Synthèse portable pour micro-architectures à grain fin Application aux turbo décodeurs et nano-fabriques Catherine Dezan, Erwan Fabiani, Christophe Gouyen, Loïc Lagadec, Bernard Pottier, Caaliph Andriamisaina et Alix Poungou Architectures & Systèmes, LESTER, FRE 2734 Département informatique UFR Sciences et Techniques Université de Bretagne Occidentale BP 809, 20 av Le Gorgeu Brest Cedex RÉSUMÉ. Toutes les architectures reconfigurables se ressemblent. Pour faciliter leur intégration logicielle, l atelier Madeo les représente dans un modèle commun utilisé par des outils de CAO génériques. L implantation d outils et langages de haut niveau s appuie sur une couche de synthèse comportementale et structurelle ouverte capable de produire des opérateurs hautement optimisés. La flexibilité est illustrée par les investigations précoces qui peuvent aussi être menées sur des nano-fabriques. L efficacité de la synthèse est quant à elle montrée sur des éléments de circuits stratégiques dans les communications : les turbo décodeurs en blocs. ABSTRACT. Reconfigurable architectures are similar. To ease their sofware integration, the Madeo framework proposes a common model used by generic CAD tools. The development of high level tools can rely on an open synthesis layer with behavioural and structural aspects. The capability for fast integration of technologies is shown of the case of early investigations on nano-fabrics, while the efficiency of the synthesis is demonstrated on parts of a turbo decoder known to be critical in communications. MOTS-CLÉS : Architectures reconfigurable, synthèse, portabilité, turbo codes, nanotechnologies KEYWORDS: Reconfigurable architectures, synthesis, portability, turbo codes, nanotechnologies Technique et science informatiques 7/2006. SYMPA

2 2 Technique et science informatiques 7/2006. SYMPA 1. Introduction Les architectures reconfigurables ont vocation à être programmables au même titre que les processeurs. Programmable veut dire qu un ou plusieurs langages permettent d exprimer ce que la machine doit faire, que l on décrive un comportement souhaité ou que l on décrive des actions matérielles à exécuter. Dans la première catégorie, le langage est généralement lié à un modèle de calcul : algorithmes structurés, modulaires, programmation logique et déclarative, objets, programmation concurrente, flots de données... L implantation de ces langages requiert un effort qui peut être important, mais qui est en général unique ou peu fréquent : réalisation d une machine virtuelle ou d un compilateur. La seconde catégorie décrit explicitement des opérations à réaliser sur une architecture ou des outils de synthèse. L exemple le plus évident est celui du langage C créé en conformité avec une machine à registres (1974) pour combler une lacune dans la programmation des systèmes d exploitation. Un autre exemple non moins évident est celui des langages de description matérielle créés pour manoeuvrer les librairies technologiques, les opérateurs et la synthèse avec la plus grande flexibilité et sûreté. Les argumentations en faveur des langages comportementaux pointent du doigt les conséquences de l usage de langages de description, qui supportent effectivement bien l exécution, mais handicapent la stratégie d optimisation des algorithmes. Dans la conception matérielle, cet écart de besoins se remarque par exemple dans le domaine du traitement du signal et de l image, où la conception algorithmique est fréquemment traitée par calcul formel, alors que les implémentations logicielles et matérielles impliquent des choix souvent dépourvus de support (dimensionnement des opérandes, optimisation des expressions). L histoire des circuits reconfigurables a maintenant une vingtaine d années. Le logiciel pour ces circuits est une longue succession de mutations dans lesquelles on a trouvé des outils de synthèse logique de niveau booléen, des outils de synthèse ou de dessin de haut niveau, des langages de description matérielle évoluant progressivement vers plus d abstraction, et la prise en charge par des outils de programmation conventionnels plus ou moins amendés. En ce qui concerne les architectures reconfigurables, la dimension comportementale a été soulignée par plusieurs projets. Un exemple extrême est SCORE (Caspi et al., 2000), qui se focalise sur le comportement général du programme en ignorant, ou minimisant, les détails de la mise en œuvre. Le projet Madeo prend en charge la synthèse et l usage du matériel en relation étroite avec la programmation objet. Ce projet a démarré en 1995 en s appuyant sur un environnement de développement Smalltalk-80 (Goldberg et al., 1983), dont la maturité promettait de faciliter des mises en œuvre a priori lourdes en restreignant au maximum la dépendance technologique. Le choix de ce langage en tant que langage cible s imposait pour une seconde raison qui est sa capacité à s auto-décrire, capacité qu il était tentant d étendre au champ des architectures reconfigurables. La vision était de permettre la description et l intégration dans le langage de ressources de calcul nou-

3 Synthèse portable avec MADEO 3 velles, à la fois flexibles et efficaces : opérateurs arithmétiques spécifiques, opérateurs graphiques, manœuvre de capteurs, circuits de calcul intensif... Cet article présente d abord l ossature du projet dans la section 2. Deux points forts en sont le niveau symbolique et objet des spécifications et le haut niveau de portabilité permettant la prise en charge rapide de technologies nouvelles, qui sont respectivement détaillés dans les sections 3 et 4. Le premier point est illustré en section 5 par la synthèse d éléments de circuits de turbo décodeurs en blocs, et le second en section 6 par la prise en charge d un modèle technologique intermédiaire associant micro et nano architectures. Les turbo codes sont une solution permettant de minimiser le taux d erreur lors des communications. Ils ont une importance critique pour les débits de transmission haute vitesse ou sans fil. Les algorithmes de décodeurs en blocs tirent parti des propriétés des corps de Galois. Nous montrons que le support arithmétique nécessaire s implante naturellement dans le langage hôte, que la programmation des algorithmes élémentaires s effectue de manière simple et que la synthèse des circuits reconfigurables peut être complètement automatique et produire des implémentations FPGA plus efficaces que celles obtenues avec des approches traditionnelles. La ressource physique abstraite ciblée par Madeo est une micro-architecture qu il s agit de caractériser pour une architecture d application, puis d exploiter en liaison ou non avec l environnement hôte. Les ressources physiques sont typiquement des plateformes reconfigurables de grain varié : FPGA ou chemins de données. Ici nous montrons la capacité évolutive des outils en présentant la prise en charge de nanofabriques (Moritz et al., 2004). Il s agit de technologies considérées comme plausibles à moyen terme, mais pour lesquelles les indicateurs de performance n existent pas. Dans ce cas Madeo permet d effectuer la synthèse physique de tâches de grain moyen en récoltant des informations sur la densité effective de l intégration, les fréquences de fonctionnement, ou la résistance aux fautes. 2. Structure de la plateforme Madeo 2.1. Environnement de développement Smalltalk est un langage objet non typé, symbolique, et principalement applicatif. Toute entité du système a un statut d objet, compilateur, éditeur, noyau d exécution inclus. Si la première version de Smalltalk-80 s exécutait en code natif (bytecodes micro-programmés), il est actuellement diffusé sous forme de machine virtuelle portable. Le seul mécanisme d exécution que le programmeur perçoit est l expédition de message. Un message est un symbole associé à une sémantique. La réception d un message par un objet provoque une recherche dans la chaine d héritage des classes, et l exécution d une méthode (fonction), dont le résultat est rendu en réponse.

4 4 Technique et science informatiques 7/2006. SYMPA Les opérations numériques reflétant ordinairement les capacités matérielles du processeur ont également le statut de message, permettant des extensions arithmétiques aux classes numériques de base. Au delà d une syntaxe un peu particulière qui permet de casser les noms des procédures, le langage utilise un mécanisme d édition dynamique des liens qui le différencie des langages impératifs ou objet les plus usités. Alors que l édition statique consiste à calculer le saut à effectuer pour appeler une procédure lors de la compilation, Smalltalk retarde cette opération jusqu au moment de l exécution. Pour fixer les idées : représente une méthode agissant sur un paramètre. Le code incrémente le paramètre, le passe au carré, et retourne cette valeur. L exemple montre qu aucune contrainte n est posée sur le paramètre. On demande seulement à celui-ci de savoir réagir correctement au message +, puis cette somme étant effectuée, qu elle sache exécuter un message squared (notation unaire de type postfixe). Cette contrainte est satisfaite pour toutes les classes numériques (héritant de Number) : entiers, flottants, rationnels, nombre à virgule fixe, complexes,... mais pourra aussi être respectée par de nouvelles classes créées pour une application particulière, sans qu il soit besoin de recompiler la méthode décrite. On disjoint ainsi complètement les données et le code en laissant le couplage s effectuer au moment de l exécution sur la seule base des symboles utilisés par le programme. Le résultat est une très forte réutilisabilité du code et une grande latitude à faire évoluer les données en jouant sur les classes, existantes ou nouvelles, et sur le polymorphisme, c est à dire la capacité à traiter uniformément des objets de classes différentes (voir section 3). Pour Madeo, cela amène la première possibilité d opérer des transformations de synthèse logique et physique vers des architectures différentes, à grain fin, mais aussi hétérogènes ou radicalement nouvelles comme cela est montré pour les nanofabriques en section 6. Cela permet aussi au programmeur de faire évoluer les classes des données face à un algorithme fixe, afin de régler un circuit en termes de coût matériel ou de performances. Le cas des turbo codes en est une bonne illustration puisque les classes supportant les corps de Galois sont générées par calcul et que des algorithmes tels que le calcul de syndrome sont réutilisables avec une grande latitude sur ces classes, en y incluant des tests sur des opérandes entiers Synthèse logique et synthèse physique portables Le flot Madeo est basé sur deux couches (présentées figure 1) : 1) la modélisation de la micro-architecture, associée aux fonctions de synthèse physique : placement, routage, floor-planning, édition, et dessin structuré.

5 Synthèse portable avec MADEO 5 Programmation de haut niveau Générateurs de code Description de circuits structurés Interface (API) programmable: dessin et synthèse Couches 3 Programmation de fonctions, FSM, Ensemble de définition Synthèse logique hiérarchique 2 base de données Description de l architecture concrète Modèle architectural et outils physiques 1 Production des configurations 0 Figure 1. Flot final de la chaîne Madeo, avec en bas la production des bitstream permettant la programmation effective du circuit cible, à droite les mécanismes de stockage de composants en base de données, en haut les interfaces possibles avec des langages de haut niveau. La chaîne est totalement ouverte. Le rôle de la modélisation est de permettre la description de l organisation d un circuit cible en termes de primitives matérielles et de fonctions de routage. Cette description repose sur un modèle abstrait permettant la représentation de réplications et de hiérarchies que l on trouve dans les circuits reconfigurables. Le modèle abstrait est ouvert, et permet de prendre en charge des ressources matérielles nouvelles : opérateurs ou fonctions d acquisitions, par exemple. Les algorithmes de synthèse physique opèrent sur l architecture concrète qu ils découvrent en utilisant le modèle abstrait. Il s agit d une sorte d interprétation dont l intérêt est de produire une prise en charge portable, en y incluant des cibles hétérogènes. 2) le second étage dispose donc des fonctions d implantation et du modèle physique. Son rôle est d effectuer la synthèse logique, dans le cas d architectures à grain fin, et la synthèse numérique dans le cas d architecture à gros grain. La synthèse logique est actuellement menée à partir de méthodes Smalltalk-80, bien que les principes suivis puissent s appliquer à quantité d autres modes d expression. Elle repose sur la prise en charge simultanée de la définition des données à traiter, et de l algorithme à développer sur le matériel. Les données sont des ensembles d objets que l on peut désigner par le terme de contexte de compilation, qui remplace les directives de typage traditionnelles. Le typage est produit par inférence automatique dans le graphe d appel qui est traduit en systèmes de tables pré-calculées.

6 6 Technique et science informatiques 7/2006. SYMPA Les contextes de compilation peuvent se calculer par du code Smalltalk. La méthode décrite (2.1) pourrait ainsi être synthétisée en association au contexte suivant : Les fonctions implantées dans cette couche permettent la production de réseaux de composants combinatoires ou séquentiels pour la couche sous-jacente. Les couches 1+2 fournissent donc un interface permettant la production d objets empilant la spécification logicielle (code et contextes), les réseaux de tables, les représentations logiques et physiques dépendantes d une architecture. Ces composants sont archivés dans une base de données multi-architectures Dessin structuré et intégration aux compilateurs Les primitives générées ne suffisent en général pas pour une application. Il faut pouvoir les assembler en formant des architectures (couche 3, figure 1). Ce résultat peut être obtenu par des programmes qui effectuent des arrangements physiques des composants élémentaires, puis construisent les chemins de données entre ces composants. La programmation utilise du code Smalltalk traditionnel manipulant les interfaces des deux couches basses pour synthétiser, extraire les caractéristiques géométriques, répliquer et router les signaux. Le second cadre d usage consiste à laisser un compilateur produire ou utiliser les composants élémentaires et les relier. Madeo supporte ces deux types d opérations avec des niveaux de maturité variables, en préservant la caractéristique de portabilité (Fabiani et al., 2003). La programmation de générateurs physiques est couramment pratiquée pour les opérateurs arithmétiques et les réseaux de calcul. L intégration dans des compilateurs (bloc supérieur de la figure 1) est une nouveauté abordée de manière coopérative (voir section 3.5) Reconfigurabilité et couplage langage/architecture La production de logique combinatoire à haut niveau est indispensable pour tirer complètement parti de la flexibilité du reconfigurable. Le choix de Smalltalk a ainsi été motivé par la capacité à produire des mécanismes d exécution matérielle qui reflètent la capacité d expression du langage. A contrario, les langages typés, liés à des ensembles d opérateurs fixes peuvent difficilement intégrer des fonctions nouvelles au rang des opérateurs standards. La section 3 décrit la structure originale du synthétiseur logique de Madeo, dont il existe une description plus approfondie dans (Lagadec et al., 2003). Sa lecture n est pas indispensable à la compréhension générale de l article. La section 4 décrit comment on peut abstraire l organisation du circuit en regard des fonctions de manipulation physique.

7 Synthèse portable avec MADEO 7 3. Flot de compilation Le compilateur Smalltalk produit un arbre syntaxique dont les nœuds sont des objets représentant des messages, des affectations, des blocs, des séquences. Cet arbre est analysé pour construire un graphe acyclique sans variable temporaire (DAG). Des optimisations de compilation conventionnelles sont menées sur le DAG : suppression de code mort, factorisations, propagations de constantes et évaluations statiques. Le contexte de compilation est défini comme étant une spécification de type complète pour chacun des paramètres de la méthode et le receveur. Cette spécification est progressivement propagée dans le DAG. Chaque nœud disposant d une spécification complète de typage est compilé récursivement et hiérarchiquement, sauf si sa complexité apparaît assez simple pour les outils logiques. Dans ce cas on construit une table en appliquant le message qu il représente à tous les n-uplets de son contexte. Le résultat de cette passe est un graphe hiérarchique portant des tables représentant exactement tous les comportements possibles de la méthode sur son contexte courant. Plusieurs optimisations sont alors menées pour simplifier les tâches d optimisation logique, par exemple : 1) fusion des tables sur les chemins unaires, suppression du code constant. 2) suppression des valeurs produites et inutilisées, et backtracking. Dans le cas des branchements conditionnels les conditions vraies ou fausses sont répercutées sur les blocs conditionnés pour réduire leur logique. Le résultat est un graphe de tables réduit, qui reste exécutable par simple parcours, qui peut être implanté dans des mémoires centralisées ou distribuées, et dont on peut dériver des programmes de simulation à haut niveau de parallélisme potentiel. Lorsqu il s agit de produire des circuits sur FPGA, on construit des PLAs équivalents aux tables que l on passe à des outils d optimisation logique. Ces aspects sont décrits en section 3.4. Mais il est d abord nécessaire d expliquer l effet attendu par cette chasse aux valeurs inutiles Convergence et applicabilité de la méthode La section 5.2 montre que des circuits de taille significative peuvent être synthétisés de manière très efficace. Il y a cependant une condition d utilisation forte qui restreint le grain des calculs à des amplitudes allant de 2 6 à 2 8 valeurs par paramètre. Au delà de ce seuil, l optimisation logique ne peut plus être menée efficacement. Le processus de synthèse converge. En effet, chaque nœud du graphe réalise au pire une bijection de son contexte vers l ensemble de ses résultats. De manière générale la quantité de valeurs manipulées décroît à chaque nœud, car une fonction combinatoire ne peut pas produire plus de résultats qu elle ne dispose de n-uplets dans son entrée. La stratégie algorithmique gagnante consiste alors à faire apparaître le plus tôt possible

8 8 Technique et science informatiques 7/2006. SYMPA des tables synthétisables dans le DAG, en surface, ou en profondeur dans les méthodes appelées. La maîtrise de la structuration hiérarchique du graphe de calcul est une clé de la qualité de la solution produite. Trois cas sont à considérer : blocage de l examen hiérarchique : cas où le programmeur souhaite en verrouiller des noeuds en vue d une synthèse monolithique. Pour cela, les méthodes placées dans une catégorie de méthodes dédiée sont traitées de façon atomique. contrôle en profondeur : blocage paramétrique de la profondeur maximale lors de la descente hiérarchique. Un intérêt direct est d assurer une terminaison contrôlée d un traitement récursif (par exemple une recherche dichotomique), ou de calibrer à priori la complexité des nœuds. par sélection manuelle : une fois le DAG produit, et avant qu il ne subisse une quelconque modification, le programmeur étiquète interactivement chaque nœud pour forcer ou non sa tabulation. Les tables de calcul comportent des intervalles de valeurs contiguës, des ensembles creux ou polymorphes. Le taux de remplissage des contextes peut être associé à la notion de valeurs prises effectivement sur un chemin de données. Ce taux varie selon les applications, et la complexité des expressions mises en œuvre. Pour en donner un exemple, deux opérandes x et y d une multiplication z = x y, définis dans un intervalle I = [0, 2 n ] vont générer des valeurs dans J = [0, 2 2n ] Pour une valeur prise par les opérandes au delà de I, l encodage binaire classique de cette dernière entraine l extension de l intervalle I et donc aussi de J à considérer ([0, 2 2n+1 ] et [0, 2 2n+2 ]). L intervalle J a alors une amplitude 4 fois supérieure dont 3/4 des valeurs possibles sont pratiquement inutilisés Aspects spécifiques de la synthèse logique pour les FPGAs Les FPGAs permettent de construire des circuits très spécialisés et de profiter des creux générés lors de l optimisation logique par deux techniques : la synthèse et la resynthèse. Ces opérations sont actuellement menées par des logiciels externes à Madeo 1. La synthèse consiste à produire un code booléen unique pour chaque n-uplet d un contexte, avec une signature booléenne pour le résultat. La construction d un PLA (Programmable Logic Array) à partir de cette table binaire va fournir une implantation logique après minimisation et partitionnement. Les résultats expérimentaux montrent que la suppression de valeurs peut complexifier l expression logique, et causer des sérieux désagréments pour les temps de synthèse (figure 2 (a)). 1. On citera SIS (Sentovich et al., 1992) et ses évolutions telles que MVSIS (Gao et al., 2001), ou une adaptation tirant parti de partitionnements intermédiaires PPart (Lemarchand, 1999).

9 Synthèse portable avec MADEO nombre de cellules nombre de cellules nombre d entrees manquantes nombre de DC Figure 2. A gauche, nombre de cellules logiques produites par synthèse (a) et à droite, par resynthèse (b) pour un même problème de multiplication avec un nombre de jeu d opérandes aléatoires croissant. Une autre solution est d observer que si on dispose d une expression logique simple pour des intervalles pleins, on peut demander à l optimisation logique de partir de cette solution existante en effectuant le retrait des n-uplets sous forme de don t care (Lin et al., 1991). On procède alors à une resynthèse. Les résultats expérimentaux présentés en (b) figure 2 montrent une décroissance systématique de la logique générée avec cette technique. La lecture de la table 1 montre d autre part un second avantage qui est la maîtrise des temps de calcul bien plus courts et bien plus prédictibles. moyenne gain maximum gain temps de synthèse (s) nombre de noeuds (LUT-4) synthèse 132, temps de resynthèse (s) nombre de noeuds (LUT-4) resynthèse 76, Tableau 1. Comparatif des temps d exécution et de la qualité des résultats pour une série de synthèses, puis des resynthèses équivalentes sur des contextes de plus en plus petits. La synthèse initiale complète précédant les resynthèses a duré 10.7s en produisant 90 cellules LUT-4 (mvsis, puis sis). En conclusion, lorsque cela est possible il y a toujours avantage à procéder par retraits sur une solution existante, le contrôle des flux de valeurs étant garanti par le strict usage des tables dans le circuit synthétisé. La comparaison avec des outils classiques est difficile à mener car ceux-ci s appuient sur des règles sémantiques restreintes à des opérateurs classiques, alors que Madeo peut profiter de constats menés à la compila-

10 10 Technique et science informatiques 7/2006. SYMPA tion, en s affranchissant de l usage de macros ou d opérateurs. La section 5 montre l efficacité de ce positionnement par rapport à une approche purement architecturale Synthèse de machines d états Les machines d états sont produites en utilisant la même technique que les circuits combinatoires. On peut assimiler ces machines à une méthode opérant sur des variables externes qu elles lisent et écrivent. En plus du contexte de compilation il est nécessaire de disposer de la valeur initiale de l état. Le logiciel de synthèse observe l évolution de l état. Si celui-ci évolue vers une nouvelle valeur, on accumule cette valeur dans un ensemble. Le produit cartésien des états par le contexte de compilation des stimuli forme le contexte de compilation de l automate. La sortie est le produit des états suivants et de la production de la machine (Llopis et al., 1996). Après synthèse les registres nécessaires à la conservation de l état sont insérés entre l état suivant et l état courant qui forment une boucle Représentations numériques, codage La représentation numérique des objets n est pas un choix neutre en regard de l efficacité cherchée. Pour ne citer que quelques possibilités, en voici trois : encodage ordinal : chaque objet d une collection apparaissant sur un arc est représenté par son numéro d ordre, ce qui garantit à la fois l unicité et la minimalité du chemin de données, avec l obligation d une implantation de couches interfaces assurant l échange entre objet et index en entrée et en sortie. Si l ordre d indexation est quelconque, la complexité des circuits générés peut l être également, entrainant des résultats décevants. encodage par typage : lorsqu un type est associé à un arc du graphe, ce type peut se voir attribuer des fonctions d encodage et de décodage programmables. Cette technique donne le contrôle de la représentation numérique et permet de borner la complexité des opérateurs, peut-être au détriment de la dimension des chemins de données. Elle est utilisée pour les corps de Galois pour obtenir une représentation numérique que l on sait bonne (voir section 5.2). encodage par valeur : il utilise la classe de l objet pour décider de la représentation numérique, par exemple représentation en base deux des entiers naturels. On rappelle que le conditionnement technologique d un PLA s effectue en utilisant des outils externes à la plateforme (SIS, MVSIS, PPart) en ciblant une technologie logique LUT-n.

11 Synthèse portable avec MADEO Intégration dans les langages et définition de la séquentialité La construction de chaînes de synthèse de haut niveau, portables sur le reconfigurable, est facilitée par l archivage de composants en base de données et par des formats d échange standards. Plusieurs expérimentations ont été menées dans cette direction : BSS, outil de synthèse d architecture orienté vers les traitements intensifs en signal et image : interface XML spécifiant des réseaux flots de données associés à un automate de contrôle (Diguet et al., 2000). PIPs, outil de transformation de programme investigué en vue de la production d accélérateurs vectoriels : production d un automate associé à un cœur de boucles, décrit en Smalltalk-80 à partir du compilateur source (Ancourt et al., 1996). RT-Builder, outil méthodologique appuyé sur le langage synchrone Signal(Le Guernic et al., 1991) : partitionnement du graphe flot en segments combinatoires synthétisés par Madeo, et reconstruction par insertion des retards, puis synthèse physique. un modèle de programmation concurrente s appuyant sur des processus Smalltalk communiquant par canaux bloquant. Madeo ne décide pas de l emplacement des registres dans le circuit ou de les déplacer. Cette gestion des registres peut être faite en amont de la spécification haut-niveau, et en aval sous forme de retiming du circuit obtenu. La prise en compte des registres définit l organisation des calculs, éventuellement en liaison avec un modèle de programmation particulier. Elle peut assurer un parallélisme de flot entre différentes zones du circuit et limiter les chemins critiques, par exemple pour un pipeline ou un circuit systolique. Elle permet, d autre part, de mémoriser des variables d état. 4. La synthèse physique 4.1. Modèle micro-architectural abstrait et modèles concrets Les micro-architectures des circuits reconfigurables sont décrites sur un modèle objet, que l on qualifie d abstrait, et qui autorise la description de niveaux hiérarchiques, de réplications de motifs et de capacité à router des signaux, ou des bus. Les éléments de calcul logiques ou numériques sont implantés dans ce modèle et on leur associe une sémantique (logique, numérique, mémoire,... ). Cette description est le modèle concret d un composant reconfigurable, qui sera développé pour permettre les opérations de synthèse physique. La première étape de la prise en charge d une nouvelle architecture consiste à rechercher ses primitives architecturales significatives : nœuds de calculs, mémoires, registres, canaux de communication, points de connexion programmables, aiguillages. Ces composants sont caractérisés sur la base de classes paramétriques disponibles.

12 12 Technique et science informatiques 7/2006. SYMPA En second lieu, les mécanismes de structuration sont utilisés pour bâtir le modèle concret. Les pavages permettent de décrire des matrices régulières d éléments, les agglomérats permettent de regrouper logiquement des éléments au sein d un même conteneur (par exemple un CLB, constitué de plusieurs LUTs). Chacune des entités est nommée pour autoriser des référencements ultérieurs, directs ou accompagnés d un adressage géométrique. Ces deux mécanismes, couplés au lien systématique contenu contenant, permettent de définir des adressages relatifs (la cellule à ma gauche), semi relatif (la cellule le plus à gauche sur ma ligne) ou absolu (la cellule 1@5). Le routage s appuie sur ces mécanismes. La description des architectures peut être menée interactivement ou réalisée via un langage parenthésé, dont les mots clés permettent de décrire les primitives, les objets composés, et les connexions entre ressources. Ce langage supporte la notion de variable, pour pouvoir décrire des familles d architecture paramétriques où la largeur des canaux de routage, la taille de la matrice, peuvent être modifiées en prospection architecturale. Cette caractéristique est très intéressante car en utilisant la généricité des outils de bas niveau, il est possible d observer le comportement conjoint architecture-algorithme face à un benchmark en faisant évoluer l un ou l autre pour chercher une solution optimale. Les micro-architectures ne sont donc pas nécessairement un constat, mais peuvent être calculées Outils et algorithmes pour la synthèse physique La couche de synthèse physique doit construire une allocation de ressources de calcul et de routage à partir d un réseau de composants conformes à l architecture. Cette allocation (un circuit) peut participer à un système avec un statut de processus, présente des caractéristiques géométriques et physiques que l on loge dans le composant, et présente l intérêt pratique de permettre la construction d une configuration, généralement appelée bitstream. Alternativement à la construction complète d un composant, il est bien sûr possible d extraire une configuration physique ou semiphysique de la base de données existante pour obtenir la fonction cherchée. Les algorithmes pour la synthèse physique implantés dans Madeo sont majoritairement empruntés à la littérature sur les FPGAs (Betz et al., 1999), le problème traité ici étant la construction d outils ayant un niveau d abstraction supérieur, opérant sur les architectures concrètes au travers de son modèle abstrait. Le placement-routage Le placeur routeur prend en entrée une liste de portes logiques LUT-n et applique une stratégie de type PATHFINDER (McMurchie et al., 1995) en arbitrant entre les différents signaux à router lors d un conflit sur une ressource. Le routage point à point d un signal repose sur l algorithme de routage en labyrinthe proposé par Lee (Lee, 1961). Lors de la phase de description d architecture (section 2.3), il est possible de paramétrer le coût d allocation des différentes ressources pour en optimiser l utilisation.

13 Synthèse portable avec MADEO 13 La fonction générique calculant le coût de placement fournit un estimateur variable en fonction de la longueur des connexions vers les cellules environnantes. Ce coût est calculé à chaque phase du recuit simulé et est utilisé par le placeur. L éditeur de circuit L éditeur régulier permet la réplication programmée d éléments de circuit. Ces programmes sont des entrelacements de synthèses physiques élémentaires, d extractions de caractéristiques géométriques, de commandes de réplications et de routages de canaux. Ici encore les programmes sont portables, avec les contraintes de l espace disponible sur un FPGA. Les opérateurs et les circuits réguliers sont construits de cette manière. La figure 3 montre la disposition de l algorithme de tri linéaire pour le calcul de fiabilité d un turbo décodeur, conditionné en serpentin sur une surface carrée par un petit programme Smalltalk d environ une page. Le floorplanning Cet outil est basé sur l algorithme TCG (Lin et al., 2001) qui représente les dispositions géométriques comme un assemblage de rectangles et une liste de contraintes sur leur position relative. Quatre opérations de base peuvent être appliquées sur un composant : la rotation, l échange de position entre deux modules, l inversion de la relation entre deux modules, et la translation. Ces différentes opérations sont utilisées dans un recuit simulé dont la fonction de coût intègre la boite englobante globale de l agencement, le dépassement d une boite englobante fixée comme contrainte et le coût d interconnexion entre les modules. La pénalité appliquée sur la boite englobante augmente avec la décroissance de la température. La boite englobante par défaut (contrainte initiale) est celle de l agencement par défaut avant optimisation, mise à l échelle selon un facteur de 0.8. L algorithme n étant pas déterministe, le résultat obtenu n est pas forcément optimal. Les composants manipulables pouvant être hiérarchiques, le floorplanner traite les composants de niveau le plus bas en premier lieu. Ceci implique de recalculer la boite englobante de chaque module à tous les niveaux du floorplan. Production des configurations et environnement matériel Après construction d un circuit, il devient possible d extraire l état des points de configuration que l on ordonnera dans un bitstream. En se basant sur les informations de nommage des différentes ressources introduites au moment de la description d architecture (section 4.1), il est possible d extraire une forme textuelle intermédiaire qui doit être reconditionnée en fonction du protocole de chargement du circuit. Plusieurs FPGA ont été modélisés partiellement ou complètement. Dans le cas du xc6200 et du FPGA basse consommation de G. Varghese(Varghese et al., 1999) la production complète des bitstreams était possible. Le banc de test actuel est un Virtex 1000 dont la configuration n est pas publique, et qui est programmé en recopiant la description des circuits vers un outil d interfaçage nommé JBit (Guccione et al., 1998) qui permet de générer des configurations qui sont ensuite téléchargées vers une carte PCI sur laquelle les tests sont effectués.

14 14 Technique et science informatiques 7/2006. SYMPA Figure 3. Calcul de la recherche du symbole le moins fiable d un turbo décodeur BCH(128,120,4) placé-routé sur un modèle Virtex 1 (version cascadée de la section 5.1). L entrée est en haut à gauche, la sortie au centre, à droite. 5. Synthèse logique : étude de circuits turbo décodeurs Cette section concerne une étude de cas sur le turbo décodeur qui a été déjà développé à l ENSTBr en utilisant des méthodes classiques de conception (approche utilisant SystemC de CoCEntric (Piriou et al., 2004)). Deux parties de l algorithme du turbo décodeur sont ici reprises en utilisant la plateforme Madeo (Andriamisaina et al., 2005) : la recherche des symboles les moins fiables et le calcul des syndromes. Après avoir donné les conditions de l étude menée, nous dressons un bilan comparatif afin de mieux quantifier l apport de la plateforme de synthèse Madeo pour ce type d application. Les codes correcteurs d erreurs (codage de canal) sont des solutions permettant d améliorer la qualité des communications numériques. Le principe du codage canal est d introduire de la redondance dans la séquence d informations binaires dans le but de corriger les erreurs de transmissions à la réception. Les turbo codes sont une famille de codes correcteurs d erreurs construits par concaténation de codes élémentaires (Berrou et al., 1993). Ils sont le résultat de deux innovations majeures : la concaténation de deux codes pour le codage et le décodage itératif. Le processus itératif proposé par R. Pyndiah en 1994 (Pyndiah et al., 1994) consiste à effectuer un décodage des lignes suivi d un décodage des colonnes à l aide d un décodeur élémentaire EPSP (Entrées Pondérées et Sorties Pondérées) (voir figures 4 et 5). Le décodage itératif fournit de bonnes performances avec un faible niveau de complexité. Actuel-

15 Synthèse portable avec MADEO 15 lement, ces codes sont considérés comme étant les plus efficaces pour le codage avec des gains de 2 à 4 db par rapport aux codes correcteurs d erreurs classiques. Matrice reçue Décodage des colonnes (demi itération) Reconstruction de la matrice Décodage des lignes (demi itération) Reconstruction de la matrice Décodage des colonnes (demi itération) Figure 4. Processus itératif de décodage. α R F k + W k + k * + R + Décodage d une ligne(ou d une colonne) k de la matrice D k R k Délai Figure 5. Décodeur élémentaire avec R k information reçue du canal, R k information venant de la demi-itération précédente, W k information extrinsèque, R + k information envoyée à la demi-itération suivante, D k le mot décidé, α paramètre de pondération du décodeur propre à chaque demi-itération. A chaque demi-itération, le décodeur exploite le décodage de l itération précédente et il délivre en sortie l apport du décodage courant. Chaque demi-itération se déroule comme l indique la figure 5. Ce décodeur dispose de deux entrées et de deux sorties. La première entrée reçoit le mot d information R k du décodage précédent. Lors de la première demi-itération, cette information est égale au mot reçu du canal. Le décodeur effectue le décodage EPSP des lignes ou des colonnes du mot et délivre en sortie le nouveau mot R + k tandis que la deuxième sortie délivre une copie du mot R k. Lors de la dernière demi-itération, c est la décision sur le mot D k qui est retenue. L algorithme de décodage du code élémentaire BCH (128,120,4) suit les premières étapes suivantes : 1) Réception du mot R k 2) Recherche des 5 symboles les moins fiables pour les 128 symboles du mot reçu, à partir des fiabilités de chaque symbole. 3) Construction des vecteurs de test 4) Calcul du syndrome du 1 er vecteur de test : S 1 = r (α) = 127 j=0 r j αj où r j représente un bit du vecteur de test et α j est un élément du corps de Galois GF(128). Le syndrome permet de détecter une erreur éventuelle dans le vecteur de test considéré. Il est de valeur nulle si et seulement si le mot reçu est un mot de code. Par conséquent, un syndrome non nul indique une erreur de transmission. 5) Calcul des syndromes pour les 15 autres vecteurs de test : S i = S 1 j pos

16 16 Technique et science informatiques 7/2006. SYMPA MF(j) où pos-mf(j) est la position du ou des bits inversés dans chaque vecteur de test. Les étapes suivantes de l algorithme sont : la correction des 16 vecteurs de test, le calcul des métriques, la sélection du mot décidé et des mots concurrents, le calcul de la nouvelle fiabilité pour chaque symbole du mot décidé, le calcul de l information extrinsèque et l addition avec le mot reçu du canal Programmation d éléments de turbo décodage Dans le cadre de l étude du turbo décodeur, on s intéresse à la recherche des 5 symboles les moins fiables (étape 2) et au calcul des syndromes (étapes 4 et 5). Pour la modélisation des différents calculs, on travaille directement au niveau des équations de l algorithme de décodage en manipulant les données de manière abstraite. Cela implique la définition d une arithmétique spécifique notamment pour le calcul du syndrome. Modélisation de la recherche des 5 symboles les moins fiables Cet algorithme correspond à la recherche des 5 symboles qui ont les plus petites fiabilités parmi les 128 symboles que l on reçoit en entrées. On récupère les valeurs ainsi que les positions des fiabilités dans le vecteur des 128 symboles. La recherche du minimum se base sur un découpage hiérarchique effectuant la comparaison élémentaire de deux fiabilités en précisant leur position. Chaque fiabilité correspond à 4 des 5 bits d un symbole. La position de la fiabilité minimale pouvant varier de la place 0 à 127. fiabililité fiabililité position... position... comparaison élémentaire (a) comparaison élémentaire (b) Figure 6. Recherche des symboles les moins fiables et de leurs positions dans la version en cascade (a) et la version en arbre (b). On propose dans ce paragraphe deux organisations hiérarchiques basées sur ces comparaisons élémentaires : organisation en arbre ou en cascade illustrées en figure 6. Ces deux versions diffèrent essentiellement sur deux aspects : la dynamique des données et la latence du circuit. Dans l organisation en arbre tous les noeuds connectés directement aux entrées ont la même dynamique de valeurs notamment pour les positions des valeurs (cette position pouvant être codée sur 1 bit en sortie du bloc

17 Synthèse portable avec MADEO n 1 n... 2n n 1 n... 2n 1 motrecu motrecu motrecu motrecu... motrecu motrecu motrecu motrecu motrecu... motrecu (a) + (b) Figure 7. Modélisation en cascade(a) ou en arbre du calcul du syndrome(b). élémentaire de comparaison) alors que dans la version en cascade le codage de cette valeur de sortie varie au fil de la progression dans la cascade. La latence du circuit alors atteinte dans le cas de la cascade est proportionnelle au nombre de comparaisons élémentaires alors que dans la version en arbre elle varie en fonction de sa hauteur. Pour trouver les 5 éléments les moins fiables, on réplique 5 instances des circuits précédents. La première instance calcule le premier élément le moins fiable avec sa position. La seconde prend en entrée à la position du moins fiable trouvé précédemment la valeur maximale, ce qui permet de trouver le deuxième élément le moins fiable ainsi de suite pour trouver le troisième, quatrième et cinquième élément le moins fiable. Une version synchrone séquentielle de la recherche du ou des moins fiables peut aussi être envisagée. En effet, la cellule de comparaison élémentaire peut être utilisée en version synchrone avec un rebouclage sur une des entrées pour effectuer le calcul du moins fiable au fur et à mesure que les symboles arrivent de manière séquentielle. Pour calculer 5 moins fiables, le mieux est de redéfinir une cellule de base pouvant définir les 5 dernières fiabilités minimales à partir des minimaux des itérations précédentes et de la fiabilité du symbole courant. Modélisation du calcul des syndromes Le calcul des syndromes utilise des éléments du corps de Galois pouvant être directement modélisés avec Madeo en utilisant un typage spécifique. Le calcul se fait sur une trame de 128 bits représentés par les éléments r j, combinés aux éléments du corps de Galois représentés par α j par l équation ci-dessous. Cette équation correspond donc à l addition d éléments du corps GF(128). La valeur de r j définit un filtre permettant de considérer ou non l élément de GF(128) qui lui est associé dans la somme. 127 n 1 S 1 = r j 2n 1 αj = r j αj + r j αj + + j=0 j=0 j=n 127 j=128 n r j αj

18 18 Technique et science informatiques 7/2006. SYMPA Cette équation a été découpée en utilisant des éléments de base de taille variable pouvant prendre en compte l addition de 2(n = 2), 4(n = 4) ou 8(n = 8) éléments du corps de Galois. Le calcul global du syndrome peut être effectué comme pour celui de la recherche des moins fiables en considérant une organisation en cascade d éléments de type motrecu ou une organisation en arbre (les additions se faisant dans le corps de Galois). Ces deux organisations utilisant n éléments sont illustrées dans la figure 7. Le circuit permet de calculer non seulement le premier syndrome mais aussi tous les autres syndromes, car ceux-ci s obtiennent par permutation des bits de signe représentés par r j. Arithmétique dans le corps de Galois Le calcul du syndrome utilise une arithmétique dans le corps de Galois GF(128) (l opérateur + de la figure 7 ). Cette nouvelle arithmétique mise en place dans Madeo, a été construite de manière générique pour tous les corps de type GF(2 n ). Il existe cependant d autres propositions d implémentation (Paar et al., 1997). Dans les corps finis du type GF(2 n ), les éléments peuvent être représentés par des polynômes de degré n 1 dont les coefficients appartiennent au corps GF(2) (réprésentant l ensemble des entiers naturels modulo 2). On peut associer à ces éléments des valeurs binaires correspondant aux coefficients du polynôme associé. Ceci correspond à l encodage par typage pour Madeo mais tout autre encodage pourrait être utilisé. On montre dans la section 5.2 l influence du choix du codage sur la synthèse. Pour ces corps, on définit : l opération + comme un ou-exclusif des valeurs du codage binaire associées aux éléments du corps. l opération dans le corps de Galois s effectue en réalisant la division euclidienne par un polynôme générateur, cependant il est classique d effectuer ces opérations en utilisant des tables de logarithmes. La modélisation adoptée utilise des tables de logarithmes construites automatiquement en fonction du polynome générateur considéré pour le corps Synthèse et résultats avec Madeo Pour la synthèse de la recherche du symbole le moins fiable et celle du calcul du syndrome, les critères retenus ont été la granularité de la cellule de base à synthétiser par SIS, l organisation algorithmique du problème et l encodage des valeurs notamment pour des valeurs non entières comme dans le cas du syndrome. L impact de ces métriques est évalué en donnant la complexité du circuit en nombre de LUTs. Les résultats obtenus dans cette étude sont donnés pour une architecture cible constante dont l élément de base est une LUT à 4 entrées(lut-4). Les optimisations de haut niveau sur le graphe initial de calcul ont été systématiquement appliquées avant

19 Synthèse portable avec MADEO 19 d effectuer la synthèse. La recherche du moins fiable Une seule cellule de base a été retenue pour cette étude, basée sur une décomposition hiérarchique comprenant un comparateur de fiabilité rendant le minimum de deux fiabilités et un multiplexeur récupérant la position du minimum. La cellule de base a une complexité maximale de 38 LUTs se répartissant en 31 LUTs pour la comparaison de deux fiabilités, 7 pour le multiplexeur. En utilisant les techniques de re-synthèse de la section 3.2, cette complexité peut être légèrement diminuée à 31 LUTs pour les cellules ayant une dynamique minimale pour le codage de la position (premier étage de la version en arbre ou première cellule de la version cascadée). Ce qui donne la complexité suivante pour les deux versions : pour une organisation en cascade, on a = 4819 LUTs pour une organisation en arbre, on a = 4378 LUTs Ces résultats montrent que le gain est limité en utilisant la dynamique de données. La complexité des éléments associés aux éléments de base varie relativement peu, le seul élément fluctuant dans ce cas est le multiplexeur dont la complexité varie de 1 à 7 LUTs. Pour la décomposition en arbre, l utilisation dégradée de ces multiplexeurs peut réduire sensiblement l occupation de la surface à savoir 31 pour le premier étage, 33 pour le deuxième, puis 34, 35, 36 et 37 (soit globalement = 4045). Pour la version en cascade, la dynamique des données étant plus irrégulière, les dégradations progressives et prédictibles en complexité du multiplexeur ne sont pas observées. Synthèse du syndrome Dans le cas du syndrome, la granularité de la cellule de base motrecu est prise en compte (variation du paramètre n de la figure 6). Le tableau 2 donne l impact de la granularité sur la complexité finale du circuit. La complexité en nombre de LUTs du tableau 2 correspond à une organisation algorithmique cascadée. La complexité minimale est trouvée pour une granularité de l élément de base égale à 4 bits ce qui peut s expliquer par la granularité choisie pour le FPGA cible (LUT-4). Granularité de la 2 bits 4 bits 8 bits 16 bits cellule de base nb LUTs Tableau 2. Résultats des différents découpages en fonction du grain des éléments de base motrecu,pour une organisaton en cascade. Le tableau 3 montre l impact de l encodage des éléments du corps de Galois et de l organisation algorithmique. Si l on change l encodage de ces éléments, encodage

20 20 Technique et science informatiques 7/2006. SYMPA Organisation encodage indexation algorithmique par typage (encodage ordinal) en cascade en arbre Tableau 3. Impact de l encodage des valeurs sur la complexité du circuit en LUT(cas cellule de base 4 bits). ordinal au lieu de l encodage par typage correspondant à celui de la section 5.1, on obtient des solutions plus coûteuses en surface. L organisation en cascade donne un résultat plus intéressant en surface car tous les opérateurs + profitent des simplifications effectuées au niveau de la cellule motrecu, ce qui n est pas le cas dans la version en arbre. Comparaison avec les résultats de SystemC Les résultats obtenus ont été comparés avec les résultats issus de la modélisation faite en SystemC à l ENSTBr (Piriou et al., 2004). L approche SystemC repose sur une description RTL de l algorithme de décodage. Par exemple, pour le calcul du syndrome sont utilisés une mémoire de coefficients correspondant aux éléments du corps de Galois et des additionneurs à base de ou-exclusifs. La synthèse est ensuite effectuée avec SystemC Compiler de Synopsys (SYNOPSYS 2002) ciblant des FPGAs de même granularité que Madeo. Madeo effectue une synthèse à partir des équations abstraites proposant des variations architecturales (variations sur l organisation hiérarchique). Les expressions utilisant des constantes entières ou non comme celles du corps de Galois sont simplifiées avant d être synthétisées. Madeo SystemC Syndrome 217LUTs 580LUTs Recherche 4045LUTs comparaisons(4 bits) du moins (version décalages de 2 registres fiable combinatoire) composés de 5 7 et 5 4 bascules Tableau 4. Comparaison des complexités des circuits obtenus par Madeo et SystemC. Pour le calcul de syndrome un traitement parallèle des mots reçus a été effectué avec Madeo et SystemeC permettant ainsi leur comparaison. Cependant, pour la recherche des 5 symboles les moins fiables, la version SystemC utilise un traitement complètement séquentiel alors que l approche Madeo reste combinatoire. Une solution séquentielle avec Madeo reste à étudier afin de raffiner la comparaison. Un circuit placé-routé avec les outils physiques de Madeo (version combinatoire et cascadée de la recherche des moins fiables) est donné dans la figure 3.

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

ASR1 TD7 : Un microprocesseur RISC 16 bits

ASR1 TD7 : Un microprocesseur RISC 16 bits {Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit

Plus en détail

Transmission d informations sur le réseau électrique

Transmission d informations sur le réseau électrique Transmission d informations sur le réseau électrique Introduction Remarques Toutes les questions en italique devront être préparées par écrit avant la séance du TP. Les préparations seront ramassées en

Plus en détail

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

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Représentation des Nombres

Repré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étail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

IFT1215 Introduction aux systèmes informatiques

IFT1215 Introduction aux systèmes informatiques Introduction aux circuits logiques de base IFT25 Architecture en couches Niveau 5 Niveau 4 Niveau 3 Niveau 2 Niveau Niveau Couche des langages d application Traduction (compilateur) Couche du langage d

Plus en détail

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration Julien MATHEVET Alexandre BOISSY GSID 4 Rapport Load Balancing et migration Printemps 2001 SOMMAIRE INTRODUCTION... 3 SYNTHESE CONCERNANT LE LOAD BALANCING ET LA MIGRATION... 4 POURQUOI FAIRE DU LOAD BALANCING?...

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION 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étail

ISO/CEI 11172-3 NORME INTERNATIONALE

ISO/CEI 11172-3 NORME INTERNATIONALE NORME INTERNATIONALE ISO/CEI 11172-3 Première édition 1993-08-01 Technologies de l information - Codage de l image animée et du son associé pour les supports de stockage numérique jusqu à environ Ii5 Mbit/s

Plus en détail

Extrait des Exploitations Pédagogiques

Extrait des Exploitations Pédagogiques Pédagogiques Module : Compétitivité et créativité CI Première : Compétitivité et créativité CI institutionnel : Développement durable et compétitivité des produits Support : Robot - O : Caractériser les

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas

Plus en détail

Théorie et Codage de l Information (IF01) exercices 2013-2014. Paul Honeine Université de technologie de Troyes France

Théorie et Codage de l Information (IF01) exercices 2013-2014. Paul Honeine Université de technologie de Troyes France Théorie et Codage de l Information (IF01) exercices 2013-2014 Paul Honeine Université de technologie de Troyes France TD-1 Rappels de calculs de probabilités Exercice 1. On dispose d un jeu de 52 cartes

Plus en détail

VIII- Circuits séquentiels. Mémoires

VIII- Circuits séquentiels. Mémoires 1 VIII- Circuits séquentiels. Mémoires Maintenant le temps va intervenir. Nous avions déjà indiqué que la traversée d une porte ne se faisait pas instantanément et qu il fallait en tenir compte, notamment

Plus en détail

Modé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 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étail

Représentation d un entier en base b

Repré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étail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

EXCEL TUTORIEL 2012/2013

EXCEL TUTORIEL 2012/2013 EXCEL TUTORIEL 2012/2013 Excel est un tableur, c est-à-dire un logiciel de gestion de tableaux. Il permet de réaliser des calculs avec des valeurs numériques, mais aussi avec des dates et des textes. Ainsi

Plus en détail

Théorie et codage de l information

Théorie et codage de l information Théorie et codage de l information Les codes linéaires - Chapitre 6 - Principe Définition d un code linéaire Soient p un nombre premier et s est un entier positif. Il existe un unique corps de taille q

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture 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étail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Classe de terminale de la série Sciences et Technologie du Management et de la Gestion Préambule Présentation Les technologies de l information

Plus en détail

GUIDE Excel (version débutante) Version 2013

GUIDE Excel (version débutante) Version 2013 Table des matières GUIDE Excel (version débutante) Version 2013 1. Créer un nouveau document Excel... 3 2. Modifier un document Excel... 3 3. La fenêtre Excel... 4 4. Les rubans... 4 5. Saisir du texte

Plus en détail

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

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique DOMAINE P3.C3.D1. Pratiquer une démarche scientifique et technologique, résoudre des

Plus en détail

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

DU 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étail

IV- Comment fonctionne un ordinateur?

IV- 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étail

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

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 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étail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Parallélisme et Répartition

Parallélisme et Répartition Parallélisme et Répartition Master Info Françoise Baude Université de Nice Sophia-Antipolis UFR Sciences Département Informatique baude@unice.fr web du cours : deptinfo.unice.fr/~baude Septembre 2009 Chapitre

Plus en détail

Cours n 12. Technologies WAN 2nd partie

Cours n 12. Technologies WAN 2nd partie Cours n 12 Technologies WAN 2nd partie 1 Sommaire Aperçu des technologies WAN Technologies WAN Conception d un WAN 2 Lignes Louées Lorsque des connexions dédiées permanentes sont nécessaires, des lignes

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

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

Mé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étail

IFT2255 : Génie logiciel

IFT2255 : Génie logiciel IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti

Plus en détail

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

Cours 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étail

Sanity Check. bgcolor mgcolor fgcolor

Sanity Check. bgcolor mgcolor fgcolor Sanity Check bgcolor mgcolor fgcolor 0 1 2 3 4 5 6 7 8 9 10 Compilation pour cibles hétérogènes: automatisation des analyses, transformations et décisions nécessaires, François Irigoin et Ronan Keryell

Plus en détail

V- Manipulations de nombres en binaire

V- 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étail

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN 1. DÉVELOPPEMENT D'APPLICATION (CONCEPTEUR ANALYSTE) 1.1 ARCHITECTURE MATÉRIELLE DU SYSTÈME INFORMATIQUE 1.1.1 Architecture d'un ordinateur Processeur,

Plus en détail

Continuité et dérivabilité d une fonction

Continuité et dérivabilité d une fonction DERNIÈRE IMPRESSIN LE 7 novembre 014 à 10:3 Continuité et dérivabilité d une fonction Table des matières 1 Continuité d une fonction 1.1 Limite finie en un point.......................... 1. Continuité

Plus en détail

ELP 304 : Électronique Numérique. Cours 1 Introduction

ELP 304 : Électronique Numérique. Cours 1 Introduction ELP 304 : Électronique Numérique Cours 1 Introduction Catherine Douillard Dépt Électronique Les systèmes numériques : généralités (I) En électronique numérique, le codage des informations utilise deux

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmé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étail

Cours 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 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étail

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes. Introduction L'objectif de mon TIPE est la reconnaissance de sons ou de notes de musique à l'aide d'un réseau de neurones. Ce réseau doit être capable d'apprendre à distinguer les exemples présentés puis

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES 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

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

Introduction à l étude des Corps Finis

Introduction à l étude des Corps Finis Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur

Plus en détail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme

Plus en détail

Figure 1 : représentation des différents écarts

Figure 1 : représentation des différents écarts ulletin officiel spécial n 9 du 30 septembre 2010 Annexe SIENES DE L INGÉNIEUR YLE TERMINAL DE LA SÉRIE SIENTIFIQUE I - Objectifs généraux Notre société devra relever de nombreux défis dans les prochaines

Plus en détail

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

Plus en détail

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation

Plus en détail

Architecture des ordinateurs

Architecture 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étail

Méthodologie de conceptualisation BI

Méthodologie de conceptualisation BI Méthodologie de conceptualisation BI Business Intelligence (BI) La Business intelligence est un outil décisionnel incontournable à la gestion stratégique et quotidienne des entités. Il fournit de l information

Plus en détail

Programmation parallèle et distribuée

Programmation parallèle et distribuée Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2015) Marc Parizeau, Département de génie électrique et de génie informatique Plan Données massives («big data») Architecture Hadoop distribution

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Quantification Scalaire et Prédictive

Quantification Scalaire et Prédictive Quantification Scalaire et Prédictive Marco Cagnazzo Département Traitement du Signal et des Images TELECOM ParisTech 7 Décembre 2012 M. Cagnazzo Quantification Scalaire et Prédictive 1/64 Plan Introduction

Plus en détail

NOTIONS DE RESEAUX INFORMATIQUES

NOTIONS DE RESEAUX INFORMATIQUES NOTIONS DE RESEAUX INFORMATIQUES GENERALITES Définition d'un réseau Un réseau informatique est un ensemble d'équipements reliés entre eux afin de partager des données, des ressources et d'échanger des

Plus en détail

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm) Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 - Evénements et architectures - Spécifications de performances

Plus en détail

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

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Limitations of the Playstation 3 for High Performance Cluster Computing

Limitations 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étail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

Les diagrammes de modélisation

Les diagrammes de modélisation L approche Orientée Objet et UML 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse

Plus en détail

Big Data et Graphes : Quelques pistes de recherche

Big Data et Graphes : Quelques pistes de recherche Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université

Plus en détail

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Loris MARCHAL Laboratoire de l Informatique du Parallélisme Équipe Graal Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Thèse réalisée sous la direction

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

Système à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive. Version 1.0

Système à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive. Version 1.0 Système à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive Sommaire - Le Robot M.I.M.I. (Multipode Intelligent à Mobilité Interactive) - Présentation du Système à Enseigner. - Composition

Plus en détail

UML (Diagramme de classes) Unified Modeling Language

UML (Diagramme de classes) Unified Modeling Language UML (Diagramme de classes) Unified Modeling Language Sommaire Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opération) Visibilité et portée des constituants d une classe Association

Plus en détail

Infolettre #18 : Les graphiques avec Excel 2010

Infolettre #18 : Les graphiques avec Excel 2010 Infolettre #18 : Les graphiques avec Excel 2010 Table des matières Introduction... 1 Hourra! Le retour du double-clic... 1 Modifier le graphique... 4 Onglet Création... 4 L onglet Disposition... 7 Onglet

Plus en détail

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr 6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure

Plus en détail

Programmes des classes préparatoires aux Grandes Ecoles

Programmes des classes préparatoires aux Grandes Ecoles Programmes des classes préparatoires aux Grandes Ecoles Filière : scientifique Voies : Mathématiques, physique et sciences de l'ingénieur (MPSI) Physique, chimie et sciences de l ingénieur (PCSI) Physique,

Plus en détail

Direction des Études et Synthèses Économiques Département des Comptes Nationaux Division des Comptes Trimestriels

Direction des Études et Synthèses Économiques Département des Comptes Nationaux Division des Comptes Trimestriels Etab=MK3, Timbre=G430, TimbreDansAdresse=Vrai, Version=W2000/Charte7, VersionTravail=W2000/Charte7 Direction des Études et Synthèses Économiques Département des Comptes Nationaux Division des Comptes Trimestriels

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

nom : Collège Ste Clotilde

nom : Collège Ste Clotilde UNE CONFIGURATION INFORMATIQUE Objectif : Identifier les éléments principaux d une configuration L ordinateur enregistre des données qu il traite pour produire un résultat Sifflements 20 Notice 12 attache

Plus en détail

Modélisation et Simulation

Modélisation et Simulation Cours de modélisation et simulation p. 1/64 Modélisation et Simulation G. Bontempi Département d Informatique Boulevard de Triomphe - CP 212 http://www.ulb.ac.be/di Cours de modélisation et simulation

Plus en détail

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

MICROINFORMATIQUE 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étail

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre : Terminale STSS 2 012 2 013 Pourcentages Synthèse 1) Définition : Calculer t % d'un nombre, c'est multiplier ce nombre par t 100. 2) Exemples de calcul : a) Calcul d un pourcentage : Un article coûtant

Plus en détail

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS Sauvegarde collaborative entre pairs 1 Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS Sauvegarde collaborative entre pairs 2 Introduction Pourquoi pair à pair? Utilisation de ressources

Plus en détail

Chapitre 2 : Systèmes radio mobiles et concepts cellulaires

Chapitre 2 : Systèmes radio mobiles et concepts cellulaires Chapitre 2 : Systèmes radio mobiles et concepts cellulaires Systèmes cellulaires Réseaux cellulaires analogiques de 1ère génération : AMPS (USA), NMT(Scandinavie), TACS (RU)... Réseaux numériques de 2ème

Plus en détail

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes. Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de

Plus en détail

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

Codage 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étail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Université de Bangui. Modélisons en UML

Université de Bangui. Modélisons en UML Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et

Plus en détail

Processus d Informatisation

Processus d Informatisation Processus d Informatisation Cheminement de la naissance d un projet jusqu à son terme, deux grandes étapes : Recherche ou étude de faisabilité (en amont) L utilisateur a une idée (plus ou moins) floue

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Calculer avec Sage. Revision : 417 du 1 er juillet 2010 Calculer avec Sage Alexandre Casamayou Guillaume Connan Thierry Dumont Laurent Fousse François Maltey Matthias Meulien Marc Mezzarobba Clément Pernet Nicolas Thiéry Paul Zimmermann Revision : 417 du 1

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception 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étail

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6

Plus en détail

Les algorithmes de base du graphisme

Les algorithmes de base du graphisme Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............

Plus en détail

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Architecture d'entreprise : Guide Pratique de l'architecture Logique Guides Pratiques Objecteering Architecture d'entreprise : Guide Pratique de l'architecture Logique Auteur : Version : 1.0 Copyright : Softeam Equipe Conseil Softeam Supervisée par Philippe Desfray Softeam

Plus en détail

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes

Plus en détail

chapitre 4 Nombres de Catalan

chapitre 4 Nombres de Catalan chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé Baccalauréat ES Pondichéry 7 avril 204 Corrigé EXERCICE 4 points Commun à tous les candidats. Proposition fausse. La tangente T, passant par les points A et B d abscisses distinctes, a pour coefficient

Plus en détail

Chapitre 2 : communications numériques.

Chapitre 2 : communications numériques. Chapitre 2 : communications numériques. 1) généralités sur les communications numériques. A) production d'un signal numérique : transformation d'un signal analogique en une suite d'éléments binaires notés

Plus en détail

Créer le schéma relationnel d une base de données ACCESS

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

Plus en détail

Thè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 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étail

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007 Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................

Plus en détail