專利名稱:用基于物理地址的安全配置確定對象安全的方法及裝置的制作方法
技術領域:
本發明一般涉及計算機系統操作,特別是涉及一種用來執行基于物理地址的安全配置以提供一種安全的內存訪問的方法及裝置。
背景技術:
計算機或計算機系統在許多今日的工業和家庭應用中為重要的要素。有許多的系統,譬如制造系統、電源系統、產品分配系統、文件系統等,由使用處理器的計算機系統供應電源。這些處理器執行各種不同的測試和執行多個彼此互相作用的軟件程序。輸入/輸出裝置經常允許處理器和軟件程序的處理操作。在處理器操作期間希望有標準級別的安全,以使得某些軟件結構(例如,軟件對象、子程序、獨立程序等)能受控制而賦予較其它的軟件結構有優先權。經常,為了防止處理器的未經授權或未留意的訪問或操作,而限制訪問某些軟件結構和某些處理器功能。現用計算機架構包括使用虛擬內存的設計,該虛擬內存使用幾個系統定義的表,而這些表存在于計算機系統內的物理內存中。在這些系統表中的登入項通常預先定義,并包含保留的區段,這些區段限制對某些軟件結構的訪問。
計算機系統已經改革從單一任務裝置成為多任務裝置。計算機系統使用操作系統執行許多的任務并管理他們的資源使用。一般而言,當使用者要求使用一個處理(例如,開啟譬如字符處理器的應用程序),則操作系統提供某些計算機資源(例如,內存的各部分)由該任務使用。然而,許多計算機資源不能或專門使用于此方式。例如,打印機驅動程序通常由多任務使用。因此,操作系統亦通常定義對于相關于此等共享資源的各任務的訪問權和協議。因此,由于操作系統的盡量功能發揮,而使得計算機系統能夠以有效的方式同時執行多個任務。
在如此計算機環境中的一個重要理念是″安全″。多任務的計算機系統,使用安全和保護服務,以保護他們的操作系統不讓使用者處理,并保護避免互相作處理。若沒有了保護,則無用的程序可能無意地破壞在內存空間屬于操作系統或其它處理的程序代碼或數據。值得注意的是,至少在此內容中,安全并未暗示防阻故意的惡劣行為,雖然亦考慮到保護防止此等事情的發生。
譬如x86處理器的許多個處理器設有多個安全級別,譬如特權級別(privilege levels)。茲參照到圖1,顯示了表現多個安全級別的一個范例。圖1中的倒金字塔結構顯示了四個級別的安全(特權),第0級別、第1級別、第2級別、和第3級別。操作系統賦予了基層的特權級別,譬如第0級別。由第0安全級別所賦予的特權允許特定的軟件結構以獲得由其后的安全級別譬如第1至3級別所提供的訪問。若軟件結構僅允許第2級別的安全特權,則特定的軟件結構僅具有經由第2和3級別特權賦予操作的訪問和控制。在許多情況中,例如微軟窗口(Microsoft Windows)的流行操作系統,并未使用多個特權級別的全部能力。一些軟件操作系統僅使用二個特權級別,譬如第0級別和第3級別。
使用者應用程序可以執行于第3安全級別,而操作系統服務和所有的驅動程序操作于第0安全級別。因此能將計算機系統開放于各不同的安全風險中。此尤其重要,因為多數的驅動程序具有訪問至所有的計算機資源,因為他們正操作于最高特權級別,第0安全級別。因此,對于驅動程序未經授權之訪問(該驅動程序控制于計算機系統中之裝置,譬如調制解調器裝置),能夠引起調制解調器的未經授權的操作,而造成系統破壞。再者,至系統內存的未經授權的訪問,能導致損失有價值的數據和軟件程序。
本發明系相關于克服、或至少減少了上述一個或多個問題的影響。
發明內容
在本發明的一個方面,提供了一種執行虛擬內存訪問的方法。本發明執行軟件對象(object);建立對于軟件對象的安全級別。本發明執行使用了至少其中一個安全級別的多表內存訪問。本發明執行對象功能。
在本發明的另一個方面,提供了一種執行虛擬內存訪問的裝置。本發明的裝置包括連接到總線的處理器;將至少一個軟件對象連接到處理器的裝置;內存單元;和連接到總線和該內存單元的內存訪問接口。該內存訪問接口根據至少一個安全級別響應于處理器執行的軟件對象,而提供該處理器至少一部分內存單元的多級別表內存訪問。
雖然本發明可容易作各種的修飾和替代形式,然已用參考圖式舉例說明的方式而詳細說明了本發明的特定實施例。然而,應暸解到此處特定實施例的說明并不欲作為限制本發明為所揭示的特定形式,反之,本發明將涵蓋所有落于所附申請專利范圍內所界定的本發明的精神和范圍內的修飾、等效和替換。
由參考下列的說明,配合所附圖式,將可了解本發明。各圖中相同的參考號碼系表現相同的組件,其中圖1顯示用于計算機系統中安全訪問的多個特權級別的表現方式;圖2為可使用于依照本發明的一個實施例的計算機系統的步驟圖;圖3為依照本發明的一個實施例的顯示于圖2的處理單元的更詳細步驟圖表現;圖4為依照本發明的一個實施例的顯示于圖3的內存訪問接口的更詳細步驟圖表現;第5A及5B圖顯示由第1至4圖中顯示的由處理器執行的內存訪問的步驟圖表現;圖6顯示使用依照本發明的一個實施例的安全設計,執行內存訪問的方法的流程圖描述;圖7顯示依照本發明的一個實施例,執行說明于圖6中的多表內存訪問的方法的流程圖描述;圖8顯示依照本發明的一個實施例,設立于圖7中說明的二級表的方法的流程圖描述;圖9顯示依照本發明的一個實施例,執行說明于圖7中的多級別表訪問的方法的流程圖描述;圖10顯示依照本發明的一個實施例,確定說明于圖9中的在二級表中的安全級別的方法的流程圖描述;以及圖11顯示依照本發明的一個實施例,響應于圖7中所說明的多級別表訪問,促進適當的內存訪問的方法的流程圖描述。
具體實施例方式
下文中將說明本發明的實施范例。為了清楚起見,本說明書中并非將所有實際執行本發明的特征,均作了說明。當然應了解到,在開發任何此種實際的實施例時,必須作出許多與實施相關的確定,以便達到發明者的特定目標,譬如符合隨著實施例的不同而有所變化的與系統相關及與商業相關的限制條件。此外,我們應當了解,此種開發工作可能是復雜且耗時的,然而,仍將是一種對此項技藝具有一般知識者在參閱本發明揭示事項之后可從事的例行工作。
如圖1中所示,本發明的實施例提供了使用安全訪問系統的內存訪問。本發明的實施例提供多個內存訪問表系統,以在由計算機系統中的一個或多個處理器所初始化的內存訪問期間,能夠提供安全。本發明的實施例亦設有虛擬內存訪問系統,該系統使用主虛擬內存訪問表和二級內存訪問表,這些表于內存訪問期間獲得增進安全性。
茲參照圖2,顯示了依照本發明的系統200的一個實施例。系統200包括處理單元210;多個輸入/輸出裝置,譬如鍵盤230、鼠標240、輸入筆250;和顯示單元220,譬如監視器。在一個實施例中,由本發明所揭示的安全級別系統設于處理單元210中。從輸入/輸出裝置230、240、250其中之一來的輸入,可初始化一個或多個在處理單元210中軟件結構的執行,該軟件結構包括操作系統。然后訪問設置在系統200中的內存,以執行存在在處理單元210中的各種不同的軟件結構。本發明的實施例,根據程序制作入系統200中的預定的安全登入項,限制由一個或多個軟件結構所初始化的內存訪問。
茲參照圖3,顯示了依照本發明的處理單元210的一個實施例的簡化步驟圖。在一個實施例中的處理單元210,包括處理器310、內存訪問接口320、內存單元340、和譬如軟件對象或結構的可編程對象350。處理器310可以是包含了多個處理器(圖中未顯示)的微處理器。內存單元340包括物理的內存區段345,該內存區段345包括譬如磁帶內存、閃存、隨機訪問內存、在半導體芯片上存在的內存、和類似此等內存的物理的內存。在半導體芯片上讀取的內存可以采用任何各種不同的形式,譬如同步動態隨機訪問內存(SDRAM)、雙倍率動態隨機訪問內存(DDRAM)、和類似的內存。處理器310通過系統內存訪問接口320而與內存單元通訊。在一個實施例中,內存訪問接口320為公知的結構,設有送至內存單元340的內存地址和邏輯信號,來特征化所需要的內存交易信息。
在一個實施例中,處理器310連接到主總線315。處理器310經由主總線315與內存訪問接口320和對象350通訊。內存訪問接口320連接到主總線315和內存單元340。處理器310亦連接到主總線325,該主總線325用來與外圍裝置通訊。在一個實施例中,主總線325是一個外圍組件互接(PCI)總線(參照PCI規格,2.1版)。用來驅動顯示單元220和其它裝置(例如,PCI裝置)的視頻控制器(圖中未顯示)系連接到主總線325。計算機系統200可包括譬如二級PCI總線(圖中未顯示)或在本領域的普通技術人員已知的其它外圍裝置(圖中未顯示)。
處理器310根據從對象350來的指令,執行多個計算機處理操作。對象350可包括軟件結構,促發處理器310以執行多個功能。此外,對象350的多個二級區段,譬如操作系統、和譬如微軟字符(Microsoft Word)使用者接口軟件系統、和類似系統,可以同時存在于處理器310中并執行操作。
響應于由對象350所提供的軟件代碼的執行,處理器310執行一個或更多個內存訪問,以為了執行由一個或更多個對象350的初始化所促發的任務。由處理器310所執行的內存訪問,包括訪問用來儲存執行碼的內存位置,和從儲存的內存位置獲得數據的內存訪問。經常,儲存在特定內存位置的某些數據,由少數幾個選擇的對象350的其中一個所限制訪問。本發明的實施例提供了多表安全訪問,以限制訪問至在系統200中的特定內存位置。處理器310經由內存訪問接口320執行內存訪問。內存訪問接口320提供至內存單元340的訪問,該內存單元340可包括物理內存345和虛擬內存342(亦即,使用具有本發明的優點之在本領域的普通技術人員已知的虛擬內存技術所組構的物理內存)。本發明的至少一個實施例,提供了多表虛擬內存訪問協議。
茲參照圖4,顯示了依照本發明的內存訪問接口320的一個實施例步驟圖描述。在一個實施例中,內存訪問接口320包括虛擬內存訪問表410和二級表430。本發明的實施例提供了使用虛擬內存系統執行的內存訪問。由本發明的實施例所使用的虛擬內存系統,使用了多級別表定位設計(亦即,使用了虛擬內存訪問表410結合二級表430),來訪問虛擬內存地址。由處理器310使用虛擬內存地址以定位所需要的物理內存地址。
系統200使用虛擬內存訪問表410結合至少一個其它的表,譬如二級表430,來定義虛擬內存地址。虛擬內存訪問表410和二級訪問表430用來轉譯虛擬內存地址(線性地址),以引導至物理內存地址。物理內存地址指向在物理內存345中的內存位置。由本發明的實施例所提供的多級別內存表系統,允許二級表430定義虛擬內存訪問表410的整個區段。在一些例子中,二級表430可以定義不呈現在虛擬內存訪問表410中的虛擬內存地址的一部分。可以使用二級表430作為精細調整裝置,該精細調整裝置根據由虛擬內存訪問表410所產生的虛擬內存地址而進一步定義物理內存地址。此將造成更正確和更快速的虛擬內存地址定義。
在一個實施例中,在其中可包括有多個二級組表的二級表430,系儲存在如圖3中所示的內存單元340中,或在系統200的主存儲器中(圖中未顯示)。二級表430系以高安全級別儲存,以防止未經安全保護或未驗證的軟件結構或對象350獲得對二級表430的訪問。在一個實施例中,處理器310根據由對象350送出的指令,要求訪問至在物理內存345中的位置。響應于由處理器310所產生的內存訪問請求,內存訪問接口320促發虛擬內存訪問表410以產生虛擬內存地址,該虛擬內存地址由二級表430進一步定義。然后虛擬內存地址指向在虛擬內存342中的位置。然后處理器310要求訪問至虛擬內存位置,該位置用來定位在物理內存345中的對應位置。
由處理器310執行的內存訪問的一個實施例顯示于第5A、5B圖中,并說明于下列。茲參照第5A圖,顯示了內存系統500的一個實施范例,用來儲存和取回在數據處理器或計算機系統中的安全級別屬性。在一個實施例中,內存系統500整合入在系統200中的處理單元210。內存系統500在數據處理器(圖中未顯示)中是有用的,該數據處理器使用虛擬尋址設計來訪問內存。舉例而言,當使用分頁設計來尋址內存時,可由處理器310使用內存系統500,該分頁設計譬如是執行在x86型微處理器中的分頁設計。在一個實施例中,在x86系統中的單一內存頁包括4千字節(Kbyte)的內存。而且,內存系統500查找在處理器310中的特殊應用,該處理器310指定于頁級別適當的安全級別屬性。
內存系統500接收物理地址553,該物理地址553由頁部分510和相對于虛擬、線性、或媒介地址的偏移部分520所組成,這些虛擬、線性、或媒介地址將由在x86型微處理器中的分頁單元所接收。在一個實施例中,頁部分510數據尋址適當的內存頁,而偏移部分520數據尋址于選擇的頁部分510中的特定的偏移內存位置。內存系統500接收物理地址553,譬如將由在x86型微處理器中的分頁單元(圖中未顯示)所產生的物理地址。
多級別查找表530(通常稱的為擴展安全屬性表,ESAT)接收物理地址的頁部分510。多級別查找表530儲存關聯于內存的各頁的安全屬性。換言之,各頁具有關聯于該頁的某些安全級別屬性。在一個實施例中,關聯于頁的安全屬性儲存在多級別查找表530中。舉例而言,關聯于各頁的安全屬性可以包括下閱(look down)、安全環境ID、輕權值呼叫閘(lightweight call gate)、讀取激活、寫入激活、執行、外部主寫入激活、外部主讀取激活、加密內存、激活的安全指令,等等。具有本發明所揭示的優點的許多這些屬性為此技藝方面的一般技術人員所已知。
在一個實施例中,多級別查找表530定位于系統200的系統內存(圖中未顯示)中。在一個替代實施例中,多級別查找表530整合入處理器310中,該處理器310包括使用系統200的微處理器。因此,多級別查找表530能夠操作的速度,至少是部分操作的速度,系相關于系統內存的速度。系統內存的速度,相較于處理器310的速度,通常為相對的低。因此,使用多級別查找表530取回安全屬性的處理會使系統200的整個操作慢下來。欲減短請求定位并取回安全屬性的時間周期,高速緩存540系與多級別查找表530并行實施。高速緩存540可以與處理器310位于相同的半導體晶粒上(亦即,高速緩存和處理器310系整合在一個半導體芯片上),或設在處理器晶粒的外部。一般而言,高速緩存540的速度可以實質上較多級別查找表530的速度為快。高速緩存540包含較小的二級組的頁和其包含于多級別查找表530中的安全屬性。因此,對于儲存在高速緩存540中的頁,可以實質地增快取回安全屬性的操作。
茲參照第5B圖,顯示了用來儲存和取回關聯于在內存中的頁的安全屬性的多級別查找表530的一個實施例。多級別查找表530包括通常稱之為ESAT目錄的第一表550,和通常稱之為ESAT的第二表552。一般而言,第一表550包含用于多個ESAT 552地址的開始地址的目錄,在該ESAT 552中儲存了用于各頁的安全屬性。在此處所示實施例中,可以使用單一ESAT目錄550以寫映整個內存。
物理地址553的第一部分,其包括最高冪次位而通常稱之為目錄(DIR)554者,系用來作為進入第一表550的指標。物理地址553亦可包括含有表數據570的部分,表數據570可識別已尋址的表550、552。物理地址553更進一步包括在表550、552中的偏移部分520,該表550、552引導至特定的登入項560、580。第一表550位于系統內存內的基準地址555。物理地址553的DIR部分554增加到基準地址555以識別登入項560,該登入項560指向到其中一個第二表552中適當地址的基準地址。在一個實施例中,多個第二表552可以表現在多級別查找表530中。一般而言,在第一表550中的每一個登入項560指向到在二級第二552中其中一個的開始地址。換言之,每一個登入項555可指向至其本身的各別ESAT552。
在一個實施例中,第一表550和各第二表552占據于物理內存345中的一頁。因此,如果需要的話,在公知的具有分頁激活的x86型微處理器中的內存管理單元能夠交換表550、552進入和離開系統內存。也就是說,因為表550、552的多級別管理,所有的表552不須同時表現在物理內存345中,用于內存系統500適當地操作。若由第一表550中的登入項560請求不正處于物理內存中的其中一個表552,則x86微處理器的公知的內存管理單元(圖中未顯示)可從譬如硬盤機的主存儲器中讀取頁,并將請求的頁552儲存于可訪問的系統內存中。此調整至一頁大小的表550、552減少需要儲存多級別查找表530的系統內存的量,并減少所需的使用表550、552訪問內存的內存交換的量。
在一個實施例中,各頁有4千字節大小,而系統內存體總共有16兆字節(Mbyte)。因此,一頁中大約可以容納4000個ESAT表552。在一個實施例中,4000個ESAT表552各可以包含4000組的安全屬性。再者,ESAT目錄550包含對于各4000個ESAT表552的開始地址。第一表550的登入項560指向至適當的第二表552的基準地址。在適當的第二表552中的所需要的登入項580由將物理地址553的第二部分552(表部分)加至包含于登入項560中的基準地址555而識別。在一個實施例中,登入項580包含關聯于在物理內存345中識別的頁的預定的安全屬性。顯示在第5A及5B圖中的多表設計為一個實施范例,蒙受本發明所揭示益處的在此技藝方面的一般技術人員,可依照本發明而執行變化的多表設計。
茲參照圖6,顯示了依照本發明的一個實施例的方法的流程圖描述。由系統200初始化對象350(步驟610)。譬如特定的軟件程序(例如,微軟字處理Microsoft Word)的對象350能夠由譬如鼠標240的輸入/輸出裝置的啟動而初始化。當由系統200初始化對象350時,處理器310執行由對象350所提供的碼(步驟620)。然后系統200根據用于對象350的預定的安全級別建立安全級別(步驟630)。然后系統200請求多表內存/資源訪問(步驟640)。下文中將更詳細說明由系統200執行的多表內存/資源訪問。根據建立的安全級別和由系統200執行的多級別內存/資源訪問,而執行對象350的功能。對象350的功能可包括建立文件、執行由調制解調器(譬如無線調制解調器,及其類似裝置)初始化的通訊(步驟650)。
茲參照圖7,顯示了圖6的步驟640中所描述的執行多表內存/資源訪問的一個實施例的流程圖說明。系統200執行二級表設立功能(步驟710)。設立二級表包括放置和/或更新安全級別數據在二級表430中。能夠使用二級表430來定義在虛擬內存訪問表410中的多個區段。二級表430可包含相關表登入項(例如,第5B圖中的560、580)的整個區段的資料,這些表登入項也許正從虛擬內存訪問表410中遺失。
在一個實施例中,系統200將物理內存345劃分成頁,而使得處理器310根據這些頁而訪問至物理內存345。在一個實施例中,各頁定義于4千字節的內存區段,該4千字節系與X86處理器兼容。虛擬內存訪問表410和二級表430包含索引在表410、430中。可以使用這些索引來計算物理地址553,該物理地址553能夠用來定位物理內存345的特定部分。以下將更詳細說明由處理器310實施使用表410、430來訪問內存。
一旦系統200設立二級表430后,系統200檢核從處理器310來的內存訪問請求(步驟720)。從處理器310來的內存訪問請求通常由對象350促發。一些對象350需要擴充內存訪問以執行他們的個別任務,譬如經由調制解調器初始化通訊、取回關于特定文件的數據、以及類似的工作。系統200確定是否已接收了內存訪問請求(步驟730)。當系統確定尚未接收到內存訪問時,系統200繼續檢核內存訪問請求,如由圖7中從步驟730回到步驟720的路徑所指示。
當系統200確定已經請求內存訪問時,系統200依照本發明的一個實施例執行多級別表訪問(步驟740)。以下將提供由系統執行的多級別表訪問的更詳細說明。一旦系統執行在步驟740中說明的多表訪問,則系統200響應于多級別表訪問而允許適當的內存訪問(步驟750)。換言之,系統200允許該促發處理器310請求內存訪問的對象350,實際地獲得由處理器310請求的對物理內存345的訪問。
茲參照圖8,顯示了如圖7中的步驟710所指示,設立二級表430的方法的一個實施例。系統200將物理內存345分成多個區段。這些區段經常稱之為內存頁。在一個實施例中,將各區段/頁劃分成4千字節的相等內存(步驟810)。在一個實施例中,劃分成4千字節區段的物理內存345的各區分,能夠由那些已習得本發明揭示優點的在在本領域一般技術人員所已知的硬件處理來執行。在替代實施例中,成為區段的物理內存345的各區分,能夠由那些已習得本發明揭示優點的在本領域一般技術人員所已知的軟件處理技術來執行。
系統200確定從二級表430中省略那一區段,并執行省略功能(步驟820)。由二級表430中省略的各區段為內存頁,這些頁可指定缺省的安全級別。省略的區段包括能夠分配廣級別或低級別安全級別的內存頁。因此,系統200指定缺省的安全級別用于省略的區段(步驟830)。最低的安全級別指定給省略的區段,因此能夠由實際上任何軟件對象350訪問省略的區段,該軟件對象350促發處理器310訪問內存。
然后系統200指定對應于在物理內存345中各未省略的區段/頁的安全級別(步驟840)。系統200根據由特定的標得350所期望的訪問經由處理器310而將安全級別指定到內存頁。系統200保護某些硬件裝置,和在處理器單元210中的其它的內存位置,同時指定適當的安全級別至未省略的區段/頁。
一旦指定了安全級別后,系統200與虛擬內存342的特定的區段/頁相關聯(步驟850)。虛擬內存位置根據特定的安全級別可指向到特定的物理內存區段345。然后系統200利用虛擬內存342至于物理內存345中的區段的關聯性,來建立多級別二級表430(步驟860)。在一個實施例中,省略了二級表430中的特定的空間,以為了節省內存資源。如上所述,省略的內存位置,指定了缺省的安全級別,該缺省的安全級別通常為最低的安全級別。
茲參照到圖9,顯示了圖7的步驟740中所指示的執行多級別表訪問處理的一個實施例。在接收到對于內存訪問的請求后,系統200響應于請求的內存訪問,確定在二級表中的安全級別(步驟910)。系統200根據響應于至處理器310的指示內存訪問,確定在二級表430中的安全級別,該指示系關于初始化在處理器310中執行軟件的對象350的型式。某些軟件對象350需要能夠訪問在內存中的某些敏感數據,和/或訪問在處理器310中的輸入/輸出裝置的更高級別的安全訪問。舉例而言,需要數據的通訊轉移的軟件對象350,將需要高安全級別間距以為了從處理器單元310訪問敏感數據。反之,執行譬如微軟字符(Microsoft Word)的數據處理器功能的軟件對象350,將需要低級別的安全間距以執行其任務。
然后系統200檢驗初始化內存訪問請求的軟件對象350的執行安全級別,和為內存訪問目標的頁的安全級別(步驟920)。處理器310比較現正執行軟件對象350的安全級別與為內存訪問的目標的頁的安全級別,以為了確定匹配(亦即,是否允許請求的內存訪問)。此防止使得某些未經授權以訪問在物理內存345中的某些敏感數據的軟件對象350,不能夠訪問和控制某些內存位置。然后系統200將適當的安全級別關聯至由軟件對象350所初始化的特定訪問請求(步驟930)。
然后系統200將二級表地址關聯至對應于物理內存345中一位置的虛擬內存342。系統200位于物理內存345,并將適當的安全級別關聯至物理內存頁(步驟930)。在一個實施例中,內存訪問接口320執行定位虛擬內存342,和關聯虛擬內存342至物理內存345中的位置。
茲參照圖10,顯示如圖9的步驟910中所指示的響應于處理器310的內存訪問請求,確定在二級表430中安全級別的一個實施例。系統200響應于從虛擬內存訪問表410來的內存訪問請求,而確定物理地址553(步驟1010)。然后系統200根據物理地址553,響應于軟件對象350,定位由處理器310所執行的內存區段/頁(步驟1020)。當根據軟件對象350執行碼時,系統200確定由處理器310正在執行的頁的安全級別,該系統200能夠定義現用的安全級別。因此,系統200有效地使用內存區段/頁以定義安全級別(步驟1040)。然后系統200發送定義的安全級別至處理器310以執行適當的內存訪問(步驟1030)。完成了顯示于圖10中的步驟,即實質地完成了確定在圖9的步驟910中所指示的二級表中安全級別的步驟。
茲參照圖11,顯示如圖7的步驟750所描述的執行適當的內存訪問的各步驟的一個實施例的流程圖說明。系統200檢核對應于特定內存訪問請求的安全級別(步驟1110)。安全級別可根據正由處理器310執行的特定軟件對象350,而與特定的內存請求相關聯。然后系統200確定安全級別是否足夠允許訪問至內存/資源(步驟1120)。系統200檢核以了解是否安全級別間距為適當以允許由處理器310所請求的內存訪問,并獲得訪問至特定的內存位置。
當系統200確定安全級別根據由處理器310所作的特定的內存訪問請求,并不高到足夠允許內存/資源訪問時,系統200就否決請求的內存/資源訪問(步驟1140)。當系統200確定安全級別的確足夠允許請求的內存/資源訪問時,系統200就允許處理器310或軟件對象350獲得對物理內存345中的特殊內存位置的訪問(步驟1130)。完成了指示于圖11中的步驟,即實質地完成了于圖7的步驟750中所指示的允許適當的內存訪問的處理。由本發明所教示的原則可執行于其它型式的自動機架上。
揭示于上的特殊實施例僅作說明用,而本發明可作修正以及以不同的方式實施,但是對于本領域一般技術人員而言在閱讀習得本說明書后,當可了解本發明可以諸多等效方式實施。再者,除了以下的申請專利范圍中說明之外,并不欲對其中所示的構造或設計的細部作限制。因此,當可明證以上揭露的特定實施例可作更改或修飾,而所有此等變化皆系考慮在本發明的精神和范圍內。因此,本發明提出下列的申請專利范圍請求保護。
權利要求
1.一種用基于物理地址的安全配置確定對象安全的方法,包括執行軟件對象(350);對于該軟件對象(350)建立安全級別;使用至少其中一個該安全級別執行多表內存訪問;以及執行該對象(350)的該功能。
2.如權利要求1所述的方法,其中對于該軟件對象(350)建立安全級別進一步包括,指定相關于至少一部分內存的內存訪問的安全級別。
3.如權利要求1所述的方法,其中使用至少其中一個該安全級別執行多表內存訪問進一步包括建立二級表(430);根據該軟件對象(350)的執行接收內存訪問請求;根據該內存訪問請求使用該二級表(430)和至少一個虛擬內存表(410),執行多級別表訪問;以及根據該多級別表訪問,而訪問內存的一部分。
4.如權利要求4所述的方法,其中建立二級表(430)進一步包括將物理內存(345)劃分成為多個區段;從該二級表(430)確定至少其中一個省略區段,和至少其中一個未省略的區段;指定對該省略區段的缺省安全級別;指定對該未省略區段的缺省安全級別;以及將該至少一個指定的區段與虛擬內存相關聯。
5.如權利要求4所述的方法,其中根據該內存訪問請求執行多級別表訪問進一步包括確定對應于該二級表(430)中區段的至少一個安全級別;響應于執行該對象(350),驗證執行安全級別與相關聯訪問區段的安全級別之間的匹配;根據該二級表(430)響應于該執行安全級別和該相關聯該訪問區段的安全級別之間的匹配,而確定虛擬內存地址;以及對應于該虛擬內存地址定位物理內存位置。
6.如權利要求6所述的方法,其中確定對應于該二級表(430)中區段的至少一個安全級別,包括從該虛擬內存表(410)確定物理位置(553);根據該物理地址(553),確定執行的區段;以及根據該確定的該執行的區段,定義現用的安全級別。
7.一種用以使用虛擬內存訪問的裝置,其特征在于該裝置系包括連接到總線(315)的處理器(310);將至少一個軟件對象(350)連接到該處理器(310)的裝置;內存單元(340);以及連接到該總線(315)和該內存單元(340)的內存訪問接口(315),該內存訪問接口(315)響應于該處理器(310)執行該軟件對象(350),根據至少一個安全級別,提供該處理器(310)該內存單元(340)的至少一部分的多級別表內存訪問。
8.如權利要求13所述的裝置,其中該內存訪問接口(315)包括與二級表(430)連接的虛擬內存訪問表(410),該內存訪問接口(315)提供虛擬內存尋址計劃,根據安全級別來訪問該內存單元(340)的至少一部分。
9.一種計算機可讀取程序儲存裝置,該裝置用指令編碼,當由計算機執行時,執行一種方法,包括執行軟件對象(350);對于該軟件對象(350)建立安全級別;建立二級表(430);根據該軟件對象(350)的執行,接收內存訪問請求;相對于該二級表(430)中區段,確定至少一個安全級別;響應于執行該軟件對象(350),驗證執行安全級別與相關聯訪問區段的安全級別之間的匹配;根據該二級表(430)響應于該執行安全級別和該相關聯該訪問區段的安全級別之間的匹配,而確定虛擬內存地址;對應于該虛擬內存地址,定位物理內存位置;以及根據定位該物理內存位置,訪問內存的一部分。
10.一種計算機可讀取程序儲存裝置,該裝置用指令編碼,當由計算機執行時,執行如權利要求17所述的方法,其中相對于該二級表(430)中區段,確定至少一個安全級別,包括從該虛擬內存表(410),確定物理地址(553);根據該物理地址(553),確定執行的區段;以及根據該確定的該執行區段,定義當前安全級別。
全文摘要
本發明提供一種執行虛擬內存訪問的方法及裝置。本發明執行軟件對象,建立對于軟件對象的安全級別,并建立。本發明接收根據執行的軟件對象的內存訪問需求,并對應于二級表中區段的至少一個安全級別作確定。本發明響應于執行的軟件對象,驗證執行安全級別與訪問的區段相關的安全級別之間的匹配。本發明根據響應于執行安全級別和關聯于訪問的區段的安全級別之間相匹配的二級表,而確定虛擬內存地址。本發明對應于虛擬內存地址的物理內存位置定位,并訪問該根據定位物理內存位置的內存部分。
文檔編號H04L9/00GK1578946SQ02821730
公開日2005年2月9日 申請日期2002年8月9日 優先權日2001年10月31日
發明者B·C·巴尼斯, G·S·斯特勞金, R·W·施密特 申請人:先進微裝置公司