Rôle Du FPGA Dans Les Applications de L'internet Des Objets: Sharjah, Émirats Arabes Unis [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Traduit de Anglais vers Français - www.onlinedoctranslator.com

Rôle du FPGA dans les applications de l'Internet des objets Mohammed Elnawawy, Abid Farhan, Ahmad Al Nabulsi, AR Al-Ali, Assim Sagahyroon Collège d'ingénierie, Université américaine de Sharjah

Sharjah, Émirats arabes unis Résumé—Cet article traite du rôle du Field Programmable Gate Array (FPGA) dans les applications de l'Internet des objets (IoT). Les avantages des FPGA par rapport aux ASIC et aux microcontrôleurs sont soulignés pour justifier l'inclinaison de l'industrie vers davantage d'applications basées sur l'IoT-FPGA. De plus, cet article met en évidence l'architecture matérielle interne du FPGA qui est le principal catalyseur de la fonction de reconfigurabilité des FPGA. Cette caractéristique est ce qui rend les FPGA plus précieux par rapport à l'architecture fixe des microcontrôleurs. Ensuite, plusieurs applications basées sur l'IoT sont discutées dans lesquelles les FPGA montrent la supériorité. Ces applications incluent l'interfaçage de FPGA avec des dispositifs de périphérie basés sur l'IoT et des dispositifs FPGA de système sur puce (SoC) avec un accent particulier sur le FPGA SmartFusion2 SoC de Microsemi. Finalement, Mots clés—FPGA, SmartFusion2.

IdO,

ASIC,

Reconfigurabilité,

SoC,

consomme une quantité d'énergie considérablement faible, en plus d'être de faible coût dans des volumes élevés. Malgré les grands avantages de l'utilisation des ASIC, ils présentent également un grand inconvénient car ils ne disposent pas de la fonction de reconfigurabilité. Cela signifie qu'une fois qu'un ASIC a été fabriqué, l'utilisateur ne peut pas l'utiliser pour effectuer une opération pour laquelle il n'a pas été conçu. Cela a aidé les scientifiques et les chercheurs à proposer le concept d'un FPGA (Field-Programmable Gate Array). Comme son nom l'indique, un FPGA surpasse les ASIC en étant un dispositif reconfigurable qui peut être programmé pour effectuer plusieurs opérations sans avoir besoin de le reconditionner. Ceci est pris en charge par la structure interne d'un FPGA illustré à la Fig. 1 qui se compose de plusieurs blocs logiques programmables qui peuvent être reconfigurés pour exécuter plusieurs fonctions, en plus de l'interconnexion programmable qui relie les différents blocs logiques entre eux. En outre, les FPGA ont un coût de développement très faible et un délai de commercialisation court par rapport aux ASIC.

je. jeNTRODUCTION L'évolution de la technologie numérique a connu de multiples percées au cours des dernières décennies. La première étincelle a peutêtre été déclenchée par Gordon Moore lorsqu'il a prédit que le nombre de transistors sur une puce doublerait tous les deux ans. La prédiction de Moore semble avoir pris de l'ampleur avec le nombre de transistors passant de 32 en 1965 à 1 milliard en 2007, et elle continue sans l'ombre d'un doute [1]. L'industrie des circuits numériques s'est appuyée pendant de nombreuses années sur la technologie des transistors à jonction bipolaire (BJT). Cela a permis des avancées dans la conception et le développement de circuits intégrés spécifiques à une application (ASIC) conçus spécifiquement pour un usage particulier. L'utilisation de BJT, bien qu'elle nous offre de nombreux avantages, comporte de nombreux inconvénients. L'un des inconvénients majeurs des BJT est la consommation élevée car il s'agit d'un transistor fonctionnant en courant. Ce problème limite l'évolutivité des applications qui utilisent des BJT, car l'extension d'un ASIC pour incorporer des opérations gourmandes en calcul signifie également plus de puissance. En conséquence, cette préoccupation a donné lieu à la naissance de la technologie CMOS. L'introduction des transistors CMOS dans le monde numérique a permis à la loi de Moore de persister et de se poursuivre pendant de plus en plus d'années puisqu'elle permet aux fabricants de mettre plus de transistors dans la même puce avec un taux de consommation d'énergie inférieur. La nature des ASIC leur permet d'effectuer une seule fonction. En conséquence, la mise en œuvre ASIC d'un circuit numérique possède de nombreux avantages qui aident à améliorer les performances du circuit. Les avantages de l'utilisation des implémentations ASIC incluent des capacités très hautes performances puisque la puce a été fabriquée avec une fonction spécifique à l'esprit. Ça aussi

978-1-7281-5341-4/19/$31,00 ©2019 IEEE

Fig. 1. Schéma fonctionnel d'un FPGA [2]

Ce document commence par souligner la raison de l'essor des FPGA, puis aborde l'architecture matérielle du FPGA, suivi d'une comparaison entre les capacités des FPGA et des microcontrôleurs IoT modernes. Ensuite, l'article traite des applications IoT industrielles dans lesquelles les FPGA se sont avérés d'une grande utilité. Ceux-ci incluent l'interfaçage des FPGA avec des dispositifs de périphérie basés sur l'IoT et des applications FPGA de système sur puce (SoC). Enfin, l'article propose une nouvelle application qui peut utiliser la large gamme de capacités au sein du FPGA.

