KeyStone I 培训 多核导航器 PART3—packet DMA (PKTDMA)

1、封面

这是多核导航仪培训的第三部分。在本节课中,我们将讨论数据包 DMA。由于数据包 DMA 使用队列管理器,假定你了解多核导航员培训第二部分中的概念。

2、导览


首先我们将讨论数据包 DMA 是如何工作的。我们将讨论触发、发送处理、接收处理和基础设施处理。

然后我们将讨论分组 DMA 的编程方面--概念、寄存器、低级驱动程序。

最后,我们将以最后的建议和提示结束培训。

3、数据包DMA是如何工作的

那么,数据包 DMA 是如何工作的?

3.1 数据包 DMA控制

让我们首先讨论一下分组 DMA 是如何被触发和控制的。

记得在概述会议上我们说过, DMA 的发送端DMA 的接收端是完全独立的,并且以不同的方式控制。

当外部实体将一个描述符推入它的一个发送队列时,发送端被触发。当 DMA 加载描述符时,它就会获得处理该数据包的指令,所以控制是由描述符中的字段指定的。

在接收端,当 IP 内的流接口开始向 Rx DMA 发送数据包或交易时,接收 DMA 被触发。由于这时没有描述符, DMA 的行为由 Rx 流中的字段控制。而我们将在几张幻灯片中讨论什么是Rx 流。对于基础设施环回模式,发送描述符中的某些字段被带过流媒体接口,可以控制 RxDMA 的功能。

3.2 TX DMA控制

让我们来谈谈发送侧的处理。

一旦被队列管理器触发,发送通道就会被发送 DMA 中的发送调度控制块纳入一个四级优先级循环中。一旦被选中进行处理,核心就会为该通道启动,从相关队列中弹出描述符,并加载描述符信息。

接下来,有效载荷数据被从内存缓冲到相应的发送通道 FIFO。在那里,它被缓冲,直到它被允许通过流媒体接口以每时钟 128 比特的速度进行传输。我所说的 "允许传输 "是指在 IP 和数据包 DMA 之间有一个握手的过程。而 IP 必须允许发送 DMA 发送数据。

对于一个主机描述符类型,如果有多个块链接在一起, DMA 将按照每个缓冲区描述符块中提供的链接依次处理。当描述符完全完成后,描述符地址将被回收到指定的发送空闲描述符队列中。而这是由描述符中的字段指定的。一旦一个通道被激活,核心将继续从该队列中弹出描述符,直到该队列变空。

3.3 RX DMA控制

对于接收的 DMA 处理,队列管理器不会立即参与。相反,当接收通道 DMA 从接收流接口传来数据时,它就被触发了。而这也是以每时钟 128 比特的速度进行的,就像发送端一样。

当 DMA 收到数据包的第一个事务,或 SOP 事务, 即启动数据包事务时, DMA 得到的信息是找到一个 Rx 流并打开它。这个 Rx 流类似于描述符,因为它包含了 DMA 建立描述符的指令,最终将被推送到内存中。记住,对于发送端,用户构建描述符,而描述符是由 DMA 读取的。

在接收端

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值