Was ist Bit-Banding?

16

Ich lese das ARM Cortex M3- Referenzhandbuch und die Begriffe "Bit-Band", "Bit-Band-Region" und "Bit-Band-Alias" werden angezeigt.

Was ist Bit-Banding?

Zufälliges Blau
quelle
Ich habe eine Github-Seite gewidmet , um zu erklären, was Bit-Banding ist, wie es funktioniert und wie es verwendet wird. Ich glaube, es beantwortet die meisten Fragen zum Thema Bit-Banding. Sie können es jederzeit (erneut) anzeigen.
Dies ist eine praktische Einführung in die Bit-Banding-Funktion in ARM Cortex M3. Atadiat.com/en/articles/…
yahya tawil

Antworten:

8

Das ARM-Info-Center verweist in der Dokumentation zu Cortex-M3 und -M4, in den Compiler-Dokumenten und an einigen anderen Stellen auf Bit-Banding . From Home> Software für Cortex-M3 entwickeln> Bit-Banding :

Bit-Banding ordnet ein vollständiges Wort des Speichers einem einzelnen Bit in der Bit-Band-Region zu. Wenn Sie beispielsweise in eines der Alias-Wörter schreiben, wird das entsprechende Bit im Bitband-Bereich gesetzt oder gelöscht.

Es scheint ein Weg zu sein, eine Einzelbit-Atomoperation zu erhalten.

Beim Schreiben in die Alias-Regionen wird Bit 0 des 32-Bit-Wortes verwendet, um den Wert in der Bit-Band-Region festzulegen. Das Lesen von der Aliasadresse gibt den Wert aus dem Bitbandbereich in Bit 0 zurück und die anderen Bits werden gelöscht.

Tyblu
quelle
Haben Sie eine Vorstellung davon, wie Bit-Band-Operationen intern ausgeführt werden und welche tatsächlichen Garantien in Bezug auf die Atomizität bestehen? Würde ich einen Chip entwerfen, um atomare Bit-Set- oder Bit-Clear-Operationen zu ermöglichen, würde ich zwei der oberen Adressbits verwenden, um zwischen "normalem Zugriff" (00), "Einsen schreiben" (01) und "Nullen schreiben" zu wählen. (1x). Außerdem hätte ich die CPU ihre Datenausgabe invertieren lassen, wenn diese Adressbits 0x11 wären. Auf diese Weise können Bits in einem Zyklus gesetzt oder gelöscht werden, ohne dass ein Lesen, Modifizieren und Schreiben erforderlich ist. Auch wenn Bits von der Hardware gleichzeitig mit dem Schreiben gesetzt würden, ...
supercat
1
Folgen Sie einfach den Links, ya Penner.
Tyblu
1
@AlKepp, Ein bisschen auf viele der Systeme zu schreiben, die ich benutzt habe, ist wirklich atomar mit einer einzigen Anweisung, um den Vorgang auszuführen, der nicht unterbrochen werden kann.
Kortuk
1
@AlKepp, ich wollte nicht andeuten, dass es Systeme gibt, die dies mit einer atomaren Anweisung nicht können. Sie sagten: "Ein bisschen schreiben kann nicht wirklich atomar sein." Ich war mit dieser Behauptung nicht einverstanden. Ich habe viele Systeme verwendet, in denen es atomar ist und die existieren.
Kortuk
3
@AlKepp, Der Cortex M3 ist ein Beispiel für einen Mikrocontroller. Die Wichtigkeit für mich ist, dass man nicht sagen kann, dass atomare Anweisungen nicht existieren, wenn sie es oft tun. Viele Leute hier machen eingebettete Systeme, deren Ressourcen so niedrig sind, dass der Speicher intern ist. Es ist tatsächlich das einzige System, auf dem ich gerne programmiere. Abgesehen davon kann es irreführend sein, wenn man jemandem sagt, dass es nicht existiert, wenn es existiert und üblicherweise verwendet wird.
Kortuk