1.基本概念介绍

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

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


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

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类型描述符的有效载荷缓冲区大小相等(每个区域)。

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

1.5 数据流流向

  • Peripheral input and output:

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

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

多核导航模块(Multicore Navigator)相关推荐

  1. Tms320c6678——多核导航模块(Multicore Navigator)

    Multicore Navigator由两部分组成:QMSS and CPPI(又称PktDMA). 1,QMSS是一个独立的模块,每个c6678芯片内部只有一个QMSS,主要是用于硬件队列的管理: ...

  2. Multicore Navigator (CPPI):Notify end of QM interrupt

    在RTOS中,Multicore Navigator (CPPI)中PDSP监控的中断是作为中断进程进行调度的.如下,QM_PDSP_ISR是作为中断进程的入口函数注册给中断进程的,每次中断进程被调用 ...

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

    当前,TI设备上的主要数据传输引擎是EDMA(enhanced DMA)模块和PKTDMA(Packet DMA,multicore Navigator中的一部分)模块.对于设备之间的高位通信,有多个 ...

  4. 如何用TMS320C6678处理器进行TI-IPC多核通信案例

    如何用TMS320C6678处理器进行TI-IPC多核通信案例 本文基于创龙科技TL6678-EasyEVM评估板进行演示. 图1TL6678-EasyEVM评估板 TL6678-EasyEVM是一款 ...

  5. 并行编程2——多核体系架构

    1.1  多核处理器定义 多内核处理器架构是指:芯片设计工程师在单个处理器中集成两个或多个 "执行内核(即计算引擎)".多内核处理器可直接插入到单一处理器基座中.但是,操作系统会把 ...

  6. 基于多核处理器的RTOS多核扩展分析与研究

    本文是我写得一篇关于RTOS SMP扩展的硕士论文,希望对有志于了解RTOS-SMP工作机制的兄弟们提供些许帮助,O(∩_∩)O~. 一直以来人们通过提高主频来提升微处理器的性能,但是高功耗制约着主频 ...

  7. 多核编程指南(六)---进程间通信(三)

    Multicore Navigator封装消息,包括在称为描述符的容器中包含数据的消息,并在硬件队列之间移动它们.每个目的地都有一个或多个专用的接收队列.Multicore Navigator允许接收 ...

  8. TMS320C6678芯片

    1.1 KeyStone 架构 TMS320C6678系列芯片采用的是KeyStone 架构,TI 的 KeyStone 多核架构为集成 RISC 和 DSP 核以及应用特定的协处理器和 I/O 提供 ...

  9. 【DSP开发】德州仪器达芬奇五年之路七宗罪,嵌入式处理器架构之争决战2012

    芯片是产业链上游重要的一个环节,一颗小小的芯片具有极高的技术含量和价值,半导体行业每年都会有一个各大厂商营业额的排名,除去2009年,常年盘踞在前三名位置的分别是英特尔,三星半导体和德州仪器,英特尔凭 ...

最新文章

  1. 使用脚本规范化企业office程序注册名
  2. linux手动安装unzip_centos下离线安装zip和unzip
  3. 分布式工具的一次小升级⏫
  4. show Locks LockManager not specified解决
  5. Java学习笔记之 IO包 字符流
  6. 评价最高影片JAVAlibrary_视频 | 手游大神,动画导演,机圈新贵,极客怎么评价《愤怒的小鸟2》?...
  7. C++对输入流输出流运算符的重载【案例】
  8. 2.分布式服务架构:原理、设计与实战 --- 彻底解决分布式系统一致性的问题
  9. vue前端项目打包并且在服务器上部署过程
  10. 微信支付——微信H5支付实战教程(微信支付v3版本java)
  11. Android Download 下载功能深入研究(二) : 速度提升之探索
  12. 计算机主板电杆,电脑主板cpu供电上下管怎样区分替换
  13. Latex排版图片样式
  14. UG NX二次开发(C#)-UIStyler-ListBox操作
  15. 重启PocketPC移动设备
  16. 线性代数学习笔记7-4:马尔可夫矩阵、矩阵幂的稳态问题
  17. Linux 平台下如何使用GCC得到各种格式的文件正文(office文件,PDF,邮件,html,zip等)
  18. Python3下的NLTK及nltk_data安装问题(Ubuntu环境)
  19. ValueError: List argument ‘indices‘ to ‘Sparse Concat‘ Op with length 0 shorter than minimum length2
  20. 生成微信小程序二维码,可跳转到小程序指定页面。

热门文章

  1. UIAlertController的使用及其自定义
  2. 一个简单的UBB程序
  3. 数据挖掘实践(金融风控)
  4. 微信小程序_基础组件学习02
  5. 使用docker commit将修改后的容器保存为镜像及其使用注意事项
  6. linux fedora下vscode终端字体间距不正常解决办法
  7. Cloudera Enterprise 试用版 6.3.1查看cloudrea的许可证---可用期限
  8. javafx FlowPane布局
  9. k8s部署mysql集群(statefulset):主写从读、一主多从集群
  10. ndoejs优先从缓存加载机制