У меня есть встроенная машина на базе ARM на плате S3C2416. Согласно имеющимся у меня спецификациям, должен быть ARM9 533 МГц (ARM926EJ-S /proc/cpuinfo
), однако программное обеспечение, работающее на нем, "чувствует" медленно, по сравнению с тем же программным обеспечением на моем телефоне Android с процессором ARM 528 МГц.
/proc/cpuinfo
говорит мне, что BogoMIPS 266,24. Я знаю, что я не должен доверять BogoMIPS в отношении производительности ("Bogo" = поддельный), однако я хотел бы измерить фактическую скорость процессора. На x86 я мог бы использовать rdtsc
инструкция, чтобы получить счетчик меток времени, подождите секунду (sleep (1)), снова прочитайте счетчик, чтобы получить приблизительную оценку скорости процессора, и, по моему опыту, это значение было достаточно близко к реальной скорости процессора.
Как я могу найти фактическую скорость процессора данного процессора ARM?
Обновить
я нашел этот простой пи калькулятор , который я скомпилировал как для своего телефона Android, так и для платы ARM. Результаты приведены ниже:
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)
Таким образом, кажется, что ARM926EJ-S медленнее, чем мой телефон на Android, но не в два раза медленнее, чем я ожидал по показателям BogoMIPS. Я все еще не уверен насчет тактовой частоты процессора ARM9.
266.24*2=532.48
Так что кажется, что он мертв. Мой процессор ARM 480MHz получает 239,2,439.2*2=478.4
,Ответы:
AFAICT часы S3C2416 выглядят так же, как часы S3C2443 или аналогичных процессоров его семейства Исходный код Linux для него предполагает, что есть ряд тесно связанных часов.
Выбор фрагмента:
Обновление от ОП
Я искал этот вывод из
dmesg
, но я не смог ничего найти -dmesg
вывод был завален сообщениями отладки, и начало отсутствовало. Ясно, что буфер сообщений ядра был слишком коротким, чтобы хранить все сообщения, пока я не подключусь по telnet. Положив/bin/dmesg > /tmp/dmesg.log
в начале процесса запуска я смог получить этот вывод, подтверждающий то, что я хотел знать:источник
Пытаться
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
,На моем Android это читает 1113600, так что это в кГц ,
источник
ls -l /sys/devices/system/cpu/cpu0/
дает мне ноль результатов. Похоже, плата не поддерживает масштабирование частоты (или ядро слишком старое).cpufreq
отсутствует под/sys/devices/system/cpu/cpu0/
(и другие процессоры). Это ранняя плата ARMv8 / Aarch64 Mustang, но я не уверен, является ли она частью проблемы. У дерева ARMv8 / Aarch64 HiKey под управлением 3.18.0-linaro-hikey есть дерево.С Linux, если у вас есть
hwinfo
команда, затем (как root) выдайте:hwinfo --cpu | grep Clock
источник
dmidecode
это полезный маленький инструмент, который сбрасывает то, что в настоящее время вDMI
таблица в формате, который вы можете прочитать. Делатьdmidecode | grep "Current Speed"
(как root или с помощью sudo) распечатает скорость процессора, о которой в данный момент сообщается вDMI
,источник