computer,hardware,software,gaming,notebook,portatile,home theater,htpc,windows,overclock
    Ricerca avanzata
 
pecora nera
 

 categorie categorie del sito
 Schede madri separatore
 Processori separatore
 Bios separatore
 Schede video e monitor separatore
 Chipset separatore
 Memorie RAM separatore
 Storage separatore
 Dissipazione separatore
 Accessori, case e sistemi separatore
 HTPC e alta definizione separatore
 Notebook, netbook e phone separatore
 Sicurezza e reti separatore
 Software e videogame separatore
 Web e gossip separatore
 Overclock e modding separatore
 HowTo separatore
 Elettronica e informatica separatore
 
 Guida al bios separatore
 FAQs separatore
 Windows Vista FAQ & Tips separatore
||
 servizi servizi del sito
 Iscrizione ai servizi separatore
 Iscrizione a Daily Dinox's separatore
 Informazioni newsletter separatore
 Pubblicità su Dinox PC separatore
Tool ricerca per Firefox 2 Tool ricerca per Firefox 2 separatore
Tool ricerca per IE7 Tool ricerca per IE7 separatore
Preferiti Dinox PC nei preferiti separatore
Imposta come homepage Dinox PC come homepage separatore
Links utili
 Aziende ITC separatore
 Partners di Dinox PC separatore
 Mr.Webmaster separatore
 Neo Hardware separatore
 DevSpy.com separatore
 MPEGX.com separatore

www.aruba.it
www.
Pentium 4 3.2GHz EE vs. Athlon 64 3200
Prodotta da Dino Fratelli il 03.02.2004

Prestazioni teoriche

Vai a 

Quando si parla di Pentium 4 e di Athlon, non si può fare a meno di mettere a confronto le differenti pipeline. Nei numerosi test che sono stati fatti su queste CPU, spesso è stato messo in risalto il fatto che le prestazioni di un processore Pentium 4 a 3GHz fossero più o meno pari a quelle di un Athlon XP 3000+ funzionante, realmente, a 2167 MHz. Come mai accade questo? Alla domanda si può rispondere, praticamente, in un solo modo: la differenza della profondità della pipeline. Nel caso del Pentium 4 la pipeline è lunga 20 stadi mentre l'Athlon 64 ne ha solo 12.

La pipeline, un argomento di sempre scottante attualità! Questa tecnica è sfruttata in tutti i chip che si occupano di eseguire dei task, come CPU, GPU, processori RISC, etc. Grazie a tale meccanismo è possibile dotare il processore di una "catena di montaggio" nella quale vengono impilate tutte le operazioni da eseguire secondo un ordine stabilito.

Anche se non staremo qui a discutere di tutti i dettagli in merito, che potete trovare a questo indirizzo, è bene ricordare quelli che sono i classici stadi di una pipeline in una CPU:

  • Instruction Fetch: caricamento dell'istruzione;
  • Instruction Decode: decodifica dell'istruzione caricata;
  • Operand Fetch: caricamento degli operandi relativi all'istruzione;
  • Execute: esecuzione dell'istruzione sugli operandi caricati;
  • Store: memorizzazione del risultato in cache.

Ovviamente questi stadi sono del tutto generici: ad essi se ne possono aggiungere altri a proprio piacimento. Se gli stadi della pipeline vengono incrementati in numero, ognuno di essi svolgerà un compito minore e più specifico: così possiamo splittare la fase di caricamento dell'istruzione in una fase di reperimento ed una di caricamento vera e proprio.

A questo punto potreste chiedervi perché fare una pipeline più o meno lunga e quali possono essere gli effetti del differente numero di stadi. Ebbene, il pipelining è una tecnica molto interessante che permette di avere prestazioni notevolmente più elevate di una situazione senza pipeline. Ma, come tutte le cose belle, anche il pipelining ha qualche difetto di efficienza: questa è massima solo quando la pipeline lavora con tutti gli stadi pieni ed è minima quando è vuota w comincia ad essere riempita. Nella tabella qui sotto abbiamo schematizzato quanto stiamo dicendo:

I1 IN I2 IN I3 IN I4 IN I5 IN        
IF IF IF IF IF        
  ID ID ID ID ID      
    OF OF OF OF OF    
      E E E E E  
        S S S S S
        I1 OUT I2 OUT I3 OUT I4 OUT I5 OUT
1 2 3 4 5 6 7 8 9

