Download Free Systemes Multiprocesseurs Sur Puce 2 Book in PDF and EPUB Free Download. You can read online Systemes Multiprocesseurs Sur Puce 2 and write the review.

Les systèmes multiprocesseurs sur puce (MPSoC) sont des composants clés pour les applications complexes qui impliquent une grande pression sur la mémoire, les dispositifs de communication et les unités de calcul. Depuis vingt ans, MPSoC rassemble, lors d’un forum interdisciplinaire, des experts des systèmes matériels, des logiciels multicoeurs et des multiprocesseurs venus du monde entier. C’est pour célébrer le 20e anniversaire de MPSoC que cet ouvrage est publié, de même que le second tome sur les applications. Systèmes multiprocesseurs sur puce 2 est consacré aux applications. Il couvre la conception de MPSoC, les compilateurs et l’exploration d’architectures. Il décrit les méthodes d’optimisation et les outils permettant de porter des applications spécifiques sur les architectures MPSoC : la compilation, la consommation d’énergie et la communication sans fil sont détaillées, des exemples d’outils de modélisation et de CAO sont présentés ainsi que les plates-formes spécifiques pour l’automobile et l’informatique en temps réel.
Les systèmes multiprocesseurs sur puce (MPSoC) sont des composants clés pour les applications complexes qui impliquent une grande pression sur la mémoire, les dispositifs de communication et les unités de calcul. Depuis vingt ans, MPSoC rassemble, lors d’un forum interdisciplinaire, des experts des systèmes matériels, des logiciels multicoeurs et des multiprocesseurs venus du monde entier. C’est pour célébrer le 20e anniversaire de MPSoC que cet ouvrage est publié, de même que le second tome sur les applications. Systèmes multiprocesseurs sur puce 1 est consacré aux architectures. Il décrit les caractéristiques avancées des composants clés des MPSoC : les processeurs, la mémoire, l’interconnexion et les interfaces. Il détaille également les technologies permettant de construire des architectures MPSoC efficaces, en particulier l’utilisation de la mémoire et de sa technologie, le support et la cohérence des communications et des architectures de processeurs spécifiques pour les applications générales ou dédiées.
Les travaux présentés dans cette thèse visent à concevoir une architecture performante et efficace pour la gestion de la cohérence des données dans les mémoires caches des systèmes sur puce multiprocesseurs (MPSoC). Dans cette thèse nous nous intéressons tout particulièrement aux architectures à mémoire partagée et aux applications de traitement de signal intensif. Plusieurs solutions ont été proposées dans le passé pour résoudre ce problème. Néanmoins, la majorité de ces solutions existantes ont été pensé pour les systèmes multiprocesseurs haute-performances. Dans ce type de systèmes les contraintes liées aux ressources matérielles et à la consommation d’énergie sont rarement prises en compte. A l’opposé, dans les systèmes embarqués qui nous intéressent ici, ces contraintes jouent un rôle de premier plan. De plus, les solutions existantes ne prennent pas en compte les modèles d’accès aux données partagées réalisés par les processeurs. Nous proposons dans cette thèse un nouveau protocole de gestion de la cohérence de cache basé sur deux protocoles simples, nommément les protocoles par invalidation et par mise à jour. De plus le protocole proposé s’adapte automatiquement aux modèles d’accès aux données. Une architecture matérielle qui facilite son implémentation et qui optimise ses performances est également proposée. Les résultats expérimentaux montrent que le protocole proposé
Les systèmes multiprocesseurs sur puce, tel que le processeur CELL ou plus récemment Platform 2012, sont des architectures multicœurs hétérogènes constitués d'un processeur host et d'une fabric de calcul qui consiste en plusieurs petits cœurs dont le rôle est d'agir comme un accélérateur programmable. Les parties parallélisable d'une application, qui initialement est supposé etre executé par le host, et dont le calcul est intensif sont envoyés a la fabric multicœurs pour être exécutés. Ces applications sont en général des applications qui manipulent des tableaux trés larges de données, ces données sont stockées dans une memoire distante hors puce (off-chip memory) dont l 'accès est 100 fois plus lent que l 'accès par un cœur a une mémoire locale. Accéder ces données dans la mémoire off-chip devient donc un problème majeur pour les performances. une characteristiques principale de ces plateformes est une mémoire local géré par le software, au lieu d un mechanisme de cache, tel que les mouvements de données dans la hiérarchie mémoire sont explicitement gérés par le software. Dans cette thèse, l 'objectif est d'optimiser ces transfert de données dans le but de reduire/cacher la latence de la mémoire off-chip .
A Multi-Processor System-on-Chip (MPSoC) is the key component for complex applications. These applications put huge pressure on memory, communication devices and computing units. This book, presented in two volumes – Architectures and Applications – therefore celebrates the 20th anniversary of MPSoC, an interdisciplinary forum that focuses on multi-core and multi-processor hardware and software systems. It is this interdisciplinarity which has led to MPSoC bringing together experts in these fields from around the world, over the last two decades. Multi-Processor System-on-Chip 1 covers the key components of MPSoC: processors, memory, interconnect and interfaces. It describes advance features of these components and technologies to build efficient MPSoC architectures. All the main components are detailed: use of memory and their technology, communication support and consistency, and specific processor architectures for general purposes or for dedicated applications.
L'intégration de plusieurs processeurs hétérogènes en un seul système sur puce (SoC) est une tendance claire dans les systèmes embarqués. La conception et la vérification de ces systèmes nécessitent des plateformes rapides de simulation, et faciles à construire. Parmi les approches de simulation de logiciels, la simulation native est un bon candidat grâce à l'exécution native de logiciel embarqué sur la machine hôte, ce qui permet des simulations à haute vitesse, sans nécessiter le développement de simulateurs d'instructions. Toutefois, les techniques de simulation natives existantes exécutent le logiciel de simulation dans l'espace de mémoire partagée entre le matériel modélisé et le système d'exploitation hôte. Il en résulte de nombreux problèmes, par exemple les conflits l'espace d'adressage et les chevauchements de mémoire ainsi que l'utilisation des adresses de la machine hôte plutôt des celles des plates-formes matérielles cibles. Cela rend pratiquement impossible la simulation native du code existant fonctionnant sur la plate-forme cible. Pour surmonter ces problèmes, nous proposons l'ajout d'une couche transparente de traduction de l'espace adressage pour séparer l'espace d'adresse cible de celui du simulateur de hôte. Nous exploitons la technologie de virtualisation assistée par matériel (HAV pour Hardware-Assisted Virtualization) à cet effet. Cette technologie est maintenant disponibles sur plupart de processeurs grande public à usage général. Les expériences montrent que cette solution ne dégrade pas la vitesse de simulation native, tout en gardant la possibilité de réaliser l'évaluation des performances du logiciel simulé. La solution proposée est évolutive et flexible et nous fournit les preuves nécessaires pour appuyer nos revendications avec des solutions de simulation multiprocesseurs et hybrides. Nous abordons également la simulation d'exécutables cross- compilés pour les processeurs VLIW (Very Long Instruction Word) en utilisant une technique de traduction binaire statique (SBT) pour généré le code natif. Ainsi il n'est pas nécessaire de faire de traduction à la volée ou d'interprétation des instructions. Cette approche est intéressante dans les situations où le code source n'est pas disponible ou que la plate-forme cible n'est pas supporté par les compilateurs reciblable, ce qui est généralement le cas pour les processeurs VLIW. Les simulateurs générés s'exécutent au-dessus de notre plate-forme basée sur le HAV et modélisent les processeurs de la série C6x de Texas Instruments (TI). Les résultats de simulation des binaires pour VLIW montrent une accélération de deux ordres de grandeur par rapport aux simulateurs précis au cycle près.
Current multimedia and telecom applications require complex, heterogeneous multiprocessor system on chip (MPSoC) architectures with specific communication infrastructure in order to achieve the required performance. Heterogeneous MPSoC includes different types of processing units (DSP, microcontroller, ASIP) and different communication schemes (fast links, non standard memory organization and access). Programming an MPSoC requires the generation of efficient software running on MPSoC from a high level environment, by using the characteristics of the architecture. This task is known to be tedious and error prone, because it requires a combination of high level programming environments with low level software design. This book gives an overview of concepts related to embedded software design for MPSoC. It details a full software design approach, allowing systematic, high-level mapping of software applications on heterogeneous MPSoC. This approach is based on gradual refinement of hardware/software interfaces and simulation models allowing to validate the software at different abstraction levels. This book combines Simulink for high level programming and SystemC for the low level software development. This approach is illustrated with multiple examples of application software and MPSoC architectures that can be used for deep understanding of software design for MPSoC.
Le cerveau des dispositifs électroniques est construit à partir de petits composants appelés circuits intégrés ("microchip" ou simplement puce). L'avènement de l'intégration à très grande échelle (VLSI - "Very Large Scale Integration") dans l'industrie microélectronique a permis l'assemblage de plusieurs composants dans une seule puce, appelée système sur puce (SoC - "System on a Chip"). Dans les applications multimédia, les systèmes sur puce contenant un seul processeur deviennent obsolètes en raison de la puissance requise : la puce contrôlant un téléphone intelligent peut contenir plusieurs dizaines de processeurs fonctionnant en parallèle qui exécutent des multitâches logicielles complexes, contrôlées par un O.S embarqué. Ces systèmes sont appelés systèmes multiprocesseurs sur puce (MP-SoC). SoCLib est un environnement de prototypage virtuel pour MP-SoC contenant diverses bibliothèques de modèles de simulation SystemC pour les composants matériels génériques (modèles de simulation IP-cores), y compris les différents niveaux d'abstraction. TLM-DT est une bibliothèque de composants MP-SOC inclus dans SoCLib. TLM-DT essaie de mélanger les principes TLM (modélisation au niveau transactionnel), et PDES (simulation parallèle à événements discrets). L'idée de TLM-DT est donc de soutenir les principes de simulation parallèle au niveau transactionnel. Le sujet principal de cette thèse est la simulation parallèle de prototypes MP-SoC modélisés avec la bibliothèque TLM-DT.
La simulation des systèmes embarqués multiprocesseurs (MPSoC), dés les premières phases de conception, joue un rôle primordial puisqu'elle permet de réduire le temps d'arrivée sur le marché du produit final. Néanmoins, comme ces MPSoC deviennent de plus en plus complexes et hétérogènes, les méthodes conventionnelles de simulation de bas niveau ne sont plus adéquates. La solution proposée à travers cette thèse est l'intégration dans un seul environnement de plusieurs niveaux de simulation. Ceci permet l'évaluation des performances à un niveau précoce dans le flot de conception. L'environnement est utile dans l'exploration de l'espace des solutions architecturales et permet de converger rapidement vers le couple Architecture/Application le plus adéquat. Dans la première partie de cette thèse, nous présentons un outil de simulation performant et qui offre, à travers les trois niveaux qui le composent, différents compromis entre la vitesse de simulation et la précision de l'estimation des performances. Ces trois niveaux se différencient par les détails de l'architecture nécessaires à chacun et se basent sur le standard SystemC-TLM. Dans la deuxième étape, nous nous sommes intéressés à la consommation d'énergie dans les MPSoc. Pour cela, nous avons enrichi notre environnement de simulation par des modèles de consommation d'énergie flexibles et précis. Enfin dans la troisième étape de notre thèse, une chaîne de compilation basée sur la méthodologie Ingénierie Dirigée par les Modèles (!DM) est développée et intégrée à l'environnement Gaspard. Cette chaîne permet la génération automatique du code SystemC à partir d'une modélisation de haut niveau d'un MPSoc.
Les systèmes parallèles de type multi/pluri-cœurs permettant d'obtenir une grande puissance de calcul à bas coût énergétique sont de nos jours une réalité. Néanmoins, l'exploitation des performances de ces architectures dépend de l'efficacité du système à gérer les accès aux données. Le but de nos travaux est d'améliorer l'efficacité de ces accès en exploitant les caractéristiques de l'architecture matérielle.Dans une première partie, nous proposons une nouvelle organisation de la hiérarchie des mémoires caches qui maximise l'utilisation de l'espace de stockage disponible à chaque niveau. Cette solution, basée sur les architectures à accès non uniforme au cache (NUCA), supporte les transferts inter et intra-niveau de la hiérarchie. Elle requiert un protocole de cohérence de cache qui s'adapte à ses spécifications.Certes, le transfert des données au niveau de la hiérarchie est aussi un déterminant de la performance du système. Dans une seconde partie, nous prenons en compte les besoins de communication spécifiques du protocole. Nous proposons un réseau virtualisé comme support de communication ad-hoc afin de gérer le trafic de cohérence à moindre coût. Ce dernier relie les caches d'un même niveau pour supporter les transferts intra-niveaux, qui sont une spécificité de notre protocole, en vue de réduire la latence moyenne d'accès.