• Nem Talált Eredményt

Sz´am´ıt´og´ep-architekt´ ur´ak

In document Magyar nyelv˝ u irodalom (Pldal 41-44)

2. Alapfogalmak, jel¨ ol´ esek 24

2.9. Sz´am´ıt´og´ep-architekt´ ur´ak

Sok kutat´o alkalmazza a k¨uls˝o t´aras modellt az algoritmus´anak hat´ekonys´ag´anak vizsg´alatakor. M´ara az ´ori´asi mem´oriam´ereteknek k¨osz¨onhet˝oen a legt¨obb adatb´azis elf´er a mem´ori´aban, valamilyen sz˝urt form´aban. Ilyen esetekben az elemz´eshez haszn´alt modell le-egyszer˝us¨odik az egyszer˝ubb k¨ozvetlen hozz´af´er´es˝u (RAM-) modellre (amely Neumann-modell

[139] n´even is ismert, mivel a magyar sz¨ulet´es˝u Neumann J´anos javasolta el˝osz¨or ezt az archi-tekt´ur´at). A programokat olyan modern processzorokon futtatj´ak, amely sokkal kifinomultabb a RAM-modelln´el. A modell t´ulzott egyszer˝us´ıt´ese ahhoz vezet, hogy az elemz´eseknek sem-mi k¨oze nincs a val´os´aghoz. Az ´uj modell ´uj elv´ar´asokat t´amaszt az algoritmusokkal szemben.

Ezekr˝ol egy kiv´al´o ´attekint´es olvashat´o a [94] tanulm´anyban. A modern processzorok legfonto-sabb saj´atoss´aga a t¨obbszint˝u mem´oria ´es a cs˝ovezet´ekes (pipeline-) feldolgoz´as.

2.9.1. T¨ obbszint˝ u mem´ oria, adatlokalit´ as

A mem´oria nem egyelten nagy blokk, sokkal ink´abb k¨ul¨onb¨oz˝o m´eret˝u, k´esleltet´es˝u mem´ori´akb´ol ´all´o hierarchikus rendszer. Min´el nagyobb a mem´oria m´erete, ann´al t¨obb id˝o kell a hozz´af´er´eshez. A hierarchia elemei, m´eret szerint n¨ovekv˝o sorrendben a k¨ovetkez˝ok:

regiszterek, p´ar kilob´ajtos els˝oszint˝u gyors´ıt´ot´ar, p´ar megab´ajtos m´asodszint˝u gyors´ıt´ot´ar, esetleges harmadszint˝u gyors´ıt´ot´ar, rendszermem´oria ´es merevlemez. Az adatot a rendszer-mem´ori´ab´ol a m´asodszint˝u gyors´ıt´ot´arba, a m´asodszint˝ub˝ol az els˝oszint˝u gyors´ıt´ot´arba blok-konk´ent m´asolhatjuk. A blokkm´eret egy Pentium 4-es processzor eset´en 128 b´ajt.

A blokkonk´enti feldolgoz´as m´as megvil´ag´ıt´asba helyezi az algoritmusok vizsg´alat´at : egyet-len bit el´er´es´ehez ´es beolvas´as´ahoz egy lass´u mem´ori´ab´ol ugyanannyi id˝o kell, mint a bitet tartalmaz´o teljes blokk el´er´es´ehez ´es beolvas´as´ahoz. M´asik adat el´er´ese ugyanebben a blokkban viszont nem ig´enyli m´ar a hozz´af´er´est a lass´u mem´ori´ahoz. ´Igy rendk´ıv¨ul fontos k¨ovetelm´enny´e v´alik az adatlokalit´as, azaz hogy az adatok, amelyeket id˝oben egym´ashoz k¨ozel dolgozunk fel, a mem´ori´aban is k¨ozel legyenek egym´ashoz.

Az adatot feldolgoz´asakor be kell hozni a regiszterekbe. El˝ofordulhat, hogy m´ar eleve ott van, mert az el˝oz˝o m˝uveletekhez sz¨uks´eg volt r´a. A korl´atozott sz´am´u regiszterek miatt azonban sokkal val´osz´ın˝ubb, hogy az egyik gyors´ıt´ot´arban vagy a rendszermem´ori´aban helyezkedik el.

