Hirdetés

Ötödik generációs CPU-k csatája - I

Processzorok

Az előző két teszt (486 és 5x86 vs P75) logikus folytatása a Pentium kategóriás processzorok összemérése. A ringbe csak a három legnagyobb gyártó termékét eresztettem össze, de még így is sok időt felemésztett, mire mindent lemértem. A K5-öt és a P100-at leszámítva azonos PR200-as (vagy eleve 200MHz-es) processzorokat használtam, hogy korrekt eredményeket kapjak. A tesztek során belefutottam pár érdekes, bár végiggondolva logikus eredménybe. Mire ezeket tisztáztam és szavakba öntöttem túl hosszú lett a cikk, ezért két részre bontottam. Az első részben megismerhetitek a versenyzőket, a két 100MHz-es CPU-t és pár jelenleg is érvényes megfigyelést. Először is lássuk a versenyzőket nagyjából megjelenési sorrendben.

Intel

A legnagyobb gyártót a 486-ok világában egyre jobban szorongatták a klónok. Ráadásul elbukták a névhasználatért indított pert, de régóta tudjuk, hogy "A birodalom visszavág"

Pentium

Az Intel processzorát 586 néven vártuk, végül a már említett jogvédelmi okokból Pentium néven mutatták be 93-ban. 16 bites programoknál nagyjából kétszeres teljesítményre volt képes a 486-hoz képest, 32 biten tovább nőtt az előnye. Hogy ezt elérjék számos újítást vezettek be:

- Superscalar arhitektúra: Két integer végrehajtó egység, amiből egy teljes értékű, a második csak a leggyakrabban használt utasításokat ismeri.
- Átdolgozott FPU ( Hatalmas előnyt jelentett és megnyitotta az utat a multimédiás alkalmazásoknak)
- 64 bites, nagy sebességű (50-66MHz) adatbusz
- Elágazás becslés bevezetése
- Két utas, megosztott 8-8kB adat és utasítás cache

Sajnos nem volt éppen hibamentes. Az első változatok híresek voltak az FDIV bugról, illetve a melegedésről. Természetesen ezt az Intel fokozatosan korrigálta. P54-es széria már 3.3V-os feszültségről járt, így megoldódott a melegedés. A 95 március utáni P54C szériánál kijavították az FPU hibáját is. Ez a széria 200MHz-ig skálázódott.

Pentium-MMX

97 első hónapjában érkeztek meg az MMX processzorok először 166 és 200, majd júniustól 233MHz-es példányai. Több ponton is hozzányúltak az eredeti felépítéshez, hogy növeljék a teljesítményt.

- Kétszeres méretű (16-16kB data-instruction) 4 utas cache
- 5 helyett 6 fázisú pipeline, a csökkentett tudású végrehajtó egység több utasítást ismer, javítva a párhuzamosságot
- Javított elágazásbecslés
- Hatékonyabb utasítás dekódolás
- A mag alacsonyabb tápfeszültségen jár, mint az IO rész, ezzel tovább csökkentve a fogyasztást
- MMX utasításkészlet.

A módosításoknak köszönhetően nagyjából egy órajel lépcsőnyit javulást értek, azaz a 166-os MMX hozta nagyjából a 200MHz-es Pentium teljesítményét. Mivel áruk hamarosan közel megegyezett, így nem volt kérdés melyiket válassza az ember, ha az alaplapja támogatta a dupla tápfeszültséget. Ráadásul az MMX-et támogató programok jelentős előnyre tehettek szert, de erről majd a következő cikkben. A gyorsan javuló kihozatalnak hála egyre több 166MHz-es processzor rendelkezett jó tuning potenciállal. Emiatt elterjedt az átszitázásos hamisítás. Ennek szorzó lockkal próbált határt szabni az Intel, ami tuning szempontjából sokaknak nem esett jól. Szerencsére az új alaplapok 100, sőt esetenként 108, 112MHz FSB-re is képesek voltak. Nem egy 166-os futott stabilan 250-280MHz-en.

