多功能PCIE交换机之五: 基于NTB的DMA
如果说PCIE多功能桥中的NTB为跨节点的数据传输铺好路、架好桥的话,那么PCIE多功能桥中的DMA就是多个节点之间的高铁和航班。没有NTB打通数据通道,DMA也不可能跨越节点。但没有DMA的话,NTB还是可以依赖CPU来在多个节点之间搬运数据。因此DMA对NTB而言是如虎添翼、锦上添花。 和NTB的单NT和双NTB配置相比,DMA可配置的选项比较多,但不管是中断模式、查询模式,也无论描述符是在DMA控制器片上还是片外,亦或配置成单个还是多个DMA channel,都有现成的代码可供参考或寄存器可以直接设置。那么多功能PCIE桥中基于NTB的DMA有哪些方面需要额外关注的呢? 1、数据一致性 当CPU或者DMA往本地内存(包括设备内存)读写数据的时候,可以使用的memory cache属性有write back,write combining, write through和uncache,具体要使用哪一种需要根据具体内存的属性和平台架构来选择。比如在ARM和龙芯2F/2HSOC上,由于硬件不支持自动维护cache一致性,所以用作DMA的源或者目的地址的那片内存区域的cache属性,需要...