DSP 6678的NETCP

1.介绍

DSP6678的网络功能通过The network coprocessor (NETCP) 实现。
NETCP包含2个gigabit Ethernet (GbE) 模块用来从IEEE 802.3标准的网络发送和接收数据包。
1个 packet accelerator (PA) 来执行数据包分类操作(如包头匹配),数据包修改操作(如生成校验码)。
1个 security accelerator (SA)来加密解密数据包。

NETCP包含的四个主要模块通过packet streaming switch连接起来。
四个主要模块:

  • Packet DMA (PKTDMA) controller
  • Packet Accelerator (PA)
  • Security Accelerator (SA)
  • Gigabit Ethernet (GbE) Switch subsystem

下图展示了NETCP的结构。
在这里插入图片描述

2.1 Clock Control

NETCP包含3个主要的时钟域:

  • Packet Accelerator (PA)
  • Security Accelerator (SA)
  • Gigabit Ethernet (GbE) Switch subsystem
    这三个时钟域共享一个源时钟,这个时钟预期工作在350MHz。使用PA,SA ,GBE switch模块之前,必须使能对应的时钟域。

2.2 Memory Map

在这里插入图片描述

2.3 Packet Streaming Switch 的架构

Packet Streaming Switch提供了NETCP内部模块之间的数据传输通道。
下图展示了模块之间的所有通道。
图1
正常情况,the packet accelerator (PA), security accelerator (SA), 和 gigabit Ethernet(GbE)应该只通过队列管理子系统queue manager subsystem(QMSS)进行通信。这些模块互相之间不应该直接通信,因为系统中有限的缓存可能会降低通信的性能。
当一个模块已经处理完一个数据包,需要将这个数据包转发给第二个模块时可能会出现性能降低的现象。如果第二个模块一直在处理数据包,那么第一个模块就必须一直保存这个数据包直到第二个模块处理完毕。当第一个模块保存这个数据包时,它就无法去处理其他任何数据包了。
解决方案是第一个模块将数据发送给另一个模块的传输队列中。这样,两个模块就可以通过QMSS来传输数据,而不用与主机进行交互,模块之间的工作状态也不会互相影响。
注意:模块内的子模块之间可以不通过队列管理直接通信。例如,PA中的PDSP子模块可以不使用队列管理直接通信,但如果PDSP想要将数据路由给SA进行处理,那就必须通过QMSS。
下面是一个可能导致性能降低的示例。一个从GBE switch到来的SRTP数据包,数据包含MAC,IPv4,和UDP头。处理步骤如下:

  • 数据包GbE switch发往PDSP0来匹配MAC数据头
  • 之后数据路由到PDSP1匹配IPv4数据头
  • 数据路由到PDSP3匹配UDP数据头
  • 数据路由到SA解密
    如果 PDSP3 尝试将数据直接发给 SA ,但是 SA 正在解密一个包—有可能比 PA中的一个PDSP匹配包头所花的时间长—PDSP3必须保持这个数据直到SA处理完其他数据。如果PDSP3保持这个数据,PDSP1和PDSP0也必须保持他们的数据,这会导致GbE switch不得不保持它的数据,造成整个通道暂停工作。此外,如果switch的缓存耗尽,它将开始丢弃数据包。
    如果PDSP3在匹配UDP数据头后,不是一直保留数据等待SA空闲,而是将数据发给QMSS。PDSP3就可以立刻处理另一包数据,且整个数据通道也不会暂停。此外,如果PDSP3将数据包发送给SA的传输队列,一旦SA处理完数据,packet DMA会自动地将SA队列中的数据传输给SA。这种方法不会导致NETCP停止,从而提供更好的性能。此外,模块之间的所有交互都是使用 QMSS 和 packet DMA 完成的,不需要来自主机的干预,主机只需要操作PDSP3使用SA传输队列作为它的接收队列即可。
    以下是模块间传输数据的特殊情况:
  • 在PA中的PDSP之间传输数据-----这种情况下,所有数据包会选择相同的路径通过传输通道,并且处理的时间大致相等。这会导致很少的停滞。
  • 在GbE switch的TXSTA,TXSTB和PA之间传输数据------如果数据从GbE switch进入到NETCP,GbE switch可以直接将数据发往第一个处理数据的PDSP,且不使用QMSS。

2.4 Packet DMA 架构

packet DMA controller 负责在NETCP和主机之间提供可靠的数据传输功能。主机收到的数据可以通过 packet streaming switch 传输给NETCP的接收端口。packet DMA controller 可以通过packet streaming switch 的发送端口接收数据。

2.5 Distributed Interrupt Controller 架构

NETCP中的 Distributed Interrupt Controller 能够整合多个来源的中断并且将他们组合成一个主机中断。

2.6 Reset 注意事项

Gigabit Ethernet (GbE) switch 子系统支持单独复位。

2.7 Initialization

这一章节讲述如何初始化NETCP。
NETCP依赖于QMSS和 packet DMA与主机通信,因此需要在配置network coprocessor之前配置这两个系统。在设置了QMSS和packet DMA之后,用户才可以配置NETCP。用户应该非常谨慎地设置packet streaming switch的 CPSW 配置寄存器,以便将数据从GbE switch 子系统定向到合适的模块。如果同时使用PA和SA,则PA必须先于SA进行初始化。否则,PA,SA,和GbE switch子系统可以按任何顺序初始化。
在这里插入图片描述

2.8 Interrupt Support

2.8.1 Interrupt Events and Requests

NETCP支持 GbE switch 和 PA中断。

2.8.2 Interrupt Multiplexing

NETCP通过 distributed interrupt controller 支持中断复用。

2.9 Power Management

NETCP的电源管理能力可以关闭NETCP的电源域。电源域全部的上电下电。它不支持单独关闭NETCP的某个模块电源。默认情况下,NETCP的电源域是关闭的。要使用NETCP,必须打开电源域。
除了允许关闭NETCP的电源域外,NETCP还允许控制未使用模块的clock。PA,SA,GbE switch 子系统可以单独控制它们的clock。NETCP任何未使用模块的clock被控制,不会影响NETCP的其他模块。
注意:Packet DMA controller 和 packet streaming switch包含在PA的时钟域。这意味着当使用SA或GbE switch 子系统时必须使能PA的时钟域。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值