La lecture en ligne est gratuite
Lire Télécharger
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
De là, l’idée de trouver des solutions qui pourraient, dans certains cas apporter une solution plus simple, évolutive, soit une autre alternative aux méthodes actuelles.Le but est de créer des system-on-chip contenant un ensemble de processeurs homogènes qui permettent d’exécuter des applications parallèles. Cette architecture a l’avantage d’être réutili-sable. Les traitements utilisant des algorithmes parallélisables peuvent l’uti-liser sans changement au niveau de l’électronique. De plus, cette architecture se veut portable et extensible. Lorsqu’une nouvelle cible matérielle plus per-formante apparait, il suffirait d’augmenter le nombre de processeurs pour utiliser ses nouvelles capacités. La partie finale de fabrication d’un SOC demande l’intervention d’une en-treprise spécialiste en fonderie de composants électroniques. Cette phase est coûteuse, elle doit être effectuée de préférence quand le SOC a été testé avec succès. Une première étape consiste donc à simuler le SOC puis à l’implanter sur une architecture reprogrammable. Celle-ci à des capacités de taille et de vitesse plus restreinte mais elle possède le grand avantage de pouvoir être modifiée sans coût supplémentaire. Le premier objectif de cette étude est de prouver la faisabilité de cette démarche avec les outils actuels. Pour cela, il faut une architecture simple avec une communication basique qui permet de mieux cerner les problèmes de conception. Une architecture reprogrammable sera utilisée pour des questions de commodité, programmation simple de l’architecture, modification possible en cas d’erreur de fonctionnement. L’architecture sera donc un SOPC (un SOC reprogrammable). Il est possible d’utiliser des SOC ensuite. Le sys-tème de communication utilisé est une communication point à point. Cette communication est simple à mettre en uvre et extensible. Les systèmes de test seront des topologies régulières à deux processeurs en ligne, puis quatre en grille pour finir par huit en octagon et en cube. Des tests d’implanta-tion physique des systèmes seront présentés, en particulier sur un composant de marque Altera et de type StratixEP1S10. La fin de l’étude vérifiera la possibilité de remplacer les communications point à point basiques par des DMA(Direct Memory Acces) bien plus efficaces pour le transfert de données importantes, ainsi que l’ajout de mémoires externes.
8
Première partie ´ État de l’art Actuellement, l’utilisation des machines massivement parallèles dédiées aux calculs scientifiques décroît. Leurs coûts d’achat, de conception et d’uti-lisation sont prohibitifs. Sur chaque machine parallèle, il faut réécrire tous les programmes pour qu’ils soient compatibles avec ce matériel et cette ar-chitecture. Ces machines sont actuellement supplantées par les clusters ou groupement d’un grand nombre d’architectures standards pour former une grande machine de calcul. Ces clusters ou fermes de PC peuvent évoluer à chaque avancée de la technologie. Les programmes peuvent être transférés avec peu de manipulations. Cependant, dans la conception des composants, les solutions de circuits spécifiques conçus pour chaque utilisation sont encore utilisés. Une évolution vers des circuits de calcul parallèle standard pourrait être envisageable. Les systèmes multiprocesseurs peuvent être conçu de multiples façons. Il faut sélectionner une architecture, agencer et choisir des composants ainsi que la méthode de conception. De ces choix découlent les caractéristiques du système, coût, performance. . . Il faut choisir en premier lieu l’agencement entre la mémoire et les proces-seurs. Ensuite, il faut définir le support cible qui sera utilisé, sa technologie. S’il doit être reprogrammable ou non, le nombre de transistors qu’il doit contenir et leurs vitesses de commutation1. Enfin il est possible de choisir la topologie de connexion de l’architecture. Avec cette topologie et le support physique on pourra implémenter le routage et les techniques de transmission. 1Cette vitesse détermine les performances du systèmes en vitesse d’exécution
9
1 Les architectures mémoires pour les systèmes mul-tiprocesseurs Dans les produits manufacturés actuels, les circuits électroniques inté-grés sont très utilisés, et particulièrement dans les domaines du multi-média (audio et vidéo). Ces applications peuvent manipuler de multiples flots de données qu’il faut acquérir2puis traiter et enfin restituer. Ces traitements doivent de plus s’effectuer souvent en temps réel. Par conséquent, les sys-tèmes hétérogènes monopuces contenant notamment des DSP pour le trai-tement rapide des signaux ont connu une forte évolution. Dans ces archi-tectures, les performances du système sont liées à celle de la mémoire. Les algorithmes sur des flots de données effectuent un grand nombre d’accès mémoire. Celle-ci est une grande consommatrice d’énergie et peut occuper jusqu’à 90% de la surface du système. De plus, elle sert pour les transferts de données entre les composants internes, processeur et DSP par exemple. Il est donc évident que le choix de l’architecture de la mémoire et son utilisation ont de grandes conséquences[3]. 1.1 Les systèmes à mémoire partagée (Shared-memory) Cette architecture possède un bus de communication sur lequel sont re-liés plusieurs processeurs ainsi qu’une mémoire centrale. Ce système permet une technique de communication très simple entre les processeurs grâce à la mémoire partagée. Ces communications ont lieu par des variables partagées qui sont communes à plusieurs processeurs. Le modèle de programmation permet un partage simple des structures de données en lecture et en écriture dans cette mémoire globale. La programmation d’une application parallèle sur cette architecture est donc relativement simple. De plus, un programme peut facilement être porté sur une autre architecture du même type. Cette structure est celle utilisée dans les ordinateurs multiprocesseurs standards du commerce actuellement disponible sur le marché.
Fig.1 – Exemple d’une architecture à mémoire partagée 2Souvent par numérisation puis des traitements sur le signal
10