Esecuzione speculativa

L'esecuzione speculativa (in inglese: speculative execution) è una tecnica di ottimizzazione che consiste nel fare eseguire al computer operazioni che potrebbero essere necessarie solo in un secondo tempo. Elaborando i dati prima di sapere se è davvero necessario farlo può ridurre i ritardi che si avrebbero facendo il lavoro solo dopo aver saputo se è davvero necessario o no. Se ad un certo momento del flusso di esecuzione il lavoro svolto anticipatamente si dimostra inutile, allora i risultati ottenuti verranno semplicemente ignorati.

L'obiettivo dell'esecuzione speculativa è quello di creare maggiore concorrenza quando sono disponibili risorse supplementari, per esempio più CPU che funzionano in parallelo. Nel mondo reale questo approccio è attuato in varie situazioni, per esempio nella predizione delle diramazioni di esecuzione del flusso di esecuzione su processori con pipeline, nell'analisi predittiva per l'exploit di località,[1] nel precaricare memoria e file, e nel controllo di concorrenza ottimistica in sistemi database.[2][3][4]

  1. ^ "A Survey of Value Prediction Techniques for Leveraging Value Locality", S. Mittal, Concurrency and Computation, 2017
  2. ^ Lazy and Speculative Execution Butler Lampson Microsoft Research OPODIS, Bordeaux, France 12 December 2006
  3. ^ International Business Machines Corporation. Research Division, Prabhakar Raghavan, Hadas Schachnai e Mira Yaniv, Dynamic schemes for speculative execution of code, IBM, 1998. URL consultato il 18 gennaio 2011.
  4. ^ H. T. Kung e John T. Robinson, On optimistic methods for concurrency control, in ACM Trans. Database Syst., vol. 6, n. 2, giugno 1981.

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne