64-bitarsfrågan

Är en 64-bitars dator i din framtid?





Med all hype kring 64-bitars processorer, antar du förmodligen att mitt svar skulle vara ett otvetydigt ja - och ganska jäkla snart också! Men lägg undan marknadsföringssuget om chips som AMD:s Athlon64; faktiskt, att ha 64 bitar spelar mycket mindre roll än vad datorindustrin skulle få dig att tro. Om du inte råkar vara en Macintosh-användare, kanske du inte kommer att köpa en 64-bitars dator förrän ett decennium till - om du faktiskt någonsin köper en alls.

Först lite bakgrund. Processorerna i de allra flesta av dagens stationära och bärbara datorer är 32-bitars chips. De flesta av dem är baserade på Intels otroligt framgångsrika IA32-arkitektur, även känd som x86 (som i 286, 386, 486). Intels Celeron- och Pentium-maskiner är alla IA32, liksom AMD:s Athlon-chips.

Men helt plötsligt har 64-bitarsmaskiner ett slags cachet. I två år har AMD sålt processorer som kan köra både 32-bitars och 64-bitars kod samtidigt; datorer byggda med dessa chips kan köra antingen Linux eller en speciell 64-bitarsversion av Windows XP som Microsoft släppte tidigare i år. Apple, under tiden, levererar alla sina Power Mac-datorer med G5-mikroprocessorn, en 64-bitars hjärna skapad av IBM. Och på ett sätt spelar alla dessa stationära system ikapp: Nintendo gjorde 64-bitarsövergången 1996 när de levererade sin Nintendo64-spelkonsol.



För att förstå varför allt detta spelar roll måste du först förstå att frasen 32 bitar är en slags stenografi som datordesigners använder. Detta nummer hänvisar till två saker i datorns arkitektur. För det första anger det hur många bitar dessa datorer använder när de anger platsen i minnet där en bit information lagras. För det andra indikerar det storleken på registren inuti mikroprocessorn som används för att göra matematik. Varje bit kan vara en 1 eller en 0, så 32 bitar kan användas för att representera 232 eller 4 294 967 296 olika värden. Den uppenbara skillnaden mellan 32-bitars maskiner och 64-bitars är alltså att 64-bitars systemen är mycket större maskiner: de kan adressera mer minne, och de kan matte med större siffror.

Men mer betyder inte nödvändigtvis bättre - det beror på vad du får mer av.

Down Memory Lane



Övergången från 32 bitar till 64 bitar är viktigast när det kommer till dessa datorers förmåga att adressera minne. Ett program som körs på en 32-bitars dator kan enkelt adressera 4 gigabyte minnesåterkallning, 232 är ungefär 4,3 miljarder. Å andra sidan kan ett program som körs på en 64-bitars maskin adressera 264 - det är 4 miljarder gånger 4 miljarder byte, ett häpnadsväckande stort antal. Gör bara siffrorna och det är tydligt att det finns mycket mer utrymme på ett 64-bitarssystem. Men dessa två fakta är faktiskt ansvariga för mycket förvirring, som vi kommer att se.

IBM:s ursprungliga persondator använde Intel 8088-mikroprocessorn - ett roligt litet chip som var fyllt med konstiga tekniska kompromisser. I grunden var 8088 en 16-bitars processor: den hade 16-bitars matematiska register, vilket gjorde att den enkelt kan representera siffror mellan 0 och 65 535 (eller mellan -32 768 och 32 767), och 16-bitars adressregister, vilket gör att den kan kommunicera enkelt med 64 kilobyte huvudminne. Nu var 64K inte tillräckligt för att göra mycket av någonting, inte ens 1981 när PC:n levererades först, så 8088:an hade en uppsättning segmentregister som flyttades till vänster 4 bitar och lades till adressregistret innan minnesadresserna faktiskt var läst eller skrivit. Som ett resultat kunde 8088 enkelt komma åt upp till en megabyte minne. En megabyte var mycket RAM-minne redan 1981. Faktum är att datordesigners då inte kunde föreställa sig att en typisk hem- eller företagsanvändare skulle behöva så mycket minne, än mindre ha råd med det, under många år framöver. Så IBMs designers drog ett streck över datorns minneskarta och placerade minnet för videoskärmen precis i mitten av den övre halvan, vilket effektivt begränsade de tidiga datorerna till högst 640 kilobyte RAM. Detta var uppkomsten av gränsen på 640K som infördes av IBM:s dator på dess DOS-operativsystem.

