De Wikipedia, la enciclopedia libre
  (Redirigido desde X86-32 )
Saltar a navegación Saltar a búsqueda

IA-32 (abreviatura de " Arquitectura Intel, 32 bits ", a veces también 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 soporta computación de 32 bits; [4] como resultado, el término "IA-32" puede usarse como una metonimia para referirse a todas las versiones x86 que admiten la computación de 32 bits. [5] [6]

Dentro de varias directivas de lenguaje de programación , IA-32 todavía se conoce a veces como la arquitectura "i386". En algunos otros contextos, ciertas iteraciones del IA-32 ISA a veces se etiquetan como i486, i586 e i686, en referencia a los superconjuntos de instrucciones ofrecidos por las microarquitecturas 80486 , P5 y P6, respectivamente. Estas actualizaciones ofrecieron numerosas adiciones junto con el conjunto base IA-32, es decir, capacidades de punto flotante y las extensiones MMX .

Intel fue históricamente el mayor fabricante de procesadores IA-32, siendo AMD el segundo mayor proveedor . 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 produce procesadores IA-32 bajo la plataforma de microcontroladores Intel Quark ; 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 de operación heredados que operan en el IA-32 ISA para compatibilidad con versiones anteriores. Incluso dada la prevalencia contemporánea de x86-64, a partir de 2018, las versiones en modo protegido IA-32 de muchos sistemas operativos modernos todavía se mantienen, por ejemplo, Microsoft Windows [7] y la distribución Debian GNU / Linux. [8] A pesar del nombre de IA-32 (y causando alguna confusión potencial), la evolución de 64 bits de x86 que se originó en AMD no sería conocida como "IA-64", ese nombre en cambio pertenece a la arquitectura Itanium de Intel .

Características arquitectónicas [ editar ]

La principal característica definitoria de IA-32 es la disponibilidad de registros de procesador de propósito general de 32 bits (por ejemplo, EAX y EBX), operaciones aritméticas y lógicas enteras de 32 bits, compensaciones 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 también aprovecharon la oportunidad para realizar otras mejoras. Algunos de los cambios más importantes se describen a continuación.

Capacidad de entero 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 enteros de 32 bits. Los empujes y estallidos en la pila tienen por defecto pasos de 4 bytes, y los punteros no segmentados tienen 4 bytes de ancho.
Modos de direccionamiento más generales
Cualquier GPR se puede usar como registro base, y cualquier GPR que no sea ESP se puede usar como registro de índice, en una referencia de memoria. El valor del registro de índice se puede multiplicar por 1, 2, 4 u 8 antes de agregarse al valor del registro base y al desplazamiento.
Registros de segmentos adicionales
Se proporcionan dos registros de segmento adicionales, FS y GS.
Mayor espacio de direcciones virtuales
La arquitectura IA-32 define un formato de dirección segmentado 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 de demanda
Las direcciones lineales de 32 bits son direcciones virtuales en lugar de direcciones físicas; se traducen a direcciones físicas a través de una tabla de páginas . En los procesadores 80386, 80486 y Pentium originales , la dirección física era de 32 bits; en el Pentium Pro y procesadores 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 era todavía de 32 bits.

Modos de funcionamiento [ editar ]

Ver también [ editar ]

  • x86-64
  • IA-64
  • Lista de antiguos fabricantes de procesadores compatibles con IA-32

Referencias [ editar ]

  1. ^ "DITTO" . Manual de comandos generales BSD . Manzana . 19 de diciembre de 2008 . Consultado el 3 de agosto de 2013 . Los binarios universales delgados para la arquitectura especificada [...] deben especificarse como "i386", "x86_64", etc.[ enlace muerto ]
  2. ^ "Macros predefinidos adicionales" . software.intel.com . Intel . Consultado el 25 de noviembre de 2020 .
  3. ^ Kemp, Steve. "Ejecución de aplicaciones de 32 bits en Debian GNU / Linux de 64 bits" . Administración de Debian .
  4. ^ "Manual del desarrollador de software de arquitecturas Intel 64 e IA-32" . Intel Corporation . Septiembre de 2014. p. 31. El procesador Intel386 fue el primer procesador de 32 bits de la familia de arquitectura IA-32. Introdujo registros de 32 bits para su uso tanto para contener operandos como para direccionamiento.
  5. ^ Green, Ronald W. (5 de mayo de 2009). "¿Qué significan las arquitecturas IA-32, Intel 64 e IA-64?" . software.intel.com . Intel . Consultado el 19 de diciembre de 2014 .
  6. ^ "Hardware compatible" . Ayuda de Ubuntu . Canonical . Archivado desde el original el 19 de diciembre de 2014 . Consultado el 31 de agosto de 2013 .
  7. ^ "Requisitos y especificaciones del sistema de Windows 10 | Microsoft" . www.microsoft.com . Consultado el 20 de agosto de 2018 .
  8. ^ https://www.debian.org/ports/i386/