亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于處理器功能查詢的功能虛擬化設(shè)施的制作方法

文檔序號:6352178閱讀:137來源:國知局
專利名稱:用于處理器功能查詢的功能虛擬化設(shè)施的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)系統(tǒng),更具體地,涉及計(jì)算機(jī)系統(tǒng)處理器指令功能。
背景技術(shù)
商標(biāo)IBM ,是位于美國紐約州阿蒙克的國際商業(yè)機(jī)器公司的注冊商標(biāo),S/390、z900、z990和ZlO及其他產(chǎn)品名稱是國際商業(yè)機(jī)器公司或其他公司的注冊商標(biāo)或產(chǎn)品名稱。
通過許多卓越的工程師的工作,IBM從20世紀(jì)60年代已知為IBM 系統(tǒng)360的機(jī)器開始至今已創(chuàng)建了一種特殊架構(gòu),該特殊架構(gòu)由于其計(jì)算系統(tǒng)的本質(zhì),已知為“大型機(jī)”,其操作原理通過描述可在由IBM發(fā)明人發(fā)明的指令的“大型機(jī)”實(shí)現(xiàn)上執(zhí)行的指令而闡述了機(jī)器的架構(gòu),這些指令由于其對改善由“大型機(jī)”代表的計(jì)算機(jī)器的狀態(tài)有顯著的貢獻(xiàn),通過包括在過去幾年所闡述的IBM的Principles of Operation (操作原理),被接受是顯著貢獻(xiàn)。2009 年 2 月發(fā)表的第八版 IBM 的z/Architecture Principles of Operation作為SA22-7832-07成為標(biāo)準(zhǔn)發(fā)表參考,并包含在IBM的ζ10 大型機(jī)服務(wù)器中。參考圖1A,示出了現(xiàn)有技術(shù)的主機(jī)計(jì)算機(jī)系統(tǒng)50的代表性組件。也可在計(jì)算機(jī)系統(tǒng)中使用在本領(lǐng)域已知的組件的其他安排。代表性主機(jī)計(jì)算機(jī)50包括與主存儲器(計(jì)算機(jī)存儲器2)通信的一個或多個CPU 1,以及到存儲設(shè)備11和網(wǎng)絡(luò)10的1/0接口以與其他計(jì)算機(jī)或SAN等通信。CPUl遵循具有架構(gòu)指令集和架構(gòu)功能的架構(gòu)。CPU I可具有動態(tài)地址轉(zhuǎn)換(DAT) 3,以用于將程序地址(虛擬地址)轉(zhuǎn)換為存儲器的真實(shí)地址。DAT典型地包括轉(zhuǎn)換后備緩沖器(TLB) 7,其用于緩存轉(zhuǎn)換,從而對計(jì)算機(jī)存儲器2的塊的后來的存取不需要地址轉(zhuǎn)換的延遲。典型地,在計(jì)算機(jī)存儲器2和處理器I之間使用高速緩存9。高速緩存9可以分層,具有可用于多于一個CPU的大高速緩存,以及在大高速緩存和每個CPU之間是更小更快(較低級)的高速緩存。在某些實(shí)現(xiàn)中,較低級高速緩存被劃分為用于指令獲取和數(shù)據(jù)訪問的單獨(dú)的低級高速緩存。在一實(shí)施例中,指令獲取單元4通過高速緩存9從存儲器2獲取指令。該指令在指令解碼單元6中被解碼并(在某些實(shí)施例中與其他指令一起)被分派到指令執(zhí)行單元8。典型地,使用幾個指令執(zhí)行單元8,例如,算術(shù)執(zhí)行單元、浮點(diǎn)執(zhí)行單元和分支指令執(zhí)行單元。指令由執(zhí)行單元來執(zhí)行,在需要時從指令指定寄存器或存儲器訪問操作數(shù)。如果要從存儲器2訪問(載入或存儲)操作數(shù),載入存儲單元5典型地在被執(zhí)行的指令的控制下處理該訪問。指令可在硬件電路或內(nèi)部微代碼(固件)中或由兩者的組合來執(zhí)行。在圖IB中,提供了現(xiàn)有技術(shù)的仿真主機(jī)計(jì)算機(jī)系統(tǒng)21的例子,其仿真主機(jī)架構(gòu)的主機(jī)計(jì)算機(jī)系統(tǒng)50。在仿真主機(jī)計(jì)算機(jī)系統(tǒng)21中,主機(jī)處理器(CPU)I是仿真主機(jī)處理器(或虛擬主機(jī)處理器),并包含仿真處理器27,該仿真處理器具有與主機(jī)計(jì)算機(jī)50的處理器I不同的本機(jī)指令集架構(gòu)。仿真主機(jī)計(jì)算機(jī)系統(tǒng)21具有可被仿真處理器27訪問的存儲器22。在示例性實(shí)施例中,存儲器27被劃分為主機(jī)計(jì)算機(jī)存儲器2部分和仿真例程23部分。主機(jī)計(jì)算機(jī)存儲器2可用于根據(jù)主機(jī)計(jì)算機(jī)架構(gòu)的仿真主機(jī)計(jì)算機(jī)21的程序。仿真處理器27執(zhí)行不同于被仿真處理器I的架構(gòu)的架構(gòu)指令集的本機(jī)指令,所述本機(jī)指令是從仿真例程存儲器23獲取的,且可以通過使用從序列和訪問/解碼例程獲取的一個或多個指令從主機(jī)計(jì)算機(jī)存儲器2中的程序來訪問用于執(zhí)行的主機(jī)指令,該序列和訪問/解碼例程可以對訪問的主機(jī)指令進(jìn)行解碼,以確定用于仿真所訪問的主機(jī)指令的功能的本機(jī)指令執(zhí)行例程。為主機(jī)計(jì)算機(jī)系統(tǒng)50架構(gòu)定義的其他工具(facility)可由架構(gòu)工具例程來仿真,例如包括通用目的寄存器、控制寄存器、動態(tài)地址轉(zhuǎn)換和I/O子系統(tǒng)支持以及處理器高速緩存等工具。仿真例程還可利用在仿真處理器27中可用的功能(例如通用寄存器和虛擬地址的動態(tài)轉(zhuǎn)換),以改善仿真例程的性能。還可以提供特殊硬件和卸載引擎,以幫助處理器27來仿真主機(jī)計(jì)算機(jī)50的功能。在大型機(jī)中,架構(gòu)機(jī)器指令被程序員(如今通常是的“C”程序員)通過編譯應(yīng)用程序的方式而使用。這些存儲在存儲介質(zhì)中的指令可在z/Architecture IBM服務(wù)器中被本機(jī)執(zhí)行,或者在執(zhí)行其他架構(gòu)的機(jī)器中執(zhí)行。它們可在現(xiàn)有的和將來的IBM大型機(jī)服務(wù)器和IBM的其他機(jī)器(例如pSeries ,服務(wù)器和xSeries ,服務(wù)器)仿真。它們可在使用由IBM 、Intel 、amd 、太陽微系統(tǒng)公司和其他公司制造的硬件的各種各樣的機(jī)器上運(yùn)行 Linux的機(jī)器上執(zhí)行。除了在z/Arehitecture ·下執(zhí)行該硬件,Linux也可被用于使用在http: // www. turbohercules. com> http: // www. hercules-390· org 和 http: // funsoft.com中所描述的仿真的機(jī)器。在仿真模式中,仿真軟件由本機(jī)處理器執(zhí)行以仿真被仿真處理器的架構(gòu)。本機(jī)處理器27典型地執(zhí)行仿真軟件23,該仿真軟件包括固件或本機(jī)操作系統(tǒng)以執(zhí)行被仿真處理器的仿真。仿真軟件23負(fù)責(zé)獲取仿真和執(zhí)行被仿真處理器架構(gòu)的指令。仿真軟件23維持仿真程序計(jì)數(shù)器以跟蹤指令邊界。仿真軟件23可一次獲得一個或多個被仿真機(jī)器指令并將一個或多個被仿真機(jī)器指令轉(zhuǎn)換為對應(yīng)的本機(jī)機(jī)器指令組,以由本機(jī)處理器27執(zhí)行。這些轉(zhuǎn)換的指令可被高速緩存,這樣可完成更快的轉(zhuǎn)換。盡管如此,仿真軟件必須維持被仿真處理器架構(gòu)的架構(gòu)規(guī)則,以保證為被仿真處理器而編寫的操作系統(tǒng)和應(yīng)用程序正確操作。而且,仿真軟件必須提供由被仿真處理器I架構(gòu)標(biāo)識的資源,包括但不限于控制寄存器、通用寄存器、浮點(diǎn)寄存器、包括例如段表和頁表的動態(tài)地址轉(zhuǎn)換功能、中斷機(jī)制、上下文切換機(jī)制、日中時間(TOD)時鐘和到I/O子系統(tǒng)的架構(gòu)接口,從而被設(shè)計(jì)為在被仿真處理器上運(yùn)行的操作系統(tǒng)或應(yīng)用程序,可被運(yùn)行在具有仿真軟件的本機(jī)處理器上??山獯a被仿真的特定指令,以及調(diào)用子例程來執(zhí)行單個指令的功能。仿真被仿真處理器I的功能的仿真軟件功能23是在例如“C”子例程或驅(qū)動器中、或本領(lǐng)域技術(shù)人員在理解優(yōu)選實(shí)施例的描述后所知道的為特定硬件提供驅(qū)動器的一些其他方法中實(shí)現(xiàn)的。各種軟件和硬件仿真專利包括但不限于US 5551013 Beausoleil等人的“Multiprocessorfor hardware emulation”(用于硬件仿真的多處理器),以及US6009261 Scalzi等人的“Preprocessing of stored target routines for emulating incompatibleinstructions on a target processor”(用于仿真目標(biāo)處理器上的不兼容指令的存儲目標(biāo)例程的預(yù)處理);以及 US5574873 :Davidian 等人的 “Decoding guest instruction todirectly access emulation routines that emulate the guest instructions,,懈石馬客戶指令以直接訪問仿真客戶指令的仿真例程);US6308255 Gorishek等人的“Symmetricalmultiprocessing bus and chipset used for coprocessor support allowingnon-native code to run in a system”(用于允許非本機(jī)代碼在系統(tǒng)中運(yùn)行的協(xié)處理器支持的對稱多處理總線和芯片組);以及US6463582 Lethin等人的“Dynamic optimizingobject code translator for architecture emulation and dynamic optimizing objectcode translation method”(用于架構(gòu)仿真的動態(tài)優(yōu)化目標(biāo)代碼轉(zhuǎn)換器和動態(tài)優(yōu)化目標(biāo)代碼轉(zhuǎn)換方法);以及US5790825 :Eric Traut 的“Method for emulating guest instructionson a host computer through dynamic recompilation of host instructions,,(通過主機(jī)指令的動態(tài)重新編譯仿真主機(jī)計(jì)算機(jī)上的客戶指令的方法)。這些參考文獻(xiàn)示出了多種已知的方式來實(shí)現(xiàn)針對可為本領(lǐng)域技術(shù)人員獲得的目標(biāo)機(jī)器來仿真被架構(gòu)設(shè)計(jì)為用于不同機(jī)器的指令格式,以及由上述參考文獻(xiàn)使用的商業(yè)軟件技術(shù)。在美國公開號US2009/0222814A1,2009 年 9 月 2 日公開,Astrand 的 “SelectiveExposure to USB Device Functionality for a Virtual Machine”(用于虛擬機(jī)的 USB 設(shè)備功能的選擇性暴露)中,虛擬機(jī)(VM)應(yīng)用可運(yùn)行客戶操作系統(tǒng)(OS)并允許客戶OS連接 到與計(jì)算機(jī)連接的USB設(shè)備。VM應(yīng)用可過濾與USB設(shè)備有關(guān)的功能,這樣僅USB設(shè)備的一些功能被暴露給客戶OS。

