TWI701551B - 用於於虛擬化環境中保存/復原受防護之儲存器控制之電腦程式產品、電腦實施方法及電腦系統 - Google Patents
用於於虛擬化環境中保存/復原受防護之儲存器控制之電腦程式產品、電腦實施方法及電腦系統 Download PDFInfo
- Publication number
- TWI701551B TWI701551B TW107100722A TW107100722A TWI701551B TW I701551 B TWI701551 B TW I701551B TW 107100722 A TW107100722 A TW 107100722A TW 107100722 A TW107100722 A TW 107100722A TW I701551 B TWI701551 B TW I701551B
- Authority
- TW
- Taiwan
- Prior art keywords
- protected
- instruction
- protected storage
- memory
- register
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 23
- 238000004590 computer program Methods 0.000 title claims description 19
- 238000012545 processing Methods 0.000 claims description 68
- 238000006073 displacement reaction Methods 0.000 claims description 45
- 238000001514 detection method Methods 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 3
- 230000002159 abnormal effect Effects 0.000 description 20
- 238000000574 gas--solid chromatography Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 13
- 238000007689 inspection Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000013519 translation Methods 0.000 description 11
- 230000014616 translation Effects 0.000 description 11
- 230000004913 activation Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 238000011084 recovery Methods 0.000 description 6
- 230000007704 transition Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 239000000725 suspension Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000004064 recycling Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 230000005945 translocation Effects 0.000 description 2
- 108700028369 Alleles Proteins 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
Abstract
本發明揭示一種受防護儲存器設施,其設置指示待防護或保護之位址的一範圍的一邊界。當一程式嘗試存取由該邊界界定之一受防護區段中之一位址時,發生一受防護儲存器事件。此設施之使用促進一運算環境內之某些任務之執行,包括儲存回收。
Description
一或多項態樣大體而言係關於運算環境內之處理,且更特定而言係關於改良此處理。
諸多現代程式設計語言(諸如Java及Python)作為實例允許應用程式藉由簡單地參照其來執行個體化資料物件,而無義務在不再需要記憶體時追蹤或隨後釋放該記憶體。
作用中資料物件(即,由應用程式使用之彼等)及非作用中資料物件(即,應用程式不再需要之彼等)可混用於語言之記憶體堆集中,從而導致分段記憶體空間。通常被稱作儲存回收或廢棄項目收集之程序不僅將非作用中物件自記憶體堆集移除,而且藉由將作用中記憶體物件聯合至更緊湊記憶體區塊中來重新定位作用中記憶體物件。此允許將自由記憶體組合至可用於供由應用程式隨後使用之較大連續區塊中。
重新定位作用中資料物件之挑戰僅係其為作用中的,且可由除執行儲存回收之中央處理單元外之其他中央處理單元同時參照。因此,為執行儲存回收,將可在進行儲存回收時參照記憶體的所有應用程式處理序之執行暫停。取決於所需要之記憶體重新定位之數目,此可導致應用程式之不可接受延遲。
先前技術之缺陷被克服且經由提供用於促進運算環境內之處理的電腦程式產品提供額外優勢。電腦程式產品包含可由處理電路讀取且儲存用於執行方法之指令的儲存媒體。例如,方法包括獲得用以執行一載入及移位操作之一指令;及執行該指令。執行包括載入來自記憶體中之位置之資料,記憶體中之該位置由與該指令相關聯之一或多個欄位指定;使該資料移位一移位量以獲得一移位值;使用該移位值獲得一中間結果;及基於該中間結果執行受防護儲存器偵測。
藉由使用該載入資料及移位操作來偵測一受防護儲存器事件,促進包括與某些任務相關聯之處理的該運算環境內之處理,藉此改良處理。
作為實例,該資料包括一指標,且該移位包括使該資料向左移位該移位量以獲得該移位值。此外,在一項實施例中,該方法進一步包括自用於規定一受防護儲存器區之一或多個屬性之一暫存器獲得該移位量。
在一項實施例中,該執行受防護儲存器偵測包括:比較該中間結果之一第一部分與一受防護儲存器區之一原點;判定該受防護儲存器區之一特定區段是否受防護,該判定使用該中間結果之一第二部分;及基於指示一特定結果之該比較及指示該特定區段受防護之該判定而偵測一受防護儲存器事件。
此外,在一項實施例中,該執行受防護儲存器偵測包括:基於該比較及判定未偵測到該受防護儲存器事件而將該中間結果放置在由該指令指定之一所選擇位置中。作為實例,該所選擇位置為由該指令之一欄位規定之一暫存器。
此外,在一項實施例中,該獲得該中間結果包括基於執行該指令之
一處理器之一定址模式而調整該移位值。
此外,在一項實施例中,該方法包括判定自其載入該資料之記憶體中之該位置。例如,該判定使用該指令之一索引欄位、一基本欄位及一位移欄位。
在一項特定實例中,該指令為一單架構指令,其包括指示一載入邏輯及移位受防護操作之一操作碼、用以規定一暫存器基於判定未偵測到一受防護儲存器事件而放置一結果的一暫存器欄位、及用以判定記憶體中之該位置的複數個欄位。
本文中亦描述及主張與一或多個態樣有關之方法及系統。此外,本文中亦描述且可主張與一或多項態樣有關之服務。
經由本文中所描述之技術實現額外特徵及優勢。其他實施例及態樣在本文中經詳細描述且被認為係所主張態樣之部分。
100:運算環境
102:電腦系統
104:處理器/處理單元
106:記憶體
108:輸入/輸出(I/O)介面
110:匯流排/其他連接
120:快取記憶體
122:本端快取記憶體
130:程式/應用程式
132:作業系統
134:電腦可讀程式指令
140:外部器件
142:網路介面
144:資料儲存器件
146:程式
148:電腦可讀程式指令
150:指令提取組件
152:指令解碼單元
154:指令執行組件
156:記憶體存取組件
160:寫回組件
166:指令
170:暫存器
200:運算環境
202:原生中央處理單元(CPU)
204:記憶體
206:輸入/輸出器件及/或介面
208:匯流排
210:原生暫存器
212:仿真器碼
250:客體指令
252:指令提取常式
254:指令轉譯常式
256:原生指令
260:仿真控制常式
300:暫存器
302:受防護儲存器原點(GSO)
304:受防護載入移位(GLS)
306:受防護儲存器特性(GSC)
500:受防護儲存器區段遮罩(GSSM)暫存器
502:位元
600:受防護儲存器事件參數清單位址暫存器
602:64位元位址
610:受防護儲存器事件參數清單
612:受防護儲存器事件定址模式(GSEAM)
614:延伸定址模式(E)
616:基本定址模式(B)
620:受防護儲存器事件原因指示(GSECI)
622:異動執行模式指示(TX)
624:約束異動執行模式指示(CX)
626:指令原因(IN)
630:受防護儲存器事件存取資訊(GSEAI)
632:動態位址轉譯(DAT)模式(T)
634:位址空間指示(AS)
636:存取暫存器數目(AR)
640:受防護儲存器事件處理常式位址(GSEHA)
650:受防護儲存器事件指令位址(GSEIA)
660:受防護儲存器事件運算元位址(GSEOA)
670:受防護儲存器事件中間結果(GSEIR)
680:受防護儲存器事件轉回位址(GSERA)
700:受防護儲存器控制區塊(GSCB)
702:內容
704:內容
706:內容
800:載入受防護指令
802a:操作碼欄位
802b:操作碼欄位
804:暫存器欄位(R1)
806:索引欄位(X2)
808:基本欄位(B2)
810a:第一位移(DL2)欄位
810b:第二位移(DH2)欄位
900:載入邏輯及移位受防護指令
902a:操作碼欄位
902b:操作碼欄位
904:暫存器欄位(R1)
906:索引欄位(X2)
908:基本欄位(B2)
910a:第一位移(DL2)欄位
910b:第二位移(DH2)欄位
1000:載入受防護儲存器控制指令
1002a:操作碼欄位
1002b:操作碼欄位
1004:暫存器欄位(R1)
1006:索引欄位(X2)
1008:基本欄位(B2)
1010a:第一位移(DL2)欄位
1010b:第二位移(DH2)欄位
1100:儲存受防護儲存器控制指令
1102a:操作碼欄位
1102b:操作碼欄位
1104:暫存器欄位(R1)
1106:索引欄位(X2)
1108:基本欄位(B2)
1110a:第一位移(DL2)欄位
1110b:第二位移(DH2)欄位
1200:受防護儲存器事件偵測
1202:中間結果
1204:受防護儲存器運算元比較元(GSOC)
1206:受防護儲存器遮罩索引(GSMX)
1210:比較
1212:受防護儲存器原點(GSO)
1214:受防護儲存器指定(GSD)暫存器
1216:受防護儲存器特性
1220:GSOC等於GSO
1222:檢查
1224:區段保護位元(G)
1226:受防護儲存器區段遮罩(GSSM)暫存器
1228:辨識
1300:機器檢查延伸保存區
1302:位移
1304:內容
1306:長度特性(LC)
1308:內容
1310:內容
1350:機器檢查延伸保存區指定
1352:機器檢查延伸保存區原點(MCESAO)
1354:長度特性(LC)
1380:信號處理器(SIGP)參數暫存器
1382:狀態區原點
1384:長度特性(LC)
1400:步驟
1402:步驟
1404:步驟
1406:步驟
1408:步驟
1410:步驟
1412:步驟
1414:步驟
1416:步驟
1420:步驟
1422:步驟
1430:步驟
1432:步驟
1440:步驟
在說明書結尾處之申請專利範圍中,一或多項態樣經特別指出且明顯主張為實例。前述內容及一或多項態樣之物件、特徵及優勢自結合附圖進行之以下詳細描述顯而易見,在附圖中:圖1A描繪用以併入並使用本發明之一或多項態樣之運算環境的一項實例;圖1B描繪根據本發明之態樣之圖1A之處理器的進一步細節;圖2A描繪用以併入並使用本發明之一或多項態樣之運算環境的另一實例;圖2B描繪圖2A之記憶體的進一步細節;圖3描繪根據本發明之態樣之受防護儲存器指定暫存器的一項實例;
圖4描繪根據本發明之態樣之受防護儲存器特性、受防護儲存器原點及受防護儲存器區段大小之間的關係的一項實例;圖5描繪根據本發明之態樣之受防護儲存器區段遮罩暫存器的一項實例;圖6A描繪根據本發明之態樣之受防護儲存器事件參數清單位置暫存器的一項實例;圖6B描繪根據本發明之態樣之受防護儲存器事件參數清單的一項實例;圖7描繪根據本發明之態樣之受防護儲存器控制區塊的一項實例;圖8描繪根據本發明之態樣之載入受防護指令的一項實施例;圖9描繪根據本發明之態樣之載入邏輯及移位受防護指令的一項實施例;圖10描繪根據本發明之態樣之載入受防護儲存器控制指令的一項實例;圖11描繪根據本發明之態樣之儲存受防護儲存器控制指令的一項實例;圖12描繪根據本發明之態樣之受防護儲存器事件之偵測的一項實例;圖13A描繪根據本發明之態樣之機器檢查延伸保存區之格式的一項實例;圖13B描繪根據本發明之態樣之機器檢查延伸保存區的一項實例;圖13C描繪根據本發明之態樣之信號處理器參數暫存器的一項實例;及
圖14A至14B描繪根據本發明之態樣之與促進運算環境之處理有關之態樣的一項實施例。
根據本發明之一或多項態樣,提供促進在運算環境內執行某些任務(包括但不限於儲存回收)的能力。被稱作為受防護儲存器設施之此能力設置指示受防護或保護之位址的範圍(諸如待執行儲存回收之位址的範圍)的邊界。當一程式嘗試存取由該邊界界定之一受防護區段中之一位址時,發生一受防護儲存器事件,藉此保護邊界內之位址。使用此設施促進運算環境內之處理且改良效能。舉例而言,使用此設施使得在運算環境中之一或多個中央處理單元(CPU)上執行之應用程式能夠在運算環境中之另一CPU上進行儲存回收時繼續執行。應用程式可繼續存取不受邊界保護之位址。
作為實例,本發明之一或多項態樣提供以下中之一或多者:使得應用程式能夠設置並檢查影響受防護儲存器設施之操作的控制;提供在偵測到受防護儲存器事件時識別處理器屬性的能力;載入移位變數變量且用於受防護儲存器偵測之資料(例如,壓縮指標);在異動執行期間提供受防護儲存器事件處置,包括處置由於受防護儲存器事件中止之異動之中止及其影響。
參考圖1A描述併入且使用本發明之一或多項態樣之運算環境的實施例。在一項實例中,運算環境基於由美國紐約州阿蒙克市International Business Machines Corporation提供之z/Architecture。z/Architecture之實施例在IBM公開案第SA22-7832-10號(2015年3月)「z/Architecture操作原理」中進行描述,該公開案特此以全文引用的方式併入本文中。Z/ARCHITECTURE為美國紐約州阿蒙克市International Business
Machines Corporation的註冊商標。
在另一實例中,運算環境基於由美國紐約州阿蒙克市International Business Machines Corporation提供之Power架構。Power架構之一項實施例在美國International Business Machines Corporation2015年4月9日之「Power ISATM版本2.07B」(其特此以全文引用的方式併入本文中)中進行描述。POWER ARCHITECTURE為美國紐約州阿蒙克市International Business Machines Corporation的註冊商標。
運算環境亦可基於其他架構,包括但不限於英特爾x86架構。亦存在其他實例。
如在圖1A中所展示,運算環境100包括例如以通用運算器件形式所展示之電腦系統102。電腦系統102可包括但不限於經由一或多個匯流排及/或其他連接110彼此耦合之一或多個處理器或處理單元104(例如,中央處理單元(CPU))、記憶體106(作為實例,被稱作為主記憶體或儲存器)、及一或多個輸入/輸出(I/O)介面108。
匯流排110表示數種類型之匯流排結構中之任一者中之一或多者,包括記憶體匯流排或記憶體控制器、周邊匯流排、加速圖形埠及使用各種匯流排架構中之任一者之處理器或本端匯流排。藉由實例且非限制性,此等架構包括行業標準架構(ISA)、微頻道架構(MCA)、增強ISA(EISA)、視訊電子標準協會(VESA)本端匯流排,及周邊組件互連(PCI)。
記憶體106可包括例如快取記憶體120,諸如共用快取記憶體,該快取記憶體可耦合至處理器104之本端快取記憶體122。此外,記憶體106可包括一或多個程式或應用程式130、作業系統132及一或多個電腦可讀程式指令134。電腦可讀程式指令134可經組態以實施本發明之態樣的實施
例之功能。
電腦系統102亦可經由例如I/O介面108與一或多個外部器件140、一或多個網路介面142及/或一或多個資料儲存器件144進行通信。實例性外部器件包括使用者終端機、磁帶機、指向器件、顯示器,等。網路介面142使得電腦系統102能夠與一或多個網路(諸如區域網路(LAN)、廣域網路(WAN)及/或公用網路(例如,網際網路))進行通信,提供與其他運算器件或系統之通信。
資料儲存器件144可儲存一或多個程式146、一或多個電腦可讀程式指令148及/或資料,等。電腦可讀程式指令可經組態以實施本發明之態樣的實施例之功能。
電腦系統102可包括及/或耦合至可抽換/不可抽換、揮發性/非揮發性電腦系統儲存媒體。舉例而言,其可包括及/或耦合至不可抽換、非揮發性磁性媒體(通常稱為「硬碟機」)、用於自可抽換非揮發性磁碟(例如,「軟碟」)磁碟機讀取及寫入至該可抽換、非揮發性磁碟之磁碟機,及/或用於自可抽換、非揮發性光碟(諸如CD-ROM、DVD-ROM或其他光學媒體)讀取或寫入至該可抽換、非揮發性磁碟機之光碟機。應理解,其他硬體及/或軟體組件可結合電腦系統102使用。實例包括但不限於:微碼、器件驅動器、冗餘處理單元、外部磁碟機陣列、RAID系統、磁碟機及資料歸檔儲存器系統,等。
電腦系統102可與眾多其他通用或專用運算系統環境或組態一起操作。可適合於供電腦系統102使用之眾所周知運算系統、環境及/或配置之實例包括但不限於個人電腦(PC)系統、伺服器電腦系統、精簡型用戶端、密集型用戶端、手持式或膝上型器件、多處理器系統、基於微處理器之系
統、機上盒、可程式化消費者電子器件、網路PC、迷你電腦系統、主機電腦系統及包括上述系統或器件中之任一者之分佈式雲端運算環境,及其類似者。
參考圖1B描述關於處理器104之一項實例之進一步細節。處理器104包括用於執行指令之複數個功能組件。此等功能組件包括例如用於提取待執行指令之指令提取組件150;用以對所提取指令進行解碼且獲得經解碼指令之運算元之指令解碼單元152;用以執行經解碼指令之指令執行組件154;用以存取記憶體以用於視需要進行指令執行之記憶體存取組件156;及用以提供所執行指令之結果之寫回組件160。根據本發明之態樣,此等組件中之一或多者用於執行下文進一步描述之受防護儲存器設施之一或多個指令166。
在一項實施例中,處理器104亦包括供由功能組件中之一或多者使用之一或多個暫存器170。
參考圖2A描述併入且使用一或多項態樣之運算環境之另一實施例。在此實例中,運算環境200包括例如原生中央處理單元(CPU)202、記憶體204及經由例如一或多個匯流排208及/或其他連接彼此耦合之一或多個輸入/輸出器件及/或介面206。作為實例,運算環境200可包括由美國紐約州阿蒙克市International Business Machines Corporation提供之PowerPC處理器或pSeries伺服器;及/或基於由International Business Machines Corporation、因特爾公司或其他公司提供之架構的其他機器。
原生中央處理單元202包括一或多個原生暫存器210,諸如在環境內處理期間所使用之一或多個通用暫存器及/或一或多個專用暫存器。此等暫存器包括表示任何特定時間點處之環境之狀態的資訊。
此外,原生中央處理單元202執行儲存在記憶體204中之指令及程式碼。在一個特定實例中,中央處理單元執行儲存在記憶體204中之仿真器碼212。此碼使得組態在一個架構中之運算環境能夠仿真另一架構。舉例而言,仿真器碼212允許基於除z/Architecture外之架構的機器(諸如PowerPC處理器、pSeries伺服器或其他伺服器或處理器)仿真z/Architecture且執行基於z/Architecture研發之軟體及指令。
參考圖2B描述與仿真器碼212有關之進一步細節。儲存在記憶體204中之客體指令250包含軟體指令(例如,與機器指令有關),該等軟體指令經研發以在除原生CPU 202之架構外之架構中執行。舉例而言,客體指令250可已經設計以在z/Architecture處理器上執行,但替代地,在原生CPU 202(其可為例如英特爾處理器)上經仿真。在一項實例中,仿真器碼212包括指令提取常式252以自記憶體204獲得一或多個客體指令250,且視情況提供用於所獲得指令之本端緩衝。其亦包括指令轉譯常式254以判定已獲得之客體指令之類型且將該客體指令轉譯成一或多個對應原生指令256。此轉譯包括例如識別待由客體指令執行之功能且選擇原生指令執行彼功能。
此外,仿真器碼212包括仿真控制常式260以致使執行原生指令。仿真控制常式260可致使原生CPU 202執行對一或多個先前獲得之客體指令進行仿真之原生指令常式,且在此執行結束時,將控制返回至指令提取常式以對下一客體指令或客體指令群組之獲得進行仿真。原生指令256之執行可包括將資料自記憶體204載入至暫存器;將資料自暫存器儲存回至記憶體;或執行某一類型之算術或邏輯運算,如由轉譯常式判定。
例如,每一常式實施在軟體中,該軟體儲存在記憶體中且由原生中
央處理單元202執行。在其他實例中,常式或操作中之一或多者實施在韌體、硬體、軟體或其某一組合中。經仿真處理器之暫存器可使用原生CPU之暫存器210或通過使用記憶體204中之位置來仿真。在實施例中,客體指令250、原生指令256及仿真器碼212可暫存在相同記憶體中或可分佈在不同記憶體器件間。
如本文中所使用,韌體包括例如處理器之微碼或毫碼(Millicode)。其包括例如用於實施較高級機器碼之硬體級指令及/或資料結構。在一項實施例中,其包括例如專屬程式碼,該專屬程式碼通常經遞送為包括基礎硬體特有之受信任軟體或微碼且控制作業系統對系統硬體之存取的微碼。
所獲得、經轉譯及執行之客體指令250例如為受防護儲存器設施之指令,其中多數在本文中進行描述。為一個架構(例如,z/Architecture)之指令係自記憶體提取、經轉譯且表示為另一架構(例如,PowerPC、pSeries、英特爾,等)之一系列原生指令256。接著執行此等原生指令。
下文描述與受防護儲存器設施(包括與其相關聯之指令)之一項實施例有關之細節。受防護儲存器設施提供程式藉以可指定包含多個受防護儲存器區段(例如,0至64個)之邏輯儲存器區且可例如由實施儲存回收技術之各種程式設計語言使用之機制。例如,設施包括多個指令,諸如例如:載入受防護(LGG)指令;載入邏輯及移位受防護(LLGFSG)指令;載入受防護儲存器控制(LGSC)指令;及儲存受防護儲存器控制(STGSC)指令,該等指令中之每一者在下文進一步描述。
在載入受防護或載入邏輯及移位受防護指令之選定運算元(諸如第二運算元)未指定受防護儲存器區之受防護區段,指令執行其定義載入操作。然而,在指令之第二運算元指定受防護儲存器區之受防護區段時,控
制分支至具有對事件之原因的指示之受防護儲存器事件處理常式。雖然載入受防護及載入邏輯及移位受防護指令能夠生成受防護儲存器事件,但存取受防護儲存器範圍之其他指令不受設施影響且不生成此事件。在對由設施使用之各種暫存器之描述之後,下文進一步描述與受防護儲存器設施之指令有關之細節。
在一項實施例中,受防護儲存器設施由控制暫存器(例如,控制暫存器2)中之位元且由以下三個暫存器控制:受防護儲存器指定暫存器(GSD);受防護儲存器區段遮罩(GSSM)暫存器;及受防護儲存器事件參數清單位址(GSEPLA)暫存器。此三個暫存器之內容可分別藉由載入受防護儲存器控制及儲存受防護儲存器控制指令載入及檢查。下文描述此等暫存器中之每一者以及控制暫存器2之進一步細節。在描述中,描述特定位元或位元組之特定值。此等值及/或特定位元及/或位元組僅為實例。可使用其他值、位元及/或位元組。
在一項實例中,在安裝受防護儲存器設施時,控制暫存器2中之經選擇位元(例如,位元59)為受防護儲存器啟用(GSE)控制。在位元59為0時,載入受防護儲存器控制(LGSC)及儲存受防護儲存器控制(STGSC)指令之嘗試執行致使辨識異常狀況,例如,特殊操作異常。然而,在受防護儲存器啟用控制為1時,受防護儲存器設施被認為經啟用,且准許LGSC及STGSC指令之嘗試執行,經受下文所描述之其他限制。
在一項實施例中,載入受防護及載入邏輯及移位受防護指令之執行不經受受防護儲存器啟用控制。然而,在一項實例中,但受防護儲存器啟用控制為1時,可僅辨識受防護儲存器事件。即,在一項實例中,在所選擇設施指示(例如,設施指示133)為例如1(指示受防護儲存器設施安裝在
組態中)時,程式可使用載入受防護及載入邏輯及移位受防護指令,而不管受防護儲存器啟用控制如何。然而,在無第一載入受防護儲存器控制的情況下未辨識受防護儲存器事件。因此,控制程式(例如,作業系統)將受防護儲存器啟用控制設定成1以便成功地執行載入受防護儲存器控制指令,該載入受防護儲存器控制指令載入受防護儲存器控制。程式將檢查受防護儲存器設施啟用(而非設施位元133)之作業系統提供指示(GSE)以判定設施之全能力是否可用。
如上文所指示,除了受防護儲存器設施啟用控制(例如,控制暫存器2之位元59)外,受防護儲存器設施使用複數個暫存器,包括受防護儲存器指定(GSD)暫存器(其為定義受防護儲存器區之屬性之64位元暫存器)。
參考圖3描述受防護儲存器指定暫存器(GSD)之一項實施例。受防護儲存器指定暫存器300在一項實例中包括以下欄位:
˙受防護儲存器原點(GSO)302:此欄位指定可使受防護儲存器保護被應用之儲存器之區塊之位址。受防護儲存器區之位置由GSD暫存器之最左位元規定。在一項實施例中,最左位元之數目由暫存器之位元58至63中之受防護儲存器特性(GSC)的值判定。受防護儲存器指定暫存器之位元位置0至(63-GSC)在右側用二進位0填補在位元位置(64-GSC)至63,形成受防護儲存器區之最左位元組之64位元邏輯位址。其他實施例可使用指定受防護儲存器區之原點之不同機制。
在一項實施例中,在GSC大於25時,位元位置(64-GSC)至38被保留且含有0;否則,受防護儲存器事件偵測之結果不可預測。在一項實施例中,GSD暫存器之位元位置39至52及56至57被保留且含有0;否則,程式在未來可不相容地操作。其他實施例可允許不同範圍之GSC值,及GSO
之大小的對應改變。
˙受防護載入移位(GLS)304:在一項實施例中,受防護儲存器指定暫存器之位元53至55含有以載入邏輯及移位受防護指令之中間結果之形式使用的3位元不帶正負號二進位整數。在一項實施例中,有效GLS值為0到4;值5至7被保留且可致使不可預期移位量。
其他實施例可提供允許物件在各種邊界(諸如半字組、字組、雙字組及四倍字組,等)上對準之較廣泛範圍之GLS值。
˙受防護儲存器特性(GSC)306:在一項實施例中,受防護儲存器指定暫存器之位元位置58至63含有被視為2的冪的6位元不帶正負號二進位整數。有效GSC值為例如25至56;值0至24及57至63被保留且可致使不可預測受防護儲存器事件偵測。GSC在一項實例中指示以下:
‧受防護儲存器原點之對準。GSC值25指示32百萬位元組對準,值26指示64百萬位元組對準,等等。
‧受防護儲存器區段大小。GSC值25指示512千位元組區段,值26指示1百萬位元組區段,及其類似者。其他實施例可允許指定GSC之不同機制,及受防護儲存器原點及受防護儲存器區段大小之指定的對應改變。
圖4中展示受防護儲存器特性、受防護儲存器原點及受防護儲存器區段大小之間的關係。在圖4中,G為十億位元組(230);GSC為受防護儲存器特性;GSD為受防護儲存器指定;GSO為受防護儲存器原點;M為百萬位元組(220);P為千兆位元組(250);且T為兆位元組(240)。
除了受防護儲存器指定暫存器外,受防護儲存器設施包括受防護儲存器區段遮罩暫存器(其一項實施例參考圖5描述)。在一項實例中,受防護儲存器區段遮罩(GSSM)暫存器500為64位元暫存器,且每一位元502對
應於受防護儲存器區內之64個受防護儲存器區段中之一者。作為實例,暫存器之位元0對應於最左區段,且位元63對應於最右區段。每一位元(被稱作區段保護位元)控制由載入受防護(LGG)及載入邏輯及移位保護(LLGFSG)指令對受防護儲存器區之各別區段之存取,如下文所描述。
在GSSM暫存器之所有64個位元為0時,不辨識受防護儲存器事件。在其他實施例中,GSSM暫存器500可具有對應於不同數目個保護區段之不同數目個位元,及/或一個位元可用於表示多於一個保護區段。諸多變化為可能的。
受防護儲存器設施之第三暫存器為受防護儲存器事件參數清單位置(GSEPLA)暫存器,其實例在圖6A中進行描述。如所展示,受防護儲存器事件參數清單位址暫存器600包括例如用於在辨識受防護儲存器事件時載入受防護儲存器事件參數清單(GSEPL)的64位元位址602。在一項實施例中,在CPU不處於存取暫存器模式中時,GSEPLA為邏輯位址;在CPU處於存取暫存器模式時,GSEPLA為主要虛擬位址。
在辨識受防護儲存器事件時,使用GSEPLA之64個位元來存取GSEPL,而不管CPU之當前定址模式。使用當前轉譯模式存取GSEPL,惟除在CPU處於存取暫存器模式時,使用主要位址空間存取GSEPL。
在一項實例中,在辨識受防護儲存器事件時,將各種資訊放置至GSEPL中,且將控制傳遞至GSE處理常式。使用GSEPL,處理常式可影響物件之重新定位,因此調整其指標。
參考圖6B描述受防護儲存器事件參數清單之一項實例。在偵測到受防護儲存器事件時,將受防護儲存器事件參數清單之欄位(除受防護儲存器事件處理常式位址)儲存至受防護儲存器事件參數清單中。
參考圖6B,在一項實例中,受防護儲存器事件參數清單610之內容包括:經保留:GSEPL之位元組0及4至7經保留,且在一項實例中在辨識受防護儲存器事件時經設定至0。
受防護儲存器事件定址模式(GSEAM)612:GSEPL之位元組1在辨識受防護儲存器事件時含有CPU之定址模式之指示,如下:經保留:GSEAM之位元0至5被保留且經儲存為0。
延伸定址模式(E)614:GSEAM之位元6含有延伸定址模式位元,例如,程式狀態字組之位元31。程式狀態字組為執行狀態暫存器及程式計數器之功能之控制暫存器。其含有用於恰當程式執行之資訊,包括但不限於狀況碼、指令位置及其他資訊,如本文中所描述。
基本定址模式(B)616:GSEAM之位元7含有基本定址模式位元,例如,程式狀態字組之位元32。
位元6及7在辨識受防護儲存器事件時(亦即,在一項實施例中,在PSW之位元31及32被替換為異動中止PSW之前,下文所描述)經設定成例如PSW之位元31及32。
受防護儲存器事件原因指示(GSECI)620:GSEPL之位元組2含有受防護儲存器事件原因指示。在一項實例中,GSECI經如下編碼:異動執行模式指示(TX)622:在GSECI之位元0為0時,CPU在辨識受防護儲存器事件時不處於異動執行模式。在GSECI之位元0為1時,CPU在辨識受防護儲存器事件時處於異動執行模式。
CPU可處於非異動執行模式或異動執行模式,且若處於異動執行模式,則其可處於約束異動執行模式或處於非約束異動執行模式。CPU藉由
異動開始指令進入異動執行模式且藉由異動結束指令或指令之中止而離開異動執行模式。異動開始指令可為非約束異動執行模式之異動開始(TBEGIN)指令或約束異動執行模式之異動開始約束(TBEGINC)指令。在異動開始指令為約束異動執行模式使,CPU進入約束異動執行模式,此經受多種限制(例如,一組通用指令可用;可執行有限數目個指令;可存取有限數目個儲存器運算元位置;及/或異動被限制於單個巢套級)。在非約束異動執行模式(簡稱為異動執行模式)中,不應用約束異動執行模式之限制。
在一項實施例中,在TBEGIN指令之執行期間,當巢套深度初始為0(異動可巢套)時,異動中止程式狀態字組(PSW)經設定成當前程式狀態字組(PSW)之內容,且異動中止PSW之指令位址指定下一順序指令(即,在最外部TBEGIN之指令)。在TEGINC指令之執行期間,在巢套深度初始為0時,異動中止PSW經設定成當前PSW之內容,惟除異動中止PSW之指令位址指定TBEGINC指令(而非在TBEGINC之後之下一順序指令)。
當異動中止時,各種狀態資訊可保存在異動診斷區塊(TDB)中。
約束異動執行模式指示(CX)624:在GSECI之位元1為0時,CPU在辨識受防護儲存器事件時不處於約束異動執行模式。在GSECI之位元1為1時,CPU在辨識受防護儲存器事件時處於約束異動執行模式。GSECI之位元1在位元0為1時有意義。
經保留:GSECI之位元2至6經保留,且在一項實例中在辨識受防護儲存器事件時經設定至0。
指令原因(IN)626:GSECI之位元7指示導致受防護儲存器事件之指令。在位元7為0時,事件係由載入保護指令之執行導致。在位元7為1
時,事件係由載入邏輯及移位保護指令之執行導致。其他原因可類似地藉由使用多於一個位元指示。
受防護儲存器事件存取資訊(GSEAI)630:作為實例,GSEPL之位元組3含有描述以下CPU屬性之資訊:經保留:GSEAI之位元0經保留,且在一項實例中在辨識受防護儲存器事件時經設定至0。
DAT模式(T)632:GSEAI之位元1指示當前動態位址轉譯(DAT)模式(即,T位元為PSW位元5之複本)。
位址空間指示(AS)634:GSEAI之位元2至3指示當前位址空間控制(即,AS欄位為PSW之位元16至17之複本)。AS欄位在DAT經啟用時(即,在T位元為1時)有意義;否則,AS欄位不可預測。
存取暫存器數目(AR)636:在CPU處於存取暫存器模式時,GSEAI之位元4至7指示由導致事件之LGG或LLGFSG指令所使用之存取暫存器數目(即,AR欄位為LGG或LLGFSG指令之B2欄位之複本)。在CPU不處於存取暫存器模式時,AR欄位不可預測。
受防護儲存器事件處理常式位址(GSEHA)640:GSEPL之位元組8至15含有受防護儲存器事件處理常式位址。GSEHA欄位之內容被視為係程式狀態字組(PSW)中之當前定址模式之分支位址。在辨識受防護儲存器事件時,GSEHA欄位形成用於完成載入受防護或載入邏輯及移位受防護指令之執行的分支位址。
PSW中之指令位址經替換為GESHA之內容。
受防護儲存器事件處理常式位址在載入受防護儲存器控制指令之執行期間由程式規定。
受防護儲存器事件被認為係程式事件記錄(PER)成功分支事件。若PER在例如PSW中經啟用且PER分支位址控制在例如控制暫存器9中為1,則GSEHA為與例如控制暫存器10及11比較之值。
受防護儲存器事件指令位址(GSEIA)650:GSEPL之位元組16至23含有受防護儲存器事件指令位址。在辨識受防護儲存器事件時,將導致事件之指令之位址儲存至GSEIA欄位。作為實例,放置在GSEIA中之位址為載入受防護或載入邏輯及移位受防護指令之位址,或其目標為載入受防護或載入邏輯及移位受防護指令之執行類型指令之位址。
GSEIA欄位之儲存在偵測到事件時經受當前定址模式。在24位元定址模式中,GSEIA之位元0至39經設定成0。在31位元定址模式中,GSEIA之位元0至32經設定成0。
受防護儲存器事件運算元位址(GSEOA)660:GSEPL之位元組24至31含有受防護儲存器事件運算元位址。在辨識受防護儲存器事件時,將導致事件之載入受防護或載入邏輯及移位受防護指令之第二運算元位址儲存至GSEOA欄位中。
GSEOA欄位之儲存在偵測到事件時經受當前定址模式。在24位元定址模式中,GSEOA之位元0至39經設定成0。在31位元定址模式中,GSEOA之位元0至32經設定成0。
若異動執行由於受防護儲存器事件之辨識而被中止,GSEOA欄位含有在異動執行期間形成之運算元位址。即使運算元位址係使用在異動執行期間變更之一或多個通用暫存器形成,且不管暫存器在異動執行中止時是否經復原,上述情形仍為真。
受防護儲存器事件中間結果(GSEIR)670:GSEPL之位元組32至39
含有受防護儲存器事件中間結果。在辨識受防護儲存器事件時,將由載入受防護或載入邏輯及移位受防護指令形成之中間結果儲存至GSEIR欄位中。
若異動執行由於受防護儲存器事件之辨識被中止,則GSEIR欄位含有在CPU已離開異動執行模式之後(例如,在異動中止之後)由第二運算元位置形成之中間結果。
受防護儲存器事件轉回位址(GSERA)680:GSEPL之位元組40至47含有受防護儲存器事件轉回位址。
當CPU處於異動執行模式時辨識受防護儲存器事件時,將異動中止PSW之指令位址放置至GSERA中。在約束異動執行模式中,指令位址(亦即,GSERA)指定TBEGINC指令。在非約束異動執行模式中,指令位址(亦即,GSERA)指定在TBEGINC指令之後的指令。
當CPU未處於異動執行模式時辨識受防護儲存器事件時,GSERA之內容與GSEIA相同。
在載入受防護或載入邏輯及移位受防護指令之執行期間,若辨識受防護儲存器事件則存取GSEPL。在辨識受防護儲存器事件時,可對GSEPL之任何欄位進行多次存取。
在受防護儲存器事件處理期間對GSEPL之存取被視為副作用存取。針對包括GSEHA欄位及經保留欄位之GSEPL之任何位元組辨識儲存類型存取異常。若在存取GSEPL時辨識除定址外之存取異常,則副作用存取指示(在例如真實位置168至175處之轉譯異常識別之位元54)經設定至1,且致使受防護儲存器事件之載入受防護或載入邏輯及移位受防護指令為空值。
在DAT接通時,使用當前位址空間控制(ASC)模式存取GSEPL,惟除在CPU處於存取暫存器模式時;在存取暫存器模式中,在主要位址空間中存取GSEPL。
三個受防護儲存器暫存器可分別藉助於載入受防護儲存器控制指令及儲存受防護儲存器控制指令設定及檢查。此等指令中之每一者之儲存器運算元為例如32位元組受防護儲存器控制區塊(GSCB),且受防護儲存器暫存器之內容佔據區塊之最後三個八位元組欄位,如圖7中所展示。
如所描繪,在一項實例中,受防護儲存器控制區塊(GSCB)700包括受防護儲存器指定暫存器之內容702、受防護儲存器區段遮罩暫存器之內容704,及GSE參數清單位址暫存器之內容706。
當GSCB在雙字組邊界上對準時,對三個定義欄位中之每一者之CPU存取為區塊並行。
針對載入受防護儲存器控制指令,在一項實例中,GSCB之所保留位元位置含有0;否則,程式在未來可能不相容地操作。
針對儲存受防護儲存器控制指令,載入有非0值之經保留位元位置可或可不儲存為0,且GSD暫存器之GLS及GSC欄位之經保留值可或可不經校正至模型相依值。
在替代實施例中,GSEPL中所描述之值中之一或多者可替代地保持在額外暫存器中,包括在GSCB中,且藉由載入受防護儲存器控制及儲存受防護儲存器控制指令載入及儲存。亦存在其他實例。
在一項實施例中,預期用法為程式在受防護儲存器控制之確立與受防護儲存器事件之辨識之間不切換ASC模式。若程式切換ASC模式,則在一項實例中,GSEPL經映射至確立該ASC之空間與辨識受防護儲存器事
件之空間兩者中之共同位址。若在存取暫存器模式中辨識受防護儲存器事件,受防護儲存器事件處理常式程式可需要檢查GSEAI欄位以判定藉以存取受防護儲存器運算元之恰當ALET(存取清單項目符記)。
此外,當非約束異動由於受防護儲存器事件而被中止時,來自異動中止PSW之定址模式變得有效。在受防護儲存器事件時有效之定址模式可藉由檢查GSE參數清單中之GSEAM欄位來判定。
在一項實施例中,定址模式不會被約束異動改變;因此,在一項實施例中,若約束異動由於受防護儲存器事件中止,則定址模式必需與在執行TBEGINC指令時相同。
下文描述受防護儲存器設施之指令中之每一者之其他細節,包括例如,載入受防護、載入邏輯及移位受防護、載入受防護儲存器控制及儲存受防護儲存器控制。每一指令可為硬體/軟體介面處之單架構機器指令。此外,每一指令可包括複數個欄位。在一項實施例中,指令之欄位為單獨的且彼此獨立。然而,在另一實施例中,可組合多於一個欄位。此外,與指令之欄位相關聯之下標數表示欄位應用所在之運算元。例如,具有下標1之任何欄位與第一運算元相關聯,具有下標2之任何欄位與第二運算元相關聯,等等。
參考圖8描述載入受防護(LGG)指令之一項實例。載入受防護指令800包括例如用以指定載入受防護操作的操作碼(operation code/opcode)欄位802a、802b;暫存器欄位(R1)804;索引欄位(X2)806;基本欄位(B2)808;及位移欄位,其包含第一位移(DL2)欄位810a及第二位移(DH2)欄位810b。第二位移欄位及第一位移欄位之內容經串連以提供位移,在一項實例中該位移被視為20位元帶正負號二進位整數。
在X2 806及B2 808欄位指定除暫存器0外之一般暫存器時,將各別暫存器之內容加至位移以將位址提供在包括第二運算元之儲存器中。第二運算元為例如儲存器中之雙字組。在一項實例中,若第二運算元位址並非雙字組邊界,則辨識規格異常且抑制操作。
在載入受防護指令之操作中,形成64位元中間結果,如下:作為實例,在24位定址模式中,中間結果由40個二進位0及第二運算元之位元40至63之串連形成。在31位定址模式中,中間結果由33個二進位0及第二運算元之位元33至63之串連形成。在64位元定址模式中,中間結果由整個第二運算元形成。
在啟用受防護儲存器設施時,作為實例,中間結果用於受防護儲存器事件偵測。若辨識受防護儲存器事件,則不修改一般暫存器R1,且完成指令,如下文進一步所描述。
在不啟用受防護儲存器設施,或設施經啟用但未辨識受防護儲存器事件時,將64位元中間結果放置在一般暫存器R1,且指令完成。
在辨識受防護儲存器事件時,存取受防護儲存器事件參數清單(GSEPL)。儲存類型存取應用於整個GSEPL。狀況碼保持不改變。
如上文所指示,除載入受防護指令外,受防護儲存器設施根據本發明之態樣包括載入邏輯及移位受防護指令。載入邏輯及移位受防護指令為單個指令(例如,單架構硬體指令),該指令載入來自儲存器之指令,使資料移位移位量以獲得移位值,使用移位值獲得中間結果,及使用中間結果執行受防護儲存器偵測。
在一項特定實例中,資料為32位元值,其向左移位受防護儲存器指定暫存器中規定之多個位元位置以形成例如中間64位元值。針對定址模式
調整64位元值;即,在24位元定址模式中,位元0至39經設定至0;在31位元定址模式中,位元0至32經設定至0;且在64位元定址模式中,值不改變。比較中間值之選擇位元與受防護儲存器原點(在GSD暫存器中),且使用中間值之其他所選擇位元來對受防護儲存器區段遮罩(GSSM)中之位元加索引。若比較相等且經加索引GSSM位元為1,則偵測受防護儲存器事件。否則,指令將中間值簡單地載入至暫存器。
參考圖9描述載入邏輯及移位受防護(LLGFSG)指令之一項實例。載入邏輯及移位受防護指令900包括例如用以指定載入邏輯及移位受防護操作的操作碼欄位902a、902b;暫存器欄位(R1)904;索引欄位(X2)906;基本欄位(B2)908;及位移欄位,其包含第一位移(DL2)欄位910a及第二位移(DH2)欄位910b。第二位移欄位及第一位移欄位之內容經串連以提供位移,在一項實例中該位移被視為20位元帶正負號二進位整數。
在X2 906及B2 908欄位指定除暫存器0外之一般暫存器時,將各別暫存器之內容加至位移以將位址提供在包括第二運算元之儲存器中。第二運算元例如為儲存器中之字組。在一項實例中,若第二運算元位址並非在字組邊界上,則辨識規格異常且抑制操作。
在載入邏輯及移位受防護指令之操作中,形成64位元中間結果,如下:在受防護儲存器設施經啟用(例如,藉助於控制暫存器2之位元59)時,中間結果使用受防護載入移位值形成(GLS,在受防護儲存器指定暫存器之位元53至55中)。在受防護儲存器設施未經啟用時,GLS值經假定成0。
作為實例,在24位元定址模式中,中間結果由40個二進位0及第二運
算元之位元(8+GLS)至31及GLS二進位0(亦即,等於0之GLS之數目)之串連形成。在31位元定址模式中,中間結果由33個二進位0及第二運算元之位元(1+GLS)至31及GLS二進位0之串連形成。在64位元定址模式中,中間結果由(32-GLS)個二進位0及整個32位元第二運算元及GLS二進位0之串連形成。
在啟用受防護儲存器設施時,作為實例,中間結果用於受防護儲存器事件偵測。若辨識受防護儲存器事件,則不修改一般暫存器R1,且完成指令,如下文進一步所描述。
在不啟用受防護儲存器設施,或設施經啟用但未辨識受防護儲存器事件時,將64位元中間結果放置在一般暫存器R1,且指令完成。
在辨識受防護儲存器事件時,存取受防護儲存器事件參數清單(GSEPL)。儲存類型存取應用於整個GSEPL。狀況碼保持不改變。
在執行載入受防護指令或載入邏輯及移位受防護指令的情況下。可存在以下程式異常:存取(提取、第二運算元;在辨識受防護儲存器事件時,提取並儲存GSEPL欄位);操作(受防護儲存器設施未被安置),及規格。
載入受防護指令及載入邏輯及移位受防護指令中之每一者之執行優先權如下:
1.-7.具有與通常狀況之程式中斷狀況之優先權相同之優先權的異常。
8.對儲存器中之第二運算元之存取異常。
9.在未辨識任何受防護儲存器事件之情況下完成。
10.對受防護儲存器事件參數清單之副效應存取異常。
11.在辨識受防護儲存器事件之情況下完成。
載入邏輯及移位受防護指令可用於載入有時被稱作為壓縮指標之指標,其中指標位址之某一數目最右位元不存在於儲存器且經假定為0。例如,各種語言(諸如Java)可將關於其應用程式之資料物件分配在整個儲存器邊界上(即,在為2的冪數之邊界上)。舉例而言,可將物件分配在一字組(4位元組)、雙字組(8位元組)或四倍字組(16位元組)邊界上。在將物件分配在此邊界上,物件之位址之某一數目個最右位元為0。針對程式化效率,使用32位元指標來表示此等物件之指標可為有利的,但此將可定址能力之範圍限制至4十億位元組(或在z/Architecture之狀況下,其使用31位元位址,可定址能力之範圍限制於2十億位元組),甚至在以64位元定址模式執行。
由於已知此物件之某一數目個最右位元(對準在整個邊界上)為0,因此可藉由將指標向右移位多個預期0位元來自指標之記憶體中表示省略此等位元。此允許將對應數目個最左位元加至儲存器中之指標,因此允許指標定址比使用非移位版本可能大的記憶體量。舉例而言,若已知指標指示雙字組,則藉由使指標向右移位三個位元,可定址能力之範圍可在左側延伸3個位元,因此允許32位元指標定址記憶體之高達32十億位元組(如與可使用非移位指標定址之4十億位元組相反)。此外,在指標經載入供由CPU之記憶體子系統使用時,其向左移位3個位元以形成35位元指標。
假定程式化模型使用相同格式之壓縮指標(即,壓縮指標皆向右移位相同數目個位元),執行載入與移位操作之指令不需要具有指定移位量之運算元。確切而言,此可為不頻繁載入之相對靜態值(例如,在調度任務時)。在一項實施例中,壓縮指標移位之位元數目經規定在受防護儲存器
指定(GSD)暫存器之受防護載入移位(GLS)欄位中。在另一實施例中,移位量可規定在指令之運算元中。其他變化亦是可能的。
在受防護儲存器設施安裝成一組態時,可執行載入受防護(LGG)指令及載入邏輯及移位受防護(LLGFSG)指令而不管受防護儲存器啟用控制之內容(例如,控制暫存器2之位元59)。然而,受防護儲存器事件可經辨識為在(a)GSE控制為1且(b)受防護儲存器選擇遮罩為非0時執行LGG或LLGFSG之結果。在GSE控制不為1的情況下,將不載入受防護儲存器選擇遮罩。
在儲存選擇遮罩(GSSM)之全部64個位元皆為0時不辨識受防護儲存器事件。程式可確保藉由(a)不載入受防護儲存器控制(在此狀況下GSSM將含有其0之重設狀態或(b)將0載入至GSSM中)來不辨識受防護儲存器事件。
參考圖10描述載入受防護儲存器控制(LGSC)指令之一項實例。載入受防護儲存器控制指令將控制受防護儲存器事件之操作之參數提供至CPU,且將描述在受防護儲存器事件時之CPU之狀態之資訊提供至程式。
參考圖10,載入受防護儲存器控制指令1000包括用以指示載入受防護儲存器控制操作的操作碼欄位1002a、1002b;暫存器欄位(R1)1004;索引欄位(X2)1006;基本欄位(B2)1008;及位移欄位,其包含第一位移(DL2)欄位1010a及第二位移(DH2)欄位1010b。第二位移欄位及第一位移欄位之內容經串連以提供位移,在一項實例中該位移被視為20位元帶正負號二進位整數。
在X2 1006及B2 1008欄位指定除暫存器0外之一般暫存器時,將各別暫存器之內容加至位移以將位址提供在包括第二運算元之儲存器中。
在操作中,將在第二運算元位址處之受防護儲存器控制區塊(GSCB)之內容載入至三個受防護儲存器暫存器中。圖7中展示受防護儲存器控制區塊(GSCB)之格式。指令之R1欄位經保留且應含有0;否則,程式在未來可不相容地操作。
針對GSCB之全部32位元組辨識存取異常。
若所載入之GSD暫存器之GLS或GSC欄位含有無效值,或若暫存器之所保留位元位置不含有0,則結果為不可預測的。若第二運算元在所保留位元位置中含有(a)無效GLS或GSC值,或(b)非0值,則無論CPU用正確值替換無效值抑或非0值為模型相依。此外,此等正確值隨後是否被儲存受防護儲存器控制指令儲存為不可預測的。
在受防護儲存器啟用控制(例如,控制暫存器2之位元59)為0時,辨識特殊操作異常且抑制操作。
狀況碼保持不改變,且可存在以下程式異常:存取(提取、第二運算元);操作(若未安裝受防護儲存器設施);特殊操作;及異動約束。
若GSD暫存器之GSC欄位含有無效值,則不會發生受防護儲存器事件或可偵測到錯誤的受防護儲存器事件。
若GSD暫存器之GLS欄位含有無效值,則由載入邏輯及移位受防護指令所使用之中間結果可由第二運算元之不可預測位元範圍形成,移位不可預測數目個位元。
參考圖11描述儲存受防護儲存器控制指令之一項實例。儲存受防護儲存器控制指令1100包括例如用以指定儲存受防護儲存器控制操作的操作碼欄位1102a、1102b;暫存器欄位(R1)1104;索引欄位(X2)1106;基本欄位(B2)1108;及位移欄位,其包含第一位移(DL2)欄位1110a及第二位
移(DH2)欄位1110b。第二位移欄位及第一位移欄位之內容經串連以提供位移,在一項實例中該位移被視為20位元帶正負號二進位整數。
在X2 1106及B2 1108欄位指定除暫存器0外之一般暫存器時,將各別暫存器之內容加至位移以將位址提供在包括第二運算元之儲存器中。
在操作中,將三個受防護儲存器暫存器之內容儲存在第二運算元位置處。第二運算元具有受防護儲存器控制區塊(GSCB)之格式,如圖7中所展示。在一項實施例中,將0儲存在GSCB之前八個位元組中。
針對GSCB之全部32位元組辨識存取異常。
指令之R1欄位經保留且應含有0;否則,程式在未來可能不相容地操作。
若受防護儲存器啟用控制(例如,控制暫存器2之位元59)為0,則辨識特殊操作異常且抑制指令。
狀況碼保持不改變,且可存在以下程式異常:存取(儲存、第二運算元);操作(若受防護儲存器設施未安裝);特殊操作;及異動約束。
針對指令中之每一者,儘管描述各種欄位及暫存器,但本發明之一或多項態樣可使用其他、額外或較少欄位或暫存器,或其他大小之欄位及暫存器,等。諸多變化為可能的。例如,可使用隱含式暫存器替代指令之顯式規定之暫存器或欄位。此外,其他變化亦是可能的。
可將上文所描述指令及/或暫存器中之一或多者用於受防護儲存器事件,該受防護儲存器事件偵測用於偵測受防護儲存器事件。如圖12中所展示,在一項實施例中,受防護儲存器事件偵測1200使用例如由載入受防護(LGG)指令或載入邏輯及移位受防護(LLGFSG)指令之中間結果1202形成之兩個值,包括例如受防護儲存器運算元比較元(GSOC)1204;及受防
護儲存器遮罩索引(GSMX)1206。
受防護儲存器運算元比較元(GSOC)1204由載入受防護指令或載入邏輯及移位受防護指令之中間結果形成。舉例而言,GSOC包含中間結果之位元位置0至(63-GSC)(包括0及(63-GSC))(其中GSC為受防護儲存器指定暫存器之例如位元位置58至63中之受防護儲存器特性)。
比較1210 GSOC與GSD暫存器1214(其亦包括受防護儲存器特性1216)之對應位元位置中之與受防護儲存器原點1212(GSO)。在GSOC不等於GSO時,未辨識受防護儲存器事件,且藉由將中間結果放置至通用暫存器R1中來完成載入受防護或載入邏輯及移位受防護指令之執行。
在GSOC等於GSO 1220時,在GSOC之右側的中間結果的六個位元形成被稱作受防護儲存器遮罩索引(GSMX)之不帶正負號二進位整數檢查1222對應於GSMX之受防護儲存器區段遮罩(GSSM)暫存器1226之區段保護位元(G)1224。若區段保護位元為0,則未辨識受防護儲存器事件,且藉由將中間結果放置至通用暫存器R1中來完成載入受防護或載入邏輯及移位受防護指令之執行。然而,若區段保護位元為1,則辨識1228受防護儲存器事件。
作為實例,在(a)受防護儲存器設施未經啟用(藉助於例如控制暫存器2之位元59)或(b)受防護儲存器區段遮罩(GSSM)暫存器之所有位元位置含有0時,不執行受防護儲存器事件偵測。
在一項實施例中,受防護儲存控制可在機器檢查上被擷取或在信號處理器(SIGP)上儲存位置操作之額外狀態。例如,當在CPU上發生機器檢查時,將CPU之架構暫存器上下文記錄於儲存器中。架構暫存器上下文中之大部分(包括程式狀態字組(PSW)、通用暫存器、存取暫存器、控制暫
存器、浮點暫存器、浮點控制暫存器、時鐘比較器、CPU定時器、TOD(當日時間)可程式化暫存器、中斷事件位址暫存器及首碼暫存器)經儲存至指定儲存器位置中在真實儲存器之下兩個區塊中(即,經儲存至首碼區中)。此外,架構已經延伸以包括自首碼區不連續以保存額外資訊之機器檢查延伸保存區(MCESA)。
如圖13A中所展示,在一項實例中,機器檢查延伸保存區1300包括指示所保存資訊之內容1304。在一個實例中,在1302處展示內容之位移,且所儲存之延伸保存區之量基於1306處所展示之長度特性(LC)。
在一項實例中,內容1304包括受防護儲存器暫存器之內容,包括受防護儲存器指定暫存器之內容1306、受防護儲存器區段遮罩暫存器之內容1308及受防護儲存器事件參數清單暫存器之內容1310。在一項實例中,受防護儲存器暫存器係以與受防護儲存器控制區塊之格式相同的格式儲存。
機器檢查延伸保存區之位置1024至1055之內容之有效性係由例如受防護儲存器暫存器有效性位元(例如,儲存在例如真實位置232至239處之機器檢查中斷碼(MCIC)之位元36)指示。當為1時,其指示彼等位置之內容反映在中斷點處受防護儲存器暫存器之正確狀態。
機器檢查延伸保存區係由機器檢查延伸保存區指定(MCESAD)指定,其實例在圖13B中進行描繪。機器檢查延伸保存區指定1350包括例如用於指示機器檢查延伸保存區之原點的機器檢查延伸保存區原點(MCESAO)1352,及表示MCESA之大小及對準的長度特性(LC)1354。
在一項實例中,長度特性為2的冪數,且長度特性之效應包括例如:
˙當未安裝受防護儲存器設施時,或當安裝設施但LC欄位為0時,假
定機器檢查延伸保存區之大小為1,024個位元組;此確保未感知受防護儲存器設施之較舊軟體之相容操作。
˙當安裝受防護儲存器設施且LC欄位為例如自1至9之任何值時,將其假定為錯誤,且整個MCESAO被視為如同其含有0(即,不儲存任何MCESA)。
˙當安裝受防護儲存器設施且LC欄位含有大於或等於例如10之值時,則MCESA之大小及對準為2LC個位元組。在此狀況下,MCESAD之位元0至63-LC形成機器檢查延伸保存區原點(MCESAO)。MCESAO與附加在右側之0之LC位元形成機器檢查延伸保存區之64位元位址。
類似於機器檢查延伸保存區,當安裝受防護儲存器設施時,用於擷取CPU之所選擇暫存器之內容之例如信號處理器(SIGP)指令之參數暫存器經延伸以包括額外狀態資訊。如在圖13C中所展示,用於以位址次序儲存額外狀態之SIGP參數暫存器1380包括用於指示額外區之原點之額外狀態區原點1382,表示額外狀態區之大小及對準之長度特性(LC)1384。
在一項實例中,當安裝受防護儲存器設施時,若規定經保留LC值,或若參數暫存器中之任何經保留位元位置為非0,則SIGP次序不被經定址CPU接受,在由SIGP指令之R1欄位指定之狀態暫存器中指示無效參數位元(例如,位元55),且指令藉由設定狀況碼1完成。
下文描述關於與受防護儲存器事件相關聯之處理的進一步細節。處理中之一些取決於處理器之執行模式。例如,處理器可處於非異動執行模式或異動執行模式。此外,若在異動模式中,則其可處於非約束異動模式或約束異動模式,且處理可取決於其。某些細節係參考z/Architecture進行描述;然而,一或多項態樣適用於其他架構。z/Architecture僅為一項
實例。
當CPU處於異動執行模式時辨識受防護儲存器事件時,發生以下:
1.用例如中止碼19中止異動。若異動診斷區塊(TDB)位址無效,或若TDB位址有效且可存取,作為實例,將狀況碼2設定於異動中止PSW中。若TDB位址有效,但TDB不可存取,則作為實例,將狀況碼1設定在異動中之PSW中。
2.取決於模型,可重新提取載入受防護指令或載入邏輯及移位指令之第二運算元以判定受防護儲存器事件狀況是否仍存在。
‧再重新提取第二運算元且不再存在受防護儲存器事件狀況時,正常異動中止處理藉由載入異動中止PSW結束。在此狀況下不發生受防護儲存器事件處理。
‧在未重新提取第二運算元時,或在其經重新提取且受防護儲存器事件狀況持續時,發生受防護儲存器事件處置,如本文中所描述(替代載入異動中止PSW;亦即,在無受防護儲存器設施的情況下,在異動執行中止使,控制傳遞至由異動中止PSW指定之指令。針對非約束異動,此為在開始起動異動執行之最外部TBEGIN指令之後的指令。通常,此將把控制轉移至異動中止處理常式,該異動中止處理常式可能變更程式狀況以使異動執行之隨後嘗試成功。針對約束異動,異動中止PSW指定TBEGINC指令。因此,在無來自中止處理常式之任何介入的情況下重新驅動異動)。當在異動執行期間辨識GSE時,中止異動。在未解析GSE的情況下重新驅動異動將無成效。因此,在異動中止之後將控制傳遞至GSE處理常式,且GSE處理常式管理事件,如本文中所描述。
在此狀況下,TX位元經設定在GSECI欄位中,且若CPU處於約束異
動執行模式,則CX位元亦經設定。
在發生受防護儲存器事件時,GSE指令位址(GSEIA)含有導致事件之LGG或LLGFSG指令之位址。通常,程式可在解析GSE之後分支返回至此位址,且嘗試繼續存取原先導致事件之物件。然而,在異動執行(TX)模式中,異動被受防護儲存器事件中止,且分支返回至LGG/LLGFSG指令不適當,此係因為在GSE之前之異動中之其他指令將已被摒棄。因此,根據本發明之態樣,基於由GSE所致之中止,處理包括例如在異動中止之後分支至GSE處理常式以解析GSE;將指示提供至CPU處於異動模式之GSE處理常式;且提供起始導致GSE之異動之TBEGIN/TBEGINC指令之位址,使得GSE處理常式可重新驅動異動。
不管在辨識受防護儲存器事件時CPU是否處於異動執行模式,仍使用受防護儲存器事件參數清單位址(GSEPLA)暫存器來定位受防護儲存器事件參數清單(GSEPL)。GSEPLA暫存器之內容為64位元位址,且使用位址之64個位元而不管當前定址模式如何。使用當前轉譯模式存取GSEPL,惟除在CPU處於存取暫存器模式時,使用主要位址空間存取GSEPL。
若在存取GSEPL時辨識存取異常,處理如下:
‧發生程式中斷。
‧若CPU未處於異動執行模式,則程式舊PSW中之指令位址經設定如下:
- 若異常狀況導致空值,則指令位址指向導致受防護儲存器事件之指令(即,LGG或LLGFSG之位址,或其目標為LGG或LLGFSG之執行類型指令之位址,作為實例)。
- 若異常狀況導致抑制或終止,則指令位址指向在導致受防護儲存器事件之指令之後的下一連續指令。
若CPU處於異動執行模式,則將異動中止PSW放置至程式舊PSW中。
‧針對除定址外之所有存取異常狀況,副作用存取指示(例如,真實位置168至175處之異動執行識別(TEID)之位元54)經設定成1。(TEID並未儲存用於定址異。)
‧在GSEPL不可存取時不發生下文所描述之剩餘受防護儲存器事件處置。
若GSEPL可存取,則使用GSEPL之欄位執行以下動作:
‧GSEPL之位元組0及4至7經設定成0。
‧將定址模式之指示放置至受防護儲存器事件定址模式(GSEAM,GSEPL之位元組1)中,如下:
- GSEAM之位元0至5經設定至0。
- GSEAM之位元6及7在辨識受防護儲存器事件時經設定成PSW之位元31及32。
‧將事件之原因之指示放置至受防護儲存器事件原因指示欄位(GSECI,GSEPL之位元組2)中,如下:
- 若CPU在辨識受防護儲存器事件時處於異動執行模式,則GSECI之位元0經設定至1;否則,位元組2之位元0經設定至0。
- 若CPU在辨識受防護儲存器事件時處於約束異動執行模式,則GSECI之位元1經設定至1;否則,GSECI之位元1經設定至0。
- GSECI之位元2至6經設定至0。
- GSECI之位元7經設定以指定導致受防護儲存器事件之指令。作為實例,值0意指事件係由LGG指令造成;值1意指事件係由LLGFSG指令造成。
‧將PSW DAT之指示、定址模式及位址空間控制放置至受防護儲存器事件位址指示欄位(GSEAI,GSEPL之位元組3)中,如下:
- GSEAI之位元0經保留且設定至0。
- 當前轉譯模式(PSW之位元5)放置至GSEAI之位元1。
- 若DAT接通,則將PSW之位元16至17放置至GSEAI之位元2至3中。若DAT關斷,則GSEAI之位元2至3為不可預測。
- 若CPU處於存取暫存器模式,則將對應於導致事件之LGG或LLGFSG指令之B2欄位之存取暫存器數目放置至GSEAI之位元4至7中。若CPU未處於AR模式,GSEAI之位元4至7為不可預測。
‧PSW中之指令位置被替換為受防護儲存器事件處理常式位址欄位(GSEHA,GSEPL之位元組8至15)之內容。GSEHA欄位被視為分支位址。當前定址模式不改變。
‧將導致受防護儲存器事件之指令之位址放置至受防護儲存器事件指令位址欄位(GSEIA,GSEPL之位元組16至23)。作為實例,放置GSEIA中之位址為LGG或LLGFSG指令之位址,或其目標為LGG或LLGFSG之執行類型指令之位址。亦將GSEIA放置至中斷事件位址暫存器中。
‧將LGG或LLGFSG指令之第二運算元位址放置至受防護儲存器事件運算元位址(GSEOA,GSEPL之位元組24至31)中。若異動執行由於受防護儲存器事件之辨識而被中止,GSEOA欄位含有在異動執行期間形成
之運算元位址。
‧將LGG或LLGFSG指令之中間結果放置至受防護儲存器事件中間結果欄位(GSEIR,GSEPL之位元組32至39)中。若異動執行由於受防護儲存器事件之辨識而中止,則使用受防護儲存器運算元位址(GSEOA)欄位形成形成GSEIR欄位。然而,若在異動執行期間辨識受防護儲存器事件,則GSEIR是含有異動提取之值抑或在異動中止之後提取之值為模型相依。
‧GSE中間位址(亦即,由LGG或LLGFSG載入之指標)係在異動已中止之後形成。在一項實施例中,若LGG/LLGFSG之運算元在異動期間異動變更,則GSEIA將不展示彼等改變。
‧若CPU在辨識受防護儲存器事件時處於異動執行模式,則將異動中止PSW之指令位址放置在受防護儲存器事件返回位址欄位(GSERA,GSEPL之位元組40至47)。若CPU處於約束異動執行模式,則GSERA指定TBEGINC(異動開始約束)指令。若CPU處於非約束異動執行模式,則GSERA指定在TBEGIN(異動開始)指令之後的指令。在GSE處置之後,處理常式可分支至此位址以重試異動。
若CPU在辨識受防護儲存器事件時不處於異動執行模式中,則GSERA欄位之內容與GSEIA欄位之內容相同。
最終,LGG或LLGFSG指令被視為在不變更通用暫存器R1的情況下完成。
如本文中所描述,實施儲存器聯合技術(被稱作儲存回收或廢棄項目收集)之程式設計語言可自受防護儲存器設施獲益。在此程式化模型中,對程式物件之參照係由將指標首先載入至物件來執行。載入受防護及載入邏輯受防護及移位指令提供藉以程式可將指標載入至物件且判定指標是否
可使用的手段。若未辨識任何受防護儲存器事件(GSE),則可使用指標來參照物件。然而,若辨識GSE,則其可指示當前指標指定經辨識之儲存器位置,在此狀況下物件可已經重新定位在別處。GSE處理常式可接著修改指標以指定物件之新位置,且接著分支至由GSEIA指定之位置以繼續正常程式執行。
回應於在CPU處於異動執行模式時辨識GSE,程式之GSE處理常式可嘗試校正致使事件之狀況(即,更新LGG或LLGFSG之運算元),且接著藉由分支至由GSERA指定之位置而重新執行異動。若非約束異動執行中止,則程式將狀況碼在分支至GSERA之前設定至2或3,此取決於導致事件之狀況是否分別經校正。若約束異動執行被中止,則程式未分支至由GSERA指定之位置除非導致事件之狀況已被校正;否則程式迴路可產生。
為確保受防護儲存器事件中間結果(GSEIR)欄位之可靠內容,在異動執行模式中執行之程式將在其修改隨後在同一異動中執行之載入受防護指令之第二運算元位置的情況下使用非異動儲存指令(其執行非異動儲存存取)。
類似於變更PSW指令位址之其他指令,在PSW指令位址(自GSEHA欄位載入)在受防護儲存器事件之後為奇數的情況下辨識規格異常。
在GSE處理期間,CPU可在嘗試更新受防護儲存器事件參數清單(GSEPL)時辨識存取異常。此存取異常可完全無害,例如,歸因於GSEPL由作業系統暫時分頁移出至輔助儲存器。假定作業系統補救異常,其將載入程式舊PSW以繼續中斷程式之執行。
若在存取GSEPL且CPU未處於異動執行模式時辨識存取異常,則在
一項實例中,程式舊PSW之指令位址將經如下設定:
‧若異常導致空值,則作為實例,指令位址將指向導致GSE之LGG或LLGFSG指令(或其運算元為LGG或LLGFSG指令之執行類型指令)。
‧若異常導致抑制或終止,則指令位址將指向在導致用於抑制或終止異常之GSE之指令之後的下一連續指令。
若在存取GSEPL且CPU處於非約束異動執行模式中時辨識存取異常,則程式舊PSW將指定在最外TBEGIN之後的指令;若CPU處於約束異動執行模式,則程式舊PSW將指定TBEGINC指令。
若CPU處於非約束異動執行模式且儲存TDB(異動診斷區塊),則中止碼19指示異動執行由於GSE而中止。然而,異動中止處理常式無法假定中止碼19需要指示GSE處理常式已校正GSE之原因(因為在存取GSEPL時之可能存取異常狀況)。在此情景中,中止處理常式可重新執行異動多次以允許一或多個轉譯異常之作業系統解析度且允許GSE處理常式校正GSE之原因。
上文描述受防護儲存器設施,包括用以載入及儲存管制受防護儲存器設施之操作之控制的指令,用於促進運算環境內之處理。本發明之一或多個態樣與電腦技術緊密相關且促進電腦內之處理,改良其效能。
參考圖14A至圖14B描述與促進運算環境中之處理有關之本發明之態樣的一項實例。參考圖14A,在一項實例中,獲得用以執行載入及移位操作之指令(1400),及執行指令(1402)。執行包括:例如,載入來自記憶體中之位置之資料(例如,指標),記憶體中之該位置由與指令相關聯之一或多個欄位指定(1404);使資料移位(例如,向左)移位量以獲得移位值(1406);使用移位值獲得中間結果(1408);及基於中間結果執行受防護儲
存器偵測(1410)。
在一項實施例中,執行受防護儲存器偵測包括:比較該中間結果之第一部分與受防護儲存器區之原點(1411);判定該受防護儲存器區之特定區段是否受防護,該判定使用該中間結果之第二部分(1412);及基於指示特定結果之該比較及指示該特定區段受防護之該判定而偵測受防護儲存器事件(1414)。
在一項實施例中,執行受防護儲存器偵測進一步包括:基於比較及判定未偵測到受防護儲存器事件,將中間結果放置在由指令指定之所選擇位置(例如,由指令之欄位規定之暫存器)中(1416)。
此外,在一項實施例中,參考圖14B,自用於規定受防護儲存器區之一或多個屬性之暫存器獲得移位量(1420)。
此外,作為一項實例,獲得中間結果包括基於執行指令之處理器之定址模式而調整移位值(1422)。
在又一實施例中,判定自其載入資料之記憶體中之位置(1430),及例如,判定包括使用指令之索引欄位、基本欄位及位移欄位(1432)。
作為一項特定實例,指令為單架構指令,其包含指示載入邏輯及移位受防護操作之操作碼、用以規定暫存器基於判定未偵測到受防護儲存器事件而放置結果的暫存器欄位、及用以判定記憶體中之該位置的複數個欄位(1440)。
諸多變化為可能的。
本發明可為在任何可能技術細節整合水平上之系統、方法及/或電腦程式產品。電腦程式產品可包括其上有致使處理器實施本發明之態樣之電腦可讀程式指令的電腦可讀儲存媒體(或媒體)。
電腦可讀儲存媒體可為可保持且儲存供由指令執行器件使用之指令的有形器件。電腦可讀儲存媒體可為例如但不限於電子儲存器件、磁性儲存器件、光學儲存器件、電磁儲存器件、半導體儲存器件或前述之任何合適組合。電腦可讀儲存媒體之更特定實例之非窮盡性清單包括以下:可攜式電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM或快閃記憶體)、靜態隨機存取記憶體(SRAM)、可攜式光碟唯讀記憶體(CD-ROM)、數位通用磁碟(DVD)、記憶卡、軟碟、諸如其上記錄有指令之諸如打孔卡片或凹軌中之隆起結構之機械編碼器件,及前述之任何合適組合。如本文中所使用,電腦可讀儲存媒體並不將視為暫時信號自身,諸如無線電波或其他自由傳播電磁波、傳播穿過波導或其他傳輸媒體(例如,穿過光纖纜線之光脈衝)之電磁波,或經由導線傳輸之電信號。
本文中所描述之電腦可讀程式指令可自電腦可讀儲存媒體下載至各別運算/處理器件或經由例如網際網路、區域網路、廣域網路及/或無線網路之網路下載至外部電腦或外部儲存器件。網路可包含銅傳輸纜線、光學傳輸光纖、無線傳輸、路由器、防火牆、交換器、閘道電腦及/或邊緣伺服器。每一運算/處理器件中之網路配接器卡或網路介面接收來自網路之電腦可讀程式指令且轉發電腦可讀程式指令用於儲存在各別運算/處理器件內之電腦可讀儲存媒體中。
用於實施本發明之操作之電腦可讀程式指令可為組譯器指令、指令集架構(ISA)指令、機器指令、機器相依指令、微碼、韌體指令、狀態設定資料、關於積體電路之組態資料或以一或多個程式設計語言(包括諸如Smalltalk、C++或其類似者之物件導向程式設計語言,及程序性程式設計
語言,諸如「C」程式設計語言或類似程式設計語言)之任何組合寫入之原始程式碼或目的碼。電腦可讀程式指令可完全地在使用者之電腦上、部分地在使用者之電腦上、作為獨立軟體套件、部分地在使用者之電腦上且部分地在遠端電腦上,或完全地在遠端電腦或伺服器上執行。在後者情景中,遠端電腦可經由任何類型之網路(包括區域網路(LAN)或廣域網路(WAN))連接至使用者之電腦,或可連接至外部電腦(例如,使用網際網路服務提供者經由網際網路)。在一些實施例中,電子電路(包括例如可程式化邏輯電路、場可程式化閘陣列(FPGA)或可程式化邏輯陣列(PLA))可藉由使用電腦可讀程式指令之狀態資訊來將電子電路個人化來執行電腦可讀程式指令,以便執行本發明之態樣。
本文中參考根據本發明之實施例之方法、裝置(系統)及電腦程式產品之流程圖說明及/或方塊圖描述本發明之態樣。將理解,流程圖說明及/或方塊圖之每一區塊及流程圖說明及/或方塊圖中之區塊之組合可由電腦程式指令實施。
可將此等電腦可讀程式指令提供至通用電腦、專用電腦或其他可程式化資料處理裝置之處理器以產生機器,使得經由電腦或其他可程式化資料處理裝置之處理器執行之指令建立用於實施流程圖及/或方塊圖區塊中規定之功能/動作的構件。此等電腦可讀程式指令亦可儲存於電腦可讀儲存媒體中,此等電腦可讀程式指令可指導電腦、可程式化資料處理裝置及/或其他器件以按特定方式起作用,使得其中儲存有指令之電腦可讀儲存媒體包含包括實施流淌出圖及/或方塊圖區塊中規定之功能/動作之態樣之指令的製造物件。
電腦可讀程式指令亦可載入至電腦、其他可程式化資料處理裝置或
其他器件上以指示在電腦、其他可程式化裝置或其他器件上執行一系列操作步驟以產生電腦實施程序,使得在電腦、其他可程式化裝置或其他裝置上執行之指令實施流程圖及/或方塊圖區塊中規定之功能/動作。
圖中之流程圖及方塊圖說明根據本發明之各種實施例之系統、方法及電腦程式產品之可能實施之架構、功能性及操作。就此而言,流程圖或方塊圖中之每一區塊可表示指令之模組、程式段或部分,其包含用於實施規定邏輯功能之一或多個可執行指令。在一些替代實施中,區塊中所述之功能可不按圖中所述之次序發生。舉例而言,連續展示之兩個區塊可實際上基本上同時執行,或區塊可有時以相反次序執行,此取決於所涉及之功能性。亦應注意,方塊圖及/或流程圖說明中之每一區塊,及方塊圖及/或流程圖說明中之區塊之組合可由專用基於硬體系統實施,該專用基於硬體系統執行規定功能或動作或實施專用硬體及電腦指令之組合。
除上述外,可藉由提供消費者環境管理之服務提供者來提供、給予、部署、管理、伺服等一或多項態樣。例如,服務提供者可建立、維持、支援等執行一或多個消費者之一或多項態樣之電腦程式碼及/或電腦基礎設施。作為回報,作為實例,服務提供者可根據訂閱及/或費用協議自消費者接收報酬。另外或替代地,服務提供者可接收向一或多個第三方銷售廣告內容的報酬。
在一項態樣中,應用程式可經部署用於執行一或多個實施例。作為一項實例,應用程式之部署包含可操作以執行一或多個實施例之電腦基礎設施。
作為又一態樣,運算基礎設施可經部署包含將電腦可讀碼整合至運算系統,在運算系統中,碼結合運算系統能夠執行一或多個實施例。
作為又一態樣,可提供用於將包含整合式電腦可讀碼之運算基礎設施整合至電腦系統中的程序。電腦系統包含電腦可讀媒體,其中電腦媒體包含一或多個實施例。碼結合電腦系統能夠執行一或多個實施例。
儘管各種實施例在上文得以描述,但此等僅為實例。舉例而言,可使用其他架構之運算環境來整合並使用一或多個實施例。此外,可使用不同指令、指令格式、指令欄位及/或指令值。諸多變化為可能的。
此外,其他類型之運算環境可有益且使用。作為實例,適合於儲存及/或執行程式碼之資料處理系統為可用的,其包括經由系統匯流排直接地或間接地耦合至記憶體元件的至少兩個處理器。記憶體元件包括例如在程式碼之實際執行期間所採用之本端記憶體、大容量儲存器及快取記憶體,其提供至少某一程式碼之暫時儲存以便減少在執行期間必須自大容量儲存器擷取碼之次數。
輸入/輸出或I/O器件(包括但不限於鍵盤、顯示器、指標器件、DASD、磁帶、CD、DVD、隨身碟及其他記憶體媒體,等)可直接或經由介入之I/O控制器耦合至系統。網路配接器亦可耦合至系統以使得資料處理系統能夠經由介入之私用或公用網路耦合至其他資料處理系統或遠端指標或儲存器件。數據機、纜線數據機及乙太網路卡僅為可用類型之網路配接器中之一些。
本文中所使用之術語為僅出於描述特定實施例之目的且並不意欲為限制性。如本文中所使用,除非上下文另有明確指示,否則單數形式「一」及「該」意欲包括複數形式。將進一步理解,術語「包含(comprise)」及/或「包含(comprising)」在本說明書中使用時規定所述特徵、整數、步驟、操作、元件及/或組件的存在,但不排除存在或新增一
或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組。
下文申請專利範圍中所有構件或步驟附加功能元件之對應結構、材料、動作及等效物(若有)意欲包括用於結合具體主張之其他主張元件執行功能的任何結構、材料或動作。對一或多個實施例之說明係出於說明及描述的目的加以呈現,而非意欲為窮盡性的或限定於呈所揭示的形式。諸多修改及變化形式將為熟習此項技術者顯而易見。實施例經選擇及描述以便最佳闡釋各種態樣及實際應用,且使得熟習此項技術者能夠將具有各種修改之各種實施例理解為適合於所預期之特定使用。
1400:步驟
1402:步驟
1404:步驟
1406:步驟
1408:步驟
1410:步驟
1412:步驟
1414:步驟
1416:步驟
Claims (20)
- 一種用於促進一運算環境中之處理的電腦程式產品,該電腦程式產品包含:至少一電腦可讀儲存媒體,其可由至少一處理電路讀取且儲存用於執行包含以下步驟之一方法的指令:獲得用以至少執行一載入操作及一移位操作之一指令,該指令包括在硬體或軟體介面上的一單架構指令,且該指令為一指令集中的指令,該指令集包括複數個指令,該指令包括至少規定該載入操作和該移位操作的操作碼;及執行該指令,該執行包含:載入來自記憶體中之一位置之資料,記憶體中之該位置由與該指令相關聯之一或多個欄位指定;使自該記憶體中之該位置載入之該資料在一經選擇方向中移位一移位量以獲得一移位值;使用該移位值來獲得一中間結果;及基於該中間結果而執行受防護儲存器偵測,其中該載入、移位、獲得以及執行是作為執行該單架構指令的一部分。
- 如請求項1之電腦程式產品,其中該資料包括一指標。
- 如請求項1之電腦程式產品,其中該移位包含:使該資料向左移位該移位量以獲得該移位值。
- 如請求項1之電腦程式產品,其中該方法進一步包含:自用於規定一受防護儲存器區之一或多個屬性之一暫存器獲得該移位量。
- 如請求項1之電腦程式產品,其中該執行受防護儲存器偵測包含:比較該中間結果之一第一部分與一受防護儲存器區之一原點;判定該受防護儲存器區之一特定區段是否受防護,該判定使用該中間結果之一第二部分;及基於指示一特定結果之該比較及指示該特定區段受防護之該判定而偵測一受防護儲存器事件。
- 如請求項5之電腦程式產品,其中該執行受防護儲存器偵測進一步包含:基於該比較及判定未偵測到該受防護儲存器事件而將該中間結果放置在由該指令指定之一所選擇位置中。
- 如請求項6之電腦程式產品,其中該所選擇位置為由該指令之一欄位規定之一暫存器。
- 如請求項1之電腦程式產品,其中該獲得該中間結果包括:基於執行該指令之一處理器之一定址模式而調整該移位值。
- 如請求項1之電腦程式產品,其中該方法進一步包括:判定記憶體中之該位置,該判定使用該指令之一索引欄位、一基本欄位及一位移欄位。
- 如請求項1之電腦程式產品,其中該指令包含指示一載入邏輯及移位受防護操作之一操作碼、用以規定一暫存器基於判定未偵測到一受防護儲存器事件而放置一結果的一暫存器欄位、及用以判定記憶體中之該位置的複數個欄位。
- 一種用於促進一運算環境中之處理的電腦系統,該電腦系統包含:一記憶體;及一處理器,其與該記憶體通信,其中該電腦系統經組態以執行一方法,該方法包含:獲得用以至少執行一載入操作及一移位操作之一指令,該指令包括在硬體或軟體介面上的一單架構指令,且該指令為一指令集中的指令,該指令集包括複數個指令,該指令包括至少規定該載入操作和該移位操作的操作碼;及執行該指令,該執行包含:載入來自記憶體中之一位置之資料,記憶體中之該位置由與該指令相關聯之一或多個欄位指定;使自該記憶體之該位置載入之該資料在一經選擇方向中移位一移位量以獲得一移位值;使用該移位值來獲得一中間結果;及基於該中間結果而執行受防護儲存器偵測,其中該載入、移位、獲得以及執行是作為執行該單架構指令的一部分。
- 如請求項11之電腦系統,其中該執行受防護儲存器偵測包含:比較該中間結果之一第一部分與一受防護儲存器區之一原點;判定該受防護儲存器區之一特定區段是否受防護,該判定使用該中間結果之一第二部分;及基於指示一特定結果之該比較及指示該特定區段受防護之該判定而偵測一受防護儲存器事件。
- 如請求項12之電腦系統,其中該執行受防護儲存器偵測進一步包含:基於該比較及判定未偵測到該受防護儲存器事件而將該中間結果放置在由該指令指定之一所選擇位置中。
- 如請求項11之電腦系統,其中該獲得該中間結果包括:基於執行該指令之一處理器之一定址模式而調整該移位值。
- 如請求項11之電腦系統,其中該指令為一單架構指令,其包含指示一載入邏輯及移位受防護操作之一操作碼、用以規定一暫存器基於判定未偵測到一受防護儲存器事件而放置一結果的一暫存器欄位、及用以判定記憶體中之該位置的複數個欄位。
- 一種促進一運算環境中之處理之電腦實施方法,該電腦實施方法包含:獲得用以至少執行一載入操作及一移位操作之一指令,該指令包括在硬體或軟體介面上的一單架構指令,且該指令為一指令集中的指令,該 指令集包括複數個指令,該指令包括至少規定該載入操作和該移位操作的操作碼;及執行該指令,該執行包含:載入來自記憶體中之一位置之資料,記憶體中之該位置由與該指令相關聯之一或多個欄位指定;使自該記憶體中之該位置載入之該資料在一經選擇方向中移位一移位量以獲得一移位值;使用該移位值來獲得一中間結果;及基於該中間結果而執行受防護儲存器偵測,其中該載入、移位、獲得以及執行是作為執行該單架構指令的一部分。
- 如請求項16之電腦實施方法,其中該執行受防護儲存器偵測包含:比較該中間結果之一第一部分與一受防護儲存器區之一原點;判定該受防護儲存器區之一特定區段是否受防護,該判定使用該中間結果之一第二部分;及基於指示一特定結果之該比較及指示該特定區段受防護之該判定而偵測一受防護儲存器事件。
- 如請求項17之電腦實施方法,其中該執行受防護儲存器偵測進一步包含:基於該比較及判定未偵測到該受防護儲存器事件而將該中間結果放置在由該指令指定之一所選擇位置中。
- 如請求項16之電腦實施方法,其中該獲得該中間結果包括:基於執 行該指令之一處理器之一定址模式而調整該移位值。
- 如請求項16之電腦實施方法,其中該指令包含指示一載入邏輯及移位受防護操作之一操作碼、用以規定一暫存器基於判定未偵測到一受防護儲存器事件而放置一結果的一暫存器欄位、及用以判定記憶體中之該位置的複數個欄位。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/409,684 US10725685B2 (en) | 2017-01-19 | 2017-01-19 | Load logical and shift guarded instruction |
US15/409,684 | 2017-01-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201832083A TW201832083A (zh) | 2018-09-01 |
TWI701551B true TWI701551B (zh) | 2020-08-11 |
Family
ID=60953861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107100722A TWI701551B (zh) | 2017-01-19 | 2018-01-09 | 用於於虛擬化環境中保存/復原受防護之儲存器控制之電腦程式產品、電腦實施方法及電腦系統 |
Country Status (18)
Country | Link |
---|---|
US (1) | US10725685B2 (zh) |
EP (1) | EP3571580B1 (zh) |
JP (1) | JP6909298B2 (zh) |
KR (1) | KR102296994B1 (zh) |
CN (1) | CN110199259B (zh) |
AU (1) | AU2018209038B2 (zh) |
DK (1) | DK3571580T5 (zh) |
ES (1) | ES2893925T3 (zh) |
HU (1) | HUE056632T2 (zh) |
IL (1) | IL267180B (zh) |
LT (1) | LT3571580T (zh) |
PL (1) | PL3571580T3 (zh) |
PT (1) | PT3571580T (zh) |
RU (1) | RU2731327C1 (zh) |
SI (1) | SI3571580T1 (zh) |
TW (1) | TWI701551B (zh) |
WO (1) | WO2018134049A1 (zh) |
ZA (1) | ZA201905099B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10496311B2 (en) | 2017-01-19 | 2019-12-03 | International Business Machines Corporation | Run-time instrumentation of guarded storage event processing |
US10732858B2 (en) | 2017-01-19 | 2020-08-04 | International Business Machines Corporation | Loading and storing controls regulating the operation of a guarded storage facility |
US10579377B2 (en) | 2017-01-19 | 2020-03-03 | International Business Machines Corporation | Guarded storage event handling during transactional execution |
US10496292B2 (en) | 2017-01-19 | 2019-12-03 | International Business Machines Corporation | Saving/restoring guarded storage controls in a virtualized environment |
US10452288B2 (en) | 2017-01-19 | 2019-10-22 | International Business Machines Corporation | Identifying processor attributes based on detecting a guarded storage event |
US10282129B1 (en) * | 2017-10-24 | 2019-05-07 | Bottomline Technologies (De), Inc. | Tenant aware, variable length, deduplication of stored data |
US20220121454A1 (en) * | 2019-04-15 | 2022-04-21 | Hewlett-Packard Development Company, L.P. | Configuration device |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050257048A1 (en) * | 2004-04-23 | 2005-11-17 | Microsoft Corporation | Fire locker and mechanisms for providing and using same |
US20070005935A1 (en) * | 2005-06-30 | 2007-01-04 | Khosravi Hormuzd M | Method and apparatus for securing and validating paged memory system |
CN101715575A (zh) * | 2006-12-06 | 2010-05-26 | 弗森多系统公司(dba弗森-艾奥) | 采用数据管道管理数据的装置、系统和方法 |
TW201403322A (zh) * | 2007-01-26 | 2014-01-16 | Hicamp Systems Inc | 階層式不可改變的內容可定址的記憶體處理器 |
TW201413454A (zh) * | 2012-06-15 | 2014-04-01 | Ibm | 比較及取代動態位址轉譯表項 |
CN103827818A (zh) * | 2011-09-30 | 2014-05-28 | 高通股份有限公司 | Fifo加载指令 |
TW201447581A (zh) * | 2010-03-29 | 2014-12-16 | Via Tech Inc | 預取單元、資料預取方法以及電腦程式產品 |
TW201523249A (zh) * | 2013-08-16 | 2015-06-16 | Lsi Corp | 可變大小快閃轉變層 |
US20170004078A1 (en) * | 2015-06-30 | 2017-01-05 | International Business Machines Corporation | Garbage collection handler to update object pointers |
Family Cites Families (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3430202A (en) * | 1964-10-07 | 1969-02-25 | Bell Telephone Labor Inc | Data processor utilizing combined order instructions |
NL134954C (zh) | 1964-10-07 | |||
JPS6393055A (ja) * | 1986-10-07 | 1988-04-23 | Fujitsu Ltd | 実時間型ガ−ベジコレクシヨン支援装置 |
US4814976C1 (en) * | 1986-12-23 | 2002-06-04 | Mips Tech Inc | Risc computer with unaligned reference handling and method for the same |
US7447069B1 (en) | 1989-04-13 | 2008-11-04 | Sandisk Corporation | Flash EEprom system |
US5574936A (en) | 1992-01-02 | 1996-11-12 | Amdahl Corporation | Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system |
US5644752A (en) | 1994-06-29 | 1997-07-01 | Exponential Technology, Inc. | Combined store queue for a master-slave cache system |
US6317872B1 (en) | 1997-07-11 | 2001-11-13 | Rockwell Collins, Inc. | Real time processor optimized for executing JAVA programs |
DE19836347C2 (de) | 1998-08-11 | 2001-11-15 | Ericsson Telefon Ab L M | Fehlertolerantes Computersystem |
US20040158695A1 (en) | 1999-05-03 | 2004-08-12 | Laurent Ugen | Method and apparatus for handling transfer of guarded instructions in a computer system |
US7197585B2 (en) | 2002-09-30 | 2007-03-27 | International Business Machines Corporation | Method and apparatus for managing the execution of a broadcast instruction on a guest processor |
US7043505B1 (en) | 2003-01-28 | 2006-05-09 | Unisys Corporation | Method variation for collecting stability data from proprietary systems |
US7240176B2 (en) | 2004-05-01 | 2007-07-03 | Intel Corporation | Apparatus and methods for placing a managed heap |
US8452938B1 (en) | 2004-12-30 | 2013-05-28 | Azul Systems, Inc. | Garbage collection with memory quick release |
US7212440B2 (en) | 2004-12-30 | 2007-05-01 | Sandisk Corporation | On-chip data grouping and alignment |
US7555506B2 (en) | 2005-04-05 | 2009-06-30 | Microsoft Corporation | Partial deserialization of complex type objects |
US20070011441A1 (en) | 2005-07-08 | 2007-01-11 | International Business Machines Corporation | Method and system for data-driven runtime alignment operation |
US7395407B2 (en) | 2005-10-14 | 2008-07-01 | International Business Machines Corporation | Mechanisms and methods for using data access patterns |
US7590806B2 (en) | 2005-12-07 | 2009-09-15 | Microsoft Corporation | Filtering of transactional memory operations using associative tables |
US8364910B2 (en) | 2007-03-08 | 2013-01-29 | Daniel Shawcross Wilkerson | Hard object: hardware protection for software objects |
US9095802B2 (en) | 2007-05-10 | 2015-08-04 | The Baker Company | Biosafety cabinets with air filters accessible through the work chamber |
US8078827B2 (en) | 2007-07-05 | 2011-12-13 | International Business Machines Corporation | Method and apparatus for caching of page translations for virtual machines |
US8327084B2 (en) | 2007-08-30 | 2012-12-04 | International Business Machines Corporation | Method and apparatus to trigger synchronization and validation actions upon memory access |
US8261265B2 (en) | 2007-10-30 | 2012-09-04 | Vmware, Inc. | Transparent VMM-assisted user-mode execution control transfer |
EP2232361A1 (en) * | 2007-12-05 | 2010-09-29 | Sandbridge Technologies, Inc. | Method and instruction set including register shifts and rotates for data processing |
US8041923B2 (en) | 2008-01-11 | 2011-10-18 | International Business Machines Corporation | Load page table entry address instruction execution based on an address translation format control field |
US8176280B2 (en) | 2008-02-25 | 2012-05-08 | International Business Machines Corporation | Use of test protection instruction in computing environments that support pageable guests |
US8086811B2 (en) | 2008-02-25 | 2011-12-27 | International Business Machines Corporation | Optimizations of a perform frame management function issued by pageable guests |
US9372718B2 (en) | 2008-07-28 | 2016-06-21 | Advanced Micro Devices, Inc. | Virtualizable advanced synchronization facility |
US8578483B2 (en) | 2008-07-31 | 2013-11-05 | Carnegie Mellon University | Systems and methods for preventing unauthorized modification of an operating system |
CN101661796B (zh) * | 2008-08-25 | 2012-02-29 | 北京兆易创新科技有限公司 | 一种非易失性存储器及其数据保护方法 |
US8250331B2 (en) | 2009-06-26 | 2012-08-21 | Microsoft Corporation | Operating system virtual memory management for hardware transactional memory |
US8402218B2 (en) | 2009-12-15 | 2013-03-19 | Microsoft Corporation | Efficient garbage collection and exception handling in a hardware accelerated transactional memory system |
KR101639672B1 (ko) | 2010-01-05 | 2016-07-15 | 삼성전자주식회사 | 무한 트랜잭션 메모리 시스템 및 그 동작 방법 |
KR20110102734A (ko) | 2010-03-11 | 2011-09-19 | 삼성전자주식회사 | 오티피 록 비트 레지스터를 구비한 불휘발성 반도체 메모리 장치 |
CN102236609B (zh) * | 2010-04-29 | 2015-09-30 | 深圳市朗科科技股份有限公司 | 存储设备及其访问方法 |
GB2482710A (en) | 2010-08-12 | 2012-02-15 | Advanced Risc Mach Ltd | Enabling stack access alignment checking independently of other memory access alignment checking |
GB2498484A (en) | 2010-10-20 | 2013-07-17 | Ibm | Method for detecting access of an object, computer thereof, and computer program |
KR101724590B1 (ko) | 2011-01-31 | 2017-04-11 | 삼성전자주식회사 | 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법 |
US8656139B2 (en) * | 2011-03-11 | 2014-02-18 | Telefonaktiebolaget L M Ericsson (Publ) | Digital processor for processing long and short pointers and converting each between a common format |
EP2549376B1 (en) * | 2011-07-22 | 2019-03-13 | Telefonaktiebolaget LM Ericsson (publ) | Method and apparatus for branch prediction. |
JP2013033412A (ja) | 2011-08-03 | 2013-02-14 | Internatl Business Mach Corp <Ibm> | メモリ管理方法、プログラム及びシステム |
US20130326192A1 (en) | 2011-12-22 | 2013-12-05 | Elmoustapha Ould-Ahmed-Vall | Broadcast operation on mask register |
WO2013101191A1 (en) | 2011-12-30 | 2013-07-04 | Intel Corporation | Virtual machine control structure shadowing |
US9483268B2 (en) | 2012-03-16 | 2016-11-01 | International Business Machines Corporation | Hardware based run-time instrumentation facility for managed run-times |
US9442824B2 (en) | 2012-03-16 | 2016-09-13 | International Business Machines Corporation | Transformation of a program-event-recording event into a run-time instrumentation event |
US9280447B2 (en) | 2012-03-16 | 2016-03-08 | International Business Machines Corporation | Modifying run-time-instrumentation controls from a lesser-privileged state |
US8583920B1 (en) | 2012-04-25 | 2013-11-12 | Citrix Systems, Inc. | Secure administration of virtual machines |
US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
US9262320B2 (en) | 2012-06-15 | 2016-02-16 | International Business Machines Corporation | Tracking transactional execution footprint |
US9311101B2 (en) | 2012-06-15 | 2016-04-12 | International Business Machines Corporation | Intra-instructional transaction abort handling |
US8880959B2 (en) | 2012-06-15 | 2014-11-04 | International Business Machines Corporation | Transaction diagnostic block |
US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
US9424896B2 (en) | 2012-06-22 | 2016-08-23 | Nxp B.V. | Method and system for fast initialization of a memory unit |
CN104468150A (zh) | 2013-09-12 | 2015-03-25 | 阿里巴巴集团控股有限公司 | 一种虚拟主机实现故障迁移的方法及虚拟主机业务装置 |
US9329890B2 (en) | 2013-09-26 | 2016-05-03 | Globalfoundries Inc. | Managing high-coherence-miss cache lines in multi-processor computing environments |
US20150113240A1 (en) | 2013-10-17 | 2015-04-23 | International Business Machines Corporation | Restricting access to sensitive data in system memory dumps |
EP3084615B1 (en) | 2013-12-17 | 2020-06-24 | Intel Corporation | Detection of unauthorized memory modification and access using transactional memory |
US20150178078A1 (en) | 2013-12-21 | 2015-06-25 | H. Peter Anvin | Instructions and logic to provide base register swap status verification functionality |
US9582295B2 (en) | 2014-03-18 | 2017-02-28 | International Business Machines Corporation | Architectural mode configuration |
US9772867B2 (en) | 2014-03-27 | 2017-09-26 | International Business Machines Corporation | Control area for managing multiple threads in a computer |
US20150278123A1 (en) | 2014-03-28 | 2015-10-01 | Alex Nayshtut | Low-overhead detection of unauthorized memory modification using transactional memory |
US9483295B2 (en) | 2014-03-31 | 2016-11-01 | International Business Machines Corporation | Transparent dynamic code optimization |
CN105993003B (zh) | 2014-07-21 | 2019-04-09 | 上海兆芯集成电路有限公司 | 转译后备缓冲器、操作转译后备缓冲器的方法以及处理器 |
US9749448B2 (en) | 2014-11-25 | 2017-08-29 | Intel Corporation | Header parity error handling |
US20160299712A1 (en) | 2015-04-07 | 2016-10-13 | Microsoft Technology Licensing, Llc | Virtual Machines Backed by Host Virtual Memory |
US9665373B2 (en) | 2015-06-26 | 2017-05-30 | Intel Corporation | Protecting confidential data with transactional processing in execute-only memory |
US10176093B2 (en) | 2015-06-30 | 2019-01-08 | International Business Machines Corporation | Pauseless location and object handle based garbage collection |
US9734052B2 (en) | 2015-06-30 | 2017-08-15 | International Business Machines Corporation | Multi-section garbage collection |
US10083113B2 (en) | 2015-07-27 | 2018-09-25 | International Business Machines Corporation | Scheme for determining data object usage in a memory region |
US10223257B2 (en) | 2015-07-27 | 2019-03-05 | International Business Machines Corporation | Multi-section garbage collection |
US9747204B2 (en) | 2015-12-17 | 2017-08-29 | International Business Machines Corporation | Multi-section garbage collection system including shared performance monitor register |
US9747203B2 (en) | 2015-12-18 | 2017-08-29 | International Business Machines Corporation | Multi-section garbage collection system including multi-use source register |
US10496292B2 (en) | 2017-01-19 | 2019-12-03 | International Business Machines Corporation | Saving/restoring guarded storage controls in a virtualized environment |
US10579377B2 (en) | 2017-01-19 | 2020-03-03 | International Business Machines Corporation | Guarded storage event handling during transactional execution |
US10452288B2 (en) | 2017-01-19 | 2019-10-22 | International Business Machines Corporation | Identifying processor attributes based on detecting a guarded storage event |
US10732858B2 (en) | 2017-01-19 | 2020-08-04 | International Business Machines Corporation | Loading and storing controls regulating the operation of a guarded storage facility |
US10496311B2 (en) | 2017-01-19 | 2019-12-03 | International Business Machines Corporation | Run-time instrumentation of guarded storage event processing |
-
2017
- 2017-01-19 US US15/409,684 patent/US10725685B2/en active Active
-
2018
- 2018-01-03 AU AU2018209038A patent/AU2018209038B2/en active Active
- 2018-01-03 KR KR1020197023704A patent/KR102296994B1/ko active IP Right Grant
- 2018-01-03 ES ES18700180T patent/ES2893925T3/es active Active
- 2018-01-03 RU RU2019109551A patent/RU2731327C1/ru active
- 2018-01-03 DK DK18700180.5T patent/DK3571580T5/da active
- 2018-01-03 LT LTEPPCT/EP2018/050137T patent/LT3571580T/lt unknown
- 2018-01-03 SI SI201830425T patent/SI3571580T1/sl unknown
- 2018-01-03 HU HUE18700180A patent/HUE056632T2/hu unknown
- 2018-01-03 CN CN201880007405.4A patent/CN110199259B/zh active Active
- 2018-01-03 EP EP18700180.5A patent/EP3571580B1/en active Active
- 2018-01-03 PT PT18700180T patent/PT3571580T/pt unknown
- 2018-01-03 PL PL18700180T patent/PL3571580T3/pl unknown
- 2018-01-03 WO PCT/EP2018/050137 patent/WO2018134049A1/en unknown
- 2018-01-03 JP JP2019537802A patent/JP6909298B2/ja active Active
- 2018-01-09 TW TW107100722A patent/TWI701551B/zh active
-
2019
- 2019-06-10 IL IL267180A patent/IL267180B/en unknown
- 2019-07-31 ZA ZA2019/05099A patent/ZA201905099B/en unknown
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050257048A1 (en) * | 2004-04-23 | 2005-11-17 | Microsoft Corporation | Fire locker and mechanisms for providing and using same |
US20070005935A1 (en) * | 2005-06-30 | 2007-01-04 | Khosravi Hormuzd M | Method and apparatus for securing and validating paged memory system |
CN101715575A (zh) * | 2006-12-06 | 2010-05-26 | 弗森多系统公司(dba弗森-艾奥) | 采用数据管道管理数据的装置、系统和方法 |
CN103049058A (zh) * | 2006-12-06 | 2013-04-17 | 弗森-艾奥公司 | 使用空数据令牌指令管理存储设备中的数据的装置、系统和方法 |
TW201403322A (zh) * | 2007-01-26 | 2014-01-16 | Hicamp Systems Inc | 階層式不可改變的內容可定址的記憶體處理器 |
TW201447581A (zh) * | 2010-03-29 | 2014-12-16 | Via Tech Inc | 預取單元、資料預取方法以及電腦程式產品 |
CN103827818A (zh) * | 2011-09-30 | 2014-05-28 | 高通股份有限公司 | Fifo加载指令 |
TW201413454A (zh) * | 2012-06-15 | 2014-04-01 | Ibm | 比較及取代動態位址轉譯表項 |
TW201523249A (zh) * | 2013-08-16 | 2015-06-16 | Lsi Corp | 可變大小快閃轉變層 |
US20170004078A1 (en) * | 2015-06-30 | 2017-01-05 | International Business Machines Corporation | Garbage collection handler to update object pointers |
Also Published As
Publication number | Publication date |
---|---|
CN110199259A (zh) | 2019-09-03 |
PT3571580T (pt) | 2021-10-04 |
US10725685B2 (en) | 2020-07-28 |
SI3571580T1 (sl) | 2021-11-30 |
CN110199259B (zh) | 2023-04-25 |
ZA201905099B (en) | 2022-04-28 |
PL3571580T3 (pl) | 2021-12-27 |
EP3571580A1 (en) | 2019-11-27 |
HUE056632T2 (hu) | 2022-02-28 |
AU2018209038B2 (en) | 2020-10-08 |
JP2020505684A (ja) | 2020-02-20 |
RU2731327C1 (ru) | 2020-09-01 |
IL267180B (en) | 2021-09-30 |
WO2018134049A1 (en) | 2018-07-26 |
IL267180A (en) | 2019-08-29 |
US20180203634A1 (en) | 2018-07-19 |
DK3571580T5 (da) | 2021-11-08 |
LT3571580T (lt) | 2021-10-25 |
AU2018209038A1 (en) | 2019-06-13 |
EP3571580B1 (en) | 2021-09-15 |
KR102296994B1 (ko) | 2021-09-01 |
TW201832083A (zh) | 2018-09-01 |
ES2893925T3 (es) | 2022-02-10 |
DK3571580T3 (da) | 2021-10-18 |
JP6909298B2 (ja) | 2021-07-28 |
KR20190102283A (ko) | 2019-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI701551B (zh) | 用於於虛擬化環境中保存/復原受防護之儲存器控制之電腦程式產品、電腦實施方法及電腦系統 | |
TWI651955B (zh) | 用於基於偵測受防護儲存器事件以識別處理器屬性之電腦程式產品、電腦系統及電腦實施方法 | |
CN110199258B (zh) | 促进计算环境中的处理的计算机实现的方法和计算机系统 | |
TWI653534B (zh) | 用於受防護儲存器事件處理之執行時期檢測之電腦程式產品、電腦系統及電腦實施方法 | |
TWI668568B (zh) | 用於管制受防護儲存器設施之操作之載入及儲存控制之電腦程式產品、電腦系統及電腦實施方法 | |
CN110235109B (zh) | 在虚拟环境中存储/重新存储受保护存储控制 |