数据路径加速架构 (DPAA2) 是芯片的核心,旨在提供下一代网络处理加速。DPAA2 支持在多个虚拟环境下简化和安全地共享可编程网络资源。除了功能摘要部分中列出的功能外,DPAA2 还包括加速引擎和安全协处理器。
LX2160A DPAA2 提供了一个管理框架,允许动态服务配置,同时易于使用。软件开发人员能够通过一致的 API 框架使用 DPAA2 硬件外设。API 允许完整的控制这些外围设备,使开发人员摆脱经典编程挑战。
为了便于使用DPAA2,NXP 引入了管理复合体(MC)。MC通过将网络功能组合为软件网络对象的集合来组织与物理世界的接口。
NXP 还开发了 DPAA2 对象服务的“工具箱”。这些服务将 DPAA2 硬件抽象为软件管理对象,这些对象:
• 比直接管理硬件更易于使用
• 在术语和使用方面面向应用
• 基于程序员和系统架构师普遍熟悉的概念
DPAA2 对象服务由运行在 DPAA2 硬件上的固件提供。客户无需直接对硬件进行编程即可使用;他们只需使用 DPAA2 对象服务和 NXP 提供并经过测试的固件。这两件事结合到管理复合体 (MC) 中。
通过使用 MC,用户无需详细了解 DPAA2 硬件即可开发复杂的网络任务;例如:
• DPAA2 资源分配、故障情况下的跟踪和恢复
• 设备发现和配置管理
• 端口和极低速设备的虚拟化。
MC是可信实体,只执行可信固件。它与芯片的其余部分隔离,因此不会受到损害通过在 GPP 上运行的恶意软件。
线速 I/O 处理器 (WRIOP) 是外部世界与 DPAA2 之间的接口。WRIOP通过以太网接收数据报并将它们排队到其他DPAA2 实体,以及从其他 DPAA2 实体中取出数据报以进行传输。SEC 和 DCE 出列处理请求(通常来自软件)并将结果入列到配置的下一个消费者。
WRIOP 是一个数据包处理引擎,从以太网接口接收和传输数据包。WRIOP 将以太网 MAC 与数据包解析和分类逻辑相结合,为传入流量提供智能分配和排队决策WRIOP 支持线速的解析、分类和监管性能。WRIOP 能够连接高达 122 Gbps。
WRIOP 执行两个流:入口流和出口流。入口流从 MAC 接口接收数据包,并执行解析、分类和监管。然后它要么丢弃数据包,要么从 BMan 分配缓冲区并入队数据包到 QMan。出口流从 QMan 中取出数据包,并将它们传输到 MAC 接口。缓冲区被释放回 BMan。可选地,可以配置 WRIOP 将传输的数据包排回队列以进行确认。WRIOP 流程是固定的,具有一些主要与内存缓冲功能相关的有限可配置性。
WRIOP 包括以下功能:
• 16 个物理端口,支持各种组合:
— 100 吉比特以太网 (CAUI4),最多两个端口
— 50 吉比特以太网 (50GAUI-2),最多两个端口
— 40 吉比特以太网(XLAUI, 40Gbase-KR4),最多两个端口
— 25G 以太网 (25G-AUI),最多六个端口
— 10G 以太网(10Gbase-KR、XFI、SFI、USXGMII),最多十个端口
— 2.5G 以太网 (USXGMII) ,最多 10 个端口
— 1 个千兆以太网(SGMII、RGMII、USXGMII),最多 16 个端口
• 管理
— 每个以太网控制器的 MDIO 作为以太网 MAC 的一部分
— 用于 PHY 管理的专用 MDIO
• 4 个 10 吉比特以太网上的可选 MACsec 支持
• 在物理链路速度高于设备平均持续速率的系统中提供突发容忍
• 以允许“智能”QoS(背压)的方式拆分流量和/或丢弃)
• 检测错误、丢弃或隔离帧(如果需要)
• IEEE 标准。802.1Qbb(基于优先级的流量控制)最多八个队列/优先级
• 256 个 WRIOP 接口配置文件
• WRIOP 管理命令
• 每个端口或每个接口配置文件的统计数据
• 通过 QMan 和中断报告错误
• 与队列管理器 (QMan) 的接口
— 从 QMan 出队/入队帧描述符 (FD)
— 根据 QMan 响应支持尾部丢弃 /WRED 丢弃
— 支持由于队列拥塞状态而传输暂停帧
• 与缓冲区管理器 (BMan)
— 分配/取消分配帧缓冲区
• 以太网 MAC 功能
— IEEE 标准。802.3ae(完整的 MAC 层和协调子层实现)
— 节能以太网(IEEE 标准 802.3az)
— 八个 MAC 地址比较接收和一个 MAC 地址覆盖传输 NIC 应用程序。
— 以太网暂停帧(802.3 附件 31A)终端提供完全自动化的流量控制,无需任何用户应用程序开销
— 优先级流量控制 (PFC) 帧支持允许 8 个级别用于更高层的拥塞管理
— Magic包检测
— 802.3 基本和强制管理对象统计计数器和 IETF 管理
— 信息数据库 (MIB) 包 (RFC2665) 和远程网络监控 (RMON) 计数器
— 可编程第 22 条和第 45 条 MDIO 主接口,用于 PHY 设备配置和管理
• 以太网 MAC 控制器 IEEE 1588v2 (PTP) 时间戳
- 入口帧和出口帧的精确时间戳
- 多播和单播消息传递
- 一步同步消息传输
- 主从
- 透明和终止消息
- 域
• WRIOP 入口帧复制
• WRIOP 以太网链路聚合 (LAG)
WRIOP 与L2 switch 地址解析加速器一起可以起到L2 switch 的作用。
作为物理 L2 交换机,L2 交换机在不同以太网 MAC 之间交换流量。在以太网端口上接收到的帧使用 L2 交换机分类器进行分类,然后排入队列目的地。QMan 将排队目的地映射到适当的队列中以进行传输。然后 WRIOP 将帧从队列中取出,读取帧,然后在以太网传输端口上传输帧。
L2 交换机作为一个虚拟的 L2 交换机,将应用程序和应用程序之间的流量切换到以太网 MAC。WRIOP 作为 L2 交换机的性能是其所有端口(交换机内部和外部)的综合性能。
QBMan 支持以下功能:
• 提供两种类型的门户以与 QMan 进行通信
— 由在处理器内核上执行的数据路径软件使用的软件门户 (SWP)。这些门户在系统中是内存映射的。
— 硬件模块使用的直接连接门户 (DCP),具有直接连接到 QMan 的专用接口。
• 两级排队架构;帧被排入帧队列 (FQ),帧队列又被排入 WQ。这被称为FQ/WQ 调度模式。另一种模式称为客户边缘出口流量管理(CEETM) 调度模式,可用于某些直接连接门户的出口端。
• 工作队列被分组到通道中,并在通道上的帧队列之间提供优先级调度。
• 内部WQ 类调度控制在选择要呈现给门户时从帧队列(跨一个或多个帧)拉取的数据量。
• 一些 WQ 通道专用于特定的直接连接门户 (DCP),而其他通道用作软件门户通道,多个软件门户可以从中出队。
• 支持客户边缘出口流量管理 (CEETM),提供基于分层类的调度和流量整形
— 在特定直接连接门户的出口端可用而不是 FQ/WQ 调度模式
— 增强的基于类的调度支持每个 16 个类队列 (CQ)通道
— 基于令牌桶的双速率整形,表示承诺速率 (CR) 和超额速率 (ER)
— 等同于 FQ 拥塞组提供的拥塞避免机制
• 支持来自公共源(顺序定义点)的帧的高效顺序恢复在前往目的地(订单恢复点) 的途中被错误排序。
• 支持QMan 中的FQ 拥塞组,其中为拥塞避免机制配置一个或多个帧队列,例如RED/WRED。
• 支持基于每帧队列的尾部丢弃拥塞管理。提供了许多算法排序器,允许同时执行多个入队/出队操作以满足每个 SoC 的特定性能目标。
• 系统目标接口提供从处理器内核访问QMan 软件门户的途径。QMan 使用系统发起程序接口从/向主内存读取和写入帧队列管理数据结构。在主内存中访问的所有数据都是 QMan 私有的,并且在 QMan 和主内存之间传输时被视为非一致的存储。
SEC 模块提供密码加速和各种安全保证功能。使用 SEC 功能的主要方式是提交职位描述,这是用 SEC 指令集编写的小程序。一个典型的用例是网络通信,使用一个作业描述符对一个协议数据单元执行加密处理。该芯片中使用的 SEC版本能够同时执行 16 个作业描述符。
SEC 包括以下接口:
• 一个寄存器接口,供处理器写入配置和命令信息,以及读取状态信息
• 2 个 DMA 接口,允许 SEC 从外部存储器读取/写入数据
• 队列管理器接口,允许 SEC 直接从队列管理器模块接受作业
• 具有 4 个作业环的作业队列控制器,可以通过它提交作业描述符
• 16 个描述符控制器 (DECO),负责执行描述符
• 运行时完整性检查器(RTIC),用于确保软件和静态数据的完整性
• 加密硬件加速器 (CHA):
— 2 个公钥硬件加速器 (PKHA)
— 一个随机数生成器 (RNG)
— 16 个高级加密标准硬件加速器 (AESA)
— 16 个消息摘要硬件加速器 (MDHA)
— 16 个 SNOW 3G f9 硬件加速器 (SNOW f9)
— 16 个 SNOW 3G f8 硬件加速器 (SNOW f8)
— 16 个 ZUC 加密硬件加速器 (ZUCE)
— 16 个 ZUC 认证硬件加速器 (ZUCA)
— 16 个数据加密标准硬件加速器 (DESA)
— 16 个循环冗余校验硬件加速器 (CRCA)
— 16 个 ChaCha20硬件加速器 (CCHA)
— 16 个 Poly1305 硬件加速器 (PTHA)
解压和压缩引擎(DCE 1.0) 是一种与数据路径架构兼容的加速器,为QorIQ 系列芯片提供无损数据解压和压缩。DCE 支持原始 DEFLATE 算法 (RFC1951)、GZIP 格式 (RFC1952) 和 ZLIB 格式 (RFC1950)。DCE 还支持 Base64 编码和解码 (RFC4648)。
DEFLATE 算法是大多数现代通信系统中数据压缩的基本构建块。HTTP用于压缩网页,SSL 用于压缩记录,gzip 用于压缩文件和电子邮件附件,以及许多其他应用程序。
DEFLATE 涉及搜索先前在帧中看到的重复模式,计算模式相对于帧中当前位置的长度和距离,并将结果信息编码为比特流。
解压缩算法涉及解码比特流和重放过去的数据。解压缩和压缩引擎旨在最大限度地减少对帧进行解压缩和压缩所需的系统内存带宽,同时提供每秒数千兆位的性能。
详细功能包括以下内容:
• DEFLATE:如 RFC1951 中指定
• GZIP:如 RFC1952 中指定
• ZLIB:如 RFC1950 中指定
—可与 zlib 1.2.5 压缩库互操作
• 压缩
— ZLIB、GZIP 和 DEFLATE 标头插入
— ZLIB 和 GZIP CRC 计算和插入
— ZLIB 同步刷新和分块压缩的部分刷新(例如,对于 HTTP1.1)
— 四种压缩模式
◦ 无压缩(仅添加 DEFLATE 标头)
◦ 仅使用静态/动态霍夫曼代码进行编码
◦ 使用静态霍夫曼代码进行压缩和编码
◦ 使用动态霍夫曼代码进行压缩和编码
— 使用 4KB 滑动历史窗口
— 压缩后支持 Base64 编码 (RFC4648)
— 在 Calgary Corpus 上提供至少 2.5:1 的压缩比
• 解压缩支持:
— ZLIB、GZIP 和 DEFLATE 标头移除
— ZLIB 和 GZIP CRC 验证
— 32KB 历史记录
— ZLIB flush for chunked decompression (例如,对于 HTTP1.1)
◦ 所有标准解压缩模式
◦ 无压缩
◦ 静态霍夫曼代码
◦ 动态霍夫曼代码
—提供选项以返回原始压缩帧以及未压缩帧或将缓冲区释放给BMan
—不支持使用 ZLIB预设词典(FDICT 标志 = 1 被视为错误)。
— 解压缩前的 Base64 解码 (RFC4648)
DCE 1.0 旨在以约 4 KB 的数据大小支持高达 100 Gbps 的聚合。
队列直接内存访问(qDMA)控制器在一个源和一个或多个目的地之间传输数据块。
qDMA 支持以下功能:
• 带顺序操作的帧描述符预取
• 通道虚拟化
• 基于事务的目标步幅和源步幅
• 目标和源地址保持功能
• 基于事务的缓存属性设置
• 基于事务的 QoS
• 基于目标的节流控制
• 具有未对齐地址和任何事务大小的 DMA 传输
• 全局 DMA 带宽控制,其中 DMA 生成的事务在系统带宽不足时停止已达到分配给 DMA 的消耗阈值
• 源/目标数据通过位于系统内存中的 S/G 表分散/收集
• 中断消息传递
• 顺序中断消息传递以及针对错误和完成的合并
• 面对读/写的弹性错误