II. FPGA TOPOLOGIE La reconfigurabilité matérielle est l'une des fonctionnalités les plus intéressantes qui permet aux FPGA de s'adapter à divers scénarios en termes de sécurité, d'efficacité énergétique et de fonctionnalités [3]. En raison de leurs excellentes caractéristiques, les possibilités d'applications basées sur FPGA sont infinies. D'autre part, l'introduction de l'IoT a complètement révolutionné le domaine de la technologie. Maintenant que les FPGA peuvent être utilisés dans les domaines IoT, il

ajouté une nouvelle couche d'innovation d'idées. Des recherches approfondies ont été effectuées sur des applications IoT basées sur FPGA telles que l'accélération des services de centre de données à grande échelle [4], le traitement d'images pour les appareils IoT [5, 6] et la sécurité des réseaux [7, 8]. Alors que certaines applications utilisent les ressources matérielles de l'intérieur d'un FPGA [9], d'autres telles que [5] peuvent simplement exploiter la vitesse de traitement rapide et la capacité de reconfigurer les composants matériels afin de compiler les codes du langage de description matérielle (HDL). Les FPGA sont également supérieurs aux microcontrôleurs en termes de capacités de traitement du signal. Ils ont gagné en popularité dans ce domaine en raison de leur forte puissance de traitement lorsqu'il s'agit d'analyser des signaux par rapport aux capacités limitées d'un microcontrôleur ordinaire.

et 700 broches d'E/S [11]. La figure 2 montre la structure interne de l'un des blocs logiques programmables d'un FPGA ordinaire.

La sous-section suivante met en évidence l'architecture matérielle d'un FPGA standard en gardant un œil sur l'importance de la structure interne pour la propriété de reconfigurabilité du FPGA.

A. Architecture matérielle

Il existe principalement deux fabricants géants de puces FPGA qui dominent le marché de nos jours ; Altera qui a été racheté par Intel en 2015 pour environ 16,7 milliards de dollars US, et Xilinx qui est considéré comme le pionnier de l'industrie de fabrication de FPGA [10]. Si elle devait être examinée, l'architecture matérielle des FPGA fabriqués par les deux sociétés n'aurait que des différences mineures, les deux sociétés s'accordant sur l'implémentation matérielle globale. La structure interne d'un FPGA est la principale technologie de pilotage de la fonction de programmabilité de la puce. En effet, un FPGA se compose de différents blocs programmables qui permettent à l'utilisateur final de personnaliser la puce sur le terrain sans avoir à reconcevoir la puce à partir de zéro. Les blocs logiques se composent principalement d'unités de mémoire, de logique et de multiplicateur. Ces unités sont entourées de plusieurs blocs d'E/S programmables qui sont utilisés pour interfacer les blocs logiques internes avec le monde externe. En zoomant sur l'une des unités logiques d'une architecture FPGA standard, une table de correspondance (LUT) est utilisée pour stocker les sorties d'une fonction booléenne spécifique qui correspondent à des entrées spécifiques. L'existence d'une LUT est l'une des principales raisons d'une exécution rapide dans un FPGA, car la complexité d'exécution de la fonction est similaire à celle d'une table de hachage. Si les entrées sont connues, le FPGA peut générer la sortie en un rien de temps puisque les sorties sont stockées dans cette LUT. En plus de la LUT, le FPGA dispose également d'un fichier de registre dédié qui doit être utilisé comme mémoire à accès aléatoire (RAM). De plus, une unité logique contient également des bascules spécifiques afin de servir d'éléments de mémoire pour la sortie de ce bloc. Enfin, le FPGA utilise des MUX afin de router différentes entrées vers la sortie en cas d'opérations conditionnelles. La famille de puces Virtex-7 est considérée comme la technologie de pointe sur le marché actuel des FPGA. Il est optimisé pour les performances et l'intégration du système à 28 nm et est utilisé dans une large gamme d'applications, notamment les réseaux 10G à 100G, les radars et le prototypage ASIC.

Par exemple, l'architecture Virtex-7 FPGA contient jusqu'à 485 760 cellules logiques, 2 800 tranches DSP, avec 37 080 Kbits de blocs mémoire embarqués, 56 émetteurs-récepteurs GTX 12,5 Go/s,

Fig. 2. Structure interne d'un bloc logique programmable [2]

B. Avantages des FPGA

La comparaison entre les FPGA et les dispositifs de pointe IoT modernes est l'un des sujets les plus discutables dans le monde technologique. Récemment, des scientifiques ont essayé de peser les avantages et les inconvénients des FPGA par rapport aux microcontrôleurs comme Raspberry Pi et Particle Photon. Malgré le fait que les microcontrôleurs sont des dispositifs de périphérie à usage général relativement moins chers qui sont capables d'effectuer beaucoup de calcul de périphérie, les FPGA sont toujours un acteur majeur en matière de calcul intensif. Les microcontrôleurs compatibles avec le cloud comme Raspberry Pi et Photon sont connus pour leur efficacité à collecter des données brutes à partir de capteurs au niveau de la couche physique. D'autre part, ils n'ont pas la puissance de traitement requise pour effectuer des calculs très exigeants comme le traitement d'images et de signaux. Les microcontrôleurs peuvent également être considérés comme une implémentation ASIC car ils offrent principalement une architecture fixe. Cela signifie que les microcontrôleurs souffrent des mêmes inconvénients que les ASIC par rapport aux FPGA. Cela est évident d'après le petit nombre de ports d'entrée et de sortie dans Raspberry Pi et Photon. D'un autre côté, le FPGA offre un nombre énorme de ports d'E/S par rapport à ces microcontrôleurs. Par conséquent, c'est là que le FPGA offre un avantage sur les microcontrôleurs car il peut être adapté aux besoins exacts d'une application spécifique, contrairement à leurs homologues qui sont limités par les ports fabriqués et donc on ne peut ni étendre les entrées ni les sorties si l'application l'exige. plus d'entre eux, ni d'économiser certaines ressources si elles sont en excès. Par conséquent, le principal avantage d'un FPGA par rapport à tout ASIC ou microcontrôleur est le fait qu'il permet aux développeurs de concevoir et d'essayer différentes implémentations et configurations et d'évaluer leurs performances sur le terrain avant de passer à l'étape de fabrication qui coûte énormément de ressources. En conséquence, certains fabricants de microcontrôleurs implémentent une architecture de microcontrôleur nouvellement proposée sur un FPGA afin de pouvoir manipuler la conception presque sans frais. Une fois que le concepteur est satisfait des performances de son design, celui-ci peut ensuite être gravé sur une puce dédiée prête à être vendue aux consommateurs. En revanche, l'implémentation d'une architecture de FPGA sur un microcontrôleur n'est pas possible.

