리눅스에서 ARM CPU 클럭 속도를 얻는 방법?


16

S3C2416 보드를 기반으로 한 ARM 기반 임베디드 시스템이 있습니다. 내가 사용할 수있는 사양에 따르면 533 MHz ARM9 (에 따르면 ARM926EJ-S /proc/cpuinfo) 가 있어야 하지만 528MHz ARM CPU가있는 Android 휴대 전화의 동일한 소프트웨어와 비교하여 실행중인 소프트웨어가 느리게 느껴집니다.

/proc/cpuinfoBogoMIPS는 266.24입니다. 성능 ( "Bogo"= bogus)과 관련하여 BogoMIPS를 신뢰해서는 안된다는 것을 알고 있지만 실제 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는 내 안드로이드 폰보다 느리지 만 BogoMIPS 수치에서 예상하는 것보다 두 배 느리지는 않습니다. 여전히 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.
David Schwartz

RAM 속도, RAM 버스 너비 및 스토리지 / NAND 속도와 같이 CPU 속도 외에 응용 프로그램 속도에 영향을 줄 수있는 많은 것들이 있습니다.
LawrenceC

1
S3C2416에 익숙합니다. 실제로 "Cortex"ARMv6 또는 v7 디자인이 아니라 ARM9 / ARMv4 디자인입니다. 안드로이드 스마트 폰의 ARM은 아마도 Cortex A5 디자인과 같은 Cortex 일 것입니다.
MSalters

답변:


4

AFAICT S3C2416의 시계는 S3C2443 또는 이와 유사한 제품군의 시계와 비슷합니다. 그것을위한 리눅스 소스 코드는 밀접하게 관련 클럭의 수 있다는 것을 시사한다.

초이스 스 니펫 :

    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출력에 디버그 메시지가 흩어져 있고 시작 부분이 없습니다. 분명히 텔넷으로 연결할 때까지 커널 메시지 버퍼가 너무 짧아서 모든 메시지를 보관할 수 없었습니다. 퍼팅에 의해 /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


트리의 일부가 데비안 3.16.7-ckt25-2에 없습니다. (및 다른 CPU)에서 cpufreq누락되었습니다 /sys/devices/system/cpu/cpu0/. 초기 ARMv8 / Aarch64 머스탱 보드이지만 문제의 일부인지 확실하지 않습니다. 3.18.0-linaro-hikey를 실행하는 ARMv8 / Aarch64 HiKey에는 트리가 있습니다.
jww

64 비트 데비안을 실행하는 Raspberry Pi 3 B +에는 존재하지 않습니다. 그것을 얻기 위해 패키지가 필요합니까?
Jon Harrop

1

Linux에서 hwinfo명령 이있는 경우 (루트로) 문제가 발생합니다.
hwinfo --cpu | grep Clock


이 도구는 SuSE 도구이며 일반적으로 다른 배포판에서는 기본적으로 사용할 수 없습니다.
Evi1M4chine 1

데비안 Jessie의 경우 : "패키지 hwinfo를 사용할 수 없지만 다른 패키지가 참조합니다."
jww

hwinfo 데비안에서 사용할 수 있습니다 : packages.debian.org/sid/admin/hwinfo
데이비드 레 흐너

ARM926EJ-S CPU에 시계에 대한 grepping 비어 불구을 제공
데이비드 레 흐너

64 비트 데비안을 실행하는 Raspberry Pi 3 B +에서도 비 웁니다.
Jon Harrop

-1

dmidecode현재 DMI테이블에있는 내용을 읽을 수있는 형식으로 덤프하는 유용한 작은 도구입니다 . dmidecode | grep "Current Speed"(루트로 또는 sudo로)를 수행하면 현재에보고되는 CPU 속도가 인쇄됩니다 DMI.


불행히도 나는 제한된 환경, 즉 파이썬이없는 것이 좋을 것입니다.
MiKy

@MiKy : 올바르게 볼 경우 dmidecode는 C입니다.
Bobby

4
ARM 플랫폼에는없는 DMI가 BIOS가 아닌가?
LawrenceC

3
"D"는 desktop 을 나타내므로이 임베디드 시스템에는 없을 것입니다.
MSalters

1
데비안 Jessie의 경우 : "패키지 dmidecode는 사용할 수 없지만 다른 패키지가 참조합니다." 내가 아는 한 ARM 보드는 PC BIOS를 사용하지 않습니다.
jww
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.