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

在事務(wù)處理中保存/恢復(fù)選擇的寄存器的制作方法與工藝

文檔序號(hào):12011423閱讀:265來(lái)源:國(guó)知局
在事務(wù)處理中保存/恢復(fù)選擇的寄存器的制作方法與工藝
一個(gè)或多個(gè)方面大體上關(guān)于多處理計(jì)算環(huán)境,且尤其關(guān)于此類計(jì)算環(huán)境內(nèi)的事務(wù)處理。

背景技術(shù):
多處理器編程中的持久挑戰(zhàn)為由多個(gè)中央處理單元(CPU)對(duì)同一儲(chǔ)存位置的更新的挑戰(zhàn)。更新儲(chǔ)存位置的許多指令(甚至包括諸如AND的簡(jiǎn)單邏輯運(yùn)算)用對(duì)該位置的多次存取來(lái)進(jìn)行該更新。舉例而言,首先提取儲(chǔ)存位置,且接著儲(chǔ)存回已更新結(jié)果。為了使多個(gè)CPU安全地更新同一儲(chǔ)存位置,序列化對(duì)該位置的存取。用先前由國(guó)際商業(yè)機(jī)器公司提供的S/360架構(gòu)引入的一個(gè)指令(TESTANDSET指令)提供儲(chǔ)存位置的連鎖更新(interlockedupdate)。連鎖更新意謂:如由其他CPU及輸入/輸出(I/O)子系統(tǒng)(例如,通道子系統(tǒng))所觀察的那樣,指令的整個(gè)儲(chǔ)存存取看來(lái)像是自動(dòng)地發(fā)生的一樣。稍后,由國(guó)際商業(yè)機(jī)器公司提供的S/370架構(gòu)引入COMPAREANDSWAP及COMPAREDOUBLEANDSWAP指令,這些指令提供執(zhí)行連鎖更新的較精密方式且允許通常被稱為鎖定字組(或旗號(hào))的實(shí)施。最近新增的指令已提供額外連鎖更新能力,包括COMPAREANDSWAPANDPURGE及COMPAREANDSWAPANDSTORE。然而,所有這些指令提供用于僅單一儲(chǔ)存位置的連鎖。較復(fù)雜的程序技術(shù)可需要多個(gè)儲(chǔ)存位置的連鎖更新,諸如,當(dāng)將一元素新增至一雙向鏈接清單(doubly-linkedlist)時(shí)。在此類操作中,前向指針及向后指針兩者皆看來(lái)像是被同時(shí)地更新一樣,如由其他CPU及I/O子系統(tǒng)所觀察的那樣。為了實(shí)現(xiàn)此類多重位置更新,強(qiáng)制程序使用分離的單一序列化點(diǎn),諸如,鎖定字組。然而,鎖定字組可提供比所保證的序列化層級(jí)粗略得多的序列化層級(jí);舉例而言,鎖定字組可序列化數(shù)百萬(wàn)個(gè)元素的整個(gè)隊(duì)列,即使僅兩個(gè)元素正被更新亦如此。程序可結(jié)構(gòu)化數(shù)據(jù)以使用較精細(xì)粒度級(jí)序列化(例如,鎖定點(diǎn)階層),但這引入額外問(wèn)題,諸如,在違反該階層時(shí)的潛在鎖死情形,及在程序遭遇錯(cuò)誤同時(shí)保持一或多個(gè)鎖定時(shí)或在不能獲取鎖定時(shí)的復(fù)原問(wèn)題。除了以上內(nèi)容以外,亦存在程序可以執(zhí)行可能引起或可能不引起異常情況的指令序列的眾多情境。若未發(fā)生異常情況,則程序繼續(xù);然而,若辨識(shí)出異常,則程序可采取校正動(dòng)作以消除異常情況。作為一實(shí)例,Java可在(例如)理論式執(zhí)行、函數(shù)的部分內(nèi)嵌和/或指針空值檢查的重新定序中利用此類執(zhí)行。在諸如由國(guó)際商業(yè)機(jī)器公司提供的z/OS及其前身的傳統(tǒng)操作系統(tǒng)環(huán)境中,程序建立復(fù)原環(huán)境以攔截程序可遭遇的任何程序異常情況。若程序未攔截到異常,則操作系統(tǒng)通常針對(duì)操作系統(tǒng)未準(zhǔn)備好進(jìn)行處置的異常而例外地終止程序。建立及利用此類環(huán)境是昂貴且復(fù)雜的。

