專利名稱::存儲控制器和處理器中管理虛擬化物理存儲器方法和系統(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)是昂貴的,尤其因為許多處理在任何給定時間都只使用其地址空間的一小部分。現(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è)備,用于產(chǎn)生包含與物理存儲系統(tǒng)的存儲位置關(guān)聯(lián)的真實地址的存儲器存取,以對其讀和寫數(shù)據(jù);物理存儲系統(tǒng)中的多個存儲器模塊,用于存儲數(shù)據(jù)作為多個存儲塊,每個存儲塊包括物理存儲器的鄰接字節(jié)。該系統(tǒng)包括多個存儲器控制器,其中多個存儲器控制器中的每一個存儲器控制器與多個存儲器模塊中的一個或多個存儲器模塊耦接,其中多個存儲器控制器中的每一個存儲器控制器,通過寫入和讀取在與其耦接的一個或多個存儲器模塊內(nèi)存儲的存儲塊,響應(yīng)存儲器存取。第一和第二寄存器分別位于多個存儲器控制器中的第一和第二存儲器控制器內(nèi),具有第一字段,分別用于存儲對應(yīng)于與其耦接的多個存儲器模塊中第一和第二存儲器模塊的當(dāng)前真實地址;和第二字段,分別用于存儲對應(yīng)于第一和第二存儲器模塊的新真實地址。系統(tǒng)包括移動引擎,響應(yīng)于有關(guān)正在修改第一和第二存儲器模塊的配置的通知,基于第一和第二存儲器模塊的當(dāng)前真實地址,將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊。在第一存儲器控制器中提供第一映射引擎,用于在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,使第一存儲器控制器能響應(yīng)尋址到第一寄存器中存儲的當(dāng)前真實地址的存儲器存取,并在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之后,使第一存儲器控制器能只響應(yīng)尋址到第一寄存器中存儲的新真實地址的存儲器存取。在第二存儲器控制器中提供第二映射引擎,用于在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,使第二存儲器控制器能響應(yīng)尋址到第二寄存器中存儲的當(dāng)前真實地址的存儲器存取,并在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之后,使第二存儲器控制器能只響應(yīng)尋址到第二寄存器中存儲的新真實地址的存儲器存取。在替換實施例中,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,第一和第二映射引擎使其對應(yīng)的存儲器控制器能響應(yīng)尋址到其對應(yīng)的寄存器中的當(dāng)前真實地址或新真實地址的寫入存儲器請求。在另一個替換實施例中,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊,而后第二映射引擎使第二存儲器能只響應(yīng)尋址到第二寄存器中存儲的新真實地址的存儲器存取之后,從物理存儲系統(tǒng)中移走第一存儲器模塊。在另一個替換實施例中,第二寄存器中存儲的新真實地址等同于第一寄存器中存儲的當(dāng)前真實地址,而第一寄存器中存儲的新真實地址在物理存儲系統(tǒng)的當(dāng)前可尋址空間之外。在另一個替換實施例中,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之前,在物理存儲系統(tǒng)中插入第二存儲器模塊。在另一個替換實施例中,第二寄存器中存儲的新真實地址等同于第一寄存器中存儲的當(dāng)前真實地址,而第一寄存器中存儲的新真實地址在物理存儲系統(tǒng)的當(dāng)前可尋址空間之內(nèi)。在另一個替換實施例中,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,第一和第二映射引擎使其對應(yīng)的存儲器控制器能響應(yīng)只尋址到其對應(yī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)互連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上操作的地址空間。圖中展示了三個處理P1、P2以及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”個位的字段,例如低階位。2的數(shù)字j次冪表示頁的大小,例如數(shù)字j等于12表示頁大小為4千字節(jié)。2的數(shù)字i次冪表示以頁數(shù)表示的物理存儲器的大小,例如數(shù)字i等于20表示一個物理百萬頁的數(shù)量,或4吉字節(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將來自處理器單元10的真實地址的高階位解碼,存儲器控制器24、34以及44識別每個存儲器控制器的相應(yīng)存儲器模塊M1、M2、M3的可尋址真實空間。每個存儲器控制器24、34以及44分別包含映射引擎26、36、46,其使與其關(guān)聯(lián)的存儲器控制器能夠響應(yīng)已尋址到其對應(yīng)的存儲器模塊的存儲器存取。每個映射引擎26、36、46提供用于選擇所耦接的存儲器模塊的真實地址空間(具體說來,高階真實地址位)的可配置分配,從而有效地改變了每個存儲器設(shè)備的基地址。如果存儲器存取的真實地址是駐留在其對應(yīng)的存儲器模塊(由真實地址的大量高階位確定)中的資源的真實地址,并且該資源已被更新,則特定的存儲器控制器經(jīng)由互連12來響應(yīng)該請求。根據(jù)優(yōu)選實施例,然后由存儲器控制器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,根據(jù)最佳實施例,移動引擎28和映射引擎26、36以及46提供對物理存儲器的虛擬化功能,以使得能夠有效地重新配置物理存儲器22。當(dāng)物理存儲器22被重新配置之后,例如當(dāng)在系統(tǒng)中插入、移走或替換存儲器模塊M1、M2以及M3中的一個時,移動引擎28在物理存儲器22的存儲器模塊之間進行數(shù)據(jù)傳輸。映射引擎26、36以及46控制存儲器模塊M1、M2、M3的真實到物理尋址,以使得能夠添加、減去或替換特定的存儲器模塊。這一存儲器管理在硬件/固件級有效地完成,只需要少量的操作系統(tǒng)資源來完成物理存儲器的重新配置。圖3在數(shù)據(jù)處理系統(tǒng)8的簡化圖中圖解了從物理存儲器移走存儲器模塊的實施例。下面將說明,處理器的移動引擎結(jié)合關(guān)聯(lián)的映射引擎工作,以在將關(guān)聯(lián)的存儲器模塊物理移走之前使其脫機。一般地,移動引擎將要移走的存儲器模塊的內(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)立即開始調(diào)出頁,以減少所存儲數(shù)據(jù)的量。處理器單元10向所有移動引擎28和映射引擎26、36和46通知,存儲器模塊M2正在從物理存儲器22中移走。移動引擎28立即選擇將用于存儲包含在存儲器模塊M2中的數(shù)據(jù)的剩余的一個或多個模塊。每個映射引擎26、36以及46分別包含寄存器301、305、309,用于存儲其關(guān)聯(lián)存儲器模塊的“當(dāng)前”真實地址和其關(guān)聯(lián)存儲器模塊的“新”真實地址(在這里使用的真實地址指整個真實地址或需要唯一地識別用于存儲由存儲器的已索引塊尋址的數(shù)據(jù)的關(guān)聯(lián)存儲器模塊的那一部分(例如高階位))。如圖3所示,映射引擎26包含寄存器301,其具有字段302,其包含存儲器模塊M1的當(dāng)前真實地址;和字段304,其包含存儲器模塊M1的新真實地址。相似地,映射引擎36包含寄存器305,其具有字段306,其包含存儲器模塊M2的當(dāng)前真實地址;和字段308,其包含存儲器模塊M2的新真實地址。映射引擎46包含寄存器309,其具有字段310,其包含存儲器模塊M3的當(dāng)前真實地址;和字段312,其包含存儲器模塊M3的新真實地址。移動引擎28按需要載入每個寄存器301、305、309,以進行存儲器重新配置。字段302表示存儲器模塊M1的當(dāng)前真實地址是RA1。字段304包含存儲器模塊M1的新真實地址,并表示其在RA1保持相同。映射引擎36包含字段306,表示存儲器模塊M1的當(dāng)前真實地址為RA2。對于其新的真實地址,給存儲器模塊M2以當(dāng)前分配給物理存儲系統(tǒng)的整個真實地址空間之外的真實地址。因此,例如,字段308包含存儲器模塊M2的新真實地址,即RA4,其在映射到真實地址(即RA1-RA2)的當(dāng)前真實地址空間(例如0-128GB)之外。相似地,移動引擎28給存儲器模塊M3分配存儲器模塊M2的先前真實地址,如字段312所示,指示存儲器模塊M3的新真實地址為RA2。字段310表示存儲器模塊M3的當(dāng)前真實地址為RA3,其現(xiàn)在處于對操作系統(tǒng)可尋址真實空間之外。在圖3所示的例子中,移動引擎28選擇存儲器模塊M3接收存儲器模塊M2中存儲的數(shù)據(jù)。存儲器模塊M1保持在線,并且不從存儲器模塊M2接收任何數(shù)據(jù)。移動引擎28將存儲器模塊M2中的所有存儲內(nèi)容復(fù)制到存儲器模塊M3中。在替換實施例中,移動引擎28將存儲器模塊M2的部分內(nèi)容復(fù)制到存儲器模塊M3中,而將剩余部分復(fù)制到存儲系統(tǒng)22的其它存儲器模塊中(例如存儲器模塊M1)。移動引擎28將由真實地址RA2尋址的存儲器模塊M2中的所有存儲內(nèi)容復(fù)制到由真實地址RA3尋址的存儲器模塊M3中,如路徑325所示。在移動存儲器存儲內(nèi)容的處理期間,存儲器控制器24、34以及44繼續(xù)響應(yīng)互連12上的存儲器存取請求。在數(shù)據(jù)轉(zhuǎn)換期間,映射引擎26、36、46使其各自的存儲器控制器能響應(yīng)并服務(wù)諸如尋址到其當(dāng)前真實地址處的“Read(讀)”和“Write(寫)”的請求,如當(dāng)前真實地址字段302、306、310所指示,并提供向存儲器模塊M1、M2、M3的物理地址的映射,來執(zhí)行這樣指向其當(dāng)前真實地址空間的存儲器存取。在圖3的例子中,存儲器模塊M2會繼續(xù)響應(yīng)尋址到真實地址RA2的Read,如路徑327所示。根據(jù)優(yōu)選實施例,映射引擎26、36、46使其關(guān)聯(lián)存儲器控制器能服務(wù)并響應(yīng)對其當(dāng)前真實地址或其新真實地址的Write請求,如分別由它們的當(dāng)前和新真實地址字段所指示。相應(yīng)地,如圖3中路徑329所示,因為字段306中存儲器模塊M2的當(dāng)前真實地址為RA2,而字段312中存儲器模塊M3的新真實地址為RA2,所以存儲器控制器34和44兩者都處理對真實地址RA2的Write。因為對RA2的存儲器寫入繼續(xù)存儲在存儲器模塊M2和M3兩者中,所以存儲系統(tǒng)確保在整個移動處理中具有一致性。一旦完成從存儲器模塊M2向存儲器模塊M3的數(shù)據(jù)傳輸,移動引擎28就通過將新真實地址復(fù)制到當(dāng)前真實地址字段302、306、310中,并作為結(jié)束步驟,有效地將老地址換為新地址,來更新寄存器301、305、309?,F(xiàn)在,存儲器模塊M1由真實地址RA1尋址,而存儲器模塊M3由真實地址RA2尋址?,F(xiàn)在,映射引擎46進行RA2空間中真實地址向存儲器模塊M3的物理映射,從而創(chuàng)建從操作系統(tǒng)使用的可尋址真實地址空間向虛擬物理地址空間的虛擬化物理映射。下面參考圖4,其中展示了數(shù)據(jù)處理系統(tǒng)8的簡化方框圖,其描繪了插入物理存儲器22中的存儲器模塊M2。處理器單元10向移動引擎28和映射引擎26、36、46通知存儲器模塊正被添加到物理存儲器22中,并且要插入與存儲器控制器34關(guān)聯(lián)并由其控制的存儲器槽中。在這一點上,數(shù)據(jù)處理系統(tǒng)8的當(dāng)前真實地址空間由存儲器模塊M1和M3的物理存儲器組成,并且可以由真實地址空間RA1-RA2尋址。根據(jù)優(yōu)選實施例,每個寄存器301、305、309用各自的當(dāng)前和新真實地址來編程。存儲器模塊M1的真實地址不再重新編程,其在字段302和304中的真實地址在真實地址RA1處保持相同。用字段306中的當(dāng)前真實地址RA4和字段308中的新真實地址RA2對存儲器模塊M2編程。用當(dāng)前真實地址RA4對分配給存儲器模塊M2的當(dāng)前真實地址編程,是因為其處于物理存儲器22的當(dāng)前真實地址空間之外。用字段310中的當(dāng)前真實地址RA2和字段312中的新真實地址RA3對存儲器模塊M3的物理映射編程。應(yīng)該明白,為每個字段選擇的真實地址取決于插入的存儲器模塊M2的大小和現(xiàn)有存儲器模塊M3的大小。在此例中,假設(shè)其大小相同。在其大小不同的情況下,將存儲器模塊M3的真實地址選擇為落在存儲器模塊M2的存儲器邊界上,以提供鄰接的真實存儲空間。在將存儲器模塊M2物理地插入物理存儲器22之后,并且在載入寄存器之后,移動引擎28通過在互連12上向存儲器控制器44發(fā)出存儲器存取請求,而開始將存儲器模塊M3的內(nèi)容復(fù)制到存儲器模塊M2,以將存儲器模塊M3的每個存儲單元復(fù)制到真實地址RA4處的存儲地址空間。使存儲器控制器44能響應(yīng)尋址到其在字段306中編程為當(dāng)前真實地址RA4的當(dāng)前實存儲器的Write。映射引擎36從存儲器模塊M3的每個存儲單元接收寫入,并將其映射到存儲器模塊M2的物理地址空間。這在圖4中由路徑425表示,其展示了真實地址RA2處的存儲單元向真實地址RA4處的存儲單元的復(fù)制。在移動處理期間,將映射引擎36和46編程為響應(yīng)分別編程到它們的寄存器305和309中的當(dāng)前真實地址和新真實地址兩者處的存儲器存取。如圖4所示,由存儲當(dāng)前真實地址RA2的存儲器控制器24、34、44為從處理器單元10指向真實地址RA2的讀取存儲器存取服務(wù)。這里,所有讀取將指向存儲器控制器44,其在字段310中存儲RA2,如路徑427所指示。在互連12上對真實地址RA2的來自處理器10(或者諸如直接存儲器存取設(shè)備的其它設(shè)備)的所有存儲器請求將導(dǎo)致任何在寄存器301、305、309中存儲當(dāng)前或新真實地址的存儲器控制器24、34、44通過物理地映射到對應(yīng)的行與列物理地址,將接收到的數(shù)據(jù)寫入與其耦接的存儲器模塊。如圖4所示,路徑429描繪了從處理器單元10向真實地址RA2的寫入請求,存儲器控制器34和44都接收該請求,導(dǎo)致存儲器模塊M2和M3都被寫入的數(shù)據(jù)更新。應(yīng)該明白,這一機制允許了移動處理期間的存儲一致性。一旦完成了存儲器模塊復(fù)制處理,移動引擎28指引存儲器控制器24、34、44分別響應(yīng)從互連12對字段304、308、312中新真實地址處的存儲器存取。然后操作系統(tǒng)被通知系統(tǒng)的真實地址空間增加了等于存儲器模塊M2的可尋址空間的量。然后操作系統(tǒng)開始跨越存儲器模塊M1、M2以及M3的真實地址空間RA1-RA3存儲和訪問存儲頁。應(yīng)該明白,有些情況下,插入的存儲器模塊與現(xiàn)有存儲器的存儲器邊界相匹配,而真實地址空間不必重新配置。因此,在替換實施例中,不進行存儲移動處理,而立即用與新添加的真實地址空間關(guān)聯(lián)的真實地址對新模塊的映射引擎編程。例如,如果將圖4所示的存儲器模塊M2插入物理存儲器22,那么將用真實地址RA3對字段306和308每個編程。用真實地址RA2對寄存器309的字段310、312每個編程。在這種情況下,不將存儲器模塊M3中存儲的數(shù)據(jù)復(fù)制到存儲器模塊M2,而保留在存儲器模塊M3中。因為優(yōu)選實施例中的映射引擎準(zhǔn)許每個存儲器模塊的真實地址的編程,所以存儲器模塊M2物理上位于存儲器模塊M3和M1之間的事實并不能避免將存儲器模塊M2編程為在真實地址空間RA3之內(nèi)響應(yīng)。一旦在物理存儲器22的存儲器插槽中添加了存儲器模塊M2,就向操作系統(tǒng)通知,其真實地址空間增加了等于存儲器模塊M2的存儲器存儲量的量,而存儲器控制器34立即開始響應(yīng)對真實地址RA3的存儲器存取。在替換物理存儲器22中的存儲器模塊的情況下,根據(jù)結(jié)合圖3描述的處理,從物理存儲器22中移走存儲器模塊,然后,根據(jù)結(jié)合圖4描述的處理,向物理存儲器插回新的存儲器模塊。同樣,現(xiàn)在返回參考圖1,輸入/輸出連接器52內(nèi)的映射引擎56以與映射引擎26、36、46相同的方式操作。當(dāng)進行對根據(jù)優(yōu)選實施例重新配置的存儲器模塊進行直接存儲器存取操作時,輸入/輸出連接器52以與處理器單元10相似地方式操作。應(yīng)該明白,系統(tǒng)可以具有附加的輸入/輸出連接器,與輸入/輸出連接器52相同,連接到互連12。隨著在PCI總線58(或其它類似的從屬總線)上添加或移走諸如盤驅(qū)動器和視頻監(jiān)視器的各種輸入/輸出設(shè)備,映射引擎56連同移動引擎28操作,以準(zhǔn)許對該輸入/輸出設(shè)備的物理地址的虛擬化,其操作方式與上面描述的在物理存儲器22中移走或添加存儲器模塊的方式相同。應(yīng)該明白,優(yōu)選實施例為要在物理存儲器22中插入、移走或替換的存儲器模塊做準(zhǔn)備,以完成該物理存儲器改變,而操作系統(tǒng)不必指引或控制物理存儲器的重新配置。在優(yōu)選實施例中,引動引擎28和映射引擎26、36、46一同工作,以透明地重新配置物理存儲器,以完成在物理存儲器中特定存儲器模塊的添加、減去或替換。映射引擎寄存器存儲當(dāng)前或新的真實地址,其使得移動和映射引擎能夠虛擬化每個存儲器模塊的物理地址,并通過使用硬件功能性而不使用軟件,實時提供對所存儲的數(shù)據(jù)的重新配置和操縱。還應(yīng)該明白,因為在存儲器分層體系的存儲器控制器層發(fā)生物理存儲器的虛擬化,所以多個存儲器模塊的重新配置可以同時進行,而正常存儲器操作在互連上繼續(xù)操作,并且不需要操作系統(tǒng)或系統(tǒng)處理器的特殊處理。盡管參考優(yōu)選實施例具體展示和描述了本發(fā)明,但是本領(lǐng)域一般技術(shù)人員應(yīng)該明白,在不脫離本發(fā)明的精神和范圍的情況下,可以對其進行形式和細節(jié)上的各種修改。權(quán)利要求1.一種數(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è)置寄存器,其中第一和第二存儲器模塊分別耦接到第一和第二存儲器控制器,每個寄存器被設(shè)置為指示所耦接的存儲器模塊的當(dāng)前真實地址和新真實地址,而其中第一和第二存儲器控制器都響應(yīng)尋址到它們各自的寄存器中存儲的當(dāng)前真實地址的存儲器存??;基于第一和第二存儲器模塊的當(dāng)前真實地址,將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊;以及在完成復(fù)制步驟之后,配置第一和第二存儲器控制器,以便只響應(yīng)尋址到它們各自的寄存器中存儲的新真實地址的存儲器存取。2.如權(quán)利要求1所述的方法,其特征在于,在復(fù)制步驟期間,多個存儲器控制器中的每一個存儲器控制器響應(yīng)尋址到存儲器控制器的寄存器中存儲的當(dāng)前真實地址或新真實地址的寫入存儲器請求。3.如權(quán)利要求1所述的方法,其特征在于在配置步驟之后,從存儲系統(tǒng)中移走第一存儲器模塊,第一存儲器模塊的當(dāng)前真實地址在物理存儲系統(tǒng)的當(dāng)前可尋址空間內(nèi),而第一存儲器模塊的新真實地址在物理存儲系統(tǒng)的當(dāng)前可尋址空間之外。4.如權(quán)利要求1所述的方法,其特征在于在復(fù)制步驟之前,在存儲系統(tǒng)中插入第一存儲器模塊,其中第一存儲器模塊的當(dāng)前真實地址在物理存儲系統(tǒng)的當(dāng)前可尋址空間內(nèi),而第二存儲器模塊的新真實地址在物理存儲系統(tǒng)的當(dāng)前可尋址空間之外。5.如權(quán)利要求1所述的方法,該方法還包括向處理器通知多個存儲器模塊的配置正在被修改,其中響應(yīng)于該通知而進行設(shè)置步驟。6.如權(quán)利要求1所述的方法,其特征在于,在復(fù)制步驟期間,多個存儲器控制器中的每個存儲器控制器響應(yīng)只尋址到存儲器控制器的寄存器中存儲的當(dāng)前真實地址的讀存儲器存取。7.一個系統(tǒng),其具有處理器設(shè)備,用于產(chǎn)生包含與物理存儲系統(tǒng)的存儲位置關(guān)聯(lián)的真實地址的存儲器存取,以對其讀和寫數(shù)據(jù);物理存儲系統(tǒng)中的多個存儲器模塊,用于存儲數(shù)據(jù)作為多個存儲塊,每個存儲塊包括物理存儲器的鄰接字節(jié),該系統(tǒng)包括多個存儲器控制器,其中多個存儲器控制器中的每一個存儲器控制器與多個存儲器模塊中的一個或多個存儲器模塊耦接,并且其中多個存儲器控制器中的每一個存儲器控制器,通過寫入或讀取在與其耦接的一個或多個存儲器模塊內(nèi)存儲的存儲塊,響應(yīng)存儲器存??;第一寄存器,位于多個存儲器控制器中的第一存儲器控制器內(nèi),具有第一字段,用于存儲對應(yīng)于與其耦接的多個存儲器模塊中第一存儲器模塊的當(dāng)前真實地址;和第二字段,用于存儲對應(yīng)于第一存儲器模塊的新真實地址;第二寄存器,位于多個存儲器控制器中的第二存儲器控制器內(nèi),具有第一字段,用于存儲對應(yīng)于與其耦接的多個存儲器模塊中第二存儲器模塊的當(dāng)前真實地址;和第二字段,用于存儲對應(yīng)于第二存儲器模塊的新真實地址;移動引擎,響應(yīng)于有關(guān)正在修改第一和第二存儲器模塊的配置的通知,基于第一和第二存儲器模塊的當(dāng)前真實地址,將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊;第一映射引擎,位于第一存儲器控制器中,用于在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,使第一存儲器控制器能響應(yīng)尋址到第一寄存器中存儲的當(dāng)前真實地址的存儲器存取,并在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之后,使第一存儲器控制器能只響應(yīng)尋址到第一寄存器中存儲的新真實地址的存儲器存?。灰约暗诙成湟?,位于第二存儲器控制器中,用于在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,使第二存儲器控制器能響應(yīng)尋址到第二寄存器中存儲的當(dāng)前真實地址的存儲器存取,并在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之后,使第二存儲器控制器能只響應(yīng)尋址到第二寄存器中存儲的新真實地址的存儲器存取。8.如權(quán)利要求7所述的系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,第一和第二映射引擎使它們各自的存儲器控制器能響應(yīng)尋址到它們各自的寄存器中存儲的當(dāng)前真實地址或新真實地址的寫入存儲器請求。9.如權(quán)利要求7所述的系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊,而后第二映射引擎使第二存儲器能只響應(yīng)尋址到第二寄存器中存儲的新真實地址的存儲器存取之后,從物理存儲系統(tǒng)中移走第一存儲器模塊。10.如權(quán)利要求9所述的系統(tǒng),其特征在于,第二寄存器中存儲的新真實地址等同于第一寄存器中存儲的當(dāng)前真實地址,而第一寄存器中存儲的新真實地址在物理存儲系統(tǒng)的當(dāng)前可尋址空間之外。11.如權(quán)利要求7所述的系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之前,在物理存儲系統(tǒng)中插入第二存儲器模塊。12.如權(quán)利要求11所述的系統(tǒng),其特征在于,第二寄存器中存儲的新真實地址等同于第一寄存器中存儲的當(dāng)前真實地址,而第一寄存器中存儲的新真實地址在物理存儲系統(tǒng)的當(dāng)前可尋址空間之內(nèi)。13.如權(quán)利要求7所述的系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,第一和第二映射引擎使它們各自的存儲器控制器能響應(yīng)只尋址到它們各自的寄存器中存儲的當(dāng)前真實地址的讀取存儲器存取。14.一種數(shù)據(jù)處理系統(tǒng),包括物理存儲系統(tǒng),其具有多個用于存儲數(shù)據(jù)作為多個存儲塊的存儲器模塊,每個存儲塊包括物理存儲器的鄰接字節(jié);多個處理器設(shè)備,用于產(chǎn)生包含與物理存儲系統(tǒng)的存儲位置關(guān)聯(lián)的真實地址的存儲器存取,以對其讀和寫數(shù)據(jù);多個存儲器控制器,其中多個存儲器控制器中的每一個存儲器控制器與多個存儲器模塊中的一個或多個存儲器模塊耦接,其中多個存儲器控制器中的每一個存儲器控制器,通過寫入和讀取在與其耦接的一個或多個存儲器模塊內(nèi)存儲的存儲塊,響應(yīng)存儲器存??;第一寄存器,位于多個存儲器控制器中的第一存儲器控制器內(nèi),具有第一字段,用于存儲對應(yīng)于與其耦接的多個存儲器模塊中第一存儲器模塊的當(dāng)前真實地址;和第二字段,用于存儲對應(yīng)于第一存儲器模塊的新真實地址;第二寄存器,位于多個存儲器控制器中的第二存儲器控制器內(nèi),具有第一字段,用于存儲對應(yīng)于與其耦接的多個存儲器模塊中第二存儲器模塊的當(dāng)前真實地址;和第二字段,用于存儲對應(yīng)于第二存儲器模塊的新真實地址;移動引擎,響應(yīng)于有關(guān)正在修改第一和第二存儲器模塊的配置的通知,基于第一和第二存儲器模塊的當(dāng)前真實地址,將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊;第一映射引擎,位于第一存儲器控制器中,用于在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,使第一存儲器控制器能響應(yīng)尋址到第一寄存器中存儲的當(dāng)前真實地址的存儲器存取,并在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之后,使第一存儲器控制器能響應(yīng)尋址到第一寄存器中存儲的新真實地址的存儲器存取;以及第二映射引擎,位于第二存儲器控制器中,用于在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,使第二存儲器控制器能響應(yīng)尋址到第二寄存器中存儲的當(dāng)前真實地址的存儲器存取,并在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之后,使第二存儲器控制器能響應(yīng)尋址到第二寄存器中存儲的新真實地址的存儲器存取。15.如權(quán)利要求14所述的系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,第一和第二映射引擎使它們各自的存儲器控制器能響應(yīng)尋址到它們各自的寄存器中存儲的當(dāng)前真實地址或新真實地址的寫入存儲器請求。16.如權(quán)利要求14所述的系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊,而后第二映射引擎使第二存儲器控制器能只響應(yīng)尋址到第二寄存器中存儲的新真實地址的存儲器存取之后,從物理存儲系統(tǒng)中移走第一存儲器模塊。17.如權(quán)利要求16所述的系統(tǒng),其特征在于,第二寄存器中存儲的新真實地址等同于第一寄存器中存儲的當(dāng)前真實地址,而第一寄存器中存儲的新真實地址在物理存儲系統(tǒng)的當(dāng)前可尋址空間之外。18.如權(quán)利要求14所述的系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊之前,在物理存儲系統(tǒng)中插入第二存儲器模塊。19.如權(quán)利要求18所述的系統(tǒng),其特征在于,第二寄存器中存儲的新真實地址等同于第一寄存器中存儲的當(dāng)前真實地址,而第一寄存器中存儲的新真實地址在物理存儲系統(tǒng)的當(dāng)前可尋址空間之內(nèi)。20.如權(quán)利要求14所述的系統(tǒng),其特征在于,在移動引擎將多個存儲塊從第一存儲器模塊復(fù)制到第二存儲器模塊期間,第一和第二映射引擎使它們各自的存儲器控制器能響應(yīng)只尋址到它們各自的寄存器中存儲的當(dāng)前真實地址的讀取存儲器存取。全文摘要處理器包含移動引擎,而存儲器控制器包含映射引擎,其共同透明地重新配置物理存儲器,以完成存儲器模塊的添加、減去或替換。映射引擎寄存器存儲當(dāng)前和新真實地址,其使得這些引擎能夠虛擬化正被重新配置的物理模塊的物理地址,并通過使用硬件功能而非軟件來提供實時重新配置。使用當(dāng)前和新真實地址來選擇來源和目標(biāo),移動引擎將要移走或重新配置的存儲器模塊中的內(nèi)容復(fù)制到剩余的或插入的存儲器模塊中。然后,將與重新配置的存儲器模塊關(guān)聯(lián)的真實地址重新分配給接收所復(fù)制內(nèi)容的存儲器模塊,從而創(chuàng)建從操作系統(tǒng)利用的可尋址真實地址空間向虛擬物理地址空間的虛擬化物理映射。文檔編號G06F12/00GK1489057SQ0312773公開日2004年4月14日申請日期2003年8月13日優(yōu)先權(quán)日2002年10月10日發(fā)明者拉萬·K·阿里米利,約翰·S·多德森,桑吉夫·加伊,肯尼思·L·賴特,L賴特,加伊,S多德森,拉萬K阿里米利申請人:國際商業(yè)機器公司