Université Libre De Bruxelles
Total Page:16
File Type:pdf, Size:1020Kb
Universit´e Libre de Bruxelles Facult´e de Sciences appliqu´ees Service des Syst`emes Logiques et Num´eriques Impl´ementation des filtres non-lin´eaires de rang sur des architectures universelles et reconfigurables Dragomir Milojevic Promoteur : Prof. Philippe Van Ham Travail pr´esent´e en vue de l'obtention du titre de Docteur en Sciences Appliqu´ees Ann´ee Acad´emique 2003-2004 Remerciements Je tiens a` remercier plus particuli`erement le Prof. Philippe Van Ham pour ses conseils, pour son soutien et surtout pour ce gout^ du savoir qu'il a r´eussi a` me faire partager. Un grand merci ´egalement au Prof. Nadine Warz´ee, pour son soutien, son efficacit´e et pour sa grande disponibilit´e. Je remercie ´egalement : Le Prof. Marc Acheroy et les membres du SIC de l'Ecole´ Royale Militaire avec lesquels j'ai eu l'opportunit´e de faire de la recherche appliqu´ee dans un but huma- nitaire et de r´ealiser des exp´eriences pas comme les autres. Le Prof. Eduardo Sanchez pour son accueil au sein du Laboratoire des Syst`emes Logiques de l'EPFL et pour ce s´ejour inoubliable a` Lausanne. Les Prof. Pierre Mathys, Prof. Marcel Dotrimont, Prof. Patrick Merken pour avoir accepter de faire partie de mon jury. Un tout grand merci a` Fr´ed´eric Robert qui a pu trouver un moment pour me lire et pour m'encourager. Je tiens a` remercier aussi tous les membres de l'´equipe du laboratoire des Syst`emes Logiques et Num´eriques avec qui j'ai partag´e beaucoup plus que le quotidien : prof. Jean Florine, Christophe De Hauwer (¸ca va ^etre vite fait), Olivier Debeir (on va mettre encore une couje), Serge Joris (ma biche), Don Patrick Bischop (vive la Westmalle), Xavier Baele (le th´e vert au jasmin est dans mon tiroir), Claude Verbeek (Led Zep a` 7h du matin annoncent une belle journ´ee), Constant Hubert (il n'y a qu'un ampli a` lampes qui sonne bien), Denis Haumont, Laurent Mundeleer, C´edric Laugerotte, Thierry Leloup et tous les autres ... Merci a` Bill, Ella, Sarah, Billie, Isao, Eva, Patricia, et les autres de m'avoir accompagn´e a` tout moment. Enfin je tiens a` remercier ma Julie, pour son amour, pour sa patience et pour la volont´e qu'elle a eue de corriger mon mauvais fran¸cais entre les bains de Dora et Sasha et ses dossiers des r´efugi´es Rwandais. Table des mati`eres R´esum´e 1 Abstract 1 1 Introduction 5 1.1 Pr´esentation g´en´erale . 5 1.2 Contenu et contributions . 8 1.2.1 Contenu . 8 1.2.2 Contributions . 9 1.3 Traitement . 10 1.3.1 Images et transformations . 10 1.3.1.1 Notations . 10 1.3.1.2 Transformations ponctuelles . 12 1.3.1.3 Transformations spatiales . 12 1.3.2 Filtres non-lin´eaires . 13 1.3.2.1 Classification . 13 1.3.2.2 Filtres non-lin´eaires de Classe I . 14 1.3.2.3 Filtres non-lin´eaires de Classe II . 18 1.3.2.4 Exemples d'application des filtres non-lin´eaires . 20 1.4 Machine . 23 1.4.1 Historique . 23 1.4.2 Classification des architectures . 27 1.4.2.1 Taxinomies des architectures universelles . 27 1.4.2.2 Taxinomies des architectures d´edicac´ees . 31 1.4.2.3 Taxinomies des architectures selon la configurabilit´e . 32 1.5 Performance . 33 1.5.1 Performance du mat´eriel . 33 1.5.1.1 Param`etres classiques . 34 1.5.1.2 Param`etre commun . 35 1.5.2 Performance d'une application . 37 1.5.2.1 Temps d'ex´ecution . 37 1.5.2.2 Acc´el´eration . 37 1.5.2.3 Mesure sp´ecifique pour le traitement d'images . 38 i Table des mati`eres 2 Architecture universelle 39 2.1 Parall´elisme des architectures universelles . 40 2.1.1 Parall´elisme intra-processeur . 40 2.1.1.1 Parall´elisme des instructions . 40 2.1.1.2 Probl`emes li´es a` l'exploitation du parall´elisme des instructions 45 2.1.1.3 Parall´elisme des donn´ees . 48 2.1.2 Parall´elisme inter-processeur . 49 2.1.2.1 Parall´elisme des syst`emes a` m´emoire partag´ee . 49 2.1.2.2 Parall´elisme des syst`emes a` m´emoire repartie . 52 2.1.3 Processeurs actuels . 52 2.1.4 Architectures universelles cibl´ees . 53 2.1.4.1 Architecture standard . 53 2.1.4.2 Extensions . 55 2.1.4.3 Diff´erences entre Pentium 2 et Pentium 4 . 57 2.1.4.4 Performance de la m´emoire . 57 2.1.5 Exploitation des diff´erents niveaux de parall´elisme . 58 2.1.5.1 Acc`es au parall´elisme intra-processeur . 58 2.1.5.2 Acc`es au parall´elisme inter-processeur . 60 2.2 Exploitation de l'architecture standard . 62 2.2.1 Impl´ementation de filtre de rang g´en´eralis´e . 63 2.2.1.1 Tri a` bulle (Bubble sort) . 63 2.2.1.2 Tri par s´election (Selection sort) . 63 2.2.1.3 Tri par insertion (Insertion sort) . 64 2.2.1.4 Tri rapide (Quicksort) . 64 2.2.1.5 Tri par fusion (Merge sort) . 66 2.2.1.6 Tri par tas (Heap Sort) . 67 2.2.1.7 Tri par classement (Bucket sort) . 67 2.2.2 Impl´ementation des filtres sp´ecifiques . 70 2.2.3 Conclusion . 70 2.3 Exploitation de parall´elisme intra-processeur . 73 2.3.1 Librairie de traitement des images Intel . 74 2.3.2 Programmation des extensions : filtres sp´ecifiques Min/Max . 74 2.3.2.1 Description g´en´erale de l'algorithme . 74 2.3.2.2 Parcours horizontal . 80 2.3.2.3 Parcours vertical . 82 2.3.2.4 Analyse a` l'aide de VTune . 83 2.3.3 Programmation des extensions : filtre M´edian . 85 2.3.4 Programmation des extensions : filtre d'un rang quelconque . 86 2.3.5 Filtres d´eriv´es et/ou la cha^ıne de traitement . 86 2.3.6 Filtre de rang g´en´eralis´e . 86 2.4 Exploitation du parall´elisme inter-processeur . 88 2.4.1 Ex´ecution sur deux processeurs . 88 2.5 Conclusion . 90 ii Table des mati`eres 3 Architectures d´edicac´ees 91 3.1 Circuits FPGAs . 92 3.1.1 Architecture . 92 3.1.1.1 Description g´en´erale . 92 3.1.1.2 Ressources typiques des FPGAs actuels . 93 3.1.2 Impl´ementation des circuits logiques dans les FPGA . 95 3.1.2.1 Processus d'impl´ementation . 95 3.1.2.2 Perspectives de la description des circuits . 97 3.1.2.3 Efficacit´e des outils actuels d'impl´ementation . 98 3.1.3 Applications des FPGAs . 100 3.2 Parall´elisation du calcul des filtres non-lin´eaires . 101 3.2.1 Classification des algorithmes et des architectures existants . 101 3.2.2 Architectures matricielles . 104 3.2.2.1 Mode bit-s´erie . 104 3.2.2.2 Mode bit-parall`ele . 105 3.2.3 R´eseaux de tri . 106 3.2.4 Architectures bit-s´erie . 109 3.2.4.1 Algorithme pour le filtre de rang . 109 3.2.4.2 Cas particulier de filtre m´edian . 111 3.2.4.3 G´en´eralisation de l'algorithme pour les filtres Min/Max . 114 3.2.4.4 G´en´eralisation pour les autres filtres non-lin´eaires . 115 3.2.5 Architectures d´edi´ees aux filtres de piles . 116 3.3 Conclusion . 118 3.3.1 Performance des syst`emes d´edicac´es existants . 118 3.3.2 Remarques . 119 3.3.2.1 Remarques g´en´erales . 119 3.3.2.2 Remarques sp´ecifiques a` l'architecture . 120 3.3.3 Objectifs . 122 4 Architecture reconfigurable 123 4.1 Description globale du syst`eme d´edicac´e reconfigurable . 126 4.1.1 Introduction . 126 4.1.2 Parties constitutives . 127 4.1.2.1 Partie traitement . 128 4.1.2.2 M´emoire globale . 129 4.1.2.3 Unit´e de contr^ole . 131 4.1.3 Hypoth`eses de travail . 132 4.2 M´emoire locale des unit´es de traitement . 133 4.2.1 Description de la m´emoire locale source . 133 4.2.2 Description de la m´emoire locale destination . 138 4.2.3 Validation de la description . 139 4.2.4 Impl´ementation . 141 4.2.5 Discussion . 143 4.3 Unit´es de traitement . 144 4.3.1 Algorithmes . 144 4.3.1.1 Algorithme Max . 144 4.3.1.2 Algorithme Min . 146 iii Table des mati`eres 4.3.1.3 Algorithme pour le filtre g´en´eralis´e . 146 4.3.2 Description de l'unit´e de traitement pour les filtres Max/Min . 149 4.3.3 Description de l'unit´e de traitement pour le filtre de rang g´en´eralis´e . 153 4.3.3.1 Algorithme d'´elimination successives des maxima/minima lo- caux . 153 4.3.3.2 Algorithme de Danielsson . 154 4.3.4 Validation de la description . 156 4.3.5 Impl´ementation . ..