[發(fā)明專利]一種內(nèi)存分配方法和裝置有效
| 申請?zhí)枺?/td> | 202010216167.7 | 申請日: | 2020-03-25 |
| 公開(公告)號: | CN111444016B | 公開(公告)日: | 2023-10-13 |
| 發(fā)明(設(shè)計(jì))人: | 薛小明 | 申請(專利權(quán))人: | 瑞芯微電子股份有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F12/02 |
| 代理公司: | 福州市景弘專利代理事務(wù)所(普通合伙) 35219 | 代理人: | 徐劍兵;張忠波 |
| 地址: | 350003 福建省*** | 國省代碼: | 福建;35 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 內(nèi)存 分配 方法 裝置 | ||
發(fā)明公開了一種內(nèi)存分配方法,包括如下步驟:掃描每段IOPA對應(yīng)的內(nèi)存地址信息。按照內(nèi)存地址信息中對應(yīng)的列信息進(jìn)行順序化,更新IOPA對應(yīng)的內(nèi)存地址信息為順序化后的內(nèi)存地址信息。將排序后的IOPA發(fā)送至IOMMU,并進(jìn)行IOVA的映射。上述技術(shù)方案本案將分配到的每段IOPA的內(nèi)存地址信息進(jìn)行掃描,將連續(xù)PFN的地址IOPA進(jìn)行順序化。再對不了連續(xù)PFN的地址的IOPA的index進(jìn)行掃描,處于同一個(gè)chunk內(nèi)的也進(jìn)行順序化。減少因?yàn)閮?nèi)存碎片導(dǎo)致的顯示模塊的性能損耗,同時(shí)降低開銷,提升產(chǎn)品性能。
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)讀取領(lǐng)域,尤其涉及一種內(nèi)存分配方法和裝置。
背景技術(shù)
目前業(yè)內(nèi)嵌入式設(shè)備的顯示模塊對于內(nèi)存的訪問都有使用IOMMU,其功能是將非連續(xù)的物理內(nèi)存(IOPA)映射成連續(xù)的虛擬內(nèi)存(IOVA),本質(zhì)原因是顯示模塊的DMA需要訪問連續(xù)的地址,但是系統(tǒng)并不能總是保證大塊連續(xù)的物理地址。但是當(dāng)系統(tǒng)長時(shí)間運(yùn)行后,IOPA的碎片化更加嚴(yán)重后,即使IOVA能夠提供線性連續(xù)的地址給顯示模塊的DMA使用,但是性能會有不同程度的下降。其原因是碎片化的IOPA可能導(dǎo)致對其訪問時(shí)需要切換DDR的列地址,增加了額外的開銷;且如果IOPA不連續(xù)且跨越列地址的情況加劇,則顯示模塊訪問這些地址的性能將受到嚴(yán)重影響。
發(fā)明內(nèi)容
為此,需要提供一種內(nèi)存分配方法,減少列地址的切換,加快訪問速度,減少開銷。
為實(shí)現(xiàn)上述目的,發(fā)明人提供了一種內(nèi)存分配方法,包括如下步驟:
掃描每段IOPA對應(yīng)的內(nèi)存地址信息;
按照內(nèi)存地址信息中對應(yīng)的列信息進(jìn)行順序化,更新IOPA對應(yīng)的內(nèi)存地址信息為順序化后的內(nèi)存地址信息;
將排序后的IOPA發(fā)送至IOMMU,并進(jìn)行IOVA的映射。
進(jìn)一步地,還包括步驟:
根據(jù)內(nèi)存地址信息中的PFN判斷PFN是否連續(xù);
若是連續(xù),則對連續(xù)的PFN的IOPA進(jìn)行順序化;
若不是連續(xù),則對不連續(xù)的PFN的IOPA的index進(jìn)行掃描,將位于同一個(gè)chunk內(nèi)的IOPA進(jìn)行順序化。
進(jìn)一步地,還包括步驟:
DMA接收并發(fā)出IOVA,IOMMU根據(jù)接收到的IOVA調(diào)用順序化后的IOPA。
進(jìn)一步地,“對連續(xù)的PFN的IOPA進(jìn)行順序化”包括步驟:
按序依次抽取每個(gè)chunk鏈表的第一行,并進(jìn)行排序;
按序依次抽取每個(gè)chunk鏈表的第二行,并進(jìn)行排序;
直至抽取完所有行。
進(jìn)一步地,“將位于同一個(gè)chunk內(nèi)的IOPA進(jìn)行順序化”前還包括步驟:
判斷IOPA是否處于同一個(gè)chunk內(nèi);
若IOPA處于同一個(gè)chunk內(nèi),,則進(jìn)行所述將位于同一個(gè)chunk內(nèi)的IOPA進(jìn)行順序化步驟。
發(fā)明人還提供了一種內(nèi)存分配裝置,所述裝置用于執(zhí)行上述實(shí)施例所述的方法。
區(qū)別于現(xiàn)有技術(shù),上述技術(shù)方案本案將分配到的每段IOPA的內(nèi)存地址信息進(jìn)行掃描,將連續(xù)PFN的地址IOPA進(jìn)行順序化。再對不了連續(xù)PFN的地址的IOPA的index進(jìn)行掃描,處于同一個(gè)chunk內(nèi)的也進(jìn)行順序化。減少因?yàn)閮?nèi)存碎片導(dǎo)致的顯示模塊的性能損耗,同時(shí)降低開銷,提升產(chǎn)品性能。
附圖說明
圖1為碎片化良好時(shí)示意圖;
圖2為碎片化嚴(yán)重時(shí)示意圖;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于瑞芯微電子股份有限公司,未經(jīng)瑞芯微電子股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010216167.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





