Slipstream (computer science)
From Wikipedia, the free encyclopedia
A slipstream processor is an architecture designed to reduce the length of a running program by removing the non-essential instructions. It is a form of speculative computing.
Non-essential instructions include such thing as results that are not written to memory, or compare operations that will always return true. Also as statistically most branch instructions will be taken it makes sense to assume this will always be the case. This is a form of lazy evaluation.
Because of the speculation involved slipstream processors are generally described as having two parallel executing streams. One is an optimized faster A-stream executing the reduced code, the other is the slower R-stream which runs behind the A-stream and executes the full code. The R-stream runs faster than if it were a single stream due to data being prefetched by the A-stream effectively hiding all memory latency. The two streams both complete faster than what a single stream would. As at 2005 theoretical studies have shown that this configuration can lead to a speedup of around 20%.
The main problem with this approach is accuracy, as the A-stream becomes more accurate and less speculative the overall system runs slower. Also a large enough distance is needed between the A-stream and the R-stream so that cache misses generated by the A-stream do not slow down the R-stream.
[edit] References
- Z. Purser, K. Sundaramoorthy and E. Rotenberg, "A Study of Slipstream Processors", Proc. 33rd Ann. Int'l Symp. Microarchitecture, Monterey, CA, Dec. 2000.