En informática existen multitud de conceptos que son inventados, pero tardan años en ser implementados en el hardware doméstico, uno de estos conceptos es la Inteligente RAM o IRAM, el cuál podría ser una de las tecnologías que influya a las memorias RAM que veamos en el futuro. Si quieres saber en qué consiste este interesante concepto y cómo funciona, nosotros te lo explicamos de manera detallada.
La memoria RAM es una de las piezas fundamentales de un ordenador y es tan importante como la CPU, ya que sin la RAM la CPUno puede ejecutar los programas.
No obstante, en los últimos años las mejoras de la memoria RAM no han resultado en ningún cambio revolucionario y es una tecnología que sigue una monótona evolución generación tras generación, un paradigma que llegará a un límite en un determinado momento, en el cual los arquitectos tendrán que buscar nuevas soluciones para solventar los nuevos cuellos de botella que se irán presentando.
La monótona evolución de la RAM
Con cada generación de las memorias DDR, ya sean la DDR estándar, la GDDR o incluso la LPDDR ocurre el siguiente proceso:
- Se utiliza un nuevo nodo de fabricación para una nueva generación de memoria.
- El voltaje necesario en el nuevo nodo de fabricación para alcanzar la misma velocidad que en la generación anterior es más bajo.
- Se sube la velocidad de reloj con el nuevo nodo, con ello se aumenta el ancho de banda de la memoria.
- Se utiliza la mayor densidad para aumentar la capacidad de la memoria.
Este proceso ha sido continuo durante varias generaciones, el problema es que con cada nuevo nodo de fabricación que va apareciendo en el mercado es que la velocidad que se obtiene respecto al nodo anterior es cada vez más baja, lo cual amplia el enorme abismo entre el procesador y la RAM, el cual sigue creciendo año tras año de manera cada vez más progresiva.
RAM inteligente, un procesador dentro de la memoria
El concepto de la IRAM es colocar un procesador integrado en cada uno de los chips de memoria RAM, este no sería una CPU completa, pero serviría para acelerar ciertas operaciones que se hacen de cara a la RAM, gracias a que dicho procesador esta en la propia memoria. Y lo hará consumiendo mucho menos energía por la menos distancia de las vías de comunicación.
¿Una posible aplicación? Supongamos que queremos copiar el contenido de un banco de memoria a otro, en los procesadores actuales esa copia de datos es realizada por el procesador utilizando la propia memoria RAM de soporte. Debido a la distancia entre la CPU y la RAM, la CPU hará esa tarea una velocidad mucho más lenta que el procesador dentro de la RAM
Hay que recordar que no estamos hablando de una CPU, ya que no ejecutaría un programa de manera secuencial como si lo hce procesador, sino que las instrucciones que ejecuta son seleccionadas por el procesador (CPU, GPU, etc) que esta conectado a la RAM inteligente.
¿Como se utilizaría la RAM Inteligente?
Cuando una CPU se comunica con la RAM lo que hace es indicarle la dirección de memoria donde se encuentra el dato al que quiere acceder, tanto si es para lectura como escritura, para hacer esto tanto la RAM como el procesador tienen tiene dos colecciones de pines para comunicarse entre si.
- Pines para direccionamiento: Que apuntan a un banco de memoria concreto
- Pines de datos: Que transmiten los datos desde y hacia los bancos de memoria.
A la hora de acceder a la RAM: primero la CPU indica la dirección y luego el dato.
Para la RAM inteligente se añaden una serie de pines adicionales, los cuales sirven para escoger que instrucción realizará el procesador interno en la RAM con los datos dentro de la misma. La cantidad de instrucciones que soporte será el cuadrado de los pines asignados para instrucción, por ejemplo si se asignan 8 pines la cantidad de instrucciones sera 256.
Mayor rendimiento en el procesador gracias a la RAM inteligente
Debido a la naturaleza de la RAM, todo procesador independientemente de su arquitectura, tiene que esperar que la RAM le responda cuando una instrucción ha realizado una petición de datos a la misma, debido a que la «distancia» entre los procesadores y la RAM es cada vez más grande hay ciertas instrucciones que progresan menos y menos generación tras generación, por lo que se llegará al punto en que la mayoría de instrucciones serán más lentas en las nuevas arquitecturas.
Con las memorias inteligentes esto no pasará, la CPU podrá seguir ejecutando instrucciones sin tener que esperar, ya que solo tendrá que esperar que la RAM inteligente ponga el dato en el bus de datos de la CPU. En el caso de una instrucción que manipule un valor de la RAM no tendrá que esperar a realizar el trabajo, solo tendrá que decirle a la RAM inteligente que escriba ese dato en un banco determinado y olvidarse de ello.
Por lo que aporta es una aceleración en todas las instrucciones que dependen de la velocidad de la memoria en diferentes tipos de procesadores, ya que el procesador interno en la RAM tardará menos datos en buscar el dato y modificarlo o enviarlo a la CPU que la propia CPU.
Diferentes aplicaciones la RAM inteligente
Hay diferentes aplicaciones para la RAM inteligente.
- En multimedia se pueden incluir decodificadores de formatos de imagen como JPEG, formatos de música como MP3,
- De cara a la criptografía de datos, podemos hacer que el procesador de la RAM inteligente cifre y descifre utilizando algoritmos criptográficos los datos incluidos en la RAM, esto es clave para mercados donde la privacidad de los datos es muy importante.
- Se puede utilizar para la búsqueda y manipulación de información en una base de datos a gran velocidad.
- Recolector de basura en memoria, quien haya programada en Java entenderá las ventajas de esto.
La pregunta clave es: ¿en qué momento se hará indispensable la aplicación de RAM inteligente en nuestros ordenadores? En el momento en que la diferencia de velocidad entre la RAM y los procesadores afecte la evolución del rendimiento de estos últimos.