Jaka jest maksymalna ilość pamięci RAM, którą teoretycznie może rozwiązać 64-bitowa maszyna?

21

Czytam książkę o architekturze komputera i widzę, że w x86, 32-bitowym procesorze licznik programów jest 32-bitowy.

Zatem liczba bajtów, które może adresować, wynosi 2 ^ 32 bajty lub 4 GB. Ma więc dla mnie sens, że większość 32-bitowych maszyn ogranicza ilość pamięci RAM do 4 GB (ignorując PAE).

Czy mam rację, zakładając, że 64-bitowa maszyna teoretycznie może adresować 2 ^ 64 bajty lub 16 eksabajtów pamięci RAM ?!

KingNestor
źródło
4
Zauważ, że żaden istniejący 64-bitowy procesor x86 nie jest w stanie tego zrobić. Ich pamięci podręczne nie mają wystarczającej liczby bitów znaczników, ich magistrale adresowe nie mają wystarczającej szerokości i tak dalej. 46-bitów (8 TB) to maksimum dla wielu współczesnych procesorów x86.
David Schwartz
4
Teoretycznie nie ma limitu. Nawet 32-bitowe procesory mogą mieć przestrzeń adresową powyżej 4 GiB. Zależy to od sposobu wdrożenia systemu zarządzania pamięcią w sprzęcie , który zwykle jest niezależny od długości słowa procesora. Wskaźniki w programach zawsze mają długość słowa, ale i tak są to adresy wirtualne (a nie fizyczne), więc są one mapowane w inną przestrzeń adresową.
Przełom
To stare pytanie ze starymi odpowiedziami, ale wydaje mi się, że najbardziej uprzywilejowane odpowiedzi na to pytanie są bardzo mylące i są to odpowiedzi na pytanie, ile pamięci RAM może mieć maszyna z 64-bitowym adresem magistrali adresowej . Jak wskazali David i Breakthrough, „bitowość” architektury odzwierciedla rozmiar rejestrów podstawowych, a nie rozmiar magistrali adresowej.
Sebi
Dlaczego miałbyś ignorować PAE?
Jamie Hanrahan

Odpowiedzi:

28

Teoretycznie: 16,8 miliona terabajtów. W praktyce: obudowa komputera jest trochę za mała, aby zmieścić całą pamięć RAM.

http://en.wikipedia.org/wiki/64-bit#Limitations_of_practical_processors

Matt Ball
źródło
13
Za mały .... dzisiaj !!!!
snicker
2
16,777216 milionów tebibajtów. Jeśli chcesz być precyzyjny.
totymedli
Czytam w innych źródłach, że procesor nie może użyć każdego bitu, aby uzyskać dostęp do pamięci, czy jest to brane pod uwagę w twojej odpowiedzi?
Andrey
17

Aby uzupełnić odpowiedź Matta Ball, obecnie największy patyk RAM, jaki mogę znaleźć w jednym sklepie internetowym, to 32 GB. Osiągnięcie 1 terabajta zajęłoby 32 z nich. Przy około pół cala na patyk daje nam to 16 cali miejsca na płycie głównej na terabajt komercyjnego barana. Aby osiągnąć 16,8 miliona terabajtów, potrzebna jest płyta główna 4242,42 mil. Odległość z LA do Nowego Jorku wynosi około 2141 mil, więc płyta główna rozciągałaby się po całym kraju iz powrotem, aby pomieścić tyle pamięci RAM.

Oczywiście jest to niepraktyczne.

Może nie umieściliśmy pamięci RAM w jednym rzędzie, jak na większości płyt głównych, ale zamiast tego umieściliśmy je obok siebie. Chcę powiedzieć, że średni kij barana ma około sześciu cali długości, więc jeśli pozwolimy na szerokość pół cala, możesz mieć kwadratową jednostkę 12 kijków barana w kwadracie 6 cali. Nazwijmy ten kwadrat kafelkiem RAM. Płytka pamięci RAM zawiera następnie 384 GB pamięci RAM. Osiągnięcie wymaganego 16,8 miliona terabajtów w 384 GB kafelków wymagałoby 44,8 miliona kafelków. Bądźmy niechlujni i użyj pierwiastka kwadratowego z tego, aby stwierdzić, że zmieści się on w kwadracie 6693 na 6694 kafelkach lub 13386 na 13 388 stóp, który jest wystarczająco blisko do 2,5 mil kwadratowych, wystarczająco, aby pokryć śródmieście Seattle w cieniu, jakby nie mieli już dość na co narzekać.

