[發(fā)明專利]一種實(shí)現(xiàn)DMA數(shù)據(jù)傳輸?shù)姆椒把b置有效
| 申請(qǐng)?zhí)枺?/td> | 200910041976.2 | 申請(qǐng)日: | 2009-08-20 |
| 公開(kāi)(公告)號(hào): | CN101634975A | 公開(kāi)(公告)日: | 2010-01-27 |
| 發(fā)明(設(shè)計(jì))人: | 趙群英;田啟金 | 申請(qǐng)(專利權(quán))人: | 廣東威創(chuàng)視訊科技股份有限公司 |
| 主分類號(hào): | G06F13/28 | 分類號(hào): | G06F13/28;G06F9/48 |
| 代理公司: | 廣州市華學(xué)知識(shí)產(chǎn)權(quán)代理有限公司 | 代理人: | 李衛(wèi)東;黃 磊 |
| 地址: | 510663廣東省廣*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 實(shí)現(xiàn) dma 數(shù)據(jù)傳輸 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及一種不影響設(shè)備普通I/O讀寫(xiě)操作快速實(shí)現(xiàn)的海量數(shù)據(jù)DirectMemory?Access(直接存儲(chǔ)器訪問(wèn),以下簡(jiǎn)稱DMA)傳輸?shù)姆椒把b置。
背景技術(shù)
在含有中央處理器(以下簡(jiǎn)稱CPU)的系統(tǒng)中,為了提高系統(tǒng)數(shù)據(jù)傳輸效率,在進(jìn)行外設(shè)與存儲(chǔ)器之間大量數(shù)據(jù)傳輸操作時(shí),通常通過(guò)PCIE接口,采用DMA方式實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的快速傳輸操作。DMA操作主要通過(guò)DMA控制器來(lái)實(shí)現(xiàn),DMA控制器在傳輸數(shù)據(jù)時(shí),通過(guò)硬件邏輯電路用固定順序發(fā)地址和讀/寫(xiě)信號(hào)來(lái)實(shí)現(xiàn)高速數(shù)據(jù)傳輸;在此過(guò)程中,數(shù)據(jù)不經(jīng)過(guò)CPU而是直接在外設(shè)與存儲(chǔ)器之間傳輸。
在現(xiàn)有技術(shù)中,在DMA數(shù)據(jù)傳輸過(guò)程中,DMA控制器占有PCIE總線,CPU對(duì)設(shè)備進(jìn)行I/O讀寫(xiě)操作。由于在DMA傳輸數(shù)據(jù)過(guò)程中PCIE總線被DMA控制器占有,所以該情況下是不能對(duì)設(shè)備進(jìn)行I/O讀寫(xiě)操作的,否則會(huì)造成系統(tǒng)死機(jī)或者崩潰。在設(shè)備DMA傳輸過(guò)程中,如果需要進(jìn)行I/O讀寫(xiě)操作,目前的方法是等待DMA傳輸完成,釋放總線控制權(quán),CPU獲取總線控制權(quán)后再完成I/O讀寫(xiě)操作。目前的這種方法在DMA傳輸數(shù)據(jù)量大的情況下,I/O讀寫(xiě)操作時(shí)間延遲將會(huì)非常嚴(yán)重。例如總線傳輸速度為100兆字節(jié)/秒,一次DMA傳輸為10兆字節(jié)數(shù)據(jù),完成該次DMA操作時(shí)間約100毫秒,假設(shè)在DMA剛啟動(dòng)時(shí)應(yīng)用程序需要對(duì)設(shè)備進(jìn)行一次I/O讀寫(xiě)操作,本次I/O讀寫(xiě)操作必須等待本次DMA完成再進(jìn)行,延遲時(shí)間至少100毫秒。在高速采集系統(tǒng)中,延時(shí)100毫秒是非常嚴(yán)重的,所以解決或改善這個(gè)問(wèn)題有深遠(yuǎn)的現(xiàn)實(shí)意義。
發(fā)明內(nèi)容
本發(fā)明的目的主要是解決上述現(xiàn)有技術(shù)所存在的問(wèn)題,提供一種實(shí)現(xiàn)DMA數(shù)據(jù)傳輸?shù)姆椒把b置,在海量數(shù)據(jù)DMA過(guò)程中仍然能對(duì)設(shè)備進(jìn)行快速的I/O讀寫(xiě)操作。
本發(fā)明采用如下技術(shù)方案實(shí)現(xiàn)上述目的:實(shí)現(xiàn)DMA數(shù)據(jù)傳輸?shù)姆椒?,其傳輸過(guò)程為:DMA傳輸模塊把DMA請(qǐng)求傳輸?shù)目倲?shù)據(jù)分割成若干個(gè)DMA傳輸單元后再通過(guò)通用DMA控制器逐個(gè)傳輸;每一DMA傳輸單元的傳輸完成后通用DMA控制器發(fā)送一個(gè)中斷給DMA傳輸模塊,然后DMA傳輸模塊獲取中斷并累計(jì)DMA傳輸數(shù)據(jù)量大小,同時(shí)中斷處理模塊查詢是否存在I/O讀寫(xiě)操作請(qǐng)求,若有則響應(yīng)I/O讀寫(xiě)請(qǐng)求,等I/O讀寫(xiě)操作完成后清除中斷標(biāo)識(shí),若無(wú)I/O讀寫(xiě)操作請(qǐng)求則中斷處理模塊直接清除中斷標(biāo)識(shí);中斷標(biāo)識(shí)清除后啟動(dòng)下一個(gè)DMA傳輸單元的傳輸,直至DMA請(qǐng)求傳輸?shù)目倲?shù)據(jù)傳輸完成。
具體地,上述實(shí)現(xiàn)DMA數(shù)據(jù)傳輸?shù)姆椒òㄈ缦虏襟E:
步驟1:DMA傳輸控制模塊收到DMA傳輸請(qǐng)求并根據(jù)DMA傳輸請(qǐng)求把發(fā)起DMA操作的源地址、目標(biāo)地址、DMA傳輸?shù)目偞笮『兔總€(gè)DMA傳輸單元的大小發(fā)送到DMA傳輸模塊,同時(shí)設(shè)置每個(gè)DMA傳輸單元的大小;
步驟2:DMA傳輸模塊根據(jù)設(shè)定好的每個(gè)DMA傳輸單元傳輸數(shù)據(jù)的大小把DMA請(qǐng)求傳輸?shù)目倲?shù)據(jù)請(qǐng)求分成一個(gè)或多個(gè)DMA傳輸單元;
步驟3:DMA傳輸模塊根據(jù)順序依次把各個(gè)DMA傳輸單元發(fā)送給通用DMA控制器進(jìn)行DMA傳輸操作;同時(shí)I/O操作控制模塊在DMA數(shù)據(jù)傳輸過(guò)程中,收到I/O讀寫(xiě)操作請(qǐng)求,則把該I/O讀寫(xiě)操作請(qǐng)求放入I/O隊(duì)列中;
步驟4:通用DMA控制器每完成一個(gè)DMA傳輸單元的傳輸就會(huì)發(fā)送一個(gè)中斷給DMA傳輸模塊;DMA傳輸模塊收到此中斷后,判斷DMA請(qǐng)求傳輸?shù)目倲?shù)據(jù)是否傳輸結(jié)束,并修改DMA傳輸模塊的DMA參數(shù)寄存器里所存儲(chǔ)的已完成數(shù)據(jù)傳輸數(shù)量,產(chǎn)生一個(gè)中斷給中斷處理模塊;
步驟5:中斷處理模塊接收到DMA傳輸模塊發(fā)送的中斷后,若DMA請(qǐng)求傳輸?shù)目倲?shù)據(jù)沒(méi)有傳輸完成則查詢I/O隊(duì)列,如果存在I/O讀寫(xiě)操作請(qǐng)求,則I/O讀寫(xiě)操作控制模塊把I/O隊(duì)列的I/O讀寫(xiě)操作請(qǐng)求發(fā)送給I/O讀寫(xiě)操作模塊,等待I/O讀寫(xiě)操作完成后,中斷處理模塊清除DMA中斷標(biāo)識(shí),執(zhí)行步驟6;如果無(wú)I/O讀寫(xiě)操作請(qǐng)求,則中斷處理模塊直接清除DMA中斷標(biāo)識(shí),執(zhí)行步驟6;若DMA請(qǐng)求傳輸?shù)目倲?shù)據(jù)已經(jīng)傳輸完成,清除DMA中斷標(biāo)識(shí),DMA數(shù)據(jù)傳輸結(jié)束;
步驟6:DMA傳輸模塊等待DMA中斷標(biāo)識(shí)被清除,當(dāng)中斷標(biāo)識(shí)被清除后,則啟動(dòng)下一個(gè)DMA傳輸單元的傳輸,執(zhí)行步驟7;
步驟7:執(zhí)行步驟3、步驟4、步驟5、步驟6,直到DMA請(qǐng)求傳輸?shù)目倲?shù)據(jù)傳輸完成,結(jié)束。
優(yōu)選地,步驟1所述DMA傳輸單元的大小按下面的方法計(jì)算:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廣東威創(chuàng)視訊科技股份有限公司,未經(jīng)廣東威創(chuàng)視訊科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910041976.2/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 上一篇:基于OpenGL的PBO創(chuàng)建方法和像素?cái)?shù)據(jù)傳遞方法及其對(duì)應(yīng)裝置
- 下一篇:一種字符輸入過(guò)程中展現(xiàn)候選項(xiàng)的方法及裝置
- 同類專利
- 專利分類
- 互動(dòng)業(yè)務(wù)終端、實(shí)現(xiàn)系統(tǒng)及實(shí)現(xiàn)方法
- 街景地圖的實(shí)現(xiàn)方法和實(shí)現(xiàn)系統(tǒng)
- 游戲?qū)崿F(xiàn)系統(tǒng)和游戲?qū)崿F(xiàn)方法
- 圖像實(shí)現(xiàn)裝置及其圖像實(shí)現(xiàn)方法
- 增強(qiáng)現(xiàn)實(shí)的實(shí)現(xiàn)方法以及實(shí)現(xiàn)裝置
- 軟件架構(gòu)的實(shí)現(xiàn)方法和實(shí)現(xiàn)平臺(tái)
- 數(shù)值預(yù)報(bào)的實(shí)現(xiàn)方法及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其冬眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其睡眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 輸入設(shè)備實(shí)現(xiàn)方法及其實(shí)現(xiàn)裝置
- 直接存取器存取槽分配
- 執(zhí)行DMA數(shù)據(jù)傳輸?shù)脑O(shè)備和方法
- 用于混合DMA隊(duì)列和DMA表的方法和裝置
- DMA控制系統(tǒng)、打印裝置以及轉(zhuǎn)移指示方法
- 用于使用分布式移動(dòng)體系結(jié)構(gòu)路由呼叫的系統(tǒng)、方法和設(shè)備
- 測(cè)量直接存儲(chǔ)器存取吞吐量
- 高完整性DMA操作的系統(tǒng)和方法
- 用于使用分布式移動(dòng)體系結(jié)構(gòu)路由呼叫的系統(tǒng)、方法和設(shè)備
- 用于高速互連網(wǎng)絡(luò)接口芯片的DMA通信裝置、芯片、設(shè)備及方法
- 一種NVMe命令處理器及其處理方法
- 一種并發(fā)數(shù)據(jù)傳輸控制方法、裝置及終端
- 數(shù)據(jù)傳輸處理方法和數(shù)據(jù)傳輸器
- 一種數(shù)據(jù)傳輸方法及裝置
- 數(shù)據(jù)傳輸方法、裝置及設(shè)備
- 一種數(shù)據(jù)傳輸終端、方法及系統(tǒng)
- 一種物聯(lián)網(wǎng)數(shù)據(jù)傳輸方式的選擇方法和裝置
- 數(shù)據(jù)傳輸方法、數(shù)據(jù)傳輸裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種基于電價(jià)的非實(shí)時(shí)數(shù)據(jù)傳輸調(diào)度方法
- 基于云計(jì)算的數(shù)據(jù)傳輸處理方法、裝置及系統(tǒng)
- 一種數(shù)據(jù)處理方法、裝置及存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





