X86

Ebben a cikkben a X86 lenyűgöző világába fogunk beleásni. A X86 eredetétől mai relevanciájáig számos területen érdekelt. A történelem során a X86 bizonyította befolyását a társadalomban, a kultúrában, a technológiában, a politikában és sok más területen. A mélyreható elemzés során feltárjuk a X86 körül kialakult különböző nézőpontokat és megközelítéseket, valamint annak a mindennapi életre gyakorolt ​​hatását. Ez a cikk átfogó képet kíván adni a X86-ről, releváns és naprakész információkat nyújtva azoknak, akik érdeklődnek a témával kapcsolatos ismereteik bővítése iránt.

Intel 8086 processzor
Intel Core 2 Duo - x86-kompatibilis 64 bites többmagos processzor
AMD Athlon (korai változat) - egy másik, technikailag eltérő, teljesen kompatibilis x86-megvalósítás

Az x86 mikroprocesszorok utasításkészlet-architektúra szerinti sorozata,[1] melynek első megvalósítása az Intel 8086-os processzora. A 8086-os 1978-ban jelent meg, az Intel korábbi 8 bites 8080-as processzorának teljesen 16 bites kiterjesztéseként és ennél vezették be a memóriaszegmentálást (szegmentált memóriacímzést) a 16 bites címzés korlátainak megkerülésére (a 16 bites processzorok 16 bites címbusza közvetlenül 64 KiB memória címzését teszi lehetővé, a szegmentált címzéssel nagyobb memória címezhető). Az x86 jelölés onnan ered, hogy a 8086-os processzor utódainak jelölése eleinte csak számokból állt és rendre „86”-ra végződött, az „x” csak a változó részt jelölte. Az x86 utasításkészlet sok bővítménnyel egészült ki az idők során, majdnem következetesen betartva a visszafelé-kompatibilitást.[2] Az Intelen kívül a Cyrix, az Advanced Micro Devices, a VIA és mások is gyártottak x86-alapú processzorokat.

A kifejezés nem ugyanazt jelenti, mint a „IBM PC-kompatibilitás”, mivel ez utóbbi több más hardverelemre is vonatkozik, valamint a beágyazott rendszerekben és általános célú számítógépekben jóval az IBM PC piac kialakulása előtt használták az x86 típusú processzorokat.[3]

Mivel az „x86” kifejezés az Intel 80386 processzor megjelenése után terjedt el, általában a 80386-os 32 bites utasításkészletével való bináris kompatibilitást értik alatta. Ezt gyakran az x86-32 kitétellel hangsúlyozzák,[4] vagy az „x32” használatával, az eredeti 16 bites „x86-16” vagy a 64 bites x86-64 változatoktól való megkülönböztetés céljából. Az Intel az IA-32 jelölést használja a 32 bites, az Intel 64 jelölést a 64 bites változatokra (korábban az EM64T vagy IA-32e jelöléseket is alkalmazta ugyanerre). Az AMD az AMD64 jelölést részesíti előnyben az x86-64-gyel szemben. Bár az újabb személyi számítógépekben és szerverekben alkalmazott x86-os processzorok legtöbbje rendelkezik 64 bites tulajdonságokkal, a régebbi rendszerekkel való kompatibilitási problémák elkerülése érdekében az x86-64 (vagy x64) kifejezést gyakran a 64 bites, a x86 kifejezést pedig a 32 bites szoftver jelölésére használják.[5][6] Az IA-64 rövidítés egy másik Intel-architektúrára, az Itaniumra utal.

A 8086-os processzort ugyan elsősorban beágyazott rendszerekben való felhasználásra tervezték, válaszul a sikeres 8080-kompatibilis Zilog Z80 processzorra,[7] az x86 vonal gyors fejlődésnek indult, számítási teljesítménye megnőtt és új képességekkel bővült. Manapság az x86 szinte mindenhol jelen van, az egy helyben álló és hordozható személyi számítógépek terén, de elterjedt a miniszámítógépek illetve középméretű számítógépek (midrange computer) között is és sok helyen felváltotta a kiszolgálókban és munkaállomásokban hagyományosan alkalmazott RISC processzorokat.

Az x86-alapú hardverhez nagyon sok szoftver készült, számos operációs rendszer támogatja, többek között a DOS, Windows, Linux, BSD, Solaris és Mac OS X.

