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 2

So oft wie möglich MAC-Operationen einsetzen

Ein weiterer wesentlicher Fortschritt des Cortex-M7 gegenüber dem Cortex-M4 besteht darin, dass MAC-Operationen statt 2 bis 4 nur noch 1 Taktzyklus benötigen. Multiplikationen und Additionen benötigen dagegen beim M7 genauso wie beim M4 1 oder 2 Taktzyklen abhängig davon, ob das Ergebnis im darauffolgenden Befehl benutzt wird (2 Taktzyklen) oder nicht (1 Taktzyklus).

Die Strategie beim Cortex-M4 kann daher nur lauten, soviele diskrete Additionen oder Multiplikationen wie möglich zu verwenden und diese so anzuordnen, dass Pipeline-Stalls verhindert werden, also ein Ergebnis möglichst mit der nächsten Instruktion nicht genutzt wird.

Beim Cortex-M7 kann der Ansatz dagegen nur lauten, soviele MAC-Operationen wie möglich einzusetzen.

Die Tabelle zeigt wiederum identischen Code einmal für Cortex-M4 und einmal für Cortex-M7 optimiert.

 

Cortex-M4 Cortex-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; d2 = b2 * xn1;
tmp1 = b1 * xn1; xn6 = pln[5];
acc1 + = d1; d1 + = a1 * acc1;
d1 + = d2; xn7 = pln[6];
d2 = b2 * xn1; d2 + = a2 * acc1;
tmp1 = d1 * acc1;  
tmp2 = a2 * acc1;  
d1 + = tmp1;  
d2 + = tmp2;  

Beim Cortex-M7 sollte man so oft wie möglich MAC-Operationen einsetzen.



  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