專利名稱:生成受限和非受限執(zhí)行環(huán)境的機(jī)制的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng);具體的,本發(fā)明涉及可以在可信賴或安全環(huán)境中操作的計(jì)算機(jī)系統(tǒng)。
背景技術(shù):
有不同的應(yīng)用受益于“隔離執(zhí)行”和“隔離存儲(chǔ)”。隔離執(zhí)行是代碼不受其它軟件干擾或監(jiān)視而運(yùn)行的能力。隔離執(zhí)行對(duì)于安全軟件來說十分重要,對(duì)于防止非惡意但設(shè)計(jì)不好的軟件的保護(hù)也很重要。例如,編寫差勁的設(shè)備驅(qū)動(dòng)可能會(huì)干擾操作系統(tǒng)(OS)的合理操作,從而導(dǎo)致系統(tǒng)宕機(jī)使得時(shí)間敏感的應(yīng)用(比如數(shù)碼視頻記錄軟件)無法運(yùn)行。
隔離存儲(chǔ)涉及數(shù)據(jù)存儲(chǔ)在非易失存儲(chǔ)中只供授權(quán)擁有者訪問的能力。這樣,其它軟件就無法修改或刪除該數(shù)據(jù)。刪除概念很重要,因?yàn)镺S或設(shè)備驅(qū)動(dòng)的錯(cuò)誤可以導(dǎo)致磁盤上的數(shù)據(jù)無法訪問。
本發(fā)明以舉例的方式描述,不限于附圖,其中相似的參考標(biāo)號(hào)代表相似的構(gòu)件,其中圖1是計(jì)算機(jī)系統(tǒng)實(shí)施例的框圖;圖2是連接到磁盤的磁盤控制器實(shí)施例的框圖;和圖3是計(jì)算機(jī)系統(tǒng)操作實(shí)施例的流程圖。
具體實(shí)施例方式
下面要描述的是在計(jì)算機(jī)系統(tǒng)中受限和非受限執(zhí)行環(huán)境的機(jī)制。在下面對(duì)本發(fā)明的具體描述中,闡述許多具體細(xì)節(jié)以提供對(duì)本發(fā)明的透徹理解。但是對(duì)于本領(lǐng)域的技術(shù)人員顯而易見的是,本發(fā)明無需這些特定細(xì)節(jié)就可以實(shí)施。另外,公知結(jié)構(gòu)和設(shè)備以框圖示出而不詳細(xì)展示,以避免模糊本發(fā)明。
說明書中提到的“一個(gè)實(shí)施例”或“實(shí)施例”意指結(jié)合實(shí)施例描述的特定特性、結(jié)構(gòu)或特征包括在本發(fā)明的至少一個(gè)實(shí)施例中。文中在多處提到的“在一個(gè)實(shí)施例中”不一定都指向同一實(shí)施例。
下面詳細(xì)描述的一些部分會(huì)以算法和符號(hào)形式表示對(duì)計(jì)算機(jī)存儲(chǔ)器中的數(shù)據(jù)位的操作。這些算法描述和表示是數(shù)據(jù)處理領(lǐng)域技術(shù)人員使用的方式,以最有效得將他們工作的內(nèi)容傳達(dá)給該領(lǐng)域的其它技術(shù)人員。
此處的算法通常被認(rèn)為是得出期望結(jié)果的一致步驟序列。這些步驟為需要物理操作物理量的步驟。通常但不必須的是,這些數(shù)量以可以存儲(chǔ)、傳輸、合并、比較和進(jìn)行其它操作的電或磁信號(hào)的形式存在。稱這些信號(hào)為比特、值、元素、符號(hào)、字符、項(xiàng)、數(shù)字或類似的稱謂,已經(jīng)被多次證明是方便的,而且主要是為了通用的目的。
但要記住,所有這些和類似的名詞是與相應(yīng)物理量相關(guān)且只是應(yīng)用于這些數(shù)量的方便稱謂。除非特別說明,如同從下文顯而易見的那樣,應(yīng)該理解,在整個(gè)說明書中,討論使用的如下說法,比如“處理”或“計(jì)算”或“推算”或“確定”或“顯示”等等,指的是計(jì)算機(jī)系統(tǒng)或類似電子計(jì)算設(shè)備的動(dòng)作和處理,將代表計(jì)算機(jī)系統(tǒng)寄存器和存儲(chǔ)器內(nèi)的物理(電子)量操作和傳輸至相似的代表計(jì)算機(jī)系統(tǒng)存儲(chǔ)器或寄存器或其它信息存儲(chǔ)、傳輸或顯示設(shè)備內(nèi)的物理量的其它數(shù)據(jù)。
本發(fā)明還涉及執(zhí)行此操作的設(shè)備。該設(shè)備可以是專門為所期望目的建造,或者它可以包含通用計(jì)算機(jī),被存儲(chǔ)在該計(jì)算機(jī)內(nèi)的計(jì)算機(jī)程序選擇性啟動(dòng)或重配置。此計(jì)算機(jī)程序可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,例如但不限于,任意類型的磁盤包括軟盤、光盤、CD-ROM和磁光盤、只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、EPROM、EEPROM、磁或光卡、或適合存儲(chǔ)電子指令的任意類型介質(zhì),每個(gè)都連接到系統(tǒng)總線。
此處的算法和顯示不與任何特定計(jì)算機(jī)或其它設(shè)備相關(guān)。不同的通用目的系統(tǒng)都可以使用與本文教義相符的程序,或可以創(chuàng)建更專用的設(shè)備來執(zhí)行所需的方法步驟。這些各類系統(tǒng)所要的結(jié)構(gòu)將在下面描述。此外,本發(fā)明不是特指任意特定的編程語言。要理解可以使用不同的編程語言來實(shí)現(xiàn)此處描述的本發(fā)明教義。
程序語言指令可以由一個(gè)或多個(gè)處理設(shè)備執(zhí)行(例如,處理器、控制器、控制處理單元(CPU)、執(zhí)行核心等)。
圖1是計(jì)算機(jī)系統(tǒng)100的實(shí)施例的框圖。計(jì)算機(jī)系統(tǒng)100包括中央處理單元(CPU)102和相連的總線105。根據(jù)一個(gè)實(shí)施例,CPU102包括多核心103。例如,CPU 102包括核心0和核心1。在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)100同時(shí)操作多個(gè)操作系統(tǒng)。在此實(shí)施例中,獨(dú)立的OS在每個(gè)核心103上運(yùn)行。這樣,第一OS運(yùn)行在核心0上,第二OS運(yùn)行在核心1上。在進(jìn)一步的實(shí)施例中,每個(gè)核心可以運(yùn)行多個(gè)線程。但是,在下面的描述中,線程一詞用于表示實(shí)現(xiàn)OS的處理器函數(shù)。
在一個(gè)實(shí)施例中,CPU 102是Pentium系列的處理器,包括位于加州Santa Clara的Intel公司的PentiumII處理器系列、PentiumIII處理器、和PentiumIV處理器。作為替換,也可以使用其它CPU。
芯片組107也與總線105相連。芯片組107包括存儲(chǔ)器控制中繼器(MCH)110。MCH 110可以包括與主系統(tǒng)存儲(chǔ)器115相連的存儲(chǔ)器控制器112。主系統(tǒng)存儲(chǔ)器115存儲(chǔ)由CPU 102或系統(tǒng)100包含的任意其它設(shè)備執(zhí)行的數(shù)據(jù)和指令序列。在一個(gè)實(shí)施例中,主系統(tǒng)存儲(chǔ)器115包括動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM);但是,主系統(tǒng)存儲(chǔ)器115也可以使用其它類型的存儲(chǔ)器實(shí)現(xiàn)。
根據(jù)一個(gè)實(shí)施例,MCH 110包括線程ID檢查器112。ID檢查器116通過總線105接收從CPU傳來的線程ID,該ID表示正在執(zhí)行存儲(chǔ)器或I/O訪問的線程。在一個(gè)實(shí)施例中,線程ID檢查器112分配特定存儲(chǔ)器區(qū)域到特定線程中。
在進(jìn)一步的實(shí)施例中,提供非受限線程可以訪問所有的存儲(chǔ)器頁面,而提供一個(gè)或多個(gè)其它受限線程只允許訪問特定頁面。進(jìn)而,CPU 102和芯片組110允許計(jì)算機(jī)系統(tǒng)100平臺(tái)的受限組件進(jìn)行修改,同時(shí)平臺(tái)的非受限組件不被重新設(shè)置。在更進(jìn)一步的實(shí)施例中,非受限線程可以監(jiān)管性的訪問受限線程。這種監(jiān)管性訪問允許非受限線程檢查受限線程的訪問級(jí)別。
MCH還包括計(jì)時(shí)器和中斷資源114和重啟和電源管理寄存器116。計(jì)時(shí)器和中斷資源提供給非受限線程,允許非受限線程擁有計(jì)時(shí)器和中斷服務(wù),而無法被受限線程修改(有意或無意)。
重啟和電源管理寄存器116也提供給非受限線程。重啟和電源管理寄存器116引發(fā)由受限線程處理的事件。這樣就允許受限線程擁有重啟和電源管理策略。根據(jù)一個(gè)實(shí)施例,MCH 110使能通常引發(fā)系統(tǒng)管理中斷(SMI)的重要事件只引發(fā)中斷給非受限線程。這樣就允許OS無關(guān)的線程運(yùn)行在非受限線程上而不打擾運(yùn)行在受限線程上的OS執(zhí)行流程。
MCH 110還可以包括與圖形加速器130相連的圖形接口113。根據(jù)一個(gè)實(shí)施例,圖形接口113使能非受限線程在顯示器(未示出)上顯示窗口,使得與受限線程相關(guān)的窗口無法顯示在非受限線程相關(guān)的窗口之上。
MCH 110通過中繼接口與輸入/輸出控制中繼器(ICH)140相連。ICH 140為計(jì)算機(jī)系統(tǒng)110內(nèi)的輸入/輸出(I/O)設(shè)備提供接口。ICH 140包括磁盤控制器142、音頻控制器144和網(wǎng)絡(luò)控制器146。磁盤控制器142與一個(gè)或多個(gè)磁盤驅(qū)動(dòng)器(未示出)相連,控制芯片組107與這些驅(qū)動(dòng)器之間的數(shù)據(jù)傳輸。
根據(jù)一個(gè)實(shí)施例,允許非受限線程通過磁盤控制器142完全訪問硬盤260上的數(shù)據(jù)。但是,在該實(shí)施例中,受限線程不允許訪問磁盤260上的特定部分。圖2是與磁盤相連的磁盤控制器142的實(shí)施例框圖。磁盤控制器142包括接口230和DMA引擎250。接口230包括接口0和接口1。
接口0和接口1向訪問硬盤260上的數(shù)據(jù)的軟件提供獨(dú)立的接口。例如,一個(gè)配置空間可以被非受限線程訪問,而其它空間可以被一個(gè)或多個(gè)非受限線程訪問。DMA引擎250幫助硬盤260間的直接存儲(chǔ)器訪問。
參看圖1,音頻控制器144操作聲音的記錄和回放。根據(jù)一個(gè)實(shí)施例,音頻控制器144允許輸出音頻流針對(duì)非受限和受限線程獨(dú)立操作。這樣就避免了受限線程“靜默”非受限線程。在進(jìn)一步的實(shí)施例中,音頻控制器144包括允許輸入流首先被傳輸至非受限線程的模式,非受限線程可以決定音頻數(shù)據(jù)是否應(yīng)傳輸?shù)绞芟蘧€程中。
網(wǎng)絡(luò)控制器146將計(jì)算機(jī)系統(tǒng)100鏈接至計(jì)算機(jī)網(wǎng)絡(luò)(圖1未示出),支持機(jī)器間的通信。根據(jù)一個(gè)實(shí)施例,非受限線程被允許完全訪問網(wǎng)絡(luò)控制器146,而受限線程沒有完全訪問權(quán)。在一個(gè)實(shí)施例中,由受限線程“傳輸”的包首先被非受限線程檢查或修改。此外,從網(wǎng)絡(luò)接收的包在傳給受限線程之前首先由非受限線程檢查。
圖3是在計(jì)算機(jī)系統(tǒng)100上請(qǐng)求訪問存儲(chǔ)器或I/O的實(shí)施例的流程圖。在處理塊310中,從CPU 102發(fā)出的設(shè)備訪問請(qǐng)求在芯片組107上接收。例如,該請(qǐng)求可以在MCH 110上接收以訪問存儲(chǔ)器115。類似的,該請(qǐng)求可以在磁盤控制器142上接收以訪問硬盤260。
在處理塊320中,線程ID檢查器116檢查包含在請(qǐng)求中的線程ID以確定發(fā)出請(qǐng)求的線程。在決定塊330,決定請(qǐng)求線程是受限線程還是非受限線程。如果是非受限線程,在處理塊340中,該非受限線程被授與完全訪問權(quán)限訪問請(qǐng)求目標(biāo)設(shè)備中的數(shù)據(jù)。
但如果是受限線程,在處理塊350,進(jìn)行檢查決定該受限線程是否擁有對(duì)所請(qǐng)求的資源的訪問權(quán)。在決定塊360,決定該受限線程是否可以訪問該請(qǐng)求數(shù)據(jù)。如果允許訪問,在處理塊370中,該線程被授權(quán)訪問請(qǐng)求目標(biāo)設(shè)備中的數(shù)據(jù)。但如果確定該線程不允許訪問所請(qǐng)求的數(shù)據(jù),在處理塊380中,訪問被拒絕。
在閱讀完上述描述后,本領(lǐng)域的一般技術(shù)人員就能對(duì)本發(fā)明進(jìn)行各種修改和替換,要理解通過示例的方式展示的特定實(shí)施例和描述不是用于限定本發(fā)明。因此,對(duì)不同實(shí)施例的細(xì)節(jié)描述不用于限定權(quán)利要求的范圍,而權(quán)利要求本身只是對(duì)本發(fā)明主旨特性的描述。
權(quán)利要求
1.一種計(jì)算機(jī)系統(tǒng),包括中央處理單元(CPU),其具有具有第一相關(guān)線程標(biāo)識(shí)(ID)的第一線程;以及具有第二相關(guān)線程ID的第二線程;以及芯片組,被耦合以用于接收來自所述CPU的訪問請(qǐng)求,并檢查所述訪問請(qǐng)求中包含的線程ID以確定哪個(gè)線程在請(qǐng)求訪問。
2.根據(jù)權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中所述第一線程是非受限線程,為其提供對(duì)數(shù)據(jù)的完全訪問權(quán)限,而所述第二線程是受限線程,為其提供對(duì)數(shù)據(jù)的受限訪問權(quán)限。
3.根據(jù)權(quán)利要求2的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括與所述芯片組相連的存儲(chǔ)器設(shè)備,其中為所述非受限線程提供對(duì)所述存儲(chǔ)器設(shè)備中所有頁面的訪問權(quán)限,為所述受限線程提供對(duì)所述存儲(chǔ)器設(shè)備中分配的區(qū)域的訪問權(quán)限。
4.根據(jù)權(quán)利要求2的計(jì)算機(jī)系統(tǒng),其中所述CPU和所述芯片組使計(jì)算機(jī)系統(tǒng)的受限組件可以被修改,而非受限組件保持不變。
5.根據(jù)權(quán)利要求4的計(jì)算機(jī)系統(tǒng),其中所述非受限線程對(duì)所述受限線程進(jìn)行監(jiān)管性訪問,使所述非受限線程可以檢查所述受限線程的訪問級(jí)別。
6.根據(jù)權(quán)利要求2的計(jì)算機(jī)系統(tǒng),其中所述芯片組包含不能被所述受限線程修改的計(jì)時(shí)器和中斷資源。
7.根據(jù)權(quán)利要求2的計(jì)算機(jī)系統(tǒng),其中所述芯片組進(jìn)一步包含若干個(gè)寄存器,使所述非受限線程可以引發(fā)由所述受限線程處理的事件。
8.根據(jù)權(quán)利要求2的計(jì)算機(jī)系統(tǒng),其中所述芯片組包含圖形接口,以使所述非受限線程在顯示器上顯示窗口,這樣與所述受限線程相關(guān)的窗口不能顯示在與所述非受限線程相關(guān)的窗口之上。
9.根據(jù)權(quán)利要求2的計(jì)算機(jī)系統(tǒng),其中所述芯片組包含磁盤控制器,以為所述非受限線程提供對(duì)與所述磁盤控制器142相連的硬盤上的數(shù)據(jù)的完全訪問權(quán)限,而為所述受限線程提供對(duì)所述硬盤特定部分的訪問權(quán)限。
10.根據(jù)權(quán)利要求9的計(jì)算機(jī)系統(tǒng),其中所述磁盤控制器包括與所述非受限線程相關(guān)的第一接口;與所述受限線程相關(guān)的第二接口;以及DMA引擎。
11.根據(jù)權(quán)利要求2的計(jì)算機(jī)系統(tǒng),其中所述芯片組包含音頻控制器,以允許輸出音頻流為所述非受限和所述受限線程獨(dú)立操作,以防止所述受限線程靜默所述非受限線程。
12.根據(jù)權(quán)利要求11的計(jì)算機(jī)系統(tǒng),其中所述音頻控制器包括允許輸入流首先傳輸給所述非受限線程以確定音頻數(shù)據(jù)是否應(yīng)該傳給所述受限線程的模式。
13.根據(jù)權(quán)利要求2的計(jì)算機(jī)系統(tǒng),其中所述芯片組包含網(wǎng)絡(luò)控制器,用于允許所述非受限線程進(jìn)行完全訪問,以及所述受限線程進(jìn)行受限訪問。
14.根據(jù)權(quán)利要求13的計(jì)算機(jī)系統(tǒng),其中由所述受限線程傳輸?shù)陌紫缺凰龇鞘芟蘧€程檢查或修改,從網(wǎng)絡(luò)接收的包在傳給所述受限線程之前首先由所述非受限線程檢查。
15.一種方法,包含接收訪問設(shè)備的數(shù)據(jù)資源的請(qǐng)求;檢查與所述請(qǐng)求相關(guān)的線程標(biāo)識(shí)(ID);以及如果線程ID表明是從非受限線程發(fā)出的請(qǐng)求則提供對(duì)數(shù)據(jù)資源的完全訪問權(quán)限。
16.根據(jù)權(quán)利要求15的方法,進(jìn)一步包含,如果線程ID表明發(fā)出請(qǐng)求的是受限線程則只提供對(duì)所述數(shù)據(jù)資源的預(yù)定組件的訪問權(quán)限。
17.一種系統(tǒng),包含硬盤驅(qū)動(dòng)器;以及磁盤控制器,與所述硬盤相連,包括與非受限線程相關(guān)的第一接口,以允許所述非受限線程對(duì)所述硬盤驅(qū)動(dòng)器上的數(shù)據(jù)進(jìn)行完全訪問;以及與受限線程相關(guān)的第二接口,以允許所述受限線程對(duì)所述硬盤上的特定部分進(jìn)行訪問。
18.根據(jù)權(quán)利要求9的系統(tǒng),其中所述磁盤控制器進(jìn)一步包含DMA引擎。
19.一種制造物品,包括一個(gè)或多個(gè)裝載程序指令的計(jì)算機(jī)可讀介質(zhì),其中所述程序指令被處理單元執(zhí)行時(shí),使得所述處理單元接收訪問設(shè)備上的數(shù)據(jù)資源的請(qǐng)求;檢查與所述請(qǐng)求相關(guān)的線程標(biāo)識(shí)(ID);以及如果所述線程ID指示發(fā)出請(qǐng)求的是非受限線程,則提供對(duì)所述數(shù)據(jù)資源的完全訪問權(quán)限。
20.根據(jù)權(quán)利要求19的制造物品,其中所述程序指令被處理單元執(zhí)行時(shí),如果所述線程ID指示發(fā)出請(qǐng)求的是受限線程,則進(jìn)一步使得所述處理單元提供對(duì)所述數(shù)據(jù)資源預(yù)定組件的訪問權(quán)限。
21.一種芯片組,包含線程標(biāo)識(shí)(ID)檢查器,用于檢查從中央處理單元(CPU)接收到的訪問請(qǐng)求中包含的線程ID,以確定所述訪問請(qǐng)求來自具有第一相關(guān)線程標(biāo)識(shí)(ID)的第一線程或來自具有第二相關(guān)線程ID的第二線程;以及
22.根據(jù)權(quán)利要求21的芯片組,其中所述第一線程是非受限線程,為其提供對(duì)數(shù)據(jù)的完全訪問權(quán)限,所述第二線程是受限線程,為其提供對(duì)數(shù)據(jù)的有限訪問權(quán)限。
23.根據(jù)權(quán)利要求4的芯片組,其中所述非受限線程對(duì)所述受限線程進(jìn)行監(jiān)管性訪問,以允許所述非受限線程檢查所述受限線程的訪問級(jí)別。
24.根據(jù)權(quán)利要求22的芯片組,其中所述芯片組包含不能被所述受限線程修改的計(jì)時(shí)器和中斷資源。
25.根據(jù)權(quán)利要求24的芯片組,進(jìn)一步包含若干個(gè)寄存器,用于使所述非受限線程引其由所述受限線程處理的事件。
26.根據(jù)權(quán)利要求22的芯片組,其中所述芯片組包含圖形接口,用于使所述非受限線程在顯示器上顯示窗口,這樣與所述受限線程相關(guān)的窗口不能顯示在與所述非受限線程相關(guān)的窗口之上。
27.根據(jù)權(quán)利要求22的芯片組,其中所述芯片組包含磁盤控制器,以為所述非受限線程提供對(duì)與磁盤控制器142相連的硬盤上的數(shù)據(jù)的完全訪問權(quán)限,而為所述受限線程提供對(duì)所述硬盤上特定部分的訪問權(quán)限。
28.根據(jù)權(quán)利要求22的芯片組,其中所述芯片組包含音頻控制器,以允許輸出音頻流為所述非受限和所述受限線程獨(dú)立操作,以防止所述受限線程靜默所述非受限線程。
29.根據(jù)權(quán)利要求22的芯片組,其中所述芯片組包含網(wǎng)絡(luò)控制器,用于允許所述非受限線程進(jìn)行完全訪問,以及所述受限線程進(jìn)行受限訪問。
全文摘要
根據(jù)一個(gè)實(shí)施例公開了一種計(jì)算機(jī)系統(tǒng)。該計(jì)算機(jī)系統(tǒng)包括中央處理單元(CPU),中央處理單元中包括具有第一相關(guān)線程標(biāo)識(shí)(ID)的第一線程和具有第二相關(guān)線程ID的第二線程。該計(jì)算機(jī)系統(tǒng)還包括連接的芯片組,用于接收來自CPU的訪問請(qǐng)求,并檢查訪問請(qǐng)求中的線程ID以確定哪個(gè)線程在請(qǐng)求訪問。
文檔編號(hào)G06F9/46GK101031922SQ200580032988
公開日2007年9月5日 申請(qǐng)日期2005年10月27日 優(yōu)先權(quán)日2004年10月27日
發(fā)明者戴維·珀斯納 申請(qǐng)人:英特爾公司