A modern x86 viszonylag ritka a beágyazott rendszerek körében, az alacsony fogyasztású (pl. elemes) alkalmazások, háztartási eszközök, játékok köréből szinte teljesen hiányzik.[8] Ezen a téren az egyszerű 8 és 16 bites architektúrák uralkodnak, bár léteznek 32 és 64 bites kialakítások is, pl. az x86-kompatibilis VIA C7, VIA Nano, AMD Geode, Athlon Neo és Intel Atom processzorokat felhasználják bizonyos viszonylag alacsony fogyasztást és árat igénylő szegmensekben.

Több kísérlet is volt az első egyszerű 8 bites processzortervektől kezdve „nem kifinomult” („elszabott”) x86 architektúra piaci túlsúlyának megdöntésére, még magától az Intel részéről is. Ezek példái az iAPX 432 (más néven Intel 8800), az Intel 960, Intel 860, és az Intel/Hewlett-Packard Itanium architektúra. Az x86 mikroarchitektúrák folyamatos finomítása, az elektronika és a félvezetőgyártás fejlődése azonban egyre nehezebbé tette az x86 leváltását az általa addigra elfoglalt területeken. Az AMD 64 bites kiterjesztése, amire az Intel azonnal a saját kompatibilis kialakításával válaszolt,[9] és az x86 csipek skálázhatósága – ld. pl. nyolcmagos Intel Xeon és 12-magos AMD Opteron – azt példázza, hogy a kialakult ipari szabványok folyamatos továbbfejlesztése, finomítása képes ellenállni a teljesen új architektúrák megjelenésével járó kihívásoknak.[10]

Időrend

Az alábbi táblázat felsorolja a közismertebb x86 utasításkészletet használó, általános felhasználású processzorokat,[11] generációk szerint csoportosítva, kiemelve az x86 történetének fontosabb eseményeit. A CPU-generációk nem végleges és élesen elhatárolt csoportok; minden generációt általában egy újabb mikroarchitektúra jellemez, amelyhez jelentősebb továbbfejlesztés, javítás, vagy nagyobb üzleti siker kapcsolódik.

generáció bevezetés ideje kiemelkedő márkák lineáris/fizikai címtér fontosabb jellemzők
1 1978 Intel 8086, Intel 8088 és klónjaik 16 bites / 20 bites (szegmentált) Az első x86 mikroprocesszorok.
1982 Intel 80186, Intel 80188 és klónjaik, NEC V20/V30 Gyors címszámító hardver, gyors mul/div utasítások stb.
2 Intel 80286 és klónjai 16 bites (30 bites virtuális) / 24 bites (szegmentált) MMU, a védett mód és nagyobb címtartomány kezelésére.
3 (IA-32) 1985 Intel 80386 és klónjai, AMD Am386 32 bites (46 bites virtuális) / 32 bites 32 bites utasításkészlet, memórialapozást támogató MMU.
4 (FPU) 1989 Intel 80486 és klónjai, AMD Am486/Am5x86 RISC-szerű futószalag-technika, integrált x87 FPU (80 bites), lapkán elhelyezett cache.
4/5 1997 IDT/Centaur-C6, Cyrix III-Samuel, VIA C3-Samuel2 / VIA C3-Ezra (2001), VIA C7 (2005) Sorrendi (in-order) végrehajtás, integrált FPU, néhány modellben belső L2 cache, MMX, SSE.
5 1993 Pentium, Pentium MMX, Cyrix 5x86, Rise mP6 Szuperskalár, 64 bites adatbusz, gyorsabb FPU, MMX (2×32 bit).
5/6 1996 AMD K5, Nx586 (1994) Mikroutasítás-fordítás.
6 1995 Pentium Pro, Cyrix 6x86, Cyrix MII, Cyrix III-Joshua (2000) mint fent / fizikailag 36 bites (PAE) Mikroutasítás-fordítás, feltételes move utasítások, sorrenden kívüli végrehajtás (out-of-order execution), regiszter-átnevezés, spekulatív végrehajtás, PAE (Pentium Pro), tokon belüli L2 cache (Pentium Pro).
1997 AMD K6/-2/3, Pentium II/III L3-cache támogatás, 3DNow!, SSE (2×64 bit).
2003 Pentium M, Intel Core (2006) Alacsony TDP-re optimalizálva (kis hőtermelés).
7 1999 Athlon, Athlon XP Szuperskalár FPU, három utasításdekóder, akár három x86-utasítás órajelütemenként.
2000 Pentium 4 Hosszú futószalag, magas órajel, SSE2, Hyper-threading.
7/8 2000 Transmeta Crusoe, Efficeon VLIW felépítés, emulált x86 utasításvégrehajtás, lapkára épített memóriavezérlő.
2004 Pentium 4 Prescott 64 bites / fizikailag 40 bites az első AMD implementációban Nagyon hosszú futószalag, nagyon magas órajel, SSE3, a 64 bites lehetőségek csak LGA775 foglalattal elérhetők.
2006 Intel Core 2 64 bites (integer CPU), kis fogyasztás, többmagos, alacsony órajel, SSE4 (Penryn).
2008 VIA Nano Sorrenden kívüli végrehajtás, szuperskalár, 64 bites (integer CPU), hardveresen támogatott titkosítás, nagyon kis fogyasztás, adaptív teljesítményszabályozás.
8 (x86-64) 2003 Athlon 64, Opteron x86-64 utasításkészlet (CPU fő integer mag), lapkára integrált memóriavezérlő, HyperTransport.
8/9 2007 AMD Phenom mint fent / fizikailag 48 bites az AMD Phenom-nál Monolitikus négymagos, SSE4a, HyperTransport 3 vagy QuickPath, natív memóriavezérlő, lapkára épített L3 cache, moduláris.
2008 Intel Core i3/i5/i7, AMD Phenom II
Intel Atom Sorrendi végrehajtású de hosszú futószalagos, nagyon kis fogyasztás, egyes modellekben: 64 bites (integer CPU), lapkára épített GPU.
2011 AMD Bobcat, Llano Sorrenden kívüli végrehajtás, 64 bites (integer CPU), lapkára épített GPU, kis fogyasztás (Bobcat).
9 (GPU) 2011 Intel Sandy Bridge/Ivy Bridge, AMD Bulldozer and Trinity SSE5/AVX (4×64 bit), magas szinten moduláris felépítés, lapkára integrált GPU.
2013 Intel Larrabee Nagyon széles vektoros feldolgozóegység, LRBni utasítások (8×64 bit).
2014 Intel Haswell FMA3 utasítások.

