Czy to rozmiar magistrali adresowej czy rozmiar magistrali danych określa systemy „8-bitowe, 16-bitowe, 32-bitowe, 64-bitowe”?


15

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?


Co jest nie tak z moim rozumieniem? ” - Próbujesz dopasować jedną definicję do różnych rzeczy. Deskryptor wielkości bitu był używany w różnych momentach do różnych celów.
trociny

1
Oznacza to, co mówi producent. Zasadniczo będzie to coś w rodzaju wielkości rejestru, ale istnieje wiele sposobów na sfałszowanie / zamiatanie tego.
Daniel R Hicks

Odpowiedzi:


12

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)


2
szerokość fizycznego adresu może być większa ” - Zwłaszcza w przypadku 4-bitowych i 8-bitowych procesorów!
trociny

W porządku. Ale staram się to zrozumieć trywialnie. Nie mogłem znaleźć żadnego związku między rozmiarem magistrali danych a maksymalną możliwą pamięcią, jak mógłbym wyjaśnić za pomocą wielkości magistrali adresowej. Odpowiedź brzmi więc: „NIE ADRESOWY ROZMIAR magistrali, ale ROZMIAR magistrali danych” (ponieważ zwykle jest tak duży, jak rejestruje procesor). Czy coś brakuje?
uczeń

@learner Zgadza się, zamieszanie polega również na tym, że maksymalny rozmiar wskaźnika systemu to rozmiar rejestrów procesora. W płaskiej przestrzeni adresowej, jak w większości współczesnych systemów, co równoznaczne jest z ograniczeniem wielkości rejestrów procesora, stąd ograniczenia adresowania, jak wskazałeś. Niektóre procesory, zwłaszcza starsze, wykorzystywały sztuczki, takie jak specjalne segmentowane adresowanie, aby obejść ten problem.
Dougvj,

@Dougvj, OK, robi się coraz jaśniej. Ale dlaczego odróżniają rozmiary magistrali adresowej od wielkości rejestrów procesorów? Czy nie ma większego sensu utrzymywanie ich bez zmian? I jestem zdezorientowany, gdzie przechowywane są adresy? (magistrala adresowa lub rejestr procesora?) Dziękuję
uczeń

1
@learner To prawda. Podsumowując: Oznaczenie systemu operacyjnego odpowiada dokładnie wielkości rejestrów procesora. Magistrala adresowa może, ale nie musi być tego samego rozmiaru co rejestr procesora, dlatego maksymalna możliwa do adresowania pamięć RAM jest od tego niezależna. Procesor wewnętrznie jednak prawie niezmiennie ma jakiś schemat adresowania obejmujący wskaźniki, które są tego samego rozmiaru, co rejestry procesora.
Dougvj,

1

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.


1

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!


Czy jest to rejestr procesora, w którym przechowywany jest adres, czy jest to magistrala adresowa? Mówisz „niektóre procesory obsługują 2 ^ 32 różnych adresów ...”. Czym są dokładnie ograniczone?
uczeń

Zazwyczaj zarówno rozmiary rejestrów, jak i MMU (jednostka zarządzania pamięcią, część procesora bezpośrednio odpowiedzialna za pamięć).
MSalters

0

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.