ARM TechCon 2014 Kann ARMs Cortex-M7 einen DSP ersetzen?

ARMs weitverbreiteter MCU-Core Cortex-M4 hat limitierte DSP-Fähigkeiten, welche beim Cortex-M7 deutlich ausgebaut wurden. Ein DSP-Guru erklärte, ob man mit ihm tatsächlich diskrete DSPs ersetzen kann.

ARMs Cortex-M4 erbte seine DSP-Fähigkeiten weitestgehend vom alten ARM9E. Gegenüber dem Cortex-M3 war dies ein großer Schritt, im Vergleich zu diskreten DSPs sind die Fähigkeiten eher limitiert.

Mit dem neuen Cortex-M7, den wir Ihnen schon ausführlich vorgestellt haben, wurden die DSP-Fähigkeiten deutlich verbessert.

Dr. Paul Beckmann, Gründer und CTO von DSP-Concepts, einer Firma aus dem kalifornischen Santa Clara, die auf Algorithem für digitale Signalverarbeitung spezialisiert ist und nach unseren Informationen u.a. mit deutschen Auto-OEMs wie BMW, Audi oder Porsche für deren Audio-Systeme zusammenarbeitet und für ARM eine DSP-Bibliothek entwickelt hat, erklärte die Fortschritte in einem Vortrag im Detail.

Zunächst sind dort die harwareseitigen Fortschritte (Tabelle 1), welche die Verarbeitung beschleunigen. So unterstützt der M7 z.B. Schleifen mit sogenanntem "Zero Overhead", was bedeutet, dass eine Schleife der Art

loop:
  mac.a r4,r5
  agn0 loop

in nur 10 Taktzyklen genau 10 MAC-Operationen ausführen kann. Desweiteren können parallel Lade-/Speicher-Operationen und Berechnung ausgeführt werden, was zu einem veränderten Programmiermodell führen sollte, dazu später mehr.

Was im Vergleich zu einem diskreten DSP noch fehlt, sind die Ringpuffer-und Bit-Reverse-Adressierung.

Für viele Algorithmen (besonders Filter) ist ein Ringpuffer im Speicher nötig. Um die Implementierung eines solchen Puffers zu erleichtern, gibt es in diversen DSPs die Ringpuffer-Adressierung. Die Bit-Reversed-Adressierung ist nützlich, um FFTs (Fast Fourier Transformationen) zu implementieren. Da das Endergebnis solcher Transformationen „bit-reversed“ sind, kann diese Adressierung dazu verwendet werden, die errechneten Daten in brauchbarer Form im Speicher abzulegen. Es ist also nicht nötig, die Bits mit zusätzlichen Befehlen zu korrigieren und Speicherinhalte auszutauschen.

Beckmann erklärte allerdings, das die Bibliothek von DSP-Concepts diese Defizite durch hocheffiziente Algorithmen kompensieren könne. Der M7 ist laut seiner Aussage in sehr vielen Fällen dazu geeignet, herkömmliche 2-Chip-Designs (MCU + DSP) auf nur noch einen Chip (MCU mit Cortex-M7) zu migrieren und damit BOM-Kosten und Leiterplattenplatz zu sparen.

 Cortex-M4Cortex-M7DSP
MAC-Operationen in 1 TaktzyklusNur FestkommaFestkomma
und Gleitkomma
Ja
Gleitkomma-ZahlenJaJaJa
gebrochene ZahlenJaJaJa
SättigungsarithmetikJaJaJa
Laden/Speichern parallel
zu arithmetischen Berechnungen
NeinJaJa
SIMD-OperationenJaJaJa
Zero-Overhead-SchleifenNeinJaJa
Akkumulator mit SchutzbitsNeinNeinJa
Ringpuffer-AdressierungNeinNeinJa
Bit-Reversed-AdressierungNeinNeinJa
Vergleich der Eigenschaften von Cortex-M4, Cortex-M7 und traditionellem DSP hinsichtlich digitaler Signalverarbeitung.