Πώς λειτουργεί η συμπίεση στην αντικειμενοστραφή αρχιτεκτονική μνήμης

Μια ομάδα μηχανικών στο MIT ανέπτυξε μια αντικειμενοστραφή ιεραρχία μνήμης για να εργάζεται με δεδομένα πιο αποτελεσματικά. Στο άρθρο καταλαβαίνουμε πώς είναι τακτοποιημένο.

Πώς λειτουργεί η συμπίεση στην αντικειμενοστραφή αρχιτεκτονική μνήμης
/ Px Εδώ /ΠΔ

Όπως γνωρίζετε, η αύξηση της απόδοσης των σύγχρονων CPU δεν συνοδεύεται από αντίστοιχη μείωση του latency κατά την πρόσβαση στη μνήμη. Η διαφορά στη μεταβολή των δεικτών από έτος σε έτος μπορεί να φτάσει έως και 10 φορές (PDF, σελίδα 3). Ως αποτέλεσμα, εμφανίζεται ένα σημείο συμφόρησης, το οποίο δεν επιτρέπει την πλήρη χρήση των διαθέσιμων πόρων και επιβραδύνει την επεξεργασία δεδομένων.

Η ποινή απόδοσης είναι η λεγόμενη καθυστέρηση αποσυμπίεσης. Σε ορισμένες περιπτώσεις, η προπαρασκευαστική αποσυμπίεση δεδομένων μπορεί να διαρκέσει έως και 64 κύκλους επεξεργαστή.

Για σύγκριση: πρόσθεση και πολλαπλασιασμός αριθμών κινητής υποδιαστολής ασχολούμαι όχι περισσότερο από δέκα κύκλους. Το πρόβλημα είναι ότι η μνήμη λειτουργεί με μπλοκ δεδομένων σταθερού μεγέθους, ενώ οι εφαρμογές λειτουργούν με αντικείμενα που μπορούν να περιέχουν διαφορετικούς τύπους δεδομένων και διαφέρουν μεταξύ τους σε μέγεθος. Για να λύσουν το πρόβλημα, οι μηχανικοί του MIT ανέπτυξαν μια αντικειμενοστραφή ιεραρχία μνήμης που βελτιστοποιεί την επεξεργασία δεδομένων.

Πώς λειτουργεί η τεχνολογία

Η λύση βασίζεται σε τρεις τεχνολογίες: Hotpad, Zippads και τον αλγόριθμο συμπίεσης COCO.

Τα Hotpad είναι μια ιεραρχία μνήμης εγγραφής scratchpad που βασίζεται σε λογισμικό (ξύστρα). Αυτοί οι καταχωρητές ονομάζονται pads (pads) και υπάρχουν τρία από αυτά - από L1 έως L3. Αποθηκεύουν αντικείμενα διαφορετικών μεγεθών, μεταδεδομένων και συστοιχιών δεικτών.

Στην ουσία, η αρχιτεκτονική είναι ένα σύστημα κρυφής μνήμης, αλλά βελτιωμένο για εργασία με αντικείμενα. Το επίπεδο του μαξιλαριού στο οποίο βρίσκεται το αντικείμενο εξαρτάται από το πόσο συχνά χρησιμοποιείται. Εάν ένα από τα επίπεδα «ξεχειλίσει», το σύστημα ενεργοποιεί έναν μηχανισμό παρόμοιο με τους «συλλέκτες σκουπιδιών» σε Java ή Go. Αναλύει ποια αντικείμενα χρησιμοποιούνται λιγότερο συχνά από άλλα και τα μετακινεί αυτόματα μεταξύ των επιπέδων.

Το Zippads λειτουργεί με βάση τα Hotpad - αρχειοθετεί και αποσυμπιέζει δεδομένα που εισέρχονται ή εξέρχονται από τα δύο τελευταία επίπεδα της ιεραρχίας - το πληκτρολόγιο L3 και την κύρια μνήμη. Στο πρώτο και στο δεύτερο πληκτρολόγιο, τα δεδομένα αποθηκεύονται αμετάβλητα.

Πώς λειτουργεί η συμπίεση στην αντικειμενοστραφή αρχιτεκτονική μνήμης

Τα Zippads συμπιέζουν αντικείμενα έως και 128 byte. Τα μεγαλύτερα αντικείμενα χωρίζονται σε μέρη, τα οποία στη συνέχεια τοποθετούνται σε διαφορετικές περιοχές της μνήμης. Όπως γράφουν οι προγραμματιστές, αυτή η προσέγγιση αυξάνει τον συντελεστή αποτελεσματικά χρησιμοποιούμενης μνήμης.

Για τη συμπίεση αντικειμένων, χρησιμοποιείται ο αλγόριθμος COCO (Cross-Object Compression), τον οποίο θα συζητήσουμε αργότερα, αν και το σύστημα μπορεί να λειτουργήσει με Βάση-Δέλτα-Άμεση ή FPC. Ο αλγόριθμος COCO είναι μια παραλλαγή της διαφορικής συμπίεσης (διαφορική συμπίεση). Συγκρίνει αντικείμενα με τη "βάση" και αφαιρεί τα διπλά bit - δείτε το παρακάτω διάγραμμα:

Πώς λειτουργεί η συμπίεση στην αντικειμενοστραφή αρχιτεκτονική μνήμης

Σύμφωνα με τους μηχανικούς του MIT, η αντικειμενοστραφής ιεραρχία της μνήμης τους είναι 17% ταχύτερη από τις κλασσικές προσεγγίσεις. Είναι πολύ πιο κοντά στη δομή της στην αρχιτεκτονική των σύγχρονων εφαρμογών, επομένως η νέα μέθοδος έχει δυνατότητες.

Αναμένεται ότι, πρώτα απ 'όλα, οι εταιρείες που εργάζονται με αλγόριθμους μεγάλων δεδομένων και μηχανικής μάθησης μπορούν να αρχίσουν να χρησιμοποιούν την τεχνολογία. Μια άλλη πιθανή κατεύθυνση είναι οι πλατφόρμες cloud. Οι πάροχοι IaaS θα μπορούν να εργάζονται πιο αποτελεσματικά με εικονικοποίηση, συστήματα αποθήκευσης και υπολογιστικούς πόρους.

Οι πρόσθετοι πόροι και οι πόροι μας:

Πώς λειτουργεί η συμπίεση στην αντικειμενοστραφή αρχιτεκτονική μνήμης "How we build IaaS": υλικά για το έργο του 1cloud

Πώς λειτουργεί η συμπίεση στην αντικειμενοστραφή αρχιτεκτονική μνήμης Η εξέλιξη της αρχιτεκτονικής cloud 1cloud
Πώς λειτουργεί η συμπίεση στην αντικειμενοστραφή αρχιτεκτονική μνήμης Υπηρεσία αποθήκευσης αντικειμένων σε 1cloud

Πώς λειτουργεί η συμπίεση στην αντικειμενοστραφή αρχιτεκτονική μνήμης Πιθανές επιθέσεις στο HTTPS και πώς να προστατευτείτε από αυτά
Πώς λειτουργεί η συμπίεση στην αντικειμενοστραφή αρχιτεκτονική μνήμης Ποιες είναι οι ομοιότητες και οι διαφορές μεταξύ των προσεγγίσεων Συνεχούς Παράδοσης και Συνεχούς Ενσωμάτωσης
Πώς λειτουργεί η συμπίεση στην αντικειμενοστραφή αρχιτεκτονική μνήμης Πώς να προστατέψετε έναν διακομιστή στο Διαδίκτυο: εμπειρία 1cloud

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο