本帖最后由 222zhumingming 于 2016-11-19 13:34 编辑 FPU 即浮点运算单元(Float Point Unit)。浮点运算,对于定点 CPU(没有 FPU 的 CPU)来说必须要按照 IEEE-754 标准的算法来完成运算,是相当耗费时间的。而对于有 FPU 的 CPU来说,浮点运算则只是几条指令的事情,速度相当快。STM32F7 属于 Cortex M7 架构,带有 32 位双精度硬件 FPU,支持浮点指令集,相对于Cortex M0 和 Cortex M3 等,高出数十倍甚至上百倍的运算性能。 STM32F7 硬件上要开启 FPU 是很简单的,通过一个叫:协处理器控制寄存器(CPACR)的寄存器设置即可开启 STM32F767 的硬件 FPU;和TI的Delfino系列的TMS320F28377S 进行对比。TI的TMS320F28377是浮点DSP控制器,主频200Mhz,具有200 – 400 MIPS 处理能力;为了对比准确性,多测试几个算法。 1::进行浮点FFT运算,比较浮点FFT的误差及时间快慢。 2:Julia 分形算法比较 Julia 分形即 Julia 集,它最早由法国数学家 Gaston Julia 发现,因此命名为 Julia(朱利亚)集。 Julia 集合的生成算法非常简单:对于复平面的每个点,我们计算一个定义序列的发散速度。该序列的 Julia 集计算公式为: 一旦计算出的复值超出给定圆的范围(数值大小大于圆半径),序列便会发散,达到此限值时完成的迭代次数与该点相关。随后将该值转换为颜色,以图形方式显示复平面上各个点的分散速度。这种算法非常有效地展示了 FPU 的优势。 |