發(fā)明內(nèi)容
在一個實(shí)施例中,多功能指令的所選擇的已安裝功能被隱藏,該多功能指令被架構(gòu)設(shè)計(jì)為執(zhí)行多個已安裝功能中的功能,所述隱藏包括設(shè)置值,該值控制已安裝功能對主機(jī)計(jì)算機(jī)的多功能指令的可用性,該主機(jī)計(jì)算機(jī)包含一個或多個處理器,一處理器具有多功能指令的第一多個所述已安裝功能,該第一多個已安裝功能包含一個或多個第一已安裝功能以及一個或多個第二已安裝功能,以及執(zhí)行多功能指令,該多功能指令包含操作碼字段,該執(zhí)行包括響應(yīng)于該多功能指令指定了查詢功能,執(zhí)行該查詢功能,以確定可用于該多功能指令的已安裝功能;該查詢功能執(zhí)行使用所述值來確定所述一個或多個第二已安裝功能;以及該查詢功能執(zhí)行存儲結(jié)果值,該結(jié)果值指示所述一個或多個第一已安裝功能中的一個或多個對該多功能指令不可用。在一個實(shí)施例中,由主機(jī)計(jì)算機(jī)的管理程序?yàn)橹鳈C(jī)計(jì)算機(jī)的虛擬機(jī)來設(shè)置所述值,該虛擬機(jī)包含一個或多個邏輯處理器,該一個或多個邏輯處理器被分配給一個或多個物理處理器,一物理處理器具有多功能指令的所述一個或多個第二已安裝功能,其中,由所述一個或多個物理處理器中的物理處理器上的一個或多個邏輯處理器中的邏輯處理器在該虛擬機(jī)中執(zhí)行所述多功能指令。在一個實(shí)施例中,基于多功能指令的操作碼來確定所述一個或多個第二已安裝功倉泛。在一個實(shí)施例中,由管理程序來設(shè)置另一個值,該值控制已安裝功能對在主機(jī)計(jì)算機(jī)系統(tǒng)的另一虛擬機(jī)上執(zhí)行的多功能指令的可用性;以及由一個或多個另一邏輯處理器中的另一邏輯處理器在該另一虛擬機(jī)中執(zhí)行另一多功能指令;響應(yīng)于該另一多功能指令指定另一查詢功能,執(zhí)行該另一查詢功能,以確定對該另一多功能指令可用的已安裝功能;該另一查詢功能執(zhí)行使用該另一個值來確定一個或多個第三已安裝功能;且該另一查詢功能執(zhí)行存儲另一結(jié)果值,該結(jié)果值指示該一個或多個第三已安裝功能中的一個或多個對該另一多功能指令不可用。
在一個實(shí)施例中,被存儲的結(jié)果值是位有效的(bit significant)值,其中每個位位置對應(yīng)于一功能,且位為I指示相應(yīng)功能已安裝。在一個實(shí)施例中,所述查詢功能由多功能指令指定的功能代碼或多功能指令指定的測試位來指定。在一個實(shí)施例中,所述多功能指令是z架構(gòu)指令,該指令由密碼指令、執(zhí)行定時工具功能(PTFF)指令、執(zhí)行浮點(diǎn)操作指令或執(zhí)行被鎖定操作指令中的任一個構(gòu)成,其中,該密碼指令包括密碼消息指令、計(jì)算中間消息摘要指令、計(jì)算最后消息摘要指令、計(jì)算最后消息摘要指令、計(jì)算消息驗(yàn)證代碼指令中的任一個,其中該多功能指令指定查詢功能響應(yīng)于所述多功能指令是密碼指令或PTFF指令,獲取要被執(zhí)行的多功能指令指定的功能代碼,該獲取的功能代碼由查詢功能構(gòu)成,其中,被存儲的結(jié)果值是多個位,該多個位中的每個位指示是否支持相應(yīng)的功能代碼;以及響應(yīng)于所述多功能指令是密碼指令或PTFF指令,獲取要被執(zhí)行的多功能指令指定的功能代碼,該獲取的功能代碼不是查詢功能,根據(jù)該獲取的功能代碼來執(zhí)行密碼功能或PTFF功能;以及響應(yīng)于所述多功能指令是執(zhí)行被鎖定操作指令或 執(zhí)行浮點(diǎn)操作指令且所述多功能指定的測試位為1,確定多功能指令指定的功能代碼是否被安裝,其中,被存儲的結(jié)果值是條件代碼值;以及響應(yīng)于所述多功能指令是執(zhí)行被鎖定操作指令或執(zhí)行浮點(diǎn)操作指令且所述多功能指令指定的測試位為0,根據(jù)獲取的功能代碼來執(zhí)行浮點(diǎn)功能或鎖定操作。上述以及其他目標(biāo)、特征和優(yōu)勢將在下面的書面描述中變得更為明顯。其他實(shí)施例和方面在這里被詳細(xì)描述,并被認(rèn)為是所要求保護(hù)的本發(fā)明的一部分。為了更好地理解優(yōu)勢和特征,參考描述以及附圖。


