MITi insenerite meeskond on vÀlja töötanud objekt-orienteeritud mÀluhierarhia, et andmeid tÔhusamalt töödelda. Artiklis uurime, kuidas see toimib.
/ / PD
Nagu teada, ei kaasne kaasaegsete CPU tootlikkuse kasvuga vastav mÀlu juurdepÀÀsu latentsuse vÀhenemine. Muutuste erinevus vÔib ulatuda kuni 10 korda aastas (). Tulemusena tekib pudelikael, mis ei vÔimalda tÀielikult olemasolevaid ressursse Àra kasutada ning aeglustab andmete töötlemist.
Toodangut kahjustab nn dekompressioonilaatne viivitus. MĂ”nedel juhtudel vĂ”ib andmete ettevalmistamise dekompressioon vĂ”tta kuni 64 protsessoritsĂŒklit.
VĂ”rdluseks: ujukoma arvude liitmine ja korrutamine mitte rohkem kui kĂŒmme tsĂŒklit. Probleem seisneb selles, et mĂ€lu töötab fikseeritud suurusega andmeblokkidega, samas kui rakendused opereerivad objektidega, mis vĂ”ivad sisaldada erinevaid andmetĂŒĂŒpe ja erineda suuruse poolest. Probleemi lahendamiseks on MITi insenerid vĂ€lja töötanud objekt-orienteeritud mĂ€luhierarhia, mis optimeerib andmete töötlemist.
Kuidas tehnoloogia töötab
Lahenduse aluseks on kolm tehnoloogiat: Hotpads, Zippads ja COCO kompresseerimisalgoritm.
Hotpads on tarkvaraliselt hallatav ĂŒlimemori registrihierarhia (). Need registrid nimetatakse padadeks (pads) ja neid on kolm â L1-st kuni L3-ni. Neis hoitakse eri suurusega objekte, metaandmeid ja viidete massiive.
Sisuliselt on arhitektuur sĂŒsteem, mis on optimeeritud objektidega töötamiseks sarnane nagu vahemĂ€lu. Peda tase, kus objekt asub, sĂ”ltub sellest, kui sageli seda kasutatakse. Kui mĂ”ni tase 'ĂŒleujub', kĂ€ivitab sĂŒsteem mehhanismi, mis sarnaneb 'prĂŒgikoristajatele' programmeerimiskeeltes Java vĂ”i Go. See analĂŒĂŒsib, milliseid objekte kasutatakse harvemini kui teisi, ja liigub automaatselt nende vahel.
Zippads toimib Hotpads'i alusel â arhiveerib ja de-arhiveerib andmed, mis sisenevad vĂ”i vĂ€ljuvad hierarhia kahe viimase taseme â pĂ€d L3 ja pĂ”hijĂ€lu. Esimeses ja teises pĂ€das hoitakse andmeid muutumatul kujul.

Zippads komprimeerib objekte, mille suurus ei ĂŒleta 128 baiti. Suuremad objektid jagatakse osadeks, mis needjĂ€rel paigutatakse erinevatesse mĂ€lu piirkondadesse. Arendajate sĂ”nul tĂ”stab selline lĂ€henemine mĂ€lu tĂ”hususe mÀÀra.
Objektide kompressimiseks kasutatakse algoritmi COCO (Cross-Object COmpression), millest rÀÀgime edaspidi, kuigi sĂŒsteem töötab ka vĂ”i . Algoritm COCO on diferentsiaalsete kompressioonide liik (). See vĂ”rdleb objekte "baas"-objektidega ja eemaldab korduvad bitid â vt skeemi allpool:

MIT-i inseneride sÔnul on nende objektorienteeritud mÀlu hierarhia 17% efektiivsem kui klassikalised lÀhenemisviisid. See on palju lÀhemal kaasaegsete rakenduste arhitektuurile, seega on uuel meetodil potentsiaali.
Oodatavasti hakkavad tehnoloogiat esmajoones kasutama ettevĂ”tted, mis töötavad suurte andmete ja masinĂ”ppe algoritmidega. Veel ĂŒks potentsiaalne suund on pilveplatvormid. IaaS-teenuse pakkujad saavad vĂ”imekuse paremini hallata virtualiseerimise, andmesalvestussĂŒsteemide ja arvutusressurssidega.
Meie tÀiendavad ressursid ja allikad:
![]()
![]()
![]()
![]()
![]()
![]()
Allikas: habr.com