Il y a encore un autre aspect dans lequel les FPGA surpassent les microcontrôleurs, et c'est le traitement parallèle. Le processeur d'un microcontrôleur ordinaire a généralement une routine spécifique à suivre ; récupérer, décoder et exécuter. Il commence par extraire une instruction de la mémoire d'instructions, puis il essaie de comprendre la signification de cette instruction et exécute ensuite l'instruction en conséquence. Il ne fait qu'une instruction à la fois. Cela signifie qu'un microcontrôleur est uniquement capable d'exécuter des instructions de manière séquentielle et qu'il a donc une limitation sur le nombre d'instructions pouvant être traitées simultanément. D'autre part, les FPGA bénéficient de la possibilité d'exécuter plusieurs instructions simultanément. Ceci est pris en charge par la brillante architecture interne qui sépare différentes unités logiques au sein de la même puce de sorte que chaque unité logique puisse fonctionner indépendamment. Par conséquent, deux unités logiques peuvent effectuer deux opérations entièrement différentes sans affecter le résultat de l'autre. Cette fonctionnalité FPGA peut être exploitée dans des

implémenter les filtres d'image sur le FPGA sont déjà flashés dans la puce. Une sélection déclenche des broches d'entrée-sortie à usage général (GPIO) associées sur un microcontrôleur Raspberry Pi qui communique par conséquent avec le décodeur d'un FPGA. Une fois le traitement de l'image terminé, le FPGA envoie l'image de sortie à un écran d'ordinateur via un connecteur de matrice vidéo graphique (VGA). La figure 3 montre le schéma fonctionnel du système. Étant donné qu'un utilisateur doit accéder à l'application du serveur Web via l'adresse IP du R-Pi, l'application est basée sur l'IoT.

applications qui nécessitent un traitement parallèle des données. Par exemple, le traitement d'images est connu pour être l'une des opérations les plus gourmandes en calculs. Un microcontrôleur ne peut parcourir que les pixels d'une image les uns après les autres, alors que l'architecture des FPGA peut être exploitée pour diviser l'image en plusieurs sections indépendantes et affecter chaque section à un groupe d'unités logiques différentes. De cette façon, le traitement des images sur les FPGA est beaucoup plus rapide par rapport à l'alternative aux microcontrôleurs. deux unités logiques peuvent effectuer deux opérations entièrement différentes sans affecter le résultat de l'autre. Cette fonctionnalité FPGA peut être exploitée dans des applications qui nécessitent un traitement parallèle des données. Par exemple, le traitement d'images est connu pour être l'une des opérations les plus gourmandes en calculs. Un microcontrôleur ne peut parcourir que les pixels d'une image les uns après les autres, alors que l'architecture des FPGA peut être exploitée pour diviser l'image en plusieurs sections indépendantes et affecter chaque section à un groupe d'unités logiques différentes. De cette façon, le traitement des images sur les FPGA est beaucoup plus rapide par rapport à l'alternative aux

Fig. 3. Schéma fonctionnel du système de l'interface R-Pi avec FPGA dans l'IoT

candidature [5] En raison de la structure matérielle FPGA, [5] a mentionné qu'il y avait un temps d'exécution

microcontrôleurs. deux unités logiques peuvent effectuer deux opérations entièrement différentes sans affecter le résultat de l'autre.

réduit lorsque les opérations de traitement d'image lourdes étaient effectuées sur le FPGA par

Cette fonctionnalité FPGA peut être exploitée dans des applications qui nécessitent un traitement parallèle des données. Par exemple,

rapport au traitement basé sur un serveur Web. L'idée de découpler les capacités de traitement

le traitement d'images est connu pour être l'une des opérations les plus gourmandes en calculs. Un microcontrôleur ne peut parcourir

du FPGA de la couche physique des périphériques IoT et de la couche d'application des services

que les pixels d'une image les uns après les autres, alors que l'architecture des FPGA peut être exploitée pour diviser l'image en

Web constitue un moyen robuste d'effectuer des calculs complexes tout en améliorant le temps

plusieurs sections indépendantes et affecter chaque section à un groupe d'unités logiques différentes. De cette façon, le traitement

d'exécution et l'utilisation des ressources. De plus, un tel modèle permet à tout appareil IoT doté

des images sur les FPGA est beaucoup plus rapide par rapport à l'alternative aux microcontrôleurs. Par exemple, le traitement

de normes de communication, telles que l'USB largement utilisé, abréviation de Universal Serial

d'images est connu pour être l'une des opérations les plus gourmandes en calculs. Un microcontrôleur ne peut parcourir que les pixels d'une image les uns après les autres, alors que l'architecture des FPGA peut être exploitée pour diviser l'image en plusieurs sections indépendantes et affecter cha

