mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM Memory Barrier Instruktionen


Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei ARM gibt es die Instruktionen DMB (Data Memory Barrier) und DSB 
(Data Synchronization Barrier). Irgendwie verstehe ich nicht ganz den 
Unterschied. Aus den Erklärungen werde ich nicht ganz schlau: DMA - 
Ensure the order of observation of memory accesses, DSB - Ensure the 
completion of memory accesses.

Kann mir jemand den Unterschied erklären?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DMB: Speicheroperationen vor DMB werden aus externer Sicht (z.B. Bus, 
Speicherinterface) vor Speicheroperationen nach DMB ausgeführt. Das 
bedeutet jedoch nicht notwendigerweise, dass die Speicheroperationen 
zusammen mit DMB beendet sind.

DSB: Alle Speicheroperationen vor DSB sind abgeschlossen wenn dieser 
Befehl beendet ist und der nächste Befehl wird erst anschliessend 
ausgeführt.

Praktisch heisst das:

DMB trennt die Speicheroperationen in jene davor und jene danach, 
beeinflusst aber keine anderen Befehle. Beispiel: Wenn man erst einen 
DMA-Pufferbereich beschreibt bevor man mit einem weiteren Speicherbefehl 
diesen Pufferbereich zum Abschuss freigibt.

DSB kann beispielsweise dann erforderlich sein, wenn man etwas an der 
Art ändert, wie der Prozessor auf den Speicher zugreift, denn das sollte 
erst dann durchgeführt werden, wenn keine Speicheroperationen mehr 
anstehen.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man einen Punkt braucht, an dem alle Speicheroperationen davor 
abgeschlossen sein müssen und nachfolgende Speicheroperationen nicht 
vorgezogen werden dürfen, braucht man dann beide Befehle oder nur DSB?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Funktion von DMB ist in DSB implizit enthalten.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, okay! Vielen Dank!

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anders ausgedrückt: DMB stellt eine Barriere ausschliesslich für 
Speicheroperationen aus externer Sicht dar, DSB hingegen ist eine 
Barriere für alles, einschliesslich der Befehlsausführung des 
Prozessors.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.