Några år senare introducerade Intel sin nästa mikroprocessor, 80286. (80186:an kom aldrig riktigt in i persondatorer.) 286:an var grunden för IBM:s PC/AT. Den hade ett emuleringsläge (kallat real mode) som lät 286 köra samma mjukvara som 8088, men den hade också ett avancerat, skyddat läge som lät den köras med upp till 16 megabyte RAM. De allra flesta av dessa maskiner kördes i realläge så att de kunde köra Microsofts DOS och alla andra program som skrevs för den ursprungliga IBM PC:n. Faktum är att 286:an var mycket mer populär när det gäller att köra 8088-programvara än 8088:an någonsin varit, eftersom 286:an var så mycket snabbare. När du kommer till rätta med det, kördes faktiskt väldigt få 286-marker i deras skyddade läge.



1985 introducerade Intel 80386-chippet - den första 32-bitarsprocessorn i x86-familjen. Återigen hade denna mikroprocessor ett så kallat real mode så att den kunde köra DOS och resten av 8088 mjukvarubas. Dessa maskiner kunde cirkla runt den ursprungliga 8088 - inte för att de var 32-bitars maskiner, utan för att de hade snabbare klockfrekvenser och en mer sofistikerad intern design. Det fanns också ett antal företag som sålde DOS-förlängare som lät program laddade under DOS dra fördel av hela 32-bitars adressutrymmet. Dessa förlängare vände datorn till 32-bitarsläge för matematik, men återställde maskinen till 16-bitarsläge närhelst programmet behövde komma åt datorns hårddisk. Ändå var 32-bitarsprogram som kördes på dessa 32-bitars processorer undantaget, inte regeln.

Det var inte förrän 32-bitarsmaskinerna på området var betydligt fler än 16-bitars som Microsoft började leverera sitt första riktiga 32-bitars operativsystem - Windows 95. Vid den tiden hade Intel tagit fram ytterligare två generationer av x86-baserade maskiner-80486 och Pentium. Ja, Microsoft kunde ha levererat ett 32-bitars operativsystem år innan Windows 95 levererades. Men att göra det skulle förmodligen ha varit ett misstag: varför sälja ett operativsystem som inte kan köras på de flesta datorer på marknaden?

All denna historia är plötsligt relevant igen när vi överväger nästa stora hopp inom PC-arkitekturen - skiftet från 32-bitars till 64-bitars datorer. Men medan utdelningen från ett 16-bitars adressutrymme (eller 20-bitar, om du tar hänsyn till 8088:s segmenterade arkitektur) till 32 bitar var enormt, kommer övergången från 32 bitar till 64 bitar knappt att märkas av de flesta datoranvändare. Anledningen är att 32 bitar faktiskt är tillräckligt stort för att lösa de allra flesta datoruppgifter - inte bara dagens utan även morgondagens.



Förflyttningen från 32 bitar till 64 kommer sannolikt inte att ge samma sorts kvanthopp i hastighet eller kapacitet som vi flyttade från 16 bitar till 32. Ja, 64 bitar av adress är verkligen häftigt, men 32 bitar är inget att nysa åt.

Idag finns det få applikationer som verkligen behöver mer än 4 gigabyte minne. Om det du gör är ordbehandling, kalkylblad, e-post och webbsurfning, kommer 32 bitar att ge tillräckligt med adressutrymme för den tänkbara framtiden. Min stationära Windows-dator är ett minnesexemplar av Internet Explorer som rutinmässigt sväller upp till 64 megabyte. Men det är fortfarande en sextiofjärdedel av storleken på maskinens 4 gigabyte minneskarta. Jag kan inte föreställa mig att jag skulle kunna köra en webbläsare som skulle kräva en 4 gigabyte minneskarta: det skulle ta nästan 10 timmar bara att ladda ner så mycket information över min DSL-linje!

Du kanske tror att multitasking med andra, liknande överdimensionerade applikationer skulle orsaka ett ständigt ökande minnestryck, till den punkt där man gör bli bekymrad över användningen av adressutrymme. Men så är inte fallet. Windows, Unix och andra moderna operativsystem använder en teknik som kallas virtuellt minne för att ge varje program sin egen isolerade minneskarta. På en 32-bitars dator innebär detta att varje program som körs får sina egna 4 gigabyte virtuellt minne att leka med. Så medan en enskild instans av ett program som körs inte kan komma åt mer än 4 gigabyte, skulle en 32-bitarsmaskin som kör Windows XP med 10 eller 20 gigabyte minne inte ha några problem med att dela det minnet mellan en uppsvälld webbläsare, en uppsvälld kopia av Word 2003, och en uppsvälld kopia av Access.

