我无法理解来自http://www.redbooks.ibm.com/redbooks/pdfs/sg247351.pdf的上下文
它描述了传输层是如何实现的,但我读过的每条信息都只解释了特性,而不是传输层是如何实现的。
与以太网等其他技术相比,InfiniBand 架构为传输层提供了显着改进:所有功能都在硬件中实现。
有没有办法找出 Infiniband 传输层的功能是如何在硬件中实现的基本思想?例如,它是否使用逻辑控件和寄存器来运行所有必要的传输层功能?
我无法理解来自http://www.redbooks.ibm.com/redbooks/pdfs/sg247351.pdf的上下文
它描述了传输层是如何实现的,但我读过的每条信息都只解释了特性,而不是传输层是如何实现的。
与以太网等其他技术相比,InfiniBand 架构为传输层提供了显着改进:所有功能都在硬件中实现。
有没有办法找出 Infiniband 传输层的功能是如何在硬件中实现的基本思想?例如,它是否使用逻辑控件和寄存器来运行所有必要的传输层功能?
InfiniBand 是一个定义良好的端到端互连协议,由 InfiniBand Trade Association 正式定义和维护。
您可以在 IBTA 网站上找到完整的规范:http: //www.infinibandta.org/content/pages.php? pg=technology_public_specification
在上述规范中,您可以找到从物理层定义到高级连接管理和子网管理员协议的任何地方。这是 InfiniBand 硬件供应商用于实施其产品的指南。特定于供应商的实现在功能实现方式和位置方面可能存在显着差异,并且在许多情况下是保密的。
我已经弄清楚并与 Infiniband 提供商确认,虽然文档说明传输层是建立在硬件上的,但它仅指 HCA 中的队列对。因此,大多数逻辑只是在 Infiniband 驱动程序的后台进程中工作。
通用过程
1) 应用程序被编写为使用 InfiniBand。
2) Mellanox 驱动程序中的接口(如 MPI)允许应用程序通过驱动程序直接写入服务器上的内存空间(发布工作请求)(现在我们进入传输层)。
3) 交换源服务器和目标服务器之间的内存空间详细信息,以便通信现在将在这些 RAM 内存区域之间流动。这是 InfiniBand 的一个关键优势,因为它绕过内核/CPU 并在硬件中交换数据(在内存区域之间使用 HCA(适配器)之间的队列对。当我们说数据在硬件中交换时,我们指的是服务器内存,和 HCA。
4) HCA 将根据 MTU 对数据包进行分段并将数据推送到线路上。在另一端,它将被重新组装。这仍然是“传输层”。
5)随着比特被推到电线上——这是物理层。
结论
驱动程序在后台,告诉操作系统如何与 HCA 进行互操作(决定传输协议 InfiniBand、vs、以太网、MTU、CM vs、RD 队列对交换模式等)。此外,它还提供 InfiniBand 编程接口和用于故障排除等的附加实用程序。我猜你可以说这里有一些逻辑,由 OFED HCA 驱动程序提供。