ARM TechCon 2014

Kann ARMs Cortex-M7 einen DSP ersetzen?

2. Oktober 2014, 12:09 Uhr | Frank Riemenschneider
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Parallelisierbarkeit richtig ausnutzen

Die folgende Tabelle zeigt beispielhaft den Unterschied, wie man bei Cortex-M4 und M7 denselben Code effizient implementiert.

Beim M4 benötigen einzelne Lade- oder Speicheroperationen 2 Taktzyklen, N aufeinanderfolgende Lade- oder Speicheroperationen jedoch nur N+1 Taktzyklen. Der Entwickler sollte daher soviele Lade- oder Speicheroperationen zusammen bündeln, wie möglich.

Da beim Cortex-M7 Lade- und Speicheroperationen parallel zu arithmetischen Berechnungen erfolgen können und zudem einzelne Speicherzugriffe ohne zusätzlichen Taktzyklus erfolgen können, ist hier ein anderes Vorgehen sinnvoll, nämlich Speicherzugriffe mit Berechnungen so gut es geht zu mischen.

Die rechte Spalte der Tabelle zeigt den identischen M4-Code jedoch umgruppiert.

Cortex-M4Cortex-M7
xn1 = pln[0];  xn1 = pln[0];
xn2 = pln[1];  xn2 = pln[1];
xn3 = pln[2];  xn3 = pln[2];
xn4 = pln[3];  acc1= b0 * xn1 + d1;
xn5 = pln[4];  xn4 = pln[3];
xn6 = pln[5];  d1 = b1 * xn1 + d2;
xn7 = pln[6];  xn5 = pln[4];
acc1= b0 * xn1 + d1;  d2 = b2 * xn1;
d1 = b1 * xn1 + d2;  xn6 = pln[5];
d2 = b2 * xn1;  d1 + = a1 * acc1;
d1 + = a1 * acc1;  xn7 = pln[6];
d2 + = a2 * acc1;  d2 + = a2 * acc1;

Der Cortex-M7 erlaubt die parallele Verarbeitung von Speicher-Operationen und arithmetischen Berechnungen.



  1. Kann ARMs Cortex-M7 einen DSP ersetzen?
  2. Parallelisierbarkeit richtig ausnutzen
  3. So oft wie möglich MAC-Operationen einsetzen
  4. Das DSP-Ergebnis - Cortex-M7 schlägt Cortex-M4 deutlich

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu ARM Germany GmbH

Weitere Artikel zu Mikrocontroller