S˝ot, az is lehet, hogy a merevlemezen tal´alhat´o, ha az algoritmus mem´oriaig´enye annyira nagy, hogy lapoz´asra van sz¨uks´eg. Ha a m´asodszint˝u gyors´ıt´ot´arban vagy a rendszermem´ori´aban helyezkedik el a k´ıv´ant adat, akkor az adathozz´af´er´es ´un. cache miss-t okoz. Am´ıg ez az adat beker¨ul a regiszterekbe, a processzor v´egrehajthat m´as m˝uveleteket (ezer alapm˝uvelet, p´eld´aul

¨osszead´as elv´egz´es´ere k´epes ez id˝o alatt), ennek ellen´ere a teljes´ıtm´enye messze elmaradhat ilyenkor a maxim´alist´ol. Teh´at az adatstrukt´ura, algoritmus p´ar tervez´esekor t¨orekedn¨unk kell a min´el jobb adatlokalit´asra a cache miss-ek elker¨ul´ese ´erdek´eben.

2.9.2. Cs˝ ovezet´ ekes feldolgoz´ as, el´ agaz´ as-el˝ orejelz´ es

A programoz´ok ´altal haszn´alt m˝uveleteket a ford´ıt´o mikroutas´ıt´asok sorozat´ara bontja. A m˝uveleteket nem k¨ul¨on-k¨ul¨on, egym´as ut´an hajtjuk v´egre, hanem p´arhuzamosan dolgozzuk fel ˝oket, cs˝ovezet´ek haszn´alat´aval. Sajnos azonban az adatf¨ugg˝os´eg ´es a felt´eteles ugr´asok so-kat rontanak a p´arhuzamos feldolgoz´as hat´ekonys´ag´an. Adatf¨ugg˝os´egr˝ol akkor besz´el¨unk, ha egy utas´ıt´as egy el˝oz˝o utas´ıt´as eredm´eny´et˝ol f¨ugg. El´agaz´as-el˝orejelz´esn´el megj´osoljuk a felt´etel kimenet´et, ´es bet¨oltj¨uk a cs˝ovezet´ekbe az ennek megfelel˝o utas´ıt´asokat. Ha a j´osl´as hamis-nak bizonyul, akkor a cs˝ovezet´eket ki kell ¨ur´ıteni, ´es be kell t¨olteni a helyes utas´ıt´asokat.

Ezt a probl´em´at gyakran kik¨usz¨ob¨olhetj¨uk k¨ul¨onb¨oz˝o technik´ak alkalmaz´as´aval, (mint p´eld´aul k´od´atrendez´essel) amelyet automatikusan elv´egez a ford´ıt´o. Sz´am´ıt´asig´enyes algoritmus ter-vez´esekor azonban nek¨unk kell ¨ugyeln¨unk az adatf¨uggetlens´egre ´es az el´agaz´as-el˝orejelz´esre.

A cs˝ovezet´ekes feldolgoz´as lehet˝ov´e teszi, hogy egy ´orajel alatt t¨obb m˝uveletet is elv´egezz¨unk. A fent eml´ıtett probl´em´ak miatt azonban a processzor ´atlagos teljes´ıtm´enye messze nem ´eri el az optimumot. A felesleges felt´etelek ronthatj´ak a hat´ekonys´agot. Az el´agaz´as-el˝orejelz´es intelligens olyan szempontb´ol, hogy ha egy felt´etel kimenete sohasem v´altozik, akkor a processzor ezt figyelembe veszi ´es a k´es˝obbiekben ennek megfelel˝oen j´osol. ´Igy a mindig igaz (vagy hamis) felt´etelek nem befoly´asolj´ak a hat´ekonys´agot.

El˝ ofeldolgoz´ as, hasonl´ os´ agi f¨ uggv´ enyek

Ebben a fejezetben ismertetj¨uk, hogy milyen elterjedt m´ert´ekek vannak elemek k¨oz¨otti ha-sonl´os´agra majd r´at´er¨unk a legfontosabb el˝ofeldolgoz´asi m˝uveletekre. Mindenek el˝ott azt kell tiszt´aznunk, hogy milyen t´ıpus´u attrib´utumok l´eteznek matematikus szemmel.

In document Magyar nyelv˝ u irodalom (Pldal 41-44)