TW201351288A - 藉由程式對警告追蹤中斷設備之使用 - Google Patents
藉由程式對警告追蹤中斷設備之使用 Download PDFInfo
- Publication number
- TW201351288A TW201351288A TW102100974A TW102100974A TW201351288A TW 201351288 A TW201351288 A TW 201351288A TW 102100974 A TW102100974 A TW 102100974A TW 102100974 A TW102100974 A TW 102100974A TW 201351288 A TW201351288 A TW 201351288A
- Authority
- TW
- Taiwan
- Prior art keywords
- program
- warning tracking
- host
- cpu
- warning
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
- Storage Device Security (AREA)
- Alarm Systems (AREA)
Abstract
向一程式(例如,一作業系統)提供具有一寬容週期的一警告,在該寬容週期中,執行諸如清理之一功能(例如,完成、停止及/或移動一可分派單元)。在一實例中,向該程式警告其正失去對其共用資源的存取。舉例而言,在一虛擬環境中,向一客體程式警告:其將失去其中央處理單元資源,且因此,其將執行諸如清理之一功能。
Description
本發明之一態樣大體上係關於計算環境內之處理,且詳言之,係關於促進與共用資源相關聯的處理。
資源共用之一種類型之環境為虛擬環境,該虛擬環境包括主機中央處理單元(CPU)及一或多個客體中央處理單元。由在主機CPU上執行之主機程式(例如,主機作業系統)來佈建客體CPU(亦稱為虛擬CPU)。主機程式執行動作以自基礎主機組態分配資源並將彼等資源指派給客體CPU。
在一特定實施例中,當主機CPU進入解譯執行模式時,存在客體CPU。在此點處,客體作業系統(本文中亦稱作客體程式)開始虛擬化CPU上的執行,同時主機程式暫時中止主機CPU上之執行。在解譯執行模式結束時,主機程式繼續執行CPU上之執行。連結技術存在於主機與客體之間,主機及客體狀態藉由該等連結技術而得以保存及恢復。通常,當主機程式啟動客體程式時,主機程式暫時中止,直至客體程式返回為止。客體CPU與主機CPU兩者係一個主機CPU之不同模式。
主機組態通常包括電腦系統之所有資源。此等資源包括(但不限於)中央處理單元(CPU)、主記憶體及輸入/輸出(I/O)器件。在此系統
中,多個客體CPU可由一單一主機CPU來支援。此情形藉由以下操作來實現:為每一客體CPU指派稱作時間配量(timeslice)之一時間週期以使用主機CPU,及接著將主CPU移動至另一客體CPU達一時間配量,等等。主機CPU可支援之客體CPU的數目根據主機CPU之能力及待指派給每一客體CPU之所要能力而變化。
客體組態通常由兩個或兩個以上客體CPU形成,且被稱作客體多處理(MP)組態。可藉由一單獨主機CPU之共用或甚至藉由共用一單一主機CPU來佈建每一客體CPU。此共用之一屬性在於:客體CPU可操作達稱作時間配量之時間週期,且接著為非作用中的達某一任意時間週期。非作用中週期基於以下各者而變化:由系統建立之優先權策略、將共用主機CPU之客體CPU的總數,及正使用之特定共用技術。
在此客體多處理系統中,可由客體CPU上之客體作業系統來分派有時稱作可分派單元(DU)之程式,且接著在彼可分派單元之執行期間,彼可分派單元之主機時間配量期滿。此情形可使可分派單元處於以下狀況下:使得可分派單元無法在客體多處理組態之任何其他客體CPU上繼續,而不管任何其他客體CPU的可用性。確切而言,可分派單元必須等待唯一客體CPU以接收其下一時間配量以便繼續。基於共用技術及客體組態之相對優先權,可使下一時間配量延遲達相當的時間週期。即使客體組態具有能夠執行可分派單元之其他客體CPU,可分派單元之繼續亦係不可能的(歸因於在先前時間配量期滿時保存的可分派單元之客體CPU的狀態)。可分派單元係非作用中的,直至彼精確狀態可用以使客體CPU繼續為止。
經由提供一種用於促進一計算環境中之處理的電腦程式產品來克服先前技術之缺點且提供優點。該電腦程式產品包括一電腦可讀儲存媒體,該電腦可讀儲存媒體可由一處理電路讀取且儲存指令以供該
處理電路執行以用於執行一方法。該方法包括(例如):由一程式獲得一警告追蹤設施已安裝於該計算環境內的一指示,該警告追蹤設施將一警告追蹤寬容週期提供給該程式以執行一功能;由該程式接收一警告追蹤通知,該警告追蹤通知指示該警告追蹤寬容週期已開始;及基於該警告追蹤通知,由該程式在該警告追蹤寬容週期內至少起始該功能。
本文中亦描述且主張與本發明之一或多項態樣有關的方法及系統。另外,本文中亦描述且可主張與本發明之一或多項態樣有關的服務。
經由本發明之技術來實現額外特徵及優點。本發明之其他實施例及態樣在本文中加以詳細描述且被視為所主張之本發明的一部分。
100‧‧‧計算環境
102‧‧‧處理器
104‧‧‧共用資源
200‧‧‧計算環境
202‧‧‧中央處理器複合體(CPC)
204‧‧‧虛擬機
206‧‧‧中央處理器
208‧‧‧主機
210‧‧‧輸入/輸出子系統
212‧‧‧客體作業系統
300‧‧‧模擬主機電腦系統
302‧‧‧主機電腦
304‧‧‧主機處理器(CPU)
306‧‧‧模擬處理器
308‧‧‧記憶體
310‧‧‧主機電腦記憶體部分
312‧‧‧模擬常式部分
314‧‧‧主機/超管理器
316‧‧‧虛擬機
318‧‧‧客體作業系統
1000‧‧‧診斷指令
1002‧‧‧作業碼
1004‧‧‧第一暫存器欄位(R1)
1006‧‧‧第二暫存器欄位(R3)
1008‧‧‧通用暫存器欄位(B2)
1010‧‧‧移位欄位(D2)
1100‧‧‧電腦程式產品
1102‧‧‧非暫時性電腦可讀儲存媒體
1104‧‧‧電腦可讀程式碼構件/邏輯
5000‧‧‧主機電腦系統
5000'‧‧‧主機電腦系統
5001‧‧‧中央處理單元(CPU)
5002‧‧‧電腦記憶體/中央儲存器
5003‧‧‧動態位址轉譯(DAT)
5004‧‧‧指令提取單元
5005‧‧‧載入/儲存單元
5006‧‧‧指令解碼單元
5007‧‧‧轉譯後備緩衝器(TLB)
5008‧‧‧執行單元
5009‧‧‧快取記憶體
5010‧‧‧網路
5011‧‧‧儲存媒體器件
5020‧‧‧系統
5021‧‧‧基礎電腦系統
5022‧‧‧顯示器件
5023‧‧‧滑鼠
5024‧‧‧鍵盤
5025‧‧‧記憶體/主儲存器
5026‧‧‧處理器
5027‧‧‧長期儲存器
5028‧‧‧通信
5029‧‧‧網路
5030‧‧‧印表機/掃描儀
5032‧‧‧應用程式
5040‧‧‧資料處理網路
5041‧‧‧工作站
5042‧‧‧工作站
5043‧‧‧工作站
5044‧‧‧工作站
5045‧‧‧工作站
5046‧‧‧閘道器電腦/用戶端伺服器
5047‧‧‧網際網路
5048‧‧‧遠端伺服器
5050‧‧‧使用者
5051‧‧‧使用者
5053‧‧‧快取記憶體
5054‧‧‧I/O單元
5055‧‧‧指令提取單元
5056‧‧‧解碼/分派單元
5057‧‧‧執行單元
5058‧‧‧分支單元
5059‧‧‧通用暫存器
5060‧‧‧載入儲存單元
5061‧‧‧程式計數器/指令計數器
5065‧‧‧其他處理器單元
5066‧‧‧算術邏輯單元(ALU)
5067‧‧‧暫存器電路
5068‧‧‧暫存器電路
5069‧‧‧暫存器電路
5070‧‧‧輸出暫存器電路
5071‧‧‧介接邏輯
5072‧‧‧設施
5073‧‧‧其他電路
5074‧‧‧算術邏輯單元(ALU)
5075‧‧‧輸入暫存器電路
5076‧‧‧輸入暫存器電路
5077‧‧‧輸入暫存器電路
5080‧‧‧輸出暫存器電路
5082‧‧‧分支歷史表
5083‧‧‧其他元件
5085‧‧‧算術邏輯單元(ALU)
5090‧‧‧控制邏輯
5091‧‧‧主機處理器(CPU)
5092‧‧‧模擬主機電腦系統
5093‧‧‧模擬處理器
5094‧‧‧記憶體
5096‧‧‧主機電腦記憶體
5097‧‧‧模擬常式
特別指出本發明之一或多項態樣,且在說明書完結時於申請專利範圍中作為實例清楚地主張本發明之一或多項態樣。本發明之前述內容及目標、特徵及優點自以下結合隨附圖式進行之詳細描述而顯而易見。
圖1描繪併有且使用本發明之一或多項態樣之計算環境的一實施例;圖2描繪併有且使用本發明之一或多項態樣之計算環境的另一實施例;圖3描繪併有且使用本發明之一或多項態樣之計算環境的又一實施例;圖4描繪根據本發明之態樣的與警告追蹤中斷設施之客體觀測相關聯之邏輯的一實施例;圖5描繪根據本發明之態樣的與警告追蹤中斷設施之主機觀測相關聯之邏輯的一實施例;
圖6描繪根據本發明之態樣的與處置客體退出之主機相關聯之邏輯的一實施例;圖7描繪根據本發明之態樣的警告追蹤中斷設施邏輯之概述的一實施例;圖8A至圖8C描繪根據本發明之態樣的與警告追蹤中斷設施處理相關聯之邏輯的實施例;圖9描繪根據本發明之態樣的與接收警告追蹤中斷相關聯之邏輯的一實施例;圖10描繪根據本發明之態樣的所使用之診斷指令之格式的一實施例;圖11描繪併有本發明之一或多項態樣之電腦程式產品的一實施例;圖12描繪併有且使用本發明之一或多項態樣之主機電腦系統的一實施例;圖13描繪併有且使用本發明之一或多項態樣之電腦系統的另一實例;圖14描繪併有且使用本發明之一或多項態樣的包含電腦網路之電腦系統的另一實例;圖15描繪併有且使用本發明之一或多項態樣的電腦系統之各種元件的一實施例;圖16A描繪併有且使用本發明之一或多項態樣的圖15之電腦系統之執行單元的一實施例;圖16B描繪併有且使用本發明之一或多項態樣的圖15之電腦系統之分支單元的一實施例;圖16C描繪併有且使用本發明之一或多項態樣的圖15之電腦系統之載入/儲存單元的一實施例;及
圖17描繪併有且使用本發明之一或多項態樣的模擬主機電腦系統之一實施例。
根據本發明之態樣,提供用於向程式(例如,作業系統)警告其具有執行一功能之一寬容週期的能力。舉例而言,對程式給予一寬容週期以執行清理(例如,完成、停止及/或移動可分派單元)。
根據本發明之另一態樣,向程式及/或處理器警告其將失去對資源(例如,共用資源)之存取。舉例而言,將如下警告提供給與其他處理器共用資源的處理器:該處理器將失去對資源之存取。作為另一實例,在共用處理器上執行之諸如作業系統的程式(亦即,程式與其他程式共用處理器)警告其將失去其處理器資源。
在一特定實施例中,提供如下能力:向在由主機CPU佈建之客體CPU上執行的客體程式提供:關於自主機CPU給予客體CPU之時間配量的期滿的警告;或關於主機對客體之時間配量之優先執行的警告。該警告提供一寬容週期,客體CPU可使用該寬容週期來執行特定功能,諸如完成可分派單元之執行、在可分派單元為可重新分派的點停止可分派單元及/或將可分派單元移動至另一客體CPU。
如本文中所使用,作為實例,寬容週期包括時間量、指令之數目、循環之數目等。寬容週期具有可執行一或多個功能之預定持續時間。
參看圖1來描述併有且使用本發明之一或多項態樣之計算環境的一實施例。在此特定實施例中,計算環境100包括共用資源104之複數個處理器102。對每一處理器(及/或在處理器上執行之諸如作業系統的程式)給予稱作時間配量之某一時間量以共用資源。作為實例,資源包括中央處理單元資源、記憶體、輸入/輸出器件或介面,及/或其他資源。向能夠存取資源之處理器(或在處理器上執行之程式)警告處
理器之存取將結束,且因此,處理器(或程式)將執行特定動作,諸如清理、完成工作單元、停止工作單元、移動工作單元等。
參看圖2來描述併有且使用本發明之一或多項態樣之計算環境200的另一實施例。計算環境200係基於(例如)由International Business Machines Corporation(IBM®)(Armonk,New York)供應之z/Architecture®。z/Architecture®描述於2010年8月之題為「z/Architecture Principles of Operation」之IBM®公開案(IBM®公開案第SA22-7832-08號第九版本)中,該案藉此以全文引用的方式併入本文中。在一實例中,基於z/Architecture®之計算環境包括由International Business Machines Corporation(Armonk,New York)供應的System z®伺服器。IBM®、z/Architecture®及zSeries®以及下文提及之z/VM®及z/OS®為International Business Machines Corporation(Armonk,New York,USA)的註冊商標。本文中所使用之其他名稱可為International Business Machines Corporation或其他公司之註冊商標、商標或產品名稱。
作為一實例,計算環境200包括提供虛擬機支援之中央處理器複合體(central processor complex,CPC)202。CPC 202包括(例如)一或多個虛擬機204(或在另一實施例中,邏輯分割區)、一或多個中央處理器206、至少一主機208(例如,諸如超管理器之控制程式)及輸入/輸出子系統210,下文描述前述各者中之每一者。在此實例中,虛擬機及主機包括於記憶體中。
作為實例,CPC之虛擬機支援提供操作大量虛擬機之能力,該等虛擬機各自能夠主控諸如z/VM®、z/OS®或Linux的一客體作業系統212。每一虛擬機204能夠作為單獨系統起作用。亦即,每一虛擬機可經獨立地重設,主控客體作業系統,並以不同程式操作。在虛擬機中執行之作業系統或應用程式顯現為能夠存取完全且完整系統,但實際
上,僅系統之一部分為可用的。
CPC之實體資源(例如,CPU、記憶體、I/O器件等)由主機208擁有,且共用實體資源由主機按需要分派給客體作業系統以滿足客體作業系統的處理需求。客體作業系統與實體共用機器資源之間的互動由主機控制,此係由於大量客體通常阻止主機簡單地分割硬體資源並將硬體資源指派給經組態之客體。
中央處理器206為可指派給虛擬機之實體處理器資源。舉例而言,虛擬機204包括一或多個邏輯處理器,該等邏輯處理器中之每一者表示可經動態地分配給虛擬機之實體處理器資源206的全部或一共用。虛擬機204由主機208管理。作為實例,主機可以在處理器206上執行之微碼來實施,或可為在機器上執行之主機作業系統的一部分。在一實例中,主機208為由International Business Machines Corporation(Armonk,New York)供應之處理器資源/系統管理器(PR/SM)。
輸入/輸出子系統210指導在器件與主儲存器之間的資訊之流動。輸入/輸出子系統210耦接至中央處理複合體,就此而言,輸入/輸出子系統210可為中央處理複合體之部分或與中央處理複合體分離。I/O子系統減輕中央處理器關於與耦接至CPC之I/O器件直接通信之任務,且准許資料處理與I/O處理同時進行。
在一實施例中,主機(例如,PR/SM)及處理器(例如,System z®)硬體/韌體以受控合作方式彼此互動,以便處理客體作業系統操作而不需要自/至客體作業系統及主機之控制之傳送。可在無主機干預情況下經由允許針對客體解譯地執行指令之設施直接執行客體操作。此設施提供主機可發出之指令「啟動解譯執行(SIE)」,該指令指明保持客體(虛擬機)狀態及控制之稱作狀態描述的控制區塊。該指令將CPU置於直接處理客體指令及中斷之解譯執行模式,直至出現需要主機關
注之條件為止。當發生此條件時,解譯執行結束,且呈現主機中斷,或SIE指令完成儲存所遭遇之條件的細節;此後一動作被稱作攔截。解譯執行之一實例描述於1985年9月之「System/370 Extended Architecture/Interpretive Execution」(IBM公開案第SA22-7095-01號)中,該案藉此以全文引用之方式併入本文中。
如本文中所使用,韌體包括(例如)處理器之微碼、毫碼(millicode)及/或巨集碼。韌體包括(例如)用於較高層級機器碼之實施方案中的硬體層級之指令及/或資料結構。在一實施例中,韌體包括(例如)專屬碼,專屬碼通常作為包括信賴軟體之微碼或基礎硬體特定之微碼而遞送且控制對系統硬體之作業系統存取。
在圖3中描繪併有本發明之一或多項態樣之計算環境的另一實例。在此實例中,提供模擬主機電腦系統300,模擬主機電腦系統300模擬主機架構之主機電腦302。在模擬主機電腦系統300中,主機處理器(CPU)304為模擬主機處理器(或虛擬主機處理器),且經由具有不同於供主機電腦302之處理器使用之原生指令集架構的原生指令集架構之模擬處理器306來實現。模擬主機電腦系統300具有模擬處理器306可存取的記憶體308。在實例實施例中,記憶體308經分割成主機電腦記憶體部分310及模擬常式部分312。主機電腦記憶體310可用於根據主機電腦架構之模擬主機電腦302之程式,且可包括主機或超管理器314與執行客體作業系統318之一或多個虛擬機316兩者(類似於圖2中之類似命名之元件)。
模擬處理器306執行不同於模擬處理器304之架構的架構之經建構指令集的原生指令。(例如)自模擬常式記憶體312獲得原生指令。模擬處理器306可藉由使用在序列與存取/解碼常式中獲得之一或多個指令來自主機電腦記憶體310中的程式存取用於執行之主機指令,該序列與存取/解碼常式可解碼所存取之主機指令以判定用於模擬所存
取之主機指令之功能的原生指令執行常式。一個此主機指令可為(例如)「啟動解譯執行(SIE)」指令,主機藉由該指令而設法在虛擬機中執行客體程式。模擬常式312可包括對此指令之支援,且用於根據此SIE指令之定義執行虛擬機316中之一序列客體指令。
作為實例,針對主機電腦系統302之架構定義之其他設施可藉由經建構之設施常式來模擬,包括諸如通用暫存器、控制暫存器、動態位址轉譯及I/O子系統支援及處理器快取記憶體的設施。模擬常式亦可利用模擬處理器306中可用之功能(諸如,通用暫存器及虛擬位址之動態轉譯)以改良模擬常式的效能。亦可提供專用硬體及卸載引擎以輔助處理器306模擬主機電腦302之功能。
根據本發明之態樣,提供可用於許多類型之計算環境中的警告追蹤中斷設施。儘管警告追蹤中斷設施可用於許多類型之環境中,但本文中參看客體多處理系統來描述設施之態樣。如上文所描述,在客體多處理系統中,客體作業系統在客體中央處理單元上分派可分派單元(例如,程式、程式碼等),該等客體中央處理單元由至少一主機中央處理單元來主控。主機CPU為客體CPU提供一時間配量(例如,時間量或其他週期,諸如指令之數目、循環之數目等),可分派單元在該時間配量期間執行。若在可分派單元之執行期間,時間配量期滿,則可使得可分派單元處於以下狀況:使得其無法在客體多處理組態之任何其他客體CPU上繼續,而不管任何其他客體CPU的可用性。確切而言,可分派單元必須等待唯一的客體CPU來接收其下一時間配量以便繼續。基於所使用之特定共用技術及客體組態之相對優先權,可使下一時間配量延遲達相當的時間週期。即使客體組態具有能夠執行可分派單元之其他客體CPU,可分派單元之繼續亦係不可能的(歸因於在先前時間配量期滿時保存的可分派單元之客體CPU的狀態)。可分派單元係非作用中的,直至彼精確狀態可用以繼續客體CPU為止。
有可能藉由授予額外時間(或其他額外週期,諸如額外指令、循環等)來延長時間配量,但即使藉由此額外時間,客體CPU可延長可分派單元之執行,而仍使可分派單元處於相同的不可分派狀況,此係由於將處於正常時間配量的期滿時間。
由於主機程式並不知曉供執行任意可分派單元之任意客體程式使用的控制及狀態,因此無法在不建立主機程式與客體程式之間的協定之情況下進行始終對客體作業系統授予額外時間以清理其可分派單元。在無協定之情況下,將在主處理中消耗對客體CPU授予之任何額外時間,且仍有可能以相同的可分派單元卡塞狀況結束。因此,根據本發明之態樣,提供此協定。
根據本發明之態樣,提供包括警告之寬容週期或延長時間,該警告向客體程式指示應採取特定動作(例如,完成可分派單元或使得可分派單元為可重新分派的)。作為實例,回應於時間配量之期滿或在時間配量期滿之前回應於主機優先執行客體而提供寬容週期,以便回收處理器以用於如主機可見之某一其他較高優先權,如本文中進一步詳細描述。
作為一實例,提供寬容週期而非無條件地延長時間配量。若正常時間配量已完全期滿,則提供寬容週期,但沖銷下一正常時間配量,以便對各自具有時間配量期望值之所有其他虛擬化客體維持公平。若正常時間配量尚未期滿,則寬容週期取自剩餘正常時間。總之,寬容週期限制給予客體CPU之剩餘時間(或其他週期),且自身為不可延長的。因此,客體CPU無法繼續執行達任意且未知週期。
在寬容週期之開始,出於清理可分派單元(例如,完成可分派單元、停止可分派單元及/或移動可分派單元)之目的而通知客體程式。寬容週期之強制執行確保:客體CPU不會超出授予之額外週期。藉以對客體程式給予寬容週期且向客體程式通知時間(或其他週期)幾乎期
滿(寬容週期已開始)的協定係客體程式與主機程式之間的協議,客體程式理解該協定,藉此使得此通知為值得的。亦即,客體程式通常將藉由在必要時使得當前可分派單元在客體組態之另一客體CPU上為可分派的(例如,移動可分派單元)來履行(honor)該通知。
下文參看圖4至圖10來描述關於協定及警告追蹤中斷設施(亦稱作警告追蹤或警告追蹤設施)的其他細節。參看彼等圖所描述之實施例係關於具有由一或多個主機佈建之一或多個客體的虛擬環境。然而,本發明之一或多項態樣亦係關於其他環境,包括多個處理器及/或多個程式共用資源的非虛擬環境。
參看圖4,描述關於如由客體觀測到之警告追蹤中斷設施協定的細節。如由客體觀測到之警告追蹤協定包括(例如)設施已安裝指示、客體註冊、通知及主動(voluntarily)退出,在下文中描述前述各者中之每一者。
參看圖4,客體程式理解警告追蹤協定且搜尋設施已安裝指示(步驟400)。在一實例中,此指示為儲存於控制區塊(例如,「服務呼叫控制區塊(SCCB)」)中之位元,該位元係使用諸如「讀取SCP資訊」命令之讀取命令來觀測。在判定設施已安裝之後,客體程式執行註冊(步驟402)。註冊係客體程式將關於客體程式理解警告追蹤中斷設施協定之指示傳達至主機程式的機制。在一實例中,使用診斷指令來執行註冊,下文進一步描述診斷指令之實例。
在一實施例中,自任何客體中央處理單元起始之註冊涵蓋多處理組態之所有客體中央處理單元,此係由於需要跨越客體多處理組態之客體CPU的一致行為。在客體多處理組態中,客體CPU使用相同主記憶體,且假定客體CPU在有時被稱作單一影像之影像中操作。因此,一客體CPU之註冊適用於多處理環境之其他客體CPU。在一實施例中,註冊為不可撤銷的,且此情形有助於避免計時窗,簡化開發且
允許改良之可測試性。即使註冊為不可撤銷的,客體程式亦可判定客體程式是否將繼續參與協定。若客體程式如此選擇,則藉由重設或已重設下文所描述之一或多個啟用指示符,客體程式不需要參與。
在針對警告追蹤協定註冊客體程式之後,可向客體CPU通知寬容週期(步驟404)。舉例而言,主機CPU可向客體CPU警告時間配量之期滿(或在另一實例中,迫近期滿)或其時間配量之優先執行。在一特定實例中,向已註冊客體組態之CPU通知(例如)其正常時間配量之期滿,及提供額外週期以(例如)進行清理之寬容週期的開始。
在被通知之後,客體具有受約束時間量或其他週期、寬容週期(例如,在一特定實施例中,為50微秒),以使得可分派單元為可重新分派的或進行任何其他適當調整。若正常時間配量已結束,則在(例如)將控制返回至主機之前,使用寬容週期以使得可分派單元為可重新分派的或進行任何其他適當調整。若時間配量尚未結束,則使用寬容週期,且放棄時間配量之任何剩餘部分。發生供客體CPU使用之實際時間的正常帳戶處理。
在作出通知之後,客體CPU處於受約束週期(例如,有限時間量),在該週期之後,非主動地結束客體CPU之操作。針對每一正常時間配量週期僅作出一個通知。因此,客體CPU仍受確保可在其他處共用基礎共用主機CPU的最終時間控制約束,藉此在藉由主機程式提供之總體虛擬化中保留良好次序及規則。
可藉由使得客體程式偵測到唯一狀態之任何機制來實現通知。實例包括唯一客體中斷、可經設定之架構上定義之主記憶體位置,或可用於主機與客體兩者之I/O外部記憶體器件。前述三者中之第一者需要適當客體啟用以允許中斷。後兩者需要不浪費寬容週期之足夠頻繁的週期性檢驗。在z/Architecture®之一特定實例中,稱作警告追蹤中斷(WTI)之客體中斷用作通知。
在被警告之後,客體主動地退出其給定時間配量/寬容週期(步驟406)。在被通知且使得可分派單元為可重新分派的(例如,停止可分派單元及移動可分派單元,或完成可分派單元)之後,客體結束當前時間配量/寬容週期。此退出用信號向主機程式通知:客體實際上遵循協定。可發生客體放棄控制因此返回至主機程式之其他原因。通常,對於使得可分派單元為可重新分派的之受約束處理,將不會發生針對任何此等外來退出之狀況。若客體CPU經由警告追蹤中斷協定在寬容週期內退出,則無論何時發生該狀況,均給予關於下一時間配量之回饋指示。因此,客體程式知曉其滿足由寬容週期強加之時間約束。
若客體遲延主動退出,則藉由寬容週期之期滿而優先執行該客體之執行。下次以正常時間配量啟動客體CPU時,給予回饋指示,使得客體知曉其係遲延的。大體上,此情形可用於客體程式中之問題判定,此係因為慣常的寬容週期允許足夠時間來清理及主動退出。
若發生外來退出,則下次在正常時間配量內啟動客體CPU時,期望將快速地發生主動退出。同一回饋機制將向客體程式告知:外來退出已被干預且因此提供不同資訊以告知問題判定。
主動退出係藉由使得控制自客體程式經由主機程式傳遞的任何機制來實現,且該機制包括前述回饋機制。所使用之機制將定義於特定架構之警告追蹤中斷協定中,以便供主機程式辨識客體請求。在一實例中,此機制包括下文描述之診斷指令。
除警告追蹤中斷協定之客體觀測外,在一實施例中,主機亦觀測設施,如下文參看圖5進一步詳細描述。
參看圖5,主機辨識設施已安裝指示並將該指示反映至其客體(步驟500)。舉例而言,主機檢查控制區塊(例如,SCCB)中之已安裝位元,且辨識警告追蹤協定之已安裝狀態(亦即,其經設定)並知曉主機
程式可如何使用該狀態而對主機有利。因此,將設施指示反映至其客體。舉例而言,為了將設施反映至客體,主機設定客體控制區塊(例如,客體SCCB)或客體可存取之記憶體區域中的已安裝位元。若由於任何原因,主機程式並不希望客體觀測警告追蹤中斷設施協定之已安裝狀態且不允許客體觀測警告追蹤中斷設施協定之已安裝狀態並使用該狀態,則主機程式將未經安裝指示傳遞至客體(例如,將客體可見之位元設定為零)。此外,在一實施例中,主機程式設定客體CPU之控制,使得警告追蹤協定經停用(例如,關斷客體CPU之狀態描述中的一或多個指明位元)。
隨著客體起始註冊,主機程式接收到未經請求之註冊請求,且記住客體已註冊(步驟502)。由任何單一客體CPU起始之註冊請求足以註冊客體多處理組態中之所有客體CPU。因此,主機程式針對客體組態之所有CPU啟用警告追蹤協定(步驟504)。舉例而言,主機程式設定客體CPU之狀態描述中之一或多個指明位元以針對客體啟用警告追蹤中斷設施。不必將註冊之回饋傳回至客體。倘若即使在設施未經安裝時客體CPU仍嘗試註冊,主機將忽略請求且針對警告追蹤中斷設施協定將不啟用客體CPU。
在針對警告追蹤設施註冊及啟用客體之後,客體可接收關於協定之調用的通知(步驟506)。此情形可在若干個情境中實現,如下文所描述。
作為一實例,當針對在主機CPU(亦即,主機CPU X)上以解譯執行模式操作之客體CPU啟用警告追蹤中斷協定時,主機程式可起始來自主機CPU Y的協定。亦即,已由主機CPU X佈建客體CPU,且主機CPU X目前不可用於主機程式。若主機程式不得不重新獲取CPU X,則主機程式首先使得CPU X退出解譯執行模式。亦即,使客體CPU停止,藉此退出CPU X之解譯執行模式。在任何的任意點使客體CPU停
止而不允許客體CPU自身主動地停止產生警告追蹤中斷協定意欲解決之問題的風險。警告追蹤中斷協定藉由允許將主機程式動作變換成客體CPU X中之通知而允許主機CPU Y請求通知(步驟506)。由於客體程式先前已註冊,因此主機程式期望:客體程式辨識通知且支援通知之包括主動結束執行之最後步驟的適當處置,因此使主機CPU X之控制返回至主機程式。一旦發生此情形,主機程式便可繼續進行,而不管主機CPU X之使用可能已使得程序經起始。
主機程式藉由(例如)設定任何狀態、設定指示符(例如,位元)或使得將未經請求之非同步信號(例如,警告追蹤中斷)發送至客體來通知客體。儘管已註冊,但此通知信號之接收的時間在客體中仍為未知的。藉由註冊,倘若用信號通知,客體便已恰好同意遵守協定。
在主機單處理器系統中,若一個主機CPU處於解譯執行模式從而使得客體CPU正操作,則不存在其他主機CPU來調用警告追蹤中斷協定。然而,即使在此狀況下,當主機CPU在處於解譯執行模式的同時辨識時間配量期滿時,CPU自身仍可調用警告追蹤中斷協定,且可接著授予寬容週期並執行通知。
在通知之另一實例中,當主機CPU使得將定義於警告追蹤中斷協定中之通知發送至客體CPU時(歸因於當主機CPU處於解譯執行模式時,主機CPU辨識之內部狀態改變),發生通知。當針對警告追蹤中斷協定啟用客體CPU且主機CPU辨識時間配量之結束時,發生此情形之實例。在用信號向客體CPU通知以放棄控制之前,CPU在內部授予寬容週期以允許客體CPU具有足夠時間以接收信號、採取適當動作(例如,完成當前可分派單元或使得當前可分派單元為可重新分派的)且主動地結束。在內部,主機CPU保持狀態以指示:已向客體CPU通知。若客體在寬容週期內並未主動地結束,則CPU辨識此情形且結束客體之執行,藉此藉由結束解譯執行模式而使控制返回至主機程式。
在一實施例中,客體無法判定為何調用協定,而是僅判定其被通知清理並結束。可存在用於引起解譯執行模式之結束且因此結束客體執行的其他主機理論基礎。舉例而言,存在如下情境:將使所有客體CPU之執行停止以便對整個客體組態作出某一協調改變。多處理客體組態並不具有在與客體組態之其他CPU不同之規則或假定下操作的一些CPU。此不對稱性可產生不可預測之客體結果。
主機CPU接收已執行主動退出或任何其他原因之退出的客體CPU之效應(例如,向主機傳回CPU資源)(步驟508)。若退出係歸因於警告追蹤中斷協定定義之原因,則主機程式記住在下次啟動客體CPU時向客體CPU提供回饋(不管可能為多久)。此回饋為肯定(「良好」)指示,假定客體在寬容週期期滿之前主動退出。若退出係歸因於任何其他原因,則在客體CPU之下次啟動時不發生警告追蹤中斷協定回饋。
若客體遲延主動退出;亦即,客體執行動作以主動退出,但寬容週期已期滿,則藉由寬容週期之期滿而優先執行客體CPU之執行。下次以正常時間配量啟動客體CPU時,給予異常回饋指示,使得客體知曉其已遲延其主動退出。大體上,此情形可用於客體程式中之問題判定,此係因為慣常的寬容週期允許足夠時間來清理及主動退出。
若發生不同於警告追蹤中斷協定之主動退出的退出,則下次以正常時間配量啟動客體CPU時,不包括按警告追蹤協定之回饋。
主動地退出之手段係藉由使得控制自客體程式傳遞至主機程式之任何機制來實現,該機制由主機程式辨識為協定主動退出,且該機制包括上述回饋機制。在一實例中,診斷指令用於主動退出。亦即,具有特定參數之診斷指令用以指示時間配量之完成。在診斷指令由客體程式發出並經執行之後,主機程式判定退出是否為準時的。接著,當再次啟動客體時(其為診斷之後的下一循序指令),提供指示再次啟動客體是否為準時的之條件碼。條件碼(例如)設定於用以在下一循序
指令處啟動客體之客體程式狀態字(PSW)中。客體可接著測試條件碼。
參看圖6進一步描述由主機進行之對於客體主動退出的處置。最初,當客體CPU停止時,控制返回至主機CPU(步驟600)。作出關於控制是否在寬容週期內返回的判定(查詢602)。若控制在寬容週期內返回,則主機程式按警告追蹤中斷協定觀測主動客體退出,且記住針對客體CPU之下次啟動之良好回饋,而不管哪一主機CPU可能在彼時間佈建客體CPU(步驟604)。此係假定已安裝警告追蹤中斷設施。若控制並未在寬容週期內返回,則不記住回饋狀態。然而,若客體執行動作以主動地退出,但主動退出係在寬容週期外(查詢602),則主機CPU上之主機程式按警告追蹤中斷協定觀測主動客體退出(即使客體最終且不得不非主動地退出),且記住針對客體CPU之下次啟動的不良回饋,而不管哪一主機CPU可能在彼時間佈建客體CPU(步驟606)。再者,此係假定已安裝警告追蹤設施。若否,則不記住回饋狀態。
此後,不管主機記住良好回饋抑或不良回饋,主機程式將主機CPU重新導向至優先執行指派(步驟608)。亦即,將主機重新導向為現在執行使其資源(CPU)返回的一或多個功能。
此外,在客體CPU之下次循序啟動時,不管哪一主機CPU佈建客體CPU,若記住回饋狀態,則在啟動客體CPU之前設定回饋狀態指示(步驟610)。在一實例中,在SIE狀態描述中(例如,在狀態描述之PSW中)設定回饋狀態指示,SIE狀態描述指示下一循序指令的啟動。
參看圖7至圖9來描述關於與警告追蹤中斷設施相關聯之處理的其他細節。詳言之,圖7描繪與警告追蹤中斷設施處理之概述相關聯之邏輯的一實施例;圖8A至圖8C提供根據本發明之態樣的警告追蹤中斷設施處理之細節;且圖9描繪與接收警告追蹤中斷相關聯之邏輯的一實施例。
參看圖7,最初客體程式(例如,客體作業系統)辨識已安裝警告追蹤中斷設施(步驟700)。在一實施例中,此情形係藉由客體程式觀測位於(例如)指明控制區塊中之已安裝設施指示符(例如,位元)來實現。若客體作業系統具有支援以參與警告追蹤中斷設施,則客體作業系統辨識警告追蹤中斷設施已安裝指示符,且接著指示其參與協定的能力。在一實例中,此情形包括註冊客體之參與警告追蹤處理的意圖(步驟702)。如本文中所描述,在一實例中,經由診斷指令來執行註冊。在註冊時,客體作業系統向主機CPU與主機程式兩者指示客體作業系統知曉如何處置警告追蹤中斷(WTI),警告追蹤中斷(WTI)為向客體提供如下警告之明確中斷:客體(例如)將失去對其共用資源(例如,客體CPU)之存取,且客體(例如)應關於其當前正執行之可分派單元採取動作。在一實施例中,註冊為WTI之接收的先決條件。若並未針對警告追蹤中斷設施註冊客體,則在客體之時間配量期滿後,便不供應寬容週期,且使客體CPU脫離解譯執行模式。
在一實施例中,即使已註冊,客體程式仍具有停用WTI之呈現的兩個機制。舉例而言,可將(例如)程式狀態字(PSW)中之所選定位元設定為零,此情形停用包括WTI之所有外部中斷的呈現;或可將指定控制暫存器(例如,CR0)中的位元設定為零以僅停用WTI。當兩個位元為一時,啟用WTI之呈現。若WTI之呈現保持停用達整個WTI寬容週期,則客體之執行在不利用WTI之情況下結束,該情形構成非主動退出。
在客體CPU之解譯執行期間,若客體CPU在內部辨識主機CPU計時器外部中斷條件(例如,期滿之時間配量)或由主機程式請求之優先執行(查詢704),則內部CPU處理在主機接收到控制之前判定是否將執行警告追蹤中斷處理(查詢706)。亦即,內部CPU處理檢查針對警告追蹤處理啟用客體,且因此判定警告追蹤處理應包括於待執行之處理
中。若將不執行警告追蹤中斷處理,則客體之解譯執行結束(步驟708),且控制返回至主機程式(步驟710)。返回至查詢706,然而,若將執行警告追蹤中斷處理,則如下文進一步詳細描述,執行處理(步驟712)。
參看圖8A至圖8C來描述警告追蹤中斷處理之其他細節的實施例。在此處理中,使用包括以下各者之若干個控制指示符:警告追蹤中斷設施寬容週期作用中內部控制(例如,G位元),其並非架構上可見,但供內部CPU邏輯使用;警告追蹤中斷(WTI)呈現內部控制(例如,P位元),其在為一時指示已將WTI呈現給客體,且在為零時指示尚未呈現WTI。類似於警告追蹤中斷設施寬容週期作用中內部控制,WTI呈現內部控制並非架構上可見,但供內部CPU邏輯使用;客體控制之主機程式優先執行(例如,T位元),其係(例如)客體CPU狀態描述中的警告追蹤干預請求指示符;及在E指示符為一時,存在外部中斷之啟用。在一實例中,E指示符為當前程式狀態字(PSW)內的位元。
參看圖8A,在一實例中,辨識主機CPU計時器中斷條件(例如,期滿之時間配量),或辨識警告追蹤干預請求(例如,主機希望早早地傳回CPU資源;亦即在時間配量結束之前傳回CPU資源)。若辨識出主機CPU計時器中斷條件(查詢800),則作出關於寬容週期作用中控制指示符是否經設定(例如,G等於1?)的判定(查詢802)。若G未經設定,則將G指示符設定為(例如)1(步驟804),且警告追蹤中斷設施寬容週期將開始。接著保存主機CPU計時器之當前值(所保存值在本文中被稱作原始值)(步驟806),且將主機CPU計時器設定為警告追蹤寬容週期(例如,50微秒)(步驟808)。
此後,作出關於是否針對警告追蹤中斷啟用客體之判定(查詢
810)。在一實施例中,若客體層級2為作用中的從而指示一客體已啟動另一客體,則客體2關於客體1中斷而退出解譯執行模式,且取消客體1「啟動解譯執行」指令。因此,處理在此點處係作為客體1。若客體2並非作用中的,則處理僅以客體1繼續。若針對WTI啟用客體,則將警告追蹤外部中斷(WTI)呈現給客體(步驟812)。在一實例中,在需要時,此中斷包括特定中斷碼,該特定中斷碼經呈現,從而指示其具有寬容週期以便執行一或多個功能(例如,清理)。
另外,將P設定為1,從而指示WTI已經呈現(步驟814)。又,使用互鎖更新功能將T位元設定為1(若最初已使用干預請求,則T位元可能已為1)(步驟816)。使主機CPU計時器中之寬容週期繼續遞減,而不管是否呈現了WTI(步驟818)。接著退出此處理(步驟820)。在一實例中,退出此程序之指明指示:CPU已完成警告追蹤中斷設施之當前處理,且CPU正返回至如由CPU之當前狀態指明的其他處理。
返回至查詢810,若針對警告追蹤中斷未啟用客體,則處理進行至步驟816。在此例子中,針對WTI未啟用客體,因此無法將WTI呈現給客體。然而,將T位元設定為未決的,使得稍後在針對WTI確實啟用客體時可偵測到T位元。
返回至查詢800,若並非主機CPU計時器中斷條件,則辨識警告追蹤中斷請求(亦即,主機優先執行)。亦即,客體之狀態描述之干預請求欄位中的T位元為1。因此,作出關於G指示符是否經設定的判定(查詢850)。若G指示符未經設定(例如,0),則處理以步驟804繼續。在此情形下,T等於1之條件為啟動WTI程序的初始原因。然而,若G位元經設定,則作出關於P是否經設定的判定(查詢852)。若P未經設定(例如,等於0),則處理在呈現WTI之嘗試中以步驟810繼續。然而,若P經設定(例如,不等於0),則在警告追蹤設施寬容週期開始之後T等於1的發現無影響,且退出程序(步驟854)。
返回至查詢802,若G經設定(例如,等於1),則客體CPU已在寬容週期中執行,且主機CPU計時器之期滿指示寬容週期已期滿。因此,先前已起始WTI循環,且寬容週期已期滿。因此,參看圖8B,將先前保存之原始主機CPU計時器值減小達在寬容週期期間實際使用之時間量,且接著將其載入至主機CPU計時器中(步驟860)。退出解譯執行模式(步驟862),且將主機CPU計時器外部中斷呈現給主機(步驟864)(此退出為非主動客體退出之形式)。
除以上內容外,可經由可針對WTI啟用CPU之某些指令來起始WTI分析。舉例而言,參看圖8C,如本文中所描述,最初,可針對WTI啟用CPU之包括以下各者的若干個指令執行監視:(例如)可設定PSW中之指明位元的「載入PSW(擴展)」指令及「接著儲存或系統遮罩」指令,以及可設定控制暫存器中之所選定位元的「載入控制」。舉例而言,可針對中斷啟用之指令檢查用於潛在警告追蹤處理的T位元。若T=0(查詢880),則不存在WTI,且退出此程序(步驟884)。然而,若T=1,則處理以查詢822繼續。
在查詢882處,作出關於P是否經設定(例如,等於1)之判定。若P經設定,則退出此程序(步驟884),此係由於先前已偵測到啟用。然而,若P未經設定(例如,不等於1),則作出關於G是否經設定(例如,等於1)的另一判定(查詢886)。若G未經設定,則處理以步驟804繼續(圖8A)。然而,若G經設定(例如,等於1)(步驟886(圖8C)),則處理以圖8A中之查詢810繼續(步驟888),且退出處理。
參看圖9來描述警告追蹤中斷之處理的其他細節。當客體程式接收到警告追蹤中斷時,客體程式執行客體程式將執行之任何功能(例如,OS功能)以便(例如)使得可分派工作單元為可重新分派的(步驟900)。舉例而言,客體在特定點處停止可分派單元,保存可分派單元之狀態,且將可分派單元移動至另一客體CPU,或藉由提供狀態資訊
使得可分派單元能夠被移動,等等。客體作業系統藉由向主機程式發出警告追蹤清理完成信號而用信號通知客體作業系統已結束(又稱作主動退出)(步驟902)。此信號可為使得客體操作放棄剩餘時間配量的任何機制。然而,該信號由主機程式辨識為協定之清理部分。在一實例中,使用診斷指令之清理已完成功能。
若客體程式在寬容週期期滿之前發出清理已完成信號(查詢904),則主機程式記住客體CPU及時退出(步驟906)。此退出係主動退出。當下次啟動客體CPU時,將信號之準時本質指示回至客體CPU(步驟908)。在一實例中,客體繼續執行PSW經設定以指示成功條件碼(例如,條件碼0)。
返回至查詢904,若客體程式由於任何原因而花費過長時間,則寬容週期借助於使寬容週期遞減至零之主機CPU計時器而期滿,因此將主機CPU計時器外部中斷條件呈現給CPU。在此狀況下,CPU辨識:客體已在寬容週期中,且並不授予另一寬容週期。確切而言,客體執行停止,且控制藉由接收外部中斷而回復至主機程式。主機程式辨識:客體CPU之此結束為非主動客體退出。
在下次客體CPU啟動時,客體作業系統可接著發出清理已完成信號,雖然現在已過遲。主機程式不再期望等待清理已完成信號之接收。因此,在下次啟動客體CPU時,將信號之過遲本質指示回至客體CPU(步驟912)。在一實例中,客體繼續執行PSW經標示以指示在下次啟動時客體將觀察到的遲條件。過遲診斷指令之發出有時被稱作陳舊診斷指令,此係因為過遲診斷指令先前錯過在寬容週期內退出且接著由於不良原因稍後退出。
在一實例中,在客體CPU之新啟動後,客體程式便可針對是否已在寬容週期內發出信號而檢查協定之信號繼續執行部分。客體程式可使用此資訊來調查:客體程式可能因何原因而延遲且作出改良以改良
關於未來更及時之統計。
在一實施例中,當針對所有外部中斷停用客體時,可啟用外部中斷之若干個指令執行監視。當針對外部中斷啟用客體時,檢驗WTI啟用。在此點上,若WTI經啟用且P位元為0,則將WTI呈現給客體CPU。
如上文所提及,在一實施例中,診斷功能用以指示清理已完成或針對警告追蹤中斷設施註冊。對於清理已完成,診斷功能在以清理參數發出並執行時用信號通知:發出CPU已執行了與警告追蹤外部中斷之接收相關聯的任何所要處理。當執行完成時,設定條件碼,從而指示是否在警告追蹤中斷之後允許用於清理之模型相依時間間隔內發出完成。
關於暫存器功能,診斷功能在以暫存器參數發出並執行時用信號通知:發出組態理解警告追蹤中斷。當執行完成時,設定成功條件碼。註冊狀態藉由系統重設來清除。
參看圖10來描述診斷指令之格式的一實施例。在一實施例中,診斷指令1000包括:指示診斷功能之作業碼1002;第一暫存器欄位1004(R1);第二暫存器欄位1006(R3);通用暫存器欄位1008(B2);及移位欄位1010(D2)。在一實例中,將D2欄位之內容添加至通用暫存器B2之內容。結果並不用以定址資料,而是將某些位元(例如,位元48至63)用作操作碼擴展。當操作碼擴展為預定值時,指定警告追蹤清理已完成,且放棄時間配量。
在一實例中,R3欄位未經使用,且其含有零。另外,通用暫存器R1之指定位元未經使用且將含有零,且通用暫存器R1之特定位元(例如,位元63)在為零時指定清理已完成功能,且在為1時指定暫存器功能。
在使用共用實體CPU之邏輯分割區中,此功能可藉由允許將邏輯
CPU正執行所在之實體CPU指派給另一邏輯CPU而改良系統效能。
除診斷外,在WTI寬容間隔期間的任何其他SIE退出(無論何原因)類似地恢復遞減達所花費之寬容週期時間量的主機CPU計時器之原始值。
本文中詳細描述之內容為警告追蹤中斷設施,在一實施例中,該警告追蹤中斷設施提供一機制,可藉由該機制將警告追蹤外部中斷呈現給具有共用CPU資源(諸如,邏輯分割區)之組態中的CPU。控制程式可使用警告追蹤外部中斷作為信號以使得當前正執行之可分派單元在該組態上之不同CPU上為可分派的。
在一實施例中,於時間配量中在實體處理器上執行之邏輯(客體)處理器接收到指示寬容週期之警告信號,例如,在邏輯處理器將被中斷(自可共用之實體處理器解除分配)之前的時間量,從而使得能夠完成由邏輯處理器進行之工作或將工作移動至另一邏輯處理器。作為實例,用信號向客體CPU通知:其時間配量已期滿,且客體CPU應優先執行當前可分派工作單元(DU)以使得當前可分派工作單元在另一客體CPU上為可重新分派的。在一實例中,警告信號為一中斷,該中斷具有指示該中斷為WTI的中斷碼。在另一實例中,中斷碼包括關於對寬容週期給予之時間量或其他週期的資訊。
在一實施例中,警告追蹤中斷設施可用於非虛擬環境以及虛擬環境中,在該等環境中,一個程式及/或處理器與一或多個其他程式及/或處理器共用資源(例如,CPU資源或其他資源)。
在環境為虛擬環境之一實施例中,自客體之觀點而言:
1.客體程式觀測警告追蹤中斷協定設施之已安裝條件。
2.客體程式針對警告追蹤中斷協定註冊。
3.客體CPU根據特定架構(例如,共用記憶體指示、共用I/O器件指示、中斷)接收警告追蹤通知。
4.在客體CPU上執行之客體程式根據已接收通知之客體程式的本質來執行可適用處理(期望通知之處理為按作業系統獨特的)。
5.客體CPU根據警告追蹤協定主動技術放棄控制。
6.在客體CPU下次啟動時,客體程式可根據警告追蹤協定觀測回饋。
另外,在一實施例中,自主機之觀點而言:
A.客體程式觀測警告追蹤中斷協定設施之已安裝條件。
1.主機程式獲取警告追蹤中斷協定設施已安裝指示。
2.主機程式持久地記住警告追蹤中斷協定之已安裝狀態。
3.主機程式將警告追蹤協定已安裝狀態指示給每一客體組態。
4.主機程式停用所有未註冊客體CPU中之警告追蹤協定。
5.主機程式做好準備以辨識來自每一客體組態之客體警告追蹤註冊請求。
B.主機程式辨識來自客體之警告追蹤註冊請求。
1.主機程式持久地記住客體組態理解警告追蹤協定。
2.主機程式針對警告追蹤協定啟用客體。
C.在正常客體CPU X操作期間,使用客體CPU X之優先執行重新獲取對應主機CPU X。
1. CPU Y中之主機程式用信號向客體CPU X發通知。
a.根據警告追蹤協定,CPU X經由共用記憶體位置之更新、共用I/O器件之更新或對客體CPU X之中斷而將通知傳播至客體CPU X。
D.客體CPU X停止,從而使控制返回至主機CPU X。
1.若在寬容週期內,則CPU X上之主機程式按警告追蹤協定觀測主動客體退出,且記住針對客體CPU X之下次啟動的良好回饋,而不管哪一主機CPU可能在彼時間佈建客體CPU X。
a.若在寬容週期內,但客體CPU X之退出並非根據警告追蹤協
定,則不記住回饋狀態。
2.若不在寬容週期內,則CPU X上之主機程式按警告追蹤協定觀測主動客體退出,且記住針對客體CPU X之下次啟動的不良回饋,而不管哪一主機CPU可能在彼時間佈建客體CPU X。
a.若不在寬容週期內,但客體CPU X之退出並非根據警告追蹤協定,則不記住回饋狀態。
3.主機CPU X上之主機程式將CPU X重新導向為優先執行指派。
E.若記住回饋狀態,則不管哪一主機CPU佈建客體CPU X,客體CPU X之下次循序啟動在啟動客體CPU X之前根據警告追蹤協定設定回饋指示。
在一實施例中,客體組態之客體處理器接收唯一中斷,該中斷係針對電腦架構而定義,且中斷之含義係警告追蹤中斷。該中斷指示將中斷識別為警告追蹤中斷的特定碼。該中斷隱含被稱作寬容週期之相對較短之時間間隔,從而逐漸引導至結束客體處理器執行。
在寬容週期期間,在一實例中,名義上期望客體程式使得當前可分派工作單元在另一客體處理器上為可重新分派的,因此避免卡塞於當前客體處理器上、等待其來自主機之下次正常時間配量啟動。
在一實例中,客體處理器之每次主機程式啟動授予相對較短之時間間隔僅一次。自(例如)客體處理器正執行所在之現有時間間隔來授予時間間隔。由於自正常剩餘時間配量來分配所授予之時間間隔,因此時間間隔本質上並非借用時間,而是使用來自當前時間間隔之受約束時間量來確保客體處理器在相對較短之時間週期內確實被優先執行。
在當前時間配量已期滿之另一實例中,除客體處理器正執行所在之現有時間間隔外,亦將時間間隔授予為額外時間。由主機程式對照將由客體處理器消耗的期望客體處理器接下來執行之期望的下一循
序正常時間間隔來考慮所授予之時間間隔。仍意欲確保:客體處理器在相對較短之時間週期內確實被優先執行。
在一實例中,可產生對警告追蹤事件之中斷請求以向程式告知:程式正接近共用CPU上的當前執行間隔的結束。中斷請求為在註冊組態且針對警告追蹤中斷設施啟用組態時產生的未決條件類型。
程式(例如,主機及客體)之間的合作處理使程式(例如,客體作業系統)間的資源共用(例如,CPU)最佳化。一或多項態樣以相同CPU利用提供(例如)更好之回應時間。另外,在超管理器未分派之前釋放系統串列化。
在另一實施例中,本發明之一或多項態樣可供來自作業系統之請求使用以使個別執行緒繼續改良時間敏感性工作之經過時間。亦即,執行緒可請求額外時間或被提供額外時間以執行功能。
如熟習此項技術者將瞭解,本發明之一或多項態樣可體現為系統、方法或電腦程式產品。因此,本發明之一或多項態樣可採用完全硬體實施例、完全軟體實施例(包括韌體、常駐軟體、微碼等)或組合軟體與硬體態樣之實施例的形式,該等實施例在本文中皆可大體上被稱作「電路」、「模組」或「系統」。此外,本發明之一或多項態樣可採用以一或多個電腦可讀媒體體現之電腦程式產品之形式,該一或多個電腦可讀媒體上體現有電腦可讀程式碼。
可利用一或多個電腦可讀媒體之任何組合。電腦可讀媒體可為電腦可讀儲存媒體。舉例而言,電腦可讀儲存媒體可為(但不限於)電子、磁性、光學、電磁、紅外線或半導體系統、裝置或器件,或前述各者之任何合適組合。電腦可讀儲存媒體之更特定實例(非詳盡清單)包括以下各者:具有一或多條導線之電連接、攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM或快閃記憶體)、光纖、攜帶型光碟唯讀記憶體(CD-
ROM)、光學儲存器件、磁性儲存器件,或前述各者之任何合適組合。在此文件之內容脈絡中,電腦可讀儲存媒體可為可含有或儲存供指令執行系統、裝置或器件使用或結合指令執行系統、裝置或器件而使用之程式的任何有形媒體。
現參看圖11,在一實例中,電腦程式產品1100包括(例如)一或多個非暫時性電腦可讀儲存媒體1102以在上面儲存電腦可讀程式碼構件或邏輯1104,從而提供並促進本發明之一或多項態樣。
可使用適當媒體來傳輸體現於電腦可讀媒體上之程式碼,適當媒體包括(但不限於)無線媒體、有線媒體、光纜、RF等或前述各者之任何合適組合。
可以一或多種程式設計語言之任何組合來撰寫用於進行本發明之一或多項態樣之操作的電腦程式碼,該一或多種程式設計語言包括諸如Java、Smalltalk、C++或其類似者之物件導向程式設計語言,及諸如「C」程式設計語言、組譯器或類似程式設計語言之習知程序性程式設計語言。程式碼可完全在使用者電腦上執行,部分地在使用者電腦上執行,作為獨立套裝軟體而執行,部分地在使用者電腦上執行且部分地在遠端電腦上執行,或完全在遠端電腦或伺服器上執行。在完全在遠端電腦或伺服器上執行的情境中,遠端電腦可經由任何類型之網路(包括區域網路(LAN)或廣域網路(WAN))連接至使用者電腦,或可連接至外部電腦(例如,使用網際網路服務提供者經由網際網路)。
本文中參看根據本發明之實施例之方法、裝置(系統)及電腦程式產品的流程圖說明及/或方塊圖來描述本發明之一或多項態樣。應理解,可藉由電腦程式指令來實施該等流程圖說明及/或方塊圖之每一區塊及該等流程圖說明及/或方塊圖中之區塊的組合。可將此等電腦程式指令提供至通用電腦、專用電腦或其他可程式化資料處理裝置之
一處理器以產生一機器,以使得經由該電腦或其他可程式化資料處理裝置之該處理器而執行之指令產生用於實施在該或該等流程圖及/或方塊圖區塊中所指定之功能/動作之構件。
亦可將此等電腦程式指令儲存於一電腦可讀媒體中,其可指導電腦、其他可程式化資料處理裝置或其他器件以特定方式起作用,使得儲存於該電腦可讀媒體中之指令產生一製造物件,該製造物件包括實施在該或該等流程圖及/或方塊圖區塊中所指定之功能/動作的指令。
亦可將該等電腦程式指令載入至電腦、其他可程式化資料處理裝置或其他器件上,以使得在該電腦、其他可程式化裝置或其他器件上執行一系列操作步驟以產生一電腦實施程序,使得在該電腦或其他可程式化裝置上執行之指令提供用於實施在該或該等流程圖及/或方塊圖區塊中所指定之功能/動作的程序。
諸圖中之流程圖及方塊圖說明根據本發明之一或多項態樣之各種實施例的系統、方法及電腦程式產品之可能實施方案的架構、功能性及操作。就此而言,流程圖或方塊圖中之每一區塊可表示程式碼之一模組、區段或部分,其包含用於實施指定之邏輯功能的一或多個可執行指令。亦應注意,在一些替代實施方案中,區塊中所註釋之功能可不以諸圖中所註釋之次序發生。舉例而言,取決於所涉及之功能性,連續展示之兩個區塊實際上可實質上同時執行,或該等區塊有時可以相反次序執行。亦應注意,可藉由執行指定之功能或動作的基於專用硬體之系統或專用硬體與電腦指令之組合來實施方塊圖及/或流程圖說明之每一區塊及方塊圖及/或流程圖說明中之區塊的組合。
除以上內容外,本發明之一或多項態樣亦可由供應客戶環境之管理的服務提供者來提供、供應、部署、管理、服務等。舉例而言,服務提供者可為一或多個客戶產生、維護、支援等執行本發明之一或
多項態樣的電腦程式碼及/或電腦基礎結構。作為回報,作為實例,服務提供者可在訂用及/或收費協議下自客戶收取付款。或者或另外,服務提供者可自廣告內容銷售至一或多個第三方而收取付款。
在本發明之一態樣中,應用程式可經部署以用於執行本發明之一或多項態樣。作為一實例,應用程式之部署包含提供可操作以執行本發明之一或多項態樣的電腦基礎結構。
作為本發明之另一態樣,可部署一計算基礎結構,其包含將電腦可讀程式碼整合至計算系統中,其中與計算系統組合之程式碼能夠執行本發明的一或多項態樣。
作為本發明之又一態樣,可提供用於整合計算基礎結構之程序,其包含將電腦可讀程式碼整合至電腦系統中。電腦系統包含電腦可讀媒體,其中電腦媒體包含本發明之一或多項態樣。與電腦系統組合之程式碼能夠執行本發明的一或多項態樣。
儘管上文描述了各種實施例,但此等實施例僅為實例。舉例而言,其他架構之計算環境可併有並使用本發明之一或多項態樣。另外,寬容週期可不同於時間量,諸如指令或循環之數目或任何其他可量化值。可在不偏離本發明之精神的情況下進行許多改變及/或添加。
另外,其他類型之計算環境可受益於本發明之一或多項態樣。作為實例,適用於儲存及/或執行程式碼之資料處理系統為可用的,其包括直接或經由系統匯流排間接耦接至記憶體元件的至少兩個處理器。記憶體元件包括(例如)在程式碼之實際執行期間所使用之本端記憶體、大容量儲存器,及快取記憶體,該快取記憶體對至少某一程式碼提供臨時儲存以便減少在執行期間必須自大容量儲存器擷取程式碼的次數。
輸入/輸出或I/O器件(包括(但不限於)鍵盤、顯示器、指標器件、
DASD、磁帶、CD、DVD、隨身碟(thumb drive)及其他記憶體媒體等)可直接或經由介入I/O控制器耦接至系統。網路配接器亦可耦接至系統以使得資料處理系統能夠經由介入之私用或公用網路耦接至其他資料處理系統或遠端印表機或儲存器件。數據機、纜線數據機及乙太網路卡僅為可用類型之網路配接器中的少數幾種。
下文描述可併有及/或使用本發明之一或多項態樣的計算環境之其他實例。
參看圖12,描繪實施本發明之一或多項態樣之主機電腦系統5000的代表性組件。代表性主機電腦5000包含與電腦記憶體(亦即,中央儲存器)5002通信之一或多個CPU 5001,以及用於與其他電腦或SAN及其類似者通信之至儲存媒體器件5011及網路5010的I/O介面。CPU 5001符合具有經建構指令集及經建構功能性之架構。CPU 5001可具有用於將程式位址(虛擬位址)變換成記憶體之真實位址的動態位址轉譯(DAT)5003。DAT通常包括轉譯後備緩衝器(TLB)5007,其用於對轉譯進行快取使得對電腦記憶體5002之區塊之稍後存取並不需要位址轉譯之延遲。通常,快取記憶體5009用於電腦記憶體5002與處理器5001之間。快取記憶體5009可為階層式快取記憶體,從而具有可用於一個以上CPU之大快取記憶體及大快取記憶體與每一CPU之間的較小之較快速(較低層級)快取記憶體。在一些實施方案中,將較低層級快取記憶體分裂以提供單獨的低層級快取記憶體以用於指令提取及資料存取。在一實施例中,經由快取記憶體5009藉由指令提取單元5004自記憶體5002提取指令。在指令解碼單元5006中解碼指令,且將指令分派(在一些實施例中,藉由其他指令)給指令執行單元5008。通常,使用若干個執行單元5008,例如算術執行單元、浮點執行單元及分支指令執行單元。指令係由執行單元執行,從而在需要時自指令指定之暫存器或記憶體存取運算元。若將自記憶體5002存取(載入或儲存)運
算元,則載入/儲存單元5005通常在正執行之指令之控制下處置存取。可在硬體電路中或在內部微碼(韌體)中或藉由兩者之組合執行指令。
如所註釋,電腦系統包括本端(或主)儲存器中之資訊,以及定址、保護,及參考及改變記錄。定址之一些態樣包括位址之格式、位址空間之概念、位址之各種類型,及一類型之位址經轉譯至另一類型之位址的方式。主儲存器中之一些儲存器包括永久指派之儲存位址。主儲存器為系統提供資料之可直接定址之快速存取儲存。資料與程式兩者在其可得以處理之前將被載入至主儲存器中(自輸入器件)。
主儲存器可包括有時稱作快取記憶體之一或多個較小之較快速存取緩衝儲存器。快取記憶體通常與CPU或I/O處理器實體地相關聯。除效能外,相異儲存媒體之實體構造及使用的效應大體上為程式不可觀測的。
可維護用於指令及用於資料運算元的單獨快取記憶體。快取記憶體內之資訊以連續位元組維持於稱作快取區塊或快取列(或簡稱為列)之整體邊界上。模型可提供傳回快取列之以位元組為單位之大小的「擷取快取記憶體屬性」指令。模型亦可提供「預取資料」及「預取資料相對長度」指令,前述兩個指令實現儲存器至資料或指令快取記憶體中之預取或資料自快取記憶體的釋放。
儲存器被視為長水平位元串。對於大多數操作而言,對儲存器之存取以自左至右序列進行。將位元串再分為八個位元之單元。八位元單元被稱作位元組,位元組係所有資訊格式之基本建置區塊。儲存器中之每一位元組位置藉由一唯一非負整數來識別,該非負整數係該位元組位置之位址,或簡稱為位元組位址。鄰近位元組位置具有連續位址,在左側上以0開始且以自左至右之序列進行。位址為無正負號之二進位整數,且為24個、31個或64個位元。
在儲存器與CPU或通道子系統之間一次一個位元組或位元組群組地傳輸資訊。除非以其他方式指定,否則在(例如)z/Architecture®中,儲存器中的位元組群組係藉由群組之最左側位元組來定址。群組中之位元組之數目由待執行之操作隱含地或顯式地指定。當用於CPU操作中時,位元組群組被稱作欄位。在每一位元組群組中,在(例如)z/Architecture®中,以自左至右之序列對位元編號。在z/Architecture®中,最左側位元有時被稱作「高位序」位元,且最右側位元被稱作「低位序」位元。然而,位元編號並非儲存位址。可僅定址位元組。為了對儲存器中之位元組的個別位元進行操作,存取整個位元組。位元組中之位元自左至右編號為0至7(例如,在z/Architecture®中)。位址中之位元對於24位元位址可編號為8至31或40至63,或對於31位元位址可編號為1至31或33至63;位址中之位元對於64位元位址編號為0至63。在多個位元組之任何其他固定長度格式內,構成格式之位元自0開始連續編號。出於錯誤偵測目的,且較佳為了校正,可將一或多個檢查位元與每一位元組或與位元組群組一起來傳輸。此等檢查位元藉由機器自動產生,且不可直接受程式控制。以位元組之數目來表達儲存容量。當儲存運算元欄位之長度係藉由指令之操作碼隱含時,欄位據稱為具有固定長度,該固定長度可為一個、兩個、四個、八個或十六個位元組。可針對一些指令隱含較大欄位。當儲存運算元欄位之長度未經隱含而是經顯式陳述時,欄位據稱為具有可變長度。可變長度運算元之長度可以一位元組之增量(或藉由一些指令,以兩個位元組之倍數或其他倍數)變化。當將資訊置放於儲存器中時,替換指明欄位中所包括的僅彼等位元組位置之內容,即使至儲存器之實體路徑的寬度可大於正儲存之欄位的長度亦如此。
資訊之某些單元將在儲存器中之整體邊界處。當儲存位址為以
位元組為單位之長度的倍數時,邊界對於資訊單元而言被稱作整體。對整體邊界上之2個、4個、8個及16個位元組之欄位給予專用名稱。半字組(halfword)為二位元組邊界上之兩個連續位元組的群組,且為指令之基本建置區塊。字組為四位元組邊界上之四個連續位元組的群組。雙字組為八位元組邊界上之八個連續位元組的群組。四倍字組(quadword)為16位元組邊界上之16個連續位元組的群組。當儲存位址指明半字組、字組、雙字組及四倍字組時,位址之二進位表示分別含有一個、兩個、三個或四個最右側零位元。指令將在二位元組整體邊界上。大多數指令之儲存運算元並不具有邊界對準要求。
在實施用於指令及資料運算元之單獨快取記憶體的器件上,若將程式儲存至隨後提取指令所自之快取列上,則可經歷顯著延遲,而不管儲存器是否變更隨後提取的指令。
在一實施例中,可藉由軟體(有時指代經授權內碼、韌體、微碼、毫碼、皮碼(pico-code)及其類似者,前述各者中之任一者將與本發明之一或多項態樣一致)來實踐本發明。參看圖12,體現本發明之一或多項態樣的軟體程式碼可由主機系統5000之處理器5001自諸如CD-ROM光碟機、磁帶機或硬碟機之長期儲存媒體器件5011存取。軟體程式碼可體現於多種已知媒體中之任一者上以供資料處理系統使用,諸如磁片、硬碟機或CD-ROM。程式碼可散佈於此等媒體上,或可自電腦記憶體5002散佈至使用者或經由網路5010自一電腦系統之儲存器散佈至其他電腦系統以供此等其他系統之使用者使用。
軟體程式碼包括控制各種電腦組件及一或多個應用程式之功能及互動的作業系統。程式碼通常自儲存媒體器件5011分頁至程式碼可用於由處理器5001進行處理的相對較高速電腦儲存器5002。用於將軟體程式碼體現於記憶體中、實體媒體上及/或經由網路散佈軟體程式碼的技術及方法為熟知的,且本文中將不進一步加以論述。程式碼在
產生並儲存於有形媒體(包括但不限於電子記憶體模組(RAM)、快閃記憶體、光碟(CD)、DVD、磁帶及其類似者)上時常常被稱作「電腦程式產品」。電腦程式產品媒體通常可由較佳電腦系統中之處理電路來讀取以供處理電路執行。
圖13說明可實踐本發明之一或多項態樣的代表性工作站或伺服器硬體系統。圖13之系統5020包含包括可選周邊器件之代表性基礎電腦系統5021,諸如個人電腦、工作站或伺服器。基礎電腦系統5021包括一或多個處理器5026,及一匯流排,該匯流排用以根據已知技術在處理器5026與系統5021之其他組件之間連接及實現處理器5026與系統5021之其他組件之間的通信。舉例而言,匯流排將處理器5026連接至記憶體5025及長期儲存器5027,長期儲存器5027可包括硬碟機(包括(例如)磁性媒體、CD、DVD及快閃記憶體中的任一者)或磁帶機。系統5021可能亦包括使用者介面配接器,其經由匯流排將微處理器5026連接至一或多個介面器件(諸如,鍵盤5024、滑鼠5023、印表機/掃描儀5030及/或其他介面器件),該等介面器件可為諸如觸敏式螢幕、數位化鍵入板(entry pad)等之任何使用者介面器件。匯流排亦經由顯示器配接器將諸如LCD螢幕或監視器之顯示器件5022連接至微處理器5026。
系統5021可借助於能夠與網路5029通信(5028)之網路配接器與其他電腦或電腦之網路通信。實例網路配接器為通信頻道、符記環、乙太網路或數據機。或者,系統5021可使用諸如蜂巢式數位封包資料(CDPD)卡之無線介面進行通信。系統5021可與區域網路(LAN)或廣域網路(WAN)中之此等其他電腦相關聯,或系統5021可為具有另一電腦之用戶端/伺服器配置中的用戶端,等等。所有此等組態以及適當通信硬體及軟體為此項技術中知曉的。
圖14說明可實踐本發明之一或多項態樣的資料處理網路5040。
資料處理網路5040可包括複數個個別網路,諸如無線網路及有線網路,該等網路中之每一者可包括複數個個別工作站5041、5042、5043、5044。另外,如熟習此項技術者將瞭解,可包括一或多個LAN,其中LAN可包含耦接至主機處理器之複數個智慧型工作站。
仍參看圖14,網路亦可包括大型電腦或伺服器,諸如閘道器電腦(用戶端伺服器5046)或應用程式伺服器(可存取資料儲存庫且亦可直接自工作站5045存取的遠端伺服器5048)。閘道器電腦5046充當至每一個別網路中之入口點。當將一網路連接協定連接至另一網路連接協定時,需要閘道器。閘道器5046可較佳借助於通信鏈路耦接至另一網路(例如,網際網路5047)。閘道器5046亦可使用通信鏈路直接耦接至一或多個工作站5041、5042、5043、5044。可利用可購自International Business Machines Corporation之IBM eServerTM System z®伺服器來實施閘道器電腦。
同時參看圖13及圖14,可體現本發明之一或多項態樣的軟體程式設計碼可由系統5020之處理器5026自諸如CD-ROM光碟機或硬碟機之長期儲存媒體5027存取。軟體程式設計碼可體現於多種已知媒體中之任一者上以供資料處理系統使用,諸如磁片、硬碟機或CD-ROM。程式碼可散佈於此等媒體上,或可自記憶體散佈至使用者5050、5051或經由網路自一電腦系統之儲存器散佈至其他電腦系統以供此等其他系統之使用者使用。
或者,程式設計碼可體現於記憶體5025中,且使用處理器匯流排由處理器5026來存取。此程式設計碼包括控制各種電腦組件及一或多個應用程式5032之功能及互動的作業系統。程式碼通常自儲存媒體5027分頁至程式碼可用於由處理器5026進行處理的高速記憶體5025。用於將軟體程式設計碼體現於記憶體中、實體媒體上及/或經由網路散佈軟體程式碼的技術及方法為熟知的,且本文中將不進一步加以論
述。程式碼在產生並儲存於有形媒體(包括但不限於電子記憶體模組(RAM)、快閃記憶體、光碟(CD)、DVD、磁帶及其類似者)上時常常被稱作「電腦程式產品」。電腦程式產品媒體通常可由較佳電腦系統中之處理電路來讀取以供處理電路執行。
最易於可用於處理器之快取記憶體(通常比處理器之其他快取記憶體快且小)為最低(L1或層級一)快取記憶體,且主儲存器(主記憶體)為最高層級快取記憶體(若存在3個層級,則為L3)。最低層級快取記憶體常常被分成保持待執行之機器指令的指令快取記憶體(I-快取記憶體),及保持資料運算元之資料快取記憶體(D-快取記憶體)。
參看圖15,針對處理器5026描繪例示性處理器實施例。通常,快取記憶體5053之一或多個層級用以緩衝記憶體區塊以便改良處理器效能。快取記憶體5053為保持最可能使用之記憶體資料之快取列的高速緩衝器。典型快取列為64個、128個或256個位元組之記憶體資料。除用於對資料進行快取外,單獨快取記憶體亦常常用於對指令進行快取。快取記憶體連貫性(記憶體及快取記憶體中之列之複本的同步)常常藉由此項技術中熟知之各種「窺探」演算法來提供。處理器系統之主記憶體儲存器5025常常被稱作快取記憶體。在具有4個層級之快取記憶體5053的處理器系統中,主儲存器5025有時被稱作層級5(L5)快取記憶體,此係由於其通常為較快速的,且僅保持可用於電腦系統之非揮發性儲存器(DASD、磁帶等)之一部分。主儲存器5025對由作業系統頁入及頁出主儲存器5025之資料頁「進行快取」。
程式計數器(指令計數器)5061追蹤待執行之當前指令的位址。z/Architecture®處理器中之程式計數器為64個位元,且可截斷為31或24個位元以支援先前定址限制。程式計數器通常體現於電腦之程式狀態字(PSW)中,使得程式計數器在內容脈絡切換期間持續。因此,具有程式計數器值之進行中程式可藉由(例如)作業系統來中斷(自程式環
境至作業系統環境之內容脈絡切換)。程式之PSW在程式並非作用中的時維持程式計數器值,且在作業系統正執行時使用作業系統之程式計數器(在PSW中)。通常,使程式計數器遞增達等於當前指令之位元組之數目的量。精簡指令集計算(RISC)指令之長度通常為固定的,而複雜指令集計算(CISC)指令之長度通常為可變的。IBM z/Architecture®之指令為具有2個、4個或6個位元組之長度的CISC指令。舉例而言,藉由內容脈絡切換操作或分支指令之分支符記操作來修改程式計數器5061。在內容脈絡切換操作中,將當前程式計數器值連同關於正執行之程式的其他狀態資訊(諸如,條件碼)一起保存於程式狀態字中,且載入新程式計數器值從而指向待執行之新程式模組的指令。執行分支符記操作以便藉由將分支指令之結果載入至程式計數器5061中來准許程式作出決策或在程式內循環。
通常,指令提取單元5055用以代表處理器5026提取指令。提取單元在內容脈絡切換之後提取「接下來的循序指令」、分支符記指令之目標指令或程式之最初指令。現代指令提取單元常常使用預取技術來基於可能使用預取指令之可能性而推測性地預取指令。舉例而言,提取單元可提取包括下一循序指令的指令之16個位元組及其他循序指令之額外位元組。
接著由處理器5026執行所提取指令。在一實施例中,將所提取指令傳遞至提取單元之分派單元5056。分派單元解碼指令,且將關於經解碼指令之資訊轉遞至適當單元5057、5058、5060。執行單元5057通常將自指令提取單元5055接收關於經解碼算術指令之資訊,且將根據指令之作業碼對運算元執行算術運算。較佳將運算元自記憶體5025、經建構之暫存器5059或自正執行之指令的即時欄位提供至執行單元5057。執行之結果在儲存時儲存於記憶體5025、暫存器5059中或其他機器硬體(諸如,控制暫存器、PSW暫存器及其類似者)中。
處理器5026通常具有一或多個單元5057、5058、5060以用於執行指令之功能。參看圖16A,執行單元5057可借助於介接邏輯5071與經建構通用暫存器5059、解碼/分派單元5056、載入儲存單元5060及其他處理器單元5065通信。執行單元5057可使用若干個暫存器電路5067、5068、5069以保持算術邏輯單元(ALU)5066將進行運算的資訊。ALU執行諸如加法、減法、乘法及除法之算術運算以及諸如與(and)、或(or)及互斥或(XOR)、旋轉及移位的邏輯功能。較佳地,ALU支援設計相依性之專用運算。舉例而言,其他電路可提供包括條件碼及修復支援邏輯的其他經建構設施5072。通常,ALU運算之結果保持於輸出暫存器電路5070中,輸出暫存器電路5070可將結果轉遞至多種其他處理功能。存在處理器單元之許多配置,但本發明描述僅意欲提供對一實施例之代表性理解。
「加法」指令(例如)將在具有算術及邏輯功能性之執行單元5057中執行,而浮點指令(例如)將在具有專用浮點能力之浮點執行中執行。較佳地,執行單元藉由對藉由指令識別之運算元執行作業碼定義之功能而對運算元進行運算。舉例而言,「加法」指令可由執行單元5057對在藉由指令之暫存器欄位識別的兩個暫存器5059中發現之運算元執行。
執行單元5057對兩個運算元執行算術加法,且將結果儲存於第三運算元中,其中第三運算元可為第三暫存器或兩個源暫存器中的一者。執行單元較佳利用算術邏輯單元(ALU)5066,算術邏輯單元(ALU)5066能夠執行諸如移位、旋轉、與(And)、或(Or)及互斥或(XOR)之多種邏輯功能,以及包括加法、減法、乘法、除法中之任一者的多種代數函數。一些ALU 5066經設計以用於純量運算且一些ALU 5066經設計以用於浮點。取決於架構,資料可為大端序(Big Endian)(其中最低有效位元組處於最高位元組位址)或小端序(Little
Endian)(其中最低有效位元組處於最低位元組位址)。IBM z/Architecture®係大端序。取決於架構,帶正負號之欄位可為正負號及量值(1之補數或2之補數)。2之補數係有利的,此係因為:ALU並不需要設計減法能力,此係由於2之補數中的負值或正值僅需要ALU內的加法。舉例而言,常常以速記法來描述數字,其中12位元欄位定義4,096位元組區塊之位址,且通常經描述為4 Kbyte(千位元組)區塊。
參看圖16B,用於執行分支指令之分支指令資訊通常發送至分支單元5058,分支單元5058常常使用諸如分支歷史表5082之分支預測演算法來在其他條件運算完成之前預測分支之結果。將提取當前分支指令之目標,且在條件運算完成之前推測性地執行當前分支指令之目標。當完成條件運算時,基於條件運算之條件及所推測結果而完成或捨棄推測性執行之分支指令。典型分支指令可測試條件碼,且在條件碼滿足分支指令之分支要求情況下分支至目標位址,可基於(例如)在暫存器欄位或指令之即時欄位中發現之若干數字(包括一)而計算目標位址。分支單元5058可使用ALU 5074,ALU 5074具有複數個輸入暫存器電路5075、5076、5077及一輸出暫存器電路5080。舉例而言,分支單元5058可與通用暫存器5059、解碼分派單元5056或其他電路5073通信。
舉例而言,一群指令之執行可由於多種原因而被中斷,該等原因包括由作業系統起始之內容脈絡切換、引起內容脈絡切換之程式異常或錯誤、引起內容脈絡切換之I/O中斷信號,或複數個程式之多執行緒活動(在多執行緒化環境中)。較佳地,內容脈絡切換動作保存關於當前正執行之程式的資訊,且接著載入關於正調用之另一程式的狀態資訊。舉例而言,狀態資訊可保存於硬體暫存器中或記憶體中。狀態資訊較佳包含指向待執行之下一指令的程式計數器值、條件碼、記憶體轉譯資訊及經建構之暫存器內容。內容脈絡切換活動可單獨或組
合地藉由硬體電路、應用程式、作業系統程式或韌體碼(微碼、皮碼或經授權內碼(LIC))來訓練。
處理器根據指令定義之方法來存取運算元。指令可使用指令之一部分的值來提供即時運算元,可提供明確地指向通用暫存器或專用暫存器(例如,浮點暫存器)的一或多個暫存器欄位。指令可利用藉由作業碼欄位識別之隱含暫存器作為運算元。指令可將記憶體位置用於運算元。運算元之記憶體位置可由暫存器、即時欄位或暫存器與即時欄位之組合來提供,如藉由z/Architecture®長位移設施例證,其中指令定義基礎暫存器、索引暫存器及即時欄位(位移欄位),前述三者相加在一起以提供(例如)運算元在記憶體中的位址。除非以其他方式指示,否則位置於本文中通常隱含主記憶體(主儲存器)中的位置。
參看圖16C,處理器使用載入/儲存單元5060來存取儲存器。載入/儲存單元5060可藉由獲得目標運算元在記憶體5053中之位址且將運算元載入於暫存器5059或另一記憶體5053之位置而執行載入操作,或可藉由獲得目標運算元在記憶體5053中之位址且將自暫存器5059或另一記憶體5053之位置獲得的資料儲存於記憶體5053中之目標運算元位置中而執行儲存操作。載入/儲存單元5060可為推測性的,且可以相對於指令序列而言無序的序列存取記憶體,然而,載入/儲存單元5060對於程式維持按次序執行指令的顯現。載入/儲存單元5060可與通用暫存器5059、解碼/分派單元5056、快取記憶體/記憶體介面5053或其他元件5083通信,且包含各種暫存器電路、ALU 5085及控制邏輯5090以計算儲存位址並提供管線定序以保持操作按次序。一些操作可為無序的,但載入/儲存單元提供使得無序操作對於程式顯現為已按次序執行的功能性,如此項技術中所熟知的。
較佳地,應用程式「看見」之位址常常被稱作虛擬位址。虛擬位址有時被稱作「邏輯位址」及「有效位址」。此等虛擬位址為虛擬
的在於:其藉由多種動態位址轉譯(DAT)技術中之一者而重新導向至實體記憶體位置,該等動態位址轉譯(DAT)技術包括(但不限於)簡單地對虛擬位址加偏移值作為字首、經由一或多個轉譯表轉譯虛擬位址,轉譯表較佳單獨或組合地包含至少一段表及一頁表,較佳地,段表具有指向頁表之條目。在z/Architecture®中,提供轉譯階層,包括區第一表、區第二表、區第三表、段表及可選之頁表。常常藉由利用轉譯後備緩衝器(TLB)來改良位址轉譯之效能,該轉譯後備緩衝器(TLB)包含將虛擬位址映射至相關聯實體記憶體位置的條目。當DAT使用轉譯表來轉譯虛擬位址時,產生該等條目。虛擬位址之後續使用可接著利用快速TLB之條目而非緩慢循序轉譯表存取。可藉由包括最近最少使用(LRU)之多種替換演算法來管理TLB內容。
在處理器為多處理器系統之處理器的狀況下,每一處理器具有保持諸如I/O、快取記憶體、TLB及記憶體之共用資源互鎖以達成一致性的責任。通常,「窺探」技術將用於維持快取記憶體之一致性中。在窺探環境中,可將每一快取列標示為處於共用狀態、互斥狀態、改變之狀態、無效狀態及其類似者中之任一者以便促進共用。
舉例而言,I/O單元5054(圖15)為處理器提供用於附加至包括磁帶、光碟、印表機、顯示器及網路之周邊器件的構件。I/O單元常常由軟體驅動程式呈現給電腦程式。在諸如可購自IBM®之System z®的大型電腦中,通道配接器及開放系統配接器為大型電腦之提供作業系統與周邊器件之間的通信之I/O單元。
另外,其他類型之計算環境可受益於本發明之一或多項態樣。作為實例,如本文中所提及,環境可包括一模擬器(例如,軟體或其他模擬機制),在該模擬器中模擬特定架構(包括(例如)指令執行、諸如位址轉譯的經建構之功能,及經建構之暫存器)或其子集(例如,在具有處理器及記憶體的原生電腦系統上)。在此環境中,模擬器之一
或多個模擬函式可實施本發明之一或多項態樣,即使執行該模擬器之電腦可具有不同於正模擬之能力的架構亦如此。作為一實例,在模擬模式中,解碼特定指令或正模擬之操作,且建置適當模擬函式以實施個別指令或操作。
在一模擬環境中,主機電腦包括(例如):記憶體,其儲存指令及資料;指令提取單元,其自記憶體提取指令且視情況,提供所提取之指令的本端緩衝;指令解碼單元,其接收所提取之指令且判定已提取的指令之類型;及指令執行單元,其執行該等指令。執行可包括:將資料自記憶體載入至暫存器中;將資料自暫存器儲存回至記憶體;或執行某一類型之算術或邏輯運算(如由解碼單元判定)。在一實例中,以軟體來實施每一單元。舉例而言,將由該等單元執行之操作實施為模擬器軟體內之一或多個副常式。
更特定而言,在大型電腦中,常常借助於編譯應用程式而供程式設計師(現今通常為「C」程式設計師)使用經建構之機器指令。儲存於儲存媒體中之此等指令可原生地在z/Architecture® IBM®伺服器中或者在執行其他架構之機器中執行。可在現有及未來之IBM®大型電腦伺服器中及在IBM®之其他機器(例如,電力系統(Power System)伺服器及System x®伺服器)上模擬指令。可於在使用由IBM®、Intel®、AMDTM及其他製造商製造之硬體的廣泛多種機器上執行Linux的機器中執行指令。除在依據z/Architecture®之彼硬體上執行外,亦可使用Linux以及使用由Hercules、UMX或FSI(Fundamental Software,Inc)進行之模擬的機器,其中執行大體上處於模擬模式。在模擬模式中,由原生處理器執行模擬軟體以模擬模擬處理器的架構。
原生處理器通常執行模擬軟體,該模擬軟體包含韌體或原生作業系統以執行模擬處理器的模擬。模擬軟體負責提取並執行模擬處理器架構之指令。模擬軟體維護模擬程式計數器以追蹤指令邊界。模擬
軟體一次可提取一或多個模擬機器指令,並將該一或多個模擬機器指令轉換成一群對應原生機器指令以供原生處理器執行。可對此等經轉換之指令進行快取,使得可實現較快速轉換。儘管如此,模擬軟體仍維護模擬處理器架構之架構規則以便確保針對模擬處理器撰寫之作業系統及應用程式正確地操作。此外,模擬軟體將提供藉由模擬處理器架構識別之資源,使得經設計以在模擬處理器上執行之作業系統或應用程式可在具有模擬軟體之原生處理器上執行,該等資源包括(但不限於)控制暫存器、通用暫存器、浮點暫存器、包括(例如)段表及頁表之動態位址轉譯功能、中斷機制、內容脈絡切換機制、當日時間(TOD)時鐘及至I/O子系統之經建構介面。
解碼正模擬之指定指令,且呼叫副常式以執行個別指令之功能。模擬模擬處理器之功能的模擬軟體功能係(例如)按以下各者來實施:「C」副常式或驅動程式,或在理解較佳實施例之描述之後將在熟習此項技術者之技藝內的提供用於指定硬體之驅動程式的某一其他方法。包括(但不限於)以下各者之各種軟體及硬體模擬專利說明用以達成針對不同機器進行架構之指令格式用於可用於熟習此項技術者的目標機器的模擬的多種已知方式:Beausoleil等人之題為「Multiprocessor for Hardware Emulation」之美國專利證書第5,551,013號;及Scalzi等人之題為「Preprocessing of Stored Target Routines for Emulating Incompatible Instructions on a Target Processor」的美國專利證書第6,009,261號;及Davidian等人之題為「Decoding Guest Instruction to Directly Access Emulation Routines that Emulate the Guest Instructions」的美國專利證書第5,574,873號;及Gorishek等人之題為「Symmetrical Multiprocessing Bus and Chipset Used for Coprocessor Support Allowing Non-Native Code to Run in a System」的美國專利證書第6,308,255號;及Lethin等人之題為
「Dynamic Optimizing Object Code Translator for Architecture Emulation and Dynamic Optimizing Object Code Translation Method」的美國專利證書第6,463,582號;及Eric Traut之題為「Method for Emulating Guest Instructions on a Host Computer Through Dynamic Recompilation of Host Instructions」的美國專利證書第5,790,825號,前述專利證書中之每一者藉此以其全文引用之方式併入本文中;及許多其他專利證書。
在圖17中,提供模擬主機電腦系統5092之實例,其模擬主機架構之主機電腦系統5000'。在模擬主機電腦系統5092中,主機處理器(CPU)5091為模擬主機處理器(或虛擬主機處理器),且包含具有不同於主機電腦5000'之處理器5091之原生指令集架構的原生指令集架構之模擬處理器5093。模擬主機電腦系統5092具有模擬處理器5093可存取的記憶體5094。在實例實施例中,記憶體5094經分割成主機電腦記憶體5096部分及模擬常式5097部分。主機電腦記憶體5096可用於根據主機電腦架構之模擬主機電腦5092的程式。模擬處理器5093執行不同於模擬處理器5091之架構的架構之經建構指令集之原生指令,該等原生指令係自模擬常式記憶體5097獲得,且可藉由使用在序列與存取/解碼常式中獲得之一或多個指令來自主機電腦記憶體5096中之程式存取主機指令以供執行,序列與存取/解碼常式可解碼所存取之主機指令以判定用於模擬所存取之主機指令之功能的原生指令執行常式。舉例而言,針對主機電腦系統5000'之架構定義之其他設施可藉由經建構之設施常式來模擬,包括諸如通用暫存器、控制暫存器、動態位址轉譯及I/O子系統支援及處理器快取記憶體的設施。模擬常式亦可利用在模擬處理器5093中可用之功能(諸如,通用暫存器及虛擬位址之動態轉譯)以改良模擬常式的效能。亦可提供專用硬體及卸載引擎以輔助處理器5093模擬主機電腦5000'之功能。
本文所使用之術語僅為了描述特定實施例之目的,且並不意欲為本發明之限制。如本文中所使用,除非上下文另有清楚地指示,否則單數形式「一」及「該」意欲亦包括複數形式。應進一步理解,當術語「包含」用於此說明書中時,其指定所陳述之特徵、整數、步驟、操作、元件及/或組件之存在,但並不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組之存在或添加。
以下申請專利範圍中之所有構件或步驟加功能元件的對應結構、材料、動作及等效物(若有的話)意欲包括用於結合如特別主張之其他所主張元件執行功能的任何結構、材料或動作。出於說明及描述之目的已呈現了本發明之一或多項態樣的描述,但該描述並不意欲為詳盡的或以所揭示形式限制本發明。在不偏離本發明之範疇及精神之情況下,許多修改及變化對於一般熟習此項技術者將為顯而易見的。選擇及描述實施例以便最好地解釋本發明之原理及實務應用,且使得其他一般熟習此項技術者能夠針對具有如適合於所預期之特定用途的各種修改之各種實施例來理解本發明。
300‧‧‧模擬主機電腦系統
302‧‧‧主機電腦
304‧‧‧主機處理器(CPU)
306‧‧‧模擬處理器
308‧‧‧記憶體
310‧‧‧主機電腦記憶體部分
312‧‧‧模擬常式部分
314‧‧‧主機/超管理器
316‧‧‧虛擬機
318‧‧‧客體作業系統
Claims (20)
- 一種用於促進一計算環境中之處理的電腦程式產品,該電腦程式產品包含:一電腦可讀儲存媒體,其可由一處理電路讀取且儲存指令以供該處理電路執行以用於執行一方法,該方法包含:由一程式獲得一警告追蹤設施已安裝於該計算環境內的一指示,該警告追蹤設施將一警告追蹤寬容週期提供給該程式以執行一功能;由該程式接收一警告追蹤通知,該警告追蹤通知指示該警告追蹤寬容週期已開始;及基於該警告追蹤通知,由該程式在該警告追蹤寬容週期內起始至少該功能。
- 如請求項1之電腦程式產品,其中該方法進一步包含由該程式針對該警告追蹤設施註冊。
- 如請求項2之電腦程式產品,其中基於該註冊,針對該警告追蹤設施而啟用該程式。
- 如請求項1之電腦程式產品,其中該警告追蹤通知包含一中斷,在該中斷中,在該警告追蹤寬容週期終止之後釋放指派給該程式之共用資源。
- 如請求項1之電腦程式產品,其中該功能包含以下各者中之一者:完成在一處理器上執行的供該程式執行之一可分派單元;或使該可分派單元在該計算環境之另一處理器上為可重新分派的。
- 如請求項1之電腦程式產品,其中該程式為一客體程式,在提供 給一客體中央處理單元的供該客體程式執行之一時間配量期間該客體程式能夠存取該計算環境之共用資源,且其中該警告追蹤寬容週期有別於該時間配量。
- 如請求項6之電腦程式產品,其中該警告追蹤寬容週期使該時間配量過早地終止。
- 如請求項6之電腦程式產品,其中除該時間配量外,該警告追蹤寬容週期亦提供執行該功能之一週期。
- 如請求項1之電腦程式產品,其中該方法進一步包含由該程式指示該功能在該警告追蹤寬容週期期間的完成。
- 如請求項9之電腦程式產品,其中該方法進一步包含在該程式下一次執行時,由該程式接收該功能在該警告追蹤寬容週期期間完成的一指示。
- 一種用於促進一計算環境中之處理的電腦系統,該電腦系統包含:一記憶體;及與該記憶體通信之一處理器,其中該電腦系統經組態以執行一方法,該方法包含:由一程式獲得一警告追蹤設施已安裝於該計算環境內的一指示,該警告追蹤設施將一警告追蹤寬容週期提供給該程式以執行一功能;由該程式接收一警告追蹤通知,該警告追蹤通知指示該警告追蹤寬容週期已開始;及基於該警告追蹤通知,由該程式在該警告追蹤寬容週期內起始至少該功能。
- 如請求項11之電腦系統,其中該方法進一步包含由該程式針對該警告追蹤設施註冊。
- 如請求項12之電腦系統,其中基於該註冊,針對該警告追蹤設施而啟用該程式。
- 如請求項11之電腦系統,其中該功能包含以下各者中之一者:完成在一處理器上執行的供該程式執行之一可分派單元;或使該可分派單元在該計算環境之另一處理器上為可重新分派的。
- 如請求項11之電腦系統,其中該程式為一客體程式,在提供給一客體中央處理單元的供該客體程式執行之一時間配量期間該客體程式能夠存取該計算環境之共用資源,且其中該警告追蹤寬容週期有別於該時間配量。
- 如請求項15之電腦系統,其中該警告追蹤寬容週期使該時間配量過早地終止。
- 如請求項15之電腦系統,其中除該時間配量外,該警告追蹤寬容週期亦提供執行該功能之一週期。
- 一種促進一計算環境中之處理的方法,該方法包含:由一程式獲得一警告追蹤設施已安裝於該計算環境內的一指示,該警告追蹤設施將一警告追蹤寬容週期提供給該程式以執行一功能;由該程式接收一警告追蹤通知,該警告追蹤通知指示該警告追蹤寬容週期已開始;及基於該警告追蹤通知,由該程式在該警告追蹤寬容週期內起始至少該功能。
- 如請求項18之方法,其中該功能包含以下各者中之一者:完成在一處理器上執行的供該程式執行之一可分派單元;或使該可分派單元在該計算環境之另一處理器上為可重新分派的。
- 如請求項18之方法,其中該程式為一客體程式,在提供給一客體中央處理單元的供該客體程式執行之一時間配量期間該客體程式能夠存取該計算環境之共用資源,且其中該警告追蹤寬容週期有別於該時間配量。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/352,514 US9110878B2 (en) | 2012-01-18 | 2012-01-18 | Use of a warning track interruption facility by a program |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201351288A true TW201351288A (zh) | 2013-12-16 |
TWI540510B TWI540510B (zh) | 2016-07-01 |
Family
ID=48780919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102100974A TWI540510B (zh) | 2012-01-18 | 2013-01-10 | 用於藉由程式對警告追蹤中斷設備之使用之電腦程式產品、電腦系統及其方法 |
Country Status (24)
Country | Link |
---|---|
US (2) | US9110878B2 (zh) |
EP (1) | EP2805236B1 (zh) |
JP (1) | JP6249961B2 (zh) |
KR (1) | KR101625317B1 (zh) |
CN (1) | CN104054054B (zh) |
AU (1) | AU2012366768B2 (zh) |
BR (1) | BR112014017828B1 (zh) |
CA (1) | CA2862265C (zh) |
DK (1) | DK2805236T3 (zh) |
ES (1) | ES2598816T3 (zh) |
HK (1) | HK1201348A1 (zh) |
HR (1) | HRP20161265T1 (zh) |
HU (1) | HUE029040T2 (zh) |
IL (1) | IL231839B (zh) |
IN (1) | IN2014CN04836A (zh) |
MX (1) | MX363387B (zh) |
PL (1) | PL2805236T3 (zh) |
PT (1) | PT2805236T (zh) |
RU (1) | RU2565495C2 (zh) |
SG (1) | SG11201402085QA (zh) |
SI (1) | SI2805236T1 (zh) |
TW (1) | TWI540510B (zh) |
WO (1) | WO2013108090A1 (zh) |
ZA (1) | ZA201400733B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9104508B2 (en) | 2012-01-18 | 2015-08-11 | International Business Machines Corporation | Providing by one program to another program access to a warning track facility |
US9110878B2 (en) | 2012-01-18 | 2015-08-18 | International Business Machines Corporation | Use of a warning track interruption facility by a program |
US8850450B2 (en) | 2012-01-18 | 2014-09-30 | International Business Machines Corporation | Warning track interruption facility |
US9223574B2 (en) | 2014-03-27 | 2015-12-29 | International Business Machines Corporation | Start virtual execution instruction for dispatching multiple threads in a computer |
US9213569B2 (en) | 2014-03-27 | 2015-12-15 | International Business Machines Corporation | Exiting multiple threads in a computer |
US9772867B2 (en) | 2014-03-27 | 2017-09-26 | International Business Machines Corporation | Control area for managing multiple threads in a computer |
US9195493B2 (en) | 2014-03-27 | 2015-11-24 | International Business Machines Corporation | Dispatching multiple threads in a computer |
US9898289B2 (en) | 2014-10-20 | 2018-02-20 | International Business Machines Corporation | Coordinated start interpretive execution exit for a multithreaded processor |
US9389897B1 (en) | 2014-12-18 | 2016-07-12 | International Business Machines Corporation | Exiting multiple threads of a simulation environment in a computer |
CN109144679B (zh) * | 2017-06-27 | 2022-03-29 | 华为技术有限公司 | 中断请求的处理方法、装置及虚拟化设备 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4001783A (en) | 1975-03-26 | 1977-01-04 | Honeywell Information Systems, Inc. | Priority interrupt mechanism |
US4271468A (en) * | 1979-11-06 | 1981-06-02 | International Business Machines Corp. | Multiprocessor mechanism for handling channel interrupts |
JP2523653B2 (ja) | 1987-07-08 | 1996-08-14 | 株式会社日立製作所 | 仮想計算機システム |
US5507030A (en) * | 1991-03-07 | 1996-04-09 | Digitial Equipment Corporation | Successive translation, execution and interpretation of computer program having code at unknown locations due to execution transfer instructions having computed destination addresses |
US5414812A (en) | 1992-03-27 | 1995-05-09 | International Business Machines Corporation | System for using object-oriented hierarchical representation to implement a configuration database for a layered computer network communications subsystem |
US5485626A (en) * | 1992-11-03 | 1996-01-16 | International Business Machines Corporation | Architectural enhancements for parallel computer systems utilizing encapsulation of queuing allowing small grain processing |
WO1994027215A1 (en) | 1993-05-07 | 1994-11-24 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
CA2124772C (en) | 1994-05-31 | 2000-02-08 | Russell Francis Byers | Processor shelf controller |
US5551013A (en) | 1994-06-03 | 1996-08-27 | International Business Machines Corporation | Multiprocessor for hardware emulation |
US5548535A (en) | 1994-11-08 | 1996-08-20 | Advanced Micro Devices, Inc. | Monitor utility for use in manufacturing environment |
JPH09106358A (ja) * | 1995-10-12 | 1997-04-22 | Hitachi Ltd | 仮想計算機システムのスケジューリング方法および装置 |
US5790825A (en) | 1995-11-08 | 1998-08-04 | Apple Computer, Inc. | Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions |
FR2760109B1 (fr) | 1997-02-25 | 1999-05-28 | Sextant Avionique | Procede et dispositif pour l'execution par un processeur unique de plusieurs fonctions de niveaux de criticite differents, avec une grande securite de fonctionnement |
CN1113289C (zh) * | 1997-03-04 | 2003-07-02 | 松下电器产业株式会社 | 能执行多异步运行任务中的异步事件任务的处理器 |
US6009261A (en) | 1997-12-16 | 1999-12-28 | International Business Machines Corporation | Preprocessing of stored target routines for emulating incompatible instructions on a target processor |
US6308255B1 (en) | 1998-05-26 | 2001-10-23 | Advanced Micro Devices, Inc. | Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system |
US6463582B1 (en) | 1998-10-21 | 2002-10-08 | Fujitsu Limited | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
US6952827B1 (en) | 1998-11-13 | 2005-10-04 | Cray Inc. | User program and operating system interface in a multithreaded environment |
JP4151198B2 (ja) * | 1999-06-23 | 2008-09-17 | 株式会社デンソー | 割込コントローラ及びマイクロコンピュータ |
US7469405B2 (en) | 2000-04-25 | 2008-12-23 | Kforce Inc. | System and method for scheduling execution of cross-platform computer processes |
US7234139B1 (en) * | 2000-11-24 | 2007-06-19 | Catharon Productions, Inc. | Computer multi-tasking via virtual threading using an interpreter |
US7181744B2 (en) | 2002-10-24 | 2007-02-20 | International Business Machines Corporation | System and method for transferring data between virtual machines or other computer entities |
JP3952992B2 (ja) * | 2003-06-03 | 2007-08-01 | ソニー株式会社 | 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム |
US7475002B1 (en) | 2004-02-18 | 2009-01-06 | Vmware, Inc. | Method and apparatus for emulating multiple virtual timers in a virtual computer system when the virtual timers fall behind the real time of a physical computer system |
US7162666B2 (en) | 2004-03-26 | 2007-01-09 | Emc Corporation | Multi-processor system having a watchdog for interrupting the multiple processors and deferring preemption until release of spinlocks |
US8024544B2 (en) * | 2004-05-13 | 2011-09-20 | International Business Machines Corporation | Free resource error/event log for autonomic data processing system |
US7689998B1 (en) | 2004-07-13 | 2010-03-30 | Microsoft Corporation | Systems and methods that manage processing resources |
US7707578B1 (en) | 2004-12-16 | 2010-04-27 | Vmware, Inc. | Mechanism for scheduling execution of threads for fair resource allocation in a multi-threaded and/or multi-core processing system |
US7725531B1 (en) | 2006-09-18 | 2010-05-25 | George Mason Intellectual Properties, Inc. | Single use server system |
EP2006770B1 (en) | 2007-06-19 | 2014-01-01 | VirtualLogix SA | Load balancing |
US8261284B2 (en) | 2007-09-13 | 2012-09-04 | Microsoft Corporation | Fast context switching using virtual cpus |
JP4620097B2 (ja) * | 2007-09-19 | 2011-01-26 | 株式会社東芝 | 仮想計算機システム及び同システムにおけるスケジュール調整方法 |
US9201673B2 (en) | 2008-07-30 | 2015-12-01 | Microsoft Technology Licensing, Llc | Efficient detection and response to spin waits in multi-processor virtual machines |
US9449314B2 (en) | 2008-10-02 | 2016-09-20 | International Business Machines Corporation | Virtualization of a central processing unit measurement facility |
US9424211B2 (en) * | 2008-12-31 | 2016-08-23 | Intel Corporation | Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller |
JP4862056B2 (ja) | 2009-03-16 | 2012-01-25 | 株式会社東芝 | 仮想計算機管理機構及び仮想計算機システムにおけるcpu時間割り当て制御方法 |
JP5428581B2 (ja) | 2009-06-30 | 2014-02-26 | 富士通株式会社 | 仮想マシン管理プログラム及び仮想マシン管理方法 |
JP2011060055A (ja) | 2009-09-11 | 2011-03-24 | Fujitsu Ltd | 仮想計算機システム、仮想マシンの復旧処理方法及びそのプログラム |
JP5487951B2 (ja) | 2009-12-22 | 2014-05-14 | 富士通株式会社 | 運用管理プログラム、運用管理装置および運用管理方法 |
JP5308383B2 (ja) * | 2010-03-18 | 2013-10-09 | パナソニック株式会社 | 仮想マルチプロセッサシステム |
CN102467373A (zh) | 2010-10-28 | 2012-05-23 | 微软公司 | 任务取消宽限期 |
US8490089B2 (en) | 2010-11-05 | 2013-07-16 | Advanced Micro Devices, Inc. | Guest timer facility to improve management in a virtualized processing system |
US9104508B2 (en) | 2012-01-18 | 2015-08-11 | International Business Machines Corporation | Providing by one program to another program access to a warning track facility |
US8850450B2 (en) | 2012-01-18 | 2014-09-30 | International Business Machines Corporation | Warning track interruption facility |
US9110878B2 (en) | 2012-01-18 | 2015-08-18 | International Business Machines Corporation | Use of a warning track interruption facility by a program |
-
2012
- 2012-01-18 US US13/352,514 patent/US9110878B2/en active Active
- 2012-11-13 AU AU2012366768A patent/AU2012366768B2/en active Active
- 2012-11-13 WO PCT/IB2012/056370 patent/WO2013108090A1/en active Application Filing
- 2012-11-13 EP EP12866318.4A patent/EP2805236B1/en active Active
- 2012-11-13 BR BR112014017828-3A patent/BR112014017828B1/pt active IP Right Grant
- 2012-11-13 KR KR1020147018829A patent/KR101625317B1/ko active IP Right Grant
- 2012-11-13 MX MX2014008461A patent/MX363387B/es unknown
- 2012-11-13 PL PL12866318T patent/PL2805236T3/pl unknown
- 2012-11-13 IN IN4836CHN2014 patent/IN2014CN04836A/en unknown
- 2012-11-13 JP JP2014552701A patent/JP6249961B2/ja active Active
- 2012-11-13 SG SG11201402085QA patent/SG11201402085QA/en unknown
- 2012-11-13 DK DK12866318.4T patent/DK2805236T3/en active
- 2012-11-13 CA CA2862265A patent/CA2862265C/en active Active
- 2012-11-13 PT PT128663184T patent/PT2805236T/pt unknown
- 2012-11-13 HU HUE12866318A patent/HUE029040T2/en unknown
- 2012-11-13 CN CN201280067487.4A patent/CN104054054B/zh active Active
- 2012-11-13 SI SI201230728A patent/SI2805236T1/sl unknown
- 2012-11-13 ES ES12866318.4T patent/ES2598816T3/es active Active
- 2012-11-14 RU RU2012148404/08A patent/RU2565495C2/ru active
- 2012-12-18 US US13/718,570 patent/US9098358B2/en active Active
-
2013
- 2013-01-10 TW TW102100974A patent/TWI540510B/zh active
-
2014
- 2014-01-30 ZA ZA2014/00733A patent/ZA201400733B/en unknown
- 2014-03-31 IL IL231839A patent/IL231839B/en active IP Right Grant
-
2015
- 2015-02-17 HK HK15101779.8A patent/HK1201348A1/zh unknown
-
2016
- 2016-10-03 HR HRP20161265TT patent/HRP20161265T1/hr unknown
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI550516B (zh) | 用於警告追蹤中斷之電腦程式產品、電腦系統及方法 | |
TWI540510B (zh) | 用於藉由程式對警告追蹤中斷設備之使用之電腦程式產品、電腦系統及其方法 | |
TWI533223B (zh) | 用於由一程式提供給另一程式之對警告追蹤設施之存取之電腦程式產品、電腦系統及其方法 | |
AU2012366769B2 (en) | Warning track interruption facility |