Guillaume JUGLIN
Helmi BOUAJLA
Hela GUESMI
Sully DRU
Encadré par Bertrand LEGAL
ENSEIRB-
MATMECA
PROCESSEUR SOFTCORE LIBRE
PROCESSEUR SOFTCORE LIBRE
2011 - 2012 Page 2
Sommaire
I. Introduction ..................................................................................................................................... 5
II. Méthodes et choix de l’optimisation .............................................................................................. 6
1. Présentation du processeur : ...................................................................................................... 6
a. Le projet plasma : .................................................................................................................... 6
b. Architecture du processeur et schéma blocs : ........................................................................ 7
c. Plasma et le jeu d’instructions MIPS : ..................................................................................... 8
2. Contexte du projet_s9 : ............................................................................................................... 9
a. Méthode d’optimisation ......................................................................................................... 9
b. Moyens et outils mis à disposition : ........................................................................................ 9
3. Choix de la méthode .................................................................................................................. 11
a. Objectif .................................................................................................................................. 11
b. Identification des besoins ...................................................................................................... 11
c. Ajout d’une instruction.......................................................................................................... 12
III. La chaine de compression JPEG................................................................................................. 15
1. Introduction ............................................................................................................................... 15
2. Etude du code des fonctions de la chaine JPEG ........................................................................ 15
3. Modification : iQuantification ................................................................................................... 16
a. Définition de la fonction en VHDL : ....................................................................................... 16
b. Instruction dans le processeur : ............................................................................................ 17
c. Test de l’instruction : ............................................................................................................. 17
d. Résultats : .............................................................................................................................. 18
4. Modification : RLE ...................................................................................................................... 18
a. Définition de la fonction en VHDL : ....................................................................................... 18
b. Instruction dans le processeur : ............................................................................................ 19
c. Test de l’instruction : ............................................................................................................. 19
d. Résultats : .............................................................................................................................. 19
IV. Décodeur MP3 ........................................................................................................................... 20
1. Présentation : ............................................................................................................................ 20
2. Etude du système : .................................................................................................................... 20
3. Modification : MULSHIFT32 ....................................................................................................... 22
a. Instruction dans le processeur : ............................................................................................ 22
b. Définition de la fonction en VHDL : ....................................................................................... 22
c. Test de l’instruction : ............................................................................................................. 23
PROCESSEUR SOFTCORE LIBRE
2011 - 2012 Page 3
d. Résultats : .............................................................................................................................. 24
4. Modification : MADD64 ............................................................................................................. 25
a. Définition de la fonction en VHDL : ....................................................................................... 25
b. Test de l’instruction : ............................................................................................................. 26
c. Résultats : .............................................................................................................................. 27
V. Conclusion ..................................................................................................................................... 28
PROCESSEUR SOFTCORE LIBRE
2011 - 2012 Page 4
Table des illustrations :
Figure 1 : Carte Spartan 3E ...................................................................................................................... 6
Figure 2: Plasma CPU site ........................................................................................................................ 7
Figure 3: Diagramme bloc ....................................................................................................................... 7
Figure 4: Equipements IMS ................................................................................................................... 10
Figure 5: Ports PCIe ............................................................................................................................... 10
Figure 6: Outil Gprof .............................................................................................................................. 12
Figure 7:Présentation de la chaine JPEG ............................................................................................... 15
Figure 8: Compilation de la chaine JPEG à l'aide de gprof .................................................................... 15
Figure 9: Code VHDL dmult ................................................................................................................... 17
Figure 10: Insertion instructions dans le processeur ............................................................................ 17
Figure 11:code assembleur généré ....................................................................................................... 17
Figure 12: exécution après l'ajout de l'instruction ................................................................................ 18
Figure 13: exécution avant l'ajout de l'instruction ................................................................................ 18
Figure 14: Code VHDL de l'instruction outRLE ...................................................................................... 18
Figure 15: code assembleur généré ...................................................................................................... 19
Figure 16: exécution avant l'ajout de l'instruction ................................................................................ 19
Figure 17 : exécution après l'ajout de l'instruction ............................................................................... 19
Figure 18: Temps exécution sans modification ..................................................................................... 20
Figure 19: Temps d'exécution des fonctions à l'aide de l'outil Gprof ................................................... 21
Figure 20: Détermination de la nouvelle instruction ............................................................................ 22
Figure 21: Description de l'instruction VHDL de mul_32msb ............................................................... 23
Figure 22: Code assembleur correspondant à la modification ............................................................ 24
Figure 23: Temps d'exécution après modification de MULSHIFT32 ..................................................... 24
Figure 24: Description de l'instruction VHDL de sum ............................................................................ 25
Figure 25: Temps d'exécution après modification de MADD64 ............................................................ 27
PROCESSEUR SOFTCORE LIBRE
2011 - 2012 Page 5
I. Introduction
Ce projet, mené sur 6 semaines, s’est déroulé au sein du laboratoire IMS. Il consiste en
l’optimisation d’un cœur de processeur en vue d’applications spécifiques telles que la compression
JPEG ou encore le décodeur MP3. Le but étant d’optimiser les temps de calculs d’un processeur
plasma par modification de son jeu d’instructions, l’ajout d’instructions assembleur passe par la
description de fonctions combinatoires en VHDL destinées à améliorer les possibilités de l’ALU (Unité
arithmétique et logique).
L’optimisation d’une telle architecture passe par la prise en main du système et des outils mis
à disposition au cours de ce projet : l’arborescence du cœur de processeur mais aussi un ensemble
de testbench pour les différentes applications étudiées. L’étude a été mené grâce à une virtualisation
du système fourni par l’encadrant permettant de réaliser le maximum de tests sans toutefois
corrompre le système existant.
En plus de saisir l’architecture du système, il a fallu également prendre en main les différents
algorithmes utilisés dans les applications ciblées. La raison de cette étude algorithmique sera
développée plus tard dans ce rapport, après avoir présenté le système cible du projet. Une
méthodologie sera également présentée sur l’ajout d’une nouvelle instruction avant de terminer par
des aspects plus concrets avec deux applications directes : la compression JPEG et le décodeur MP3.
1 / 28 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !