M a c h i n e V i r t u e l l e R a d i o Riadh Ben Abdallah riadh.ben-abdallah@inria.fr Laboratoire CITI, Équipe Systèmes Embarqués Séminaire des thésards, 20 Mars 2008 1
Le Contexte radio logicielle single-chip UMTS/EDGE/GSM/ GPRS 802.11 a/b/g Reconfigurable chip Bluetooth chip Concept de la Radio Logicielle (Software Defined Radio) = WiMax Intel chip GSM chip Matériel reconfigurable + draft-n compliant 802.11n chip Logiciel 2
Architecture d un terminal radio RF: Antenne(s), filtres analogiques, AGC, ADC Modem: Codage / décodage, modulation / démodulation Application: Logiciel embarqué 3
Modem reconfigurable SoC SoC Mem Addi FPGA SoC (System on Chip): rassemble différents modules PHY implementés en SW/HW. Digital baseband modem board FPGA (Field Programmable Gate Array): implémente les modules PHY supplémentaires. SoC 4
Plateforme radio reconfigurable Composants de la carte: Unités de traitement (FAUST) Circuit programmable (FPGA) Mémoires Host computer IF (Ethernet) modules CAN & CNA E/S s numériques rapides Dispositifs de monitoring et de debug Outils de configuration 4MORE Project board 5
FAUST Flexible Architecture of Unified Systems for Telecom Les IPs (Intellectual Property) intégrées: FFT / ifft Framing / De-framing FHT / ifht Channel coding Mapping / demapping Interleaving / de-interleaving Time synchronization Programmable DMA engines Ethernet IF ARM946 core Architecture FAUST 6
FAUST (La puce) 7
Comment implémenter des standards PHY? Applications ciblées pour être développé sur la plateforme Faust: 1ère phase: 802.11a, MC-CDMA SISO & MIMO 2ème phase: 802.11n, 802.16e, 3GPP/LTE Une couche PHY Programmes de contrôle et de configuration de modules PHY génériques. Objectifs : Portabilité de l application radio. Flexibilité (Modularité et Réutilisation) Hétérogénéité des modules PHY. Synchronisation globale du système. Reconfiguration dynamique. Contraintes de temps. 8
Programmation compliquée Configuration des IP s. (paramétrisation et microcodage) Contrôle et configuration des communications entre les IP s. Synchronisation globale. aiguillage du flux de donnée. IP s Diagramme fonctionnel du modem Firmware spécifique du CPU (microprogramme) 9
Exemple de processus RX & TX (MC-CDMA PHY) Processus RX Processus TX 10
La Machine Virtuelle Radio (MVR) Le développement du MC-CDMA a nécessité quelques centaines de Jours Homme!! Solution: LA MACHINE VIRTUELLE RADIO: Couche d abstraction pour le développement de couches PHY. Virtualisation des ressources radios. Ecrire un programme pour une couche PHY = qcq lignes de code radio haut niveau. Code compilable en un bytecode indépendant de la plateforme. Code téléchargeable. 11
Langage de description des PHY s La PHY fournit des services à la MAC (essentiellement transmettre et recevoir des paquets sur le canal radio) PHY = { programmes de configuration } Terminal reconfigurable = {PHY} PHY Description Language (PDL) : Primitives de configuration des modules PHY. Primitives d interconnections des modules PHY. Gestion de la synchronisation globale. Mécanisme d accès à la mémoire. MAC Code haut niveau Machine virtuelle radio Langage haut niveau la MV interprète le PDL exécution de microprogramme. DSP IP HW 12
Primitives identifiées (1/2) Un composant Cp = un module PHY Primitive de création d instances : CpHandle = Cp.create ( Paramètre de construction ) Primitive de configuration : CpHandle.configure( Liste des paramètres, IT ) Primitive de connections : connect( CpHandle1.out, CpHandle.in ) Primitive de validation de configuration : CpHandle. start( ) Primitive bloquante de la VM lors de l attente d un résultat: result = wait( CpHandle ) 13
Primitives identifiées (2/2) Composant particulier DMAengine (contrôleur mémoire): BufPtr = read( DMAengine_instance, offset, size ) write( DMAengine_instance_dest, BufPtr, offset, size ) Configuration particulière du DMAengine: Paramétrisation = Microprogrammation Exemple : DMA_engine.Configure ( while(1) { send 60 LOSSLESS); destroy 30; backptr 5; }, IT) 14
Implémentation de la PHY 802.11a PPDU 802.11a Diagramme de bloc du 802.11a 15
Diagramme de séquence (1/2) 16
Diagramme de séquence (2/2) 17
Démonstrateur de la MVR Environnement LUA (langage + compilateur + MV) langage interprété (syntaxe simple) machine virtuelle très compacte (<30ko) Écrit en ANSI C Extensible (API d extension bibliothèques en C/C++) Extension de LUA -> Démonstrateur MVR Dispositifs de Multi-threading (PThread) Structure de données nécessaires : Binaryset.h, Complexset.h, Buffer.h, Fifo.h Développement des briques de bases de la couche PHY IEEE802.11a et leurs intégrations dans l environnement LUA Scrambler, Codeur de convolution, entrelaceur, mapper, FFT/IFFT 18
Travail en cours Formaliser le langage PDL: Analyseur lexical et syntaxique (Lex & yacc) Implémenter d autres standard PHY. Etude des performances (contraintes TR) Evaluation des surcouts de la MVR. Intégration de la MVR sur Faust. 19
Merci pour votre attention N hésitez pas à poser vos questions! Feel free to ask any question! 20