僅通過實(shí)例,現(xiàn)在將參考附圖描述本發(fā)明的實(shí)施例,在附圖中圖IA是示出示例性主機(jī)計(jì)算機(jī)系統(tǒng)的圖;圖IB是示出示例性仿真主機(jī)計(jì)算機(jī)系統(tǒng)的圖;圖IC是示出示例性計(jì)算機(jī)系統(tǒng)的圖;圖2是示出示例性計(jì)算機(jī)網(wǎng)絡(luò)的圖;圖3是示出計(jì)算機(jī)系統(tǒng)的示例性元件的圖;圖4A是示出示例性執(zhí)行單元的圖;圖4B是示出示例性分支單元的圖;圖4C是示出示例性載入/存儲單元的圖;圖5是示出示例性邏輯分區(qū)的圖;圖6是示出示例性邏輯分區(qū)元件的圖;圖7是示出示例性邏輯分區(qū)元件的圖;圖8是示出示例性操作碼表的流程;圖9是示出示例性阻止(blocking)技術(shù)的流程;圖10是示出示例性阻止技術(shù)的流程;圖11是示出示例性阻止技術(shù)的流程;以及圖12-17示出了功能查詢阻止技術(shù)的流程。
具體實(shí)施例方式實(shí)施例可通過軟件(有時候被稱為許可內(nèi)部代碼、固件、微代碼、毫代碼(Milli-code)、微微代碼(Pico-code)等,其中的任一個將與此處的教導(dǎo)一致)被實(shí)踐。參考圖1A,軟件程序代碼實(shí)施例典型地由系統(tǒng)50的也稱為CPU (中央處理單元)I的處理器從諸如CD-ROM驅(qū)動器、磁帶驅(qū)動器或硬盤驅(qū)動器的長期存儲介質(zhì)11訪問。軟件程序代碼可體現(xiàn)在與數(shù)據(jù)處理系統(tǒng)一起使用的各種已知介質(zhì)(諸如軟磁盤、硬盤驅(qū)動或CD-ROM)中的任何一個上。代碼可在這樣的介質(zhì)上被分發(fā),或可從一個計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)存儲器02或存儲設(shè)備通過網(wǎng)絡(luò)10被分發(fā)給其他計(jì)算機(jī)系統(tǒng)的用戶,以由這樣的其他系統(tǒng)的用戶使用。或者,所述程序代碼可體現(xiàn)在存儲器2中,并由處理器I使用處理器總線來訪問。這種軟件程序代碼包括操作系統(tǒng),其控制各種計(jì)算機(jī)組件和一個或多個應(yīng)用程序的功能和交互。程序代碼通??蓮母呙芏却鎯橘|(zhì)11調(diào)頁到高速存儲器2,在此它對于處理器I是可用的。用于在存儲器中、物理介質(zhì)上和/或體現(xiàn)軟件程序代碼或經(jīng)由網(wǎng)絡(luò)分發(fā)軟件代碼的技術(shù)和方法是熟知的,且不會在此被進(jìn)一步討論。當(dāng)程序代碼被創(chuàng)建并存儲在有形介質(zhì) (包括但不限于電子存儲模塊(RAM)、閃存、光盤(⑶)、DVD、磁帶等)上時,其經(jīng)常被稱為“計(jì)算機(jī)程序產(chǎn)品”。計(jì)算機(jī)程序產(chǎn)品介質(zhì)典型地可由優(yōu)選地位于計(jì)算機(jī)系統(tǒng)中的處理電路讀取以由處理電路執(zhí)行。圖IC示出了可在其中實(shí)現(xiàn)實(shí)施例的代表性工作站或服務(wù)器硬件系統(tǒng)。圖IC的系統(tǒng)100包括代表性計(jì)算機(jī)系統(tǒng)101,諸如個人計(jì)算機(jī)、工作站或服務(wù)器,包括可選的外圍設(shè)備。根據(jù)已知技術(shù),工作站101包括一個或多個處理器106以及被用于連接并使能處理器106和系統(tǒng)101的其他組件之間的通信的總線。總線將處理器106連接到存儲器105以及可包括例如硬盤驅(qū)動器(例如,包括磁介質(zhì)、⑶、DVD和閃存中的任何一個)或磁帶驅(qū)動器的長期存儲器107。系統(tǒng)101也可包括用戶接口適配器,其經(jīng)由總線將微處理器106連接到一個或多個接口設(shè)備,諸如鍵盤104、鼠標(biāo)103、打印機(jī)/掃描儀110和/或其他接口設(shè)備,其可以是任何用戶接口設(shè)備,諸如觸摸敏感屏、數(shù)字化輸入墊(digitized entry pad)等??偩€也可經(jīng)由顯示適配器將諸如IXD屏幕或監(jiān)視器的顯示設(shè)備102連接到微處理器106。系統(tǒng)101可通過能與網(wǎng)絡(luò)109通信108的網(wǎng)絡(luò)適配器與其他計(jì)算機(jī)或計(jì)算機(jī)網(wǎng)絡(luò)通信。示例性網(wǎng)絡(luò)適配器是通信通道、令牌環(huán)網(wǎng)、以太網(wǎng)或調(diào)制解調(diào)器。或者,工作站101可使用諸如⑶ro (蜂窩數(shù)字分組數(shù)據(jù))卡的無線接口來通信。工作站101可與局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)中的這樣的其他計(jì)算機(jī)關(guān)聯(lián),或工作站101可以是與另一個計(jì)算機(jī)的客戶機(jī)/服務(wù)器安排中的客戶機(jī)等。所有這些配置以及合適的通信硬件和軟件在本領(lǐng)域中是已知的。圖2示出了其中可實(shí)現(xiàn)實(shí)施例的數(shù)據(jù)處理網(wǎng)絡(luò)200。數(shù)據(jù)處理網(wǎng)絡(luò)200可包括多個單獨(dú)的網(wǎng)絡(luò),諸如無線網(wǎng)和有線網(wǎng),其每個可包括多個單獨(dú)的工作站101、201、202、203、204。此外,本領(lǐng)域技術(shù)人員將理解,可包括一個或多個LAN,其中LAN可包括多個耦合到主處理機(jī)的智能工作站。仍然參考圖2,網(wǎng)絡(luò)也可包括大型計(jì)算機(jī)或服務(wù)器,諸如網(wǎng)關(guān)計(jì)算機(jī)(客戶機(jī)服務(wù)器206)或應(yīng)用服務(wù)器(遠(yuǎn)程服務(wù)器208,其可訪問數(shù)據(jù)儲存庫,且也可直接從工作站205被訪問)。網(wǎng)關(guān)計(jì)算機(jī)206用作到每個網(wǎng)絡(luò)的進(jìn)入點(diǎn)207。當(dāng)將一個連網(wǎng)協(xié)議連接到另一個時,需要網(wǎng)關(guān)。網(wǎng)關(guān)206可通過通信鏈路優(yōu)選地耦合到另一個網(wǎng)絡(luò)(例如因特網(wǎng)207)。也可使用通信鏈路將網(wǎng)關(guān)206直接耦合到一個或多個工作站101、201、202、203、204??梢岳每蓮腎BM公司獲得的IBM eserverTMzSeries z9 Jt務(wù)器來實(shí)現(xiàn)網(wǎng)關(guān)計(jì)算機(jī)。軟件編程代碼典型地被系統(tǒng)101的處理器106從諸如⑶-ROM驅(qū)動器或硬盤驅(qū)動器的長期存儲介質(zhì)107訪問。軟件編程代碼可被體現(xiàn)在與數(shù)據(jù)處理系統(tǒng)一起使用的各種已知介質(zhì)(諸如軟盤、硬盤驅(qū)動器或⑶-ROM)中的任一個上。代碼可在這樣的介質(zhì)上被分發(fā),或從一個計(jì)算機(jī)系統(tǒng)的存儲器或存儲設(shè)備通過網(wǎng)絡(luò)被分發(fā)到其他計(jì)算機(jī)系統(tǒng)的用戶210、211,以供這樣的其他系統(tǒng)的用戶使用?;蛘?,編程代碼111可體現(xiàn)在存儲器105中,且由處理器106使用處理器總線訪問。這樣的編程代碼包括操作系統(tǒng),其控制各種計(jì)算機(jī)組件和一個或多個應(yīng)用程序112的功能和交互。程序代碼通常從高密度存儲介質(zhì)107調(diào)頁到高速存儲器105,在此它可用于由處理器106進(jìn)行處理。用于在存儲器中、在物理介質(zhì)上體現(xiàn)軟件編程代碼和/或經(jīng)由網(wǎng)絡(luò) 分發(fā)軟件代碼的技術(shù)和方法是公知的,且不會在此進(jìn)一步討論。程序代碼,當(dāng)其被創(chuàng)建且在有形介質(zhì)(包括但不限于電子存儲模塊(RAM)、閃存、光盤(⑶)、DVD、磁帶等)上存儲時,通常被稱為“計(jì)算機(jī)程序產(chǎn)品”。計(jì)算機(jī)程序產(chǎn)品介質(zhì)典型地可以被優(yōu)選地位于計(jì)算機(jī)系統(tǒng)中的處理電路讀取以由處理電路執(zhí)行。最容易被處理器使用的高速緩存(通常比處理器的其他高速緩存更快更小)是最低級(LI或級別I)高速緩存,且主存儲(主存儲器)是最高級高速緩存(如果有三個級別的話是L3)。最低級高速緩存經(jīng)常被分為保持將被執(zhí)行的機(jī)器指令的指令緩存(I-高速緩存),和保持?jǐn)?shù)據(jù)操作數(shù)的數(shù)據(jù)高速緩存(D-高速緩存)。參考圖3,為處理器106示出了示例性處理器實(shí)施例。典型地,使用一個或多個級別的高速緩存303來緩沖存儲器塊,以便改善處理器性能。高速緩存303是高速緩沖器,其保持很可能被使用的存儲器數(shù)據(jù)的高速緩存線。典型的高速緩存線是64、128或256字節(jié)的存儲器數(shù)據(jù)。通常使用單獨(dú)的高速緩存以用于緩存指令而不是緩存數(shù)據(jù)。高速緩存一致性(存儲器和高速緩存中的線的副本的同步)通常由本領(lǐng)域中熟知的各種“窺探”算法提供。處理器系統(tǒng)的主存儲器105通常被稱為高速緩存。在具有4個級別的高速緩存303的處理器系統(tǒng)中,主存儲器105有時候被稱為級別5 (L5)高速緩存,因?yàn)樗湫偷馗?,且僅保持可被計(jì)算機(jī)系統(tǒng)使用的非易失性存儲器(DASD、磁帶等)的一部分。主存儲器105可“高速緩存”由操作系統(tǒng)向主存儲器105調(diào)頁入或從其調(diào)頁出的數(shù)據(jù)頁。程序計(jì)數(shù)器(指令計(jì)數(shù)器)311保持跟蹤將被執(zhí)行的當(dāng)前指令的地址。z/Areh丨teeture 處理器中的程序計(jì)數(shù)器是64位的,且可被截短為31或24位以支持先前的尋址界限。程序計(jì)數(shù)器典型地體現(xiàn)在計(jì)算機(jī)的PSW (程序狀態(tài)字)中,這樣它可在上下文轉(zhuǎn)換中持續(xù)。因此,具有程序計(jì)數(shù)器值的進(jìn)行中的程序可被例如操作系統(tǒng)中斷(從程序環(huán)境到操作系統(tǒng)環(huán)境的上下文轉(zhuǎn)換)。當(dāng)程序不活動時,程序的PSW維持程序計(jì)數(shù)器值,且在操作系統(tǒng)執(zhí)行時,操作系統(tǒng)的(PSW中的)程序計(jì)數(shù)器被使用。典型地,程序計(jì)數(shù)器以等于當(dāng)前指令的字節(jié)數(shù)的量遞增。RISC (精簡指令集計(jì)算)指令典型地是固定長度,而CISC (復(fù)雜指令集計(jì)算)指令典型地是可變長度。丨BM z/Areh丨tecture 的指令是具有長度為2、4或6字節(jié)的CISC指令。程序計(jì)數(shù)器311被例如上下文轉(zhuǎn)換操作或分支指令的分支采取操作修改。在上下文轉(zhuǎn)換操作中,當(dāng)前的程序計(jì)數(shù)器值與關(guān)于正被執(zhí)行的程序的其他狀態(tài)信息(諸如條件碼)一起被保存在程序狀態(tài)字(PSW)中,且新程序計(jì)數(shù)器值被載入并指向?qū)⒈粓?zhí)行的新程序模塊的指令。執(zhí)行分支采取操作,以通過將分支指令的結(jié)果加載到程序計(jì)數(shù)器311中而允許程序進(jìn)行決定或在程序內(nèi)循環(huán)。典型地,使用指令獲取單元305代表處理器106獲取指令。獲取單元可獲取“下一序列指令”、分支采取指令的目標(biāo)指令或上下文轉(zhuǎn)換后的程序的第一指令。現(xiàn)在的指令獲取單元通常使用預(yù)取技術(shù)基于被預(yù)取的指令將被使用的可能性來推測性地預(yù)取指令。例如,獲取單元可獲取16字節(jié)的指令,其包括下一順序指令以及進(jìn)一步的順序指令的額外字節(jié)。獲取的指令隨后被處理器106執(zhí)行。在一實(shí)施例中,獲取的指令被傳遞給獲取單元的分派單元306。分派單元解碼指令并將關(guān)于解碼的指令的信息轉(zhuǎn)送給合適的單元307、308、310。執(zhí)行單元307將典型地從指令獲取單元305接收關(guān)于解碼的算術(shù)指令的信息,并將根據(jù)指令的操作碼對操作數(shù)執(zhí)行算術(shù)操作。優(yōu)選地從存儲器105、架構(gòu)寄存器309或從正 被執(zhí)行的指令的立即字段(immediate field)向執(zhí)行單元307提供操作數(shù)。執(zhí)行的結(jié)果,當(dāng)被存儲時,被存儲在存儲器105、寄存器309或其他機(jī)器硬件306 (諸如控制寄存器、PSff寄存器等)中。參考圖5,示出了示例性虛擬機(jī)(VM)環(huán)境。管理程序(其自己可以是諸如來自IBM的zVM的操作系統(tǒng)(OS)),運(yùn)行在多處理器“硬件”上,該硬件包括多個物理處理器、物理主存儲器和用于與包括存儲器、網(wǎng)絡(luò)、顯示器等的I/O外圍設(shè)備通信的物理適配器。管理程序創(chuàng)建VM映像(例如VM1、VM2和VM3),這樣包括OS和應(yīng)用程序的軟件可在利用虛擬資源的虛擬機(jī)中運(yùn)行。在VM中運(yùn)行的軟件沒有意識到其在VM中運(yùn)行并使用虛擬資源操作,就好像它們是物理資源一樣。來自IBM的zVM操作系統(tǒng)可創(chuàng)建“客戶”映像,每個客戶映像實(shí)際上是虛擬機(jī)。而且,任何zVM客戶本身可運(yùn)行zVM OS,從而創(chuàng)建“第二級客戶”。因此,虛擬機(jī)(客戶映像)可被嵌套在虛擬機(jī)的分級結(jié)構(gòu)中,每個zVM對其客戶映像發(fā)揮管理程序的角色。另一方面,可“物理地分區(qū)”多處理器平臺,每個物理分區(qū)可以被分配有資源(處理器、存儲器、I/O)。每個物理分區(qū)是VM,因?yàn)檫\(yùn)行在分區(qū)中的軟件沒有意識到未被分配給該分區(qū)的機(jī)器資源。因此機(jī)器的資源被“虛擬化”。在另一個實(shí)施例中,主機(jī)可支持邏輯分區(qū),每個邏輯分區(qū)是一 VM。例如在來自VMware 的 VMware Infrastructure 3 的名為“Virtualization Overview,,(虛擬化概況)和“VMware Vmotion and CPU Compatibility”(VMware Vmotion和CPU兼容性)的白皮書中說明了虛擬化。而且,Khatri等人于2007年9月6日提交的美國專利申請公開號2009/0070760,“VIRTUAL MACHINE (VM)MIGRATIONBETWEEN PROCESSOR ARCHITECTURES”(處理器架構(gòu)之間的虛擬機(jī)(VM)遷移),討論了通過掩碼CUPID寄存器的選擇的位,來仿真特定特征集以使能類似的機(jī)器池之間的VM遷移。參考圖6,每個VM可具有不同的OS和不同的應(yīng)用。例如,OSl可以是來自IBM的z/OS,而0S2可以是來自IBM的zLiunx,或所有的OS可以是同樣的OS,諸如z/0S。管理程序基于物理特征、資源和能力創(chuàng)建了用于每個VM的邏輯特征、資源和能力。在一個示例性系統(tǒng)中,通過動態(tài)地址轉(zhuǎn)換將物理存儲器分區(qū)分配給每個VM,在VM之間物理處理器和1/0能力是時間共享的。參考圖7,每個邏輯處理器能通過由管理程序管理的邏輯特征掩碼來訪問物理特征寄存器。因此,即使當(dāng)實(shí)際的處理器處于不同的架構(gòu)等級時,運(yùn)行在邏輯處理器上的軟件可給出操作于共同的處理器架構(gòu)等級上的外觀。在一個例子中,物理特征寄存器可以是因特爾CPWD寄存器,其指示可被程序員獲得的因特爾處理器的架構(gòu)等級及特定特征。邏輯特征掩碼被編程為當(dāng)VM查詢對應(yīng)的邏輯處理器的CPWD時,向虛擬機(jī)(VM)中的軟件提供所有的物理處理器CPUID或其子集。來自因特爾㊣的“Intel If an mm⑩ Architecture SoftwareDeveloper’ sMannual (架構(gòu)軟件開發(fā)者手冊),第二卷,修訂版2. 2, 2006年I月”的x86處理器架構(gòu)描述了識別由處理器支持的特征的CPUID寄存器。CPUID寄存器是無特權(quán)的,且可使用間接mov (from)指令被訪問。寄存器CPWD號之外的所有寄存器被保留,且如果它們被訪問,引起保留寄存器/字段錯誤。不允許寫,且不存在用于這樣的操作的指令。廠商信息位于CPWD寄存器O和I中,并以ASCII指示用于處理器實(shí)現(xiàn)的廠商名稱。直到第16個字節(jié)的串的末端之后的所有字節(jié)是零。更早的ASICC字符被放置在更低號的寄存器和更低編號的字節(jié)位置。CPWD寄存器4提供了關(guān)于處理器特征的一般應(yīng)用級的信息。它包含一組標(biāo)志位,以用于指示給定特征是否在處理器模型中被支持。當(dāng)位是I時,特征被支持;當(dāng)O時,特征不被支持。一些新特征從未來的處理器模型被添加(或移除),新特征的出現(xiàn)(或移除)將由新特征位指示。CPWD寄存器4被邏輯地分為兩半,這兩半都包含一般特征和能力信息,但具有不同的使用模型和訪問特征;該信息反應(yīng)了任何使能或禁止的特征的狀態(tài)。通過移動間接寄存器指令,CPUID寄存器4的上半部分和下半部分都是可訪問的;根據(jù)實(shí)現(xiàn),用于該訪問的延時可以很長且該訪問方法不適于使用自選擇(self-selection)的低延時代碼版本化(code versioning)。此外,使用測試特征指令,CPUID寄存器4的上半部分也可被訪問;用于該訪問的延時與測試位指令的延遲相當(dāng),且該訪問方法使得使用自選擇的低延遲代碼版本化成為可能。z/Architecture Principles of Operation描述了存儲工具列表擴(kuò)展(STFLE)指令,該指令跟因特爾CPUID注冊器一樣,向軟件提供了基礎(chǔ)中央處理單元(CPU)或處理器的特征(或架構(gòu)級別)的知識。STFLE指令具有以下表I示出的格式?!TFLE D2(B2)[SI[。。56]8280" B2 D2
O18 2031表ISTFLE指令(表I)包括操作碼字段位(0-15),寄存器字段B2 (16_19)以及位移(直接)字段D2 (20-31)。STFLE指令由機(jī)器執(zhí)行,將提供關(guān)于工具的信息的位列表存儲在程序存儲器位置(memory location)中,該位置通過由指令的B2字段指定的寄存器的內(nèi)容添加到12位D2直接字段而確定,該存儲器位置在由第二操作數(shù)地址((B2) +D2)指定的雙字(8字節(jié),I個字是4字節(jié))處開始。z架構(gòu)中的程序存儲器位置的地址可經(jīng)受動態(tài)地址轉(zhuǎn)換(DAT)。保留位是當(dāng)前沒有被分配以代表工具的位。對于最左邊的雙字(其中工具位被分配),保留位被存儲為零。被分配給模型的最高編號的工具位所在的雙字右邊的雙字可被存儲或不存儲。對于未存儲的雙字,不識別訪問異常和PER事件。以雙字表示的第二操作數(shù)的大小比通用寄存器O的位56-63中指定的值大一。通用寄存器O的剩余位未被分配,且應(yīng)包含零;否則,將來程序可能操作不兼容。當(dāng)?shù)诙僮鲾?shù)的大小足夠大以包含分配給模型的所有工具位時,則完整的工具列表被存儲在第二操作數(shù)位置中,更新通用寄存器O的位56-63以包含比雙字的數(shù)量少一,所述雙字的數(shù)量是包含分配給模型的所有工具位所需要的,并設(shè)置條件代碼O。當(dāng)?shù)诙僮鲾?shù)的大小不足夠大以包含分配給模型的所有工具位時,則僅存儲由第二操作數(shù)大小指定的雙字的數(shù)量,更新通用寄存器O的位56-63以包含比雙字的數(shù)量少一,所述雙字的數(shù)量包含分配給模型的所有工具位所需要的,并設(shè)置條件代碼3。執(zhí)行該指令導(dǎo)致設(shè)置條件代碼值,在上下文切換期間與程序狀態(tài)字(PSW)—起保存條件代碼值。特殊條件 第二操作數(shù)必須被指定在雙字界限上;否則,識別規(guī)范異常。產(chǎn)生的條件代碼O完整的工具列表被存儲1-2-3不完整的工具列表被存儲程序異常 訪問(存儲,第二操作數(shù)) 操作(如果存儲工具列表擴(kuò)展工具沒有被安裝) 規(guī)范編程注意事項(xiàng)存儲工具列表擴(kuò)展的性能可明顯低于簡單地測試存儲器中的字節(jié)的性能。需要頻繁地測試工具的存在的程序,例如,雙路徑代碼(其中工具在一個路徑中使用但在另一個不使用),應(yīng)在初始化期間執(zhí)行存儲工具列表擴(kuò)展指令一次。此后,程序可通過利用諸如掩碼下測試(TEST UNDER MASK)指令檢查存儲的結(jié)果,來測試工具的存在。當(dāng)條件代碼O被設(shè)置時,通用寄存器O的位56-63被更新以指示存儲的雙字的數(shù)量。如果程序選擇忽略通用寄存器O中的結(jié)果,則它應(yīng)當(dāng)確保在執(zhí)行存儲工具列表擴(kuò)展之前,存儲器中的整個第二操作數(shù)被設(shè)為零。表2示出了現(xiàn)有技術(shù)的z/Architecture分配的STFLE位及其意義。如果位的意義是真,則不管當(dāng)前的架構(gòu)模式,該位被設(shè)為I。意義適用于當(dāng)前的架構(gòu)模式,除非說明它被適用于特定的結(jié)構(gòu)模式。未分配的位被保留以指示新工具;這些位在將來可被存儲為I?,F(xiàn)有技術(shù)的z/Architecture工具列表可被定義為如下表2中所示表 2位意義一當(dāng)位為I時O在z/Architecture的第7章和第10章的指令概述圖中被標(biāo)注為“N3”的指令已安裝。lz/Architecture架構(gòu)模式已安裝
2z/Architecture架構(gòu)模式是活動的。當(dāng)該位是零時,ESA/390架構(gòu)模式是活動的。3DAT-增強(qiáng)工具已安裝在z/Architecture架構(gòu)模式中。DAT增強(qiáng)工具包括無效DAT表項(xiàng)(IDTE)和比較并交換并清除(CSPG)指令。4當(dāng)無效一個或多個段表項(xiàng)時,通過選擇性地清除結(jié)合的區(qū)域和段表項(xiàng),無效DAT表項(xiàng)(IDTE)執(zhí)行無效和清除操作。IDTE還執(zhí)行按ASCE清除操作。除非位4是1,IDTE簡單地清除所有的TLB。如果位4是1,位3是I。5當(dāng)無效一個或多個區(qū)域表項(xiàng)時,通過選擇性地清楚結(jié)合的區(qū)域和段表項(xiàng),無效DAT表項(xiàng)(IDTE)執(zhí)行無效和清除操作。如果位5是1,位3和4是I。6ASN和LX重用工具已安裝在z/Architecture架構(gòu)模式中。
7存儲工具列表擴(kuò)展工具已安裝。8增強(qiáng)的DAT工具已安裝在z/Architecture架構(gòu)模式中。9感測運(yùn)行狀態(tài)設(shè)備已安裝在z/Architecture架構(gòu)模式中。10條件SSKE工具已安裝在z/Architecture架構(gòu)模式中。11配置拓?fù)涔ぞ咭寻惭b在z/Architecture架構(gòu)模式中。16擴(kuò)展的轉(zhuǎn)換工具2已安裝。17消息安全協(xié)助已安裝。18長位移工具已安裝在z/Architecture架構(gòu)模式中。19長位移工具具有高性能。如果位19是1,位18是I。20HFP乘和加/減工具已安裝。21擴(kuò)展的立即工具已安裝在z/Architecture架構(gòu)模式中。22擴(kuò)展的轉(zhuǎn)換工具3已安裝在z/Architecture架構(gòu)模式中。23HFP非標(biāo)準(zhǔn)化擴(kuò)展工具已安裝在z/Architecture架構(gòu)模式中。24ETF2增強(qiáng)工具已安裝。25存儲時鐘快速工具已安裝在z/Architecture架構(gòu)模式中。26解析增強(qiáng)工具已安裝在z/Architecture架構(gòu)模式中。27以可選規(guī)范移動工具已安裝在z/Architecture架構(gòu)模式中。28T0D時鐘操縱(steering)工具已安裝在z/Architecture架構(gòu)模式中。30EFT3增強(qiáng)工具已安裝在z/Architecture架構(gòu)模式中。31提取CPU時間工具已安裝在z/Architecture架構(gòu)模式中。32比較和交換和存儲工具已安裝在z/Architecture架構(gòu)模式中。33比較和交換和存儲工具2已安裝在z/Architecture架構(gòu)模式中。34通用指令擴(kuò)展工具已安裝在z/Architecture架構(gòu)模式中。35執(zhí)行擴(kuò)展工具已安裝在z/Architecture架構(gòu)模式中。39分配給IBM內(nèi)部使用。41浮點(diǎn)支持增強(qiáng)工具(FPR-GR轉(zhuǎn)移、FPS符號處理以及DFP舍入)已安裝在z/Architecture架構(gòu)模式中。42DFP (十進(jìn)制浮點(diǎn))工具已安裝在z/Architecture架構(gòu)模式中。43DFP (十進(jìn)制浮點(diǎn))工具具有高性能。如果位43是1,位42是I。
44PFP0指令已安裝在z/Architecture架構(gòu)模式中。指令可執(zhí)行架構(gòu)中單個功能,或在某些情況下,多個可選擇的功能中的任一個。對不同機(jī)器來說,被定義用于指令的可選擇的功能可以是不同的。例如,當(dāng)首次被引入到架構(gòu)的指令集時,多功能指令可僅具有幾個可選擇的功能。此后的架構(gòu)的指令集可將更多可選擇的功能引入到先前引入的多功能指令。在一實(shí)施例中,VM可被分配有物理處理器的可選擇的功能的子集,由此在VM的邏輯處理器上運(yùn)行的指令可查詢邏輯處理器上的可用功能列表,且僅分配給VM的功能被返回,即使物理處理器可執(zhí)行更多可選擇的功能。在一個實(shí)施例中,這是通過功能指示指令攔截工具(FIIIF)完成的,該工具使得管理程序能夠俘獲(trap)或攔截由客戶(虛擬機(jī))對該查詢功能的執(zhí)行,以便呈現(xiàn)可獲得的功能的減少的列表。在另一個實(shí)施例中,例如通過位掩碼,管理程序指示將被報(bào)告給客戶的一組功能,且多功能指令的查詢功能報(bào)告該列表。而且,在一個實(shí)施例中,在邏輯處理器上執(zhí)行的指令將經(jīng)歷程序異常,如果它試圖執(zhí)行選擇的可選功能的話。 在能查詢已安裝功能的存在并也能執(zhí)行已安裝功能中的所選擇的一個的多功能指令的情況下,執(zhí)行包括查詢功能的已安裝功能可在硬件(例如包括電路和微代碼)中被執(zhí)行,以便獲得最佳性能。在一實(shí)施例中,當(dāng)FIIIF特征已安裝時,查詢功能被軟件而不是被硬件攔截以便執(zhí)行。因此,僅執(zhí)行查詢功能將遇到額外的延遲以確定要報(bào)告哪個已安裝特征。在一實(shí)施例中,攔截是到管理程序代碼,該管理程序代碼執(zhí)行查詢功能,并代表虛擬機(jī)返回適當(dāng)?shù)慕Y(jié)果。具有可選擇功能的指令的一個例子是z/Architecture的密碼消息指令。密碼消息(CIPHER MESSAGE, KM)指令可執(zhí)行多個密碼消息功能中的任一個。由密碼消息提供的功能中的一個是查詢處理器,以發(fā)現(xiàn)由處理器支持的密碼消息功能的位有效列表。密碼消息指令的格式(表3)如以下所示,其中Rl指定第一通用寄存器,R2指定第
二通用寄存器。
KMR1iR2[RRE]表三密碼消息指令的執(zhí)行(表3)如下所示執(zhí)行由暗示的通用寄存器O中的功能代碼指定的功能。指令的位16-23被忽略。通用寄存器O的位位置57-63包含功能代碼。分別用于密碼消息和鏈接密碼消息(CIPHER MESSAGE WITH CHAINING)的當(dāng)前分配的功能代碼(0-3和18-20)在表4中示出。所有其他功能代碼未被分配。對于密碼功能,位56是修改位,其指示是否將執(zhí)行加密或解密操作。對于所有其他功能,修改位被忽略。通用寄存器O的所有其他位被忽略。暗示的通用寄存器I包含存儲器中的參數(shù)塊的最左邊的字節(jié)的邏輯地址。在24位尋址模式中,通用寄存器I的位位置40-63的內(nèi)容構(gòu)成地址,而位位置0-39的內(nèi)容被忽略。在31位尋址模式中,通用寄存器I的位位置33-63的內(nèi)容構(gòu)成地址,而位位置0-32的內(nèi)容被忽略。在64位尋址模式中,通用寄存器I的位位置0-63的內(nèi)容構(gòu)成地址。查詢功能提供了指示其他功能的可用性的手段。對于查詢功能,由指令的字段(Rl、R2)指定的通用寄存器的內(nèi)容以及R2+1被忽略。對于所有其他功能,第二操作數(shù)(由R2指定)通過使用參數(shù)塊中的密鑰被加密,如由功能代碼指定的,且結(jié)果被放置在第一操作數(shù)位置。對于鏈接密碼消息,加密也使用參數(shù)塊中的初始鏈接值,且鏈接值作為操作的一部分被更新。用于24位尋址的寄存器使用在表5中示出。Rl字段指定通用寄存器,且必須指定編號為偶數(shù)的寄存器;否則,識別規(guī)范異常。R2字段指定偶奇寄存器對,且必須指定編號為偶數(shù)的寄存器;否則,識別規(guī)范異

巾O第一和第二操作數(shù)的最左邊的字節(jié)的位置分別由Rl和R2通用寄存器的內(nèi)容指定。第二操作數(shù)位置中的字節(jié)數(shù)量在通用寄存器R2+1中指定。第一操作數(shù)與第二操作數(shù)具有相同的長度。作為操作的一部分,通用寄存器Rl和R2中的地址以被處理的字節(jié)數(shù)量遞增,且通用寄存器R2+1中的長度以相同的數(shù)量減少。地址和長度的構(gòu)成和更新取決于尋址模式。在24位尋址模式中,通用計(jì)算機(jī)Rl和R2的位位置40-63的內(nèi)容分別構(gòu)成第一和第二操作數(shù)的地址,且位位置0-39的內(nèi)容被忽略;更新的地址的位40-63替換通用寄存器Rl和R2中的對應(yīng)位,更新的地址的位位置40的進(jìn)位被忽略,且通用寄存器Rl和R2的位位置32-39的內(nèi)容被設(shè)置為零。在31位尋址模式中,通用寄存器Rl和R2的位位置33-63的內(nèi)容分別構(gòu)成第一和第二操作數(shù)的地址,且位位置0-32的內(nèi)容被忽略;更新的地址的位33-63替換通用寄存器Rl和R2中對應(yīng)位,更新的地址的位位置33的進(jìn)位被忽略,且通用寄存器Rl和R2的位位置32的內(nèi)容被設(shè)置為零。在64位尋址模式中,通用寄存器Rl和R2的位位置0-63的內(nèi)容分別構(gòu)成第一和第二操作數(shù)的地址;更新地址的位0-63替換通用寄存器Rl和R2的內(nèi)容,位位置O的進(jìn)位被忽略。在24位和31位的尋址模式這兩者中,通用寄存器R2+1的位位置32_63的內(nèi)容形成32位無符號二進(jìn)制整數(shù),其指定第一和第二操作數(shù)中的字節(jié)數(shù)量,且位位置0-31的內(nèi)容被忽略;更新值的位32-63替換通用寄存器R2+1中的對應(yīng)位。在64位尋址模式中,通用寄存器R2+1的位位置0-63的內(nèi)容形成64位無符號二進(jìn)制整數(shù),其指定第一和第二操作數(shù)中的字節(jié)數(shù)量;且更新值替換通用寄存器R2+1的內(nèi)容。在24位或31位尋址模式中,通用寄存器Rl、R2和R2+1的位位置0_31的內(nèi)容總是保持不變。以下的圖示出了剛才描述的通用寄存器的內(nèi)容。在訪問寄存器模式中,訪問寄存器1、R1和R2指定了分別包含參數(shù)塊、第一和第二操作數(shù)的地址空間。獲取結(jié)果,就好像處理逐塊地從第一和第二操作數(shù)兩者的左端開始并前進(jìn)到右端。當(dāng)通用寄存器R2+1中指定的第二操作數(shù)中的字節(jié)數(shù)量已被處理并被放置在第一操作數(shù)位置(被稱為正常完成)或當(dāng)少于第二操作數(shù)的長度的CPU確定的塊的數(shù)量已被處理(被稱為部分完成)時,操作結(jié)束。CPU確定的塊的數(shù)量取決于模型,且可以在每次執(zhí)行指令時是不同的數(shù)量。CPU確定的塊的數(shù)量通常非零。在某些非常情況下,該數(shù)量可以是零,且條件代碼3可被設(shè)置為無進(jìn)展。但是,CPU保護(hù)免于這種無進(jìn)展情況的無限重現(xiàn)。如果以下任何情況發(fā)生,第一操作數(shù)位置和鏈接值字段中的結(jié)果是不可預(yù)測的密鑰字段與第一操作數(shù)的任何部分重疊。鏈接值字段與第一操作數(shù)和第二操作數(shù)的任何部分重疊。第一和第二操作數(shù)破壞性地重疊。在數(shù)據(jù)被移入到第一操作數(shù)位置后當(dāng)?shù)谝徊僮鲾?shù)位置將被用作源時,操作數(shù)被稱為破壞性地重疊,假設(shè)處理將從左邊到右邊且一次一個字節(jié)地被執(zhí)行。當(dāng)由于正常完成而結(jié)束操作時,設(shè)置條件代碼0,且R2+1中的結(jié)果值是零。當(dāng)由于部分完成結(jié)束操作時,設(shè)置條件代碼3且R2+1中的結(jié)果值是非零。 當(dāng)識別了存儲器更改PER事件時,在報(bào)告事件之前,少于4K的額外字節(jié)被存儲在第一操作數(shù)位置。當(dāng)?shù)诙僮鲾?shù)長度初始地為零時,不訪問參數(shù)塊、第一和第二操作數(shù),不改變通用寄存器Rl、R2和R2+1,并設(shè)置條件代碼O。當(dāng)Rl和R2字段的內(nèi)容相同時,僅以處理的字節(jié)數(shù)量,而不是以處理的字節(jié)數(shù)量的2倍,來遞增指定寄存器的內(nèi)容。如由其他CPU和通道程序所觀察的,對參數(shù)塊和存儲器操作數(shù)的引用可以是多訪問引用,對這些存儲位置的訪問不必須是塊并發(fā)的,且這些訪問或引用的順序未被定義。在某些非常的情況下,可通過設(shè)置條件代碼3來完成指令執(zhí)行,而不更新寄存器和鏈接值以反應(yīng)被處理的第一和第二操作數(shù)的最后單元。在該情況中被處理的單元的大小取決于情況和模型,但限于使得已被處理的且未被報(bào)告的第一和第二操作數(shù)的部分不在存儲器中重疊。在所有的情況中,對于所有的已被處理的第一操作數(shù)位置,設(shè)置改變位并在適用時報(bào)告PER存儲器更改事件??梢詾榕c在指令的單次執(zhí)行中處理的操作數(shù)部分相比更大部分的操作數(shù)來報(bào)告訪問異常;但是,對于操作數(shù)長度以外的位置以及正在處理的當(dāng)前位置以外多于4K字節(jié)的位置,訪問異常都不會被識別。用于密碼消息的功能代碼如下。
權(quán)利要求
1.一種用于隱藏多功能指令的所選擇已安裝功能的計(jì)算機(jī)實(shí)現(xiàn)的方法,該多功能指令被架構(gòu)設(shè)計(jì)為執(zhí)行多個已安裝功能中的功能,所述方法包括 設(shè)置值,該值控制已安裝功能對主機(jī)計(jì)算機(jī)的多功能指令的可用性,該主機(jī)計(jì)算機(jī)包含一個或多個處理器,一處理器具有多功能指令的第一多個所述已安裝功能,該第一多個已安裝功能包含一個或多個第一已安裝功能以及一個或多個第二已安裝功能;以及執(zhí)行多功能指令,該多功能指令包含操作碼字段,該執(zhí)行包括 響應(yīng)于該多功能指令指定查詢功能,執(zhí)行該查詢功能,以確定可用于該多功能指令的已安裝功能; 該查詢功能執(zhí)行使用所述值來確定所述一個或多個第二已安裝功能; 該查詢功能執(zhí)行存儲結(jié)果值,該結(jié)果值指示所述一個或多個第一已安裝功能中的一個或多個對該多功能指令不可用;以及 響應(yīng)于該多功能指令指定第一多個所述已安裝功能中的非查詢功能,在該非查詢功能是所述第二已安裝功能中的一個時,執(zhí)行該非查詢功能,且在該非查詢功能是不同于所述第二已安裝功能中的一個的其它功能時,阻止執(zhí)行所述非查詢功能。
2.如權(quán)利要求I所述的方法,其中,由主機(jī)計(jì)算機(jī)的管理程序?yàn)橹鳈C(jī)計(jì)算機(jī)的虛擬機(jī)來設(shè)置所述值,該虛擬機(jī)包含一個或多個邏輯處理器,該一個或多個邏輯處理器被分配給一個或多個物理處理器,一物理處理器具有多功能指令的所述一個或多個第二已安裝功能,其中,由所述一個或多個物理處理器中的物理處理器上的一個或多個邏輯處理器中的邏輯處理器在該虛擬機(jī)中執(zhí)行所述多功能指令。
3.如權(quán)利要求2所述的方法,其中,基于多功能指令的操作碼來確定所述一個或多個第二已安裝功能。
4.如權(quán)利要求2所述的方法,還包括 由管理程序來設(shè)置另一個值,該值控制已安裝功能對在主機(jī)計(jì)算機(jī)系統(tǒng)的另一虛擬機(jī)上執(zhí)行的多功能指令的可用性;以及 由一個或多個另一邏輯處理器中的另一邏輯處理器在該另一虛擬機(jī)中執(zhí)行另一多功能指令; 響應(yīng)于該另一多功能指令指定另一查詢功能,執(zhí)行該另一查詢功能,以確定對該另一多功能指令可用的已安裝功能; 該另一查詢功能執(zhí)行使用該另一個值來確定一個或多個第三已安裝功能;以及該另一查詢功能執(zhí)行存儲另一結(jié)果值,該結(jié)果值指示該一個或多個第三已安裝功能中的一個或多個對該另一多功能指令不可用。
5.如權(quán)利要求2所述的方法,其中,被存儲的結(jié)果值是位有效值,其中,每個位位置對應(yīng)于一功能,且位為I指示相應(yīng)功能已安裝。
6.如權(quán)利要求2所述的方法,其中,所述查詢功能由多功能指令指定的功能代碼或多功能指令指定測試位來指定。
7.如權(quán)利要求6所述的方法,其中,所述多功能指令是z架構(gòu)指令,該指令由密碼指令、執(zhí)行定時工具功能指令、執(zhí)行浮點(diǎn)操作指令或執(zhí)行被鎖定操作指令中的任一個構(gòu)成,其中,該密碼指令包含密碼消息指令、鏈接密碼消息指令、計(jì)算中間消息摘要指令、計(jì)算最后消息摘要指令、計(jì)算消息驗(yàn)證代碼指令中的任一個,其中,該多功能指令指定查詢功能包括響應(yīng)于所述多功能指令是密碼指令或PTFF指令,獲取要被執(zhí)行的多功能指令指定的功能代碼,該獲取的功能代碼由查詢功能構(gòu)成,其中,被存儲的結(jié)果值是多個位,該多個位中的每個位指示是否支持相應(yīng)的功能代碼;以及 響應(yīng)于所述多功能指令是密碼指令或PTFF指令,獲取要被執(zhí)行的多功能指令指定的功能代碼,該獲取的功能代碼不是查詢功能,根據(jù)該獲取的功能代碼來執(zhí)行密碼功能或PTFF功能;以及 響應(yīng)于所述多功能指令是執(zhí)行被鎖定操作指令或執(zhí)行浮點(diǎn)操作指令且所述多功能指定的測試位為1,確定多功能指令指定的功能代碼已安裝,其中,被存儲的結(jié)果值是條件代碼值;以及 響應(yīng)于所述多功能指令是執(zhí)行被鎖定操作指令或執(zhí)行浮點(diǎn)操作指令且所述多功能指令指定的測試位為O,根據(jù)獲取的功能代碼來執(zhí)行浮點(diǎn)功能或被鎖定操作。
8.一種用于隱藏多功能指令的所選擇已安裝功能的計(jì)算機(jī)系統(tǒng),該多功能指令被架構(gòu)設(shè)計(jì)為執(zhí)行多個已安裝功能中的功能,包括 存儲器; 與存儲器通信的處理器,該處理器包括用于從存儲器獲取指令的指令獲取元件,以及用于執(zhí)行獲取的指令的一個或多個執(zhí)行元件; 其中,所述計(jì)算機(jī)系統(tǒng)被配置為執(zhí)行如權(quán)利要求I到7中的任一個所述的方法。
9.一種用于隱藏多功能指令的所選擇已安裝功能的計(jì)算機(jī)程序產(chǎn)品,該多功能指令被架構(gòu)設(shè)計(jì)為執(zhí)行多個已安裝功能中的功能,該計(jì)算機(jī)程序產(chǎn)品包括有形存儲介質(zhì),該有形存儲介質(zhì)可被處理電路讀取,并存儲可被處理電路執(zhí)行以執(zhí)行如權(quán)利要求I到7中的任一個所述的方法的指令。
全文摘要
多功能指令的所選擇已安裝功能被隱藏,這樣即使處理器能夠執(zhí)行隱藏的已安裝功能,隱藏功能的可用性被隱藏,從而響應(yīng)于多功能指令查詢功能可用性,只有未隱藏的功能才被報(bào)告為已安裝。
文檔編號G06F9/318GK102947794SQ201080066964
公開日2013年2月27日 申請日期2010年11月8日 優(yōu)先權(quán)日2010年6月24日
發(fā)明者D·格雷納, D·L·奧西塞克, T·什萊格爾 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1