De 64-bits vraag

Is een 64-bits computer in uw toekomst?





Met alle hype rond 64-bits processors, ga je er waarschijnlijk van uit dat mijn antwoord een ondubbelzinnig ja zou zijn - en ook vrij snel! Maar zet de marketingophef over chips zoals AMD's Athlon64 opzij; in feite is het hebben van 64 bits veel minder belangrijk dan de computerindustrie zou denken. Inderdaad, tenzij je toevallig een Macintosh-gebruiker bent, zou je misschien nog een decennium lang geen 64-bits computer kopen - als je er ooit een koopt.

Eerst een beetje achtergrond. De processors in de overgrote meerderheid van de huidige desktop- en laptopcomputers zijn 32-bits chips. De meeste zijn gebaseerd op Intel's ongelooflijk succesvolle IA32-architectuur, ook bekend als de x86 (zoals in 286, 386, 486). Intel's Celeron- en Pentium-machines zijn allemaal IA32, net als AMD's Athlon-chips.

Maar ineens hebben 64-bits machines een soort cachet. Sinds twee jaar verkoopt AMD processors die zowel 32-bits als 64-bits code tegelijkertijd kunnen uitvoeren; computers die met deze chips zijn gebouwd, kunnen Linux of een speciale 64-bits versie van Windows XP gebruiken die Microsoft eerder dit jaar uitbracht. Apple levert ondertussen al zijn Power Mac-computers met de G5-microprocessor, een 64-bits brein gemaakt door IBM. En in zekere zin spelen al deze desktopsystemen een inhaalslag: Nintendo maakte de 64-bits overgang in 1996 toen het zijn Nintendo64-gameconsole uitbracht.



Om te begrijpen waarom dit allemaal belangrijk is, moet je eerst begrijpen dat de uitdrukking 32 bits een soort steno is die computerontwerpers gebruiken. Dit nummer verwijst naar twee dingen in de architectuur van de computer. Ten eerste geeft het aan hoeveel bits deze computers gebruiken wanneer ze de locatie in het geheugen specificeren waar een stukje informatie is opgeslagen. Ten tweede geeft het de grootte aan van de registers in de microprocessor die worden gebruikt om wiskunde te doen. Elke bit kan een 1 of een 0 zijn, dus 32 bits kunnen worden gebruikt om 232 of 4.294.967.296 verschillende waarden weer te geven. Het voor de hand liggende verschil tussen 32-bits en 64-bits machines is dat de 64-bits systemen veel grotere machines zijn: ze kunnen meer geheugen aanspreken en ze kunnen met grotere getallen rekenen.

Maar meer betekent niet per se beter - het hangt af van waar u meer van krijgt.

Down Memory Lane



De overgang van 32 bits naar 64 bits is het belangrijkst als het gaat om het vermogen van deze computers om geheugen aan te spreken. Een programma dat op een 32-bits computer draait, kan gemakkelijk 4 gigabyte geheugen aanspreken, 232 is ongeveer 4,3 miljard. Aan de andere kant kan een programma dat op een 64-bits machine draait 264 adresseren - dat is 4 miljard keer 4 miljard bytes, een verbazingwekkend groot aantal. Doe gewoon de cijfers en het is duidelijk dat er veel meer hoofdruimte is op een 64-bits systeem. Maar deze twee feiten zijn eigenlijk verantwoordelijk voor veel verwarring, zoals we zullen zien.

De originele pc van IBM gebruikte de Intel 8088-microprocessor - een grappige kleine chip die vol zat met rare technische compromissen. In wezen was de 8088 een 16-bits processor: hij had 16-bits wiskundige registers, waardoor hij gemakkelijk getallen tussen 0 en 65.535 (of tussen -32.768 en 32.767) en 16-bits adresregisters kon weergeven, gemakkelijk communiceren met 64 kilobyte hoofdgeheugen. Nu was 64K niet genoeg om veel van iets te doen, zelfs niet in 1981 toen de pc voor het eerst werd uitgebracht, dus de 8088 had een set segmentregisters die 4 bits naar links waren verschoven en aan het adresregister werden toegevoegd voordat de geheugenadressen daadwerkelijk werden gelezen of geschreven. Als gevolg hiervan had de 8088 gemakkelijk toegang tot maximaal één megabyte geheugen. Een megabyte was in 1981 veel RAM. Inderdaad, computerontwerpers konden zich destijds niet voorstellen dat een typische thuis- of zakelijke gebruiker zoveel geheugen nodig zou hebben, laat staan ​​dat hij het zich zou kunnen veroorloven, voor vele jaren. Dus de ontwerpers van IBM trokken een lijn over de geheugenkaart van de computer en plaatsten het geheugen voor de videoweergave precies in het midden van de bovenste helft, waardoor de vroege pc's effectief werden beperkt tot niet meer dan 640 kilobytes RAM. Dit was het ontstaan ​​van de 640K-limiet die door de computer van IBM werd opgelegd aan zijn DOS-besturingssysteem.

