2.7.08

Teoria Overclocking: Parte 1: Sincronia, Multiplos.


*** Advertencia, solo haz esto si estas seguro de asumir todos los riesgos que conlleva***

Bueno, OverClocking (OC, de ahora en adelante), de define como la aceleración del reloj del procesador (si, son mas MHz). El cual se puede realizar por BIOS tanto como por Software.
Aun así, el hecho de realizarlo por software es nada mas que para ver si tienes sincronía/asincronia y que multiplicación es estable. Puesto que OCear no es simplemente decir "ponte a 3.6 GHz", hay varios factores que influyen para realizar un correcto OC.

En primer lugar, problemas que te puede originar el OC.

Es simple, todos los procesadores tienen una vida útil, la cual se define por la electromigracion.

A ver, explico.

Los electrones desgastan los componentes electrónicos al pasar a través de ellos, reduciendo la conductividad de los semiconductores. O a la deformación paulatina de los conductores. por el arrastre que producen los electrones a los átomos de estos. (Migración = Movimiento), Absolutamente TODO procesador acabará electromigrado, la pregunta es cuánto vamos a acelerar ese proceso. Este proceso se acelera por 3 factores:
-Temperatura
-Voltaje
-Velocidad conseguida
Los 3 factores van ligados entre sí, a más velocidad, más voltaje, más temperatura.

Debes tener en cuenta que la electromigracion, al igual que todo proceso de desgaste es absolutamente EXPONENCIAL, es decir, mientras mas aumentemos los factores que la producen, mas rápido será esta.
Es decir, actúa de manera consciente... Aunque si te sobra el dinero, hace lo que quieras xD.


Vamos al grano. La velocidad de nuestro procesador esta determinada por 2 variables. Las cuales son el HTT (o FSB) y el multiplicador.

O sea.

Velocidad del procesador = HTT x Multiplicador

Como ya expliqué antes, OC es aumento o subida del reloj, y si, es lo que estas pensando (si es que lo pensaste), el aumento depende de variar uno de estos 2 factores. Aunque estos factores tienen varias variables propias (es algo que se podría definir como problema, pero veras que es algo que no tiene mayor relevancia).

Primera variable, el MULTIPLICADOR, está limitado según el modelo hacia arriba, es decir, en un 3000+ tendremos como multiplicador máximo el 9, en un 3200+ el 10, en un 3500+ el 11...
La explicación del paréntesis y de porqué no es un problema, es simplemente porque obtenemos mejor rendimiento aumentando el factor HTT obviando el MULTIPLICADOR. Las placas actuales pueden aguantar un HTT de 300-350Mhzs fácilmente, por lo que, en el peor de los casos, 300x9= 2700Mhzs. Y con esto ya estaríamos bastante cerca del limite del procesador.

Segunda variable. Los AMD64 tienen un problema (entendiendo problema para nosotros y a lo que estábamos acostumbrados) con la memoria con los MULTIPLICADORES no enteros, es decir, 6,5 / 7,5 / 8,5 / 9,5... El problema es que redondea hacia arriba y aplica el valor del multiplicador entero a la memoria. Supongamos que tenemos el sistema síncrono (más adelante trataremos sincronía/asincronía, y sentirás un dolorcito de cabeza)

280 x 8,5 = 2380Mhzs => en teoría nuestra memoria tendría que ir a 280Mhzs pero al usar el multiplicador no entero 8,5, nos hace funcionar la memoria como si trabajásemos con multiplicador 9, es decir, 2380/9 = 264,4Mhzs.

Para evitar este tanto... Usa multiplicadores enteros.

Tercera Variable. El HTT (evolución del FSB en los K7) trae ahora su propio multiplicador interno, el LDT. La frecuencia de este bus conocido como Hypertransport es de 1000Mhzs como máximo oficialmente. ¿Cómo se obtiene? Exactamente igual que antes. son dos factores variables sin ningún tipo de restricción en este caso. El LDT suele venir a x5, ya que el HTT oficial de los AMD64 es 200. Hypertransport 200x5= 1000Mhzs.

Es decir (primer ejemplo):

- (Velocidad de nuestro procesador) 2000Mhzs = 200 (HTT) x10 (MULTIPLICADOR)
A esto, 200(HTT) x5(LDT) = 1000Mhzs
Vamos a realizar nuestro OC (segundo ejemplo):

- (Velocidad de nuestro procesador) 2000Mhzs = 250 (HTT) x 8 (MULTI)
Por lo tanto: 250 (HTT)x4(LDT) = 1000Mhzs

