多核导航器学习笔记_第1页
多核导航器学习笔记_第2页
多核导航器学习笔记_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、KeyStone I 特征:1)一个硬件队列管理器,其中包括:8192个队列(其中一部分有特殊用途);20 个描述符内存区(descriptor memory region® ;2个链接随机存储器(linking RAMs),其中一个内部给 QMSS使 用,支持16K的描述符。2)几个PKTDMA( Packet DMA,包含相互独立的 Rx DMA和Tx DMA 两个部件)。3)通过中断产生实现多核主机之间的相互通知机制。多核导航器的一般特征:1)集中的缓冲区管理2)集中的数据包队列管理3)独立协议的数据包等级接口4)支持多通道/多优先级的队列5)支持多重自由缓冲队列6)高效的主机

2、间的交互机制,可以减少对主机处理的性能要求7)包交接的0拷贝操作(zero copy packet handof多核导航器为主机提供的服务:1)提供为每个通道可以压入不限数量的包的机制2)提供数据包传送完成后返回队列缓冲区给主机的机制3)提供传输通道关闭后恢复队列缓冲区机制4)提供给每个接收端口分配缓冲区资源的机制5) 提供在完成数据接收后,传递缓冲区给主机的机制6) 提供在接收通道关闭后自动慢慢地停止接收数据的机制队列管理器(Queue Manager)队列管理器是一个硬件模块,它负责数据包队列的加速管理数据包直接内存存取(Packet DMA, PKTDMA)被传输数据的目的地址是由目的地

3、和自由描述符队列索引一起决 定的,而不是一个绝对的内存地址。传输的数据都是一维的数据流。1) 通道在系统中每个PKTDMA可以被配置多个Rx以及Tx通道。可同 时双向传输。2) Rx 流(Rx Flows)对于发送模式,Tx DMA使用描述符中的信息决定如何处理Tx包。对于接收模式,Rx DMA使用flow来完成任务。这里所谓的flow 就是一系列指令集,这些指令集告诉 Rx DMA如何处理Rx Packet。 Rx通道与Rx流之间没有通信机制,但是 Rx包和Rx流之间有通信 机制。导航云(Navigator Cloud)由一系列的PKTDMAs和descriptors组成的。打包数据结构协处

4、理器(packed-data structure processors PDSP)在QMSS中有两个或八个 PDSPs每个PDSP都具有运行固件QMSS相关功能的能力,比如累加、QoS以及时间管理累加固件的工作是测试被选中的队列集合,并查询是否有描述符 被压进来。QoS的职责是确保周边设备和主机CPU不会再数据包的影响下混 乱,这也被普遍称为流量整形(traffic shapi ng)。时间管理器是由导航器运行时间软件控制的,导航器运行时间软 件是由 PDSP固件调度器(scheduler)和CorePac软件调度器(dispatcher)组成的。包(Packets)所谓“包”指的是一个描述符

5、以及附加在其上的负载数据(payloaddata)的逻辑组合体。负载数据可以是一个数据包也可以是数据缓存, 由不同类型的描述符决定。负载数据可以和描述符连续放在一起,也 可以放在别的地方,通过一个指针存放在描述符中加以指引。队列(Queue®队列通常用来保存指向包的指针,这些包将在主机或者系统外设 之间传递。队列是在队列管理器模块中维护的。1) 包入队列操作(Packet Queuing将指向描述符的执政写入队列管理器模块指定的地址中去。该包 可以被压入到队列的头部挥着尾部,这是由队列的Queue Register C来决定的。一般默认是压入尾部。2) 包出队列操作(Packet D

6、e-queuing从队列管理器相应的地址中读取排在最前面的包(head packet) 的指针。当最前面的头指针被读取之后,队列管理器将头指针设为无 效,并用队列中的下一个包的指针替换它。3)队列代理器(Queue Proxy)队列代理器是KeyStone架构设备中的一个模块,它主要提供不同 内核之间压入队列的原子操作。队列代理器的目的是在接受一个 Que N Reg C的写操作,且紧跟着一个 Que N Reg D的写操作时,不允许 其他内核有插入队列操作。压入队列代理器的操作和写队列管理器区 域Que N的Reg C以及Reg D是等同的,唯一的区别是使用了不同 的地址(队列代理区域中相同

7、的偏移量)引入队列代理器的另外一个原因是多任务环境。在多线程中,代 理器不能区分来自同一个核,但是具有不同源的写操作。队列的类型1)发送队列(Transmit Queues发送端口( Tx port)使用发送队列,存储处于等待状态且将要被 发送的包。为了实现这一目的,Tx Ports为每一个发送通道保留一个 或多个专用的包队列。通常,Tx队列在内部被连接到一个指定的PKTDMA发送通道。2)发送完成队列(Transmit completion QueuesTx port也会使用名为发送完成队列的包队列,在包被发送之后,将 包返回给主机。它也可以理解为 Tx释放描述符队列。只有在包的描述符中指示

8、出这个包被返回给队列, 而不是直接回收时,才会使用发 送完成队列。3)接收队列(Receive Queues接收端口( Rx port)会使用接收队列,将已经完成接收的包向前 传输给主机或者其他等同的实体。 接收通道可以配置成各种方式,将 接收到的包传递给接收队列。接收端口可以严格根据Rx通道,协议类型,优先级别,前向传输要求,上述因素的组合以及应用规范等决 定对接收数据包进行排列。在很多情况下,接收队列事实上对于另外 一个等同的实体也是一个发送队列。 是发送队列还是接收队列,取决 于在系统的参考点。4)释放描述符队列(Free Descriptor Queues接收端口使用释放描述符队列完成

9、对 Rx DMA装载数据的初始化 以及准备工作,其操作与描述符的类型有关。a. 主机包释放描述符排列在FDQ的主机包必须有一个缓存连接到它们,同时缓存的大 小设置要合适。Rx DMA根据需要弹出主机包,并根据其中指示的缓 存大小填充它们。b. 单一释放描述符Rx DMA并不从单一释放描述符中读取任何数值。PKTDMA默认 描述符有足够的大小容纳所有的包数据。如果数据超过了描述符的大 小,将会覆盖下一个描述符的内容。描述符(Descriptor)描述符就是一小块存储器空间,它用来描述将要在系统中传输的 一个数据包。1)主机包(Host Packe)主机包描述符具有固定大小描述区域,这个区域包括指

10、向数据 buffer的指针,主机包在发送通道中,被主机应用所链接,在接收通 达中被RxDMA链接(主机包能在初始化阶段创建一个 Rx FDQ时被 预链接)。2)主机缓存(Host Buffer)主机缓存描述符的大小可以随你不同主机包在其内部发生变化; 但是决不能放在包的第一个链接上(所谓的起始包)。主机缓存可以 包含指向其它主机描述符的链接指针。3)单一包(Monolithic Packet)单一包描述符区域包含负载数据。包发送步骤:(Tx DMA通道初始化好之后,就可以开始传输包)1)主机知道存储器中有一块或者多块数据需要以包的形式传输;2)主机分配一个描述符,通常从Tx完成队列中分配,并填写描述符 域和负载数据。3)对于主机包的描述符,主机根据需要分配并且占据主机缓存描述 符,并指向属于包的剩余的数据块上。?4)包接收步骤:(Rx DMA通道初始化好之后,就可以开始接收包) 多核导航器的数据移动1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论