Computación con memoria


Computación con memoria se refiere a plataformas informáticas donde la respuesta de la función se almacena en una matriz de memoria, ya sea de una o dos dimensiones, en forma de tablas de búsqueda (LUT) y las funciones se evalúan recuperando los valores de las LUT. Estas plataformas de computación pueden seguir un modelo de computación puramente espacial, como en la matriz de puertas programables en campo (FPGA), o un modelo de computación temporal, donde una función se evalúa a lo largo de múltiples ciclos de reloj. El último enfoque tiene como objetivo reducir la sobrecarga de la interconexión programable en FPGA al plegar los recursos de interconexión dentro de un elemento informático. Utiliza arreglos de memoria bidimensionales densos para almacenar grandes LUT de múltiples entradas y múltiples salidas. La computación con memoria difiere de la computación en memoria oConceptos de procesador en memoria (PIM), ampliamente investigados en el contexto de la integración de un procesador y memoria en el mismo chip para reducir la latencia de la memoria y aumentar el ancho de banda. Estas arquitecturas buscan reducir la distancia que recorren los datos entre el procesador y la memoria. El proyecto Berkeley IRAM es una contribución notable en el área de las arquitecturas PIM.

La computación con plataformas de memoria se usa típicamente para brindar el beneficio de la reconfigurabilidad del hardware. Las plataformas informáticas reconfigurables ofrecen ventajas en términos de costo de diseño reducido, tiempo de comercialización temprano, creación rápida de prototipos y sistemas de hardware fácilmente personalizables. Los FPGA presentan una popular plataforma informática reconfigurable para implementar circuitos digitales. Siguen un modelo de computación puramente espacial. Desde su creación en 1985, la estructura básica de los FPGA ha seguido consistiendo en una matriz bidimensional de bloques lógicos configurables (CLB) y una matriz de interconexión programable. [1] El rendimiento de la FPGA y la disipación de energía están dominados en gran medida por la elaborada arquitectura de interconexión programable (PI). [2] [3]Una forma efectiva de reducir el impacto de la arquitectura PI en FPGA es colocar LUT pequeños muy cerca (denominados clústeres) y permitir la comunicación dentro del clúster mediante interconexiones locales. Debido a los beneficios de una arquitectura FPGA en clúster, los principales proveedores de FPGA la han incorporado en sus productos comerciales. [4] [5] También se han realizado investigaciones para reducir la sobrecarga debido a PI en FPGA de grano fino mediante el mapeo de LUT de múltiples entradas y múltiples salidas más grandes a bloques de memoria integrados. Aunque sigue un modelo de computación espacial similar, parte de las funciones lógicas se implementan utilizando bloques de memoria integrados, mientras que la parte restante se realiza utilizando LUT más pequeños. [6]Un mapeo tan heterogéneo puede mejorar el área y el rendimiento al reducir la contribución de las interconexiones programables.

Contrariamente al modelo de computación puramente espacial de FPGA, también se ha investigado una plataforma de computación reconfigurable que emplea un modelo de computación temporal (o una combinación de temporal y espacial) [7] [8] en el contexto de mejorar el rendimiento y la energía en comparación con los modelos convencionales . FPGA. Estas plataformas, denominadas informática basada en memoria (MBC), utilizan una densa matriz de memoria bidimensional para almacenar las LUT. Dichos marcos se basan en dividir una función compleja ( f ) en pequeñas subfunciones; representar las subfunciones como LUT de múltiples entradas y múltiples salidas en la matriz de memoria; y evaluar la función f en múltiples ciclos. MBC puede aprovechar las ventajas de alta densidad, bajo consumo y alto rendimiento de la memoria a nanoescala. [8]