¿Qué es Processing In Memory y por qué es importante?

Processing in Memory o PIM es la integración de un procesador con una memoria de acceso aleatorio RAM (Random Access Memory) en un solo chip. Esta práctica consiste en tomar medida sobre los datos que se encuentran completamente en la memoria de la computadora. Esto contrasta con otras técnicas de procesamiento de datos que se basan en la lectura y escritura de datos hacia y desde medios más lentos, como unidades de disco.

El procesamiento en memoria generalmente implica entornos a gran escala en los que se agrupan varias computadoras (arreglos) para que su RAM colectiva se pueda usar como un medio de almacenamiento grande y rápido. El arreglo acelera el procesamiento general de las tareas al realizarlas dentro del módulo de memoria.

Entonces, al utilizar esta práctica se consigue un mejor nivel de procesamiento en términos de velocidad y optimización, pero ¿Cómo funciona y cómo se consiguen estos avances?

¿Cómo funciona PIM?

¿Conoces el concepto del cuello de botella de von Neumann? No te preocupes, te lo explicamos a grandes rasgos, todas las arquitecturas informáticas estándar tienen un problema de latencia, debido a que todo el procesamiento lo realiza el procesador, y la latencia es generada debido a la inactividad del procesador durante el tiempo que se toma al acceder a la memoria, además de que la memoria no está involucrada en el procesamiento, ya que sólo se utiliza para almacenar datos y programas. Se puede observar este problema al momento de utilizar una aplicación o sistema informático, cuando el volumen de datos es grande, es un proceso muy tardado mover los datos entre la memoria y el procesador.

John von Neumann

Este problema lo aborda la práctica de PIM, debido a que funciona eliminando todos los accesos lentos a los datos y confiando solo en los datos que se almacenan en la RAM, se agrega procesamiento directamente a la memoria, manipulando datos en la memoria de la computadora. Y en caso de que se tenga un arreglo de computadoras para ejecutar una aplicación, el software divide su procesamiento en tareas más pequeñas distribuidas para cada computadora ejecutándose en paralelo reduciendo el tiempo de procesamiento y de una forma más organizada.

Processing In Memory es muy popular hoy en día debido a su gran ventaja de rendimiento sobre las técnicas de procesamiento que hacen la lectura y escritura de datos en medios más lentos. El procesamiento en memoria es descrito como “en tiempo real”, ya que a pesar de que no es instantáneo, al tomar solo unos microsegundos, es prácticamente imperceptible el tiempo de espera para los ojos humanos.

Ejemplos prácticos

Como se ha mencionado a lo largo de este pequeño artículo, es esencial aprovechar la ventaja de la velocidad de procesamiento de esta técnica que prioriza el uso de las memorias en el procesamiento, por lo que en algunas aplicaciones comerciales su uso encaja perfectamente. Estas aplicaciones pueden ser en el procesamiento de pagos, la detección de fraudes, el mantenimiento predictivo, el comercio algorítmico, automóviles autónomos, además de muchas otras donde se necesita un procesamiento de alta velocidad.

En términos comerciales, el tener un mejor procesamiento con menor tiempo y mayor optimización puede significar en una gran ventaja comercial, debido a que generan una ventaja competitiva. Un sistema más rápido puede significar en la ganancia o ahorro de dinero, por lo que su uso no solo se debe de ver dentro de las ventajas tecnológicas, sino analizar completamente sus posibles aplicaciones en otras disciplinas donde el tiempo de procesamiento sea crucial y pueda generar un gran cambio, como por ejemplo economía o incluso medicina.

Desafíos para lograr un procesamiento de alta velocidad en memoria

Aunque todo tipo de avance tecnológico traiga como consecuencia el aumento de calidad de vida del ser humano, detrás de esto hay grandes esfuerzos y estudios que buscan la optimización de cada sistema, y el procesamiento en memoria no se queda atrás con los siguientes desafíos: 

  • Diseño: PIM requiere un diseño paralelo sofisticado para utilizar los recursos de memoria y procesamiento, así como una comprensión más profunda de cómo se pueden usar los diversos tipos de memoria para diseñar un sistema PIM. 
  • Manufactura: Desde este punto de vista, es crucial reducir la distancia física que deben recorrer las señales entre memoria y la lógica computacional, que puede incrementar costos o crear problemas en cuanto a temperatura que se debe disipar. Aquí entra otro concepto de los cuales se ha hablado en estos espacios, que es la computación no reversible y los métodos de computación no tradicionales y no emergentes
  • Confianza en la memoria: La total confianza en la memoria genera un posible problema para el sistema, ya que en caso de que la memoria RAM o flash estén dañadas, puede comprometer los datos. 
  • Costo: Los sistemas basados en memoria son más caros que los sistemas tradicionales de computación, el costo puede ser inaccesible para pequeñas compañías y para aplicaciones de bajo perfil, mientras que para grandes compañías no puede ser problema alguno. Se debe de analizar correctamente la necesidad de un sistema como ese y si de verdad es necesario invertir en ello. 

Podemos concluir que las memorias llegaron a salvar el día, el procesamiento y la computación, además de que podemos incluir este procesamiento como una nueva forma de computación. El mundo avanza a un ritmo vertiginoso y parece ser que el futuro nos está alcanzando. Todos los conocimientos deben ser bien fundamentados en pro de la humanidad y al parecer, el procesamiento en memoria ayudará bastante en aplicaciones antes mencionadas.

Referencias

​Awati, R. (17 de Febrero de 2022). Processing in Memory. Obtenido de Tech Target, Search Business Analytics: https://www.techtarget.com/searchbusinessanalytics/definition/processing-in-memory-PIM 

Hazelcast. (9 de Mayo de 2021). In-Memory Processing. Obtenido de Hazelcast, glossary: https://hazelcast.com/glossary/in-memory-processing/ 

Deja un comentario