Tôi có một máy nhúng dựa trên ARM dựa trên bảng S3C2416. Theo thông số kỹ thuật tôi có sẵn, nên có ARM9 533 MHz (ARM926EJ-S theo /proc/cpuinfo
), tuy nhiên phần mềm chạy trên nó "cảm thấy" chậm, so với phần mềm tương tự trên điện thoại Android của tôi với CPU ARM 528 MHz.
/proc/cpuinfo
nói với tôi rằng BogoMIPS là 266,24. Tôi biết rằng tôi không nên tin tưởng vào BogoMIPS về hiệu năng ("Bogo" = không có thật), tuy nhiên tôi muốn có được một phép đo về tốc độ CPU thực tế. Trên x86, tôi có thể sử dụng rdtsc
hướng dẫn để lấy bộ đếm thời gian, đợi một giây (ngủ (1)), đọc lại bộ đếm để có được xấp xỉ về tốc độ CPU và theo kinh nghiệm của tôi, giá trị này đủ gần với tốc độ CPU thực.
Làm cách nào để tìm tốc độ CPU thực tế của bộ xử lý ARM đã cho?
Cập nhật
Tôi tìm thấy máy tính Pi đơn giản này , tôi đã biên dịch cả cho điện thoại Android và bo mạch ARM. Kết quả như sau:
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)
Vì vậy, có vẻ như ARM926EJ-S chậm hơn điện thoại Android của tôi, nhưng không chậm hơn hai lần như tôi mong đợi bởi các số liệu của BogoMIPS. Tôi vẫn không chắc chắn về tốc độ xung nhịp của CPU ARM9.
266.24*2=532.48
Vì vậy, có vẻ như nó đã chết. CPU ARM 480 MHz của tôi có được 239.2 , 439.2*2=478.4
.