|
64-bit: perché?
Il bit è l'"unità atomica" usata in campo digitale; esso è legato
completamente ad una aritmetica binaria perché può assumere due soli
stati: "0" oppure "1". Le possibili combinazioni che vengono fuori da queste
affermazioni sono 2 ^ n con n che rappresenta il numero di bit
disponibili. Ad esempio se si hanno a disposizione 2 soli bit le combinazioni
sono 4 (00, 01, 10, 11), con 3 biti sono 8 e così via.
Se qualcuno di voi si è mai chiesto perché le attuali CPU possono indirizzare
fino ad un massimo di 4GB di memoria RAM, la risposta sta proprio nei 32-bit: 2
^ 32 fa proprio 4.294.967.296 Bytes = 4GB. Questo vuol dire che una CPU è in
grado di distinguere fino a 2 ^ 32 indirizzi di memoria diversi ed essendo la
memoria organizzata a Bytes ecco che una CPU a 32-bit non può indirizzare più di
2 ^ 32 Bytes diversi. Questo limite di 4GB, oggi, pare essere abbastanza
stringente e questo è uno dei motivi per cui si sta cercando di far evolvere le
CPU a 32-bit verso quelle a 64-bit. Ma limitare le motivazioni solo a quelle
relative agli indirizzamenti di memoria è molto restrittivo: nel prosieguo
dell'articolo cercheremo di mettere a nudo tutte le diverse possibilità offerte
da questa nuova visione di AMD.
x86-64 e x86-32
La nuova architettura x86-64 è l'architettura a 64-bit di AMD sviluppata per
la famiglia di processori
Hammer ed è intesa come l'estensione dell'attuale x86-32:
grazie a questo concetto le nuove CPU AMD sono in grado di svolgere compiti sia
con applicazioni a 32-bit che a 64-bit. Di nuovo ritorna l'attenzione di AMD
rivolta alla compatibilità all'indietro delle sue soluzioni onde rendere tutte
le transizioni le più dolci possibili. A differenza di Intel (diversi Socket
contemporaneamente, memorie Rambus e IA64 docet) AMD è sempre rimasta fedele
alle precedenti tecnologie con notevoli vantaggi per le tasche e per le
abitudini degli utenti.
A detta di AMD le applicazioni a 32-bit che gireranno sui suoi processori a
64-bit non avranno alcun problema sia per compatibilità che per prestazioni a
differenza di quanto accade con le CPU Intel Itanium dove le istruzioni x86-32
vengono emulate. Così non si ha la necessità di aspettare finché gli
sviluppatori ricompilino i loro prodotti per poter cominciare ad usare i nuovi
sistemi AMD ma, al contrario, i nuovi processori AMD offrono tutti i vantaggi
dei propri antenati oltre a nuove possibilità extra che potranno essere
utilizzate in seguito.
L'approccio di AMD per realizzare la sua architettura a 64-bit è davvero
semplice: sono stati aggiunti nuovi registri e quelli esistenti sono stati
estesi:

AMD ha inserito 8 nuovi registri nelle unità SSE ed SSE2 intesi
non tanto per la gestione dei 64-bit ma come aggiunta per aumentare le
prestazioni nelle applicazioni che richiedono calcoli pesanti. Nel set di
General Purpose Register (registri di uso generico) troviamo l'estensione degli
8 già esistenti per il supporto a 64-bit più altri 8 registri R8 - R15.
L'estensione dei registri per supportare la modalità a 64-bit è la stessa che si
è verificata nel passaggio dall'architettura a 16-bit i286 a quella a 32-bit
i386 oltre 15 anni fa.
Per abilitare il supporto delle applicazioni e del codice a 32-bit
e 64-bit l'architettura
x86-64 permette al processore di lavorare nelle seguenti
modalità:
- Long Mode
- 64-bit
- Compatibility mode
- Legacy Mode
Vediamo quali sono i requisiti e le peculiarità di
ogni modalità di utilizzo dei processori AMD x86-64:
- Modalità 64-bit
- Sistema operativo a 64-bit;
- Indirizzi virtuali a 64-bit;
- 8 nuovi registri general-purpose a 64-bit ed
estensione di quelli esistenti a 64-bit;
- Puntatore istruzioni a 64-bit;
- Lunghezza operandi a 32-bit;
- Nuovo metodo di indirizzamento dati di tipo "Relative
Instruction Pointer" (RIP);
- Spazio degli indirizzi continuo con singolo spazio per
le istruzioni, i dati e lo stack istruzioni;
- Necessità di ricompilare le applicazioni.
- Compatibility mode
- Sistema operativo a 64-bit;
- Indirizzi virtuali a 64-bit;
- Lunghezza operandi a 32-bit;
- Nessun registro aggiuntivo;
- GPR a 32-bit;
- Compatibilità binaria
per le applicazioni esistenti a 16- e 32-bit con
sistemi operativi a 64-bit;
- Implementazione in accordo con la politica di segmenti
di codice separati;
- L'applicazione attiva vede la CPU come una normale CPU
x86 in modalità protected;
- Il sistema operativo lavora con interrupts, exceptions e system data
structure come nella modalità a 64-bit Long Mode;
- Non è necessaria la ricompilazione delle applicazioni.
- Legacy mode
- Sistema operativo a 32- o 64-bit;
- Indirizzi virtuali a 32- e 16-bit;
- Lunghezza operandi a 32- e 16-bit;
- Nessun registro aggiuntivo;
- GPR a 32-bit;
- Compatibilità binaria con sistemi operativi a 16- e 32-bit;
- Il processore funziona esattamente come una ordinaria
CPU a x86 a 32-bit;
- Piena compatibilità con tutte le attuali architetture x86;
- Supporto per la tecnica segmented memory, GPR e
Instruction Pointer a 32-bit;
- Non è necessaria la ricompilazione delle applicazioni.
Da quanto detto è facile intuire che i processori AMD
Opteron, ma quelli con architettura AMD x86-64 in generale,
verrebbero sfruttati a dovere solo nella modalità 64-bit Long mode
con sistemi operativi a 64-bit.
|