Saya memiliki mesin embedded berbasis ARM berbasis pada papan S3C2416. Menurut spesifikasi yang saya miliki harus ada ARM9 533 MHz (menurut ARM926EJ-S /proc/cpuinfo
), namun perangkat lunak yang berjalan di atasnya "terasa" lambat, dibandingkan dengan perangkat lunak yang sama pada ponsel Android saya dengan CPU ARM 528MHz.
/proc/cpuinfo
memberitahu saya bahwa BogoMIPS adalah 266,24. Saya tahu bahwa saya tidak boleh mempercayai BogoMIPS mengenai kinerja ("Bogo" = palsu), namun saya ingin mendapatkan pengukuran pada kecepatan CPU yang sebenarnya. Pada x86, saya bisa menggunakan rdtsc
instruksi untuk mendapatkan penghitung cap waktu, tunggu sebentar (tidur (1)), baca lagi penghitung untuk mendapatkan perkiraan kecepatan CPU, dan menurut pengalaman saya, nilai ini cukup dekat untuk kecepatan CPU nyata.
Bagaimana saya bisa menemukan kecepatan CPU aktual dari prosesor ARM yang diberikan?
Memperbarui
Saya menemukan kalkulator Pi sederhana ini , yang saya susun untuk ponsel Android saya dan papan ARM. Hasilnya adalah sebagai berikut:
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)
Jadi sepertinya ARM926EJ-S lebih lambat dari ponsel Android saya, tetapi tidak dua kali lebih lambat seperti yang saya harapkan dari angka BogoMIPS. Saya masih tidak yakin tentang kecepatan clock CPU ARM9.
266.24*2=532.48
Jadi sepertinya sudah mati. CPU ARM 480MHz saya mendapat 239.2 439.2*2=478.4
,.