การทำความเข้าใจส่วนความถี่โปรเซสเซอร์ของ cat / proc / cpuinfo


4

ฉันกำลังดูตัวประมวลผลของฉัน SPECS บนระบบ Ubuntu Linux 11.10 ของฉัน

นี่คือจุดสิ้นสุดของเอาต์พุตของคำสั่ง cat / proc / cpuinfo:

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 37
model name  : Intel(R) Core(TM) i3 CPU       M 330  @ 2.13GHz
stepping    : 2
cpu MHz     : 933.000
cache size  : 3072 KB
physical id : 0
siblings    : 4
core id     : 2
cpu cores   : 2
apicid      : 5
initial apicid  : 5
fdiv_bug    : no
hlt_bug     : no
f00f_bug    : no
coma_bug    : no
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
bogomips    : 4256.47
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

สิ่งที่ฉันไม่ได้รับคือบรรทัดที่ทำเครื่องหมายไว้:

model name  : Intel(R) Core(TM) i3 CPU       M 330  @ 2.13GHz
cpu MHz     : 933.000

ความถี่โปรเซสเซอร์ที่นี่คือ 2.13 GHz ในบรรทัดแรกและ 933 Mhz ในวินาที อันไหนถูกต้อง? 2.13 GHz หมายถึงผลรวมของความถี่ของแกนประมวลผลหรือไม่?

ในที่สุดความถี่เหล่านี้บอกฉันเกี่ยวกับรอบต่อวินาที / สัญญาณนาฬิกาต่อวินาทีที่ถ่ายโดยนาฬิการะบบของฉัน

แก้ไข:ในส่วนขยายเล็ก ๆ กับคำตอบที่ดีของ Bruno Pereira ฉันพบว่าการที่ตัวประมวลผลทำงานที่ความถี่ที่ต่างกันในการบินก็เป็นการปรับสเกลความถี่แบบไดนามิกหรือการควบคุมปริมาณซีพียู นี่คือหน้าเว็บสองหน้าที่น่าสนใจ:

http://en.wikipedia.org/wiki/Dynamic_frequency_scaling

http://en.wikipedia.org/wiki/SpeedStep


การสรุปความถี่นั้นไม่มีความหมาย ความถี่เป็นเหมือนความเร็วการเพิ่มให้ผลลัพธ์ที่ไร้สาระ คุณสามารถรวมรถสองคันไปห้าสิบไมล์ต่อชั่วโมงเพื่อให้ได้ 100 ไมล์ต่อชั่วโมงหรือไม่
David Schwartz

หมายเหตุ: เนื่องจาก Kernel 4.13,cat /proc/cpuinfo | grep MHzไม่ส่งกลับความเร็วสัญญาณนาฬิกาปัจจุบัน มันบอกว่าตั้งใจที่ Kernel Bugzilla ดูbugzilla.kernel.org/show_bug.cgi?id=197009 มีการกล่าวถึงที่นี่: phoronix.com/…
Marc.2377

คำตอบ:


7

Linux ใช้ตัวควบคุมเพื่อตั้งค่าการทำงานของ CPU ของคุณ (หาก CPU ของคุณรองรับการตั้งค่าการก้าว)

โดยทั่วไปจะตั้งค่าเป็นเปิดตามปกติซึ่งหมายความว่าความถี่ของ CPU ของคุณจะลดลงเมื่อไม่ได้ใช้งานอย่างหนัก

cpufreq-infoเป็นเครื่องมือในการตรวจสอบขั้นตอนต่าง ๆ ที่มีอยู่ในซีพียูของคุณซึ่งผู้ว่าการเคอร์เนลใช้งานอยู่ในปัจจุบันต่อหนึ่งคอร์ของซีพียูของคุณและข้อมูลเพิ่มเติมเกี่ยวกับความสามารถของซีพียูของคุณ
มันส่งคืนสิ่งที่ชอบ

cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
  driver: powernow-k8
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 8.0 us.
  hardware limits: 800 MHz - 3.00 GHz
  available frequency steps: 3.00 GHz, 2.30 GHz, 1.80 GHz, 800 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 800 MHz and 3.00 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz.
  cpufreq stats: 3.00 GHz:10.45%, 2.30 GHz:0.29%, 1.80 GHz:1.72%, 800 MHz:87.55%  (28605)

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการตรวจสอบและตั้งค่าการก้าวซีพียูของคุณจากบรรทัดคำสั่งฉันได้สร้างคำตอบสำหรับคำถามอื่นที่อธิบายถึงวิธีการทำเช่นนั้นให้hereดู

