¿Qué es la ejecución especulativa?  – Tecnología extrema

¿Qué es la ejecución especulativa? – Tecnología extrema

Con una nueva falla de seguridad de Apple en las noticias, es un buen momento para revisar l. a. cuestión de qué es l. a. ejecución especulativa y cómo funciona. Este tema recibió mucha discusión hace algunos años cuando Spectre y Meltdown aparecían con frecuencia en las noticias y aparecían nuevos ataques de canal lateral cada pocos meses.

L. a. ejecución especulativa es una técnica utilizada para aumentar el rendimiento de todos los microprocesadores modernos en un grado u otro, incluidos los chips fabricados o diseñados por AMD, ARM, IBM e Intel. Los núcleos de CPU modernos que no utilizan l. a. ejecución especulativa están destinados a entornos de consumo de energía extremely bajo o tareas de procesamiento mínimas. Varias fallas de seguridad como Spectre, Meltdown, Foreshadow y MDS apuntaron a l. a. ejecución especulativa hace unos años, generalmente en CPU Intel.

¿Qué es l. a. ejecución especulativa?

L. a. ejecución especulativa es uno de los tres componentes de ejecución fuera de orden, también conocida como ejecución dinámica. Junto con l. a. predicción de ramas múltiples (usada para predecir las instrucciones que probablemente se necesitarán en un futuro cercano) y el análisis de flujo de datos (usado para alinear las instrucciones para una ejecución óptima, en lugar de ejecutarlas en el orden en que llegaron), l. a. ejecución especulativa entregó una mejora espectacular del rendimiento con respecto a los procesadores Intel anteriores cuando se introdujo por primera vez a mediados de l. a. década de 1990. Debido a que estas técnicas funcionaron tan bien, AMD las adoptó rápidamente, y utilizó un procesamiento fuera de servicio a partir del K5.

El enfoque de ARM en los procesadores móviles de bajo consumo inicialmente lo mantuvo fuera del campo de juego OOoE, pero l. a. compañía adoptó una ejecución fuera de orden cuando construyó el Cortex A9 y continuó expandiendo el uso de l. a. técnica con Cortex más potente y posterior. CPU de marca.

Así es como funciona. Las CPU modernas están canalizadas, lo que significa que son capaces de ejecutar múltiples instrucciones en paralelo, como se muestra en el diagrama a continuación.

Pipeline-Wikipedia

Imagen por Wikipedia. Este es un diagrama basic de una CPU canalizada, que muestra cómo las instrucciones se mueven a través del procesador de ciclo de reloj a ciclo de reloj.

Imagina que el bloque verde representa una rama if-then-else. El predictor de bifurcación calcula qué bifurcación es más possible que se tome, obtiene el siguiente conjunto de instrucciones asociadas con esa bifurcación y comienza a ejecutarlas especulativamente antes de saber cuál de las dos bifurcaciones de código utilizará. En el diagrama de arriba, estas instrucciones especulativas se representan como el cuadro morado. Si el predictor de bifurcación adivinó correctamente, entonces el siguiente conjunto de instrucciones que necesitaba l. a. CPU están alineados y listos para funcionar, sin que l. a. tubería se detenga ni se retrase l. a. ejecución.

Sin predicción de rama y ejecución especulativa, l. a. CPU no sabe qué rama tomará hasta que l. a. primera instrucción en l. a. canalización (el cuadro verde) termine de ejecutarse y pase a l. a. etapa 4. En lugar de pasar directamente de un conjunto de instrucciones al a continuación, l. a. CPU tiene que esperar a que lleguen las instrucciones apropiadas. Esto perjudica el rendimiento del sistema, ya que es hora de que l. a. CPU pueda realizar un trabajo útil.

L. a. razón por l. a. que es una ejecución “especulativa” es que l. a. CPU podría estar equivocada. Si es así, el sistema carga los datos apropiados y ejecuta esas instrucciones en su lugar. Pero los predictores de bifurcación no se equivocan muy a menudo; las tasas de precisión suelen estar por encima del 95 por ciento.

