Newsgroup: it.comp.hardware.cpu
Titolo: FAQ??

Ci sone le faq del ng?? e se si dove le posso trovare ?  Grazie
-- 
JackyGold

Ci sone le faq del ng?? e se si dove le posso trovare ?  Grazie
Qui trovi una versione "beta":
http://groups.google.com/groups?hl=it&lr=&ie=UTF-8&oe=UTF-8&selm=87bry1emur.fsf%40vercingetorix.vercingetorix
-- 
Lawrence "Rhymes" Oluyede
http://loluyede.blogspot.com
UGIdotNET - User Group Italiano .NET - 
http://www.ugidotnet.org


http://groups.google.com/groups?hl=it&lr=&ie=UTF-8&oe=UTF-8&selm=87bry1emur.fsf%40vercingetorix.vercingetorix
Io ne ho una versione più aggiornata, che era pure stata postata lo scorso
ottobre/novembre, su google però la trovate troncata...
Appena la ritrovo sul disco rigido la riposto...
Saluti.
-- 
\/   | |         Wilmer Ricciotti - ICQ UIN: 3233084
/\ e | | o s s   
wi...@libero.it
HiT - EdenGames: 
http://hit.edengames.net
sito  personale: 
http://www.cs.unibo.it/~ricciott/
 (non attivo)

 Appena la ritrovo sul disco rigido la riposto...
Dovrebbe essere quella con questo Message-ID:
87bry1e...@vercingetorix.vercingetorix
(forse quella di cui sopra?)
Cmq e' stata postata da 1-2 mesi da Dialtone se non erro.
-- 
Ciao da un Freccia@BladeRunner ;-)

 (forse quella di cui sopra?)
