一种针对hevc视频编码的多核混合存储管理方法_3

文档序号:9508811阅读:来源:国知局
相关性预测下一个CTU (^仏的搜索窗口中频繁访问的load windows。为了实现预测算法需要CTUN的时间和空间相 邻CTU的历史访问信息。为了减小预测算法的复杂度,选择时间相邻的中心位置CTU CTUE, 空间相邻的水平与垂直位置的CTU CTUM和CTUj^历史访存信息作为预测算法的输入信息, 如图3所示。利用一个简单的硬件模块去记录LWEi1的访存历史信息cnt(LWEil)。应该注意 到LWNi1和LWEi1属于不同的搜索窗口,因此他们有不同的物理地址和虚拟地址,然而他们在 相应的搜索窗口中具有相同的相对地址,并且具有很大的访存相似性。因此,如果LWNi1被 分配到片上SPM上则应该满足以下不等式
[0060] 该不等式中avg〇表示取平均值函数,τ表示预取阈值。预取阈值τ可以利用 下面的不等式确定
[0062] 在该不等式中α表示编码CTU时访问搜索窗口的缓存缺失率;EDRAM、E_he、ESPM分 别表示访问DRAM、cache和SPM的动态能耗;SEspm表示在编码CTU的过程被加载到SPM上的 load window所产生的平均静态能耗。α的取值通过非在线的统计分析获得一个固定值。 该不等式说明预测算法选择那些访问频率足够高的load window加载到SPM上。
[0063] 对于那些在Tile边界附近的load window很有可能被不同的Tile共享,也就是 说在编码的过程中这些load window有可能被不同的处理器核共享。例如,在图4中CTU1 与CTU2在Tile边界附近,他们在同一参考帧中的搜索窗口很有可能具有很大的重叠,图中 load window LW1可能被不同的核共享,因此LW1将会被分配到片上共享的SPM空间。其他 的load window像素数据将被分配到私有的SPM空间,如load window LW2。
[0064] 现在,在确定的系统配置信息下(如参考帧的个数,搜索窗口的大小等)可以确定 一个合适的SPM的大小和片上SPM、Cache的组织形式。ph表示高频率访问区域(访问次 数大于预取阈值τ)占整个搜索窗口的比例。片上每一个核的私有SPM空间大小可以利用 一下公式得到:
[0066] 在该公式中31;5_表示搜索窗口的大小,^£表示编码过程中参考帧的个数。同样 片上共享SPM的空间大小可以利用以下公式获得:
[0068] 该公式中分别表示搜索窗口的宽度、参考帧的高度和参考帧的宽度; NBvertleajP NB hOT1_tal分别表示当前编码帧中垂直方向和水平方向上T i 1 e边界线的条数。例 如在图4中有 NBvertical NB horizontal 1.在该发明中Ph的值可以利用统计分析的方式获 得。
[0069] (2)片上混合存储管理单元(HVMMU)的设计
[0070] 在本发明的加载窗口(load window)管理策略中,整个load window会被加载到 片上SPM缓存空间中。为了实现虚拟地址与SPM空间地址的转换,在混合缓存管理单元 (HVMMU)中为每一个参考帧创建了一个load window table (LWT)。该LWT记录了每一个加 载到SPM上的load window的虚拟地址与相应SPM空间地址的映射关系。可以利用参考帧 的宽度、load window的大小以及CPU所产生的虚拟访存地址等信息查找LWT,判断该访存 地址是否已被加载到SPM空间中,并确定该load window在SPM上的起始地址,最终真正的 物理SPM地址将会通过加上偏移量获得。图5表示了地址转换模块的框图,LWT命中说明 所访问的参考像素数据已经被加载到片上SPM缓存中,否则该数据将会通过Cache或主存 访问。规定查找LWT的过程将会和MMU中TLB的过程并行,从而隐藏了搜索LWT的时间。
[0071] 对每一次查找LWT可能SPM命中也可能不命中,在HVMMU中为每一个load window 记录项添加一个计数器,记录该load window的访问次数。该访存信息将会用于load window的预测算法中,去预测在编码下一个CTU之前哪些load window应该被提前加载到 片上SPM缓存空间中。然而在编码一个CTU的过程中一个load window可能被访问超过 100000次,这就要求一个比较大的计数器空间和能耗。为了降低该硬件的开销,规定计数器 的最大值为预取阈值(3000左右),这样能够大大减小计数器产生的能耗开销。
[0072] (3) SPM功率状态控制单元控制算法(power gating algorithm)
[0073] 在对每一个预测单元进行最佳匹配块搜索的过程中往往只有load window中 的小部分区域被访问。对于其它的在该过程中不防问的区域,设计一个power gating控制 单元,自适应的为每一个SPM空间单元分配合适的功率状态,进一步减少片上缓存的静态 能耗。
[0074] 为了提供一个优秀的power gating管理方式,规定四种功率状态:S。关状态, Sp S2数据保持状态,S 3开状态。只有在S 3状态存储在该SPM空间单元中的数据才会被正 确读取,Si,S2具有更低的静态能耗,数据不会丢失,S。状态静态能耗为0,数据会丢失。每 个状态有一个相应的静态能耗" ^
" 同样每个 状态也有一个相应的唤醒能耗
图6表示了片上SPM组织模型,SPM 由Nb个bank组成,允许多核并行访问不同的SPM bank空间,此外每个bank又被分成多个 空间单元(sector)。在不同的bank的相同位置的sectors组成了一个power gating单元 (PGU),规定在每一个PGU内部的sector在任何时刻具有相同的功率状态。同时在PGU中 的SPM地址空间是连续的,并且每一个load window正好可以占居一个或多个P⑶。
[0075] 因为HEVC在CTU之间的编码顺序是光栅扫描顺序(从左上角开始到右下角结束, 一行一行的扫描),因此如果一个load window在参考帧中的位置满足以下不等式
[0077] 该load window中的数据在以后的编码过程中将不会被当前处理器核访问。在该 不等式中
LWhOT分别表示当前编码CTU与待测load window的水平坐标,H sw表示 search window的高度。该不等式说明如果当前编码CTU与待测load window的垂直距离 大于
_,.则该load window中的数据将不会被当前处理器核访问。为了实现多核之间的 power gating管理算法,设置了一个共享度参数P,表示在以后的编码过程中相应的load window可能被多少个处理器核共享。例如在图4中load window 1^有0 =2,因为他 可能在编码tileO和tilel的时候被访问。在power gating管理策略中如果某一个load window满足不等式Adis,其相应的共享度减1。因此当一个load window的共享度减到零 的时候,该load window将不会被任何处理器核访问。
[0078] 我们所发明的power gating算法首先根据不等式修改每一个load window的共 享度参数,并且分配关状态(S。)给每一个共享度为零的load window。然后开始编码每一 个通过四叉树分割方式分割出的编码单元(⑶),最小的⑶大小为8X8。在搜索上一个预 测单元(PU)的最佳匹配块时所
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1