L’informatique d’aujourd’hui est connectée à tous les niveaux. Les applications sont de plus en plus externalisées, et il devient difficile de trouver des programmes informatiques n’utilisant pas les réseaux. Allant de paire avec les applications, la conception même des plateformes matérielles intègre les réseaux. Que ce soit les serveurs, les stations de travail, les ordinateurs portables, les téléphones, . . . La plupart des systèmes utilisent aujourd’hui plusieurs méthodes d’accès aux réseaux. L’évolution des téléphones portables est représentative de cette connectivité accrue. Ils permettent de se connecter au réseau téléphonique , peuvent utiliser le Bluetooth pour se connecter à des périphériques ou à un ordinateur, et ont également souvent accès à un réseau WiFi. Tous ces réseaux sont des réseaux sans fil, qui utilisent les ondes électromagnétiques comme support. Ils évoluent régulièrement, de nouveaux voient le jour, certains ne s’utilisent plus.
La radio logicielle
Intégrer une norme réseau dans une plateforme matérielle requiert l’intégration de plusieurs éléments :
– une antenne adaptée à l’onde utilisée pour la norme ;
– un système de modulation et de démodulation, qui permet de moduler le signal en bande de base sur la porteuse à l’émission, et d’effectuer l’opération inverse pour la réception. Ce système est généralement en partie analogique et en partie numérique ;
– une chaine d’opérations, appelée couche PHYsique (PHY), qui transforme à l’émission la suite de bits à envoyer en un signal en bande de base selon des caractéristiques propres à la norme. A la réception, une chaine d’opérations duale effectue le traitement inverse afin de restituer la séquence de bits émise ;
– un protocole, appelé couche Medium Access Control (MAC), qui définit quelle suite de bits sera envoyée à quel moment sur quel canal. La couche MAC reçoit les données du réseau et les transfère à la couche physique.
Les Application Specific Integrated Circuit (ASIC) sont communément utilisés pour supporter une norme de communication dans un terminal radio. Un terminal radio contient autant de périphériques matériels qu’il y a de réseaux auxquels il est susceptible de se connecter. L’utilisation de périphériques matériels permet actuellement d’atteindre les performances requises en termes de taille, de consommation et de débit. Alors que la multiplication des normes supportées par un simple système génère une augmentation de la surface de silicium requis par les ASIC, que de nouvelles normes arrivent sur le marché régulièrement, que toutes ces normes sont sujettes à de nombreuses évolutions et mises à jour, la notion de flexibilité s’invite dans la réflexion concernant la conception des futurs systèmes communicants. On ne veut pas seulement implanter des réseaux de manière performante, et en limitant la consommation d’énergie. On veut pouvoir faire évoluer ces réseaux, et les implanter de manière intelligente. Cette flexibilité peut s’appuyer sur différents types de circuits :
logiciel sur processeurs (généralistes ou non), matériel paramétrable, Field-Programmable Gate Array (FPGA), . . . La notion de flexibilité recouvre plusieurs aspects. Elle permet de gérer la coexistence, voire la coopération entre unités de calcul hétérogènes. Mais, au-delà de cette possibilité offerte aux futurs systèmes, elle permet aussi d’offrir aux systèmes une forme d’intelligence dans leurs capacités d’adaptation à leur environnement. Ces capacités d’adaptation peuvent servir pour différents objectifs :
– changer les paramètres intrinsèques d’un codeur pour s’adapter aux défaillances du canal et réduire les erreurs ;
– changer de norme en fonction de la distance à l’émetteur, du débit requis ;
– éteindre des éléments qui ne servent pas et les ré-allumer dès que nécessaire ;
– utiliser une puce unique pour exécuter différentes normes, potentiellement en concurrence (multimode).
les réseaux sans fil
Les travaux réalisés durant cette thèse se situent à la frontière entre les réseaux et l’architecture des systèmes. Afin de pouvoir présenter la problématique que nous adressons, il convient de définir correctement l’architecture générale d’un terminal radio.
Modèle réseau
Tout d’abord, les normes réseaux actuelles sont divisées selon un modèle en couche, le modèle Open Systems Interconnection (OSI). Le modèle OSI , est un modèle basé sur 7 couches distinctes, chacune des couches étant spécifiée pour remplir un objectif bien précis. Dans un terminal réseau, chacun de ces niveaux est capable de dialoguer avec son équivalent dans un autre terminal. Un niveau donné reçoit des requêtes de la couche directement au dessus, et émet des requêtes vers la couche directement en dessous.
On s’intéresse principalement aux deux premières couches du réseau, la couche physique (appelée PHY), et la couche de liaison de données (data link layer). La première couche est en contact direct avec le medium utilisé pour la transmission des données. Dans le cadre de la radio, ce medium est le domaine des ondes électromagnétiques. La seconde couche est conçue pour permettre le transfert entre deux terminaux du réseau. Elle se divise en deux sous-couches, la couche Medium Access Control (MAC), qui permet de gérer effectivement l’accès au milieu, surtout dans le cas d’accès multiples, et la couche Logical Link Controller (LLC), qui gère normalement le contrôle d’erreur en plus d’autres attributions. On regroupera par abus de langage sous la même appellation « MAC » l’ensemble des éléments de la couche 2.
Chaîne de communication
La partie physique d’un réseau est généralement représentée comme une chaîne de communication, permettant de transposer l’information du domaine numérique au domaine analogique en utilisant des techniques de modulation. Cette chaîne de communication correspond à ce que nous appellerons dans ce mémoire une application radio. La chaîne de communication est donc idéalement représentée sous la forme d’un graphe. Chaque nœud représente une tâche et les arêtes qui relient les nœuds représentent les communications (données) entre les tâches. Ce graphe peut-être assimilé à un pipeline. On peut utiliser le modèle de programmation Synchronous Data Flow pour représenter cette application, les ratios entre les entrées consommées et les sorties produites pour chaque tâche étant connus.
Vers des réseaux de plus en plus flexible
La flexibilité devient une notion incontournable des réseaux sans fil [Tut02]. Le terme de flexibilité est utilisé, dans ce contexte, pour caractériser un élément du réseau qui n’est pas figé dans un mode de fonctionnement. Cet élément peut être le réseau lui-même, ou bien un terminal réseau, ou encore un élément de ce terminal. Depuis la formalisation de la radio logicielle en 1992 [Mit92], la notion de flexibilité dans la radio a pris de l’ampleur et est maintenant devenue un des principaux domaines de recherche associés aux liaisons sans fil. Cependant, cette notion de flexibilité est floue. Une multitude de termes se rapportent plus ou moins à la radio flexible, il est par conséquent difficile d’en donner une définition précise. Nous recensons dans cette partie les termes les plus utilisés, afin de clarifier la réflexion autour des travaux réalisés dans le cadre de cette thèse. Nous employons la terminologie utilisée dans [DZD+05].
|
Table des matières
1 Introduction
2 Problématique
2.1 Contexte de la thèse
2.1.1 Modèle réseau
2.1.2 Chaîne de communication
2.2 Réseaux flexibles
2.2.1 Radio classique
2.2.2 Radio reconfigurable
2.2.2.1 Vision générale
2.2.2.2 Software Radio
2.2.2.3 Software-Defined Radio
2.2.3 Radio flexible
2.2.4 Radio cognitive
2.2.4.1 Terminal de radio cognitive
2.2.4.2 Radio opportuniste
2.2.5 Interactions radio flexible/radio cognitive
2.2.5.1 Différences de terminologie
2.2.5.2 Architecture d’un terminal radio
2.2.6 Conclusion
2.3 Radio flexible : de multiples possibilités
2.3.1 Scénarios de reconfiguration
2.3.1.1 Adaptation
2.3.1.2 Évolution des normes
2.3.1.3 Multimode
2.3.2 De multiples cibles de reconfiguration
2.3.2.1 Cibles logicielles
2.3.2.2 Matériel reconfigurable
2.3.3 Conclusion sur la radio flexible
2.4 Choix de l’implantation : évolution
2.4.1 Performance de la radio logicielle
2.4.2 Essor du GPGPU
2.4.3 Problèmes du GPGPU pour la radio logicielle
2.5 Environnement de reconfiguration unique
2.5.1 Objectifs
2.5.2 Gestion de la reconfigurabilité
2.5.3 Intégration de la radio flexible
2.5.4 Gestion de la reconfiguration
2.5.5 Conclusion : besoins d’un environnement flexible
2.6 Conclusion générale
3 État de l’art
3.1 Représentation d’une application radio
3.1.1 Reconfiguration
3.1.1.1 Définition générale
3.1.1.2 Cas de la radio logicielle
3.1.2 Représentation des applications
3.2 Plateformes de radio logicielle
3.2.1 Solutions à base de processeurs
3.2.2 Intégration des GPU
3.2.3 Utilisation de FPGA
3.2.4 Solutions hybrides
3.2.5 Matériel reconfigurable et adaptabilité
3.2.5.1 Paramétrisation et opérateurs communs
3.2.5.2 ASIC et SOC
3.2.6 Conclusion sur les plateformes
3.3 Environnements
3.3.1 Objectifs
3.3.2 Exécution hétérogène
3.3.2.1 Accélérateurs matériels
3.3.2.2 Intégration des FPGA
3.3.2.3 Exécution hétérogène GPP/DSP
3.3.3 Environnements complets
3.3.3.1 SCA
3.3.3.2 RMA
3.3.3.3 GNURadio
3.3.3.4 P-HAL/Aloe
3.3.3.5 MVR : Machine Virtuelle Radio
3.3.3.6 Surfer
3.3.4 Conclusion
3.4 Conclusion du chapitre
4 Intégration du GPU dans la radio logicielle
4.1 Introduction : le GPGPU
4.1.1 Origine
4.1.2 Principe
4.1.2.1 Architecture d’une plateforme OpenCL
4.1.2.2 Format d’une application
4.1.3 Contraintes et objectif
4.2 Utilisation optimisée
4.2.1 Opérations basiques
4.2.2 Opérations complexes : première approche
4.2.3 Proposition : maximisation de l’utilisation
4.2.3.1 Parallélisation à grain fin
4.2.3.2 Parallélisation à gros grain
4.2.3.3 Comparaison
4.3 Ordonnancement
4.3.1 Efficacité
4.3.2 Latence
4.3.3 Mémoire
4.4 Intégration distribuée
5 Conclusion
