Etude Comparative de deux Processeurs Softcores NIOS II et LEON 3 Télécommunica

Etude Comparative de deux Processeurs Softcores NIOS II et LEON 3 Télécommunication et Traitement du Signal et de l’Image Traitement de l’image Nabil Litayem, Ahmed Ben Atitallah, Fahmi Ghozzi, Mohamed Ben Ayed, Nouri Masmoudi Ecole National d’Ingénieurs de Sfax Laboratoire d’Electronique et des Technologies de l’Information (LETI) Equipe circuits et Systèmes (C&S) ENIS, DGE, B.P.W, 3038 Sfax, Tunisie Tel: (216)74.27.40.88 Fax: (216)74.27.55.95 nabil.litayem@gmail.com benatita@enseirb.fr nouri.masmoudi@enis.rnu.tn Mots clés: Processeur softcore, FPGA, NIOS II, LEON 3, Benchmark. Résumé Cet article présente une étude comparative entre deux processeurs softcores NIOS II d’ALTERA et LEON 3 de Gaisler Research. Notre comparaison porte sur deux critères qui sont le nombre de ressources occupées par chacun des deux processeurs softcores et cela à travers les résultats de synthèse réalisée avec Quartus II et la performance à travers les résultats obtenus avec la suite de benchmark STANFORD. Cette comparaison nous a permis de constater que LEON 3 offre des performances en termes de puissance de calcul plus importantes que celles obtenues avec NIOS II, mais cela contre une occupation des ressources supérieure à celle obtenues avec NIOS II. Etude Comparative de deux Processeurs Softcores NIOS II et LEON 3 N.Litayem, A.Ben Atitallah, F.Ghozzi, M.Ben Ayed, N.Masmoudi Laboratoire d’Electronique et des Technologies de l’Information (LETI) Ecole National d’Ingénieurs de Sfax; B.P.W, 3038 Sfax, Tunisie Tel: (216)74.27.40.88 Fax: (216)74.27.55.95 Nouri.Masmoudi@enis.rnu.tn Résumé Cet article présente une étude comparative entre deux processeurs softcores NIOS II d’ALTERA et LEON 3 de Gaisler Research. Notre comparaison porte sur deux critères qui sont le nombre de ressources occupées par chacun des deux processeurs softcores et cela à travers les résultats de synthèse réalisée avec Quartus II et la performance à travers les résultats obtenus avec la suite de benchmark STANFORD. Cette comparaison nous a permis de constater que LEON 3 offre des performances en terme de puissance de calcul plus importantes que celles obtenues avec NIOS II, mais cela contre une occupation des ressources supérieure à celle obtenues avec NIOS II. Mots Clefs Processeur softcore, FPGA, NIOS II, LEON 3, Benchmark. I. INTRODUCTION Les progrès de la technologie de fabrication des circuits intégrés permettent d'atteindre une densité telle que des systèmes complets peuvent maintenant être regroupés sur une seule puce (System On Programmable Chip « SOPC »). Les applications de téléphonie mobile, de télévision numérique ou de visiophonie sont des exemples de tels systèmes intégrés. En parallèle, les besoins croissants de flexibilité et d'évolution rapide des produits imposent l'intégration de solutions programmables, et donc l'embarcation de processeurs. En fait, l’utilisation de ces processeurs représente une solution de choix lorsque les contraintes de performance, de coût, de surface ou de consommation sont fortes [1]. Le choix d’un processeur pour le SOPC peut se faire sur différents critères :  un processeur hardcore qui possède des performances considérable mais une flexibilité moyenne.  un processeur softcore qui sera beaucoup plus flexible mais avec une performance moins importante. Généralement, on privilégie les processeurs softcores pour bénéficier facilement des évolutions apportées en refaisant une synthèse. Ces processeurs sont classés en deux catégories :  La première est constituée des softcores propriétaires. Ils sont en général destinés à des plateformes spécifiques comme c’est le cas de NIOS II d’ALTERA [2] et Microblaze de XILINX [3].  La deuxième catégorie est celle des processeurs softcores libres [4] qui sont des processeurs décrits en un langage de description matérielle comme VHDL ou Verilog. Le code source peut être librement distribué et implanté sur n’importe quel circuit programmable. Il existe plusieurs processeurs softcores libres comme LEON 3 [5], Open Risc [6] ou encore F-CPU [7]. Cet article est organisé comme suit : La section II est consacrée à l’étude des deux processeurs LEON 3 et NIOS II. Cela est suivi dans la Section III, par une description de la plateforme matérielle utilisée. Une comparaison des deux processeurs en termes de surface occupée et de performance est abordée dans la section IV. Enfin, une conclusion est présentée dans la section V. II. PRESENTATION DES DEUX PROCESSEURS SOFTCORES LEON 3 et NIOS II A. Processeur softcore LEON 3 LEON 3 est un processeur RISC 32 bit. Il a été initialement développée par l’Agence Spatiale Européenne et maintenue depuis 1999 par Gaisler Research. Il a été conçu à la base comme processeur compatible SPARC V8 [8] avec tolérance aux erreurs pour les applications spatiales. Il est actuellement disponible en deux versions destinées aux applications embarquées. Une version commerciale avec tolérance aux erreurs et une version sous licence LGPL [9] mais dépourvue de cette fonctionnalité. LEON 3 est fournit comme composant de la bibliothèque GRLIB [10] qui contient plusieurs autres modules (contrôleur Ethernet, unité de calcul en virgule flottante, contrôleur DMA….). Il possède 7 étages de pipeline avec une architecture Harvard (cache de donnée et d’instruction séparés), un bus AMBA [11] lui permet de communiquer avec ces périphériques, la multiplication et la division peuvent être câblées et le support de la fonction de débogage est intégré au processeur. Son unité entière intègre toutes les fonctionnalités présentes dans le standard SPARC V8 en incluant la multiplication et la division. Le nombre de fenêtres de registres est configurable à l’intérieur des limites du standard SPARC c’est à dire entre (2 et 32 par défaut 8 fenêtres). Figure 1 : Schéma block du processeur LEON 3 La Figure 1 illustre le schéma block du LEON 3 avec toutes ces fonctionnalités. Certaines de ces fonctionnalités peuvent être enlevées soit parce que l’application visée ne la nécessite pas, soit pour générer des architectures plus petites en surface silicium ou pour pouvoir atteindre des fréquences de fonctionnement plus élevées . B. Processeur softcore NIOS II Le processeur NIOS II illustrée par la Figure 2 est fournit par la société ALTERA en trois versions, la première appelée NIOS II/e possède un seul étage de pipeline et sans cache, la deuxième version est appelée NIOS II/s possède cinq étages de pipeline et un cache d’instruction. La troisième version est celle qui sera utilisée dans la suite de l’article, elle possède six étages de pipeline, un cache de donnée et d’instruction. Cette version est appelée NIOS II/f. Le processeur NIOS II/f est un processeur RISC 32 bit pour application générique, il possède 32 registres, 32 interruptions externes, une Architecture Harvard et un bus AVALON qui permet la connexion du processeur aux différents périphériques. Le jeu d’instruction est compatible entre toutes les architectures NIOS II. Cependant, il est possible de le personnaliser en ajoutant des instructions pour pouvoir accélérer certains traitements. NIOS II supporte une grande variétés d’options pour la multiplication et la division, la plupart dépendent du circuit FPGA sur la quelle on va effectuer l’implantation. Figure 2 : Schéma block du processeur NIOS II III. PLATEFORME MATERIELLE Nos deux processeurs ont été implantés sur une carte de développement Stratix d’ALTERA (Figure 3) [12]. Cette carte est équipée d’une FPGA EP1S40F780C5, 8 Mo de mémoire flash, 1 Mo de SRAM, 16 Mo de SDRAM, deux supports d’extension pour périphériques fonctionnant à 5 V avec 41 pins configurables en entrée ou en sortie, un connecteur pour carte Compact Flash, un connecteur pour le débogage hardware et software, deux connecteurs séries RS232, quatre boutons poussoirs, huit LEDs connectées à l’FPGA, deux afficheurs sept segments, un connecteur JTAG, un oscillateur 50 Mhz et un circuit de remise à zéro. Notre FPGA EP1S40F780C5 possède 41250 éléments logiques (ELs), 3423744 bits de mémoire on chip, 112 blocks DSPs, 2 DLLs et 6 PLLs. Figure 3 : carte de développement Stratix IV. COMPARAISON Dans ce paragraphe, on va comparer LEON 3 et NIOS II chacun dans deux configurations de 8 Ko et 64 Ko de cache d’instruction et de donnée. Ces Cœur de processeur NIOS II Irq [31..0] JTAG Module de débogage Logique pour les instructions personnalisées Unité arithmétique et logique Registres de control ctl0 à ctl5 Registre à applications générique de r0 à r31 Contrôleur d’interruption Contrôleur D’exception Contrôleur De programme & Générateur d’adresse Cache d’instruction reset Cache de donnée Horloge Port de donnée Signaux d’E/S personnalisées Unité entière à 7-Etages de pipeline 3-ports de Registre Buffer de trace Port de débogage Port d’interruption Unité de support de débogage Contrôleur d’interruption Cache-I Cache-D DRAM- Locale AHB I/F AMBA AHB Master (32-bit) Coprocesseur IEEE-754 FPU H/W MUL/DIV IRAM Locale Interface du JTAG pour le débogage software Port d’instruction deux processeurs seront cadencés à 50 Mhz, et puisque NIOS II ne possède ni MMU ni unité de calcul en virgule flottante, on utilise une version de LEON 3 dépourvue de ces deux modules. Les opérations de calcul en virgule flottante sont réalisées de façon software en utilisant l’option -msoft-float avec le compilateur GCC [13]. La comparaison porte essentiellement sur les résultats de synthèse obtenue avec Quartus II afin de pouvoir comparer les ressources occupées par les deux processeurs et les résultats obtenus avec le benchmark STANFORD pour pouvoir comparer leurs performances. A. Résultats de la synthèse Dans la comparaison des résultats de synthèse on s’intéresse au nombre d’éléments logiques occupés, de blocks DSP et de cellules mémoires utilisés. La Figure 4 nous uploads/Management/article-jtea-2006.pdf

  • 18
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mar 19, 2021
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.3428MB