Conrad.Dean
źródło
2
Za duży. Dlaczego kładziesz je płasko? Możesz dostać to wszystko w kostce 100 '. Prawdopodobnie będziesz potrzebować ciekłego azotu, aby go ochłodzić!
Loren Pechtel
1
ilość azotu, która się zagotowałaby, stanowiłaby zagrożenie bezpieczeństwa dla wielkich mieszkańców Seattle
Conrad.Dean
Jedna możliwa korekta. Ponieważ kafelek ma wymiary 6 na 6, to nie znaczy, że powierzchnia 3346,5 na 3347 stóp (połowa liczby płytek) zamiast cytowanej liczby 13 386, która jest dwukrotnością liczby płytek. Kolejny problem, o którym nikt nie wspominał. Załóż najlepsze ustawienie: okrąg, promień będzie musiał wynosić około 1890 stóp, aby otoczyć wymagany obszar. Jak zauważył Adm, Grace Hopper, opóźnienie transmisji na miedzi wynosi około nanosekundy / stopę. Oznacza to, że opóźnienie w obie strony do zewnętrznego pierścienia wyniesie ~ 3,78 mikrosekundy. To trochę spowalnia pamięć główną. IMEHO.
dgnuff
4

W rzeczywistości tak - procesy mogłyby teoretycznie adresować 2 ^ 64 bajtów pamięci. Ale, jak wskazałeś, istnieją sposoby na przekroczenie tego limitu.

Adam Wright
źródło
3

Nie ma żadnej szczególnej stałej zależności między wielkością bitów procesora a ilością pamięci adresowalnej. Większość 8-bitowych komputerów z końca lat 70. mogła łatwo uzyskać bezpośredni dostęp do 65 536 bajtów, a 16-bitowe 8088 i 8086 miały bezpośredni dostęp do 1 048 576 bajtów. Dodatkowo można dodać sprzęt, aby umożliwić maszynom pośredni dostęp do dowolnej ilości pamięci RAM; wiele komputerów z procesorami 8-bitowymi miało 128 KB lub więcej, a jednostki rozszerzające pamięć dla komputerów opartych na 8088 miały dostęp do ponad 16 megabajtów. Chociaż Microsoft włączał taką funkcję tylko w „serwerowych” wersjach systemu Windows, możliwe było, aby 32-bitowy kod miał dostęp do pamięci poza znakiem 4GiB przy użyciu podobnych metod.

supercat
źródło
2

Miałbyś rację. Możesz zaadresować do 16 eksabajtów pamięci RAM. Teraz ... czy system operacyjny może to obsłużyć, byłoby innym pytaniem ....


źródło
2

Warto również zauważyć, że system operacyjny ma własne ograniczenia dotyczące pamięci w architekturze 64-bitowej.

Na przykład zobacz, co wikipedia mówi o systemie Windows Vista 64:

Wszystkie 64-bitowe wersje systemów operacyjnych Microsoft narzucają obecnie limit 16 TB przestrzeni adresowej. Procesy utworzone w 64-bitowych wersjach systemu Windows Vista mogą mieć 8 TB pamięci wirtualnej dla procesów użytkownika i 8 TB dla procesów jądra w celu utworzenia pamięci wirtualnej 16 TB. [29] Pod względem pamięci fizycznej Windows Vista 64-Bit Basic obsługuje do 8 GB pamięci RAM, Windows Vista 64-Bit Home Premium obsługuje do 16 GB pamięci RAM, a Windows Vista 64-Bit Business / Enterprise / Ultimate obsługuje do 128 GB pamięci RAM. [8]

decasteljau
źródło
Aktualne informacje dla systemu Windows: msdn.microsoft.com/en-us/library/windows/desktop/aa366778.aspx
Arjan
1

