De term 32-bit of 64-bit verwijst naar het aantal bits dat de general-purpose registers (gpr's) van een processor kunnen bevatten. Iedere byte aan ram die een computer bevat heeft een adres in een gpr. Ieder adres is een uniek getal dat de byte identificeert. Een 32-bit processor kan werken met getallen tot 232, ongeveer 4.3 miljard. Dat betekent praktisch dat zo'n chip tot maximaal 4 GB aan intern geheugen kan gebruiken. Een 64-bit processor kan daarentegen theoretisch tot 18 miljoen terabytes aan. Dat is best een groot verschil.
De afgelopen tien jaar heeft voornamelijk de servermarkt geprofiteerd van 64-bit processors. Sun Microsystems en Digital Equipment Corporation hebben eind vorige eeuw de eerste geproduceerd. Macintosh en Nintendo richtten zich vlak daarna als eerste op de consument. Pas vorig jaar werd door producten van AMD en IBM 64-bit de consumentenmarkt echt opengebroken. Deze late aanval op de thuisgebruiker heeft alles te maken met een kip-en-ei situatie. Er was geen 64-bits consumenten software omdat er geen 64-bits hardware was, en geen 64-bit hardware omdat er geen software was. Dat gaat dus nu veranderen.
Voordat het gejuich kan losbarsten, zijn er een paar dingen die u moet weten. De overgang van 32-bits naar 64-bits chips zal ons helaas niet in de koude kleren gaan zitten.
Het is niet zo eenvoudig om bestaande software van een 32-bits naar een 64-bits omgeving over te plaatsen. Het is geen kwestie van copy-paste. In ieder geval moet de applicatie opnieuw worden gecompileerd met behulp van de nieuwe 64-bit libraries. Als het echt tegenzit, moeten grote delen van de software worden herschreven. Sun Microsystems claimt dat Solaris in 64-bits compatible is met 32-bit applicaties, net als Microsoft beweert over Windows XP 64 Bit Edition; of dit in de praktijk ook zal blijken, is nog de vraag. Het ergste is, dat als het allemaal gelukt is, het niet wil zeggen dat de toepassing ook sneller is geworden.
Veel mensen denken namelijk dat een 64-bits processor twee keer zo snel is als een 32-bits. Dat is niet zo. Als de clock-snelheid van een 32-bits processor even groot is als die van een 64-bit, en ze hebben hetzelfde RAM geheugen, verwerken de beide chips maximaal evenveel data per seconde.
Het kan zelfs zo zijn dat sommige toepassingen langzamer worden. Toegekende "adressen" in een 64-bit omgeving zijn twee keer zo lang als in een 32-bit machine. Dit betekent dat er meer cache-geheugen wordt bezet. Het uitlezen van de cache gaat dan vaker mis, wat vertraging oplevert.
Het antwoord is eigenlijk simpel. De nieuwe processors maken het mogelijk om grotere getallen in berekeningen te gebruiken. Een traditionele chipset laat tot 232 toe, maar tel er 1 bij op en het systeem laat het afweten. Programmeurs hebben hier foefjes voor, maar dat leidt dan tot het gebruiken van twee 32-bits kanalen tegelijk en dus tot een vertraging. Het versleutelen van data is meestal ook gebaseerd op vermenigvuldigingen van hele grote getallen: hoe groter de gebruikte getallen, hoe beter de beveiliging.
Belangrijker is nog dat de hoeveelheid RAM enorm vergroot kan worden. Hiermee kunnen grote databases worden gecached en worden applicaties ineens veel sneller. De grafische wereld zit ook met smart te wachten op meer intern geheugen. De groeiende markt van videospellen gaat enorm profiteren van de zwaardere hardware om nog realistischer beelden te kunnen gebruiken.
Serieuzer nog is het gebruik van extra geheugen in CAD programma's of 3D rendering. Het modelleren van ingewikkelde processen drijft op zowel grote getallen als veel intern geheugen. Voor wetenschappelijke toepassingen in bijvoorbeeld seismologie en meteorologie is 64-bit dan ook een uitkomst.
In sommige branches kan de 64-bits revolutie een enorme sprong voorwaarts zijn, voor andere is het hooguit een vervelende klus om alle toepassingen aan te passen. Heeft u een bedrijf dat steunt op een groot legacy systeem, begint u dan maar vast met de voorbereidingen. Het Y2K38 probleem komt er aan.
Het Y2K probleem viel mee, maar het volgende rampenscenario staat alweer voor de deur. Veel toepassingen gebruiken het data type t_time onder Unix. Dat data type telt het aantal seconden na 1 januari 1970. Een 32-bits systeem kan dan ongeveer 68 jaar tellen voordat de bits op zijn. Op 19 januari 2038 zullen dus veel bedrijfskritische systemen er mee stoppen. Een 64-bits systeem brengt uitkomst, want die kan tellen tot 292 miljard jaar na Christus. Wie dan leeft, wie dan zorgt.
Sander Nagtegaal