專利名稱:數(shù)據(jù)傳輸?shù)目刂品椒把b置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)傳輸?shù)目刂品椒把b置。
背景技術(shù):
USB3.0 (Universal Serial BUS3.0)協(xié)議支持雙工通信,理論帶寬達到雙向8Gb/s,要求很高的系統(tǒng)帶寬。目前實現(xiàn)方式,存儲數(shù)據(jù)與協(xié)議數(shù)據(jù),在MCU控制下讀入緩存buffer,然后被解析。由于協(xié)議數(shù)據(jù)很短,且讀/寫頻率較高,因此,會造成帶寬浪費,降低系統(tǒng)性能,不能最大發(fā)揮USB3.0的高速性能。而DMA傳輸方式無需CPU直接控制傳輸,也沒有中斷處理方式那樣保留現(xiàn)場和恢復(fù)現(xiàn)場的過程,在DMA控制器的控制下,數(shù)據(jù)在存儲設(shè)備與外部設(shè)備之間直接傳輸,極大的提高了數(shù)據(jù)傳輸?shù)男省_@樣,如果將USB3.0與DMA控制器結(jié)合可實現(xiàn)數(shù)據(jù)更快速的傳輸,充分發(fā)揮USB3.0的最大性能。而目前,DMA控制器需要硬件電路識別存儲數(shù)據(jù)然后向CUP發(fā)送指令請求獲得系統(tǒng)總線控制權(quán),CPU需要實時監(jiān)測DMA控制器請求狀態(tài)并在運行完當前周期后才響應(yīng)DMA請求,再啟動DMA控制數(shù)據(jù)傳輸,增加電路成本和硬件復(fù)雜度,且不夠靈活。發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種數(shù)據(jù)傳輸?shù)目刂品椒ǎ荚谕ㄟ^虛地址軟硬件結(jié)合實現(xiàn)DMA機制自動啟動,控制數(shù)據(jù)在存儲設(shè)備與外部設(shè)備之間快速、高效傳輸。
為了實現(xiàn)發(fā)明目的,本發(fā)明提出一種數(shù)據(jù)傳輸?shù)目刂品椒?,包括以下步驟:
S01、接收到數(shù)據(jù)傳輸指令時,根據(jù)數(shù)據(jù)大小配置虛擬目標地址;
S02、判斷配置的虛擬目標地址是否大于第一預(yù)值;若是,則執(zhí)行步驟S03,否則執(zhí)行步驟S04 ;
S03、啟動DMA機制控制數(shù)據(jù)傳輸;
S04、由CPU控制數(shù)據(jù)傳輸。
優(yōu)選地,所述在執(zhí)行步驟S03或S04之后還包括:
S05、將傳輸?shù)臄?shù)據(jù)存儲至虛擬目標地址對應(yīng)的實際目標地址中。
優(yōu)選地,所述根據(jù)數(shù)據(jù)配置虛擬目標地址的同時還包括:配置一偏移地址。
優(yōu)選地,所述在執(zhí)行步驟S03或步驟S04之后還包括:
S06、將傳輸?shù)臄?shù)據(jù)存儲至虛擬目標地址減去偏移地址后的新地址所對應(yīng)的實際目標地址中。
本發(fā)明還提供一種數(shù)據(jù)傳輸?shù)目刂蒲b置,其特征在于,包括:
分析控制模塊,用于接收到數(shù)據(jù)傳輸指令時,根據(jù)數(shù)據(jù)大小配置虛擬目標地址;
判斷模塊,用于判斷配置的虛擬目標地址是否大于第一預(yù)值;
處理模塊,用于當虛擬目標地址大于第一預(yù)值時,啟動DMA機制控制數(shù)據(jù)傳輸;當虛擬目標地址小于等于第一預(yù)值時,由CPU控制數(shù)據(jù)傳輸。
優(yōu)選地,還包括:
第一存儲模塊,用于將傳輸?shù)臄?shù)據(jù)存儲至虛擬目標地址對應(yīng)的實際目標地址中。
優(yōu)選地,所述根據(jù)數(shù)據(jù)配置虛擬目標地址的同時還包括:配置一偏移地址。
優(yōu)選地,還包括:
第二存儲模塊,用于將傳輸?shù)臄?shù)據(jù)存儲至虛擬目標地址減去偏移地址后的新地址所對應(yīng)的實際目標地址中。
本發(fā)明通過接收到數(shù)據(jù)傳輸指令時,根據(jù)傳輸數(shù)據(jù)的大小配置虛擬目標地址,然后判斷該虛擬目標地址是否大于第一預(yù)值,當虛擬目標地址大于第一預(yù)值時則啟動DMA機制控制數(shù)據(jù)傳輸,當虛擬目標地址小于等于第一預(yù)值時則由CPU控制數(shù)據(jù)傳輸。本發(fā)明能夠?qū)崿F(xiàn)DMA機制自動啟動,控制數(shù)據(jù)在存儲設(shè)備與外部設(shè)備之間快速、高效傳輸,減少CPU資源占用,提高系統(tǒng)性能,并且實現(xiàn)簡單。
圖1是本發(fā)明數(shù)據(jù)傳輸?shù)目刂品椒ǖ谝粚嵤├牧鞒虉D2是本發(fā)明數(shù)據(jù)傳輸?shù)目刂品椒ǖ诙嵤├牧鞒虉D3是本發(fā)明數(shù)據(jù)傳輸?shù)目刂蒲b置第一實施例的結(jié)構(gòu)示意圖4是本發(fā)明數(shù)據(jù)傳輸?shù)目刂蒲b置第二實施例的結(jié)構(gòu)示意圖。
本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
具體實施方式
應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
參照圖1及圖2,圖1是本發(fā)明數(shù)據(jù)傳輸?shù)目刂品椒ǖ谝粚嵤├牧鞒虉D;圖2是本發(fā)明數(shù)據(jù)傳輸?shù)目刂品椒ǖ诙嵤├牧鞒虉D。如圖1及圖2所示,該方法包括以下步驟:
步驟SO1、接收到數(shù)據(jù)傳輸指令時,根據(jù)數(shù)據(jù)大小配置虛擬目標地址;
步驟S02、判斷配置的虛擬目標地址是否大于第一預(yù)值;若是,則執(zhí)行步驟S03,否則執(zhí)行步驟S04 ;
步驟S03、啟動DMA機制控制數(shù)據(jù)傳輸;
步驟S04、由CPU控制數(shù)據(jù)傳輸。
并且,所述在執(zhí)行步驟S03或步驟S04之后還包括:
步驟S05、將傳輸?shù)臄?shù)據(jù)存儲至虛擬目標地址對應(yīng)的實際目標地址中。
本實施例中,當CPU接收到數(shù)據(jù)傳輸指令時,檢測傳輸數(shù)據(jù)的大小,然后根據(jù)傳輸數(shù)據(jù)的大小來確定是否啟動DMA機制控制數(shù)據(jù)傳輸,這里需要傳輸多大的數(shù)據(jù)時用DMA機制控制數(shù)據(jù)傳輸,可根據(jù)需求具體設(shè)置一個中間值來進行范圍界定,例如可以設(shè)置傳輸?shù)臄?shù)據(jù)大于1M、10M或者50M時需要啟動DMA都可以,一般較小為宜。這樣當檢測到需要傳輸?shù)臄?shù)據(jù)大于該設(shè)定的值時,就知道需要啟動DMA機制控制數(shù)據(jù)傳輸,小于等于時則不需要啟動DMA機制,由CPU直接控制數(shù)據(jù)傳輸。其中,所述第一預(yù)值為預(yù)先設(shè)置且用于與配置的虛擬目標地址進行比較以確定最終是由DMA機制還是CPU控制數(shù)據(jù)傳輸,當需要DMA機制控制數(shù)據(jù)傳輸時,則配置虛擬目標地址大于第一預(yù)值,當由CPU直接控制數(shù)據(jù)傳輸時,則配置虛擬目標地址小于等于第一預(yù)值,該第一預(yù)值一般設(shè)置為與上述設(shè)定的中間值相同,當然也可以設(shè)置為其他數(shù)值。這樣可針對大小不同的數(shù)據(jù)采用合適的傳輸控制方式,以實現(xiàn)系統(tǒng)優(yōu)化,提升性能。另外,將配置好的虛擬目標地址寫入一個寄存器中,用于數(shù)據(jù)存儲時提供存儲地址信息,該配置的虛擬目標地址可認為是實際目標地址,存儲數(shù)據(jù)時根據(jù)這個配置的虛擬目標地址去存儲設(shè)備中查找與之對應(yīng)的實際目標地址,查找到對應(yīng)的實際目標地址后將傳輸?shù)臄?shù)據(jù)存儲至該實際目標地址中。這樣利用虛擬地址,軟/硬件結(jié)合實現(xiàn)了數(shù)據(jù)DMA存儲,且實現(xiàn)簡潔,資源占用少。
上述根據(jù)數(shù)據(jù)配置虛擬目標地址的同時還包括:配置一偏移地址。
并且,所述在執(zhí)行步驟S03或步驟S04之后還包括:
步驟S06、將傳輸?shù)臄?shù)據(jù)存儲至虛擬目標地址減去偏移地址后的新地址所對應(yīng)的實際目標地址中。
本實施例中若需要啟動DMA機制傳輸目標數(shù)據(jù)時,那么配置的虛擬目標地址將大于第一預(yù)值,此時配置的偏移地址不等于零,可根據(jù)虛擬目標地址與第一預(yù)值的大小關(guān)系配置,這樣可防止配置的虛擬目標地址過大超出存儲設(shè)備最大內(nèi)存時只要將虛擬目標地址減去偏移地址就能得到一個實際的新地址,然后根據(jù)這個新地址去存儲設(shè)備中能夠找到一個實際的目標地址。而不需要啟動DMA機制時,那么配置的虛擬目標地址將小于等于第一預(yù)值,此時偏移地址的值無關(guān)緊要,一般配置為零,也是為了防止配置過大使虛擬目標地址減去偏移地址后找不到實際的目標地址。所以這里偏移地址的大小需要根據(jù)虛擬目標地址的大小和存儲設(shè)備的內(nèi)存大小關(guān)系進行配置。
本發(fā)明提出的數(shù)據(jù)傳輸?shù)目刂品椒ㄍㄟ^接收到數(shù)據(jù)傳輸指令時,根據(jù)數(shù)據(jù)的大小配置虛擬目標地址,然后判斷該虛擬目標地址是否大于第一預(yù)值,當虛擬目標地址大于第一預(yù)值時則啟動DMA機制控制數(shù)據(jù)傳輸,當虛擬目標地址小于等于第一預(yù)值時則由CPU控制數(shù)據(jù)傳輸。本發(fā)明能夠?qū)崿F(xiàn)DMA機制自動啟動,控制數(shù)據(jù)在存儲設(shè)備與外部設(shè)備之間快速、高效傳輸,減少CPU資源占用,提高系統(tǒng)性能,并且實現(xiàn)簡單。
參照圖3及圖4,圖3是本發(fā)明數(shù)據(jù)傳輸?shù)目刂蒲b置第一實施例的結(jié)構(gòu)示意圖;圖4是本發(fā)明數(shù)據(jù)傳輸?shù)目刂蒲b置第二實施例的結(jié)構(gòu)示意圖。如圖3及圖4所示,本發(fā)明還提供一種用于實現(xiàn)上述方法的數(shù)據(jù)傳輸?shù)目刂蒲b置,該裝置包括:
分析控制模塊100,用于接收到數(shù)據(jù)傳輸指令時,根據(jù)數(shù)據(jù)大小配置虛擬目標地址;
判斷模塊200,用于判斷配置的虛擬目標地址是否大于第一預(yù)值;
處理模塊300,用于當虛擬目標地址大于第一預(yù)值時,啟動DMA機制控制數(shù)據(jù)傳輸;當虛擬目標地址小于等于第一預(yù)值時,由CPU控制數(shù)據(jù)傳輸;
并且,還包括:
第一存儲模塊400,用于將傳輸?shù)臄?shù)據(jù)存儲至虛擬目標地址對應(yīng)的實際目標地址中。
本實施例中,當CPU接收到數(shù)據(jù)傳輸指令時,檢測傳輸數(shù)據(jù)的大小,然后根據(jù)傳輸數(shù)據(jù)的大小來確定是否啟動DMA機制控制數(shù)據(jù)傳輸,這里需要傳輸多大的數(shù)據(jù)時用DMA機制控制數(shù)據(jù)傳輸,可根據(jù)需求具體設(shè)置一個中間值來進行范圍界定,例如可以設(shè)置傳輸?shù)臄?shù)據(jù)大于1M、10M或者50M時需要啟動DMA都可以,一般較小為宜。這樣當檢測到需要傳輸?shù)臄?shù)據(jù)大于該設(shè)定的值時,就知道需要啟動DMA機制控制數(shù)據(jù)傳輸,小于等于時則不需要啟動DMA機制,由CPU直接控制數(shù)據(jù)傳輸。其中,所述第一預(yù)值為預(yù)先設(shè)置且用于與配置的虛擬目標地址進行比較以確定最終是由DMA機制還是CPU控制數(shù)據(jù)傳輸,當需要DMA機制控制數(shù)據(jù)傳輸時,則配置虛擬目標地址大于第一預(yù)值,當由CPU直接控制數(shù)據(jù)傳輸時,則配置虛擬目標地址小于等于第一預(yù)值,該第一預(yù)值一般設(shè)置為與上述設(shè)定的中間值相同,當然也可以設(shè)置為其他數(shù)值。這樣可針對大小不同的數(shù)據(jù)采用合適的傳輸控制方式,以實現(xiàn)系統(tǒng)優(yōu)化,提升性能。另外,將配置好的虛擬目標地址寫入一個寄存器中,用于數(shù)據(jù)存儲時提供存儲地址信息,該配置的虛擬目標地址可認為是實際目標地址,存儲數(shù)據(jù)時根據(jù)這個配置的虛擬目標地址去存儲設(shè)備中查找與之對應(yīng)的實際目標地址,查找到對應(yīng)的實際目標地址后將傳輸?shù)臄?shù)據(jù)存儲至該實際目標地址中。這樣利用虛擬地址,軟/硬件結(jié)合實現(xiàn)了數(shù)據(jù)DMA存儲,且實現(xiàn)簡潔,資源占用少。
上所述根據(jù)數(shù)據(jù)配置虛擬目標地址的同時還包括:配置一偏移地址。
并且,還包括:
第二存儲模塊500,用于將傳輸?shù)臄?shù)據(jù)存儲至虛擬目標地址減去偏移地址后的新地址所對應(yīng)的實際目標地址中。
本實施例中若需要啟動DMA機制傳輸目標數(shù)據(jù)時,那么配置的虛擬目標地址將大于第一預(yù)值,此時配置的偏移地址不等于零,可根據(jù)虛擬目標地址與第一預(yù)值的大小關(guān)系配置,這樣可防止配置的虛擬目標地址過大超出存儲設(shè)備最大內(nèi)存時只要將虛擬目標地址減去偏移地址就能得到一個實際的新地址,然后根據(jù)這個新地址去存儲設(shè)備中能夠找到一個實際的目標地址。而不需要啟動DMA機制時,那么配置的虛擬目標地址將小于等于第一預(yù)值,此時偏移地址的值無關(guān)緊要,一般配置為零,也是為了防止配置過大使虛擬目標地址減去偏移地址后找不到實際的目標地址。所以這里偏移地址的大小需要根據(jù)虛擬目標地址的大小和存儲設(shè)備的內(nèi)存大小關(guān)系進行配置。
本發(fā)明提出的數(shù)據(jù)傳輸?shù)目刂蒲b置通過接收到數(shù)據(jù)傳輸指令時,根據(jù)數(shù)據(jù)的大小配置虛擬目標地址,然后判斷該虛擬目標地址是否大于第一預(yù)值,當虛擬目標地址大于第一預(yù)值時則啟動DMA機制控制數(shù)據(jù)傳輸,當虛擬目標地址小于等于第一預(yù)值時則由CPU控制數(shù)據(jù)傳輸。本發(fā)明能夠?qū)崿F(xiàn)DMA機制自動啟動,控制數(shù)據(jù)在存儲設(shè)備與外部設(shè)備之間快速、高效傳輸,減少CPU資源占用,提高系統(tǒng)性能,并且實現(xiàn)簡單。
以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)傳輸?shù)目刂品椒ǎ涮卣髟谟?,所述?shù)據(jù)傳輸?shù)目刂品椒òㄒ韵虏襟E: 501、接收到數(shù)據(jù)傳輸指令時,根據(jù)數(shù)據(jù)大小配置虛擬目標地址; 502、判斷配置的虛擬目標地址是否大于第一預(yù)值;若是,則執(zhí)行步驟S03,否則執(zhí)行步驟 S04 ; 503、啟動DMA機制控制數(shù)據(jù)傳輸; 504、由CPU控制數(shù)據(jù)傳輸。
2.如權(quán)利要求1所述的數(shù)據(jù)傳輸?shù)目刂品椒ǎ涮卣髟谟?,所述在?zhí)行步驟S03或步驟S04之后還包括: 505、將傳輸?shù)臄?shù)據(jù)存儲至虛擬目標地址對應(yīng)的實際目標地址中。
3.如權(quán)利要求1所述的數(shù)據(jù)傳輸?shù)目刂品椒?,其特征在于,所述根?jù)數(shù)據(jù)配置虛擬目標地址的同時還包括:配置一偏移地址。
4.如權(quán)利要求1或3所述的數(shù)據(jù)傳輸?shù)目刂品椒?,其特征在于,所述在?zhí)行步驟S03或步驟S04之后還包括: 506、將傳輸?shù)臄?shù)據(jù)存儲至虛擬目標地址減去偏移地址后的新地址所對應(yīng)的實際目標地址中。
5.一種數(shù)據(jù)傳輸?shù)目刂蒲b置,其特征在于,包括: 分析控制模塊,用于接收到數(shù)據(jù)傳輸指令時,根據(jù)數(shù)據(jù)大小配置虛擬目標地址; 判斷模塊,用于判斷配置的虛擬目標地址是否大于第一預(yù)值; 處理模塊,用于當虛擬目標地址大于第一預(yù)值時,啟動DMA機制控制數(shù)據(jù)傳輸;當虛擬目標地址小于等于第一預(yù)值時,由CPU控制數(shù)據(jù)傳輸。
6.如權(quán)利要求5所述的數(shù)據(jù)傳輸?shù)目刂蒲b置,其特征在于,還包括: 第一存儲模塊,用于將傳輸?shù)臄?shù)據(jù)存儲至虛擬目標地址對應(yīng)的實際目標地址中。
7.如權(quán)利要求5所述的數(shù)據(jù)傳輸?shù)目刂蒲b置,其特征在于,所述根據(jù)數(shù)據(jù)配置虛擬目標地址的同時還包括:配置一偏移地址。
8.如權(quán)利要求5或7所述的數(shù)據(jù)傳輸?shù)目刂蒲b置,其特征在于,還包括: 第二存儲模塊,用于將傳輸?shù)臄?shù)據(jù)存儲至虛擬目標地址減去偏移地址后的新地址所對應(yīng)的實際目標地址中。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)傳輸?shù)目刂品椒把b置,所述方法包括以下步驟接收到數(shù)據(jù)傳輸指令時,根據(jù)數(shù)據(jù)大小配置虛擬目標地址;判斷配置的虛擬目標地址是否大于第一預(yù)值;若是,則啟動DMA機制控制數(shù)據(jù)傳輸,否則由CPU控制數(shù)據(jù)傳輸。本發(fā)明能夠?qū)崿F(xiàn)DMA機制自動啟動,控制數(shù)據(jù)在存儲設(shè)備與外部設(shè)備之間快速、高效傳輸,減少CPU資源占用,提高系統(tǒng)性能,并且實現(xiàn)簡單。
文檔編號G06F13/28GK103164369SQ20131005768
公開日2013年6月19日 申請日期2013年2月22日 優(yōu)先權(quán)日2013年2月22日
發(fā)明者劉京芝 申請人:深圳市硅格半導體有限公司