專利名稱::用于在處理器存儲裝置內(nèi)的數(shù)據(jù)移動的方法和系統(tǒng)的制作方法用于在處理器存儲裝置內(nèi)的數(shù)據(jù)移動的方法和系統(tǒng)
技術(shù)領(lǐng)域:
的轉(zhuǎn)換表(TT)來直接操縱存儲器頁的系統(tǒng)。技術(shù)背景在計算機系統(tǒng)中,通常在處理器所產(chǎn)生的存儲器地址與系統(tǒng)的物理存儲器中的特定區(qū)域之間存在一一對應(yīng)。處理器請求訪問不具有相關(guān)聯(lián)的物理存儲器區(qū)域的地址是一種錯誤。這將操作系統(tǒng)(OS)和應(yīng)用限制在由該系統(tǒng)中所安裝的實際物理存儲器所確定的地址空間。現(xiàn)代計算機系統(tǒng)通過使用虛擬存儲器已經(jīng)克服了這種局限,虛擬存儲器實現(xiàn)用于將程序地址映射到實際存儲器地址的轉(zhuǎn)換表(TT)。通過使用虛擬存儲器,程序工作在僅受處理器架構(gòu)限制的地址空間中。OS的一種功能是確保程序的數(shù)據(jù)和代碼位于主存儲器中以及確保TT可以將虛擬地址正確地映射到實際地址。在虛擬存儲器系統(tǒng)中,存儲器的分配最通常是由操作系統(tǒng)軟件來執(zhí)行。這需要中斷指令序列,從而特權(quán)內(nèi)核代碼可以將物理存儲器分配給正被訪問的區(qū)域,使得正常程序流可以無錯誤地繼續(xù)。這種中斷以及分配物理存儲器的內(nèi)核處理需要相當長的處理時間,并且打亂了經(jīng)過中央處理器單元(CPU)的指令的正常流水線操作。然而,在諸如IBMz/OS操作系統(tǒng)之類的已采用了中央存儲機制的計算機系統(tǒng)中,在系統(tǒng)上運行的大多數(shù)應(yīng)用不能夠方便地利用附加的中央存儲裝置,其中中央存儲機制在以前的架構(gòu)限制之上增大了系統(tǒng)中的中央存儲裝置的最大允許量。z/OS操作系統(tǒng)是來自IBM的64位服務(wù)器沖喿作系統(tǒng)。它是IBM大型機操作系統(tǒng)OS/390的繼承者,其合并了多虛擬存儲裝置(MVS)和UNIX系統(tǒng)服務(wù)(一種與POSIX兼容的UNIX的大型機實現(xiàn),以前被稱作MVS公開版本)。z/OS是高度安全、可升級、高性能的企業(yè)操作系統(tǒng),在其上可構(gòu)建和配置因特網(wǎng)和具有Java能力的應(yīng)用或傳統(tǒng)應(yīng)用,z/OS提供了全面和多樣的應(yīng)用執(zhí)行環(huán)境。新軟件產(chǎn)品的一個重要特征是能夠與公司的傳統(tǒng)應(yīng)用一起工作或者至少具有能夠從它們導入數(shù)據(jù)的能力。在信息技術(shù)中,傳統(tǒng)應(yīng)用和數(shù)據(jù)是已經(jīng)從比當前技術(shù)更早的語言、平臺和技術(shù)中繼承的那些應(yīng)用和數(shù)據(jù)。使用計算機的大多數(shù)企業(yè)具有為關(guān)鍵性商業(yè)需求服務(wù)的傳統(tǒng)應(yīng)用和數(shù)據(jù)庫。在此處所討論的情況中,這些傳統(tǒng)應(yīng)用基于中央存儲裝置可尋址性的舊架構(gòu)限制來工作。在某些環(huán)境下,這些傳統(tǒng)應(yīng)用總體上對高達舊架構(gòu)限制的中央存儲裝置的管理設(shè)置了與系統(tǒng)的中央存儲裝置不相稱的"約束"。由此,在軟件操作系統(tǒng)(例如,IBMz/OS)中,需要設(shè)計一種方法來特殊地處理對低于舊限制的中央存儲裝置設(shè)置的不相稱的"約束"。這種機制還必須以最大的效率來執(zhí)行其功能,以在用于執(zhí)行該功能的機器"時鐘周期"數(shù)目方面對操作系統(tǒng)的侵擾減到最小。操作系統(tǒng)所消耗的時鐘周期越多,則用于實現(xiàn)客戶的商業(yè)目標的客戶應(yīng)用的可用時鐘周期就越少。在新的傳統(tǒng)存儲裝置的釋放過程期間,當該傳統(tǒng)存儲裝置變成受約束時相當多的中央處理單元(CPU)資源被消耗。在苛刻的約束條件下,結(jié)果可能是每秒從傳統(tǒng)幀移動數(shù)以千計的頁至高幀(在超出以前的架構(gòu)限制的尋址范圍中的中央存儲裝置)??紤]到這種移動必須將比特和字節(jié)從一個物理存儲位置拷貝到另一物理存儲位置的事實,就不會奇怪會引起高CPU消耗。因此,非常期望提供一種使用動態(tài)分配的物理存儲器和用于管理該存儲器的轉(zhuǎn)換表(TT)的計算機系統(tǒng),以及一種用于在無需使用處理器的條件下執(zhí)行這些頁操作的機制。還期望成功地管理對中央存儲裝置設(shè)置的不相稱的"約束",使用于執(zhí)行功能的機器"時鐘周期"的數(shù)目減到最小和使CPU消耗減到最小,以及還期望提出一種具有虛擬地從計算環(huán)境中移除物理存儲裝置的能力的系統(tǒng)。
發(fā)明內(nèi)容本發(fā)明的各實施例包括一種用于在計算機系統(tǒng)中的存儲器地址之間移動數(shù)據(jù)的方法和計算機程序產(chǎn)品,其中存儲器地址所引用的數(shù)據(jù)被存儲在物理存儲器中。該方法包括提供一種轉(zhuǎn)換機制用于根據(jù)指定映射將連續(xù)的存儲器地址中的各頁映射到物理存儲器中的相應(yīng)位置,其中存儲器地址中的第一頁被映射到物理存儲器中的第一位置而存儲器地址中的第二頁被映射到物理存儲器中的第二位置;以及將該轉(zhuǎn)換機制的指定映射改變成一種新映射,其中存儲器地址的第二頁被映射到物理存儲器中的第一位置,由此高效地將存儲在第一位置處的數(shù)據(jù)從存儲器地址中的第一頁移動到存儲器地址中的第二頁,而無需在物理存儲器中的各地址之間移動數(shù)據(jù)。本發(fā)明的另一實施例是一種用于執(zhí)行數(shù)據(jù)頁操作的計算系統(tǒng),該計算系統(tǒng)包括物理存儲器,其中存儲了存儲器地址所引用的數(shù)據(jù);處理設(shè)備,用于生成與供進行讀取和寫入數(shù)據(jù)的物理存儲器的存儲器位置相關(guān)聯(lián)的一個或多個實際地址;轉(zhuǎn)換機制,用于根據(jù)指定映射將連續(xù)存儲器地址中的各頁映射到物理存儲器中的相應(yīng)位置,其中存儲器地址中的第一頁被映射到物理存儲器中的第一位置而存儲器地址中的第二頁被映射到物理存儲器中的第二位置;該轉(zhuǎn)換機制將該指定映射改變成新映射,其中存儲器地址中的第二頁被映射到物理存儲器中的第一位置,由此高效地將存儲在第一位置處的數(shù)據(jù)從存儲器地址中的第一頁移動到存儲器地址中的第二頁而無需在物理存儲器中的位置之間移動數(shù)據(jù)。對照以下描述、所附權(quán)利要求和附圖將更好地理解本發(fā)明的各實施例中的裝置和方法的其它特征、方面和優(yōu)點,其中圖l描繪了許多計算系統(tǒng)在使用的當前工作機制,其需要將比特和字節(jié)從一個物理存儲位置移動到另一個物理存儲位置。圖2說明了根據(jù)本發(fā)明的實施例的一種機制,該機制用于在實際幀層面上將實際地址從一個物理片位置重新分配到另一物理片位置,因為這種結(jié)構(gòu)可能先于RRF指令的執(zhí)行出現(xiàn)。圖3說明根據(jù)本發(fā)明的實施例的一種機制,該機制用于在RRF執(zhí)行和清理之后在實際幀層面上將實際地址從一個物理片位置重新分配到另一物理片位置。圖4說明根據(jù)本發(fā)明的實施例的一種機制,該機制用于在RRF執(zhí)行和清理之后在實際幀層面上將實際地址從一個物理片位置重新分配到另一物理片位置,其支持重新配置存儲裝置。圖5示出從虛擬地址到實際地址并最終到物理地址的常規(guī)轉(zhuǎn)換。圖6示出從虛擬地址到實際地址的常規(guī)轉(zhuǎn)換。圖7示出從實際地址到物理地址的常規(guī)轉(zhuǎn)換。圖8示出根據(jù)本發(fā)明的第一實施例的從實際地址到物理地址的轉(zhuǎn)換。圖9示出根據(jù)本發(fā)明的第二實施例的從實際地址到物理地址的轉(zhuǎn)換。具體實施方式本申請涉及數(shù)據(jù)處理系統(tǒng),并且特別涉及動態(tài)分配主存儲器以供操作系統(tǒng)和/或應(yīng)用軟件使用的數(shù)據(jù)處理系統(tǒng)。本發(fā)明的各實施例涉及一種轉(zhuǎn)換機制,其包括與動態(tài)分配主存儲器相關(guān)聯(lián)的轉(zhuǎn)換表(TT)。更為具體地,本發(fā)明的實施例具有第二TT用于將邏輯計算機地址從第一物理地址斷開并且將該邏輯計算機地址重新連接到第二物理地址以-使實現(xiàn)在沒有實際發(fā)生任何數(shù)據(jù)移動時看起來有數(shù)據(jù)移動。本發(fā)明的實施例提供一種使用動態(tài)分配的物理存儲器以及用于管理該存儲器的轉(zhuǎn)換表(TT)的計算機系統(tǒng),一種用于在無需處理器的干預(yù)的情況下執(zhí)行頁操作的機制。本發(fā)明的實施例將兩個實際地址從它們的物理片位置斷開并且將每個斷開的物理地址指向另一片位置。此外,本發(fā)明的實施例維護供所有處理器使用的單份數(shù)據(jù)拷貝。這是通過在沒有實際發(fā)生任何數(shù)據(jù)移動時看起來有數(shù)據(jù)移動來實現(xiàn)的。為了理解本發(fā)明的實施例的功能,下面給出了對處理器資源/系統(tǒng)管理器(PR/SM)和邏輯分區(qū)(LPAR)的介紹。物理服務(wù)器可被分區(qū)成多個邏輯服務(wù)器。通稱為邏輯分區(qū)(LPAR)的這種特征允許多至十五個邏輯服務(wù)器被配置在一個物理服務(wù)器內(nèi)。諸如IBM系統(tǒng)/390(S/390)處理器及其后續(xù)產(chǎn)品zSeries和系統(tǒng)z9處理器之類的處理器具有稱為處理器資源/系統(tǒng)管理器(PR/SM)的硬件分區(qū)能力。每個邏輯分區(qū)可以與所有其它邏輯分區(qū)隔離開。每個邏輯分區(qū)運行它自己的z/OS或其它操作系統(tǒng)以及它自己的工作量。每個邏輯分區(qū)對于其上運行的軟件而言看起來是與下層物理處理器具有相同指令集架構(gòu)(ISA)的一個或多個邏輯處理器。盡管本發(fā)明不受限于任何特定的ISA,但是在以下的描述中將假設(shè)每個這樣的邏輯處理器根據(jù)例如在"z/ArchitectureprinciplesofOperation,SA22-7832畫04(2005年9月)中所限定的z/Architecture(z/架構(gòu))來執(zhí)行(除了下面所描述的新指令以外)。如在該出版物中所描述的那樣,每個結(jié)構(gòu)化的(architected)中央處理單元(CPU)除別的設(shè)施之外包含16個通用寄存器,其可被用于指明操作數(shù),將在下文對其進一步描述。處理器資源/系統(tǒng)管理器(PR/SM)硬件電路和微碼被構(gòu)建進IBM系統(tǒng)/390和后續(xù)的大型機中,并且支持邏輯分區(qū)(LPAR)。LPAR是大型機的存儲器和其它資源的邏輯分段,其允許它運行它自己的那份操作系統(tǒng)拷貝和相關(guān)聯(lián)的應(yīng)用。LPAR是由特殊的硬件電路和微碼實現(xiàn)的,并且允許多個系統(tǒng)鏡像在一個機器中運行。這可以是相同的操作系統(tǒng)或不同的操作系統(tǒng)的多個實例。LPAR允許多個系統(tǒng)鏡像運行在單個處理器組上。每個這樣的鏡像具有包括CPU(專用的或共享的)、中央存儲裝置、擴展的存儲裝置和信道的全部部件。PR/SM是允許將物理服務(wù)器分區(qū)成若干邏輯服務(wù)器(LPAR)的硬件(微碼)設(shè)施。PR/SM將各個操作系統(tǒng)實例映射/調(diào)度到單獨的CPU或時間片,于是映射/調(diào)度到單個CPU。在具有PR/SM能力的計算^L中,每個LPAR具有它自己的一套實際地址,其范圍是從地址零到分配給該特定LPAR的物理片存儲裝置的數(shù)量所允許的最大實際地址。同樣,具有LPAR能力的^/L器具有動態(tài)地將中央存儲裝置從一個LPAR重新配置到同一單個物理計算機的另一個LPAR的能力。這種重新配置提取在一個LPAR上被分配了一個實際地址的物理片位置,并且將該物理片位置分配給另一LPAR,可能在接收LPAR上給予它完全不同的實際地址。這種能力在存儲增量層面上工作并且依賴于機器內(nèi)的第二轉(zhuǎn)換機制的存在,該第二轉(zhuǎn)換機制根據(jù)第二轉(zhuǎn)換表所限定的映射將呈現(xiàn)給操作系統(tǒng)的實際地址或絕對地址轉(zhuǎn)換成物理片位置。從實際地址到片位置的轉(zhuǎn)換是通過該第二轉(zhuǎn)換機制來實現(xiàn)的,其在存儲增量層面上工作。例如,始于存儲增量邊界處的實際地址范圍被轉(zhuǎn)換成在該片的存儲增量邊界處的某個片位置。通過使用這種轉(zhuǎn)換機制,機器能夠提取單個物理片存儲增量范圍并將不同范圍的實際存儲地址重新分配纟會該物理增量。當應(yīng)用試圖訪問存儲位置時,機器通過動態(tài)地址轉(zhuǎn)換(DAT)將虛擬存儲位置轉(zhuǎn)換成實際存儲位置。在知道實際存儲地址時,機器于是通過查閱用于確定物理片位置的增量轉(zhuǎn)換結(jié)構(gòu)來操縱實際地址以獲得特定的實際地址所關(guān)聯(lián)的存儲增量號,并且接著使用實際存儲地址中的剩余比特作為距離該物理片的存儲增量邊界的位移以定位準確的片位置,其中將在該片位置處執(zhí)行所請求的操作。例如,在31比特尋址模式中,實際存儲地址可能包括比特1-31,其中比特1是最高地址位而比特31是最低地址位。如果假設(shè)增量尺寸為1兆字節(jié)(MB)(22()個字節(jié))而頁尺寸為4k字節(jié)(KB)(212個字節(jié)),則在這些地址比特中,比特1-11可標識特定的1MB增量,比特12-19可標識在該1MB增量內(nèi)的特定的4KB頁,而比特20-31可標識4KB頁內(nèi)的特定位置。將數(shù)據(jù)的全部實際幀從一個實際幀移動到另一個實際幀需要高成一個物理片位置重新分配到另一個物理片位置來解決,本發(fā)明的實施例描述了附加的矢量表,其位于下面參考圖l-4所描述的增量(硬件/微碼)轉(zhuǎn)換機制下。在間接尋址的存儲器系統(tǒng)中,可通過直接操縱轉(zhuǎn)換表(TT)中的項來執(zhí)行某些公共操作,而無需實際訪問數(shù)據(jù)字節(jié)。這些類型的操作通常是對存儲器的頁執(zhí)行。頁是由操作系統(tǒng)中的虛擬存儲器管理器用來將實際存儲器資源分配給系統(tǒng)中的進程的分配單位。虛擬存儲器頁通常是幾千字節(jié)的固定尺寸,其中4096個字節(jié)是最常使用的頁尺寸。應(yīng)該理解,被操作的存儲器頁可具有任意尺寸,并且本發(fā)明的實施例不限于4096個字節(jié)的頁。圖1描繪了在本發(fā)明的實施例之前的一種用于在實際幀層面上將數(shù)據(jù)從一個物理片位置移動到另一個物理片位置的機制。圖1被用作若干頁操作的例子的起始點。圖1描繪了源頁2和目標頁4。頁幀表項(PFTE)(A、B、C、D)中的每個項都是系統(tǒng)上的單個實際地址的軟件表示。每個PFTE具有與系統(tǒng)/LPAR中的實際存儲裝置中的幀8之一的——對應(yīng)12。接下來,實際存儲裝置中的每個幀8具有到分配給系統(tǒng)/LPAR的物理片存儲裝置10中的同等尺寸頁的——對應(yīng)。實際幀重新分配的流程如下。組件8表示實際幀。當操作系統(tǒng)確定它需要將數(shù)據(jù)從一個實際幀E移動到另一個實際幀時,它已經(jīng)具有一種用于定位它可以向其中引導該數(shù)據(jù)轉(zhuǎn)移的第二未使用的實際幀F(xiàn)的機制。一旦兩個幀E、F都被獲得,則通過使用本領(lǐng)域的普通技術(shù)人員所公知的許多計算指令中的任何一種將比特和字節(jié)從源物理片位置轉(zhuǎn)移到目標物理片位置。一旦該指令被發(fā)出,則微碼/硬件就提取實際地址,操縱該實際地址以獲得與該輸入的實際地址相對應(yīng)的實際地址增量號,接著定位進入該物理增量的正確位移。接著,通過將數(shù)據(jù)G轉(zhuǎn)移到先前存儲數(shù)據(jù)H的存儲位置,發(fā)生了數(shù)據(jù)的物理移動。如可以在圖1中所看見的那樣,物理的數(shù)據(jù)移動僅在如由組件IO所示的一個物理片(單個增量)中發(fā)生。為了簡化起見,圖1示出單個物理存儲增量。在實際中,可能還存在任何數(shù)目的物理增量被分配給系統(tǒng),并且可以從任何增量中的任何位置到任何其它增量中的任何位置發(fā)生物理數(shù)據(jù)移動,也可在各增量內(nèi)發(fā)生轉(zhuǎn)移。換言之,物理移動是如圖1中所說明的將數(shù)據(jù)G移入先前存儲數(shù)據(jù)H的存儲位置。圖5-7以硬件轉(zhuǎn)換結(jié)構(gòu)示出了圖1中的系統(tǒng)。因此,圖5示出系統(tǒng)500,其中程序所理解的虛擬地址502通過第一轉(zhuǎn)換機制504變換成接著被第二轉(zhuǎn)換機制508轉(zhuǎn)換成用于表示數(shù)據(jù)在物理存儲裝置中的真實位置的物理地址510。圖6更加詳細地示出了圖5中的虛擬到實際地址轉(zhuǎn)換步驟。虛擬地址506可^皮看成是由虛擬頁部分602和偏移量部分604來構(gòu)成。虛擬頁部分602(也即高階地址部分)指示數(shù)據(jù)位于虛擬地址空間中的特定的頁(也即4096或212個字節(jié)的連續(xù)集合)。偏移量部分604(也即包括低12位(LSB)的低階地址部分),指示該數(shù)據(jù)距離該頁的開始處的字節(jié)偏移。如圖6中還示出的那樣,第一轉(zhuǎn)換機制504包括第一轉(zhuǎn)換表606,第一轉(zhuǎn)換表606包含多個頁幀表項(PFTE)608。每個這樣的項608指示對應(yīng)于虛擬頁的對應(yīng)的實際頁(或?qū)嶋H幀),其中虛擬頁部分602用作進入表格606的索引。以這種方式獲取的表項608與原始字節(jié)偏移604進行連接以產(chǎn)生包括頁部分610和偏移量部分612的實際地址506。因此,虛擬到實際地址轉(zhuǎn)換的粒度是頁,其包括4096(或212)個字節(jié)。實際上,在z/Architecture中使用若干連續(xù)的查找來執(zhí)行這種虛擬到實際地址轉(zhuǎn)換,但是它們可以邏輯地由單個表606來表示?,F(xiàn)在參考圖7,使用類似的表格查找過程從實際地址508獲得物理地址510。出于這種目的,實際地址506可被認為包括高階增量部分702和低階位移部分704。增量部分702指示數(shù)據(jù)被存儲在(在存儲位置712處)的特定的物理片增量710。增量部分702用作進入第二轉(zhuǎn)換表706(實現(xiàn)第二轉(zhuǎn)換機制506)的索引,第二轉(zhuǎn)換表706用于查找片增量710的基地址708。位移部分704表示存儲位置712距離片增量710的基地址708的位移(以字節(jié)為單位)。在實際地址506的增量部分702與位移部分704之間的具體劃分線依賴于片增量710的尺寸。例如,如果片增量710具有1兆字節(jié)(也即,22(}個字節(jié))的尺寸,則位移部分704將由實際地址506的20個LSB構(gòu)成,而增量部分702將由該實際地址的剩余比特構(gòu)成。對于不同尺寸的片增量710,增量部分508和位移部分510的尺寸將相應(yīng)地發(fā)生變化。注意,與圖6中的虛擬到實際地址轉(zhuǎn)換不同,這種常^L的實際到物理地址轉(zhuǎn)換的粒度基本上是片增量710的尺寸,在這種情況下是1兆字節(jié)。因此,實際頁在這種常規(guī)配置中不能被;f皮此相對地任意地重新定位,除非它們位于不同的片增量710上。本發(fā)明通過執(zhí)行具有圖6中的虛擬到實際地址轉(zhuǎn)換的頁粒度的實際到物理地址轉(zhuǎn)換,克服了常規(guī)配置的這種局限。因此,可以將物理存儲器頁任意地從一個實際頁重新分配給另一個實際頁,實現(xiàn)從一個實際地址到另一個實際地址的數(shù)據(jù)移動而無需物理存儲器中的任何相應(yīng)的移動。改變實際到物理的轉(zhuǎn)換表以反映地址的重新分配,而不是在物理存儲器中實際移動數(shù)據(jù),下面將對其進一步解釋。圖8說明根據(jù)本發(fā)明的用于執(zhí)行實際到物理地址轉(zhuǎn)換的地址轉(zhuǎn)換機制508-1。出于這種目的,實際地址506凈皮分解成高階頁部分802和^f氐階偏移量部分804,其與圖6中示出的部分610和612相同。偏移量部分804包含實際地址506的12個LSB,而頁部分802包含實際地址的剩余比特。頁部分804充當進入包含項808的第二轉(zhuǎn)換表806的索引。以與第一轉(zhuǎn)換表606(圖6)中的PFTE608相類似的方式,第二轉(zhuǎn)換表806中的每個項808指示物理地址510的增量部分810和頁部分812,該物理地址510還包含偏移量部分814。增量部分810指向其上存儲數(shù)據(jù)(在存儲位置712處)的特定的物理增量710(也即包含物理增量710的基地址)。頁部分812指示數(shù)據(jù)被存儲在的增量710內(nèi)的特定的4096字節(jié)的頁(未被單獨示出),而偏移量部分814(其與實際地址506中的偏移量部分804相同)表示數(shù)據(jù)在該特定的頁內(nèi)的字節(jié)偏移。頁部分812與偏移量部分814進行連接以構(gòu)成進入增量710以訪問存儲位置712的索引。注意,與圖7中所示出的常規(guī)配置相反,本發(fā)明的這種配置中連續(xù)的實際頁可以被任意地映射到不同的物理頁,甚至是在不同的片增量710上的不同的物理頁。圖9示出根據(jù)本發(fā)明的用于執(zhí)行實際到物理地址轉(zhuǎn)換的替代性的地址轉(zhuǎn)換機制508-2。從整體實際到物理地址轉(zhuǎn)換的觀點來看,轉(zhuǎn)換機制508-2以與圖8中所示出的轉(zhuǎn)換機制508-1相類似的方式操作。然而,轉(zhuǎn)換機制508-2與轉(zhuǎn)換機制508-1的不同在于其使用兩個連續(xù)的轉(zhuǎn)換表來執(zhí)行查找。出于這種目的,實際地址506的頁部分804(圖8)被進一步分解成增量部分902和頁部分904。增量部分902充當進入包含項908的增量表906的索引,每個項908均指向一個頁表910(也即存儲其基地址)。每個頁表910接著包含項912,項912與頁表806(圖8)中的項808相類似且用于以類似的方式生成物理地址510。除了該兩個表格的使用以外,轉(zhuǎn)換機制508-2的操作與圖8中所示出的轉(zhuǎn)換機制508-1的相同。圖2說明根據(jù)本發(fā)明的實施例的一種用于在實際幀層面上將實際地址從一個物理片位置重新分配到另一個物理片位置的方案,其使用通過諸如轉(zhuǎn)換機制508-1(圖8)或508-2(圖9)之類的轉(zhuǎn)換機制實現(xiàn)的轉(zhuǎn)換矢量表(TVT)。圖3示出在下面所討論的重新分配實際幀(REASSIGNREALFRAME(RRF))執(zhí)行和清理之后的狀態(tài)。RRF指令的操作數(shù)是兩個通用寄存器rl和r2的內(nèi)容,其中rl是第一操作數(shù)位置而r2是第二操作數(shù)位置。盡管本發(fā)明不限于任何特定的指令格式,但是一種用于RRF指令的可能格式(z/Architecture中的所謂的RR格式)具有8比特操作碼,緊隨其后的是4比特的寄存器說明rl和r2,如下所示<table>tableseeoriginaldocumentpage15</column></row><table>在第一通用寄存器(rl)中所包含的是操作系統(tǒng)希望數(shù)據(jù)出現(xiàn)到其中的實際地址(目標)。第二通用寄存器(r2)包含在發(fā)出指令前數(shù)據(jù)位于的實際地址(源)。在RRF執(zhí)行之前,實際地址3000是可分配給系統(tǒng)中的任何虛擬頁的空閑地址。在圖2中這是通過將實際地址3000的對應(yīng)PFTE示為"可用"來指示的(意思是此刻沒有任何PFTE指向?qū)嶋H地址3000)。此刻,該實際幀通過將要描述的轉(zhuǎn)換矢量表(TVT)轉(zhuǎn)換到物理位置lxxO。在該(TVT)項"lxxO"中,最左邊的數(shù)字T指明該實際幀正被映射到的物理增量,而最右邊的數(shù)字"O"(與中間的數(shù)字"xx"—起)指示該幀的開始處距離該增量的開始處的位移。在RRF執(zhí)行之前的某個點處,虛擬地址被分配給(也即,它的PFTE被更新以指向)目標實際頁。圖2說明頁幀表項(PFTE)20,其中每個頁幀表項對應(yīng)數(shù)據(jù)的一個頁。圖2中與圖1中的組件相類似的的各組件將不描述。項20的狀態(tài)是可用(或空)、9000、2000和C000,這些值中的每一個在相應(yīng)的虛擬地址存在的情況下是相應(yīng)的虛擬地址,并且在沒有任何虛擬地址存在的情況下是"可用"。在具有地址(1000,2000,3000,4000)的實際幀22與PFTE項20之間存在——對應(yīng)。雖然出于解釋的目的,在圖中將虛擬地址示出為被包含在PFTE20中,但對于本領(lǐng)域的普通技術(shù)人員而言(以及從圖6中)以下是顯而易見的虛擬地址是進入包含PFTE的轉(zhuǎn)換表的索引并且每個PFTE包含指向相應(yīng)的實際頁的指針;因此,虛擬頁3000索引包含指向?qū)嶋H頁1000的指針的PFTE,虛擬頁9000索引包含指向?qū)嶋H頁2000的指針的PFTE,等等。此外,在實際地址(1000,2000,3000,4000)與包含指針(3xxl,lxx2,lxxO和2003)的轉(zhuǎn)換表24中的各項之間存在——對應(yīng)。組件28表示分配給系統(tǒng)的第一物理存儲增量,組件30表示分配給系統(tǒng)的第二物理存儲增量,而組件32表示分配給系統(tǒng)的第三物理存儲增量圖2中的機制是一種用于生成與供進行讀取和寫入數(shù)據(jù)的實際存儲器系統(tǒng)中的存儲器位置相關(guān)聯(lián)的一個或多個實際地址的處理機制。實際地址(IOOO,2000,3000,4000):被描繪為組件22,其TVT24映射到存儲增量28-32中的特定的存儲器位置。實際地址22和PFTE20概念上是實際存儲器系統(tǒng)中的一部分。PFTE20、實際存儲器地址22和轉(zhuǎn)換矢量表TVT24中的項全部都對應(yīng)于存儲數(shù)據(jù)的實際存儲器。這些組件(20,22,24中的項)中的每個可以被看作表示作為物理存儲器中的連續(xù)字節(jié)的數(shù)據(jù)頁。圖2說明一種新的實際地址轉(zhuǎn)換矢量表(TVT)24,該表中的項使用實際地址中跟在最小的對應(yīng)增量邊界之后且排除了進入幀的索引(對應(yīng)于圖9中所示出的偏移量部分804和當使用4096字節(jié)的頁時當前最右邊的12比特)的那部分(對應(yīng)于圖9中所示出的頁部分904)作索引。在計算該索引時所使用的在實際地址內(nèi)的準確起始比特偏移量是可變的,因為由于增量尺寸基于已安裝的物理中央存儲裝置的量的緣故在任何給定的機器中存儲增量的尺寸是可變的。轉(zhuǎn)換矢量表是由項構(gòu)成的表,其中如上所述項以實際地址中跟在最并且其中第二轉(zhuǎn)換表的所述項中的每個項都至少具有片增量位置和至幀邊界的位移。同樣,此表格中的項的數(shù)目是可變的,因為它基于存儲增量中所包含的實際幀的數(shù)目。該表中的每個項具有足夠的尺寸以包含片增量位置和至幀邊界的位移(如圖9中所示出)。在機器中對每個實際存儲增量分配一個這樣的表格。假設(shè)現(xiàn)在在實際地址(1000,2000,3000和4000)與物理增量內(nèi)的增量頁28、30和32中的給定片位置之間存在著——對應(yīng),則TVT——對^o實際幀的重新分配的流程如下。當操作系統(tǒng)確定它需要將數(shù)據(jù)從一個實際幀移動到另一個實際幀時,它已經(jīng)在某處具有用于定位它可以向其中引導數(shù)據(jù)轉(zhuǎn)移的第二未使用的實際幀(可用的)的機制。一旦兩個幀都被獲得,則操作系統(tǒng)的存儲管理器將發(fā)出被叫做重新分配實際幀(RRF)的新指令。RRF指令的輸入操作數(shù)包括通用寄存器號。在第一通用寄存器(rl)內(nèi)所包含的是操作系統(tǒng)希望數(shù)據(jù)出現(xiàn)到其中的實際地址(目標或?qū)嶋H地址3000)。第二通用寄存器(r2)包含在發(fā)出指令之前數(shù)據(jù)位于的實際地址(源或?qū)嶋H地址1000)。一旦指令被發(fā)出,微碼/硬件提取r2中的實際地址并且操縱實際地址(通過如圖9中所示出的那樣分解它)以獲得實際地址增量號。接著,它轉(zhuǎn)換實際地址增量號以獲得TVT開始位置。通過使用該實際地址,項。對應(yīng)于源實際地址(r2)的TVT將微碼/硬件引導向存儲增量3(32)的索引1,該存儲增量包含數(shù)據(jù)GHI。當源TVT項被定位時,微碼/硬件提取rl中的目標實際地址并且操縱該實際地址以獲得實際地址增量號。接著,它轉(zhuǎn)換實際地址增量號以獲得TVT開始位置。通過使用該實際地址,它操縱該地址以獲得進入TVT的索引以獲得對應(yīng)于數(shù)據(jù)在其中結(jié)束的目標實際地址(rl)的項。圖3中與圖1和圖2中的組件相類似的組件將不被描述。圖3說明理片位置重新分配到另一個物理片位置的機制。該圖表示了在執(zhí)行RRF指令之后距離初始圖(圖2)的狀態(tài)改變。參考圖3,此刻,針對源2和目標4二者的TVT24中的項已經(jīng)裙:定位。接著,簡單地交換每個TVT項中的當前內(nèi)容。例如,在執(zhí)行RRF指令之前(圖2),對應(yīng)于實際地址3000(22)的TVT24項(lxx0)指向物理增量l(28)中的頁0的位置,而對應(yīng)于實際地址1000(22)的TVT24項(3xxl)指向物理增量3(32)中的頁1的位置并且展示數(shù)據(jù)GHI。緊隨著RRF指令的執(zhí)行(圖3),對應(yīng)于實際地址3000(22)的TVT(24)項的內(nèi)容已經(jīng)與對應(yīng)于實際地址1000(22)的TVT(24)項的內(nèi)容進行交換,因此展示數(shù)據(jù)GHI給實際地址3000(22)。對應(yīng)于實際地址1000(22)的TVT(24)項被用指針lxx0所填充,其導致實際地址1000現(xiàn)在轉(zhuǎn)換到存儲增量1(28)的頁0的索引。于是,使表示實際地址1000(22)的PFTE可用。所有其它TVT項在指令執(zhí)行期間都保持未改變。由此,用于目標實際地址的表項指向源數(shù)據(jù)位于的物理片位置。同樣,用于源實際地址的表項指向目標實際地址被用來指向的物理片位置。址從一個物理片位置重新分配到另一物理片位置的機制,其支持在RRF執(zhí)行和清理之后對存儲裝置的重新配置。在正常環(huán)境下,在已經(jīng)執(zhí)行了RRF指令之后,操作系統(tǒng)將簡單地釋放舊源實際地址1000并且它將可用于重新分配給某個另外的虛擬頁。最后,在實際地址與物理片位置之間的關(guān)系變得高度隨機化。在支持動態(tài)的中央存儲裝置重新配置的操作系統(tǒng)環(huán)境中,假定中央存儲裝置是由對應(yīng)于順序的物理增量存儲裝置的實際地址范圍重新配置的這一事實,則這種隨機化將是有問題的。由此,對于中央存儲裝置重新配置請求,搮:作系統(tǒng)必須能夠知道哪個實際幀對應(yīng)于哪個另外的實際幀的物理位置。通過知道這種關(guān)系,操作系統(tǒng)可以重新分配兩個位置的實際幀使得實際存儲范圍可以恢復到由它的原始物理增量所表示的它的原始狀態(tài)。參考圖2,因為TVT24保持在實際地址(1000,2000,3000,4000)與物理片位置(例如ABC、DEF、GHI)之間的——對應(yīng),所以可以通過知道實際地址或者通過知道物理片位置來定位單個TVT項。在上面參考圖2和圖3的RRF執(zhí)行圖表和描述中,僅用TVT項現(xiàn)在指向的物理位置來更新該TVT項。通過擴展表項以包括第二字段26,它還可能在項中包括哪個實際地址/增量的TVT項指向(26)該TVT項的對應(yīng)物理片位置。因為RRF指令每次執(zhí)行總是交換兩個位置,所以該信息在執(zhí)行時是已知的并且可被保存在TVT字段26中。TVT字段26是字段24的逆。第一字段24映射實際地址以得到物理片位置。TVT第二字段26將物理片位置(增量和索引)映射到指向該物理片位置的第一字段24中的項。換言之,在圖4中第一字段24由上至下轉(zhuǎn)換。在圖4中,第二字段26由下至上轉(zhuǎn)換。TVT第二字段26可通過圖4中所示出的索引和增量格式來引用TVT第一字段。為了看清楚這是如何工作的,考慮圖3中所示出的實際幀到物理片位置的最終分配。出于這種目的,對應(yīng)于TVT24項的實際幀將分別纟皮標識成幀lxx0、lxxl、1xx2和1xx3;例如,實際幀lxx0的地址可^皮想像成具有增量部分1和頁部分xx0。如該圖中所示出,TVT24項連續(xù)地指向片位置lxx0、lxx2、3xxl和2003,其是由該對應(yīng)表格來指示的實際幀片位置<formula>formulaseeoriginaldocumentpage19</formula>如果上表中的各列被交換并且通過現(xiàn)在的第一列來對該表進行分類,則獲得以下表格,其包括相同的信息但是以片位置作索引而不是實際幀。片位置實際幀<formula>formulaseeoriginaldocumentpage19</formula>如在上面的表格中的第一個表中所示的那樣,在RRF指令執(zhí)行之后,實際幀lxxO被分配給片位置lxx0而實際幀lxxl被分配給片位置lxx2。同樣,如在上面的表格中的第二個表中所示出的那樣,在RRF指令執(zhí)行之后,片位置lxxO被分配給實際幀lxx0而片位置lxx2被分配給片位置lxxl。如圖4中所示出的那樣,這種對應(yīng)是由用于片位置lxx0的第二字段項lxx0(所示出的四個項中的第一個)和用于片位置lxx2的第二字段項lxxl(所示出的四個項中的第三個)來指示的。通過類似的方式,被分配給片位置2003和3xxl的實際幀是由用于增量30和32的在TVT中的對應(yīng)的第二字段項(未被示出)來指示的。最后,從用于增量32的在TVT中的對應(yīng)的第一字段項(未被示出)獲得用于片位置lxxl和lxx3的TVT第二字段項3xx3和3xx0(在圖4中示出的TVT第二字段項中的第二個和第四個)。能夠雙向轉(zhuǎn)換提供了這樣的重新配置,其能夠撤銷在物理存儲器增量被離線地取走的情況下所有RRF指令執(zhí)行已經(jīng)做出的改變。在重新配置時,以下是簡單的事情通過各種當前服務(wù)處理器接口詢問服務(wù)處理器以獲得指向物理片位置的實際地址,該物理片地址對應(yīng)于被離線地取走的實際地址。獲得指向?qū)嶋H地址的對應(yīng)物理片位置的實際地址的另一途徑將是RRF指令自身的各種變體,諸如在通用寄存器O中具有一比特,其用信號通知指令執(zhí)行這是對返回實際地址的請求,該實際地址的TVT項指向所提供的實際地址的對應(yīng)物理片位置。當具有已返回的實際地址時,操作系統(tǒng)的重新配置處理器可以發(fā)出RRF以交換兩個實際地址,將離線地定位目標的實際地址的TVT項返回指向它的原始物理片位置。由此,本發(fā)明的實施例將兩個實際地址從它們的物理片位置斷開并且將每個已經(jīng)斷開的物理地址指向其它片位置。此外,本發(fā)明的實施例維護供所有處理器使用的單份數(shù)據(jù)拷貝。這是通過在沒有實際發(fā)生任何數(shù)據(jù)移動時看起來是數(shù)據(jù)移動來實現(xiàn)的。另外,這些實施例使得具有從計算環(huán)境中移除物理存儲裝置的能力。因此,根據(jù)本發(fā)明的實施例,操作中所涉及的頁的實際數(shù)據(jù)從來沒有被處理器訪問過,并且由此它也從來沒有被要求位于存儲器高速緩存體系中,因此消除了通常與這些頁操作相關(guān)聯(lián)的高速緩存損壞。此外,對轉(zhuǎn)換表的操縱涉及讀取和寫入少許字節(jié)以執(zhí)行該操作,其與在操縱頁時讀取和寫入成百上千的字節(jié)相反。本發(fā)明的實施例的這種方法和裝置使得顯著節(jié)省了執(zhí)行實際操作的時間并且還表現(xiàn)對處理器的其它活動的更小的性能影響。優(yōu)選地,可在用于服務(wù)器設(shè)備、PC等等的壓縮存儲器管理系統(tǒng)的設(shè)計中實現(xiàn)本發(fā)明的實施例的方法和裝置,實現(xiàn)壓縮和解壓縮算法。如上所述,可以用計算機實現(xiàn)的處理和用于實現(xiàn)那些處理的裝置的形式來具體實現(xiàn)本發(fā)明的實施例。還可以用包含具體實現(xiàn)在諸如系統(tǒng)存儲器、CD-ROM、硬盤驅(qū)動器或其它計算機可讀存儲裝置介質(zhì)之類的有形媒質(zhì)中的指令的計算機程序代碼的形式來具體實現(xiàn)本發(fā)明的各實施例,其中當該計算機程序代碼被裝載進計算機并被該計算機執(zhí)行時,該計算機就是用于實現(xiàn)本發(fā)明的裝置。本發(fā)明還可以用計算機程序代碼的形式來具體實現(xiàn),例如,無論該計算機程序代碼是否被存儲在存儲介質(zhì)中,是否被裝載進計算機和/或被計算機執(zhí)行,或者是否像通過電線或電纜、穿過光纖或者經(jīng)由電磁輻射這樣通過某些傳輸介質(zhì)進行傳輸,其中當該計算機程序代碼被裝載進計算機并被該計算機執(zhí)行時,該計算機就成了用于實現(xiàn)本發(fā)明的裝置。當在通用微處理器上實現(xiàn)時,計算機程序代碼段配置微處理器以創(chuàng)建特定的邏輯事件。盡管已經(jīng)關(guān)于本發(fā)明的說明性的和預(yù)形成的實施例具體地示出和描述了本發(fā)明,但是本領(lǐng)域的普通技術(shù)人員將理解,在不偏離本發(fā)明的精神和范圍的條件下可做出在形式和細節(jié)中的上述和其它改變,本發(fā)明將僅受所附權(quán)利要求書的范圍的限制。權(quán)利要求1.一種用于在計算機系統(tǒng)中的各存儲器地址之間移動數(shù)據(jù)的方法,其中所述存儲器地址所引用的數(shù)據(jù)存儲在物理存儲器中,所述方法包括提供一種轉(zhuǎn)換機制用于根據(jù)指定映射將連續(xù)的存儲器地址中的各頁映射到所述物理存儲器中的相應(yīng)位置,其中存儲器地址中的第一頁被映射到所述物理存儲器中的第一位置而存儲器地址中的第二頁被映射到所述物理存儲器中的第二位置;以及將所述轉(zhuǎn)換機制的所述指定映射改變成一種新映射,其中存儲器地址的所述第二頁被映射到所述物理存儲器中的所述第一位置,由此高效地將存儲在所述第一位置處的所述數(shù)據(jù)從存儲器地址中的所述第一頁移動到存儲器地址中的所述第二頁,而無需在所述物理存儲器中的各地址之間移動所述數(shù)據(jù)。2.根據(jù)權(quán)利要求1所述的方法,其中所述新映射將存儲器地址中的所述第一頁映射到所述物理存儲器中的所述第二位置。3.根據(jù)權(quán)利要求1所述的方法,其中所述轉(zhuǎn)換機制包括包含多個項的表,所述多個項中的每個項以指向所述頁之一的存儲器地址引用作索引并且指明了所述頁被映射到的所述物理存儲器中的特定位置。4.根據(jù)權(quán)利要求3所述的方法,其中第一表項指明所述物理存儲器中的所述第一位置而第二表項指明所述物理存儲器中的所述第二位置,所述改變包括將所述第一表項拷貝進所述第二表項。5.根據(jù)權(quán)利要求4所述的方法,其中所述改變包括交換所述第一表項和第二表項。6.根據(jù)權(quán)利要求3所述的方法,其中所述表項中的每個表項都與另外的表項相關(guān)聯(lián),所述另外的表項以指向所述物理存儲器中的位置的引用作索引并且指明了被映射到所述位置的存儲器地址中的特定頁。7.根據(jù)權(quán)利要求3所述的方法,其中所述存儲器地址每個都包含標識增量的第一索引部分和標識所述增量內(nèi)的頁的第二索引部分,所述轉(zhuǎn)換機制包括多個頁表,其分別對應(yīng)于所述增量并且每個都包含多個項,每個所述表項以所述第二索引部分作索引并且指明了所述頁被映射到的所述物理存儲器中的特定增量和所述增量中的特定位置;以及增量表,其包含多個項,每個項以所述第一索引部分作索引并且指明了所述頁表中的特定頁表。8.根據(jù)權(quán)利要求1所述的方法,其中響應(yīng)于程序指令指明了存儲器地址中的所述第一頁和第二頁而執(zhí)行所述改變。9.根據(jù)權(quán)利要求1所述的方法,其中所述物理存儲器包括多個增量,每個增量都包含多個所述位置。10.根據(jù)權(quán)利要求1所述的方法,其中所述存儲器地址是從程序所提供的虛擬存儲器地址生成的實際存儲器地址。11.一種用于執(zhí)行數(shù)據(jù)頁操作的計算系統(tǒng),所述計算系統(tǒng)包括物理存儲器,其中存儲了存儲器地址所引用的數(shù)據(jù);處理設(shè)備,用于生成與供進行讀取和寫入數(shù)據(jù)的物理存儲器的存儲器位置相關(guān)聯(lián)的一個或多個實際地址;轉(zhuǎn)換機制,用于根據(jù)指定映射將連續(xù)存儲器地址中的各頁映射到所述物理存儲器中的相應(yīng)位置,其中存儲器地址中的第一頁被映射到所述物理存儲器中的第一位置而存儲器地址中的第二頁被映射到所述物理存儲器中的第二位置;所述轉(zhuǎn)換機制將所述指定映射改變成新映射,其中存儲器地址中的所述第二頁被映射到所述物理存儲器中的所述第一位置,由此高效地將存儲在所述第一位置處的所述數(shù)據(jù)從存儲器地址中的所述第一頁移動到存儲器地址中的所述第二頁而無需在所述物理存儲器中的位置之間移動所述數(shù)據(jù)。12.根據(jù)權(quán)利要求11所述的計算系統(tǒng),其中所述新映射將存儲器地址中的所述第一頁映射到所述物理存儲器中的所述第二位置。13.根據(jù)權(quán)利要求11所述的計算系統(tǒng),其中所述轉(zhuǎn)換機制包括包含多個項的表,所述多個項中的每個項以指向所述頁之一的存儲器地址引用作索引并且指明了所述頁被映射到的所述物理存儲器中的特定位置。14.根據(jù)權(quán)利要求13所述的計算系統(tǒng),其中第一表項指明所述物理存儲器中的所述第一位置而第二表項指明所述物理存儲器中的所述第二位置,所述改變包括將所述第一表項拷貝進所述第二表項。15.根據(jù)權(quán)利要求13所述的計算系統(tǒng),其中所述表項中的每個表項都與另外的表項相關(guān)聯(lián),所述另外的表項以指向所述物理存儲器中的位置的引用作索引并且指明了被映射到所述位置的存儲器地址中的特定頁。16.根據(jù)權(quán)利要求13所述的計算系統(tǒng),其中所述存儲器地址每個都包含標識增量的第一索引部分和標識所述增量內(nèi)的頁的第二索引部分,所述轉(zhuǎn)換機制包括多個頁表,其分別對應(yīng)于所述增量并且每個都包含多個項,每個所述表項以所述第二索引部分作索引并且指明了所述頁被映射到的所述物理存儲器中的特定增量和所述增量中的特定位置;以及增量表,其包含多個項,每個項以所述第一索引部分作索引并且指明了所述頁表中的特定頁表。17.根據(jù)權(quán)利要求11所述的計算系統(tǒng),其中響應(yīng)于程序指令指明了存儲器地址中的所述第一頁和第二頁而執(zhí)行所述改變。18.根據(jù)權(quán)利要求11所述的計算系統(tǒng),其中所述物理存儲器包括多個增量,每個增量都包含多個所述位置。19.根據(jù)權(quán)利要求11所述的計算系統(tǒng),其中所述存儲器地址是從程序所提供的虛擬存儲器地址生成的實際存儲器地址。全文摘要一種用于在計算機系統(tǒng)中的存儲器地址之間移動數(shù)據(jù)的方法,其中存儲器地址所引用的數(shù)據(jù)被存儲在物理存儲器中。該方法包括提供一種轉(zhuǎn)換機制用于根據(jù)指定映射將連續(xù)的存儲器地址中的各頁映射到物理存儲器中的相應(yīng)位置,其中存儲器地址中的第一頁被映射到物理存儲器中的第一位置而存儲器地址中的第二頁被映射到物理存儲器中的第二位置;以及將該轉(zhuǎn)換機制的指定映射改變成一種新映射,其中存儲器地址的第二頁被映射到物理存儲器中的第一位置,由此高效地將存儲在第一位置處的數(shù)據(jù)從存儲器地址中的第一頁移動到存儲器地址中的第二頁,而無需在物理存儲器中的各地址之間移動數(shù)據(jù)。文檔編號G06F12/10GK101216805SQ20081000252公開日2008年7月9日申請日期2008年1月7日優(yōu)先權(quán)日2007年1月7日發(fā)明者G·E·加里森申請人:國際商業(yè)機器公司