¿Que es?
En las arquitecturas informáticas de propósitos generales más
modernos, uno o más FPU están integrados con la CPU, sin embargo muchos
procesadores integrados, diseños especialmente los más viejos, no tienen
soporte de hardware para operaciones de punto flotante.
En el pasado, algunos sistemas han implementado en coma flotante
a través de un coprocesador en lugar de como una unidad integrada, en la era de
microordenador, este fue en general un único circuito integrado, mientras que
en los sistemas más antiguos que podría ser una placa de circuito entero o un
armario.
No todas las arquitecturas de ordenador tienen una FPU hardware.
En la ausencia de una FPU, muchas funciones FPU pueden ser emuladas, lo que
ahorra el costo de hardware añadido de una FPU pero es significativamente más
lento. Emulación se puede implementar en cualquiera de varios niveles: en la
CPU como micro código, como una función del sistema operativo, o en el código
de espacio de usuario.
En las arquitecturas informáticas más modernas, hay una cierta
división de operaciones de punto flotante de operaciones con enteros. Esta
división varía significativamente en la arquitectura, y algunos, como el Intel
x86 han dedicado registros de coma flotante, mientras que algunos lo toman en
cuanto a sistemas de cronometraje independientes.
Operaciones de punto flotante son a menudo pipeline. En
anteriores arquitecturas superescalares sin salida general de ejecución de
órdenes, operaciones de punto flotante a veces segmentado por separado de las
operaciones con enteros. Desde mediados de la década de 1990 y principios y,
muchos microprocesadores para ordenadores de sobremesa y servidores tienen más
de una FPU.
Cuando la CPU está ejecutando un programa que requiere una
operación de punto flotante, hay tres maneras de llevarlo a cabo:
- · Un emulador de unidad de coma flotante
- · Add-on FPU
- · Integrado FPU
Biblioteca de punto flotante
Algunos dispositivos de punto flotante sólo es compatible con
los más simples operaciones de suma, resta y multiplicación. Pero incluso el
hardware de punto flotante más complejo dispone de un número finito de
operaciones que puede soportar, por ejemplo, ninguno de ellos apoyan
directamente la aritmética de precisión arbitraria.
Cuando la CPU está ejecutando un programa que requiere una operación
de punto flotante no soportado directamente por el hardware, la CPU utiliza una
serie de operaciones de punto flotante más simples. En los sistemas sin ningún
tipo de hardware de punto flotante, la CPU lo emula el uso de una serie de
operaciones aritméticas de punto fijo más simples que se ejecutan en la unidad
lógica aritmética de enteros.
El software que enumera la serie de operaciones necesaria para
emular las operaciones de punto flotante a menudo se envasa en una biblioteca
de punto flotante.
Integrado FPU
En algunos casos, FPU pueden ser especializados, y se dividen
entre las operaciones de punto flotante más simples y operaciones más
complicadas, como la división. En algunos casos, sólo las operaciones simples
pueden ser implementadas en hardware y/o microcódigo, mientras que las
operaciones más complejas se implementan como rutinas de código máquina.
En algunas arquitecturas actuales, la funcionalidad FPU se
combina con las unidades para llevar a cabo SIMD cálculo; un ejemplo de esto es
el reemplazo de las instrucciones x87 establecidos con el conjunto de
instrucciones SSE en la arquitectura x86-64 utilizado en nuevos procesadores
Intel y AMD.
Add-on FPU
En la década de 1980, era común en el IBM PC/microcomputadoras
compatibles para la FPU ser totalmente independiente de la CPU, y por lo
general se vende como un complemento opcional. Sólo se puede comprar si es
necesario para acelerar o permitir que los programas de matemáticas de obra.
El IBM PC, XT, y la mayoría de los sistemas compatibles basadas
en el 8088 o el 8086 tuvieron un enchufe para la opción 8087 coprocesador. Los
sistemas basados en AT y 80.286 fueron en general socketed para el 80287 y
máquinas basadas 80386/80386SX para el 80387 y 80387SX respectivamente, aunque
los primeros se socketed para el 80287, el 80387, ya no existía todavía.
Comenzando con el i486, en chips x86 de la unidad de coma
flotante se integró con la CPU, algo que ocurre con casi todos los procesadores
posteriores de arquitectura x86. Una excepción notable es el i486SX, sino que
también era inusual en que ningún coprocesador real estaba disponible. Los
primeros ejemplos de la i486SX era una CPU completa con una FPU integrado; Si
durante la prueba de hardware de la FPU de un chip i486 fallaron mientras que
el resto del hardware de la CPU pasa la FPU se desactiva y el chip se empaqueta
como un i486SX costo más bajo. Si el rendimiento de los chips de i486DX eran lo
suficientemente altos, una FPU completamente de trabajo sería tener
discapacidades físicas para satisfacer las demandas de la i486SX. Fichas
Finalmente i486SX fueron fabricados específicamente sin la FPU en el dado. Más
tarde juntas donde las fichas i486SX se sueldan directamente a la placa, no fue
posible sustituir todo el chip con un chip i486DX completamente funcional. En
cambio el chip i487SX fue puesto como el coprocesador de estas placas que
tenían enchufes coprocesador. En realidad el chip i487SX era un i486 completa
de la viruta que se desactiva por completo el chip i486SX original y se hizo
cargo de todas las operaciones de la CPU de la placa. El i487SX eléctricamente
era casi idéntica a la i486SX. La única diferencia era un pin adicional cuyo
único propósito era para desactivar el i486SX existente cuando se instala. El
i487SX podría ser utilizado como un sustituto i486DX por el recorte de la
patilla adicional.
Además de la serie x87 de Intel, varias otras compañías fabrican
co-procesadores de la serie x86. Entre ellas Cyrix que comercializa su serie
FasMath como un mayor rendimiento, pero totalmente compatible x87 y Weitek que
ofrecía un alto rendimiento, pero no plenamente series x87 compatibles de
coprocesadores.
Además de las arquitecturas Intel, FPU como coprocesadores
estaban disponibles para la línea de la familia Motorola 68000. Estos FPU, el
68881 y el 68882, eran comunes en Motorola 68020/68030 estaciones de trabajo
basadas en como la serie Sun 3. También se añaden comúnmente a los modelos de
gama alta de Apple Macintosh y el Commodore Amiga serie, pero a diferencia de
los sistemas compatibles con IBM PC, enchufes para añadir el coprocesador no
eran tan comunes en los sistemas de gama más baja. Con el 68040, Motorola
integrado FPU y CPU, pero al igual que la serie x86, un menor costo 68LC040 sin
FPU integrado también estaba disponible.
Además, hay complemento unidades coprocesador FPU para las
unidades de microcontrolador/ordenador de una placa ", que sirven para
proporcionar capacidad de cálculo en coma flotante en los sistemas que podrían
no poseer otra forma dicha funcionalidad. La diferencia en estos tipos de
coprocesadores FPU, cuando se compara con coprocesadores de punto flotante más
tradicionales, tales como la serie de 80x87, es que estos FPU complemento no
son de acogida-independiente del procesador, poseen sus propios requisitos de
programación, y, a menudo se proporcionan con su propios entornos de desarrollo
integrados.
Resumen y ejemplo
Una Unidad de Punto
Flotante (coprocesador matemático): es un componente de la CPU
especializado en el cálculo de operaciones en coma flotante. Las operaciones
básicas que toda puede realizar son las
aritméticas, si bien algunos sistemas más complejos son capaces también de
realizar cálculos trigonométricos o exponenciales.
Información extra: (Las otras partes de un microprocesador)
El registro del
microprocesador: es una memoria de alta velocidad que almacena valores
usados en operaciones matemáticas.
La Unidad de control
("cerebro del microprocesador"): Es la encargada de activar o
desactivar los diversos componentes del microprocesador en función de la
instrucción que el microprocesador esté ejecutando y en función también de la
etapa de dicha instrucción que se esté ejecutando. Existen dos tipos de
unidades de control, las cableadas y las microprogramadas.
La Unidad Aritmético
Lógica: es un circuito digital que calcula operaciones aritméticas y
operaciones lógicas.