2012. május 31., csütörtök

Gyorskeresés

Főszponzorunk

ASUS

Útvonal

Tesztek  »  Processzor rovat

K10 élesben - nyúzópadon a Phenom

Az AMD új architektúráját elemző írásaink után éles helyzetben, valós alkalmazásokkal teszteltük a Phenom processzort.

Hirdetés

Az északi híd és az L3 cache órajele

A Phenom processzorok egyik legnagyobb, legfelkapottabb újítása a harmadszintű gyorsítótár. Az L3 cache-sel részletesen foglalkoztunk mélylélektani elemzésünkben, ezért most egy kis kitérő után azonnal a teljesítményt befolyásoló hatására térnénk.

A processzor feldolgozóegységei és a memória között tradicionálisan a háttértár > memória (> L3 cache) > L2 cache > L1 cache az adatok útvonala. Ez azt jelenti, hogy a processzor alaphelyzetben – ha arra van szükség – a memóriából először az L2 cache-be tölti a gyakran használt adatokat, majd onnan az L1-be. Itt találjuk a leggyakrabban használt adatokat, de általában az L2 cache-ben megmarad ennek a másolata, ekkor beszélünk inkluzív gyorsítótárról (az L1 részhalmaza az L2-nek). Az AMD a K10-ben kicsit megkavarta a lapokat, ugyanis megváltoztatta ezt a megszokott sémát. A K10 a memóriából közvetlenül az L1-be tölti az adatokat, majd ha ez megtelik, a helyhiány miatt az adatok az L2-be kerülnek (victim cache), és ha ez is megtelik, akkor az L3-ba (szintén victim cache).

A K10-ben megtalálható megoldásnak szinte csak előnye van. A tradicionális módszer hátrányt jelent olyan helyzetekben, amikor a programkód rövid, és az adatmennyiség, amelyen a processzor dolgozik, szintén kevéske, hiszen ez azt jelenti, hogy a cache-re nincs szükség, tehát az adatok késleltetése feleslegesen magas, elvégre amíg eljutnak a feldolgozásig, addig meg kell tenni a memória–L2 cache–L1 cache útvonalat, ezeknek elérési ideje tehát összeadódik. Szerencsére a legújabb processzorok már nagyon komoly prefetch (előbehívó) logikákat vonultatnak fel, például a Core 2 processzorokban a Data Prefetch Logic, amely az L2-ben működik, az L1 adatelérési sémáit elemzi, és ha szekvenciális lekérést detektál, akkor előre behúzza az adatokat a memóriából, így a hierarchiából adódó hátrányokat ezekben a helyzetekben némileg ellensúlyozza. Ezzel szemben a K10 a memóriából közvetlenül az L1-be tölti az adatokat, ráadásul prefetcherek segítségével, ez pedig azt jelenti, hogy az L2 cache elérési idejét megspórolja magának a processzor.

Vannak viszont esetek, amikor nagy adatmennyiségekkel kell dolgozni, ilyenkor mi történik? Az attól függ, hogy a feldolgozott adatok ismétlődnek-e vagy sem. Ha ismétlődnek, akkor a K10 ismét előnyben van, hiszen, a K10 az L3-ból az adatokat közvetlenül az L1-be tölti (az L2 mindig kimarad), ezzel sok-sok ciklusnyi késleltetést spórol meg magának. A hagyományos felépítés ebben a helyzetben ismét csak lassabb, hiszen az L1–L2–L3 közti késleltetés nem kerülhető ki. Amikor nagy mennyiségű, de nem ismétlődő adatcsomagokkal van dolgunk, a K10-es megoldás a közvetlenül L1-be töltő logika miatt szintén előnyt élvez riválisával szemben. Az egyedüli probléma, hogy az első, 65 nm-en gyártott K10-es chipek esetében mindössze 2 MB méretű a harmadszintű gyorsítótár, ami nagyon kevésnek tűnik elsőre, elvégre ezt illik az L2 cache legalább 8–16-szorosára méretezni, de mint láttuk, a K10 esetében a cache-hierarchia alján álló L3 egy útvonal végét jelenti, ezért csak és kizárólag olyan adatokat találunk benne, melyek az L2-be nem fértek el (tehát ebből az irányból exkluzív), ellentétben a hagyományos kialakítású processzorokkal, melyekben a memória után ez az adatok első állomása, emiatt a memória elérésének idejében is közrejátszik (növeli azt), és az L2-ben, illetve L1-ben is megtalálható adatok másolatát is tartalmazza (inkluzív), sok felesleges, egyszer használatos adattal egyetemben.

A K10 processzorokban az L3 cache a processzorban megtalálható „északi híd” órajelén üzemel. Az északi híd nagyjából ugyanazokat a funkciókat látja el, amiket egy külső megoldás, egy chipset északi hídja (adatforgalom-irányítás, szinkronizálás stb.). Minthogy az L3 cache alapvetően egy szeletke felturbózott memóriának felel meg, az L2 cache-ben felhasznált SRAM celláknál kisebb órajelet bír, ezért az L3 a processzor órajelénél alacsonyabb órajelen jár. Például a Phenom processzorokban amíg a processzor órajele 2,2–2,3 GHz, addig az L3 cache 1,8 GHz-en ketyeg. A legmagasabb órajelű tesztre kiadott Barcelona (mintapéldány) 2,5 GHz-es, ebben az L3 cache csak 2 GHz-en jár, és így tovább. A kérdés csupán az, hogy a harmadszintű gyorsítótár órajele miképpen befolyásolja a processzor teljesítményét. Sejthető, hogy amíg szekvenciális adatfolyamon dolgozunk, addig nem különösebben érdekes ez a kérdés. Még akkor sem, ha beleférünk a 64+512 kB-os keretbe. De ha ki is csúszunk belőle, akkor sem a memóriánál alig magasabb elérhető sávszélesség miatt profitálhatunk belőle, hanem a memóriánál sokkal rövidebb elérési ideje miatt (lásd mélylélektani elemzésünket).

A következő táblázatban összesítettük a 2,2 GHz-es Phenom processzor teljesítményét 1,8 és 2,2 GHz-es L3 cache órajel mellett.


Phenom 2200 MHz
L3 cache órajele1800 MHz2200 MHzkülönbség
Everest benchmark (MB/s)7353
4523
7531
5133
2%
13%
7-Zip benchmark be/kitömörítés (MIPS)7852
8589
7701
8671
-2%
1%
TMPGEnc HDV -> MPEG-2 konvertálás (mp)
TMPGEnc HDV -> DivX konvertálás (mp)
WME9 AP HD MOV -> WMV DVD (mp)
HD MOV -> x264 (fps)
iTunes WAV->MP3 (mp)
93
77
151
45,62
106
91
77
151
45,51
102
2%
0%
0%
0%
4%
Photoshop CS3 (mp)
Premier Pro CS3 render (mp)
Sony Vegas 7 render (mp)
100
196
80
100
196
79
0%
0%
1%
POV-Ray render (mp)
Cinebench 10 (pontszám)
3ds max 2008 v-ray render (mp)
Lightwave 9.3 render (mp)
Maya 2008 render (mp)
174
7106
117
125
134
174
7092
117
124
133
0%
0%
0%
1%
1%
Reaper render (mp)
ABBYY Finereader 9 beolvasás (mp)
Apache 2.2.6 bench (kB/s)
Fritz benchmark (kilo nodes/s)
Java JATMARK render (mp)
101
77
1419
5253
251
101
74
1489
5242
249
0%
4%
5%
0%
1%
Crysis (fps)
Bioshock (fps)
CMR Dirt (fps)
Lost Planet (fps)
World in Conflict (fps)
45
108
54
142
63
45
109
56
143
64
0%
1%
4%
1%
2%

Látható, hogy tipikus asztali használatra szánt programokban a harmadszintű gyorsítótár órajelének növelése nem nyom sokat latba. A videokódolók és 3D-s tervezőprogramok esetében nem is lepődtünk meg ezen, hiszen ezek kis mennyiségű szekvenciálisan beolvasott adaton dolgoznak. A fotó- és filmfeldolgozó programoknál ugyanez a helyzet (igaz, az adatok mérete már nagyobb, gondoljunk csak a filmek képkockáira, de még mindig szekvenciális adatelérésről van szó), bár a Photoshopban a nagy méretű képen végigfuttatott műveletsor esetében arra számítottunk, hogy a cache órajelének nagyobb befolyása lesz a teljesítményre. A 22%-os órajelemelés elvileg a tömörítőprogramokban kimutatható kellene, hogy legyen, hiszen a tömörítéshez használt könyvtár elérési idejétől nagyban függ a tömörítés ideje, de még itt sem sikerült kimérnünk 1%-nál nagyobb különbséget (a tömörítés –2%-os ideje az 5%-os hibahatáron belül van), ugyanis a végrehajtó egységek képeznek szűk keresztmetszetet. Csak az Everest benchmark utalt arra, hogy itt valami megváltozott, memóriaírásban 13%-kal magasabb eredményt mértünk.

A tesztek arra engednek következtetni, hogy a harmadszintű gyorsítótár órajele asztali használatot feltételezve nem befolyásolja komoly mértékben a teljesítményt. Az L3 cache elsősorban a szerverek világában kiemelkedő jelentőségű, például amikor nagy méretű adatbázisokkal dolgozik a processzor, sokat kell a memóriához nyúlnia, ezért jól jön a gyors elérésű cache.

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

Előzmények

Főszponzorunk

ASUS

Gyártók, szolgáltatók

Hirdetés

Copyright © 2000-2012 PROHARDVER Informatikai Kft.