Espressif SoC에서 FPU(Floating Point Unit, 부동소수점 연산 장치)에 대하여
이 블로그는 Espressif SoC에서 FPU(Floating Point Unit, 부동소수점 연산 장치)가 무엇인지, 왜 중요한지, 어떤 칩에 포함되어 있는지, 그리고 성능에 어떤 영향을 주는지를 설명합니다. 특히 ESP32-S3, ESP32-P4 같은 칩은 하드웨어 FPU를 지원해 빠른 연산이 가능하고, ESP32-C3 같은 칩은 소프트웨어로 연산을 처리해 느리지만 정확성을 유지합니다.
원문 : Floating-Point Units on Espressif SoCs: Why (and when) they matter · Developer Portal
Floating-Point Units on Espressif SoCs: Why (and when) they matter
In this article, you’ll learn what an FPU is, why it’s useful, which Espressif SoCs feature one, and how it impacts performance through a benchmark.
developer.espressif.com
1. 서론
- FPU는 소수점이 포함된 숫자(부동소수점) 연산을 담당하는 프로세서의 일부입니다.
- 그래픽, 신호 처리, 과학적 계산 등 정밀한 수치가 필요한 분야에서 필수적입니다.
- 일부 칩(ESP32-S3)은 하드웨어로 지원하지만, 다른 칩(ESP32-C3)은 소프트웨어로 처리합니다.
2. 부동소수점 이해
- 정수(Integer)는 메모리에 직접 값이 저장되지만 범위가 제한됩니다.
- 부동소수점(Float, Double)은 부호(Sign), 지수(Exponent), 가수(Mantissa)로 구성되어 매우 큰 값과 작은 값, 소수까지 표현할 수 있습니다.
- IEEE 754 표준은 이러한 표현 방식을 규정합니다.
3. 연산 방식
- FPU가 있는 CPU**: 덧셈, 곱셈, 제곱근 같은 연산을 하드웨어 명령으로 빠르게 처리.
- FPU가 없는 CPU**: 정수 연산으로 부호, 지수, 가수를 직접 다루며 복잡한 과정을 거쳐야 함.
- Espressif는 `newlibc` 라이브러리를 사용해 소프트웨어적으로 정확한 연산을 보장합니다.
4. 성능과 정밀도
- FPU의 가장 큰 장점은 속도입니다.
- 수치 연산이 많은 DSP, 머신러닝, 3D 그래픽 같은 분야에서 큰 차이를 만듭니다.
- Espressif 칩의 FPU는 (float)만 지원하며, (double)는 여전히 소프트웨어로 처리됩니다.
5. FPU 포함 여부
- FPU가 있는 칩: ESP32, ESP32-S3, ESP32-H4, ESP32-P4
- FPU가 없는 칩: ESP32-C3, ESP32-C6
6. 벤치마크 결과
- 동일한 연산을 10,000번 반복했을 때,
- ESP32-S3(FPU 있음) : float 연산에서 최대 95% 속도 향상
- ESP32-C3(FPU 없음) : 같은 연산을 소프트웨어로 처리해 훨씬 많은 CPU 사이클 소모
| FPU | float | double | float | double | float | double | float | double | |
| ESP32C3 | ❌ | 100 | 122 | 102 | 133 | 2377 | 3560 | 3659 | 6074 |
| ESP32S3 | ✅ | 25 | 70 | 69 | 75 | 121 | 1619 | 312 | 3886 |
| Delta cycles | -75 | -52 | -33 | -58 | -2256 | -1941 | -3347 | -2188 | |
| Saving | 75% | 43% | 32% | 44% | 95% | 55% | 91% | 36% |
'ESPRESSIF' 카테고리의 다른 글
| ESP32 - ENABLE_SECURITY_DOWNLOAD eFuse의 역할 (0) | 2025.09.19 |
|---|---|
| ESP32 보안기능 - Secure boot V2 (0) | 2025.09.19 |
| [ESP32] 3종 제품 비교, ESP32-S3, ESP32-C3, ESP32-C5 (0) | 2025.09.05 |
| ESP32 IDF 기반 펌웨어 개발을 위한 주요 강좌 소개 (0) | 2025.09.05 |
| [ESP32] 펌웨어(Firmware) 라이팅 - 하드웨어 기본 연결 (0) | 2025.09.05 |







