¿Cuál es la cantidad máxima de RAM que una máquina de 64 bits puede abordar teóricamente?

21

Estoy leyendo el libro de arquitectura de mi computadora y veo que en una CPU x86 de 32 bits, el contador del programa es de 32 bits.

Entonces, el número de bytes que puede abordar es 2 ^ 32 bytes, o 4GB. Por lo tanto, tiene sentido para mí que la mayoría de las máquinas de 32 bits limitan la cantidad de ram a 4 gb (ignorando PAE).

¿Estoy en lo cierto al suponer que una máquina de 64 bits en teoría podría abordar 2 ^ 64 bytes, o 16 exabytes de ram?

ReyNestor
fuente
44
Tenga en cuenta que ningún procesador x86 de 64 bits existente puede hacer esto realmente. Sus cachés no tienen suficientes bits de etiqueta, sus buses de direcciones no tienen suficiente ancho, y así sucesivamente. 46 bits (8 TB) es el máximo para muchas CPU modernas x86.
David Schwartz el
44
Teóricamente, no hay límite. Incluso las CPU de 32 bits pueden tener un espacio de direcciones superior a 4 GiB. Depende de cómo se implemente el sistema de administración de memoria en el hardware , que generalmente es independiente de la longitud de palabra de la CPU. Los punteros en los programas siempre tienen una longitud de palabra, pero de todos modos son direcciones virtuales (y no físicas), por lo que se asignan aún más a un espacio de direcciones diferente.
Avance
Esta es una pregunta antigua con respuestas antiguas, pero creo que las respuestas más votadas a esta pregunta son muy engañosas, y son respuestas a ¿Cuánta RAM podría una máquina con una dirección de bus de direcciones de 64 bits de ancho ? Como David y Breakthrough señalaron anteriormente, el "bitness" de una arquitectura refleja el tamaño de los registros primarios, no el tamaño del bus de direcciones.
Sebi
¿Por qué ignorarías PAE?
Jamie Hanrahan

Respuestas:

28

Teóricamente: 16.8 millones de terabytes. En la práctica: la carcasa de tu computadora es demasiado pequeña para caber toda esa RAM.

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

Matt Ball
fuente
13
Demasiado pequeño ... hoy !!!!
risita
2
16,777216 millones de tebibyte. Si quieres ser preciso.
totymedli
Leí en otras fuentes que un procesador no puede usar cada bit para acceder a la memoria, ¿se está considerando en su respuesta?
Andrey
17

Para complementar la respuesta de Matt Ball, la mayor cantidad actual de RAM que puedo encontrar en un minorista en línea en particular es de 32 GB. Se necesitarían 32 de estos para alcanzar 1 terabyte. Aproximadamente a media pulgada por barra, esto nos lleva a un espacio dedicado de 16 pulgadas en su placa base para un terabyte de ram comercial. Para llegar a 16.8 millones de terabytes se requeriría una placa base de 4,242.42 millas. La distancia de Los Ángeles a Nueva York es de aproximadamente 2141 millas, por lo que la placa base se extendería por todo el país y volvería para acomodar tanta RAM.

Claramente esto no es práctico.

¿Qué tal si no pusimos nuestra RAM en una fila como en la mayoría de las placas base, sino que las colocamos una al lado de la otra? Quiero decir que el palo promedio de carnero es de aproximadamente seis pulgadas de largo, por lo que si permitimos una media pulgada de ancho, puede tener una unidad cuadrada de 12 palos de carnero en un cuadrado de 6 pulgadas. Llamemos a este cuadrado un mosaico RAM. Un mosaico de RAM contiene 384 GB de RAM. Para alcanzar los 16,8 millones de terabytes requeridos en mosaicos de 384 GB se necesitarían 44,8 millones de mosaicos. Seamos desordenados, y usemos la raíz cuadrada de eso para concluir que esto encajará en un cuadrado de 6693 por 6694 fichas, o 13,386 por 13,388 pies, que está lo suficientemente cerca de 2.5 millas cuadradas, lo suficiente como para cubrir el centro de Seattle en la sombra, como si ya no tenían suficiente de qué quejarse.

Conrad.Dean
fuente
2
Demasiado grande. ¿Por qué los pones planos? Puede obtenerlo todo en un cubo de 100 '. ¡Sin embargo, probablemente necesitarás nitrógeno líquido para mantenerlo fresco!
Loren Pechtel
1
la cantidad de gas nitrógeno que
herviría
Una posible corrección. Dado que un mosaico mide 6 "por 6", eso no haría que el área sea 3346.5 por 3347 pies (la mitad del conteo de mosaicos) en lugar del citado 13,386, que es el doble del conteo de mosaicos. Además, otro tema que nadie parece haber mencionado. Suponga la mejor disposición: un círculo, el radio deberá ser de aproximadamente 1,890 pies para encerrar el área requerida. Como señaló Adm, Grace Hopper, la latencia de transmisión sobre el cobre es de aproximadamente un nanosegundo / pie. Eso significa que la latencia de ida y vuelta al anillo exterior será de ~ 3.78 microsegundos. Eso es un poco lento para la memoria principal. IMEHO
dgnuff
4

Efectivamente, sí, los procesos podrían, en teoría, abordar 2 ^ 64 bytes de memoria. Pero como usted señaló, hay formas de evitar este límite.

Adam Wright
fuente
3

No existe una relación fija particular entre el tamaño de bits de un procesador y la cantidad de memoria direccionable. La mayoría de las máquinas de 8 bits de finales de la década de 1970 podían acceder fácilmente a 65.536 bytes directamente, las máquinas de 16 bits 8088 y 8086 podían acceder a 1.048.576 bytes directamente. Además, es posible agregar hardware para permitir que las máquinas accedan a cualquier cantidad de RAM indirectamente; muchas máquinas con procesadores de 8 bits tenían 128 K o más, y las unidades de expansión de memoria para PC basadas en 8088 podían acceder a más de 16 megas. Aunque Microsoft solo habilitó dicha característica en las versiones de "servidor" de Windows, fue posible que el código de 32 bits acceda a la memoria más allá de la marca 4GiB utilizando enfoques similares.

Super gato
fuente
2

Estarías en lo correcto. Puede abordar hasta 16 exabytes de RAM. Ahora ... si el sistema operativo puede manejarlo sería otra pregunta ...


fuente
2

También sería bueno tener en cuenta que el sistema operativo tiene su propia limitación sobre la memoria en una arquitectura de 64 bits.

Por ejemplo, vea lo que Wikipedia dice sobre Windows Vista 64:

Todas las versiones de 64 bits de los sistemas operativos de Microsoft actualmente imponen un límite de 16 TB en el espacio de direcciones. Los procesos creados en las ediciones de 64 bits de Windows Vista pueden tener 8 TB en memoria virtual para procesos de usuario y 8 TB para procesos de kernel para crear una memoria virtual de 16 TB. [29] En términos de memoria física, Windows Vista 64-Bit Basic admite hasta 8 GB de RAM, Windows Vista 64-Bit Home Premium admite hasta 16 GB de RAM, y Windows Vista 64-Bit Business / Enterprise / Ultimate admite hasta 128 GB de RAM. [8]

Decasteljau
fuente
Detalles actualizados para Windows: msdn.microsoft.com/en-us/library/windows/desktop/aa366778.aspx
Arjan
1

La mayor ventaja de 64 bits no es la RAM que puede abordar, sino todo lo demás. Puede definir una dirección para cada byte en un disco, por ejemplo, y aumentar las capacidades del disco no invalidará esto durante décadas.

Mark Ransom
fuente
Por supuesto, dado que las CPU actuales tienen este espacio de direcciones artificialmente limitado, solo puede pasar una década antes de que ya no haya suficientes bits para direccionar cada byte en un disco. Esperemos que en esa etapa los límites se hayan elevado, ya que la forma en que van los SSD, hacer que un disco completo aparezca como una sección de memoria podría mejorar drásticamente el rendimiento. ¡No me importaría conectar un SSD a una ranura RAM en lugar de a un cable SATA!
Malvineous
@Malvineous Estaba hablando de algo más fundamental, incluso si se limita a 63 bits, puede abordar directamente 9223372 TB. Y ya existen SSD en una ranura RAM, vea Sandisk .
Mark Ransom
No estaba en desacuerdo con usted, solo estaba señalando que con la tecnología actual hay límites artificiales en lo que está sugiriendo (por ejemplo, solo 48 o 51 bits de la dirección traída al bus físico). Si esos DIMM-SSD se activan, es posible que se nos acaben las direcciones de memoria antes de lo que sugiere, a menos que estos límites artificiales se puedan aumentar o eliminar. Estoy de acuerdo si los 64 bits completos estuvieran disponibles, pasarían décadas antes de que se convierta en un problema.
Malvineous
Solo para el registro, miré el enlace SanDisk UlltraDIMM, pero lamentablemente esto no es técnicamente SSD-as-RAM. Es una SSD SATA de 6 Gbps, con un adaptador DDR3 a SATA que le permite acceder como si fuera memoria. La conversión adicional de las solicitudes de memoria en el protocolo SATA introduce cierta latencia y parece un poco desordenada. ¡Con suerte, alguien verá el beneficio de esto y pronto lanzará una verdadera interfaz de memoria para flashear sin ningún adaptador innecesario en el medio!
Malvineous
0

La mayoría de los procesadores actuales tienen algún tipo de límite artificial en el tamaño de su dirección. Por ejemplo, la arquitectura AMD64 tiene un límite de 52 bits en la memoria física y actualmente solo admite un espacio de direcciones virtuales de 48 bits. (Vía Wikipedia). Sin embargo, sí, físicamente ~ 16.4 millones de terabytes es posible.


fuente
-1

para una respuesta física realista de 1536 gb con 48 tarjetas de memoria ram con 32 gb de palos individuales y 4 xeones lga2011

Esto es para la PC de ensayo que alguien puede comprar sin violar los servidores hardcore ocultos.

solo para descartar que hay formas de sortear las limitaciones del sistema operativo si su sistema operativo solo puede ver 4 gb de ram, convertir las sobras en una unidad ram y usar la unidad ram como archivo de página XD XD XD XD solo es cuestión de hacer un sistema operativo previo al arranque sistema algo similar se hizo en los primeros días de DOS / Windows 3.11, etc.

y puede haber otros pequeños trucos para sortear las limitaciones de la CPU

podemos ver que no hay wats por ahí, hay cosas mucho más potentes. Tenía una PC de 98 procesadores con 8 procesadores y algo así como 32 gb de ram, pero estos son servidores caros de alta gama

Estoy buscando servidores como escritorios porque estoy harto de las computadoras para el público XD

Weazel
fuente