Cyrix

Akkoriban a Cyrix volt a harmadik legnagyobb x86 tervező cég. A gyártást külső cégek (IBM, SGS...) segítségével oldotta meg, akik a saját nevük alatt is piacra dobták a Cyrix processzorokat. A képeket ha megnézitek a következő oldalon, akkor láthatjátok, hogy IBM és ST gyártmányokat használtam a teszteléshez.

6x86, 6x86L

A Cyrix 96 februárjában - az AMD-t jócskán megelőzve - mutatta be CISC superskalár processzorát, amelyik leginkább az Intel megoldására hasonlít. A legfőbb eltérések a következők:

- 7 lépcsős pipeline
- Speculative execution és fejlett elágazás becslés (Pentiumhoz viszonyítva)
- Regiszter átnevezés
- Out of order végrehajtás
- 16 kB 4way egységes cache

Az integer teljesítmény azonos órajelen nagyobb volt, mint az Intel Pentiumé, az FPU viszont gyengébbre sikeredett. Egy 133MHz-es PR166-os darab a szokásos irodai alkalmazásoknál partyban van a konkurenciával, de játékok, multimédia alatt sajnos elvérzik még egy 133-as Pentiummal szemben is. Munkában ez nem volt gond ,de otthon ekkor kezdtek el az emberek FPU intenzív játékokat és multimédia programokat használni.

Az első 0.65um-es szériák eléggé melegedek, ezt a problémát a 0.35um-en készülő 6x86L verzióban javították ki, amiben a mag 2.8V-on járt az Intel MMX-hez hasonlóan.

Sajnos a szoftver és hardver kompatibilitással is gondok voltak. Nem támogatta a Pentium utasításkészletet, ami pár esetben gondot okozott például időzítéseknél. Ráadásul a CPUID-t sem támogatta alapból, ami a CPU hibás azonosítását okozhatta. A Win95 első kiadása 486-nak azonosította, de jó pár más program is lebutította magát, vagy rosszabb esetben el sem indult. A hw probléma kissebb volt, a gyártók gyorsan megoldották a BIOS upgradeket és a 75MHz-es FSB támogatását a PR200-es databokhoz.

6x86MX

Az MMX-ek ellen egy átfésült CPU-ra volt szüksége a Cyrixnek. Ez lett a 6x86MX 97 júniusában. Négy fő változtatást végeztek el:

- 32 bites optimalizáció.
- Javított elágazás becslés. Mind a hatékonyságát, mind a hozzá tartozó buffer méretét megnövelték
- 64 kB 4 way unified cache az eddigi 16 helyett.
- Belső utasítás cache-t vezettek be, ami tekinthető egy level 0 cachnek is, ennek mérete 256 byte.

A módosításoknak hála sikerült egy igen jó szériát sikerült piacra dobni. Sajnos az FPU-t nem upgradelték fel, ami a későbbiekben egyre nagyobb gondot okozott. A leggyorsabb darab címet tudtommal a Cyrix MIII 6x86MX-PR400 érdemelte ki, ami valójában 285MHz-en (2.5x95MHz) fut és a lassabb Pentium ketteseknek is megfelelő ellenfél, amíg csak Office fut a gépen. A Cyrix ebben az időben került a National Semiconductor, majd később a VIA tulajdonába. Sajnos az új tulajdonosok nem látták kifizetődőnek a nagy arányú fejlesztést, fokozatosan lemaradtak a teljesítmény háborúban, majd átpozicionálták magukat az alacsony fogyasztású piacra.

AMD

Az AMD kicsit késve jött ki új processzorával. Addig a 486 alapú 5x86 P75-el próbálta tartotani a frontot több (16 bit), kevesebb (32 bit) sikerrel.

K5

