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 条
  • [11] Design Patterns based Pre-processing of Source Code for Plagiarism Detection
    Asadullah, Allahbaksh
    Basavaraju, M.
    Stern, Ilan
    Bhat, Vasudev D.
    [J]. 2012 19TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE WORKSHOPS (APSECW), VOL. 2, 2012, : 128 - 135
  • [12] Adjoint Code Design Patterns
    Naumann, Uwe
    [J]. ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE, 2019, 45 (03):
  • [13] Mining Implicit Design Templates for Actionable Code Reuse
    Lin, Yun
    Meng, Guozhu
    Xue, Yinxing
    Xing, Zhenchang
    Sun, Jun
    Peng, Xin
    Liu, Yang
    Zhao, Wenyun
    Dong, Jinsong
    [J]. PROCEEDINGS OF THE 2017 32ND IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE'17), 2017, : 394 - 404
  • [14] Model reuse through hardware design patterns
    Rincón, F
    Moya, F
    Barba, J
    López, JC
    [J]. DESIGN, AUTOMATION AND TEST IN EUROPE CONFERENCE AND EXHIBITION, VOLS 1 AND 2, PROCEEDINGS, 2005, : 324 - +
  • [15] New design code for interference between trawl gear and pipelines
    Askheim, Dag O.
    Fyrileiv, Olav
    [J]. Proceedings of the 25th International Conference on Offshore Mechanics and Arctic Engineering, Vol 4, 2006, : 81 - 93
  • [16] Code reuse, distributed systems, and language-centric design
    Waldo, J
    [J]. FIFTH INTERNATIONAL CONFERENCE ON SOFTWARE REUSE - PROCEEDINGS, 1998, : 17 - 23
  • [17] Design strategy of code component reuse supporting environment CCRSE
    Ying, S.
    Wu, X.
    Chen, X.
    Wu, M.
    [J]. Wuhan Daxue Xuebao/Journal of Wuhan University, 2001, 47 (01): : 47 - 51
  • [18] Autogenerating Fast Packet-Processing Code Using Program Synthesis
    Gao, Xiangyu
    Kim, Taegyun
    Varma, Aatish Kishan
    Sivaraman, Anirudh
    Narayana, Srinivas
    [J]. PROCEEDINGS OF THE EIGHTEENTH ACM WORKSHOP ON HOT TOPICS IN NETWORKS (HOTNETS '19), 2019, : 150 - 160
  • [19] Fast Packet Processing with eBPF and XDP: Concepts, Code, Challenges, and Applications
    Vieira, Marcos A. M.
    Castanho, Matheus S.
    Pacifico, Racyus D. G.
    Santos, Elerson R. S.
    Camara Junior, Eduardo P. M.
    Vieira, Luiz F. M.
    [J]. ACM COMPUTING SURVEYS, 2020, 53 (01)
  • [20] Searching design patterns in source code
    Streitferdt, D
    Heller, C
    Philippow, I
    [J]. Proceedings of the 29th Annual International Computer Software and Applications Conference, Workshops and Fast Abstracts, 2005, : 33 - 34