3,579,545 是一个神奇的数字。这是在除以 3 并将其馈入原始 IBM PC 中的 8053 计时器芯片之前的赫兹频率。奇怪的数字不是偶然选择的,它是美国和日本使用的 NTSC 电视系统中色同步信号的频率。IBM 工程师一直在寻找一种便宜的晶体来实现振荡器,没有什么比每台电视机中使用的晶体更便宜了。
一旦 IBM 克隆变得广泛可用,他们的设计人员选择相同的频率仍然很重要。许多 MS-DOS 软件都依赖于以这种速率计时的计时器。直接寻址芯片是一种常见的犯罪行为。
Windows 出现后,情况发生了变化。一个版本的 Windows 2 是第一个虚拟化计时器芯片的版本。换句话说,不再允许软件直接寻址定时器芯片。处理器被配置为在保护模式下运行并拦截了使用 I/O 指令的尝试。而是运行内核代码,允许伪造指令的返回值。现在可以让多个程序使用计时器,而不会互相踩到对方的脚趾。打破对硬件实际实现方式的依赖的重要第一步。
Win32 API(Windows NT 3.1 和 Windows 95)通过 API、QueryPerformanceCounter() 和 QueryPerformanceFrequency() 对计时器的访问进行了形式化。内核级组件,即硬件适配层,允许 BIOS 通过该频率。现在硬件设计人员可以真正放弃对精确频率的依赖。顺便说一句,这花了很长时间,大约在 2000 年左右,绝大多数机器仍然具有遗留率。
但是,在 PC 设计中削减成本的永无止境的追求终结了这一点。如今,硬件设计人员只需选择芯片组中恰好可用的任何频率。3,325,040,000 就是这样一个数字,它很可能是 CPU 时钟频率。像这样的高频在廉价设计中很常见,尤其是那些具有 AMD 内核的设计。你的号码很不寻常,你的机器可能并不便宜。而且计时器要准确得多,CPU 时钟具有典型的电子元件容差。