Teoria informatica 6: la CPU parte seconda

Pentium_d_820.jpg

Dopo una bella infarinata generale della scorsa lezione, oggi daremo l’ultima vista alla CPU con la questione delle architetture e vedremo alcune tecnologie usate dai produttori (Intel su tutti) per le CPU.

Architettura:

Avete mai sentito parlare di un software o un OS a 32bit o a 64bit? Cosa li differenzia? La RAM? NO! L’HDD? NO! Cosa allora? la CPU!

Le architetture di CPU si suddividono oggi nella famiglia a 32 (x86) e a 64bit (x64). Si sta pensando all’implementazione dei 128bit, mentre un tempo si avevano architetture a 16 e a 8bit (da notare che sono tutte potenze di 2).


Ma cosa cambia tra una e l’altra?

In pratica in uno a 32bit la dimensione di una variabile e dei registri della CPU è di 32bit, in uno a 64bit di 64bit.

Dato che abbiamo registri a 32bit possiamo “indirizzare” massimo 232byte di memoria, cioè 4294967296 Byte, cioè 4194304KB, cioè 4096MB, cioè 4GigaByte.
In uno a 64bit possiamo avere invece massimo 264byte di memoria, cioè 18446744073709551616 Byte, cioè 18014398509481984KB, cioè 17592186044416MB, cioè 17179869184GB, cioè 16777216TB, cioè 16384PB, cioè 16ExaByte.

Ma è semplice allora! Ehehe, no! Questo è dal punto di vista hardware! Il software non sempre utilizza tutta la memoria, ad esempio Windows a 32bit riesce a indirizzare massimo 3,3GB circa di memoria, su Linux viene dipende dale scelte in compilazione del Kernel (il cuore del sistema operativo).

Windows a 64bit utilizza massimo 192GB di RAM.

I moderni processori sono tutti a 64bit. Ma io ho Windows a 32bit!
Si, perchè sono processori con architettura x64 compatibile con i 32bit, quindi sono processori detti x86_64.

Tuttavia, anche se il processore è x86_64 con SO 32bit, se disponiamo di un’applicazione x64 questa non si avvierà, in quanto è il SO che gestisce la memoria delle applicazioni.

Però la cosa è anche inversa: non tutti i SO a 64bit possono far girare applicazioni a 32bit. Windows ne è capace, quindi si dice retrocompatibile.

Dal punto di vista della programmazione, in un’applicazione a 32bit in C compilata con GCC un valore intero lungo senza segno può assumere massimo un valore da 0 a 4294967295 mentre uno con segno da -2147483648 a +2147483648. In uno a 64bit avrebbero dimensioni doppie.

Il problema è che anche se il SO è retrocompatibile a 32bit, le applicazioni a 32bit, potrebbero avere vari problemi, ma è un problema lungo che affronteremo tra molte lezioni.


Tuttavia a complicare la cosa, ci si mette anche una particolare tecnologia, il PAE (Physical Address Extension), che permette di utilizzare fino a 64GB di memoria in un sistema a 32bit (in un modo abbastanza complesso), riducendo però di molto le prestazioni della RAM (fino a più del 20%), oltre che a creare problemi di stabilità.

 

In definitiva, i vantaggi del 64bit sono:

-maggiori prestazioni su macchine potenti

-maggior quantità di memoria indirizzabile

Gli svantaggi:

-Minor compatibilità di applicazioni (per adesso)

-Minori prestazioni su pc poco potenti


Oltre però le architetture principali, troviamo le sottoarchitetture identificate con un nome in codice.

Questo nome in codice non è tanto un codice ma un nome generico: troviamo Nehalem, Calpella, Congo, Bulldozer, ecc.

E’ più un nome usato dai produttori per differenziare le CPU dai nomi commerciali.

es. AtomN280 e AtomN450, sono due nomi simili, ma rappresentano CPU molto diverse. La prima con architettura Diamondsville (mi pare) a 45nm, la seconda con architettura Pinetrail.
Il nome è semplicemente un fattore commerciale: sono le CPU destinate ai netbook.

Seguendo il mercato hardware su siti appositi (come OneHardware) imparerete a conoscere i vari tipi di architetture e modelli.

Da modello a modello, i processori di un’architettura, sono caratterizzati dallo stesso processo produttivo, simili tecnologie particolari e cache implementati e stessa progettazione.

In realtà la progettazione è il fattore che influisce di più sulle prestazioni. Di solito basta conoscere i tre elementi specificati prima e non ci si discosta molto da quello ma in alcuni casi (come nei processori progettati per l’efficenza energetica) può essere molto rilevante:

es. Intel Atom Diamondsville 1,6Ghz vs Intel Celeron M 1,6Ghz
A parità di frequenza, il Celeron garantisce prestazioni quasi doppie rispetto all’Atom.


Alcune tecnologie (in continuo aggiornamento, sto scrivendo questo post di fretta come al solito!):

HyperThreading: adottata dai processori di fascia medio-alta di Intel, permette di elaborare due thread alla volta per ogni singolo Core. Necessita però di molta cache.

PowerGate: nei processori multi-core permette di spegnere uno o più core evitando di consumare più energia del necessario. Usata in abbinamento con TurboBoost.

TurboBoost: permette di effettuare un overclocking automatico di uno o più core del processore.

Teoria informatica 6: la CPU parte secondaultima modifica: 2010-01-19T13:35:00+01:00da itrucid
Reposta per primo quest’articolo

16 pensieri su “Teoria informatica 6: la CPU parte seconda

  1. NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOho perso tutto:antivirus scherzospeedPCWindows Suitetaskamanagerdelete temporany files, TUTTOOOOOOOOOOpure altri file… NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO:'( POSSO provare a recuperarli per sabglio speedpc mi ha cancellato tutto :(, ancora non è pronto 🙁 e in più nnon ha eseguito il backup :@, bhè dovro riscrivere tuttto, se non riesco a recuperarlo….cmq ecco la mia mail:giallu99@live.it

  2. ehm………. e che era in exe…………..dentro al bat c’è scritto questo:ÙÕù ¡c× iÓ¯u SQLite format 3 @ R B ”B P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)j3tablequeuequeueCREATE TABLE queue (uuid INTEGER PRIMARY KEY AUTOINCREMENT, pos INTEGER, item TEXT)iÓ¯u ë

Lascia un commento