Eliminating Cell Broadband Engine (TM) DMA Buffer Overflows
This paper presents effective and efficient implementation techniques for DMA buffer overflow elimination on the Cell Broadband Engine (TM) (Cell/B.E.) processor. In the Cell/B.E, programming model, application developers manually issue DMA commands to transfer data from the system memory to the local memories of the Cell/B.E. cores. Although this allows us to eliminate cache misses or cache invalidation overhead, it requires careful management of the buffer arrays for DMA in the application programs to prevent DMA buffer overflows. To guard against DMA buffer overflows, we introduced safe DMA handling functions for the applications to use. To improve and minimize the performance overhead of buffer overflow prevention, we used three different optimization techniques that take advantage of SIMD operations: branch-hint-based optimizations, jump-table-based optimizations and self-modifying-based optimizations. Our optimized implementation prevents all DMA buffer overflows with minimal performance overhead, only 2.93% average slowdown in comparison to code without the buffer overflow protection.
cell broadband engine (tm) dma buffer overflow dma buffer overrun