Moje proste zrozumienie jest następujące.
Pamięć (RAM) składa się z bitów, grup po 8, które tworzą bajty, z których każdy może być zaadresowany, a zatem bajtowa pamięć adresowalna.
Adres Bus przechowuje lokalizację bajtu pamięci.
Jeśli magistrala adresowa ma rozmiar 32 bitów, oznacza to, że może przechowywać do 2 32 liczb, a zatem może odnosić się do 2 32 bajtów pamięci = 4 GB pamięci i każda większa pamięć jest bezużyteczna.
Magistrala danych służy do wysyłania wartości do zapisania / odczytania z pamięci. Jeśli mam magistralę danych o rozmiarze 32 bitów, oznacza to, że maksymalnie 4 bajty mogą być zapisywane / odczytywane jednocześnie. Nie znajduję związku między tym rozmiarem a maksymalnym możliwym rozmiarem pamięci.
Ale czytam tutaj, że:
Mimo że większość systemów jest adresowalna bajtowo, sensowne jest, aby procesor przenosił jak najwięcej danych. Odbywa się to przez magistralę danych, a rozmiar magistrali danych jest tym, skąd pochodzą nazwy system 8-bitowy, system 16-bitowy, system 32-bitowy, system 64-bitowy itp. Gdy magistrala danych ma szerokość 8 bitów, może przesyłać 8 bitów w jednej operacji pamięci. Gdy magistrala danych ma szerokość 32 bitów (co jest najbardziej powszechne w momencie zapisu), w jednej operacji pamięci można przenieść maksymalnie 32 bity.
Oznacza to, że rozmiar magistrali danych określa nazwę systemu operacyjnego: 8-bitowy, 16-bitowy i tak dalej. Co jest nie tak z moim zrozumieniem?
źródło
Odpowiedzi:
Ogólnie rozmiar magistrali danych zależy od wielkości rejestrów procesora. Często rozmiar rejestrów procesora decyduje o typie systemu operacyjnego (64 vs 32). Fizyczne rozmiary magistrali mogą technicznie różnić się od tego (na przykład 8088), ale jest tak rzadkie, że autor cytatu prawdopodobnie kojarzy je ze sobą.
Zasadniczo rozmiar wskaźnika również odpowiada rozmiarowi rejestru, ale szerokość fizycznej szyny adresowej może być większa (jak w przypadku 1686 bitów 8086 przy 20) lub mniejsza (jak w przypadku AMD 64 przy 48)
źródło
Jest to wielkość rejestru i obsługa pamięci w procesorze.
Używając sztuczek, jeden 16-bitowy procesor miał 20-bitową szynę adresową, więc nie jest to pamięć zewnętrzna procesora.
źródło
Nie ma „czystego” systemu 32- lub 64-bitowego, dlatego te terminy i tak są jedynie przybliżeniami.
Weźmy na przykład stwierdzenie „Pamięć (RAM) składa się z bitów, grup po 8, które tworzą bajty, z których każdy może być zaadresowany” . To nie jest bardzo powszechne. Komputery PC mają pamięć RAM na modułach DIMM, a te mają 64 bity szerokości. W latach 90. mieliśmy SIMM-y, a miały one szerokość 32 bitów.
W niektórych systemach moduły DIMM muszą zostać sparowane („ganged” / „dual channel”), co byłoby magistralą danych o długości 128 bitów. Ta koncepcja wyprzedza tak zwane „64-bitowe” procesory AMD i Intel.
Te grupy 64 bitów z pojedynczego modułu DIMM można rzeczywiście podzielić na 8 bajtów. Jest to robione dość transparentnie przez twój procesor. Może także podzielić 64 bity na 4 * 16 bitów, 2 * 32 bity lub po prostu użyć wszystkich 64 bitów jako pojedynczej zmiennej.
Najważniejszym pytaniem jest jednak szerokość adresu. Każdy bajt w pamięci ma swój adres, ale nie każdy. Oznacza to, że 64 bity uzyskane z jednego modułu DIMM mają 8 adresów. Najniższa z nich to zawsze wielokrotność liczby 8: Ile różnych adresów obsługuje procesor? Istnieją dwie wspólne odpowiedzi, przynajmniej w teorii. Niektóre procesory obsługują 2 32 różne adresy, niektóre obsługują 2 64 . To rozróżnienie jest najczęstszym rozróżnieniem między systemami 32- i 64-bitowymi.
W praktyce systemy 64-bitowe obsługują obecnie mniej niż 2 64 bajty pamięci RAM. To byłoby niemożliwe i nie zmieściłoby się w normalnym komputerze. Tyle pamięci ważyłoby kilka milionów ton!
źródło
Oba faktycznie.
Bity procesora zwykle odnoszą się do wielkości jego wewnętrznych rejestrów. Procesor 32-bitowy ma rejestry 32-bitowe, które mogą być podzielone na części.
Sensowne jest posiadanie 32-bitowego procesora z 32-bitową magistralą danych, ponieważ możesz przesyłać wszystkie dane z pamięci bezpośrednio do rejestrów, ale możesz mieć dowolną wielkość magistrali danych. Tak więc 32-bitowy procesor zwykle ma 32-bitową szynę danych, aby ułatwić przesyłanie danych zi do niego.
Warto również mieć 32-bitową magistralę adresową z dwóch powodów. Większa magistrala adresowa utrudniłaby adresowanie pośrednie, ponieważ nie byłby wystarczająco duży rejestr do przechowywania adresu pamięci lub procesor wymagałby specjalnego rejestru do adresowania pamięci, należy pamiętać, że stare procesory, takie jak Intel 8080, miały 8 bitów i miały 16-bitowa magistrala adresowa. Przeciwnie, magistrala adresowa mniejsza niż rejestr jest marnotrawstwem zasobów. Istnieją mikrokontrolery, które używają mniejszej magistrali adresowej.
źródło