基于异构多核的全高清基于异构多核的全高清H264解码系统设计解码系统设计
移动互联网时代的到来,高清多媒体视频的普及,3D大型手机游戏对的出现,单核嵌入式硬件平台已经难以满
足复杂的实际计算需求。而异构多核处理器在视频编解码运算上具有强大的优势,已经成为了嵌入式处理器架
构发展的趋势。目前普遍高清视频编解码都采用异构多核处理器内的DSP进行协同处理,通过片上通信机制实
现核间多媒体数据传输。DSP相比软解码在速度和性能上得到了一定的提升,如DaVinci平台内置DSP能够实现
720P视频实时解码。但DSP运行时需要对信箱以及 DMA 进行配置,占用较多的片上通信带宽,导致核间通信
效率不高,同时DSP编解码效率和硬编解码器相比仍偏低。为了进一步提高全高清H264编解码性能,
移动互联网时代的到来,高清多媒体视频的普及,3D大型手机游戏对的出现,单核嵌入式硬件平台已经难以满足复杂的实
际计算需求。而异构多核处理器在视频编解码运算上具有强大的优势,已经成为了嵌入式处理器架构发展的趋势。目前普遍高
清视频编解码都采用异构多核处理器内的DSP进行协同处理,通过片上通信机制实现核间多媒体数据传输。DSP相比软解码
在速度和性能上得到了一定的提升,如DaVinci平台内置DSP能够实现720P视频实时解码。但DSP运行时需要对信箱以及
DMA 进行配置,占用较多的片上通信带宽,导致核间通信效率不高,同时DSP编解码效率和硬编解码器相比仍偏低。为了进
一步提高全高清H264编解码性能,本文采用TI Soc OMAP4430异构多核处理器作为处理平台,其不同在于内置双核Cortex-
A9强劲处理器、双核Cortex-M3协处理器及IVA-HD多媒体硬编解码加速引擎。IVA-HD引擎内部有7个针对各种视频编解码而
设计的加速引擎,每个加速引擎拥有独立的数据存储器,可以在上降低模块间因为读写数据造成的竞争。同时采用virtio缓存
队列和RPMsg 消息框架来实现基于异步通知的主处理核A9与协处理核M3间数据通信,具有大数据通信效率高、异步通知、
等优点。OMAP4430处理器内部的Cortex-A9双核处理器将运行嵌入式操作系统Linux,负责系统工作任务的调度、音频解
码、用户界面交互,而其内部的Cortex-M3将充当辅助处理核,管理IVA-HD加速引擎完成解码任务,用实例验证本次设计的正
确性。
1 主要技术主要技术
1.1 virtio缓存队列缓存队列
Virtio 是半虚拟化 hypervisor中位于设备之上的抽象层, 为异构多核间数据通信提供了层的实现。它使用了两个基于异步通知
的缓存队列( 一个用于向协处理核发送数据,一个用于从协处理核接收数据)和散列表用于与远程异构处理器进行数据通信。
每个缓存队列多包含有512个缓存,每个缓存的大小限制在512字节以内,缓冲池里面存放着通信数据。为了减少共享内存,
采用环形散列表,散列表每个表项包括了缓存的物理地址和缓存的大小,散列表存放在内存特定地址中,主处理核与协处理核
基于互斥机制的共享内存方式进行访问,如图1所示:
图1 异构多核间访问virtio缓存池示意图
采用共享环形散列表进行异构处理核间数据通信的好处主要有几个方面:
1)采用散列表表项表示数据缓存可以减小共享内存区域的大小,提高系统内存使用率,同时允许变长数据传输。
2)采用中断方式通知目的处理器散列表的变化,减少了处理器盲目等待时间,提高了处理器的利用率
3)允许同时传输多个缓存数据,提高了系统通信的吞吐率
1.2 RPMsg消息框架消息框架
RPMsg(Remote processor Messaging) 是一个基于virtio技术的用于处理器核间数据通信的消息框架,提供协处理核上电复位
管理、消息通信等功能。
1.2.1 协处理核复位管理协处理核复位管理
主要负责加载程序执行体到协处理核的运行内存中、设置负责虚拟地址映射到物理地址MMU单元,当协处理核遇段错误或
内部代码异常时,需要输出直观的出错信息并且提供了恢复机制使得协处理核可以重新使用。
1.2.2 消息通信消息通信
RPMsg消息框架是基于virtio缓存队列实现的主处理核和协处理核间进行消息通信框架,RPMsg向系统注册了一条消息总
线,并为每个M3协处理核创建相应的总线设备,而多个客户端驱动程序也注册在该消息总线上并分配一个本地地址端口src和
远程地址端口dst,当客户端驱动需要发送消息时,会把消息封装成virtio缓存并添加到缓存队列中以完成消息的发送, 当消息总