專利名稱:再分配處理環(huán)境的物理處理器的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明 一般涉及在處理環(huán)境內(nèi)的處理,并且特別涉及并行再分配支持(backing)處理環(huán)境的邏輯處理器的物理處理器。
技術(shù)背景操作系統(tǒng)將處理器視作邏輯處理器。該邏輯處理器由某個(gè)物理處 理器支持。當(dāng)在加載操作系統(tǒng)之前啟動和初始化機(jī)器時(shí),確定處理器 的物理分配。通常, 一旦作出邏輯到物理處理器的分配,該分配就不 被改變。然而,在某些嚴(yán)格的條件下,可改變邏輯到物理處理器的分配。 具體地說,假定處理環(huán)境內(nèi)存在備用處理器,如果處理器出現(xiàn)故障, 則可改變分配。具體地說,在出現(xiàn)故障處理器的情況下,分配被改變, 以使備用處理器而不是出現(xiàn)故障的處理器支持邏輯處理器。發(fā)明內(nèi)容雖然分配改變可用于出現(xiàn)故障的處理器,但是對于用于再分配邏 輯處理器的物理支持的改進(jìn)能力存在著需求。在一個(gè)例子中,需要用 于操作處理器的物理處理器再分配的能力。例如,存在著對物理處理 器再分配能力的需求,其可與支持邏輯處理器的物理處理器的操作并 行執(zhí)行。進(jìn)一步地,存在著對再分配能力的需求,其被透明地并且在 沒有使用操作系統(tǒng)軟件的開銷的情況下執(zhí)行。通過提供再分配處理環(huán)境的物理處理器的方法,克服了現(xiàn)有技術(shù) 的缺點(diǎn)并且提供了額外的優(yōu)點(diǎn)。例如,方法包括確定支持邏輯處理器 的物理處理器將被改變;以及將另 一個(gè)物理處理器再分配給邏輯處理
器,其中再分配與物理處理器的操作并行進(jìn)行。此處還描述并且要求保護(hù)對應(yīng)于以上所概述的方法的系統(tǒng)和計(jì) 算機(jī)程序產(chǎn)品。通過本發(fā)明的技術(shù),實(shí)現(xiàn)了附加特性和優(yōu)點(diǎn)。此處詳細(xì)描寫了本 發(fā)明的其它實(shí)施例和方面,并且其被認(rèn)為是有請求保護(hù)的發(fā)明的一部 分。
本發(fā)明的一個(gè)或多個(gè)方面在說明書結(jié)束部分的權(quán)利要求書中作 為例子被具體指出和明確要求保護(hù)。通過以下結(jié)合附圖的詳細(xì)說明將明白本發(fā)明的上述及其它目的、特性和優(yōu)點(diǎn),其中圖l描述了處理環(huán)境的 一個(gè)實(shí)施例以引入和使用本發(fā)明的 一個(gè)或 多個(gè)方面;圖2根據(jù)本發(fā)明的一個(gè)方面描述了與執(zhí)行并行物理處理器再分配 相關(guān)的邏輯的一個(gè)實(shí)施例;圖3根據(jù)本發(fā)明的一個(gè)方面描述了與執(zhí)行并行物理處理器再分配 的一個(gè)實(shí)施例相關(guān)的更多細(xì)節(jié);圖4根據(jù)本發(fā)明的一個(gè)方面描述了與確定在并行物理處理器再分 配期間所使用的新配置相關(guān)的邏輯的 一個(gè)實(shí)施例;圖5根據(jù)本發(fā)明的一個(gè)方面描述了與存儲將被再分配的源處理器 的操作狀態(tài)相關(guān)的邏輯的一個(gè)實(shí)施例;圖6根據(jù)本發(fā)明的一個(gè)方面描述了與將所存儲的操作狀態(tài)加載到 目標(biāo)處理器上相關(guān)的邏輯的一個(gè)實(shí)施例;以及圖7描述了引入本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算機(jī)程序產(chǎn)品的一 個(gè)實(shí)施例。
具體實(shí)施方式
根據(jù)本發(fā)明的一個(gè)方面,改變處理環(huán)境的一個(gè)或多個(gè)邏輯處理器 的物理支持。例如,當(dāng)前分配給邏輯處理器(源處理器)的物理處理
器被另一個(gè)物理處理器(目標(biāo)處理器)替代。在最初支持邏輯處理器(即源處理器)的物理處理器正運(yùn)行(與故障、檢查停止(check stopped)或者時(shí)鐘停止(clock-st叩ped )相反)的同時(shí),執(zhí)行另一個(gè) 物理處理器到邏輯處理器的再分配,并且該再分配對于包括邏輯分區(qū) 管理程序的操作系統(tǒng)軟件來說是透明的,并且無需其介入。對于一個(gè) 或多個(gè)邏輯處理器可以并行地執(zhí)行再分配。在各種類型處理環(huán)境中使用本發(fā)明的一個(gè)或多個(gè)方面。參考圖l 描述了引入并且使用本發(fā)明的一個(gè)或多個(gè)方面的處理環(huán)境的一個(gè)實(shí)施 例。處理環(huán)境100包含經(jīng)由一個(gè)或多個(gè)連接104彼此連接的多個(gè)處理器 102。該例子中的每個(gè)處理器為執(zhí)行由國際商業(yè)機(jī)器公司(IB1V^)提 供的z/ 08@操作系統(tǒng)的2861^8@服務(wù)器。連接104是例如令牌環(huán)、網(wǎng)絡(luò) 連接、電纜或者任何其他類型連接。IBM 、 zSeries②和z/ 08@是國際 商用機(jī)器7>司(美國,New York, Armonk)的注冊商標(biāo)。此處所 使用的其他名字可以是國際商用機(jī)器公司或其它公司的注冊商標(biāo)、商 標(biāo)或產(chǎn)品名稱。每個(gè)處理器102被視為針對其操作系統(tǒng)的邏輯處理器。然而,該 邏輯處理器由分配給其的物理處理器支持。例如,基于處理器類型(即 CPU、 SAP)和/或機(jī)器配置(例如物理處理器的布置、段(book)的 數(shù)量)等,由環(huán)境的固件(例如微碼)進(jìn)行處理器的物理分配。再分配一個(gè)或多個(gè)邏輯處理器的物理支持是有必要或期望的。 即,有時(shí)期望改變一個(gè)或多個(gè)邏輯處理器的物理支持。作為例子,在 段替換操作和/或處理器升級期間,分配改變是有好處的。在段替換操 作期間,段被作為目標(biāo)從系統(tǒng)中移除。如果操作系統(tǒng)正使用物理上位 于被定為移除目標(biāo)的段上的一個(gè)或多個(gè)處理器,則作為抽空 (evacuation)的一部分,邏輯處理器被移動到物理上位于系統(tǒng)中剩 余的另一個(gè)段上的處理器中。類似地,當(dāng)處理器升級發(fā)生時(shí),分配新 的處理器資源。新的處理器資源取代備用處理器,并且備用處理器的 物理位置基于現(xiàn)有配置可能不是最優(yōu)的。因此,重新分配當(dāng)前分配的 物理處理器資源。 參照圖2描述與物理處理器再分配相關(guān)的邏輯的一個(gè)實(shí)施例。在 一個(gè)例子中,該邏輯以處理環(huán)境的一個(gè)或多個(gè)處理器的微碼來執(zhí)行。參考圖2,最初,在步驟200啟動再分配。出于若干不同原因可以 啟動再分配,包括例如重新分配處理環(huán)境的資源或執(zhí)行并行段替換操 作。還存在其它再分配的原因。在一個(gè)實(shí)施例中,在所有處理環(huán)境的 處理器上接收到再分配指示。在另一個(gè)實(shí)施例中,在處理器的子集上 接收到再分配指示。在步驟202中,響應(yīng)于啟動再分配,在一個(gè)或多個(gè)處理器中的每 個(gè)上執(zhí)行再分配。在步驟204中,為執(zhí)行再分配,確定將被再分配的一 個(gè)或多個(gè)物理處理器(即確定一個(gè)或多個(gè)源)。進(jìn)一步地,在步驟206 中,確定作為再分配的目標(biāo)的物理處理器。特定物理處理器可以既是 目標(biāo)又是源。例如,如果交換將要發(fā)生(例如iPUl/pPUl, iPU2/pPU2—iPU2/pPUl, iPUl/pPU2 ),則交換的處理器既是源又是 目標(biāo)。進(jìn)行這些確定之后,在步驟208中,再分配發(fā)生。這包括在目標(biāo) 物理處理器上存儲源物理處理器的操作狀態(tài)。例如,在上述交換例子 中,物理處理器2的操作狀態(tài)被再分配給物理處理器1,而物理處理器l 的操作狀態(tài)被再分配給物理處理器2。參考圖3-6描述了有關(guān)物理處理器的并行再分配的更多細(xì)節(jié)。具 體地說,圖3描述了與包括4個(gè)處理器的處理環(huán)境中并行物理處理器再 分配相關(guān)的邏輯的一個(gè)實(shí)施例;圖4描述了與確定再分配所使用的新配 置相關(guān)的邏輯的一個(gè)實(shí)施例;圖5描述了與存儲源處理器的狀態(tài)相關(guān)的 邏輯的一個(gè)實(shí)施例;以及圖6描述了與將所存儲的狀態(tài)加載到目標(biāo)處理 器上相關(guān)的邏輯的 一個(gè)實(shí)施例。參考圖3,有4個(gè)處理器300,每個(gè)由邏輯處理器標(biāo)識符(iPUx) 302和物理處理器標(biāo)識符(pPUx) 304表示。在某時(shí)間點(diǎn)上,并行物理 處理器再分配技術(shù)在處理器上被啟動。作為一個(gè)例子,通過在環(huán)境的 每個(gè)操作處理器(或在另一個(gè)實(shí)施例中,在處理器的子集)上執(zhí)行指 令來啟動再分配。指令包括例如表示將被執(zhí)行的操作的操作碼,以及 存儲在寄存器中、標(biāo)識用來控制操作的參數(shù)塊的地址的地址。參數(shù)塊包括若干字段,例如抽空字段,指明再分配是否是抽空的一部分; 再平衡字段,指明再分配是否是再平衡功能的一部分;備用字段,指 明備用處理器是否可以在相同的段中;段編號,指明用于抽空功能的 段的編號;返回碼;以及舊配置數(shù)據(jù),其提供用于跟蹤和調(diào)試的記錄, 并且包括例如在處理開始時(shí)的配置數(shù)據(jù)(例如oper-PPU、 oper-CPU、 oper-SAP等等),描述每個(gè)物理PU編號的處理器類型的向量,物理到 邏輯PU映射,以及每個(gè)邏輯PU的處理器信息(例如類型、狀態(tài)、物 理PUid)。響應(yīng)于處理器上啟動指令,由處理器固件(例如微碼)執(zhí)行再分 配,其作為固件中調(diào)用指令的結(jié)果來執(zhí)行。作為一個(gè)例子,在步驟310 中,響應(yīng)于執(zhí)行指令,處理環(huán)境的處理器被同步。在該例子中,同步 是針對所有處理器,包括備用處理器。此外,單處理器被選作主處理 器。該選擇可以是隨機(jī)的,或基于一些預(yù)先定義的準(zhǔn)則。在該例子中, 處理器3被選作主處理器。主處理器負(fù)責(zé)提醒系統(tǒng)中的任何備用處理器 進(jìn)行同步,并且還負(fù)責(zé)控制處理流程。響應(yīng)于環(huán)境中的所有操作處理器達(dá)到同步,在步驟312中,主處 理器確定處理環(huán)境的新配置。作為例子,基于處理環(huán)境的要求以及調(diào) 用的原因(例如段抽空、處理器重新分布等等)確定該新配置。作為 該確定的一部分,主處理器確定將被再分配的一個(gè)或多個(gè)物理處理器 (源),以及將作為源的目標(biāo)的一個(gè)或多個(gè)物理處理器,下面更詳細(xì) 地描述這一點(diǎn)。作出該確定之后,主處理器更新處理環(huán)境內(nèi)的全局結(jié) 構(gòu)(例如硬件系統(tǒng)區(qū)域存儲位置),其描述了對物理處理器分配的改 變。例如,全局結(jié)構(gòu)指出哪個(gè)物理處理器被再分配給特定的邏輯處理 器。這里,在步驟314中,每個(gè)處理器回到同步點(diǎn)。此后,主處理器觸發(fā)處理器以離開同步狀態(tài),并且檢查新的物理 處理器分配。在步驟316中,由主處理器選定將被再分配的物理處理器 將其微結(jié)構(gòu)設(shè)計(jì)的狀態(tài)存儲在指定的存儲器中,并且在步驟318中回到 同步點(diǎn)。微結(jié)構(gòu)設(shè)計(jì)的狀態(tài)為物理處理器的操作狀態(tài)。其包括處理器 檢查點(diǎn)狀態(tài)信息,所述狀態(tài)信息包括例如通用寄存器、訪問寄存器、 浮點(diǎn)寄存器、控制寄存器、定時(shí)設(shè)備寄存器、系統(tǒng)配置寄存器、指令地址寄存器等的內(nèi)容。在步驟318中,沒有被選定將被再分配的處理器 回到同步點(diǎn)。此后,主處理器觸發(fā)處理器以離開同步狀態(tài),并且再次檢查新的 物理處理器分配。在步驟320中,由主處理器選定作為目標(biāo)的物理處理 器加載相應(yīng)的源物理處理器的微結(jié)構(gòu)設(shè)計(jì)的狀態(tài),并且在步驟322中回 到同步。在步驟322中,沒有被選定作為目標(biāo)的處理器也回到同步點(diǎn)。響應(yīng)于處理器回到同步點(diǎn),操作完成,并且主處理器觸發(fā)處理器 結(jié)束再分配過程。在該實(shí)施例中,作為再分配的結(jié)果,邏輯處理器l (iPUl)現(xiàn)在由物理處理器2 (參見附圖標(biāo)記324)支持,而邏輯處理 器2 (iPU2)現(xiàn)在由物理處理器l (參見附圖標(biāo)記326)支持。有關(guān)再分配過程的更多細(xì)節(jié)描述如下。例如,參考圖4描述了與 確定新配置(步驟312)相關(guān)的邏輯的一個(gè)實(shí)施例。如上所述,響應(yīng)于 系統(tǒng)中的處理器到達(dá)同步點(diǎn),該邏輯在主處理器上執(zhí)行。參考圖4,在詢問400中,確定再分配是否因?yàn)槌榭斩粓?zhí)行。 再分配的原因由啟動再分配的指令來指明。在步驟402中,如果再分配 因?yàn)槌榭斩粓?zhí)行,則建立源處理器列表,其包括物理上位于作為 移除目標(biāo)的段上的非備用處理器。此外,在步驟404中,建立目標(biāo)處理 器列表,其包括針對源列表中的每個(gè)處理器,物理上位于不是移除目 標(biāo)的段之一上的備用處理器。然而,如果再分配沒有因?yàn)槌榭斩趫?zhí)行,則在該實(shí)施例中,再 分配作為并行處理器升級操作的一部分而在執(zhí)行。同樣地,作為例子, 在步驟406中建立源處理器列表,其包括不在基于處理器類型(例如 CPU、 SAP等等)和機(jī)器配置(例如每段物理處理器的數(shù)量,以及系 統(tǒng)中的段的數(shù)量)的所需物理位置中的處理器。這由例如保持在內(nèi)部 存儲器中的數(shù)據(jù)結(jié)構(gòu)(例如表)來確定。除了源列表之外,在步驟408中建立目標(biāo)處理器列表,其中對于 源處理器列表中的每個(gè)處理器,找到?jīng)]有位于其最優(yōu)物理位置,但是
會符合源處理器位置的要求的另一個(gè)處理器。即,如由保持在內(nèi)部存 儲器中的數(shù)據(jù)結(jié)構(gòu)所確定的,每個(gè)目標(biāo)為沒有在基于處理器類型和機(jī) 器配置的其最優(yōu)物理位置中的物理處理器。建立源和目標(biāo)處理器列表之后,在步驟410中,不考慮再分配的 原因,保存源和目標(biāo)列表。在一個(gè)例子中,源和目標(biāo)處理器列表被保 存在硬件系統(tǒng)區(qū)域存儲器的公共區(qū)域中,使得列表可用于系統(tǒng)中的所 有處理器。隨后,在步驟412中更新配置。作為一個(gè)例子,更新硬件系統(tǒng)區(qū) 域存儲器中的處理器配置信息以反映最終配置。這包括更新物理到邏 輯向量,邏輯到物理向量,以及每個(gè)處理器類型的位向量(表明處理 器的類型,例如SAP, CPU)。在主處理器確定新配置之后,每個(gè)處理器將檢查新的物理處理器 分配。參考圖5描述該處理的一個(gè)實(shí)施例。最初,在詢問500中,由執(zhí) 行該邏輯的處理器確定其是否應(yīng)離開其同步點(diǎn)。如果處理器尚未被觸 發(fā)離開其同步點(diǎn),則其保留。否則,在步驟502中,處理器從硬件系統(tǒng) 區(qū)域存儲器中獲取源處理器列表。在詢問504中,處理器檢查列表以確 定其是否已被指定為源處理器。如果不是,則在步驟506中,完成該處 理器的處理,而且其到達(dá)另一個(gè)同步點(diǎn)。然而,如果處理器被指定為源處理器,則在步驟508中,處理器 在硬件系統(tǒng)區(qū)域存儲器中存儲在這里被稱作為Runit或微結(jié)構(gòu)設(shè)計(jì)的 狀態(tài)的其自身操作狀態(tài)。該操作狀態(tài)包括例如由微碼可見的處理器的 完全狀態(tài)。在一個(gè)例子中,使用一系列讀Runit寄存器和存儲指令完成 存儲。每個(gè)寄存器由例如指令讀取,并且所指定的寄存器的內(nèi)容以數(shù) 據(jù)結(jié)構(gòu)的方式被存儲在存儲器(例如硬件系統(tǒng)區(qū)域存儲器)中。此后, 在步驟506中其進(jìn)入同步點(diǎn)。在處理器存儲Runit狀態(tài)并且進(jìn)入另一個(gè)同步點(diǎn)之后,如參考圖6 所描述的,執(zhí)行進(jìn)一步的處理。在一個(gè)實(shí)施例中,最初,在詢問600 中確定處理器是否應(yīng)離開同步點(diǎn)。在其何時(shí)能夠離開同步點(diǎn)方面,每 個(gè)處理器由主處理器觸發(fā)。主處理器在源處理器存儲其操作或微結(jié)構(gòu)
設(shè)計(jì)的狀態(tài)之后,觸發(fā)處理器離開同步狀態(tài),并且檢查新的物理處理 器分配。處理器直到該點(diǎn)之前一直保留在同步點(diǎn)處。如果確定處理器將離開同步點(diǎn),則在步驟602中其獲取目標(biāo)處理器列表。在詢問604中, 處理器檢查列表以確定其是否被指定為目標(biāo)。如果處理器為目標(biāo)處理 器,則在步驟606中其更新所存儲的結(jié)構(gòu)設(shè)計(jì)的狀態(tài)。例如,目標(biāo)處理 器基于標(biāo)識該目標(biāo)的源的目標(biāo)列表,確定源處理器的所存儲的操作狀 態(tài)在硬件系統(tǒng)區(qū)域存儲器中的位置。其更新源處理器的所存儲的操作 狀態(tài)以反映新的物理處理器。例如,其更新處理器單元編號以反映目 標(biāo)物理處理器單元編號。此外,在步驟608中,目標(biāo)處理器將所存儲的結(jié)構(gòu)設(shè)計(jì)的狀態(tài)加 載到目標(biāo)處理器上。在一個(gè)例子中,目標(biāo)處理器發(fā)出以改變的源處理 器的所存儲的Runit狀態(tài)為目標(biāo)的加載R-Unit狀態(tài)指令。加載R-Unit 狀態(tài)指令以例如微碼方式執(zhí)行,并且在目標(biāo)處理器上通過單一、原子 操作加載相應(yīng)源處理器的R-Unit寄存器。例如,起始于加載指令的操 作數(shù)字段中所指定的存儲位置,順序地、每次雙字地加栽寄存器。在 由Slegel等人于2001年2月13日提交的、標(biāo)題為"Transparent Processor Sparing"的美國專利6,189,112中描述了該指令的一個(gè)實(shí)施例,這里完 整地參考引用了該專利。此后,在步驟610中,處理回到同步點(diǎn)。響應(yīng)于所有處理器回到 同步點(diǎn),操作完成,并且主處理器觸發(fā)所有處理器以回到正常操作。 在一個(gè)例子中,這包括進(jìn)行觸發(fā)以結(jié)束內(nèi)部指令。上面詳細(xì)描述的是并行再分配邏輯處理器的物理支持的能力。在 (例如不處于出現(xiàn)故障、檢查停止或時(shí)鐘停止?fàn)顟B(tài)的)物理處理器的 操作期間, 一個(gè)物理處理器的操作狀態(tài)被移動到另一個(gè)物理處理器。利用該再分配,另一個(gè)物理處理器支持邏輯處理器。對于環(huán)境的一個(gè) 或多個(gè)處理器可以完成這個(gè)。本發(fā)明的一個(gè)或多個(gè)方面可包含于具有例如計(jì)算機(jī)可用介質(zhì)的 制造產(chǎn)品中(例如, 一個(gè)或多個(gè)計(jì)算機(jī)程序產(chǎn)品)。介質(zhì)具有例如邏 輯的計(jì)算機(jī)可讀程序代碼裝置(例如指令、代碼、命令等等),以提
供并且有利于本發(fā)明的能力。制造產(chǎn)品可作為計(jì)算機(jī)系統(tǒng)的一部分被 包含,或被單獨(dú)銷售。參考圖7描述引入本發(fā)明的一個(gè)或多個(gè)方面的制造產(chǎn)品或計(jì)算機(jī) 程序產(chǎn)品的 一個(gè)例子。計(jì)算機(jī)程序產(chǎn)品700包括例如一個(gè)或多個(gè)計(jì)算 機(jī)可用介質(zhì)702以存儲計(jì)算機(jī)可讀程序代碼裝置或邏輯704,用于提供 以及有利于本發(fā)明的一個(gè)或多個(gè)方面。介質(zhì)可以是電子、磁、光學(xué)、 電磁、紅外或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的例子包括半導(dǎo)體或固態(tài)存儲器、磁帶、可拆卸計(jì)算機(jī)盤片、隨 機(jī)訪問存儲器(RAM)、只讀存儲器(ROM)、硬磁盤和光盤。光 盤的例子包括光盤只讀存儲器(CD-ROM)、光盤讀/寫存儲器(CD 畫R/W)和DVD。由一個(gè)或多個(gè)計(jì)算機(jī)可讀程序代碼裝置或邏輯定義的程序指令 序列或一個(gè)或多個(gè)相關(guān)模塊的邏輯組件指引本發(fā)明的一個(gè)或多個(gè)方面 的執(zhí)行。有利之處是,邏輯處理器的物理支持的再分配與物理處理器的操 作并行地執(zhí)行。即,為了執(zhí)行該再分配,處理器不必處于檢查停止、 時(shí)鐘停止或故障模式。此外,目標(biāo)處理器不必為備用處理器??蓪?件透明地執(zhí)行再分配,并且無需軟件的介入,軟件包括操作系統(tǒng)和/ 或邏輯分區(qū)管理程序。作為一個(gè)例子,以微碼方式執(zhí)行再分配以提供 某些性能增強(qiáng)。然而,在其他實(shí)施例中,可以以軟件、硬件、固件或 其組合的方式執(zhí)行。雖然上面描述了各個(gè)實(shí)施例,但是這僅僅是例子。例如,除了此 處所描述的處理環(huán)境之外的其它處理環(huán)境也可受益于本發(fā)明的一個(gè)或 多個(gè)方面。例如,可以有比此處所描述的更多或更少的處理器,并且處理器可以不同于2861^8@處理器。進(jìn)一步地,操作系統(tǒng)可以不同于Z/OS ,并且不同處理器中的操作系統(tǒng)可以相同或彼此不同。在沒有偏離本發(fā)明的宗旨的情況下,可以對處理環(huán)境做若干其它改變。作為另一個(gè)的例子,雖然在此處所描述的實(shí)施例中執(zhí)行兩個(gè)處理 器的交換,但是這僅僅是一個(gè)例子。再分配可以在比上面描述的更多
或更少的處理器之間執(zhí)行。并且,在另一個(gè)例子中,主處理器可以是 源或目標(biāo)或者兩個(gè)都是。在另一個(gè)例子中,雖然指令被用于執(zhí)行包括 啟動再分配的某些功能,但是在其他實(shí)施例中,這些功能可以由其它 指令執(zhí)行。在沒有偏離本發(fā)明的宗旨的情況下,可以存在若干其它改 變。進(jìn)一步地,適于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)是可用 的,其包括至少一個(gè)直接或通過系統(tǒng)總線間接連接到存儲器單元的處 理器。存儲器單元包括例如在實(shí)際執(zhí)行程序代碼期間采用的本地存儲 器,大容量存儲器,以及高速緩沖存儲器,其提供至少一些程序代碼 的臨時(shí)存儲以便減少在執(zhí)行期間必須從大容量存儲器取回代碼的次 數(shù)。輸入/輸出或I/0設(shè)備(包括但不限于鍵盤、顯示器、指示設(shè)備等等)可被直接或通過i/o控制器的介入連接到系統(tǒng)。網(wǎng)絡(luò)適配器也可被連接到系統(tǒng),以使數(shù)據(jù)處理系統(tǒng)能通過專用或公共網(wǎng)絡(luò)的介入連接到 其它數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲設(shè)備。調(diào)制解調(diào)器、電纜調(diào)制 解調(diào)器和以太網(wǎng)卡僅是可用網(wǎng)絡(luò)適配器類型的幾個(gè)例子。本發(fā)明的一個(gè)或多個(gè)方面的能力可以通過軟件、固件、硬件或其 某種組合來實(shí)現(xiàn)??商峁┲辽僖粋€(gè)機(jī)器可讀的程序存儲設(shè)備,其包含 至少一個(gè)指令程序,可由機(jī)器執(zhí)行以執(zhí)行本發(fā)明的能力。此處所描述的流程圖僅是例子。在沒有背離本發(fā)明的精神的情況 下,可以對這些圖或其中所述的步驟(或操作)做若干改變。例如, 可以按不同順序執(zhí)行步驟,或可以增加、刪除或修改步驟。所有這些 變化被認(rèn)為是請求保護(hù)的發(fā)明的一部分。雖然此處已經(jīng)詳細(xì)描述了優(yōu)選實(shí)施例,但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng) 理解,在沒有背離本發(fā)明的精神的情況下可以做各種修改、添加、替 換等,并且因此認(rèn)為這些修改、添加、替換在如下面權(quán)利要求書中定 義的本發(fā)明的范圍內(nèi)。
權(quán)利要求
1.一種再分配處理環(huán)境的物理處理器的方法,所述方法包括確定支持邏輯處理器的物理處理器將被改變;以及將另一個(gè)物理處理器再分配給所述邏輯處理器,其中再分配與所述物理處理器的操作并行進(jìn)行。
2. 根據(jù)權(quán)利要求1的方法,其中再分配對于所述物理處理器和所 述另 一個(gè)物理處理器的 一個(gè)或多個(gè)操作系統(tǒng)來說是透明的。
3. 根據(jù)權(quán)利要求1的方法,其中再分配包括將當(dāng)前分配給所述邏 輯處理器的所述物理處理器的操作狀態(tài)加栽到所述另一個(gè)物理處理器 上,其中響應(yīng)于所述加栽,所述另一個(gè)物理處理器被分配給所述邏輯 處理器。
4. 根據(jù)權(quán)利要求3的方法,其中所述操作狀態(tài)包括來自物理處理 器的以下部分中的至少一個(gè)的內(nèi)容一個(gè)或多個(gè)通用寄存器、 一個(gè)或多個(gè)訪問寄存器、 一個(gè)或多個(gè)浮 點(diǎn)寄存器、 一個(gè)或多個(gè)控制寄存器、 一個(gè)或多個(gè)定時(shí)設(shè)備寄存器、一 個(gè)或多個(gè)系統(tǒng)配置寄存器以及一個(gè)或多個(gè)指令地址寄存器。
5. 根據(jù)權(quán)利要求1的方法,其中再分配包括 確定處理環(huán)境的新配置;由當(dāng)前分配給所述邏輯處理器的所述物理處理器使用所述新配置確定其將被替換;由所述物理處理器存儲所述物理處理器的操作狀態(tài); 由所述另一個(gè)物理處理器檢查所述新配置,以確定所述另一個(gè)物理處理器將被分配給所述邏輯處理器;以及在所述另一個(gè)物理處理器上加載所述物理處理器的所存儲的操作狀態(tài)。
6. 根據(jù)權(quán)利要求5的方法,其中再分配是與所述物理處理器和所 述另一個(gè)物理處理器的操作并行進(jìn)行的,其中在再分配期間,所述物 理處理器和所述另一個(gè)物理處理器不處于檢查停止、時(shí)鐘停止或者故 障模式中的任何一個(gè)。
7. 根據(jù)權(quán)利要求5的方法,進(jìn)一步包括由所述另一個(gè)物理處理器 使用所述新配置確定其是將替換所述物理處理器的所述另一個(gè)物理處 理器。
8. 根據(jù)權(quán)利要求7的方法,其中加載包括 確定存儲器中存儲所述物理處理器的操作狀態(tài)的位置;以及 從所確定的位置加載所述物理處理器的操作狀態(tài)。
9. 根據(jù)權(quán)利要求8的方法,其中加載進(jìn)一步包括更新所述物理處 理器的操作狀態(tài)以反映所述另一個(gè)物理處理器的處理器編號。
10. 根據(jù)權(quán)利要求5的方法,其中確定新配置包括 建立至少包括要再分配的所述物理處理器的源處理器列表;以及 建立至少包括要用作替換的所述另一個(gè)物理處理器的目標(biāo)處理器列表,其中源處理器列表和目標(biāo)處理器列表的建立取決于再分配的 原因。
11. 根據(jù)權(quán)利要求5的方法,進(jìn)一步包括選擇處理環(huán)境的主處理器 以控制再分配。
12. —種再分配處理環(huán)境的物理處理器的系統(tǒng),所述系統(tǒng)包括 由物理處理器所支持的邏輯處理器;以及被再分配給所述邏輯處理器的另一個(gè)物理處理器,用于替換所述 物理處理器以作為所述邏輯處理器的支持,其中與所述物理處理器的 操作并行地再分配所述另 一個(gè)物理處理器。
13. 如權(quán)利要求12所述的系統(tǒng),其中所述另 一個(gè)物理處理器適合于 將所述物理處理器的操作狀態(tài)加載在所述另一個(gè)物理處理器上,其中 響應(yīng)于所述加載,所述另一個(gè)物理處理器被分配給所述邏輯處理器。
14. 如權(quán)利要求12所述的系統(tǒng),其中為進(jìn)行再分配 當(dāng)前分配給所述邏輯處理器的所述物理處理器適合于使用處理環(huán)境的新配置確定其將被替換,以及存儲其操作狀態(tài);以及所述另一個(gè)物理處理器適合于檢查處理環(huán)境的新配置以確定所 述另一個(gè)物理處理器將被分配給所述邏輯處理器,以及加載所存儲的 操作狀態(tài)。
15.如權(quán)利要求14所述的系統(tǒng),其中所述另 一個(gè)物理處理器進(jìn)一步 適于確定在存儲器中所述物理處理器的操作狀態(tài)所存儲的位置,以及 從所確定的位置加栽所述物理處理器的操作狀態(tài)。
全文摘要
與處理器的操作并行地執(zhí)行支持邏輯處理器的物理處理器的再分配。一個(gè)物理處理器的操作狀態(tài)被加載到另一個(gè)物理處理器上,以使邏輯處理器被不同物理處理器所支持。該再分配與處理器操作并行執(zhí)行,并且對于操作系統(tǒng)來說是透明的。
文檔編號G06F9/50GK101118503SQ20071010886
公開日2008年2月6日 申請日期2007年6月5日 優(yōu)先權(quán)日2006年7月31日
發(fā)明者克里斯托弗·R.·康克林, 蘭達(dá)爾·W.·菲利 申請人:國際商業(yè)機(jī)器公司