Article de reference

Mise en mémoire tampon multiple

( Learn how and when to remove this message ) Les ensembles 1 , 2 et 3 représentent respectivement le fonctionnement de la mise en mémoire tampon simple, double et triple, avec ...

(Learn how and when to remove this message)
Les ensembles 1 , 2 et 3 représentent respectivement le fonctionnement de la mise en mémoire tampon simple, double et triple, avec la synchronisation verticale (vsync) activée. Dans chaque graphique, le temps s'écoule de gauche à droite. Notez que 3 montre une chaîne de permutation avec trois tampons ; la définition originale de la mise en mémoire tampon triple éliminerait l'image C dès que l'image D serait terminée et commencerait à dessiner l'image E dans le tampon 1 sans délai. L'ensemble 4 montre ce qui se passe lorsqu'une image (B, dans ce cas) prend plus de temps que la normale à dessiner. Dans ce cas, une mise à jour d'image est manquée. Dans les implémentations sensibles au temps telles que la lecture vidéo, l'image entière peut être abandonnée. Avec une chaîne de permutation à trois tampons dans l'ensemble 5 , le dessin de l'image B peut commencer sans avoir à attendre que l'image A soit copiée dans la mémoire vidéo, réduisant ainsi le risque qu'une image retardée manque son retour vertical.

En informatique , la mise en mémoire tampon multiple consiste à utiliser plusieurs tampons pour contenir un bloc de données , de sorte qu'un « lecteur » verra une version complète (bien que peut-être ancienne) des données au lieu d'une version partiellement mise à jour des données créée par un « graveur ». Elle est très couramment utilisée pour afficher des images sur ordinateur. Elle est également utilisée pour éviter d'avoir à utiliser une mémoire RAM à double port (DPRAM) lorsque les lecteurs et les graveurs sont des appareils différents.

Description

Réseau de Petri à double tampon

Le réseau de Petri illustré montre une double mise en mémoire tampon. Les transitions W1 et W2 représentent respectivement l'écriture dans les tampons 1 et 2, tandis que R1 et R2 représentent respectivement la lecture dans les tampons 1 et 2. Au début, seule la transition W1 est activée. Une fois W1 activée, R1 et W2 sont toutes deux activées et peuvent continuer en parallèle. Lorsqu'elles ont terminé, R2 et W1 continuent en parallèle, et ainsi de suite.

Après le transitoire initial où W1 se déclenche seul, ce système est périodique et les transitions sont activées – toujours par paires (R1 avec W2 et R2 avec W1 respectivement).

Réseau de Petri à double tampon

Double tamponnage en infographie

En infographie , la double mise en mémoire tampon est une technique permettant de dessiner des graphiques qui présente moins de bégaiements, de déchirures et d'autres artefacts.

Il est difficile pour un programme de dessiner un affichage de manière à ce que les pixels ne changent pas plus d'une fois. Par exemple, lors de la mise à jour d'une page de texte, il est beaucoup plus facile d'effacer toute la page puis de dessiner les lettres que d'effacer d'une manière ou d'une autre uniquement les pixels qui sont utilisés dans les anciennes lettres mais pas dans les nouvelles. Cependant, cette image intermédiaire est perçue par l'utilisateur comme un scintillement . De plus, les écrans d'ordinateur redessinent constamment la page vidéo visible (traditionnellement environ 60 fois par seconde), de sorte que même une mise à jour parfaite peut être visible momentanément sous la forme d'un séparateur horizontal entre la « nouvelle » image et l'« ancienne » image non redessinée, ce que l'on appelle un déchirement .

Double mise en mémoire tampon logicielle

Une implémentation logicielle de double tamponnage consiste à ce que toutes les opérations de dessin stockent leurs résultats dans une région de la RAM système ; une telle région est souvent appelée « tampon arrière ». Lorsque toutes les opérations de dessin sont considérées comme terminées, la région entière (ou seulement la partie modifiée) est copiée dans la RAM vidéo (le « tampon avant ») ; cette copie est généralement synchronisée avec le faisceau raster du moniteur afin d'éviter les déchirures. Les implémentations logicielles de double tamponnage nécessitent nécessairement plus de mémoire et de temps CPU que la mise en mémoire tampon simple en raison de la mémoire système allouée au tampon arrière, du temps nécessaire à l'opération de copie et du temps d'attente pour la synchronisation.

Les gestionnaires de fenêtres de composition combinent souvent l'opération de « copie » avec la « composition » utilisée pour positionner les fenêtres, les transformer avec des effets d'échelle ou de déformation et rendre des parties transparentes. Ainsi, le « tampon avant » peut contenir uniquement l'image composite vue à l'écran, tandis qu'il existe un « tampon arrière » différent pour chaque fenêtre contenant l'image non composite de l'ensemble du contenu de la fenêtre.

Tourner les pages

