一種訪問內存的方法及設備的制作方法
【專利摘要】本發明實施例公開了一種訪問內存的方法及設備,涉及計算機領域,有效提高系統內存的安全性。本發明實施例提供的方法包括:獲取第一設備請求訪問第一內存區域的數據訪問請求,其中,數據訪問請求包含第一設備請求訪問的數據的物理內存地址;所述第一內存區域為第一設備對應的專用物理內存區域;根據第一設備請求訪問的數據的物理內存地址查詢I/O虛擬化控制器設備中的物理內存地址信息;其中,物理內存地址信息包含與第一內存區域的物理內存地址對應的物理內存地址;若確定第一設備請求訪問的數據的物理內存地址在I/O虛擬化控制器設備中的物理內存地址信息中,則訪問第一內存區域。
【專利說明】一種訪問內存的方法及設備
【技術領域】
[0001]本發明涉及計算機領域,尤其涉及一種訪問內存的方法及設備。
【背景技術】
[0002]在計算機系統的物理內存中,既有用于存放計算機操作系統的系統內存,也有用于存放計算機實現特定功能時存儲數據的專用功能性內存,專用功能性內存與系統內存是無隔離的分布在物理內存中的,例如,在中央處理器(Central Processing Unit,簡稱CPU)配合現場可編程門陣列(Field-Programmable Gate Array,簡稱FPGA)實現數據包的轉發系統中,從物理內存中分配出一片內存用來作為轉發內存(專用功能性內存),用來存儲消息隊列(Queue)、數據緩存(Buffer)、消息指針,轉發內存及系統內存無隔離的分布在物理內存中,CPU和FPGA通過消息隊列實現數據緩存位置的交互,然后通過獲取的消息隊列內容獲取對應的數據。
[0003]發明人發現現有技術至少存在以下缺陷:由于專用功能性內存和系統內存之間沒有任何的隔離和保護,一旦訪問專用功能性內存的地址發生錯誤,就有可能踩到系統內存,容易造成系統復位或者掛死引起事故;隨著計算機系統的應用越來越廣泛,計算機所能實現的功能也將越來越多,對物理內存的訪問量也會大幅提高,這樣則增大了系統內存被誤踩的可能性,降低了系統內存的安全性。
【發明內容】
[0004]本發明的實施例提供一種訪問內存的方法及設備,有效提高系統內存的安全性。
[0005]為達到上述目的,本發明的實施例采用如下技術方案:
[0006]第一方面,提供一種訪問內存的方法,包括,
[0007]獲取第一設備請求訪問第一內存區域的數據訪問請求,其中,所述數據訪問請求包含所述第一設備請求訪問的數據的物理內存地址;所述第一內存區域為第一設備對應的專用物理內存區域;
[0008]根據所述第一設備請求訪問的數據的物理內存地址查詢輸入/輸出I/O虛擬化控制器設備中的物理內存地址信息;其中,所述物理內存地址信息包含與所述第一內存區域的物理內存地址對應的物理內存地址;
[0009]若確定所述第一設備請求訪問的數據的物理內存地址在所述I/O虛擬化控制器設備中的物理內存地址信息中,則訪問所述第一內存區域。
[0010]結合第一方面,在第一方面的第一種可能的實現方式中,在所述獲取第一設備請求訪問第一內存區域的數據訪問請求之前,所述方法還包括,
[0011]將所述第一內存區域的物理內存地址映射至所述I/O虛擬化控制器設備中,形成所述物理內存地址信息;
[0012]將所述第一內存區域的物理內存地址映射至所述第一設備中。
[0013]結合第一方面或第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,所述I/o虛擬化控制器設備中包含由至少一個物理內存地址信息組成的物理內存地址信息庫,其中,每一個物理內存地址信息分別對應一個不同的內存區域;相應的,所述根據所述第一設備請求訪問的數據的物理內存地址查詢I/o虛擬化控制器設備中的物理內存地址信息,包括:
[0014]根據所述第一設備請求訪問第一內存區域的數據訪問請求查詢物理內存地址信息庫,獲取所述第一設備對應的內存區域對應的物理內存地址信息;
[0015]根據所述第一設備請求訪問的數據的物理內存地址查詢所述I/O虛擬化控制器設備中的所述第一內存區域對應的物理內存地址信息。
[0016]結合第一方面或第一方面的第一種可能的實現方式或第一方面的第二種可能的實現方式,在第一方面的第三種可能的實現方式中,所述方法還包括,
[0017]若確定所述第一設備請求訪問的數據的物理內存地址不在所述I/O虛擬化控制器設備中的物理內存地址信息中,將所述數據訪問請求丟棄。
[0018]結合第一方面的第三種可能的實現方式,在第一方面的第四種可能的實現方式中,所述方法還包括,
[0019]若確定所述第一設備請求訪問的數據的物理內存地址不在所述I/O虛擬化控制器設備中的物理內存地址信息中,記錄異常信息。
[0020]第二方面,提供一種訪問內存的設備,包括,
[0021]獲取單元,用于獲取第一設備請求訪問第一內存區域的數據訪問請求,其中,所述數據訪問請求包含所述第一設備請求訪問的數據的物理內存地址;所述第一內存區域為第一設備對應的專用物理內存區域;
[0022]查詢單元,用于根據所述獲取單元獲取的所述第一設備請求訪問的數據的物理內存地址查詢I/O虛擬化控制器設備中的物理內存地址信息;其中,所述物理內存地址信息包含與所述第一內存區域的物理內存地址對應的物理內存地址;
[0023]訪問單元,用于若查詢單元確定所述第一設備請求訪問的數據的物理內存地址在所述I/o虛擬化控制器設備中的物理內存地址信息中,則訪問所述第一內存區域。
[0024]結合第二方面,在第二方面的第一種可能的實現方式中,所述設備還包括,
[0025]映射單元,用于在所述獲取單元獲取所述第一設備請求訪問第一內存區域的數據訪問請求之前,將所述第一內存區域的物理內存地址映射至所述I/o虛擬化控制器設備中,形成所述物理內存地址信息;
[0026]所述映射單元還用于,將所述第一內存區域的物理內存地址映射至所述第一設備中。
[0027]結合第二方面或第二方面的第一種可能的實現方式,在第二方面的第二種可能的實現方式中,所述I/o虛擬化控制器設備中包含由至少一個物理內存地址信息組成的物理內存地址信息庫,其中,每一個物理內存地址信息分別對應一個不同的內存區域;相應的,所述查詢單元具體用于,
[0028]根據所述第一設備請求訪問第一內存區域的數據訪問請求查詢物理內存地址信息庫,獲取所述第一設備對應的內存區域對應的物理內存地址信息;
[0029]根據所述第一設備請求訪問的數據的物理內存地址查詢所述I/O虛擬化控制器設備中的所述第一內存區域對應的物理內存地址信息。
[0030]結合第二方面或第二方面的第一種可能的實現方式或第二方面的第二種可能的實現方式,在第二方面的第三種可能的實現方式中,所述設備還包括,
[0031]丟棄單元,用于若所述查詢單元確定所述第一設備請求訪問的數據的物理內存地址不在所述I/o虛擬化控制器設備中的物理內存地址信息中,將所述數據訪問請求丟棄。
[0032]結合第二方面的第三種可能的實現方式,在第二方面的第四種可能的實現方式中,所述設備還包括,
[0033]記錄單元,用于若所述查詢單元確定所述第一設備請求訪問的數據的物理內存地址不在所述I/o虛擬化控制器設備中的物理內存地址信息中,記錄異常信息。
[0034]第三方面,提供一種訪問內存的設備,包括,
[0035]處理器,用于獲取第一設備請求訪問第一內存區域的數據訪問請求,其中,所述數據訪問請求包含所述第一設備請求訪問的數據的物理內存地址;所述第一內存區域為第一設備對應的專用物理內存區域;
[0036]I/O虛擬化控制器設備,用于根據所述第一設備請求訪問的數據的物理內存地址查詢所述I/o虛擬化控制器設備中的物理內存地址信息;其中,所述物理內存地址信息包含與所述第一內存區域的物理內存地址對應的物理內存地址;
[0037]第一設備,用于若I/O虛擬化控制器設備確定所述第一設備請求訪問的數據的物理內存地址在所述I/O虛擬化控制器設備中的物理內存地址信息中,則訪問所述第一內存區域。
[0038]結合第三方面,在第三方面的第一種可能的實現方式中,所述處理器具體用于,在所述獲取第一設備請求訪問第一內存區域的數據訪問請求之前,將所述第一內存區域的物理內存地址映射至所述I/O虛擬化控制器設備中,形成所述物理內存地址信息;
[0039]所述處理器具體還用于,將所述第一內存區域的物理內存地址映射至所述第一設備中。
[0040]結合第三方面或第三方面的第一種可能的實現方式,在第三方面的第二種可能的實現方式中,所述I/o虛擬化控制器設備中包含由至少一個物理內存地址信息組成的物理內存地址信息庫,其中,每一個物理內存地址信息分別對應一個不同的內存區域;相應的,所述I/o虛擬化控制器設備還用于,
[0041 ] 根據所述第一設備請求訪問第一內存區域的數據訪問請求查詢物理內存地址信息庫,獲取所述第一設備對應的內存區域對應的物理內存地址信息;
[0042]根據所述第一設備請求訪問的數據的物理內存地址查詢所述I/O虛擬化控制器設備中的所述第一內存區域對應的物理內存地址信息。
[0043]結合第三方面或第三方面的第一種可能的實現方式或第三方面的第二種可能的實現方式,在第三方面的第三種可能的實現方式中,所述I/o虛擬化控制器設備還用于,
[0044]若確定所述第一設備請求訪問的數據的物理內存地址不在所述I/O虛擬化控制器設備中的物理內存地址信息中,將所述數據訪問請求丟棄。
[0045]結合第三方面的第三種可能的實現方式,在第三方面的第四種可能的實現方式中,所述I/o虛擬化控制器設備還用于,
[0046]若確定所述第一設備請求訪問的數據的物理內存地址不在所述I/O虛擬化控制器設備中的物理內存地址信息中,記錄異常信息。
[0047]第四方面,提供一種物理機,包括,訪問內存的設備以及物理內存,其中,所述訪問內存的設備包含第一設備以及I/o虛擬化控制器設備;
[0048]所述訪問內存的設備用于,
[0049]獲取第一設備請求訪問第一內存區域的數據訪問請求,其中,所述數據訪問請求包含所述第一設備請求訪問的數據的物理內存地址;所述第一內存區域為第一設備對應的專用物理內存區域;
[0050]根據所述第一設備請求訪問的數據的物理內存地址查詢I/O虛擬化控制器設備中的物理內存地址信息;其中,所述物理內存地址信息包含與所述第一內存區域的物理內存地址對應的物理內存地址;
[0051]若確定所述第一設備請求訪問的數據的物理內存地址在所述I/O虛擬化控制器設備中的物理內存地址信息中,則訪問所述第一內存區域。
[0052]結合第四方面,在第四方面的第一種可能的實現方式中,所述訪問內存的設備還用于,在所述獲取第一設備請求訪問第一內存區域的數據訪問請求之前,將所述第一內存區域的物理內存地址映射至所述I/o虛擬化控制器設備中,形成所述物理內存地址信息;
[0053]所述訪問內存的設備還用于,將所述第一內存區域的物理內存地址映射至所述第一設備中。
[0054]結合第四方面或第四方面的第一種可能的實現方式,在第四方面的第二種可能的實現方式中,所述I/o虛擬化控制器設備中包含由至少一個物理內存地址信息組成的物理內存地址信息庫,其中,每一個物理內存地址信息分別對應一個不同的內存區域;相應的,所述訪問內存的設備具體用于,
[0055]根據所述第一設備請求訪問第一內存區域的數據訪問請求查詢物理內存地址信息庫,獲取所述第一設備對應的內存區域的物理內存地址信息;
[0056]根據所述第一設備請求訪問的數據的物理內存地址查詢所述I/O虛擬化控制器設備中的所述第一內存區域對應的物理內存地址信息。
[0057]結合第四方面或第四方面的第一種可能的實現方式或第四方面的第二種可能的實現方式,在第四方面的第三種可能的實現方式中,所述訪問內存的設備還用于,
[0058]若確定所述第一設備請求訪問的數據的物理內存地址不在所述I/O虛擬化控制器設備中的物理內存地址信息中,將所述數據訪問請求丟棄。
[0059]本發明實施例提供的一種訪問內存的方法及設備,通過獲取第一設備請求訪問第一內存區域的數據訪問請求,其中,所述數據訪問請求包含所述第一設備請求訪問的數據的物理內存地址;所述第一內存區域為第一設備對應的專用物理內存區域;根據所述第一設備請求訪問的數據的物理內存地址查詢I/o虛擬化控制器設備中的物理內存地址信息;其中,所述物理內存地址信息包含與所述第一內存區域的物理內存地址對應的物理內存地址;若確定所述第一設備請求訪問的數據的物理內存地址在所述I/o虛擬化控制器設備中的物理內存地址信息中,則訪問所述第一內存區域;有效的提高了系統內存的安全性。
【專利附圖】
【附圖說明】
[0060]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0061]圖1為本發明實施例提供的一種訪問內存的方法的流程示意圖;
[0062]圖2A為本發明實施例提供的一種物理內存的內部結構示意圖;
[0063]圖2B為本發明實施例提供的一種消息指針與消息隊列的場景示意圖;
[0064]圖3為本發明實施例提供的一種CPU配合FPGA數據包轉發系統的場景示意圖;
[0065]圖4為本發明實施例提供的另一種訪問內存的方法的流程示意圖;
[0066]圖5為本發明實施例提供的再一種訪問內存的方法的流程示意圖;
[0067]圖6為本發明實施例多個設備訪問內存時的場景示意圖;
[0068]圖7為本發明實施例提供的又一種訪問內存的方法的流程示意圖;
[0069]圖8為本發明實施例提供的一種訪問內存的設備的裝置結構示意圖;
[0070]圖9為本發明實施例提供的另一種訪問內存的設備的裝置結構示意圖;
[0071]圖10為本發明實施例提供的再一種訪問內存的設備的裝置結構示意圖;
[0072]圖1lA為本發明實施例提供的一種物理機的裝置結構示意圖;
[0073]圖1lB為本發明實施例提供的另一種物理機的裝置結構示意圖。
【具體實施方式】
[0074]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0075]實施例一
[0076]本發明實施例一提供一種訪問內存的方法,參見圖1,該方法可以包括:
[0077]101、獲取第一設備請求訪問第一內存區域的數據訪問請求,其中,所述數據訪問請求包含所述第一設備請求訪問的數據的物理內存地址;所述第一內存區域為第一設備對應的專用物理內存區域;
[0078]其中,第一設備為通過訪問計算機的物理內存實現特定功能的設備,例如,在X86系統的CPU配合FPGA數據包轉發系統中,第一設備為FPGA ;或者,第一設備可以為虛擬化平臺中虛擬機的外設;本發明對第一設備的類型不進行具體限定;
[0079]第一內存區域是在物理內存中分配的第一設備實現對應功能的專用物理內存區域,例如,參見圖2A,第一內存區域包含于物理內存中,第一內存區域至少包含有數據緩存、消息隊列及消息指針;
[0080]其中,數據緩存用于儲存第一設備實現對應功能過程中訪問的數據,該數據可以以數據包的形式存儲在數據緩存中;
[0081]消息隊列可以是循環隊列,消息隊列中包含以隊列形式排列的數據信息,每個數據信息分別用于存儲數據緩存中對應的數據的相關信息,例如,可以包含數據在數據緩存中存放的位置的物理內存地址和數據特征,例如,數據特征可以包含數據的類型、大小、長度等,對于數據信息中包含的數據特征的具體內容,可以根據需要進行設置,本發明不進行具體限定;
[0082]消息隊列的深度是指消息隊列可以用來存儲數據信息的容量,每一個消息隊列可以是一個深度確定并且有限的循環隊列,且消息隊列的深度可以小于數據緩存的容量;
[0083]需要說明的是,當消息隊列的深度小于數據緩存的容量時,數據緩存中存儲的每個數據對應的數據信息可能一部分數據信息存儲于消息隊列中,一部分數據信息將等待消息隊列有空閑位置時再生成并存儲;
[0084]消息指針用于指示消息隊列中數據信息的位置,消息指針分為頭指針和尾指針,例如,可以用頭指針來指示消息隊列中最后一個非空閑位置,可以用尾指針來指示消息隊列中第一個空閑位置,這樣,通過消息指針的指示,可以明確得出消息隊列中存放數據的位置和空閑的位置;當第一設備從消息隊列中讀取數據信息時,可以根據消息隊列的基準地址加上消息指針頭指針指示的消息隊列位置獲取到數據信息存放的實際物理內存地址;
[0085]當需要往消息隊列中存入數據信息時,首先根據消息指針判斷消息隊列是否已滿,若已滿,則等待空位置;若未滿,則將需要存放的數據信息存入消息指針的尾指針指示的第一個空閑位置,再更新消息指針將消息指針的尾指針+1,即保持讓消息指針的尾指針指示在消息隊列中第一個空閑位置;
[0086]其中,根據消息指針判斷消息隊列是否已滿,一般令消息隊列的第(消息隊列深度-1)個位置不存放數據信息為空,可以采用判斷消息指針的尾指針位置+1是否等于頭指針位置判斷,若等于,則判斷消息隊列已滿,若不等于,則判斷消息隊列未滿;當然,由于消息隊列為循環隊列,當尾指針指向(消息隊列深度-1)位置時,再將尾指針+1回到位置0,故本發明所有實施例中的指針位置+1 —般定義為(指針位置+1)%消息隊列深度,其中%為取余運算符號;
[0087]需要說明的是,本發明只是以上述消息指針對消息隊列的指示方法以及判斷消息隊列是否已滿的方法為例來說明消息指針與消息隊列的位置的指示關系,當然,消息指針對消息隊列的指示方法以及判斷消息隊列是否已滿的方法還可以采用其他方法,不會影響本發明的結果,本發明對此不進行具體限定;
[0088]例如,在圖2B所示的深度為10的消息隊列,該消息隊列中位置O存放數據信息1、位置I存放數據信息2、位置2存放數據信息3,其余消息隊列位置均為空,那么此時,參見圖2B,消息指針的頭指針指示在該消息隊列的位置0,尾指針指示在該消息隊列的位置3 ;當在該消息隊列中存入數據信息4時,首先判定消息隊列未滿,故將數據信息4存入尾指針指示的消息隊列位置3,并更新消息隊列的尾指針+1指示到消息隊列位置4;當從該隊列讀取數據信息時,讀取頭指針指示的消息隊列位置O存放的數據信息1,并將消息指針的頭指針更新+1指示到消息隊列位置I ;
[0089]例如,數據緩存中存儲有N個數據(以數據包的形式存儲),分別記為數據包1,數據包2、......數據包N;
[0090]貝IJ,對應的可以有N個數據信息,分別記為數據信息1,數據信息2、……數據信息N,每個數據信息分別對應一個數據包,每個數據信息可以包含與該數據信息對應的數據包在數據緩存中存放的位置的物理內存地址和數據特征;
[0091]假設,消息隊列的深度為S且該消息隊列為空,該消息隊列的位置可以記為消息隊列位置O、消息隊列位置1、……消息隊列位置S-1,其中,S遠遠大于N,從消息隊列位置O開始存放數據信息,消息隊列中存儲有數據信息1,數據信息2、……數據信息N,對應的消息指針中的頭指針指示消息隊列位置O,而尾指針指示消息隊列位置N ;
[0092]再假設,消息隊列的深度為Y且該消息隊列為空,該消息隊列的位置可以記為消息隊列位置O、消息隊列位置1、……、消息隊列位置Y-1,其中,Y小于N,從消息隊列位置O開始存放數據信息,消息隊列中存儲有數據信息1,數據信息2、……數據信息Y-1,那么,數據信息Y、……數據信息N將等待消息隊列有空閑位置再生成并存儲;對應的消息指針中的頭指針指示消息隊列位置0,而尾指針指示消息隊列位置Y-1。
[0093]其中,數據訪問請求可以由第一設備生成,下面分別以第一設備讀取第一內存區域中的數據包和第一設備向第一內存區域存儲數據包為例說明數據訪問請求的生成過程;
[0094]1、第一設備讀取第一內存區域中的數據包;
[0095]例如,第一設備實時獲取消息指針中數據信息的物理內存地址,假設當前第一設備獲取到數據信息2的物理內存地址,第一設備生成訪問消息隊列的數據訪問請求,該數據訪問請求包含數據信息2的物理內存地址;
[0096]假設第一設備根據數據信息2的物理內存地址從消息隊列中獲取數據信息2,根據該數據信息2獲取數據包2的物理內存地址,第一設備生成訪問數據緩存的數據訪問請求,該數據訪問請求包含數據包2的物理內存地址。
[0097]2、第一設備向第一內存區域存儲數據包。
[0098]例如,當第一設備需要向第一內存區域保存數據X時,第一設備向第一內存區域申請存儲數據包X所需要的數據緩存,獲取內存分配給該數據包X在數據緩存中的物理內存地址;
[0099]第一設備根據內存分配給該數據包X在數據緩存中的物理內存地址生成數據訪問請求,該數據訪問請求包含內存分配給該數據包X在數據緩存中的物理內存地址。
[0100]102、根據所述第一設備請求訪問的數據的物理內存地址查詢I/O虛擬化控制器設備中的物理內存地址信息;其中,所述物理內存地址信息包含與所述第一內存區域的物理內存地址對應的物理內存地址;
[0101]進一步的,在步驟101之前,所述方法還可以包括,
[0102]將第一內存區域的物理內存地址映射至I/O虛擬化控制器設備中,形成物理內存地址信息;
[0103]其中,第一內存區域的物理內存地址包含數據緩存、消息隊列及消息指針的物理內存地址。
[0104]將第一內存區域的物理內存地址映射至所述第一設備中。
[0105]其中,物理內存地址信息是通過將第一內存區域的物理內存地址映射至I/O虛擬化控制器設備中形成的,物理內存地址信息在I/o虛擬化控制器設備中的可以按照表格形式存在,參見表1,也可以按照其他形式存在,物理內存地址信息的形式不影響本發明的結果,本發明對此不進行限制;
[0106]表1
[0107]
【權利要求】
1.一種訪問內存的方法,其特征在于,包括, 獲取第一設備請求訪問第一內存區域的數據訪問請求,其中,所述數據訪問請求包含所述第一設備請求訪問的數據的物理內存地址;所述第一內存區域為第一設備對應的專用物理內存區域; 根據所述第一設備請求訪問的數據的物理內存地址查詢輸入/輸出I/o虛擬化控制器設備中的物理內存地址信息;其中,所述物理內存地址信息包含與所述第一內存區域的物理內存地址對應的物理內存地址; 若確定所述第一設備請求訪問的數據的物理內存地址在所述I/o虛擬化控制器設備中的物理內存地址信息中,則訪問所述第一內存區域。
2.根據權利要求1所述的訪問內存的方法,其特征在于,在所述獲取第一設備請求訪問第一內存區域的數據訪問請求之前,所述方法還包括, 將所述第一內存區域的物理內存地址映射至所述I/O虛擬化控制器設備中,形成所述物理內存地址信息; 將所述第一內存區域的物理內存地址映射至所述第一設備中。
3.根據權利要求1或2所述的訪問內存的方法,其特征在于,所述I/O虛擬化控制器設備中包含由至少一個物理內存地址信息組成的物理內存地址信息庫,其中,每一個物理內存地址信息分別對應一個不同的內存區域;相應的,所述根據所述第一設備請求訪問的數據的物理內存地址查詢I/o虛擬化控制器設備中的物理內存地址信息,包括, 根據所述第一設備請求訪問第一內存區域的數據訪問請求查詢物理內存地址信息庫,獲取所述第一設備對應的內存區域的物理內存地址信息; 根據所述第一設備請求訪問的數據的物理內存地址查詢所述I/o虛擬化控制器設備中的所述第一內存區域對應的物理內存地址信息。
4.根據權利要求1-3任一項所述的訪問內存的方法,其特征在于,所述方法還包括, 若確定所述第一設備請求訪問的數據的物理內存地址不在所述I/O虛擬化控制器設備中的物理內存地址信息中,將所述數據訪問請求丟棄。
5.根據權利要求4所述的訪問內存的方法,其特征在于,所述方法還包括, 若確定所述第一設備請求訪問的數據的物理內存地址不在所述I/O虛擬化控制器設備中的物理內存地址信息中,記錄異常信息。
6.—種訪問內存的設備,其特征在于,包括: 獲取單元,用于獲取第一設備請求訪問第一內存區域的數據訪問請求,其中,所述數據訪問請求包含所述第一設備請求訪問的數據的物理內存地址;所述第一內存區域為第一設備對應的專用物理內存區域; 查詢單元,用于根據所述獲取單元獲取的所述第一設備請求訪問的數據的物理內存地址查詢I/O虛擬化控制器設備中的物理內存地址信息;其中,所述物理內存地址信息包含與所述第一內存區域的物理內存地址對應的物理內存地址; 訪問單元,用于若查詢單元確定所述第一設備請求訪問的數據的物理內存地址在所述I/O虛擬化控制器設備中的物理內存地址信息中,則訪問所述第一內存區域。
7.根據權利要求6所述的訪問內存的設備,其特征在于,所述設備還包括, 映射單元,用于在所述獲取單元獲取所述第一設備請求訪問第一內存區域的數據訪問請求之前,將所述第一內存區域的物理內存地址映射至所述I/o虛擬化控制器設備中,形成所述物理內存地址信息; 所述映射單元還用于,將所述第一內存區域的物理內存地址映射至所述第一設備中。
8.根據權利要求6或7所述的訪問內存的設備,其特征在于,所述I/O虛擬化控制器設備中包含由至少一個物理內存地址信息組成的物理內存地址信息庫,其中,每一個物理內存地址信息分別對應一個不同的內存區域;相應的,所述查詢單元具體用于, 根據所述第一設備請求訪問第一內存區域的數據訪問請求查詢物理內存地址信息庫,獲取所述第一設備對應的內存區域對應的物理內存地址信息; 根據所述第一設備請求訪問的數據的物理內存地址查詢所述I/o虛擬化控制器設備中的所述第一內存區域對應的物理內存地址信息。
9.根據權利要求6-8任一項所述的訪問內存的設備,其特征在于,所述設備還包括, 丟棄單元,用于若所述查詢單元確定所述第一設備請求訪問的數據的物理內存地址不在所述I/o虛擬化控制器設備中的物理內存地址信息中,將所述數據訪問請求丟棄。
10.根據權利要求9所述的訪問內存的設備,其特征在于,所述設備還包括, 記錄單元,用于若所述查詢單元確定所述第一設備請求訪問的數據的物理內存地址不在所述I/o虛擬化控制器設備中的物理內存地址信息中,記錄異常信息。
11.一種訪問內存的設備,其特征在于,包括 處理器,用于獲取第一設備請求訪問第一內存區域的數據訪問請求,其中,所述數據訪問請求包含所述第一設備請求訪問的數據的物理內存地址;所述第一內存區域為第一設備對應的專用物理內存區域; I/o虛擬化控制器設備,用于根據所述第一設備請求訪問的數據的物理內存地址查詢所述I/o虛擬化控制器設備中的物理內存地址信息;其中,所述物理內存地址信息包含與所述第一內存區域的物理內存地址對應的物理內存地址; 第一設備,用于若I/o虛擬化控制器設備確定所述第一設備請求訪問的數據的物理內存地址在所述I/O虛擬化控制器設備中的物理內存地址信息中,則訪問所述第一內存區域。
12.根據權利要求11所述的訪問內存的設備,其特征在于,所述處理器具體用于,在所述獲取第一設備請求訪問第一內存區域的數據訪問請求之前,將所述第一內存區域的物理內存地址映射至所述I/O虛擬化控制器設備中,形成所述物理內存地址信息; 所述處理器具體還用于,將所述第一內存區域的物理內存地址映射至所述第一設備中。
13.根據權利要求11或12所述的訪問內存的設備,其特征在于,所述I/O虛擬化控制器設備中包含由至少一個物理內存地址信息組成的物理內存地址信息庫,其中,每一個物理內存地址信息分別對應一個不同的內存區域;相應的,所述I/O虛擬化控制器設備還用于, 根據所述第一設備請求訪問第一內存區域的數據訪問請求查詢物理內存地址信息庫,獲取所述第一設備對應的內存區域對應的物理內存地址信息; 根據所述第一設備請求訪問的數據的物理內存地址查詢所述I/o虛擬化控制器設備中的所述第一內存區域對應的物理內存地址信息。
14.根據權利要求11-13任一項所述的訪問內存的設備,其特征在于,所述I/O虛擬化控制器設備還用于, 若確定所述第一設備請求訪問的數據的物理內存地址不在所述I/O虛擬化控制器設備中的物理內存地址信息中,將所述數據訪問請求丟棄。
15.根據權利要求14所述的訪問內存的設備,其特征在于,所述I/O虛擬化控制器設備還用于, 若確定所述第一設備請求訪問的數據的物理內存地址不在所述I/O虛擬化控制器設備中的物理內存地址信息中,記錄異常信息。
16.一種物理機,其特征在于,包括,訪問內存的設備以及物理內存,其中,所述訪問內存的設備包含第一設備以及I/O虛擬化控制器設備; 所述訪問內存的設備用于, 獲取第一設備請求訪問第一內存區域的數據訪問請求,其中,所述數據訪問請求包含所述第一設備請求訪問的數據的物理內存地址;所述第一內存區域為第一設備對應的專用物理內存區域; 根據所述第一設備請求訪問的數據的物理內存地址查詢所述I/o虛擬化控制器設備中的物理內存地址信息;其中,所述物理內存地址信息包含與所述第一內存區域的物理內存地址對應的物理內存地址; 若確定所述第一設備請求訪問的數據的物理內存地址在所述I/o虛擬化控制器設備中的物理內存地址信息中,則訪問所述第一內存區域。
17.根據權利要求16所述的物理機,其特征在于,所述訪問內存的設備還用于,在所述獲取第一設備請求訪問第一內存區域的數據訪問請求之前,將所述第一內存區域的物理內存地址映射至所述I/O虛擬化控制器設備中,形成所述物理內存地址信息; 將所述第一內存區域的物理內存地址映射至所述第一設備中。
18.根據權利要求16或17所述的物理機,其特征在于,所述I/O虛擬化控制器設備中包含由至少一個物理內存地址信息組成的物理內存地址信息庫,其中,每一個物理內存地址信息分別對應一個不同的內存區域;相應的,所述訪問內存的設備具體用于, 根據所述第一設備請求訪問第一內存區域的數據訪問請求查詢物理內存地址信息庫,獲取所述第一設備對應的內存區域的物理內存地址信息; 根據所述第一設備請求訪問的數據的物理內存地址查詢所述I/o虛擬化控制器設備中的所述第一內存區域對應的物理內存地址信息。
19.根據權利要求16-18任一項所述的物理機,其特征在于,所述訪問內存的設備還用于, 若確定所述第一設備請求訪問的數據的物理內存地址不在所述I/o虛擬化控制器設備中的物理內存地址信息中,將所述數據訪問請求丟棄。
【文檔編號】G06F13/16GK104169891SQ201380004536
【公開日】2014年11月26日 申請日期:2013年10月29日 優先權日:2013年10月29日
【發明者】姚傳群, 王俊杰, 彭偉林 申請人:華為技術有限公司