Cet ouvrage fait partie de la bibliothèque YouScribe
Obtenez un accès à la bibliothèque pour le lire en ligne
En savoir plus

Architectures multi-processeurs homogènes monopuces sur SOC

De
82 pages
Ecole: UNIVERSITE BLAISE-PASCAL, CLERMONT-FERRAND II
Entreprise: aucune
Niveau: BAC + 5
Nous avons pu concevoir, simuler et valider une architecture simple avec deux processeurs communiquant par une liaison point à point simple. Cette architecture a ensuite pu être étendue à quatre puis huit processeurs. Le système à quatre processeurs a pu être intégré sur un circuit. De plus, les simulations de programme montrent que ces architectures sont efficaces sur des algorithmes parallèlisés. La méthodologie de conception de system-onchip par une approche multiprocesseur homogène est donc viable. A partir d'une architecture multiprocesseur extensible totalement définie et des outils de prototypage rapide de logiciels adaptés, cette méthode de conception peut permettre de profiter des avancés, d'intégration et de vitesse, dans le domaine des composants électroniques sans coûts de conception supplémentaires. De plus, les derniers tests avec un protocole de communication par DMA permettent de percevoir la capacité d'une telle approche pour des algorithmes parallélisables.
Voir plus Voir moins
FIANDINO Maxime
Date de création : Date de dépôt : Niveau :
01.07.2003 26.07.2005 BAC 5 +
Architectures multi-processeurs homogènes monopuces
sur SOC
U.F.R. Scientifique et Technique
Université Blaise Pascal Clermont-Ferrand
MEMOIRE présenté par Maxime Fiandino en vue de l’obtention du
Ecole Doctorale Sciences pour l’Ingénieur
D.E.A. «Composants et Systèmes pour le Traitement de l’Information»
Option “Vision pour la Robotique”
Laboratoire des Sciences et Matériaux pour l’Electronique, et d’Automatique (U.M.R. 6602 du C.N.R.S.)
Architectures multi-processeurs homogènes monopuces sur SOC
le 3 juillet 2003
Table des matières
Glossaire
Introduction
5
7
´ I État de l’art 9 1 Les architectures mémoires pour les systèmes multiproces-seurs 10 1.1 Les systèmes à mémoire partagée (Shared-memory) . . . . . . 10 1.2 Les systèmes à mémoire répartie (Distributed memory) . . . . 11 1.3 Comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.4 Les systèmes à mémoire distribuée partagée (DSM) . . . . . 12 2 Les problèmes de communications 14 2.1 Les architectures centralisées autour d’un bus système . . . . 14 2.2 Les architectures utilisant un crossbar . . . . . . . . . . . . . 15 2.3 Les communications point à point par topologies régulières . . 16 3 Le routage dans les topologies régulières 18 3.1 Le routage dans une grille . . . . . . . . . . . . . . . . . . . . 18 3.2 Le routage dans un hypercube . . . . . . . . . . . . . . . . . . 19 3.3 Le routage dans un tore . . . . . . . . . . . . . . . . . . . . . 20 3.4 Le routage dans un octagon . . . . . . . . . . . . . . . . . . . 21 3.5 Comparaison entre les topologies . . . . . . . . . . . . . . . . 21 4 La conception des systèmes monopuces sur circuits repro-grammables 23 4.1 Le codesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2 Méthode de synthèse automatique . . . . . . . . . . . . . . . 24 4.3 Multiprocesseur hétérogène et orienté DSP . . . . . . . . . . . 24 4.4 Multiprocesseur homogène monopuce . . . . . . . . . . . . . . 25
II Conception d’architectures multiprocesseurs mono-puce homogènes 27 5 Architecture en ligne avec 2 processeurs 28 5.1 Architecture minimale pour un processeur . . . . . . . . . . . 28 5.2 Présentation rapide des outils utilisés . . . . . . . . . . . . . . 29 5.2.1 Les outils logiciels . . . . . . . . . . . . . . . . . . . . 29
2
5.2.2 Les outils matériels . . . . . . . . . . . . . . . . . . . . 30 5.2.3 Le flot de conception . . . . . . . . . . . . . . . . . . . 31 5.3 Problème de conception . . . . . . . . . . . . . . . . . . . . . 33 5.3.1 Chargement d’un programme dans une structure multi-processeurs . . . . . . . . . . . . . . . . . . . . . . . . 33 5.3.2 Simulation d’une structure multi-processeurs . . . . . 33 5.4 Le routeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.5 La programmation de l’architecture . . . . . . . . . . . . . . . 35 5.5.1 Le développement . . . . . . . . . . . . . . . . . . . . 35 5.5.2 La communication vis à vis de la programmation . . . 35 5.6 Les tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6 Architecture en grille avec 4 processeurs 38 6.1 Les problèmes de communication . . . . . . . . . . . . . . . . 38 6.2 Chargement de la mémoire de programme . . . . . . . . . . . 39 6.3 Intégration dans un composant . . . . . . . . . . . . . . . . . 40 6.3.1 Le choix du composant . . . . . . . . . . . . . . . . . . 40 6.3.2 Problème de nombre de portes . . . . . . . . . . . . . 40 6.4 Les tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.4.1 La limitation des outils . . . . . . . . . . . . . . . . . 41 6.4.2 Calcul d’une convolution . . . . . . . . . . . . . . . . . 41 7 L’architecture en cube 43 7.1 La conception . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.2 Conséquences . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
III Les architectures avec DMA(Direct Memory Acces) 44 8 La communication par DMA 45 8.1 Les avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 8.2 Les inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . 45 8.3 Transfert de données par DMA entre deux processeurs . . . . 46 9 Implantation de design 4 puis 8 processeurs avec DMA 48 9.1 4 processeurs avec DMA . . . . . . . . . . . . . . . . . . . . . 48 9.2 8 processeurs avec DMA . . . . . . . . . . . . . . . . . . . . . 48 9.3 Performance d’une convolution sur les architectures avec DMA 48 9.3.1 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . 49 9.3.2 Problèmes . . . . . . . . . . . . . . . . . . . . . . . . . 49 10 Données en mémoires externes 51 10.1 Réalisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 10.2 Implications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3
Perspectives
Conclusion Liste des figures . . Liste des tableaux
Bibliographie
. .
. .
. .
. .
. .
. .
. .
. .
. .
4
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
53
54 55 56
57
Glossaire
CPU (Computer Processing Unit) :Sigle utilisé pour désigner le proces-seur. Il est souvent utilisé pour rendre compte du temps de calcul nécessaire (ou temps CPU). Chip :Circuit intégré de type mémoire, microprocesseur ou autre. DMA (Direct Memory Acces) :Accès direct à une mémoire sans passer par son processeur ce qui permet d’accélérer les transferts et de libérer le processeur. DSP (Digital Signal Processor) :Processeur de signal numérique. Il est spécialisé dans certains calculs numériques (multiplication, MAC, transfor-mées de Fourier...). FPGA (Field Programmable Gate Arrey) :Composant électronique numérique programmable. Grâce, par exemple, au langage VHDL, des cir-cuits sont conçus puis implantés au coeur des FPGA. Ils deviennent alors des composants personnalisés reprogrammables. Interblocage (deadlock) :Blocage du système du fait de deux processus qui s’attendent mutuellement, ou d’un processus qui ne peut se terminer car il attend des ressources qui ne lui seront jamais attribuées . IP (Intellectual property) :code source d’un composant qui peut êtreLe implanté sur un système intégré. LUT (Look Up Table) :Table de correspondance, il s’agit d’une table permettant la conversion rapide de données. MAC (Multiply and ACcumulate) :Instruction de multiplication puis addition en un seul cycle soity=ax+b. MIMD (Multiple Instruction Multiple Data) :Plusieurs données trai-tées en même temps par plusieurs instructions. Utilisé dans certains ordina-teurs parallèles. MISD (Multiple Instruction Single Data) :Une donnée traitée en même temps par plusieurs instructions et qui fournissent un seul résultat. Ce modèle peut englober certains types de flots de données, comme les pro-cesseurs utilisant un pipeline d’instruction. Pipeline :pour les exécuter à la chaîne. ParDécoupage des instructions exemple lorsque le processeur exécute la première partie d’une instruction, il exécute simultanément la seconde partie de l’instruction précédente. . PC (Personal Computer) :Ordinateur personnel, ordinateur standard vendu actuellement en grand nombre. RAM (Random Access Memory) :La mémoire vive de la machine où les variables sont stockées pour les calculs. Elle peut être de plusieurs types, comme statique ou dynamique. RISC (Reduced Instruction Set Computer) :Ordinateur à jeu d’ins-truction réduit.
5
ROM (Read Only Memory) :Mémoire seulement lisible. Elle est le plus souvent utilisé pour stocker le tout premier programme à exécuter sur la machine au démarrage. SDRAM (Synchronous Dynamic RAM) :Mémoire dynamique syn-chrone. SIMD (Single Instruction Multiple Data) :Encore appelées machines vectorielles ou matricielles suivant leurs topologies, une instruction est ap-pliquée simultanément surndonnées. SISD (Single Instruction Single Data) :C’est la machine séquentielle conventionnelle, un CPU et un résultat. SoC (System-on-a-Chip) :Ensemble de processeurs, DSP, périphériques et mémoire implantés sur un système intégré. SoPC (System on Programmable Chip) :Soc sur un chip reprogram-mable. UC (Unité de calcul) ou UAL (Unité arithmétique et logique) : Elle est inclue dans les processeurs, DSP et microcontrôleur. Donc chaque UC indique la présence d’un de ces composants. USB (Universal Serial Bus) :Type de connecteur pour brancher les pé-riphériques. Il a pour ambition de remplacer les ports séries et parallèles. VHDL (Very high scale integrated circuit Hardware Description Langage) :Langage de description de circuits intégrés. Ce circuit peut en-suite être synthétisé sous forme de circuits logiques. Le VHDL permet une description comportementale d’un composant numérique. Afin de simuler le fonctionnement d’une carte, on peut non-seulement inclure le code des FPGA mais aussi celui d’autres composants se trouvant sur la carte.
6
Introduction Depuis 1970 l’industrie des semi-conducteurs suit la loi de Moore selon la-quelle le nombre de transistors intégrés double tous les 18 mois. Actuellement les circuits peuvent intégrer jusqu’à 60 Millions de transistors et des firmes comme Intel affirment qu’elles franchiront le cap du milliard de transistors d’ici 2007, au lieu des 380 Millions prévus. Des études montrent que ces fu-turs ordinateurs pourraient théoriquement avoir de grandes performances[1] de capacité de traitement des données. Mais encore faudra t’il utiliser plei-nement les capacités de ces circuits. Ces rapides avancées technologiques ont rendu possible l’insertion de système complet dans un seul circuit : un SOC (System-on-chip). Ce circuit peut intégrer des processeurs, des DSP(Digital Signal Processor), des mémoires ainsi que des fonctions logiques complexes modélisées en VHDL, dont des IP (Intelectual Property), spécifiques à l’ap-plication. Les systèmes utilisant plusieurs processeurs sont de plus en plus plébiscités actuellement[2]. Cependant, l’ensemble de ces circuits sont particulièrement complexes à concevoir. Une application sur un SOC est un ensemble de fonctions de traitement de données qui sont implantées sur une structure électronique en prenant en compte des contraintes de la cible et de l’application. Ces fonc-tions de traitement se séparent en deux catégories. Les premières sont en électronique câblée, un ensemble de portes logiques reliées entre elles pour exécuter un traitement défini et invariable. Les secondes sont des fonctions de traitement programmées. Elles comprennent une partie en électronique câblée, micro-processeur, DSP, qui peuvent réaliser des fonctions de traite-ment variables indiquées par un programme. Ce ou ces programmes sont la partie logicielle du système. Les concepteurs doivent donc à partir de l’application et du cahier des charges, choisir le partitionnement entre le logiciel et l’électronique cablée. Les parties en logiciel seront modifiables et donc facilement adaptables. De plus, elles pourront être modifiées plus facilement en cas d’erreurs. Pour un algorithme complexe, elles seront compactes car découpées en une série d’ins-tructions standards qui prennent peu de place. Les parties en électronique cablée ne pourront exécuter que la fonction de traitement pour laquelle elles ont été conçues, et elles seront optimisées pour cela : cette fonction sera donc exécutée très rapidement. Ce choix est le problème essentiel de la conception des system-on-chip, et on le nommecodesign. La taille croissante des circuits va rendre cette tâche encore plus lourde. De plus en plus de fonctions de trai-tement pourront être intégrées et il faudra les agencer entre elles, permettre les communications et trouver des erreurs dans des parties spécifiques et donc moins utilisées. Et comme à chaque augmentation du nombre de transistors les contraintes de conception changent, lecodesigndu system-on-chip doit être repris.
7
Un pour Un
Permettre à tous d'accéder à la lecture
Pour chaque accès à la bibliothèque, YouScribe donne un accès à une personne dans le besoin