Si observas, se ha aumentado el HTT, a 250, si no variáramos el LDT a x4, nos daría el resultado de 250(HTT) x5(LDT) = 1250Mhzs . Esto nos desestabilizaría totalmente el sistema, Pues como ya se explicó el HTT soporta solo 1000MHz. ¿Solución? Cuando subamos el HTT, deberemos bajar el LDT y fijarnos en que su multiplicación nunca supere los 1000Mhzs.

La idea básica del OC es conseguir los Mhzs finales más altos posibles con con el HTT más alto y con el voltaje más bajo posible (no olvides la electromigracion). Entonces, a igualdad de Mhzs finales, el procesador que tenga mayor HTT dará más rendimiento. Aún teniendo los mismos Mhzs finales, nuestro segundo ejemplo da más rendimiento porque tiene 250 de HTT frente a los 200 del primero.
Entonces, las 2 variables son estas.

Velocidad Procesador = HTT x MULTIPLICADOR - Esta es la velocidad obtenida con el procesador.

Hypertransport = HTT x LDT => Ésta es interna y no afecta a la velocidad final del procesador, lo que tienes que procurar es que esta no supere los 1000Mhz. Todo mediante el ajuste del LDT.
Nota: El HTT es Hypertransport, o sea HTT = FSB X LDT, Recuerda que el HTT es la evolución del FSB con multiplicador propio. Si no entiendes, omite esta nota.

Cuando arranque el equipo, mantén presionada la tecla que permita el acceso al menú BIOS, pudiendo ser esta F10, SUPR, DEL, ESPACIO... etc, esto depende exclusivamente del fabricante.

A Identificar

Esta es la pantalla de bienvenida de la BIOS. Suele ser igual en todas.




Acá se llama "Frecuency/Voltage control", aunque en otros BIOS suele llamarce "CELL" La parte que ya vimos se encuentra en este menú... Acá están las variables HTT, Multiplicador y LDT. Tu las modificas de acuerdo a lo que quieras alcanzar. No Olvides Revisar el Anexo Divisores que pondré mas abajo (Gracias Pol).




Estabilización

