Bevezető
Ez a cikk akár kezdődhetne ugyanúgy, mint a közelmúltban megjelent, az RV770 memória-sávszélességével
foglalkozó testvére - az AMD bejelenté vala az HD4870-est erős gDDR5
memóriáival, majd az emberek
elébb hitetlenkedének, később örvendezének vala. A történet azonban itt nem ér véget, sőt, csak most
kezdődik igazán, hiszen ahogy a gDDR5 egyre inkább tömegtermékké válik, és a fajlagos költsége csökken,
egyre inkább lehet reális alternatívája egy szélesebb memóriabusznak - olyannyira, hogy márciusban az
AMD várhatóan egy 128-bites memóriabusszal és gDDR5 memóriával szerelt (alsó-)középkategóriás chipet fog
bejelenteni az RV740 személyében.
Miután mi itt szeretünk a jövőben kutakodni, nagyon kíváncsiak lettünk, mit is várhatunk ettől a
megoldástól. A HD4870-es tesztekből sokat nem tudunk meg, hiszen ott csak annyi biztos,
hogy bőven rendelkezik a kártya tartalék kapacitással memória-sávszélesség terén, ezért a jelenlegi egyetlen
gDDR5-ös kártyából kiindulva egy egyedi VGA-t kellett "előállítani". Így született ez a cikk.
Elméleti háttér - SDR, DDR, DDR2-DDR3, gDDR3-gDDR4, gDDR5
Mielőtt belevágunk a teszt kialakításába, ill. a mérésekbe, érdemes áttekinteni, mi is a különbség az
egyes memória-típusok között - ez alapján érthető lesz, miért is olyan nagy előrelépés a gDDR5 a korábbi
megoldásokhoz képest. Nem kell akadémiai székfoglalóra készülni - csak a lényeges elemeket emeljük ki.
Ez azt is jelenti, hogy az egyes típusok közötti különbségek listája messze nem teljes - a részleteket
pl. a Wikipedia-n lehet végigbogarászni.
SDR - Single Data Rate
Kezdjük a kályhánál. Az első memóriatípus roppant egyszerű: minden órajellel képes egy parancsot
(olvasást vagy írást) fogadni, és egy, a memóriabusz sávszélességével megegyező méretű adatot (röviden adatszót)
továbbítani (olvasni, vagy írni). Azaz egy 128-bites SDR memória 200MHz-es frekvencián hajtva
128 / 8 * 200 = 3200 MByte / sec sávszélességet biztosít.
Az 1 parancs / órajel működés csak folyamatos átvitel (burst) üzemmódban áll, ennek a feltételeivel
ebben a cikkben nem foglalkozunk.
RAM típus | Belső órajel | Névleges órajel | Effektív órajel | Sávszélesség |
SDR (128-bit) | 200 MHz | 200 MHz | 200 MHz | 3.200 MByte / sec |
DDR - Double Data Rate
Miután az SDRAM memóriák belső sávszélessége lényegesen nagyobb, mint a memóriabuszé, és folyamatos
átviteli módban a sávszélességet a memóriabusz limitálja, egy érdekes trükköt hoztak be a DDR memóriákkal -
a memória egy órajel alatt továbbra is egy műveletet végez, viszont a művelet két adatszó szélességen zajlik,
és az adatot a memória két lépésben továbbítja - az egyik szót az órajel felfutó
szakaszában, a másikat a lefutóban. Így az egységnyi idő alatt átvitt byte-ok száma megduplázható.
A DDR-rel indult el a fizikai és az effektív órajelek megkülönböztetése - a 200MHz fizikai órajelen
üzemelő DDR memóriát DDR-400-ként láthattuk viszont a boltok polcain, ahol a 400MHz az effektív órajel, azaz
az az órajel, ahol az SDR memória ugyanazt a sávszélességet biztosítaná, mint az ilyenre címkézett DDR.
Egyszerű, igaz?
A fentiek alapján a 128-bites DDR memória sávszélessége 200MHz-es fizikai órajelen:
128 / 8 * 200 * 2 = 6400 MByte / sec.
RAM típus | Belső órajel | Névleges órajel | Effektív órajel | Sávszélesség |
DDR (128-bit) | 200 MHz | 200 MHz | 400 MHz | 6.400 MByte / sec |
DDR2 és DDR3
A DDR2 és a DDR3 tovább folytatja azt a trendet, ami a DDR-rel elindult - a DDR2 egy órajel alatt 4,
a DDR3 pedig 8 adatszót olvas / ír. A rendszermemóriához használt DDR2 és DDR3 memóriák esetében mindig
az effektív órajelet látjuk, azaz ha a fizikai órajel 200MHz, akkor ezek a RAM-ok DDR2-800 és DDR3-1600
néven lelhetők fel.
Csak hogy tovább bonyolódjon a helyzet, DDR és DDR2-es memóriák videokártyákon is vannak. Amíg a DDR
esetében még korrektül voltak megadva a fizikai és az effektív órajelek, a DDR2 esetében mind a gyártók, mind a
szakirodalom trükkösen mind a fizikai, mind az effektív órajelet megszorozta kettővel - ezért azok a
VGA-k, amiket DDR2-es, 800MHz-es memóriával hirdetnek, ott az effektív órajel 800MHz, mindenhol 400MHz
olvasható fizikai órajelként, és a memória belsejében 200MHz-en ketyegnek a dolgok. Erre az "álfizikai"
órajelre a következőkben névleges órajelként fogunk hivatkozni.
Ha még van, aki nem menekült el, akkor szeretnénk jelezni, hogy a nehezén már túl vagyunk!
A 128-bites DDR2 memória sávszélessége 200MHz-es fizikai órajelen, amelyet 400MHz-es fizikai- és 800MHz-es
effektív órajelen hirdetnek: 128 / 8 * 200 * 4 = 12800 MByte / sec.
RAM típus | Belső órajel | Névleges órajel | Effektív órajel | Sávszélesség |
DDR-2 (128-bit) | 200 MHz | 400 MHz | 800 MHz | 12.800 MByte / sec |
DDR-3 (128-bit) | 200 MHz | 800 MHz | 1.600 MHz | 25.600 MByte / sec |
gDDR3 és gDDR4 - Graphics Double Data Rate
Először is: a gDDR3 és a gDDR4 nem DDR3 és DDR4 - mindkét széria specializált DDR2-es memóriákra épül,
bár a gDDR4 bizonyos tekintetben közelebb áll a DDR3-hoz. Azért volt szükség rájuk, mert a rohamosan növekvő
étvággyal rendelkező VGA-k számára igen rövid idő alatt szűkössé vált az effektív 800MHz-en cammogó DDR2,
ezért különféle alkalmazás-, ill. fogyasztás-specifikus finomhangolások után elindult a frekvencia felfelé.
Ami a mi számunkra lényeges, az az, hogy a gDDR3 sebességadatok összevethetők a DDR2-es adatokkal:
a 800Mhz-es effektív órajellel rendelkező, 128-bites buszon kapcsolódó gDDR3 ugyanúgy 12800 MByte-ot visz át
másodpercenként. Viszont a gDDR3-as memóriáknál a 800Mhz-es effektív órajel nem jellemző - a leggyorsabb
gDDR3 memóriák már bőven 2000MHz felett járnak.
A gDDR4 ismét beveti a belső órajel-felezős trükköt - ezzel viszont sajnos duplájára növeli a
késleltetést azonos effektív órajel mellett. Mivel a leggyorsabb gDDR4 memóriák alig járnak a gDDR3 előtt
effektív órajelben, ez a szabvány túlzottan nagy piaci sikert nem ért el.
128-biten a 800MHz-es névleges órajelű gDDR3 és gDDR4 memória sávszélessége:
128 / 8 * 800 * 2 = 25600 MByte / sec.
RAM típus | Belső órajel | Névleges órajel | Effektív órajel | Sávszélesség |
gDDR3 (128-bit) | 400 MHz | 800 MHz | 1.600 MHz | 25.600 MByte / sec |
gDDR4 (128-bit) | 200 MHz | 800 MHz | 1.600 MHz | 25.600 MByte / sec |
gDDR5
Szinte hihetetlen, de eljutottunk az utolsó típusig is. A gDDR5 a gDDR4-re épít, viszont az a nagy újítás,
hogy duplaannyi adatcsatornával rendelkezik, azaz megegyező (ál)fizikai órajel mellett duplaakkora
sávszélesség elérésére képes. Azért nagy lépés ez, mert az eddigi gyorsítások mind a késleltetés növelése
árán érték el az effektív órajel növekedését, a gDDR5 viszont a gDDR4-hez képest nem növeli a késleltetést,
mégis azonos névleges órajel mellett kétszeres memória-sávszélességgel rendelkezik.
128-biten a 800MHz-es névleges órajelű gDDR5 memória sávszélessége:
128 / 8 * 800 * 4 = 51200 MByte / sec.
RAM típus | Belső órajel | Névleges órajel | Effektív órajel | Sávszélesség |
gDDR5 (128-bit) | 200 MHz | 800 MHz | 3.200 MHz | 51.200 MByte / sec |
Itt érdemes megjegyezni, hogy amikor a tesztek során (akár ebben a cikkben, akár
másikban) a memória órajeléről beszélünk, akkor a névleges órajelről van szó.
A teszt felépítése
Ahhoz sajnos nem rendelkezünk megfelelő eszközökkel, hogy valós terhelés mellett pontosan megmérjük
a gDDR3 és a gDDR5 memória teljesítőképességének különbségét, ezért kerülő utat kellett választanunk - úgy
terveztük meg a tesztet, hogy a gDDR3 és a gDDR5 memória azonos sávszélességre legyen beállítva, és az így
kapott különbség alapján következtetünk arra, hogy azonos busz-szélesség és azonos órajel mellett mekkora
lehet a két teljesítmény közötti differencia. Adottak voltak a következő eszközök:
- HD4870, gDDR5 memória, 256-bit, 900MHz
- HD4850, gDDR3 memória, 256-bit, 993MHz
A sávszélességeket azonos szintre hozni vagy a memóriabusz szélességének változtatásával, vagy az órajel
módosításával lehet. Miután a kölcsönkapott HD4870-ről nem lett volna ildomos levágni a busz felével együtt
256M memóriát, a 128-bites megoldást nem tudtuk szembeállítani a 256-bitessel - maradt az órajel csökkentése.
Ennek a megoldásnak az a veszélye, hogy a gDDR5 amúgy is magasabb késleltetése még jobban megnő - ezért
mielőtt ész nélkül nekiestünk volna a tesztelésnek, végeztünk néhány előzetes mérést...
... amit nagyon jól tettünk, mert a 625/497MHz-re beállított HD4870 katasztrófálisan teljesített, helyenként
30%-kal is lassabb volt a referencia órajeles HD4850-nél. Ezért a próbaméréseket elvégeztük 600, 700, 800 és
900MHz-es memóriaórajelekkel is - miután azt tapasztaltuk, hogy az első lépcső ugrásszerű javulást hozott, míg
utána már egyenletesen emelkedett a teljesítmény, megmaradtunk a 600MHz-es beállításnál.
Tesztkörnyezet
A konfiguráció elemei | |
Alaplap | Gigabyte X38-DS4, FSB @333MHz |
CPU és órajel | Intel E6700 (4M L2 cache), @3.00GHz (9x333) |
CPU hűtés | Cooler Master HyperTX2 |
Memória | 4x1GB Geil Ultra DDR2-8500 |
Memória beállítások | 1066MHz (3.2x333), 5-5-5-15, tRD: 6 |
Tápegység | Corsair TX650 |
Operációs rendszer | Windows Vista x86 Ultimate SP1 |
VGA neve | Core clock | Shader clock | Memory clock | Driver |
Radeon HD4850 | 625 MHz | 993 MHz (x2) | Catalyst 8.12 WHQL | |
Radeon HD4850 | 625 MHz | 993 MHz (x2) | Catalyst 9.1 WHQL |
RAM típus | Belső órajel | Névleges órajel | Effektív órajel | Sávszélesség |
gDDR3 (256-bit) | 497 MHz | 993 MHz | 1.986 MHz | 63.552 MByte / sec |
gDDR5 (256-bit) | 150 MHz | 600 MHz | 2.400 MHz | 76.800 MByte / sec |
A VGASpeed.hu tesztkörnyezetének részletes ismertetője itt
található meg.
A tesztben résztvevő játékok
DirectX 9
F.E.A.R. v1.08
Oblivion v1.2.046
Race Driver: GRID v1.2
Rainbow Six: Vegas v1.06
DirectX 10
Bioshock v1.1
Crysis v1.21
World in Conflict v1.09
DirectX 10.1
Assassin's Creed v1.0
Far Cry 2 v1.0
S.T.A.L.K.E.R.: Clear Sky v1.5.0.7
Unigine Tropics demo v1.1
A játékokról, ill. a VGASpeed.hu tesztmódszereiről részletes ismertető
a bal oldali menü Tesztmódszer és játékok pontjában érhető el.