Ako funguje kompresia v objektovo orientovanej architektúre pamäte
Tím inžinierov z MIT vyvinul objektovo orientovanú pamäťovú hierarchiu na efektívnejšiu prácu s údajmi. V článku chápeme, ako je to usporiadané.
/ Záber /PD
Ako viete, rast výkonu moderných CPU nie je sprevádzaný zodpovedajúcim znížením latencie pri prístupe k pamäti. Rozdiel v zmene ukazovateľov z roka na rok môže dosiahnuť až 10-násobok (PDF, strana 3). V dôsledku toho sa objavuje úzke miesto, ktoré neumožňuje plné využitie dostupných zdrojov a spomaľuje spracovanie údajov.
Výkonnostnou penalizáciou je takzvané dekompresné oneskorenie. V niektorých prípadoch môže prípravná dekompresia údajov trvať až 64 cyklov procesora.
Pre porovnanie: sčítanie a násobenie čísel s pohyblivou rádovou čiarkou obsadiť nie viac ako desať cyklov. Problém je v tom, že pamäť pracuje s dátovými blokmi pevnej veľkosti, zatiaľ čo aplikácie pracujú s objektmi, ktoré môžu obsahovať rôzne typy dát a líšia sa od seba veľkosťou. Na vyriešenie tohto problému inžinieri MIT vyvinuli objektovo orientovanú hierarchiu pamäte, ktorá optimalizuje spracovanie údajov.
Ako funguje technológia
Riešenie je založené na troch technológiách: Hotpads, Zippads a COCO kompresný algoritmus.
Hotpady sú softvérovo riadená hierarchia pamäte registrov zápisníkov (zápisník). Tieto registre sa nazývajú pads (podložky) a sú tri - od L1 po L3. Ukladajú objekty rôznych veľkostí, metaúdaje a polia ukazovateľov.
Architektúra je v podstate systém vyrovnávacej pamäte, ale zaostrený na prácu s objektmi. Úroveň podložky, na ktorej sa predmet nachádza, závisí od toho, ako často sa používa. Ak niektorá z úrovní „pretečie“, systém spustí mechanizmus podobný „zberačom odpadu“ v Jave alebo Go. Analyzuje, ktoré objekty sa používajú menej často ako iné, a automaticky ich presúva medzi úrovňami.
Zippads funguje na báze Hotpadov – archivuje a rozbaľuje dáta, ktoré vstupujú alebo opúšťajú posledné dve úrovne hierarchie – podložka L3 a hlavná pamäť. V prvom a druhom bloku sú dáta uložené nezmenené.
Zippads komprimuje objekty až na 128 bajtov. Väčšie predmety sú rozdelené na časti, ktoré sú potom umiestnené v rôznych oblastiach pamäte. Ako píšu vývojári, tento prístup zvyšuje koeficient efektívne využitej pamäte.
Na kompresiu objektov sa používa algoritmus COCO (Cross-Object COmpression), o ktorom budeme diskutovať neskôr, hoci systém je schopný pracovať s Základna-delta-okamžitá alebo FPC. Algoritmus COCO je variáciou diferenciálnej kompresie (diferenciálna kompresia). Porovnáva objekty so „základňou“ a odstraňuje duplicitné bity – pozri diagram nižšie:
Podľa inžinierov z MIT je ich objektovo orientovaná pamäťová hierarchia o 17 % rýchlejšia ako klasické prístupy. Svojou štruktúrou je oveľa bližšie k architektúre moderných aplikácií, takže nová metóda má potenciál.
Očakáva sa, že technológiu môžu začať využívať predovšetkým spoločnosti, ktoré pracujú s veľkými dátami a algoritmami strojového učenia. Ďalším potenciálnym smerom sú cloudové platformy. Poskytovatelia IaaS budú môcť efektívnejšie pracovať s virtualizáciou, úložnými systémami a výpočtovými prostriedkami.