多核编程指南(七)---数据传输驱动

当前,TI设备上的主要数据传输引擎是EDMA(enhanced DMA)模块和PKTDMA(Packet DMA,multicore Navigator中的一部分)模块。对于设备之间的高位通信,有多个传输引擎,具体取决于为通信选择的物理接口。一些传输引擎具有PKTDMA实例,用于将数据从外围引擎移入和移出。高比特率外围设备包括:

  • Antenna Interface(Wireless devices):多个PKTDMA实例与多个AIF实例一起传输数据。
  • Serial RapidIO:有两种可用模式—DirectIO和Messageing。根据模式,PKTDMA或内置直接DMA控制是可用的
  • Ethernet:PKTDMA用于处理所有数据的移动
  • PCI express:内置DMA控件,将数据进出PCI express模块到专用内存中
  • HyperLink:KeyStone系列拥有专有的点对点快速总线,可将两台设备直接连接在一起。有一个内置的DMA模块,可以将数据进出HyperLink模块到专用内存中

此外,PKTDMA用于在内核和高速协处理器之间移动数据

Packet DMA

Packet DMA(PKTDMA)实例是Multicore Navigator中的一部分。每个PKTDMA实例都有一个单独的硬件路径,用于在每个方向上使用多个DMA信道接收和发送数据。对于传输数据,PKTDMA将封装在描述符中的数据转换为比特流。接收比特流数据被封装在描述符中,并被路由预定义的目的地。

Multicore Navigator的另一部分是队列管理子系统(Queue Manager Subsystem,QMSS)。目前,Multicore Navigator有8192个硬件队列,最多可支持512K描述符。它包括一个队列管理器、多个处理器(称为PDSP)和一个中断管理器单元。队列管理器控制队列,而PKTDMA在队列之间移动描述符。上述通知方法由队列管理器专用的PDSP处理器控制。队列管理器负责将描述符路由到正确的目的地。

一些可能需要将数据路由到不同核心或不同目的地的外围设备和协处理器具有PKTDMA实例作为外围设备或协处理器的一部分。此外,QMS中还有一个称为基础设施PKTDMA的特殊PKTDMA实例,用于支持核心之间的通信。

EDMA

Channels和parameter RAM可由软件分为多个区域,每个区域分配给一个核心。事件到通道路由和EDMA中断完全可编程,具有很强的灵活性。所有事件、中断和channel parameter控制设计为独立控制,这意味着一旦分配给核心,该核心在访问资源之前不需要进行仲裁。此外,一个复杂的机制确保由某个内核启动的EDMA传输将在地址转换和权限方面保持与原始内核相同的内存访问属性。

Ethernet

网络协处理器(NetCP)外围设备支持以太网通信。他有两个SGMII端口(10/100/1000)和一个内部端口。特殊的数据包加速模块支持基于L2地址值(最多64个不同地址)、L3地址值(最多64个不同地址)、L4地址值(最多8192个地址)或L2、L3和L4地址的任意组合的路由。此外,数据包加速器可以计算CRC和其他错误检测值,以帮助传入和传出数据包。一个特殊的安全引擎可以对数据包进行解密和加密,以支持VPN或其他需要安全性的应用程序

PKTDMA实例是NetCP的一部分,他管理进入、离开和在NetCP内部的所有流量,并支持将数据包路由到预定义的目的地

RapidIO

DirectIO和消息传递协议都允许每个内核进行正交控制。对于DSP启动的DirectIO传输,使用负载存储单元(LSU)。有多个LSU(取决于设备),每个LSU独立其他LSU,每个LSU都可以向任何物理链路提交事务。LSU可以分配给各个核心,之后核心无需仲裁访问。或者,可以根据需要将LSU分配给任何核心,在这种情况下,需要使用信号量资源分配临时所有权。与以太网外围设备类似,消息传递允许单独控制多个传输通道。使用消息传递协议时,PKTDMA的一个特殊实例负责根据目标ID、邮箱和字母值将传入数据包路由到目标core,并将消息从core路由到外界。在每个核心为自己的消息传递配置Multicore Naivgator parameters之后,数据移动由Multicore Navigator完成,并且对用户是透明的。

Antenna Interface

AIF2天线接口支持许多无线标准,如WCDMA、LTE、WiMAX、TD-SCDMA和GSM/EDGE。可以使用自己的DMA模块以直接模式访问AIF2,或者使用作为每个AIF2实例一部分的PKTDMA实例进行基于分组的访问。
当使用直接IO时,核心明确地负责管理进出流量。在许多情况下,出口天线数据来自FFT引擎(FFTC),入口天线数据进入FFTC。使用PKTDMA和多核导航系统可以促进AIF和FFTC之间的数据移动,而无需任何核心参与。
每个FFTC引擎都有自己的PKTDMA实例。Multicore Navigator可配置为将输入天线数据直接发送至正确的FFTC引擎进行处理;数据将被路由以继续处理。
队列管理器子系统的128个队列专用于AIF2。当描述符进入其中一个队列时,将向与队列关联的AIF实例的相应PKTDMA发送挂起信号,并通过AIF2接口读取和发送数据。类似地,到达AIF2接口读取和发送数据。类似地,达到AIF的数据由PKTDMA封装到描述符中,并且基于预配置,描述符被路由到目的地,通常是用于FFT处理的FFTC实例。

扫描二维码关注公众号,回复: 13593867 查看本文章

PCI Express

KeyStone TCI66XX和C66XX设备中的PCI express引擎支持三种操作模式:根复合体、端点和传统端点。PCI express外围设备使用内置DMA控件将数据直接从外部世界移动到内部或外部内存位置

HyperLink

KeyStone TCI66XX和C66XX设备中的HyperLink外围设备允许一个设备通过HyperLink读写另一个设备内存。此外,Hyperlink允许向Hyperlink连接的另一端发送事件和中断。HyperLink外围设备使用内置DMA控件在内存和接口之间读写数据

参考文献:

  1. 《Multicore Programming Guide》

猜你喜欢

转载自blog.csdn.net/Xiao_Jie123/article/details/119717960
今日推荐