首先,我对USB了解不多,所以如果我的问题是错误的,请提前道歉。
在 USB 2.0 中,轮询间隔为 0.125 毫秒,因此主机从设备读取某些数据的最佳可能延迟为 0.125 毫秒。我希望减少 USB 3.0 设备的延迟,但我发现很难了解最小延迟是多少。USB 3.0 规范说,“USB 2.0 风格的轮询已被异步通知取代”,这意味着 0.125 毫秒的轮询间隔可能不再是一个限制。
我发现了一些针对 USB 3.0 SSD 的基准测试,看起来数据可以在略低于 0.125 毫秒的时间内从设备读取,这包括在主机操作系统和设备闪存控制器上花费的所有时间。
http://www.guru3d.com/articles_pages/ocz_enyo_usb_3_portable_ssd_review,8.html
有人能告诉我最低可能的延迟是多少吗?理论上的答案很好。包括各种版本的 Linux 和 Windows USB 堆栈的实际限制的答案会很棒。
为了避免“告诉我你想要实现什么”的问题,我正在为我公司设计的 ASIC 创建一个调试接口。即,PC 通过调试加密狗连接到我们的一个 ASIC。一种可能的用例是在 ASIC 硬件仅实现简单断点时实现条件断点。为此,我需要确定何时命中了一个简单的断点,评估条件,如果为 false,则设置处理器再次运行。在条件变为真之前,简单的断点可能会被命中数百万次。我们可以在 FPGA 或现成的支持 USB 3.0 的微控制器上实现调试加密狗。