Wie funktioniert die Kompression in der objektorientierten Speicherarchitektur?

Ein Ingenieurteam des MIT hat eine objektorientierte Speicherhierarchie entwickelt, um effizienter mit Daten umzugehen. In diesem Artikel erlÀutern wir, wie sie aufgebaut ist.

Wie funktioniert die Kompression in der objektorientierten Speicherarchitektur?
/ PxHere / PD

Wie bekannt ist, geht das Wachstum der Leistung moderner CPUs nicht mit einem entsprechenden RĂŒckgang der Latenz bei Speicherzugriffen einher. Der Unterschied in den Leistungskennzahlen kann von Jahr zu Jahr bis zu 10-fach variieren (PDF, S. 3). Das Resultat ist ein Flaschenhals, der die vollstĂ€ndige Nutzung der verfĂŒgbaren Ressourcen einschrĂ€nkt und die Datenverarbeitung verlangsamt.

Die so genannte Dekompressionslatenz trĂ€gt zur Leistungseinbuße bei. In einigen FĂ€llen kann die vorbereitende Dekompression von Daten bis zu 64 ProzessorkreislĂ€ufe in Anspruch nehmen.

Zum Vergleich: Die Addition und Multiplikation von Gleitkommazahlen benötigen nicht mehr als zehn Zyklen. Das Problem liegt darin, dass der Speicher mit Datenblöcken fester GrĂ¶ĂŸe arbeitet, wĂ€hrend Anwendungen mit Objekten umgehen, die unterschiedliche Datentypen enthalten und in ihrer GrĂ¶ĂŸe variieren können. Um dieses Problem zu lösen, entwickelten Ingenieure des MIT eine objektorientierte Speicherhierarchie, die die Datenverarbeitung optimiert.

Wie die Technologie funktioniert

Das zugrunde liegende Konzept basiert auf drei Technologien: Hotpads, Zippads und dem COCO-Kompressionsalgorithmus.

Hotpads sind eine softwaregesteuerte Hierarchie von ultraschnellem Registrierspeicher (scratchpad). Diese Register werden als Pads bezeichnet und es gibt drei StĂŒck — von L1 bis L3. Dort werden Objekte unterschiedlicher GrĂ¶ĂŸen, Metadaten und Arrays von Zeigern gespeichert.

Im Wesentlichen handelt es sich bei der Architektur um ein Cache-System, das jedoch fĂŒr die Arbeit mit Objekten optimiert ist. Die Pad-Ebene, auf der sich ein Objekt befindet, hĂ€ngt davon ab, wie hĂ€ufig es verwendet wird. Wenn eine der Ebenen "ĂŒberlĂ€uft", aktiviert das System einen Mechanismus, der mit den "Garbage Collectors" in den Programmiersprachen Java oder Go vergleichbar ist. Er analysiert, welche Objekte seltener als die anderen verwendet werden, und verschiebt sie automatisch zwischen den Ebenen.

Zippads basiert auf Hotpads — es archiviert und dearchiviert Daten, die die beiden letzten Ebenen der Hierarchie betreten oder verlassen — Pad L3 und den Hauptspeicher. In den ersten beiden Pads werden die Daten in unverĂ€nderter Form gespeichert.

Wie funktioniert die Kompression in der objektorientierten Speicherarchitektur?

Zippads komprimiert Objekte, deren Umfang 128 Byte nicht ĂŒberschreitet. GrĂ¶ĂŸere Objekte werden in Teile zerlegt, die dann an verschiedenen Speicherstellen abgelegt werden. Laut den Entwicklern erhöht dieser Ansatz die Effizienz der Speichernutzung.

Zur Komprimierung von Objekten wird der Algorithmus COCO (Cross-Object COmpression) verwendet, ĂŒber den wir spĂ€ter berichten werden, obwohl das System auch mit Base-Delta-Immediate oder FPC. Der COCO-Algorithmus ist eine Form der differentiellen Kompression (differential compression). Er vergleicht Objekte mit „Basisobjekten“ und entfernt sich wiederholende Bits – siehe das Diagramm unten:

Wie funktioniert die Kompression in der objektorientierten Speicherarchitektur?

Laut Ingenieuren des MIT ist ihre objektorientierte Speicherhierarchie um 17 % leistungsfÀhiger als traditionelle AnsÀtze. Sie stellt eine signifikante AnnÀherung an die Architektur moderner Anwendungen dar, weshalb die neue Methode Potenzial hat.

Erwartet wird, dass Unternehmen, die mit großen Datenmengen und Algorithmen fĂŒr maschinelles Lernen arbeiten, die Technologie zuerst nutzen werden. Ein weiteres potenzielles Anwendungsfeld sind Cloud-Plattformen. IaaS-Anbieter erhalten die Möglichkeit, effizienter mit Virtualisierung, Datenspeichersystemen und Rechenressourcen zu arbeiten.

Unsere zusÀtzlichen Ressourcen und Quellen:

Wie funktioniert die Kompression in der objektorientierten Speicherarchitektur? „Wie wir IaaS aufbauen“: Materialien zur Arbeit von 1cloud

Wie funktioniert die Kompression in der objektorientierten Speicherarchitektur? Die Evolution der Cloud-Architektur von 1cloud
Wie funktioniert die Kompression in der objektorientierten Speicherarchitektur? Der Objektspeicherdienst in 1cloud

Wie funktioniert die Kompression in der objektorientierten Speicherarchitektur? Potenzielle Angriffe auf HTTPS und Möglichkeiten, sich zu schĂŒtzen
Wie funktioniert die Kompression in der objektorientierten Speicherarchitektur? Was sind die Ähnlichkeiten und Unterschiede zwischen den AnsĂ€tzen Continuous Delivery und Continuous Integration?
Wie funktioniert die Kompression in der objektorientierten Speicherarchitektur? Wie man einen Server im Internet schĂŒtzt: Erfahrungen von 1cloud

Quelle: habr.com

60GB SSD 8Gb DDR4