Dma控制器、移動終端以及數(shù)據(jù)搬運(yùn)方法
【專利摘要】本發(fā)明提供了一種DMA控制器、配置有該DMA控制器的移動終端以及基于該DMA控制器的數(shù)據(jù)搬運(yùn)方法,該DMA控制器包括:配置接口,與外部的系統(tǒng)總線相連,用于配置DMA控制器的指令區(qū)地址和數(shù)據(jù)區(qū)地址,其中,指令區(qū)為存儲在系統(tǒng)內(nèi)存中的一段預(yù)先編程的微程序;處理引擎,與配置接口相連,用于根據(jù)指令區(qū)地址和數(shù)據(jù)區(qū)地址解釋執(zhí)行微程序。在本發(fā)明中,通過可編程的微程序來配置DMA控制器的執(zhí)行,從而可實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)搬運(yùn),同時(shí)降低DMA控制器中斷對主處理器的影響,達(dá)到了提高系統(tǒng)效率的效果。
【專利說明】DMA控制器、移動終端以及數(shù)據(jù)搬運(yùn)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及IC設(shè)計(jì)領(lǐng)域,具體而言,涉及一種DM控制器、配置有該DM控制器的 移動終端以及基于該DM控制器的數(shù)據(jù)搬運(yùn)方法。
【背景技術(shù)】
[0002] 隨著移動終端設(shè)備技術(shù)發(fā)展,終端對系統(tǒng)功耗要求越來越嚴(yán)苛,而對數(shù)據(jù)處理性 能要求越來越高。對于處理器技術(shù)而言,高性能意味著高功耗。各家處理器設(shè)備廠商在功 耗和性能間不斷進(jìn)行優(yōu)化設(shè)計(jì),最終選擇一種相對平衡的折中方案。這種嚴(yán)格要求,也推動 了 IC設(shè)計(jì)技術(shù)的發(fā)展。
[0003] 在當(dāng)前的處理器系統(tǒng)架構(gòu)中,增加了 DMA控制器用來輔助主處理器完成數(shù)據(jù)搬運(yùn) 和處理工作。在移動設(shè)備中,DMA控制器占據(jù)了數(shù)據(jù)處理的很大比重,具有很大的應(yīng)用需求。 DM控制器主要工作是搬運(yùn)數(shù)據(jù),涉及內(nèi)存與內(nèi)存間數(shù)據(jù)搬運(yùn)、內(nèi)存和設(shè)備間數(shù)據(jù)搬運(yùn),以 及某些控制器提供的設(shè)備與設(shè)備間的數(shù)據(jù)搬運(yùn)。DM控制器的加入,解放了主處理器的數(shù)據(jù) 搬運(yùn)束縛。同時(shí)DM控制器專注于數(shù)據(jù)搬運(yùn),與通用處理器相比具有較高的性能,也有很低 的功耗表現(xiàn)。
[0004] 但是,隨著移動終端設(shè)備越來越豐富,以及對數(shù)據(jù)處理的需求越來越復(fù)雜,對主處 理器的性能要求越來越高,而帶來的功耗也越來越高。如何降低主處理器的處理時(shí)間,盡快 讓主處理器進(jìn)入睡眠狀態(tài),成為降低系統(tǒng)功耗的有效手段?,F(xiàn)在的DM控制器雖提高了系 統(tǒng)性能,但頻繁的DMA中斷處理仍然需要主處理器響應(yīng),對系統(tǒng)的性能和功耗有較大影響。
[0005] 針對相關(guān)技術(shù)中所存在的上述問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明提供了一種DM控制器、配置有該DM控制器的移動終端以及基于該DM 控制器的數(shù)據(jù)搬運(yùn)方法,以解決上述現(xiàn)有DMA控制需要頻繁向主處理器上報(bào)中斷,影響系 統(tǒng)性能和功耗的問題。
[0007] 根據(jù)本發(fā)明的一個(gè)方面,提供了一種DM控制器,該DM控制器包括:配置接口,與 外部的系統(tǒng)總線相連,用于配置DM控制器的指令區(qū)地址和數(shù)據(jù)區(qū)地址,其中,指令區(qū)為存 儲在系統(tǒng)內(nèi)存中的一段預(yù)先編程的微程序;處理引擎,與配置接口相連,用于根據(jù)指令區(qū)地 址和數(shù)據(jù)區(qū)地址解釋執(zhí)行微程序。
[0008] 優(yōu)選地,DMA控制器還包括:DMA通道,與處理引擎相連,用于所需搬運(yùn)數(shù)據(jù)的傳 輸;中斷接口,與處理引擎相連,用于向主處理器上報(bào)中斷;內(nèi)部總線,與外部的系統(tǒng)總線 相連,用于處理引擎對系統(tǒng)內(nèi)存和外部設(shè)備的訪問。
[0009] 優(yōu)選地,微程序?yàn)榭芍貜?fù)編程的指令段,可存儲于系統(tǒng)內(nèi)存的任意位置。
[0010] 優(yōu)選地,處理引擎為多個(gè),每個(gè)處理引擎具有獨(dú)立對應(yīng)的配置接口和DMA通道。
[0011] 優(yōu)選地,DM控制器還包括:源地址寄存器、目的地址寄存器、數(shù)據(jù)搬運(yùn)長度寄存 器。
[0012] 根據(jù)本發(fā)明的另一方面,提供了一種基于該DM控制器的數(shù)據(jù)搬運(yùn)方法,包括:主 處理器配置DM控制器的指令區(qū)地址和數(shù)據(jù)區(qū)地址,其中,指令區(qū)為存儲在系統(tǒng)內(nèi)存中的 一段預(yù)先編程的微程序;DM控制器根據(jù)指令區(qū)地址和數(shù)據(jù)區(qū)地址解釋執(zhí)行微程序,以進(jìn) 行數(shù)據(jù)的搬運(yùn)。
[0013] 優(yōu)選地,微程序?yàn)榭芍貜?fù)編程的指令段,可存儲于系統(tǒng)內(nèi)存的任意位置。
[0014] 優(yōu)選地,主處理器配置DM控制器的指令區(qū)地址和數(shù)據(jù)區(qū)地址之前,還包括:主處 理器接收DMA請求,并選擇相應(yīng)的微程序。
[0015] 優(yōu)選地,主處理器配置DMA控制器的指令區(qū)地址和數(shù)據(jù)區(qū)地址,包括:主處理器根 據(jù)DM請求配置微程序?qū)?yīng)的數(shù)據(jù)區(qū);主處理器將數(shù)據(jù)區(qū)和微程序的內(nèi)存地址配置給DM 控制器的相應(yīng)通道,并啟動DM控制器。
[0016] 根據(jù)本發(fā)明的再一方面,提供了一種移動終端,包括前文的DM控制器。
[0017] 在本發(fā)明實(shí)施例中,通過可編程的微程序來配置DM控制器的執(zhí)行,從而可實(shí)現(xiàn) 復(fù)雜的數(shù)據(jù)搬運(yùn),同時(shí)降低DM控制器中斷對主處理器的影響,達(dá)到了提高系統(tǒng)效率的效 果。
【專利附圖】
【附圖說明】
[0018] 此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā) 明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0019] 圖1是根據(jù)本發(fā)明實(shí)施例的DM控制器結(jié)構(gòu)示意圖;
[0020] 圖2是根據(jù)本發(fā)明實(shí)施例一的DM控制器內(nèi)部結(jié)構(gòu)示意圖;
[0021] 圖3是根據(jù)本發(fā)明實(shí)施例一的DM控制器配置流程圖;
[0022] 圖4是根據(jù)相關(guān)技術(shù)的DM接收數(shù)據(jù)流程圖;
[0023] 圖5是根據(jù)本發(fā)明實(shí)施例二的USB緩沖區(qū)管理示意圖;
[0024] 圖6是根據(jù)本發(fā)明實(shí)施例二的DM接收數(shù)據(jù)流程圖。
【具體實(shí)施方式】
[0025] 下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的 情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0026] 圖1是根據(jù)本發(fā)明實(shí)施例的DM控制器結(jié)構(gòu)示意圖。如圖1所示,該DM控制器包 括:配置接口 10和處理引擎20。配置接口 10與外部的系統(tǒng)總線相連,用于配置DMA控制器 的指令區(qū)地址和數(shù)據(jù)區(qū)地址,其中,指令區(qū)為存儲在系統(tǒng)內(nèi)存中的一段預(yù)先編程的微程序。 處理引擎20與配置接口相連,用于根據(jù)指令區(qū)地址和數(shù)據(jù)區(qū)地址解釋執(zhí)行微程序。
[0027] 在本實(shí)施例中,通過可編程的微程序來配置DM控制器的執(zhí)行,從而可實(shí)現(xiàn)復(fù)雜 的數(shù)據(jù)搬運(yùn),同時(shí)降低DM控制器中斷對主處理器的影響,達(dá)到了提高系統(tǒng)效率的效果。
[0028] 其中,微程序?yàn)榭芍貜?fù)編程的指令段,可存儲于系統(tǒng)內(nèi)存的任意位置。
[0029] 其中,DMA控制器還包括:DMA通道,與處理引擎相連,用于所需搬運(yùn)數(shù)據(jù)的傳輸; 中斷接口,與處理引擎相連,用于向主處理器上報(bào)中斷;內(nèi)部總線,與外部的系統(tǒng)總線相連, 用于處理引擎對系統(tǒng)內(nèi)存和外部設(shè)備的訪問。
[0030] 其中,處理引擎為多個(gè),每個(gè)處理引擎具有獨(dú)立的配置接口和DMA。
[0031] 其中,DM控制器還包括:源地址寄存器、目的地址寄存器、數(shù)據(jù)搬運(yùn)長度寄存器。
[0032] 實(shí)施例一
[0033] 為了進(jìn)一步提高DM控制器的性能和降低系統(tǒng)功耗,需要減少中斷產(chǎn)生,降低主 處理器的響應(yīng)時(shí)間,為此,本發(fā)明實(shí)例一提供了一種實(shí)際應(yīng)用的DM控制器。
[0034] 本實(shí)施例提供的DM控制器具有如下特征:
[0035] LDMA控制器以每一個(gè)通道作為編程單元。各個(gè)DMA通道間無相互影響。
[0036] 2. DMA控制器可讀寫訪問系統(tǒng)內(nèi)存空間。
[0037] 3. DM控制器內(nèi)部具有計(jì)算比較等邏輯運(yùn)算單元。
[0038] 4. DMA控制器可解釋識別運(yùn)算指令,有一套自己的指令集。
[0039] 5. DM控制器指令的操作寄存器含較少通用寄存器,主要寄存器為DM相關(guān)配置 寄存器,如源地址寄存器、目的地址寄存器、搬運(yùn)長度寄存器、及其他輔助寄存器。
[0040] 6.系統(tǒng)主處理器可將系統(tǒng)內(nèi)存中的指令區(qū)配置給DMA控制器解釋執(zhí)行。
[0041] 7.除指令區(qū)外,系統(tǒng)主處理器可選擇配置輸入數(shù)據(jù)區(qū),用于配置DM數(shù)據(jù)搬運(yùn)信 肩、。
[0042] 圖2是根據(jù)本實(shí)施例的DM控制器內(nèi)部結(jié)構(gòu)示意圖。如圖2所示:
[0043] 該DMA控制器包括3個(gè)處理引擎(20),每一個(gè)處理引擎(20)對應(yīng)一個(gè)DMA通道 (40 ),通過該通道可獨(dú)立完成本通道數(shù)據(jù)搬運(yùn)處理工作。
[0044] 每個(gè)處理引擎(20)還有一個(gè)獨(dú)立的配置通道接口(10),用于配置處理引擎(20) 的指令區(qū)和數(shù)據(jù)區(qū)在系統(tǒng)內(nèi)存的地址。
[0045] 處理引擎(20)接收設(shè)備的DMA處理請求,在數(shù)據(jù)處理完畢后,DMA控制器通過中斷 接口(30)通知主處理器。
[0046] 控制器內(nèi)部有高速數(shù)據(jù)傳輸總線(50)與外部系統(tǒng)總線相接,完成處理引擎(20) 對外部內(nèi)存和設(shè)備的訪問。
[0047] 除內(nèi)部數(shù)據(jù)總線外,配置接口(10)也與外部的系統(tǒng)總線相接,此系統(tǒng)總線接口用 于主處理器對配置接口(10)的訪問。
[0048] 在本實(shí)施例的系統(tǒng)框架下,處理引擎(20)可根據(jù)配置的指令區(qū)的指令解釋執(zhí)行, 完成用戶定制的DMA動作。該指令區(qū)的指令簡短精煉,在此稱為微程序。
[0049] 圖3是根據(jù)本發(fā)明實(shí)施例一的DM控制器配置流程圖。如圖3所示,該DM控制 器配置流程包括以下步驟:
[0050] 步驟S301,主處理器接收上層用戶請求。
[0051] 步驟S302,主處理器根據(jù)DMA請求,選擇不同的DMA控制器微程序。
[0052] 步驟S303,主處理器根據(jù)DMA請求的內(nèi)容,配置微程序?qū)?yīng)的輸入數(shù)據(jù)區(qū)。
[0053] 步驟S304,主處理器將輸入數(shù)據(jù)區(qū)的地址配置給DMA控制器相應(yīng)通道。
[0054] 步驟S305,主處理器將微程序的地址配置給DMA控制器相應(yīng)通道。
[0055] 步驟S306,以上配置完成后,主處理器啟動DMA控制器開始工作。
[0056] 步驟S307, DMA控制器通過微程序地址,獲取微程序并執(zhí)行。
[0057] 步驟S308, DMA控制器根據(jù)微程序要求,當(dāng)完成任務(wù)后,上報(bào)中斷通知主處理器。
[0058] 步驟S309,主處理器接收到DMA控制器中斷,完成DMA流程。
[0059] 在本發(fā)明實(shí)施例中,DM控制器需要執(zhí)行微程序,微程序由DM控制器可識別的指 令組成。DM控制器的指令使用偽代碼的形式可表示如下:
【權(quán)利要求】
1. 一種DMA控制器,其特征在于,包括: 配置接口,與外部的系統(tǒng)總線相連,用于配置所述DMA控制器的指令區(qū)地址和數(shù)據(jù)區(qū) 地址,其中,所述指令區(qū)為存儲在系統(tǒng)內(nèi)存中的一段預(yù)先編程的微程序; 處理引擎,與所述配置接口相連,用于根據(jù)所述指令區(qū)地址和所述數(shù)據(jù)區(qū)地址解釋執(zhí) 行所述微程序。
2. 根據(jù)權(quán)利要求1所述的DMA控制器,其特征在于,還包括: DMA通道,與所述處理引擎相連,用于所需搬運(yùn)數(shù)據(jù)的傳輸; 中斷接口,與所述處理引擎相連,用于向所述主處理器上報(bào)中斷; 內(nèi)部總線,與外部的所述系統(tǒng)總線相連,用于所述處理引擎對系統(tǒng)內(nèi)存和外部設(shè)備的 訪問。
3. 根據(jù)權(quán)利要求1所述的DMA控制器,其特征在于,所述微程序?yàn)榭芍貜?fù)編程的指令 段,可存儲于系統(tǒng)內(nèi)存的任意位置。
4. 根據(jù)權(quán)利要求1所述的DMA控制器,其特征在于,所述處理引擎為多個(gè),每個(gè)所述處 理引擎具有獨(dú)立的所述配置接口和所述DMA通道。
5. 根據(jù)權(quán)利要求1所述的DMA控制器,其特征在于,還包括: 源地址寄存器、目的地址寄存器、數(shù)據(jù)搬運(yùn)長度寄存器。
6. -種基于DMA控制器的數(shù)據(jù)搬運(yùn)方法,其特征在于,包括: 主處理器配置所述DMA控制器的指令區(qū)地址和數(shù)據(jù)區(qū)地址,其中,所述指令區(qū)為存儲 在系統(tǒng)內(nèi)存中的一段預(yù)先編程的微程序; 所述DMA控制器根據(jù)所述指令區(qū)地址和所述數(shù)據(jù)區(qū)地址解釋執(zhí)行所述微程序,W進(jìn)行 數(shù)據(jù)的搬運(yùn)。
7. 根據(jù)權(quán)利要求6所述的數(shù)據(jù)搬運(yùn)方法,其特征在于,所述微程序?yàn)榭芍貜?fù)編程的指 令段,可存儲于系統(tǒng)內(nèi)存的任意位置。
8. 根據(jù)權(quán)利要求6所述的數(shù)據(jù)搬運(yùn)方法,其特征在于,主處理器配置所述DMA控制器的 指令區(qū)地址和數(shù)據(jù)區(qū)地址之前,還包括: 所述主處理器接收DMA請求,并選擇相應(yīng)的微程序。
9. 根據(jù)權(quán)利要求8所述的數(shù)據(jù)搬運(yùn)方法,其特征在于,主處理器配置所述DMA控制器的 指令區(qū)地址和數(shù)據(jù)區(qū)地址,包括: 所述主處理器根據(jù)所述DMA請求配置所述微程序?qū)?yīng)的數(shù)據(jù)區(qū); 所述主處理器將所述數(shù)據(jù)區(qū)和微程序的內(nèi)存地址配置給所述DMA控制器的相應(yīng)通道, 并啟動DM控制器。
10. -種移動終端,其特征在于,包括權(quán)利要求1至5中任意一項(xiàng)所述的DMA控制器。
【文檔編號】G06F13/32GK104461970SQ201310430556
【公開日】2015年3月25日 申請日期:2013年9月18日 優(yōu)先權(quán)日:2013年9月18日
【發(fā)明者】葛安峰, 于翔 申請人:中興通訊股份有限公司