De Athlon64 is een 64-bit processor. Het feit dat we hier spreken over een "extensie" ligt aan de gebruikte instructieset; maar de processor is evenzeer een 64-bit processor als bv. de Itanium.
Iedere processor werkt volgens een bepaald instructieset. De Athlon64 werkt volgens de
x86 instructieset (net als de Pentium4). x86 is een instructieset die voor het eerst in de 80286-reeks van processoren te voorschijn kwam: toen ging het om een 16-bit instructieset.
Met de komst van de 80386, werd deze set aangepast naar 32-bit (die aangepaste versie staat tegenwoordig bekend als IA32). De AMD64 instructieset is, op dezelfde manier, een aangepaste versie van de x86 instructieset naar 64-bit.
Of het nu om een uitbreiding gaat of niet maakt niet veel uit: een processor met AMD64 ondersteuning voldoet aan de 2 voorwaarden van 64-bit computing:
- De adresseerbare ruimte is 64-bit groot (momenteel wordt deze om praktische redenen beperkt tot 48-bit (dacht ik), maar dit doet nu niet ter zake).
- De eenheid van verwerking (we noemen dit de "Word"-lengte) is 64-bit groot (of een veelvoud daarvan). Dit betekent dat alle instructies in brokken van 64-bit kunnen uitgevoerd worden.
Een AMD64 processor kan in verschillende modi werken:
- 64-bit native met 64-bit applicaties: dit is de mode waarvoor de processor in eerste instantie ontwikkeld werd. Hiervoor moet het OS, de drivers en de applicaties in 64-bit mode werken. Dit zal bv. het geval zijn wanneer je een Athlon64 op WinXP-64 draait met de 64-bit versie van SQL Server.
- 64-bit native met 32-bit applicaties: dit laat toe oudere (32-bit) applicaties te ondersteunen in een 64-bit omgeving: OS en drivers werken dan 64-bit, maar applicatie draait in 32-bit mode. In werkelijkheid gaat het hier om een "emulatie"-mode. Emulatie gaat steeds gepaard met prestatie-verlies (in deze mode zal de applicatie dus langzamer draaien dan wanneer de 32-bit applicatie draait op een 32-bit native systeem); door andere architecturale verbeteringen zal dat verlies echter amper merkbaar zijn.
- 32-bit native met 32-bit applicaties: dit is de mode waarin de meeste processoren tegenwoordig draaien: OS, drivers en applicaties werken dan allen in 32-bit mode.
- 32-bit native met 16-bit applicaties: dit is alweer een emulatie-mode om oudere applicaties te kunnen blijven ondersteunen. OS en drivers werken dan in 32-bit mode, maar applicaties werken in 16-bit mode.
Eigenlijk is de "extensie" eerder het feit dat de AMD64-instructieset ook 32-bit computing ondersteunt terwijl die in native 64-bit mode werkt (de 2de mode uit bovenstaande lijst): dat is immers geen vereiste voor 64-bit computing.
De Pentium4 6XX ondersteunt diezelfde AMD64 instructieset en is dus, wat dat betreft, volledig analoog aan de Athlon64 (de P4 6XX ondersteunt dus dezelfde 4 modi als de Athlon64).
Naast 64-bit computing brengt AMD64 andere verbeteringen zoals de verdubbeling van het aantal "general purpose" registers, de verdubbeling van de grootte van deze registers, ...
Intel heeft naast dit alles nog een andere 64-bit instructieset die we IA64 noemen. IA64 wordt, zoals anderen hierboven al aangehaald, ondersteund door de
Itanium-reeks van processoren bij Intel. Het gaat hier echter om een volledig verschillende instructieset (die dus niet gebaseerd is op de x86 instructieset). Daardoor kunnen Itanium-processoren ook niet overweg met applicaties, OS'en of drivers die geschreven zijn voor de x86 instructieset.
Naast AMD64 en IA64 bestaan er nog andere 64-bit instructiesets. Daaronder kan je o.m. ook
IBM's PowerPC architectuur en
Sun's SPARC rekenen.