Extensiones de sincronización transaccional


Extensiones de sincronización transaccional ( TSX ), también llamadas Extensiones de sincronización transaccional Nuevas instrucciones ( TSX-NI ), es una extensión de la arquitectura del conjunto de instrucciones x86 (ISA) que agrega soporte de memoria transaccional de hardware , acelerando la ejecución de software multiproceso a través de la elisión de bloqueo . Según diferentes puntos de referencia, TSX / TSX-NI puede proporcionar una ejecución de aplicaciones alrededor de un 40% más rápida en cargas de trabajo específicas y de 4 a 5 veces más transacciones de base de datos por segundo (TPS). [1] [2] [3] [4]

TSX / TSX-NI fue documentado por Intel en febrero de 2012 y debutó en junio de 2013 en microprocesadores Intel seleccionados basados ​​en la microarquitectura Haswell . [5] [6] [7] procesadores Haswell siguientes 45xx así como R-serie y la serie K (con multiplicador desbloqueado) SKUs no apoyan TSX / TSX-NI. [8] En agosto de 2014, Intel anunció un error en la implementación de TSX / TSX-NI en las versiones actuales de Haswell, Haswell-E, Haswell-EP y las primeras CPU de Broadwell , que resultó en la desactivación de la función TSX / TSX-NI en las CPU a través de una actualización de microcódigo . [9] [10]

En 2016, se encontró un ataque de temporización de canal lateral al abusar de la forma en que TSX / TSX-NI maneja las fallas transaccionales (es decir , fallas de página ) para romper la aleatorización del diseño del espacio de direcciones del kernel (KASLR) en todos los principales sistemas operativos. [11] En 2021, Intel lanzó una actualización de microcódigo que deshabilitó la función TSX / TSX-NI en generaciones de CPU desde Skylake hasta Coffee Lake , como una mitigación para los problemas de seguridad descubiertos. [12]

El soporte para la emulación TSX / TSX-NI se proporciona como parte del Emulador de desarrollo de software Intel. [13] También hay soporte experimental para la emulación TSX / TSX-NI en una bifurcación QEMU . [14]

TSX / TSX-NI proporciona dos interfaces de software para designar regiones de código para ejecución transaccional. Hardware Lock Elision (HLE) es una interfaz basada en prefijos de instrucciones diseñada para ser compatible con procesadores sin soporte TSX / TSX-NI. La memoria transaccional restringida (RTM) es una nueva interfaz de conjunto de instrucciones que brinda mayor flexibilidad a los programadores. [15]

TSX / TSX-NI permite la ejecución optimista de regiones de código transaccional. El hardware monitorea múltiples subprocesos en busca de accesos de memoria conflictivos, mientras anula y revierte transacciones que no se pueden completar con éxito. Se proporcionan mecanismos para que el software detecte y maneje transacciones fallidas. [15]