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