欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于確定一組健康的處理器和用來引導(dǎo)系統(tǒng)的關(guān)聯(lián)固件的系統(tǒng)和方法

文檔序號:6414288閱讀:172來源:國知局

專利名稱::用于確定一組健康的處理器和用來引導(dǎo)系統(tǒng)的關(guān)聯(lián)固件的系統(tǒng)和方法
技術(shù)領(lǐng)域
:本發(fā)明一般地涉及微處理器系統(tǒng),更具體地說涉及能夠利用現(xiàn)場可升級固件進(jìn)行多處理器操作的微處理器系統(tǒng)。
背景技術(shù)
:微處理器系統(tǒng)內(nèi)的處理器可能會依賴于固件來執(zhí)行重置事件后的自檢和啟動操作。在多處理器系統(tǒng)中,即使是同一通用處理器系列中的處理器,由于處理器速度、步進(jìn)版本級別(steppinglevel)、某種體系結(jié)構(gòu)性的修改版本(revision)以及其他許多參數(shù),也會彼此不同。因此,固件可能包含若干模塊,這些模塊對于一個通用處理器系列內(nèi)的一組處理器是專用的。另外,可能由于一些原因需要對這些固件模塊進(jìn)行現(xiàn)場升級。閃存或其他現(xiàn)場可升級存儲器最初可包含初始固件模塊,在以后的日期可用更新的固件模塊對這些模塊進(jìn)行重寫。然而,由于可對閃存模塊進(jìn)行寫,因此它可能會被破壞。控制對固件進(jìn)行更新的那個固件自身也可能會被破壞,因而不能對系統(tǒng)進(jìn)行現(xiàn)場恢復(fù)。在此情形下,可能需要將系統(tǒng)返回給制造商,以將該閃存用包含未被破壞的固件的新閃存模塊進(jìn)行物理替換。在附圖中以實(shí)施例而非限制性的方式示出了本發(fā)明,其中相同的標(biāo)號表示相同的元件圖1是根據(jù)一個實(shí)施方案的系統(tǒng)硬件組件的示意圖。圖2根據(jù)一個實(shí)施方案示出了存儲器中的軟件組件。圖3是根據(jù)本發(fā)明的一個實(shí)施方案的組件間消息傳遞圖。圖4的流程圖根據(jù)本發(fā)明的一個實(shí)施方案,示出了本地處理器健康狀況的導(dǎo)出。圖5的流程圖根據(jù)本發(fā)明的一個實(shí)施方案,示出了健康處理器的選擇和初始化。具體實(shí)施例方式下面的描述說明了用于在多處理器系統(tǒng)中選擇并初始化處理器的技術(shù)。在下面的描述中,給出了大量的具體細(xì)節(jié),例如邏輯實(shí)現(xiàn)方式、軟件模塊分配、總線信令技術(shù)以及操作細(xì)節(jié),以更透徹地理解本發(fā)明。然而,本領(lǐng)域的普通技術(shù)人員將會認(rèn)識到,沒有這些具體細(xì)節(jié)也可以實(shí)施本發(fā)明。在其他情形下,沒有詳細(xì)示出一些控制結(jié)構(gòu)、門級電路和完整的軟件指令序列,以免混淆本發(fā)明。利用在此包含的描述,本領(lǐng)域的普通技術(shù)人員將能實(shí)現(xiàn)合適的功能而無需過多的試驗(yàn)。本發(fā)明是以微處理器系統(tǒng)內(nèi)的硬件的形式公開的。然而,本發(fā)明也可以其他形式的處理器來實(shí)施,例如數(shù)字信號處理器、微計算機(jī)或大型計算機(jī)。類似地,本發(fā)明是使用處理器間中斷作為處理器間的信令傳送方法而進(jìn)行公開的。然而,本發(fā)明也可使用其他形式的信令傳送來實(shí)施。在一個實(shí)施方案中,每個處理器檢查它自己的操作所需的固件模塊,從而開始多處理器中健康處理器的選擇和初始化。然后,每個處理器確定它自己的處理器健康狀態(tài)。然后,一種確定性方法選擇一個臨時主處理器,該臨時主處理器收集所述處理器的所有健康狀態(tài),并確定這樣一組處理器,其中的所有處理器都具有最高的可用處理器健康狀態(tài)。臨時主處理器然后使能(enable)這一組中的處理器以繼續(xù)引導(dǎo)操作,并對不是這一組的成員的處理器的執(zhí)行進(jìn)行停機(jī)或禁用它們(必要時,包括臨時主處理器自己)?,F(xiàn)在參考圖1,根據(jù)一個實(shí)施方案,示出了系統(tǒng)硬件組件的示意圖。示出了若干處理器,即中央處理單元CPUA110、CPUB114、CPUC118和CPUD122。在其他實(shí)施方案中,可能只有一個處理器,或者有一對處理器或多于4個的處理器。在一個實(shí)施方案中,所述處理器可以與IntelItaniumTM處理器系列。諸如CPUA110、CPUB114、CPUC118和CPUD122等的處理器可分別包括一個或更多中斷請求寄存器(IRR),例如所示出的IRR112、116、120和124。發(fā)送到處理器例如CPUA110的典型中斷可向IRR112寫一個值,其中IRR112可包含一個向量,一般地描述了對該中斷進(jìn)行服務(wù)所需的存儲器位置。CPUA110可使能或禁用中斷服務(wù)。當(dāng)禁用中斷服務(wù)時,IRR112可以仍然接收所述向量,但CPUA110可能不會自動對該中斷進(jìn)行服務(wù)。然而,CPUA110可以仍然讀包含在IRR112中的向量。以這種方式對被禁用的中斷服務(wù)進(jìn)行操作經(jīng)常被稱為“輪詢模式”。另外,每個處理器都包含稱為LID的唯一ID。LID用作為該處理器在系統(tǒng)總線上的唯一地址。中斷可具體地指向具有已知LID的處理器。LID值可存儲在LID寄存器中,例如CPUA110、CPUB114、CPUC118和CPUD122各自的LID寄存器102、104、106和108。在其他實(shí)施方案中,LID值可存儲在寄存器之外的其他電路元件中。處理器CPUA110、CPUB114、CPUC118和CPUD122可通過系統(tǒng)總線130彼此連接,并與芯片組134相連。經(jīng)由系統(tǒng)總線130和芯片組134的連接使得處理器可訪問系統(tǒng)隨機(jī)訪問存儲器(RAM)136、基本輸入輸出系統(tǒng)(BIOS)閃存138以及各種輸入/輸出(I/O)設(shè)備,例如圖形控制器140和各種程序存儲設(shè)備。這些程序存儲設(shè)備可包括系統(tǒng)固定盤144和用于可拆卸介質(zhì)146的驅(qū)動器。在各種實(shí)施方案中,用于可拆卸介質(zhì)146的驅(qū)動器可以是磁帶、可拆卸磁盤、軟盤、電光盤或壓縮盤-只讀存儲器(CD-ROM)或數(shù)字多功能盤-只讀存儲器(DVD-ROM)之類的光盤。I/O設(shè)備可以通過專用接口(例如高級圖象端口(AGP)142)或通用接口連接到芯片組134,所述通用接口例如外圍部件互連(PCI)總線(未示出)、通用串行總線(USB)(未示出)或集成驅(qū)動電子設(shè)備(IDE)總線148。其他的I/O設(shè)備可包括到局域網(wǎng)(LAN)150或廣域網(wǎng)(WAN)152的連接。在其他實(shí)施方案中,可使用許多其他接口。計算機(jī)系統(tǒng)100可在其體系結(jié)構(gòu)中的某處包含硬件信號量(semaphore)寄存器。硬件信號量寄存器可被定義為這樣的寄存器,其在重置事件后的首次讀時返回一個值,并在所述首次讀之后的讀時返回另一個值。在一個實(shí)施方案中,芯片組134可包括硬件信號量寄存器的一個具體實(shí)施例,引導(dǎo)標(biāo)志(BOFL)寄存器154。BOFL寄存器154在系統(tǒng)初始化期間可用來確定CPUA110、CPUB114、CPUC118和CPUD122中的哪個處理器可作為臨時主處理器。在一個實(shí)施方案中,BOFL寄存器154可在重置事件后的首次讀時返回一個值,并在之后的讀時返回另一個值。在另一個實(shí)施方案中,重置事件后,處理器每一次讀BOFL寄存器154時,都按預(yù)定順序給出一個不同的數(shù)字。第一個讀BOFL寄存器154的處理器接收值0。對BOFL寄存器154的后續(xù)讀返回非零值。主處理器是成功地從BOFL讀到值0的處理器。在一個實(shí)施方案中,操作系統(tǒng)可被安裝在系統(tǒng)固定盤144上,而操作系統(tǒng)的內(nèi)核可被裝載到系統(tǒng)RAM136中。在其他實(shí)施方案中,操作系統(tǒng)可通過LAN150或WAN152而裝載或執(zhí)行。現(xiàn)在參考圖2,其根據(jù)一個實(shí)施方案,示出了存儲器中的軟件組件。在一個實(shí)施方案中,BIOS組件被示出為駐留在圖1的BIOS閃存138中,但在其他實(shí)施方案中,BIOS可能駐留在其他形式的非易失性存儲器中,或在其他形式的易失性存儲器中。當(dāng)軟件組件駐留在非易失性存儲器中時,它們可被稱為固件。BIOS可包括一般情況下與處理器相關(guān)的模塊,例如處理器抽象層(PAL)固件,或者一般情況下非處理器相關(guān)的模塊,例如系統(tǒng)抽象層(SAL)。不同的處理器可能需要不同修改版本或類型的PAL固件,這部分是因?yàn)樘幚砥餍薷陌姹局械牟顒e。如果可更新系統(tǒng)內(nèi)的PAL或SAL固件的版本,并修改閃存以適應(yīng)更新的版本,則可能是有優(yōu)勢的。然而,試圖更新閃存中的BIOS時可能會出現(xiàn)嚴(yán)重的問題。在一個簡單的實(shí)施例中,如果在更新時電源被中斷,則閃存可能會包含BIOS被破壞的拷貝,包括BIOS控制閃存寫的那一部分。這一情況發(fā)生時,除了焊(solder)進(jìn)包含正確代碼的新閃存之外沒有其他修復(fù)辦法。為了降低這些問題的發(fā)生頻度,在一個實(shí)施方案中,可對PAL代碼和SAL進(jìn)行劃分。PAL代碼可被劃分為系統(tǒng)初始化所需最低限度的PAL部分,稱為PAL-A;以及其余代碼,在一個實(shí)施方案中可稱為PAL-B。而且,PAL-A然后可被細(xì)分為獨(dú)立于處理器的基本PAL-A(通用PAL-A),以及給定處理器修改版本專用的PAL-A代碼(專用PAL-A)。由于通用PAL-A獨(dú)立于處理器,因此,它不需要被更新,因而可駐留在閃存中禁止進(jìn)行更新的區(qū)域。類似地,可將SAL劃分為SAL-A和SAL-B,其中SAL-A是系統(tǒng)初始化或恢復(fù)(包括閃存更新)所需的最低限度的SAL部分。SAL-A可進(jìn)一步細(xì)分為將來不再會被更新的基本SAL-A(通用SAL-A)和可能不時需要更新的SAL-A(專用SAL-A)。為了避免更新期間的破壞,在一個實(shí)施方案中,通用PAL-A和通用SAL-A可以位于閃存不能被修改的保護(hù)部分中。為了增加系統(tǒng)可用性和可靠性,專用PAL-A和專用SAL-A可以有多個拷貝。考慮這樣一種系統(tǒng),其中可包含兩種修改版本級別的處理器,出于方便可標(biāo)為類型1處理器和類型2處理器。在其他實(shí)施方案中,可能還有其他修改版本級別的其他處理器。在圖2的實(shí)施方案中,對于類型1處理器,可以有通用PAL-A的一個拷貝220,但有專用PAL-A的兩個拷貝(類型1基本專用PAL-A230和類型1輔助專用PAL-A240)。類似地,對于類型2處理器,可以有專用PAL-A的兩個拷貝(類型2基本專用PAL-A232和類型2輔助專用PAL-A242)。還可以有通用SAL-A的一個拷貝222,以及專用SAL-A的兩個拷貝,基本專用SAL-A246和輔助專用SAL-A260。在其他實(shí)施方案中,閃存中還可以有其他的固件拷貝和類型。在一個實(shí)施方案中,所述拷貝可以是精確的拷貝,但在其他實(shí)施方案中,所述拷貝可以具有類似的功能但不是精確的拷貝。當(dāng)一個處理器(例如一個類型1處理器)在重置事件后開始執(zhí)行時,該處理器在通用PAL-A220中的預(yù)定位置(稱為重置向量)處開始執(zhí)行。執(zhí)行通用PAL-A220的處理器可以使用基本固件接口表(FIT)224或輔助FIT234來發(fā)現(xiàn)其他代碼模塊的位置。通用PAL-A220代碼通過位于固定位置基本FIT指針210和輔助FIT指針212中的向量來得知基本FIT224和輔助FIT234的入口點(diǎn)。在處理器上執(zhí)行的通用PAL-A220可使用這些FIT指針來定位FIT,然后使用FIT來定位并驗(yàn)證其他軟件模塊。例如,類型1處理器可使用基本FIT指針210來發(fā)現(xiàn)基本FIT224的位置。然后,類型1處理器可使用基本FIT224內(nèi)的位置、大小、校驗(yàn)和以及其他參數(shù)來定位并檢查類型1基本專用PAL-A230。如果類型1處理器不能定位或驗(yàn)證類型1基本專用PAL-A230,則它可以使用輔助FIT指針212和輔助FIT234來定位并檢查類型1輔助專用PAL-A240。如果類型1處理器定位并驗(yàn)證了類型1基本專用PAL-A230或類型1輔助專用PAL-A240,則類型1處理器然后可嘗試定位并檢查SAL-A。通用PAL-A220定位類型1基本專用PAL-A230或類型1輔助專用PAL-A240的入口點(diǎn)并開始執(zhí)行。然后,類型1基本專用PAL-A230或類型1輔助專用PAL-A240定位通用SAL-A222,并將控制轉(zhuǎn)交給它,通用SAL-A222然后驗(yàn)證它自身和基本專用SAL-A246或輔助專用SAL-A260。在一個實(shí)施方案中,類型1處理器使用基本FIT指針210和基本FIT224來定位并檢查基本專用SAL-A246。如果類型1處理器不能定位并驗(yàn)證基本專用SAL-A246,則類型1處理器可使用輔助FIT指針212和輔助FIT234來定位并檢查輔助專用SAL-A260。在定位并驗(yàn)證初始化或恢復(fù)所需的這些PAL和SAL的部分后,在處理器上執(zhí)行的通用SAL-A222可確定與該處理器相關(guān)的處理器健康狀態(tài)。健康狀態(tài)的計算可由通用SAL-A222基于各種固件有效性校驗(yàn)(包括校驗(yàn)和)來進(jìn)行,在將控制轉(zhuǎn)交給通用SAL-A222時還可基于通用PAL-A提供的轉(zhuǎn)交狀態(tài)碼來進(jìn)行。在確定哪種固件組件的組合具有令人滿意的健康狀態(tài)后,可對處理器健康狀態(tài)進(jìn)行排名。在一個實(shí)施方案中,如果發(fā)現(xiàn)并驗(yàn)證了基本專用PAL-A和基本專用SAL-A的拷貝,則處理器健康狀態(tài)可被確定為較高。如果發(fā)現(xiàn)并驗(yàn)證了輔助專用PAL-A和輔助專用SAL-A的拷貝,則處理器健康狀態(tài)可被確定為稍微較低。如果只發(fā)現(xiàn)并驗(yàn)證了基本專用PAL-A和輔助專用SAL-A、或輔助專用PAL-A和基本專用SAL-A的拷貝,則可確定甚至更低的處理器健康狀態(tài)。最后,如果未發(fā)現(xiàn)并驗(yàn)證專用PAL-A或?qū)S肧AL-A的任何拷貝,則可確定最低或“致命性的”處理器健康狀態(tài)?,F(xiàn)在參考圖3,根據(jù)本公開的一個實(shí)施方案,示出了組件間消息傳遞圖。在一個實(shí)施方案中,每一個所述消息都可攜帶在處理器間中斷(IPI)中。在啟動處理器的自檢的重置事件之后,處理器可禁用中斷。當(dāng)處理器禁用中斷時,或當(dāng)處理器處于“輪詢”中斷模式時,向該處理器發(fā)送IPI仍可將一個向量寫入到該處理器的IRR中。在此情形下,置于處理器的IRR中的向量可代表消息發(fā)送者的LID、相對健康值或其他數(shù)據(jù)。在其他實(shí)施方案中,可使用其他攜帶所述消息的方式,例如專用硬件處理器間的信號,或在數(shù)據(jù)總線上復(fù)用多個專用信號。在圖3的實(shí)施方案中,示出了CPUA302、CPUB304和CPUC306,但在其他實(shí)施方案中可有較多或較少的處理器參與到所述處理中。在重置事件后,三個處理器(CPUA302、CPUB304和CPUC306)中的每一個都執(zhí)行自檢。在一個實(shí)施方案中,自檢可包括確定處理器健康狀態(tài),如上結(jié)合圖2所述。在每個處理器確定其自身的處理器健康狀態(tài)后,可能希望只允許那些具有最佳可用處理器健康狀態(tài)的處理器繼續(xù)進(jìn)行引導(dǎo)操作。在其他實(shí)施方案中,性能需求可能使得希望允許具有可接受的處理器健康狀態(tài)的最大一組處理器繼續(xù)引導(dǎo)操作。在圖3的實(shí)施例中,所有的3個處理器都確定了非致命性的處理器健康狀態(tài)。每個處理器首先都假設(shè)它是主處理器,并給自己指定了主LID。需要這一步驟來確定不會丟失登記向量通信。在這一確定之后,每個處理器都讀芯片組308的BOFL寄存器310。第一個確定其處理器健康狀態(tài)的處理器(本實(shí)施例中是CPUB304)在重置事件后作出對BOFL寄存器310的首次BOFL寄存器讀312。因此,CPUB304成為主處理器,并繼續(xù)使用主LID來作為用于處理器間通信的標(biāo)識符。在此實(shí)施例中,CPUA302是第二個確定其處理器健康狀態(tài)的處理器,并作出第二次BOFL寄存器讀314。因此,CPUA302成為從處理器,并使用唯一的非主LID(從1LID)作為用于處理器間通信的標(biāo)識符。最后,在此實(shí)施例中,CPUC306是第三個確定其處理器健康狀態(tài)的處理器,并作出第三次BOFL寄存器讀316。因此,CPUC306成為從處理器,并使用唯一的非主LID(從2LID)作為用于處理器間通信的標(biāo)識符。當(dāng)處理器確定它是從處理器時,它計算一個唯一的從LID,并向使用預(yù)定主LID的處理器發(fā)送登記消息,該消息代表了它自己的LID。在一個實(shí)施方案中,可使用從PAL傳遞到SAL的地理唯一的標(biāo)識符來計算唯一的從LID。在一個實(shí)施方案中,PAL可根據(jù)從物理處理器封裝上的一個或更多引腳上讀取的值來確定這些標(biāo)識符。在圖3的實(shí)施例中,CPUA302和CPUC306分別向CPUB304發(fā)送它們的登記消息320、322。在一個實(shí)施方案中,CPUB304可以向發(fā)送了登記消息的處理器發(fā)出對應(yīng)的健康請求消息來立即響應(yīng)所述登記消息的接收。在其他實(shí)施方案中,CPUB304在用健康請求消息進(jìn)行響應(yīng)之前,可等待一段預(yù)定時間以接收所有的登記消息。對于圖3的實(shí)施例,CPUB304分別向CPUA302和CPUC306發(fā)送健康請求消息330、332。然后,CPUA302和CPUC306分別以健康響應(yīng)消息340、342的形式,將它們的處理器健康狀態(tài)的拷貝發(fā)送到CPUB304。在其他實(shí)施方案中,實(shí)際的健康狀態(tài)可用與具體的健康狀態(tài)值具有預(yù)定關(guān)系的向量來替換。一旦具有主LID的處理器(此實(shí)施例中是CPUB304)接收到所有響應(yīng)處理器的處理器健康狀態(tài)后,它可確定排名最高的可用處理器健康狀態(tài)。這一組的共同處理器健康狀態(tài)可稱為組健康狀態(tài)。在其他實(shí)施方案中,性能可能是一個問題,所確定的處理器組可能是這樣的組,其具有最多數(shù)量的具有可接受的處理器健康狀態(tài)的處理器。在這兩類實(shí)施方案中,具有主LID的處理器(本實(shí)施例中是CPUB304)然后發(fā)送發(fā)布(release)信號量(semaphore)消息到所有從處理器以及它自身。發(fā)布信號量可包括組健康狀態(tài)的拷貝。在其他實(shí)施方案中,實(shí)際的組健康狀態(tài)可用與組健康狀態(tài)具有預(yù)定關(guān)系的向量來替換。在圖3的實(shí)施例中,CPUB304分別發(fā)送發(fā)布信號量350、352和354到CPUA302、CPUC306以及它自身。每個處理器然后將由對應(yīng)的發(fā)布信號量所代表的組健康狀態(tài)與它自己的處理器健康狀態(tài)進(jìn)行比較。如果存在匹配,則該處理器進(jìn)行引導(dǎo)操作。然而,如果不存在匹配,則該處理器停機(jī)或變?yōu)椴换顒樱贿M(jìn)行引導(dǎo)操作?,F(xiàn)在參考圖4,根據(jù)本公開的一個實(shí)施方案示出了導(dǎo)出局部處理器健康狀態(tài)的流程圖。在其他實(shí)施方案中,可進(jìn)行其他固件測試、硬件測試或其某種組合來獲得另一種形式的局部處理器健康狀態(tài)。當(dāng)圖4的處理在方框410開始時,PAL在重置事件后立即獲得控制,并在方框412計算PAL轉(zhuǎn)交狀態(tài),將之存在寄存器中以供SAL使用。然后,PAL將控制轉(zhuǎn)交給SAL。PAL可在進(jìn)入恢復(fù)校驗(yàn)時提供這一轉(zhuǎn)交狀態(tài),所述恢復(fù)校驗(yàn)可包括確定PAL是否與當(dāng)前處理器兼容或處理器是否是完全可工作的。然后在方框414,SAL檢查以前存儲的PAL轉(zhuǎn)交狀態(tài)。PAL轉(zhuǎn)交狀態(tài)與SAL執(zhí)行的其他測試一起被用來計算復(fù)合局部健康。PAL轉(zhuǎn)交狀態(tài)可傳輸多種可能的錯誤的信息。在一個實(shí)施方案中,所述可能的錯誤可與一組4種狀態(tài)類別相關(guān)利用基本固件拷貝的正常操作;利用輔助固件拷貝的故障恢復(fù)(failover)操作;非冗余或非關(guān)鍵固件組件中的故障;以及致命故障。然后在方框418,可進(jìn)行基本FIT指針和輔助FIT指針的邊界校驗(yàn)。這可能是必要的,以防止對存儲器地址空間中受保護(hù)或保留區(qū)域進(jìn)行的意外訪問,這些訪問可能會導(dǎo)致系統(tǒng)掛起(hang)。在方框422,可對基本FIT和輔助FIT進(jìn)行校驗(yàn)和測試。這些測試所返回的校驗(yàn)和可用來防止被破壞的代碼的執(zhí)行,或防止對被破壞的閃存表(flashtable)的搜索。然后在方框426,可檢查基本FIT和輔助FIT,以確定是否分別存在對應(yīng)的基本專用SAL-A和輔助專用SAL-A。這一測試可確保存在合適的固件以支持任何必要的SAL-A測試。然后在方框430,可對在方框426中檢測的專用SAL-A的拷貝進(jìn)行校驗(yàn)和測試。這些測試所返回的校驗(yàn)和又可用來防止被破壞的代碼的執(zhí)行,或防止對被破壞的閃存表的搜索。在方框434,前面的方框的結(jié)果可用來形成復(fù)合局部處理器健康狀態(tài)。在一個實(shí)施方案中,可導(dǎo)出5個級別的處理器健康狀態(tài)。在其他實(shí)施方案中,可導(dǎo)出其他級別的處理器健康狀態(tài)。如果發(fā)現(xiàn)了有效的基本專用PAL-A和有效的基本專用SAL-A,則可確定最佳處理器健康狀態(tài)。如果只發(fā)現(xiàn)了有效的輔助專用PAL-A和有效的輔助專用SAL-A,則可確定次佳處理器健康狀態(tài)。如果只發(fā)現(xiàn)了有效的基本專用PAL-A和有效的輔助專用SAL-A,則可確定第三好的處理器健康狀態(tài)。如果只發(fā)現(xiàn)了有效的輔助專用PAL-A和有效的基本專用SAL-A,則可確定第四好的處理器健康狀態(tài)。最后,如果未發(fā)現(xiàn)PAL-A和SAL-A的有效組合,則可確定最壞的處理器健康狀態(tài),并且這一狀態(tài)還可用其他嚴(yán)重錯誤條件來確定?,F(xiàn)在參考圖5,根據(jù)本公開的一個實(shí)施方案示出了健康處理器的選擇和初始化的流程圖。系統(tǒng)內(nèi)的每個處理器都可執(zhí)行圖5的處理。重置事件后所述處理開始于方框510。確定局部處理器健康狀態(tài)后,處理器向自身指定主LID值,以確保不會丟失后續(xù)的登記事件。處理器然后在方框514讀BOFL寄存器。然后在判斷框518,處理器基于從BOFL讀取的值來確定它是否已成為主處理器。如果是,則處理器通過“是”路徑退出判斷框518,并啟動登記超時期間。在判斷框522,處理器確定超時期間是否結(jié)束。如果未結(jié)束,則處理器通過“否”路徑退出判斷框522,并在方框526接收任何出現(xiàn)的登記消息(如果有的話)。處理器確定對應(yīng)于登記消息的發(fā)送者的LID。在方框530,處理器通過向?qū)?yīng)的從處理器發(fā)送健康請求消息來響應(yīng)在方框526中發(fā)現(xiàn)的任何登記消息。然后處理器返回到判斷框522。當(dāng)超時期間結(jié)束時,處理器通過“是”路徑退出判斷框522。在方框534,處理器確定組健康狀態(tài),并向從所接收的登記消息中識別出的所有LID發(fā)送包含組健康狀態(tài)的消息。然后在判斷框538,處理器確定組健康狀態(tài)是否與它自己的處理器健康狀態(tài)匹配。如果是,則所述處理通過“是”路徑退出判斷框538,并且處理器在方框540繼續(xù)引導(dǎo)操作。但是,如果不匹配,則所述處理通過“否”路徑退出判斷框538,并且處理器在方框544停機(jī)或變?yōu)椴换顒?。然而,如果在判斷?18處理器確定它是從處理器,則處理器通過“否”路徑退出判斷框518。然后處理器向自身指定一個唯一的從LID。然后處理器在方框550向具有主LID的處理器發(fā)送代表了其LID值的登記消息。處理器然后等待,并在方框554接收對應(yīng)的健康請求消息。然后在方框558,處理器在健康響應(yīng)消息中發(fā)送它自己的處理器健康狀態(tài)。在方框560,處理器等待并接收發(fā)布信號量消息。然后在判斷框562,處理器確定組健康狀態(tài)是否與其處理器健康狀態(tài)匹配。如果是,則所述處理通過“是”路徑退出判斷框562,并且處理器在方框566繼續(xù)引導(dǎo)操作。然而,如果不匹配,則所述處理通過“否”路徑退出判斷框562,并且處理器在方框544停機(jī)或變?yōu)椴换顒?。在前面的說明書中,己參考其具體的示例性實(shí)施方案來描述了本發(fā)明。然而,很明顯可對其作出各種變體和改變而不會偏離如在所附權(quán)利要求書中表明的更寬的精神和范圍。因此,本說明書和附圖應(yīng)被看作是說明性而非限制性的。權(quán)利要求1.一種系統(tǒng),包括第一處理器;在所述第一處理器上執(zhí)行的通用固件;以及第一處理器專用固件的第一拷貝;其中所述第一處理器利用所述第一處理器專用固件的所述第一拷貝來確定第一處理器健康狀態(tài)。2.如權(quán)利要求1所述的系統(tǒng),還包括第一表,用于定位所述第一處理器專用固件的所述第一拷貝。3.如權(quán)利要求2所述的系統(tǒng),還包括所述第一處理器專用固件的第二拷貝,以及用于定位所述第一處理器專用固件的所述第二拷貝的第二表。4.如權(quán)利要求3所述的系統(tǒng),其中通過測試所述第一表和所述第二表來確定所述第一處理器健康狀態(tài)。5.如權(quán)利要求3所述的系統(tǒng),還包括利用所述第一處理器專用固件的第二處理器。6.如權(quán)利要求5所述的系統(tǒng),其中所述第二處理器利用所述第一處理器專用固件的所述第一拷貝和所述第一處理器專用固件的所述第二拷貝來確定第二處理器健康狀態(tài)。7.如權(quán)利要求6所述的系統(tǒng),其中所述第一處理器利用所述第一處理器健康狀態(tài)和所述第二處理器健康狀態(tài)來確定組健康狀態(tài)。8.如權(quán)利要求7所述的系統(tǒng),其中所述第一處理器發(fā)送包含所述組健康狀態(tài)的第二處理器發(fā)布消息。9.如權(quán)利要求4所述的系統(tǒng),還包括第三處理器、第三處理器專用固件的第一拷貝、以及所述第三處理器專用固件的第二拷貝。10.如權(quán)利要求9所述的系統(tǒng),其中所述第三處理器利用所述第三處理器專用固件的所述第一拷貝和所述第三處理器專用固件的所述第二拷貝來確定第三處理器健康狀態(tài)。11.如權(quán)利要求10所述的系統(tǒng),其中所述第一處理器利用所述第一處理器健康狀態(tài)和所述第三處理器健康狀態(tài)來確定組健康狀態(tài)。12.一種系統(tǒng),包括第一處理器,用于確定第一處理器健康狀態(tài);耦合到所述第一處理器的第二處理器,用于確定第二處理器健康狀態(tài);以及耦合到所述第一處理器和所述第二處理器的硬件信號量寄存器。13.如權(quán)利要求12所述的系統(tǒng),其中當(dāng)所述第一處理器在所述第二處理器之前讀所述硬件信號量寄存器時,所述第一處理器利用所述第一處理器健康狀態(tài)和所述第二處理器健康狀態(tài)來確定組健康狀態(tài)。14.如權(quán)利要求13所述的系統(tǒng),其中所述第一處理器向所述第二處理器發(fā)送包含所述組健康狀態(tài)的發(fā)布消息。15.如權(quán)利要求14所述的系統(tǒng),其中如果所述組健康狀態(tài)對應(yīng)于所述第二處理器健康狀態(tài),則所述第二處理器繼續(xù)引導(dǎo)操作。16.如權(quán)利要求14所述的系統(tǒng),其中所述第一處理器從所述硬件信號量寄存器讀第一值,并且所述第二處理器從所述硬件信號量寄存器讀第二值。17.如權(quán)利要求16所述的系統(tǒng),其中所述第一處理器包括第一處理器中斷請求寄存器,所述第二處理器包括第二處理器中斷請求寄存器,其中所述第二處理器發(fā)送所述第二處理器健康狀態(tài)到所述第一處理器中斷請求寄存器。18.如權(quán)利要求17所述的系統(tǒng),其中所述第一處理器發(fā)送所述組健康狀態(tài)到所述第二處理器中斷請求寄存器。19.一種方法,包括確定第一處理器健康狀態(tài);確定第二處理器健康狀態(tài);發(fā)送所述第二處理器健康狀態(tài)到第一處理器;根據(jù)所述第一處理器健康狀態(tài)和所述第二處理器健康狀態(tài)來確定組健康狀態(tài);以及當(dāng)所述組健康狀態(tài)對應(yīng)于所述第二處理器健康狀態(tài)時,使能第二處理器以繼續(xù)引導(dǎo)操作。20.如權(quán)利要求19所述的方法,其中所述使能所述第二處理器的步驟包括發(fā)送所述組健康狀態(tài)到所述第二處理器。21.如權(quán)利要求20所述的方法,其中響應(yīng)于健康狀態(tài)請求而進(jìn)行所述的發(fā)送所述第二處理器健康狀態(tài)的步驟。22.如權(quán)利要求21所述的方法,還包括在所述第二處理器讀硬件信號量寄存器之前使所述第一處理器讀該硬件信號量寄存器。23.如權(quán)利要求22所述的方法,其中所述第一處理器讀硬件信號量寄存器的步驟包括接收第一值。24.如權(quán)利要求19所述的方法,其中所述確定所述第一處理器健康狀態(tài)的步驟包括利用通用處理器抽象層檢查第一固件接口表和第二固件接口表。25.如權(quán)利要求24所述的方法,其中所述利用通用處理器抽象層包括檢查第一處理器專用處理器抽象層的第一拷貝和第一處理器專用處理器抽象層的第二拷貝。26.如權(quán)利要求24所述的方法,其中所述確定所述第一處理器健康狀態(tài)的步驟包括確定第一處理器專用處理器抽象層的所述第一拷貝是否具有相關(guān)聯(lián)的系統(tǒng)抽象層的第一拷貝,并且還包括確定第一處理器專用處理器抽象層的所述第二拷貝是否具有相關(guān)聯(lián)的系統(tǒng)抽象層的第二拷貝。27.如權(quán)利要求19所述的方法,其中所述發(fā)送所述第二處理器健康狀態(tài)到第一處理器的步驟包括發(fā)送處理器間中斷到所述第一處理器。28.如權(quán)利要求27所述的方法,其中所述發(fā)送處理器間中斷到所述第一處理器的步驟包括當(dāng)所述第一處理器己禁用中斷時,發(fā)送所述第二處理器健康狀態(tài)到第一處理器中斷請求寄存器。29.如權(quán)利要求28所述的方法,其中所述確定組健康狀態(tài)的步驟包括從所述第一處理器中斷請求獲取所述第二處理器健康狀態(tài)。30.如權(quán)利要求29所述的方法,還包括通過向所述第二處理器發(fā)送第二處理器發(fā)布消息來使能所述第二處理器,以繼續(xù)引導(dǎo)操作。31.如權(quán)利要求30所述的方法,其中所述使能所述第二處理器包括當(dāng)所述第二處理器發(fā)布消息包括與所述第二處理器健康狀態(tài)相匹配的所述組健康狀態(tài)時,使能所述第二處理器。32.一種裝置,包括用于確定第一處理器健康狀態(tài)的裝置;用于確定第二處理器健康狀態(tài)的裝置;用于發(fā)送所述第二處理器健康狀態(tài)到第一處理器的裝置;用于根據(jù)所述第一處理器健康狀態(tài)和所述第二處理器健康狀態(tài)來確定組健康狀態(tài)的裝置;以及用于當(dāng)所述組健康狀態(tài)對應(yīng)于所述第二處理器健康狀態(tài)時,使能第二處理器以繼續(xù)引導(dǎo)操作的裝置。33.如權(quán)利要求32所述的裝置,其中所述用于使能所述第二處理器的裝置包括用于發(fā)送所述組健康狀態(tài)到所述第二處理器的裝置。34.如權(quán)利要求33所述的裝置,其中所述用于發(fā)送所述第二處理器健康狀態(tài)的裝置對健康狀態(tài)請求進(jìn)行響應(yīng)。35.如權(quán)利要求34所述的裝置,還包括用于在所述第二處理器讀硬件信號量寄存器之前使所述第一處理器讀該硬件信號量寄存器的裝置。36.如權(quán)利要求35所述的裝置,其中所述用于使所述第一處理器讀硬件信號量寄存器的裝置包括用于接收第一值的裝置。37.如權(quán)利要求32所述的裝置,其中所述用于確定所述第一處理器健康狀態(tài)的裝置包括用于利用通用處理器抽象層檢查第一固件接口表和第二固件接口表的裝置。38.如權(quán)利要求37所述的裝置,其中所述用于利用通用處理器抽象層的裝置包括用于檢查第一處理器專用處理器抽象層的第一拷貝和第一處理器專用處理器抽象層的第二拷貝的裝置。39.如權(quán)利要求38所述的裝置,其中所述用于確定所述第一處理器健康狀態(tài)的裝置包括用于確定第一處理器專用處理器抽象層的所述第一拷貝是否具有相關(guān)聯(lián)的系統(tǒng)抽象層的第一拷貝的裝置,并且還包括用于確定第一處理器專用處理器抽象層的所述第二拷貝是否具有相關(guān)聯(lián)的系統(tǒng)抽象層的第二拷貝的裝置。40.如權(quán)利要求39所述的裝置,其中所述用于發(fā)送所述第二處理器健康狀態(tài)到第一處理器的裝置包括用于發(fā)送處理器間中斷到所述第一處理器的裝置。41.如權(quán)利要求40所述的裝置,其中所述用于發(fā)送處理器間中斷到所述第一處理器的裝置包括用于當(dāng)所述第一處理器已禁用中斷時,發(fā)送所述第二處理器健康狀態(tài)到第一處理器中斷請求寄存器的裝置。42.如權(quán)利要求41所述的裝置,其中所述用于確定組健康狀態(tài)的裝置包括用于從所述第一處理器中斷請求獲取所述第二處理器健康狀態(tài)的裝置。43.如權(quán)利要求42所述的裝置,還包括用于通過向所述第二處理器發(fā)送第二處理器發(fā)布消息來使能所述第二處理器,以繼續(xù)引導(dǎo)操作的裝置。44.如權(quán)利要求43所述的裝置,其中所述用于使能所述第二處理器的裝置包括用于當(dāng)所述第二處理器發(fā)布消息包括與所述第二處理器健康狀態(tài)相匹配的所述組健康狀態(tài)時,使能所述第二處理器的裝置。45.一種計算機(jī)可讀介質(zhì),其包含機(jī)器可執(zhí)行的程序以執(zhí)行包括下述步驟的處理確定第一處理器健康狀態(tài);確定第二處理器健康狀態(tài);發(fā)送所述第二處理器健康狀態(tài)到第一處理器;根據(jù)所述第一處理器健康狀態(tài)和所述第二處理器健康狀態(tài)來確定組健康狀態(tài);以及當(dāng)所述組健康狀態(tài)對應(yīng)于所述第二處理器健康狀態(tài)時,使能第二處理器以繼續(xù)引導(dǎo)操作。46.如權(quán)利要求45所述的計算機(jī)可讀介質(zhì),其中所述使能所述第二處理器包括發(fā)送所述組健康狀態(tài)到所述第二處理器。47.如權(quán)利要求46所述的計算機(jī)可讀介質(zhì),其中響應(yīng)于健康狀態(tài)請求而進(jìn)行所述的發(fā)送所述第二處理器健康狀態(tài)。48.如權(quán)利要求47所述的計算機(jī)可讀介質(zhì),還包括在所述第二處理器讀硬件信號量寄存器之前使所述第一處理器讀該硬件信號量寄存器。49.如權(quán)利要求48所述的計算機(jī)可讀介質(zhì),其中所述第一處理器讀所述硬件信號量寄存器包括接收第一值。50.如權(quán)利要求45所述的計算機(jī)可讀介質(zhì),其中所述確定所述第一處理器健康狀態(tài)包括利用通用處理器抽象層檢查第一固件接口表和第二固件接口表。51.如權(quán)利要求50所述的計算機(jī)可讀介質(zhì),其中所述利用通用處理器抽象層包括檢查第一處理器專用處理器抽象層的第一拷貝和第一處理器專用處理器抽象層的第二拷貝。52.如權(quán)利要求51所述的計算機(jī)可讀介質(zhì),其中所述確定所述第一處理器健康狀態(tài)包括確定第一處理器專用處理器抽象層的所述第一拷貝是否具有相關(guān)聯(lián)的系統(tǒng)抽象層的第一拷貝,并且還包括確定第一處理器專用處理器抽象層的所述第二拷貝是否具有相關(guān)聯(lián)的系統(tǒng)抽象層的第二拷貝。53.如權(quán)利要求45所述的計算機(jī)可讀介質(zhì),其中所述發(fā)送所述第二處理器健康狀態(tài)到第一處理器包括發(fā)送處理器間中斷到所述第一處理器。54.如權(quán)利要求53所述的計算機(jī)可讀介質(zhì),其中所述發(fā)送處理器間中斷到所述第一處理器包括當(dāng)所述第一處理器已禁用中斷時,發(fā)送所述第二處理器健康狀態(tài)到第一處理器中斷請求寄存器。55.如權(quán)利要求54所述的計算機(jī)可讀介質(zhì),其中所述確定組健康狀態(tài)包括從所述第一處理器中斷請求獲取所述第二處理器健康狀態(tài)。56.如權(quán)利要求55所述的計算機(jī)可讀介質(zhì),還包括通過向所述第二處理器發(fā)送第二處理器發(fā)布消息來使能所述第二處理器,以繼續(xù)引導(dǎo)操作。57.如權(quán)利要求56所述的計算機(jī)可讀介質(zhì),其中所述使能所述第二處理器包括當(dāng)所述第二處理器發(fā)布消息包括與所述第二處理器健康狀態(tài)相匹配的所述組健康狀態(tài)時,使能所述第二處理器。全文摘要本發(fā)明公開了一種系統(tǒng)和方法,用于確定一組健康的處理器和關(guān)聯(lián)固件,以在重置事件后引導(dǎo)系統(tǒng)。對處理器專用固件的冗余拷貝的有效性進(jìn)行檢查。處理器確定它們自己的健康狀態(tài),并且一個處理器確定一組具有最佳可用健康狀態(tài)的處理器。處理器間中斷消息提供的通信機(jī)制使得可用一種算法來確定一組處理器以繼續(xù)引導(dǎo)該系統(tǒng)。文檔編號G06F15/177GK1856772SQ03818824公開日2006年11月1日申請日期2003年5月9日優(yōu)先權(quán)日2002年6月11日發(fā)明者托德·謝林申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
濮阳市| 胶南市| 陇西县| 合川市| 那坡县| 武宣县| 澳门| 高阳县| 新昌县| 虎林市| 大厂| 乐至县| 临沂市| 中牟县| 延边| 吉林省| 江安县| 三原县| 霍林郭勒市| 从化市| 云和县| 巢湖市| 县级市| 浮山县| 和静县| 常宁市| 古交市| 冕宁县| 潼关县| 莎车县| 淮滨县| 北票市| 贞丰县| 普兰县| 泗洪县| 鸡东县| 漳州市| 比如县| 铁力市| 祁阳县| 诏安县|