專利名稱:用于過(guò)濾訪問(wèn)部件核心邏輯的嘗試的技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及維持計(jì)算機(jī)系統(tǒng)的硬件外圍設(shè)備中的安全的技術(shù)。
背景技術(shù):
在計(jì)算環(huán)境中,諸如病毒和蠕蟲之類的惡意軟件比較普遍。惡意軟件通常試圖破壞或控制計(jì)算機(jī)或其外圍硬件部件的運(yùn)行。例如,能夠通過(guò)PCI兼容總線接收命令的硬件部件使其配置和狀態(tài)寄存器受到連接到總線的裝置的操作,但所述硬件部件并不施加任何保護(hù)以防止允許的事務(wù)處理的任何子集。人們期望防止惡意軟件操縱硬件部件的操作和配置。
圖1示出了其中可以使用本發(fā)明某些實(shí)施例的系統(tǒng);圖2示出了可以使用本發(fā)明實(shí)施例的示例性計(jì)算機(jī)系統(tǒng);圖3示出了根據(jù)本發(fā)明實(shí)施例的硬件部件的示例性實(shí)現(xiàn)方案,其包括過(guò)濾來(lái)自外部裝置的讀或?qū)懻?qǐng)求的能力;圖4示出了根據(jù)本發(fā)明實(shí)施例的示例性訪問(wèn)圖,通過(guò)該訪問(wèn)圖,可以對(duì)配置和狀態(tài)寄存器加以訪問(wèn),或是不可以加以訪問(wèn);圖5示出了根據(jù)本發(fā)明實(shí)施例的網(wǎng)絡(luò)接口的示例性實(shí)現(xiàn)方案;圖6示出了根據(jù)本發(fā)明實(shí)施例可用于控制是否允許外部裝置或程序訪問(wèn)計(jì)算機(jī)系統(tǒng)硬件部件的核心邏輯的示例性過(guò)程。
需要注意的是,在不同附圖中,相同的參考編號(hào)表示相同或相似的元件具體實(shí)施方式
本文中所述的“一個(gè)實(shí)施例”或“實(shí)施例”表示與實(shí)施例相關(guān)聯(lián)地描述的特定特征、結(jié)構(gòu)和特性被包括在本發(fā)明的至少一個(gè)實(shí)施例內(nèi)。因此,在本文中各處出現(xiàn)的詞條“在一個(gè)實(shí)施例中”或“實(shí)施例”并不一定均指同一個(gè)實(shí)施例。而且,特定特征、結(jié)構(gòu)和特性可以被結(jié)合于一個(gè)或多個(gè)實(shí)施例中。
例如,圖1示出了其中可以使用本發(fā)明某些實(shí)施例的系統(tǒng)。該系統(tǒng)可以包括被管理的客戶機(jī)裝置102-0至102-N、配置裝置104和管理控制臺(tái)106。被管理的客戶機(jī)裝置102-0至102-N、配置裝置104和管理控制臺(tái)106可以利用網(wǎng)絡(luò)150進(jìn)行通信。
網(wǎng)絡(luò)150可以是諸如因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN)、存儲(chǔ)區(qū)域網(wǎng)(SAN)、廣域網(wǎng)(WAN)或無(wú)線網(wǎng)之類的任何網(wǎng)絡(luò)。網(wǎng)絡(luò)150可以使用以太網(wǎng)標(biāo)準(zhǔn)、SONET/SDH、ATM或任何通信標(biāo)準(zhǔn)來(lái)與計(jì)算機(jī)系統(tǒng)交換業(yè)務(wù)量。
例如,任何被管理的客戶機(jī)裝置102-0至102-N可以被實(shí)現(xiàn)為諸如個(gè)人計(jì)算機(jī)或服務(wù)器計(jì)算機(jī)之類的任何計(jì)算機(jī)。在一個(gè)實(shí)施例中,任何被管理的客戶機(jī)裝置102-0至102-N可以向管理控制臺(tái)106提供信息,所述信息例如(但不限于)有每一個(gè)被管理的客戶機(jī)裝置102-0至102-N中的數(shù)據(jù)或清單(例如硬件或軟件),以及相關(guān)于可疑硬件故障和引導(dǎo)記錄的其他信息。在一個(gè)實(shí)施例中,任何被管理的客戶機(jī)裝置102-0至102-N均可具有限制軟件程序或硬件裝置能夠控制其使用或訪問(wèn)存儲(chǔ)于其中的信息的范圍的能力。
配置裝置104可以提供被管理的客戶機(jī)裝置的目錄和在管理控制臺(tái)106和被管理的客戶機(jī)裝置102-0至102-N之中任一裝置之間進(jìn)行通信的協(xié)議。例如,為了提供通信,配置裝置104可以使用動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)和/或域名系統(tǒng)(DNS)協(xié)議,但也可以使用其他協(xié)議。在一個(gè)實(shí)施例中,管理控制臺(tái)106和配置裝置104可以組合成一個(gè)單獨(dú)的裝置。
管理控制臺(tái)106可以使用戶能夠查看信息,所述信息例如有(但不限于)被管理的客戶機(jī)裝置102-0至102-N之每一個(gè)中的數(shù)據(jù)或清單(例如硬件或軟件),以及相關(guān)于可疑硬件故障和引導(dǎo)記錄的其他信息。管理控制臺(tái)106可以使用戶能夠監(jiān)視被管理的客戶機(jī)裝置102-0至102-N中的任一個(gè),而不管操作系統(tǒng)的狀態(tài)或被管理的客戶機(jī)裝置102-0至102-N中任一個(gè)的電源模式。在一個(gè)實(shí)施例中,管理控制臺(tái)106可以通過(guò)可擴(kuò)展標(biāo)記語(yǔ)言(XML)腳本而與被管理的客戶機(jī)裝置102-0至102-N中的每一個(gè)進(jìn)行互通信,但也可以使用其他協(xié)議。在一個(gè)實(shí)施例中,配置裝置104和管理控制臺(tái)106可以組合為一個(gè)單獨(dú)的裝置。
圖2示出了計(jì)算機(jī)系統(tǒng)200中被管理的客戶機(jī)裝置102-0至102-N之任一個(gè)的適當(dāng)實(shí)現(xiàn)方案。計(jì)算機(jī)系統(tǒng)200可以包括芯片組205、處理器210、主存儲(chǔ)器212、系統(tǒng)存儲(chǔ)器214、引導(dǎo)存儲(chǔ)器216、總線220和硬件(HW)部件222-0至222-N。
芯片組205包括存儲(chǔ)控制中心(MCH)205A,其提供處理器210、主存儲(chǔ)器212和圖形適配器之間的互通信,所述圖形適配器可以用于為顯示裝置上的顯示(均未示出)傳輸圖形和信息。芯片組205還可以包括I/O控制中心(ICH)205B,其可與MCH 205A進(jìn)行互通信,并可提供系統(tǒng)存儲(chǔ)器214、引導(dǎo)存儲(chǔ)器216和總線220之間的互通信。
處理器210可以被實(shí)現(xiàn)為復(fù)雜指令集計(jì)算機(jī)(CISC)處理器或精簡(jiǎn)指令集計(jì)算機(jī)(RISC)處理器、多核或任何其他微處理器或中央處理單元。主存儲(chǔ)器212可以被實(shí)現(xiàn)為易失性存儲(chǔ)裝置(例如,隨機(jī)存取存儲(chǔ)器(RAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)或靜態(tài)RAM(SRAM))。系統(tǒng)存儲(chǔ)器214可以被實(shí)現(xiàn)為非易失性存儲(chǔ)裝置,例如磁盤驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器、內(nèi)部存儲(chǔ)裝置、附加存儲(chǔ)裝置和/或網(wǎng)絡(luò)可訪問(wèn)存儲(chǔ)裝置。存儲(chǔ)于系統(tǒng)存儲(chǔ)器214中的程序和信息可以被加載入主存儲(chǔ)器212并被處理器210執(zhí)行。例如,系統(tǒng)存儲(chǔ)器214可以存儲(chǔ)操作系統(tǒng)和系統(tǒng)200所用的應(yīng)用程序。
引導(dǎo)存儲(chǔ)器216可以被實(shí)現(xiàn)為非易失性存儲(chǔ)器,例如只讀存儲(chǔ)器(ROM)、可擦可編程ROM(EPROM)、電可擦可編程ROM(EEPROM)、掩模型ROM或閃速存儲(chǔ)器。引導(dǎo)存儲(chǔ)器216至少可存儲(chǔ)基本輸入/輸出系統(tǒng)(BIOS)和被管理的客戶機(jī)裝置的資源描述。在一個(gè)實(shí)施例中,在系統(tǒng)200的引導(dǎo)期間,BIOS可以確定資源描述和引導(dǎo)記錄。例如,資源描述可以包括但不限于,被管理的客戶機(jī)裝置的構(gòu)成和型號(hào)、處理器210的序列號(hào)、主存儲(chǔ)器的存儲(chǔ)容量、系統(tǒng)存儲(chǔ)器214的存儲(chǔ)容量和即插即用ID列表(例如硬件外圍設(shè)備的序列號(hào)或通用名稱的列表)。某些資源描述可以為硬編碼,而某些資源可以在引導(dǎo)期間進(jìn)行測(cè)量(例如主存儲(chǔ)器的存儲(chǔ)容量、系統(tǒng)存儲(chǔ)器214的存儲(chǔ)容量和即插即用ID列表)。系統(tǒng)200的引導(dǎo)記錄可以包括在引導(dǎo)過(guò)程中檢測(cè)的可疑硬件故障或指示器(例如主存儲(chǔ)器檢查、存儲(chǔ)裝置檢查和存儲(chǔ)裝置中無(wú)效引導(dǎo)扇區(qū)的指示)。
總線220可以提供主系統(tǒng)202和硬件部件222-0至2220-N之間的互通信??偩€220支持節(jié)點(diǎn)到節(jié)點(diǎn)、或節(jié)點(diǎn)到多節(jié)點(diǎn)的通信??偩€220可以相兼容于外圍部件互連(PCI),其例如在位于美國(guó)俄勒岡州波特蘭市的PCI專業(yè)組(PCI Special Interest Group)于1998年12月18日提出的外圍部件互連(PCI)本地總線規(guī)范(Local BusSpecification)修訂本(Revision)2.2(以及其修訂本)中進(jìn)行了描述;PCI Express,其在PCI專業(yè)組的PCI Express基礎(chǔ)規(guī)范(BaseSpecification)修訂本1.0a(以及其修訂本)中進(jìn)行描述;PCI-x,其在上述位于美國(guó)俄勒岡州波特蘭市的PCI專業(yè)組(PCI Special InterestGroup)于2000年7月24日提出的PCI-X規(guī)范修訂本1.0a(以及其修訂本)中進(jìn)行描述;串行ATA,其在例如由串行ATA工作組(SerialATA Working Group)于2001年8月29日公布的“串行ATA高速串行化AT附加”修訂本1.0(以及相關(guān)標(biāo)準(zhǔn))中進(jìn)行描述;通用串行總線(USB)(以及相關(guān)標(biāo)準(zhǔn));以及其他互連標(biāo)準(zhǔn)。
硬件部件222-0至222-N可以為任何能夠從主系統(tǒng)202接收信息或指令、或提供信息或指令給主系統(tǒng)202的裝置。硬件部件222-0至222-N之任一個(gè)能夠提供信息或指令給硬件部件222-0至222-N中的另一個(gè)、或從硬件部件222-0至222-N中的另一個(gè)接收信息或指令。根據(jù)本發(fā)明的實(shí)施例,硬件部件222-0至222-N之任一個(gè)可以具有阻止來(lái)自諸如主系統(tǒng)202之類的外部裝置的訪問(wèn)請(qǐng)求(例如指令、讀或?qū)懻?qǐng)求)被傳送至硬件部件的核心邏輯的能力。硬件部件222-0至222-N的核心邏輯可以包括使用主板的導(dǎo)線相互連接的微芯片或集成電路、硬連線邏輯、存儲(chǔ)在存儲(chǔ)裝置中并由微處理器執(zhí)行的軟件、固件、專用集成電路(ASIC)、存儲(chǔ)器或存儲(chǔ)裝置、和/或現(xiàn)場(chǎng)可編程門陣列(FPGA)。
計(jì)算機(jī)系統(tǒng)200可以實(shí)現(xiàn)為以下之任一項(xiàng)或其組合使用主板的導(dǎo)線相互連接的若干個(gè)微芯片或集成電路、硬連線邏輯、存儲(chǔ)在存儲(chǔ)裝置中并由微處理器執(zhí)行的軟件、固件、專用集成電路(ASIC)和/或現(xiàn)場(chǎng)可編程門陣列(FPGA)。
例如,圖3示出了根據(jù)本發(fā)明實(shí)施例的硬件部件300的示例性實(shí)現(xiàn)方案,其包括過(guò)濾來(lái)自諸如(包括但并不限于)主系統(tǒng)202之類的外部裝置的讀或?qū)懻?qǐng)求的能力。硬件部件300可以包括I/O裝置305、過(guò)濾裝置310、硬件核心邏輯315和保護(hù)規(guī)則裝置320。
通過(guò)提供媒體連接件并支持接口的相關(guān)協(xié)議,I/O裝置305可以提供過(guò)濾裝置310和諸如(包括但并不限于)總線220之類的主系統(tǒng)接口之間的互通信。
過(guò)濾裝置310可以基于由保護(hù)規(guī)則裝置320提供的規(guī)則而過(guò)濾由I/O裝置305(例如從接口)傳輸?shù)脑L問(wèn)硬件核心邏輯315的嘗試。例如,訪問(wèn)嘗試可以包括指令類型(例如讀或?qū)?、目標(biāo)硬件部件的地址、訪問(wèn)的目標(biāo)硬件部件的功能以及要訪問(wèn)的硬件部件300的存儲(chǔ)器中的地址。例如,保護(hù)規(guī)則裝置320可以對(duì)過(guò)濾裝置310進(jìn)行編程,以識(shí)別應(yīng)該或不應(yīng)該被傳輸?shù)接布诵倪壿?15的訪問(wèn)嘗試。因此,過(guò)濾裝置310可以保護(hù)硬件核心邏輯315不會(huì)以諸如由錯(cuò)誤的驅(qū)動(dòng)器或病毒進(jìn)行配置之類的錯(cuò)誤或有害的方式被配置。
在一個(gè)實(shí)施例中,盡管可以使用其他標(biāo)準(zhǔn),保護(hù)規(guī)則裝置320可以引導(dǎo)過(guò)濾裝置310基于訪問(wèn)嘗試類型(例如讀或?qū)?、請(qǐng)求訪問(wèn)的硬件核心邏輯315的存儲(chǔ)器中的存儲(chǔ)器扇區(qū)(例如,配置和狀態(tài)存儲(chǔ)器空間、I/O空間或存儲(chǔ)器空間)、和/或訪問(wèn)嘗試的發(fā)起者(依據(jù)具體情況而定),對(duì)訪問(wèn)嘗試進(jìn)行過(guò)濾。
在一個(gè)實(shí)施例中,保護(hù)規(guī)則裝置320可以配置過(guò)濾裝置310,使其能夠進(jìn)入多個(gè)階段(例如置信或非置信),而在每一階段,過(guò)濾裝置310向硬件核心邏輯315傳輸指令的范圍被減小。例如,在置信階段,過(guò)濾裝置310可以向硬件核心邏輯315傳輸從I/O裝置305接收的并由外部置信源提供的任何指令。例如,在非置信階段,過(guò)濾裝置310可以不向硬件核心邏輯315傳輸從I/O裝置305接收的任何指令。因此,在這樣的條件下,即在非置信階段可能的惡意代碼嘗試控制硬件核心邏輯315,對(duì)硬件核心邏輯315的訪問(wèn)可能會(huì)被拒絕。例如,硬件核心邏輯315通過(guò)忽略指令或提供預(yù)編程通用響應(yīng)而可以響應(yīng)在未置信階段接收的指令。
在一個(gè)實(shí)施例中,觸發(fā)事件可以將過(guò)濾裝置310的狀態(tài)從置信階段狀態(tài)改變到非置信階段,反之亦然。過(guò)濾裝置310可檢測(cè)的并使其進(jìn)入到置信階段的觸發(fā)事件包括平臺(tái)事件(platform event),沒(méi)有軟件組件可以觸發(fā)所述平臺(tái)事件,以及所述平臺(tái)事件導(dǎo)致置信源的緊接著的下一步的執(zhí)行。例如,使過(guò)濾裝置310進(jìn)入置信階段的觸發(fā)事件可包括主系統(tǒng)中的PCI-重置解斷言(de-assertion)事件。在PCI下,在PCI-重置解斷言事件發(fā)生后,處理器被重置,下一步是處理器執(zhí)行BIOS代碼。例如,主系統(tǒng)的全功率的加電或恢復(fù)會(huì)觸發(fā)PCI-重置解斷言事件。也可以使用其他觸發(fā)事件。例如,導(dǎo)致進(jìn)入非置信階段的觸發(fā)事件包括置信源(例如BIOS)通知接下來(lái)將執(zhí)行非置信源。例如,在運(yùn)行非BIOS代碼的代碼之前的BIOS通知會(huì)觸發(fā)進(jìn)入非置信階段。
例如,置信源可以包括請(qǐng)求非BIOS代碼被執(zhí)行前的BIOS代碼。非BIOS代碼可以包括但不限于存儲(chǔ)器(不包括引導(dǎo)存儲(chǔ)器216)中的代碼;操作系統(tǒng)(例如Linux、DOS或Windows);或BIOS可以請(qǐng)求被執(zhí)行的任何第三方“ROM擴(kuò)展”代碼。第三方ROM擴(kuò)展代碼的示例包括但不限于小型計(jì)算機(jī)系統(tǒng)接口(SCSI)適配器初始SCSI適配器用于初始化SCSI適配器的代碼和使操作系統(tǒng)(OS)能夠使用網(wǎng)絡(luò)接口從網(wǎng)絡(luò)被加載的預(yù)引導(dǎo)執(zhí)行環(huán)境(PXE)代碼。其他置信源可以包括軟件,所述軟件只能由置信源或授權(quán)人添加,并且在添加后,只能由置信源或授權(quán)人隨后更改。
在一個(gè)實(shí)施例中,過(guò)濾裝置310能夠進(jìn)入多級(jí)置信。例如,可以有置信階段、半置信階段和非置信階段。在半置信階段,硬件部件可以執(zhí)行有限的指令集,或執(zhí)行由源的有限集發(fā)出的指令。例如,鏈路“上行”狀況(下文將對(duì)其進(jìn)行描述)可以對(duì)應(yīng)于半置信階段。例如,源可以使用訪問(wèn)請(qǐng)求中的源標(biāo)識(shí)符來(lái)標(biāo)識(shí)其自身。
可以導(dǎo)致轉(zhuǎn)變?yōu)橹眯呕虬胫眯烹A段的其他示例性觸發(fā)包括非可屏蔽中斷(NMI)和系統(tǒng)管理中斷(SMI)。NMI可以觸發(fā)主處理器接下來(lái)執(zhí)行BIOS并因此變?yōu)橹眯烹A段。NMI可以觸發(fā)主處理器接下來(lái)執(zhí)行少于諸如OS內(nèi)核之類的BIOS的置信代碼,并因此使其轉(zhuǎn)變?yōu)榘胫眯烹A段,從而使來(lái)自O(shè)S內(nèi)核的有限指令集能夠被傳輸?shù)接布诵倪壿嬘靡詧?zhí)行。SMI可以觸發(fā)主處理器接下來(lái)執(zhí)行BIOS,從而使得轉(zhuǎn)變?yōu)橹眯烹A段。此外,可以傳輸?shù)胶诵倪壿嫷腛S和BIOS指令的更多示例包括存儲(chǔ)在登錄過(guò)程中用戶的擊鍵。
在一個(gè)實(shí)施例中,諸如遠(yuǎn)程服務(wù)器(例如管理控制臺(tái))之類的遠(yuǎn)程實(shí)體或主系統(tǒng)中的置信源可以設(shè)置保護(hù)規(guī)則裝置320中的將被過(guò)濾裝置310應(yīng)用的規(guī)則。例如,遠(yuǎn)程服務(wù)器可以基于硬件部件的系統(tǒng)狀態(tài)而改變規(guī)則。硬件部件系統(tǒng)狀態(tài)的示例包括硬件部件的電源使用狀態(tài)。例如,遠(yuǎn)程服務(wù)器可以基于主系統(tǒng)的系統(tǒng)狀態(tài)而改變規(guī)則。主系統(tǒng)狀態(tài)的示例包括主系統(tǒng)的高級(jí)配置與電源接口(ACPI)規(guī)范兼容的電源使用狀態(tài)(例如開、關(guān)、睡眠、休眠或待機(jī))或主系統(tǒng)的每一部件的電源狀態(tài)(例如主系統(tǒng)處理器的電源使用狀態(tài))。
在一個(gè)實(shí)施例中,保護(hù)規(guī)則裝置320可以在若干個(gè)階段期間(例如在半置信階段或非置信階段期間)或在若干個(gè)時(shí)間段中限制外部指令訪問(wèn)硬件核心邏輯315的某些功能(例如將在下文中描述的主接口功能)。
例如,圖4示出了與硬件部件的配置與狀態(tài)寄存器(CSR 1)相關(guān)的示例性訪問(wèn)圖。根據(jù)本發(fā)明的實(shí)施例,可以配置訪問(wèn)圖以在比特級(jí)別上允許或拒絕對(duì)CSR 1的訪問(wèn)。例如,CSR 1可以包括8比特(0到7),每一比特被指定為是否可由訪問(wèn)請(qǐng)求進(jìn)行訪問(wèn)。例如比特1、4、5和7可以被指定為不可由任何訪問(wèn)嘗試進(jìn)行訪問(wèn)。比特0和6除了在未置信階段內(nèi)之外均可以被訪問(wèn)。比特2則除了在諸如與網(wǎng)絡(luò)節(jié)點(diǎn)的鏈接之類的特定硬件部件狀態(tài)之后都可以被訪問(wèn)。而比特3則在任何情況下均可以被訪問(wèn)。因此,可以保護(hù)配置寄存器以防止有條件地或無(wú)條件地訪問(wèn)硬件部件或主系統(tǒng)中的事件。這僅僅是訪問(wèn)圖的一個(gè)實(shí)施例;也可以使用許多其他的類型和配置??梢詫⒃L問(wèn)圖存儲(chǔ)于保護(hù)規(guī)則裝置320中。因此,過(guò)濾裝置310可以基于訪問(wèn)圖來(lái)過(guò)濾對(duì)CSR 1的訪問(wèn)請(qǐng)求。例如,硬件核心邏輯315可以包括多功能,每一功能具有與其自身相關(guān)的CSR和訪問(wèn)圖,從而使訪問(wèn)圖確定與每一功能相關(guān)的CSR的訪問(wèn)。
例如,對(duì)不允許的讀請(qǐng)求的一個(gè)可能的響應(yīng)是提供預(yù)定的數(shù)據(jù)而不是實(shí)際數(shù)據(jù)。例如,如果不允許的訪問(wèn)嘗試請(qǐng)求讀取保存數(shù)據(jù)值為0x10101010的特定寄存器,則響應(yīng)于不允許的訪問(wèn)嘗試,過(guò)濾裝置310可提供的預(yù)定響應(yīng)值為0x00000000。例如,對(duì)于不允許的寫請(qǐng)求的一個(gè)可能的響應(yīng)是忽略寫請(qǐng)求。例如,對(duì)于經(jīng)由PCI兼容總線傳輸?shù)膶懯聞?wù)處理,忽略該寫事務(wù)處理并不會(huì)觸發(fā)錯(cuò)誤條件。即便硬件部件不遵從于不允許寫請(qǐng)求,不允許寫事務(wù)處理的源也可以相信硬件部件遵從于不允許寫請(qǐng)求。在一個(gè)實(shí)施例中,當(dāng)不允許請(qǐng)求發(fā)生時(shí),過(guò)濾裝置310可以生成報(bào)警消息,所述報(bào)警消息被發(fā)送給諸如管理控制臺(tái)之類的外部裝置,以便向管理控制臺(tái)通知不允許請(qǐng)求以及該不允許請(qǐng)求的特性。
硬件核心邏輯315可以提供硬件部件的核心功能。硬件核心邏輯315可以包括使用主板的導(dǎo)線相互連接的若干個(gè)微芯片或集成電路、硬連線邏輯、存儲(chǔ)在存儲(chǔ)裝置中并由微處理器執(zhí)行的軟件、固件、專用集成電路(ASIC)、存儲(chǔ)器或存儲(chǔ)裝置、和/或現(xiàn)場(chǎng)可編程門陣列(FPGA)。例如,存儲(chǔ)裝置可以存儲(chǔ)若干個(gè)配置和狀態(tài)寄存器(CSR)。配置和狀態(tài)寄存器(CSR)可用于配置通常由硬件核心邏輯315或硬件部件300執(zhí)行的功能的操作。例如,可以在訪問(wèn)圖中將配置和狀態(tài)寄存器的選定內(nèi)容(即便是比特級(jí)別)標(biāo)記為訪問(wèn)嘗試可訪問(wèn)或不可訪問(wèn)。例如,由硬件部件300實(shí)現(xiàn)的功能包括但不限于主接口、鏈路連接、主系統(tǒng)資源信息接收或傳輸能力(結(jié)合圖5對(duì)其中每一項(xiàng)進(jìn)行描述)。
可以將硬件部件300實(shí)現(xiàn)為以下之任一項(xiàng)或其組合使用主板的導(dǎo)線相互連接的若干個(gè)微芯片或集成電路、硬連線邏輯、存儲(chǔ)在存儲(chǔ)裝置中并由微處理器執(zhí)行的軟件、固件、專用集成電路(ASIC)和/或現(xiàn)場(chǎng)可編程門陣列(FPGA)。
在一個(gè)實(shí)施例中,硬件部件222-0至222-N中至少一個(gè)可被實(shí)現(xiàn)為網(wǎng)絡(luò)接口。例如,該網(wǎng)絡(luò)接口能夠提供計(jì)算機(jī)系統(tǒng)(包括但不限于計(jì)算機(jī)系統(tǒng)200)和與諸如(但不限于)以太網(wǎng)或SONET/SDH之類的相關(guān)網(wǎng)絡(luò)標(biāo)準(zhǔn)相兼容的網(wǎng)絡(luò)(例如但不限于網(wǎng)絡(luò)150)之間的互通信。
例如,圖5示出了根據(jù)本發(fā)明實(shí)施例的網(wǎng)絡(luò)接口500的示例性實(shí)現(xiàn)方案。網(wǎng)絡(luò)接口500可以包括I/O裝置502、核心邏輯504和物理層接口(PHY)506。I/O裝置502可以提供主系統(tǒng)總線(包括但不限于總線220)和網(wǎng)絡(luò)接口500之間的互通信。例如I/O裝置502可以根據(jù)總線所使用的若干個(gè)標(biāo)準(zhǔn),編碼通信信息并將其提供到總線,以及接收并解碼由總線提供的通信信息。I/O裝置502可以利用過(guò)濾器503以與關(guān)于過(guò)濾裝置310和保護(hù)規(guī)則裝置320所述的方式相似的方式來(lái)過(guò)濾來(lái)自總線的請(qǐng)求。
在一個(gè)實(shí)施例中,如圖所示,核心邏輯504可以包括能夠執(zhí)行指令的處理器和存儲(chǔ)裝置。在一個(gè)實(shí)施例中,核心邏輯504可以包括使用主板的導(dǎo)線相互連接的若干個(gè)微芯片或集成電路、硬連線邏輯、存儲(chǔ)在存儲(chǔ)裝置中并由微處理器執(zhí)行的軟件、固件、專用集成電路(ASIC)、存儲(chǔ)器或存儲(chǔ)裝置、和/或現(xiàn)場(chǎng)可編程門陣列(FPGA)。
核心邏輯504可具有提供主接口的能力,所述主接口提供網(wǎng)絡(luò)接口500和至少由主系統(tǒng)使用的BIOS之間的互通信。該接口可以實(shí)現(xiàn)為KCS接口,KCS接口是以運(yùn)行于PCI兼容總線之上的智能平臺(tái)管理接口(IPMI)標(biāo)準(zhǔn)來(lái)定義。在一個(gè)實(shí)施例中,可以使網(wǎng)絡(luò)接口500的主接口功能適用于在置信階段的訪問(wèn)。
例如,在置信階段,過(guò)濾器503可以允許主系統(tǒng)中的BIOS訪問(wèn)I/O裝置502的主接口功能,并因此允許存儲(chǔ)器在置信階段接收由主系統(tǒng)的BIOS提供的信息,如硬件或軟件資源信息或與引導(dǎo)記錄相關(guān)的信息。因此,在置信階段所傳輸?shù)男畔⒖梢员徽J(rèn)為是未受破壞的。例如,諸如管理控制臺(tái)106之類的裝置可以通過(guò)向網(wǎng)絡(luò)接口500提供請(qǐng)求而從主系統(tǒng)(例如但不限于主系統(tǒng)202)請(qǐng)求信息。在一個(gè)實(shí)施例中,管理控制臺(tái)106可以使用XML兼容通信而從網(wǎng)絡(luò)接口500請(qǐng)求主系統(tǒng)的硬件或軟件資源描述信息或引導(dǎo)記錄。因此,通過(guò)將信息提供給網(wǎng)絡(luò)接口500以用于存儲(chǔ)和傳輸,可以將相關(guān)于主系統(tǒng)的信息傳輸給諸如管理控制臺(tái)106之類的裝置,而不考慮主系統(tǒng)的操作系統(tǒng)或電源使用狀態(tài)。
在一個(gè)實(shí)施例中,存儲(chǔ)在核心邏輯504的存儲(chǔ)器中的配置與狀態(tài)寄存器可用于配置網(wǎng)絡(luò)接口500,以允許與網(wǎng)絡(luò)中的一個(gè)或多個(gè)指定節(jié)點(diǎn)地址進(jìn)行通信。在與指定節(jié)點(diǎn)地址的通信建立后,過(guò)濾器503可以被配置為不允許對(duì)配置做任何變化,除非變化是由指定源所做的。例如,狀態(tài)寄存器可以表示與指定節(jié)點(diǎn)地址的通信是否有效,以及過(guò)濾器503可以監(jiān)視狀態(tài)寄存器以確定與指定節(jié)點(diǎn)地址的通信是否有效(例如鏈路上行(link up)/鏈路下行(link down)狀態(tài))。例如,如果鏈路狀態(tài)是“下行”,則可以允許外部裝置或軟件程序重新配置鏈路。例如,重新配置鏈路可以包括改變指定的節(jié)點(diǎn)地址。例如,如果鏈路狀態(tài)是“上行”,則過(guò)濾器503可以禁止除特定源之外對(duì)鏈路配置進(jìn)行任何更改?!吧闲小辨溌窢顟B(tài)可以包括配置物理層接口508以與指定節(jié)點(diǎn)地址進(jìn)行通信。因此,如果指定節(jié)點(diǎn)地址是管理控制臺(tái),在鏈路“上行”后,可以防止除特定源之外破壞或更改管理控制臺(tái)和網(wǎng)絡(luò)接口500之間的鏈路。這樣,就可以提供安全鏈路,以傳輸諸如主系統(tǒng)的資源信息和引導(dǎo)記錄之類的信息。
核心邏輯504的存儲(chǔ)器可以存儲(chǔ)網(wǎng)絡(luò)接口500所使用的應(yīng)用程序和協(xié)議,以通過(guò)網(wǎng)絡(luò)與諸如(但不限于)管理控制臺(tái)106之類的外部裝置進(jìn)行通信。該存儲(chǔ)器可以存儲(chǔ)從網(wǎng)絡(luò)接收的分組和幀的內(nèi)容,以及傳輸給網(wǎng)絡(luò)的分組和幀的內(nèi)容。例如,該存儲(chǔ)器可以存儲(chǔ)將傳輸給主系統(tǒng)的信息,或?qū)闹飨到y(tǒng)傳輸給外部裝置的出站信息。例如,信息可以包括但不限于主系統(tǒng)的資源信息、引導(dǎo)記錄和擊鍵信息(例如響應(yīng)于登錄請(qǐng)求而提供的擊鍵)。
核心邏輯504的處理器依照諸如以太網(wǎng)或SONET/SDH之類的相關(guān)聯(lián)網(wǎng)協(xié)議,可以對(duì)將傳輸給網(wǎng)絡(luò)的分組或幀進(jìn)行編碼,盡管也可以支持其他協(xié)議。相似地,處理器依照諸如以太網(wǎng)或SONET/SDH之類的相關(guān)聯(lián)網(wǎng)協(xié)議,可以對(duì)從網(wǎng)絡(luò)接收的分組或幀進(jìn)行解碼,盡管也可以支持其他協(xié)議。
物理層接口506可以向網(wǎng)絡(luò)接口500提供對(duì)網(wǎng)絡(luò)的網(wǎng)絡(luò)介質(zhì)的訪問(wèn),從而支持網(wǎng)絡(luò)和網(wǎng)絡(luò)接口500之間的分組和幀的發(fā)送和接收。該網(wǎng)絡(luò)可以為諸如因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN)、存儲(chǔ)區(qū)域網(wǎng)(SAN)、廣域網(wǎng)(WAN)或無(wú)線網(wǎng)之類的任何網(wǎng)絡(luò)。該網(wǎng)絡(luò)可以依照以太網(wǎng)標(biāo)準(zhǔn)、SONET/SDH、ATM或任何通信標(biāo)準(zhǔn),與網(wǎng)絡(luò)接口500交換業(yè)務(wù)量。
網(wǎng)絡(luò)接口500可以被實(shí)現(xiàn)為以下之任一項(xiàng)或其組合使用主板的導(dǎo)線相互連接的若干個(gè)微芯片或集成電路、硬連線邏輯、存儲(chǔ)在存儲(chǔ)裝置中并由微處理器執(zhí)行的軟件、固件、專用集成電路(ASIC)和/或現(xiàn)場(chǎng)可編程門陣列(FPGA)。例如,網(wǎng)絡(luò)接口500可以被集成于主板上LAN(LAN-on-motherboard)實(shí)現(xiàn)方案中的芯片組(例如但不限于芯片組205)中;被實(shí)現(xiàn)為可以插入主板平臺(tái)中總線接口的網(wǎng)絡(luò)接口卡,其提供與計(jì)算機(jī)系統(tǒng)(例如但不限于芯片組205)的互通信;和/或使用主處理器被部分實(shí)現(xiàn)。
圖6示出了可用于本發(fā)明實(shí)施例中以控制是否允許外部裝置或程序訪問(wèn)計(jì)算機(jī)系統(tǒng)的硬件部件的核心邏輯的示例性過(guò)程。在塊602,硬件部件外部的允許規(guī)則提供者可以對(duì)保護(hù)規(guī)則進(jìn)行編程,硬件部件應(yīng)用所述保護(hù)規(guī)則以傳輸或不傳輸要求對(duì)硬件部件的核心邏輯進(jìn)行訪問(wèn)的請(qǐng)求。例如,可以允許遠(yuǎn)程服務(wù)器或主系統(tǒng)中的置信源對(duì)保護(hù)規(guī)則進(jìn)行編程。塊602可以應(yīng)用參照保護(hù)規(guī)則裝置320所述的規(guī)則相似的規(guī)則,盡管也可以應(yīng)用其他規(guī)則。
在塊604,硬件部件可以接收要求訪問(wèn)硬件部件的外部請(qǐng)求。例如,訪問(wèn)硬件部件的請(qǐng)求可以包括從硬件部件核心邏輯讀取信息、向硬件部件核心邏輯寫入信息、或以其它方式指示硬件部件核心邏輯的請(qǐng)求。結(jié)合圖3描述硬件部件核心邏輯的一個(gè)可能的示例為硬件核心邏輯315,但也可以使用其他可能的硬件部件核心邏輯的實(shí)現(xiàn)方案。
在塊606,硬件部件的過(guò)濾裝置可以確定是否傳輸請(qǐng)求給硬件部件核心邏輯。例如,過(guò)濾裝置可以基于塊602中編程的規(guī)則,確定傳輸請(qǐng)求。如果硬件部件確定要傳輸該請(qǐng)求,則從塊606轉(zhuǎn)到塊608。如果硬件部件確定不傳輸該請(qǐng)求,則從塊606轉(zhuǎn)到塊610。
在塊608,硬件部件裝置的核心邏輯可以遵從于外部請(qǐng)求。在塊610,過(guò)濾裝置可以不傳輸請(qǐng)求給核心邏輯。例如,過(guò)濾裝置可以忽略該請(qǐng)求或發(fā)出預(yù)定的虛響應(yīng),這取決于響應(yīng)請(qǐng)求的應(yīng)用規(guī)則(例如,響應(yīng)時(shí)間或由于無(wú)響應(yīng)的誤差導(dǎo)出)。例如,對(duì)不允許的讀請(qǐng)求的一個(gè)可能的響應(yīng)是提供預(yù)定的數(shù)據(jù)而不是實(shí)際數(shù)據(jù)。例如,如果不允許的訪問(wèn)嘗試讀取保存數(shù)據(jù)值為0x10101010的特定寄存器,則在塊610,響應(yīng)于不允許的訪問(wèn)嘗試,預(yù)定的響應(yīng)值為0x00000000。
變型附圖和以上描述給出了本發(fā)明的示例。盡管是以許多不同的功能項(xiàng)來(lái)加以描述的,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,可以將這樣的元件中的一個(gè)或多個(gè)組合成單獨(dú)的功能實(shí)體?;蛘?,某些元件可以被分割成多個(gè)功能元件。但是,本發(fā)明的范圍絕不限于這些具體示例。無(wú)論是否在本說(shuō)明書中明確給出,諸如結(jié)構(gòu)、尺寸和所用材料不同之類的各種變化都是可能的。本發(fā)明的范圍由所附權(quán)利要求書給出。
權(quán)利要求
1.一種方法,包括在硬件部件上,存儲(chǔ)若干個(gè)訪問(wèn)規(guī)則;以及在所述硬件部件上,基于所述訪問(wèn)規(guī)則,選擇性地過(guò)濾要求訪問(wèn)所述硬件部件的核心邏輯的請(qǐng)求。
2.如權(quán)利要求1所述的方法,其中所述存儲(chǔ)訪問(wèn)規(guī)則包括從外部源接收若干個(gè)訪問(wèn)規(guī)則。
3.如權(quán)利要求1所述的方法,其中所述硬件部件包括存儲(chǔ)器,以及其中所述規(guī)則包括限制訪問(wèn)所述存儲(chǔ)器的特定內(nèi)容的規(guī)則。
4.如權(quán)利要求1所述的方法,其中所述硬件部件包括提供與網(wǎng)絡(luò)進(jìn)行互通信的功能,所述硬件部件存儲(chǔ)用于所述提供與所述網(wǎng)絡(luò)進(jìn)行互通信的功能的配置和狀態(tài)寄存器,以及在所述硬件部件和所述網(wǎng)絡(luò)中的節(jié)點(diǎn)之間的通信鏈路建立后,所述規(guī)則限制對(duì)配置和狀態(tài)寄存器的修改。
5.如權(quán)利要求1所述的方法,其中所述硬件部件包括提供與網(wǎng)絡(luò)進(jìn)行互通信的功能,以及作為與主計(jì)算機(jī)的接口的功能,以及所述規(guī)則允許所述主計(jì)算機(jī)使用所述硬件部件用于存儲(chǔ)的接口,在指定階段期間傳輸所述主計(jì)算機(jī)的資源信息和引導(dǎo)記錄。
6.如權(quán)利要求1所述的方法,其中所述硬件部件存儲(chǔ)配置和狀態(tài)寄存器,以及所述規(guī)則包括限制對(duì)配置和狀態(tài)寄存器的指定部分的修改。
7.如權(quán)利要求1所述的方法,其中所述選擇性地過(guò)濾請(qǐng)求包括向不允許讀請(qǐng)求提供預(yù)定響應(yīng)。
8.如權(quán)利要求1所述的方法,其中所述選擇性地過(guò)濾請(qǐng)求包括不向所述硬件部件的核心邏輯傳輸不允許寫請(qǐng)求。
9.一種設(shè)備,包括硬件部件,包括I/O裝置;核心邏輯;保護(hù)規(guī)則裝置,用于存儲(chǔ)訪問(wèn)規(guī)則;以及過(guò)濾裝置,所述過(guò)濾裝置響應(yīng)于從所述I/O裝置傳輸?shù)脑L問(wèn)請(qǐng)求,部分基于所述訪問(wèn)規(guī)則,選擇性地過(guò)濾要求訪問(wèn)所述核心邏輯的請(qǐng)求。
10.如權(quán)利要求9所述的設(shè)備,其中存儲(chǔ)訪問(wèn)規(guī)則的所述保護(hù)規(guī)則裝置從所述硬件部件外部的源接收訪問(wèn)規(guī)則。
11.如權(quán)利要求9所述的設(shè)備,其中所述核心邏輯包括存儲(chǔ)裝置,以及其中所述規(guī)則包括限制訪問(wèn)所述存儲(chǔ)裝置的指定內(nèi)容。
12.如權(quán)利要求9所述的設(shè)備,其中所述核心邏輯包括存儲(chǔ)器,所述核心邏輯包括提供與網(wǎng)絡(luò)進(jìn)行互通信的功能,所述存儲(chǔ)器存儲(chǔ)用于所述提供與所述網(wǎng)絡(luò)進(jìn)行互通信的功能的配置和狀態(tài)寄存器,以及在所述硬件部件和所述網(wǎng)絡(luò)中的節(jié)點(diǎn)之間的通信鏈路建立后,所述規(guī)則限制對(duì)配置和狀態(tài)寄存器的修改。
13.如權(quán)利要求9所述的設(shè)備,其中所述核心邏輯包括存儲(chǔ)器,所述核心邏輯包括提供與網(wǎng)絡(luò)進(jìn)行互通信的功能,以及作為與主計(jì)算機(jī)的接口的功能,以及所述規(guī)則允許所述主計(jì)算機(jī)使用所述接口,在指定階段期間傳輸所述主計(jì)算機(jī)的資源信息和引導(dǎo)記錄,供所述存儲(chǔ)器存儲(chǔ)。
14.如權(quán)利要求9所述的設(shè)備,其中所述核心邏輯包括存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)若干個(gè)配置和狀態(tài)寄存器,以及所述規(guī)則限制對(duì)配置和狀態(tài)寄存器的指定部分的修改。
15.如權(quán)利要求9所述的設(shè)備,其中所述過(guò)濾裝置提供對(duì)不允許讀請(qǐng)求的預(yù)定響應(yīng)。
16.如權(quán)利要求9所述的設(shè)備,其中所述過(guò)濾裝置不向所述核心邏輯傳輸不允許寫請(qǐng)求。
17.一種方法,包括在網(wǎng)絡(luò)接口上通過(guò)網(wǎng)絡(luò)從管理控制臺(tái)接收關(guān)于與主系統(tǒng)相關(guān)的信息的請(qǐng)求,其中所述網(wǎng)絡(luò)接口能夠與所述主系統(tǒng)進(jìn)行互通信;在所述網(wǎng)絡(luò)接口上,存儲(chǔ)訪問(wèn)規(guī)則,其中所述訪問(wèn)規(guī)則控制所述網(wǎng)絡(luò)接口傳輸來(lái)自所述主系統(tǒng)的請(qǐng)求以訪問(wèn)所述網(wǎng)絡(luò)接口的核心邏輯的范圍;在所述網(wǎng)絡(luò)接口上,基于所述訪問(wèn)規(guī)則選擇性地過(guò)濾要求訪問(wèn)所述核心邏輯的請(qǐng)求;在所述網(wǎng)絡(luò)接口上,在所述核心邏輯中存儲(chǔ)與所述主系統(tǒng)相關(guān)的信息,其中所述訪問(wèn)規(guī)則在指定階段期間允許在所述核心邏輯中存儲(chǔ)與所述主系統(tǒng)相關(guān)的信息;以及通過(guò)所述網(wǎng)絡(luò),將所述信息傳輸給所述管理控制臺(tái)。
18.如權(quán)利要求17所述的方法,其中所述管理控制臺(tái)包括計(jì)算機(jī),該計(jì)算機(jī)向用戶提供查看至少一個(gè)被管理的客戶機(jī)裝置的信息的功能,其中至少一個(gè)被管理的客戶機(jī)裝置包括所述主系統(tǒng)。
19.如權(quán)利要求17所述的方法,其中所述信息包括所述主計(jì)算機(jī)的資源信息。
20.如權(quán)利要求17所述的方法,其中所述信息包括所述主計(jì)算機(jī)的引導(dǎo)記錄。
21.一種系統(tǒng),包括網(wǎng)絡(luò)接口,所述網(wǎng)絡(luò)接口能夠提供網(wǎng)絡(luò)和主系統(tǒng)之間的互通信,包括I/O裝置,核心邏輯,存儲(chǔ)訪問(wèn)規(guī)則的保護(hù)規(guī)則裝置,以及過(guò)濾裝置,所述過(guò)濾裝置響應(yīng)于從所述I/O裝置傳輸?shù)脑L問(wèn)請(qǐng)求,部分基于所述訪問(wèn)規(guī)則,選擇性地過(guò)濾要求訪問(wèn)所述核心邏輯的請(qǐng)求;以及總線接口,所述總線接口允許所述主系統(tǒng)和所述網(wǎng)絡(luò)接口之間的互通信。
22.如權(quán)利要求21所述的系統(tǒng),其中所述總線接口遵從于PCI。
23.如權(quán)利要求21所述的系統(tǒng),其中所述總線接口遵從于PCIexpress。
24.一種系統(tǒng),包括至少一個(gè)被管理的客戶機(jī)裝置,其中所述被管理的客戶機(jī)裝置包括I/O裝置,核心邏輯,存儲(chǔ)訪問(wèn)規(guī)則的保護(hù)規(guī)則裝置,以及過(guò)濾裝置,所述過(guò)濾裝置響應(yīng)于從所述I/O裝置傳輸?shù)脑L問(wèn)請(qǐng)求,部分基于所述訪問(wèn)規(guī)則,選擇性地過(guò)濾要求訪問(wèn)所述核心邏輯的請(qǐng)求;以及管理控制臺(tái),所述管理控制臺(tái)使用網(wǎng)絡(luò)與所述至少一個(gè)被管理的客戶機(jī)裝置進(jìn)行通信。
25.如權(quán)利要求24所述的系統(tǒng),其中在所述訪問(wèn)規(guī)則指定的階段,所述過(guò)濾裝置將主系統(tǒng)的存儲(chǔ)信息傳輸給所述存儲(chǔ)裝置。
26.如權(quán)利要求25所述的系統(tǒng),其中所述信息包括主系統(tǒng)的資源信息。
27.如權(quán)利要求25所述的系統(tǒng),其中所述信息包括主系統(tǒng)的引導(dǎo)記錄。
全文摘要
本發(fā)明涉及通過(guò)外部裝置或外部軟件程序限制訪問(wèn)硬件部件裝置的技術(shù)。過(guò)濾裝置可以用于基于訪問(wèn)規(guī)則過(guò)濾要求訪問(wèn)硬件部件裝置的核心邏輯的請(qǐng)求。訪問(wèn)規(guī)則基于硬件部件裝置的階段、所請(qǐng)求的核心邏輯的操作或核心邏輯的目標(biāo)區(qū)域,可以限制訪問(wèn)核心邏輯。
文檔編號(hào)H04L29/06GK101080722SQ200580043321
公開日2007年11月28日 申請(qǐng)日期2005年12月15日 優(yōu)先權(quán)日2004年12月16日
發(fā)明者M·馬奧爾 申請(qǐng)人:英特爾公司