專利名稱:遷移數(shù)據(jù)頁(yè)面的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng),尤其涉及在受到輸入/輸出[I/O]設(shè)備訪問的物理頁(yè)面之間進(jìn)行數(shù)據(jù)遷移。更確切地說(shuō),本發(fā)明涉及在物理I/O適配器中僅僅禁用所選定的DMA操作,以便允許在受到物理I/O適配器訪問的物理頁(yè)面之間進(jìn)行數(shù)據(jù)遷移。
背景技術(shù):
根據(jù)計(jì)算機(jī)系統(tǒng)的發(fā)展趨勢(shì),在系統(tǒng)運(yùn)行時(shí)不必中斷數(shù)據(jù)處理而重新配置。例如,在計(jì)算機(jī)上運(yùn)行多個(gè)操作系統(tǒng)時(shí),所述操作系統(tǒng)中的第一個(gè)可能正在使用特定的存儲(chǔ)器塊,此時(shí)可能需要重新分配所述存儲(chǔ)器塊,以便由所述操作系統(tǒng)中的第二個(gè)使用。因此,第一個(gè)操作系統(tǒng)必須首先停止使用物理存儲(chǔ)器的所述塊。另一個(gè)實(shí)例為,在物理存儲(chǔ)器的一塊中可能檢測(cè)到問題,在這種情況下可能期望從操作中移走所述存儲(chǔ)器以便能夠更換。因此,特定物理頁(yè)面之內(nèi)的數(shù)據(jù)可能需要移動(dòng),或者說(shuō)所述物理頁(yè)面的使用可能需要阻斷一段時(shí)間。如果存儲(chǔ)器的這個(gè)塊要受到I/O設(shè)備訪問,遷移或者阻斷物理頁(yè)面使用的問題會(huì)變得困難。
受到I/O設(shè)備所訪問數(shù)據(jù)的一種遷移方法,是暫時(shí)但是完全禁用所述I/O設(shè)備所連接的I/O適配器所進(jìn)行的全部仲裁,以便訪問所述特定物理頁(yè)面。仲裁過程是DMA過程期間所采用的第一步。所以當(dāng)禁用仲裁時(shí),就禁用了物理I/O適配器的全部DMA操作。因此,當(dāng)禁用仲裁時(shí),需要訪問將被遷移數(shù)據(jù)的物理I/O適配器的全部DMA操作短期內(nèi)被完全禁用。在此短期內(nèi),物理頁(yè)面數(shù)據(jù)或者遷移或者更新。一旦完成了所述物理頁(yè)面的遷移或更新,就再次啟用I/O適配器中的DMA操作。
DMA操作既包括訪問數(shù)據(jù)的數(shù)據(jù)訪問操作,也包括管理服務(wù)操作。典型情況下,這些管理服務(wù)操作在后臺(tái)執(zhí)行。某些物理I/O適配器需要能夠執(zhí)行管理服務(wù)操作的能力,以便恰當(dāng)?shù)夭僮?。例如,某些物理I/O適配器使用管理服務(wù)操作以訪問特定的物理I/O適配器中包括的寄存器。如上所述在物理I/O適配器中禁用仲裁時(shí),就禁用了全部DMA操作,包括數(shù)據(jù)訪問和管理服務(wù)操作。在為了正常運(yùn)行而需要管理服務(wù)操作的I/O適配器中,如果禁用了執(zhí)行這些管理服務(wù)操作的能力,即使是暫時(shí)禁用,物理I/O適配器也將進(jìn)入出錯(cuò)狀態(tài)。這將導(dǎo)致處理器停止處理。
所以需要有一種方法、裝置和計(jì)算機(jī)程序產(chǎn)品,在物理I/O適配器中僅僅禁用所選定的DMA操作,以便允許遷移受到物理I/O適配器訪問的物理頁(yè)面。
發(fā)明內(nèi)容
在數(shù)據(jù)處理系統(tǒng)中,所公開的方法、裝置和計(jì)算機(jī)程序產(chǎn)品用于暫時(shí)禁用物理I/O適配器內(nèi)所選定的DMA操作。對(duì)是否禁用物理I/O適配器的數(shù)據(jù)訪問DMA能力做出判斷。物理I/O適配器的一種操作模式為根據(jù)是否禁用數(shù)據(jù)訪問DMA能力的判斷結(jié)果,采用模式位設(shè)定特定的模式。當(dāng)設(shè)置所述模式位時(shí),僅僅禁用物理I/O適配器的數(shù)據(jù)訪問DMA能力。禁用物理I/O適配器的數(shù)據(jù)訪問DMA能力時(shí),管理服務(wù)操作由所述物理I/O適配器繼續(xù)進(jìn)行。
在以下的詳細(xì)書面說(shuō)明中,本發(fā)明的以上以及其他目的、特性和優(yōu)點(diǎn)將變得顯而易見。
附圖簡(jiǎn)要說(shuō)明在附帶的權(quán)利要求書中闡明了本發(fā)明據(jù)信有特征的新穎特性。不過,連同附圖參考一個(gè)展示性實(shí)施例的以下詳細(xì)說(shuō)明,將會(huì)最好地理解發(fā)明本身以及其使用的優(yōu)選模式、進(jìn)一步的目的和優(yōu)點(diǎn),其中
圖1是根據(jù)本發(fā)明的高層次框圖,描繪了包括本發(fā)明的計(jì)算機(jī)系統(tǒng);圖2展示了根據(jù)本發(fā)明,從第一個(gè)物理頁(yè)面遷移數(shù)據(jù)之前,圖1中計(jì)算機(jī)系統(tǒng)的狀態(tài)實(shí)例;圖3展示了根據(jù)本發(fā)明,從第一個(gè)物理頁(yè)面遷移數(shù)據(jù)之后,圖1中計(jì)算機(jī)系統(tǒng)的狀態(tài)實(shí)例;圖4A描繪了根據(jù)本發(fā)明的高層次流程圖,展示了將物理I/O適配器的操作模式設(shè)定為特定模式,以便僅僅禁用物理I/O適配器的數(shù)據(jù)訪問DMA能力,而不禁用管理服務(wù)操作,所以阻斷了對(duì)物理I/O適配器的全部數(shù)據(jù)訪問;圖4B描繪了根據(jù)本發(fā)明的高層次流程圖,展示了將物理I/O適配器的操作模式設(shè)定為特定模式,以便恢復(fù)物理I/O適配器的數(shù)據(jù)訪問DMA能力,所以允許對(duì)物理I/O適配器的全部數(shù)據(jù)訪問;圖5描繪了根據(jù)本發(fā)明的高層次流程圖,展示了根據(jù)特定的物理I/O適配器的當(dāng)前模式處理I/O請(qǐng)求;圖6是根據(jù)本發(fā)明的框圖,圖中邏輯分區(qū)平臺(tái)包括本發(fā)明。
具體實(shí)施例方式
通過參考附圖,會(huì)更好地理解本發(fā)明的優(yōu)選實(shí)施例及其優(yōu)點(diǎn),相同的編號(hào)用于附圖中相同的和對(duì)應(yīng)的部件。
本發(fā)明是一種方法、裝置和計(jì)算機(jī)程序產(chǎn)品,用于暫時(shí)禁用物理I/O適配器內(nèi)所選定的DMA操作,以便允許頁(yè)面遷移。數(shù)據(jù)頁(yè)面將要遷移時(shí),I/O控制器將設(shè)定模式位,以便暫時(shí)禁用物理I/O適配器對(duì)這些頁(yè)面的數(shù)據(jù)訪問。
數(shù)據(jù)頁(yè)面將要遷移時(shí),對(duì)禁用數(shù)據(jù)訪問DMA能力做出判斷。物理I/O適配器的一種操作模式為根據(jù)是否禁用數(shù)據(jù)訪問DMA能力的判斷結(jié)果,采用模式位設(shè)定特定的模式。當(dāng)設(shè)置所述模式位時(shí),僅僅禁用物理I/O適配器的數(shù)據(jù)訪問DMA能力。禁用物理I/O適配器的數(shù)據(jù)訪問DMA能力時(shí),管理服務(wù)操作由所述物理I/O適配器繼續(xù)進(jìn)行。
收到將要由特定物理I/O適配器處理的I/O請(qǐng)求時(shí),I/O控制器將做出兩項(xiàng)判斷。I/O控制器將判斷與這個(gè)特定物理I/O適配器相關(guān)聯(lián)的模式位是否被設(shè)置——它表明對(duì)于這個(gè)物理I/O適配器,數(shù)據(jù)訪問被暫時(shí)禁用。I/O控制器也將查看I/O請(qǐng)求本身,以便判斷所述請(qǐng)求是數(shù)據(jù)訪問請(qǐng)求還是管理服務(wù)請(qǐng)求。
如果I/O控制器判定模式位被設(shè)置而且所述請(qǐng)求是數(shù)據(jù)訪問請(qǐng)求,I/O控制器將通過把所述請(qǐng)求放回處理隊(duì)列而推遲這項(xiàng)請(qǐng)求的處理。如果I/O控制器判定或者模式位未被設(shè)置或者所述請(qǐng)求不是數(shù)據(jù)訪問請(qǐng)求,I/O控制器當(dāng)時(shí)將處理所述請(qǐng)求。
圖1是根據(jù)本發(fā)明的高層次框圖,描繪了包括本發(fā)明的計(jì)算機(jī)系統(tǒng)100。數(shù)據(jù)102存儲(chǔ)在計(jì)算機(jī)系統(tǒng)100中。數(shù)據(jù)102存儲(chǔ)在存儲(chǔ)器中,如磁盤存儲(chǔ)器135。數(shù)據(jù)102的塊104從非易失性存儲(chǔ)器135寫入主存110。數(shù)據(jù)102的塊104是指數(shù)據(jù)的物理頁(yè)面115,以便區(qū)分它們與按照虛擬存儲(chǔ)器映射的觀點(diǎn)對(duì)數(shù)據(jù)102的引用,正如本文下面的進(jìn)一步講解。存儲(chǔ)器110可以指主存或物理存儲(chǔ)器。
存儲(chǔ)器110中的數(shù)據(jù)塊可由計(jì)算機(jī)系統(tǒng)100的I/O設(shè)備135、140和145以及中央處理器(CPU)訪問。正如本文所用,術(shù)語(yǔ)I/O設(shè)備是指多種設(shè)備中的任何一種,它們連接到計(jì)算機(jī)系統(tǒng)100并向所述系統(tǒng)提供信息或從所述系統(tǒng)接收信息。I/O設(shè)備的實(shí)例包括存儲(chǔ)器、磁盤存儲(chǔ)器135、鼠標(biāo)、跟蹤球、觸摸板等、鍵盤、顯示器、打印機(jī)、攝像頭、調(diào)制解調(diào)器、光學(xué)掃描儀、話筒、音頻揚(yáng)聲器等等。
更確切地說(shuō),物理頁(yè)面115通過第一總線125連接到I/O橋路130。I/O設(shè)備135、140、145中的每一種都通過對(duì)應(yīng)的I/O適配器136、141和146以及I/O總線180的分支137、142、147連接到I/O橋路130。I/O橋路130也具有邏輯150,包括總線邏輯,它在I/O設(shè)備135、140、145之間進(jìn)行仲裁,即準(zhǔn)許所述I/O設(shè)備每次一個(gè)地訪問I/O總線180。邏輯150在I/O總線180與第一總線125之間進(jìn)行仲裁。I/O橋路130也包括I/O數(shù)據(jù)緩沖區(qū)156,用于高速緩存來(lái)自物理頁(yè)面115或I/O設(shè)備比如存儲(chǔ)器135的數(shù)據(jù)102,以響應(yīng)I/O設(shè)備的請(qǐng)求。邏輯150包括應(yīng)對(duì)數(shù)據(jù)緩沖的邏輯。I/O橋路邏輯包括I/O控制器153,也稱為I/O處理器。
I/O控制器153包括模式位154。模式位154用于為具體的物理I/O適配器設(shè)置當(dāng)前操作模式。雖然僅僅描繪了一個(gè)模式位,但是在I/O控制器153中會(huì)為每個(gè)物理I/O適配器包括單獨(dú)的獨(dú)立模式位。以這種方式,每個(gè)物理I/O適配器的操作模式都可以獨(dú)立于其他物理I/O適配器的當(dāng)前操作模式。
作為替代,在I/O控制器153中可以為每個(gè)隊(duì)列對(duì)包括單獨(dú)的模式位,所以每個(gè)物理I/O適配器中每個(gè)虛擬I/O適配器的操作模式都可以獨(dú)立于每個(gè)物理I/O適配器中其他虛擬I/O適配器的當(dāng)前操作模式。
CPU 120執(zhí)行操作系統(tǒng)和固件指令,其影像在圖1中表示為操作系統(tǒng)160和固件165。由CPU 120執(zhí)行的指令包括固件指令165,在固件165支持下運(yùn)行的操作系統(tǒng)指令160,以及在固件165和操作系統(tǒng)160支持下運(yùn)行的應(yīng)用程序指令(未顯示)。應(yīng)當(dāng)認(rèn)同,固件165在處理器120上的運(yùn)行本質(zhì)上獨(dú)立于操作系統(tǒng)160,并提供了比操作系統(tǒng)160更低層次的接口,所以更多地訪問硬件組件,比如處理器120。
操作系統(tǒng)160向CPU 120上運(yùn)行的應(yīng)用程序呈現(xiàn)數(shù)據(jù)102中塊104的視野,表現(xiàn)為虛存162的頁(yè)面,所以數(shù)據(jù)102的實(shí)際位置是透明的,無(wú)論數(shù)據(jù)是在存儲(chǔ)器110中還是在例如磁盤存儲(chǔ)器135中。所以,操作系統(tǒng)160包括分頁(yè)機(jī)構(gòu)163和頁(yè)面表164,用于將數(shù)據(jù)102透明地移入、移出存儲(chǔ)器110。P10操作系統(tǒng)160指揮I/O邏輯150通過轉(zhuǎn)換控制表目(TCE)表175中的表目,將數(shù)據(jù)102的塊104映射到物理頁(yè)面115。在展示的實(shí)施例中,固件165提供的服務(wù)用于從物理頁(yè)面115的某個(gè)第一頁(yè)面將數(shù)據(jù)移動(dòng)到物理頁(yè)面115的某個(gè)第二頁(yè)面,使得第一頁(yè)面能夠用于不同的服務(wù)或空閑。為了做到這一點(diǎn),操作系統(tǒng)160在TCE表175中為物理頁(yè)面115的第一頁(yè)面找到一組一個(gè)或多個(gè)表目。然后操作系統(tǒng)160指揮固件165的組件如管理程序170從給定I/O設(shè)備虛存頁(yè)面152所關(guān)聯(lián)的第一物理頁(yè)面115把數(shù)據(jù)復(fù)制到第二物理頁(yè)面115,然后在TCE表175中改變所關(guān)聯(lián)的映射,使得將來(lái)對(duì)I/O設(shè)備虛存頁(yè)面152的訪問指向第二物理頁(yè)面。管理程序170具有許多功能,除了其他功能,還包括保持TCE表175更新以及保持存儲(chǔ)器與I/O操作一致。
為了理解TCE表175,考慮I/O設(shè)備135、140、145,各有其自己的數(shù)據(jù)102視野,表現(xiàn)為虛存152的頁(yè)面,類似于CPU 120的虛存視野。I/O橋路邏輯150向I/O設(shè)備135、140、145呈現(xiàn)這個(gè)視野。在其他實(shí)施例中,I/O控制器153和固件165向I/O設(shè)備135、140、145呈現(xiàn)這個(gè)視野。為了維持這個(gè)視野,TCE表175中的若干表目(圖1中未顯示)將數(shù)據(jù)102的塊104映射到I/O虛存頁(yè)面152。所以,I/O設(shè)備135、140、145可以通過引用虛擬頁(yè)面152而引用數(shù)據(jù)102,無(wú)論數(shù)據(jù)的實(shí)際位置在何處,換言之,無(wú)論哪個(gè)物理頁(yè)面115可能當(dāng)前正存儲(chǔ)著此數(shù)據(jù)。
I/O橋路130提供了邏輯150,它介于總線125和總線180之間??偩€180上的請(qǐng)求從I/O設(shè)備進(jìn)入,帶有虛擬地址以反映I/O設(shè)備虛存152。地址轉(zhuǎn)換邏輯157有效地訪問TCE表175(以I/O設(shè)備虛擬頁(yè)面的次序保存)以確定應(yīng)當(dāng)應(yīng)用于總線125的物理頁(yè)面地址,以便訪問來(lái)自總線180的存儲(chǔ)器請(qǐng)求所關(guān)聯(lián)的正確物理頁(yè)面115。
每臺(tái)I/O適配器135、140、145都能夠模擬數(shù)以千計(jì)的虛擬I/O適配器。每個(gè)虛擬適配器都是I/O適配器的邏輯表達(dá),這些I/O適配器的行為獨(dú)立于其他的虛擬適配器,仿佛每個(gè)虛擬適配器都是其自己獨(dú)立的物理I/O適配器。
I/O適配器146包括三個(gè)虛擬適配器180、182和184。每個(gè)虛擬適配器都有其自己的隊(duì)列對(duì)。每個(gè)隊(duì)列對(duì)都包含發(fā)送工作隊(duì)列和接收工作隊(duì)列。發(fā)送工作隊(duì)列用于發(fā)送消息。接收工作隊(duì)列接收消息。
虛擬I/O適配器180包括隊(duì)列對(duì)186。虛擬I/O適配器182包括隊(duì)列對(duì)188。虛擬I/O適配器184包括隊(duì)列對(duì)190。
虛擬I/O適配器使用其隊(duì)列對(duì),以便在虛擬I/O適配器和DMA通道192之間發(fā)送和接收數(shù)據(jù)。在物理I/O適配器146之內(nèi)有多條DMA通道。每個(gè)虛擬I/O適配器都有其自己的隊(duì)列對(duì),用于為虛擬I/O適配器提供單獨(dú)的DMA通道。例如,隊(duì)列對(duì)186由虛擬I/O適配器180用于通過專用DMA通道194與總線147通信。隊(duì)列對(duì)188由虛擬I/O適配器182用于通過專用DMA通道196與總線147通信。隊(duì)列對(duì)190由虛擬I/O適配器184用于通過專用DMA通道198與總線147通信。
物理I/O適配器146也包括寄存器200。寄存器200是存儲(chǔ)器映射輸入/輸出(MMIO)寄存器,由包括在物理I/O適配器146之內(nèi)的虛擬I/O適配器使用。物理I/O適配器146通過保存主存110中寄存器200的狀態(tài)而實(shí)際使用寄存器200。對(duì)物理I/O適配器146的DMA操作必須能夠訪問寄存器200。如果禁用了訪問寄存器200的能力,就無(wú)法操作I/O適配器146。要是禁用了對(duì)物理I/O適配器146的DMA操作并且處理器試圖進(jìn)行指向物理I/O適配器146的MMIO操作,處理器將不能完成此MMIO操作,導(dǎo)致處理器中的出錯(cuò)條件。
不過在數(shù)據(jù)遷移時(shí),并非物理I/O適配器146中的全部DMA操作都需要禁用。DMA操作是兩種不同的類型之一數(shù)據(jù)訪問操作或管理服務(wù)操作。保存存儲(chǔ)器110中寄存器200狀態(tài)的過程是由I/O適配器146的DMA操作進(jìn)行的管理服務(wù)操作。為了能夠正確地遷移數(shù)據(jù),僅僅需要禁用數(shù)據(jù)訪問操作。在數(shù)據(jù)進(jìn)行遷移的同時(shí),管理服務(wù)操作必須能夠繼續(xù)操作,以便使I/O適配器繼續(xù)正常運(yùn)行。所以,本發(fā)明提供了一種方法、系統(tǒng)和產(chǎn)品,在物理I/O適配器中僅僅禁用數(shù)據(jù)訪問操作。禁用數(shù)據(jù)訪問操作時(shí),管理服務(wù)操作仍然可用。所以,在物理I/O適配器繼續(xù)正常運(yùn)行的同時(shí),數(shù)據(jù)能夠遷移。
參考圖2和圖3,以下是對(duì)數(shù)據(jù)遷移過程的說(shuō)明。圖2展示了根據(jù)本發(fā)明,從第一個(gè)物理頁(yè)面遷移數(shù)據(jù)之前,圖1中計(jì)算機(jī)系統(tǒng)的狀態(tài)實(shí)例。為了展示從物理頁(yè)面115的第一頁(yè)面遷移數(shù)據(jù)的實(shí)例,更加詳細(xì)地顯示了TCE表175以及許多物理頁(yè)面115和I/O虛存頁(yè)面152。具體地說(shuō),物理頁(yè)面115的各個(gè)頁(yè)面可以稱為115.1,115.2等。在所展示的實(shí)例中,來(lái)自頁(yè)面115.3的數(shù)據(jù)是被遷移目標(biāo)。從各臺(tái)I/O設(shè)備135、140、145的角度顯示了虛存頁(yè)面152。換言之,頁(yè)面的第一組152.1將要由第一I/O設(shè)備訪問,如磁盤135,頁(yè)面的第二組152.2將要由第二I/O設(shè)備訪問,如設(shè)備140,第三組152.3將要由第三I/O設(shè)備145訪問。
對(duì)TCE表175顯示了210、220、230部分以及每個(gè)部分中的具體表目210.1、210.2等。這些部分對(duì)應(yīng)于各自的第一、第二等I/O設(shè)備,如設(shè)備135、140、145。以這種方式,表175中定位了表目的部分表明可以訪問該表目對(duì)應(yīng)物理頁(yè)面的I/O設(shè)備。在所展示的實(shí)例中,目標(biāo)物理頁(yè)面115.3被第一I/O設(shè)備視為虛存頁(yè)面152.1.5,而被第三I/O設(shè)備視為虛存頁(yè)面152.3.2。根據(jù)表175的第二部分220中對(duì)頁(yè)面115.3表目缺失,管理程序170判定第二I/O設(shè)備沒有到頁(yè)面115.3的映射。因此,頁(yè)面115.3不受到第二I/O設(shè)備的訪問。
總結(jié)以上說(shuō)明,管理程序170通過在表175中發(fā)現(xiàn)物理頁(yè)面115.3的表目,已經(jīng)識(shí)別出可以訪問頁(yè)面115.3的I/O設(shè)備(以及不可訪問的I/O設(shè)備)。具體地說(shuō),管理程序170已經(jīng)判定第一I/O設(shè)備135和第三I/O設(shè)備145可以訪問頁(yè)面115.3。
當(dāng)DMA寫入的數(shù)據(jù)緩沖區(qū)156充滿時(shí),橋路130的硬件將它們自動(dòng)寫回。如果它們部分填充并等待后續(xù)DMA請(qǐng)求,或者填充它們或者引用不連續(xù)的地址范圍(表明DMA將不再填充緩沖區(qū)),那么它們是不定的。因此,在從一個(gè)物理頁(yè)面115移動(dòng)數(shù)據(jù)到另一個(gè)頁(yè)面之前,管理程序170清洗I/O數(shù)據(jù)緩沖區(qū)156。在本實(shí)例中,來(lái)自I/O數(shù)據(jù)緩沖區(qū)156選擇性地寫回物理頁(yè)面115.3。強(qiáng)制的寫回是為了清洗部分寫入的I/O緩沖區(qū)。
圖3展示了根據(jù)本發(fā)明,從第一個(gè)物理頁(yè)面遷移數(shù)據(jù)之后,圖1中計(jì)算機(jī)系統(tǒng)的狀態(tài)實(shí)例。一旦移動(dòng)了數(shù)據(jù),管理程序170就更新表175中的表目組。如圖所示,更新之后,表目210.4將虛擬頁(yè)面152.1.5指向新的物理頁(yè)面115.5,表目230.1將虛擬頁(yè)面152.3.5指向新的物理頁(yè)面115.5。
圖4A描繪了根據(jù)本發(fā)明的高層次流程圖,展示了將物理I/O適配器的操作模式設(shè)定為特定模式,以便僅僅禁用物理I/O適配器的數(shù)據(jù)訪問DMA能力,而不禁用管理服務(wù)操作,所以阻斷了對(duì)物理I/O適配器的全部數(shù)據(jù)訪問。過程開始于所示方框400,然后進(jìn)至方框402,它展示了判斷是否已經(jīng)做出阻斷全部數(shù)據(jù)訪問請(qǐng)求的判斷。如果已經(jīng)做出判斷,允許全部數(shù)據(jù)訪問請(qǐng)求,過程回到方框402。再次參考方框402,如果做出了阻斷全部數(shù)據(jù)訪問請(qǐng)求的判斷,過程進(jìn)至方框404,它描繪了在I/O控制器中設(shè)置模式位,以指示阻斷了全部數(shù)據(jù)訪問。然后過程回到方框402。
圖4B描繪了根據(jù)本發(fā)明的高層次流程圖,展示了將物理I/O適配器的操作模式設(shè)定為特定模式,以便恢復(fù)物理I/O適配器的數(shù)據(jù)訪問DMA能力,所以允許對(duì)物理I/O適配器的全部數(shù)據(jù)訪問。過程開始于所示方框406,然后進(jìn)至方框408,它展示了判斷是否恢復(fù)執(zhí)行全部數(shù)據(jù)訪問請(qǐng)求的能力。如果已經(jīng)做出判斷,不恢復(fù)執(zhí)行全部數(shù)據(jù)訪問請(qǐng)求的能力,過程回到方框408。再次參考方框408,如果做出了恢復(fù)執(zhí)行全部數(shù)據(jù)訪問請(qǐng)求的能力,過程進(jìn)至方框410,它描繪了在I/O控制器中設(shè)置模式位,以指示可以執(zhí)行全部數(shù)據(jù)訪問。然后過程回到方框408。
圖5描繪了根據(jù)本發(fā)明的高層次流程圖,展示了根據(jù)特定的物理I/O適配器的當(dāng)前模式處理I/O請(qǐng)求。過程開始于所示方框500,然后進(jìn)至方框502,它展示了I/O控制器為具體的物理I/O適配器獲得下一個(gè)I/O操作。通過為將要處理的下一個(gè)隊(duì)列對(duì)檢索下一個(gè)狀態(tài)塊而獲得下一個(gè)I/O操作。將要處理的下一個(gè)隊(duì)列對(duì)是所述具體的物理I/O適配器內(nèi)包括的隊(duì)列對(duì)。隨后,方框504展示了I/O控制器識(shí)別將要根據(jù)狀態(tài)塊進(jìn)行的工作類型。工作類型或者是數(shù)據(jù)訪問DMA操作,或者是管理服務(wù)DMA操作。每個(gè)狀態(tài)塊都包括將要根據(jù)此狀態(tài)塊進(jìn)行的工作類型標(biāo)志。因此,每個(gè)狀態(tài)塊都指明了此狀態(tài)塊將是數(shù)據(jù)訪問操作還是管理服務(wù)操作。
然后過程進(jìn)至方框506,它描述了I/O控制器檢驗(yàn)這個(gè)物理I/O適配器的模式位以確定其狀態(tài)。下一步,方框508展示了判斷模式位是否被設(shè)置。如果做出了模式位未被設(shè)置的判斷,過程就進(jìn)至方框510,它描述了I/O控制器處理由狀態(tài)塊定義的工作。如果模式位未被設(shè)置,則全部DMA操作都可用。因此,如果模式位未被設(shè)置,數(shù)據(jù)訪問以及管理服務(wù)操作都能夠進(jìn)行。然后過程回到方框502。
再次參考方框508,如果做出了模式位已被設(shè)置的判斷,過程就進(jìn)至方框512,它描述了判斷將執(zhí)行的工作是不是數(shù)據(jù)訪問。如果模式位已被設(shè)置,就不允許對(duì)這個(gè)物理I/O適配器進(jìn)行數(shù)據(jù)訪問。不過,即使模式位已被設(shè)置,也允許管理服務(wù)操作。
如果做出此工作不是數(shù)據(jù)訪問的判斷,即它是管理服務(wù)操作,過程就回到方框510,它描述了I/O控制器處理由狀態(tài)塊定義的工作。因此,即使模式位已被設(shè)置,如果此工作是管理服務(wù)操作,此工作也將進(jìn)行。
再次參考方框512,如果做出此工作是數(shù)據(jù)訪問的判斷,過程就進(jìn)至方框514,它描述了判斷是否啟用了I/O控制器阻斷DMA數(shù)據(jù)訪問。如果做出已啟用了I/O控制器阻斷DMA數(shù)據(jù)訪問的判斷,過程就進(jìn)至方框516,它描述了此時(shí)將狀態(tài)塊放回存儲(chǔ)器而不處理狀態(tài)塊。通過將狀態(tài)塊放回存儲(chǔ)器而不處理狀態(tài)塊,此時(shí)不進(jìn)行這次數(shù)據(jù)訪問。在后來(lái)一旦對(duì)這個(gè)物理I/O適配器再次啟用了數(shù)據(jù)訪問能力時(shí),這個(gè)狀態(tài)塊將得到處理。然后過程回到方框502。
再次參考方框514,如果做出未啟用I/O控制器阻斷DMA數(shù)據(jù)訪問的判斷,過程就回到方框510,它描述了I/O控制器處理狀態(tài)塊的工作。然后過程回到方框502。
圖6是包括本發(fā)明的邏輯分區(qū)平臺(tái)的框圖。數(shù)據(jù)處理系統(tǒng)620包括邏輯分區(qū)平臺(tái)650。平臺(tái)650包括分區(qū)的硬件652、分區(qū)管理固件——也稱為管理程序654以及分區(qū)656-659。操作系統(tǒng)661-664存在于分區(qū)656-659之內(nèi)。操作系統(tǒng)661-664可以是單一操作系統(tǒng)的多個(gè)副本,也可以是在平臺(tái)650上同時(shí)運(yùn)行的多個(gè)多機(jī)種操作系統(tǒng)。
分區(qū)硬件652包括多個(gè)SMT可用處理器665-668、多個(gè)系統(tǒng)存儲(chǔ)器單元670-673、多個(gè)輸入/輸出(I/O)適配器674-681以及存儲(chǔ)器單元682。處理器665-668、存儲(chǔ)器單元670-673、NVRAM存儲(chǔ)器683以及I/O適配器674-681中的每一個(gè)都可以分配給多個(gè)分區(qū)656-659之一。分區(qū)硬件652也包括服務(wù)處理器690。非易失性存儲(chǔ)器器件691,比如NVRAM器件,包括在服務(wù)處理器690之內(nèi)。
分區(qū)管理固件(管理程序)654執(zhí)行許多功能和服務(wù),使分區(qū)656-659創(chuàng)建和實(shí)施邏輯分區(qū)平臺(tái)650的分區(qū)。管理程序654是固件實(shí)施的虛擬機(jī),與基礎(chǔ)硬件相同。固件是存儲(chǔ)器芯片中存儲(chǔ)的“軟件”,保存其內(nèi)容而無(wú)須電力,比如只讀存儲(chǔ)器(ROM)、可編程存儲(chǔ)器(PROM)、可擦除可編程ROM(EPROM)、電擦除可編程ROM(EEPROM)、非易失性隨機(jī)存儲(chǔ)器(非易失性RAM)。因此,管理程序654通過實(shí)際使用邏輯分區(qū)平臺(tái)250的全部硬件資源,允許同時(shí)執(zhí)行獨(dú)立OS影像661-664。管理程序654能夠以獨(dú)占模式通過I/O適配器674-681把I/O設(shè)備連接到單一虛擬機(jī),以便被OS影像661-664之一使用。
硬件管理控制臺(tái)(HMC)680可以連接到數(shù)據(jù)處理系統(tǒng)620中的服務(wù)處理器690。HMC 680是單獨(dú)的計(jì)算機(jī)系統(tǒng),它連接到服務(wù)處理器690并且可被用戶用于通過服務(wù)處理器690控制系統(tǒng)620的多種功能。
重要的是注意,雖然已經(jīng)在全功能數(shù)據(jù)處理系統(tǒng)的環(huán)境中介紹了本發(fā)明,但是本領(lǐng)域的普通技術(shù)人員將會(huì)認(rèn)同,本發(fā)明的過程能夠以計(jì)算機(jī)可讀介質(zhì)上指令的形式及多種形式發(fā)行,并且無(wú)論進(jìn)行發(fā)行時(shí)實(shí)際所用信號(hào)承載介質(zhì)的具體類型如何,本發(fā)明都能夠等同地應(yīng)用。計(jì)算機(jī)可讀介質(zhì)的實(shí)例包括可記錄型介質(zhì),比如軟盤、硬盤驅(qū)動(dòng)器、RAM、CD-ROM、DVD-ROM,以及傳輸型媒介,比如使用傳輸形式的數(shù)字和模擬通信鏈接、有線或無(wú)線通信鏈接,比如射頻和光波傳輸。計(jì)算機(jī)可讀介質(zhì)可以采取編碼格式的形式,在具體的數(shù)據(jù)處理系統(tǒng)中解碼后實(shí)際使用。
已經(jīng)對(duì)本發(fā)明做出的說(shuō)明是為了展示和說(shuō)明之用,并非試圖面面俱到或?qū)⒈景l(fā)明局限在所公開的形式。對(duì)于本領(lǐng)域的普通技術(shù)人員,許多修改和變化將是顯而易見的。所選擇和介紹的實(shí)施例是為了最好地講解本發(fā)明的原理和可行的應(yīng)用,以及使本領(lǐng)域的其他普通技術(shù)人員能夠理解本發(fā)明,以便使具有多種修改的多種實(shí)施例適于所期望的具體用途。
權(quán)利要求
1.一種在計(jì)算機(jī)系統(tǒng)中通過在物理I/O適配器內(nèi)暫時(shí)禁用所選定的DMA操作來(lái)遷移受到DMA訪問的數(shù)據(jù)頁(yè)面的方法,所述方法包括判斷是否禁用所述物理I/O適配器的數(shù)據(jù)訪問DMA能力;根據(jù)是否禁用數(shù)據(jù)訪問DMA能力的判斷結(jié)果,采用模式位將所述物理I/O適配器的操作模式設(shè)置為特定模式;以及當(dāng)設(shè)置所述模式位時(shí),僅僅禁用所述物理I/O適配器的數(shù)據(jù)訪問DMA能力,當(dāng)禁用所述物理I/O適配器的所述數(shù)據(jù)訪問DMA能力時(shí),管理服務(wù)操作繼續(xù)由所述物理I/O適配器執(zhí)行。
2.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括接收將要執(zhí)行的I/O請(qǐng)求;判斷所述I/O請(qǐng)求是否為數(shù)據(jù)訪問請(qǐng)求;判斷所述模式位的當(dāng)前狀態(tài);響應(yīng)所述I/O請(qǐng)求是數(shù)據(jù)請(qǐng)求以及設(shè)置了所述模式位的判斷結(jié)果,延遲處理所述I/O請(qǐng)求。
3.根據(jù)權(quán)利要求2的方法,進(jìn)一步包括響應(yīng)所述I/O請(qǐng)求不是數(shù)據(jù)請(qǐng)求或者未設(shè)置所述模式位的判斷結(jié)果,處理所述I/O請(qǐng)求。
4.根據(jù)權(quán)利要求2的方法,進(jìn)一步包括通過將所述I/O請(qǐng)求放回等待處理的處理隊(duì)列,延遲處理所述I/O請(qǐng)求。
5.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括將單獨(dú)的模式位與多個(gè)物理I/O適配器的每一個(gè)相關(guān)聯(lián);通過采用與所述多個(gè)物理I/O適配器中的所述一個(gè)相關(guān)聯(lián)的所述模式位,以獨(dú)立于所述多個(gè)物理I/O適配器的其他適配器的方式對(duì)所述多個(gè)物理I/O適配器的每一個(gè)禁用數(shù)據(jù)訪問。
6.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括采用所述模式位設(shè)置所述物理I/O適配器的所述操作模式,所述模式位包括在I/O控制器中;由所述I/O控制器接收將要執(zhí)行的所述I/O請(qǐng)求;由所述I/O控制器判斷所述I/O請(qǐng)求是否為數(shù)據(jù)訪問請(qǐng)求;由所述I/O控制器判斷所述模式位的當(dāng)前狀態(tài);以及響應(yīng)所述I/O請(qǐng)求是數(shù)據(jù)請(qǐng)求以及設(shè)置了所述模式位的判斷結(jié)果,由所述I/O控制器延遲處理所述I/O請(qǐng)求。
7.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括判斷從一個(gè)物理頁(yè)面向另一個(gè)物理頁(yè)面遷移數(shù)據(jù)頁(yè)面;響應(yīng)遷移數(shù)據(jù)頁(yè)面的判斷結(jié)果,判斷禁用所述物理I/O適配器的數(shù)據(jù)訪問DMA能力;以及響應(yīng)禁用數(shù)據(jù)訪問DMA能力的判斷結(jié)果,設(shè)置所述模式位。
8.一種在計(jì)算機(jī)系統(tǒng)中通過在物理I/O適配器內(nèi)暫時(shí)禁用所選定的DMA操作來(lái)遷移受到DMA訪問的數(shù)據(jù)頁(yè)面的裝置,所述裝置包括所述計(jì)算機(jī)系統(tǒng)包括CPU,用于執(zhí)行代碼以判斷是否禁用所述物理I/O適配器的數(shù)據(jù)訪問DMA能力;所述CPU執(zhí)行的代碼根據(jù)是否禁用數(shù)據(jù)訪問DMA能力的判斷結(jié)果,采用模式位將所述物理I/O適配器的操作模式設(shè)置為特定模式;以及當(dāng)設(shè)置所述模式位時(shí),僅僅禁用所述物理I/O適配器的數(shù)據(jù)訪問DMA能力,當(dāng)禁用所述物理I/O適配器的所述數(shù)據(jù)訪問DMA能力時(shí),管理服務(wù)操作繼續(xù)由所述物理I/O適配器執(zhí)行。
9.根據(jù)權(quán)利要求8的裝置,進(jìn)一步包括將要執(zhí)行的I/O請(qǐng)求;所述CPU執(zhí)行的代碼判斷所述I/O請(qǐng)求是否為數(shù)據(jù)訪問請(qǐng)求;所述CPU執(zhí)行的代碼判斷所述模式位的當(dāng)前狀態(tài);響應(yīng)所述I/O請(qǐng)求是數(shù)據(jù)請(qǐng)求以及設(shè)置了所述模式位的判斷結(jié)果,所述CPU執(zhí)行的代碼延遲處理所述I/O請(qǐng)求。
10.根據(jù)權(quán)利要求9的裝置,進(jìn)一步包括響應(yīng)所述I/O請(qǐng)求不是數(shù)據(jù)請(qǐng)求或者未設(shè)置所述模式位的判斷結(jié)果,所述CPU執(zhí)行的代碼處理所述I/O請(qǐng)求。
11.根據(jù)權(quán)利要求9的裝置,進(jìn)一步包括通過將所述I/O請(qǐng)求放回等待處理的處理隊(duì)列,所述CPU執(zhí)行的代碼延遲處理所述I/O請(qǐng)求。
12.根據(jù)權(quán)利要求8的裝置,進(jìn)一步包括與多個(gè)物理I/O適配器的每一個(gè)相關(guān)聯(lián)的單獨(dú)模式位;所述單獨(dú)模式位用于通過采用與所述多個(gè)物理I/O適配器中的所述一個(gè)相關(guān)聯(lián)的所述模式位,以獨(dú)立于所述多個(gè)物理I/O適配器的其他適配器的方式對(duì)所述多個(gè)物理I/O適配器的每一個(gè)禁用數(shù)據(jù)訪問。
13.根據(jù)權(quán)利要求8的裝置,進(jìn)一步包括所述模式位用于設(shè)置所述物理I/O適配器的所述操作模式,所述模式位包括在I/O控制器中;所述I/O控制器用于接收將要執(zhí)行的所述I/O請(qǐng)求;所述I/O控制器用于判斷所述I/O請(qǐng)求是否為數(shù)據(jù)訪問請(qǐng)求;所述I/O控制器用于判斷所述模式位的當(dāng)前狀態(tài);以及響應(yīng)所述I/O請(qǐng)求是數(shù)據(jù)請(qǐng)求以及設(shè)置了所述模式位的判斷結(jié)果,所述I/O控制器用于延遲處理所述I/O請(qǐng)求。
14.根據(jù)權(quán)利要求8的裝置,進(jìn)一步包括所述CPU執(zhí)行的代碼判斷從一個(gè)物理頁(yè)面向另一個(gè)物理頁(yè)面遷移數(shù)據(jù)頁(yè)面;響應(yīng)遷移數(shù)據(jù)頁(yè)面的判斷結(jié)果,所述CPU執(zhí)行的代碼判斷禁用所述物理I/O適配器的數(shù)據(jù)訪問DMA能力;以及響應(yīng)禁用數(shù)據(jù)訪問DMA能力的判斷結(jié)果,設(shè)置所述模式位。
15.一種計(jì)算機(jī)程序產(chǎn)品,通過在物理I/O適配器內(nèi)暫時(shí)禁用所選定的DMA操作,遷移受到DMA訪問的數(shù)據(jù)頁(yè)面,所述產(chǎn)品包括若干指令,用于實(shí)施以上方法權(quán)利要求中的任何方法。
全文摘要
在數(shù)據(jù)處理系統(tǒng)中,所公開的方法、裝置和計(jì)算機(jī)程序產(chǎn)品通過暫時(shí)禁用物理I/O適配器內(nèi)所選定的DMA操作來(lái)遷移受到DMA訪問的數(shù)據(jù)頁(yè)面。對(duì)是否禁用物理I/O適配器的數(shù)據(jù)訪問DMA能力做出判斷。物理I/O適配器的一種操作模式為根據(jù)是否禁用數(shù)據(jù)訪問DMA能力的判斷結(jié)果,采用模式位設(shè)定特定的模式。當(dāng)設(shè)置所述模式位時(shí),僅僅禁用物理I/O適配器的數(shù)據(jù)訪問DMA能力。禁用物理I/O適配器的數(shù)據(jù)訪問DMA能力時(shí),管理服務(wù)操作由所述物理I/O適配器繼續(xù)進(jìn)行。
文檔編號(hào)G06F13/20GK1815462SQ20061000240
公開日2006年8月9日 申請(qǐng)日期2006年1月27日 優(yōu)先權(quán)日2005年2月3日
發(fā)明者理查德·L.·阿恩迪特, 戴維·F.·克拉多克, 托馬斯·A.·格里格, 唐納德·W.·施密特 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司