Software-Controlled Multithreading Using Informing Memory Operations,

Abstract

Memory latency is becoming an increasingly important performance bottleneck, especially in multiprocessors. One technique for tolerating memory latency is multithreading, whereby we switch between threads upon expensive cache misses. In contrast with previous work on multithreading, we explore a new approach that is software-controlled rather than hardware-controlled. To implement software-controlled multithreading, we use informing memory operations to quickly trap upon cache misses to a miss handler which performs the actual thread switching in software. Our experimental results demonstrate that software-controlled multithreading can result in significant performance gains on a shared-memory multiprocessor, with the majority of applications speeding up by 10% or more, and one application speeding up by 16%. In addition, we find that by selectively applying a register partitioning optimization to reduce the thread-switching overhead, we can increase the overall speedups to as much as 25%. Given the much simpler hardware support required by our scheme, and the fact that its software overheads are expected to become less and less expensive over time relative to memory latencies, software-controlled multithreading is attractive alternative to traditional hardware-based schemes.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Oct 01, 1998
Accession Number
ADA355852

Entities

People

  • Sherwyn R. Ramkissoon
  • Todd C. Mowry

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Energy and Power Technologies
  • Human Systems

DTIC Thesaurus Topics

  • Compilers
  • Computer Access Control
  • Computer Science
  • Computers
  • Contrast
  • Data Sets
  • Hash Tables
  • Instructions
  • Multiprocessors
  • Multithreading
  • Numbers
  • Pipelines
  • Scheduling (Production)
  • Simulations
  • Statistics
  • Switches
  • Switching

Fields of Study

  • Computer science

Readers

  • Parallel and Distributed Computing.