Bus, de s'interfacer facilement avec une carte FPGA. De même, un autre avantage réside dans

En général, les FPGA ne nécessitent généralement pas une horloge aussi rapide que les microcontrôleurs, car les FPGA sont de nature très rapide car ils n'entraînent pas la surcharge des microcontrôleurs lors de l'exécution du code logiciel [11-14]. Contrairement aux microcontrôleurs Raspberry Pi 3 et Particle Photon, le FPGA Xilinx VC707 peut exécuter des instructions en parallèle, ce qui augmente encore sa vitesse. Si nous devions comparer le VC707 et le Raspberry Pi 3 et Particle Photon, nous constaterions que les FPGA offrent généralement un plus grand nombre de GPIO. Cela offre un moyen plus flexible de conception de système du point de vue de l'utilisateur. Les FPGA et les microcontrôleurs offrent à la fois une communication filaire et sans fil qui permet à l'utilisateur d'interfacer les appareils avec le monde extérieur. Néanmoins, III. FPGA-BASED jeôATAPPLICATIONS Maintenant que le document a établi des bases solides en discutant des avantages et des inconvénients des FPGA par rapport aux ASIC et aux microcontrôleurs, en plus de l'architecture matérielle générale d'un FPGA, cette section présente quelques applications basées sur l'IoT qui tirent parti de la structure du FPGA. Les applications discutées incluent l'utilisation du FPGA en tant que périphérique de périphérie, le filtre de couche réseau compatible FPGA pour les périphériques de périphérie et le FPGA SoC compatible IoT. A. FPGA en tant que périphérique de traitement de support Une recherche intéressante dans le domaine a proposé une technique robuste où le matériel FPGA est utilisé uniquement pour les opérations de traitement d'images et est interfacé avec un appareil basé sur l'IoT tel que Raspberry Pi [5]. Avec une application de serveur Web exposée à l'utilisateur via n'importe quel navigateur, un certain nombre de filtres d'image spécifiques peuvent être sélectionnés par l'utilisateur. Codes pertinents pour

l'efficacité du codage ; étant donné que toutes sortes de traitements complexes sont effectués sur la structure FPGA en utilisant le codage HDL, le dispositif IoT interfacé peut simplement utiliser un langage de programmation de haut niveau tel que C, Python ou Java qui sont couramment utilisés par les programmeurs. Cependant, il peut y avoir des inconvénients avec un tel modèle ; par exemple, l'interfaçage d'un appareil périphérique IoT nécessiterait que le FPGA soit physiquement à proximité, à condition que l'interface utilise une norme de communication filaire telle qu'un câble USB. Avec cette possibilité de limitation, la section suivante explore les applications récentes qui utilisent la structure FPGA intégrée avec un traitement softcore dans un seul appareil, un système sur puce (SoC). à condition que l'interface utilise une norme de communication filaire telle qu'un câble USB. Avec cette possibilité de limitation, la section suivante explore les applications récentes qui utilisent la structure FPGA intégrée avec un traitement softcore dans un seul appareil, un système sur puce (SoC). à condition que l'interface utilise une norme de communication filaire telle qu'un câble USB. Avec cette possibilité de limitation, la section suivante explore les applications récentes qui utilisent la structure FPGA intégrée avec un traitement softcore dans un seul appareil, un système sur puce (SoC).

B. FPGA SoC compatible IoT

L'intégration d'un processeur autonome à l'architecture FPGA a permis à de nombreux chercheurs d'aller beaucoup plus loin dans leurs travaux dans les domaines d'application des FPGA. La figure 4 montre un aperçu rapide du système avant et après l'intégration d'un processeur autonome avec l'architecture FPGA. À l'heure actuelle, il n'y a que trois fournisseurs réputés de FPGA SoC sur le marché, à savoir Altera, Xilinx et Microsemi. Selon une courte littérature d'Altera, les trois fabricants ont utilisé un système de processeur basé sur ARM sur la puce [15]. Entre autres spécifications, certains ou tous ont des mémoires cache, de la RAM sur puce, une unité à virgule flottante et un certain nombre de périphériques de processeur. Le fait d'avoir le processeur et la structure FPGA sur la même puce de silicium réduit considérablement les coûts de production et économise de l'espace sur la carte de circuit imprimé. Non seulement que,

consommation, diminue la latence de communication et augmente par

opérations des algorithmes. Les résultats fournissent la preuve que

conséquent la bande passante. Avec les conceptions d'applications de

l'implémentation matérielle utilisant Zynq a dépassé l'implémentation

nouvelle génération et les demandes des utilisateurs, ils auraient besoin de

logicielle basée sur C par différents facteurs dans divers aspects de l'analyse.

la flexibilité matérielle et des fonctionnalités de gestion de processeur qu'un

Par conséquent, cela montre que les appareils IoT fonctionnent très

FPGA SoC peut réellement fournir. Ensuite, cet article couvrira certaines

efficacement lorsqu'ils sont implémentés avec une technologie

applications qui utilisent un dispositif SoC FPGA dans leur modèle

reprogrammable comme les appareils SoC FPGA.

d'application proposé.

Fig. 4. Intégration d'un processeur autonome avec FPGA [15]