Történet

Háttér

Az x86 architektúrát elsőként az 1978-ban kiadott Intel 8086-os processzorban használták. Ez egy teljesen 16 bites kialakítású processzor, amelyet a korábbi 8 bites 8008 és 8080 processzorok alapján fejlesztettek ki. Bár a 8086-os binárisan nem kompatibilis elődeivel, a kialakítása (utasításkészlete) olyan, hogy lehetővé tette az ezekre a processzorokra (és a 8085-ösre, ami a 8080-as egy változata) írt assembly nyelvű programok egyszerű, mechanikus átalakítását a megfelelő 8086 assembly kódra, ami vonzó szoftvermigrációs útvonalat kínált az ügyfeleknek. Azonban a 8086-os 16 bites külső adatbusza a hardver jelentős mértékű áttervezésével, további bonyodalmakkal és költségekkel járt. Ennek az akadálynak a leküzdésére a Intel piacra dobta a közel azonos felépítésű 8088-as processzort, ami lényegében egy 8 bites külső adatbusszal felépített 8086-os volt, lehetővé tette az egyszerűbb nyomtatott áramkörök és egyszerűbb (1 bites) DRAM memóriacsipek használatát, továbbá könnyebben illeszkedett az akkoriban megállapodott, olcsó 8 bites rendszerekhez és perifériákhoz. Más, nem technikai tényezők mellett, a fenti tulajdonságok nagy szerepet játszottak abban a döntésben, hogy az IBM új otthoni / személyi számítógépterveinek előkészítésekor a 8088-as processzort választotta ki a CPU szerepére, annak ellenére, hogy a Motorola, Zilog és National Semiconductor 16 bites processzorai és egyéb 8 bites processzorok is már korábban a piacon voltak. Az eredményül létrejött IBM PC lassan népszerűbb lett, mint a Z80-as processzoron alapuló CP/M rendszerek, az Apple II és más közkedvelt számítógépek, végül szinte a személyi számítógépek de facto szabványává vált. Ennek következményeként a 8088 és a rákövetkező hasonló architektúrájú processzorok átvették az uralmat a mikroprocesszor-piac nagy része fölött, a személyi számítógépeket kiszolgáló területen.

Az iAPX 432 és a 80286-os

