android display 笔记(十四)VAU 和GSP 分别代表什么
VAU 和 GSP 的解释
- GSP (Graphics/GPU Subsystem Processor)
含义:
图形处理子系统,通常指 SoC(系统级芯片)中负责 2D/3D 图形渲染、显示合成、图像后处理(如缩放、旋转、色彩管理) 的硬件模块。
在部分芯片中,GSP 也可能指 Generic Signal Processor(通用信号处理器),用于加速图像/视频处理任务。
作用:
分担 GPU 或 CPU 的图形计算负载,提升能效比(如手机屏幕刷新、UI 动画渲染)。
可能包含 MMU(内存管理单元),用于管理虚拟地址到物理地址的映射。
典型场景:
Android 的 SurfaceFlinger(显示合成服务)会调用 GSP 硬件加速图层合成。
视频播放时,GSP 可能参与帧缓冲区管理。
- VAU (Virtual Address Unit)
含义:
虚拟地址单元,是 MMU(内存管理单元)的一部分,负责 虚拟地址到物理地址的转换 和 内存访问权限检查。
当 CPU 或 GPU/GSP 访问内存时,VAU 会检查地址是否合法(如是否越界、是否有读写权限)。
作用:
防止非法内存访问(如野指针、缓冲区溢出)。
支持多进程隔离(不同进程的虚拟地址空间独立)。
与中断的关系:
当发生 非法内存访问(如访问未映射的地址或权限不足)时,VAU 会触发 VAU_INT(VAU 中断),通知驱动处理。
代码中的 gsp_int_value.VAU_INT 就是检测这类异常。
代码中的 GSP 和 VAU 协同工作
触发条件:
GSP 的 MMU(含 VAU)检测到非法内存访问 → 触发 VAU_INT 中断。
处理流程:
中断处理代码:
打印错误日志(VAU INT is %d)。
禁用中断(mmu_r1p0_int_clear_and_disable)防止重复触发。
打印 MMU 配置和状态寄存器(调试用)。
最终返回 IRQ_HANDLED 告知内核中断已处理。
总结:
简单来讲,GSP属于显示子系统下的硬件(GPU),VAU属于内存管理单元(MMU)。比如VAU STS是 内存管理单元(MMU)中虚拟地址单元(VAU)的状态寄存器,用于指示当前 内存访问异常或 MMU 的运行状态,当VAU发现内存有非法访问时,会进行中断处理。