Intel 80486

486
Microprocesador
80486dx2-large.jpg
La parte inferior de un Intel 80486DX2
Producción 1989 — 1997
Fabricante(s) Intel
IBM
AMD
Texas Instruments
Harris Semiconductor
UMC
SGS Thomson
Frecuencia de reloj de CPU 16 MHz a 100 MHz
Velocidad de FSB 16 MHz a 50 MHz
Longitud del canal MOSFET 1 µm a 0,6 µm
Conjunto de instrucciones x86 (IA-32) including x87 for DX models
Package(s) PGA (socket 1, 2, 3, 6)
196-pin PQFP

Los Intel 80486 (i486, 486) son una familia de microprocesadores de 32 bits con arquitectura x86 diseñados por Intel Corporation.

Los i486 son muy similares a sus predecesores, los Intel 80386. La diferencias principales son que los i486 tienen un conjunto de instrucciones optimizado, una unidad de coma flotante y un caché unificado integrados en el propio circuito integrado del microprocesador y una unidad de interfaz de bus mejorada. Estas mejoras hacen que los i486 sean el doble de rápidos que un i386 e i387 a la misma frecuencia de reloj. De todos modos, algunos i486 de gama baja son más lentos que los i386 más rápidos.

Las velocidades de reloj típicas para los i486 eran 16 MHz (no muy frecuente), 20 MHz (tampoco frecuente), 25 MHz, 33 MHz, 40 MHz, 50 MHz (típicamente con duplicación del reloj), 66 MHz (con duplicación del reloj), 75 MHz (con triplicación del reloj), 80MHz (versión de AMD con duplicación de reloj), 100 MHz (también con triplicación del reloj) y 120 MHz (triplicación de reloj, exclusivo de AMD). Existió además un 486 de 133MHz fabricado por AMD que disponía de 16KB de caché L1, arquitectura de 0'35 micras (contra las 0'6 micras de los modelos anteriores) y un multiplicador de 4x. Se denominó con tres nombres diferentes: AMD X5, AMD Am5x86-P75 y AMD Am486DX5-133, y disponía de una enorme capacidad para el overclock que le permitía subir hasta los 160Mhz incluso sin disipador, equiparando su rendimiento con el de un Pentium-90. También existen unidades del AMD Am5x86-P90, que no es otra cosa que un 486 a 150Mhz con multiplicador de 3x, pero apenas se fabricaron unidades de este modelo que sería el más potente 486 jamás fabricado.

El sucesor del microprocesador i486 es el Intel Pentium.

Variantes del i486

Intel 80486-SX / 33 MHz.
Arquitectura del 486DX2.

Hay varias variantes del diseño básico del i486, entre las que se encuentran:

Los procesadores 486 han sido licenciados o diseñados mediante ingeniería inversa por otras empresas como IBM, Texas Instruments, AMD, Cyrix y Chips and Technologies. Algunos de estos 486 son duplicados idénticos a los de Intel mientras que otros no.

Instrucciones a nivel de aplicación

Con respecto al 386 se añadieron tres nuevas instrucciones, dos de ellas están orientadas al uso de sistemas de multiprocesador. En estos es usual acceder a los recursos compartidos y la regulación de estos se hace mediante semáforos.

La tercera instrucción añadida tiene por misión facilitar el acceso a banco de datos de otros procesadores como los creados para ser utilizados en ordenadores IBM o equipos con microprocesadores Motorola.

Instrucción de permutación de bytes BSWAP reg32

La instrucción BSWAP sirve para invertir el orden de los bytes en una palabra de 32 bits. Convierte una palabra almacenada con el objeto de menor peso en la dirección más baja en otra que tenga los mismos, pero con el octeto de menor peso en la dirección más alta. Proporciona mejor rendimiento en aritmética ASCII y BCD, ya que se procesan 4 octetos en lugar de uno solo.

Es una instrucción que solo actúa sobre registros de 32 bits y se ejecuta en un ciclo de reloj.

EAX 12345678H
BSWAP EAX 
EAX 78563412H

Instrucción de intercambio y suma XADD r/m, reg