A fejlett, ám nem kompatibilis, 32 bites Intel 8800 (azaz iAPX 432) piaci bukása szintén a másik processzorvonal felemelkedését segítette, körülbelül az eredeti IBM PC-k indulásával egy időben, 1982 elején; az iAPX 432 nem tudott versenyezni az új, gyorsabb és kompatibilis 80286-os (másként iAPX 286) processzorral. (A 80286-ossal egy időben megjelentetett 80186-os processzort a beágyazott rendszerek számára tervezték, egy másik nagyobb piaci szegmenst céloztak meg vele). A 32 bites 8800-as bukása inkább a fejlettebb 8086-kompatibilis processzorok, pl. a 80386-os, fejlesztésére késztette az Intelt, ami a jól teljesítő 80286-os 32 bites kiterjesztése.

Más gyártók

Az 1991-ben megjelent AMD Am386

Az idők során az Intelen kívül sok más cég is tervezett és gyártott x86 processzorokat, pl. a következők: IBM, NEC,[12] AMD, Texas Instruments, STM, Fujitsu, Zhaoxin, DM&P (Vortex86), OKI, Siemens, Számos volt szovjet érdekszférabeli gyártó (Kvantor, Kvazar, Pravetz, MME stb.), Cyrix, Intersil, C&T, IIT, Mitsubishi, ALi, ULi, Oki, MTK, MHS, Kruger, Sony, Maxwell, Calmos, MC, Harris, NexGen, UMC, és az RDC. Ezek a cégek főleg személyi számítógépekbe szánt x86-os CPU-kat készítettek, de a beágyazott rendszerekhez szintén. Az ilyen x86-implementációk ritkán voltak egyszerű másolatok, gyakran különböző belső mikroarchitektúrákat és fizikai-elektronikai megoldásokat alkalmaztak ezekben. Természetesen a korai kompatibilis processzorok 16 bitesek voltak, a 32 bites kialakításokat csak később kezdték kifejleszteni. A személyi számítógépek piacán nagyobb mennyiségben csak 1990 körül kezdtek megjelenni, ezek i386- és i486-kompatibilis processzorok voltak, és gyakran az eredeti Intel-processzorokkal megegyező névvel kerültek forgalomba. Egyes cégek az x86-os processzorokon kívül x87-es processzorokat is gyártottak, például az ITT Corporation, National Semiconductor, ULSI System Technology és a Weitek.

A futószalagos i486-ot követően az Intel bevezette a Pentium márkanevet (ami a számokkal ellentétben már védjegyként bejegyezhető volt), az új szuperskalár x86-os típusok terveihez; ezután az „x86”-hoz hasonló jelöléseknek nem voltak jogi akadályai. Az IBM a Cyrix céggel együttműködve megalkotta az 5x86, majd a nagyon hatékony 6x86 (M1) és 6x86MX (MII) Cyrix termékvonalat – ezek voltak az első processzorok, amelyekben megvalósították a regiszterátnevezést, a spekulatív végrehajtás mellett. Az AMD eközben megtervezte és gyártani kezdte a fejlett de késve megjelent 5k86 (AMD K5) processzort, ami belsőleg éppen hogy az AMD korábbi saját 29k RISC kialakításán alapult; a NexGen Nx586-os processzorához hasonlóan ebben is dedikált futószalag-fokozatok dekódolják az x86 utasításokat egységes és könnyen kezelhető mikroutasításokká. Ez a módszer a mai napig alapvető a legtöbb x86-os felépítésben.

Az újonnan megjelent mikroprocesszorok gyakran nem voltak tökéletesek. A korai verziók közül néhány hőleadási problémákkal küzdött. A 6x86-osnak kisebb kompatibilitási problémái voltak, az Nx586-ban nem volt lebegőpontos egység (FPU) és eltérő foglalatba illeszkedett, míg a K5 teljesítménye némileg kiábrándítónak bizonyult, mikor végre megjelent. A fogyasztók ezek és különféle egyéb okok miatt hanyagolták a Pentium-alternatívákat, annak ellenére, hogy ezek között akadtak jobb teljesítményt nyújtó modellek is, mint pl. az AMD K5, amely igen jó Pentium-kompatibilitással rendelkezett, vagy a 6x86, amely az integer kód végrehajtásában lényegesen gyorsabb volt a Pentiumnál.[13] Az AMD később komoly versenyzővé lépett elő K6-os processzorsorozatának köszönhetően, amit aztán a nagy sikerű Athlon és Opteron processzorok követtek. A verseny további szereplői voltak a Centaur Technology (korábban IDT), a Rise Technology és a Transmeta. A VIA Technologies Centaur-tervezésű, kis fogyasztású C3 és C7 processzorai éveken át a piacon voltak. A Centaur tervezte legújabb VIA Nano a Centaur és a VIA első spekulatív végrehajtású szuperskalár processzora, amely érdekes módon az Intel Atom processzorral egy időben jelent meg, amely a P5 mikroarchitektúra óta az Intel első sorrendi végrehajtású processzora. A Zhaoxin egy kínai processzorcsalád, amely a VIA processzorokon alapszik.