Där det 64-bitars adressutrymmet gör den stora skillnaden är när ett enda program behöver komma åt mer än 4 gigabyte minne samtidigt. Till exempel, om du driver ett datalager för ett multinationellt företag med 10 terabyte onlinelagring, kan din databasserver dra stor nytta av att ha 10 eller 20 gigabyte indexfiler lagrade i minnet. En storskalig simulering kan på samma sätt gynnas av att ha massor av RAM till förfogande för att göra saker som att modellera vädret för i övermorgon.

Med företag som Dell levererar hemdatorer med 512 megabyte RAM och Windows XP-datorer som rutinmässigt använder 1,5 gigabyte minne för att hålla alla sina program, kommer marknadsförare som driver 64-bitars datorer att säga att du behöver en 64-bitars maskin för att bryta igenom den snabbt närmar sig gränsen på 4 gigabyte. Tro inte på det. Faktum är att Dell redan säljer 32-bitars datorer med 8, 16 och 32 gigabyte RAM. Marknadsförarna vill att du ska köpa 64-bitarsmaskiner eftersom dessa system kostar mer.

Det andra sättet som 64-bitarsmaskiner överträffar dagens 32-bitarssystem är när det kommer till att göra matematik. Medan dagens 32-bitars maskiner har processorer som kan representera vilket heltal som helst mellan 0 och 4 294 967 295 (det är 232-1), kan en 64-bitars maskin representera heltal mellan 0 och 18 446 744 073 709 551 615 (264).

Återigen, att kunna göra matematik med dessa enorma siffror i en enda instruktion kan vara en enorm fördel i ett litet antal vetenskapliga tillämpningar. Men det visar sig att 64-bitars heltalsmatematik inte är så användbar för de flesta dagliga kontorsuppgifter. Till att börja med beror det på att vi redan har maskiner som kan göra 64-bitars: dagens maskiner gör det bara med flyttalsenheter för speciella ändamål, eller så gör de det med flera 32-bitars instruktioner. För de flesta operationer behövs helt enkelt ingen speciell 64-bitars matematisk hårdvara.

Du behöver inte ta mitt ord på detta. Titta bara på historien om andra 64-bitarsarkitekturer. Medan 64 bitar är nytt för x86-världen, gjorde andra mikroprocessorer övergången till 64 bitar redan på 1990-talet. Alpha, MIPS64 och Sparc64 är alla 64-bitarsmaskiner. Ändå ignorerar de flesta av programmen som körs på dessa datorer de översta 32-bitarna av varje nummer - det beror på att dessa siffror alltid är 0.

The Real 64-bit Payoff: Newer Designs

Alla dessa argument mot 64-bitarsmaskiner smälter in i träverket, men när du sätter dig framför Apples nya G5-dator: oavsett om du redigerar video eller bara surfar på webben känns maskinen dramatiskt snabbare än den är 32-bitars G4 kusiner. Så vad ger?

Med det anmärkningsvärda undantaget från Intels Itanium-processor kör dagens 64-bitars maskiner i allmänhet 32-bitars kod snabbare än sina 32-bitars kusiner av samma anledning som 32-bitars Intel 80386 körde 16-bitars kod snabbare än 8088 och 80286 Anledningen är att 64-bitars processorer helt enkelt är mer moderna enheter. Dessa chips är gjorda med mer avancerade kiselprocesser, de har högre klockfrekvens och de packar fler transistorer. AMD:s Athlon64 och IBM:s G5 har inte bara bredare register: de har också mer funktionella enheter i sina kiselhjärnor. Dessa marker gör ett bättre jobb med saker som att exekvera flera instruktioner samtidigt, exekvering i oordning och grenförutsägelse. Den 64-bitars PowerMac G5 som körs i Apple Store kör till stor del 32-bitars kod. Maskinens imponerande hastighet kommer från kombinationen av två processorer, de snabbare klockfrekvenserna, en större cache och en bättre minnesbuss.

