在Infiniband中,PCIe条、Infiniband卡的内部缓冲区或远程计算机';什么是公羊?
我们知道,Infiniband允许RDMA直接访问远程计算机的内存 众所周知,PCI Express(端点)设备,包括PCIe卡Infiniband,能够以两种方式进行通信:在Infiniband中,PCIe条、Infiniband卡的内部缓冲区或远程计算机';什么是公羊?,c,memory-mapping,pci-e,infiniband,rdma,C,Memory Mapping,Pci E,Infiniband,Rdma,我们知道,Infiniband允许RDMA直接访问远程计算机的内存 众所周知,PCI Express(端点)设备,包括PCIe卡Infiniband,能够以两种方式进行通信: IO端口(输入/输出)已弃用 MMIO(条形内存映射IO:mov) 但是,究竟是什么显示在酒吧(人机界面)?(使用PCIe卡Infiniband时): 它自己的内部缓冲存储卡Infiniband 远程计算机RAM的一部分(目前正在使用RDMA复制数据的RAM部分) 当我使用Infiniband时,PCIe BAR、
- IO端口(输入/输出)已弃用
- MMIO(条形内存映射IO:mov)
- 它自己的内部缓冲存储卡Infiniband
- 远程计算机RAM的一部分(目前正在使用RDMA复制数据的RAM部分)
当我使用Infiniband时,PCIe BAR、Infiniband卡的内部缓冲区或远程计算机的RAM中的映射是什么?PCI/PCIe卡上的BAR必须在引导时由操作系统(或BIOS)的PnP子系统初始化,因此它们应该在卡实际使用之前很久指向可用内存。因此,内存必须在卡内。然后PCI控制器使这些内存区域可用于CPU的地址空间。HCA的MMIO空间的确切内容和使用情况将由供应商决定,可能是特定于卡的。看起来实现RDMA的简单方法是让卡及其驱动程序设置一个直接对应于远程映射内存的MMIO区域。然而,将MMIO区域视为一个与远程内存相同的区域,仅在某个抽象级别上是正确的,可能是在(pdf)层或更高级别上 低于该级别时,主机A上的应用程序向主机B发送的RDMA写操作所经过的协议堆栈将如下所示:
谢谢。但在运行时,我们可以通过PCI Express配置空间更改条形图(地址从/到条形图映射)的转换。那么,我们可以将远程RAM映射到本地物理地址空间吗?此外,我们可以在运行时热插拔或连接Infiniband,也就是说,比系统启动要晚得多。是的,热插拔允许启动后配置,但即使如此,当设备添加到系统中时,必须填充条,如果我已经很好地理解了RDMA的含义,并且它的工作方式与常规DMA相同,那么你就不需要在地址空间中使用远程内存。RDMA负责在两台计算机之间交换内存块,而无需CPU干预(这是DMA控制器的角色)。您总是可以看到您的本地内存,如果您需要读取或写入远程内存,您可以通过发出RDMA请求来实现。“RDMA的意思是什么,如果它的工作方式与常规DMA相同”-但对于DMA,我们需要有映射内存(任何设备的映射内存示例:以太网、图形卡等)。DMA控制器仅使用系统寻址(或x86总线寻址)将数据从CPU-RAM复制到设备的映射缓冲区(GPU-RAM)。如果我们对每个RDMA数据包使用到Infiniband卡的硬件缓冲区的临时拷贝,那么它已经不是零拷贝了。非常感谢!1.“然而,将MMIO区域视为一个与远程内存相同的区域仅在某个抽象级别上是正确的,可能是在Infiniband verbs library(pdf)层或更高级别上。”例如,我可以使用简单的指令MOV(汇编程序)写入映射到用户空间的MMIO区域,数据传输到远程服务器,Infiniband卡将使用DMA控制器将数据写入RAM,或者我必须(必须)只使用特殊指令
ibv\u post\u send()
?2。“1.在上执行的代码将mov转换为MMIO地址。”映射到MMIO的是所有远程内存,还是只是其中的一小部分,或者是mappi