ProHoster > Blog > Amministrazione > Cumu a Cumpressione Funziona in l'Architettura di Memoria Orientata à l'Ughjetti
Cumu a Cumpressione Funziona in l'Architettura di Memoria Orientata à l'Ughjetti
Un squadra di ingegneri in MIT hà sviluppatu una gerarchia di memoria orientata à l'ughjettu per travaglià cù e dati in modu più efficiente. In l'articulu avemu capitu cumu hè dispostu.
/ PxQui /PD
Comu sapete, a crescita di u rendiment di i CPU muderni ùn hè micca accumpagnata da una diminuzione currispondente di a latenza quandu accede à a memoria. A diferenza in u cambiamentu di l'indicatori da annu à annu pò ghjunghje sin'à 10 volte (PDF, pagina 3). In u risultatu, appare un collu di buttiglia, chì ùn permette micca l'usu tutale di e risorse dispunibuli è rallenta u prucessu di dati.
A penalità di prestazione hè u cusì chjamatu ritardu di decompressione. In certi casi, a decompressione di dati preparatori pò piglià sin'à 64 cicli di processore.
Per paraguni : addizione è multiplicazione di numeri in virgule flottante occupà micca più di deci cicli. U prublema hè chì a memoria travaglia cù blocchi di dati di una dimensione fissa, mentre chì l'applicazioni operanu cù l'uggetti chì ponu cuntene diversi tipi di dati è differiscenu l'una di l'altru in grandezza. Per risolve u prublema, l'ingegneri di u MIT anu sviluppatu una gerarchia di memoria orientata à l'ughjettu chì ottimiseghja u prucessu di dati.
Cumu funziona a tecnulugia
A suluzione hè basatu annantu à trè tecnulugia: Hotpads, Zippads è l'algoritmu di compressione COCO.
Hotpads sò una gerarchia di u software di memoria di registru di scratchpad (scratchpad). Questi registri sò chjamati pads (pads) è ci sò trè - da L1 à L3. Immagazzinanu oggetti di diverse dimensioni, metadati è array di puntatori.
In essenza, l'architettura hè un sistema di cache, ma sharpened per travaglià cù l'uggetti. U livellu di u pad à u quale si trova l'ughjettu dipende da quantu spessu si usa. Se unu di i livelli "sborda", u sistema attiva un mecanismu simile à "collectori di basura" in Java o Go. Analizeghja chì l'uggetti sò usati menu spessu chè l'altri è li move automaticamente trà i livelli.
Zippads travaglia nantu à a basa di Hotpads - archivi è unzips dati chì entra o abbanduneghja l'ultimi dui livelli di a ghjerarchia - u pad L3 è a memoria principale. In u primu è u sicondu pad, i dati sò almacenati senza cambià.
Zippads comprime l'uggetti finu à 128 bytes. L'uggetti più grande sò spartuti in parti, chì sò poi posti in diverse spazii di memoria. Cum'è i sviluppatori scrivenu, stu approcciu aumenta u coefficientu di memoria effettivamente utilizata.
Per cumpressà l'uggetti, l'algoritmu COCO (Cross-Object COmpression) hè utilizatu, chì discuteremu dopu, ancu s'è u sistema hè capaci di travaglià cù Base-Delta-Immediate o FPC. L'algoritmu COCO hè una variazione di cumpressione differenziale (cumpressione differenziale). Compara l'uggetti à a "base" è elimina i bit duplicati - vede u diagramma sottu:
Sicondu l'ingegneri MIT, a so gerarchia di memoria orientata à l'ughjettu hè 17% più veloce di l'approcciu classicu. Hè assai più vicinu in a so struttura à l'architettura di l'applicazioni muderni, cusì u novu metudu hà potenziale.
Hè previstu chì, prima di tuttu, l'imprese chì travaglianu cù big data è algoritmi d'apprendimentu di machine pò principià aduprà a tecnulugia. Un'altra direzzione potenziale hè e plataforme di nuvola. I fornituri IaaS puderanu travaglià in modu più efficiente cù a virtualizazione, i sistemi di almacenamento è e risorse informatiche.