Overview of JetStream: A High-Performance PCIe Streaming Library for FPGA Communication

Slide Note
Embed
Share

JetStream is an open-source PCIe streaming library developed for efficient FPGA-to-Host and FPGA-to-FPGA communication. It implements key OSI layers, handles physical and data link layers, and provides mechanisms for chunk transfers and managing outstanding requests. JetStream offers superior performance compared to other commercial solutions, supporting multi-board configurations with high data transfer rates. The system architecture, DMA modes, and related works showcasing JetStream's capabilities are highlighted in the images provided.


Uploaded on Nov 14, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Malte Vesper, Dirk Koch, Vipin Kizheppatt, and Suhaib A. Fahmy JetStream: An Open-Source high-performance PCI Express 3 streaming library for FPGA-to-Host and FPGA-to-FPGA communication https://maltevesper.github.io/JetStream

  2. PCIe Hierarchy 2

  3. PCIe Hierarchy 3

  4. PCIe Hierarchy 4

  5. PCIe Hierarchy 5

  6. OSI Layers PCIe implements 3 of 7 OSI layers: Transaction layer Data link layer Physical layer Xilinx/Altera hard IP handles physical and data link layer In the following Xilinx PCIe Gen 3 IP 6

  7. Whats left to the user? Chunk transfers (alignment/max packet sizes) Manage number of outstanding requests Provide mechanisms for channels Create headers Host driver 7

  8. Related work Commercial solutions Expensive Large and monolithic Open source No PCIe 3x8 (except ffLink) Often not multi FPGA details on comparison slide 8

  9. Related Work PCIeGen ZeroCopy DMA Asynchronous transfers Multiboard support Board-to- Board Read MB/s Write MB/s EPEE 2 3280 3198 DyRACT 2 1474 1452 RIFFA 2.2 3x4 3040 3040 ffLink 3x8 6330 7060 Xillybus 3x4 3500 3500 Northwest Logic 3x8 ? ? ? ? 5573 5981 JetStream 3x8 6446 7086 9

  10. JetStream System Achitecture 10

  11. Straddling Header Payload Header Payload Payload Header 2 Payload Payload Header Payload Header 2 Payload 11

  12. DMA Modes 12

  13. DMA Modes 13

  14. DMA Modes 14

  15. Resourceusage 15

  16. Transfersize vs Bandwidth 16

  17. Speed 17

  18. Stream benchmark 40 35 30 25 [GB/s] 20 15 10 5 0 Copy Add Copy Direct Add Direct 0 1 2 3 4 18

  19. API-Example 19

  20. Features 7 GB/s throughput Direct Board-to-Board transfers Transfer queues User interrupts/registerfiles Different DMA modes 20

  21. Getting JetStream https://maltevesper.github.io/JetStream/ 21

  22. Future Work BlockIP Parameters to disable alignment, chunking, . PCIe 4? straddling on all interfaces Altera port? 22

  23. Thank you for your attention QUESTIONS https://maltevesper.github.io/JetStream

Related


More Related Content