Miks meil pole 128-bitisi protsessoreid?

Läksime 8-bitise, 16-bitise ja 32-bitise versiooni juurde ja lõpetasime asjad 64-bitisega. Siin on põhjus, miks 128-bitisi protsessoreid ei eksisteeri.

Arvutisõnavara sõnadest on bit kindlasti üks tuntumaid. Terved põlvkonnad videomängukonsoole ja nende pikslitega kunstistiile määratlevad bitid (nt 8-bitised ja 16-bitised) ning paljud rakendused pakuvad nii 32-bitisi kui ka 64-bitiseid versioone.

Kui vaatate seda ajalugu, näete, et meie võime bitte käsitleda on aastate jooksul kasvanud. Kuigi 64-bitised kiibid võeti esmakordselt kasutusele 90ndatel ja muutusid peavooluks 2000ndatel, pole ikka veel 128-bitiseid protsessoreid. Kuigi 128 võib tunduda loomulik samm pärast 64, on see kõike aga.

Mis on isegi natuke?

Enne kui räägime sellest, miks 128-bitiseid protsessoreid pole, peame rääkima sellest, mis on bitt isegi. Põhimõtteliselt viitab see protsessori võimalustele. Moodustatud sõnadest binary ja digit, see on andmetöötluse väikseim ühik ja kogu programmeerimise alguspunkt. Biti saab defineerida ainult kui 1 või 0 (seega kahendarvuna), kuigi neid numbreid saab tõlgendada tõese või valena, sees või välja lülitatuna ning isegi pluss- või miinusmärgina.

Üksik bitt ei ole iseenesest kuigi kasulik, kuid rohkemate bittide kasutamine on hoopis teine ​​lugu, sest ühtede ja nullide kombinatsiooni saab määratleda millekski, näiteks numbriks, täheks või muuks märgiks. 128-bitise andmetöötluse puhul huvitavad meid lihtsalt täisarvud (arvud, millel pole koma) ja mida rohkem on bitte, seda rohkem numbreid suudab protsessor defineerida. See kasutab üsna lihtsat 2^x valemit, kus x on bittide arv. 4-bitises andmetöötluses on suurim täisarv, milleni saate lugeda, 15, mis on ühe võrra väiksem kui 16, mille valem teile annab, kuid programmeerijad hakkavad loendama 0-st, mitte 1-st.

Kui 4-bitine saab salvestada ainult 16 erinevat täisarvu, siis ei pruugi tunduda, et 8- või 32- või isegi 128-bitise versiooni kasutuselevõtt ei oleks nii suur asi. Kuid me käsitleme siin eksponentsiaalseid numbreid, mis tähendab, et asjad algavad aeglaselt, kuid algavad siis väga kiiresti. Selle demonstreerimiseks on siin väike tabel, mis näitab suurimaid täisarvusid, mida saate binaarselt arvutada vahemikus 1–128 bitti.

Natuke

Maksimaalne täisarv

1-bitine

1

2-bitine

3

4-bitine

15

8-bitine

255

16-bitine

65,535

32-bitine

4,294,967,295

64-bitine

18,446,744,073,709,551,615

128-bitine

340,282,366,920,938,463,463,374,607,431,768,211,455

Nüüd saate ilmselt aru, miks bittide arvu kahekordistamine annab võimaluse käsitleda numbreid, mis mitte ainult ei kahekordistu, vaid on suurusjärgu võrra suuremad. Kuigi 128-bitine andmetöötlus võimaldaks meil töötada palju suuremate arvudega kui 64-bitine andmetöötlus suudab, ei kasuta me seda ikkagi.

Kuidas me läksime 1-bitiselt 64-bitiseks

Allikas: AMD

On üsna selge, miks protsessorid muutusid 1-bitise bittide asemel rohkemateks: tahtsime, et meie arvutid teeksid rohkem asju. Ühe või kahe või nelja bitiga ei saa teha tonni, kuid 8-bitise märgi juures muutusid arkaadmasinad, mängukonsoolid ja koduarvutid teostatavaks. Aja jooksul muutusid protsessorite valmistamine odavamaks ja füüsiliselt väiksemaks, nii et protsessoriga toimetulevate bittide arvu suurendamiseks vajaliku riistvara lisamine oli üsna loomulik samm.

Bittide eksponentsiaalne olemus ilmneb väga kiiresti, kui võrrelda 16-bitisi konsoole nagu SNES ja Sega Genesis nende 8-bitiste eelkäijatega, peamiselt NES-iga. Super Mario Bros 3 oli NES-i mehaanika ja graafika poolest üks keerukamaid mänge ning see jäi täiesti kääbus Super Mario maailm, mis ilmus alles kaks aastat hiljem (kuigi GPU-tehnoloogia täiustused olid ka siin võtmeteguriks).

Meil pole ikka veel 128-bitisi protsessoreid, kuigi esimeste 64-bitiste kiipide turule jõudmisest on möödunud peaaegu kolm aastakümmet.