Con la pipeline vuota, la prima fase della prima istruzione viene immessa nella pipeline al momento 1 e subisce la fase di Instruction Fetch (IF). Al secondo passo la prima istruzione passa alla fase di Instruction Decode (ID) mentre una nuova istruzione entra in pipeline nella fase IF... E così via. Dopo 5 passi ecco che la prima istruzione restituisce il suo risultato. Solo dal quinto passo in poi, quando la pipeline è piena, essa diventa efficiente ed ogni ciclo di clock tira fuori un risultato.

Ma allora cosa rende la pipeline inefficiente? Quando il microcodice dato in pasto alla CPU richiede che ci sia un salto condizionato o incondizionato, la pipeline deve essere svuotata perché la sequenza di istruzioni cambia ed essa deve essere riempita con una nuova serie di istruzioni. Più salti si incontrano nell'esecuzione di un compito e più diminuisce l'efficienza della pipeline.

Ecco, allora che entrano in gioco meccanismi di predizione dei salti: questi permettono di non interrompere il normale flusso delle istruzioni continuando a caricare la pipeline anche in presenza di un salto con istruzioni che "con molta probabilità" dovrebbero essere eseguite. Se poi sono proprio quelle le istruzioni da eseguire a seguito del salto tanto di guadagnato: la pipeline non viene svuotata e l'efficienza rimane al massimo. Se le istruzioni previste non erano quelle caricate, allora occorre svuotare la pipeline e ripartire da zero: comunque il fatto di aver continuato a riempire la pipeline con istruzioni che poi non sono servite non ha causato nessun ritardo ulteriore. Statisticamente, perciò, conviene predire i salti e più la previsione è certa e più la pipeline funziona al massimo delle possibilità. Non per nulla, Intel ed AMD hanno lavorato e continuano a lavorare molto per ottimizzare l'unità di Branch Prediction (previsione dei salti) al fine di renderla una "maga" infallibile!

L'ultima domanda che viene da porci, dunque, è perché fare una pipeline più o meno lunga? La sola ragione per volere una pipeline più lunga di un'altra è quella di semplificare i compiti di ogni stadio: in questo modo ogni compito richiederà un tempo minore per essere eseguito. E questo porta come conseguenza, il poter arrivare ad una frequenza di funzionamento della CPU più elevata. Infatti, a determinare la massima frequenza di funzionamento di un processore, è lo stadio della pipeline più lento.

Ad esempio, se ogni stadio della pipeline viene eseguito in un ciclo di clock e lo stadio più lento impiega un secondo per essere portato a termine, la frequenza massima di funzionamento di una tale CPU è pari ad 1Hz. Se riusciamo a fare una pipeline col doppio degli stadi, allora potrebbe accadere che lo stadio più lento impieghi 0.5 secondi ad essere completato e questo porterebbe la massima frequenza di funzionamento a 2Hz, il doppio della precedente.

Quindi, ciò che viene contrapposto, è l'efficienza della pipeline e la frequenza di funzionamento della CPU: con una pipeline più lunga posso salire in frequenza ma, statisticamente, è più difficile tenere la pipeline completamente piena e quindi efficiente.

Un altro parametro molto importante nella valutazione delle prestazioni teoriche, è l'IPC o Instruction Per Clock. Il numero di istruzioni per ciclo di clock che il processore Intel Pentium 4 è in grado di completare è pari a 6. Per un processore Athlon XP questo numero è pari a 9 ed è leggermente superiore per la serie a 64-bit. In effetti, stando alla teoria, non si può dire che un processore ad 1Hz in grado di eseguire 1 milione di IPC sia migliore o peggiore di uno funzionante a 1 milione di Hz ma in grado di eseguire 1 solo IPC: il tutto dipende dall'applicazione che si vuole eseguire!

A sostegno della tesi che Intel intende investire in una CPU in grado di eseguire meno calcoli in un ciclo di clock ma che possa raggiungere frequenze di funzionamento più elevate, troviamo anche le due unità di calcolo ALU (Arithmetic Logic Unit) contro le tre di un Athlon XP e di un Athlon 64. Ma, mentre le ALU delle soluzioni AMD lavorano alla stessa frequenza della CPU, quelle del Pentium 4 lavorano al doppio della frequenza: nel caso del Pentium 4 Extreme Edition che stiamo analizzando, le due ALU lavorano a 6.40GHz!

Indietro
Caratteristiche tecniche

Avanti
Sistema di prova