Versión de 32 bits de la arquitectura x86
IA-32 (abreviatura de " Arquitectura Intel de 32 bits ", comúnmente llamada i386 [1] [2] ) [3] es la versión de 32 bits de la arquitectura del conjunto de instrucciones x86 , diseñada por Intel e implementada por primera vez en el microprocesador 80386 en 1985. IA-32 es la primera encarnación de x86 que admite la computación de 32 bits; [4] como resultado, el término "IA-32" puede usarse como metonimia para referirse a todas las versiones x86 que admiten la computación de 32 bits. [5] [6]
En diversas directivas de lenguajes de programación , a veces se hace referencia a IA-32 como la arquitectura "i386". En otros contextos, ciertas iteraciones de la ISA IA-32 se etiquetan a veces como i486 , i586 e i686 , haciendo referencia a los superconjuntos de instrucciones que ofrecen las microarquitecturas 80486 , P5 y P6 respectivamente. Estas actualizaciones ofrecieron numerosas incorporaciones junto con el conjunto básico IA-32, incluidas las capacidades de punto flotante y las extensiones MMX .
Intel fue históricamente el mayor fabricante de procesadores IA-32, siendo el segundo mayor proveedor AMD . Durante la década de 1990, VIA , Transmeta y otros fabricantes de chips también produjeron procesadores compatibles con IA-32 (por ejemplo, WinChip ). En la era moderna, Intel todavía produjo procesadores IA-32 bajo la plataforma de microcontrolador Intel Quark hasta 2019; sin embargo, desde la década de 2000, la mayoría de los fabricantes (incluido Intel) se movieron casi exclusivamente a implementar CPU basadas en la variante de 64 bits de x86, x86-64 . x86-64, por especificación, ofrece modos operativos heredados que operan en la ISA IA-32 para compatibilidad con versiones anteriores. Incluso dada la prevalencia contemporánea de x86-64, a día de hoy, todavía se mantienen versiones de modo protegido IA-32 de muchos sistemas operativos modernos, por ejemplo, Microsoft Windows (hasta Windows 10 ), [7] Windows Server (hasta Windows Server 2008 ) [8] y la distribución Debian Linux . [9] A pesar del nombre IA-32 (y de causar cierta confusión potencial), la evolución de 64 bits de x86 que se originó en AMD no se conocería como "IA-64", sino que ese nombre pertenece a la arquitectura Itanium de Intel .
Características arquitectónicas
La característica definitoria principal de IA-32 es la disponibilidad de registros de procesador de propósito general de 32 bits (por ejemplo, EAX y EBX), operaciones lógicas y aritméticas de enteros de 32 bits , desplazamientos de 32 bits dentro de un segmento en modo protegido y la traducción de direcciones segmentadas a direcciones lineales de 32 bits. Los diseñadores aprovecharon la oportunidad para realizar también otras mejoras. Algunos de los cambios más significativos (en relación con el conjunto de instrucciones 286 de 16 bits ) son:
- Capacidad de números enteros de 32 bits
- Todos los registros de propósito general (GPR) se expanden de 16 bits a 32 bits, y todas las operaciones aritméticas y lógicas, operaciones de memoria a registro y de registro a memoria, etc., pueden operar directamente en números enteros de 32 bits. Las operaciones de inserción y extracción en la pila tienen como valor predeterminado pasos de 4 bytes, y los punteros no segmentados tienen un ancho de 4 bytes.
- Modos de direccionamiento más generales
- Cualquier GPR puede utilizarse como registro base y cualquier GPR que no sea ESP puede utilizarse como registro índice en una referencia de memoria. El valor del registro índice puede multiplicarse por 1, 2, 4 u 8 antes de sumarse al valor del registro base y al desplazamiento.
- Registros de segmentos adicionales
- Se proporcionan dos registros de segmento adicionales, FS y GS.
- Espacio de direcciones virtuales más grande
- La arquitectura IA-32 define un formato de dirección segmentada de 48 bits, con un número de segmento de 16 bits y un desplazamiento de 32 bits dentro del segmento. Las direcciones segmentadas se asignan a direcciones lineales de 32 bits.
- Paginación por demanda
- Las direcciones lineales de 32 bits son direcciones virtuales en lugar de direcciones físicas; se traducen a direcciones físicas mediante una tabla de páginas . En los procesadores 80386, 80486 y Pentium original , la dirección física era de 32 bits; en los procesadores Pentium Pro y posteriores, la extensión de dirección física permitía direcciones físicas de 36 bits, aunque el tamaño de la dirección lineal seguía siendo de 32 bits.
Modos de funcionamiento
Véase también
Referencias
- ^ "ditto(1) Mac OS X Manual Page". Manual de comandos generales de BSD . Apple . 19 de diciembre de 2008. Archivado desde el original el 2 de junio de 2012 . Consultado el 3 de agosto de 2013 .
Los binarios universales finos para la arquitectura especificada [...] deben especificarse como "i386", "x86_64", etc.
- ^ "Macros predefinidos adicionales". software.intel.com . Intel . Archivado desde el original el 15 de febrero de 2021 . Consultado el 25 de noviembre de 2020 .
- ^ Kemp, Steve. "Ejecución de aplicaciones de 32 bits en Debian GNU/Linux de 64 bits". Administración de Debian . Archivado desde el original el 16 de septiembre de 2013. Consultado el 31 de agosto de 2013 .
- ^ "Manual del desarrollador de software de arquitecturas Intel 64 e IA-32". Intel Corporation . Septiembre de 2014. p. 31. Archivado desde el original el 26 de enero de 2012. Consultado el 19 de diciembre de 2014. El procesador Intel386 fue el primer procesador de 32 bits de la familia de arquitecturas IA-32 .
Introdujo registros de 32 bits para su uso tanto para almacenar operandos como para direccionamiento.
- ^ Green, Ronald W. (5 de mayo de 2009). "¿Qué significan IA-32, Intel 64 y IA-64 Architecture?". software.intel.com . Intel . Archivado desde el original el 19 de diciembre de 2014 . Consultado el 19 de diciembre de 2014 .
- ^ "Hardware compatible". Ayuda de Ubuntu . Canonical . Archivado desde el original el 19 de diciembre de 2014 . Consultado el 31 de agosto de 2013 .
- ^ "Requisitos y especificaciones del sistema de Windows 10 | Microsoft". www.microsoft.com . Archivado desde el original el 1 de mayo de 2018 . Consultado el 20 de agosto de 2018 .
- ^ Scott M. Fulton, III (16 de mayo de 2007). «Windows Server 2008, el último sistema operativo de 32 bits». BetaNews . Archivado desde el original el 1 de abril de 2023. Consultado el 1 de abril de 2023 .
- ^ "Debian GNU/Linux en máquinas x86". Archivado desde el original el 28 de abril de 2019 . Consultado el 20 de agosto de 2020 .