Wat is bit-banding?

Ik lees de ARM Cortex M3 referentiehandleiding en de concepten “bit-band “,” bit-band regio “en” bit-band alias “verschijnen.

Wat is bit-banding?

Reacties

  • Ik heb een github-pagina gewijd om uit te leggen wat bit-banding is, hoe het werkt en hoe het te gebruiken. Ik denk dat het de meeste vragen over bit-banding beantwoordt, voel je vrij om het (opnieuw) te bekijken.
  • Dit is een handige introductie over bit-banding-functie in ARM Cortex M3 atadiat.com/en/articles/…

Antwoord

Het ARM-informatiecentrum verwijst naar bit-banding in hun Cortex-M3- en -M4-documentatie, compilerdocumenten en een paar andere plaatsen, zoals Home> Programmeursmodel> Bitbanding . Van Home> Software ontwikkelen voor Cortex-M3> Bitbanding :

Bitbanding wijst een compleet woord geheugen toe aan een enkele bit in het bitbandgebied. Als u bijvoorbeeld naar een van de aliaswoorden schrijft, wordt de overeenkomstige bit in het bitbandgebied ingesteld of gewist.

Het lijkt een manier te zijn om een enkele bit atomaire bewerking.

Bij het schrijven naar de aliasregios wordt bit 0 van het 32-bits woord gebruikt om de waarde in te stellen op de bitbandregio. Het lezen van het aliasadres retourneert de waarde van het bit-bandgebied in bit 0 en de andere bits worden gewist.

Opmerkingen

  • Heb je enig idee hoe bitband-bewerkingen intern worden uitgevoerd, en wat de echte garanties zijn met betrekking tot atomiciteit? Als ik een chip zou ontwerpen om atomische bit-set- of bit-clear-bewerkingen mogelijk te maken, zou ik twee van de bovenste adresbits gebruiken om te kiezen tussen ' normale toegang ' (00), ' schrijf enen ' (01), en ' schrijf nullen ' (1x). Bovendien heb ik ' de CPU zijn gegevensuitvoer laten omkeren als die adresbits 0x11 waren. Op die manier kunnen bits in één cyclus worden ingesteld of gewist, zonder dat een read-change-write nodig is. Zelfs als bits gelijktijdig met het schrijven door hardware zouden worden ingesteld, …
  • Volg gewoon de links, ya bums.
  • @AlKepp, een beetje schrijven op veel van de systemen die ik hebben gebruikt is echt atomair met een enkele instructie om de handeling uit te voeren die niet kan worden onderbroken.
  • @AlKepp, ik probeerde niet te suggereren dat er systemen waren die dit niet konden doen met een atomaire instructie. U zei: " Het schrijven van een bit kan niet echt atomisch zijn. " Ik was het niet eens met deze bewering. Ik heb veel systemen gebruikt waar het atomair is en ze bestaan.
  • @AlKepp, De Cortex M3 is een voorbeeld van meer een microcontroller. Het belang voor mij is dat je niet kunt zeggen dat atoominstructies niet bestaan als ze dat vaak doen. Veel mensen hier doen aan embedded systemen die zo weinig bronnen hebben dat het geheugen intern is, het is eigenlijk het enige systeem waarop ik graag codeer. Afgezien daarvan kan iemand vertellen dat het niet bestaat wanneer het wel bestaat en vaak wordt gebruikt, kan misleiden.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *