Power PC embarqués et accélérateurs matériels pour des cibles de type FPGA Julien Dubois
Plan de la présentation Contexte Processeurs embarqués au sein de cible FPGA Présentation des cibles matériels « Standalone » Vs OS embarqués Conception d’architecture de co-traitement (« co-processing ») Outil EDK Association d’accélérateurs à processeur embarqué Utilisation d’un OS Applications du « co-processing » (Discussion) Contexte : Plateforme de co-processing pour la compression d’image Évolution : HW accélérateur avec processeur embarqué
Contexte Des besoins de plus en plus importants: Par example dans le traitement d’images temps réel Caméras intelligentes (caméra + traitements embarqués) besoin de traiter des images avec des résolutions de plus en plus importantes (> 1Mpixel) et des fréquences de plus en plus importantes (>25 ou même plusieurs 100 i/s) Compression temps réel => Cap sur la HD temps réel …. Des avancées technologiques importantes : notamment au niveau des FPGAs Plus de blocs logiques (slices) Intégrations de blocs matériels simples (mémoire,multiplicateurs) ou plus complexes (processeurs,blocs DSP), I/O adaptées
Evolutions des FPGAs Des FPGAs avec corps matériels intégrés (BRAM, multiplicateurs, processeurs…) Ajouter des corps software Ajouter la logique utilisateur Question : Comment utiliser des processeurs PPC et les associer aux accélérateurs matériels ???
Plan de la présentation Contexte Processeurs embarqués au sein de cible FPGA Présentation des cibles matériels « Standalone » Vs OS embarqués Conception d’architecture avec PPC Outil EDK Association d’accélérateurs à processeur embarqué Utilisation d’un OS Applications du « co-processing » (Discussion) Contexte : Plateforme de co-processing pour la compression d’image Évolution : HW accélérateur avec processeur embarqué
Architecture autour des PPCs OS ?
Standalone Vs OS embarqués Performances maximum Mise en œuvre de périphériques compliqués => nécessité de développer les pilotes OS embarqués Perte de performances Mise en œuvre de périphériques simples (Attention nécessité d’acheter les contrôleur des périphériques les plus complexes!)
OS embarqués OS Editeur Open Sources Remarques VxWorks WindRiver non certainement le leader du marché RTLinux FSM Labs oui existe en version GPL et en version "pro" (breveté), temps réel dur µClinux aucun pour les micro-contrôleurs sans MMU. Sponsorisé par Lineo. Existe en noyau 2.0, 2.4 et 2.6 Montavista Linux (Hard Hat) MontaVista fondé sur des patches préemptifs du noyau Linux. Pas de temps réel dur
Plan de la présentation Contexte Processeurs embarqués au sein de cible FPGA Présentation des cibles matériels « Standalone » Vs OS embarqués Conception d’architecture avec PPC Outil EDK Association d’accélérateurs à processeur embarqué Utilisation d’un OS Applications du « co-processing » (Discussion) Contexte : Plateforme de co-processing pour la compression d’image Évolution : HW accélérateur avec processeur embarqué
EDK : Définition d’une architecture
Plateforme ML310 Virtex II Pro FPGA (XC2VP7) ~1M ASIC gates 44 18x18-bit Multipliers 88 KB of on-chip memory Power PC 4.05 CPU core 4 2.5Gbps Rocket I/O transceivers
EDK : Définition d’une architecture
EDK : Définition d’une architecture
EDK : Définition d’une architecture
EDK : Définition d’une architecture
EDK : Définition d’une architecture
EDK : Définition d’une architecture
EDK : Définition d’une architecture
EDK : Définition d’une architecture
EDK : Définition d’une architecture
EDK : Définition d’une architecture
EDK : Définition d’une architecture
Plan de la présentation Contexte Processeurs embarqués au sein de cible FPGA Présentation des cibles matériels « Standalone » Vs OS embarqués Conception d’architecture avec PPC Outil EDK Association d’accélérateurs à processeur embarqué Utilisation d’un OS Applications du « co-processing » (Discussion) Contexte : Plateforme de co-processing pour la compression d’image Évolution : HW accélérateur avec processeur embarqué
Association PPC à HW accélérateurs
Ajout du corps
EDK : Flot de conception Standard Software Flow Standard Hardware Flow VHDL / Verilog C/C++ code Simulator Compiler / Linker Synthesizer Object code Place & Route .elf .bit Data2BRAM PPC code in on-chip memory PPC code in off-chip memory Download to FPGA Debugger Download to FPGA Chip Scope Pro Tools
EDK : Flot de conception Hardware Flow Software Flow HW Block diagram SW flow chart EDK HW description Create SW source ISE Synthesize, P&R Compile DATA2BRAM Bit file / download Elf file / download Design Debug (HW and SW)
Plan de la présentation Contexte Processeurs embarqués au sein de cible FPGA Présentation des cibles matériels « Standalone » Vs OS embarqués Conception d’architecture avec PPC Outil EDK Association d’accélérateurs à processeur embarqué Utilisation d’un OS Applications du « co-processing » (Discussion) Contexte : Plateforme de co-processing pour la compression d’image Évolution : HW accélérateur avec processeur embarqué
Configuration d’OS reste délicate ! Utilisation d’un 0S Configuration d’OS reste délicate !
Outils pour projet avec OS Configuration d’OS reste délicate !
Association PPC à HW accélérateurs En résumé… Archi et Drivers
Plan de la présentation Contexte Processeurs embarqués au sein de cible FPGA Présentation des cibles matériels « Standalone » Vs OS embarqués Conception d’architecture avec PPC Outil EDK Association d’accélérateurs à processeur embarqué Utilisation d’un OS Applications du « co-processing » (Discussion) Contexte : Plateforme de co-processing pour la compression d’image Évolution : HW accélérateur avec processeur embarqué
Conclusion Intéressant les PPC ? Présents dans les FPGAs De nouvelles capacités de calcul (spécialement pour les calculs non réguliers) Grande souplesse vis-à-vis de l’intégration d’interfaces complexes
Merci de votre attention Questions ?
Une plateforme de Co-processing? Carte PCMCIA avec FPGA embarqué Facile de tester des accélérateurs matériels Peut être utiliser comme co-processeur
Virtual Socket for Part 9 Wildcard Virtual Socket for Part 9 MPEG-4 Part 7 – Part 9 MPEG-4 Part 9 Platforms
Objectif premier C Language HDL Language
Generic reduced search Full Search Adresse Algorithm1 Adresse Algorithm2 Search Window with parametic size Pattern with parametic size Motion estimation IP with user search strategy !!! New Wildcard IP using ZBT SRAM Select the strategy
Generic reduced search User search strategy Adresse Algorithm1 Adresse Algorithm2 Full Search Generic reduced search ME
Demos
Autre exemple de plateforme de co-traitement Processeur externe Co-processeur basé sur une cible de type FPGA (avec eventuellement avec PPC)
Camera intelligente avec co-procressing
Merci de votre attention Questions ?
EDK : Définition d’une architecture CPU-FPGA interfaces 405 Core Control Logic OCM controller OCM Controller BRAM FPGA CLB Array Interface Logic Processor Block = CPU core + Interface Logic + CPU-FPGA interface