Ce cours s'adresse à toute personne désireuse d'apprendre comment un composant matériel peut être adapté en cours d'exécution pour mieux répondre aux besoins de l'utilisateur ou de l'environnement. Cette adaptation peut être fournie par les concepteurs, ou peut être une caractéristique intégrée du système lui-même. Ces systèmes adaptables en cours d'exécution seront mis en œuvre en utilisant les technologies FPGA. Dans ce cours, nous allons fournir une compréhension de base du fonctionnement des FPGA et du raisonnement derrière le choix de ces derniers pour mettre en œuvre un système désiré. Ce cours vise à enseigner à tout le monde les bases des systèmes informatiques reconfigurables basés sur les FPGA. Nous couvrons les bases de la décision d'utiliser ou non un FPGA et, si cette technologie s'avère être le bon choix, comment la programmer. Il s'agit d'un cours d'introduction destiné à vous guider dans le monde des FPGA afin de vous rendre plus conscient des raisons pour lesquelles vous pourriez vouloir travailler avec eux et en essayant de vous donner le sens du travail que vous devez faire pour être en mesure d'obtenir les avantages que vous recherchez en utilisant ces technologies. Nous nous appuyons sur quelques lectures supplémentaires pour fournir plus d'informations sur le sujet couvert dans ce cours.

Systèmes informatiques FPGA : Connaissances de base et matériel d'introduction
Économisez sur les compétences qui vous font briller avec 40 % de réduction sur 3 mois de Coursera Plus. Économisez maintenant

Systèmes informatiques FPGA : Connaissances de base et matériel d'introduction

Instructeur : Marco Domenico Santambrogio
18 025 déjà inscrits
Inclus avec
247 avis
247 avis
Ce que vous apprendrez
Comment un composant matériel peut être adapté en cours d'exécution pour mieux répondre aux besoins des utilisateurs/de l'environnement à l'aide de FPGA
Compétences que vous acquerrez
- Catégorie : Conception fonctionnelleConception fonctionnelle
- Catégorie : Configuration du systèmeConfiguration du système
- Catégorie : Circuits intégrés à application spécifiqueCircuits intégrés à application spécifique
- Catégorie : Plates-formes informatiquesPlates-formes informatiques
- Catégorie : Infrastructure en nuageInfrastructure en nuage
- Catégorie : Architecture matérielleArchitecture matérielle
- Catégorie : Systèmes informatiquesSystèmes informatiques
- Catégorie : Conception des systèmesConception des systèmes
- Catégorie : Systèmes embarquésSystèmes embarqués
- Catégorie : Informatique distribuéeInformatique distribuée
- Catégorie : Architecture des ordinateursArchitecture des ordinateurs
Détails à connaître

Ajouter à votre profil LinkedIn
19 devoirs
Découvrez comment les employés des entreprises prestigieuses maîtrisent des compétences recherchées

