【问题标题】:Is there a timer in the CPU?CPU中有定时器吗?
【发布时间】:2012-10-23 22:08:24
【问题描述】:

我们在代码中使用计时器;我只是对它的真正实现感到好奇。 CPU 逻辑电路中或 CPU 裸片外部是否有计时器 - 例如,外部时钟或类似的东西?

如果不是,那么计时器在哪里?硬件定时器是如何制作的,无需赘述,只关注我们现有的硬件板上的定时器定位即可。

【问题讨论】:

  • CPU 中有一个时钟。当您阅读有关机器的 GHz 规格时,它意味着运行指令的“时钟速度”。

标签: timer hardware cpu clock


【解决方案1】:

计算机硬件中有许多不同类型的时钟和定时器。所有基本计算机都会有一个像数字手表一样的晶体,用于同步 CPU 并形成以赫兹为单位的“时钟速度”。

大多数 CPU 都内置了许多计时器,这些计时器使用时钟速度来计算两点之间的相对时间。这允许系统程序员设置一个定时器,该定时器将在晶体的一定数量的时钟周期内“关闭”。计时器通过引发中断线来提醒 CPU 定义的时间已经过去,程序员将一段代码附加到该中断线上。

操作系统和编程语言通常将中断计时器抽象化,因此您不必直接使用它们。

大多数高级计算机(如 PC)都有一个实时时钟,可以存储实际的日历时间和日期,但不经常用于计时操作。

回答您的问题:

在我们拥有的硬件板上定位计时器

这在很大程度上取决于您的硬件以及您对哪个计时器感兴趣。您将无法实际看到大多数计时器或时钟,但水晶通常很容易找到并且看起来像一个小金属胶囊 - 请参阅 @987654321 @

【讨论】:

    【解决方案2】:

    x86 机器上有很多计时器。最著名的是 TSC(时间戳计数器)。那个在CPU里面。然后有 PIT(可编程间隔定时器)作为主板上的芯片,如 Intel 8253 和 8254。我不确定它们是否仍在使用。另一个计时器是 HPET(高精度事件计时器)。它不在 CPU 内部,是三个中最新的。

    当然还有电池供电的实时时钟。不确定这是否算作计时器。应该不会吧。

    使用哪个定时器由操作系统决定。在某些系统上使用 TSC,在其他系统上使用 HPET。 TSC 通常是首选,因为它位于 CPU 内部,因此访问速度非常快。如果没有直接与硬件对话的汇编指令,您无法真正从 C 代码中直接访问特定的计时器。

    【讨论】:

    • HPET 如果不在 CPU 内部,它的位置在哪里?
    • @D.Jones 我相信它是 PCH 的一部分。 (过去,这是南桥。)
    猜你喜欢
    • 2019-11-13
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多