Selon [16], les appareils basés sur l'IoT communiquent à l'aide d'une pile de protocoles en couches générique, comme le montre la figure 5. Cependant, en fonction des volumes de données que ces appareils IoT envoient et/ou reçoivent, le temps de traitement varie, et il incombe à un tel appareil d'avoir une vitesse adéquate pour traiter toutes les données en temps réel. En règle générale, ces périphériques de périphérie ne sont pas équipés d'une grande puissance de traitement. C'est là qu'intervient l'architecture d'un FPGA. SmartFusion2 de Microsemi, un dispositif FPGA SoC, fournit la capacité de traitement nécessaire pour essentiellement transmettre des données à d'autres dispositifs sur une plate-forme basée sur l'IoT [16]. L'utilisation des structures FPGA peut réduire considérablement le temps d'exécution des opérations de communication impliquées dans la pile de protocoles de communication IoT. Cette application, contrairement à [5],

Fig. 5. Pile de communication IoT [16]

L'un des sous-domaines les plus fréquemment discutés des applications IoT est le système de gestion et de distribution d'énergie du réseau intelligent. L'un de ses éléments est le compteur d'énergie intelligent et/ou le système de contrôle. Les systèmes de compteurs d'énergie intelligents typiques comprennent des interfaces d'équipement pour le contrôle et la mesure de la puissance. Ces interfaces sont connectées à des composants matériels tels qu'une unité de contrôleur de puissance et une unité de mesure de puissance. Les interfaces et les unités matérielles nécessitent un système et un contrôleur d'interface qui sont en outre connectés à d'autres composants matériels tels qu'une unité de réseau sans fil pour transmettre et recevoir des données, et une unité d'alimentation. En plus de la configuration de base d'un système de compteur d'énergie intelligent, il existe des exigences de sécurité qui doivent être respectées afin de protéger le système contre les intrusions, le reniflage de paquets et d'autres attaques. Afin de mettre en œuvre ce modèle de base d'un compteur d'énergie

L'énorme puissance de traitement apportée par le matériel FPGA peut faire bien plus que l'exécution

intelligent, un article de Microsemi, l'un des fournisseurs populaires de FPGA

d'opérations de communication. Par exemple, la sécurisation des appareils IoT nécessite la mise en œuvre

SoC, a proposé une conception utilisant le FPGA SoC SmartFusion2 [18]. La

d'algorithmes cryptographiques très coûteux en calcul. Non seulement cela, pour des raisons de sécurité, ces

figure 6 représente une conception bien illustrée du système proposé.

algorithmes doivent être mis à jour fréquemment. L'utilisation d'une implémentation matérielle personnalisée nécessite de modifier partiellement ou même complètement les composants matériels, ce qui peut être économiquement coûteux et prendre du temps. Pour cela, [17] a proposé une conception SoC basée sur FPGA qui peut répondre aux besoins susmentionnés et résoudre les problèmes. En utilisant le FPGA Zynq de Xilinx, un SoC programmable, ainsi que deux cœurs ARM, l'article présente une configuration expérimentale ainsi que des résultats graphiques qui montrent une comparaison entre une implémentation logicielle utilisant la programmation C et l'implémentation matérielle utilisant le FPGA Zynq. La mise en œuvre consiste en la synthèse de crypto-moteurs pour les algorithmes suivants ; Advanced Encryption Standard (AES), Data Encryption Standard (DES), Rivest & Shamir & Adleman (RSA) et Secure Hash Algorithm (SHA). Chacune des fonctions a également sa contrepartie logicielle à des fins d'évaluation. Les crypto-moteurs sont mappés sur la carte qui abrite le SoC FPGA ou Zynq. Ensuite, Zhou et al. effectuer des analyses sur le temps de traitement, la consommation d'énergie et des comparaisons d'énergie pour le cryptage et le décryptage La mise en œuvre consiste en la synthèse de crypto-moteurs pour les algorithmes suivants ; Advanced Encryption Standard (AES), Data Encryption Standard (DES), Rivest & Shamir & Adleman (RSA) et Secure Hash Algorithm

Fig. 6. Conception proposée du système de compteur d'énergie intelligent [18]

(SHA). Chacune des fonctions a également sa contrepartie logicielle à des fins d'évaluation. Les crypto-moteurs sont mappés sur la carte qui abrite le SoC FPGA ou Zynq. Ensuite, Zhou et al. effectuer des analyses sur le temps de traitement, la consommation d'énergie et des comparaisons d'énergie pour le cryptage et le décryptage La mise en œuvre consiste en la synthèse de crypto-moteurs pour les algorithmes suivants ; Advanced Encryption Standard (AES), Data Encryption Standard (DES), Rivest & Shamir & Adleman (RSA) et Secure Hash Algorithm (SHA). Chacune des fonctions a également sa contrepartie logicielle à des fins d'évaluation. Les crypto-moteurs sont mappés sur la carte qui abrite le SoC FPGA ou Zynq. Ensuite, Zhou et al. effectuer des analyses sur le temps de traitement, la consommation d'énergie et des comparaisons d'énergie pour le cryptage et le décryptage

L'utilisation de la conception proposée sur la figure 6 présente de nombreux avantages et l'un d'entre eux est la mise en œuvre du contrôleur de puissance et du compteur de puissance avec la structure FPGA en utilisant seulement quelques machines à états [18]. Bien que l'intégration de ces deux composants dans la structure permet des calculs et des opérations plus rapides, ils simplifient également la production en étant intégrés sur une seule puce.

Le principal avantage réside peut-être dans les aspects de sécurité du système. En utilisant un seul appareil pour les fonctions de mesure et de contrôle du système de compteur d'énergie intelligent, les protections physiques et cybernétiques deviennent plus simples à réaliser. En termes de sécurité physique, la protection devient plus facile car un seul appareil peut être concentré pour la

IV. PROPOSÉ CONCEPTUEL MODEL POUR FPGA COMME UN

EDGE réEVICE

L'une des formes de divertissement les plus consommées à notre

protection contre le clonage par ingénierie inverse et les attaques [18]. La maintenance serait plus compliquée si le système se

époque est le streaming vidéo. Des millions de personnes diffusent des

composait de plusieurs composants matériels au lieu d'un seul périphérique SoC. En ce qui concerne la cybersécurité, l'appareil ne

vidéos chaque jour à partir de services de streaming. Il existe un grand

nécessite qu'un seul jeu de clés et les algorithmes nécessaires pour que l'unité SoC unique protège les données stockées dans la

nombre de fournisseurs de services en ligne qui fournissent ces services de

mémoire du système et les données transmises et reçues. Par ailleurs, SmartFusion2 SoC FPGA dispose d'une technologie de stockage

streaming aux utilisateurs finaux. Cependant, une vidéo typique peut exister

spéciale pour la configuration des éléments de structure qui met tout attaquant dans une situation très difficile et incapable de rétro-

dans plusieurs formats vidéo. De plus, tous les appareils de streaming ne

concevoir un point de départ pour les algorithmes de sécurité utilisés. De plus, le dispositif SoC FPGA utilise des flux de bits cryptés et

prennent pas en charge tous les formats ; par exemple, certains

d'autres algorithmes de chargement de clés robustes basés sur la cryptographie qui garantissent l'immunité contre le reniflage de

smartphones ne prennent pas en charge la norme vidéo H.265 ou HEVC [20].

données et d'autres attaques de ce type. L'article va plus loin pour mettre en évidence la sécurité de l'appareil en mentionnant que les

Avec la possibilité d'avoir différents formats vidéo, une vidéo source d'entrée

FPGA SoC SmartFusion2 peuvent agir comme la racine de confiance matérielle (RoT). Un RoT matériel est considéré comme le

peut différer d'une vidéo de sortie, un scénario qui se produit généralement

composant le plus sécurisé d'un système qui détient des clés de sécurité et des algorithmes critiques pour la protection. Un autre

lorsque la vidéo brute est capturée et codée dans un format et que le

avantage important est la capacité de mises à jour autonomes à distance de l'appareil. Étant donné que la puce prend en charge la

fournisseur de services de streaming convertit la vidéo codée dans un autre

communication sans fil, les mises à jour à distance peuvent être envoyées en toute sécurité sur le réseau via le flux binaire crypté pour

format pour son consommateurs. Cette conversion est connue sous le nom

configurer la structure FPGA. Enfin, la structure FPGA peut être utilisée pour mettre en œuvre des circuits de détection d'effraction. Les

de transcodage. Le transcodage vidéo implique la modification dynamique

circuits de détection d'effraction possèdent la capacité de déterminer si la conception ou la puce fait l'objet d'attaques matérielles.

des paramètres de codage de telle sorte qu'il fournisse une hétérogénéité

Dans le cas d'une telle attaque, une action appelée mise à zéro se produit qui est essentiellement l'effacement des paramètres

des systèmes d'extrémité et que le format vidéo devienne portable parmi de

sensibles dans l'appareil pour empêcher l'accès non autorisé et la divulgation de données secrètes. En garantissant un niveau de

nombreux autres avantages. Heureusement, il existe de nombreuses

sécurité avancé contre une variété de menaces physiques et cybernétiques, et en se combinant avec les autres avantages, un FPGA

entreprises basées sur le cloud qui peuvent fournir des services de

SoC devient un choix idéal pour les applications intelligentes basées sur l'IoT. la structure FPGA peut être utilisée pour mettre en

transcodage en temps réel tels que Wowza [21].

œuvre des circuits de détection d'effraction. Les circuits de détection d'effraction possèdent la capacité de déterminer si la conception ou la puce fait l'objet d'attaques matérielles. Dans le cas d'une telle attaque, une action appelée mise à zéro se produit qui est essentiellement l'effacement des paramètres sensibles dans l'appareil pour empêcher l'accès non autorisé et la divulgation de données secrètes. En garantissant un niveau de sécurité avancé contre une variété de menaces physiques et cybernétiques, et en se combinant avec les autres avantages, un FPGA SoC devient un choix idéal pour les applications intelligentes basées sur l'IoT. la structure FPGA peut être utilisée pour mettre en œuvre des circuits de détection d'effraction. Les circuits de détection d'effraction possèdent la capacité de déterminer si la conception ou la puce fait l'objet d'attaques matérielles. Dans le cas d'une telle attaque, une action appelée mise à zéro se produit qui est essentiellement l'effacement des paramètres sensibles dans l'appareil pour empêcher l'accès non autorisé et la divulgation de données secrètes. En garantissant un niveau de sécurité avancé contre une variété de menaces physiques et cybernétiques, et en se combinant avec les autres avantages, un FPGA SoC devient un choix idéal pour les applications intelligentes basées sur l'IoT. une action appelée mise à zéro se produit et consiste essentiellement en l'effacement de paramètres sensibles dans l'appareil pour empêcher l'accès non autorisé et la divulgation de données secrètes. En garantissant un niveau de sécurité avancé contre une variété de menaces physiques et cybernétiques, et en se combinant avec les autres avantages, un FPGA SoC devient un choix idéal pour les applications intelligentes basées sur l'IoT. une action appelée mise à zéro se produit et consiste essentiellement en l'effacement de paramètres sensibles dans l'appareil pour empêcher l'accès non autorisé et la divulgation de données secrètes. En garantissant un niveau de sécurité avancé contre une variété de menaces physiques et cybernétiques, et en se combinant avec les autres avantages, un FPGA SoC devient un choix idéal pour les applications intelligentes basées sur l'IoT.

