Che cos'è il bit-banding?


16

Sto leggendo il manuale di riferimento ARM Cortex M3 e compaiono i concetti "bit-band", "bit-band region" e "bit-band alias".

Che cos'è il bit-banding?


Ho dedicato una pagina github per spiegare cos'è il bit-banding, come funziona e come usarlo. Credo che risponda alla maggior parte delle domande sul bit-banding, sentitevi liberi di (ri) vederlo.

Questa è una pratica introduzione sulla funzione di bit-banding in ARM Cortex M3 atadiat.com/en/articles/…
tawil

Risposte:


8

Il centro informazioni ARM si riferisce al bit-banding nella loro documentazione Cortex-M3 e -M4, ai documenti del compilatore e in alcuni altri luoghi, come Home> Modello di programmatori> Bit-banding . Da Home> Sviluppo software per Cortex-M3> Bit-banding :

Il bit-banding mappa una parola di memoria completa su un singolo bit nell'area bit-band. Ad esempio, la scrittura su una delle parole alias imposterà o cancellerà il bit corrispondente nell'area bitband.

Sembra essere un modo per ottenere operazioni atomiche a bit singolo.

Quando si scrive nelle regioni alias il bit 0 della parola a 32 bit viene utilizzato per impostare il valore nella regione di banding bit. La lettura dell'indirizzo alias restituirà il valore dalla regione della banda di bit nel bit 0 e gli altri bit verranno cancellati.


Hai idea di come le operazioni bit-band vengono eseguite internamente e quali sono le garanzie reali per quanto riguarda l'atomicità? Se avessi progettato un chip per facilitare le operazioni atomiche di bit-set o bit-clear, avrei usato due dei bit dell'indirizzo superiore per selezionare tra 'accesso normale' (00), 'scrivere uno' (01) e 'scrivere zero' (1x). Inoltre, vorrei che la CPU inverti il ​​suo output di dati quando quei bit di indirizzo erano 0x11. In questo modo, i bit potevano essere impostati o cancellati in un ciclo, senza necessità di una lettura-modifica-scrittura. Anche se i bit sarebbero impostati dall'hardware contemporaneamente alla scrittura, ...
supercat

1
Basta seguire i collegamenti, ya bums.
tyblu

1
@AlKepp, Scrivere un po 'su molti dei sistemi che ho usato è veramente atomico con una singola istruzione per eseguire l'atto che non può essere interrotto.
Kortuk,

1
@AlKepp, non stavo cercando di implicare che esistessero sistemi che non potevano farlo con un'istruzione atomica. Hai detto: "Scrivere un po 'non può essere veramente atomico". Non ero d'accordo con questa affermazione. Ho usato molti sistemi in cui è atomico e esistono.
Kortuk,

3
@AlKepp, Cortex M3 è un esempio di più di un microcontrollore. L'importanza per me è che non puoi dire che le istruzioni atomiche non esistano se lo fanno spesso. Molte persone qui realizzano sistemi embedded con risorse sufficientemente basse da contenere la memoria interna, in realtà è l'unico sistema su cui mi piace codificare. A parte questo, dire a qualcuno che non esiste quando lo fa ed è comunemente usato può fuorviare.
Kortuk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.