成都凌中盈智科技服務有限公司;成都華瑞數鑫科技有限公司王偉獲國家專利權
買專利賣專利找龍圖騰,真高效! 查專利查商標用IPTOP,全免費!專利年費監控用IP管家,真方便!
龍圖騰網獲悉成都凌中盈智科技服務有限公司;成都華瑞數鑫科技有限公司申請的專利一種DMA高效數據傳輸的容錯方法及其系統獲國家發明授權專利權,本發明授權專利權由國家知識產權局授予,授權公告號為:CN120086058B 。
龍圖騰網通過國家知識產權局官網在2025-09-02發布的發明授權授權公告中獲悉:該發明授權的專利申請號/專利號為:202510567728.0,技術領域涉及:G06F11/10;該發明授權一種DMA高效數據傳輸的容錯方法及其系統是由王偉;車巖磊設計研發完成,并于2025-04-30向國家知識產權局提交的專利申請。
本一種DMA高效數據傳輸的容錯方法及其系統在說明書摘要公布了:本發明涉及DMA數據傳輸領域,是一種DMA高效數據傳輸的容錯方法及其系統,解決現有技術中從DMA緩存讀取到錯誤數據的概率的問題。本發明連接主機設備驅動接口、DMA;所述DMA設置于外設驅動中,包括用于緩存IO數據的IO池和硬件隊列,所述DMA獲取IO數據,對數據進行校驗;本發明通過DMA環形緩沖和CPU均衡等方式提高DMA傳輸效率、可用性、可靠性和數據一致性;對下發外設的數據進行改造強化IO數據ID;對外設通過DMA返回的數據進行正確性校驗,降低從DMA緩存讀取到錯誤數據的概率。
本發明授權一種DMA高效數據傳輸的容錯方法及其系統在權利要求書中公布了:1.一種DMA高效數據傳輸的容錯方法,其特征在于:包括以下: 步驟1:初始化系統:初始化IO池和硬件隊列,根據CPU數量和外設接受的最大IO數量M設置硬件隊列數量N,其中IO池的長度小于M,N小于CPU數量;初始化每個硬件隊列的輸入緩存隊列IQ和輸出緩存隊列OQ,輸入緩存隊列IQ和輸出緩存隊列OQ隊列長度X,X=MIN(MN,32),初始化輸入緩存隊列IQ和輸出緩存隊列OQ隊列的PI和CI;其中PI指生產者索引,代表當前應該寫入數據的環形隊列的位置,CI指消費者索引,代表消費者當前應該讀取數據的環形隊列的位置; 步驟2:IO池接收IO數據:IO數據來自主機驅動設備驅動接口,如果IO池有空閑空間,則保存IO數據;如果IO池沒有空閑空間,則返回隊列忙的信息; 步驟3:硬件隊列從IO池中獲取IO數據作為IO元數據,并將IO池的數據索引、ID、以及該IO元數據保存至輸入緩存隊列IQ,并修改PI;其中,IO元數據表示IO數據的屬性,所述屬性包括讀寫操作類型、IO數據對應的DMA地址和IO數據大小;所述IO池的數據索引指IO數據在IO池中的存儲位置索引,通過該存儲位置索引可以在IO池中快速找到該IO數據;所述ID表示IO數據的唯一標識符,用于唯一標識特定的IO數據,IO數據中自帶的數據ID; 步驟4:外設處理IO元數據:外設根據PI的變化,接收IO元數據,根據IO元數據,獲取IO元數據并進行處理;處理完成后,修改輸入緩存隊列IQ的CI,將處理結果寫入IO池隊列和輸出緩存隊列OQ,修改輸出緩存隊列OQ的PI; 步驟5:輸出緩存隊列OQ:輸出緩存隊列OQ收到PI變化后,對外設發來的IO響應消息進行處理,并訪問輸出緩存隊列OQ中CI指向的緩存,該緩存中保存有IO池索引,根據IO池索引找到對應的IO數據,對比獲取處理后的IO數據和IO元數據,對數據進行校驗,即數據隊列驗證、IO數據引用驗證和數據ID驗證;如果校驗數據為正確數據,那么進入步驟6;數據校驗失敗,則進行步驟7; 步驟6:修改輸出緩存隊列OQ的CI,完成本次IO數據處理,釋放IO數據在IO池和硬件隊列中的空間,并且將處理后的IO數據返回給設備驅動接口; 步驟7:設置內存屏障:在IO元數據響應函數驗證OP隊列中CI指向數據校驗錯誤,則設置內存屏障來維護DMA緩存數據和CPU緩存數據的數據一致性,重新讀取DMA緩存數據,并進行數據校驗;如果校驗數據為正確數據,那么進入步驟6;如果校驗失敗,則進入步驟8; 步驟8:清除CPU緩存:重新讀取DMA緩存數據,并進行數據校驗;如果校驗數據為正確數據,那么進入步驟6;如果仍然沒有讀取到正確數據,那么在硬件隊列中記錄該輸出緩存隊列OQ未達數據的CI值,該IO元數據歸類為未達數據,進入步驟9; 步驟9:修改輸出緩存隊列OQ的CI:通知外設完成本次處理,但不通知設備驅動接口本次處理失敗;設置該未達數據的超時處理函數,該超時處理函數為異步處理,即異步等待設定的時間后,通知設備驅動接口該未達數據超時;等待數據超時; 步驟10:輸出緩存隊列OQ繼續等待新數據:在超時時間內有等待該輸出緩存隊列OQ是否有新數據到來;如果沒有新數據,那么通知設備驅動接口,該IO數據處理超時;如果有新數據到來,那么進入步驟11; 步驟11:輸出緩存隊列OQ從外設收到新的數據:即輸出緩存隊列OQ的PI發生變化,那么檢查硬件隊列中記錄是否有未達數據的記錄,如果沒有未達數據,那么進入步驟5;如果有未達數據,那么進入步驟12; 步驟12:判斷未達數據的CI指向輸出緩存隊列OQ位置:該位置的數據是否已經被更新,如果沒有更新或數據檢查不正確,那么通知設備驅動接口,該IO數據處理超時,在硬件隊列中刪除未達數據的記錄,完成未達數據的處理;如果有數據更新并且數據校驗正確,那么進入步驟13; 步驟13:在未達數據的CI位置訪問數據,完成本次IO數據處理,并且將IO數據處理結果返回給設備驅動接口;不管數據是否正確,硬件隊列刪除未達數據的記錄;恢復輸出緩存隊列OQ中新的數據處理,即:進入步驟5。
如需購買、轉讓、實施、許可或投資類似專利技術,可聯系本專利的申請人或專利權人成都凌中盈智科技服務有限公司;成都華瑞數鑫科技有限公司,其通訊地址為:610000 四川省成都市金牛區西安南路69號1棟6層3號;或者聯系龍圖騰網官方客服,聯系龍圖騰網可撥打電話0551-65771310或微信搜索“龍圖騰網”。
1、本報告根據公開、合法渠道獲得相關數據和信息,力求客觀、公正,但并不保證數據的最終完整性和準確性。
2、報告中的分析和結論僅反映本公司于發布本報告當日的職業理解,僅供參考使用,不能作為本公司承擔任何法律責任的依據或者憑證。