Por Dario Alejandro Alpern
El 80387 fue superado por el 387DX, que fue introducido en 1989. El viejo 80387 era 20% más lento que el 387DX. El 80387 estába empaquetado en el formato PGA de 68 pines y estaba manufacturado con la tecnología CHMOS III de 1,5 micrones. La máxima velocidad del 80387 fue de 20 MHz. El 387DX es la segunda generación. Esta versión está realizada en un proceso CMOS más avanzado (tecnología CHMOS IV) que permite una frecuencia de 33 MHz. Algunas instrucciones se han mejorado mucho más que el 20% de promedio. Por ejemplo, la instrucción FBSTP es 3,64 veces más rápido que en el 80387.
El 387SX es el coprocesador que se aparea con el 386SX con un bus de datos de 16 bits, en vez de los 32 que tienen los anteriores. El 387SX tiene la misma unidad de ejecución que el 80387 original. Viene en formato PLCC (Plastic Leaded Chip Carrier) de 68 pines con una frecuencia máxima de 20 MHz.
El 387SL (que se introdujo en 1992) se diseñó para ser utilizado en sistemas junto con el 386SL en notebooks y laptops. Está realizado con la tecnología CHMOS IV estática (no se pierden los datos internos si se detiene el reloj) y tiene la misma unidad de ejecución que el 387DX.
FCOS: Calcula el coseno del valor en ST. El resultado reemplaza el valor anterior de ST.
FSINCOS: Calcula el seno y el coseno del valor en ST. Cuando se completa la instrucción, el valor de ST es el coseno del ST original, mientras que en ST(1) se encuentra el seno. Como se realiza una introducción en la pila, el valor que antes se encontaba en ST(1) ahora estará en ST(2).
FUCOM ST(i): Realiza una comparación entre el operando y ST. Si no se especifica parámetro se asume ST(1). Actualiza los indicadores de punto flotante como sigue:
Relación | C3, C2, C0 |
---|---|
No comparables | 111 |
ST > Fuente | 000 |
ST < Fuente | 001 |
ST = Fuente | 100 |
FUCOMP ST(i): Hace lo mismo que FUCOM ST(i) y luego elimina el elemento que está en el tope de la pila ST.
FUCOMPP: Hace lo mismo que FUCOM ST(1) y luego retira los dos elementos de la pila.
FPREM1: Es similar al instrucción FPREM del coprocesador 8087, pero cumple con la norma IEEE 754.
Las instrucciones FLENV y F[N]STENV necesitan ahora un espacio de 18 bytes de memoria y FRSTOR y F[N]SAVE necesitan 98 bytes en memoria. Esto se debe a que las direcciones que maneja el 80387 son de 32 bits (los anteriores manejan direcciones de 16 bits).