La memoria RAM computacional ( C-RAM ) es una memoria de acceso aleatorio con elementos de procesamiento integrados en el mismo chip. Esto permite utilizar la C-RAM como un ordenador SIMD . También se puede utilizar para optimizar el uso del ancho de banda de la memoria dentro de un chip. La técnica general para realizar cálculos en memoria se denomina procesamiento en memoria (PIM).
Descripción general
Las implementaciones más influyentes de RAM computacional surgieron del Proyecto IRAM de Berkeley . La IRAM vectorial (V-IRAM) combina DRAM con un procesador vectorial integrado en el mismo chip. [ 1 ]
La DRAM de arquitectura reconfigurable (RADram) es una DRAM con elementos lógicos FPGA de computación reconfigurable integrados en el mismo chip. [ 2 ] Las simulaciones de SimpleScalar muestran que la RADram (en un sistema con un procesador convencional) puede ofrecer un rendimiento varios órdenes de magnitud superior en algunos problemas que la DRAM tradicional (en un sistema con el mismo procesador).
Algunos problemas computacionales que son fácilmente paralelizable ya están limitados por el cuello de botella de von Neumann entre la CPU y la DRAM. Algunos investigadores esperan que, por el mismo costo total, una máquina construida con RAM computacional se ejecute órdenes de magnitud más rápido que una computadora tradicional de propósito general en este tipo de problemas. [ 3 ]
A partir de 2011, el "proceso DRAM" (pocas capas; optimizado para alta capacitancia) y el "proceso CPU" (optimizado para alta frecuencia; normalmente el doble de capas BEOL que DRAM; dado que cada capa adicional reduce el rendimiento y aumenta el coste de fabricación, estos chips son relativamente caros por milímetro cuadrado en comparación con DRAM) son lo suficientemente distintos como para que existan tres enfoques para la RAM computacional:
- Partiendo de un proceso optimizado para CPU y un dispositivo que utiliza mucha SRAM integrada, se añade un paso de proceso adicional (lo que lo hace aún más caro por milímetro cuadrado) para permitir la sustitución de la SRAM integrada por DRAM integrada ( eDRAM ), lo que proporciona un ahorro de área de aproximadamente 3 veces en las áreas de SRAM (y, por lo tanto, reduce el coste neto por chip).
- Partiendo de un sistema con un chip de CPU y uno o varios chips de DRAM separados, se añaden pequeñas cantidades de capacidad de cálculo de "coprocesador" a la DRAM, trabajando dentro de los límites del proceso de DRAM y añadiendo solo pequeñas cantidades de área a la DRAM, para realizar tareas que de otro modo se verían ralentizadas por el estrecho cuello de botella entre la CPU y la DRAM: rellenar con ceros áreas seleccionadas de la memoria, copiar grandes bloques de datos de una ubicación a otra, encontrar dónde (si es que existe) aparece un byte determinado en algún bloque de datos, etc. El sistema resultante —el chip de CPU sin modificar y los chips de "DRAM inteligente"— es al menos tan rápido como el sistema original y potencialmente un poco más económico. Se espera que el coste de la pequeña cantidad de área adicional se compense con creces gracias al ahorro en costoso tiempo de prueba, ya que ahora hay suficiente capacidad de cálculo en una "DRAM inteligente" para que una oblea completa de DRAM realice la mayoría de las pruebas internamente en paralelo, en lugar del enfoque tradicional de probar completamente un chip de DRAM a la vez con un costoso equipo de prueba automático externo . [ 1 ]
- Partiendo de un proceso optimizado para DRAM, se modifica dicho proceso para que se asemeje un poco más al "proceso de la CPU" y se construye una CPU de propósito general (de frecuencia relativamente baja, pero de bajo consumo y ancho de banda muy alto) dentro de los límites de ese proceso.
Algunas CPU diseñadas para ser construidas sobre una tecnología de proceso DRAM (en lugar de una tecnología de proceso "CPU" o "lógica" específicamente optimizada para CPU) incluyen The Berkeley IRAM Project , TOMI Technology [ 4 ] [ 5 ] y el AT&T DSP1 .
Debido a que un bus de memoria a la memoria externa tiene una capacitancia muchas veces mayor que la de un bus de memoria en el chip, un sistema con chips DRAM y CPU separados puede tener un consumo de energía varias veces mayor que un sistema IRAM con el mismo rendimiento informático . [ 1 ]
Debido a que se espera que la DRAM computacional funcione a mayor temperatura que la DRAM tradicional, y el aumento de la temperatura del chip produce una fuga de carga más rápida de las celdas de almacenamiento de DRAM, se espera que la DRAM computacional requiera una actualización de DRAM más frecuente . [ 2 ]
Procesador en memoria/cerca de memoria
Un procesador en memoria o cerca de ella (PINM, por sus siglas en inglés) se refiere a un procesador de computadora (CPU) estrechamente acoplado a la memoria , generalmente en el mismo chip de silicio .
El objetivo principal de fusionar los componentes de procesamiento y memoria de esta manera es reducir la latencia de la memoria y aumentar el ancho de banda . Alternativamente, reducir la distancia que deben recorrer los datos reduce los requisitos de energía del sistema. [ 6 ] Gran parte de la complejidad (y por lo tanto el consumo de energía ) de los procesadores actuales proviene de estrategias para evitar bloqueos de memoria.
Ejemplos
En la década de 1980, se integró una pequeña CPU que ejecutaba FORTH en un chip DRAM para mejorar las operaciones PUSH y POP. FORTH es un lenguaje de programación orientado a pilas , y esta mejora optimizó su eficiencia.
El transputer también tenía una gran memoria integrada en el chip, dado que fue fabricado a principios de la década de 1980, lo que lo convertía esencialmente en un procesador en memoria.
Entre los proyectos PIM más destacados se encuentran el proyecto Berkeley IRAM (IRAM) de la Universidad de California, Berkeley [ 7 ] y el esfuerzo PIM de la Universidad de Notre Dame [ 8 ] .
Taxonomía PIM basada en DRAM
Estos cuatro grupos se corresponden con la distinción más amplia, utilizada en la literatura sobre procesamiento en memoria , entre procesamiento cerca de la memoria (PnM), que añade lógica cerca de las matrices de memoria, y procesamiento usando memoria (PuM), que realiza cálculos utilizando las propias celdas y circuitos de memoria. [ 9 ]
Los diseños de memoria cercana y en memoria basados en RAM se pueden clasificar en cuatro grupos:
- Los enfoques a nivel DIMM colocan las unidades de procesamiento cerca de los chips de memoria (una forma de procesamiento cerca de la memoria) . Estos enfoques requieren un cambio mínimo o nulo en el diseño de los datos (por ejemplo, Chameleon, [ 10 ] y RecNMP [ 11 ] ).
- Los enfoques a nivel de capa lógica integran unidades de procesamiento en la capa lógica de memorias de pila 3D y pueden beneficiarse del alto ancho de banda de las memorias de pila 3D (procesamiento cerca de la memoria) (por ejemplo, TOP_PIM [ 12 ] ).
- Los enfoques a nivel de banco ubican las unidades de procesamiento dentro de las capas de memoria, cerca de cada banco (procesamiento cerca de la memoria) . UPMEM y PIM de Samsung [ 13 ] son ejemplos de estos enfoques.
- Los enfoques a nivel de submatrices procesan datos dentro de cada submatriz; los diseños que aprovechan el comportamiento analógico de las celdas para realizar, por ejemplo, operaciones bit a bit en una fila completa son una forma de procesamiento mediante memoria . Los enfoques a nivel de submatrices proporcionan el mayor paralelismo de acceso, pero a menudo solo realizan operaciones simples, como operaciones bit a bit en una fila de memoria completa (por ejemplo, DRISA [ 14 ] ) o procesamiento secuencial de la fila de memoria utilizando una ALU de mundo único (por ejemplo, Fulcrum [ 15 ] ).
Véase también
- Computación con memoria
- SyNAPSE también combina procesamiento y memoria en un solo chip.
- Procesamiento en memoria
Referencias
- 1 2 3 Christoforos E. Kozyrakis, Stylianos Perissakis, David Patterson, Thomas Anderson, et al. "Procesadores escalables en la era de los mil millones de transistores: IRAM" . IEEE Computer (revista) . 1997. dice: "La IRAM vectorial... puede funcionar como un motor de autodiagnóstico integrado en paralelo para la matriz de memoria, reduciendo significativamente el tiempo de prueba de la DRAM y el costo asociado".
- 1 2 Mark Oskin, Frederic T. Chong y Timothy Sherwood. "Páginas activas: un modelo de computación para la memoria inteligente". Archivado el 22 de septiembre de 2017 en Wayback Machine . 1998.
- ↑ Daniel J. Bernstein . "Notas históricas sobre el enrutamiento de malla en NFS" . 2002. "Programación de una RAM computacional".
- ↑ "TOMI, el microprocesador de milivatios"
- ↑ Yong-Bin Kim; Tom W. Chen (11 de noviembre de 1998). "Evaluación de la tecnología combinada DRAM/lógica" (PDF) . www.ece.neu.edu . Archivado del original (PDF) el 25 de julio de 2011.
- ↑ "GYRFALCON COMIENZA A ENVIAR EL CHIP DE IA" . electronics-lab . 10 de octubre de 2018. Consultado el 5 de diciembre de 2018 .
- ↑ IRAM
- ↑ "PIM" . Archivado del original el 9 de noviembre de 2015. Consultado el 26 de mayo de 2015 .
- ↑ Mutlu, Onur; Ghose, Saugata; Gómez-Luna, Juan; Ausavarungnirun, Rachata (2022). «Una introducción moderna al procesamiento en memoria». Computación emergente: de los dispositivos a los sistemas: una mirada más allá de Moore y Von Neumann . Springer. págs. 171–243 . arXiv : 2012.03112 . doi : 10.1007/978-981-16-7487-7_7 . ISBN 978-981-16-7486-0.
- ↑ Hadi Asghari-Moghaddam, et al., "Chameleon: Arquitectura de aceleración casi DRAM versátil y práctica para sistemas de memoria grandes".
- ↑ Liu Ke, et al., "RecNMP: Aceleración de la recomendación personalizada con procesamiento cercano a la memoria".
- ↑ Dongping, Zhang, et al., "TOP-PIM: Procesamiento programable orientado al rendimiento en memoria".
- ↑ Sukhan Lee, et al., "Arquitectura de hardware y pila de software para PIM basada en tecnología DRAM comercial: producto industrial".
- ^ Shuangchen Li, et al., "DRISA: un acelerador in situ reconfigurable basado en dram".
- ↑ Marzieh Lenjani, et al., "Fulcrum: un mecanismo simplificado de control y acceso para aceleradores in situ flexibles y prácticos".
Bibliografía
- Duncan Elliott, Michael Stumm, W. Martin Snelgrove, Christian Cojocaru, Robert McKenzie, " RAM computacional: Implementación de procesadores en memoria ", IEEE Design and Test of Computers , vol. 16, n.º 1, págs. 32–41, enero–marzo de 1999. doi : 10.1109/54.748803 .
- Memoria de computadora
- Arquitectura de computadoras