Giczy Gergő, Négyesi Károly
Forrás: Chip magazin, 2000. március 101.-104. oldal

Régi informatikai folyóiratokat böngészve döbbenek csak rá, ez az iparág bizonyos szempontból milyen gyorsan változik. 5-10 éves magazinokban lévő tesztek, ismertetők, de még ismeretterjesztő írások is teljesen érdektelenné válnak. Kevés kivételtől eltekintve ma már senkit nem érdekel egy 10 éves videokártya-teszt vagy egy 8 évvel ezelőtt megjelent kommersz tintasugaras nyomtató bemutatása. A kevés cikk közül, ami még ma is érdeklődésre tarthat számot, itt egy, a PC-s processzorok történetének egy szeletét bemutató írás olvasható. Bár az azóta eltelt időben sok minden változott, a töréneti állításai ma is megállják a helyüket. - A szerk.

Az agy

Bármilyen korszerű kiegészítőkkel - grafikus kártya, hangkártya stb. - is látjuk el PC-nket, a processzor még mindig a legfontosabb: ez a központi végrehajtó egység. Az alábbiakban röviden áttekintjük a PC-kben használt processzorok történetét.

A processzort leginkább egy királyhoz hasonlíthatjuk, aki jóságosan uralkodik rendszere felett. Megfelelő kiszolgáló személyzet nélkül azonban cselekvésképtelen lenne. A memóriában tároljuk az adatokat és az utasításokat - így ennek gyorsasága is fontos. A memória sebességének fejlődése nem tartott, nem tarthatott lépést a processzorokkal, ezért ma a legkülönfélébb trükköket kell alkalmaznunk elérésének gyorsítására. Ennek több oka is van, melyek lényege az, hogy míg a tranzisztorok számának növelése egy processzorban általában növeli a sebességet, a memóriának viszont csak a tárolókapacitását. A processzor-memória páros együtt már működőképes számítógépet alkot, de meglehetősen keveset érünk vele.

Azok a perifériák, amelyek az emberrel való kapcsolattartást teszik lehetővé, már annyira lassúak, hogy nem is említhetők egy napon ezzel a párossal. Hogy a processzor csak akkor várakozzon a perifériákra, ha muszáj, a memória közvetlenül is tud kommunikálni ezekkel a DMA-csatornák segítségével. A perifériák ágán kinőtt egy olyan hajtás, amely mára szintén felvette a processzor nevet, tehát meg kell említenünk: ez az NVidia GeForce256 GPU (Graphics Processor Unit) egysége. Erről azt hirdeti gyártója, hogy ez az első grafikus processzor. Ez inkább csak marketingfogás, noha a PC-s piacon llyen tudást nyújtó segédprocesszor eddig nem volt jelen. Azonban segédprocesszorokat régebben is használtak: a lebegőpontos számítást végző egységek például olyan drágák voltak, hogy eleinte külön segédprocesszorként szerepeltek, majd a főprocesszor (CPU) bekebelezte őket. Kérdés, hogy a jövőben mi várható: a CPU fejlődése során lenyeli a GPU-t is, vagy inkább a nagyobb számítógépekre jellemző irányba tartunk, ahol a célfeladatokat cél-processzorokra bízzák? Ez a jövő titka - lássuk inkább a múltat! A következőkben elmeséljük az utóbbi húsz év történetét, az IBM PC-vel, annak klónjaival és az azokat éltető mikroprocesszorokkal a középpontban.

Az első lépések

Amikor az IBM elhatározta, hogy belép a személyi számítógépek akkor már fokozatosan beinduló piacára, az Intel 8086-os processzorcsaládját választotta, méghozzá a 8088-as típust. Ez az 1979-ben megjelent processzor egy kompromisszum eredménye, az egy évvel korábbi Intel 8086 olcsóbb változata. A 8086 és a 8088 belső felépítése megegyezett, de a 8088 a külvilág felé csak egy 8 bit széles adatsínt mutatott, noha belül 16 bites volt. Ez némileg olcsóbbá tette az alaplapot, és több periféria állt rendelkezésre hozzá, mert a régebbi, 8085-ös processzorhoz készített perifériachipekkel is tudott kommunikálni a 8088. Érdemes itt tisztázni, hogy mikor hívunk egy processzort 8, 16, 32 vagy éppen 64 bitesnek. A döntő a belső adatbusz szélessége, ennyi biten tud a processzor egyszerre egy általános műveletet végrehajtani. Mivel az IBM leginkább a mainframe gyártásban volt jártas, ezért bizonyos üzleti irányelveket onnan vett át.

