Saltar al contenido

¿Por qué el tiempo de acceso a la memoria RAM (cualquier tipo) disminuye tan lentamente?

Después de investigar en varios repositorios y páginas de internet al final hemos hallado la resolución que te enseñamos aquí.

Solución:

Es porque es más fácil y económico aumentar el ancho de banda de la DRAM que disminuir la latencia. Para obtener los datos de una fila abierta de RAM, se necesita una cantidad de trabajo no trivial.

La dirección de la columna debe decodificarse, los muxes que seleccionan a qué líneas acceder deben controlarse y los datos deben moverse a través del chip hacia los búferes de salida. Esto toma un poco de tiempo, especialmente dado que los chips SDRAM se fabrican en un proceso diseñado para densidades de RAM altas y no para velocidades lógicas altas. Para aumentar el ancho de banda, digamos usando DDR (1, 2, 3 o 4), la mayor parte de la lógica se puede ampliar o canalizar, y puede funcionar a la misma velocidad que en la generación anterior. Lo único que necesita ser más rápido es el controlador de E/S para los pines DDR.

Por el contrario, para disminuir la latencia es necesario acelerar toda la operación, lo cual es mucho más difícil. Lo más probable es que las partes de la RAM deban fabricarse en un proceso similar al de las CPU de alta velocidad, lo que aumenta sustancialmente el costo (el proceso de alta velocidad es más costoso, además de que cada chip debe pasar por 2 procesos diferentes).

Si compara las memorias caché de la CPU con la RAM y el disco duro/SSD, existe una relación inversa entre el almacenamiento grande y el almacenamiento rápido. Un L1$ es muy rápido, pero solo puede almacenar entre 32 y 256 kB de datos. La razón por la que es tan rápido es porque es pequeño:

  • Se puede colocar muy cerca de la CPU que lo usa, lo que significa que los datos tienen que viajar una distancia más corta para llegar a ellos.
  • Los cables en él se pueden acortar, lo que nuevamente significa que los datos tardan menos en viajar a través de él.
  • No ocupa mucha área ni muchos transistores, por lo que hacerlo en un proceso de velocidad optimizada y usar mucha energía por bit almacenado no es tan costoso.

A medida que asciende en la jerarquía, cada opción de almacenamiento aumenta en capacidad, pero también en área y más lejos del dispositivo que la usa, lo que significa que el dispositivo debe volverse más lento.

C_Elegans proporciona una parte de la respuesta: es difícil para disminuir la latencia global de un ciclo de memoria.

La otra parte de la respuesta es que en los sistemas modernos de memoria jerárquica (múltiples niveles de almacenamiento en caché), la memoria banda ancha tiene una influencia mucho más fuerte en el rendimiento general del sistema que la memoria latenciay ahí es donde se han centrado todos los esfuerzos de desarrollo más recientes.

Este es true tanto en computación general, donde muchos procesos/subprocesos se ejecutan en paralelo, como en sistemas integrados. Por ejemplo, en el trabajo de video HD que hago, no me importan las latencias del orden de milisegundos, pero sí necesito varios gigabytes/segundo de ancho de banda.

No tengo muchas ideas, pero espero que sea un poco de todo.

Económico

Para la mayoría de ordenadores/teléfonos, la velocidad es más que suficiente. Para almacenamientos de datos más rápidos, se ha desarrollado SSD. Las personas pueden usar video/música y otras tareas intensivas de velocidad en (casi) tiempo real. Por lo tanto, no hay tanta necesidad de más velocidad (excepto para aplicaciones específicas como la predicción del tiempo, etc.).

Otra razón es para procesar una velocidad de RAM muy alta, se necesitan CPU que sean rápidas. Y esto viene con una gran cantidad de uso de energía. Dado que la tendencia de usarlos en dispositivos con batería (como teléfonos móviles), impide el uso de RAM (y CPU) muy rápidas, por lo que tampoco es económicamente útil fabricarlos.

Técnico

Al disminuir el tamaño de los chips/IC (nivel nm ahora), la velocidad aumenta, pero no de manera significativa. Se usa más a menudo para aumentar la cantidad de RAM, que es más necesaria (también por una razón económica).

Fundamental

Como ejemplo (ambos son circuitos): la forma más fácil de obtener más velocidad (utilizada por SSD) es simplemente distribuir la carga entre varios componentes, de esta manera las velocidades de “procesamiento” también se suman. Compare usando 8 memorias USB leyendo al mismo tiempo y combinando los resultados, en lugar de leer datos de 1 memoria USB uno tras otro (toma 8 veces más tiempo).

Te mostramos las comentarios y valoraciones de los lectores

Si entiendes que ha resultado de provecho este artículo, agradeceríamos que lo compartas con el resto desarrolladores y nos ayudes a difundir este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *