È possibile riparare Specter nell'hardware futuro semplicemente eliminando le cache della CPU?

5

Per quanto ho capito, Spectre è causato da un'esecuzione speculativa che non annulla completamente gli tutti effetti collaterali di una previsione di ramo errata (in particolare, non annulla la scrittura della cache della CPU). Ciò non significa che sarebbe relativamente semplice da risolvere nell'hardware futuro, semplicemente garantendo che tutte le voci della cache che sono apparse a causa dell'esecuzione speculativa vengano eliminate in caso di una previsione errata? Ho letto su un articolo di LWN che potrebbe esserci un problema con il comportamento di sfratto della cache; se sì, quale sarebbe?

    
posta strugee 04.01.2018 - 06:21
fonte

1 risposta

5

È possibile utilizzare qualsiasi effetto collaterale dell'esecuzione speculativa visibile. Ci sono alcuni (forse molti) effetti collaterali che non coinvolgono affatto la cache.

Da il white paper di Spectre :

... In this section we explore potential combinations and conclude that virtually any observable effect of speculatively executed code can potentially lead to leaks of sensitive information

...

Instruction Timing.

Spectre vulnerabilities do not necessarily need to involve caches. Instructions whose timing depends on the values of the operands may leak information on the operands. In the following example, the multiplier is occupied by the speculative execution of multiply R1, R2. The timing of when the multiplier becomes available for multiply R3, R4 (either for out-of-order execution or after the misprediction is recognized) could be affected by the timing of the first multiplication, revealing information about R1 and R2.

if (false but mispredicts as true)
  multiply R1, R2
multiply R3, R4
    
risposta data 04.01.2018 - 06:45
fonte

Leggi altre domande sui tag