Videnskab
 science >> Videnskab >  >> Elektronik

En ny datakomprimeringsteknik til hurtigere computerprogrammer

En ny teknik udviklet af MIT -forskere komprimerer "objekter" i hukommelsen for første gang, frigør mere hukommelse, der bruges af computere, så de kan køre hurtigere og udføre flere opgaver samtidigt. Kredit:Christine Daniloff, MIT

En ny teknik udviklet af MIT -forskere gentænker komprimering af hardwaredata for at frigøre mere hukommelse, der bruges af computere og mobile enheder, så de kan køre hurtigere og udføre flere opgaver samtidigt.

Datakomprimering udnytter redundante data for at frigøre lagerkapacitet, øge computerhastigheder, og give andre frynsegoder. I nuværende computersystemer, adgang til hovedhukommelse er meget dyr i forhold til egentlig beregning. På grund af dette, brug af datakomprimering i hukommelsen hjælper med at forbedre ydeevnen, da det reducerer hyppigheden og mængden af ​​dataprogrammer, der skal hentes fra hovedhukommelsen.

Hukommelse i moderne computere administrerer og overfører data i klumper i fast størrelse, som traditionelle kompressionsteknikker skal fungere på. Software, imidlertid, gemmer naturligvis ikke sine data i klumper af fast størrelse. I stedet, den bruger "objekter, "datastrukturer, der indeholder forskellige datatyper og har variable størrelser. Derfor skal traditionelle hardware -komprimeringsteknikker håndterer objekter dårligt.

I et papir, der blev præsenteret på ACM's internationale konference om arkitektonisk støtte til programmeringssprog og operativsystemer i denne uge, MIT -forskerne beskriver den første tilgang til komprimering af objekter på tværs af hukommelseshierarkiet. Dette reducerer hukommelsesforbruget og forbedrer ydeevnen og effektiviteten.

Programmører kan have gavn af denne teknik, når de programmerer i ethvert moderne programmeringssprog - såsom Java, Python, og Go - der gemmer og administrerer data i objekter, uden at ændre deres kode. På deres ende, forbrugere ville se computere, der kan køre meget hurtigere eller kan køre mange flere apps med de samme hastigheder. Fordi hver applikation bruger mindre hukommelse, det kører hurtigere, så en enhed kan understøtte flere applikationer inden for den tildelte hukommelse.

I forsøg med en modificeret Java virtuel maskine, teknikken komprimerede dobbelt så meget data og reducerede hukommelsesforbruget med det halve i forhold til traditionelle cache-baserede metoder.

"Motivationen forsøgte at finde på et nyt hukommelseshierarki, der kunne lave objektbaseret komprimering, i stedet for cache-line komprimering, fordi det er sådan de fleste moderne programmeringssprog styrer data, "siger første forfatter Po-An Tsai, en kandidatstuderende i datalogi og kunstig intelligenslaboratorium (CSAIL).

"Alle edb -systemer ville have gavn af dette, "tilføjer medforfatter Daniel Sanchez, professor i datalogi og elektroteknik, og en forsker ved CSAIL. "Programmer bliver hurtigere, fordi de holder op med at blive flaskehalset af hukommelsesbåndbredde."

Forskerne byggede videre på deres tidligere arbejde, der omstrukturerer hukommelsesarkitekturen for direkte at manipulere objekter. Traditionelle arkitekturer gemmer data i blokke i et hierarki med gradvist større og langsommere minder, kaldet "caches". Nyligt tilgængelige blokke stiger til de mindre, hurtigere caches, mens ældre blokke flyttes til langsommere og større caches, til sidst ender tilbage i hovedhukommelsen. Selvom denne organisation er fleksibel, det er dyrt:For at få adgang til hukommelse, hver cache skal søge efter adressen blandt dens indhold.

"Fordi den naturlige enhed for datahåndtering i moderne programmeringssprog er objekter, hvorfor ikke bare lave et hukommelseshierarki, der omhandler objekter? "siger Sanchez.

I et papir, der blev offentliggjort i oktober sidste år, forskerne detaljerede et system kaldet Hotpads, der gemmer hele genstande, tæt pakket ind i hierarkiske niveauer, eller "puder". Disse niveauer er udelukkende baseret på effektive, on-chip, direkte adresserede minder - uden avancerede søgninger påkrævet.

Programmer refererer derefter direkte til placeringen af ​​alle objekter på tværs af hierarkiet af puder. Nyt tildelte og for nylig refererede objekter, og de genstande, de peger på, blive på det hurtigere niveau. Når det hurtigere niveau fyldes, den kører en "fraflytning" -proces, der beholder objekter, der for nylig refereres til, men sparker ældre objekter ned til langsommere niveauer og genbruger objekter, der ikke længere er nyttige, for at frigøre plads. Pegere opdateres derefter i hvert objekt for at pege på de nye placeringer af alle flyttede objekter. På denne måde, programmer kan få adgang til objekter meget billigere end at søge gennem cacheniveauer.

For deres nye arbejde, forskerne designede en teknik, kaldet "Zippads, "der udnytter Hotpads -arkitekturen til at komprimere objekter. Når objekter først starter på et hurtigere niveau, de er ukomprimerede. Men når de bliver smidt ud til lavere niveauer, de er alle komprimeret. Pegere i alle objekter på tværs af niveauer peger derefter på de komprimerede objekter, hvilket gør dem lette at huske tilbage til de hurtigere niveauer og kan lagres mere kompakt end tidligere teknikker.

En komprimeringsalgoritme udnytter derefter redundans på tværs af objekter effektivt. Denne teknik afdækker flere kompressionsmuligheder end tidligere teknikker, som var begrænset til at finde redundans inden for hver blok i fast størrelse. Algoritmen vælger først et par repræsentative objekter som "base" -objekter. Derefter, i nye objekter, den gemmer kun de forskellige data mellem disse objekter og de repræsentative basisobjekter.

Brandon Lucia, en adjunkt i elektroteknik og computerteknik ved Carnegie Mellon University, roser arbejdet for at udnytte funktioner i objektorienterede programmeringssprog til bedre at komprimere hukommelse. "Abstraktioner som objektorienteret programmering tilføjes til et system for at gøre programmeringen enklere, men indfører ofte en omkostning i systemets ydeevne eller effektivitet, "siger han." Det interessante ved dette værk er, at det bruger den eksisterende objektabstraktion som en måde at gøre hukommelseskomprimering mere effektiv, hvilket igen gør systemet hurtigere og mere effektivt med nye computerarkitekturfunktioner. "

Denne historie er genudgivet med tilladelse fra MIT News (web.mit.edu/newsoffice/), et populært websted, der dækker nyheder om MIT -forskning, innovation og undervisning.




Varme artikler