Een paar jaar later introduceerde Intel zijn volgende microprocessor, de 80286. (De 80186 heeft het nooit echt tot personal computers gemaakt.) De 286 vormde de basis van IBM's PC/AT. Het had een emulatiemodus (de echte modus genoemd) waarmee de 286 dezelfde software kon gebruiken als de 8088, maar het had ook een geavanceerde, beschermde modus waarmee het kon werken met maximaal 16 megabyte RAM. De overgrote meerderheid van deze machines werd in de echte modus gebruikt, zodat ze Microsoft's DOS en alle andere programma's die voor de originele IBM-pc waren geschreven, konden uitvoeren. Inderdaad, de 286 was veel populairder bij het uitvoeren van 8088-software dan de 8088 ooit was, omdat de 286 zoveel sneller was. Als je er meteen aan begint, werden er maar heel weinig 286-chips in hun beschermde modus uitgevoerd.



In 1985 introduceerde Intel de 80386-chip, de eerste 32-bits processor in de x86-familie. Nogmaals, deze microprocessor had een zogenaamde echte modus, zodat hij DOS en de rest van 8088-software kon draaien. Deze machines konden rond de originele 8088 cirkelen - niet omdat het 32-bits machines waren, maar omdat ze hogere kloksnelheden en een geavanceerder intern ontwerp hadden. Er waren ook een aantal bedrijven die DOS-extenders verkochten waarmee programma's die onder DOS werden geladen, konden profiteren van de volledige 32-bits adresruimte. Deze extenders zetten de computer om in 32-bits modus voor wiskunde, maar zetten de machine terug naar 16-bits modus wanneer het programma toegang moest krijgen tot de harde schijf van de computer. Niettemin waren 32-bits programma's die op deze 32-bits processors draaiden de uitzondering, niet de regel.

Pas toen de 32-bits machines in het veld het aantal 16-bits aanzienlijk overtroffen, begon Microsoft zijn eerste echte 32-bits besturingssysteem, Windows 95, uit te brengen. Tegen die tijd had Intel nog twee generaties x86-gebaseerde machines - de 80486 en de Pentium. Ja, Microsoft had een 32-bits besturingssysteem kunnen leveren jaren voordat Windows 95 werd uitgebracht. Maar dit zou waarschijnlijk een vergissing zijn geweest: waarom een ​​besturingssysteem verkopen dat niet op de meeste pc's op de markt kan worden uitgevoerd?

Al deze geschiedenis is plotseling weer relevant als we nadenken over de volgende grote sprong in pc-architectuur: de verschuiving van 32-bits naar 64-bits computing. Maar hoewel de uitbetaling van een 16-bits adresruimte (of 20-bits, als je de gesegmenteerde architectuur van de 8088 in overweging neemt) naar 32 bits enorm was, zal de overgang van 32 bits naar 64 bits door de meeste computergebruikers nauwelijks worden opgemerkt. De reden is dat 32 bits eigenlijk groot genoeg is om de overgrote meerderheid van computertaken op te lossen, niet alleen die van vandaag, maar ook die van morgen.



De overstap van 32 bits naar 64 zal waarschijnlijk niet dezelfde soort kwantumsprong in snelheid of capaciteiten opleveren als die we hebben gekregen van 16 bits naar 32. Ja, 64 bits adres is echt gigantisch, maar 32 bits is niets om naar te niezen.

Tegenwoordig zijn er maar weinig applicaties die echt meer dan 4 gigabyte geheugen nodig hebben. Als u bezig bent met tekstverwerking, spreadsheets, e-mail en surfen op het web, zal 32 bits voldoende adresruimte bieden voor de denkbare toekomst. Mijn Windows-desktopcomputer is een geheugen-zware kopie van Internet Explorer die routinematig opzwelt tot 64 megabyte. Maar dat is nog steeds een vierenzestigste van de 4 gigabyte geheugenkaart van de machine. Ik kan me niet voorstellen dat ik een webbrowser zou kunnen gebruiken die een geheugenkaart van 4 gigabyte zou vereisen: het zou bijna 10 uur duren om zoveel informatie over mijn DSL-lijn te downloaden!

