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.
/ / 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 (). 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 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 (). 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.

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 vagy . A COCO algoritmus a differenciális tömörítés egyik formája (). Összehasonlítja az objektumokat a „bázis” objektumokkal, és eltávolítja a redundáns biteket — lásd az alábbi ábrát:

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