Teniendo en cuenta que un chip RAM solo puede acceder a una dirección de memoria a la vez, ¿no es más rápido usar múltiples chips RAM?

Recuerdo un sistema de Silicon Graphics de alrededor de 1999 que usaba esta función. La documentación explicaba que para que el “modo intercalado” funcionara correctamente, las tarjetas RAM tenían que ser del mismo tamaño y estar en las ranuras correctas, por ejemplo, 2G en las ranuras 1,2,5,6 no 1,2,3,4. De lo contrario, la RAM estaría disponible, pero a una velocidad menor.

En los sistemas más simples que he construido, los chips de RAM comparten un solo bus de datos. Tienen salidas de tres estados para que solo un chip impulse el bus a la vez (de lo contrario, habría un conflicto: errores de datos y consumo de energía). Los bits de dirección más altos seleccionan qué chip controla el bus, mientras que los bits más bajos van a las líneas de dirección en el chip.

Cuando estaba comprando chips de RAM, pagabas más por un tamaño más grande, pero también pagabas más por un tiempo de acceso más corto. El sistema funcionaba con una cierta velocidad de reloj y, si quería que funcionara, tendría que comprar chips lo suficientemente rápidos. Los sistemas más complejos usarían una pequeña cantidad de costosos chips rápidos de RAM como caché y una gran cantidad de RAM más lenta y más barata para el almacenamiento principal. Los sistemas modernos integran caché en el chip de la CPU.

Bien podría haber una pequeña variación en el tiempo de acceso para diferentes bits del chip. Pero los sistemas modernos son todos sincrónicos, utilizando un reloj, precisamente para evitar tener que lidiar con ese tipo de cosas. Todos los bits están sincronizados en la CPU al mismo tiempo.

Sus suposiciones no son correctas, pero esa es la forma en que generalmente se explica.

En los chips RAM reales, se accede a una FILA completa de bits a la vez, y el chip tiene 32, 64, 128 o 256 mordidas por fila, por lo que se puede acceder a muchos bits a la vez.

Y eso es solo un chip, un módulo DIMM puede tener 8 o 16 chips, así que multiplíquelo para obtener la cantidad de bits accesibles a la vez.

Y la mayoría de las placas base tienen ranuras para 2, 4, 8 o incluso 16 módulos de memoria, así que multiplique nuevamente.

Bueno, eso puede ser una exageración, a veces no hay tantas líneas de datos a nivel de chip / módulo / placa base, por lo que algunas tienen multiplexación de tiempo, pero se entiende la idea. La CPU tiene como 32 o 64 datos en líneas, por lo que puede capturar datos a un ritmo realmente rápido y amplio.

Y el negocio sobre la tasa de acceso constante no es del todo correcto, si una dirección está justo al lado de la dirección a la que se accedió anteriormente, es accesible sin reenviar la dirección, y esto sucede en varios niveles, en el chip, en el caché de la placa base ( si existe), en el caché de la CPU (varios niveles). Y también depende de si la protección de memoria virtual y la asignación están activadas o no, eso siempre agrega un retraso adicional si está activada.

Sí, puede ser más rápido usar múltiples chips ram. Si una PC tiene múltiples bancos de chips ram, a veces puede emitir solicitudes a los diferentes bancos de forma independiente. Pero también es más caro. Las celdas de memoria son solo una pequeña parte del costo del chip. Los pines y controladores de entrada / salida, empaque, PCB, etc. significan que dos chips ram más pequeños costarán casi el doble que un chip ram grande. Si bien, teóricamente, si todo funciona perfectamente, podrían tener el doble de rendimiento, en la práctica se interponen varias cosas, por ejemplo, es difícil asegurarse de que las ubicaciones a las que desea acceder estén en bancos opuestos, y usted no obtener el doble de rendimiento. Lo que, en promedio, hace que no valga la pena. La gente ha intentado crear arquitecturas informáticas inteligentes para explotar múltiples carneros, pero ninguno de ellos ha funcionado. Lo que no quiere decir que no se pueda hacer, pero la historia está en contra.

Esencialmente, un Ram es solo una pared de casilleros, por lo que puede ir a cualquier casillero. Simplemente envíe la dirección a todos los casilleros, y el que tenga esa dirección presentará su contenido para leer, o aceptará los datos actuales para escribir.

En realidad, esto no es realmente cierto. Ram está dividido en páginas y bancos, y en realidad es más rápido acceder a ubicaciones que están en la misma página y banco que el último. Pero el cambio de velocidad es pequeño en comparación con el tiempo necesario para llevar los datos del chip ram a la CPU. Nuevamente, las personas han intentado trucos para explotar esta ventaja de velocidad y, en general, no han valido la pena el esfuerzo. Como un programador que escribe código que se ejecuta en la CPU, varias capas de caché lo protegen del RAM. El caché realmente funciona en tiempo constante, por lo que desde el punto de vista de los programadores comunes, puede ignorar estas pequeñas variaciones en el tiempo de acceso.

Al igual que con el software de optimización prematura, se ha demostrado que optimizar los accesos a la memoria es una de las cosas que tiende a ser arrollado por la Ley de Moore. Pasas tiempo optimizando para una generación de hardware, y para cuando lo haces funcionar, la próxima generación de hardware, sin ajustar, está superando a tu hardware antiguo cuidadosamente ajustado.

Gracias por A2A.

El uso de múltiples chips RAM es estándar en el diseño de PC. Una máquina basada en 4kB Z80 usaría ocho chips de 4kb RAM. Todos los chips comparten los mismos buses de direcciones, pero al leer los datos, cada bit individual se lee de la fila de chips en paralelo.

Solo porque ve “menos” chips en una memoria RAM en una PC moderna, la estructura interna de LSI sigue el mismo patrón, aunque la CPU está leyendo el equivalente a 64 chips de memoria de un solo bit.

Como se cita en otras respuestas, la banca y la canalización permiten acceder a la RAM en un modo entrelazado para que la siguiente lectura secuencial provenga de un conjunto diferente de chips (y, a veces, un grupo diferente de memorias RAM). Esto significa que la lectura y la escritura se pueden hacer más rápido ya que el entrelazado permite un período de estabilización para que cada “banco” se recupere de la lectura o escritura anterior.

Ha habido experimentos y hay algunos kits que le permitirán usar chips de memoria de “un solo bit” en una disposición en serie para escribir la “palabra” completa de la CPU. Tenga en cuenta que el significado original de un byte era el ancho de banda del procesador (por falta de una palabra mejor). Esto significaba que, dependiendo de la CPU en uso, un byte podría ser de cuatro bits, ocho bits, etc., y había un mainframe de IBM que usaba una CPU de 36 bits de ancho. Eso significaba que cuando las máquinas de 16 bits comenzaron a llegar al mercado interno, la medida de kB debería haber sido el almacenamiento total en kb dividido por dieciséis.

Había dos razones por las que esto no sucedió. Una era la inercia típica del usuario, en la que el público entendía que un byte era ocho bits, y un número basado en ocho bits para el almacenamiento de kB en una máquina de dieciséis bits hacía que los números parecieran más grandes. Byte = 8 bits se hicieron tan arraigados que el ancho de banda de la CPU de 16, 32 o 64 se llama “palabra”.