Un procesador slipstream es una arquitectura diseñada para reducir la duración de un programa en ejecución eliminando las instrucciones no esenciales. Es una forma de computación especulativa .
Las instrucciones no esenciales incluyen cosas como resultados que no se escriben en la memoria o operaciones de comparación que siempre devolverán verdadero. Además, como estadísticamente la mayoría de las instrucciones de salto se ejecutarán, es lógico suponer que esto siempre será así .
Debido a la especulación que implica, los procesadores slipstream se describen generalmente como si tuvieran dos flujos de ejecución paralelos. Uno es un flujo A optimizado y más rápido (flujo avanzado) que ejecuta el código reducido, y el otro es un flujo R más lento (flujo redundante) que se ejecuta detrás del flujo A y ejecuta el código completo. El flujo R se ejecuta más rápido que si fuera un solo flujo debido a que el flujo A precarga los datos , lo que oculta eficazmente la latencia de la memoria, y a la ayuda del flujo A con la predicción de bifurcaciones . Ambos flujos se completan más rápido que si fueran un solo flujo. En 2005, estudios teóricos demostraron que esta configuración puede generar una aceleración de alrededor del 20 %.
El principal problema de este enfoque es la precisión: a medida que el flujo A se vuelve más preciso y menos especulativo, el sistema en general se ralentiza . Además, se necesita una distancia suficientemente grande entre el flujo A y el flujo R para que los fallos de caché generados por el flujo A no ralenticen el flujo R.
Referencias
- Z. Purser, K. Sundaramoorthy y E. Rotenberg, " Un estudio de los procesadores Slipstream ", Actas del 33.º Simposio Internacional Anual sobre Microarquitectura, Monterey, California, diciembre de 2000.
- Procesamiento de instrucciones