Memoria de acceso aleatorio con elementos de procesamiento integrados en el mismo chip
La RAM computacional ( C-RAM ) es una memoria de acceso aleatorio con elementos de procesamiento integrados en el mismo chip. Esto permite que la C-RAM se utilice como una computadora SIMD . También se puede utilizar para utilizar de manera más eficiente el ancho de banda de memoria dentro de un chip de memoria. La técnica general para realizar cálculos en la memoria se denomina Procesamiento en memoria (PIM).
Descripción general
Las implementaciones más influyentes de la RAM computacional surgieron del Proyecto IRAM de Berkeley . La IRAM vectorial (V-IRAM) combina la memoria DRAM con un procesador vectorial integrado en el mismo chip. [1]
La arquitectura DRAM reconfigurable (RADram) es una DRAM con elementos lógicos FPGA de computación reconfigurables integrados en el mismo chip. [2]
Las simulaciones de SimpleScalar muestran que la RADram (en un sistema con un procesador convencional) puede brindar un rendimiento órdenes de magnitud mejor en algunos problemas que la DRAM tradicional (en un sistema con el mismo procesador).
Algunos problemas computacionales vergonzosamente paralelos 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 a partir de RAM computacional funcionará ó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; típicamente el doble de capas BEOL que DRAM; dado que cada capa adicional reduce el rendimiento y aumenta el costo de fabricación, dichos chips son relativamente caros por milímetro cuadrado en comparación con DRAM) son lo suficientemente distintos como para que haya tres enfoques para la RAM computacional:
- comenzando con un proceso optimizado para CPU y un dispositivo que utiliza mucha SRAM incorporada, agregue un paso de proceso adicional (haciéndolo aún más costoso por milímetro cuadrado) para permitir reemplazar la SRAM incorporada con DRAM incorporada ( eDRAM ), lo que brinda un ahorro de área de aproximadamente 3x en las áreas de SRAM (y, por lo tanto, reduce el costo neto por chip).
- Partiendo de un sistema con un chip de CPU y un chip DRAM independientes, se añaden pequeñas cantidades de capacidad computacional de "coprocesador" a la DRAM, trabajando dentro de los límites del proceso DRAM y añadiendo sólo pequeñas cantidades de área a la DRAM, para hacer cosas que de otro modo se ralentizarían 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 hay alguna) aparece un byte determinado en algún bloque de datos, etc. El sistema resultante (el chip de CPU sin cambios y los chips "DRAM inteligentes") es al menos tan rápido como el sistema original y potencialmente ligeramente más económico. Se espera que el coste de la pequeña cantidad de área adicional se recupere con creces en ahorros en costosos tiempos de prueba, ya que ahora hay suficiente capacidad computacional en una "DRAM inteligente" para que una oblea llena de DRAM haga la mayoría de las pruebas internamente en paralelo, en lugar del enfoque tradicional de probar completamente un chip DRAM a la vez con un costoso equipo de prueba automático externo . [1]
- comenzando con un proceso optimizado para DRAM, modifique el proceso para que sea un poco más parecido al "proceso de CPU" y construya una CPU de propósito general (de frecuencia relativamente baja, pero de bajo consumo y muy alto ancho de banda) dentro de los límites de ese proceso.
Algunas CPU diseñadas para construirse con una tecnología de proceso DRAM (en lugar de una tecnología de proceso "CPU" o "lógica" optimizada específicamente para CPU) incluyen el Proyecto IRAM de Berkeley , TOMI Technology [4] [5]
y el AT&T DSP1 .
Debido a que un bus de memoria hacia una memoria fuera del chip tiene muchas veces la capacitancia de un bus de memoria en el chip, un sistema con chips DRAM y CPU separados puede tener varias veces el consumo de energía de un sistema IRAM con el mismo rendimiento de computadora . [1]
Debido a que se espera que la DRAM computacional funcione a mayor temperatura que la DRAM tradicional, y el aumento de las temperaturas del chip da como resultado una fuga de carga más rápida de las celdas de almacenamiento de la DRAM, se espera que la DRAM computacional requiera una actualización de la DRAM más frecuente . [2]
Procesador en memoria o cerca de ella
Un procesador en memoria o cerca de ella (PINM) 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 trasladarse los datos reduce los requisitos de energía de un sistema. [6] Gran parte de la complejidad (y, por lo tanto, el consumo de energía ) de los procesadores actuales se debe a estrategias para evitar bloqueos de la memoria.
Ejemplos
En la década de 1980, se fabricó una pequeña CPU que ejecutaba FORTH en un chip DRAM para mejorar PUSH y POP. FORTH es un lenguaje de programación orientado a pilas y esto mejoró su eficiencia.
El transputer también tenía una gran memoria en 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 notables se incluyen el proyecto IRAM de Berkeley (IRAM) en la Universidad de California, Berkeley [7] y el proyecto PIM de la Universidad de Notre Dame [8] .
Taxonomía PIM basada en DRAM
Los diseños en memoria y cerca de memoria basados en DRAM se pueden clasificar en cuatro grupos:
- Los métodos de nivel DIMM ubican las unidades de procesamiento cerca de los chips de memoria. Estos métodos requieren cambios mínimos o nulos en la disposición de los datos (por ejemplo, Chameleon, [9] y RecNMP [10] ).
- Los enfoques a nivel de capa lógica incorporan unidades de procesamiento en la capa lógica de las memorias de pila 3D y pueden beneficiarse del alto ancho de banda de las memorias de pila 3D (por ejemplo, TOP_PIM [11] ).
- Los enfoques a nivel de banco colocan las unidades de procesamiento dentro de las capas de memoria, cerca de cada banco. UPMEM y PIM de Samsung [12] son ejemplos de estos enfoques.
- Los enfoques a nivel de submatriz procesan datos dentro de cada submatriz. Los enfoques a nivel de submatriz proporcionan el mayor paralelismo de acceso, pero a menudo realizan solo operaciones simples, como operaciones bit a bit en una fila de memoria completa (por ejemplo, DRISA [13] ) o procesamiento secuencial de la fila de memoria utilizando una ALU de mundo único (por ejemplo, Fulcrum [14] )
Véase también
Referencias
- ^ abc 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 "Vector IRAM... puede funcionar como un motor de autoprueba integrado en paralelo para la matriz de memoria, lo que reduce significativamente el tiempo de prueba de la DRAM y el costo asociado".
- ^ de Mark Oskin, Frederic T. Chong y Timothy Sherwood. "Páginas activas: un modelo computacional para la memoria inteligente". Archivado el 22 de septiembre de 2017 en Wayback Machine . 1998.
- ^ Daniel J. Bernstein . "Notas históricas sobre el enrutamiento en malla en NFS". 2002. "Programación de una RAM computacional"
- ^ "TOMI el microprocesador de milivatios" [ enlace muerto permanente ]
- ^
Yong-Bin Kim y Tom W. Chen. "Evaluación de la tecnología lógica/DRAM fusionada". 1998. "Copia archivada" (PDF) . Archivado desde el original (PDF) el 25 de julio de 2011. Consultado el 27 de noviembre de 2011 .
{{cite web}}
: CS1 maint: archived copy as title (link)[1] - ^ "GYRFALCON COMIENZA A ENVIAR UN CHIP DE IA". electronics-lab . 2018-10-10 . Consultado el 5 de diciembre de 2018 .
- ^ IRAM
- ^ "PIM". Archivado desde el original el 9 de noviembre de 2015. Consultado el 26 de mayo de 2015 .
- ^
Hadi Asghari-Moghaddam, et al., "Chameleon: Arquitectura de aceleración cercana a DRAM versátil y práctica para sistemas de memoria de gran tamaño".
- ^
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 hacia 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úm. 1, págs. 32–41, enero–marzo de 1999. doi :10.1109/54.748803.