一種控制數(shù)據(jù)傳輸?shù)姆椒癲ma控制器的制造方法
【專利摘要】本發(fā)明提供一種控制數(shù)據(jù)傳輸?shù)姆椒癉MA控制器,該方法包括:接收CPU的配置信息,對所述配置信息進(jìn)行解析,所述配置信息包括傳輸寬度轉(zhuǎn)換參數(shù);從源外設(shè)讀取數(shù)據(jù),根據(jù)所述傳輸寬度轉(zhuǎn)換參數(shù)將讀取到的數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)寬度后寫入目的外設(shè)。本發(fā)明的DMA控制器采取的傳輸方式,為作用于存儲器之間、存儲器與外設(shè)之間、外設(shè)與外設(shè)之間直接交換數(shù)據(jù),不執(zhí)行CPU讀寫指令,且不需要經(jīng)過CPU緩存,減少了中間環(huán)節(jié),只要完成配置DMA控制器,所有讀寫時序全部由硬件執(zhí)行,因此大大提高了傳送數(shù)據(jù)的速率。
【專利說明】—種控制數(shù)據(jù)傳輸?shù)姆椒癉MA控制器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及集成電路領(lǐng)域,特別是涉及一種控制數(shù)據(jù)傳輸?shù)姆椒癉MA (DirectMemory Access,存儲器直接訪問)控制器。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)及電子產(chǎn)品的快速發(fā)展,含有音頻、視頻等大量數(shù)據(jù)的應(yīng)用軟件考驗著硬件芯片的數(shù)據(jù)處理能力,大量數(shù)據(jù)的快速傳輸已成為當(dāng)今芯片的重要性能指標(biāo)。
[0003]相對于傳統(tǒng)系統(tǒng)中的CPU直接傳輸數(shù)據(jù)方式、查詢方式及中斷方式,DMA控制器米取的傳輸方式,為作用于存儲器之間、存儲器與外設(shè)之間、外設(shè)與外設(shè)之間直接交換數(shù)據(jù)。不執(zhí)行CPU讀寫指令,且不需要經(jīng)過CPU緩存,減少了中間環(huán)節(jié)。只要完成配置DMA控制器,所有讀寫時序全部由硬件執(zhí)行,因此大大提高了傳送數(shù)據(jù)的速率。
[0004]如圖1所示,為現(xiàn)有設(shè)計的DMA系統(tǒng)結(jié)構(gòu)框圖。CPU工作模式中:通過系統(tǒng)總線(SYS_BUS),CPU可以單獨訪問DMA控制器、源存儲器或外設(shè)(Src)、目的存儲器或外設(shè)(Dst)。DMA工作模式中:通過SYS_BUS,CPU配置DMA內(nèi)部功能寄存器,包括傳輸長度、源起始地址、目的起始地址、傳輸方向、工作使能等。
[0005]使能打開后,DMA開始工作。首先,通過SYS_BUS,從源起始地址讀出的數(shù)據(jù)送進(jìn)DMA暫存,完成一次讀操作。然后,DMA再將數(shù)據(jù)寫入目的起始地址,完成一次寫操作。同時,源地址、目的地址增加至下一次讀、寫操作的地址。依此,進(jìn)行后續(xù)的從Src讀出數(shù)據(jù),并寫入Dst的操作。直至所有數(shù)據(jù)全部傳輸完畢,DMA工作完畢,釋放總線。
[0006]現(xiàn)有設(shè)計的DMA控制器,存在不同數(shù)據(jù)寬度存儲器之間數(shù)據(jù)轉(zhuǎn)換頻繁、傳輸效率較低、耗時較長的技術(shù)缺點:
[0007]從設(shè)計原理上,現(xiàn)有設(shè)計的DMA控制器,由于設(shè)計簡單,很少考慮數(shù)據(jù)寬度匹配的問題,所以要求源、目的傳輸數(shù)據(jù)寬度必須相等。針對在不同數(shù)據(jù)寬度的存儲器或外設(shè)之間傳輸時,需要在系統(tǒng)或存儲器接口模塊中,增加數(shù)據(jù)轉(zhuǎn)換或數(shù)據(jù)緩存的設(shè)計,導(dǎo)致系統(tǒng)復(fù)雜化,數(shù)據(jù)速度較慢等缺點。
[0008]此外,現(xiàn)有設(shè)計的DMA控制器工作時,會占有系統(tǒng)總線。此時,CPU無法通過系統(tǒng)總線訪問其它從模塊,只能等到DMA工作完畢后,才可操作。此時,CPU可能無法及時處理外設(shè)或其他模塊的中斷信號,在系統(tǒng)使用上具有一定的局限性。
【發(fā)明內(nèi)容】
[0009]本發(fā)明要解決的技術(shù)問題是提供一種控制數(shù)據(jù)傳輸?shù)姆椒癉MA控制器,以提高不同數(shù)據(jù)寬度之間的傳輸效率。
[0010]為了解決上述技術(shù)問題,本發(fā)明提供了一種控制數(shù)據(jù)傳輸?shù)姆椒?,?yīng)用于存儲器直接訪問控制器,包括:
[0011]接收CPU的配置信息,對所述配置信息進(jìn)行解析,所述配置信息包括傳輸寬度轉(zhuǎn)換參數(shù);[0012]從源外設(shè)讀取數(shù)據(jù),根據(jù)所述傳輸寬度轉(zhuǎn)換參數(shù)將讀取到的數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)寬度后寫入目的外設(shè)。
[0013]進(jìn)一步地,上述方法還具有下面特點:
[0014]所述從源外設(shè)讀取數(shù)據(jù)是通過所述源外設(shè)與所述存儲器直接訪問控制器之間的接口實現(xiàn)的;
[0015]所述將數(shù)據(jù)寫入目的外設(shè)是通過所述目的外設(shè)與所述存儲器直接訪問控制器之間的接口實現(xiàn)的。
[0016]進(jìn)一步地,上述方法還具有下面特點:
[0017]所述接收的配置信息還包括:源起始地址和目的起始地址;
[0018]所述傳輸寬度轉(zhuǎn)換參數(shù)包括源外設(shè)數(shù)據(jù)寬度和目的外設(shè)所需的數(shù)據(jù)寬度;
[0019]所述從源外設(shè)讀取數(shù)據(jù),根據(jù)所述傳輸寬度轉(zhuǎn)換參數(shù)將讀取到的數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)寬度后寫入所述目的外設(shè),包括:根據(jù)所述傳輸寬度轉(zhuǎn)換參數(shù),按照所述源外設(shè)的接口時序從所述源起始地址開始讀取源外設(shè)數(shù)據(jù)寬度的數(shù)據(jù),將讀取到的數(shù)據(jù)轉(zhuǎn)換成所述目的外設(shè)所需的數(shù)據(jù)寬度后,按照所述目的外設(shè)的接口時序,從所述目的起始地址開始寫入所述目的外設(shè)。
[0020]進(jìn)一步地,上述方法還具有下面特點:
[0021]所述源外設(shè)支持的數(shù)據(jù)寬度包括以下的任一種:8比特、16比特和32比特;
[0022]所述目的外設(shè)支持的數(shù)據(jù)寬度包括以下的任一種:8比特、16比特和32比特。
[0023]進(jìn)一步地,上述方法還具有下面特點:
[0024]所述傳輸寬度轉(zhuǎn)換參數(shù)為O時,表示數(shù)據(jù)寬度從Sbits轉(zhuǎn)換為Sbits ;
[0025]所述傳輸寬度轉(zhuǎn)換參數(shù)為5時,表示數(shù)據(jù)寬度從16bits轉(zhuǎn)換為16bits ;
[0026]所述傳輸寬度轉(zhuǎn)換參數(shù)為a時,表示數(shù)據(jù)寬度從32bits轉(zhuǎn)換為32bits ;
[0027]所述傳輸寬度轉(zhuǎn)換參數(shù)為I時,表示數(shù)據(jù)寬度從16bits轉(zhuǎn)換為Sbits ;
[0028]所述傳輸寬度轉(zhuǎn)換參數(shù)為2時,表示數(shù)據(jù)寬度從32bits轉(zhuǎn)換為Sbits ;
[0029]所述傳輸寬度轉(zhuǎn)換參數(shù)為6時,表示數(shù)據(jù)寬度從32bits轉(zhuǎn)換為16bits ;
[0030]所述傳輸寬度轉(zhuǎn)換參數(shù)為4時,表示數(shù)據(jù)寬度從Sbits轉(zhuǎn)換為16bits ;
[0031]所述傳輸寬度轉(zhuǎn)換參數(shù)為8時,表示數(shù)據(jù)寬度從Sbits轉(zhuǎn)換為32bits ;
[0032]所述傳輸寬度轉(zhuǎn)換參數(shù)為9時,表示數(shù)據(jù)寬度從16bits轉(zhuǎn)換為32bits。
[0033]為了解決上述問題,本發(fā)明還提供了一種存儲器直接訪問控制器,其中,所述存儲器直接訪問控制器具有數(shù)據(jù)接口直接與源外設(shè)和目的外設(shè)連接,包括:
[0034]配置模塊,用于接收CPU的配置信息,對所述配置信息進(jìn)行解析,所述配置信息包括傳輸寬度轉(zhuǎn)換參數(shù);
[0035]控制模塊,用于從源外設(shè)讀取數(shù)據(jù),根據(jù)所述傳輸寬度轉(zhuǎn)換參數(shù)將讀取到的數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)寬度后寫入目的外設(shè)。
[0036]進(jìn)一步地,上述存儲器直接訪問控制器還具有下面特點:
[0037]所述控制模塊,從源外設(shè)讀取數(shù)據(jù)是通過所述源外設(shè)與所述存儲器直接訪問控制器之間的接口實現(xiàn)的;將數(shù)據(jù)寫入目的外設(shè)是通過所述目的外設(shè)與所述存儲器直接訪問控制器之間的接口實現(xiàn)的。
[0038]進(jìn)一步地,上述存儲器直接訪問控制器還具有下面特點:[0039]所述配置模塊,接收的配置信息還包括:源起始地址和目的起始地址;所述傳輸寬度轉(zhuǎn)換參數(shù)包括源外設(shè)數(shù)據(jù)寬度和目的外設(shè)所需的數(shù)據(jù)寬度;
[0040]所述控制模塊,具體用于根據(jù)所述傳輸寬度轉(zhuǎn)換參數(shù),按照所述源外設(shè)的接口時序從所述源起始地址開始讀取源外設(shè)數(shù)據(jù)寬度的數(shù)據(jù),將讀取到的數(shù)據(jù)轉(zhuǎn)換成所述目的外設(shè)所需的數(shù)據(jù)寬度后,按照所述目的外設(shè)的接口時序,從所述目的起始地址開始寫入所述目的外設(shè)。
[0041]進(jìn)一步地,上述存儲器直接訪問控制器還具有下面特點:
[0042]所述源外設(shè)支持的數(shù)據(jù)寬度包括以下的任一種:8比特、16比特和32比特;
[0043]所述目的外設(shè)支持的數(shù)據(jù)寬度包括以下的任一種:8比特、16比特和32比特。
[0044]進(jìn)一步地,上述存儲器直接訪問控制器還具有下面特點:
[0045]所述傳輸寬度轉(zhuǎn)換參數(shù)為O時,表示數(shù)據(jù)寬度從Sbits轉(zhuǎn)換為Sbits ;
[0046]所述傳輸寬度轉(zhuǎn)換參數(shù)為5時,表示數(shù)據(jù)寬度從16bits轉(zhuǎn)換為16bits ;
[0047]所述傳輸寬度轉(zhuǎn)換參數(shù)為a時,表示數(shù)據(jù)寬度從32bits轉(zhuǎn)換為32bits ;
[0048]所述傳輸寬度轉(zhuǎn)換參數(shù)為I時,表示數(shù)據(jù)寬度從16bits轉(zhuǎn)換為Sbits ;
[0049]所述傳輸寬度轉(zhuǎn)換參數(shù)為2時,表示數(shù)據(jù)寬度從32bits轉(zhuǎn)換為Sbits ;
[0050]所述傳輸寬度轉(zhuǎn)換參數(shù)為6時,表示數(shù)據(jù)寬度從32bits轉(zhuǎn)換為16bits ;
[0051]所述傳輸寬度轉(zhuǎn)換參數(shù)為4時,表示數(shù)據(jù)寬度從Sbits轉(zhuǎn)換為16bits ;
[0052]所述傳輸寬度轉(zhuǎn)換參數(shù)為8時,表示數(shù)據(jù)寬度從Sbits轉(zhuǎn)換為32bits ;
[0053]所述傳輸寬度轉(zhuǎn)換參數(shù)為9時,表示數(shù)據(jù)寬度從16bits轉(zhuǎn)換為32bits。
[0054]綜上,本發(fā)明提供一種控制數(shù)據(jù)傳輸?shù)姆椒癉MA控制器,本發(fā)明的DMA控制器采取的傳輸方式,為作用于存儲器之間、存儲器與外設(shè)之間、外設(shè)與外設(shè)之間直接交換數(shù)據(jù),不執(zhí)行CPU讀寫指令,且不需要經(jīng)過CPU緩存,減少了中間環(huán)節(jié)。只要完成配置DMA控制器,所有讀寫時序全部由硬件執(zhí)行,因此大大提高了傳送數(shù)據(jù)的速率。本發(fā)明可以處理不同寬度數(shù)據(jù)互通的問題,使之互通方便、傳輸速度較快、系統(tǒng)連接簡單,且不占用系統(tǒng)總線。
【專利附圖】
【附圖說明】
[0055]圖1為現(xiàn)有設(shè)計的DMA系統(tǒng)結(jié)構(gòu)框圖;
[0056]圖2為本發(fā)明實施例的DMA系統(tǒng)結(jié)構(gòu)框圖;
[0057]圖3為本實施例的DMA控制器的框圖;
[0058]圖4為本發(fā)明實施例的DMA控制器的工作原理圖;
[0059]圖5為本發(fā)明實施例的一種控制數(shù)據(jù)傳輸?shù)姆椒ǖ牧鞒虉D;
[0060]圖6為本發(fā)明實施例的數(shù)據(jù)寬度傳輸:8 — >8bits的仿真圖;
[0061]圖7為本發(fā)明實施例的數(shù)據(jù)寬度傳輸:16 — >16bits的仿真圖;
[0062]圖8為本發(fā)明實施例的數(shù)據(jù)寬度傳輸:32 — >32bits的仿真圖;
[0063]圖9為本發(fā)明實施例的數(shù)據(jù)寬度傳輸:16 — >8bits的仿真圖;
[0064]圖10為本發(fā)明實施例的數(shù)據(jù)寬度傳輸:32 — >8bits的仿真圖;
[0065]圖11為本發(fā)明實施例的數(shù)據(jù)寬度傳輸:32 — >16bits的仿真圖;
[0066]圖12為本發(fā)明實施例的數(shù)據(jù)寬度傳輸:8 — >16bits的仿真圖;
[0067]圖13為本發(fā)明實施例的數(shù)據(jù)寬度傳輸:8 — >32bits的仿真圖;[0068]圖14為本發(fā)明實施例的數(shù)據(jù)寬度傳輸:16 — >32bits的仿真圖。
【具體實施方式】
[0069]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
[0070]圖2為本發(fā)明實施例的DMA系統(tǒng)結(jié)構(gòu)框圖。CPU工作模式中:通過系統(tǒng)總線(SYS_BUS),CPU也可以單獨訪問DMA控制器、源存儲器或外設(shè)(Src)、目的存儲器或外設(shè)(Dst)。Src和Dst均有一數(shù)據(jù)接口直接與DMA控制連接。DMA工作模式中:通過SYS_BUS,CPU也是先配置DMA內(nèi)部功能寄存器,使能打開后,DMA開始工作。
[0071]圖3為本實施例的DMA控制器的框圖。DMA模塊分為兩個部分:配置模塊(Dma_sfr)和控制模塊(Dma_ctrl)。Dmac_sfr接收CPU配置信息(Sys_dat),對配置信息(Sys_dat)進(jìn)行解析,將配置信息(Configure)發(fā)送至Dmac_ctrl模塊。Dma_ctrl作為控制模塊實現(xiàn)數(shù)據(jù)傳輸,從Src讀出數(shù)據(jù)(Src_rd_dat),向Dst寫入數(shù)據(jù)(Dst_wr_dat)。
[0072]圖4為本發(fā)明實施例的DMA控制器的工作原理圖,CPU對Dma寄存器配置:傳輸長度(Ien),傳輸寬度轉(zhuǎn)換參數(shù)(width),源起始地址(Base_src_addr),目的起始地址(Base_dst_addr),最后配置控制使能(en)完成后,Dma開始工作。
[0073]圖5為本發(fā)明實施例的一種控制數(shù)據(jù)傳輸?shù)姆椒ǖ牧鞒虉D,如圖5所示,本實施例的方法包括以下步驟:
[0074]S11、接收CPU的配置信息,對所述配置信息進(jìn)行解析,所述配置信息包括傳輸寬度轉(zhuǎn)換參數(shù);
[0075]S12、從源外設(shè)讀取數(shù)據(jù),根據(jù)所述傳輸寬度轉(zhuǎn)換參數(shù)將讀取到的數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)寬度后寫入目的外設(shè)。
[0076]其中,所述從源外設(shè)讀取數(shù)據(jù)是通過所述源外設(shè)與所述存儲器直接訪問控制器之間的接口實現(xiàn)的;
[0077]所述將數(shù)據(jù)寫入目的外設(shè)是通過所述目的外設(shè)與所述存儲器直接訪問控制器之間的接口實現(xiàn)的。
[0078]以現(xiàn)有技術(shù)相比,本發(fā)明實施例的方法具有以下優(yōu)點:
[0079]首先,解決數(shù)據(jù)寬度匹配問題,支持?jǐn)?shù)據(jù)寬度從Src到Dst的8/16/32bits之中的任意比特寬度互通。DMA工作時,遵循Src接口的時序,從源地址讀出的數(shù)據(jù)(8/16/32bits)通過DMA內(nèi)部將數(shù)據(jù)轉(zhuǎn)換成Dst所需寬度(8/16/32bits),按照Dst接口時序,直接寫入目的地址。硬件自動匹配寬度,轉(zhuǎn)換時序,系統(tǒng)連接簡單,數(shù)據(jù)傳輸快速。
[0080]其次,本發(fā)明實施例的DMA控制器工作時,不占用系統(tǒng)總線。DMA工作時,CPU可以通過系統(tǒng)總線訪問其他從模塊(除了 DMA工作傳輸涉及的Src和Dst),實現(xiàn)進(jìn)程兩線運行,并且可及時處理外設(shè)或其他模塊的中斷信號,使用方便。
[0081]本實施例的數(shù)據(jù)傳輸,采用“先讀后寫”的時序。
[0082]首先,讀指針(Rd)指向源起始地址(Base_src_addr),讀取數(shù)據(jù)進(jìn)入DMA, DMA內(nèi)部進(jìn)行數(shù)據(jù)寬度轉(zhuǎn)換(8/16/32bits),源地址增加量(SrC_addr_inC)增加;然后,寫指針(Wr)指向目的起始地址(Base_dst_addr),寫入存儲器相應(yīng)地址。[0083]本實施例的傳輸寬度轉(zhuǎn)換參數(shù)(Dmac_width)表示源外設(shè)數(shù)據(jù)寬度與目的外設(shè)數(shù)據(jù)寬度的對應(yīng)關(guān)系如下表1所示.[0084]本實施例的傳輸寬度轉(zhuǎn)換參數(shù)用4Bits表示,低兩位表示源外設(shè)的數(shù)據(jù)寬度,例如,表1中[1:0] = 00表示源外設(shè)的數(shù)據(jù)寬度(src_width)為8bits, [1:0] = 01表示src_width為16bits, [1:0] = 10表示src_width為32bits ;高兩位表示目的外設(shè)的數(shù)據(jù)寬度,例如,表1中[3:2] = 00表示目的外設(shè)的數(shù)據(jù)寬度(dst_width)為8bits;[3:2] = 01表不 dst_width 為 16bits ; [3:2] = 10 表不 dst_width 為 32bits。
[0085]表1
[0086]
【權(quán)利要求】
1.一種控制數(shù)據(jù)傳輸?shù)姆椒?,?yīng)用于存儲器直接訪問控制器,包括: 接收CPU的配置信息,對所述配置信息進(jìn)行解析,所述配置信息包括傳輸寬度轉(zhuǎn)換參數(shù); 從源外設(shè)讀取數(shù)據(jù),根據(jù)所述傳輸寬度轉(zhuǎn)換參數(shù)將讀取到的數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)寬度后寫入目的外設(shè)。
2.如權(quán)利要求1所述的方法,其特征在于: 所述從源外設(shè)讀取數(shù)據(jù)是通過所述源外設(shè)與所述存儲器直接訪問控制器之間的接口實現(xiàn)的; 所述將數(shù)據(jù)寫入目的外設(shè)是通過所述目的外設(shè)與所述存儲器直接訪問控制器之間的接口實現(xiàn)的。
3.如權(quán)利要求1所述的方法,其特征在于: 所述接收的配置信息還包括:源起始地址和目的起始地址; 所述傳輸寬度轉(zhuǎn)換參數(shù)包括源外設(shè)數(shù)據(jù)寬度和目的外設(shè)所需的數(shù)據(jù)寬度; 所述從源外設(shè)讀取數(shù)據(jù),根據(jù)所述傳輸寬度轉(zhuǎn)換參數(shù)將讀取到的數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)寬度后寫入所述目的外設(shè),包括:根據(jù)所述傳輸寬度轉(zhuǎn)換參數(shù),按照所述源外設(shè)的接口時序從所述源起始地址開始讀取源外設(shè)數(shù)據(jù)寬度的數(shù)據(jù),將讀取到的數(shù)據(jù)轉(zhuǎn)換成所述目的外設(shè)所需的數(shù)據(jù)寬度后,按照所述目的外設(shè)的接口時序,從所述目的起始地址開始寫入所述目的外設(shè)。
4.如權(quán)利要求1-3任一項所述的方法,其特征在于: 所述源外設(shè)支持的數(shù)據(jù)寬度包括以下的任一種:8比特、16比特和32比特; 所述目的外設(shè)支持的數(shù)據(jù)寬度包括以下的任一種:8比特、16比特和32比特。
5.如權(quán)利要求1所述的方法,其特征在于: 所述傳輸寬度轉(zhuǎn)換參數(shù)為O時,表示數(shù)據(jù)寬度從8bits轉(zhuǎn)換為8bits ; 所述傳輸寬度轉(zhuǎn)換參數(shù)為5時,表示數(shù)據(jù)寬度從16bits轉(zhuǎn)換為16bits ; 所述傳輸寬度轉(zhuǎn)換參數(shù)為a時,表示數(shù)據(jù)寬度從32bits轉(zhuǎn)換為32bits ; 所述傳輸寬度轉(zhuǎn)換參數(shù)為I時,表示數(shù)據(jù)寬度從16bits轉(zhuǎn)換為8bits ; 所述傳輸寬度轉(zhuǎn)換參數(shù)為2時,表示數(shù)據(jù)寬度從32bits轉(zhuǎn)換為8bits ; 所述傳輸寬度轉(zhuǎn)換參數(shù)為6時,表示數(shù)據(jù)寬度從32bits轉(zhuǎn)換為16bits ; 所述傳輸寬度轉(zhuǎn)換參數(shù)為4時,表示數(shù)據(jù)寬度從8bits轉(zhuǎn)換為16bits ; 所述傳輸寬度轉(zhuǎn)換參數(shù)為8時,表示數(shù)據(jù)寬度從8bits轉(zhuǎn)換為32bits ; 所述傳輸寬度轉(zhuǎn)換參數(shù)為9時,表示數(shù)據(jù)寬度從16bits轉(zhuǎn)換為32bits。
6.一種存儲器直接訪問控制器,其特征在于,所述存儲器直接訪問控制器具有數(shù)據(jù)接口直接與源外設(shè)和目的外設(shè)連接,包括: 配置模塊,用于接收CPU的配置信息,對所述配置信息進(jìn)行解析,所述配置信息包括傳輸寬度轉(zhuǎn)換參數(shù); 控制模塊,用于從源外設(shè)讀取數(shù)據(jù),根據(jù)所述傳輸寬度轉(zhuǎn)換參數(shù)將讀取到的數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)寬度后寫入目的外設(shè)。
7.如權(quán)利要求6所述的存儲器直接訪問控制器,其特征在于: 所述控制模塊,從源外設(shè)讀取數(shù)據(jù)是通過所述源外設(shè)與所述存儲器直接訪問控制器之間的接口實現(xiàn)的;將數(shù)據(jù)寫入目的外設(shè)是通過所述目的外設(shè)與所述存儲器直接訪問控制器之間的接口實現(xiàn)的。
8.如權(quán)利要求6所述的存儲器直接訪問控制器,其特征在于: 所述配置模塊,接收的配置信息還包括:源起始地址和目的起始地址;所述傳輸寬度轉(zhuǎn)換參數(shù)包括源外設(shè)數(shù)據(jù)寬度和目的外設(shè)所需的數(shù)據(jù)寬度; 所述控制模塊,具體用于根據(jù)所述傳輸寬度轉(zhuǎn)換參數(shù),按照所述源外設(shè)的接口時序從所述源起始地址開始讀取源外設(shè)數(shù)據(jù)寬度的數(shù)據(jù),將讀取到的數(shù)據(jù)轉(zhuǎn)換成所述目的外設(shè)所需的數(shù)據(jù)寬度后,按照所述目的外設(shè)的接口時序,從所述目的起始地址開始寫入所述目的外設(shè)。
9.如權(quán)利要求6-8任一項所述的存儲器直接訪問控制器,其特征在于: 所述源外設(shè)支持的數(shù)據(jù)寬度包括以下的任一種:8比特、16比特和32比特; 所述目的外設(shè)支持的數(shù)據(jù)寬度包括以下的任一種:8比特、16比特和32比特。
10.如權(quán)利要求6所述的存儲器直接訪問控制器,其特征在于: 所述傳輸寬度轉(zhuǎn)換參數(shù)為O時,表示數(shù)據(jù)寬度從8bits轉(zhuǎn)換為8bits ; 所述傳輸寬度轉(zhuǎn)換參 數(shù)為5時,表示數(shù)據(jù)寬度從16bits轉(zhuǎn)換為16bits ; 所述傳輸寬度轉(zhuǎn)換參數(shù)為a時,表示數(shù)據(jù)寬度從32bits轉(zhuǎn)換為32bits ; 所述傳輸寬度轉(zhuǎn)換參數(shù)為I時,表示數(shù)據(jù)寬度從16bits轉(zhuǎn)換為8bits ; 所述傳輸寬度轉(zhuǎn)換參數(shù)為2時,表示數(shù)據(jù)寬度從32bits轉(zhuǎn)換為8bits ; 所述傳輸寬度轉(zhuǎn)換參數(shù)為6時,表示數(shù)據(jù)寬度從32bits轉(zhuǎn)換為16bits ; 所述傳輸寬度轉(zhuǎn)換參數(shù)為4時,表示數(shù)據(jù)寬度從8bits轉(zhuǎn)換為16bits ; 所述傳輸寬度轉(zhuǎn)換參數(shù)為8時,表示數(shù)據(jù)寬度從8bits轉(zhuǎn)換為32bits ; 所述傳輸寬度轉(zhuǎn)換參數(shù)為9時,表示數(shù)據(jù)寬度從16bits轉(zhuǎn)換為32bits。
【文檔編號】G06F13/28GK104021099SQ201410276233
【公開日】2014年9月3日 申請日期:2014年6月19日 優(yōu)先權(quán)日:2014年6月19日
【發(fā)明者】王震 申請人:大唐微電子技術(shù)有限公司