kep1
AMD K6-2: a 3DNow! fenyegette az Intel elsőségét

Ilyen volt például, hogy nem használhatnak olyan egységet, amit csak egy cég gyárt. Így tehát az Intel sok licencpartnere kezdte gyártani ez a processzort. Ezekre a klónokra nem érdemes szót vesztegetni, semmiben sem különböztek az Intel processzorától. Ez alól csak a japán NEC V30 és V20 CPU-i voltak kivételek: ezeket be lehetett tenni egy 8086, illetve 8088 helyére, de azonos órajelen is gyorsabbak voltak, és már a 80286 valós módú utasításait is Ismerték. (Az Intel Overdrive processzorok elődjeinek is tekinthetők.) Érdemes megjegyezni, hogy a Microsoft DOS operációs rendszere ekkor jelent meg, de már 1980 augusztusában bejelentette a Unix egy változatát, a Xenixet, amely 8086-on is futott. Októberben lépett csak kapcsolatba a Seattle Computer Products-szal, hogy megvegye annak operációs rendszerét. A PC és vele az MS-DOS 1.0 1981 augusztusában jelent meg. A rákövetkező hónapban a Microsoft megkezdte az Interface Manager fejlesztését, amely később Microsoft Windows néven jelent meg.

A 80186 rejtélye

1982-ben jelent meg a 80186 és a 80286 is. Csakhogy a 80186/ 80188 párost nem PC-kbe, hanem beágyazott rendszerekbe szánták. Meglehetősen sikeres lett: az AMD még 1995-ben is egy új, 40 MHz-es változatot készített belőle.

Nem meglepő, hogy az Intel 1982-ben még külön processzorokat készített a beágyazott rendszerekhez: ekkoriban ez még nagyobb üzlet volt, mint az éppen induló PC-s piac. (A 8080-as többek között mint közlekedési lámpák vezérlője futott be karriert, a 8085-öst pedig sok mérlegben használták, hogy a súlyból és az egységárból árat adjon ki.) Később már nem külön modellek születtek erre a piacra, hanem a PC-s piacon már nem kapható, elavultnak számító, ezért nagyon olcsó processzortípusokat használták a beágyazott rendszerekben. A 80286-osból nem készült 80288, egységesen 16 bites volt kifelé. A röviden csak 286-osként emlegetett CPU fő újdonsága a védett (protected) mód. A védelem annyiban nyilvánult meg, hogy az egyes programok nem írhattak akárhová a memóriába, csak oda, ahová az operációs rendszer ezt engedélyezte. Az IBM erre a processzorra építette a PC/AT-t. Szintén 1982-ben jelent meg az MS-DOS 1.25. Óriási jelentőségű, bár nem technológiai, hanem licencpolitikai értelemben: lehetővé tette a PC-klónok megjelenését. Az első klón - legjobb tudomásunk szerint - a Columbia Data Products gépe volt 1982 júniusában. 1984-ben jelent meg az Apple Macintosh. Ez Motorola processzorra épült ugyan, de képességei révén minden krónikában helye van. Egeres, ablakos, barátságos kezelőfelületű, ennek ellenére megfizethető gép volt 2500 dolláros árával. (1983-ban a PC/XT 5000 dolláros áron mutatkozott be.)

Sok jó program...

...egy processzoron is futhat, például az 1985 októberében megjelent Intel 80386-on. A 386-os egyik fő újdonsága a virtuális 8086 mód: itt minden program úgy látja, hogy saját 8086-os processzora van. Megfelelő operációs rendszerrel így megvalósulhat a valódi többfeladatos (multitasking) működés. Erre azért még várni kellett: bár a Windows 1.0 megjelent 1985 novemberében, ez nem jelentette azt, hogy ennyire fejlett volt - meglehetősen használhatatlan darabnak bizonyult, inkább csak történeti jelentősége fontos.

A 386 másik fő újdonsága, hogy ez az elsö 32 bites Intel processzor. Megjelenése óta voltaképpen csak apróbb (a K6-2 és a Pentium III esetében kicsit nagyobb) kiegészítésekkel fejlődött tovább a 80x86-os-ként is emlegetett PC-s processzorok tudása. Lényegi változást nem látni: egy tipikus mai program elméletileg - esetleg minimális változtatásokkal - működőképes 386-on is. Sem szoftver, sem PC nem készült azonnal az új, sokat tudó, ám drága chiphez, illetve chippel. Az IBM nem adott ki még fejlettebb PC-t, és a közismert mítosszal szemben nem is a Compaq volt az első, hanem az akkor (és ma újra) alig ismert ALR alkalmazta először, de ők is csak 1986 szeptemberében. A Compaq nagyon gyorsan, szintén szeptemberben jelentkezett saját gépével - és mivel ez a cég a legnagyobb klóngyártó, ezért inkább a Compaq maradt meg az emberek emlékezetében, nem az ALR.

kep2
Az Intel Pentium Pro...
kep3
...inkább a munkaállomások processzora

Évekig nem jelent meg új hullám az Intel processzoraiból, de a fejlődés nem állt le. 1987 januárjában a Commodore a CES-en bemutatta az Amiga 500-ast. Az IBM viszont végre 386-alapú gépet mutatott be áprilisban, de ez nem PC, hanem PS/2 volt: egy (legalábbis a hardver szempontjából) nem PC-kompatibilis, új, gyorsabb rendszersínnel (MCA) tervezett gép, új grafikus rendszerrel, a VGA-val. Ezzel együtt jelentették be a Microsofttal közösen az OS/2 operációs rendszert, és ugyanezen a napon jelentette be a Microsoft a DOS 3.3-at, a Windows 2.0-t és a Win-dows/386-ot. Júniusban a két Windows-változat piacra is került, az OS/2 1.0-ra csak decemberben került sor. 1988-ban megjelent a 386SX: ez azonos az ettől fogva 386DX-nek hívott eredeti 386-tal, de a külső adatsíne nem 32, hanem csak 16 bites. Októberben jelent meg az OS/2 1.1, amelyben már volt Presentation Manager is. Bár kevesen tudtak róla, még egy operációs rendszer fejlesztése megindult: a VMS egyik volt fejlesztője, David Cutler a Microsoftnál belefogott az NT tervezésébe. Novemberben újabb legenda született: Steve Jobs új cége, a NeXT piacra dobta első gépét, amelyet mindenki kockának hívott az alakja miatt. Szintén novemberben jelent meg egy újabb, jól használható DOS-verzió, a 4.01 (a 4.0 súlyos hibákkal volt terhes), amely már 32 Mbyte-nál nagyobb merevlemezekkel is boldogult.

A PC-s processzorok fő típusai
Processzor 8086 80286 80386 80486 Pentium Pentium II Pentium III AMD K5 AMD K6 AMD K6-2 AMD Athlon
Megjelenés 1978 1982 1985 1989 1993 1997 1999 1996 1997 1998 1999
Foglalat DIP Socket Socket Socket Socket 3-7 Slot 1 Slot 1 Socket 7 Socket 7 Super 7 Slot A
Órajel 4,77-10 MHz 6-20 MHz 16-40 MHz 25-120 MHz 60-233 MHz 233-450 MHz 450-1333 MHz 100-116,5 MHz 166-300 MHz 266-550 MHz 500-1400 MHz
Utasításkészletek x86 x86 x86 x86 x86 (MMX) x86, MMX x86, MMX, SSE x86 x86, MMX x86, 3DNow! x86, Enhanced 3DNow!
Áramkörméret 3 mikron 1,5 mikron 1 mikron 0,8 mikron 0,35 mikron 0,25 mikron 0,18 mikron 0,25 mikron 0,25 mikron 0,25 mikron 0,25 mikron
Tranzisztorok száma 29 ezer 134 ezer 275 ezer 1,2 millió 3,3 millió 7,5 millió 9,5 (28) millió 4,3 millió 8,8 millió 9,3 millió 22 millió
Címezhető memóriaméret 1 MByte 16 MByte 4 GByte 4 GByte 4 GByte 64 GByte 64 GByte 4 GByte 4 GByte 4 GByte 64 GByte
Kivezetések 40 68 132 168 296 242 242 296 296 296 242

