AMD má s novými 45nm procesormi vynikajúcu ponuku, ktorá pokrýva priestor od 30€ až po 170€. Množstvo modelov je nahustených cenovo tesne vedľa seba, často je problém aj pre technicky zdatnejších vyznať sa ktorý procesor je na daný účel najvhodnejší. V dnešnom krátkom článku porovnáme v mnohých známych testoch dva rovnaké, trojjadrové procesory, ktoré sa líšia iba prítomnosťou, resp. absenciou L3 cache. Je taká dôležitá, aby bolo treba za ňu priplácať?
Úvod
Čo je, a na čo vlastne slúži cache u procesorov?
Pamäťová hierarchia u desktopových počítačov by sa dala opísať nasledovne – od najlacnejších a najpomalších pevných diskov/SSD s kapacitami v stovkách GB, pokračujúc drahšími a rýchlejšími RAM pamäťami v kapacitách po GiB a končiac najrýchlejšími ale aj na výrobu najdrahšími cache pamäťami s kapacitami od niekoľkých kiB po niekoľko MiB. V skratke by sa dalo povedať, že cache u procesorv slúži na to, aby jadrá spracúvavajúce inštrukcie nad určitými dátami nemuseli siahať do pomalých a vzdialených pamätí (RAM). Namiesto toho sú potrebné dáta kopírované do cache niekoľkých úrovní, ktoré sú priamo na jednom kuse kremíka spolu s exekučnými jednotkami procesora.
Moderné procesory majú dnes trojúrovňovú cache, teda pamäť procesora je rozdelená do troch „levelov“, alebo L1, L2 a L3 ako ich bežne poznáme. 45nm AMD procesory majú dva krát po 64kiB L1 cache, pre dáta a inštrukcie. Druhá úroveň cache je o veľkosti 512kiB, opäť pre každé jedno z jadier. Tieto cache
pracujú na frekvencii procesora. Posledná úroveň je spoločná pre všetky jadrá, je najväčšia a tiež zaberá podstatnú časť plochy jadra. AMD Phenom procesory majú 6MiB L3 cache, ktorá je v osobitne taktovanej časti nazývanej aj UnCore, či CPU-NorthBridge.
Existujú dva princípy funkcie cache – exkluzívna a inkluzívna. AMD využíva u svojich procesorov exkluzívnu cache, čo znamená že nižšia vrstva pamäte neobsahuje dáta vyššej vrstvy. Zrejmá je výhoda lepšieho využitia kapacity, nevýhoda sa však skrýva pri tom, keď jedno jadro kontroluje, či sa rovnaké dáta nenachádzajú v cache iných jadier – u exkluzívnom prístupe sa vo veľkej L3 cache nenachádzajú kópie dát z L1 a L2 ostatných jadier, jedno jadro sa teda musí „pozrieť“ postupne ku všetkým ostatným jadrám, až potom môže vykonať ďalšiu operáciu (spracovať dáta, vyžiadať dáta z RAM, ...). Intel využíva inkluzívnu cache, teda existujú kópie dát z L1 v L2, a opäť z L2 vo veľkej L3 cache. Ak sa teda určité dáta nenachádzajú v L3 cache, je istota že sa nebudú nachádzať ani u ostatných jadier, teda sa vyhľadávanie v ich cache preskočí.
Ako je architektúra cache efektívna sa dá vyjadriť pojmami cache hit a chache miss. Požiadavky na dáta, ktoré môže obslúžiť daná cache priamo sa nazýva cache hit, ak daná cache tieto dáta neobsahuje a musí ich vyžiadať z pamäťových prostriedkov nižších úrovní sa nazýva cache miss. Je zrejmé, že cache miss bude zavádzať oneskorenie a teda aj zníženie výkonu.
S akou efektivitou pracujú jednotlivé cache procesora je možné zistiť nástrojom
PerfMonitor od tvorcov známeho programu CPU-Z.
Ďalším dôležitým pojmom súvisiacim s cache pamäťou, je jej asociativita (associativity). Zjednodušene povedané, asociativita udáva, na koľko miest v cache môžu byť kopírované dáta z hlavnej pamäte. Pokiaľ procesor môže vybrať akúkoľvek pozíciu pre dáta do cache, je táto nazývaná ako plne asociatívna (fully associative). Existuje aj extrém z druhého konca, keď dáta z pamäte môžu byť kopírované iba na jedno miesto v cache – vtedy sa jedná o direct mapped cache. V desktopových procesoroch sa využívajú cache opisované ako n-asociatívne, teda existuje konkrétny počet miest v cache, kde môžu byť dáta kopírované. 2-way associative je napríklad L1 cache u dnešných AMD procesorov, čo znamená že akákoľvek pozícia v hlavnej operačnej pamäti môže byť kopírovaná na 2 pozície v tejto cache. Vynikajúco to ilustruje obrázok z on-line encyklopédie Wikipedia:
Čím je číslo asociativity vyššie, tým lepšie sú aj hodnoty cache hit, no na druhej strane sa zas predlžuje čas, kedy sa tento väčší počet miest v cache kontroluje. Viac asociatívna cache nám teda zlepšuje cache hit, ale zas aj zvyšuje latenciu.
AMD využíva 2-way associative L1 dátovú aj inštrukčnú cache, čo zabezpečuje nízku latenciu. Pre kompenzáciu horších hodnôt cache hit je zvýšená kapacita (oproti Intelovskej L1 cache) na 64kiB pre dátovú aj inštrukčnú cache.
Súčasná ponuka procesorov od AMD zahŕňa modely s jedným až štyrmi jadrami, resp. s L3 cache a bez nej. Pri uvádzaní 45nm Phenom-ov boli chvíľu na trhu aj čipy s 4MiB L3 cache namiesto 6MiB (Phenom II X4 8xx), no tie sa s postupne zlepšujúcou sa výrobou dnes už u Globalfoundries celkom vytratili z trhu. Máme tu teda modelový rad Phenom II (X2, X3 a X4) s 6MiB L3 cache, Athlon-y II (X3 a X4) s rovnakou štruktúrou L1 a L2 cache ale bez L3 cache a nakoniec Athlon-y II X2 a jeden Sempron, ktoré majú rovnakú L1 cache, dvojnásobnú L2 cache (2x1MiB) a žiadnu L3 cache.
Veľkosť jadra procesorov Phenom II je príliš vysoká na to, aby bolo možné tieto predávať ako konkurenciu pre Intelovské Pentium DualCore a Core2Duo, preto sa firma rozhodla vytvoriť tieto jadrá „osekané“ o veľkú L3 cache. Je jasné, že takýto krok podstatne zlacní výrobu ale na druhej strane môže mať aj veľký a citeľný dopad na výkon v určitých aplikáciách. AMD z časti kompenzuje tento fakt už tradične vynikajúcou cenou za veľký počet jadier (štvorjadro už za 90€, kto by to bol kedy tušil!).
Aký konkrétny vplyv na výkon v moderných testoch, aplikáciách a hrách má absencia L3 cache sa pokúsim zodpovedať v dnešnom článku. Ďalšiu stranu prosím...
AmOK
Broslowski
hvk
frcko73
adun
roob
roob
matelkoxxl
PatrikL
flanker
amd64
adun
AmOK
lkuzman
AmOK
Nickk
Ján Kurej
maladaptiv