我计划将一些软件直接写到FPGA网卡上,以捕获传入的定制网络数据包。
最终,我相信我会将获得的数据发送到内核或用户应用程序。这是一个延迟关键型交易研究项目。
我可以使用哪种纳秒计时仪器,因为我需要精度,而且我正在计时在PCI-E网卡接收和内核中的接收之间的持续时间?
这将是在Linux上,使用C编写的“驱动”代码(我可能会将用户应用程序放在这个级别以减少延迟)。
发布于 2011-12-09 06:39:01
在linux上,对CPU时钟的访问是通过相当于Windows QueryPerformanceCOunter的tsc来实现的。
发布于 2011-12-09 08:17:32
如果可用的话,clock_gettime
会使用HPET,它是最简单、最好、最可靠的。
如果HPET不可用,你就没有那么可靠的计时器了,所以不幸的是,clock_gettime
的分辨率会更差,但这就是它,你对此无能为力。
任何其他来源,包括tsc,要么分辨率较低,要么不可靠,或者两者兼而有之。
发布于 2011-12-09 06:28:22
在软件中,每件事都发生在系统时钟的倍数上。我认为您可以使用任何时间度量函数来返回经过的时钟滴答数,例如,clock()
应该可以为您提供足够的精度。
https://stackoverflow.com/questions/8438532
复制相似问题