Sunteți pe pagina 1din 10

x86

x86 este o familie de arhitecturi de seturi de instrucțiuni dezvoltate inițial de


Intel pe baza microprocesorului Intel 8086 și varianta sa 8088. 8086 a fost
introdus în 1978 ca o extensie completă pe 16 biți a microprocesorului 8080
pe 8 biți Intel, cu segmentarea memoriei ca soluție pentru adresarea mai
multor memorii decât poate fi acoperită de o adresă simplă pe 16 biți.
Termenul „x86” a luat ființă deoarece numele mai multor succesori ai
procesorului Intel 8086 se termină în „86”, inclusiv procesoarele 80186,
80286, 80386 și 80486.

Multe adăugiri și extensii au fost adăugate la setul de instrucțiuni x86 de-a


lungul anilor, aproape în mod constant, cu compatibilitate completă înapoi.
Arhitectura a fost implementată în procesoare de la Intel, Cyrix, AMD, VIA
Technologies și multe alte companii; există, de asemenea, implementări
deschise, cum ar fi platforma Zet SoC (în prezent inactivă). Cu toate acestea,
dintre acestea, numai Intel, AMD, VIA Technologies și DM&P Electronics dețin
licențe de arhitectură x86, iar din acestea, doar primele două produc activ
modele moderne pe 64 de biți.

Termenul nu este sinonim cu compatibilitatea cu computerul IBM, deoarece


acest lucru implică o multitudine de alte componente hardware; sistemele
încorporate și computerele de uz general foloseau cipuri x86 înainte de
începerea pieței compatibile cu computerul, unele dintre ele înainte de debutul
IBM PC (1981).

Începând cu anul 2021, majoritatea computerelor personale, laptopurilor și


consolelor de joc vândute se bazează pe arhitectura x86, în timp ce
categoriile de telefonie mobilă precum smartphone-urile sau tabletele sunt
dominate de ARM; la vârf, x86 continuă să domine stațiile de lucru cu calcul
intensiv și segmentele de cloud computing, în timp ce cel mai rapid
supercomputer este bazat pe ARM, iar primele 4 nu mai sunt bazate pe x86.
Prezentare generală
În anii 1980 și începutul anilor 1990, când 8088 și 80286 erau încă în uz
comun, termenul x86 reprezenta de obicei orice procesor compatibil 8086.
Astăzi, însă, x86 implică, de obicei, o compatibilitate binară, de asemenea, cu
setul de instrucțiuni pe 32 de biți din 80386. Acest lucru se datorează faptului
că acest set de instrucțiuni a devenit un numitor comun cel mai mic pentru
multe sisteme de operare moderne și probabil, de asemenea, pentru că
termenul a devenit comun după introducerea 80386 în 1985.

La câțiva ani după introducerea modelelor 8086 și 8088, Intel a adăugat o


oarecare complexitate schemei sale de denumire și terminologiei, întrucât
„iAPX” al ambițiosului, dar nefericit procesor Intel iAPX 432 a fost încercat pe
familia de chips-uri 8086 mai reușită, aplicat ca un fel de prefix la nivel de
sistem. Un sistem 8086, incluzând coprocesoare precum 8087 și 8089, și
cipuri de sistem Intel mai simple, a fost astfel descris ca un sistem iAPX 86.
Au existat și termeni iRMX (pentru sisteme de operare), iSBC (pentru
computerele cu o singură placă) și iSBX (pentru plăcile multimodule bazate pe
arhitectura 8086), toate împreună la rubrica Microsistem 80. Cu toate acestea,
această schemă de denumire a fost destul de temporară, durând câțiva ani la
începutul anilor 1980.

Deși 8086 a fost dezvoltat în principal pentru sisteme încorporate și


computere mici multi-utilizator sau mono-utilizator, în mare măsură ca răspuns
la succesul Zilog Z80, compatibil 8080, linia x86 a crescut în curând în
caracteristici și putere de procesare. Astăzi, x86 este omniprezent atât în
calculatoarele personale staționare, cât și portabile, și este, de asemenea,
utilizat în calculatoarele midrange, stații de lucru, servere și în majoritatea
clusterelor noi de supercomputer din lista TOP500. O cantitate mare de
software, inclusiv o listă mare de sisteme de operare x86 utilizează hardware
bazat pe x86.

Cu toate acestea, x86 modern este relativ neobișnuit în sistemele încorporate,


