Quiero comprender los detalles técnicos de las limitaciones del tamaño máximo de memoria que puede admitir un sistema/procesador. Debajo de lo que pude encontrar a través de la búsqueda web hasta la fecha Wiki :
Los procesadores modernos de 64 bits, como los diseños de ARM, Intel o AMD, generalmente se limitan a admitir menos de 64 bits para las direcciones de RAM. Por lo general, implementan de 40 a 52 bits de dirección física 1 3 (admiten de 1 TB a 4 PB de RAM). Al igual que las arquitecturas anteriores descritas aquí, algunas de ellas están diseñadas para admitir límites más altos de direccionamiento de RAM a medida que mejora la tecnología. Tanto en Intel64 como en AMD64, el límite de direcciones físicas de 52 bits se define en las especificaciones de la arquitectura (4 PB).
El sitio crucial, comprensión de las limitaciones de la CPU con la memoria, solo habla sobre la velocidad, apunta al sitio de Intel. Pero hasta donde yo sé, la información, por ejemplo, i7, dice 32 Gb porque en el momento de crear el procesador solo había módulos de 16 Gb disponibles, lo que significa que solo admite 2 módulos ( supongo que 2 módulos ahora, la cita wiki anterior habla de bits ).
Recién estoy empezando a entender los detalles técnicos de cómo funciona la memoria, como los rangos . ¿Qué impide exactamente que todos los procesadores Intel modernos, por ejemplo, afirmen poder abordar al menos 1 TB (según la wiki anterior)?
¿Es la misma razón para ARM en los teléfonos inteligentes? Por ejemplo, 875 :
Tamaño máximo 24 GB
Para ARM no tengo experiencia en cambiar la cantidad de memoria ya que todos mis dispositivos tenían SoC, aunque recientemente descubrí que ARM debería tener sistemas con módulos, como indica la búsqueda web (por ejemplo, https://www.anandtech.com/show/13635/apacer- lanza-32bit-sodimm-para-arm-risc-v-systems ).
Su cita de Wikipedia se refiere al espacio de direcciones físicas, el tamaño de todas las direcciones de memoria disponibles para el procesador. Es solo la suma de todas las direcciones que pueden caber en el espacio de memoria física. Sin embargo, no toda la memoria física es RAM. Los dispositivos PCIe como GPU, almacenamiento flash, etc. también ocupan direcciones de memoria física que se utilizan para comunicarse con ellos o copiar datos hacia/desde ellos. Por esta razón, el espacio de direcciones de la memoria física siempre debe ser mayor que la mayor cantidad posible de RAM en el sistema. Si no es así, termina con situaciones en las que no se puede instalar todo el hardware al mismo tiempo o no se puede acceder a toda la memoria, como sucedió en los viejos tiempos de 32 bit x86.
Claramente, si su sistema está bien diseñado, un espacio de direcciones de 40 bits no implica que pueda tener 2^40 bytes de RAM. Si lo hiciera, perdería el acceso a su PCIe y otro hardware. ¿Qué es lo que realmente limita tu RAM disponible entonces? El controlador de memoria en su CPU debe ser capaz de asignar direcciones físicas a celdas únicas de RAM. Hay un límite práctico a la cantidad de memoria que realmente puede acceder. Los DIMM individuales tienen un tamaño máximo establecido por la especificación y el controlador de memoria en sí tiene una cantidad máxima de canales de memoria.
Por ejemplo, un procesador Intel Comet Lake de décima generación admite hasta 4 DIMM, con un tamaño máximo de 64 GB según la especificación DDR4. Por lo tanto, la capacidad máxima posible es de 256 GB (aunque Intel dice que solo 128 GB, por lo que quizás los módulos DIMM de 64 GB no sean compatibles). El espacio de direcciones físicas restante aún puede ser utilizado por otro hardware, pero no por el controlador de memoria.
Admitir más memoria no es gratis. Requiere admitir más direcciones, lo que requiere más circuitos, lo que requiere más espacio en la matriz y más pines en el paquete, lo que probablemente conducirá a un paquete más grande, lo que reduce el rendimiento y aumenta el costo. ¿Por qué hacerlo si no lo necesitas?
marciano2020
DKNguyen