Tým inženýrů z MIT vyvinul objektově orientovanou paměťovou hierarchii pro efektivnější práci s daty. V tomto článku se podíváme, jak je strukturována.
/ / PD
Jak známo, nárůst výkonu moderních CPU není doprovázen odpovídajícím snížením latence při přístupu k paměti. Rozdíl ve změnách ukazatelů z roku na rok může být až 10krát (). Výsledkem je, že vzniká úzké hrdlo, které brání plnému využití dostupných zdrojů a zpomaluje zpracování dat.
Na výkon má negativní vliv takzvaná dekompresní latence. V některých případech může příprava na dekompresi dat zabrat až 64 procesorových cyklů.
Pro srovnání: sčítání a násobení čísel s plovoucí desetinnou čárkou ne více než deset cyklů. Problém je v tom, že paměť pracuje s bloky dat pevné velikosti, zatímco aplikace manipulují s objekty, které mohou obsahovat různé typy dat a lišit se velikostí. Aby problém vyřešili, inženýři z MIT vyvinuli objektově orientovanou paměťovou hierarchii, která optimalizuje zpracování dat.
Jak technologie funguje
Na základě řešení stojí tři technologie: Hotpads, Zippads a algoritmus komprese COCO.
Hotpads je softwarově řízená hierarchie superrychlé registrárové paměti (). Tyto registry se nazývají pady (pads) a jsou tři — od L1 do L3. V nich jsou uchovávány objekty různých velikostí, metadata a pole ukazatelů.
V podstatě architektura představuje systém cache, ale specializovaný na práci s objekty. Úroveň padu, na které se objekt nachází, závisí na tom, jak často je používán. Pokud se jedna z úrovní "přeplní", systém aktivuje mechanismus podobný "garbage collectoru" v jazycích Java nebo Go. Analyzuje, které objekty jsou používány méně často než ostatní, a automaticky je přesouvá mezi úrovněmi.
Zippads funguje na bázi Hotpads — archivuje a dearchivuje data, která přicházejí nebo odcházejí z posledních dvou úrovní hierarchie — padu L3 a hlavní paměti. V prvním a druhém padu jsou data uchovávána v nezměněné podobě.

Zippads komprimuje objekty, jejichž objem nepřesahuje 128 bajtů. Větší objekty jsou rozděleny na části, které jsou následně umístěny na různých místech v paměti. Jak uvádějí vývojáři, tento přístup zvyšuje koeficient efektivně využité paměti.
Pro kompresi objektů se používá algoritmus COCO (Cross-Object COmpression), o kterém si řekneme dále, i když systém je schopen pracovat i s nebo . Algoritmus COCO představuje variantu diferenční komprese (). Porovnává objekty s "základními" a odstraňuje opakující se bity — viz schéma níže:

Podle inženýrů z MIT je jejich objektově orientovaná hierarchie paměti o 17 % výkonnější než klasické přístupy. Je mnohem blíže struktuře moderních aplikací, takže nový metoda má potenciál.
Očekává se, že technologii jako první začnou využívat společnosti pracující s velkými daty a algoritmy strojového učení. Další potenciální oblastí použití jsou cloudové platformy. IaaS poskytovatelé získají možnost efektivněji pracovat s virtualizací, systémy ukládání dat a výpočetními zdroji.
Naše další zdroje a odkazy:
![]()
![]()
![]()
![]()
![]()
![]()
Zdroj: habr.com