¿Por qué utilizar l. a. ejecución especulativa?

Hace décadas, antes de que se inventara l. a. ejecución fuera de orden, las CPU eran lo que hoy llamamos diseños “en orden”. Instrucciones ejecutadas en el orden en que fueron recibidas, sin intentar reordenarlas o ejecutarlas de manera más eficiente. Uno de los principales problemas con l. a. ejecución en orden es que una canalización detiene l. a. CPU completa hasta que se resuelva el problema.

El otro problema que impulsó el desarrollo de l. a. ejecución especulativa fue l. a. brecha entre las velocidades de l. a. CPU y l. a. memoria most important. El siguiente gráfico muestra l. a. brecha entre los relojes de l. a. CPU y l. a. memoria. A medida que crecía l. a. brecha, también aumentaba l. a. cantidad de tiempo que l. a. CPU pasaba esperando en l. a. memoria most important para entregar información. Las funciones como las cachés L1, L2 y L3 y l. a. ejecución especulativa se diseñaron para mantener l. a. CPU ocupada y minimizar el tiempo que pasaba inactiva.

mem_gap

Si l. a. memoria pudiera igualar el rendimiento de l. a. CPU, no habría necesidad de cachés.

Funcionó. L. a. combinación de grandes cachés independientes y l. a. ejecución fuera de orden le dio a los Pentium Professional y Pentium II de Intel l. a. oportunidad de estirar las piernas en formas que los chips anteriores no podían igualar. Este gráfico de un Anandtech de 1997 artículo muestra claramente l. a. ventaja.

cpuben6

Gracias a l. a. combinación de ejecución especulativa y grandes cachés, el Pentium II 166 supera contundentemente a un Pentium 250 MMX, a pesar de que este último tiene una ventaja de 1,51x en l. a. velocidad del reloj sobre el primero.

En última instancia, fue el Pentium II el que entregó los beneficios de l. a. ejecución desordenada a l. a. mayoría de los consumidores. El Pentium II generation un microprocesador rápido en comparación con los sistemas Pentium que habían sido de gama alta poco tiempo antes. AMD generation una opción de segundo nivel absolutamente capaz, pero hasta que se lanzó el Athlon authentic, Intel tenía asegurado el rendimiento absoluto.

El Pentium Professional y el último Pentium II eran mucho más rápidos que las arquitecturas anteriores que usaba Intel. Esto no estaba garantizado. Cuando Intel diseñó el Pentium Professional, gastó una cantidad significativa de su presupuesto de matriz y energía para permitir l. a. ejecución fuera de servicio. Pero l. a. apuesta valió l. a. pena, a lo grande.

Intel ha sido más prone a los ataques de canal lateral que llegaron al mercado en los últimos tres años que AMD o ARM porque optó por especular de manera más agresiva y terminó exponiendo ciertos tipos de datos en el proceso. Varias rondas de parches han reducido esas vulnerabilidades en chips anteriores y las CPU más nuevas están diseñadas con correcciones de seguridad para algunos de estos problemas en el {hardware}. También se debe tener en cuenta que el riesgo de este tipo de ataques de canal lateral sigue siendo teórico. En los años transcurridos desde que surgieron, no se ha informado de ningún ataque con estos métodos.

Existen diferencias entre cómo Intel, AMD y ARM implementan l. a. ejecución especulativa, y esas diferencias son parte de por qué Intel está expuesto a algunos de estos ataques de formas en las que otros proveedores no lo están. Pero l. a. ejecución especulativa, como técnica, es simplemente demasiado valiosa para dejar de usarla. Hoy en día, todas las arquitecturas de CPU de gama alta utilizan l. a. ejecución fuera de orden. Y l. a. ejecución especulativa, aunque implementada de manera diferente de una empresa a otra, es utilizada por cada una de ellas. Sin l. a. ejecución especulativa, l. a. ejecución desordenada no funcionaría.

