We got "Profile Running Layout" on AWE CORE (Hifi4) and found Delay module seemed to take a lot of clocks( more than 1MHz. Please refer the attached file) .
We used 80 to 100 Delay modules then it took 80-100MHz.
Why Delay module took so many clocks? Did we make some mistakes (to get profile or to lay out Delay modules)?
PS. Max Delays were defined as 150 - 250 samples.
Your profiling screenshot looks ok to me, probably not error there.
The numbers don't see abnormal to me. What CPU consumption were you expecting for the delay module?
Thank you for your prompt response.
>> What CPU consumption were you expecting for the delay module?
To my understanding, the Delay modules dose only store and restore data to/from a circular buffer. So I don't think It consumes CPU clocks.
However the Delay module seems to take about 20 cycles per sample.
(my AWE project ran with fs=48000 and the Delay consumed 1MHz --> it took about 20 cycles per sample ( 1MIPS / 48000 ) (assumed 1 MHz == 1MIPS ).
Do you have any TIPS to reduce CPU load of Delay modules?
Please let me know if my understanding is wrong.
Thank you very much.
Here is some pseudo code to demonstrate the CPU load of the delay module:
value = *readPtr;
readPtr circularly update;
*writePtr = value;
writePtr circularly update;
Hopefully this explains it clearly.