¿Se puede arreglar Specter en el hardware futuro simplemente purgando cachés de CPU?

5

Por lo que yo entiendo, Specter es causado por la ejecución especulativa que no deshace completamente los efectos secundarios de todos de una predicción de rama incorrecta (específicamente, no deshacer una escritura de caché de CPU). ¿No significa eso que sería relativamente sencillo solucionarlo en el hardware futuro, simplemente asegurándose de que las entradas de caché que aparecieron debido a la ejecución especulativa se eliminen en caso de una predicción incorrecta? Leí en un artículo de LWN que también podría haber un problema con el comportamiento de desalojo de caché; Si es así, ¿qué sería eso?

    
pregunta strugee 04.01.2018 - 06:21
fuente

1 respuesta

5

Se puede usar cualquier efecto secundario de la ejecución especulativa que sea visible. Hay algunos (quizás muchos) efectos secundarios que no involucran la memoria caché en absoluto.

De el documento técnico de Specter :

  

... En esta sección, exploramos posibles combinaciones y llegamos a la conclusión de que prácticamente cualquier efecto observable del código ejecutado de forma especulativa puede potencialmente generar fugas de información confidencial

     

...

     

Tiempo de instrucción.

     

Las vulnerabilidades de Spectre no necesariamente tienen que involucrar cachés. Las instrucciones cuyo tiempo depende de los valores de los operandos pueden filtrar información sobre los operandos. En el siguiente ejemplo, el multiplicador está ocupado por la ejecución especulativa de multiply R1, R2 . La sincronización de cuando el multiplicador está disponible para multiply R3, R4 (ya sea para ejecución fuera de orden o después de que se reconoce la predicción errónea) podría verse afectada por la sincronización de la primera multiplicación, revelando información sobre R1 y R2 .

if (false but mispredicts as true)
  multiply R1, R2
multiply R3, R4
    
respondido por el Shelvacu 04.01.2018 - 06:45
fuente

Lea otras preguntas en las etiquetas