Bueno... Despues de hacer esto.. probablemente tu sistema quede un poco inestable (en casos muy malos se te reiniciará a cada rato... Como se estabiliza esto..? Mediante Voltaje. Estos son los voltajes que se permiten controlar.

VCORE => Voltaje del procesador
VDD => Voltaje del chipset de la placa base
VDIMM => Voltaje de la memoria
VAGP => Voltaje del slot AGP (donde va la gráfica) actualmente sustituidas pos PCIe.


Hay una relación proporcional entre MHz y Voltaje... Obviamente mientras mas Velocidad tome el procesador mas voltaje habrá que agregarle. El ejemplo aclara todo:
- Nuestro Procesador con 2000Mhzs=200x10 a 1,4v
- Nuestro Procesador con OC 2500Mhzs=250x10 a 1,5v
Para solucionar el problema de reinicio se ha tenido que agregar 0.1v, para que el sistema se vuelva estable. Esto mismo es aplicable a nuestras memorias. Puede que nuestras memorias sean PC3200 de 200Mhzs con 2,6v, y poniéndoles 3,3v sean capaces de llegar a dar 260Mhzs. Es algo bien sencillo, ahora empiezan las consecuencias, Como se aumentó el voltaje... Obviamente el calor y la electromigracion también aumenta. Donde encuentro estos valores??? Acato:



Debes conocer las debilidades y fortalezas de tu placa... Ejemplo claro de esto, es que la que se muestra en el screenshot no soporta modificar el el voltaje de la placa, por lo tanto... si tenemos problemas no podremos recurrir a este recurso. Nota que también el VCORE (voltaje del procesador) tiene dos valores. No pasa nada, el problema es que la MSI no toma valores de voltaje definidos, tenemos que hacerlo mediante incrementos porcentuales. ¿Cómo se hace esto? Ponemos 1,4v que es lo que trabajan estos Procesadores, y en el otro apartado +3,3%, es decir, 1,4v+3,3%= 1,4363v


Importancia de la Sincronia/Asincronia


Bueno la sincronía es algo tan simple como esto... Si tienes el HTT a 200MHz, y la memoria a 200Mhz, es sincronía. En cambio, si tienes el HTT a 250MHz y la memora a 200, estamos hablando de Asincronía. Como se soluciona esto... Con divisores. Estos son expresados de diversas maneras en las tarjetas. Una manera es 166, la otra; 6:5 por ejemplo. En realidad a nosotros lo que nos importa es el resultado... Y el resultado da como total un ratio de 1,2. Ejemplo.
200:200 = 1:1 = 1
200:166 = 6:5 = 1,2
200:133 = 3:2 = 1,5
200:100 = 2:1 = 2

El que utilizaremos nosotros será el segundo, por corresponder a nuestro ejemplo. Que significa este ratio? Que simplemente el HTT va a trabajar a 1,2 veces la velocidad de nuestras memorias.

El problema es que en las placas actuales (a partir de K7), el controlador de velocidad de la memoria es aparte, por lo que este decide como imponer el ratio a los divisores finales en relación a la cantidad me MHz que este tenga. Por lo tanto, este ratio se aplicará de una manera un poco abstracta y tediosa, la cual involucra todos los valores mencionados anteriormente. La formula en si es esta: Velocidad real de Memoria (VRM) = d / ((a x b)=c)
O simplificado
VRM = d/c
En el cual:

a = resultado del ratio del HTT/Memoria
b = Multiplicador de nuestro procesador (un problema que resolveremos mas abajo)
c = Valor redondeado de la multiplicación a x b (recuerda que redondea hacia arriba)
d = MHz finales de nuestro procesador.

Como siempre, con un ejemplo se ve todo mas claro.

Velocidad final de nuestro procesador

(313 x 8 = 2504 Mhz) Ratio HTT / Memoria (200 : 166,67 = 1,2)
El multiplicador es de 8 (ya estaba en la primera)
Por lo tanto VRM = 2504 (1,2 x 8 = 9.6) "el cual se redondea hacia arriba, por lo tanto es 10" VRM = 2504 / 10 VRM = 250,4 (Honestamente mis Kingston Value Ram no llegan a eso ni de broma)

Recuerda que la velocidad tope es lo mas cercano a 200 por lo tanto 250,4 da para soñar con tener mas dinero.

Y es mas, lógicamente, mientras mas elevado sea el redondeo antes mencionado, mas lejos estaremos de la velocidad normal. Y obviamente mas alto será el margen de error. No es nada fuera de lo normal lo ya explicado, puesto que antes así trabajaban los procesadores..

Teóricamente, el peor error que se podría dar a la hora de hacer el calculo de velocidad de las memorias sería un redondeo de 0,99 en el multiplicador resultante. Así, en el peor de los casos el error sería de unos 15, 20 MHz, lo que es suficiente como para decir que lo que decía estaba mal o era poco certero. Basados en valores habituales en estas variantes ya mencionadas, las diferencias reales a la hora de calcularlo serán muy leves, Aunque la que se dará ahora será correcta. Nota: Si no entiendes bien este punto, salta esto que pondré de color rojo.

Nuestro problema a resolver: Si bien nuestro problema estaba dado por el redondeo a enteros por parte de los multiplicadores, esta sería la formula a tomar.

Con sistema Sincrono (Multiplicador NO ENTERO)
Velocidad Final del Procesador: 2380Mhzs (280x8,5) Divisor HTT/Memo: 200:200 => 1 Multiplicador: 8,5

Por lo tanto:

VRM = 2380 / (8,5 x 1)
VRM = 2380 / 8,5
VRM = 2380 / 9 (se redondea hacia arriba)
VRM = 264,4 Mhz

Por lo tanto nos queda el sistema Asíncrono, así que no tenemos nada mas que hacer con esto. Intentamos de nuevo. Ahora con el problema de multiplicador NO ENTERO. Podría ser la siguiente opción.

Velocidad Final del Procesador: 2002 Mhzs (308 x 6,5) Divisor HTT/Memo: (200:166 = 1,2) Multiplicador: 6,5

Podría ser:

VRM = 2002 / (6,5 x 1,2)
VRM = 2002 / 7,8
VRM = 2002 / 8 (redondeado hacia arriba)
VRM = 250.25 Mhz

Como también podría ser:

VRM = 2002 / (6,5 x 1,2)
VRM = 2002 / (7 x 1,2) (redondeado hacia arriba)
VRM = 2002 / 8,4
VRM = 2002 / 9 ( redondeado hacia arriba)
VRM = 222.44444444444

Programas como el CPU-Z en Windows, o como el NVClock (de nvidia, para nvidia) en Linux, darán como opcion correcta la primera, pero estos programas leen a lo que están capacitados para leer, es mas, si la primer es correcta, asumes que el A64 te permite usar Divisores no enteros, aunque sea para redondearlos después.

Seria esta mi proposicion: => 250x8=2000Mhzs Divisor 200:200=1 (memorias 250, síncrono, vamos, si esa es la idea, si es que tienes memorias de 250... si tienes 200 o algo menos... a jugar con las frecuencias)

Un ordenador sin OC, el mio, ejemplo.

- 200 x 8 = 1600 MHz, Divisor es 200:200, memorias a 200 (no se pierde ni un MHz) esto es lo que hay que lograr, pero con OC.

Pongamos esta base.

Tenemos un 3200+ (2Ghz clock), que equivale a 200 x 10, memorias PC3200 de 200 MHz (y son 200 clavados. NO te ven a ceder mas MHz ni aunque les aumentes el voltaje)

El efecto de esto, es que en AMD64 no se nota tanto el efecto de la Asincronía, pero en otras placas suele hacer el que OC no aumente la velocidad de proceso lo que debiera. Debes pensar en el HTT como el puente entre el procesador y la memoria... Por lo tanto si uno de estos va mas rápido, o mas lento, se pierden ciclos. Esto es una pérdida de desempeño. Las muchas placas antiguas (una PC Chips que tuve), no lo soportaba, el error se llama "error de paridad". Y ese era un patatus del que no arrancaba mas allá de solo quedarse sonando como timbre.

Tanto como mi ejemplo, como en el de abajo, el sistema está totalmente síncrono. Y la duda es, en el segundo ejemplo, el múltiplo está al máximo, como puedo aumentar la velocidad del procesador, si no puedo aumentar mas el múltiplo, y el HTT está a 200 y las memorias trabajan a esa velocidad??? Acá viene el ingenio de cada uno, y para eso están los divisores. Esta es la importancia de esto.


Entonces, se pone el sistema asíncrono:

de 200:200 = 1 pasamos a 200:166 = 1,2
luego eleva el HTT a 240, lo cual (no te olvides de bajar el LDT a 4, quedando con un total de 960 Mhz, no pasa los 1000MHz, por lo tanto no hay inestabilidad)
240 HTT x 10 Multiplicador da como resultado 2400 MHz

Pongamos la formula para ver en cuento queda nuestra memoria:

VRM = 2400 / (10 X 1,2)
VRM = 2400 / 12 (no esta redondeado, da entero :P)
VRM = 200

Por lo tanto hemos OCeado el procesador, sin tener que forzar nuestras memorias (aunque, ni forzadas te ceden MHz)

AMD64 tiene la ventaja de que no se nota la perdida de desempeño al trabajar en asincronía, lo que permite no tener que gastar en memorias tan caras, aun así. Esto depende exclusivamente del uso que se le vaya a dar al PC.

Imprescindible un screenshot:




Hay otros temas a tratar en las memorias, Las LATENCIAS y el CPU INTERFASE, esto lo explicaré en el post siguiente.

Antes que nada:

1.- Refrigera bien tu PC... No creo que quieras una Plancha.
2.- Incrementa de forma moderada la velocidad.
3.- En caso de que no te arranque por exceso de OC, existe un jumper llamado CLR CMOS, el cual borra las modificaciones hechas a la BIOS, dejando las por defecto.
4.- Manten PCI, AGP o PCIe, bloqueados a 33, 66 y 100 respectivamente.

Anexo Divisores:

OK. Vamos a ver. Primero de todo pondré algunos ejemplos:

250*10 con divisor 166: En principio debería ir a 208Mhz, no? Pues SÍ, en este caso sí.

250*9 con divisor 166: En principio debería ir a 208Mhz, no? Pues NO, funciona a 204Mhz.

250*11 con divisor 166: En principio debería ir a 208Mhz, no? Pues NO, funciona a 211Mhz.

250*7 con divisor 166: En principio debería ir a 208Mhz, no? Pues NO, funciona a 218Mhz.

300*9 con divisor 166: En principio debería ir a 250Mhz, no? Pues NO, funciona a 245Mhz.

280*11 con divisor 133: En principio debería ir a 187Mhz, no? Pues NO, funciona a 181Mhz.


El tema es sencillo.
Nuestro CPU hace lo siguiente:

HTT*CPU_MULTI=CPU_CLK
Memorias con divisor DEV.

CPU_MULTI/DEV=*** (Tomando el valor entero más proximo)

CPU_CLK/***=Frecuencia memoria


Es decir, imaginemos:

260*8 divisor 166.

CPU= 2080Mhz

*** = 8/Divisor 166 = 8/(5/6) = 8/0.8333... = 9.6 ----> = 10

Frecuencia RAM = CPU/10 = 2080/10 = 208Mhz


Vemos que la RAM estará a 208Mhz, cuando debería estar por matemática pura a 216Mhz. Esto es debido al redondeo.

No hay comentarios: