Pentium 4 3,06 Ghz: il nuovo riferimento prestazionale

Pentium 4 3,06 Ghz: il nuovo riferimento prestazionale

Annunciato molte volte negli scorsi mesi, il processore Pentium 4 3,06 Ghz è da oggi ufficialmente disponibile. Segna nuovi livelli prestazionali e integra per la prima volta su un sistema Desktop la tecnologia Hyper-Threading mutuata dalle cpu Xeon

di pubblicato il nel canale Processori
 

Hyper-Threading: alcune premesse teoriche

Hyper-Threading è, in termini molto semplici, una tecnologia che permette al sistema operativo di vedere il processore come se fosse composto da due distinte unità logiche; è stata implementata da Intel inizialmente all'interno dei propri processori Xeon e in seguito di quelli Pentium 4, a partire dalla versione a 3,06 Ghz di clock. Questa particolarità permette al sistema di eseguire contemporaneamente due thread, sfruttando appieno tutti i cicli di clock messi a disposizione dal sistema e, quindi, ottenendo un aumento delle prestazioni velocistiche complessive. Prima di analizzare Hyper-Threading è però indispensabile fare alcune premesse sul funzionamento dei sistemi biprocessore, per meglio capire come operi questa nuova tecnologia.

Uno dei punti più dibattuti quando si discute di sistemi biprocessore è quello del sistema operativo da utilizzare; è fatto arcinoto che il sistemo operativo Windows 98 non supporta la modalità biprocessore, nel senso che possono essere installati su sistemi dual processor senza alcun tipo di problema ma non si avantaggeranno in nessun modo della presenza della seconda cpu, anche se si utilizza del software scritto in modo tale da avantaggiarsi dei due processori. Per poter sfruttare entrambi i processori è necessario utilizzare altri sistemi operativi, come ad esempio Windows 2000 (sia Workstation che Server), Windows XP Professional, Linux, Unix, BeOS e altri.

Chiarita la compatibilità con il sistema operativo, è necessario specificare che utilizzare un sistema operativo compatibile con la modalità dual processor non significa avantaggiarsi automaticamente della presenza di due processori: è necessario che il software utilizzato sfrutti i due processori. A titolo di esempio, il rendering di una scena con 3D Studio Max è una tipica operazione che sfrutta la seconda cpu, mentre l'utilizzo della maggioranza dei filtri di Photoshop no. Passare ad un sistema biprocessore ha pertanto senso nel momento in cui il software che si utilizza per la maggiore sfrutta entrambi i processori contemporaneamente.

Un approccio molto simile vale per Hyper-Threading: questa tecnologia riprende per buona parte i principi di funzionamento di un sistema biprocessore, pertanto valgono le medesime regole legate al sistema operativo appena viste. Fa eccezione il sistema operativo Windows XP Home, che a differenza della versione Professional non supporta due cpu fisiche ma sfrutta pienamente Hyper-Threading in quanto supporta due processori logici.

Introduciamo della terminologia che meglio permette di analizzare le caratteristiche e le performances dei sistemi biprocessori:

  • scalabilità: indica l'aumento di prestazioni ottenibile, con una determinata applicazione, utilizzando due processori al posto di uno (oppure quattro processori al posto di due, e via discorrendo); se il rendering di una scena richiede, ad esempio, 100 secondi per essere completato con un processore e 50 secondi con due processori, si otterrà una scalabilità di 2 (100/50), cioè l'impiego del secondo processore porta ad un raddoppio delle prestazioni (nell'esempio, ad un dimezzamento dei tempi di rendering). Quello della scalabilità pari a 2 è un caso teorico, in quanto solo con poche applicazioni ci si avvicina a tale limite ed in genere essa è compresa tra 1 e 1.5.
  • multitasking: si intende la capacità di un computer e del sistema operativo da esso utilizzato di eseguire processi (o applicazioni) indipendenti tra di loro in modo simultaneo, suddividendo le risorse disponibili; ad esempio, compressione di un file e decodifica video.
  • multithreading: all'interno di un'applicazione o processo indica la capacità, da parte del sistema operativo, di suddividere il processo in piccole parti eseguite in modo indipendente l'una dall'altra.

Se si utilizzano due processori, è possibile fare in modo tale che uno dei due sia impegnato nell'esecuzione di alcuni calcoli (ad esempio, elaborazioni di dati di un foglio elettronico) mentre l'altro in altre operazioni (ad esempio, compressione di alcuni files) contemporaneamente: questo è un tipico esempio di multitasking, cioè di due o più applicazioni eseguite contemporaneamente in modo indipendente tra di loro. Viceversa, se un particolare software è di tipo multithreading è possibile, utilizzando un secondo processore, fare in modo che alcuni thread vengano processati da una cpu, mentre altri thread dall'altro processore; così facendo, si ottiene una diminuzione dei tempi necessari per eseguire tutti i thread dell'applicazione, pertanto si hanno prestazioni velocistiche superiori. In che misura le prestazioni aumenteranno? In base alla scalabilità del processo.

 
^