Este artículo necesita citas adicionales para su verificación . ( junio de 2017 ) |
Los Motorola 68881 y Motorola 68882 son unidades de coma flotante (FPU) que se utilizan en algunos sistemas informáticos junto con los microprocesadores 68020 o 68030 de 32 bits de Motorola . Estos coprocesadores son chips externos, diseñados antes de que la matemática de coma flotante se convirtiera en estándar en las CPU. El Motorola 68881 se presentó en 1984. [1] El 68882 es una versión de mayor rendimiento producida posteriormente.
Las CPU 68020 y 68030 se diseñaron teniendo en mente el chip 68881 independiente. Sus conjuntos de instrucciones reservaban las instrucciones de la "línea F", es decir, todos los códigos de operación que comenzaban con el dígito hexadecimal "F" podían enviarse a un coprocesador externo o usarse como "trampas" que lanzarían una excepción y entregarían el control al sistema operativo de la computadora . Si no hay una FPU presente en el sistema, el sistema operativo llamaría a un emulador de FPU para ejecutar el equivalente de la instrucción utilizando el código de software basado en números enteros 68020, devolvería un error al programa, terminaría el programa o se bloquearía y requeriría un reinicio.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
El 68881 tiene ocho registros de datos de 80 bits (una mantisa de 64 bits más un bit de signo y un exponente con signo de 15 bits). [2] Permite siete modos diferentes de representación numérica, incluidos punto flotante de precisión simple, punto flotante de precisión doble, punto flotante de precisión extendida, números enteros como cantidades de 8, 16 y 32 bits y un formato decimal codificado en binario de punto flotante . Los formatos de punto flotante binario son los definidos por el estándar de punto flotante IEEE 754. Fue diseñado específicamente para matemáticas de punto flotante y no es una CPU de propósito general. Por ejemplo, cuando una instrucción requiere cálculos de dirección, la CPU principal los maneja antes de que el 68881 tome el control.
El par CPU/FPU está diseñado de tal manera que ambos puedan ejecutarse al mismo tiempo. Cuando la CPU encuentra una instrucción 68881, le entrega a la FPU todos los operandos necesarios para esa instrucción y luego la FPU libera a la CPU para que continúe y ejecute la siguiente instrucción.
El 68882 es una versión mejorada del 68881, con mejor segmentación y, eventualmente, disponible a velocidades de reloj más altas . [3] [4] Su conjunto de instrucciones es exactamente el mismo. Motorola afirmó en alguna literatura de marketing que ejecuta algunas instrucciones un 40% más rápido que un 68881 a la misma velocidad de reloj, aunque esto no reflejaba el rendimiento típico, como se ve por su mejora más modesta en la tabla siguiente. El 68882 es compatible con pines con el 68881 y se puede usar como reemplazo directo en la mayoría de los sistemas. La incompatibilidad de software más importante es que el 68882 usa un marco de estado FSAVE más grande, lo que afecta a UNIX y otros sistemas operativos multitarea preventivos que tuvieron que modificarse para asignarle más espacio.
El 68881 o 68882 se utilizaron en las estaciones de trabajo Sun Microsystems Sun-3 , las estaciones de trabajo IBM RT PC , la familia Apple Computer Macintosh II , NeXT Computer , Sharp X68000 , Amiga 3000 , Convergent Technologies MightyFrame, Atari Mega STE , TT y Falcon . Algunos productos Amiga y Atari de terceros utilizaron el 68881 o 68882 como periférico asignado a la memoria del 68000 .
Estas estadísticas provienen de las preguntas frecuentes de comp.sys.m68k. [3] No se enumeran estadísticas para el 68882 de 16 MHz y 20 MHz, aunque estos chips efectivamente se produjeron.
A partir del Motorola 68040 , se incluyó soporte de punto flotante en la propia CPU.