Ho una macchina embedded basata su ARM basata sulla scheda S3C2416. Secondo le specifiche che ho a disposizione dovrebbe esserci un ARM9 a 533 MHz (ARM926EJ-S secondo /proc/cpuinfo
), tuttavia il software in esecuzione "sembra" lento, rispetto allo stesso software sul mio telefono Android con una CPU ARM a 528 MHz.
/proc/cpuinfo
mi dice che BogoMIPS è 266.24. So che non dovrei fidarmi di BogoMIPS per quanto riguarda le prestazioni ("Bogo" = fasullo), tuttavia vorrei ottenere una misurazione sulla velocità effettiva della CPU. Su x86, ho potuto usare le rdtsc
istruzioni per ottenere il contatore del timestamp, attendere un secondo (sleep (1)), leggere di nuovo il contatore per ottenere un'approssimazione sulla velocità della CPU e, secondo la mia esperienza, questo valore era abbastanza vicino a la vera velocità della CPU.
Come posso trovare la velocità effettiva della CPU di un determinato processore ARM?
Aggiornare
Ho trovato questo semplice calcolatore Pi , che ho compilato sia per il mio telefono Android che per la scheda ARM. I risultati sono i seguenti:
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)
androide
# 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)
Quindi sembra che ARM926EJ-S sia più lento del mio telefono Android, ma non due volte più lento di quanto mi aspetterei dalle cifre di BogoMIPS. Non sono ancora sicuro della velocità di clock della CPU ARM9.
266.24*2=532.48
Quindi sembra che sia morto. Il mio 480MHz ARM CPU ottiene 239,2, 439.2*2=478.4
.