Az AMD nagyon várt K5 kódjelű processzorát 3 év fejlesztés után 96-ban dobta piacra 75 és 90 MHz-en. Sajnos ez egy év csúszást jelentett, ekkor a sebessége már nem volt elegendő az Intel processzorokkal szemben. A beharangozott "Pentium killer" csak az alsó kategóriában tudott labdába rúgni. Az integer teljesítménye azonos órajelen jobb volt a Pentiumoknál, de az FPU-ja gyengébbre sikerült. Ezt rontotta, hogy az AMD kis belső módosítást követően - az aranyozott fejű példányoknál - bevezette a PR (Pentium Rate) számozást. A leggyorsabb darab a 116.7MHz-es PR166 volt, a PR200 már nem került a piacra. Tesztelésre egy korai 100MHz-es darabot kaptam kölcsön, amit egy alulhajtott Pentiummal fogok most összevetni.

A belső felépítése teljesen eltért az addig megszokott x86 processzoroktól. Architecturálisan egy superskalár, RISC processzorról van szó:

- RISC alapú, Am29k családon alapuló belső felépítés, x86 dekódolóval
- 6 végrehajtó egység: 5 integer, 1 FPU
- 4 utas 16kb instruction és 8kb data cache
- Regiszter átnevezés
- Out of Order végrehajtás
- Branh Prediction: Az elágazás becslés hatásfoka sajnos nincs számszerűsítve, de a buffer mérete négyszer nagyobb, mint az Intel Pentiumnál.
- Speculativ végrehajtás

K6

A K5 kudarcát követően az AMD a NexGen felvásárlásával igyekezett ledolgozni lemaradását. Az általuk fejlesztett processzort dobták piacra némi átfésülés után K6 néven piacra 97 áprilisában. Felépítése alapjaiban emlékeztet a K5-re, de valójában az Nx686-on alapul.

- Superskalár felépítés, 4 dekódolt RISC86 utasítás órajelenként
- 7 végrehajtó egység: 2 integer, multimedia, FPU, branch, load és store
- 2 utas 32kb instruction és 32kb data cache
- MMX utasításkészlet támogatása
- 233MHz (0.35 um) illetve 266MHz (0.25 um) maximális órajel

A nagyobb cache, MMX támogatás és a RISC felépítés meghozta az eredményét, 97-re az AMD versenyképes megoldással rendelkezett. Azonos órajelnél nagyjából az Intel Pentium MMX-ek teljesítményét hozták a K6-ok, nem volt szükség a PR eröltetésére. Az lebegőpontos teljesítmény is megközelítette az Intel megoldását.

K6-2

1998 májusában bemutatták a K6 továbbfejlesztését K6-2 néven. Az update elég volt ahhoz, hogy felvegye a versenyt a PII-vel az Athlonok megjelenéséig és olcsó fejlesztést biztosítson a Socket7 tulajoknak. A lényegi változások a következőek voltak:

- Az ütemező már 6 RISC86 utasítást képes átadni a végrehajtó egységeknek
- A végrehajtó egységek száma hétről tízre növekedett, plusz 1 MMX és 2 SIMD egység hozzáadásával.
- 3DNow! A SIMD egységekkel az MMX-hez hasonlóan több adaton hajthatjuk végre ugyanazt a (egyszeres pontosságú) lebegőpontos műveletet.
- FSB 66-ról 100MHz-re növelése, ami azonos órajelen átlagosan 10% feletti teljesítmény növekedést hozott. Ezzel a lépéssel az AMD megteremtette a Socket Super 7 foglalatot.
- A maximális órajelet tovább növelték 550MHz-ig 0.25um-es gyártástechnológia mellett.

A fejlesztésekkel egész jó processzort sikerült alkotni. A legfontosabbnak a 3DNow-t tartanám, sajnálatos, hogy kevés program támogatta. A második tesztben megpróbálom feléleszteni mplayer alatt a SIMD egységeket.

Az AMD természetesen ezek után sem ült tétlenül a babérjain és megalkotta a K6-2+ és K6-3 processzorokat. Tőszavakban integrált L2 cache, powerplay és nagyobb sebesség jellemzi őket. Ha sikerül 1-1 példányt szereznem, akkor majd a Pentium II és Celeron szériák ellen küldöm őket harcba.