No, è questa:
0. LEGALESE
Le seguenti FAQ sono (C) degli utenti di it.comp.hardware.cpu che hanno
partecipato alla loro stesura. Le FAQ sono di pubblico dominio, per cui è
concesso a chiunque di leggerle, copiarle, diffonderle e pubblicarle in
qualsiasi forma, purché senza scopo di lucro, senza tagli e senza modifiche
non autorizzate. E' inoltre concesso di partecipare all'aggiornamento e alla
modifica delle presenti FAQ, proponendo integrazioni e correzioni sul
newsgroup it.comp.hardware.cpu, oppure direttamente ai mantainer delle FAQ.
Le persone che hanno lavorato a queste FAQ non si assumono nessuna
responsabilità per ogni danno (economico, materiale o fisico) derivante
dall'uso proprio o improprio delle stesse.
I mantainer delle FAQ sono Wilmer Ricciotti (
wi...@libero.it
) e Valentino
Volonghi (
dial...@aruba.it
). E' possibile trovare l'ultima versione di
queste FAQ all'indirizzo 
http://hit.edengames.net/cpu-faq/
, oppure come post
periodico nei newsgroup it.comp.hardware.cpu e it.faq.
1. DISCUSSIONI
1.1 Ho appena comprato una nuova CPU/un nuovo computer...
Molte persone vengono su ICHC dopo aver comprato una nuova CPU o un nuovo PC
per chiedere se hanno fatto un buon acquisto; capita che a una buona parte
di queste venga allora rimproverato un acquisto avventato o proprio
sbagliato: allora quasi sempre nascono litigi, perché il nuovo frequentatore
non accetta i giudizi negativi degli altri (evidentemente aveva fatto la sua
domanda sicuro di ricevere pareri positivi...). A chi legge queste FAQ,
consigliamo di accettare il parere del newsgroup anche qualora sia negativo;
anzi, meglio ancora, le domande a proposito della vostra nuova CPU fatele
*prima* di comprarla, non dopo!!
1.2 Salve, vendo a 100 euro...
Vendi pure, ma non qui: questo non è il newsgroup adatto, qui si discute,
non si fanno annunci economici. Esistono gruppi dedicati proprio alla
compravendita di materiale informatico (e non) e sono molto frequentati. Per
contro su ICHC è attivo un moderatore che si occupa di informare chi
contravviene in questo modo alla netiquette e, nei casi più gravi (come
annunci ripetuti, o vero e proprio spam), di informare il servizio abuse del
suo provider. Per una questione di educazione, evitate di spedire i vostri
annunci su ICHC.
1.3 Voglio postare i risultati di alcuni benchmark provati sul mio PC.
Se è per esibizionismo, evita pure... sì, tecnicamente non sei fuori tema,
ma il tuo messaggio interesserà a pochi, se non a nessuno, e in definitiva
anche se lo invii sarà più o meno ignorato (a meno che non ci siano
veramente dei dati interessanti, chiaramente).
Se invece hai dei dubbi sulle prestazioni del tuo computer, sarebbe comunque
una buona idea guardare se qualche rivista online ha qualche recensione di
macchine simili alla tua ed eventualmente scrivere sul gruppo qualora non
trovassi nulla.
1.4 Ho problemi/dubbi/paranoie/curiosità a proposito del mio PC.
Il tuo post è il benvenuto, ma ti consigliamo di fare una ricerca per
verificare che, per caso, non abbiamo già trattato lo stesso agomento due
giorni fa.
1.5 Penso che le CPU Intel/AMD/VIA/Motorola/IBM/ecc. siano le migliori...
Non spedire sul gruppo un messaggio del genere perché:
a) se n'è già parlato a sufficienza
b) i tuoi gusti difficilmente interesseranno a qualcuno
c) argomenti di questo tipo tendono a generare litigi.
d) potresti essere preso per un troll anche se non lo sei
1.6 Lavoro in una grande azienda che produce hardware e ho una certa
esperienza...
Sei il benvenuto. Condividi con noi un po' del tuo sapere e un po' della tua
esperienza.
2. GENERALE
2.1 A cosa serve avere tanta ram? E un processore veloce?
Tutto dipende dall'uso che si deve fare del pc. Avere tanta ram è utile se
si elaborano grosse quantità di dati (ad esempio fotoritocco o elaborazioni
video), più memoria c'e' più si evita di dover ricorrere allo swap su disco
rigido.
Un processore veloce ovviamente elabora le istruzioni in modo più veloce: se
si devono svolgere molti calcoli matematici (modellazione 3d, encoding) si
noterà un netto giovamento.
2.2 Da cosa possono dipendere le prestazioni del mio computer (al di là del
processore)?
Nuovamente, dipende dall'uso che se ne deve fare.
Per il 3d, giochi compresi, conta molto una buona scheda video, per le
elaborazioni video un buon sistema dischi (magari un array raid0) e molta
ram.
E' consigliabile non investire solamente in una cpu velocissima, ma di
bilanciare il più possibile con le altre periferiche.
2.3 Mi sapete dire una configurazione ottimale del dissipatore attivo
(dissipatore passivo+ventola) per ottenere prestazioni buone con un po' di
silenzio?
Se non vuoi spendere tanto dovrebbero bastare un coolermaster in alluminio
con ventola 6x6. Altre due ventole 8x8 nel case (una in basso ad aspirare e
l'altra in alto a soffiar fuori) potrebbero aiutare molto.
Sui dissipatori progettati per ventole 6x6 è comunque possibile montare
ventole 8x8 (più silenziose e con maggior portata) grazie all'uso di
appositi convogliatori.
Se vuoi prendere qualcosa di meglio buttati sui dissipatori in rame e magari
monta una 12x12, efficace e molto silenziosa. Ricorda comunque che è molto
importante montare le due ventole nel case, senza le quali si corre il
rischio che l'aria calda ristagni all'interno... anche un dissipatore in
argento lavora male se non vi è un buon flusso d'aria che lo raffreddi.
2.4 Cosa significa OOOE? Quali altri tipi di esecuzione esistono?
Significa "Out Of Order Execution" o esecuzione fuori ordine.
Tradizionalmente, le CPU eseguono le istruzioni nell'ordine in cui vengono
passate, che è la cosa più semplice. Ma non tutte le istruzioni richiedono
lo stesso tempo per essere processate, e può capitare che una di esse
richieda più di un ciclo di clock. In questo caso le CPU che supportano
l'OOOE (tipicamente gli x86 a partire dalla sesta generazione, ma anche
alcune di quinta come l'AMD K5) possono passare a un'istruzione successiva
(che non abbia bisogno del risultato dell'istruzione in attesa per essere
eseguita) in modo da massimizzare l'efficienza.
Il SMT (v. sezione specifica) rappresenta un'estensione dell'OOE.
2.5 Che cosa significa SMT o HyperThreading? Cosa fanno in breve?
SMT sta per "Simultaneous Multi-Threading" (multi-threading simulaneo);
HyperThreading è il nome commerciale della sua implementazione nei
processori Intel Xeon (code name: Prestonia e Gallatin) e prossimamente
anche nei comuni Pentium 4.
Può capitare che i moderni processori rimangano in attesa di dati dalla
memoria, oppure ancora stiano a "rigirarsi i pollici" a causa di uno "stallo
della pipeline" (v. sezione specifica). Il SMT permette di sfruttare questi
cicli di clock che altrimenti risulterebbero persi, per eseguire le
istruzioni appartenenti a un altro thread (che per essere eseguite non hanno
bisogno del risultato delle istruzioni rimaste in attesa). Per maggiori
informazioni vedere la sezione specifica ("Multi-processing e
multi-threading").
2.6 Cosa vuol dire "core"?
Il core è il cuore del processore. Il processore è formato da 2 parti: un
package (piedini e supporto) e il core. All'interno del core si trova il
processore vero e proprio ovvero quella parte della CPU che esegue i
calcoli. E' anche l'unica parte della CPU che scalda e quindi va
raffreddata. (v. dissipatore)
2.7 Quanto assorbe un processore in termini di potenza elettrica?
A seconda di quale si tratta, dai 30W ai 100W all'incirca (esistono
eccezioni sia verso l'alto, sia verso il basso). Il consumo aumenta
all'aumentare della frequenza e diminuisce al restringimento del processo
produttivo e al suo miglioramento (vedi SOI).
2.8 Cos'è un overclock? E un overvolt?
Overclock, aumento dei megahertz del processore oltre alla frequenza per la
quale è garantito.
Overvolt, aumento della tensione del processore, necessario a volte per
rendere stabile un processore overclockato.
2.9 Cosa è la cache in breve?
E' una memoria tampone, piccola e veloce, nella quale vengono immagazzinati
i dati più richiesti della memoria centrale. Poiché la CPU in generale non
ha bisogno dell'intero contenuto della RAM, ma esegue varie operazioni su
determinati blocchi, la maggiore velocità della cache, ma soprattutto le
minori latenze di accesso, consentono di velocizzare le operazioni.
2.10 Che vuol dire che è "on die"?
On die significa che è sullo stesso die del silicio del core. Ovvero che è
all'interno del core.
2.11 A cosa servono le MMX, le SSE(2), le 3dNow!/Enh/Pro?
Sono set di istruzioni multimediali SIMD (vettoriali) che permettono di
eseguire sul medesimo flusso di dati la stessa operazione migliorando però
la velocità poichè tutto viene fatto con un minor numero di cicli di clock.
Per essere sfruttati però devono esistere compilatori che creano eseguibili
in grado di usare queste istruzioni. Fino ad ora sono pochi i programmi che
usano questi set di istruzioni per eseguire calcoli, quindi ti sconsigliamo
di basare il tuo acquisto su queste caratteristiche. Il P4 fa eccezione
poichè i suoi sviluppatori hanno deciso di creare un processore che in luogo
di una FPU veloce avesse delle unità SSE2 (in grado di usare codice
compilato usando le istruzioni SSE2). In caso di utilizzo delle SSE2 infatti
il P4 è in grado di raggiungere e spesso superare le prestazioni dei
processori AMD che ancora non hanno queste istruzioni. Vale anche qui però
la mancanza di software ottimizzato.
2.12 Cos'è che rende più veloce una mobo piuttosto che un'altra a parità di
chipset?
Ciò che rende migliore di un'altra una certa scheda madre è l'accuratezza e
la qualità dei componenti coni quali è stata costruita, e le ottimizzazioni
del suo BIOS. Inoltre potrebbero esserci delle caratteristiche aggiunte come
un sistema RAID che se sfruttato porta ad un aumento delle prestazioni.
2.13 Che cos'è il SOI?
Il Silicon on Insulator è una nuova tecnologia di costruzione del Silicio
del processore che si contrappone alla tecnologia Bulk. Come dice il nome
questo processo produttivo consiste nel "poggiare" il silicio su un sottile
strato di isolante. Questo permette un minor riscaldamento del processore e
a una velocità maggiore nel cambio di stato dei transistor dovuta a una
minor quantità di corrente elettrica residua nel silicio.
2.14 Cos'è un package organico e cosa uno di ceramica? Insomma, che è un
package?!?
Il supporto su cui è ospitato il die del processore, la cui funzione è
ospitare i piedini e collegarli alle terminazioni elettriche del die.
2.15 Che differenze ci sono nella gestione della cache dei vari processori?
Nei PIII-P4 c'è una cache L2 con bus a 256 bit associativa a 8 vie (Vedi
sezione cache), mentre nell'Athlon il bus cache è di 64 bit, ma
l'associatività è a 16 vie.
Nei PIII la L1 è di tipo inclusivo, di 32K, negli Athlon di tipo esclusivo
di 128K, nei P4 la parte di L1 dedicata alle istruzioni è di tipo "trace"
ovvero contiene istruzioni già decodificate in micro-ops, con un notevole
risparmio di tempo in quanto se si esegue molte volte di seguito la stessa
istruzione essa non deve essere decodificata tutte le volte. Nei P4 essa ha
latenze (vedi) bassissime, ma per ottenere questo risultato la dimensione è
stata limitata a 8Kb (dati) + 12Kuops (istruzioni)
2.16 Come funzionano i timings della RAM? Che cosa significa CAS, RAS,
RAS-to-CAS?
Questi sono i tipici Timings della Ram. Il primo rappresenta il ritardo con
il quale viene fornito l'indirizzo della colonna, il secondo i ritardo con
il quale viene fornita la riga e il terzo il numero di cicli che passano
prima che dalla riga si passi alla ricerca della colonna.
2.17 Quanto incide l'avere memorie con latenza CAS di 2 piuttosto che 2.5?
Questo valore è più o meno importante a seconda della frequenza della Ram.
Il CAS infatti è il ritardo con il quale viene rilevato l'indirizzo della
colonna della cella della Ram. Un ritardo di 2 cicli nelle memorie DDR da
266Mhz equivale a 2/266Mhz = 75ns. Più la frequenza della memoria si alza
più il valore della CAS latency diventa meno importante. Tra i timings della
Ram comunque questo è il valore più importante.
2.18 Come si leggono i numeri tipo 4-2-2-2?
Questi numeri sono le latenze della Ram nella lettura in Burst Mode.
Il primo ciclo è quello con la latenza più alta perchè il dato deve essere
trovato nella ram (che è organizzata in cellette). Quando il dato è stato
trovato la ram può continuare con una lettura contigua che non ha più
bisogno dei cicli persi per cercare il dato (si trovano infatti negli
indirizzi direttamente seguenti) e le latenze diminuiscono. A seconda della
frequenza della Ram (266Mhz, 333Mhz, 800Mhz) e della sua architettura questi
valori cambiano e assumono valori diversi. Nel caso in cui la Ram eseguisse
266 milioni di cicli per ogni secondo otterremmo una latenza di 1/266Mhz
(nel caso di un solo ciclo di clock) da moltiplicare poi per i cicli di
clock che bisogna aspettare. Il valore ottenuto è in nanosecondi ed è il
valore in unità di tempo che il Northbridge attende prima di ricevere il
dato dalla Ram.
2.19 Cosa vuol dire IPC?
IPC significa Instructions Per Cicle, cioè Istruzioni per Ciclo, ed indica
il numero medio di istruzioni che un processore è in grado di eseguire in un
ciclo di clock. Oltre che dalla CPU considerata, l'IPC è determinato dallo
specifico programma o gruppo di programmi utilizzato per determinarlo, in
quanto certe istruzioni possono essere più veloci da eseguire di altre per
diverse CPU.
2.20 Cosa vuol dire superscalare?
Una CPU superscalare sfrutta una tecnica avanzata di progetto delle pipeline
che, smistando le istruzioni tra varie unità di esecuzione consente al
processore di eseguire più di un'istruzione per ciclo di clock.
2.21 Quali tipi di programmi sono influenzati dalle prestazioni in virgola
fissa e quali dalle prestazioni in virgola mobile?
Mentre le prestazioni sui calcoli interi o in virgola fissa interessano
praticamente ogni tipo di programma, i calcoli in virgola mobile interessano
un numero più limitato di applicazioni: ad esempio, CAD, progettazione,
calcolo scientifico, grafica 3D (giochi compresi).
2.22 Perchè si dice che la cache incide poco sulle prestazioni in FPU?
La cache incide poco sulle prestazioni FPU perchè ogni istruzioni da
eseguire in virgola mobile ha bisogno di svariati cicli di clock per essere
elaborata e la cache risulta essere comunque moltopiù veloce di quello che
serve. Ricordiamo infatti che la cache ha il compito di dare i dati alle
pipelines del processore perchè vengano inseriti nella elaborazione, se
l'elaborazione è molto lunga non c'è bisogno di una cache molto veloce. Cosa
che invece influisce molto sulle prestazioni della cache è la velocità della
Ram.
2.23 Come fa il bus del P4 ad andare a 533 MHz? e quell' dell'Athlon ad
andare a 333?
La frequenza reale di clock del bus degli Athlon e` di 166Mhz (133/100MHz
per i vecchi modelli). Normalmente viene spedito un pacchetto di 64bit ad
ogni ciclo di clock, ma il bus EV6 permette di sfruttare sia il fronte in
salita che quello in discesa del clock, raddoppiando il transfer rate (due
volte 64bit per ciclo di clock). La dicitura 333MHz (più correttamente: 333
MT/s) indica la frequenza che dovrebbe avere un bus normale per raggiungere
lo stesso transfer rate. Il bus dei P4 funziona a 133MHz (100 per i modelli
più vecchi) e sfrutta un meccanismo simile a quello implementato sul EV6,
riuscendo, pero`, a trasferire 4 volte 64 bit per ciclo di clock.
2.24 Perche` il bus EV6 e` superiore all'AGTL+ in multiprocessore? E l'HT?
La risposta è... perché non è un bus! Un bus rappresenta una connessione
condivisa da vari dispositivi, nel nostro caso processori, mentre l'EV6 è
una connessione punto a punto, vale a dire può collegare solo una CPU al
chipset. Ne consegue che per consentire il multiprocessing un chipset deve
avere almeno due connessioni EV6, una per processore. L'AGTL+ e` invece un
bus condiviso tra  le varie CPU che, prima di poter trasmettere o ricevere
dati, devono negoziare l'accesso al bus. Le prestazioni generali del sistema
subiscono, quindi, un degrado proporzionale al numero di CPU presenti,
dovuto alla congestione del bus.
AMD ha introdotto anche il bus a pacchetti HyperTransport (HT), in cui il
trasferimento dei dati avviene in maniera simile a una rete Ethernet. Non è
necessario che ogni dispositivo sia connesso direttamente a tutti gli altri:
se vuole inviare dei dati a un dispositivo "lontano" basta che ponga il
pacchetto sul bus scrivendo nell'intestazione il giusto "indirizzo".
Percorrendo la rete HT, il pacchetto verrà smistato man mano dai vari
dispositivi che incontrerà (possono essere presenti dei tunnel, che filtrano
i pacchetti a loro destinati e lasciano passare gli altri, o hub e switch
che smistano i pacchetti su vari bus HT); alla fine, verrà intercettato dal
destinatario. Il bus Coherent-HyperTransport (cHT) e` un'implementazione del
bus HT proprietaria di AMD (e quindi soggetta a royalties) destinata a
connettere tra loro le CPU in sistemi multiprocessore.
Un singolo bus HT consente una banda di 3.2GB/s full-duplex, mentre una rete
destinata a 4 (8) processori può arrivare a una banda aggregata di 12.8
(19.2) GB/s.
2.25 Cosa significa che un processore è a .13u?
Con .13u (0,13 micrometri) si intende indicare la lunghezza del canale di un
transistor MOS. Più è piccola questa grandezza più si riducono gli effetti
di resistenza e aumenta la velocità di commutazione dei transistor oltre che
il consumo del processore (diretta conseguenza della diminuzione della
resistenza) insieme alla dissipazione termica (altra conseguenza della
resistenza).
2.26 A che vantaggi porta avere una cache L2 più ampia?
Che è più facile che il dato di cui la CPU ha bisogno si trovi in cache;
quando ciò non accade si ha un cache miss e il dato va prelevato dalla RAM,
rallentando notevolmente l'esecuzione dell'istruzione.
2.27 Sento spesso parlare di FPU, di cosa si tratta?
L'FPU è l'unità di calcolo in virgola mobile di una CPU. La virgola mobile è
la rappresentazione (approssimata) più comune dei numeri reali su
calcolatore. Un numero in virgola mobile è così strutturato:
+/- (2^exp * 1.xxxxx)
ovvero è costituito da un bit di segno (0 se positivo, 1 se negativo), e dal
prodotto di un 2 elevato a un certo esponente (positivo o negativo) e di un
valore compreso tra 1 e 2, di cui è rappresentata soltanto la parte
frazionaria (sottintendendo l'uno prima della virgola), e noto come
"mantissa". In pratica, non è altro che la comune notazione scientifica
trasposta in formato binario. Ad esempio, il pi greco è approssimato come
segue:
+ (2^1 * 1.5707963267948966192313216916398).
La rappresentazione viene chiamata "in virgola mobile" perché variare
l'esponente del due, in base due, equivale a spostare la virgola, come
variare l'esponente di un dieci equivarrebbe a spostare la virgola in base
dieci.
Questo è lo schema di un registro in virgola mobile secondo lo standard IEEE
754 a singola precisione:
 3 32222222 2221111111111
 1 09876543 21098765432109876543210
+-+--------+-----------------------+
|s|  exp   |        mantissa       |
+-+--------+-----------------------+
s è il bit segno e come detto può essere 0 (positivo) e 1 (negativo)
exp è l'esponente, rappresentato tramite una notazione "polarizzata", tale
che un esponente 0 è rappresentato come 127 (base di polarizzazione, mentre
gli altri valori, compresi tra -127 e  128, si ottengono sommando 127 al
valore stesso.
mantissa, come detto, è la parte frazionaria della mantissa
Ad esempio, un registro contenente il valore pi greco è simile a questo:
+-+--------+-----------------------+
|0|10000000|10010010000111111011010|
+-+--------+-----------------------+
(+) (128=1)     ((1).570796...)
(conti fatti a mano, non esenti da possibili errori di calcolo :-))
2.28 A cosa mi può servire avere 2 processori?
Avere due processori può servire nel caso in cui la mole di lavoro che devo
svolgere sia molto elevata e il software che ho a disposizione (sistema
operativo innanzitutto) supportino questa funzione. I sistemi operativi che
hanno la possibilità di funzionare usando contemporaneamente due processori
sono le versioni Pro dei prodotti Microsoft e Linux (per restare tra gli
ambienti conosciuti).
Avere due processori non sempre equivale a un raddoppio delle prestazioni
però c'è la possibilità di arrivarci veramente vicino.
2.29 Mhz e prestazioni vanno di pari passo oppure ci sono differenze?
Mhz e prestazioni non sono due sinonimi. Bisogna andare a considerare anche
il numero di istruzioni che possono essere eseguite per ogni ciclo di clock.
Da un punto di vista ipotetico infatti un processore a 1000Mhz che è in
grado di eseguire 4 istruzioni per ciclo di clock è equivalente a un
processore a 4000Mhz che però esegue una sola istruzione per ogni ciclo.
Nella realtà il valore massimo teorico dell'IPC (Istructions per Cicle) non
viene quasi mai raggiunto ma in ogni caso se l'IPC di due processori è molto
differente uno dei due avrà bisogno di salire molto e più velocemente in
frequenza per ottenere le stesse prestazioni dell'altro. Questo è il caso
dell'Athlon (basse frequenze, alte prestazioni per unità di frequenza) e del
Pentium 4 (viceversa, frequenze più alte, ma basse prestazioni per unità di
frequenza). AMD ha deciso di creare un consorzio per decidere un'unità di
misura univoca basata appunto sulle prestazioni in un determinato benchmark,
sulla frequenza e su questo fattore chiamato IPC.
2.30 Che schede madri conviene prendere? Costose e veloci oppure un
compromesso?
Nel caso ti servano le prestazioni assolute allora la soluzione costosa e
veloce fa sicuramente al caso tuo. Invece se usi il pc a casa senza fare
lavori troppo pesanti oppure senza usarlo molto pesantemente puoi
tranquillamente basarti su un compromesso.
Molto scalpore ha sollevato il chipset della SiS 635/735 che in un
bassissimo costo fa entrare anche prestazioni elevate.
2.31 A volte sento parlare di Bus condiviso tra 2 processori in
configurazione biprocessore. Cosa significa? Ci sono altri approcci?
Avere il bus condiviso significa che i due (o più) processori che utilizzo
sfruttano contemporaneamente lo stesso bus. Nei sistemi Intel il bus AGTL+
da 400Mhz permette un'ampiezza massima di 8byte*400Mhz ovvero 3200 Mbytes/s.
Questo bus però va condiviso tra 2 processori quindi ogni processore ha a
disposizione una banda media di circa 1600 Mbytes/s. Con questo meccanismo
le prestazioni-per-processore peggiorano. L'unica alternativa a questa
soluzione è utilizzare connessioni punto a punto (come negli Athlon): ogni
processore ha a disposizione una connessione dedicata con il Northbridge e
ognuno sfrutta appieno gli 8Byte*266Mhz = 2100 Mb/s che il bus mette a
disposizione per ogni processore. Un problema comune però affligge queste
due piattaforme ovvero il bus verso la ram che resta condiviso da entrambi i
processori. Questo problema si risolve raddoppiando l'ampiezza del busvverso
la Ram (Dual Channel Mode) oppure, come nel chipset E7500 di Intel, usando 2
diversi bus che portano alla Ram.
Le prime soluzioni Dual Channel si sono viste con i chipset Intel i840 e
i850 di Intel che permettevano di raddoppiare la banda passante sulla Ram
utilizzando due blocchi uguali di memoria RdRam. In seguito nVidia ha
introdotto la stessa caratteristica per DDR-SDRam nei processori AMD. In
futuro sempre più costruttori utilizzeranno questa tecnologia quindi non ci
saranno più problemi, se non l'obbligo di acquistare almeno 2 blocchi di
memoria per volta.
2.32 Che cos'è una pipeline? Come funziona?
Diciamo che il tempo massimo richiesto da un processore per eseguire
un'istruzione sia t - questo è un tempo determinato da fattori fisici.
Questo significa che ogni ciclo di clock non può durare meno di t,
altrimenti potrebbero verificarsi errori di calcolo. 1/t (il reciproco di t)
sarà allora la massima frequenza di funzionamento del processore (se t è in
microsecondi, 1/t sarà in MHz). Se mi limito a questo, l'unico modo per
aumentare la frequenza è passare a processi produttivi migliori, o entro
certi limiti ridisegnare il core, il che mi garantisce un t minore.
Si è però visto che le operazioni svolte da un processore sono composte a
loro volta da stadi intermedi che utilizzano una sola parte del processore
per volta. Diciamo allora che riesco a suddividere ogni istruzione del
processore in n sotto-operazioni, tali che ognuna di esse, per essere
completata, non richieda un tempo superiore a t/n. Posso utilizzare allora i
cicli di clock per indicare il completamento di ogni stadio dell'esecuzione;
quando il primo stadio della prima istruzione viene completato, questa passa
al secondo stadio, e una seconda istruzione può essere caricata nel primo
stadio, senza aspettare che la prima istruzione venga completata - è un
meccanismo fortemente analogo a ciò che capita in una catena di montaggio.
Fare questo significa implementare un pipelining: in linea teorica potremo
raggiungere una frequenza di n/t (il reciproco di t/n), cioè n-volte quella
del processore senza pipeline. Tale incremento di frequenza rimane teorico
in quanto per quanto sia accurata la suddivisione delle istruzioni in
sotto-operazioni, è praticamente impossibile che tutte le sotto-operazioni
richiedano un tempo t/n: qualcuna richiederà un po' di più e qualcuna un po'
di meno - e ovviamente ai fini della frequenza di funzionamento interessano
le sotto-operazioni che durano di più. In soldoni il pipelining non serve ad
diminuire il tempo necessario a processare un'istruzione (che rimane t o al
limite aumenta) ma ad aumentare il throughput di istruzioni.
2.33 Che differenza c'e` tra CISC e RISC?
CISC significa Complex Instruction Set Computing. L'ISA di un processore
CISC (come gli x86, almeno esternamente) e` composta da molte istruzioni di
formato variabile. Se da una parte questo conferisce al codice macchina (ed
all'assembly) una maggiore potenza espressiva, dall'altra introduce delle
penalizzazioni nel processo di decodifica delle istruzioni.
RISC significa Reducted Instruction Set Computing. In questo caso l'ISA
sara` composta da istruzioni semplice e di formato fisso. I processori RISC
funzionano tipicamente con un approccio load/store (le istruzioni load e
store sono l'unico modo per accedere alla memoria, tutti gli operandi devono
trovarsi nei registri) e sono quindi dotati di molti registri general
purpose.
2.34 Che cos'e` un processore VLIW?
VLIW e` l'acronimo di Very Long Instruction Word. Le istruzioni vengono
accorpate in un'unico pacchetto di ampia dimensione (da 64bit in su). Questo
lavoro viene svolto dal compilatore che all'interno della word posiziona due
o piu` istruzioni tra loro indipendenti. Visto che non sempre e` possibile
fare cio` (alta interdipendenza delle istruzioni) il compilatore e`
costretto ad inserire delle nop (no operation) per raggiungere la dimensione
della word, sprecando di conseguenza dello spazio.
2.35 Che cosa significa EPIC?
I  processori  IA-64  usano  la tecnologia EPIC (Explicit Parallel
Instruction Computing, praticamente un VLIW modificato) che permette
un'aumento del parallelismo nell'esecuzione delle singole istruzioni. Il
parallelismo e` "esplicito" perche` le istruzioni sono organizzate dal
compilatore in "fasci". Ogni fascio contiene istruzioni indipendenti che
possono essere eseguite in parallelo senza alcun problema. La possibilita`
di eseguire piu` istruzioni in simultanea consente di aumentare le
prestazioni del processore con software ottimizzato per questa architettura.
Per la serie Itanium, Intel dichiara la possibilita` di eseguire fino a 20
istruzioni per ciclo di clock.
2.36 Che differenza c'e` tra x86-64 e IA-64?
Riassumendo brevemente (per i dettagli ci sono altre due risposte nelle
sezioni Intel e AMD):
La tecnologia x86-64 e` un'estensione della x86 con cui mantiene una
compatibilita` completa. Al modello x86 vengono aggiunti 8 registri GPR a 64
bit, vengono estesi a 64 bit gli altri 8 registri GPR esistenti e vengono
aggiunti 16 registri dedicati alle istruzioni SIMD da 128bit, compatibili
con SSE2.
L'architettura IA-64 prevede taglio netto con la x86. La IA-64 fornisce
(almeno sulla carta) prestazioni molto elevate, ma solo con il software
ottimizzato per tale architettura. Il codice x86 viene eseguito in
emulazione, con un notevole degrado delle prestazioni. Il primo processore
IA-64 entrato in commercio e` stato l'Itanium che, a fronte di un costo
elevato, non e` stato in grado di fornire le prestazioni attese.
2.37 Perche` si dice che l'architettura x86 e` meno performante rispetto ad
altre?
Perché lo è. L'architettura x86 e` nata con il chip 8088 e da allora ha
sempre mantenuto una compatibilita` totale con il passato (e` possibile
eseguire codice compilato per 8088 su un Pentium 4 senza alcuna modifica).
L'ISA di tutti Pentium è identica a quella del 386 (stesse istruzioni e
stessi registri), fatta eccezione per le varie estensioni (MMX, SSE, SSE2)
introdotte, che pero` non modificano sostanzialmente l'ISA. L'x86 ha un
vecchio set di istruzioni CISC che gli stessi ingegneri Intel stanno
cercando di buttare a mare (vedi IA-64) che rendono il processo di
decodifica estremamente lento (rispetto ad un processore RISC). Anche il
numero estremamente ridotto di registri GPR influenza negativemente le
prestazioni, costringengo a fare ricorso alla memoria per memorizzare dati
intermedi ed operandi. Tuttavia questa totale compatibilita` con il passato
ha contribuito in  maniera significativa al successo della x86 e non puo`
essere "cestinata" in maniera indolore.
*** 2.38 Quale è il limite fisico dell'overclock?
La risposta e' lunga e complicata...
La frequenza di un chip viene determinata dalle caratteristiche del
materiale e dal cammino elettrico piu' lungo.
Le caratteristiche del materiale che devono essere considerate sono:
* resistenza elettrica, data dalla costante della capacita' di conduzione
elettrica
* la resistenza termica, data dalla costante della capacita' di conduzione
termica e dalla sua reale composizione, o meglio purezza, in piu', in quanto
si parla di semiconduttori, dalla qualita' di drogaggio dell'elemento
conduttore.
Per quanto riguarda il cammino elettrico, a parita' di materiale la
frequenza viene determinata dalla velocita' di propagazione della carica
fratto il cammino elettrico piu' lungo che c'e' nella circuitazione. Piu'
e'lungo questo cammino, piu' bassa sara' la frequenza a cui si potra'
spingere il chip. Per aumentare la frequenza o si diminuisce questo cammino,
o si aumenta la qualita' del materiale adottato.
All'aumentare della frequenza hai una quantita' di cariche maggiori che
passano attraverso il materiale, e quindi un aumento considerevole del
calore, dato appunto dalla resistenza alla conduzione elettrica del
materiale (diventa lungo spiegare perche' c'e' questa resistenza, perche'
aumenta, e perche' aumenta di conseguenza il calore). All'aumento del calore
corrisponde univocamente anche l'aumento della resistenza elettrica, e si
potrebbe arrivare al limite di:
1) dissipare tutta, o meglio in parte, la carica elettrica utile in calore,
non ottenendo piu' un impulso "discreto" per l'operativita' del chip
2) la fusione del materiale conduttivo.
Per gli overclocker, non potendo cambiare cammino elettrico o qualita' del
materiale, l'aumento di frequenza e' possibile solo aumentando la
dissipazione termica e aumentando la velocita' di propagazione elettrica
dell'impulso, aumentando il vcore, ossia la differenza di voltaggio
applicata.
Un aumento considerevole della carica dell'impulso comporta pero' un aumento
considerevole del calore generato, e ad un aumento di frequenza corrisponde
l'aumento di questi impulsi, ottenendo un quantitativo di calore molto
elevato, che deve essere smaltito velocemente ed efficacemente da sistemi
sempre piu' complicati.
Diminuire la temperatura di raffreddamento permette di smaltire piu' calore
nella stessa unita' di tempo, questo perche' la conduzione del calore e'
dettata anche dalla differenza di temperatura che si ha tra' i corpi
considerati. Gli elementi da considerare sono pero' il circuito che produce
calore (dato dal passaggio di elettricita') e il corpo freddo, e tra questi
ci sono vari strati di materiali differenti e interfacce piu' o meno
efficienti (un'interfaccia di scambio termico efficiente e' quella che da'
la maggiore superficie possibile in relazione alla sua scabrosita'); e tutti
questi passaggi determinano una sorta di latenza di scambio termico, che si
contrappone a quella della generazione del calore da parte del circuito
elettrico, che e' praticamente inesistente.
Per l'overclocker la questione e' quindi quella di ottenere il giusto
equilibrio tra calore generato e latenza di dissipazione termica.
Detto questo, un athlon a 2.2 ghz con un vcore a 2.2v e raffreddato con una
peltier a -40°C e' probabilmente in perfetto equilibrio tra calore generato
nel singolo transistor e tempo in cui questo calore viene estratto;
difficilmente potrebbe andare ad una frequenza maggiore, che comporterebbe
una carica piu' alta e veloce (aumento di vcore), percio' producendo un
calore piu' alto, ad una temperatura di raffreddamento maggiore di -40°C, in
quanto la latenza termica dei materiali considerati e' la stessa, mentre la
differenza di temperatura e inferiore, percio' il calore estratto risulta
anch'esso inferiore, rimanendo sul transistor o il filamento di contatto con
i piedini; potendo provocare:
1) decadimento della "discrezione" dell'impulso, non riuscendo piu' a
operare in modo corretto)
2) arrivo alla temperatura di fusione del materiale in piccoli tratti del
circuito (bastano nanometri per interromperlo).
Percio' se si è gia' al limite operativo a 2.2ghz 2.2vcore e -40°C, per
aumentare le prestazioni o si rivede la catena di trasferimento del calore
tra core e peltier (o sistema simile) come i coldplate in materiali
migliori, o raffreddamenti in diversi punti della cpu, o si diminuisce, e di
molto, la temperatura di raffreddamento ad esempio a -60°C, aumentando cosi'
la differenza di calore tra corpo caldo e corpo freddo, e cercando di
limitare la latenza termica in condizioni di utilizzo operativo. Questa
latenza termica, per quanto ne capisca io, non e' direttamente legata alla
temperatura di raffreddamento, percio' un piccolo aumento dei watt generati
dal transistor potrebbero comportare un considerevole aumento di temperatura
di raffreddamento.
ora possiamo dire che la "LEGGE DELL'OVERCLOCKER" e commutata da:
all'aumento della frequenza deve esserci un aumento del voltaggio e una
migliore dissipazione
a:
l'aumento della frequenza comporta un aumento di voltaggio e una diminuzione
della latenza termica della catena di raffreddamento, che comporta anche una
diminuzione della temperatura del corpo freddo, e l'adozione di materiali
con costante di conducibilita' termica piu' alta.
Per una risposta più accurata, occorrerebbe un libro di fisica quantistica.
2.39 Parliamo di cache...
Uno dei più grossi colli di bottiglia presenti all'interno di un calcolatore
è la RAM, che lavora a frequenze nettamente inferiori a quelle delle cpu (o,
se consideriamo un processore pipelined, di un singolo stadio della
pipeline). I calcolatori utilizzano come memoria centrale delle memorie di
tipo DRAM, molto economiche ma allo stesso tempo lente; altro tipo di
memoria è la SRAM, più veloce ma anche più ingombrante e costosa, in quanto
un bit di SRAM richiede molti più transistor di un bit di DRAM (6 transistor
contro 2). Si è quindi cercato di ottimizzare questa situazione ponendosi
come obiettivo ultimo il raggiungimento di una memoria grande, veloce ed
economica.
Giocando su due fondamentali principi (principio di località temporale =
quando si accede ad un elemento di memoria c'è alta probabilità che entro
pochi cicli si acceda nuovamente allo stesso elemento; principio di località
spaziale = quando si fa riferimento ad un elemento di memoria, c'è alta
probabilità che entro breve si acceda ad elementi con indirizzo vicino) si è
pensato di creare più gerarchie di memoria, ponendo vicino alla cpu memorie
piccole e veloci, e all'ultimo livello la memoria centrale di sistema.
Poichè i livelli gerarchici più alti (più vicini alla cpu) sono di
dimensioni ridotte, è necessario molto spesso trasferire dati tra i vari
livelli gerarchici (sempre tra due livelli adiacenti). I moderni processori
x86 hanno usualmente due livelli di cache. La memoria cache viene vista come
organizzata in blocchi o linee (cache lines); la minima quantità di
informazione che può essere trasferita fra due livelli è appunto un blocco.
Se il dato richiesto dalla CPU fa parte di uno dei blocchi presenti nella
cache di livello superiore, si dice che la richiesta ha avuto successo
(hit). Se invece il dato non si trova nel livello superiore, si dice che la
richiesta fallisce (miss): per trovare il blocco che contiene i dati
richiesti, bisogna accedere al livello inferiore della gerarchia e
trasferire il blocco corrispondente al livello superiore. Si indica come
frequenza dei successi (hit rate) la frazione di accessi alla memoria che
hanno trovato il dato desiderato nel livello superiore; spesso questo valore
viene utilizzato come indice delle prestazioni della memoria gerarchica.
Dualmente, la frequenza dei fallimenti (miss rate), pari a miss rate = (1 -
hit rate) è la frazione di accessi alla memoria che non hanno trovato il
dato desiderato nel livello superiore. Il tempo di successo (hit time) è il
tempo di accesso al livello superiore della gerarchia di memoria, e
comprende anche il tempo necessario per stabilire se il tentativo di accesso
si risolve in un successo o in un fallimento. La penalità di fallimento
(miss penalty) è il tempo necessario per sostituire un blocco nel livello
superiore con un altro blocco preso dal livello inferiore e per passare alla
CPU le informazioni contenute in questo nuovo blocco. Il tempo di fallimento
(miss time) è dato da: miss time = hit time + miss penalty. Poiché il
livello superiore è più piccolo e più veloce, il tempo di successo è molto
inferiore al tempo necessario per accedere al secondo livello della
gerarchia, che invece rappresenta la componente principale della penalità di
fallimento.
Durante il progetto di una gerarchia di memoria, quattro sono le domande a
cui bisogna rispondere:
1. Dove si può mettere un blocco che viene portato dal livello inferiore al
livello superiore? (Problema del piazzamento di un blocco).
2. Dove si trova il blocco che contiene il dato richiesto? (Problema della
ricerca di un blocco).
3. Quale blocco presente al livello superiore deve essere sostituito da uno
del livello inferiore, in caso di fallimento? (Problema della sostituzione
di un blocco).
4. Cosa succede in caso di scrittura? (Problema della strategia di
scrittura).
2.39.1 Piazzamento di un blocco
In fase di esecuzione, la CPU può a priori tentare di accedere a una
qualunque parola nello spazio totale di indirizzamento: spazio che può
essere qui visto come corrispondente all'intera memoria RAM (livello più
basso nelle gerarchie della memoria di lavoro), ma che certamente eccede di
gran lunga quello disponibile nella cache di livello superiore. Occorre
quindi definire le possibili modalità per consentire ad ogni parola della
memoria indirizzabile di trovare (ove necessario) una posizione della cache
in cui possa essere trasferita - in altre parole, occorre definire una
corrispondenza tra l'indirizzo in memoria della parola e la locazione nella
cache. A questo scopo, sono state definite essenzialmente tre soluzioni
diverse:
1. Cache a indirizzamento diretto
2. Cache completamente associativa
3. Cache set-associativa a n vie
1. Cache a indirizzamento diretto
In una cache a indirizzamento diretto (direct mapped), ogni locazione di
memoria corrisponde esattamente a una locazione della cache. Questo è il
metodo meno ottimizzato in quanto 2 blocchi di memoria mappati sulla stessa
locazione di cache non potranno mai esservi presenti contemporaneamente.
2. Cache completamente associativa
In una cache completamente associativa (fully associative) un blocco di
memoria principale può essere messo in una qualsiasi posizione della memoria
cache; quando un dato viene inserito in cache, occorre tenere traccia della
sua posizione in memoria centrale. Poiché il blocco può essere messo in un
posto qualsiasi della cache, al momento della ricerca tutti i blocchi della
cache dovranno essere esaminati. Questo metodo, sebbene sembri il più
ottimizzato, è in realtà lento perchè di difficile implementazione, e i
segnali vengono fortemente rallentati da tutta la logica che devono
attraversare.
3. Cache set-associativa a n vie
Una cache set-associativa a n vie è costituita da numerosi insiemi (set),
ognuno dei quali comprende n blocchi. Anche la memoria RAM è vista come
organizzata in blocchi: ogni blocco della memoria corrisponde ad un unico
insieme della cache ed il blocco può essere messo in uno qualsiasi degli n
elementi dell'insieme. In altre parole, in una cache set-associativa a n
vie, ogni blocco della memoria può essere trasferito in un numero prefissato
n di posizioni all'interno di un insieme. Si tratta di uno schema intermedio
tra quello a indirizzamento diretto e quello completamente associativo: la
corrispondenza tra blocco di RAM e insieme avviene con un indirizzamento
diretto, mentre tutti i blocchi nell'insieme vengono poi esaminati per
verificare la corrispondenza.
Questo è il metodo migliore perchè bilancia costi, ottimizzazione e
prestazioni.
2.39.2 Ricerca di un blocco.
Poiché ogni elemento della cache può contenere parole memorizzate in diverse
locazioni di memoria, per sapere se una parola di memoria si trova nella
cache bisogna aggiungere nella cache un insieme di etichette (tag), che
contengono le informazioni necessarie per verificare se una delle parole
presenti nella cache corrisponde o meno alla parola cercata. E' necessario
disporre di un metodo per riconoscere se un blocco della cache contiene
informazioni valide: ad esempio, quando un processore viene acceso la cache
è vuota e le informazioni nelle etichette non hanno nessun significato. Si
aggiunge quindi a ogni elemento della cache un bit di validità (validity
bit) che indica se l'elemento stesso contiene dei dati validi. Il validity
bit è ovviamente indipendente dalla particolare filosofia scelta per il
piazzamento, ed è quindi presente in tutte le soluzioni.
2.39.3 Problema della sostituzione di un blocco.
Quando si verifica un fallimento nell'accesso alla cache, nel caso di cache
a indirizzamento diretto c'è un solo candidato alla sostituzione: il
problema si risolve quindi immediatamente. In una cache completamente
associativa, invece, bisogna decidere quale blocco sostituire: ogni blocco è
un potenziale candidato per la sostituzione. Occorre stabilire una politica
di sostituzione. Infine, se la cache è set-associativa, l'insieme
interessato è identificato immediatamente ma occorre stabilire una politica
di sostituzione limitatamente ai blocchi compresi nell'insieme. Le
principali strategie utilizzate per la scelta del blocco da sostituire sono
sostanzialmente tre: sostituzione casuale, sostituzione del blocco usato
meno di recente, sostituzione del tipo "first in first out". Nel caso di
sostituzione casuale (random), la scelta tra i blocchi candidati viene
effettuata a caso, eventualmente utilizzando dei componenti hardware di
supporto per l'identificazione del blocco.
Se la politica è quella del blocco utilizzato meno di recente (Least
Recently Used - LRU), il blocco sostituito è quello che è rimasto
inutilizzato da più lungo tempo. A questo scopo, nei termini più semplici ad
ogni blocco si associano dei contatori verso il basso che al momento della
scrittura nel blocco vengono posti al valore massimo e che vengono poi
decrementati di un?unità ogni volta che si effettua una lettura in un blocco
diverso. La sostituzione toccherà quindi il blocco associato al contatore
col valore più basso. Infine, se la politica scelta è quella First In First
Out (FIFO), il blocco sostituito è quello utilizzato N accessi precedenti,
indipendentemente dal fatto che sia stato utilizzato o meno negli ultimi
(N-1) accessi. La selezione casuale ha evidentemente il vantaggio di essere
semplice da realizzare; peraltro, non tiene alcun conto del principio di
località temporale e si rischia di sostituire un blocco che è stato scritto
da poco e cui si tenterà ben presto di accedere nuovamente. Al crescere del
numero di blocchi di cui bisogna tenere traccia, peraltro,la politica LRU
(che è basata proprio sul principio di località temporale) diventa sempre
più costosa; in pratica, si ricorre a qualche semplice approssimazione. Val
la pena di notare che in una cache set-associativa a 2 vie, la sostituzione
a caso ha una frequenza dei fallimenti pari a circa 1.1 volte quella
ottenuta utilizzando la politica LRU. Al crescere delle dimensioni della
cache, la frequenza dei fallimenti diminuisce per entrambe le strategie e la
differenza in termini assoluti diventa minima. Il vantaggio della
sostituzione LRU aumenta al crescere del grado di associatività, ma in tal
caso è anche più difficile da realizzare.
2.39.4 Problema della strategia di scrittura.
Il problema nasce dalla necessità che, quando si deve scrivere il risultato
di un'operazione, si vuole certamente che anche l'istruzione di scrittura
sia eseguita velocemente (e quindi accedendo alla cache), ma si vuole anche
che l'informazione contenuta in qualsiasi istante nella cache sia
consistente con quella contenuta nella RAM. Le possibili strategie per la
gestione delle scritture sono write through e write-back.
Nell'approccio write-through, quando si esegue un'istruzione di scrittura
l'informazione viene scritta simultaneamente nel blocco della cache e nel
blocco della memoria principale. La coerenza è quindi sempre rispettata, a
prezzo però di un maggior tempo richiesto da ogni operazione di scrittura.
Nella soluzione write-back (o copy back), invece, al momento dell'esecuzione
dell'istruzione l'informazione viene scritta solo nel blocco della cache. Il
blocco modificato viene scritto nel livello inferiore della gerarchia solo
quando se ne decide la sostituzione. Al termine dell'istruzione di scrittura
nella cache, quindi, la memoria RAM conterrà un valore diverso da quello
presente nella cache; in questo caso si dice che la memoria e la cache sono
inconsistenti (cioè non sono coerenti): il blocco della cache può essere
clean (unmodified) se non ci sono state scritture, oppure dirty (modified)
se sono state effettuate scritture. Poiché le prestazioni delle CPU
continuano ad aumentare con un tasso di crescita superiore a quello delle
memorie principali basate su DRAM, la frequenza con cui vengono generate le
scritture da parte del processore sarà ben presto superiore a quella
gestibile dal sistema di memoria, anche in presenza di memorie più grandi
sia in termini fisici che in termini logici; è quindi ragionevole prevedere
che in futuro verrà utilizzata sempre più la strategia write-back. Fra
l'altro, ancora il principio di località porta a prevedere che se
l'operazione di scrittura ha interessato un particolare blocco di cache, la
probabilità che nuove scritture interessino lo stesso blocco è alta - è
quindi probabile che ci siano state numerose modifiche del blocco di cache
prima che questo venga sotituito e che si ricorra al write-back.
3. INTEL
3.1 Cos'è un processore Xeon?
E' un processore per workstation/server, basato sulle stesse tecnologie dei
processori Pentium II/III/4, ma installabile in configurazioni con più
processori rispetto alle versioni desktop e spesso contenente maggiori
quantitativi di cache.
3.2 Cosa significa IA64?
E` un'architettura di set di istruzioni sviluppata  da Intel e incompatibile
con l'attuale IA-32. L'architettura IA-64 e` VLIW (EPIC) a 64bit, al
contrario della x86-64 (vedi) che è ancora CISC. Il processore puo` comunque
emulare la modalita` IA-32 dei comuni processori per PC, a  scapito di
un'enorme perdita di velocita`.
Affinche` un programma possa girare in maniera ottimale su un processore
IA-64 deve essere ricompilato in modo da utilizzare il nuovo set di
istruzioni. L'architettura IA-64 prevede 128 registri per interi, 128
registri floating point, 8 branch register (v branch prediction), 64
predicate register. Questa tecnologia  e` attualmente implementata sugli
Itanium e verra` supportata dalla sucessiva generazione di CPU Intel a
64bit, codename McKinley.
4. AMD
4.1 Cosa significa il numero dopo gli ultimi Athlon Xp? Perchè la frequenza
che leggo dal BIOS è diversa?
AMD con la linea di processori "Athlon XP" ha introdotto il cosiddetto
"model numbering", con lo scopo di paragonare i nuovi modelli con i più
vecchi Thunderbird. In pratica, un XP 1800+ pur viaggiando a 1533 MHz può
essere paragonato ad un ipotetico Thunderbird 1800MHz piuttosto che 1533MHz.
Ecco una lista che associa a ogni model number la frequenza di funzionamento
della CPU:
 1400+ -  (1200 MHz)
 1500+ 1333 MHz (1300 MHz)
 1600+ 1400 MHz
 1700+ 1466 MHz
 1800+ 1533 MHz
 1900+ 1600 MHz
 2000+ 1666 MHz
 2100+ 1733 MHz
 2200+ 1800 MHz
 2400+ 2000 MHz
 2600+ 2133 MHz
 2700+ 2166 MHz @166fsb
 2800+ 2250 MHz @166fsb
Tra parentesi sono segnalate le frequenze dei processori Mobile Athlon 4/XP
venduti con un model numbering simile a quello degli Athlon XP per desktop.
4.2 E' vero che un Athlon Xp brucia più facilmente di un Pentium4?
Si e no...
No perchè AMD a partire dagli Athlon XP ha inserito nelle CPU un termistore
che riportando la temperatura alla scheda madre le permette di disattivare
la cpu in caso si raggiungano valori troppo alti.
Sì perchè apparentemente questa tecnologia sembra non funzionare
corettamente o non essere supportata da molte schede madri.
Oggettivamente la protezione termica dei Pentium4 è migliore; bisogna
comunque precisare che ciò è importante *SOLO* se il dissipatore è montato
in modo non corretto. In caso contrario è praticamente impossibile bruciare
una cpu, anche staccando la ventola, perché la temperatura sale molto
lentamente e i controlli su scheda madre (qualsiasi scheda madre) hanno
tutto il tempo di intervenire.
4.3 Dopo aver montato il mio nuovo pc con Athlon Xp ho provato ad
accenderlo, ma non è partito. Ho smontato il dissipatore e ho notato un po'
di acido, cosa è successo?
Piangi pure: montando scorrettamente il dissipatore hai appena buttato dalla
finestra dai 150 ai 300 euro di cpu!
Infatti il dissipatore non aveva il dovuto contatto con la superficie del
core della cpu, il quale si è scaldato oltre la soglia limite dei 90°C
fondendosi.
Se ti può consolare hai un nuovo soprammobile/portachiave/ciondolo, poichè
il tuo commerciante si rifiuterà categoricamente di sostituirti il
processore bruciato.
La prossima volta fai attenzione e magari fatti dare una mano da un amico
esperto...
4.4 Come posso fare per essere sicuro di montare bene il dissipatore
sull'Athlon?
AMD ha pubblicato una guida all'installazione dei dissipatori su processori
Socket A:
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/23986.pdf
Seguendo quelle istruzioni è impossibile sbagliare.
Un consiglio: fai il lavoro con calma e smonta la scheda madre dal case. Il
voler risparmiare 15 minuti può portare a tragiche conclusioni (vedi cpu
bruciata).
Ricordati di spalmare un velo di pasta termoconduttiva sul core della cpu,
levando l'eventuale francobollo rosa (pad termico) presente sul dissipatore.
La pasta garantisce la migliore conduzione del calore fra cpu e dissipatore.
Non commettere l'errore di mettere sia pasta che pad, oppure nessuno dei
due!
4.5 Athlon e Pentium sono incompatibili tra di loro? Uno dei due è più
stabile dell'altro?
Si tratta di due processori che utilizzano lo stesso set di istruzioni (noto
come x86, e più precisamente i686), vale a dire 'parlano la stessa lingua'.
Di conseguenza a parità di istruzione il loro comportamento è lo stesso: se
così non fosse significherebbe che in uno dei due c'è un errore di
progettazione, un bug, che in una CPU è un'eventualità rara, e in generale
viene corretta assai rapidamente.
In breve: Athlon e Pentium non sono incompatibili.
4.6 L'Athlon Thunderbird ha le istruzioni SSE?
No, quelle le hanno soltanto l'Athlon XP, MP e Duron (dal 950 in poi, ma non
tutti i 950) per Desktop e l'Athlon 4 e i nuovi Duron per Notebook.
4.7 Che differenze ci sono tra Athlon "classic", Thunderbird, Spitfire,
Duron, Palomino, XP, 4, MP, Morgan, (Thoroughbread), (Barton), (Appaloosa)?
L'Athlon Classic è stato il primo processore della famiglia K7. Prodotto a
.22/.18u, aveva 512 K di cache L2 esterna, funzionante a una frazione della
frequenza del processore (1/2 fino a 700 MHz, 2/5 dai 750 MHz agli 850 MHz,
1/3 dai 900 MHz al gigahertz).
Thunderbird è stato il suo successore, caratterizzato da un processo
produttivo a .18u e con 256K cache integrata nel die alla stessa frequenza
del processore. Quest'ultimo è stato prodotto fino alla frequenza di 1400
Mhz.
Lo Spitfire è la versione economica del Thunderbird, venduto con il nome di
"Duron", con cache L2 di soli 64Kb.
Il core Palomino è l'evoluzione del core Thunderbird sempre a .18u ma con
migliorie ai TLB, con l'aggiunta di un'unità di data prefetch in hardware e
con supporto per le istruzioni SSE. Sul core Palomino sono basati l'Athlon
Xp, l'Athlon 4, l'Athlon MP; da esso è derivato anche il core Morgan che
contiene solo 64kb di cache L2 ed è venduto come "Duron".
Il core Thoroughbred è un Palomino a 0.13u senza altre modifiche
significative
Presto saràvrilasciato Barton, simile a Thoroughbred ma con 512kb di cache
L2.
4.8 Cosa significa x86-64?
x86-64 e`  un'architettura di set di istruzioni sviluppata da AMD, che si
propone di espandere l'attuale set di istruzioni x86 aggiungendo delle
estensioni a 64bit. Questa soluzione, al  contrario di quella scelta da
Intel (vedi IA-64), permette l'esecuzione in maniera nativa del codice a
32bit o 16bit esistente anche in maniera concorrente al codice a 64bit.
L'architettura x86-64 aggiunge otto GPR (General Purpose Register) a 64bit,
estende gli attuali 8 registri x86 a 64bit e prevede 16 registri a 128bit
per le istruzioni SSE/SSE2.
I processori  x86-64 prevedono due modalita` di funzionamento controllate
dal bit LMA (Long Mode Active) del registro EFER (Enhanced Features Enable
Register): quando il bit LMA e` settato a 0 il processore si comporta come
un normale x86, con registri e spazio di indirizzamento a 32bit; quando il
bit LMA e` settato a 1,
vengono  attivate  tutte le  estensioni  ed  il processore  entra nella
cosiddetta Long Mode. A sua volta la Long Mode si differenzia in
Compatibility Mode e 64bit Mode. La  prima modalita` viene utilizzata da OS
a 64bit per far girare programmi a 32bit o 16bit senza che essi vengano
ricompilati. La seconda modalita` prevede una ricompilazione per essere
sfruttata, ed in  questo caso l'applicazione ha a disposizione tutte le
caratteristiche del processore. Il cambio di modalita` viene gestito in
maniera trasparente dall'OS che agisce in maniera opportuna sul code segment
del programma.
AMD prevede di introdurre questa tecnologia con i processori della serie
Hammer, che dovrebbero fare il loro debutto nel Q1 2003.
4.9 Quali OS supportano x86-64?
Attualmente è in corso il port verso x86-64 di Linux e FreeBSD, ed e`
previsto entro breve tempo il supporto da parte di NetBSD.
Anche Apple, con il suo MacOS X, ha mostrato interesse per questa
tecnologia, ma, al momento della stesura di queste FAQ, l'ipotesi di un
supporto di Apple per x86-64 rimane piuttosto fantasiosa.
Anche Microsoft, sta lavorando assieme ad AMD a una versione di Windows per
x86-64, ma sulla data di uscita ci sono ancora diversi dubbi.
Ovviamente tutti gli OS che oggi girano sui processori x86-32 potranno
girare anche su x86-64, senza pero` sfruttarne tutte le caratteristiche.
-----


periodico nei newsgroup it.comp.hardware.cpu e it.faq.
Il link non funziona


Ovviamente ci sono alcune precisazioni da fare:
1) l'indirizzo su hit.edengames non funziona (mi verrebbe da dire
"ovviamente" dato che per gli impegni di uno o dell'altro abbiamo smesso di
aggiornare il sito)
2) per quanto riguarda me, in questi 8 mesi non ho in pratica mantenuto le
faq anche se non mi è sembrato che ci fossero particolari richieste di
integrazioni o correzioni ecc... questo non è un lavoro che si può fare
tutto da soli, anche se non so quanto tempo avrei potuto dedicarci se avessi
avuto un feedback...
3) 8 mesi in questo campo sono un'eternità, quindi molte informazioni sono
obsolete...


 Il link non funziona
Ho precisato nel post più sotto :p


obsolete...
Esatto e tenere aggiornate le FAQ è un bel lavoraccio. Che ne dici di
aprire una specie di Wiki cosi chiunque può andare ed editare le FAQ?


 aprire una specie di Wiki cosi chiunque può andare ed editare le FAQ?
Ho capito cosa intendi, comunque non lo conosco... hai qualche esempio da
farci vedere? vuoi metterla in piedi tu l'infrastruttura? :p
Saluti!


 vuoi metterla in piedi tu l'infrastruttura? :p
Cough cough :)
