Articulo de referencia

Conjunto de instrucciones alternativo

El conjunto de instrucciones alternativo (AIS) es una arquitectura de conjunto de instrucciones secundaria única que se encuentra en la serie VIA C3 de CPU x86-32 fabricadas por...

El conjunto de instrucciones alternativo (AIS) es una arquitectura de conjunto de instrucciones secundaria única que se encuentra en la serie VIA C3 de CPU x86-32 fabricadas por VIA Technologies . Se accede al modo de procesador oculto ejecutando la instrucción x86 JMPAI( 0F 3F). [ 1 ] Si el modo AIS está habilitado, el procesador realizará un JMP EAX [ 2 ] y comenzará a ejecutar instrucciones AIS en la dirección del registro EAX . El uso de AIS permite el acceso nativo al núcleo RISC diseñado por Centaur Technology dentro del procesador. [ 3 ]

Formato de instrucciones

El fabricante describe el Conjunto de Instrucciones Alternativas como "un conjunto extendido de instrucciones enteras, MMX , de punto flotante y 3DNow! junto con registros adicionales y algunas formas de instrucciones más potentes". [ 2 ] Cada instrucción AIS tiene como prefijo la secuencia de 3 bytes 0x8D8400seguida de la instrucción de 32 bits; esta forma de prefijo para las instrucciones AIS hace que parezcan instrucciones de Carga de Dirección Efectiva x86 ( LEA). En 2018, el investigador Christopher Domas informó que el prefijo 0x620405(x86 BOUND) también funcionaba.

Una propuesta realizada en 2002 para agregar soporte AIS al Ensamblador de Red (NASM) fue rechazada parcialmente en 2005, basándose en que NASM era un ensamblador x86 y AIS es un conjunto de instrucciones independiente. [ 4 ] Un ensamblador está disponible a partir de la investigación de Domas de 2018. [ 5 ]

En 2007, una patente nombró algunas instrucciones de microcódigo como loady storehacia/desde la RAM principal, y loadPRAMy storePRAMhacia/desde la RAM privada dentro del procesador. [ 6 ] El equipo de verificación de Centaur Technologies, en un documento de 2014 sobre el VIA Nano , incluyó algunas listas cortas de microinstrucciones que incluían ADDIG, JLINK, JMP_ALL, MVIG, NLOOPE, STORE_PRAM, además de microoperaciones XADDy XSUB. Se demostró que las microoperaciones tienen un formato que incluye los campos opcode, exec unit, src width, src1, src2, dest width, dest, write flags?y end routine?. [ 7 ]

En mayo de 2021 se añadieron al archivo de Bitsavers una referencia de programación de 2002 para el conjunto de instrucciones alternativo [ 8 ] y una nota de aplicación adjunta [ 1 ] .

Disponibilidad

Desde el modo x86, la disponibilidad del conjunto de instrucciones alternativo se puede detectar ejecutando un CPUID con el registro EAX configurado 0xc0000001y luego examinando el registro EDX. Si el bit 0 de EDX está configurado en 1, entonces se admite AIS. Si el bit 1 de EDX también está configurado en 1, entonces AIS está habilitado. [ 9 ] Si la CPU admite AIS, entonces su estado se puede verificar y modificar a través de los registros específicos del modelo , verificando y configurando el registro de control de características (FCR, registro 0x1107). Si el bit 0 (" ALTINST") está configurado en 1, entonces AIS está habilitado. [ 9 ]

La función de inicialización del kernel de Microsoft Windows NT KiGetFeatureBits()desactiva de forma proactiva el modo de instrucción alternativa (AIS) al arrancar. [ 10 ] Si se ejecuta la instrucción de salto x86 JMPAIcuando el modo AIS está desactivado, el procesador generará una excepción de instrucción no válida. [ 11 ] La activación del bit de habilitación de AIS requiere acceso privilegiado y debe realizarse mediante una secuencia de lectura-modificación-escritura . [ 11 ]

Elevación de privilegios

En 2018, Christopher Domas descubrió que algunos procesadores Samuel 2 venían con el conjunto de instrucciones alternativo habilitado por defecto y que, al ejecutar instrucciones AIS desde el espacio de usuario , era posible obtener una escalada de privilegios del Anillo 3 al Anillo 0. [ 5 ] Domas había realizado ingeniería inversa parcial del conjunto de instrucciones AIS utilizando fuzzing automatizado contra un clúster de siete clientes ligeros . [ 12 ] Domas utilizó los términos "núcleo profundamente integrado" (DEC) más "conjunto de instrucciones profundamente integrado" (DEIS) para el conjunto de instrucciones RISC, "instrucción de lanzamiento" para JMPAI, "instrucción puente" para el envoltorio de prefijo x86, "registro de configuración global" para el Registro de Control de Características (FCR), y le dio al exploit el nombre inspirado en la física " Rosenbridge ". [ 5 ]

