[發(fā)明專利]一種內(nèi)存保護(hù)方法、系統(tǒng)及網(wǎng)絡(luò)接口控制器在審
| 申請?zhí)枺?/td> | 201310467169.3 | 申請日: | 2013-10-09 |
| 公開(公告)號: | CN103488588A | 公開(公告)日: | 2014-01-01 |
| 發(fā)明(設(shè)計)人: | 劉小麗;曹政;安學(xué)軍;張佩珩;孫凝暉 | 申請(專利權(quán))人: | 中國科學(xué)院計算技術(shù)研究所 |
| 主分類號: | G06F12/14 | 分類號: | G06F12/14 |
| 代理公司: | 北京泛華偉業(yè)知識產(chǎn)權(quán)代理有限公司 11280 | 代理人: | 王勇 |
| 地址: | 100190 北*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 內(nèi)存 保護(hù) 方法 系統(tǒng) 網(wǎng)絡(luò) 接口 控制器 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及高性能用戶級通信技術(shù)領(lǐng)域,特別涉及一種內(nèi)存保護(hù)方法、系統(tǒng)及網(wǎng)絡(luò)接口控制器。
背景技術(shù)
在多計算機(jī)節(jié)點系統(tǒng)中,節(jié)點間通過間接網(wǎng)絡(luò)或者直接網(wǎng)絡(luò)互連。由于計算機(jī)節(jié)點之間經(jīng)常需要進(jìn)行通信和數(shù)據(jù)交換,且消息傳遞的性能會影響通信的性能,因而靈活高效地將消息數(shù)據(jù)從一個節(jié)點的內(nèi)存復(fù)制到另一個節(jié)點的內(nèi)存中,能夠為多計算機(jī)節(jié)點系統(tǒng)提供的強(qiáng)大的通信能力。由處理器直接處理內(nèi)存數(shù)據(jù)的存取會帶來巨大的處理器開銷,而直接內(nèi)存存取(DMA)技術(shù)能夠避免處理器將處理能力浪費(fèi)在簡單重復(fù)的內(nèi)存讀寫操作中,因此多計算機(jī)節(jié)點系統(tǒng)中各節(jié)點間通信時通常采用DMA技術(shù)(如遠(yuǎn)程直接內(nèi)存存取RDMA)。
在計算機(jī)操作系統(tǒng)的內(nèi)存管理技術(shù)中,程序通常直接使用虛擬地址(也叫線性地址)對內(nèi)存進(jìn)行讀寫操作,這些虛擬地址在運(yùn)行時被轉(zhuǎn)換成物理地址。由虛擬地址構(gòu)成的虛擬內(nèi)存空間通常劃分為頁,一個典型的頁面大小是4KB,也有4MB甚至1GB的大頁面。計算機(jī)中的內(nèi)存管理單元(MMU)使用頁表(page?table)記錄應(yīng)用程序的虛擬地址到物理地址的映射,并在程序運(yùn)行時進(jìn)行轉(zhuǎn)換。
傳統(tǒng)的DMA方式首先要將DMA操作的虛擬地址通過MMU轉(zhuǎn)成物理地址,然后應(yīng)用程序再向I/O設(shè)備發(fā)起DMA請求,告知要通過I/O設(shè)備發(fā)送的數(shù)據(jù)的物理地址或者I/O設(shè)備接收到的數(shù)據(jù)可存儲的物理地址。然而,這樣做可能存在應(yīng)用程序誤操作或者惡意操作,例如發(fā)起一個對不允許訪問的內(nèi)存地址的訪問,從而引起不良后果;同時,虛擬地址轉(zhuǎn)換成物理地址是一個處理器參與的過程,增加了I/O操作的延遲,影響了I/O性能。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供一種內(nèi)存保護(hù)方法、系統(tǒng)和網(wǎng)絡(luò)接口控制器。
根據(jù)本發(fā)明的一個實施例,提供一種內(nèi)存保護(hù)方法,所述方法包括:
步驟1)、由可信實體在應(yīng)用程序發(fā)送的訪存指令中插入KEY,所述KEY與分配給該應(yīng)用程序的虛擬內(nèi)存空間相對應(yīng);
步驟2)、由網(wǎng)絡(luò)接口控制器參照內(nèi)存保護(hù)表判斷所述訪存指令是否具有訪存權(quán)限,以決定是否允許訪存指令的執(zhí)行;所述內(nèi)存保護(hù)表中的每個表項描述應(yīng)用程序的KEY與分配給該應(yīng)用程序的虛擬內(nèi)存空間的映射。
在一個實施例中,步驟1)之前還包括:
步驟0)、在檢測到應(yīng)用程序申請注冊虛擬內(nèi)存空間時,由系統(tǒng)為該應(yīng)用程序注冊虛擬內(nèi)存空間,由可信實體為該應(yīng)用程序分配與該虛擬內(nèi)存空間相對應(yīng)的KEY,并且將分配給該應(yīng)用程序的虛擬內(nèi)存空間信息寫入內(nèi)存保護(hù)表和虛實地址映射表中;其中所述虛實地址映射表描述虛擬頁面到物理頁框的頁面映射。
在進(jìn)一步的實施例中,步驟0)之前還包括:構(gòu)建內(nèi)存保護(hù)表和虛實地址映射表。
在進(jìn)一步的實施例中,步驟0)包括:
步驟i)、應(yīng)用程序申請注冊虛擬內(nèi)存空間,向系統(tǒng)輸入描述該虛擬內(nèi)存空間相關(guān)屬性的參數(shù),包括但不限于其起始虛擬地址、大小和訪問權(quán)限;
步驟ii)、檢測到所述應(yīng)用程序申請注冊虛擬內(nèi)存空間,由系統(tǒng)為該應(yīng)用程序注冊虛擬內(nèi)存空間,由可信實體為該應(yīng)用程序分配與該虛擬內(nèi)存空間相對應(yīng)的KEY;
步驟iii)、將該虛擬內(nèi)存空間所占頁面和物理頁框的映射寫入所述虛實地址映射表,將記錄該虛擬內(nèi)存空間的虛實地址映射的第一個表項的物理地址作為該虛擬內(nèi)存空間對應(yīng)虛實地址映射的起始物理地址,連同該虛擬內(nèi)存空間的起始地址、大小和訪問權(quán)限寫入所述內(nèi)存保護(hù)表中與分配的KEY值相對應(yīng)的表項里。
在一個實施例中,步驟2)之前還包括:將最近查詢過的內(nèi)存保護(hù)表表項及虛實地址映射表表項分別存儲到所述網(wǎng)絡(luò)接口控制器中的內(nèi)存保護(hù)表cache和虛實地址映射表cache。
在進(jìn)一步的實施例中,步驟2)包括:
步驟21)、根據(jù)訪存指令中的KEY查詢所述內(nèi)存保護(hù)表cache,如果所述內(nèi)存保護(hù)表cache不存在有效的匹配表項,則執(zhí)行步驟22),否則執(zhí)行步驟23);
步驟22)、根據(jù)所述內(nèi)存保護(hù)表起始物理地址和訪存指令中KEY指示的偏移地址查詢所述內(nèi)存保護(hù)表中對應(yīng)的表項,如果該表項的狀態(tài)標(biāo)志位指示有效,則將查詢得到的表項寫入所述內(nèi)存保護(hù)表cache并且執(zhí)行步驟23),否則結(jié)束并返回一個非法訪問的指示;
步驟23)、如果訪存指令要訪問的虛擬內(nèi)存空間在查詢得到的表項的虛擬內(nèi)存空間范圍之內(nèi),并且訪問類型與查詢得到的虛擬內(nèi)存空間的訪問權(quán)限匹配,則進(jìn)行虛實地址轉(zhuǎn)換;否則結(jié)束并返回一個非法訪問的指示。
在一個實施例中,在步驟23)中,進(jìn)行虛實地址轉(zhuǎn)換包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國科學(xué)院計算技術(shù)研究所,未經(jīng)中國科學(xué)院計算技術(shù)研究所許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310467169.3/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





