Wikipedia's X86 as translated by GramTrans
#000000
16-bita: 6 semi-diligentaj registroj, Bp kaj Sp ne estas ĝeneraluzeblaj
#000001
16-bita: laŭvola aparta ks87 FPU
32-bita: laŭvola aparta aŭ integra ks87 FPU, integris SSE2 unuojn en pli postaj procesoroj
64-bita: integraj ks87- kaj SSE2 unuoj
#000002
X86 arkitekturo estas familio de invers-kongrua
instrukciseriarkitekturoj [ a ] surbaze de la Intel 8086
CPU kaj ĝia Intel 8088 variaĵo.
La 8086 estis lanĉitaj en 1978 kiel tute 16-bita etendaĵo de Intel 8-bit-based
8080 mikroprocesoro, kun memorsegmentigo kiel solvo por traktado de pli da memoro ol povas esti kovrita per simpla 16-bita adreso.
La esprimo "X86 arkitekturo" kreiĝis ĉar la nomoj de pluraj posteuloj al la 8086 procesoro de Intel finiĝas en "86", inkluzive de la 80186, 80286, 80386 kaj 80486 procesoroj.
#000003
Multaj aldonoj kaj etendaĵoj estis aldonitaj al la X86 arkitektura instrukciserio tra la jaroj, preskaŭ konstante kun plena re-kompatibleco.
[b] La arkitekturo estis efektivigita en procesoroj de Intel, Cyrix, AMD, TRA kaj multaj aliaj firmaoj;
ekzistas ankaŭ senkaŝaj efektivigoj, kiel ekzemple la Zet SoC platformo.
#000004
La esprimo ne estas sinonima kun IBM PC-kongrueco, kiel tio implicas amason da alia hardvaro;
integritaj sistemoj, same kiel ĝeneraluzeblaj komputiloj, uzis X86 arkitekturfritojn antaŭ ol la Komputil-kongrua merkato komencis, [c] kelkajn el ili antaŭ la IBM-komputilo
#000005
Aktuale en 2017, la plimulto de personaj komputiloj kaj tekokomputiloj venditaj estas bazita sur la X86 Arkitekturarkitekturo (malgraŭ invado de Chromebook-stilaj BRAKdezajnoj, la segment-gvida Apple MacBook-familio restas ekskluzive X86 arkitekturo), dum aliaj kategorioj - aparte alt-volumenaj movaj kategorioj kiel ekzemple dolortelefonoj aŭ tablojdoj - estas dominitaj fare de BRAKO;
ĉe la alta fino, X86 arkitekturo daŭre dominas komputi-intensan specialkomputilon kaj nubkomputik segmentojn.
#000006
Bazaj trajtoj de la arkitekturo 4.1-a
#000007
En la 1980-aj jaroj kaj fruaj 1990-aj jaroj, kiam la 8088 kaj 80286 daŭre estis en ofta uzo, la esprimo X86 arkitekturo kutime reprezentis ajnan 8086 kongruan CPU.
Hodiaŭ, aliflanke, X86 arkitekturo kutime implicas binarkompatibon ankaŭ kun la 32-bita
instrukciserio de la 80386-a Tio ŝuldiĝas al la fakto ke tiu instrukciserio fariĝis io de plej malsupra komuna denominatoro por multaj modernaj operaciumoj kaj verŝajne ankaŭ ĉar la esprimo iĝis ofta post la enkonduko de la 80386 in 1985.
#000008
Kelkajn jarojn post la enkonduko de la 8086 kaj 8088, Intel aldonis iun kompleksecon al ĝia nomadskemo kaj terminologio kiel la "iAPX" de la ambicia sed fatala Intel-iAPX 432 procesoro estis testita la pli sukcesa 8086 familio de fritoj, [d] uzitaj kiel speco de sistem-nivela prefikso.
8086 sistemo, inkluzive de kromprocesoroj kiel ekzemple 8087 kaj 8089, same kiel pli simpla Intel-specifa sistemo kipsas, [e] estis tiel priskribitaj kiel iAPX 86 sistemo.
[f] ekzistis ankaŭ esprimoj iRMX (por operaciumoj), iSBC (por unu-plataj komputiloj), kaj iSBX (por multimodulestraroj surbaze de la 8086-arkitektura) - ĉio kune sub la titolo Microsystem 80.
Tamen, tiu nomadskemo estis tre provizora, daŭrante kelkajn jarojn dum la fruaj 1980-aj jaroj.
#000009
[g] Kvankam la 8086 estis ĉefe evoluigitaj por integritaj sistemoj kaj malgrandaj multuzantaj aŭ unu pli uzantaj komputiloj, plejparte kiel respondo al la sukcesa 8080-kongrua Zilog Z80, [7] la X86 arkitekturlinio baldaŭ kreskis en ecoj kaj pretigpovo.
Hodiaŭ, X86 arkitekturo estas ĉiea en kaj senmovaj kaj porteblaj personaj komputiloj, kaj ankaŭ estas uzita en mezadistancaj komputiloj, specialkomputiloj, serviloj kaj la plej multaj novaj superkomputil aretoj de la TOP500 listo.
Granda kvanto de softvaro, inkluzive de operaciumoj (Ooj) kiel ekzemple DOS, Fenestroj, Linukso, FreeBSD, NetBSD, OpenBSD, Solaris kaj macOS, funkcioj kun x86-bazita hardvaro.
#000010
Moderna X86 arkitekturo estas relative nekutima en integritaj sistemoj, aliflanke, kaj al malgrandaj malaltaj potenc aplikoj (uzantaj malgrandegajn bateriojn) same kiel malalt-kostaj mikroprocesormerkatoj, kiel ekzemple hejm-aparatoj kaj ludiloj, mankas ajna signifa X86 arkitekturĉeesto.
[h] Simplaj 8-bitaj kaj 16-bitaj bazitaj arkitekturoj estas oftaj ĉi tie, kvankam la x86-kongrua C7, VIA Nano, tiu de AMD
Druzo, Athlon Neo kaj Intel Atom estas ekzemploj de 32- kaj 64-bitaj dezajnoj utiligitaj en iom da relative malalta povo kaj malaltaj kostsegmentoj.
#000011
Ekzistas pluraj provoj, inkludante de Intel mem, por fini la merkathegemonion de la "maleleganta" X86 Arkitekturarkitekturo dizajnitan rekte de la unuaj simplaj 8-bitaj mikroprocesoroj.
Ekzemploj de tio estas la iAPX 432 (projekto origine nomis la "Intel 8800" [8] ), la Intel 960, Intel 860 kaj la Intel/Hewlett-Packard Itanium arkitekturo.
Tamen, la kontinua rafinado de X86 arkitekturmikroarkitekturoj, cirkulado- kaj semikonduktaĵoproduktado farus malmola anstataŭigi X86 arkitekturon en multaj segmentoj.
La 64-bita etendaĵo de AMD de X86 arkitekturo (kiujn Intel poste reagis supre per kongrua dezajno) [9] kaj la skaleblo de X86 arkitekturfritoj kiel ekzemple la ok-kerna Intel Xeon kaj 12-kerna AMD Opteron substrekas X86 arkitekturon ekzemplocele por kiom kontinua rafinado de establitaj industrinormoj povas rezisti la konkuradon de tute novaj arkitekturoj.
#000012
En diversaj tempoj, firmaoj kiel ekzemple IBM, NEC, [mi]
AMD, TI, STM, Fujitsu, OKI, Siemens AG, Cyrix, Intersil, C&T, NexGen, UMC, kaj DM&P komencis al dezajno aŭ fabrikado [j] X86 arkitekturprocesorojn (CPUoj) destinitajn por personaj komputiloj same kiel integritaj sistemoj.
Tiaj X86 arkitekturefektivigoj malofte estas simplaj kopioj sed ofte utiligas malsamajn internajn mikroarkitekturojn same kiel malsamajn solvojn sur la elektronikaj kaj fizikaj niveloj.
Sufiĉe kompreneble, frue kongruaj mikroprocesoroj estis 16-bitaj, dum 32-bitaj dezajnoj multe pli poste estis evoluigitaj.
Por la komputilmerkato, realaj kvantoj komencis prezentiĝi ĉirkaŭ 1990 kun i386 kaj i486 kongruaj procesoroj, ofte nomite simile al la originaj fritoj de Intel.
Aliaj firmaoj, kiuj dizajnis aŭ produktis X86 arkitekturo- aŭ ks87 procesorojn, inkludas ITT Corporation, Nacian Semikonduktaĵon, ULSI System Technology, kaj Weitek.
#000014
i486, Intel lanĉis la Pentium markonomon (kiu, male al nombroj, povis esti varmarkita) por ilia nova aro de superskalaraj X86 arkitekturdezajnoj;
kun la X86 arkitektura-nomadskemo nun laŭleĝe malbaris, aliaj X86 arkitekturvendistoj devis elekti malsamajn nomojn por siaj x86-kongruaj produktoj, kaj komence kelkaj elektis daŭri kun varioj de la numeradskemo:
IBM partnerita kun Cyrix por produkti la 5x86 kaj tiam la tre efikan 6x86 (M1) kaj 6x86MX ( MII) vicojn de Cyrix-dezajnoj, kiuj estis la unuaj X86 arkitekturmikroprocesoroj efektivigantaj registrorenomadon por ebligi konjektan ekzekuton.
AMD dume dizajnis kaj produktis la progresintan sed prokrastis 5k86 ( K5), kiu, interne, estis proksime bazita sur AMD pli frue 29K
simila al tiu de NexGen
Nx586, ĝi utiligis strategion tia ke diligentaj duktostadioj deĉifras X86 arkitekturinstrukciaĵon en uniformon kaj facile pritraktis mikro-operaciojn, metodon kiu restis la bazo por la plej multaj X86 arkitekturdezajnoj al tiu tago.
#000015
La instrukciseriarkitekturo estis dufoje ampleksita pli grandan vorton grandeco.
En 1985, Intel liberigis la 32-bitajn 80386 (poste konata kiel i386) kiuj iom post iom anstataŭigis la pli fruajn 16-bitajn fritojn en komputiloj (kvankam tipe ne en integritaj sistemoj) dum la sekvaj jaroj;
tiu plilongigita programa modelo estis origine referita kiel la i386-arkitekturo (kiel ĝia unua efektivigo) sed Intel poste sinkronigis ĝin IA-32 dum lanĉado de ĝia (senrilata) IA-64 arkitekturo.
#000017
En 1999-2003, AMD etendis tiun 32-bitan arkitekturon ĝis 64 bitoj kaj nomis ĝin x86-64 en fruaj dokumentoj kaj poste AMD64.
Intel baldaŭ adoptis la arkitekturajn etendaĵojn de AMD sub la nomo IA-32e, poste utiligante la nomon EM64T kaj finfine uzante Intel 64.
Mikrosofto kaj Sun Microsystems / Oracle ankaŭ uzo nomas "x64", dum multaj linuksaj distribuaĵoj ankaŭ uzo la "amd64" nomas.
Vindozo, ekzemple, nomumas ĝiajn 32-bitajn versiojn kiel "X86 arkitekturo" kaj 64-bitajn versiojn kiel "x64", dum instalaĵdosieroj de 64-bitaj Fenestroversioj estas necesaj esti metitaj en adresaron nomitan "AMD64".
#000018
Por plue konservi ĉifran spacon, la plej multaj registroj estas esprimitaj en observejkodoj uzantaj tri aŭ kvar bitojn, ĉi-lastan per observejkodprefikso en 64-bita reĝimo, dum maksimume unu operacianto al instrukcio povas esti memorloko.
[m] Tamen, tiu memoroperacianto ankaŭ povas esti la celloko (aŭ kombinita fonto kaj celloko), dum la alia operacianto, la fonto, povas esti aŭ registro aŭ tuja.
Inter aliaj faktoroj, tio kontribuas al kodgrandeco kiu konkuras kun ok-bitaj maŝinoj kaj ebligas efikan uzon de instrukcia kaŝmemormemoro.
La relative malmulto de ĝeneralaj registroj (ankaŭ hereditaj de it'oj 8-bitaj prapatroj) faris registro-relativan traktante (uzante malgrandajn tujajn ofsetojn) gravan metodon de alirado de operaciantoj, precipe sur la stako.
Multe da laboro estis tial investita en farado de tiaj aliroj same rapide kiel registraliroj, t.e. unu Hz-instrukciotrairo, en la plej multaj cirkonstancoj kie la aliritaj datenoj estas haveblaj en la pintnivela deponejo.
#000021
Diligenta glitkomprocesoro kun 80-bitaj internaj registroj, la 8087, estis evoluigita por la originaj 8086.
Tiu mikroprocesoro poste evoluis en la plilongigitaj 80387, kaj pli postaj procesoroj asimilis returnite kongruan version de tiu funkcieco sur la sama mikroprocesoro kiel la ĉefprocesoro.
Aldone al tio, modernaj X86 arkitekturdezajnoj ankaŭ enhavas SIMD-unuon (vidu SSE malsupre) kie instrukciaĵo povas labori en paralelo pri (unu aŭ du) 128-bitaj vortoj, ĉiu enhavante du aŭ kvar glitkomnombrojn (ĉiujn 64 aŭ 32 bitojn larĝe respektive), aŭ alternative, 2, 4, 8 aŭ 16 entjerojn (ĉiujn 64, 32, 16 aŭ 8 bitojn larĝe respektive).
#000022
La ĉeesto de larĝaj SIMD-registroj signifas ke ekzistantaj X86 arkitekturprocesoroj povas ŝarĝi aŭ stoki ĝis 128 pecetojn da memordatenoj en ununura instrukcio kaj ankaŭ elfari laŭbitajn logikojn (kvankam ne entjeraritmetiko [n] ) sur plenaj 128-bits kvantoj en paralelo.
La Sandy Bridge procesoroj de Intel aldonis la AVX (Progresinta Vector Extensions) instrukciaĵon, larĝigante la SIMD-registrojn ĝis 256 bitoj.
Kavaliroj Angulo, la arkitekturo uzita fare de Intel sur iliaj Xeon Phi-kromprocesoroj, utiligas 512-bitajn larĝajn SIMD-registrojn.
#000023
Dum ekzekuto, nunaj X86 arkitekturprocesoroj utiligas kelkajn speciale deĉifrantajn ŝtupojn por dividi la plej multajn instrukciaĵon en pli malgrandajn pecojn nomitajn mikro-operacioj.
Tiuj tiam estas donitaj al kontrolunuo kiun bufroj kaj planas ilin konforme kun x86-semantiko tiel ke ili povas esti efektivigitaj, parte en paralelo, je unu el pluraj (tiamaniere specialiĝintaj) ekzekutekzempleroj.
Tiu moderna X86 arkitekturo dezajnoj estas tiel pipelineitaj, superskalaroj, kaj ankaŭ kapablaj je el ordo kaj konjekta ekzekuto (per branĉoprognozo, aligas renomadon, kaj memordependecprognozon), kio signifas ili povas efektivigi multoblan (partan aŭ kompletigi) X86 arkitekturinstrukciaĵon samtempe, kaj ne nepre en la sama sinsekvo kiel donite en la instrukciorivereto.
Intel kaj AMD (komencante de AMD Zen) CPUoj estas ankaŭ kapablaj je samtempa multitreading kun du fadenoj per kerno ( Xeon Fio havas kvar fadenojn per kerno) kaj en kazo de Intel transaga memoro ( TŜ).
#000024
Se lanĉite, en la mez-1990-aj jaroj, tiu metodo foje estis referita kiel "RISC core" aŭ kiel "RISC translation", parte pro surmerkatigaj kialoj, sed ankaŭ ĉar tiuj mikro-operacioj partumas kelkajn trajtojn kun certaj specoj de RISC-instrukciaĵo.
Tamen, tradicia mikrokodo (utiligita ekde la 1950-aj jaroj) ankaŭ esence dividas multajn el la samaj trajtoj;
la nova metodo malsamas plejparte en tio la traduko al mikro-operacioj nun okazas nesinkrone.
Ne devi sinkronigi la ekzekutunuojn kun la deĉifri ŝtupojn malfermas eblecojn por pli da analizo de la (bufrite) kodrivereto, kaj tial permesas detekton de operacioj kiuj povas esti faritaj en paralelo, samtempe nutrante pli ol unu ekzekutekzempleron.
#000025
La plej malfruaj procesoroj ankaŭ faras la kontraŭon kiam konvene;
ili kombinas certajn X86 arkitektursekvencojn (kiel ekzemple komparibli sekvis per kondiĉa salto) en pli kompleksan mikro-operacion kiu konvenas la ekzekutmodelon pli bone kaj tiel povas esti efektivigita pli rapide aŭ per malpli maŝinresursoj implikite.
#000026
Alia maniero provi plibonigi efikecon devas konservi la deĉifritajn mikro-operaciojn, tiel ke la procesoro povas rekte aliri la deĉifritajn mikro-operaciojn de speciala deponejo, anstataŭe de deĉifrado de ili denove.
Intel sekvis tiun aliron kun la Execution Trace Cache-trajto en ilia NetBurst Microarchitecture (por Pentium 4 procesoroj) kaj poste en la Deĉifri Rivereta Bufro (por Kerno-markitaj procesoroj ekde Sandy Bridge).
#000027
Transmeta uzis tute malsaman metodon en iliaj X86 arkitektura-kongruaj CPUoj.
Ili utiligis ekzakte ĝustatempan tradukon por transformi X86 arkitekturinstrukciaĵon al la indiĝena VLIW instrukciserio de la CPU.
Transmeta argumentis ke ilia aliro enkalkulas pli da potencaj efikaj dezajnoj ĉar la CPU povas perdi ke la komplikaj deĉifras paŝon de pli tradiciaj X86 arkitekturefektivigoj.
#000028
Datenoj kaj kodo povus esti administritaj ene "proksime de" 16-bitaj segmentoj ene de 64 KB-partoj de la totala 1 MB adresspaco, aŭ kompililo povis funkciigi en "malproksima" reĝimo uzanta 32-bitasegment:offsetparoj atingante (nur) 1 MB.
Dum tio ankaŭ pruvus esti tre limiganta de la mez-1980-aj jaroj, ĝi funkciis por la aperado komputilmerkaton, kaj faris tre simpla traduki softvaron de la pli aĝaj 8008, 8080, 8085, kaj Z80 al la pli nova procesoro.
Dum 1985, la 16-bita segmento alparolanta modelon estis praktike enkalkulita eksteren per la enkonduko de 32-bitaj ofsetregistroj, la 386 dezajno.
#000030
En reala reĝimo, segmentigo estas realigita ŝanĝante la segmentadreson maldekstre je 4 bitoj kaj aldonante ofseton por ricevi finan 20-bitan adreson.
Ekzemple, se Ds estas A000h kaj SI estas 5677h, DS:SI indikos ĉe la absoluta adresa Ds × 10h + SI = A5677h.
Tiel la totala adresspaco en reala reĝimo estas 220 bajtoj, aŭ 1 MB, vere impona figuro por 1978.
Ĉiuj memoradresoj konsistas el kaj segmento kaj ofseto;
ĉiu speco de aliro (kodo, datenoj, aŭ stako) havas defaŭltan segmentregistron asociitan kun ĝi (ĉar datenoj la registro estas kutime Ds, por kodo ĝi estas CS, kaj por stako ĝi estas SS).
Por datenaliroj, la segmentregistro povas esti eksplicite precizigita (uzante segmenton superregi prefikson) por utiligi iujn ajn da la kvar segmentregistroj.
#000031
En tiu skemo, du malsamaj segmento-/ofsetparoj povas indiki ĉe ununura absoluta loko.
Tiel, se Ds estas A111h kaj SI estas 4567h, DS:SI indikos ĉe la sama A5677h kiel supran.
Tiu skemo faras maluzebla pli ol kvar segmentoj tuj.
CS kaj SS estas decidaj por la ĝusta funkciado de la programo, tiel ke nur Ds kaj ES povas esti utiligitaj por montri al datensegmentoj ekster la programo (aŭ, pli ĝuste, ekster la nuntempe efektiviganta segmento de la programo) aŭ la stako.
#000032
En protektita reĝimo, lanĉita en la 80286, segmentregistro jam ne enhavas la fizikan adreson de la komenco de segmento, sed enhavas "elektilon" kiu punktoj al sistem-nivela strukturo nomita segmentopriskribilo.
Segmentopriskribilo enhavas la fizikan adreson de la komenco de la segmento, la longon de la segmento, kaj alirpermesojn al tiu segmento.
La ofseto estas kontrolita kontraŭ la longo de la segmento, kun ofsetoj rilatantaj al lokoj ekster la segmento kaŭzante escepton.
Ofsetoj rilatantaj al lokoj ene de la segmento estas kombinitaj kun la fizika adreso de la komenco de la segmento por ricevi la fizikan adreson egalrilatantan al tiu ofseto.
#000033
La sementita naturo povas igi programadon kaj kompilildezajnon malfacila ĉar la uzo de proksimaj kaj malproksimaj montriloj influas efikecon.
#000034
Alparoltitolojn por 32-bita adresgrandeco sur 32-bitaj aŭ 64-bitaj X86 arkitekturprocesoroj povas esti resumita per la formulo: [20]
#000036
Alparoltitolojn por 64-bita kodo sur 64-bitaj X86 arkitekturprocesoroj povas esti resumita per la formulo:
#000037
Instrukcioparencadresado en 64-bita kodo (VUNDET+ delokiĝo, kie Rip estas la instrukcia montrilregistro) simpligas la efektivigon de pozici-sendependa kodo (kiel uzite en komunaj bibliotekoj en kelkaj operaciumoj).
#000038
KB (unu segmento) stako en memoro apogita per hardvaro.
Nur vortoj (du bajtoj) povas esti puŝitaj al la stako.
La stako kreskas direkte al nombre pli malaltaj adresoj, kun
SS: Sp montrante al la plej ĵuse puŝita objekto.
Ekzistas 256 interrompoj, kiuj povas esti cititaj per kaj hardvaro kaj softvaro.
La interrompoj povas kaskadi, uzante la stakon por stoki la sendintadreson.
#000039
La origina Intel 8086 kaj 8088 havas dek kvar 16-bitajn registrojn.
Kvar el ili (HAKILO, BX, Ĉ, Dx) estas ĝeneraluzeblaj registroj (GPRoj), kvankam ĉiu povas havi kroman celon;
ekzemple, nur Ĉ povas esti utiligita kiel sumigilo kun la buklo instrukcio.
Ĉiu povas esti alirita kiel du apartaj bajtoj (la alta bajto de tiel BX povas esti alirita kiel Bh kaj malalta bajto kiel Bl).
Du montrilregistroj havas specialajn rolojn: Sp (stakomontrilo) montras al la "pinto" de la stako, kaj Bp (bazmontrilo) ofte kutimas indiki ĉe iu alia loko en la stako, tipe super la lokaj variabloj (vidu frammontrilon).
La registroj SI, DI, BX kaj Bp estas adresoregistroj, kaj ankaŭ povas esti uzitaj por arindicigo.
#000040
Kvar segmentregistroj (CS, Ds, SS kaj ES) estas utiligitaj por formi memoradreson.
La Flagoj kiun registro enhavas al flagoj kiel ekzemple portu flagon, inundas flagon kaj nul flagon.
Finfine, la instrukciomontrilo (Ip) montras al la venonta instrukcio kiu estos alportita de memoro kaj tiam efektivigita;
tiu registro ne povas esti rekte alirita (legite aŭ skribite) per programo.
#000041
La Intel 80186 kaj 80188 estas esence ĝisdatigis 8086 aŭ 8088 CPU, respektive, kun sur-blataj flankaparatoj aldonite, kaj ili havas la samajn CPU-registrojn kiel la 8086 kaj 8088 (aldone al interfacregistroj por la flankaparatoj).
#000042
La 8087 ekaperas al la programisto kiel parto de la CPU kaj aldonas ok 80-bitajn larĝajn registrojn, Skt. (0) ĝis Skt. (7), ĉiun el kiuj ladskatoltenaj numeraj datenoj en unu el sep formatoj: 32-, 64-, aŭ 80-bita glitkomo, 16-, 32-, aŭ 64-bita (binara) entjero, kaj 80-bita pakis decimalan entjeron.
#000043
En la Intel 80286, apogi protektitan reĝimon, tri specialaj registroj aranĝas priskribilajn tabladresojn (GDTR, LDTR, IDTR), kaj kvara taskoregistro (Tr) estas utiligita por taskenrangigo.
La 80287 estas la glitkoma kromprocesoro por la 80286 kaj havas la samajn registrojn kiel la 8087 kun la samaj datenformatoj.
#000044
Kun la apero de la 32-bita 80386 procesoro, la 16-bitaj ĝeneraluzeblaj registroj, bazregistroj, indeksregistroj, instrukcio-montrilo, kaj FLAGOJ sed ne aligas, la segmentregistrojn, estis vastigitaj ĝis 32 bitoj.
La nomenklaturo reprezentis tion prefiksante " E " (por "plilongigita") al la registronomoj en X86 arkitekturo-asembllingvo.
Tiel, la Ax-registro egalrilatas al la plej malsupraj 16 pecetoj da la nova 32-bita EAX-registro, SI egalrilatas al la plej malsupraj 16 pecetoj da ESI,.
La ĝeneraluzeblaj registroj, bazo registras, kaj indekso registras povas ĉiu esti utiligitaj kiel la bazo en alparoltitoloj, kaj ĉiuj tiuj registroj krom la stakmontrilo povas esti utiligita kiel la indekso en alparoltitoloj.
#000045
Du novaj segmentregistroj (FS kaj Gs) estis aldonitaj.
Kun pli granda nombro da registroj, instrukciaĵo kaj operaciantoj, la maŝinkod formato estis vastigita.
Por disponigi re-kompatiblecon, segmentoj kun efektivigebla kodo povas esti markitaj kiel enhavado de aŭ 16-bita aŭ 32-bita instrukciaĵo.
Specialaj prefiksoj permesas inkludon da 32-bita instrukciaĵo en 16-bita segmento aŭ inverse.
#000046
La 80386 havis laŭvolan glitkoman kromprocesoron, la 80387;
La 80386 ankaŭ povis uzi 80287 kromprocesoron.
Kun la 80486 kaj ĉiuj postaj X86 arkitekturmodeloj, la glitkoma pretigsekcio (FPU) estas integra sur-blata.
#000047
Komencante kun la AMD Opteron procesoro, la X86 Arkitekturarkitekturo etendiĝis la 32-bitajn registrojn en 64-bitajn registrojn laŭ maniero simila al kiel la 16 ĝis 32-bit etendaĵo okazis.
R-prefikso identigas la 64-bitajn registrojn (RAX, RBX, RĈ, RDX, RSI, RDI, RBP, RSP, RFLAGS, VUNDETO), kaj ok kromaj 64-bitaj ĝeneralaj registroj (R8-R15) ankaŭ estis lanĉitaj en la kreado de x86-64.
Tamen, tiuj etendaĵoj estas nur uzeblaj en 64-bita reĝimo, kio estas unu el la du reĝimoj nur haveblaj en longa reĝimo.
La alparoltitoloj ne estis dramece ŝanĝitaj de 32-bita reĝimo, krom ke adresado estis etendita ĝis 64 bitoj, virtualaj adresoj nun estas signo etendita ĝis 64 bitoj (por nuligi reĝimpecojn en virtualaj adresoj), kaj aliaj elektildetaloj estis dramece reduktitaj.
Krome, alparoltitolo estis aldonita permesi memorreferencojn relative al VUNDETO (la instrukciomontrilo), por moderigi la efektivigon de pozici-sendependa kodo, utiligita en komunaj bibliotekoj en kelkaj operaciumoj.
#000049
X86 arkitekturprocesoroj kiuj havas protektitan reĝimon, t.e. la 80286 kaj pli postaj procesoroj, ankaŭ havas tri priskribilregistrojn (GDTR, LDTR, IDTR) kaj taskoregistron (Tr).
#000050
32-bita X86 arkitekturo kiun procesoroj (komencantaj kun la 80386) ankaŭ inkludas al diversaj specialaj/diferencaj registroj kiel ekzemple kontrolregistroj (CR0 tra 4, CR8 por 64-bita nur), senararigas registrojn (DR0 tra 3, pluso 6 kaj 7), testas registrojn (TR3 tra 7;
80486 nur), kaj model-specifaj registroj (MSRoj, ekaperante kun la Pentium [o] ).
#000051
Kvankam la ĉefregistroj (kun la escepto de la instrukciomontrilo) estas "ĝeneraluzeblaj" en la 32-bitaj kaj 64-bitaj versioj de la instrukciserio kaj povas esti uzitaj por io ajn, estis origine antaŭvidite ke ili estu uzitaj por la sekvaj celoj:
#000052
Neniuj specialaj celoj estis antaŭviditaj por la aliaj 8 registroj haveblaj nur en 64-bita reĝimo.
#000055
Kelkaj instrukciaĵo kompilas kaj efektivigas pli efike dum utiligado de tiuj registroj por sia dizajnita celo.
Ekzemple, utiligi AL kiel akumulilon kaj aldoni tujan bajtvaloron al ĝi produktas la efikan aldonas al AL
observejkodo da 04h, dum utiligi la Bl-registron produktas la senmarkan kaj pli longe aldonas al registro observejkodo de 80C3h.
Alia ekzemplo estas duobla precizecsplitiĝo kaj multipliko kiu laboras specife per la HAKILO kaj Dx registras.
#000056
Modernaj kompililoj profitis el la enkonduko de la sib bajto ( skal-indeks-malnobla bajto) kiu permesas al registroj esti traktitaj unuforme ( minikomputil-similaj).
Tamen, uzi la sibbajton universale estas ne-optimuma, ĉar ĝi produktas pli longajn kodigadojn ol nur uzado de ĝi selekteme kiam necese.
(La ĉefavantaĝo de la sibbajto estas la Orteco kaj pli potencaj alparoltitoloj ĝi provizas, kiuj faras ebla rezervi instrukciaĵon kaj la uzon de registroj por adreskalkuloj kiel ekzemple skalado de indekso.
Kelkaj speciala instrukciaĵo perdis prioritaton en la hardvardezajno kaj iĝis pli malrapidaj ol ekvivalentaj malgrandaj kodsekvencoj.
Fama ekzemplo estas la LODSw-instrukcio.
#000057
Por uzi pli ol 64 KB pri memoro, la segmentregistroj devas esti utiligitaj.
Tio kreis grandajn komplikaĵojn por kompililimplementor'oj kiuj lanĉis strangajn montrilreĝimojn kiel ekzemple "proksima", "longe" kaj "enormaj" por plibonigi la implican naturon de sementita arkitekturo al malsamaj gradoj, per kelkaj montriloj enhavantaj 16-bitajn ofsetojn ene de implicaj segmentoj kaj aliaj montriloj enhavantaj segmentadresojn kaj ofsetojn ene de segmentoj.
Estas teknike eble uzi ĝis 256 KB pri memoro por kodo kaj datenoj, kun ĝis 64 KB por kodo, per metado de ĉiuj kvar segmentregistroj unufoje kaj tiam nur uzado de 16-bitaj ofsetoj (laŭvole kun defaŭlto-segmento superregi prefiksojn) al adresmemoro, sed tio metas grandajn restriktojn sur la manieron kiel datenoj povas esti traktitaj kaj memoroperaciantoj povas esti kombinitaj, kaj ĝi malobservas la arkitekturan intencon de la Intel-dizajnistoj, kio estas ke apartaj datenobjektoj (ekz. aroj, strukturoj, kodunuoj) estus enhavitaj en apartaj segmentoj kaj traktitaj per siaj propraj segmentadresoj, en novaj programoj kiuj ne estas portitaj de pli fruaj 8-bitaj procesoroj kun 16-bitaj adresspacoj.
#000060
Ĉiun fojon segmentregistro estas ŝarĝita en protektita reĝimo, la 80286 devas legi 6-bajtan segmentopriskribilon de memoro en aron de kaŝaj internaj registroj.
Tial, ŝarĝi segmentregistrojn estas multe pli malrapida en protektita reĝimo ol en reala reĝimo, kaj ŝanĝiĝadsegmentoj tre ofte estas evitotaj.
Faktaj memoroperacioj uzantaj protektitajn reĝimsegmentojn ne estas bremsitaj multon ĉar la 80286 kaj poste havas hardvaron por kontroli la ofseton kontraŭ la segmentlimo en paralela kun instrukciekzekuto.
#000062
[q] Televokado estas utiligita grandskale per modernaj multitasking-operaciumoj.
Linukso, 386BSD kaj Windows NT estis evoluigita por la 386 ĉar ĝi estis la unua Intel-arkitektura CPU se temas pri apogi televokadon kaj 32-bita segmento kompensas.
La 386 arkitekturo iĝis la bazo de ĉiu pluevoluigo en la X86 arkitekturserio.
#000064
X86 arkitekturprocesoroj kiujn subteno protektis reĝimboton en realan reĝimon por re-kompatibleco kun la pli maljuna 8086 klaso de procesoroj.
komencante), la procesoro initialigas en reala reĝimo, kaj tiam komencas efektivigi instrukciaĵon.
Operaciuma botkodo, kiu eble estos stokita en nurlegebla memoro, povas meti la procesoron en la protektitan reĝimon por ebligi paĝigajn kaj aliajn ecojn.
La instrukciserio en protektita reĝimo estas simila al tio uzita en reala reĝimo.
Tamen, certaj limoj kiuj validas por reala reĝimo (kiel ekzemple ne povi uzi hakilon, Ĉ, dks en traktado [ de citaĵo bezonis ]) ne uzas en protektita reĝimo.
Inverse, segmentaritmetiko, ofta praktiko en reala reĝimkodo, ne estas permesita en protektita reĝimo.
#000065
Ekzistas ankaŭ sub-reĝimo de operacio en 32-bita protektita reĝimo (a.k.
80386 protektita reĝimo) vokis virtualan 8086 reĝimon , ankaŭ konatan kiel V86-reĝimo.
Tio estas baze speciala hibrida funkciigadreĝimo kiu permesas realajn reĝimprogramojn kaj operaciumoj kuri dum sub la kontrolo de protektita reĝiminspektista operaciumo.
Tio enkalkulas grandan interkonsenton da fleksebleco en prizorgado de kaj protektitaj reĝimprogramoj kaj realaj reĝimprogramoj samtempe.
Tiu reĝimo estas ekskluzive havebla por la 32-bita versio de protektita reĝimo;
ĝi ne ekzistas en la 16-bita versio de protektita reĝimo, aŭ en longa reĝimo.
#000066
En la mezaj 1990-aj jaroj, estis evidente ke la 32-bita adresspaco de la X86 Arkitekturarkitekturo limigis sian efikecon en aplikoj postulantaj grandajn datumseriojn.
32-bitaj adresspacon permesus al la procesoro rekte trakti nur 4 Gb de datenoj, grandeco superita per aplikoj kiel ekzemple videopretigo kaj datumbazmotoroj.
Uzante 64-bitajn adresojn, estas eble rekte trakti 16 EiB de datenoj, kvankam la plej multaj 64-bitaj arkitekturoj ne apogas aliron al la plena 64-bitaj adresspacon;
ekzemple, AMD64 apogas nur 48 bitojn de 64-bita adreso, dividita en kvar paĝigajn nivelojn.
#000067
En 1999, AMD publikigis (preskaŭ) kompletan specifon por 64-bita etendaĵo de la X86 Arkitekturarkitekturo kiun ili vokis x86-64 kun postulitaj intencoj produkti.
Tiu dezajno estas nuntempe utiligita en preskaŭ ĉiuj X86 arkitekturprocesoroj, kun kelkaj esceptoj destinite por integritaj sistemoj.
#000068
Amasproduktitaj x86-64 fritoj por la ĝenerala merkato estis haveblaj kvar jarojn poste, en 2003, post kiam la tempo estis pasigita por laborado de kun prototipoj por esti testita kaj rafinita;
koncerne la saman tempon, la komenca nomo x86-64 estis ŝanĝita al AMD64.
La sukceso de la AMD64-vico de procesoroj kunligitaj kun senfervora ricevado de la IA-64-arkitekturo devigis Intel liberigi sian propran efektivigon de la AMD64-instrukciserio.
Intel antaŭe efektivigis subtenon por AMD64 [28] sed elektis ne ebligi ĝin en espero ke AMD ne alportus AMD64 por surmerkatigi antaŭ ol la nova IA-64-instrukciserio de Itanium estis vaste adoptita.
Ĝi markis sian efektivigon de AMD64 kiel EM64T, kaj poste remarkis ĝin Intel 64.
#000069
En ĝia literaturo kaj produktaj versionomoj, Mikrosofto kaj Suno nomas AMD64/Intel 64 kolektive ks64 en la Fenestroj kaj Solaris operaciumoj.
Linuksaj distribuaĵoj nomas ĝin aŭ "x86-64", ĝia variaĵo "x86_64", aŭ "amd64".
BSD sistemoj uzas "amd64" dum macOS uzas "x86_64".
#000070
Longa reĝimo estas plejparte etendaĵo de la 32-bita instrukciserio, sed male al la 16-to-32-bit transiro, multaj instrukciaĵo estis faligitaj en la 64-bita reĝimo.
Tio ne influas faktan binaran re-kompatiblecon (kiu efektivigus heredaĵkodon en aliaj reĝimoj kiuj retenas subtenon por tiuj instrukciaĵo), sed ĝi ŝanĝiĝas laŭ la manieron asembleron kaj kompililoj por nova kodo devas labori.
#000071
Tio estis la unuan fojon ke grava etendaĵo da la X86 Arkitekturarkitekturo estis iniciatita kaj estigita fare de produktanto krom Intel.
Estis ankaŭ la unuan fojon kiun Intel akceptis teknologion de tiu speco de ekstera fonto.
#000072
Fruaj x86 procesoroj povus esti etenditaj kun glitkoma hardvaro en la formo de serio de glitkomo nombraj kromprocesoroj kun nomoj kiel 8087, 80287 kaj 80387, mallongigis ks87. kiun Tio ankaŭ estis konata kiel la NPX ( Numeric Processor e Xtension), trafa nomo ekde la kromprocesoroj, dum uzitan plejparte por glitkomaj kalkuloj, ankaŭ elfaris entjeroperaciojn sur kaj binaraj kaj decimalaj formatoj.
Kun tre malmultaj esceptoj, la 80486 kaj postaj X86 arkitekturprocesoroj tiam integris tiun ks87-funkciecon sur peceto kiu igis la ks87-instrukciaĵon reale integrita parto da la X86 arkitektura instrukciserio.
#000073
Ĉiu ks87-registro, konata kiel St (0) tra St (7), estas 80 bitojn larĝa kaj stokas nombrojn en la IEEE-glitkoma norm duobloplilongigita precizecformato.
Tiuj registroj estas fakorganizitaj kiel stako kun St (0) kiel la pinto.
Tio estis farita por konservi observejkodspacon, kaj la registroj estas tial hazarde alireblaj nur por ambaŭ operaciantoj en registro-al-registra instrukcio;
ST0 ĉiam devas esti unu el la du operaciantoj, aŭ la fonto aŭ la celloko, nekonsiderante ĉu la alia operacianto estas St (x) aŭ memoroperacianto.
Tamen, hazarda aliro al la stakregistroj povas esti akirita tra instrukcio kiu interŝanĝas ajnan precizigitan St (x) kun St (0).
#000074
La operacioj inkludas artimetikajn kaj transcendajn funkciojn, inkluzive de trigonometriaj kaj eksponentaj funkcioj, same kiel instrukciaĵon kiuj ŝarĝas oftajn konstantojn (kiel ekzemple 0;
e, la fundamento de la natura logaritmo;
kaj log10 (2) en unu el la stako registroj.
Dum la entjerkapableco ofte estas preteratentita, la ks87 povas funkciigi sur pli grandaj entjeroj kun ununura instrukcio ol la 8086, 80286, 80386, aŭ ĉiu X86 arkitektura-CPU sen supre 64-bitaj etendaĵoj povas, kaj ripetaj entjerkalkuloj eĉ sur malgrandaj valoroj (ekz. 16-bitaj) povas esti akcelitaj efektivigante entjerinstrukciojn pri la X86 arkitektura-CPU kaj la ks87 en paralelo.
(La X86 arkitektura-CPU daŭrigas kuri dum la ks87-kromprocesoro kalkulas, kaj la ks87 atribuas signalon al la X86 arkitekturo kiam ĝi estas finita aŭ interrompas la X86 arkitekturon se ĝi bezonas atenton pro eraro.
#000075
MMX estas SIMD instrukciserio dizajnita fare de Intel kaj lanĉita en 1997 por la Pentium MMX mikroprocesoro.
La MMX-instrukciserio estis evoluigita de simila koncepto unue utiligite sur la Intel i860.
Ĝi estas apogita sur la plej multaj postaj IA-32-procesoroj fare de Intel kaj aliaj vendistoj.
MMX estas tipe uzita por videopretigo (en multmediaj aplikoj, ekzemple).
#000076
MMX aldonis 8 novajn "registrojn" al la arkitekturo, konata kiel M0 tra M7 (antaŭen referite kiel Mn).
En realeco, tiuj novaj "registroj" estis ĵus kaŝnomoj por la ekzistantaj ks87-FPU-stakregistroj.
Tial, io ajn kiu estis farita al la glitkomstako ankaŭ influus la MMX-registrojn.
Male al la FP-stako, tiuj Mn-registroj estis riparitaj, ne relativaj, kaj tial ili estis hazarde alireblaj.
La instrukciserio ne adoptis la stak-similan semantikon tiel ke ekzistantaj operaciumoj daŭre povis ĝuste ŝpari kaj reenpostenigi la registroŝtaton kiam multitasking sen modifoj.
#000077
Ĉiu el la Mn-registroj estas 64-bitaj entjeroj.
Tamen, la unu el ĉefkonceptoj de la MMX-instrukciserio estas la koncepto de plenplenaj datentipoj, kio signifas anstataŭe de utiligado de la tuta registro por ununura 64-bita entjero ( kvaropvorto), oni povas uzi ĝin por enhavi du 32-bitajn entjerojn ( duoblavorto), kvar 16-bitajn entjerojn ( vorto) aŭ ok 8-bitajn entjerojn ( bajto).
Surbaze de ke la 64-bitaj Mn-registroj de la MMX estas aliaseitaj al la FPU-stako kaj ĉiu el la glitkomo kiun registroj estas 80 bitojn larĝaj, la supraj 16 pecetoj da la glitkomregistroj estas neuzataj en MMX.
Tiuj pecoj estas atribuitaj al ĉio ili per iu MMX-instrukcio, kiuj egalrilatas al la glitkomreprezentado de NaNs aŭ senfinecoj.
#000078
estis dizajnita por esti la natura evoluo de MMX de entjeroj ĝis glitkomo.
Kiel tian, ĝi utiligas precize la saman registron nomante kongreson kiel MMX, kiu estas M0 tra MM7. kiun La nura diferenco estas ke anstataŭe de pakado de entjeroj en tiujn registrojn, ke du ununura precizeco glitkomnombrojn estas pakita en ĉiun registron.
La avantaĝo de aliasing la FPU-registroj estas ke la sama instrukcio kaj datenstrukturoj uzitaj por savi la staton de la FPU-registroj ankaŭ povas esti utiligitaj por ŝpari 3DNow!
Tiel neniuj specialaj modifoj estas necesaj esti faritaj al operaciumoj kiuj alie ne scius pri ili.
#000080
En 1999, Intel lanĉis la SSE (SSE) instrukciserion, sekvante en 2000 kun SSE2.
La unua aldono permesis malŝarĝadon de bazaj glitkomaj operacioj de la ks87-stako kaj la dua farita MMX preskaŭ malnoviĝintaj kaj permesis al la instrukciaĵo esti realisme laŭcelaj fare de konvenciaj kompililoj.
Prezentite en 2004 kune kun la Prescott revizio de la Pentium 4 procesoro, SSE3 aldonis specifan memoron kaj faden-manipuladan instrukciaĵon por akceli la prezenton de la HyperThreading teknologio de Intel.
AMD licencis la SSE3 instrukciserion kaj efektivigis la plej multajn el la SSE3-instrukcioj por ĝia revizio E kaj pli posta Athlon 64 procesorojn.
La Athlon 64 ne apogas HyperThreading kaj malhavas tiujn SSE3-instrukciaĵon uzis nur por HyperThreading.
#000081
SSE forĵetis ĉiujn heredaĵligojn al la FPU-stako.
Tio ankaŭ signifis ke tiu instrukciserio forĵetis ĉiujn heredaĵligojn al antaŭaj generacioj de SIMD-instrukciserioj kiel MMX.
Sed ĝi liberigis la dizajnistojn supren, permesante al ili utiligi pli grandajn registrojn, ne limigiten per la grandeco de la FPU-registroj.
La dizajnistoj kreis ok 128-bitajn registrojn, nomitajn XMM0 tra XMM7. ( Noto: en AMD64, la nombro da SSE XMM-registroj estis pliigita de 8 ĝis 16.
Tamen, la malavantaĝo estis tiuj operaciumoj devis havi konscion de tiu nova aro de instrukciaĵo por povi savi al ilia registro ŝtatojn.
Tiel Intel kreis iomete modifitan version de Protektita reĝimo, nomita Plifortigita reĝimo kiu ebligas la uzokutimon de SSE-instrukciaĵo, dum ili restas handikapitaj en kutimklientaj Protektita reĝimo.
Os kiu estas konscia pri SSE aktivigos Plifortigitan reĝimon, dum nekonscia Os nur eniĝos en tradicia Protektita reĝimo.
#000082
Physical Address Extension aŭ PAE unue estis aldonitaj en la Intel Pentium Pro, kaj poste fare de AMD en la Athlon-procesoroj, [11] por permesi al ĝis 64 Gb de RAM esti traktita.
Sen PAE, fizika RAM en 32-bita protektita reĝimo estas kutime limigita al 4 Gb.
PAE difinas malsaman paĝan tablostrukturon kun pli larĝaj paĝaj tablokontribuoj kaj tria nivelo de paĝtablo, permesante kromajn pecetojn da fizika adreso.
Kvankam la komencaj efektivigoj sur 32-bitaj procesoroj teorie apogis ĝis 64 Gb de RAM, pecetaro kaj aliaj platformlimigoj ofte limigis kio povus fakte esti uzita.
ks64 procesoroj difinas paĝajn tablostrukturojn kiuj teorie permesas ĝis 52 pecetojn da fizika adreso, kvankam denove, pecetaro kaj aliaj platformzorgoj (kiel la nombro da DIMM-fendetoj havebla, kaj la maksimuma RAM ebla per DIMM) malhelpas tian grandan fizikan adresspacon por esti realigitaj.
Sur ks64 procesoroj PAE-reĝimo devas esti aktiva antaŭ la ŝanĝo al longa reĝimo, kaj devas resti aktiva dum longa reĝimo estas aktiva, tiel dum en longa reĝimo ekzistas neniu "ne-PAE" reĝimo.
PAE-reĝimo ne influas la larĝon de liniaj aŭ virtualaj adresoj.
#000084
De la 2000-aj jaroj ĝi fariĝis evidenta [ al kiun?
ke la limigoj de 32-bitaj X86 arkitekturprocesoroj en memoradresado estis malhelpo al sia utiligo en alt-efikecaj komputikaretoj kaj potencaj skribtablaj specialkomputiloj.
La jaraĝa 32-bita X86 arkitekturo konkuris kun multe pli progresintajn 64-bitajn RISC-arkitekturojn kiuj povis trakti multe pli da memoron.
Intel kaj la tuta X86 arkitekturekosistemo bezonis 64-bitan memoradresadon se X86 arkitekturo devis postvivi la 64-bitan komputikepokon, kia specialkomputilo kaj skribtabla programoj baldaŭ estis komenci trafi la limigdonacon en 32-bita memoradresado.
Tamen, Intel sentis ke estis la dekstra tempo fari aŭdacan paŝon kaj utiligi la transiron ĝis 64-bitaj tablokomputiloj por transiro for de la X86 Arkitekturarkitekturo ĝenerale, eksperimento kiu finfine malsukcesis.
#000085
En 2001, Intel provis enkonduki ne-x86 kiun 64-bita arkitekturo nomis IA-64 en sia Itanium procesoro, komence celante la alt-efikecan komputik merkaton, esperante ke ĝi poste anstataŭigus la 32-bitan X86 arkitekturon.
Dum IA-64 estis malkongrua kun X86 arkitekturo, la Itanium procesoro disponigis kopiad kapablojn por tradukado de X86 arkitekturinstrukciaĵo en IA-64, sed tio influis la prezenton de X86 arkitekturprogramoj tiel malbone ke ĝi malofte estis, se iam, fakte utila al la uzantoj: programistoj devus reverki X86 arkitekturprogramojn por la IA-64-arkitekturo aŭ ilia efikeco pri Itanium estus grandecoj pli malbona ol sur vera X86 arkitekturprocesoro.
La merkato malaprobis la Itanium procesoro ĉar ĝi rompis re-kompatiblecon kaj preferis daŭri uzi X86 arkitekturfritojn, kaj tre malmultaj programoj estis rewriten por IA-64.
#000086
AMD decidis preni alian padon direkte al 64-bita memoradresado, certigi re-kompatiblecon ne suferus.
En April 2003, AMD liberigis la unuan X86 arkitekturprocesoron kun 64-bitaj ĝeneraluzeblaj registroj, la Opteron, kapablaj je traktado multe pli ol 4 Gb de virtuala memoro uzado de la nova x86-64 etendaĵo (ankaŭ konata kiel AMD64 aŭ ks64).
La 64-bitaj etendaĵoj al la X86 Arkitekturarkitekturo estis ebligitaj nur en la lastatempe enkondukita longa reĝimo, tial 32-bitaj kaj 16-bitaj aplikoj kaj operaciumoj povis simple daŭri uzi AMD64-procesoron en protektite aŭ aliaj reĝimoj, sen eĉ la plej iometa ofero de efikeco [30] kaj kun plena kongrueco reen al la origina instrukciaĵo de la 16-bita Intel 8086.
(p13-14) La merkato respondis pozitive, adoptante la 64-bitajn AMD-procesorojn por kaj alt-efikecaj aplikoj kaj komerco aŭ hejmaj komputiloj.
#000087
Vidante la merkaton malaprobi la malkongrua Itanium procesoro kaj Mikrosofto apoganta AMD64, Intel devis respondi kaj prezentis it propran x86-64-procesoron, la " Prescott " Pentium 4, en julio 2004.
Kiel rezulto, la Itanium procesoro kun ĝia IA-64-instrukciserio malofte estas uzita kaj X86 arkitekturo, tra sia x86-64-enkarniĝo, daŭre estas la domina CPU-arkitekturo en ne-integriĝintaj komputiloj.
#000088
x86-64 ankaŭ lanĉis la NX-pecon, kiu ofertas iun protekton kontraŭ sekurecinsektoj kaŭzitaj de bufro transkuras.
#000089
Kiel rezulto de la 64-bita kontribuo de AMD al la X86 arkitekturgenlinio kaj ĝia posta akcepto de Intel, la 64-bitaj RISC-arkitekturoj ĉesis esti minaco al la X86 arkitekturekosistemo kaj preskaŭ malaperis de la specialkomputilmerkato.
x86-64 komencis esti utiligita en potencaj superkomputiloj (en it'oj AMD Opteron- kaj Intel Xeon enkarniĝoj), merkato kiu antaŭe estis la natura vivejo por 64-bitaj RISC-dezajnoj (kiel ekzemple la IBM POTENCmikroprocesoroj aŭ SPARC- procesoroj).
La granda salto direkte al 64-bita komputiko kaj la prizorgado da re-kompatibleco per 32-bita kaj 16-bita softvaro ebligis la X86 Arkitekturarkitekturon iĝi ekstreme fleksebla platformo hodiaŭ, kie X86 arkitekturfritoj estas utiligitaj de malgrandaj malalt-motoraj sistemoj (ekzemple, Intel Quark kaj Intel Atom) ĝis rapide videoludadaj tablokomputiloj (ekzemple, Intel Core i7 kaj AMD FX
/ Ryzen), kaj eĉ dominu grandajn superkomputikaretojn, efike forlasante al nur la BRAKO 32-bita kaj 64-bita RISC-arkitekturon kiel konkuranto en la dolortelefono kaj tablojdo merkato.
#000090
680x0, konkuranta arkitekturo en la 16 & frue 32bit epokoj
PowerPC, konkuranta arkitekturo en la pli postaj 32bit kaj 64bit epokoj
#000093
4Group Posedaĵoj (50% posedataj fare de Teknokoloro-Sa)
#000099
Glitkomaj operacioj je sekundo (FIASKOJ)
#000103
Memora pli ledkolora registro (MBR)
#000104
Softvaraj gardistaj Etendaĵoj (Intel SĜ)
#000105
Arkitekturo x86 aŭ x86-arkitekturo estas la komerce plej sukcesa instrukciara arkitekturo en la historio de personaj komputiloj. La mallongigo estas derivita de la model-numeroj finiĝantaj per "86", la unuaj el kiuj estis retrokongruaj kun la originala Intel 8086. Ekde tiam, multaj aldonoj kaj kromaĵoj estis aldonitaj al la x86-instrukciaro, preskaŭ ĉiuj kun plena retrokongrueco. La komputila arkitekturo estis realigita en procesoroj de Intel, Cyrix, AMD, VIA kaj pluraj aliaj.
#000106
Ĉar la termino x86 populariĝis post la kreado de la Intel 80386, ĝi ofte aludas al duuma retrokongrueco kun la 32-bitoka instrukciaro de la 80386.
#000107
Hodiaŭ, la x86-arkitekturo estas ĉiameca en surtablaj komputiloj kaj tekokomputiloj, kaj ankaŭ plimulto de serviloj kaj laborstacioj. Granda iomo da programaroj subtenas ĉi tian procesoron, inkluzive de operaciumoj kiaj MS-DOS, Vindozo, Linukso, BSD, Solaris kaj Mac OS X.
#000108
Malgraŭ populara mito, x86 ne estas samsama kun IBM-PC-kongrueco, kaj ĝi estas trovebla en pluraj aliaj aparataroj. Ekzemple, la originala X-box estis desegnita kun x86-procesoro.
#000109