Véase también

  • NEC V20/V30 , una CPU compatible con x86 que implementa un esquema similar para entrar y salir de un modo de conjunto de instrucciones alternativo para admitir las instrucciones Intel 8080 .

Referencias

  1. ^ a b VIA, Nota de aplicación del conjunto de instrucciones alternativo del procesador VIA C3 , versión 0.24, 2002. Consultado el 26 de abril de 2023.
  2. ^ a b Conjunto de instrucciones alternativo (PDF) . VIA Eden (Informe). Hoja de datos del procesador de plataforma de sistema embebido. Noviembre de 2002. págs. 70-71. Archivado (PDF) del original el 10 de febrero de 2019. Recuperado el 10 de agosto de 2018 .
  3. ^ Stiller, Andreas (22 de enero de 2003). "VIAs Prozessor der siebten Generation" [procesador de séptima generación de VIA]. Heise en línea (en alemán). Heinz Heise . Consultado el 12 de agosto de 2018 . Además... también puedes programar de forma nativa el núcleo de artículo RISC de Nehemiah (AIS: conjunto de instrucciones alternativo). Además, aquí se mostrarán los programas que encontrarán para uno o varios otros Treiber nutzen, para lograr un mayor rendimiento.
  4. ^ "#21 agregar soporte para AIS de Centaur" . El Ensamblador de Red . 18 de diciembre de 2002. Recuperado el 12 de agosto de 2018 a través de Sourceforge.
  5. ^ a b c Domas, Christopher. "Rosenbridge: Puertas traseras de hardware en CPU x86" . GitHub . Archivado del original el 13 de agosto de 2018. Recuperado el 10 de agosto de 2018 .
  6. ^ Patente estadounidense 20080256336 , Henry, G. Glenn ; Eddy, Colin y Hooker, Rodney E. et al., "Microprocesador con memoria RAM de microcódigo privada", publicada el 16/10/2008, emitida el 02/11/2010. Archivada el 10/03/2021 en Wayback Machine. 
  7. ^ Davis, Jared; Slobodova, Anna; Swords, Sol (2016-04-20). "Verificación de microcódigo: otra pieza del rompecabezas de verificación de microprocesadores" (PDF) . Archivado (PDF) del original el 13-03-2017 . Recuperado el 14-08-2018 .
  8. ^ Referencia de programación del conjunto de instrucciones alternativo del procesador VIA C3. Archivado el 14 de febrero de 2026 en Wayback Machine , versión 0.25, noviembre de 2002. Consultado el 26 de abril de 2023.
  9. ^ a b Funciones de instrucción CPUID extendidas de Centaur (PDF) . Hoja de datos del procesador de la plataforma de sistema embebido VIA Eden-N (Informe). 22-10-2004. págs. 20, 74. Recuperado el 10-08-2018 .
  10. ^ Microsoft. "kernlini.c" . Código fuente del kernel de Microsoft Windows NT . Consultado el 14 de agosto de 2018. KiGetFeatureBits() … // Deshabilita el bit 0 que controla la función Cyrix ALTINST.
  11. ^ a b Ejecución de instrucciones alternativas (PDF) . Hoja de datos del procesador VIA C3 Samuel 2 (Informe). Octubre de 2004. pág. 60.
  12. ^ Wagenseil, Paul (09/08/2018). "Hacker encuentra un 'modo dios' oculto en CPUs x86 antiguas" . Tom's Hardware . Archivado del original el 10/08/2018 . Recuperado el 10/08/2018 .

Lecturas adicionales

  • Patente estadounidense 20030154359 , Henry, Glenn ; Hooker, Rodney y Parks, Terry, "Aparato y método para extender un conjunto de instrucciones de microprocesador", publicada el 14 de agosto de 2003, expedida el 20 de febrero de 2007, asignada a Centaur Technology. 
  • Patente estadounidense 20030188130 , Henry, Glenn ; Hooker, Rodney y Parks, Terry, "Mecanismo para ampliar el número de registros en un microprocesador", publicada el 2 de octubre de 2003, expedida el 13 de mayo de 2008, asignada a Centaur Technology. Archivada el 19 de agosto de 2019 en Wayback Machine. 
  • Domas, Christopher (10 de agosto de 2018). Modo Dios desbloqueado: Puertas traseras de hardware en CPUs x86 (PDF) . DEF CON 26. Las Vegas. Archivado (PDF) del original el 11 de agosto de 2018. Recuperado el 14 de agosto de 2018 .
  • Tracy Kidder (2022). " El alma de una nueva máquina ". Sky and Telescope . 144 (6): 70. Bibcode : 2022S&T...144f..70T .Comentarios sobre el uso de bits de modo en las CPU, en el contexto de la creación del ordenador Eagle de Data General .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Alternate_Instruction_Set&oldid=1339472243 "