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/cpuinfo
mó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ć rdtsc
instrukcji, 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.48
Wygląda na to, że jest martwy. Mój procesor ARM 480 MHz otrzymuje 239,2 439.2*2=478.4
.