对于X86 PC来说,主板上会有一个用电池驱动的里存在的以较小hz(如200)这样的interrupt(即tick interrupt),形成以1/hz为单位的jiffes,精度约在ms上的时钟,无法满足高精度计时(ns级)的需要(计时、ntp同步)等 。

于是,通过其他芯片来触发高精度中断,成为linux os提供高精度时间源的一个可能的选择。

对于linux系统,可能过如下命令查看可用的时间源以及当前活跃的时间源:

cat /sys/devices/system/clocksource/clocksource0/available_clocksource
cat /sys/devices/system/clocksource/clocksource0/current_clocksource

目前在x86架构上使用较多的为tsc这个由x86 cpu内部以cycle计算提供的一个计数器(TSC)来实现的由中断触发的时间源,可以以clock_event_device的行式来触发linux中断执行,从而驱动linux的高精度计时功能。


Comments

comments powered by Disqus