Mam wbudowaną maszynę opartą na ARM opartą na płycie S3C2416. Zgodnie ze specyfikacjami, które mam dostępne, powinien być ARM9 533 MHz (zgodnie z ARM926EJ-S /proc/cpuinfo), jednak oprogramowanie działające na nim „czuje się” powolne, w porównaniu z tym samym oprogramowaniem na moim telefonie z Androidem z procesorem ARM 528 MHz.
/proc/cpuinfomówi mi, że BogoMIPS to 266,24. Wiem, że nie powinienem ufać BogoMIPS pod względem wydajności („Bogo” = fałszywy), jednak chciałbym uzyskać pomiar rzeczywistej szybkości procesora. Na x86 mogłem użyć rdtscinstrukcji, aby uzyskać licznik znaczników czasu, odczekać sekundę (tryb uśpienia (1)), ponownie odczytać licznik, aby uzyskać przybliżenie szybkości procesora, i zgodnie z moim doświadczeniem ta wartość była wystarczająco bliska, aby rzeczywista prędkość procesora.
Jak znaleźć rzeczywistą szybkość procesora danego procesora ARM?
Aktualizacja
Znalazłem ten prosty kalkulator Pi , który skompilowałem zarówno dla mojego telefonu z Androidem, jak i płyty ARM. Wyniki są następujące:
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)
Wygląda więc na to, że ARM926EJ-S jest wolniejszy niż mój telefon z Androidem, ale nie dwa razy wolniejszy, niż bym się spodziewał po danych BogoMIPS. Nadal nie jestem pewien szybkości zegara procesora ARM9.
266.24*2=532.48Wygląda na to, że jest martwy. Mój procesor ARM 480 MHz otrzymuje 239,2 439.2*2=478.4.