專利名稱:信息處理裝置、進(jìn)程控制方法及其計(jì)算機(jī)程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息處理裝置、進(jìn)程控制(process control)方法和計(jì)算機(jī)程序,具體地說本發(fā)明涉及這樣的信息處理裝置、進(jìn)程控制方法和計(jì)算機(jī)程序,通過它們來改善對于在下述結(jié)構(gòu)中的邏輯處理器的資源的可訪問性,在所述結(jié)構(gòu)中,以多個邏輯處理器共享在信息處理裝置中可用的資源的方式來執(zhí)行各種數(shù)據(jù)處理。
背景技術(shù):
在具有運(yùn)行在單個系統(tǒng)中的多個操作系統(tǒng)(OS)的多OS系統(tǒng)中,可通過相應(yīng)的OS來執(zhí)行不同的進(jìn)程,其中,通過依時間順序地轉(zhuǎn)換對于系統(tǒng)公用的硬件——諸如CPU和存儲器等——的使用來進(jìn)行處理。
例如通過分區(qū)管理軟件來執(zhí)行要由多個OS分別執(zhí)行的進(jìn)程(任務(wù))的調(diào)度。例如,如果存在在系統(tǒng)中共存的兩個操作系統(tǒng)OS(α)和OS(β),并且OS(α)的進(jìn)程被設(shè)置為分區(qū)A以及OS(β)的進(jìn)程被設(shè)置為分區(qū)B,則所述分區(qū)管理軟件確定分區(qū)A和分區(qū)B的執(zhí)行調(diào)度,并且通過按照所確定的調(diào)度分配硬件資源而執(zhí)行所述OS的進(jìn)程。
在下面的現(xiàn)有技術(shù)列表中的參考文獻(xiàn)(1)介紹了一種涉及在多OS系統(tǒng)中的任務(wù)管理的公知技術(shù)。參考文獻(xiàn)(1)公開了一種任務(wù)調(diào)度技術(shù),用于在多個OS的每個所執(zhí)行的任務(wù)管理中優(yōu)先地執(zhí)行具有較高的緊急性的進(jìn)程。
如上所述,各種數(shù)據(jù)處理的主體被設(shè)置為分區(qū)。具體地說是將邏輯分區(qū)設(shè)置為接收在系統(tǒng)內(nèi)的資源的分配的主體,并且向所述邏輯分區(qū)分配各種資源,包括物理處理器單元的可使用時間、虛擬地址空間和存儲器空間,以便可以執(zhí)行使用所分配的資源的進(jìn)程。對于每個邏輯分區(qū),設(shè)置對應(yīng)于任何物理處理器的邏輯處理器,并且執(zhí)行對應(yīng)于所述邏輯處理器的數(shù)據(jù)處理。應(yīng)當(dāng)注意,在邏輯處理器和物理處理器之間不總是一一對應(yīng)的;可能存在多個物理處理器與單個邏輯處理器相關(guān)聯(lián)或單個物理處理器與多個邏輯處理器相關(guān)聯(lián)的情況。
當(dāng)并行地執(zhí)行使用邏輯處理器的多個處理時,按照一調(diào)度由所述多個邏輯處理器使用物理處理器。即,多個邏輯處理器通過時間共享來使用物理處理器。
現(xiàn)在讓我們考慮包括一主處理器和多個子處理器的系統(tǒng)。
例如,讓我們考慮當(dāng)向圖1中所示的單個物理子處理器分配單個邏輯子處理器時的訪問處理,或具體地說,當(dāng)邏輯子處理器A專用地使用物理子處理器1并且邏輯子處理器B專用地使用物理子處理器2時對于邏輯子處理器A的訪問處理。
例如,讓我們假定與一已經(jīng)被設(shè)置的邏輯子處理器A的邏輯分區(qū)相關(guān)聯(lián)的OS試圖訪問邏輯子處理器A。由邏輯子處理器A占用的物理處理器1保存的MMIO(存儲器映射的輸入/輸出)寄存器信息、本地存儲區(qū)域等被映射到與邏輯子處理器A相關(guān)聯(lián)的邏輯分區(qū)的地址空間。這樣被映射的區(qū)域與專用的物理子處理器1相關(guān)聯(lián)。因此與邏輯分區(qū)相關(guān)聯(lián)的OS可以總是訪問邏輯子處理器A。通過獲得對于邏輯子處理器A的訪問,有可能獲得對應(yīng)于邏輯子處理器A的各種信息,諸如邏輯存儲信息。
注意MIMO(存儲器映射的輸入/輸出)是用于通過存儲器映射而控制硬件的輸入/輸出控制機(jī)構(gòu),它通過使用特定的存儲器位置經(jīng)由寫入處理或讀取處理而完成硬件控制。
另一方面,讓我們假定例如通過與被分配到如圖2中所示的單個物理子處理器的多個邏輯子處理器的時間共享來執(zhí)行處理。然后,和在圖2中的訪問A一樣在邏輯子處理器A使用物理子處理器1時,與邏輯分區(qū)相關(guān)聯(lián)的OS可以以與上述的處理相同的方式來訪問邏輯子處理器A。但是,當(dāng)邏輯子處理器A與在圖2中的訪問B一樣不使用邏輯子處理器1時,不可能執(zhí)行對于邏輯子處理器A的訪問,因?yàn)榇藭r邏輯子處理器A不使用任何物理子處理器,因此在與邏輯子處理器A相關(guān)聯(lián)的邏輯分區(qū)的地址空間中不映射物理子處理器的MMIO(存儲器映射的輸入/輸出)寄存器信息、邏輯存儲區(qū)域等。在這種情況下,需要邏輯子處理器A保持等待,直到按照時間共享而使用物理子處理器的時間到達(dá),因此導(dǎo)致了延遲數(shù)據(jù)處理的問題。
現(xiàn)有技術(shù)列表(1)日本專利申請公開NO.2003-345612。
發(fā)明內(nèi)容
本發(fā)明解決了上述問題,其總的目的是提供一種信息處理裝置、進(jìn)程控制方法和計(jì)算機(jī)程序,用于改善在使用共享在信息處理裝置中的資源的多個邏輯處理器來執(zhí)行各種數(shù)據(jù)處理結(jié)構(gòu)中的邏輯處理器對資源的訪問性來實(shí)現(xiàn)有效的數(shù)據(jù)處理。
本發(fā)明的一個實(shí)施例涉及信息處理裝置。這種裝置包括控制OS執(zhí)行單元,所述控制OS執(zhí)行將多個邏輯處理器通過時間共享而與物理處理器相關(guān)聯(lián)的處理;以及,客戶OS執(zhí)行單元,所述客戶OS與用作邏輯處理器的邏輯分區(qū)相關(guān)聯(lián),并且是使用邏輯處理器的主體,其中,所述客戶OS執(zhí)行單元被配置來執(zhí)行數(shù)據(jù)處理以便在其中物理處理器被分配到對應(yīng)于所述客戶OS的邏輯處理器的活動狀態(tài)中使用存儲器映射的輸入/輸出(MMIO)寄存器,以及其中,所述控制OS執(zhí)行單元被配置來在其中物理處理器被分配到所述邏輯處理器的活動狀態(tài)中和在其中沒有物理處理器被分配到所述邏輯處理器的非活動狀態(tài)中在存儲器中存儲對應(yīng)于與所述客戶OS對應(yīng)的所述邏輯處理器的MMIO寄存器的拷貝信息。
所述控制OS執(zhí)行單元可以被配置來在存儲器中存儲MMIO寄存器信息的拷貝,其中,所述物理處理器不重寫所述MMIO寄存器信息。
所述控制OS執(zhí)行單元可以被配置來在存儲器中存儲MMIO寄存器信息的拷貝,其中,所述物理處理器不重寫所述MMIO寄存器信息,并且所述控制OS執(zhí)行單元也被配置來在存儲器中存儲MMIO寄存器信息的拷貝,其中,所述控制OS能夠檢測已經(jīng)被重寫的MMIO寄存器信息。
當(dāng)通過所述物理處理器執(zhí)行MMIO寄存器信息的重寫時,所述控制OS執(zhí)行單元可以被配置來按照MMIO寄存器信息而更新在存儲器中存儲的MMIO寄存器的拷貝信息。
所述客戶OS執(zhí)行單元可以被配置來經(jīng)由所述控制OS設(shè)置的客戶OS編程接口(GOI)訪問在存儲器中存儲的MMIO寄存器的拷貝信息。
所述客戶OS執(zhí)行單元可以被配置來在有訪問在存儲器中存儲的MMIO寄存器的拷貝信息的請求時執(zhí)行對于所述控制OS的系統(tǒng)呼叫,以及其中所述控制OS執(zhí)行單元可以被配置來將客戶OS編程接口(GOI)設(shè)置到所述客戶OS的活動狀態(tài)。
本發(fā)明的另一個實(shí)施例涉及一種進(jìn)程控制方法,該方法是一種用于控制在信息處理裝置中的處理的方法,所述信息處理裝置通過將多個邏輯處理器經(jīng)由時間共享而與物理處理器相關(guān)聯(lián)來執(zhí)行數(shù)據(jù)處理,所述方法包括通過控制OS的執(zhí)行來執(zhí)行將對應(yīng)于作為使用邏輯處理器的主體的客戶OS的邏輯處理器通過時間共享而與物理處理器相關(guān)聯(lián)的處理;執(zhí)行數(shù)據(jù)處理,以便在其中將物理處理器分配到對應(yīng)于客戶OS的邏輯處理器的活動狀態(tài)中在客戶OS中使用存儲器映射的輸入/輸出(MMIO)寄存器;以及通過所述控制OS的執(zhí)行來執(zhí)行處理,以便在其中將物理處理器分配到所述邏輯處理器的活動狀態(tài)中和在其中沒有物理處理器被分配到所述邏輯處理器的非活動狀態(tài)中在存儲器中存儲對應(yīng)于與所述客戶OS對應(yīng)的所述邏輯處理器的所述MMIO寄存器的拷貝信息。
上述的構(gòu)成元件的任意組合和以方法、裝置、系統(tǒng)、程序、記錄介質(zhì)等的形式實(shí)施本發(fā)明的方式也可以有效地作為本發(fā)明的實(shí)施例或被本發(fā)明的實(shí)施例包含。
通過下面結(jié)合附圖詳細(xì)說明,將容易理解本發(fā)明的上述和其他特征和優(yōu)點(diǎn)。
現(xiàn)在結(jié)合附圖來僅僅通過示例說明實(shí)施例,所述附圖是例證性的,而不是限定性的,并且其中,在幾個附圖中,相同的元件被標(biāo)注相同的標(biāo)號,其中圖1圖解了當(dāng)邏輯處理器專用一個物理處理器時對于所述邏輯處理器的訪問處理。
圖2圖解了用于將邏輯處理器通過時間共享而與物理處理器相關(guān)聯(lián)的另一個處理。
圖3圖解了按照本發(fā)明的一個實(shí)施例的信息處理裝置的結(jié)構(gòu)的示例。
圖4圖解了處理器模塊的結(jié)構(gòu)的一個示例。
圖5圖解了按照本發(fā)明的一個實(shí)施例的在信息處理裝置中的操作系統(tǒng)的結(jié)構(gòu)。
圖6圖解了如何將邏輯處理器與物理處理器相關(guān)聯(lián)。
圖7圖解了由客戶OS進(jìn)行的MMIO訪問處理。
圖8圖解了可以由客戶OS引用的區(qū)域和設(shè)置上下文表格的示例。
圖9圖解了與客戶OS相關(guān)聯(lián)的邏輯分區(qū)地址空間和可以被引用到客戶OS的信息。
圖10圖解了由客戶OS和控制OS執(zhí)行的處理。
圖11圖解了客戶OS的狀態(tài)過渡(transition)和MMIO訪問處理。
圖12圖解了由客戶OS進(jìn)行的MMIO訪問處理。
圖13圖解了由客戶OS通過客戶OS編程接口(GOI)而進(jìn)行的MMIO訪問處理。
圖14圖解了客戶OS的狀態(tài)過渡和通過客戶OS編程接口(GOI)的MMIO訪問處理。
圖15圖解了在存儲器中設(shè)置陰影的情況下客戶OS的狀態(tài)過渡和通過客戶OS編程接口(GOI)的MMIO訪問處理。
圖16示出了用于在存儲在中設(shè)置陰影的情況和不設(shè)置陰影的情況之間比較的MMIO訪問處理時間。
具體實(shí)施例方式
現(xiàn)在結(jié)合優(yōu)選實(shí)施例來說明本發(fā)明。這不意欲限制本發(fā)明的范圍,而是例示本發(fā)明。
結(jié)合附圖,以下詳細(xì)說明按照本發(fā)明的實(shí)施例的信息處理裝置、進(jìn)程控制方法和計(jì)算機(jī)程序。
結(jié)合圖3,現(xiàn)在說明關(guān)于按照本發(fā)明的一個實(shí)施例的信息處理裝置的硬件的示例。處理器模塊101是由多個處理單元組成的模塊,并且通過遵循來自在ROM(只讀存儲器)104、HDD 123等中存儲的程序的指令而按照各種類型程序來執(zhí)行數(shù)據(jù)處理,所述程序包括OS(操作系統(tǒng))和與OS兼容的應(yīng)用程序。后面將參照圖4對處理器模塊101詳細(xì)說明。
圖形引擎102產(chǎn)生要被輸出到構(gòu)成輸出單元122的顯示器的數(shù)據(jù),在所述顯示器顯示所述數(shù)據(jù)。圖形引擎102執(zhí)行例如三維繪制(3-D rendering)處理。諸如DRAM之類的主存儲器103存儲要在處理器模塊101上執(zhí)行的程序、在其執(zhí)行中適當(dāng)?shù)馗淖兊膮?shù)等。這些組件經(jīng)由主機(jī)總線(host bus)111而相互連接,所述主機(jī)總線111由CPU總線等構(gòu)成。
主機(jī)總線111經(jīng)由橋105連接到外部總線112,諸如PCI(外設(shè)部件互連/接口)總線。橋105執(zhí)行在主機(jī)總線111、外部總線112、控制器106、存儲卡107和其他器件之間的數(shù)據(jù)輸入和輸出的控制。
輸入單元121輸入來自由用戶操作的、諸如鍵盤和指示器件之類的輸入器件的輸入信息。輸出單元122包括圖像輸出單元和音頻輸出單元,所述圖像輸出單元諸如LCD(液晶顯示器)和CRT(陰極射線管),所述音頻輸出單元諸如揚(yáng)聲器。
HDD(硬盤驅(qū)動器)123具有內(nèi)置的硬盤,驅(qū)動該硬盤并且記錄或再現(xiàn)由處理器模塊101執(zhí)行的程序或信息。
驅(qū)動器124讀出在所安裝的可移動記錄介質(zhì)127中記錄的數(shù)據(jù)或程序,所述可移動記錄介質(zhì)127諸如磁盤、光盤、磁光盤或半導(dǎo)體存儲器。并且驅(qū)動器124向經(jīng)由接口113、外部總線112、橋105和主機(jī)總線111而連接的主存儲器(DRAM)103提供數(shù)據(jù)或程序。
連接端口125是連接外部連接器件128的端口,并且具有諸如USB和IEEE 1394之類的連接器。連接端口125經(jīng)由接口113、外部總線112、橋105和主機(jī)總線111而與處理器模塊101等連接。連接到網(wǎng)絡(luò)的通信單元126發(fā)送從處理器模塊101、HDD 123等提供的數(shù)據(jù),并且接收外部提供的數(shù)據(jù)。
接著,將結(jié)合圖4來說明處理器模塊的結(jié)構(gòu)的示例。如圖4中所示,處理器模塊200包括主處理器組201,所述主處理器組201由多個主處理器和多個子處理器組202a到202n組成,所述多個子處理器組202a到202n每個由多個子處理器組成。所述主處理器組的每個裝備有存儲器控制器和輔助高速緩沖存儲器,并且所述子處理器組的每個也裝備有存儲器控制器和輔助高速緩沖存儲器。每個處理器組201和202a到202n具有例如8個處理器單元,并且那些處理器單元通過交叉架構(gòu)或分組交換網(wǎng)絡(luò)來連接。根據(jù)來自主處理器組201的主處理器的指令來選擇所述子處理器202a到202n的一個或多個,以便執(zhí)行預(yù)定的程序。
按照本發(fā)明的一個實(shí)施例的一種裝置具有多個物理子處理器,并且所述軟件通過時間共享來復(fù)用所述物理子處理器,以便提供具有一邏輯處理器或多個邏輯處理器的OS。用于控制子處理器的一個控制OS在主處理器工作。注意,即使當(dāng)一個裝置沒有任何可以從主處理器和子處理器之間發(fā)現(xiàn)的主從關(guān)系、并且特別是它可以被應(yīng)用到在處理器之間沒有主從關(guān)系的多處理器機(jī)器時,在本發(fā)明中實(shí)現(xiàn)的方法也可被投入實(shí)際使用。也應(yīng)注意,與“客戶OS”相反,控制OS經(jīng)常被稱為“主機(jī)OS”,因此將在本專利說明書中可互換地使用控制OS和主機(jī)OS。
位于每個處理器組中的存儲器流控制器執(zhí)行對圖3中所示的主存儲器103的數(shù)據(jù)輸入和從圖3中所示的主存儲器103的數(shù)據(jù)輸出的控制。所述輔助高速緩沖存儲器被用作對于要在每個處理器組中處理的數(shù)據(jù)的存儲區(qū)域。
現(xiàn)在結(jié)合圖5來說明按照本發(fā)明的一個實(shí)施例的信息處理裝置中的操作系統(tǒng)(OS)的結(jié)構(gòu)。按照本實(shí)施例的信息處理裝置是多OS結(jié)構(gòu),因此多個操作系統(tǒng)(OS)共存。如圖5中所示,所述信息處理裝置具有多個操作系統(tǒng)(OS),它們具有邏輯分層結(jié)構(gòu)。
結(jié)合圖5,在下層中提供控制OS 301,并且在上層中設(shè)置多個客戶OS 302和303和系統(tǒng)控制OS 304。所述控制OS 301與系統(tǒng)控制OS 304一起實(shí)現(xiàn)邏輯分區(qū),所述邏輯分區(qū)作為要在結(jié)合圖3和圖4中所述的處理器模塊中執(zhí)行的每個進(jìn)程的可執(zhí)行單元,并且所述控制OS 301執(zhí)行向每個邏輯分區(qū)分配硬件資源(主處理器、子處理器、存儲器、器件等)的處理。
客戶OS 302和303可以是各種類型的OS,諸如游戲OS、Windows(注冊商標(biāo))和Linux(注冊商標(biāo)),并且客戶OS 302和303在控制OS 301的控制下工作。雖然在圖5中示出了兩個客戶OS、即客戶OS 302和303,但是可以任意地設(shè)置客戶OS的數(shù)量。
客戶OS 302和303工作在由控制OS 301和系統(tǒng)控制OS 304設(shè)置的相應(yīng)的邏輯分區(qū)中,并且使用被分配到相應(yīng)的邏輯分區(qū)的、諸如主處理器、子處理器、存儲器和其他器件的硬件資源來執(zhí)行各種類型的數(shù)據(jù)處理。
例如,客戶OS A 302通過使用被分配到由控制OS 301和系統(tǒng)控制OS 304設(shè)置的邏輯分區(qū)2的、諸如主處理器、子處理器、存儲器和其他器件的硬件資源來執(zhí)行與客戶OS A 302兼容的應(yīng)用程序305??蛻鬙S B 303通過使用被分配到邏輯分區(qū)n的、諸如主處理器、子處理器、存儲器和其他器件的硬件資源來執(zhí)行與客戶OS B 303兼容的應(yīng)用程序306??刂芆S 301提供客戶OS編程接口來作為用于執(zhí)行客戶OS所需要的接口。
系統(tǒng)控制OS 304激活包含邏輯分區(qū)管理信息的系統(tǒng)控制程序307,并且它與控制OS 301一起根據(jù)系統(tǒng)控制程序307來執(zhí)行操作系統(tǒng)的控制。所述系統(tǒng)控制程序307是通過使用系統(tǒng)控制編程接口來控制系統(tǒng)的策略的程序。從控制OS 301向系統(tǒng)控制OS 304提供所述系統(tǒng)控制編程接口。系統(tǒng)控制程序307扮演提供通過程序的靈活定制所需要的部件的角色。例如,所述角色包括在資源的分配中設(shè)置上限值。
系統(tǒng)控制程序307可以通過使用系統(tǒng)控制編程接口來控制系統(tǒng)的行為。例如,可以新建立一邏輯分區(qū),然后可以在這個邏輯分區(qū)中啟動新的客戶OS。在多個OS運(yùn)行的系統(tǒng)中,這樣的客戶OS將以在系統(tǒng)控制程序中預(yù)先編程它們的順序而被啟動。而且,對于從客戶OS遞交的資源分配的請求可以在它被控制OS 301接收到之前被檢查,或者它可以按照系統(tǒng)的策略而被校正或簡單地被拒絕。結(jié)果,可以消除由特定的客戶OS來占用資源的情況。因此,所述系統(tǒng)控制程序是將系統(tǒng)的策略作為程序?qū)崿F(xiàn)的一種系統(tǒng)控制程序。
控制OS 301分配對于系統(tǒng)控制OS 304專用的邏輯分區(qū)(在圖5中的邏輯分區(qū)1)??刂芆S 301工作在管理程序(hypervisor)模式。客戶OS工作在監(jiān)督程序(supervisor)模式中。所述系統(tǒng)控制OS和應(yīng)用程序工作在問題模式(用戶模式)中。注意,管理程序是位于所述邏輯分區(qū)和硬件之間的特權(quán)層。
邏輯分區(qū)是接收在系統(tǒng)中的資源的分配的主體。例如,主存儲器103(結(jié)合圖3)被劃分為多個區(qū)域,并且使用每個區(qū)域的權(quán)利被適當(dāng)?shù)靥峁┑竭壿嫹謪^(qū)。被分配到邏輯分區(qū)的資源的類型如下a)物理處理器單元操作時間b)虛擬地址空間c)可以由運(yùn)行在邏輯分區(qū)中的程序訪問的存儲器d)由控制OS管理邏輯分區(qū)所使用的存儲器e)事件端口f)器件的使用權(quán)g)高速緩沖存儲器分區(qū)h)總線的使用權(quán)如上所述,客戶OS運(yùn)行在一邏輯分區(qū)中??蛻鬙S通過壟斷被分配到邏輯分區(qū)的資源來執(zhí)行各種數(shù)據(jù)處理。在許多情況下,單個邏輯分區(qū)被準(zhǔn)備用于在系統(tǒng)上運(yùn)行的每個獨(dú)立的客戶OS。并且,向每個邏輯分區(qū)提供唯一的標(biāo)識符。系統(tǒng)控制OS 304通過將一個標(biāo)識符與作為邏輯分區(qū)管理信息產(chǎn)生的系統(tǒng)控制程序相關(guān)聯(lián)來執(zhí)行其管理。
通過控制OS 301和系統(tǒng)控制OS 304來產(chǎn)生邏輯分區(qū)。邏輯分區(qū)在其剛剛被產(chǎn)生后沒有資源和沒有對于可使用資源的限制的設(shè)置。邏輯分區(qū)具有兩種狀態(tài),即活動狀態(tài)和終止?fàn)顟B(tài)。邏輯分區(qū)在其剛剛被產(chǎn)生后處于活動狀態(tài)。通過來自運(yùn)行在邏輯分區(qū)內(nèi)的客戶OS的請求提示,所述邏輯分區(qū)轉(zhuǎn)換到終止?fàn)顟B(tài)中,因此被分配到所述邏輯分區(qū)的所有的邏輯處理器停止。
所述邏輯處理器是被分配到一邏輯分區(qū)的邏輯處理器,并且與作為在圖4中所示的處理器組中的一處理器的物理處理器相關(guān)聯(lián)。注意,不總是在邏輯處理器和物理處理器之間存在一一對應(yīng)關(guān)系;可能有多個物理處理器與單個邏輯處理器相關(guān)聯(lián)的情況或單個物理處理器與多個邏輯處理器相關(guān)聯(lián)的情況??刂芆S 301確定在邏輯處理器和物理處理器之間的關(guān)聯(lián)性。
控制OS 301裝備有用于限制要由相應(yīng)的邏輯分區(qū)使用的資源的數(shù)量的功能。有可能在客戶OS 302或303不與系統(tǒng)控制OS 304通信的情況下限制可以被分配/釋放的資源的使用的數(shù)量。
每個邏輯分區(qū)裝備有控制信號端口。該端口接收在邏輯處理器之間的數(shù)據(jù)交換/共享所需要的各種控制信號。下面列出了控制信號的一些示例a)對于在邏輯分區(qū)之間的事件端口的連接的請求b)對于在邏輯分區(qū)之間的消息通道的連接的請求c)對于共享的存儲區(qū)域的連接的請求到達(dá)每個邏輯分區(qū)的控制信號在所述控制信號端口排隊(duì)。只要存儲器資源允許,排隊(duì)的深度沒有限制。由已經(jīng)發(fā)送控制信號的邏輯分區(qū)來保證排隊(duì)所需要的存儲器資源。為了從這個端口檢索控制信號,調(diào)用客戶OS編程接口。當(dāng)控制信號已經(jīng)到達(dá)了空的控制信號端口時,有可能向任意的事件端口發(fā)送事件??梢酝ㄟ^調(diào)用客戶OS編程接口來指定事件端口。
控制OS向邏輯分區(qū)提供作為資源(計(jì)算機(jī)資源)的邏輯子處理器,它們是物理子處理器的抽象(abstraction)。如上所述,在物理子處理器和邏輯子處理器之間不存在一一對應(yīng)關(guān)系,而且,它們不必是數(shù)量上相等。為了實(shí)現(xiàn)這樣的配置,控制OS能夠當(dāng)需要時將單個物理處理器與多個邏輯處理器相關(guān)聯(lián)。
當(dāng)邏輯子處理器的數(shù)量大于物理子處理器的數(shù)量時,控制OS通過時間共享來處理物理子處理器。因此,有可能邏輯子處理器隨著時間的過去而重復(fù)操作的暫停和恢復(fù)。并且客戶OS可以監(jiān)控這些條件變化。
現(xiàn)在結(jié)合圖6來說明在物理處理器和邏輯處理器之間的對應(yīng)性。圖6不僅示出了主處理器401和物理子處理器411-414的物理處理器結(jié)構(gòu),而且示出了由作為物理子處理器2和物理子處理器4的兩個物理子處理器的時間共享處理操作的邏輯子處理器的時間順序。
在圖6的示例中,通過所述時間共享向物理子處理器2分配下面的每個邏輯子處理器,其中時間ta0到ta1邏輯子處理器A,時間ta1到ta2邏輯子處理器B,時間ta2到ta3邏輯子處理器C,時間ta3到-邏輯子處理器A。并且,對于如上所述分配的每個持續(xù)時間,每個邏輯子處理器使用物理子處理器2來執(zhí)行處理。
而且,通過所述時間共享向物理子處理器4分配下面的每個邏輯子處理器,其中時間tb0到tb1邏輯子處理器B,時間tb1到tb2邏輯子處理器C,時間tb2到tb3邏輯子處理器A,時間tb3到-邏輯子處理器B。并且,對于如上所述分配的每個持續(xù)時間,每個邏輯子處理器使用物理子處理器4來執(zhí)行處理。
如果每個邏輯子處理器要通過時間共享使用物理子處理器執(zhí)行處理并且在下一個所分配的持續(xù)時間中使用物理子處理器而恢復(fù)數(shù)據(jù)處理,則有必要保留在數(shù)據(jù)處理中斷時時關(guān)于硬件狀態(tài)等的狀態(tài)信息。所述狀態(tài)信息包括與在圖6中所示的物理子處理器相關(guān)聯(lián)的本地存儲信息和MMIO(存儲器映射輸入/輸出)寄存器信息。MMIO(存儲器映射的輸入/輸出)是用于通過存儲器映射而控制硬件的輸入/輸出控制機(jī)制,它使用特定的存儲器位置通過寫入處理或讀取處理來實(shí)現(xiàn)硬件控制。
在當(dāng)向物理子處理器分配邏輯子處理器期間,在對應(yīng)于所述邏輯子處理器的邏輯分區(qū)地址空間中的區(qū)域中映射反應(yīng)邏輯子處理器的狀態(tài)的物理子處理器的MMIO區(qū)域和本地存儲區(qū)域。在此期間,客戶OS可以通過直接地訪問在所述邏輯分區(qū)地址空間中映射的MMIO寄存器和本地存儲器來操作邏輯子處理器。
現(xiàn)在使用對應(yīng)于相應(yīng)物理處理器的MMIO寄存器來說明客戶OS——對于它設(shè)置了邏輯分區(qū)——的訪問處理的示例。如圖7中所示,客戶OS 451——對于它設(shè)置了邏輯分區(qū)——通過結(jié)合對應(yīng)于物理處理器461-464的MMIO(存儲器映射的輸入/輸出)寄存器信息471到474經(jīng)由相應(yīng)的物理處理器461-464執(zhí)行存儲器映射,并且使用特定的存儲器位置通過寫入處理或讀取處理來實(shí)現(xiàn)對于硬件的訪問。
盡管如此,在當(dāng)邏輯子處理器不被分配到物理子處理器的期間,在對應(yīng)于邏輯子處理器的邏輯分區(qū)地址空間中的區(qū)域中不映射作為反映邏輯子處理器的狀態(tài)的物理子處理器的輸入/輸出端口的區(qū)域的一部分的MMIO寄存器和本地存儲區(qū)域,因此如上結(jié)合圖2所述,一般不能進(jìn)行訪問。但是,按照本發(fā)明的配置,在當(dāng)邏輯處理器不使用物理處理器期間實(shí)現(xiàn)對于邏輯處理器的訪問,包括MMIO寄存器區(qū)域和邏輯存儲區(qū)域的上下文表被保存,以便它可以被其他處理器引用。而且,如下所述,不論在邏輯處理器使用物理處理器期間還是在邏輯處理器不使用物理處理器期間,都有可能在主存儲器中存儲作為MMIO寄存器信息的拷貝信息的“陰影”,以有效地實(shí)現(xiàn)對于MMIO寄存器的訪問。
下面說明上下文存儲配置。其中,通過被分配到客戶OS的邏輯分區(qū)來執(zhí)行使用邏輯子處理器的數(shù)據(jù)處理,結(jié)合圖5描述。由控制OS執(zhí)行通過時間共享向?qū)?yīng)于邏輯分區(qū)的邏輯子處理器分配物理處理器。
所述邏輯子處理器具有由客戶OS控制的活動狀態(tài)和非活動狀態(tài)以及由控制OS控制的運(yùn)行狀態(tài)和可運(yùn)行狀態(tài)。因此,根據(jù)其組合存在邏輯子處理器的下面三種狀態(tài)a)活動狀態(tài)和可運(yùn)行狀態(tài)b)活動狀態(tài)和運(yùn)行狀態(tài)c)非活動狀態(tài)活動狀態(tài)和非活動狀態(tài)之間的差別在于是否邏輯子處理器是控制OS的時間共享的對象,即物理子處理器的分配的對象?;顒訝顟B(tài)是其中邏輯子處理器是時間共享的對象、即物理子處理器的分配的對象的狀態(tài)。當(dāng)邏輯子處理器在活動狀態(tài)中時,控制OS在適當(dāng)時向子處理器分配時間共享的物理子處理器。
非活動狀態(tài)是其中邏輯子處理器不是時間共享的對象的狀態(tài)。當(dāng)邏輯子處理器在非活動狀態(tài)中時,控制OS不向邏輯子處理器分配任何時間共享的物理子處理器。但是,在這種情況下,在上下文表中保存邏輯子處理器的上下文。由控制OS在邏輯分區(qū)地址空間中的這種上下文的映射使得其他處理器有可能訪問在非活動狀態(tài)中的邏輯處理器。在此注意,客戶OS可以控制邏輯子處理器的活動狀態(tài)和非活動狀態(tài)。
在運(yùn)行狀態(tài)和可運(yùn)行狀態(tài)之間的差別在于是否在活動狀態(tài)中的邏輯子處理器實(shí)際上正在被物理子處理器執(zhí)行。當(dāng)子處理器的數(shù)量大于物理處理器的數(shù)量時,通過時間共享的物理子處理器來實(shí)現(xiàn)邏輯子處理器,結(jié)合圖2描述。因此,當(dāng)存在比物理子處理器更多的邏輯子處理器時,不總是通過物理子處理器來執(zhí)行邏輯子處理器的情況。運(yùn)行狀態(tài)是當(dāng)邏輯子處理器實(shí)際上正在被物理子處理器執(zhí)行時的狀態(tài)。
另一方面,可運(yùn)行狀態(tài)是當(dāng)邏輯子處理器是物理處理器的分配對象(活動狀態(tài))、但不是實(shí)際上正在被物理子處理器執(zhí)行時的狀態(tài)。
通過由控制OS導(dǎo)通的邏輯子處理器的上下文轉(zhuǎn)換來實(shí)現(xiàn)在這些狀態(tài)之間的過渡、即在運(yùn)行狀態(tài)和可運(yùn)行狀態(tài)之間的過渡。在此注意客戶OS可以檢測邏輯子處理器的運(yùn)行狀態(tài)和可運(yùn)行狀態(tài)。
當(dāng)邏輯子處理器在活動狀態(tài)和在運(yùn)行狀態(tài)中時,在邏輯分區(qū)地址空間中的區(qū)域中映射MMIO寄存器信息和反映邏輯子處理器的狀態(tài)的物理子處理器的本地存儲區(qū)域信息。在這種狀態(tài)中,有可能進(jìn)行對于邏輯子處理器的訪問。
當(dāng)邏輯子處理器轉(zhuǎn)換到非活動狀態(tài)中時,控制OS將邏輯子處理器的上下文存儲為關(guān)于邏輯子處理器的信息,并且映射對應(yīng)于邏輯子處理器的客戶OS的邏輯分區(qū)地址空間中的區(qū)域中的上下文表。作為這種處理的結(jié)果,客戶OS可以從其本身的邏輯分區(qū)地址空間引用在非活動狀態(tài)中的邏輯子處理器的上下文表的資源信息,以便它可以現(xiàn)在執(zhí)行諸如讀取、寫入和更新資源信息之類的處理。
而且,上下文表被構(gòu)造使得不僅存儲寄存器的內(nèi)容,而且存儲在傳統(tǒng)上下文表中不包括的作為本地存儲器的內(nèi)容和MMIO寄存器信息的信息。因此,客戶OS現(xiàn)在能夠根據(jù)與在其中不使用物理處理器的非活動狀態(tài)中設(shè)置的邏輯處理器相關(guān)的各種狀態(tài)信息通過資源訪問來執(zhí)行數(shù)據(jù)處理,并且這種結(jié)構(gòu)增強(qiáng)了數(shù)據(jù)處理的效率。
通過結(jié)合圖8,說明客戶OS如何訪問與邏輯子處理器相關(guān)聯(lián)的資源。對于客戶OS設(shè)置邏輯分區(qū),并且所述邏輯分區(qū)與邏輯子處理器相關(guān)聯(lián)。將資源劃分為客戶OS不可訪問的資源501和客戶OS可以訪問的資源502。
當(dāng)與對應(yīng)于客戶OS的邏輯分區(qū)相關(guān)聯(lián)的邏輯子處理器在活動狀態(tài)中并且也在運(yùn)行狀態(tài)中時,執(zhí)行通過物理子處理器510的數(shù)據(jù)處理。在這種狀態(tài)中,通過使用通用寄存器521、輸入/輸出端口522的一部分、MMIO寄存器523、本地存儲器524和主存儲器525來執(zhí)行數(shù)據(jù)處理,所述通用寄存器521、輸入/輸出端口522的一部分被包括在客戶OS不可訪問的資源501中,所述MMIO寄存器523、本地存儲器524和主存儲器525被包括在客戶OS可以訪問的資源502中。
當(dāng)物理子處理器執(zhí)行數(shù)據(jù)處理時,在客戶OS的邏輯分區(qū)地址空間中映射MMIO寄存器區(qū)域523、本地存儲區(qū)域524等,以便客戶OS可以訪問這些資源。
另一方面,當(dāng)邏輯子處理器在非活動狀態(tài)中時,即當(dāng)它不再是物理子處理器的分配對象時,在邏輯子處理器的主存儲器525中的上下文表531中存儲上下文。
在對應(yīng)于邏輯子處理器的客戶OS的邏輯分區(qū)地址空間中的區(qū)域中映射要在主存儲器525中存儲的邏輯子處理器的上下文表531,以便它可以被客戶OS訪問。
通過結(jié)合圖9,說明在對應(yīng)于邏輯子處理器的客戶OS的邏輯分區(qū)地址空間和物理地址空間之間的對應(yīng)性。
圖9示出了對應(yīng)于邏輯子處理器的客戶OS的邏輯分區(qū)地址空間560和物理地址空間570。物理地址空間570是包括存儲器、MMIO寄存器和物理子處理器的本地存儲器的物理空間??刂芆S當(dāng)必要時在邏輯分區(qū)地址空間中映射物理地址空間570的一部分??蛻鬙S可以僅僅訪問在邏輯分區(qū)地址空間中映射的物理地址空間。
當(dāng)與對應(yīng)于客戶OS的邏輯分區(qū)相關(guān)聯(lián)的邏輯子處理器在活動狀態(tài)中并且也在運(yùn)行狀態(tài)中時,即當(dāng)正在通過物理子處理器來執(zhí)行數(shù)據(jù)處理時,在客戶OS的邏輯分區(qū)地址空間560中映射MMIO寄存器的一部分和本地存儲區(qū)域561,以便客戶OS可以訪問這些資源。
另一方面,當(dāng)與對應(yīng)于客戶OS的邏輯分區(qū)相關(guān)聯(lián)的邏輯子處理器在非活動狀態(tài)中時,即當(dāng)它不再是物理子處理器的分配對象時,在客戶OS的邏輯分區(qū)地址空間560中映射包括MMIO寄存器的一部分、本地存儲區(qū)域等的上下文表562,以便客戶OS可以訪問這些資源。
結(jié)合圖10,詳細(xì)說明上下文保存處理。圖10圖解了執(zhí)行上下文保存處理的控制OS 610和客戶OS 620,在客戶OS 620中,設(shè)置了用于通過使用與要存儲的上下文相關(guān)聯(lián)的邏輯處理器而執(zhí)行數(shù)據(jù)處理的邏輯分區(qū)。
如上結(jié)合圖9所述,將上下文存儲在可以被客戶OS引用的狀態(tài)中等同于當(dāng)將邏輯子處理器設(shè)置到非活動狀態(tài)中的情況。換句話說,這是當(dāng)邏輯子處理器不再是物理子處理器的分配對象的情況。
結(jié)合圖10,客戶OS 620向控制OS 610的系統(tǒng)呼叫處理單元611輸出系統(tǒng)呼叫,用于請求保存處理,通過它,將上下文從客戶OS存儲到可以被客戶OS引用的位置。當(dāng)控制OS 610的系統(tǒng)呼叫處理單元611從客戶OS 620接收到系統(tǒng)呼叫時,系統(tǒng)呼叫處理單元611向邏輯子處理器調(diào)度處理單元612輸出改變邏輯子處理器的調(diào)度的請求,并且請求上下文管理單元613存儲對應(yīng)于邏輯處理器的上下文。
在其請求下,系統(tǒng)呼叫處理單元611將邏輯子處理器的狀態(tài)從活動狀態(tài)轉(zhuǎn)換到非活動狀態(tài)。即,與在客戶OS 620中設(shè)置的邏輯分區(qū)相關(guān)聯(lián)的邏輯子處理器從物理子處理器的分配對象中被取消。通過執(zhí)行這個處理,將邏輯子處理器設(shè)置到非活動狀態(tài)。
然后,邏輯子處理器調(diào)度處理單元612請求上下文管理單元613執(zhí)行存儲對應(yīng)于已經(jīng)轉(zhuǎn)換到非活動狀態(tài)的邏輯子處理器的上下文的處理。當(dāng)邏輯子處理器調(diào)度處理單元612進(jìn)行存儲/恢復(fù)邏輯子處理器的上下文的請求時,上下文管理單元613執(zhí)行存儲/恢復(fù)所述上下文。當(dāng)確認(rèn)這個邏輯子處理器已經(jīng)被設(shè)置到非活動狀態(tài)時,向主存儲器管理單元614發(fā)出將存儲上下文的上下文表映射到邏輯分區(qū)地址空間的請求。要存儲的上下文包括在邏輯處理器中的本地存儲器的內(nèi)容、MMIO的內(nèi)容和寄存器的內(nèi)容。
主存儲器管理單元614確定在客戶OS 620的邏輯分區(qū)地址空間中的用于上下文訪問的地址。主存儲器管理單元614在客戶OS 620的邏輯分區(qū)地址空間區(qū)域中映射在作為物理地址空間的主存儲器中存儲的上下文,并且將其設(shè)置到可以被客戶OS 620引用的狀態(tài)。
客戶OS可以按照被通告的地址來引用上下文,以便可以獲得基于上下文的資源,即MMIO寄存器或關(guān)于本地存儲區(qū)域的信息。因此,可以進(jìn)行關(guān)于這些資源的信息的讀取和寫入。
結(jié)合圖11,將說明當(dāng)為其設(shè)置邏輯分區(qū)的客戶OS從活動狀態(tài)向非活動狀態(tài)/從非活動狀態(tài)向活動狀態(tài)轉(zhuǎn)換時通過使用MMIO寄存器來進(jìn)行訪問處理中的過渡。在圖11中,客戶OS(GOS)701的狀態(tài)通過控制OS根據(jù)來自客戶OS的請求的控制而在活動狀態(tài)和非活動狀態(tài)之間改變。在圖11中,水平軸表示時間軸,時間(t)從左向右過去。在圖11中的S101到S105表示客戶OS的狀態(tài);即,狀態(tài)S101是非活動狀態(tài),狀態(tài)S102是活動狀態(tài),狀態(tài)S103是非活動狀態(tài),狀態(tài)S104是活動狀態(tài),和狀態(tài)S105是非活動狀態(tài)。
當(dāng)通過獲取MMIO寄存器信息而對于硬件等執(zhí)行訪問處理時,客戶OS701在客戶OS 701在非活動狀態(tài)中期間通過使用在主存儲器702中記錄的上下文表、即MMIO寄存器的拷貝信息來進(jìn)行訪問(S101,S103和S105)。另一方面,當(dāng)客戶OS 701在活動狀態(tài)中時(S102和S104),客戶OS 701執(zhí)行訪問處理,其中,直接地使用與對應(yīng)于客戶OS的邏輯分區(qū)的物理子處理器703相關(guān)聯(lián)的MMIO寄存器信息。
當(dāng)客戶OS 701的狀態(tài)從非活動狀態(tài)改變到活動狀態(tài)時,如上所述執(zhí)行恢復(fù)上下文的處理。當(dāng)客戶OS 701的狀態(tài)從活動狀態(tài)改變到非活動狀態(tài)時,如上所述執(zhí)行存儲上下文的處理。MMIO寄存器信息被包含在上下文中。
以這種方式,與客戶OS相關(guān)聯(lián)的邏輯子處理器可以當(dāng)客戶OS在活動狀態(tài)和非活動狀態(tài)中時引用MMIO寄存器信息。因此。邏輯子處理器可以執(zhí)行讀取、寫入和更新資源信息等的處理。
但是,仍然有關(guān)于允許每個客戶OS可以結(jié)合所有的MIMO寄存器的要考慮問題。例如,最好是控制OS僅僅可以設(shè)置和改變寄存器,通過它將存儲器區(qū)域設(shè)置為可以從與每個客戶OS相關(guān)聯(lián)的邏輯處理器訪問。并且不期望這樣的寄存器被客戶OS訪問和改變,因此,必須防止這樣的訪問。而且,對于通過其設(shè)置諸如單板(on-board)存儲器信息的系統(tǒng)信息的寄存器,需要防止通過客戶OS的訪問或改變。
因此,需要一種結(jié)構(gòu),其中,當(dāng)客戶OS在活動狀態(tài)和非活動狀態(tài)時并且同時不允許可能影響控制OS或其他客戶OS的處理的對于MMIO寄存器的訪問的同時,使能對于MMIO寄存器的訪問。
作為對于MMIO寄存器的訪問的控制,下面兩種方式(a)和(b)的訪問控制是可能的。
a)每頁(例如4K字節(jié))的訪問控制b)每個比特的訪問控制結(jié)合圖12和13來說明每個訪問的控制配置。
圖12圖解了MMIO寄存器的每頁的訪問控制配置。客戶OS 751訪問MMIO寄存器755。操作客戶OS 751的物理處理器753確定是否允許來自客戶OS 751的訪問的請求。僅僅當(dāng)被允許時才執(zhí)行對于MMIO寄存器755的訪問。
物理處理器753具有表信息存儲緩沖器754(以下稱為TLB 754,它表示表后備緩沖器),它已經(jīng)以頁為單位(例如4K字節(jié))寄存了關(guān)于是否允許訪問的信息,所述頁由MMIO寄存器755的劃分區(qū)域表示。通過結(jié)合這個TLB 754,物理處理器753確定是否允許來自客戶OS 751請求訪問的頁的位置,并且只有所請求的頁是允許訪問的頁時,它才允許所述訪問。
關(guān)于還沒有在TLB 754中登記的信息,物理處理器753向工作在管理程序模式中的控制OS 752查詢關(guān)于是否允許訪問,并且從控制OS 752獲取關(guān)于是否允許訪問的信息。并且物理處理器753確定是否從客戶OS 751請求訪問的頁的位置是允許訪問的頁。然后在TLB 754中登記所獲得的信息,關(guān)于在TLB 754中登記的頁的位置,可以僅僅使用引用TLB 754的處理來確定是否允許訪問,而沒有查詢控制OS 752的麻煩,使得可以實(shí)現(xiàn)快速的處理。
通過結(jié)合圖13,現(xiàn)在說明對于MMIO寄存器的以比特為單位的訪問控制設(shè)置。通過使用客戶OS編程接口(GOI)761來執(zhí)行以比特為單位的訪問控制。如上結(jié)合圖5所述,工作在管理程序模式中的控制OS 752提供客戶OS編程接口來作為由客戶OS 751執(zhí)行各種處理所需要的接口。有可能通過使用客戶OS編程接口(GOI)761來執(zhí)行對于MMIO寄存器755的訪問控制。
在僅僅允許使用客戶OS編程接口(GOI)761的MMIO寄存器訪問的結(jié)構(gòu)中,物理處理器753將向控制OS 752查詢是否允許訪問,即使不通過GOI 761而執(zhí)行了對于物理處理器753的訪問請求,但是控制OS 752也不允許訪問,因?yàn)樗鼪]有通過GOI 761而作出。
當(dāng)客戶OS 751通過GOI 761而進(jìn)行訪問請求時,工作在管理程序模式的控制OS 752根據(jù)由控制OS 752保存的信息來確定以比特為單位對于MMIO寄存器755的可訪問性和不可訪問性,并且允許客戶OS 751訪問僅僅在該允許訪問位置的MMIO寄存器信息。這種使用GOI的訪問控制具有提供以比特為單位的訪問控制的可能和因此通過控制OS來監(jiān)控的優(yōu)點(diǎn),但是它具有增加了在控制OS上的負(fù)載的問題。
通過結(jié)合圖14,說明在用于使用客戶OS編程接口(GOI)來執(zhí)行對于MMIO寄存器的訪問控制的設(shè)置中的上下文轉(zhuǎn)換順序。
類似于圖11,在圖14中,時間(t)從左向右過去,并且邏輯子處理器S201到S205在控制OS的控制下在來自客戶OS的請求下從非活動狀態(tài)向活動狀態(tài)/從活動狀態(tài)向非活動狀態(tài)轉(zhuǎn)換。在圖14中的S201到S205表示客戶OS 801的狀態(tài);即狀態(tài)S201是非活動狀態(tài),狀態(tài)S202是活動狀態(tài),狀態(tài)S203是非活動狀態(tài),狀態(tài)S204是活動狀態(tài)和狀態(tài)S205是非活動狀態(tài)。
客戶OS 801使用客戶OS編程接口(GOI)來訪問MMIO寄存器,結(jié)合圖13描述。換句話說,對于MMIO寄存器的訪問使用由工作在管理程序模式的控制OS 802提供的客戶OS編程接口(GOI)。
例如,在步驟S251,非活動狀態(tài)的客戶OS 801通過由控制OS 802提供的客戶OS編程接口(GOI)根據(jù)在主存儲器803中存儲的上下文表來執(zhí)行MMIO寄存器訪問。即,通過存儲器訪問來實(shí)現(xiàn)MIMO訪問。
在步驟S252,取代訪問主存儲器803,在活動狀態(tài)中的客戶OS 801通過由控制OS 802提供的客戶OS編程接口(GOI)、通過使用與對應(yīng)于在活動狀態(tài)中的客戶OS 801的邏輯分區(qū)相關(guān)聯(lián)的物理處理器804直接地訪問MMIO寄存器。
而且在步驟S253和S255,通過由控制OS 802提供的客戶OS編程接口(GOI)、由對主存儲器803的訪問來實(shí)現(xiàn)由在非活動狀態(tài)中的客戶OS 801進(jìn)行的MMIO寄存器訪問。并且在步驟S254,通過使用與對應(yīng)于在活動狀態(tài)中的客戶OS 801的邏輯分區(qū)相關(guān)聯(lián)的物理處理器804來執(zhí)行對于MMIO寄存器的直接訪問。
但是,對于對應(yīng)于物理處理器的MMIO寄存器的訪問處理比簡單的存取訪問處理需要更多的時間。換句話說,對于對應(yīng)于物理處理器的MMIO的訪問時間(V)比存儲器訪問時間(W)大得多(即V>>W(wǎng)),并且有可能MMIO訪問的執(zhí)行導(dǎo)致數(shù)據(jù)處理的延遲。
在圖14中所示的處理順序中,當(dāng)客戶OS 801在非活動狀態(tài)時高速地完成MMIO寄存器訪問,而當(dāng)客戶OS 801在活動狀態(tài)時,MMIO寄存器訪問需要更長的時間,因?yàn)樗荒芡ㄟ^對于主存儲器803的訪問而被完成。
因此,在本發(fā)明的一個優(yōu)選實(shí)施例中,不僅當(dāng)客戶OS 801在非活動狀態(tài)而且當(dāng)它在活動狀態(tài)中時在主存儲器803中存儲MMIO寄存器信息的拷貝信息。下面通過結(jié)合圖15來說明按照此實(shí)施例的設(shè)置和處理。
類似于圖14,在圖15中,時間(t)從左向右過去,并且邏輯子處理器S301到S305在控制OS的控制下在來自客戶OS的請求下從非活動狀態(tài)向活動狀態(tài)/從活動狀態(tài)向非活動狀態(tài)轉(zhuǎn)換。在圖15中,狀態(tài)S301是非活動狀態(tài),狀態(tài)S302是活動狀態(tài),狀態(tài)S303是非活動狀態(tài),狀態(tài)S304是活動狀態(tài)和狀態(tài)S305是非活動狀態(tài)。
客戶OS 801使用客戶OS編程接口(GOI)來訪問MMIO寄存器。換句話說,對于MMIO寄存器的訪問使用由工作在管理程序模式中的控制OS 802提供的客戶OS編程接口(GOI)。
在圖15中所示的處理設(shè)置中,“陰影”作為不僅當(dāng)客戶OS 801在非活動狀態(tài)而且當(dāng)它在活動狀態(tài)時在主存儲器803中存儲MMIO寄存器信息的拷貝信息。因此,客戶OS 801可以總是如對于主存儲器803的訪問那樣執(zhí)行對于MMIO寄存器的訪問。
例如,在步驟S351,在非活動狀態(tài)的客戶OS 801通過由控制OS 802提供的客戶OS編程接口(GOI)來訪問在主存儲器803中作為陰影851而存儲的MMIO寄存器信息。即,通過存儲器訪問來完成MMIO訪問。
在步驟S352,在活動狀態(tài)的客戶OS 801通過由控制OS 802提供的客戶OS編程接口(GOI)來訪問在主存儲器803中被作為陰影852存儲的MMIO寄存器信息,即通過存儲器訪問來完成MMIO訪問。
而且在步驟S353、S354和S355中,通過經(jīng)由控制OS 802提供的客戶OS編程接口(GOI)對于主存儲器803的訪問由相應(yīng)的陰影853到855的訪問來實(shí)現(xiàn)由在非活動狀態(tài)或活動狀態(tài)的客戶OS 801的MMIO寄存器訪問。
注意在此處理設(shè)置中,當(dāng)客戶OS 801在活動狀態(tài)并且正在執(zhí)行由與對應(yīng)于客戶OS 801的邏輯處理器相關(guān)聯(lián)的物理處理器進(jìn)行的處理時,通過所述物理處理器來執(zhí)行使用MMIO寄存器的數(shù)據(jù)處理,并且通過所述數(shù)據(jù)處理來執(zhí)行由所述物理處理器對于MMIO寄存器的讀取和寫入。在主存儲器803中存儲的陰影被設(shè)置為MMIO寄存器的拷貝,因此不期望在實(shí)際MMIO寄存器和陰影之間產(chǎn)生任何差別。
因此,當(dāng)客戶OS 801在活動狀態(tài)時,工作在管理程序模式中的控制OS802按照更新的MMIO寄存器信息來執(zhí)行陰影的更新。通過這種陰影的更新處理,在主存儲器803中設(shè)置的陰影保持為與MMIO寄存器的內(nèi)容一致的信息。
應(yīng)當(dāng)注意,要在主存儲器中設(shè)置的陰影可能限于由物理處理器未進(jìn)行任何重寫的信息?;蛘?,它可以被設(shè)置使得要在主存儲器中設(shè)置的陰影除了未由所述物理處理器進(jìn)行任何重寫的信息之外還可以限于允許工作在管理程序模式的控制OS 802檢測由所述物理處理器進(jìn)行的任何重寫,如果發(fā)生的話。在諸如此類的設(shè)置中,如果客戶OS要獲得在主存儲器中設(shè)置的陰影中不包括的MMIO寄存器信息,則要求客戶OS經(jīng)由所述物理處理器直接地訪問MMIO寄存器。
通過結(jié)合圖16,下面說明可以通過將陰影設(shè)置為在存儲器中的MMIO寄存器的拷貝信息而實(shí)現(xiàn)降低處理時間。
圖16示出了當(dāng)不使用“陰影”((P1)到(P3))時和當(dāng)使用陰影((Q1)到(Q3))時的處理時間(由垂直軸表示)。更詳細(xì)地說,(P1)在沒有陰影的結(jié)構(gòu)中的通過GOI的MMIO寫入處理。
(P2)在沒有陰影的結(jié)構(gòu)中的通過GOI的MMIO讀取處理。
(P3)在沒有陰影的結(jié)構(gòu)中的MMIO寫入和讀取處理。
(Q1)在有陰影的結(jié)構(gòu)中的通過GOI的MMIO寫入處理。
(Q2)在有陰影的結(jié)構(gòu)中的通過GOI的MMIO讀取處理。
(Q3)在有陰影的結(jié)構(gòu)中的MMIO寫入和讀取處理。
在作為“在沒有陰影的結(jié)構(gòu)中的通過GOI的MMIO寫入處理”的(P1)中,由控制OS提供的客戶OS編程接口(GOI)的呼叫處理時間和MMIO寄存器寫入處理時間的總和是客戶OS的處理時間。在客戶OS編程接口(GOI)的呼叫處理中,客戶OS執(zhí)行對于控制OS的系統(tǒng)呼叫。響應(yīng)于這種系統(tǒng)呼叫,控制OS執(zhí)行處理來識別對應(yīng)于客戶OS的邏輯子處理器,并且以適用于所述客戶OS的方式來設(shè)置對應(yīng)于所述邏輯子處理器的客戶OS編程接口(GOI)。
在作為“在沒有陰影的結(jié)構(gòu)中的通過GOI的MMIO讀取處理”的(P2)中,由控制OS提供的客戶OS編程接口(GOI)的呼叫處理時間和MMIO寄存器讀取處理時間的總和是客戶OS的處理時間。
在作為“在沒有陰影的結(jié)構(gòu)中的MMIO寫入和讀取處理”的(P3)中,例如在活動狀態(tài)和非活動狀態(tài)之間轉(zhuǎn)換時執(zhí)行的上下文轉(zhuǎn)換處理中執(zhí)行所述處理。在這種處理中,客戶OS被分配了一物理處理器并且因此直接地執(zhí)行MMIO寄存器信息的寫入和讀取處理,因此處理時間是MMIO寄存器讀取處理時間、MMIO寄存器寫入處理時間和用于讀取和寫入在存儲器中存儲的上下文表的處理時間的總和。在此應(yīng)當(dāng)注意,如上所述,對與物理處理器的MMIO對應(yīng)的訪問時間(V)比存儲器訪問時間(W)大得多(即,V>>W(wǎng)),結(jié)果,在上下文表的讀取和寫入中花費(fèi)的存儲器訪問時間比MMIO讀取和寫入處理時間短得多。
(Q1)到(Q3)是在結(jié)合圖15所述那樣設(shè)置陰影的設(shè)置中的處理時間,即當(dāng)執(zhí)行與(P1)到(P3)類似的處理時的處理時間。
在作為“在有陰影的結(jié)構(gòu)中的通過GOI的MMIO寫入處理”的(Q1)中,由控制OS提供的客戶OS編程接口(GOI)的呼叫處理時間、MMIO寄存器寫入處理時間和通過存儲器訪問的陰影寫入處理時間的總和是客戶OS的處理時間。
在作為“在有陰影的結(jié)構(gòu)中的通過GOI的MMIO讀取處理”的(Q2)中,將MMIO寄存器的拷貝信息作為陰影存儲在主存儲器中,以便客戶OS執(zhí)行在存儲器中設(shè)置的陰影的讀取而不是執(zhí)行MMIO寄存器的讀取。因此,由控制OS提供的客戶OS編程接口(GOI)的呼叫處理時間和通過存儲器訪問的陰影讀取處理時間的總和是處理時間。
在作為“在有陰影的結(jié)構(gòu)中的MMIO寫入和讀取處理”的(Q3)中,類似于上述的處理(P3),例如在活動狀態(tài)和非活動狀態(tài)之間轉(zhuǎn)換時執(zhí)行的上下文轉(zhuǎn)換處理中執(zhí)行所述處理。在這種處理中,將MMIO寄存器的拷貝信息作為陰影存儲在主存儲器中,因此客戶OS執(zhí)行讀取在存儲器中設(shè)置的陰影而不是執(zhí)行讀取MMIO寄存器。因此,存儲器訪問時間和MMIO寄存器寫入處理時間的總和是處理時間。
將如圖16中所示的無陰影處理(P1)到(P3)和有陰影的處理(Q1)到(Q3)相對于它們的處理時間而彼此相比較,并且獲得下面的結(jié)果。
P1≈Q1P2>>Q2P3>>Q3從如上獲得的處理時間的差別,可以發(fā)現(xiàn)具有陰影的結(jié)構(gòu)實(shí)現(xiàn)了比沒有陰影的結(jié)構(gòu)更少的總處理時間,因此可以實(shí)現(xiàn)有效的數(shù)據(jù)處理。
已經(jīng)結(jié)合特定實(shí)施例而詳細(xì)說明了本發(fā)明。但是,對于本領(lǐng)域內(nèi)的技術(shù)人員顯然有可能在本發(fā)明的范圍內(nèi)進(jìn)行對于實(shí)施例的各種修改和替換。即,這些實(shí)施例僅僅是例示性的,不應(yīng)當(dāng)以限定的方式來解釋。因此,這些和其他對于所公開的實(shí)施例的改變意欲由本發(fā)明涵蓋,本發(fā)明僅僅被權(quán)利要求限定。
可以以多種形式和結(jié)構(gòu),諸如通過僅僅硬件、僅僅軟件或其組合來實(shí)現(xiàn)在專利說明書中所述的系列處理。在通過軟件的處理的情況下,可以以在計(jì)算機(jī)內(nèi)的專用硬件中嵌入的存儲器中安裝程序或在能夠執(zhí)行各種處理的通用計(jì)算機(jī)中安裝所述程序的方式來執(zhí)行已經(jīng)記錄了處理序列的所述程序。
例如,可以預(yù)先在作為記錄介質(zhì)的硬盤或ROM(只讀存儲器)中記錄所述程序?;蛘呖梢栽谥T如軟盤、CD-ROM(致密盤只讀存儲器)、MO(磁光)盤、DVD(數(shù)字通用盤)、磁盤或半導(dǎo)體存儲器之類的可移動記錄介質(zhì)中暫時或永久地存儲或記錄所述程序。這樣的可移動記錄介質(zhì)可以被提供作為所謂的封裝軟件。
注意,所述程序可以不僅從如上所述的可移動記錄介質(zhì)被安裝在計(jì)算機(jī)中,而且還可以從下載站點(diǎn)被無線地傳送到計(jì)算機(jī)或可以使用諸如局域網(wǎng)(LAN)或因特網(wǎng)之類的網(wǎng)絡(luò)通過線路而被傳送到計(jì)算機(jī),以便所述計(jì)算機(jī)可以接收所述程序,并且將其安裝在諸如硬盤之類的內(nèi)置記錄介質(zhì)中。
注意,在本專利申請中所述的各種處理不僅按照說明的時間順序而被執(zhí)行,而且可以按照處理執(zhí)行單元的處理容量或按照需要來并行地或獨(dú)立地被執(zhí)行。而且,在本專利說明書中的系統(tǒng)是多個單元的邏輯集合,并且不限于位于單個外殼(housing)中的構(gòu)成單元。
如上所述,按照本發(fā)明的實(shí)施例,通過將多個邏輯處理器通過時間共享而與物理處理器相關(guān)聯(lián)來執(zhí)行數(shù)據(jù)處理。在這種設(shè)置中,控制OS被配置使得在存儲器中保存作為對應(yīng)于在活動狀態(tài)或非活動狀態(tài)中的邏輯處理器的MMIO寄存器的拷貝信息的“陰影”,在所述活動狀態(tài)中,將一物理處理器分配到對應(yīng)于客戶OS的一邏輯處理器,在非活動狀態(tài)中,不將一物理處理器分配到一邏輯處理器。因此,客戶OS可以總是通過存儲器訪問來自陰影的MMIO寄存器,因此實(shí)現(xiàn)比直接訪問MMIO寄存器更短的時間的訪問。因此,本發(fā)明的實(shí)施例實(shí)現(xiàn)了有效的數(shù)據(jù)處理。
雖然已經(jīng)使用特定的術(shù)語說明了本發(fā)明的優(yōu)選實(shí)施例,但是這樣的說明僅僅是說明性的,應(yīng)當(dāng)明白,可以在不脫離權(quán)利要求的精神和范圍的情況下可以進(jìn)一步進(jìn)行改變和變化。
權(quán)利要求
1.一種信息處理裝置,包括控制OS執(zhí)行單元,所述控制OS執(zhí)行將多個邏輯處理器通過時間共享而與一物理處理器相關(guān)聯(lián)的處理;以及,客戶OS執(zhí)行單元,所述客戶OS與作為邏輯處理器的邏輯分區(qū)相關(guān)聯(lián),并且是使用邏輯處理器的主體,其中,所述客戶OS執(zhí)行單元被配置來執(zhí)行數(shù)據(jù)處理,以便在其中一物理處理器被分配到對應(yīng)于所述客戶OS的邏輯處理器的活動狀態(tài)中使用存儲器映射的輸入/輸出(MMIO)寄存器,并且其中,所述控制OS執(zhí)行單元被配置來在其中一物理處理器被分配到所述邏輯處理器的活動狀態(tài)中和在其中沒有物理處理器分配到所述邏輯處理器的非活動狀態(tài)中在存儲器中存儲對應(yīng)于與所述客戶OS對應(yīng)的所述邏輯處理器的MMIO寄存器的拷貝信息。
2.按照權(quán)利要求1的信息處理裝置,其中所述控制OS執(zhí)行單元被配置來在存儲器中存儲MMIO寄存器信息的拷貝,所述物理處理器不重寫所述MMIO寄存器信息。
3.按照權(quán)利要求1的信息處理裝置,其中所述控制OS執(zhí)行單元被配置來在存儲器中存儲MMIO寄存器信息的拷貝,所述物理處理器不重寫所述MMIO寄存器信息,并且執(zhí)行在存儲器中存儲MMIO寄存器信息的拷貝的處理,所述控制OS能夠檢測已經(jīng)重寫的MMIO寄存器信息。
4.按照權(quán)利要求1的信息處理裝置,其中所述控制OS執(zhí)行單元被配置來當(dāng)通過所述物理處理器而執(zhí)行MMIO寄存器信息的重寫時,按照MMIO寄存器信息來更新在存儲器中存儲的MMIO寄存器的拷貝信息。
5.按照權(quán)利要求1的信息處理裝置,其中所述客戶OS執(zhí)行單元被配置來經(jīng)由所述控制OS設(shè)置的客戶OS編程接口(GOI)訪問在存儲器中存儲的MMIO寄存器的拷貝信息。
6.按照權(quán)利要求1的信息處理裝置,其中,所述客戶OS執(zhí)行單元被配置來在有訪問在存儲器中存儲的MMIO寄存器的拷貝信息的請求時執(zhí)行對于所述控制OS的系統(tǒng)呼叫,以及其中,所述控制OS執(zhí)行單元被配置來將客戶OS編程接口(GOI)設(shè)置為所述客戶OS的活動狀態(tài)。
7.一種用于在信息處理裝置中控制進(jìn)程的方法,所述信息處理裝置通過將多個邏輯處理器經(jīng)由時間共享而與一物理處理器相關(guān)聯(lián)來執(zhí)行數(shù)據(jù)處理,所述方法包括通過控制OS的執(zhí)行來執(zhí)行將對應(yīng)于作為使用邏輯處理器的主體的客戶OS的邏輯處理器通過時間共享而與物理處理器相關(guān)聯(lián)的處理;執(zhí)行數(shù)據(jù)處理,以便在其中將物理處理器分配到對應(yīng)于客戶OS的邏輯處理器的活動狀態(tài)中在客戶OS中使用存儲器映射的輸入/輸出(MMIO)寄存器;以及通過所述控制OS的執(zhí)行來執(zhí)行處理,以便在其中將物理處理器分配到所述邏輯處理器的活動狀態(tài)中和在其中沒有物理處理器分配到所述邏輯處理器的非活動狀態(tài)中在存儲器中存儲對應(yīng)于與客戶OS對應(yīng)的所述邏輯處理器的所述MMIO寄存器的拷貝信息。
8.按照權(quán)利要求7的進(jìn)程控制方法,其中通過控制OS來執(zhí)行在存儲器中存儲MMIO寄存器信息的拷貝的處理,所述物理處理器不重寫所述MMIO寄存器信息。
9.按照權(quán)利要求7的進(jìn)程控制方法,其中通過控制OS來執(zhí)行在存儲器中存儲MMIO寄存器信息的拷貝的處理,所述物理處理器不重寫所述MMIO寄存器信息,并且通過控制OS來執(zhí)行在存儲器中存儲MMIO寄存器信息的拷貝的處理,所述控制OS能夠檢測已經(jīng)重寫的MMIO寄存器信息。
10.按照權(quán)利要求7的進(jìn)程控制方法,其中當(dāng)通過所述物理處理器而執(zhí)行MMIO寄存器信息的重寫時,通過控制OS來執(zhí)行按照MMIO寄存器信息更新在存儲器中存儲的MMIO寄存器的拷貝信息的處理。
11.按照權(quán)利要求7的進(jìn)程控制方法,其中通過客戶OS經(jīng)由所述控制OS設(shè)置的客戶OS編程接口(GOI)執(zhí)行對在存儲器中存儲的MMIO寄存器的拷貝信息的訪問。
12.按照權(quán)利要求7的進(jìn)程控制方法,其中,所述客戶OS在請求對在存儲器中存儲的MMIO寄存器的拷貝信息的訪問時執(zhí)行對于所述控制OS的系統(tǒng)呼叫,以及其中所述控制OS執(zhí)行將客戶OS編程接口(GOI)設(shè)置為所述客戶OS的活動狀態(tài)的處理。
13.一種計(jì)算機(jī)程序產(chǎn)品,用于信息處理裝置,所述信息處理裝置通過將多個邏輯處理器經(jīng)由時間共享而與物理處理器相關(guān)聯(lián)來執(zhí)行數(shù)據(jù)處理,所述計(jì)算機(jī)程序產(chǎn)品包括程序代碼模塊,用于通過控制OS的執(zhí)行來執(zhí)行將對應(yīng)于作為使用邏輯處理器的主體的客戶OS的邏輯處理器通過時間共享而與物理處理器相關(guān)聯(lián)的處理;程序代碼模塊,用于執(zhí)行數(shù)據(jù)處理,以便在其中將物理處理器分配到對應(yīng)于客戶OS的邏輯處理器的活動狀態(tài)中在客戶OS中使用存儲器映射的輸入/輸出(MMIO)寄存器;以及,程序代碼模塊,用于通過所述控制OS的執(zhí)行來執(zhí)行處理,以便在其中將物理處理器分配到所述邏輯處理器的活動狀態(tài)中和在其中沒有物理處理器分配到所述邏輯處理器的非活動狀態(tài)中在存儲器中存儲對應(yīng)于與客戶OS對應(yīng)的所述邏輯處理器的所述MMIO寄存器的拷貝信息。
全文摘要
本發(fā)明提供了一種用于存儲存儲器映射的輸入/輸出(MMIO)寄存器的拷貝的方法和裝置,用于提高數(shù)據(jù)處理效率。在其中通過經(jīng)由時間共享將多個邏輯處理器與一物理處理器相關(guān)聯(lián)的結(jié)構(gòu)中,主機(jī)OS在活動狀態(tài)和非活動狀態(tài)中在存儲器中存儲對應(yīng)于一邏輯處理器的MMIO寄存器的拷貝信息、即陰影,在所述活動狀態(tài)中,將一物理處理器分配到對應(yīng)于客戶OS的一邏輯處理器,在非活動狀態(tài)中,沒有物理處理器分配到邏輯處理器。這種結(jié)構(gòu)使得客戶OS能夠經(jīng)由存儲器訪問通過陰影來獲得對于MMIO寄存器的更快的訪問,而不是直接地訪問MMIO寄存器,以便實(shí)現(xiàn)有效的數(shù)據(jù)處理。
文檔編號G06F9/46GK1881183SQ200610093659
公開日2006年12月20日 申請日期2006年6月14日 優(yōu)先權(quán)日2005年6月14日
發(fā)明者橫田大輔 申請人:索尼計(jì)算機(jī)娛樂公司