Professional Documents
Culture Documents
Poboljsanje Performasni - Kes Memorija
Poboljsanje Performasni - Kes Memorija
Svi proizvođači računara voljeli bi da njihovi sistemi rade brže. U ovom poglavlju
opisaćemo niz naprednih tehnika koje se danas isprobavaju za poboljšanje
performansi sistema (prvenstveno procesora i memorije). Zahvaljujući velikoj
konkurenciji koja vlada u računarskoj industriji, vrijeme između pojave novih ideja
za ubrzavanje rada računara i njihovog ugrađivanja u proizvode začuđujuće je
kratko. Zbog toga se ideje o kojima ćemo govoriti u nastavku već uveliko koriste u
postojećim proizvodima.
Te ideje se mogu grubo svrstati u dvije kategorije: poboljšanje implementacije i
poboljšanje arhitekture. Poboljšanja implementacije obuhvataju načine
konstruisanja novih procesora ili memorije zbog kojih će sistem raditi brže i bez
izmjene postojeće arhitekture. Unapređivanje implementacije bez arhitekture
znači da će stari programi raditi na novih računarima, što je udarni komercijalni
faktor. Jedan od načina da se poboljša implementacija jeste korištenje bržeg
takta, ali to nije jedini način. Poboljšanje performansi, počevši od procesora 80386
preko procesora 80486, Pentiuma i Pentiuma Pro, do Pentiuma II, posljedica je
poboljšanja implementacije jer je arhitektura suštinski u svima njima ostala ista.
Neka poboljšanja se mogu ostvariti samo kroz izmjenu arhitekture. Ponekadsu te
izmjene postupne (npr. dodavanje novih instrukcija i registara), tako da stari
programi nastavljaju da rade na novim modelima. U ovom slučaju, da bi se
izvukao maksimum,mora se unaprijediti i softver ili barem stari prevesti pomoću
novog prevodioca koji prepoznaje i koristi novouvedene mogućnosti procesora.
Međutim, otprilike jednom u nekoliko decenija projektanti shvate da je stara
arhitektura potpuno iskorištena i da se može napredovati samo ako se krene od
nule. RISC revolucija iz osamdesetih godina bila je jedan takav proboj,druga takva
revolucija već lebdi u zraku.
U ovom poglavlju razmotrićemo četiri različite tehnike za poboljšanje performansi
procesora. Počinjemo s tri provjerena poboljšanja implementacije, zatim preći na
jedno koje daje najbolje rezultate kada je u izvjesnoj mjeri podržano izmjenama
arhitekture.
Ove tehnike su:
o Keš memorija
o Predviđanje programskog skoka
o Izvršavanje preko reda uz preimenovanje registara
o Špekulativno izvršavanje
KEŠ MEMORIJA
Kao što je navedeno, brzina RAM memorije je sve više zaostajala za brzinom
mikroprocesora. Da bi se ta nesrazmjera smanjila, uvedena je takozvana keš
memorija. Za razliku od radne RAM memorije koja je dinamičkog tipa, keš memorija
je statičkog tipa i ima za red veličine (oko 10 puta) kraće vrijeme pristupa.
Keš memorija je postavljena između mikroprocesora i radne memorije, a njenim
radom je upravljao posebni keš kontroler.
Keš memorija prvog nivoa (L1 nivo) je smještena u samo jezgro mikroprocesora.
Ova veoma brza memorija ima relativno mali kapacitet i podjeljena je na dva bloka,
jedan služi za instrukcije a drugi za podatke. Ona obično radi na istom taktu kao i
sam procesor.
Keš memorija drugog nivoa (L2 nivo) ima znatno veći kapacitet i kod današnjih
mikroprocesora je takođe smještena unutar samog procesorskog čipa. Zavisno od
tipa procesora, ova keš memorija može da radi na punom taktu procesora ili na
nižem taktu (obično polovina učestalosti takta procesora).
Keš memorija je mala i brza i čuva najskorije korištene memorijske riječi. Kada bi
dovoljno veliki procenat potrebnih memorijskih riječi bio u keš memoriji, efektivno
kašnjenje memorije drastično bi se smanjilo.
U jednoj od najefikasnijih tehnika za istovremeno povećanje propusnog opsega i
smanjene kašnjenja koristi se višestruka keš memorija. Njena osnovna verzija koja
radi veoma efikasno sadrži zaseban kešza instrukcije i za podatke. Brojne su koristi
od ovakve organizacije, često nazvane podjeljeni keš ( engl. split cache).
Špekulativno izvršavanje
Računarski programi se mogu podijeliti na osnovne blokove(engl.basic blocks), pri
čemu se svaki osnovni blok sastoji od linearnog niza koda, s jednom ulaznom na
na vrhu i jednom izlaznom na dnu bloka. Izvršavanje koda prije nego se zna da li
je on uopšte potreban zove se špekulativno izvršavanje (engl.speculative
execution).
- memoriju
- podsistem za pripremu instrukcija
- podsistem za upravljanje prekorednim izvršavanjem instrukcija
- podsistem za izvršavanje
U prvom generaciji Pentiuma 4, veličina keša je iznosila 256KB, u drugoj 512 KB, a
u trećoj 1 MB.