專利名稱::多處理器系統(tǒng)中的單元兼容性的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及多處理器系統(tǒng)中的單元兼容性(cellcompatibility)。
背景技術(shù):
:高性能計(jì)算機(jī)系統(tǒng)可以利用多個(gè)處理器來增強(qiáng)處理能力。處理的工作量可以在處理器之間進(jìn)行劃分和分配,由此減少執(zhí)行時(shí)間并提高性能。高性能多處理器系統(tǒng)的一種體系結(jié)構(gòu)模型是高速緩沖存儲器相關(guān)的非一致性存儲訪問(ccNUMA)沖莫型。在ccNUMA模型下,諸如處理器和隨機(jī)訪問存儲器的系統(tǒng)資源可以被分割為稱作位置域(localitydomain)的組,所述組也稱作"節(jié)點(diǎn)"或"單元(cell),,。每個(gè)節(jié)點(diǎn)可以包括一個(gè)或多個(gè)處理器和物理存儲器。節(jié)點(diǎn)中的處理器可以訪問其節(jié)點(diǎn)中的存儲器(這種存儲器有時(shí)稱為本地存儲器)以及其他節(jié)點(diǎn)中的存儲器(這種存儲器有時(shí)稱為遠(yuǎn)程存儲器)。多處理器計(jì)算機(jī)系統(tǒng)可以劃分成許多元件或單元。每個(gè)單元包括至少一個(gè)處理器,更一般地,包括多個(gè)處理器。如果希望,劃分的計(jì)算機(jī)系統(tǒng)中的各個(gè)單元可以運(yùn)行不同的操作系統(tǒng)。典型地,每個(gè)劃分(partition)運(yùn)行單一的操作系統(tǒng)。許多計(jì)算機(jī)系統(tǒng)提供從計(jì)算機(jī)系統(tǒng)移除或彈出硬件設(shè)備的能力。例如,一些計(jì)算機(jī)系統(tǒng)實(shí)施高級配置與電源接口(ACPI),這提供了一種當(dāng)操作系統(tǒng)正在運(yùn)行時(shí)從操作系統(tǒng)移除硬件資源的方法。這有時(shí)被稱為"熱,,移除。在實(shí)施ACPI的系統(tǒng)中,系統(tǒng)固件可以跟蹤(track)哪些設(shè)備是可移除的,并保留與這些設(shè)備有關(guān)的狀態(tài)信息。在一些情況下,在多處理器計(jì)算機(jī)系統(tǒng)中將一個(gè)或多個(gè)資源從一個(gè)劃分移到另一個(gè)劃分可能是有用的。例如,大部分計(jì)算機(jī)系統(tǒng)具有多個(gè)存儲器設(shè)備,從高速緩沖存儲器到包括隨機(jī)存取存儲器(RAM)設(shè)備(例如,動(dòng)態(tài)RAM或靜態(tài)RAM設(shè)備)以及其他類型的存儲器的主存儲器設(shè)備,所述其他類型的存儲器例如只讀存儲器(ROM)設(shè)備或外部存儲器設(shè)備。在一些計(jì)算機(jī)系統(tǒng)中,不僅專用設(shè)備,而且各種硬件設(shè)備內(nèi)的存儲器部分或位置都可能是可劃分和可分配的。還例如,大部分的計(jì)算機(jī)系統(tǒng)具有一個(gè)或多個(gè)處理設(shè)備(例如,中央處理器(CPU),比如微處理器),并且這些設(shè)備的處理能力可以分配給不同的進(jìn)程(process)。在一些計(jì)算機(jī)系統(tǒng)中,把資源分配給這種常規(guī)計(jì)算機(jī)系統(tǒng)的多個(gè)進(jìn)程是嚴(yán)格固定的,或者是當(dāng)建立計(jì)算機(jī)系統(tǒng)時(shí)永久地分配或是當(dāng)該計(jì)算機(jī)系統(tǒng)被啟動(dòng)或重啟時(shí)分配。因?yàn)樵谶M(jìn)程的運(yùn)行期間所述進(jìn)程的需求可能隨時(shí)間變化,所以這種嚴(yán)格的資源分配可能是不希望的。
發(fā)明內(nèi)容提供了一種多處理器計(jì)算機(jī)系統(tǒng),其包括至少第一劃分,該第一劃分具有第一操作系統(tǒng),該第一操作系統(tǒng)包括第一劃分中的邏輯,用于發(fā)起向第一劃分添加第一單元的請求,打開第一操作系統(tǒng)和第一單元上的固件模塊之間的通信接口以及將兼容性命令從第一劃分傳輸?shù)降谝粏卧?;該多處理器?jì)算機(jī)系統(tǒng)還包括第一單元中的邏輯,用于確定笫一單元是否與第一劃分兼容;以及第一劃分中的邏輯,用于響應(yīng)于第一單元與第一劃分兼容的確定添加第一單元到第一劃分。圖1A、1B和1C是根據(jù)實(shí)施例的多處理器計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例的示意性說明。圖1D是根據(jù)一些實(shí)施例的單元的框圖,該單元例如在圖1B中描繪的單元。圖2是計(jì)算機(jī)系統(tǒng)的實(shí)施例的示意性說明,該計(jì)算機(jī)系統(tǒng)可以用于實(shí)現(xiàn)如圖1A-1D中描繪的多處理器系統(tǒng)。圖3是示出根據(jù)一些實(shí)施例的在多處理器計(jì)算機(jī)系統(tǒng)中分配/再分配資源的方法中的操作的流程圖。具體實(shí)施例方式這里描述的是多處理器計(jì)算機(jī)系統(tǒng)的實(shí)例以及在多處理器系統(tǒng)中管理單元兼容性的技術(shù)的實(shí)例。在一些實(shí)施方式中,這里描述的方法可以實(shí)施為計(jì)算機(jī)可讀介質(zhì)上的邏輯指令。當(dāng)所迷邏輯指令在處理器上執(zhí)行時(shí),該指令導(dǎo)致通用計(jì)算設(shè)備被編程為實(shí)施所述方法的專用機(jī)器。當(dāng)所述處理器被所述邏輯指令配置成執(zhí)行這里記載的方法時(shí),該處理器構(gòu)成用于執(zhí)行所描述的方法的結(jié)構(gòu)。參考圖1A、1B和1C,可劃分的計(jì)算機(jī)系統(tǒng)100可以包括許多元件或單元104。在圖1A中,只給出兩個(gè)單元104A和104B。然而,多于兩個(gè)的單元104可以創(chuàng)建所述可劃分的計(jì)算機(jī)系統(tǒng)100。例如,圖1B描繪了具有四個(gè)單元104A、104B、104C和104D的可劃分的計(jì)算機(jī)系統(tǒng)100'。在圖1C中,16個(gè)單元104A、104B、104C、104D、104E、......104P創(chuàng)建了可劃分的計(jì)算機(jī)系統(tǒng)100〃。每個(gè)單元104可以與相應(yīng)的輸入輸出模塊108通信,該輸入輸出模塊108用于向系統(tǒng)IOO提供輸入并提供來自系統(tǒng)100的輸出。在例如分別在圖1B和1C中示出的系統(tǒng)100'和100〃的具有多于兩個(gè)單元104的可劃分計(jì)算機(jī)系統(tǒng)中,單元104相互之間可以通過路由設(shè)備112進(jìn)行通信。所述路由設(shè)備可以是能夠路由數(shù)據(jù)包的交叉開關(guān)(crossbarswitch)或其他相似設(shè)備。例如,可以使用MountainView,Calif的SGI出售的NUMAflex8-端口路由器互連才莫塊。路由設(shè)備112便于數(shù)據(jù)包從源地址到目標(biāo)地址的傳輸。例如,如果單元104A發(fā)送數(shù)據(jù)包至單元104D,則單元104A發(fā)送數(shù)據(jù)包至路由設(shè)備in,路由設(shè)備112又將該數(shù)據(jù)包傳輸至單元104D。在例如圖1C中所示系統(tǒng)100〃的更大的可劃分計(jì)算機(jī)系統(tǒng)中,可以有多于一個(gè)的路由設(shè)備112。例如,可以有四個(gè)路由設(shè)備112A、112B、112C和112D。路由i殳備112可以統(tǒng)稱為開關(guān)結(jié)構(gòu)(switchfabric)。路由設(shè)備112可以相互通信以及與許多單元104通信。例如,單元104A、單元104B、單元104C和單元104D可以直接與路由設(shè)備1UA通信。單元104E、單元104F、單元104G和單元104H可以直接與路由設(shè)備112B通信。單元1041、單元104J、單元104K和單元104L可以直接與路由設(shè)備112C通信。單元104M、單元104N、單元1040和單元104P可以直接與路由設(shè)備112D通信。在這樣的配置中,每個(gè)路由設(shè)備112以及路由設(shè)備112與之直接通信的單元104可以視為一個(gè)劃分116。如所示的,在圖1C中存在四個(gè)劃分116A、116B、116C和116D。如圖所示,每個(gè)劃分包括四個(gè)單元,然而,可以使用任何數(shù)量的單元和單元的組合來創(chuàng)建劃分。例如,劃分116A和116B可以組合以形成具有v乂個(gè)單元的一個(gè)劃分。在一個(gè)實(shí)施例中,每個(gè)單元104是劃分116。如圖1A中所示,單元104可以是劃分116A,單元104B可以是劃分116B。盡管圖1C中描繪的實(shí)施例具有四個(gè)單元,但是其他的實(shí)施例可以具有更多或更少的單元。每個(gè)劃分可以專用于完成特定的計(jì)算功能。例如,劃分116A可以通過用作web服務(wù)器群(webserverfarm)來專門提供網(wǎng)頁,劃分116B可以配置成提供診斷能力。另外,劃分可以專用于維護(hù)數(shù)據(jù)庫。在一個(gè)實(shí)施例中,商業(yè)數(shù)椐中心可以具有三層劃分,即接入層(例如,web群),應(yīng)用層(即,獲取web請求并將它們轉(zhuǎn)換成數(shù)椐庫查詢并且響應(yīng)所述web請求的層)和跟蹤各種動(dòng)作和項(xiàng)目(item)的數(shù)據(jù)庫層。參考圖1D,每個(gè)單元104包括邏輯設(shè)備120,多個(gè)存儲緩沖器124A、124B、124C、124D(—般稱為存儲緩沖器124),多個(gè)中央處理器(CPU)128A、128B、128C、128D(—般稱為CPU128),狀態(tài)才幾132,以及防火墻134。術(shù)語CPU并不打算限于微處理器,相反,其旨在用于指代具有處理能力的任何設(shè)備。存儲緩沖器124、CPU128和狀態(tài)機(jī)132每一個(gè)都與邏輯設(shè)備120通信。當(dāng)單元104與交叉開關(guān)(crossbar)112通信時(shí),邏輯設(shè)備120也與交叉開關(guān)112通信。邏輯設(shè)備120也與1/0子系統(tǒng)108通信。邏輯設(shè)備120可以是任何種類的處理器,例如包括常規(guī)處理器、現(xiàn)場可編程門陣列(FPGA)。邏輯設(shè)備120在本說明書通篇中也稱作單元控制器120。邏輯設(shè)備120包括用于在狀態(tài)機(jī)132、CPU128、存儲緩沖器124、路由設(shè)備112和1/0子系統(tǒng)108之間路由信號的通信總線(未示出)。單元控制器120也執(zhí)行邏輯操作,例如將主存儲器請求映射到存儲器DI固請求以訪問和返回?cái)?shù)據(jù)并為主存儲器請求執(zhí)行高速緩沖存儲器相關(guān)功能,使得CPU和I/O高速緩沖存儲器總是一致的并'《不陳舊(stale)。在一個(gè)實(shí)施例中,1/0子系統(tǒng)108包括總線適配器136和多個(gè)主橋140??偩€適配器136通過多個(gè)通信鏈路144與主橋140通信。每個(gè)鏈路144將一個(gè)主橋140連接到總線適配器136。舉例而言,總線適配器136可以是外圍部件互連(PCI)總線適配器。I/O子系統(tǒng)可以包括16個(gè)主橋140A、140B、140C,......140P以及16個(gè)通信鏈路144A、144B、144C,......,144P。如圖所示,單元104包括四個(gè)CPU128,然而,每個(gè)單元包括各種數(shù)量的處理單元128。在一個(gè)實(shí)施例中,CPU是基于ITANIUM的CPU,其由SantaClara,Calif.的Intel制造??蛇xi也,可以j吏用SUN^>司的UltraSparc處理器,IBM/>司的power處理器,Intel7〉司的Pentium處理器或其他處理器。存儲緩沖器124與八個(gè)同步動(dòng)態(tài)隨機(jī)存取存儲器(SDRAM)雙直列內(nèi)存模塊(DIMM)144通信,不過可以使用其他類型的存儲器。盡管作為特定的配置示出,但是單元104不限于這樣的配置。例如,1/O子系統(tǒng)108可以與路由設(shè)備112通信。類似地,DIMM才莫塊144可以與路由設(shè)備112通信。圖1D部件的配置并不打算以任何方式受提供的描述的限制。圖2是計(jì)算機(jī)系統(tǒng)200的實(shí)施例的示意性說明,該計(jì)算機(jī)系統(tǒng)200可以用于實(shí)施如圖1A-1D中描繪的多處理器系統(tǒng)。計(jì)算機(jī)系統(tǒng)200包括計(jì)算機(jī)208,并且可以包括一個(gè)或多個(gè)附隨的輸入/輸出設(shè)備206,輸入/輸出設(shè)備206包括具有屏幕204的顯示器202,鍵盤210,—個(gè)(或多個(gè))其他I/O設(shè)備212,以及鼠標(biāo)214。所迷一個(gè)(或多個(gè))其他設(shè)備212可以包括觸摸屏,聲音激活的輸入設(shè)備,跟蹤球,以及允許系統(tǒng)200從開發(fā)者和/或用戶接收輸入的任何其他設(shè)備。計(jì)算機(jī)208包括系統(tǒng)硬件220和隨機(jī)存取存儲器和/或只讀存儲器230。文件存儲器(filestore)280通信地連接至計(jì)算機(jī)208,文件存儲器280可以是內(nèi)部的,例如一個(gè)或多個(gè)硬盤驅(qū)動(dòng)器,或者是外部的,例如一個(gè)或多個(gè)外部硬盤驅(qū)動(dòng)器,網(wǎng)絡(luò)附連存儲,或者單獨(dú)的存儲網(wǎng)絡(luò)。計(jì)算機(jī)系統(tǒng)200包括一個(gè)或多個(gè)操作系統(tǒng)240。在運(yùn)行中,在計(jì)算機(jī)208上執(zhí)行的一個(gè)或多個(gè)應(yīng)用才莫塊262和/或庫264調(diào)用(makecal1sto)操作系統(tǒng)240以在計(jì)算機(jī)的處理器上執(zhí)行一個(gè)或多個(gè)命令。操作系統(tǒng)240又調(diào)用系統(tǒng)硬件220的服務(wù)以執(zhí)行所述一個(gè)(或多個(gè))命令。通??梢詫⒉僮飨到y(tǒng)內(nèi)核242當(dāng)作負(fù)責(zé)執(zhí)行許多操作系統(tǒng)功能的一個(gè)或多個(gè)軟件模塊。如上面提到的,在劃分的計(jì)算機(jī)系統(tǒng)中,每個(gè)劃分可以運(yùn)行單獨(dú)的操作系統(tǒng)240。一個(gè)(或多個(gè))操作系統(tǒng)240的特定實(shí)施例對于這里描述的主題不是至關(guān)重要的。操作系統(tǒng)240可以實(shí)施成UNIX操作系統(tǒng)或它的任意派生系統(tǒng)(例如,Linux,Solaris,HPUX等),或者實(shí)施成Windows系列的操作系統(tǒng)。計(jì)算機(jī)系統(tǒng)200還包括便于ACPI管理功能的許多部件。盡管本主題是參考ACPI表管理,但是不打算將權(quán)利要求書限制于ACPI配置系統(tǒng)。相反,這里描述的主題可以與任何操作系統(tǒng),體系結(jié)構(gòu),和/或配置管理系統(tǒng)一起操作并提供益處。在一個(gè)實(shí)施例中,內(nèi)核242與操作系統(tǒng)電源管理(0SPM)系統(tǒng)代碼244接口。所述0SPM系統(tǒng)代碼244包括一個(gè)或多個(gè)軟件才莫塊,該軟件才莫塊可以是操作系統(tǒng)205的一部分并可以用于修改計(jì)算機(jī)系統(tǒng)200的某些部件的行為,典型地用于根據(jù)預(yù)先配置的功率節(jié)省設(shè)置(powerconservationsetting)來管理功耗。各種i殳備驅(qū)動(dòng)程序246與安裝在計(jì)算機(jī)系統(tǒng)200中的硬件接口并且通??刂扑鲇布?。ACPI驅(qū)動(dòng)程序/AML解釋器248是在系統(tǒng)啟動(dòng)期間裝栽的軟件模塊,其用作操作系統(tǒng)240和ACPIBIOS254之間的接口。ACPI驅(qū)動(dòng)程序/AML解釋器248在系統(tǒng)啟動(dòng)時(shí)填充ACPI名字空間250,在運(yùn)行期間裝栽來自系統(tǒng)BIOSACPI名字空間的描述塊,處理ACPI硬件觸發(fā)的某些通用事件,以及將其他通用事件傳遞至注冊成處理這些事件的模塊,等等。例如在Windows2000操作系統(tǒng)中,驅(qū)動(dòng)程序通過在"驅(qū)動(dòng)程序棧"上向上和向下傳遞稱為I/O請求包(IRP)的消息來與其他驅(qū)動(dòng)程序和操作系統(tǒng)部件(例如,I/O管理器或內(nèi)核242)通信。如本領(lǐng)域技術(shù)人員理解的,特定硬件設(shè)備的驅(qū)動(dòng)程序可以"堆疊",使得向下至硬件設(shè)備或向后返回至操作系統(tǒng)(或其他程序模塊)的消息在到達(dá)它們的目的地之前,經(jīng)過驅(qū)動(dòng)程序棧中的驅(qū)動(dòng)程序鏈進(jìn)行傳遞。可以將ACPI驅(qū)動(dòng)程序248插到驅(qū)動(dòng)程序棧中以給所述硬件設(shè)備增加功能。在一個(gè)實(shí)施例中,ACPI驅(qū)動(dòng)程序248為ACPI名字空間250中描述的每個(gè)設(shè)備在驅(qū)動(dòng)程序棧中創(chuàng)建過濾器設(shè)備對象(過濾器DO)或物理設(shè)備對象(PDO)。如果所述設(shè)備能夠被另一個(gè)子系統(tǒng)(例如即插即用子系統(tǒng))的元件枚舉(enumerate),那么其他的子系統(tǒng)的這個(gè)元件可以為所述設(shè)備創(chuàng)建PDO,ACPI驅(qū)動(dòng)程序248可以將過濾器DO放在PDO之上。操作系統(tǒng)240借助于這些設(shè)備對象向所述設(shè)備棧提供電源管理特征。ACPIBIOS254是指與ACPI規(guī)范兼容的那部分系統(tǒng)固件。ACPIBIOS254管理計(jì)算系統(tǒng)200和機(jī)器的引導(dǎo)過程(boot-upprocess),并實(shí)現(xiàn)用于電源和配置操作的接口,所述配置操作例如休眠、醒來和一些重啟操作。ACPIBIOS254包含用于構(gòu)建諸如DSDT和SSDT之類的ACPI表256的定義塊(definitionblock)。盡管在圖2中BIOS258和ACPIBIOS254被圖示為單獨(dú)的部件,但是它們可以被實(shí)施為計(jì)算機(jī)系統(tǒng)200中的一個(gè)部件。在一些實(shí)施例中,ACPI表256包括根系統(tǒng)描述表(RSDT)、系統(tǒng)差異描述表(DSDT)以及一個(gè)或多個(gè)次級系統(tǒng)描述表(secondarysystemdescriptiontable)(SSDT)。如上所述,在一些情況下,可能希望對新單元的兼容性進(jìn)行管理,該新單元即給多處理器計(jì)算機(jī)系統(tǒng)中的第一劃分分配和/或再分配的資源。圖3是說明根據(jù)一些實(shí)施例的在多處理器計(jì)算機(jī)系統(tǒng)中分配/再分配資源的方法中的操作的流程圖。在一些實(shí)施例中,圖3中示出的操作可以被實(shí)施為邏輯指令,該邏輯指令獨(dú)立地或與系統(tǒng)固件組合地作為例如操作系統(tǒng)中的一部分進(jìn)程存儲在計(jì)算機(jī)可讀介質(zhì)上并在一個(gè)或多個(gè)處理器上執(zhí)行。圖3中示出的方法可以在例如圖1C中描繪的計(jì)算機(jī)系統(tǒng)100〃的多處理器計(jì)算機(jī)中實(shí)施。圖3示出了一種方法300,用于管理將一個(gè)或多個(gè)單元添加到包括至少第一劃分的多處理器計(jì)算機(jī)系統(tǒng)中的劃分。一般而言,在方法300中,第一劃分中的控制器發(fā)起向所述第一劃分添加第一單元的請求。在第一劃分上的操作系統(tǒng)和第一單元上的固件模塊之間打開通信接口。通過該通信接口將兼容性命令從所述笫一劃分傳輸至所述固件模塊。在一些實(shí)施例中,所述兼容性命令包括指向包括兼容性數(shù)據(jù)的兼容性結(jié)構(gòu)的分兼容。如果所述單元與所述劃分兼容,那么該單元可以添加到該劃分中。如果該單元不與該劃分兼容,那么可以嘗試更改該單元上的一個(gè)或多個(gè)不兼容的設(shè)置,使得該單元變得與所述第一劃分兼容。然后可以用適當(dāng)位置上的新設(shè)置重新啟動(dòng)(reboot)該單元,接著將其添加到所述劃分中。如果不能重新設(shè)置不兼容的設(shè)置,那么關(guān)閉所述單元和所述劃分之間的通信路徑,并終止添力口所述單元的室操作(roomoperation)。參考圖3,該頁左手邊的操作,即操作310到345由所述劃分中的控制器或處理器來實(shí)施,所述劃分請求添加單元,該單元在圖3中標(biāo)識為單元X。該頁右手邊的操作,即操作350到385以及400到420由該單元上的控制器或處理器實(shí)施。雖然方法300中描述的某些操作要求所述劃分和所述單元之間的協(xié)作,但是其中的許多操作不要求協(xié)作并且可以獨(dú)立》也執(zhí)行。在操作310,在所述劃分中發(fā)起單元添加操作。例如,在一些實(shí)施例中,該劃分的用戶或?qū)嵤┰搫澐值挠?jì)算機(jī)系統(tǒng)的管理員可以在該劃分中發(fā)起單元添加操作。相反,在一些實(shí)施例中,劃分中的操作條件可以觸發(fā)該劃分發(fā)起單元添加操作。例如,如果劃分上的處理負(fù)荷超過閾值,或者如果處理延遲超過閾值,那么劃分可以自動(dòng)地發(fā)起向該劃分添加單元的操作。響應(yīng)于在操作310發(fā)起的單元添加操作,該劃分上執(zhí)行的操作系統(tǒng)可以為特定單元發(fā)起單元添加操作,所述特定單元在圖3中標(biāo)識為單元X(操作315)。在操作320,在請求劃分上執(zhí)行的操作系統(tǒng)調(diào)用系統(tǒng)固件以便于單元添加操作。例如,在一些實(shí)施例中,該操作系統(tǒng)調(diào)用ACPI以發(fā)起單元添加。ACPI借助于設(shè)備特有方法(DSM)促進(jìn)再分配,所述設(shè)備特有方法向計(jì)算機(jī)系統(tǒng)200中的設(shè)備提供設(shè)備特有控制函數(shù)(function),并響應(yīng)-DSM函數(shù)調(diào)用來執(zhí)^f亍。更具體地,可以用于為計(jì)算機(jī)系統(tǒng)200中的任何設(shè)備執(zhí)行資源分配/再分配的DSM方法是基于四個(gè)自變量完成的,即UUID(通用唯一標(biāo)識符)、修正ID、函數(shù)索引和自變量。UUID是區(qū)別可以使用所述-DSM函數(shù)調(diào)用在計(jì)算機(jī)系統(tǒng)200中的設(shè)備上執(zhí)行的各個(gè)函數(shù)的128位緩沖器。所述修正ID對于UUID是唯一的,為函數(shù)提供修正。所述函數(shù)索引是一個(gè)數(shù)字,其意義對于UUID和修正ID是唯一的。當(dāng)函數(shù)索引等于0時(shí),這表示特殊的查詢函數(shù),該查詢函數(shù)返回指定所有不同函數(shù)索引的緩沖器,計(jì)算機(jī)系統(tǒng)200為指定的UUID和修正ID支持這些不同函數(shù)索引。當(dāng)所述函數(shù)索引取非零值時(shí),便是取決于UUID和修正ID的特有函數(shù)。所述DSM方法可以放置在OS可見的任何設(shè)備級,使得還可以添加OS當(dāng)前不可見的資源。簡單地參考由所述單元實(shí)施的操作,在操作350,單元被通電并實(shí)施一個(gè)或多個(gè)硬件和/或軟件設(shè)置(setup)操作。另外,該單元可以執(zhí)行一個(gè)或多個(gè)自檢操作。在操作355,該單元進(jìn)入其中它監(jiān)控單元添加發(fā)起操作的狀態(tài)。如果沒有接收到單元添加發(fā)起操作,該單元可以保持在監(jiān)控狀態(tài)。相反,如果在所述單元中接收到在操作315和32G中由所述劃分發(fā)起的單元添加操作,那么控制便轉(zhuǎn)到操作360,打開到請求劃分的通信路徑。類似地,在操作325,該劃分打開到單元X的通信路徑。在一些實(shí)施例中,該通信路徑可以包括允許操作系統(tǒng)單獨(dú)地或與該劃分中的固件組合地與在單元X上操作的固件通信的通信接口。例如,該通信接口可以允許和與圖ID中描繪的單元控制器120關(guān)聯(lián)的兼容性固件122的通信。在所述單元打開到該劃分的通信路徑之后,該單元進(jìn)入一種狀態(tài),在該狀態(tài)中,它監(jiān)控所述通信路徑以期來自請求劃分的命令(操作365)。在操作330,該劃分向該單元發(fā)送兼容性命令。在一些實(shí)施例中,該兼容性命令包括指向由該劃分維護(hù)的兼容性數(shù)據(jù)結(jié)構(gòu)的指針。該兼容性數(shù)據(jù)結(jié)構(gòu)包括指定一個(gè)或多個(gè)特性的數(shù)據(jù),該單元必須具有所述一個(gè)或多個(gè)特性以便與該劃分兼容。例如,所述數(shù)據(jù)可以包括所述單元上固件或軟件、硬件標(biāo)識符、處理器模型、配置設(shè)置等的特定修正。在操作370,所述單元將由所述劃分維護(hù)的兼容性結(jié)構(gòu)中的兼容性數(shù)據(jù)與關(guān)于該單元在其當(dāng)前配置中的特性的相應(yīng)數(shù)據(jù)進(jìn)行比較。如果,在操作375中,所述數(shù)據(jù)指示該單元與該劃分兼容,那么控制轉(zhuǎn)到操作380,該單元繼續(xù)向該劃分添加單元的操作。另外,在操作380,該單元向該劃分發(fā)送指示兼容性測試成功的回復(fù)。在操作335,該成功響應(yīng)被輸入到該劃分中的測試。如果該單元返回成功的兼容性測試,那么控制轉(zhuǎn)到操作340,該劃分繼續(xù)向該劃分添加單元的操作。相反,如果在操作375該單元與該劃分不兼容,那么控制轉(zhuǎn)到操作385,在操作385確定該單元和該劃分之間的不兼容的一個(gè)或多個(gè)源是否可修復(fù)。如果所述不兼容性不可修復(fù),例如,如果該不兼容源于該劃分和該單元之間的硬件不匹配,那么該單元向該劃分發(fā)送指示兼容性測試失敗的回復(fù)。在操作335,該失敗響應(yīng)纟皮輸入到該劃分中的測試。如果該單元返回失敗的兼容性測試,那么控制轉(zhuǎn)到操作345,該劃分關(guān)閉到該單元的通信路徑。在一些實(shí)施例中,該劃分可以調(diào)用查錯(cuò)程序(errorroutine)(操作348)。例如,該查錯(cuò)程序可以包括給出指示器,指示所述單元添加操作在例如顯示器204的用戶接口上已經(jīng)失敗。該查錯(cuò)程序可以進(jìn)一步包括在單元兼容性數(shù)據(jù)文件中產(chǎn)生條目,該單元兼容性數(shù)據(jù)文件可以存儲在例如計(jì)算機(jī)系統(tǒng)的存儲器模塊230的存儲器模塊中。所述條目可以包括與該劃分關(guān)聯(lián)的一個(gè)或多個(gè)標(biāo)識符,與作為所述單元添加操作對象的單元關(guān)聯(lián)的一個(gè)或多個(gè)標(biāo)識符,以及指示該劃分和該單元之間的不兼容性的一個(gè)或多個(gè)源的一個(gè)或多個(gè)代碼。相反,如果在操作385該單元和該劃分之間的不兼容性的一個(gè)或多個(gè)源是可修復(fù)的,那么控制轉(zhuǎn)到操作400。例如,在一些情況下,固件或軟件修正不匹配可能是該單元和該劃分之間不兼容性的源??蛇x地,一個(gè)或多個(gè)配置設(shè)置可能是該單元和該劃分之間不兼容性的源。在操作400,改變不兼容性的一個(gè)或多個(gè)源以匹配請求單元添加的所述劃分的兼容性要求。例如,可以在該單元上實(shí)施固件修正??蛇x地,可以在該單元上重新設(shè)置一個(gè)或多個(gè)配置設(shè)置。如果所述不兼容設(shè)置的改變不成功,那么該單元向該劃分發(fā)送指示兼容性測試失敗的回復(fù)。在操作335,該失敗響應(yīng)被輸入到該劃分中的測試。如果該單元返回失敗的兼容性測試,那么控制轉(zhuǎn)到操作345,該劃分關(guān)閉到該單元的通信路徑。在一些實(shí)施例中,該劃分可以調(diào)用查錯(cuò)程序(操作348),如上所述。相反,如果在操作405所述不兼容設(shè)置的改變成功,那么在操作410重新設(shè)置該單元,并在操作415用新的設(shè)置重新啟動(dòng)該單元。在操作420,該單元向發(fā)起單元添加操作的所述劃分的操作系統(tǒng)發(fā)送中斷,指示該操作系統(tǒng)為該單元重新嘗試單元添加操作。因而,控制向后轉(zhuǎn)到操作315,用該單元中的新設(shè)置有效地重新開始所述過程。因此,方法300中描迷的操作使得劃分和單元能夠以協(xié)同的方式在實(shí)施單元添加操作之前確定該單元是否與該劃分兼容,并能夠嘗試去更正該劃分和該單元之間不兼容性的源。這里提到的術(shù)語"邏輯指令"涉及可以由執(zhí)行一個(gè)或多個(gè)邏輯操作的一個(gè)或多個(gè)機(jī)器理解的表示(expression)。例如,邏輯指令可以包括處理器編譯器可翻譯的用于在一個(gè)或多個(gè)數(shù)據(jù)對象上執(zhí)行一個(gè)或多個(gè)操作的指令。然而,這僅僅是機(jī)器可讀指令的例子,實(shí)施例并不限于這個(gè)方面。這里提到的術(shù)語"計(jì)算機(jī)可讀介質(zhì),,涉及能夠保存可以由一個(gè)或多個(gè)機(jī)器理解的表示的介質(zhì)。例如,計(jì)算機(jī)可讀介質(zhì)可以包括用于存儲計(jì)算機(jī)可讀指令或數(shù)據(jù)的一個(gè)或多個(gè)存儲設(shè)備。這種存儲設(shè)備可以包括例如光學(xué)的、磁的或半導(dǎo)體存儲介質(zhì)的存儲介質(zhì)。然而,這僅僅是計(jì)算機(jī)可讀介質(zhì)的例子,實(shí)施例并不限于這個(gè)方面。這里提到的術(shù)語"邏輯"涉及用于執(zhí)行一個(gè)或多個(gè)邏輯操作的結(jié)構(gòu)。例如,邏輯可以包括基于一個(gè)或多個(gè)輸入信號提供一個(gè)或多個(gè)輸出信號的電路。這樣的電路可以包括接收數(shù)字輸入并提供數(shù)字輸出的有限狀態(tài)機(jī),或響應(yīng)于一個(gè)或多個(gè)模擬輸入信號提供一個(gè)或多個(gè)模擬輸出信號的電路??梢杂脤S眉呻娐?ASIC)或現(xiàn)場可編程門陣列(FPGA)來提供這樣的電路。另外,邏輯可以包括存儲在與處理電路結(jié)合的存儲器中的機(jī)器可讀指令,所述處理電路執(zhí)行這種機(jī)器可讀指令。然而,這些僅僅是可以提供邏輯的結(jié)構(gòu)的例子,實(shí)施例并不限于這個(gè)方面。這里描述的實(shí)施例可以被實(shí)施為計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品可以包括機(jī)器可讀或計(jì)算機(jī)可讀介質(zhì),在其上存儲有用于編程計(jì)算機(jī)(或其他電子設(shè)備)以執(zhí)行這里討論的過程的指令。所述機(jī)器可讀介質(zhì)可以包括但不限于軟盤、硬盤、光盤、CD-R0M、磁光盤、R0M、RAM、可擦除可編程R0M(EPR0M)、電EPR0M(EEPR0M)、磁或光學(xué)卡、閃存、或其他合適類型的介質(zhì)或適用于存儲電子指令和/或數(shù)據(jù)的計(jì)算機(jī)可讀介質(zhì)。另外,這里討論的數(shù)據(jù)可以存儲在單個(gè)數(shù)據(jù)庫中、多個(gè)數(shù)據(jù)庫中或存儲在選擇表(selectform)(例如在表格中)中。說明書中提到的"一個(gè)實(shí)施例"或"實(shí)施例"是指結(jié)合實(shí)施例所描述的特定特征、結(jié)構(gòu)或特性包括在至少一個(gè)實(shí)施方式中。說明書各個(gè)地方中出現(xiàn)的短語"在一個(gè)實(shí)施例中"不一定全是指相同的實(shí)施例。權(quán)利要求1.一種多處理器計(jì)算機(jī)系統(tǒng)(100″),包括至少第一劃分(116),該第一劃分(116)具有第一操作系統(tǒng),該第一操作系統(tǒng)包括第一劃分(116)中的邏輯,用于發(fā)起向第一劃分(116)添加第一單元(104)的請求;打開第一操作系統(tǒng)和第一單元(104)上的固件模塊之間的通信接口;以及將兼容性命令從第一劃分(116)傳輸?shù)降谝粏卧?104);第一單元(104)中的邏輯,用于確定第一單元(104)是否與第一劃分(116)兼容;以及第一劃分(116)中的邏輯,用于響應(yīng)于第一單元(104)與第一劃分(116)兼容的確定添加第一單元(104)到第一劃分(116)。2.根據(jù)權(quán)利要求l所述的計(jì)算機(jī)系統(tǒng),其中所述笫一劃分(116)維護(hù)兼容性結(jié)構(gòu);以及該兼容性結(jié)構(gòu)包括用于所述單元中硬件設(shè)備或所述第一單元(104)上的固件模塊的至少一個(gè)的修正數(shù)據(jù),以及用于所迷笫一單元U04)上的設(shè)備的配置數(shù)據(jù)。3.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括笫一劃分(116)中的邏輯以利用兼容性命令傳輸指向兼容性結(jié)構(gòu)的指針。4.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括第一劃分(116)中的邏輯以響應(yīng)于所述第一單元(104)與所述第一劃分(116)不兼容的確定而拒絕所述第一單元(104)。5.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括笫一劃分(116)中的邏輯以響應(yīng)于所述第一單元(104)與所述第一劃分(116)不兼容的確定來確定所述第一單元(104)與所述第一劃分(116)之間的不兼容性是否可修復(fù);以及響應(yīng)于所述不兼容性可修復(fù)的確定,更改所述第一單元(104)上的一個(gè)或多個(gè)設(shè)置。6.根據(jù)權(quán)利要求5所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括第一單元(104)中的邏輯以使用一個(gè)或多個(gè)新的設(shè)置重新啟動(dòng)所述第一單元(104);以及將中斷從所述第一單元(104)發(fā)送到所述笫一劃分(116),其中該中斷提示所述第一操作系統(tǒng)重新嘗試添加所述第一單元(l(M)。7.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括第一劃分(116)中的邏輯以響應(yīng)于所述第一單元(104)與所述第一劃分(116)不兼容的確定來確定所述第一單元(104)與所述第一劃分(116)之間的不兼容性是否可^f奮復(fù);以及響應(yīng)于所述不兼容性不可修復(fù)的確定,關(guān)閉所述笫一劃分(116)與所述第一單元(104)之間的通信路徑。全文摘要本發(fā)明涉及多處理器系統(tǒng)中的單元兼容性。在一個(gè)實(shí)施例中,多處理器計(jì)算機(jī)系統(tǒng)(100″)包括至少第一劃分(116),第一劃分(116)具有第一操作系統(tǒng),該第一操作系統(tǒng)包括邏輯,用于發(fā)起向第一劃分(116)添加第一單元(104)的請求,打開第一操作系統(tǒng)和第一單元(104)上的固件模塊之間的通信接口,以及將兼容性命令從第一劃分(116)傳輸?shù)降谝粏卧?104);第一單元(104)中的邏輯,用于確定第一單元(104)是否與第一劃分(116)兼容;以及第一劃分(116)中的邏輯,用于響應(yīng)于第一單元(104)與第一劃分(116)兼容的確定添加第一單元(104)到第一劃分(116)。文檔編號G06F15/163GK101359320SQ20081012947公開日2009年2月4日申請日期2008年7月31日優(yōu)先權(quán)日2007年7月31日發(fā)明者N·J·休斯,S·P·哈克申請人:惠普開發(fā)有限公司