專利名稱:使用目標(biāo)安全的輸入輸出裝置的多表式存取方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及計(jì)算機(jī)系統(tǒng)操作,更確切的說(shuō),是用來(lái)執(zhí)行基于物理地址的安全結(jié)構(gòu)方案以提供安全的輸入/輸出(I/O)存取的方法及裝置。
背景技術(shù):
計(jì)算機(jī)或計(jì)算系統(tǒng)在當(dāng)今的許多工業(yè)及家庭應(yīng)用中都是非常重要的元素。許多的系統(tǒng),如制造系統(tǒng)、電力系統(tǒng)、產(chǎn)品配銷系統(tǒng)和文件系統(tǒng)等,皆由使用處理器的計(jì)算機(jī)系統(tǒng)所驅(qū)動(dòng)。這些處理器提供多種測(cè)試并執(zhí)行許多可以相互作用的軟件程序。多次輸入/輸出裝置能夠操控處理器及軟件程序的操作。在處理器操作過(guò)程中需要一定的安全等級(jí),這樣才能對(duì)某些軟件結(jié)構(gòu)(如軟件對(duì)象、子程序和獨(dú)立程序等)加以控制并給予高于其它軟件結(jié)構(gòu)的優(yōu)先權(quán)。許多時(shí)候,對(duì)于某些軟件結(jié)構(gòu)及某些處理器功能的存取會(huì)受到限制以防止處理器進(jìn)行未經(jīng)授權(quán)及不經(jīng)意的存取與操作。目前計(jì)算機(jī)結(jié)構(gòu)包含了一種運(yùn)用虛擬內(nèi)存的方案,該虛擬內(nèi)存使用駐留在計(jì)算機(jī)系統(tǒng)上的物理內(nèi)存中的數(shù)個(gè)系統(tǒng)定義的表。這些系統(tǒng)表上的入口一般預(yù)先設(shè)定過(guò)且包含限制了對(duì)某些軟件結(jié)構(gòu)的存取的保留區(qū)域。
計(jì)算系統(tǒng)已由單一任務(wù)裝置逐漸演變?yōu)槎嗳蝿?wù)裝置。計(jì)算系統(tǒng)利用操作系統(tǒng)來(lái)執(zhí)行許多的工作并對(duì)他們的資源運(yùn)用作管理。一般,當(dāng)使用者觸發(fā)了一個(gè)進(jìn)程(如開(kāi)啟了文字處理器之類的軟件),計(jì)算機(jī)會(huì)提供某些計(jì)算機(jī)資源(如部分的內(nèi)存)供該工作使用。然而,許多的計(jì)算機(jī)資源無(wú)法或者不能以這種方法提供。例如,打印機(jī)驅(qū)動(dòng)程序常為多個(gè)任務(wù)所使用。操作系統(tǒng)因此也經(jīng)常替這些共享資源有關(guān)的任務(wù)定義權(quán)限與通訊協(xié)議。因此,通過(guò)操作系統(tǒng)的努力,計(jì)算系統(tǒng)能夠以有效率的方式同時(shí)執(zhí)行多個(gè)任務(wù)。
這類計(jì)算環(huán)境中的一個(gè)重要方面為″安全″。計(jì)算系統(tǒng)的多任務(wù)利用安全與保護(hù)服務(wù)來(lái)保護(hù)操作系統(tǒng)不受用戶進(jìn)程影響,同時(shí)也保護(hù)各個(gè)用戶進(jìn)程相互影響。若沒(méi)有保護(hù),惡意程序會(huì)不經(jīng)意地破壞屬于操作系統(tǒng)或其它進(jìn)程的內(nèi)存空間內(nèi)的程序代碼或數(shù)據(jù)。在下文中,請(qǐng)注意,安全并不代表防止有意的惡性行為,盡管其希望能有效的與之對(duì)抗。
許多的處理器,如x86處理器,提供多個(gè)的安全等級(jí),例如優(yōu)先權(quán)(privilege)等級(jí)?,F(xiàn)在請(qǐng)看圖1,在此示例了一個(gè)典型的多重保護(hù)等級(jí)的范例。圖1中的倒三角形結(jié)構(gòu)圖解了四個(gè)安全(優(yōu)先權(quán))等級(jí),等級(jí)0、等級(jí)1、等級(jí)2、等級(jí)3一直到等級(jí)n。操作系統(tǒng)被賦予如等級(jí)0的基本優(yōu)先權(quán)等級(jí)。由安全等級(jí)0所提供的優(yōu)先權(quán)讓特定的軟件結(jié)構(gòu)能獲得由后續(xù)安全等級(jí)如等級(jí)1至3所提供的存取。若有一個(gè)軟件結(jié)構(gòu)僅允許安全等級(jí)2的優(yōu)先權(quán),則該特定軟件僅能在優(yōu)先權(quán)等級(jí)2及優(yōu)先權(quán)等級(jí)3所提供的操作系統(tǒng)上做存取與控制。在許多的情況下,如Microsoft Windows這類大眾化的操作系統(tǒng)并不會(huì)用到各個(gè)安全等級(jí)的所有功能。某些軟件操作系統(tǒng)僅使用兩個(gè)優(yōu)先權(quán)等級(jí),如等級(jí)0與等級(jí)3。
當(dāng)操作系統(tǒng)服務(wù)與所有的驅(qū)動(dòng)程序皆在安全等級(jí)0操作時(shí),用戶應(yīng)用程序可能在安全等級(jí)3執(zhí)行。如此會(huì)使計(jì)算機(jī)系統(tǒng)暴露在數(shù)種安全風(fēng)險(xiǎn)之下。當(dāng)大部分的驅(qū)動(dòng)程序在對(duì)所有的計(jì)算機(jī)資源做存取時(shí)特別真確,因?yàn)樗麄兪窃谧罹邇?yōu)先權(quán)的安全等級(jí)0之下操作。因此,未經(jīng)授權(quán)而存取用來(lái)控制計(jì)算機(jī)系統(tǒng)中輸入/輸出裝置(如調(diào)制解調(diào)器裝置)的驅(qū)動(dòng)程序,會(huì)引起輸入/輸出裝置有未經(jīng)授權(quán)的操作而導(dǎo)致系統(tǒng)的崩潰或錯(cuò)用。此外,對(duì)系統(tǒng)輸入/輸出裝置進(jìn)行未經(jīng)授權(quán)的存取會(huì)造成寶貴數(shù)據(jù)與軟件程序的遺失。
本發(fā)明用于克服或至少減少上述的一個(gè)或數(shù)個(gè)問(wèn)題的影響。
發(fā)明內(nèi)容
本發(fā)明在一個(gè)方面,提供了利用目標(biāo)安全以執(zhí)行輸入輸出裝置存取的方法。一個(gè)軟件對(duì)象被執(zhí)行。建立了一個(gè)供該軟件對(duì)象用的安全等級(jí)。利用至少一個(gè)安全等級(jí)實(shí)現(xiàn)一個(gè)多表式輸入/輸出(I/O)空間存取。該對(duì)象的功能被執(zhí)行。
本發(fā)明在另一個(gè)方面,提供了一個(gè)使用目標(biāo)安全以執(zhí)行裝置輸入/輸出存取的裝置。本發(fā)明的裝置包含與總線相連的處理器;將至少一個(gè)軟件對(duì)象與處理器相連接的方法;輸入/輸出(I/O)裝置;與總線及內(nèi)存單元相連接的(I/O)存取接口,該內(nèi)存存取接口基于至少一個(gè)安全等級(jí)為處理器提供了至少一部分的內(nèi)存單元的多等級(jí)表輸入/輸出空間存取部分,以響應(yīng)執(zhí)行軟件對(duì)象的處理器。
本發(fā)明可通過(guò)參考后續(xù)與附圖相結(jié)合的敘述加以了解,其中相同的組件以相同的數(shù)字標(biāo)示,且其中圖1為一個(gè)供計(jì)算機(jī)系統(tǒng)中安全存取用的多個(gè)優(yōu)先權(quán)等級(jí)的文字表示;圖2為根據(jù)本發(fā)明的一個(gè)實(shí)施例,可實(shí)際應(yīng)用的計(jì)算機(jī)系統(tǒng)方框圖;圖3為根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖2中所顯示的處理器單元的更詳細(xì)方框圖;圖4為根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖3中所顯示的輸入/輸出存取接口的更詳細(xì)方框圖;圖5A及圖5B為圖1-4示例的處理器所執(zhí)行的輸入/輸出空間/輸入/輸出內(nèi)存存取的方框圖;圖6為根據(jù)本發(fā)明的一個(gè)實(shí)施例,利用安全結(jié)構(gòu)執(zhí)行輸入/輸出空間/輸入/輸出內(nèi)存存取的方法的流程圖;圖7為根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖6中所描述的多表式輸入/輸出空間/輸入/輸出內(nèi)存存取的執(zhí)行方法的流程圖;圖8為根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖7中所描述的第二輸入/輸出表的設(shè)定方法的流程圖;圖9為根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖7中所描述的多等級(jí)表存取的執(zhí)行方法的流程圖;圖10為根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖9中所描述的第二輸入/輸出表的安全等級(jí)決定方法的流程圖;而圖11為根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖7中所描述的為響應(yīng)多等級(jí)表存取而執(zhí)行適當(dāng)?shù)妮斎?輸出空間/輸入輸出內(nèi)存存取的方法的流程圖。
由于本發(fā)明容易受到不同變化與相異形式的影響,其特定實(shí)施例已利用附圖范例的方式加以表示并在此詳述。然而,應(yīng)該理解的是,此處所描述的特定實(shí)施例并不是要對(duì)所揭示的特定模型加以限制,相反的,其目的在于涵蓋所有符合本發(fā)明所附的權(quán)利要求書(shū)的精神與范圍所定義的修改、等效及轉(zhuǎn)化形式。
具體實(shí)施例方式
本發(fā)明所描述的實(shí)施例敘述于下。為了清晰起見(jiàn),并非實(shí)際實(shí)現(xiàn)的所有功能都在此說(shuō)明書(shū)中加以敘述。可以理解的是在此類實(shí)施例的實(shí)施過(guò)程中,有數(shù)個(gè)有關(guān)實(shí)現(xiàn)的特定決定需加以決策以達(dá)成開(kāi)發(fā)者的特定目標(biāo),諸如順從系統(tǒng)相關(guān)或商業(yè)相關(guān)的限制,其在各個(gè)實(shí)施例中都有所不同。此外,可以理解此類開(kāi)發(fā)所付出的努力將會(huì)復(fù)雜且耗時(shí),但對(duì)于那些受益于本揭示的本領(lǐng)域技術(shù)人員仍將會(huì)是例行工作。
本發(fā)明的具體實(shí)施例采用安全存取系統(tǒng)提供給輸入/輸出空間存取。本發(fā)明的具體實(shí)施例在一個(gè)由計(jì)算機(jī)系統(tǒng)中的單一或多個(gè)處理器加以激活的輸入/輸出空間存取(如存取輸入輸出裝置)期間提供給多重輸入/輸出空間及/或輸入/輸出內(nèi)存存取表系統(tǒng)以提供安全。本發(fā)明的具體實(shí)施例還提供一個(gè)使用輸入/輸出空間存取表及第二輸入/輸出存取表的輸入/輸出空間存取系統(tǒng),其使得輸入/輸出空間及/或輸入/輸出內(nèi)存存取時(shí)的安全度增加。
現(xiàn)在請(qǐng)看圖2,其中示例了根據(jù)本發(fā)明的系統(tǒng)200的一個(gè)實(shí)施例。系統(tǒng)200包含處理單元210;多個(gè)輸入/輸出裝置,如鍵盤(pán)230、鼠標(biāo)240、輸入筆250和一個(gè)如顯示器的顯示單元220。在一個(gè)實(shí)施例中,本發(fā)明所揭示的安全等級(jí)系統(tǒng)駐留在處理單元210中。在處理單元210中,來(lái)自輸入/輸出裝置230、240和250中的一個(gè)輸入會(huì)激活一個(gè)或多個(gè)軟件結(jié)構(gòu)(包含操作系統(tǒng))的執(zhí)行。與駐留在系統(tǒng)200中的輸入/輸出空間相關(guān)的輸入/輸出空間及/或內(nèi)存然后會(huì)受到存取以執(zhí)行駐留在處理單元210中的多個(gè)軟件結(jié)構(gòu)?;诰幊虒?xiě)入系統(tǒng)200的預(yù)定安全入口,本發(fā)明的實(shí)施例限制了由一個(gè)或多個(gè)軟件結(jié)構(gòu)所激活的輸入/輸出空間存取。
現(xiàn)在請(qǐng)看圖3,在此示例了根據(jù)本發(fā)明的處理單元210的一個(gè)實(shí)施例的簡(jiǎn)單方框圖。在一個(gè)實(shí)施例中的處理單元210,包含處理器310、輸入/輸出存取接口320、I/O空間340和諸如軟件對(duì)象或結(jié)構(gòu)的可編程對(duì)象350。處理器310可以是微處理器,其可以包含多個(gè)處理器(未顯示)。
在一個(gè)實(shí)施例中,輸入/輸出空間340提供了一個(gè)″網(wǎng)關(guān)″給輸入/輸出裝置360,如調(diào)制解調(diào)器、軟驅(qū)、硬盤(pán)驅(qū)動(dòng)器、光驅(qū)、DVD光驅(qū)、PCMCIA卡及多個(gè)其它的輸入/輸出外圍設(shè)備。在另一個(gè)實(shí)施例中,輸入/輸出裝置360里整合了輸入/輸出空間340。在一個(gè)實(shí)施例中,輸入/輸出空間340包含了一個(gè)含有與輸入輸/輸出空間340的尋址與通信有關(guān)的數(shù)據(jù)的內(nèi)存單元347。內(nèi)存單元347包含一個(gè)物理內(nèi)存區(qū),其中包含諸如磁帶內(nèi)存、閃存、隨機(jī)存取存儲(chǔ)器、駐留在半導(dǎo)體芯片中的內(nèi)存及其它此類的物理內(nèi)存。駐留在半導(dǎo)體芯片上的內(nèi)存可以是多種形式中的任意一個(gè),例如同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)、雙倍速率動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DDRAM)或諸如此類的。
處理器310通過(guò)系統(tǒng)輸入/輸出存取接口320與輸入/輸出空間340通信。在一個(gè)實(shí)施例中,輸入/輸出存取接口320是一種常見(jiàn)的結(jié)構(gòu),其為輸入/輸出空間340提供輸入/輸出空間地址及邏輯信號(hào)以進(jìn)行所需的輸入/輸出數(shù)據(jù)交易。本發(fā)明的實(shí)施例供輸入/輸出存取接口320實(shí)現(xiàn)多表式、基于安全的存取系統(tǒng)。
在一個(gè)實(shí)施例中,處理器310與主機(jī)總線315相連。處理器310通過(guò)主機(jī)總線315與輸入/輸出存取接口320及對(duì)象350通信。輸入/輸出存取接口320與主機(jī)總線315及輸入/輸出空間340相對(duì)應(yīng)。處理器310也與用以和外圍裝置通信的主要總線315相對(duì)應(yīng)。在一個(gè)實(shí)施例中,主要總線325為外圍設(shè)備互連(PCI)總線(參考PCI規(guī)格說(shuō)明書(shū)2.1版)。用以驅(qū)動(dòng)顯示單元220及其它裝置(如PCI裝置)的視頻控制器(未顯示)與主要總線325相連接。計(jì)算機(jī)系統(tǒng)200可能包含本領(lǐng)域技術(shù)人員所熟悉的其它總線如第二PCI總線(未顯示)或其它外圍裝置(未顯示)。
處理器310根據(jù)來(lái)自對(duì)象350的指令執(zhí)行多個(gè)的計(jì)算機(jī)處理操作。對(duì)象350可包含觸發(fā)處理器310執(zhí)行多個(gè)功能的軟件結(jié)構(gòu)。此外,對(duì)象350的多個(gè)子區(qū)塊,如操作系統(tǒng)、諸如Microsoft Word的用戶接口軟件系統(tǒng)等,可能同時(shí)在處理器310上常駐并執(zhí)行操作。本發(fā)明的實(shí)施例為處理器310提供了安全等級(jí)存取及優(yōu)先權(quán)。
為響應(yīng)對(duì)象350所提供的軟件程序代碼的執(zhí)行,處理器310執(zhí)行一個(gè)或多個(gè)輸入/輸出裝置存取,包括內(nèi)存存取,以便執(zhí)行由一個(gè)或多個(gè)對(duì)象350的激活所引起的任務(wù)。由處理器310所執(zhí)行的輸入/輸出存取包括存取輸入/輸出裝置360以控制輸入/輸出裝置360的各個(gè)功能,例如調(diào)制解調(diào)器的操作。由處理器310所執(zhí)行的輸入/輸出存取還包括存取輸入/輸出裝置360的內(nèi)存位置以儲(chǔ)存執(zhí)行程序代碼及內(nèi)存存取以便從儲(chǔ)存的內(nèi)存位置中獲得數(shù)據(jù)。
許多時(shí)候,為了供一個(gè)或多個(gè)被選取的對(duì)象350存取,某些輸入/輸出裝置360,或部分輸入/輸出裝置360的部分會(huì)被加以限制。同樣地,為了供一個(gè)或多個(gè)被選取的對(duì)象350存取,儲(chǔ)存在輸入/輸出裝置360中的特定內(nèi)存位置中的某些數(shù)據(jù)會(huì)受到限制。本發(fā)明的多個(gè)實(shí)施例提供多表式安全存取以限制系統(tǒng)200中的特定輸入/輸出裝置360或輸入/輸出裝置360的內(nèi)存位置的存取。處理器310通過(guò)輸入/輸出存取接口320執(zhí)行輸入/輸出空間存取。輸入/輸出接口320提供對(duì)輸入/輸出空間340的存取,其可包含供多重輸入/輸出裝置360用的網(wǎng)關(guān)。多表式虛擬內(nèi)存存取由本發(fā)明的至少一個(gè)實(shí)施例提供。
現(xiàn)在請(qǐng)參考圖4,其描述了根據(jù)本發(fā)明的一個(gè)輸入/輸出存取接口320的實(shí)施例的方框圖。在一個(gè)實(shí)施例中,輸入/輸出存取接口320包含輸入/輸出存取表410(或輸入/輸出空間存取表410)、第二輸入/輸出存取表430及輸入/輸出空間接口345。在一個(gè)實(shí)施例中,輸入/輸出空間接口345代表″虛擬的″輸入/輸出空間地址,其可用于尋址與輸入/輸出裝置360有關(guān)的物理位置或輸入/輸出裝置360的一部分。此虛擬I/O空間尋址可定義為對(duì)有關(guān)虛擬內(nèi)存表的虛擬內(nèi)存進(jìn)行尋址。輸入/輸出空間接口345可包括虛擬內(nèi)存表。。在另一具體實(shí)施例中,虛擬內(nèi)存表可位于輸入/輸出空間接口345外部,例如在第二輸入/輸出存取表430或輸入/輸出存取表410中。處理器310可通過(guò)尋址輸入/輸出空間接口345來(lái)存取輸入/輸出空間340。
本發(fā)明的實(shí)施例提供利用多表式輸入/輸出及內(nèi)存存取系統(tǒng)執(zhí)行輸入/輸出存取。本發(fā)明的實(shí)施例所利用的多表式輸入/輸出及內(nèi)存存取系統(tǒng)使用多等級(jí)表尋址的方法(也就是說(shuō),利用與第二輸入/輸出表430相結(jié)合的輸入/輸出存取表410)通過(guò)輸入/輸出接口345存取輸入/輸出空間地址。處理器310使用輸入/輸出內(nèi)存地址對(duì)所需的物理輸入/輸出位置進(jìn)行定位。
系統(tǒng)200利用將輸入/輸出存取表410與其它至少一個(gè)表,如第二輸入/輸出表430,相結(jié)合以定義虛擬輸入/輸出空間地址,其中該虛擬輸入/輸出空間地址可以關(guān)于虛擬內(nèi)存表。輸入/輸出存取表410及第二輸入/輸出存取表430是用來(lái)對(duì)虛擬輸入/輸出空間地址做轉(zhuǎn)換以產(chǎn)生物理輸入/輸出地址。物理輸入/輸出地址指向輸入/輸出裝置360的物理位置或指向輸入/輸出裝置360中的內(nèi)存位置。由本發(fā)明的實(shí)施例所提供的多等級(jí)輸入/輸出存取表系統(tǒng)允許第二輸入/輸出表430定義輸入/輸出存取表410的所有區(qū)塊。在某些情況下,第二輸入/輸出表430可以定義在輸入/輸出存取表410中部分不存在的虛擬輸入/輸出地址的一部分。第二輸入/輸出表430可作為微調(diào)裝置以根據(jù)由輸入/輸出存取表410所產(chǎn)生的虛擬輸入/輸出地址對(duì)物理輸入/輸出位置做進(jìn)一步定義。這會(huì)產(chǎn)生更正確且快速的虛擬輸入/輸出地址的定義。
在一個(gè)實(shí)施例中,其中可包含多個(gè)子表的第二表430,儲(chǔ)存于系統(tǒng)200的內(nèi)存單元347,或系統(tǒng)200的主存儲(chǔ)器(未顯示)中。第二輸入/輸出表430儲(chǔ)存在高度的安全等級(jí)之下以防止不安全或未經(jīng)證實(shí)的軟件結(jié)構(gòu)或?qū)ο?50存取第二輸入/輸出表430。在一個(gè)實(shí)施例中,處理器310請(qǐng)求對(duì)根據(jù)對(duì)象350所送出的指令請(qǐng)求存取物理輸入/輸出裝置位置內(nèi)的位置。為響應(yīng)處理器350所提出的內(nèi)存存取請(qǐng)求,輸入/輸出存取接口320引發(fā)輸入/輸出存取表410產(chǎn)生虛擬輸入/輸出地址,其由第二輸入/輸出表430進(jìn)一步的定義。接著虛擬輸入/輸出地址指向輸入/輸出空間接口345中的一個(gè)位置。接著處理器310請(qǐng)求存取虛擬輸入/輸出位置,其接著用于對(duì)輸入/輸出裝置360中相對(duì)應(yīng)的位置定位。
圖5A、5B及下面的描述示例了用以執(zhí)行由處理器310所執(zhí)行的內(nèi)存存取的一個(gè)具體實(shí)施例?,F(xiàn)在請(qǐng)參考圖5A,其顯示了一個(gè)用于儲(chǔ)存及取得數(shù)據(jù)處理器或計(jì)算機(jī)系統(tǒng)200中的安全等級(jí)屬性的輸入/輸出存取系統(tǒng)500的示例性實(shí)施例。在一個(gè)實(shí)施例中,輸入/輸出存取系統(tǒng)被整合到系統(tǒng)200的處理單元210之中。輸入/輸出存取系統(tǒng)500在使用多表式安全方法存取輸入/輸出空間340時(shí)在數(shù)據(jù)處理器(未顯示)中很有用。例如,當(dāng)利用分頁(yè)方法,如x86型微處理器中所使用的分頁(yè)方法,對(duì)輸入/輸出空間340做尋址時(shí)處理器310便可用到輸入/輸出存取系統(tǒng)500。在一實(shí)施例中,x86系統(tǒng)中的單一內(nèi)存分頁(yè)包含4Kbytes的內(nèi)存。此外,輸入/輸出存取系統(tǒng)500可在一定的分頁(yè)等級(jí)下指定適當(dāng)安全等級(jí)屬性的處理器310中找到特定的應(yīng)用。
輸入/輸出存取系統(tǒng)500接收由分頁(yè)部分510及偏移部分520所組成的輸入/輸出空間地址533,相對(duì)于會(huì)被x86型的微處理器中的分頁(yè)單元加以接收的虛擬、線性、中間地址。在一個(gè)實(shí)施例中,分頁(yè)部分510的數(shù)據(jù)尋址了適當(dāng)?shù)膬?nèi)存分頁(yè),而偏移部分520的數(shù)據(jù)尋址了選定的分頁(yè)部分510上的特定輸入/輸出偏移位置。輸入/輸出存取系統(tǒng)500接收可由x86型微處理器中的分頁(yè)單元(未顯示)所產(chǎn)生的物理地址。
通常被視為延伸安全屬性表(ESAT)的多等級(jí)查找表530,接收物理輸入/輸出地址的分頁(yè)部分510。多等級(jí)查找表530儲(chǔ)存了與內(nèi)存的各個(gè)分頁(yè)510相關(guān)的安全屬性。換句話說(shuō),每個(gè)分頁(yè)510具有某些與分頁(yè)510相關(guān)的安全等級(jí)屬性。在一個(gè)實(shí)施例中,與分頁(yè)510相關(guān)的安全屬性儲(chǔ)存在多等級(jí)查找表530中。例如,與各個(gè)分頁(yè)510相關(guān)的安全屬性可包含向下參照、安全文件標(biāo)識(shí)、輕量呼叫門(mén)、可讀、可寫(xiě)、執(zhí)行、可外部控制寫(xiě)入、可外部控制讀取、加密內(nèi)存、安全指令使能等等…。這些許多屬性對(duì)于受益于本揭示的本領(lǐng)域技術(shù)人員而言并不陌生。
在一個(gè)實(shí)施例中,多等級(jí)查找表530位于系統(tǒng)200的系統(tǒng)內(nèi)存(未顯示)之中。在另一個(gè)實(shí)施例中,多等級(jí)查找表530整合到處理器310中,其包含含有系統(tǒng)200的微處理器。因此,多等級(jí)查找表所能操作的速度是(至少部分地)取決于系統(tǒng)內(nèi)存的速度。與處理器310的速度相比,系統(tǒng)內(nèi)存的速度一般相對(duì)地較慢。因此,利用多等級(jí)查找表530取得安全屬性的過(guò)程會(huì)延緩系統(tǒng)200的整體操作。為了減少定位及取得安全屬性所需的時(shí)間,采用了一個(gè)與多等級(jí)查找表530并連的高速緩存540。高速緩存540可放置于與處理器310相同的半導(dǎo)體晶粒上(例如,將高速緩存540及處理器310整合在相同的半導(dǎo)體芯片上)或置于處理器晶粒之外。一般來(lái)說(shuō),高速緩存540的速度會(huì)明顯地快于等級(jí)查找表530。高速緩存540包含較小的分頁(yè)510的子集合且其安全屬性包含在多等級(jí)查找表530中。因此,由于分頁(yè)510儲(chǔ)存在高速緩存540中,取得安全屬性的操作會(huì)明顯加強(qiáng)。
現(xiàn)在參考圖5B,其示例了一個(gè)用以儲(chǔ)存及接收與內(nèi)存中的分頁(yè)510相關(guān)的安全屬性的多等級(jí)查找表530的實(shí)施例。多等級(jí)查找表530包含第一表550,其一般被視為延伸安全屬性表目錄,及第二表552,其一般被視為延伸安全屬性表。一般來(lái)說(shuō),第一表550包含供其中儲(chǔ)存了各個(gè)分頁(yè)510的安全屬性的多個(gè)延伸安全屬性表552用的啟始地址的目錄。在此處所示例的實(shí)施例中,單一延伸安全屬性表目錄550可用來(lái)規(guī)劃輸入/輸出裝置360上的整個(gè)輸入/輸出地址及/或內(nèi)存的長(zhǎng)度。
包含了最高次序位且一般被視為目錄(DIR)554的輸入/輸出空間地址553的第一部分被用作指向第一表550的指針。輸入/輸出空間地址553還包括含有表數(shù)據(jù)570的一部分,其可識(shí)別被尋址的表550、552。輸入/輸出空間地址553進(jìn)一步包含通向特定的入口560和580的表550與552上的偏移520。第一表550位于基地址555的系統(tǒng)內(nèi)存中。將輸入/輸出空間地址553的目錄部分554加入至基地址555中以識(shí)別入口560,其指向第二表群552其中之一內(nèi)的一個(gè)適當(dāng)?shù)刂返幕刂?。在一個(gè)實(shí)施例中,多等級(jí)查找表530中存在多個(gè)第二表552。一般來(lái)說(shuō),第一表550中入口560的每一個(gè)皆指向第二表552的地址中的一個(gè)啟始地址。換句話說(shuō),每個(gè)入口580可指向它們自己?jiǎn)为?dú)的延伸安全屬性表552。
在一個(gè)實(shí)施例中,第一表550及每個(gè)第二表552在物理內(nèi)存中占有一個(gè)分頁(yè)510。因此,在x86型微處理器中常見(jiàn)的可分頁(yè)內(nèi)存管理單元能夠根據(jù)需要將表550、552置換入及出系統(tǒng)內(nèi)存中。也就是說(shuō),由于表550、552的多等級(jí)安排,將可以預(yù)期所有的表552可同時(shí)存在于輸入/輸出空間340中。若有一個(gè)表552并未正確的被置于由第一表550中的入口560所要求的內(nèi)存單元347內(nèi),x86微處理器的常用內(nèi)存管理單元(未顯示)會(huì)自諸如硬盤(pán)驅(qū)動(dòng)器的主存儲(chǔ)器中讀取分頁(yè)510,并將所要求的分頁(yè)510儲(chǔ)存在其可能會(huì)被存取的系統(tǒng)內(nèi)存中。這種表550、552的單頁(yè)空間處理,減少了儲(chǔ)存多級(jí)查找表530所需的系統(tǒng)內(nèi)存數(shù)目,并減少了利用表550、520存取輸入/輸出空間340所需的置換內(nèi)存數(shù)目。
在一個(gè)實(shí)施例中,每個(gè)分頁(yè)尺寸皆為4K字節(jié),而系統(tǒng)內(nèi)存共16M字節(jié)。因此,將近4000個(gè)延伸安全屬性表552會(huì)存在于一個(gè)分頁(yè)510上。在一個(gè)實(shí)施例中,4000個(gè)延伸安全屬性表表552分別包含4000組的安全屬性。此外,延伸安全屬性表目錄550包含了4000個(gè)延伸安全屬性表表552的每一個(gè)啟始地址。第一表550的入口560指向適當(dāng)?shù)牡诙?52的基地址。在適當(dāng)?shù)牡诙?52中的所需入口580通過(guò)將輸入/輸出空間地址553的第二部分552(表部分)加入到包含在入口560內(nèi)的基地址555中來(lái)加以識(shí)別。在一個(gè)實(shí)施例中,入口580包含與輸入/輸出空間340中的已識(shí)別分頁(yè)510相關(guān)的預(yù)定安全屬性。圖5A及圖5B中所示例的多表式方法為一個(gè)示例性實(shí)施例,那些受益于本揭示的本領(lǐng)域技術(shù)人員可以根據(jù)本發(fā)明實(shí)現(xiàn)不同的多表式方法。
現(xiàn)在請(qǐng)參考圖6,其示例了根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法的流程圖。對(duì)象350由系統(tǒng)200激活(框圖610)。對(duì)象350諸如特定的軟件程序(例如Windows Word),可通過(guò)諸如鼠標(biāo)240的輸入輸出裝置的作用而激活。當(dāng)對(duì)象350被系統(tǒng)200激活時(shí),處理器310會(huì)執(zhí)行對(duì)象350所提供的程序代碼(框圖620)。接著系統(tǒng)200根據(jù)預(yù)定的安全等級(jí)為對(duì)象350建立安全等級(jí)(框圖630)。接著系統(tǒng)200引發(fā)多表式輸入/輸出空間存取(框圖640)。由系統(tǒng)200所執(zhí)行的多表式輸入/輸出空間存取將在下面詳述。根據(jù)已建立的安全等級(jí)與由系統(tǒng)200所實(shí)現(xiàn)的多等級(jí)輸入/輸出空間存取,對(duì)象350的功能會(huì)緊接著被執(zhí)行(框圖650)。對(duì)象350的功能包含讀取已儲(chǔ)存的文件、執(zhí)行由調(diào)制解調(diào)器所激活的通信連接,如無(wú)線調(diào)制解調(diào)器,及諸如此類的功能。
現(xiàn)在請(qǐng)參考圖7,其示例了執(zhí)行圖6中的框圖640中描述的多表式輸入/輸出空間存取的一個(gè)實(shí)施例的流程圖。系統(tǒng)200執(zhí)行第二表設(shè)定功能(框圖710)。設(shè)定第二輸入/輸出表430包含放置及/或更新第二表430中的數(shù)據(jù)的安全等級(jí)。第二輸入/輸出表430可用于定義輸入/輸出存取表410上的多個(gè)區(qū)塊。第二輸入/輸出存取表430可包含與整個(gè)表入口(如圖5B中的560、580)有關(guān)的數(shù)據(jù),其可能會(huì)自輸入/輸出存取表410中消失。
在一個(gè)實(shí)施例中,系統(tǒng)200將輸入/輸出空間340分割成分頁(yè)510,因此處理器310需根據(jù)分頁(yè)510存取輸入/輸出空間340。在一個(gè)實(shí)施例中,分頁(yè)510被定義為4K字節(jié)的內(nèi)存區(qū)塊,其與x86處理器兼容。輸入/輸出存取表410及第二輸入/輸出表430包含進(jìn)入表410、430的索引。這些索引可用于計(jì)算物理輸入/輸出空間地址553以供存取輸入/輸出裝置360及/或定位輸入/輸出裝置360的特定部分,如輸入/輸出裝置360的物理內(nèi)存。由處理器310所執(zhí)行利用表410、430對(duì)輸入/輸出空間340的存取,將在下面詳述。
一旦系統(tǒng)200建立第二輸入/輸出表430,系統(tǒng)200會(huì)確認(rèn)來(lái)自處理器310的輸入/輸出空間存取請(qǐng)求(框圖720)。來(lái)自處理器310的內(nèi)存存取請(qǐng)求一般由對(duì)象350所引起。某些對(duì)象350需要大量的輸入/輸出空間340及/或內(nèi)存存取以執(zhí)行它們各自的任務(wù),例如通過(guò)調(diào)制解調(diào)器激活通信、取得附屬于特定文件的數(shù)據(jù)及諸如此類的。系統(tǒng)200會(huì)決定輸入/輸出空間存取請(qǐng)求是否被接收(框圖730)。當(dāng)系統(tǒng)決定輸入/輸出空間存取未被接收時(shí),系統(tǒng)200會(huì)繼續(xù)檢查輸入/輸出空間存取請(qǐng)求,如圖7中框圖730返回至框圖720的路徑所示。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)系統(tǒng)200決定要進(jìn)行所請(qǐng)求的輸入/輸出空間存取時(shí),系統(tǒng)200會(huì)執(zhí)行多等級(jí)表存取(框圖740)。下面將提供由系統(tǒng)200所執(zhí)行的多等級(jí)表存取的更詳細(xì)敘述。在框圖740中一旦系統(tǒng)200執(zhí)行所敘述的多表式存取,系統(tǒng)200會(huì)允許適當(dāng)?shù)妮斎?輸出空間存取以響應(yīng)多等級(jí)表存取(框圖750)。換句話說(shuō),系統(tǒng)200允許引發(fā)處理器310提出內(nèi)存需求的對(duì)象350能實(shí)際獲得對(duì)輸入/輸出裝置360及/或輸入輸出裝置360上的物理內(nèi)存做存取。
現(xiàn)在請(qǐng)參考圖8,其示例了如圖7中框圖710所示的建立第二表430的方法的實(shí)施例。系統(tǒng)200將輸入/輸出空間340及或輸入/輸出裝置360內(nèi)的內(nèi)存分割成多個(gè)區(qū)段(框圖810)。在一具體實(shí)施例中,這些區(qū)段可意指分頁(yè)510。在一個(gè)實(shí)施例中,該區(qū)段/頁(yè)510被劃分成4K字節(jié)大小的內(nèi)存在一個(gè)實(shí)施例中,對(duì)于受益于本揭示的本領(lǐng)域技術(shù)人員來(lái)說(shuō)將輸入/輸出空間340分割成4K字節(jié)的區(qū)段的動(dòng)作可由公知的硬件程序加以執(zhí)行。在另一個(gè)實(shí)施例中,對(duì)于受益于本揭示的本領(lǐng)域技術(shù)人員來(lái)說(shuō)將輸入/輸出空間340分割成區(qū)段的動(dòng)作可利用公知的軟件技術(shù)來(lái)進(jìn)行。
系統(tǒng)200決定那一個(gè)區(qū)段會(huì)自第二表430中省略掉并執(zhí)行省略的動(dòng)作(框圖820)。自第二表430中省略的區(qū)段是可被指定默認(rèn)安全等級(jí)的分頁(yè)510。省略的區(qū)段包含可分配廣等級(jí)或低等級(jí)的安全等級(jí)的分頁(yè)510。因此,系統(tǒng)200為省略的區(qū)段指定默認(rèn)的安全等級(jí)(框圖830)。最低的安全等級(jí)會(huì)被指定至省略掉的區(qū)段,因此省略掉的區(qū)段實(shí)際上可讓任何的引起處理器310對(duì)輸入/輸出空間340及或內(nèi)存做存取的軟件對(duì)象350進(jìn)行存取。
接著系統(tǒng)200指定與輸入/輸出空間340中的各個(gè)未省略區(qū)段/分頁(yè)510對(duì)應(yīng)的安全等級(jí)(框圖840)。系統(tǒng)200根據(jù)特定對(duì)象350通過(guò)處理器310預(yù)定要做的存取指定安全等級(jí)至分頁(yè)510。當(dāng)指定適當(dāng)安全等級(jí)至未省略區(qū)段/分頁(yè)510的同時(shí),系統(tǒng)200對(duì)于位于處理器單元210中的某些硬件裝置及其它內(nèi)存進(jìn)行保護(hù)。
一旦安全等級(jí)被指定后,系統(tǒng)將特定的區(qū)段/分頁(yè)510與初始的或虛擬輸入/輸出空間地址553建立關(guān)聯(lián)(框圖850)。虛擬輸入/輸出空間地址553可根據(jù)特定的安全等級(jí)指向特定的輸入/輸出裝置360及/或輸入/輸出裝置360中的內(nèi)存。系統(tǒng)200接著利用虛擬輸入/輸出空間地址553與輸入/輸出空間340中區(qū)段的關(guān)聯(lián)來(lái)建立多等級(jí)的第二輸入/輸出表430(框圖850)。在一個(gè)實(shí)施例中,為了節(jié)省內(nèi)存資源,會(huì)將第二輸入/輸出表430中的特定空間省略掉。如上面所述,省略掉的內(nèi)存位置會(huì)被指定一個(gè)默認(rèn)的安全等級(jí),其一般為最低的安全等級(jí)。
現(xiàn)在請(qǐng)參考圖9,其示例了一個(gè)執(zhí)行圖7中框圖740所指出的多等級(jí)表存取過(guò)程的實(shí)施例。在接收到進(jìn)行輸入/輸出空間存取的請(qǐng)求后,系統(tǒng)200會(huì)決定第二輸入/輸出表430中的安全等級(jí)以響應(yīng)輸入/輸出空間存取請(qǐng)求(框圖910)。系統(tǒng)200根據(jù)輸入/輸出空間存取來(lái)決定第二表430中的安全等級(jí)以響應(yīng)了關(guān)于某形式的對(duì)象350的處理器310的指示,其激活了處理器310中軟件的執(zhí)行。某些軟件對(duì)象350需要可以對(duì)內(nèi)存中某些較敏感的輸入/輸出裝置及/或數(shù)據(jù)存取的更高等級(jí)的安全存取。例如,需要做數(shù)據(jù)通信傳輸?shù)能浖?duì)象350會(huì)需要更高層安全等級(jí)的許可證以便自處理器單元350中存取敏感數(shù)據(jù)。相對(duì)的,執(zhí)行數(shù)據(jù)處理器功能的軟件對(duì)象350,如Microsoft Word,需要較低等級(jí)的安全許可證以執(zhí)行其任務(wù)。
系統(tǒng)200接著檢視激活輸入/輸出空間存取請(qǐng)求的軟件對(duì)象350的執(zhí)行安全等級(jí),及作為輸入/輸出空間存取的目標(biāo)的分頁(yè)510的安全等級(jí)(框圖920)。處理器310將目前正在執(zhí)行的軟件對(duì)象350的安全等級(jí)與輸入/輸出空間340及/或內(nèi)存存取的目標(biāo)的分頁(yè)510的安全等級(jí)相比較,以決定匹配(例如,是否接受所請(qǐng)求的那一個(gè)輸入/輸出空間340及或內(nèi)存存取)。這預(yù)防了某些未被授權(quán)能夠?qū)δ承┹斎?輸出裝置360及/或在輸入/輸出裝置360的物理內(nèi)存中的敏感數(shù)據(jù)做存取的軟件對(duì)象350,去存取及控制某些輸入/輸出裝置360及/或內(nèi)存位置。系統(tǒng)200接著將適當(dāng)?shù)陌踩燃?jí)與由軟件對(duì)象350所激活的特定存取要求建立關(guān)聯(lián)(框圖930)。
系統(tǒng)200接著將第二輸入/輸出表430地址與輸入/輸出空間340及/或內(nèi)存相對(duì)應(yīng)的輸入/輸出空間接口345建立關(guān)聯(lián)(框圖940)。系統(tǒng)200定位輸入/輸出空間340并且將適當(dāng)?shù)陌踩燃?jí)與物理輸入/輸出空間340建立關(guān)聯(lián)(框圖950)。在一個(gè)實(shí)施例中,輸入/輸出空間存取接口320執(zhí)行輸入/輸出空間接口345位置的定位,并將輸入/輸出空間接口345的位置與輸入/輸出空間340內(nèi)的位置建立關(guān)聯(lián)。
現(xiàn)在請(qǐng)參考圖10,其示例了如圖9的框圖910所示,響應(yīng)處理器310的內(nèi)存存取請(qǐng)求決定第二表430的安全等級(jí)的實(shí)施例,。系統(tǒng)200決定了響應(yīng)來(lái)自輸入/輸出存取表410的輸入/輸出空間存取請(qǐng)求的輸入/輸出空間地址553(框圖1010)。系統(tǒng)200接著根據(jù)物理輸入/輸出空間地址553對(duì)由響應(yīng)軟件對(duì)象350的處理器310所執(zhí)行的區(qū)段/分頁(yè)510進(jìn)行定位(也就是說(shuō),利用地址做為進(jìn)入第二輸入/輸出表430的索引)(框圖1020)。當(dāng)根據(jù)軟件對(duì)象350執(zhí)行程序代碼時(shí),系統(tǒng)200在處理器310處理的同時(shí)決定了分頁(yè)510的安全等級(jí),其可定義目前的安全等級(jí)。因此,系統(tǒng)200有效地使用區(qū)段/頁(yè)510來(lái)定義安全等級(jí)(框圖1030)。系統(tǒng)200緊接著將定義的安全等級(jí)送至處理器310中以便執(zhí)行適當(dāng)?shù)妮斎?輸出空間存取(框圖1040)。圖10中所示例的步驟的實(shí)現(xiàn)明顯的完成了如圖9的框圖910所表示的決定第二輸入/輸出表430中的安全等級(jí)的步驟。
現(xiàn)在請(qǐng)參考圖11,其示例了執(zhí)行圖7的框圖750所描述的適當(dāng)輸入/輸出空間存取的步驟的流程圖的實(shí)施例。系統(tǒng)200檢查與特定內(nèi)存存取請(qǐng)求相對(duì)應(yīng)的安全等級(jí)(框圖1110)。該安全等級(jí)可與根據(jù)處理器310所執(zhí)行的特定軟件對(duì)象350提出的特定輸入/輸出空間存取請(qǐng)求相關(guān)聯(lián)。系統(tǒng)200緊接著決定該安全等級(jí)是否足夠允許請(qǐng)求的輸入/輸出資源/輸入/輸出內(nèi)存的存取(也就是說(shuō),輸入/輸出裝置360及或輸入/輸出裝置360的部分內(nèi)存)(框圖1120)。系統(tǒng)200會(huì)檢視安全等級(jí)通行證是否適合于正確執(zhí)行由處理器310所請(qǐng)求的輸入/輸出空間存取并且獲得對(duì)特定輸入/輸出裝置360及或輸入/輸出裝置360上內(nèi)存位置的存取。
當(dāng)系統(tǒng)200認(rèn)為安全等級(jí)的高度并不足以讓根據(jù)由處理器310所請(qǐng)求的特定輸入/輸出空間存取而進(jìn)行的輸入/輸出資源/輸入/輸出內(nèi)存存取能夠執(zhí)行時(shí),系統(tǒng)200會(huì)否決所要求的輸入/輸出資源/輸入/輸出內(nèi)存存取(框圖1140)。當(dāng)系統(tǒng)200決定安全等級(jí)能有效的允許所要求的輸入/輸出資源/輸入/輸出內(nèi)存存取時(shí),系統(tǒng)200會(huì)允許處理器310或軟件對(duì)象350獲得對(duì)物理內(nèi)存345中的特定輸入/輸出裝置360及/或輸入/輸出裝置360上的內(nèi)存位置的存取(框圖1130)。圖11中所指出的步驟的實(shí)現(xiàn)明顯的完成了允許如圖7中框圖750所指示的適當(dāng)內(nèi)存存取程序的執(zhí)行。本發(fā)明所講授的原理可在其它形式的自動(dòng)化結(jié)構(gòu)中進(jìn)行。
上面所揭示的特定實(shí)施例僅為示例性的,對(duì)于受益于本發(fā)明的本領(lǐng)域技術(shù)人員來(lái)說(shuō),本發(fā)明可以以不同但等同的方法進(jìn)行修改與實(shí)現(xiàn)。此外,除了下面的權(quán)利要求書(shū)中所述之外,對(duì)于此處所顯示的結(jié)構(gòu)或設(shè)計(jì)詳細(xì)說(shuō)明并不意圖做任何限制。因此很明顯的上面所揭示的特定實(shí)施例可以修改及變動(dòng),而所有的這些變化都被視為在本發(fā)明的精神與范圍之內(nèi)。因此,此處所追求的保護(hù)如下面的權(quán)利要求書(shū)所提。
權(quán)利要求
1.一種方法,包含執(zhí)行一軟件對(duì)象(350);建立該軟件對(duì)象(350)的一安全等級(jí);使用至少一個(gè)該安全等級(jí)執(zhí)行一多表式輸入/輸出(I/O)空間存取;及執(zhí)行該對(duì)象(350)的功能。
2.如權(quán)力要求1所述的方法,其中建立該軟件對(duì)象(350)的安全等級(jí)更進(jìn)一步包含給定與至少一部分的內(nèi)存(347)的輸入/輸出空間存取有關(guān)的安全等級(jí)。
3.如權(quán)力要求1所述的方法,其中使用至少一個(gè)該安全等級(jí)執(zhí)行一多表式輸入/輸出空間存取,其進(jìn)一步包含建立一第二輸入/輸出表(430);接收根據(jù)該軟件對(duì)象(350)的執(zhí)行的一輸入/輸出空間存取請(qǐng)求;利用該第二輸入/輸出表(430)及至少一個(gè)虛擬內(nèi)存表根據(jù)該輸入/輸出空間存取請(qǐng)求執(zhí)行一多等級(jí)表存??;及根據(jù)該多等級(jí)表存取對(duì)至少一部分的輸入/輸出裝置(360)做存取。
4.如權(quán)力要求3所述的方法,其中第二輸入/輸出表(430)的建立進(jìn)一步包含將一輸入/輸出空間(340)分割成多個(gè)區(qū)段;決定至少一個(gè)上述區(qū)段從該第二輸入/輸出表(430)中省略及至少一個(gè)區(qū)段未省略;指定一默認(rèn)安全等級(jí)至該省略區(qū)段中;指定一默認(rèn)安全等級(jí)至該未省略區(qū)段中;及將至少一個(gè)的區(qū)段與輸入/輸出空間(340)位置建立關(guān)聯(lián)。
5.如權(quán)力要求3所述的方法,其中根據(jù)該輸入/輸出空間存取請(qǐng)求執(zhí)行一多等級(jí)表存取,其進(jìn)一步包含決定至少一個(gè)與該第二輸入/輸出表(430)中的區(qū)段相對(duì)應(yīng)的安全等級(jí);確認(rèn)介于執(zhí)行安全等級(jí)及與一區(qū)段相關(guān)的安全等級(jí)相匹配,其中該區(qū)段被存取以響應(yīng)該對(duì)象的執(zhí)行;為響應(yīng)該執(zhí)行安全等級(jí)與該被存取的區(qū)段相關(guān)的安全等級(jí)之間的匹配,而根據(jù)該第二輸入/輸出表(430)決定一輸入/輸出空間地址;并且定位一輸入/輸出裝置(360)以對(duì)應(yīng)該輸入/輸出空間地址。
6.如權(quán)力要求5所述的方法,其中決定至少一個(gè)與該第二輸入/輸出表(430)中的一區(qū)段相對(duì)應(yīng)的安全等級(jí),其包含從該第二輸入/輸出表(430)中決定一物理輸入/輸出裝置地址;根據(jù)該物理輸入/輸出裝置地址決定一被執(zhí)行的區(qū)段;并且根據(jù)該區(qū)段被執(zhí)行的該決定來(lái)定義一目前的安全等級(jí)。
7.一種使用目標(biāo)安全執(zhí)行輸入/輸出裝置存取的裝置,其特征在于,該裝置包含與一總線(315)連接的一處理器(310);將至少一個(gè)軟件對(duì)象(350)與該處理器(310)相連的方法;一輸入/輸出(I/O)裝置;以及與該總線(315)及一內(nèi)存單元(347)相連接的輸出/輸入存取接口(320),該輸出/輸入存取接口(320)根據(jù)至少一個(gè)安全等級(jí),而提供該處理器(310)對(duì)該內(nèi)存單元(347)的至少一部分進(jìn)行多等級(jí)表輸入/輸出空間存取,以響應(yīng)該處理器(310)執(zhí)行該軟件對(duì)象(350)。
8.如權(quán)力要求7所述的裝置,其中該輸入/輸出空間存取接口包含一個(gè)與第二輸入/輸出表(430)和該輸入/輸出存取接口(320)相連的輸入/輸出空間存取表(410),以提供虛擬內(nèi)存尋址方法以便基于某個(gè)安全等級(jí)存取該輸入輸出裝置(360)的至少一部分。
9.一種由指令編碼的計(jì)算機(jī)可讀取程序儲(chǔ)存裝置,當(dāng)其由計(jì)算機(jī)執(zhí)行時(shí),執(zhí)行一種方法,其包含執(zhí)行一軟件對(duì)象(350);建立供該軟件對(duì)象(350)使用的一安全等級(jí);建立一第二輸入/輸出(I/O)表(430);接收基于該軟件對(duì)象(350)的執(zhí)行的一輸入/輸出空間存取請(qǐng)求;決定至少一個(gè)與該第二輸入/輸出表(430)內(nèi)的區(qū)段相對(duì)應(yīng)的安全等級(jí);確認(rèn)介于執(zhí)行安全等級(jí)及與一區(qū)段相關(guān)的安全等級(jí)相匹配,其中該區(qū)段被存取以響應(yīng)該軟件對(duì)象(350)的執(zhí)行;為響應(yīng)該執(zhí)行安全等級(jí)與該被存取的區(qū)段相關(guān)的安全等級(jí)之間的匹配,而根據(jù)該第二輸入/輸出表(430)決定一輸入/輸出空間地址;定位與該輸入/輸出空間地址相對(duì)應(yīng)的一物理輸入/輸出裝置(360)位置(物理內(nèi)存位置);及根據(jù)對(duì)該物理內(nèi)存位置的定位對(duì)部分的輸入/輸出裝置(360)進(jìn)行存取。
10.該由指令編碼的計(jì)算機(jī)可讀取程序儲(chǔ)存裝置,當(dāng)其由電腦執(zhí)行時(shí),執(zhí)行如權(quán)力要求9所述的方法,其中決定至少一個(gè)與該第二輸入/輸出表(430)內(nèi)的區(qū)段相對(duì)應(yīng)的安全等級(jí),其包含自該輸入/輸出空間表中決定一物理輸入/輸出裝置(360)位址;根據(jù)該物理輸入/輸出裝置(360)地址決定被執(zhí)行的區(qū)段;并且根據(jù)該區(qū)段被執(zhí)行的該決定來(lái)定義目前的安全等級(jí)。
全文摘要
一種利用目標(biāo)安全執(zhí)行輸入/輸出裝置存取的方法與裝置。執(zhí)行了一個(gè)軟件對(duì)象(350)。建立了供該軟件對(duì)象(350)使用的安全等級(jí)。使用至少一個(gè)的安全等級(jí)執(zhí)行多表式輸入輸出(I/O)空間存取。執(zhí)行了軟件對(duì)象(350)的功能。
文檔編號(hào)G06F12/14GK1615473SQ02827161
公開(kāi)日2005年5月11日 申請(qǐng)日期2002年9月12日 優(yōu)先權(quán)日2002年1月15日
發(fā)明者B·C·巴恩斯, G·S·斯特龍金, R·W·施密特 申請(qǐng)人:先進(jìn)微裝置公司