# Mémoire vidéo

La mémoire vidéo est un type de mémoire vive rapide destinée au stockage des éléments destinés à être affichés sur un dispositif électronique avec affichage (ordinateur, téléphone mobile, etc.). Elle est habituellement nommée VRAM (Video Random Access Memory). Elle sert à construire l'image qui sera ensuite envoyée à l'écran.
La mémoire vidéo, contrairement à la mémoire DRAM utilisée dans la mémoire centrale de l'ordinateur, dispose de deux canaux de transfert (ports) qui permettent la lecture et l'écriture des données en un seul cycle d'horloge.

## Description

Historiquement, les concepteurs d'ordinateurs ont rapidement demandé à disposer d'une mémoire dédiée pour l'affichage des caractères, et éventuellement des graphiques, séparée de la mémoire générale utilisée pour le stockage des programmes et des données. En effet, les ordinateurs disposent de circuits intégrés spécifiques destinés à générer les signaux d'affichage et ces circuits doivent respecter une synchronisation parfaite pour s'accorder avec les balayages des écrans à tube cathodique (CRT). Pour ce faire, ces circuits doivent accéder aux données dont ils ont besoin à des instants très précis, et ne souffrent pas d'interruptions du processeur central. Ce processeur, lui, peut avoir des tâches qui, d'après lui, ne peuvent pas attendre (accès aux stockages magnétiques, accès au réseau). Afin de permettre au circuit d'affichage d'accéder aux données d'affichage sans entrer en conflit avec le processeur central, on lui a attribué une mémoire dédiée. Cette mémoire contenait initialement uniquement les codes des caractères à afficher. Le processeur central écrivait, avec l'autorisation du processus d'affichage, de nouveaux codes caractères dans la mémoire vidéo. Au prochain rafraîchissement de l'image, le processeur d'affichage affichait ces nouveaux caractères.

## Historique

Avec l'apparition des graphiques, la mémoire vidéo a été utilisée pour stocker des caractères, des points, et éventuellement des vecteurs (description d'un trait par son point de départ, son point d'arrivée, sa largeur et sa couleur). L'écriture des points et vecteurs se fait, suivant les architectures, par le processeur central ou le circuit chargé de l'affichage.
En 1983, une mémoire vidéo comptait 1 à 2 Ko.
En 2005, dans les cartes graphiques évoluées, la mémoire vidéo stocke plusieurs images : une image en cours d'affichage, une autre en cours d'écriture (qui pourra être affichée plus tard), des textures, des objets en trois dimensions, etc.. Le processeur d'affichage assemble et anime ces différents éléments.
En 2008, une mémoire vidéo de téléphone portable pouvait atteindre plusieurs centaines de kilooctets et la mémoire vidéo d'une carte graphique d'ordinateur de 32 Mo à 6 Go de mémoire.
En 2014, les ordinateurs destinés aux traitements 3D ou au jeu hardcore peuvent compter jusqu'à 12 Go de mémoire vidéo.
En 2024, la mémoire vidéo moyenne d'un ordinateur de jeu était de 8 Go. Le progrès technologique a apporté de nouvelles textures ainsi que des résolutions telles que la 4K et même de 8K en 2024.

## Technologies
### SLI / CrossFire

Lorsque deux cartes graphiques sont montées en parallèle, cela forme un ensemble SLI pour NVidia et CrossFire pour ATI. La capacité de la mémoire de chaque carte vidéo ne s'additionne pas, car chaque carte, chaque processeur graphique, gère son propre espace mémoire en utilisant, si besoin, une partie de la mémoire centrale.
Cette technologie n'est plus supportée activement dans les derniers logiciels et jeux.

### iGPU et APU

De nombreux ordinateurs de bas de gamme n'exploitent pas de carte graphique dédiée, mais reposent plutôt sur un APU ou iGPU. Ces circuits étant intégrés au processeur directement, il n'est pas possible pour eux d'accéder à une mémoire vidéo dédiée. Ainsi, ils utilisent une partie dédiée de la mémoire vive pour y stocker les images à afficher.
Cela réduit l'espace en mémoire disponible pour l'utilisateur final, ainsi que de réduire les performances du circuit graphique.

## Caractéristiques matérielles

La mémoire vidéo est physiquement implémentée de la façon suivante : Il s'agit de puces mémoires soudées sur la carte électronique, à proximité immédiate du GPU.
Ces puces existent sous deux formes différentes : la GDDRx (Graphical Dual Data Rate X - Mémoire graphique à double débit) et HBM (High Bandwith Memory - Mémoire à grande bande passante).

### GDDRx

Cette technique, dérivée des puces mémoires DDR SDRAM et optimisé pour un usage vidéo. Cela passe par l'augmentation très forte de la bande passante, au détriment de la latence. La largeur de son bus mémoire est de 32 bits, par puce.

### HBM

Cette technique, qui consiste en l'ajout de puces mémoires à proximité immédiate du GPU, sur le même substrat. Ces puces bénéficient d'un bus particulièrement large, de plusieurs centaines de bits.
Cette technologie est cependant plus couteuse.

#### Bus mémoire

Le bus mémoire, qui relie les puces mémoire au GPU, circuit graphique est primordial. En effet, c'est via lui que l'ensemble des données passe. Il est donc nécessaire de s'assurer que la communication est la plus rapide.
Un bus mémoire est spécifié par deux aspects : Sa largeur, en bits, et sa vitesse, en Gbps, directement liée à la norme mémoire.
Un bus mémoire insuffisant provoquera des pertes de performances dans certains usages vidéoludiques, et particulièrement lors des situations gourmandes en mémoire (jeu avec détails très élevés, résolutions très hautes). Il est possible de calculer la bande passante disponible en multipliant la largeur du bus mémoire par la vitesse par bit.
$BP=N_{bits}\times Vitesse_{Gpbs}$