Sto lavorando a un documento su di loro e penso di capirlo in generale cosa succede - > sfruttando il caching della memoria della CPU e l'esecuzione speculativa, ma sono un po 'perso dal modo in cui i dati protetti vengono effettivamente esposti.
Quindi, se capisco l'esecuzione speculativa correttamente in un caso di:
if a == true {
firstFunction()
} else {
secondFunction()
}
la CPU chiamerà sia la prima che la seconda funzione e le eseguirà prima che conosca il valore di a? Memorizza i valori effettivi all'interno di quelle funzioni o solo le loro posizioni di memoria nella sua cache? E una volta che un è risolto, non scartare ciò che ha ottenuto dal percorrere la strada sbagliata?
Grazie