Par souci de simplicité, considérons un exemple où un Raspberry Pi, un appareil périphérique IoT, est en fonctionnement pour capturer une vidéo en direct dans un système de maison intelligente à des fins de sécurité. Les données brutes de sa capture sont encodées dans une vidéo au format H.264 avant de les transmettre au courtier en nuage de transcodage vidéo comme Wowza et aux fournisseurs de services. Cette vidéo est ensuite transcodée en plusieurs autres formats, dont l'un peut être MPEG-4. La vidéo transcodée est mise à disposition sur Internet pour être diffusée par le propriétaire de la maison. Supposons qu'un utilisateur final tente de diffuser cette vidéo à partir d'un smartphone doté du codec vidéo pour les médias MPEG-4. L'utilisateur doit simplement connecter le téléphone à Internet et diffuser à partir de l'adresse IP qui peut être hébergée directement par le courtier de transcodage ou un service de streaming vidéo. Figure.

Bien que cette recherche n'ait couvert qu'une fraction des applications proposées dans la littérature, il existe d'innombrables travaux de recherche effectués et en cours sur les FPGA SoC et l'étendue de leurs capacités. Le site Web officiel de Microsemi propose une large gamme d'applications et leurs conceptions suggérées pour aider à accélérer les recherches dans le domaine [19]. Les domaines d'application comprennent, sans s'y limiter, les réseaux d'accès qui doivent être évolutifs, gérables et nécessitent des systèmes de synchronisation, des solutions d'enregistrement vidéo de diffusion qui nécessitent un traitement en temps réel lourd, des réseaux de communication qui doivent fournir une meilleure couverture pour le cloud computing et le streaming multimédia pour un grand nombre de consommateurs, la protection des données et la sécurité des réseaux sensibles dans les grandes entreprises, la défense militaire qui impose un système capable de traitement du signal élevé et d'opérations de chronométrage précises, le diagnostic et la surveillance médicaux qui nécessitent la précision des données, des solutions de système de stockage et, enfin et surtout, des applications intelligentes qui nécessitent une puissance de traitement énorme, entre autres fonctionnalités. Toutes ces exigences peuvent être satisfaites par l'utilisation d'un FPGA en raison de son architecture matérielle, ce qui lui confère la puissance ultime de reprogrammabilité matérielle.

Fig. 7. Transcodage vidéo à l'aide d'un courtier cloud

Il faut noter que le transcodage vidéo est une opération de calcul complexe et lourde et, pour cette raison, il n'est généralement effectué sur aucun périphérique périphérique. Dans notre exemple, le transcodage est effectué par un courtier cloud tiers où il utilise des ressources cloud pour faire le travail. Bien que les plateformes cloud incluent des techniques d'optimisation pour accélérer les différents processus qu'elles exécutent, elles seront très certainement plus lentes par rapport à une implémentation matérielle des mêmes processus. De plus, la vidéo encodée du R-Pi nécessite une quantité considérable de bande passante réseau pour

envoyer la vidéo au courtier cloud. La sécurité des données encodées entre R-Pi et le courtier cloud peut être un autre problème puisque le courtier peut, au mieux, assurer la sécurité des données uniquement entre lui-même et le fournisseur de services de streaming. Afin d'atténuer voire d'éliminer ces problèmes, nous suggérons une implémentation matérielle du transcodage vidéo à l'aide d'un FPGA SoC. En d'autres termes, le R-Pi enverrait la vidéo codée à un appareil SoC FPGA au lieu d'un courtier en nuage et SmartFusion2 de Microsemi est une sélection idéale comme appareil SoC FPGA. L'utilisation de cette conception améliore non seulement le temps d'exécution du processus de transcodage vidéo, mais augmente également l'aspect de la sécurité des données, grâce aux flux binaires cryptés de SmartFusion2 qui peuvent être facilement mis en œuvre. Avoir le SoC FPGA connecté à un module de communication sans fil, il peut transmettre la vidéo transcodée à un fournisseur de services de streaming vidéo en douceur. De plus, étant donné que le SoC FPGA prend en charge les normes de communication filaire, il peut être attaché et connecté localement et en toute sécurité au R-Pi lui-même afin que les données codées puissent être transcodées en temps réel sans mettre en mémoire tampon une grande partie des données. La figure 8 montre la conception proposée de notre discussion utilisant un FPGA SoC au lieu d'un courtier en nuage pour le transcodage vidéo.

[3] R. Karam, T. Hoque, S. Ray, M. Tehranipoor et S. Bhunia, « Protection robuste du flux de bits dans les systèmes basés sur FPGA par le biais de l'obscurcissement à faible surcharge » Conférence internationale sur l'informatique ReConFigurable et les

FPGA (ReConFig), Cancun, 2016, p. 1-8.

[4] A. Putnam, J. Gray, M. Haselman, S. Hauck, S. Heil, A. Hormati, J. Kim, S. Lanka, J. Larus, E. Peterson, S. Pope, AM Caulfield, A. Smith, J. Thong, PY Xiao, D. Burger, ES Chung, D. Chiou, K. Constantir, J. Demme, H. Esmaeilzadeh, J. Fowers et GP Gopal, « A Reconfigurable Fabric for Accelerating Large-Scale Services de centre de données. Communication de l'ACM, vol. 59, non. 11, 2016, p. 114-122. [5] A. Rupani, P. Whig, G. Sujediya et P. Vyas, "Une technique robuste pour le traitement d'images basée sur l'interfaçage de Raspberry-Pi et FPGA utilisant l'IoT," Conférence internationale sur l'informatique, les communications et l'électronique (Comptelix), Jaipur, 2017, p. 350-353. [6] S. Dhote, P. Charjan, A. Phansekar, A. Hegde, S. Joshi et J. Joshi, "Utilisation de l'interface FPGA-SoC pour le traitement d'images à faible coût basé sur l'IoT," Conférence internationale sur les progrès de l'informatique, des communications et de l'informatique (ICACCI), Jaipur, 2016, p. 1963-1968.

