新四季網

受限事務執行的製作方法

2023-10-08 13:25:29

受限事務執行的製作方法
【專利摘要】提供受限事務處理。通過事務開始受限指令的執行來起始受限事務。受限事務具有與之關聯的多個限制。缺少受限的違反,所述受限事務將要完成。如果遭遇中止條件,則開始於事務開始指令,重新執行事務。限制的違反可能發生中斷。
【專利說明】受限事務執行

【技術領域】
[0001] 一個或多個方面大體上關於多處理計算環境,且尤其關於此類計算環境內的事務 處理。

【背景技術】
[0002] 多處理器編程中的持久挑戰為由多個中央處理單元(CPU)對同一儲存位置的更 新的挑戰。更新儲存位置的許多指令(甚至包括諸如AND的簡單邏輯運算)用對該位置的 多次存取來進行該更新。舉例而言,首先提取儲存位置,且接著儲存回已更新結果。
[0003] 為了使多個CPU安全地更新同一儲存位置,序列化對該位置的存取。用先前由國 際商業機器公司提供的S/360架構引入的一個指令(TEST AND SET指令)提供儲存位置的 連鎖更新(interlocked update)。連鎖更新意謂:如由其他CPU及輸入/輸出(I/O)子系 統(例如,通道子系統)所觀察的那樣,指令的整個儲存存取看來像是自動地發生的一樣。 稍後,由國際商業機器公司提供的S/370架構引入COMPARE AND SWAP及COMPARE DOUBLE AND SWAP指令,這些指令提供執行連鎖更新的較精密方式且允許通常被稱為鎖定字組(或 旗號)的實施。最近新增的指令已提供額外連鎖更新能力,包括COMPARE AND SWAP AND PURGE及COMPARE AND SWAP AND STORE。然而,所有這些指令提供用於僅單一儲存位置的 連鎖。
[0004] 較複雜的程序技術可需要多個儲存位置的連鎖更新,諸如,當將一元素新增至一 雙向連結清單(doubly-linked list)時。在此類操作中,前向指針及向後指針兩者皆看來 像是被同時地更新一樣,如由其他CPU及1/0子系統所觀察的那樣。為了實現此類多重位 置更新,強制程序使用分離的單一序列化點,諸如,鎖定字組。然而,鎖定字組可提供比所保 證的序列化層級粗略得多的序列化層級;舉例而言,鎖定字組可序列化數百萬個元素的整 個隊列,即使僅兩個元素正被更新亦如此。程序可結構化數據以使用較精細粒度級序列化 (例如,鎖定點階層),但這引入額外問題,諸如,在違反該階層時的潛在鎖死情形,及在程 序遭遇錯誤同時保持一或多個鎖定時或在不能獲取鎖定時的復原問題。
[0005] 除了以上內容以外,亦存在程序可以執行可能引起或可能不引起異常情況的指令 序列的眾多情境。若未發生異常情況,則程序繼續;然而,若辨識出異常,則程序可採取校正 動作以消除異常情況。作為一實例,Java可在(例如)理論式執行、函數的部分內嵌和/或 指針空值檢查的重新定序中利用此類執行。
[0006] 在諸如由國際商業機器公司提供的z/0S及其前身的傳統作業系統環境中,程序 建立復原環境以攔截程序可遭遇的任何程序異常情況。若程序未攔截到異常,則作業系統 通常針對作業系統未準備好進行處置的異常而例外地終止程序。建立及利用此類環境是昂 貴且複雜的。


【發明內容】

[0007] 經由提供一種用於處理計算環境內的事務的電腦程式產品而克服先前技術的 缺點且提供優點。該電腦程式產品包括一計算機可讀儲存介質,該計算機可讀儲存介質 可由一處理電路讀取且儲存指令以供該處理電路執行來執行一方法。舉例而言,所述方法 包括以下步驟:由處理器在計算環境中執行事務,所述事務有效地延遲將事務存儲交付至 主存儲器,直到選擇的事務完成為止;基於執行所述事務而確定已經出現中止條件;檢查 所述事務是否為受限事務,所述受限事務具有與之關聯的一個或多個限制;以及基於確定 所述中止條件和所述檢查指示所述事務是受限事務,返回到所述事務的開始以重新執行所 述事務。
[0008] 本文亦描述及主張與一個或多個實施例相關的方法及系統。另外,本文亦描述且 可主張與一個或多個實施例相關的服務。
[0009] 貫穿全文實現額外特徵及優點。其他實施例及方面在本文中得以詳細地描述且被 看作本發明的部分。

【專利附圖】

【附圖說明】
[0010] 在本說明書完結時於權利要求中將一個或多個方面特定地指出且清楚地主張為 實例。前述及其他目標、特徵及優點自結合附圖而進行的以下詳細描述變得顯而易見,在這 些圖中:
[0011] 圖1描繪計算環境的一實施例;
[0012] 圖2A描繪事務開始(TBEGIN)指令的一實例;
[0013] 圖2B描繪圖2A的TBEGIN指令的欄位的另外細節的一實施例;
[0014] 圖3A描繪事務開始受限(TBEGINC)指令的一實例;
[0015] 圖3B描繪圖3A的TBEGINC指令的欄位的另外細節的一實施例;
[0016] 圖4描繪事務結束(TEND)指令的一實例;
[0017] 圖5描繪事務中止(TABORT)指令的一實例;
[0018] 圖6描繪嵌套事務的一實例;
[0019] 圖 7 描繪 NONTRANSACTIONAL STORE(NTSTG)指令的一實例;
[0020] 圖 8 描繪 EXTRACT TRANSACTION NESTING DEPTH(ETND)指令的一實例;
[0021] 圖9描繪事務診斷區塊的一實例;
[0022] 圖10描繪中止的實例原因,連同關聯中止碼及條件碼;
[0023] 圖11描繪與創建受限或非受限事務關聯的邏輯的一實施例;
[0024] 圖12描繪與執行事務,並且具體地說,與取決於事務的類型而處理中止條件關聯 的邏輯的一實施例;
[0025] 圖13描繪與執行TBEGINC指令相關聯的邏輯的一實施例;
[0026] 圖14描繪與採取動作以便於受限事務的完成相關聯的邏輯的一實施例;
[0027] 圖15A至圖15B描繪將隊列元素插入至隊列元素雙向連結清單中的實例;
[0028] 圖16描繪電腦程式產品的一實施例;
[0029] 圖17描繪主機計算機系統的一實施例;
[0030] 圖18描繪計算機系統的另外實例;
[0031] 圖19描繪包含計算機網絡的計算機系統的另一實例;
[0032] 圖20描繪計算機系統的各種元件的一實施例;
[0033]圖21A描繪圖20的計算機系統的執行單元的一實施例;
[0034] 圖21B描繪圖20的計算機系統的分支單元的一實施例;
[0035] 圖21C描繪圖20的計算機系統的載入/儲存單元的一實施例;及
[0036] 圖22描繪模擬主機計算機系統的一實施例。

