Articulo de referencia

Motorola 68881

FPU Motorola 68881 Los Motorola 68881 y Motorola 68882 son unidades de punto flotante (FPU) utilizadas en algunos sistemas informáticos junto con los microprocesadores Motorola ...

FPU Motorola 68881

Los Motorola 68881 y Motorola 68882 son unidades de punto flotante (FPU) utilizadas en algunos sistemas informáticos junto con los microprocesadores Motorola 68020 o 68030 de 32 bits . Estos coprocesadores son chips externos, diseñados antes de que las operaciones de punto flotante se convirtieran 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 punto flotante Motorola 68882

Las CPU 68020 y 68030 se diseñaron teniendo en cuenta el chip independiente 68881. 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 generaban una excepción , transfiriendo el control al sistema operativo . Si no había una FPU en el sistema, el sistema operativo podía llamar a un emulador de FPU para ejecutar el equivalente de la instrucción mediante código de software basado en enteros del 68020, devolver un error al programa, finalizar el programa o provocar un fallo y requerir un reinicio.

Arquitectura

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, incluyendo punto flotante de precisión simple, punto flotante de doble precisión, punto flotante de precisión extendida, 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 están definidos por el estándar de punto flotante IEEE 754. Fue diseñado específicamente para aritmética de punto flotante y no es una CPU de propósito general. Por ejemplo, cuando una instrucción requiere cálculos de direcciones, la CPU principal los maneja antes de que el 68881 tome el control.

El par CPU/FPU está diseñado para que ambos puedan funcionar simultáneamente. 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 ejecutando la siguiente instrucción.

68882

Matriz de Motorola 68882

El 68882 es una versión mejorada del 68881, con una 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 algunos materiales de marketing que ejecuta algunas instrucciones un 40 % más rápido que un 68881 a la misma velocidad de reloj; la mejora de rendimiento típica es más modesta.

El 68882 es compatible a nivel de pines con el 68881 y puede usarse como reemplazo directo en la mayoría de los sistemas. La incompatibilidad de software más importante radica en que el 68882 utiliza un marco de estado FSAVE más grande, lo que afecta a UNIX y otros sistemas operativos multitarea con prioridad, que tuvieron que modificarse para asignarle más espacio.

Uso

El 68881 o 68882 se usaron en las estaciones de trabajo Sun Microsystems Sun-3 , estaciones de trabajo IBM RT PC , familia Macintosh II , NeXT Computer , X68000 , Amiga 3000 , Convergent Technologies MightyFrame, Atari Mega STE , TT y Falcon . Algunos productos de terceros para Amiga y Atari, incluido el CMI PAMC-500, [ 5 ] usaron el 68881 o 68882 como un periférico mapeado en memoria para el 68000 .

Versiones

68881

  • 155.000 transistores en el chip
  •  versión de 12 MHz
  • La versión de 16  MHz funcionaba a 160.000 FLOPS.
  • La versión de 20  MHz funcionaba a 192 kFLOPS.
  • La versión de 25  MHz funcionaba a 240 kFLOPS.

68882

  • 176.000 transistores en el 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 los 68882 de 16  MHz y 20  MHz, aunque estos chips sí se produjeron.

Legado

A partir del Motorola 68040 , la compatibilidad con coma flotante se incluyó en la propia CPU.

Referencias

  1. Sterling, Thomas; Anderson, Matthew; Brodowicz, Maciej (2017). High Performance Computing: Modern Systems and Practices . Morgan Kaufmann. p.  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. 1 2 Boys, Robert (1996-01-06). "Preguntas frecuentes (FAQ) comp.sys.m68k" . faqs.org . Recuperado el 23-06-2023 .
  4. Resumen técnico del coprocesador de punto flotante HCMOS MC68882 (PDF) , Manual de referencia de la familia MC68000, Motorola
  5. "Acelerador de procesador (PAMC-500)" . Base de datos de hardware de Amiga . Consultado el 30 de diciembre de 2025 .
Notas
  • freescale.com - Manual de referencia del programador de la familia Motorola MC68000