X86-hönnun

x86 er heiti á fjölskyldu af örgjörvum (sem notaðir eru í t.d. IBM PC tölvur, og samhæfðar), með CISC skipanamengi, framleiddum af Intel, en síðar einnig af öðrum framleiðendum, s.s. AMD og VIA. Kom fyrst á markað 1978. Fyrstu útgáfur voru 16-bita, síðar 32-bita, og nú er staðallinn 64-bita frá 2003, eftir að AMD fyrirtækið bjó til þann staðal, AMD64, líka kallað x86-64; af t.d. Intel, sem tók upp þann staðal. 64-bita örgjörvar voru til fyrir en ekki í hefðbundnar PC tölvur, en tilgangurinn er aðallega, en ekki eingöngu, til að geta notað meira minni í sömu tölvunni og fyrir sama forritið, þannig að t.d. er hægt að kaupa núna tölvur með 128 GB af innra minni (e. RAM) sem ekki hefði verið hægt að nota í eldri 32-bita tölvur.

Reglulega koma nýjir örgjörvar út sem keyra forrit, þ.e. skipanir, sem gerðir hafa verið til að vera "samhæfðir" fjölskyldu, þar sem hefur verið passað upp á að þeir geti keyrt "gömlu" forritin frá fyrri kynslóðum (þ.e. styðja/geta keyrt allar sömu skipaninar, en þó fleiri). Það er ekki sjálfgefið að forrit gerð fyrir" nýrri" örgjörva keyri á þeim eldri, þ.e. ef að forritin nota skipanir sem eru bara í þeim nýrri. Yfirleitt er þetta þó leyst með því að styðja líka mjög gamla örgjörva, t.d. sem framleiddir voru áratug áður, með því að nota ekki nýjustu skipanirnar (eða með öðrum leiðum).

Nú er fjöldi mögulegra skipana sem nýjir örgjörvarnir í fjölskyldunni geta keyrt alla vega ca. þúsund, en þeim fer stöðugt fjölgandi og hefur fjölgað mjög, með t.d. MMX-skipanaflokknum frá 1997, sem bættu við 57 skipunum á 32-bita tímabilinu. Seinni flokkar skipana voru SSE-flokkurinn, og nokkrir framhaldsflokkar af SSE sem stöðugt óx og AVX, og t.d. AVX-512. Allir þessir flokkar skipana, falla undir það sem kallað er SIMD (e.g. single instruction, multiple data) högun og leyfir AVX-512 t.d. að unnið sé á 512-bita gistum (e.g. register) í einu, aukning frá 256-bita gistum áður. Þó svo að örgjörvarnir með AVX-512 skipanirnar séu í ákveðnum skilningi 512-bita, og 256-bita áður, og 128-bita þar áður, er venjulega ekki talað um það þannig, því að þessi talning hefur ekkert með hámarksstærð á innra minni að gera, og stærðin sem ræður þar er enn 64-bita og er óþarfi að stækka um nokkra áratugi enn.

Sagan.

Upphaflega, með örgjörvanum Intel 8086 frá 1976 var högunin 16-bita (en hafði ákveðinn skyldleika við eldri 8-bita örgjörva from Intel). Þá voru skipanirnar sem örgjörvinn gat keyrt vel innan við 50, og fjöldi smára (e. transistor) 29 þúsund.

Nýjar kynslóðir af örgjörvanum bættu við skipunum sem mögulegt var að keyra, t.d. fyrir fleytitölur (e. floating-point). Reyndar var mjög fljótlega seldur hjálparkubbur (e. coprocessor) fyrir þær, Intel 8087. Nú orðið er hægt að reikna með t.d. þeim skipunum, því nýrri kubbar sameinuðu virkni fleiri, s.s. fyrir þessa útreikninga og fyrir skyndiminni (e. cache) sem þá var ekki fáanlegt á sama kubbnum, enda þarf skyndiminni mjög marga smára, sem ekki var þá mögulegt að framleiða, þegar aðeins þúsundir komust fyrir á einum kubbi.

Með örgörvanum Intel 80386 frá 1985, sem hafði 275 þúsund smára, voru gistu (e.g. register) stækkuð í 32-bita, og síðar í 64-bita með AMD K8 2003 frá 2003, sem hafði 105 milljón smára. Núorðið er ekki óalgengt að að fjöldi smára sé talinn í milljörðum (líka aðrar tegundir örgjörva, s.s. í farsímum), og er t.d. AMD Epyc Rome örgjörvinn frá 2019 með 32 milljarða. Að stærstum hluta skýrir stærð skyndiminnis fjölda smára í örgjörvum, en að einhverju leiti líka annað flækjustig, s.s. vegna fleiri skipana (og stærri gista, sem hafa líka fjölgað).

32-bita tölvur takmarka aðgengilegt innra minni (e. RAM) við 4 GB fyrir hvert forrit (eða öll samanlagt, en x86 hafði reyndar hærri takmörkun fyrir öll saman, en ekki hvert einstakt forrit) og þegar x86 högunin var 16-bita var ekki hægt að nota gígabæti af minni.