USB 端口的硬件缓冲区通常位于哪里?

USB 端口的硬件缓冲区通常位于哪里?

这是一个相当宽泛的问题。USB 端口的硬件缓冲区通常位于哪里?我听说它们通常位于 USB 控制器中。我附上了一个看起来像是 USB 端口的通用图像。我看到每个端口都有一个大电容器,它们运行在两个不同的芯片上。这些芯片是“USB 控制器”吗?它们内部的硬件缓冲区是否包含在集成电路中?这个问题可以非常广泛地回答,答案不需要使用我附上的图像。

我问这个问题的原因:我正在尝试学习计算机的基本 I/O。我对 CPU 的工作原理(已在 VHDL 中从头开始模拟)、RAM 的工作原理(也模拟过)有很好的了解,下一步似乎是 I/O、中断的工作原理、内核中的中断处理程序的工作原理等。

在此处输入图片描述

答案1

USB 绝对不是学习基本 I/O 的最佳方式。它不是基础的,实际上它是一个非常先进和复杂的界面。它的规格并不广泛普及(你必须付费),等等。不过,让我描述一下照片上的设备以及它的缓冲区在哪里。

您看到的两个芯片是:上面的一个(上面有“TAIWAN”)是 Renesas μPD720210,4 端口 USB 3.0 集线器,而另一个(上面有“CHINA”)是 Renesas μPD720201,PCIe gen2 USB 3.0 xHCI 接口,内置 4 端口集线器。我建议您谷歌搜索它们的标记以查找和探索它们的数据表。

它们以菊花链形式连接,您可以轻松识别连接各种组件的电线。例如,您将看到的配置lsusb -t是两个外部端口(USB1 和 USB2)和内部端口出现在根集线器后面,第二个集线器连接到根集线器的剩余端口,并且它有四个端口,这些端口都是此卡上的外部端口(USB3 到 USB6)。(这是“7 端口 USB 集线器”的典型结构;我见过许多不同的此类设备,它们恰好都是菊花链中的两个 4 端口集线器。)

SATA 电源连接器仅用于供电;出于同样的原因,在旧的此类卡上,我们有 IDE 电源连接器(俗称“Molex 连接器”,尽管这也是 Molex 的发明)。

最后,是缓冲区。这个术语恰好存在一些歧义:

  • 在电子学中,缓冲器是一种电路,用于调整源和接收器的阻抗和/或净化数字信号。针对不同的任务,有不同类型的缓冲器。事实上,这两种芯片都包含一些不同类型的电子缓冲器。
  • 在计算机科学中,缓冲区是可以暂时保存数据的专用内存,在这种情况下,要么接收数据直到应用程序(OS)请求它,要么将要传输的数据放在这里。

“缓冲区”一词在第一个芯片数据表中只出现过一次,上下文是“为 I/O 缓冲区提供电源的引脚”。第二个芯片更复杂,因为它具有 PCIe 接口,该接口具有内存映射的寄存器,并且它实际上有一些 I/O 缓冲区。最好阅读 xHCI 规范以更好地了解如何访问 USB 缓冲区;例如,您可以查看此芯片的 Linux 驱动程序的源代码。它将揭示一些关于其工作原理的见解。

相关内容