如何调整处理器总线乘法器

How to Adjust Processor Bus Multiplier

本文关键字:处理器 总线 乘法器 调整 何调整      更新时间:2023-10-16

我正在寻找一个控制处理器总线速度乘数的Windows函数,结构,API。换句话说,我试图通过改变乘法器来调整CPU的频率。目前,我正在使用以下函数修改电源方案来调整 CPU 速度。

 PowerWriteDCValueIndex(…,…,…,…)

并调整

     THROTTLE_MAXIMUM; & THROTTLE_MINIMUM;

但是,这允许我将处理器速度更改为 % 这并不准确。希望我的问题清楚,你可以提供帮助。

谢谢。

操作系统中电源状态的处理由内核驱动程序模块处理,该模块至少特定于特定的 CPU 供应商,有时也特定于 CPU 型号(例如,操作在 64 位 AMD 处理器中完成的方式与在 32 位 AMD 处理器中完成的操作不同。我曾经玩过Linux驱动程序来设置AMD处理器的时钟速度)。

此驱动程序将由"调控器"进程控制,该进程将你已经在使用的配置设置(策略)、CPU 上的当前负载(通常还有一些"负载历史记录",以减少过多的开关)和其他来源(如 CPU 温度、电池剩余电量(如果适用))作为输入。[在移动设备中,CPU 的温度绝对是等式的输入,因为大多数现代 CPU 和 GPU 能够消耗比设备可以耗散的功率多得多,因此如果功率设置长时间保持在高设置上,芯片会过热]

不幸的是,在执行此操作之前,您需要了解比"我想跑这么快"更多的细节。有一些 BIOS 表(ACPI 和/或其他供应商特定的表)定义了在什么频率下使用什么电压,您需要先设置电压,然后在速度上升时设置时钟速度,在速度下降时设置时钟速度然后设置电压。这些表通常不会包含 CPU 可以达到的所有速度,而是包含"全速"、"中速"和"慢速"设置。[并且不同类型的CPU会有多个表,因为BIOS不知道构建系统的人是使用高功率,高速CPU还是低速,低功耗CPU]。

还有一些寄存器需要编程,以确定CPU在切换到新速度之前应该"休眠"多长时间,以使PLL(控制时钟乘法器)稳定下来。这意味着您不想太频繁地切换。

系统还需要知道时钟频率已经改变,以便可以调整任何依赖于CPU速度的处理(例如,在x86上使用RDTSC指令来测量短时间的东西将需要根据新设置调整其时序)。

如果你没有把所有这些事情都做到完美,你就会有一个不稳定的系统(在移动设备中,你甚至可以"炸"芯片——或者用户!

目前尚不清楚您打算做什么,但总的来说,最好将这些事情留给系统中已经存在的州长,而不是试图建立一个更好的系统——几乎所有让这个"更好"的尝试都会失败。