We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
The Cortex-M4F has separate hardware for integer and floating-point arithmetic. Both integer and floating-point divide instructions take up to 12 clock cycles to complete. I've verified that integer instructions immediately following a VDIV are able to execute simultaneously while the VDIV is finishing. However, the reverse does not seem to be true - i.e., floating-point instructions immediately following an integer divide (SDIV or UDIV) must wait for the divide to complete before the floating-point instructions proceed. Does anyone know why the you can't overlap the execution of an integer divide with the execution of floating-point instructions?
Thanks!
Dan
I am pretty sure it is a pipeline thing. I remember a Doulos webinar explaining the CM4 pipeline, but I am not sure if there is a public version.