486 | ||
---|---|---|
La parte inferior de un Intel 80486DX2 | ||
Información | ||
Tipo | serie de construcción | |
Desarrollador | Intel | |
Fabricante | ||
Fecha de lanzamiento | 1989 | |
Descontinuación | 1997 | |
Datos técnicos | ||
Frecuencia de reloj de CPU | 16MHz — 100MHz | |
Zócalos compatibles | Socket 1 | |
Velocidad de FSB | 16 — 50 | |
Longitud del canal MOSFET | 1µm — 0,6µm | |
Conjunto de instrucciones | x86 (IA-32) including x87 for DX models | |
Tipo de zócalo | Socket 1 | |
Empaquetados | ||
Los Intel 80486 (i486, 486) son una familia de microprocesadores de 32 bits con arquitectura x86 diseñados y fabricados por Intel Corporation y también fabricados mediante licencia o ingeniería inversa por otras empresas como IBM, Texas Instruments, AMD, Cyrix y Chips and Technologies con diseños distintos o clonados.
Los i486 son muy similares a sus predecesores, los Intel 80386. Las 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:
Existió un 80486 de 133 MHz fabricado por AMD denominado Am5x86-P75 que disponía de 16 KB de caché L1, arquitectura de 0,35 micras (contra las 0,6 micras de los modelos anteriores), un multiplicador de 4x y FSB de 33 MT/s, del cual se fabricaron también diferentes versiones con diferente voltaje y diferente encapsulación, de 3,3 V y 3,45 V, posibilitando una enorme capacidad para el overclock que le permitía subir hasta los 160 MHz, equiparando su rendimiento con el de un Pentium-90. Posteriormente AMD diseñó el Am5x86-P75+ de 150 MHz, 16 KB de caché L1, multiplicador 3x y FSB de 55 MT/s a 3,45 V, haciéndolo el procesador 80486 más potente jamás fabricado, del cual apenas se comercializaron unidades siendo un preciado objeto de colección entre aficionados.
El sucesor del microprocesador Intel 80486 es el Intel Pentium.
Hay varias variantes del diseño básico del i486, entre las que se encuentran:
Para no exigir mayor velocidad a las placas base, Intel introdujo la duplicación (y más tarde la triplicación) de frecuencia reloj dentro del integrado. Mientras el motherboard y sus comunicaciones con el microprocesador a través de sus pines se realizaba a la frecuencia del reloj, las operaciones internas del microprocesador se realizaban al doble (o al triple) de velocidad. De este modo los bloques de código cargados en la memoria caché interna alcanzaban un rendimiento mucho mayor, que bajaba a la mitad (o a un tercio) cuando accedía a la memoria RAM.
Intel designó con el sufijo «2» a los microprocesadores que empleaban duplicación de frecuencia de reloj. La frecuencia indicada en el microprocesador correspondía a la frecuencia ya duplicada. Por ejemplo, el 80486 DX2 de 66 MHz tenía un reloj de 33 MHz en el motherboard. El público no informado aceptó el sufijo «2» como un signo de superioridad, y se generalizó la creencia de que un 486 de 66 MHz duplicaba a 132 MHz. De manera aparentemente contradictoria, la mayoría de los test de velocidad mostraban que una PC con un microprocesador de 40 MHz (sin duplicación de velocidad) era más rápido que uno de 50 MHz (25 MHz con duplicación de velocidad).
De una manera sorprendente, Intel designó con el sufijo «4» en lugar de «3» a los microprocesadores que empleaban triplicación de frecuencia de reloj, lo que hacía al público no informado sobrestimar la capacidad de estos microprocesadores. De este modo, un 486 de 100 MHz tenía una frecuencia de reloj de 33 MHz, y la frecuencia triplicada llegaba a 99 MHz.
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.
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
Usa dos operandos del mismo tamaño 8, 16 o 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.
XADD OPLOP2
; OP2:=OP1
; OP1:= OP1 + OP2
IMOTEP ; OP3:=GATO
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
Necesita tres operandos del mismo tamaño 8, 16 o 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, ACUM ; Compara DEST con ACUM y, si son iguales, intercambia con ACUM
JEQ IGUALES ; Si la comparación fue igual (Zero Flag set), salta a IGUALES
; Si no son iguales, realiza la asignación ACUM = DEST
MOV ACUM, DEST
JMP FIN_PROGRAMA ; Salta al final del programa
IGUALES:
; Si son iguales, realiza la asignación DEST = ALGO
MOV DEST, ALGO
FIN_PROGRAMA:
; Fin del FIN_PROGRAMA
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.
El 486 tiene cuatro nuevas instrucciones específicas 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.
Como en el 486 existen tres nuevos registros relacionados con la caché interna, la función MOV también puede acceder a ellos.
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.
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.
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.
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:
A todos se accede mediante instrucciones MOV ingresadas a nivel de mayor privilegio (cero).