gpt4 book ai didi

c++ - 如何调整处理器总线倍频器

转载 作者:太空宇宙 更新时间:2023-11-04 11:36:40 27 4
gpt4 key购买 nike

我正在寻找控制处理器总线速度倍增器的 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 指令来测量短时间的东西需要调整它们的时序基于新设置)。

如果您没有将所有这些事情都做到完美,您将拥有一个不稳定的系统(在移动设备中,您甚至可以“炸毁”芯片 - 或者用户!)。

目前还不清楚你打算做什么,但总的来说,最好把这些事情留给系统中已经存在的调控器,而不是试图建立一个更好的系统——几乎所有的尝试都是为了让这个“更好”将失败。

关于c++ - 如何调整处理器总线倍频器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22848900/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com