Największą zaletą 64 bitów nie jest pamięć RAM, którą można rozwiązać, ale wszystko inne. Możesz na przykład zdefiniować adres dla każdego bajtu na dysku, a zwiększenie pojemności dysku nie unieważni go przez dziesięciolecia.

Mark Ransom
źródło
Oczywiście, ponieważ obecne procesory mają sztucznie ograniczoną przestrzeń adresową, może minąć dekada, zanim nie będzie wystarczającej liczby bitów, aby adresować każdy bajt na dysku. Mamy nadzieję, że na tym etapie granice zostaną podniesione, ponieważ sposób, w jaki idą dyski SSD, sprawia, że ​​cały dysk pojawia się jako sekcja pamięci, może znacznie poprawić wydajność. Nie miałbym nic przeciwko podłączeniu dysku SSD do gniazda RAM zamiast do kabla SATA!
Malvineous
@Malvineous Mówiłem o czymś bardziej podstawowym, nawet jeśli ograniczysz się do 63 bitów, możesz bezpośrednio adresować 9223372 TB. A dyski SSD w gnieździe RAM już istnieją, patrz Sandisk .
Mark Ransom,
Nie zgadzałem się z tobą, po prostu wskazałem, że przy obecnej technologii istnieją sztuczne ograniczenia tego, co sugerujesz (np. Tylko 48 lub 51 bitów adresu wprowadzonego do fizycznej magistrali). Jeśli te dyski DIMM-SSD się przyłapią, możemy skończyć się adresy pamięci szybciej niż sugerujesz, chyba że te sztuczne limity można podnieść lub usunąć. Zgadzam się, że gdyby pełne 64 bity były dostępne, upłynęłyby dekady, zanim stanie się to problemem.
Malvineous,
Dla przypomnienia spojrzałem na łącze SanDisk UlltraDIMM, ale niestety nie jest to technicznie SSD-as-RAM. Jest to dysk SSD SATA 6 Gb / s, z adapterem DDR3-na-SATA, który umożliwia dostęp do niego jak do pamięci. Dodatkowa konwersja żądań pamięci do protokołu SATA wprowadza pewne opóźnienia i wydaje się nieco niechlujna. Mam nadzieję, że ktoś zobaczy korzyści z tego i wkrótce wyda prawdziwy interfejs pamięci, aby flashować bez zbędnych przejściówek!
Malvineous,
0

Większość współczesnych procesorów ma sztuczny limit wielkości adresu. Na przykład architektura AMD64 ma 52-bitowy limit pamięci fizycznej i obecnie obsługuje tylko 48-bitową wirtualną przestrzeń adresową. (Za pośrednictwem Wikipedii). Jednak tak, fizycznie ~ 16,4 miliona terabajtów jest możliwe.


źródło
-1

realistyczna odpowiedź fizyczna 1536 GB z 48 kartami RAM z 32 GB pojedynczymi drążkami i 4x xga lga2011

to jest na eseistyczny komputer, który ktoś może kupić bez naruszania ukrytych hardcorowych seversów, myślę, że jest tam 64gb pojedyncze stics .... 3072GB 128GB be 6144GB 256GB be 12288GB

po prostu rzucić tam, że istnieją sposoby na obejście ograniczeń systemu operacyjnego z ram, jeśli twój system operacyjny widzi tylko 4 GB RAM zamienia resztki w napęd RAM i użyj napędu RAM jako pliku strony XD XD XD XD tylko kwestia zrobienia preboot OS system kilka podobnych rzeczy zostało zrobionych już we wczesnych dniach dos / windows 3.11 itd

i mogą istnieć inne małe hacki do obejścia ograniczeń procesora

sprzęt, który widzimy, nie jest tam, tam są znacznie mocniejsze rzeczy Miałem komputer z 98 działającymi procesorami 8 i coś w rodzaju RAM 32 GB, ale to drogie, hi-endowe serwery

patrzę na serwery jako komputery stacjonarne, ponieważ mam dość komputerów dla publicznego XD

Weazel
źródło