專利名稱:一種改變dma外圍設(shè)備數(shù)據(jù)傳輸申請優(yōu)先級的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及系統(tǒng)芯片中先進高性能總線的數(shù)據(jù)傳輸,尤其涉及一種改變DMA外圍設(shè)備數(shù)據(jù)傳輸申請優(yōu)先級的方法。
背景技術(shù):
傳統(tǒng)的IC設(shè)計方法已無法適應(yīng)新的SoC(System-on-a-chip,系統(tǒng)芯片)設(shè)計要求,從以功能設(shè)計為基礎(chǔ)的傳統(tǒng)IC設(shè)計流程轉(zhuǎn)變到以功能整合為基礎(chǔ)的SoC設(shè)計全新流程。SoC是在單個芯片上集成一個完整的系統(tǒng),可以實現(xiàn)從確定系統(tǒng)功能開始,到軟硬件劃分,并完成設(shè)計的整個過程。其中,AMBA(Advanced Microcontroller Bus Architecture,先進微控制器總線體系結(jié)構(gòu))規(guī)范是SoC的一種較為成熟的總線標(biāo)準(zhǔn);其定義了AHB總線(Advanced High-performance Bus,先進高性能總線)。
在AHB總線上,DMA(Direct Memory Access,直接內(nèi)存存取)控制器作為與ARM(Advanced RISC Machines)處理器并列的主器件出現(xiàn)。一般主設(shè)備都包含一個用于完成存儲器直接存取的DMA控制器,以減少ARM核(Core)的數(shù)據(jù)處理壓力。ARM核通過從設(shè)備設(shè)定DMA控制器的寄存器,包括起始地址、數(shù)據(jù)長度、數(shù)據(jù)讀寫使能和讀寫方向等。DMA控制器通過AHB主設(shè)備接口申請使用AHB總線、完成DMA請求和響應(yīng)接口和存儲器之間的DMA操作。完成操作后DMA控制器將產(chǎn)生中斷通知ARM核任務(wù)的完成情況。通道和控制邏輯完成相應(yīng)的控制功能。在大多數(shù)情況下,DMA控制器可以替代ARM處理器進行數(shù)據(jù)搬運(即數(shù)據(jù)傳輸)工作,包括存儲器到存儲器、存儲器到外圍設(shè)備、外圍設(shè)備到存儲器以及外圍設(shè)備之間的數(shù)據(jù)搬運,從而保證ARM處理器在執(zhí)行指令期間不介入到具體的數(shù)據(jù)搬運工作中,從而提高ARM處理器的工作效率。外圍設(shè)備包括UART(異步串口)、SSP(同步串口)、攝像頭接口、USB接口、I2S接口等。
DMA控制器與外圍設(shè)備之間連接的基本架構(gòu)如圖1所示,在DMA控制器內(nèi)部有N個通道,這些通道的作用都是完成DMA在存儲器和外圍設(shè)備之間的數(shù)據(jù)的傳輸。這N個通道一般都是采用固定優(yōu)先級的方式,比如通道1優(yōu)先級最高,通道2優(yōu)先級次之,通道N優(yōu)先級最低。需要通過DMA控制器進行數(shù)據(jù)傳輸?shù)耐鈬O(shè)備通常情況下都有兩組線與DMA控制器的通道相連,一組是數(shù)據(jù)傳輸申請線(request),一組是傳輸結(jié)束標(biāo)志線(ack)。當(dāng)需要進行數(shù)據(jù)傳輸時,外圍設(shè)備發(fā)出數(shù)據(jù)傳輸申請信號,即request信號從0變成1,DMA控制器接收到request信號變化后,則開始進行數(shù)據(jù)傳輸;當(dāng)傳輸結(jié)束時,DMA控制器發(fā)出傳輸結(jié)束標(biāo)志信號,即ack信號從0變成1,外圍設(shè)備接收到ack信號變化后,request信號從1變成0,停止數(shù)據(jù)傳輸申請。當(dāng)同時有多個request信號有效時,DMA控制器根據(jù)這些request信號所連接的DMA通道的優(yōu)先級來決定開始進行哪個通道的數(shù)據(jù)傳輸。
目前AHB總線上廣泛應(yīng)用的DMA控制器通道與外圍設(shè)備申請線之間的連接一般都是通過直連方式(直接連接方式),即外圍設(shè)備1與通道1連接,外圍設(shè)備2與通道2連接,外圍設(shè)備N與通道N連接,如圖2所示。這種方式也稱為固定連接方式,即在邏輯設(shè)計過程中就已經(jīng)將不同外圍設(shè)備的數(shù)據(jù)傳輸?shù)膬?yōu)先級確定,比如通道1優(yōu)先級>通道2優(yōu)先級>...>通道N優(yōu)先級時,外圍設(shè)備數(shù)據(jù)傳輸?shù)膬?yōu)先級也確定為外圍設(shè)備1優(yōu)先級>外圍設(shè)備2優(yōu)先級>...>外圍設(shè)備N優(yōu)先級。這種方式設(shè)計不夠靈活,系統(tǒng)在使用DMA控制器進行存儲器和外圍設(shè)備之間數(shù)據(jù)傳輸時,有時需要靈活地對外圍設(shè)備的數(shù)據(jù)傳輸申請優(yōu)先級進行配置,以便于提高系統(tǒng)的工作效率。當(dāng)系統(tǒng)對外圍設(shè)備數(shù)據(jù)傳輸優(yōu)先級的需求發(fā)生變化時,例如,當(dāng)系統(tǒng)需要提升對外圍設(shè)備3的優(yōu)先級時,這種固定連接方式不能滿足系統(tǒng)的需求,從而導(dǎo)致系統(tǒng)的工作效率降低。
因此,現(xiàn)有技術(shù)存在缺陷,需要改進。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種改變DMA外圍設(shè)備數(shù)據(jù)傳輸申請優(yōu)先級的方法,用于靈活調(diào)整DMA外圍設(shè)備進行數(shù)據(jù)傳輸?shù)膬?yōu)先級。
本發(fā)明的技術(shù)方案如下一種改變DMA外圍設(shè)備數(shù)據(jù)傳輸申請優(yōu)先級的方法,其包括步驟A1、設(shè)置各DMA通道的外圍設(shè)備的連接控制寄存器;A2、為各連接控制寄存器賦予優(yōu)先連接值,用于對應(yīng)不同優(yōu)先級的所述外圍設(shè)備;A3、在進行數(shù)據(jù)傳輸時,根據(jù)通道固定優(yōu)先級確定當(dāng)前需要傳輸數(shù)據(jù)的DMA通道,并且根據(jù)其優(yōu)先連接值,連通所對應(yīng)的外圍設(shè)備,進行數(shù)據(jù)傳輸。
所述的方法,其中,步驟A1還包括初始化所述連接控制寄存器,為所述連接控制寄存器賦予初始優(yōu)先連接值。
所述的方法,其中,各初始優(yōu)先連接值為直連方式下對應(yīng)外圍設(shè)備的數(shù)據(jù)傳輸申請線號。
所述的方法,其中,步驟A2中賦予優(yōu)先連接值的過程是,為某一DMA通道的連接控制寄存器賦予不同于其初始優(yōu)先連接值的優(yōu)先連接值。
所述的方法,其中,步驟A2還包括將兩DMA通道的優(yōu)先連接值互置。
所述的方法,其中,步驟A2中賦予優(yōu)先連接值的過程是為全部所述DMA通道的連接控制寄存器賦予優(yōu)先連接值。
采用上述方案,本發(fā)明提供了一種改變DMA外圍設(shè)備數(shù)據(jù)傳輸申請優(yōu)先級的方法,克服了外設(shè)數(shù)據(jù)傳輸申請信號固定連接的DMA控制器只能實現(xiàn)固定優(yōu)先級數(shù)據(jù)傳輸?shù)娜秉c,采用動態(tài)改變外圍設(shè)備數(shù)據(jù)傳輸申請線與DMA控制器通道之間的連接的方式,從而當(dāng)系統(tǒng)對外圍設(shè)備數(shù)據(jù)傳輸優(yōu)先級的需求發(fā)生變化時,系統(tǒng)可以動態(tài)改變DMA外圍設(shè)備數(shù)據(jù)傳輸申請優(yōu)先級,從而實現(xiàn)了采用DMA進行靈活的數(shù)據(jù)傳輸,提高了系統(tǒng)的工作效率。
圖1為現(xiàn)有技術(shù)的DMA控制器與外圍設(shè)備連接的基本架構(gòu)示意圖;圖2為現(xiàn)有技術(shù)的DMA控制器與外圍設(shè)備的固定連接方式示意圖;圖3為本發(fā)明方法的DMA控制器與外圍設(shè)備的連接方式示意圖;圖4為本發(fā)明方法的流程圖。
具體實施例方式
以下對本發(fā)明的較佳實施例加以詳細說明。
本發(fā)明提供了一種改變DMA外圍設(shè)備數(shù)據(jù)傳輸申請優(yōu)先級的方法,如圖4所示,其包括步驟A1、設(shè)置各DMA通道的外圍設(shè)備的連接控制寄存器;連接控制寄存器屬于DMA控制器的寄存器組,在此不作贅述。此時,還可以包括初始化步驟,即初始化所述連接控制寄存器,為所述連接控制寄存器賦予初始優(yōu)先連接值。
其中,所述初始優(yōu)先連接值為數(shù)據(jù)傳輸申請線號,也可以是其他數(shù)值。其中,如圖2所示,所述數(shù)據(jù)傳輸申請線號可以為直連方式下對應(yīng)外圍設(shè)備的數(shù)據(jù)傳輸申請線號,即所述連接控制寄存器所在的所述通道,在直連方式(即固定連接方式)下所對應(yīng)的所述外圍設(shè)備的數(shù)據(jù)傳輸申請線號。所述初始優(yōu)先連接值可以按數(shù)據(jù)傳輸申請線號順序或逆序賦值,也可以賦予相同的優(yōu)先連接值,還可以隨機賦值;一般情況下應(yīng)避免兩個或以上DMA通道的優(yōu)先連接值相同。
A2、為各連接控制寄存器賦予優(yōu)先連接值,用于對應(yīng)不同優(yōu)先級的所述外圍設(shè)備。其中,無論步驟A1中是否進行了初始化操作,所述賦予優(yōu)先連接值,可以是為全部所述DMA通道的所述外圍設(shè)備連接控制寄存器賦予優(yōu)先連接值,特別是,當(dāng)沒有對外圍設(shè)備連接控制寄存器進行初始化時,即沒有為外圍設(shè)備連接控制寄存器賦予初始優(yōu)先連接值時。
其中,當(dāng)已經(jīng)完成對外圍設(shè)備連接控制寄存器進行初始化時,所述賦予優(yōu)先連接值,可以是為某一DMA通道的連接控制寄存器賦予不同于其初始優(yōu)先連接值的優(yōu)先連接值。此時,可以將兩DMA通道的優(yōu)先連接值互置,即將初始優(yōu)先連接值為所述特定優(yōu)先連接值的其他DMA通道,其優(yōu)先連接值設(shè)置為所述特定DMA通道的初始優(yōu)先連接值;也可以將初始優(yōu)先連接值高于所述特定DMA通道的初始優(yōu)先連接值的其他DMA通道,其優(yōu)先連接值依次遞減;還可以不作任何變化。
A3、在進行數(shù)據(jù)傳輸時,根據(jù)通道固定優(yōu)先級確定當(dāng)前需要傳輸數(shù)據(jù)的DMA通道,并且根據(jù)其優(yōu)先連接值,連通所對應(yīng)的外圍設(shè)備,進行數(shù)據(jù)傳輸。首先按照通道固定優(yōu)先級確定當(dāng)前輪到哪個DMA通道進行數(shù)據(jù)傳輸,然后根據(jù)該通道的連接控制寄存器的優(yōu)先連接值連通有效請求信號所對應(yīng)的外圍設(shè)備,進行數(shù)據(jù)傳輸。當(dāng)兩個或以上DMA通道的優(yōu)先連接值相同時,可以按照通道號順序優(yōu)先執(zhí)行DMA通道的數(shù)據(jù)傳輸,也可以按照通道號逆序優(yōu)先執(zhí)行DMA通道的數(shù)據(jù)傳輸,還可以隨機執(zhí)行DMA通道的數(shù)據(jù)傳輸;一般情況下可以避免兩個或以上DMA通道的優(yōu)先連接值相同;本發(fā)明對此均不作額外限定。
所述優(yōu)先級控制寄存器可以為2位(bit)、4位、6位、8位、16位等,但不限于這些位數(shù);該寄存器的位數(shù)是由DMA通道數(shù)來決定的,如果小于8個通道,則是3位,如果是大于8個通道同時小于16個通道,則是4位,以此類推。當(dāng)所述外圍設(shè)備連接控制寄存器位數(shù)較大時,可以支持較多的DMA通道。
以下對本發(fā)明方法舉出一具體例子,其具有下列步驟。
1、每個通道增加外圍設(shè)備連接控制寄存器。外圍設(shè)備連接控制寄存器該寄存器初值為直連方式時,與該通道相連接的外圍設(shè)備數(shù)據(jù)傳輸申請線號,如圖2所示,即request1信號連接通道1,request2信號連接通道2,requestN信號連接通道N。假設(shè)有8個通道,則該寄存器的初值如表1所示,為通道1的連接控制寄存器1賦值1,為通道2的連接控制寄存器2賦值2......,為通道8的連接控制寄存器8賦值8。當(dāng)需要對外圍設(shè)備數(shù)據(jù)傳輸申請的優(yōu)先級進行改變時,只需要對外圍設(shè)備連接控制寄存器進行賦值,使外圍設(shè)備數(shù)據(jù)傳輸申請線與相應(yīng)優(yōu)先級的DMA通道相連接。經(jīng)過改進后的外圍設(shè)備數(shù)據(jù)傳輸申請線與DMA通道的連接示意圖如圖3所示,每一外圍設(shè)備連接控制寄存器都可以控制DMA各通道與各外圍設(shè)備的連通。
通道外圍設(shè)備連接控制寄存器的初值配置可以如表1所示。
表1
2、給寄存器賦值,具體地說,如果需要request4的優(yōu)先級最高,則可將DMA通道1的外圍設(shè)備連接控制寄存器的值配置為4。如果需要外圍設(shè)備N的request N的優(yōu)先級最高,則可將通道1的外圍設(shè)備連接控制寄存器的值配置為N。比如有4個外圍設(shè)備,系統(tǒng)希望外圍設(shè)備3數(shù)據(jù)傳輸申請的優(yōu)先級>外圍設(shè)備2數(shù)據(jù)傳輸申請的優(yōu)先級>外圍設(shè)備4數(shù)據(jù)傳輸申請的優(yōu)先級>外圍設(shè)備1數(shù)據(jù)傳輸申請的優(yōu)先級,則需要將DMA控制器的通道1的外圍設(shè)備連接控制寄存器配置為3,通道2的外圍設(shè)備連接控制寄存器配置為2,通道3的外圍設(shè)備連接控制寄存器配置為4,通道4的外圍設(shè)備連接控制寄存器配置為1,此時的4個通道的外圍設(shè)備連接控制寄存器的值如表2所示。
表2
3、DMA控制器開始搬運數(shù)據(jù)時,如果同時有多個request信號有效,DMA控制器根據(jù)這些request信號所連接的DMA通道的優(yōu)先級來決定開始進行哪個通道的數(shù)據(jù)傳輸,因為DMA通道采用的是固定優(yōu)先級的方式,因此與通道1相連接的外圍設(shè)備數(shù)據(jù)傳輸優(yōu)先級最高,與通道2相連接的外圍設(shè)備數(shù)據(jù)傳輸優(yōu)先級次之,與通道N相連接的外圍設(shè)備數(shù)據(jù)傳輸優(yōu)先級最低。
例如,當(dāng)通道1的外圍設(shè)備連接控制寄存器的值配置為7時,則表明該外圍設(shè)備7數(shù)據(jù)傳輸?shù)膬?yōu)先級最高,DMA控制器首先發(fā)起通道1對于外圍設(shè)備7的數(shù)據(jù)傳輸。
例如,對應(yīng)于表2所示的4通道來說,DMA控制器先進行外圍設(shè)備3的數(shù)據(jù)傳輸,然后進行外圍設(shè)備2的數(shù)據(jù)傳輸,再進行外圍設(shè)備4的數(shù)據(jù)傳輸,最后進行外圍設(shè)備1的數(shù)據(jù)傳輸。
通過上述動態(tài)改變DMA通道的外圍設(shè)備連接控制寄存器的優(yōu)先連接值的方式,就可以達到動態(tài)改變DMA外圍設(shè)備數(shù)據(jù)傳輸申請優(yōu)先級的目的。
應(yīng)當(dāng)理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進或變換,而所有這些改進和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護范圍。
權(quán)利要求
1.一種改變DMA外圍設(shè)備數(shù)據(jù)傳輸申請優(yōu)先級的方法,其包括步驟A1、設(shè)置各DMA通道的外圍設(shè)備的連接控制寄存器;A2、為各連接控制寄存器賦予優(yōu)先連接值,用于對應(yīng)不同優(yōu)先級的所述外圍設(shè)備;A3、在進行數(shù)據(jù)傳輸時,根據(jù)通道固定優(yōu)先級確定當(dāng)前需要傳輸數(shù)據(jù)的DMA通道,并且根據(jù)其優(yōu)先連接值,連通所對應(yīng)的外圍設(shè)備,進行數(shù)據(jù)傳輸。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A1還包括初始化所述連接控制寄存器,為所述連接控制寄存器賦予初始優(yōu)先連接值。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,各初始優(yōu)先連接值為直連方式下對應(yīng)外圍設(shè)備的數(shù)據(jù)傳輸申請線號。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟A2中賦予優(yōu)先連接值的過程是為全部所述DMA通道的連接控制寄存器賦予優(yōu)先連接值。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟A2中賦予優(yōu)先連接值的過程是,為某一DMA通道的連接控制寄存器賦予不同于其初始優(yōu)先連接值的優(yōu)先連接值。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟A2還包括將兩DMA通道的優(yōu)先連接值互置。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A2中賦予優(yōu)先連接值的過程是為全部所述DMA通道的連接控制寄存器賦予優(yōu)先連接值。
全文摘要
本發(fā)明提供了一種改變DMA外圍設(shè)備數(shù)據(jù)傳輸申請優(yōu)先級的方法,其包括步驟A1、設(shè)置各DMA通道的外圍設(shè)備的連接控制寄存器;A2、為各連接控制寄存器賦予優(yōu)先連接值,用于對應(yīng)不同優(yōu)先級的所述外圍設(shè)備;A3、在進行數(shù)據(jù)傳輸時,根據(jù)通道固定優(yōu)先級確定當(dāng)前需要傳輸數(shù)據(jù)的DMA通道,并且根據(jù)其優(yōu)先連接值,連通所對應(yīng)的外圍設(shè)備,進行數(shù)據(jù)傳輸。采用上述方案,本發(fā)明克服了外設(shè)數(shù)據(jù)傳輸申請信號固定連接的DMA控制器只能實現(xiàn)固定優(yōu)先級數(shù)據(jù)傳輸?shù)娜秉c,當(dāng)系統(tǒng)對外圍設(shè)備數(shù)據(jù)傳輸優(yōu)先級的需求發(fā)生變化時,可以動態(tài)改變DMA外圍設(shè)備數(shù)據(jù)傳輸申請優(yōu)先級,從而實現(xiàn)了靈活的數(shù)據(jù)傳輸,提高了系統(tǒng)的工作效率。
文檔編號G06F13/30GK101025723SQ20071007370
公開日2007年8月29日 申請日期2007年3月27日 優(yōu)先權(quán)日2007年3月27日
發(fā)明者汪堅 申請人:中興通訊股份有限公司