Sådan fungerer komprimering i objektorienteret hukommelsesarkitektur

Et team af ingeniører ved MIT udviklede et objektorienteret hukommelseshierarki til at arbejde med data mere effektivt. I artiklen forstår vi, hvordan det er arrangeret.

Sådan fungerer komprimering i objektorienteret hukommelsesarkitektur
/ Px /PD

Som du ved, er ydelsesvæksten for moderne CPU'er ikke ledsaget af et tilsvarende fald i latenstid, når du får adgang til hukommelse. Forskellen i ændringen i indikatorer fra år til år kan nå op til 10 gange (PDF, side 3). Som følge heraf opstår der en flaskehals, som ikke tillader fuld udnyttelse af tilgængelige ressourcer og sinker databehandlingen.

Ydelsesstraffen er den såkaldte dekompressionsforsinkelse. I nogle tilfælde kan forberedende datadekomprimering tage op til 64 processorcyklusser.

Til sammenligning: addition og multiplikation af flydende kommatal besætte ikke mere end ti cyklusser. Problemet er, at hukommelsen arbejder med datablokke af en fast størrelse, mens applikationer opererer med objekter, der kan indeholde forskellige typer data og afvige fra hinanden i størrelse. For at løse problemet udviklede MIT-ingeniører et objektorienteret hukommelseshierarki, der optimerer databehandling.

Hvordan teknologien fungerer

Løsningen er baseret på tre teknologier: Hotpads, Zippads og COCO-kompressionsalgoritmen.

Hotpads er et softwaredrevet hierarki af scratchpad-registerhukommelse (skrabeplade). Disse registre kaldes pads (pads), og der er tre af dem - fra L1 til L3. De gemmer objekter af forskellig størrelse, metadata og arrays af pointere.

I bund og grund er arkitekturen et cachesystem, men skærpet til at arbejde med objekter. Niveauet af puden, hvor genstanden er placeret, afhænger af, hvor ofte den bruges. Hvis et af niveauerne "flyder over", udløser systemet en mekanisme, der ligner "skraldsamlere" i Java eller Go. Den analyserer, hvilke objekter der bruges sjældnere end andre og flytter dem automatisk mellem niveauerne.

Zippads fungerer på basis af Hotpads - arkiverer og udpakker data, der kommer ind i eller forlader de sidste to niveauer af hierarkiet - L3-pad'en og hovedhukommelsen. I den første og anden pad gemmes dataene uændret.

Sådan fungerer komprimering i objektorienteret hukommelsesarkitektur

Zippads komprimerer objekter op til 128 bytes. Større objekter er opdelt i dele, som derefter placeres i forskellige områder af hukommelsen. Som udviklerne skriver, øger denne tilgang koefficienten for effektivt brugt hukommelse.

For at komprimere objekter bruges COCO (Cross-Object Compression) algoritmen, som vi vil diskutere senere, selvom systemet er i stand til at arbejde med Base-Delta-Umiddelbar eller FPC. COCO-algoritmen er en variation af differentiel komprimering (differentiel kompression). Den sammenligner objekter med "base" og fjerner duplikerede bits - se diagrammet nedenfor:

Sådan fungerer komprimering i objektorienteret hukommelsesarkitektur

Ifølge MIT-ingeniører er deres objektorienterede hukommelseshierarki 17 % hurtigere end klassiske tilgange. Den er i sin struktur meget tættere på arkitekturen i moderne applikationer, så den nye metode har potentiale.

Det forventes først og fremmest, at virksomheder, der arbejder med big data og maskinlæringsalgoritmer, kan begynde at bruge teknologien. En anden potentiel retning er cloud-platforme. IaaS-udbydere vil være i stand til at arbejde mere effektivt med virtualisering, lagersystemer og computerressourcer.

Vores yderligere ressourcer og kilder:

Sådan fungerer komprimering i objektorienteret hukommelsesarkitektur "Sådan bygger vi IaaS": materialer om arbejdet med 1cloud

Sådan fungerer komprimering i objektorienteret hukommelsesarkitektur Udviklingen af ​​cloud-arkitektur 1cloud
Sådan fungerer komprimering i objektorienteret hukommelsesarkitektur Objektlagringstjeneste i 1cloud

Sådan fungerer komprimering i objektorienteret hukommelsesarkitektur Potentielle angreb på HTTPS og hvordan man beskytter sig mod dem
Sådan fungerer komprimering i objektorienteret hukommelsesarkitektur Hvad er lighederne og forskellene mellem Continuous Delivery og Continuous Integration tilgange
Sådan fungerer komprimering i objektorienteret hukommelsesarkitektur Sådan beskytter du en server på internettet: 1cloud-oplevelse

Kilde: www.habr.com

Tilføj en kommentar