欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

使用替代頁池管理dma寫入頁錯誤的計算機實現(xiàn)方法和裝置的制作方法

文檔序號:6608342閱讀:302來源:國知局
專利名稱:使用替代頁池管理dma寫入頁錯誤的計算機實現(xiàn)方法和裝置的制作方法
技術(shù)領(lǐng)域
優(yōu)選的實施例一般地涉及數(shù)據(jù)處理系統(tǒng),并且更具體地說,涉及用于使用替代寫入緩沖器頁池來管理DMA寫入頁錯誤的計算機實現(xiàn)的方法、裝置和計算機程序產(chǎn)品。
背景技術(shù)
根據(jù)計算機系統(tǒng)的趨勢,可以在系統(tǒng)運行時重新配置系統(tǒng)而無需中斷數(shù)據(jù)處理。例如,對于在計算機上運行的多個操作系統(tǒng),當(dāng)?shù)谝粋€操作系統(tǒng)正在使用特定的存儲器塊時,可能需要重新分配該存儲器塊以供第二操作系統(tǒng)使用。在這種情況下,第一操作系統(tǒng)必須首先停止使用該物理存儲器塊,然后才可以重新分配存儲器。否則,例如,可能在物理存儲器塊中檢測到問題,在這種情況下,可能需要從操作中移除存儲器以便可以替換存儲器。再次地,任何正在使用該存儲器塊的操作系統(tǒng)都必須停止使用該存儲器塊。
在某些方面,停止使用一個物理存儲器塊而開始使用其他塊是相對簡單的,因為在常規(guī)操作系統(tǒng)中已經(jīng)存在與虛擬存儲器管理相關(guān)的機制,以處理與訪問該存儲器的操作系統(tǒng)有關(guān)的此方面的問題。但是這些機制取決于用于僅由操作系統(tǒng)訪問而非由I/O設(shè)備訪問的程序數(shù)據(jù)的存儲器塊。如果存儲器塊由I/O設(shè)備訪問,則問題更復(fù)雜。此I/O設(shè)備進行的訪問通常是直接存儲器訪問(DMA),盡管并非始終是這種情況。
由I/O設(shè)備通過I/O設(shè)備的I/O適配器訪問的存儲器塊通常是“釘扎的(pinned)”,即,免于移動,因為對它們的訪問受本質(zhì)上無盡的I/O程序(只要操作系統(tǒng)運行就會運行)的限制。停止此類釘扎存儲器的I/O程序?qū)ο到y(tǒng)來說是破壞性的。通過釘扎這些存儲器塊,所述存儲器塊本質(zhì)上專用于釘扎存儲器的I/O設(shè)備。通過釘扎,可以保留一個或多個單獨的存儲器塊以供特定的單獨I/O設(shè)備使用。
但是,對于包括釘扎存儲器以供其使用的I/O設(shè)備的計算機系統(tǒng)來說,釘扎存儲器塊不是特別有效。這些存儲器塊通常都未充分利用。雖然I/O設(shè)備在某些時刻需要通過寫入其釘扎的存儲器來使用該存儲器,但是該存儲器經(jīng)常處于未使用狀態(tài)。

發(fā)明內(nèi)容
本發(fā)明披露了一種使用替代頁池來管理DMA寫入頁錯誤的計算機實現(xiàn)的方法、裝置和計算機程序產(chǎn)品。計算機系統(tǒng)的平臺解決專用于I/O適配器的頁的DMA寫入頁錯誤。所述I/O適配器嘗試將DMA數(shù)據(jù)寫入所述頁。做出所述頁不可用于寫入的判定。然后將所述DMA數(shù)據(jù)寫入從所述替代頁池中選擇的替代頁中的數(shù)據(jù)位置。隨后在數(shù)據(jù)寫入其中的所述數(shù)據(jù)位置中的每個位置的標(biāo)志位置中設(shè)置標(biāo)志。所述標(biāo)志位置對應(yīng)于數(shù)據(jù)寫入其中的所述數(shù)據(jù)位置。當(dāng)設(shè)置了標(biāo)志時,所述標(biāo)志指示DMA寫入數(shù)據(jù)存在于與該標(biāo)志的標(biāo)志位置對應(yīng)的數(shù)據(jù)位置中。


