图6 页错失和DDR Bankx访问之间的相关性
图7 存储器组访问与页错失
图8 例2未经优化的布局
图9 缓存布局优化
利用连接程序描述文件(ldf)或使用Blackfin处理器存储器窗口,可以确定哪些缓存影射到这些组,并把它们重新分别映射到其他组,从而减少页错失。
总线授权计数寄存器
总线授权计数寄存器(EBIU_DDRGCx)可帮助我们了解各个系统总线(EAB和DEBx总线)的资源利用率。实际上,这将有助于确定总线仲裁策略并确保实现高效的DMA和外部存储器资源共享。
Blackfin BF54x系列处理器对外部总线提供可编程优先级设置功能。另外,该系列处理器还把几个外设DMA和存储器DMA映射到多个DMA控制器上,为实现高效资源管理提供了额外的灵活性。
考虑一个从照相机获得视频数据的例子,压缩算法运行在Blackfin上,经压缩的视频数据通过USB总线从Blackfin发送给PC。观测结果表明USB吞吐率相当低,无法实时传输压缩的视频数据。可能的原因之一是USB总线由于系统中存在其他高优先级任务被挂起。对于这种情况,我们可以使用授权计数寄存器快速地进行验证。同上,我们观测指标寄存器在一段时间区间内的数据。在几个时间区间内指标寄存器的数据揭示出DEB2总线(USB总线)在与EAB总线(内核总线)竞争,因而限制了USB对DDR存储器的访问。
在默认情况下,内核拥有比USB接口更高的外部存储器访问优先权。对于当前的应用,USB总线的实时要求具有比内核更高的优先级。因此,我们必须使用其中的一个总线仲裁寄存器提高USB相对于内核的优先级,从而解决这个问题。
总线授权计数寄存器也可与存储器组访问寄存器配合使用,以了解在给定的时间区间内哪个总线最活跃,并找到页错失之间的关联和在给定时间区间的总线活动情况。存储器组访问计数、引起页错失的总线以及哪些资源在利用总线等信息可揭示出那些低效的代码或数据存储器布局。