技術(shù)實(shí)現(xiàn)要素:
通過(guò)提供一種用于促進(jìn)處理計(jì)算環(huán)境內(nèi)的事務(wù)的計(jì)算機(jī)程序產(chǎn)品來(lái)克服現(xiàn)有技術(shù)的缺點(diǎn)并且提供優(yōu)點(diǎn)。所述計(jì)算機(jī)程序產(chǎn)品包括:計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),可由處理電路讀取,并且存儲(chǔ)用于所述處理電路進(jìn)行執(zhí)行的指令,以用于執(zhí)行方法。所述方法包括,例如,由處理器從指令所提供的信息確定待在事務(wù)處理中保存的一個(gè)或多個(gè)選擇的寄存器,所述指令用于開(kāi)始事務(wù)的執(zhí)行,所述事務(wù)有效地延遲將事務(wù)存儲(chǔ)交付至主存儲(chǔ)器,直到所選擇的事務(wù)的完成為止,并且所述一個(gè)或多個(gè)所選擇的寄存器小于在所述事務(wù)的執(zhí)行中由所述事務(wù)使用的所有寄存器;以及基于所述指令的執(zhí)行而保存所述一個(gè)或多個(gè)所選擇的寄存器的內(nèi)容。本文亦描述及主張與一個(gè)或多個(gè)實(shí)施例相關(guān)的方法及系統(tǒng)。另外,本文亦描述且可主張與一個(gè)或多個(gè)實(shí)施例相關(guān)的服務(wù)。貫穿全文實(shí)現(xiàn)額外特征及優(yōu)點(diǎn)。其他實(shí)施例及方面在本文中得以詳細(xì)地描述且被看作本發(fā)明的部分。附圖說(shuō)明在本說(shuō)明書完結(jié)時(shí)于權(quán)利要求中將一個(gè)或多個(gè)方面特定地指出且清楚地主張為實(shí)例。前述及其他目標(biāo)、特征及優(yōu)點(diǎn)自結(jié)合附圖而進(jìn)行的以下詳細(xì)描述變得顯而易見(jiàn),在這些圖中:圖1描繪計(jì)算環(huán)境的一實(shí)施例;圖2A描繪事務(wù)開(kāi)始(TBEGIN)指令的一實(shí)例;圖2B描繪圖2A的TBEGIN指令的字段的另外細(xì)節(jié)的一實(shí)施例;圖3A描繪事務(wù)開(kāi)始受限(TBEGINC)指令的一實(shí)例;圖3B描繪圖3A的TBEGINC指令的字段的另外細(xì)節(jié)的一實(shí)施例;圖4描繪事務(wù)結(jié)束(TEND)指令的一實(shí)例;圖5描繪事務(wù)中止(TABORT)指令的一實(shí)例;圖6描繪嵌套事務(wù)的一實(shí)例;圖7描繪NONTRANSACTIONALSTORE(NTSTG)指令的一實(shí)例;圖8描繪EXTRACTTRANSACTIONNESTINGDEPTH(ETND)指令的一實(shí)例;圖9描繪事務(wù)診斷區(qū)塊的一實(shí)例;圖10描繪中止的實(shí)例原因,連同關(guān)聯(lián)中止碼及條件碼;圖11描繪與執(zhí)行TBEGINC指令相關(guān)聯(lián)的邏輯的一實(shí)施例;圖12描繪與執(zhí)行TBEGIN指令相關(guān)聯(lián)的邏輯的一實(shí)施例;圖13A-13B描繪與事務(wù)處理中保存/恢復(fù)選擇的寄存器相關(guān)聯(lián)的邏輯的實(shí)施例;圖14A-14B描繪將隊(duì)列元素插入至隊(duì)列元素雙向鏈接清單中的實(shí)例;圖15描繪計(jì)算機(jī)程序產(chǎn)品的一實(shí)施例;圖16描繪主機(jī)計(jì)算機(jī)系統(tǒng)的一實(shí)施例;圖17描繪計(jì)算機(jī)系統(tǒng)的另外實(shí)例;圖18描繪包含計(jì)算機(jī)網(wǎng)絡(luò)的計(jì)算機(jī)系統(tǒng)的另一實(shí)例;圖19描繪計(jì)算機(jī)系統(tǒng)的各種元件的一實(shí)施例;圖20A描繪圖19的計(jì)算機(jī)系統(tǒng)的執(zhí)行單元的一實(shí)施例;圖20B描繪圖19的計(jì)算機(jī)系統(tǒng)的分支單元的一實(shí)施例;圖20C描繪圖19的計(jì)算機(jī)系統(tǒng)的載入/儲(chǔ)存單元的一實(shí)施例;及圖21描繪模擬主機(jī)計(jì)算機(jī)系統(tǒng)的一實(shí)施例。具體實(shí)施方式根據(jù)一個(gè)方面,提供一種事務(wù)執(zhí)行(TX)設(shè)施。此設(shè)施提供用于指令的事務(wù)處理,且在一個(gè)或多個(gè)實(shí)施例中提供如下文所描述的不同執(zhí)行模式,以及事務(wù)處理的嵌套層級(jí)。事務(wù)執(zhí)行設(shè)施引入被稱作事務(wù)執(zhí)行(TX)模式的CPU狀態(tài)。在CPU重設(shè)之后,CPU并不處于TX模式。CPU藉由TRANSACTIONBEGIN指令進(jìn)入TX模式。CPU藉由(a)最外部TRANSACTIONEND指令(關(guān)于內(nèi)部指令及外部指令的更多細(xì)節(jié)如下)或(b)正被中止的事務(wù)而離開(kāi)TX模式。雖然處于TX模式,但由CPU進(jìn)行的儲(chǔ)存存取看來(lái)像是區(qū)塊并行的一樣,如由其他CPU及I/O子系統(tǒng)所觀察的那樣。儲(chǔ)存存取(a)在最外部事務(wù)在無(wú)中止的情況下結(jié)束時(shí)被交付至存儲(chǔ)器(亦即,例如,在CPU本地的高速緩存或緩沖器中進(jìn)行的更新經(jīng)傳播及儲(chǔ)存于真實(shí)存儲(chǔ)器中且可為其他CPU所見(jiàn)),或(b)在事務(wù)中止時(shí)被舍棄。事務(wù)可為嵌套。亦即,在CPU處于TX模式時(shí),CPU可執(zhí)行另一TRANSACTIONBEGIN指令。使CPU進(jìn)入TX模式的指令被稱作最外部TRANSACTIONBEGIN;相似地,程序據(jù)稱處于最外部事務(wù)。TRANSACTIONBEGIN的后續(xù)執(zhí)行被稱作內(nèi)部指令;且程序正執(zhí)行內(nèi)部事務(wù)。模型提供最小嵌套深度及模型相依最大嵌套深度。EXTRACTTRANSACTIONNESTINGDEPTH指令傳回當(dāng)前嵌套深度值,且在一另外實(shí)施例中可傳回最大嵌套深度值。此技術(shù)使用被稱作“扁平化嵌套(flattenednesting)”的模型,其中任何嵌套深度處的中止條件造成事務(wù)的所有層級(jí)中止,且控制傳回至在最外部TRANSACTIONBEGIN之后的指令。在事務(wù)的處理期間,由一個(gè)CPU進(jìn)行的事務(wù)存取據(jù)稱與(a)由另一CPU進(jìn)行的事務(wù)存取或非事務(wù)存取沖突,或與(b)由I/O子系統(tǒng)進(jìn)行的非事務(wù)存取沖突(若兩種存取是針對(duì)同一高速緩存行內(nèi)的任何位置,且這些存取中的一個(gè)或兩個(gè)為儲(chǔ)存)。換言之,為了使事務(wù)執(zhí)行有生產(chǎn)力,CPU不應(yīng)被觀察到進(jìn)行事務(wù)存取直至事務(wù)存取交付為止。此編程模型在某些環(huán)境中可以高度地有效;例如,數(shù)百萬(wàn)個(gè)元素的雙向鏈接清單中的兩個(gè)點(diǎn)的更新。然而,若針對(duì)正被事務(wù)地存取的儲(chǔ)存位置存在許多爭(zhēng)用,則該編程模型可能較不有效。在一個(gè)事務(wù)執(zhí)行模型(在本文中被稱作非受限事務(wù))中,當(dāng)事務(wù)中止時(shí),程序可嘗試重新驅(qū)動(dòng)事務(wù)以希望不再出現(xiàn)中止情況,或程序可“后退”至等效非事務(wù)路徑。在另一事務(wù)執(zhí)行模型(在本文中被稱作受限事務(wù))中,已中止事務(wù)由CPU自動(dòng)地重新驅(qū)動(dòng);在不存在限制違反時(shí),受限事務(wù)確保最終完成。當(dāng)起始事務(wù)時(shí),程序可指定各種控制,諸如:(a)在事務(wù)中止時(shí)哪些一般寄存器恢復(fù)為其原始內(nèi)容;(b)是否允許事務(wù)修改浮點(diǎn)寄存器上下文,包括(例如)浮點(diǎn)寄存器及浮點(diǎn)控制寄存器;(c)是否允許事務(wù)修改存取寄存器(AR);及(d)是否將封鎖某些程序異常情況免于造成中斷。若非受限事務(wù)中止,則可提供各種診斷信息。舉例而言,起始非受限事務(wù)的最外部TBEGIN指令可指明程序指定事務(wù)診斷區(qū)塊(TDB)。另外,若事務(wù)分別歸因于程序中斷或造成解譯性執(zhí)行結(jié)束的情況而中止,則亦可使用CPU的前置區(qū)域中或由主機(jī)的狀態(tài)描述指明的TDB。上文指示各種類型的寄存器。本文進(jìn)一步詳細(xì)地解釋這些寄存器。一般寄存器可用作一般算術(shù)及邏輯運(yùn)算中的累加器。在一個(gè)實(shí)施例中,每一寄存器含有64個(gè)位的位置,且存在16個(gè)一般寄存器。這些一般寄存器由數(shù)字0至15識(shí)別,且由一指令中的四位R字段指明。一些指令規(guī)定藉由具有若干R字段來(lái)尋址多個(gè)一般寄存器。對(duì)于一些指令,特定一般寄存器的使用被暗示,而非由該指令的R字段明確地指明。除了作為一般算術(shù)及邏輯運(yùn)算中的累加器的使用以外,16個(gè)一般寄存器中的15個(gè)寄存器亦在地址產(chǎn)生中用作基底地址及索引寄存器。在此等狀況下,這些寄存器由一指令中的四位B字段或X字段指明。該B或X字段中的值0指定出將不應(yīng)用基底或索引,且因此,一般寄存器0將不被指明為含有基底地址或索引。浮點(diǎn)指令使用浮點(diǎn)寄存器集合。在一實(shí)施例中,CPU具有16個(gè)浮點(diǎn)寄存器。這些浮點(diǎn)寄存器由數(shù)字0至15識(shí)別,且由浮點(diǎn)指令中的四位R字段指明。每一浮點(diǎn)寄存器為64個(gè)位長(zhǎng),且可含有短(32位)浮點(diǎn)操作數(shù)或長(zhǎng)(64位)浮點(diǎn)操作數(shù)。浮點(diǎn)控制(FPC)寄存器為含有屏敝位、標(biāo)志位、數(shù)據(jù)異常碼及舍位模式位的32位寄存器,且在浮點(diǎn)運(yùn)算的處理期間被使用。另外,在一個(gè)實(shí)施例中,CPU具有16個(gè)控制寄存器,每一控制寄存器具有64個(gè)位的位置。這些寄存器中的位的位置指派至系統(tǒng)中的特定設(shè)施,諸如,程序事件記錄(PER)(下文所論述),且用以指定出可進(jìn)行操作,或用以供給由該設(shè)施需要的特殊信息。在一個(gè)實(shí)施例中,對(duì)于事務(wù)設(shè)施,使用CR0(位8及9)及CR2(位61至63),如下文所描述。舉例而言,CPU具有被編號(hào)為0至15的16個(gè)存取寄存器。一個(gè)存取寄存器由含有地址空間控制元素(ASCE)的間接規(guī)格的32個(gè)位的位置組成。地址空間控制元素為由動(dòng)態(tài)地址轉(zhuǎn)譯(DAT)機(jī)制使用以將參考轉(zhuǎn)譯至對(duì)應(yīng)地址空間的參數(shù)。當(dāng)CPU處于被稱作存取寄存器模式的模式(由程序狀態(tài)字組(PSW)中的位控制)時(shí),用以指定針對(duì)儲(chǔ)存操作數(shù)參考的邏輯地址的指令B字段指明存取寄存器,且由存取寄存器指定的地址空間控制元素由DAT用于正被進(jìn)行的參考。對(duì)于一些指令,使用R字段而非B字段。提供指令以用于載入及儲(chǔ)存存取寄存器的內(nèi)容且用于將一個(gè)存取寄存器的內(nèi)容移動(dòng)至另一存取寄存器。存取寄存器1至15中每一個(gè)可指明任何地址空間。存取寄存器0指明主要指令空間。當(dāng)存取寄存器1至15中的一個(gè)用以指明地址空間時(shí),CPU判定藉由轉(zhuǎn)譯存取寄存器的內(nèi)容而指明哪一地址空間。當(dāng)存取寄存器0用以指明地址空間時(shí),CPU將該存取寄存器視為指明主要指令空間,且CPU并不檢驗(yàn)該存取寄存器的實(shí)際內(nèi)容。因此,16個(gè)存取寄存器可在任一時(shí)間指明主要指令空間及15個(gè)其他空間的最大值。在一個(gè)實(shí)施例中,存在多個(gè)類型的地址空間。一個(gè)地址空間為整數(shù)(虛擬地址)的連續(xù)序列,連同允許每一數(shù)字與存儲(chǔ)器中的字節(jié)位置相關(guān)聯(lián)的特定變換參數(shù)。該序列以0開(kāi)始且自左側(cè)至右側(cè)進(jìn)行。舉例而言,在z/Architecture中,當(dāng)虛擬地址是由CPU使用以存取主存儲(chǔ)器(又名,主存儲(chǔ)器)時(shí),虛擬地址首先憑借動(dòng)態(tài)地址轉(zhuǎn)譯(DAT)而轉(zhuǎn)換至真實(shí)地址,且接著憑借加前綴(prefixing)而轉(zhuǎn)換至絕對(duì)地址。DAT可使用表的一個(gè)至五個(gè)層級(jí)(頁(yè)、區(qū)段、區(qū)第三、區(qū)第二及區(qū)第一)作為變換參數(shù)。用于特定地址空間的最高層級(jí)表的指明(原點(diǎn)及長(zhǎng)度)被稱作地址空間控制元素,且該指明被發(fā)現(xiàn)供DAT用于控制寄存器中或如由存取寄存器所指定?;蛘?,用于地址空間的地址空間控制元素可為真實(shí)空間指明,其指示出DAT用以簡(jiǎn)單地藉由將虛擬地址視為真實(shí)地址且不使用任何表來(lái)轉(zhuǎn)譯虛擬地址。DAT在不同時(shí)間使用不同控制寄存器中或由存取寄存器指定的地址空間控制元素。選擇由當(dāng)前PSW中指定的轉(zhuǎn)譯模式判定。四個(gè)轉(zhuǎn)譯模式是可用的:主要空間模式、次要空間模式、存取寄存器模式及本籍空間模式(homespacemode)。取決于轉(zhuǎn)譯模式,不同地址空間是可尋址的。在CPU處于主要空間模式或次要空間模式時(shí)的任何時(shí)刻,CPU可轉(zhuǎn)譯屬于兩個(gè)地址空間(主要地址空間及第二地址空間)的虛擬地址。在CPU處于存取寄存器模式時(shí)的任何時(shí)刻,CPU可轉(zhuǎn)譯高達(dá)16個(gè)地址空間(主要地址空間及高達(dá)15個(gè)AR指定地址空間)的虛擬地址。在CPU處于本籍空間模式時(shí)的任何時(shí)刻,CPU可轉(zhuǎn)譯本籍地址空間的虛擬地址。主要地址空間因而被識(shí)別,這是因?yàn)槠溆芍饕摂M地址組成,這些主要虛擬地址憑借主要地址空間控制元素(ASCE)而轉(zhuǎn)譯。相似地,次要地址空間由憑借次要ASCE轉(zhuǎn)譯的次要虛擬地址組成;AR指定地址空間由憑借AR指定ASCE轉(zhuǎn)譯的AR指定虛擬地址組成;且本籍地址空間由憑借本籍ASCE轉(zhuǎn)譯的本籍虛擬地址組成。主要ASCE及次要ASCE分別處于控制寄存器1及7中。AR指定ASCE處于使用控制寄存器2、5及8經(jīng)由被稱作存取寄存器轉(zhuǎn)譯(ART)的處理而定位的ASN第二表項(xiàng)中。本籍ASCE處于控制寄存器13中。參看圖1來(lái)描述用以并入及使用本文所描述的事務(wù)設(shè)施的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的一個(gè)實(shí)施例。參看圖1,在一實(shí)例中,計(jì)算環(huán)境100基于由紐約州阿蒙克市的國(guó)際商業(yè)機(jī)器公司提供的z/Architecture。2010年8月第九版的名為“z/Architecture-PrinciplesofOperation”的IBM公開(kāi)案(公開(kāi)案第SA22-7932-08號(hào))中描述z/Architecture,該公開(kāi)案的全文據(jù)此以引用方式并入本文中。Z/ARCHITECTURE、IBM以及Z/OS及Z/VM(下文所參考)為紐約州阿蒙克市的國(guó)際商業(yè)機(jī)器公司的注冊(cè)商標(biāo)。本文所使用的其他名稱可為國(guó)際商業(yè)機(jī)器公司或其他公司的注冊(cè)商標(biāo)、商標(biāo)或產(chǎn)品名稱。作為一實(shí)例,計(jì)算環(huán)境100包括經(jīng)由一個(gè)或多個(gè)控制單元108耦接至一個(gè)或多個(gè)輸入/輸出(I/O)器件106的中央處理器復(fù)合體(centralprocessorcomplex,CPC)102。舉例而言,中央處理器復(fù)合體102包括一個(gè)或多個(gè)中央處理器110、一個(gè)或多個(gè)分割區(qū)112(例如,邏輯分割區(qū)(LP))、邏輯分割區(qū)超管理器(hypervisor)114及輸入/輸出子系統(tǒng)115,其中每一者在下文予以描述。中央處理器110為分配給邏輯分割區(qū)的實(shí)體處理器資源。詳言之,每一邏輯分割區(qū)112具有一個(gè)或多個(gè)邏輯處理器,其中每一邏輯處理器表示分配給該分割區(qū)的實(shí)體處理器110的全部或份額。特定分割區(qū)112的邏輯處理器可專用于該分割區(qū),使得底層處理器資源110針對(duì)那個(gè)分割區(qū)而保留;或這些邏輯處理器可與另一分割區(qū)共用,使得該底層處理器資源潛在地可用于另一分割區(qū)。邏輯分割區(qū)充當(dāng)分離系統(tǒng)且具有一個(gè)或多個(gè)應(yīng)用程序,且視情況在其中具有駐留操作系統(tǒng),該駐留操作系統(tǒng)針對(duì)每一邏輯分割區(qū)可不同。在一實(shí)施例中,操作系統(tǒng)為由紐約州阿蒙克市的國(guó)際商業(yè)機(jī)器公司提供的z/OS操作系統(tǒng)、z/VM操作系統(tǒng)、z/Linux操作系統(tǒng)或TPF操作系統(tǒng)。邏輯分割區(qū)112由邏輯分割區(qū)超管理器114管理,邏輯分割區(qū)超管理器114由處理器110上運(yùn)行的固件實(shí)施。如本文所使用,固件包括(例如)處理器的微碼(microcode)和/或毫碼(millicode)。舉例而言,固件包括在較高層級(jí)機(jī)器碼的實(shí)施中使用的硬件層級(jí)指令和/或數(shù)據(jù)結(jié)構(gòu)。在一實(shí)施例中,舉例而言,固件包括通常作為包括受信任軟件的微碼或特定于底層硬件的微碼進(jìn)行遞送且控制對(duì)系統(tǒng)硬件的操作系統(tǒng)存取的專屬碼。邏輯分割區(qū)及邏輯分割區(qū)超管理器各自包含駐留于與中央處理器相關(guān)聯(lián)的中央存儲(chǔ)器的各別分割區(qū)中的一個(gè)或多個(gè)程序。邏輯分割區(qū)超管理器114的一個(gè)實(shí)例為由紐約州阿蒙克市的國(guó)際商業(yè)機(jī)器公司提供的ProcessorResource/SystemManager(PR/SM)。輸入/輸出子系統(tǒng)115在輸入/輸出器件106與主存儲(chǔ)器(又名,主存儲(chǔ)器)之間引導(dǎo)信息流動(dòng)。輸入/輸出子系統(tǒng)耦接至中央處理復(fù)合體,此在于:輸入/輸出子系統(tǒng)可為中央處理器復(fù)合體的部分或與中央處理器復(fù)合體分離。I/O子系統(tǒng)使中央處理器減輕直接地與輸入/輸出器件通信的任務(wù)的負(fù)擔(dān),且準(zhǔn)許數(shù)據(jù)處理與輸入/輸出處理并行地進(jìn)行。為了提供通信,I/O子系統(tǒng)使用I/O通信適配器。存在各種類型的通信適配器,包括(例如)通道、I/O適配器、PCI卡、乙太網(wǎng)卡、小型計(jì)算機(jī)儲(chǔ)存接口(SCSI)卡等等。在本文所描述的特定實(shí)例中,I/O通信適配器為通道,且因此,I/O子系統(tǒng)在本文中被稱作通道子系統(tǒng)。然而,此情形僅為一實(shí)例。可使用其他類型的I/O子系統(tǒng)。I/O子系統(tǒng)使用一個(gè)或多個(gè)輸入/輸出路徑作為通信鏈路來(lái)管理至或自輸入/輸出器件106的信息流動(dòng)。在此特定實(shí)例中,此等路徑被稱作通道路徑,這是因?yàn)橥ㄐ胚m配器為通道。上文所描述的計(jì)算環(huán)境僅為可使用的計(jì)算環(huán)境的一個(gè)實(shí)例。可使用包括但不限于非分割環(huán)境、其他分割環(huán)境和/或模擬環(huán)境的其他環(huán)境;實(shí)施例并不限于任一環(huán)境。根據(jù)一個(gè)或多個(gè)方面,事務(wù)執(zhí)行設(shè)施為CPU增強(qiáng),其提供可用來(lái)使CPU執(zhí)行指令序列(被稱作事務(wù))的方式,這些指令可存取多個(gè)儲(chǔ)存位置,包括那些位置的更新。如由其他CPU及I/O子系統(tǒng)所觀察,事務(wù)是(a)整體上作為單一不可部分完成操作而完成,或(b)中止,從而潛在地不留下事務(wù)曾經(jīng)執(zhí)行的跡象(惟本文所描述的某些條件除外)。因此,成功完成的事務(wù)可在沒(méi)有在傳統(tǒng)多處理模型中需要的任何特殊鎖定的情況下更新眾多儲(chǔ)存位置。舉例而言,事務(wù)執(zhí)行設(shè)施包括一個(gè)或多個(gè)控制、一個(gè)或多個(gè)指令、包括受限執(zhí)行及非受限執(zhí)行的事務(wù)處理及中止處理,其中每一個(gè)在下文予以進(jìn)一步描述。在一個(gè)實(shí)施例中,使用以下各者以控制事務(wù)執(zhí)行設(shè)施:三個(gè)特殊用途控制,包括事務(wù)中止程序狀態(tài)字組(PSW)、事務(wù)診斷區(qū)塊(TDB)地址及事務(wù)嵌套深度;五個(gè)控制寄存器位;及六個(gè)一般指令,包括TRANSACTIONBEGIN(受限及非受限)、TRANSACTIONEND、EXTRACTTRANSACTIONNESTINGDEPTH、TRANSACTIONABORT及NONTRANSACTIONALSTORE。當(dāng)該設(shè)施被安裝時(shí),該設(shè)施安裝于(例如)配置中的所有CPU中。一個(gè)設(shè)施指示(在一實(shí)施中為位73)在為1時(shí)指示事務(wù)執(zhí)行設(shè)施被安裝。當(dāng)事務(wù)執(zhí)行設(shè)施被安裝時(shí),該配置提供非受限事務(wù)執(zhí)行設(shè)施且視情況提供受限事務(wù)執(zhí)行設(shè)施,其中每一設(shè)施在下文予以描述。作為實(shí)例,當(dāng)設(shè)施指示50及73皆為1時(shí),受限事務(wù)執(zhí)行設(shè)施被安裝。兩個(gè)設(shè)施指示皆在指定位置處儲(chǔ)存于存儲(chǔ)器中。如本文所使用,指令名稱TRANSACTIONBEGIN指代具有助記符TBEGIN(用于非受限事務(wù)的事務(wù)開(kāi)始)及TBEGINC(用于受限事務(wù)的事務(wù)開(kāi)始)的指令。關(guān)于特定指令的論述由指令名稱繼之以圓括號(hào)或括號(hào)中的助記符指示,或簡(jiǎn)單地由助記符指示。圖2A至圖2B中描繪TRANSACTIONBEGIN(TBEGIN)指令的格式的一實(shí)施例。作為一實(shí)例,TBEGIN指令200包括:操作碼字段202,其包括指定事務(wù)開(kāi)始非受限操作的操作碼;基本字段(B1)204;位移字段(D1)206;及立即字段(I2)208。當(dāng)B1字段為非零時(shí),將由B1204指定的一般寄存器的內(nèi)容添加至D1206以獲得第一操作數(shù)地址。當(dāng)B1字段為非零時(shí),以下內(nèi)容適用:·當(dāng)事務(wù)嵌套深度最初為0時(shí),第一操作數(shù)地址指明被稱作TBEGIN指定的TDB(下文進(jìn)一步所描述)的256字節(jié)事務(wù)診斷區(qū)塊的位置,若事務(wù)中止,則各種診斷信息可儲(chǔ)存至TBEGIN指定的TDB中。當(dāng)CPU處于主要空間模式或存取寄存器模式時(shí),第一操作數(shù)地址指明主要地址空間中的位置。當(dāng)CPU處于次要空間模式或本籍空間模式時(shí),第一操作數(shù)地址分別指明次要地址空間或本籍地址空間中的位置。當(dāng)DAT關(guān)斷時(shí),事務(wù)診斷區(qū)塊(TDB)地址(TDBA)指明真實(shí)存儲(chǔ)器中的位置。判定對(duì)第一操作數(shù)的儲(chǔ)存可存取性。若為可存取,則操作數(shù)的邏輯地址置放至事務(wù)診斷區(qū)塊地址(TDBA)中,且TDBA有效?!ぎ?dāng)CPU已經(jīng)處于非受限事務(wù)執(zhí)行模式時(shí),TDBA未被修改,且不可預(yù)測(cè)的是第一操作數(shù)是否針對(duì)可存取性而被測(cè)試。當(dāng)B1字段為0時(shí),針對(duì)第一操作數(shù)未偵測(cè)到存取異常,且對(duì)于最外部TBEGIN指令,TDBA無(wú)效。在一實(shí)例中,I2字段的位被定義如下:一般寄存器儲(chǔ)存屏敝(GRSM)210(圖2B):I2字段的位0至7含有一般寄存器儲(chǔ)存屏敝(GRSM)。GRSM的每一位表示一般寄存器的偶奇對(duì),其中位0表示寄存器0及1,位1表示寄存器2及3,等等。當(dāng)最外部TBEGIN指令的GRSM中的位為0時(shí),不儲(chǔ)存對(duì)應(yīng)寄存器對(duì)。當(dāng)最外部TBEGIN指令的GRSM中的位為1時(shí),將對(duì)應(yīng)寄存器對(duì)儲(chǔ)存于不能由程序直接地存取的依賴于模型的位置中。若事務(wù)中止,則當(dāng)執(zhí)行最外部TBEGIN指令時(shí),將已儲(chǔ)存寄存器對(duì)恢復(fù)為其內(nèi)容。當(dāng)事務(wù)中止時(shí),不恢復(fù)所有其他(未儲(chǔ)存)一般寄存器的內(nèi)容。在惟最外部TBEGIN除外的所有TBEGIN上忽略一般寄存器儲(chǔ)存屏敝。允許AR修改(A)212:A控制(I2字段的位12)控制是否允許事務(wù)修改存取寄存器。有效允許AR修改控制為針對(duì)當(dāng)前嵌套層級(jí)及針對(duì)所有外部層級(jí)的TBEGIN指令中的A控制的邏輯AND。若有效A控制為0,則在嘗試修改任何存取寄存器時(shí)事務(wù)將用中止碼11(受限定指令)進(jìn)行中止。若有效A控制為1,則在存取寄存器被修改(不存在任何其他中止條件)時(shí)事務(wù)將不中止。允許浮點(diǎn)運(yùn)算(F)214:F控制(I2字段的位13)控制是否允許事務(wù)執(zhí)行指定浮點(diǎn)指令。有效允許浮點(diǎn)運(yùn)算控制為針對(duì)當(dāng)前嵌套層級(jí)及針對(duì)所有外部層級(jí)的TBEGIN指令中的F控制的邏輯AND。若有效F控制為0,則(a)在嘗試執(zhí)行浮點(diǎn)指令時(shí)事務(wù)將用中止碼11(受限定指令)進(jìn)行中止,且(b)浮點(diǎn)控制寄存器(FPCR)的字節(jié)2中的數(shù)據(jù)異常碼(DXC)將不由任何數(shù)據(jù)異常程序異常情況設(shè)定。若有效F控制為1,則(a)在嘗試執(zhí)行浮點(diǎn)指令(不存在任何其他中止條件)時(shí)事務(wù)將不中止,且(b)FPCR中的DXC可由數(shù)據(jù)異常程序異常情況設(shè)定。程序中斷篩選控制(PIFC)216:I2字段的位14至15為程序中斷篩選控制(PIFC)。PIFC控制在CPU處于事務(wù)執(zhí)行模式時(shí)發(fā)生的某些類別的程序異常情況(例如,尋址異常、數(shù)據(jù)異常、操作異常、保護(hù)異常等等)是否引起中斷。有效PIFC為針對(duì)當(dāng)前嵌套層級(jí)及針對(duì)所有外部層級(jí)的TBEGIN指令中的PIFC的最高值。當(dāng)有效PIFC為0時(shí),所有程序異常情況引起中斷。當(dāng)有效PIFC為1時(shí),具有事務(wù)執(zhí)行類別1及2的程序異常情況引起中斷。(取決于異常的嚴(yán)重性,每一程序異常情況被指派至少一事務(wù)執(zhí)行類別。嚴(yán)重性基于在事務(wù)執(zhí)行的重復(fù)執(zhí)行期間復(fù)原的可能性,及操作系統(tǒng)是否需要查看中斷。)當(dāng)有效PIFC為2時(shí),具有事務(wù)執(zhí)行類別1的程序異常情況引起中斷。保留為3的PIFC。I2字段的位8至11(指令的位40至43)被保留且應(yīng)含有0;否則,程序在未來(lái)可不相容地操作。參看圖3A至圖3B來(lái)描述事務(wù)開(kāi)始受限(TBEGINC)指令的格式的一實(shí)施例。在一實(shí)例中,TBEGINC300包括:操作碼字段302,其包括指定事務(wù)開(kāi)始受限操作的操作碼;基本字段(B1)304;位移字段(D1)306;及立即字段(I2)308。將由B1304指定的一般寄存器的內(nèi)容添加至D1306以獲得第一操作數(shù)地址。然而,在用事務(wù)開(kāi)始受限指令的情況下,第一操作數(shù)地址不用以存取存儲(chǔ)器。取而代之,指令的B1字段包括0;否則,辨識(shí)出規(guī)格異常。在一實(shí)施例中,I2字段包括各種控制,這些控制的實(shí)例在圖3B中予以描繪。在一實(shí)例中,I2字段的位被定義如下:一般寄存器儲(chǔ)存屏敝(GRSM)310:I2字段的位0至7含有一般寄存器儲(chǔ)存屏敝(GRSM)。GRSM的每一位表示一般寄存器的偶奇對(duì),其中位0表示寄存器0及1,位1表示寄存器2及3,等等。當(dāng)GRSM中的位為0時(shí),不儲(chǔ)存對(duì)應(yīng)寄存器對(duì)。當(dāng)GRSM中的位為1時(shí),將對(duì)應(yīng)寄存器對(duì)儲(chǔ)存于不能由程序直接地存取的依賴于模型的位置中。若事務(wù)中止,則當(dāng)執(zhí)行最外部TRANSACTIONBEGIN指令時(shí),將已儲(chǔ)存寄存器對(duì)恢復(fù)為其內(nèi)容。當(dāng)受限事務(wù)中止時(shí),不恢復(fù)所有其他(未儲(chǔ)存)一般寄存器的內(nèi)容。當(dāng)TBEGINC用以在非受限事務(wù)執(zhí)行模式下繼續(xù)執(zhí)行時(shí),忽略一般寄存器儲(chǔ)存屏敝。允許AR修改(A)312:A控制(I2字段的位12)控制是否允許事務(wù)修改存取寄存器。有效允許AR修改控制為針對(duì)當(dāng)前嵌套層級(jí)及針對(duì)任何外部TBEGIN或TBEGINC指令的TBEGINC指令的A控制中的邏輯AND。若有效A控制為0,則在嘗試修改任何存取寄存器時(shí)事務(wù)將用中止碼11(受限定指令)進(jìn)行中止。若有效A控制為1,則在存取寄存器被修改(不存在任何其他中止條件)時(shí)事務(wù)將不中止。I2字段的位8至11及13至15(指令的位40至43及45至47)被保留且應(yīng)含有0。事務(wù)開(kāi)始指令的結(jié)束由TRANSACTIONEND(TEND)指令指定,該TRANSACTIONEND(TEND)指令的格式在圖4中予以描繪。作為一實(shí)例,TEND指令400包括操作碼字段402,操作碼字段402包括指定事務(wù)結(jié)束操作的操作碼。關(guān)于事務(wù)執(zhí)行設(shè)施而使用多個(gè)術(shù)語(yǔ),且因此,僅出于方便起見(jiàn),下文以按字母排序次序提供術(shù)語(yǔ)清單。在一實(shí)施例中,這些術(shù)語(yǔ)具有以下定義:中止:當(dāng)事務(wù)在引起事務(wù)嵌套深度為0的TRANSACTIONEND指令之前結(jié)束時(shí),事務(wù)中止。在一實(shí)施例中,當(dāng)事務(wù)中止時(shí),發(fā)生以下情形:·由事務(wù)的任何及所有層級(jí)進(jìn)行的事務(wù)儲(chǔ)存存取被舍棄(亦即,未被交付)?!び墒聞?wù)的任何及所有層級(jí)進(jìn)行的非事務(wù)儲(chǔ)存存取被交付。·由最外部TRANSACTIONBEGIN指令的一般寄存器儲(chǔ)存屏敝(GRSM)指明的寄存器在事務(wù)執(zhí)行之前恢復(fù)為其內(nèi)容(亦即,恢復(fù)為其在執(zhí)行最外部TRANSACTIONBEGIN指令時(shí)的內(nèi)容)。未由最外部TRANSACTIONBEGIN指令的一般寄存器儲(chǔ)存屏敝指明的一般寄存器未被恢復(fù)?!ご嫒〖拇嫫鳌⒏↑c(diǎn)寄存器及浮點(diǎn)控制寄存器未被恢復(fù)。當(dāng)事務(wù)中止時(shí),保持在事務(wù)執(zhí)行期間對(duì)這些寄存器進(jìn)行的任何改變。事務(wù)可歸因于多種原因而中止,這些原因包括受限定指令的已嘗試執(zhí)行、受限定資源的已嘗試修改、事務(wù)沖突、超過(guò)各種CPU資源、任何解譯性執(zhí)行攔截條件、任何中斷、TRANSACTIONABORT指令及其他原因。事務(wù)中止碼提供事務(wù)為何可中止的特定原因。參看圖5來(lái)描述TRANSACTIONABORT(TABORT)指令的格式的一實(shí)例。作為一實(shí)例,TABORT指令500包括:操作碼字段502,其包括指定事務(wù)中止操作的操作碼;基本字段(B2)504;及位移字段(D2)506。當(dāng)B2字段為非零時(shí),將由B2504指定的一般寄存器的內(nèi)容添加至D2506以獲得第二操作數(shù)地址;否則,第二操作數(shù)地址僅由D2字段形成,且忽略B2字段。第二操作數(shù)地址不用以尋址數(shù)據(jù);取而代之,該地址形成在中止處理期間置放于事務(wù)診斷區(qū)塊中的事務(wù)中止碼。用于第二操作數(shù)地址的地址計(jì)算遵循地址算術(shù)規(guī)則:在24位尋址模式下,將位0至29設(shè)定為0;在31位尋址模式下,將位0至32設(shè)定為0。交付:在最外部TRANSACTIONEND指令完成時(shí),CPU交付由事務(wù)進(jìn)行的儲(chǔ)存存取(亦即,最外部事務(wù)及任何嵌套層級(jí)),使得這些儲(chǔ)存存取可為其他CPU及I/O子系統(tǒng)所見(jiàn)。如由其他CPU且由I/O子系統(tǒng)所觀察,當(dāng)發(fā)生交付時(shí),由事務(wù)的所有嵌套層級(jí)進(jìn)行的所有提取及儲(chǔ)存存取看來(lái)像是作為單一并行操作而發(fā)生。一般寄存器、存取寄存器、浮點(diǎn)寄存器及浮點(diǎn)控制寄存器的內(nèi)容未藉由交付程序修改。當(dāng)交付事務(wù)的儲(chǔ)存時(shí),保持在事務(wù)執(zhí)行期間對(duì)這些寄存器進(jìn)行的任何改變。沖突:由一個(gè)CPU進(jìn)行的事務(wù)存取與(a)由另一CPU進(jìn)行的事務(wù)存取或非事務(wù)存取沖突,或與(b)由I/O子系統(tǒng)進(jìn)行的非事務(wù)存取沖突(若兩種存取針對(duì)同一高速緩存行內(nèi)的任何位置,且這些存取中的一個(gè)或多個(gè)為儲(chǔ)存)。沖突可藉由CPU對(duì)指令的理論式執(zhí)行而偵測(cè),即使沖突不可以概念序列被偵測(cè)亦如此。受限事務(wù):受限事務(wù)為在受限事務(wù)執(zhí)行模式下執(zhí)行且經(jīng)受以下限制的事務(wù):·一般指令的子集可用。·可執(zhí)行有限數(shù)目個(gè)指令?!た纱嫒∮邢迶?shù)目個(gè)儲(chǔ)存操作數(shù)位置。·事務(wù)限于單一嵌套層級(jí)。在不存在重復(fù)中斷或與其他CPU或I/O子系統(tǒng)的沖突時(shí),受限事務(wù)最終完成,因此無(wú)需中止處理例程。下文詳細(xì)地描述受限事務(wù)。當(dāng)在CPU已經(jīng)處于非受限事務(wù)執(zhí)行模式時(shí)執(zhí)行TRANSACTIONBEGIN受限(TBEGINC)指令時(shí),執(zhí)行作為嵌套非受限事務(wù)而繼續(xù)。受限事務(wù)執(zhí)行模式:當(dāng)事務(wù)嵌套深度為0且事務(wù)由TBEGINC指令起始時(shí),CPU進(jìn)入受限事務(wù)執(zhí)行模式。在CPU處于受限事務(wù)執(zhí)行模式時(shí),事務(wù)嵌套深度為1。嵌套事務(wù):當(dāng)在CPU處于非受限事務(wù)執(zhí)行模式時(shí)發(fā)出TRANSACTIONBEGIN指令時(shí),事務(wù)為嵌套。事務(wù)執(zhí)行設(shè)施使用被稱作扁平化嵌套的模型。在扁平化嵌套模式下,由內(nèi)部事務(wù)進(jìn)行的儲(chǔ)存不能由其他CPU及I/O子系統(tǒng)觀察直至最外部事務(wù)交付其儲(chǔ)存為止。相似地,若事務(wù)中止,則所有嵌套事務(wù)中止,且舍棄所有嵌套事務(wù)的所有事務(wù)儲(chǔ)存。圖6中描繪嵌套事務(wù)的一實(shí)例。如圖所示,第一TBEGIN600啟動(dòng)最外部事務(wù)601,TBEGIN602啟動(dòng)第一嵌套事務(wù),且TBEGIN604啟動(dòng)第二嵌套事務(wù)。在此實(shí)例中,TBEGIN604及TEND606定義最內(nèi)部事務(wù)608。當(dāng)TEND610執(zhí)行時(shí),針對(duì)最外部事務(wù)及所有內(nèi)部事務(wù)交付(612)事務(wù)儲(chǔ)存。非受限事務(wù):非受限事務(wù)為在非受限事務(wù)執(zhí)行模式下執(zhí)行的事務(wù)。盡管非受限事務(wù)并不以如同受限事務(wù)的方式受到限制,但非受限事務(wù)仍可歸因于多種原因而中止。非受限事務(wù)執(zhí)行模式:當(dāng)事務(wù)由TBEGIN指令起始時(shí),CPU進(jìn)入非受限事務(wù)執(zhí)行模式。在CPU處于非受限事務(wù)執(zhí)行模式時(shí),事務(wù)嵌套深度可自1至最大事務(wù)嵌套深度而變化。非事務(wù)存?。悍鞘聞?wù)存取為由CPU在不處于事務(wù)執(zhí)行模式時(shí)進(jìn)行的儲(chǔ)存操作數(shù)存取(亦即,在事務(wù)外的傳統(tǒng)儲(chǔ)存存取)。另外,由I/O子系統(tǒng)進(jìn)行的存取為非事務(wù)存取。另外,NONTRANSACTIONALSTORE指令可用以在CPU處于非受限事務(wù)執(zhí)行模式時(shí)造成非事務(wù)儲(chǔ)存存取。參看圖7來(lái)描述NONTRANSACTIONALSTORE指令的格式的一實(shí)施例。作為一實(shí)例,NONTRANSACTIONALSTORE指令700包括:復(fù)數(shù)個(gè)操作碼字段702a、702b,其指定指明非事務(wù)儲(chǔ)存操作的操作碼;寄存器字段(R1)704,其指定寄存器,該寄存器的內(nèi)容被稱作第一操作數(shù);索引字段(X2)706;基本字段(B2)708;第一位移字段(DL2)710;及第二位移字段(DH2)712。將由X2字段及B2字段指明的一般寄存器的內(nèi)容添加至DH2字段及DL2字段的內(nèi)容的串連的內(nèi)容以形成第二操作數(shù)地址。當(dāng)X2字段或B2字段中任一個(gè)或兩個(gè)為0時(shí),對(duì)應(yīng)寄存器不參與該添加。使64位第一操作數(shù)在第二操作數(shù)位置處非事務(wù)地置于不變。由DH2字段及DL2字段的串連形成的位移被視為20位帶正負(fù)號(hào)二進(jìn)位整數(shù)。第二操作數(shù)用以在雙字組邊界上對(duì)準(zhǔn);否則,辨識(shí)出規(guī)格異常且抑制操作。外部/最外部事務(wù):具有較低編號(hào)事務(wù)嵌套深度的事務(wù)為外部事務(wù)。具有為1的事務(wù)嵌套深度值的事務(wù)為最外部事務(wù)。最外部TRANSACTIONBEGIN指令為在事務(wù)嵌套深度最初為0時(shí)執(zhí)行的指令。最外部TRANSACTIONEND指令為使事務(wù)嵌套深度自1轉(zhuǎn)變至0的指令。在此實(shí)施例中,受限事務(wù)為最外部事務(wù)。程序中斷篩選:當(dāng)事務(wù)歸因于某些程序異常情況而中止時(shí),程序可視情況防止發(fā)生中斷。此技術(shù)被稱作程序中斷篩選。程序中斷篩選經(jīng)受中斷的事務(wù)類別、來(lái)自TRANSACTIONBEGIN指令的有效程序中斷篩選控制及控制寄存器0中的事務(wù)執(zhí)行程序中斷篩選覆寫。事務(wù):在CPU處于事務(wù)執(zhí)行模式時(shí),事務(wù)包括所進(jìn)行的儲(chǔ)存操作數(shù)存取及所變更的選擇的一般寄存器。對(duì)于非受限事務(wù),儲(chǔ)存操作數(shù)存取可包括事務(wù)存取及非事務(wù)存取兩者。對(duì)于受限事務(wù),儲(chǔ)存操作數(shù)存取限于事務(wù)存取。如由其他CPU及I/O子系統(tǒng)所觀察,由CPU在處于事務(wù)執(zhí)行模式時(shí)進(jìn)行的所有儲(chǔ)存操作數(shù)存取看來(lái)像是作為單一并行操作而發(fā)生。若事務(wù)中止,則舍棄事務(wù)儲(chǔ)存存取,且使由最外部TRANSACTIONBEGIN指令的一般寄存器儲(chǔ)存屏敝指明的任何寄存器恢復(fù)為其在事務(wù)執(zhí)行之前的內(nèi)容。事務(wù)存?。菏聞?wù)存取為在CPU處于事務(wù)執(zhí)行模式時(shí)進(jìn)行的儲(chǔ)存操作數(shù)存取,惟由NONTRANSACTIONALSTORE指令進(jìn)行的存取除外。事務(wù)執(zhí)行模式:術(shù)語(yǔ)事務(wù)執(zhí)行模式描述非受限事務(wù)執(zhí)行模式及受限事務(wù)執(zhí)行模式兩者的共同操作。因此,當(dāng)描述該操作時(shí),術(shù)語(yǔ)非受限及受限用以限定事務(wù)執(zhí)行模式。當(dāng)事務(wù)嵌套深度為0時(shí),CPU不處于事務(wù)執(zhí)行模式(亦被稱作非事務(wù)執(zhí)行模式)。如由CPU所觀察,在事務(wù)執(zhí)行模式下進(jìn)行的提取及儲(chǔ)存并非不同于在不處于事務(wù)執(zhí)行模式時(shí)進(jìn)行的提取及儲(chǔ)存。在z/Architecture的一實(shí)施例中,事務(wù)執(zhí)行設(shè)施在控制寄存器0的位8至9、控制寄存器2的位61至63、事務(wù)嵌套深度、事務(wù)診斷區(qū)塊地址及事務(wù)中止程序狀態(tài)字組(PSW)的控制下。在初始CPU重設(shè)之后,將控制寄存器0的位的位置8至9、控制寄存器2的位的位置62至63及事務(wù)嵌套深度的內(nèi)容設(shè)定為0。當(dāng)事務(wù)執(zhí)行控制(控制寄存器0的位8)為0時(shí),不能將CPU置于事務(wù)執(zhí)行模式。下文描述關(guān)于各種控制的另外細(xì)節(jié)。如所指示,事務(wù)執(zhí)行設(shè)施由控制寄存器0中的兩個(gè)位及控制寄存器2中的三個(gè)位控制。舉例而言:控制寄存器0位:在一實(shí)施例中,位指派如下:事務(wù)執(zhí)行控制(TXC):控制寄存器0的位8為事務(wù)執(zhí)行控制。此位提供可用來(lái)使控制程序(例如,操作系統(tǒng))指示事務(wù)執(zhí)行設(shè)施是否可由該程序使用的機(jī)制。位8將為1以成功地進(jìn)入事務(wù)執(zhí)行模式。當(dāng)控制寄存器0的位8為0時(shí),EXTRACTTRANSACTIONNESTINGDEPTH、TRANSACTIONBEGIN及TRANSACTIONEND指令的已嘗試執(zhí)行引起特殊操作執(zhí)行。參看圖8來(lái)描述EXTRACTTRANSACTIONNESTINGDEPTH指令的格式的一實(shí)施例。作為一實(shí)例,EXTRACTTRANSACTIONNESTINGDEPTH指令800包括:操作碼字段802,其指定指示擷取事務(wù)嵌套深度操作的操作碼;及寄存器字段R1804,其指明一般寄存器。將當(dāng)前事務(wù)嵌套深度置于一般寄存器R1的位48至63中。該寄存器的位0至31保持不變,且將該寄存器的位32至47設(shè)定為0。在一另外實(shí)施例中,亦將最大事務(wù)嵌套深度置于一般寄存器R1中,諸如,位16至31中。事務(wù)執(zhí)行程序中斷篩選覆寫(PIFO):控制寄存器0的位9為事務(wù)執(zhí)行程序中斷篩選覆寫。此位提供可用來(lái)使控制程序確保在CPU處于事務(wù)執(zhí)行模式時(shí)發(fā)生的任何程序異常情況引起中斷而不管由TRANSACTIONBEGIN指令指定或暗示的有效程序中斷篩選控制的機(jī)制??刂萍拇嫫?位:在一實(shí)施例中,指派如下:事務(wù)診斷范疇(TDS):控制寄存器2的位61控制該寄存器的位62至63中的事務(wù)診斷控制(TDC)的適用性,如下:TDS值含義0TDC適用而不管CPU處于問(wèn)題狀態(tài)或監(jiān)督狀態(tài)。1僅當(dāng)CPU處于問(wèn)題狀態(tài)時(shí)TDC才適用。當(dāng)CPU處于監(jiān)督狀態(tài)時(shí),處理如同TDC含有0一樣。事務(wù)診斷控制(TDC):控制寄存器2的位62至63為可用以使事務(wù)出于診斷目的而隨機(jī)地中止的2位無(wú)正負(fù)號(hào)整數(shù)。在一實(shí)例中,TDC的編碼如下:TDC值含義0正常操作;事務(wù)并不由于TDC而中止。1在隨機(jī)指令處但在最外部TRANSACTIONEND指令的執(zhí)行之前中止每一事務(wù)。2在隨機(jī)指令處中止隨機(jī)事務(wù)。3保留當(dāng)事務(wù)歸因于非零TDC而中止時(shí),則可發(fā)生以下情形中任一者:·將中止碼設(shè)定為碼7至11、13至16或255中任一個(gè),其中該碼的值由CPU隨機(jī)地選擇;將條件碼設(shè)定成對(duì)應(yīng)于中止碼。下文進(jìn)一步描述中止碼。·對(duì)于非受限事務(wù),將條件碼設(shè)定為1。在此狀況下,中止碼不適用。這是依賴于是否實(shí)施TDC值1的模型。若未實(shí)施,則為1的值起作用就如同指定2一樣。對(duì)于受限事務(wù),處理為1的TDC值就如同指定為2的TDC值一樣。若指定為3的TDC值,則結(jié)果是不可預(yù)測(cè)的。事務(wù)診斷區(qū)塊地址(TDBA)當(dāng)最外部TRANSACTIONBEGIN(TBEGIN)指令的B1字段為非零時(shí),自該指令的第一操作數(shù)地址設(shè)定有效事務(wù)診斷區(qū)塊地址(TDBA)。當(dāng)CPU處于主要空間模式或存取寄存器模式時(shí),TDBA指明主要地址空間中的位置。當(dāng)CPU處于次要空間模式或本籍空間模式時(shí),TDBA分別指明次要地址空間或本籍地址空間中的位置。當(dāng)DAT(動(dòng)態(tài)地址轉(zhuǎn)譯)關(guān)斷時(shí),TDBA指明真實(shí)存儲(chǔ)器中的位置。若事務(wù)隨后中止,則TDBA由CPU使用以定位事務(wù)診斷區(qū)塊(被稱作TBEGIN指定的TDB)。TDBA的最右側(cè)三個(gè)位為0,此意謂TBEGIN指定的TDB處于雙字組邊界上。當(dāng)最外部TRANSACTIONBEGIN(TBEGIN)指令的B1字段為0時(shí),事務(wù)診斷區(qū)塊地址無(wú)效,且若事務(wù)隨后中止,則不儲(chǔ)存TBEGIN指定的TDB。事務(wù)中止PSW(TAPSW)在嵌套深度最初為0時(shí)TRANSACTIONBEGIN(TBEGIN)指令的執(zhí)行期間,將事務(wù)中止PSW設(shè)定為當(dāng)前PSW的內(nèi)容;且事務(wù)中止PSW的指令地址指明下一循序指令(亦即,在最外部TBEGIN之后的指令)。在嵌套深度最初為0時(shí)TRANSACTIONBEGIN受限(TBEGINC)指令的執(zhí)行期間,將事務(wù)中止PSW設(shè)定為當(dāng)前PSW的內(nèi)容,惟事務(wù)中止PSW的指令地址指明TBEGINC指令(而非在TBEGINC之后的下一循序指令)除外。當(dāng)事務(wù)中止時(shí),用指示中止情況的嚴(yán)重性的碼來(lái)取代事務(wù)中止PSW中的條件碼。隨后,若事務(wù)歸因于不引起中斷的原因而中止,則自事務(wù)中止PSW載入PSW;若事務(wù)歸因于引起中斷的原因而中止,則將事務(wù)中止PSW儲(chǔ)存為中斷舊PSW。在任何內(nèi)部TRANSACTIONBEGIN指令的執(zhí)行期間不變更事務(wù)中止PSW。事務(wù)嵌套深度(TND)舉例而言,事務(wù)嵌套深度為每當(dāng)用條件碼0來(lái)完成TRANSACTIONBEGIN指令時(shí)累加且每當(dāng)完成TRANSACTIONEND指令時(shí)遞減的16位無(wú)正負(fù)號(hào)值。當(dāng)事務(wù)中止時(shí)或由CPU重設(shè)時(shí),將事務(wù)嵌套深度重設(shè)至0。在一實(shí)施例中,實(shí)施為為15之最大TND。在一實(shí)施中,當(dāng)CPU處于受限事務(wù)執(zhí)行模式時(shí),事務(wù)嵌套深度為1。另外,盡管最大TND可被表示為4位值,但TND經(jīng)定義為16位值以促進(jìn)其在事務(wù)診斷區(qū)塊中的檢測(cè)。事務(wù)診斷區(qū)塊(TDB)當(dāng)事務(wù)中止時(shí),各種狀態(tài)信息可儲(chǔ)存于事務(wù)診斷區(qū)塊(TDB)中,如下:1.TBEGIN指定的TDB:對(duì)于非受限事務(wù),當(dāng)最外部TBEGIN指令的B1字段為非零時(shí),該指令的第一操作數(shù)地址指明TBEGIN指定的TDB。此地址為可由應(yīng)用程序的中止處理例程檢驗(yàn)的應(yīng)用程序指定位置。2.程序中斷(PI)TDB:若非受限事務(wù)歸因于非篩選程序異常情況而中止時(shí),或若受限事務(wù)歸因于任何程序異常情況(亦即,引起正被辨識(shí)的程序中斷的任何情況)而中止時(shí),將PI-TDB儲(chǔ)存至前置區(qū)域中的位置中。此情形可用于使操作系統(tǒng)在其可提供的任何診斷報(bào)告中進(jìn)行檢測(cè)及登出。3.攔截TDB:若事務(wù)歸因于引起攔截的任何程序異常情況而中止(亦即,該情況造成解譯性執(zhí)行結(jié)束且造成控制傳回至主機(jī)程序),則TDB儲(chǔ)存至用于訪客操作系統(tǒng)的狀態(tài)描述區(qū)塊中指定的位置中。在一實(shí)施例中,當(dāng)TDB地址有效時(shí)(亦即,當(dāng)最外部TBEGIN指令的B1字段為非零時(shí)),僅儲(chǔ)存TBEGIN指定的TDB。對(duì)于歸因于未篩選程序異常情況的中止,將儲(chǔ)存PI-TDB或攔截TDB中僅一者。因此,可存在針對(duì)一中止而儲(chǔ)存的零個(gè)、一個(gè)或兩個(gè)TDB。下文描述關(guān)于TDB中每一個(gè)的一實(shí)例的另外細(xì)節(jié):TBEGIN指定之TDB:由有效事務(wù)診斷區(qū)塊地址指定的256字節(jié)位置。當(dāng)事務(wù)診斷區(qū)塊地址有效時(shí),事務(wù)中止時(shí)儲(chǔ)存TBEGIN指定的TDB。TBEGIN指定的TDB經(jīng)受在執(zhí)行最外部TRANSACTIONBEGIN指令時(shí)有效的所有儲(chǔ)存保護(hù)機(jī)制。用于TBEGIN指定的TDB的任何部分的PER(程序事件記錄)儲(chǔ)存變更事件在執(zhí)行最外部TBEGIN期間而非在事務(wù)中止處理期間被偵測(cè)。PER的一個(gè)目的是協(xié)助對(duì)程序進(jìn)行除錯(cuò)。作為實(shí)例,PER準(zhǔn)許向程序提醒以下類型的事件:·執(zhí)行成功分支指令。提供使事件僅在分支目標(biāo)位置處于已指明儲(chǔ)存區(qū)域內(nèi)時(shí)才發(fā)生的選項(xiàng)?!ぷ砸阎该鲀?chǔ)存區(qū)域提取指令?!ぷ兏阎该鲀?chǔ)存區(qū)域的內(nèi)容。提供使事件僅在儲(chǔ)存區(qū)域處于已指明地址空間內(nèi)時(shí)才發(fā)生的選項(xiàng)。·執(zhí)行STOREUSINGREALADDRESS指令?!?zhí)行TRANSACTIONEND指令。程序可選擇地指定出以上類型的事件中的一個(gè)或多個(gè)被辨識(shí),惟用于STOREUSINGREALADDRESS的事件可僅與儲(chǔ)存變更事件一起被指定除外。關(guān)于PER事件的信息系憑借程序中斷而提供至程序,其中該中斷的原因是在中斷碼中被識(shí)別。當(dāng)事務(wù)診斷區(qū)塊地址無(wú)效時(shí),不儲(chǔ)存TBEGIN指定的TDB。程序中斷TDB:真實(shí)位置6,144至6,399(1800至18FF十六進(jìn)位)。當(dāng)事務(wù)歸因于程序中斷而中止時(shí),儲(chǔ)存程序中斷TDB。當(dāng)事務(wù)歸因于其他原因而中止時(shí),程序中斷TDB的內(nèi)容是不可預(yù)測(cè)的。程序中斷TDB不經(jīng)受任何保護(hù)機(jī)制。當(dāng)在程序中斷期間儲(chǔ)存程序中斷TDB時(shí),PER儲(chǔ)存變更事件不針對(duì)程序中斷TDB被偵測(cè)。攔截TDB:由狀態(tài)描述的位置488至495指定的256字節(jié)主機(jī)真實(shí)位置。當(dāng)已中止事務(wù)引起訪客程序中斷攔截(亦即,攔截碼8)時(shí),儲(chǔ)存攔截TDB。當(dāng)事務(wù)歸因于其他原因而中止時(shí),攔截TDB的內(nèi)容是不可預(yù)測(cè)的。攔截TDB不經(jīng)受任何保護(hù)機(jī)制。如圖9所描繪,在一實(shí)施例中,事務(wù)診斷區(qū)塊900的字段如下:格式902:字節(jié)0含有有效性及格式指示,如下:值含義0TDB的剩余字段是不可預(yù)測(cè)的。1格式1TDB,其剩余字段在下文予以描述。2至255保留格式字段為零的TDB被稱作空值TDB。標(biāo)志904:字節(jié)1含有各種指示,如下:沖突令牌有效性(CTV):當(dāng)事務(wù)歸因于提取或儲(chǔ)存沖突(亦即,分別為中止碼9或10)而中止時(shí),字節(jié)1的位0為沖突令牌有效性指示。當(dāng)CTV指示為1時(shí),TDB的字節(jié)16至23中的沖突令牌910含有沖突被偵測(cè)的邏輯地址。當(dāng)CTV指示為0時(shí),TDB的字節(jié)16至23是不可預(yù)測(cè)的。當(dāng)事務(wù)歸因于不同于擷取或儲(chǔ)存沖突的任何原因而中止時(shí),將字節(jié)1的位0儲(chǔ)存為0。受限事務(wù)指示(CTI):當(dāng)CPU處于受限事務(wù)執(zhí)行模式時(shí),將字節(jié)1的位1設(shè)定為1。當(dāng)CPU處于非受限事務(wù)執(zhí)行模式時(shí),將字節(jié)1的位1設(shè)定為0。保留:保留字節(jié)1的位2至7且將其儲(chǔ)存為0。事務(wù)嵌套深度(TND)906:當(dāng)事務(wù)中止時(shí),字節(jié)6至7含有事務(wù)嵌套深度。事務(wù)中止碼(TAC)908:字節(jié)8至15含有64位無(wú)正負(fù)號(hào)事務(wù)中止碼。每一碼點(diǎn)指示事務(wù)被中止的原因。這是依賴于當(dāng)事務(wù)歸因于不同于程序中斷的條件而中止時(shí)事務(wù)中止碼是否儲(chǔ)存于程序中斷TDB的模型。沖突令牌910:對(duì)于歸因于提取或儲(chǔ)存沖突(亦即,分別為中止碼9及10)而中止的事務(wù),字節(jié)16至23含有沖突被偵測(cè)的儲(chǔ)存位置的邏輯地址。當(dāng)CTV位(字節(jié)1的位0)為1時(shí),沖突令牌有意義。當(dāng)CTV位為0時(shí),字節(jié)16至23是不可預(yù)測(cè)的。由于由CPU進(jìn)行的理論式執(zhí)行,沖突令牌可指明將未必由事務(wù)的概念執(zhí)行序列存取的儲(chǔ)存位置。已中止事務(wù)指令地址(ATIA)912:字節(jié)24至31含有識(shí)別在偵測(cè)到中止時(shí)正執(zhí)行的指令的指令地址。當(dāng)事務(wù)歸因于中止碼2、5、6、11、13或256或更高的中止碼而中止時(shí),或當(dāng)事務(wù)歸因于中止碼4或13而中止且程序異常情況正設(shè)為空值時(shí),ATIA直接地指向正被執(zhí)行的指令。當(dāng)事務(wù)歸因于中止碼4或12而中止且程序異常情況未設(shè)為空值時(shí),ATIA越過(guò)正被執(zhí)行的指令。當(dāng)事務(wù)歸因于中止碼7至10、14至16或255而中止時(shí),ATIA未必指示造成中止的確切指令,但可指向事務(wù)內(nèi)的較早或較遲指令。取決于如上文所描述的中止碼,若事務(wù)歸因于為執(zhí)行類型指令的目標(biāo)的指令而中止,則ATIA識(shí)別執(zhí)行類型指令,從而指向或越過(guò)該指令。ATIA并不指示執(zhí)行類型指令的目標(biāo)。當(dāng)事務(wù)中止時(shí),ATIA經(jīng)受尋址模式。在24位尋址模式下,字段的位0至40含有0。在31位尋址模式下,字段的位0至32含有0。這是依賴于當(dāng)事務(wù)歸因于不同于程序中斷之條件而中止時(shí),已中止事務(wù)指令地址是否儲(chǔ)存于程序中斷TDB中的模型。當(dāng)事務(wù)歸因于中止碼4或12而中止且程序異常情況未設(shè)為空值時(shí),ATIA并不指向造成中止的指令。藉由自ATIA減去由中斷長(zhǎng)度碼(ILC)指示的半字組的數(shù)目,在正抑制或終止的情況下或針對(duì)正完成的非PER事件可識(shí)別造成中止的指令。當(dāng)事務(wù)歸因于PER事件而中止且不存在其他程序異常情況時(shí),ATIA是不可預(yù)測(cè)的。當(dāng)事務(wù)診斷區(qū)塊地址有效時(shí),可在TBEGIN指定的TDB的字節(jié)36至39中的程序中斷識(shí)別(PIID)中檢驗(yàn)ILC。當(dāng)篩選不適用時(shí),可在真實(shí)存儲(chǔ)器中的位置140至143處的PIID中檢驗(yàn)ILC。異常存取識(shí)別(EAID)914:對(duì)于歸因于某些已篩選程序異常情況而中止的事務(wù),TBEGIN指定的TDB的字節(jié)32含有異常存取識(shí)別。在z/Architecture的一實(shí)例中,當(dāng)異常情況引起中斷時(shí),EAID的格式及EAID被儲(chǔ)存的狀況相同于真實(shí)位置160中描述的EAID的格式及EAID被儲(chǔ)存的狀況,如上文以引用方式并入的操作原理中所描述。對(duì)于出于其他原因(包括引起程序中斷的任何異常情況)而中止的事務(wù),字節(jié)32是不可預(yù)測(cè)的。在程序中斷TDB中,字節(jié)32是不可預(yù)測(cè)的。此字段僅儲(chǔ)存于由事務(wù)診斷區(qū)塊地址指明的TDB中;否則,保留該字段。EAID僅針對(duì)存取清單控制或DAT保護(hù)、ASCE類型、頁(yè)轉(zhuǎn)譯、區(qū)第一轉(zhuǎn)譯、區(qū)第二轉(zhuǎn)譯、區(qū)第三轉(zhuǎn)譯及區(qū)段轉(zhuǎn)譯程序異常情況被儲(chǔ)存。數(shù)據(jù)異常碼(DXC)916:對(duì)于歸因于已篩選數(shù)據(jù)異常程序異常情況而中止的事務(wù),TBEGIN指定的TDB的字節(jié)33含有數(shù)據(jù)異常碼。在z/Architecture的一實(shí)例中,當(dāng)異常情況引起中斷時(shí),DXC的格式及DXC被儲(chǔ)存的狀況相同于真實(shí)位置147中描述的DXC的格式及DXC被儲(chǔ)存的狀況,如上文以引用方式并入的操作原理中所描述。在一實(shí)例中,位置147包括DXC。對(duì)于出于其他原因(包括引起程序中斷的任何異常情況)而中止的事務(wù),字節(jié)33是不可預(yù)測(cè)的。在程序中斷TDB中,字節(jié)33是不可預(yù)測(cè)的。此字段僅儲(chǔ)存于由事務(wù)診斷區(qū)塊地址指明的TDB中;否則,保留該字段。僅針對(duì)數(shù)據(jù)程序異常情況而儲(chǔ)存DXC。程序中斷識(shí)別(PIID)918:對(duì)于歸因于已篩選程序中斷情況而中止的事務(wù),TBEGIN指定的TDB的字節(jié)36至39含有程序異常識(shí)別。在z/Architecture的一實(shí)例中,當(dāng)情況引起中斷時(shí),PIID的格式相同于真實(shí)位置140至143中描述的PIID的格式(如上文以引用方式并入的操作原理中所描述),惟PIID的位13至14中的指令長(zhǎng)度碼各別于異常情況被偵測(cè)的指令除外。對(duì)于出于其他原因(包括引起程序中斷的異常情況)而中止的事務(wù),字節(jié)36至39是不可預(yù)測(cè)的。在程序中斷TDB中,字節(jié)36至39是不可預(yù)測(cè)的。此字段僅儲(chǔ)存于由事務(wù)診斷區(qū)塊地址指明的TDB中;否則,保留該字段。程序中斷識(shí)別僅針對(duì)程序異常情況被儲(chǔ)存。轉(zhuǎn)譯異常識(shí)別(TEID)920:對(duì)于歸因于以下已篩選程序異常情況中任一者而中止的事務(wù),TBEGIN指定的TDB之字節(jié)40至47含有轉(zhuǎn)譯異常識(shí)別。·存取清單控制或DAT保護(hù)·ASCE類型·頁(yè)轉(zhuǎn)譯·區(qū)第一轉(zhuǎn)譯·區(qū)第二轉(zhuǎn)譯·區(qū)第三轉(zhuǎn)譯·區(qū)段轉(zhuǎn)譯異常在z/Architecture的一實(shí)例中,當(dāng)情況引起中斷時(shí),TEID的格式相同于真實(shí)位置168至175中描述的TEID的格式,如上文以引用方式并入的操作原理中所描述。對(duì)于出于其他原因(包括引起程序中斷之異常情況)而中止的事務(wù),字節(jié)40至47是不可預(yù)測(cè)的。在程序中斷TDB中,字節(jié)40至47是不可預(yù)測(cè)的。此字段僅儲(chǔ)存于由事務(wù)診斷區(qū)塊地址指明的TDB中;否則,保留該字段。中斷事件(breakingevent)地址922:對(duì)于歸因于已篩選程序異常情況而中止的事務(wù),TBEGIN指定的TDB的字節(jié)48至55含有中斷事件地址。在z/Architecture的一實(shí)例中,當(dāng)條件引起中斷時(shí),中斷事件地址的格式相同于真實(shí)位置272至279中描述的中斷事件地址的格式,如上文以引用方式并入的操作原理中所描述。對(duì)于出于其他原因(包括引起程序中斷的異常情況)而中止的事務(wù),字節(jié)48至55是不可預(yù)測(cè)的。在程序中斷TDB中,字節(jié)48至55是不可預(yù)測(cè)的。此字段僅儲(chǔ)存于由事務(wù)診斷區(qū)塊地址指明的TDB中;否則,保留該字段。下文描述關(guān)于中斷事件的另外細(xì)節(jié)。在z/Architecture的一實(shí)施例中,當(dāng)安裝PER-3設(shè)施時(shí),PER-3設(shè)施向程序提供最后指令的地址以造成CPU的循序執(zhí)行的中斷。中斷事件地址記錄可用作針對(duì)萬(wàn)用分支偵測(cè)的除錯(cuò)協(xié)助。舉例而言,此設(shè)施提供CPU中的64位寄存器,其被稱作中斷事件地址寄存器。每當(dāng)不同于TRANSACTIONABORT的指令造成循序指令執(zhí)行的中斷(亦即,PSW中的指令地址被取代,而非被累加該指令的長(zhǎng)度)時(shí),將那個(gè)指令的地址置放于中斷事件地址寄存器中。只要發(fā)生程序中斷,無(wú)論是否指示PER,皆將中斷事件地址寄存器的當(dāng)前內(nèi)容置放于真實(shí)儲(chǔ)存位置272至279中。若造成中斷事件的指令為執(zhí)行類型指令(EXECUTE或EXECUTERELATIVELONG)的目標(biāo),則將用以提取執(zhí)行類型指令的指令地址置放于中斷事件地址寄存器中。在z/Architecture的一實(shí)施例中,只要以下指令中之一者造成分支,就認(rèn)為發(fā)生中斷事件:BRANCHANDLINK(BAL,BALR);BRANCHANDSAVE(BAS,BASR);BRANCHANDSAVEANDSETMODE(BASSM);BRANCHANDSETMODE(BSM);BRANCHANDSTACK(BAKR);BRANCHONCONDITION(BC,BCR);BRANCHONCOUNT(BCT,BCTR,BCTG,BCTGR);BRANCHONINDEXHIGH(BXH,BXHG);BRANCHONINDEXLOWOREQUAL(BXLE,BXLEG);BRANCHRELATIVEONCONDITION(BRC);BRANCHRELATIVEONCONDITIONLONG(BRCL);BRANCHRELATIVEONCOUNT(BRCT,BRCTG);BRANCHRELATIVEONINDEXHIGH(BRXH,BRXHG);BRANCHRELATIVEONINDEXLOWOREQUAL(BRXLE,BRXLG);COMPAREANDBRANCH(CRB,CGRB);COMPAREANDBRANCHRELATIVE(CRJ,CGRJ);COMPAREIMMEDIATEANDBRANCH(CIB,CGIB);COMPAREIMMEDIATEANDBRANCHRELATIVE(CIJ,CGIJ);COMPARELOGICALANDBRANCH(CLRB,CLGRB);COMPARELOGICALANDBRANCHRELATIVE(CLRJ,CLGRJ);COMPARELOGICALIMMEDIATEANDBRANCH(CLIB,CLGIB);及COMPARELOGICALIMMEDIATEANDBRANCHRELATIVE(CLIJ,CLGIJ)。只要以下指令中之一者完成,就亦認(rèn)為發(fā)生中斷事件:BRANCHANDSETAUTHORITY(BSA);BRANCHINSUBSPACEGROUP(BSG);BRANCHRELATIVEANDSAVE(BRAS);BRANCHRELATIVEANDSAVELONG(BRASL);LOADPSW(LPSW);LOADPSWEXTENDED(LPSWE);PROGRAMCALL(PC);PROGRAMRETURN(PR);PROGRAMTRANSFER(PT);PROGRAMTRANSFERWITHINSTANCE(PTI);RESUMEPROGRAM(RP);及TRAP(TRAP2,TRAP4)。由于事務(wù)中止(隱含地或由于TRANSACTIONABORT指令)而不認(rèn)為發(fā)生中斷事件。依賴于模型的診斷信息924:字節(jié)112至127含有依賴于模型的診斷信息。對(duì)于惟12(已篩選程序中斷)除外的所有中止碼,將依賴于模型的診斷信息儲(chǔ)存于所儲(chǔ)存的每一TDB中。在一實(shí)施例中,依賴于模型的診斷信息包括以下各者:·字節(jié)112至119含有被稱作事務(wù)執(zhí)行分支指示(TXBI)的64個(gè)位的向量。該向量的前63個(gè)位中每一者指示在CPU處于事務(wù)執(zhí)行模式時(shí)執(zhí)行分支指令的結(jié)果,如下:值含義0指令在無(wú)分支的情況下完成。1指令在有分支的情況下完成。位0表示第一此類分支指令的結(jié)果,位1表示第二此類指令的結(jié)果,等等。若在CPU處于事務(wù)執(zhí)行模式時(shí)執(zhí)行少于63個(gè)的分支指令,則將不對(duì)應(yīng)于分支指令的最右側(cè)位設(shè)定為0(包括位63)。當(dāng)執(zhí)行多于63個(gè)的分支指令時(shí),將TXBI的位63設(shè)定為1。TXBI中的位由如上文所列出的能夠造成中斷事件的指令設(shè)定,惟以下各者除外:-任何受限定指令并不使位設(shè)定于TXBI中。-對(duì)于(例如)z/Architecture的指令,當(dāng)BRANCHONCONDITION、BRANCHRELATIVEONCONDITION或BRANCHRELATIVEONCONDITIONLONG指令的M1字段為0時(shí),或當(dāng)以下指令的R2字段為0時(shí),這是依賴于該指令的執(zhí)行是否使位設(shè)定于TXBI的模型。·BRANCHANDLINK(BALR);BRANCHANDSAVE(BASR);BRANCHANDSAVEANDSETMODE(BASSM);BRANCHANDSETMODE(BSM);BRANCHONCONDITION(BCR);及BRANCHONCOUNT(BCTR,BCTGR)·對(duì)于由主機(jī)存取異常造成的中止條件,將字節(jié)127的位的位置0設(shè)定為1。對(duì)于所有其他中止條件,將字節(jié)127的位的位置0設(shè)定為0?!?duì)于由載入/儲(chǔ)存單元(LSU)偵測(cè)的中止條件,字節(jié)127的最右側(cè)五個(gè)位含有原因的指示。對(duì)于未由LSU偵測(cè)的中止條件,保留字節(jié)127。一般寄存器930:字節(jié)128至255含有在事務(wù)中止時(shí)的一般寄存器0至15的內(nèi)容。這些寄存器以升序被儲(chǔ)存,其以字節(jié)128至135中的一般寄存器0開(kāi)始,接著為字節(jié)136至143中的一般寄存器1,等等。保留:保留所有其他字段。除非另有指示,否則保留字段的內(nèi)容是不可預(yù)測(cè)的。如由其他CPU及I/O子系統(tǒng)所觀察,在事務(wù)中止期間儲(chǔ)存TDB為在任何非事務(wù)儲(chǔ)存之后發(fā)生的多重存取參考。事務(wù)可歸因于在事務(wù)執(zhí)行的立即配置的范疇外的原因而中止。舉例而言,由超管理器(諸如,LPAR或z/VM)辨識(shí)的瞬態(tài)事件可造成事務(wù)中止。提供于事務(wù)診斷區(qū)塊中的信息意欲用于診斷目的且實(shí)質(zhì)上正確。然而,因?yàn)橹兄箍赡芤延稍诹⒓磁渲玫姆懂犕獾氖录斐?,所以諸如中止碼或程序中斷識(shí)別的信息可能不準(zhǔn)確地反映該配置內(nèi)的情況,且因此不應(yīng)被用來(lái)判定程序動(dòng)作。除了儲(chǔ)存于TDB中的診斷信息以外,當(dāng)事務(wù)歸因于任何數(shù)據(jù)異常程序異常情況而中止且AFP寄存器控制(控制寄存器0的位45)及有效允許浮點(diǎn)運(yùn)算控制(F)兩者皆為1時(shí),將數(shù)據(jù)異常碼(DXC)置放至浮點(diǎn)控制寄存器(FPCR)的字節(jié)2中,而不管篩選是否應(yīng)用于程序異常情況。當(dāng)事務(wù)中止且AFP寄存器控制或有效允許浮點(diǎn)運(yùn)算控制中之一個(gè)或兩個(gè)為0時(shí),不將DXC置放至FPCR中。在一實(shí)施例中,如本文所指示,當(dāng)安裝事務(wù)執(zhí)行設(shè)施時(shí),提供以下一般指令?!XTRACTTRANSACTIONNESTINGDEPTH·NONTRANSACTIONALSTORE·TRANSACTIONABORT·TRANSACTIONBEGIN·TRANSACTIONEND當(dāng)CPU處于事務(wù)執(zhí)行模式時(shí),某些指令的已嘗試執(zhí)行受到限定且造成事務(wù)中止。當(dāng)在受限事務(wù)執(zhí)行模式下發(fā)出時(shí),受限定指令的已嘗試執(zhí)行亦可引起事務(wù)限制程序中斷,或可如同事務(wù)不受到限制一樣引起執(zhí)行進(jìn)行。在z/Architecture的一實(shí)例中,作為實(shí)例,受限定指令包括以下非特殊權(quán)限指令:COMPAREANDSWAPANDSTORE;MODIFYRUNTIMEINSTRUMENTATIONCONTROLS;PERFORMLOCKEDOPERATION;PREFETCHDATA(RELATIVELONG),此時(shí)M1字段中的碼為6或7;STORECHARACTERSUNDERMASKHIGH,此時(shí)M3字段為0且R1字段中的碼為6或7;STOREFACILITYLISTEXTENDED;STORERUNTIMEINSTRUMENTATIONCONTROLS;SUPERVISORCALL;及TESTRUNTIMEINSTRUMENTATIONCONTROLS。在以上清單中,COMPAREANDSWAPANDSTORE及PERFORMLOCKEDOPERATION為可藉由在TX模式下使用基本指令而更有效率地實(shí)施的復(fù)雜指令。針對(duì)PREFETCHDATA及PREFETCHDATARELATIVELONG的狀況受到限定,這是由于為6及7的碼釋放高速緩存行,從而使?jié)撛诘卦谑聞?wù)完成之前交付數(shù)據(jù)成為必要。SUPERVISORCALL受到限定,這是由于其造成中斷(此情形造成事務(wù)中止)。在下文所列出的條件下,以下指令受到限定:·BRANCHANDLINK(BALR)、BRANCHANDSAVE(BASR)及BRANCHANDSAVEANDSETMODE,此時(shí)指令的R2字段為非零且分支追蹤被啟用?!RANCHANDSAVEANDSETMODE及BRANCHANDSETMODE,此時(shí)R2字段為非零且模式追蹤被啟用;SETADDRESSINGMODE,此時(shí)模式追蹤被啟用。·MONITORCALL,此時(shí)監(jiān)視事件情況被辨識(shí)。以上清單包括可形成追蹤項(xiàng)的指令。若這些指令被允許事務(wù)地執(zhí)行且形成追蹤項(xiàng),且事務(wù)隨后中止,則將推進(jìn)控制寄存器12中的追蹤表指針,但將舍棄至追蹤表的儲(chǔ)存。此情形將在追蹤表中留下不一致間隙。因此,指令在其將形成追蹤項(xiàng)的狀況下受到限定。當(dāng)CPU處于事務(wù)執(zhí)行模式時(shí),這是依賴于以下指令是否受到限定的模型:CIPHERMESSAGE;CIPHERMESSAGEWITHCFB;CIPHERMESSAGEWITHCHAINING;CIPHERMESSAGEWITHCOUNTER;CIPHERMESSAGEWITHOFB;COMPRESSIONCALL;COMPUTEINTERMEDIATEMESSAGEDIGEST;COMPUTELASTMESSAGEDIGEST;COMPUTEMESSAGEAUTHENTICATIONCODE;CONVERTUNICODE-16TOUNICODE-32;CONVERTUNICODE-16TOUNICODE-8;CONVERTUNICODE-32TOUNICODE-16;CONVERTUNICODE-32TOUNICODE-8;CONVERTUNICODE-8TOUNICODE-16;CONVERTUNICODE-8TOUNICODE-32;PERFORMCRYPTOGRAPHICCOMPUTATION;RUNTIMEINSTRUMENTATIONOFF;及RUNTIMEINSTRUMENTATIONON。以上指令中每一個(gè)當(dāng)前由硬件共處理器實(shí)施,或已處于過(guò)去機(jī)器中,且因此被認(rèn)為受到限定。當(dāng)有效允許AR修改(A)控制為0時(shí),以下指令受到限定:COPYACCESS;LOADACCESSMULTIPLE;LOADADDRESSEXTENDED;及SETACCESS。以上指令中每一個(gè)造成存取寄存器的內(nèi)容被修改。若TRANSACTIONBEGIN指令中的A控制為0,則程序已明確地指示出將不允許存取寄存器修改。當(dāng)有效允許浮點(diǎn)運(yùn)算(F)控制為0時(shí),浮點(diǎn)指令受到限定。在某些情況下,以下指令可受到限定:EXTRACTCPUTIME;EXTRACTPSW;STORECLOCK;STORECLOCKEXTENDED;及STORECLOCKFAST。以上指令中每一個(gè)經(jīng)受解譯性執(zhí)行狀態(tài)描述中的攔截控制。若超管理器已設(shè)定針對(duì)此等指令的攔截控制,則這些指令的執(zhí)行可歸因于超管理器實(shí)施而被拖延;因此,若發(fā)生攔截,可認(rèn)為這些指令受到限定。當(dāng)非受限事務(wù)由于受限定指令的已嘗試執(zhí)行而中止時(shí),將事務(wù)診斷區(qū)塊中的事務(wù)中止碼設(shè)定為11(受限定指令),且將條件碼設(shè)定為3,惟如下情形除外:當(dāng)非受限事務(wù)歸因于原本將會(huì)引起特殊權(quán)限操作異常的指令的已嘗試執(zhí)行而中止時(shí),無(wú)論將中止碼設(shè)定為11(受限定指令)或4(由特殊權(quán)限操作程序中斷的辨識(shí)引起的未篩選程序中斷)而都是不可預(yù)測(cè)的。當(dāng)非受限事務(wù)歸因于在M1字段中的碼為6或7時(shí)PREFETCHDATA(RELATIVELONG)的已嘗試執(zhí)行或在M3字段為0且R1字段中的碼為6或7時(shí)STORECHARACTERSUNDERMASKHIGH的已嘗試執(zhí)行而中止時(shí),無(wú)論將中止碼設(shè)定為11(受限定指令)或16(高速緩存其他)而都是不可預(yù)測(cè)的。當(dāng)非受限事務(wù)歸因于MONITORCALL的已嘗試執(zhí)行而中止且存在監(jiān)視事件情況及規(guī)格異常情況兩者時(shí),無(wú)論將中止碼設(shè)定為11或4或(在程序中斷被篩選時(shí))12而都是不可預(yù)測(cè)的。額外指令可在受限事務(wù)中受到限定。盡管這些指令當(dāng)前經(jīng)定義為在非受限事務(wù)中不受到限定,但這些指令可在某些情況下在未來(lái)處理器上的非受限事務(wù)中受到限定??稍谖磥?lái)處理器上的事務(wù)執(zhí)行模式下允許某些受限定指令。因此,程序不應(yīng)依賴于歸因于受限定指令的已嘗試執(zhí)行而中止的事務(wù)。TRANSACTIONABORT指令應(yīng)被用以可靠地造成事務(wù)中止。在非受限事務(wù)中,程序應(yīng)提供替代性非事務(wù)碼路徑以適應(yīng)歸因于受限定指令而中止的事務(wù)。在操作中,當(dāng)事務(wù)嵌套深度為0時(shí),引起條件碼0的TRANSACTIONBEGIN(TBEGIN)指令的執(zhí)行使CPU進(jìn)入非受限事務(wù)執(zhí)行模式。當(dāng)事務(wù)嵌套深度為0時(shí),引起條件碼0的TRANSACTIONBEGIN受限(TBEGINC)指令的執(zhí)行使CPU進(jìn)入受限事務(wù)執(zhí)行模式。除了另有明確提及以外,應(yīng)用于非事務(wù)執(zhí)行的所有規(guī)則亦應(yīng)用于事務(wù)執(zhí)行。下文為在CPU處于事務(wù)執(zhí)行模式時(shí)進(jìn)行處理的額外特性。當(dāng)CPU處于非受限事務(wù)執(zhí)行模式時(shí),引起條件碼0的TRANSACTIONBEGIN指令的執(zhí)行使CPU保持于非受限事務(wù)執(zhí)行模式。如由CPU所觀察,在事務(wù)執(zhí)行模式下進(jìn)行的提取及儲(chǔ)存并非不同于在不處于事務(wù)執(zhí)行模式時(shí)進(jìn)行的提取及儲(chǔ)存。如由其他CPU及I/O子系統(tǒng)所觀察,在CPU處于事務(wù)執(zhí)行模式時(shí)進(jìn)行的所有儲(chǔ)存操作數(shù)存取看來(lái)像是單一區(qū)塊并行存取。亦即,對(duì)半字組、字組、雙字組或四倍字組內(nèi)的所有字節(jié)的存取經(jīng)指定以看來(lái)像是區(qū)塊并行,如由其他CPU及I/O(例如,通道)程序所觀察。半字組、字組、雙字組或四倍字組在此章節(jié)中被稱作區(qū)塊。當(dāng)提取類型參考經(jīng)指定以在區(qū)塊內(nèi)看來(lái)像是并行時(shí),在該區(qū)塊中含有的字節(jié)正被提取的時(shí)間期間不準(zhǔn)許由另一CPU或I/O程序?qū)υ搮^(qū)塊的儲(chǔ)存存取。當(dāng)儲(chǔ)存類型參考經(jīng)指定以在區(qū)塊內(nèi)看來(lái)像是并行時(shí),在該區(qū)塊內(nèi)的字節(jié)正被儲(chǔ)存的時(shí)間期間不準(zhǔn)許由另一CPU或I/O程序?qū)υ搮^(qū)塊的存取(提取或儲(chǔ)存)。針對(duì)指令的儲(chǔ)存存取以及DAT及ART(存取寄存器表)表提取遵循非事務(wù)規(guī)則。CPU憑借使事務(wù)嵌套深度轉(zhuǎn)變至0的TRANSACTIONEND指令而正常地離開(kāi)事務(wù)執(zhí)行模式,在該狀況下,事務(wù)完成。當(dāng)CPU憑借TRANSACTIONEND指令的完成而離開(kāi)事務(wù)執(zhí)行模式時(shí),交付在處于事務(wù)執(zhí)行模式時(shí)進(jìn)行的所有儲(chǔ)存;亦即,這些儲(chǔ)存看來(lái)像是作為單一區(qū)塊并行操作而發(fā)生,如由其他CPU及I/O子系統(tǒng)所觀察。事務(wù)可出于多種原因而隱含地中止,或事務(wù)可由TRANSACTIONABORT指令明確地中止。下文描述事務(wù)中止、對(duì)應(yīng)中止碼及置放至事務(wù)中止PSW中的條件碼的實(shí)例可能原因。外部中斷:將事務(wù)中止碼設(shè)定為2,且將事務(wù)中止PSW中的條件碼設(shè)定為2。作為外部中斷處理的部分,將事務(wù)中止PSW儲(chǔ)存為外部舊PSW。程序中斷(未篩選):引起中斷的程序異常情況(亦即,未篩選條件)使事務(wù)用碼4而中止。將事務(wù)中止PSW中的條件碼設(shè)定為特定于程序中斷碼。作為程序中斷處理的部分,將事務(wù)中止PSW儲(chǔ)存為程序舊PSW。原本將會(huì)引起事務(wù)歸因于操作異常而中止的指令可得到替代結(jié)果:對(duì)于非受限事務(wù),事務(wù)可代替地用中止碼11(受限定指令)而中止;對(duì)于受限事務(wù),可辨識(shí)事務(wù)限制程序中斷,而非操作例外。當(dāng)PER(程序事件記錄)事件結(jié)合任何其他未篩選程序異常情況被辨識(shí)時(shí),將條件碼設(shè)定為3。機(jī)器檢查中斷:將事務(wù)中止碼設(shè)定為5,且將事務(wù)中止PSW中的條件碼設(shè)定為2。作為機(jī)器檢查中斷處理的部分,將事務(wù)中止PSW儲(chǔ)存為機(jī)器檢查舊PSW。I/O中斷:將事務(wù)中止碼設(shè)定為6,且將事務(wù)中止PSW中的條件碼設(shè)定為2。作為I/O中斷處理的部分,將事務(wù)中止PSW儲(chǔ)存為I/O舊PSW。提取溢出:當(dāng)事務(wù)嘗試自多于CPU所支持的位置的位置進(jìn)行提取時(shí),偵測(cè)提取溢出條件。將事務(wù)中止碼設(shè)定為7,且將條件碼設(shè)定為2或3。儲(chǔ)存溢出:當(dāng)事務(wù)嘗試儲(chǔ)存至多于CPU所支持的位置的位置時(shí),偵測(cè)儲(chǔ)存溢出條件。將事務(wù)中止碼設(shè)定為8,且將條件碼設(shè)定為2或3。回應(yīng)于提取或儲(chǔ)存溢出中止而允許條件碼為2或3會(huì)允許CPU指示潛在可重試情形(例如,條件碼2指示事務(wù)的重新執(zhí)行可有生產(chǎn)力;而條件碼3并不建議重新執(zhí)行)。提取沖突:當(dāng)另一CPU或I/O子系統(tǒng)嘗試儲(chǔ)存至已由此CPU事務(wù)地提取的位置中時(shí),偵測(cè)提取沖突條件。將事務(wù)中止碼設(shè)定為9,且將條件碼設(shè)定為2。儲(chǔ)存沖突:當(dāng)另一CPU或I/O子系統(tǒng)嘗試存取在由此CPU進(jìn)行的事務(wù)執(zhí)行期間已被儲(chǔ)存的位置時(shí),偵測(cè)儲(chǔ)存沖突條件。將事務(wù)中止碼設(shè)定為10,且將條件碼設(shè)定為2。受限定指令:當(dāng)CPU處于事務(wù)執(zhí)行模式時(shí),受限定指令的已嘗試執(zhí)行造成事務(wù)中止。將事務(wù)中止碼設(shè)定為11,且將條件碼設(shè)定為3。當(dāng)CPU處于受限事務(wù)執(zhí)行模式時(shí),無(wú)論受限定指令的已嘗試執(zhí)行引起事務(wù)限制程序中斷或歸因于受限定指令的中止而都是不可預(yù)測(cè)的。事務(wù)仍中止,但中止碼可指示任一原因。程序異常情況(已篩選):不引起中斷的程序異常情況(亦即,已篩選的情況)造成事務(wù)用為12的事務(wù)中止碼而中止。將條件碼設(shè)定為3。嵌套深度超過(guò):當(dāng)事務(wù)嵌套深度處于該配置的最大可允許值且執(zhí)行TRANSACTIONBEGIN指令時(shí),偵測(cè)嵌套深度超過(guò)條件。使事務(wù)用為13的事務(wù)中止碼而中止,且將條件碼設(shè)定為3。高速緩存提取相關(guān)條件:由CPU的高速緩存電路偵測(cè)與由事務(wù)提取的儲(chǔ)存位置相關(guān)的條件。用為14的事務(wù)中止碼而使事務(wù)中止,且將條件碼設(shè)定為2或3。高速緩存儲(chǔ)存相關(guān)條件:由CPU的高速緩存電路偵測(cè)與由事務(wù)儲(chǔ)存的儲(chǔ)存位置相關(guān)的條件。用為15的事務(wù)中止碼而使事務(wù)中止,且將條件碼設(shè)定為2抑或3。高速緩存其他條件:由CPU的高速緩存電路偵測(cè)高速緩存其他條件。用為16的事務(wù)中止碼而使事務(wù)中止,且將條件碼設(shè)定為2或3。在事務(wù)執(zhí)行期間,若CPU使用映射至相同絕對(duì)地址的不同邏輯地址來(lái)存取指令或儲(chǔ)存操作數(shù),則這是依賴于事務(wù)是否中止的模型。若事務(wù)歸因于使用映射至相同絕對(duì)地址的不同邏輯地址的存取而中止,則取決于條件,設(shè)定中止碼14、15或16。雜項(xiàng)條件:雜項(xiàng)條件為造成事務(wù)中止的由CPU辨識(shí)的任何其他條件。將事務(wù)中止碼設(shè)定為255,且將條件碼設(shè)定為2抑或3。當(dāng)多個(gè)配置正在同一機(jī)器(例如,邏輯分割區(qū)或虛擬機(jī))中執(zhí)行時(shí),事務(wù)可歸因于不同組態(tài)中發(fā)生的外部機(jī)器檢查或I/O中斷而中止。盡管上文提供實(shí)例,但可提供具有對(duì)應(yīng)中止碼及條件碼的事務(wù)中止的其他原因。舉例而言,一個(gè)原因可為重新啟動(dòng)中斷,其中將事務(wù)中止碼設(shè)定為1,且將事務(wù)中止PSW中的條件碼設(shè)定為2。作為重新啟動(dòng)處理的部分,將事務(wù)中止PSW儲(chǔ)存為重新啟動(dòng)舊PSW。作為一另外實(shí)例,一個(gè)原因可為監(jiān)督呼叫條件,其中將中止碼設(shè)定為3,且將事務(wù)中止PSW中的條件碼設(shè)定為3。其他或不同實(shí)例也是可能的。備注:1.雜項(xiàng)條件可由以下各者中任一者引起:·諸如在z/Architecture中的指令COMPAREANDREPLACEDATTABLEENTRY、COMPAREANDSWAPANDPURGE、INVALIDATEDATTABLEENTRY、INVALIDATEPAGETABLEENTRY、NQ控制為0且SK控制為1的PERFORMFRAMEMANAGEMENTFUNCTION、NQ控制為0的SETSTORAGEKEYEXTENDED,它是由該配置中的另一CPU執(zhí)行;將條件碼設(shè)定為2?!ぴ贑PU上執(zhí)行諸如重設(shè)、重新啟動(dòng)或停止的運(yùn)算子函數(shù),或等效SIGNALPROCESSOR命令?!ど衔奈戳信e的任何其他條件;將條件碼設(shè)定為2或3。2.提取及儲(chǔ)存沖突被偵測(cè)的位置可為同一高速緩存行內(nèi)的任何地方。3.在某些條件下,CPU可不能區(qū)分相似中止條件。舉例而言,提取或儲(chǔ)存溢出可不能與各別提取或儲(chǔ)存沖突區(qū)分開(kāi)。4.由CPU對(duì)多個(gè)指令路徑的理論式執(zhí)行可引起事務(wù)歸因于沖突或溢出條件而中止,即使此類條件并不以概念序列而發(fā)生亦如此。在處于受限事務(wù)執(zhí)行模式時(shí),CPU可臨時(shí)地禁止理論式執(zhí)行,從而允許事務(wù)嘗試在不理論式地偵測(cè)此類沖突或溢出的情況下完成。TRANSACTIONABORT指令的執(zhí)行造成事務(wù)中止。自第二操作數(shù)地址設(shè)定事務(wù)中止碼。取決于第二操作數(shù)地址的位63為0或1,將條件碼分別設(shè)定為2或3。圖10概述儲(chǔ)存于事務(wù)診斷區(qū)塊中的實(shí)例中止碼及對(duì)應(yīng)條件碼(CC)。圖10中的描述說(shuō)明一特定實(shí)施。值的其他實(shí)施及編碼是可能的。在一實(shí)施例中且如上文所提及,事務(wù)設(shè)施規(guī)定受限事務(wù)及非受限事務(wù)兩者,以及與其相關(guān)聯(lián)的處理。最初論述受限事務(wù),且接著論述非受限事務(wù)。受限事務(wù)在無(wú)后退路徑的情況下執(zhí)行于事務(wù)模式下。其為用于緊湊函數(shù)的處理的模式。在不存在重復(fù)中斷或與其他CPU或I/O子系統(tǒng)的沖突(亦即,由將不允許事務(wù)成功地完成的條件造成)時(shí),受限事務(wù)最終將完成;因此,無(wú)需且不指定中止處理例程。舉例而言,在不存在以下各者時(shí),事務(wù)最終將完成:不能處理的條件(例如,除以0)的違反、不允許事務(wù)完成的條件(例如,不允許指令執(zhí)行的計(jì)時(shí)器中斷、熱I/O等等),或與受限事務(wù)相關(guān)聯(lián)的限定或限制的違反。當(dāng)事務(wù)嵌套深度最初為0時(shí),受限事務(wù)由TRANSACTIONBEGIN受限(TBEGINC)指令起始。在一實(shí)施例中,受限事務(wù)經(jīng)受以下限制。1.事務(wù)執(zhí)行不多于32個(gè)指令,不包括TRANSACTIONBEGIN受限(TBEGINC)及TRANSACTIONEND指令。2.事務(wù)中的所有指令將在存儲(chǔ)器的256個(gè)連續(xù)字節(jié)內(nèi),包括TRANSACTIONBEGIN受限(TBEGINC)及任何TRANSACTIONEND指令。3.除了受限定指令以外,以下限定亦應(yīng)用于受限事務(wù)。a.指令限于被稱作一般指令的指令,包括(例如)加法、減法、乘法、除法、移位、旋轉(zhuǎn)等等。b.分支指令限于以下各者(在一實(shí)例中,所列出的指令屬于z/Architecture):·BRANCHRELATIVEONCONDITION,其中M1為非零且RI2字段含有正值?!RANCHRELATIVEONCONDITIONLONG,其中M1字段為非零,且RI2字段含有不造成地址環(huán)繞的正值?!OMPAREANDBRANCHRELATIVE、COMPAREIMMEDIATEANDBRANCHRELATIVE、COMPARELOGICALANDBRANCHRELATIVE,及COMPARELOGICALIMMEDIATEANDBRANCHRELATIVE,其中M3字段為非零且RI4字段含有正值。(亦即,僅具有非零分支屏敝的前向分支。)c.除了TRANSACTIONEND及造成已指定操作數(shù)序列化的指令以外,造成序列化功能的指令受到限定。d.存儲(chǔ)器間操作(SS-)及具有延伸操作碼的存儲(chǔ)器間操作(SSE-)指令受到限定。e.所有以下一般指令(在此實(shí)例中,其屬于z/Architecture)受到限定:CHECKSUM;CIPHERMESSAGE;CIPHERMESSAGEWITHCFB;CIPHERMESSAGEWITHCHAINING;CIPHERMESSAGEWITHCOUNTER;CIPHERMESSAGEWITHOFB;COMPAREANDFORMCODEWORD;COMPARELOGICALLONG;COMPARELOGICALLONGEXTENDED;COMPARELOGICALLONGUNICODE;COMPARELOGICALSTRING;COMPAREUNTILSUBSTRINGEQUAL;COMPRESSIONCALL;COMPUTEINTERMEDIATEMESSAGEDIGEST;COMPUTELASTMESSAGEDIGEST;COMPUTEMESSAGEAUTHENTICATIONCODE;CONVERTTOBINARY;CONVERTTODECIMAL;CONVERTUNICODE-16TOUNICODE-32;CONVERTUNICODE-16TOUNICODE-8;CONVERTUNICODE-32TOUNICODE-16;CONVERTUNICODE-32TOUNICODE-8;CONVERTUNICODE-8TOUNICODE-16;CONVERTUNICODE-8TOUNICODE-32;DIVIDE;DIVIDELOGICAL;DIVIDESINGLE;EXECUTE;EXECUTERELATIVELONG;EXTRACTCACHEATTRIBUTE;EXTRACTCPUTIME;EXTRACTPSW;EXTRACTTRANSACTIONNESTINGDEPTH;LOADANDADD;LOADANDADDLOGICAL;LOADANDAND;LOADANDEXCLUSIVEOR;LOADANDOR;LOADPAIRDISJOINT;LOADPAIRFROMQUADWORD;MONITORCALL;MOVELONG;MOVELONGEXTENDED;MOVELONGUNICODE;MOVESTRING;NON-TRANSACTIONALSTORE;PERFORMCRYPTOGRAPHICCOMPUTATION;PREFETCHDATA;PREFETCHDATARELATIVELONG;RUNTIMEINSTRUMENTATIONEMIT;RUNTIMEINSTRUMENTATIONNEXT;RUNTIMEINSTRUMENTATIONOFF;RUNTIMEINSTRUMENTATIONON;SEARCHSTRING;SEARCH;STRINGUNICODE;SETADDRESSINGMODE;STORECHARACTERSUNDERMASKHIGH,此時(shí)M3字段為0且R1字段中的碼為6或7;STORECLOCK;STORECLOCKEXTENDED;STORECLOCKFAST;STOREFACILITYLISTEXTENDED;STOREPAIRTOQUADWORD;TESTADDRESSINGMODE;TRANSACTIONABORT;TRANSACTIONBEGIN(TBEGIN及TBEGINC兩者);TRANSLATEANDTESTEXTENDED;TRANSLATEANDTESTREVERSEEXTENDED;TRANSLATEEXTENDED;TRANSLATEONETOONE;TRANSLATEONETOTWOTRANSLATETWOTOONE;及TRANSLATETWOTOTWO。4.事務(wù)的儲(chǔ)存操作數(shù)存取不多于四個(gè)八倍字組。備注:LOADONCONDITION及STOREONCONDITION被看作參考存儲(chǔ)器而不管條件碼。舉例而言,八倍字組為32字節(jié)邊界上的32個(gè)連續(xù)字節(jié)的群組。5.在此CPU上執(zhí)行的事務(wù)或由其他CPU或I/O子系統(tǒng)進(jìn)行的儲(chǔ)存并不存取任何4K字節(jié)區(qū)塊中的儲(chǔ)存操作數(shù),這些4K字節(jié)區(qū)塊含有存儲(chǔ)器的256個(gè)字節(jié),其以TRANSACTIONBEGIN受限(TBEGINC)指令開(kāi)始。6.事務(wù)不使用映射至相同絕對(duì)地址的不同邏輯地址來(lái)存取指令或儲(chǔ)存操作數(shù)。7.由事務(wù)進(jìn)行的操作數(shù)參考將在單一雙字組內(nèi),惟對(duì)于LOADACCESSMULTIPLE、LOADMULTIPLE、LOADMULTIPLEHIGH、STOREACCESSMULTIPLE、STOREMULTIPLE及STOREMULTIPLEHIGH除外,操作數(shù)參考將在單一八倍字組內(nèi)。若受限事務(wù)違反上文所列出之限制1至7中任一者,則(a)辨識(shí)事務(wù)限制程序中斷,或(b)執(zhí)行如同事務(wù)未受到限制一樣行進(jìn),惟另外限制違反仍可引起事務(wù)受限程序中斷除外。采取哪一動(dòng)作是不可預(yù)測(cè)的,且所采取的動(dòng)作可基于哪一限制被違反而不同。在不存在限制違反、重復(fù)中斷或與其他CPU或I/O子系統(tǒng)的沖突時(shí),受限事務(wù)最終將完成,如上文所描述。1.若事務(wù)滿足以下準(zhǔn)則,則成功地完成受限事務(wù)的機(jī)會(huì)改良:a.所發(fā)出的指令少于為32之最大值。b.儲(chǔ)存操作數(shù)參考少于為4個(gè)八倍字組的最大值。c.儲(chǔ)存操作數(shù)參考處于同一高速緩存行上。d.對(duì)相同位置的儲(chǔ)存操作數(shù)參考藉由所有事務(wù)以相同次序而發(fā)生。2.受限事務(wù)未必確信在其第一執(zhí)行時(shí)成功地完成。然而,若未違反所列出限制中任一者的受限事務(wù)中止,則CPU使用確保事務(wù)的重復(fù)執(zhí)行隨后成功的電路。3.在受限事務(wù)內(nèi),TRANSACTIONBEGIN為受限定指令,因此,受限事務(wù)不能為嵌套。4.由受限事務(wù)違反以上限制1至7中任一者可引起程序循環(huán)。5.受限事務(wù)的限制相似于比較及交換循環(huán)的限制。由于來(lái)自其他CPU及I/O子系統(tǒng)的潛在干擾,不存在COMPAREANDSWAP指令將用條件碼0永遠(yuǎn)完成的架構(gòu)確信。受限事務(wù)可遭受呈提取或儲(chǔ)存沖突中止或熱中斷的形式的相似干擾。CPU使用公平演算法以確保在不存在任何限制違反時(shí)受限事務(wù)最終完成。6.為了判定完成受限事務(wù)所需要的重復(fù)反復(fù)的數(shù)目,程序可在不經(jīng)受一般寄存器儲(chǔ)存屏敝的一般寄存器中使用計(jì)數(shù)器。下文展示一實(shí)例。*R15現(xiàn)在含有重復(fù)事務(wù)嘗試的計(jì)數(shù)。應(yīng)注意,在此實(shí)例中,兩個(gè)寄存器14及15皆未被恢復(fù)。亦應(yīng)注意,在一些模型上,若CPU在TBEGINC指令完成之后但在AHI指令完成之前偵測(cè)到中止條件,則一般寄存器15中的計(jì)數(shù)可低。如由CPU所觀察,在事務(wù)執(zhí)行模式下進(jìn)行的提取及儲(chǔ)存并非不同于在不處于事務(wù)執(zhí)行模式時(shí)進(jìn)行的提取及儲(chǔ)存。在一實(shí)施例中,使用者(亦即,建立事務(wù)的使用者)選擇事務(wù)是否將受到限制。參看圖11來(lái)描述與受限事務(wù)的處理相關(guān)聯(lián)的邏輯且尤其是與TBEGINC指令相關(guān)聯(lián)的處理的一實(shí)施例。TBEGINC指令的執(zhí)行使CPU進(jìn)入受限事務(wù)執(zhí)行模式或保持于非受限執(zhí)行模式。執(zhí)行TBEGINC的CPU(亦即,處理器)執(zhí)行圖11的邏輯。參看圖11,基于TBEGINC指令的執(zhí)行,執(zhí)行序列化功能(步驟1100)。序列化功能或操作包括在發(fā)生概念上后續(xù)的儲(chǔ)存存取(及相關(guān)參考位及改變位設(shè)定)之前由CPU完成所有概念上先前的儲(chǔ)存存取(及作為一實(shí)例,對(duì)于z/Architecture,相關(guān)參考位及改變位設(shè)定),如由其他CPU及I/O子系統(tǒng)所觀察。序列化影響對(duì)存儲(chǔ)器及對(duì)存儲(chǔ)器金鑰的所有CPU存取的序列,惟與ART表項(xiàng)及DAT表項(xiàng)提取相關(guān)聯(lián)的存取除外。如由處于事務(wù)執(zhí)行模式的CPU所觀察,序列化正常地操作(如上文所描述)。如由其他CPU及I/O子系統(tǒng)所觀察,由于使事務(wù)嵌套深度遞減至零(正常結(jié)束)的TRANSACTIONEND指令或由于正被中止的事務(wù),在CPU處于事務(wù)執(zhí)行模式時(shí)執(zhí)行的序列化操作在CPU離開(kāi)事務(wù)執(zhí)行模式時(shí)發(fā)生。在執(zhí)行序列化之后,進(jìn)行關(guān)于是否辨識(shí)異常的判定(查詢1102)。若是,則處置異常(步驟1104)。舉例而言,若事務(wù)執(zhí)行控制(控制寄存器0的位8)為0,則辨識(shí)出特殊操作異常且抑制操作。作為另外實(shí)例,若B1字段(指令的位16至19)為非零,則辨識(shí)出規(guī)格異常且抑制操作;若TBEGINC為執(zhí)行類型指令的目標(biāo),則辨識(shí)出執(zhí)行異常且抑制操作;且若于配置中未安裝事務(wù)執(zhí)行設(shè)施,則辨識(shí)出操作異常且抑制操作。若CPU已經(jīng)處于受限事務(wù)執(zhí)行模式,則辨識(shí)出事務(wù)受限異常程序異常且抑制操作。另外,若事務(wù)嵌套深度在累加1時(shí)將超過(guò)依賴于模型的最大事務(wù)嵌套深度,則用中止碼13而中止事務(wù)??杀孀R(shí)及處置其他或不同異常。然而,若不存在異常,則進(jìn)行關(guān)于事務(wù)嵌套深度是否為0的判定(查詢1106)。若事務(wù)嵌套深度為0,則將事務(wù)診斷區(qū)塊地址看作無(wú)效(步驟1108);自當(dāng)前PSW的內(nèi)容設(shè)定事務(wù)中止PSW,惟事務(wù)中止PSW的指令地址指明TBEGINC指令而非下一循序指令除外(步驟1110);且將如由一般寄存器儲(chǔ)存屏敝指明的一般寄存器對(duì)的內(nèi)容儲(chǔ)存于不能由程序直接地存取的模型相依位置中(步驟1112)。另外,將嵌套深度設(shè)定為1(步驟1114)。另外,將允許浮點(diǎn)運(yùn)算(F)及程序中斷篩選控制(PIFC)的有效值設(shè)定為0(步驟1116)。另外,判定允許AR修改(A)控制(指令的I2字段的位12字段)的有效值(步驟1118)。舉例而言,有效A控制為針對(duì)當(dāng)前層級(jí)及針對(duì)任何外部TBEGIN指令的TBEGINC指令中的A控制的邏輯AND。返回至查詢1106,若事務(wù)嵌套深度大于0,則使嵌套深度累加1(步驟1120)。另外,將允許浮點(diǎn)運(yùn)算(F)的有效值設(shè)定為0,且程序中斷篩選控制(PIFC)的有效值不變(步驟1122)。處理接著繼續(xù)步驟1118。在一實(shí)施例中,事務(wù)的成功起始引起條件碼0。此情形推斷出與執(zhí)行TBEGINC指令相關(guān)聯(lián)的邏輯的一實(shí)施例。在一實(shí)施例中,上文所提供的異常檢查可以變化次序而發(fā)生。用于異常檢查的一特定次序如下:優(yōu)先權(quán)相同于針對(duì)一般狀況的程序中斷條件的優(yōu)先權(quán)的異常。歸因于含有非零值的B1字段的規(guī)格異常。歸因于超過(guò)事務(wù)嵌套深度的中止。歸因于正常完成的條件碼0。另外,以下各者在一個(gè)或多個(gè)實(shí)施例中適用:1.若事務(wù)并不在事務(wù)憑借TRANSACTIONEND而正常地結(jié)束時(shí)中止,則僅恢復(fù)經(jīng)指明為由一般寄存器儲(chǔ)存屏敝儲(chǔ)存的寄存器。在中止時(shí)僅恢復(fù)由最外部TRANSACTIONBEGIN指令的GRSM指明的寄存器。I2字段應(yīng)指明提供由受限事務(wù)改變的輸入值的所有寄存器對(duì)。因此,若事務(wù)中止,則當(dāng)重新執(zhí)行受限事務(wù)時(shí),輸入寄存器值將恢復(fù)為其原始內(nèi)容。2.在大多數(shù)模型上,既在TRANSACTIONBEGIN上又在事務(wù)中止時(shí),可藉由指定在一般寄存器儲(chǔ)存屏敝中進(jìn)行儲(chǔ)存及恢復(fù)所需要的寄存器的最小數(shù)目而實(shí)現(xiàn)改良型效能。3.以下情形說(shuō)明基于當(dāng)前事務(wù)嵌套深度(TND)且在TND為非零時(shí)的TRANSACTIONBEGIN指令(TBEGIN及TBEGINC兩者)的結(jié)果,而無(wú)論CPU處于非受限事務(wù)執(zhí)行模式或受限事務(wù)執(zhí)行模式:如本文所描述,在一個(gè)方面中,假定受限事務(wù)不含有使其不能夠完成的條件,則受限事務(wù)確信完成。為了確保受限事務(wù)完成,執(zhí)行該事務(wù)的處理器(例如,CPU)可采取某些動(dòng)作。舉例而言,若受限事務(wù)具有中止條件,則CPU可臨時(shí)地:(a)禁止無(wú)序執(zhí)行;(b)禁止其他CPU存取沖突儲(chǔ)存位置;(c)誘發(fā)中止處理之隨機(jī)延遲;和/或(d)調(diào)用其他措施以促進(jìn)成功完成。概言之,受限事務(wù)的處理如下:·若已經(jīng)處于受限TX模式,則辨識(shí)事務(wù)受限異常。·若當(dāng)前TND(事務(wù)嵌套深度)>0,則執(zhí)行如同非受限事務(wù)一樣行進(jìn)ο將有效F控制設(shè)定為0ο有效PIFC不變?chǔ)显试S外部非受限TX呼叫可或可不使用受限TX的服務(wù)功能?!と舢?dāng)前TND=0,則:ο事務(wù)診斷區(qū)塊地址無(wú)效。-中止時(shí)未儲(chǔ)存指令指定的TDBο將事務(wù)中止PSW設(shè)定為TBEGINC的地址-并非下一循序指令ο儲(chǔ)存于不能由程序存取的依賴于模型的位置中的由GRSM指明的一般寄存器對(duì)ο視情況而形成(自D2操作數(shù))的事務(wù)令牌。事務(wù)令牌為事務(wù)的識(shí)別符。事務(wù)令牌可等于儲(chǔ)存操作數(shù)地址或另一值?!び行=TBEGINCA及任何外部A·累加TNDο若TND自0轉(zhuǎn)變至1,則CPU進(jìn)入受限TX模式ο否則,CPU操持于非受限TX模式·指令用CC0而完成·異常:ο在B1字段為非零時(shí)的規(guī)格異常(PIC(程序中斷碼)0006)ο在事務(wù)執(zhí)行控制(CR0.8)為0時(shí)的特殊操作異常(PIC0013十六進(jìn)位)ο在受限TX模式下發(fā)出時(shí)的事務(wù)受限異常(PIC0018十六進(jìn)位)ο在未安裝受限事務(wù)執(zhí)行設(shè)施時(shí)的操作異常(PIC0001)ο在指令為執(zhí)行類型指令的目標(biāo)時(shí)的執(zhí)行異常(PIC0003)ο在嵌套深度超過(guò)時(shí)的中止碼13·受限事務(wù)中的中止條件:ο中止PSW指向TBEGINC指令-并非在TBEGINC指令之后的指令-中止條件造成整個(gè)TX被重新驅(qū)動(dòng)*無(wú)失敗路徑οCPU采取特殊措施以確保在重新驅(qū)動(dòng)時(shí)的成功完成ο假定無(wú)持久沖突、中斷或受限違反,則事務(wù)確信最終完成?!は拗七`反:οPIC0018十六進(jìn)位—指示事務(wù)限制的違反ο或,事務(wù)如同非受限一樣執(zhí)行如上文所描述,除了為選用的受限事務(wù)處理以外,在一實(shí)施例中,事務(wù)設(shè)施亦提供非受限事務(wù)處理。參看圖12來(lái)描述關(guān)于非受限事務(wù)的處理且尤其是與TBEGIN指令相關(guān)聯(lián)的處理的另外細(xì)節(jié)。TBEGIN指令的執(zhí)行使CPU進(jìn)入或保持于非受限事務(wù)執(zhí)行模式。執(zhí)行TBEGIN的CPU(亦即,處理器)執(zhí)行圖12的邏輯。參看圖12,基于TBEGIN指令的執(zhí)行,執(zhí)行序列化功能(上文所描述)(步驟1200)。在執(zhí)行序列化之后,進(jìn)行關(guān)于是否辨識(shí)出異常的判定(查詢1202)。若是,則處置異常(步驟1204)。舉例而言,若事務(wù)執(zhí)行控制(控制寄存器0的位8)為0,則辨識(shí)出特殊操作異常且抑制操作。另外,若程序中斷篩選控制(指令的I2字段的位14至15)含有值3,則辨識(shí)出規(guī)格異常且抑制操作;或第一操作數(shù)地址并不指明雙字組邊界。若于配置中未安裝事務(wù)執(zhí)行設(shè)施,則辨識(shí)出操作異常且抑制操作;且若TBEGI為執(zhí)行類型指令的目標(biāo),則辨識(shí)出執(zhí)行異常且抑制操作。另外,若CPU處于受限事務(wù)執(zhí)行模式,則辨識(shí)出事務(wù)受限異常程序異常且抑制操作。另外,若事務(wù)嵌套深度在累加1時(shí)將超過(guò)依賴于模型的最大事務(wù)嵌套深度,則用中止碼13而中止事務(wù)。再者,當(dāng)指令的B1字段為非零且CPU并不處于事務(wù)執(zhí)行模式(亦即,事務(wù)嵌套深度為0)時(shí),則判定對(duì)第一操作數(shù)的儲(chǔ)存可存取性。取決于特定存取異常情況,若第一操作數(shù)不能被存取以進(jìn)行儲(chǔ)存,則辨識(shí)出存取異常且操作被設(shè)為空值、抑制或終止。另外,辨識(shí)用于第一操作數(shù)的任何PER儲(chǔ)存變更事件。當(dāng)B1字段為非零且CPU已經(jīng)處于事務(wù)執(zhí)行模式時(shí),是否判定對(duì)第一操作數(shù)的儲(chǔ)存可存取性是不可預(yù)測(cè)的,且針對(duì)第一操作數(shù)偵測(cè)PER儲(chǔ)存變更事件。若B1字段為0,則不存取第一操作數(shù)。除了異常檢查以外,亦進(jìn)行關(guān)于CPU是否處于事務(wù)執(zhí)行模式(亦即,事務(wù)嵌套深度是否為0)的判定(查詢1206)。若CPU并不處于事務(wù)執(zhí)行模式,則儲(chǔ)存選擇的一般寄存器對(duì)的內(nèi)容(步驟1208)。詳言之,將由一般寄存器儲(chǔ)存屏敝指明的一般寄存器對(duì)的內(nèi)容儲(chǔ)存于不能由程序直接地存取的依賴于模型的位置中。另外,進(jìn)行關(guān)于指令的B1字段是否為0的判定(查詢1210)。若B1字段不等于0,則將第一操作數(shù)地址置放于事務(wù)診斷區(qū)塊地址中(步驟1214),且事務(wù)診斷區(qū)塊地址有效。另外,自當(dāng)前PSW的內(nèi)容設(shè)定事務(wù)中止PSW(步驟1216)。事務(wù)中止PSW的指令地址指明下一循序指令(亦即,在最外部TBEGIN之后的指令)。此外,判定允許AR修改(A)控制(指令的I2字段的位12)的有效值(步驟1218)。有效A控制為針對(duì)當(dāng)前層級(jí)及針對(duì)所有外部層級(jí)的TBEGIN指令中的A控制的邏輯AND。另外,判定允許浮點(diǎn)運(yùn)算(F)控制(指令的I2字段的位13)的有效值(步驟1220)。有效F控制為針對(duì)當(dāng)前層級(jí)及針對(duì)所有外部層級(jí)的TBEGIN指令中的F控制的邏輯AND。另外,判定程序中斷篩選控制(PIFC)(指令的I2字段的位14至15)的有效值(步驟1222)。有效PIFC值為針對(duì)當(dāng)前層級(jí)及針對(duì)所有外部層級(jí)的TBEGIN指令中的最高值。另外,將為1的值添加至事務(wù)嵌套深度(步驟1224),且指令用設(shè)定條件碼0而完成(步驟1226)。若事務(wù)嵌套深度自0轉(zhuǎn)變至1,則CPU進(jìn)入非受限事務(wù)執(zhí)行模式;否則,CPU保持于非受限事務(wù)執(zhí)行模式。返回至查詢1210,若B1等于0,則事務(wù)診斷區(qū)塊地址無(wú)效(步驟1211),且處理繼續(xù)步驟1218。相似地,若CPU處于事務(wù)執(zhí)行模式(查詢1206),則處理繼續(xù)步驟1218。舉例而言,TBEGIN的執(zhí)行的所得條件碼包括:0事務(wù)起始成功1--2--3--舉例而言,程序異常包括:·存取(儲(chǔ)存,第一操作數(shù))·操作(未安裝事務(wù)執(zhí)行設(shè)施)·特殊操作·規(guī)格·事務(wù)限制(歸因于受限定指令)在一實(shí)施例中,上文所提供的異常檢查可以變化次序而發(fā)生。異常檢查的一特定次序如下:·優(yōu)先權(quán)相同于針對(duì)一般狀況的程序中斷條件的優(yōu)先權(quán)的異常?!w因于保留PIFC值的規(guī)格異常?!w因于不在雙字組邊界上的第一操作數(shù)地址的規(guī)格異常?!ご嫒‘惓?當(dāng)B1字段為非零時(shí))。·歸因于超過(guò)最大事務(wù)嵌套深度的中止?!w因于正常完成的條件碼0。備注:1.當(dāng)B1字段為非零時(shí),以下內(nèi)容適用:·當(dāng)起始最外部事務(wù)時(shí),將提供可存取事務(wù)診斷區(qū)塊(TDB)—即使事務(wù)從未中止亦如此?!ひ?yàn)門DB的可存取性是否針對(duì)嵌套事務(wù)被測(cè)試是不可預(yù)測(cè)的,所以應(yīng)針對(duì)任何嵌套TBEGIN指令提供可存取TDB?!は啾扔贐1字段為0時(shí)的情形,以下兩者的執(zhí)行可較慢:B1字段為非零的任何TBEGIN;及針對(duì)由B1字段為非零的最外部TBEGIN起始的事務(wù)而發(fā)生的任何中止處理。2.在一實(shí)施例中,若事務(wù)并不在事務(wù)憑借TRANSACTIONEND而正常地結(jié)束時(shí)中止,則僅恢復(fù)經(jīng)指明以由一般寄存器儲(chǔ)存屏敝儲(chǔ)存的寄存器。在中止時(shí)僅恢復(fù)由最外部TRANSACTIONBEGIN指令的GRSM指明的寄存器。I2字段應(yīng)指明提供由事務(wù)改變的輸入值的所有寄存器對(duì)。因此,若事務(wù)中止,則當(dāng)進(jìn)入中止處理例程時(shí),輸入寄存器值將恢復(fù)為其原始內(nèi)容。3.TRANSACTIONBEGIN(TBEGIN)指令被預(yù)期為繼之以條件分支指令,該條件分支指令將判定事務(wù)是否被成功地起始。4.若事務(wù)歸因于并未引起中斷的條件而中止,則由事務(wù)中止PSW指明的指令接收控制(亦即,在最外部TRANSACTIONBEGIN(TBEGIN)之后的指令)。除了由TRANSACTIONBEGIN(TBEGIN)指令設(shè)定的條件碼以外,當(dāng)事務(wù)中止時(shí)亦設(shè)定條件碼1至3。因此,在最外部TRANSACTIONBEGIN(TBEGIN)指令之后的指令序列應(yīng)能夠適應(yīng)所有四個(gè)條件碼,即使在此實(shí)例中TBEGIN指令僅設(shè)定碼0亦如此。5.在大多數(shù)模型上,既在TRANSACTIONBEGIN上又當(dāng)事務(wù)中止時(shí),可藉由指定在一般寄存器儲(chǔ)存屏敝中進(jìn)行儲(chǔ)存及恢復(fù)所需要的寄存器的最小數(shù)目而實(shí)現(xiàn)改良型效能。6.在處于非受限事務(wù)執(zhí)行模式時(shí),程序可呼叫可變更存取寄存器或浮點(diǎn)寄存器(包括浮點(diǎn)控制寄存器)的服務(wù)功能。盡管此類服務(wù)例程可將已變更寄存器儲(chǔ)存于項(xiàng)上且在結(jié)束時(shí)恢復(fù)這些寄存器,但事務(wù)可在例程的正常結(jié)束之前中止。若呼叫程序在CPU處于非受限事務(wù)執(zhí)行模式時(shí)未為了保留這些寄存器而做好準(zhǔn)備,則呼叫程序可不能容許這些寄存器的服務(wù)功能變更。為了在處于非受限事務(wù)執(zhí)行模式時(shí)防止存取寄存器的非故意變更,程序可將允許AR修改控制(TRANSACTIONBEGIN指令的I2字段的位12)設(shè)定為0。相似地,為了防止浮點(diǎn)寄存器的非故意變更,程序可將允許浮點(diǎn)運(yùn)算控制(TBEGIN指令的I2字段的位13)設(shè)定為0。7.在TRANSACTIONBEGIN(TBEGIN)指令的執(zhí)行期間辨識(shí)的程序異常情況經(jīng)受由任何外部TBEGIN指令設(shè)定的有效程序中斷篩選控制。在最外部TBEGIN指令的執(zhí)行期間辨識(shí)的程序異常情況不經(jīng)受篩選。8.為了以序列化方式更新多個(gè)儲(chǔ)存位置,傳統(tǒng)碼序列可使用鎖定字組(旗號(hào))。若(a)事務(wù)執(zhí)行用以實(shí)施多個(gè)儲(chǔ)存位置的更新、(b)程序亦提供「后退」路徑以在事務(wù)中止時(shí)被調(diào)用,且(c)后退路徑使用鎖定字組,則事務(wù)執(zhí)行路徑亦應(yīng)針對(duì)鎖定的可用性進(jìn)行測(cè)試,且若鎖定不可用,則憑借TRANSACTIONEND指令來(lái)結(jié)束事務(wù)且分支至后退路徑。此情形確保對(duì)序列化資源的一致存取,而不管這些資源是否被事務(wù)地更新?;蛘?,若鎖定不可用,則程序可中止;然而,中止處理可顯著地慢于經(jīng)由TEND簡(jiǎn)單地結(jié)束事務(wù)。9.若有效程序中斷篩選控制(PIFC)大于0,則CPU篩選大多數(shù)數(shù)據(jù)異常程序中斷。若有效允許浮點(diǎn)運(yùn)算(F)控制為0,則數(shù)據(jù)異常碼(DXC)將由于歸因于數(shù)據(jù)例外程序異常情況的中止而不在浮點(diǎn)控制寄存器中進(jìn)行設(shè)定。在此情境(篩選適用且有效F控制為0)中,DXC被檢測(cè)的唯一位置處于TBEGIN指定的TDB中。若程序的中止處理例程在此類情形中檢測(cè)DXC,則一般寄存器B1應(yīng)為非零,使得設(shè)定有效事務(wù)診斷區(qū)塊地址(TDBA)。10.若PER儲(chǔ)存變更或零地址偵測(cè)條件針對(duì)最外部TBEGIN指令的TBEGIN指定的TDB而存在,且PER事件抑制并不適用,則在指令的執(zhí)行期間辨識(shí)PER事件,因此造成事務(wù)立即中止,而不管是否存在任何其他中止條件。在一實(shí)施例中,TBEGIN指令將事務(wù)中止地址隱含地設(shè)定為在TBEGIN之后的下一循序指令。此地址意欲為條件分支指令,該條件分支指令取決于條件碼(CC)而判定是否進(jìn)行分支。成功TBEGIN設(shè)定CC0,而已中止事務(wù)設(shè)定CC1、CC2或CC3。在一實(shí)施例中,TBEGIN指令提供指明事務(wù)診斷區(qū)塊(TDB)的地址的選用儲(chǔ)存操作數(shù),若事務(wù)中止,則信息儲(chǔ)存至該事務(wù)診斷區(qū)塊(TDB)中。另外,TBEGIN指令提供包括以下各者的立即操作數(shù):一般寄存器儲(chǔ)存屏敝(GRSM),其指示一般寄存器的哪些對(duì)將在事務(wù)執(zhí)行開(kāi)始時(shí)被儲(chǔ)存且在事務(wù)中止時(shí)被恢復(fù);允許事務(wù)在事務(wù)修改存取寄存器時(shí)中止的位(A);允許事務(wù)在事務(wù)嘗試執(zhí)行浮點(diǎn)指令時(shí)中止的位(F);及程序中斷篩選控制(PIFC),其在事務(wù)中止時(shí)允許個(gè)別事務(wù)層級(jí)略過(guò)程序中斷的實(shí)際呈現(xiàn)。A、F及PIFC控制在各種嵌套層級(jí)處可不同,且在內(nèi)部事務(wù)層級(jí)結(jié)束時(shí)恢復(fù)為先前層級(jí)。此外,TBEGIN(或在另一實(shí)施例中,TBEGINC)用以形成事務(wù)令牌。視情況,可使該令牌與藉由TEND指令形成的令牌匹配。對(duì)于每一TBEGIN(或TBEGINC)指令,作為一實(shí)例,令牌由第一操作數(shù)地址形成。此令牌可獨(dú)立于基底寄存器是否為0而形成(不同于僅在基底寄存器為非零時(shí)發(fā)生的TDB地址設(shè)定)。對(duì)于用非零基底寄存器而執(zhí)行的每一TRANSACTIONEND指令,相似令牌由其儲(chǔ)存操作數(shù)形成。若令牌并不匹配,則可辨識(shí)程序異常以向程序提醒未配對(duì)指令。令牌匹配提供意欲藉由確保TEND陳述式與TBEGIN(或TBEGINC)適當(dāng)?shù)嘏鋵?duì)而改良軟件可靠性的機(jī)制。當(dāng)TBEGIN指令在特定嵌套層級(jí)處執(zhí)行時(shí),令牌由識(shí)別事務(wù)的此執(zhí)行個(gè)體的儲(chǔ)存操作數(shù)地址形成。當(dāng)執(zhí)行對(duì)應(yīng)TEND指令時(shí),令牌由指令的儲(chǔ)存操作數(shù)地址形成,且CPU比較用于嵌套層級(jí)的開(kāi)始令牌與結(jié)束令牌。若令牌并不匹配,則辨識(shí)出異常情況。模型可針對(duì)僅某一數(shù)目個(gè)嵌套層級(jí)(或不針對(duì)嵌套層級(jí))實(shí)施令牌匹配。令牌可不涉及儲(chǔ)存操作數(shù)地址的所有位,或位可經(jīng)由雜湊或其他方法而組合。令牌可藉由TBEGIN指令形成,即使不存取TBEGIN指令的儲(chǔ)存操作數(shù)亦如此。概言之,非受限事務(wù)的處理如下:·若TND=0:ο若B1≠0,則自第一操作數(shù)地址設(shè)定事務(wù)診斷區(qū)塊地址。ο將事務(wù)中止PSW設(shè)定為下一循序指令地址。ο將由I2字段指明的一般寄存器對(duì)儲(chǔ)存于依賴于模型的位置中。-不能由程序直接地存取?!び?jì)算有效PIFC、A及F控制ο有效A=TBEGINA及任何外部Aο有效F=TBEGINF及任何外部Fο有效PIFC=max(TBEGINPIFC,任何外部PIFC)·累加事務(wù)嵌套深度(TND)·若TND自0轉(zhuǎn)變至1,則CPU進(jìn)入事務(wù)執(zhí)行模式·將條件碼設(shè)定為0ο當(dāng)在TBEGIN之后的指令接收控制時(shí):-TBEGIN成功由CC0指示-已中止事務(wù)由非零CC指示·異常:ο在嵌套深度超過(guò)時(shí)的中止碼13ο在B1字段為非零且儲(chǔ)存操作數(shù)不能被存取以進(jìn)行儲(chǔ)存操作時(shí)的存取異常(各種PIC中的一個(gè))ο在TBEGIN指令為執(zhí)行類型指令的目標(biāo)時(shí)的執(zhí)行異常(PIC0003)ο在未安裝事務(wù)執(zhí)行設(shè)施時(shí)的操作異常(PIC0001)ο在以下任一情形時(shí)的PIC0006-PIFC無(wú)效(為3的值)-第二操作數(shù)地址未雙字組對(duì)準(zhǔn)ο在事務(wù)執(zhí)行控制(CR0.8)為0時(shí)的PIC0013十六進(jìn)位ο在受限TX模式下發(fā)出時(shí)的PIC0018十六進(jìn)位如以上所指示,在一個(gè)實(shí)施例中,可以在事務(wù)執(zhí)行的起始時(shí)保存選擇的寄存器,然后在事務(wù)中止的情況下恢復(fù)。一般而言,參照?qǐng)D13A描述與保存/恢復(fù)選擇的寄存器相關(guān)聯(lián)的邏輯的一個(gè)實(shí)施例。然后參照?qǐng)D13B描述進(jìn)一步的實(shí)施例。作為一實(shí)例,處理器正執(zhí)行該邏輯。參照?qǐng)D13A,進(jìn)行待保存的一個(gè)或多個(gè)選擇的寄存器的確定(步驟1300)。在一實(shí)例中,通過(guò)檢查由TRANSACTIONBEGIN指令指示的GRSM的設(shè)置位來(lái)進(jìn)行該確定。然而,在其他實(shí)施例中,可以使用其他技術(shù)來(lái)指示待保存的選擇的寄存器。將選擇的寄存器的內(nèi)容儲(chǔ)存在對(duì)于程序不可存取的預(yù)先限定的存儲(chǔ)器位置中(步驟1302)。然后,如果存在與寄存器關(guān)聯(lián)的事務(wù)的中止(詢問(wèn)1304),則恢復(fù)所選擇的寄存器(步驟1306)。例如,將預(yù)先限定的存儲(chǔ)器位置中所存儲(chǔ)的內(nèi)容加載到適當(dāng)?shù)募拇嫫髦?。在一個(gè)特定實(shí)施例中,最外部TRANSACTIONBEGIN指令指定待存儲(chǔ)的寄存器,如參照?qǐng)D13B所描述的那樣。在該實(shí)施例中,處理器獲得(例如接收、提取等)TRANSACTIONBEGIN指令(步驟1350)。關(guān)于其是否為最外部TRANSACTIONBEGIN指令進(jìn)行確定(詢問(wèn)1352)。如果TRANSACTIONBEGIN指令并非是在另一事務(wù)內(nèi)起始的并且因此是最外部TRANSACTIONBEGIN指令,則使用待保存的一個(gè)或多個(gè)寄存器的指令的GRSM來(lái)進(jìn)行確定(步驟1354)。在該實(shí)例中,寄存器是通用寄存器,并且如上,在寄存器的使用之前(例如恰在指令的執(zhí)行的開(kāi)始),它們通過(guò)拷貝它們的內(nèi)容而得以保存到預(yù)先限定的存儲(chǔ)器位置(步驟1356)。返回到詢問(wèn)1352,在該實(shí)施例中,如果其不是最外部TRANSACTIONBEGIN指令,則忽略GRSM。在保存待保存的任何寄存器之后,事務(wù)的處理繼續(xù)進(jìn)行,如果因?yàn)樵撍付ǖ氖聞?wù)中止或在該實(shí)施例中,內(nèi)部嵌套事務(wù)中止使得該事務(wù)中止(詢問(wèn)1358),所以事務(wù)中止,則通過(guò)將內(nèi)容從預(yù)先限定的存儲(chǔ)器位置拷貝到寄存器來(lái)恢復(fù)所選擇的寄存器(步驟1360)。這樣完成處理。以上所描述的是在中止(即異常終止)中保存/恢復(fù)寄存器(例如通用寄存器)的實(shí)施例。當(dāng)事務(wù)中止時(shí),舍棄在事務(wù)的執(zhí)行期間所進(jìn)行的事務(wù)存儲(chǔ)。然而,除非另外指定,否則不恢復(fù)通用寄存器的內(nèi)容。在一個(gè)示例中,如果事務(wù)中止,則也不恢復(fù)存取寄存器的內(nèi)容和浮點(diǎn)上下文。通過(guò)除非程序具體地請(qǐng)求才保存寄存器,最外部TRANSACTIONBEGIN指令的執(zhí)行的處理速度增加。在一個(gè)實(shí)施例中,在最外部TRANSACTIONBEGIN指令的執(zhí)行期間保存程序指定的通用寄存器,并且倘若中止事務(wù),那么恢復(fù)這些寄存器。在另一實(shí)施例中,除了通用寄存器之外的寄存器(例如浮點(diǎn)寄存器和/或存取寄存器)得以保存和/或恢復(fù)。此外,可以保存/恢復(fù)單獨(dú)通用寄存器和/或通用寄存器組。此外,在一個(gè)實(shí)施例中,指定位屏蔽的通用寄存器用于指定設(shè)置哪些寄存器。在又一實(shí)施例中,在實(shí)現(xiàn)非平坦化嵌套的事務(wù)環(huán)境中執(zhí)行保存/恢復(fù)中的一個(gè)或多個(gè)。在該環(huán)境中,當(dāng)事務(wù)的嵌套內(nèi)的一個(gè)事務(wù)中止時(shí),嵌套內(nèi)的其它事務(wù)可以不中止。在該環(huán)境中,嵌套的每個(gè)等級(jí)具有保存和/或恢復(fù)哪些寄存器的指示。以上提供在無(wú)傳統(tǒng)(粗糙粒度級(jí))序列化(諸如,鎖定)的情況下更新存儲(chǔ)器中的多個(gè)不連續(xù)對(duì)象的有效率方式,該方式提供顯著多處理器效能改良的潛能。亦即,多個(gè)不連續(xù)對(duì)象在無(wú)藉由諸如鎖定及旗號(hào)的傳統(tǒng)技術(shù)提供的更粗糙粒度級(jí)儲(chǔ)存存取排序的增強(qiáng)的情況下予以更新。在無(wú)費(fèi)力復(fù)原設(shè)定的情況下提供理論式執(zhí)行,且提供受限事務(wù)以用于簡(jiǎn)單的小使用量更新。事務(wù)執(zhí)行可用于多種情境中,包括但不限于部分內(nèi)嵌、理論式處理及鎖定省略。在部分內(nèi)嵌中,待包括于執(zhí)行路徑中的部分區(qū)包覆于TBEGIN/TEND中。TABORT可包括于其中以在側(cè)向出口(side-exit)上回復(fù)狀態(tài)。對(duì)于理論,諸如,以Java,對(duì)已取值指針的空值檢查可藉由使用事務(wù)而延遲至循環(huán)邊緣。若指針為空值,則事務(wù)可使用TABORT而安全地中止,TABORT包括于TBEGIN/TEND內(nèi)。至于鎖定省略,參看圖14A至圖14B及下文所提供的碼片段來(lái)描述鎖定省略的使用的一實(shí)例。圖14A描繪多個(gè)隊(duì)列元素1402a至1402d的雙向鏈接清單1400。新隊(duì)列元素1402e將插入至隊(duì)列元素的雙向鏈接清單1400中。每一隊(duì)列元素1402a至1402e包括前向指針1404a至1404e及向后指針1406a至1406e。如圖14B所示,為了將隊(duì)列元素1402e添加于隊(duì)列元素1402b與隊(duì)列元素1402c之間,(1)將向后指針1406e設(shè)定為指向隊(duì)列元素1402b、(2)將前向指針1404e設(shè)定為指向隊(duì)列元素1402c、(3)將向后指針1406c設(shè)定為指向隊(duì)列元素1402e,且(4)將前向指針1404b設(shè)定為指向隊(duì)列元素1402e。對(duì)應(yīng)于圖14A至圖14B的實(shí)例碼片段如下:*R1-待插入的新隊(duì)列元素的地址。*R2-插入點(diǎn)的地址;新元素插入于由R2指向的元素之前。在一實(shí)例中,若事務(wù)用于鎖定省略,但后退路徑使用鎖定,則事務(wù)將至少提取鎖定字組以查看鎖定字組是否可用。若另一CPU非事務(wù)地存取鎖定,則處理器確保事務(wù)中止。如本文所使用,互換地使用存儲(chǔ)器、中央存儲(chǔ)器、主存儲(chǔ)器、存儲(chǔ)器及主存儲(chǔ)器,除非藉由使用隱含地或明確地另有提及。另外,雖然在一實(shí)施例中事務(wù)有效地延遲包括延遲將事務(wù)儲(chǔ)存交付至主存儲(chǔ)器直至選擇的事務(wù)完成;但在另一實(shí)施例中,事務(wù)有效地延遲包括允許對(duì)存儲(chǔ)器的事務(wù)更新,但保持舊值且在中止時(shí)使存儲(chǔ)器恢復(fù)為舊值。本領(lǐng)域的技術(shù)人員應(yīng)了解,一個(gè)或多個(gè)方面可被體現(xiàn)為一系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因而,一個(gè)或多個(gè)方面可采取完全硬件實(shí)施例、完全軟件實(shí)施例(包括固件、駐留軟件、微碼等等)或組合軟件與硬件方面的實(shí)施例的形式,這些實(shí)施例在本文中皆可通稱為“電路”、“模塊”或“系統(tǒng)”。此外,一個(gè)或多個(gè)方面可采取以一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)體現(xiàn)的計(jì)算機(jī)程序產(chǎn)品的形式,該一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)具有體現(xiàn)于其上的計(jì)算機(jī)可讀程序碼??衫靡粋€(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任何組合。計(jì)算機(jī)可讀介質(zhì)可為計(jì)算機(jī)可讀儲(chǔ)存介質(zhì)。舉例而言,計(jì)算機(jī)可讀儲(chǔ)存介質(zhì)可為但不限于電子、磁性、光學(xué)、電磁、紅外線或半導(dǎo)體系統(tǒng)、裝置或器件,或前述各者的任何合適組合。計(jì)算機(jī)可讀儲(chǔ)存介質(zhì)的更特定實(shí)例(非詳盡清單)包括以下各者:具有一個(gè)或多個(gè)電線的電連接、攜帶型計(jì)算機(jī)磁片、硬碟、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦除可編程只讀存儲(chǔ)器(EPROM或快閃存儲(chǔ)器)、光纖、便攜型光碟只讀存儲(chǔ)器(CD-ROM)、光學(xué)儲(chǔ)存器件、磁性儲(chǔ)存器件或前述各者的任何合適組合。在此文件的上下文中,計(jì)算機(jī)可讀儲(chǔ)存介質(zhì)可為可含有或儲(chǔ)存供指令執(zhí)行系統(tǒng)、裝置或器件使用或結(jié)合指令執(zhí)行系統(tǒng)、裝置或器件而使用的程序的任何有形介質(zhì)。現(xiàn)在參看圖15,在一實(shí)例中,計(jì)算機(jī)程序產(chǎn)品1500包括(例如)一個(gè)或多個(gè)非瞬態(tài)計(jì)算機(jī)可讀儲(chǔ)存介質(zhì)1502以在其上儲(chǔ)存計(jì)算機(jī)可讀程序碼構(gòu)件或邏輯1504,以提供及促進(jìn)一個(gè)或多個(gè)實(shí)施例??墒褂眠m當(dāng)介質(zhì)(包括但不限于無(wú)線、有線、光纖纜線、RF等等,或前述各者的任何合適組合)傳輸體現(xiàn)于計(jì)算機(jī)可讀介質(zhì)上的程序碼??梢砸环N或多種編程語(yǔ)言的任何組合來(lái)撰寫用于進(jìn)行一個(gè)或多個(gè)實(shí)施例的操作的計(jì)算機(jī)程序碼,該一種或多種編程語(yǔ)言包括諸如Java、Smalltalk、C++或其類似者的面向?qū)ο蟮木幊陶Z(yǔ)言,及諸如“C”編程語(yǔ)言、匯編程序或相似編程語(yǔ)言的傳統(tǒng)過(guò)程性編程語(yǔ)言。程序碼可完全地在使用者計(jì)算機(jī)上執(zhí)行、部分地在使用者計(jì)算機(jī)上執(zhí)行、作為獨(dú)立封裝軟件而執(zhí)行、部分地在使用者計(jì)算機(jī)上執(zhí)行且部分地在遠(yuǎn)端計(jì)算機(jī)上執(zhí)行,或完全地在遠(yuǎn)端計(jì)算機(jī)或伺服器上執(zhí)行。在后者情境中,遠(yuǎn)端計(jì)算機(jī)可經(jīng)由任何類型的網(wǎng)絡(luò)(包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN))而連接至使用者的計(jì)算機(jī),或可連接至外部計(jì)算機(jī)(例如,使用因特網(wǎng)服務(wù)提供者而經(jīng)由因特網(wǎng)進(jìn)行連接)。本文參考方法、裝置(系統(tǒng))及計(jì)算機(jī)程序產(chǎn)品的流程圖說(shuō)明和/或方塊圖來(lái)描述一個(gè)或多個(gè)實(shí)施例。應(yīng)理解,可藉由計(jì)算機(jī)程序指令來(lái)實(shí)施這些流程圖說(shuō)明和/或方塊圖的每一方塊及這些流程圖說(shuō)明和/或方塊圖中的方塊的組合??蓪⑦@些計(jì)算機(jī)程序指令提供至一般用途計(jì)算機(jī)、特殊用途計(jì)算機(jī)或其他可程序化數(shù)據(jù)處理裝置的一處理器以產(chǎn)生一機(jī)器,使得經(jīng)由該計(jì)算機(jī)或其他可程序化數(shù)據(jù)處理裝置的該處理器而執(zhí)行的指令產(chǎn)生用于實(shí)施在該或這些流程圖和/或方塊圖方塊中指定的功能/動(dòng)作的構(gòu)件。亦可將這些計(jì)算機(jī)程序指令儲(chǔ)存于一計(jì)算機(jī)可讀介質(zhì)中,其可指導(dǎo)計(jì)算機(jī)、其他可程序化數(shù)據(jù)處理裝置或其他器件以特定方式起作用,使得儲(chǔ)存于該計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生一制品,該制品包括實(shí)施在該或這些流程圖和/或方塊圖方塊中指定的功能/動(dòng)作的指令。亦可將這些計(jì)算機(jī)程序指令載入至計(jì)算機(jī)、其他可程序化數(shù)據(jù)處理裝置或其他器件上,以使一系列操作步驟在該計(jì)算機(jī)、其他可程序化裝置或其他器件上執(zhí)行以產(chǎn)生一計(jì)算機(jī)實(shí)施程序,使得在該計(jì)算機(jī)或其他可程序化裝置上執(zhí)行的指令提供用于實(shí)施在該或這些流程圖和/或方塊圖方塊中指定的功能/動(dòng)作的程序。這些圖中的流程圖及方塊圖說(shuō)明根據(jù)各種實(shí)施例的系統(tǒng)、方法及計(jì)算機(jī)程序產(chǎn)品的可能實(shí)施的架構(gòu)、功能性及操作。就此而言,流程圖或方塊圖中的每一方塊可表示程序碼的一模塊、區(qū)段或部分,其包含用于實(shí)施指定的邏輯功能的一個(gè)或多個(gè)可執(zhí)行指令。亦應(yīng)注意,在一些替代性實(shí)施中,區(qū)塊中所提到的功能可不以諸圖中所提到的次序而發(fā)生。舉例而言,取決于所涉及的功能性,連續(xù)展示的兩個(gè)區(qū)塊實(shí)際上可實(shí)質(zhì)上并行地執(zhí)行,或這些區(qū)塊有時(shí)可以相反次序執(zhí)行。亦應(yīng)注意,可藉由執(zhí)行指定的功能或動(dòng)作的基于特殊用途硬件的系統(tǒng)或特殊用途硬件及計(jì)算機(jī)指令的組合來(lái)實(shí)施方塊圖和/或流程圖說(shuō)明的每一方塊及方塊圖和/或流程圖說(shuō)明中的方塊的組合。除了以上內(nèi)容以外,一個(gè)或多個(gè)方面亦可由提供客戶環(huán)境的管理的服務(wù)提供者提供、部署、管理、服務(wù)等等。舉例而言,服務(wù)提供者可為一個(gè)或多個(gè)客戶建立、維持、支援等等執(zhí)行一個(gè)或多個(gè)方面的計(jì)算機(jī)程序碼和/或計(jì)算機(jī)基礎(chǔ)結(jié)構(gòu)。作為回報(bào),作為實(shí)例,服務(wù)提供者可在訂用和/或收費(fèi)協(xié)議下向客戶收取付款?;蛘呋蛄硗猓?wù)提供者可根據(jù)廣告內(nèi)容至一個(gè)或多個(gè)第三方的銷售而收取付款。在一方面中,可部署用于執(zhí)行一個(gè)或多個(gè)實(shí)施例的應(yīng)用程序。作為一實(shí)例,應(yīng)用程序的部署包含提供可操作以執(zhí)行一個(gè)或多個(gè)實(shí)施例的計(jì)算機(jī)基礎(chǔ)結(jié)構(gòu)。作為一另外方面,可部署一計(jì)算基礎(chǔ)結(jié)構(gòu),其包含將計(jì)算機(jī)可讀程序碼整合至計(jì)算系統(tǒng)中,其中與該計(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í)施例。與該計(jì)算機(jī)系統(tǒng)組合的程序碼能夠執(zhí)行一個(gè)或多個(gè)實(shí)施例。盡管上文描述各種實(shí)施例,但這些實(shí)施例僅為實(shí)例。舉例而言,可以使用其他架構(gòu)的計(jì)算環(huán)境。另外,可使用不同指令、指令格式、指令字段和/或指令值。此外,可提供/使用不同、其他和/或額外限制/局限。此外,可以保存/恢復(fù)通用寄存器以外的寄存器。此外,由不同處理器或者由一個(gè)或多個(gè)處理器來(lái)執(zhí)行保存/恢復(fù)。許多變化是可能的。另外,其他計(jì)算環(huán)境類型可被使用。作為一實(shí)例,適合于儲(chǔ)存和/或執(zhí)行程序碼的數(shù)據(jù)處理系統(tǒng)是可用的,其包括直接地或經(jīng)由系統(tǒng)總線間接地耦接至存儲(chǔ)器元件的至少兩個(gè)處理器。存儲(chǔ)器元件包括(例如)在程序碼的實(shí)際執(zhí)行期間使用的本地存儲(chǔ)器、大容量存儲(chǔ)器及高速緩存,該高速緩存提供至少某一程序碼的臨時(shí)儲(chǔ)存以便減少在執(zhí)行期間必須自大容量存儲(chǔ)器擷取程序碼的次數(shù)。輸入/輸出或I/O器件(包括但不限于鍵盤、顯示器、指針器件、DASD、磁帶、CD、DVD、隨身碟(thumbdrive)及其他存儲(chǔ)器介質(zhì)等等)可直接地或經(jīng)由介入I/O控制器耦接至該系統(tǒng)。網(wǎng)絡(luò)適配器亦可耦接至系統(tǒng)以使數(shù)據(jù)處理系統(tǒng)能夠經(jīng)由介入的私用或公用網(wǎng)絡(luò)耦接至其他數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)端打印機(jī)或儲(chǔ)存器件。調(diào)制解調(diào)器、纜線調(diào)制解調(diào)器及乙太網(wǎng)卡僅為可用網(wǎng)絡(luò)適配器類型中的少數(shù)幾種。參看圖16,描繪實(shí)施一個(gè)或多個(gè)實(shí)施例的主機(jī)計(jì)算機(jī)系統(tǒng)5000的代表性組件。代表性主機(jī)計(jì)算機(jī)5000包含與計(jì)算機(jī)存儲(chǔ)器(亦即,中央存儲(chǔ)器)5002通信的一個(gè)或多個(gè)CPU5001,以及用于與其他計(jì)算機(jī)或SAN及其類似者通信的至儲(chǔ)存介質(zhì)器件5011及網(wǎng)絡(luò)5010的I/O接口。CPU5001符合具有架構(gòu)化的指令集及架構(gòu)化的功能性的架構(gòu)。CPU5001可具有包括ART后備緩沖器(ALB)5013的存取寄存器轉(zhuǎn)譯(ART)5012,該存取寄存器轉(zhuǎn)譯(ART)5012用于選擇待由動(dòng)態(tài)地址轉(zhuǎn)譯(DAT)5003使用的地址空間從而將程序地址(虛擬地址)變換成存儲(chǔ)器的真實(shí)地址。DAT通常包括用于對(duì)轉(zhuǎn)譯進(jìn)行高速緩存,使得對(duì)計(jì)算機(jī)存儲(chǔ)器5002的區(qū)塊的稍后存取并不需要地址轉(zhuǎn)譯的延遲的轉(zhuǎn)譯后備緩沖器(TLB)5007。通常,高速緩存5009用于計(jì)算機(jī)存儲(chǔ)器5002與處理器5001之間。高速緩存5009可為階層式高速緩存,從而具有可用于一個(gè)以上CPU的大高速緩存及大高速緩存與每一CPU之間的較小的更快(較低層級(jí))高速緩存。在一些實(shí)施中,較低層級(jí)高速緩存經(jīng)分隔以提供分離的低層級(jí)高速緩存以用于指令提取及數(shù)據(jù)存取。在一實(shí)施例中,對(duì)于TX設(shè)施,事務(wù)診斷區(qū)塊(TDB)5100及一個(gè)或多個(gè)緩沖器5101可儲(chǔ)存于高速緩存5009及存儲(chǔ)器5002中的一個(gè)或多者中。在一實(shí)例中,在TX模式下,數(shù)據(jù)最初儲(chǔ)存于TX緩沖器中,且當(dāng)TX模式結(jié)束(例如,最外部TEND)時(shí),緩沖器中的數(shù)據(jù)儲(chǔ)存(交付)至存儲(chǔ)器,或若存在中止,則舍棄緩沖器中的數(shù)據(jù)。在一實(shí)施例中,經(jīng)由高速緩存5009藉由指令提取單元5004自存儲(chǔ)器5002提取指令。指令在指令解碼單元5006中被解碼,且分派(在一些實(shí)施例中用其他指令)至指令執(zhí)行單元5008。通常,使用若干執(zhí)行單元5008,例如,算術(shù)執(zhí)行單元、浮點(diǎn)執(zhí)行單元及分支指令執(zhí)行單元。另外,在TX設(shè)施的一實(shí)施例中,可使用各種TX控制5110。指令由執(zhí)行單元執(zhí)行,從而在需要時(shí)自指令指定的寄存器或存儲(chǔ)器存取操作數(shù)。若將自存儲(chǔ)器5002存取(載入或儲(chǔ)存)操作數(shù),則載入/儲(chǔ)存單元5005通常在正被執(zhí)行的指令控制下處置存取。指令可在硬件電路中或在內(nèi)部微碼(固件)中或由此兩者的組合執(zhí)行。根據(jù)TX設(shè)施的一個(gè)方面,處理器5001亦包括PSW5102(例如,TX和/或中止PSW)、嵌套深度5104、TDBA5106及一個(gè)或多個(gè)控制寄存器5108。如所提及,計(jì)算機(jī)系統(tǒng)包括本地(或主)存儲(chǔ)器中的信息,以及尋址、保護(hù)以及參考及改變記錄。尋址的一些方面包括地址的格式、地址空間的概念、各種地址類型,及一地址類型經(jīng)轉(zhuǎn)譯至另一地址類型的方式。主存儲(chǔ)器中的一些包括永久指派的儲(chǔ)存位置。主存儲(chǔ)器向系統(tǒng)提供數(shù)據(jù)的可直接尋址的快速存取儲(chǔ)存。數(shù)據(jù)及程序兩者在其可被處理之前將載入至主存儲(chǔ)器中(自輸入器件)。主存儲(chǔ)器可包括有時(shí)被稱作高速緩存的一個(gè)或多個(gè)較小較快存取緩沖存儲(chǔ)器。高速緩存通常與CPU或I/O處理器實(shí)體地相關(guān)聯(lián)。除了效能以外,相異儲(chǔ)存介質(zhì)的實(shí)體構(gòu)造及使用的效應(yīng)通常不能由程序觀察??删S持用于指令且用于數(shù)據(jù)操作數(shù)的分離高速緩存。高速緩存內(nèi)的信息維持于被稱作高速緩存區(qū)塊或高速緩存行(或簡(jiǎn)稱為行)的整體邊界上的連續(xù)字節(jié)中。模型可提供傳回高速緩存行的以字節(jié)為單位的大小的EXTRACTCACHEATTRIBUTE指令。模型亦可提供PREFETCHDATA及PREFETCHDATARELATIVELONG指令,其實(shí)現(xiàn)存儲(chǔ)器至數(shù)據(jù)或指令高速緩存中的預(yù)取或數(shù)據(jù)自高速緩存的釋放。存儲(chǔ)器被視作長(zhǎng)水平位字串。對(duì)于大多數(shù)操作,對(duì)存儲(chǔ)器的存取以自左側(cè)至右側(cè)序列而行進(jìn)。將位字串再分成八個(gè)位的單元。八位單元被稱作字節(jié),字節(jié)為所有信息格式的基本建置區(qū)塊。存儲(chǔ)器中的每一字節(jié)位置藉由唯一非負(fù)整數(shù)識(shí)別,該非負(fù)整數(shù)為該字節(jié)位置的地址,或簡(jiǎn)稱為字節(jié)地址。鄰近字節(jié)位置具有連續(xù)地址,其在左側(cè)以0開(kāi)始且以自左側(cè)至右側(cè)序列而行進(jìn)。地址為無(wú)正負(fù)號(hào)二進(jìn)位整數(shù),且為24、31或64個(gè)位。在存儲(chǔ)器與CPU或通道子系統(tǒng)之間一次一個(gè)字節(jié)或字節(jié)群組而傳輸信息。除非另有指定,否則在(例如)z/Architecture中,存儲(chǔ)器中的字節(jié)群組由該群組的最左側(cè)字節(jié)尋址。群組中字節(jié)的數(shù)目由待執(zhí)行的操作暗示或明確地指定。當(dāng)用于CPU操作中時(shí),字節(jié)群組被稱作字段。在每一字節(jié)群組內(nèi),在(例如)z/Architecture中,位以自左側(cè)至右側(cè)序列被編號(hào)。在z/Architecture中,最左側(cè)位有時(shí)被稱作“高階”位,且最右側(cè)位被稱作“低階”位。然而,位號(hào)碼并非儲(chǔ)存地址??蓛H尋址字節(jié)。為了對(duì)存儲(chǔ)器中的字節(jié)的個(gè)別位進(jìn)行操作,存取整個(gè)字節(jié)。字節(jié)中的位自左側(cè)至右側(cè)被編號(hào)為0至7(在(例如)z/Architecture中)。地址中的位對(duì)于24位地址可被編號(hào)為8至31或40至63,或?qū)τ?1位地址可被編號(hào)為1至31或33至63;地址中的位對(duì)于64位地址被編號(hào)為0至63。在一實(shí)例中,位8至31及1至31應(yīng)用于處于為32個(gè)位寬的位置(例如,寄存器)中的地址,而位40至63及33至63應(yīng)用于處于64位寬位置中的地址。在多個(gè)字節(jié)的任何其他固定長(zhǎng)度格式內(nèi),構(gòu)成該格式的位自0開(kāi)始進(jìn)行連續(xù)地編號(hào)。出于錯(cuò)誤偵測(cè)的目的,且較佳地出于校正起見(jiàn),可用每一字節(jié)或用一字節(jié)群組來(lái)傳輸一個(gè)或多個(gè)檢查位。此類檢查位由機(jī)器自動(dòng)地產(chǎn)生且不能直接地受到程序控制。以字節(jié)的數(shù)目來(lái)表達(dá)儲(chǔ)存容量。當(dāng)儲(chǔ)存操作數(shù)字段的長(zhǎng)度由指令的操作碼暗示時(shí),字段據(jù)稱具有固定長(zhǎng)度,該固定長(zhǎng)度可為一個(gè)、兩個(gè)、四個(gè)、八個(gè)或十六個(gè)字節(jié)。較大字段可針對(duì)一些指令進(jìn)行暗示。當(dāng)儲(chǔ)存操作數(shù)字段的長(zhǎng)度未被暗示而是被明確地陳述時(shí),字段據(jù)稱具有可變長(zhǎng)度??勺冮L(zhǎng)度操作數(shù)長(zhǎng)度可以一字節(jié)的增量(或用一些指令,以兩個(gè)字節(jié)的倍數(shù)或其他倍數(shù))發(fā)生變化。當(dāng)將信息置放于存儲(chǔ)器中時(shí),包括于指定字段中的僅那些字節(jié)位置的內(nèi)容被取代,即使至存儲(chǔ)器的實(shí)體路徑的寬度可大于正被儲(chǔ)存的字段的長(zhǎng)度亦如此。信息的某些單元將在存儲(chǔ)器中的整體邊界上。當(dāng)儲(chǔ)存地址為以字節(jié)為單位的單元的長(zhǎng)度的倍數(shù)時(shí),邊界對(duì)于信息單元被稱作整體。向整體邊界上的2、4、8、16及32字節(jié)的字段提供特殊名稱。半字組為二字節(jié)邊界上的兩個(gè)連續(xù)字節(jié)的群組,且為指令的基本建置區(qū)塊。字組為四字節(jié)邊界上的四個(gè)連續(xù)字節(jié)的群組。雙字組為八字節(jié)邊界上的八個(gè)連續(xù)字節(jié)的群組。四倍字組為16字節(jié)邊界上的16個(gè)連續(xù)字節(jié)的群組。八倍字組為32字節(jié)邊界上的32個(gè)連續(xù)字節(jié)的群組。當(dāng)儲(chǔ)存地址指明半字組、字組、雙字組、四倍字組及八倍字組時(shí),地址的二進(jìn)位表示分別含有一個(gè)、兩個(gè)、三個(gè)、四個(gè)或五個(gè)最右側(cè)零位。指令將處于二字節(jié)整體邊界上。大多數(shù)指令的儲(chǔ)存操作數(shù)并不具有邊界對(duì)準(zhǔn)要求。在實(shí)施用于指令及數(shù)據(jù)操作數(shù)的分離高速緩存的器件上,若將程序儲(chǔ)存至供隨后提取指令的高速緩存行中,則可經(jīng)歷顯著延遲,而不管儲(chǔ)存是否變更隨后被提取的指令。在一實(shí)例中,實(shí)施例可由軟件(有時(shí)指代已授權(quán)內(nèi)碼、固件、微碼、毫碼、皮碼及其類似者,前述各者中任一者將與一個(gè)或多個(gè)實(shí)施例一致)實(shí)踐。參看圖16,體現(xiàn)一個(gè)或多個(gè)方面的軟件程序碼可由主機(jī)系統(tǒng)5000的處理器5001自諸如CD-ROM驅(qū)動(dòng)器、磁帶機(jī)或硬盤驅(qū)動(dòng)器的長(zhǎng)期儲(chǔ)存介質(zhì)器件5011存取。軟件程序碼可體現(xiàn)于多種已知介質(zhì)中任一者上以供數(shù)據(jù)處理系統(tǒng)使用,諸如,磁片、硬盤驅(qū)動(dòng)器或CD-ROM。程序碼可散布于此類介質(zhì)上,或可自計(jì)算機(jī)存儲(chǔ)器5002散布至使用者或經(jīng)由網(wǎng)絡(luò)5010自一計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器散布至其他計(jì)算機(jī)系統(tǒng)以供此類其他系統(tǒng)的使用者使用。軟件程序碼包括控制各種計(jì)算機(jī)組件與一個(gè)或多個(gè)應(yīng)用程序的功能及互動(dòng)的操作系統(tǒng)。程序碼正常地自儲(chǔ)存介質(zhì)器件5011傳呼至程序碼可用于由處理器5001進(jìn)行處理的相對(duì)較高速度計(jì)算機(jī)存儲(chǔ)器5002。用于將軟件程序碼體現(xiàn)于存儲(chǔ)器中、實(shí)體介質(zhì)上和/或經(jīng)由網(wǎng)絡(luò)散布軟件碼的技術(shù)及方法是熟知的,且在本文中將不予以進(jìn)一步論述。程序碼在建立及儲(chǔ)存于有形介質(zhì)(包括但不限于電子存儲(chǔ)器模塊(RAM)、快閃存儲(chǔ)器、光碟(CD)、DVD、磁帶及其類似者)上常常常被稱作“計(jì)算機(jī)程序產(chǎn)品”。計(jì)算機(jī)程序產(chǎn)品介質(zhì)通??捎奢^佳地在計(jì)算機(jī)系統(tǒng)中的處理電路讀取以供處理電路執(zhí)行。圖17說(shuō)明可實(shí)踐一個(gè)或多個(gè)實(shí)施例的代表性工作站或伺服器硬件系統(tǒng)。圖17的系統(tǒng)5020包含包括選用周邊器件的代表性基本計(jì)算機(jī)系統(tǒng)5021,諸如,個(gè)人計(jì)算機(jī)、工作站或伺服器。基本計(jì)算機(jī)系統(tǒng)5021包括一個(gè)或多個(gè)處理器5026,及用以根據(jù)已知技術(shù)在處理器5026與系統(tǒng)5021的其他組件之間進(jìn)行連接及啟用處理器5026與其他組件之間的通信的總線。舉例而言,總線將處理器5026連接至存儲(chǔ)器5025及長(zhǎng)期存儲(chǔ)器5027,長(zhǎng)期存儲(chǔ)器5027可包括硬盤驅(qū)動(dòng)器(包括(例如)磁性介質(zhì)、CD、DVD及快閃存儲(chǔ)器中任一者)或磁帶機(jī)。系統(tǒng)5021可能亦包括使用者接口適配器,其經(jīng)由總線將微處理器5026連接至一個(gè)或多個(gè)接口器件,諸如,鍵盤5024、鼠標(biāo)5023、打印機(jī)/掃描器5030和/或其他接口器件,這些其他接口器件可為諸如觸敏式屏幕、數(shù)字化鍵入板(entrypad)等等的任何使用者接口器件??偩€亦經(jīng)由顯示適配器將諸如LCD屏幕或監(jiān)視器的顯示器件5022連接至微處理器5026。系統(tǒng)5021可憑借能夠與網(wǎng)絡(luò)5029通信5028的網(wǎng)絡(luò)適配器而與其他計(jì)算機(jī)或計(jì)算機(jī)的網(wǎng)絡(luò)通信。實(shí)例網(wǎng)絡(luò)適配器為通信通道、令牌環(huán)、乙太網(wǎng)或調(diào)制解調(diào)器?;蛘?,系統(tǒng)5021可使用諸如CDPD(蜂窩式數(shù)字封包數(shù)據(jù))卡的無(wú)線接口進(jìn)行通信。系統(tǒng)5021可與局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)中的此類其他計(jì)算機(jī)相關(guān)聯(lián),或系統(tǒng)5021可為具有另一計(jì)算機(jī)的用戶端/伺服器配置中的用戶端等等。在此項(xiàng)技術(shù)中知曉所有這些配置以及適當(dāng)通信硬件及軟件。圖18說(shuō)明可實(shí)踐一個(gè)或多個(gè)實(shí)施例的數(shù)據(jù)處理網(wǎng)絡(luò)5040。數(shù)據(jù)處理網(wǎng)絡(luò)5040可包括多個(gè)個(gè)別網(wǎng)絡(luò),諸如,無(wú)線網(wǎng)絡(luò)及有線網(wǎng)絡(luò),這些網(wǎng)絡(luò)中每一者可包括多個(gè)個(gè)別工作站5041、5042、5043、5044。另外,本領(lǐng)域的技術(shù)人員應(yīng)了解,可包括一個(gè)或多個(gè)LAN,其中LAN可包含耦接至主機(jī)處理器的多個(gè)智能工作站。仍參看圖18,網(wǎng)絡(luò)亦可包括大型主機(jī)計(jì)算機(jī)或伺服器,諸如,網(wǎng)關(guān)計(jì)算機(jī)(用戶端伺服器5046)或應(yīng)用程序伺服器(可存取數(shù)據(jù)儲(chǔ)存庫(kù)且亦可直接地自工作站5045進(jìn)行存取的遠(yuǎn)端伺服器5048)。網(wǎng)關(guān)計(jì)算機(jī)5046充當(dāng)至每一個(gè)別網(wǎng)絡(luò)中的進(jìn)入點(diǎn)。當(dāng)將一個(gè)網(wǎng)絡(luò)連接協(xié)定連接至另一網(wǎng)絡(luò)連接協(xié)定時(shí)需要網(wǎng)關(guān)。網(wǎng)關(guān)5046可較佳地憑借通信鏈路耦接至另一網(wǎng)絡(luò)(例如,因特網(wǎng)5047)。網(wǎng)關(guān)5046亦可使用通信鏈路直接地耦接至一個(gè)或多個(gè)工作站5041、5042、5043、5044。網(wǎng)關(guān)計(jì)算機(jī)可利用可購(gòu)自國(guó)際商業(yè)機(jī)器公司的IBMeServerSystemz伺服器予以實(shí)施。同時(shí)參看圖17及圖18,可體現(xiàn)一個(gè)或多個(gè)實(shí)施例的軟件編程碼5031可由系統(tǒng)5020的處理器5026自諸如CD-ROM驅(qū)動(dòng)器或硬盤驅(qū)動(dòng)器的長(zhǎng)期儲(chǔ)存介質(zhì)5027存取。軟件編程碼可體現(xiàn)于多種已知介質(zhì)中任一者上以供數(shù)據(jù)處理系統(tǒng)使用,諸如,磁片、硬盤驅(qū)動(dòng)器或CD-ROM。程序碼可散布于此類介質(zhì)上,或可自存儲(chǔ)器散布至使用者5050、5051或經(jīng)由網(wǎng)絡(luò)自一計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器散布至其他計(jì)算機(jī)系統(tǒng)以供此類其他系統(tǒng)的使用者使用?;蛘撸幊檀a可體現(xiàn)于存儲(chǔ)器5025中,且由處理器5026使用處理器總線而存取。此類編程碼包括控制各種計(jì)算機(jī)組件與一個(gè)或多個(gè)應(yīng)用程序5032的功能及互動(dòng)的操作系統(tǒng)。程序碼正常地自儲(chǔ)存介質(zhì)5027傳呼至程序碼可用于由處理器5026進(jìn)行處理的高速度存儲(chǔ)器5025。用于將軟件編程碼體現(xiàn)于存儲(chǔ)器中、實(shí)體介質(zhì)上和/或經(jīng)由網(wǎng)絡(luò)散布軟件碼的技術(shù)及方法是熟知的,且在本文中將不予以進(jìn)一步論述。程序碼在建立及儲(chǔ)存于有形介質(zhì)(包括但不限于電子存儲(chǔ)器模塊(RAM)、快閃存儲(chǔ)器、光碟(CD)、DVD、磁帶及其類似者)上時(shí)常常被稱作“計(jì)算機(jī)程序產(chǎn)品”。計(jì)算機(jī)程序產(chǎn)品介質(zhì)通??捎奢^佳地在計(jì)算機(jī)系統(tǒng)中的處理電路讀取以供處理電路執(zhí)行。最易于可用于處理器的高速緩存(相比于處理器的其他高速緩存通常較快且較小)為最低(L1或?qū)蛹?jí)1)高速緩存,且主存儲(chǔ)器(主存儲(chǔ)器)為最高層級(jí)高速緩存(若存在3個(gè)層級(jí),則為L(zhǎng)3)。最低層級(jí)高速緩存常常被劃分成保持待執(zhí)行的機(jī)器指令的指令高速緩存(I高速緩存),及保持?jǐn)?shù)據(jù)操作數(shù)的數(shù)據(jù)高速緩存(D高速緩存)。參看圖19,描繪用于處理器5026的例示性處理器實(shí)施例。通常,高速緩存5053的一個(gè)或多個(gè)層級(jí)用以緩沖存儲(chǔ)器區(qū)塊以便改良處理器效能。高速緩存5053為保持最可能使用的存儲(chǔ)器數(shù)據(jù)的高速緩存行的高速度緩沖器。典型高速緩存行為64、128或256個(gè)字節(jié)的存儲(chǔ)器數(shù)據(jù)。分離高速緩存除了用于高速緩存數(shù)據(jù)以外亦常常用于高速緩存指令。高速緩存連貫性(存儲(chǔ)器及高速緩存中行的復(fù)本的同步)常常由本領(lǐng)浴公知的各種“窺探”演算法提供。處理器系統(tǒng)的主存儲(chǔ)器存儲(chǔ)器5025常常被稱作高速緩存。在具有高速緩存5053的4個(gè)層級(jí)的處理器系統(tǒng)中,主存儲(chǔ)器5025有時(shí)被稱作層級(jí)5(L5)高速緩存,這是因?yàn)樘幚砥飨到y(tǒng)通常較快且僅保持可用于計(jì)算機(jī)系統(tǒng)的非揮發(fā)性存儲(chǔ)器(DASD、磁帶等等)的部分。主存儲(chǔ)器5025“高速緩存”由操作系統(tǒng)分頁(yè)進(jìn)及分頁(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è)位以支援先前尋址極限。程序計(jì)數(shù)器通常體現(xiàn)于計(jì)算機(jī)的PSW(程序狀態(tài)字組)中,使得程序計(jì)數(shù)器在上下文切換期間持續(xù)。因此,具有程序計(jì)數(shù)器值的在進(jìn)展中的程序可由(例如)操作系統(tǒng)中斷(自程序環(huán)境至操作系統(tǒng)環(huán)境的上下文切換)。程序的PSW在程序未處于作用中時(shí)維持程序計(jì)數(shù)器值,且操作系統(tǒng)的程序計(jì)數(shù)器(在PSW中)在操作系統(tǒng)正執(zhí)行時(shí)被使用。通常,使程序計(jì)數(shù)器累加等于當(dāng)前指令的字節(jié)的數(shù)目的量。RISC(精簡(jiǎn)指令集計(jì)算)指令通常具有固定長(zhǎng)度,而CISC(復(fù)雜指令集計(jì)算)指令通常具有可變長(zhǎng)度。IBMz/Architecture的指令為具有2、4或6個(gè)字節(jié)的長(zhǎng)度的CISC指令。舉例而言,程序計(jì)數(shù)器5061系藉由上下文切換操作或分支指令的分支采取操作而修改。在上下文切換操作中,當(dāng)前程序計(jì)數(shù)器值連同關(guān)于正被執(zhí)行的程序的其他狀態(tài)信息(諸如,條件碼)一起儲(chǔ)存于程序狀態(tài)字組中,且載入新程序計(jì)數(shù)器值從而指向待執(zhí)行的新程序模塊的指令。分支采取操作經(jīng)執(zhí)行以便藉由將分支指令的結(jié)果載入至程序計(jì)數(shù)器5061中來(lái)準(zhǔn)許程序作出決策或在程序內(nèi)循環(huán)。通常,指令提取單元5055用以以處理器5026的名義來(lái)提取指令。提取單元提取“下一循序指令”、分支采取指令的目標(biāo)指令或在上下文切換之后的程序的第一指令。現(xiàn)代指令提取單元常常使用預(yù)取技術(shù)以基于可能使用已預(yù)取指令的可能性來(lái)理論式地預(yù)取指令。舉例而言,提取單元可提取包括下一循序指令的指令的16個(gè)字節(jié)及另外循序指令的額外字節(jié)。已提取指令接著由處理器5026執(zhí)行。在一實(shí)施例中,已提取指令傳遞至提取單元的分派單元5056。該分派單元解碼指令,且將關(guān)于已解碼指令的信息轉(zhuǎn)遞至適當(dāng)單元5057、5058、5060。執(zhí)行單元5057通常將自指令提取單元5055接收關(guān)于已解碼算術(shù)指令的信息,且將根據(jù)指令的操作碼而對(duì)操作數(shù)執(zhí)行算術(shù)運(yùn)算。操作數(shù)較佳地自存儲(chǔ)器5025、架構(gòu)化寄存器5059或自正被執(zhí)行的指令的立即字段提供至執(zhí)行單元5057。執(zhí)行的結(jié)果在被儲(chǔ)存時(shí)儲(chǔ)存于存儲(chǔ)器5025、寄存器5059中或其他機(jī)器硬件(諸如,控制寄存器、PSW寄存器及其類似者)中。虛擬地址使用動(dòng)態(tài)地址轉(zhuǎn)譯5062且視情況使用存取寄存器轉(zhuǎn)譯5063而轉(zhuǎn)譯成真實(shí)地址。處理器5026通常具有一個(gè)或多個(gè)單元5057、5058、5060以用于執(zhí)行指令的功能。參看圖20A,執(zhí)行單元5057可憑借接口邏輯5071而與架構(gòu)化一般寄存器5059、解碼/分派單元5056、載入儲(chǔ)存單元5060及其他處理器單元5065通信5071。執(zhí)行單元5057可使用若干寄存器電路5067、5068、5069以保持算術(shù)邏輯單元(ALU)5066將進(jìn)行運(yùn)算的信息。ALU執(zhí)行諸如加法、減法、乘法及除法的算術(shù)運(yùn)算,以及諸如與、或及互斥或(XOR)、旋轉(zhuǎn)及移位的邏輯功能。較佳地,ALU支援設(shè)計(jì)相依的特殊化運(yùn)算。舉例而言,其他電路可提供包括條件碼及復(fù)原支援邏輯的其他架構(gòu)化設(shè)施5072。通常,ALU運(yùn)算的結(jié)果保持于輸出寄存器電路5070中,輸出寄存器電路5070可將結(jié)果轉(zhuǎn)遞至多種其他處理功能。存在處理器單元的許多配置,但本描述僅意欲提供一實(shí)施例的代表性理解。ADD指令(例如)將在具有算術(shù)及邏輯功能性的執(zhí)行單元5057中執(zhí)行,而浮點(diǎn)指令(例如)將在具有特殊化浮點(diǎn)能力的浮點(diǎn)執(zhí)行中執(zhí)行。較佳地,執(zhí)行單元藉由對(duì)由指令識(shí)別的操作數(shù)執(zhí)行操作碼定義功能而對(duì)操作數(shù)進(jìn)行運(yùn)算。舉例而言,ADD指令可由執(zhí)行單元5057對(duì)在由該指令的寄存器字段識(shí)別的兩個(gè)寄存器5059中發(fā)現(xiàn)的操作數(shù)執(zhí)行。執(zhí)行單元5057對(duì)兩個(gè)操作數(shù)執(zhí)行算術(shù)加法,且將結(jié)果儲(chǔ)存于第三操作數(shù)中,其中第三操作數(shù)可為第三寄存器或兩個(gè)來(lái)源寄存器中的一個(gè)。執(zhí)行單元較佳地利用算術(shù)邏輯單元(ALU)5066,ALU5066能夠執(zhí)行諸如移位、旋轉(zhuǎn)、與、或及XOR的多種邏輯功能,以及包括加法、減法、乘法、除法中任一者的多種代數(shù)功能。一些ALU5066經(jīng)設(shè)計(jì)成用于純量運(yùn)算且一些ALU5066經(jīng)設(shè)計(jì)成用于浮點(diǎn)。取決于架構(gòu),數(shù)據(jù)可為字節(jié)由大到小(BigEndian)(其中最低有效字節(jié)處于最高字節(jié)地址)或字節(jié)由小到大(LittleEndian)(其中最低有效字節(jié)處于最低字節(jié)地址)。IBMz/Architecture為字節(jié)由大到小。取決于架構(gòu),帶正負(fù)號(hào)字段可為正負(fù)號(hào)及量值、1的補(bǔ)數(shù),或2的補(bǔ)數(shù)。2的補(bǔ)數(shù)有利之處在于:ALU無(wú)需設(shè)計(jì)減法能力,這是因?yàn)?的補(bǔ)數(shù)中的負(fù)值或正值僅需要在ALU內(nèi)的加法。舉例而言,常常以速記法來(lái)描述數(shù)字,其中12位字段定義4,096字節(jié)區(qū)塊的地址,且通常被描述為4千字節(jié)區(qū)塊。參看圖20B,用于執(zhí)行分支指令的分支指令信息通常發(fā)送至分支單元5058,分支單元5058常常使用諸如分支歷史表5082的分支預(yù)測(cè)演算法以在其他條件操作完成之前預(yù)測(cè)分支的結(jié)果。當(dāng)前分支指令的目標(biāo)將被提取,且在條件操作完成之前被理論式地執(zhí)行。當(dāng)完成條件操作時(shí),理論式執(zhí)行的分支指令基于條件操作的條件及所理論結(jié)果而被完成或舍棄。典型分支指令可測(cè)試條件碼,且在條件碼滿足分支指令的分支要求時(shí)分支至目標(biāo)地址,目標(biāo)地址可基于(例如)包括在寄存器字段或指令的立即字段中發(fā)現(xiàn)的數(shù)字的若干數(shù)字予以計(jì)算。分支單元5058可使用ALU5074,ALU5074具有多個(gè)輸入寄存器電路5075、5076、5077及輸出寄存器電路5080。舉例而言,分支單元5058可與一般寄存器5059、解碼分派單元5056或其他電路5073通信5081。舉例而言,指令群組的執(zhí)行可由于多種原因而中斷,這些原因包括由操作系統(tǒng)起始的上下文切換、造成上下文切換的程序異?;蝈e(cuò)誤、造成上下文切換的I/O中斷信號(hào),或多個(gè)程序的多線程活動(dòng)(在多線程化環(huán)境中)。較佳地,上下文切換動(dòng)作儲(chǔ)存關(guān)于當(dāng)前執(zhí)行程序的狀態(tài)信息,且接著載入關(guān)于正被調(diào)用的另一程序的狀態(tài)信息。舉例而言,狀態(tài)信息可儲(chǔ)存于硬件寄存器中或存儲(chǔ)器中。狀態(tài)信息較佳地包含指向待執(zhí)行的下一指令的程序計(jì)數(shù)器值、條件碼、存儲(chǔ)器轉(zhuǎn)譯信息,及架構(gòu)化寄存器內(nèi)容。上下文切換活動(dòng)可由硬件電路、應(yīng)用程序、操作系統(tǒng)程序或固件碼(微碼、皮碼或已授權(quán)內(nèi)碼(LIC))單獨(dú)地或組合地演練。處理器根據(jù)指令定義方法而存取操作數(shù)。指令可使用指令的部分的值來(lái)提供立即操作數(shù),可提供明確地指向一般用途寄存器或特殊用途寄存器(例如,浮點(diǎn)寄存器)的一個(gè)或多個(gè)寄存器字段。指令可利用由操作碼字段識(shí)別的所暗示寄存器作為操作數(shù)。指令可將存儲(chǔ)器位置用于操作數(shù)。如由z/Architecture長(zhǎng)位移設(shè)施所例示,操作數(shù)的存儲(chǔ)器位置可由寄存器、立即字段或寄存器與立即字段的組合提供,其中指令定義基底寄存器、索引寄存器及立即字段(位移字段),前述三者加在一起以提供(例如)操作數(shù)在存儲(chǔ)器中的地址。本文中的位置通常暗示主存儲(chǔ)器(主存儲(chǔ)器)中的位置,除非另有指示。參看圖20C,處理器使用載入/儲(chǔ)存單元5060來(lái)存取存儲(chǔ)器。載入/儲(chǔ)存單元5060可藉由獲得目標(biāo)操作數(shù)在存儲(chǔ)器5053中的地址且將操作數(shù)載入于寄存器5059或另一存儲(chǔ)器5053的位置而執(zhí)行載入操作,或可藉由獲得目標(biāo)操作數(shù)在存儲(chǔ)器5053中的地址且將自寄存器5059或另一存儲(chǔ)器5053的位置獲得的數(shù)據(jù)儲(chǔ)存于存儲(chǔ)器5053中的目標(biāo)操作數(shù)位置中而執(zhí)行儲(chǔ)存操作。載入/儲(chǔ)存單元5060可為理論式,且可以相對(duì)于指令序列無(wú)序的序列存取存儲(chǔ)器,然而,載入/儲(chǔ)存單元5060對(duì)程序維持指令被按次序執(zhí)行的外觀。載入/儲(chǔ)存單元5060可與一般寄存器5059、解碼/分派單元5056、高速緩存/存儲(chǔ)器接口5053或其他元件5083通信5084,且包含各種寄存器電路5086、5087、5088及5089、ALU5085及控制邏輯5090以計(jì)算儲(chǔ)存地址且提供管線定序以使操作按次序。一些操作可無(wú)序,但載入/儲(chǔ)存單元提供使無(wú)序操作對(duì)于程序看來(lái)像是已按次序被執(zhí)行的功能性,如本領(lǐng)域中所公知的那樣。較佳地,應(yīng)用程序所“查看”的地址常常被稱作虛擬地址。虛擬地址有時(shí)被稱作“邏輯地址”及“有效地址”。這些虛擬地址為虛擬之處在于:其藉由多種動(dòng)態(tài)地址轉(zhuǎn)譯(DAT)技術(shù)中的一個(gè)重新引導(dǎo)至實(shí)體存儲(chǔ)器位置,這些技術(shù)包括但不限于簡(jiǎn)單地用偏移值來(lái)加前綴于虛擬地址、經(jīng)由一個(gè)或多個(gè)轉(zhuǎn)譯表轉(zhuǎn)譯虛擬地址,轉(zhuǎn)譯表較佳單獨(dú)地或組合地至少包含區(qū)段表及頁(yè)表,較佳地,區(qū)段表具有指向頁(yè)表的項(xiàng)。在z/Architecture中,提供轉(zhuǎn)譯階層,包括區(qū)第一表、區(qū)第二表、區(qū)第三表、區(qū)段表及選用頁(yè)表。常常藉由利用轉(zhuǎn)譯后備緩沖器(TLB)來(lái)改良地址轉(zhuǎn)譯的效能,該TLB包含將虛擬地址映射至關(guān)聯(lián)實(shí)體存儲(chǔ)器位置的項(xiàng)。當(dāng)DAT使用轉(zhuǎn)移譯來(lái)轉(zhuǎn)譯虛擬地址時(shí)建立這些項(xiàng)。虛擬地址的后續(xù)使用接著可利用快速TLB的項(xiàng)而非緩慢循序轉(zhuǎn)譯表存取。TLB內(nèi)容可由包括LRU(最近最少使用)的多種取代演算法管理。在處理器為多處理器系統(tǒng)的處理器的狀況下,每一處理器具有使諸如I/O、高速緩存、TLB及存儲(chǔ)器的共用資源出于一致性而保持連鎖的職責(zé)。通常,“窺探”技術(shù)將用來(lái)維持高速緩存一致性。在窺探環(huán)境中,可將每一高速緩存行標(biāo)示為處于共用狀態(tài)、獨(dú)占狀態(tài)、已改變狀態(tài)、無(wú)效狀態(tài)及其類似者中任一者以便促進(jìn)共用。舉例而言,I/O單元5054(圖19)向處理器提供用于附接至包括磁帶、碟片、打印機(jī)、顯示器及網(wǎng)絡(luò)的周邊器件的構(gòu)件。I/O單元常常由軟件驅(qū)動(dòng)程序呈現(xiàn)給計(jì)算機(jī)程序。在諸如可購(gòu)自的Systemz的大型主機(jī)中,通道適配器及開(kāi)放系統(tǒng)適配器為在操作系統(tǒng)與周邊器件之間提供通信的大型主機(jī)的I/O單元。另外,其他計(jì)算環(huán)境類型可受益于一個(gè)或多個(gè)方面。作為一實(shí)例,環(huán)境可包括模擬器(例如,軟件或其他模擬機(jī)制),其中特定架構(gòu)(包括(例如)指令執(zhí)行、架構(gòu)化功能(諸如,地址轉(zhuǎn)譯)及架構(gòu)化寄存器)或其子集被模擬(例如,在具有處理器及存儲(chǔ)器的原生計(jì)算機(jī)系統(tǒng)上)。在此類環(huán)境中,模擬器的一個(gè)或多個(gè)模擬功能可實(shí)施一個(gè)或多個(gè)實(shí)施例,即使執(zhí)行該模擬器的計(jì)算機(jī)可具有不同于正被模擬的能力的架構(gòu)亦如此。作為一實(shí)例,在模擬模式下,解碼正被模擬的特定指令或操作,且建置適當(dāng)模擬功能以實(shí)施個(gè)別指令或操作。在一模擬環(huán)境中,主機(jī)計(jì)算機(jī)包括(例如):存儲(chǔ)器,其儲(chǔ)存指令及數(shù)據(jù);指令提取單元,其自存儲(chǔ)器提取指令,且視情況提供用于已提取指令的本地緩沖;指令解碼單元,其接收已提取指令且判定已被提取的指令類型;及指令執(zhí)行單元,其執(zhí)行這些指令。執(zhí)行可包括將數(shù)據(jù)自存儲(chǔ)器載入至寄存器中;將數(shù)據(jù)自寄存器儲(chǔ)存回至存儲(chǔ)器;或執(zhí)行某一算術(shù)或邏輯運(yùn)算類型,如由解碼單元所判定。在一實(shí)例中,以軟件來(lái)實(shí)施每一單元。舉例而言,由這些單元執(zhí)行的操作被實(shí)施為模擬器軟件內(nèi)的一個(gè)或多個(gè)子例程。更特定而言,在大型主機(jī)中,架構(gòu)化機(jī)器指令常常憑借編譯器應(yīng)用程序供程序員(通常現(xiàn)今為“C”程序員)使用。儲(chǔ)存于儲(chǔ)存介質(zhì)中的這些指令可原生地在z/Architecture伺服器中或者在執(zhí)行其他架構(gòu)的機(jī)器中執(zhí)行。指令可在現(xiàn)有及未來(lái)大型主機(jī)伺服器中且在的其他機(jī)器(例如,PowerSystem伺服器及Systemx伺服器)上進(jìn)行模擬。指令可在使用由、、AMD及其他制造商制造的硬件的各種各樣的機(jī)器上執(zhí)行Linux的機(jī)器中執(zhí)行。除了在依據(jù)z/Architecture的該硬件上的執(zhí)行以外,亦可使用Linux以及數(shù)個(gè)使用由Hercules、UMX或FSI(FundamentalSoftware公司)進(jìn)行的模擬的機(jī)器,在這些機(jī)器處執(zhí)行通常處于模擬模式。在模擬模式下,模擬軟件由原生處理器執(zhí)行以對(duì)模擬處理器的架構(gòu)進(jìn)行模擬。原生處理器通常執(zhí)行模擬軟件,該模擬軟件包含固件或原生操作系統(tǒng)以執(zhí)行模擬處理器的模擬。模擬軟件負(fù)責(zé)提取及執(zhí)行模擬處理器架構(gòu)的指令。模擬軟件維持模擬程序計(jì)數(shù)器以追蹤指令邊界。模擬軟件一次可提取一個(gè)或多個(gè)模擬機(jī)器指令,且將該一個(gè)或多個(gè)模擬機(jī)器指令轉(zhuǎn)換成原生機(jī)器指令的對(duì)應(yīng)群組以供原生處理器執(zhí)行。這些已轉(zhuǎn)換指令可被高速緩存,使得可實(shí)現(xiàn)較快轉(zhuǎn)換。然而,模擬軟件仍維持模擬處理器架構(gòu)的架構(gòu)規(guī)則以便確信針對(duì)模擬處理器撰寫的操作系統(tǒng)及應(yīng)用程序正確地操作。此外,模擬軟件將提供由模擬處理器結(jié)構(gòu)識(shí)別的資源,使得經(jīng)設(shè)計(jì)成在模擬處理器上執(zhí)行的操作系統(tǒng)或應(yīng)用程序可在具有模擬軟件的原生處理器上執(zhí)行,這些資源包括但不限于控制寄存器、一般用途寄存器、浮點(diǎn)寄存器、包括(例如)區(qū)段表及頁(yè)表的動(dòng)態(tài)地址轉(zhuǎn)譯函數(shù)、中斷機(jī)制、上下文切換機(jī)制、當(dāng)日時(shí)間(TOD)時(shí)鐘及至I/O子系統(tǒng)的架構(gòu)化接口。解碼正被模擬的指定指令,且呼叫子例程以執(zhí)行個(gè)別指令的功能。對(duì)模擬處理器的功能進(jìn)行模擬的模擬軟件功能以(例如)以下各者予以實(shí)施:“C”子例程或驅(qū)動(dòng)程序,或提供用于特定硬件的驅(qū)動(dòng)程序的某一其他方法,此在理解較佳實(shí)施例的描述之后將在本領(lǐng)域技術(shù)人員的技藝內(nèi)。包括但不限于以下各者的各種軟件及硬件模擬專利說(shuō)明多種已知方法來(lái)達(dá)成針對(duì)不同機(jī)器架構(gòu)化的指令格式的模擬以用于可用于本領(lǐng)域技術(shù)人員的目標(biāo)機(jī)器:Beausoleil等人的名為“MultiprocessorforHardwareEmulation”的美國(guó)專利證書第5,551,013號(hào);及Scalzi等人的名為“PreprocessingofStoredTargetRoutinesforEmulatingIncompatibleInstructionsonaTargetProcessor”的美國(guó)專利證書第6,009,261號(hào);及Davidian等人的名為“DecodingGuestInstructiontoDirectlyAccessEmulationRoutinesthatEmulatetheGuestInstructions”的美國(guó)專利證書第5,574,873號(hào);及Gorishek等人的名為“SymmetricalMultiprocessingBusandChipsetUsedforCoprocessorSupportAllowingNon-NativeCodetoRuninaSystem”的美國(guó)專利證書第6,308,255號(hào);及Lethin等人的名為“DynamicOptimizingObjectCodeTranslatorforArchitectureEmulationandDynamicOptimizingObjectCodeTranslationMethod”的美國(guó)專利證書第6,463,582號(hào);及EricTraut的名為“MethodforEmulatingGuestInstructionsonaHostComputerThroughDynamicRecompilationofHostInstructions”的美國(guó)專利證書第5,790,825號(hào),前述專利證書中每一個(gè)的全文據(jù)此以引用方式并入本文中;及許多其他專利證書。在圖23中,提供模擬主機(jī)計(jì)算機(jī)系統(tǒng)5092的實(shí)例,其模擬主機(jī)架構(gòu)的主機(jī)計(jì)算機(jī)系統(tǒng)5000'。在模擬主機(jī)計(jì)算機(jī)系統(tǒng)5092中,主機(jī)處理器(CPU)5091為模擬主機(jī)處理器(或虛擬主機(jī)處理器),且包含具有不同于主機(jī)計(jì)算機(jī)5000'的處理器5091的原生指令集架構(gòu)的原生指令集架構(gòu)的模擬處理器5093。模擬主機(jī)計(jì)算機(jī)系統(tǒng)5092具有對(duì)于模擬處理器5093可存取的存儲(chǔ)器5094。在實(shí)例實(shí)施例中,存儲(chǔ)器5094經(jīng)分割成主機(jī)計(jì)算機(jī)存儲(chǔ)器5096部分及模擬例程5097部分。主機(jī)計(jì)算機(jī)存儲(chǔ)器5096根據(jù)主機(jī)計(jì)算機(jī)架構(gòu)可用于模擬主機(jī)計(jì)算機(jī)5092的程序。模擬處理器5093執(zhí)行不同于模擬處理器5091的架構(gòu)的架構(gòu)的架構(gòu)化的指令集的原生指令,這些原生指令自模擬例程存儲(chǔ)器5097獲得;且可藉由使用在序列與存取/解碼例程中獲得的一個(gè)或多個(gè)指令來(lái)自主機(jī)計(jì)算機(jī)存儲(chǔ)器5096中的程序存取主機(jī)指令以供執(zhí)行,序列與存取/解碼例程可解碼所存取的主機(jī)指令以判定用于模擬所存取的主機(jī)指令的功能的原生指令執(zhí)行例程。舉例而言,針對(duì)主機(jī)計(jì)算機(jī)系統(tǒng)5000'的架構(gòu)定義的其他設(shè)施可藉由架構(gòu)化的設(shè)施例程來(lái)模擬,包括作為一般用途寄存器、控制寄存器、動(dòng)態(tài)地址轉(zhuǎn)譯及I/O子系統(tǒng)支援及處理器高速緩存的此類設(shè)施。模擬例程亦可利用在模擬處理器5093中可用的功能(諸如,一般寄存器及虛擬地址的動(dòng)態(tài)轉(zhuǎn)譯)以改良模擬例程的效能。專用硬件及卸載引擎亦可經(jīng)提供以在模擬主機(jī)計(jì)算機(jī)5000'的功能中協(xié)助處理器5093。本文所使用的術(shù)語(yǔ)僅出于描述特定實(shí)施例的目的,且并不意欲為限制性的。如本文所使用,除非上下文另有清楚指示,否則單數(shù)形式“一”及“該”意欲亦包括復(fù)數(shù)形式。應(yīng)進(jìn)一步理解,術(shù)語(yǔ)“包含”在用于本說(shuō)明書中時(shí)指定存在所敘述特征、整數(shù)、步驟、操作、元件和/或組件,但并不排除存在或添加一種或多種其他特征、整數(shù)、步驟、操作、元件、組件和/或其群組。以下申請(qǐng)專利范圍中的所有構(gòu)件或步驟附加功能元件的對(duì)應(yīng)結(jié)構(gòu)、材料、動(dòng)作及等效者(若有)意欲包括用于結(jié)合如特定主張的其他所主張?jiān)?zhí)行功能的任何結(jié)構(gòu)、材料或動(dòng)作。出于說(shuō)明及描述的目的已呈現(xiàn)一或多個(gè)實(shí)施例的描述,但該描述并不意欲為詳盡的或?qū)⒈景l(fā)明限于所揭示的形式。許多修改及變化對(duì)于本領(lǐng)域技術(shù)人員將顯而易見(jiàn)。選擇及描述實(shí)施例以便最佳地解釋各種方面及實(shí)踐應(yīng)用,且使其他本領(lǐng)域技術(shù)人員能夠理解具有如適合于所涵蓋的特定用途的各種修改的各種實(shí)施例。
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1