V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
James369
V2EX  ›  Linux

纳秒级的高精度时间 精度真的准确吗?一般用在何处?

  •  
  •   James369 · 2021-06-07 08:46:21 +08:00 · 5594 次点击
    这是一个创建于 1044 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不知道这种纳秒级时间是什么原理是怎么取到的,但是指令周期都要消耗几纳秒吧,另外传回应用层精度一定是丢失了。
    所以不知道这个高精度时钟真正的用处是什么?

    我能想到的一个就是用来代替唯一数生成,对于要求不那么高的单机系统,可以取代 GUID 吧,毕竟 GUID 生成比较繁琐,另外也需要 32 字节的空间去存储。
    第 1 条附言  ·  2021-06-07 20:24:16 +08:00
    真是隔行好隔山,这样看来高精度时钟用在纯硬件实现的系统会比较多吧
    23 条回复    2021-06-08 12:12:46 +08:00
    shakoon
        1
    shakoon  
       2021-06-07 08:51:49 +08:00
    专用电路和芯片的执行时间是可以被精确计量的,所以不存在精度损失。用处嘛,卫星定位,导弹定位,你在地面的导航,等等
    yolee599
        2
    yolee599  
       2021-06-07 08:55:44 +08:00 via Android
    同时开启两个硬件定时器?一个 ms 级,一个 ns 级,ns 级的定时器级数设置为 1000 次更新,取时间的时候直接读取就行
    IgniteWhite
        3
    IgniteWhite  
       2021-06-07 08:56:46 +08:00 via iPhone
    现在蓝牙和 LIDAR 不都在用 ToF 嘛。时钟精度不够怎么通过光速测距
    freemon
        4
    freemon  
       2021-06-07 08:57:49 +08:00
    c++ 里面可以用 rdtsc 来取啊,对延迟要求比较高的比如交易系统方面可能会用来分析每段代码的耗时
    TOM2333
        5
    TOM2333  
       2021-06-07 09:01:09 +08:00
    实时系统需要。另外,linux 使用的高精度时钟都是 ns 级别的。
    vk42
        6
    vk42  
       2021-06-07 09:03:02 +08:00
    民用机你就当它是个单增计数器吧,影响精度因素太多了,精度能到微秒就差不多了。
    把时钟做 GUID 你怕是对 GUID 有啥误解,你要只是单机需要唯一标识随便你怎么用,取代 GUID 你让多机怎么搞……
    bao3
        7
    bao3  
       2021-06-07 09:10:06 +08:00 via iPhone   ❤️ 41
    这都快 10 年了吧,我卖 PTP,IEC 1588 时钟好多年了。说一个你有感受到例子,电网波峰需要省地县联动控制电力供应设备。如果没有及时互联互动,会因为电网的巨大冲击,导致电网事故。
    而电的速度就是光速,要和光速抢速度,靠毫秒级对时协议,早就过了电网波峰了,电网调度得被处分了。所以 10 年前国家电网就使用了 PTP 作为时钟系统,然后实现电网远动闭锁。
    另外,同一个变电站内部,分合闸时钟如果相差很多,也会造成内部损害。毫米级根本满足不了自动化的需求。
    当然在实际运行时,虽然电是光速,但是反馈到变电站还会经过变压器升降压,各类保护,所以肯定是有延迟。不夸张的说,我国国家电网真的是星球第一。
    luqingliang
        8
    luqingliang  
       2021-06-07 09:19:40 +08:00
    HIFI 设备
    feikeq
        9
    feikeq  
       2021-06-07 09:26:33 +08:00
    出租车车顶的广告和城市灯光秀
    swulling
        10
    swulling  
       2021-06-07 09:31:02 +08:00 via iPhone
    Linux ns 级时钟一般来自于 CPU 的时钟寄存器,精度可以做到 ns 级。
    nevin47
        11
    nevin47  
       2021-06-07 09:40:00 +08:00
    其实挂钟时间很多时候都会默认不太准确,产生部分误差都认为可以接受。我们做高精度系统性能调优的时候一般靠 RDTSC 和 RDTSCP,这个是指令计数器可以认为绝对精确
    bthulu
        12
    bthulu  
       2021-06-07 09:43:23 +08:00
    互联网没用处, 服务器没一台能精确到纳秒级的, 工业上有点用
    threebr
        13
    threebr  
       2021-06-07 09:49:40 +08:00
    @bao3 电线中电流的速度其实不是光速,大概只有光速的一半
    no1xsyzy
        14
    no1xsyzy  
       2021-06-07 09:50:03 +08:00   ❤️ 2
    在 spectre 等旁信道漏洞中也有应用(

    @vk42 不要说多机了,就是多线程都有碰撞可能性
    no1xsyzy
        15
    no1xsyzy  
       2021-06-07 10:03:46 +08:00
    @threebr 受 velocity factor 影响,根据材质不同可能是 50% 到 99%,大部分材料应当是在 0.6 到 0.8 之间。当时练习题还在算以太网满足碰撞检测的最低 padding 来着……

    但就算纠结这个,其实,他也没说是「真空光速」啊
    你尝试在一根导线上发射一束不会被完全吸收的电磁波,它显然应当是以该介质中的光速传播。
    masterclock
        16
    masterclock  
       2021-06-07 10:04:21 +08:00
    Google 使用原子钟同步它的数据库。
    以太网音频广播使用 ptpv2 同步到 125us
    一般的晶振可以达到 ps 级别的短时精度 jitter,长时 ppm 级别
    fonlan
        17
    fonlan  
       2021-06-07 10:04:40 +08:00
    说个跟你关系更大的,你用的 4G 、5G 通信全部依赖于纳秒级的时钟精度,尤其是 TDD 的,所以如果没有这个高精度的时钟你的手机可没有这么快的上网速度
    77alex
        18
    77alex  
       2021-06-07 11:03:56 +08:00
    股票市场作用大,同样是封板,先提交的订单排前面
    VHacker1989
        19
    VHacker1989  
       2021-06-07 12:35:51 +08:00
    这个粒度的时间要考虑物体所在的惯性系了,时空是不可分的,参考双子吊诡
    wanguorui123
        20
    wanguorui123  
       2021-06-07 18:47:20 +08:00 via iPhone
    高精度机床上
    l1ve
        21
    l1ve  
       2021-06-08 00:34:59 +08:00
    Linux 的高精度时钟确实是纳秒级的

    但即便在 RT 内核上, 这个"纳秒级"的实时性, 即便是最优秀的机器, 也只是在 1000 纳秒左右

    最后回答:
    纳秒级这种东西属于基础科学了, 别想当然
    SuT2i
        22
    SuT2i  
       2021-06-08 11:18:50 +08:00
    抢茅台
    realpg
        23
    realpg  
       2021-06-08 12:12:46 +08:00
    各种可靠刚性通信,都依赖高精度时钟
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5011 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 09:54 · PVG 17:54 · LAX 02:54 · JFK 05:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.