Rendszer, tesztek

A teszteléshez szükségem volt egy Super Socket 7 alaplapra. Ha már lúd, legyen kövér alapon olyat kerestem, ami SDRAM-ot fogad és ATX tápcsatlakozóval rendelkezik. Végül sikerült hozzájutni egy bontatlan VIA MVP3 alapú pcpartner alaplaphoz. Jó kis időutazás volt felbontani az antisztatikus csomagolást. Az akkori viszonylatban erős ATX tápnak és sose használt alaplapnak hála nem volt gondom a hardver stabilitással. Sajnos ez nem mondható el a szoftverről. Windows alatt nem sikerült felélesztenem az USB portot, a PS2 kivezetés pedig nem szabványos kiosztású. Mivel a soros portos egeremet elkavartam a Win98 alatti tesztek igen limitáltak lehettek. A Win98 ki tett magáért, szerencsére csak az utolsó teszt utáni tuningnál dugájába dőlt és úgy is maradt. A linuxos teszteket ez nem befolyásolta, elvégre konzolhoz nem kell egér...

Processzorok

Klasszikus kerámia tokos, első szériás AMD K5 100MHz

Intel Pentium a P54C szériából 166MHz-es kivitelben. Gond nélkül fut 200MHz-en

Kerámia tokos 200-as intel Pentium MMX. Nagyon jól tuningolható

Mérések - első rész

Első körben a sorból kilógó 100MHz-es K5 processzort hasonlítottam össze egy hasonlóan órajelezett Pentiummal. A tesztelés közben érdekes eredmények születtek. Az első érdekesség az, hogy 128MB memóriával gyorsabbnak bizonyult a rendszer, mint 256-al. A második a referencia Pentium 200 skálázódása volt az FSB emelésével.

AMD K5 és Intel Pentium 100MHz-en

Referenciaként a grafikonokon szerepel a 200MHz-es Pentium is, ami a következő cikknél is az alapot képezi.

Az első két tesztben a K5 jól állta a sarat, szépen megverte az azonos órajelen ketyegő Intelt. A fordításnál erre számítottam, de az avi lejátszás meglepett. Valószínűleg az Mplayer integerre optimalizált dekódolást használ. Mivel az avi 1 perces volt, így még a gyorsabbik Pentium sem lenne képes frame drop nélkül a lejátszásra.

MPlayer fordítás [mins:sec]

MPlayer avi lejátszás [mins:sec]

Sajnos az mp3 kódolásnál és dekódolásnál már lemarad a K5 a gyenge FPU-nak "köszönhetően". Nem vártam mást, mégis lejátszásnál sajnáltam szegényt.

mp3 lejátszás [CPU használat %, a kisebb jobb]

Lame wav -> mp3 kódolás [mins:sec]

Apache alatt elhúzott az Intel duó. Ez azt jelzi, hogy a memória elérési sebessége sokkal jobb a Pentiumoknak, mivel az apache általában memória és cache függő.

apache benchmark [tranzakció/sec]

Mysql alatt fordult a kocka és a K5 még a kétszer akkora órajelű Pentiumot is megverte. Az oka nagy valószínűséggel a nagyobb méretű cache, ami az indexálásnál sokat dob a teljesítményen.

mysql [mins:sec]

Gzip alatt jött ismét a papírforma. Az AMD ismét legyőzte közvetlen ellenfelét, de nem bírt a gyorsabbik Intellel.

gzip -9 [mins:sec]

Az előzőhöz hasonlóan a SuperPI sem hozott meglepetést. A Pentiumok jobb FPU-ja simán győzött. Ezzel a 8 linuxos tesztből 4 zárult AMD és 4 Intel győzelemmel, ha csak a 100MHz-es processzorokat nézzük. Nem is rossz, hajrá AMD.

SuperPI [mins:sec]

Winzip alatt nem kapkodtak nagyon a processzorok, a 60 kB/sec nem éppen csúcsteljesítmény, de nem is ezért szeretjük őket. Az AMD-nek sikerült még egy pontot begyűjteni, a winzip is integerre gyúr.

