Vi gikk fra 8-bit, til 16-bit, til 32-bit, og avsluttet ting på 64-bit. Her er grunnen til at 128-bits CPUer ikke eksisterer.
Blant datavokabularord er bit absolutt et av de mest kjente. Hele generasjoner av videospillkonsoller og deres pikselerte kunststiler er definert av biter (som 8-bit og 16-bit), og mange applikasjoner tilbyr både 32-bit og 64-bit versjoner.
Hvis du ser på den historien, kan du se at vår evne til å håndtere biter har økt med årene. Men mens 64-bits brikker først ble introdusert på 90-tallet og ble mainstream på 2000-tallet, har fortsatt ikke 128-bits CPUer. Selv om 128 kan virke som et naturlig steg etter 64, er det hva som helst men.
Hva er til og med litt?
Før vi snakker om hvorfor 128-bits CPUer ikke eksisterer, må vi snakke om hva litt selv er. I hovedsak refererer det til egenskapene til CPU. Laget av ordene binært og siffer, er det den minste enheten i databehandling og utgangspunktet for all programmering. En bit kan bare defineres som 1 eller 0 (derav binær), selv om disse tallene kan tolkes som sanne eller usanne, på eller av, og til og med som et plusstegn eller et minustegn.
I seg selv er ikke en enkelt bit veldig nyttig, men å bruke flere biter er en annen historie fordi en kombinasjon av enere og nuller kan defineres som noe, som et tall, en bokstav eller et annet tegn. For 128-bits databehandling er vi bare interessert i heltall (tall som ikke har et desimaltegn), og jo flere biter det er, jo flere tall kan en prosessor definere. Den bruker en ganske enkel 2^x-formel, hvor x er hvor mange biter det er. I 4-bit databehandling er det største heltallet du kan telle til 15, som er en lavere enn 16 formelen gir deg, men programmerere begynner å telle fra 0 og ikke fra 1.
Hvis 4-bit bare kan lagre 16 forskjellige heltall, kan det ikke virke som om det å gå til 8- eller 32- eller til og med 128-bit ville være en stor sak. Men vi har å gjøre med eksponentielle tall her, noe som betyr at ting starter sakte, men tar av veldig raskt. For å demonstrere dette, her er en liten tabell som viser de største heltallene du kan beregne binært fra 1- til 128-bit.
Bit |
Maksimalt heltall |
---|---|
1-bit |
1 |
2-bit |
3 |
4-bit |
15 |
8-bit |
255 |
16-bit |
65,535 |
32-bit |
4,294,967,295 |
64-bit |
18,446,744,073,709,551,615 |
128-bit |
340,282,366,920,938,463,463,374,607,431,768,211,455 |
Så nå kan du sannsynligvis se hvorfor dobling av mengden biter resulterer i å kunne håndtere tall som ikke bare dobles i størrelse, men som er størrelsesordener større. Likevel, selv om 128-bit databehandling vil gjøre oss i stand til å jobbe med mye større tall enn 64-bit databehandling kan, bruker vi det fortsatt ikke.
Hvordan vi gikk fra 1-bit til 64-bit
Kilde: AMD
Det er ganske klart hvorfor CPUer gikk fra 1-bit til å ha flere biter: Vi ønsket at datamaskinene våre skulle gjøre flere ting. Det er ikke mye du kan gjøre med én eller to eller fire biter, men ved 8-bits-merket ble arkademaskiner, spillkonsoller og hjemmedatamaskiner gjennomførbare. Over tid ble prosessorer billigere å lage og fysisk mindre, så å legge til den nødvendige maskinvaren for å øke antall biter CPU kunne håndtere var et ganske naturlig trekk.
Den eksponentielle naturen til bits blir tydelig veldig raskt når man sammenligner 16-bits konsoller som SNES og Sega Genesis med deres 8-bits forgjengere, hovedsakelig NES. Super Mario Bros 3 var et av NESs mest komplekse spill når det gjelder mekanikk og grafikk, og det ble fullstendig overskygget av Super Mario World, som ble utgitt bare to år senere (selv om forbedringer i GPU-teknologi også var en nøkkelfaktor her).
Vi har fortsatt ikke 128-bits CPUer, selv om det har gått nesten tre tiår siden de første 64-bits brikkene kom på markedet.
Det handler imidlertid ikke bare om videospill; stort sett alt ble bedre med flere biter. Å flytte fra 256 tall i 8-bit til 65 356 tall i 16-bit betydde å spore tid mer presist, vise flere farger på skjermer og adressere større filer. Enten du bruker IBMs personlige datamaskin, drevet av Intels 8-biters 8088 CPU, eller bygger en server for et selskap som er klar til å komme på nett, er flere biter bare bedre.
Bransjen gikk ganske raskt fra 16-bit til 32-bit og til slutt 64-bit databehandling, som ble mainstream på slutten av 90-tallet og begynnelsen av 2000-tallet. Noen av de viktigste tidlige 64-bits CPU-ene ble funnet i Nintendo 64 og datamaskiner drevet av AMDs Athlon 64 og Opteron CPUer. På programvaresiden begynte 64-biters tidlig å motta mainstream-støtte fra operativsystemer som Linux og Windows 2000-tallet. Ikke alle forsøk på 64-bits databehandling var imidlertid vellykket; Intels Itanium-server-CPU-er var en høyprofilert fiasko og er det noen av selskapets dårligste prosessorer noensinne.
I dag er 64-bits CPUer overalt, fra smarttelefoner til PC-er til servere. Det lages fortsatt brikker med færre biter og kan være ønskelige for spesifikke applikasjoner som ikke håndterer større antall, men de er ganske nisje. Likevel har vi fortsatt ikke 128-bits CPUer, selv om det har gått nesten tre tiår siden de første 64-bits brikkene kom på markedet.
128-bits databehandling leter etter et problem å løse
Du tror kanskje at 128-bit ikke er levedyktig fordi det er vanskelig eller til og med umulig å gjøre, men det er faktisk ikke tilfelle. Mange deler i prosessorer, CPUer og annet er 128-biters eller større, som minnebusser på GPUer og SIMDer på CPUer som aktiverer AVX-instruksjoner. Vi snakker spesifikt om å kunne håndtere 128-bits heltall, og selv om 128-bits CPU-prototyper har blitt laget i forskningslaboratorier, har ingen selskaper faktisk lansert en 128-bits CPU. Svaret kan være antiklimaktisk: en 128-bits CPU er bare ikke veldig nyttig.
En 64-bits CPU kan håndtere over 18 kvintillioner unike tall, fra 0 til 18.446.744.073.709.551.615. Derimot ville en 128-bits CPU kunne håndtere over 340 undebillion tall, og jeg garanterer deg at du aldri har sett "undebillion" i hele ditt liv. Å finne en bruk for å beregne tall med så mange nuller er ganske utfordrende, selv om du bruker en av bitene for å signere heltallet, som vil ha sitt område fra negativ 170 undeillion til positiv 170 undeillion.
De eneste signifikante brukstilfellene for 128-biters heltall er IPv6-adresser, universelt unike identifikatorer (eller UUID) som brukes til å lage unike IDer for brukere (Minecraft er en høyprofilert brukssak for UUID), og filsystemer som ZFS. Saken er at 128-bits CPUer ikke er nødvendige for å håndtere disse oppgavene, som har vært i stand til å eksistere helt fint på 64-bits maskinvare. Til syvende og sist er hovedårsaken til at vi ikke har 128-bits CPUer at det ikke er noen etterspørsel etter et 128-bits maskinvare-programvareøkosystem. Bransjen kunne sikkert klart det hvis den ville, men det gjør den rett og slett ikke.
Døren er litt åpen for 128-bit
Kilde: Siemens
Selv om 128-bits CPUer ikke er en ting i dag, og det ser ut til at ingen selskap kommer til å gi ut en snart, vil jeg ikke gå så langt som å si at 128-bits CPUer aldri vil skje. Spesifikasjonen for RISC-V ISA etterlater muligheten for en fremtidig 128-bit arkitektur på bordet, men beskriver ikke hva det faktisk ville være, antagelig fordi det bare ikke var et presserende behov for å designe det.
Tre hundre og førti undebillion, det største tallet som er mulig å lage med 128 biter, er heller ikke på langt nær så mye som det er atomer i universet, som anses å være det største antallet som har noen virkelige verden betydning. Hvis du noen gang ønsket å simulere en god del av universet ned til atomnivå, så ville kanskje en 128-bits CPU vært veldig nyttig for det. Utover det er det vanskelig å si hva en 128-bits CPU skal brukes til, men for mange år siden lurte vi også på hva du kunne ønske deg en terabyte RAM til.