ความถี่สูงสุดของ CPU ของคุณคือ 2.13Ghz แต่ถ้า Kernel Governor ของคุณถูกตั้งค่าเป็นPerformanceระบบของคุณจะใช้เวลาส่วนใหญ่ในการลดความถี่นั้น

933Mhz นั้นเป็นก้าวที่ต่ำที่สุดสำหรับซีพียูของคุณและอาจหมายความว่าระบบของคุณไม่ได้อยู่ภายใต้แรงกดดันอย่างหนักในขณะนี้หรือกำลังใช้ผู้ว่าการประหยัดพลังงาน

คุณสามารถทดสอบว่าคุณได้รับผลลัพธ์เดียวกันเมื่อระบบของคุณไม่ทำงานหรือไม่หากความถี่ไม่เปลี่ยนแปลงคุณกำลังใช้ผู้ว่าการประหยัดพลังงานและนั่นทำให้ความถี่ CPU ของคุณอยู่ที่ 933Mhz ตลอดเวลา


ขอบคุณสำหรับคำตอบที่ยอดเยี่ยม ฉันวิ่งรูทีนการเรียงลำดับอย่างง่ายบนจำนวนเต็ม 3 พันล้านและระหว่างรันฉันตรวจสอบความถี่ซีพียู ฉันพบว่ามันกระโดดได้ถึง 2.13 GHz
smilingbuddha

คำถามหนึ่ง: เมื่อมีคนพูดถึงการโอเวอร์คล็อกโปรเซสเซอร์สำหรับการเล่นเกมนั่นหมายความว่าพวกเขากำลังพยายามเพิ่มความถี่หน่วยประมวลผลเกินความถี่สูงสุดที่รับประกันซึ่งกรณีของฉันคือ 2.13 MHz ใช่ไหม?
smilingbuddha

@smilingbuddha ถูกต้องโดยปกติแล้วเกี่ยวข้องกับการเพิ่มตัวคูณของ CPU หรือ FSB ของระบบทำให้มันทำงานเกินกว่าที่โรงงานของเขาแนะนำไว้ สร้างความร้อนพิเศษต้องการการระบายความร้อนที่ดีขึ้น
Bruno Pereira

5

933 MHz เป็นความถี่ปัจจุบันของ CPU core นั้น (อาจทำงานที่ความเร็วต่ำกว่าเนื่องจากระบบไม่ได้ใช้งาน) ในขณะที่ 2.13 GHZ เป็นค่าสูงสุด ความถี่. cpufreq-infoดูเพิ่มเติมเอาท์พุทของโปรแกรม


นี่@ 2.13 GHzเป็นส่วนหนึ่งของชื่อรุ่น เป็นความถี่ที่ผู้ผลิต CPU เลือกที่จะใส่ชื่อรุ่น ในซีพียูสมัยใหม่หลาย ๆ ตัวนั่นไม่ใช่ความถี่สูงสุด แต่เป็นความถี่สูงสุดที่รับประกันได้
David Schwartz

@DavidSchwartz สำหรับทุกคนที่อ่านข้อความนี้ที่ไม่สนใจใช้งาน CPU เหนือความถี่ที่รับประกัน 2.13Ghz คือความถี่สูงสุดสำหรับ CPU นั้น ไม่มีอะไรผิดปกติ
Bruno Pereira

@BrunoPereira: นั่นเป็นความจริงสำหรับซีพียูนี้โดยเฉพาะ แต่ก็ไม่เป็นความจริงโดยทั่วไปเนื่องจากมีฟีเจอร์อย่างเทอร์โบบูสต์
David Schwartz

2

ความถี่ของ CPU นั้นซับซ้อนยิ่งขึ้นด้วยเทอร์โบและ c-state

เมื่อตัวประมวลผลไม่ได้ทำงานและอยู่ในสถานะ c จะรายงานความถี่ขั้นต่ำสำหรับตัวประมวลผลนั้นโดยทั่วไปตามที่เห็นใน available_scaling_frequencies

