QoS 机制的核心思想是:在多个主设备竞争共享资源(如互联带宽、内存控制器)时,系统能够优先处理更重要的请求,从而优化整体性能或满足关键任务的实时性要求。
让我们通过一个具体的 SoC 场景来理解:
场景:一台智能手机的 SoC 正在同时处理多个任务:
用户触摸屏交互(高优先级、低延迟)
播放高清视频(中优先级、高带宽)
后台文件下载(低优先级、可容忍延迟)
QoS_Present = True (默认)
QoS_Present = True

行为: 和
AWQOS 信号存在于接口上。这是一个 4 位信号,值域为 0-15,数值越大表示优先级越高。
ARQOS
工作流程:
事务标记:
触摸屏控制器发起中断和数据传输时,CPU 会将其标记为高优先级,例如 。因为用户界面的流畅性至关重要,任何延迟都会被用户感知。
AxQOS = 15
视频解码器读取视频数据时,被标记为中优先级,例如 。它需要稳定的带宽来避免视频卡顿。
AxQOS = 8
网络控制器为后台下载读写数据时,被标记为低优先级,例如 。它的传输可以稍微推迟而不影响用户体验。
AxQOS = 1
系统仲裁:
当这三个主设备的事务几乎同时到达系统互联或内存控制器的仲裁器时,仲裁器会查看它们的 值。
AxQOS
即使后台下载的事务先到达,仲裁器也会优先让触摸屏(QoS=15)和视频解码(QoS=8)的事务先通过。
这样,用户滑动屏幕的响应会立即得到处理,视频播放依然流畅,而文件下载的速度可能会暂时下降,但这是用户可以接受的。
QoS_Present = False
QoS_Present = False

行为: 和
AWQOS 信号从接口上被省略。
ARQOS
举例:一个简单的 GPIO 控制器 或一个 温度传感器。
这类外设的访问通常是偶发的,对延迟和带宽没有严格要求。它们不需要参与复杂的系统资源竞争。省略这些信号可以简化硬件设计,节省资源。
2. 这样分类的原因
引入可配置的 QoS 机制,是为了在复杂的多主设备系统中实现性能的智能化管理,而非简单的平均分配。
优化用户体验
这是最直接的原因。通过优先处理用户交互和音视频等“前台”任务,系统给人的感觉是“流畅”和“响应迅速”。而那些用户不直接感知的“后台”任务则可以在资源空闲时执行。
满足实时性要求
某些任务有严格的截止时间。例如,音频处理器必须在下一个音频采样周期到来之前填满缓冲区,否则就会出现“爆音”。通过设置高 QoS 值,可以确保这些实时任务总能获得所需资源。
避免资源饿死
在没有 QoS 的系统中,一个持续发起大量请求的主设备(如 DMA 进行大数据拷贝)可能会“淹没”总线,导致其他关键主设备(如 CPU)无法及时访问内存,整个系统性能下降。QoS 机制确保了低优先级流量不会阻塞高优先级流量。
实现灵活性并控制成本
将 QoS 设为默认存在但可选,使得协议能适应不同层级的系统。
高性能应用处理器(如手机、服务器 CPU)必须使用 QoS 来管理其复杂的内部竞争。
简单的微控制器则可以为了成本和功耗而省略此功能。
3. 规则的诞生背景
QoS 概念的诞生,是计算系统从单任务演进到复杂多任务、多媒体、异构计算的必然结果。
消费电子产品的“多任务”革命
背景:早期的嵌入式设备一次只做一件事。而现代智能手机需要同时处理打电话、上网、听音乐、收通知等。
问题:如果没有优先级区分,一个后台邮件同步可能会让你正在玩的游戏出现卡顿。
解决方案:从操作系统调度器的概念中获得灵感,将进程优先级的概念延伸到总线事务层级。AXI QoS 使得硬件能够理解并执行软件定义的优先级策略。
异构系统架构的兴起
背景:现代 SoC 不再是单一的 CPU,而是包含 CPU、GPU、DSP、视频编解码器、AI 加速器等数十个主设备。
挑战:这些处理单元的工作负载特性截然不同(CPU 的随机访问 vs 视频的连续流),对内存系统的需求也相互冲突。
解决方案:QoS 提供了一个通用的“优先级语言”,允许系统架构师为每个主设备或每种工作负载定义其重要性,使得内存子系统能够智能地进行仲裁和调度,实现整体性能的最优。
对“性能确定性”的追求
背景:在汽车电子、工业控制等领域,系统的响应时间必须是可预测的。
问题:最坏情况下的延迟(Worst-Case Latency)比平均性能更重要。
解决方案:通过为安全关键任务分配最高的 QoS 级别,可以保证即使在最繁忙的总线负载下,这些任务也能在确定的时间内完成,这对于功能安全认证至关重要。



