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

本文介绍了MulticoreNavigator如何封装和传输消息,通过非阻塞、阻塞和中断通知机制优化接收。特别强调了QoS机制,用于优先级调度和流量整形,涉及数据包队列管理、QoSPDSP处理器和入口/出口队列结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

Non-blocking Polling

在这种方法中,接收方检查接收队列中是否有描述符在等待。如果没有描述符,则接收方继续执行

Blocking Polling

在这种方法中,接收方阻塞其执行,直到接收队列中有描述符,然后继续处理描述符

Interrupt-based Notification

在这个方法中,每当一个新的描述符被放入它的接收队列时,接收器就会得到一个中断。这种方法保证了对传入描述符的快速响应。当新描述符到达时,接收方执行上下文切换并开始处理新描述符

Delayed (Staggered) Interrupt Notification

当传入描述符的频率较高时,Navigator可以将中断配置为仅当队列中新描述符的数量达到可编程的watermark时,或在队列中第一个描述符到达后的某一时间后发送。该方法减少了接收机的上下文切换负载

QoS-based Notification

Multicore Navigator支持服务质量机制,以对外围模块的数据流流量进行优先级排序;该机制评估每个数据流,以便根据预定义的服务质量参数延迟或加速数据流。相同的机制可用于在核心之间传输不同重要的消息

服务质量(QoS)固件的主要任务是管理系统中的所有数据包流,并验证外围设备和主机CPU是否被数据包淹没。为了支持QoS,称为QoS PDSP的特殊处理器在队列之间监视和移动描述符

QoS系统功能的关键部分是分组队列的安排。有两组数据包队列:QoS入口队列和最终目的地队列。最后目的地队列进一步分为主机队列和外围出口队列。主机队列是在主机设备上终止并由主机实际接收的队列。出口队列是那些终止于物理出口外围设备的队列。定型流量时,只有QoS PDSP写入主机队列或出口队列。未定型的流量仅写入QoS入口队列

QoS PDSP的工作是将数据包从QoS入口队列移动到其最终目的队列,同时在该过程中执行适当的流量整形。系统中有一组指定的队列,这些队列馈送到QoS PDSP。这些称为QoS队列。QoS队列只是由PDSP上运行的固件控制的队列。队列没有固定的属性将它们固定到特定的目的。

参考文献:

  1. 《Muliticore Programming Guide》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xiaojie雷达说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值