Paano Gumagana ang Compression sa Object-Oriented Memory Architecture

Ang isang pangkat ng mga inhinyero sa MIT ay bumuo ng isang object-oriented memory hierarchy upang gumana sa data nang mas mahusay. Sa artikulong naiintindihan namin kung paano ito inayos.

Paano Gumagana ang Compression sa Object-Oriented Memory Architecture
/ mga stock /PD

Tulad ng alam mo, ang paglago ng pagganap ng mga modernong CPU ay hindi sinamahan ng isang kaukulang pagbaba sa latency kapag nag-access ng memorya. Ang pagkakaiba sa pagbabago ng mga tagapagpahiwatig mula taon hanggang taon ay maaaring umabot ng hanggang 10 beses (PDF, pahina 3). Bilang resulta, lumilitaw ang isang bottleneck, na hindi pinapayagan ang buong paggamit ng mga magagamit na mapagkukunan at nagpapabagal sa pagproseso ng data.

Ang parusa sa pagganap ay ang tinatawag na pagkaantala ng decompression. Sa ilang kaso, maaaring tumagal ng hanggang 64 na cycle ng processor ang paghahanda ng data decompression.

Para sa paghahambing: pagdaragdag at pagpaparami ng mga numero ng floating point sakupin hindi hihigit sa sampung cycle. Ang problema ay gumagana ang memorya sa mga bloke ng data ng isang nakapirming laki, habang ang mga application ay gumagana sa mga bagay na maaaring maglaman ng iba't ibang uri ng data at magkaiba sa laki. Upang malutas ang problema, ang mga inhinyero ng MIT ay bumuo ng isang object-oriented memory hierarchy na nag-o-optimize ng pagproseso ng data.

Paano gumagana ang teknolohiya

Ang solusyon ay batay sa tatlong teknolohiya: Hotpads, Zippads at COCO compression algorithm.

Ang Hotpads ay isang software-driven na hierarchy ng scratchpad register memory (gasgas). Ang mga register na ito ay tinatawag na pads (pads) at mayroong tatlo sa kanila - mula L1 hanggang L3. Nag-iimbak sila ng mga bagay na may iba't ibang laki, metadata, at array ng mga pointer.

Sa esensya, ang arkitektura ay isang cache system, ngunit pinatalas upang gumana sa mga bagay. Ang antas ng pad kung saan matatagpuan ang bagay ay depende sa kung gaano kadalas ito ginagamit. Kung ang isa sa mga antas ay "uumapaw", ang system ay magti-trigger ng mekanismong katulad ng "mga kolektor ng basura" sa Java o Go. Sinusuri nito kung aling mga bagay ang mas madalas na ginagamit kaysa sa iba at awtomatikong inililipat ang mga ito sa pagitan ng mga antas.

Gumagana ang Zippads batay sa Hotpads - nag-archive at nag-unzip ng data na pumapasok o umaalis sa huling dalawang antas ng hierarchy - ang L3 pad at pangunahing memorya. Sa una at pangalawang pad, ang data ay nakaimbak nang hindi nagbabago.

Paano Gumagana ang Compression sa Object-Oriented Memory Architecture

Ang mga zippad ay nag-compress ng mga bagay hanggang sa 128 bytes. Ang mga malalaking bagay ay nahahati sa mga bahagi, na pagkatapos ay inilalagay sa iba't ibang bahagi ng memorya. Habang nagsusulat ang mga developer, pinapataas ng diskarteng ito ang koepisyent ng epektibong ginamit na memorya.

Upang i-compress ang mga bagay, ginagamit ang COCO (Cross-Object COmpression) algorithm, na tatalakayin natin sa ibang pagkakataon, kahit na ang system ay gumagana sa Base-Delta-Immediate o FPC. Ang COCO algorithm ay isang variation ng differential compression (differential compression). Inihahambing nito ang mga bagay sa "base" at inaalis ang mga duplicate na bit - tingnan ang diagram sa ibaba:

Paano Gumagana ang Compression sa Object-Oriented Memory Architecture

Ayon sa mga inhinyero ng MIT, ang kanilang object-oriented memory hierarchy ay 17% na mas mabilis kaysa sa mga klasikal na diskarte. Ito ay mas malapit sa istraktura nito sa arkitektura ng mga modernong aplikasyon, kaya ang bagong paraan ay may potensyal.

Inaasahan na una sa lahat, ang mga kumpanyang nagtatrabaho sa malaking data at machine learning algorithm ay maaaring magsimulang gumamit ng teknolohiya. Ang isa pang potensyal na direksyon ay ang mga cloud platform. Ang mga IaaS provider ay makakapagtrabaho nang mas mahusay sa virtualization, storage system at computing resources.

Ang aming mga karagdagang mapagkukunan at mapagkukunan:

Paano Gumagana ang Compression sa Object-Oriented Memory Architecture "Paano kami bumuo ng IaaS": mga materyales tungkol sa gawain ng 1cloud

Paano Gumagana ang Compression sa Object-Oriented Memory Architecture Ang ebolusyon ng cloud architecture 1cloud
Paano Gumagana ang Compression sa Object-Oriented Memory Architecture Serbisyo ng imbakan ng bagay sa 1cloud

Paano Gumagana ang Compression sa Object-Oriented Memory Architecture Mga Potensyal na Pag-atake sa HTTPS at Paano Magpoprotekta Laban sa Kanila
Paano Gumagana ang Compression sa Object-Oriented Memory Architecture Ano ang mga pagkakatulad at pagkakaiba sa pagitan ng Continuous Delivery at Continuous Integration approach
Paano Gumagana ang Compression sa Object-Oriented Memory Architecture Paano protektahan ang isang server sa Internet: 1cloud na karanasan

Pinagmulan: www.habr.com

Magdagdag ng komento