Większość ludzi przechodzi z przetwarzania 32-bitowego na 64-bitowe, aby przekroczyć limit 4 GB pamięci RAM, ale jak daleko Czy potrafisz przekroczyć ten limit, gdy już wejdziesz do królestwa 64-bitowych komputerów?
Dzisiejsza sesja pytań i odpowiedzi jest dostępna dzięki uprzejmości SuperUser - części Stack Exchange, grupy witryn internetowych z pytaniami i odpowiedziami. Zdjęcie autorstwa Petr Kratochvil .
Pytanie
Czytnik SuperUser KingNestor jest ciekawy, ile pamięci RAM może pomieścić komputer 64-bitowy:
Czytam książkę o architekturze komputera i widzę, że w 32-bitowym procesorze x86 licznik programu jest 32-bitowy.
Zatem liczba bajtów, które może zaadresować, to 2 ^ 32 bajty, czyli 4 GB. Dlatego wydaje mi się sensowne, ż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 może teoretycznie adresować 2 ^ 64 bajty, czyli 16 eksabajtów barana ?!
Mówisz o eksabajtach? Teraz, teraz, nie bądźmy chciwi. Z przyjemnością zaczniemy od terabajtów lub dwóch.
Odpowiedź
Odpowiedzi na zapytanie KingNestor stanowią interesujące połączenie rozważań praktycznych i teoretycznych. Matt Ball wskakuje od razu z teoretyczną odpowiedzią:
Teoretycznie: 16,8 miliona terabajtów. W praktyce: obudowa twojego komputera jest trochę za mała, aby zmieścić całą tę pamięć RAM.
http://en.wikipedia.org/wiki/64-bit#Limitations_of_practical_processors
Conrad Dean wskakuje z uwagą o tym, jak całkowicie niepraktyczne byłoby maksymalne przekroczenie teoretycznego limitu pamięci RAM przy użyciu dzisiejszej technologii:
Aby uzupełnić odpowiedź Matta Balla, największa obecnie pamięć RAM, jaką mogę znaleźć w jednym konkretnym sklepie internetowym, ma 32 GB. Zajęłoby 32 z nich, aby osiągnąć 1 terabajt. Przy około pół cala na kij daje nam to poświęcone 16 cali miejsca na płycie głównej na terabajt komercyjnej pamięci RAM. Aby osiągnąć 16,8 miliona terabajtów, potrzebna byłaby płyta główna o długości 4242,42 mil. Odległość z Los Angeles 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.
Co powiesz na to, ż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 przeciętny kij barana ma około sześciu cali długości, więc jeśli dopuszczamy pół cala na szerokość, można mieć kwadratową jednostkę składającą się z 12 drążków barana na 6 calowym kwadracie. Nazwijmy ten kwadrat płytką RAM. Kafelek RAM zawiera wtedy 384 GB pamięci RAM. Osiągnięcie wymaganego 16,8 miliona terabajtów w 384 GB płytach wymagałoby 44,8 miliona płytek. Bądźmy niechlujni i użyjmy pierwiastka kwadratowego z tego, aby wywnioskować, że zmieści się on w kwadracie 6693 na 6694 płytek lub 13386 na 13388 stóp, co jest wystarczająco blisko 2,5 stopy kwadratowej, wystarczająco aby pokryć centrum Seattle w cieniu, jakby nie mieli już wystarczająco powodów do narzekania.
Wreszcie David Schwartz zauważa, że nawet teoretyczny limit zostaje ugrzęźnięty przez obecną architekturę procesora:
Zauważ, że żaden istniejący 64-bitowy procesor x86 nie może tego zrobić. Ich pamięci podręczne nie mają wystarczającej liczby bitów znaczników, magistrale adresów nie mają wystarczającej szerokości i tak dalej. 46-bitowe (8 TB) to maksimum dla wielu nowoczesnych procesorów x86.
Masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych zaawansowanych technicznie użytkowników Stack Exchange? Sprawdź cały wątek dyskusji tutaj .