LinuxでARM CPUクロック速度を取得する方法は?


16

S3C2416ボードに基づくARMベースの組み込みマシンがあります。私が利用できる仕様によれば、533 MHz ARM9(によるとARM926EJ-S /proc/cpuinfo)がありますが、それで実行されるソフトウェアは、Androidスマートフォンで528 MHz ARM CPUを搭載した同じソフトウェアと比較して、「感じ」ます。

/proc/cpuinfoBogoMIPSは266.24であると教えてくれます。パフォーマンスに関してBogoMIPSを信頼するべきではないことを知っています( "Bogo" =偽)が、実際のCPU速度の測定を取得したいと思います。x86では、rdtsc命令を使用してタイムスタンプカウンターを取得し、1秒間待機して(sleep(1))、CPU速度の概算を取得するためにカウンターを再度読み取りました。私の経験によると、この値は実際のCPU速度。

特定のARMプロセッサの実際のCPU速度を確認するにはどうすればよいですか?

更新

この単純なPi計算機を見つけました。これは、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)

アンドロイド

# 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の数字から予想される2倍の速度ではありません。ARM9 CPUのクロック速度についてはまだ不明です。


elinux.org/S3C2416は400MHzと言いますか?
ta.speot.is

はい、オリジナルだと、私は533MHzのCPUを搭載した新しいモデルを持っている必要があり、それは私が私が持っているべきだ場合、私はチェックしてる理由です...
MiKy

1
266.24*2=532.48まるで死んでいるようです。私の480MHz ARM CPUは239.2を取得し439.2*2=478.4ます。
デビッドシュワルツ

CPU速度以外にも、RAM速度、RAMバス幅、ストレージ/ NANDの速度など、アプリケーションの速度に影響を与える可能性のあるものが多数あります。
ローレンス

1
私はS3C2416に精通しています。これは、実際には「Cortex」ARMv6またはv7設計ではなく、ARM9 / ARMv4設計です。AndroidスマートフォンのARMは、おそらくCortex A5デザインなどのCortexです。
-MSalters

回答:


4

AFAICT S3C2416のクロックは、S3C2443のクロック、またはそのファミリーの同様のプロセッサーのように見えます。そのためLinuxソースコードは、多くの密接に関連するクロックがあることを示唆しています。

選択スニペット:

    pll = get_mpll(mpllcon, xtal);
    clk_msysclk.clk.rate = pll;

    fclk = pll / get_fdiv(clkdiv0);
    hclk = s3c2443_prediv_getrate(&clk_prediv);
    hclk /= s3c2443_get_hdiv(clkdiv0);
    pclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_PCLK) ? 2 : 1);

    s3c24xx_setup_clocks(fclk, hclk, pclk);

    printk("CPU: MPLL %s %ld.%03ld MHz, cpu %ld.%03ld MHz, mem %ld.%03ld MHz, pclk %ld.%03l MHz\n",
           (mpllcon & S3C2443_PLLCON_OFF) ? "off":"on",
           print_mhz(pll), print_mhz(fclk),
           print_mhz(hclk), print_mhz(pclk));

OPからの更新

からこの出力を探していましたdmesgが、何も見つかりませんでした。dmesg出力にはデバッグメッセージが散らばっていて、最初の部分が欠落していました。明らかに、telnetで接続するまで、カーネルメッセージバッファが短すぎてすべてのメッセージを保持できませんでした。入れて/bin/dmesg > /tmp/dmesg.log起動プロセスの早い段階で、私は私が知りたいと思ったものを確認し、この出力を得ることができました。

Linux version 2.6.21 (gcc version 4.2.2)
CPU: ARM926EJ-S revision 5 (ARMv5TEJ)
Machine: SMDK2416
...
CPU S3C2416 EVT3
S3C24XX Clocks, (c) 2004 Simtec Electronics
S3C2416: mpll on 534.000 MHz, cpu 534.000 MHz, mem 133.500 MHz, pclk 66.750 MHz

9

試してくださいcat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq

私のアンドロイドでは、これ 1113600であるため、これはkHz単位です。


残念ながら、ls -l /sys/devices/system/cpu/cpu0/結果はゼロです。ボードが周波数スケーリングをサポートしていない(またはカーネルが古すぎる)ようです。
-MiKy

1
私はそれがに従ってキロヘルツでだと信じkernel.org/doc/Documentation/cpu-freq/user-guide.txt
ゲイブ

ツリーの一部がDebian 3.16.7-ckt25-2にありません。(およびその他のCPU)のcpufreq下にありません/sys/devices/system/cpu/cpu0/。初期のARMv8 / Aarch64 Mustangボードですが、問題の一部かどうかはわかりません。3.18.0-linaro-hikeyを実行しているARMv8 / Aarch64 HiKeyにはツリーがあります。
jww

64ビットDebianを実行しているRaspberry Pi 3 B +にも存在しません。パッケージを入手する必要がありますか?
ジョンハロップ

1

Linuxでは、hwinfoコマンドがある場合、(rootとして)問題:
hwinfo --cpu | grep Clock


これはSuSEツールであり、通常、他のディストリビューションではデフォルトで使用できません。
Evi1M4chine

Debian Jessieの場合:「パッケージhwinfoは使用できませんが、別のパッケージによって参照されています。」
jww

hwinfoはDebianで利用可能です:packages.debian.org/sid/admin/hwinfo
David Lechner

ただし、ARM926EJ-S CPUでクロックをgreppingすると空になります
David Lechner

64ビットDebianを実行しているRaspberry Pi 3 B +でも空です。
ジョンハロップ

-1

dmidecodeは、現在DMIテーブルにあるものを読み取り可能な形式にダンプする便利な小さなツールです。こうdmidecode | grep "Current Speed"現在で報告されているCPU速度を出力します(rootまたはsudoを持ちます)DMI


それは素晴らしいことですが、残念ながら、私は環境が限られている、つまりPythonがありません。
-MiKy

@MiKy:これを正しく見ると、dmidecodeはネイティブのCです。
ボビー

4
DMIは、ARMプラットフォームに存在しないBIOSのものではありませんか?
ローレンス

3
「D」はデスクトップを表しているため、この組み込みシステムにはない可能性があります。
–MSalters

1
Debian Jessieの場合:「パッケージdmidecodeは使用できませんが、別のパッケージによって参照されています。」私の知る限り、ARMボードはPC BIOSを使用していません。
jww
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.