[7] M. Rao, J. Coleman et T. Newe, "Un noyau ESP IPSec reconfigurable basé sur FPGA adapté aux applications IoT," 10e Conférence internationale sur la technologie de détection (STIC), Nankin, 2016, p. 1-5. [8] M. Rao, T. Newe, I. Grout, E. Lewis et A. Mathur, « Core IPSec reconfigurable basé sur FPGA adapté aux applications IoT » Conférence internationale IEEE sur l'informatique et les technologies de l'information ; Informatique et communications omniprésentes ; Informatique fiable, autonome et sécurisée ; Intelligence omniprésente et informatique, Liverpool, 2015, p. 2212-2216. [9] T. Gomes, S. Pinto, T. Gomes, A. Tavares et J. Cabral, "Vers un périphérique de périphérie basé sur FPGA pour l'Internet des objets," 20e conférence de l'IEEE sur les technologies émergentes et l'automatisation d'usine (ETFA), Luxembourg, 2015, p. 1-4. [10] "Intel rachète Altera pour 16,7 milliards de dollars alors que les fabricants de puces se consolident", CNET, 2018. [En ligne]. Disponible : https://www.cnet.com/news/ intel-to-buyaltera-for-16-7b. [Consulté : 01 mai 2018].

[11] Xilinx.com, 2019. [En ligne]. Disponible : https://www.xilinx.com/support/ documentation/boards_and_kits/vc707/ug885_VC707_Eval_Bd.pdf.

Fig. 8. Transcodage vidéo à l'aide d'un FPGA SoC

V. CINCLUSION Même si les FPGA sont insuffisants dans un certain nombre d'aspects par rapport aux microcontrôleurs, leur capacité de traitement parallèle leur donne toujours un avantage sur les microcontrôleurs, ce qui les rend plus rapides et plus efficaces dans l'exécution de processus lourds tels que le traitement d'images. En raison de leurs caractéristiques remarquables, ils sont fortement explorés dans les domaines d'application IoT tels que la sécurité IoT, l'interfaçage avec d'autres appareils IoT pour le traitement d'images, etc. De plus, la fusion de la structure FPGA avec des processeurs autonomes sur un seul appareil SoC a incité les experts du domaine à modifier les conceptions existantes avec les SoC en tant que tels. Outre leur petite taille et leur très faible poids, les FPGA SoC sont hautement sécurisés. Explorer les fonctionnalités du dispositif FPGA SmartFusion2 SoC de Microsemi,

RÉFÉRENCES [1] P. Alfke, "20 ans d'évolution du FPGA de la logique de la colle au composant principal du système," Symposium IEEE Hot Chips 19 (HCS), Stanford, Californie, 2007, p. 1-19.

[2] Maxfield, Clive. Le guide Design Warriors des FPGA : appareils, outils et flux. Newnes, 2011.

[12] "Raspberry Pi peut désormais se connecter à Particle IoT Cloud - Raspberry Pi Forums", Raspberrypi.org, 2018. [En ligne]. Disponible : https:// www.raspberrypi.org/forums/viewtopic.php?t=164739.

[13] "Particule", Docs.particle.io, 2018. [En ligne]. Disponible : https:// docs.particle.io/datasheets/photon-(wifi)/photon-datasheet/. [14] Raspberrypi.org, 2018. [En ligne]. Disponible : https:// static.raspberrypi.org/files/product-briefs/Raspberry-Pi-Model-BplusProduct-Brief.pdf. [15] "Qu'est-ce qu'un SoC FPGA", Altera, 2018. [En ligne]. Disponible : https:// www.altera.com/en_US/pdfs/literature/ab/ab1_soc_fpga.pdf. [16] H. Qi, O. Ayorinde et BH Calhoun, "Un FPGA ultra-basse consommation pour les applications IoT," IEEE SOI-3D-Subthreshold Microelectronics Technology Unified Conference (S3S), Burlingame, Californie, 2017, p. 1-3. [17] B. Zhou, M. Egele et A. Joshi, "Implémentation haute performance basse énergie d'algorithmes cryptographiques sur un SoC programmable pour

appareils IoT", Conférence IEEE High Performance Extreme Computing (HPEC), Waltham, MA, 2017, p. 1-6.

[18] "Conception d'un système de comptage et de contrôle d'énergie intelligent sécurisé", Microsemi, 2018. [En ligne]. Disponible : https://www.microsemai.com/documentportal/doc_view/132839-design-of-a-secure-smart-energy-metering-and-controlsystem.

[19] "Applications en vedette pour FPGA et SoC", Microsemi, 2018. [En ligne]. Disponible : https://www.microsemi.com/product-directory/1636fpgasoc#applications.

[20] T. Schiesser, "Guide d'encodage et de lecture HEVC/H.265",TechSpot, 2018. [En ligne]. Disponible : https://www.techspot.com/article/1131hevc-h256-enconding-playback/.

[21] "Transcoder les flux en direct",Wowza, [En ligne]. Disponible: https://www.wowza.com/docs/wowza-transcoder. [Consulté : 5 mai-2018].