一個(gè)或多個(gè)方面總體上涉及計(jì)算環(huán)境內(nèi)的處理,并且具體地說(shuō),涉及管理選定架構(gòu)功能在計(jì)算環(huán)境內(nèi)的使用。
背景技術(shù):
計(jì)算環(huán)境提供一系列能力且包括作為其架構(gòu)配置的一部分的某些功能。一個(gè)此類(lèi)功能為用于將虛擬地址轉(zhuǎn)換成實(shí)地址的虛擬地址轉(zhuǎn)換,諸如動(dòng)態(tài)地址轉(zhuǎn)換。
系統(tǒng)配置包括用于存儲(chǔ)應(yīng)用及數(shù)據(jù)的物理存儲(chǔ)器。物理存儲(chǔ)器的數(shù)量為固定的且常常不足以支持用戶(hù)的需求。因此,利用被稱(chēng)作虛擬存儲(chǔ)器的存儲(chǔ)器管理技術(shù),以便提供額外存儲(chǔ)器或至少額外存儲(chǔ)器的外觀(guān)。虛擬存儲(chǔ)器使用虛擬尋址,虛擬尋址提供可能看起來(lái)比主存儲(chǔ)器的物理大小大得多的地址范圍。
為了存取包括虛擬存儲(chǔ)器的系統(tǒng)配置中的主存儲(chǔ)器,請(qǐng)求包括(例如)虛擬地址的存儲(chǔ)器存取。使用(例如)動(dòng)態(tài)地址轉(zhuǎn)換或另一轉(zhuǎn)換技術(shù)將虛擬地址轉(zhuǎn)換成用于存取物理存儲(chǔ)器的實(shí)地址。
但是,虛擬存儲(chǔ)器測(cè)試是昂貴的。在架構(gòu)過(guò)時(shí)時(shí),例如對(duì)于主要用作命令行解釋器環(huán)境的使用最少架構(gòu)支持的系統(tǒng)(如DOS操作系統(tǒng)(例如,MS DOS或CMS)),或?qū)τ谟糜趫?zhí)行BIOS的一部分(并且能夠在沒(méi)有虛擬存儲(chǔ)器的復(fù)雜性的情況下執(zhí)行)的環(huán)境,可能希望提供舊版環(huán)境。
因此,本領(lǐng)域中需要解決上述問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
經(jīng)由提供一種用于管理計(jì)算環(huán)境內(nèi)的處理的計(jì)算機(jī)程序產(chǎn)品來(lái)克服現(xiàn)有技術(shù)的缺點(diǎn)且提供優(yōu)點(diǎn)。所述計(jì)算機(jī)程序產(chǎn)品包括(例如)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其可由處理電路讀取且存儲(chǔ)供所述處理電路執(zhí)行以用于執(zhí)行一種方法的指令。所述方法包括(例如)由在第一架構(gòu)模式中處理的主機(jī)處理器啟動(dòng)第一客體虛擬機(jī),所述第一客體虛擬機(jī)用于在所述第一架構(gòu)模式中處理,所述第一架構(gòu)模式具有第一指令集架構(gòu)且提供第一組架構(gòu)功能;由所述主機(jī)處理器啟動(dòng)第二客體虛擬機(jī),所述第二客體虛擬機(jī)用于在第二架構(gòu)模式中處理,其中所述第二架構(gòu)模式具有第二指令集架構(gòu)且提供第二組架構(gòu)功能,所述第二組架構(gòu)功能是在所述第一組架構(gòu)功能中提供的一組精簡(jiǎn)架構(gòu)功能,其中在所述第一組架構(gòu)功能中提供的選定架構(gòu)功能不存在于所述第二組架構(gòu)功能中,所述第二架構(gòu)模式是功能抑制模式;及由所述第二客體虛擬機(jī)在所述第二架構(gòu)模式中執(zhí)行處理,其中所述執(zhí)行處理超控與所述選定架構(gòu)功能相關(guān)聯(lián)的被定義為控制所述第二客體虛擬機(jī)的執(zhí)行的一個(gè)或多個(gè)控件。
從第一方面看,本發(fā)明提供一種用于管理計(jì)算環(huán)境內(nèi)的處理的方法,所述方法包括:由在第一架構(gòu)模式中處理的主機(jī)處理器啟動(dòng)第一客體虛擬機(jī),所述第一客體虛擬機(jī)用于在所述第一架構(gòu)模式中處理,所述第一架構(gòu)模式具有第一指令集架構(gòu)且提供第一組架構(gòu)功能;由所述主機(jī)處理器啟動(dòng)第二客體虛擬機(jī),所述第二客體虛擬機(jī)用于在第二架構(gòu)模式中處理,其中所述第二架構(gòu)模式具有第二指令集架構(gòu)且提供第二組架構(gòu)功能,所述第二組架構(gòu)功能是在所述第一組架構(gòu)功能中提供的一組精簡(jiǎn)架構(gòu)功能,其中在所述第一組架構(gòu)功能中提供的選定架構(gòu)功能不存在于所述第二組架構(gòu)功能中,所述第二架構(gòu)模式是功能抑制模式;及由所述第二客體虛擬機(jī)在所述第二架構(gòu)模式中執(zhí)行處理,其中所述執(zhí)行處理超控與所述選定架構(gòu)功能相關(guān)聯(lián)的被定義為控制所述第二客體虛擬機(jī)的執(zhí)行的一個(gè)或多個(gè)控件。
從另一方面看,本發(fā)明提供一種管理計(jì)算環(huán)境內(nèi)的處理的方法,所述方法包括:由計(jì)算環(huán)境的處理器獲得執(zhí)行操作的請(qǐng)求,所述操作是使用或啟用選定架構(gòu)功能,所述處理器被配置為同時(shí)支持包括第一架構(gòu)及第二架構(gòu)的多個(gè)架構(gòu),所述第一架構(gòu)被配置為用于且支持所述選定架構(gòu)功能,且所述第二架構(gòu)已自其移除所述選定架構(gòu)功能;基于所述獲得,判定所述處理器是正在第一架構(gòu)模式中基于所述第一架構(gòu)進(jìn)行處理還是正在第二架構(gòu)模式中基于所述第二架構(gòu)進(jìn)行處理;基于判定所述處理器正在所述第一架構(gòu)模式中進(jìn)行處理,執(zhí)行所述操作;及基于判定所述處理器正在所述第二架構(gòu)模式中進(jìn)行處理且所述選定架構(gòu)功能已被移除,提供將不使用或不啟用所述選定架構(gòu)功能的指示,其中所述提供在不檢查指示所述選定架構(gòu)特征是否被啟用/停用的控件的情況下執(zhí)行,所述控件與關(guān)于移除的指示分離。
從另一方面看,本發(fā)明提供一種用于管理計(jì)算環(huán)境內(nèi)的處理的計(jì)算機(jī)系統(tǒng),所述計(jì)算機(jī)系統(tǒng)包括:存儲(chǔ)器;及處理器,其與所述存儲(chǔ)器通信,其中所述計(jì)算機(jī)系統(tǒng)被配置為執(zhí)行一方法,所述方法包括:由在第一架構(gòu)模式中處理的主機(jī)處理器啟動(dòng)第一客體虛擬機(jī),所述第一客體虛擬機(jī)用于在所述第一架構(gòu)模式中處理,所述第一架構(gòu)模式具有第一指令集架構(gòu)且提供第一組架構(gòu)功能;由所述主機(jī)處理器啟動(dòng)第二客體虛擬機(jī),所述第二客體虛擬機(jī)用于在第二架構(gòu)模式中處理,其中所述第二架構(gòu)模式具有第二指令集架構(gòu)且提供第二組架構(gòu)功能,所述第二組架構(gòu)功能是在所述第一組架構(gòu)功能中提供的一組精簡(jiǎn)架構(gòu)功能,其中在所述第一組架構(gòu)功能中提供的選定架構(gòu)功能不存在于所述第二組架構(gòu)功能中,所述第二架構(gòu)模式是功能抑制模式;及由所述第二客體虛擬機(jī)在所述第二架構(gòu)模式中執(zhí)行處理,其中所述執(zhí)行處理超控與所述選定架構(gòu)功能相關(guān)聯(lián)的被定義為控制所述第二客體虛擬機(jī)的執(zhí)行的一個(gè)或多個(gè)控件。
從另一方面看,本發(fā)明提供一種用于管理計(jì)算環(huán)境內(nèi)的處理的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其可由處理電路讀取并存儲(chǔ)由所述處理電路執(zhí)行以執(zhí)行本發(fā)明的步驟的方法的指令。
從另一方面看,本發(fā)明提供一種計(jì)算機(jī)程序,其存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上并可載入數(shù)字計(jì)算機(jī)的內(nèi)部存儲(chǔ)器,所述計(jì)算機(jī)程序包括軟件代碼部分,當(dāng)所述程序在計(jì)算機(jī)上運(yùn)行時(shí),所述軟件代碼部分用于執(zhí)行本發(fā)明的步驟。
本文亦描述及要求保護(hù)涉及一個(gè)或多個(gè)優(yōu)選實(shí)施例的方法及系統(tǒng)。此外,本文亦描述且可要求保護(hù)涉及一個(gè)或多個(gè)優(yōu)選實(shí)施例的服務(wù)。
實(shí)現(xiàn)了額外特征及優(yōu)點(diǎn)。本文中詳細(xì)描述了其他優(yōu)選實(shí)施例及方面且所述實(shí)施例及方面被視為所要求保護(hù)的發(fā)明的一部分。
附圖說(shuō)明
現(xiàn)在將僅通過(guò)實(shí)例的方式參考如附圖所示的優(yōu)選實(shí)施例描述本發(fā)明,這些附圖是:
圖1A描繪根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例的結(jié)合及使用無(wú)動(dòng)態(tài)地址轉(zhuǎn)換(無(wú)DAT)工具的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的一個(gè)實(shí)例;
圖1B描繪根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例的結(jié)合及使用無(wú)DAT工具的一個(gè)或多個(gè)方面的虛擬計(jì)算環(huán)境的一個(gè)實(shí)例;
圖2描繪根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例的結(jié)合及使用無(wú)DAT工具的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的另一個(gè)實(shí)例;
圖3A描繪根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例的結(jié)合及使用無(wú)DAT工具的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的又一個(gè)實(shí)例;
圖3B描繪根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例的圖3A的存儲(chǔ)器的進(jìn)一步細(xì)節(jié);
圖4描繪根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例的64位地址轉(zhuǎn)換的一個(gè)實(shí)施例;
圖5描繪根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例的加載程序狀態(tài)字(PSW)指令的一個(gè)實(shí)例格式;
圖6描繪根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例的程序狀態(tài)字的一個(gè)實(shí)例格式;
圖7A至7C描繪根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例的加載實(shí)地址指令的實(shí)例格式;
圖8描繪根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例的設(shè)定系統(tǒng)屏蔽指令的一個(gè)實(shí)例格式;
圖9描繪根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例的存儲(chǔ)后或系統(tǒng)屏蔽(StoreThen OR System Mask)指令的一個(gè)實(shí)例格式;
圖10描繪根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例的與無(wú)DAT工具相關(guān)聯(lián)的處理的一個(gè)實(shí)施例;
圖11A至11B描繪根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例的虛擬計(jì)算環(huán)境中與無(wú)DAT工具相關(guān)聯(lián)的處理的一個(gè)實(shí)施例;
圖12描繪根據(jù)現(xiàn)有技術(shù)并且其中可以實(shí)施本發(fā)明的一個(gè)優(yōu)選實(shí)施例的計(jì)算機(jī)程序產(chǎn)品的一個(gè)實(shí)施例;
圖13描繪根據(jù)現(xiàn)有技術(shù)并且其中可以實(shí)施本發(fā)明的一個(gè)優(yōu)選實(shí)施例的主計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例;
圖14描繪根據(jù)現(xiàn)有技術(shù)并且其中可以實(shí)施本發(fā)明的一個(gè)優(yōu)選實(shí)施例的計(jì)算機(jī)系統(tǒng)的另一個(gè)實(shí)例;
圖15描繪根據(jù)現(xiàn)有技術(shù)并且其中可以實(shí)施本發(fā)明的一個(gè)優(yōu)選實(shí)施例的包括計(jì)算機(jī)網(wǎng)絡(luò)的計(jì)算機(jī)系統(tǒng)的另一個(gè)實(shí)例;
圖16描繪根據(jù)現(xiàn)有技術(shù)并且其中可以實(shí)施本發(fā)明的一個(gè)優(yōu)選實(shí)施例的計(jì)算機(jī)系統(tǒng)的各種組件的一個(gè)實(shí)施例;
圖17A描繪根據(jù)現(xiàn)有技術(shù)并且其中可以實(shí)施本發(fā)明的一個(gè)優(yōu)選實(shí)施例的圖16的計(jì)算機(jī)系統(tǒng)的執(zhí)行單元的一個(gè)實(shí)施例;
圖17B描繪根據(jù)現(xiàn)有技術(shù)并且其中可以實(shí)施本發(fā)明的一個(gè)優(yōu)選實(shí)施例的圖16的計(jì)算機(jī)系統(tǒng)的分支單元的一個(gè)實(shí)施例;
圖17C描繪根據(jù)現(xiàn)有技術(shù)并且其中可以實(shí)施本發(fā)明的一個(gè)優(yōu)選實(shí)施例的圖16的計(jì)算機(jī)系統(tǒng)的加載/存儲(chǔ)單元的一個(gè)實(shí)施例;
圖18描繪根據(jù)現(xiàn)有技術(shù)并且其中可以實(shí)施本發(fā)明的一個(gè)優(yōu)選實(shí)施例的被仿真主計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例;
圖19描繪根據(jù)現(xiàn)有技術(shù)并且其中可以實(shí)施本發(fā)明的一個(gè)優(yōu)選實(shí)施例的云計(jì)算節(jié)點(diǎn)的一個(gè)實(shí)施例;
圖20描繪根據(jù)現(xiàn)有技術(shù)并且其中可以實(shí)施本發(fā)明的一個(gè)優(yōu)選實(shí)施例的云計(jì)算環(huán)境的一個(gè)實(shí)施例;及
圖21描繪根據(jù)現(xiàn)有技術(shù)并且其中可以實(shí)施本發(fā)明的一個(gè)優(yōu)選實(shí)施例的抽象模型層的一個(gè)實(shí)例。
具體實(shí)施方式
根據(jù)一個(gè)或多個(gè)方面,提供一種工具,當(dāng)安裝了所述工具時(shí),所述工具從架構(gòu)移除選定架構(gòu)功能,以使得不能夠開(kāi)啟/關(guān)閉所述功能,而不管環(huán)境內(nèi)的其他控件。當(dāng)安裝了所述工具時(shí),不支持所述架構(gòu)功能。這好像所述選定架構(gòu)功能在所述架構(gòu)中不再可用,而事實(shí)上,可能已刪除、繞過(guò)或以其他方式消除實(shí)施所述工具的代碼。一個(gè)此類(lèi)架構(gòu)功能為虛擬地址轉(zhuǎn)換,諸如動(dòng)態(tài)地址轉(zhuǎn)換(DAT),且所述架構(gòu)例如為ESA/390。
在一特定實(shí)施例中,提供一種計(jì)算環(huán)境,其被配置為支持多個(gè)架構(gòu)模式,例如第一架構(gòu)模式(諸如,增強(qiáng)型模式,例如z/Architecture)及第二架構(gòu)模式(諸如,舊版模式,例如ESA/390)。在一個(gè)實(shí)施例中,第一架構(gòu)模式具有不同于第二架構(gòu)模式的架構(gòu)差異,諸如,第一架構(gòu)模式提供64位尋址且使用64位通用寄存器,且第二架構(gòu)模式提供31位尋址且使用32位通用寄存器。另外,諸如DAT的某些架構(gòu)功能為第一架構(gòu)模式所支持且可能不為第二架構(gòu)模式所支持。
雖然計(jì)算環(huán)境被配置為同時(shí)支持多個(gè)架構(gòu)模式,但其僅在這些模式中的一者中處理。因此,根據(jù)一方面,基于計(jì)算環(huán)境的處理器接收?qǐng)?zhí)行使用選定架構(gòu)功能的操作的請(qǐng)求,處理器基于是否已將所述功能自計(jì)算環(huán)境當(dāng)前正進(jìn)行處理所在的架構(gòu)模式中移除而執(zhí)行所述功能或提供不執(zhí)行所述功能的指示。
在另一個(gè)實(shí)施例中,計(jì)算環(huán)境為具有在處理器及主機(jī)所支持的多個(gè)客體虛擬機(jī)上執(zhí)行的主機(jī)控制程序的虛擬環(huán)境。主機(jī)正(例如)在第一架構(gòu)模式中處理;然而,由主機(jī)啟動(dòng)的客體虛擬機(jī)可能或可能不在與主機(jī)相同的架構(gòu)模式中處理。舉例而言,可在提供選定架構(gòu)功能的第一架構(gòu)模式中啟動(dòng)一個(gè)虛擬機(jī),且可在不提供該選定架構(gòu)功能的第二架構(gòu)模式中啟動(dòng)另一虛擬機(jī)。在一個(gè)實(shí)施例中,第二架構(gòu)模式提供第一架構(gòu)模式中的一組精簡(jiǎn)架構(gòu)功能。所述選定架構(gòu)功能并非架構(gòu)的一部分,因?yàn)橐褜⑵渥约軜?gòu)中移除(例如,在無(wú)實(shí)施所述功能的代碼的情況下建立的架構(gòu)的版本,或已繞過(guò)、刪除或以其他方式消除先前在架構(gòu)中用于支持此功能的代碼)。
在另一個(gè)實(shí)施例中,第二架構(gòu)模式可提供不同于第一架構(gòu)的功能或工具,但特定架構(gòu)能力可在第一架構(gòu)模式中提供而不在第二架構(gòu)模式中提供。在一個(gè)例示性實(shí)施例中,在第一架構(gòu)中提供DAT轉(zhuǎn)換,但在第二架構(gòu)中并不提供DAT轉(zhuǎn)換(采取由第一架構(gòu)定義的形式,或任何其他形式,例如,如可能已根據(jù)以下各者中的一者或多者提供:ESA/390、S/390、S/370、S/360、PowerPC、根據(jù)書(shū)籍3E的PowerPC、Intel/AMD x86、Itanium,或?qū)?yīng)于DAT或類(lèi)似DAT工具的任何其他架構(gòu)規(guī)格)。IBM、Z/OS、Z/VM、Z/Architecture、Processor Resource/Systems Manager、PowerPC和Power Systems為國(guó)際商業(yè)機(jī)器公司在全世界各地的注冊(cè)商標(biāo)。本文中使用的其他名稱(chēng)可為國(guó)際商業(yè)機(jī)器公司或其他公司的注冊(cè)商標(biāo)、商標(biāo)或產(chǎn)品名稱(chēng)。Intel和Itanium是英特爾公司或其子公司在美國(guó)或其他國(guó)家的商標(biāo)或注冊(cè)商標(biāo)。
如本文所指示,在一個(gè)實(shí)例中,在第一架構(gòu)中提供但在第二架構(gòu)中并不提供的架構(gòu)功能為虛擬地址轉(zhuǎn)換,諸如動(dòng)態(tài)地址轉(zhuǎn)換(DAT)。因此,在一特定實(shí)例中,在計(jì)算環(huán)境中提供無(wú)DAT(亦被稱(chēng)作NDAT)工具,其指示特定架構(gòu)模式(例如,舊版架構(gòu)模式)并不支持動(dòng)態(tài)地址轉(zhuǎn)換。所述工具消除(例如)動(dòng)態(tài)地址轉(zhuǎn)換(DAT)開(kāi)啟的配置在ESA/390架構(gòu)模式中的可能性。即,當(dāng)安裝及啟用此工具時(shí),ESA/390架構(gòu)模式中的配置無(wú)法使得DAT開(kāi)啟。開(kāi)啟DAT的嘗試造成(例如)無(wú)DAT異常程序中斷。在其他實(shí)施例中,指示其他異常代碼。
在一個(gè)實(shí)施例中,NDAT工具亦使得通常結(jié)合DAT轉(zhuǎn)換使用的一個(gè)或多個(gè)指令(諸如加載實(shí)地址(LRA)指令)不能夠被執(zhí)行。當(dāng)加載實(shí)地址指令能夠在第一架構(gòu)模式中執(zhí)行時(shí),(例如)防止其在第二架構(gòu)模式中執(zhí)行。
在一個(gè)實(shí)施例中,可在一個(gè)或多個(gè)計(jì)算環(huán)境(例如,處理器、LPAR、客體)中選擇性地啟用NDAT工具。然而,當(dāng)在計(jì)算環(huán)境中啟用NDAT工具時(shí),環(huán)境無(wú)法在第二架構(gòu)中使用DAT(即,無(wú)ESA/390DAT),而不管環(huán)境內(nèi)的其他控件的設(shè)定。這些其他控件被繞過(guò)或超控。
參看圖1A描述結(jié)合并使用無(wú)DAT工具的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的一個(gè)實(shí)例。參看圖1A,在一個(gè)實(shí)例中,計(jì)算環(huán)境100基于z/Architecture,所述z/Architecture由紐約阿蒙克市的國(guó)際商業(yè)機(jī)器公司提供。在標(biāo)題為“z/Architecture-操作原理(z/Architecture-Principles of Operation)”的公開(kāi)號(hào)為SA22-7932-09的IBM公開(kāi)(2012年9月,第10版)中描述了z/Architecture。盡管計(jì)算環(huán)境基于z/Architecture,但在一個(gè)實(shí)施例中,其亦支持一個(gè)或多個(gè)其他架構(gòu)配置,諸如ESA/390或ESA/390的子集。
作為一個(gè)實(shí)例,計(jì)算環(huán)境100包括中央處理器復(fù)合體(CPC)102,其經(jīng)由一個(gè)或多個(gè)控制單元108耦接至一個(gè)或多個(gè)輸入/輸出(I/O)設(shè)備106。中央處理器復(fù)合體102包括(例如)耦接至一個(gè)或多個(gè)中央處理器(亦即,中央處理單元(CPU)110)的處理器存儲(chǔ)器104(亦即,主存儲(chǔ)器、主存儲(chǔ)裝置、中央存儲(chǔ)裝置)及輸入/輸出子系統(tǒng)111,以上各者中的每一者在下文加以描述。
處理器存儲(chǔ)器104包括(例如)一個(gè)或多個(gè)分區(qū)112(例如,邏輯分區(qū)),及包含邏輯分區(qū)系統(tǒng)管理程序114及其他處理器固件115的處理器固件113。邏輯分區(qū)系統(tǒng)管理程序114的一個(gè)實(shí)例為紐約阿蒙克市的國(guó)際商業(yè)機(jī)器公司提供的Processor Resource/System Manager(PR/SM)。
邏輯分區(qū)充當(dāng)單獨(dú)系統(tǒng)且其中具有一個(gè)或多個(gè)應(yīng)用120及視情況具有駐留操作系統(tǒng)122,對(duì)于每一邏輯分區(qū),這些應(yīng)用可以是不同的。在一個(gè)實(shí)施例中,所述操作系統(tǒng)為紐約阿蒙克市的國(guó)際商業(yè)機(jī)器公司提供的z/OS操作系統(tǒng)、z/VM操作系統(tǒng)、z/Linux操作系統(tǒng)或TPF操作系統(tǒng)。邏輯分區(qū)112由邏輯分區(qū)系統(tǒng)管理程序114管理,所述邏輯分區(qū)系統(tǒng)管理程序由在處理器110上運(yùn)行的固件實(shí)施。如本文中所使用,固件包括(例如)處理器的微碼和/或毫碼(millicode)。其包括(例如)用于實(shí)施較高層級(jí)機(jī)器碼的硬件層級(jí)指令和/或數(shù)據(jù)結(jié)構(gòu)。在一個(gè)實(shí)施例中,其包括(例如)專(zhuān)屬碼,所述專(zhuān)屬碼通常作為包括受信任軟件的微碼或底層硬件所特有的微碼遞送,且控制操作系統(tǒng)對(duì)系統(tǒng)硬件的存取。
中央處理器110為分配給邏輯分區(qū)的物理處理器資源。具體地說(shuō),每一邏輯分區(qū)112具有一個(gè)或多個(gè)邏輯處理器,這些邏輯處理器中的每一者表示分配給該分區(qū)的所有或一部分物理處理器110。特定分區(qū)112的邏輯處理器可專(zhuān)用于該分區(qū),以便將底層處理器資源110保留用于該分區(qū);或與另一分區(qū)共享所述底層處理器資源,以使得底層處理器資源有可能可用于另一分區(qū)。在一個(gè)實(shí)例中,CPU中的一者或多者包括本文所描述的無(wú)DAT(NDAT)工具130的各方面。
輸入/輸出子系統(tǒng)111引導(dǎo)輸入/輸出設(shè)備106與主存裝置104之間的信息流。其耦接至中央處理復(fù)合體,其中其可為中央處理復(fù)合體的一部分或與中央處理復(fù)合體分離。I/O子系統(tǒng)減輕中央處理器的與輸入/輸出設(shè)備直接通信的任務(wù)且準(zhǔn)許數(shù)據(jù)處理與輸入/輸出處理同時(shí)進(jìn)行。為了提供通信,I/O子系統(tǒng)采用I/O通信適配器。存在各種類(lèi)型的通信適配器,包括(例如)通道、I/O適配器、PCI卡、以太網(wǎng)卡、小型計(jì)算機(jī)存儲(chǔ)接口(SCSI)卡等。在本文所描述的特定實(shí)例中,I/O通信適配器為通道,且因此,I/O子系統(tǒng)在本文中被稱(chēng)作通道子系統(tǒng)。然而,這僅為一個(gè)實(shí)例??墒褂闷渌?lèi)型的I/O子系統(tǒng)。
I/O子系統(tǒng)在管理至輸入/輸出設(shè)備106或來(lái)自輸入/輸出設(shè)備106的信息流中使用一個(gè)或多個(gè)輸入/輸出路徑作為通信鏈路。在此特定實(shí)例中,這些路徑被稱(chēng)為通道路徑,因?yàn)橥ㄐ胚m配器為通道。
參看圖1B描述結(jié)合且使用無(wú)DAT工具的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的另一個(gè)實(shí)例。在此實(shí)例中,計(jì)算環(huán)境150包括提供虛擬機(jī)支持的中央處理器復(fù)合體152。CPC 152經(jīng)由一個(gè)或多個(gè)控制單元108耦接至一個(gè)或多個(gè)輸入/輸出(I/O)設(shè)備106。中央處理器復(fù)合體152包括(例如)耦接至一個(gè)或多個(gè)中央處理器(亦即,中央處理單元(CPU))110的處理器存儲(chǔ)器154(亦即,主存儲(chǔ)器、主存儲(chǔ)裝置、中央存儲(chǔ)裝置),及輸入/輸出子系統(tǒng)111。
處理器存儲(chǔ)器154包括(例如)一個(gè)或多個(gè)虛擬機(jī)162,及包含主機(jī)系統(tǒng)管理程序164及其他處理器固件165的處理器固件163。主機(jī)系統(tǒng)管理程序164的一個(gè)實(shí)例為紐約阿蒙克市的國(guó)際商業(yè)機(jī)器公司提供的
CPC的虛擬機(jī)支持提供操作大量虛擬機(jī)162的能力,每一虛擬機(jī)能夠托管客體操作系統(tǒng)172(諸如,)。每一虛擬機(jī)162能夠充當(dāng)單獨(dú)系統(tǒng)。亦即,每一虛擬機(jī)可獨(dú)立地進(jìn)行重設(shè),托管客體操作系統(tǒng),且用不同程序120操作。在虛擬機(jī)中運(yùn)行的操作系統(tǒng)或應(yīng)用程序看起來(lái)能夠存取完全及完整系統(tǒng),但實(shí)際上,其僅能夠存取其可獲得的一部分。Linux是Linus Torvalds在美國(guó)和/或其他國(guó)家的注冊(cè)商標(biāo)。
在此特定實(shí)例中,虛擬機(jī)的模型為V=V模型,其中虛擬機(jī)的絕對(duì)或真實(shí)存儲(chǔ)器依靠主機(jī)虛擬存儲(chǔ)器,而非真實(shí)或絕對(duì)存儲(chǔ)器。每一虛擬機(jī)具有虛擬線(xiàn)性存儲(chǔ)空間。物理資源由主機(jī)164擁有,且共享物理資源由主機(jī)在需要時(shí)分派給客體操作系統(tǒng),以滿(mǎn)足其處理需求。此V=V虛擬機(jī)(亦即,可分頁(yè)客體)模型假定:客體操作系統(tǒng)與物理共享機(jī)器資源之間的交互由主機(jī)控制,因?yàn)榇罅靠腕w通常妨礙主機(jī)簡(jiǎn)單地分割硬件資源及將硬件資源指派給被配置客體。在標(biāo)題為“z/VM:運(yùn)行客體操作系統(tǒng)(z/VM:Running Guest Operating Systems)”的公開(kāi)號(hào)為SC24-5997-02的公開(kāi)(2001年10月)中進(jìn)一步描述V=V模型的一個(gè)或多個(gè)方面。
中央處理器110為可指派給虛擬機(jī)的物理處理器資源。舉例而言,虛擬機(jī)162包括一個(gè)或多個(gè)邏輯處理器,這些邏輯處理器中的每一者表示可動(dòng)態(tài)地分配給虛擬機(jī)的所有或一部分物理處理器資源110。虛擬機(jī)162由主機(jī)164管理。
在一個(gè)實(shí)施例中,主機(jī)(例如,)及處理器(例如,System z)硬件/固件彼此以受控合作方式交互以便處理V=V客體操作系統(tǒng)操作,而不需要自客體操作系統(tǒng)及主機(jī)傳送控制/將控制傳送至客體操作系統(tǒng)及主機(jī)??山?jīng)由允許針對(duì)可分頁(yè)存儲(chǔ)模式客體解釋性地執(zhí)行指令的工具直接執(zhí)行客體操作,而無(wú)需主機(jī)干預(yù)。此工具提供主機(jī)能夠發(fā)出的開(kāi)始解釋性執(zhí)行(SIE)指令,從而指定被稱(chēng)為狀態(tài)描述的控制塊,該控制塊保持客體(虛擬機(jī))狀態(tài)及控件,諸如執(zhí)行控件及模式控件。所述指令將機(jī)器置于直接處理客體指令及中斷的解釋性執(zhí)行模式中,直至出現(xiàn)需要主機(jī)注意的條件為止。當(dāng)出現(xiàn)此類(lèi)條件時(shí),結(jié)束解釋性執(zhí)行,且呈現(xiàn)主機(jī)中斷,或SIE指令完成存儲(chǔ)所遇到的條件的細(xì)節(jié);此后一動(dòng)作被稱(chēng)為攔截。在System/370Extended Architecture/Interpretive Execution(IBM公開(kāi)第SA22-7095-01號(hào),1985年9月)中描述了解釋性執(zhí)行的一個(gè)實(shí)例。
具體地說(shuō),在一個(gè)實(shí)施例中,解釋性執(zhí)行工具提供用于虛擬機(jī)的執(zhí)行的指令。被稱(chēng)為開(kāi)始解釋性執(zhí)行(SIE)的此指令由建立客體執(zhí)行環(huán)境的主機(jī)發(fā)出。主機(jī)是直接管理真實(shí)機(jī)器的控制程序且客體是指任何虛擬或解釋機(jī)器。由發(fā)出SIE指令的主機(jī)將機(jī)器置于解釋性執(zhí)行模式中。在此模式中,機(jī)器提供選定架構(gòu)(例如,z/Architecture、ESA/390)的功能。所述功能尤其包括(例如)特權(quán)程序指令及問(wèn)題程序指令的執(zhí)行、地址轉(zhuǎn)換、中斷處置,及計(jì)時(shí)。機(jī)器被稱(chēng)為解釋其在虛擬機(jī)的內(nèi)容上下文中執(zhí)行的功能。
SIE指令具有被稱(chēng)為狀態(tài)描述的操作數(shù),其包括與客體的當(dāng)前狀態(tài)相關(guān)的信息。當(dāng)SIE的執(zhí)行結(jié)束時(shí),在將控制返回至主機(jī)之前,將表示客體的狀態(tài)的信息(包括客體PSW)存儲(chǔ)于該狀態(tài)描述中。
解釋性執(zhí)行架構(gòu)提供用于絕對(duì)存儲(chǔ)的存儲(chǔ)模式,其被稱(chēng)作可分頁(yè)存儲(chǔ)模式。在可分頁(yè)存儲(chǔ)模式中,主機(jī)層級(jí)處的動(dòng)態(tài)地址轉(zhuǎn)換用于映射客體主存儲(chǔ)裝置。主機(jī)具有以下能力:通過(guò)使用主機(jī)DAT將可分頁(yè)存儲(chǔ)模式客體的真實(shí)存儲(chǔ)分散至主機(jī)真實(shí)存儲(chǔ)裝置中的任何位置處的可用幀,及將客體數(shù)據(jù)分頁(yè)出至輔助存儲(chǔ)裝置。當(dāng)分配真實(shí)機(jī)器資源,同時(shí)保持用于客體的一系列連續(xù)絕對(duì)存儲(chǔ)的預(yù)期外觀(guān)時(shí),此技術(shù)提供靈活性。
虛擬機(jī)環(huán)境可能要求應(yīng)用兩次DAT:第一次在客體層級(jí),經(jīng)由客體管理轉(zhuǎn)換表將客體虛擬地址轉(zhuǎn)換成客體實(shí)地址,且接著,對(duì)于可分頁(yè)客體,在主機(jī)層級(jí),將對(duì)應(yīng)主機(jī)虛擬地址轉(zhuǎn)換成主機(jī)實(shí)地址。
在某些狀況下,主機(jī)將在通常委派給機(jī)器的操作中調(diào)解。為此目的,狀態(tài)描述包括可由主機(jī)設(shè)定以“截獲”或“攔截”特定條件的控件。攔截控制位請(qǐng)求機(jī)器在遇到特定客體指令時(shí)將控制返回給主機(jī)仿真。干預(yù)控件捕獲啟用狀態(tài)至PSW中的引入,以使得主機(jī)能夠呈現(xiàn)中斷,該中斷針對(duì)客體保持未決??稍诮忉屵M(jìn)行的同時(shí)由主機(jī)在另一真實(shí)處理器上異步地設(shè)定干預(yù)控件。機(jī)器周期性地自存儲(chǔ)裝置重新取回控件,以使得將識(shí)別更新后的值。藉此可使得客體中斷為未決的,而不會(huì)過(guò)早地干擾解釋。
在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,對(duì)于虛擬環(huán)境,在SIE狀態(tài)描述中提供執(zhí)行控制指示符。大體而言,如果此架構(gòu)功能的指示符為0,則在虛擬機(jī)中,并不會(huì)使得所述功能為可用的,且如果指示符為1,則嘗試相關(guān)聯(lián)功能的解釋性執(zhí)行。在一個(gè)實(shí)例中,當(dāng)可分頁(yè)存儲(chǔ)模式客體在ESA/390架構(gòu)模式中且指示符為1時(shí),將NDAT工具安裝于客體中;當(dāng)指示符為0時(shí),并不安裝NDAT。當(dāng)安裝NDAT時(shí),客體并不使用DAT,而不管可管理DAT功能的可用性的其他控件(例如,控制虛擬環(huán)境中的執(zhí)行的其他控件或工具)。(在另一個(gè)實(shí)施例中,將NDAT提供于虛擬環(huán)境中作為全局工具,而不供應(yīng)特定指示符。)
除執(zhí)行控件之外,狀態(tài)描述中的模式控件亦指定客體是在ESA/390中抑或z/Architecture模式中執(zhí)行且選擇多種方式中的一者來(lái)表示主機(jī)存儲(chǔ)裝置中的客體虛擬機(jī)的客體主存儲(chǔ)裝置。根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例,在狀態(tài)控件中提供控制位以在客體處于第一架構(gòu)模式中及處于第二架構(gòu)模式中(例如,分別為z/Architecture及ESA/390)之間進(jìn)行選擇。根據(jù)本發(fā)明的另一優(yōu)選實(shí)施例,兩個(gè)相異指令可為主機(jī)提供創(chuàng)建第一及第二客體虛擬機(jī)的能力,例如,可提供相異指令SIEz及SIEe以分別在z/Architecture及ESA/390模式中啟動(dòng)客體機(jī)器。
SIE指令運(yùn)行由控制程序分派的虛擬服務(wù)器,直至已消耗服務(wù)器的時(shí)間片為止或直至服務(wù)器想要執(zhí)行硬件無(wú)法虛擬化或控制程序?qū)⒅匦氯〉每刂频牟僮鳛橹?。在那時(shí),SIE指令結(jié)束且將控制返回給控制程序,所述控制程序仿真所述指令或?qū)⑻摂M服務(wù)器置于非自愿等待狀態(tài)。當(dāng)完成時(shí),控制程序再次安排虛擬服務(wù)器使其運(yùn)行,且循環(huán)再次開(kāi)始。以此方式,使得CPU的完整能力及速度可用于虛擬服務(wù)器。僅攔截需要來(lái)自控制程序的輔助或由控制程序進(jìn)行的驗(yàn)證的那些特權(quán)指令。這些SIE攔截(如其被稱(chēng)為地那樣)亦供控制程序用于對(duì)虛擬服務(wù)器可對(duì)真實(shí)設(shè)備執(zhí)行的操作施加限制。
在ESA/390解釋性執(zhí)行架構(gòu)(用于VM/ESA的基礎(chǔ),Osisek等人,IBM系統(tǒng)日志,第30卷,第1號(hào),1991年1月,第34至51頁(yè))中描述了關(guān)于SIE的進(jìn)一步細(xì)節(jié)。
在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,將NDAT工具自動(dòng)地安裝于ESA/390客體中,而無(wú)需參考任何控件。因此,在不參考SIE狀態(tài)控制塊中的任何控件或至SIE或其他虛擬機(jī)建立指令的其他選項(xiàng)的情況下,對(duì)應(yīng)于ESA/390模式的虛擬機(jī)不能夠存取DAT工具。
參看圖2描述結(jié)合并使用無(wú)DAT工具的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的另一個(gè)實(shí)例。在此實(shí)例中,計(jì)算環(huán)境200包括未被分區(qū)的環(huán)境,其被配置為用于多種架構(gòu)模式,包括z/Architecture及ESA/390或ESA/390的子集。其包括(例如)處理器(中央處理單元-CPU)202,處理器202包括(例如)無(wú)DAT(NDAT)工具204及一個(gè)或多個(gè)高速緩存206。處理器202通信地耦接至具有一個(gè)或多個(gè)高速緩存210的存儲(chǔ)器部分208,且耦接至輸入/輸出(I/O)子系統(tǒng)212。I/O子系統(tǒng)212通信地耦接至外部I/O設(shè)備214,其可包括(例如)數(shù)據(jù)輸入設(shè)備、傳感器和/或諸如顯示器的輸出設(shè)備。
參看圖3A描述結(jié)合并使用無(wú)DAT工具的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的本發(fā)明的另一優(yōu)選實(shí)例。在此實(shí)例中,計(jì)算環(huán)境300包括(例如)本機(jī)中央處理單元(CPU)302、存儲(chǔ)器304,及一個(gè)或多個(gè)輸入/輸出設(shè)備和/或接口306,前述各者經(jīng)由(例如)一個(gè)或多個(gè)總線(xiàn)308和/或其他連接耦接至彼此。作為實(shí)例,計(jì)算環(huán)境300可包括:由紐約阿蒙克市的國(guó)際商業(yè)機(jī)器公司提供的PowerPC處理器或Power Systems服務(wù)器;由加利福尼亞帕洛阿爾托的惠普公司提供的具有Intel Itanium II處理器的HP Superdome;和/或基于由國(guó)際商業(yè)機(jī)器公司、惠普公司、英特爾公司、Oracle公司或其他公司提供的架構(gòu)的其他機(jī)器。
本機(jī)中央處理單元302包括一個(gè)或多個(gè)本機(jī)寄存器310,諸如在環(huán)境內(nèi)的處理期間使用的一個(gè)或多個(gè)通用寄存器和/或一個(gè)或多個(gè)專(zhuān)用寄存器,以及無(wú)DAT工具311。這些寄存器包括表示在任何特定時(shí)間點(diǎn)的環(huán)境的狀態(tài)的信息。
此外,本機(jī)中央處理單元302執(zhí)行存儲(chǔ)于存儲(chǔ)器304中的指令及代碼。在一特定實(shí)例中,中央處理單元執(zhí)行存儲(chǔ)于存儲(chǔ)器304中的仿真器代碼312。此代碼使得在一架構(gòu)中配置的計(jì)算環(huán)境能夠仿真一個(gè)或多個(gè)其他架構(gòu)。舉例而言,仿真器代碼312允許基于除z/Architecture以外的架構(gòu)的機(jī)器(諸如,PowerPC處理器、Power Systems服務(wù)器、HP Superdome服務(wù)器等)仿真z/Architecture(和/或ESA/390)及執(zhí)行基于z/Architecture開(kāi)發(fā)的軟件及指令。
參看圖3B描述與仿真器代碼312有關(guān)的進(jìn)一步細(xì)節(jié)。存儲(chǔ)于存儲(chǔ)器304中的客體指令350包括被開(kāi)發(fā)以在除本機(jī)CPU 302的架構(gòu)以外的架構(gòu)中執(zhí)行的軟件指令(例如,與機(jī)器指令相關(guān))。舉例而言,客體指令350可被設(shè)計(jì)以在z/Architecture處理器202上執(zhí)行,但改為在本機(jī)CPU 302上被仿真,所述本機(jī)CPU 302可為(例如)Intel Itanium II處理器。在一個(gè)實(shí)例中,仿真器代碼312包括指令取回例程352以自存儲(chǔ)器304中獲得一個(gè)或多個(gè)客體指令350,及視情況提供用于所獲得的指令的本地緩沖。所述仿真器代碼亦包括指令轉(zhuǎn)換例程354以判定已獲得的客體指令的類(lèi)型且將所述客體指令轉(zhuǎn)換成一個(gè)或多個(gè)對(duì)應(yīng)的本機(jī)指令356。此轉(zhuǎn)換包括(例如)識(shí)別待由客體指令執(zhí)行的功能及選擇本機(jī)指令(多個(gè))以執(zhí)行該功能。
另外,仿真器代碼312包括仿真控制例程360以使得執(zhí)行本機(jī)指令。仿真控制例程360可使得本機(jī)CPU 302執(zhí)行仿真一個(gè)或多個(gè)先前所獲得的客體指令的本機(jī)指令的例程,并且在此執(zhí)行結(jié)束時(shí),將控制返回給指令取回例程以仿真下一客體指令或一組客體指令的獲得。本機(jī)指令356的執(zhí)行可包括將數(shù)據(jù)自存儲(chǔ)器304加載至寄存器;將數(shù)據(jù)自寄存器存儲(chǔ)回存儲(chǔ)器;或執(zhí)行某一類(lèi)型的算術(shù)或邏輯運(yùn)算(如由轉(zhuǎn)換例程判定的)。
每一例程(例如)以軟件來(lái)實(shí)施,軟件存儲(chǔ)于存儲(chǔ)器中且由本機(jī)中央處理單元302執(zhí)行。在其他實(shí)例中,這些例程或操作中的一者或多者以固件、硬件、軟件或它們的某一組合來(lái)實(shí)施。所仿真處理器的寄存器可使用本機(jī)CPU的寄存器310或通過(guò)使用存儲(chǔ)器304中的位置來(lái)仿真。在多個(gè)實(shí)施例中,客體指令350、本機(jī)指令356及仿真器代碼312可駐留于同一存儲(chǔ)器中或可分散于不同存儲(chǔ)設(shè)備中。
根據(jù)圖3A及圖3B的仿真系統(tǒng)的本發(fā)明的至少一個(gè)優(yōu)選實(shí)施例,具有針對(duì)第二架構(gòu)(例如,ESA/390)安裝但針對(duì)第一架構(gòu)(例如,z/Architecture)不安裝的NDAT工具的系統(tǒng)的仿真器包含實(shí)施用于z/Architecture模式的DAT轉(zhuǎn)換的仿真例程,且不包含實(shí)施用于ESA/390架構(gòu)模式的DAT轉(zhuǎn)換的仿真例程。實(shí)際上,用于第二架構(gòu)模式的仿真器代碼312包括用于判定在第二架構(gòu)模式中運(yùn)行的仿真程序是否正試圖啟用DAT轉(zhuǎn)換的測(cè)試,且如果在第二架構(gòu)模式中執(zhí)行的仿真程序正試圖啟用DAT轉(zhuǎn)換,則直接產(chǎn)生一個(gè)或多個(gè)錯(cuò)誤指示。在本發(fā)明的另一個(gè)優(yōu)選實(shí)施例中,當(dāng)使用公用代碼例程實(shí)施第一及第二架構(gòu)時(shí),當(dāng)由程序調(diào)用DAT相關(guān)功能時(shí),執(zhí)行第一測(cè)試以判定當(dāng)前架構(gòu)模式。如果當(dāng)前架構(gòu)模式對(duì)應(yīng)于第一架構(gòu)模式,則控制轉(zhuǎn)移至實(shí)施用于第一架構(gòu)模式的DAT的代碼。在當(dāng)前模式對(duì)應(yīng)于第二架構(gòu)模式時(shí),控制轉(zhuǎn)移至錯(cuò)誤例程且調(diào)用對(duì)應(yīng)于DAT轉(zhuǎn)換的啟用或DAT轉(zhuǎn)換的執(zhí)行的代碼。
根據(jù)本發(fā)明的至少一個(gè)優(yōu)選實(shí)施例,結(jié)合DAT使用數(shù)個(gè)指令(例如,LRA),且當(dāng)安裝了NDAT工具時(shí),視情況在第二架構(gòu)模式中停用數(shù)個(gè)指令。根據(jù)本發(fā)明的至少一個(gè)優(yōu)選實(shí)施例,仿真器代碼312不包含用于仿真與在第二架構(gòu)模式中結(jié)合DAT使用的停用指令對(duì)應(yīng)的指令的代碼。根據(jù)本發(fā)明的一個(gè)此類(lèi)優(yōu)選實(shí)施例,仿真器代碼312確實(shí)包含用于仿真與在第一架構(gòu)模式中結(jié)合DAT使用的指令對(duì)應(yīng)的指令的代碼。在本發(fā)明的另一個(gè)優(yōu)選實(shí)施例中,當(dāng)使用公共代碼例程實(shí)施第一及第二架構(gòu)時(shí),當(dāng)由程序調(diào)用結(jié)合DAT有關(guān)功能使用的指令時(shí),執(zhí)行第一測(cè)試以判定當(dāng)前架構(gòu)模式。如果當(dāng)前模式對(duì)應(yīng)于第一架構(gòu)模式,則控制轉(zhuǎn)移至實(shí)施用于第一架構(gòu)模式的這些指令的代碼。在當(dāng)前模式對(duì)應(yīng)于第二架構(gòu)模式時(shí),控制轉(zhuǎn)移至錯(cuò)誤例程且調(diào)用與結(jié)合DAT轉(zhuǎn)換或DAT轉(zhuǎn)換的執(zhí)行使用的指令對(duì)應(yīng)的代碼。
上文所描述的計(jì)算環(huán)境僅為可使用的計(jì)算環(huán)境的實(shí)例。可使用其他環(huán)境,包括但不限于其他未分區(qū)環(huán)境、其他分區(qū)環(huán)境和/或其他所仿真環(huán)境;實(shí)施例不限于任何一種環(huán)境。另外,盡管本文描述特定架構(gòu)的實(shí)例且描述特定架構(gòu)差異及不同架構(gòu)功能,但這些僅為實(shí)例??墒褂闷渌軜?gòu),可存在其他架構(gòu)差異,和/或架構(gòu)中的一者或多者可能支持或可能不支持其他架構(gòu)功能。
在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,每一計(jì)算環(huán)境被配置為支持多個(gè)架構(gòu),諸如提供第一組架構(gòu)功能的第一架構(gòu)(例如,z/Architecture),所述架構(gòu)功能包括但不限于動(dòng)態(tài)地址轉(zhuǎn)換;及提供第二組架構(gòu)功能的第二架構(gòu)(例如,ESA/390)。第二組架構(gòu)功能為一組精簡(jiǎn)功能,其中包括在第一組架構(gòu)功能中的這些功能中的一者或多者(諸如,DAT)不存在于第二組架構(gòu)功能中。
動(dòng)態(tài)地址轉(zhuǎn)換(DAT)提供以下能力:在任意時(shí)刻中斷程序的執(zhí)行,將程序及其數(shù)據(jù)記錄于輔助存儲(chǔ)裝置(諸如,直接存取存儲(chǔ)設(shè)備)中,且在稍后時(shí)間將程序及數(shù)據(jù)返回到不同主存儲(chǔ)地址以用于恢復(fù)執(zhí)行。在主存儲(chǔ)裝置與輔助存儲(chǔ)裝置之間傳送程序及其數(shù)據(jù)可分次執(zhí)行,且將信息返回給主存儲(chǔ)裝置可響應(yīng)于CPU試圖在執(zhí)行需要信息時(shí)存取信息而發(fā)生??蓤?zhí)行這些功能而不改變或檢查程序及其數(shù)據(jù),并不需要用于重新定位程序的任何顯式編程慣例,且除了涉及時(shí)間延遲以外并不干擾程序的執(zhí)行。
借助操作系統(tǒng)的適當(dāng)支持,可使用動(dòng)態(tài)地址轉(zhuǎn)換工具來(lái)向用戶(hù)提供一系統(tǒng),其中存儲(chǔ)空間看起來(lái)比在配置中可用的主存儲(chǔ)裝置大。此顯而易見(jiàn)的主存儲(chǔ)裝置被稱(chēng)作虛擬存儲(chǔ)裝置,且用于指定虛擬存儲(chǔ)裝置中的位置的地址被稱(chēng)作虛擬地址。用戶(hù)的虛擬存儲(chǔ)裝置可遠(yuǎn)遠(yuǎn)超出在配置中可用的主存儲(chǔ)裝置的大小且通常在輔助存儲(chǔ)裝置中維護(hù)用戶(hù)的虛擬存儲(chǔ)裝置。虛擬存儲(chǔ)裝置被視為由被稱(chēng)為頁(yè)的地址塊構(gòu)成。僅指派虛擬存儲(chǔ)器的最近引用的頁(yè)以占據(jù)物理主存儲(chǔ)裝置的塊。當(dāng)用戶(hù)引用并不出現(xiàn)在主存儲(chǔ)裝置中的虛擬存儲(chǔ)裝置的頁(yè)時(shí),將頁(yè)帶入以替換主存儲(chǔ)裝置中不太可能被需要的頁(yè)。可由操作系統(tǒng)來(lái)執(zhí)行存儲(chǔ)裝置的頁(yè)的調(diào)換而無(wú)需用戶(hù)了解。
與虛擬存儲(chǔ)裝置相關(guān)聯(lián)的虛擬地址序列被稱(chēng)為地址空間。借助操作系統(tǒng)的適當(dāng)支持,可使用動(dòng)態(tài)地址轉(zhuǎn)換工具來(lái)提供數(shù)個(gè)地址空間。這些地址空間可用于在用戶(hù)之間提供各種程度的隔離。此類(lèi)支持能夠包括用于每一用戶(hù)的完全不同的地址空間,從而提供完全隔離,或可通過(guò)將每一地址空間的一部分映射至單一公共存儲(chǔ)區(qū)域來(lái)提供共享區(qū)域。亦提供準(zhǔn)許半特權(quán)程序存取一個(gè)以上此類(lèi)地址空間的指令。動(dòng)態(tài)地址轉(zhuǎn)換提供(例如)虛擬地址自多個(gè)不同地址空間的轉(zhuǎn)換,而不需要改變控制寄存器中的轉(zhuǎn)換參數(shù)。這些地址空間被稱(chēng)為主要地址空間、次要地址空間,及AR指定地址空間。特權(quán)程序亦可導(dǎo)致存取歸屬(home)地址空間。
在使用來(lái)自外部介質(zhì)的新信息替換主存儲(chǔ)裝置的塊的處理中,應(yīng)判定替換哪一塊及是否應(yīng)記錄被替換的塊且將其保留于輔助存儲(chǔ)裝置中。為了輔助進(jìn)行此決策處理,使參考位及改變位與存儲(chǔ)鍵相關(guān)聯(lián)。
可針對(duì)由CPU產(chǎn)生的指令及數(shù)據(jù)地址指定動(dòng)態(tài)地址轉(zhuǎn)換。
可在24位、31位或64位尋址模式中執(zhí)行地址計(jì)算。當(dāng)在24位或31位尋址模式中執(zhí)行地址計(jì)算時(shí),分別將40或33個(gè)0附加在左側(cè)以形成64位地址。因此,所得邏輯地址的長(zhǎng)度為64位。在一個(gè)實(shí)施例中,由動(dòng)態(tài)地址轉(zhuǎn)換形成的真實(shí)或絕對(duì)地址及接著由加前綴(prefixing)形成的絕對(duì)地址的長(zhǎng)度為64位。
動(dòng)態(tài)地址轉(zhuǎn)換是在存儲(chǔ)參考期間將虛擬地址轉(zhuǎn)換成對(duì)應(yīng)真實(shí)或絕對(duì)地址的處理。虛擬地址可為主要虛擬地址、次要虛擬地址、存取寄存器(AR)指定虛擬地址,或歸屬虛擬地址。分別借助主要、次要、AR指定或歸屬地址空間控制組件來(lái)轉(zhuǎn)換地址。在選擇適當(dāng)?shù)刂房臻g控制組件之后,針對(duì)所有四種類(lèi)型的虛擬地址,轉(zhuǎn)換處理是相同的。地址空間控制組件可為指定2G字節(jié)地址空間的段表名稱(chēng)、指定4T字節(jié)、8P字節(jié)或16E字節(jié)空間的區(qū)表名稱(chēng),或指定16E字節(jié)空間的真實(shí)空間名稱(chēng)。(字母K、M、G、T、P及E分別表示千、210;兆、220;吉、230;太、240;千兆、250;及千兆兆、260)。段表名稱(chēng)或區(qū)表名稱(chēng)使得借助于由操作系統(tǒng)在真實(shí)或絕對(duì)存儲(chǔ)空間中建立的表來(lái)執(zhí)行轉(zhuǎn)換。真實(shí)空間名稱(chēng)使得簡(jiǎn)單地將虛擬地址視為實(shí)地址,而無(wú)需使用存儲(chǔ)空間中的表。
在轉(zhuǎn)換處理中,當(dāng)使用段表名稱(chēng)或區(qū)表名稱(chēng)時(shí),識(shí)別三種類(lèi)型的信息單元-區(qū)、段及頁(yè)。區(qū)為橫跨(例如)2G字節(jié)且在2G字節(jié)邊界處開(kāi)始的順序虛擬地址塊。段為橫跨(例如)1M字節(jié)且在1M字節(jié)邊界處開(kāi)始的順序虛擬地址塊。頁(yè)為橫跨(例如)4K字節(jié)且在4K字節(jié)邊界處開(kāi)始的順序虛擬地址塊。
因此,將虛擬地址劃分成四個(gè)主要字段。位0至32被稱(chēng)為區(qū)索引(RX),位33至43被稱(chēng)為段索引(SX),且位44至51被稱(chēng)為頁(yè)索引(PX),且位52至63被稱(chēng)為字節(jié)索引(BX)。
如由其地址空間控制組件判定的,虛擬地址空間可為包括一個(gè)區(qū)的2G字節(jié)空間,或其可高達(dá)包括高達(dá)8G個(gè)區(qū)的16E字節(jié)空間。在一個(gè)實(shí)例中,應(yīng)用于2G字節(jié)地址空間的虛擬地址的RX部分應(yīng)全部為0;否則,識(shí)別到異常。
將地址空間的RX部分自身劃分成三個(gè)字段。位0至10被稱(chēng)為區(qū)第一索引(RFX),位11至21被稱(chēng)為區(qū)第二索引(RSX),且位22至32被稱(chēng)為區(qū)第三索引(RTX)。
參看圖4描述將虛擬地址轉(zhuǎn)換成實(shí)地址的一個(gè)實(shí)例。在此實(shí)例中,地址空間控制組件400包括表原點(diǎn)402,以及名稱(chēng)類(lèi)型(DT)控件404,所述名稱(chēng)類(lèi)型控件為用于進(jìn)行轉(zhuǎn)換的開(kāi)始層級(jí)的指示(亦即,關(guān)于將在分層地址轉(zhuǎn)換中的哪一層級(jí)開(kāi)始的指示)。在使用表原點(diǎn)402及DT 404的情況下,特定表的原點(diǎn)被定位。接著,基于該表,使用虛擬地址的位對(duì)特定表編索引以獲得下一層級(jí)表的原點(diǎn)。舉例而言,如果選擇區(qū)第一表406,則使用虛擬地址的位0至10(RFX)408對(duì)區(qū)第一表編索引以獲得區(qū)第二表410的原點(diǎn)。接著,使用虛擬地址的位11至21(RSX)412對(duì)區(qū)第二表410編索引以獲得區(qū)第三表414的原點(diǎn)。類(lèi)似地,使用虛擬地址的位22至32(RTX)416對(duì)區(qū)第三表414編索引以獲得段表418的原點(diǎn)。接著,使用虛擬地址的位33至43(SX)420對(duì)段表418編索引以獲得頁(yè)表422的原點(diǎn),且使用虛擬地址的位44至51(PX)424對(duì)頁(yè)表422編索引以獲得具有頁(yè)幀實(shí)地址426的頁(yè)表表項(xiàng)(PTE)425。接著將頁(yè)幀實(shí)地址與偏移428(位52至63)組合(例如,串接)以獲得實(shí)地址。
如本文所描述,在一方面中,動(dòng)態(tài)地址轉(zhuǎn)換工具并不包括在由選定架構(gòu)提供的一組可用功能中。具體地說(shuō),在一個(gè)實(shí)例中,提供無(wú)DAT工具,其指示并不支持DAT。在計(jì)算環(huán)境中可通過(guò)安裝無(wú)DAT工具且視情況設(shè)定指示已安裝無(wú)DAT工具的指示符(諸如,工具位,例如,位140)來(lái)提供該無(wú)DAT工具。在一個(gè)實(shí)例中,如果所述位被設(shè)定為1,則已安裝工具。盡管在一個(gè)實(shí)施例中,經(jīng)由工具位啟用該工具,但在其他實(shí)施例中,可通過(guò)其他機(jī)制來(lái)啟用該工具。舉例而言,在具有虛擬客體的環(huán)境中,可默認(rèn)啟用該工具。
另外,可通過(guò)提供不包括DAT工具的選定架構(gòu)的一子集或一組精簡(jiǎn)的選定架構(gòu)來(lái)提供無(wú)DAT工具。在此環(huán)境中,可能并不存在關(guān)于并不支持DAT工具的任何顯式指示,其只是不存在于該架構(gòu)中。在一個(gè)實(shí)施例中,在實(shí)施z/Architecture的模型上,無(wú)DAT工具(亦被稱(chēng)作NDAT、ESA/390-無(wú)DAT或390NDAT)可能為可用的。所述工具消除在ESA/390架構(gòu)模式中存在動(dòng)態(tài)地址轉(zhuǎn)換(DAT)開(kāi)啟的配置的可能性。亦即,當(dāng)提供NDAT工具時(shí),ESA/390架構(gòu)模式中的配置無(wú)法使得DAT開(kāi)啟。在一個(gè)實(shí)施例中,開(kāi)啟DAT的嘗試造成無(wú)DAT異常程序中斷。在其他實(shí)施例中,提供其他程序中斷代碼或指示錯(cuò)誤的其他方式。在又一個(gè)實(shí)施例中,并不指示錯(cuò)誤,而是DAT保持停用。
在一個(gè)實(shí)施例中,在被配置用于該工具的處理器中啟用無(wú)DAT工具為一選項(xiàng);但在其他實(shí)施例中,無(wú)DAT工具被自動(dòng)地在計(jì)算環(huán)境的所有處理器(或在又一個(gè)實(shí)施例中,選定處理器)上安裝及啟用。在一特定實(shí)施例中,將按客體-2配置(第二級(jí)客體,其中所述客體由另一客體初始化)安裝無(wú)DAT工具。在此配置中,如果客體-2在ESA/390中初始化,則其將不能夠使用DAT;但是客體-1及主機(jī)處理器可在z/Architecture中進(jìn)行初始化,且因此能夠使用DAT。另外,在一個(gè)實(shí)施例中,可在ESA/390中啟動(dòng)客體-1或主機(jī)且不啟用無(wú)DAT工具。因此,客體-1或主機(jī)可使用DAT,同時(shí)針對(duì)客體-2安裝無(wú)DAT,且因此,當(dāng)在ESA/390中時(shí),客體-2無(wú)法使用DAT。
當(dāng)無(wú)DAT工具安裝于支持多種架構(gòu)模式的計(jì)算環(huán)境上時(shí),當(dāng)環(huán)境處于第一架構(gòu)模式(諸如,z/Architecture架構(gòu)模式)中時(shí),可執(zhí)行DAT,但當(dāng)環(huán)境處于第二架構(gòu)模式(諸如,ESA/390架構(gòu)模式)中時(shí),不執(zhí)行DAT。在一個(gè)實(shí)例中,在處于ESA/390架構(gòu)模式中且提供NDAT時(shí)執(zhí)行DAT的任何嘗試導(dǎo)致(例如)無(wú)DAT異常程序中斷。在其他實(shí)施例中,使用另一程序中斷來(lái)指示錯(cuò)誤。在又一個(gè)實(shí)施例中,并不指示錯(cuò)誤,且執(zhí)行繼續(xù)進(jìn)行,但并不啟用DAT。
如本文所指示,當(dāng)在配置中并未提供動(dòng)態(tài)地址轉(zhuǎn)換功能且進(jìn)行開(kāi)啟DAT或執(zhí)行DAT的嘗試時(shí),識(shí)別無(wú)DAT異常。
在以下?tīng)顩r下,識(shí)別到異常(作為實(shí)例):
1.通過(guò)執(zhí)行加載PSW指令而進(jìn)行開(kāi)啟DAT的嘗試。在改變PSW之前并不檢查待加載的值。
2.執(zhí)行加載實(shí)地址指令。執(zhí)行受到抑制且指令長(zhǎng)度碼被設(shè)定為2。
3.通過(guò)執(zhí)行設(shè)定系統(tǒng)屏蔽指令而進(jìn)行開(kāi)啟DAT的嘗試。在改變當(dāng)前PSW之前并不檢查待設(shè)定的值。
4.通過(guò)執(zhí)行存儲(chǔ)后或系統(tǒng)屏蔽(STORE THEN OR SYSTEM MASK)指令而進(jìn)行開(kāi)啟DAT的嘗試。在改變當(dāng)前PSW的系統(tǒng)屏蔽之前并不檢查被與系統(tǒng)屏蔽“異或”的值。
5.類(lèi)似于狀況1,發(fā)生中斷且中斷-新PSW使位位置5為1。
下文進(jìn)一步描述上述狀況中的每一者:參看圖5描述關(guān)于加載PSW指令的進(jìn)一步細(xì)節(jié)。在一個(gè)實(shí)施例中,加載PSW指令500包括:操作碼字段502,其包括操作碼(opcode)以指示加載PSW操作;基本字段(B2)504;及位移字段(D2)506。將由B2字段指定的通用寄存器的內(nèi)容添加至D2字段的內(nèi)容以形成存儲(chǔ)裝置中的第二操作數(shù)的地址(被稱(chēng)作第二操作數(shù)地址)。
在加載PSW指令的操作中,用16字節(jié)PSW替換當(dāng)前PSW,所述16字節(jié)PSW從由第二操作數(shù)地址指定的位置處的雙字的內(nèi)容形成。
雙字的位12將為1;否則,取決于模型,可識(shí)別到指定異常。如果安裝了配置z/Architecture架構(gòu)模式(CZAM)工具,則在雙字的位12不為1時(shí),識(shí)別到指定異常。在一個(gè)實(shí)施例中,CZAM工具重新配置計(jì)算環(huán)境(例如,處理器、LPAR、客體),以使得在支持多個(gè)架構(gòu)的環(huán)境中,不再支持架構(gòu)的一個(gè)或多個(gè)方面(諸如,ESA/390)。CZAM的安裝影響計(jì)算環(huán)境的某些處理,諸如開(kāi)機(jī)(power-on)、重設(shè)等。舉例而言,如果安裝且啟用了CZAM,則開(kāi)機(jī)或重設(shè)序列啟動(dòng)z/Architecture,而非(例如)ESA/390。在Gainey等人的標(biāo)題為“架構(gòu)模式配置(Architectural Mode Configuration)”的共同申請(qǐng)、共同受讓的申請(qǐng)(IBM案號(hào)POU920140021US1)中描述了CZAM的各方面。
除了位12被反轉(zhuǎn)以外,將雙字的位0至32置于當(dāng)前PSW的位置0至32中。將雙字的位33至63置于當(dāng)前PSW的位置97至127中。當(dāng)前PSW的位33至96被設(shè)定為0。
在取回操作數(shù)之前或之后且又在完成操作之后,執(zhí)行串行化及檢查點(diǎn)同步功能。
將操作數(shù)指定為在雙字邊界上;否則,識(shí)別指定異常。如果操作數(shù)的位12為0,則取決于模型,可識(shí)別指定異常。
除了檢查位12以外,在加載待由指令加載的PSW字段之前,不檢查這些字段的有效性。然而,緊接載入之后,當(dāng)以下?tīng)顩r中的任一者針對(duì)新近載入的PSW成立時(shí),識(shí)別指定異常且發(fā)生程序中斷:
·位0、2至4、12或24至30中的任一者為1。
·位31及32兩者為0,且位97至103并非全部為0。
·位31及32分別為1及0。
在這些狀況下,完成操作且所得指令長(zhǎng)度碼為0。
操作因所有尋址及保護(hù)異常而受到抑制。
所得條件代碼:如加載的新PSW中所指定那樣設(shè)定所述碼。
程序異常:
·存取(取回,操作數(shù)2)
·特權(quán)操作
·指定
編程備注:第二操作數(shù)應(yīng)具有ESA/390PSW的格式,下文描述該格式的一個(gè)實(shí)例。如果操作數(shù)的位12為0,則在執(zhí)行加載PSW期間或之后,將識(shí)別指定異常。
在Plambeck等人的“z/Architecture的開(kāi)發(fā)及屬性(Development and Attributes of z/Architecture)”(IBM J.Res.&Dev.,第46卷,第4/5號(hào),2002年7月/9月)中描述了關(guān)于PSW的進(jìn)一步細(xì)節(jié)。
參看圖6描述程序狀態(tài)字(PSW)的格式的一個(gè)實(shí)施例。參看圖6,在此實(shí)例中,除了位31被示為EA以外,程序狀態(tài)字的格式為ESA/390格式,如下文所指示。
在一個(gè)實(shí)施例中,作為一個(gè)實(shí)例,程序狀態(tài)字600包括以下字段:
程序事件記錄屏蔽(R)602:位1控制是否針對(duì)與程序事件記錄(PER)相關(guān)聯(lián)的中斷啟用CPU。當(dāng)位為0時(shí),無(wú)PER事件可造成中斷。當(dāng)位為1時(shí),準(zhǔn)許中斷,這受控制寄存器9中的PER事件屏蔽位的影響;
DAT模式(T)604:位5控制是否發(fā)生用于存取存儲(chǔ)裝置的邏輯及指令地址的隱含動(dòng)態(tài)地址轉(zhuǎn)換(DAT)。當(dāng)位為0時(shí),關(guān)閉DAT,且將邏輯及指令地址視為實(shí)地址。當(dāng)位為1時(shí),開(kāi)啟DAT,且調(diào)用動(dòng)態(tài)地址轉(zhuǎn)換機(jī)制。
I/O屏蔽(IO)606:位6控制是否針對(duì)I/O中斷啟用CPU。當(dāng)位為0時(shí),無(wú)法發(fā)生I/O中斷。當(dāng)位為1時(shí),I/O中斷受控制寄存器6中的I/O中斷子類(lèi)別屏蔽位的影響。當(dāng)I/O中斷子類(lèi)別屏蔽位為0時(shí),無(wú)法發(fā)生針對(duì)該I/O中斷子類(lèi)別的I/O中斷;當(dāng)I/O中斷子類(lèi)別屏蔽位為1時(shí),可能發(fā)生針對(duì)該I/O中斷子類(lèi)別的I/O中斷;
外部屏蔽(EX)608:位7通過(guò)包括在外部類(lèi)別中的條件來(lái)控制是否針對(duì)中斷啟用CPU。當(dāng)位為0時(shí),無(wú)法發(fā)生外部中斷。當(dāng)位為1時(shí),外部中斷受控制寄存器0中的對(duì)應(yīng)外部子類(lèi)別屏蔽位的影響。當(dāng)子類(lèi)別屏蔽位為0時(shí),與子類(lèi)別相關(guān)聯(lián)的條件無(wú)法造成中斷。當(dāng)子類(lèi)別屏蔽位為1時(shí),可能發(fā)生該子類(lèi)別中的中斷。
PSW鍵(鍵)610:位9至11形成用于供CPU存儲(chǔ)參考的存取鍵。如果參考經(jīng)受鍵控保護(hù),則當(dāng)存儲(chǔ)信息時(shí)或當(dāng)自受保護(hù)從而免于取回的位置取回信息時(shí),PSW鍵與存儲(chǔ)鍵匹配。然而,對(duì)于移動(dòng)至主要、移動(dòng)至次要、隨鍵移動(dòng)、隨源鍵移動(dòng)及隨目的地鍵移動(dòng)中的每一者的操作數(shù)中的一者,且對(duì)于隨可選指定移動(dòng)的任一操作數(shù)或兩個(gè)操作數(shù),使用指定為操作數(shù)的存取鍵代替PSW鍵。
位12 612:此位指示當(dāng)前架構(gòu)模式。對(duì)于ESA/390PSW格式,其被設(shè)定為1。對(duì)于z/ArchitecturePSW格式,此位被定義為0。當(dāng)在z/Architecture模式中時(shí),定義加載PSW擴(kuò)展(LPSWE)指令以用于加載真實(shí)z/ArchitecturePSW(其具有與本文所描述的格式不同的格式,包括具有位64至127中的指令地址)。然而,仍支持ESA/390加載PSW(LPSW),且其可用于加載ESA/390格式PSW。當(dāng)執(zhí)行LPSW且計(jì)算環(huán)境處于z/Architecture模式中時(shí),處理器將ESA/390格式PSW擴(kuò)展至z/Architecture格式,包括將位12反轉(zhuǎn)。此情況為折疊操作系統(tǒng)執(zhí)行以建立ESA/390格式PSW的z/Architecture PSW格式的反轉(zhuǎn)。亦即,在支持ESA/390及z/Architecture兩者的計(jì)算環(huán)境中,當(dāng)將PSW的復(fù)本放置于存儲(chǔ)裝置中時(shí),操作系統(tǒng)將完整z/Architecture PSW折疊成ESA/390PSW的大小及格式。因此,具有PSW格式相關(guān)性的其他軟件可能無(wú)法察覺(jué)到z/Architecture PSW。
機(jī)器檢查屏蔽(M)614:位13通過(guò)機(jī)器檢查條件控制是否針對(duì)中斷啟用CPU。當(dāng)位為0時(shí),無(wú)法發(fā)生機(jī)器檢查中斷。當(dāng)位為1時(shí),準(zhǔn)許歸因于系統(tǒng)損害及指令處理?yè)p害產(chǎn)生的機(jī)器檢查中斷,但歸因于其他機(jī)器檢查子類(lèi)別條件產(chǎn)生的中斷受控制寄存器14中的子類(lèi)別屏蔽位的影響。
等待狀態(tài)(W)616:當(dāng)位14為1時(shí),CPU等待;亦即,CPU不處理指令,但可能發(fā)生中斷。當(dāng)位14為0時(shí),以正常方式發(fā)生指令取回及執(zhí)行。當(dāng)位為1時(shí),等待指示符為1。
問(wèn)題狀態(tài)(P)618:當(dāng)位15為1時(shí),CPU處于問(wèn)題狀態(tài)。當(dāng)位15為0時(shí),CPU處于監(jiān)督狀態(tài)。在監(jiān)督狀態(tài)下,所有指令為有效的。在問(wèn)題狀態(tài)下,僅提供有意義的信息至問(wèn)題程序且無(wú)法影響系統(tǒng)完整性的那些指令是有效的;這些指令被稱(chēng)為非特權(quán)指令。在問(wèn)題狀態(tài)下并非有效的指令被稱(chēng)為特權(quán)指令。當(dāng)問(wèn)題狀態(tài)下的CPU試圖執(zhí)行特權(quán)指令時(shí),識(shí)別特權(quán)操作異常。僅在滿(mǎn)足特定授權(quán)測(cè)試的情況下,處于問(wèn)題狀態(tài)的CPU才執(zhí)行被稱(chēng)為半特權(quán)指令的另一組指令;否則,取決于所違反的特定要求,識(shí)別特權(quán)操作異?;蚰骋黄渌绦虍惓?。
地址空間控件(AS)620:位16及17結(jié)合PSW位5控制轉(zhuǎn)換模式。
條件代碼(CC)622:位18及19為條件代碼的兩個(gè)位。取決于在執(zhí)行某些指令中獲得的結(jié)果,條件代碼被設(shè)定為0、1、2或3。大部分算術(shù)及邏輯運(yùn)算以及一些其他運(yùn)算設(shè)定條件代碼。指令依條件分支(BRANCH ONCONDITION)可將對(duì)條件代碼值的任何選擇指定為用于分支的準(zhǔn)則。
程序屏蔽624:位20至23為四個(gè)程序屏蔽位。每一位與一種程序異常相關(guān)聯(lián),如下:
當(dāng)屏蔽位為1時(shí),異常導(dǎo)致中斷。當(dāng)屏蔽位為0時(shí),不會(huì)發(fā)生中斷。HFP有效值屏蔽位的HFP指數(shù)下溢屏蔽位的設(shè)定亦確定在發(fā)生對(duì)應(yīng)異常時(shí)完成操作的方式。
擴(kuò)展尋址模式(EA)626:位31結(jié)合位32、基本尋址模式位控制有效地址的大小及有效地址產(chǎn)生。當(dāng)位31為0時(shí),由位32控制尋址模式。當(dāng)位31及32兩者為1時(shí),指定64位尋址。
基本尋址模式(BA)628:位31及32控制有效地址的大小及有效地址產(chǎn)生。當(dāng)位31及32兩者為0時(shí),指定24位尋址。當(dāng)位31為0且位32為1時(shí),指定31位尋址。當(dāng)位31及32兩者為1時(shí),指定64位尋址。位31為1且位32為0的組合為無(wú)效組合,其造成識(shí)別指定異常。尋址模式并不控制PER地址的大小或用于存取DAT、ASN、可分派單元控件、鏈接、表項(xiàng)及追蹤表或存取列表或鏈接棧的地址的大小。概述由PSW的位31及32進(jìn)行的尋址模式的控制如下:
指令地址630:PSW的位33至63為指令地址。除非CPU處于等待狀態(tài)(PSW的位14為1),否則地址指定待執(zhí)行的下一指令的最左側(cè)字節(jié)的位置。
如上文所描述,除加載PSW指令之外,加載實(shí)地址指令亦可造成識(shí)別到無(wú)DAT異常。
在圖7A至7C中描繪加載實(shí)地址指令的實(shí)例格式。如圖7A中所示,在一個(gè)實(shí)施例中,加載實(shí)地址指令700具有多個(gè)字段,包括(例如):具有指示加載實(shí)地址操作的操作碼的操作碼字段702;第一寄存器字段(R1)704;索引字段(X2)706;基本字段(B2)708;及位移字段(D2)710。
在另一個(gè)實(shí)施例中,參看圖7B,加載實(shí)地址指令720具有多個(gè)字段,包括(例如):具有指示加載讀取地址操作的操作碼的操作碼字段722a、722b;第一寄存器字段(R1)724;索引字段(X2)726;基本字段(B2)728;及多個(gè)位移字段(DL2、DH2)730a、730b。
在又一個(gè)實(shí)施例中,參看圖7C,加載實(shí)地址指令740具有多個(gè)字段,包括(例如):具有指示加載讀取地址操作的操作碼的操作碼字段742a、742b;第一寄存器字段(R1)744;索引字段(X2)746;基本字段(B2)748;及多個(gè)位移字段(DL2、DH2)750a、750b。
在上述格式中,R1指定包括第一操作數(shù)的通用寄存器;且將由X2及B2字段指定的通用寄存器的內(nèi)容加至D2字段或DH2及DL2字段的內(nèi)容以形成第二操作數(shù)地址。
對(duì)于24位或31位尋址模式中的加載實(shí)地址(LRA、LRAY),如果對(duì)應(yīng)于第二操作數(shù)虛擬地址的64位真實(shí)或絕對(duì)地址的位0至32全部為0,則將真實(shí)或絕對(duì)地址的位32至63放置于通用寄存器R1的位位置32至63中,且寄存器的位0至31保持不變。如果實(shí)地址或絕對(duì)地址的位0至32并非全部為0,則識(shí)別特殊操作異常。
對(duì)于64位尋址模式中的LRA或LRAY,及對(duì)于任何尋址模式中的加載實(shí)地址(LRAG),將對(duì)應(yīng)于第二操作數(shù)虛擬地址的64位真實(shí)或絕對(duì)地址放置于通用寄存器R1中。
當(dāng)增強(qiáng)型DAT-1(EDAT-1)不適用時(shí),或當(dāng)EDAT-1適用但借助段表表項(xiàng)(STE)(其中STE格式控件為0)轉(zhuǎn)換第二操作數(shù)時(shí),放置于通用寄存器R1中的地址為真實(shí)的。當(dāng)EDAT-1適用且借助段表表項(xiàng)(其中STE格式控件為1)轉(zhuǎn)換第二操作數(shù)時(shí),或當(dāng)EDAT-2適用且借助區(qū)第三表表項(xiàng)(其中RTTE格式控件為1)轉(zhuǎn)換第二操作數(shù)時(shí),放置于通用寄存器R1中的地址為絕對(duì)的。
通過(guò)X2、B2及D2字段指定的虛擬地址借助于動(dòng)態(tài)地址轉(zhuǎn)換工具來(lái)轉(zhuǎn)換,而不管DAT是開(kāi)啟還是關(guān)閉。
將用于LRA的位移視為12位無(wú)符號(hào)二進(jìn)制整數(shù)。將用于LRAY及LRAG的位移視為20位有符號(hào)二進(jìn)制整數(shù)。
通過(guò)使用取決于地址空間控制位的當(dāng)前值的地址空間控制組件、PSW的位16及17來(lái)執(zhí)行DAT,如下表中所示:
可借助分別使用ART后備緩沖器(ALB)及轉(zhuǎn)換后備緩沖器(TLB)來(lái)執(zhí)行ART及DAT。
根據(jù)由當(dāng)前PSW的位31及32指定的當(dāng)前尋址模式來(lái)執(zhí)行虛擬地址計(jì)算。
將一個(gè)或多個(gè)區(qū)表表項(xiàng)(如果使用)的地址及段表表項(xiàng)及頁(yè)表表項(xiàng)(如果使用)的地址視為64位地址,而不管當(dāng)前尋址模式為何。這些表項(xiàng)的地址是否被視為真實(shí)或絕對(duì)地址是無(wú)法預(yù)測(cè)的。
當(dāng)能夠完成ART(如果可適用)及DAT兩者且并未識(shí)別到特殊操作異常時(shí),亦即,當(dāng)能夠獲得地址空間控制組件時(shí),設(shè)定條件代碼0,每一DAT表中的表項(xiàng)位于表內(nèi)且具有零I位(zero I bit),并且對(duì)于24位或31位尋址模式中的LRA或LRAY,所得真實(shí)或絕對(duì)地址的位0至32為0。不針對(duì)邊界對(duì)準(zhǔn)或不針對(duì)尋址或保護(hù)異常而檢查轉(zhuǎn)換后的地址。
當(dāng)PSW位16及17為01二進(jìn)制且由于通常將造成下文所示的異常中的一者的條件而使得無(wú)法獲得地址空間控制組件時(shí),(1)將指派給異常的中斷碼放置于通用寄存器R1的位位置48至63中,將此寄存器的位32設(shè)定為1,將位33至47設(shè)定為0,且位0至31保持不變,且(2)通過(guò)設(shè)定條件代碼3而完成指令。
當(dāng)正常地完成ART時(shí),通過(guò)執(zhí)行DAT而繼續(xù)進(jìn)行操作。
當(dāng)段表表項(xiàng)在表外部且表項(xiàng)的真實(shí)或絕對(duì)地址的位0至32全部為0時(shí),設(shè)定條件代碼3,將表項(xiàng)地址的位32至63放置于通用寄存器R1的位位置32至63中,且寄存器的位0至31保持不變。如果地址的位0至32并非全部為0,則結(jié)果如下文所示。
對(duì)于64位尋址模式中的LRA或LRAY或任何尋址模式中的LRAG,當(dāng)段表表項(xiàng)中的I位為1時(shí),設(shè)定條件代碼1,且將段表表項(xiàng)的64位真實(shí)或絕對(duì)地址放置于通用寄存器R1中。在此情況下,除了LRA或LRAY處于24位或31位尋址模式中以外,如果段表表項(xiàng)的地址的位0至32全部為0,則除了通用寄存器R1的位0至31保持不變以外,結(jié)果相同。如果地址的位0至32并非全部為0,則結(jié)果如下文所示。
對(duì)于64位尋址模式中的LRA或LRAY或任何尋址模式中的LRAG,當(dāng)頁(yè)表表項(xiàng)中的I位為1時(shí),設(shè)定條件代碼2,且將頁(yè)表表項(xiàng)的64位真實(shí)或絕對(duì)地址放置于通用寄存器R1中。在此情況下,除了LRA或LRAY處于24位或31位尋址模式中以外,如果頁(yè)表表項(xiàng)的地址的位0至32全部為0,則除了通用寄存器R1的位0至31保持不變以外,結(jié)果相同。如果地址的位0至32并非全部為0,則結(jié)果如下文所示。
根據(jù)在所嘗試的轉(zhuǎn)換期間使用的地址的類(lèi)型,放置于通用寄存器R1中的段表表項(xiàng)或頁(yè)表表項(xiàng)地址為真實(shí)或絕對(duì)的。
如果存在通常將造成下文所示的異常中的一者的條件,則(1)將指派給異常的中斷碼放置于通用寄存器R1的位位置48至63中,將此寄存器的位32設(shè)定為1,將位33至47設(shè)定為0,且位0至31保持不變,且(2)通過(guò)設(shè)定條件代碼3而完成指令。
特殊條件
對(duì)于24位或31位尋址模式中的LRA或LRAY,當(dāng)所得64位實(shí)地址的位0至32并非全部為0時(shí),識(shí)別到特殊操作異常。
當(dāng)由ART用于取回有效存取列表名稱(chēng)或ALE、ASTE或授權(quán)表表項(xiàng)的地址指定在配置中不可用的位置時(shí),或當(dāng)用于取回一個(gè)或多個(gè)區(qū)表表項(xiàng)(如果存在)、段表表項(xiàng)或頁(yè)表表項(xiàng)的地址指定在配置中不可用的位置時(shí),識(shí)別到尋址異常。
當(dāng)所存取的區(qū)表表項(xiàng)或段表表項(xiàng)或頁(yè)表表項(xiàng)具有零I位及格式錯(cuò)誤時(shí),識(shí)別到轉(zhuǎn)換指定異常。
作為用于計(jì)算區(qū)表表項(xiàng)或段表表項(xiàng)而進(jìn)行的加法的結(jié)果的位位置0的進(jìn)位輸出可能被忽略或可導(dǎo)致尋址異常。
操作因所有尋址異常而受到抑制。
所得條件代碼:
0 轉(zhuǎn)換可用
1 段表表項(xiàng)無(wú)效(I位1)
2 頁(yè)表表項(xiàng)無(wú)效(I位1)
3 地址空間控制組件不可用,區(qū)表表項(xiàng)在表外部或無(wú)效(I位1),段表表項(xiàng)在表外部,或當(dāng)表項(xiàng)地址的位0至32并非全部為0時(shí),對(duì)于僅LRA及LRAY,且僅在24位或31位尋址模式中,段表表項(xiàng)或頁(yè)表表項(xiàng)無(wú)效(I位1)
程序異常:
·尋址(有效存取列表名稱(chēng)、存取列表表項(xiàng)、ASN-第二表表項(xiàng)、授權(quán)表表項(xiàng)、區(qū)表表項(xiàng)、段表表項(xiàng),或頁(yè)表表項(xiàng))
·操作(LRAY,如果并未安裝長(zhǎng)位移工具)
·特權(quán)操作
·特殊操作(僅LRA、LRAY)
·事務(wù)約束
·轉(zhuǎn)換指定
編程備注:
1.在多處理配置中,應(yīng)在使用加載實(shí)地址時(shí)加以注意。由于無(wú)效DAT表表項(xiàng)或無(wú)效頁(yè)表表項(xiàng)可在造成清除其他CPU的TLB中的對(duì)應(yīng)表項(xiàng)之前,將存儲(chǔ)裝置中的I位設(shè)定為1,因此,此CPU上的加載實(shí)地址及另一CPU上的無(wú)效DAT表表項(xiàng)或無(wú)效頁(yè)表表項(xiàng)的同步執(zhí)行可產(chǎn)生不一致結(jié)果。因?yàn)榧虞d實(shí)地址可存取存儲(chǔ)裝置中的表,所以區(qū)表表項(xiàng)、段表表項(xiàng)或頁(yè)表表項(xiàng)可能看起來(lái)是無(wú)效的(條件代碼分別為3、1或2),即使對(duì)應(yīng)TLB表項(xiàng)尚未被清除也是如此,并且TLB表項(xiàng)可保持處于TLB中,直至另一CPU上的無(wú)效DAT表表項(xiàng)或無(wú)效頁(yè)表表項(xiàng)完成為止。不存在對(duì)可在完成加載實(shí)地址與清除TLB的表項(xiàng)之間執(zhí)行的指令數(shù)目的保證限制。
當(dāng)使用比較及交換及清除或比較及替換DAT表表項(xiàng)來(lái)顯式地設(shè)定DAT表表項(xiàng)中的無(wú)效位時(shí),針對(duì)使用加載實(shí)地址的上述注意也適用。
除加載PSW及加載實(shí)地址指令之外,設(shè)定系統(tǒng)屏蔽指令亦可造成識(shí)別到無(wú)DAT異常。
參看圖8描述設(shè)定系統(tǒng)屏蔽指令的格式的本發(fā)明的一個(gè)優(yōu)選實(shí)施例。參看圖8,設(shè)定系統(tǒng)屏蔽指令800包括(例如):具有指定設(shè)定系統(tǒng)屏蔽操作的操作碼(opcode)的操作碼字段802;基本字段(B2)804;及位移字段(D2)806。
在操作中,使用由第二操作數(shù)地址指定的位置處的字節(jié)替換當(dāng)前PSW的位0至7(通過(guò)將由B2指定的通用寄存器的內(nèi)容與位移字段的值相加而形成)。
特殊條件
當(dāng)SSM抑制控制位、控制寄存器0的位33為1且CPU處于監(jiān)督狀態(tài)時(shí),識(shí)別到特殊操作異常。
在加載之前并不針對(duì)有效性而檢查待加載至PSW中的值,如果PSW的位位置0及2至4的內(nèi)容并非全部為0,則識(shí)別到指定異常,且發(fā)生程序中斷。在此狀況下,完成指令,且將指令長(zhǎng)度碼設(shè)定為2。將指定異常作為此指令的程序異常列出。此異??杀灰暈橛纱酥噶畹膱?zhí)行所導(dǎo)致或被視為在準(zhǔn)備執(zhí)行后續(xù)指令的處理中較早發(fā)生。
操作因所有尋址及保護(hù)異常而受到抑制。
條件代碼:代碼保持不變。
程序異常:
·存取(取回,操作數(shù)2)
·特權(quán)操作
·特殊操作
·指定
·事務(wù)約束
另外,存儲(chǔ)后或系統(tǒng)屏蔽指令可造成識(shí)別到無(wú)Dat異常。參看圖9描述存儲(chǔ)后或系統(tǒng)屏蔽指令的格式的本發(fā)明的一個(gè)優(yōu)選實(shí)施例。參看圖9,存儲(chǔ)后或系統(tǒng)屏蔽指令900包括(例如):具有指定存儲(chǔ)后或系統(tǒng)屏蔽操作的操作碼的操作碼字段902;立即字段(I2)904;基本字段(B1)906;及位移字段(D1)908。在一個(gè)實(shí)例中,將由B1指定的寄存器的內(nèi)容加至位移字段以提供第一操作數(shù)的地址。立即字段為第二操作數(shù)。
在操作中,將當(dāng)前PSW的位0至7存儲(chǔ)于第一操作數(shù)位置處。接著,用當(dāng)前PSW的位位置0至7的原始內(nèi)容與第二操作數(shù)(I2字段)的邏輯“或”替換當(dāng)前PSW的位位置0至7的內(nèi)容。
特殊條件
在加載之前并不針對(duì)有效性而檢查待加載至PSW中的值。然而,緊接加載之后,如果PSW的位位置0及2至4的內(nèi)容并非全部為0,則識(shí)別指定異常,且發(fā)生程序中斷。在此情況下,完成指令且將指令長(zhǎng)度碼設(shè)定為2。將指定異常作為程序異常列出。其可被視為在準(zhǔn)備執(zhí)行后續(xù)指令的處理中較早發(fā)生。
操作因?qū)ぶ芳氨Wo(hù)異常而受到抑制。
條件代碼:代碼保持不變。
程序異常:
·存取(存儲(chǔ),操作數(shù)1)
·特權(quán)操作
·指定
·事務(wù)受約束
編程備注:存儲(chǔ)后或系統(tǒng)屏蔽指令準(zhǔn)許程序?qū)⑾到y(tǒng)屏蔽中的選定位設(shè)定為1,同時(shí)保持原始內(nèi)容以供稍后恢復(fù)。舉例而言,程序可針對(duì)I/O中斷啟用CPU,而無(wú)需使得外部屏蔽位的當(dāng)前狀態(tài)可用。
對(duì)于上文所描述的狀況1(加載PSW)及3至5(設(shè)定系統(tǒng)屏蔽、存儲(chǔ)后或系統(tǒng)屏蔽、中斷),緊接將PSW的位5自0改變成1之后,識(shí)別到無(wú)DAT異常,且發(fā)生程序中斷。在這些情況下,完成指令執(zhí)行或PSW交換(在可適用時(shí))且指令長(zhǎng)度碼為0。無(wú)DAT異??杀灰暈樵跍?zhǔn)備執(zhí)行下一順序指令的處理中較早發(fā)生。因此,位于由程序舊PSW指定的指令地址處的指令變成空值。由程序中斷碼十六進(jìn)制003D(或如果指示同時(shí)PER事件,則為十六進(jìn)制00BD)指示無(wú)DAT異常。
中斷包括將當(dāng)前PSW存儲(chǔ)為舊PSW,存儲(chǔ)識(shí)別中斷的原因的信息,及取回新PSW。處理如由新PSW指定那樣繼續(xù)執(zhí)行。
因中斷而存儲(chǔ)的舊PSW通常含有在接下來(lái)執(zhí)行時(shí)不會(huì)發(fā)生中斷的指令的地址,從而準(zhǔn)許繼續(xù)執(zhí)行被中斷的程序。對(duì)于程序及監(jiān)督程序調(diào)用中斷,所存儲(chǔ)的信息還包含識(shí)別最后執(zhí)行的指令的長(zhǎng)度的代碼,從而準(zhǔn)許程序?qū)χ袛嗟脑蜃鞒鲰憫?yīng)。在正常響應(yīng)為重新執(zhí)行造成中斷的指令的一些程序條件的情況下,指令地址直接識(shí)別最后執(zhí)行的指令。
除了重新啟動(dòng)以外,僅當(dāng)CPU處于操作狀態(tài)時(shí),才可能發(fā)生中斷。當(dāng)CPU處于停止或操作狀態(tài)時(shí),能夠發(fā)生重新啟動(dòng)中斷。
除了PER基本事件以外,借助程序中斷指示僅一個(gè)程序中斷條件。然而,一個(gè)條件的存在并不排除其他條件的存在。當(dāng)存在一個(gè)以上程序中斷條件時(shí),在一個(gè)實(shí)例中,在中斷碼中識(shí)別具有最高優(yōu)先級(jí)的條件。當(dāng)具有相同優(yōu)先級(jí)的多個(gè)條件適用時(shí),指示哪一者是無(wú)法預(yù)測(cè)的。
當(dāng)同一存儲(chǔ)操作數(shù)的多個(gè)部分經(jīng)受單獨(dú)訪(fǎng)問(wèn)控制時(shí),與這些部分相關(guān)聯(lián)的存取異常的優(yōu)先級(jí)是無(wú)法預(yù)測(cè)的且不一定與針對(duì)操作數(shù)內(nèi)的字節(jié)的存取指定的序列有關(guān)。舉例而言,當(dāng)(a)移動(dòng)(MVC)指令的第一操作數(shù)越過(guò)段邊界,(b)用于轉(zhuǎn)換操作數(shù)的最左側(cè)部分的段表表項(xiàng)上的無(wú)效位為1,且(c)用于轉(zhuǎn)換操作數(shù)的最右側(cè)部分的有效頁(yè)表表項(xiàng)中的DAT保護(hù)位為1時(shí),則識(shí)別到段轉(zhuǎn)換異常還是保護(hù)異常為無(wú)法預(yù)測(cè)的。
當(dāng)指令具有兩個(gè)存儲(chǔ)操作數(shù)且對(duì)于兩個(gè)操作數(shù)存在存取異常條件時(shí),識(shí)別到哪個(gè)條件為無(wú)法預(yù)測(cè)的。同一指令(具有相同異常條件)的后續(xù)執(zhí)行可導(dǎo)致針對(duì)與第一執(zhí)行相同的操作數(shù)或針對(duì)另一操作數(shù)識(shí)別異常條件。
發(fā)生的結(jié)束的類(lèi)型(變成空值、抑制,或終止)是針對(duì)在中斷碼中指示的異常的類(lèi)型定義的類(lèi)型。然而,如果指示準(zhǔn)許終止的條件,并且也存在將導(dǎo)致變成空值或抑制的另一條件,則操作單元被抑制。
參看圖10描述與在支持多個(gè)架構(gòu)模式的計(jì)算環(huán)境中提供無(wú)DAT工具相關(guān)聯(lián)的處理的本發(fā)明的一個(gè)優(yōu)選實(shí)施例。在此特定實(shí)例中,兩個(gè)架構(gòu)模式被配置用于選定架構(gòu)功能(亦即,每一架構(gòu)模式被定義以包括(例如)DAT),但第一架構(gòu)模式支持該功能,而在第二架構(gòu)模式中,移除該功能(例如,不支持、繞過(guò)、自架構(gòu)中消除等)以使得即使存在DAT開(kāi)啟/關(guān)閉控件,亦無(wú)法開(kāi)啟DAT。
參看圖10,在一個(gè)實(shí)例中,計(jì)算環(huán)境被配置為同時(shí)支持多個(gè)架構(gòu):第一架構(gòu)(例如,增強(qiáng)型架構(gòu),例如z/Architecture),其被配置為用于且支持選定架構(gòu)功能(例如,DAT);及第二架構(gòu)(例如,舊版架構(gòu),例如ESA/390),其被配置為用于但選擇性地移除選定架構(gòu)功能(步驟1000)。在移除該功能時(shí)(例如,開(kāi)啟無(wú)DAT或作為永久性工廠(chǎng)安裝選項(xiàng)提供無(wú)DAT),即使另一控件被設(shè)定為開(kāi)啟DAT,亦無(wú)法開(kāi)啟DAT。
計(jì)算環(huán)境的處理器獲得執(zhí)行包括選定架構(gòu)功能的操作的請(qǐng)求(步驟1002)。進(jìn)行關(guān)于處理器是否正在第二架構(gòu)模式中基于第二架構(gòu)進(jìn)行處理的判定(查詢(xún)1004)。如果處理器正在不同于第二架構(gòu)的架構(gòu)模式(諸如,第一架構(gòu),例如z/Architecture)中處理,則執(zhí)行選定架構(gòu)功能(步驟1006)。
返回至查詢(xún)1004,如果處理器處于第二架構(gòu)模式中,則進(jìn)行關(guān)于是否已移除選定架構(gòu)功能的判定(查詢(xún)1008)。在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,通過(guò)檢查工具指示符和/或另一指示符來(lái)判定此情形。如果并未移除所述功能(例如,并未安裝無(wú)DAT),則執(zhí)行選定架構(gòu)功能(例如,DAT)(步驟1006)。否則,提供將不執(zhí)行選定架構(gòu)功能的指示(步驟1010)。舉例而言,提供錯(cuò)誤。錯(cuò)誤可為異常,且可使用已知的異常類(lèi)型或新的異常類(lèi)型。
盡管在上述實(shí)例中,第二架構(gòu)模式被配置為用于DAT,而將DAT自架構(gòu)中移除,但是在另一個(gè)實(shí)施例中,第二架構(gòu)模式并非被配置為用于DAT,而實(shí)際上,第二架構(gòu)包括一組精簡(jiǎn)后的架構(gòu),其中不存在一個(gè)或多個(gè)選定架構(gòu)功能(諸如,DAT)。在此情況下,也稱(chēng)為將DAT自架構(gòu)中移除。
在本發(fā)明的另一優(yōu)選實(shí)施例中,在包括可分頁(yè)存儲(chǔ)模式客體的計(jì)算環(huán)境中包括NDAT工具。在此類(lèi)環(huán)境中,在一個(gè)實(shí)例中,將主機(jī)初始化且可在第一架構(gòu)模式(例如,z/Architecture)或另一架構(gòu)模式(諸如,第二架構(gòu)模式(例如,ESA/390或其子集))中將第一架構(gòu)模式及客體中的處理初始化。在一個(gè)實(shí)例中,在ESA/390架構(gòu)模式中的可分頁(yè)存儲(chǔ)模式客體中,當(dāng)安裝了無(wú)DAT工具時(shí),發(fā)生以下動(dòng)作:
1.在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,當(dāng)安裝了NDAT時(shí),客體有效地表現(xiàn)為如同并未提供DAT一樣,而不管存在于狀態(tài)控件中的其他指示符(例如,任何及所有其他指示符)或以其他方式控制可管理DAT或其他特征的可用性的虛擬環(huán)境中的執(zhí)行。
2.當(dāng)進(jìn)行啟用DAT功能、使用DAT功能或執(zhí)行需要存在DAT功能的指令(例如,包括但不限于LRA指令)的嘗試時(shí),存在無(wú)DAT異常程序中斷。
參看圖11A至11B描述在客體環(huán)境中提供無(wú)DAT工具的邏輯的本發(fā)明的一個(gè)優(yōu)選實(shí)施例。參看圖11A,主機(jī)在第一架構(gòu)模式(例如,z/Architecture)中處理(步驟1100),發(fā)出開(kāi)始解釋性執(zhí)行指令以啟動(dòng)一個(gè)或多個(gè)客體虛擬機(jī)(步驟1102)。第一客體虛擬機(jī)將在第一架構(gòu)模式中處理且第一架構(gòu)模式具有第一指令集架構(gòu)且包括第一組架構(gòu)功能(步驟1104)。然而,第二客體虛擬機(jī)將在第二架構(gòu)模式中處理(步驟1106),且第二架構(gòu)模式具有第二指令集架構(gòu)且包括第二組架構(gòu)功能。第二組架構(gòu)功能為第一組中的一組精簡(jiǎn)架構(gòu)功能,其中不存在一個(gè)或多個(gè)功能(例如,選定架構(gòu)功能,諸如DAT)。因此,第二架構(gòu)模式為功能抑制模式,其抑制諸如DAT的功能。在一個(gè)實(shí)例中,經(jīng)由工具位來(lái)指示選定架構(gòu)功能的不存在。然而,在一個(gè)或多個(gè)實(shí)施例中,這是可選的。
在本發(fā)明的一個(gè)特定優(yōu)選實(shí)施例中,第一架構(gòu)模式包括64位尋址且使用64位通用寄存器且第二架構(gòu)模式包括31位尋址且使用32位通用寄存器。
第二客體虛擬機(jī)在第二架構(gòu)模式中執(zhí)行處理,且此處理超控與可用于控制第二客體虛擬機(jī)的執(zhí)行的選定架構(gòu)功能相關(guān)聯(lián)的一個(gè)或多個(gè)控件(步驟1108)。舉例而言,如果使用指示符來(lái)指示DAT開(kāi)啟,則此指示符為在針對(duì)第二客體虛擬機(jī)安裝無(wú)DAT工具時(shí)被超控的控件。作為另一個(gè)實(shí)例,對(duì)應(yīng)于虛擬機(jī)的架構(gòu)的指定控制特定特征的可用性,且此指定也是由NDAT工具超控的控件。被超控的控件的其他實(shí)例也是可能的。
在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,第二客體獲得執(zhí)行將使用或啟用選定功能(例如,DAT)的操作的請(qǐng)求(步驟1120)。進(jìn)行關(guān)于第二客體是否正在第二架構(gòu)模式中處理的判定(查詢(xún)1122)。如果第二客體并不在第二架構(gòu)模式中處理,則可執(zhí)行可使用或啟用選定架構(gòu)功能的操作(步驟1124)。然而,如果第二客體正在第二架構(gòu)模式中處理,且因此,并不支持選定功能(亦即,將選定功能移除),則不執(zhí)行所述操作(步驟1126)并且提供錯(cuò)誤(步驟1128)。
盡管在上文所描述的本發(fā)明的優(yōu)選實(shí)施例中,兩個(gè)客體為第一級(jí)客體(亦即,每一客體由主機(jī)初始化),但在另一個(gè)實(shí)例中,一個(gè)或多個(gè)客體為第二級(jí)客體,其中客體由另一客體啟動(dòng)。在本發(fā)明的此類(lèi)優(yōu)選實(shí)施例中,如果第二級(jí)客體將在ESA/390中處理,則無(wú)DAT是默認(rèn)的。亦即,在ESA/390中啟動(dòng)的第二級(jí)客體將不使用DAT,而不管可按不同方式指示的其他控件(例如,SIE控件)。超控關(guān)于DAT的任何其他控件。另外,在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,對(duì)于第二級(jí)客體而言,這是默認(rèn)的,即使第一級(jí)客體和/或主機(jī)能夠在ESA/390或z/Architecture中執(zhí)行DAT也是如此。在本發(fā)明的又一個(gè)優(yōu)選實(shí)施例中,ESA/390虛擬機(jī)能夠僅作為客體-2虛擬機(jī)來(lái)建立,且在主機(jī)及客體-1模式中的一者或兩者中不可用。
雖然已特別參考針對(duì)第二架構(gòu)提供無(wú)DAT工具描述所述功能,但本文所描述的方面可應(yīng)用于可能在客體或主機(jī)環(huán)境的一個(gè)架構(gòu)模式中停用且在另一架構(gòu)模式中提供的其他處理器功能。
本文描述用于針對(duì)指令及數(shù)據(jù)提供指令集且不包括用于架構(gòu)的數(shù)據(jù)地址轉(zhuǎn)換的能力。在一個(gè)實(shí)施例中進(jìn)一步描述用于將數(shù)據(jù)地址轉(zhuǎn)換自特定架構(gòu)中移除的控件。在一個(gè)實(shí)施例中,移除根據(jù)控制寄存器進(jìn)行;且在另一個(gè)實(shí)施例中,移除根據(jù)一個(gè)或多個(gè)默認(rèn)模式進(jìn)行以自動(dòng)地啟用數(shù)據(jù)地址轉(zhuǎn)換的移除(例如,針對(duì)客體2)。另外,在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,提供中斷以指示在移除DAT時(shí)啟用和/或使用DAT的嘗試。另外,在一個(gè)或多個(gè)實(shí)施例中,提供用于虛擬化環(huán)境的操作模式。
如本文所描述,提供工具以將選定功能(諸如,DAT轉(zhuǎn)換)自特定架構(gòu)中移除以使得不再必須對(duì)其進(jìn)行測(cè)試。作為實(shí)例,當(dāng)程序(諸如,監(jiān)督程序)試圖啟用被移除的功能時(shí),提供指示,諸如錯(cuò)誤或異常(使用已知的異常代碼或新代碼)。另外,作為實(shí)例,當(dāng)程序試圖執(zhí)行利用被移除的功能的指令時(shí),提供指示,諸如錯(cuò)誤或異常。
在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,無(wú)DAT工具可與一個(gè)或多個(gè)其他工具一起使用,所述一個(gè)或多個(gè)其他工具包括(例如)CZAM工具和/或控制實(shí)用程序引導(dǎo)工具,它們?cè)谝韵鹿餐暾?qǐng)、共同轉(zhuǎn)讓的申請(qǐng)中被描述:Gainey等人的題為“架構(gòu)模式配置(Architectural Mode Configuration)”的申請(qǐng)(申請(qǐng)?zhí)枺?4/217840);及Michael K.Gschwind的“能夠在多個(gè)架構(gòu)中初始化的控制實(shí)用程序的公共引導(dǎo)序列(Common Boot Sequence for Control Utility Able to be Initialized in Multiple Architectures)”申請(qǐng)(申請(qǐng)?zhí)枺?4/217800)。
參考圖12,在一個(gè)實(shí)例中,計(jì)算機(jī)程序產(chǎn)品1200包括(例如)將計(jì)算機(jī)可讀程序代碼裝置、邏輯和/或指令1204存儲(chǔ)于其上的一個(gè)或多個(gè)非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)1202,以提供及促進(jìn)一個(gè)或多個(gè)實(shí)施例。
本發(fā)明可以是系統(tǒng)、方法和/或計(jì)算機(jī)程序產(chǎn)品。計(jì)算機(jī)程序產(chǎn)品可以包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上載有用于使處理器實(shí)現(xiàn)本發(fā)明的各個(gè)方面的計(jì)算機(jī)可讀程序指令。
計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是可以保持和存儲(chǔ)由指令執(zhí)行設(shè)備使用的指令的有形設(shè)備。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是但不限于電存儲(chǔ)設(shè)備、磁存儲(chǔ)設(shè)備、光存儲(chǔ)設(shè)備、電磁存儲(chǔ)設(shè)備、半導(dǎo)體存儲(chǔ)設(shè)備或者上述的任意合適的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:便攜式計(jì)算機(jī)盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPROM或閃存)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、便攜式壓縮盤(pán)只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能盤(pán)(DVD)、記憶棒、軟盤(pán)、機(jī)械編碼設(shè)備、例如其上存儲(chǔ)有指令的打孔卡或凹槽內(nèi)凸起結(jié)構(gòu)、以及上述的任意合適的組合。這里所使用的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)不被解釋為瞬時(shí)信號(hào)本身,諸如無(wú)線(xiàn)電波或者其他自由傳播的電磁波、通過(guò)波導(dǎo)或其他傳輸媒介傳播的電磁波(例如,通過(guò)光纖電纜的光脈沖)、或者通過(guò)電線(xiàn)傳輸?shù)碾娦盘?hào)。
這里所描述的計(jì)算機(jī)可讀程序指令可以從計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)下載到各個(gè)計(jì)算/處理設(shè)備,或者通過(guò)網(wǎng)絡(luò)、例如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)和/或無(wú)線(xiàn)網(wǎng)下載到外部計(jì)算機(jī)或外部存儲(chǔ)設(shè)備。網(wǎng)絡(luò)可以包括銅傳輸電纜、光纖傳輸、無(wú)線(xiàn)傳輸、路由器、防火墻、交換機(jī)、網(wǎng)關(guān)計(jì)算機(jī)和/或邊緣服務(wù)器。每個(gè)計(jì)算/處理設(shè)備中的網(wǎng)絡(luò)適配卡或者網(wǎng)絡(luò)接口從網(wǎng)絡(luò)接收計(jì)算機(jī)可讀程序指令,并轉(zhuǎn)發(fā)該計(jì)算機(jī)可讀程序指令,以供存儲(chǔ)在各個(gè)計(jì)算/處理設(shè)備中的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。
用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序指令可以是匯編指令、指令集架構(gòu)(ISA)指令、機(jī)器指令、機(jī)器相關(guān)指令、微代碼、固件指令、狀態(tài)設(shè)置數(shù)據(jù)、或者以一種或多種編程語(yǔ)言的任意組合編寫(xiě)的源代碼或目標(biāo)代碼,所述編程語(yǔ)言包括面向?qū)ο蟮木幊陶Z(yǔ)言—諸如Smalltalk、C++等,以及常規(guī)的過(guò)程式編程語(yǔ)言—諸如“C”語(yǔ)言或類(lèi)似的編程語(yǔ)言。計(jì)算機(jī)可讀程序指令可以完全地在用戶(hù)計(jì)算機(jī)上執(zhí)行、部分地在用戶(hù)計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶(hù)計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類(lèi)的網(wǎng)絡(luò)—包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶(hù)計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。在一些實(shí)施例中,通過(guò)利用計(jì)算機(jī)可讀程序指令的狀態(tài)信息來(lái)個(gè)性化定制電子電路,例如可編程邏輯電路、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或可編程邏輯陣列(PLA),該電子電路可以執(zhí)行計(jì)算機(jī)可讀程序指令,從而實(shí)現(xiàn)本發(fā)明的各個(gè)方面。
這里參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述了本發(fā)明的各個(gè)方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)可讀程序指令實(shí)現(xiàn)。
這些計(jì)算機(jī)可讀程序指令可以提供給通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些指令在通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。也可以把這些計(jì)算機(jī)可讀程序指令存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,這些指令使得計(jì)算機(jī)、可編程數(shù)據(jù)處理裝置和/或其他設(shè)備以特定方式工作,從而,存儲(chǔ)有指令的計(jì)算機(jī)可讀介質(zhì)則包括一個(gè)制造品,其包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的各個(gè)方面的指令。
也可以把計(jì)算機(jī)可讀程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上執(zhí)行的指令實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作。
附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或指令的一部分,所述模塊、程序段或指令的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專(zhuān)用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專(zhuān)用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
除上述以外,可由供應(yīng)客戶(hù)環(huán)境的管理的服務(wù)提供商提供、供應(yīng)、部署、管理、服務(wù)一個(gè)或多個(gè)方面等。舉例而言,服務(wù)提供商可建立、維護(hù)、支持計(jì)算機(jī)代碼和/或執(zhí)行用于一個(gè)或多個(gè)客戶(hù)的一個(gè)或多個(gè)方面的計(jì)算機(jī)基礎(chǔ)結(jié)構(gòu)等。舉例而言,作為回報(bào),服務(wù)提供商可在訂閱和/或收費(fèi)協(xié)議下自客戶(hù)收取付款。另外或備選地,服務(wù)提供商可自廣告內(nèi)容銷(xiāo)售至一個(gè)或多個(gè)第三方而收取付款。
在一個(gè)方面中,可部署一應(yīng)用用于執(zhí)行一個(gè)或多個(gè)實(shí)施例。作為一個(gè)實(shí)例,應(yīng)用的部署包括提供可操作以執(zhí)行一個(gè)或多個(gè)實(shí)施例的計(jì)算機(jī)基礎(chǔ)結(jié)構(gòu)。
作為另一方面,可部署計(jì)算基礎(chǔ)結(jié)構(gòu),包括將計(jì)算機(jī)可讀程序代碼集成至計(jì)算系統(tǒng)中,其中程序代碼結(jié)合計(jì)算系統(tǒng)能夠執(zhí)行一個(gè)或多個(gè)實(shí)施例。
作為又一方面,可提供一種用于集成計(jì)算基礎(chǔ)結(jié)構(gòu)的處理,其包括將計(jì)算機(jī)可讀程序代碼集成至計(jì)算機(jī)系統(tǒng)中。計(jì)算機(jī)系統(tǒng)包括計(jì)算機(jī)可讀介質(zhì),其中計(jì)算機(jī)介質(zhì)包括一個(gè)或多個(gè)實(shí)施例。程序代碼結(jié)合計(jì)算機(jī)系統(tǒng)能夠執(zhí)行一個(gè)或多個(gè)實(shí)施例。
盡管上文描述各種實(shí)施例,但其僅為實(shí)例。舉例而言,其他架構(gòu)的計(jì)算環(huán)境可用于結(jié)合及使用一個(gè)或多個(gè)實(shí)施例。此外,可使用不同指令、指令格式、指令字段和/或指令值。此外,其他類(lèi)型的地址轉(zhuǎn)換可從一個(gè)或多個(gè)方面受益。此外,可類(lèi)似地移除其他架構(gòu)功能。許多變化是可能的。
此外,其他類(lèi)型的計(jì)算環(huán)境可有益且可被使用。作為實(shí)例,適合于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)為可使用的,其包括直接或經(jīng)由系統(tǒng)總線(xiàn)間接耦接至存儲(chǔ)器元件的至少兩個(gè)處理器。存儲(chǔ)器元件包括(例如)在程序代碼的實(shí)際執(zhí)行期間所使用的本地存儲(chǔ)器、大容量存儲(chǔ)裝置及高速緩沖存儲(chǔ)器,所述存儲(chǔ)器元件對(duì)至少某程序代碼提供暫時(shí)存儲(chǔ)以便減少在執(zhí)行期間必須自大容量存儲(chǔ)裝置取回程序代碼的次數(shù)。
輸入/輸出或I/O設(shè)備(包括(但不限于)鍵盤(pán)、顯示器、指點(diǎn)設(shè)備、DASD、磁帶、CD、DVD、拇指驅(qū)動(dòng)器(thumb drive)及其他存儲(chǔ)介質(zhì)等)可直接或經(jīng)由中間I/O控制器耦接至所述系統(tǒng)。網(wǎng)絡(luò)適配器亦可耦接至系統(tǒng)以使得數(shù)據(jù)處理系統(tǒng)能夠經(jīng)由中間專(zhuān)用或公共網(wǎng)絡(luò)耦接至其他數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器及以太網(wǎng)絡(luò)卡僅為可用類(lèi)型的網(wǎng)絡(luò)適配器中的少數(shù)幾種。
參考圖13,描繪實(shí)施一個(gè)或多個(gè)實(shí)施例的主計(jì)算機(jī)系統(tǒng)5000的代表性組件。代表性主計(jì)算機(jī)5000包括與計(jì)算機(jī)存儲(chǔ)器(亦即,中央存儲(chǔ)裝置)5002通信的一個(gè)或多個(gè)CPU 5001,以及至存儲(chǔ)介質(zhì)設(shè)備5011及網(wǎng)絡(luò)5010以用于與其他計(jì)算機(jī)或SAN及類(lèi)似者通信的I/O接口。CPU 5001與具有架構(gòu)化指令集及架構(gòu)化功能性的架構(gòu)兼容。CPU 5001可具有存取寄存器轉(zhuǎn)換(ART)5012,其包括ART后備緩沖器(ALB)5013,用于選擇待由用于將存儲(chǔ)器的程序地址(虛擬地址)轉(zhuǎn)換為實(shí)地址的動(dòng)態(tài)地址轉(zhuǎn)換(DAT)5003使用的地址空間。DAT通常包括用于緩存轉(zhuǎn)換的轉(zhuǎn)換后備緩沖器(TLB)5007,以使得稍后對(duì)計(jì)算機(jī)存儲(chǔ)器5002的塊的存取不需要地址轉(zhuǎn)換的延遲。通常,在計(jì)算機(jī)存儲(chǔ)器5002與處理器5001之間使用高速緩存5009。高速緩存5009可為具有對(duì)一個(gè)以上CPU可用的大型高速緩存及在大型高速緩存與每一CPU之間具有較小較快(較低層級(jí))高速緩存的分層結(jié)構(gòu)。在一些實(shí)施中,分離較低層級(jí)的高速緩存以提供用于指令取回及數(shù)據(jù)存取的獨(dú)立低層級(jí)高速緩存。
在一個(gè)實(shí)施例中,指令由指令取回單元5004經(jīng)由高速緩存5009自存儲(chǔ)器5002取回。在指令解碼單元5006中解碼指令且將其(在一些實(shí)施例中,與其他指令一起)分派至一個(gè)或多個(gè)指令執(zhí)行單元5008。通常使用數(shù)個(gè)執(zhí)行單元5008,例如算術(shù)執(zhí)行單元、浮點(diǎn)執(zhí)行單元及分支指令執(zhí)行單元。由執(zhí)行單元執(zhí)行指令,從而在需要時(shí)自指令指定的寄存器或存儲(chǔ)器存取操作數(shù)。如果將自存儲(chǔ)器5002存取(加載或存儲(chǔ))操作數(shù),則加載/存儲(chǔ)單元5005通常在被執(zhí)行指令的控制下處置存取??稍谟布娐分谢蛟趦?nèi)部微碼(固件)中或由以上兩者的組合執(zhí)行指令。
如所指出,計(jì)算機(jī)系統(tǒng)包括在本地(或主)存儲(chǔ)裝置中的信息,以及尋址、保護(hù)以及參考及改變記錄。尋址的一些方面包括地址的格式、地址空間的概念、各種類(lèi)型的地址及將一種類(lèi)型的地址轉(zhuǎn)換為另一類(lèi)型的地址的方式。一些主存儲(chǔ)裝置包括永久指派的存儲(chǔ)位置。主存儲(chǔ)裝置向系統(tǒng)提供數(shù)據(jù)的直接可尋址的快速存取存儲(chǔ)。在可處理數(shù)據(jù)與程序兩者之前,將其(自輸入設(shè)備)加載至主存儲(chǔ)裝置中。
主存儲(chǔ)裝置可包括一個(gè)或多個(gè)更小的更快速存取的緩沖存儲(chǔ)器,其有時(shí)被稱(chēng)為高速緩存。高速緩存通常與CPU或I/O處理器物理關(guān)聯(lián)。除了對(duì)性能的影響,對(duì)物理構(gòu)造的影響及不同存儲(chǔ)介質(zhì)的使用通常不可由程序觀(guān)測(cè)。
可針對(duì)指令及針對(duì)數(shù)據(jù)操作數(shù)維護(hù)獨(dú)立高速緩存。在被稱(chēng)為高速緩存塊或高速緩存線(xiàn)(或簡(jiǎn)稱(chēng)為線(xiàn))的整體邊界上以相連字節(jié)維護(hù)高速緩存內(nèi)的信息。模型可提供EXTRACT CACHE ATTRIBUTE指令,其返回高速緩存線(xiàn)的字節(jié)大小。在另一實(shí)施例中,此信息可(例如)根據(jù)由Power架構(gòu)平臺(tái)參考規(guī)范所指定的接口從固件獲得。模型亦可提供數(shù)據(jù)高速緩存塊碰觸(debt)、PREFETCH DATA及PREFETCH DATA RELATIVE LONG指令中的一者或多者,這影響至數(shù)據(jù)或指令高速緩存中的存儲(chǔ)的預(yù)取回或數(shù)據(jù)自所述高速緩存的釋放。
將存儲(chǔ)裝置視為位的長(zhǎng)水平字串。對(duì)于多數(shù)操作,對(duì)存儲(chǔ)裝置的存取以從左至右的順序進(jìn)行。將位字串再分為八個(gè)位的單元。八位單元被稱(chēng)為字節(jié),其為所有信息格式的基礎(chǔ)構(gòu)建塊。通過(guò)唯一非負(fù)整數(shù)識(shí)別存儲(chǔ)裝置中的每一字節(jié)位置,其為該字節(jié)位置的地址或簡(jiǎn)單地為字節(jié)地址。相鄰字節(jié)位置具有連續(xù)地址,在左側(cè)自0開(kāi)始且以從左至右的順序進(jìn)行。地址為無(wú)符號(hào)的二進(jìn)制整數(shù)且為24個(gè)、31個(gè)或64個(gè)位。
信息在存儲(chǔ)裝置與CPU或通道子系統(tǒng)之間傳輸,一次一個(gè)字節(jié)或一組字節(jié)。除非另有指定,否則在(例如)Power ISA及z/Architecture中,存儲(chǔ)裝置中的一組字節(jié)由該組的最左字節(jié)尋址。該組中的字節(jié)的數(shù)目由待執(zhí)行的操作隱含或顯式地指定。當(dāng)用于CPU操作中時(shí),一組字節(jié)被稱(chēng)為字段。在每一組字節(jié)內(nèi),在(例如)Power ISA及z/Architecture中,位以從左至右的順序編號(hào)。在Power ISA及z/Architecture中,最左位有時(shí)被稱(chēng)作“高階”位,并且最右位被稱(chēng)為“低階”位。然而,位編號(hào)并非存儲(chǔ)地址,僅可尋址字節(jié)。為對(duì)存儲(chǔ)裝置中的字節(jié)的個(gè)體位進(jìn)行操作,存取整個(gè)字節(jié)。字節(jié)中的位從左至右(在例如z/Architecture中)被編號(hào)為0至7。針對(duì)24位地址,地址中的位可被編號(hào)為8至31或40至63,或針對(duì)31位地址,其被編號(hào)為1至31或33至63;針對(duì)64位地址,所述位被編號(hào)為0至63。在一個(gè)實(shí)例中,位8至31及1至31適用于處于為32個(gè)位寬的一位置(例如,寄存器)中的地址,而位40至63及33至63適用于處于64位寬位置中的地址。在多個(gè)字節(jié)的任何其他固定長(zhǎng)度格式內(nèi),構(gòu)成該格式的位自0開(kāi)始連續(xù)編號(hào)。出于錯(cuò)誤檢測(cè)的目的且優(yōu)選地用于校正,一個(gè)或多個(gè)校驗(yàn)位可隨每一字節(jié)或隨一組字節(jié)傳輸。這些校驗(yàn)位由機(jī)器自動(dòng)產(chǎn)生且不可由程序直接控制。存儲(chǔ)容量以字節(jié)數(shù)表達(dá)。當(dāng)存儲(chǔ)裝置-操作數(shù)字段的長(zhǎng)度通過(guò)指令的操作碼暗示時(shí),字段被稱(chēng)為具有固定長(zhǎng)度,其可為一個(gè)、兩個(gè)、四個(gè)、八個(gè)或十六個(gè)字節(jié)。可針對(duì)一些指令暗示較大字段。當(dāng)不暗示而是顯式聲明存儲(chǔ)裝置-操作數(shù)字段的長(zhǎng)度時(shí),字段被稱(chēng)為具有可變長(zhǎng)度??勺冮L(zhǎng)度操作數(shù)的長(zhǎng)度可變化一個(gè)字節(jié)的增量(或?qū)τ谝恍┲噶睿詢(xún)蓚€(gè)字節(jié)的倍數(shù)或其他倍數(shù)變化)。當(dāng)將信息放置于存儲(chǔ)裝置中時(shí),替換僅包括在指定字段中的那些字節(jié)位置的內(nèi)容,即使至存儲(chǔ)裝置的物理路徑的寬度可大于所存儲(chǔ)的字段的長(zhǎng)度。
某些信息單元將在存儲(chǔ)裝置中的整體邊界上。當(dāng)信息單元的存儲(chǔ)地址為以字節(jié)為單位的單元長(zhǎng)度的倍數(shù)時(shí),對(duì)于該信息單元,邊界被稱(chēng)為整體的。為整體邊界上的2、4、8 16及32字節(jié)的字段給出特殊名稱(chēng)。半字(halfword)為二字節(jié)邊界上的兩個(gè)連續(xù)字節(jié)的組且為指令的基礎(chǔ)構(gòu)建塊。字(word)為在四字節(jié)邊界上的四個(gè)連續(xù)字節(jié)的組。雙字(doubleword)為在八字節(jié)邊界上的八個(gè)連續(xù)字節(jié)的組。四倍字(quadword)為在16字節(jié)邊界上的16個(gè)連續(xù)字節(jié)的組。八倍字(octoword)為在32字節(jié)邊界上的32個(gè)連續(xù)字節(jié)的組。當(dāng)存儲(chǔ)地址指定半字、字、雙字、四倍字及八倍字時(shí),地址的二進(jìn)制表示分別含有一個(gè)、兩個(gè)、三個(gè)、四個(gè)或五個(gè)最右0位。指令將在二字節(jié)整體邊界上。多數(shù)指令的存儲(chǔ)操作數(shù)不具有邊界對(duì)準(zhǔn)要求。
在針對(duì)指令及數(shù)據(jù)操作數(shù)實(shí)施獨(dú)立高速緩存的設(shè)備上,無(wú)論存儲(chǔ)是否更改隨后取回的指令,如果程序存儲(chǔ)至隨后取回指令的高速緩存線(xiàn)中,則可能經(jīng)歷顯著延遲。
在一個(gè)實(shí)例中,可通過(guò)軟件(有時(shí)被稱(chēng)作許可內(nèi)碼、固件、微碼、毫碼或微微碼及類(lèi)似者,以上中的任一者將與一個(gè)或多個(gè)優(yōu)選實(shí)施例相一致)實(shí)施該實(shí)施例。參考圖13,體現(xiàn)一個(gè)或多個(gè)方面的軟件程序代碼可由主機(jī)系統(tǒng)5000的處理器5001自長(zhǎng)期存儲(chǔ)介質(zhì)設(shè)備5011(諸如CD-ROM驅(qū)動(dòng)器或磁帶驅(qū)動(dòng)器或硬盤(pán)驅(qū)動(dòng)器)存取。軟件程序代碼可體現(xiàn)于多種已知介質(zhì)中的任一者上以與數(shù)據(jù)處理系統(tǒng)(諸如,磁盤(pán)、硬盤(pán)驅(qū)動(dòng)器或CD-ROM)使用。代碼可分布于此類(lèi)介質(zhì)上,或可自計(jì)算機(jī)存儲(chǔ)器5002或一個(gè)計(jì)算機(jī)系統(tǒng)的存儲(chǔ)裝置經(jīng)由至其他計(jì)算機(jī)系統(tǒng)的網(wǎng)絡(luò)5010分發(fā)給用戶(hù),以供此類(lèi)其他系統(tǒng)的用戶(hù)使用。
軟件程序代碼包括操作系統(tǒng),其控制各種計(jì)算機(jī)組件及一個(gè)或多個(gè)應(yīng)用程序的功能及交互。在程序代碼可用于由處理器5001進(jìn)行處理的情況下,通常自存儲(chǔ)介質(zhì)設(shè)備5011將程序代碼分頁(yè)至相對(duì)較高速度的計(jì)算機(jī)存儲(chǔ)裝置5002。在存儲(chǔ)器中、在物理介質(zhì)上體現(xiàn)軟件程序代碼和/或經(jīng)由網(wǎng)絡(luò)分發(fā)軟件程序代碼的技術(shù)及方法是公知的且本文將不對(duì)其進(jìn)行進(jìn)一步論述。在被創(chuàng)建及存儲(chǔ)于有形介質(zhì)(包括(但不限于)電子存儲(chǔ)模塊(RAM)、閃存、光盤(pán)(CD)、DVD、磁帶及其類(lèi)似者)上時(shí),程序代碼常被稱(chēng)作“計(jì)算機(jī)程序產(chǎn)品”。計(jì)算機(jī)程序產(chǎn)品介質(zhì)通常可由優(yōu)選地在計(jì)算機(jī)系統(tǒng)中的處理電路讀取以供處理電路執(zhí)行。
圖14說(shuō)明其中可實(shí)施一個(gè)或多個(gè)優(yōu)選實(shí)施例的代表性工作站或服務(wù)器硬件系統(tǒng)。圖14的系統(tǒng)5020包括代表性基本計(jì)算機(jī)系統(tǒng)5021,諸如個(gè)人計(jì)算機(jī)、工作站或服務(wù)器,包括可選的周邊設(shè)備?;居?jì)算機(jī)系統(tǒng)5021包括一個(gè)或多個(gè)處理器5026及用于根據(jù)已知技術(shù)連接系統(tǒng)5021的處理器5026與其他組件及啟用其間的通信的總線(xiàn)。總線(xiàn)將處理器5026連接至存儲(chǔ)器5025及長(zhǎng)期存儲(chǔ)裝置5027,其可(例如)包括硬盤(pán)驅(qū)動(dòng)器(包括(例如)磁介質(zhì)、CD、DVD及閃存中的任一者)或磁帶驅(qū)動(dòng)器。系統(tǒng)5021亦可包括用戶(hù)接口適配器,其經(jīng)由總線(xiàn)將微處理器5026連接至一個(gè)或多個(gè)接口設(shè)備(諸如鍵盤(pán)5024、鼠標(biāo)5023、打印機(jī)/掃描儀5030,和/或其他接口設(shè)備),所述一個(gè)或多個(gè)接口設(shè)備可為任何用戶(hù)接口設(shè)備,諸如觸敏式屏幕、數(shù)字化輸入板(entry pad)等??偩€(xiàn)亦經(jīng)由顯示器適配器將顯示設(shè)備5022(諸如LCD屏幕或監(jiān)視器)連接至微處理器5026。
系統(tǒng)5021可借助能夠與網(wǎng)絡(luò)5029通信的網(wǎng)絡(luò)適配器與其他計(jì)算機(jī)或計(jì)算機(jī)的網(wǎng)絡(luò)通信5028。實(shí)例網(wǎng)絡(luò)適配器為通信通道、令牌環(huán)、以太網(wǎng)或調(diào)制解調(diào)器。備選地,系統(tǒng)5021可使用諸如CDPD(蜂窩數(shù)字分組數(shù)據(jù))卡的無(wú)線(xiàn)接口進(jìn)行通信。系統(tǒng)5021可與局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)中的此類(lèi)其他計(jì)算機(jī)相關(guān)聯(lián),或系統(tǒng)5021可為與另一計(jì)算機(jī)的客戶(hù)端/服務(wù)器配置中的客戶(hù)端等。所有這些配置以及適當(dāng)通信硬件及軟件在本領(lǐng)域中是公知的。
圖15說(shuō)明其中可實(shí)施一個(gè)或多個(gè)優(yōu)選實(shí)施例的數(shù)據(jù)處理網(wǎng)絡(luò)5040。數(shù)據(jù)處理網(wǎng)絡(luò)5040可包括多個(gè)個(gè)體網(wǎng)絡(luò),諸如無(wú)線(xiàn)網(wǎng)絡(luò)及有線(xiàn)網(wǎng)絡(luò),以上中的每一者可包括多個(gè)個(gè)體工作站5041、5042、5043、5044。另外,如本領(lǐng)域技術(shù)人員將了解的,可包括一個(gè)或多個(gè)LAN,其中LAN可包括耦接至主機(jī)處理器的多個(gè)智能工作站。
仍參考圖15,網(wǎng)絡(luò)亦可包括大型計(jì)算機(jī)或服務(wù)器,諸如,網(wǎng)關(guān)計(jì)算機(jī)(客戶(hù)端服務(wù)器5046)或應(yīng)用服務(wù)器(可存取數(shù)據(jù)存儲(chǔ)庫(kù)且亦可直接自工作站5045存取的遠(yuǎn)程服務(wù)器5048)。網(wǎng)關(guān)計(jì)算機(jī)5046充當(dāng)至每一個(gè)體網(wǎng)絡(luò)的進(jìn)入點(diǎn)。在將一個(gè)網(wǎng)絡(luò)連接協(xié)議連接至另一者時(shí),需要網(wǎng)關(guān)。網(wǎng)關(guān)5046可借助通信鏈路優(yōu)選地耦接至另一網(wǎng)絡(luò)(例如,因特網(wǎng)5047)。網(wǎng)關(guān)5046亦可使用通信鏈路直接耦接至一個(gè)或多個(gè)工作站5041、5042、5043、5044。網(wǎng)關(guān)計(jì)算機(jī)可利用可自國(guó)際商用機(jī)器公司獲得的IBM Power Systems服務(wù)器及IBM System服務(wù)器中的一者來(lái)實(shí)現(xiàn)。
同時(shí)參考圖14及圖15,可體現(xiàn)一個(gè)或多個(gè)方面的軟件編程碼5031可由系統(tǒng)5020的處理器5026自諸如CD-ROM驅(qū)動(dòng)器或硬盤(pán)驅(qū)動(dòng)器的長(zhǎng)期存儲(chǔ)介質(zhì)5027存取。軟件編程碼可體現(xiàn)于多種已知介質(zhì)中的任一者上以與數(shù)據(jù)處理系統(tǒng)(諸如,磁盤(pán)、硬盤(pán)驅(qū)動(dòng)器或CD-ROM)使用。所述代碼可分布于此類(lèi)介質(zhì)上,或可自一個(gè)計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器或存儲(chǔ)裝置經(jīng)由至其他計(jì)算機(jī)系統(tǒng)的網(wǎng)絡(luò)分發(fā)給用戶(hù)5050、5051,以供此類(lèi)其他系統(tǒng)的用戶(hù)使用。
備選地,編程碼可體現(xiàn)于存儲(chǔ)器5025中且由處理器5026使用處理器總線(xiàn)存取。此類(lèi)編程碼包括操作系統(tǒng),其控制各種計(jì)算機(jī)組件及一個(gè)或多個(gè)應(yīng)用程序5032的功能及交互。在程序代碼可用于由處理器5026進(jìn)行處理的情況下,通常自存儲(chǔ)介質(zhì)5027將程序代碼分頁(yè)至高速存儲(chǔ)器5025。在存儲(chǔ)器中、在物理介質(zhì)上體現(xiàn)軟件編程碼和/或經(jīng)由網(wǎng)絡(luò)分布軟件程序代碼的技術(shù)及方法是公知的且本文將不對(duì)其進(jìn)行進(jìn)一步論述。在被創(chuàng)建及存儲(chǔ)于有形介質(zhì)(包括(但不限于)電子存儲(chǔ)模塊(RAM)、閃存、光盤(pán)(CD)、DVD、磁帶及其類(lèi)似者)上時(shí),程序代碼常被稱(chēng)作“計(jì)算機(jī)程序產(chǎn)品”。計(jì)算機(jī)程序產(chǎn)品介質(zhì)通??捎蓛?yōu)選地在計(jì)算機(jī)系統(tǒng)中的處理電路讀取以供處理電路執(zhí)行。
可最容易用于處理器的高速緩存(通常比處理器的其他高速緩存更快及更小)為最低(L1或?qū)蛹?jí)1)的高速緩存且主存儲(chǔ)(主存儲(chǔ)器)為最高層級(jí)高速緩存(如果存在3個(gè)層級(jí),則為L(zhǎng)3)。最低層級(jí)高速緩存常劃分為保存待執(zhí)行的機(jī)器指令的指令高速緩存(I-高速緩存)及保存數(shù)據(jù)操作數(shù)的數(shù)據(jù)高速緩存(D-高速緩存)。
參考圖16,描繪處理器5026的例示性處理器實(shí)施例。通常,一個(gè)或多個(gè)層級(jí)的高速緩存5053用于緩沖存儲(chǔ)器塊以便改進(jìn)處理器性能。高速緩存5053為保存可能將使用的存儲(chǔ)器數(shù)據(jù)的高速緩存線(xiàn)的高速緩沖器。通常,高速緩存線(xiàn)為64個(gè)、128個(gè)或256個(gè)字節(jié)的存儲(chǔ)器數(shù)據(jù)。獨(dú)立高速緩存常用于緩存指令而非用于緩存數(shù)據(jù)。經(jīng)常通過(guò)本領(lǐng)域中公知的各種“窺探(snoop)”算法提供高速緩存一致性(線(xiàn)的復(fù)本在存儲(chǔ)器及高速緩存中的同步)。處理器系統(tǒng)的主存儲(chǔ)裝置5025常被稱(chēng)作高速緩存。在具有4個(gè)層級(jí)的高速緩存5053的處理器系統(tǒng)中,主存儲(chǔ)裝置5025有時(shí)被稱(chēng)作層級(jí)5(L5)高速緩存,這是因?yàn)槠渫ǔ8烨覂H保存可用于計(jì)算機(jī)系統(tǒng)的非易失性存儲(chǔ)器(DASD、磁帶等)的一部分。主存儲(chǔ)裝置5025“緩存”由操作系統(tǒng)頁(yè)入及頁(yè)出主存儲(chǔ)裝置5025的數(shù)據(jù)頁(yè)面。
程序計(jì)數(shù)器(指令計(jì)數(shù)器)5061保持待執(zhí)行的當(dāng)前指令的地址追蹤。z/Architecture處理器中的程序計(jì)數(shù)器為64個(gè)位且可被截?cái)喑?1或24個(gè)位以支持先前尋址限制。Power架構(gòu)處理器中的程序計(jì)數(shù)器為64個(gè)位且可被截?cái)喑?2個(gè)位以支持先前尋址限制。程序計(jì)數(shù)器通常體現(xiàn)于計(jì)算機(jī)的PSW(程序狀態(tài)字)中,以使得其在上下文切換期間持續(xù)。因此,正在進(jìn)行中的具有程序計(jì)數(shù)器值的程序可由(例如)操作系統(tǒng)(自程序環(huán)境至操作系統(tǒng)環(huán)境的上下文切換)中斷。在程序不活動(dòng)時(shí),程序的PSW維持程序計(jì)數(shù)器值,并且在操作系統(tǒng)正在執(zhí)行中時(shí),使用操作系統(tǒng)的(PSW中的)程序計(jì)數(shù)器。通常,程序計(jì)數(shù)器的增量等于當(dāng)前指令的字節(jié)數(shù)。RISC(精簡(jiǎn)指令集計(jì)算)指令通常為長(zhǎng)度固定的,而CISC(復(fù)雜指令集計(jì)算)指令通常為長(zhǎng)度可變的。IBM z/Architecture的指令為具有2個(gè)、4個(gè)或6個(gè)字節(jié)的長(zhǎng)度的CISC指令。IBM Power ISA的指令為具有4個(gè)字節(jié)的長(zhǎng)度的RISC指令。通過(guò)(例如)分支指令的上下文切換操作或分支采取操作來(lái)修改程序計(jì)數(shù)器5061。在上下文切換操作中,將當(dāng)前程序計(jì)數(shù)器值連同關(guān)于正執(zhí)行的程序的其他狀態(tài)信息(諸如條件代碼)保存于程序狀態(tài)字中,并且加載新程序計(jì)數(shù)器值,該值指向新程序模塊的待執(zhí)行的指令。執(zhí)行分支采取操作以便通過(guò)將分支指令的結(jié)果加載至程序計(jì)數(shù)器5061中而準(zhǔn)許程序作出決策或在程序內(nèi)循環(huán)。
通常,指令取回單元5055用于代表處理器5026取回指令。取回單元取回“下一順序指令”、分支采取指令的目標(biāo)指令或上下文切換后的程序的第一指令?,F(xiàn)代指令取回單元常使用預(yù)取回技術(shù)以基于可使用預(yù)取回指令的可能性來(lái)以推測(cè)方式預(yù)取回指令。舉例而言,取回單元可取回16個(gè)字節(jié)的指令,其包括下一順序指令及額外字節(jié)的其他順序指令。
接著由處理器5026執(zhí)行被取回的指令。在一個(gè)實(shí)施例中,將被取回的指令(多個(gè))傳遞至取回單元的分派單元5056。分派單元將指令(多個(gè))解碼且將關(guān)于已解碼指令(多個(gè))的信息轉(zhuǎn)發(fā)至適當(dāng)單元5057、5058、5060。執(zhí)行單元5057通常將自指令取回單元5055接收關(guān)于已解碼算術(shù)指令的信息且將根據(jù)指令的操作碼對(duì)操作數(shù)執(zhí)行算術(shù)運(yùn)算。優(yōu)選地自存儲(chǔ)器5025、架構(gòu)化寄存器5059或自正被執(zhí)行的指令的立即字段提供操作數(shù)至執(zhí)行單元5057。在存儲(chǔ)時(shí),將執(zhí)行結(jié)果存儲(chǔ)于存儲(chǔ)器5025、寄存器5059中或存儲(chǔ)于其他機(jī)器硬件(諸如控制寄存器、PSW寄存器及類(lèi)似者)中。
使用動(dòng)態(tài)地址轉(zhuǎn)換5062及可選地使用存取寄存器轉(zhuǎn)換5063將虛擬地址轉(zhuǎn)變?yōu)閷?shí)地址。
處理器5026通常具有用于執(zhí)行指令的功能的一個(gè)或多個(gè)單元5057、5058、5060。參考圖17A,執(zhí)行單元5057可借助接口連接邏輯5071與架構(gòu)化通用寄存器5059、解碼/分派單元5056、加載存儲(chǔ)單元5060及其他處理器單元5065通信5071。執(zhí)行單元5057可使用數(shù)個(gè)寄存器電路5067、5068、5069以保存信息,算術(shù)邏輯單元(ALU)5066將基于所述信息進(jìn)行操作。ALU執(zhí)行諸如加法、減法、乘法及除法的算術(shù)運(yùn)算以及諸如“與”、“或”及“異或(XOR)”、循環(huán)及移位的邏輯功能。優(yōu)選地,ALU支持設(shè)計(jì)相關(guān)的專(zhuān)用運(yùn)算。其他電路可提供其他架構(gòu)化工具5072,包括(例如)條件代碼及恢復(fù)支持邏輯。通常,將ALU運(yùn)算的結(jié)果保存在輸出寄存器電路5070中,其可將結(jié)果轉(zhuǎn)發(fā)至多種其他處理功能。存在處理器單元的許多配置,本描述僅意欲提供對(duì)一個(gè)實(shí)施例的代表性理解。
ADD指令例如在具有算術(shù)和邏輯功能的執(zhí)行單元5057中執(zhí)行,而浮點(diǎn)指令例如在具有專(zhuān)門(mén)浮點(diǎn)能力的浮點(diǎn)執(zhí)行中執(zhí)行。優(yōu)選地,執(zhí)行單元通過(guò)針對(duì)操作數(shù)執(zhí)行操作碼定義的功能來(lái)處理由指令標(biāo)識(shí)的操作數(shù)。例如,執(zhí)行單元5057可以對(duì)在由指令的寄存器字段標(biāo)識(shí)的兩個(gè)寄存器5059中找到的操作數(shù)執(zhí)行ADD指令。
執(zhí)行單元5057對(duì)兩個(gè)操作數(shù)執(zhí)行算術(shù)加法并將結(jié)果存儲(chǔ)在第三操作數(shù)中,其中第三操作數(shù)可以是第三寄存器或兩個(gè)源寄存器之一。執(zhí)行單元優(yōu)選地使用算術(shù)邏輯單元(ALU)5066,算術(shù)邏輯單元(ALU)5066能夠執(zhí)行各種邏輯功能(例如Shift、Rotate、“與”、“或”和“異或”)以及各種代數(shù)功能(包括加、減、乘、除中的任一種)。有些ALU 5066設(shè)計(jì)用于標(biāo)量運(yùn)算而有些用于浮點(diǎn)運(yùn)算。根據(jù)體系結(jié)構(gòu),數(shù)據(jù)可以是大端(Big Endian)(其中最低有效字節(jié)在最高字節(jié)地址處)或小端(其中最低有效字節(jié)在最低字節(jié)地址處)。IBM z/Architecture是大端。IBM Power ISA支持大端和小端執(zhí)行模式兩者。根據(jù)體系結(jié)構(gòu),帶符號(hào)字段可以是符號(hào)以及1的補(bǔ)碼或2的補(bǔ)碼的量值。2的補(bǔ)碼數(shù)是有利的,因?yàn)锳LU不需要設(shè)計(jì)減法功能,原因是采用2的補(bǔ)碼的負(fù)值或正值在ALU內(nèi)僅需要加法。數(shù)字通常以速記法描述,例如其中一個(gè)12位字段定義一個(gè)4,096字節(jié)塊的地址,并且通常被描述為4KB(千字節(jié))塊。
參考圖17B,通常將用于執(zhí)行分支指令的分支指令信息發(fā)送到分支單元5058,分支單元5058通常采用分支預(yù)測(cè)算法(例如分支歷史表5082)以便在其他條件運(yùn)算完成之前預(yù)測(cè)分支的結(jié)果。在條件運(yùn)算完成之前,將取回并推測(cè)地執(zhí)行當(dāng)前分支指令的目標(biāo)。當(dāng)條件運(yùn)算完成時(shí),根據(jù)條件運(yùn)算的條件以及推測(cè)的結(jié)果,將完成或丟棄推測(cè)地執(zhí)行的分支指令。典型的分支指令可以測(cè)試條件碼并分支到目標(biāo)地址,如果條件碼滿(mǎn)足分支指令的分支要求,則可以根據(jù)若干數(shù)值(例如包括在寄存器字段或指令的立即字段中找到的數(shù)值)計(jì)算目標(biāo)地址。分支單元5058可以采用具有多個(gè)輸入寄存器電路5075、5076、5077以及一個(gè)輸出寄存器電路5080的ALU 5074。分支單元5058可以例如與通用寄存器5059、解碼分派單元5056或其他電路5073通信5081。
一組指令的執(zhí)行可以因各種原因被中斷,這些原因例如包括由操作系統(tǒng)發(fā)起的上下文切換、導(dǎo)致上下文切換的程序異常或錯(cuò)誤、導(dǎo)致上下文切換的I/O中斷信號(hào)或多個(gè)程序的多線(xiàn)程活動(dòng)(在多線(xiàn)程環(huán)境中)。優(yōu)選地,上下文切換操作將保存有關(guān)當(dāng)前正在執(zhí)行的程序的狀態(tài)信息,然后加載有關(guān)被調(diào)用的其他程序的狀態(tài)信息。例如,可以將狀態(tài)信息保存在硬件寄存器或存儲(chǔ)器中。狀態(tài)信息優(yōu)選地包括指向要執(zhí)行的下一指令的程序計(jì)數(shù)器值、條件碼、存儲(chǔ)器轉(zhuǎn)換信息以及架構(gòu)寄存器內(nèi)容??梢杂捎布娐贰?yīng)用程序、操作系統(tǒng)程序或固件代碼(微碼、微微碼或許可內(nèi)碼(LIC))單獨(dú)或聯(lián)合實(shí)施上下文切換活動(dòng)。
處理器根據(jù)指令定義的方法存取操作數(shù)。指令可使用指令的一部分的值提供立即操作數(shù),可提供顯式指向通用寄存器或?qū)S眉拇嫫?例如,浮點(diǎn)寄存器)的一個(gè)或多個(gè)寄存器字段。指令可利用由操作碼字段識(shí)別為操作數(shù)的隱含寄存器。指令可利用操作數(shù)的存儲(chǔ)器位置。操作數(shù)的存儲(chǔ)器位置可由寄存器、立即字段或寄存器及立即字段的組合提供,如由以下各者所例示的:z/Architecture長(zhǎng)位移工具,其中指令定義基寄存器、索引寄存器及立即字段(位移字段),以上各者加在一起提供(例如)存儲(chǔ)器中的操作數(shù)的地址;或Power ISA尋址模式,其中D-Form地址定義基寄存器及中間字段(位移字段),以上兩者加在一起提供存儲(chǔ)器中的操作數(shù)的地址;且其中X-Form地址定義基寄存器及索引寄存器,以上兩者加在一起提供存儲(chǔ)器中的操作數(shù)的地址。除非另有指示,否則本文中的位置通常暗示主存儲(chǔ)器(主存儲(chǔ)裝置)中的位置。
參考圖17C,處理器使用加載/存儲(chǔ)單元5060存取存儲(chǔ)裝置。加載/存儲(chǔ)單元5060可通過(guò)獲得存儲(chǔ)器5053中的目標(biāo)操作數(shù)的地址及將所述操作數(shù)加載到寄存器5059或另一存儲(chǔ)器5053位置中來(lái)執(zhí)行加載操作,或可通過(guò)獲得存儲(chǔ)器5053中的目標(biāo)操作數(shù)的地址及將自寄存器5059或另一存儲(chǔ)器5053位置獲得的數(shù)據(jù)存儲(chǔ)于存儲(chǔ)器5053中的目標(biāo)操作數(shù)位置來(lái)執(zhí)行存儲(chǔ)操作。加載/存儲(chǔ)單元5060可為推測(cè)式的且可以以相對(duì)于指令順序無(wú)序的順序來(lái)存取存儲(chǔ)器;然而,加載/存儲(chǔ)單元5060用于對(duì)程序維持按次序執(zhí)行指令的表象。加載/存儲(chǔ)單元5060可與通用寄存器5059、解碼/分派單元5056、高速緩存/存儲(chǔ)器接口5053或其他組件5083通信5084,并且包括各種寄存器電路5086、5087、5088及5089、ALU 5085及控制邏輯5090以計(jì)算存儲(chǔ)地址及提供管線(xiàn)定序以保持操作有序。一些操作可為無(wú)序的,但加載/存儲(chǔ)單元提供功能性以使無(wú)序操作對(duì)程序表現(xiàn)為已按次序執(zhí)行,如本領(lǐng)域中公知的那樣。
優(yōu)選地,應(yīng)用程序“看到”的地址通常被稱(chēng)為虛擬地址。虛擬地址有時(shí)被稱(chēng)為“邏輯地址”和“有效地址”。這些地址是虛擬的,因?yàn)樗鼈兺ㄟ^(guò)各種動(dòng)態(tài)地址轉(zhuǎn)換(DAT)技術(shù)之一被重定向到物理存儲(chǔ)器位置,這些技術(shù)包括但不限于僅使用偏移值向虛擬地址添加前綴、通過(guò)一個(gè)或多個(gè)轉(zhuǎn)換表轉(zhuǎn)換虛擬地址,所述轉(zhuǎn)換表優(yōu)選地單獨(dú)或同時(shí)包括至少一個(gè)段表和頁(yè)表,優(yōu)選地,所述段表具有指向頁(yè)表的表項(xiàng)。在z/Architecture中,提供了包括區(qū)第一表、區(qū)第二表、區(qū)第三表、段表以及可選的頁(yè)表的轉(zhuǎn)換層次結(jié)構(gòu)。通常通過(guò)使用轉(zhuǎn)換后備緩沖器(TLB)提高地址轉(zhuǎn)換的性能,轉(zhuǎn)換后備緩沖器包括將虛擬地址映射到關(guān)聯(lián)的物理存儲(chǔ)器位置的表項(xiàng)。當(dāng)DAT使用轉(zhuǎn)換表來(lái)轉(zhuǎn)換虛擬地址時(shí),將創(chuàng)建表項(xiàng)。然后,虛擬地址的后續(xù)使用能夠使用快速TLB而不是緩慢順序轉(zhuǎn)換表存取的表項(xiàng)??梢杂砂↙RU(最近最少使用)在內(nèi)的各種替換算法管理TLB內(nèi)容。
如果處理器是多處理器系統(tǒng)的處理器,則每個(gè)處理器都有責(zé)任保持諸如I/O、高速緩存、TLB以及存儲(chǔ)器之類(lèi)的共享資源互鎖以實(shí)現(xiàn)一致性。通常,將使用“窺探”技術(shù)保持高速緩存一致性。在窺探環(huán)境中,每個(gè)高速緩存行可以被標(biāo)記為處于共享狀態(tài)、獨(dú)占狀態(tài)、已更改狀態(tài)、無(wú)效狀態(tài)等中的任何一種狀態(tài)以便于共享。
I/O單元5054(圖16)提供用于附接至周邊設(shè)備(包括(例如)磁帶、光盤(pán)、打印機(jī)、顯示器及網(wǎng)絡(luò))的構(gòu)件給處理器。I/O單元通常由軟件驅(qū)動(dòng)器呈現(xiàn)至計(jì)算機(jī)程序。在大型計(jì)算機(jī)(諸如來(lái)自的System z)中,通道適配器及開(kāi)放系統(tǒng)適配器為在操作系統(tǒng)與周邊設(shè)備之間提供通信的大型計(jì)算機(jī)的I/O單元。在RISC服務(wù)器(諸如,來(lái)自的Power Systems)中,專(zhuān)有適配器及開(kāi)放系統(tǒng)適配器為在操作系統(tǒng)與周邊設(shè)備之間提供通信的I/O單元。
此外,其他類(lèi)型的計(jì)算環(huán)境可受益于一個(gè)或多個(gè)方面。作為一實(shí)例,環(huán)境可包括仿真器(例如,軟件或其他仿真機(jī)制),其中特定架構(gòu)(包括(例如)指令執(zhí)行、架構(gòu)化功能(諸如,地址轉(zhuǎn)換)及架構(gòu)化寄存器)或其子集被仿真(例如,在具有處理器及存儲(chǔ)器的本機(jī)計(jì)算機(jī)系統(tǒng)上)。在此類(lèi)環(huán)境中,仿真器的一個(gè)或多個(gè)仿真功能能夠?qū)嵤┮粋€(gè)或多個(gè)優(yōu)選實(shí)施例,即使執(zhí)行仿真器的計(jì)算機(jī)可能具有不同于正被仿真的能力的架構(gòu)也是如此。作為一個(gè)實(shí)例,在仿真模式中,對(duì)特定指令或正被仿真的操作進(jìn)行解碼,并且構(gòu)建適當(dāng)仿真功能以實(shí)施個(gè)體指令或操作。
在一仿真環(huán)境中,主計(jì)算機(jī)包括(例如):存儲(chǔ)器,其存儲(chǔ)指令及數(shù)據(jù);指令取回單元,其自存儲(chǔ)器取回指令,并且可選地,提供所取回的指令的本地緩沖;指令解碼單元,其接收所取回的指令且判定已取回指令的類(lèi)型;及指令執(zhí)行單元,其執(zhí)行所述指令。執(zhí)行可包括將數(shù)據(jù)自存儲(chǔ)器加載至寄存器中;將數(shù)據(jù)自寄存器存儲(chǔ)回至存儲(chǔ)器;或執(zhí)行某一類(lèi)型的算術(shù)或邏輯運(yùn)算(如由解碼單元所判定的)。在一個(gè)實(shí)例中,在軟件中實(shí)施每一單元。舉例而言,由所述單元執(zhí)行的操作被實(shí)施為仿真器軟件內(nèi)的一個(gè)或多個(gè)子例程。
更具體地說(shuō),在大型計(jì)算機(jī)中,經(jīng)常由編程人員(通常為當(dāng)今的“C”編程人員)借助編譯器應(yīng)用使用架構(gòu)化機(jī)器指令??杀緳C(jī)地在Power Systems或z/Architecture服務(wù)器中或替代地在執(zhí)行其他架構(gòu)的機(jī)器中執(zhí)行存儲(chǔ)于存儲(chǔ)介質(zhì)中的這些指令。這些指令可在現(xiàn)有及在未來(lái)大型計(jì)算機(jī)服務(wù)器、Power Systems服務(wù)器中及在的其他機(jī)器(例如,System x服務(wù)器)上進(jìn)行仿真??稍谑褂糜葾MD及其他公司制造的硬件的多種機(jī)器上運(yùn)行Linux的機(jī)器中執(zhí)行這些指令。除了在Power架構(gòu)或z/Architecture下的該硬件上執(zhí)行以外,可使用以及使用由Hercules、UMX或FSI(Fundamental Software公司)的仿真的機(jī)器,其中總體上執(zhí)行處于仿真模式中。在仿真模式中,由本機(jī)處理器執(zhí)行仿真軟件以仿真所仿真處理器的架構(gòu)。
本機(jī)處理器通常執(zhí)行包括固件或本機(jī)操作系統(tǒng)的仿真軟件,以執(zhí)行所仿真處理器的仿真。仿真軟件負(fù)責(zé)取回及執(zhí)行所仿真的處理架構(gòu)的指令。仿真軟件維護(hù)所仿真的程序計(jì)數(shù)器以保持對(duì)指令邊界的追蹤。仿真軟件可一次取回一個(gè)或多個(gè)所仿真的機(jī)器指令且將所述一個(gè)或多個(gè)所仿真的機(jī)器指令轉(zhuǎn)換為一組對(duì)應(yīng)的本機(jī)機(jī)器指令以供本機(jī)處理器執(zhí)行。這些轉(zhuǎn)換后的指令可被緩存,使得可實(shí)現(xiàn)更快的轉(zhuǎn)換。盡管如此,仿真軟件用于維持所仿真的處理器架構(gòu)的架構(gòu)規(guī)則以確保被編寫(xiě)以用于所仿真處理器的操作系統(tǒng)及應(yīng)用正確地進(jìn)行操作。此外,仿真軟件用于提供由所仿真的處理器架構(gòu)識(shí)別的資源,其包括(但不限于)控制寄存器、通用寄存器、浮點(diǎn)寄存器、包括(例如)段表及頁(yè)表的動(dòng)態(tài)地址轉(zhuǎn)換功能、中斷機(jī)制、上下文切換機(jī)制、當(dāng)日時(shí)間(TOD)時(shí)鐘及至I/O子系統(tǒng)的架構(gòu)化接口,使得被設(shè)計(jì)以在所仿真處理器上運(yùn)行的操作系統(tǒng)或應(yīng)用程序能夠在具有仿真軟件的本機(jī)處理器上運(yùn)行。
對(duì)正被仿真的特定指令進(jìn)行解碼且調(diào)用子例程以執(zhí)行個(gè)體指令的功能。例如在“C”子例程或驅(qū)動(dòng)程序中或在為特定硬件提供驅(qū)動(dòng)程序的某一其他方法(如在理解本發(fā)明的優(yōu)選實(shí)施例的描述后將屬于本領(lǐng)域技術(shù)內(nèi))中實(shí)施仿真所仿真處理器的功能的仿真軟件功能。針對(duì)本領(lǐng)域技術(shù)人員可獲得的目標(biāo)機(jī)器,各種軟件及硬件仿真專(zhuān)利及許多其他專(zhuān)利例示了達(dá)成對(duì)針對(duì)不同機(jī)器架構(gòu)化的指令格式的仿真的多種已知方式,所述軟件及硬件仿真專(zhuān)利包括(但不限于):Beausoleil等人的標(biāo)題為“Multiprocessor for Hardware Emulation”的美國(guó)專(zhuān)利證書(shū)第5,551,013號(hào);及Scalzi等人的標(biāo)題為“Preprocessing of Stored Target Routines for Emulating Incompatible Instructions on a Target Processor”的美國(guó)專(zhuān)利證書(shū)第6,009,261號(hào);及Davidian等人的標(biāo)題為“Decoding Guest Instruction to Directly Access Emulation Routines that Emulate the Guest Instructions”的美國(guó)專(zhuān)利證書(shū)第5,574,873號(hào);及Gorishek等人的標(biāo)題為“Symmetrical Multiprocessing Bus and Chipset Used for Coprocessor Support Allowing Non-Native Code to Run in a System”的美國(guó)專(zhuān)利證書(shū)第6,308,255號(hào);及Lethin等人的標(biāo)題為“Dynamic Optimizing Object Code Translator for Architecture Emulation and Dynamic Optimizing Object Code Translation Method”的美國(guó)專(zhuān)利證書(shū)第6,463,582號(hào);及Eric Traut的標(biāo)題為“Method for Emulating Guest Instructions on a Host Computer Through Dynamic Recompilation of Host Instructions”的美國(guó)專(zhuān)利證書(shū)第5,790,825號(hào)。
在圖18中,提供所仿真主計(jì)算機(jī)系統(tǒng)5092的一個(gè)實(shí)例,其仿真主機(jī)架構(gòu)的主計(jì)算機(jī)系統(tǒng)5000'。在所仿真的主計(jì)算機(jī)系統(tǒng)5092中,主機(jī)處理器(CPU)5091為所仿真的主機(jī)處理器(或虛擬主機(jī)處理器)且包括仿真處理器5093,其具有不同于主計(jì)算機(jī)5000'的處理器5091的本機(jī)指令集架構(gòu)。所仿真的主計(jì)算機(jī)系統(tǒng)5092具有對(duì)仿真處理器5093可存取的存儲(chǔ)器5094。在該實(shí)例實(shí)施例中,存儲(chǔ)器5094被分區(qū)為主計(jì)算機(jī)存儲(chǔ)器5096部分及仿真例程5097部分。根據(jù)主計(jì)算機(jī)架構(gòu),主計(jì)算機(jī)存儲(chǔ)器5096可用于所仿真的主計(jì)算機(jī)5092的程序。仿真處理器5093執(zhí)行架構(gòu)與所仿真處理器5091的架構(gòu)不同的架構(gòu)化指令集的本機(jī)指令,所述本機(jī)指令自仿真例程存儲(chǔ)器5097獲得,并且所述仿真處理器可通過(guò)使用在順序及存取/解碼例程中獲得的一個(gè)或多個(gè)指令來(lái)從主計(jì)算機(jī)存儲(chǔ)器5096中的程序存取用于執(zhí)行的主機(jī)指令,所述順序及存取/解碼例程可解碼所存取的主機(jī)指令(多個(gè))以確定用于仿真所存取主機(jī)指令的功能的本機(jī)指令執(zhí)行例程。舉例而言,被定義用于主計(jì)算機(jī)系統(tǒng)5000'架構(gòu)的其他工具可由架構(gòu)化工具例程仿真,所述工具包括諸如以下各者的工具:通用寄存器、控制寄存器、動(dòng)態(tài)地址轉(zhuǎn)換及I/O子系統(tǒng)支持及處理器高速緩存。仿真例程亦可利用仿真處理器5093中可獲得的功能(諸如通用寄存器及虛擬地址的動(dòng)態(tài)轉(zhuǎn)換)以改進(jìn)仿真例程的性能。亦可提供專(zhuān)用硬件及卸載引擎以幫助處理器5093仿真主計(jì)算機(jī)5000'的功能。
在另一實(shí)施例中,一個(gè)或多個(gè)方面涉及云計(jì)算。首先應(yīng)當(dāng)理解,盡管本公開(kāi)包括關(guān)于云計(jì)算的詳細(xì)描述,但其中記載的技術(shù)方案的實(shí)現(xiàn)卻不限于云計(jì)算環(huán)境,而是能夠結(jié)合現(xiàn)在已知或以后開(kāi)發(fā)的任何其它類(lèi)型的計(jì)算環(huán)境而實(shí)現(xiàn)。
云計(jì)算是一種服務(wù)交付模式,用于對(duì)共享的可配置計(jì)算資源池進(jìn)行方便、按需的網(wǎng)絡(luò)訪(fǎng)問(wèn)??膳渲糜?jì)算資源是能夠以最小的管理成本或與服務(wù)提供者進(jìn)行最少的交互就能快速部署和釋放的資源,例如可以是網(wǎng)絡(luò)、網(wǎng)絡(luò)帶寬、服務(wù)器、處理、內(nèi)存、存儲(chǔ)、應(yīng)用、虛擬機(jī)和服務(wù)。這種云模式可以包括至少五個(gè)特征、至少三個(gè)服務(wù)模型和至少四個(gè)部署模型。
特征包括:
按需自助式服務(wù):云的消費(fèi)者在無(wú)需與服務(wù)提供者進(jìn)行人為交互的情況下能夠單方面自動(dòng)地按需部署諸如服務(wù)器時(shí)間和網(wǎng)絡(luò)存儲(chǔ)等的計(jì)算能力。
廣泛的網(wǎng)絡(luò)接入:計(jì)算能力可以通過(guò)標(biāo)準(zhǔn)機(jī)制在網(wǎng)絡(luò)上獲取,這種標(biāo)準(zhǔn)機(jī)制促進(jìn)了通過(guò)不同種類(lèi)的瘦客戶(hù)機(jī)平臺(tái)或厚客戶(hù)機(jī)平臺(tái)(例如移動(dòng)電話(huà)、膝上型電腦、個(gè)人數(shù)字助理PDA)對(duì)云的使用。
資源池:提供者的計(jì)算資源被歸入資源池并通過(guò)多租戶(hù)(multi-tenant)模式服務(wù)于多重消費(fèi)者,其中按需將不同的實(shí)體資源和虛擬資源動(dòng)態(tài)地分配和再分配。一般情況下,消費(fèi)者不能控制或甚至并不知曉所提供的資源的確切位置,但可以在較高抽象程度上指定位置(例如國(guó)家、州或數(shù)據(jù)中心),因此具有位置無(wú)關(guān)性。
迅速?gòu)椥裕耗軌蜓杆?、有彈性?有時(shí)是自動(dòng)地)部署計(jì)算能力,以實(shí)現(xiàn)快速擴(kuò)展,并且能迅速釋放來(lái)快速縮小。在消費(fèi)者看來(lái),用于部署的可用計(jì)算能力往往顯得是無(wú)限的,并能在任意時(shí)候都能獲取任意數(shù)量的計(jì)算能力。
可測(cè)量的服務(wù):云系統(tǒng)通過(guò)利用適于服務(wù)類(lèi)型(例如存儲(chǔ)、處理、帶寬和活躍用戶(hù)帳號(hào))的某種抽象程度的計(jì)量能力,自動(dòng)地控制和優(yōu)化資源效用??梢员O(jiān)測(cè)、控制和報(bào)告資源使用情況,為服務(wù)提供者和消費(fèi)者雙方提供透明度。
服務(wù)模型如下:
軟件即服務(wù)(SaaS):向消費(fèi)者提供的能力是使用提供者在云基礎(chǔ)架構(gòu)上運(yùn)行的應(yīng)用。可以通過(guò)諸如網(wǎng)絡(luò)瀏覽器的瘦客戶(hù)機(jī)接口(例如基于網(wǎng)絡(luò)的電子郵件)從各種客戶(hù)機(jī)設(shè)備訪(fǎng)問(wèn)應(yīng)用。除了有限的特定于用戶(hù)的應(yīng)用配置設(shè)置外,消費(fèi)者既不管理也不控制包括網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)、存儲(chǔ)、乃至單個(gè)應(yīng)用能力等的底層云基礎(chǔ)架構(gòu)。
平臺(tái)即服務(wù)(PaaS):向消費(fèi)者提供的能力是在云基礎(chǔ)架構(gòu)上部署消費(fèi)者創(chuàng)建或獲得的應(yīng)用,這些應(yīng)用利用提供者支持的程序設(shè)計(jì)語(yǔ)言和工具創(chuàng)建。消費(fèi)者既不管理也不控制包括網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)或存儲(chǔ)的底層云基礎(chǔ)架構(gòu),但對(duì)其部署的應(yīng)用具有控制權(quán),對(duì)應(yīng)用托管環(huán)境配置可能也具有控制權(quán)。
基礎(chǔ)架構(gòu)即服務(wù)(IaaS):向消費(fèi)者提供的能力是消費(fèi)者能夠在其中部署并運(yùn)行包括操作系統(tǒng)和應(yīng)用的任意軟件的處理、存儲(chǔ)、網(wǎng)絡(luò)和其他基礎(chǔ)計(jì)算資源。消費(fèi)者既不管理也不控制底層的云基礎(chǔ)架構(gòu),但是對(duì)操作系統(tǒng)、存儲(chǔ)和其部署的應(yīng)用具有控制權(quán),對(duì)選擇的網(wǎng)絡(luò)組件(例如主機(jī)防火墻)可能具有有限的控制權(quán)。
部署模型如下:
私有云:云基礎(chǔ)架構(gòu)單獨(dú)為某個(gè)組織運(yùn)行。云基礎(chǔ)架構(gòu)可以由該組織或第三方管理并且可以存在于該組織內(nèi)部或外部。
共同體云:云基礎(chǔ)架構(gòu)被若干組織共享并支持有共同利害關(guān)系(例如任務(wù)使命、安全要求、政策和合規(guī)考慮)的特定共同體。共同體云可以由共同體內(nèi)的多個(gè)組織或第三方管理并且可以存在于該共同體內(nèi)部或外部。
公共云:云基礎(chǔ)架構(gòu)向公眾或大型產(chǎn)業(yè)群提供并由出售云服務(wù)的組織擁有。
混合云:云基礎(chǔ)架構(gòu)由兩個(gè)或更多部署模型的云(私有云、共同體云或公共云)組成,這些云依然是獨(dú)特的實(shí)體,但是通過(guò)使數(shù)據(jù)和應(yīng)用能夠移植的標(biāo)準(zhǔn)化技術(shù)或私有技術(shù)(例如用于云之間的負(fù)載平衡的云突發(fā)流量分擔(dān)技術(shù))綁定在一起。
云計(jì)算環(huán)境是面向服務(wù)的,特點(diǎn)集中在無(wú)狀態(tài)性、低耦合性、模塊性和語(yǔ)意的互操作性。云計(jì)算的核心是包含互連節(jié)點(diǎn)網(wǎng)絡(luò)的基礎(chǔ)架構(gòu)。
現(xiàn)在參考圖19,其中顯示了云計(jì)算節(jié)點(diǎn)的一個(gè)例子。云計(jì)算節(jié)點(diǎn)6010僅僅是適合的云計(jì)算節(jié)點(diǎn)的一個(gè)示例,不應(yīng)對(duì)本發(fā)明優(yōu)選實(shí)施例的功能和使用范圍帶來(lái)任何限制??傊?,云計(jì)算節(jié)點(diǎn)6010能夠被用來(lái)實(shí)現(xiàn)和/或執(zhí)行以上所述的任何功能。
云計(jì)算節(jié)點(diǎn)6010具有計(jì)算機(jī)系統(tǒng)/服務(wù)器6012,其可與眾多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置一起操作。眾所周知,適于與計(jì)算機(jī)系統(tǒng)/服務(wù)器6012一起操作的計(jì)算系統(tǒng)、環(huán)境和/或配置的例子包括但不限于:個(gè)人計(jì)算機(jī)系統(tǒng)、服務(wù)器計(jì)算機(jī)系統(tǒng)、瘦客戶(hù)機(jī)、厚客戶(hù)機(jī)、手持或膝上設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)個(gè)人電腦、小型計(jì)算機(jī)系統(tǒng)﹑大型計(jì)算機(jī)系統(tǒng)和包括上述系統(tǒng)或設(shè)備中的任一者的分布式云計(jì)算技術(shù)環(huán)境,等等。
計(jì)算機(jī)系統(tǒng)/服務(wù)器6012可以在由計(jì)算機(jī)系統(tǒng)執(zhí)行的計(jì)算機(jī)系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語(yǔ)境下描述。通常,程序模塊可以包括執(zhí)行特定的任務(wù)或者實(shí)現(xiàn)特定的抽象數(shù)據(jù)類(lèi)型的例程、程序、目標(biāo)程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等。計(jì)算機(jī)系統(tǒng)/服務(wù)器6012可以在通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)的分布式云計(jì)算環(huán)境中實(shí)施。在分布式云計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備的本地或遠(yuǎn)程計(jì)算系統(tǒng)存儲(chǔ)介質(zhì)上。
如圖19所示,云計(jì)算節(jié)點(diǎn)6010中的計(jì)算機(jī)系統(tǒng)/服務(wù)器6012以通用計(jì)算設(shè)備的形式表現(xiàn)。計(jì)算機(jī)系統(tǒng)/服務(wù)器6012的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元6016,系統(tǒng)存儲(chǔ)器6028,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器6028和處理單元6016)的總線(xiàn)6018。
總線(xiàn)6018表示幾類(lèi)總線(xiàn)結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線(xiàn)或者存儲(chǔ)器控制器,外圍總線(xiàn),圖形加速端口,處理器或者使用多種總線(xiàn)結(jié)構(gòu)中的任意總線(xiàn)結(jié)構(gòu)的局域總線(xiàn)。舉例來(lái)說(shuō),這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線(xiàn),微通道體系結(jié)構(gòu)(MAC)總線(xiàn),增強(qiáng)型ISA總線(xiàn)、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線(xiàn)以及外圍組件互連(PCI)總線(xiàn)。
計(jì)算機(jī)系統(tǒng)/服務(wù)器6012典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器6012訪(fǎng)問(wèn)的任意可獲得的介質(zhì),包括易失性和非易失性介質(zhì),可移動(dòng)的和不可移動(dòng)的介質(zhì)。
系統(tǒng)存儲(chǔ)器6028可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(RAM)6030和/或高速緩存存儲(chǔ)器6032。計(jì)算機(jī)系統(tǒng)/服務(wù)器6012可以進(jìn)一步包括其它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)6034可以用于讀寫(xiě)不可移動(dòng)的、非易失性磁介質(zhì)(圖中未顯示,通常稱(chēng)為“硬盤(pán)驅(qū)動(dòng)器”)。盡管圖中未示出,可以提供用于對(duì)可移動(dòng)非易失性磁盤(pán)(例如“軟盤(pán)”)讀寫(xiě)的磁盤(pán)驅(qū)動(dòng)器,以及對(duì)可移動(dòng)非易失性光盤(pán)(例如CD-ROM,DVD-ROM或者其它光介質(zhì))讀寫(xiě)的光盤(pán)驅(qū)動(dòng)器。在這些情況下,每個(gè)驅(qū)動(dòng)器可以通過(guò)一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線(xiàn)6018相連。如以下將進(jìn)一步示出和描述的,存儲(chǔ)器6028可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明的實(shí)施例的功能。
作為實(shí)例而非限制,具有一組(至少一個(gè))程序模塊6042的程序/實(shí)用工具6040,可以存儲(chǔ)在存儲(chǔ)器6028中,這樣的程序模塊6042包括但不限于操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊6042通常執(zhí)行在此描述的本發(fā)明的實(shí)施例中的功能和/或方法。
計(jì)算機(jī)系統(tǒng)/服務(wù)器6012也可以與一個(gè)或多個(gè)外部設(shè)備6014(例如鍵盤(pán)、指向設(shè)備、顯示器6024等)通信,還可與一個(gè)或者多個(gè)使得用戶(hù)能與該計(jì)算機(jī)系統(tǒng)/服務(wù)器6012交互的設(shè)備通信,和/或與使得該計(jì)算機(jī)系統(tǒng)/服務(wù)器6012能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過(guò)輸入/輸出(I/O)接口6022進(jìn)行。并且,計(jì)算機(jī)系統(tǒng)/服務(wù)器6012還可以通過(guò)網(wǎng)絡(luò)適配器6020與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器6020通過(guò)總線(xiàn)6018與計(jì)算機(jī)系統(tǒng)/服務(wù)器6012的其它組件通信。應(yīng)當(dāng)明白,盡管圖中未示出,其它硬件和/或軟件組件可以與計(jì)算機(jī)系統(tǒng)/服務(wù)器6012一起操作,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤(pán)驅(qū)動(dòng)陣列、RAID系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)等。
現(xiàn)在參考圖20,其中顯示了示例性的云計(jì)算環(huán)境6050。如圖所示,云計(jì)算環(huán)境6050包括云計(jì)算消費(fèi)者使用的本地計(jì)算設(shè)備可以與其相通信的一個(gè)或者多個(gè)云計(jì)算節(jié)點(diǎn)6010,本地計(jì)算設(shè)備例如可以是個(gè)人數(shù)字助理(PDA)或移動(dòng)電話(huà)6054A,臺(tái)式電腦6054B、筆記本電腦6054C和/或汽車(chē)計(jì)算機(jī)系統(tǒng)6054N。節(jié)點(diǎn)6010可以相互通信??梢栽诎ǖ幌抻谌缟纤龅乃接性啤⒐餐w云、公共云或混合云或者它們的組合的一個(gè)或者多個(gè)網(wǎng)絡(luò)中將云計(jì)算節(jié)點(diǎn)6010進(jìn)行物理或虛擬分組(圖中未顯示)。這樣,云的消費(fèi)者無(wú)需在本地計(jì)算設(shè)備上維護(hù)資源就能請(qǐng)求云計(jì)算環(huán)境6050提供的基礎(chǔ)架構(gòu)即服務(wù)(IaaS)、平臺(tái)即服務(wù)(PaaS)和/或軟件即服務(wù)(SaaS)。應(yīng)當(dāng)理解,圖20顯示的各類(lèi)計(jì)算設(shè)備6054A-N僅僅是示意性的,云計(jì)算節(jié)點(diǎn)6010以及云計(jì)算環(huán)境6050可以與任意類(lèi)型網(wǎng)絡(luò)上和/或網(wǎng)絡(luò)可尋址連接的任意類(lèi)型的計(jì)算設(shè)備(例如使用網(wǎng)絡(luò)瀏覽器)通信。
現(xiàn)在參考圖21,其中顯示了云計(jì)算環(huán)境6050(圖20)提供的一組功能抽象層。首先應(yīng)當(dāng)理解,圖21所示的組件、層以及功能都僅僅是示意性的,本發(fā)明的優(yōu)選實(shí)施例不限于此。如圖21所示,提供下列層和對(duì)應(yīng)功能:
硬件和軟件層6060包括硬件和軟件組件。硬件組件的例子包括:主機(jī),例如系統(tǒng);基于RISC(精簡(jiǎn)指令集計(jì)算機(jī))體系結(jié)構(gòu)的服務(wù)器,例如IBM系統(tǒng);IBM系統(tǒng);IBM系統(tǒng);存儲(chǔ)設(shè)備;網(wǎng)絡(luò)和網(wǎng)絡(luò)組件。軟件組件的例子包括:網(wǎng)絡(luò)應(yīng)用服務(wù)器軟件,例如IBM應(yīng)用服務(wù)器軟件;數(shù)據(jù)庫(kù)軟件,例如IBM數(shù)據(jù)庫(kù)軟件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是國(guó)際商業(yè)機(jī)器公司在全世界各地的注冊(cè)商標(biāo))。
虛擬層6062提供一個(gè)抽象層,該層可以提供下列虛擬實(shí)體的例子:虛擬服務(wù)器、虛擬存儲(chǔ)、虛擬網(wǎng)絡(luò)(包括虛擬私有網(wǎng)絡(luò))、虛擬應(yīng)用和操作系統(tǒng),以及虛擬客戶(hù)端。
在一個(gè)實(shí)例中,管理層6064可以提供下述功能:資源供應(yīng)功能:提供用于在云計(jì)算環(huán)境中執(zhí)行任務(wù)的計(jì)算資源和其它資源的動(dòng)態(tài)獲?。挥?jì)量和定價(jià)功能:在云計(jì)算環(huán)境內(nèi)對(duì)資源的使用進(jìn)行成本跟蹤,并為此提供帳單和發(fā)票。在一個(gè)例子中,該資源可以包括應(yīng)用軟件許可。安全功能:為云的消費(fèi)者和任務(wù)提供身份認(rèn)證,為數(shù)據(jù)和其它資源提供保護(hù)。用戶(hù)門(mén)戶(hù)功能:為消費(fèi)者和系統(tǒng)管理員提供對(duì)云計(jì)算環(huán)境的訪(fǎng)問(wèn)。服務(wù)水平管理功能:提供云計(jì)算資源的分配和管理,以滿(mǎn)足必需的服務(wù)水平。服務(wù)水平協(xié)議(SLA)計(jì)劃和履行功能:為根據(jù)SLA預(yù)測(cè)的對(duì)云計(jì)算資源未來(lái)需求提供預(yù)先安排和供應(yīng)。
工作負(fù)載層6066提供云計(jì)算環(huán)境可能實(shí)現(xiàn)的功能的示例。在該層中,可提供的工作負(fù)載或功能的示例包括:地圖繪制與導(dǎo)航;軟件開(kāi)發(fā)及生命周期管理;虛擬教室的教學(xué)提供;數(shù)據(jù)分析處理;以及事務(wù)處理。
本文中所用的術(shù)語(yǔ),僅僅是為了描述特定的優(yōu)選實(shí)施例,而不意圖限定本發(fā)明。本文中所用的單數(shù)形式的“一”和“該”,旨在也包括復(fù)數(shù)形式,除非上下文中明確地另行指出。還要知道,“包含”和/或“包括”在本說(shuō)明書(shū)中使用時(shí),說(shuō)明存在所指出的特征、整體、步驟、操作、單元和/或組件,但是并不排除存在或增加一個(gè)或多個(gè)其它特征、整體、步驟、操作、單元和/或組件,以及/或者它們的組合。
以下的權(quán)利要求中的對(duì)應(yīng)結(jié)構(gòu)、材料、操作以及所有功能性限定的裝置(means)或步驟的等同替換,旨在包括任何用于與在權(quán)利要求中具體指出的其它單元相組合地執(zhí)行該功能的結(jié)構(gòu)、材料或操作。所給出的對(duì)一個(gè)或多個(gè)優(yōu)選實(shí)施例的描述其目的在于示意和描述,并非是窮盡性的,也并非是要將本發(fā)明限定到所表述的形式。對(duì)于所屬技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),顯然可以作出許多修改和變型。對(duì)實(shí)施例的選擇和描述,是為了最好地解釋本發(fā)明的原理和實(shí)際應(yīng)用,使所屬技術(shù)領(lǐng)域的普通技術(shù)人員能夠明了,本發(fā)明可以有適合所要的特定用途的具有各種改變的各種優(yōu)選實(shí)施例。