Ein Team von Ingenieuren des MIT hat eine objektorientierte Speichhierarchie entwickelt, um die Datenverarbeitung effizienter zu gestalten. In diesem Artikel werfen wir einen Blick darauf, wie sie aufgebaut ist.
/ / PD
BekanntermaĂen ist das Wachstum der Leistung moderner CPUs nicht mit einer entsprechenden Verringerung der Latenz bei Speicherzugriffen verbunden. Die Unterschiede in den Kennzahlen können von Jahr zu Jahr bis zu 10-mal variieren (). Infolgedessen entsteht ein Flaschenhals, der die vollstĂ€ndige Nutzung der verfĂŒgbaren Ressourcen einschrĂ€nkt und die Datenverarbeitung verlangsamt.
Die sogenannte Dekompressionslatenz beeintrÀchtigt die Leistung. In einigen FÀllen kann die Vorbereitung der Dekompression von Daten bis zu 64 Prozessorzyklen in Anspruch nehmen.
Zum Vergleich: Das Addieren und Multiplizieren von FlieĂkommazahlen nicht mehr als zehn Zyklen. Das Problem liegt darin, dass der Speicher mit Datenblöcken fester GröĂe arbeitet, wĂ€hrend Anwendungen mit Objekten operieren, die unterschiedliche Datentypen enthalten und in ihrer GröĂe variieren können. Um dieses Problem zu lösen, haben Ingenieure des MIT eine objektorientierte Speicherhierarchie entwickelt, die die Datenverarbeitung optimiert.
Wie die Technologie funktioniert
Das zugrunde liegende Lösungskonzept basiert auf drei Technologien: Hotpads, Zippads und dem COCO-Kompressionsalgorithmus.
Hotpads sind eine softwaregesteuerte Hierarchie von ultraschnellem Registerspeicher (). Diese Register werden Pads genannt und es gibt drei davon â von L1 bis L3. In ihnen werden Objekte unterschiedlicher GröĂe, Metadaten und Arrays von Zeigern gespeichert.
Im Wesentlichen stellt die Architektur ein Cachingsystem dar, das jedoch speziell fĂŒr die Verarbeitung von Objekten optimiert ist. Die Ebene des Pads, auf der sich ein Objekt befindet, hĂ€ngt davon ab, wie hĂ€ufig es verwendet wird. Wenn eine dieser Ebenen "ĂŒberlĂ€uft", aktiviert das System einen Mechanismus, der dem "Garbage Collector" in Programmiersprachen wie Java oder Go Ă€hnelt. Dieser analysiert, welche Objekte seltener verwendet werden als die anderen und verschiebt sie automatisch zwischen den Ebenen.
Zippads basiert auf Hotpads â es archiviert und dekomprimiert Daten, die zwei letzte Hierarchieebenen â L3-Pads und Hauptspeicher â erreichen oder verlassen. In den ersten beiden Pads bleiben die Daten unverĂ€ndert.

Zippads komprimiert Objekte, deren GröĂe 128 Byte nicht ĂŒberschreitet. GröĂere Objekte werden in Teile aufgeteilt, die dann in verschiedenen Speicherbereichen platziert werden. Laut den Entwicklern erhöht dieser Ansatz den EffektivitĂ€tsgrad des genutzten Speichers.
Zur Komprimierung von Objekten wird der Algorithmus COCO (Cross-Object COmpression) verwendet, ĂŒber den wir spĂ€ter berichten werden, obwohl das System auch mit oder . Der COCO-Algorithmus ist eine Form der differenziellen Kompression (). Er vergleicht Objekte mit "Basisobjekten" und entfernt wiederholte Bits â siehe das Diagramm unten:

Nach Angaben von MIT-Ingenieuren ist ihre objektorientierte Speichersystemarchitektur 17 % leistungsfĂ€higer als herkömmliche AnsĂ€tze. Sie ist viel nĂ€her an der Architektur moderner Anwendungen, daher hat die neue Methode groĂes Potenzial.
Es wird erwartet, dass vor allem Unternehmen, die mit groĂen Datenmengen und Machine-Learning-Algorithmen arbeiten, diese Technologie anwenden werden. Ein weiteres potenzielles Anwendungsfeld sind Cloud-Plattformen. IaaS-Anbieter werden in der Lage sein, Virtualisierung, Datenspeichersysteme und Rechenressourcen effizienter zu nutzen.
Unsere zusÀtzlichen Ressourcen und Quellen:
![]()
![]()
![]()
![]()
![]()
![]()
Quelle: habr.com
