2 votes

Comment sont formulées les fréquences SetCPU ?

Les fréquences suggérées par SetCPU pour chaque appareil sur la base d'un certain algorithme ou bien ont-ils été élaborés pour un appareil spécifique ou bien ont-ils été formés de manière arbitraire après des tests approfondis ?

J'ai un vieux HTC Wildfire qui a une fréquence maximale à 768MHz

Les étapes des fréquences montrées par SetCPU lui-même sont les suivantes 176,264,352,518,576,614,633,652,672,691,710,729,748,768 tout en MHz .

J'ai fini par créer un setcpu.txt que j'ai placé dans la racine de la carte SD. Le problème est que lorsque j'avais une fréquence de 800MHz SetCPU Je le lis toujours, mais la fréquence maximale qu'il pouvait toucher était de toute évidence 768MHz .

Je répète, ma question est de savoir comment les fréquences listées par SetCPU formulé ?

4voto

Nick Pierpoint Points 7976

La réponse se trouve dans la source du noyau de ce HTC Wildfire - regardez dans arch/arm/mach-msm/acpuclock.c pour voir le tableau des fréquences acceptées. Comme le WildFire est basé sur le chipset MSM-7x25, voici l'extrait de la table des fréquences codées en dur, en supposant qu'il s'agit d'un téléphone GSM :

/* 7x01/7x25 normal with GSM capable modem */
static struct clkctl_acpu_speed pll0_245_pll1_768_pll2_1056[] = {
    { 0, 19200, ACPU_PLL_TCXO, 0, 0, 19200, 0, 0, 30720 },
    { 1, 122880, ACPU_PLL_0, 4, 1,  61440, 1, 3,  61440 },
    { 0, 128000, ACPU_PLL_1, 1, 5,  64000, 1, 3,  61440 },
    { 0, 176000, ACPU_PLL_2, 2, 5,  88000, 1, 3,  61440 },
    { 1, 245760, ACPU_PLL_0, 4, 0,  81920, 2, 4,  61440 },
    { 1, 256000, ACPU_PLL_1, 1, 2, 128000, 1, 5, 128000 },
    { 0, 352000, ACPU_PLL_2, 2, 2,  88000, 3, 5, 128000 },
    { 1, 384000, ACPU_PLL_1, 1, 1, 128000, 2, 6, 128000 },
    { 1, 528000, ACPU_PLL_2, 2, 1, 132000, 3, 7, 128000 },
    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0}, {0, 0, 0} }
};
  • La première colonne indique que la fréquence peut être mise à l'échelle, si elle comporte un 1, la fréquence du chipset peut être augmentée ou diminuée, pensez à augmenter la puissance du CPU lorsqu'une application gourmande en processeur est en cours d'exécution. et cela est fait par le noyau dynamiquement dans les limites d'un seuil de sécurité sans brûler le chipset. - veuillez noter : C'est seulement pour le noyau à utiliser, plus loin dans la réponse, qui montre la table d'overclocking, qui est la responsabilité de l'utilisateur final - pas le noyau !!!!!!.
  • Deuxième colonne, la fréquence normale en KHz telle qu'elle est dictée par ce que je pense être appelé la a11 horloge (quelque part dans les entrailles du chipset lui-même)
  • Troisième colonne, je ne sais pas exactement, mais elle est spécifiquement liée au chipset lui-même.
  • Quatrième colonne, le sélecteur utilisé pour le réglage de la fréquence normale
  • Cinquième colonne, le diviseur utilisé pour le réglage de la fréquence normale
  • Sixième colonne, la fréquence d'overclocking en KHz
  • Septième colonne, le sélecteur de fréquence d'overclocking
  • Huitième colonne, le diviseur utilisé pour le réglage de la fréquence d'overclocking.
  • Neuvième colonne, je ne suis pas sûr non plus de ce que cela signifie.

Il y a en fait 12 champs utilisés, les champs restants sont remplis au démarrage du noyau, ajoutant peut-être des protections et s'assurant que les valeurs conservées ne sont pas explicitement remplacées, un "gate-keeper" si vous voulez, lisez la suite...

Plus loin dans la source, il y a généralement un surcadençage conservateur des fréquences (le common MSM-7x 01 / 25 / 27 ) le supporte), encore une fois la même disposition que les "valeurs conservatrices" comme souligné ci-dessus, remarquez que chacune des fréquences peut être augmentée ou diminuée pour chaque fréquence d'overclocking. C'est ainsi que SetCPU peut ajuster ces valeurs puisqu'il y a un 1 dans la première colonne.

#ifndef CONFIG_MSM_CPU_FREQ_OVERCLOCK_AHB
/* Conservative AHB overclocking */
    { 0, 403200, ACPU_PLL_2, 2, 2, 134400, 2, 5, 122880 },
    { 1, 480000, ACPU_PLL_0, 4, 1, 160000, 2, 6, 122880 },
    { 1, 595200, ACPU_PLL_2, 2, 1, 198400, 2, 7, 122880 },
    { 1, 604800, ACPU_PLL_2, 2, 1, 201600, 2, 7, 200000 },
    { 1, 614400, ACPU_PLL_0, 4, 0, 204800, 2, 7, 200000 },
    { 1, 633600, ACPU_PLL_0, 4, 0, 211200, 2, 7, 200000 },
    { 1, 652800, ACPU_PLL_0, 4, 0, 217600, 2, 7, 200000 },
    { 1, 672000, ACPU_PLL_0, 4, 0, 224000, 2, 7, 200000 },
    { 1, 691200, ACPU_PLL_0, 4, 0, 230400, 2, 7, 200000 },
    { 1, 710400, ACPU_PLL_0, 4, 0, 236800, 2, 7, 200000 },
    { 1, 729600, ACPU_PLL_0, 4, 0, 243200, 2, 7, 200000 },
    { 1, 748800, ACPU_PLL_0, 4, 0, 249600, 2, 7, 200000 },
    { 1, 768000, ACPU_PLL_0, 4, 0, 256000, 2, 7, 200000 },
    { 1, 787200, ACPU_PLL_0, 4, 0, 262400, 2, 7, 200000 },
    { 1, 806400, ACPU_PLL_0, 4, 0, 268800, 2, 7, 200000 },
//  { 1, 825600, ACPU_PLL_0, 4, 0, 275200, 2, 7, 200000 },
//  { 1, 844800, ACPU_PLL_0, 4, 0, 281600, 2, 7, 200000 },
#else
/* Agressive AHB overclocking */
    { 0, 403200, ACPU_PLL_2, 2, 2, 201600, 1, 5, 200000 },
    { 1, 480000, ACPU_PLL_0, 4, 1, 240000, 1, 6, 200000 },
    { 1, 595200, ACPU_PLL_2, 2, 1, 297600, 1, 7, 200000 },
    { 1, 604800, ACPU_PLL_2, 2, 1, 302400, 1, 7, 200000 },
    { 1, 614400, ACPU_PLL_0, 4, 0, 307200, 1, 7, 200000 },
    { 1, 633600, ACPU_PLL_0, 4, 0, 316800, 1, 7, 200000 },
    { 1, 652800, ACPU_PLL_0, 4, 0, 326400, 1, 7, 200000 },
    { 1, 672000, ACPU_PLL_0, 4, 0, 336000, 1, 7, 200000 },
    { 1, 691200, ACPU_PLL_0, 4, 0, 345600, 1, 7, 200000 },
    { 1, 710400, ACPU_PLL_0, 4, 0, 355200, 1, 7, 200000 },
    { 1, 729600, ACPU_PLL_0, 4, 0, 364800, 1, 7, 200000 },
    { 1, 748800, ACPU_PLL_0, 4, 0, 374400, 1, 7, 200000 },
    { 1, 768000, ACPU_PLL_0, 4, 0, 384000, 1, 7, 200000 },
    { 1, 787200, ACPU_PLL_0, 4, 0, 393600, 1, 7, 200000 },
    { 1, 806400, ACPU_PLL_0, 4, 0, 403200, 1, 7, 200000 },
//  { 1, 825600, ACPU_PLL_0, 4, 0, 412800, 1, 7, 200000 },
//  { 1, 844800, ACPU_PLL_0, 4, 0, 422400, 1, 7, 200000 },
#endif /* CONFIG_MSM_CPU_FREQ_OVERCLOCK_AHB */
    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0}, {0, 0, 0} }
};

Selon les consultations de la table, et selon le chipset, seul le maximum est spécifié, et est renforcé par le noyau (dans le reste des champs de l'enregistrement que le noyau lit et traite - comme mentionné ci-dessus !)

J'ai fini par créer un fichier setcpu.txt que j'ai placé à la racine de la carte SD. carte SD. Le problème est que lorsque j'avais une fréquence de 800MHz, SetCPU a toujours mais la fréquence maximale qu'il pouvait toucher était 768MHz.

C'est pourquoi vous ne pouvez jamais dépasser le maximum imposé, comme dans le cas de l'OP, pour éviter des dommages thermiques au chipset et à la fréquence d'horloge !

Les redémarrages aléatoires, les gels aléatoires, la surchauffe de la batterie plus rapide que la normale (normale comme dans le seuil réglementé de la fréquence d'horloge du CPU) sont tous des symptômes d'un chipset surcadencé.

C'est un indice révélateur lorsque quelqu'un pose des questions sur les redémarrages aléatoires mais ne dit pas que l'appareil est probablement overclocké !

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X