FPU 測試
- 1. FPU 簡介
- 2. 協處理器控制寄存器(CPACR)
- 3. 開啟FPU
- 4. 驗證FPU(Julia 分形實驗)
1. FPU 簡介
FPU 即浮點運算單元(Float Point Unit)。浮點運算,對于定點 CPU(沒有 FPU 的 CPU)來說必須要按照 IEEE-754 標準的算法來完成運算,是相當耗費時間的。而對于有 FPU 的 CPU 來說,浮點運算則只是幾條指令的事情,速度相當快(數十倍甚至上百倍的運算性能)。
2. 協處理器控制寄存器(CPACR)
設置 CP11 和 CP10 這 4 個位的值都為 0,禁止訪問協處理器(禁止了硬件 FPU)。
設置 CP11 和 CP10 這 4 個位的值都為 1,完全訪問協處理器(開啟硬件 FPU),此時便可以使用內置的硬件 FPU 了。
3. 開啟FPU
從程序可以看出,只要定義全局宏定義標識符__FPU_PRESENT(CPU是否帶 FPU 功能)
以及__FPU_USED(是否開啟 FPU 功能)
為 1,那么就可以開啟硬件 FPU。?
默認是定義了
__FPU_PRESENT
為 1,接下來只要設置__FPU_USED
為 1 即可,方法如下:
雖然經過上圖設置后,已經開啟硬件FPU了,但是在代碼里面還是灰色(不用關心)。
4. 驗證FPU(Julia 分形實驗)
開啟硬件 FPU,未設置Use MicroLIB(位于Target 選項卡),Julia 分形圖片速度比未開啟硬件FPU快大概 9 倍左右;
開啟硬件 FPU,設置Use MicroLIB(位于Target 選項卡),Julia 分形圖片速度比未開啟硬件FPU快大概 17 倍左右;