專利名稱:在具有動態(tài)邏輯分區(qū)的計(jì)算環(huán)境中管理計(jì)算機(jī)存儲器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理,并且更具體地,涉及用于在具有動態(tài)邏輯分區(qū) 的計(jì)算機(jī)中管理計(jì)算機(jī)存儲器的方法、系統(tǒng)和產(chǎn)品。
背景技術(shù):
常常將1948年EDVAC計(jì)算機(jī)系統(tǒng)的開發(fā)援引為計(jì)算機(jī)時代的開始。 從那一時期開始,計(jì)算機(jī)系統(tǒng)就已經(jīng)演進(jìn)成非常復(fù)雜的設(shè)備。如今的計(jì)算 機(jī)比諸如EDVAC的早期系統(tǒng)更精密復(fù)雜得多。計(jì)算機(jī)系統(tǒng)通常包括石更件 和軟件組件、應(yīng)用程序、操作系統(tǒng)、處理器、總線、存儲器、輸入/輸出設(shè) 備等的組合。隨著半導(dǎo)體加工和計(jì)算機(jī)體系機(jī)構(gòu)的進(jìn)步推動計(jì)算機(jī)的性能 變得越來越高,更為精密復(fù)雜的計(jì)算機(jī)軟件已經(jīng)演進(jìn)成利用硬件的更高性 能,致使如今的計(jì)算機(jī)系統(tǒng)比幾年前的系統(tǒng)更強(qiáng)有力得多。
現(xiàn)今存在這樣的趨勢,即發(fā)展在處理器數(shù)、輸入/輸出("I/O")槽 數(shù),以及存儲量方面日趨大型的系統(tǒng)。盡管計(jì)算機(jī)埂件設(shè)計(jì)上的進(jìn)步繼續(xù) 在這些物理資源的大小方面提供了快速增長,然而一些主要的應(yīng)用和子系 統(tǒng)卻在可擴(kuò)縮性方面落后。因此存在這樣的趨勢,即利用分區(qū)為系統(tǒng)提供 物理分區(qū)或邏輯分區(qū),以便基本計(jì)算機(jī)系統(tǒng)本身提供功能的粒度 (granularity)。物理分區(qū)提供了通常來說相對粗糙的分區(qū)粒度,因?yàn)榉謪^(qū)出 現(xiàn)在諸如多芯片模塊("MCM,,)、底板、子板、母板,或者其它系統(tǒng) 板這樣的物理邊界(physicalboundaries )處。在邏輯分區(qū)系統(tǒng)中,分區(qū)的 粒度通常要細(xì)粒得多,例如單CPU或者甚至是CPU的一小部分、 一小塊 存儲器,或者I/0槽而不是整個I/0總線。利用邏輯分區(qū),可以將給定的 一組計(jì)算機(jī)資源細(xì)化成多個比物理分區(qū)多的邏輯分區(qū)。
邏輯分區(qū)LPAR( "LPAR")是計(jì)算機(jī)資源的子集,其可以托管(host)
操作系統(tǒng)("o/s")的實(shí)例。通過專門的硬件寄存器和稱作管理體 (hypervisor)的可信固件組件來實(shí)現(xiàn)LPAR。這些組件一起在每個邏輯分 區(qū)周圍構(gòu)建出緊密體系結(jié)構(gòu)的"盒子(box)",將分區(qū)操作限制在分派給 該分區(qū)的一組專門的處理器、存儲器和I/0資源。如今,隨著計(jì)算機(jī)系統(tǒng) 變得越來越大,在給定的硬件系統(tǒng)上運(yùn)行^^系統(tǒng)的若干實(shí)例的能力(以 便每個o/s實(shí)例加上其子系統(tǒng)很好地擴(kuò)縮或?qū)崿F(xiàn))支持對硬件的最優(yōu)使用 并且轉(zhuǎn)換到成本節(jié)約。盡管靜態(tài)分區(qū)有助于調(diào)諧整個系統(tǒng)性能,然而如今 的邏輯分區(qū)系統(tǒng)還可以提供"動態(tài)重構(gòu),,能力-使得硬件資源、處理器、 存儲器、1/0槽等能夠移動到LPAR或從LPAR移動,或者從一個LPAR 移動到另一LPAR,而無需重新引導(dǎo)。動態(tài)重構(gòu)通過提供以適時的(timely) 方式將石更件資源動態(tài)移動到貧窮的(needy) O/S以匹配工作負(fù)荷需求的能 力而啟用了一種改進(jìn)的解決方案。
然而,如今典型的動態(tài)重構(gòu)工具依賴于LPAR中管理體與操作系統(tǒng)之 間的合作或協(xié)同(具有一些缺陷的計(jì)算機(jī)操作的才莫式)。例如,在存儲器 的動態(tài)重構(gòu)中,O/S可以保持O/S不^^放的栓定(bolted )或插定(pinned ) 頁框(page frame)。很多不同的操作系統(tǒng)可以在相同時刻在同一系統(tǒng)上 分離的LPAR中運(yùn)行。例如,IBM的POWERTM管理體支持三種不同的 操作系統(tǒng)。所支持的操作系統(tǒng)中的一種或多種可能完全不支持與管理體的 這種合作所需要的功能。另夕卜,在協(xié)同方案中,對存儲器的管理在作為O/S 的錯誤或惡意實(shí)例的合作方案中變得更加復(fù)雜,不僅可能根本不合作,而 且實(shí)際上可能在某種意義上對有效的計(jì)算機(jī)資源管理產(chǎn)生危害。
發(fā)明內(nèi)容
提供了用于在具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中管理計(jì)算機(jī)存儲器的方 法、系統(tǒng)和產(chǎn)品,其相對于邏輯分區(qū)中的操作系統(tǒng)透明地操作。描述了用 于在具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中管理計(jì)算M儲器的示例性方法、系統(tǒng) 和產(chǎn)品,其包括通過管理體,從邏輯分區(qū)("LPAR")的一個邏輯存 儲塊("LMB")中的頁框,將具有用于所述LPAR中的操作系統(tǒng)的頁表
中的頁框號的頁框的內(nèi)容復(fù)制到所述LMB外部的頁框。
本發(fā)明的實(shí)施例通常包括在所述頁表中存儲新的頁框號,包括通過 所述管理體,為復(fù)制了其內(nèi)容的每個頁框存儲標(biāo)識出向其復(fù)制了內(nèi)容的頁 框的新的頁框號。在典型的實(shí)施例中,復(fù)制頁框的內(nèi)容和存儲新的頁框號 是相對于所述"^作系統(tǒng)透明實(shí)現(xiàn)的。
典型的實(shí)施例還包括通過所述管理體創(chuàng)建所述頁表中所有頁框的列 表;通過所述管理體監(jiān)視從所述操作系統(tǒng)到所述管理體的、將頁框添加到 所述頁表的調(diào)用,此時所述管理體正在復(fù)制頁框的內(nèi)容和存儲新的頁框號; 將添加到所述頁表的頁框添加到所述列表;并且其中復(fù)制頁框的內(nèi)容是通 過復(fù)制所述列表上的頁框的內(nèi)容來實(shí)現(xiàn)的。
在一些實(shí)施例中,具有超過一個尺寸的存儲頁面被映射到LMB的頁 框。這樣的實(shí)施例通常包括將存儲器管理中斷從所述操作系統(tǒng)導(dǎo)引 (vector)到所述管理體,以及將用于所述操作系統(tǒng)的存儲器管理操作從 用于所述操作系統(tǒng)的頁表切換到臨時可選頁表。在這樣的實(shí)施例中,復(fù)制 頁框的內(nèi)容通常是通過復(fù)制與被映射到所述LMB的頁框的頁面中的最小 頁面具有相同尺寸的分段中的頁框的內(nèi)容來實(shí)現(xiàn)的。在這樣的實(shí)施例中, 復(fù)制頁框的內(nèi)容可以通過從所述臨時可選頁表中刪除同樣處在用于所述操 作系統(tǒng)的頁表中的頁框以及在用于所述操作系統(tǒng)的頁表中存儲這樣的刪除 頁框的狀態(tài)比特來實(shí)現(xiàn)。
在一些實(shí)施例中,LMB的頁框可以被映射用于直接存儲器存取 ("DMA")。在這樣的實(shí)施例中,復(fù)制頁框的內(nèi)容可以包括在復(fù)制被 映射用于DMA的頁框的內(nèi)容時,通過所述管理體來阻閉(blocking) DMA 操作,以及在DMA映射表中為所述LMB的被映射用于DMA的每個頁框 存儲標(biāo)識出向其復(fù)制了內(nèi)容的頁框的新的頁框號。
實(shí)施例可以包括創(chuàng)建一段空閑的相連存儲器(free contigous memory),其既大于LMB并且又大得足以容納頁表。創(chuàng)建一段空閑的相 連存儲器可以通過由所述管理體為兩個或更多的相連LMB重復(fù)實(shí)現(xiàn)以下 步驟來完成通過所述管理體,將處在用于所述LPAR中的操作系統(tǒng)的頁
表中的LMB的頁框的內(nèi)容從所述LMB中的頁框復(fù)制到所述LMB外部的 頁框;在所述頁表中存儲新的頁框號,這包括通過所述管理體,為復(fù)制了 其內(nèi)容的每個頁框存儲標(biāo)識出向其復(fù)制了內(nèi)容的頁框的新的頁框號;以及 將所述LMB添加到用于所述系統(tǒng)的空閑存儲器的列表。
實(shí)施例還可以包括改善LMB對處理器的親和性(affinity)。在這樣 的實(shí)施例中,復(fù)制所述LMB的頁框的內(nèi)容可以包括將所迷LMB的頁框 的內(nèi)容復(fù)制到所述LMB外部的臨時頁框,將第二 LMB的頁框的內(nèi)容復(fù)制 到所述LMB的頁框,以及將所述臨時頁框的內(nèi)容復(fù)制到所述第二 LMB的 頁框。在這樣的實(shí)施例中,存儲新的頁框號可以包括對于所述LMB的 內(nèi)容和對于所述第二 LMB的內(nèi)容這二者,存儲標(biāo)識出向其復(fù)制了內(nèi)容的 頁框的新的頁框號。
根據(jù)以下對如附圖(其中相同的參考標(biāo)號一般表示本發(fā)明的示例性實(shí) 施例的相同部分)中所說明的本發(fā)明的示例性實(shí)施例的較為詳細(xì)的描述, 本發(fā)明的前述以及其它的特征和優(yōu)點(diǎn)將顯而易見。
圖1闡明了包括示例性計(jì)算機(jī)的自動計(jì)算機(jī)器的框圖,該示例性計(jì)算 機(jī)用于根據(jù)本發(fā)明的實(shí)施例管理具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)存儲器;
圖2闡明了用于根據(jù)本發(fā)明的實(shí)施例管理具有動態(tài)邏輯分區(qū)的計(jì)算機(jī) 存儲器的另外的示例性計(jì)算機(jī)的框圖3闡明了根據(jù)本發(fā)明的實(shí)施例對計(jì)算M儲器進(jìn)行管理的、具有動 態(tài)邏輯分區(qū)的另外的示例性計(jì)算機(jī)系統(tǒng)的框圖4闡明了對示例性方法進(jìn)行說明的流程圖,該示例性方法用于根據(jù) 本發(fā)明的實(shí)施例在具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中管理計(jì)算機(jī)存儲器;
圖5闡明了對另外的示例性方法進(jìn)行iJL明的流禾呈圖,該示例性方法用
于在具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中管理計(jì)算機(jī)存儲器;
圖6闡明了對另外的示例性方法進(jìn)^S兌明的流禾呈圖,該示例性方法用
于在具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中管理計(jì)算機(jī)存儲器;
圖7闡明了對創(chuàng)建一段空閑的相連存儲器的示例性方法進(jìn)行說明的流 程圖;以及
圖8闡明了對改善LMB對處理器的親和性的示例性方法進(jìn)行說明的 流程圖。
具體實(shí)施例方式
從圖l開始,參照附圖描述了根據(jù)本發(fā)明的實(shí)施例,用于在具有動態(tài) 邏輯分區(qū)的計(jì)算機(jī)中管理計(jì)算M儲器的示例性方法、系統(tǒng)和產(chǎn)品。依照 本發(fā)明在具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中管理計(jì)算機(jī)存儲器一般是利用自動 計(jì)算機(jī)器,即,利用計(jì)算機(jī)來實(shí)現(xiàn)的。因此,為了進(jìn)一步解釋,圖l闡明 了自動計(jì)算機(jī)器的框圖,其包括用于根據(jù)本發(fā)明的實(shí)施例管理具有動態(tài)邏 輯分區(qū)的計(jì)算機(jī)存儲器的示例性計(jì)算機(jī)(152)。圖1的計(jì)算機(jī)(152)包 括至少一個計(jì)算機(jī)處理器(156)或"CPU"以及通過系統(tǒng)總線(160)連 接至處理器(156 )和計(jì)算機(jī)的其它組件的隨機(jī)訪問存儲器(168 X "RAM")。 在實(shí)際情況下,根據(jù)本發(fā)明的實(shí)施例用于在具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中 管理計(jì)算機(jī)存儲器的系統(tǒng)通常包括超過一個的計(jì)算機(jī)處理器。圖1的例子 中的RAM (168)是以被稱為邏輯存儲塊或"LMB"的分段(101-110) 來管理的。
RAM (168)中存儲有應(yīng)用程序(158),即用于實(shí)現(xiàn)執(zhí)行的線程的用 戶級(user-level )數(shù)據(jù)處理的計(jì)算機(jī)程序指令。根據(jù)本發(fā)明的實(shí)施例,RAM (168)中還存儲有管理體(102),即用于管理為了在具有動態(tài)邏輯分區(qū) 的計(jì)算機(jī)中管理計(jì)算機(jī)存儲器而改進(jìn)的LPAR中的資源的一組計(jì)算才凡程序 指令。RAM (168)中還存儲有操作系統(tǒng)(154)。根據(jù)本發(fā)明的實(shí)施例, 計(jì)算機(jī)中有用的操作系統(tǒng)包括UNIXTM、 LimixTM、 Microsoft NTTM、 AIXTM、 IBM的i5/OSTM,以及本領(lǐng)域的技術(shù)人員可以想到的其它操作系 統(tǒng)。操作系統(tǒng)(154)和應(yīng)用程序(158)置于LPAR (450)中。在圖l例 子中,在RAM (168)中示出了操作系統(tǒng)(154)、應(yīng)用程序(158),以 及管理體(102),但是讀者應(yīng)當(dāng)理解,這樣的軟件的組件還可以存儲在非
易失性存儲器(166)中。
圖1的系統(tǒng)支持動態(tài)邏輯分區(qū)并且一般可以操作以便通過以下來管理 計(jì)算M儲器,即通過管理體(102),從邏輯分區(qū)("LPAR")的一個 邏輯存儲塊("LMB")中的頁框,將具有用于該LPAR中的操作系統(tǒng)的 頁表中的頁框號的頁框的內(nèi)容復(fù)制到該LMB外部的頁框,以及在該頁表 中存儲新的頁框號,這包括通過管理體,為復(fù)制了其內(nèi)容的每個頁框存儲 標(biāo)識出向其復(fù)制了內(nèi)容的頁框的新的頁框號。在圖l的系統(tǒng)中,復(fù)制頁框 的內(nèi)容和存儲新的頁框號可以是相對于操作系統(tǒng)(154)透明實(shí)現(xiàn)的。
圖1的計(jì)算機(jī)(152 )包括通過系統(tǒng)總線(160 )耦合于處理器(156 ) 和計(jì)算機(jī)(152)的其它組件的非易失性計(jì)算機(jī)存儲器(166)??梢詫⒎?易失性計(jì)算機(jī)存儲器(166)實(shí)現(xiàn)為硬盤驅(qū)動器(170 )、光盤驅(qū)動器(172 )、 電可擦可編程只讀存儲空間(所謂的"EEPROM"或"閃速"存儲器)(174 )、 RAM驅(qū)動器(未示出),或者本領(lǐng)域的技術(shù)人員可以想到的任何其它種
類的計(jì)算機(jī)存儲器。
圖1的示例計(jì)算機(jī)包括一個或多個I/O接口適配器(178)。計(jì)算機(jī)中
的輸^/輸出接口適配器實(shí)現(xiàn)面向用戶的輸"輸出,例如,通過用于控制通 往諸如計(jì)算機(jī)顯示屏的顯示設(shè)備(180 )的輸出以及來自諸如鍵盤和鼠標(biāo)的 用戶輸入設(shè)備(181)的用戶輸入的計(jì)算積^更件以及軟件驅(qū)動器。在本說明
書中, 一般將實(shí)現(xiàn)連接i/o適配器的i/o的i/o石更件資源稱為"i/o槽"。
圖1的示例性計(jì)算機(jī)(152)包括用于實(shí)現(xiàn)數(shù)據(jù)通信的通信適配器 (167)。這樣的數(shù)據(jù)通信可以通過串行通過RS-232連接、通過諸如USB 的外部總線、通過諸如IP網(wǎng)絡(luò)的數(shù)據(jù)通信網(wǎng)絡(luò),以及以本領(lǐng)域的技術(shù)人員 可以想到的其它方式來實(shí)現(xiàn)。通信適配器實(shí)現(xiàn)硬件級的數(shù)據(jù)通信,由此, 一個計(jì)算機(jī)直接地或通過網(wǎng)絡(luò)將數(shù)據(jù)通信發(fā)送至另一計(jì)算機(jī)。根據(jù)本發(fā)明
的實(shí)施例,對確定目的地的可用性有用的通信適配器的例子包括用于有 線撥號通信的調(diào)制解調(diào)器、用于有線網(wǎng)絡(luò)通信的以太網(wǎng)(IEEE 802.3)適 配器,以及用于無線網(wǎng)絡(luò)通信的802.11b適配器。
為了進(jìn)一步解釋,圖2闡明了用于根據(jù)本發(fā)明的實(shí)施例管理具有動態(tài)
邏輯分區(qū)的計(jì)算機(jī)存儲器的另外的示例性計(jì)算機(jī)(152)的框圖。構(gòu)造圖2 以便進(jìn)一步解釋對這樣的系統(tǒng)中的物理存儲器的管理,即該系統(tǒng)用于根據(jù) 本發(fā)明的實(shí)施例在具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中管理計(jì)算機(jī)存儲器。圖2 的系統(tǒng)中的物理存儲器連同處理器芯片一起置于多芯片模塊("MCM,,)
(202)中的存儲芯片(204)中。而MCM在底板(206, 208)上實(shí)現(xiàn), 底板(206, 208)又通過系統(tǒng)總線(160)耦合用于數(shù)據(jù)通信。底板上的 MCM通過底板總線(212 )耦合用于數(shù)據(jù)通信,并且MCM上的處理器芯 片和存儲芯片通過如MCM (222)上的參考標(biāo)記(210)所說明的MCM 總線耦合用于數(shù)據(jù)通信,MCM (222)擴(kuò)展了對MCM (221)的圖示。
多芯片模塊或"MCM"是襯底(substrate)上裝配有兩個或更多的棵 集成電路(棵片(bare dies))或"芯片大小的組件"的電子系統(tǒng)或子系 統(tǒng)。在圖2的例子中,MCM中的芯片是計(jì)算機(jī)處理器和計(jì)算機(jī)存儲器。 村底可以是,例如,印刷電路板或者具有互連圖案(interconnection pattern ) 的厚的或薄的薄膜陶瓷或珪。襯底可以是MCM組件的整體部分或者可以 被安裝在MCM組件內(nèi)。MCM在計(jì)算機(jī)硬件體系結(jié)構(gòu)中是有用的,因?yàn)?其代表了專用集成電路("ASIC")與印刷電路板之間的封裝等級
(packaging level)。
圖2的MCM說明了硬件存儲器分離或"親和性"的級別。MCM( 222 ) 上的處理器(214)可以訪問位于以下的物理存儲器
在相同的MCM上的存儲芯片(216)中,其中該MCM具有訪問 該存儲芯片的處理器(214),
在相同的底板(208)上的另一 MCM上的存儲芯片(218)中, 或者
在另一底板(206)上的另一MCM中的存儲芯片(220)中。 訪問分離于MCM的存儲器比訪問具有處理器的同一MCM上的存儲
器要花費(fèi)更長的時間,因?yàn)橛糜谠L問這樣的存儲器的計(jì)算機(jī)指令以及從這 樣的存儲器返回數(shù)據(jù)必須遍歷更多的計(jì)算積政件、存儲器管理單元、總線 驅(qū)動器,更不用i兌本身在現(xiàn)今的計(jì)算速度上就有所考慮的總線地帶(busland)和線路的長度。出于相同的原因,訪問分離于相同底板的存儲器花 費(fèi)甚至更長的時間。因此,認(rèn)為在相同的MCM (其具有訪問存儲器的處 理器)上的存儲器比分離于該MCM的存儲器具有更緊密的親和性,并且 認(rèn)為在相同底板(其具有訪問處理器)上的存儲器比在另一底板上的存儲 器具有更緊密的親和性。如此描述計(jì)算機(jī)體系機(jī)構(gòu)是為了進(jìn)行解釋,而不 是對計(jì)算機(jī)存儲器的限制。可以將若干MCM安裝在印刷電路板上,例如, 在將印刷電路板插入底板的情況下,從而創(chuàng)建圖2中未說明的親和性的附 加級別(additional level of affinity)。本領(lǐng)域的技術(shù)人員可以想到的計(jì)算 機(jī)體系機(jī)構(gòu)的其它方面可能影響處理器-存儲器親和性,而所有這樣的方 面都屬于才艮據(jù)本發(fā)明的實(shí)施例在動態(tài)邏輯分區(qū)情況下的存儲器管理的范圍 之內(nèi)。
為了進(jìn)一步解釋,圖3闡明了具有動態(tài)邏輯分區(qū)的另外的示例性計(jì)算 機(jī)系統(tǒng)的框圖,該示例性計(jì)算機(jī)系統(tǒng)根據(jù)本發(fā)明的實(shí)施例對計(jì)算機(jī)存儲器 進(jìn)行管理。如以上所提及的,邏輯分區(qū)是一種計(jì)算機(jī)設(shè)計(jì)特征,其通過使 得有可能在單個計(jì)算機(jī)上并發(fā)地運(yùn)行多個獨(dú)立的操作系統(tǒng)映4象來提供靈活 性。
圖3的系統(tǒng)包括管理體(102 )以及可以運(yùn)行用于LPAR ( 450, 452, 454)中的應(yīng)用軟件的執(zhí)行的多個線程(302)的三個操作系統(tǒng)(154)和三 個處理器(156)。使用三個例子是為了進(jìn)行解釋,而非用于限制。事實(shí)上, 本領(lǐng)域的技術(shù)人員可以認(rèn)識到,諸如所說明的系統(tǒng)的系統(tǒng)可以操作任何數(shù) 目的LPAR、操作系統(tǒng)、處理器,以及僅受到系統(tǒng)中物理資源的實(shí)際數(shù)量 的限制的線程。線程(302)在組織于虛擬地址空間中的虛擬存儲器地址上 操作。處理器(156)訪問組織于真實(shí)地址空間中的物理存儲器。
每個操作系統(tǒng)映像(154)均需要可以以真實(shí)尋址模式來訪問的一系列 存儲器。在該模式中,不進(jìn)行虛擬地址轉(zhuǎn)換,并且地址從地址0開始。操 作系統(tǒng)通常將該地址范圍用于啟動內(nèi)核碼(startup kernel code)、固定內(nèi) 核結(jié)構(gòu),以及中斷向量。由于不能夠允許多個分區(qū)共享位于物理地址O處 的相同的存儲范圍,因此每個LPAR必須具有其自己的真實(shí)模式尋址范圍。
管理體為每個LPAR分派唯一的真實(shí)模式地址偏移和范圍值,并且然 后將這些偏移和范圍值設(shè)置到分區(qū)中每個處理器中的寄存器中。這些值映 射到已經(jīng)被專門分派給那 一分區(qū)的物理存儲器地址范圍。當(dāng)分區(qū)程序以真 實(shí)尋址模式訪問指令和數(shù)據(jù)時,硬件在訪問物理存儲器之前自動地將真實(shí) 模式偏移值添加到每個地址。以這樣的方式,每個邏輯分區(qū)編程模型看起 來似乎都訪問物理地址0,即4吏地址凈皮透明地重定向(redirected)到另一 地址范圍。硬件邏輯通過在分區(qū)中運(yùn)行的操作系統(tǒng)代碼來阻止對這些寄存 器的修改。對訪問所分派的范圍以外的真實(shí)地址的任何嘗試均導(dǎo)致尋址異 常中斷,其通過分區(qū)中的^Mt系統(tǒng)異常處理體來處理。
操作系統(tǒng)使用另一種類型的尋址,虛擬尋址,以便為用戶應(yīng)用線程提 供超過安裝在系統(tǒng)中的物理存儲器的數(shù)量的有效地址空間。操作系統(tǒng)通過 將很少使用的程序和數(shù)據(jù)從存儲器向外編頁(paging)到磁盤,并且根據(jù) 需要將它們帶回到物理存儲器來實(shí)現(xiàn)這一功能。
當(dāng)應(yīng)用以虛擬尋址才莫式訪問指令和數(shù)據(jù)時,它們并不知道其地址正在 被使用頁面轉(zhuǎn)換表(416 )的虛擬存儲器管理轉(zhuǎn)換。這些表格(在本說明書 中一般將其稱為"頁表")駐留于系統(tǒng)存儲器中,并且每個分區(qū)均具有代 表其本身而由管理體管理的自身專有的頁表。處理器使用這些表格(通過
被映射到物理存儲器的物理地址(422)。如果在線程訪問存儲器的頁面時 頁框已經(jīng)被從物理存儲器向外移出到磁盤上,則操作系統(tǒng)接收到頁面故障。 在非LPAR操作中,操作系統(tǒng)直接創(chuàng)建和維護(hù)頁表?xiàng)l目,使用真實(shí)模 式尋址來訪問表格。在邏輯分區(qū)操作中,頁面轉(zhuǎn)換表位于僅管理體可訪問 的保留物理存儲區(qū)域中。換句話說,分區(qū)的頁表位于分區(qū)的真實(shí)模式地址 范圍之外。僅可以通過管理體來修改為處理器提供其頁表的物理地址的寄 存器。
真實(shí)地址實(shí)現(xiàn)為標(biāo)識出真實(shí)存儲器的頁面的頁框號(422 )和該頁面內(nèi)的偏 移的組合。虛擬地址的偏移也是虛擬地址被映射到的真實(shí)地址的偏移。頁
表將虛擬地址映射到真實(shí)地址,但由于偏移是相等的,因此頁表僅映射虛 擬頁面號和對應(yīng)的頁框號。偏移并不包括在頁表中。
當(dāng)操作系統(tǒng)(154)需要創(chuàng)建頁面轉(zhuǎn)換映射時,其在處理器(156)上 執(zhí)行對管理體(102)的調(diào)用,處理器(156)將執(zhí)行轉(zhuǎn)移到管理體。管理 體創(chuàng)建代表分區(qū)的頁表?xiàng)l目并且將其存儲在頁表中。線程還可以進(jìn)行管理 體調(diào)用來修改或刪除現(xiàn)有的頁表?xiàng)l目。頁表?xiàng)l目僅映射到特定的物理存儲 區(qū)域,稱為邏輯存儲塊或"LMB",其被以粒狀分段(granularsegment) 分派^:個LMB。這些LMB提供了對LPAR的虛擬頁面地址空間進(jìn)4亍備 份的物理存儲器。因此,LPAR的存儲器一般由從物理存儲器中的任何地 方以任何順序分派的LMB組成。
I/O硬件使用直接存儲器存取("DMA")操作來在I/O槽(407 )中 的I/0適配器與系統(tǒng)存儲器中的頁框(406)之間移動數(shù)據(jù)。DMA操作使 用類似于頁表的地址浮動(address relocation)機(jī)制。I/O硬件將I/O槽中 的I/0設(shè)備所生成的地址(425)轉(zhuǎn)換成物理存儲器地址。1/0硬件利用存 儲在物理存儲器中的DMA映射(650)(有時被稱為轉(zhuǎn)換控制條目("TCE") 表)來進(jìn)行該轉(zhuǎn)換。如同頁表的情況,DMA映射駐留于不可由分區(qū)訪問 而僅可由管理體訪問的系統(tǒng)存儲器的物理地址區(qū)域中。通過調(diào)用管理體服 務(wù),分區(qū)程序可以創(chuàng)建、修改或刪除用于分派給該分區(qū)的I/O槽的DMA 映射條目。當(dāng)I/O硬件將I/O適配器DMA地址轉(zhuǎn)換成物理存儲器時,所 得到的地址落入分派給那一分區(qū)的物理存儲空間內(nèi)。
為了進(jìn)一步解釋,圖4闡明了對示例性方法進(jìn)行說明的流程圖,該示 例性方法用于根據(jù)本發(fā)明的實(shí)施例在具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中管理計(jì) 算機(jī)存儲器,其包括通過管理體創(chuàng)建(426 )頁表中所有頁框的列表(436 )。 有利地,相對快地進(jìn)行對根據(jù)本發(fā)明的實(shí)施例的存儲器管理功能的實(shí)現(xiàn), 以便降低導(dǎo)致從在用戶應(yīng)用中執(zhí)行的線程的觀點(diǎn)來看過多的存儲故障 (memory fault)和延遲的風(fēng)險。掃描通過大型數(shù)據(jù)結(jié)構(gòu)的頁表、尋找所 映射的頁面是耗時的。在實(shí)施實(shí)際的存儲器管理操作時,期望在可快速訪 問的結(jié)構(gòu)中存儲有受影響的頁框的簡明列表。舉例來說,這樣的列表可以
通過在后臺獨(dú)立運(yùn)行的管理體過程來構(gòu)建,直到匯集了該列表。因此,圖
4的方法有利地包括通過管理體來監(jiān)視(428)從操作系統(tǒng)到管理體的調(diào) 用,該調(diào)用將頁框添加到頁表(416),而此時管理體正在復(fù)制頁框的內(nèi)容 和存儲新的頁框號。圖4的方法還包括將添加到頁表的頁框添加(430) 到列表(436)。
圖4的方法包括通過管理體,從LPAR的一個LMB (402)中的頁 框(406 ),將具有用于該LPAR (450)中的操作系統(tǒng)(432)的頁表(416 ) 中的頁框號(422)的頁框的內(nèi)容復(fù)制(408)到該LMB (402)外部的頁 框(412)。用點(diǎn)線輪廓示出LMB (404)以示強(qiáng)調(diào),盡管所有受影響的頁 框均組織于LMB中,然而在作為存儲器管理操作的主體的LMB (402) 外部的頁框(412)的位置無關(guān)緊要,只要它們不在主體LMB (402)中。 在圖4的方法中,如以上所提及的,復(fù)制(408 )頁框的內(nèi)容是通過復(fù)制(434 ) 列表(436)上頁框的內(nèi)容來實(shí)現(xiàn)的。圖4的方法還包括在頁表(418)中 存儲(410)新的頁框號,這包括通過管理體,為復(fù)制了其內(nèi)容的每個頁框 存儲標(biāo)識出向其復(fù)制了內(nèi)容的頁框的新的頁框號。
利用頁表(416, 418)說明了這些存儲器管理操作的效果。頁表(416, 418)是在圖4的方法中的存儲器管理操作之前(416)和之后(418)所說 明的同一頁表。在存儲器管理操作之前,頁表將虛擬頁面號346、 347和 348映射到置于LMB (402)中的頁框592、 593和594。在圖4的例子中 的存儲器管理操作之后,頁表將虛擬頁面號346、 347和348映射到置于 LMB (402)外部的頁框592、 593和594。由于將頁框592、 593和594 的內(nèi)容復(fù)制(而不是移動)到頁框743、 744和745,因此頁框592、 593 和594的內(nèi)容不受影響。然而,先前映射到它們的虛擬頁面現(xiàn)在在別處被 映射到其它的頁框。這有效地釋放出LMB (402)的頁框用于其它用途。 可以將其列為空閑的,用于為新的LPAR安裝大的頁表、用于改善處理器 -存儲器親和性,或者用于本領(lǐng)域的技術(shù)人員可以想到的其它方面。
在圖4的方法中,復(fù)制頁框的內(nèi)容和存儲新的頁框號是相對于操作系 統(tǒng)透明實(shí)現(xiàn)的。下一次操作系統(tǒng)在訪問一個被重新映射的虛擬頁面中經(jīng)歷存儲故障時,位于LMB(404)中新頁框處的物理存儲器的內(nèi)容會與其在 圖4的方法中存儲器管理操作被應(yīng)用之前相同。在實(shí)現(xiàn)圖4的方法時,管 理體并不對請求釋放資源的操作系統(tǒng)(432 )進(jìn)行調(diào)用,并且操作系統(tǒng)從未 發(fā)覺頁表?xiàng)l目已經(jīng)受到影響。
為了進(jìn)一步解釋,圖5闡明了對另外的示例性方法進(jìn)行說明的流程圖, 該示例性方法用于根據(jù)本發(fā)明的實(shí)施例在具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中管 理計(jì)算機(jī)存儲器,其中超過一個尺寸的存儲頁面被映射到LMB (402)的 頁框(406)。如以上所提及的,LPAR可以支持超過一種的操作系統(tǒng),每 種類型的操作系統(tǒng)均可以支持不同的頁面尺寸,并且每個操作系統(tǒng)均可以 支持超過一個的頁面尺寸。有利地,相對快地進(jìn)行對根據(jù)本發(fā)明的實(shí)施例 的存儲器管理功能的實(shí)現(xiàn),以便降低導(dǎo)致從在用戶應(yīng)用中執(zhí)行的線程的觀 點(diǎn)來看過多的存儲故障和延遲的風(fēng)險。復(fù)制小的存儲頁面的內(nèi)容比復(fù)制大 的頁面的內(nèi)容要快。因此,當(dāng)主體操作系統(tǒng)使用超過一個的頁面尺寸時, 圖5的方法有利地提供了一種使用小的頁面尺寸實(shí)現(xiàn)存儲器復(fù)制操作的方 式。
圖5的方法包括將存儲器管理中斷從^^作系統(tǒng)(432)導(dǎo)引(502)到 管理體。管理體通過在處理器寄存器中設(shè)置比特來將存儲器管理中斷從操 作系統(tǒng)導(dǎo)引到管理體,以便存儲器管理中斷被定向到管理體中斷向量。當(dāng) 復(fù)制^Mt在頁框上進(jìn)行時,該機(jī)制允許管理體阻閉管理體中的處理器。由 于使用管理體寄存器資源將中斷呈現(xiàn)給管理體,因此存儲故障對操作系統(tǒng) 是透明的。
在圖5的例子中,如果將小的頁面尺寸取為4KB,那么所示的操作系 統(tǒng)(432)使用兩個頁面尺寸,4KB和16KB。這在頁表(416)中進(jìn)行了 說明,其中16KB的虛擬頁面(虛擬存儲頁面346)被映射到四個4KB頁 框(頁框592、 593、 594和595)。其它的4KB虛擬頁面347、 348、 349 相對應(yīng)地分別映射到4KB頁框596、 597和598。圖5的方法包括將用 于操作系統(tǒng)的存儲器管理操作從用于操作系統(tǒng)的頁表(416)切換(504) 到臨時可選頁表(512 )以便僅支持4KB頁框中的復(fù)制操作,忽略頁表(416 )
中所呈現(xiàn)的來自操作系統(tǒng)的任何的大頁面指示。在圖5的方法中,復(fù)制 (408)頁框的內(nèi)容包括復(fù)制(506)與被映射到LMB的頁框的頁面中的 最小頁面具有相同尺寸的分段中的頁框的內(nèi)容。也就是說,管理體僅實(shí)現(xiàn) 4KB分段(4KB頁框x 4KB頁框)中的復(fù)制操作。
當(dāng)存儲器管理中斷出現(xiàn)時,管理體查找操作系統(tǒng)的真實(shí)頁表以查看存 儲器管理中斷是否在分區(qū)的真實(shí)頁表在使用的情況下已經(jīng)發(fā)生。如果是的 話,則管理體對OS存儲器管理中斷向量給予控制。否則,將頁框條目插 入到臨時可選頁表中(如果復(fù)制操作不在進(jìn)行中)。
在圖5的方法中,復(fù)制(408)頁框的內(nèi)容還包括從臨時可選頁表(512) 中刪除(508)同樣處在用于操作系統(tǒng)的頁表中的頁框。在圖5的方法中, 復(fù)制(408)頁框的內(nèi)容還包括在用于操作系統(tǒng)(432)的頁表(416)中存 儲(510)這樣的刪除頁框的狀態(tài)比特。這樣的刪除頁框的狀態(tài)由參考比特 (用于存儲故障下的LRU操作)以及由變更比特(指示了當(dāng)從高速緩存 刪除時頁面已經(jīng)被寫入并且必須被保存回磁盤)來指示。
為了進(jìn)一步解釋,圖6闡明了對另外的示例性方法進(jìn)行說明的流程圖,
理計(jì)算機(jī)存儲器,其中LMB (402)的頁框(406)中的至少一個被映射用 于直接存儲器存取("DMA")。在圖6的方法中,復(fù)制(408)頁框的 內(nèi)容包括在復(fù)制(660)被映射用于DMA的頁框(423)的內(nèi)容時,通過 管理體(未示出)來阻閉(658) DMA操作。
在圖6的方法中,DMA操作由含有這樣的1/0適配器(未示出)的 1/0槽(407)表示,即該I/0適配器實(shí)現(xiàn)了表示經(jīng)由通過系統(tǒng)RAM(168) 中的頁框的DMA通道(654)的數(shù)據(jù)存儲(656)的磁盤I/O。通過DMA 映射(650)將系統(tǒng)RAM中的頁框映射到I/0地址。在圖6的方法中,復(fù) 制(408 )頁框的內(nèi)容包括將DMA映射的頁框550復(fù)制(660 )到LMB( 402 ) 外部的頁框(412),以及在DMA映射表(652)中為LMB的被映射用 于DMA的每個頁框存儲(662 )標(biāo)識出向其復(fù)制了內(nèi)容的頁框的新的頁框 號。
DMA映射(650、 652)說明了根據(jù)圖6的方法的存儲器管理^Mt的 效果。DMA映射是數(shù)據(jù)結(jié)構(gòu),有時稱為轉(zhuǎn)換條目表或"TCE表",其中 的每個條目將I/O地址空間中的地址映射到系統(tǒng)物理存儲器中的頁框。例 如,I/O地址空間中的地址可以是I/O適配器或PCI (外設(shè)部件互連)總 線適配器的地址空間中的地址。在圖6中,DMA映射(650、 652)分別 是在根據(jù)圖方法的存儲器管理操作之前(650)和之后(652)的同一 DMA映射。在圖6的例子中,最初將I/O地址(425 ) 124映射到頁框550。 在為頁面阻閉了 DMA操作之后,復(fù)制DMA映射的頁框,并且根據(jù)圖6 的方法,在映射中存儲新的頁框號,DMA映射(652)示出了被映射到頁 框725的I/O地址124。這有效地釋方文出LMB ( 402 )的頁框550用于其 它用途??梢詫⑵淞袨榭臻e的,隨其它頁框或其它的LMB —起用于為新 的LPAR安裝大的頁表、用于改善處理器-存儲器親和性,或者用于本領(lǐng) 域的技術(shù)人員可以想到的其它方面。
頁表通常是大型數(shù)據(jù)結(jié)構(gòu),常常大體上大于LMB。當(dāng)系統(tǒng)管理員嘗試 動態(tài)地創(chuàng)建新的LPAR (而不重新引導(dǎo))時,可能沒有足夠的相連存儲器 可用于新的LPAR的頁表。有利地,根據(jù)本發(fā)明的實(shí)施例對具有動態(tài)邏輯 分區(qū)的計(jì)算機(jī)中的計(jì)算^儲器的管理因此可以包括創(chuàng)建一段空閑的相 連存儲器,其既大于LMB并且又大得足以容納頁表。
為了進(jìn)一步解釋,圖7闡明了對創(chuàng)建一段空閑的相連存儲器的示例性 方法進(jìn)行說明的流程圖,該示例性方法包括通過管理體,將處在用于 LPAR (450)中的操作系統(tǒng)(432)的頁表(416)中的相連LMB的頁框 的內(nèi)容,從相連LMB ( 401 , 402 )中的頁框(406 )復(fù)制(602 )到相連 LMB外部的頁框(412)。圖7的方法包括在頁表(418)中存儲(604) 新的頁框號,這包括通過管理體,為復(fù)制了其內(nèi)容的每個頁框存儲標(biāo)識出 向其復(fù)制了內(nèi)容的頁框的新的頁框號。
圖7的方法還包括將LMB添加(606)到用于LPAR (450)的空閑 存儲器的列表(608 )。在圖7的例子中,將LMB添加(606 )到用于LPAR 的空閑存儲器的列表(608 )是通過將釋放的頁框的頁框號放置到空閑列表
21
(608)中來實(shí)現(xiàn)的。可選地,可以在空閑列表中列出LMB中的第一頁框 的頁框號以指示整個LMB是空閑的。本領(lǐng)域的技術(shù)人員可以想到指示空 閑存儲器的其它方式,并且所有這樣的方式同樣在本發(fā)明的范圍內(nèi)。
通常必須釋;^過兩個的相連LMB以便為頁表提供空間。因此,圖7 的方法有利地包括參照預(yù)定的所要求的分段尺寸(610)來確定(609) 存儲器的空閑分段(freed segment)是否大得足以存儲頁表或滿足空閑存 儲器的其它需求。如果空閑分段不夠大,則通過重復(fù)(612)以下步驟繼續(xù) 處理,直到空閑分私l夠大,即步驟將相連LMB的頁框的內(nèi)容復(fù)制(602 ) 到相連LMB外部的頁框(412),在頁表(418)中存儲(604)新的頁框 號,以及將LMB添加(606)到用于LPAR的空閑存儲器的列表(608 )。 隨著被訪問存儲器的親和性相對于訪問處理器而減少,整個系統(tǒng)性能 降低。有利地,根據(jù)本發(fā)明的實(shí)施例對具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中的計(jì) 算積存儲器的管理因此可以包括改善LMB對處理器的親和性。為了進(jìn) 一步解釋,圖8闡明了對改善LMB對處理器的親和性的示例性方法進(jìn)行 說明的流程圖。圖8的方法影響兩個LMB (402, 403)的處理器-存儲器 親和性。LMB ( 402, 403 )彼此遠(yuǎn)離,LMB (402 )在MCM 704中而LMB
(403)在MCM (705)中。如上所述,每個MCM均含有處理器和存儲 器。在管理體內(nèi)實(shí)現(xiàn)圖8的方法。通過管理體將來自各MCM的處理器和 存儲器分派給LPAR中的操作系統(tǒng)(圖8中未示出)。
在圖8的例子中,處理器(156)與位于相同的MCM(704)上的LMB
(402)具有緊密的親和性-而與位于不同的MCM (705)上遠(yuǎn)離處理器
(156)的LMB (403)具有較少的親和性。類似地,在圖8的例子中,處 理器(157)與位于相同的MCM (705)上的LMB (403)具有緊密的親 和性-而與位于不同的MCM (704)上遠(yuǎn)離處理器(157)的LMB (402) 具有較少的親和性。LMB (402)含有頁框編號600-699,并且LMB (403 ) 含有頁框800-899。 LMB中的頁框分派僅用于進(jìn)行解釋,而非限制。讀者 可以認(rèn)識到,在實(shí)際情況下LMB含有超過IOO的多個頁框。所示的MCM
(705)和MCM (704)通過系統(tǒng)總線(160)耦合,但是讀者可以i人識到,
該體系機(jī)構(gòu)僅用于解釋親和性,而非對本發(fā)明的限制。事實(shí)上,可以通過 分離的印刷電路板、連接,通過底板或子板,以及本領(lǐng)域的技術(shù)人員可以
想到的其它方式來實(shí)現(xiàn)疏遠(yuǎn)的親和性(remote affinity)。
在頁表(416、 418、 417和419)中分別說明了用于MCM (704, 705) 上的兩個分區(qū)的頁表?xiàng)l目。頁表(416, 418)分別示出了在親和性改*# 作之前(416)和之后(418)用于MCM (705)的頁表?xiàng)l目。類似地,頁 表(417, 419)分別示出了在親和性改善操作之前(417)和之后(419) 用于MCM (704)的頁表?xiàng)l目。頁表(416)示出了由在MCM ( 705 )上 的處理器(157)上運(yùn)行的線程使用的虛擬頁面號567、 568和569被映射 到在物理上位于相對于處理器(157)具有疏遠(yuǎn)的親和性的MCM (704) 上的LMB (402)中的頁框666、 667和668。類似地,頁表(417)示出 了由在MCM (704)上的處理器(156)上運(yùn)行的線程使用的虛擬頁面號 444、 445和446纟皮映射到在物理上位于相對于處理器(156)具有疏遠(yuǎn)的 親和性的MCM (705)上的LMB (403)中的頁框853、 854和855???以改善整個處理器-存儲器親和性和存儲器管理效率,例如,在可以將被 映射到處理器上正使用的虛擬頁面的頁框定位或移動到具有該處理器的相 同MCM上的物理存儲器的情況下。另外,可以利用多個MCM上的處理 器來實(shí)現(xiàn)LPAR,并且這樣的LPAR還可以具有多個頁表,例如,每個 MCM具有一個頁表。根據(jù)本發(fā)明的實(shí)施例改善LMB對處理器的親和性 對于在多個MCM上具有多個頁表和處理器的這樣的LPAR也是有用的。 圖8的方法包括復(fù)制頁框的內(nèi)容(408),過程操作基本上如本說明書 中上文所描述的。然而,為了改善親和性,在圖8的方法中,復(fù)制(408) LMB的頁框的內(nèi)^f利地包括將LMB (402)的頁框(406)的內(nèi)容復(fù) 制(802)到LMB (402)外部的臨時頁框(702)。那么圖8的方法中復(fù) 制(408)頁框的內(nèi)M包括將LMB (403)的頁框(409)的內(nèi)容復(fù)制 (804)到LMB (402)的頁框(406),以及將臨時頁框(702)的內(nèi)容復(fù) 制(洲6)到LMB (705)的頁框(409)。圖8的方法還包括存儲(410) 新的頁框號,其一般如上所述進(jìn)行操作,但在這里包括對于LMB(402)的內(nèi)容以;SJ^于第二LMB (403)的內(nèi)容(409)這二者,存儲(808)標(biāo) 識出向其復(fù)制了內(nèi)容的頁框的新的頁框號。
頁表(418, 419)示出了這些親和性改4^作的效果。頁表(418)示 出了由在MCM (705)上的處理器(157)上運(yùn)行的線程所使用的虛擬頁 面號567、 568和569現(xiàn)在被映射到頁框853、 854和855,頁框853、 854 和855在物理上位于目前相對于相同的MCM上的處理器(157)具有緊 密的親和性的MCM (705)上的LMB (403)中。類似地,頁表(419) 示出了由在MCM (704)上的處理器(156)上運(yùn)行的線程所使用的虛擬 頁面號444、 445和446現(xiàn)在被映射到頁框666、 667和668,頁框666、 667 和668在物理上位于相對于相同的MCM上的處理器(156)具有緊密的 親和性的MCM ( 704 )上的LMB (402 )中。
主要在用于管理具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中的計(jì)算機(jī)存儲器的全功 能計(jì)算機(jī)系統(tǒng)的環(huán)境下描述了本發(fā)明的示例性實(shí)施例。然而,本領(lǐng)域的技
術(shù)人員可以認(rèn)識到,本發(fā)明還可以體現(xiàn)在置于隨任何適當(dāng)?shù)臄?shù)據(jù)處理系統(tǒng) 一起使用的信號承載介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品中。這樣的信號承栽介質(zhì)可 以是用于機(jī)器可讀信息的傳輸介質(zhì)或可記錄介質(zhì),包括磁介質(zhì)、光介質(zhì), 或者其它合適的介質(zhì)。可記錄介質(zhì)的例子包括磁帶或硬盤驅(qū)動器中的磁盤、 用于光驅(qū)動器的光盤、磁帶,以及本領(lǐng)域的技術(shù)人員可以想到的其它方式。 傳輸介質(zhì)的例子包括用于話音通信的電話網(wǎng)絡(luò),以及舉例來說,像 EthernetTM以及與網(wǎng)際協(xié)議和萬維網(wǎng)通信的網(wǎng)絡(luò)這樣的數(shù)字?jǐn)?shù)據(jù)通信網(wǎng) 絡(luò)。本領(lǐng)域的技術(shù)人員可以立即認(rèn)識到,具有適當(dāng)編程裝置的任何計(jì)算機(jī) 系統(tǒng)都將能夠執(zhí)行如程序產(chǎn)品中所體現(xiàn)的本發(fā)明的方法的步驟。本領(lǐng)域的 技術(shù)人員可以立即認(rèn)識到,盡管本說明書中所描述的一些示例性實(shí)施例是 面向安裝和執(zhí)行于計(jì)算M件上的軟件的,然而,實(shí)現(xiàn)為固件或硬件的可 選實(shí)施例也屬于本發(fā)明的范圍之內(nèi)。
根據(jù)前文的描述可以理解到,在本發(fā)明的范圍內(nèi)可以對本發(fā)明的上述 說明性實(shí)施例進(jìn)行各種修改。
權(quán)利要求
1.一種用于在具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中管理計(jì)算機(jī)存儲器的方法,所述方法包括通過管理體,從邏輯分區(qū)(“LPAR”)的一個邏輯存儲塊(“LMB”)中的頁框,將具有用于所述LPAR中的操作系統(tǒng)的頁表中的頁框號的頁框的內(nèi)容復(fù)制到所述LMB外部的頁框;以及在所述頁表中存儲新的頁框號,包括通過所述管理體,為復(fù)制了其內(nèi)容的每個頁框存儲標(biāo)識出向其復(fù)制了內(nèi)容的頁框的新的頁框號;其中復(fù)制頁框的內(nèi)容和存儲新的頁框號是相對于所述操作系統(tǒng)透明實(shí)現(xiàn)的。
2. 根據(jù)權(quán)利要求1的方法,其進(jìn)一步包括 通過所述管理體創(chuàng)建所述頁表中所有頁框的列表; 通過所述管理體監(jiān)視從所述^Mt系統(tǒng)到所述管理體的、將頁框添加到所述頁表的調(diào)用,此時所述管理體正在復(fù)制頁框的內(nèi)容和存儲新的頁框號; 以及將添加到所述頁表的頁框添加到所述列表;其中復(fù)制頁框的內(nèi)容進(jìn)一步包括復(fù)制所述列表上的頁框的內(nèi)容。
3. 根據(jù)權(quán)利要求1或2的方法,其中具有超過一個尺寸的存儲頁面被 映射到所述LMB的頁框,所述方法進(jìn)一步包括將存儲器管理中斷從所述操作系統(tǒng)導(dǎo)引到所述管理體;以及將用于所述操作系統(tǒng)的存儲器管理操作從用于所述操作系統(tǒng)的頁表切換到臨時可選頁表;其中復(fù)制頁框的內(nèi)容進(jìn)一步包括復(fù)制與被映射到所述LMB的頁框的頁面中的最小頁面具有相同尺寸的分段中的頁框的內(nèi)容。
4. 根據(jù)權(quán)利要求3的方法,其中復(fù)制頁框的內(nèi)容進(jìn)一步包括從所述臨時可選頁表中刪除同樣處在用于所述操作系統(tǒng)的頁表中的頁 框;以及 在用于所述操作系統(tǒng)的頁表中存儲這樣的刪除頁框的狀態(tài)比特。
5. 根據(jù)前述權(quán)利要求中任何一項(xiàng)的方法,其中所述LMB的頁框中的 至少一個被映射用于直接存儲器存取("DMA"),并且復(fù)制頁框的內(nèi)容進(jìn) 一步包括在復(fù)制被映射用于DMA的頁框的內(nèi)容時,通過所述管理體來阻閉 DMA操作;以及在DMA映射表中為所述LMB的被映射用于DMA的每個頁框存儲標(biāo) 識出向其復(fù)制了內(nèi)容的頁框的新的頁框號。
6. 根據(jù)前述權(quán)利要求中任何一項(xiàng)的方法,其進(jìn)一步包括創(chuàng)建一段空 閑的相連存儲器,其既大于LMB并且又大得足以容納頁表。
7. 根據(jù)權(quán)利要求6的方法,其中創(chuàng)建一段空閑的相連存儲器進(jìn)一步包 括通過所述管理體為兩個或更多的相連LMB重復(fù)實(shí)現(xiàn)以下步驟通過所述管理體,將處在用于所述LPAR中的操作系統(tǒng)的頁表中的 LMB的頁框的內(nèi)容從所述LMB中的頁框復(fù)制到所述LMB外部的頁框;在所述頁表中存儲新的頁框號,包括通過所述管理體,為復(fù)制了其內(nèi) 容的每個頁框存儲標(biāo)識出向其復(fù)制了內(nèi)容的頁框的新的頁框號;以及將所述LMB添加到空閑存儲器的列表。
8. 根據(jù)前述權(quán)利要求中任何一項(xiàng)的方法,其進(jìn)一步包括改善LMB 對處理器的親和性,其中復(fù)制所述LMB的頁框的內(nèi)容進(jìn)一步包括將所述LMB的頁框的內(nèi)容復(fù)制到所述LMB外部的臨時頁框; 將第二 LMB的頁框的內(nèi)容復(fù)制到所述LMB的頁框;以及 將所述臨時頁框的內(nèi)容復(fù)制到所述第二LMB的頁框;以及存儲新的頁框號進(jìn)一步包括對于所述LMB的內(nèi)容以及對于所述第 二 LMB的內(nèi)容這二者,存儲標(biāo)識出向其復(fù)制了內(nèi)容的頁框的新的頁框號。
9. 一種用于在具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中管理計(jì)算機(jī)存儲器的裝 置,所述裝置包括計(jì)算機(jī)處理器以及在操作上耦合于所述計(jì)算機(jī)處理器 的計(jì)算機(jī)存儲器,所述計(jì)算機(jī)存儲器具有置于其內(nèi)的計(jì)算積4呈序指令,所述計(jì)算M序指令能夠通過管理體,從邏輯分區(qū)("LPAR")的一個邏輯存儲塊("LMB,,) 中的頁框,將具有用于所述LPAR中的操作系統(tǒng)的頁表中的頁框號的頁框 的內(nèi)容復(fù)制到所述LMB外部的頁框;以及在所述頁表中存儲新的頁框號,包括通過所述管理體,為復(fù)制了其內(nèi) 容的每個頁框存儲標(biāo)識出向其復(fù)制了內(nèi)容的頁框的新的頁框號;其中所述計(jì)算機(jī)程序指令進(jìn)一步能夠相對于所述IMt系統(tǒng)透明地復(fù) 制頁框的內(nèi)容和存儲新的頁框號。
10. 根據(jù)權(quán)利要求9的裝置,其進(jìn)一步包括計(jì)算機(jī)程序指令,所述計(jì) 算機(jī)程序指令能夠通過所述管理體創(chuàng)建所述頁表中所有頁框的列表;通過所述管理體監(jiān)視從所述操作系統(tǒng)到所述管理體的、將頁框添加到 所述頁表的調(diào)用,此時所述管理體正在復(fù)制頁框的內(nèi)容和存儲新的頁框號; 以及將添加到所述頁表的頁框添加到所述列表;其中復(fù)制頁框的內(nèi)容進(jìn)一步包括復(fù)制所述列表上的頁框的內(nèi)容。
11. 根據(jù)權(quán)利要求9或10的裝置,其中具有超過一個尺寸的存儲頁 面被映射到所述LMB的頁框,所述裝置進(jìn)一步包括計(jì)算機(jī)程序指令,所 述計(jì)算機(jī)程序指令能夠?qū)⒋鎯ζ鞴芾碇袛鄰乃霾僮飨到y(tǒng)導(dǎo)引到所述管理體;以及將用于所述操作系統(tǒng)的存儲器管理操作從用于所述操作系統(tǒng)的頁表切換到臨時可選頁表;其中復(fù)制頁框的內(nèi)容進(jìn)一步包括復(fù)制與被映射到所述LMB的頁框的頁面中的最小頁面具有相同尺寸的分段中的頁框的內(nèi)容。
12. 根據(jù)權(quán)利要求ll的裝置,其中復(fù)制頁框的內(nèi)容進(jìn)一步包括 從所述臨時可選頁表中刪除同樣處在用于所述操作系統(tǒng)的頁表中的頁框;以及在用于所述操作系統(tǒng)的頁表中存儲這樣的刪除頁框的狀態(tài)比特。
13. 根據(jù)權(quán)利要求9至12中任何一項(xiàng)的裝置,其中所述LMB的頁框 中的至少一個4皮映射用于直接存儲器存取("DMA"),并且復(fù)制頁框的內(nèi) 容進(jìn)一步包括在復(fù)制被映射用于DMA的頁框的內(nèi)容時,通過所述管理體來阻閉 DMA操作;以及在DMA映射表中為所述LMB的被映射用于DMA的每個頁框存儲標(biāo) 識出向其復(fù)制了內(nèi)容的頁框的新的頁框號。
14. 根據(jù)權(quán)利要求9至13中任何一項(xiàng)的裝置,其進(jìn)一步包括計(jì)算機(jī) 程序指令,所述計(jì)算機(jī)程序指令能夠創(chuàng)建一段空閑的相連存儲器,其既大 于LMB并且又大得足以容納頁表。
15. 根據(jù)權(quán)利要求14的裝置,其中創(chuàng)建一段空閑的相連存儲器進(jìn)一 步包括通過所述管理體為兩個或更多的相連LMB重復(fù)實(shí)現(xiàn)以下步驟通過所述管理體,將處在用于所述LPAR中的操作系統(tǒng)的頁表中的 LMB的頁框的內(nèi)^J斤述LMB中的頁框復(fù)制到所述LMB外部的頁框; 在所述頁表中存儲新的頁框號,包括通過所述管理體,為復(fù)制了其內(nèi)容的每個頁框存儲標(biāo)識出向其復(fù)制了內(nèi)容的頁框的新的頁框號;以及 將所述LMB添加到空閑存儲器的列表。
16. 根據(jù)權(quán)利要求9至15中任何一項(xiàng)的裝置,其進(jìn)一步包括能夠改 善LMB對處理器的親和性的計(jì)算積4呈序指令,其中復(fù)制所述LMB的頁框的內(nèi)容進(jìn)一步包括將所述LMB的頁框的內(nèi)容復(fù)制到所述LMB外部的臨時頁框; 將第二LMB的頁框的內(nèi)容復(fù)制到所述LMB的頁框;以及 將所述臨時頁框的內(nèi)容復(fù)制到所述第二LMB的頁框;以及存儲新的頁框號進(jìn)一步包括對于所述LMB的內(nèi)容以及對于所迷第 二 LMB的內(nèi)容這二者,存儲標(biāo)識出向其復(fù)制了內(nèi)容的頁框的新的頁框號。
17. —種用于在具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中管理計(jì)算機(jī)存儲器的 計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品置于信號承載介質(zhì)之上,所述計(jì)算 機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序指令,其能夠通過管理體,從邏輯分區(qū)("LPAR,,)的一個邏輯存儲塊("LMB,,) 中的頁框,將具有用于所述LPAR中的操作系統(tǒng)的頁表中的頁框號的頁框 的內(nèi)容復(fù)制到所述LMB外部的頁框;以及在所述頁表中存儲新的頁框號,包括通過所述管理體,為復(fù)制了其內(nèi) 容的每個頁框存儲標(biāo)識出向其復(fù)制了內(nèi)容的頁框的新的頁框號;其中復(fù)制頁框的內(nèi)容和存儲新的頁框號是相對于所述操作系統(tǒng)透明實(shí) 現(xiàn)的。
18. 根據(jù)權(quán)利要求17的計(jì)算*序產(chǎn)品,其進(jìn)一步包括計(jì)算機(jī)程序 指令,所述計(jì)算枳一呈序指令能夠通過所述管理體創(chuàng)建所述頁表中所有頁框的列表;通過所述管理體監(jiān)視從所述操作系統(tǒng)到所述管理體的、將頁框添加到 所述頁表的調(diào)用,此時所述管理體正在復(fù)制頁框的內(nèi)容和存儲新的頁框號; 以及將添加到所述頁表的頁框添加到所述列表;其中復(fù)制頁框的內(nèi)容進(jìn)一步包括復(fù)制所述列表上的頁框的內(nèi)容。
19. 根據(jù)權(quán)利要求17或18的計(jì)算機(jī)程序產(chǎn)品,其中具有超過一個尺 寸的存儲頁面被映射到所述LMB的頁框,所述計(jì)算機(jī)程序產(chǎn)品進(jìn)一步包 括計(jì)算機(jī)程序指令,其能夠?qū)⒋鎯ζ鞴芾碇袛鄰乃霾僮飨到y(tǒng)導(dǎo)引到所述管理體;以及將用于所述操作系統(tǒng)的存儲器管理操作從用于所述操作系統(tǒng)的頁表切換到臨時可選頁表;其中復(fù)制頁框的內(nèi)容進(jìn)一步包括復(fù)制與被映射到所述LMB的頁框的頁面中的最小頁面具有相同尺寸的分段中的頁框的內(nèi)容。
20. 根據(jù)權(quán)利要求19的計(jì)算機(jī)程序產(chǎn)品,其中復(fù)制頁框的內(nèi)容進(jìn)一 步包括從所述臨時可選頁表中刪除同樣處在用于所述操作系統(tǒng)的頁表中的頁 框;以及在用于所述操作系統(tǒng)的頁表中存儲這樣的刪除頁框的狀態(tài)比特。
21. 根據(jù)權(quán)利要求17至20中任何一項(xiàng)的計(jì)算機(jī)程序產(chǎn)品,其中所述 LMB的頁框中的至少一個被映射用于直接存儲器存取("DMA"),并且復(fù) 制頁框的內(nèi)容進(jìn)一步包括在復(fù)制被映射用于DMA的頁框的內(nèi)容時,通過所述管理體來阻閉 DMA操作;以及在DMA映射表中為所述LMB的被映射用于DMA的每個頁框存儲標(biāo) 識出向其復(fù)制了內(nèi)容的頁框的新的頁框號。
22. 才艮據(jù)權(quán)利要求17至21中任何一項(xiàng)的計(jì)算機(jī)程序產(chǎn)品,其進(jìn)一步 包括計(jì)算機(jī)程序指令,所述計(jì)算機(jī)程序指令能夠創(chuàng)建一段空閑的相連存儲 器,其既大于LMB并且又大得足以容納頁表。
23. 根據(jù)權(quán)利要求22的計(jì)算機(jī)程序產(chǎn)品,其中創(chuàng)建一段空閑的相連 存儲器進(jìn)一步包括通過所述管理體為兩個或更多的相連LMB重復(fù)實(shí)現(xiàn) 以下步驟通過所述管理體,將處在用于所述LPAR中的操作系統(tǒng)的頁表中的 LMB的頁框的內(nèi)容從所述LMB中的頁框復(fù)制到所述LMB外部的頁框;在所述頁表中存儲新的頁框號,包括通過所述管理體,為復(fù)制了其內(nèi) 容的每個頁框存儲標(biāo)識出向其復(fù)制了內(nèi)容的頁框的新的頁框號;以及將所述LMB添加到空閑存儲器的列表。
24. 根據(jù)權(quán)利要求17至23中任何一項(xiàng)的計(jì)算機(jī)程序產(chǎn)品,其進(jìn)一步 包括能夠改善LMB對處理器的親和性的計(jì)算才g序指令,其中復(fù)制所述LMB的頁框的內(nèi)容進(jìn)一步包括將所迷LMB的頁框的內(nèi)容復(fù)制到所迷LMB外部的臨時頁框; 將第二LMB的頁框的內(nèi)容復(fù)制到所述LMB的頁框;以及 將所述臨時頁框的內(nèi)容復(fù)制到所述第二LMB的頁框;以及存儲新的頁框號進(jìn)一步包括對于所述LMB的內(nèi)容以及對于所述第 二 LMB的內(nèi)容這二者,存儲標(biāo)識出向其復(fù)制了內(nèi)容的頁框的新的頁框號。
全文摘要
在具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中管理計(jì)算機(jī)存儲器,其相對于邏輯分區(qū)中的操作系統(tǒng)透明地操作。描述了用于在具有動態(tài)邏輯分區(qū)的計(jì)算機(jī)中管理計(jì)算機(jī)存儲器的示例性方法、系統(tǒng)和產(chǎn)品,其包括通過管理體,從邏輯分區(qū)(“LPAR”)的一個邏輯存儲塊(“LMB”)中的頁框,將具有用于所述LPAR中的操作系統(tǒng)的頁表中的頁框號的頁框的內(nèi)容復(fù)制到所述LMB外部的頁框。實(shí)施例通常包括在所述頁表中存儲新的頁框號,包括通過所述管理體,為復(fù)制了其內(nèi)容的每個頁框存儲標(biāo)識出向其復(fù)制了內(nèi)容的頁框的新的頁框號。在典型的實(shí)施例中,復(fù)制頁框的內(nèi)容和存儲新的頁框號是相對于所述操作系統(tǒng)透明實(shí)現(xiàn)的。
文檔編號G06F9/455GK101171572SQ200680014922
公開日2008年4月30日 申請日期2006年5月4日 優(yōu)先權(quán)日2005年5月5日
發(fā)明者D·R·恩格布雷特森, M·J·克里甘, N·納亞爾, R·L·阿恩特, T·R·馬齊尼, W·J·阿姆斯特朗 申請人:國際商業(yè)機(jī)器公司