Ein Ingenieurteam des MIT hat eine objektorientierte Speicherhierarchie entwickelt, um effizienter mit Daten umzugehen. In diesem Artikel erlÀutern wir, wie sie aufgebaut ist.
/ / 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 (). 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 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 (). 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.

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 oder . Der COCO-Algorithmus ist eine Form der differentiellen Kompression (). Er vergleicht Objekte mit âBasisobjektenâ und entfernt sich wiederholende Bits â siehe das Diagramm unten:

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:
![]()
![]()
![]()
![]()
![]()
![]()
Quelle: habr.com
