Floating Point Fun on Cortex-M Processors

Posted by hasheddan 4 days ago

Counter59Comment6OpenOriginal

Comments

Comment by Neywiny 2 days ago

Interesting. I was just thinking about this because of another post on floating point. I'm wondering if I can disable the fpu every so often and turn it on only if code needs it and it raises an exception.

Comment by glitchc 2 days ago

It's unclear why one would ever need to do this. Is it for power savings? What other use-cases would benefit from turning the FPU off between instructions?

Comment by russdill 2 days ago

There is overhead, and applications that don't use the FPU avoid that overhead. https://www.netbsd.org/docs/kernel/lazyfpu.html

Comment by Neywiny 2 days ago

Yes, for power savings. But I'd need to do a bit of a study on my code to see if it's even worth it. Since the majority of it doesn't use the FPU, it could help. But it might not be worth the effort.

Comment by bobmcnamara 2 days ago

Yes, you could turn it off every context switch.

Comment by summa_tech 2 days ago

Zephyr support lazy FPU context switches. So the downside from enabling FPU sharing is fairly limited.