ใช้คำตอบนี้โดยยอมรับความเสี่ยงเอง
คำตอบนี้ใช้ Intel(R) Core(TM) i5-10600K สำหรับตัวอย่าง ที่อยู่ลงทะเบียนควรเหมือนกันสำหรับ i7-4700MQ
หมายเหตุ: หากเคอร์เนลของคุณยังใหม่เพียงพอ การเข้าถึงเพื่อเขียนไปยัง MSR (การลงทะเบียนเฉพาะเครื่อง) จะถูกปิดใช้งาน โดยต้องใช้ msr.allow_writes=เปิด
ที่จะเพิ่มให้กับคุณ /etc/default/grub
บรรทัดคำสั่ง, GRUB_CMDLINE_LINUX_DEFAULT
.
ข้อกำหนดเบื้องต้น: โหลดโมดูล msr-tools, turbostat และ msr แล้ว
MSR_TURBO_RATIO_LIMIT (1ADH) จะอ่านได้ก็ต่อเมื่อ MSR_PLATFORM_INFO (0CEH) บิต 28 เป็น 0 แต่จะถูกอ่าน/เขียนหากบิต 28 เป็น 1
ตัวอย่างวิธีที่ 1:
$ sudo modprobe msr
$ sudo rdmsr -- บิตฟิลด์ 28:28 0x0ce
1
ตัวอย่างวิธีที่ 2 ใช้ turbostat อ่าน register แล้วถอดรหัสเอง ระบุวิธีที่ 2 วิธีสังเกตอัตราส่วนเทอร์โบตอนนี้:
$ sudo เทอร์โบสแตท
turbostat เวอร์ชัน 21.05.04 - Len Brown <[email protected]>
...
cpu2: MSR_PLATFORM_INFO: 0x808083af1012900
...
cpu2: MSR_TURBO_RATIO_LIMIT: 0x303030303030
48 * 100.0 = 4800.0 MHz เทอร์โบสูงสุด 6 คอร์ที่ใช้งานอยู่
48 * 100.0 = 4800.0 MHz เทอร์โบสูงสุด 5 คอร์ที่ใช้งานอยู่
48 * 100.0 = 4800.0 MHz เทอร์โบสูงสุด 4 คอร์ที่ใช้งานอยู่
48 * 100.0 = 4800.0 MHz เทอร์โบสูงสุด 3 คอร์ที่ใช้งานอยู่
48 * 100.0 = 4800.0 MHz เทอร์โบสูงสุด 2 คอร์ที่ใช้งานอยู่
48 * 100.0 = 4800.0 MHz เทอร์โบสูงสุด 1 คอร์ที่ใช้งานอยู่
...
ดังนั้นฉันจึงสามารถเปลี่ยนอัตราส่วนเทอร์โบของฉันได้
ปัจจุบันพวกเขาคืออะไร? วิธีที่ 2 turbostat แสดงรายการและถอดรหัสไว้ด้านบน ซึ่งอาจเป็นวิธีที่ง่ายที่สุด วิธีที่ 1:
$ sudo rdmsr 0x1AD
303030303030
8 บิตต่อจำนวนของอัตราส่วนแกนที่ใช้งานซึ่งเริ่มต้นด้วย 1 หรือทั้งหมดคือ 48
สมมติว่าฉันต้องการเปลี่ยน 6 คอร์ที่ใช้งานอยู่เป็น 47 หรือ 2FH:
$ sudo wrmsr 0x1AD 0x2f3030303030
$ sudo rdmsr 0x1AD
2f3030303030
และตรวจสอบผ่าน turbostat:
$ sudo เทอร์โบสแตท
...
cpu10: MSR_TURBO_RATIO_LIMIT: 0x2f3030303030
47 * 100.0 = 4700.0 MHz เทอร์โบสูงสุด 6 คอร์ที่ใช้งานอยู่
48 * 100.0 = 4800.0 MHz เทอร์โบสูงสุด 5 คอร์ที่ใช้งานอยู่
48 * 100.0 = 4800.0 MHz เทอร์โบสูงสุด 4 คอร์ที่ใช้งานอยู่
48 * 100.0 = 4800.0 MHz เทอร์โบสูงสุด 3 คอร์ที่ใช้งานอยู่
48 * 100.0 = 4800.0 MHz เทอร์โบสูงสุด 2 คอร์ที่ใช้งานอยู่
48 * 100.0 = 4800.0 MHz เทอร์โบสูงสุด 1 คอร์ที่ใช้งานอยู่
หมายเหตุ: โปรเซสเซอร์บางรุ่นจะแสดงรายการอัตราส่วนเทอร์โบสำหรับคอร์ที่มากกว่าที่มีอยู่จริง ตัวอย่าง i5-9600K:
cpu5: MSR_TURBO_RATIO_LIMIT: 0x2b2b2e2e2e2e2e2e
43 * 100.0 = 4300.0 MHz เทอร์โบสูงสุด 8 คอร์ที่ใช้งาน << ฉันมีแค่ 6 คอร์
43 * 100.0 = 4300.0 MHz เทอร์โบสูงสุด 7 คอร์ที่ใช้งาน << ฉันมีแค่ 6 คอร์
46 * 100.0 = 4600.0 MHz เทอร์โบสูงสุด 6 คอร์ที่ใช้งานอยู่
46 * 100.0 = 4600.0 MHz เทอร์โบสูงสุด 5 คอร์ที่ใช้งานอยู่
46 * 100.0 = 4600.0 MHz เทอร์โบสูงสุด 4 คอร์ที่ใช้งานอยู่
46 * 100.0 = 4600.0 MHz เทอร์โบสูงสุด 3 คอร์ที่ใช้งานอยู่
46 * 100.0 = 4600.0 MHz เทอร์โบสูงสุด 2 คอร์ที่ใช้งานอยู่
46 * 100.0 = 4600.0 MHz เทอร์โบสูงสุด 1 คอร์ที่ใช้งานอยู่
ข้อมูลนั้นสามารถถูกละเว้นได้