Programmable network packet filter with RISC-V instruction-set architecture

No Thumbnail Available

URL

Journal Title

Journal ISSN

Volume Title

Sähkötekniikan korkeakoulu | Master's thesis

Date

2022-06-13

Department

Major/Subject

Micro- and Nanoelectronic Circuit Design

Mcode

ELEC3036

Degree programme

Master’s Programme in Electronics and Nanotechnology (TS2013)

Language

en

Pages

56+2

Series

Abstract

This thesis tries to answer the question: How to improve network packet filtering performance in a generic, scalable way, when compared to a baseline set by software processing alone? The proposed solution to the problem is the topic of this thesis: implementing a programmable network packet filter in hardware with a field-programmable gate array (FPGA). This approach is motivated by its simplicity and the rather direct match with genericity and scalability. Genericity is achieved with programmability by using a soft RISC-V core as the main processing element, soft here meaning that the core is synthesized from a hardware description along with the rest of the design. Scalability is achieved by using a parametrized number of these cores in parallel. Lastly, simplicity helps in highlighting implementation issues without obscuring the causes in unnecessary complexity. The motivation for the thesis topic comes from the ever-growing needs of communication technology. When compared to the baseline set by software processing alone, higher efficiency, higher throughput, and lower latency, are among the most important needs. Hardware offloading can provide an answer to these needs, possibly even simultaneously. Additionally, software-defined networking (SDN) has started to gain traction within the networking community and serves as another motivator for the thesis topic. While this thesis is not explicitly related to SDN, the basic idea of introducing programmability to network packet processing devices is the same.

Tämä työ pyrkii vastaamaan kysymykseen: Kuinka parantaa verkkopakettisuodatuksen suorituskykyä geneerisellä ja skaalautuvalla tavalla suhteessa ohjelmistoprosessoinnin asettamaan pohjatasoon? Työn aiheena on tähän ongelmaan ehdotettu ratkaisu: toteuttaa ohjelmoitava verkkopakettisuodatin laitetasolla käyttäen ohjelmoitavaa porttimatriisia (FPGA). Tätä lähestymistapaa motivoi sen yksinkertaisuus ja suorahko yhteensopivuus geneerisyyden ja skaalautuvuuden kanssa. Geneerisyys saavutetaan ohjelmoitavuudella käyttäen pehmeää RISC-V ydintä pääprosessointielementtinä, pehmeä tässä tarkoittaen, että ydin syntetisoidaan laitekuvauksesta yhdessä muun toteutuksen kanssa. Skaalautuvuus saavutetaan käyttämällä parametrisoitua määrää näitä ytimiä rinnakkain. Lopuksi yksinkertaisuus auttaa korostamaan toteutuksen mahdollisia ongelmakohtia peittämättä niitä liiallisella monimutkaisuudella. Motivaatio työn aiheeseen kumpuaa tietoliikenneteknologian alati kasvavista tarpeista. Ohjelmistoprosessoinnin asettamaan pohjatasoon verrattuna, korkeampi hyötysuhde, suurempi välityskyky, ja matalampi latenssi ovat tärkeimpien tarpeiden joukossa. Laitteistokiihdytys voi vastata näihin tarpeisiin, mahdollisesti jopa samanaikaisesti. Lisäksi ohjelmallisesti määritetyt verkot (SDN) ovat alkaneet saada jalansijaa tietoverkkoyhteisössä ja näin toimii toisena motivaation lähteenä työn aiheelle. Vaikka tällä työllä ei ole suoraa yhteyttä SDN:ään, perusidea ohjelmoitavuuden tuomisesta verkkopakettien prosessointilaitteisiin on sama.

Description

Supervisor

Ryynänen, Jussi

Thesis advisor

Kosunen, Marko
Lehtinen, Mika

Keywords

network, packet, filter, RISC-V, FPGA, SpinalHDL

Other note

Citation