iar aplicațiile mici de consum redus (folosind baterii mici) și piețele cu
microprocesoare ieftine, cum ar fi aparatele electrocasnice și jucăriile, nu au o
prezență x86 semnificativă. Simplu 8- și 16- arhitecturile bazate pe biți sunt
obișnuite aici, deși VIA C7, VIA Nano, AMD's Geode, Athlon Neo și Intel Atom
compatibile cu x86 sunt exemple de modele pe 32 și 64 de biți utilizate în
unele segmente de consum redus de energie și costuri reduse.
Au existat mai multe încercări, inclusiv de către Intel, de a pune capăt
dominanței pe piață a arhitecturii x86 „inelegante” proiectată direct de la
primele microprocesoare simple pe 8 biți. Exemple în acest sens sunt iAPX
432 (un proiect numit inițial Intel 8800), Intel 960, Intel 860 și arhitectura Intel /
Hewlett-Packard Itanium. Cu toate acestea, rafinamentul continuu al
microarhitecturilor x86, circuitelor și fabricării semiconductoarelor ar face
dificilă înlocuirea x86 în multe segmente. Extensia AMD pe 64 de biți a x86 (la
care Intel a răspuns în cele din urmă cu un design compatibil) și scalabilitatea
cipurilor x86 sub forma unor procesoare moderne multi-core, subliniază x86
ca exemplu al modului în care rafinamentul continuu al industriei consolidate
standardele pot rezista concurenței de la arhitecturi complet noi.
Cronologie

Generatie Anul Modele de CPU Spatiu de adresa Caacteristici

Linea Virtua Fizic


r l

x86 Primul 1978 Intel 8086, Intel 16-bit NA 20-bit 16-bit ISA, IBM PC
8088(1979) (8088), IBM PC/XT
(8088)

1982 Intel 80186, Intel 80188 8086-2 ISA,


(80186/80188)
NEC V20/V30(1983)

2-lea Intel 80286 30-bit 24-bit IBM PC XT 286, IBM PC


AT

3-lea (IA- 1985 Intel 80386, AMD Am386 32-bit 46-bit 32-bit 32-bit ISA, paging, IBM
32) (1991) PS/2

4-lea 1989 Intel 80486 pipelining, on-die x87


(pipelinin FPU (486DX), on-die
g, cache) Cyrix Cx486S, DLC cache
(1992)

AMD Am486 (1993),


Am5x86 (1995)

5-lea 1993 Intel Pentium, Pentium Superscalar, 64-bit


MMX(1996) databus, faster FPU,
(Supersca MMX (Pentium MMX),
lar) APIC, SMP

1994 NexGen Nx586 Microarhitectură


discretă
AMD 5k86/K5 (1996)

1995 Cyrix Cx5x86 Executie dinamica

Cyrix
6x86/MX(1997)/MII(1998)

6-lea 1995 Intel Pentium Pro 36-bit Executie dinamica,


(PAE) executie speculativa, 3-
(PAE) cali x86 superscalar,
superscalar FPU, PAE,
cu cipul L2 cache

1997 Intel Pentium II, cu pachet (Pentium II)


Pentium III (1999) or on-die (Celeron) L2
Cache, SSE (Pentium
Celeron(1998), III), SLOT 1, Socket 370
Xeon(1998) or SLOT 2 (Xeon)

1997 AMD K6/K6-2(1998)/K6- 32-bit 3DNow!, 3-level cache


III(1999) system (K6-III)

Platformă 1999 AMD Athlon, Athlon 36-bit MMX+, 3DNow!+,


îmbunătăț XP/MP(2001) double-pumped bus,
ită Slot A or Socket A
Duron(2000),
Sempron(2004)

2000 Transmeta Crusoe 32-bit CMS powered x86


platform processor,
VLIW-128 core, on-die
memory controller, on-
die PCI bridge logic

Intel Pentium 4 36-bit SSE2, HTT


(Northwood), NetBurst,
quad-pumped bus,
Trace Cache, Socket
478

2003 Intel Pentium M µ-op fusion, XD bit


(Dothan) (Intel Core
Intel Core (2006), "Yonah")
Pentium Dual-Core
(2007)

Transmeta Efficeon CMS 6.0.4, VLIW-256,


NX bit, HT

2001 Intel Itanium (2001 ~ 52-bit 64-bit EPIC


2017) architecture, 128-bit
VLIW instruction
bundle, on-die
64-bit hardware IA-32 H/W
Transitie enabling x86 OSes &
IA-
x86 applications (early
64 1999 ~ generations), software
2005 IA-32 EL enabling x86
applications (Itanium 2),
Itanium register files
are remapped to x86
registers

