लिनक्स में ARM CPU क्लॉक स्पीड कैसे प्राप्त करें?


16

मेरे पास S3C2416 बोर्ड पर आधारित एक ARM- आधारित एम्बेडेड मशीन है। मेरे द्वारा उपलब्ध विनिर्देशों के अनुसार /proc/cpuinfo, 528MHz ARM CPU वाले मेरे Android फ़ोन पर समान सॉफ़्टवेयर की तुलना में 533 MHz ARM9 (ARM926EJ-S ) के अनुसार होना चाहिए , हालाँकि इस पर चलने वाला सॉफ़्टवेयर "धीमा" लगता है।

/proc/cpuinfoमुझे बताता है कि BogoMIPS 266.24 है। मुझे पता है कि मुझे प्रदर्शन ("बोगो" = फर्जी) के बारे में BogoMIPS पर भरोसा नहीं करना चाहिए, हालांकि मैं वास्तविक सीपीयू गति पर माप प्राप्त करना चाहूंगा। X86 पर, मैं rdtscसमय टिकट काउंटर पाने के लिए निर्देश का उपयोग कर सकता हूं , एक दूसरी (नींद (1)) प्रतीक्षा करें, सीपीयू की गति पर एक अनुमान प्राप्त करने के लिए फिर से काउंटर पढ़ें, और मेरे अनुभव के अनुसार, यह मान काफी करीब था। वास्तविक सीपीयू की गति।

मैं दिए गए 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

हां, यह मूल है, मुझे
533 मेगाहर्ट्ज

1
266.24*2=532.48तो ऐसा लगता है जैसे यह मर चुका है। मेरा 480MHz ARM CPU 239.2, मिलता है 439.2*2=478.4
डेविड श्वार्ट्ज

कई चीजें हैं जो सीपीयू की गति के अलावा अनुप्रयोगों की गति को प्रभावित कर सकती हैं, जैसे कि रैम की गति, रैम बस की चौड़ाई और भंडारण / नंद की गति।
लॉरेंस

1
मैं S3C2416 से परिचित हूं। यह वास्तव में एक ARM9 / ARMv4 डिज़ाइन है, न कि "Cortex" ARMv6 या v7 डिज़ाइन। आपके Android स्मार्टफ़ोन में ARM शायद एक Cortex है, जैसे Cortex A5 डिज़ाइन।
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));

ओपी से अपडेट

मैं इस आउटपुट की तलाश कर रहा हूं 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

मेरे Android पर यह 1113600 पढ़ता है, इसलिए यह kHz में है


दुर्भाग्य ls -l /sys/devices/system/cpu/cpu0/से मुझे शून्य परिणाम दे रहा है। ऐसा लगता है कि बोर्ड आवृत्ति स्केलिंग (या कर्नेल बहुत पुराना है) का समर्थन नहीं करता है।
MiKy

1
मेरा मानना ​​है कि यह कर्जन के
Gabe

पेड़ का हिस्सा डेबियन 3.16.7-ckt25-2 से गायब है। (और अन्य सीपीयू के) के cpufreqतहत गायब है /sys/devices/system/cpu/cpu0/। इसका प्रारंभिक ARMv8 / Aarch64 मस्टैंग बोर्ड है, लेकिन मुझे यकीन नहीं है कि समस्या का हिस्सा है। एक ARMv8 / Aarch64 HiKey 3.18.0-linaro-hikey चलाने वाला पेड़ है।
jww

एक रास्पबेरी पाई पर मौजूद नहीं है 3 बी + 64-बिट डेबियन भी चल रहा है। क्या आपको इसे प्राप्त करने के लिए पैकेज की आवश्यकता है?
जॉन हैरोप

1

लिनक्स के साथ, यदि आपके पास hwinfoकमांड है, तो (रूट के रूप में) समस्या:
hwinfo --cpu | grep Clock


यह एक SuSE उपकरण है और आमतौर पर अन्य वितरण पर डिफ़ॉल्ट रूप से उपलब्ध नहीं है।
Evi1M4chine

डेबियन जेसी के लिए: "पैकेज hwinfo उपलब्ध नहीं है, लेकिन किसी अन्य पैकेज द्वारा संदर्भित है।"
jww

सेव करो डेबियन में उपलब्ध है: packages.debian.org/sid/admin/hwinfo
डेविड लीकनर

ARM926EJ-S CPU पर क्लॉक के लिए ग्रीपिंग खाली आती है, हालांकि
डेविड लेचनर

एक रास्पबेरी पाई 3 बी + पर चल रहा है 64-बिट डेबियन भी।
जॉन हैरोप

-1

dmidecodeएक उपयोगी छोटा उपकरण है, जो DMIआपके द्वारा पढ़े जा सकने वाले प्रारूप में वर्तमान में तालिका में है। ऐसा करने से एक dmidecode | grep "Current Speed"(रूट के रूप में या sudo के साथ) CPU गति है कि वर्तमान में में सूचना दी जा रही है बाहर प्रिंट होगा DMI


यह बहुत अच्छा होगा, दुर्भाग्य से मेरे पास एक सीमित वातावरण है, अर्थात कोई पायथन नहीं।
मिक्की

@ मिकी: अगर मैं इसे सही ढंग से देखता हूं, तो dmidecode C, देशी है।
बॉबी

4
क्या DMI एक BIOS चीज़ नहीं है, जो ARM प्लेटफार्मों पर मौजूद नहीं है?
लॉरेंस

3
"डी" डेस्कटॉप के लिए खड़ा है , इसलिए संभावना है कि इस एम्बेडेड सिस्टम में यह नहीं होगा।
MSALERS

1
डेबियन जेसी के लिए: "पैकेज dmidoscope उपलब्ध नहीं है, लेकिन किसी अन्य पैकेज द्वारा संदर्भित है।" जहां तक ​​मुझे पता है, एआरएम बोर्ड एक पीसी BIOS का उपयोग नहीं करते हैं।
jww
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.