Cache en français

Qu'est-ce qu'un Cache ?

Un cache fait référence à l'ensemble des données stockées localement au sein d'une application, dans le but d'accélérer la récupération de ces données. Lorsque les interfaces clients demandent des informations, le cache sert de première source d'accès. Si les données demandées sont présentes, nous parlons alors d'un "cache hit" et retournons les informations souhaitées. En revanche, si les données ne se trouvent pas dans le cache, cela constitue un "cache miss". Dans ce dernier cas, un processus, connu sous le nom de "politique de remplacement", est déclenché pour obtenir les bonnes données.

Les échanges entre la mémoire et le cache se font par blocs de taille fixe appelés "lignes de cache" ou "blocs de cache" après l’élimination des données périmées. Les caches de plus grande taille peuvent offrir des taux de réussite plus élevés mais présentent une latence plus importante. Pour surmonter cet équilibre, de nombreux ordinateurs emploient plusieurs niveaux de cache, avec des caches plus petits et rapides soutenus par des caches plus grands et plus lents. Si un petit cache échoue à fournir les données, le cache suivant le plus rapide (niveau 2, L2) est consulté, et ainsi de suite, avant d'accéder à la mémoire externe.

Mesurer la Taille du Cache

La taille d'un cache se calcule en multipliant le nombre d'octets contenus dans chaque bloc de données par le nombre total de blocs. Les caches dits "de haut niveau" (par exemple, niveau 2 et plus) présentent généralement un nombre supérieur de blocs, une taille de bloc plus importante et des temps d'accès relativement plus longs, mais restent plus rapides que la mémoire principale. Des implémentations de cache efficaces constituent un moyen essentiel pour les applications d’améliorer leur performance.

Différences entre Caching Matériel et Logiciel

Caching Matériel

Les stratégies de mise en cache matérielle utilisent les composants matériels d'un appareil informatique pour stocker les données nécessaires. Souvent, ces appareils proposent plusieurs niveaux de mise en cache.

Cache du CPU

Le processeur d'un ordinateur (CPU) comprend plusieurs niveaux de cache, le niveau L1 étant le plus rapide. Chaque niveau subséquent est généralement plus lent et plus grand. Sur les puces multicœurs, le cache L3 est généralement partagé entre tous les cœurs de traitement.

Cache du GPU

La carte graphique (GPU) d'un ordinateur dispose d'une mémoire indépendante de la RAM du système hôte et peut également être utilisée comme emplacement de cache.

Cache de Disque

Le cache de disque (ou "buffer de disque") est la mémoire intégrée d'un disque dur qui sert de tampon entre le reste de l'ordinateur et le plateau de disque physique utilisé pour le stockage.

Caching Logiciel

Les stratégies de mise en cache logicielle exploitent des solutions logicielles pour stocker les données localement et les récupérer de manière optimisée.

Réseau de Diffusion de Contenu (CDN)

Le CDN permet de mettre en cache des contenus web auprès de plusieurs points à travers un réseau, rendant ces copies accessibles aux clients depuis l’emplacement le plus proche.

Mémorisation

La mémorisation est une technique d'optimisation qui améliore les performances d'une application en stockant les résultats d'appels de fonctions et en renvoyant le résultat stocké lorsque les mêmes entrées se présentent de nouveau.