x86-64 este arhitectura extinsă pe 64 de biți a x86, modul său vechi păstrează
întreaga și nealterată arhitectură x86. Arhitectura nativă a procesoarelor x86-64:
rezidând în modul pe 64 de biți, lipsește modul de acces în segmentare, prezentând
spațiu de adresă liniar de 64 de biți arhitectural-permis; o arhitectură adaptată IA-32
care se află în modul de compatibilitate alături de modul pe 64 de biți este furnizată
x86 64-bit pentru a suporta majoritatea aplicațiilor x86
-64 Extinsa

2003 Athlon 64/FX/X2(2005), 40-bit AMD64 (cu excepția


Opteron unor procesoare
Sempron prezentate ca
procesoare pur x86),
Sempron(2004)/X2(2008 on-die memory
) controller,
HyperTransport, on-die
Turion dual-core (X2), AMD-V
64(2005)/X2(2006) (Athlon 64 Orleans),
Socket 754/939/940 or
AM2

2004 Pentium 4 (Prescott) 36-bit EM64T (activat pe


modelele selectate de
Celeron D, Pentium D Pentium 4 și Celeron
(2005) D.), SSE3, 2nd gen.
NetBurst pipelining,
dual-core (on-die:
Pentium D 8xx, on-chip:
Pentium D 9xx), Intel
VT(Pentium 4 6x2),
socket LGA 775

2006 Intel Core 2 Intel 64 (<<== EM64T),


SSSE3(65 nm), µ-op
Pentium Dual-Core fusion, macro-op fusion
(2007) in 16-bit and 32-bit mod
on-chip quad-core(Core
Celeron Dual-Core 2 Quad), Smart Shared
(2008) L2 Cache (Intel Core 2
"Merom")

2007 AMD Phenom/II(2008) 48-bit Monolithic quad-


core(X4)/triple-core(X3),
Athlon II(2009), Turion SSE4a, Rapid
II(2009) Virtualization Indexing
(RVI), HyperTransport
3, AM2+ or AM3

2008 Intel Core 2 (45 nm) 40-bit SSE4.1

Intel Atom netbook sau procesor


de dispozitiv inteligent
de mică putere, nucleu
P54C reutilizat

Intel Core i7 QuickPath, on-chip


GMCH (Clarkdale),
Core i5 (2009), Core i3 SSE4.2, Extended Page
(2010) Tables (EPT) for
virtualization, macro-op
fusion in 64-bit mode

VIA Nano hardware-based


encryption; adaptive
power management

2010 AMD FX 48-bit octa-core,


CMT(Clustered Multi-
Thread), FMA, OpenCL,
AM3+
2011 AMD APU A and E 40-bit on-die GPGPU, PCI
Series (Llano) Express 2.0, Socket
FM1

AMD APU C, E and Z 36-bit APU pentru dispozitiv


Series (Bobcat) inteligent de mică
putere

Intel Core i3, Core i5 Internal Ring


and Core i7 connection, decoded µ-
op cache, LGA 1155
(Sandy Bridge/Ivy socket
Bridge)

2012 AMD APU A Series 48-bit AVX, Bulldozer based


(Bulldozer, Trinity and APU, Socket FM2 or
later) Socket FM2+

Intel Xeon Phi (Knights PCI-E coprocessor


Corner) pentru XEON bazat pe
sistem, Manycore Chip,
In-order P54C

2013 AMD Jaguar SoC, consolă de jocuri


și procesor de
(Athlon, Sempron) dispozitiv inteligent de
mică putere

Intel Silvermont 36-bit SoC, procesor de


dispozitiv inteligent cu
(Atom, Celeron, putere redusă / ultra-
Pentium) mică

Intel Core i3, Core i5 39-bit AVX2, FMA3, TSX,


and Core i7 BMI1, and BMI2
(Haswell/Broadwell) instructions, LGA 1150
socket

2015 Intel Broadwell-U SoC, on-chip


Broadwell-U PCH-LP
(Intel Core i3, Core i5, (Multi-chip module)
Core i7, Core M,
Pentium, Celeron)

2015-2020 Intel Skylake/Kaby 46-bit AVX-512 (limitat la


Lake/Cannon Cannon Lake-U și la
Lake/Coffee variantele de stații de
Lake/Rocket Lake lucru / server ale
Skylake)
(Intel Pentium/Celeron
Gold, Core i3, Core i5,
Core i7, Core i9)

2016 Intel Xeon Phi 48-bit Procesor Manycore și


coprocesor pentru
sisteme Xeon, nucleu
bazat pe Airmont
(Atom)

2016 AMD Bristol Ridge Integrated FCH on die,


SoC, AM4 socket
(AMD (Pro)
A6/A8/A10/A12)

2017 AMD Ryzen Series/AMD AMD's implementation


Epyc Series SMT,

2017 Zhaoxin WuDaoKou Zhaoxin' primul brand


