[發(fā)明專利]一種共享內(nèi)存的地址映射方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201710909286.9 | 申請(qǐng)日: | 2017-09-29 |
| 公開(kāi)(公告)號(hào): | CN107729159B | 公開(kāi)(公告)日: | 2021-01-15 |
| 發(fā)明(設(shè)計(jì))人: | 趙冬梅;鄧曉陽(yáng) | 申請(qǐng)(專利權(quán))人: | 華為技術(shù)有限公司 |
| 主分類號(hào): | G06F9/54 | 分類號(hào): | G06F9/54 |
| 代理公司: | 北京中博世達(dá)專利商標(biāo)代理有限公司 11274 | 代理人: | 申健 |
| 地址: | 518129 廣東*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 共享 內(nèi)存 地址 映射 方法 裝置 | ||
本申請(qǐng)?zhí)峁┮环N共享內(nèi)存的地址映射方法及裝置,涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,用于提高共享內(nèi)存的各地址之間的轉(zhuǎn)換效率。該方法包括:當(dāng)?shù)谝豢刂破鹘邮盏降谝挥脩魬B(tài)進(jìn)程觸發(fā)的共享內(nèi)存映射請(qǐng)求時(shí),第一控制器從指定虛擬地址區(qū)間中獲取第一用戶態(tài)虛擬地址;第一控制器根據(jù)所述指定虛擬地址區(qū)間、第一用戶態(tài)虛擬地址和第一線性關(guān)系,確定第一用戶態(tài)虛擬地址對(duì)應(yīng)的第一內(nèi)核態(tài)虛擬地址,第一線性關(guān)系用于指示用戶態(tài)虛擬地址與內(nèi)核態(tài)虛擬地址之間的關(guān)系;根據(jù)第一內(nèi)核態(tài)虛擬地址和第二線性關(guān)系,確定共享內(nèi)存的第一物理地址,共享內(nèi)存為用戶態(tài)進(jìn)程和內(nèi)核態(tài)進(jìn)程共享的內(nèi)存,第二線性關(guān)系用于指示內(nèi)核態(tài)虛擬地址與物理地址之間的關(guān)系。
技術(shù)領(lǐng)域
本申請(qǐng)實(shí)施例涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及一種共享內(nèi)存的地址映射方法及裝置。
背景技術(shù)
目前,內(nèi)存部署逐漸由內(nèi)核態(tài)向用戶態(tài)切換,大部分業(yè)務(wù)已部署于用戶態(tài),部署于用戶態(tài)的內(nèi)存需要使用用戶態(tài)虛擬地址進(jìn)行訪問(wèn)。少部分業(yè)務(wù)(比如,驅(qū)動(dòng)等)仍部署于內(nèi)核態(tài),主要用于直接內(nèi)存存取(Direct Memory Access,DMA)、以及遠(yuǎn)程直接內(nèi)存存取(Remote Direct Memory Access,RDMA)操作。為了減小用戶態(tài)進(jìn)程間、以及用戶態(tài)進(jìn)程與內(nèi)核態(tài)進(jìn)程之間的數(shù)據(jù)拷貝,可以通過(guò)共享內(nèi)存的方式來(lái)實(shí)現(xiàn)。共享內(nèi)存是指允許多個(gè)進(jìn)程共享的一個(gè)邏輯內(nèi)存,共享內(nèi)存是進(jìn)程間共享數(shù)據(jù)的一種最快的方法。當(dāng)用戶態(tài)和內(nèi)核態(tài)的多個(gè)進(jìn)程訪問(wèn)同一共享內(nèi)存時(shí),該共享內(nèi)存的地址需要同時(shí)被映射到該多個(gè)進(jìn)程的地址空間中。
現(xiàn)有Linux系統(tǒng)中,提供了一種常用的用戶態(tài)與內(nèi)核態(tài)共享內(nèi)存映射機(jī)制,該共享內(nèi)存映射機(jī)制包括以下步驟:在用戶態(tài)通過(guò)系統(tǒng)調(diào)用函數(shù),系統(tǒng)自動(dòng)分配空閑的用戶態(tài)虛擬地址。在內(nèi)核態(tài)通過(guò)內(nèi)存分配函數(shù)分配一段內(nèi)存,得到該段內(nèi)存的虛擬地址。將該段內(nèi)存的虛擬地址通過(guò)系統(tǒng)函數(shù)轉(zhuǎn)換成頁(yè)框,并通過(guò)頁(yè)框與物理地址轉(zhuǎn)換函數(shù)將頁(yè)框轉(zhuǎn)換成對(duì)應(yīng)頁(yè)面的物理地址。最后,建立物理地址與用戶態(tài)虛擬地址之間的映射關(guān)系,從而實(shí)現(xiàn)共享內(nèi)存在用戶態(tài)與內(nèi)核態(tài)進(jìn)程間的映射。但是,由于系統(tǒng)自動(dòng)分配的用戶態(tài)虛擬地址比較隨機(jī),從而導(dǎo)致用戶態(tài)虛擬地址與內(nèi)存的虛擬地址之間的轉(zhuǎn)換無(wú)規(guī)律可循。同時(shí),內(nèi)存的虛擬地址與物理地址之間的轉(zhuǎn)換,需要兩次系統(tǒng)內(nèi)核函數(shù)的調(diào)用,因此,上述映射機(jī)制中的地址轉(zhuǎn)換效率較低。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種共享內(nèi)存的地址映射方法及裝置,解決了現(xiàn)有技術(shù)中共享內(nèi)存的各地址之間轉(zhuǎn)換效率低問(wèn)題。
為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
第一方面,提供一種共享內(nèi)存的地址映射方法,該方法包括:當(dāng)?shù)谝豢刂破鹘邮盏降谝挥脩魬B(tài)進(jìn)程觸發(fā)的共享內(nèi)存映射請(qǐng)求時(shí),第一控制器從指定虛擬地址區(qū)間中獲取第一用戶態(tài)虛擬地址;第一控制器根據(jù)該指定虛擬地址區(qū)間、第一用戶態(tài)虛擬地址和第一線性關(guān)系,確定第一用戶態(tài)虛擬地址對(duì)應(yīng)的第一內(nèi)核態(tài)虛擬地址,第一線性關(guān)系用于指示用戶態(tài)虛擬地址與內(nèi)核態(tài)虛擬地址之間的關(guān)系;根據(jù)第一內(nèi)核態(tài)虛擬地址和第二線性關(guān)系,確定共享內(nèi)存的第一物理地址,該共享內(nèi)存為用戶態(tài)進(jìn)程和內(nèi)核態(tài)進(jìn)程共享的內(nèi)存,第二線性關(guān)系用于指示內(nèi)核態(tài)虛擬地址與物理地址之間的關(guān)系。上述技術(shù)方案中,第一控制器可以通過(guò)指定用戶態(tài)虛擬地址區(qū)間和第一線性關(guān)系,實(shí)現(xiàn)用戶態(tài)虛擬地址與內(nèi)核態(tài)虛擬地址之間的線性轉(zhuǎn)換,通過(guò)第二線性關(guān)系實(shí)現(xiàn)內(nèi)核態(tài)虛擬地址與共享內(nèi)存的物理地址之間的線性轉(zhuǎn)換,從而可以提高各地址之間的轉(zhuǎn)換效率,進(jìn)而提高共享內(nèi)存中數(shù)據(jù)的訪問(wèn)效率。
在第一方面的一種可能的實(shí)現(xiàn)方式中,當(dāng)該指定虛擬地址區(qū)間的起始地址為A0,第一用戶態(tài)虛擬地址為A1,第一內(nèi)核態(tài)虛擬地址為A2時(shí),第一線性關(guān)系包括公式(1),式中m為常數(shù):
A2=A1-A0+m (1)。
在第一方面的一種可能的實(shí)現(xiàn)方式中,當(dāng)?shù)谝粌?nèi)核態(tài)虛擬地址為A2,第一物理地址為A3時(shí),第二線性關(guān)系包括公式(2),式中m為常數(shù):
A3=A2-m (2)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華為技術(shù)有限公司,未經(jīng)華為技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710909286.9/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 服務(wù)器、系統(tǒng)及信息共享方法
- 一種信息共享系統(tǒng)及信息共享方法
- 一種移動(dòng)終端的數(shù)據(jù)無(wú)線共享方法及該移動(dòng)終端
- 一種桌面共享系統(tǒng)及方法
- 一種用于共享移動(dòng)汽車電池的方法
- 一種基于物聯(lián)網(wǎng)的移動(dòng)共享方法及移動(dòng)共享系統(tǒng)
- 一種數(shù)據(jù)共享方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 基于云平臺(tái)的數(shù)據(jù)共享方法、裝置、共享平臺(tái)及存儲(chǔ)介質(zhì)
- 確定共享乘坐度量
- 設(shè)備功能共享方法、裝置、終端及存儲(chǔ)介質(zhì)





