我如何知道我的CPU是否支持高分辨率定时器?

问题描述 投票:0回答:1

作为 Linux 内核课程的一部分,我们解释了硬件可能不支持高分辨率定时器。影响此支持的硬件只有 CPU。

所以我花时间打开了其中一个 intel CPU 规格 我试图了解是否通过阅读给定 CPU 的规格,我可以确定操作系统是否可以支持高分辨率计时器。

在那本特定手册中,我不确定要寻找什么,但我的第一个猜测是“时钟拓扑”部分(链接中的 2.6)。 本节下面列出了三种类型的硬件时钟: Base Clock参考时钟(100MHz)、PCIe参考时钟和固定时钟38.4MHz。

现在,如果高分辨率时钟支持仅基于硬件,而不是通过多个时钟等的某些复杂计算,则基本参考时钟的 100Hz 是 10 纳秒,而不是 1。高分辨率定时器据说支持 1 纳秒决议。

我认为 INTEL 高端 CPU 确实支持高分辨率定时器,但似乎我缺乏如何阅读手册以及该支持所需的知识。

有人可以详细说明一下吗?纳秒分辨率实际上意味着 1 纳秒分辨率吗?如果该 CPU 确实支持 HR 定时器,则使用什么机制来弥补硬件支持的不足。这些信息可以从操作系统本身获取吗?

linux timer linux-kernel x86 high-resolution-clock
1个回答
0
投票

正如锯末所提到的 - 您可以使用 /proc/timer_list,但我不确定 .resolution 是否能够准确指示高分辨率计时器活动是否存在。 据我所知 - .hres_enabled 会肯定地告诉你:

cat /proc/timer_list | grep .hres_active

我希望它仍然与你相关,即使三年后..

© www.soinside.com 2019 - 2024. All rights reserved.