專利名稱:用于替換核心系統(tǒng)硬件的驅(qū)動(dòng)程序模型的制作方法
用于替換核心系統(tǒng)硬件的驅(qū)動(dòng)程序模型
背景
微處理器是能夠?yàn)橹T如臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、蜂窩 電話、激光打印機(jī)等計(jì)算設(shè)備執(zhí)行處理和控制功能的電子設(shè)備。通常,微處理 器包括小型塑料或陶瓷封裝,其包含并保護(hù)包括復(fù)雜的集成電路的一小片半導(dǎo) 體材料。連接到集成電路的引線被附連到從封裝伸出的引腳,從而允許該集成 電路連接到其它電子設(shè)備和電路。微處理器通常被插入到或以其它方式附連到 包含其它電子設(shè)備的電路板。
雖然微處理器集成電路通常只包括一個(gè)計(jì)算單元,即一個(gè)處理器,但在微 處理器集成電路中可能包括多個(gè)處理器。通常被稱為"核"的多個(gè)處理器被包 括在同一片半導(dǎo)體材料中并連接到微處理器封裝引腳。具有多個(gè)核增加微處理 器的計(jì)算能力。例如,具有四個(gè)核的微處理器可提供幾乎與四個(gè)單核微處理器 等量的計(jì)算能力。
在傳統(tǒng)計(jì)算設(shè)備中已越來越多地使用多個(gè)微處理器和多核微處理器。傳統(tǒng) 計(jì)算設(shè)備只能夠運(yùn)行操作系統(tǒng)的一個(gè)實(shí)例。即使是包含多核微處理器、多個(gè)微 處理器或多個(gè)多核微處理器的傳統(tǒng)計(jì)算設(shè)備也只能夠運(yùn)行操作系統(tǒng)的一個(gè)實(shí) 例。然而,利用多核微處理器所提供的增加的計(jì)算能力允許用較少的計(jì)算設(shè)備 來執(zhí)行先前由多個(gè)計(jì)算設(shè)備來執(zhí)行的計(jì)算功能。
例如,服務(wù)器是連接到網(wǎng)絡(luò)的、向連接到該網(wǎng)絡(luò)的其它實(shí)體提供服務(wù)或一
組服務(wù)的計(jì)算設(shè)備。包括32個(gè)傳統(tǒng)計(jì)算設(shè)備的服務(wù)器,即,32路(32 way) 服務(wù)器,可由各自具有四個(gè)核的八個(gè)微處理器組成。進(jìn)一步考慮該概念,如果 每一單獨(dú)的核都比32個(gè)計(jì)算設(shè)備中的一個(gè)強(qiáng)大8倍,則該32路服務(wù)器的能 力可由該四核微處理器來提供。這一四核服務(wù)器的一明顯的優(yōu)點(diǎn)是計(jì)算資源冗 余與傳統(tǒng)服務(wù)器所提供的相比更承擔(dān)得起。此外,減少微處理器的數(shù)量降低 服務(wù)器的成本,減少為服務(wù)器供電所需的能量以及服務(wù)器所需的維護(hù)量。
使用"分區(qū)"來更好地利用多核微處理器的計(jì)算能力是可能的。分區(qū)是計(jì) 算設(shè)備中能夠運(yùn)行操作系統(tǒng)的獨(dú)立實(shí)例(即,局部操作系統(tǒng))的一組電可隔離電子設(shè)備,例如,處理器、存儲(chǔ)器等。可分區(qū)計(jì)算設(shè)備是可被分成各分區(qū)并由 此能夠運(yùn)行多個(gè)局部操作系統(tǒng)的計(jì)算設(shè)備。可分區(qū)服務(wù)器是作為可分區(qū)計(jì)算設(shè) 備并由此能夠運(yùn)行多個(gè)局部操作系統(tǒng)的服務(wù)器??煞謪^(qū)服務(wù)器的分區(qū)也可被稱 為"邏輯服務(wù)器"。g卩,對(duì)于網(wǎng)絡(luò)上的其它實(shí)體而言,邏輯服務(wù)器表現(xiàn)為獨(dú)立 的服務(wù)器,即使它不是。還可能將多個(gè)服務(wù)器(邏輯或其他類型)組裝成"服 務(wù)器群集"。服務(wù)器群集是如提供服務(wù)或一組服務(wù)的單元那樣工作的多個(gè)服務(wù)
器o
使用多核微處理器的優(yōu)點(diǎn)正引導(dǎo)"服務(wù)器合并"的趨勢(shì)。服務(wù)器合并是用
較少的服務(wù)器(例如, 一個(gè)服務(wù)器)來替換多個(gè)服務(wù)器(例如,服務(wù)群集中的)
的過程。替換多個(gè)服務(wù)器的服務(wù)器通常包含等于或超過該多個(gè)服務(wù)器的能力的
計(jì)算能力。雖然降低了成本,減少了能量和維護(hù),但服務(wù)器合并具有孤注一擲
的后果。服務(wù)器合并可能增加服務(wù)器故障的影響。例如,如果慣于在多個(gè)服務(wù)
器上運(yùn)行的多個(gè)應(yīng)用程序全都在同一服務(wù)器上運(yùn)行,并且該服務(wù)器發(fā)生故障,
則影響可能影響到所有應(yīng)用程序。在最差的情況下,這意味著應(yīng)用程序停機(jī)時(shí)
間。為針對(duì)這一影響進(jìn)行保護(hù),許多高端服務(wù)器(即,具有大量計(jì)算能力的服
務(wù)器)將其能力的一部分應(yīng)用于可靠性特征。
一種這樣的可靠性特征是"故障切換"能力。故障切換是第一實(shí)體較佳地 在該第一實(shí)體完全發(fā)生故障之前將該第一實(shí)體所包含的信息傳遞到類似的第
二實(shí)體上的能力。已經(jīng)開發(fā)了供傳統(tǒng)服務(wù)器(即,基于傳統(tǒng)計(jì)算設(shè)備的服務(wù)器) 以受控和有序的方式來執(zhí)行故障切換以確保在從發(fā)生故障的服務(wù)器轉(zhuǎn)換到替 換服務(wù)器期間沒有數(shù)據(jù)丟失并且沒有正在運(yùn)行的進(jìn)程被中斷的技術(shù)。
為創(chuàng)建與傳統(tǒng)服務(wù)器一樣穩(wěn)健和可靠的多核微處理器服務(wù)器,在處理器級(jí) 操作的類似技術(shù)是有用的。較佳地,這些技術(shù)能夠在多個(gè)"平臺(tái)"上運(yùn)行。平 臺(tái)是提供較高級(jí)軟件在其上操作并且其他硬件、固件和軟件可被添加到其中的 框架的硬件、固件和軟件的組合。
概述
提供本概述以便以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一 些概念。本概述并不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。
公開了用于替換計(jì)算設(shè)備和驅(qū)動(dòng)程序中的分區(qū)單元的驅(qū)動(dòng)程序模型以及 使用基于該驅(qū)動(dòng)程序模型的驅(qū)動(dòng)程序的方法。該驅(qū)動(dòng)程序模型采用多個(gè)回調(diào)來 訪問在操作系統(tǒng)服務(wù)不可用時(shí)安全使用的多個(gè)功能。該多個(gè)回調(diào)包括,但不限
于,初始化、轉(zhuǎn)儲(chǔ)(memory transfer)和轉(zhuǎn)移處理器狀態(tài)回調(diào)。
使用驅(qū)動(dòng)程序允許計(jì)算設(shè)備替換分區(qū)單元而不必針對(duì)特定平臺(tái)重新編譯 該計(jì)算設(shè)備的服務(wù)處理器(SP)固件和/或局部操作系統(tǒng)軟件。較佳地,分區(qū) 單元使用基于驅(qū)動(dòng)程序模型的平臺(tái)專用分區(qū)單元替換(PUR)驅(qū)動(dòng)程序來替換。 在一個(gè)說明性實(shí)現(xiàn)中,在初始化期間,分區(qū)的局部操作系統(tǒng)注冊(cè)可以是 通用或平臺(tái)專用的PUR驅(qū)動(dòng)程序;加載該P(yáng)UR驅(qū)動(dòng)程序;執(zhí)行初始化回調(diào); 以及從該P(yáng)UR驅(qū)動(dòng)程序接收上下文信息(即,上下文)。在被動(dòng)遷移階段期 間,局部操作系統(tǒng)定址(map)發(fā)生故障的存儲(chǔ)器塊并對(duì)每一個(gè)存儲(chǔ)器塊執(zhí)行 轉(zhuǎn)儲(chǔ)回調(diào)。PUR驅(qū)動(dòng)程序使用計(jì)算設(shè)備的平臺(tái)專用硬件(例如,服務(wù)處理器) 來較佳地以對(duì)該計(jì)算設(shè)備的平臺(tái)優(yōu)化的方式來轉(zhuǎn)移存儲(chǔ)內(nèi)容。在主動(dòng)遷移階段 期間,計(jì)算設(shè)備被靜止并且局部操作系統(tǒng)定址發(fā)生故障的塊并對(duì)每一個(gè)存儲(chǔ)器 塊和上下文執(zhí)行轉(zhuǎn)儲(chǔ)回調(diào)。SP使用驅(qū)動(dòng)程序來轉(zhuǎn)移存儲(chǔ)內(nèi)容?;卣{(diào)使用SP來 原子地重定址(remap)存儲(chǔ)器塊并且取消對(duì)計(jì)算設(shè)備的靜止。在清理階段期 間,SP使用移除回調(diào)來移除發(fā)生故障的分區(qū)單元并且局部操作系統(tǒng)移除PUR 驅(qū)動(dòng)程序。
當(dāng)結(jié)合附圖參考以下詳細(xì)描述時(shí),可以更容易領(lǐng)會(huì)并更好地理解本發(fā)明的 上述方面和許多附加的優(yōu)點(diǎn),附圖中
圖1是能夠支持分區(qū)單元替換的示例性計(jì)算設(shè)備的框圖2是包含多個(gè)分區(qū)單元以及無關(guān)聯(lián)的一個(gè)分區(qū)單元的示例性分區(qū)的框
圖3是圖2所示的、被重新配置成包括先前無關(guān)聯(lián)的分區(qū)單元的示例性分 區(qū)的框圖4是示例性分區(qū)單元的框7圖5是示例性發(fā)生故障的存儲(chǔ)器塊和示例性替換存儲(chǔ)器塊的框圖; 圖6A-E包括用于使用基于驅(qū)動(dòng)程序模型的驅(qū)動(dòng)程序來替換分區(qū)單元的示 例性過程的功能流程圖。
詳細(xì)描述
服務(wù)器是連接到網(wǎng)絡(luò)的、向例如計(jì)算設(shè)備等連接到該網(wǎng)絡(luò)的其它實(shí)體提供 服務(wù)或一組服務(wù)的計(jì)算設(shè)備。例如,網(wǎng)頁服務(wù)器提供響應(yīng)于網(wǎng)頁請(qǐng)求來返回網(wǎng) 頁的服務(wù)。其它示例性服務(wù)器是為特定用戶返回電子郵件消息的電子郵件服務(wù)
器、返回來自視頻歸檔的視頻剪輯的視頻服務(wù)器等。示例性服務(wù)器包含微處理 器、存儲(chǔ)器控制器以及由該存儲(chǔ)器控制器控制的存儲(chǔ)器塊。存儲(chǔ)器控制器以及 由該存儲(chǔ)器控制器控制的存儲(chǔ)器塊通常被稱為單元,即存儲(chǔ)單元。
本領(lǐng)域的技術(shù)人員可以理解,存儲(chǔ)器塊是可以例如由起始地址和大小來指 定的連續(xù)的存儲(chǔ)器段。存儲(chǔ)器塊可從一個(gè)或多個(gè)存儲(chǔ)器頁中形成。存儲(chǔ)器頁是 從主存儲(chǔ)器復(fù)制到大容量存儲(chǔ)中(例如,復(fù)制到盤上)并且按需從大容量存儲(chǔ) 重新加載回到主存儲(chǔ)器中的固定大小的存儲(chǔ)器段。將存儲(chǔ)器塊中的頁復(fù)制到大 容量存儲(chǔ)被稱為"頁調(diào)出"存儲(chǔ)器。將存儲(chǔ)器塊中的頁從大容量存儲(chǔ)重新加載 回到主存儲(chǔ)器中被稱為"頁調(diào)入"存儲(chǔ)器。 一般而言,在主存儲(chǔ)器和大容量存 儲(chǔ)之間轉(zhuǎn)移存儲(chǔ)器頁被稱為"分頁"。存儲(chǔ)器控制器以及由該存儲(chǔ)器控制器控 制的存儲(chǔ)器塊通常被稱為單元,即存儲(chǔ)單元。
服務(wù)器還可以包含其他微處理器、存儲(chǔ)器控制器、存儲(chǔ)器塊以及諸如中斷 處理器等其它電子設(shè)備。因此,只包含微處理器和存儲(chǔ)單元的服務(wù)器應(yīng)被解釋
為是示例性的而非限制性的。
如同許多類型的計(jì)算設(shè)備一樣,服務(wù)器的操作由被稱為操作系統(tǒng)的軟件程 序來控制。傳統(tǒng)計(jì)算設(shè)備只能夠運(yùn)行操作系統(tǒng)的一個(gè)實(shí)例。因此,傳統(tǒng)服務(wù)器
(即,基于一個(gè)或多個(gè)傳統(tǒng)計(jì)算設(shè)備的服務(wù)器)執(zhí)行操作系統(tǒng)的副本(即,該 操作系統(tǒng)的實(shí)例)中所包含的指令。例如,包括32個(gè)傳統(tǒng)計(jì)算設(shè)備的服務(wù)器
(即,32路服務(wù)器)可由八個(gè)微處理器組成,每一個(gè)微處理器都具有四個(gè)核并
且仍運(yùn)行一個(gè)操作系統(tǒng)。減少微處理器的數(shù)量降低服務(wù)器的成本,減少為服務(wù) 器供電所需的能量以及服務(wù)器所需的維護(hù)量。分區(qū)使得更好地利用多核微處理器的計(jì)算能力成為可能。分區(qū)是計(jì)算設(shè) 備中能夠運(yùn)行操作系統(tǒng)的獨(dú)立實(shí)例(即,局部操作系統(tǒng))的一組電可隔離 電子設(shè)備,例如,處理器、存儲(chǔ)器等??煞謪^(qū)計(jì)算設(shè)備是可被分成各分區(qū)并 且由此能夠運(yùn)行多個(gè)局部操作系統(tǒng)的計(jì)算設(shè)備??煞謪^(qū)服務(wù)器是作為可分區(qū)計(jì) 算設(shè)備并由此能夠運(yùn)行多個(gè)局部操作系統(tǒng)的服務(wù)器。可分區(qū)服務(wù)器的分區(qū)也可 被稱為"邏輯服務(wù)器"。因此, 一個(gè)可分區(qū)服務(wù)器可包含多個(gè)邏輯服務(wù)器。多 個(gè)服務(wù)器(邏輯或其它類型)可被組裝成如提供服務(wù)或一組服務(wù)的單元那樣工 作的"服務(wù)器群集"。
較佳地,分區(qū)是動(dòng)態(tài)的。即,分區(qū)單元在對(duì)服務(wù)器提供的服務(wù)具有極小影 響或沒有影響的情況下被分配給分區(qū)或從這些分區(qū)中移除。能夠被分區(qū)的服務(wù) 器是可分區(qū)服務(wù)器。包括可分區(qū)服務(wù)器的服務(wù)器系統(tǒng)(即,系統(tǒng))是可分區(qū)系 統(tǒng)??煞謪^(qū)系統(tǒng)提供了被分配給分區(qū)的分區(qū)單元和電子設(shè)備的數(shù)量和配置 方面的靈活性,并使得支持"服務(wù)器合并"更容易并且更經(jīng)濟(jì)。
服務(wù)器合并是用較少的服務(wù)器或可能甚至只用一個(gè)服務(wù)器來替換多個(gè)服 務(wù)器的過程。作為服務(wù)器合并的結(jié)果的示例性服務(wù)器通常包含等于或超過該服 務(wù)器所替換的多個(gè)服務(wù)器的能力的計(jì)算能力。服務(wù)器合并可能增加服務(wù)器故障 的影響。例如,想象慣于在多個(gè)服務(wù)器上運(yùn)行的多個(gè)應(yīng)用程序全都在該一個(gè)服 務(wù)器上運(yùn)行。如果該服務(wù)器發(fā)生故障,則影響可能影響到所有應(yīng)用程序并甚至 使應(yīng)用程序停機(jī)。
傳統(tǒng)服務(wù)器通過將服務(wù)器的計(jì)算能力的一部分應(yīng)用于諸如"故障切換"能 力等可靠性特征來這對(duì)這一影響進(jìn)行保護(hù)。已經(jīng)開發(fā)了供傳統(tǒng)服務(wù)器以受控 和有序的方式來執(zhí)行故障切換以確保在從發(fā)生故障的服務(wù)器轉(zhuǎn)換到替換服 務(wù)器期間沒有數(shù)據(jù)丟失并且沒有正在運(yùn)行的進(jìn)程被中斷的技術(shù)。因?yàn)閭鹘y(tǒng)服 務(wù)器通過網(wǎng)絡(luò)彼此連接并因此不是緊密地綁定在一起,所以工作被分為小片斷 并跨服務(wù)器共享,即,被分組化。這使得替換發(fā)生故障的服務(wù)器變得容易,因 為發(fā)生故障的服務(wù)器的工作分組可以在故障切換期間重新路由。注意,為了實(shí) 現(xiàn)故障切換,必須存在不止一個(gè)可用的傳統(tǒng)服務(wù)器。S卩,發(fā)生故障的傳統(tǒng)服務(wù) 器需要能夠接受來自該發(fā)生故障的傳統(tǒng)服務(wù)器的數(shù)據(jù)的另一類似的傳統(tǒng)服務(wù) 器。
9因?yàn)榭煞謪^(qū)服務(wù)器可包含能夠比通過網(wǎng)絡(luò)綁定在一起的傳統(tǒng)服務(wù)器更容 易地通信的多個(gè)邏輯服務(wù)器,所以可分區(qū)服務(wù)器具有比一組傳統(tǒng)服務(wù)器更容易 且更經(jīng)濟(jì)地提供可靠性的潛力。用于使用可分區(qū)服務(wù)器中的分區(qū)來操作的受控 且有序的故障切換的過程幫助實(shí)現(xiàn)可分區(qū)服務(wù)器可提供的可靠性。
通過在需要故障切換時(shí)通知每一個(gè)高級(jí)軟件應(yīng)用程序來使得可分區(qū)服務(wù) 器更加可靠是不切實(shí)際的。使高級(jí)軟件應(yīng)用程序能夠響應(yīng)這一通知將需要修改 每一個(gè)應(yīng)用程序的計(jì)算機(jī)代碼以適應(yīng)故障切換。即使通知應(yīng)用程序也可能不 足以在沒有用于替換正在運(yùn)行的服務(wù)器的一部分的機(jī)制的情況下提供故障 切換。相反,在故障切換中只涉及最底層軟件并且允許較上層軟件(例如,應(yīng) 用程序)如同未發(fā)生硬件變化那樣工作是更加實(shí)際且有利的。
有序、低級(jí)、可分區(qū)服務(wù)器故障切換的實(shí)現(xiàn)涉及全局管理實(shí)體以及一個(gè)或 多個(gè)局部操作系統(tǒng)。全局管理實(shí)體的示例是服務(wù)處理器(SP)和主板管理控制
器(BMC) 。 SP是管理諸如存儲(chǔ)器控制器和微處理器等附連到電路板或主板 的電子設(shè)備的專用微處理器或微控制器。BMC也是嵌在主板上的專用微控制 器。除管理電子設(shè)備之外,BMC監(jiān)視來自內(nèi)置到計(jì)算系統(tǒng)中的傳感器的輸入, 以報(bào)告諸如溫度、冷卻風(fēng)扇速度、供電模式、操作系統(tǒng)狀態(tài)等參數(shù)并對(duì)其作出 響應(yīng)。其它電子設(shè)備可履行全局管理實(shí)體的角色。因此,SP或BMC作為全局 管理實(shí)體的使用應(yīng)被解釋為是示例性的而非限制性的。
局部操作系統(tǒng)是在一個(gè)分區(qū)上運(yùn)行的操作系統(tǒng)的實(shí)例。分區(qū)單元被分配給 特定分區(qū)以確保該分區(qū)單元中的設(shè)備無法與其它分區(qū)中的設(shè)備共享,從而確保 故障將對(duì)于單個(gè)分區(qū)隔離。這一分區(qū)單元可指示哪些物理地址是由給定存儲(chǔ) 器控制器來服務(wù)的,并由此將這些物理存儲(chǔ)器地址映射到存儲(chǔ)器控制器以及包 含該存儲(chǔ)器控制器的物理分區(qū)單元。引導(dǎo)并操作分區(qū)可能需要不止一個(gè)分區(qū)單 元。未使用的或發(fā)生故障的分區(qū)單元可被電隔離。電隔離分區(qū)單元類似于從一 組傳統(tǒng)服務(wù)器中移除服務(wù)器且優(yōu)點(diǎn)在于分區(qū)單元可被動(dòng)態(tài)地重新分配給不同 分區(qū)。
在以上討論中,除非另外注明,否則分區(qū)單元包括單個(gè)核和單個(gè)存儲(chǔ)單元。 然而,分區(qū)單元可包括不止一個(gè)核、存儲(chǔ)單元、中斷處理器和/或提供計(jì)算服務(wù) 和/或支持的其它設(shè)備。因此,對(duì)包括核和存儲(chǔ)器控制器的分區(qū)單元的使用應(yīng)被解釋為是示例性的而非限制性的。管理(例如,添加或替換)可分區(qū)服務(wù)器中 的分區(qū)單元允許以受控且有序的方式來執(zhí)行故障切換以確保該可分區(qū)服務(wù)器 與傳統(tǒng)服務(wù)器一樣穩(wěn)健和可靠。
用于實(shí)現(xiàn)能夠支持分區(qū)以及分區(qū)單元添加和/或替換的可分區(qū)服務(wù)器的示 例性計(jì)算設(shè)備由圖1所示的框圖來示出。圖1所示的示例性計(jì)算設(shè)備100包括
服務(wù)處理器(SP) 102,其連接到存儲(chǔ)SP固件104和路由表106的存儲(chǔ)器。較 佳地,SP固件104是獨(dú)立于操作系統(tǒng)的。因此,SP固件104不是操作系統(tǒng)而 是獨(dú)立于操作系統(tǒng)的系統(tǒng)管理應(yīng)用程序的庫。通常,系統(tǒng)管理應(yīng)用程序提供命 令和命令集、命令行界面、可以是基于web的圖形界面和/或網(wǎng)絡(luò)管理協(xié)議界 面等。計(jì)算設(shè)備100還包括連接到存儲(chǔ)器塊A110的處理器A108、連接到存 儲(chǔ)器塊B 114的處理器B 112、連接到存儲(chǔ)器塊C 118的處理器C 116、以及連 接到存儲(chǔ)器塊D 122的處理器D 120。處理器108、 112、 116和120中的每一 個(gè)都包含被指定為0、 1、 2和3的四個(gè)核。由SP固件104控制的SP 102使用 路由表106來管理處理器108、 112、 126、 120以及存儲(chǔ)器塊110、 114、 118 和122。計(jì)算設(shè)備100還包括I/O (輸入/輸出)電路124、大容量存儲(chǔ)電路126、 通信電路128、環(huán)境電路130和電源132。計(jì)算設(shè)備100使用I/O電路124來 與I/O設(shè)備進(jìn)行通信。計(jì)算設(shè)備100使用大容量存儲(chǔ)電路126來與內(nèi)部或外部 地連接的大容量存儲(chǔ)設(shè)備交互。計(jì)算設(shè)備100使用通信電路128來通常通過網(wǎng) 絡(luò)與外部設(shè)備進(jìn)行通信。計(jì)算設(shè)備IOO使用環(huán)境電路130來控制諸如冷卻風(fēng)扇、 熱傳感器、濕度傳感器等環(huán)境設(shè)備。電源132為計(jì)算設(shè)備100供電。例如,如 果SP 102被BMC替換,則BMC可以與環(huán)境電路130和電源132進(jìn)行通信并 更精確地對(duì)其進(jìn)行控制。
如圖1所示并在以上描述的的示例性計(jì)算設(shè)備IOO等計(jì)算設(shè)備支持分區(qū)單 元的替換。分區(qū)單元的替換可以通過將圖2所示的框圖與圖3所示的框圖進(jìn)行 比較來理解。圖2和圖3所示的兩個(gè)框圖包括相同的四個(gè)分區(qū)單元。每一個(gè)分 區(qū)單元都包括處理器和存儲(chǔ)器塊處理器A 202,其連接到存儲(chǔ)器塊204;處 理器B206,其連接到存儲(chǔ)器塊208;處理器C210,其連接到存儲(chǔ)器塊212; 以及處理器D214,其連接到存儲(chǔ)器塊216。雖然圖2和圖3中的框圖示出了 相同的四個(gè)分區(qū)單元,但圖2所示的分區(qū)200a與圖3所示的分區(qū)200b相比包括一組不同的分區(qū)單元。
圖2所示的分區(qū)200a包括處理器A202和存儲(chǔ)器塊204;處理器B 206 和存儲(chǔ)器塊208;以及處理器C210和存儲(chǔ)器塊212。在圖2中,包括處理器D 214和存儲(chǔ)器塊216的分區(qū)單元未包括在分區(qū)200a中。與圖2所示的分區(qū)200a 相比,圖3所示的分區(qū)200b已被改變成包括一組不同的分區(qū)單元,g卩, 一組 不同的處理器和存儲(chǔ)器塊。圖3所示的分區(qū)200b包括處理器B206和存儲(chǔ) 器塊208;處理器C210和存儲(chǔ)器塊212;以及處理器D214和存儲(chǔ)器塊216。 在圖3中,包括處理器A202和存儲(chǔ)器塊204的分區(qū)單元未被包括在分區(qū)200b 中,然而包括處理器D 214和存儲(chǔ)器塊216的分區(qū)單元被包括在圖2所示的分 區(qū)200a中。實(shí)際上,包括處理器D 214和存儲(chǔ)器塊216的分區(qū)單元替換包括 處理器A 202和存儲(chǔ)器塊204的分區(qū)單元。這一替換在例如處理器A 202和/ 或存儲(chǔ)器塊204發(fā)生故障的情況下是合乎需要的。
雖然諸如處理器A 202和存儲(chǔ)器塊204等單個(gè)處理器和單個(gè)存儲(chǔ)器塊可構(gòu) 成分區(qū)單元,但分區(qū)單元可具有其它形式。具有不同形式的示例性分區(qū)單元的 詳細(xì)視圖在圖4中示出。在圖4A中,如同圖1一樣,示例性分區(qū)單元400包 括連接到存儲(chǔ)器控制器404的處理器402,其包含四個(gè)核0、 1、 2和3,存儲(chǔ) 器控制器404連接到兩個(gè)存儲(chǔ)器塊,即,存儲(chǔ)器塊A406和存儲(chǔ)器塊B410。 處理器402與控制存儲(chǔ)器塊A 406和存儲(chǔ)器塊B 410的存儲(chǔ)器控制器404進(jìn)行 通信。其他分區(qū)單元可包含表示除了處理器、存儲(chǔ)器控制器和存儲(chǔ)器塊之 外的物理設(shè)備的其他邏輯設(shè)備,或者可只包含單個(gè)處理器或單個(gè)存儲(chǔ)器控 制器。因此,分區(qū)單元400應(yīng)被解釋為是示例性的而非限制性的。
典型分區(qū)單元中的邏輯設(shè)備能夠向局部操作系統(tǒng)通知設(shè)備的狀態(tài)。作為替 換或除此之外,控制分區(qū)單元的局部操作系統(tǒng)可使用預(yù)測(cè)分析來評(píng)估邏輯設(shè)備 的狀態(tài)并確定邏輯設(shè)備是否可能發(fā)生故障并由此可以是供替換的候選。雖然諸 如系統(tǒng)管理員等人可作為日常維護(hù)的一部分來檢查設(shè)備狀態(tài),但使得硬件自己 向局部操作系統(tǒng)通知即將發(fā)生的故障是優(yōu)選的。在某些情況下,將處理器從一 個(gè)模型升級(jí)到另 一個(gè)模型或向系統(tǒng)添加處理器和/或存儲(chǔ)器是合乎需要的。雖然 系統(tǒng)管理員可執(zhí)行這些功能,但通過使用顯式編程的指令或由利用分區(qū)、分區(qū) 單元和硬件的能力來報(bào)告狀態(tài)的周期性定時(shí)指令來自動(dòng)化這樣的替換和添加
12是優(yōu)選的。
諸如圖4所示的分區(qū)單元400等分區(qū)單元可出于各種原因而發(fā)生故障。例
如,分區(qū)單元可能由于諸如圖4所示的處理器402等處理器發(fā)生故障而發(fā)生故 障。分區(qū)單元也可能由于諸如圖4所示的存儲(chǔ)器塊406等存儲(chǔ)器塊發(fā)生故障而 發(fā)生故障。當(dāng)處理器、存儲(chǔ)器塊或分區(qū)單元中的其他項(xiàng)目發(fā)生故障時(shí),期望替 換發(fā)生故障的項(xiàng)目。雖然上述討論集中于檢測(cè)并替換發(fā)生故障的存儲(chǔ)器塊,但 此處所描述的技術(shù)可應(yīng)用于檢測(cè)并替換分區(qū)單元中的其他發(fā)生故障的項(xiàng)目。因 此,發(fā)生故障的存儲(chǔ)器塊的檢測(cè)和替換應(yīng)被解釋為是示例性的而非限制性的。
如果一存儲(chǔ)器塊發(fā)生故障,則用等效存儲(chǔ)器塊來替換該存儲(chǔ)器塊是優(yōu)選 的。示例性發(fā)生故障的存儲(chǔ)器塊和等效示例性替換存儲(chǔ)器塊在圖5中示出。在 圖5中,發(fā)生故障的存儲(chǔ)器塊500包括一組存儲(chǔ)器單元504,其包含數(shù)據(jù),例 如,數(shù)字l、 2、 3和4。該組存儲(chǔ)器單元504中的存儲(chǔ)器單元可以使用局部物 理地址502來引用并且也可使用全局物理地址506來引用。局部物理地址502 使用地址1000和1001,而全局物理地址506使用地址5和6。發(fā)生故障的存 儲(chǔ)器塊500可由替換存儲(chǔ)器塊510來替換。替換存儲(chǔ)器塊510包括一組存儲(chǔ)器 單元514,其能夠包含來自發(fā)生故障的存儲(chǔ)器塊500的數(shù)據(jù),g卩,數(shù)字l、 2、 3和4。如同發(fā)生故障的存儲(chǔ)器塊一樣,替換存儲(chǔ)器塊514中的存儲(chǔ)器單元組 514中的存儲(chǔ)器單元可使用局部物理地址512來引用,并且也可使用全局物理 地址516來引用。局部物理地址512使用地址2000和2001,而全局物理地址 516使用地址7和8。在典型的替換序列中,發(fā)生故障的存儲(chǔ)器塊500的存儲(chǔ) 器單元組504中的數(shù)據(jù)被復(fù)制到替換存儲(chǔ)器塊510的存儲(chǔ)單元器組514中。發(fā) 生故障的存儲(chǔ)器塊500的局部物理地址502 (即,1000和1001)被重新映射到 替換存儲(chǔ)器塊510的局部物理地址512。在替換分區(qū)單元時(shí),執(zhí)行存儲(chǔ)器塊的 "原子"更新(即,替換)是優(yōu)選的。在存儲(chǔ)器塊的原子更新期間,如果訪問 正在更新的存儲(chǔ)器塊,則獨(dú)占地使用發(fā)生故障的存儲(chǔ)器塊的地址或者獨(dú)占地使 用替換存儲(chǔ)器塊的地址。即,對(duì)存儲(chǔ)器單元504的數(shù)據(jù)訪問是從局部物理地址 502或者局部物理地址512獨(dú)占地做出的。
較佳地,全局管理實(shí)體使得局部操作系統(tǒng)能夠原子地替換分區(qū)單元的存儲(chǔ) 單元中的存儲(chǔ)器塊??墒褂?OS"驅(qū)動(dòng)程序(即,局部操作系統(tǒng)中可用的驅(qū)動(dòng)程序)來為分區(qū)單元替換提供某一級(jí)別的支持。對(duì)于特定存儲(chǔ)器替換功能而言, 全局管理實(shí)體能夠使用固件和OS驅(qū)動(dòng)程序。如將在以下詳細(xì)描述的,在存儲(chǔ) 器替換過程期間固件和OS驅(qū)動(dòng)程序有時(shí)無法運(yùn)行。因此,在此期間,全局管 理實(shí)體無法依賴OS驅(qū)動(dòng)程序來執(zhí)行替換存儲(chǔ)器塊所需的特定功能。為了執(zhí)行
固件和OS驅(qū)動(dòng)程序無法執(zhí)行的存儲(chǔ)器替換功能,需要被設(shè)計(jì)成在此期間運(yùn)行 的驅(qū)動(dòng)程序。另外,OS驅(qū)動(dòng)程序可能無法執(zhí)行在存儲(chǔ)器替換過程期間所需的 每一個(gè)功能。例如,目標(biāo)存儲(chǔ)器與備用存儲(chǔ)器的最終對(duì)換(此時(shí)備用分區(qū)單元 采用目標(biāo)分區(qū)單元的物理地址)是平臺(tái)專用操作。該最終對(duì)換是在局部操作系 統(tǒng)的域之外執(zhí)行的硬件配置,并由此無法由OS驅(qū)動(dòng)程序來執(zhí)行。
因?yàn)槿止芾韺?shí)體和局部操作系統(tǒng)各自具有其自己的存儲(chǔ)器空間,所以需 要全局管理實(shí)體與局部操作系統(tǒng)之間的傳達(dá)數(shù)據(jù)的道路,即,數(shù)據(jù)管道。特殊 設(shè)計(jì)的驅(qū)動(dòng)程序可提供局部操作系統(tǒng)和全局管理實(shí)體之間的數(shù)據(jù)管道,從而使 得該驅(qū)動(dòng)程序能夠在整個(gè)存儲(chǔ)器替換過程中操作并由此支持分區(qū)單元替換
(PUR)。這一驅(qū)動(dòng)程序的示例是PUR驅(qū)動(dòng)程序。較佳地,PUR驅(qū)動(dòng)程序基 于PUR驅(qū)動(dòng)程序模型以抽象出存儲(chǔ)器替換功能的細(xì)節(jié)。本領(lǐng)域的技術(shù)人員可 以理解,使用基于驅(qū)動(dòng)程序模型的驅(qū)動(dòng)程序使得替換軟件和/或固件(即,用于 執(zhí)行替換的軟件和/或固件)能夠在來自多個(gè)廠商的設(shè)備上正確地運(yùn)行而不修改 用于執(zhí)行替換的軟件和/或固件。因此,為了支持發(fā)生故障的分區(qū)單元(例如, 存儲(chǔ)器)的替換,使用驅(qū)動(dòng)程序模型來抽象出用備用分區(qū)單元來替換發(fā)生故障 的分區(qū)單元的細(xì)節(jié)是優(yōu)選的。
通用PUR驅(qū)動(dòng)程序(即,跨多個(gè)平臺(tái)操作的PUR驅(qū)動(dòng)程序)可提供足夠 的性能。通過使用平臺(tái)專用PUR驅(qū)動(dòng)程序(即,針對(duì)特定硬件平臺(tái)特別編寫 的PUR驅(qū)動(dòng)程序),PUR驅(qū)動(dòng)程序模型使得替換軟件和/或固件能夠在每一個(gè) 特定硬件平臺(tái)上更高效且有效地運(yùn)行。例如,使用通用PUR驅(qū)動(dòng)程序的轉(zhuǎn)儲(chǔ) 可能通過使用逐字節(jié)復(fù)制技術(shù)來復(fù)制存儲(chǔ)器塊來執(zhí)行。使用平臺(tái)專用PUR驅(qū) 動(dòng)程序的轉(zhuǎn)儲(chǔ)可通過使用直接存儲(chǔ)器存取(DMA)技術(shù),或通常比逐字節(jié)復(fù) 制技術(shù)快得多且高效得多的其他平臺(tái)專用技術(shù)來執(zhí)行。
示例性PUR驅(qū)動(dòng)程序模型包括一組回調(diào)例程的規(guī)約。實(shí)現(xiàn)PUR驅(qū)動(dòng)程序 模型的PUR驅(qū)動(dòng)程序以與針對(duì)其編寫該P(yáng)UR驅(qū)動(dòng)程序的平臺(tái)兼容的方式實(shí)現(xiàn)
14這些回調(diào)例程中的每一個(gè)。這一實(shí)現(xiàn)允許將PUR驅(qū)動(dòng)程序插入到實(shí)現(xiàn)分區(qū)單 元替換過程的固件和/或軟件中。該固件和/或軟件然后使用這些回調(diào)例程來最 優(yōu)地執(zhí)行由回調(diào)來調(diào)用的功能。固件和/或軟件通過回調(diào)來將"上下文"傳遞給 局部操作系統(tǒng)。上下文是包含關(guān)于特定替換實(shí)例的信息(即,上下文信息)的 數(shù)據(jù)結(jié)構(gòu)。局部操作系統(tǒng)本身并不使用上下文。相反,局部操作系統(tǒng)可在其他 回調(diào)中將上下文傳回到固件和/或驅(qū)動(dòng)程序。以此方式,固件和/或軟件和驅(qū)動(dòng) 程序能夠確定哪個(gè)特定替換實(shí)例正被執(zhí)行。如果只有一個(gè)替換操作正在執(zhí)行, 則這一上下文更加方便,但如果存在同時(shí)執(zhí)行的不止一個(gè)替換操作,則這一上 下文變得更有必要。
使用基于驅(qū)動(dòng)程序模型的驅(qū)動(dòng)程序提供了避免為每一個(gè)操作系統(tǒng)定制固 件的方式。如本領(lǐng)域的技術(shù)人員可以理解的,驅(qū)動(dòng)程序模型定義名稱、輸入和 輸出以及或許回調(diào)的其他數(shù)據(jù)。針對(duì)每一平臺(tái)的驅(qū)動(dòng)程序較佳地以利用每一平 臺(tái)的能力的方式來實(shí)現(xiàn)回調(diào)。例如,示例性平臺(tái)可具有加速將存儲(chǔ)內(nèi)容從一個(gè) 塊復(fù)制到另一個(gè)塊的過程的特殊轉(zhuǎn)儲(chǔ)能力。在針對(duì)該平臺(tái)編寫的驅(qū)動(dòng)程序中, 可實(shí)現(xiàn)涉及將存儲(chǔ)內(nèi)容從一個(gè)存儲(chǔ)器塊復(fù)制到不同的存儲(chǔ)器塊的回調(diào)以便利 用該平臺(tái)的加速的轉(zhuǎn)儲(chǔ)能力。
圖6A是提供用于使用基于驅(qū)動(dòng)程序模型的驅(qū)動(dòng)程序來替換分區(qū)單元的示
例性過程的頂層視圖的功能流程圖。該過程包括四個(gè)子例程。該過程在第一個(gè)
子例程600,即,初始化處開始?;卣{(diào)機(jī)制能夠在大多數(shù)局部操作系統(tǒng)服務(wù)不 可用時(shí)操作,因?yàn)樵诔跏蓟陂g,驅(qū)動(dòng)程序接收在大多數(shù)局部操作系統(tǒng)服務(wù)不 可用時(shí)"安全"使用的一系列功能。安全功能在不通過例如觸發(fā)中斷來干擾替 換過程的情況下執(zhí)行。局部操作系統(tǒng)可例如使用涉及訪問盤驅(qū)動(dòng)器和觸發(fā)中斷 的分頁來分配存儲(chǔ)器。因此,必須提供以非分頁的方式(即,不分頁到盤驅(qū)動(dòng) 器)來分配存儲(chǔ)器的安全功能。
該過程中的后兩個(gè)子例程涉及替換存儲(chǔ)器的被動(dòng)和主動(dòng)遷移。被動(dòng)和主動(dòng) 遷移兩者的目的是在不關(guān)閉或顯著地干擾正在運(yùn)行的高級(jí)應(yīng)用程序的情況下 將盡可能多的信息從發(fā)生故障的分區(qū)單元轉(zhuǎn)移到替換分區(qū)單元。例如,通常多 個(gè)存儲(chǔ)器塊被分配給應(yīng)用程序。在應(yīng)用程序修改一存儲(chǔ)器塊時(shí),設(shè)置一標(biāo)志以 指示該存儲(chǔ)器塊已被修改。如果存儲(chǔ)器塊未被修改,則該存儲(chǔ)器塊的標(biāo)志保持未設(shè)置。通常,并非所有分配的存儲(chǔ)器塊都由應(yīng)用程序來修改。只要存儲(chǔ)器塊 未被修改,該存儲(chǔ)器塊的內(nèi)容就可在不中斷應(yīng)用程序的情況下被動(dòng)升級(jí)到替換 存儲(chǔ)器塊。
繼續(xù)參考圖6A,在初始化完成之后,控制行進(jìn)至子例程620,即,被動(dòng) 遷移。在被動(dòng)遷移完成之后,控制行進(jìn)至子例程640, g卩,主動(dòng)遷移。在主動(dòng) 遷移完成之后,控制行進(jìn)至子例程660,即,清理。在清理完成之后,該過程
結(jié)束°
圖6B是適于用作圖6A所示的初始化子例程600的示例性子例程的功能 流程圖。該子例程在框602處開始,在那里局部操作系統(tǒng)(即,OS)注冊(cè)平臺(tái) 專用分區(qū)單元替換驅(qū)動(dòng)程序(PUR驅(qū)動(dòng)程序)。在框604, OS加載PUR驅(qū)動(dòng) 程序。在框606, OS做出初始化回調(diào)。在框608, OS從PUR驅(qū)動(dòng)程序接收上 下文信息。在框608后,該子例程結(jié)束。
圖6C是適于用作圖6A所示的被動(dòng)遷移子例程620的示例性子例程的功 能流程圖。該子例程在框622處開始,在那里局部操作系統(tǒng)(即,OS)定址發(fā) 生故障的存儲(chǔ)器塊。本領(lǐng)域的技術(shù)人員和其他人將會(huì)認(rèn)識(shí)到,定址發(fā)生故障的 存儲(chǔ)器塊是通過在該OS的存儲(chǔ)器塊的地圖中標(biāo)記該發(fā)生故障的存儲(chǔ)塊的位置 來標(biāo)識(shí)發(fā)生故障的存儲(chǔ)器塊的過程。如上所述,存儲(chǔ)器塊可從一個(gè)或多個(gè)存儲(chǔ) 器頁中形成。定址發(fā)生故障的存儲(chǔ)器塊也可通過定址形成發(fā)生故障的存儲(chǔ)器塊 的存儲(chǔ)器頁來實(shí)現(xiàn)。因此,定址發(fā)生故障的存儲(chǔ)器塊應(yīng)被解釋為是示例性的而 非限制性的。在框624, OS對(duì)每一個(gè)塊和上下文做出轉(zhuǎn)儲(chǔ)回調(diào)。在被動(dòng)遷移期 間,只轉(zhuǎn)移尚未被修改的存儲(chǔ)器塊,即,其修改標(biāo)志尚未被設(shè)置的存儲(chǔ)器塊。 轉(zhuǎn)儲(chǔ)可通過對(duì)形成存儲(chǔ)器塊的存儲(chǔ)器頁分頁來實(shí)現(xiàn)。在框626, PUR驅(qū)動(dòng)程序 使用SP來轉(zhuǎn)移存儲(chǔ)內(nèi)容。在框626后,該子例程結(jié)束。對(duì)于PUR驅(qū)動(dòng)程序而 言使用其他全局系統(tǒng)硬件(例如,DMA引擎)來轉(zhuǎn)移存儲(chǔ)內(nèi)容也是可能的。 因此,PUR驅(qū)動(dòng)程序?qū)P的使用應(yīng)被解釋為是示例性的而非限制性的。
圖6D是適于用作圖6A所示的主動(dòng)遷移子例程640的示例性子例程的功 能流程圖。該子例程在框642處開始,在那里靜止系統(tǒng),例如,局部操作系統(tǒng)。 術(shù)語"靜止"指的是將系統(tǒng)置于相對(duì)非活動(dòng)狀態(tài)。當(dāng)系統(tǒng)被靜止時(shí),停止中斷 以阻止I/0設(shè)備和其他處理器觸發(fā)中斷并防止存儲(chǔ)器修改。較佳地,局部操作系統(tǒng)選擇控制處理器,S卩,將控制靜止活動(dòng)的處理器。控制處理器執(zhí)行實(shí)現(xiàn)系 統(tǒng)靜止和主動(dòng)遷移的一組指令。存在用于選擇控制處理器的各種算法。例如, 沒有正被替換的、具有最小數(shù)字的最不忙碌的處理器可被選為控制處理器。靜 止系統(tǒng)提供了用于原子替換的安全環(huán)境。
繼續(xù)參考圖6D,在框644, OS定址發(fā)生故障的塊。在框646, OS對(duì)每一 個(gè)塊和上下文做出轉(zhuǎn)儲(chǔ)回調(diào)。在框648, SP使用PUR驅(qū)動(dòng)程序來轉(zhuǎn)移存儲(chǔ)內(nèi) 容。回想,如上所述,在被動(dòng)遷移期間只轉(zhuǎn)移尚未被修改的存儲(chǔ)器塊,S卩,其 修改標(biāo)志尚未被設(shè)置的存儲(chǔ)器塊。在主動(dòng)遷移期間,轉(zhuǎn)移的存儲(chǔ)器塊是其余存 儲(chǔ)器塊,即,其修改標(biāo)志已被設(shè)置的存儲(chǔ)器塊。較佳地,在被動(dòng)和主動(dòng)遷移兩 者期間執(zhí)行的轉(zhuǎn)儲(chǔ)使用加速復(fù)制存儲(chǔ)內(nèi)容的過程的平臺(tái)專用轉(zhuǎn)儲(chǔ)能力。在框 650,回調(diào)使用SP來原子地重定址存儲(chǔ)器。在框650處執(zhí)行的存儲(chǔ)器的重定址
使得備用分區(qū)單元中的存儲(chǔ)器一旦得到響應(yīng)就響應(yīng)與原始分區(qū)單元中的存儲(chǔ) 器相同的局部操作系統(tǒng)物理地址。實(shí)際上,執(zhí)行其中從局部操作系統(tǒng)的觀點(diǎn)來 看備用分區(qū)單元取代了原始分區(qū)單元的"對(duì)換"。也可對(duì)處理器執(zhí)行這一對(duì)換。
繼續(xù)參考圖6D,在框652,取消對(duì)系統(tǒng)的靜止。取消對(duì)系統(tǒng)的靜止基本 上是靜止系統(tǒng)的逆操作。即,系統(tǒng)以受控的方式并大致按靜止過程的相反次序 恢復(fù)到正常活動(dòng)狀態(tài)。在框652后,該子例程結(jié)束。
圖6E是適于用作圖6A所示的清理子例程660的示例性子例程的功能流 程圖。該子例程在框662處開始,在那里SP使用回調(diào)來移除發(fā)生故障的分區(qū) 單元,S卩,包含發(fā)生故障的存儲(chǔ)單元的分區(qū)單元。在框664, OS卸載PUR驅(qū) 動(dòng)程序。在框664后,該子例程結(jié)束,從而結(jié)束了圖6A所示的示例性過程。
雖然上述驅(qū)動(dòng)程序模型以及圖6A-E所示的并且也在上文中描述的用于使 用該驅(qū)動(dòng)程序模型的過程涉及替換存儲(chǔ)器塊(g卩,塊),但在驅(qū)動(dòng)程序模型中 具有允許處理器狀態(tài)轉(zhuǎn)移或用于其他類型的設(shè)備(例如,中斷控制器)的狀態(tài) 轉(zhuǎn)移的回調(diào)也是可能的。例如,在需要操縱發(fā)生故障的處理器的物理APICID 的情況下可能需要用于處理器的回調(diào)。同樣,雖然上述示例性驅(qū)動(dòng)程序模型只 涉及存儲(chǔ)器替換,但驅(qū)動(dòng)程序模型還可幫助將存儲(chǔ)器添加到分區(qū)。
盡管示出和描述了各說明性實(shí)施例,但是可以認(rèn)識(shí)到,可在其中作出各種 改變而不背離本發(fā)明的精神和范圍。例如,雖然以上所示和所述各說明性實(shí)施
17例涉及檢測(cè)并替換發(fā)生故障的存儲(chǔ)器塊,但類似的技術(shù)也可應(yīng)用于檢測(cè)并替換 發(fā)生故障的分區(qū)單元中的其他類型的發(fā)生故障的項(xiàng)目。
權(quán)利要求
1.一種在包括多個(gè)分區(qū)單元的計(jì)算系統(tǒng)中的采用分區(qū)單元替換(PUR)驅(qū)動(dòng)程序來替換分區(qū)單元的方法,所述方法包括初始化所述PUR驅(qū)動(dòng)程序以供局部操作系統(tǒng)用來用替換分區(qū)單元來替換所述分區(qū)單元;采用所述PUR驅(qū)動(dòng)程序來將存儲(chǔ)內(nèi)容從將被替換的分區(qū)單元轉(zhuǎn)移到所述替換分區(qū)單元;以及清理所述轉(zhuǎn)移。
2. 如權(quán)利要求1所述的方法,其特征在于,初始化所述PUR驅(qū)動(dòng)程序以 供局部操作系統(tǒng)使用包括所述局部操作系統(tǒng)注冊(cè)所述驅(qū)動(dòng)程序;以及 所述局部操作系統(tǒng)加載所述驅(qū)動(dòng)程序。
3. 如權(quán)利要求1所述的方法,其特征在于,所述PUR驅(qū)動(dòng)程序是平臺(tái)專 用驅(qū)動(dòng)程序。
4. 如權(quán)利要求2所述的方法,其特征在于,初始化所述PUR驅(qū)動(dòng)程序以 供局部操作系統(tǒng)使用包括-所述局部操作系統(tǒng)執(zhí)行初始化回調(diào);以及 所述局部操作系統(tǒng)從所述PUR驅(qū)動(dòng)程序獲取上下文信息。
5. 如權(quán)利要求4所述的方法,其特征在于,所述PUR驅(qū)動(dòng)程序是平臺(tái)專 用的。
6. 如權(quán)利要求1所述的方法,其特征在于,采用所述PUR驅(qū)動(dòng)程序來將 存儲(chǔ)內(nèi)容從將被替換的分區(qū)單元轉(zhuǎn)移到所述替換分區(qū)單元包括被動(dòng)和主動(dòng)遷 移。
7. 如權(quán)利要求6所述的方法,其特征在于,被動(dòng)遷移包括 所述局部操作系統(tǒng)將所述將被替換的分區(qū)單元中的未使用的存儲(chǔ)器塊映射到所述替換分區(qū)單元中的存儲(chǔ)器塊;以及所述局部操作系統(tǒng)在定址了每一個(gè)塊時(shí)對(duì)每一個(gè)塊和上下文執(zhí)行轉(zhuǎn)儲(chǔ)回調(diào)。
8. 如權(quán)利要求7所述的方法,其特征在于,所述PUR驅(qū)動(dòng)程序使用全局 系統(tǒng)硬件來將存儲(chǔ)器塊從所述將被替換的分區(qū)單元轉(zhuǎn)移到所述替換分區(qū)單元。
9. 如權(quán)利要求8所述的方法,其特征在于,全局系統(tǒng)硬件是服務(wù)處理器。
10. —種包含基于包括多個(gè)回調(diào)的PUR驅(qū)動(dòng)程序模型的PUR驅(qū)動(dòng)程序 的計(jì)算機(jī)可讀介質(zhì)。
11. 如權(quán)利要求10所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述多個(gè)回 調(diào)包括用于初始化分區(qū)單元的替換的初始化回調(diào)。
12. 如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述初始化 回調(diào)返回上下文。
13. 如權(quán)利要求10所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述多個(gè)回 調(diào)包括用于被動(dòng)轉(zhuǎn)移存儲(chǔ)內(nèi)容的被動(dòng)轉(zhuǎn)儲(chǔ)回調(diào)。
14. 如權(quán)利要求10所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述多個(gè)回 調(diào)包括用于主動(dòng)轉(zhuǎn)移存儲(chǔ)內(nèi)容的主動(dòng)轉(zhuǎn)儲(chǔ)回調(diào)。
15. 如權(quán)利要求10所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述多個(gè)回 調(diào)包括用于移除分區(qū)單元的分區(qū)單元移除回調(diào)。
16. 如權(quán)利要求10所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述PUR驅(qū) 動(dòng)程序是通用驅(qū)動(dòng)程序。
17. 如權(quán)利要求IO所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述PUR驅(qū) 動(dòng)程序是平臺(tái)專用驅(qū)動(dòng)程序。
18. 如權(quán)利要求10所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述回調(diào)包 括轉(zhuǎn)儲(chǔ)回調(diào)。
19. 如權(quán)利要求10所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述回調(diào)包 括轉(zhuǎn)移處理器狀態(tài)回調(diào)。
全文摘要
公開了用于替換分區(qū)單元的各裝置和方法。公開了基于指定多個(gè)回調(diào)的驅(qū)動(dòng)程序模型的通用和平臺(tái)專用驅(qū)動(dòng)程序。這些驅(qū)動(dòng)程序使得能夠替換分區(qū)單元而不必針對(duì)每一平臺(tái)重新編譯計(jì)算設(shè)備的固件和/或軟件。該多個(gè)回調(diào)提供對(duì)在操作系統(tǒng)服務(wù)不可用時(shí)安全使用的多個(gè)功能的訪問。該多個(gè)回調(diào)包括,但不限于,初始化、轉(zhuǎn)儲(chǔ)和轉(zhuǎn)移處理器狀態(tài)回調(diào)。這些方法使用這些驅(qū)動(dòng)程序來替換分區(qū)單元。較佳地,分區(qū)單元使用利用平臺(tái)專用能力的平臺(tái)專用分區(qū)單元替換(PUR)驅(qū)動(dòng)程序來替換。
文檔編號(hào)G06F12/06GK101553791SQ200780042958
公開日2009年10月7日 申請(qǐng)日期2007年11月20日 優(yōu)先權(quán)日2006年11月21日
發(fā)明者A·J·瑞茨, E·D·沃克, M·G·特里克爾, S·S·約德, T·C·趙 申請(qǐng)人:微軟公司