V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
einsdisp
V2EX  ›  程序员

电脑时钟每天误差 1-2 秒钟,是质量问题还是普遍现象?

  •  1
     
  •   einsdisp · 147 天前 · 5348 次点击
    这是一个创建于 147 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近因为一些机缘巧合,发现电脑时钟每天似乎总有误差。

    于是进行测试,系统为 Linux ,关闭操作系统的时间同步( Systemd 的时间同步),写了一个几行的脚本追踪系统时间误差(ntpdate -q)。

    测试两台电脑,24 小时不关机,一个是技嘉 x570 ,每天变慢 2 秒钟,一个是微星 z170 ,每天变快 0.5 秒钟。这两个主板也不是非常低端的主板了,测了下电池电压也正常。结果每天误差这么多?

    这个是质量问题还是普遍现象?

    想了解下,这种时钟误差,应该是纯粹的主板的锅吧?跟 cpu 、芯片组、操作系统应该无关吧?

    29 条回复    2022-02-08 11:55:35 +08:00
    xingchenzhou
        1
    xingchenzhou  
       147 天前 via Android
    正常
    newbieRenew
        2
    newbieRenew  
       147 天前 via iPhone
    正常,需要和时间服务器同步,不然走着走着就不准了
    pengtdyd
        3
    pengtdyd  
       147 天前
    每 10 分钟同步一次
    kenvix
        4
    kenvix  
       147 天前
    你指望消费级主板的 RTC 能有多高精度...
    Cielsky
        5
    Cielsky  
       147 天前 via Android
    这不太正常了
    la9998372
        7
    la9998372  
       147 天前   ❤️ 37
    假设一个 32.768KHz±20ppm 的晶振,那么它每天的累计误差最大为
    20/1000000*3600*24=1.728s
    littlewing
        8
    littlewing  
       147 天前
    正常误差范围
    要不换原子钟或 GPS 授时?
    ncepuzs
        9
    ncepuzs  
       147 天前
    正常,手动同步即可
    wwbfred
        10
    wwbfred  
       147 天前   ❤️ 1
    一看你就在 PS2/PS3 时代没玩过主机,那个时代普遍不联网,主机放时间长了都得自己调表。
    kevin100702
        11
    kevin100702  
       147 天前 via Android
    正常
    kimwang
        12
    kimwang  
       146 天前 via Android
    这问题好学术,涉及到计时误差问题,我跑~
    kokutou
        13
    kokutou  
       146 天前 via Android
    消费级没那么准。。。

    服务器大厂有在研发高精度时种,可以降低内部延迟。
    Qazxcv123
        14
    Qazxcv123  
       146 天前 via Android
    @kokutou 服务器 RTC 一样用的 32.768k 的外部晶体,偏差和 pc 差不多
    flynaj
        15
    flynaj  
       146 天前 via Android
    这个正常,所以现在什么设备都是联网 NTP 对时间,这个误差来自晶振。就是这个
    @la9998372
    la9998372
        16
    la9998372  
       146 天前   ❤️ 1
    另外补充一下,如果想提高晶振精度,可以选择 OCXO 或者 TCXO 晶振。

    恒温晶体振荡器简称恒温晶振,英文简称为 OCXO ( Oven Controlled Crystal Oscillator ),是利用恒温槽使晶体振荡器中石英晶体谐振器的温度保持恒定,将由周围温度变化引起的振荡器输出频率变化量削减到最小的晶体振荡器。OCXO 是由恒温槽控制电路和振荡器电路构成的。通常人们是利用热敏电阻“电桥“构成的差动串联放大器,来实现温度控制。

    温补晶振即温度补偿晶体振荡器( TCXO ),是通过附加的温度补偿电路使由周围温度变化产生的振荡频率变化量削减的一种石英晶体振荡器。温补晶振术语来自石英晶体振荡器的一种补偿方式已达到产品应用方面的精度要求。温补晶振定义是将压电石英晶体原有的物理特性(压电效应下频率随温度成三次曲线变化)通过外围电路逆向改变使得石英晶体原有频率随温度的变化尽可能的变小的一种补偿方式所做的石英晶体振荡器。
    breaker911
        17
    breaker911  
       146 天前
    之前看到 LTT 搞到手民用版的板载原子钟 估计过 10 年就商用普及了 20 年估计能民用化自己选配了
    mingl0280
        18
    mingl0280  
       146 天前 via Android
    你真要精确时钟就去搞个 FB 开源的那个 PCIe 卡呗……
    loading
        19
    loading  
       146 天前
    @breaker911 #17 一个北斗授时时的东西才百来块,你说哪个划算。
    wangxn
        20
    wangxn  
       146 天前 via Android
    学习了,完全没想到
    lingex
        21
    lingex  
       146 天前
    没必要太高精度(降低成本),主要是现在网络校时太方便了。

    内置温补晶振的时钟芯片比如 DS3231, 可以做到正负 2ppm(0-40°C),换算成年误差不超过 2min.
    SevnChen
        22
    SevnChen  
       146 天前   ❤️ 1
    感觉可以算作一个冷知识了,已经习惯所有的电子设备的时间都是准确且一致的了。。。
    laydown
        23
    laydown  
       146 天前
    写个脚本,一天同步几次就行了。
    lidlesseye11
        24
    lidlesseye11  
       146 天前
    一直以为石英表一年也就错个一两秒。。搜了下发现是每天。。
    redsonic
        25
    redsonic  
       146 天前   ❤️ 1
    linux 下的时钟(wall time)是开机时内核从 RTC 芯片读出,然后每次程序读的时候是开机那个时刻加上内核的 jiffies 算出来的。我遇到过时间偏移过大的问题原因是 ntp 禁用而且某个内核任务占用 cpu 过长,jiffies 增加变慢,导致应用程序读出的时钟是慢的。
    linux 下可以用 hwclock 直接读写那个 RTC 芯片里的时钟,如果这个都会走偏才能说明是硬件问题。另外关机时内核会把自己算的 wall time 写回到 RTC 。
    konchu
        26
    konchu  
       145 天前
    这么说卡西欧的玩具表都比这个准
    NewYear
        27
    NewYear  
       145 天前
    常识:电子表 160 万年误差 1 秒。
    现实:160 万年亲妈都不认识了。
    lizytalk
        28
    lizytalk  
       144 天前 via iPhone
    正常
    mandex
        29
    mandex  
       138 天前
    好奇这个问题你是怎么发现的啊
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2411 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 87ms · UTC 11:40 · PVG 19:40 · LAX 04:40 · JFK 07:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.