Hvorfor vi ikke har 128-bit CPU'er

Vi gik fra 8-bit, til 16-bit, til 32-bit, og endte tingene på 64-bit. Her er grunden til, at 128-bit CPU'er ikke eksisterer.

Blandt computerordforrådsord er bit bestemt et af de mest kendte. Hele generationer af videospilkonsoller og deres pixelerede kunststile er defineret af bits (såsom 8-bit og 16-bit), og masser af applikationer tilbyder både 32-bit og 64-bit versioner.

Hvis man ser på den historie, kan man se, at vores evne til at håndtere bits er steget gennem årene. Men mens 64-bit chips først blev introduceret i 90'erne og blev mainstream i 2000'erne, har stadig ikke 128-bit CPU'er. Selvom 128 kan virke som et naturligt skridt efter 64, er det hvad som helst men.

Hvad er endda lidt?

Før vi taler om, hvorfor 128-bit CPU'er ikke eksisterer, er vi nødt til at tale om, hvad en smule endda er. I det væsentlige refererer det til CPU'ens muligheder. Det er dannet af ordene binært og ciffer, det er den mindste enhed inden for databehandling og udgangspunktet for al programmering. En bit kan kun defineres som 1 eller 0 (derfor binært), selvom disse tal kan fortolkes som sande eller falske, til eller fra, og endda som et plustegn eller et minustegn.

I sig selv er en enkelt bit ikke særlig nyttig, men at bruge flere bits er en anden historie, fordi en kombination af enere og nuller kan defineres som noget, som et tal, bogstav eller et andet tegn. Til 128-bit databehandling er vi kun interesserede i heltal (tal, der ikke har et decimalkomma), og jo flere bit der er, jo flere tal kan en processor definere. Den bruger en ret simpel 2^x-formel, hvor x er, hvor mange bits der er. I 4-bit computing er det største heltal, du kan tælle til, 15, hvilket er et lavere end de 16, formlen giver dig, men programmører begynder at tælle fra 0 og ikke fra 1.

Hvis 4-bit kun kan gemme 16 forskellige heltal, så ser det måske ikke ud som om at gå til 8- eller 32- eller endda 128-bit ville være den store sag. Men vi har at gøre med eksponentielle tal her, hvilket betyder, at tingene starter langsomt, men derefter tager fart meget hurtigt. For at demonstrere dette er her en lille tabel, der viser de største heltal, du kan beregne binært fra 1- til 128-bit.

Bit

Maksimalt heltal

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å nu kan du sikkert se, hvorfor en fordobling af mængden af ​​bits resulterer i at kunne håndtere tal, der ikke bare fordobles i størrelse, men er størrelsesordener større. Alligevel, selvom 128-bit computing ville gøre os i stand til at arbejde på meget større tal end 64-bit computing kan, bruger vi det stadig ikke.

Hvordan vi gik fra 1-bit til 64-bit

Kilde: AMD

Det er ret klart, hvorfor CPU'er gik fra 1-bit til at have flere bits: Vi ønskede, at vores computere skulle lave flere ting. Der er ikke et ton, du kan gøre med en eller to eller fire bits, men ved 8-bit-mærket blev arkademaskiner, spillekonsoller og hjemmecomputere mulige. Med tiden blev processorer billigere at lave og fysisk mindre, så det var et ret naturligt træk at tilføje den nødvendige hardware for at øge antallet af bits, som CPU'en kunne håndtere.

Bits eksponentielle karakter bliver meget hurtigt tydelig, når man sammenligner 16-bit konsoller som SNES og Sega Genesis med deres 8-bit forgængere, primært NES. Super Mario Bros 3 var et af NES's mest komplekse spil med hensyn til mekanik og grafik, og det var fuldstændig overskygget af Super Mario World, som blev udgivet kun to år senere (selvom forbedringer i GPU-teknologien også var en nøglefaktor her).

Vi har stadig ikke 128-bit CPU'er, selvom det er næsten tre årtier siden, at de første 64-bit chips kom på markedet.

Det handler dog ikke kun om videospil; stort set alt blev bedre med flere bits. At flytte fra 256 numre i 8-bit til 65.356 numre i 16-bit betød sporing af tid mere præcist, visning af flere farver på skærme og adressering af større filer. Uanset om du bruger IBMs personlige computer, drevet af Intels 8-bit 8088 CPU, eller bygger en server til en virksomhed, der er klar til at komme online, er flere bits bare bedre.

