Prawdopodobnie powiedział już różne sposoby w innych odpowiedziach. Ogólnie dzisiaj, ale niekoniecznie historycznie, bajt ma 8 bitów. Przez większość czasu mamy do czynienia z „bajtową pamięcią adresowalną”, co oznacza, że NAJMNIEJSZĄ rzeczą, do której możemy uzyskać dostęp za pomocą jednego adresu, jest bajt. Ale to nie znaczy, że jest to jedyna rzecz, do której możemy się odnieść. W zależności od platformy pojedynczy adres może być wykorzystany do uzyskania dostępu do bajtu, półsłowa / słowa (16 bitów), słowa / podwójnego słowa (32 bity) i tak dalej do 64 bitów. Instrukcja zasadniczo określa, jaki jest rozmiar pożądanego dostępu (8, 16, 32, 64 itd.) Zwykle w tych jednostkach 8, 16, 32, 64. Ale to nie jest trudne i szybkie, „zależy”.
Również w zależności od konstrukcji procesora i / lub systemu nie ma powodu, aby zakładać, że rozmiar dostępu jest wielkością pamięci lub wielkością najmniejszego dostępu. Przy coraz większych wymaganiach coraz bardziej sensowne staje się wdrażanie systemu pamięci przy użyciu najmniejszych rozmiarów. Komputer, na którym czytasz, prawdopodobnie używa 32-bitowej magistrali danych lub 64-bitowej magistrali danych dla wszystkich dostępów, chcesz odczytać jeden bajt, odczytuje 64-bit i odrzuca resztę bitów, dlaczego nic nie kosztuje, utrzymuj magistralę tak szeroką aż do rdzenia procesora, a procesor wybierze odpowiedni wiersz bajtów. kosztuje więcej logiki i / lub zegarów, aby zawęzić autobus lub przesuwać bajty po pasach bajtów (czasami jest to wykonywane). więc wewnętrzne suwaki w mikrokontrolerze mogą mieć szerokość 32 bitów, na przykład, jeśli ma to sens dla systemu. może być 16. Tak, w przypadku zapisów nagrywasz więcej cykli, musisz czytać, modyfikować i pisać gdzieś wzdłuż linii. Chcesz napisać jeden bajt na komputerze, gdzieś dzieje się odczyt 64-bitowy, a następnie gdzieś jeden bajt z tych 64 bitów jest modyfikowany, w zależności od tego, co zrobisz potem, że 64 bity mogą wrócić do dram tylko z tymi 8 bitami w odróżnieniu od tego, co było wcześniej, buforowanie i kod sprawiają, że nie jest to ogólna reguła. Zapisy są uruchamiane i zapominają, że kontroler pamięci może zbierać adres i dane z procesora i pozwolić procesorowi na kontynuowanie działania, podczas gdy ostatecznie zapisuje zegary zapisujące, być może więcej zegarów jest spalanych w trybie odczytu-modyfikacji-zapisu (jeśli już w pamięci podręcznej),
Istnieją dziś wyjątki od tego wszystkiego, być może istnieją instrukcje lub typy dostępu w niektórych systemach, które są adresowalne bitowo, są systemy, w których adres znajduje się w jednostkach innych niż bajt. Bajt nie zawsze był 8-bitowy i być może nadal działają systemy, które są prawdą (używaliśmy ósemkowego, a 9-bajtowe słowo 18- lub 36-bitowe ma sens dla programistów i projektantów układów, którzy myślą, że ósemkowe 8-bit ma sens dla myślicieli szesnastkowych).
Teraz komputer, na którym czytasz to, mimo że szyna danych dla tego kontrolera dram może mieć szerokość 32 lub 64 bity, sam moduł dram prawdopodobnie składa się z wielu części o szerokości 8 bitów, które można łatwo zobaczyć. Jeśli ma 8 lub 9 układów z jednej strony, prawdopodobnie jest to 64-bitowa lub 72-bitowa (64 bity plus 8 bitów ECC) szeroka szyna zaimplementowana z 8-bitowymi częściami. Jeśli masz 4 lub 5 żetonów po jednej stronie modułu, ale nadal masz mnóstwo pinów, oznacza to, że ma on szerokość 32 bitów (mało prawdopodobne w dzisiejszych czasach) lub 4 żetony mają szerokość 16 bitów, a jeśli jest 5, może to mieć 16 bitów szerokości i używanych jest tylko 8 lub jest to część o szerokości 8 bitów. Istnieją również części o szerokości 32 bitów, ale najczęściej występuje szerokość 8 bitów. Bardzo powszechna praktyka, która sięga daleko wstecz.
Musielibyśmy wiedzieć, jaki mikrokontroler. Ponieważ wspominasz o 32 bitach, jest całkiem prawdopodobne (bez szczegółowych informacji, chociaż nie możemy powiedzieć), że pamięć w tej części ma szerokość 32 bitów, a wszystkie dostępy do niej mają szerokość 32 bitów. instrukcje prawdopodobnie określą, czego chce program, który prawdopodobnie oferuje 8-bitowy, 16-bitowy i 32-bitowy typ dostępu, mniejsze podczas zapisu wymagałyby gdzieś odczytu-modyfikacji-zapisu, czyta się po prostu ignoruje ścieżki bajtów. To samo dotyczy flasha, chociaż zapisy flashowe są innym tematem. Ale wewnętrzna pamięć flash ma najprawdopodobniej szerokość 32 bity, a wszystkie odczyty są wyrażone w jednostkach 32-bitowych. Zewnętrzna pamięć flash, to inna historia, najprawdopodobniej mają one szerokość jednego bitu (spi lub i2c), chociaż części spi mogą czasami obsługiwać 1, 2 lub 4 bity, ale jeden pin miso jest najczęściej. Wewnętrznie są zorganizowane w jednostkach bajtów, może mieć szerokość 8 bitów, 16 lub 32 lub kto wie, przesuwasz się i adresujesz je w jednostkach bajtów. dzięki SPI możesz przesuwać w dowolnym miejscu między jednym bajtem a całą pamięcią w jednej transakcji, w zależności od projektu części flash.