Si può andare di più
Truccare il PC ? Overclocking tra mito e realtà
Utilizzare i componenti oltre la propria frequenza nominale: tra rischio calcolato e
avventatezza.
di Fernando Carello
Premessa
Mai sentito parlare di overclocking ?
Il tema è spesso fonte di discussioni tra gli addetti ai lavori: da una
parte, coloro che affermano che questa pratica (consistente, per chi non lo sapesse,
nell'utilizzare i componenti del PC a frequenze maggiori di quelle per cui sono commercializzati) è
sempre da evitare per non correre il rischio di danneggiare i componenti (a capo di questo
gruppo sono, ovviamente, produttori e commercianti); dall'altra coloro che, adducendo motivazioni
più o meno sensate di natura tecnica o commerciale, si dannano nella ricerca di maggiori
prestazioni dal proprio sistema.
Chi scrive appartiene probabilmente al secondo gruppo: operando cum grano salis è infatti
possibile, in alcuni casi, "spremere" qualche percento in più dal nostro PC senza metterne a repentaglio
l'integrità più di tanto.
Un po' di (necessaria) teoria
L'hardware del PC è prevalentemente di tipo sincrono, ovvero il suo funzionamento
è regolato da un segnale periodico regolare denominato clock; esiste un clock principale,
o di sistema, e vari clock secondari, o derivati.
Determinati componenti (controller, schede video,...) hanno il proprio clock, più o meno
multiplo/sottomultiplo di quello di sistema.
Chi genera tutti questi segnali di temporizzazione ?
Fino a pochi anni fa, tutto era mosso da oscillatori al quarzo, ben riconoscibili con il loro
guscio metallico, con forma di parallelipipedo o di cilindro schiacciato, con la frequenza
stampata sopra; oggi si usano (specialmente per le schede madri) per lo più oscillatori
integrati PLL capaci di varie frequenze di uscita.
L'overclocking si basa per l'appunto sulla manipolazione di tali frequenze, che vengono innalzate al fine di
imporre un clock più rapido alla componentistica.
All'epoca degli oscillatori al quarzo, overclockare non era semplice: occorreva infatti sostituirli
materialmente, in certi casi ricorrendo al saldatore; oggi per fortuna la procedura è meno
cruenta, e si basa sullo spostamento di opportuni jumper o sulla modifica dei
valori di appositi registri.
Quali componenti si prestano maggioramente all'overclocking ?
Sostanzialmente, processori, schede madri e schede acceleratrici multimediali in generale
(comprese le schede video).
Dal clock di funzionamento della scheda madre dipendono in maniera più o meno diretta il clock
della CPU e le velocità di vari bus di sistema, quali il bus della memoria e il bus PCI; le
schede acceleratrici hanno clock "proprietari" per la temporizzazione del processore multimediale
e dei bus per la memoria e l'I/O.
Cominciamo ad analizzare il sistema scheda madre + CPU; qui abbiamo sostanzialmente tre clock di
interesse: quello di sistema, che impone la frequenza-base della scheda madre,
che governa anche il bus della memoria; quello del bus PCI, che nella maggior parte dei casi è la
metà esatta del precendente; quello della CPU, multiplo di quello di sistema per via di un
fattore di moltiplicazione che varia a seconda della CPU (e spesso è a sua volta
selezionabile su più valori).
E' dunque chiaro che, innalzando la frequenza di clock della scheda madre, si innalzano
automaticamente anche la frequenza del bus PCI e quella della CPU.
Sulla maggior parte delle schede madri oggi in commercio sono previste varie frequenze-base di
funzionamento, selezionabili tramite gruppi di jumper la cui configurazione è indicata sul
libretto o direttamente sulla scheda madre: oltre ai canonici 60 e 66.6 MHz (quest'ultima la
frequenza "standard" per i sistemi attualmente commercializzati) non è raro trovare i 75 MHz,
ed in qualche caso gli 83 MHz.
Facciamo un esempio: un processore Intel Pentium 200 opera con una frequenza-base di 66.6 MHz,
che internamente alla CPU viene moltiplicata per un fattore 3x; abbiamo quindi che il bus PCI va
a 33.3 MHz, la scheda madre (compresa memoria principale e cache di secondo livello) a 66.6 MHz
e la CPU a 200 MHz.
Se selezioniamo una frequenza-base di 75 MHz, in caso di successo (ovvero se il sistema funziona
alla nuova frequenza) avremo il PCI a 37.5 MHz e la CPU a 225 MHz, con un incremento del 12 %;
supponendo che non ci sia bisogno di aggiungere stati di attesa, il guadagno netto di
prestazioni è, benchmark alla mano, pari all'incremento del clock.
Limitatamente alle CPU, esiste un'altra via per l'overclocking: la selezione di un più
alto fattore di moltiplicazione per il clock.
Molti processori, infatti, hanno la possibilità di scegliere diversi rapporti di
moltiplicazione tra il clock-base e il clock interno: nell'esempio del Pentium 200, esso usa
normalmente un moltiplicatore 3x, ma quasi sicuramente ha a disposizione anche 2.5x e 2x.
Analogamente, alcune serie di Pentium 200, Pentium MMX 200 e K6 200 hanno anche la
possibilità di funzionare a 3.5x: questo significa che, in teoria, possono essere spinti a 233 MHz (66.6
x 3.5).
In realtà le cose non sono così semplici: concentrandoci sui processori e parlando per sommi capi,
ricordiamo che la CPU è un componente clockato, e quindi deve sincronizzare le proprie operazioni
con un clock; affinché tutto funzioni correttamente, i ritardi tra l'arrivo del fronte
di clock e la sincronizzazione della CPU devono essere sufficientemente brevi, pena una perdita
di sincronismo con conseguente malfunzionamento, o blocco, del sistema.
Questi ritardi massimi sono, come si intuisce, inversamente proporzionali alla frequenza di clock:
più la frequenza sale, più i fronti di clock si avvicinano, meno tempo ha a disposizione il
processore per sincronizzarsi. Un processore destinato ad operare ad una certa frequenza
potrebbe non essere in grado di sincronizzarsi in tempo se usato in condizioni di overclocking.
Tuttavia, va considerato che il segnale di clock non è precisamente rettangolare: la sua forma
d'onda è in realtà trapezioidale (vedi figura), ed il fronte di clock viene assunto in coincidenza con la metà
del primo lato obliquo del trapezio.
Avendo indicato (arbitrariamente) con Tmax il tempo massimo ammissibile per la sincronizzazione da
parte della CPU, si vede come se si potessero rendere più ripidi i lati obliqui
del trapezio aumenterebbe il tempo a disposizione per la sincronizzazione, come illustrato nel
secondo grafico: si nota che, nonostante il periodo di clock sia rimasto lo stesso, il tempo a
disposizione per la sincronizzazione è ora T'max , maggiore del
Tmax del precedente caso.
In una certa misura, ciò è possibile aumentando la tensione, in quanto così si ha
a disposizione più corrente di carica e diminuisce il tempo necessario a caricare le capacità
parassite che determinano la forma trapezioidale del segnale (che, in assenza di queste
capacità, sarebbe rettangolare).
Il ragionamento del tutto qualitativo fin qui fatto aiuta a capire che alcune CPU necessitano,
per funzionare in regime di overclocking, di un aumento della tensione di funzionamento.
Ad esempio, un AMD K6 200 (che normalmente opera con una tensione interna di 2.9V) può aver bisogno,
per operare a 225 MHz, di alzare la tensione a 3.0 o 3.2V. Solo la prova pratica, comunque, può
stabilire se una CPU abbia bisogno o no di un aumento di tensione per essere overclockata.
Naturalmente, questo non è senza conseguenze: far lavorare un componente CMOS quale una CPU ad
una tensione di alimentazione maggiore, sia pur di poco, rispetto ai valori nominali comporta
(oltre al decadimento della garanzia !) quanto meno un aumento dell'energia assorbita e dissipata sotto forma di calore: a
questo va sommato l'aumento di calore dovuto all'incremento della frequenza di funzionamento
(l'overclocking stesso): in particolare, si può assumere in prima approssimazione che la
dissipazione di energia sia proporzionale alla frequenza di funzionamento, e al quadrato della
tensione di alimentazione; di conseguenza, dopo un overclocking è possibile che il calore
generato aumenti anche del 50%.
Diventa quindi fondamentale, per evitare di "cuocere" il processore (ricordiamo che, per la
maggior parte delle CPU attualmente in commercio, la temperatura della superficie non deve
superare, durante l'utilizzo, i 65 C), assicurare una corretta dissipazione del calore
in eccesso: un processore overclockato dovrà essere dotato di un dissipatore di ottima qualità
e di generose dimensioni montato tramite un velo minimo di pasta dissipante, nonché di una
ventola di buona portata montata su cuscinetti a sfera (ball-bearing quindi,
e non sleeve-bearing); e naturalmente, l'intero cabinet dovrà essere ben ventilato.
Ad ogni modo, occorre tenere ben presente che si sta utilizzando il processore al di fuori
delle sue specifiche di funzionamento, con tutto quel che ne consegue in termini di
responsabilità, garanzia, etc.: se durante questi esperimenti la CPU rimane danneggiata, ben
difficilmente potrete chiederne la sostituzione al vostro fornitore !
Come accennato in precedenza, anche altri componenti del PC si "prestano" all'overlclocking: ad
esempio le schede video (sia 2D che 3D).
A differenza di quanto avviene con le CPU, il clock di una scheda video si modifica generalmente
via software, intervenendo su opportuni registri della scheda.
Per fare ciò può essere sufficiente settare opportunamente una variabile d'ambiente (come nel
caso delle schede acceleratrici 3DFX Voodoo, vedi numero precedente di BETA), ma spesso occorre
intervenire scrivendo su opportune porte di I/O, diverse a seconda del modello di scheda
posseduta e della mappatura eseguita dal PCI BIOS.
Per fortuna, è possibile reperire alcune utility che ci evitano la fatica: la più nota è
probabilmente MCLK (http://www.oac.uci.edu/~rliao), che permette di modificare un certo numero di parametri su alcune tra le più
diffuse schede grafiche 2D in commercio.
Quando si tenta l'overclocking di una scheda video, oltre alle considerazioni di carattere
termico (non è una cattiva idea posizionare una ventolina supplementare che soffi verso la
scheda in questione) va considerata la velocità delle memoria con cui la scheda è equipaggiata:
si assiste infatti ad una grande variabilità di equipaggiamento anche tra schede con lo stesso
chipset, o addirittura tra serie diverse degli stessi modelli di scheda.
Una scheda con memorie lente, se pure in grado di reggere l'overclocking potrebbe manifestare
inconvenienti relativi allo "sporcarsi" del framebuffer video (sfarfallamenti localizzati,
puntini/strisce colorate, etc.). Anche in questo caso, solo la pratica potrà dare risposte.
Esempi pratici
Prenderemo in esame 3 casi pratici di overclocking: una CPU AMD K6 200MHz, una scheda
video S3 325 ViRGE ed una scheda 3D Skywell Magic-3D.
Cominciamo dalla CPU; per l'overclocking da 200 a 225 MHz abbiamo scelto per l'appunto un K6 200 MHz a 2.9V,
serie ALR C9738DPCW; la scheda madre utilizzata è una Asus TX-97E Smart, memorie EDO DRAM 60ns
2x32MB; tutti gli slot di espansione ISA e PCI sono stati riempiti.
La CPU è stata equipaggiata con il kit dissipatore+ventolina fornito di serie con la scheda
madre, che si è rivelato di buona qualità: la superficie di contatto tra dissipatore e CPU è
composta da una particolare lega in grado di assicurare un corretto coefficiente di resistenza
termica e un'elevata percentuale superficiale di contatto; la ventolina è di tipo ball-bearing
ed è dotata di sensore per il rilevamento del regime di rotazione.
In effetti, la scelta della mother board Asus (dotata di un canonico chipset Intel Triton-II TX
e di BIOS Award da 2Mbit) è stata suggerita anche da questi particolari, dal supporto per le
frequenze-base di 75 e 83 MHz oltre quelle "canoniche", e dalle interessanti
funzioni di monitoring sulla temperatura di CPU e chipset, sulla velocità di rotazione delle
ventoline di CPU e case e sulle tensioni di uscita dell'alimentatore: tutte cose che aiutano a
minimizzare i rischi insiti nell'overclocking.
Per overclockare il K6 abbiamo mantenuto il moltiplicatore a 3x, innalzando però il clock di
base a 75 MHz. Poichè con l'alimentazione nominale (2.9V per il core e 3.3V per l'I/O) la CPU
mostrava, a 225 MHz, segni di squilibrio, abbiamo innalzato la tensione di alimentazione del
core a 3.2V, e le instabilità sono sparite (occorre sottolineare che ogni caso di overclocking
fa storia a sé: non è affatto detto che altri K6 200 MHz siano overclockabili, o se abbiano
bisogno o no dell'aumento di tensione).
Ovviamente la temperatura del processore è aumentata; i sistemi di monitoring della TX-97E ci
hanno però mostrato che, grazie alla corretta azione del dissipatore attivo, la CPU si mantiene
al di sotto dei 65 C anche dopo ore di lavoro continuo (con un aumento di temperatura tra i 7 C e
i 9 C rispetto al funzionamento a 200 MHz e 2.9V).
Analizziamo le prestazioni del K6 225 MHz rispetto a quelle del K6 200 MHz, servendoci come al
solito del BETAmark v0.9 sotto NT 4.0: come si nota dal grafico, le prestazioni del K6 a 225 MHz
sono molto vicine a quelle del K6 a 233 MHz, che viene addirittura superato di poco sull'indice
RAM (come è ovvio, visto che la frequenza base del K6 225 è di 75 MHz contro i 66 MHz del K6
233).
Tra l'altro, bisogna considerare che nella configurazione 225 MHz il sistema ha il bus PCI a
37.5 MHz, contro i 33.3 MHz della configurazione 233 MHz e il bus ISA a 9.4 MHz contro 8.3 MHz:
ciò comporta un aumento teorico della banda passante dei bus, il che potrebbe influenzare
positivamente le prestazioni delle varie schede PCI ed ISA, nonché dei dischi UltraATA collegati
alla scheda madre. Anche in questo caso, però, stiamo lavorando fuori specifiche (le quali
prevedono una frequenza di 33 MHz per il bus PCI e di 8 MHz per l'ISA).
Passiamo ora ad analizzare l'overlocking di una scheda video: una Expertcolor S3 ViRGE 325 con 2
MB di EDO RAM da 40 ns.
Recuperata su Internet l'utility MCLK, notiamo che il clock della scheda è predisposto a 65 MHz;
tramite l'utility (linea di comando utilizzata: mclk /0 110 3 2 ) spingiamo
il clock ad 80 MHz, ottenuto tramite prove; si consiglia comunque di procedere con piccoli
incrementi, partendo da un valore superiore del 10% rispetto a quello di partenza.
Con l'occasione eliminiamo gli stati di attesa dalla memoria video (mclk /1
0 ); in tutto, l'incremento di prestazioni ottenuto è valutabile attorno al 10%.
Occorre tener presente che in questo caso l'overclocking non è permanente: ad ogni cold
reboot del sistema la scheda video tornerà alle sue impostazioni standard; occorre inserire i comandi
MCLK nell'AUTOEXEC.BAT (purtroppo, avrete capito che questo limita l'overclock a DOS e Win95;
tuttavia con Linux è possibile specificare il clock della scheda video nel file di
configurazione di XFree86).
Passiamo infine all'ultimo esempio: l'overclocking della scheda Diamond Monster3D, basata sul
chip 3DFX Voodoo Graphics (vedi il precedente numero di BETA
per una prova approfondita).
In questo caso, l'overclocking è particolarmente semplice: basta infatti settare in modo
opportuno la variabile d'ambiente SST_GRXCLK .
La frequenza di funzionamento "standard" del Voodoo Graphics è compresa tra i 50 MHz ed i
57 MHz (su alcuni esemplari di schede con memoria un pochino lenta -diciamo 50ns-
superare i 55 MHz porta problemi di visualizzazione delle texture); tuttavia, su schede aventi
memoria particolarmente veloce (citiamo a titolo di esempio la Skywell Magic-3D (http://www.magic-3d.com), che monta SGRAM da 15ns) e stanti opportune
condizioni di ventilazione è possibile tentare un aumento di frequenza fino a 60 MHz: occorre
settare
SST_GRXCLK = 60
Per settare questa variabile occorre naturalmente adeguarsi al sistema operativo usato: così, su
Windows 95 e DOS aggiungeremo la riga SET SST_GRXCLK = 60
nell'AUTOEXEC.BAT , in Windows NT agiremo sulla sezione
ENVIRONMENT di Pannello di controllo / Sistema , mentre se
si usa Linux si aggiungerà la riga export SST_GRXCLK=60 al file
/etc/profile .
L'incremento di prestazioni ottenibile è più o meno lineare con l'aumento di frequenza: da 50 a
60 MHz si può prevedere un guadagno di circa il 20%.
ATTENZIONE:
Overclocking significa portare un componente a lavorare fuori
specifiche: nonostante i casi presentati nell'articolo siano stati direttamente e a lungo
sperimentati, BETA e l'articolista non si assumono alcuna responsabilità su eventuali danni o inconvenienti
di qualsiasi natura derivanti da tentativi di overclocking in seguito alla lettura di questo articolo.
Chiunque tenti l'overclocking di un componente agisce sotto la propria responsabilità.
Fernando Carello è raggiungibile via email all'indirizzo techcoord@beta.it.
|