Industrien bevægede sig ret hurtigt fra 16-bit til 32-bit og til sidst 64-bit computing, som blev mainstream i slutningen af ​​90'erne og begyndelsen af ​​2000'erne. Nogle af de vigtigste tidlige 64-bit CPU'er blev fundet i Nintendo 64 og computere drevet af AMD's Athlon 64 og Opteron CPU'er. På softwaresiden begyndte 64-bit at modtage mainstream-support fra operativsystemer som Linux og Windows i begyndelsen 2000'erne. Ikke alle forsøg på 64-bit databehandling lykkedes dog; Intels Itanium-server-CPU'er var en højprofileret fiasko og er det nogle af virksomhedens dårligste processorer nogensinde.

I dag er 64-bit CPU'er overalt, fra smartphones til pc'er til servere. Chips med færre bits laves stadig og kan være ønskelige til specifikke applikationer, der ikke håndterer større antal, men de er ret niche. Alligevel har vi stadig ikke 128-bit CPU'er, selvom det er næsten tre årtier siden, at de første 64-bit chips kom på markedet.

128-bit computing leder efter et problem at løse

Du tror måske, at 128-bit ikke er levedygtigt, fordi det er svært eller endda umuligt at gøre, men det er faktisk ikke tilfældet. Mange dele i processorer, CPU'er og andet er 128-bit eller større, som hukommelsesbusser på GPU'er og SIMD'er på CPU'er, der aktiverer AVX-instruktioner. Vi taler specifikt om at kunne håndtere 128-bit heltal, og selvom 128-bit CPU-prototyper er blevet skabt i forskningslaboratorier, har ingen virksomhed faktisk lanceret en 128-bit CPU. Svaret kan være antiklimaktisk: en 128-bit CPU er bare ikke særlig nyttig.

En 64-bit CPU kan håndtere over 18 kvintillioner unikke numre, fra 0 til 18.446.744.073.709.551.615. Derimod ville en 128-bit CPU være i stand til at håndtere over 340 undebillion numre, og jeg garanterer dig, at du aldrig har set "undebillion" i hele dit liv. At finde en anvendelse til at beregne tal med så mange nuller er ret udfordrende, selvom du bruger en af bits til at tegne heltal, som ville have sit område fra negativ 170 undecilion til positiv 170 undecilion.

De eneste væsentlige use cases for 128-bit heltal er IPv6-adresser, universelt unikke identifikatorer (eller UUID), der bruges til at skabe unikke ID'er for brugere (Minecraft er en højprofileret use case for UUID), og filsystemer som ZFS. Sagen er den, at 128-bit CPU'er ikke er nødvendige for at håndtere disse opgaver, som har kunne eksistere fint på 64-bit hardware. I sidste ende er hovedårsagen til, at vi ikke har 128-bit CPU'er, at der ikke er nogen efterspørgsel efter et 128-bit hardware-software-økosystem. Industrien kunne sagtens klare det, hvis den ville, men det gør den simpelthen ikke.

Døren er lidt åben for 128-bit

Kilde: Siemens

Selvom 128-bit CPU'er ikke er en ting i dag, og det ser ud til, at intet firma vil frigive en på det nærmeste, vil jeg ikke gå så langt som at sige, at 128-bit CPU'er aldrig vil ske. Specifikationen for RISC-V ISA efterlader muligheden for en fremtidig 128-bit arkitektur på bordet, men beskriver ikke, hvad det faktisk ville være, formentlig fordi der bare ikke var et presserende behov for at designe det.

Tre hundrede og fyrre undecilion, det største antal muligt at skabe med 128 bit, er heller ikke nær så meget da der er atomer i universet, som anses for at være det største antal, der har nogen virkelig verden betydning. Hvis du nogensinde har ønsket at simulere en god del af universet ned til atomniveau, så ville en 128-bit CPU måske være virkelig nyttig til det. Ud over det er det svært at sige, hvad en 128-bit CPU skal bruges til, men for mange år siden spekulerede vi også på, hvad man kunne ønske sig en terabyte RAM til.