ดังนั้นแม้ว่าคุณจะเลือกผู้ว่าการปฏิบัติงานคุณจะเห็นความเร็วสองระดับต่ำสุดและสูงสุด - แต่ความถี่ต่ำสุดนั้นไร้ความหมายจริงๆเนื่องจาก CPU ไม่ได้ทำอะไรเลยเพราะอยู่ในสถานะ c

ค่าเหล่านี้เกี่ยวข้องโดยตรงกับชุดของรีจิสเตอร์ msr 0x199, 0x198, 0x1a0 และ 0x1ad ซึ่งสามารถอ่านได้โดยตรงผ่านยูทิลิตี rdmsr หากคุณสงสัย

สิ่งนี้ทำให้เกิดความสับสนมากขึ้นคือผู้ว่าราชการขอความถี่สูงสุดที่มีอยู่และมีห้องระบายความร้อนเพียงพอมีแกนสามารถโอเวอร์คล็อกและจะไม่มีรายงาน msr 0x199 หรือใน cpuinfo ยูทิลิตี้ที่ใช้ aperf / mperf เป็นสิ่งจำเป็นในการตรวจสอบว่า CPU ของคุณทำงานเกินความเร็วที่กำหนดหรือไม่

ค่าข้อมูลรุ่นคือความเร็วที่รับประกัน นั่นหมายความว่าภายใต้เงื่อนไขการทำความเย็นที่เหมาะสมชิปควรทำงานที่ความถี่นั้นได้ตลอดเวลา ในตัวอย่างนี้คือ 2.13GHz

register 0x1ad แสดงให้เห็นว่ามีความถี่เทอร์โบเท่าใด การลงทะเบียนของคุณอาจมีลักษณะเช่นนี้บนชิป EE 8 คอร์: 1b1b1c1c1c1d1d1e1e

แต่ละไบต์ระบุจำนวนของ CPUs + 1 ซึ่งสามารถใช้งานได้ในเวลานั้นเพื่อรับความถี่

ในกรณีนี้หากมีการใช้งาน 7 หรือ 8 คอร์ตัวคูณสูงสุดคือ 0x1b หรือ 27 ตัวคูณโดยทั่วไปคือ 100MHz แม้ว่า MSR อื่นจะระบุสิ่งนี้ ดังนั้นส่วน EE นี้สามารถทำงานที่ 2.7GHz ในขณะที่ความถี่การรับประกันคือ 2.2GHz เนื่องจากซีพียูจำนวนมากอยู่ในสถานะ c / idle อัตราเทอร์โบสามารถเพิ่มขึ้นได้สูงสุด 30 หรือ 3.0GHz หากมีเพียง 1 หรือ 2 คอร์เท่านั้นที่ทำงาน

เนื่องจาก CPU เหล่านี้เหนือกว่าและสามารถดำเนินการตามคำสั่งได้และเนื่องจากคำสั่งแมโครใน CISC สามารถใช้มากกว่าหนึ่งรอบได้อัตรานาฬิกาไม่ได้บ่งบอกถึงรอบที่มีความหมาย

Bogomips เป็นการบ่งชี้โดยพลการโดยทั่วไปขึ้นอยู่กับจำนวนของตัวเลือกในรอบ แต่มีตัวแปรมากเกินไปที่จะทำประสิทธิภาพตามความถี่ของ CPU

สิ่งที่น่าสนใจมากกว่าคือการเรียนการสอนจริง คุณสามารถตรวจสอบสิ่งนี้ได้โดยใช้เครื่องมือที่สมบูรณ์แบบและนับจำนวนคำสั่งและการดำเนินการอื่น ๆ ในรูปแบบที่มีความหมายมากกว่าในเวิร์กโหลด

โดยทั่วไปถ้าคุณมีความปลอดภัยทางความร้อนและคุณรู้ว่าคุณมี CPU ที่ผูกไว้ แต่ระเบิดซีพียูและคุณไม่สนใจพลังงานคุณสามารถใช้ตัวควบคุมประสิทธิภาพและเปิดใช้งาน c-state การประหยัดพลังงาน C-state สูงกว่าการประหยัดอย่างมีนัยสำคัญเนื่องจาก p-state ภาระงานจำนวนมากยังได้รับประโยชน์จากการแข่งรถเพื่อรอในสถานะ c ต่อไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.