我打算直接将一些软件写入FPGA网卡,以捕获传入的自定义网络数据包。
最终我相信我会将获得的数据发送到内核或用户应用程序。这是针对延迟关键的交易研究项目。
由于所需的准确度,我可以使用哪种纳秒计时仪器,以及我计算PCI-E网卡接收和内核接收之间的持续时间这一事实?
这将在Linux上,用C语言写的“驱动程序”代码(我可能会将用户应用程序置于此级别以减少延迟)。
答案 0 :(得分:1)
在linux上访问CPU时钟滴答是通过tsc等效于Windows QueryPerformanceCOunter
答案 1 :(得分:1)
clock_gettime
使用HPET(如果可用),它既简单又好又可靠。
如果HPET 不可用,那么你无论如何都没有可靠的计时器,所以不幸的是clock_gettime
的分辨率会更差,但这就是它的本质,并且没有你可以做很多事情。
任何其他来源,包括tsc,要么分辨率较低,要么不可靠或两者兼而有之。
答案 2 :(得分:0)
在软件中,每件事都发生在系统时钟的倍数上。我认为你可以使用任何时间测量函数来返回经过的时钟滴答数,clock()
例如应该给你足够的准确度。