211service.com
64-bit spørgsmålet
Er en 64-bit computer i din fremtid?
Med al den hype omkring 64-bit processorer, antager du sikkert, at mit svar ville være et utvetydigt ja - og ret meget snart også! Men læg markedsføringsblasen om chips som AMDs Athlon64 til side; faktisk betyder det en hel del mindre at have 64 bit, end computerindustrien ville have dig til at tro. Medmindre du tilfældigvis er en Macintosh-bruger, vil du måske ikke finde på at købe en 64-bit computer i endnu et årti - hvis du faktisk nogensinde køber en overhovedet.
Først lidt baggrund. Processorerne i langt de fleste af nutidens stationære og bærbare computere er 32-bit chips. De fleste af dem er baseret på Intels utroligt succesrige IA32-arkitektur, også kendt som x86 (som i 286, 386, 486). Intels Celeron- og Pentium-maskiner er alle IA32, ligesom AMDs Athlon-chips.
Men pludselig har 64-bit maskiner en slags cachet. I to år har AMD solgt processorer, der kan køre både 32-bit og 64-bit kode på samme tid; computere bygget med disse chips kan køre enten Linux eller en speciel 64-bit version af Windows XP, som Microsoft udgav tidligere i år. Apple sender i mellemtiden alle sine Power Mac-computere med G5-mikroprocessoren, en 64-bit hjerne skabt af IBM. Og på en måde spiller alle disse desktop-systemer indhentning: Nintendo foretog 64-bit overgangen i 1996, da den sendte sin Nintendo64-spillekonsol.
For at forstå, hvorfor alt dette betyder noget, skal du først forstå, at sætningen 32 bit er en slags stenografi, som computerdesignere bruger. Dette tal henviser til to ting inde i computerens arkitektur. For det første angiver det, hvor mange bits disse computere bruger, når de angiver den placering i hukommelsen, hvor et stykke information er gemt. For det andet angiver det størrelsen af registrene inde i mikroprocessoren, der bruges til at lave matematik. Hver bit kan være 1 eller 0, så 32 bit kan bruges til at repræsentere 232 eller 4.294.967.296 forskellige værdier. Således er den åbenlyse forskel mellem 32-bit maskiner og 64-bit maskiner, at 64-bit systemer er meget større maskiner: de kan adressere mere hukommelse, og de kan regne med større tal.
Men mere betyder ikke nødvendigvis bedre - det afhænger af, hvad du får mere af.
Down Memory Lane
Skiftet fra 32 bit til 64 bit betyder mest, når det kommer til disse computeres evne til at adressere hukommelse. Et program, der kører på en 32-bit computer, kan nemt adressere 4 gigabyte hukommelses-genkaldelse, 232 er omkring 4,3 milliarder. På den anden side kan et program, der kører på en 64-bit maskine, adressere 264 - det er 4 milliarder gange 4 milliarder bytes, et forbløffende stort antal. Bare gør tallene, og det er klart, at der er meget mere frihøjde på et 64-bit system. Men disse to fakta er faktisk ansvarlige for en masse forvirring, som vi vil se.
IBMs originale personlige computer brugte Intel 8088-mikroprocessoren - en sjov lille chip, der var fyldt med underlige tekniske kompromiser. I sit hjerte var 8088 en 16-bit processor: den havde 16-bit matematiske registre, så den nemt kunne repræsentere tal mellem 0 og 65.535 (eller mellem -32.768 og 32.767) og 16-bit adresseregistre, hvilket gjorde det muligt for den at kommunikerer nemt med 64 kilobyte hovedhukommelse. Nu var 64K ikke nok til at gøre meget af noget, selv i 1981, da pc'en første gang blev leveret, så 8088'eren havde et sæt segmentregistre, der blev flyttet til venstre 4 bit og tilføjet adresseregisteret, før hukommelsesadresserne faktisk blev læst eller skrevet. Som et resultat kunne 8088 nemt få adgang til op til en megabyte hukommelse. En megabyte var meget RAM tilbage i 1981. Computerdesignere dengang kunne faktisk ikke forestille sig, at en typisk hjemme- eller erhvervsbruger ville have brug for så meget hukommelse, endsige have råd til det, i mange år fremover. Så IBMs designere tegnede en streg på tværs af computerens hukommelseskort og placerede hukommelsen til videoskærmen lige i midten af den øverste halvdel, hvilket effektivt begrænsede de tidlige pc'er til ikke mere end 640 kilobyte RAM. Dette var tilblivelsen af grænsen på 640K, som blev pålagt af IBMs computer på dets DOS-operativsystem.
Et par år senere introducerede Intel sin næste mikroprocessor, 80286. (80186'eren kom aldrig rigtig ind i personlige computere.) 286'eren var grundlaget for IBM's PC/AT. Den havde en emuleringstilstand (kaldet ægte tilstand), der lod 286 køre den samme software som 8088, men den havde også en avanceret, beskyttet tilstand, der lod den køre med op til 16 megabyte RAM. Langt de fleste af disse maskiner blev betjent i ægte tilstand, så de kunne køre Microsofts DOS og alle de andre programmer, der var skrevet til den originale IBM PC. Faktisk var 286'eren langt mere populær til at køre 8088-software end 8088'eren nogensinde har været, fordi 286'eren var så meget hurtigere. Når du kommer helt ned til det, blev meget få 286 chips faktisk kørt i deres beskyttede tilstand.
I 1985 introducerede Intel 80386-chippen - den første 32-bit-processor i x86-familien. Igen havde denne mikroprocessor en såkaldt real mode, så den kunne køre DOS og resten af 8088 softwarebasen. Disse maskiner kunne cirkle rundt om den originale 8088 - ikke fordi de var 32-bit maskiner, men fordi de havde hurtigere clock rates og et mere sofistikeret internt design. Der var også en række virksomheder, der solgte DOS-forlængere, der lod programmer indlæst under DOS udnytte det fulde 32-bit adresserum. Disse forlængere vendte computeren til 32-bit-tilstand til matematik, men returnerede maskinen til 16-bit-tilstand, når programmet skulle have adgang til computerens harddisk. Ikke desto mindre var 32-bit programmer, der kører på disse 32-bit processorer, undtagelsen, ikke reglen.
Det var først, da 32-bit-maskinerne på området var langt større end 16-bit-maskinerne, at Microsoft begyndte at sende sit første rigtige 32-bit-operativsystem - Windows 95. På det tidspunkt havde Intel bragt yderligere to generationer af x86-baserede maskiner - 80486 og Pentium. Ja, Microsoft kunne have leveret et 32-bit operativsystem år før Windows 95 blev sendt. Men at gøre det ville sandsynligvis have været en fejl: hvorfor sælge et operativsystem, der ikke kører på de fleste pc'er på markedet?
Hele denne historie er pludselig relevant igen, da vi overvejer det næste store spring i pc-arkitekturen - skiftet fra 32-bit til 64-bit computere. Men mens udbyttet fra et 16-bit adresserum (eller 20-bit, hvis man betragter 8088's segmenterede arkitektur) til 32 bit var enormt, vil bevægelsen fra 32 bit til 64 bit knap blive bemærket af de fleste computerbrugere. Årsagen er, at 32 bit faktisk er stort nok til at løse langt de fleste computeropgaver - ikke kun dagens, men også morgendagens.
Flytningen fra 32 bit til 64 vil næppe bringe samme slags kvantespring i hastighed eller kapacitet, som vi fik flyttet fra 16 bit til 32. Ja, 64 bit adresse er virkelig overvældende, men 32 bit er ikke noget at nyse af.
I dag er der få applikationer, der virkelig har brug for mere end 4 gigabyte hukommelse. Hvis det du laver er tekstbehandling, regneark, e-mail og web-browsing, vil 32 bit give nok adresseplads til den tænkelige fremtid. Min stationære Windows-computer er en hukommelsessvin, dens kopi af Internet Explorer blæser rutinemæssigt op til 64 megabyte. Men det er stadig en fireogtres af størrelsen på maskinens 4 gigabyte hukommelseskort. Jeg kan ikke forestille mig, at jeg kunne køre en webbrowser, der ville kræve et hukommelseskort på 4 gigabyte: det ville tage næsten 10 timer bare at downloade så meget information over min DSL-linje!
Du tror måske, at multitasking med andre, tilsvarende overdimensionerede applikationer ville forårsage et stadigt stigende hukommelsestryk, til det punkt, hvor man gør blive bekymret over brugen af adresseplads. Men det er ikke tilfældet. Windows, Unix og andre moderne operativsystemer bruger en teknik kaldet virtuel hukommelse til at give hvert program sit eget isolerede hukommelseskort. På en 32-bit computer betyder det, at hvert kørende program får sine egne 4 gigabyte virtuel hukommelse at lege med. Så mens en enkelt forekomst af et kørende program ikke kan få adgang til mere end 4 gigabyte, ville en 32-bit maskine, der kører Windows XP med 10 eller 20 gigabyte hukommelse, ikke have problemer med at dele denne hukommelse mellem en oppustet browser, en oppustet kopi af Word 2003, og en oppustet kopi af Access.
Hvor det 64-bit adresserum gør den store forskel, er når et enkelt program skal have adgang til mere end 4 gigabyte hukommelse på én gang. For eksempel, hvis du kører et datavarehus for et multinationalt selskab med 10 terabyte online-lagerplads, kan din databaseserver have en stor fordel ved at have 10 eller 20 gigabyte indeksfiler gemt i hukommelsen. En simulering i stor skala kunne på samme måde drage fordel af at have masser af RAM til rådighed til at gøre ting som at modellere vejret til i overmorgen.
Med virksomheder som Dell, der sender hjemmecomputere med 512 megabyte RAM, og Windows XP-computere, der rutinemæssigt bruger 1,5 gigabyte hukommelse til at indeholde alle deres programmer, vil marketingfolk, der presser 64-bit computere, sige, at du har brug for en 64-bit maskine at bryde igennem den hurtigt nærmer sig grænsen på 4 gigabyte. tro det ikke. Faktisk sælger Dell allerede 32-bit computere med 8, 16 og 32 gigabyte RAM. Marketingfolk vil have dig til at købe 64-bit maskiner, fordi disse systemer koster mere.
Den anden måde, hvorpå 64-bit-maskiner overgår nutidens 32-bit-systemer, er, når det kommer til at lave matematik. Mens nutidens 32-bit maskiner har processorer, der kan repræsentere ethvert heltal mellem 0 og 4.294.967.295 (det er 232-1), kan en 64-bit maskine repræsentere heltal mellem 0 og 18.446.744.073.709.551.615 (264.615).
Endnu en gang kan det være en enorm fordel i et lille antal videnskabelige applikationer at kunne lave matematik med disse enorme tal i en enkelt instruktion. Men det viser sig, at for de fleste daglige kontoropgaver er 64-bit heltal matematik ikke så nyttigt. For det første er det, fordi vi allerede har maskiner, der kan lave 64-bit: Nutidens maskiner gør det bare med floating point-behandlingsenheder til specielle formål, eller også gør de det med flere 32-bit instruktioner. Til de fleste operationer er speciel 64-bit matematisk hardware simpelthen ikke nødvendig.
Du behøver ikke tage mit ord på dette. Bare se på historien om andre 64-bit arkitekturer. Mens 64 bit er nyt for x86-verdenen, foretog andre mikroprocessorer overgangen til 64 bit tilbage i 1990'erne. Alpha, MIPS64 og Sparc64 er alle 64-bit maskiner. Alligevel ignorerer de fleste af de programmer, der kører på disse computere, effektivt de øverste 32-bits af hvert tal - det er fordi disse cifre uvægerligt er 0.
Den rigtige 64-bit udbetaling: Nyere design
Alle disse argumenter mod 64-bit maskiner smelter dog ind i træværket, når du sætter dig foran Apples nye G5-computer: uanset om du redigerer video eller blot surfer på nettet, føles maskinen dramatisk hurtigere end den er 32-bit G4 fætre. Så hvad giver?
Med den bemærkelsesværdige undtagelse af Intels Itanium-processor kører nutidens 64-bit maskiner generelt 32-bit kode hurtigere end deres 32-bit fætre af samme grund, som 32-bit Intel 80386 kørte 16-bit kode hurtigere end 8088 og 80286 Årsagen er, at 64-bit CPU'erne simpelthen er mere moderne enheder. Disse chips er lavet med mere avancerede siliciumprocesser, de har højere klokfrekvenser, og de pakker flere transistorer. AMD's Athlon64 og IBM's G5 har ikke bare bredere registre: de har også mere funktionelle enheder inde i deres siliciumhjerner. Disse chips gør et bedre stykke arbejde med ting som at udføre flere instruktioner på samme tid, eksekvering i uorden og grenforudsigelse. Den 64-bit PowerMac G5, der kører i Apple Store, kører stort set 32-bit kode. Maskinens imponerende hastighed kommer fra kombinationen af to processorer, de hurtigere clockfrekvenser, en større cache og en bedre hukommelsesbus.
Ja, AMD og IBM kunne have lagt den samme teknologi ind i et nyt 32-bit design. Men i disse dage koster det milliarder af dollars at designe en ny chip. En 64-bit processor kan have en højere pris end en 32-bit CPU, så det er i disse virksomheders bedste interesse at sætte deres nyeste og bedste teknologi ind i deres 64-bit produkter.
Når vi ser fremad, vil 64-bit-databehandling virkelig fange, fordi 64-bit-maskinerne tilfældigvis vil gøre et bedre stykke arbejde med at køre nutidens 32-bit-kode end nutidens 32-bit-processorer. Men markedet kunne sagtens udvikle sig i en anden retning. De ekstra 32 bits bruger meget strøm, så virksomheder, der bygger CPU'er til bærbare og håndholdte computere, kan simpelthen folde de tricks, der er udviklet til 64-bit maskiner, ind i deres 32-bit enheder.
Det samme er sket i spilkonsoller. Selvom der var meget spænding for et par år siden, da Nintendo besluttede at bruge 64-bit R4300i-processoren til sit Nintendo 64-system, havde videospilspillere ikke rigtig godt af de ekstra 32 bits adresse eller matematik. R4300i var en hurtig chip på det tidspunkt, fordi den implementerede en masse andre state-of-the-art teknikker til at fremskynde programudførelse. Det kunne have givet det samme niveau af ydeevne, hvis disse tricks var blevet anvendt på en 32-bit processor. Det var trickene, der bragte farten, ikke bitserne.
128-bit bundet?
Efter at have gennemlevet springet fra 8 til 16 bit, derefter 16 til 32 og nu 32 til 64, er det kun naturligt at tro, at vi engang i en fjern fremtid vil foretage overgangen fra 64-bit til 128-bit systemer. Hold ikke vejret.
Det vigtige at huske her er, at bits er eksponentielle. Et 32-bit system kan adressere 65 tusind gange så meget hukommelse som et 16-bit system, mens et 64-bit system har et teoretisk hukommelsesadresserum 4 mia gange større end for et 32-bit system. Du kunne faktisk bygge et enkelt hukommelsessystem, der ville rumme 264 bytes lagerplads med nutidens hardware - men du skal bruge mere end 200 millioner harddiske, hver med 256 gigabyte information. Det er mere lagerplads, end der blev leveret af hele verdens harddiskindustri i 2003. Så selvom det er tænkeligt, at du kunne bygge et hukommelsessystem med 264 bytes lager i dag, ville du sandsynligvis skulle bruge alle computere i verden, der er forbundet til internettet .
Selvom det er muligt at forestille sig en fremtid, hvor computere vil få adgang til 264-byte databaser, er det svært at forestille sig et enkelt problem, der ville kræve, at et program har så meget hukommelse tilgængelig i et enkelt adresserum. En grund til, at et så utroligt stort system ikke giver mening, er, at du ikke ville bygge sådan et system med en enkelt processor og et enkelt samlet adresserum: du ville i stedet bruge millioner eller milliarder af behandlingselementer, alle med overlappende hukommelse og ansvar. På den måde, hvis en processor eller blok hukommelse fejlede, ville de andre systemer overtage problemfrit.
Givet sådanne argumenter er det ret urimeligt at forestille sig, at du ville have brug for 2128 bits lagerplads - ikke i vores levetid, ikke i nogens levetid.
På den anden side kan jeg tage helt fejl om alt dette: 64 bit kunne være lige noget for at lave virtuel virkelighed i hele kroppen med sind-møder-sind-morphing-kapaciteter. Eller mere sandsynligt vil virksomheder som Dell måske vælge at følge Apples spor og stoppe med at sælge avancerede maskiner med 32-bit processorer, i stedet for at stole på markedsføringshypen med 64-bit maskiner for at retfærdiggøre de højere fortjenstmargener.
Men husk, der er altid plads i bunden. Og da 32-bit maskiner sandsynligvis vil være nyttige i mindst et årti fremover, hvis ikke længere, ville jeg blive overrasket over at se Dell afstå dette marked til et andet firma. Se bare på Apple: Mens alle de PowerMac-stationære maskiner, som Apples sælger, kommer med G5-processorer, bruger virksomheden stadig G4'er i sine iMac-, eMac- og PowerBook-computere.
Personligt tror jeg, at 32-bit systemer vil være med os i lang tid fremover.