Comment fonctionne la compression dans une architecture de mémoire orientée objet

Une équipe d'ingénieurs du MIT a développé une hiérarchie de mémoire orientée objet pour travailler plus efficacement avec les données. Dans l'article, nous comprendrons comment cela fonctionne.

Comment fonctionne la compression dans une architecture de mémoire orientée objet
/ Banque d'images /PD

Comme on le sait, l'augmentation des performances des processeurs modernes ne s'accompagne pas d'une diminution correspondante de la latence lors de l'accès à la mémoire. La différence dans l'évolution des indicateurs d'une année à l'autre peut aller jusqu'à 10 fois (PDF, page 3). En conséquence, un goulot d'étranglement apparaît qui empêche la pleine utilisation des ressources disponibles et ralentit le traitement des données.

Les dommages aux performances sont causés par ce que l'on appelle le délai de décompression. Dans certains cas, la décompression préparatoire des données peut prendre jusqu'à 64 cycles de processeur.

A titre de comparaison : addition et multiplication de nombres à virgule flottante occuper pas plus de dix cycles. Le problème est que la mémoire fonctionne avec des blocs de données de taille fixe et que les applications fonctionnent avec des objets pouvant contenir différents types de données et différer en taille les uns des autres. Pour résoudre le problème, les ingénieurs du MIT ont développé une hiérarchie de mémoire orientée objet qui optimise le traitement des données.

Comment fonctionne la technologie

La solution s'appuie sur trois technologies : Hotpads, Zippads et l'algorithme de compression COCO.

Les hotpads sont une hiérarchie contrôlée par logiciel de mémoire enregistrée à grande vitesse (bloc-notes). Ces registres sont appelés pads et il y en a trois – de L1 à L3. Ils stockent des objets de différentes tailles, métadonnées et tableaux de pointeurs.

Essentiellement, l'architecture est un système de cache, mais conçu pour fonctionner avec des objets. Le niveau du pad sur lequel se trouve l’objet dépend de la fréquence d’utilisation de celui-ci. Si l'un des niveaux « déborde », le système démarre un mécanisme similaire aux « garbage collectors » dans les langages Java ou Go. Il analyse quels objets sont utilisés moins fréquemment que d'autres et les déplace automatiquement entre les niveaux.

Zippads fonctionne au-dessus des Hotpads - archive et désarchive les données qui entrent ou sortent des deux derniers niveaux de la hiérarchie - le pad L3 et la mémoire principale. Les premier et deuxième tampons stockent des données inchangées.

Comment fonctionne la compression dans une architecture de mémoire orientée objet

Zippads compresse les objets dont la taille ne dépasse pas 128 octets. Les objets plus gros sont divisés en parties, qui sont ensuite placées dans différentes zones de mémoire. Comme l'écrivent les développeurs, cette approche augmente le coefficient de mémoire efficacement utilisée.

Pour compresser les objets, l'algorithme COCO (Cross-Object COmpression) est utilisé, dont nous parlerons plus tard, bien que le système puisse également fonctionner avec Base-Delta-Immédiat ou FPC. L'algorithme COCO est un type de compression différentielle (compression différentielle). Il compare les objets à la "base" et supprime les bits en double - voir le schéma ci-dessous :

Comment fonctionne la compression dans une architecture de mémoire orientée objet

Selon les ingénieurs du MIT, leur hiérarchie de mémoire orientée objet est 17 % plus productive que les approches classiques. Sa conception est beaucoup plus proche de l'architecture des applications modernes, la nouvelle méthode a donc du potentiel.

On s’attend à ce que les entreprises qui travaillent avec des algorithmes de Big Data et d’apprentissage automatique commencent à utiliser cette technologie en premier. Une autre direction potentielle concerne les plateformes cloud. Les fournisseurs IaaS pourront travailler plus efficacement avec la virtualisation, les systèmes de stockage de données et les ressources informatiques.

Nos ressources et sources supplémentaires :

Comment fonctionne la compression dans une architecture de mémoire orientée objet « Comment nous construisons l'IaaS » : documents sur le travail de 1cloud

Comment fonctionne la compression dans une architecture de mémoire orientée objet Évolution de l'architecture cloud 1cloud
Comment fonctionne la compression dans une architecture de mémoire orientée objet Service de stockage d'objets dans 1cloud

Comment fonctionne la compression dans une architecture de mémoire orientée objet Attaques potentielles sur HTTPS et comment s'en protéger
Comment fonctionne la compression dans une architecture de mémoire orientée objet En quoi les approches de livraison continue et d’intégration continue sont-elles similaires et différentes ?
Comment fonctionne la compression dans une architecture de mémoire orientée objet Comment protéger un serveur sur Internet : l'expérience 1cloud

Source: habr.com

Ajouter un commentaire