Présentation
Le noyau Linux intègre une nouvelle méthode nommée CRAM (Compressed RAM). Selon l’article de Tom’s Hardware, CRAM permet de compresser les pages mémoire directement dans la RAM et de les traiter comme de la mémoire non compressée. L’objectif principal est d’accélérer les lectures de données compressées, avec un gain annoncé de 452 fois par rapport aux techniques classiques.
Fonctionnement technique
CRAM repose sur un pool dédié de pages RAM où chaque page est stockée sous forme compressée. Au lieu de déclencher une décompression complète à chaque accès, le système lit les données depuis le format compressé grâce à un accès « as‑RAM ». Le mécanisme s’appuie sur des instructions SIMD du processeur pour extraire les octets demandés sans décoder l’ensemble de la page. Le patch ajoute une nouvelle option de configuration du noyau (CONFIG_CRAM) qui, lorsqu’elle est activée, remplace le module zram traditionnel.
Analyse des performances
Les benchmarks présentés dans l’article montrent un facteur de 452 x d’amélioration du temps de lecture lorsqu’une charge de travail fortement compressible est exécutée. Cette amélioration provient principalement de la réduction du trafic mémoire : les accès se limitent à la portion compressée réellement requise, évitant ainsi le déplacement de plusieurs mégaoctets de données non pertinentes. En outre, la consommation d’énergie liée aux cycles de décompression est fortement diminuée, ce qui peut être bénéfique pour les appareils mobiles.
Limites et perspectives
Le rapport indique que CRAM est encore en phase expérimentale et n’est pas encore intégré dans les versions stables du noyau. Aucun détail n’est fourni sur l’algorithme de compression utilisé (LZ4, ZSTD, etc.) ni sur le taux de compression moyen observé. De plus, l’impact sur les écritures n’est pas évalué ; il est probable que la compression à la volée introduise une surcharge lors des mises à jour de pages. Les développeurs devront donc mesurer le compromis entre gain de lecture et coût d’écriture avant d’adopter CRAM en production.