Menu Fermer

Qu’est-ce que la mémoire tampon (Buffer memory)

La mémoire tampon ou Buffer memory est un terme générique en informatique qui revient souvent.
Vous pouvez en avoir entendu parlé lorsque vous jouez une vidéo en streaming, avec les bases de données ou encore dans Windows ou Linux.
C’est donc quelque à connaître et qu’il ne faut pas confondre avec le cache mémoire.

Dans ce tutoriel, je vous explique ce qu’est la mémoire tampon et à quoi cela sert à travers plusieurs exemple.

Qu'est-ce que la mémoire tampon (Buffer memory)

Qu’est-ce que la mémoire tampon (Buffer memory)

Un tampon mémoire (buffer en anglais) est comme un cache, c’est-à-dire une zone de données de la mémoire RAM réservée au stockage temporaire.
La mise en mémoire tampon est le processus de préchargement des données dans une zone réservée de la mémoire appelée mémoire tampon.
La mémoire tampon est utilisée pour stocker ses données temporaires avant son utilisation par un matériel, application ou système.

Dans la majorité des cas, le buffer est utilisé dans l’échange ou le partage de données entre deux systèmes ou matériels qui ne fonctionnent pas à la même vitesse.
Il permet de compenser cette différence de vitesse.

Par exemple, lors de l’impression d’un document, le CPU va mettre les données à imprimer dans une mémoire tampon. L’imprimante va ensuite lire ces données pour imprimer le document final.
Comme le CPU ne peut faire qu’une tâche à la fois, il va remplir la mémoire tampon puis effectuer une série d’autres opérations.
Pendant ce temps là, l’imprimante plus lente, va lire les données de la mémoire tampon et imprimer le document au fur et à mesures. Le CPU remplira à nouveau la mémoire tampon avant qu’elle ne se vide entièrement pour une continuité de l’impression.
Cela évite de monopoliser le CPU avec une liaison d’envoi de données permanente vers l’imprimante, alors que le CPU va passer son temps à attendre l’imprimante.

Les tampons sont couramment utilisés sur les disques durs pour améliorer l’efficacité de l’accès aux données.
Ou encore, les images sont envoyées dans le tampon avant d’être affichées sur l’écran de la carte vidéo (également appelé tampon d’écran).

Qu'est-ce que la mémoire tampon (Buffer memory)

Quelques exemples de mise en mémoire tampon

Dans le streaming ou lecteur vidéo

C’est certaines l’utilisation la plus connue des utilisateurs, l’utilisation d’un buffer lorsque vous jouez une vidéo de streaming depuis internet ou le réseau.
L’appareil met en mémoire tampon une vidéo en chargeant une partie des données du fichier vidéo avant de la lire, ce qui donne à l’ordinateur du lecteur une réserve de mémoire sur laquelle il peut s’appuyer si la connexion Internet est interrompue et que le flux vidéo est donc interrompu.

Qu'est-ce que la mémoire tampon (Buffer memory) dans le streaming ou lecteur vidéo

Dans les base de données (MySQL, Oracle, PostgreSQL, …)

Les bases de données utilisent beaucoup les tampons et les zones de la mémoire principale pour mettre en cache les données des tables et des index au fur et à mesure de leur accès. Le pool tampon permet d’accéder aux données fréquemment utilisées directement depuis la mémoire, ce qui accélère le traitement. Sur les serveurs dédiés, jusqu’à 80 % de la mémoire physique est souvent affectée au pool tampon.

Pour l’efficacité des opérations de lecture de gros volumes, le pool de mémoire tampon est divisé en pages qui peuvent potentiellement contenir plusieurs rangées. Pour une gestion efficace du cache, le pool de mémoire tampon est implémenté sous la forme d’une liste liée de pages ; les données rarement utilisées sont retirées du cache à l’aide d’une variante de l’algorithme LRU (least recently used).

Dans les applications

Certains programmes utilisent le terme tampon pour désigner l’espace réservé en mémoire pour les informations d’un fichier sur lequel vous travaillez. En fait, vous pouvez créer un nouveau tampon et y placer des informations avant de les enregistrer sur le disque en tant que fichier, mais l’idée est que le tampon représente une collection d’informations en mémoire qui est traitée comme une unité.

Dans les périphériques (imprimantes, modems, écran, …)

Les imprimantes, les modems et d’autres périphériques peuvent également avoir des tampons.
Si votre imprimante n’a pas de mémoire tampon, votre ordinateur ne peut lui envoyer qu’une petite quantité d’informations à la fois, autant que l’imprimante peut en produire immédiatement. Avec une mémoire tampon, l’ordinateur peut envoyer un document à pleine vitesse, au moins jusqu’à ce que la mémoire tampon se remplisse. Les informations attendent dans la mémoire tampon jusqu’à ce que l’imprimante soit prête à les imprimer, mais pendant ce temps, vous pouvez retourner travailler sur votre ordinateur.

Les disques dur HDD ont aussi une mémoire tampon intégrée pour accélérer la vitesse des disques.

Il existe aussi un tampon pour l’écran (buffer screen). En réalité, il peut y en avoir un, deux (Double Buffering), ou trois (Triple Buffering).
Afin de lutter contre les problèmes liés à la lecture et à l’affichage dans la même mémoire tampon, une double mise en mémoire tampon est utilisée, au minimum. L’idée derrière est que l’ordinateur ne dessine que dans une mémoire tampon (appelée mémoire tampon “arrière”) et envoie l’autre mémoire tampon (appelée mémoire tampon “avant”) à l’écran.
Une fois que l’ordinateur a fini de dessiner dans le tampon arrière, le programme qui effectue le dessin fait ce qu’on appelle un “échange” de tampon. Cette permutation ne déplace rien : la permutation change seulement le nom des deux tampons : le tampon avant devient le tampon arrière et le tampon arrière devient le tampon avant.

Double Buffering dans les cartes graphiques

Pour le réseau

Dans les réseaux informatiques, les tampons sont utiles pour la fragmentation et le réassemblage des données.
Du côté de l’émetteur, le système fragmente un gros morceau de données en petits paquets et les envoie sur le réseau. Du côté du récepteur, le système crée un tampon qui collecte les paquets de données fragmentés et les réassemble dans leur format d’origine.

Quelle est la différence entre un cache mémoire et un buffer

La mémoire tampon peut être confondu avec le cache mémoire alors que les applications sont différentes.
Pour connaître les différences, reportez-vous sur le guide suivant :

Les attaques par saturation mémoire tampon (Buffer Overflow)

Les buffers peuvent être la cible d’attaques qui peuvent permettre de compromettre un système.
Cet article vous explique le principe de ce type d’attaque :