Software simultaneous multi-threading, a technique to exploit task-level parallelism to improve instruction- and data-level parallelism

  • Authors:
  • Daniele Paolo Scarpazza;Praveen Raghavan;David Novo;Francky Catthoor;Diederik Verkest

  • Affiliations:
  • IMEC vzw, Heverlee, Belgium;IMEC vzw, Heverlee, Belgium;IMEC vzw, Heverlee, Belgium;IMEC vzw, Heverlee, Belgium;IMEC vzw, Heverlee, Belgium

  • Venue:
  • PATMOS'06 Proceedings of the 16th international conference on Integrated Circuit and System Design: power and Timing Modeling, Optimization and Simulation
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

The search for energy efficiency in the design of embedded systems is leading toward CPUs with higher instruction-level and data-level parallelism. Unfortunately, individual applications do not have sufficient parallelism to keep all these CPU resources busy. Since embedded systems often consist of multiple tasks, task-level parallelism can be used for the purpose. Simultaneous multi-threading (SMT) proved a valuable technique to do so in high-performance systems, but it cannot be afforded in system with tight energy budgets. Moreover, it does not exploit data-level parallel hardware, and does not exploit the available information on threads. We propose software-SMT (SW-SMT), a technique to exploit task-level parallelism to improve the utilization of both instruction-level and data-level parallel hardware, thereby improving performance. The technique performs simultaneous compilation of multiple threads at design-time, and it includes a run-time selection of the most efficient mixes. We have applied the technique to two major blocks of a SDR (software-defined radio) application, achieving energy gains up to 46% on different ILP and DLP architectures. We show that the potentials of SW-SMT increase with SIMD datapath size and VLIW issue width.