Hvad er bit-banding?

Jeg læser ARM Cortex M3 referencehåndbog og begreberne “bit-band “,” bit-band region “og” bit-band alias “vises.

Hvad er bit-banding?

Kommentarer

  • Jeg har dedikeret en github-side for at forklare, hvad bit-banding er, hvordan det fungerer, og hvordan man bruger det. Jeg tror, det besvarer de fleste spørgsmål om bit-banding, er du velkommen til at (gen) se det.
  • Dette er en praktisk introduktion om bit-banding-funktion i ARM Cortex M3 atadiat.com/en/articles/…

Svar

ARM-infocenter refererer til bit-banding i deres Cortex-M3- og -M4-dokumentation, compiler-dokumenter og et par andre steder, f.eks. Startside> Programmeringsmodel> Bit-banding . Fra Startside> Udvikling af software til Cortex-M3> Bit-banding :

Bit-banding kortlægger et komplet ord af hukommelse på en enkelt bit i bit-band-regionen. For eksempel vil skrivning til et af aliasordene indstille eller rydde den tilsvarende bit i bitbåndsregionen.

Det ser ud til at være en måde at blive enkelt på bit atomisk operation.

Når der skrives til aliasregionerne, bruges bit 0 i 32 bit ordet til at indstille værdien til bitbåndsregionen. Læsning fra aliasadressen returnerer værdien fra bitbåndsregionen i bit 0, og de andre bits ryddes.

Kommentarer

  • Har du nogen idé om, hvordan bitbåndsoperationer udføres internt, og hvad de reelle garantier er med hensyn til atomicitet? Var jeg ved at designe en chip for at lette atom-bit-sæt eller bit-clear operationer, ville jeg bruge to af de øverste adressebit til at vælge mellem ' normal adgang ' (00), ' skriv dem ' (01) og ' skriv nuller ' (1x). Derudover har jeg ' d CPUen inverteret sin dataoutput, når disse adressebit var 0x11. På den måde kunne bits indstilles eller ryddes i en cyklus uden behov for en read-modify-write. Selvom bits ville blive indstillet af hardware samtidig med skrivningen, …
  • Bare følg linkene, ya bums.
  • @AlKepp, skriver lidt på mange af de systemer, jeg har brugt er virkelig atomisk med en enkelt instruktion til at udføre den handling, der ikke kan afbrydes.
  • @AlKepp, jeg forsøgte ikke at antyde, at der var systemer, der ikke kunne gøre dette med en atominstruktion. Du sagde, " At skrive lidt kan ikke være virkelig atomisk. " Jeg var uenig i denne påstand. Jeg har brugt mange systemer, hvor det er atomært, og de findes.
  • @AlKepp, Cortex M3 er et eksempel på mere af en mikrocontroller. Vigtigheden for mig er, at du ikke kan sige, at atominstruktioner ikke findes, hvis de ofte gør det. Mange mennesker her har indlejrede systemer, der er lave nok ressourcer til, at hukommelsen er intern, det er faktisk det eneste system, jeg nyder at kode på. Bortset fra det at fortælle nogen, at det ikke eksisterer, når det gør og ofte bruges, kan vildlede.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *