J'ai une machine embarquée ARM basée sur la carte S3C2416. Selon les spécifications dont je dispose, il devrait y avoir un ARM9 à 533 MHz (ARM926EJ-S selon /proc/cpuinfo
), mais le logiciel qui y fonctionne "semble" lent, par rapport au même logiciel sur mon téléphone Android avec un processeur ARM à 528 MHz.
/proc/cpuinfo
me dit que BogoMIPS est 266.24. Je sais que je ne dois pas faire confiance à BogoMIPS en ce qui concerne les performances ("Bogo" = faux), mais je voudrais obtenir une mesure sur la vitesse réelle du processeur. Sur x86, je pouvais utiliser l' rdtsc
instruction pour obtenir le compteur d'horodatage, attendre une seconde (veille (1)), relire le compteur pour obtenir une approximation de la vitesse du processeur, et selon mon expérience, cette valeur était assez proche de la vitesse réelle du processeur.
Comment puis-je trouver la vitesse réelle du processeur d'un processeur ARM donné?
Mise à jour
J'ai trouvé cette simple calculatrice Pi , que j'ai compilée à la fois pour mon téléphone Android et la carte ARM. Les résultats sont les suivants:
S3C2416
# cat /proc/cpuinfo
Processor : ARM926EJ-S rev 5 (v5l)
BogoMIPS : 266.24
Features : swp half fastmult edsp java
...
#./pi_arm 10000
Calculation of PI using FFT and AGM, ver. LG1.1.2-MP1.5.2a.memsave
...
8.50 sec. (real time)
Android
# cat /proc/cpuinfo
Processor : ARMv6-compatible processor rev 2 (v6l)
BogoMIPS : 527.56
Features : swp half thumb fastmult edsp java
# ./pi_android 10000
Calculation of PI using FFT and AGM, ver. LG1.1.2-MP1.5.2a.memsave
...
5.95 sec. (real time)
Il semble donc que l'ARM926EJ-S soit plus lent que mon téléphone Android, mais pas deux fois plus lentement que je ne m'y attendrais d'après les chiffres de BogoMIPS. Je ne suis toujours pas sûr de la vitesse d'horloge du processeur ARM9.
266.24*2=532.48
Il semble donc que ce soit mort. CPU ARM Mon 480MHz obtient 239,2, 439.2*2=478.4
.