在所附權(quán)利要求中說明了被認(rèn)為是本發(fā)明特性的新穎特征。但是,當(dāng)結(jié)合附圖閱讀時,通過參考以下對示例性實施例的詳細說明,可以最佳地理解發(fā)明本身及其優(yōu)選使用方式、進一步的目的和優(yōu)點,這些附圖是圖1A示出了包括本發(fā)明的示例性實施例的計算機系統(tǒng);圖1B示出了根據(jù)本發(fā)明的示例性實施例的包括每個表項的控制字段的地址驗證和轉(zhuǎn)換表的一部分;圖1C示出了根據(jù)本發(fā)明的示例性實施例的用于存儲DMA寫入數(shù)據(jù)的替代數(shù)據(jù)頁;圖1D示出了根據(jù)本發(fā)明的示例性實施例的用于存儲標(biāo)志的替代標(biāo)志頁;
圖1E示出了根據(jù)本發(fā)明的示例性實施例的用于將存儲在原始目標(biāo)頁中的原始數(shù)據(jù)與DMA寫入數(shù)據(jù)集成的恢復(fù)頁;圖1F示出了根據(jù)本發(fā)明的示例性實施例的包括數(shù)據(jù)位置和標(biāo)志位置兩者的替代頁;圖2A和2B是共同示出了根據(jù)本發(fā)明的示例性實施例的利用控制設(shè)置確定如何執(zhí)行DMA寫入以及當(dāng)原始目標(biāo)頁被換出頁時利用替代頁的高級流程圖;圖3是示出了根據(jù)本發(fā)明的示例性實施例的當(dāng)可用替代頁數(shù)低于預(yù)定閾值時生成中斷的高級流程圖;圖4是示出了根據(jù)本發(fā)明的示例性實施例的分配其他替代頁的高級流程圖;圖5是示出了根據(jù)本發(fā)明的示例性實施例的平臺為已被換出頁的物理頁更新地址驗證和轉(zhuǎn)換表表項的高級流程圖;以及圖6是示出了根據(jù)本發(fā)明的示例性實施例的將來自替代頁中的數(shù)據(jù)位置的數(shù)據(jù)與來自原始目標(biāo)頁的數(shù)據(jù)重新集成以形成恢復(fù)頁的高級流程圖。
具體實施例方式
本發(fā)明的示例性實施例是計算機實現(xiàn)的方法、裝置和計算機程序產(chǎn)品,用于允許計算機系統(tǒng)的平臺解決通過I/O設(shè)備的I/O適配器專用于那些設(shè)備的頁的I/O寫入頁錯誤(例如DMA寫入頁錯誤)。因為該平臺能夠解決I/O寫入頁錯誤,所以該平臺可以將專用于I/O適配器的頁臨時用作其他目的,直到該I/O適配器需要寫入該頁。
所述平臺的I/O子系統(tǒng)提供了用于DMA寫入數(shù)據(jù)的臨時替代頁,所述DMA寫入數(shù)據(jù)旨在存儲在被虛擬存儲器子系統(tǒng)換出頁的目標(biāo)頁中。所述臨時替代頁結(jié)合了每字節(jié)使用指示符(在此稱為標(biāo)志),當(dāng)將所述DMA寫入數(shù)據(jù)與被虛擬存儲器子系統(tǒng)恢復(fù)的換出頁的數(shù)據(jù)重新集成時,將使用所述指示符。
當(dāng)I/O設(shè)備通過其I/O適配器嘗試將DMA數(shù)據(jù)寫入特定目標(biāo)頁且I/O設(shè)備無法在虛擬存儲器中找到該目標(biāo)頁時,將發(fā)生DMA寫入頁錯誤。當(dāng)發(fā)生DMA寫入頁錯誤時,所述平臺將寫入數(shù)據(jù)存儲在替代頁內(nèi)的數(shù)據(jù)位置中,就好像所述替代頁是原始目標(biāo)頁。替代頁中的數(shù)據(jù)位置對應(yīng)于原始目標(biāo)頁中的位置,數(shù)據(jù)將存儲在該位置,假如沒有將原始目標(biāo)頁從虛擬存儲器換出頁的話。
然后在特定的標(biāo)志位置中設(shè)置標(biāo)志。這些特定的標(biāo)志位置與在替代頁中存儲DMA寫入數(shù)據(jù)的數(shù)據(jù)位置相對應(yīng)。
在一個實施例中,使用單個替代頁并且其包括數(shù)據(jù)位置和標(biāo)志位置兩者。將DMA寫入數(shù)據(jù)存儲在這些數(shù)據(jù)位置中的特定位置。然后設(shè)置存儲在此同一替代頁中的標(biāo)志。設(shè)置的標(biāo)志是存儲在與存儲DMA寫入數(shù)據(jù)的數(shù)據(jù)位置對應(yīng)的標(biāo)志位置中的標(biāo)志。不設(shè)置其余標(biāo)志位置中的標(biāo)志。
在另一個實施例中,使用了兩個替代頁。第一替代頁僅包括數(shù)據(jù)位置,而第二替代頁僅包括標(biāo)志位置。將DMA寫入數(shù)據(jù)存儲在第一替代頁內(nèi)的數(shù)據(jù)位置中的特定位置。隨后在第二替代頁中設(shè)置標(biāo)志。第二替代頁中的每個標(biāo)志位置都與第一替代頁中的數(shù)據(jù)位置相對應(yīng)。設(shè)置標(biāo)志,所述標(biāo)志存儲在與存儲DMA寫入數(shù)據(jù)的第一頁中的數(shù)據(jù)位置對應(yīng)的第二頁內(nèi)的標(biāo)志位置中。
如果在特定標(biāo)志位置中設(shè)置了標(biāo)志,則其相應(yīng)的數(shù)據(jù)位置包含有效的DMA寫入數(shù)據(jù)。如果未在特定標(biāo)志位置中設(shè)置標(biāo)志,則其相應(yīng)的數(shù)據(jù)位置不包含有效的DMA寫入數(shù)據(jù)。
所述替代頁是臨時頁。當(dāng)原始目標(biāo)頁再次位于存儲器中并不再被換出頁時,則可以在DMA寫入時,將DMA寫入數(shù)據(jù)與存儲在原始目標(biāo)頁中的數(shù)據(jù)重新集成。所述數(shù)據(jù)和標(biāo)志用于恢復(fù)所述DMA寫入數(shù)據(jù)。標(biāo)志用于判定哪些數(shù)據(jù)位置包含DMA寫入數(shù)據(jù)。一旦定位了DMA寫入數(shù)據(jù),就將其與來自原始目標(biāo)頁的數(shù)據(jù)重新集成以創(chuàng)建恢復(fù)的頁。
所述計算機系統(tǒng)通常包括用于將物理頁與特定I/O適配器關(guān)聯(lián)的地址驗證和轉(zhuǎn)換表。表中的每個表項都與特定的物理頁關(guān)聯(lián)。使用DMA操作的地址來對該表進行索引。本發(fā)明的示例性實施例向該表添加了控制字段。所述控制字段用于指示每個物理頁的當(dāng)前狀態(tài)。
計算機系統(tǒng)的平臺包括當(dāng)執(zhí)行I/O操作時使用地址驗證和轉(zhuǎn)換表的I/O轉(zhuǎn)換軟件。根據(jù)本發(fā)明的示例性實施例,所述I/O轉(zhuǎn)換軟件還維護如在此描述的那樣使用的替代頁的列表。可以使用任何形式的列表,例如,鏈接列表、多級表、隊列,或任何其他適合類型的列表。此列表形成可用替代頁池。
當(dāng)需要替代頁時,I/O轉(zhuǎn)換硬件從此列表選擇頁。當(dāng)列表中包括的替代頁的數(shù)量低于預(yù)定閾值時,將生成中斷。在示例性實施例中,由硬件(例如I/O轉(zhuǎn)換硬件或機制)生成所述中斷。所述平臺的存儲器虛擬化軟件隨后通過分配其他可以用作替代頁的頁來響應(yīng)所述中斷。
對于地址驗證和轉(zhuǎn)換表中的每個表項,使用控制字段設(shè)置來指示與該表項關(guān)聯(lián)的物理頁的當(dāng)前狀態(tài)。第一控制字段設(shè)置指示物理頁可以發(fā)生正常的DMA寫入處理。在這種情況下,目標(biāo)物理頁位于存儲器中并且不會被換出頁。
第二控制字段設(shè)置指示必須掛起DMA寫入處理。當(dāng)物理頁被換出頁并使用替代頁時將使用此設(shè)置。在這種情況下,此物理頁的替代頁正處于與原始目標(biāo)頁的數(shù)據(jù)重新集成的過程中。
第三控制字段設(shè)置指示必須在執(zhí)行DMA寫入之前獲取替代頁。在這種情況下,物理頁被換出頁,并且尚未選擇將用于臨時存儲DMA寫入數(shù)據(jù)的替代頁。如果使用包括數(shù)據(jù)和標(biāo)志位置的單個替代頁,一旦選擇了替代頁,就將所述替代頁的地址存儲在地址驗證和轉(zhuǎn)換表內(nèi)與目標(biāo)頁關(guān)聯(lián)的表項中。如果使用兩個替代頁,一旦選擇了替代頁,就將包含替代頁地址的描述符的地址存儲在地址驗證和轉(zhuǎn)換表內(nèi)與目標(biāo)頁關(guān)聯(lián)的表項中。
第四控制字段設(shè)置指示可以處理DMA寫入,但是必須處理到所選擇的替代頁(多個)而不是目標(biāo)頁。當(dāng)控制字段設(shè)置為第四設(shè)置時,將DMA寫入數(shù)據(jù)存儲在適當(dāng)?shù)臄?shù)據(jù)位置中后,將設(shè)置相應(yīng)標(biāo)志位置中的標(biāo)志。所述頁內(nèi)的其余標(biāo)志位置中的所有其他標(biāo)志都保持未設(shè)置。
當(dāng)平臺的存儲器虛擬化軟件決定征用是DMA寫入的目標(biāo)的頁時(即,將被換出頁的頁),平臺的存儲器虛擬化軟件將地址驗證和轉(zhuǎn)換頁中該頁的表項中的控制字段設(shè)置為第三設(shè)置。然后平臺的存儲器虛擬化軟件清除該表項的地址字段。
如果該頁隨后在恢復(fù)頁之前變?yōu)镈MA寫入操作的目標(biāo),則平臺的I/O轉(zhuǎn)換硬件/機制將發(fā)現(xiàn)控制字段設(shè)置為第三設(shè)置。由于所述設(shè)置為第三設(shè)置,所以平臺的I/O轉(zhuǎn)換硬件/機制從其替代頁列表中選擇替代頁。I/O轉(zhuǎn)換硬件隨后將包括數(shù)據(jù)位置的替代頁的地址輸入地址驗證和轉(zhuǎn)換表的地址字段中。所述I/O轉(zhuǎn)換硬件/機制還將控制字段設(shè)置為第四設(shè)置。然后將DMA寫入數(shù)據(jù)寫入特定的數(shù)據(jù)位置。在與存儲了DMA寫入數(shù)據(jù)的數(shù)據(jù)位置對應(yīng)的標(biāo)志位置中設(shè)置標(biāo)志。
當(dāng)再次在存儲器中定位了原始目標(biāo)頁并且其不再被換出頁時,可以檢索當(dāng)前存儲在替代頁中的數(shù)據(jù)并將該數(shù)據(jù)與當(dāng)前存儲在原始目標(biāo)頁中的數(shù)據(jù)重新集成。當(dāng)重新集成過程開始時,虛擬存儲器軟件將該特定物理頁的表項的控制字段設(shè)置為第三設(shè)置,以便避免無盡的連續(xù)替代頁寫入。所述第三設(shè)置導(dǎo)致在此重新集成過程期間推遲其他DMA寫入的處理。
然后選擇替代頁用作恢復(fù)頁。將來自特定數(shù)據(jù)位置的數(shù)據(jù)存儲在與數(shù)據(jù)位置對應(yīng)的恢復(fù)頁內(nèi)的位置中。所述標(biāo)志用于標(biāo)識哪些數(shù)據(jù)位置是包含有效DMA寫入數(shù)據(jù)的特定位置。然后將此恢復(fù)頁的地址存儲在地址驗證和轉(zhuǎn)換表表項的地址字段中。
此時,所述頁再次位于虛擬存儲器中并可以用于正常的DMA寫入處理。因此,將此表項的控制字段設(shè)置為第一設(shè)置。
如本領(lǐng)域的技術(shù)人員將認(rèn)識到的,替代頁中字段的物理大小可以為優(yōu)化存儲單元利用率的大小,而不會影響本發(fā)明的示例性實施例的新穎性。雖然在大多數(shù)情況下,必須可在字節(jié)級別寫入數(shù)據(jù)位置以匹配多數(shù)I/O總線的特性,但是可以使用其他粒度,如果它們匹配DMA生成設(shè)備的特性的話。
此外,所述標(biāo)志位置可以僅包含單個數(shù)據(jù)位置字節(jié)的信息,或者可以包含多個字節(jié)的信息。
雖然上述的存儲器虛擬化軟件和I/O轉(zhuǎn)換硬件/機制執(zhí)行特定功能,但是任何適合的平臺軟件都可以執(zhí)行上述功能。
圖1A示出了包括本發(fā)明的示例性實施例的計算機系統(tǒng)110。計算機系統(tǒng)110包括平臺101。計算機系統(tǒng)100可以是包括多個處理器102和104的對稱多處理器(SMP)系統(tǒng)。備選地,可以使用單處理器系統(tǒng)。
在系統(tǒng)100中,將包括指令的數(shù)據(jù)106存儲在非易失性存儲器(例如盤存儲裝置135)中,并且將數(shù)據(jù)106的塊108從非易失性存儲器寫入易失性存儲器110。就它們在易失性存儲器中的實際物理位置而言,將數(shù)據(jù)106的塊108稱為數(shù)據(jù)的“物理頁”115,以從虛擬存儲器映射的角度區(qū)分對數(shù)據(jù)106的引用。因此,有時還將易失性存儲器110稱為“物理存儲器”。
對于易失性存儲器110中的數(shù)據(jù)塊,它們可由系統(tǒng)100的I/O設(shè)備135、140、145和中央處理單元(CPU)104訪問。如在此使用的,術(shù)語“I/O設(shè)備”指連接到計算機系統(tǒng)110并向系統(tǒng)提供信息或從系統(tǒng)接收信息的各種設(shè)備中的任何設(shè)備。I/O設(shè)備的實例包括存儲器(如非易失性盤存儲裝置135)、鼠標(biāo)、軌跡球、觸摸板(或類似設(shè)備)、鍵盤、顯示器、打印機、攝像機、調(diào)制解調(diào)器、光學(xué)掃描儀、麥克風(fēng)以及音頻揚聲器。
更具體地說,物理頁115由第一總線125連接到I/O橋130,并且每個I/O設(shè)備135都由相應(yīng)的I/O適配器136、141、146和I/O總線176的段137、142連接到I/O橋130。
可以通過調(diào)制解調(diào)器148和/或通信適配器149提供到其他計算機的通信鏈路。
I/O橋130還具有邏輯150,包括在I/O設(shè)備135之間仲裁的總線邏輯,即,每次許可一個I/O設(shè)備訪問I/O總線176,以及從I/O總線176訪問第一總線125。I/O橋130還包括用于緩存來自物理頁115或I/O設(shè)備(如非易失性存儲器135)的數(shù)據(jù)106的I/O數(shù)據(jù)緩沖器155,以響應(yīng)I/O設(shè)備的請求,并且邏輯150包括處理數(shù)據(jù)緩沖的邏輯。在示例性實施例中,I/O橋邏輯150包括I/O處理器154。
CPU 104執(zhí)行操作系統(tǒng)和固件指令,它們的圖像在圖1的CPU中表示為操作系統(tǒng)160和固件165。CPU 104執(zhí)行的指令包括固件指令165、在固件165的支持下運行的操作系統(tǒng)指令160,以及在固件165和操作系統(tǒng)160的支持下運行的應(yīng)用指令(未示出)。應(yīng)當(dāng)理解,在處理器104上運行的固件165實際上與操作系統(tǒng)160無關(guān)并且提供了低級接口,因此比操作系統(tǒng)160提供了更多的對硬件組件(如處理器104)的訪問。在某些方面,操作系統(tǒng)160向在CPU 104上運行的應(yīng)用提供了數(shù)據(jù)106的塊108的視圖作為虛擬存儲器162的頁,使得數(shù)據(jù)106的實際位置相當(dāng)透明,例如,無論數(shù)據(jù)是位于易失性存儲器110還是盤存儲裝置135中。相應(yīng)地,操作系統(tǒng)160包括分頁機制163和頁表164,用于在某種程度上透明地將數(shù)據(jù)106移入和移出易失性存儲器110。
關(guān)于I/O設(shè)備虛擬存儲器152,操作系統(tǒng)160引導(dǎo)I/O邏輯150通過轉(zhuǎn)換控制表項(TCE)表175中的表項,將數(shù)據(jù)106的塊108映射到物理頁115。在示例性實施例中,固件165提供了用于從物理頁115中的第一頁將數(shù)據(jù)移動到物理頁115中的第二頁的服務(wù),以便使第一頁用于其他服務(wù)或空閑。要執(zhí)行此操作,操作系統(tǒng)160在TCE表175中查找一組用于物理頁115中的第一頁的一個或多個表項。然后,操作系統(tǒng)160引導(dǎo)固件165組件(即,系統(tǒng)管理程序170)將數(shù)據(jù)從與給定I/O設(shè)備虛擬存儲器頁152關(guān)聯(lián)的第一物理頁115復(fù)制到第二物理頁115,然后更改TCE表175中的關(guān)聯(lián)映射,以便將未來對I/O設(shè)備虛擬存儲器頁152的訪問引導(dǎo)到第二物理頁。系統(tǒng)管理程序170具有許多功能,其中包括,保持TCE表175更新,以及維護關(guān)于I/O操作的存儲器一致性。
存儲器的物理頁由輸入/輸出(I/O)適配器訪問。TCE表175包括將物理頁與I/O適配器關(guān)聯(lián)的表項。每個表項都將特定物理頁與特定I/O適配器相關(guān)聯(lián)。
為了理解TCE表175,考慮I/O設(shè)備135具有它們自己的數(shù)據(jù)106的視圖作為虛擬存儲器152的頁,類似于CPU 104的虛擬存儲器視圖。I/O橋邏輯150將該視圖提供給I/O設(shè)備135。在其他實施例中,I/O處理器154和固件165將該視圖提供給I/O設(shè)備135。為了維護該視圖,TCE表175中的表項(圖1未示出)將數(shù)據(jù)106的塊108映射到I/O虛擬存儲器頁152。因此,I/O設(shè)備135可以通過參考虛擬頁152來引用數(shù)據(jù)106,而與數(shù)據(jù)的實際位置無關(guān),即,與哪個物理頁115當(dāng)前存儲數(shù)據(jù)無關(guān)。
I/O橋130提供了位于總線125和總線176之間的邏輯150??偩€176上的存儲器請求從I/O設(shè)備進入,其帶有虛擬地址以反映I/O設(shè)備虛擬存儲器152。I/O轉(zhuǎn)換硬件(地址轉(zhuǎn)換邏輯)156高效地訪問TCE表175(其保持I/O設(shè)備虛擬頁順序)來確定應(yīng)當(dāng)應(yīng)用于總線125的物理頁地址,以便訪問與來自總線176的存儲器請求關(guān)聯(lián)的正確物理頁115。(上文使用了術(shù)語“高效地”,因為實際上邏輯150包含TCE表175的相關(guān)部分的緩存的副本,以便加速所述過程。)TCE表175是由DMA操作的I/O總線地址索引的I/O地址驗證和轉(zhuǎn)換表。該表用于確保I/O適配器僅訪問分配的存儲位置,以及允許平臺軟件相對于由I/O適配器的設(shè)備驅(qū)動器生成的I/O命令所包含的DMA地址來重新定位物理存儲決。
如上所述,平臺101包括硬件,還包括操作系統(tǒng)177、驅(qū)動器178、應(yīng)用179和其他軟件180。
圖1B示出了根據(jù)本發(fā)明的示例性實施例的地址驗證和轉(zhuǎn)換表(也稱為TCE表)的一部分,該表包括用于每個表項的控制字段。表182包括每個物理頁的地址字段183和控制字段184。如圖1A所示,根據(jù)本發(fā)明的示例性實施例,將其他字段(即,字段184)添加到TCE表175。
例如,表項185包括用于訪問物理頁“a”的地址和物理頁“a”的當(dāng)前控制設(shè)置。用于訪問物理頁“a”的地址存儲在表項185的字段183a中。物理頁“a”的當(dāng)前控制設(shè)置存儲在字段184a中。
表項186包括用于訪問物理頁“b”的地址和物理頁“b”的當(dāng)前控制設(shè)置。用于訪問物理頁“b”的地址存儲在表項186的字段183b中。物理頁“b”的當(dāng)前控制設(shè)置存儲在字段184b中。
圖1C示出了根據(jù)本發(fā)明的示例性實施例的用于存儲DMA寫入數(shù)據(jù)的替代數(shù)據(jù)頁187。所述DMA寫入數(shù)據(jù)的目標(biāo)是存儲在原始目標(biāo)頁的數(shù)據(jù)位置,從該頁的位置XXX到位置YYY。因此,該DMA寫入數(shù)據(jù)存儲在替代頁187中從位置XXX到位置YYY的數(shù)據(jù)位置。從位置0到位置XXX和從位置YYY到位置ZZZ的數(shù)據(jù)位置不包含任何數(shù)據(jù)或包含不相關(guān)的數(shù)據(jù)。
圖1D示出了根據(jù)本發(fā)明的示例性實施例的用于存儲標(biāo)志的替代標(biāo)志頁188。標(biāo)志頁188包括0到ZZZ的標(biāo)志位置。標(biāo)志頁188中的每個標(biāo)志位置在數(shù)據(jù)頁187中具有對應(yīng)的數(shù)據(jù)位置。
將標(biāo)志存儲在每個標(biāo)志位置中。如果設(shè)置了特定標(biāo)志位置中的標(biāo)志,則與該標(biāo)志位置對應(yīng)的數(shù)據(jù)頁中的數(shù)據(jù)位置是需要恢復(fù)的有效DMA寫入數(shù)據(jù)。如果未設(shè)置特定標(biāo)志位置中的標(biāo)志,則與該標(biāo)志位置對應(yīng)的數(shù)據(jù)位置中的數(shù)據(jù)是無效的DMA寫入數(shù)據(jù)并應(yīng)被忽略。
因此,未設(shè)置位置0到XXX和從YYY到ZZZ的位置中的標(biāo)志,而設(shè)置了位置XXX到Y(jié)YY中的標(biāo)志。
圖1E示出了根據(jù)本發(fā)明的示例性實施例的用于在DMA寫入時將存儲在原始目標(biāo)頁中的原始數(shù)據(jù)與DMA寫入數(shù)據(jù)重新集成的恢復(fù)頁189。從原始目標(biāo)頁檢索原始數(shù)據(jù),并將其復(fù)制到恢復(fù)頁189中與原始目標(biāo)頁中它們的原始位置對應(yīng)的數(shù)據(jù)位置。
然后使用來自標(biāo)志頁188的標(biāo)志從數(shù)據(jù)頁187檢索DMA寫入數(shù)據(jù)并將其覆蓋原始數(shù)據(jù)。通過為標(biāo)志頁188中的每個位置判定是否設(shè)置了該位置中的標(biāo)志來完成覆蓋DMA寫入數(shù)據(jù)的過程。如果設(shè)置了標(biāo)志,則將存儲在數(shù)據(jù)頁內(nèi)相應(yīng)數(shù)據(jù)位置中的數(shù)據(jù)存儲在恢復(fù)頁內(nèi)的相應(yīng)位置中。如果未設(shè)置標(biāo)志,則忽略任何可能存儲在數(shù)據(jù)頁中相應(yīng)數(shù)據(jù)位置的數(shù)據(jù),并且不將所述數(shù)據(jù)存儲在恢復(fù)頁的相應(yīng)位置。
圖1F示出了根據(jù)本發(fā)明的示例性實施例的包括數(shù)據(jù)位置和標(biāo)志位置兩者的單個替代頁190。如圖1F所示,標(biāo)志位置和數(shù)據(jù)位置在頁190中交替出現(xiàn)。因此,頁190中的第一位置是標(biāo)志位置“a”。下一位置是與標(biāo)志位置“a”對應(yīng)的數(shù)據(jù)位置“a”。單個替代頁190可以用于替換替代頁187和188。
可以按照上述方式使用替代頁190。通過為頁190中的每個標(biāo)志位置判定是否設(shè)置了標(biāo)志來完成覆蓋DMA寫入數(shù)據(jù)的過程。如果在標(biāo)志位置中設(shè)置了標(biāo)志,則將存儲在相應(yīng)數(shù)據(jù)位置的數(shù)據(jù)存儲到恢復(fù)頁中的相應(yīng)位置。如果未設(shè)置標(biāo)志,則忽略任何可能存儲在相應(yīng)數(shù)據(jù)位置的數(shù)據(jù),并且不會將其存儲在恢復(fù)頁中的相應(yīng)位置。
圖2A和2B是共同示出了根據(jù)本發(fā)明的示例性實施例的利用控制設(shè)置確定如何執(zhí)行DMA寫入以及當(dāng)原始目標(biāo)頁被換出頁時利用替代頁的高級流程圖。過程開始于方塊200(如圖所示)并從此進行到方塊202,方塊202示出了I/O設(shè)備嘗試執(zhí)行到特定目標(biāo)頁的DMA寫入。
接著,方塊204示出了在地址驗證和轉(zhuǎn)換表中定位與該特定頁關(guān)聯(lián)的表項。雖然地址驗證和轉(zhuǎn)換表可以位于存儲控制器、I/O橋、PCI總線橋、I/O適配器或類似設(shè)備中,但是其優(yōu)選地位于主存儲裝置中。
然后方塊206示出了讀取該表項的控制字段的當(dāng)前設(shè)置。該過程隨后進行到方塊208,其示出了判定控制字段設(shè)置是否為“a”??刂谱侄卧O(shè)置“a”是第一控制字段設(shè)置。如果判定控制字段設(shè)置是“a”,則過程進行到方塊210,方塊210示出了繼續(xù)正常的DMA處理。過程然后返回方塊202。
再次參考方塊208,如果判定控制字段設(shè)置不是“a”,則過程進行到方塊212,方塊212示出了判定控制字段設(shè)置是否為“b”??刂谱侄卧O(shè)置“b”是第二控制字段設(shè)置。如果判定控制字段設(shè)置是“b”,則過程返回方塊206。
再次參考方塊212,如果判定控制字段設(shè)置不是“b”,則過程進行到方塊214,方塊214示出了判定控制字段設(shè)置是否為“c”。控制字段設(shè)置“c”是第三控制字段設(shè)置。如果判定控制字段設(shè)置是“c”,則過程進行到方塊216,方塊216示出了從可用替代頁列表中選擇兩個替代頁。一個頁將是數(shù)據(jù)替代頁,而另一個頁將是標(biāo)志替代頁。這兩個頁將互相關(guān)聯(lián)。
將這兩個頁關(guān)聯(lián)的一個方法是使它們在實存儲器中成為連續(xù)頁。通常使用奇/偶地址對來完成此操作。
存在多種配置這些頁的方法。在一種方法中,偶數(shù)頁包含DMA數(shù)據(jù)而奇數(shù)頁包含標(biāo)志。
除了使用兩個單獨的頁,還可以使用包括數(shù)據(jù)和標(biāo)志的單個替代頁。例如,DMA字節(jié)0寫入第一頁的字節(jié)0(即,第一字節(jié)),而其相應(yīng)的標(biāo)志字節(jié)寫入第一頁的字節(jié)1。這持續(xù)到第2048個標(biāo)志字節(jié)寫入第二頁的第二字節(jié)。對本領(lǐng)域的技術(shù)人員來說,DMA和相應(yīng)標(biāo)志字節(jié)之間的若干其他映射是可能和顯而易見的。
接著,方塊218示出了使用包括數(shù)據(jù)位置的選定數(shù)據(jù)替代頁的地址更新地址驗證和轉(zhuǎn)換表表項并將控制字段設(shè)置為“d”。然后過程進行到方塊206。
再次參考方塊214,如果判定控制字段設(shè)置不是“c”,則過程進行到方塊220,方塊220示出了判定控制字段設(shè)置是否是“d”??刂谱侄卧O(shè)置“d”是第四控制字段設(shè)置。如果判定控制字段設(shè)置是“d”,則過程進行到方塊230,如連接符A所示。
方塊230示出了將DMA寫入數(shù)據(jù)存儲在數(shù)據(jù)頁中,所述數(shù)據(jù)頁由存儲在地址驗證和轉(zhuǎn)換表表項的地址部分的地址來標(biāo)識。接著,方塊232示出了定位與此數(shù)據(jù)頁關(guān)聯(lián)的標(biāo)志頁。此后,方塊234示出了在標(biāo)志頁中與DMA寫入期間其中存儲數(shù)據(jù)的數(shù)據(jù)頁中的每個數(shù)據(jù)位置對應(yīng)的每個標(biāo)志位置內(nèi)的設(shè)置標(biāo)志。然后過程返回方塊202,如連接符B所示。
再次參考方塊220,如果判定控制字段設(shè)置不是“d”,則過程進行到方塊222,方塊222示出了報告錯誤。然后過程返回方塊202。
圖3是示出了根據(jù)本發(fā)明的示例性實施例的當(dāng)可用替代頁數(shù)低于預(yù)定閾值時生成中斷的高級流程圖。過程在方塊300開始(如圖所示),并在此后進行到方塊302,方塊302示出了監(jiān)視替代頁列表(即,池)。這些列出的頁可用作替代頁。接著,方塊304示出了判定列表中頁的數(shù)量是否高于預(yù)定閾值。如果判定列出的替代頁的數(shù)量高于閾值,則過程返回方塊302。如果判定列出的替代頁的數(shù)量不高于閾值,則過程進行到方塊306,方塊306示出了生成“短缺”中斷。然后過程返回方塊302。
圖4是示出了根據(jù)本發(fā)明的示例性實施例的分配其他替代頁的高級流程圖。過程在方塊400開始(如圖所示),并在此后進行到方塊402,方塊402示出了判定存儲器虛擬化軟件是否接收到“短缺”中斷。如果判定存儲器虛擬化軟件未接收到“短缺”中斷,則過程返回方塊402。如果判定存儲器虛擬化軟件已接收到“短缺”中斷,則過程進行到方塊404,方塊404示出了存儲器虛擬化軟件分配其他頁以用作替代頁。這些新分配的頁然后被列為可用替代頁并因此成為可用替代頁池的一部分。然后過程返回方塊402。
圖5是示出了根據(jù)本發(fā)明的示例性實施例的平臺為已被換出頁的物理頁更新表項的高級流程圖。過程在方塊500開始(如圖所示),并在此后進行到方塊502,方塊502示出了存儲器虛擬化軟件選擇專用于I/O適配器的頁以用于其他處理。接著,方塊504示出了判定特定頁是否是DMA寫入的目標(biāo)。存儲器虛擬化軟件檢查用于驗證所有DMA操作的地址驗證和轉(zhuǎn)換表來判定此特定頁是否是DMA寫入的目標(biāo)。所述地址驗證和轉(zhuǎn)換表包含可能是DMA操作的目標(biāo)的所有頁的地址連同寫入允許標(biāo)志。
再次參考方塊504,如果判定特定頁不是DMA寫入的目標(biāo),則過程在方塊512終止(如圖所示)。如果判定特定頁是DMA寫入的目標(biāo),則過程進行到方塊506,方塊506示出了在地址驗證和轉(zhuǎn)換表中定位與該特定頁關(guān)聯(lián)的表項。
接著,方塊508示出了通過將控制字段設(shè)置為“c”來更新該表項的控制字段。此后,方塊510示出了清除該表項的所述字段的地址部分。然后過程在方塊512終止(如圖所示)。
圖6是示出了根據(jù)本發(fā)明的示例性實施例的將來自替代頁中的數(shù)據(jù)位置的數(shù)據(jù)與來自原始目標(biāo)頁的數(shù)據(jù)重新集成以形成恢復(fù)頁的高級流程圖。
過程在方塊600開始(如圖所示),并在此后進行到方塊602,方塊602示出了需要恢復(fù)特定頁。例如,當(dāng)寫入頁的I/O操作完成時,需要恢復(fù)該頁。執(zhí)行寫入的I/O適配器向其控制操作系統(tǒng)發(fā)送中斷。最終通知請求原始I/O的終端用戶操作完成。當(dāng)終端用戶嘗試訪問頁中的數(shù)據(jù)時,由于虛擬存儲器頁在物理上并未位于主存儲裝置中,因此嘗試的訪問將導(dǎo)致頁錯誤。這然后引發(fā)了恢復(fù)該頁的需要。
接著,方塊604示出了從替代頁列表中選擇替代頁來用作恢復(fù)頁。然后,方塊606示出了將換出頁的數(shù)據(jù)從后備存儲裝置讀入到用作恢復(fù)頁的替代頁中。因此,在DMA寫入時存儲在原始目標(biāo)頁中的數(shù)據(jù)現(xiàn)在存儲在恢復(fù)頁中。此數(shù)據(jù)存儲在恢復(fù)頁內(nèi)與在原始目標(biāo)頁中存儲數(shù)據(jù)的位置對應(yīng)的位置中。
所述后備存儲裝置是當(dāng)原始目標(biāo)頁被換出頁時存儲原始數(shù)據(jù)的場所。現(xiàn)在原始數(shù)據(jù)存儲在恢復(fù)頁中它們的原始數(shù)據(jù)位置。因此,此時所述恢復(fù)頁與換出頁之前存在的原始頁完全相同。
然后過程進行到方塊608,方塊608示出了判定原始頁是否是DMA寫入的目標(biāo)。如果判定原始頁不是DMA寫入的目標(biāo),則過程在方塊624終止(如圖所示)。再次參考方塊608,如果判定原始頁是DMA寫入的目標(biāo),則過程進行到方塊610,方塊610示出了定位地址驗證和轉(zhuǎn)換表中與此替代頁的地址關(guān)聯(lián)的表項。
接著,方塊612示出了判定該表項的控制字段是否設(shè)置為“d”。這是判定在原始頁被換出頁時是否將DMA寫入處理到原始頁。如果處理了DMA寫入,則將數(shù)據(jù)寫入替代數(shù)據(jù)頁而不是期望的原始DMA頁。如果判定未將控制字段設(shè)置為“d”,即,當(dāng)原始頁被換出頁時沒有將DMA寫入處理到原始頁,則過程進行到方塊620。如果判定將控制字段設(shè)置為“d”,即,當(dāng)原始頁被換出頁時將DMA寫入處理到原始頁,則過程進行到方塊614,方塊614示出了通過將控制字段設(shè)置為“b”來更新此表項的控制字段。此后,方塊616示出了將存儲在標(biāo)志位置中的標(biāo)志與存儲在相應(yīng)數(shù)據(jù)位置的數(shù)據(jù)相比較以標(biāo)識有效的DMA寫入數(shù)據(jù)。
然后過程進行到方塊618,方塊618示出了將數(shù)據(jù)存儲在恢復(fù)頁中與存儲了有效DMA寫入數(shù)據(jù)的數(shù)據(jù)位置對應(yīng)的每個位置。以這種方式,來自替代頁的數(shù)據(jù)覆蓋了原始數(shù)據(jù)。然后過程進行到方塊619,方塊619示出了釋放替代數(shù)據(jù)和標(biāo)志頁以便將它們再次包括在替代頁列表中。以這種方式,這些釋放的頁再次成為替代頁池的一部分。然后,方塊620示出了將恢復(fù)頁的地址存儲在此表項的地址部分。接著,方塊622示出了通過將控制字段設(shè)置為“a”來更新此表項的控制表項字段。然后過程在方塊624終止(如圖所示)。
本發(fā)明可以采取完全硬件實施例、完全軟件實施例或包含硬件和軟件元素兩者的實施例的形式。在一個優(yōu)選實施例中,本發(fā)明以硬件和軟件的組合實現(xiàn),所述軟件包括但不限于固件、駐留軟件、微代碼等。
此外,本發(fā)明可以采取可從計算機可用或計算機可讀介質(zhì)訪問的計算機程序產(chǎn)品的形式,所述計算機可用或計算機可讀介質(zhì)提供了可以被計算機或任何指令執(zhí)行系統(tǒng)使用或與計算機或任何指令執(zhí)行系統(tǒng)結(jié)合的程序代碼。出于在此說明的目的,計算機可用或計算機可讀介質(zhì)可以是任何能夠包含、存儲、傳送、傳播或傳輸由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與所述指令執(zhí)行系統(tǒng)、裝置或設(shè)備結(jié)合的程序的有形裝置。
所述介質(zhì)可以是電、磁、光、電磁、紅外線或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或傳播介質(zhì)。計算機可讀介質(zhì)的實例包括半導(dǎo)體或固態(tài)存儲器、磁帶、可移動計算機盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、硬磁盤和光盤。光盤的當(dāng)前實例包括光盤-只讀存儲器(CD-ROM)、光盤-讀/寫(CR-R/W)和DVD。
適合于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括至少一個通過系統(tǒng)總線直接或間接連接到存儲器元件的處理器。所述存儲器元件可以包括在程序代碼的實際執(zhí)行期間采用的本地存儲器、大容量存儲裝置以及提供至少某些程序代碼的臨時存儲以減少必須在執(zhí)行期間從大容量存儲裝置檢索代碼的次數(shù)的高速緩沖存儲器。
輸入/輸出或I/O設(shè)備(包括但不限于鍵盤、顯示器、指點設(shè)備等)可以直接或通過中間I/O控制器與系統(tǒng)相連。
網(wǎng)絡(luò)適配器也可以被連接到系統(tǒng)以使所述數(shù)據(jù)處理系統(tǒng)能夠通過中間專用或公共網(wǎng)絡(luò)變得與其他數(shù)據(jù)處理系統(tǒng)或遠程打印機或存儲設(shè)備相連。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡只是幾種當(dāng)前可用的網(wǎng)絡(luò)適配器類型。
出于示例和說明目的給出了對本發(fā)明的描述,并且所述描述并非旨在是窮舉的或是將本發(fā)明限于所公開的形式。對于本領(lǐng)域的技術(shù)人員來說,許多修改和變化都將是顯而易見的。實施例的選擇和描述是為了最佳地解釋本發(fā)明的原理、實際應(yīng)用,并且當(dāng)適合于所構(gòu)想的特定使用時,使得本領(lǐng)域的其他技術(shù)人員能夠理解本發(fā)明的具有各種修改的各種實施例。
權(quán)利要求
1.一種用于解決專用于I/O適配器的頁的DMA寫入頁錯誤的計算機實現(xiàn)的方法,所述頁專用于保持可供所述I/O適配器使用,所述計算機實現(xiàn)的方法包括由所述I/O適配器嘗試將DMA數(shù)據(jù)寫入所述頁;判定所述頁不可用;將所述DMA數(shù)據(jù)寫入替代頁中的數(shù)據(jù)位置;以及在與所述數(shù)據(jù)位置中的每個位置對應(yīng)的標(biāo)志位置中設(shè)置標(biāo)志,當(dāng)在特定標(biāo)志位置中設(shè)置了特定標(biāo)志時,所述特定標(biāo)志指示DMA寫入數(shù)據(jù)存在于與所述特定標(biāo)志位置對應(yīng)的特定數(shù)據(jù)位置中。
2.根據(jù)權(quán)利要求1的計算機實現(xiàn)的方法,還包括維護用于DMA寫入頁錯誤的替代頁池;以及從所述池選擇所述替代頁。
3.根據(jù)權(quán)利要求1的計算機實現(xiàn)的方法,還包括當(dāng)所述頁位于虛擬存儲器中時,所述頁可用;以及當(dāng)將所述頁移出虛擬存儲器時,所述頁不可用。
4.根據(jù)權(quán)利要求1的計算機實現(xiàn)的方法,還包括響應(yīng)于所述I/O適配器嘗試將DMA數(shù)據(jù)寫入所述頁,標(biāo)識與所述頁關(guān)聯(lián)的地址驗證和轉(zhuǎn)換表中的表項;從所述表項讀取與所述頁關(guān)聯(lián)的當(dāng)前控制設(shè)置;以及根據(jù)所述當(dāng)前控制設(shè)置來處理所述將DMA數(shù)據(jù)寫入所述頁的嘗試。
5.根據(jù)權(quán)利要求4的計算機實現(xiàn)的方法,還包括響應(yīng)于所述當(dāng)前控制設(shè)置是第一設(shè)置,判定所述頁可用并將所述DMA數(shù)據(jù)寫入所述頁。
6.根據(jù)權(quán)利要求4的計算機實現(xiàn)的方法,還包括響應(yīng)于所述當(dāng)前控制設(shè)置是第二設(shè)置,推遲將所述DMA數(shù)據(jù)寫入所述頁,直到所述當(dāng)前控制設(shè)置不再是所述第二設(shè)置。
7.根據(jù)權(quán)利要求4的計算機實現(xiàn)的方法,還包括響應(yīng)于所述當(dāng)前控制設(shè)置是第三設(shè)置,判定所述頁不可用;選擇所述替代頁;以及更新所述表項以使用所述替代頁的地址來替換所述頁的所述地址。
8.根據(jù)權(quán)利要求4的計算機實現(xiàn)的方法,還包括響應(yīng)于所述當(dāng)前控制設(shè)置是第四設(shè)置,將所述DMA數(shù)據(jù)寫入所述替代頁中的數(shù)據(jù)位置;以及在與所述數(shù)據(jù)位置對應(yīng)的標(biāo)志位置中設(shè)置標(biāo)志。
9.根據(jù)權(quán)利要求1的計算機實現(xiàn)的方法,還包括判定需要使所述頁可用;選擇作為恢復(fù)頁的替代頁;將來自所述頁的原始數(shù)據(jù)存儲在所述恢復(fù)頁中;選擇存儲在與包括已設(shè)置標(biāo)志的標(biāo)志位置關(guān)聯(lián)的數(shù)據(jù)位置中的數(shù)據(jù);以及將所述選擇的數(shù)據(jù)復(fù)制到所述恢復(fù)頁,所述選擇的數(shù)據(jù)存儲在與所述數(shù)據(jù)位置對應(yīng)的所述恢復(fù)頁內(nèi)的位置中。
10.一種數(shù)據(jù)處理系統(tǒng)中的裝置,所述裝置包括連接到I/O適配器的平臺以便解決專用于所述I/O適配器的頁的DMA寫入頁錯誤,所述頁專用于保持可供所述I/O適配器使用,所述裝置包括所述I/O適配器嘗試將DMA數(shù)據(jù)寫入所述頁;所述平臺判定所述頁不可用;所述平臺將所述DMA數(shù)據(jù)寫入替代頁中的數(shù)據(jù)位置;以及所述平臺在與所述數(shù)據(jù)位置中的每個位置對應(yīng)的標(biāo)志位置中設(shè)置標(biāo)志,當(dāng)在特定標(biāo)志位置中設(shè)置了特定標(biāo)志時,所述特定標(biāo)志指示DMA寫入數(shù)據(jù)存在于與所述特定標(biāo)志位置對應(yīng)的特定數(shù)據(jù)位置中。
11.根據(jù)權(quán)利要求10的裝置,還包括所述平臺維護用于DMA寫入頁錯誤的替代頁池;以及所述平臺從所述池選擇所述替代頁。
12.根據(jù)權(quán)利要求10的裝置,還包括當(dāng)所述頁位于虛擬存儲器中時,所述頁可用;以及當(dāng)將所述頁移出虛擬存儲器時,所述頁不可用。
13.根據(jù)權(quán)利要求10的裝置,還包括響應(yīng)于所述I/O適配器嘗試將DMA數(shù)據(jù)寫入所述頁,所述平臺標(biāo)識與所述頁關(guān)聯(lián)的地址驗證和轉(zhuǎn)換表中的表項;所述平臺從所述表項讀取與所述頁關(guān)聯(lián)的當(dāng)前控制設(shè)置;以及所述平臺根據(jù)所述當(dāng)前控制設(shè)置來處理所述將DMA數(shù)據(jù)寫入所述頁的嘗試。
14.根據(jù)權(quán)利要求13的裝置,還包括響應(yīng)于所述當(dāng)前控制設(shè)置是第一設(shè)置,所述平臺判定所述頁可用并將所述DMA數(shù)據(jù)寫入所述頁。
15.根據(jù)權(quán)利要求13的裝置,還包括響應(yīng)于所述當(dāng)前控制設(shè)置是第二設(shè)置,所述平臺推遲將所述DMA數(shù)據(jù)寫入所述頁,直到所述當(dāng)前控制設(shè)置不再是所述第二設(shè)置。
16.根據(jù)權(quán)利要求13的裝置,還包括響應(yīng)于所述當(dāng)前控制設(shè)置是第三設(shè)置,所述平臺判定所述頁不可用;所述平臺選擇所述替代頁;以及所述平臺更新所述表項以使用所述替代頁的地址來替換所述頁的所述地址。
17.根據(jù)權(quán)利要求13的裝置,還包括響應(yīng)于所述當(dāng)前控制設(shè)置是第四設(shè)置,所述平臺將所述DMA數(shù)據(jù)寫入所述替代頁中的數(shù)據(jù)位置;以及所述平臺在與所述數(shù)據(jù)位置對應(yīng)的標(biāo)志位置中設(shè)置標(biāo)志。
18.根據(jù)權(quán)利要求10的裝置,還包括所述平臺判定需要使所述頁可用;所述平臺選擇作為恢復(fù)頁的替代頁;所述平臺將來自所述頁的原始數(shù)據(jù)存儲在所述恢復(fù)頁中;所述平臺選擇存儲在與包括已設(shè)置標(biāo)志的標(biāo)志位置關(guān)聯(lián)的數(shù)據(jù)位置中的數(shù)據(jù);以及所述平臺將所述選擇的數(shù)據(jù)復(fù)制到所述恢復(fù)頁,所述選擇的數(shù)據(jù)存儲在與所述數(shù)據(jù)位置對應(yīng)的所述恢復(fù)頁內(nèi)的位置中。
19.一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括計算機可用介質(zhì),所述計算機可用介質(zhì)包括用于解決專用于I/O適配器的頁的DMA寫入頁錯誤的計算機可用代碼,所述頁專用于保持可供所述I/O適配器使用,所述計算機程序產(chǎn)品包括用于實現(xiàn)根據(jù)權(quán)利要求1-9中的任一權(quán)利要求的方法的計算機可用程序代碼。
全文摘要
本發(fā)明披露了一種使用替代頁池來管理DMA寫入頁錯誤的計算機實現(xiàn)的方法、裝置和計算機程序產(chǎn)品。計算機系統(tǒng)的平臺解決專用于I/O適配器的頁的DMA寫入頁錯誤。所述I/O適配器嘗試將DMA數(shù)據(jù)寫入所述頁。做出所述頁不可用于寫入的判定。然后將所述DMA數(shù)據(jù)寫入從所述替代頁池中選擇的替代頁中的數(shù)據(jù)位置。隨后在所述數(shù)據(jù)位置中的每個位置的標(biāo)志位置中設(shè)置標(biāo)志。所述標(biāo)志位置對應(yīng)于所述數(shù)據(jù)位置。當(dāng)設(shè)置了標(biāo)志時,所述標(biāo)志指示DMA寫入數(shù)據(jù)存在于與該標(biāo)志的標(biāo)志位置對應(yīng)的數(shù)據(jù)位置中。
文檔編號G06F13/20GK101046774SQ20071009155
公開日2007年10月3日 申請日期2007年3月27日 優(yōu)先權(quán)日2006年3月28日
發(fā)明者R·L·阿恩特, S·M·瑟伯 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
绥化市| 金华市| 肥东县| 云和县| 清涧县| 拉萨市| 上高县| 九江市| 莲花县| 门头沟区| 启东市| 石门县| 柳州市| 泰安市| 葵青区| 寻甸| 丹棱县| 南昌市| 桓台县| 南和县| 会同县| 错那县| 克山县| 定安县| 汉阴县| 于都县| 台北县| 永平县| 河曲县| 拜泉县| 长顺县| 柘城县| 东城区| 中方县| 岫岩| 什邡市| 青神县| 个旧市| 明光市| 锡林郭勒盟| 平凉市|