Mark's Magic Multiply
6 days ago
- #embedded-systems
- #floating-point
- #optimization
- 该文章讨论了在嵌入式处理器上实现高效的单精度浮点数乘法,并着重于定制的RISC-V扩展。
- 文章比较了不同的实现方案:一个16周期的版本使用mul和mulh组合以追求最优的正确性,另一个采用16位乘法的33周期版本,以及Mark Owen提出的巧妙方法——使用两次32位乘法实现30周期的解决方案。
- Mark Owen的方法通过两次乘法计算23x23位乘积,界定误差范围并高效地进行校正,从而在保证精度的同时有效减少了计算周期。
- 作者探讨了硬件设计中的权衡(例如顺序执行与专用乘法器的取舍)以及扩展到双精度乘法的可能性。