Generative codesign hardware-software approach to protocol parsing layers for network applications
Approche générative conjointe logicielle-matérielle au développement du support protocolaire d'applications réseau.
Résumé
Communications between network applications is achieved by using rulesets known as
protocols. Protocol messages are managed by the application layer known as the
protocol parsing layer or protocol handling layer. Protocol parsers are coded in software, in
hardware or based on a co-design approach. They represent the interface between the
application logic and the outside world. Thus, they are critical components of network
applications. Global performances of network applications are directly linked to the
performances of their protocol parser layers.
Developping protocol parsers consists of translating protocol specifications, written in a
high level language such as ABNF towards low level software or hardware code. As the use of
embedded systems is growing, hardware ressources become more and more available to
applications on systems on chip (SoC). Nonetheless, developping a network application that uses
hardware ressources is challenging, requiring not only expertise
in hardware design, but also a knowledge of the protocols involved and an understanding of
low-level network programming.
This thesis proposes a generative hardware-software co-design based approach to the
developpement of network protocol message parsers, to improve their performances without
increasing the expertise the developper may need. Our approach is based on a dedicated
language, called Zebra, that generates both hardware and software elements that compose
protocol parsers. The necessary expertise is deported in the use of the Zebra language and the
generated hardware components permit to improve global performances.
Les communications entre les applications réseaux sont régies par un ensemble de règles
regroupées sous forme de protocoles. Les messages protocolaires sont gérés par une
couche de l'application réseau connue comme étant la couche de support protocolaire. Cette
couche peut être de nature logicielle, matérielle ou conjointe. Cette couche se trouve à la
frontière entre le coeur de l'application et le monde extérieur. A ce
titre, elle représente un composant névralgique de l'application. Les performances globales de
l'application sont ainsi directement liées aux performances de la couche de support
protocolaire associée.
Le processus de développement de ces couches consiste à traduire une spécification du
protocole, écrite dans un langage de haut niveau tel que ABNF dans un langage bas
niveau, logiciel ou matériel. Avec l'avènement des systèmes embarqués, de plus en plus de
systèmes sur puce proposent l'utilisation de ressources matérielles afin d'accroître les
performances des applicatifs. Néanmoins, peu de processus de développement de couches de
support protocolaire tirent parti de ces ressources, en raison notamment de l'expertise
nécessaire dans ce domaine.
Cette thèse propose une approche générative conjointe logicielle-matérielle au développement
du support protocolaire d'applications réseaux, pour améliorer leur performance tout en
restant ergonomique pour le développeur de l'application. Notre approche est basée sur
l'exploitation d'un langage dédié, appellé Zebra pour générer les différents composants
logiciels et matériels formant la couche de support. L'expertise nécessaire est déportée dans
l'utilisation du langage Zebra et les composants matériels générés permettent d'accroître les
performances de l'application.
Loading...