Vad är bitbanding?

Jag läser referenshandboken ARM Cortex M3 och begreppen ”bit-band ”,” bit-band region ”och” bit-band alias ”visas.

Vad är bit-banding?

Kommentarer

  • Jag har tillägnat en github-sida för att förklara vad bitbanding är, hur det fungerar och hur man använder det. Jag tror att det svarar på de flesta frågor om bitbanding, kolla gärna igen det.
  • Detta är en praktisk introduktion om bitbanding-funktionen i ARM Cortex M3 atadiat.com/en/articles/…

Svar

ARM-informationscenter hänvisar till bitbanding i deras Cortex-M3- och -M4-dokumentation, kompilerdokument och några andra platser, som Hem> Programmerarmodell> Bitbanding . Från Hem> Utveckla programvara för Cortex-M3> Bitbanding :

Bit-banding mappar ett komplett minnesord på en enda bit i bit-bandregionen. Till exempel kommer att skriva till ett av aliasorden att ställa in eller rensa motsvarande bit i bitbandregionen.

Det verkar vara ett sätt att bli singel bit atomisk operation.

När du skriver till aliasregionerna används bit 0 i 32-bitarsordet för att ställa in värdet vid bitbandområdet. Att läsa från aliasadressen returnerar värdet från bitbandsområdet i bit 0 och de andra bitarna rensas.

Kommentarer

  • Har du någon aning om hur bitbandade operationer utförs internt och vilka verkliga garantier är med avseende på atomicitet? Skulle jag utforma ett chip för att underlätta atombit- eller bit-clear-operationer skulle jag använda två av de övre adressbitarna för att välja mellan ' normal åtkomst ' (00), ' skriv de ' (01) och ' skriv nollor ' (1x). Dessutom har jag ' d att CPU inverterar sin datautgång när dessa adressbitar var 0x11. På det sättet kan bitar ställas in eller rensas i en cykel utan behov av en läs-modifier-skriv. Även om bitar skulle ställas in av hårdvara samtidigt med skrivningen, …
  • Följ bara länkarna, ya bums.
  • @AlKepp, skriver lite på många av de system jag har använt är verkligen atomär med en enda instruktion för att utföra den handling som inte kan avbrytas.
  • @AlKepp, jag försökte inte antyda att det fanns system som inte kunde göra detta med en atominstruktion. Du sa, " Att skriva lite kan inte vara riktigt atomärt. " Jag håller inte med detta påstående. Jag har använt många system där det är atomärt och de existerar.
  • @AlKepp, Cortex M3 är ett exempel på mer av en mikrokontroller. Vikten för mig är att du inte kan säga att atominstruktioner inte finns om de ofta gör det. Många här gör inbyggda system som är tillräckligt låga resurser för att minnet är internt, det är faktiskt det enda systemet jag tycker om att koda på. Bortsett från det kan det vara vilseledande att berätta för någon att det inte finns när det finns och ofta används.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *