BETA - rubrica Hardware

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.

Acceso n. - 12/1997


Copertina Sommario Internet ID Informazioni Browser
Copyright © 1994-97 BETA. Tutti i diritti sono riservati. BETA Sul Web: http://www.beta.it.