A szóhossz növekedése

Az x86 utasításkészlet-architektúra fejlődése során két alkalommal növekedett a szóhossz. 1985-ben az Intel kibocsátotta a 32 bites 80386-os (avagy i386-os) processzort, amely fokozatosan felváltotta a korábbi 16 bites processzorokat a számítógépekben (de nem a beágyazott rendszerekben); ez a kiterjesztett programozási modell kapta a későbbiekben az i386 architektúra nevet, az első megvalósításból eredően. Az Intel ezt később IA-32-re keresztelte, az ettől teljesen független IA-64 architektúra bevezetésekor. Az 1999–2003-as időszakban az AMD ezt a 32 bites architektúrát kiterjesztette 64 bitesre; a kiterjesztésre a korai dokumentumokban mint x86-64 hivatkozott, ám később áttért az AMD64 elnevezésre. Az Intel gyorsan átvette az AMD kiterjesztését, IA-32e jelöléssel, ezt később átnevezte EM64T-re, majd végül Intel 64-re. Az öt név közül a leggyakrabban használt talán az x86-64, bár a Microsoft és a Sun Microsystems használja az x64 jelölést is.


Jegyzetek

  1. a mikroarchitektúrától és konkrét processzorok specifikus technikai és fizikai megvalósításától eltérően
  2. Az Intel 1993-ban a P5 Pentium márka megjelenésével elhagyta az „x86” jelölési rendszert, mivel számok nem jegyezhetők be védjegyként, ám ekkorra az x86 kifejezés már gyökeret vert a műszaki életben, a fordítóprogram-írók körében stb.
  3. példa: GRID Compass laptop
  4. Sun: Solaris 10 (x86-32) Installation (angol nyelven). Oracle-Base, Tim Hall. (Hozzáférés: 2012)
  5. Linux* Kernel Compiling. Intel. . (Hozzáférés: 2007. szeptember 4.)
  6. Intel Web page search result for "x64". . (Hozzáférés: 2007. szeptember 4.)
  7. Benj Edwards, PCWorld: Birth of a Standard: The Intel 8086 Microprocessor (angol nyelven). PCWorld, 2008. június 16. (Hozzáférés: 2012. október 25.)
  8. A beágyazott rendszerek piacán 25-nél több utasításkészlet-architektúra van jelen, amelyek az ár, alacsony fogyasztás és a hardver egyszerűsége iránti igények miatt számban felülmúlják az x86-alapú rendszereket.
  9. "Time and again, processor architects have looked at the inelegant x86 architecture and declared it cannot be stretched to accommodate the latest innovations," said Nathan Brookwood, principal analyst, Insight 64. Archiválva 2012. március 7-i dátummal a Wayback Machine-ben(…a processzortervezők időről időre szemügyre vették a nem elegáns x86 architektúrát és kijelentették, hogy nem lehet tovább nyújtani a legújabb innovációk befogadására…)
  10. Microsoft to End Intel Itanium Support[halott link](A Microsoft megszünteti az Itanium támogatását)
  11. Microprocessor Hall of Fame. Intel. . (Hozzáférés: 2012. október 26.)
  12. A NEC V20 és V30 támogatta a 8080-as utasításkészletet is, így az ezekkel felszerelt PC-k képesek voltak a CP/M alkalmazásokat teljes sebességgel, a 8080-as processzor szimulációja nélkül futtatni.
  13. Viszont a lebegőpontos egysége lassabb volt, ami ironikus, hiszen a Cyrix x86-processzorokhoz való gyors FPU-k gyártásával kezdte a pályafutását.

Fordítás

  • Ez a szócikk részben vagy egészben az x86 című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

Források

További információk

Commons:Category:X86 Microprocessors
A Wikimédia Commons tartalmaz X86 témájú médiaállományokat.

Kapcsolódó szócikkek