Számolni tudni kell

Az Intel 80486-ot az 1989 tavaszi Comdexen mutatták be. Egy áramköri lapkára integrálták a 386-ost, annak 387-es matematikai segédprocesszorát és 8 Kbyte cache-t. A cache nagyon gyors - és emiatt drága - memória, amelyben átmenetileg tárolódnak az adatok és az utasítások. Mlvel gyors, jelentősen csökkenti a processzornak a lassú főmemóriára való várakozási idejét. Mindehhez már több mint egymillió tranzisztorra volt szükség, és a gyártástechnológia is fölöttébb kifinomult: 1 mikronos. (A mai tipikus csíkszélesség egy IC-n ennek ötöde-tizede.) Májusban megjelent a Windows 3.0. Ez már komolyabb volt, az addigi Windowsokkal szemben például a 640 Kbyte feletti memóriaterületekkel is tudott mit kezdeni. Az AMD 1991 márciusában meg-jelentette 386-os klónjait, köztük egy különlegességet, a 40 MHz-es változatot. Ahhoz képest, hogy mennyit késett a 386-ossal, gyorsan megjelent a 486-ossal: 1993 áprilisában. De addig még történt egy és más. 1991-ben megjelent az Intel 80486SX, és a 486-osok típusjele ennek következtében 486DX-szé alakult.

Az SX itt másfajta korlátozást jelzett, mint a 386SX-nél: a numerikus koprocesszor hiányát. A 486SX eleinte fizikailag azonos volt a 486DX-szel, csak letiltották benne a numerikus műveletvégző egységet, az FPU-t. Hogy ennek mi értelme? Egy lebegőpontos számításokat végző modul tesztelése bonyolult, és emiatt drága. Ezt a költséget lehetett megtakarítani. Később már valóban FPU nélkül gyártották a 486SX-et. 1992 márciusában megjelent a 486DX2. Egy 50 MHz-es 486DX/2 kívülről megkülönböztethetetlen egy 25 MHz-es 486-ostól, ám belül 50 MHz-es sebességgel működik. Szoftvertéren is izgalmas 1992 tavasza: az IBM márciusban megjelentette az OS/2 2.0-t, amely kompatibilis a Windows 3.0-val. Áprilisban azonban a Microsoft piacra dobta a sok újdonságot tartalmazó Windows 3.1-et. 1992-ben a PCI sín júniusi megjelenése az utolsó említésre méltó esemény. Sebessége 8-33 MHz között lehet, és maximum 10 egység kapcsolható rá.

A neves processzor

Miután kiderült, hogy számokat nem lehet védjegynek bejegyezni, az Intel új nevet adott a 1993 márciusában megjelenő processzorának: Pentium. A korábban 586-osként, majd P5-ként is emlegetett CPU bonyolult belső felépítésének köszönheti nagy sebességét. [A Pentium kódja azonban egyértelműen nem 586, hanem - amint az jól látható a Pentium CPU-k tetején -: 80501, 80502 vagy 80503 - A szerk.] Ehhez több mint hárommillió tranzisztorra volt szükség. Ráadásul a proceszor külső adatbusza immár szélesebb volt, mint a belső: 64 bites. Ettől még ugyanolyan, 32 bites processzor, mint elődei. 1993 májusában jelent meg az OS/2 2.1, amely kompatibilis a Windows 3.1-gyel. Augusztusban érkezett a Windows NT, rögvest 3.1-es verziószámmal. Szintén augusztusban jelent meg az első igazi palmtop, az Apple Newton. Komoly sikernek tűnt, 50 ezer darabot vittek el belőle az első tíz héten. Aztán a láz lecsengett, és összesen 80 ezer talált gazdára. 1994 márciusában jelent meg a 486 háromszorozott órajelű változata, 486DX4 néven (a processzor-nevek zűrzavara tehát nem új jelenség). Júniusban a HP és az Intel bejelentette, hogy új processzort fejlesztenek ki közösen - az Itaniumot, melyet akkoriban még Merced fedőnéven emlegettek.

