直接缓存访问DCA

直接缓存访问DCA:网卡原本DMA写是将接收到的数据帧写入系统内存,DCA机制是网卡DMA写输入的数据能直接发送到属于CPU内部的L2高速缓存中,从而提高网络IO的性能。

 设备驱动程序要初始化网卡的DCA功能,将CPU ID号(通过获取当前CPUID号)和总线号设置到相关寄存器;网卡控制器就会在DMA写的PCIe TLP事务报文头部的tag域做相应的标记;这些DMA写内存事务报文在经过inbound的PCIe主桥、片上网络NoC处理,就直接将数据送到CPU内部的高速缓存。(在Intel82599手册中,提到tag标签报文会触发硬件的预取机制)。

PCIe TLP格式(DCA1.0):

        8位(7:0), 全零表示DCA关闭,不支持DCA功能的内存写必须全零;其他表示目标处理核ID号。

寄存器描述:

DMA请求者ID信息寄存器DCA_ID:描述了网卡上开启DCA功能的逻辑(总线号,功能号,设备号)。

DCA的控制寄存器DCA_CTRL:功能开关和DCA的版本号(当前有两个版本,一个是Legacy,一个是DCA1.0)。

在启动DCA的前提下,网卡上的DCA_ID逻辑发出的内存写TLP才会被设置成DCA。

每个DMA都有一个DCA专用控制寄存器。

1)  对于接收队列的DMA而言, DCA_RXCTRL[n]

2)对于发送队列的DMA而言,DCA_TXCTRL[n]

DCA支持接收队列和发送队列相关的PCIe内存写事务!!!因此,DCA专用控制寄存器,会指出哪些PCIe内存写事务开启DCA、哪些内存写事务要不要保序、以及DCA的目标CPU号。

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值