Il y a 8 modules dans ce cours
De nos jours, la complexité des systèmes informatiques monte en flèche. Les programmeurs doivent faire face à des systèmes informatiques extrêmement puissants qui nécessitent du temps et des compétences considérables pour être configurés de manière à fonctionner au mieux. Il est clair qu'il n'est pas possible de compter sur l'intervention humaine pour régler un système : les conditions changent fréquemment, rapidement et de manière imprévisible. Il serait souhaitable que le système s'adapte automatiquement à l'environnement en mutation. Ce module analyse le problème énoncé, adopte une approche radicalement nouvelle et présente la manière dont les systèmes logiciels et matériels peuvent être ajustés pendant l'exécution. Pour ce faire, nous allons présenter les technologies FPGA (Field Programmable Gate Arrays) et la manière dont elles peuvent être (re)configurées.
Inclus
7 vidéos5 lectures5 devoirs
7 vidéos•Total 29 minutes
- Introduction au cours•2 minutes
- La reconfiguration dans la vie quotidienne•2 minutes
- Les besoins en matière d'adaptation : une vue d'ensemble•5 minutes
- FPGA et reconfiguration : une première définition•5 minutes
- Gestion de l'exécution•3 minutes
- Système sur puce programmable•4 minutes
- Système sur puce programmable•7 minutes
5 lectures•Total 270 minutes
- Self-Aware Adaptation in FPGA-based Systems [lectures suggérées] (en anglais)•30 minutes
- La conscience de soi comme modèle de conception et d'exploitation des multicœurs hétérogènes [lectures suggérées]•60 minutes
- Reconfigurable computing : a survey of systems and software [lectures suggérées] (en anglais)•120 minutes
- ReconOS : An Operating System Approach for Reconfigurable Computing [lectures suggérées]•30 minutes
- Systèmes autonomes tolérants aux fautes basés sur R3TOS [lectures suggérées]•30 minutes
5 devoirs•Total 90 minutes
- Reconfigurations•15 minutes
- Histoire de la reconfiguration•8 minutes
- FPGA et reconfiguration•30 minutes
- SoC programmable et SoMC•7 minutes
- Gestion de l'exécution•30 minutes
Traditionnellement, l'informatique a été classée en deux catégories : l'informatique à usage général, réalisée par un processeur à usage général (GPP), et l'informatique spécifique à une application, réalisée par un circuit intégré spécifique à une application (ASIC). En tant que compromis entre les deux caractéristiques extrêmes du GPP et de l'ASIC, l'informatique reconfigurable a combiné les avantages des deux. D'une part, l'informatique reconfigurable peut être plus performante qu'une implémentation logicielle, mais cela se paie en termes de temps de mise en œuvre. D'autre part, un dispositif reconfigurable peut être utilisé pour concevoir un système sans nécessiter le même temps de conception et la même complexité qu'une solution entièrement personnalisée, mais en étant moins performant. Le principal avantage d'un système reconfigurable est sa grande flexibilité, tandis que son principal inconvénient est l'absence d'un modèle informatique standard. Dans ce module, nous présentons une première définition de l'informatique reconfigurable, nous décrivons la logique qui la sous-tend et nous introduisons la manière dont ce domaine a été influencé par l'introduction des FPGA.
Inclus
5 vidéos4 lectures2 devoirs
5 vidéos•Total 27 minutes
- Informatique reconfigurable : une première définition•2 minutes
- Informatique reconfigurable : Matériel et logiciel•3 minutes
- Comment améliorer les performances de l'informatique reconfigurable grâce à des améliorations de la CAO ?•4 minutes
- Informatique reconfigurable basée sur un FPGA•3 minutes
- Exploration de l'espace de conception du système et justification de la reconfiguration partielle•15 minutes
4 lectures•Total 255 minutes
- Méthodologie d'exécution indépendante de la plate-forme pour le mappage d'applications multiples sur des FPGA par le biais de la virtualisation des ressources [lectures suggérées]•45 minutes
- Un système multicœur hétérogène sur puce avec une architecture FPGA virtuelle reconfigurable en temps réel [lectures suggérées]•60 minutes
- Partitionnement et ordonnancement de graphes de tâches sur des FPGA partiellement reconfigurables dynamiquement [lectures suggérées]•60 minutes
- Algorithme d'ordonnancement et de mappage pour l'accélération matérielle sur les plates-formes reconfigurables [lectures suggérées]•90 minutes
2 devoirs•Total 60 minutes
- Module informatique reconfigurable•30 minutes
- Performance•30 minutes
Depuis le milieu des années 1980, l'informatique reconfigurable est devenue un domaine populaire grâce aux progrès de la technologie FPGA. Un FPGA est un dispositif semi-conducteur contenant des composants logiques programmables et des interconnexions programmables, mais pas de récupération d'instructions au moment de l'exécution, c'est-à-dire que les FPGA n'ont pas de compteur de programme. Dans la plupart des FPGA, les composants logiques peuvent être programmés pour reproduire la fonctionnalité des portes logiques de base ou des propriétés intellectuelles (IP) fonctionnelles. Les FPGA comprennent également des éléments de mémoire composés de simples bascules ou de blocs de mémoire plus complexes. Ainsi, les FPGA ont rendu possible l'exécution et la configuration dynamiques du matériel et du logiciel sur une seule puce. Ce module fournit une description détaillée des technologies FPGA, depuis une description générale jusqu'à la discussion sur les détails de configuration de bas niveau de ces dispositifs, en passant par la composition du flux binaire et la description des registres de configuration.
Inclus
8 vidéos3 lectures2 devoirs
8 vidéos•Total 36 minutes
- Se familiariser avec les FPGA•3 minutes
- Bloc de base FPGA : CLBs et IOBs•6 minutes
- Bloc de base FPGA : Interconnexions•6 minutes
- Configuration du FPGA : une vue d'ensemble•2 minutes
- Plus de détails sur la configuration du FPGA : les fichiers bitstream•5 minutes
- Composition du flux binaire•4 minutes
- Registres de configuration•6 minutes
- Comment gérer la complexité d'un système basé sur un FPGA ?•4 minutes
3 lectures•Total 181 minutes
- Note sur les "ressources•1 minute
- Conception physique pour les FPGA [lectures suggérées]•90 minutes
- Défis de la conception physique des FPGA à plusieurs millions de portes [lectures suggérées]•90 minutes
2 devoirs•Total 64 minutes
- Se familiariser avec les FPGA•34 minutes
- Configuration du FPGA et Bitstream•30 minutes
Les outils de conception FPGA doivent fournir un environnement de conception basé sur des concepts et des composants numériques (portes, bascules, MUX, etc.). Ils doivent cacher à l'utilisateur les complexités du placement, du routage et de la génération de flux binaires. Ce module n'aborde pas ces étapes en détail, un cours entier sera nécessaire pour cela, mais il est important d'avoir au moins une idée de ce qui se passe derrière la scène pour mieux comprendre la complexité des processus réalisés par les outils que vous allez utiliser. Dans ce contexte, ce module vous guide à travers un exemple simple, qui abstrait la complexité du FPGA sous-jacent, en commençant par la description du circuit que vous souhaitez implémenter jusqu'au flux binaire utilisé pour configurer le FPGA.
Inclus
6 vidéos2 devoirs
6 vidéos•Total 42 minutes
- 4 entrées - 1 sortie Exemple de configuration d'une LUT OR•10 minutes
- Exemple de configuration de la LUT au CLB•8 minutes
- Un FPGA simplifié et ses paramètres de configuration•5 minutes
- Exemple d'implémentation d'un circuit sur un FPGA simplifié•9 minutes
- Exemple d'implémentation d'un circuit sur un FPGA simplifié : phase de génération de bitstrams - CLBs•5 minutes
- Exemple d'implémentation d'un circuit sur un FPGA simplifié : phase de génération de bitstrams - SBs et routage•4 minutes
2 devoirs•Total 60 minutes
- LUT et CLB•30 minutes
- Conception physique•30 minutes
Avant de poursuivre ce formidable voyage dans le domaine de l'informatique reconfigurable, il peut être utile de définir un langage commun. De toute évidence, certains de ces termes ont déjà été utilisés, mais il est temps de mieux les comprendre et d'y mettre un peu d'ordre avant d'aborder des concepts plus avancés. En outre, comme nous le savons, les capacités de configuration des FPGA permettent une grande flexibilité dans la conception du matériel et, par conséquent, elles rendent possible la création d'un grand nombre de systèmes reconfigurables différents. Il peut s'agir de systèmes composés de cartes personnalisées avec FPGA, souvent connectées à un PC ou à une station de travail standard, de systèmes autonomes comprenant une logique reconfigurable et des processeurs généraux, ou encore de systèmes sur puce, entièrement mis en œuvre dans un seul FPGA monté sur une carte, avec seulement quelques composants physiques pour l'interface E/S. Il existe différents modèles de reconfiguration, qui peuvent être mis en œuvre dans des environnements différents. Il existe différents modèles de reconfiguration, et un schéma de classification est présenté dans ce module. Nous pouvons considérer ce module comme un module de transition. Nous avons été exposés à une certaine terminologie et à certains concepts et nous sommes maintenant prêts à aller de l'avant. Pour ce faire, nous devons combiner toutes les pièces du puzzle et nous investir un peu dans l'examen de l'image globale, et c'est exactement ce pour quoi ce module a été conçu.
Inclus
5 vidéos2 lectures2 devoirs
5 vidéos•Total 35 minutes
- Un vocabulaire commun•5 minutes
- Les 5 W•6 minutes
- L'informatique reconfigurable, une extension du codage HW/SW•6 minutes
- Une classification des reconfigurations de SoC•8 minutes
- Classification des reconfigurations SoMC•10 minutes
2 lectures•Total 240 minutes
- Méthodologie de conception pour la reconfiguration dynamique partielle : un nouveau degré de liberté dans la conception du code HW/SW [lectures suggérées]•60 minutes
- Performance de la reconfiguration partielle dans les systèmes FPGA : Une étude et un modèle de coût [lectures suggérées]•180 minutes
2 devoirs•Total 60 minutes
- Les fonctionnalités et leur mise en œuvre•30 minutes
- Examen du module•30 minutes
Les capacités de reconfiguration des FPGA offrent aux concepteurs une grande souplesse en termes de maintenabilité du matériel. Les FPGA peuvent modifier les fonctionnalités matérielles qui leur sont attribuées en mettant l'application hors ligne, en téléchargeant une nouvelle configuration sur le FPGA (et éventuellement un nouveau logiciel pour le processeur, le cas échéant) et en redémarrant le système. Dans ce cas, la reconfiguration est un processus indépendant de l'exécution de l'application. Une approche différente est celle qui considère la reconfiguration du FPGA comme faisant partie de l'application elle-même, lui donnant la capacité d'adapter le matériel configuré sur les ressources de la puce en fonction des besoins d'une situation particulière pendant le temps d'exécution. Dans ce cas, nous parlons de reconfiguration dynamique et le processus de reconfiguration est considéré comme faisant partie de l'exécution de l'application, et non comme une étape préalable. Ce module illustre une technique particulière, qui prolonge les deux précédentes et qui est viable pour la plupart des dispositifs FPGA récents, la reconfiguration dynamique partielle. Pour bien comprendre cette technique, il faut analyser les concepts de l'informatique reconfigurable, de la reconfiguration statique et dynamique, ainsi que la taxonomie de la reconfiguration dynamique elle-même. De cette manière, la reconfiguration dynamique partielle peut être correctement placée dans l'ensemble des techniques de développement de systèmes qu'il est possible de mettre en œuvre sur une puce FPGA moderne.
Inclus
8 vidéos4 lectures2 devoirs
8 vidéos•Total 40 minutes
- Scénarios dans lesquels la reconfiguration partielle peut être efficace•6 minutes
- Comment utiliser la reconfiguration du FPGA pour faire face aux problèmes de surface ?•5 minutes
- Comment gérer la surcharge d'exécution liée à la reconfiguration ?•4 minutes
- Modules récurrents pour les réutiliser et réduire le temps de reconfiguration•4 minutes
- Reconfiguration partielle pour réduire le temps d'exécution de la reconfiguration•6 minutes
- Gestion de l'exécution pour explorer d'autres possibilités de mise en œuvre•6 minutes
- Délocalisation des flux de bits•7 minutes
- Déplacement des flux de bits et homogénéité virtuelle•3 minutes
4 lectures•Total 270 minutes
- Gestion de l'exécution du système d'exploitation pour les systèmes embarqués partiellement reconfigurables dynamiquement [lectures suggérées]•60 minutes
- Gestion de l'allocation et de la relocalisation des noyaux pour une architecture reconfigurable de manière dynamique [lectures suggérées]•60 minutes
- Un flux de travail basé sur la relocalisation pour la conception de systèmes reconfigurables dynamiques [lectures suggérées]•60 minutes
- Reconfiguration dynamique partielle dans une architecture multi-FPGA en grappe basée sur Linux [lectures suggérées]•90 minutes
2 devoirs•Total 60 minutes
- Système reconfigurable•30 minutes
- Reconfiguration partielle•30 minutes
Après avoir présenté les différentes solutions proposées pour concevoir et mettre en œuvre des systèmes reconfigurables dynamiques, ce module décrira une méthodologie de conception générale et complète qui peut être suivie comme ligne directrice pour la conception de systèmes informatiques reconfigurables. Pour concevoir et mettre en œuvre un système informatique reconfigurable, les concepteurs ont besoin d'outils de conception assistée par ordinateur (CAO) pour la conception et la mise en œuvre du système, tels qu'un outil d'analyse de la conception pour la conception de l'architecture, un outil de synthèse pour la construction du matériel, un simulateur pour la simulation du comportement du matériel et un outil de placement et de routage pour la disposition des circuits. Nous pouvons construire ces outils nous-mêmes ou utiliser des outils et des plateformes commerciales pour la conception de systèmes reconfigurables. Le premier choix implique un investissement considérable en termes de temps et d'efforts pour construire une solution spécifique et optimisée pour le problème donné, tandis que le second permet de réutiliser les connaissances, les noyaux et les logiciels pour parvenir plus rapidement à une bonne solution au même problème. Ce module guide les étudiants à travers une vue historique de la façon dont les cadres de CAO ont évolué au fil des ans. Ceci est fait pour montrer la rapidité avec laquelle la technologie évolue et le raisonnement derrière le choix fait pour améliorer l'expérience de l'utilisateur lorsqu'il travaille avec un système basé sur un FPGA. Ce ne sont pas seulement les outils commerciaux qui sont décrits, mais aussi le parcours personnel de l'instructeur du cours et de son équipe de recherche, depuis ses débuts en tant que doctorant jusqu'aux défis de recherche sur lesquels ils travaillent aujourd'hui.
Inclus
9 vidéos7 lectures3 devoirs
9 vidéos•Total 54 minutes
- Flux de conception Xilnx au fil des ans•5 minutes
- Flux de conception de la reconfiguration partielle•5 minutes
- Reconfiguration partielle basée sur la différence de Xilinx•5 minutes
- Reconfiguration partielle basée sur les modules Xilinx•5 minutes
- Flux de reconfiguration partielle (PR) de Xilinx•6 minutes
- Flux de conception basés sur Moudle ou sur la reconfiguration partielle•17 minutes
- Raison d'être du DRESD et travail effectué par le Politecnico di Milano•3 minutes
- De DRESD à CHANGE et ASAP, deux nouvelles initiatives de recherche du Politecnico di Milano•4 minutes
- CAOS : des systèmes informatiques embarqués aux systèmes distribués hétérogènes à base de FPGA•3 minutes
7 lectures•Total 435 minutes
- Tutoriel Vivado Design Suite, Reconfiguration partielle, UG947 (v2016.1) 6 avril 2016 [lectures suggérées - manuel - PDF]•90 minutes
- Vivado Design Suite User Guide, Partial Reconfiguration, UG909 (v2016.1) 6 avril 2016 [lectures suggérées - manuel - PDF]•180 minutes
- Reconfigurabilité dynamique dans la conception de systèmes embarqués [lectures suggérées]•30 minutes
- Une méthodologie de conception pour la reconfiguration dynamique : l'architecture Caronte [lectures suggérées]•30 minutes
- Automatisation du plan d'étage pour les FPGA partiellement reconfigurables via la génération de placements faisables [lectures suggérées]•45 minutes
- Supercalculateur hétérogène exascale : Le rôle de la CAO dans le projet exaFPGA [lectures suggérées]•30 minutes
- Le rôle des cadres de CAO dans les systèmes hétérogènes basés sur les FPGA [lectures suggérées]•30 minutes
3 devoirs•Total 90 minutes
- Abstractions•30 minutes
- Politecnico di Milano Initiatives de recherche sur la reconfiguration partielle•30 minutes
- Flux de conception•30 minutes
Nous travaillons à la pointe de la recherche dans le domaine de l'informatique reconfigurable. Les technologies FPGA ne sont pas seulement utilisées comme des solutions/plateformes autonomes, mais sont désormais incluses dans les infrastructures en nuage. Elles sont désormais utilisées à la fois pour accélérer les calculs de l'infrastructure/du backend et exposées en tant que service pouvant être utilisé par n'importe qui. Dans ce contexte, nous sommes confrontés à la définition de nouvelles opportunités de recherche et d'amélioration des technologies, et le moment ne peut être mieux choisi dans cette perspective. Ce dont nous avons besoin aujourd'hui, c'est de nouveaux outils de création de plateformes, d'infrastructures de surveillance et de profilage, de meilleurs systèmes de gestion de l'exécution, de partitionnement statique et dynamique de la charge de travail, pour ne citer que quelques domaines de recherche possibles. Ce module conclut ce cours mais pose des questions intéressantes vers des directions de recherche futures possibles qui peuvent également orienter les étudiants vers d'autres cours Coursera sur les FPGA.
Inclus
1 vidéo3 lectures1 devoir
1 vidéo•Total 5 minutes
- Vers des systèmes distribués basés sur des FPGA•5 minutes
3 lectures•Total 315 minutes
- Temps d'exécution virtualisé pour les accélérateurs FPGA dans le nuage [lectures suggérées]•105 minutes
- Une architecture d'accélération à l'échelle du nuage [lectures suggérées]•120 minutes
- Permettre des clusters flexibles de FPGA en réseau dans un centre de données hétérogène en nuage [lectures suggérées]•90 minutes
1 devoir•Total 30 minutes
- Remarques finales et orientations futures•30 minutes
Instructeur
Évaluations de l’enseignant
Nous avons demandé à tous les étudiants de fournir des commentaires sur nos enseignants au sujet de la qualité de leur pédagogie.

