Ejecución especulativa

En ciencias de la computación, la ejecución especulativa es una forma de optimización en la que un sistema informático realiza una tarea que podría no ser necesaria; la idea consiste en llevar a cabo un trabajo antes de saber si será realmente necesario con la intención de evitar el retraso que supondría realizarlo después de saber que sí es necesario. Si el trabajo en cuestión resulta ser innecesario, la mayoría de los cambios realizados por ese trabajo se revierten y los resultados se ignoran.

El objetivo de esta técnica es proporcionar una mayor concurrencia en caso de disponer de más recursos. Esta técnica se utiliza en una variedad de áreas informáticas, incluyendo la predicción de saltos en las CPU que soportan segmentación, la predicción de valores dirigida a explotar la localización de valores,[4]

Antecedentes

Los modernos microprocesadores que incluyen segmentación utilizan ejecución especulativa para reducir el coste de las instrucciones que dependen de la predicción de saltos, y lo hacen mediante técnicas que predicen la ruta de ejecución de un programa basándose en el historial de los saltos realizados anteriormente.[5]