Dans la méthode de retournement de page, au lieu de copier les données, les deux tampons peuvent être affichés. À tout moment, un tampon est activement affiché par le moniteur, tandis que l'autre, le tampon d'arrière-plan, est dessiné. Lorsque le tampon d'arrière-plan est terminé, les rôles des deux sont inversés. Le retournement de page s'effectue généralement en modifiant un registre matériel dans le contrôleur d'affichage vidéo, c'est-à-dire la valeur d'un pointeur vers le début des données d'affichage dans la mémoire vidéo.

Le changement de page est beaucoup plus rapide que la copie des données et peut garantir que les déchirures ne seront pas visibles tant que les pages sont commutées pendant l' intervalle de suppression verticale du moniteur (la période vide pendant laquelle aucune donnée vidéo n'est affichée). Le tampon actuellement actif et visible est appelé tampon avant , tandis que la page d'arrière-plan est appelée tampon arrière .

Triple tamponnage

En infographie , la triple mise en mémoire tampon est similaire à la double mise en mémoire tampon, mais peut offrir de meilleures performances. Dans la double mise en mémoire tampon, le programme doit attendre que le dessin terminé soit copié ou échangé avant de commencer le dessin suivant. Cette période d'attente peut durer plusieurs millisecondes , pendant lesquelles aucun tampon ne peut être touché.

Dans le triple buffering, le programme dispose de deux tampons arrière et peut immédiatement commencer à dessiner dans celui qui n'est pas impliqué dans cette copie. Le troisième tampon, le tampon avant, est lu par la carte graphique pour afficher l'image sur le moniteur. Une fois l'image envoyée au moniteur, le tampon avant est inversé avec (ou copié depuis) ​​le tampon arrière contenant l'image complète la plus récente. Comme l'un des tampons arrière est toujours complet, la carte graphique n'a jamais à attendre que le logiciel termine. Par conséquent, le logiciel et la carte graphique sont complètement indépendants et peuvent fonctionner à leur propre rythme. Enfin, l'image affichée a été démarrée sans attendre la synchronisation et donc avec un décalage minimum.

Étant donné que l' algorithme logiciel n'interroge pas le matériel graphique pour les événements de rafraîchissement du moniteur, l'algorithme peut dessiner en continu des images supplémentaires aussi rapidement que le matériel peut les restituer. Pour les images qui sont terminées beaucoup plus rapidement que l'intervalle entre les rafraîchissements, il est possible de remplacer les images d'un tampon arrière par des itérations plus récentes plusieurs fois avant de les copier. Cela signifie que des images peuvent être écrites dans le tampon arrière qui ne sont jamais utilisées du tout avant d'être écrasées par des images successives. Nvidia a implémenté cette méthode sous le nom de « Fast Sync ».

Une méthode alternative parfois appelée triple buffering consiste à utiliser une chaîne de swap de trois tampons. Une fois que le programme a dessiné les deux tampons arrière, il attend que le premier soit placé à l'écran avant de dessiner un autre tampon arrière (c'est-à-dire qu'il s'agit d'une file d'attente de trois premiers entrés, premier sorti ). La plupart des jeux Windows semblent faire référence à cette méthode lors de l'activation du triple buffering.

Mise en mémoire tampon quadruple

Le terme de mise en mémoire tampon quadruple désigne l'utilisation d'une double mise en mémoire tampon pour chacune des images de l'œil gauche et de l'œil droit dans les implémentations stéréoscopiques , soit quatre tampons au total (si une mise en mémoire tampon triple était utilisée, il y aurait six tampons). La commande d'échange ou de copie de la mémoire tampon s'applique généralement aux deux paires à la fois, de sorte qu'à aucun moment un œil ne voit une image plus ancienne que l'autre œil.

La mise en mémoire tampon quadruple nécessite une prise en charge spéciale dans les pilotes de la carte graphique, qui est désactivée pour la plupart des cartes grand public. Les cartes Radeon HD 6000 Series d'AMD et les cartes plus récentes la prennent en charge.

Les normes 3D comme OpenGL et Direct3D prennent en charge la mise en mémoire tampon quadruple.

Double mise en mémoire tampon pour DMA

Le terme double tampon est utilisé pour copier des données entre deux tampons pour les transferts d'accès direct à la mémoire (DMA), non pas pour améliorer les performances, mais pour répondre aux exigences d'adressage spécifiques d'un périphérique (en particulier les périphériques 32 bits sur les systèmes avec un adressage plus large fourni via l'extension d'adresse physique ). Les pilotes de périphériques DOS et Windows sont un endroit où le terme « double tampon » est susceptible d'être utilisé. Le code source Linux et BSD les appelle « tampons de rebond ».

Certains programmeurs tentent d'éviter ce type de double mise en mémoire tampon avec des techniques de copie zéro .

Autres utilisations

La double mise en mémoire tampon est également utilisée comme technique pour faciliter l'entrelacement ou le désentrelacement des signaux vidéo.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index