CRU PCIe usage 1 DMA engine firmware sofware

  • Slides: 16
Download presentation
CRU PCIe usage 1

CRU PCIe usage 1

DMA engine firmware sofware start_add #0 DMA engine super page #0 start_add #1 super

DMA engine firmware sofware start_add #0 DMA engine super page #0 start_add #1 super page #1 start_add #2 super page #2 start_add #31 super page #31 2

DMA engine firmware sofware start_add #0 DMA engine super page #0 start_add #1 start_add

DMA engine firmware sofware start_add #0 DMA engine super page #0 start_add #1 start_add #2 super page #2 start_add #31 START ADD | SIZE super page #1 super page #31 3

DMA engine firmware sofware start_add #0 DMA engine super page #0 start_add #1 start_add

DMA engine firmware sofware start_add #0 DMA engine super page #0 start_add #1 start_add #2 super page #2 start_add #31 START ADD | SIZE super page #1 super page #31 4

DMA engine firmware sofware start_add #0 DMA engine super page #0 start_add #1 start_add

DMA engine firmware sofware start_add #0 DMA engine super page #0 start_add #1 start_add #2 super page #2 start_add #31 START ADD | SIZE super page #1 super page #31 5

DMA engine firmware sofware start_add #0 DMA engine super page #0 start_add #1 start_add

DMA engine firmware sofware start_add #0 DMA engine super page #0 start_add #1 start_add #2 super page #2 start_add #31 START ADD | SIZE super page #1 super page #31 6

SUPER PAGE feature • multiple of 32 KB (firmware requirements) 8 KB page •

SUPER PAGE feature • multiple of 32 KB (firmware requirements) 8 KB page • super page is contiguous in memory (all the pages have consecutive addresses) • every page in the superpage is 8 KB (firmware requirements) 7

PERFORMANCE super page size (KB) DMA throughput (GB/s) 32 2. 1 64 4. 3

PERFORMANCE super page size (KB) DMA throughput (GB/s) 32 2. 1 64 4. 3 96 6. 4 128 6. 9 256 6. 9 8

DATA FLOW USER DATA 32 KB ON CHIP MEMORY DMA engine DATA TO HOST

DATA FLOW USER DATA 32 KB ON CHIP MEMORY DMA engine DATA TO HOST MEMORY 9

PCIe usage DATA 8 KB DMA acknowledge (data has been moved in the host

PCIe usage DATA 8 KB DMA acknowledge (data has been moved in the host memory) 0 10

PCIe usage DATA DMA acknowledge (data has been moved in the host memory) 8

PCIe usage DATA DMA acknowledge (data has been moved in the host memory) 8 KB 0 11

PCIe usage DATA DMA acknowledge (data has been moved in the host memory) 8

PCIe usage DATA DMA acknowledge (data has been moved in the host memory) 8 KB 0 In this situation the firmware has to wait 1 acknowledgment from the DMA engine before overwriting the data in the memory 12

PCIe usage DATA DMA acknowledge (data has been moved in the host memory) 8

PCIe usage DATA DMA acknowledge (data has been moved in the host memory) 8 KB 1 8 KB 0 13

PCIe usage Understanding the counters • there are 2 components in the DMA that

PCIe usage Understanding the counters • there are 2 components in the DMA that control the data throughput: • DATA FLOW CONTROLLER : write the DATA in the ONCHIP MEMORY • DESCRIPTOR CONTROLLER : triggers the DMA engine to move the DATA into the host memory • we have 2 different counters in the firmware: 1) counts how many clock cycle we wait for at least 1 acknowledge from the DMA (how fast we can write) 2) counts the number of clock cycle between 2 DMA descriptors (how fast we can read) 14

Time between 2 DMA DESCRIPTORs The readout of the value was taken every 1

Time between 2 DMA DESCRIPTORs The readout of the value was taken every 1 s over a long run (~1 h) 1 CC = 4 ns MEAN VALUE 292 cc = 1. 168 us MAX VALUE 2639 cc = ~10 us 15

Time spent waiting for DMA ACK signal The readout of the value was taken

Time spent waiting for DMA ACK signal The readout of the value was taken every 1 s over a long run (~1 h) 1 CC = 4 ns MEAN VALUE 37 cc = 148 ns MAX VALUE 2342 cc = ~9 us 16