專利名稱::管理數(shù)據(jù)處理器系統(tǒng)中虛擬化的物理存儲器的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明一般地涉及數(shù)據(jù)處理,特別涉及管理數(shù)據(jù)處理系統(tǒng)中的物理存儲器。更特別地,本發(fā)明涉及通過操作系統(tǒng)控制自主地管理數(shù)據(jù)處理系統(tǒng)中的物理存儲器的方法和系統(tǒng)。
背景技術(shù):
:在計算機系統(tǒng)中,習(xí)慣上,在處理器產(chǎn)生的存儲地址和系統(tǒng)的物理存儲器中的特定區(qū)域之間具有一一對應(yīng)的關(guān)系。這將操作系統(tǒng)和應(yīng)用程序限制在由系統(tǒng)中安裝的實際物理存儲器確定的地址空間上。此外,許多現(xiàn)代計算機系統(tǒng)運行多個并行任務(wù)或處理,每個各有其自己的地址空間。將存儲器的全部補碼專用于每個任務(wù)和操作系統(tǒng)是昂貴的,尤其因為許多處理在任何給定時間都只使用其地址空間的一小部分?,F(xiàn)代計算機系統(tǒng)已通過使用虛擬存儲器而克服了這一限制,其實現(xiàn)了將程序地址(或虛擬地址)映射到實際存儲地址的變換表。虛擬存儲器使得程序能夠在看上去很大而且連續(xù)的、全部專用于該程序的物理存儲地址空間上運行。然而,實際上,多個程序或處理之間共享虛擬存儲系統(tǒng)中的可用物理存儲器。通過結(jié)合計算機硬件和軟件而使處理中使用的虛擬地址轉(zhuǎn)換為物理存儲器的實際地址。這一處理被稱為存儲器映射或地址轉(zhuǎn)換。在虛擬存儲系統(tǒng)中,最一般地,由操作系統(tǒng)軟件(OS)進行存儲器的分配。操作系統(tǒng)的一個功能是確保程序當(dāng)前使用的數(shù)據(jù)和代碼在主存儲器中,并且轉(zhuǎn)換表可以正確地將虛擬地址映射到實際地址。這需要指令序列的中斷,以便使特權(quán)內(nèi)核代碼可以將物理存儲器分配給被訪問的區(qū)域,從而正常程序流可以無錯誤地繼續(xù)。這一中斷和分配物理存儲器的內(nèi)核處理需要大量處理時間,并且擾亂了通過CPU的指令的正常流水線操作。當(dāng)在計算機系統(tǒng)運轉(zhuǎn)期間重新配置物理存儲器時,管理物理存儲器的操作系統(tǒng)的負擔(dān)增加了。在物理存儲器的大小增加或減小的情況下,或者當(dāng)在系統(tǒng)操作期間替換存儲器模塊時(例如,當(dāng)在需要替換的存儲器模塊中發(fā)生錯誤時),OS需要臨時中斷正在處理的任務(wù),修改轉(zhuǎn)換表中的系統(tǒng)存儲器配置信息,并使用已改變的物理地址來將數(shù)據(jù)從壞存儲設(shè)備存儲到盤上,然后重新配置剩余的存儲設(shè)備。如果存儲設(shè)備已被移走,OS必須使移走的設(shè)備的物理地址空間無效,并保持無效的地址空間,以使其不能被使用,實質(zhì)上,在存儲系統(tǒng)的可尋址空間內(nèi)留下了不可用的空間塊。然后,操作系統(tǒng)必須將邏輯地址映射到物理地址上,以避免具有壞存儲位置的頁。這一問題增加了OS的開銷,并且使存儲器的控制變得復(fù)雜。需要一種能夠解決現(xiàn)有技術(shù)的上述問題,并且能夠迅速而又有效地根據(jù)需要實現(xiàn)物理存儲器的動態(tài)重新配置的物理存儲器控制方法和系統(tǒng)。
發(fā)明內(nèi)容根據(jù)優(yōu)選實施例,提供一種管理多處理器系統(tǒng)中虛擬化的物理存儲器的方法和系統(tǒng)。多處理器系統(tǒng)耦接到具有多個用于存儲數(shù)據(jù)作為多個存儲塊的存儲器模塊的物理存儲系統(tǒng),每個存儲塊包括物理存儲器的鄰接字節(jié),并進一步耦接到至少一個存儲器控制器,其中至少一個存儲器控制器中的每一個存儲器與多個存儲器模塊中的一個或多個存儲器模塊耦接,其中至少一個存儲器控制器中的每一個存儲器控制器通過寫入和讀取在與其耦接的一個或多個存儲器模塊內(nèi)存儲的存儲塊,響應(yīng)存儲器存取。多處理器系統(tǒng)包括至少一個處理器設(shè)備,用于產(chǎn)生包含與物理存儲系統(tǒng)的存儲位置關(guān)聯(lián)的真實地址的存儲器存取,以對其讀和寫數(shù)據(jù)。處理器設(shè)備內(nèi)的寄存器具有第一字段,用于存儲對應(yīng)于與其耦接的多個存儲器模塊中的第一存儲器模塊的來自真實地址,其中耦接到第一存儲器模塊的第一存儲器控制器被編程為響應(yīng)尋址到FROM(來自)真實地址的存儲器請求;和第二字段,用于存儲對應(yīng)于與其耦接的多個存儲器模塊中的第二存儲器模塊的TO(去向)真實地址,其中耦接到第二存儲器模塊的第二存儲器控制器被編程為響應(yīng)尋址到去向真實地址的存儲器請求。處理器設(shè)備內(nèi)的移動引擎響應(yīng)于有關(guān)正在修改第一和第二存儲器模塊的配置的通知,基于來自真實地址和去向真實地址,將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊。在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,響應(yīng)于處理器設(shè)備發(fā)出尋址到第一字段或第二字段之一中存儲的真實地址的寫入存儲器請求,處理器設(shè)備內(nèi)的操作系統(tǒng)發(fā)出尋址到來自真實地址和去向真實地址的寫入存儲器請求,并在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之后,將第二存儲器控制器編程為響應(yīng)尋址到來自真實地址的存儲器請求。在替換實施例中,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,響應(yīng)于處理器設(shè)備請求尋址到來自真實地址的寫入存儲器請求,操作系統(tǒng)發(fā)出既尋址到來自真實地址又尋址到去向真實地址的寫入存儲器請求。在另一個替換實施例中,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊,而操作系統(tǒng)使得第二存儲器控制器能夠響應(yīng)尋址到去向真實地址的存儲器存取之后,從物理存儲系統(tǒng)中移走第一存儲器模塊。在另一個替換實施例中,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之前,來自真實地址位于物理存儲系統(tǒng)的當(dāng)前可尋址空間中。在另一個替換實施例中,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之前,在物理存儲系統(tǒng)中插入第二存儲器模塊。在另一個替換實施例中,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之前,去向真實地址位于物理存儲系統(tǒng)的當(dāng)前可尋址空間之外。在所附權(quán)利要求中闡明了本發(fā)明的確信新穎的特征。然而,通過參考附圖詳細描述本發(fā)明的示范實施例,本發(fā)明自身以及其優(yōu)選使用模式、其它目的和優(yōu)點將變得更加清楚,其中圖1圖解了根據(jù)本發(fā)明的優(yōu)選實施例實現(xiàn)的數(shù)據(jù)處理系統(tǒng);圖2展示了根據(jù)本發(fā)明的優(yōu)選實施例,對如圖1所示的數(shù)據(jù)處理系統(tǒng)的存儲系統(tǒng)進行的存儲地址轉(zhuǎn)換處理的方框圖表示;圖3展示了根據(jù)本發(fā)明的優(yōu)選實施例,在將存儲器模塊從物理存儲系統(tǒng)中移走的情況下,圖1所示的數(shù)據(jù)處理系統(tǒng)的簡化圖;圖4展示了根據(jù)本發(fā)明的優(yōu)選實施例,在將存儲器模塊從物理存儲系統(tǒng)中移走的情況下,圖1所示的數(shù)據(jù)處理系統(tǒng)的簡化圖。具體實施例方式下面參考附圖,特別參考圖1,其中圖解了根據(jù)本發(fā)明的一個實施例,支持對虛擬化的物理存儲器的存儲器管理的多處理器(MP)數(shù)據(jù)處理系統(tǒng)的高級方框圖。如圖所示,數(shù)據(jù)處理系統(tǒng)8包括大量(例如64個)處理單元10,通過系統(tǒng)互連12耦接以進行通信。每個處理單元10是包括一個或多個處理器核心14的集成電路。除了寄存器、指令流邏輯以及用于執(zhí)行程序指令的執(zhí)行單元,每個處理器核心14包括關(guān)聯(lián)第一級(L1)指令和數(shù)據(jù)高速緩沖存儲器16和18,其分別臨時緩沖指令和操作數(shù)(operand)數(shù)據(jù),很可能由關(guān)聯(lián)處理器核心14訪問。圖1中還圖解,數(shù)據(jù)處理器系統(tǒng)8的存儲器分層體系還包括物理存儲器22,物理存儲器22包括一個或多個存儲器模塊(如存儲器模塊M1、M2以及M3所示),其形成了存儲器分層體系中最低級的易失性數(shù)據(jù)存儲器;以及一個或多個較低級高速緩沖存儲器,例如片上(on-chip)第二級(L2)高速緩沖存儲器20,用于將指令和操作數(shù)據(jù)從物理存儲器22分階段傳遞到處理器核心14。本領(lǐng)域一般技術(shù)人員應(yīng)該明白,與較高級相比,存儲器分層體系中每個隨后的較低級通常能存儲更大量的數(shù)據(jù),但是需要更多的存取等待時間。如圖所示,通過存儲器控制器24,34以及44與互連12接口的物理存儲器22可以存儲操作數(shù)數(shù)據(jù)、部分或更多操作系統(tǒng)以及一個或多個應(yīng)用程序。存儲器控制器24、34以及44分別耦接并控制對應(yīng)的存儲器模塊M1、M2以及M3(盡管圖中只展示了每個存儲器控制器與單個存儲器模塊耦接,但是應(yīng)該明白,存儲器控制器可以控制存儲系統(tǒng)22中多個存儲器模塊)。包括所有或部分存儲器模塊M1、M2以及M3的集合組成機器的操作系統(tǒng)和應(yīng)用程序的一組物理存儲器資源。操作系統(tǒng)(OS)36存儲在存儲器模塊M1的物理存儲器的最底層。系統(tǒng)互連12可以包括一個或多個總線、轉(zhuǎn)換器結(jié)構(gòu)或其它連接架構(gòu),其用于在耦接到系統(tǒng)互連12上的設(shè)備(例如處理單元10、存儲器控制器24、34、44等)中通信的渠道。系統(tǒng)互連12上的典型事務(wù)以請求開始,請求可以包括指示事務(wù)類型的事務(wù)字段、一個或多個指示事務(wù)來源和/或計劃的接收者的標(biāo)記、以及地址和/或數(shù)據(jù)。每個連接到系統(tǒng)互連12的設(shè)備最好探查系統(tǒng)互連12上的所有事務(wù),并且如果合適的話,用探查響應(yīng)來響應(yīng)請求。這些行為可以包括確定系統(tǒng)互連12上的數(shù)據(jù)的來源、存儲通過請求探查器提供的數(shù)據(jù)、使高速緩沖存儲器的數(shù)據(jù)無效等。輸入/輸出連接器52也耦接到互連12,并通過橋接器54提供在耦接到互連12的其它設(shè)備和耦接到PCI總線58的外部設(shè)備之間通信的渠道。數(shù)據(jù)處理系統(tǒng)8利用虛擬存儲系統(tǒng),其實現(xiàn)了將程序地址(或有效地址)映射到實際存儲地址的轉(zhuǎn)換表。虛擬存儲系統(tǒng)使得可用物理存儲器能夠在多個程序或處理之間共享。通過提供將有效地址(EA)轉(zhuǎn)換為物理地址(PA)的地址轉(zhuǎn)換機制,處理單元10使得處理單元的地址空間(“邏輯地址空間”)能夠具有與可用物理存儲器22不同的大小,這里,物理地址指實際物理存儲器中的位置。該虛擬存儲系統(tǒng)還允許多個程序能夠同時駐留在系統(tǒng)存儲器中,而各自不需要了解其物理基地址的位置。相反地,這多個程序只需要知道其邏輯基地址。此外,不需要嘗試保持對每個可能的有效地址轉(zhuǎn)換或映射,虛擬存儲系統(tǒng)將有效和物理存儲器劃分為多個塊。在許多系統(tǒng)中,這些塊大小固定,并稱作節(jié)(section)或頁(page)。單個頁中的地址都具有相同的最高位。因此,存儲地址由對應(yīng)于地址較高位的頁號和對應(yīng)于地址較低位的頁偏移串聯(lián)而成。通常,數(shù)據(jù)結(jié)構(gòu)保持在物理存儲器中,以從有效頁號轉(zhuǎn)換為真實頁地址。這些數(shù)據(jù)結(jié)構(gòu)經(jīng)常采用轉(zhuǎn)換表的形式,通常稱作段表(segmenttable)和頁表。段表通過有效頁地址或號碼來索引,并且通常具有大量對應(yīng)于有效地址空間中的頁的條目。每個條目都是特定頁號或有效頁地址向虛擬頁地址的映射。頁表通過虛擬頁地址或號碼來索引,并且通常具有大量對應(yīng)于虛擬地址空間中的頁的條目。每個條目都是特定頁號或虛擬頁地址向真實頁地址的映射。在處理器單元10中使用專門的硬件高速緩沖存儲器(未示出)來進行有效到真實地址轉(zhuǎn)換,該硬件高速緩沖存儲器被稱作地址轉(zhuǎn)換高速緩沖存儲器或轉(zhuǎn)換后備緩沖器(TLB),其專用于轉(zhuǎn)換。TLB是快速而又小型的靜態(tài)存儲器,用于存儲頁表中最常被引用的條目。其通常具有固定數(shù)量的條目。當(dāng)處理存儲器請求時,計算機首先嘗試在TLB中發(fā)現(xiàn)合適的地址轉(zhuǎn)換。如果未發(fā)現(xiàn)這樣的地址轉(zhuǎn)換,則自動訪問頁表,以檢索適當(dāng)?shù)霓D(zhuǎn)換。本領(lǐng)域一般技術(shù)人員將明白,數(shù)據(jù)處理系統(tǒng)8可以包括許多附加的未示出的組件,例如I/O適配器、互連橋接器、非易失性存儲器、用于連接到網(wǎng)絡(luò)或附屬設(shè)備的端口等。因為這樣的附加組件對理解本發(fā)明沒有必要,所以圖1中沒有示出,這里也沒有討論。然而,應(yīng)該明白,本發(fā)明提供的增強可應(yīng)用于任何架構(gòu)的數(shù)據(jù)處理系統(tǒng),并且決不限于圖1所示一般化的MP架構(gòu)?,F(xiàn)在參考圖2,其中展示了根據(jù)本發(fā)明的優(yōu)選實施例,存儲管理系統(tǒng)為數(shù)據(jù)處理系統(tǒng)8的虛擬存儲系統(tǒng)進行的存儲器映射。有效地址空間(EffectiveAddressSpace)表示其中有多個處理在彼此獨立操作的處理器單元10上操作的地址空間。圖中展示了三個處理,處理(Process)1(P1)、處理2(P2)以及處理3(P3),各有其自己的邏輯地址空間。對于每個處理,由有效地址對其可尋址空間中的頁或塊尋址。如圖2所示,對三個執(zhí)行處理,物理地址空間(PhysicalAddressSpace)中當(dāng)前載入頁在有效地址空間內(nèi)的有效地址分別被示為P1-EA、P2-EA以及P3-EA。每個有效地址是通過段表轉(zhuǎn)換(SegmentTableTranslation)204而轉(zhuǎn)換的64位地址。由處理器核心14內(nèi)的段后備緩沖器(SLB)或段后備寄存器(SLR)進行段表轉(zhuǎn)換204。由SLB或SLR將應(yīng)用程序地址空間P1、P2以及P3內(nèi)的每個可尋址空間轉(zhuǎn)換為虛擬地址空間(VirtualAddressSpace)206內(nèi)的80位虛擬地址。從而,P1-EA、P2-EA以及P3-EA通過段表轉(zhuǎn)換而分別轉(zhuǎn)換為P2-VA、P1-VA以及P3-VA。然后,使用處理器核心14內(nèi)的轉(zhuǎn)換后備緩沖器(TLB),每個虛擬地址空間P2-VA、P2-VA以及P3-VA通過頁表轉(zhuǎn)換(PageTableTranslation)208而轉(zhuǎn)換到真實地址空間(RealAddressSpace)210中,從而將每個80位虛擬地址P1-VA、P2-VA以及P3-VA轉(zhuǎn)換為其代表系統(tǒng)存儲器內(nèi)的真實地址的64位真實地址P1-RA、P2-RA以及P3-RA。真實地址RA通常由兩個字段組成將物理頁號編碼為數(shù)字“i”個位的字段,例如高階位;和將從物理頁開始起的偏移編碼為數(shù)字“j”個位的字段,例如低階位。二的數(shù)字j次冪表示頁的大小,例如數(shù)字j等于十二表示頁大小為四千字節(jié)。二的數(shù)字i次冪表示以頁數(shù)表示的物理存儲器的大小,例如數(shù)字i等于二十表示一個物理百萬頁的數(shù)量,或四吉字節(jié)(gigabytes)的物理存儲器。如圖1所示,存儲器控制器24、34以及44進行對真實地址的物理映射,以訪問存儲器模塊M1、M2以及M3中所請求的頁。因此,如果在L1高速緩沖存儲器16、18以及L2高速緩沖存儲器20中沒有發(fā)現(xiàn)真實地址空間210中已尋址的頁,在互連12上請求存儲器存取。一旦在互連12中檢測到存儲器存取請求,每個存儲器控制器24、34、44核對由存儲器存取尋址的真實地址空間。由存儲器控制器24、34以及44將來自處理器單元的真實地址的高階位解碼,存儲器控制器24、34以及44識別每個存儲器控制器的相應(yīng)存儲器模塊M1、M2、M3的可尋址真實空間。每個存儲器控制器24、34以及44響應(yīng)已尋址到其對應(yīng)的存儲器模塊的存儲器存取。如圖2所示,這樣由存儲器控制器24、34、44進行物理映射212。物理映射212為地址頁P1-RA、P2-RA以及P3-RA轉(zhuǎn)換真實地址,并將其分別映射到對應(yīng)的物理地址P1-PA、P2-PA以及P3-PA,而物理地址P1-PA、P2-PA以及P3-PA表示所請求的那些頁在對應(yīng)的存儲器模塊M1、M2以及M3中的物理地址。物理地址指示存儲尋址信息的存儲器模塊內(nèi)的特定存儲位置。例如,P2-PA指定特定的行和列地址,以唯一地識別存儲器模塊2中已尋址的頁。這一物理映射機制對操作系統(tǒng)OS是不可見的,操作系統(tǒng)OS借助于真實地址查看所有物理存儲器資源,而不將這些資源的位置推理地辨別為特定的系統(tǒng)存儲器22內(nèi)的存儲器模塊M1、M2、M3。返回參考圖1,在每個處理器單元10中包含有移動引擎28。存儲器模塊M1存儲由OS36操縱并利用的映射值306、308。如圖所示,映射值306、308最好存儲在存儲器模塊M1中最接近OS36的位置;然而,應(yīng)該明白映射值306、308可以存儲在物理存儲器22的任何存儲器中。根據(jù)優(yōu)選實施例,OS36和移動引擎28提供物理存儲器的虛擬化功能,以使得能夠有效地重新配置物理存儲器22。當(dāng)物理存儲器22被重新配置之后,例如當(dāng)在系統(tǒng)中插入、移走或替換存儲器模塊M1、M2以及M3中的一個時,移動引擎28進行物理存儲器22的存儲器模塊之間的數(shù)據(jù)傳輸,而OS36控制存儲器模塊M1、M2、M3的從屬存儲器模塊的真實到物理尋址,以使得能夠添加、減去或替換特定的存儲器模塊。這一存儲器管理由硬件和OS有效地完成,只產(chǎn)生繼續(xù)存儲系統(tǒng)操作中的少量中斷,以完成物理存儲器的重新配置。在操作中,OS36為正在被重新配置的所選擇的存儲器模塊提供真實地址空間(具體說來,高階真實地址位)的可配置分配,這有效地改變了該存儲設(shè)備的基地址。圖3在數(shù)據(jù)處理系統(tǒng)8的簡化圖中圖解了從物理存儲器移走存儲器模塊的實施例。如下面將說明的,處理器的移動引擎結(jié)合操作系統(tǒng)工作,以在將關(guān)聯(lián)的存儲器模塊移走之前使其脫機,但是使剩余物理存儲器繼續(xù)正常工作。一般地,移動引擎將要移走的存儲器模塊的內(nèi)容復(fù)制到物理存儲器中剩余的存儲器模塊中。然后,將該存儲器模塊的真實地址重新分配給接收所復(fù)制內(nèi)容的存儲器模塊。在此例子中,將存儲器模塊M2從數(shù)據(jù)處理系統(tǒng)8中移走。第一步,處理器單元10向操作系統(tǒng)報告其總可用物理存儲器現(xiàn)在減少了一個存儲器模塊。例如,如果每個存儲器模塊M1、M2、M3都是64吉位(GB)的存儲設(shè)備,則向操作系統(tǒng)通知現(xiàn)在其可用物理存儲器為128GB。相應(yīng)地,操作系統(tǒng)立即開始換出頁,以減少所存儲數(shù)據(jù)的量。處理器單元10向所有移動引擎28通知,存儲器模塊M2正在從物理存儲器22中被移走。移動引擎28立即選擇將用于存儲包含在存儲器模塊M2中的數(shù)據(jù)的剩余的一個或多個模塊。OS36存取存儲器模塊M1中的存儲器字段306、308,以存儲被移走的存儲器模塊的“FROM(來自)”真實地址和被移走的存儲器模塊的內(nèi)容的“TO(去向)”真實地址(在這里使用的真實地址指整個真實地址或需要唯一地識別用于存儲由存儲器的已索引塊尋址的數(shù)據(jù)的關(guān)聯(lián)存儲器模塊的那一部分(例如高階位))。OS36按需要存取并修改存儲器字段306、308,以進行給定的存儲器重新配置。在替換實施例中,字段306、308中保持的FROM(來自)和TO(去向)存儲器地址可以存儲在處理器中的通用寄存器中,或存儲在另一個存儲設(shè)備中。如圖3所示,存儲器字段306包含存儲器模塊M2的來自(FROM)真實地址,而字段308包含將保留移走的模塊的存儲內(nèi)容的對應(yīng)存儲器模塊(在此例中是存儲器模塊M3)的去向(TO)真實地址。字段306顯示存儲器模塊M2的來自真實地址為RA2,而字段308顯示存儲器模塊M2的去向真實地址為RA3。在圖3所示的例子中,移動引擎28選擇存儲器模塊M3接收存儲器模塊M2中存儲的數(shù)據(jù),并向OS36報告此事。OS36修改存儲系統(tǒng)的頁表(pagetable),以將Write(寫)存儲器存取限制到存儲器模塊M2,并將存儲器模塊M3的內(nèi)容復(fù)制到盤或其它外部存儲設(shè)備。存儲器模塊M1保持在線,對處理器單元10的連續(xù)存取可用,并且不從存儲器模塊M2接收任何數(shù)據(jù)。然后,移動引擎28開始“移動處理”,以將來自真實地址(RA2)處的存儲器地址空間的內(nèi)容復(fù)制到去向真實地址(RA3)處的存儲器地址空間。相應(yīng)地,移動引擎28通過在互連12上向存儲器控制器發(fā)出存儲器存取請求,而開始將存儲器模塊M2中的內(nèi)容復(fù)制到存儲器模塊M3中,以將存儲器模塊M2的每個存儲單元復(fù)制到真實地址RA3處的存儲器地址空間。從而,移動引擎28將由真實地址RA2尋址的存儲器模塊M2中的所有存儲內(nèi)容復(fù)制到由真實地址RA3尋址的存儲器模塊M3中,如路徑325所示。在替換實施例中,移動引擎28將存儲器模塊M2的部分內(nèi)容復(fù)制到存儲器模塊M3中,而將剩余部分復(fù)制到存儲系統(tǒng)22的其它存儲器模塊中(例如存儲器模塊M1)。在移動存儲器存儲內(nèi)容的處理期間,存儲器控制器24、34以及44機繼續(xù)響應(yīng)互連12上的存儲器存取請求。然而,OS36限制所有尋址到在由來自真實地址字段306指示的來自真實地址處存儲的存儲器的“Write(寫)”存儲器請求(但是準(zhǔn)許“Read(讀)”),以確保整個移動處理中的一致性。在圖3的例子中,存儲器模塊M2會繼續(xù)響應(yīng)尋址到真實地址RA2的Read,如路徑327所示。存儲系統(tǒng)因為對RA2的存儲器寫入繼續(xù)存儲在存儲器模塊M2和M3兩者中。一旦完成從存儲器模塊M2向存儲器模塊M3的數(shù)據(jù)傳輸,移動引擎28就將去向真實地址復(fù)制到字段306的來自真實地址中,或重置存儲器字段。然后存儲器控制器44重新編程,以響應(yīng)先前由存儲器控制器34管理的真實地址RA2,并且OS36使正常Read/Write存儲器存取能存取真實地址RA2?,F(xiàn)在,存儲器模塊M1由真實地址RA1尋址,而存儲器模塊M3由真實地址RA2尋址?,F(xiàn)在,存儲器控制器44進行RA2空間中真實地址向存儲器模塊M3的直接物理映射,從而創(chuàng)建從操作系統(tǒng)正使用的可尋址真實地址空間向虛擬物理地址空間的虛擬化物理映射。下面參考圖4,其中展示了數(shù)據(jù)處理系統(tǒng)8的簡化方框圖,其描繪了插入物理存儲器22中的存儲器模塊M2。處理器單元10通知移動引擎28和OS36存儲器模塊正被添加到物理存儲器22中,并且要插入與存儲器控制器34關(guān)聯(lián)并由其控制的存儲器槽中。在這一點上,數(shù)據(jù)處理系統(tǒng)8的當(dāng)前真實地址空間由存儲器模塊M1和M3的物理存儲器組成,并且可以由真實地址空間RA1-RA2尋址。根據(jù)優(yōu)選實施例,存儲器字段306、308用各自的來自和去向真實地址來編程。分配給存儲器模塊M2的真實地址用物理存儲器22的當(dāng)前真實地址空間之外的去向真實地址(此例中為RA4)來編程。來自真實地址是在真實可尋址空間插入和重新編程之后,分配有插入的存儲器模塊的地址。字段306用來自真實地址RA2來編程,而字段308用去向真實地址RA4來編程。OS36對與插入的存儲器模塊關(guān)聯(lián)的存儲器控制器(此例中為存儲器控制器34)編程,以響應(yīng)真實地址RA4。應(yīng)該明白,為每個字段選擇的真實地址取決于插入的存儲器模塊M2的大小和現(xiàn)有存儲器模塊M3的大小。在此例中,假設(shè)它們大小相同。在它們大小不同的情況下,將存儲器模塊M3的真實地址選擇落在存儲器模塊M2的存儲器邊界上,以提供鄰接的真實存儲空間。在將存儲器模塊M2物理地插入物理存儲器22之后,移動引擎28開始“移動處理”,以將去向真實地址(RA4)處的存儲地址空間的內(nèi)容復(fù)制到來自真實地址(RA2)處的存儲地址空間。相應(yīng)地,通過在互連12上向存儲器控制器44發(fā)出存儲器存取請求,移動引擎28開始將存儲器模塊M3的內(nèi)容復(fù)制到存儲器模塊M2,以將存儲器模塊M3的每個存儲單元復(fù)制到真實地址RA4處的存儲器地址空間。存儲器控制器44從存儲器模塊M3的每個存儲單元接收寫入,并將其映射到存儲器模塊M2的物理地址空間。這在圖4中由路徑425表示,其展示了真實地址RA2處的存儲單元向真實地址RA4處的存儲單元的復(fù)制。在移動處理期間,由被編程為響應(yīng)真實地址空間RA2的存儲器控制器44為從處理器單元10指向真實地址RA2的Read存儲器存取繼續(xù)服務(wù)。從處理器單元10指向真實地址RA2的Write存儲器存取將停止,直到物理存儲器22被重新配置。應(yīng)該明白,這一機制允許移動處理期間的存儲一致性。一旦完成了移動處理,OS36指引存儲器控制器34響應(yīng)從互連12指向字段306中的來自真實地址的存儲器存取,并指引存儲器控制器44響應(yīng)從互連12指向被重新配置的實存儲器空間內(nèi)另一個真實地址的存儲器存取。在此例中,存儲器控制器44被重新編程以響應(yīng)真實地址RA3,以提供鄰接的真實可尋址存儲器RA1-RA3。然后OS36將開始跨越存儲器模塊M1、M2以及M3的真實地址空間RA1-RA3存儲和存取存儲頁。應(yīng)該明白,有些情況下,插入的存儲器模塊與現(xiàn)有存儲器的存儲器邊界相匹配,而真實地址空間不必重新配置。因此,在替換實施例中,不進行存儲移動處理,而OS36立即對與插入的存儲器模塊關(guān)聯(lián)的存儲器控制器編程,以響應(yīng)與添加的真實地址空間關(guān)聯(lián)的去向真實地址。例如,如果將圖4所示的存儲器模塊M2插入物理存儲器22,那么將用真實地址RA3對字段306和308每一個編程。在這種情況下,不將存儲器模塊M3中存儲的數(shù)據(jù)復(fù)制到存儲器模塊M2,而保留在存儲器模塊M3中。一旦在物理存儲器22的存儲器插槽中添加了存儲器模塊M2,OS36就指引存儲器控制器34立即開始響應(yīng)對真實地址RA3的存儲器存取。在替換物理存儲器22中的存儲器模塊的情況下,根據(jù)結(jié)合圖3描述的處理,從物理存儲器22中移走存儲器模塊,然后,根據(jù)結(jié)合圖4描述的處理,向物理存儲器插回TO(去向)存儲器模塊。同樣,現(xiàn)在返回參考圖1,當(dāng)對根據(jù)優(yōu)選實施例重新配置的存儲器模塊進行直接存儲器存取操作時,輸入/輸出連接器52以與處理器單元10相似地方式操作。應(yīng)該明白,系統(tǒng)可以具有附加的輸入/輸出連接器,與輸入/輸出連接器52相同,連接到互連12。隨著在PCI總線58(或其它類似的從屬總線)上添加或移走諸如盤驅(qū)動器和視頻監(jiān)視器的各種輸入/輸出設(shè)備,OS36連同移動引擎28操作,以準(zhǔn)許對該輸入/輸出設(shè)備的物理地址的虛擬化,其操作方式與上面描述的在物理存儲器22中移走或添加存儲器模塊的方式相同。應(yīng)該明白,優(yōu)選實施例使OS和移動引擎能提供物理存儲器的虛擬化功能,以準(zhǔn)許在物理存儲器中插入、移走或替換存儲器模塊。當(dāng)重新配置物理存儲器時,移動引擎28在物理存儲器22的存儲器模塊之間進行數(shù)據(jù)傳輸,而OS36控制從屬存儲器模塊的真實到物理尋址,以準(zhǔn)許特定存儲器模塊的添加、減去或替換。這一存儲器管理通過硬件和OS、以較少地繼續(xù)存儲系統(tǒng)操作中斷有效地完成,以完成物理存儲器的重新配置。盡管參考優(yōu)選實施例具體展示和描述了本發(fā)明,但是本領(lǐng)域一般技術(shù)人員應(yīng)該明白,在不脫離本發(fā)明的精神和范圍的情況下,可以對其進行形式和細節(jié)上的各種修改。權(quán)利要求1.一種計算系統(tǒng),耦接到具有多個用于存儲數(shù)據(jù)作為多個存儲塊的存儲器模塊的物理存儲系統(tǒng),每個存儲塊包括物理存儲器的鄰接字節(jié),并進一步耦接到至少一個存儲器控制器,其中至少一個存儲器控制器中的每一個存儲器與多個存儲器模塊中的一個或多個存儲器模塊耦接,其中至少一個存儲器控制器中的每一個存儲器控制器通過寫入和讀取在與其耦接的一個或多個存儲器模塊內(nèi)存儲的存儲塊,響應(yīng)存儲器存取,并且進一步耦接到處理器設(shè)備,用于產(chǎn)生包含與物理存儲系統(tǒng)的存儲位置關(guān)聯(lián)的真實地址的存儲器存取,并對其讀和寫數(shù)據(jù),該計算系統(tǒng)包括第一字段,位于物理存儲系統(tǒng)中,用于存儲對應(yīng)于與其耦接的多個存儲器模塊中的第一存儲器模塊的來自(FROM)真實地址,其中耦接到第一存儲器模塊的第一存儲器控制器被編程為響應(yīng)尋址到來自真實地址的存儲器請求;和第二字段,位于物理存儲系統(tǒng)中,用于存儲對應(yīng)于與其耦接的多個存儲器模塊中的第二存儲器模塊的去向(TO)真實地址,其中耦接到第二存儲器模塊的第二存儲器控制器被編程為響應(yīng)尋址到去向真實地址的存儲器請求;移動引擎,響應(yīng)于有關(guān)正在修改第一和第二存儲器模塊的配置的通知,基于來自真實地址和去向真實地址,將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊;以及操作系統(tǒng),在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,限制向?qū)ぶ返降谝蛔侄位虻诙侄沃恢写鎯Φ恼鎸嵉刂返奈锢泶鎯ο到y(tǒng)發(fā)出任何寫入存儲器請求,并在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之后,將第二存儲器控制器編程為響應(yīng)尋址到來自真實地址的存儲器請求。2.如權(quán)利要求1所述的計算系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,操作系統(tǒng)準(zhǔn)許尋址到來自真實地址的讀取存儲器請求。3.如權(quán)利要求1所述的計算系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊,而后操作系統(tǒng)使得第二存儲器控制器能夠響應(yīng)尋址到來自真實地址的存儲器存取之后,從物理存儲系統(tǒng)中移走第一存儲器模塊。4.如權(quán)利要求3所述的計算系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之前,去向真實地址位于物理存儲系統(tǒng)的當(dāng)前可尋址空間中。5.如權(quán)利要求1所述的計算系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之前,在物理存儲系統(tǒng)中插入第二存儲器模塊。6.如權(quán)利要求5所述的計算系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之前,去向真實地址位于物理存儲系統(tǒng)的當(dāng)前可尋址空間之外。7.一種數(shù)據(jù)處理系統(tǒng)內(nèi)的數(shù)據(jù)處理方法,其特征在于,數(shù)據(jù)處理系統(tǒng)包括處理器設(shè)備,用于產(chǎn)生包含與物理存儲系統(tǒng)的存儲位置關(guān)聯(lián)的物理地址的存儲器存取,并對其讀和寫數(shù)據(jù);物理存儲系統(tǒng)包括多個存儲器控制器,通過對與其耦接的一個或多個存儲器模塊內(nèi)存儲的存儲塊寫入和讀取,每個存儲器控制器響應(yīng)由處理器設(shè)備請求的存儲器存取,該方法包括對在物理存儲系統(tǒng)中存儲的第一字段和第二字段進行設(shè)置,以分別指示對應(yīng)于第一和第二存儲器模塊的來自真實地址和去向真實地址,第一和第二存儲器模塊分別與第一和第二存儲器控制器耦接;基于來自真實地址和去向真實地址,將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊;在完成復(fù)制步驟之后,配置第一和第二存儲器控制器,以便只響應(yīng)尋址到去向真實地址的存儲器存取。8.如權(quán)利要求7所述的方法,其特征在于,在復(fù)制步驟期間,響應(yīng)于處理器設(shè)備發(fā)出尋址到去向真實地址的寫入存儲器請求,不發(fā)出尋址到去向真實地址的寫入存儲器請求。9.如權(quán)利要求7所述的方法,在配置步驟之后,還包括從物理存儲系統(tǒng)中移走第一存儲器模塊的步驟,其中來自真實地址在物理存儲系統(tǒng)的當(dāng)前可尋址空間內(nèi)。10.如權(quán)利要求7所述的方法,在復(fù)制步驟之前,還包括在存儲系統(tǒng)中插入第一存儲器模塊的步驟,其中去向真實地址在物理存儲器的當(dāng)前可尋址空間之外。11.如權(quán)利要求7所述的方法,還包括向處理器通知多個存儲器模塊的配置正被修改,其中響應(yīng)于該通知而進行設(shè)置步驟。12.一種數(shù)據(jù)處理系統(tǒng),包括物理存儲系統(tǒng),其具有多個存儲器模塊,用于作為多個存儲塊存儲數(shù)據(jù),每個存儲塊包括物理存儲器的鄰接字節(jié);多個存儲器控制器,其中多個存儲器控制器中的每一個存儲器控制器與多個存儲器模塊中的一個或多個存儲器模塊耦接,其中多個存儲器控制器中的每一個存儲器控制器,通過寫入和讀取在與其耦接的一個或多個存儲器模塊內(nèi)存儲的存儲塊,響應(yīng)存儲器存取;以及多個處理器設(shè)備,用于產(chǎn)生包含與物理存儲系統(tǒng)的存儲位置關(guān)聯(lián)的真實地址的存儲器存取,以對其讀取和寫入數(shù)據(jù);第一字段,位于物理存儲系統(tǒng)中,用于存儲對應(yīng)于與其耦接的多個存儲器模塊中的第一存儲器模塊的來自真實地址,其中耦接到第一存儲器模塊的第一存儲器控制器被編程為響應(yīng)尋址到來自真實地址的存儲器請求;和第二字段,位于物理存儲系統(tǒng)中,用于存儲對應(yīng)于與其耦接的多個存儲器模塊中的第二存儲器模塊的去向真實地址,其中耦接到第二存儲器模塊的第二存儲器控制器被編程為響應(yīng)尋址到去向真實地址的存儲器請求;移動引擎,響應(yīng)于有關(guān)正在修改第一和第二存儲器模塊的配置的通知,基于來自真實地址和去向真實地址,將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊;以及操作系統(tǒng),在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,限制向?qū)ぶ返降谝蛔侄位虻诙侄沃恢写鎯Φ恼鎸嵉刂返奈锢泶鎯ο到y(tǒng)發(fā)出任何寫入存儲器請求,并在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之后,將第二存儲器控制器編程為響應(yīng)尋址到來自真實地址的存儲器請求。13.如權(quán)利要求12所述的系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,操作系統(tǒng)準(zhǔn)許讀取存儲器請求尋址到來自真實地址。14.如權(quán)利要求12所述的系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊,而后操作系統(tǒng)使得第二存儲器控制器能夠響應(yīng)尋址到來自真實地址的存儲器存取之后,從物理存儲系統(tǒng)中移走第一存儲器模塊。15.如權(quán)利要求14所述的系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之前,去向真實地址位于物理存儲系統(tǒng)的當(dāng)前可尋址空間內(nèi)。16.如權(quán)利要求12所述的系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之前,在物理存儲系統(tǒng)中插入第二存儲器模塊。17.如權(quán)利要求16所述的系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之前,去向真實地址位于物理存儲系統(tǒng)的當(dāng)前可尋址空間之外。全文摘要移動引擎和操作系統(tǒng)透明地重新配置物理存儲器,以完成存儲器模塊的添加、減去或替換。操作系統(tǒng)在存儲器中唯一的字段中存儲來自和去向真實地址,其用于虛擬化被重新配置的物理模塊的物理地址,并通過使用硬件功能而非軟件來提供實時重新配置。使用來自和去向真實地址來選擇來源和目標(biāo),移動引擎將要移走或重新配置的存儲器模塊中的內(nèi)容復(fù)制到剩余的或插入的存儲器模塊中。然后,將與已重新配置的存儲器模塊關(guān)聯(lián)的真實地址重新分配給接收所復(fù)制內(nèi)容的存儲器模塊,從而創(chuàng)建從操作系統(tǒng)利用的可尋址真實地址空間向虛擬物理地址空間的虛擬化物理映射。文檔編號G06F12/02GK1489058SQ03127739公開日2004年4月14日申請日期2003年8月13日優(yōu)先權(quán)日2002年10月10日發(fā)明者拉萬·K·阿里米利,約翰·S·多德森,桑吉夫·加伊,肯尼思·L·賴特,L賴特,加伊,S多德森,拉萬K阿里米利申請人:國際商業(yè)機器公司