# RAM computationnelle

La RAM computationnelle (ou C-RAM pour computational RAM) est une mémoire vive dont les éléments de traitement sont intégrés sur la même puce. Cela permet à la C-RAM d'être utilisée comme un calculateur SIMD. Elle peut également être utilisée pour mieux exploiter la bande passante mémoire au sein de la puce. La technique permettant d'effectuer des calculs en mémoire est appelée Processing-In-Memory (PIM).

## Aperçu

Les implémentations les plus influentes de la RAM informatique proviennent du projet Berkeley IRAM. Vector IRAM (V-IRAM) combine la DRAM avec un processeur vectoriel intégré sur la même puce.
La DRAM à architecture reconfigurable (RADram) est une DRAM avec des éléments logiques informatiques FPGA reconfigurables intégrés sur la même puce. Les simulations SimpleScalar montrent que le RADram (dans un système doté d'un processeur conventionnel) peut donner des performances bien meilleures sur certains problèmes que la DRAM traditionnelle (dans un système doté du même processeur).
Certains problèmes de calcul parallèles embarrassants sont déjà limités par le goulot d'étranglement de von Neumann entre le CPU et la DRAM. Certains chercheurs s'attendent à ce que, pour le même coût total, une machine construite à partir de RAM informatique fonctionnera plusieurs fois plus rapidement qu'un ordinateur traditionnel à usage général sur ce type de problèmes.
Depuis 2011, le « processus DRAM » (peu de couches ; optimisé pour une capacité élevée) et le « processus CPU » (optimisé pour la haute fréquence ; généralement deux fois plus de couches BEOL que de DRAM ; puisque chaque couche supplémentaire réduit le rendement et augmente le coût de fabrication, ces puces sont relativement chères au millimètre carré par rapport à la DRAM) est suffisamment distincte pour qu'il existe trois approches de la RAM informatique :
* en commençant par un processus optimisé pour le processeur et un périphérique utilisant beaucoup de SRAM intégrée, ajoutez une étape de processus supplémentaire (la rendant encore plus coûteuse par millimètre carré) pour permettre le remplacement de la SRAM intégrée par de la DRAM intégrée (eDRAM), ce qui permet d'économiser ≈3x la surface sur les zones SRAM (et réduisant ainsi le coût net par puce) ;
* en commençant par un système avec une puce CPU et une ou plusieurs puces DRAM séparées, ajouter de petites quantités de capacité de calcul de « coprocesseur » à la DRAM, en travaillant dans les limites du processus DRAM et en n'ajoutant que de petites quantités de surface à la DRAM, pour faire des choses qui autrement seraient ralenties par l'étroit goulot d'étranglement entre le CPU et la DRAM : remplir à zéro les zones de mémoire sélectionnées, copier de gros blocs de données d'un emplacement à un autre, trouver où (le cas échéant) un octet donné apparaît dans un bloc de données , etc. Le système résultant — la puce CPU inchangée et la ou les puces « DRAM intelligentes » — est au moins aussi rapide que le système d'origine et potentiellement légèrement inférieur en termes de coût. Le coût de la petite quantité de surface supplémentaire devrait être plus que compensé par les économies de temps de test du fait de la capacité de calcul d'une « DRAM intelligente » lui permettant d'effectuer la plupart des tests en interne en parallèle, plutôt que de devoir tester entièrement une puce DRAM sur un équipement de test automatique externe ;
* en commençant par un processus optimisé pour la DRAM, modifiez le processus pour le rendre légèrement plus proche du "processus CPU" et construisez un processeur à usage général (relativement basse fréquence, mais faible consommation et très haute bande passante) dans les limites de cela processus.
Certains processeurs conçus pour être construits sur une technologie de processus DRAM (plutôt que sur une technologie de processus « CPU » ou « logique » spécifiquement optimisée pour les processeurs) incluent le projet Berkeley IRAM, la technologie TOMI et l'AT&T DSP1.
Étant donné qu'un bus mémoire vers une mémoire hors puce a une capacité plusieurs fois supérieure à celle d'un bus mémoire sur puce, un système avec des puces DRAM et CPU séparées peut avoir une consommation d'énergie plusieurs fois supérieure à celle d'un système IRAM avec les mêmes performances informatiques.
Étant donné que la DRAM informatique devrait fonctionner plus chaudement que la DRAM traditionnelle et que l'augmentation de la température des puces entraîne une fuite de charge plus rapide des cellules de stockage DRAM, la DRAM informatique devrait nécessiter un rafraîchissement plus fréquent de la DRAM.
En 2024, la faisabilité technologique d'un réseau de C-RAM basé sur des jonctions par tunnel magnétique (MTJ) est démontré expérimentalement. Cette technologie utilise le spin des électrons et non plus les charges électriques pour stocker l'information, de façon plus rapide, plus stable et en réduisant considérablement la consommation d'énergie (jusqu’à 2 500 fois). Elle présente donc un grand intérêt pour les applications d'intelligence artificielle qui sont particulièrement énergivores.