Je zou kunnen denken dat multitasking met andere, even grote applicaties een steeds grotere geheugendruk zou veroorzaken, tot het punt waarop men doet zich zorgen maken over het gebruik van adresruimte. Maar dat is niet het geval. Windows, Unix en andere moderne besturingssystemen gebruiken een techniek die virtueel geheugen wordt genoemd om elk programma zijn eigen geïsoleerde geheugenmap te geven. Op een 32-bits computer betekent dit dat elk lopend programma zijn eigen 4 gigabyte virtueel geheugen krijgt om mee te spelen. Dus hoewel een enkel exemplaar van een actief programma niet toegang heeft tot meer dan 4 gigabyte, zou een 32-bits machine met Windows XP met 10 of 20 gigabyte geheugen geen moeite hebben om dat geheugen te delen tussen een opgeblazen browser, een opgeblazen exemplaar van Word 2003, en een opgeblazen exemplaar van Access.

Waar die 64-bits adresruimte het grote verschil maakt, is wanneer een enkel programma toegang moet hebben tot meer dan 4 gigabyte geheugen tegelijk. Als u bijvoorbeeld een datawarehouse beheert voor een multinationale onderneming met 10 terabyte aan online opslag, kan uw databaseserver er veel baat bij hebben als er 10 of 20 gigabyte aan indexbestanden in het geheugen wordt opgeslagen. Een grootschalige simulatie zou evenzeer kunnen profiteren door veel RAM ter beschikking te hebben voor zaken als het modelleren van het weer voor overmorgen.

Met bedrijven als Dell die thuiscomputers leveren met 512 megabyte RAM, en Windows XP-computers die routinematig 1,5 gigabyte geheugen gebruiken om al hun programma's op te slaan, zullen de marketeers die 64-bit computing pushen zeggen dat je een 64-bit machine nodig hebt om de snel naderende limiet van 4 gigabyte te doorbreken. Geloof het niet. Dell verkoopt zelfs al 32-bits computers met 8, 16 en 32 gigabyte RAM. De marketeers willen dat u 64-bits machines koopt omdat deze systemen meer kosten.

De andere manier waarop 64-bits machines de huidige 32-bits systemen overtreffen, is als het gaat om wiskunde. Terwijl de huidige 32-bits machines processors hebben die elk geheel getal tussen 0 en 4.294.967.295 kunnen vertegenwoordigen (dat is 232-1), kan een 64-bits machine gehele getallen tussen 0 en 18.446.744.073.709.551.615 (264-1) vertegenwoordigen.

Nogmaals, het kan een enorm voordeel zijn om met deze enorme aantallen in een enkele instructie te kunnen rekenen in een klein aantal wetenschappelijke toepassingen. Maar het blijkt dat voor de meeste dagelijkse kantoortaken 64-bit integer wiskunde niet zo handig is. Om te beginnen is dat omdat we al machines hebben die 64-bit kunnen: de huidige machines doen het gewoon met speciale drijvende-kommaverwerkingseenheden, of ze doen het met meerdere 32-bits instructies. Voor de meeste bewerkingen is speciale 64-bits wiskundige hardware eenvoudigweg niet nodig.

U hoeft mij hierin niet op mijn woord te geloven. Kijk maar naar de geschiedenis van andere 64-bits architecturen. Hoewel 64 bits nieuw is in de wereld van x86, maakten andere microprocessors in de jaren negentig de overstap naar 64 bits. De Alpha, MIPS64 en Sparc64 zijn allemaal 64-bits machines. Maar de meeste programma's die op deze computers draaien, negeren in feite de bovenste 32-bits van elk getal, omdat die cijfers altijd 0 zijn.

De echte 64-bits uitbetaling: nieuwere ontwerpen

Al deze argumenten tegen 64-bits machines smelten samen met het houtwerk, maar wanneer u voor de nieuwe G5-computer van Apple gaat zitten: of u nu video bewerkt of gewoon op internet surft, de machine voelt aanzienlijk sneller aan dan zijn 32-bits computer G4 neven. Dus wat geeft?

Met de opmerkelijke uitzondering van Intel's Itanium-processor, draaien de 64-bits machines van vandaag over het algemeen 32-bits code sneller dan hun 32-bits neven en nichten om dezelfde reden dat de 32-bits Intel 80386 16-bits code sneller uitvoerde dan de 8088 en de 80286 De reden is dat de 64-bits CPU's gewoon modernere apparaten zijn. Deze chips zijn gemaakt met geavanceerdere siliciumprocessen, hebben hogere kloksnelheden en bevatten meer transistors. AMD's Athlon64 en IBM's G5 hebben niet alleen bredere registers: ze hebben ook meer functionele eenheden in hun siliciumbrein. Deze chips doen het beter in zaken als het tegelijkertijd uitvoeren van meerdere instructies, out-of-order uitvoering en vertakkingsvoorspelling. Die 64-bits PowerMac G5 die in de Apple Store draait, draait grotendeels op 32-bits code. De indrukwekkende snelheid van de machine komt van de combinatie van twee processors, de hogere kloksnelheden, een grotere cache en een betere geheugenbus.