Októberben jelent meg az OS/2 Warp 3. Kevesebb, mint egy év múlva a Microsoft termékvonala végleg elszakadt az IBM-étől: 1995 augusztusában megjelent a Windows 95. 1995 novemberében az Intel új processzorral rukkolt elő: a Pentium Próval. Ez roppant fura szerzet volt: egy tokban két szílíciumlapkát tartalmazott. Az egyik a Pentium továbbfejlesztett, elsősorban 32 bites alkalmazásokban jeleskedő utódja, a másik a másodszintű (L2) cache. A "PPro" két ok miatt volt drága: egyrészt a nagy sebességű cache memória előállítása rendkívül költséges, másrészt az Intel szeret kaszálni a szerverpiacon, ahol máig nincs vetélytársa. Az AMD ebben a hónapban még csak ott tartott, hogy kiadta négy-szerezett órajelű 486-osát, 5x86 típusjellel. Hivatalosan csak 4x33-as verzió látott belőle napvilágot (33 MHz volt a külső órajele, a PCI korlátaihoz igazodva, ezt négyszerezve állt elő a belső órajele). Azonban ritka kivételként magasabb hőmérsékletet elviselő változatai is megjelentek a polgári piacon, ezek vígan elviselték a 4x40, sőt a 4x50 MHz-et. Ezzel a lassabb Pentiumok vetélytársa tudott lenni.

1996 márciusában az Intel bejelentette az MMX technológiát. Ez mindössze annyit jelent, hogy kiegészítették a processzoraikat néhány utasítással, amelyek egyszerre nem egy, hanem több adaton is dolgoznak. Ez kiválóan használható például multimédiával kapcsolatos műveleteknél, ezért lett a neve MultiMedia eXtension, azaz MMX. Nem csoda, hogy az Intel ilyen lépésre szánta el magát: júniusban a Pentium elérte pályafutása csúcsát, a 200 MHz-et. 1997 januárjában jelent meg az első MMX-es processzor, a 166 MHz-es Pentium MMX. A leggyorsabb egyébként 233 MHz-es volt. Vissza egy-két szó erejéig 1996-ra: ekkor jelentkezett az AMD első önállóan tervezett processzorával, a K5-tel, amely elkésett és megbukott. Ezért megvettek egy processzortervező céget, a NexGent. A NexGen teljesen egyéni úton járt: 80x86-kompatibilis processzorához, az Nx586-hoz saját alaplap kellett, koprocesszora sem volt, ezért nem aratott piaci sikert - de a technológia jó volt.

A Pentium-hiba

1994 júniusában dr. Thomas R. Nicely komoly hibát fedezett fel a Pentium processzorban. A később FDIV-bug néven elhíresült hiba akkor jelentkezett, amikor a CPU például 4195835-öt 3145727-tel osztott (lebegőpontosan), majd ugyanennyivel megszorozta az eredményt. Természetesen ekkor a kiinduló értéket, 4195835-öt kellene kapnunk. De a korai Pentium processzorok e számítás eredményeként 4195579-et adnak, a kívánt eredményhez képest 256-tal kevesebbet. Hasonlóan hibás eredményt adott sok más osztás is. A hiba kijavításába több szálon fogtak bele: az Intel módosított, új példányokat adott ki a Pentiumból, a később megjelent operációs rendszerek pedig már "számítanak" a hibás eredményre, és korrigálják azt. A hiba egy, az osztás gyorsítására használt táblázatban bújt meg. Érdekes adalék ez a 486SX-nél is látott tényhez: lebegőpontos egységet tesztelni nehéz. Fixpontosat sem egyszerű -utóbb ugyanis találtak még egy kellemetlen problémát: az egyébként nem túl értelmes FOOFC7C8h (assemblyben: LOCK CMPXCHG8B EAX) utasítást végrehajtva a pentiumos rendszer "szó nélkül" és azonnal leáll. Ezt kombinálva az Internet Explorer 4-ben talált biztonsági réssel egész hatékonyan lehetett az Interneten keresztül, távolról más gépeket leállítani. És e gépek között nagy számban voltak hálózati szerverek is...

