📌 Кратко
FPU (Floating Point Unit) — модуль в составе CPU, предназначенный для выполнения операций с числами с плавающей точкой (IEEE 754).
🧠 Как работает
FPU обрабатывает данные в формате float и double, недоступные для стандартной ALU. Выполняет:
- сложение, вычитание, умножение, деление
 - извлечение квадратного корня
 - сравнение и преобразование типов
 - округление и нормализацию
 
Работает параллельно с ALU через собственные исполнительные блоки и регистры. Некоторые архитектуры могут иметь несколько FPU на ядро или выделенный coprocessor.
⚙️ Где применяется
| Область | Примеры | 
|---|---|
| Scientific computing | Математическое моделирование, симуляции | 
| Graphics | 3D-преобразования, шейдеры, OpenGL | 
| Signal processing | FFT, фильтрация, DSP | 
| Machine learning | Операции с float32/float64 | 
| Games | Физика, анимация, расчёт столкновений | 
💻 Пример кода
#include <math.h>
 
double compute(double x) {
    return sqrt(x * x + 1.0); // вычисляется через FPU
}📐 Внутреннее устройство (упрощённо)
+-------------------------------+
|        Floating Point Unit    |
+-------------------------------+
|   FPU Registers (XMM, YMM)    |
|   Arithmetic Core (FADD, FMUL)|
|   Normalizer / Rounding Unit  |
|   Exception & Flag Logic      |
+-------------------------------+
         ↓
   Результат → [[Registers]] / [[Cache]]
✅ Преимущества
- 
Высокая точность и скорость операций с real-числами
 - 
Аппаратная реализация — быстрее программных библиотек
 - 
Параллелизм исполнения с ALU
 
❌ Недостатки
- 
Большая площадь кристалла и энергопотребление
 - 
Не всегда присутствует в простых Microcontrollers
 - 
Ошибки округления и переполнения (особенно в double → float)