Cambio de la velocidad del Clock en 5.50 GEN-D3

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, dark_sasuke, m0skit0, LnD, ka69, zacky06

Responder
Avatar de Usuario
gokuhs
Experto
Experto
Mensajes: 1142
Registrado: 23 Sep 2009, 15:16
PSN ID: gokuhs
Steam ID: gokuhss
Twitter: gokuhss
Ubicación: Alicante
Contactar:

Cambio de la velocidad del Clock en 5.50 GEN-D3

Mensaje por gokuhs »

Hola a todos, os comento.

Haciendo pruebas ayer mismo me tome con un problema que me daba un homebrew que había creado hace ya bastante tiempo y no me había dado por probarlo en el 5.50 GEN D3.

El caso que el programa se ejecuta bien, asta que me dio por mirar una animación cutre que tenia echa pero que para que no se viera lenta ajustaba el clock de la CPU a 333Mhz, y luego volvía a 222Mhz. El caso que descubro que de repente se veía lento. Me pongo a retocar un poco el código dejándolo de la siguiente manera:

Código: Seleccionar todo

if (scePowerSetClockFrequency(333, 266,111) != 0)
printf("Error al establecer el clock");
if(scePowerGetCpuClockFrequency() < 333)
printf("La velocidad del Clock no esta a 333Mhz");


Lo raro en todo esto que el primer error no salta (por lo que se supone que scePowerSetClockFrequency ha devuelto 0 y no ha habido errores) pero el segundo mensaje al comprobar a que velocidad de proceso va, si salta, por lo que no está a la velocidad que buscaba.

¿alguien sabe por qué puede ser?

Gracias

soulless
Desarrollador
Desarrollador
Mensajes: 64
Registrado: 23 Oct 2009, 07:56

Re: Cambio de la velocidad del Clock en 5.50 GEN-D3

Mensaje por soulless »

Por que no simplemente imprimes la velocidad del procesador??? puede ser que la velocidad no se ponga exactamente a 333 sino que la funcion la deja en un numero aproximado, recuerda que 332 < 333 y si suponemos que podria quedar en un numero aproximado pues aun asi te saltaria el mensaje de que no esta a 333. Esto lo digo porque recuerdo que antes probe poniendo el procesador en velocidades mas bajas y nunca se ponia exactamente en la velocidad que yo queria, por ejemplo yo intentaba ponerlo a 120 Mhz, pero se ponia en 118 Mhz o 119 Mhz.
"Quiero irme cuando quiero. Es de mal gusto prolongar artificialmente la vida. He hecho mi parte, es hora de irse. Yo lo haré con elegancia." -Albert Einstein.-

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Cambio de la velocidad del Clock en 5.50 GEN-D3

Mensaje por m0skit0 »

Eso depende del multiplicador que se aplique a la frecuencia del reloj que alimenta la CPU.
Imagen

Avatar de Usuario
gokuhs
Experto
Experto
Mensajes: 1142
Registrado: 23 Sep 2009, 15:16
PSN ID: gokuhs
Steam ID: gokuhss
Twitter: gokuhss
Ubicación: Alicante
Contactar:

Re: Cambio de la velocidad del Clock en 5.50 GEN-D3

Mensaje por gokuhs »

Perdonad, no me había olvidado no he tenido bastante tiempo libre para hacer pruebas.

Os cuento, hice lo que me recomendaste soulless, comprobé la velocidad a la que se ponía la consola y comprobé que se ponía a 265Mhz, en vez de lo que yo quería.

m0skit0 lamento decirte que no he entendido lo que me has querido decir con lo del multiplicador. Me lo podrías explicar??

Gracias :oki:

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Cambio de la velocidad del Clock en 5.50 GEN-D3

Mensaje por m0skit0 »

gokuhs escribió:m0skit0 lamento decirte que no he entendido lo que me has querido decir con lo del multiplicador. Me lo podrías explicar??

La CPU tiene una entrada llamada entrada de reloj (CLK), que ese la que le da el pulso a la CPU, y con eso la CPU trabaja: a cada impulso de reloj, la CPU realiza un ciclo -que no es lo mismo que ejecutar una instrucción, ya que para una instrucción son necesarios generalmente varios ciclos-. Generalmente el reloj es un cristal de cuarzo que vibra a una determinada frecuencia. Sin embargo, hacer que el cristal cambie su frecuencia es un proceso costoso en batería y además peligra la integridad del cuarzo. Por tanto, la solución más práctica es utilizar un multiplicador (o un divisor), que es simplemente un circuito que multiplica (o divide) por N la frecuencia que sale del reloj. Por tanto la frecuencia que se aplica a la CPU no puede ser cualquier número, sino simplemente un múltiplo (o fracción) de la frecuencia del cristal de cuarzo. Y scePowerSetClockFrequency() precisamente configura este circuito multiplicador.

En todo caso, tu problema no radica ahí, porque la diferencia es muy grande entre 333 y 265. Simplemente radica en que estás usando mal la función scePowerSetClockFrequency(). Según la documentación del PSPSDK:

Código: Seleccionar todo

int scePowerSetClockFrequency (   int pllfreq, int cpufreq, int   busfreq)          

Set Clock Frequencies.

Parameters:
       pllfreq    - pll frequency, valid from 19-333
       cpufreq    - cpu frequency, valid from 1-333
       busfreq    - bus frequency, valid from 1-167

and:

cpufreq <= pllfreq busfreq*2 <= pllfreq

Por tanto, la frecuencia de CPU se debe asignar al SEGUNDO parámetro, no al primero. Ojo con cpufreq <= pllfreq y busfreq*2 <= pllfreq.

Un saludo, ya me cuentas qué tal

PD: para más información acerca de los cristales de cuarzo como generadores de frecuencia: http://en.wikipedia.org/wiki/Quartz_clock
Imagen

Avatar de Usuario
gokuhs
Experto
Experto
Mensajes: 1142
Registrado: 23 Sep 2009, 15:16
PSN ID: gokuhs
Steam ID: gokuhss
Twitter: gokuhss
Ubicación: Alicante
Contactar:

Re: Cambio de la velocidad del Clock en 5.50 GEN-D3

Mensaje por gokuhs »

Gracias m0skit0, valla metedura de pata, tenias razón es precisamente por haber confundido los parámetros, simplemente he utilizado scePowerSetClockFrequency(333, 333,167); y listo. Madre mía que fallo mas Noob :? :oops:

En fin tendré mas en cuenta la documentación a la hora de leerla para próximas veces.

Muy buena la explicación de cómo funciona el reloj interno de la CPU, es muy curioso y ahora me leeré el artículo de la Wikipedia que me pones.

Gracias de nuevo por la ayuda, podéis cerrar el Hilo ;)

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Cambio de la velocidad del Clock en 5.50 GEN-D3

Mensaje por m0skit0 »

No te preocupes, eso nos pasa a todos :mrgreen:
Imagen

Responder