繁体   English   中英

跨内核的纳秒时序?

[英]Nanosecond timing across kernel?

我打算直接将一些软件写入FPGA网卡,以捕获传入的自定义网络数据包。

最终我相信我会将获得的数据发送到内核或用户应用程序。 这是针对延迟关键的交易研究项目。

由于所需的精度,我可以使用什么样的纳秒计时仪器,以及我在PCI-E网卡的接收和内核中的接收之间的持续时间计时?

这将是在Linux上,用C语言编写的“驱动程序”代码(我可以将用户应用程序放在此级别以减少延迟)。

在Linux上访问CPU时钟滴答是通过相当于Windows QueryPerformanceCOunter的tsc

clock_gettime使用HPET(如果可用),这很简单,并且尽可能好和可靠。

如果HPET 不可用,那么你无论如何都没有可靠的计时器,所以不幸的是, clock_gettime的分辨率会更糟,但就是这样,你可以做的并不多。

任何其他来源,包括tsc,要么分辨率较低,要么不可靠或两者兼而有之。

在软件中,每件事都发生在系统时钟的倍数上。 我认为你可以使用任何时间测量函数来返回经过的时钟滴答数,例如clock()应该给你足够的准确性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM