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

A MIT mérnöki csapata egy objektum-orientált memóriahierarchiát fejlesztett ki a hatékonyabb adathasználat érdekében. A cikkben megvizsgáljuk, hogyan működik ez.

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

Ismert, hogy a modern CPU-k teljesítményének növekedése nem jár együtt az memóriahozzáférés késleltetésének megfelelő csökkenésével. Az évről évre változó mutatók eltérése akár tízszeres is lehet (PDF, 3. oldal). Ennek eredményeként szűk keresztmetszet alakul ki, amely megakadályozza az erőforrások teljes kihasználását és lelassítja az adatok feldolgozását.

A teljesítménycsökkenést a dekompressziós késleltetés okozza. Néha akár 64 processzor ciklus is szükséges lehet az adatok előzetes dekompressziójához.

Összehasonlításképpen: a lebegőpontos számok összeadása és szorzása legfeljebb tíz ciklusba telik. A probléma az, hogy a memória rögzített méretű adathalmokkal dolgozik, míg az alkalmazások változó méretű és eltérő típusú objektumokkal operálnak. A helyzet megoldására a MIT mérnökei objektum-orientált memóriahierarchiát fejlesztettek ki, amely optimalizálja az adatok feldolgozását.

Hogyan működik a technológia

A megoldás három technológiára épül: Hotpads, Zippads és a COCO tömörítési algoritmusra.

A Hotpads egy programozás által vezérelt akárhagyma-nyerezenet (scratchpad). Ezeket a regisztereket pádoknak (pads) hívják, és három szinten L1-től L3-ig találhatók. Ezen pádokban különböző méretű objektumok, metaadatok és pointerek tömbjei tárolódnak.

Lényegében az architektúra egy cache-rendszert képvisel, amely az objektumok kezelésére specializált. Az a szint, ahol az objektum található, attól függ, hogy milyen gyakran használják. Ha az egyik szint "túlterhelődik", a rendszer egy olyan mechanizmust indít el, amely hasonló a Java vagy Go nyelvek "garbage collector" - hézéseihez. Ez elemzi, hogy mely objektumokat használják a legkevésbé, és automatikusan áthelyezi azokat a szintek között.

A Zippads a Hotpads alapján működik - archiválja és dearchiválja az adatokat, amelyek a hierarchia utolsó két szintjéről - az L3 pád és a fő memória - érkeznek vagy távoznak. Az első és második pádokon az adatok változatlan formában tárolódnak.

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

A Zippads tömöríti azokat az objektumokat, amelyek mérete nem haladja meg a 128 bájtot. A nagyobb objektumok darabokra oszlanak, amelyeket különböző memóriahelyeken tárolnak. A fejlesztők szerint ez a megközelítés növeli a hatékonyan felhasználható memória arányát.

Az objektumok tömörítésére a COCO (Cross-Object COmpression) algoritmus használatos, amelyről a következőkben beszélünk, bár a rendszer képes működni a Base-Delta-Immediate vagy FPC. A COCO algoritmus a differenciális tömörítés egyik formája (differential compression). Összehasonlítja az objektumokat a „bázis” objektumokkal, és eltávolítja a redundáns biteket — lásd az alábbi ábrát:

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

A MIT mérnökei szerint az objektumorientált memóriastruktúrájuk 17%-kal hatékonyabban működik, mint a klasszikus megközelítések. Sokkal közelebb áll a modern alkalmazások architektúrájához, ezért az új módszernek van potenciálja.

Előrejelzések szerint a technológiát elsősorban azok a cégek kezdhetik használni, amelyek nagy adatmennyiségekkel és gépi tanulása algoritmusokkal dolgoznak. Egy másik potenciális irány a felhőplatformok. Az IaaS szolgáltatók számára lehetőség nyílik hatékonyabban dolgozni a virtualizációval, adattárolási rendszerekkel és számítási erőforrásokkal.

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

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

Hogyan működik a tömörítés az objektum-orientált memóriarchitektúrában Az 1cloud felhőarchitektúrájának evolúciója
Hogyan működik a tömörítés az objektum-orientált memóriarchitektúrában Objektum tároló szolgáltatás az 1cloud-on

Hogyan működik a tömörítés az objektum-orientált memóriarchitektúrában Lehetséges támadások a HTTPS ellen és a védekezés módjai
Hogyan működik a tömörítés az objektum-orientált memóriarchitektúrában Mik a hasonlóságok és különbségek a Continuous Delivery és a Continuous Integration megközelítések között?
Hogyan működik a tömörítés az objektum-orientált memóriarchitektúrában Hogyan védjük meg a szervert az interneten: az 1cloud tapasztalatai

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster