我正在研究一种不具有浮点硬件,但只有 16 位 ALU 和 40 位 MAC 的架构。
我已经在这个架构上的软件中实现了 32 位单精度浮点加法/减法、乘法、余弦、正弦、除法、平方根和范围缩减。
为了实现余弦和正弦,我首先使用KC NG 的论文“ARGUMENT REDUCTION FOR HUGE ARGUMENTS”中描述的方法使用范围缩减, 然后我实现了余弦和正弦函数,它们是余弦和正弦函数在范围 -pi 上的多项式逼近/4 到 +pi/4。我参考了 Hart 等人的《计算机近似》一书。为多项式。
我也听说我应该考虑CORDIC算法。但是,我想知道是否有人知道它是否比我已经使用的方法效率更高或更低(在吞吐量、内存开销和所需的指令数量方面)?我在多核架构上实现了我的软件功能,其中每个内核只有 128 个字的指令存储器和一个 128 个字的 16 位数据存储器。我还尝试搜索如何为余弦和正弦实现 CORDIC 算法,但我找不到任何用于 32 位浮点实现的好的资源。有人有建议吗?
谢谢!