Processing-in-Memory (PIM), también conocido como In-Memory Computing (IMC) o Near-Memory Processing (NMP), es un paradigma arquitectónico diseñado para superar el 'cuello de botella de von Neumann' (von Neumann bottleneck). En lugar de transferir datos constantemente entre la unidad central de procesamiento (CPU) y la memoria principal (RAM) para su procesamiento, PIM permite que ciertas operaciones computacionales se realicen directamente dentro de los chips de memoria o en unidades de procesamiento adyacentes a ellos. Esto se logra mediante la integración de unidades lógicas y aritméticas (ALUs) o aceleradores especializados dentro de los módulos de memoria (por ejemplo, DRAM) o en interposers 2.5D/3D que conectan la lógica de procesamiento con las capas de memoria.
La implementación de PIM aún está en fases de investigación y desarrollo, pero existen prototipos y productos emergentes. Ejemplos incluyen la memoria HBM (High Bandwidth Memory) con lógica de procesamiento integrada, como el Samsung Aquabolt-XL o el SK Hynix GDDR6-AiM (Accelerator in Memory), que incorporan unidades de procesamiento simples para tareas específicas como inferencia de IA o operaciones de base de datos. Otros enfoques incluyen el uso de memorias no volátiles (NVM) como ReRAM o MRAM, donde las operaciones lógicas se pueden realizar directamente manipulando la resistencia de las celdas de memoria. Compañías como IBM con su proyecto 'In-Memory Computing' y startups como UPMEM con sus procesadores DPU (DRAM Processing Unit) están explorando activamente este campo, ofreciendo soluciones para acelerar cargas de trabajo intensivas en datos como analítica, bases de datos y machine learning.
Para un arquitecto de sistemas, PIM representa una oportunidad estratégica para diseñar sistemas con eficiencias energéticas y de rendimiento sin precedentes en cargas de trabajo intensivas en datos. El valor radica en la reducción drástica del movimiento de datos, lo que disminuye el consumo de energía y la latencia. Sin embargo, su adopción implica trade-offs significativos: la programación de PIM es compleja, a menudo requiere nuevos modelos de programación y compiladores específicos. La granularidad de las operaciones PIM puede ser limitada, y la integración con el ecosistema de software existente es un desafío. Los arquitectos deben evaluar si los beneficios de rendimiento y eficiencia energética superan la complejidad de desarrollo y la posible necesidad de reescribir partes críticas de las aplicaciones, considerando el costo de hardware especializado y la madurez de la tecnología para casos de uso específicos como la inferencia de IA en el borde o el procesamiento de grandes volúmenes de datos en bases de datos analíticas.