(KX-5000, KH-20000) x86

2018-2021 Intel Sunny Cove (Ice 57-bit Prima implementare


Lake-U and Y), Cypress Intel a AVX-512 pentru
Cove (Rocket Lake) segmentul
consumatorilor.
Adăugarea
instrucțiunilor de rețea
neuronală vectorială
(VNNI)

2020 Intel Willow Cove (Tiger Arhitectură de


Lake-Y/U/H) interconectare cu inel
dual, accelerator
neuronal Gaussian
(GNA2) actualizat, noi
instrucțiuni de
intersecție vectorială
AVX-512, adăugarea
tehnologiei de control
al fluxului (CET)

2017 Windows 10 pe ARM64 Cooperarea dintre


Microsoft și Qualcomm
aducând Windows 10
pe platforma ARM64 cu
aplicații x86 acceptate
de emulatorul CHPE
începând cu 1709
(16299.15)
Emulare
software

ARM64 2020 Rosetta 2 pe ARM64- Emularea de software


based Macs bazat pe x86-64
folosind traducere
dinamică și o memorie
cache în avans,
împreună cu suport
hardware pentru
comanda memoriei x86-
64
Implementări curente
În timpul execuției, procesoarele actuale x86 folosesc câțiva pași suplimentari
de decodare pentru a împărți majoritatea instrucțiunilor în bucăți mai mici
numite micro-operațiuni. Acestea sunt apoi predate unei unități de control care
le memorează și le programează în conformitate cu semantica x86, astfel
încât să poată fi executate, parțial în paralel, de una dintre mai multe unități de
execuție (mai mult sau mai puțin specializate). Aceste modele moderne x86
sunt astfel canalizate, suprascalare și, de asemenea, capabile să nu
funcționeze și să execute speculativ (prin predicția ramurilor, redenumirea
registrului și predicția dependenței de memorie), ceea ce înseamnă că pot
executa instrucțiuni multiple (parțiale sau complete) x86 simultan și nu
neapărat în aceeași ordine ca în fluxul de instrucțiuni. [15] Unele procesoare
Intel (Xeon Foster MP, unele Pentium 4 și unele procesoare Intel Core
Nehalem și mai târziu) și procesoarele AMD (începând de la Zen) sunt, de
asemenea, capabile să multiplice simultan cu două fire pentru fiecare nucleu
(Xeon Phi are patru fire pentru fiecare nucleu). Unele procesoare Intel acceptă
memorie tranzacțională (TSX).

Când a fost introdusă, la mijlocul anilor 1990, această metodă era uneori
denumită „nucleu RISC” sau „traducere RISC”, parțial din motive de
marketing, dar și pentru că aceste micro-operațiuni împărtășesc unele
proprietăți cu anumite tipuri de instrucțiuni RISC. Cu toate acestea, microcodul
tradițional (utilizat din anii 1950) împărtășește, de asemenea, în mod inerent
multe dintre aceleași proprietăți; noua metodă diferă în principal prin faptul că
translația în micro-operații are loc acum asincron. Necesitatea sincronizării
unităților de execuție cu pașii de decodare deschide posibilități pentru o mai
mare analiză a fluxului de cod (tamponat) și, prin urmare, permite detectarea
operațiunilor care pot fi efectuate în paralel, alimentând simultan mai mult de o
unitate de execuție.

Ultimele procesoare fac, de asemenea, opusul atunci când este cazul; ele
combină anumite secvențe x86 (cum ar fi o comparație urmată de un salt
condițional) într-un micro-op mai complex care se potrivește mai bine
modelului de execuție și astfel poate fi executat mai repede sau cu mai puține
resurse de mașină implicate.

O altă modalitate de a încerca să îmbunătățească performanța este de a


memora în cache micro-operațiunile decodate, astfel încât procesorul să
poată accesa direct micro-operațiile decodate dintr-un cache special, în loc să
le decodeze din nou. Intel a urmat această abordare cu funcția Execution
Trace Cache în microarhitectura NetBurst (pentru procesoarele Pentium 4) și
mai târziu în Decoded Stream Buffer (pentru procesoarele marca Core de la
Sandy Bridge). [16]
Transmeta a folosit o metodă complet diferită în procesatoarele lor
compatibile Crusoe x86. Au folosit traducerea just-in-time pentru a converti
instrucțiunile x86 în setul de instrucțiuni VLIW nativ al procesorului. Transmeta
a susținut că abordarea lor permite proiecte mai eficiente din punct de vedere
energetic, deoarece CPU poate renunța la etapa complicată de decodare a
implementărilor x86 mai tradiționale.

S-ar putea să vă placă și