Performance-Aware Device Driver Architecture for Signal Processing - Sydow, Stefan; Nabelsee, Mohannad; Busse, Anselm; Koch, Sebastian; Parzyjegla, Helge (Anais do International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD), 2016)
The growing computational power of modern CPUs allows increasingly complex signal processing applications to be successfully implemented and executed on general-purpose processors and operating systems. In this regard, the application's architecture, its design, and operating system integration directly affect the maximal achievable processing bandwidth. In this paper, we present alternative driver architectures for signal processing applications that differ in the distribution of processing stages between kernel space and user space. Using the processing of ADS-B air traffic radio signals for civil aviation as case study, we evaluate the performance of the design alternatives on a Linux system and quantify their strengths and weaknesses with respect to data overhead, usage of vector units, applicable compiler optimizations, and cache behavior. Based on our results, we determine the best design choice and derive guidelines for the development of efficient signal processing applications.