基于Xtensa可配置处理器技术的视频加速引擎开发技术
量。软件工具也建立“MOVE”操作,用于将各种C数据类型转换为新的定制数据类型。因此,采用sub.abs.ac16过程和新寄存器文件后的SAD内核C程序代码如下:
for (row = 0; row numrows; row++) {
myRegFile128 mblk1, mblk2;
mblk1 = macroblk1[row];
mblk2 = macroblk2[row];
sub.abs.ac16( accum, mblk1, mblk2);
} /* row loop */
现在C/C++编译器将会产生一条MOVE指令,将数据从一般的C数据类型移到定制的C数据类型“myRegFile128”,并为新寄存器文件分配寄存器。
8、建立高数据带宽的加载/存储接口
为了对高带宽定制寄存器文件(以及相应的单指令流多数据流SIMD功能部件)进行数据存取,处理器应当具有高带宽数据加载/存储操作能力。对可配置处理器而言,设计人员能够说明定制加载和存储操作指令,直接完成对定制寄存器文件的高带宽加载/存储数据操作。然后,编译器自动产生与高带宽加载/存储接口相应的加载/存储指令。
经过更新后的处理器数据通路如图6所示。硬件生成工具产生高带宽的定制寄存器文件、与数据存储器相关的加载/存储接口以及相应的前馈逻辑、控制逻辑和旁通逻辑。硬件工具还产生相应的硬件逻辑,用于将数据从基准寄存器文件移到用户定义的寄存器文件中。
图6 插入寄存器文件和高带宽加载/存储接口的数据通路
9、更新地址的同时进行加载
或者存储操作
Xtensa可配置处理器允许用户建立另一个非常有用的功能扩展,即建立一条指令,能够同时完成地址更新操作和数据加载/存储操作。建立的新的加载/存储操作指令能够并发完成如下功能: Load A1 ← Memory(Addr1);Addr1 = Addr1 + IndexUpdate
该指令能够完成“背靠背”的加载/存储操作,而不需要专门指令对地址进行更新。
10、建立先进先出(FIFO)接口
和通用输入/输出端口
视频和音频均为流媒体,需要对处理器进行快速数据访问。传统的处理器受限于系统总线接口,以及数据操作执行前对所以数据的加载与存储访问。
为支持流媒体数据/输出操作,Xtensa可配置处理器允许设计人员定义先进先出(FIFO)接口以及通用输入/输出(GPIO)端口,以便直接对数据通路进行读写访问。FIFO和GPIO端口可以是任意数据宽度(可达1024位),数量不限(每个可包含1024个FIFO和GPIO端口)。这些高带宽接口可以直接与数据通路相连,提供很高的数据吞吐量,通过处理器内核对数据进行读、处理和写操作,这对于多媒体和网络应用而言是非常重要的。
具有FIFO接口和GPIO端口的数据通路如图7所示。处理器可以进行如下操作:首先从两个FIFO(在确保两个先进先出队列均不空的情况下)中取出数据,然后计算一个复操作(例如一个乘累加舍入操作),最后将计算结果压入输出FIFO(在确保先进先出队列不满的情况下)。然后,硬件生成工具产生相应的接口信号、控制逻辑和旁通逻辑等;为配置的处理器产生完整的RTL代码。软件生成工具产生一套完整的编译器工具,以及时钟周期精确的指令集仿真器ISS,用于对新指令进行仿真。注意到,这种由设计人员定义FIFO接口和GPIO端口的能力是Xtensa可配置处理器所独有的。
图7 采用定制先进先出(FIFO)接口和通用输入输出(IO)端口的高速通信
11、加速复杂的控制密集型代码的执行
多媒体应用中控制代码的数量与复杂性显著增长,使得程序中数据密集型操作与计算时间近似等价。例如,H.264主程序译码器中的关键部分为CABAC(上下文相关二进制算术编码)算法。该算法几乎完全是具有数据计算和数据比较的控制流判决树。
由于计算的复杂性非常高,绝大多数传统处理器均采用专用的RTL加速器来完成CABAC算法。然而,在可配置处理器上可以通过增加一组专用指令来更加有效地实现CABAC算法。这种实现方法的好处是避免了数据在处理器和RTL加速器之间不停地交换数据。采用可配置处理器的另一个好处是采用指令扩展技术,由于专用硬件在处理器内部,因此可以更好地进行硬件和软件界面划分。
12、小结
现代可配置和可扩展处理器是构建定制视频和音频引擎的理想选择。Tensilica公司提供相关的视频和音频IP作为SOC模块,包括HiFi 2音频引擎、钻石系列标准的38xVDO(视频)多标准和多分辨率视频方法。与之匹配的软件编解码器是非常重要的。HiFi 2音频引擎与相关的软件一起可完成绝大部分流行的音频编解码器,例如MP3、AAC、WMA等。类似地,钻石 38xVDO 视频加速引擎与相应的编码器和译码器软件可以实现H.264 (包括Baseline、Main和profiles)、MPEG-4 (SP 和 ASP)、 MPEG-2、VC-1/WM9及其它标准。这些视频技术涵盖了从QCIF 到CIF以及SD各
加速 引擎 开发技术 视频 技术 Xtensa 配置 处理器 基于 相关文章:
- 基于DSP的数字式MEMS加速度传感器的设计与应用(04-17)
- ARM和DSP设计的地震加速度信号处理系统(01-04)
- 基于VxWorks的硬件加速技术探讨(08-08)
- μC/OS-II的实时系统加速模块设计(01-16)
- 基于ADSP-BF561的车辆辅助驾驶系统硬件设计方案(05-07)
- 基于DSP的数字式MEMS加速度传感器ADXL203的系统设计与应用(07-06)