Winzip [kB/sec]

A Quake első része volt az a játék, amiért megérte upgradelni 486-ról. A demó verzió ingyenesen letölthető az idsoftware oldaláról, ajánlom mindenki figyelmébe. Érdemes megnézni, 96-ban legalább akkora dobás volt grafikailag, mint a Crysis pár évvel ezelőtt. Reménykedtem, hogy software rendererrel legalább 640x480-as felbontásban játszható lesz, sajnos tévedtem. De így legalább van hova fejlődnie a processzoroknak a későbbi tesztekben. Az AMD itt tíz százalékkal maradt le az Intel mögött.

Quake 1 640x480[fps]

Quake 2 alatt már realistábban 320x240-es felbontást választottam. A Pentium tovább növelte az előnyét, ami nem meglepő. A játékot - a korra jellemzően - az Intel FPU-jára optimalizálták. A korra jellemzően a sebesség szempontjából kritikus részeket vagy rögtön assemblyben írták, vagy a C kódot egy köztes lépésben assemblyre fordították, majd kézzel történő optimalizációt követően fordították gépi kódra, hogy a lehető legjobban kihasználják a processzort.

Sajnos mára átestünk a ló másik oldalára és csak kódlapátolás megy...

Quake 2 320x240 [fps]

Utoljára hagytam a 3DMark DirectX 6-os benchmarkját. A magasabb értékek a CPU score-t, a sötétített értékek a 3DMark pontszámot mutatják. Bár CPU-ban lemaradt a K5 a 3D eredmények nem mutatnak nagy eltérést. Az ATI Rage nem egy nagy durranás, de ezekhez a processzorokhoz tökéletesen illik. Talán egy 3DFX Voodoo 1 még jobb lett volna.

3DMark99 MAX potszámok

Windows alatt az eredmény Pentium vs. K5, 3:1. A végeredmény így 7:5 az Intel javára. Az értékelést a következő oldal alján találhatjátok, addig is következzen egy kis cache és FSB teszt.

Mérések - második rész, értékelés

Level 2 cache

