Qu'est-ce que le bit-banding?

16

Je lis le manuel de référence ARM Cortex M3 et les concepts "bit-band", "bit-band region" et "bit-band alias" apparaissent.

Qu'est-ce que le bit-banding?

Randomblue
la source
J'ai dédié une page github pour expliquer ce qu'est le bit-banding, comment cela fonctionne et comment l'utiliser. Je crois qu'il répond à la plupart des questions sur le bit-banding, n'hésitez pas à le (re) visionner.
Ceci est une introduction pratique sur la fonctionnalité de bande de bits dans ARM Cortex M3 atadiat.com/en/articles/…
yahya tawil

Réponses:

8

Le centre d'informations ARM fait référence à la bande de bits dans leur documentation Cortex-M3 et -M4, la documentation du compilateur et quelques autres endroits, comme Accueil> Modèle de programmeur> Bande de bits . De la maison> Développement de logiciels pour Cortex-M3> Bande de bits :

La bande de bits mappe un mot de mémoire complet sur un seul bit dans la région de bande de bits. Par exemple, l'écriture dans l'un des mots alias définira ou effacera le bit correspondant dans la région de la bande binaire.

Cela semble être un moyen d'obtenir un fonctionnement atomique sur un seul bit.

Lors de l'écriture dans les régions d'alias, le bit 0 du mot de 32 bits est utilisé pour définir la valeur dans la région de bande de bits. La lecture de l'adresse d'alias renverra la valeur de la région de bande binaire dans le bit 0 et les autres bits seront effacés.

tyblu
la source
Avez-vous une idée de la façon dont les opérations en bande binaire sont effectuées en interne et quelles sont les véritables garanties en matière d'atomicité? Si je concevais une puce pour faciliter les opérations de définition de bits atomiques ou d'effacement de bits, j'utiliserais deux des bits d'adresse supérieurs pour choisir entre «accès normal» (00), «écrire ceux» (01) et «écrire des zéros» (1 fois). De plus, le CPU inverserait sa sortie de données lorsque ces bits d'adresse étaient 0x11. De cette façon, les bits pouvaient être mis à zéro ou effacés en un cycle, sans avoir besoin d'une lecture-modification-écriture. Même si les bits étaient définis par le matériel simultanément à l'écriture, ...
supercat
1
Suivez simplement les liens, ya bums.
Tyblu
1
@AlKepp, Écrire un peu sur la plupart des systèmes que j'ai utilisés est vraiment atomique avec une seule instruction pour effectuer l'acte qui ne peut pas être interrompu.
Kortuk
1
@AlKepp, je n'essayais pas d'impliquer qu'il y avait des systèmes qui ne pouvaient pas faire cela avec une instruction atomique. Vous avez dit: "Écrire un peu ne peut pas être vraiment atomique." Je n'étais pas d'accord avec cette affirmation. J'ai utilisé de nombreux systèmes où il est atomique et ils existent.
Kortuk
3
@AlKepp, le Cortex M3 est un exemple de plus d'un microcontrôleur. L'importance pour moi est que vous ne pouvez pas dire que les instructions atomiques n'existent pas si elles le font souvent. Beaucoup de gens ici font des systèmes embarqués qui ont suffisamment de ressources pour que la mémoire soit interne, c'est en fait le seul système sur lequel j'aime coder. Cela mis à part, dire à quelqu'un qu'il n'existe pas quand il existe et qu'il est couramment utilisé peut induire en erreur.
Kortuk