Hogyan működik a tömörítés az objektum-orientált memóriaarchitektúrában

Az MIT mérnökeiből álló csapat objektum-orientált memóriahierarchiát fejlesztett ki az adatokkal való hatékonyabb munka érdekében. A cikkből megértjük, hogyan van elrendezve.

Hogyan működik a tömörítés az objektum-orientált memóriaarchitektúrában
/ Háttérkép /PD

Mint ismeretes, a modern CPU-k teljesítménynövekedése nem jár együtt a memória elérésekor a késleltetés megfelelő csökkenésével. A mutatók évről évre történő változásának különbsége akár a 10-szeresét is elérheti (PDF, 3. oldal). Ennek eredményeként megjelenik egy szűk keresztmetszet, amely nem teszi lehetővé a rendelkezésre álló erőforrások teljes kihasználását, és lassítja az adatfeldolgozást.

A teljesítménybüntetés az úgynevezett dekompressziós késleltetés. Egyes esetekben az előkészítő adatkicsomagolás akár 64 processzorciklust is igénybe vehet.

Összehasonlításképpen: lebegőpontos számok összeadása és szorzása elfoglalni legfeljebb tíz ciklus. A probléma az, hogy a memória fix méretű adatblokkokkal működik, míg az alkalmazások olyan objektumokkal, amelyek különböző típusú adatokat tartalmazhatnak, és méretükben különböznek egymástól. A probléma megoldására az MIT mérnökei egy objektumorientált memóriahierarchiát fejlesztettek ki, amely optimalizálja az adatfeldolgozást.

Hogyan működik a technológia

A megoldás három technológián alapul: Hotpad, Zippad és a COCO tömörítési algoritmus.

A hotpadok a scratchpad regisztermemóriájának szoftver által vezérelt hierarchiája (karcolás). Ezeket a regisztereket padoknak (padoknak) nevezik, és három van belőlük - L1-től L3-ig. Különböző méretű objektumokat, metaadatokat és mutatótömböket tárolnak.

Lényegében az architektúra egy gyorsítótár-rendszer, de az objektumokkal való együttműködésre van kihegyezve. Az alátét szintje, amelyen az objektum található, a használat gyakoriságától függ. Ha az egyik szint "túlcsordul", a rendszer a Java vagy a Go "szemétgyűjtőihez" hasonló mechanizmust indít el. Elemzi, hogy mely objektumokat használják ritkábban, mint mások, és automatikusan áthelyezi őket a szintek között.

A Zippads a Hotpad-ek alapján működik – archiválja és kibontja azokat az adatokat, amelyek a hierarchia utolsó két szintjére – az L3 pad és a fő memória – belépnek vagy elhagyják. Az első és a második padban az adatok változatlanul tárolódnak.

Hogyan működik a tömörítés az objektum-orientált memóriaarchitektúrában

A Zippads legfeljebb 128 bájt méretű objektumokat tömörít. A nagyobb objektumokat részekre osztják, amelyeket aztán a memória különböző területeire helyeznek. Ahogy a fejlesztők írják, ez a megközelítés növeli a hatékonyan használt memória együtthatóját.

Az objektumok tömörítésére a COCO (Cross-Object COmpression) algoritmust használjuk, amelyről később még szó lesz, bár a rendszer képes együttműködni Alap-Delta-Azonnali vagy FPC. A COCO algoritmus a differenciális tömörítés egy változata (differenciális tömörítés). Összehasonlítja az objektumokat az "alappal" és eltávolítja az ismétlődő biteket – lásd az alábbi diagramot:

Hogyan működik a tömörítés az objektum-orientált memóriaarchitektúrában

Az MIT mérnökei szerint az objektum-orientált memóriahierarchiájuk 17%-kal gyorsabb, mint a klasszikus megközelítések. Szerkezetében sokkal közelebb áll a modern alkalmazások architektúrájához, így az új módszerben van lehetőség.

Várhatóan mindenekelőtt a big data és gépi tanulási algoritmusokkal dolgozó cégek kezdhetik meg a technológia használatát. Egy másik lehetséges irány a felhőplatformok. Az IaaS-szolgáltatók hatékonyabban tudnak majd dolgozni a virtualizációval, a tárolórendszerekkel és a számítási erőforrásokkal.

További forrásaink és forrásaink:

Hogyan működik a tömörítés az objektum-orientált memóriaarchitektúrában "Hogyan építjük fel az IaaS-t": anyagok az 1cloud munkájáról

Hogyan működik a tömörítés az objektum-orientált memóriaarchitektúrában A felhő architektúra evolúciója 1cloud
Hogyan működik a tömörítés az objektum-orientált memóriaarchitektúrában Objektumtárolási szolgáltatás 1Cloudban

Hogyan működik a tömörítés az objektum-orientált memóriaarchitektúrában Lehetséges támadások a HTTPS-en és az ellenük való védekezés
Hogyan működik a tömörítés az objektum-orientált memóriaarchitektúrában Milyen hasonlóságok és különbségek vannak a folyamatos szállítás és a folyamatos integráció megközelítései között?
Hogyan működik a tömörítés az objektum-orientált memóriaarchitektúrában Hogyan védjünk meg egy szervert az interneten: 1 felhő tapasztalat

Forrás: will.com

Hozzászólás