Usa dos operandos del mismo tamaño 8, 16 ó 32 bits. El segundo debe ser un registro. El primero puede ser un registro o un operando en memoria.

Se ejecuta en tres o cuatro ciclos de reloj

Ejemplo

XADD    OPLOP2
        ; OP2:=OP1
        ; OP1:= OP1 + OP2
IMOTEP ; OP3:=GATO </pre>
IMOTEP,IMOTEP,IMOTEP,IMOTEP
ERROR LOG

Varios procesadores podrían compartir la ejecución de un mismo bucle de instrucciones simplificando el procesamiento en paralelo.

Con la nueva instrucción del 486 la codificación sería:

MOV EAX, 1
LOCK XADD N, FAX

Instrucción de comparación e intercambio CMPNCHG r m,reg

Necesita tres operandos del mismo tamaño 8, 16 ó 32 bits. El segundo debe ser un registro. El primero puede ser un registro o un operando en memoria. El tercero debe ser implícito: el acumulador (AL, AX, EAX, dependiendo del tamaño de los otros operandos). Se ejecuta en seis o siete ciclos de reloj si la comparación resulta cierta o hasta diez si es falsa.

CMPXCHG DEST.ORGIA
; IF DEST=ACUM
THEN DEST: ORGIA
; ELSE ACUM: =DEST

Los señalizadores del registro EFLAGS indican el resultado de la comparación. Si es cierta o, ZF se pone a 1; si no se pone a 0. Se pueden realizar semáforos multivalor, y utilizar las instrucciones wait y signal desde múltiples procesos que pretendan compartir un recurso simultáneamente.

MOV EBX. IDENT_DUEÑO
BUCLE
XOR EAX. EAX
LOCK CMPCHG DUEÑO_SEMAFORO. EBX
JNZ BUCLE       ; Si está ocupado por otro, espera.
(Semáforo adquirido: realización de la operación protegida)
MOV DUEÑO_SEMAFORO. 0
                ; Se libera el semáforo.

Nuevas instrucciones a nivel de sistema

El 486 tiene cuatro nuevas instrucciones especificas para él, que no existen en el 386. tres de ellas están relacionadas con la caché interna que incorpora el 486 para datos y código. La cuarta se refiere a la caché de la tabla de páginas.

Carga y almacenamiento de registros de prueba MOV TRn, reg32

Como en el 486 existen tres nuevos registros relacionados con la caché interna, la función MOV también puede acceder a ellos.

Invalidación del contenido de la caché INVD

Con esta se invalida totalmente el contenido de la caché interna y se genera un ciclo de bus para indicar que a su vez las cachés externas deban invalidar sus contenidos. La instrucción se ejecuta en cuatro ciclos de reloj.

Invalidación de la caché previa actualización de la memoria WBINVD

Con esta se invalida totalmente el contenido de la caché interna y se genera dos ciclos de bus la primera indica a las cachés de tipo de escritura obligada que deberán actualizar la memoria principal. Para indicar a la segunda que a su vez las cachés externas deban invalidar sus contenidos. La instrucción se ejecuta en 5 ciclos de reloj.

Invalidación de una entrada de la TLB (Translation Loackside Buffer)

Genera una dirección virtual a partir del operando dado e invalida la correspondiente entrada de la caché de la tabla de páginas, la TLB. Invalida la entrada de la TLB que referencia a la página que incluye la dirección del operando en memoria dado. Esta instrucción codifica como INVLPG m y se ejecuta en doce ciclos.

Registros de prueba de la TLB

Los registros de prueba son una parte formal de la arquitectura 386 tenía para el arqueo del TLB (TR6 Y TR7). El 486 añade otros tres registros más de 32 bits para el control del buen funcionamiento de la caché interna del procesador.

El registro TR6 no se ha modificado respecto al del 386. El TR7añade algunos bits más. Estos son:

Registros de prueba de la caché interna

A todos se accede mediante instrucciones MOV ingresadas a nivel de mayor privilegio (cero).

TR4

TR5

Tipos de datos

Enlaces externos