Első felbuzdulásomban mikor kibontottam az alaplapot és láttam, hogy két memória foglalat van rajt` a RAM limitet kerülendő mind a kettőbe raktam a jó kis Kingston SDRAM-okból. Mikor összevetettem az első eredményeket az előző tesztemmel igen csak ámultam, hogy a gyorsabbnak gondolt SDRAM mennyire lemaradt. Kis fejtörés után arra jutottam, hogy vagy az alaplap fogja vissza a sebességet, vagy valami cache problémába futottam bele. Szerencsére a K6 topicban nem régen volt hasonló téma. Ráadásul emlékeztem, hogy akosf a olvasott Socket 7 tesztjében már említette az alaplapi cache-t. Jó tudni, hogy a Socket 5, illetve 7 processzorok nem rendelkeztek L2 cache-el, kivételt csak az itt nem szereplő K6-2+ és K6-3 széria képez, így az az alaplapon kapott helyet. Mérete jellemzően 512, 1024, 2048kB volt, ami rögtön meg is határozta a maximális cachelhető memória méretét.

Némi VIA MVP3 leírás olvasás és a linux dmesg logjának tanulmányozása után már biztosan tudtam, hogy maximum 128MB-ot támogat az alaplapra integrált 512kB L2 cache. Pár óra tesztelést követően a következő eredményekkel lettem gazdagabb.

128MB vs 256MB, a nagyobb memória hátránya %-ban

A táblázat a 256MB-os konfiguráció hátrányát mutatja 100MHz-es K5, 200MHz-es P54C, illetve egy tuningolt Intel Pentium MMX esetében. Az utóbbit azért vettem be, mert kíváncsi voltam, hogy egy gyors, memória éhes, 112MHz-es FSB-vel rendelkező processzornál merre változik a hátrány. Az eredmények nagyon vegyes képet mutatnak, de átlagosan 5-15% hátrányt jelent a kicsi cache. Az MMX-nél a két tömörítő program (gzip, winzip) kiugró 43.8 és 26.7%-ot bukott.

Azt a konklúziót le vontam és bár ma már kicsinek tűnik a 128MB memória, a Win98 idejében nagynak számított. A teszteket innentől kezdve egy modullal (128MB) futtattam.

FSB emelés

Ha már a cache-t kipróbáltam kíváncsi lettem mennyit számít az FSB emelése. Az AMD a K6 esetén 10%-ot ad meg, mint nyereség. A Cyrix-nél is hasonló értékre lehet következtetni, a 6x86 PR200 2x75=150MHz vagy 2.5x66=166MHz-en futhat.

A teszthez két beállítást választottam. Az első esetben a 200-as Petiumot járattam 66, illetve 100MHz-es FSB-n, ami +50%-nak felel meg. A második egy memória sávszélességre éhes MMX, amit 95 és 112MHz-es FSB-vel hajtottam (+18%). Mind a két esetben az adott CPU-kon elért órajel azonosnak (200 és 280MHz) tekinthető.

FSB emelés hatása a teljesítményre %-ban megadva

Az eredmény magáért beszél. Linux alatt a Pentium 200 majdnem 20%-ot gyorsult, ami nagyon szép érték. Ha számításba vesszük az FSB és ezzel a RAM sávszélesség növekedését, akkor az MMX még többet profitált, mert FSB emeléshez viszonyítva Windows és linux alatt is 40 százalék fölötti gyorsulást realizált. Az AMD nem véletlenül tolta fel az FSB-t a K6-2 szériánál. Fontos megjegyezni, hogy az alaplapi cache az FSB-t használja, így az is arányosan gyorsult.

Tanulságok

A K5 processzort sokan alulértékelik és pocséknak tartják, pedig a kategóriájában nem sikerült rosszul. A belső felépítése jövőbe mutató volt és az integer teljesítménye azonos órajelen meghaladta a Pentiumét. Öt dolgot tudok felróni neki:

- A legnagyobb hibája, az elkésett megjelenés, még a Cyrix is megelőzte. mire piacra került lassúnak számított.
- A nem skálázódó órajelnek hála csak az alsó kategóriában tudott labdába rúgni. Az Intel ekkor már 200MHz körüljárt és a küszöbön toporogtak az MMX-ek.
- Melegedett, de ez a gyártástechnológia javításával ez orvosolható lett volna.
- Az FPU teljesítménye nem volt valami fényes és a PR besorolásnak hála a 10% hátrány tovább nőtt a PR emelkedésével.
- Nem sikerült tuningolni, az FSB 75MHz-re emelésénél már a BIOS sem jött be.

Mindezt csak alacsony árral lehetett ellensúlyozni, ami gazdaságilag nem biztos, hogy jó volt az AMD-nek, de a kevés pénzből építkezőknek kapóra jött. Akkoriban azonban abba az árszegmensben viszont ott volt a Cyrix is...

Az alaplap is szolgált pár tanulsággal, ami ma is életképes. Az első az, hogy a cache mérete nagyon fontos. 10% fölötti teljesítményt bukunk, ha a cache túl kicsi. A második az, hogy gyors CPU-hoz gyors memória busz és cache kell. A legjobb tuning, ha a lehető legmagasabb FSB-t használjuk. Mind a kettő memória limitet idéz elő és együttesen akár 20% fölötti veszteséget is okozhatnak.

Az utolsó tanulság, hogy az emberek segítőkészek. Többen ajánlottak CPU-t a teszthez, végül a tesztben szereplő K5-öt bacsis adta kölcsön. A K6-III topikot is meg kell említenem, mint szellemi műhelyt. Sok érdekes retró téma és még érdekesebb emberek jellemzik.

A teszt második fele is jön hamarosan. Lesz benne Socket 7 tuning, 6x86, MMX és 3DNow! Tartsatok velem...

Azóta történt

Előzmények