Imagination 的PowerVR GPU由一个固件处理器驱动,该处理器负责工作负载的高级调度和优先级设置。它与固定功能单元的数据主控器协同工作。为了允许多种类型工作的并发处理,PowerVR GPU 为每种类型的工作分配了一个数据主控器,包括几何处理、3维、计算和2维(或数据移动)。
这些数据主控器负责这些工作的底层运行,包括设置工作。前几代产品采用了单任务数据主控器,这意味着数据主控器会执行特定的工作,而切换工作则需要固件处理器来设置下一个工作。
这种方法意味着大部分的设置工作发生在从一个渲染切换到下一个渲染时,这通常会导致空闲时间,期间固件处理器将设置下一个工作并重新编程寄存器。这种设置工作可能需要数据访问和其他复杂的同步任务,由于延迟问题,可能导致数千个周期的固件工作期间没有为特定的数据主控器安排任何工作。这通常会导致空闲时间,甚至导致 GPU 核心的电源门控,从而损失性能以及降低扩展效率。
随着 PowerVR GPU 的速度越来越快,具有更强大的 SPU、更多数量的SPU 和多核架构,GPU 的渲染/处理性能显著提升。这意味着处理计算内核和/或图形渲染所需的时间减少了(因为我们拥有了更大、更快的 GPU 核心),但是我们仍然只有一个固件处理器,这意味着设置阶段仍需相同的时间。
例如,比较AXT-16-512和 DXT-72-2304,理论上我们的处理速度提高了 4.5 倍,但是固件处理时间保持不变,因此如果不做改进,它占总时间的比例将会更大。
这一点如下图所示: