SHARC ADSP-2146x处理器集成了硬件加速器,可实现三种广泛使用的信号处理操作:FIR(有限脉冲响应)、IIR(无限脉冲响应)和FFT(快速傅里叶变换)。加速器卸载了核心处理器,并有可能使处理器的计算吞吐量增加一倍以上。本文以加速器在下一代音频系统中的应用为例。®
为什么选择硬件加速器
数字信号处理中常用的FIR滤波器、IIR滤波器和FFT操作具有常规结构,允许在硬件(特别是硬件加速器)中直接实现。这些加速器是专用的固定功能外设,旨在反复执行单个计算密集型任务。它们卸载了主处理器,使其能够执行结构几乎没有规律性的通用任务。
使用硬件加速器提供了一种经济高效的方法来提高处理器的整体计算能力,因为系统设计人员获得了通用处理器的灵活性以及专用硬件的计算优势。
因此,这种加速器是满足许多应用领域中越来越复杂系统需求的宝贵资产。其中之一是音频系统,其中通道的数量正在增加。家庭影院系统从 5.1 声道增加到 6.1 声道,现在是 7.1 声道。高端汽车放大器通常使用 12 个或更多扬声器来让听众沉浸在声音中。
此外,音频源材料现在以高清 (HD) 格式提供,其关联的解码器可扩展系统资源。此外,高清算法以更高的采样率提供内容。以前,内容的峰值采样率很少高于48 kHz。使用HD算法,采样率通常为96 kHz,在某些情况下甚至高达192 kHz。
为了更好地了解计算需求是如何增加的,请考虑采用复杂房间均衡算法的最先进的家庭影院接收器。这些算法可补偿驱动器响应和扬声器位置的变化。算法首先使用麦克风和实时传递函数测量来分析房间。智能组合多个位置的测量值,然后为每个扬声器设计补偿滤波器。
更精确的房间均衡算法使用FIR滤波器来校正整个频率范围内的响应。所需滤波器的长度与采样率成正比,需要更长的滤波器来精确控制低频。256点的滤波器长度在48 kHz时很常见,而在96 kHz下实现相同的频率分辨率需要512点的滤波器长度。采样率和滤波器长度的加倍导致所需的计算量增加四倍。
SHARC ADSP-2146x中的加速器
ADI公司的SHARC处理器有着悠久的历史,可在众多应用中实现复杂的信号处理功能。处理器功能丰富的内核和外设使其成为产品开发人员的合理选择。ADI公司最近推出的SHARC ADSP-2146x处理器通过更高的时钟速度(450 MHz)和扩展的片上存储器(5 Mb)巩固了这一领导地位。
此外,该处理器还具有一组用于实现常见信号处理操作的硬件加速器:FIR 滤波器、IIR 滤波器和 FFT。这些操作构成了通信系统、医疗设备、消费产品以及工业测量和控制应用的基础。这些加速器是对SHARC ADSP-2136x处理器中引入的板载采样速率转换器的补充,也可以被视为硬件加速器。
加速器架构
SHARC ADSP-2146x的所有三个加速器都具有相似的设计,这使得下面显示的FIR加速器很好地说明了硬件加速器架构。FIR 加速器具有以下组件:
控制寄存器集 - 配置加速器的操作。
DMA 控制器 — 在主内存和加速器的本地内存之间移动数据。也可用于配置控制寄存器。
两个本地内存块 — 存储系数和状态变量(或延迟内存),并减少主内存的带宽。
计算单元 - 包含为加速器定制的算术运算。FIR 计算单元有四个并行 MAC。
加速器的操作使用链式 DMA 自动执行。FIR 加速器通常通过以下步骤进行:
将此通道的系数数据从内部存储器加载到本地加速器系数存储。
将此通道的状态变量从内部存储器加载到本地加速器状态变量存储。这包括第一个输入样本。
使用四个 MAC 单元计算输出样本。
存储结果。
如果还有样本需要处理,则获取下一个输入样本并写入状态变量存储。
重复步骤3至5,直到计算出通道中的所有输出样本。
对所有输入通道重复步骤 1 到 6。
ADSP-2146x内核的最大时钟速率为450 MHz。通过使用 SIMD(单指令多数据),内核可以在每个时钟周期执行两次 MAC(乘法累加)运算,峰值速率为 900 MMAC/秒。相比之下,该加速器以225 MHz的SHARC外设时钟速率运行。 FIR加速器使用其四个专用MAC单元,实现了900 MMAC/sec的峰值理论吞吐量。配置 FIR 加速器控制寄存器和将数据移入和移出本地内存会产生一些开销。
实现给定FIR滤波器所需的外设时钟周期总数由公式给出
其中 N 是过滤器抽头的数量,B 是块大小。周期计数可以进一步细分为:
49 = DMA 传输控制块初始化。
4N = 假设每个载荷有两个周期,则加载系数和状态值(延迟线)。
在实践中使用加速器
应用软件的设计必须能够充分利用硬件加速器。请记住,加速器必须配置为与主 CPU 并行运行,因为如果主 CPU 处于空闲状态等待加速器完成,则没有任何好处。
加速器通常是在实时环境中运行的较大信号链的一部分。与加速器的接口需要双缓冲输入和输出数据,系统设计人员应记住加速器会引入延迟块。
考虑一个家庭影院系统,该系统具有 7.1 个 96 kHz 的音频通道,以 32 个样本的块大小运行。假设房间均衡由八个FIR滤波器应用,每个滤波器长512点。如果核心CPU要执行滤波,则至少需要96 kHz×8×512 = 393 MMAC/秒或44 MHz SHARC处理器的450%。这种FIR处理代表了整个计算的很大一部分,幸运的是,可以卸载到加速器。FIR滤波器的输入和输出是双缓冲的,允许加速器与音频信号链的其余部分并行工作。双缓冲在处理过程中引入了32个延迟样本,在333 kHz时为可接受的96 μs。
使用前面的公式,加速器需要 50,056 个外围循环才能完成操作。在225 MHz的速率下,这是223 μs,这完全在333 μs的阻塞时间内。
结论
音频处理技术的不断进步对音频DSP提出了更高的要求。下一代SHARC ADSP-2146x处理器中的硬件加速器可显著提高整体处理能力。加速器将常见的信号处理操作(FIR 滤波器、IIR 滤波器和 FFT 操作)从核心处理器中卸载出来,使其能够专注于其他任务。这种经济高效的方法使处理器的计算吞吐量增加了一倍以上。虽然本文侧重于音频应用,但内核和加速器是通用的,非常适合各种信号处理任务。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !