View Single Post
Staro 25.12.2010., 15:08   #3
pocketGM
Premium
 
Datum registracije: Jan 2008
Lokacija: Zagreb
Postovi: 55
cache vs. RAM

Cache memorija koja se nalazi na samoj jezgri procesora ima daleko veći bandwidth i uglavnom radi više r/w ciklusa po clock-u od RAM-a.
Također je potrebno razumjeti kako sam CPU radi i da se nad podacima koje CPU obrađuje najčešće vrši više uzastopnih operacija prije nego li se rezultati pohrane u RAM. Jednako kao što nema smisla dok piješ kavu svako malo ići u frižider i uzeti mlijeko, malo si nadolit u šalicu i vratit mlijeko u frižider pa opet tako, a pije se džezma od litre , tako nema smisla da se podaci vraćaju u ram ako će se već za takt-dva ponovno morati povući u cache radi obrade.

CPU / CPU-Z Latency L1 Cache L2 Cache L3 Cache
Nehalem (2.66GHz) 4 cycles 11 cycles 39 cycles
Core 2 Quad Q9450 - Penryn - (2.66GHz) 3 cycles 15 cycles N/A

Još jednu stvar bih te ispravio - frekvencija nije brzina. Brzina prijenosa podataka zavisi i od frekvencije i od širine sabirnice i o drugim čimbenicima, a najčešće se označava kao bandwidth. Mjerna jedinica frekvencije je Hertz, a brzine prijenosa podataka [bita/po sekundi].
Recimo, imaš 32-bitnu sabirnicu koja radi na frekvenciji od 100Mhz. Dakle ona može u sekundi prenijeti 32*100 000 000 bita podataka. Ako može obaviti 2 r/w ciklusa po clocku, tada se ta brojka udvostručuje itd.
Ako imaš sabirnicu širine 64bita, tada će pri radu na jednakoj frekvenciji prenijeti dvostruko više podataka po ciklusu od sabirnice širine 32bita.

Još k tome kada je riječ o procesorima, treba znati da u recimo 32bita koliko iznosi jedan "paket" informacija koje 32-bitnom procesoru šaljemo, jedan dio bitova otpada na tzv. zastavice (bitove koji označavaju razna stanja, prijenose, overflowe, greške, interrupt requestove, specijalne switcheve za određene naredbe), jedan dio otpada na kod naredbe (binarni broj od nekoliko bita koji označava operaciju koja se vrši nad podacima - npr. zbrajanje, rotaciju, komplementiranje...), a jedan, najčešće najveći dio 32bitnog kolača otpada na podatke nad kojim će se izvršiti operacija.
To je najjednostavniji slučaj Može biti da se operacija izvodi nad podacima kojih ima više nego li stane u šanžer od 32bita, pa se stvar malo komplicira ali svodi na isto.
pocketGM je offline   Reply With Quote