多核导航模块(Multicore Navigator)

1.基本概念介绍

       多核导航器:多核导航器由QMSS和PKTDMA两部分组成。用于在设备之间控制和实现数据包的高速传输,有效提高系统的总体性能。QMSS(队列管理器)是一个硬件模块,它负责包队列的加速管理。可以通过向队列管理器写入32位描述符地址,将包加入到特定地址的包队列中。然后可以通过读取特定队列的地址,使包出队。PKTDMA(Packet DMA)与普通DMA不同,它的目标地址由目标主体和空闲描述符队列索引决定,并不是一个绝对的存储地址。在接收模式中,PKTDMA传输负载数据到缓存中,并且将描述符加入到目标队列中。在发送模式,PKTDMA使描述符从发送队列中出队,从缓存中读取负载数据,并将负载数据发送到发送端口。

包数据结构协处理器(APDSP):KeyStone I 的QMSS中有两个 DSP,每个PDSP都有运行QMSS固件的能力。
描述符累加器固件:用于监控指定队列中的描述符,当队列中的描述符达到一定数量,或者超时,则向主机发送中断。它还提供了一个回收功能,它可以自动地将描述符重新循环到队列中。
QoS固件:该固件负责确保外设和主机CPU没有被包吞没,换句话说,就是拥塞控制。
事件管理器固件:它提供了CorePacs的动态负载平衡。
主机包描述符:大小固定,包含一个指向数据缓存的指针。
主机缓存描述符:主机缓存描述符用于链接到主机包描述符或者其他的主机缓存描述符。
单一包描述符:与主机包描述符不同,它将负载数据包含在了描述符内

多核导航模块(Multicore Navigator)_第1张图片
1.1 PKTDMA(Packet DMA)
KeyStone架构的设备(芯片)上的多个Packet DMA外设可以通过PKTDMA之间数据高速传输, 如下图,其中PA和SRIO是所有KeyStone架构的设备都具有的,AIF2和FFTC仅为在KeyStone设备上用于无线通讯用途。

多核导航模块(Multicore Navigator)_第2张图片

1.2 PKTDMA特点:
a、独立的Rx和TX核心:
① TX核心:
      -通过来自QM的硬件qpend信号触发TX通道。
      -TX核心控制是通过描述符编程的。
      -4级优先级(循环)TX调度器
      -AIF 2附加TX调度程序接口(仅用于无线应用)
② RX核心:
      -RX通道通过Rx流I/F触发。
      -RX核心控制是通过一个“Rx流”来编程的(稍后会有更多)

b、用于TX输出和Rx输入的2x128位对称流I/F
      -这些被连接在一起以便在QMSS的PKTDMA形成回路。
      -连接到外围设备的匹配流I/F(TX->Rx,Rx->TX)

c、基于数据包,所以Rx或TX核心都不关心有效载荷格式。

1.3 Navigator描述符类型
Navigator中使用了两种描述符类型:Host(主机包类型)和Monolithic(单一包类型)
① Host类型:提供了灵活性,但更难使用。
    -包含一个头部,它带有一个指向有效负载的指针"。
    -多个Host描述符可以链接在一起(数据包长度是有效负载(缓冲区)大小之和)。
Monolithic类型不太灵活,但更容易使用。
    -描述符包含头部和有效负载。
    -不能连在一起。
    -每个Monolithic类型描述符的有效载荷缓冲区大小相等(每个区域)。

多核导航模块(Multicore Navigator)_第3张图片

1.4 描述符队列(多个描述符链接)
下图显示了几个一起排队的描述符。要注意的事情:只有主机数据包在链接主机描述符中排队。主机数据包总是在SOP中使用,然后是零或多个主机缓冲区类型。多个描述符类型可以一起排队,尽管在实践中并不常见。
多核导航模块(Multicore Navigator)_第4张图片

1.5 数据流流向

  • Peripheral input and output:
    • 通过QM and PKTDMA的驱动数据流
  • Infrastructure or core-to- core transfers:
    • 从一个核的L2到另一个核的L2或者DDR

多核导航模块(Multicore Navigator)_第5张图片

多核导航模块(Multicore Navigator)_第6张图片

多核导航模块(Multicore Navigator)_第7张图片

  参考:“https://my.oschina.net/u/3690543/blog/1802772”

你可能感兴趣的:(DSP开发与技巧)