技术领域
本发明涉及系统芯片中先进高性能总线的数据传输,尤其涉及一种改 变DMA外围设备数据传输申请优先级的方法。
背景技术
传统的IC设计方法已无法适应新的SoC(System-on-a-chip,系统芯片) 设计要求,从以功能设计为
基础的传统IC设计流程转变到以功能整合为基 础的SoC设计全新流程。SoC是在单个芯片上集成一个完整的系统,可以 实现从确定系统功能开始,到软
硬件划分,并完成设计的整个过程。其中, AMBA(Advanced Microcontroller Bus Architecture,先进微
控制器总线体系 结构)规范是SoC的一种较为成熟的总线标准;其定义了AHB总线 (Advanced High-performance Bus,先进高性能总线)。
在AHB总线上,DMA(Direct Memory Access,直接内存存取)控制 器作为与ARM(Advanced RISC Machines)处理器并列的主器件出现。一 般主设备都包含一个用于完成
存储器直接存取的DMA控制器,以减少 ARM核(Core)的
数据处理压
力。ARM核通过从设备设定DMA控制器的 寄存器,包括起始地址、数据长度、数据读写使能和读写方向等。DMA控 制器通过AHB主设备
接口申请使用AHB总线、完成DMA
请求和响应接 口和存储器之间的DMA操作。完成操作后DMA控制器将产生中断通知 ARM核任务的完成情况。通道和控制逻辑完成相应的控制功能。在大多数 情况下,DMA控制器可以替代ARM处理器进行数据搬运(即数据传输) 工作,包括存储器到存储器、存储器到外围设备、外围设备到存储器以及 外围设备之间的数据搬运,从而保证ARM处理器在执行指令期间不介入到 具体的数据搬运工作中,从而提高ARM处理器的工作效率。外围设备包括 UART(异步串口)、SSP(同步串口)、摄像头接口、USB接口、I2S接口 等。
DMA控制器与外围设备之间连接的基本架构如图1所示,在DMA控 制器内部有N个通道,这些通道的作用都是完成DMA在存储器和外围设 备之间的数据的传输。这N个通道一般都是采用固定优先级的方式,比如 通道1优先级最高,通道2优先级次之,通道N优先级最低。需要通过DMA 控制器进行数据传输的外围设备通常情况下都有两组线与DMA控制器的 通道相连,一组是数据传输申请线(request),一组是传输结束标志线(ack)。 当需要进行数据传输时,外围设备发出数据传输申请
信号,即request信号 从0变成1,DMA控制器接收到request信号变化后,则开始进行数据传输; 当传输结束时,DMA控制器发出传输结束标志信号,即ack信号从0变成 1,外围设备接收到ack信号变化后,request信号从1变成0,停止数据传 输申请。当同时有多个request信号有效时,DMA控制器根据这些request 信号所连接的DMA通道的优先级来决定开始进行哪个通道的数据传输。
目前AHB总线上广泛应用的DMA控制器通道与外围设备申请线之间 的连接一般都是通过直连方式(直接连接方式),即外围设备1与通道1连 接,外围设备2与通道2连接,外围设备N与通道N连接,如图2所示。 这种方式也称为固定连接方式,即在逻辑设计过程中就已经将不同外围设 备的数据传输的优先级确定,比如通道1优先级>通道2优先级>...>通 道N优先级时,外围设备数据传输的优先级也确定为:外围设备1优先级> 外围设备2优先级>...>外围设备N优先级。这种方式设计不够灵活,系 统在使用DMA控制器进行存储器和外围设备之间数据传输时,有时需要灵 活地对外围设备的数据传输申请优先级进行配置,以便于提高系统的工作 效率。当系统对外围设备数据传输优先级的需求发生变化时,例如,当系 统需要提升对外围设备3的优先级时,这种固定连接方式不能满足系统的 需求,从而导致系统的工作效率降低。
因此,
现有技术存在
缺陷,需要改进。
发明内容
本发明的目的在于提供一种改变DMA外围设备数据传输申请优先级 的方法,用于灵活调整DMA外围设备进行数据传输的优先级。
本发明的技术方案如下:
一种改变DMA外围设备数据传输申请优先级的方法,其包括步骤: A1、设置各DMA通道的外围设备的连接控制寄存器;A2、为各连接控制 寄存器赋予优先连接值,用于对应不同优先级的所述外围设备;A3、在进 行数据传输时,根据通道固定优先级确定当前需要传输数据的DMA通道, 并且根据其优先连接值,连通所对应的外围设备,进行数据传输。
所述的方法,其中,步骤A1还包括初始化所述连接控制寄存器,为所 述连接控制寄存器赋予初始优先连接值。
所述的方法,其中,各初始优先连接值为直连方式下对应外围设备的 数据传输申请线号。
所述的方法,其中,步骤A2中赋予优先连接值的过程是,为某一DMA 通道的连接控制寄存器赋予不同于其初始优先连接值的优先连接值。
所述的方法,其中,步骤A2还包括:将两DMA通道的优先连接值互 置。
所述的方法,其中,步骤A2中赋予优先连接值的过程是:为全部所述 DMA通道的连接控制寄存器赋予优先连接值。
采用上述方案,本发明提供了一种改变DMA外围设备数据传输申请优 先级的方法,克服了外设数据传输申请信号固定连接的DMA控制器只能实 现固定优先级数据传输的缺点,采用动态改变外围设备数据传输申请线与 DMA控制器通道之间的连接的方式,从而当系统对外围设备数据传输优先 级的需求发生变化时,系统可以动态改变DMA外围设备数据传输申请优先 级,从而实现了采用DMA进行灵活的数据传输,提高了系统的工作效率。
附图说明
图1为现有技术的DMA控制器与外围设备连接的基本架构示意图;
图2为现有技术的DMA控制器与外围设备的固定连接方式示意图;
图3为本发明方法的DMA控制器与外围设备的连接方式示意图;
图4为本发明方法的
流程图。
具体实施方式
以下对本发明的较佳
实施例加以详细说明。
本发明提供了一种改变DMA外围设备数据传输申请优先级的方法,如 图4所示,其包括步骤:
A1、设置各DMA通道的外围设备的连接控制寄存器;连接控制寄存 器属于DMA控制器的寄存器组,在此不作赘述。此时,还可以包括初始化 步骤,即初始化所述连接控制寄存器,为所述连接控制寄存器赋予初始优 先连接值。
其中,所述初始优先连接值为数据传输申请线号,也可以是其他数值。 其中,如图2所示,所述数据传输申请线号可以为直连方式下对应外围设 备的数据传输申请线号,即:所述连接控制寄存器所在的所述通道,在直 连方式(即固定连接方式)下所对应的所述外围设备的数据传输申请线号。 所述初始优先连接值可以按数据传输申请线号顺序或逆序赋值,也可以赋 予相同的优先连接值,还可以随机赋值;一般情况下应避免两个或以上 DMA通道的优先连接值相同。
A2、为各连接控制寄存器赋予优先连接值,用于对应不同优先级的所 述外围设备。其中,无论步骤A1中是否进行了初始化操作,所述赋予优先 连接值,可以是为全部所述DMA通道的所述外围设备连接控制寄存器赋予 优先连接值,特别是,当没有对外围设备连接控制寄存器进行初始化时, 即没有为外围设备连接控制寄存器赋予初始优先连接值时。
其中,当已经完成对外围设备连接控制寄存器进行初始化时,所述赋 予优先连接值,可以是为某一DMA通道的连接控制寄存器赋予不同于其初 始优先连接值的优先连接值。此时,可以将两DMA通道的优先连接值互置, 即:将初始优先连接值为所述特定优先连接值的其他DMA通道,其优先连 接值设置为所述特定DMA通道的初始优先连接值;也可以将初始优先连接 值高于所述特定DMA通道的初始优先连接值的其他DMA通道,其优先连 接值依次递减;还可以不作任何变化。
A3、在进行数据传输时,根据通道固定优先级确定当前需要传输数据 的DMA通道,并且根据其优先连接值,连通所对应的外围设备,进行数据 传输。首先按照通道固定优先级确定当前轮到哪个DMA通道进行数据传 输,然后根据该通道的连接控制寄存器的优先连接值连通有效请求信号所 对应的外围设备,进行数据传输。当两个或以上DMA通道的优先连接值相 同时,可以按照通道号顺序优先执行DMA通道的数据传输,也可以按照通 道号逆序优先执行DMA通道的数据传输,还可以随机执行DMA通道的数 据传输;一般情况下可以避免两个或以上DMA通道的优先连接值相同;本 发明对此均不作额外限定。
所述优先级控制寄存器可以为2位(bit)、4位、6位、8位、16位等, 但不限于这些位数;该寄存器的位数是由DMA通道数来决定的,如果小于 8个通道,则是3位,如果是大于8个通道同时小于16个通道,则是4位, 以此类推。当所述外围设备连接控制寄存器位数较大时,可以支持较多的 DMA通道。
以下对本发明方法举出一具体例子,其具有下列步骤。
1、每个通道增加外围设备连接控制寄存器。外围设备连接控制寄存器: 该寄存器初值为直连方式时,与该通道相连接的外围设备数据传输申请线 号,如图2所示,即request1信号连接通道1,request2信号连接通道2,request N信号连接通道N。假设有8个通道,则该寄存器的初值如表1所示,为 通道1的连接控制寄存器1赋值1,为通道2的连接控制寄存器2赋值2......, 为通道8的连接控制寄存器8赋值8。当需要对外围设备数据传输申请的优 先级进行改变时,只需要对外围设备连接控制寄存器进行赋值,使外围设 备数据传输申请线与相应优先级的DMA通道相连接。经过改进后的外围设 备数据传输申请线与DMA通道的连接示意图如图3所示,每一外围设备连 接控制寄存器都可以控制DMA各通道与各外围设备的连通。
通道外围设备连接控制寄存器的初值配置可以如表1所示。
表1
通道号 优先级寄存器初值 外围设备数据传输申请线 1 0001 request1 2 0010 request2 3 0011 request3 4 0100 request4 5 0101 request5 6 0110 request6 7 0111 request7 8 1000 request8
2、给寄存器赋值,具体地说,如果需要request4的优先级最高,则可 将DMA通道1的外围设备连接控制寄存器的值配置为4。如果需要外围设 备N的request N的优先级最高,则可将通道1的外围设备连接控制寄存器 的值配置为N。比如有4个外围设备,系统希望外围设备3数据传输申请 的优先级>外围设备2数据传输申请的优先级>外围设备4数据传输申请 的优先级>外围设备1数据传输申请的优先级,则需要将DMA控制器的 通道1的外围设备连接控制寄存器配置为3,通道2的外围设备连接控制寄 存器配置为2,通道3的外围设备连接控制寄存器配置为4,通道4的外围 设备连接控制寄存器配置为1,此时的4个通道的外围设备连接控制寄存器 的值如表2所示。
表2
通道号 优先级寄存器配置值 外围设备数据传输申请线 1 0011 request3 2 0010 request2 3 0100 request4 4 0001 request1
3、DMA控制器开始搬运数据时,如果同时有多个request信号有效, DMA控制器根据这些request信号所连接的DMA通道的优先级来决定开始 进行哪个通道的数据传输,因为DMA通道采用的是固定优先级的方式,因 此与通道1相连接的外围设备数据传输优先级最高,与通道2相连接的外 围设备数据传输优先级次之,与通道N相连接的外围设备数据传输优先级 最低。
例如,当通道1的外围设备连接控制寄存器的值配置为7时,则表明 该外围设备7数据传输的优先级最高,DMA控制器首先发起通道1对于外 围设备7的数据传输。
例如,对应于表2所示的4通道来说,DMA控制器先进行外围设备3 的数据传输,然后进行外围设备2的数据传输,再进行外围设备4的数据 传输,最后进行外围设备1的数据传输。
通过上述动态改变DMA通道的外围设备连接控制寄存器的优先连接 值的方式,就可以达到动态改变DMA外围设备数据传输申请优先级的目 的。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以 改进或变换,而所有这些改进和变换都应属于本发明所附
权利要求的保护 范围。