Articulo de referencia

Computación con memoria

La computación con memoria (o computación en memoria , IMC) es un paradigma que realiza cálculos directamente en matrices de memoria (RAM, RRAM, PCM) en lugar de transferir dato...

La computación con memoria (o computación en memoria , IMC) es un paradigma que realiza cálculos directamente en matrices de memoria (RAM, RRAM, PCM) en lugar de transferir datos a una CPU independiente, lo que reduce significativamente el consumo de energía y la latencia. Aborda el cuello de botella de von Neumann al permitir operaciones de datos en paralelo, como para redes neuronales y análisis de big data, a velocidades hasta miles de veces superiores a las de los métodos de almacenamiento tradicionales. Estos paradigmas pueden seguir un modelo de computación puramente espacial o un modelo de computación temporal. Este último enfoque busca reducir la sobrecarga en las FPGA . La computación con memoria difiere de los conceptos de computación en memoria o procesador en memoria .

Detalles

Estos paradigmas pueden seguir un modelo de computación puramente espacial, como en las matrices 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. Este último enfoque busca reducir la sobrecarga de la interconexión programable en las FPGA al integrar los recursos de interconexión dentro de un elemento de computación. Utiliza matrices de memoria bidimensionales densas para almacenar grandes tablas de búsqueda (LUT) de entrada múltiple y salida múltiple. La computación con memoria difiere de la computación en memoria o de los conceptos 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 destacada en el área de las arquitecturas PIM.

La computación con plataformas de memoria se utiliza típicamente para proporcionar el beneficio de la reconfigurabilidad del hardware. Las plataformas de computación reconfigurables ofrecen ventajas en términos de reducción del costo de diseño, tiempo de comercialización temprano, prototipado rápido y sistemas de hardware fácilmente personalizables. Las FPGA representan una plataforma de computación reconfigurable popular para la implementación de circuitos digitales. Siguen un modelo de computación puramente espacial. Desde su creación en 1985, la estructura básica de las FPGA ha continuado consistiendo en una matriz bidimensional de bloques lógicos configurables (CLB) y una matriz de interconexión programable. [ 1 ] El rendimiento y la disipación de potencia de las FPGA 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 las FPGA es colocar pequeñas LUT muy cerca unas de otras (denominadas 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 debida a PI en FPGA de grano fino mediante el mapeo de LUTs de entrada múltiple y salida múltiple más grandes a bloques de memoria embebidos. Aunque sigue un modelo de computación espacial similar, parte de las funciones lógicas se implementan utilizando bloques de memoria embebidos, mientras que la parte restante se realiza utilizando LUTs más pequeñas. [ 6 ] Este mapeo heterogéneo puede mejorar el área y el rendimiento al reducir la contribución de las interconexiones programables.

A diferencia del modelo de computación puramente espacial de las 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 ambos) [ 7 ] [ 8 ] en el contexto de la mejora del rendimiento y la energía con respecto a las FPGA convencionales. Estas plataformas, denominadas "computación basada en memoria" (MBC), utilizan una matriz de memoria bidimensional densa 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. La MBC puede aprovechar las ventajas de alta densidad, bajo consumo de energía y alto rendimiento de la memoria a nanoescala. [ 8 ]

Cada elemento de computación incorpora una matriz de memoria bidimensional para almacenar LUTs, un pequeño controlador para la evaluación secuencial de subfunciones y un conjunto de registros temporales para almacenar las salidas intermedias de las particiones individuales. Un marco de enrutamiento local rápido dentro de cada bloque de computación genera la dirección para el acceso a las LUTs. Múltiples de estos elementos de computación pueden conectarse espacialmente mediante una arquitectura de interconexión programable similar a la de las FPGA para permitir el mapeo de funciones grandes. La ejecución local multiplexada en el tiempo dentro de los elementos de computación puede reducir drásticamente la necesidad de interconexiones programables, lo que conlleva una gran mejora en el producto energía-retardo y una mejor escalabilidad del rendimiento entre generaciones tecnológicas. La matriz de memoria dentro de cada elemento de computación puede implementarse mediante memoria direccionable por contenido (CAM) para reducir drásticamente los requisitos de memoria para ciertas aplicaciones. [ 7 ]

Véase también

Referencias

  1. K. Compton y S. Hauck, "Computing: A Survey of systems and software", ACM Surveys , vol. 34, n.º 2, junio de 2002.
  2. SM Trimberger, Field Programmable Gate Array Technology , Norwell, MA: Kluwer, 1994.
  3. A. Rahman, S. Das, AP Chandrakasan, R. Reif, "Requisitos de cableado y tecnología de integración tridimensional para matrices de puertas programables en campo", IEEE Trans. on Very Large Scale Integration Systems , vol. 11, n.º 1, febrero de 2003.
  4. Xilinx Corporation
  5. Corporación Altera
  6. J. Cong y S. Xu, "Mapeo tecnológico para FPGA con bloques de memoria integrados", Simposio sobre matrices de puertas programables en campo, 1998.
  7. 1 2 S. Paul y S. Bhunia, "Computación reconfigurable mediante memoria direccionable por contenido para un mejor rendimiento y uso de recursos", Conferencia de Automatización del Diseño, 2008.
  8. 1 2 S. Paul, S. Chatterjee, S. Mukhopadhyay y S. Bhunia, "Computación reconfigurable a nanoescala utilizando una matriz STTRAM 2D no volátil", Conferencia Internacional sobre Nanotecnología, 2009.