1 |
Co-conception Logiciel/FPGA pour Edge-computing : promotion de la conception orientée objet / software/FPGA co-design for Edge-computing : Promoting object-oriented designLe, Xuan Sang 31 May 2017 (has links)
L’informatique en nuage (cloud computing) est souvent le modèle de calcul le plus référencé pour l’internet des objets (Internet of Things).Ce modèle adopte une architecture où toutes les données de capteur sont stockées et traitées de façon centralisée. Malgré de nombreux avantages, cette architecture souffre d’une faible évolutivité alors même que les données disponibles sur le réseau sont en constante augmentation. Il est à noter que, déjà actuellement, plus de50 % des connexions sur Internet sont inter objets. Cela peut engendrer un problème de fiabilité dans les applications temps réel. Le calcul en périphérie (Edge computing) qui est basé sur une architecture décentralisée, est connue comme une solution pour ce problème émergent en : (1) renforçant l’équipement au bord du réseau et (2) poussant le traitement des données vers le bord.Le calcul en périphérie nécessite des noeuds de capteurs dotés d’une plus grande capacité logicielle et d’une plus grande puissance de traitement, bien que contraints en consommation d’énergie. Les systèmes matériels hybrides constitués de FPGAs et de processeurs offrent un bon compromis pour cette exigence. Les FPGAs sont connus pour permettre des calculs exhibant un parallélisme spatial, aussi que pour leur rapidité, tout en respectant un budget énergétique limité. Coupler un processeur au FPGA pour former un noeud garantit de disposer d’un environnement logiciel flexible pour ce nœud.La conception d’applications pour ce type de systèmes hybrides (réseau/logiciel/matériel) reste toujours une tâche difficile. Elle couvre un vaste domaine d’expertise allant du logiciel de haut niveau au matériel de bas niveau (FPGA). Il en résulte un flux de conception de système complexe, qui implique l’utilisation d’outils issus de différents domaines d’ingénierie. Une solution commune est de proposer un environnement de conception hétérogène qui combine/intègre l’ensemble de ces outils. Cependant, l’hétérogénéité intrinsèque de cette approche peut compromettre la fiabilité du système lors des échanges de données entre les outils.L’objectif de ce travail est de proposer une méthodologie et un environnement de conception homogène pour un tel système. Cela repose sur l’application d’une méthodologie de conception moderne, en particulier la conception orientée objet (OOD), au domaine des systèmes embarqués. Notre choix de OOD est motivé par la productivité avérée de cette méthodologie pour le développement des systèmes logiciels. Dans le cadre de cette thèse, nous visons à utiliser OOD pour développer un environnement de conception homogène pour les systèmes de type Edge Computing. Notre approche aborde trois problèmes de conception: (1) la conception matérielle, où les principes orientés objet et les patrons de conception sont utilisés pour améliorer la réutilisation, l’adaptabilité et l’extensibilité du système matériel. (2) la co-conception matériel/logiciel, pour laquelle nous proposons une utilisation de OOD afin d’abstraire l’intégration et la communication entre matériel et logiciel, ce qui encourage la modularité et la flexibilité du système. (3) la conception d’un intergiciel pour l’Edge Computing. Ainsi il est possible de reposer sur un environnement de développement centralisé des applications distribuées† tandis ce que l’intergiciel facilite l’intégration des nœuds périphériques dans le réseau, et en permet la reconfiguration automatique à distance. Au final, notre solution offre une flexibilité logicielle pour la mise en oeuvre d’algorithmes distribués complexes, et permet la pleine exploitation des performances des FPGAs. Ceux-ci sont placés dans les nœuds, au plus près de l’acquisition des données par les capteurs, pour déployer un premier traitement intensif efficace. / Cloud computing is often the most referenced computational model for Internet of Things. This model adopts a centralized architecture where all sensor data is stored and processed in a sole location. Despite of many advantages, this architecture suffers from a low scalability while the available data on the network is continuously increasing. It is worth noting that, currently, more than 50% internet connections are between things. This can lead to the reliability problem in realtime and latency-sensitive applications. Edge-computing which is based on a decentralized architecture, is known as a solution for this emerging problem by: (1) reinforcing the equipment at the edge (things) of the network and (2) pushing the data processing to the edge.Edge-centric computing requires sensors nodes with more software capability and processing power while, like any embedded systems, being constrained by energy consumption. Hybrid hardware systems consisting of FPGA and processor offer a good trade-off for this requirement. FPGAs are known to enable parallel and fast computation within a low energy budget. The coupled processor provides a flexible software environment for edge-centric nodes.Applications design for such hybrid network/software/hardware (SW/HW) system always remains a challenged task. It covers a large domain of system level design from high level software to low-level hardware (FPGA). This result in a complex system design flow and involves the use of tools from different engineering domains. A common solution is to propose a heterogeneous design environment which combining/integrating these tools together. However the heterogeneous nature of this approach can pose the reliability problem when it comes to data exchanges between tools.Our motivation is to propose a homogeneous design methodology and environment for such system. We study the application of a modern design methodology, in particular object-oriented design (OOD), to the field of embedded systems. Our choice of OOD is motivated by the proven productivity of this methodology for the development of software systems. In the context of this thesis, we aim at using OOD to develop a homogeneous design environment for edge-centric systems. Our approach addresses three design concerns: (1) hardware design where object-oriented principles and design patterns are used to improve the reusability, adaptability, and extensibility of the hardware system. (2) hardware / software co-design, for which we propose to use OOD to abstract the SW/HW integration and the communication that encourages the system modularity and flexibility. (3) middleware design for Edge Computing. We rely on a centralized development environment for distributed applications, while the middleware facilitates the integration of the peripheral nodes in the network, and allows automatic remote reconfiguration. Ultimately, our solution offers software flexibility for the implementation of complex distributed algorithms, complemented by the full exploitation of FPGAs performance. These are placed in the nodes, as close as possible to the acquisition of the data by the sensors† in order to deploy a first effective intensive treatment.
|
2 |
Conception d'algorithmes répartis et de protocoles réseaux en approche objetSeinturier, Lionel 03 December 1997 (has links) (PDF)
Dans cette thèse, nous nous intéressons à la conception d'algorithmes répartis, de protocoles réseaux et d'applications coopératives avec une approche objet. Cette activité, souvent complexe, nécessite la mise en \oe uvre de nombreux mécanismes systèmes et réseaux. Nous proposons donc différents outils et formalismes permettant de mener à bien cette tâche. L'originalité de notre approche est, d'une part, d'étendre le point de vue local des méthodologies de conception existantes afin d'intégrer les comportements de groupes d'objets distribués, et d'autre part, de proposer les premiers éléments d'une démarche systématique d'algorithmique répartie. Ainsi, nous proposons un processus de développement en trois niveaux méthodologiques : groupe, objet et méthode. Ce processus de type descendant permet d'introduire, par raffinements successifs, de plus en plus de détails dans les modèles de comportements. Ces trois niveaux traitent, respectivement, des aspects liés à la distribution, à la concurrence et aux traitements séquentiels. Dans cette thèse, nous nous intéressons aux deux premiers niveaux. Le niveau groupe concerne la coordination des comportements de groupes d'objets distribués. Nous modélisons les interactions au sein de tels groupes en terme d'échanges de connaissances. Ceux-ci peuvent être vus comme la conséquence d'actions globales entreprises par l'ensemble des objets du groupe. Nous avons mis en évidence quatre actions globales, ou structures de contrôle de groupe, qui apparaissent dans de nombreuses applications distribuées : le schéma de phasage, la conditionnelle distribuée, l'itération distribuée et la récursion distribuée. Elles peuvent être vues comme l'extension, à un niveau réparti, des structures algorithmiques de base que sont, respectivement, la séquence, les instructions de type \em case \em ou \em if\em , les boucles \em while \em et le parcours récursif. Nous utilisons une logique épistémique pour décrire les différents niveaux de connaissance atteints lors de l'exécution de ces structures. Nous proposons une notation appelée programme à base de connaissances de niveau groupe pour exprimer les actions globales et les prédicats épistémiques utilisés par une application. Le niveau objet s'intéresse à la coordination des comportements internes à un objet. C'est un raffinement du niveau précédent, au sens où la coordination inter-objets est implantée par des objets dont les activités concurrentes nécessitent une synchronisation. Pour mener à bien la description de cette coordination intra-objet, nous proposons le langage CAOLAC. Nous en avons réalisé une implantation au-dessus du langage objet du système distribué GUIDE. Le langage CAOLAC se présente sous la forme d'un protocole méta-objet et sépare les aspects de synchronisation des traitements effectifs. Les premiers sont définis dans des méta-classes, tandis que les seconds le sont dans des classes. L'originalité du langage CAOLAC est d'utiliser conjointement un modèle à base d'états et de transitions et du code objet habituel pour l'écriture des méta-classes. Ainsi, chaque objet est associé à un méta-objet qui intercepte les invocations de méthodes et les coordonne avant de les délivrer à l'objet. L'avantage de cette approche est de séparer clairement les différents fonctionnalités et de faciliter la réutilisation des politiques de synchronisation. La sémantique du langage CAOLAC est définie, partiellement, par une logique temporelle, la logique temporelle d'actions de Lamport. Enfin, nous illustrons notre propos par deux études de cas. Nous présentons la conception d'un algorithme réparti de calcul d'arbres couvrants et d'un protocole transactionnel de validation à deux phases.
|
Page generated in 0.0534 seconds