嵌入式音频处理器中DMA控制器的设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中图分类号:TP332文献标识码:A文章编号:1009-2552(2011)03-0042-05

嵌入式音频处理器中DMA控制器的设计

王俊,应忍冬

(上海交通大学电子工程系,上海200240)

摘要:高性能的DMA控制器是音视频等多媒体处理器的重要组成部分。通过分析DMA控制器在嵌入式音频处理HiPAP中担负的数据传输任务及数据特点,设计了面向AMBA AHB总线的双通道高性能的DMA控制器。在FPGA平台上的实际运行结果显示,该DMA控制器的数据传输性能比使用CPU至少提升了45%。

关键词:DMA;控制器;AHB

Design of DMA controller in embedded audio processor

WANG Jun,YING Ren-dong

(Department of Electronic Engineering,Shanghai Jiaotong University,Shanghai200240,China) Abstract:High-performance DMA controller is the key component in multimedia processor.After the analysis for data transfer in embedded audio processor HiPAP,an AHB supported2-channel audio DMA controller is proposed in this paper.Compared with CPU,the performance of data transfer is improved by up to45%on FPGA platform.

Key words:DMA;controller;AHB

0引言

对于多媒体处理而言,使用ASIC(Application Specific Integrated Circuit)编解码IP(Intellectual Property)能够高速同时低功耗地完成编解码任务,但是它们不能被修改,当音视频标准或者协议升级时,必须开发新的IP。而使用配备专用加速指令的音视频处理器,则只需要更新固件就可以完成新的任务,由于这些处理器有着很好的灵活性,因此发展非常迅速[1]。近年来,各大公司都推出了针对音频编解码的音频处理器,比如,Tensilica公司的DIA-MOND330HiFi以及ARM公司的AudioDE等。

随着处理器性能的提高,系统各模块间的数据交换成为提高系统运行速度的瓶颈[2]。使用DMA (Direct Memory Access)方式能够有效代替CPU的load/store指令。在DMA方式下,CPU只需要在数据传输之前对DMA控制器(Direct Memory Access Controller)进行少量的初始化操作,之后CPU就无需介入数据传输过程,可以和DMA并发的工作。这样,CPU的利用率得到了大幅提升[3]。

面对嵌入式音频处理器的数据传输需求,传统的通用DMA控制器并不能很好的满足。本文介绍了音频处理器HiPAP(High Performance Audio Pro-cessor)中双通道音频DMA控制器的设计与实现。1系统架构与数据传输需求

1.1音频处理器的数据传输需求

在一个包含音频处理器芯片的SoC系统中,音频处理器负责诸如编解码之类的音频处理。除此之外,系统一般还拥有负责全局控制的主处理器,通用DMA控制器和存储器等的各种外设以及连接所有模块的总线。在音频处理器的运行过程中,涉及处理器控制的数据传输可按照其特点分为两类:第一类,大数据量、较低实时性的传输。这包括在音频处理器处理前将原始码流载入音频处理器的本地存储器内,以及在处理完成后将输出数据传输至主存或者音频DAC。

收稿日期:2010-09-16

作者简介:王俊(1985-),男,硕士研究生,主要研究方向为集成电路芯片设计与验证。

24

第二类,小数据量、较高实时性的传输。这包括在音频处理器处理过程中所需的运算系数、查找表数据等。

通用DMA 控制器一般采用命令链表的操作方式,即将任务链表存放在存储器中,DMA 从存储器中读取任务链表的内容完成相应的操作。这种方式能有效减少处理器的配置,整合零散的数据传输,但是同时会增加访存数量造成额外的总线负担,并且如果在处理过程中需要载入运算所需的查找表数据时,配置通用DMA 的时间比较长,这会降低音频处理器的实时性。故而使用通用DMA 控制器并不能最好的满足音频处理器的需求。1.2

系统架构

根据上一节的讨论,为了满足音频处理器数据传输的需求,同时避免通用DMA 控制器的额外开销,一种比较合理的应对方式是在音频处理器中增加专用的DMA 控制器。这个专用的控制器能被音频处理器通过片内总线快速地进行配置以保证实时性,同时其架构和传输方式应该满足音频处理器的数据传输需求。如果系统还存在通用DMA 控制器的话,这两个DMA 控制器可以并行运行。专用DMA 控制器可以对主处理器透明,减少主处理器的负担。举例来说,在音频处理器解码若干帧码流后,通用DMA 控制器可以在主处理器的控制下向音频处理器传输后续的码流,而专用DMA 控制器则可以在音频处理器的控制下将解码后的数据放入DAC ,这样能进一步提高效率。图1给出了包含音频处理器HiPAP 的系统架构图

图1系统架构图

整个系统由位宽为32bit 的AHB Bus Matrix 进行连接。音频处理器HiPAP 中RISC 处理器可以通过MMU (Memory Management Unit )来控制专用音频DMA 控制器ADMAC (Audio DMA Controller )。AD-

MAC 拥有总线的主设备(master )接口,可以通过AHB 总线将数据载入HiPAP 双通道的本地存储器,或者将数据从本地存储器中搬出。

2音频DMA 控制器的设计

音频DMA 控制器ADMAC 的内部结构如图2

所示。ADMAC 内部分为两个模块:寄存器模块和传输模块。为了满足音频处理器的数据传输需求,ADMAC 采用双通道的结构,每个通道拥有不同的优先级

图2ADMAC 结构图

2.1ADMAC 寄存器模块

ADMAC 的寄存器模块负责维护寄存器以完成

对ADMAC 的控制和参数配置。寄存器模块通过Wishbone 片内总线与MMU 相连,其中的每一个寄存器对于RISC 处理器而言都拥有唯一的地址空间。RISC 处理器在配置ADMAC 时,只需要对某些地址进行Store 操作,

MMU 能够检测这些地址是否属于ADMAC 而对其进行相应写操作。反之,RISC 可以通过Load 操作读出相应寄存器的值。2.1.1

寄存器的描述

在寄存器模块中一共有4类寄存器:4个地址寄存器、

2个配置寄存器、2个控制寄存器、1个状态寄存器。通过读写这些寄存器可以配置DMA 传输的源地址、目的地址、传输长度、尺寸、寻址方式,以及控制何时发起传输和最终查询传输结果。具体的寄存器描述如下。

(1)地址寄存器:包括SRCADDR0(通道0源地址寄存器),DESTADDR0(通道0目的地址寄存器),SRCADDR1(通道1源地址寄存器)和DES-TADDR1(通道1目的地址寄存器)。这4个寄存器都是32bit ,可以读写。对于这些寄存器进行写入操作,可以配置DMA 传输的源地址和目的地址。

(2)配置寄存器:包括CONFIG0(通道0配置寄存器)和CONFIG1(通道1配置寄存器),用以配置通道0和通道1。这两个寄存器可以读写,各为32bit 。如表1所示,b [0]为BM (Blocking Mode )

34—

相关文档
最新文档