Et team af ingeniører fra MIT har udviklet en objektorienteret hukommelsesstruktur for mere effektiv håndtering af data. I denne artikel undersøger vi, hvordan den er opbygget.
/ / PD
Som bekendt stiger ydeevnen for moderne CPU'er ikke ledsaget af et tilsvarende fald i latenstiden ved adgang til hukommelse. Forskellen i ændringerne af målingerne fra år til år kan nå op til 10 gange (). Resultatet bliver en flaskehals, der forhindrer fuld udnyttelse af de tilgængelige ressourcer og bremser databehandlingen.
Den såkaldte dekompressionslatenstid skader ydeevnen. I nogle tilfælde kan der gå op til 64 processorcykler til forberedende dekompression af data.
Til sammenligning tager addition og multiplikation af flydende tal ti cykler. Problemet er, at hukommelsen arbejder med blokke af data i fast størrelse, mens applikationer arbejder med objekter, der kan indeholde forskellige datatyper og adskille sig i størrelse. For at løse problemet har ingeniører fra MIT udviklet en objektorienteret hukommelsesstruktur, der optimerer databehandling.
Hvordan teknologien fungerer
Løsningen bygger på tre teknologier: Hotpads, Zippads og COCO komprimeringsalgoritmen.
Hotpads er en softwarestyret struktur for superhurtig registerhukommelse (). Disse registre kaldes pads, og der er tre af dem — fra L1 til L3. De rummer objekter af forskellige størrelser, metadata og arrays af pegepunkter.
I sin essens udgør arkitekturen et cachesystem, men designet til arbejde med objekter. Niveauet af det pad, hvor objektet befinder sig, afhænger af, hvor ofte det bruges. Hvis et af niveauerne 'overfyldes', aktiverer systemet en mekanisme, der ligner 'garbage collectors' i programmeringssprogene Java eller Go. Den analyserer, hvilke objekter der bruges sjældnere end de andre og flytter dem automatisk mellem niveauerne.
Zippads arbejder på grundlag af Hotpads — arkiverer og dekomprimerer data, der kommer til eller forlader de to sidste niveauer i strukturen — pad L3 og hovedhukommelsen. I første og andet pad gemmes dataene uændret.

Zippads komprimerer objekter, hvis størrelse ikke overstiger 128 byte. Større objekter opdeles i dele, som derefter placeres i forskellige områder af hukommelsen. Som udviklerne skriver, øger denne tilgang den effektivt anvendte hukommelse.
Til komprimering af objekter anvendes algoritmen COCO (Cross-Object COmpression), som vi vil beskrive nærmere. Systemet kan dog også arbejde med eller . COCO-algoritmen er en form for differenskomprimering (). Den sammenligner objekter med 'basis'-objekter og fjerner gentagne bits — se diagrammet nedenfor:

Ifølge ingeniører fra MIT er deres objektorienterede hukommelsesstruktur 17 % mere effektiv end klassiske tilgange. Den ligner meget mere de moderne applikationers arkitektur, så den nye metode har potentiale.
Det forventes, at teknologien i første omgang kan blive anvendt af virksomheder, der arbejder med store datamængder og maskinlæringsalgoritmer. Et andet potentielt område er cloud-platforme. IaaS-udbydere vil få mulighed for at arbejde mere effektivt med virtualisering, datalagringssystemer og beregningsressourcer.
Vore ekstra ressourcer og kilder:
![]()
![]()
![]()
![]()
![]()
![]()
Kilde: habr.com
