Cooperative Software Multithreading to Enhance Utilization of Embedded Processors for Network Applications

Carsten Albrecht, Rainer Hagenau, Andreas Döring

Abstract

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.

Original languageEnglish
Title of host publication12th Euromicro Conference on Parallel, Distributed and Network-Based Processing, 2004. Proceedings.
Number of pages8
PublisherIEEE
Publication date12.07.2004
Pages300-307
ISBN (Print) 0-7695-2083-9
DOIs
Publication statusPublished - 12.07.2004
EventProceedings - 12th Euromicro Conference on Parallel, Distributed and Network-based Proceedings
- A Coruna, Spain
Duration: 11.02.200413.02.2004
Conference number: 63233

Fingerprint

Dive into the research topics of 'Cooperative Software Multithreading to Enhance Utilization of Embedded Processors for Network Applications'. Together they form a unique fingerprint.

Cite this