https://dspconcepts.com/sites/default/files/pd8_beckmann.pdf
Verder op in praatje laten ze toch wel zien dat % CPU usage wel mee lijkt te vallen voor een m4 CPU. Is echter wel voor systeem met maar 2 kanaals op 48kHz. Daarintegen weer helemaal afhankelijk wat je met het audio systeem wilt doen, maar ongetwijfeld zal dat altijd verder "evolueren"
Een DSP heeft meer ALUs, meer data paths met fijnmazigere instructies, meerdere geheugenbanken, en vaak ook ingewikkelde memory modussen zoals indirect addressing met stride (R1+R2*[stride]). Uiteindelijk wel iets meer moeite om een algoritme te mappen met zoveel % hardware utilization. Echter op CPUs heb je vaak die mogelijkheid niet eens. Daar moet bvb fetch, compute, store, inc counter, compare&branch altijd achter elkaar gebeuren. Korte loops op een ARM CPU gaat bijna altijd 2 instructies per iteratie kosten.
Je kan wat spelen met loop unrolling en software pipelining, maar dat is ook zeer eindig (afhankelijk hoeveel registers je hebt..). CPUs zijn gemaakt om general purpose programmaatjes te draaien. Programmaatjes die gemiddeld elke 5 instructies een branch instructie hebben, 40% van hun tijd data aan het verplaatsen zijn, en daardoor zijn CPUs vol worden gepropt met HW om on-the-fly hazards oplossen, branch predictors, pipelines, en caches.
Dat soort technologie zie je in DSPs ook wel terug (eveneens als integer SIMD op ARM Cortex m4+), maar die halen hun kracht met name uit meer rekenhardware en "for good measure" dedicated FIR/IIR/FFT hardware units (zie Analog Devices DSPs). Wat betreft energie efficiëntie zal een DSP met schouders boven een gemiddelde CPU staan.
Als je zoiets uittikt voor een FPGA, heb je het min of meer ook direct voor een ASIC, en kan je zelfs met een goedkope FPGA parallellisatie opschalen tot het belachelijke. Vorig jaar een simpel matrix algoritme ~2000x versneld tussen een ATMEGA328 en een Cyclone V FPGA. Ik schat dat zelfs tussen een pittige ARM Cortex CPU en de FPGA er wel een factor 300 a 400 overeind blijft staan.
Als je het dan ook nog in een functionele HDL doet kan je veel algoritmes waarschijnlijk ook nog eens in paar regeltjes opschrijven