El estado de las vulnerabilidades del canal lateral en 2021

Desde 2018 hasta 2020, vimos una serie de vulnerabilidades de canal lateral discutidas, incluidas Spectre, Meltdown, Foreshadow, RIDL, MDS, ZombieLoad y otras. Se puso un poco de moda que los investigadores de seguridad emitieran un informe serio, un nombre amigable para el mercado y ocasionales explosiones de relaciones públicas espeluznantes que plantearon el espectro (sin juego de palabras) de devastadores problemas de seguridad que, hasta l. a. fecha, no han surgido.

L. a. investigación del canal lateral continúa: una nueva vulnerabilidad potencial se encontró en las CPU Intel en marzo, pero parte de l. a. razón por l. a. que funcionan los ataques de canal lateral es porque l. a. física nos permite husmear en l. a. información utilizando canales que no están destinados a transmitirla. (Los ataques de canal lateral son ataques que se centran en las debilidades de l. a. implementación para filtrar datos, en lugar de centrarse en un algoritmo específico para descifrarlos).

Aprendemos cosas sobre el espacio external de forma common observándolo en espectros de energía que los humanos no pueden percibir de forma herbal. Buscamos neutrinos usando detectores sumergidos en lugares profundos como el lago Baikal, precisamente porque las características de estos lugares nos ayudan a discernir l. a. débil señal que estamos buscando del ruido del universo haciendo su trabajo. Mucho de lo que sabemos sobre geología, astronomía, sismología y cualquier campo en el que l. a. observación directa de los datos sea imposible o impráctico conceptualmente se relaciona con l. a. thought de canales laterales “con fugas”. Los humanos son muy buenos extrayendo datos midiendo indirectamente. Hay esfuerzos continuos para diseñar chips que dificulten las vulnerabilidades de canal lateral, pero será muy difícil bloquearlas por completo.

Esto no pretende implicar que estos problemas de seguridad no sean serios o que las empresas de CPU deban darse por vencidas y negarse a solucionarlos porque el universo es inconveniente, pero por ahora es un juego gigante de golpear un topo, y puede No será posible asegurar un chip contra todos estos ataques. A medida que se inventan nuevos métodos de seguridad, también pueden aparecer nuevos métodos de espionaje que se basan en otros canales secundarios. Algunas correcciones, como deshabilitar Hyper-Threading, pueden mejorar l. a. seguridad, pero conllevan importantes impactos en el rendimiento de ciertas aplicaciones.

Afortunadamente, por ahora, todo este ir y venir es teórico. Intel ha sido l. a. empresa más afectada por estas revelaciones, pero ninguna de las revelaciones de canal lateral que se han reducido desde Spectre y Meltdown se ha utilizado en un ataque público. AMD, de manera identical, no tiene conocimiento de ningún grupo u organización que apunte a Zen 3 en su reciente divulgación. Los problemas como el ransomware han empeorado mucho en los últimos dos años, sin necesidad de ayuda de las vulnerabilidades del canal lateral.

A l. a. larga, esperamos que AMD, Intel y otros proveedores continúen solucionando estos problemas a medida que surjan, con una combinación de actualizaciones de {hardware}, instrument y firmware. Conceptualmente, los ataques de canal lateral como estos son extremadamente difíciles, si no imposibles, de prevenir. Los problemas específicos se pueden mitigar o solucionar, pero l. a. naturaleza de l. a. ejecución especulativa significa que una cierta cantidad de datos se filtrará en circunstancias específicas. Puede que no sea posible evitarlo sin renunciar a mucho más rendimiento del que l. a. mayoría de los usuarios querrían intercambiar.

Ahora lee:

Consulte nuestra serie Explicaciones de ExtremeTech para obtener una cobertura más detallada de los temas tecnológicos más candentes de l. a. actualidad.


Pasaporte En Linea