Using speculation to simplify multiprocessor design

Journal Article

Modern multiprocessors are complex systems that often require years to design and verify, A significant factor is that engineers must allocate a disproportionate share of their effort to ensure that rare corner-case events behave correctly. This paper proposes using "speculation for simplicity" to enable designers to focus on common-case scenarios. Our approach is to speculate that rare events will not occur and rely on an efficient recovery mechanism to undo the effects of mis-speculations. We illustrate the potential of speculation to simplify multiprocessor design with three examples. First, we simplify the design of a directory cache coherence protocol by speculatively relying on point-to-point ordering of messages in an adoptively routed interconnection network. Second, we simplify a snooping cache coherence protocol by treating a rare coherence state transition as a mis-speculation. Third, we simplify interconnection network design by removing the virtual channels and then recovering from deadlocks when they occur. Experiments with full-system simulation and commercial workloads show that speculation is a viable approach for simplifying system design. Systems can incur as many as ten recoveries per second due to mis-speculations without significantly degrading performance, and our speculatively simplified designs incur far fewer recoveries.

Duke Authors

Cited Authors

  • Sorin, DJ; Martin, MMK; Hill, MD; Wood, DA

Published Date

  • December 1, 2004

Published In

  • Proceedings International Parallel and Distributed Processing Symposium, Ipdps 2004 (Abstracts and Cd Rom)

Volume / Issue

  • 18 /

Start / End Page

  • 1057 - 1066

Citation Source

  • Scopus