Design Patterns for Code Reuse in HLS Packet Processing Pipelines

被引:6
|
作者
Eran, Haggai [1 ,2 ]
Zeno, Lior [1 ]
Istvan, Zsolt [3 ]
Silberstein, Mark [1 ]
机构
[1] Technion Israel Inst Technol, Haifa, Israel
[2] Mellanox Technol, Sunnyvale, CA USA
[3] IMDEA Software Inst, Madrid, Spain
基金
以色列科学基金会;
关键词
D O I
10.1109/FCCM.2019.00036
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
High-level synthesis (HLS) allows developers to be more productive in designing FPGA circuits thanks to familiar programming languages and high-level abstractions. In order to create high-performance circuits, HLS tools, such as Xilinx Vivado HLS, require following specific design patterns and techniques. Unfortunately, when applied to network packet processing tasks, these techniques limit code reuse and modularity, requiring developers to use deprecated programming conventions. We propose a methodology for developing high-speed networking applications using Vivado HLS for C++, focusing on reusability, code simplicity, and overall performance. Following this methodology, we implement a class library (ntl) with several building blocks that can be used in a wide spectrum of networking applications. We evaluate the methodology by implementing two applications: a UDP stateless firewall and a key-value store cache designed for FPGA-based SmartNICs, both processing packets at 40Gbps line-rate.
引用
收藏
页码:208 / 217
页数:10
相关论文
共 50 条
  • [1] PATTERNS IN OO DESIGN AND CODE COULD IMPROVE REUSE
    DUTTON, G
    SIMS, D
    [J]. IEEE SOFTWARE, 1994, 11 (03) : 101 - 101
  • [2] Reuse of Patterns' Source Code
    Jakubik, Jaroslav
    Navrat, Pavol
    [J]. KNOWLEDGE-BASED SOFTWARE ENGINEERING, 2006, 140 : 143 - 146
  • [3] Systematic characterization of programmable packet processing pipelines
    Attig, Michael
    Brebner, Gordon
    [J]. FCCM 2006: 14TH ANNUAL IEEE SYMPOSIUM ON FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES, PROCEEDINGS, 2006, : 195 - 204
  • [4] Synthesis of high-performance packet processing pipelines
    Soviani, Cristian
    Hadzic, Llija
    Edwards, Stephen A.
    [J]. 43RD DESIGN AUTOMATION CONFERENCE, PROCEEDINGS 2006, 2006, : 679 - +
  • [5] Packet switched networks with photonic code processing
    Rosas-Fernandez, J. B.
    Chen, L. R.
    LaRochelle, S.
    Leon-Garcia, A.
    Plant, D.
    Rusch, L. A.
    [J]. PHOTONICS NORTH 2006, PTS 1 AND 2, 2006, 6343
  • [6] The road to reuse: Design patterns
    Schmidt, D
    [J]. FOURTH INTERNATIONAL CONFERENCE ON SOFTWARE REUSE, PROCEEDINGS, 1996, : 229 - 230
  • [7] A Preliminary Performance Model for Optimizing Software Packet Processing Pipelines
    Bhardwaj, Ankit
    Shree, Atul
    Reddy, Bhargav, V
    Bansal, Sorav
    [J]. PROCEEDINGS OF THE 8TH ASIA-PACIFIC WORKSHOP ON SYSTEMS (APSYS '17), 2017,
  • [8] Using Code Skeleton Patterns for Open Source Reuse
    Nam, Seungwoo
    Kim, Doohwan
    Hong, Jang-Eui
    [J]. ADVANCES IN COMPUTER SCIENCE AND UBIQUITOUS COMPUTING, 2018, 474 : 1091 - 1096
  • [9] Isolation Mechanisms for High-Speed Packet-Processing Pipelines
    Wang, Tao
    Yang, Xiangrui
    Antichi, Gianni
    Sivaraman, Anirudh
    Panda, Aurojit
    [J]. PROCEEDINGS OF THE 19TH USENIX SYMPOSIUM ON NETWORKED SYSTEMS DESIGN AND IMPLEMENTATION (NSDI '22), 2022, : 1289 - 1305
  • [10] Design reuse through frameworks and patterns
    Fach, PW
    [J]. IEEE SOFTWARE, 2001, 18 (05) : 71 - +