Una unidad de coma flotante (adaptación del inglés floating-point unit o literalmente traducido unidad de punto flotante) o, también conocido como coprocesador matemático[1], es un componente de la unidad central de procesamiento especializado en el cálculo de operaciones en coma flotante. Las operaciones básicas que toda FPU puede realizar son la suma y multiplicación usuales, si bien algunos sistemas más complejos son capaces también de realizar cálculos trigonométricos o exponenciales.
No todas las unidades centrales de procesamiento tienen una FPU dedicada como, por ejemplo, gran parte de los microprocesadores de Intel Corporation y Motorola Incorporated hasta finales de 1980[2]. En ausencia de FPU, la CPU puede utilizar programas en microcódigo para emular una función en coma flotante a través de la unidad aritmético lógica (ALU), la cual reduce el coste del hardware a cambio de una sensible pérdida de velocidad.
En algunas arquitecturas, las operaciones en coma flotante se tratan de forma completamente distinta a las operaciones enteras, con registros dedicados y tiempo de ciclo diferentes. Incluso para operaciones complejas, como la división, podrían tener un circuito dedicado a dicha operación.
Hasta mediados de la década de 1990, era común que las CPU no incorporasen una FPU en los ordenadores domésticos, sino que eran un elemento opcional conocido como coprocesador. Ejemplos podrían ser las FPUs 387 y 487 que se utilizaban en las unidades centrales de procesamiento Intel 80386 e Intel 80486SX (el modelo 80486DX ya incluía el coprocesador de serie) en máquinas Intel Pentium, o la FPU 68881 utilizada en las unidades centrales de procesamiento 680x0 en ordenadores Macintosh.
Cabe destacar que en los países anglosajones, numéricamente se hace uso del punto como separador de unidades en vez de la reconocida internacionalmente en el Sistema Internacional de Unidades, la coma, por esa razón la traducción más correcta sería "unidad de coma flotante" porque sus operaciones desplazan la coma de los decimales.
Procesadores numéricos