无限带宽传输层

Infiniband transport Layer

我无法理解 http://www.redbooks.ibm.com/redbooks/pdfs/sg247351.pdf

的上下文

它描述了传输层的实现方式,但我阅读的每条信息都只解释了功能,而不是传输层的实现方式。

InfiniBand architecture offers a significant improvement for the transport layer over other technologies such as Ethernet: all functions are implemented in the hardware.

有没有办法找出 Infiniband 传输层的硬件实现功能的基本思路? 例如,它是否使用逻辑控制和寄存器来 运行 所有必要的传输层功能?

InfiniBand 是一个定义良好的端到端互连协议,由 InfiniBand 贸易协会正式定义和维护。

您可以在 IBTA 网站上找到完整的规格: http://www.infinibandta.org/content/pages.php?pg=technology_public_specification

在上述规范中,您可以找到从物理层定义到高级连接管理和子网管理员协议的任何地方。 这是 InfiniBand 硬件供应商用于实施其产品的指南。特定于供应商的实现在功能的实现方式和位置上可能存在很大差异,并且在许多情况下是机密的。

我和Infiniband供应商搞清楚了,虽然文档说传输层是建立在硬件上的,但它只是指HCA中的queue pairs。因此,大部分逻辑仅在 Infiniband 驱动程序的后台进程中运行。

通用过程

1) 编写应用程序以使用 InfiniBand。

2) Mellanox 驱动程序中的接口(如 MPI)允许应用程序通过驱动程序直接写入服务器上的内存 space(发布工作请求)(现在我们进入传输层).

3) 内存 space 源服务器和目标服务器之间的详细信息已交换,因此通信现在将在这些 RAM 内存区域之间流动。这是 InfiniBand 的一个关键优势,因为它绕过 kernel/CPU 并在硬件中交换数据(在内存区域之间使用 HCA(适配器)之间的队列对)。当我们说数据在硬件中交换时,我们谈论的是服务器内存和 HCA。

4) HCA 将根据 MTU 对数据包进行分段并将数据推送到线路上。在另一端,它将被重新组装。这还是"Transport Layer"。

5) 当比特被推到线上时——这是物理层。

结论

驱动在后台,告诉OS如何与HCA互操作(决定传输协议InfiniBand、vs、Ethernet、MTU、CM vs、RD队列对交换模式等)。此外,它还提供 InfiniBand 编程接口和用于故障排除等的其他实用程序。我想你可以说这里有一些逻辑,由 OFED HCA 驱动程序提供。