一种改变dma外围设备数据传输申请优先级的方法

文档序号:6573716阅读:298来源:国知局
专利名称:一种改变dma外围设备数据传输申请优先级的方法
技术领域
本发明涉及系统芯片中先进高性能总线的数据传输,尤其涉及一种改变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,requestN信号连接通道N。假设有8个通道,则该寄存器的初值如表1所示,为通道1的连接控制寄存器1赋值1,为通道2的连接控制寄存器2赋值2......,为通道8的连接控制寄存器8赋值8。当需要对外围设备数据传输申请的优先级进行改变时,只需要对外围设备连接控制寄存器进行赋值,使外围设备数据传输申请线与相应优先级的DMA通道相连接。经过改进后的外围设备数据传输申请线与DMA通道的连接示意图如图3所示,每一外围设备连接控制寄存器都可以控制DMA各通道与各外围设备的连通。
通道外围设备连接控制寄存器的初值配置可以如表1所示。
表1

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

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外围设备数据传输申请优先级的目的。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
权利要求
1.一种改变DMA外围设备数据传输申请优先级的方法,其包括步骤A1、设置各DMA通道的外围设备的连接控制寄存器;A2、为各连接控制寄存器赋予优先连接值,用于对应不同优先级的所述外围设备;A3、在进行数据传输时,根据通道固定优先级确定当前需要传输数据的DMA通道,并且根据其优先连接值,连通所对应的外围设备,进行数据传输。
2.根据权利要求1所述的方法,其特征在于,步骤A1还包括初始化所述连接控制寄存器,为所述连接控制寄存器赋予初始优先连接值。
3.根据权利要求2所述的方法,其特征在于,各初始优先连接值为直连方式下对应外围设备的数据传输申请线号。
4.根据权利要求2所述的方法,其特征在于,步骤A2中赋予优先连接值的过程是为全部所述DMA通道的连接控制寄存器赋予优先连接值。
5.根据权利要求2所述的方法,其特征在于,步骤A2中赋予优先连接值的过程是,为某一DMA通道的连接控制寄存器赋予不同于其初始优先连接值的优先连接值。
6.根据权利要求5所述的方法,其特征在于,步骤A2还包括将两DMA通道的优先连接值互置。
7.根据权利要求1所述的方法,其特征在于,步骤A2中赋予优先连接值的过程是为全部所述DMA通道的连接控制寄存器赋予优先连接值。
全文摘要
本发明提供了一种改变DMA外围设备数据传输申请优先级的方法,其包括步骤A1、设置各DMA通道的外围设备的连接控制寄存器;A2、为各连接控制寄存器赋予优先连接值,用于对应不同优先级的所述外围设备;A3、在进行数据传输时,根据通道固定优先级确定当前需要传输数据的DMA通道,并且根据其优先连接值,连通所对应的外围设备,进行数据传输。采用上述方案,本发明克服了外设数据传输申请信号固定连接的DMA控制器只能实现固定优先级数据传输的缺点,当系统对外围设备数据传输优先级的需求发生变化时,可以动态改变DMA外围设备数据传输申请优先级,从而实现了灵活的数据传输,提高了系统的工作效率。
文档编号G06F13/30GK101025723SQ20071007370
公开日2007年8月29日 申请日期2007年3月27日 优先权日2007年3月27日
发明者汪坚 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1