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

用于確定運行時間檢測控制的狀態(tài)的方法和系統(tǒng)與流程

文檔序號:12007505閱讀:344來源:國知局
用于確定運行時間檢測控制的狀態(tài)的方法和系統(tǒng)與流程
本發(fā)明一般地涉及在計算環(huán)境內(nèi)的處理,并且更具體地,涉及確定運行時間檢測控制的狀態(tài)。

背景技術(shù):
計算機處理器使用日益復(fù)雜的分支預(yù)測和指令高速緩沖器邏輯執(zhí)行程序或指令流。這些處理已被引入來提高指令吞吐量,并因此提高處理性能。引入用于改善性能的邏輯使其很難肯定地預(yù)測特定軟件應(yīng)用程序?qū)⑷绾卧谟嬎銠C處理器上執(zhí)行。在軟件開發(fā)過程中,經(jīng)常存在的功能和性能之間的平衡。軟件在起始于正在執(zhí)行軟件的底層硬件的一個或多個抽象級別處被執(zhí)行。當(dāng)硬件被虛擬化時,附加的抽象層被引入。由于引入性能增強邏輯和各種抽象層,很難透徹了解到在執(zhí)行程序時在硬件級別處實際正在發(fā)生什么。如果沒有這個信息,軟件開發(fā)者使用更抽象的方法,諸如執(zhí)行持續(xù)時間、存儲器使用情況、線程的數(shù)量等,用于優(yōu)化軟件應(yīng)用。

技術(shù)實現(xiàn)要素:
技術(shù)問題當(dāng)可以獲得硬件具體信息時,其通常在事后被提供給開發(fā)者,并且其在高級別上以聚合方式提供,和/或點綴有其他散程序和操作系統(tǒng)的活性,使其難以識別可能影響該軟件應(yīng)用的效率和準(zhǔn)確度的問題。問題解決方案一些實施例包括用于確定運行時間檢測控制(run-timeinstrumentationcontrols)的狀態(tài)的方法、系統(tǒng)以及計算機程序產(chǎn)品。通過執(zhí)行一種測試運行時間檢測控制(testrun-timeinstrumentationcontrols或TRIC)指令來確定該狀態(tài)。所述TRIC指令可在管理狀態(tài)或較小的特權(quán)狀態(tài)下執(zhí)行,所述TRIC指令確定運行時間檢測控制是否發(fā)生變化。使用特權(quán)負(fù)荷運行時間檢測控制(loadrun-timeinstrumentationcontrols或LRIC)指令將運行時間檢測控制設(shè)置為初始值;取TRIC指令并執(zhí)行TRIC指令。如果所述TRIC指令被啟用,則確定由運行時間檢測控制所設(shè)置的初始值是否已經(jīng)改變。如果運行時間檢測控制所設(shè)置的初始值已經(jīng)改變,則將條件代碼置為第一值。通過本發(fā)明的技術(shù)可實現(xiàn)附加特征和優(yōu)點。本發(fā)明的其他實施例和各方面在本文中將被詳細(xì)描述,并且被認(rèn)為是所要求保護的發(fā)明的一部分。為了更好地理解本發(fā)明的優(yōu)點和特征,請參考說明書和附圖。被認(rèn)為是本發(fā)明的主題被特別指出并在說明書的結(jié)尾處的權(quán)利要求書中被清楚地要求保護。根據(jù)結(jié)合附圖的以下詳細(xì)描述可清楚本發(fā)明的前述和其它特征以及優(yōu)點,其中,附圖說明圖1A是示出實施例中的示例主計算機系統(tǒng)的示意圖;圖1B是示出實施例中的示例仿真主計算機系統(tǒng)的示意圖;圖1C是示出實施例中的示例計算機系統(tǒng)的示意圖;圖2是示出在實施例中的示例性計算機網(wǎng)絡(luò)的示意圖;圖3是示出在實施例中的計算機系統(tǒng)的元件的示意圖;圖4A示出了在實施例中的計算機系統(tǒng)的詳細(xì)元件;圖4B示出了在實施例中的計算機系統(tǒng)的詳細(xì)元件;圖4C示出了在實施例中的計算機系統(tǒng)的詳細(xì)元件;圖5示出根據(jù)實施例的處理器的用于運行時間檢測的系統(tǒng)的示意圖;圖6描述了在實施例中用于加載和存儲運行時間檢測控制控制塊(RICCB)的系統(tǒng);圖7描述了實施例中包括可由特權(quán)狀態(tài)設(shè)置的控制的RICCB的一部分;圖8描述了實施例中測試運行時間檢測控制(TRIC)指令的處理流程;圖9描述了實施例中測試運行時間檢測控制(TRIC)指令的處理流程;圖10描述了實施例中RICCB控制框的一部分;圖11描述了根據(jù)實施例的報告群組;圖12示出了根據(jù)實施例的計算機程序產(chǎn)品。具體實施方式本發(fā)明的實施例是一種測試運行時間檢測指令。在一個實施例中,測試運行時間檢測指令被執(zhí)行以便設(shè)置條件代碼,該條件代碼被運行時間檢測控制用來確定運行時間檢測控制從上次運行時間檢測控制被負(fù)載運行時間檢測控制指令(LRIC)加載以來是否已經(jīng)改變。在一個實施例總,運行時間檢測控制可能因為修改運行時間檢測控制(MRIC)指令或者啟用而被改變或者由于啟用和運行的運行時間檢測導(dǎo)致的改變而被改變。圖1A示出了實施例中的主計算機系統(tǒng)50的代表性組件。在計算機系統(tǒng)中也可以采用組件的其它布置。代表性主計算機系統(tǒng)50包括與主存儲器(計算機存儲器)2以及到存儲設(shè)備11和用于與其它計算機或SAN和等通信的網(wǎng)絡(luò)10的I/O接口進行通信的一個或多個處理器1。處理器1是符合具有架構(gòu)的指令集和架構(gòu)的功能的體系結(jié)構(gòu)。處理器1可具有動態(tài)地址轉(zhuǎn)換(DAT)3,用于將程序地址(虛擬地址)轉(zhuǎn)換成存儲器中的實際地址。DAT3通常包括轉(zhuǎn)換后備緩沖器(translationlookasidebuffer(TLB))7,用于高速緩沖器一些轉(zhuǎn)換,使得對計算機存儲器2的塊的后面的訪問不需要地址轉(zhuǎn)換的延遲。通常,高速緩沖器9用于計算機存儲器2與處理器1之間。高速緩沖器9可以是分層的,具有可提供給多個CPU的大高速緩沖器以及在所述大容量高速緩沖器和每個CPU之間的更小更快的(較低級別的)高速緩沖器。在一些實施例中,低級別的高速緩沖器被劃分,以提供單獨的低級別的高速緩沖器用于取指令和數(shù)據(jù)的訪問。在一個實施例中,由取指令單元4經(jīng)由高速緩沖器9從計算機存儲器2取出指令。該指令在指令解碼單元6被解碼并且(與一些實施例中其他的指令一起)被分派到指令執(zhí)行單元8。通常,采用幾個指令執(zhí)行單元8,例如算術(shù)執(zhí)行單元、浮點執(zhí)行單元以及分支指令執(zhí)行單元。指令是由指令執(zhí)行單元8執(zhí)行,根據(jù)需要訪問來自指定的指令寄存器或計算機存儲器2的操作數(shù)。如果操作數(shù)是從計算機存儲器2存取(加載或存儲)時,載荷存儲單元5通常在正被執(zhí)行的指令控制下處理訪問。指令可以在硬件電路中或在內(nèi)部微碼(固件)、或者由兩者的組合來執(zhí)行。在圖1B提供了對仿真主機系統(tǒng)21的描述,其仿真主機架構(gòu)的主機系統(tǒng),諸如圖1的主機系統(tǒng)50。在仿真主計算機系統(tǒng)21中,主機處理器(CPU)1是仿真主機處理器(或虛擬主機處理器)29,并且包括本機(native)處理器27,其具有與主計算機系統(tǒng)50的主機處理器1不同的本地指令集架構(gòu)。仿真主計算機系統(tǒng)21具有可訪問本機處理器27的存儲器(memory)22。在一個實施例中,存儲器22被劃分成計算機存儲器2部分和仿真例程存儲器23的部分。根據(jù)主計算機的體系結(jié)構(gòu),計算機存儲器2可用于仿真主計算機系統(tǒng)21的程序。本機處理器27執(zhí)行一個體系架構(gòu)的結(jié)構(gòu)化的指令集的本機指令,而不是所述仿真處理器29的本機指令(所述本機指令從仿真例程存儲器23中得到),并且可以通過采用在序列與訪問/解碼例程中獲得的一個或多個指令從計算機存儲器2的程序訪問用于執(zhí)行的主機指令,所述序列與訪問/解碼例程可以解碼被訪問的主機指令以確定用于仿真被訪問的主機指令的功能的本機指令的執(zhí)行程序。為主計算機系統(tǒng)50架構(gòu)定義的其他設(shè)施(facility)可以通過結(jié)構(gòu)化的設(shè)施例程,例如包括諸如作為通用寄存器的設(shè)施、控制寄存器、動態(tài)地址轉(zhuǎn)換和輸入/輸出(I/O)子系統(tǒng)支持以及處理器高速緩沖器,來仿真。仿真例程還可以利用在本機處理器27(如通用寄存器和虛擬地址的動態(tài)轉(zhuǎn)換)可獲得的功能,來提高仿真例程的性能。專用硬件和空載(off-load)引擎也可以被提供用于幫助本機處理器27模仿主計算機系統(tǒng)50的功能。在大型機中,架構(gòu)的機器指令由程序編制器(programmer)借助編譯器應(yīng)用使用,程序編制器現(xiàn)在通常是“C”程序編制器。存儲在存儲介質(zhì)中的這些指令可在z/架構(gòu)體系IBM服務(wù)器被本地地(natively)執(zhí)行,或者在執(zhí)行其他架構(gòu)體系的機器中執(zhí)行。它們可以在現(xiàn)有和未來的IBM大型機服務(wù)器中和在IBM的其他機器(例如pSeries(R)服務(wù)器和xSeries(R)服務(wù)器)上被模仿。他們可以在各種使用由IBM(R)、Intel(R)、AMDTM、SunMicrosystem以及其他公司生產(chǎn)機器上的運行Linux的機器中被執(zhí)行。除了在Z/Architecture(R)下在硬件上執(zhí)行之外,與由Hercules、UMX、FundamentalSoftware公司(FSI)或PlatformSolutions公司(PSI)使用的其中執(zhí)行通常處于仿真模式的的仿真的機器一樣,可是使用Linux。在仿真模式下,仿真軟件是由本機處理器執(zhí)行以便模仿仿真處理器的體系結(jié)構(gòu)。仿真主計算機系統(tǒng)21的一個或多個組件在“IBM(R)z/ArchitecturePrinciplesofOperation(IBM(R)的z/操作的結(jié)構(gòu)原理)(公開號SA22-7832-08,第9版,2010年8月”有進一步描述,其在此通過引用將其全部并入本文中。IBM是美國紐約阿蒙克的國際商業(yè)機器公司的注冊商標(biāo)。此處使用的其他名稱為國際商業(yè)機器公司或其他公司的注冊商標(biāo),商標(biāo)或產(chǎn)品名稱。本機處理器27通常執(zhí)行存儲在包括固件或本機操作系統(tǒng)的仿真例程存儲器23中的仿真軟件,以便進行仿真處理器的模仿。所述仿真軟件負(fù)責(zé)獲取和執(zhí)行所述仿真的處理器體系結(jié)構(gòu)的指令。仿真軟件維持仿真程序計數(shù)器以便跟蹤指令的邊界。仿真軟件可以一次取一個或多個仿真機器指令并由本機處理器27所述一個或多個仿真機器指令轉(zhuǎn)換成用于執(zhí)行本機機器指令的相應(yīng)群組。這些轉(zhuǎn)換的指令可以被高速緩沖器使得更快的轉(zhuǎn)換可以完成。仿真軟件維護仿真處理器體系結(jié)構(gòu)的體系結(jié)構(gòu)規(guī)則,以確保用于仿真處理器編寫的操作系統(tǒng)和應(yīng)用正確地進行操作。此外,仿真軟件提供仿真處理器體系結(jié)構(gòu)所識別的資源,包括但不限于:控制寄存器、通用寄存器、浮點寄存器、例如包括段表和頁表的動態(tài)地址轉(zhuǎn)換函數(shù)、中斷機制,上下文切換機制,計時(TOD)時鐘以及到I/O子系統(tǒng)的架構(gòu)接口,使得設(shè)計來在仿真處理器29上運行的操作系統(tǒng)或應(yīng)用能夠在具有仿真軟件的本機處理器27上運行。被仿真的特定指令被解碼,并且子程序被調(diào)用以便執(zhí)行單個指導(dǎo)的功能。在理解優(yōu)選實施例的描述之后,模仿仿真處理器29的功能的仿真軟件功能以例如“C”子程序或驅(qū)動程序或用于為本領(lǐng)域技術(shù)人員的技能范圍內(nèi)的特定硬件提供驅(qū)動程序的一些其它方法被實現(xiàn)。在一個實施例中,本發(fā)明可以通過軟件(有時稱為許可內(nèi)部代碼、固件、微代碼、毫碼、微微碼等,其中任何一個將與本發(fā)明一致)來實施。參照圖1A,實施本發(fā)明的軟件程序代碼由也被稱為主計算機系統(tǒng)50的CPU(中央處理單元)1的處理器從諸如長期存儲介質(zhì)、CD-ROM驅(qū)動器磁帶驅(qū)動器或硬盤驅(qū)動器的存儲設(shè)備11中的存取。該軟件程序代碼可以實施在用于數(shù)據(jù)處理系統(tǒng)中的任何各種的已知介質(zhì)上,諸如軟盤、硬盤驅(qū)動器或CD-ROM。該代碼可分布在這樣的介質(zhì),或者可以通過到其他系統(tǒng)的用戶所使用的其他計算機系統(tǒng)的網(wǎng)絡(luò)10從計算機系統(tǒng)的計算機存儲器2或存儲器被分配給用戶?;蛘?,程序代碼可以實施在計算機存儲器2中,并由處理器1使用處理器總線(未示出)訪問。這樣的程序代碼包括操作系統(tǒng),其控制各種計算機組件和一個或多個應(yīng)用程序的功能和相互作用。程序代碼通常從諸如存儲設(shè)備11的致密介質(zhì)翻存(page)到計算機存儲器2,其中它可用于所述處理器1的處理。用于在物理介質(zhì)上實施存儲器中的軟件程序代碼、和/或經(jīng)由網(wǎng)絡(luò)分發(fā)軟件代碼的技術(shù)和方法是眾所周知的,這里不作進一步討論。程序代碼,在被創(chuàng)建并存儲在有形介質(zhì)(包括但不限于,電子存儲模塊(RAM)、閃存、光盤(CD)DVD光盤磁帶等)上時,通常被稱為“計算機程序產(chǎn)品”。計算機程序產(chǎn)品介質(zhì)通常優(yōu)選是在計算機系統(tǒng)中可由處理電路讀取用于由處理電路執(zhí)行。圖1C示出了其中可以實施本發(fā)明的具有代表性的工作站或服務(wù)器的硬件系統(tǒng)。圖1C的系統(tǒng)100包括代表性的基礎(chǔ)計算機系統(tǒng)101,諸如個人電腦、工作站或服務(wù)器,其包括可選的外圍設(shè)備?;A(chǔ)計算機系統(tǒng)101包括一個或多個處理器106和用來根據(jù)已知技術(shù)連接和啟用在所述一個或多個處理器106與基礎(chǔ)計算機系統(tǒng)101的其它組件之間的通信中的總線(未示出)??偩€將處理器106連接到存儲器105和長期存儲器107,長期存儲器107可以包括例如硬盤驅(qū)動器(包括例如任何磁介質(zhì)、CD、DVD和閃存)或磁帶驅(qū)動器?;A(chǔ)計算機系統(tǒng)101還可以包括用戶接口適配器,其通過總線將所述一個或多個處理器106連接到一個或多個接口設(shè)備,諸如鍵盤104、鼠標(biāo)103、打印機/掃描儀110和/或其他接口設(shè)備,其可以是任何用戶接口設(shè)備,諸如觸摸屏、數(shù)字化輸入板等。該總線還將一個或多個處理器經(jīng)由顯示適配器連接到顯示裝置102,諸如LCD屏幕或監(jiān)視器?;A(chǔ)計算機系統(tǒng)101可以通過能夠與網(wǎng)絡(luò)109通信108的網(wǎng)絡(luò)適配器的方式與其它計算機或計算機的網(wǎng)絡(luò)進行通信。示例網(wǎng)絡(luò)適配器為通信信道、令牌環(huán)、以太網(wǎng)或調(diào)制解調(diào)器。或者,基礎(chǔ)計算機系統(tǒng)101可使用無線接口,諸如蜂窩數(shù)字分組數(shù)據(jù)(CDPD)卡,進行通信。基礎(chǔ)計算機系統(tǒng)101可以用在局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)中與其它計算機相關(guān)聯(lián),或基礎(chǔ)計算機系統(tǒng)101可以是在與另一臺計算機等的客戶機/服務(wù)器布置中的客戶機。圖2示出了其中可以實施本發(fā)明的數(shù)據(jù)處理網(wǎng)絡(luò)200。數(shù)據(jù)處理網(wǎng)絡(luò)200可包括多個單獨的網(wǎng)絡(luò),諸如無線網(wǎng)絡(luò)和有線網(wǎng)絡(luò),其中每一個可以包括多個獨立的工作站201、202、203、204和/或圖1C的基礎(chǔ)計算機系統(tǒng)101。另外,如本領(lǐng)域技術(shù)人員將理解的,可以包括一個或多個LAN,其中LAN可以包括多個連接到主機處理器的智能工作站。程序代碼111可以實施在所述存儲器105中,并由處理器106使用處理器總線訪問。這樣編程代碼包括操作系統(tǒng),其控制各種計算機組件和一個或多個應(yīng)用程序112的功能和相互作用。程序代碼通常從長期存儲107翻存(page)到高速存儲器105,在其中程序代碼可用于所述處理器106的理由。用于在物理介質(zhì)上實施存儲器中的軟件編程代碼和/或經(jīng)由網(wǎng)絡(luò)分發(fā)軟件代碼的技術(shù)和方法是眾所周知的,這里不作進一步討論。創(chuàng)建并存儲在有形介質(zhì)(包括但不限于,電子存儲模塊(RAM)、閃存、光盤(CD)、DVD光盤、磁帶等)上的程序代碼通常被稱為“計算機程序產(chǎn)品”。計算機程序產(chǎn)品介質(zhì)通常優(yōu)選是在計算機系統(tǒng)中可由處理電路讀取用于由處理電路執(zhí)行。對處理器而言最容易獲得的高速緩沖器(通常比處理器的其他高速緩沖器更快且更小)是最低的(L1或級1)高速緩沖器并且主存儲器(主存儲器)是最高級別的高速緩沖器(如果有3個級別的話,則是L3)。最低級高速緩沖器通常分為保持待執(zhí)行的機器指令的指令高速緩沖器(I-高速緩沖器)和保存數(shù)據(jù)操作數(shù)的數(shù)據(jù)高速緩沖器(D-高速緩沖器)。仍然參照圖2,網(wǎng)絡(luò)還可以包括大型計算機或服務(wù)器,諸如網(wǎng)關(guān)計算機(客戶機服務(wù)器)206或應(yīng)用服務(wù)器(遠(yuǎn)程服務(wù)器)208,其可訪問數(shù)據(jù)存儲庫,并且也可以從工作站205被直接訪問。網(wǎng)關(guān)計算機206作為每個網(wǎng)絡(luò)207的入口點。當(dāng)將一個網(wǎng)絡(luò)連接協(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。網(wǎng)關(guān)計算機可以利用可從國際商業(yè)機器公司獲得的IBMeServerTMzSeries(R)z9(R)S服務(wù)器來實現(xiàn)。在一個實施例中,實施本發(fā)明的軟件編程代碼由基礎(chǔ)計算機系統(tǒng)101的處理器106從長期存儲介質(zhì)存取,長期存儲介質(zhì)諸如圖1C的長期存儲器107。1C。軟件編程代碼可實施在用于數(shù)據(jù)處理系統(tǒng)的任何各種已知介質(zhì)中,諸如軟盤、硬盤驅(qū)動器或CD-ROM。該代碼可分布在這樣的介質(zhì)上,或者可以通過到其他系統(tǒng)的用戶所使用的其他計算機系統(tǒng)的網(wǎng)絡(luò)從計算機系統(tǒng)的計算機存儲器或存儲器被分配給用戶210和211。參照圖3,描述了處理器106的示例性處理器實施例。高速緩沖存儲器303中的一個或多個級別被用到緩沖存儲器塊以便提高處理器106的性能。高速緩沖器303是可能被使用的存儲器數(shù)據(jù)的高速度緩沖保存高速緩沖器行。典型的高速緩沖器行是64、128或256字節(jié)的存儲器數(shù)據(jù)。在一個實施例中,單獨的高速緩沖器被用于高速緩存指令而不是用于高速緩沖器數(shù)據(jù)。高速緩沖器一致性(在存儲器和高速緩沖器中行的拷貝的同步)通常是由本領(lǐng)域中公知的各種“監(jiān)聽(snoop)”算法提供。主存儲裝置,諸如處理器系統(tǒng)的存儲器105,通常被稱為高速緩沖器。在具有4個級別的高速緩沖器的處理器系統(tǒng)303中,存儲器105有時被稱為級別5(L5)的高速緩沖器,因為它通常是更快并且只保持可用于計算機系統(tǒng)的非易失性存儲器的一部分(DASD、磁帶等)。存儲器105“高速緩存(cache)”由操作系統(tǒng)被翻存進出存儲器105的數(shù)據(jù)的頁面。程序計數(shù)器(指令計數(shù)器)311跟蹤要執(zhí)行的當(dāng)前指令的地址。在z/Architecture處理器中的程序計數(shù)器是64位,并可以截斷為31或24位以支持先前的尋址局限。程序計數(shù)器典型地包括在計算機的PSW(程序狀態(tài)字)中,以便其在上下文切換期間持續(xù)。因此,進程中的程序(具有程序計數(shù)器值)可例如由操作系統(tǒng)(即,從程序環(huán)境到操作系統(tǒng)環(huán)境的上下文切換)來中斷。程序的PSW在程序不激活時維持程序計數(shù)器值,并且在操作系統(tǒng)執(zhí)行時使用操作系統(tǒng)的程序計數(shù)器(在PSW中)。在一個實施例中,程序計數(shù)器增加等于當(dāng)前指令的字節(jié)數(shù)的量。精簡的指令集計算(RISC)指令通常固定長度,而復(fù)雜指令集計算(CISC)指令通常是可變長度。IBMz/Architecture的指令是具有長度為2、4、6字節(jié)的CISC指令。程序計數(shù)器311通過例如上下文切換操作或分支指令的分支選擇操作來修改。在上下文切換操作中,當(dāng)前程序計數(shù)器值與其他關(guān)于執(zhí)行的程序的狀態(tài)信息(例如條件碼)一起存儲在PSW(程序狀態(tài)字)中,并且加載新的程序計數(shù)器值來指向要執(zhí)行的新的程序模塊的指令。通過將分支指令的結(jié)果加載入程序計數(shù)器311,執(zhí)行分支選擇操作以便允許程序進行判斷或在程序中進行循環(huán)。在一個實施例中,使用取指令單元305來代表處理器106提取指令。取指令單元305提取“下一順序指令”、分支選擇指令的目標(biāo)指令、或上下文切換后的程序的第一指令。在一個實施例中,取指令單元305基于可能使用預(yù)取指令的概率使用預(yù)提取技術(shù)來推測性預(yù)取指令。例如,取指令單元305可提取16字節(jié)的指令,其包括下一順序指令和附加的字節(jié)的另外順序指令。所提取的指令于是由處理器106來執(zhí)行。在實施例中,提取的指令傳輸至取指令單元305的解碼/分派單元306。解碼/分派單元306解碼該指令并將關(guān)于解碼的指令的信息轉(zhuǎn)發(fā)至適當(dāng)?shù)膱?zhí)行單元307、308和/或310。執(zhí)行單元307從取指令單元305接收關(guān)于解碼的算術(shù)指令的信息,并根據(jù)該指令的操作碼(opcode)來對操作數(shù)執(zhí)行算術(shù)操作。從存儲器105、結(jié)構(gòu)寄存器309或從被執(zhí)行的指令的即時字段(immediatefield)將操作數(shù)提供給執(zhí)行單元307。在存儲時,執(zhí)行的結(jié)果可存儲在存儲器105、或結(jié)構(gòu)寄存器309、或其他機器硬件(例如控制寄存器、PSW寄存器等)中。處理器106典型地具有用于執(zhí)行指令的功能的一個或多個執(zhí)行單元307、308和310。參照圖4A,執(zhí)行單元307可利用接口邏輯407與結(jié)構(gòu)寄存器309、解碼/分派單元306、負(fù)載/存儲單元310和其它處理器單元401通信。執(zhí)行單元307可使用若干寄存器電路403、404和405以保持關(guān)于算術(shù)邏輯單元(ALU)402將操作的信息。ALU402執(zhí)行諸如加、減、乘、除以及諸如與、或、異或(XOR)、旋轉(zhuǎn)和移位的邏輯函數(shù)的算術(shù)操作。在一個實施例中,ALU402支持設(shè)計相關(guān)的專用操作。其他電路可提供其他結(jié)構(gòu)功能408,例如包括條件碼和恢復(fù)支持邏輯。典型地ALU操作的結(jié)果保持在輸出寄存器電路406中,其可將該結(jié)果轉(zhuǎn)發(fā)至各種其他處理功能。在其他實施例中,存在許多處理器單元的設(shè)置,本說明書僅旨在提供一個實施例的代表性理解。例如,ADD指令將在具有算術(shù)和邏輯功能的執(zhí)行單元307中執(zhí)行,而浮點指令將在具有專用浮點性能的例如浮點執(zhí)行單元(未示出)中執(zhí)行。優(yōu)選地,執(zhí)行單元通過對操作數(shù)執(zhí)行操作碼定義函數(shù)對由指令識別的操作數(shù)進行操作。例如,可以通過執(zhí)行單元307對由指令的寄存器字段識別的兩個寄存器309中發(fā)現(xiàn)的操作數(shù)而執(zhí)行ADD指令。執(zhí)行單元307執(zhí)行對于兩個操作數(shù)的算術(shù)加法,并將結(jié)果存儲在第三操作數(shù)中,其中第三操作數(shù)可以是第三寄存器或兩個源寄存器中的一個。執(zhí)行單元307優(yōu)選地使用算術(shù)邏輯單元(ALU)402,其能夠執(zhí)行諸如移位、旋轉(zhuǎn)、與、或和異或的各種邏輯功能以及包括任意加、減、乘和除的各種算術(shù)功能。一些ALU402被設(shè)計用于縮放操作,一些用于浮點。在一些實施例中,可取決于架構(gòu),數(shù)據(jù)是大尾(endian)(其中在最高字節(jié)地址處是最低有效字節(jié))或小尾(endian)(在最低字節(jié)地址處是最高有效字節(jié))。IBMz/Architecture是大尾。取決于架構(gòu),符號字段可以是符號和量級、1的補碼或2的補碼。因為2的補碼中的負(fù)數(shù)值或正數(shù)值僅需要在ALU中進行加法,所以ALU402不需要設(shè)計減法性能,因此2的補碼數(shù)是有利的。數(shù)通常以速記來描述,其中12位字段定義4096字節(jié)塊的地址,并通常描述為例如4K字節(jié)(千字節(jié))塊。參照圖4B,用于執(zhí)行分支指令的分支指令信息通常發(fā)送到分支單元308,其在其他條件操作完成之前使用諸如分支歷史表432的分支預(yù)測算法來預(yù)測該分支的結(jié)果。當(dāng)前分支指令的目標(biāo)在條件操作完成之前將被提取并被推測地執(zhí)行。當(dāng)條件操作完成時,推測執(zhí)行的分支指令基于條件操作的條件以及推測的結(jié)果或完成或丟棄。如果條件碼滿足分支指令的分支要求,則典型的分支指令可以檢測條件碼和到目標(biāo)地址的分支,可基于包括在寄存器字段發(fā)現(xiàn)的數(shù)的一些數(shù)或例如該指令的即時字段來計算目標(biāo)地址。在一個實施例中,分支單元308可使用具有多個輸入寄存器電路427、428和429以及輸出寄存器電路430的ALU426。分支單元308可與例如通用寄存器309、解碼派發(fā)單元306或其他電路425進行通信。一組指令的執(zhí)行可因為各種原因而中斷,例如包括由操作系統(tǒng)發(fā)起的上下文切換、導(dǎo)致上下文切換的程序異?;蚬收?、導(dǎo)致上下文切換的I/O中斷信號或多個程序(在多線程環(huán)境下)的多線程活動。在一個實施例中,上下文切換行為存儲關(guān)于當(dāng)前執(zhí)行的程序的狀態(tài)信息,然后加載關(guān)于調(diào)用的另一個程序的狀態(tài)信息。狀態(tài)信息可存儲在例如硬件寄存器或存儲器中。狀態(tài)信息包括指向要執(zhí)行的下一指令的程序計數(shù)器值、條件碼、存儲器轉(zhuǎn)換信息和架構(gòu)寄存器內(nèi)容。上下文切換活動可通過硬件電路、應(yīng)用程序、操作系統(tǒng)程序或固件代碼(微碼、微微碼或許可的內(nèi)部代碼(LIC))單獨或組合來執(zhí)行。處理器根據(jù)指令定義方法訪問操作數(shù)。該指令可使用指令的一部分的值來提供即時操作數(shù),可提供明確指向通用寄存器或?qū)S眉拇嫫?例如浮點寄存器)的一個或多個寄存器字段。該指令可使用由作為操作數(shù)的操作碼字段識別的隱含寄存器。該指令可使用操作數(shù)的存儲器位置。操作數(shù)的存儲器位置可由寄存器、即時字段、或寄存器和即時字段的組合來提供,如z/Architecture長位移設(shè)施所例示的那樣,其中指令定義基址寄存器、變址寄存器和即時字段(位移字段),他們被加到一起以提供存儲器中的操作數(shù)的地址。除非另有指定,則在此位置典型地意味著在主存儲器(主存儲設(shè)備)中的位置。參考圖4C,處理器使用加載/存儲單元310訪問存儲器。該加載/存儲器單元310可通過經(jīng)由高速緩沖器/存儲器接口獲得存儲器中的目標(biāo)操作數(shù)的地址以及在架構(gòu)寄存器309中或另一個存儲器位置中加載操作數(shù)來執(zhí)行加載操作,或可通過獲得存儲器中的目標(biāo)操作數(shù)的地址以及將從架構(gòu)寄存器309或另外的存儲器位置中獲得的數(shù)據(jù)存儲在存儲器中的目標(biāo)操作數(shù)位置來執(zhí)行存儲操作。加載/存儲單元310可以是推測的并可以相對于指令序列是無序的順序訪問存儲器,然而,加載/存儲單元310對順序執(zhí)行指令的程序維持顯現(xiàn)。加載/存儲單元310可與架構(gòu)寄存器309、解碼/分派單元306、高速緩存器/存儲器接口303或其他元件455通信,并包括各種寄存器電路、ALU458和控制邏輯463以計算存儲地址并提供流水線(pipeline)以保持有序操作。一些操作可以是無序的,但是加載/存儲單元提供正如在本領(lǐng)域已知的那樣的使無序操作對于程序顯現(xiàn)為一直在有序執(zhí)行。優(yōu)選地,應(yīng)用程序“看到”的地址經(jīng)常稱為虛擬地址。虛擬地址有時稱為“邏輯地址”或“有效地址”。這些虛擬地址是虛擬的,因為其通過諸如圖3的DAT312的各種動態(tài)地址轉(zhuǎn)換(DAT)312技術(shù)轉(zhuǎn)換中的一個重定向到物理存儲器位置,該技術(shù)包括但不限于,使用偏移值對虛擬地址加前綴、通過一個或多個轉(zhuǎn)換表轉(zhuǎn)換虛擬地址,該轉(zhuǎn)換表優(yōu)選地單獨或組合包括至少一個段表和頁面表,段表具有指向該頁面表的入口。在z/Architecture中,提供轉(zhuǎn)換的層級,其包括區(qū)域第一表格、區(qū)域第二表格、區(qū)域第三表格、段表和可選頁面表。通常通過使用轉(zhuǎn)換后備緩沖器(TLB)來改進地址轉(zhuǎn)換的性能,該TLB包括將虛擬地址映射至關(guān)聯(lián)的物理存儲器位置的表項。當(dāng)DAT312使用轉(zhuǎn)換表格轉(zhuǎn)換虛擬地址時創(chuàng)建表項。于是之后使用虛擬地址可使用快速TLB的表項而非慢順序轉(zhuǎn)換表格訪問??捎砂↙RU(近來最少使用)的各種替代算法來管理TLB內(nèi)容。在處理器106是多處理器系統(tǒng)中的處理器的情況下,每個處理器負(fù)責(zé)為了一致性而保持諸如I/O、高速緩存、TLB和存儲器的共享的資源互鎖。在一個實施例中,在維持緩存一致性中將使用“監(jiān)聽”技術(shù)。在監(jiān)聽環(huán)境中,每個緩存線可被標(biāo)記為共享狀態(tài)、專用狀態(tài)、改變狀態(tài)、無效狀態(tài)等中的任一狀態(tài)以便于共享。圖3的I/O單元304向處理器106提供附到外圍設(shè)備(例如包括盒帶、盤、打印機、顯示器和網(wǎng)絡(luò))的裝置。I/O單元304經(jīng)常由軟件驅(qū)動器提供給計算機程序。在諸如來自IBM的z/Series的大型機中,信道適配器和開放系統(tǒng)適配器是提供操作系統(tǒng)和外圍設(shè)備之間的通信的大型機的I/O單元。檢測數(shù)據(jù)(instrumentationdata)是與處理器106的操作相關(guān)的數(shù)據(jù)。在一個實施例中,對檢測數(shù)據(jù)和其他系統(tǒng)級度量的訪問可以被限制或不可用。計算機處理器在特權(quán)狀態(tài)和較小的特權(quán)狀態(tài)下運作。在特權(quán)狀態(tài)下,程序可通過特權(quán)操作訪問所有的系統(tǒng)資源(例如,訪問所有控制寄存器和管理(supervisor)存儲空間)。特權(quán)狀態(tài)也被稱為特權(quán)模式或管理員模式。在計算機處理器上執(zhí)行的操作系統(tǒng)可以在特權(quán)狀態(tài)下工作。較小的特權(quán)狀態(tài)為非特權(quán)狀態(tài),其中對系統(tǒng)資源的訪問受到限制。例如,在較小的特權(quán)狀態(tài)運行的應(yīng)用程序可能對控制寄存器的訪問收到有限或不能訪問對控制寄存器,并且只可以訪問由操作系統(tǒng)分配給應(yīng)用程序的用戶存儲器空間。較小的特權(quán)狀態(tài)通常被分配給在操作系統(tǒng)的控制下執(zhí)行的應(yīng)用程序,并且非特權(quán)操作可以在較小的特權(quán)狀態(tài)下進行。較小的特權(quán)狀態(tài)也被稱為問題狀態(tài)、問題模式或用戶模式。對以較小的特權(quán)狀態(tài)執(zhí)行的程序不可寫訪問的一個這種受限制資源為程序狀態(tài)字(PSW)。PSW可包含要執(zhí)行的下一指令的程序計數(shù)器值、可由分支指令使用條件碼字段、用于指示檢測是被啟用還是被禁用的檢測控制字段、以及用于控制指令排序和確定計算機處理器的狀態(tài)的其他信息,該狀態(tài)包括分配給該程序的特權(quán)狀態(tài)。在多線程處理環(huán)境中,多個程序共享或時間片、可用計算機處理器的能力。每個程序有上下文信息,該信息包括相關(guān)的PSW、,用于訪問分配給該程序的主存儲器的地址轉(zhuǎn)換表中的原始地址、一組通用寄存器當(dāng)前值、控制寄存器、浮點寄存器等。當(dāng)前活動,或控制PSW,被稱為當(dāng)前PSW。其管轄當(dāng)前正在執(zhí)行的程序。計算機處理器具有中斷能力,其允許計算機處理器響應(yīng)于例外條件和外部刺激而上下文快速切換到另一個程序。當(dāng)出現(xiàn)中斷時,對于特定類別的中斷,計算機處理器將當(dāng)前PSW置于所分配的存儲位置,該位置被稱為舊PSW位置。計算機處理器從第二分配的存儲位置讀取新的PSW。這個新的上下文確定要執(zhí)行的下一程序。在一個實施例中,這些存儲單元被設(shè)在計算機處理器可訪問的存儲器位置。當(dāng)計算機處理器已經(jīng)完成對中斷的處理時,處理中斷的程序可以重新加載包括舊PSW的舊上下文,使其再次成為當(dāng)前PSW,使得被中斷的程序可以繼續(xù)。PSW的字段可以明確地(例如,當(dāng)指令執(zhí)行讀取部分PSW位)或隱含地(例如,在取指令、取操作數(shù)、地址生成計算、地址生成源等時)被引用。通常進行的明確引用在執(zhí)行時進行,而隱式引用通常指令執(zhí)行(即,取指令、指令解碼、執(zhí)行時間以及完成時間)期間在流水線的不同階段進行。PSW中的各個字段可以彼此獨立地被引用或更新。在一個實施例中,通過操縱上下文,操作系統(tǒng)控制計算機的處理資源,包括由計算機處理器啟用運行時間檢測。在操作系統(tǒng)執(zhí)行期間,由操作系統(tǒng)執(zhí)行的任何軟件應(yīng)用啟用或禁用所述運行時間檢測。運行時間檢測的啟用/禁用狀態(tài)被保存為PSW中的與程序關(guān)聯(lián)的上下文信息。運行時間檢測(RI)設(shè)施可以結(jié)合在實現(xiàn)z/Architecture的型號上。當(dāng)RI設(shè)施被安裝和啟用時,在程序執(zhí)行過程中數(shù)據(jù)被收集到CPU內(nèi)的一個或多個收集緩沖器,然后被報告給程序緩沖器。所存儲的每個單元信息被稱為一個報告群組。一個報告群組的內(nèi)容包括多條記錄,其內(nèi)容表示在程序執(zhí)行期間由CPU確認(rèn)的事件。當(dāng)運行時間檢測設(shè)施安裝在配置中時,PSW字段(RI位)啟用運行時間檢測。運行時間檢測控制的有效性判定接通RI位的能力,但是,當(dāng)RI為1時,CPU控制是有效的并且運行時間檢測被啟用。運行時間檢測設(shè)施可以包括以下指令:負(fù)載運行時間檢測控制、修改運行時間檢測控制、運行時間檢測發(fā)射、運行時間檢測的下一個、運行時間檢測關(guān)閉、運行時間檢測開啟、存儲運行時間檢測控制以及測試運行時間檢測控制。負(fù)載運行時間檢測控制(LRIC)指令對管轄運行時間檢測的運行時間檢測控制進行初始化。修改運行時間檢測控制(MRIC)指令修改最初由LRIC建立的所有運行時間檢測控制或運行時間檢測控制的子集。運行時間檢測發(fā)射(RIEMIT)指令通過將通用寄存器的值存儲到收集緩沖器中來收集通用寄存器的值。運行時間檢測的下一個(RINEXT)指令執(zhí)行RINEXT后的下一個順序指令(NSI)的定向采樣。運行時間檢測關(guān)閉(RIOFF)指令禁用運行時間檢測。運行時間檢測開啟(RION)指令啟用運行時間檢測。存儲運行時間檢測控制(STRIC)指令將運行時間檢測控制的當(dāng)前值放置到指定存儲位置。測試運行時間檢測控制(TRIC)指令檢查運行時間檢測控制。如果有效,則設(shè)置控制改變指示燈的狀態(tài)。運行時間檢測設(shè)施包括用于使得測量警報外部中斷待決的能力。由運行時間檢測收集并被報告給程序緩沖器的一些信息是依賴于型號,并因此沒有定義。由運行時間檢測設(shè)施提供的采樣和數(shù)據(jù)是用于性能特征的統(tǒng)計估計、基本上是準(zhǔn)確的、并且可能不是可重復(fù)的。例如,不管采樣模式如何,引發(fā)了例外或與某些系統(tǒng)內(nèi)部活動相關(guān)聯(lián)的采樣指令是否會導(dǎo)致報告群組的存儲,以及如果被存儲,包括在運行時間檢測的數(shù)據(jù)中的依賴型號的數(shù)據(jù)是否會受到影響,這是不可預(yù)測的。收集緩沖器用于捕獲一組記錄,其內(nèi)容報告在程序執(zhí)行期間由處理器確認(rèn)的事件。實例是:執(zhí)行一個或多個所選取的分支、事項(transaction)執(zhí)行中止事件、以及RIEMIT指令的操作數(shù)。RIEMIT指令的執(zhí)行通過將通用寄存器的值存儲到收集緩沖器來收集通用寄存器的值。附加數(shù)據(jù)可以被收集和/或存儲在其它緩沖器,諸如指令-數(shù)據(jù)緩沖器。報告受制于報告控制。當(dāng)采樣指令被識別時,每個報告控制開啟對相應(yīng)條件的檢查。如果相應(yīng)的條件存在,則形成并存儲報告群組。沒有開啟報告控制或不存在用于已開啟報告控制的相應(yīng)條件,則不存儲報告群組。關(guān)于樣本指令所報告的數(shù)據(jù)從指令-數(shù)據(jù)緩沖器和其他依賴型號的源獲得,并且隨后用來創(chuàng)建該報告群組的一條或多條記錄的內(nèi)容,一條這樣的記錄就是一條指令記錄??稍趫蟾嫒航M存儲中獲取的記錄類型包括:填充符、附加、開頭、時間戳、指令、發(fā)射、TX中止、調(diào)用、返回以及轉(zhuǎn)移。在收集緩沖器中有效記錄的數(shù)量不足以填滿當(dāng)前報告-群組的尺寸的報告群組時,在報告群組中使用填充符記錄??稍趫蟾嫒航M的附加部分使用附加記錄。開頭記錄是第一個報告群組的第一個記錄。時間戳記錄被存儲為除第一個報告群組之外的每個報告群組的記錄0。在針對樣本指令報告群組被存儲為報告群組的最后一個記錄時創(chuàng)建指令記錄。發(fā)射記錄由于RIEMIT的成功執(zhí)行而被創(chuàng)建。事項(transaction-execution)-執(zhí)行(TX)模式中止記錄由隱含中止或執(zhí)行事項中止指令而被創(chuàng)建。調(diào)用記錄由于被歸類為調(diào)用類型分支指令的分支指令的執(zhí)行而被創(chuàng)建。返回記錄由于被歸類為返回指令的返回型分支指令的執(zhí)行而被創(chuàng)建。轉(zhuǎn)移記錄由于滿足一定條件碼規(guī)則的分支指令的執(zhí)行被創(chuàng)建。圖5描述了用于可在實施中實現(xiàn)的處理器的運行時間檢測的系統(tǒng)的示意圖。在實施例中,系統(tǒng)500包括中央處理單元(CPU),諸如圖1的處理器106。在實施例中,處理器106是單一的處理器。在替代實施例中,處理器106是多核處理器的單一處理核。在一個實施例中,處理器106能夠以不同的速度運行。在一個實施例中,處理器106還包括寄存器510。寄存器510是硬件寄存器,其能夠存儲由處理器106使用的數(shù)據(jù)字。寄存器510包括一個或多個鎖存器,其用于存儲可由處理器106訪問數(shù)據(jù)位。寄存器510可包括例如通用寄存器和控制寄存器。處理器106還包括與寄存器510通信的檢測模塊506。該檢測模塊506控制處理器106的檢測。該檢測模塊506被配置為直接從處理器106收集檢測數(shù)據(jù),諸如一個或多個所選取分支的執(zhí)行路徑、事務(wù)-執(zhí)行中止事件、各種運行時間操作數(shù)、時間戳信息等等。檢測模塊506從處理器106收集檢測數(shù)據(jù),并在收集緩沖器508中存儲該檢測數(shù)據(jù)。在一個實施例中,收集緩沖器508是循環(huán)(circular)緩沖器,其收集從該檢測模塊506接收到的數(shù)據(jù),并當(dāng)所述循環(huán)緩沖器被填滿時,其采用新數(shù)據(jù)覆寫最老數(shù)據(jù)。處理器106執(zhí)行一個或多個操作系統(tǒng)516和一個或多個應(yīng)用518。所述一個或多個操作系統(tǒng)516和一個或多個應(yīng)用518存儲在諸如硬盤驅(qū)動器、CD/ROM、閃存等的存儲器520中,并且被加載到保留用于存儲當(dāng)前正在執(zhí)行的操作系統(tǒng)和/或應(yīng)用的一個或多個有效片段的運行時間存儲器504區(qū)域中的主存儲器514,被調(diào)用頁,其根據(jù)需要從所述存儲520被加載到運行時間存儲器504。在一個實施例中,每個操作系統(tǒng)作為由管理程序(未示出)管理并且由處理器106執(zhí)行的虛擬機來執(zhí)行。在一個實施例中,處理器106根據(jù)用于當(dāng)前正在執(zhí)行的操作系統(tǒng)或應(yīng)用主存儲器514中的PSW數(shù)據(jù)512在寄存器510中加載PSW,并在例如寄存器510中設(shè)置一個或多個處理器的設(shè)置值。在一個實施例中,寄存器510中的PSW包括用于啟用并控制檢測模塊506的一個或多個位。所述一個或多個應(yīng)用518包括被編譯為在具體操作系統(tǒng)上執(zhí)行的軟件應(yīng)用程序、在解釋器(例如,JavaTM)上執(zhí)行的解釋代碼、或者操作系統(tǒng)支持線程(例如,進程管理、端口監(jiān)督程序等)。所述一個或多個操作系統(tǒng)516和/或所述一個或多個應(yīng)用程序518的每一個可以執(zhí)行指令以觸發(fā)該檢測模塊506來啟動或停止所述收集檢測數(shù)據(jù)。在一個實施例中,所述一個或多個應(yīng)用程序518中的一個執(zhí)行已確定為采樣指令的指令,從而在完成樣本指令的執(zhí)行時創(chuàng)建采樣點,并且然后使檢測模塊506來將所述應(yīng)用的所收集的數(shù)據(jù)從收集緩沖器508移動到該應(yīng)用可以訪問的主存儲器514中的程序緩沖器522。主存儲器514可以是現(xiàn)有技術(shù)中公知的任何可尋址存儲器。在一個實施例中,主存儲器514可以包括快速存取緩沖存儲器,有時也被稱為高速緩沖器。每個CPU可以具有相關(guān)的高速緩沖器。在另一個實施例中,主存儲器514是動態(tài)隨機存取存儲器(DRAM)。在另一個實施例中,主存儲器是存儲設(shè)備,諸如計算機硬盤驅(qū)動器、或者可由應(yīng)用訪問的閃存。圖6描述了實施例中用于加載和存儲運行時間檢測控制控制塊(RICCB)的系統(tǒng)。在一個實施例中,處理器106的檢測模塊506使用例如LRIC指令加載RICCB602。該RICCB602包括用于配置運行時間檢測控制的控制。檢測模塊506從主存儲器514加載RICBB602,并且將RICCB控制值設(shè)置到寄存器510中的適當(dāng)?shù)奈恢?。在一個實施例中,所有RICCB602或其子集可以由較低的特權(quán)狀態(tài)程序通過MRIC指令加載。一旦RICCB602已經(jīng)被加載,處理器106就正常執(zhí)行指令。當(dāng)處理器106執(zhí)行指令時,檢測模塊506和/或處理器106修改處理器內(nèi)的設(shè)置值,并因此使得處理器控制與主存儲器514中的RICCB02同步。在一個實施例中,當(dāng)運行時間檢測控制被修改時,所述控制中的A位被設(shè)置為1,以便指示該運行時間檢測控制已經(jīng)被修改。在另外一個實施例中,當(dāng)MRIC指令已經(jīng)被成功執(zhí)行時,該A位被設(shè)置為1。在一個實施例中,A位只通過LRIC指令的成功執(zhí)行被設(shè)置為0。在一個實施例中,如下面將更詳細(xì)描述的,當(dāng)處理器106改變上下文時,基于條件代碼集為TRIC指令,該運行時間檢測被復(fù)制到RICCB602。圖7描述了實施例中運行時間控制控制塊(RICCB)的一部分,其包括可由特權(quán)狀態(tài)設(shè)置的控制??刂茐K部分700可以包括除了參照圖7所描述的值之外的附加值。對控制塊部分700的修改可以由LRIC指令來進行。所述控制塊部分包括有效性位702(V位)。該有效性位702指示所述處理器中的一組運行時間檢測控制的有效性,因為它們是預(yù)先由LRIC指令集設(shè)置。所述控制塊還包括S位704,其被用于確定較小的特權(quán)狀態(tài)程序是否被容許執(zhí)行MRIC指令。所述K位706指示針對運行時間檢測控制,諸如運行時間檢測控制的原始地址以及限制地址,較小的特權(quán)狀態(tài)程序是否被允許在半特權(quán)狀態(tài)下執(zhí)行。H位708確定所述地址控制(即原始地址、限制地址、當(dāng)前地址)是否是指主虛擬地址空間或家庭(home)虛擬地址空間??刂聘淖兾?10(A位)表示所述控制從它們被LRIC指令加載開始是否已經(jīng)被改變。其僅因為在條件代碼0下完成的LRIC指令而被隱含設(shè)置為0,并且不因為RICCB中的比特位置的對應(yīng)內(nèi)容而被設(shè)置。其僅因為對運行時間檢測控制的任何隨后的更新而被隱含設(shè)置為1,所述更新包括由于啟用的運行時間執(zhí)行或MRIC指令的成功執(zhí)行而導(dǎo)致的任何更新。如后面將更詳細(xì)描述的那樣通過TRIC指令的執(zhí)行而被測試。問題狀態(tài)的采樣報告控制位712(Ps位)用于與較小的特權(quán)狀態(tài)程序相結(jié)合。當(dāng)在較小的特權(quán)狀態(tài)且在運行時間檢測控制中的Ps位712為零時,運行時間檢測控制的報告控制在運行時間檢測被啟用時被忽略,并因而不會導(dǎo)致將被存儲的報告群組。當(dāng)在較小的特權(quán)狀態(tài)下且運行時間檢測控制中的Ps位712是一時,該報告控制根據(jù)其定義的功能被校驗和使用。管理程序(supervisor)-狀態(tài)采樣報告控制位714(Qs位)用于與管理狀態(tài)程序結(jié)合使用。當(dāng)在管理狀態(tài)和運行時間檢測控制中的Qs位714為零時,且在運行時間檢測控制中的Qs位714為零時,運行時間檢測控制的報告控制在運行時間檢測被啟用時被忽略,并因而不會導(dǎo)致將被存儲的報告群組。當(dāng)在管理狀態(tài)下且運行時間檢測控制中的Qs位714是一時,該報告控制根據(jù)其定義的功能被校驗和使用。較小的特權(quán)狀態(tài)收集緩沖器控制位716(Pc位)控制更新圖5的收集緩沖器508。當(dāng)在較低特權(quán)的狀態(tài)和運行時間檢測控制中的Pc位716為零時,運行時間檢測控制的收集緩沖器控制在運行時間檢測被啟用時被忽略,并且收集緩沖器508的更新被阻止。當(dāng)在較小的特權(quán)狀態(tài),并運行時間檢測控制中的Pc位716是1時,收集緩沖器控制根據(jù)其定義的功能被檢查和使用。管理狀態(tài)集合緩沖器控制位718(Qc位)控制更新收集緩沖器508。當(dāng)在管理狀態(tài)和運行時間檢測控制中的Qc位718是零,運行時間檢測控制的收集緩沖器控制在運行時間檢測被啟用時被忽略,并且防止更新收集緩沖器508。當(dāng)在管理態(tài)和運行時間檢測控制中的Qc位718是1時,則所指示的收集緩沖器控制是根據(jù)其定義的功能被檢查和使用。G位720是運行時間檢測暫停中斷的待決控制,也稱為暫停中斷。如果G位720為零,暫停中斷未待決。如果G位702為一,暫停中斷待決。當(dāng)程序緩沖器522中的第一個報告群組被寫入時,G位720被設(shè)置為零。也就是說,當(dāng)程序緩沖器的起始地址等于該程序緩沖器的限制地址時,G位720被設(shè)置為零。當(dāng)試圖存儲程序緩沖器522的其他報告群組而不是第一個報告群組時,如果在運行時間檢測停止條件不存在,則G位720被設(shè)置為零,并且存儲報告群組。當(dāng)試圖存儲程序緩沖器522的其他報告群組而不是第一個報告群組時,如果在運行時間檢測停止條件確實存在,G位720被設(shè)置為1,并且不存儲報告群組。U位722是用于緩沖器充滿中斷和停止中斷的啟用控制。當(dāng)U位722為零,中斷請求的生成被禁用,并且如果待決,則保持待決。L比特724是緩沖器充滿中斷的待決控制。當(dāng)L位724是零,則緩沖器充滿中斷未待決。當(dāng)L位724是一,則緩沖器充滿中斷正待決。密鑰字段726是一個4位無符號整數(shù),其值被用作用于存儲報告群組的存儲保護字段。僅在存儲密鑰和用于存儲訪問的請求相關(guān)聯(lián)的訪問密鑰相匹配時報告群組的存儲被允許,并且在存儲密鑰的訪問密鑰匹配或當(dāng)存儲密鑰的取回保護為零時提取被允許。存儲密鑰的四個訪問控制位等于訪問密鑰或當(dāng)訪問密鑰是零時密鑰匹配。圖8描繪了實施例中測試運行時間檢測控制(TRIC)指令的處理流程。在實施例中,圖8的處理流程由圖5的檢測模塊506執(zhí)行。在框802處,由處理器提取TRIC指令。在框804出,所提取的TRIC指令被執(zhí)行。在框806處,確定TRIC是否被啟用。在一個實施例中,如果所述控制是有效的,則所述TRIC指令被啟用。在另一個實施例中,如果執(zhí)行TRIC指令的請求根據(jù)具有適當(dāng)許可的狀態(tài)被執(zhí)行以便執(zhí)行TRIC指令,則TRIC指令被啟用。在框808處,如果TRIC被啟用,則設(shè)置條件代碼。圖9描繪了實施例中的測試運行時間檢測控制(TRIC)指令的處理流程。在實施例中,圖9的處理流程由圖5的檢測模塊506執(zhí)行。在框902處,處理器接收指令以便執(zhí)行TRIC指令。在框904處確定請求是否來自較小的特權(quán)狀態(tài)程序。在一個實施例中,TRIC指令由較小的特權(quán)狀態(tài)程序執(zhí)行,以便確定運行時間檢測控制是否已經(jīng)改變。在另一個實施例中,在上下文切換之前由處理器執(zhí)行TRIC指令以便確定所述STRIC指令是否應(yīng)該被執(zhí)行以便將運行時間檢測控制復(fù)制到主存儲器514.如果請求不是來自較小的特權(quán)狀態(tài)程序(即,請求來自特權(quán)狀態(tài)程序),則在框906處,執(zhí)行TRIC指令。在框908處,確定運行時間檢測控制是否有效。如果運行時間檢測控制的圖7的V位702為1,則運行時間檢測控制有效。如果運行時間檢測控制有效,則在框910處,確定運行時間檢測控制是否已經(jīng)改變。如果A位719被設(shè)置為1,則運行時間檢測控制改變。如果運行時間檢測控制還沒有改變(即,A位710為0),則在框912處,運行時間檢測控制的條件代碼被設(shè)置為1。條件代碼在被加載在圖5的寄存器510中的PSW中設(shè)置。返回到框910,如果運行時間檢測控制還沒有改變,則在框914處,條件代碼被設(shè)置為0。返回框908,如果運行時間檢測控制無效,則條件代碼被設(shè)置為3。返回到框904,如果執(zhí)行TRIC指令的請求來自較小的特權(quán)狀態(tài)程序,則在框918處,確定TRIC指令是否必須來自特權(quán)狀態(tài)程序。在一個實施例中,如果運行時間檢測控制的S位被設(shè)置為0,則TRIC指令必須來自特權(quán)狀態(tài)。返回框919,如果特權(quán)狀態(tài)執(zhí)行不需要,則處理在框906處繼續(xù),如上所述?;蛘?,如果條件代碼被設(shè)置為2,則處理在框920處繼續(xù)。在一個實施例中,如此處所描述的,條件代碼在當(dāng)前上下文的程序狀態(tài)字(PSW)中被設(shè)置。在另一個實施例中,條件代碼可以設(shè)置在處理器106的條件代碼寄存器、處理器106上的鎖存器、主存儲器514或本領(lǐng)域所公知的其它位置中。圖10描繪了在半特權(quán)模式(即,K比特為1)下允許MRIC執(zhí)行時的RICCB控制塊一部分??刂颇K1000可以包括除了參照圖10描述的值之外的附加值。在一個實施例中,MRIC指令操作數(shù)中的任何灰暈(grayedout)部分是不可由較小的特權(quán)狀態(tài)程序訪問的。當(dāng)允許半特權(quán)模式時,原始地址(ROA)1002和限制地址1004采用MRIC指令由較小權(quán)限的狀態(tài)程序設(shè)置。在一個實施例中,當(dāng)前地址字段(RCA)1006可能由MRIC指令更新。當(dāng)前地址字段1006檢查報告群組尺寸字段1044(RGS字段),并影響用于形成程序緩沖器的地址有效位位置的數(shù)目。64位運行時間檢測程序緩沖器當(dāng)前地址是字0、字1的位的位置0到26-RGS、以及在右側(cè)附加的RGS+5二進制零。這是將被存儲在程序緩沖器522中的隨后的報告群組的圖5的程序緩沖器522的起始位置。報告群組是由檢測模塊506創(chuàng)建的并且隨后被存儲在程序緩沖器522的信息的單元。在一個實施例中,當(dāng)由所述當(dāng)前地址字段1006指定的RGS字段1044不等于所述運行時間檢測控制的當(dāng)前報告群組的尺寸(即在當(dāng)前地址字段1006將改變RGS字段1044)時,那么在當(dāng)前地址字段1006被設(shè)置為原始地址1002。剩余的采樣間隔計數(shù)字段1042(RSIC字段)可以使用MRIC指令由較低特權(quán)程序更新。該RSIC字段1042包括64位的無符號整數(shù),其表示剩余的采樣間隔計數(shù)。當(dāng)運行時間檢測控制的RSIC字段1042的值為零或等于比例因子字段1040(SF字段)中的值并且運行時間檢測被啟用時,那么下一個采樣間隔為基于采樣模式字段1008(M字段)和SF字段1040值的完整間隔。當(dāng)RSIC字段1042非零且小于SF字段1040并且運行時間檢測被啟用時,下一采樣間隔為部分間隔。當(dāng)RSIC字段1042是非零且大于SF字段1040的值并且運行時間檢測被啟用時,下一個采樣間隔為擴展間隔。當(dāng)一展的時間隔到期時,則下一個時間隔基于SF字段1040的值。當(dāng)RSIC字段1042設(shè)置為非零值時,它受制于同一依賴型號的最大限制,SF字段1040也是受制于該限制。當(dāng)RSIC字段1042的初始值是零,采樣模式將指定在LRIC和MRIC指令的執(zhí)行期間RSIC字段1042是否被設(shè)定為SF字段1040中的值,或者其是否繼續(xù)顯示為零直到運行時間檢測被啟用為止。SF字段1040包含64位的無符號整數(shù),其值是比例因子計數(shù)個單位。單位的尺寸根據(jù)采樣模式字段1008(M字段)來確定。當(dāng)RSIC字段1042中的值為零,則SF字段1040提供RSIC字段1042的初始值,該初始值被遞減到零,在此時,當(dāng)前指令被識別為采樣指令,并且該間隔計數(shù)根據(jù)SF字段1040的值被刷新。SF字段1040的有效值的范圍是從1到264-1。如果被指定為零,則假定為一的值。然而,每個型號可以具有SF字段1040的最小和最大值兩者。最小值和最大值基于采樣模式字段1008可以不同。如果指定小于最小值的值,則依賴型號的最小值被加載。如果指定大于最大值的值,則依賴型號的最大值被加載。DC控制字段1036是4位無符號整數(shù),其值指定了與數(shù)據(jù)讀取或存儲高速緩沖器未中關(guān)聯(lián)的高速緩沖器延遲級別。也就是說,采樣指令遇到了數(shù)據(jù)訪問高速緩沖器未中。除非被其他運行時間檢測控制禁止,嘗試存儲表示采樣指令的報告群組,其數(shù)據(jù)訪問識別了在數(shù)值上大于或等于由DC控制字段1036的值指定的級別的高速緩沖器延遲級別處的未中。用于數(shù)據(jù)訪問的高速緩沖器的結(jié)構(gòu)和高速緩沖器延遲級別是依賴型號的。對于具有多個或長的操作數(shù)的指令而言,其是依賴型號的,如果有的話,操作數(shù)訪問用于報告控制。依賴型號的行為可能會忽略DC控制字段1036的值,并因此不將其作為存儲報告群組的理由。IC字段1034是4位無符號整數(shù),其值指定與取指令緩沖器未中相關(guān)聯(lián)的高速緩沖器延遲級別。也就是說,采樣指令的讀取遇到取指令緩沖器未中。對于IC字段1034和DC控制字段1036兩者,高速緩沖器延遲級別為高速緩沖器級別訪問離觀察處理器有多遠(yuǎn)的一種抽象。該延遲級別依賴于處理器和主存儲器之間的嵌套高速緩沖器級別的數(shù)量以及這樣的高速緩沖器級別如何在多個處理器之間共享的組合。較大的延遲級別通常對應(yīng)于更費時訪問。IC字段1034和DC控制字段1036中的值可以被認(rèn)為是高速緩沖器延時級別的零原點標(biāo)識(identification)。例如,零值對應(yīng)的L1高速緩沖器(即,最靠近處理器的高速緩沖器)。因此,值1是高速緩沖器的下一層,其被稱為L2高速緩沖器,或者在一些機器中甚至為L1.5高速緩沖器。值2-15指代附加高速緩沖器延遲層的邏輯級數(shù)(progression),直到達(dá)到主存儲器為止,但不包括主存儲器本身。一般情況下,高速緩沖器的結(jié)構(gòu)不會深達(dá)15層。因此,IC字段1034和DC控制字段1036中的值15被解釋為特殊情況,這意味著,不管高速緩沖器延遲級別如何,為了生成報告群組的存儲,關(guān)于指令讀取或數(shù)據(jù)訪問的高速緩沖器未中分別沒有被識別。除非其他運行時間檢測控制被禁止,嘗試存儲表示采樣指令的報告群組,其取指令識別了在數(shù)值上大于或等于由DC字段1034的值指定的級別的高速緩沖器延遲級別處的未中。用于取指令的高速緩沖器的結(jié)構(gòu)和高速緩沖器延遲級別是依賴型號的。依賴型號的行為可能會忽略DC字段1034的值,并因此不將其作為存儲報告群組的理由。高速緩沖器延遲級別超越報告控制位1032(F位)用于非分支指令和分支預(yù)測控制。當(dāng)運行時間檢測控制中的F位1032為零時,運行時間檢測控制的超高速緩沖器報告控制(IC字段1034和DC控制字段1036)根據(jù)其定義的功能被檢查和使用。運行時間檢測控制的分支預(yù)測控制(BPxn1022、BPxt1024、BPTI1026以及BPni1028位)根據(jù)其定義的功能被檢查和使用。當(dāng)F位1032為一時,除非被其他控制禁止,這些相同的控制被忽略并且報告群組被存儲。數(shù)據(jù)高速緩沖器未中控制位1030(D位)表示報道群組是否將被存儲。如果D位1030是1,額外類型的記錄可以或不可以被置于報告群組的額外部分,其包含關(guān)于相同指令的依賴型號數(shù)據(jù)該MRIC指令包括分支預(yù)測(BP)報告控制(BPxn1022、BPxt1024、BPti1026和BPni1028)。如果運行時間檢測控制中的BP報告控制位為0,則相應(yīng)的條件不被檢測。如果BP報告控制位為1并且相應(yīng)的分支預(yù)測條件存在,則存儲報告群組。當(dāng)BPxn位1022為一時,其啟動分支預(yù)測信息的檢查(check)。因此,如果采樣分支被不正確地預(yù)測將被采取,但又沒有被采取,則報告群組被存儲。當(dāng)BPxt位1024為一時,其啟動所述分支預(yù)測信息的檢驗。因此,如果采樣分支被不正確地預(yù)測為不被采取,但又被采取了,則報告群組被存儲。當(dāng)BPti位1026為一時,其啟動所述分支預(yù)測信息的檢驗。因此,如果采樣分支被正確預(yù)測為將被采取并且被采用,但分支目標(biāo)被不正確地預(yù)測,則報告群組被存儲。當(dāng)BPni位1028為一時,其啟動分支預(yù)測信息的檢查。因此,如果采樣分支被正確地預(yù)測為不采取,并且沒有被采取,而分支目標(biāo)被不正確預(yù)測,則報告群組被存儲。事務(wù)執(zhí)行模式記錄位1020(X位)的啟用控制控制收集事務(wù)執(zhí)行模式中止記錄。當(dāng)運行時間檢測控制中的X位1020是零,則事務(wù)執(zhí)行模中止記錄未被收集。當(dāng)X位1020是1,則事務(wù)執(zhí)行模式中止記錄被收集和放置在圖5的收集緩沖器508中。如果型號沒有安裝事務(wù)執(zhí)行設(shè)施,則X位1020被忽略。該RIEMIT指令控制位1018(E位)控制RIEMIT指令的執(zhí)行。當(dāng)運行時間檢測控制中的E位1018為零或被忽略以及在運行時間檢測被啟用時被視為零時,RIEMIT執(zhí)行空操作。當(dāng)E位1018是一并且在其他情況下不是被忽視時,RIEMIT被啟用以執(zhí)行其定義的功能。當(dāng)J位1046為零時,其指明條件(BC)指令的分支是在其他類型的分支類別中,無論掩碼值如何。如果J位1046是一,則指明掩碼15的BC指令處于返回型分支類別。當(dāng)BC指令指定掩碼1-14,其不受J位1046的影響并且總是在其它類型的分支類別中。當(dāng)在返回型分支類別中時,R位1016控制夾雜物(inclusion)進入圖5的收集緩沖器508。當(dāng)在其它類型的分支類別時,B位1048控制夾雜物進入收集緩沖器508。其他類型的分支類別也可以表示為轉(zhuǎn)移型分支類別。該指令地址碼位1014(C位)控制調(diào)用類型分支的啟用。如果運行時間檢測控制中的C位1014是一并且指令為調(diào)用類型分支,則收集緩沖器被更新。如果調(diào)用類型和返回型分支兩者的型號依賴性檢測被組合,則C位1014對這兩個類型進行操作并且R位1016是無效的。R位1016為返回類型分支的啟用控制。如果運行時間檢測控制中R位1016為一并且該指令是返回型分支,則將收集緩沖器508被更新。B位1048是除了調(diào)用類型和返回型分支之外的分支的啟用控制。如果運行時間檢測控制中的B位1048是一并且指令是由運行時間檢測識別的其他類型的分支,那么收集緩沖器508被更新。如果最大地址超出位1012(MAE位)被設(shè)定為1,其表示一個或多個具有被設(shè)置為1的指令地址碼(C字段)的報告群組已經(jīng)被存儲。一旦MAE1012位被設(shè)置為1,運行時間檢測的繼續(xù)執(zhí)行并不將其設(shè)置回零。規(guī)定MAE位為0的LRIC指令或MRIC指令的執(zhí)行將MAE位設(shè)置為零。運行時間檢測下一步(RINEXT)控制位1010(N位)控制運行時間檢測下一個指令的啟用,該下一指令控制采樣指令的執(zhí)行。當(dāng)運行時間檢測控制中的N為1010是零或被忽略以及作為零處理時,RINEXT執(zhí)行空操作。當(dāng)N位1010位一并且在其他情況下被忽略時,RINEXT被啟用執(zhí)行其定義的功能。采樣模式字段1008(M域)為4位的無符號整數(shù),其運行時間檢測控制中的值指定運行時間檢測控制的采樣模式。報告群組尺寸字段1044(RGS)是3位的無符號整數(shù),其值指定的報告群組(RRG)的記錄的數(shù)量。報告群組中的記錄的數(shù)量可以在從包括開始/時間戳記錄和指令最后一個記錄的2條記錄到高達(dá)256條記錄之間變化。在一個實施例中,該上限可以是型號依賴性的。被置入報告群組的16個字節(jié)記錄的數(shù)量是2RGS+1。主CPU能力抑制控制位1038(Y位)和次CPU能力抑制控制位1039(Z位)被統(tǒng)稱為抑制控制。報告群組的抑制意味著不執(zhí)行存儲嘗試。當(dāng)配置中的所有CPU的CPU的性能一樣時,抑制控制是無效的并且沒有抑制發(fā)生。在一種配置中,如果CPU的CPU處理能力不同于另一CPU的能力,則抑制控制生效,并且至少一個CPU被稱之為將在所述CPU能力或主CPU能力下運行,同時至少一個其它CPU被稱之為在所述次CPU能力下運行。主和次CPU能力為不同運行速度。當(dāng)Y位1038和Z位1039兩者均為零,則抑制不會發(fā)生。當(dāng)Y位1038是零而Z位1039是1時,如果CPU,例如,處理器106,運行在次級CPU能力下,則抑制發(fā)生。當(dāng)Y位1038是一而Z位1039是零,如果CPU,比如處理器106,運行在主CPU能力下,則抑制發(fā)生。當(dāng)Y位1038而Z位1039兩者都為一,則抑制發(fā)生。圖10的上述字段和位都是字段的命名和放置的例子,并為清楚起見提供在此。應(yīng)當(dāng)理解的是,在其他實施例中可以僅僅使用這些字段的一個子集,字段可以是任何順序或位置,和/或可以通過不同的名稱來指代。如先前所描述的,當(dāng)運行時間檢測程序執(zhí)行期間被啟用,則在處理器106內(nèi)運行時間檢測數(shù)據(jù)被收集在收集緩沖器508中。在一個實施例中,收集緩沖器508是用來保存所收集的最新記錄的處理器106的內(nèi)部緩沖器。當(dāng)檢測到采樣觸發(fā)點時,作為被寫入到程序緩沖器522的報告群組的一部分,記錄從收集緩沖器508復(fù)制到程序緩沖器522。在一個實施例中,記錄以非破壞性的方式從收集緩沖器508中復(fù)制。收集緩沖器508可以被稱為“硬件收集緩沖器”,因為該收集緩沖器508位于處理器內(nèi)并且和在實施例中被實現(xiàn)為寄存器對的陣列,用于存儲給定事件的指令地址和事件元數(shù)據(jù)。事件的一個例子是所采取分支,寄存器對可為其保持該分支的指令地址,并且元數(shù)據(jù)可為其保持分支目標(biāo)和關(guān)于該分支的歷史行為的信息。在一個實施例中,隨著事件在所述指令流中的發(fā)生,寄存器對被排序并被順序地更新。計數(shù)器被保持以指示在所述陣列中的最近更新的條目的索引。在一個實施例中,收集緩沖器508是環(huán)形緩沖器,并且當(dāng)收集緩沖器508充滿時,下一個事件覆寫在所述陣列中的第一條目,并且所述陣列的寄存器對的順序更新重啟隨后事件。因此,假設(shè)有陣列CB[0]到CB[N-1]并且計數(shù)器i表示最近更新的索引,所捕獲事件的跟蹤將由序列CB[I]、CB[I-1]…CB[1]、CB[0]、CB[N-1]、CB[N-2]...CB[I+1]表示。在另一個實施例中,兩個指針被使用:指向緩沖器中的最舊條目的頭指針和指向緩沖器中的最新條目的尾部/當(dāng)前指針。表示在任何給定執(zhí)行點處的處理器106的狀態(tài)的事件被順序捕獲在活收集緩沖器508中。收集緩沖器508用來捕獲一組記錄,其內(nèi)容報告在程序執(zhí)行期間由處理器106確認(rèn)的事件(例如,一個或多個所采取分支的執(zhí)行、事務(wù)-執(zhí)行中止的事件、RIEMIT指令的操作數(shù)等)。在一個實施例中,所確認(rèn)的事件依賴于圖10中所示的RICCB的內(nèi)容。所示的收集緩沖器508的實施例中的條目包括事件指令地址和其他相關(guān)事件的元數(shù)據(jù)。事件的元數(shù)據(jù)的例子包括,但不限于:所采取的分支的指令地址和其包括有關(guān)分支的歷史行為的某些信息的目標(biāo)、RIEMIT指令的指令地址和相應(yīng)的寄存器值、以及事務(wù)中止指令的地址和相應(yīng)事務(wù)恢復(fù)輸入點。收集緩沖器508的實施例存儲多達(dá)32個條目(即,關(guān)于32個事件的信息),其中每個指令地址由六十四個位(例如,位0:63)指定,而事件元數(shù)據(jù)由六十四個位(例如,位64:127)指定。收集緩沖器(RCB)的尺寸是因型號而異的,該尺寸代表了紀(jì)錄的數(shù)量。在一個實施例中,收集緩沖器508的字節(jié)長度是16字節(jié)的記錄大小的倍數(shù)。收集緩沖器(RCB)的尺寸為大于或等于該型號的最大報告群組(RRG)的計數(shù)和不是從收集緩沖器(RNC)獲得的報告群組中的記錄的計數(shù)之間的差值的一些記錄的個數(shù)。因此,在一個實施例中,收集緩沖器的尺寸被表示為:RCB≥(RRG-RNC)在一個實施例中,收集緩沖器508和指令-數(shù)據(jù)緩沖器(如果使用一個的話)的內(nèi)容被清除(purge)或者以其他方式受以下事件的影響:(1)中斷;(2)開啟和關(guān)閉運行時間檢測設(shè)施的PSW位(例如,24位)從一變化到零:以及(3)當(dāng)采樣指令在運行時間檢測設(shè)施處于事務(wù)執(zhí)行模式時被識別時(在這種情況下,在事務(wù)結(jié)束時收集數(shù)據(jù)緩沖器508和指令-數(shù)據(jù)緩沖器的進一步更新停止和恢復(fù),此時,報告群組的存儲暫停并且收集緩沖器508和指令-數(shù)據(jù)緩沖器被清除)。在一個實施例中,諸如圖1B中所示的仿真主計算機系統(tǒng),使用的寄存器和/或存儲器來實現(xiàn)收集緩沖器508。在本實施例中,如果存在的話,也可使用寄存器和/或存儲器來實現(xiàn)可選的指令-數(shù)據(jù)緩沖器。在實施例中,附加功能可以實現(xiàn)數(shù)據(jù)收集,并且可以被視為提供額外的數(shù)據(jù)收集點,而基本上不擾亂先前描述的常規(guī)指令計數(shù)或循環(huán)計數(shù)采樣。這些措施包括執(zhí)行RIEMIT指令,它通過將其存儲到收集緩沖器508中來收集通用寄存器的值。此外,先前描述的運行時間檢測控制中的數(shù)據(jù)收集控制位可以被用于定制所收集的數(shù)據(jù)的類型(例如,E、C、R和B的控制位)。在這種方式中,所收集的數(shù)據(jù)類型是可編程的。在一個實施例中,指令-數(shù)據(jù)緩沖器被實現(xiàn)以收集依賴模型的采樣指令數(shù)據(jù),其用于構(gòu)造運行時間檢測指令記錄。在指令被識別為采樣指令時,指令-數(shù)據(jù)緩沖器從預(yù)期可用的指令中收集數(shù)據(jù)。在一個實施例中,指令-數(shù)據(jù)緩沖器是所述處理器中的硬件緩沖/存儲位置,其中保存關(guān)于將成為作為采樣點的觸發(fā)的指令的信息,使得在退出過程中,它可以與來自收集數(shù)據(jù)緩沖器508的數(shù)據(jù)一起被寫出。類似于收集緩沖器508,它包括指令地址以及與該指令相關(guān)聯(lián)的元數(shù)據(jù)。指令中-數(shù)據(jù)緩沖器中的元數(shù)據(jù)通常是依賴于機器的,并且可以包括,但不限于:有關(guān)高速緩沖器未中的信息以及相關(guān)分支預(yù)測的信息。按照實施例,收集的其他數(shù)據(jù)可能不是來自于收集緩沖器508以及不來自從指令-數(shù)據(jù)緩沖器。例子包括用于形成以下部分的數(shù)據(jù):(1)報告群組的第一條記錄:時間戳或開始記錄;以及(2)附加類型的記錄可以為每個報告群組創(chuàng)建,并因而沒有被存儲在收集緩沖器508中,這樣的記錄,如果存在的話,可以放置在報告群組的額外的或依賴機器的部分。這些記錄在本文中稱為“系統(tǒng)信息記錄”。圖11示出在采樣點存儲在程序緩沖器522的報告群組1100的高級別例子。記錄中的報告群組的尺寸由RRG表示,等于2(RGS+1),其中RGS作為指數(shù),是報告群組的尺寸。從除了收集緩沖器508之外的位置復(fù)制的記錄的依賴型號的數(shù)量(RNC)在報告群組中被使用時可以或可以不被非破壞性地復(fù)制。在圖11的例子中,RRG=8、RGS=2、以及RNC=4。圖11中所示的示例報告群組1100包括:頭標(biāo)部分1102、主體部分1104、額外記錄部分1106以及頁腳(footer)部分1108。頭標(biāo)部分1102可以包括開始記錄或時間戳記錄以便保存狀態(tài)、跟蹤、和/或定時信息。開始記錄被存儲用于存儲在程序緩沖器中的第一報告群組的頭標(biāo)部分1102(也就是,當(dāng)RCA1006等于ROA1002)。在一個實施例中,所述開始記錄包括:“02”的記錄類型字段、用于指示當(dāng)前有多少報告群組存儲在程序緩沖器中的多個報告群組(NRG)字段、用于指示報告群組的大小的RGS字段、用于指示該程序緩沖器522是否已滿的停止(S)字段、用于指示運行時間檢測是否停止的暫停(H)字段、以及用于指示何時寫入開始記錄的計時(TOD)時鐘字段。在一個實施例中,開始記錄中的字段的至少一個子集源于RI控制塊(例如,RICCB)。時間戳記錄的實施例具有“03”記錄類型并包含用于指示所述記錄何時被存儲的TOD時鐘字段。在一個實施例中,時間戳記錄被存儲在用于除了第一報告群組以外的每個報告群組的頭標(biāo)部分1102。報告群組的主體部分1104可以包括用于事件的各種記錄和從收集緩沖器508采樣的信息。事件和信息可以代表,例如,通過發(fā)送指令、事務(wù)-執(zhí)行中止、調(diào)用、返回、分支、以及填充符所捕獲的狀態(tài)信息在一個實施例中,在成功執(zhí)行RIEMIT指令時,在收集緩沖器508中創(chuàng)建并存儲發(fā)射記錄。所述發(fā)送記錄的實施例包括:用于指示當(dāng)前PSW的指令地址位的位置如何被表示在所述發(fā)送記錄的記錄類型字段“10”、基于尋址模式(例如,64,31或24位)變化并且如果RIEMIT是執(zhí)行類型指令的目標(biāo)則包含RIEMIT指令的指令地址或執(zhí)行類型指令的指令地址字段、用于存儲來自由RIEMIT指令所指定的通用寄存器的數(shù)據(jù)的發(fā)送數(shù)據(jù)字段。在一個實施例中,事務(wù)執(zhí)行模式中止記錄通過隱含中止或事務(wù)中止指令的執(zhí)行被創(chuàng)建并且存儲在收集緩沖器508中。中止記錄的實施例包括:用于指示當(dāng)前PSW的指令地址位的位置如何被表示在所述事務(wù)-執(zhí)行中止記錄的記錄類型字段“11”、基于尋址模式(例如,64,31或24位)變化并且如果所被中止的指令是執(zhí)行類型型指令的目標(biāo)則包含所被中止的指令的指令地址或執(zhí)行類型指令的指令地址字段、與所述中止相關(guān)的任何依賴型號的數(shù)據(jù)的字段。在實施例中,調(diào)用記錄在R2字段為非零時由執(zhí)行調(diào)用類型分支指令創(chuàng)建,該指令諸如BRANCHANDSAVE(BASR)(分支并保存)(BASR)、BRANCHANDSAVE(BAS)、BRANCHRELATIVEANDSAVELONG、BRANCHRELATIVEANDSAVE、BRANCHANDLINK(BALR)、BRANCHANDLINK(BAL)、以及BRANCHANDSAVEANDSETMODE。指令地址位的位置在調(diào)用記錄中如何被表示的指令地址代碼字段、基于尋址模式(例如,64,31或24位)變化并且如果所述分支指令是執(zhí)行類型指令的目標(biāo)則包含分支指令或執(zhí)行類型指令的地址的指令地址字段、以及含有該分支目標(biāo)地址的目標(biāo)地址字段(也稱為“被調(diào)用位置”)。返回記錄和轉(zhuǎn)移記錄可具與調(diào)用記錄有相同的格式。在實施例中,返回記錄有記錄類型字段“13”,并通過在R2字段不為零且掩碼為15時執(zhí)行諸如BRANCHONCONDITION(BCR)的返回類型分支指令而創(chuàng)建。對于返回記錄,如果分支是執(zhí)行類型指令的目標(biāo)該指令地址字段包含分支指令或執(zhí)行型指令的地址,并且目標(biāo)地址字段包含返回位置。在實施例中,傳輸記錄有記錄類型字段“14”,并通過執(zhí)行返回類型分支指令被創(chuàng)建,所述指令諸如:a.在R2字段為非零和掩碼范圍為1-14時的BRANCHONCONDITION(BCR)、b.J位為零或掩碼范圍為1-14時的BRANCHONCONDITION(BC)、c.BRANCHONCOUNT(BCT,BCTR,BCTG,BCTGR)、d.BRANCHONINDEXHIGH(BXH,BXHG)、e.BXLE,BXLEG)、f.BRANCHONINDEXLOWOREQUAL(BXLE,BXLEG)、g.BRANCHRELATIVEONCONDITION(BRC)、h.BRANCHRELATIVEONCONDITIONLONG(BRCL)、i.BRANCHRELATIVEONCOUNT(BRCT,BRCTG)、j.BRANCHRELATIVEONCOUNTHIGH(BRCTH)、k.BRANCHRELATIVEONINDEXHIGH(BRXH,BRXHG)、l.BRANCHRELATIVEONINDEXLOWOREQUAL(BRXLE,BRXLG)、m.COMPAREANDBRANCH(CRB,CGRB)、n.COMPAREANDBRANCHRELATIVE(CRJ,CGRJ)、o.COMPAREIMMEDIATEANDBRANCH(CIB,CGIB)、p.COMPAREIMMEDIATEANDBRANCHRELATIVE(CIJ,CGIJ)、q.COMPARELOGICALANDBRANCH(CLRB,CLGRB)、r.COMPARELOGICALANDBRANCHRELATIVE(CLRJ,CLGRJ)以及s.COMPARELOGICALIMMEDIATEANDBRANCHRELATIVE(CLIJ,CLGIJ)。所述分支被采取時創(chuàng)建轉(zhuǎn)移記錄。對于轉(zhuǎn)移記錄,如果分支是執(zhí)行型指令的目標(biāo)則指令地址字段包含分支指令或執(zhí)行型指令的地址,并且目標(biāo)地址字段包含返回位置。在收集緩沖器508中的有效記錄的數(shù)量不足以填滿當(dāng)前RGS的報告群組時,在報告群組使用填充符記錄。填充符記錄的實施例包括記錄類型字段“00”,以便指示該記錄是填充符記錄并且剩余字節(jié)未被定義。當(dāng)存在額外記錄部1106時,額外記錄部1106可以含有依賴型號的記錄。在一個實施例中,額外記錄的格式類似于填充符記錄,不同之處在于記錄類型被設(shè)置為“01”以便表明該記錄是額外記錄以及額外記錄的剩余字節(jié)可以包含依賴型號的數(shù)據(jù)。頁腳部分1108可包括含有關(guān)于樣本指令執(zhí)行的信息的指令記錄。在報告群組被存儲用于樣本指令時,指令記錄被創(chuàng)建。指令結(jié)果的實施例包括:記錄類型字段“04”、用于指示在指令記錄中當(dāng)前PSW的指令地址位的位置如何被表示的指令地址碼字段、基于尋址模式(例如64、31或24位)而變化并在采樣指令為執(zhí)行型指令的目標(biāo)的情況下包含采樣指令或執(zhí)行型指令的指令地址的指令地址字段、以及包含從IDB收集的任何依賴型號的數(shù)據(jù)的指令-數(shù)據(jù)緩沖器(IDB)字段。如上所述,實施例可以以計算機實現(xiàn)的過程和用于實踐那些過程的裝置的形式來實施。實施例可包括計算機可讀/可用介質(zhì)1202上的具有包含指令的算機程序代碼邏輯1204的如圖12所示的計算機程序產(chǎn)品1200,其體現(xiàn)為作為制品的有形介質(zhì)。用于計算機可讀/可用介質(zhì)1202的示例性制品可包括:軟盤、CD-ROM、硬盤驅(qū)動器、通用串行總線(USB)閃存驅(qū)動器或任何其它計算機可讀存儲介質(zhì),其中,當(dāng)計算機程序代碼邏輯1204被計算機裝載時,計算機成為用于實施本發(fā)明的裝置。實施例包括計算機程序代碼邏輯1204,例如,無論是存儲在存儲介質(zhì)中還是加載到計算機和/或由計算機執(zhí)行,或通過某些傳輸介質(zhì)傳輸,諸如通過電線或電纜、通過光纖、或經(jīng)由電磁輻射,其中,當(dāng)計算機程序代碼邏輯1304被計算機載入和執(zhí)行時,計算機成為用于實施本發(fā)明的裝置。當(dāng)在通用微處理器上實現(xiàn)時,計算機程序代碼邏輯1304分段配置微處理器,以創(chuàng)建特定的邏輯電路。技術(shù)效果和益處包括在執(zhí)行STRIC指令之前確定運行時間檢測控制是否已經(jīng)改變,以防止不必要地使用處理循環(huán)來將未被修改的運行時間檢測控制存儲在主存儲器中。本文所用的術(shù)語僅用于描述特定實施例的目的,并不意在限制本發(fā)明。本文所使用的單數(shù)形式“一”、“一個”和“該”也意圖包括復(fù)數(shù)形式,除非上下文另有明確說明。這將進一步理解的是,術(shù)語“包括”和/或“包含”在本說明書中使用時指定所陳述的特征、整數(shù)、步驟、操作、元件的存在,但不排除存在或附加一個或多個其它特征、整數(shù)、步驟、操作、元件、部件和/或它們的組。下面權(quán)利要求書中所有手段或步驟加功能元素的相應(yīng)的結(jié)構(gòu)、材料、動作和等同物旨在包括特別要求保護的任何結(jié)構(gòu)、材料或用于與其他要求保護的元件組合執(zhí)行功能的行為。為了說明和描述目的已經(jīng)呈現(xiàn)本發(fā)明的描述,但其并非意在以所公開的形式窮舉或限制本發(fā)明。不脫離本發(fā)明的范圍和精神的情況下,許多修改和變化形式對本領(lǐng)域普通技術(shù)人員而言將是顯而易見。選擇并描述該實施例是為了最好地解釋本發(fā)明的原理和實際應(yīng)用,以及使本領(lǐng)域的其他技術(shù)人員能夠理解用于根據(jù)適于所想到的特定用途而具有各種修改形式的各種實施例的本發(fā)明。所屬技術(shù)領(lǐng)域的技術(shù)人員知道,本發(fā)明的各個方面可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明的各個方面還可以實現(xiàn)為在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含計算機可讀的程序代碼。可以采用一個或多個計算機可讀介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。計算機可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質(zhì)還可以是計算機可讀存儲介質(zhì)以外的任何計算機可讀介質(zhì),該計算機可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。計算機可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括—但不限于—無線、有線、光纜、RF等等,或者上述的任意合適的組合。可以以一種或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言—諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計語言—諸如“C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠(yuǎn)程計算機上執(zhí)行、或者完全在遠(yuǎn)程計算機或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計算機的情形中,遠(yuǎn)程計算機可以通過任意類別的網(wǎng)絡(luò)——包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。下面將參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,使得這些計算機程序指令在通過計算機或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。也可以把這些計算機程序指令存儲在計算機可讀介質(zhì)中,這些指令使得計算機、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲在計算機可讀介質(zhì)中的指令就產(chǎn)生出包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的指令的制造品(articleofmanufacture)。所述計算機程序指令還可以被加載到計算機、其它可編程數(shù)據(jù)處理裝置或其他設(shè)備上以便在計算機、其它可編程處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的過程,使得在計算機或其他可編程裝置上執(zhí)行的指令提供用于實現(xiàn)在流程圖和/或方框圖方框或多個方框中指定的功能/動作的過程。如上所述,實施例可以以計算機實現(xiàn)的過程和用于實踐那些過程的裝置形式的來實施。在實施例中,本發(fā)明可以以由一個或多個網(wǎng)絡(luò)元件執(zhí)行的計算機程序代碼來實施。實施例包括計算機可用介質(zhì)上的計算機程序產(chǎn)品,其具有包含指令的計算機程序代碼邏輯,實現(xiàn)在作為制品的有形介質(zhì)中。計算機可用介質(zhì)的示例性制品可包括:軟盤、CD-ROM、硬盤驅(qū)動器、通用串行總線(USB)閃存驅(qū)動器或任何其它計算機可讀存儲介質(zhì),其中,當(dāng)計算機程序代碼邏輯被裝入和由計算機執(zhí)行時,計算機成為用于實施本發(fā)明的裝置。實施例包括計算機程序代碼邏輯,例如,是否存儲在存儲介質(zhì)中、加載到和/或由計算機執(zhí)行、或通過某些傳輸介質(zhì)傳輸,諸如通過電線或電纜、通過光纖、或經(jīng)由電磁輻射的方法,其中,當(dāng)計算機程序代碼邏輯被裝入和被計算機執(zhí)行時,計算機成為用于實施本發(fā)明的裝置。當(dāng)在通用微處理器上實現(xiàn)時,計算機程序代碼邏輯段配置微處理器以創(chuàng)建特定的邏輯電路。附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1