16
5
I have an ARM-based embedded machine based on S3C2416 board. According to the specifications I have available there should be a 533 MHz ARM9 (ARM926EJ-S according to /proc/cpuinfo
), however the software running on it "feels" slow, compared to the same software on my Android phone with a 528MHz ARM CPU.
/proc/cpuinfo
tells me that BogoMIPS is 266.24. I know that I should not trust BogoMIPS regarding performance ("Bogo" = bogus), however I would like to get a measurement on the actual CPU speed. On x86, I could use the rdtsc
instruction to get the time stamp counter, wait a second (sleep(1)), read the counter again to get an approximation on the CPU speed, and according to my experience, this value was close enough to the real CPU speed.
How can I find the actual CPU speed of given ARM processor?
Update
I found this simple Pi calculator, which I compiled both for my Android phone and the ARM board. The results are as follows:
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)
So it seems that the ARM926EJ-S is slower than my Android phone, but not twice slower as I would expect by the BogoMIPS figures. I am still unsure about the clock speed of the ARM9 CPU.
I think it depends on the Linux distro. Linaro makes it easy, Debian does not. Also see How to retrieve CPU frequency when cpufreq is missing under 3.16.0-4-arm64? on the Debian-ARM mailing list.
– jww – 2016-06-06T02:05:25.483http://elinux.org/S3C2416 says 400MHz? – ta.speot.is – 2012-03-29T12:21:16.413
Yes, that's the original, I should have got a newer model with 533MHz CPU, that is why I'm checking if I got what I should have... – MiKy – 2012-03-29T12:27:57.160
1
266.24*2=532.48
So it seems like it's dead on. My 480MHz ARM CPU gets 239.2,439.2*2=478.4
. – David Schwartz – 2012-03-29T12:38:44.863There are many things that can affect the speed of applications besides CPU speed, such as RAM speed, RAM bus width, and speed of storage/NAND. – LawrenceC – 2012-03-29T13:16:14.840
1I'm familiar with the S3C2416. It's an indeed an ARM9/ARMv4 design, not a "Cortex" ARMv6 or v7 design. The ARM in your Android smartphone probably is a Cortex, e.g. Cortex A5 design. – MSalters – 2012-03-29T13:45:51.197
Noticing Android has
thumb
while your S3C2416 doesn't. This can also affect execution speed. – LawrenceC – 2012-03-29T16:25:19.153