Co to jest pasmowanie bitów?

16

Czytam instrukcję obsługi ARM Cortex M3 i pojawiają się pojęcia „pasmo bitowe”, „region pasma bitowego” i „alias pasma bitowego”.

Co to jest pasmowanie bitów?

Randomblue
źródło
Poświęciłem stronę github, aby wyjaśnić, co to jest pasmowanie bitów, jak to działa i jak go używać. Wierzę, że odpowiada na większość pytań na temat pasmowania bitów, nie krępuj się (ponownie) wyświetlić.
Jest to przydatne wprowadzenie na temat funkcji pasmowania bitów w ARM Cortex M3 atadiat.com/en/articles/…
yahya tawil

Odpowiedzi:

8

Centrum informacyjne ARM odnosi się do pasmowania bitów w dokumentacji Cortex-M3 i -M4, dokumentacji kompilatora i kilku innych miejscach, takich jak Strona główna> Model programisty> Pasmo bitów . From Home> Tworzenie oprogramowania dla Cortex-M3> Pasmowanie bitów :

Pasmowanie bitów odwzorowuje pełne słowo pamięci na jeden bit w regionie pasma bitów. Na przykład zapisanie jednego ze słów aliasu spowoduje ustawienie lub usunięcie odpowiedniego bitu w obszarze pasma bitów.

Wydaje się, że jest to sposób na uzyskanie jednobitowej operacji atomowej.

Podczas zapisywania w regionach aliasowych bit 0 32-bitowego słowa jest używany do ustawienia wartości w regionie pasmowania bitów. Odczyt z adresu aliasu zwróci wartość z regionu pasma bitów w bicie 0, a pozostałe bity zostaną wyczyszczone.

tyblu
źródło
Czy masz pojęcie, jak operacje w paśmie bitowym są wykonywane wewnętrznie i jakie są prawdziwe gwarancje dotyczące atomowości? Gdybym projektował układ w celu ułatwienia operacji atomowego ustawiania lub czyszczenia bitów, użyłbym dwóch górnych bitów adresu, aby wybrać pomiędzy „normalnym dostępem” (00), „zapisz je” (01) i „zapisz zera” (1x). Ponadto chciałbym, aby procesor odwrócił dane wyjściowe, gdy te bity adresu miały wartość 0x11. W ten sposób bity mogą być ustawiane lub usuwane w jednym cyklu, bez potrzeby odczytu-modyfikacji-zapisu. Nawet jeśli bity byłyby ustawiane sprzętowo jednocześnie z zapisem, ...
supercat
1
Po prostu podążaj za linkami, stary.
tyblu,
1
@AlKepp, Pisanie trochę na wielu używanych przeze mnie systemach jest naprawdę atomowe z pojedynczą instrukcją do wykonania czynności, której nie można przerwać.
Kortuk
1
@AlKepp, nie próbowałem sugerować, że istnieją systemy, które nie mogłyby tego zrobić za pomocą instrukcji atomowej. Powiedziałeś: „Pisanie odrobiny nie może być naprawdę atomowe”. Nie zgadzałem się z tym twierdzeniem. Użyłem wielu systemów, w których jest on atomowy i one istnieją.
Kortuk
3
@AlKepp, Cortex M3 jest przykładem więcej mikrokontrolera. Dla mnie ważne jest to, że nie można powiedzieć, że instrukcje atomowe nie istnieją, jeśli często się zdarzają. Wiele osób korzysta z systemów wbudowanych, które mają wystarczająco mało zasobów, aby pamięć była wewnętrzna, w rzeczywistości jest to jedyny system, na którym lubię pisać. Poza tym powiedzenie komuś, że nie istnieje i kiedy jest powszechnie używane, może wprowadzić w błąd.
Kortuk