Parallelism in a CRC Coprocessor
Andreas Döring
ARCS 2004
Multithreading is an efficient way to improve efficiency of processor cores in embedded products for networking infrastructures. To make such improvements also accessible to processor cores without hardware support for multithreading, we present a concept for efficient software multithreading through compiler post-pass optimization of the application code. Our approach aims at reducing the overhead for cooperative multithreading context switches at compile time by using standard compiler techniques such as context-insensitive analysis. Additionally, register usage is rearranged to reduce the amount of context-switch code by exploiting multipleload/store instructions. Performance model analysis encourages the use of software multithreading to improve processor utilization by showing the benefit of our approach. We present results obtained by an implementation for the PowerPC ISA (Instruction Set Architecture) using the code of a real network application (iSCSI). We were able to reduce the expected run-time of a context switch to as little as 38% of the original.
Andreas Döring
ARCS 2004
Carsten Albrecht, Andreas C. Döring, et al.
PDP 2006
Thomas Schmied, Diego Didona, et al.
EuroMLSys 2021
David E. Taylor, Andreas Herkersdorf, et al.
IEEE/ACM Transactions on Networking