Motorola 68881

Unidad de punto flotante de computadora
Unidad de potencia de arranque Motorola 68881

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.

Descripción general

Una unidad de potencia de fusión Motorola 68882

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.

Arquitectura

Registros de la serie Motorola 68881/68882
7 9...6 3...0 0(posición de bit)
Registros de punto flotante
±exponentemantisaFP0
±exponentemantisaFP1
±exponentemantisaFP2
±exponentemantisaFP3
±exponentemantisaFP4
±exponentemantisaFP5
±exponentemantisaFP6
±exponentemantisaFP7
 3 1...2 3...1 5...0 7...0 0(posición de bit)
Registro de control
 00Habilitar excepciónControl de modoFPCR
Registro de estado
 CondiciónCocienteEstado de excepciónExcepción acumuladaFPSR
Registro de direcciones de instrucciones
 Dirección de 32 bitsFPIA

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.

68882

Matriz de Motorola 68882

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.

Uso

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 .

Versiones

68881

  • 155.000 transistores en chip
  • Versión de 12 MHz
  • La versión de 16 MHz funcionó a 160 k FLOPS
  • La versión de 20 MHz funcionó a 192 kFLOPS
  • La versión de 25 MHz funcionaba a 240 kFLOPS

68882

  • 176.000 transistores en chip
  • La versión de 25 MHz funcionaba a 264 kFLOPS
  • La versión de 33 MHz funcionaba a 352 kFLOPS
  • La versión de 40 MHz funcionaba a 422 kFLOPS
  • La versión de 50 MHz funcionaba a 528 kFLOPS

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.

Legado

A partir del Motorola 68040 , se incluyó soporte de punto flotante en la propia CPU.

Referencias

  1. ^ Sterling, Thomas; Anderson, Matthew; Brodowicz, Maciej (2017). Computación de alto rendimiento: sistemas y prácticas modernas. Morgan Kaufmann. pág. 459. ISBN 978-0-12-420158-3.
  2. ^ Resumen técnico del coprocesador de punto flotante HCMOS MC68881 (PDF) , Manual de referencia de la familia MC68000, Motorola
  3. ^ ab Boys, Robert (6 de enero de 1996). "Preguntas frecuentes (FAQ) comp.sys.m68k". faqs.org . Consultado el 23 de junio de 2023 .
  4. ^ Resumen técnico del coprocesador de punto flotante HCMOS MC68882 (PDF) , Manual de referencia de la familia MC68000, Motorola
Notas
  • freescale.com - Manual de referencia del programador de la familia MC68000 de Motorola
Obtenido de "https://es.wikipedia.org/w/index.php?title=Motorola_68881&oldid=1188208711"