基于音频DSP的硬件加速器应用研究
详细内容
音频处理技术的进一步发展对音频DSP提出了更高的要求,集成的硬件加速器为处理器整体处理性能的提升提供了重要的推动力,且将通用的信号处理操作--FIR滤波、IIR滤波和FFT操作--从内核处理器中释放出来,使内核可以专注于其他任务,这种高性价比的方法能提高处理器两倍以上的计算吞吐量。
处理器内部集成的硬件加速器可以实现三种广泛使用的信号处理操作:FIR(有限冲激响应)、IIR(无限冲激响应)和FFT(快速傅里叶变换)。硬件加速器减轻了核处理器的负担,能潜在的提升处理器的计算吞吐率超过两倍。本文以下一代音频系统为例,说明硬件加速器在这方面的应用。
为什么使用硬件加速器
FIR滤波器、IIR滤波器和FFT操作在数字信号处理器中应用十分普遍,且具有规则的结构,因此可以用硬件直接实现,特别是用硬件加速器。硬件加速器是专用的定点功能外设,用于实现重复计算复杂的单个任务。它们减轻了主处理器的负担,主处理可以主要做一些在结构上几乎没有什么规律的通用任务。
由于系统设计者既拥有通用处理器的灵活性,又具有专用硬件的计算优势,因此,使用硬件加速器就提供了一种高性价比的方法,以增加处理器总的计算能力。
因此,这类加速器在满足众多应用领域日益复杂的系统需求方面具有重要价值。其中一个应用是其通道数不断上升的音频系统。家庭影院系统通道数从5.1通道发展到6.1通道,现在已经到 7.1通道,而高端汽车功放一般使用12个或者/iompany/detail1.html" target="_blank">ADI公司近期推出的SHARC ADSP-2146x处理器为例介绍加速器的结构,该处理器具有更高的时钟速率(450MHz),并扩展了片上存储器(5Mb)。
此外,处理器还具有一系列硬件加速器,可以用以实现通用信号处理运算:FIR、IIR滤波器和FFT。而这些运算是通信系统、医疗设备、消费产品和工业测量与控制应用中的基本运算。这些加速器是SHARC ADSP-2136x系列处理器片内采样率转换器的有益补充,而采样率转换器也可以看作硬件加速器。
SHARC ADSP-2146x处理器的三个加速器设计相同, FIR加速器能很好的说明硬件加速器的结构。
FIR加速器有以下功能模块。
● 系列控制寄存器--配置加速器的操作。
● DMA控制器--在主存储器与加速器的本地存储器之间传输数据,也可以用于配置控制寄存器。
● 两个本地存储器块--保存系数和状态变量(或者延迟存储器),并降低主存储器的带宽。
● 计算单元--包括适合加速器的算术操作,FIR的计算单元有4个并行的MAC。
使用链式DMA,加速器的操作可以自动完成,FIR加速器的典型操作有以下几步。
(1)将本通道的系数数据由内部存储器载入本地加速器系数存储区。
(2)将本通道的状态变量从内部存储器载入本地加速器系数存储区,这包括第一个输入样本。
(3)利用四个MAC单元计算输出样本。
(4)保存结果。
(5)如果还有需要处理的样本,则读取下一个输入样本,并写入状态变量存储器。
(6)重复步骤(3)~(5),直到通道中的所有输出样本计算完。
(7)重复步骤(1)~(6),计算所有输入通道。
加速器的实际应用
设计的应用软件必须尽可能从硬件加速器获取最多的好处,应牢记加速器必须配置成与主CPU并行操作,如果主CPU处于空闲状态等待加速器操作完成,这不会带来任何好处。
加速器是实时环境中运行的大信号链的典型部分,与加速器接口需要双缓存的输入和输出数据,且系统设计人员也应该牢记加速器会带来一部分延时。
设想一个带有7.1通道的家庭影院系统,采样率96kHz,数据块大小为32个采样点,假定室内均衡应用8个FIR滤波器,每个滤波器长度为512点,如果采用核CPU执行滤波操作,则至少需要每秒96kHz %26#215;8%26#215;512=393MMAC个操作,或者占工作在450MHz的SHARC处理器运算量的44%。该FIR处理占了整个计算量的很大一部分,但在将来,这些都可以转由加速器来处理。FIR滤波器的输入和输出都采用双缓冲,这样就可以让加速器与音频信号处理链的最后环节并行处理。当然,双缓冲器会引入32个采样点的处理延迟,对于96kHz时延迟为333ms,是可以接受的。
而利用前面的计算公式,加速器需要50 056个外设时钟周期才能完成操作,如果外设时钟是225MHz,则需要223ms,这小于333ms的可用块处理时间。