Einchipmikrorechner und Signalprozessoren/Testfragen

Aus II-Wiki
Zur Navigation springen Zur Suche springen

Warum gibt es beim DSP mehrere Befehle und beim EµR nur einen Befehl zum Vergleichen?

Eigenschaften EµR DSP
Vergleichsarten:
 CMP A, B
 CMPEQ A, B, Ziel
 CMPLT A, B, Ziel
 CMPGT A, B, Ziel

Warum gibt es beim DSP nur eine Möglichkeit Sprünge zu bedingen, während es beim EµR mehrere Möglichkeiten gibt?

Eigenschaften EµR DSP
Sprungarten:
 JMP cc_EQ, Label
 JMP cc_SLT, Label
 JMP cc_SGT, Label
 [A] B Label

Interrupt Abfrage beim EµR

Durch

 xxIC.IR ; Interrupt Request

kann man abfragen, ob ein Interrupt ausgelöst wurde. z.B.

 JB T6IC.IR, Label ; Bit = 1 wenn Timer T6 seinen Interrupt auslöst

Problem:

Wenn ein Interrupt ausgelöst wird, wird das IR-Bit gesetzt. Vor dem Ausführen des nächsten Befehls werden die IR-Bits überprüft und im nächsten Befehl sofort die zugehörige ISR aufgerufen. Nach deren Abarbeitung der ISR ist das IR-Bit wieder zurückgesetzt.

Frage:

Was bringt eine Abfrage des IR-Bit im Hauptprogramm, wenn es eh immer 0 ist?

Sprünge beim DSP

  • Wann wird von wo nach wo gesprungen?
  1:     B m0
  2:     NOP
  3:     B m1
  4: m0: NOP
  5:     NOP
  6:     NOP
  7:     NOP
  8:     NOP
  9: m1: NOP
 10:     NOP
  • Warum haben Sprünge die theoretisch schon nach einem Takt abgearbeitet seinen können fünf Delay-Slots?

Parallelität beim DSP

  • Ist follgende Parallelisierung möglich?
    [A1]  .L1 ADD A1, A1, A1
 || [!A1] .L1 SUB A1, A1, A1
  • Wieviel Befehle können maximal parallel ausgeführt werden? Wodurch werden sie begrenzt?
  • Wieviel Befehle passen in ein VLIW?