Tradycyjnie „słowo” w architekturze komputerowej było zasadniczo najmniejszą adresowalną jednostką pamięci. Tradycyjnie było to takie samo, jak rozmiar rejestru ogólnego przeznaczenia maszyny.
Jednak od czasu, gdy adresowanie bajtów stało się popularne, koncepcja uległa osłabieniu. (Prawdopodobnie możemy to przypisać IBM System / 360 i PDP-11 po stronie minikomputera.)
Jeśli chodzi o adresowanie pamięci zdefiniowane w architekturze CPU - to znaczy, jak programiści postrzegają maszynę - koncepcja „słowa” nie istnieje na x86 / x64, chyba że uważasz ją za synonim bajtów. Każdy bajt pamięci ma swój własny adres, a adres bajtu jest także adresem dowolnego większego regionu, który zaczyna się na tym bajcie (rozciągając się na adresy o wyższych numerach). Możemy oczywiście przenieść jeden, dwa, cztery lub (na x64) osiem bajtów jednocześnie między rejestrem a pamięcią RAM - lub znacznie więcej, z pamięci do pamięci, zgodnie z instrukcjami REP - ale adres, który podajemy, jest nadal bajt. Możemy wykonywać arytmetykę na słowach wszystkich tych rozmiarów. (I inni.)
Jeśli myślisz o rejestrach, „rozmiar słowa” maszyny zwykle przyjmuje się, że jest taki sam jak w rejestrach ogólnego przeznaczenia. To byłoby 32 bity na x86, 64 bity na x64. W większości architektur rozmiar GPR jest wielkością największej liczby całkowitej, na której procesor może wykonać prostą arytmetykę za pomocą jednej instrukcji.
Teraz wprowadzimy więcej zamieszania ...!
Jeśli chodzi o platformę (płytę główną, moduły RAM i układy itp.), Na wszystkich komputerach z procesorami i mikroukładami „towarowymi” Intel i AMD RAM jest adresowany w 64-bitowych porcjach - przypuszczam, że można je nazwać słowami. Widać to bardzo wyraźnie na wcześniejszych procesorach, które miały osobne piny dla adresu i danych: Najmniej znaczący pin adresu nazywa się A3, a nie A0! Bity adresu fizycznego A0, A1 i A2 nigdy nie opuszczają procesora. Ale programiści nigdy nie widzą takich adresów.
I wreszcie, istnieje koncepcja „linii pamięci podręcznej”. Linia pamięci podręcznej jest fizycznie ciągłą częścią pamięci RAM, która zajmuje jeden wpis w pamięci podręcznej L1 / L2 / L3. Linie pamięci podręcznej w świecie Intel / AMD już od jakiegoś czasu mają szerokość 64 bajtów. Kiedy więc uzyskujesz dostęp do adresu pamięci, który nie znajduje się obecnie w twojej pamięci podręcznej, procesor pobiera osiem z tych 8-bajtowych porcji pamięci RAM. Innymi słowy, adresy przechowywane w pamięci podręcznej pomijają sześć bitów niskiego rzędu. Więc może słowo w pamięci podręcznejma naprawdę 64 bajty lub 512 bitów! (Ale dostęp do pamięci, który omija pamięć podręczną, może nadal odczytywać lub zapisywać tylko 8 bajtów jednocześnie; w zakresach adresów fizycznych dekodowanych przez urządzenia we / wy odwzorowane w pamięci poszczególne bajty mogą być adresowalne; zależy to od magistrali. oczywiście nie możemy wykonywać arytmetyki na 512-bitowych liczbach całkowitych.)
W środowiskach programistycznych pochodzących z języka C firmy Microsoft „słowo” ma 16 bitów - tak było od dawna, zanim Microsoft, a nazwa i definicja typu danych zostały przeniesione do środowisk 32- i 64-bitowych w celu zapewnienia zgodności. „Podwójne słowo” (lub DWORD lub LONG, dla „longword”, którego termin był powszechny w VAX) ma 32 bity. 64-bitowe liczby całkowite są w architekturze nazywane „quadwords”, ale zwykle mają bardziej szczegółowe nazwy w C, takie jak UINT64 (liczba całkowita 64-bitowa, bez znaku).
To zależy od tego, gdzie jesteś w systemie i od tego, na co patrzysz. Zazwyczaj przez cały czas nie myślimy o „rozmiarze słowa”, a raczej o „rozmiarze GPR”.