Unidad de computación de punto flotante

La unidad de cálculo de punto flotante o unidad de punto flotante ( FPU , del inglés " floating - point u nit ", literalmente "unidad de punto flotante " [1] ) es un tipo de procesador que se caracteriza por estar especializado en realizar operaciones matemáticas de punto flotante calculos _

La mayoría de las operaciones de cálculo realizadas por la FPU son aritmética simple (como la suma y la multiplicación ), pero algunas FPU también pueden realizar cálculos exponenciales o trigonométricos (como la extracción de raíces o el cálculo de senos ).

Actualmente, la FPU se implementa típicamente como un microprocesador monolítico y, a menudo, cuando es un coprocesador matemático de la CPU , se integra junto con la CPU en el mismo circuito integrado .

Descripción

En muchas arquitecturas de computadoras personales y sistemas superiores, la FPU y la CPU están integradas en el mismo circuito integrado ; sin embargo, muchos microcontroladores para aplicaciones integradas no implementan la FPU de forma nativa.

En el pasado, la implementación de la FPU se lograba a través de un coprocesador que se instalaba en la placa base de la computadora. En las microcomputadoras , la FPU podría ser una placa de expansión completa y, en las primeras computadoras, podría consistir en un gabinete completo que se agregaría al sistema.

No todas las arquitecturas implementan la FPU pero esto no prohíbe la ejecución de operaciones de punto flotante ya que estas se realizan a través de la emulación. La emulación permite simplificar el diseño del procesador al reducir los transistores y por lo tanto el costo del sistema. Por otro lado, la emulación es mucho más lenta que la ejecución por hardware y por tanto penaliza considerablemente la ejecución. La emulación se puede realizar a nivel de microcódigo , sistema operativo o programa a nivel de usuario.

Muchas microarquitecturas de procesadores separan físicamente la ejecución de punto flotante de la ejecución de enteros. Esta separación se debe a la presencia de instrucciones específicas para números de punto flotante y registros específicos para albergar números de punto flotante. Esto proviene de las opciones de diseño arquitectónico. Por ejemplo, la arquitectura x86 tiene registros, instrucciones y potencialmente incluso un reloj separado para la FPU, ya que inicialmente era un componente externo al procesador y, por lo tanto, esta era la solución más lógica.

Las operaciones de punto flotante a menudo se realizan a través de tuberías . En las primeras arquitecturas superescalares que no podían ejecutar instrucciones fuera de orden , las operaciones de coma flotante y las operaciones de enteros se ingresaban en la misma canalización y se separaban solo en la fase de ejecución real. Los procesadores modernos a menudo implementan varias unidades de cómputo de coma flotante para aumentar el rendimiento.

A menudo, las FPU están especializadas, las unidades se dividen en operaciones rápidas o lentas. Las operaciones rápidas (como sumas y multiplicaciones) las realiza una unidad especializada, mientras que las operaciones más lentas (como divisiones, raíces cuadradas, etc.) las realiza otra unidad.

En muchas arquitecturas, las funcionalidades de la FPU son proporcionadas por la unidad que también maneja las instrucciones SIMD multimedia .

FPU adicionales

Desde principios de la década de 1980 hasta mediados de la de 1990 , IBM PC y las computadoras personales compatibles permitieron agregar la FPU a través de un coprocesador opcional. Esto permitió contener el costo pero no limitar el rendimiento de los cálculos científicos.

El IBM PC XT y los compatibles 8088 y 8086 basados ​​en Intel tenían un zócalo para el coprocesador 8087 . Los AT de Intel 80286 e Intel 80386 tenían el zócalo para los coprocesadores 80287 y 80387 .

Con la llegada de los procesadores Intel 80486 la unidad de cómputo de coma flotante se integró en el procesador central y por lo tanto el zócalo FPU desapareció de las placas base . Las únicas computadoras con zócalos FPU eran las basadas en Intel 80486SX, un procesador pequeño y sin FPU. Dado el pequeño mercado de las FPU 80486, Intel nunca desarrolló un coprocesador matemático real para 80486. El Intel 80487 era en realidad un procesador 80486 completo que, una vez instalado, desactiva por completo al otro procesador.

Además de Intel, muchas otras empresas desarrollaron FPU para procesadores x86 . Las empresas incluyen a Cyrix , que desarrolló FPU de alto rendimiento que eran totalmente compatibles con X86 y Weitek , que desarrolló FPU que eran muy potentes pero no totalmente compatibles con X86 FPU.

Las FPU externas no son solo una característica de los procesadores Intel, muchas otras familias optaron por fabricar FPU externas en los primeros modelos de procesador. La familia más conocida es la Motorola 68000 que fue utilizada por máquinas fabricadas por Sun Microsystems , Apple , Commodore , Atari y otras. A menudo, la FPU estaba presente como estándar en las máquinas de gama alta, mientras que en las máquinas de gama baja el zócalo tampoco estaba presente. Motorola no produjo una FPU para cada familia, pero produjo dos FPU genéricas, la Motorola 68881 y la 68882 , que podían ser controladas por los procesadores Motorola 68020 y 68030 . A partir del 68040 se integraba la FPU en el procesador aunque había versiones de bajo coste sin FPU que podían con las externas.

Notas

  1. ^ en los países anglosajones, se usa un punto en lugar de una coma como separador decimal

Artículos relacionados

Otros proyectos