Offert par

Offert par

Le Politecnico di Milano est une université scientifique et technologique qui forme des ingénieurs, des architectes et des designers industriels. Depuis 2014, le Politecnico di Milano a lancé plusieurs MOOC, développés par le service d'apprentissage numérique METID (Methods and Innovative Technologies for Learning), donnant à chacun la possibilité d'améliorer ses compétences personnelles.
Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.
Avis des étudiants
247 avis
- 5 stars
73,27 %
- 4 stars
21,05 %
- 3 stars
2,42 %
- 2 stars
1,21 %
- 1 star
2,02 %
Affichage de 3 sur 247
Révisé le 26 mars 2020
Got a knowledge on basics of FPGA and its amazing uses
Révisé le 1 août 2019
Great informatic course, could've been improved a bit by implementing some hands-on exercises and more specific explanations
Révisé le 14 mai 2020
Learned a lot about the background materials regarding FPGA, but the assignment quality should be more adaptive and challenging. Overall a great one. Thanks a lot to the professor!
Foire Aux Questions
Pour accéder aux supports de cours, aux devoirs et pour obtenir un certificat, vous devez acheter l'expérience de certificat lorsque vous vous inscrivez à un cours. Vous pouvez essayer un essai gratuit ou demander une aide financière. Le cours peut proposer l'option "Cours complet, pas de certificat". Cette option vous permet de consulter tous les supports de cours, de soumettre les évaluations requises et d'obtenir une note finale. Cela signifie également que vous ne pourrez pas acheter un certificat d'expérience.
Lorsque vous vous inscrivez au cours, vous avez accès à tous les cours de la spécialisation et vous obtenez un certificat lorsque vous terminez le travail. Votre certificat électronique sera ajouté à votre page Réalisations - de là, vous pouvez imprimer votre certificat ou l'ajouter à votre profil LinkedIn.
Oui, pour certains programmes de formation, vous pouvez demander une aide financière ou une bourse si vous n'avez pas les moyens de payer les frais d'inscription. Si une aide financière ou une bourse est disponible pour votre programme de formation, vous trouverez un lien pour postuler sur la page de description.
Plus de questions
Aide financière disponible,


