Ich habe eine ARM-basierte Embedded-Maschine, die auf der S3C2416-Karte basiert. Nach den Spezifikationen, die ich zur Verfügung habe, sollte es einen 533-MHz-ARM9 (ARM926EJ-S gemäß /proc/cpuinfo
) geben, jedoch "fühlt" sich die darauf ausgeführte Software langsam an, verglichen mit der gleichen Software auf meinem Android-Handy mit einer 528-MHz-ARM-CPU.
/proc/cpuinfo
sagt mir, dass BogoMIPS 266.24 ist. Ich weiß, dass ich BogoMIPS in Bezug auf die Leistung ("Bogo" = Schwindel) nicht vertrauen sollte, möchte jedoch eine Messung der tatsächlichen CPU-Geschwindigkeit erhalten. Auf x86 konnte ich die rdtsc
Anweisung verwenden, um den Zeitstempelzähler abzurufen, eine Sekunde zu warten (sleep (1)), den Zähler erneut abzulesen, um eine Annäherung an die CPU-Geschwindigkeit zu erhalten, und meiner Erfahrung nach lag dieser Wert nahe genug bei die reale CPU-Geschwindigkeit.
Wie kann ich die tatsächliche CPU-Geschwindigkeit eines bestimmten ARM-Prozessors ermitteln?
Aktualisieren
Ich habe diesen einfachen Pi-Rechner gefunden , den ich sowohl für mein Android-Handy als auch für das ARM-Board kompiliert habe. Die Ergebnisse sind wie folgt:
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)
Das ARM926EJ-S scheint also langsamer zu sein als mein Android-Handy, aber nicht zweimal langsamer, als ich es von den BogoMIPS-Zahlen erwartet hätte. Ich bin mir immer noch nicht sicher, wie schnell die ARM9-CPU ist.
266.24*2=532.48
Es scheint also tot zu sein. Meine 480MHz ARM CPU erhält 239,2, 439.2*2=478.4
.