Tema: Re: Cache vietoj RAM
Autorius: ABLomas
Data: 2008-09-14 21:57:36
On 2008.09.14 18:20, Alvidon wrote:
> Nieks to nedaro dėl vienos esminės priežasties - kešas per brangus, 
> kad apsimokėtų tokie žaidimai. T.y. rinka neprisirpus mokėti tokius
> pinigus už tokį pagreitėjimą.

Šiaip čia yra dveji dalykai - viena, tokie CPU egzistuoja ir yra
naudojami (žr. kad ir pakankamai specializuotus CPU - bet jie
dažniausiai nėra pritaikyti "bendro pobūdžio užduotims" spręsti), kita -
SRAM kaina nėr tokia ir kosminė kad būtų "per brangu" - bet niekam to
nereikia.

Iš kitos pusės, man žinomi kompileriai visi turi opcijas (ir bent jau
patys stengias tai daryt "padefoltu") kad aligninti bytecode pagal kešą.
Rimtesnės programos (paimkim kad ir populiarią DBVS - MySQL kaip
pavyzdį) stengiasi operuoti duomenų kiekiais kurie telpa cache.
Pagrindinis apkrovimas tada - ant CPU, bet operacinkė tuo metu beveik
nieko neveikia (apart multitaskingo) - tai nafyg dar naudot cache vietą
kažkokiai operacinkei, kuri tik suės daug atminties, o darbo nepadarys?
Juo labiau kad ir greičio jai nereikia. Programų sąrašą galima tęsti
minint ir daugelį JIT kompilerį naudojančių programų (JAVA, etc), ir
žaidimus taipogi ;-)

Tai kaip ir iš vienos pusės - na, sakykim tu atsikratai DMA, susigalvoji
savo architektūrą ir taip toliau, ir pakrauni OS į kešą. Bet tai
klausimas - nafig? OS dažniausiai nereikia greičio, jo reikia
taikomosioms programoms + duomenims, o tai yra naudojama ir dabar - t.y.
duomenų prefetchinimas, pastangos sukišt viską į cache ir operacijos su
duomenimis vien ten, etc - viskas yra dabar. T.y. viskas ko reikia
greitam programos darbui. Tai nafyg dar laikyt ten kernelį, kuris
apskritai dirba kokius 0.01% CPU ir I/O laiko? =)