Ja, AMD och IBM kunde ha lagt in samma teknik i en ny 32-bitars design. Men nuförtiden kostar det miljarder dollar att designa ett nytt chip. En 64-bitars processor kan kräva ett högre pris än en 32-bitars CPU, så det är i dessa företags bästa intresse att lägga sin senaste och bästa teknologi i sina 64-bitars produkter.

Om vi ​​ser fram emot kommer 64-bitars datoranvändning verkligen att slå igenom eftersom 64-bitarsmaskinerna bara råkar göra ett bättre jobb med dagens 32-bitars kod än dagens 32-bitars processorer. Men marknaden kan lätt utvecklas i en annan riktning. De extra 32 bitarna förbrukar mycket ström, så företag som bygger processorer för bärbara datorer och handdatorer kan helt enkelt vika ihop tricken som utvecklats för 64-bitars maskiner i sina 32-bitars enheter.

Samma sak har hänt i spelkonsoler. Även om det var mycket spänning för några år sedan när Nintendo bestämde sig för att använda 64-bitars R4300i-processorn för sitt Nintendo 64-system, hade videospelsspelare inte riktigt nytta av de extra 32 bitarna av adress eller matematik. R4300i var ett snabbt chip på den tiden eftersom den implementerade många andra toppmoderna tekniker för att snabba upp programexekveringen. Det kunde ha gett samma prestandanivå om dessa trick hade tillämpats på en 32-bitars processor. Det var tricken som gav farten, inte bitarna.

128-bitars bunden?

Efter att ha genomlevt hoppet från 8 till 16 bitar, sedan 16 till 32 och nu 32 till 64, är det bara naturligt att tro att vi någon gång i en avlägsen framtid kommer att göra övergången från 64-bitars till 128-bitars system. Håll inte andan.

Det viktiga att komma ihåg här är att bitar är exponentiella. Ett 32-bitarssystem kan adressera 65 tusen gånger så mycket minne som ett 16-bitarssystem, medan ett 64-bitarssystem har ett teoretiskt minnesadressutrymme 4 miljarder gånger större än för ett 32-bitarssystem. Du skulle faktiskt kunna bygga ett enda minnessystem som skulle rymma 264 byte lagring med dagens hårdvara - men du skulle behöva använda mer än 200 miljoner hårddiskar, var och en rymmer 256 gigabyte information. Det är mer lagring än vad som levererades av hela världens hårddiskindustri 2003. Så även om det är tänkbart att du skulle kunna bygga ett minnessystem som rymmer 264 byte lagring idag, skulle du förmodligen behöva använda alla datorer i världen som är anslutna till Internet .

Även om det är möjligt att föreställa sig en framtid där datorer kommer åt 264-byte databaser, är det svårt att föreställa sig ett enda problem som skulle kräva att ett program har så mycket minne tillgängligt i ett enda adressutrymme. En anledning till att ett så otroligt stort system inte är vettigt är att du inte skulle bygga ett sådant system med en enda processor och ett enda enhetligt adressutrymme: du skulle istället använda miljoner eller miljarder bearbetningselement, alla med överlappande minne och ansvar. På så sätt, om en processor eller minnesblock misslyckades, skulle de andra systemen ta över sömlöst.

Med tanke på sådana argument är det ganska orimligt att föreställa sig att du skulle behöva 2128 bitar av lagring - inte under vår livstid, inte under någons livstid.

Å andra sidan kan jag ha helt fel om allt detta: 64 bitar kan vara precis grejen för att göra virtuell verklighet för hela kroppen med förmåga att förändra sinnet och sinnet. Eller mer troligt, företag som Dell kan välja att följa Apples ledning och sluta sälja billiga maskiner med 32-bitars processorer, istället för att förlita sig på marknadsföringshypen med 64-bitars maskiner för att motivera de högre vinstmarginalerna.

Men kom ihåg att det alltid finns plats i botten. Och eftersom 32-bitarsmaskiner sannolikt kommer att vara användbara i åtminstone ett decennium framöver, om inte längre, skulle jag bli förvånad över att se Dell överlåta denna marknad till ett annat företag. Titta bara på Apple: medan alla PowerMac-datorer som Apples säljer kommer med G5-processorer, använder företaget fortfarande G4s i sina iMac-, eMac- och PowerBook-datorer.

Personligen tror jag att 32-bitars system kommer att finnas med oss ​​under lång tid framöver.

Dölj