[發明專利]一種基于sgl鏈表的DMA傳輸方法在審
| 申請號: | 201810025217.6 | 申請日: | 2018-01-11 |
| 公開(公告)號: | CN108228497A | 公開(公告)日: | 2018-06-29 |
| 發明(設計)人: | 鄭文霞;彭鵬;姜黎 | 申請(專利權)人: | 湖南國科微電子股份有限公司 |
| 主分類號: | G06F13/28 | 分類號: | G06F13/28 |
| 代理公司: | 北京弘權知識產權代理事務所(普通合伙) 11363 | 代理人: | 逯長明;許偉群 |
| 地址: | 410100 湖南省長*** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 鏈表 寄存 數據傳輸效率 傳輸數據 存儲地址 單一操作 地址連續 物理地址 寄存器 指向 傳輸 配置 應用 | ||
1.一種基于sgl鏈表的DMA傳輸方法,應用于CPU中,其特征在于,包括以下步驟:
確定當次DMA傳輸的數據的大小和所有存儲地址;
配置sgl entry鏈表,用第一寄存器SGL MEN來存儲所述sgl entry鏈表,所述sglentry鏈表包括至少一個sgl entry,每個sgl entry攜帶一塊存儲地址連續的被傳輸數據的數據大小信息、所述被傳輸數據的存儲地址信息以及下一個sgl entry對應的被傳輸數據的存儲地址信息,其中,每個sgl entry對應一個index,每個index指向一個第一寄存器中的寄存地址,所述寄存地址連續;
確定當前DMA傳輸對應的sgl entry鏈表的起始sgl entry對應的index在第一寄存器SGL MEN中的寄存地址;
發起DMA傳輸命令,將所述DMA傳輸命令發送至DMA控制器,使得所述DMA控制器根據所述起始sgl entry對應的index,從所述SGL MEN中找到相應的起始sgl entry后,開始按照所述sgl entry中的存儲地址傳輸數據至第二寄存器DATA MEN中。
2.根據權利要求1所述的一種基于sgl鏈表的DMA傳輸方法,其特征在于,所述sglentry鏈表最大支持2048個sgl entry。
3.根據權利要求1所述的一種基于sgl鏈表的DMA傳輸方法,其特征在于,DMA控制器對sgl entry中的被傳輸數據的最小傳輸單位為512Byte。
4.根據權利要求1所述的一種基于sgl鏈表的DMA傳輸方法,其特征在于,所述發起DMA傳輸命令,將所述DMA傳輸命令發送至DMA控制器,使得所述DMA控制器根據所述起始sglentry對應的index,從所述SGL MEN中找到相應的起始sgl entry后,開始按照sgl entry中的存儲地址傳輸數據至第二寄存器DATA MEN中,具體是指,
DMA控制器根據起始sgl entry對應的起始sgl entry index,從SGL MEN中找到起始sgl entry中對應的第一塊存儲地址連續的被傳輸數據的起始存儲地址,按照所述起始存儲地址將所述起始sgl entry中對應的被傳輸數據,按照所述數據大小信息傳輸至第二寄存器DATA MEN中;
當完成對所述起始sgl entry中對應的被傳輸數據的傳輸后,從SGL MEN中找到與起始sgl entry index的寄存地址連續的下一個index對應的第二個sgl entry,將所述第二個sgl entry對應的第二塊地址連續的被傳輸數據,按照第二塊地址連續的的起始存儲地址將所述第二個sgl entry中對應的被傳輸數據的傳輸至第二寄存器DATA MEN中。
5.根據權利要求1所述的一種基于sgl鏈表的DMA傳輸方法,其特征在于,還包括:
將所述第二寄存器DATA MEN中的地址分區,且獲取所述每個分區的邊界地址;
依次傳輸所述被傳輸數據至所述第二寄存器DATA MEN,且實時寄存在第二寄存器DATAMEN的地址中;
判斷當前寄存的被傳輸數據在所述第二寄存器DATA MEN中的寄存地址是否為所述邊界地址,如果是,則使得下一次傳輸至第二寄存器的被傳輸數據存儲至分區的起始地址。
6.根據權利要求1所述的一種基于sgl鏈表的DMA傳輸方法,其特征在于,每個sglentry鏈表中至少包括一個起始sgl entry index,與每個起始sgl entry index向對應的index的寄存地址之間均不連續。
7.根據權利要求1所述的一種基于sgl鏈表的DMA傳輸方法,其特征在于,所述發起DMA傳輸命令,將所述DMA傳輸命令發送至DMA控制器,使得所述DMA控制器根據所述起始sglentry index,從所述SGL MEN中找到相應的起始sgl entry后,開始按照sgl entry鏈表中的index傳輸數據至第二寄存器DATA MEN中之后,還包括:
判斷是否收到中斷請求,如果是,則重新確定當前DMA傳輸對應的sgl entry鏈表的起始sgl entry index;
其中,中斷請求是指所述當前DMA傳輸對應的sgl entry鏈表中的每個index對應儲存的sgl entry中被傳輸數據的存儲地址和/或下一個sgl entry對應的被傳輸數據的存儲地址為無效地址,無法按照所述無效地址傳輸數據至第二寄存器DATA MEN時,DMA控制器向CPU發出的暫停數據傳輸的請求。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于湖南國科微電子股份有限公司,未經湖南國科微電子股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810025217.6/1.html,轉載請聲明來源鉆瓜專利網。





