9 research outputs found

    Mémoires associatives algorithmiques pou l'opération de recherche du plus long préfixe sur FPGA

    Get PDF
    RÉSUMÉ Les réseaux prédiffusés programmables — en anglais Field Programmable Gate Arrays (FPGAs)— sont omniprésents dans les centres de données, pour accélérer des tâches d’indexations et d’apprentissage machine, mais aussi plus récemment, pour accélérer des opérations réseaux. Dans cette thèse, nous nous intéressons à l’opération de recherche du plus long préfixe en anglais Longest Prefix Match (LPM) — sur FPGA. Cette opération est utilisée soit pour router des paquets, soit comme un bloc de base dans un plan de données programmable. Bien que l’opération LPM soit primordiale dans un réseau, celle-ci souffre d’inefficacité sur FPGA. Dans cette thèse, nous démontrons que la performance de l’opération LPM sur FPGA peut être substantiellement améliorée en utilisant une approche algorithmique, où l’opération LPM est implémentée à l’aide d’une structure de données. Par ailleurs, les résultats présentés permettent de réfléchir à une question plus large : est-ce que l’architecture des FPGA devrait être spécialisée pour les applications réseaux ? Premièrement, pour l’application de routage IPv6 dans le réseau Internet, nous présentons SHIP. Cette solution exploite les caractéristiques des préfixes pour construire une structure de données compacte, pouvant être implémentée de manière efficace sur FPGA. SHIP utilise l’approche ńdiviser pour régnerż pour séparer les préfixes en groupes de faible cardinalité et ayant des caractéristiques similaires. Les préfixes contenus dans chaque groupe sont en-suite encodés dans une structure de données hybride, où l’encodage des préfixes est adapté suivant leurs caractéristiques. Sur FPGA, SHIP augmente l’efficacité de l’opération LPM comparativement à l’état de l’art, tout en supportant un débit supérieur à 100 Gb/s. Deuxièment, nous présentons comment implémenter efficacement l’opération LPM pour un plan de données programmable sur FPGA. Dans ce cas, contrairement au routage de pa-quets, aucune connaissance à priori des préfixes ne peut être utilisée. Par conséquent, nous présentons un cadre de travail comprenant une structure de données efficace, indépendam-ment des caractéristiques des préfixes contenus, et des méthodes permettant d’implémenter efficacement la structure de données sur FPGA. Un arbre B, étendu pour l’opération LPM, est utilisé en raison de sa faible complexité algorithmique. Nous présentons une méthode pour allouer à la compilation le minimum de ressources requis par l’abre B pour encoder un ensemble de préfixes, indépendamment de leurs caractéristiques. Plusieurs méthodes sont ensuite présentées pour augmenter l’efficacité mémoire après implémentation de la structure de données sur FPGA. Évaluée sur plusieurs scénarios, cette solution est capable de traiter plus de 100 Gb/s, tout en améliorant la performance par rapport à l’état de l’art.----------ABSTRACT FPGAs are becoming ubiquitous in data centers. First introduced to accelerate indexing services and machine learning tasks, FPGAs are now also used to accelerate networking operations, including the LPM operation. This operation is used for packet routing and as a building block in programmable data planes. However, for the two uses cases considered, the LPM operation is inefficiently implemented in FPGAs. In this thesis, we demonstrate that the performance of LPM operation can be significantly improved using an algorithmic approach, where the LPM operation is implemented using a data structure. In addition, using the results presented in this thesis, we can answer a broader question: Should the FPGA architecture be specialized for networking? First, we present the SHIP data structure that is tailored to routing IPv6 packets in the Internet network. SHIP exploits the prefix characteristics to build a compact data structure that can be efficiently mapped to FPGAs. First, SHIP uses a "divide and conquer" approach to bin prefixes in groups with a small cardinality and sharing similar characteristics. Second, a hybrid-trie-tree data structure is used to encode the prefixes held in each group. The hybrid data structure adapts the prefix encoding method to their characteristics. Then, we demonstrated that SHIP can be efficiently implemented in FPGAs. Implemented on FPGAs, the proposed solution improves the memory efficiency over the state of the art solutions, while supporting a packet throughput greater than 100 Gbps.While the prefixes and their characteristics are known when routing packets in the Internet network, this is not true for programmable data planes. Hence, the second solution, designed for programmable data planes, does not exploit any prior knowledge of the prefix stored. We present a framework comprising an efficient data structure to encode the prefixes and methods to map the data structure efficiently to FPGAs. First, the framework leverages a B-tree, extended to support the LPM operation, for its low algorithmic complexity. Second, we present a method to allocate at compile time the minimum amount of resources that can be used by the B-tree. Third, our framework selects the B-tree parameters to increase the post-implementation memory efficiency and generates the corresponding hardware architecture. Implemented on FPGAs, this solution supports packet throughput greater than 100 Gbps, while improving the performance over the state of the art

    AcceCuts: un algorithme de classification de paquets conçu pour traiter les nouveaux paradigmes des réseaux définis par logiciel

    Get PDF
    RÉSUMÉ La classification de paquets est une étape cruciale et préliminaire à n’importe quel traitement au sein des routeurs et commutateur réseaux (« switch »). De nombreuses contributions sont présentes dans la littérature, que cela soit au niveau purement algorithmique, ou ayant mené à une implémentation. Néanmoins, le contexte étudié ne correspond pas au virage du Software Defined Networking (SDN, ou réseau défini par logiciel) pris dans le domaine de la réseautique. Or, la flexibilité introduite par SDN modifie profondément le paysage de la classification de paquets. Ainsi, les algorithmes doivent à présent supporter un très grand nombre de règles complexes. Dans le cadre de ce travail, on s'intéresse aux algorithmes de classification de paquets dans le contexte de SDN. Le but est d’accélérer l’étape de classification de paquets et de proposer un algorithme de classification, capable d’offrir des performances de premier plan dans le contexte de SDN, mais aussi, offrant des performances acceptables dans un contexte classique. A cet égard, une évaluation d’EffiCuts, un des algorithmes offrant la meilleure performance, est effectuée dans un contexte de SDN. Trois optimisations sont proposées; le Adaptive grouping factor qui permet d’adapter l’algorithme aux caractéristiques de la table de classification utilisée, le Leaf size modulation, visant à déterminer la taille optimale d’une feuille dans le contexte de SDN et enfin, une modification de l’heuristique utilisée pour déterminer le nombre de découpe à effectuer au niveau de chacun des nœuds, permettant de réaliser un nombre de découpes réduit. Ces trois optimisations permettent une augmentation des performances substantielle par rapport à EffiCuts. Néanmoins, de nombreuses données non pertinentes demeurent lues. Ce problème, inhérent à certains algorithmes utilisant des arbres de décision (plus précisément HiCuts et ses descendants), tend à ajouter un nombre significatif d’accès mémoire superflus. Ainsi, un nouvel algorithme, est proposé. Cet algorithme nommé AcceCuts, s'attaque à l’ensemble des problèmes identifiés. Ce dernier reprend les optimisations précédentes, et ajoute une étape de prétraitement au niveau de la feuille, permettant d’éliminer les règles non pertinentes. Une modification majeure de la structure des feuilles, ainsi que de la technique du parcours de l’arbre de décision est donc présentée.----------ABSTRACT Packet Classification remains a hot research topic, as it is a fundamental function in telecommunication networks, which are now facing new challenges. Many contributions have been made in literature, focusing either on designing algorithms, or implementing them on hardware. Nevertheless, the work done is tightly coupled to an outdated context, as Software Defined Networking (SDN) is now the main topic in networking. SDN introduces a high degree of flexibility, either in processing or parsing, which highly impact on the packet classification performance: algorithms have now to handle a very large number of complex rules. We focus this work on packet classification algorithms in SDN context. We aim to accelerate packet classification, and create a new algorithm designed to offer state of the art performance in SDN context, while performing in a classical context. For this purpose, an evaluation of EffiCuts, a state of the art algorithm - in a classical context -, is performed in SDN context. Based on this analysis, three optimizations are proposed: “Adaptive Grouping Factor”, in order to adapt the algorithm behavior to dataset characteristic, “Leaf size modulation”, allowing to choose the most relevant leaf size, and finally adopting a new heuristic to compute the number of cuts at each node, in order to determine an optimal number of cuts. Those three optimizations improve drastically the performance over EffiCuts. Nevertheless, some issues are still not addressed, as many irrelevant data are still read, incurring multiples useless memory accesses. This inherent problem to decision tree based algorithms (HiCuts related algorithms) tends to add unnecessary memory accesses for each tree considered. Therefore, in SDN context, this becomes more critical as many clock cycles are wasted

    Bridging the Gap: FPGAs as Programmable Switches

    Full text link
    The emergence of P4, a domain specific language, coupled to PISA, a domain specific architecture, is revolutionizing the networking field. P4 allows to describe how packets are processed by a programmable data plane, spanning ASICs and CPUs, implementing PISA. Because the processing flexibility can be limited on ASICs, while the CPUs performance for networking tasks lag behind, recent works have proposed to implement PISA on FPGAs. However, little effort has been dedicated to analyze whether FPGAs are good candidates to implement PISA. In this work, we take a step back and evaluate the micro-architecture efficiency of various PISA blocks. We demonstrate, supported by a theoretical and experimental analysis, that the performance of a few PISA blocks is severely limited by the current FPGA architectures. Specifically, we show that match tables and programmable packet schedulers represent the main performance bottlenecks for FPGA-based programmable switches. Thus, we explore two avenues to alleviate these shortcomings. First, we identify network applications well tailored to current FPGAs. Second, to support a wider range of networking applications, we propose modifications to the FPGA architectures which can also be of interest out of the networking field.Comment: To be published in : IEEE International Conference on High Performance Switching and Routing 202
    corecore