主板上的晶体振荡器把原始脉冲------>8254/8253.在计时器中有PIT通道用来计算原始脉冲个数(PIT是被初始化某个值的,和此linux定义的HZ(中断次数频率)有关系,以及原始脉冲频率有关, PIT数值 = 原始脉冲频率 / 中断次数 ,因为这是以晶体振荡器的脉冲作为时间流逝单位)
在后面计算CPU频率,要利用在某段时间内TSC的个数,(TSC是计算CPU时钟周期的个数的,每一个时钟周期其计算一次)。在某个时间段内,当然ULK上说用可编程间隔计时器,就是上面的PIT通道。
5ms,我认为对于这个PIT有点少,因为不能发出一个时钟中断。不过,我认为也不是用时钟中断作为计时的单位的,那么就用其中的PIT变化量。Changed (PIT)就是已经计数的个数(也就是原始脉冲的计数)。
一个时钟中断的持续时间 = Num(PIT) = 以毫秒为单位(1000ms/HZ)
changed(PIT)/ Num(PIT) = X 毫秒 / 一个时钟中断的持续时间。
这有个问题:如果PIT重新载入了怎么办?还要用(little + PIT) - big = changed (pit)?
也许是吧,有兴趣的可以再查资料。
查到告诉我。 谢谢。
阅读(1376) | 评论(0) | 转发(0) |