【具體實施方式】
[0037] 根據一個方面,提供一種事務執行(TX)設施。此設施提供用於指令的事務處理, 且在一個或多個實施例中提供如下文所描述的不同執行模式,以及事務處理的嵌套層級。
[0038] 事務執行設施引入被稱作事務執行(TX)模式的CPU狀態。在CPU重設之後,CPU 並不處於TX模式。CPU藉由TRANSACTION BEGIN指令進入TX模式。CPU藉由(a)最外部 TRANSACTION END指令(關於內部指令及外部指令的更多細節如下)或(b)正被中止的事 務而離開TX模式。雖然處於TX模式,但由CPU進行的儲存存取看來像是區塊並行的一樣, 如由其他CPU及I/O子系統所觀察的那樣。儲存存取(a)在最外部事務在無中止的情況下 結束時被交付至存儲器(亦即,例如,在CPU本地的高速緩存或緩衝器中進行的更新經傳播 及儲存於真實存儲器中且可為其他CPU所見),或(b)在事務中止時被捨棄。
[0039] 事務可為嵌套。亦即,在CPU處於TX模式時,CPU可執行另一 TRANSACTION BEGIN 指令。使CPU進入TX模式的指令被稱作最外部TRANSACTION BEGIN ;相似地,程序據稱處 於最外部事務。
[0040] TRANSACTION BEGIN的後續執行被稱作內部指令;且程序正執行內部事務。模型 提供最小嵌套深度及模型相依最大嵌套深度。EXTRACTTRANSACTION NESTING DEPTH指令傳 回當前嵌套深度值,且在一另外實施例中可傳回最大嵌套深度值。此技術使用被稱作"扁平 化嵌套(flattened nesting)"的模型,其中任何嵌套深度處的中止條件造成事務的所有層 級中止,且控制傳回至在最外部TRANSACTION BEGIN之後的指令。
[0041] 在事務的處理期間,由一個CPU進行的事務存取據稱與(a)由另一 CPU進行的事 務存取或非事務存取衝突,或與(b)由1/0子系統進行的非事務存取衝突(若兩種存取是 針對同一高速緩存行內的任何位置,且這些存取中的一個或兩個為儲存)。換言之,為了使 事務執行有生產力,CPU不應被觀察到進行事務存取直至事務存取交付為止。此編程模型 在某些環境中可以高度地有效;例如,數百萬個元素的雙向連結清單中的兩個點的更新。然 而,若針對正被事務地存取的儲存位置存在許多爭用,則該編程模型可能較不有效。
[0042] 在一個事務執行模型(在本文中被稱作非受限事務)中,當事務中止時,程序可嘗 試重新驅動事務以希望不再出現中止情況,或程序可"後退"至等效非事務路徑。在另一事 務執行模型(在本文中被稱作受限事務)中,已中止事務由CPU自動地重新驅動;在不存在 限制違反時,受限事務確保最終完成。
[0043] 當起始事務時,程序可指定各種控制,諸如:(a)在事務中止時哪些通用寄存器恢 復為其原始內容;(b)是否允許事務修改浮點寄存器上下文,包括(例如)浮點寄存器及浮 點控制寄存器;(c)是否允許事務修改存取寄存器(AR);及(d)是否將封鎖某些程序異常 情況免於造成中斷。若非受限事務中止,則可提供各種診斷信息。舉例而言,起始非受限事 務的最外部TBEGIN指令可指明程序指定事務診斷區塊(TDB)。另外,若事務分別歸因於程 序中斷或造成解譯性執行結束的情況而中止,則亦可使用CPU的前置區域中或由主機的狀 態描述指明的TDB。
[0044] 上文指示各種類型的寄存器。本文進一步詳細地解釋這些寄存器。通用寄存器可 用作一般算術及邏輯運算中的累加器。在一個實施例中,每一寄存器含有64個位的位置, 且存在16個通用寄存器。這些通用寄存器由數字0至15識別,且由一指令中的四位R字 段指明。一些指令規定藉由具有若干R欄位來尋址多個通用寄存器。對於一些指令,特定 通用寄存器的使用被暗示,而非由該指令的R欄位明確地指明。
[0045] 除了作為一般算術及邏輯運算中的累加器的使用以外,16個通用寄存器中的15 個寄存器亦在地址產生中用作基底地址及索引寄存器。在此等狀況下,這些寄存器由一指 令中的四位B欄位或X欄位指明。該B或X欄位中的值0指定出將不應用基底或索引,且 因此,通用寄存器0將不被指明為含有基底地址或索引。
[0046] 浮點指令使用浮點寄存器集合。在一實施例中,CPU具有16個浮點寄存器。這些 浮點寄存器由數字〇至15識別,且由浮點指令中的四位R欄位指明。每一浮點寄存器為64 個位長,且可含有短(32位)浮點操作數或長(64位)浮點操作數。
[0047] 浮點控制(FPC)寄存器為含有屏敝位、標誌位、數據異常碼及舍位模式位的32位 寄存器,且在浮點運算的處理期間被使用。
[0048] 另外,在一個實施例中,CPU具有16個控制寄存器,每一控制寄存器具有64個位的 位置。這些寄存器中的位的位置指派至系統中的特定設施,諸如,程序事件記錄(PER)(下 文所論述),且用以指定出可進行操作,或用以供給由該設施需要的特殊信息。在一個實施 例中,對於事務設施,使用CRO(位8及9)及CR2(位61至63),如下文所描述。
[0049] 舉例而言,CPU具有被編號為0至15的16個存取寄存器。一個存取寄存器由含 有地址空間控制元素(ASCE)的間接規格的32個位的位置組成。地址空間控制元素為由動 態地址轉譯(DAT)機制使用以將參考轉譯至對應地址空間的參數。當CPU處於被稱作存取 寄存器模式的模式(由程序狀態字組(PSW)中的位控制)時,用以指定針對儲存操作數參 考的邏輯地址的指令B欄位指明存取寄存器,且由存取寄存器指定的地址空間控制元素由 DAT用於正被進行的參考。對於一些指令,使用R欄位而非B欄位。提供指令以用於載入及 儲存存取寄存器的內容且用於將一個存取寄存器的內容移動至另一存取寄存器。
[0050] 存取寄存器1至15中每一個可指明任何地址空間。存取寄存器0指明主要指令 空間。當存取寄存器1至15中的一個用以指明地址空間時,CPU判定藉由轉譯存取寄存器 的內容而指明哪一地址空間。當存取寄存器0用以指明地址空間時,CPU將該存取寄存器 視為指明主要指令空間,且CPU並不檢驗該存取寄存器的實際內容。因此,16個存取寄存器 可在任一時間指明主要指令空間及15個其他空間的最大值。
[0051] 在一個實施例中,存在多個類型的地址空間。一個地址空間為整數(虛擬地址) 的連續序列,連同允許每一數字與存儲器中的字節位置相關聯的特定變換參數。該序列以 〇開始且自左側至右側進行。
[0052] 舉例而言,在z/Architecture中,當虛擬地址是由CPU使用以存取主存儲器(又 名,主存儲器)時,虛擬地址首先憑藉動態地址轉譯(DAT)而轉換至真實地址,且接著憑藉 加前綴(prefixing)而轉換至絕對地址。DAT可使用表的一個至五個層級(頁、區段、區第 三、區第二及區第一)作為變換參數。用於特定地址空間的最高層級表的指明(原點及長 度)被稱作地址空間控制元素,且該指明被發現供DAT用於控制寄存器中或如由存取寄存 器所指定。或者,用於地址空間的地址空間控制元素可為真實空間指明,其指示出DAT用以 簡單地藉由將虛擬地址視為真實地址且不使用任何表來轉譯虛擬地址。
[0053] DAT在不同時間使用不同控制寄存器中或由存取寄存器指定的地址空間控制元 素。選擇由當前PSW中指定的轉譯模式判定。四個轉譯模式是可用的:主要空間模式、次要 空間模式、存取寄存器模式及本籍空間模式(home space mode)。取決於轉譯模式,不同地 址空間是可尋址的。
[0054] 在CPU處於主要空間模式或次要空間模式時的任何時刻,CPU可轉譯屬於兩個地 址空間(主要地址空間及第二地址空間)的虛擬地址。在CPU處於存取寄存器模式時的任 何時刻,CPU可轉譯高達16個地址空間(主要地址空間及高達15個AR指定地址空間)的 虛擬地址。在CPU處於本籍空間模式時的任何時刻,CPU可轉譯本籍地址空間的虛擬地址。
[0055] 主要地址空間因而被識別,這是因為其由主要虛擬地址組成,這些主要虛擬地址 憑藉主要地址空間控制元素(ASCE)而轉譯。相似地,次要地址空間由憑藉次要ASCE轉譯 的次要虛擬地址組成;AR指定地址空間由憑藉AR指定ASCE轉譯的AR指定虛擬地址組成; 且本籍地址空間由憑藉本籍ASCE轉譯的本籍虛擬地址組成。主要ASCE及次要ASCE分別 處於控制寄存器1及7中。AR指定ASCE處於使用控制寄存器2、5及8經由被稱作存取寄 存器轉譯(ART)的處理而定位的ASN第二表項中。本籍ASCE處於控制寄存器13中。
[0056] 參看圖1來描述用以併入及使用本文所描述的事務設施的一個或多個方面的計 算環境的一個實施例。
[0057] 參看圖1,在一實例中,計算環境100基於由紐約州阿蒙克市的國際商 業機器(IBMk)公司提供的z/Architecture。2010年8月第九版的名為"z/ Architecture-Principles of Operation"的 IBM 公開案(公開案第 SA22_7932-〇8 號)中 描述z/Architecture,該公開案的全文據此以引用方式併入本文中。
[0058] Z/ARCHITECTURE、IBM以及Z/0S及Z/VM(下文所參考)為紐約州阿蒙克市的國際 商業機器公司的註冊商標。本文所使用的其他名稱可為國際商業機器公司或其他公司的注 冊商標、商標或產品名稱。
[0059] 作為一實例,計算環境100包括經由一個或多個控制單元108耦接至一個或多個 輸入/輸出(1/0)器件106的中央處理器複合體(central processor complex, CPC) 102。舉 例而言,中央處理器複合體102包括一個或多個中央處理器110、一個或多個分割區112(例 如,邏輯分割區(LP))、邏輯分割區超管理器(hyperviS〇r)114及輸入/輸出子系統115,其 中每一者在下文予以描述。
[0060] 中央處理器110為分配給邏輯分割區的實體處理器資源。詳言之,每一邏輯分割 區112具有一個或多個邏輯處理器,其中每一邏輯處理器表示分配給該分割區的實體處理 器110的全部或份額。特定分割區112的邏輯處理器可專用於該分割區,使得底層處理器 資源110針對那個分割區而保留;或這些邏輯處理器可與另一分割區共用,使得該底層處 理器資源潛在地可用於另一分割區。
[0061] 邏輯分割區充當分離系統且具有一個或多個應用程式,且視情況在其中具有駐留 作業系統,該駐留作業系統針對每一邏輯分割區可不同。在一實施例中,作業系統為由紐 約州阿蒙克市的國際商業機器公司提供的Z/0S作業系統、z/VM作業系統、z/Linux操作系 統或TPF作業系統。邏輯分割區112由邏輯分割區超管理器114管理,邏輯分割區超管理 器114由處理器110上運行的固件實施。如本文所使用,固件包括(例如)處理器的微碼 (microcode)和/或毫碼(millicode)。舉例而言,固件包括在較高層級機器碼的實施中使 用的硬體層級指令和/或數據結構。在一實施例中,舉例而言,固件包括通常作為包括受信 任軟體的微碼或特定於底層硬體的微碼進行遞送且控制對系統硬體的作業系統存取的專 屬碼。
[0062] 邏輯分割區及邏輯分割區超管理器各自包含駐留於與中央處理器相關聯的中央 存儲器的各別分割區中的一個或多個程序。邏輯分割區超管理器114的一個實例為由紐約 州阿蒙克市的國際商業機器公司提供的Processor Resource/System Manager (PR/SM)。 [0063] 輸入/輸出子系統115在輸入/輸出器件106與主存儲器(又名,主存儲器)之 間引導信息流動。輸入/輸出子系統耦接至中央處理複合體,此在於:輸入/輸出子系統可 為中央處理器複合體的部分或與中央處理器複合體分離。1/0子系統使中央處理器減輕直 接地與輸入/輸出器件通信的任務的負擔,且準許數據處理與輸入/輸出處理並行地進行。 為了提供通信,1/0子系統使用1/0通信適配器。存在各種類型的通信適配器,包括(例 如)通道、1/0適配器、PCI卡、乙太網卡、小型計算機儲存接口(SCSI)卡等等。在本文所描 述的特定實例中,1/0通信適配器為通道,且因此,1/0子系統在本文中被稱作通道子系統。 然而,此情形僅為一實例。可使用其他類型的1/0子系統。
[0064] 1/0子系統使用一個或多個輸入/輸出路徑作為通信鏈路來管理至或自輸入/輸 出器件106的信息流動。在此特定實例中,此等路徑被稱作通道路徑,這是因為通信適配器 為通道。
[0065] 上文所描述的計算環境僅為可使用的計算環境的一個實例。可使用包括但不限於 非分割環境、其他分割環境和/或模擬環境的其他環境;實施例並不限於任一環境。
[0066] 根據一個或多個方面,事務執行設施為CPU增強,其提供可用來使CPU執行指令序 列(被稱作事務)的方式,這些指令可存取多個儲存位置,包括那些位置的更新。如由其他 (PU及1/0子系統所觀察,事務是(a)整體上作為單一不可部分完成操作而完成,或(b)中 止,從而潛在地不留下事務曾經執行的跡象(惟本文所描述的某些條件除外)。因此,成功 完成的事務可在沒有在傳統多處理模型中需要的任何特殊鎖定的情況下更新眾多儲存位 置。
[0067] 舉例而言,事務執行設施包括一個或多個控制、一個或多個指令、包括受限執行及 非受限執行的事務處理及中止處理,其中每一個在下文予以進一步描述。
[0068] 在一個實施例中,使用以下各者以控制事務執行設施:三個特殊用途控制,包括事 務中止程序狀態字組(PSW)、事務診斷區塊(TDB)地址及事務嵌套深度;五個控制寄存器 位;及六個一般指令,包括TRANSACTION BEGIN(受限及非受限)、TRANSACTI0N END、EXTRACT TRANSACTION NESTING DEPTH、TRANSACTI0N ABORT 及 N0NTRANSACTI0NAL STORE。當該設施 被安裝時,該設施安裝於(例如)配置中的所有CPU中。一個設施指示(在一實施中為位 73)在為1時指示事務執行設施被安裝。
[0069] 當事務執行設施被安裝時,該配置提供非受限事務執行設施且視情況提供受限事 務執行設施,其中每一設施在下文予以描述。作為實例,當設施指示50及73皆為1時,受 限事務執行設施被安裝。兩個設施指示皆在指定位置處儲存於存儲器中。
[0070] 如本文所使用,指令名稱TRANSACTION BEGIN指代具有助記符TBEGIN(用於非受 限事務的事務開始)及TBEGINC(用於受限事務的事務開始)的指令。關於特定指令的論 述由指令名稱繼之以圓括號或括號中的助記符指示,或簡單地由助記符指示。
[0071] 圖2A至圖2B中描繪TRANSACTION BEGIN(TBEGIN)指令的格式的一實施例。作為 一實例,TBEGIN指令200包括:操作碼欄位202,其包括指定事務開始非受限操作的操作碼; 基本欄位(B1) 204 ;位移欄位(D1) 206 ;及立即欄位(I2) 208。當B1欄位為非零時,將由&204 指定的通用寄存器的內容添加至DjOe以獲得第一操作數地址。
[0072] 當B1欄位為非零時,以下內容適用:
[0073] ?當事務嵌套深度最初為0時,第一操作數地址指明被稱作TBEGIN指定的TDB (下 文進一步所描述)的256位元組事務診斷區塊的位置,若事務中止,則各種診斷信息可儲存至 TBEGIN指定的TDB中。當CPU處於主要空間模式或存取寄存器模式時,第一操作數地址指 明主要地址空間中的位置。當CPU處於次要空間模式或本籍空間模式時,第一操作數地址 分別指明次要地址空間或本籍地址空間中的位置。當DAT關斷時,事務診斷區塊(TDB)地 址(TDBA)指明真實存儲器中的位置。
[0074] 判定對第一操作數的儲存可存取性。若為可存取,則操作數的邏輯地址置放至事 務診斷區塊地址(TDBA)中,且IDBA有效。
[0075] ?當CPU已經處於非受限事務執行模式時,TDBA未被修改,且不可預測的是第一操 作數是否針對可存取性而被測試。
[0076] 當B1欄位為0時,針對第一操作數未偵測到存取異常,且對於最外部TBEGIN指令, IDBA無效。
[0077] 在一實例中,I2欄位的位被定義如下:
[0078] 通用寄存器儲存屏敝(GRSM) 210 (圖2B) :12欄位的位0至7含有通用寄存器儲存 屏敝(GRSM)。GRSM的每一位表示通用寄存器的偶奇對,其中位0表示寄存器0及1,位1表 示寄存器2及3,等等。當最外部TBEGIN指令的GRSM中的位為0時,不儲存對應寄存器對。 當最外部TBEGIN指令的GRSM中的位為1時,將對應寄存器對儲存於不能由程序直接地存 取的依賴於模型的位置中。
[0079] 若事務中止,則當執行最外部TBEGIN指令時,將已儲存寄存器對恢復為其內容。 當事務中止時,不恢復所有其他(未儲存)通用寄存器的內容。
[0080] 在惟最外部TBEGIN除外的所有TBEGIN上忽略通用寄存器儲存屏敝。
[0081] 允許AR修改(A) 212 :A控制(I2欄位的位12)控制是否允許事務修改存取寄存器。 有效允許AR修改控制為針對當前嵌套層級及針對所有外部層級的TBEGIN指令中的A控制 的邏輯AND。
[0082] 若有效A控制為0,則在嘗試修改任何存取寄存器時事務將用中止碼11 (受限定 指令)進行中止。若有效A控制為1,則在存取寄存器被修改(不存在任何其他中止條件) 時事務將不中止。
[0083] 允許浮點運算(F) 214 :F控制(I2欄位的位13)控制是否允許事務執行指定浮點 指令。有效允許浮點運算控制為針對當前嵌套層級及針對所有外部層級的TBEGIN指令中 的F控制的邏輯AND。
[0084] 若有效F控制為0,則(a)在嘗試執行浮點指令時事務將用中止碼11(受限定指 令)進行中止,且(b)浮點控制寄存器(FPCR)的字節2中的數據異常碼(DXC)將不由任何 數據異常程序異常情況設定。若有效F控制為1,則(a)在嘗試執行浮點指令(不存在任何 其他中止條件)時事務將不中止,且(b)FPCR中的DXC可由數據異常程序異常情況設定。
[0085] 程序中斷篩選控制(PIFC) 216 :12欄位的位14至15為程序中斷篩選控制(PIFC)。 PIFC控制在CPU處於事務執行模式時發生的某些類別的程序異常情況(例如,尋址異常、數 據異常、操作異常、保護異常等等)是否引起中斷。
[0086] 有效PIFC為針對當前嵌套層級及針對所有外部層級的TBEGIN指令中的PIFC的 最高值。當有效PIFC為0時,所有程序異常情況引起中斷。當有效PIFC為1時,具有事務 執行類別1及2的程序異常情況引起中斷。(取決於異常的嚴重性,每一程序異常情況被指 派至少一事務執行類別。嚴重性基於在事務的重複執行期間復原的可能性,及作業系統是 否需要查看中斷。)當有效PIFC為2時,具有事務執行類別1的程序異常情況引起中斷。 保留為3的PIFC。
[0087] I2欄位的位8至11 (指令的位40至43)被保留且應含有0 ;否則,程序在未來可 不相容地操作。
[0088] 參看圖3A至圖3B來描述事務開始受限(TBEGINC)指令的格式的一實施例。在一 實例中,TBEGINC 300包括:操作碼欄位302,其包括指定事務開始受限操作的操作碼;基本 欄位(B1) 304 ;位移欄位(D1) 306 ;及立即欄位(I2) 308。將由&304指定的通用寄存器的內 容添加至0:306以獲得第一操作數地址。然而,在用事務開始受限指令的情況下,第一操作 數地址不用以存取存儲器。取而代之,指令的B1欄位包括0 ;否則,辨識出規格異常。
[0089] 在一實施例中,I2欄位包括各種控制,這些控制的實例在圖3B中予以描繪。
[0090] 在一實例中,I2欄位的位被定義如下:
[0091] 通用寄存器儲存屏敝(GRSM) 310 :12欄位的位0至7含有通用寄存器儲存屏敝 (GRSM)。GRSM的每一位表示通用寄存器的偶奇對,其中位0表示寄存器0及1,位1表示寄 存器2及3,等等。當GRSM中的位為0時,不儲存對應寄存器對。當GRSM中的位為1時,將 對應寄存器對儲存於不能由程序直接地存取的依賴於模型的位置中。
[0092] 若事務中止,則當執行最外部TRANSACTION BEGIN指令時,將已儲存寄存器對恢復 為其內容。當受限事務中止時,不恢復所有其他(未儲存)通用寄存器的內容。
[0093] 當TBEGINC用以在非受限事務執行模式下繼續執行時,忽略通用寄存器儲存屏 敝。
[0094] 允許AR修改(A) 312 :A控制(I2欄位的位12)控制是否允許事務修改存取寄存 器。有效允許AR修改控制為針對當前嵌套層級及針對任何外部TBEGIN或TBEGINC指令的 TBEGINC指令的A控制中的邏輯AND。
[0095] 若有效A控制為0,則在嘗試修改任何存取寄存器時事務將用中止碼11 (受限定 指令)進行中止。若有效A控制為1,則在存取寄存器被修改(不存在任何其他中止條件) 時事務將不中止。
[0096] I2欄位的位8至11及13至15 (指令的位40至43及45至47)被保留且應含有 0〇
[0097] 事務開始指令的結束由TRANSACTION END (TEND)指令指定,該TRANSACTION END(TEND)指令的格式在圖4中予以描繪。作為一實例,TEND指令400包括操作碼欄位402, 操作碼欄位402包括指定事務結束操作的操作碼。
[0098] 關於事務執行設施而使用多個術語,且因此,僅出於方便起見,下文以按字母排序 次序提供術語清單。在一實施例中,這些術語具有以下定義:
[0099] 中止:當事務在引起事務嵌套深度為0的TRANSACTION END指令之前結束時,事務 中止。在一實施例中,當事務中止時,發生以下情形:
[0100] ?由事務的任何及所有層級進行的事務儲存存取被捨棄(亦即,未被交付)。
[0101] ?由事務的任何及所有層級進行的非事務儲存存取被交付。
[0102] ?由最外部TRANSACTION BEGIN指令的通用寄存器儲存屏敝(GRSM)指明的寄存器 在事務執行之前恢復為其內容(亦即,恢復為其在執行最外部TRANSACTION BEGIN指令時 的內容)。未由最外部TRANSACTION BEGIN指令的通用寄存器儲存屏敝指明的通用寄存器 未被恢復。
[0103] ?存取寄存器、浮點寄存器及浮點控制寄存器未被恢復。當事務中止時,保持在事 務執行期間對這些寄存器進行的任何改變。
[0104] 事務可歸因於多種原因而中止,這些原因包括受限定指令的已嘗試執行、受限定 資源的已嘗試修改、事務衝突、超過各種CPU資源、任何解譯性執行攔截條件、任何中斷、 TRANSACTION ABORT指令及其他原因。事務中止碼提供事務為何可中止的特定原因。
[0105] 參看圖5來描述TRANSACTION ABORT(TABORT)指令的格式的一實例。作為一實 例,TABORT指令500包括:操作碼欄位502,其包括指定事務中止操作的操作碼;基本欄位 (B2)504;及位移欄位(D2)506。當氏欄位為非零時,將由B2504指定的通用寄存器的內容 添加至D2506以獲得第二操作數地址;否則,第二操作數地址僅由D2欄位形成,且忽略B 2字 段。第二操作數地址不用以尋址數據;取而代之,該地址形成在中止處理期間置放於事務診 斷區塊中的事務中止碼。用於第二操作數地址的地址計算遵循地址算術規則:在24位尋址 模式下,將位〇至29設定為0 ;在31位尋址模式下,將位0至32設定為0。
[0106] 交付:在最外部TRANSACTION END指令完成時,CPU交付由事務進行的儲存存取 (亦即,最外部事務及任何嵌套層級),使得這些儲存存取可為其他CPU及1/0子系統所見。 如由其他CPU且由1/0子系統所觀察,當發生交付時,由事務的所有嵌套層級進行的所有提 取及儲存存取看來像是作為單一併行操作而發生。
[0107] 通用寄存器、存取寄存器、浮點寄存器及浮點控制寄存器的內容未藉由交付程序 修改。當交付事務的儲存時,保持在事務執行期間對這些寄存器進行的任何改變。
[0108] 衝突:由一個CPU進行的事務存取與(a)由另一 CPU進行的事務存取或非事務存 取衝突,或與(b)由1/0子系統進行的非事務存取衝突(若兩種存取針對同一高速緩存行 內的任何位置,且這些存取中的一個或多個為儲存)。
[0109] 衝突可藉由CPU對指令的理論式執行而偵測,即使衝突不可以概念序列被偵測亦 如此。
[0110] 受限事務:受限事務為在受限事務執行模式下執行且經受以下限制的事務:
[0111] ?一般指令的子集可用。
[0112] ?可執行有限數目個指令。
[0113] ?可存取有限數目個儲存操作數位置。
[0114] ?事務限於單一嵌套層級。
[0115] 在不存在重複中斷或與其他CPU或1/0子系統的衝突時,受限事務最終完成,因此 無需中止處理例程。下文詳細地描述受限事務。
[0116] 當在CPU已經處於非受限事務執行模式時執行TRANSACTION BEGIN受限 (TBEGINC)指令時,執行作為嵌套非受限事務而繼續。
[0117] 受限事務執行模式:當事務嵌套深度為0且事務由TBEGINC指令起始時,CPU進入 受限事務執行模式。在CPU處於受限事務執行模式時,事務嵌套深度為1。
[0118] 嵌套事務:當在CPU處於非受限事務執行模式時發出TRANSACTIONBEGIN指令時, 事務為嵌套。
[0119] 事務執行設施使用被稱作扁平化嵌套的模型。在扁平化嵌套模式下,由內部事務 進行的儲存不能由其他CPU及I/O子系統觀察直至最外部事務交付其儲存為止。相似地, 若事務中止,則所有嵌套事務中止,且捨棄所有嵌套事務的所有事務儲存。
[0120] 圖6中描繪嵌套事務的一實例。如圖所示,第一 TBEGIN 600啟動最外部事務601, TBEGIN 602啟動第一嵌套事務,且TBEGIN 604啟動第二嵌套事務。在此實例中,TBEGIN 604及TEND 606定義最內部事務608。當TEND 610執行時,針對最外部事務及所有內部事 務交付(612)事務儲存。
[0121] 非受限事務:非受限事務為在非受限事務執行模式下執行的事務。儘管非受限事 務並不以如同受限事務的方式受到限制,但非受限事務仍可歸因於多種原因而中止。
[0122] 非受限事務執行模式:當事務由TBEGIN指令起始時,CPU進入非受限事務執行模 式。在CPU處於非受限事務執行模式時,事務嵌套深度可自1至最大事務嵌套深度而變化。
[0123] 非事務存取:非事務存取為由CPU在不處於事務執行模式時進行的儲存操作數存 取(亦即,在事務外的傳統儲存存取)。另外,由I/O子系統進行的存取為非事務存取。另 夕卜,NONTRANSACTIONAL STORE指令可用以在CPU處於非受限事務執行模式時造成非事務儲 存存取。
[0124] 參看圖7來描述NONTRANSACTIONAL STORE指令的格式的一實施例。作為一實 例,NONTRANSACTIONAL STORE指令700包括:複數個操作碼欄位702a、702b,其指定指明 非事務儲存操作的操作碼;寄存器欄位(R1) 704,其指定寄存器,該寄存器的內容被稱作第 一操作數;索引欄位(X2) 706 ;基本欄位(B2) 708 ;第一位移欄位(DL2) 710 ;及第二位移欄位 (DH2) 712。將由X2欄位及B2欄位指明的通用寄存器的內容添加至DH2欄位及DL 2欄位的內 容的串連的內容以形成第二操作數地址。當X2欄位或B2欄位中任一個或兩個為0時,對應 寄存器不參與該添加。
[0125] 使64位第一操作數在第二操作數位置處非事務地置於不變。
[0126] 由DH2欄位及DL2欄位的串連形成的位移被視為20位帶正負號二進位整數。
[0127] 第二操作數用以在雙字組邊界上對準;否則,辨識出規格異常且抑制操作。
[0128] 外部/最外部事務:具有較低編號事務嵌套深度的事務為外部事務。具有為1的 事務嵌套深度值的事務為最外部事務。
[0129] 最外部TRANSACTION BEGIN指令為在事務嵌套深度最初為0時執行的指令。最外 部TRANSACTION END指令為使事務嵌套深度自1轉變至0的指令。在此實施例中,受限事 務為最外部事務。
[0130] 程序中斷篩選:當事務歸因於某些程序異常情況而中止時,程序可視情況防 止發生中斷。此技術被稱作程序中斷篩選。程序中斷篩選經受中斷的事務類別、來自 TRANSACTION BEGIN指令的有效程序中斷篩選控制及控制寄存器O中的事務執行程序中斷 篩選覆寫。
[0131] 事務:在CPU處於事務執行模式時,事務包括所進行的儲存操作數存取及所變更 的選擇的通用寄存器。對於非受限事務,儲存操作數存取可包括事務存取及非事務存取兩 者。對於受限事務,儲存操作數存取限於事務存取。如由其他CPU及I/O子系統所觀察,由 CPU在處於事務執行模式時進行的所有儲存操作數存取看來像是作為單一併行操作而發 生。若事務中止,則捨棄事務儲存存取,且使由最外部TRANSACTION BEGIN指令的通用寄存 器儲存屏敝指明的任何寄存器恢復為其在事務執行之前的內容。
[0132] 事務存取:事務存取為在CPU處於事務執行模式時進行的儲存操作數存取,惟由 NONTRANSACTIONAL STORE指令進行的存取除外。
[0133] 事務執行模式:術語事務執行模式描述非受限事務執行模式及受限事務執行模式 兩者的共同操作。因此,當描述該操作時,術語非受限及受限用以限定事務執行模式。
[0134] 當事務嵌套深度為0時,CPU不處於事務執行模式(亦被稱作非事務執行模式)。
[0135] 如由CPU所觀察,在事務執行模式下進行的提取及儲存並非不同於在不處於事務 執行模式時進行的提取及儲存。
[0136] 在z/Architecture的一實施例中,事務執行設施在控制寄存器0的位8至9、控制 寄存器2的位61至63、事務嵌套深度、事務診斷區塊地址及事務中止程序狀態字組(PSW) 的控制下。
[0137] 在初始CPU重設之後,將控制寄存器0的位的位置8至9、控制寄存器2的位的位 置62至63及事務嵌套深度的內容設定為0。當事務執行控制(控制寄存器0的位8)為0 時,不能將CPU置於事務執行模式。
[0138] 下文描述關於各種控制的另外細節。
[0139] 如所指示,事務執行設施由控制寄存器0中的兩個位及控制寄存器2中的三個位 控制。舉例而言:
[0140] 控制寄存器0位:在一實施例中,位指派如下:
[0141] 事務執行控制(TXC):控制寄存器0的位8為事務執行控制。此位提供可用來使控 製程序(例如,作業系統)指示事務執行設施是否可由該程序使用的機制。位8將為1以 成功地進入事務執行模式。
[0142] 當控制寄存器 0 的位 8 為 0 時,EXTRACT TRANSACTION NESTING DEPTH、 TRANSACTION BEGIN及TRANSACTION END指令的已嘗試執行引起特殊操作執行。
[0143] 參看圖8來描述EXTRACT TRANSACTION NESTING DEPTH指令的格式的一實施例。 作為一實例,EXTRACT TRANSACTION NESTING DEPTH指令800包括:操作碼欄位802,其指定 指示擷取事務嵌套深度操作的操作碼;及寄存器欄位RP04,其指明通用寄存器。
[0144] 將當前事務嵌套深度置於通用寄存器R1的位48至63中。該寄存器的位0至31 保持不變,且將該寄存器的位32至47設定為0。
[0145] 在一另外實施例中,亦將最大事務嵌套深度置於通用寄存器R1中,諸如,位16至 31中。
[0146] 事務執行程序中斷篩選覆寫(PIFO):控制寄存器0的位9為事務執行程序中斷篩 選覆寫。此位提供可用來使控制程序確保在CPU處於事務執行模式時發生的任何程序異常 情況引起中斷而不管由TRANSACTION BEGIN指令指定或暗示的有效程序中斷篩選控制的機 制。
[0147] 控制寄存器2位:在一實施例中,指派如下:
[0148] 事務診斷範疇(TDS):控制寄存器2的位61控制該寄存器的位62至63中的事務 診斷控制(TDC)的適用性,如下:
[0149] TDS
[0150] 值含義
[0151] 0 TDC適用而不管CPU處於問題狀態或監督狀態。
[0152] 1僅當CPU處於問題狀態時TDC才適用。當CPU處於監督狀態時,處理如同TDC 含有0 -樣。
[0153] 事務診斷控制(TDC):控制寄存器2的位62至63為可用以使事務出於診斷目的 而隨機地中止的2位無正負號整數。在一實例中,TDC的編碼如下:
[0154] TDC
[0155] 值含義
[0156] 0 正常操作;事務並不由於TDC而中止。
[0157] 1 在隨機指令處但在最外部TRANSACTION END指令的執行之前中止每一事務。
[0158] 2 在隨機指令處中止隨機事務。
[0159] 3 保留
[0160] 當事務歸因於非零TDC而中止時,則可發生以下情形中任一者:
[0161] ?將中止碼設定為碼7至11、13至16或255中任一個,其中該碼的值由CPU隨機 地選擇;將條件碼設定成對應於中止碼。下文進一步描述中止碼。
[0162] ?對於非受限事務,將條件碼設定為1。在此狀況下,中止碼不適用。
[0163] 這是依賴於是否實施TDC值1的模型。若未實施,則為1的值起作用就如同指定 2 -樣。
[0164] 對於受限事務,處理為1的TDC值就如同指定為2的TDC值一樣。
[0165] 若指定為3的TDC值,則結果是不可預測的。
[0166] 事務診斷區塊地址(TDBA)
[0167] 當最外部TRANSACTION BEGIN(TBEGIN)指令的B1欄位為非零時,自該指令的第一 操作數地址設定有效事務診斷區塊地址(TDBA)。當CPU處於主要空間模式或存取寄存器 模式時,TDBA指明主要地址空間中的位置。當CPU處於次要空間模式或本籍空間模式時, TDBA分別指明次要地址空間或本籍地址空間中的位置。當DAT(動態地址轉譯)關斷時, TDBA指明真實存儲器中的位置。
[0168] 若事務隨後中止,則TDBA由CPU使用以定位事務診斷區塊(被稱作TBEGIN指定 的TDB)。TDBA的最右側三個位為0,此意謂TBEGIN指定的TDB處於雙字組邊界上。
[0169] 當最外部TRANSACTION BEGIN(TBEGIN)指令的B1欄位為0時,事務診斷區塊地址 無效,且若事務隨後中止,則不儲存TBEGIN指定的TDB。
[0170] 事務中止 PSW (TAPSW)
[0171] 在嵌套深度最初為0時TRANSACTION BEGIN(TBEGIN)指令的執行期間,將事務中 止PSW設定為當前PSW的內容;且事務中止PSW的指令地址指明下一循序指令(亦即,在 最外部TBEGIN之後的指令)。在嵌套深度最初為O時TRANSACTION BEGIN受限(TBEGINC) 指令的執行期間,將事務中止PSW設定為當前PSW的內容,惟事務中止PSW的指令地址指明 TBEGINC指令(而非在TBEGINC之後的下一循序指令)除外。
[0172] 當事務中止時,用指示中止情況的嚴重性的碼來取代事務中止PSW中的條件碼。 隨後,若事務歸因於不引起中斷的原因而中止,則自事務中止PSW載入PSW ;若事務歸因於 引起中斷的原因而中止,則將事務中止PSW儲存為中斷舊PSW。
[0173] 在任何內部TRANSACTION BEGIN指令的執行期間不變更事務中止PSW。
[0174] 事務嵌套深度(TND)
[0175] 舉例而言,事務嵌套深度為每當用條件碼0來完成TRANSACTION BEGIN指令時累 加且每當完成TRANSACTION END指令時遞減的16位無正負號值。當事務中止時或由CPU 重設時,將事務嵌套深度重設至0。
[0176] 在一實施例中,實施為為15之最大TND。
[0177] 在一實施中,當CPU處於受限事務執行模式時,事務嵌套深度為1。另外,儘管最大 TND可被表示為4位值,但TND經定義為16位值以促進其在事務診斷區塊中的檢測。
[0178] 事務診斷區塊(TDB)
[0179] 當事務中止時,各種狀態信息可儲存於事務診斷區塊(TDB)中,如下:
[0180] I. TBEGIN指定的TDB :對於非受限事務,當最外部TBEGIN指令的B1欄位為非零時, 該指令的第一操作數地址指明TBEGIN指定的TDB。此地址為可由應用程式的中止處理例程 檢驗的應用程式指定位置。
[0181] 2.程序中斷(PI)TDB :若非受限事務歸因於非篩選程序異常情況而中止時,或若 受限事務歸因於任何程序異常情況(亦即,引起正被辨識的程序中斷的任何情況)而中止 時,將PI-TDB儲存至前置區域中的位置中。此情形可用於使作業系統在其可提供的任何診 斷報告中進行檢測及登出。
[0182] 3.攔截TDB :若事務歸因於引起攔截的任何程序異常情況而中止(亦即,該情況造 成解譯性執行結束且造成控制傳回至主機程序),則TDB儲存至用於訪客作業系統的狀態 描述區塊中指定的位置中。
[0183] 在一實施例中,當TDB地址有效時(亦即,當最外部TBEGIN指令的B1欄位為非零 時),僅儲存TBEGIN指定的TDB。
[0184] 對於歸因於未篩選程序異常情況的中止,將儲存PI-TDB或攔截TDB中僅一者。因 此,可存在針對一中止而儲存的零個、一個或兩個TDB。
[0185] 下文描述關於TDB中每一個的一實例的另外細節:
[0186] TBEGIN指定之TDB :由有效事務診斷區塊地址指定的256位元組位置。當事務診斷 區塊地址有效時,事務中止時儲存TBEGIN指定的TDB。TBEGIN指定的TDB經受在執行最外 部TRANSACTION BEGIN指令時有效的所有儲存保護機制。用於TBEGIN指定的TDB的任何 部分的PER(程序事件記錄)儲存變更事件在執行最外部TBEGIN期間而非在事務中止處理 期間被偵測。
[0187] PER的一個目的是協助對程序進行除錯。作為實例,PER準許向程序提醒以下類型 的事件:
[0188] ?執行成功分支指令。提供使事件僅在分支目標位置處於已指明儲存區域內時才 發生的選項。
[0189] ?自已指明儲存區域提取指令。
[0190] ?變更已指明儲存區域的內容。提供使事件僅在儲存區域處於已指明地址空間內 時才發生的選項。
[0191] ?執行 STORE USING REAL ADDRESS 指令。
[0192] ?執行 TRANSACTION END 指令。
[0193] 程序可選擇地指定出以上類型的事件中的一個或多個被辨識,惟用於STORE USING REAL ADDRESS的事件可僅與儲存變更事件一起被指定除外。關於PER事件的信息系 憑藉程序中斷而提供至程序,其中該中斷的原因是在中斷碼中被識別。
[0194] 當事務診斷區塊地址無效時,不儲存TBEGIN指定的TDB。
[0195] 程序中斷TDB :真實位置6, 144至6, 399 (1800至18FF十六進位)。當事務歸因於 程序中斷而中止時,儲存程序中斷TDB。當事務歸因於其他原因而中止時,程序中斷TDB的 內容是不可預測的。
[0196] 程序中斷TDB不經受任何保護機制。當在程序中斷期間儲存程序中斷TDB時,PER 儲存變更事件不針對程序中斷TDB被偵測。
[0197] 攔截TDB :由狀態描述的位置488至495指定的256位元組主機真實位置。當已中 止事務引起訪客程序中斷攔截(亦即,攔截碼8)時,儲存攔截TDB。當事務歸因於其他原因 而中止時,攔截TDB的內容是不可預測的。攔截TDB不經受任何保護機制。
[0198] 如圖9所描繪,在一實施例中,事務診斷區塊900的欄位如下:
[0199] 格式902 :字節0含有有效性及格式指示,如下:
[0200]

【權利要求】
1. 一種用於處理計算環境內的事務的方法,所述方法包括以下步驟: 由處理器在計算環境中執行事務,所述事務有效地延遲將事務存儲交付至主存儲器, 直到選擇的事務完成為止; 基於執行所述事務而確定已經出現中止條件; 檢查所述事務是否為受限事務,所述受限事務具有與之關聯的一個或多個限制;以及 基於確定所述中止條件和所述檢查指示所述事務是受限事務,返回到所述事務的開始 以重新執行所述事務。
2. 如權利要求1所述的方法,其中,所述執行基於執行開始事務指令,所述開始事務指 令指示所述事務是否是受限的。
3. 如權利要求2所述的方法,其中,所述返回到所述事務的開始包括:返回到所述開始 事務指令。
4. 如權利要求1所述的方法,其中,所述方法還包括:重新執行所述事務,其中,所述重 新執行包括:執行一個或多個動作以促進所述事務的完成。
5. 如權利要求4所述的方法,其中,所述一個或多個動作包括以下各項中的至少一個: 禁止無序執行; 禁止其它處理器存取與所述事務衝突的存儲器位置;或 在中止處理中引起隨機延遲。
6. 如權利要求1所述的方法,其中,在所述事務的完成或中斷之前,所述返回到所述事 務的開始執行一次或多次。
7. 如權利要求1所述的方法,其中,所述方法還包括: 基於所述檢查指示所述事務是受限事務而確定是否已經出現所述一個或多個限制中 的一個限制的違反;以及 基於確定已經出現所述違反而引起中斷。
8. 如權利要求1所述的方法,其中,所述一個或多個限制包括以下各項中的至少一個: 所述事務內的有限數量的指令; 所述事務內的指令處於存儲器的預定義區域內; 特定預先指定的指令可以被包括在所述事務內,其它受限; 對所述事務的存儲操作數進行的存取的限制; 所述事務不存取包含存儲器的所述預定義的區域的存儲器的區塊中的存儲操作數; 所述事務不使用映射到同一絕對地址的不同邏輯地址來存取指令或存儲操作數;以及 所述事務進行的操作數參考處於所指定的大小內。
9. 如權利要求1所述的方法,其中,除了返回到所述事務的開始之外,不提供失敗路徑 以處理所述中止條件。
10. 如權利要求1所述的方法,其中,所述事務將要更新多個不連續存儲器位置。
11. 一種系統,包括適用於執行如任一項前述方法權利要求所述的方法的所有步驟的 裝直。
12. -種電腦程式,包括用於當所述電腦程式在計算機系統上運行時執行如任一 項前述方法權利要求所述的方法的所有步驟的指令。
【文檔編號】G06F12/00GK104335185SQ201280073606
【公開日】2015年2月4日 申請日期:2012年11月26日 優先權日:2012年6月15日
【發明者】D.格雷納, T.斯萊格爾, C.雅各比 申請人:國際商業機器公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