1.计算机的时钟(一):NTP 协议

2.系统时钟

3.系统是时钟发生器芯片的时钟信号,在PCI-E第几脚可以检测到

计算机的时钟(一):NTP 协议

电脑时间晶振-电脑系统时钟振荡

本系列文章主要介绍计算机系统中时钟的处理。主要内容包含NTP,Lamport逻辑时钟,向量时钟,TrueTime等。本文是第一篇,介绍NTP协议。

不知道你注意过没有,如隔了好几天打开你的电脑,任务栏的时间依然是显示正确的,即使你的电脑没有联网,这是如何做到的?

计算机的主板上有一个石英晶体振荡器和一个纽扣电池。石英晶体振荡器的频率是32768Hz每秒。在通电的时候,石英晶体每振动32768次,电路就会传出信息,表示1秒钟到了,通过这种方式来记录时间。但是石英晶体会有误差,正常情况下,每天的计时误差在正负1秒钟。而且在极端温度下,比如零下二十度,误差会变大。

正是因为石英晶体误差比较大,所以1985年特拉华大学的Did L. Mills设计了网络时间协议NTP(Network Time Protocol)来同步不同计算机系统之间的时钟。

NTP协议的目标是将所有计算机的时间同步到几毫秒误差内。实际上广域网可以达到几十毫秒的误差,局域网误差可以在1毫米内。NTP协议是一种主从式架构协议,使用分层的时钟源系统,每一层称为Stratum,阶层的上限是15,阶层16表示未同步设备。常见的阶层如下:

参考(基准)时钟,主要由高精度计时设备,比如铯或铷原子钟、GPS时钟、无线电时钟。它们生成非常精确的脉冲信号,触发计算机上的中断和时间戳。

主时间服务器,这些服务器与阶层0设备相连,在几微秒误差内同步系统时钟。阶层1服务器之间可以互相连接,进行完整性检查和备份。

这些计算机通过网络和阶层1服务器同步。每个计算机可以查询多个阶层1服务器,阶层2计算机之间也可以互相连接。

这些计算机与阶层2的服务器同步。

NTP协议的时钟同步过程如下:

从上面的流程中可以很容易地计算出:

AB之间的网络往返时间RTT(Round Trip Time):δ = (T4 - T1) - (T3 - T2)

AB之间的时间偏移:θ = ( (T2 - T1) + (T3 - T4) ) / 2

推导过程:A从发送请求消息到收到响应的时间间隔是 T4 - T1,其中 T3 - T2 是B的处理时间,所以网络往返时间

δ = (T4 - T1) - (T3 - T2)。

设A和B的时间偏差为θ,那么 T3 - θ = T3`。

T4和T3` 的间隔是半个RTT:T4 - T3` = δ / 2

把T3`和δ代入上面这个等式,得到:θ = ( (T2 - T1) + (T3 - T4) ) / 2。

NTP协议使用UDP协议来传输,端口为123,报文格式如下:

各个字段的含义如下:

NTP协议在广域网可以达到几十毫秒的误差,局域网误差可以在1毫米内。误差最大的一个原因是发送请求和接收响应这两个阶段的网络时间可能是不一样的。前面我们推导时间偏移公式的时候,设网络往返发送和接收阶段的时间是一样的,但是实际网络中,这两个阶段走的路由可能是不一样的,所花的时间也可能不一样,计算的时间偏移也不准确,这样就造成了广域网的误差可能达到几十毫秒甚至更高。局域网中因为网络比较稳定,经过的路由器也比较少,所以误差可以到1毫米内。

rfc5905

网络时间协议

NTP 协议简单分析

系统时钟

什么是系统时钟?什么是时钟系统?

通常所说的系统时钟就是指时钟系统,它是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。

时钟系统有什么作用?

时钟是嵌入式系统的脉搏处理器内核在时钟驱动下完成指令执行、状态变换等动作,外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器振荡不稳、不起振等。

arm的时钟系统包含4部分,分为晶体振荡器、唤醒定时器、锁相环(pll)和vpb分频器。其中晶体振荡器为系统提供基本的时钟信号(频率为fosc)。当复位或者处理器从掉电模式唤醒时,“唤醒定时器”要对输入的时钟信号做计数延时,使芯片内部的部件有时间进行初始化。然后fosc被pll提高到一个符合用户需要的频率fcclk,fcclk用于CPU内核。因为CPU内核通常比外设部件的工作速度要快,用户可以设置VPB分频器,把fcclk信号降低到一个合适的值fpclk,该信号用于外设部件。

系统是时钟发生器芯片的时钟信号,在PCI-E第几脚可以检测到

14.318MHz振荡信号由分频器分出时钟信号后送到P插槽的B24、PC1插槽的B16脚(这两个脚为振荡测试脚)。有岬主板还将吋钟信号送到南桥,目的是使南桥的频率更加稳定。没有时钟信号,南桥、北桥、CPU、高速缓存、1/O、内存等就无法正常工作。当分频产生时钟信号后,分频器将其经K2送到南桥,经南桥处理送到PCI插槽的时钟测试脚B39,该测试脚可以反映主板上所有的时钟信号是否正常,其波形幅度一般大于1.5V。R1将分频器送来的时钟信号给CPU的第6脚,该脚为CPU工作提供时钟,否则CPU就不能正常工作。CPU的时钟信号由北桥提供,如果南桥有时钟信号而CPU没有,可能是分频器或南桥坏。分频器分频后的时钟信号经R4为I/O提供工作时钟。