Funktionsweise der Komprimierung in einer objektorientierten Speicherarchitektur

Ein Team von Ingenieuren vom MIT hat eine objektorientierte Speicherhierarchie für eine effizientere Arbeit mit Daten entwickelt. Der Artikel befasst sich mit der Anordnung.


/ PxHere / PD

Wie Sie wissen, geht die Leistungssteigerung moderner CPUs nicht mit einer entsprechenden Verringerung der Latenz beim Zugriff auf den Speicher einher. Der Unterschied in der Änderung der Indikatoren von Jahr zu Jahr kann bis zu zehnmal betragen ( PDF, S. 3 ). Infolgedessen entsteht ein Engpass, der die vollständige Nutzung der verfügbaren Ressourcen verhindert und die Datenverarbeitung verlangsamt.

Die sogenannte Dekompressionsverzögerung verursacht einen Leistungsverlust. In einigen Fällen können bis zu 64 Prozessorzyklen eine vorbereitende Datendekomprimierung erfordern.

Zum Vergleich: Das Addieren und Multiplizieren von Gleitkommazahlen dauert nicht länger als zehn Zyklen. Das Problem ist, dass der Speicher mit Datenblöcken fester Größe arbeitet, während Anwendungen mit Objekten arbeiten, die unterschiedliche Datentypen enthalten können und sich in der Größe voneinander unterscheiden. Um das Problem zu lösen, entwickelten die MIT-Ingenieure eine objektorientierte Speicherhierarchie, die die Datenverarbeitung optimiert.

Wie die Technologie funktioniert


Die Lösung basiert auf drei Technologien: Hotpads, Zippads und dem COCO-Komprimierungsalgorithmus.

Hotpads ist eine softwaregesteuerte Hierarchie des superoperativen Registerspeichers ( Scratchpad ). Diese Register werden als Pads bezeichnet und es gibt drei davon - von L1 bis L3. Sie speichern Objekte unterschiedlicher Größe, Metadaten und Arrays von Zeigern.

Im Wesentlichen ist die Architektur ein Cache-System, das jedoch für die Arbeit mit Objekten geschärft wurde. Die Höhe des Pads, auf dem sich das Objekt befindet, hängt davon ab, wie oft es verwendet wird. Wenn eine der Ebenen "überläuft", startet das System einen Mechanismus ähnlich den "Garbage Collectors" in den Sprachen Java oder Go. Es analysiert, welche Objekte seltener als andere verwendet werden, und verschiebt sie automatisch zwischen den Ebenen.

Zippads arbeitet auf der Basis von Hotpads - es archiviert und entarchiviert Daten, die auf den letzten beiden Hierarchieebenen ankommen oder bleiben - dem L3-Pad und dem Hauptspeicher. Im ersten und zweiten Pad werden die Daten unverändert gespeichert.



Zippads komprimiert Objekte, deren Volume 128 Byte nicht überschreitet. Größere Objekte werden in Teile unterteilt, die dann in verschiedenen Teilen des Speichers abgelegt werden. Laut den Entwicklern erhöht dieser Ansatz den Koeffizienten des effizient genutzten Speichers.

Zum Komprimieren von Objekten wird der COCO-Algorithmus (Cross-Object COmpression) verwendet, auf den später noch eingegangen wird. Das System kann jedoch auch mit Base-Delta-Immediate oder FPC arbeiten . Der COCO-Algorithmus ist eine Form der differentiellen Komprimierung. Es vergleicht Objekte mit Basisobjekten und entfernt doppelte Bits - siehe Abbildung unten:



Laut Ingenieuren des MIT ist ihre objektorientierte Speicherhierarchie 17% produktiver als klassische Ansätze. Es ist in seiner Struktur viel näher an der Architektur moderner Anwendungen, daher hat die neue Methode Potenzial.

Es wird erwartet, dass die Technologie in erster Linie von Unternehmen eingesetzt werden kann, die mit Big Data und Algorithmen für maschinelles Lernen arbeiten. Ein weiterer potenzieller Bereich sind Cloud-Plattformen. IaaS-Anbieter können effizienter mit Virtualisierung, Datenspeichersystemen und Computerressourcen arbeiten.

Unsere zusätzlichen Ressourcen und Quellen:

„Wie wir IaaS bauen“: 1wolkenmaterialien

1cloud Cloud Architecture Evolution
Objektspeicherdienst in 1cloud

Mögliche Angriffe auf HTTPS und Möglichkeiten zum Schutz vor HTTPS
Was sind die Ähnlichkeiten und Unterschiede zwischen den Ansätzen Continuous Delivery und Continuous Integration?
So schützen Sie einen Server im Internet: 1cloud-Erfahrung

Source: https://habr.com/ru/post/de451356/


All Articles