專利名稱::用于個人計算機存儲器區(qū)域的外部鎖固機構(gòu)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計算機系統(tǒng),特別是涉及用來在一個人計算機系統(tǒng)中控制訪問內(nèi)存區(qū)域的外部鎖固機制。
背景技術(shù):
:本申請書是2001年5月10日所提出審査中美國專利申請第09/852,372號名稱為"安全執(zhí)行箱和其方法"的一部分延續(xù)申請,其發(fā)明者為DaleE.GuHck和GeoffreyS.Strongin。此申請書也是2001年5月10日所提出審査中美國專利申請第09/852,942號名稱為"用以加強安全性與易處理性的計算機系統(tǒng)結(jié)構(gòu)"的一部分延續(xù)申請,其發(fā)明者為GeoffieyS.Strongin和DaleE.Gulick。圖1A顯示一示范計算機系統(tǒng)100。計算機系統(tǒng)100包括一處理器102、一北橋104、一內(nèi)存106、一高等圖形端口(AdvancedGraphicsPort,AGP)內(nèi)存108、一周邊組件(PeripheralComponentInterconnect,PCI)總線IIO、一南橋112、一電池、一AT附加裝置(ATAttachment,ATA)接口114(一般稱為IDE(IntegratedDriveElectronics,IDE)接口)、一通用串行總線(universalserialbus,USB)接口116、一低接腳計數(shù)(LowPinCo加t,LPC)總線118、一輸入/輸出控制芯片(Superl/OTM)120以及基本輸入/輸出系統(tǒng)(BIOS)122。值得注意的是北橋104和南橋112可僅包括單一芯片或多個芯片,而稱為集合名詞"芯片組(chipset)"。另外也值得注意的是其它總線、裝置和/或者子系統(tǒng)若有需要也可包括于計算機系統(tǒng)100中,舉例而言高速緩存、調(diào)制解調(diào)器、并行或串行接口、小型計算機系統(tǒng)(SCSI)接口、網(wǎng)絡(luò)接口卡片等等。[Superf/0為位于加州圣塔克拉拉的國家半導(dǎo)體股份有限公司的寄存器商標(biāo)]處理器102連接至北橋104。北橋104提供一接口于處理器102、內(nèi)存106、AGP內(nèi)存108和PCI總線110之間。南橋112提供一接口于PCI總線110和連接至IDE接口114、通用串行總線接口116和低接腳計數(shù)總線118的周邊、裝置和子系統(tǒng)之間。電池113顯示為與南橋112相連接。Superi/OTM芯片120連接至低接腳計數(shù)總線118。北橋104在處理器102、內(nèi)存106、AGP內(nèi)存108、與PCI總線110相連接的裝置以及與南橋112相連接的裝置和子系統(tǒng)中間和/或提供通訊訪問。一般而言,可拆卸的pci裝置是插入pcr槽"(未顯示),該pcr槽"系連接至PCI總線110,以與計算機系統(tǒng)ioo相連接。另外,置于主機板上的裝置可直接連接于PCI總線iio上。南橋112在PCI總線110和各種裝置和子系統(tǒng)如調(diào)制解調(diào)器、打印機、鍵盤、鼠標(biāo)等等之間提供一接口,此些裝置和子系統(tǒng)通常通過低接腳計數(shù)總線118(或其早期技術(shù),舉例而言一X總線或一ISA總線)與計算機系統(tǒng)100相連接。南橋112包括通過IDE接口114、通用串行總線接口116和低接腳計數(shù)總線118來接合裝置至計算機系統(tǒng)100其它部分的邏輯電路。圖1B顯示已知南橋112的一外觀,包括用以提供儲備電力的電池113,也就是所謂"實時時鐘(RTC)電池槽"125。南橋112包括南橋(SB)隨機存取內(nèi)存126和時鐘電路128,兩者均位于實時時鐘電池槽125內(nèi)。南橋隨機存取內(nèi)存126B包括互補式金屬氧化半導(dǎo)體隨機存取內(nèi)存(CMOSRAM)126A和實時時鐘(RTC)隨機存取內(nèi)存126B。實時時鐘隨機存取內(nèi)存126B包括時鐘數(shù)據(jù)129和核對和(checksum)數(shù)據(jù)127。在實時時鐘電池槽125外,南橋112也包括一中央處理器接口132、電源和系統(tǒng)管理單元133、PCI總線接口邏輯134A、通用串行總線接口邏輯134C、IDE接口邏輯134B和LPC接口邏輯134D。時鐘電路128的時間和日期數(shù)據(jù)系以時鐘數(shù)據(jù)129儲存于實時時鐘隨機存取內(nèi)存126B中。實時時鐘隨機存取內(nèi)存126B中的核對和數(shù)據(jù)127可基于CMOS內(nèi)存126A數(shù)據(jù)被計算且在啟動期間由基本輸入/輸出系統(tǒng)(BIOS)所儲存,如下所述,在圖2A中的方框148。CPU接口132可包括中斷信號控制器和處理器信號控制器。電源和系統(tǒng)管理單元133可包括一高等配置和電源接口(AdvancedConfigurationandPowerInterfac,ACPI)控制器。系統(tǒng)管理模式(SystemManagementMode,SMM)是計算機系統(tǒng)中的一個操作模式,用以執(zhí)行以保存電力。SMM被設(shè)計用于第四代x86處理器。隨著更新一代的x86處理器出現(xiàn),SMM對操作系統(tǒng)而言已變得較易懂。亦即計算機系統(tǒng)在操作系統(tǒng)內(nèi)進(jìn)入與離開SMM,僅會帶來極少甚至不會有任何影響。請參考圖2A,顯示初始使用代碼儲存在基本輸入/輸出系統(tǒng)(BIOS)122的計算機系統(tǒng)的一已知方法的流程圖。在電力供應(yīng)的初期,電源供應(yīng)器對北橋產(chǎn)生一電力良好信號,如方框136所示。當(dāng)從電源供應(yīng)器得到該電力良好信號時,南橋(或北橋)停止顯示來自處理器的復(fù)位信號,如方框B8所示。在初始期間,處理器讀取缺省跳轉(zhuǎn)位置,如方框140所示。內(nèi)存中的缺省跳轉(zhuǎn)位置通常是在如FFFFOh的位置。在只讀存儲器基本輸入/輸出系統(tǒng)(BIOS)中,處理器對適當(dāng)基本輸入/輸出系統(tǒng)(BIOS)程序代碼位置執(zhí)行一跳轉(zhuǎn)(如FFFFOh),并復(fù)制基本輸入/輸出系統(tǒng)(BIOS)程序代碼到隨機存取內(nèi)存存儲范圍,再從隨機存取內(nèi)存存儲范圍開始處理基本輸入/lf出系統(tǒng)(BIOS)程序代碼指令,如方框142所示。由處理器處理的基本輸入/輸出系統(tǒng)(BIOS)程序代碼執(zhí)行一啟動自檢(power-onselftest,POST),如方框144所示?;据斎?輸出系統(tǒng)(BIOS)程序代碼接著尋找附加的基本輸入/輸出系統(tǒng)(BIOS)程序代碼,例如從一視訊控制器、IDE控制器、小型計算機系統(tǒng)接口控制器等等,并顯示一啟動(start-up)信息屏幕,如方框146所示。舉例而言,視訊控制器基本輸入/輸出系統(tǒng)(BIOS)經(jīng)常在C000h被找到,而IDE控制器基本輸入/輸出系統(tǒng)(BIOS)程序代碼則經(jīng)常在C800h被找到。而IDE控制器基本輸入/輸出系統(tǒng)(BIOS)程序代碼可執(zhí)行附加系統(tǒng)檢測如一隨機存取內(nèi)存存儲范圍計數(shù)測驗,和一系統(tǒng)詳細(xì)目錄,附加系統(tǒng)檢測包括確認(rèn)計算機輸出COM(串行)端口和LinePrinT打印機(并行)端口,如方框148所示。基本輸入/輸出系統(tǒng)(BIOS)程序代碼也識別即插即用(plug-and-play)裝置和其它的類似裝置,然后顯示已確認(rèn)裝置的匯總在屏幕上,如方框150所示。基本輸入/輸出系統(tǒng)(BIOS)程序代碼確認(rèn)啟動位置和相對應(yīng)的啟動區(qū)段,如方框152所示。啟動位置可能位在一軟盤磁盤驅(qū)動器、一硬盤磁盤驅(qū)動器、一只讀型光盤(CDROM)、一遠(yuǎn)程位置上等等。基本輸入/輸出系統(tǒng)(BIOS)程序代碼接著在啟動位置調(diào)用啟動區(qū)段程序代碼,以使計算機系統(tǒng)啟動,如利用一操作系統(tǒng),如方框154所示。值得注意的是對于一冷式啟動(coldboot)或一硬式(重)啟動(hard(re)boot),如方框136至154所示所提出的所有或大多數(shù)描述可能會發(fā)生。而在一熱啟動或一軟式(重)啟動中,基本輸入/輸出系統(tǒng)(BIOS)程序代碼通常從方框142跳到方框148而略過啟動自檢、內(nèi)存測試等等。在圖2B中顯示在SMM中使用儲存于基本輸入/輸出系統(tǒng)122中的程序代碼操作計算機系統(tǒng)的一已知方法的流程圖。一中斷控制器接收對SMM的一請求,如方框172所示。中斷控制器通過對處理器發(fā)出一系統(tǒng)管理中斷(SM說)信號以對SMM發(fā)出請求信號,如方框174所示。處理器確認(rèn)對SMM的請求并顯示一SMIACTive(SMIACT弁)信號,如方框176所示。系統(tǒng)確認(rèn)SMLACT弁信號,而使到系統(tǒng)隨機存取內(nèi)存的通路無法進(jìn)入,并使系統(tǒng)管理隨機存取內(nèi)存(SMRAM)空間的通路可進(jìn)入,如方框178所示。當(dāng)前處理器狀態(tài)儲存于系統(tǒng)管理隨機存取內(nèi)存,如方框180中。處理器復(fù)位SMM缺省狀態(tài)并進(jìn)入SMM,如方框182所示。處理器接著讀取缺省指針并跳轉(zhuǎn)至系統(tǒng)管理隨機存取內(nèi)存空間中的適當(dāng)?shù)胤?,如方?84所示。如方框186所示,確認(rèn)系統(tǒng)管理中斷請求的來源和/或性質(zhì)。系統(tǒng)管理中斷管理器維護(hù)系統(tǒng)管理中斷請求,如方框188所示。在接受系統(tǒng)管理中斷請求以后,系統(tǒng)管理中斷管理器從SMM(RSM)指令發(fā)出一個響應(yīng)至處理器,如方框190所示。在操作RSM指令時,處理器恢復(fù)所存盤的狀態(tài)信息并繼續(xù)正常的操作,如方框192所示。從硬件的觀點,x86操作環(huán)境并未提供足夠的用戶隱私保護(hù)、以及公司秘密和資產(chǎn)安全或內(nèi)容供應(yīng)者的所有權(quán)的保護(hù)。所有這些目標(biāo)、隱私(privacy)、安全(security)和所有權(quán)(ownership)(通稱為PSO)在如此的因特網(wǎng)連接的計算機時代變得十身重要。原始個人計算機并未預(yù)先設(shè)計PSO的需要。從軟件的觀點,就PSO而言x86操作環(huán)境也是十分的不足。通過軟件直接訪問硬件或直接打開個人計算機機蓋此類簡易訪問方式使得入侵者或竊賊可克服大多數(shù)的安全軟件和裝置。個人計算機使用方式的簡易化僅為PSO增加了更多的問題。
發(fā)明內(nèi)容在本發(fā)明的一個例子中,一個計算機系統(tǒng)被提供。該計算機系統(tǒng)包括總線、與該總線相連接的內(nèi)存和與該總線相連接并通過總線存入該內(nèi)存的一個裝置。該內(nèi)存包括多個儲存位置,分成多個內(nèi)存單元。該裝置包括一個或更多個鎖固結(jié)構(gòu),用以控制訪問一個或多個的內(nèi)存單元。在各種實施例中,這些鎖可包括多個寄存器。在多個寄存器中的一個或更多入口可顯示一個或更多內(nèi)存單元的訪問控制設(shè)定。在本發(fā)明的另一個例子中,內(nèi)存被提供。該內(nèi)存包括與基本輸入/輸出系統(tǒng)(BIOS)數(shù)據(jù)相組合的多個第一儲存位置;和多個第二儲存位置。該多個第二儲存位置包括僅在SMM下可讀取的多個第一區(qū)塊(blocks)以及在SMM與除了SMM以外的至少一個操作模式下可讀取的多個第二區(qū)塊。在本發(fā)明的另一個例子中,運行計算機系統(tǒng)的一種方法被提供。該方法包括為一個或更多的內(nèi)存地址請求一個內(nèi)存處理和為該地址確定一個鎖固狀態(tài)。該方法也包括對該內(nèi)存地址回復(fù)鎖固狀態(tài),并確定如果鎖固狀態(tài)顯示對該內(nèi)存地址的內(nèi)存處理不被準(zhǔn)許時則該地址的鎖固狀態(tài)是否可更改。該方法也包括如果該內(nèi)存地址的鎖固狀態(tài)能被更改時,來改變該地址的鎖固狀態(tài)以允許內(nèi)存處理。在本發(fā)明的另一個例子中,運行計算機系統(tǒng)的另一種方法被提供。該方法包括從一個第一裝置發(fā)出對內(nèi)存區(qū)域的內(nèi)存處理的請求并在一個第二裝置接收該請求,該第二裝置不包括內(nèi)存區(qū)域或內(nèi)存區(qū)域內(nèi)容的拷貝。該方法也包括響應(yīng)來自該第二裝置的一個響應(yīng)至發(fā)出該內(nèi)存處理請求的第一裝置。本發(fā)明可參考下列描述與其所附圖標(biāo)加以了解,圖標(biāo)以參考數(shù)字定義相近的元素。圖1A顯示一已知計算機系統(tǒng)的方框圖,而圖1B顯示一已知南橋的方框圖2A與圖2B顯示利用在只讀存儲器中儲存的程序代碼以操作一計算機系統(tǒng)的一已知方法的流程圖;圖3是根據(jù)本發(fā)明的一個例子顯示在具有一安全執(zhí)行盒的一計算機系統(tǒng)中數(shù)據(jù)與指令傳送的一個實施例的流程圖;圖4是根據(jù)本發(fā)明的一個例子顯示在南橋中具有安全硬件以及密碼機處理器的一計算機系統(tǒng)的一個實施例的方框圖;圖5A和圖5B是根據(jù)本發(fā)明的各種例子顯示包括用以控制SMM的安全硬件的一南橋?qū)嵤├姆娇驁D;,圖6系根據(jù)本發(fā)明的一個例子顯示包括用以穩(wěn)固SMM的安全硬件的一南橋的實施例的方框圖;圖7A和圖7B是根據(jù)本發(fā)明的各種例子顯示安全內(nèi)存的實施例;圖8A和圖8B是根據(jù)本發(fā)明的各種例子分別顯示用以穩(wěn)固SMM操作的一基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器與一SMM只讀存儲器的實施例的方框圖;圖9A、圖9B、圖9C、圖9D、圖9E、圖9F和圖9G是根據(jù)本發(fā)明的各種例子顯示用以訪問安全硬件(可能被鎖住)的方法的實施例的流程圖;圖10A、圖10B和圖10C是系根據(jù)本發(fā)明的各種例子顯示在圖6中的訪問鎖460的實施例的方框圖,而圖10D是根據(jù)本發(fā)明的各種例子顯示變更寄存器的的一個實施例的方框圖;圖11A、圖11B、圖12和圖13是根據(jù)本發(fā)明的各種例子顯示安全訪問儲存器的方法的實施例的流程圖。具體實施方式圖示的實施例將在下面詳細(xì)地描述。為達(dá)到簡單清楚的目的,在說明書中并不會完全描述實際執(zhí)行中的所有特性。當(dāng)然,我們應(yīng)了解,在開發(fā)任何實際實施例時,許多特定執(zhí)行決策需被作出以達(dá)到開發(fā)者的特定目標(biāo),例如符合系統(tǒng)或商業(yè)上的各種限制,這些特定目標(biāo)在每一個實施例上都不同,此外,我們應(yīng)了解此類開發(fā)工作都是復(fù)雜且耗時的,但仍是對此技藝了解者由本發(fā)明的揭示可進(jìn)行的例行開發(fā)工作。此處與參考數(shù)字相連的用字是為了能顯示該項對象的不同實施例或者范例。圖3是根據(jù)本發(fā)明的一個例子顯示在具有安全執(zhí)行盒260的一個計算機系統(tǒng)中數(shù)據(jù)指令傳送的實施例的流程方框圖。用戶輸入和輸出(1/0)數(shù)據(jù)和/或指令205提供給一個或更多的應(yīng)用程序210并同時從其中接收。在計算機系統(tǒng)(舉例而言計算機系統(tǒng)100或者任何其它計算機系統(tǒng))內(nèi)應(yīng)用程序210與密碼服務(wù)提供器215交換數(shù)據(jù)和指令。此密碼服務(wù)提供器215可使用應(yīng)用程序接口(ApplicationProgrammingInterface,API)調(diào)用220以與提供通路至硬件230的驅(qū)動程序225相互作用。根據(jù)本發(fā)明的一個例子,驅(qū)動程序225和硬件230是在安全執(zhí)行模式(SEM)260下操作的安全執(zhí)行盒的一部分。信托隱私、安全和所有權(quán)(PSO)的操作,全部簡化為安全操作,可于計算機系統(tǒng)在安全執(zhí)行模式260時發(fā)生。從用戶輸入/輸出205和/或應(yīng)用程序210傳送的軟件調(diào)用可通過一SMM啟動注冊器425B(或SMM啟動器425A)置于SMM260的安全執(zhí)行盒里如圖5B的描述(或者圖5A)。參數(shù)可通過一訪問保護(hù)信箱隨機存取內(nèi)存415進(jìn)入和離開安全執(zhí)行模式260中的安全執(zhí)行盒,亦如圖5A和圖5B所示。這些軟件調(diào)用具有由安全執(zhí)行模式260中的安全執(zhí)行盒至不同安全硬件來源的通路,如下文所描述。圖4根據(jù)本發(fā)明的一個例子顯示一個改良的計算機系統(tǒng)100的一部分實施例的方框圖,該計算機系統(tǒng)100在南橋330中包括安全硬件370以及密碼機處理器305。南橋330包括安全硬件370、一中斷控制器(interruptcontroller,IC)365、通用串行總線接口邏輯134C和LPC接口邏輯(LPCbusinterfacelogic,LPCBIL)134D。中斷控制器365系與處理器102相連接。而通用串行總線接口邏輯134C系與一可任選通用串行總線集線器315相連接。LPC118通過LPC接口邏輯134D與南橋330相連接。密碼機處理器305也與LPC118相連接。密碼機處理器305內(nèi)的一內(nèi)存許可表310提供地址映像和/或內(nèi)存范圍容許信息。在一非揮發(fā)內(nèi)存中可包括內(nèi)存許可表310?;据斎?輸出系統(tǒng)(BIOS)355,即某種存儲器(只讀存儲器或閃存(flashmemory)為較佳),與密碼機處理器305相連接。南橋330中的安全硬件370為可操作以提供系統(tǒng)管理中斷的中斷請求至處理器102的中斷控制器365。安全硬件370也可與密碼機處理器305相互作用?;据斎?輸出系統(tǒng)(BIOS)355的訪問路徑是安排通過密碼機處理器305。密碼機處理器305設(shè)置用以接受和傳送至基本輸入/輸出系統(tǒng)(BIOS)355的訪問請求。因此,密碼機處理器305可理解基本輸入/輸出系統(tǒng)(BIOS)305的地址映像。根據(jù)本發(fā)明的一個例子,安全硬件370使計算機系統(tǒng)100成為在圖3中所顯示的安全執(zhí)行盒260的一個實施例。需注意的是,中斷控制器365可被包括在處理器而不是在南橋330。中斷控制器365也可被視作為一個分離單元或者是與計算機系統(tǒng)100的另一部分相關(guān)。另外也需注意的是,LPC118的操作可與1997年9月29日的已知低接腳計數(shù)接口規(guī)格修訂版1.0相符合。另外,可與LPCBIL134D相連接的通用串行總線接口邏輯134C是許多常見在一個橋接器中與不同總線接口邏輯相連接的技術(shù)之一。圖5A和圖5B是根據(jù)本發(fā)明的各種例子顯示包括安全硬件370的南橋330的實施例的方框圖。在圖5A中,南橋330A包括安全硬件370A和中斷控制器365。安全硬件370A包括子裝置,如SMM訪問控制器402A和控制邏輯420A。這些子裝置被稱作計算機系統(tǒng)100的安全硬件或安全資產(chǎn)。SMM訪問控制器402A包括SMM訪問過濾器410、信箱隨機存取內(nèi)存415和SMM啟動器425A。如圖5A所示,控制邏輯420與SMM訪問控制器402A的控制操作和SMM啟動器425A相連接。對安全硬件370A的輸入和輸出(I/O)通過SMM訪問過濾器410與控制邏輯420A。SMM訪問控制器402A包括SMM訪問過濾器410,此系設(shè)置以為安全硬件370A內(nèi)的子裝置接收輸入請求。當(dāng)計算機系統(tǒng)100在SMM時,SMM訪問過濾器系設(shè)置來傳遞對控制邏輯420A和/或目標(biāo)子裝置的訪問請求(如讀取和寫入)。當(dāng)計算機系統(tǒng)100不是在SMM時,SMM訪問過濾器則系設(shè)置為以一預(yù)定值對所有訪問請求作出響應(yīng),如所有均以'r響應(yīng)。SMM訪問控制器402A也包括信箱隨機存取內(nèi)存415。在一個實施例中,信箱隨機存取內(nèi)存415包括兩排隨機存取內(nèi)存,舉例而言每個均具有512個字節(jié),用以傳遞參數(shù)進(jìn)入并離開安全執(zhí)行盒260。經(jīng)傳遞進(jìn)入或離開安全硬件370所包括的子裝置的參數(shù)在信箱隨機存取內(nèi)存415中被交換。一排隨機存取內(nèi)存415(—目錄)在大多數(shù)計算機系統(tǒng)的多數(shù)操作模式中是只能被寫入的。因此,經(jīng)傳遞進(jìn)入安全硬件370所包括的子裝置的參數(shù)可被寫進(jìn)目錄中。在所選擇的操作模式期間(如SMM),目錄可容許讀取和寫入訪問。另一排隨機存取內(nèi)存415,一外接信息盒,在大多數(shù)計算機系統(tǒng)的多數(shù)操作模式中是只可讀取的。因此,從安全硬件370所包括的子裝置收到的參數(shù)便可從外接信息盒中被讀取。在所選擇的操作模式(安全模式更佳)期間,如SMM,外接信息盒可容許讀取和寫入訪問。SMM啟動器425A有助于提供一方便方法以請求計算機系統(tǒng)100進(jìn)入SMM。一信號可越過請求(REQ)線被提供給SMM啟動器425A。信號應(yīng)該在SMM內(nèi)存中提供跳轉(zhuǎn)位置的一指示。SMM啟動器425A系設(shè)置以越過SMM請求(SMMREQ)線對SMM產(chǎn)生一請求,例如通過傳遞一個系統(tǒng)管理中斷#(SMI#)至中斷控制器365。SMM啟動器425A也設(shè)置用以通知控制邏輯420A該對SMM的請求已經(jīng)收到并傳送至中斷控制器365。圖5B中,南橋330B包括安全硬件370B。中斷控制器365并不是南橋330B的一部份。安全硬件370B包括一SMM訪問控制器402B和控制邏輯420B。SMM訪問控制器402B包括SMM訪問過濾器41O和信箱隨機存取內(nèi)存415。一SMM啟動注冊器425B不是南橋330B的一部份。如圖5B所示,控制邏輯420B系與S畫訪問控制器402B的控制操作相連接。對安全硬件370B的輸入和輸出(1/0)信號系通過SMM訪問過濾器410并安排經(jīng)過控制邏輯420B??刂七壿?20B也因相連接而從SMM啟動注冊器425B得到對SMM請求的一指示。SMM訪問控制器402B包括SMM訪問過濾器410,而SMM訪問過濾器410設(shè)置為安全硬件370B內(nèi)的子裝置接受輸入請求。當(dāng)計算機系統(tǒng)IOO是在SMM時,SMM訪問過濾器被設(shè)置用以通過對控制邏輯420B和/或目標(biāo)子裝置的訪問請求(如讀取和寫入)。當(dāng)計算機系統(tǒng)100不是在SMM時,SMM訪問過濾器被設(shè)置用以利用一預(yù)定值對所有訪問請求作出響應(yīng),如所有均以'l'響應(yīng)。SMM訪問控制器402B也包括信箱隨機存取內(nèi)存415,如上述的圖5A所示。SMM啟動注冊器425B可有助于提供一種方便方法以請求計算機系統(tǒng)100進(jìn)入SMM,信號越過請求(REQ)線被提供給SMM啟動注冊器425B。一信號應(yīng)該在SMM內(nèi)存中提供跳轉(zhuǎn)位置的一個指示。該SMM啟動注冊器425B被設(shè)置用以提供指示至控制邏輯420B。控制邏輯420B被設(shè)置用以越過SMM請求(SMMREQ)線而對SMM生成一個請求,例如通過傳遞一個系統(tǒng)管理中斷#至中斷控制器365。需注意的是,在圖5A的實施例中,SMM啟動器425A包括內(nèi)部邏輯以處理SMM請求。在圖5B中的實施例,SMM啟動注冊器425B依賴控制邏輯420B來處理SMM請求。也需注意的是,SMM啟動器425A是安全硬件370A的一部分,而SMM啟動注冊器425B不是安全硬件370B的一部分。圖6根據(jù)本發(fā)明的一個例子顯示包括安全硬件370C的南橋330C的一個實施例的方框圖。如圖所示,安全硬件370C包括子裝置,舉例而言如SMM訪問控制器402、控制邏輯420、TCO計數(shù)器430、便箋式隨機存取內(nèi)存440,隨機數(shù)產(chǎn)生器455、安全系統(tǒng)(或SMM)管理寄存器470、OAR(復(fù)位開啟,OpenAtReset)鎖450以及OAR過荷寄存器445。SMM訪問控制器402包括一個或更多的在SMM訪問過濾器410內(nèi)的訪問鎖460。SMM訪問控制器402的一些實施例的特征與控制邏輯420被描述于上文的圖5A和圖5B。在圖6所顯示的SMM訪問控制器402的實施例中包括一個或更多的在SMM訪問過濾器410之內(nèi)的訪問鎖460。這些訪問鎖460提供防止(或鎖住)并允許(或開鎖)訪問在安全硬件370C內(nèi)的一個或更多裝置的方法。在圖10A、圖10B和圖10C中展示了一個或更多的訪問鎖460的各種實施例,并提供了相關(guān)的描述。在一個實施例中,訪問鎖460是在復(fù)位時開啟(OAR),容許基本輸入/輸出系統(tǒng)(BIOS)軟件訪問安全硬件370。此時在調(diào)用啟動區(qū)段程序代碼前基本輸入/輸出系統(tǒng)(BIOS)軟件即關(guān)閉訪問鎖460,如圖2A的方框154中顯示。在各種實施例中,這些訪問鎖460可由軟件或者硬件打開以訪問進(jìn)入安全硬件370。舉例而言,這些訪問鎖460可由來自中斷控制器365或處理器102或控制邏輯420的信號所打開。這些訪問鎖460也可響應(yīng)系統(tǒng)管理中斷弁或響應(yīng)處理器進(jìn)入102SMM而被打開。這些訪問鎖460上的附加信息可從下述的圖9A、圖9B與圖9C的一個或更多的方法900A至900C而獲得。TCO計數(shù)器(或定時器)430可包括一可編程定時器,舉例而言如一倒數(shù)定時器,用以偵査計算機系統(tǒng)100的鎖固狀態(tài)。鎖固狀態(tài)可定義為計算機系統(tǒng)IOO的一種狀態(tài),其中一個或更多的子系統(tǒng)或部件不對超過一預(yù)定時間的輸入信號作出響應(yīng)。輸入信號可包括來自計算機系統(tǒng)IOO內(nèi)部或外部的信號,舉例而言來自用戶輸入裝置(如鍵盤、鼠標(biāo)、軌跡球、生物測定裝置等等)。也需注意的是,鎖固狀態(tài)本質(zhì)上也許是軟件或硬件。根據(jù)本發(fā)明的各種例子,TCO計數(shù)器430可在SMM中設(shè)計程序和從中讀取。TCO計數(shù)器430較理想地被編程設(shè)計成具備比退出(Kick-out)定時器407的缺省持續(xù)時間更小的數(shù)值。在一個實施例中,TCO定時器430在TCO定時器430的第一次時間期滿后立即產(chǎn)生一個系統(tǒng)管理中斷弁,然后TCO定時器430在TCO定時器430后續(xù)的第二次時間期滿后對計算機系統(tǒng)產(chǎn)生一個復(fù)位信號。在一個實施例中,當(dāng)計算機系統(tǒng)不是SMM下時,可由計算機系統(tǒng)100和在計算機系統(tǒng)100中運作的軟件訪問TCO定時器430,以使計算機系統(tǒng)100從鎖固狀態(tài)中恢復(fù)。在另一個實施例中,TCO定時器430均可被在SMM之中或之外的計算機系統(tǒng)100所訪問。便箋式隨機存取內(nèi)存440包括的一個或更多的內(nèi)存區(qū)塊僅當(dāng)計算機系統(tǒng)100在某些操作模式中時有效,舉例而言如SMM。也需考慮的是,安全硬件370的其它子裝置也可將便箋式隨機存取內(nèi)存440視作為一私有的內(nèi)存。便箋式隨機存取內(nèi)存440的一個實施例包括1千字節(jié)的內(nèi)存,雖然其它數(shù)量的內(nèi)存也可考慮。在一個實施例中,便箋式隨機存取內(nèi)存對所有或大多數(shù)計算機系統(tǒng)100在復(fù)位時是打開的,然而在另一個實施例中,當(dāng)計算機系統(tǒng)在啟動時,便箋式隨機存取內(nèi)存是難以訪問的。隨機數(shù)字產(chǎn)生器(randomnumbergenerator,RNG)455被設(shè)置用以在一預(yù)定的范圍內(nèi)提供具有一些位的一隨機數(shù)字。在一個實施例中,具有1到32位長度的一新隨機數(shù)字提供以響應(yīng)對一隨機數(shù)字的請求。需注意的是,考慮到安全性增加和簡化硬件設(shè)計限制,對軟件訪問隨機數(shù)字產(chǎn)生器的限制訪問(如僅可在SMM之中)可有助于迫使軟件通過一標(biāo)準(zhǔn)應(yīng)用程序接口(applicationprogramminginterface,API)訪問隨機數(shù)字產(chǎn)生器。復(fù)位開啟鎖450可包括多個內(nèi)存單元(如寄存器),該內(nèi)存單元包括相關(guān)程序位(或鎖固位)鎖住用以儲存基本輸入/輸出系統(tǒng)(BIOS)信息或其它數(shù)據(jù)的內(nèi)存(或內(nèi)存組),例如圖7A與圖7B所示的基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器355和SMM只讀存儲器550。通過例子說明,每一個內(nèi)存單元都可具有與其相關(guān)的三個鎖固位。在一個實施例中,四個8位寄存器可為每一個512KB只讀存儲器頁儲存這些鎖固位,而一個寄存器則用于每二個64KB數(shù)據(jù)段。對于四個寄存器的十六個區(qū)塊,只讀存儲器的最大值可鎖住8MB字節(jié)。尋址可如下所示64KB數(shù)據(jù)段寄存器地址0,1寄存器oFFBx,E000h2,3寄存器lFFBx,E001h4,5寄存器2FFBx,E002h6,7寄存器3FFBx,E003h每一個物理只讀存儲器芯片可包括四個識別接腳(ID[3力]),稱為約束接腳。這些約束接腳可用來組成十六個每個64KB的空間。在地址中的'X'可表示這些約束接腳的譯碼或反轉(zhuǎn)。來自復(fù)位開啟鎖450的鎖固寄存器可包括寄存器\位7OAR鎖6:43OAR鎖2:0反轉(zhuǎn)數(shù)據(jù)段l反轉(zhuǎn)數(shù)據(jù)段o寄存器l反轉(zhuǎn)數(shù)據(jù)段3反轉(zhuǎn)數(shù)據(jù)段2寄存器2反轉(zhuǎn)數(shù)據(jù)段5反轉(zhuǎn)數(shù)據(jù)段4寄存器3反轉(zhuǎn)數(shù)據(jù)段7反轉(zhuǎn)數(shù)據(jù)段6在一個實施例中,一位控制寫入的訪問,一位控制讀取的訪問,而一位防止另外兩位改變。在一個實施例中,一旦設(shè)定鎖固位(亦即鎖固狀態(tài)),寫入訪問位與讀取訪問位是無法重新程序設(shè)計的,直到內(nèi)存收到一個復(fù)位信號。每個寄存器的設(shè)計布局可能包括<table>tableseeoriginaldocumentpage16</column></row><table>顯示于圖6中的安全硬件370C的實施例也包括復(fù)位開啟鎖變更寄存器445。復(fù)位開啟鎖變更寄存器445提供一機制用以允許(或開鎖)和阻斷(或鎖住)對安全硬件370C內(nèi)一個或更多裝置的訪問。復(fù)位開啟鎖變更寄存器445也提供一機制用以變更訪問鎖460。在一個實施例中,復(fù)位開啟鎖變更寄存器445包括一個第一指示器將會忽略訪問鎖460,而由這些訪問鎖460鎖住的對安全硬件的訪問不是總是可用便是從不可使用(視執(zhí)行情形)。復(fù)位開啟鎖變更寄存器445也可包括一第二指示器,而第一指示器的狀態(tài)可能會被改變亦可能不會。如果第二指示器顯示該第一指示器可能不被改變,則包括復(fù)位開啟鎖變更寄存器445的裝置最好需要復(fù)位以為將被改變的第二指示器。換句話說,該第二指示器應(yīng)是復(fù)位時開啟為較佳,而與訪問鎖460的一個實施例相類似。包括使用這些訪問鎖460和/或復(fù)位開啟鎖變更指示器的方法將在下文中描述并參考圖9A至圖9F。一個或更多的訪問鎖460的各種實施例將顯示于圖10A至圖10C中,并伴隨相關(guān)的說明,而在圖10D中展示復(fù)位開啟鎖變更寄存器445的一個實施例并伴隨相關(guān)的說明。在一個實施例中的啟動鎖460為復(fù)位時開啟(OAR),允許基本輸入/輸出系統(tǒng)(BK)S)軟件訪問安全硬件370。此時基本輸入/輸出系統(tǒng)(BIOS)軟件在調(diào)用啟動區(qū)段程序代碼之前關(guān)閉訪問鎖460如圖2A中的方框154所示。在各種實施例中,這些訪問鎖460可由軟件或硬件所開啟以訪問安全硬件370。舉例而言,這些訪問鎖460可被來自中斷控制器365或處理器102或控制邏輯420的一信號所開啟。這些訪問鎖460可通過響應(yīng)系統(tǒng)管理中斷弁或響應(yīng)處理器102進(jìn)入SMM而被開啟。在(這些)訪問鎖上460的附加信息可從圖9A至圖9C中所顯示的一個或更多的方法900A至900C當(dāng)中而獲得。值得注意的是在一個實施例中,所有安全硬件370(和SMM啟動注冊器425B)都在實時時鐘電池槽125內(nèi)。在其它實施例中,所選擇的安全硬件370的子裝置將從實時時鐘電池槽125中排除。在一個實施例中,只有一部份的便箋式隨機存取內(nèi)存440是在實時時鐘電池槽125內(nèi)而其它的部分則在該電池槽125外。舉例而言,在一個實施例中,信箱隨機存取內(nèi)存415是在實時時鐘電池槽125之外。圖7A與圖7B是根據(jù)本發(fā)明的各種例子顯示擴展基本輸入/輸出系統(tǒng)(BIOS)安全的實施例。在圖7A中,基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器355和SMM只讀存儲器550系與LPC118相連接。如圖所示,包括一密碼610A的一密碼機處理器305連接于基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器355和LPC之間118。在圖7B中,擴展的基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器555系與LPC118相連接。擴展的基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器555包括基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器355與SMM只讀存儲器550?;据斎?輸出系統(tǒng)(BIOS)的只讀存儲器355在計算機系統(tǒng)100中的內(nèi)存空間可包括從128KB至4兆字節(jié)的任何一種,并分成64KB數(shù)據(jù)段。SMM只讀存儲器550的附加一個或更多的4兆字節(jié)內(nèi)存空間可通過一編頁碼機制而被尋址,舉例而言只讀存儲器存儲范圍空間的第二頁在分離芯片之內(nèi)且由一組外加識別選擇接腳(identifcationselect,IDSEL)所選擇?;据斎?輸出系統(tǒng)(BIOS)只讀存儲器355內(nèi)存空間和SMM只讀存儲器550內(nèi)存空間的每一個數(shù)據(jù)段都可被鎖住,并在復(fù)位時開啟。在一個實施例中,訪問保護(hù)機制(即訪問鎖)并非實施于基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器355或SMM只讀存儲器550,而是在例如安全硬件370C中的南橋330C,如圖6所示。在一個實施例中,基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器355包括4兆字節(jié)的內(nèi)存空間。對基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器355內(nèi)存空間的讀取訪問在任何時候都可能是不受限制的。在基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器355內(nèi)存空間上的寫入鎖可以是復(fù)位時開啟并在LPC145上的32位地址空間中覆蓋內(nèi)存空間從FFFF,F(xiàn)FFFh到FFCO,0000ho在一個實施例中,密碼機處理器305是一種包括專業(yè)密碼硬件的專業(yè)處理器。在另一個實施例中,密碼機處理器305包括與密碼固件或軟件一同程序設(shè)計成的一般用途處理器。在另一個實施例中,密碼機處理器305包括利用專業(yè)密碼硬件修改的一個一般用途處理器。接著,考慮到其它實施例。舉例而言,基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器355可與LPC118相連接,而密碼機處理器305可相連接于SMM只讀存儲器550和LPC118之間。同理而言,密碼機處理器305可相連接于擴展的基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器555和LPC118之間。圖8A與圖8B根據(jù)本發(fā)明的各種例子分別顯示用于安全SMM操作的一個基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器355與SMM操作只讀存儲器550的實施例的方框圖。如圖8A所示,基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器355可包括數(shù)據(jù)儲存器608B,一密碼610C和私有內(nèi)存606。如圖8B所示,SMM只讀存儲器550可被分成多個SMM只讀存儲器區(qū)塊615至617、一儲存密碼610D、多個公用只讀存儲器區(qū)塊625至30、一個或更多的反轉(zhuǎn)只讀存儲器區(qū)塊635以及一個或更多的寄存器640。多個SMM只讀存儲器區(qū)塊615至617可包括一SMM只讀存儲器0區(qū)塊615、一SMM只讀存儲器1區(qū)塊616和一SMM只讀存儲器2區(qū)塊617。多個公用只讀存儲器區(qū)塊625至30可包括一公用只讀存儲器區(qū)塊0625和一公用只讀存儲器區(qū)塊l630。訪問權(quán)利、鎖固狀態(tài)和在LPC118空間中的32位地址范圍的一個實施例在此以表格形式描述。ROM區(qū)塊讀訪問SMMROMOSMM615OnlySMMROM1SMM616OnlySMMROM2S躍618Only公共0非反轉(zhuǎn)620公共1非反轉(zhuǎn)630反轉(zhuǎn)N/A635寄存器N/A640在表格地址范圍中的'X'可表示約束接腳譯碼或其反轉(zhuǎn)。在一個實施例中,表格中每一個只讀存儲器區(qū)塊615至617和625至630的尺寸是64KB。在一個實施例中,計算機系統(tǒng)可支持?jǐn)U展的基本輸入/輸出系統(tǒng)(BIOS)只讀存儲器555儲存至8兆字節(jié),分成每一個包含512KB的十六頁。在另一個實施例中,內(nèi)存地址范圍從FFBx,F(xiàn)FFFh至FFBx,0000h,并包括多個SMM只讀存儲器的區(qū)塊615至617、多個公用只讀存儲器區(qū)塊625至630和一個或更多的寄存器640。一個或更多的反轉(zhuǎn)只讀存儲器區(qū)塊635可用于將來的擴展。若有需要時一個或更多的寄存器640可儲存附加數(shù)據(jù)。圖9A至圖9G是根據(jù)本發(fā)明的各種例子顯示試圖訪問可被鎖住的安全硬件370的方法900A至900G的實施例的流程圖,圖9A顯示以一鎖住安全硬件370的方法900A作為一啟動(或冷啟動)過程的一部分。圖9B顯示以一解鎖和后續(xù)鎖住安全硬件370的方法900B作為再次啟動(或者熱啟動)過程的一部分。圖9C顯示用以檢査鎖住或解鎖安全硬件370的權(quán)利和對使權(quán)利無法改變的變更位進(jìn)行檢查的一方法900C。圖9D顯示當(dāng)計算機系統(tǒng)100不在SMM時,試圖使用安全硬件370的一方法900D。圖9E顯示用以檢査和/或設(shè)定鎖于復(fù)位時間啟訪問鎖460上并對使權(quán)利無法改變的變更位進(jìn)行檢査的方法900E。圖9F顯示當(dāng)計算機系統(tǒng)100寫鎖寫一次從不刪除None在SMM寫一次從不刪除在SMM寫N/AN/A地址范圍FFBx,1FFFh:FFBx,OOOOhFFBx,3FFFh:FFBx,2000hFFBx,5FFFh:FFBx,4000hFFBx,9FFFh:FFBx,8000hFFBx,BFFFh:FFBx,A000hFFBx,DFFFh:FFBx,COOOhFFBx,F(xiàn)FFFh:FFBx,EOOOh在SMM時,用以解鎖和后續(xù)鎖住安全硬件370的一方法900F。圖9G顯示當(dāng)計算機系統(tǒng)100在SMM時,檢査解鎖或后續(xù)鎖住安全硬件370的權(quán)利的一方法900G。請參考圖9A,方法900A包括由處理器執(zhí)行來自隨機存取內(nèi)存內(nèi)的SMM空間的基本輸入/輸出系統(tǒng)(BIOS)程序代碼指令,如方框920所示。由處理器所執(zhí)行的基本輸入/輸出系統(tǒng)(BIOS)程序代碼,執(zhí)行一啟動自檢(POST),如方框925所示。方法900A包括訪問安全硬件370,如方框930所示。訪問計算機硬件370可啟動安全硬件370的解鎖,如果安全硬件370不是以復(fù)位方式開啟的。對安全硬件370的訪問可以通過基本輸入/輸出系統(tǒng)(BIOS)程序代碼或是在計算機系統(tǒng)100中其它的裝置或子系統(tǒng),或從計算機系統(tǒng)100的外面(如果許可)。方法900A可自由選擇是否包括進(jìn)入基本輸入/輸出系統(tǒng)(BIOS)管理模式,如方框932所示。基本輸入/輸出系統(tǒng)(BIOS)管理模式能允許例如遠(yuǎn)程啟動指令,遠(yuǎn)程或安全許可以繼續(xù)啟動序列,亦可允許其它遠(yuǎn)程操作或遠(yuǎn)程硬件訪問、設(shè)定或者可在啟動選項之間或之中作選擇舉例而言像是硬件配置和/或操作系統(tǒng)或是其它的軟件選擇?;据斎?輸出系統(tǒng)(BIOS)程序代碼接著尋找附加基本輸入/輸出系統(tǒng)(BIOS)程序代碼,如從一視訊控制器、IDE控制器、小型計算機系統(tǒng)接口控制器等等,并顯示一啟動信息屏幕,如方框935所示。舉例而言,視訊控制器基本輸A/輸出系統(tǒng)(BIOS)經(jīng)常在C000h被找至U,而IDE控制器基本輸入/輸出系統(tǒng)(BIOS)程序代碼則經(jīng)常在C800h被找到?;据斎?輸出系統(tǒng)(BIOS)程序代碼可執(zhí)行附加系統(tǒng)測試,例如一隨機存取內(nèi)存的內(nèi)存計數(shù)測驗,與一系統(tǒng)詳細(xì)目錄,包括確認(rèn)COM(串行)口與LPT(并)口,如方框940所示?;据斎?輸出系統(tǒng)(BIOS)程序代碼也識別即插即用裝置和其它類似裝置,然后顯示已確認(rèn)裝置的一匯總畫面,如方框945所示。該方法包括鎖上訪問安全硬件的訪問鎖,如方框950所示?;据斎?輸出系統(tǒng)(BIOS)程序代碼或者計算機系統(tǒng)IOO中的另一個裝置或力量可關(guān)閉這些訪問鎖?;据斎?輸出系統(tǒng)(BIOS)程序代碼確認(rèn)啟動位置和相對應(yīng)的啟動區(qū)段,如方框955所示。啟動位置可在一軟盤磁盤驅(qū)動器、一硬盤磁盤驅(qū)動器、一只讀型光盤(CDROM)、一遠(yuǎn)程位置等等。基本輸入/輸出系統(tǒng)(BIOS)程序代碼接著在啟動位置調(diào)用啟動區(qū)段程序代碼以使計算機系統(tǒng)啟動,例如利用一操作系統(tǒng),如方框960所示。請參考圖9B,方法900B包括打開安全硬件的訪問鎖,如方框915所示。處理器執(zhí)行來自隨機存取內(nèi)存中的SMM空間的基本輸入/輸出系統(tǒng)(BIOS)程序代碼指令,如方框920所示。計算機系統(tǒng)當(dāng)啟動時在SMM下會訪問安全硬件370,如方框930所示。方法900B可選擇是否包括進(jìn)入一基本輸入/輸出系統(tǒng)(BIOS)管理模式,如方框932所示?;据斎?輸出系統(tǒng)(BIOS)程序代碼接著尋找附加基本輸入/輸出系統(tǒng)(BIOS)程序代碼,如從一視訊控制器、IDE控制器、小型計算機系統(tǒng)接口控制器等等,并顯示一啟動信息屏幕,如方框935所示。舉例而言,視訊控制器基本輸入/輸出系統(tǒng)(BIOS)經(jīng)常在C000h被找到,而IDE控制器基本輸入/輸出系統(tǒng)(BIOS)程序代碼則經(jīng)常在C800h被找到?;据斎?輸出系統(tǒng)(BIOS)程序代碼也識別即插即用裝置和其它類似裝置,然后顯示已確認(rèn)裝置的總結(jié)在畫面上,如方框945所示?;据斎?輸出系統(tǒng)(BIOS)代碼鎖住安全硬件的訪問鎖,如方框950所示。該程序代碼確認(rèn)啟動位置和相對應(yīng)的啟動區(qū)段,如方框955所示。啟動位置可在一軟盤磁盤驅(qū)動器上、一硬盤磁盤驅(qū)動器、一只讀型光盤(CDROM)、一遠(yuǎn)程位置等等?;据斎?輸出系統(tǒng)(BIOS)程序代碼接著在啟動位置調(diào)用啟動區(qū)段程序代碼以使計算機系統(tǒng)啟動,例如利用一操作系統(tǒng),如方框960所示。請參考圖9C,方法900C包括決定是否設(shè)置復(fù)位開啟鎖,在判定方框946中。判定方框946中的復(fù)位開啟鎖可與上述的圖6中的第一指示器相對應(yīng)。判定方框946中的復(fù)位開啟鎖也可與下文所述的圖10D中的設(shè)定復(fù)位開啟鎖變更位1050相對應(yīng)。如果所做出的決定是要設(shè)置復(fù)位開啟鎖,則根據(jù)一個實施例,到安全硬件370的所有通路將均被鎖住,如方框947所示。如果所做出的決定是不要設(shè)置復(fù)位開啟鎖,則方法900C會移至判定方框948。在判定方框948中,方法900C決定是否設(shè)置復(fù)位開啟鎖變更位。判定方框948中的復(fù)位開啟鎖變更位可與上述的圖6中的第二個指示器相對應(yīng)。判定方框948中的復(fù)位開啟鎖變更位也可也可與下文所述的圖10D中的設(shè)定變化復(fù)位開啟鎖變更位1055相對應(yīng)。如果所做出的決定是設(shè)置復(fù)位開啟鎖變更位,在判定方框948中,則根據(jù)一個實施例,將不能改變復(fù)位開啟鎖,之后復(fù)位開啟鎖將改變成被鎖在外面,如方框949所示。請參考圖9D,方法900D包括一處理器(如處理器102等等)在一個非SMM的模式中運行,如方框904所示。如方框906所示,由處理器所處理的程序代碼試圖訪問安全硬件370的任何一部分,或其它需要進(jìn)行與訪問鎖460ll似的訪問鎖檢查的硬件。在判定方框907中,此方法進(jìn)行檢査以察看安全硬件370是否可使用。如果安全硬件370不可使用,在判定方框907中,方法900D退出或返回。如果安全硬件370在判定方框907是可使用的,則方法960D便訪問安全硬件370,如方框930所示。此方法可選擇是否關(guān)閉通往安全硬件的訪問鎖(如有必要),如方框950所示。請參考圖犯,方法900E包括圖9D中的判定方框907的一個實施例。方法900E包括檢査是否對所有安全硬件的訪問是被鎖定的(即被禁止),在判定方框990中。如果對所有安全硬件的訪問是被鎖定的,則在判定方框990中方法900E將移動至方框992。如果對所有安全硬件的訪問并未被鎖定,則方法900E將移至判定方框991。在判定方框991中,方法900E將檢査是否所請求的安全硬件已被鎖定(例如分別使用一個或更多的訪問鎖)。如果所請求的安全硬件被鎖定,則方法960E轉(zhuǎn)到判定方框992。如果所請求的安全硬件未被鎖定,則方法960E將直接轉(zhuǎn)至方框993。在判定方框992中,方法960E檢査所請求安全硬件訪問鎖是否可能被改變,例如解鎖。如果不能改變所請求安全硬件的訪問鎖,則在判定方框992中方法900中止訪問安全硬件。如果能夠改變所請求安全硬件的訪問鎖,則在判定方框992中方法卯0E將請求授權(quán),例如從一客戶端,以改變所請求安全硬件的訪問鎖,在判定方框993中。如果改變所請求安全硬件訪問鎖的授權(quán)沒提供,則方法900E將中止通往安全硬件的通路。如果提供了改變所請求安全硬件訪問鎖的授權(quán),則方法900E將轉(zhuǎn)至方框994并改變鎖以允許訪問請求安全硬件。需注意的是,任何授權(quán)方法均可用于判定方框993中。在
技術(shù)領(lǐng)域:
常見具有安全性質(zhì)的任何授權(quán)方法均可使用。請參考圖9F,方法900F包括由處理器下載程序代碼指令到隨機存取內(nèi)存記憶內(nèi)的SMM空間,如方框905所示。舉例而言,下載程序代碼指令到SMM空間內(nèi)可能產(chǎn)生一響應(yīng)以響應(yīng)系統(tǒng)管理中斷弁。用于安全硬件的訪問鎖如方框915所示是開啟的。這些訪問鎖的開啟可能是通過SMM程序代碼指令或是通過一硬件機制,或者二者一起。處理器處理來自隨機存取內(nèi)存記憶內(nèi)的SMM空間里的程序代碼指令,如方框920所示。方法900F包括訪問安全硬件370,如方框930所示。由于計算機系統(tǒng)是在SMM下且訪問鎖已經(jīng)被打開,如方框915所示,像所希望的那樣,安全硬件可用于大多數(shù)的計算機系統(tǒng)100或所有的子系統(tǒng)。方法900F包括關(guān)閉用于安全硬件370的訪問鎖,如方框950所示。處理器再加載以前的狀態(tài)并繼續(xù)運行,如方框965所示。需注意的是,如方框920所示,SMM程序代碼指令的處理在如方框930所描述的動作發(fā)生時可繼續(xù)運行。更佳的做法是,如方框950所描述的動作發(fā)生在如方框920所示的SMM程序代碼指令的處理已經(jīng)中止之后。請參考圖9G,方法900G包括由處理器下載程序代碼指令到隨機存取內(nèi)存內(nèi)的SMM空間,如方框905所示。舉例而言,下載程序代碼指令到SMM空間內(nèi)可產(chǎn)生一響應(yīng)以響應(yīng)一系統(tǒng)管理中斷弁。方法900G接著檢査安全硬件是否是可使用的,在判定方框907中。如果安全硬件是不可使用的,則在判定方框907中方法900G將中止訪問安全硬件。如果安全硬件是可使用的,則方法900G將繼續(xù)方框920。處理器執(zhí)行來自隨機存取內(nèi)存存儲范圍內(nèi)的SMM空間的程序代碼指令,如方框920所示。方法900F包括訪問安全硬件370,如方框930所示。當(dāng)計算機系統(tǒng)是在SMM模式下,而訪問鎖是打開的,如在判定方框907中所判定,則安全硬件可使用于大多數(shù)的計算機系統(tǒng)100或所有子系統(tǒng),如所希望的那樣。方法900G包括關(guān)閉對安全硬件370的訪問,如方框950所示。處理器再加載以前的狀態(tài)并繼續(xù)運行,如方框965所示。需注意的是,如方框920所示,SMM程序代碼指令的處理在如方框930所描述的動作發(fā)生時可繼續(xù)運行。更佳的做法是,如方框950所描述的動作發(fā)生在如方框920所示的SMM程序代碼指令的處理已經(jīng)中止之后。需注意的是,除了訪問鎖之外,安全硬件370的其它鎖定與解鎖處理都是可以使用的。方法900A至900G試圖擴展至其它過程。為達(dá)到本發(fā)明的目的,計算機系統(tǒng)被視為具有兩個操作模式,分別為正常模式和SMM。啟動階段是不在SMM下的,但是就定義而言他們應(yīng)被視為如SMM—樣值得信任,因此在這里被認(rèn)為相當(dāng)于SMM。這些啟動程序代碼將設(shè)置和安排SMM如何工作。使SMM從啟動程序代碼的可信任度得到可信任度。需考慮的是標(biāo)準(zhǔn)的啟動順序可被改變。這種改變包括用戶可能有機會輸入?yún)?shù)的一種設(shè)定環(huán)境的改變。舉例而言,這些輸入?yún)?shù)可修改基本輸入/輸出系統(tǒng)(BIOS)程序代碼。多數(shù)設(shè)定環(huán)境在下載操作系統(tǒng)和以正常模式運行之前被復(fù)位。這是一種交互式加載操作系統(tǒng)的一種維護(hù)模式的形式,而非正常模式的一部分。如所預(yù)期,這些訪問鎖將不會被設(shè)置于這種模式當(dāng)中。它會是啟動過程的一部分并如同SMM般值得信任,雖然如果設(shè)定環(huán)境里遠(yuǎn)程訪問被允許時安全評估將會被使用。圖10A、圖10B和圖10C顯示圖6的訪問鎖460的實施例460A、460B和460C的方框圖。在圖10D中,則顯示圖6的復(fù)位開啟鎖變更寄存器455的一個實施例的方框圖。在圖10A所顯示的實施例460A中,一個或更多的訪問鎖460包括一隔離位寄存器1005。隔離位寄存器1005所儲存的位作為一旗標(biāo)(flag)可被設(shè)定或清除。在圖10B所顯示的實施例460B中,一個或更多的訪問鎖460包括二個或以上的隔離寄存器被設(shè)置用以儲存二個或以上的隔離位,以使安全硬件370之內(nèi)的所有裝置鎖住或解鎖。在隔離寄存器1005中所儲存的隔離位之外的附加位分別地容許用于特權(quán)的鎖住和解鎖的旗標(biāo)位。舉例而言,當(dāng)一讀取特權(quán)是解鎖時,一寫入特權(quán)可被鎖住。在圖10C所顯示的實施例中,一個或更多的訪問鎖460包括一個或更多隔離寄存器1015A至1015N用于安全硬件370C內(nèi)的每一個裝置。在圖IOD中,復(fù)位開啟鎖變更445包括儲存至少一個復(fù)位開啟鎖變更位的復(fù)位開啟鎖變更寄存器1050,與儲存至少一個變化復(fù)位開啟鎖變更位的一變化復(fù)位開啟鎖變更寄存器1055。根據(jù)本發(fā)明的一個實施例,如果復(fù)位開啟鎖變更位未設(shè)定,則由這些訪問鎖460的設(shè)定來決定對安全硬件370的訪問。如果復(fù)位開啟鎖變更位已設(shè)定,則這些訪問鎖460被忽略并取決于實際執(zhí)行情況以支持任一個可使用或不可用的安全硬件370。較佳的做法是,除非復(fù)位開啟鎖變更位的改變已設(shè)定,否則此變更位的設(shè)定可能在SMM(或已授權(quán))之下被改變,而當(dāng)復(fù)位開啟鎖變更位已設(shè)定,此時安全硬件是不可用的。更佳的做法是,變化復(fù)位開啟鎖變更位成復(fù)位時開啟,類似于訪問鎖460的一個實施例,也可以各個不同的實施例的方式,與這些訪問鎖460—同在啟動時被設(shè)置,如方框950所示。圖11A、圖11B、圖12和圖13根據(jù)本發(fā)明的各種例子顯示用以訪問存儲器的方法1100A、IIOOB、1110A,和1120的實施例的流程圖。圖11A根據(jù)本發(fā)明的一個例子顯示方法1100A的流程圖,其中在一安全裝置維持對一儲存裝置的安全訪問。圖11B根據(jù)本發(fā)明的一個例子顯示方法1IOOB的流程圖,其中一密碼機處理器維持對一內(nèi)存的安全訪問。圖12根據(jù)本發(fā)明的一個例子顯示方法1110A的流程圖,其中一防護(hù)裝置利用一質(zhì)疑-響應(yīng)鑒定規(guī)則對一儲存裝置提供安全訪問控制。圖B顯示方法1120的流程圖,其中一密碼被用于對一安全儲存裝置解鎖數(shù)據(jù)的訪問?;氐降?1A圖,方法1100A包括安全裝置用以接收相對于與安全裝置連接的存儲裝置的一個儲存位置的一個處理請求(方框1105A)。安全裝置提供該儲存裝置的訪問控制(方框1110A)。如方框1110A所示的訪問控制的一個實施例由圖11B所表示的方法1IOOB說明。根據(jù)方法1100A,安全裝置根據(jù)儲存裝置的地址映像映像在處理請求中的儲存位置(方框1115A)。安全裝置向儲存裝置提出處理請求(方框1120A)。在正常的環(huán)境下,儲存裝置將執(zhí)行所請求的處理(方框1125A)。在各種實施例中,與方法1100A相關(guān)的安全裝置可包括一密碼機處理器或設(shè)置用來為儲存裝置提供防護(hù)的一邏輯方框。儲存裝置可包括一電子儲存媒體像一內(nèi)存或一磁性或光學(xué)的儲存媒體像一硬盤機或一光學(xué)磁盤驅(qū)動器。內(nèi)存可包括一隨機存取內(nèi)存、一只讀存儲器或一閃存。硬磁盤驅(qū)動器或光學(xué)磁盤驅(qū)動器可為固定式或可拆除式的。舉例而言,處理請求可包括一讀取請求、一寫入請求或者讀取和寫入請求的結(jié)合。需注意的是,在各種實施例中,內(nèi)存(或儲存裝置)可能進(jìn)一步地包括自己的安全硬件?;氐綀D11B,方法l100B包括密碼機處理器用以接收對于與密碼機處理器連接的儲存裝置的相關(guān)儲存位置的一個處理請求(方框1105B)。密碼機處理器提供對該儲存裝置的訪問控制(方框111OB)。如方框111OB所示的訪問控制的一個實施例由圖11B所表示的方框1100B說明。根據(jù)方法1100B,密碼機處理器根據(jù)儲存裝置的地址映像映像在處理請求中的儲存位置(方框1115B)。密碼機處理器向儲存裝置提出處理請求(方框1120B)。在正常的環(huán)境下,儲存裝置將執(zhí)行所請求的處理(方框1125B)?;氐綀D12,方法1110A包括安全裝置,該裝置判定對儲存位置而言一鎖是否在鎖區(qū)域置(方框1205)。也許儲存位置的處理請求已被接收。如果鎖并未鎖上(方框1210),方法1110A跨過鑒定部分。如果鎖己鎖上(方框1210),則安全裝置對儲存位置提出一質(zhì)疑(方框1215),此質(zhì)疑可能與儲存位置或與包括儲存位置的儲存裝置相關(guān)聯(lián)。質(zhì)疑可能是對處理請求的響應(yīng)。其次,安全裝置接收到對該質(zhì)疑的一回應(yīng)(方框1220)。安全裝置借著比較響應(yīng)與預(yù)期響應(yīng)以評估該響應(yīng)(方框1225)。如果評估是不正確的(方框1230),則此方法結(jié)束。如果評估是正確的(方框1230),則此方法繼續(xù)進(jìn)行安全裝置向儲存裝置提出處理請求(方框1235)。在各種實施例中,與方法1110A相關(guān)的安全裝置可包括一密碼機處理器或設(shè)置用來為儲存裝置提供防護(hù)的一邏輯方框。儲存裝置可包括一電子儲存媒體像一內(nèi)存或一磁性或光學(xué)的儲存媒體像一硬盤機或一光學(xué)磁盤驅(qū)動器。內(nèi)存可包括一隨機存取內(nèi)存、一只讀存儲器或一閃存。硬磁盤驅(qū)動器或光學(xué)磁盤驅(qū)動器可為固定式或可拆除式的。舉例而言,處理請求可包括一讀取請求、一寫入請求或者讀取和寫入請求的結(jié)合。請參考圖B,方法1120包括儲存一密碼在儲存裝置中(方框1305)。儲存裝置可僅包括一實體裝置的一部份。儲存裝置本身可被
技術(shù)領(lǐng)域:
常見的任何儲存裝置具體化。方法1120也可包括保存存儲裝置中的數(shù)據(jù)(方框1310)和保存存儲裝置中的程序代碼(方框1315)。方法1120也可包括提供一鎖(如一個或多個鎖區(qū)域)以確保儲存在儲存裝置的數(shù)據(jù)或儲存裝置本身(方框1315)。需注意的是,上面所述方法1120的步驟(方框1305至1320)可在相當(dāng)接近的時間中被執(zhí)行,例如當(dāng)儲存裝置被制造、安裝或啟動時。方法1120也包括讀取來自儲存裝置的密碼(方框1325),例如當(dāng)包括儲存裝置或連結(jié)至儲存裝置的計算機系統(tǒng)被開啟時。為了維持密碼的安全,密碼的讀取最好發(fā)生于儲存裝置在防護(hù)或可信任的架構(gòu)中之時。方法1120也可讀取來自儲存裝置的程序代碼(方框1330)。方法1120儲存密碼在一防護(hù)位置(方框1325)并也可儲存程序代碼于防護(hù)位置(方框1330)。如先前所述防護(hù)位置可位于SMM內(nèi)存空間中,或是在一安全內(nèi)存、寄存器或計算機系統(tǒng)100中的其它儲存位置,例如在處理器102中或南橋330中。在各種實施例中,與方法1120相關(guān)的儲存裝置可包括一電子儲存媒體像一內(nèi)存或一磁性或光學(xué)的儲存媒體像一硬盤機或一光學(xué)磁盤驅(qū)動器。內(nèi)存可包括一隨機存取內(nèi)存、一只讀存儲器或一閃存。硬磁盤驅(qū)動器或光學(xué)磁盤驅(qū)動器可為固定式或可拆除式的。方法1120中可能描述了任何的處理請求如一讀取請求、一寫入請求或者讀取和寫入請求的結(jié)合。為達(dá)到本發(fā)明的目的,對只讀存儲器的參考將解釋成運用閃存與其它本質(zhì)上非易失性的內(nèi)存類型。需注意的是,此處所提出的本發(fā)明的方法已利用流程圖說明,而流程圖的各種元素在各種實施例中皆可被省略或以不同次序執(zhí)行。也應(yīng)注意的是此處所提出的本發(fā)明的方法應(yīng)可適用于各種執(zhí)行的變化。上述本發(fā)明的一些例子可在硬件或軟件中執(zhí)行。因此,此處所提供的部分詳細(xì)描述會以硬件執(zhí)行過程的形式表示,也會以包含計算機系統(tǒng)或計算機裝置中內(nèi)存內(nèi)數(shù)據(jù)位的操作符號的軟件執(zhí)行過程的形式來表示。這些描述和說明是
技術(shù)領(lǐng)域:
中傳達(dá)其工作主旨至其它
技術(shù)領(lǐng)域:
中擅長使用硬件和軟件人員的最有效方式。過程和運作皆需要物理量的物理操作。而軟件中通常(雖然不一定)除了操作以外,這些實體量尚可利用電、磁或光學(xué)信號的形式被儲存、傳送、結(jié)合和比較。有時這已被證實是十分方便的,主要是因為這些信號常被用諸如位、數(shù)值、元素、符號、特性、名稱、數(shù)字或此類形式來表示。然而應(yīng)被牢記的是,所有這些名稱和類似名稱都是與物理量相關(guān)并僅為方便使用的符號。除非有特別描述或是在本發(fā)明中十分明顯易見,否則這些描述均屬電子裝置的行為和程序,操縱并轉(zhuǎn)變某種電子裝置內(nèi)以物理(電子、磁性或光學(xué))量儲存的數(shù)據(jù)以成為其它物理量表示的近似資料(或是在傳送或顯示裝置中)。表示此類描述的范例尚有"處理"、"計算機運作"、"計算"、"判定"、"顯示"等等(并非僅局限于這些)。也需注意的是,本發(fā)明的軟件實施例子通常被編譯成程序儲存媒體的形式,或者以一些傳送媒介的形式被執(zhí)行。此類程序儲存媒體可能是磁性(例如軟、硬盤機)或光學(xué)式(例如只讀式光盤"CDROM"),且為只讀或任意的訪問格式。同理,上述傳送媒介可能是雙絞電纜、同軸電纜、光纖或熟悉此技藝者知曉的其它合適傳送媒介。本發(fā)明的例子并不僅局限于上述提及的執(zhí)行例。上文僅描述本發(fā)明特別的實施例,本發(fā)明尚可修正且實施在不同的均等例子,例如熟悉此項技藝者明顯由本發(fā)明的指導(dǎo)發(fā)展出的均等方法,更進(jìn)一步而言,除了以下所述的申請專利范圍外,任何此處所提的詳細(xì)建構(gòu)或設(shè)計均不應(yīng)被視為對本專利范圍的解釋限制。因此,上文所揭露的特別實施例顯然是可被改變與修正的,而此類變動均將被視為本發(fā)明的范圍,因此,下文的申請專利范圍將是前述發(fā)明所尋求的保護(hù)。雖然本發(fā)明易于作出各種修改及替代形式,但是圖示舉行的方式已詳細(xì)說明了其一些特定實施例。應(yīng)被了解的是,此處的特別實施例描述并非在使本發(fā)明限于所揭示特定形式,相反地,其用意是在涵蓋最后的申請專利范圍所界定的本發(fā)明范圍內(nèi)的所有修改、均等物及替代方式。權(quán)利要求1.一種操作一個計算機系統(tǒng)的方法,該方法至少包括以下步驟從一個第一裝置發(fā)出對一個內(nèi)存區(qū)域的內(nèi)存處理的一個請求;在一個第二裝置接收該內(nèi)存處理請求,該第二裝置不包括內(nèi)存區(qū)域或內(nèi)存區(qū)域內(nèi)容的拷貝;以及返回來自該第二裝置的響應(yīng)至發(fā)出該內(nèi)存處理請求的第一裝置。2.根據(jù)權(quán)利要求1所述的方法,其中返回來自該第二裝置的響應(yīng)的步驟包括在沒有內(nèi)存處理到達(dá)內(nèi)存區(qū)域的情況下中止內(nèi)存處理。3.根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括步驟:在沒有內(nèi)存處理到達(dá)內(nèi)存區(qū)域的情況下中止對內(nèi)存處理的請求。4.根據(jù)權(quán)利要求1所述的方法,其中第二個裝置包括一個相連在第一裝置和內(nèi)存區(qū)域之間的橋接器,其中返回來自該第二裝置的響應(yīng)至發(fā)出該內(nèi)存處理請求的第一裝置的步驟包括返回來自橋接器的回應(yīng)至發(fā)出該內(nèi)存處理請求的第一裝置。5.根據(jù)權(quán)利要求4所述的方法,其中返回來自該橋接器的回應(yīng)至發(fā)出該內(nèi)存處理請求的第一裝置的步驟包括在計算機系統(tǒng)運行于第一運行模式時,響應(yīng)由該橋接器中的訪問過濾器以一根據(jù)內(nèi)存區(qū)域的內(nèi)存處理請求的接收的預(yù)定值。6.根據(jù)權(quán)利要求5所述的方法,其中從第一裝置發(fā)出對一內(nèi)存區(qū)域的內(nèi)存處理請求的步驟包括在內(nèi)存、只讀存儲器或閃存中從第一裝置發(fā)出對內(nèi)存區(qū)域的內(nèi)存處理請求。7.根據(jù)權(quán)利要求1所述的方法,其中該第一裝置包括安全硬件,其中在第二裝置接收對內(nèi)存處理的請求,而該第二裝置不包括內(nèi)存區(qū)域或內(nèi)存區(qū)域內(nèi)容的拷貝,此步驟包括在第一裝置的安全硬件中接收對內(nèi)存處理的請求;以及其中返回來自該第二裝置的回應(yīng)至發(fā)出該內(nèi)存處理請求的第一裝置,此步驟包括返回來自該安全硬件的響應(yīng)至發(fā)出該內(nèi)存處理請求的第一裝置。8.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括步驟在返回回應(yīng)之前讀取來自該第二裝置內(nèi)的存儲位置的第一數(shù)值,其中該第二裝置內(nèi)的內(nèi)存區(qū)域不同于內(nèi)存處理的內(nèi)存區(qū)域。全文摘要本發(fā)明針對存儲器區(qū)域提供外部鎖固機制的一種方法和系統(tǒng)。存儲器包括與基本輸入/輸出系統(tǒng)(BIOS)數(shù)據(jù)相組合的多個第一儲存位置和多個第二儲存位置。多個第二儲存位置包含僅在系統(tǒng)管理模式(SMM)可讀的多個第一區(qū)塊以及在SMM與除了SMM以外的至少一個操作模式可讀取的多個第二區(qū)塊。計算機系統(tǒng)包括一總線、與該總線相連接的一存儲器和與該總線相連接并通過總線訪問該存儲器的一裝置。該存儲器包括多個儲存位置,分成多個存儲器單元。該裝置包括一個或更多個鎖固結(jié)構(gòu),用以控制訪問一個或更多的多個存儲器單元。文檔編號G06F12/14GK101118583SQ20071000431公開日2008年2月6日申請日期2002年4月17日優(yōu)先權(quán)日2001年5月10日發(fā)明者D·E·古利克,F·D·韋伯,G·S·斯特勞金申請人:先進(jìn)微裝置公司