Résumé
Réaliser un traitement de données à l’aide d’une application logicielle s’exécutant sur un processeur d’usage général ou sur des processeurs spécialisés, comme des cartes graphiques, ne fournit pas toujours les performances souhaitées. Ces options peuvent s’avérer trop lentes, ou trop chères ou trop gourmandes en énergie pour l’application visée.
Dans ces situations les accélérateurs matériels dédiés sont parfois la bonne solution. Ils ne sont pas aussi flexibles que les logiciels, ils sont souvent plus difficiles à concevoir, mais leur efficacité est bien souvent supérieure de plusieurs ordres de grandeur : ils font un nombre limité de choses mais ils les font extrêmement bien.
De nombreux ordinateurs autour de nous, comme nos smartphones, intègrent des accélérateurs matériels pour les communications sans fil, le traitement de la parole, de l’audio, de l’image ou de la vidéo, la cryptographie, l’apprentissage profond, etc.
Ce cours propose une vue d'ensemble de la spécification, de la conception, du développement et de la validation d’accélérateurs matériels pour les systèmes embarqués. Il montre également comment les intégrer dans un système à base de microprocesseurs et comment les utiliser depuis les applications logicielles.
Modalités pédagogiques
Séances de travaux pratiques, projet, travail personnel. Les élèves se voient confier pendant toute la durée du semestre une carte de prototypage ainsi que les logiciels de conception associés.Les étudiants se voient confier des cartes de prototypage ainsi que les logiciels de conception associés pendant toute la durée du semestre.
Règles du cours
La présence aux séances de travaux pratiques est obligatoire.
-
Bibliographie
· Livre en ligne : MEALY B., TAPPERO F. Free range VHDL. Free Range Factory, 2018, 194 p. (https://github.com/fabriziotappero/Free-Range-VHDL-book)
· Livre en ligne : CROCKETT L., ELLIOT, R., ENDERWITZ M., STEWART B., NORTHCOTE D. The Zynq book. Strathclyde Academic Media, 2015, 484 p. (http://www.zynqbook.com/)
· Livre : SIMPSON P. La conception de systèmes avec FPGA. Dunod, 2014, 304p. (en français)
· Livre : ZURAWSKI R. Embedded systems handbook. CRC Press, 2009, 1503p.
· Livre : ASHENDEN P. J. Designer's guide to VHDL. Morgan Kaufmann Publishers In, 2008, 936p.
Livre : KILTS S. Advanced FPGA design: architecture, implementation, and optimization. Wiley-Blackwell, 2007, 352p.
Prérequis
Représentations des nombres en base 2 (non signés, complément à 2), logique booléenne, opérateurs booléens, programmation de base en C, notions de base sur la ligne de commande GNU/Linux.
-
Description
· Conception de composants matériels numériques, langages de description de matériel, simulation, synthèse logique, programmation de circuits FPGA (Field Programmable Gate Array).
· Intégration système, interfaces entre les composants d’un système numérique, pilotes logiciels (GNU/Linux) de périphériques matériels, applications logicielles utilisant des périphériques matériels.
· Le cours utilise une approche très pratique (il n’y a pas de leçons) à l’aide d’équipements de laboratoire de classe industrielle. L’essentiel du cours est consacré à la conception de systèmes mixtes matériel / logiciel de complexité croissante, et à leur test sur une carte de prototypage de type mini-PC basée sur un processeur ARM et une matrice FPGA.
Pendant le projet final (21 heures) les élèves travaillent en petits groupes pour bâtir un prototype matériel / logiciel complet de système de traitement de données. Des projets passés ont porté sur les jeux vidéo rétro, la cryptographie, le traitement vidéo en temps réel, la reconnaissance de formes, le minage de bitcoins, le craquage de DES, etc.
https://perso.telecom-paristech.fr/pacalet/DS/
Objectifs d'apprentissage
· Etre capable de spécifier, concevoir, développer et tester un prototype de système intégrant un ou plusieurs opérateurs matériels dédiés pour le traitement et un microprocesseur, plus ses périphériques, pour le contrôle.
· Etre capable d’interfacer un accélérateur matériel dédié avec un système à base de microprocesseur.
Etre capable de concevoir et développer un pilote logiciel GNU/Linux pour faciliter l’accès à l’accélérateur matériel dédié depuis les applications logicielles.
Durée EC |
Total |
CM |
TP |
TD |
Projet |
TPP |
50 |
|
21 |
|
21 |
8 |
Evaluation
· Projet : 1/2 de la note finale.
Examen écrit de 2 heures avec documents : 1/2 de la note finale.