Trükkös javítást találtak a problémára, így nem kellett hardvert cserélni: olyan helyre tették a hibakezelőt, hogy a hiba újabb hibát idézett elő, így a processzor a sehova sem vezető útról másikra tévedt. Talán meglepő, de a 80x86-os sorozat minden tagjában találtak hibákat. Ezekről azonban jószerével csak a programozók tudtak. A felhasználók a Pentium FDIV-hibájánál szembesültek a ténnyel: a modern, rendkívül bonyolult processzorok tervezésénél szinte elkerülhetetlenek a hibák.

Ötödik fejezet, második bekezdés

1997-ben megjelent a Pentium II, amely neve ellenére inkább a Pentium Pro utódja. Ez már a 16 bites alkalmazásokat is kellően gyorsan futtatta, a L2 cache-t pedig áthelyezték a tokból a processzor áramköri lapjára. Az 512 Kbyte-nyi cache az órajel felével futott, hogy csökkentsék a költségeket. Így alakult ki a jól ismert SECC formátumú kazetta. Később a cache-sel tovább játszadoztak: volt olyan változat, amelyből teljesen hiányzott. Ez volt az eredeti Celeron, de ez nem aratott sikert. Annál inkább a Celeron "A" jelű, 300 MHz-es és "A" nélküli, 300 MHz feletti órajelű változatai. Ezekben a lapkára integráltak 128 Kbyte-nyi L2 cache-t, amely a processzorral azonos sebességgel fut. 1998-ban nemcsak a Windows 1998 jelent meg, hanem az iMac is. Mindkettő egy régi álom megvalósulásának előjele: a hétköznapi számítástechnikáé, amikor a személyi számítógép olyan természetes lesz, mint például a tévé.

Ötödik fejezet, harmadik bekezdés

A Pentium III új, az MMX-hez hasonló utasításkészlet-bővítést hozott. Az a fő különbség, hogy az MMX utasításai csak fixpontos adatokra működnek, az újak viszont egyszerre több lebegőpontos adattal is tudnak dolgozni. E plusz utasítások összefoglaló neve: SSE. Említést érdemel a Pentium II Xeon és a Pentium III Xeon is. Ezek megint csak az L2 cache variálásával születtek, amely a Xeonoknál a processzor órajelével fut és akár 2 Mbyte-os is lehet. Emellett a szervereknél fontos többprocesszoros működést is támogatják: a Pentium III Xeonból akár nyolcat is összeépíthetünk. Az AMD eközben szorgosan ledolgozta hátrányát: a 1997 nyarán megjelent K6 már valódi kihívás volt a Pentiumoknak. Belső felépítésénél fogva ugyanis azonos órajel esetén gyorsabb volt azoknál, amit többek között kétszer akkora cache-ének köszönhetett. Azonban lebegőpontos egysége kissé lassú volt. [A K6 számomra különösen kedves, mert legelső pécémben 166 MHz-es K6 volt (a K6 már tartalmazta az MMX-et is) - A szerk.] Az igazán komoly versenyt a K6-2 hozta meg 1998 elején. Ez ugyanis plusz utasításokkal bírt (3DNow!), amelyek hasonló célt szolgálnak, mint a Pentium III-ban két évvel később megjelent SSE készlet. Nagyon fontos dolog ez: azt bizonyítja, hogy (immár) a sokféleség sem árt meg. A hardver különbségeit elfedi az operációs rendszer - azután győzzön a jobbik! Ezt követte a K6-III, amely szinte azonos a K6-2-vel, csak éppen 256 Kbyte integrált, tehát órajel-sebességű L2 cache-t tartalmaz. 1999 tavaszán két évnyi vajúdás után megjelent végre az AMD K7, de hogy ennek is neve legyen, Athlonra keresztelték. Az Alphától kölcsönözte külső buszrendszerét, ennek is köszönhető nagy teljesítménye, azonban egyedi alaplap kell hozzá. Belül is igencsak gyors, és lebegőpontos egységére sem lehet panasz.

Akit esetleg bővebb információk is érdekelnek a régebbi processzorokról, készítettem egy viszonylag bő processzor-határozó táblázatot, amely letölthető innen. - A szerk.