正如问题所说,我想监视某些组件消耗的功率值(瓦特),特别是CPU,内存和磁盘的值。
当我使用 aida64 时,我发现在计算机/传感器中,有一些关于功耗的数据。我想知道它是如何获得这些数据的?
我已经有了一些想法,但不确定哪个是解决这个问题的最佳方法:
主板上有一些传感器,我们可以使用这些传感器的值来计算实时功率。
根据不同的操作系统,我们有一些API可以获得cpu的使用,内存的整个速率和磁盘I / O速率。使用这些数据,我们可以建立关于PC的功耗模式。如果有这些API,我在哪里找到它们?
也许像 intel 这样的硬件制造商已经实时记录了功率值,他们将这些值放入硬件中的一些特殊寄存器中。我们可以通过映射到特殊记忆位置。
在我看来,第二种方式可能是大多数监控软件使用的解决方案。但我只是不知道在哪里可以获得这些API。
更多信息,我们的目标是设计一个 独立于操作系统的 实时电源监控软件。所以,如果对这个问题有任何更好的解决方案,我将非常感谢你的帮助。
答案 0 :(得分:0)
嗯。我不确定是否应将此作为评论或答案发布。这是一个答案,但却是否定的。
此时,您无法创建基于操作系统的基于软件的非侵入式电源监视器。通过非侵入式,我的意思是你没有在主板和其他硬件上放置特殊仪器。这是因为现代处理器所使用的电源技术正在快速流动,每一代新产品都取得了重大进展。另外,随着更多硅片空间变得可用,来自硬件的软件可用的功率相关信息量(通过PMU事件等)不断增加。例如,我相信在最新的处理器中,您可以获得处理器芯片关键部件的直接热信息,以及来自内核和非核心各部分的温度,功率和电流读数。
您可以做的最好的事情是从较低层抽象显示器的顶层。然后顶部变为独立于OS / HW,而较低级别需要与平台相关。
查看PAPI APIs。请注意,API似乎为您提供了世界,但实际上只是一个API集。有人仍然需要在API的另一端实现什么。
现在,如果您可以使用自己的特殊仪器,许多(大多数?)主板和其他硬件都有测量点(一些未记录的),提供热量,电流(和功率)信息。此信息对于调试设备和平台非常重要。