See ei puuduta aga ainult videomänge; peaaegu kõik läks paremaks bittide lisandumisega. 8-bitise 256 numbri asemel 65 356 numbrile 16-bitises numbris liikumine tähendas aja täpsemat jälgimist, rohkemate värvide näitamist ekraanidel ja suuremate failide käsitlemist. Olenemata sellest, kas kasutate IBMi personaalarvutit, mille toiteallikaks on Inteli 8-bitine 8088 protsessor, või ehitate serverit ettevõttele, mis on valmis võrguühenduseks, on rohkem bitte lihtsalt parem.

Tööstus liikus üsna kiiresti 16-bitiselt 32-bitisele ja lõpuks 64-bitisele andmetöötlusele, mis muutus tavapäraseks 90ndate lõpus ja 2000ndate alguses. Mõned kõige olulisemad varased 64-bitised protsessorid leiti Nintendo 64-st ja arvutitest, mille toiteallikaks olid AMD Athlon 64 ja Opteron protsessorid. Tarkvara poole pealt hakkasid 64-bitised operatsioonisüsteemid, nagu Linux ja Windows, peavoolu tuge saama juba varakult 2000. aastad. Kõik 64-bitise andmetöötluse katsed ei olnud siiski edukad; Inteli Itaniumi serveri CPU-d olid kõrge profiiliga rike ja on ühed ettevõtte halvimad protsessorid üldse.

Tänapäeval on 64-bitised protsessorid kõikjal, nutitelefonidest arvutite ja serveriteni. Ikka tehakse vähemate bittidega kiipe ja need võivad olla soovitavad konkreetsete rakenduste jaoks, mis ei käsitle suuremaid numbreid, kuid need on üsna nišid. Siiski pole meil ikka veel 128-bitisi protsessoreid, kuigi esimeste 64-bitiste kiipide turule jõudmisest on möödunud peaaegu kolm aastakümmet.

128-bitine andmetöötlus otsib probleemi, mida lahendada

Võib arvata, et 128-bitine ei ole elujõuline, sest seda on raske või isegi võimatu teha, kuid tegelikult see nii ei ole. Paljud osad protsessorites, protsessorites ja muudes osades on 128-bitised või suuremad, näiteks GPU-de mälusiinid ja CPU-de SIMD-d, mis võimaldavad AVX-juhiseid. Me räägime konkreetselt 128-bitiste täisarvude käsitlemisest ja kuigi uurimislaborites on loodud 128-bitise protsessori prototüüpe, pole ükski ettevõte 128-bitist protsessorit turule toonud. Vastus võib olla klimaktiline: 128-bitine protsessor pole lihtsalt eriti kasulik.

64-bitine protsessor suudab töödelda üle 18 kvintiljoni kordumatu numbri vahemikus 0 kuni 18 446 744 073 709 551 615. Seevastu 128-bitine CPU suudaks hakkama saada üle 340 undecillion numbriga ja ma garanteerin teile, et te pole isegi kunagi oma elu jooksul "undecilioni" näinud. Nii paljude nullidega arvude arvutamiseks kasutuse leidmine on üsna keeruline, isegi kui kasutate ühte bitid täisarvu tähistamiseks, mille vahemik oleks negatiivsest 170-st kuni positiivse 170-ni kahtlematus.

Ainsad olulised 128-bitiste täisarvude kasutusjuhud on IPv6-aadressid, universaalsed unikaalsed identifikaatorid (või UUID), mida kasutatakse kasutajatele unikaalsete ID-de loomiseks (Minecraft on UUID kõrgetasemeline kasutusjuht) ja failisüsteemidele nagu ZFS. Asi on selles, et 128-bitised protsessorid pole nende ülesannete täitmiseks vajalikud, kuna need on 64-bitises riistvaras suurepäraselt hakkama saanud. Lõppkokkuvõttes on peamine põhjus, miks meil 128-bitised protsessorid puuduvad, see, et 128-bitise riistvara-tarkvara ökosüsteemi järele pole nõudlust. Tööstus saaks kindlasti hakkama, kui ta seda tahaks, kuid see lihtsalt ei õnnestu.

128-bitise jaoks on uks veidi avatud

Allikas: Siemens

Ehkki 128-bitised protsessorid ei ole tänapäeval teema ja näib, et ükski ettevõte ei hakka seda niipea välja pakkuma, ei läheks ma nii kaugele, et öelda, et 128-bitised protsessorid ei tule kunagi teoks. Selle spetsifikatsioon RISC-V ISA jätab võimaluse tulevaseks 128-bitiseks arhitektuur laual, kuid ei kirjelda üksikasjalikult, mis see tegelikult oleks, arvatavasti seetõttu, et lihtsalt polnud tungivat vajadust seda kujundada.

Kolmsada nelikümmend undecillion, suurim arv, mida 128 bitiga luua saab, ei ole samuti peaaegu sama palju kuna universumis on aatomeid, mida peetakse suurimaks arvuks, mis reaalses maailmas on tähtsus. Kui soovite kunagi simuleerida suurt tükki universumist kuni aatomitasemeni, siis võib-olla oleks 128-bitine protsessor selleks tõesti kasulik. Peale selle on raske öelda, milleks 128-bitist protsessorit kasutataks, kuid aastaid tagasi mõtlesime ka selle üle, milleks võiks terabaiti RAM-i tahta.