Ja, AMD en IBM hadden diezelfde technologie in een nieuw 32-bits ontwerp kunnen stoppen. Maar tegenwoordig kost het ontwerpen van een nieuwe chip miljarden dollars. Een 64-bits processor kan een hogere prijs vragen dan een 32-bits CPU, dus het is in het belang van deze bedrijven om hun nieuwste en beste technologie in hun 64-bits producten te gebruiken.

Vooruitblikkend, zal 64-bits computergebruik echt aanslaan omdat de 64-bits machines toevallig beter werken met de 32-bits code van vandaag dan de huidige 32-bits processors. Maar de markt zou gemakkelijk in een andere richting kunnen evolueren. Die extra 32 bits verbruiken veel stroom, dus bedrijven die CPU's voor laptops en handhelds bouwen, kunnen de trucs die zijn ontwikkeld voor 64-bits machines eenvoudig in hun 32-bits apparaten vouwen.

Hetzelfde is gebeurd in gameconsoles. Hoewel er een paar jaar geleden veel opwinding was toen Nintendo besloot de 64-bits R4300i-processor te gebruiken voor zijn Nintendo 64-systeem, profiteerden videogamespelers niet echt van de extra 32 bits adres of wiskunde. De R4300i was destijds een snelle chip omdat hij een heleboel andere geavanceerde technieken implementeerde om de uitvoering van programma's te versnellen. Het had hetzelfde prestatieniveau kunnen bieden als die trucs waren toegepast op een 32-bits processor. Het waren de trucs die de snelheid brachten, niet de bits.

128-bits gebonden?

Na de sprong van 8 naar 16 bits, toen 16 naar 32 en nu 32 naar 64, is het niet meer dan normaal om te denken dat we ergens in de verre toekomst de overgang zullen maken van 64-bits naar 128-bits systemen. Houd je adem niet in.

Het belangrijkste om te onthouden is dat bits exponentieel zijn. Een 32-bits systeem kan adresseren: 65 duizend keer zoveel geheugen als een 16-bits systeem, terwijl een 64-bits systeem een ​​theoretische geheugenadresruimte heeft 4 miljard keer groter dan die van een 32-bits systeem. Je zou eigenlijk een enkel geheugensysteem kunnen bouwen dat 264 bytes aan opslagruimte zou bevatten met de hardware van vandaag, maar je zou meer dan 200 miljoen harde schijven moeten gebruiken, elk met 256 gigabyte aan informatie. Dat is meer opslagruimte dan in 2003 door de hele wereld van harde schijven werd geleverd. Dus hoewel het denkbaar is dat u vandaag een geheugensysteem met 264 bytes aan opslagruimte zou kunnen bouwen, zou u waarschijnlijk elke computer ter wereld moeten gebruiken die met internet is verbonden .

Hoewel het mogelijk is om je een toekomst voor te stellen waarin computers toegang zullen krijgen tot 264-byte databases, is het moeilijk om een ​​enkel probleem voor te stellen dat zou vereisen dat een programma zoveel geheugen beschikbaar heeft in een enkele adresruimte. Een reden waarom zo'n ongelooflijk groot systeem niet logisch is, is dat je zo'n systeem niet zou bouwen met een enkele processor en een enkele uniforme adresruimte: je zou in plaats daarvan miljoenen of miljarden verwerkingselementen gebruiken, allemaal met overlappend geheugen en verantwoordelijkheid. Op die manier zouden de andere systemen het naadloos overnemen als een processor of geheugenblok uitvalt.

Gezien dergelijke argumenten is het vrij onredelijk om je voor te stellen dat je 2128 bits aan opslagruimte nodig zou hebben - niet tijdens ons leven, niet in iemands leven.

Aan de andere kant zou ik het helemaal bij het verkeerde eind kunnen hebben: 64 bits zou precies geschikt kunnen zijn voor full-body virtual reality met mind-meets-mind-morphing-mogelijkheden. Of, waarschijnlijker, bedrijven zoals Dell zouden ervoor kunnen kiezen om het voorbeeld van Apple te volgen en te stoppen met de verkoop van low-end machines met 32-bits processors, in plaats daarvan te vertrouwen op de marketinghype van 64-bits machines om de hogere winstmarges te rechtvaardigen.

Maar onthoud, er is altijd ruimte aan de onderkant. En aangezien 32-bits machines waarschijnlijk nog minstens tien jaar nuttig zullen zijn, zo niet langer, zou het me verbazen als Dell deze markt aan een ander bedrijf zou afstaan. Kijk maar naar Apple: hoewel alle PowerMac-desktopmachines die Apples verkoopt, zijn uitgerust met G5-processors, gebruikt het bedrijf nog steeds G4's in zijn iMac-, eMac- en PowerBook-computers.

Persoonlijk denk ik dat 32-bits systemen nog lang bij ons zullen zijn.

zich verstoppen