用於能在多種架構中初始化的控制實用工具的公用引導序列的製作方法
2023-06-29 05:12:31 2

一個或多個方面總體上涉及計算環境的配置,並且具體地說,涉及支持多個配置。
背景技術:
計算環境提供一系列視環境的架構配置而定的能力及功能。已由提供的兩種架構包括ESA/390及ESA/390為z/Architecture的舊版架構。然而,當引入z/Architecture時,ESA/390繼續受到支持。為在一個環境中支持兩種架構,遵循某些程序。舉例而言,在上電時,使ESA/390引導,並且接著在需要時可進行至z/Architecture的切換。這允許傳統軟體繼續執行而無需改變。提供其他此類程序以便在一個環境中支持兩種架構配置。
甚至在軟體已過渡到較新架構時還維護較早架構增加了複雜性。
因此,本領域中需要解決上述問題。
技術實現要素:
從第一方面看,本發明提供一種用於在計算環境中初始化控制實用工具的方法,所述方法包括:由處理器執行引導序列以便以基於選定架構的選定架構模式引導所述控制實用工具,所述控制實用工具被編寫以用於所述選定架構且被配置為以第一架構配置或第二架構配置中的至少一者被初始化,所述第一架構配置在一個架構中初始化且切換至用於處理的所述選定架構,所述第二架構配置在所述選定架構中進行初始化及處理,並且其中執行所述引導序列包括:執行一個或多個指令而不考慮所述處理器是將基於所述第一架構配置還是基於所述第二架構配置執行初始化,所述一個或多個指令對所述一個架構及所述選定架構是公用的,原因在於所述一個或多個指令被定義在所述一個架構及所述選定架構中,並且所述執行包括執行切換操作以請求對所述處理器的架構模式的切換而不考慮所述處理器是將在所述一個架構還是在所述選定架構中執行初始化,其中所述切換操作基於所述處理器將執行初始化的架構是所述一個架構還是所述選定架構而以不同方式執行,並且基於執行所述切換操作,以所述選定架構模式引導所述控制實用工具。
從另一方面看,本發明提供一種用於在計算環境中初始化控制實用工具的計算機系統,所述計算機系統包括:存儲器;及處理器,其與所述存儲器通信,其中所述計算機系統被配置為執行一種方法,所述方法包括:由處理器執行引導序列以便以基於選定架構的選定架構模式引導所述控制實用工具,所述控制實用工具被編寫以用於所述選定架構且被配置為以第一架構配置或第二架構配置中的至少一者被初始化,所述第一架構配置在一個架構中初始化且切換至用於處理的所述選定架構,所述第二架構配置在所述選定架構中進行初始化及處理,並且其中執行所述引導序列包括:執行一個或多個指令而不考慮所述處理器是將基於所述第一架構配置還是基於所述第二架構配置執行初始化,所述一個或多個指令對所述一個架構及所述選定架構是公用的,原因在於所述一個或多個指令被定義在所述一個架構及所述選定架構中,並且所述執行包括執行切換操作以請求對所述處理器的架構模式的切換而不考慮所述處理器是將在所述一個架構還是在所述選定架構中執行初始化,其中所述切換操作基於所述處理器將執行初始化的架構是所述一個架構還是所述選定架構而以不同方式執行,並且基於執行所述切換操作,以所述選定架構模式引導所述控制實用工具。
從另一方面看,本發明提供一種用於在計算環境中初始化控制實用工具的電腦程式產品,所述電腦程式產品包括:計算機可讀存儲介質,其可由處理電路讀取並存儲由所述處理電路執行以執行一種用於執行本發明的步驟的方法的指令。
從另一方面看,本發明提供一種電腦程式,其存儲在計算機可讀介質上並可載入數字計算機的內部存儲器,所述電腦程式包括軟體代碼部分,當所述程序在計算機上運行時,所述軟體代碼部分用於執行本發明的步驟。
經由提供一種用於在計算環境內初始化控制實用工具的電腦程式產品來克服先前技術的缺點及提供優點。所述電腦程式產品包括(例如)計算機可讀存儲介質,其可由處理電路讀取且存儲供所述處理電路執行以用於執行方法的指令。所述方法包括(例如):由處理器執行引導序列以便以基於選定架構的選定架構模式引導所述控制實用工具,所述控制實用工具被編寫以用於所述選定架構且被配置為以第一架構配置或第二架構配置中的至少一者被初始化,所述第一架構配置在一個架構中初始化且切換至用於處理的所述選定架構,所述第二架構配置在所述選定架構中進行初始化及處理,並且其中執行所述引導序列包括:執行一個或多個指令而不考慮所述處理器是將基於所述第一架構配置還是基於所述第二架構配置執行初始化,所述一個或多個指令對所述一個架構及所述選定架構是公用的,原因在於所述一個或多個指令被定義在所述一個架構及所述選定架構中,並且所述執行包括執行切換操作以請求對所述處理器的架構模式的切換而不考慮所述處理器是將在所述一個架構還是在所述選定架構中執行初始化,其中所述切換操作基於所述處理器將執行初始化的架構是所述一個架構還是所述選定架構而以不同方式執行,並且基於執行所述切換操作,以所述選定架構模式引導所述控制實用工具。
本文亦描述及要求保護涉及一個或多個優選實施例的方法及系統。此外,本文亦描述且可要求保護涉及一個或多個優選實施例的服務。
實現了額外特徵及優點。本文中詳細描述了其他優選實施例及方面且所述實施例及方面被視為所要求保護的發明的一部分。
附圖說明
現在將僅通過實例的方式參考如附圖所示的優選實施例描述本發明,這些附圖是:
圖1描繪根據本發明的一個優選實施例的結合及使用公用引導序列工具的一個或多個方面的計算環境的一個實例;
圖2描繪根據本發明的一個優選實施例的結合及使用公用引導序列工具的一個或多個方面的計算環境的另一實例;
圖3A描繪根據本發明的一個優選實施例的結合及使用公用引導序列工具的一個或多個方面的計算環境的再一實例;
圖3B描繪根據本發明的一個優選實施例的圖3A的存儲器的其他細節;
圖4A描繪根據本發明的一個優選實施例的在一個架構模式中使計算環境通電的邏輯的一個實施例;
圖4B描繪根據本發明的一個優選實施例的與圖4A的通電處理相關聯的進一步處理的一個實施例;
圖5描繪根據本發明的一個優選實施例的程序狀態字的格式的一個實施例;
圖6A描繪根據本發明的一個優選實施例的在與圖4A中通電的一個架構模式不同的架構模式中使計算環境通電的邏輯的一個實施例;
圖6B描繪根據本發明的一個優選實施例的與圖6A的通電處理相關聯的進一步處理的一個實施例;
圖7描繪根據本發明的一個優選實施例的加載程序狀態字指令的一個實例格式;
圖8A描繪根據本發明的一個優選實施例的信號處理器指令的一個實例格式;
圖8B描繪根據本發明的一個優選實施例的與圖8A的信號處理器指令相關聯的處理的一個實施例;
圖9描繪根據本發明的一個優選實施例的執行其中在ESA/390中初始化控制實用工具的引導的邏輯的一個實施例;
圖10描繪執行其中在z/Architecture中初始化控制實用工具的引導的邏輯的一個實施例;
圖11描繪根據本發明的一個優選實施例的用於公用引導序列的邏輯的一個實施例;
圖12描繪根據本發明的一個優選實施例的用於公用引導序列的邏輯的另一實施例;
圖13描繪根據本發明的一個優選實施例的提取程序狀態字指令的一個實例格式;
圖14描繪根據本發明的一個優選實施例的用於公用引導序列的邏輯的又一實施例;
圖15描繪根據本發明的一個優選實施例的執行重設以使控制實用工具重新引導的邏輯的一個實施例;
圖16描繪根據本發明的一個優選實施例的執行重設以使控制實用工具重新引導的邏輯的另一實施例;
圖17描繪根據本發明的一個優選實施例的執行重設以使控制實用工具重新引導的邏輯的再一實施例;
圖18描繪根據本發明的一個優選實施例的當不兼容的控制實用工具涉及引導序列時檢測該不兼容的控制實用工具的邏輯的一個實施例;
圖19描繪根據本發明的一個優選實施例的與執行控制實用工具的引導相關聯的處理的一個實施例;
圖20描繪根據現有技術並且其中可以實施本發明的一個優選實施例的電腦程式產品的一個實施例;
圖21描繪根據現有技術並且其中可以實施本發明的一個優選實施例的主計算機系統的一個實施例;
圖22描繪根據現有技術並且其中可以實施本發明的一個優選實施例的計算機系統的又一實例;
圖23描繪根據現有技術並且其中可以實施本發明的一個優選實施例的包括計算機網絡的計算機系統的另一實例;
圖24描繪根據現有技術並且其中可以實施本發明的一個優選實施例的計算機系統的各種元件的一個實施例;
圖25A描繪根據現有技術並且其中可以實施本發明的一個優選實施例的圖24的計算機系統的執行單元的一個實施例;
圖25B描繪根據現有技術並且其中可以實施本發明的一個優選實施例的圖24的計算機系統的分支單元的一個實施例;
圖25C描繪根據現有技術並且其中可以實施本發明的一個優選實施例的圖24的計算機系統的加載/存儲單元的一個實施例;
圖26描繪仿真主計算機系統的一個實施例;
圖27描繪根據現有技術並且其中可以實施本發明的一個優選實施例的雲計算節點的一個實施例;
圖28描繪根據現有技術並且其中可以實施本發明的一個優選實施例的雲計算環境的一個實施例;及
圖29描繪根據現有技術並且其中可以實施本發明的一個優選實施例的抽象模型層的一個實例。
具體實施方式
根據一個或多個方面,提供一種公用引導序列工具,其使得控制實用工具(例如,作為實例的作業系統、控制程序或無需作業系統來引導的其他獨立工具(諸如維護及管理(例如,轉儲、磁碟格式)實用工具)能夠在不改變引導序列的情況下被以多個配置引導。舉例而言,作業系統或其他控制實用工具使用公用引導序列以能夠在第一架構配置中或在第二架構配置中引導,所述第一架構配置在一個架構(例如ESA/390)中初始化且接著切換至另一架構(諸如z/Architecture)以用於處理,所述第二架構配置在(例如)所述另一架構(例如z/Architecture)中進行初始化及處理。
當逐步引入z/Architecture時,控制實用工具繼續在ESA/390(z/Architecture的舊版架構)中引導,並且接著在引導序列期間,處理將切換至z/Architecture。這允許傳統軟體繼續執行而無需改變。然而,可存在其中需要直接引導至z/Architecture中的情況。因此,提供一種公用引導序列,其使得控制實用工具能夠以透明方式被以任一配置引導。舉例而言,被編寫以用於z/Architecture的作業系統使用所述引導序列以便在ESA/390中引導及接著切換至z/Architecture,或直接引導至z/Architecture。儘管參考ESA/390及z/Architecture描述本文中的實施例,但一個或多個方面亦適用於其他架構。
參考圖1描述結合及使用公用引導序列工具的一個或多個方面的計算環境的一個實例。參考圖1,在一個實例中,計算環境100基於由IBM提供的z/Architecture。z/Architecture在標題為「z/Architecture-Principles of Operation」的公開號為SA22-7932-09號的IBM出版物(2012年9月,第10版)中描述。儘管計算環境是基於z/Architecture的,但在一個優選實施例中,其亦支持一個或多個其他架構配置,諸如ESA/390。
作為一個實例,計算環境100包括中央處理器複合體(CPC)102,其經由一個或多個控制單元108耦接至一個或多個輸入/輸出(I/O)設備106。中央處理器複合體102包括(例如)耦接至一個或多個中央處理器(亦稱為中央處理單元(CPU))110及輸入/輸出子系統111的處理器存儲器104(亦稱為主存儲器、主存儲裝置、中央存儲裝置),在下文描述中央處理器及輸入/輸出子系統中的每一者。
處理器存儲器104包括(例如)一個或多個分區112(例如,邏輯分區)及處理器固件113,所述處理器固件包括邏輯分區系統管理程序114及其他處理器固件115。邏輯分區系統管理程序114的一個實例為Processor Resource/System ManagerTM(PR/SM)。IBM、Z/OS、Z/VM、Z/Architecture及Processor Resource/System Manager為國際商業機器公司在全世界各地的註冊商標。本文中使用的其他名稱可為國際商業機器公司或其他公司的註冊商標、商標或產品名稱。
邏輯分區充當獨立系統且其中具有一個或多個應用120及可選地具有駐留作業系統122,對於每一邏輯分區,此情況可能不同。在一個優選實施例中,所述作業系統為紐約阿蒙克市的國際商業機器公司所提供的z/OS作業系統、z/VM作業系統、z/Linux作業系統或TPF作業系統。作為實例,作業系統可包括公用引導序列工具124,或所述公用引導序列工具可獨立於作業系統提供而用於使所述作業系統引導(或初始化)。
邏輯分區112由邏輯分區系統管理程序114管理,所述邏輯分區系統管理程序是由運行於處理器110上的固件實施的。如本文中所使用,固件包括(例如)處理器的微碼和/或毫碼(millicode)。其包括(例如)用於實施較高層級機器碼的硬體層級指令和/或數據結構。在一個優選實施例中,其包括(例如)專屬碼,所述專屬碼通常作為包括受信任軟體的微碼或特定於底層硬體的微碼被傳送,並且控制對系統硬體的作業系統訪問。
中央處理器110為分配至邏輯分區的物理處理器資源。具體地說,每一邏輯分區112具有一個或多個邏輯處理器,所述邏輯處理器中的每一者表示分配至該分區的所有或一部分物理處理器110。特定分區112的邏輯處理器可專用於該分區,以便為該分區保留基本處理器資源110或與另一分區共享所述基本處理器資源,以使得基本處理器資源對於另一分區為潛在可用的。在一個實例中,一個或多個CPU可包括本文中所描述的配置架構模式工具130的多個方面。
輸入/輸出子系統111引導輸入/輸出設備106與主存儲裝置104之間的信息流。輸入/輸出子系統111耦接至中央處理複合體,以便其可為中央處理複合體的一部分或與所述中央處理複合體分離。I/O子系統減輕中央處理器的與輸入/輸出設備直接通信的任務且準許數據處理與輸入/輸出處理同時進行。為提供通信,I/O子系統使用I/O通信適配器。存在各種類型的通信適配器,包括(例如)通道、I/O適配器、PCI卡、乙太網卡、小型計算機存儲接口(SCSI)卡等。在本文所描述的特定實例中,I/O通信適配器為通道,並且因此I/O子系統在本文中被稱作通道子系統。然而,此僅為一個實例。可使用其他類型的I/O子系統。
I/O子系統在管理往返於輸入/輸出設備106的信息流時使用一個或多個輸入/輸出路徑作為通信鏈路。在此特定實例中,因為通信適配器為通道,故所述路徑被稱為通道路徑。
參考圖2描述結合及使用公用引導序列工具的一個或多個方面的計算環境的另一實例。在此實例中,計算環境200包括未分區的環境,所述環境可被配置以用於多個架構模式(包括z/Architecture及ESA/390)。所述計算環境包括(例如)處理器(中央處理單元-CPU)202,所述處理器包括(例如)配置架構模式工具204及一個或多個高速緩存206。處理器202以通信方式耦接至具有一個或多個高速緩存210的存儲器部分208且耦接至輸入/輸出(I/O)子系統212。I/O子系統212以通信方式耦接至外部I/O設備214,所述外部I/O設備可包括(例如)數據輸入設備、傳感器和/或諸如顯示器的輸出設備。
在一個實例中,存儲器部分208亦包括諸如作業系統的至少一個控制實用工具220,其在引導時使用公用引導序列222。
參考圖3A描述結合及使用公用引導序列工具的一個或多個方面的計算環境的另一實例。在此實例中,計算環境300包括(例如)本機中央處理單元(CPU)302、存儲器304及一個或多個輸入/輸出設備和/或接口306,以上各者經由(例如)一個或多個總線308和/或其他連接彼此耦接。作為實例,計算環境300可包括:處理器或Power SystemsTM伺服器;由加州帕洛阿爾託的惠普公司(Hewlett Packard Co.,Palo Alto,California)提供的具有英特爾安騰II(Intel Itanium II)處理器的HP Superdome;和/或基於由國際商用機器公司、惠普公司、英特爾公司、甲骨文公司(Oracle)或其他公司提供的架構的其他機器。PowerPC和Power Systems為國際商業機器公司在全世界各地的註冊商標。Intel和Itanium是英特爾公司或其子公司在美國或其他國家的商標或註冊商標。
本機中央處理單元302包括一個或多個本機寄存器310,諸如在環境內進行處理期間使用的一個或多個通用寄存器和/或一個或多個專用寄存器,並且可選地包括配置架構模式工具311。這些寄存器包括表示在任何特定時間點處的環境狀態的信息。
此外,本機中央處理單元302執行存儲於存儲器304中的指令及代碼。在一個特定實例中,中央處理單元執行存儲於存儲器304中的仿真器代碼312。此代碼使在一個架構中配置的計算環境能夠仿真一個或多個其他架構。舉例而言,仿真器代碼312允許基於除z/Architecture以外的架構的機器(諸如PowerPC處理器、Power Systems伺服器、HP Superdome伺服器或其他)仿真z/Architecture(和/或ESA/390)及執行基於z/Architecture開發的軟體及指令。
參考圖3B描述關於仿真器代碼312的更多細節。存儲於存儲器304中的客體(guest)指令350包括軟體指令(例如,與機器指令相關),所述軟體指令經開發以在與本機CPU 302的架構不同的架構中執行。舉例而言,客體指令350可經設計以在z/Architecture處理器202上執行,而相反在本機CPU 302上被仿真,所述本機CPU可為例如英特爾安騰II處理器。在一個實例中,客體指令包括公用引導序列351。在一個實例中,仿真器代碼312包括指令取回例程352以自存儲器304獲得一個或多個客體指令350且可選地為所獲得的指令提供本地緩衝。所述仿真器代碼亦包括指令轉換例程354以判定已獲得的客體指令的類型且將所述客體指令轉換為一個或多個對應的本機指令356。此轉換包括(例如)識別待由客體指令執行的功能及選擇本機指令(多個)來執行該功能。
此外,仿真器代碼312包括仿真控制例程360以使本機指令得以執行。仿真控制例程360可使本機CPU 302執行仿真一個或多個先前所獲得的客體指令的本機指令的例程,並且在此類執行結束時返回對指令取回例程的控制,以仿真下一客體指令或一組客體指令的獲得。本機指令356的執行可包括:將數據自存儲器304加載至寄存器中;將數據自寄存器存儲回至存儲器;或執行某一類型的算術或邏輯運算,如由轉換例程所判定的。
每一例程例如實施於軟體中,所述軟體存儲於存儲器中且由本機中央處理單元302執行。在其他實例中,一個或多個例程或操作實施於固件、硬體、軟體或其某一組合中。所仿真處理器的寄存器可使用本機CPU的寄存器310或通過使用存儲器304中的位置來仿真。在優選實施例中,客體指令350、本機指令356及仿真器代碼312可駐留於同一存儲器中或可分布在不同存儲器設備之間。
上文所描述的計算環境僅為可使用的計算環境的實例。可使用其他環境,包括(但不限於)其他未分區環境、其他分區環境和/或其他仿真環境;各實施例不限於任何一個環境。
如本文所描述,提供公用引導序列以使控制實用工具在多個架構配置中的一者中引導,所述多個架構配置包括(例如)第一配置或第二配置,在所述第一配置中,在第一架構模式(例如,傳統模式,諸如ESA/390)中初始化控制實用工具且接著處理切換至第二架構模式(例如,增強模式,諸如z/Architecture),在所述第二配置中,控制實用工具在(例如)第二架構模式中進行初始化及處理。在一個實施例中,第一架構模式包括第一指令「設定架構(Set Architecture)」且具有第一組受支持特徵,諸如31位尋址、使用32位通用寄存器及各種工具。此外,第二架構模式包括第二指令「設定架構」且具有第二組受支持特徵,諸如64位尋址、使用64位通用寄存器及各種工具(諸如,動態地址轉換和/或其他工具)。
在一個實施例中,通過安裝配置架構模式工具而促進第二配置,其中引導實用工具以所述第二配置在選定架構模式(諸如z/Architecture)中初始化且直接進行處理。如本文所描述,此工具提供用於計算環境(例如,處理器、LPAR、虛擬客體)的通電或引導序列,所述通電或引導序列使計算環境在選定架構模式中引導。因此,在提供關於公用引導序列的更多細節之前,描述配置架構模式工具的各方面。然而,應注意,公用引導序列能力亦可用於不包括配置架構模式工具的環境中。
在一個實施例中,將配置架構模式(CAM)工具安裝在計算環境的一個或多個處理器(例如中央處理單元)中以控制該環境的重新配置。舉例而言,在將CAM安裝於支持多個架構模式的計算環境中時,計算環境經重新配置以使得限制至少一個架構模式的一個或多個方面的使用。
配置架構模式工具的一個特定實例為配置z/Architecture架構模式(CZAM)工具。CZAM的安裝由(例如)工具安裝指示符(例如,設定為(例如)1的位138)指示。在一個特定實例中,當位138被設定為1時,安裝CZAN工具,並且在安裝時,正常重設及清除重設將配置置於z/Architecture架構模式中。因此,在一個實例中,指示z/Architecture架構模式為活動的工具位(例如,位2)亦被設定為1。
基於CZAM的安裝,計算環境(例如,單處理器、邏輯分區、虛擬客體等)經重新配置以使得選定架構(例如ESA/390)的一個或多個方面不再受到支持。下文描述不再受到支持的各種方面和/或受CZAM的安裝影響的某些處理。儘管在本文所描述的優選實施例中,多個架構模式包括傳統架構(例如ESA/390)及增強型架構(例如z/Architecture)且傳統架構ESA/390的各方面不再受到支持,但其他優選實施例可包括其他架構。ESA/390及z/Architecture僅為實例。
受CZAM的安裝影響的一個處理為通電處理。為描述此處理如何受到影響,首先參考圖4A至圖4B描述用於支持多個架構配置且不包括CZAM工具的環境的通電處理,並且接著參考圖6A至圖6B描述用於針對多個架構配置且確實包括CZAM工具的環境的通電處理。系統的通電包括(例如)起動系統及發起引導序列或發起系統中的操作的其他手段。所述通電可對應於物理通電、硬體重設和/或虛擬通電(例如,在仿真系統、虛擬機或客體環境中)。
首先參考圖4A,基於正在被通電的計算環境的處理器及正在被激活的操作者鍵(例如,加載正常(load-normal)或加載清除(load clear)鍵),處理器進入加載狀態且將計算環境設定為特定架構模式(例如ESA/390模式),步驟400。舉例而言,執行初始程序加載(IPL),諸如通道控制字(CCW)初始程序加載(IPL),步驟402。初始程序加載提供用於使得自指定設備讀取程序及用於發起該程序的執行的人工手段。通過將加載單元地址控制項設定為四數字編號來指定輸入設備及通過隨後激活用於特定CPU的加載清除或加載正常鍵來人工發起CCW型IPL。
激活加載清除鍵引起對配置執行清除重設,並且激活加載正常鍵引起對此CPU(其上激活了鍵的CPU)執行初始CPU重設,引起CPU重設傳播至所述配置中的所有其他CPU,並且引起對所述配置的剩餘部分執行子系統重設。激活加載清除鍵或加載正常鍵設定架構模式(例如,ESA/390)。
在操作的加載部分中,在已執行重設之後,此CPU接著進入加載狀態。此CPU不必在重設操作的執行期間進入停止狀態。加載指示符在CPU處於加載狀態的同時為開啟的。
隨後,從由加載單元地址控制項指定的I/O設備發起通道程序讀取操作。執行通道程序的效果與以下一樣:始於絕對存儲位置0處的格式0CCW用修飾符位0、數據地址0、字節計數24、鏈式命令及SL1標誌1及所有其他標誌0指定讀取命令。
當成功完成IPL輸入/輸出操作時,將用於IPL設備的子系統標識字存儲於所選的絕對存儲位置(例如,位置184至187),將0存儲於其他所選絕對存儲位置(例如,位置188至191),並且自所選絕對存儲位置(例如,位置0至7)加載新程序狀態字(PSW),步驟404。程序狀態字控制計算環境的操作。
如果PSW加載成功且未檢測到機器故障,則此CPU離開加載狀態且關閉加載指示符。如果速率控制項被設定至處理位置,則CPU進入工作狀態,並且計算環境的操作在新程序狀態字(PSW)的控制下繼續,步驟406。引導後的計算環境接著運行,步驟408,如參考圖4B進一步描述的。
參考圖4B,在ESA/390模式中啟動引導後的計算環境,步驟420,並且因此在ESA/390模式中執行操作,步驟422。在某一時刻,可作出將架構模式自ESA/390變為z/Architecture的請求。具體地說,程序將命令碼(例如,指定「設定架構」的代碼)發送至處理器,所述處理器用所述命令碼發出信號處理器(SIGP)指令,以自ESA/390模式切換至z/Architecture模式,步驟424。舉例而言,使用CPU信令及響應工具,其包括信號處理器指令(下文所描述)及解譯及作用於伺服器命令碼(包括用於「設定架構」的命令碼)的機制。所述工具提供在CPU之間的通信,包括:傳輸、接收及解碼一組被指派的命令碼;發起指定操作;及響應發出信令的CPU。通過使用「設定架構」,將架構模式設定為期望配置,例如,z/Architecture。下文進一步描述此處理的更多細節。
此後,作出關於是否接受SIGP操作的判定,查詢426。基於返回碼,在已作出CPU已處於代碼所指定的架構模式中的判定時(亦即,判定「設定架構」表示切換至當前模式自身,或判定是否自一個模式切換至另一模式),可診斷大量錯誤條件,包括「無效參數」指示。如果接受SIGP且「設定架構」表示合法模式切換操作,則接收SIGP操作的計算環境的所有處理器使用(例如)本文所描述的「設定架構」處理轉變成z/Architecture模式,步驟428。然而,如果SIGP操作為不合法的,則指示錯誤,步驟430。
如上文所描述,通電操作加載程序狀態字。參考圖5描述程序狀態字(PSW)的格式的一個實施例。參考圖5,在此實例中,程序狀態字的格式為ESA/390格式,除將位31展示為EA之外,如下文所指示。
在一個實施例中,作為一個實例,程序狀態字500包括以下欄位:
Per屏蔽(R)502:位1控制是否針對與程序事件記錄(PER)相關聯的中斷啟用CPU。當位為0時,沒有PER事件可引起中斷。當位為1時,受控制寄存器9中的PER事件屏蔽位的影響,準許中斷。
DAT模式(T)504:位5控制是否發生用於存取存儲裝置的邏輯及指令地址的隱含動態地址轉換(DAT)。當位為0時,DAT關閉,並且將邏輯及指令地址視為實地址。當位為1時,DAT開啟,並且調用動態地址轉換機制。
I/O屏蔽(IO)506:位6控制是否針對I/O中斷啟用CPU。當位為0時,I/O中斷不可發生。當位為1時,I/O中斷受控制寄存器6中的I/O中斷子類別屏蔽位影響。當I/O中斷子類別屏蔽位為0時,針對該I/O中斷子類別的I/O中斷不可發生;當I/O中斷子類別屏蔽位為1時,針對該I/O中斷子類別的I/O中斷可發生。
外部屏蔽(EX)508:位7控制是否藉由包括在外部類別中的條件針對中斷啟用CPU。當位為0時,外部中斷不可發生。當位為1時,外部中斷受控制寄存器0中的對應的外部子類別屏蔽位的影響。當子類別屏蔽位為0時,與子類別相關聯的條件不能引起中斷。當子類別屏蔽位為1時,該子類別中的中斷可發生。
PSW鍵(鍵)510:位9至11形成供CPU進行存儲參考的存取鍵。如果參考經受鍵控保護,則在存儲信息時或在自受保護而免於取回的位置取回信息時,將PSW鍵與存儲鍵相匹配。然而,對於移動至主要鍵(Move to Primary)、移動至次要鍵(Move to Secondary)、以鍵移動(Move with Key)、以源鍵移動(Move with Source Key)及以目的地鍵移動(Move with Destination Key)中的每一者的操作數中的一者,並且對於以可選的規格移動(Move with Optional Specification)的任一或兩個操作數,使用指定為操作數的存取鍵取代PSW鍵。
位12 512:此位指示當前架構模式。其針對ESA/390PSW格式設定為1。對於z/Architecture PSW格式,此位被定義為0。當處於z/Architecture模式中時,定義加載PSW擴展(LPSWE)指令用於加載真實的z/Architecture PSW(其具有與本文中所描述的格式不同的格式,包括具有位64至127中的指令地址)。然而,ESA/390加載PSW(LPSW)仍受支持且可用於加載ESA/390格式PSW。當執行LPSW且計算環境處於z/Architecture模式時,處理器將ESA/390格式PSW擴展至z/Architecture格式,包括使位12反轉。這與折迭作業系統所執行以產生ESA/390格式PSW的z/Architecture PSW格式相反。亦即,在支持ESA/390及z/Architecture兩者的計算環境中,當PSW的複本經放置於存儲裝置中時,作業系統將完整z/Architecture PSW折迭成ESA/390PSW的大小及格式。因此,具有PSW格式相關性的其他軟體可能未覺察到z/Architecture PSW。
機器檢查屏蔽(M)514:位13控制是否通過機器檢查條件針對中斷啟用CPU。當位為0時,機器檢查中斷不可發生。當位為1時,準許歸因於系統損壞及指令處理損壞的機器檢查中斷,但歸因於其他機器檢查子類別條件的中斷受控制寄存器14中的子類別屏蔽位影響。
等待狀態(W)516:當位14為1時,CPU處於等待中;亦即,CPU未處理任何指令,但可發生中斷。當位14為0時,指令取回及執行以正常方式發生。當位為1時,等待指示符為1。
問題狀態(P)518:當位15為1時,CPU處於問題狀態中。當位15為0時,CPU處於監督狀態中。在監督狀態中時,所有指令為有效的。在問題狀態中,僅提供有意義信息至問題程序且不影響系統完整性的那些指令是有效的;這些指令被稱為非特權指令。在問題狀態下為無效的指令被稱為特權指令。當問題狀態下的CPU嘗試執行特權指令時,識別特權操作異常。僅在滿足具體授權測試時,藉由處於問題狀態中的CPU執行被稱為半特權指令的另一組指令;否則,視所違反的特定要求而定,識別特權操作異常或某一其他程序異常。
地址空間控制項(AS)520:位16及17結合PSW位5控制轉換模式。
條件代碼(CC)522:位18及19為條件代碼的兩個位。視在執行某些指令時所獲得的結果而定,條件代碼被設定為0、1、2或3。多數算術及邏輯運算以及一些其他運算設定條件代碼。指令BRANCH ON CONDITION能夠將條件代碼值的任何選擇指定為用於分支的準則。
程序屏蔽524:位20至23為四個程序屏蔽位。每一位如下與程序異常相關聯:
當屏蔽位為1時,異常導致中斷。當屏蔽位為0時,不發生中斷。HFP有效值屏蔽位的HFP指數下溢屏蔽位的設定還確定在對應異常發生時完成計算的方式。
擴展尋址模式(EA)526:位31結合位32(基本尋址模式位)控制有效地址的大小及有效地址產生。當位31為0時,藉由位32控制尋址模式。當位31及32兩者均為1時,指定64位尋址。
基本尋址模式(BA)528:位31及32控制有效地址的大小及有效地址產生。當位31及32兩者均為0時,指定24位尋址。當位31為0且位32為1時,指定31位尋址。當位31及32兩者均為1時,指定64位尋址。位31為1且位32為0是導致識別到指定異常的無效組合。尋址模式並不控制PER地址或用於存取DAT、ASN、可分派單元控制項、連結、表項、追蹤表或存取列表或連結堆棧的地址的大小。藉由PSW的位31及32對尋址模式的控制概括如下:
指令地址530:PSW的位33至63為指令地址。除非CPU處於等待狀態中(PSW的位14為1),否則所述地址指定待執行的下一指令的最左字節的位置。
根據一個方面,當在計算環境中安裝及激活諸如配置z/Architecture架構模式(CZAM)工具的配置架構模式工具時,改變通電處理。參考圖6A描述CZAM通電處理的一個實施例。
參考圖6A,基於正被通電的計算環境的處理器,在安裝CZAM時,將計算環境設定為由配置架構模式工具指定的特定架構模式(例如,z/Architecture模式)(亦被稱作ESAME),步驟600。舉例而言,如上文所述,執行初始程序加載(IPL),諸如通道控制字(CCW)初始程序加載(IPL),步驟602,並且當成功完成IPL輸入/輸出操作時,將用於IPL設備的子系統標識字存儲於所選絕對存儲位置(例如,位置184的187)中,將0存儲於其他所選絕對存儲位置(例如,位置188至191)中,並且在此實施例中,從所選絕對存儲位置(例如,位置0至7)產生16位元組新程序狀態字(PSW),步驟604。新16位元組PSW例如從所選存儲雙字(例如,位置0至7)的內容形成。雙字的位12將為1;否則可指示錯誤。(所述錯誤可為識別到的指定異常、機器檢查或又一錯誤指示)。將新產生的PSW的位0至32設定為所選雙字的位0至32,不同之處在於位12被反轉。將新產生的PSW的位33至96設定為0。根據所選雙字的位33至63初始化新產生的PSW的位位置97至127。
在一個實施例中,在加載待由指令加載的PSW欄位之前,未檢查其有效性。在一個實施例中,檢查PSW的位12的有效性。在又一實施例中,檢查所有欄位的有效性。在另一實施例中,在已初始化PSW之後,檢查在加載PSW之前未檢查的任何位的有效性,並且處理器可指示錯誤(例如,藉由引發識別到的指定異常、機器檢查或又一錯誤指示)。
計算環境進入工作狀態,並且計算環境的操作在新程序狀態字(PSW)的控制下繼續進行,步驟606。接著運行引導後的計算環境,步驟608,如參考圖6B進一步描述。
參考圖6B,在z/Architecture模式中啟動引導後的計算環境,步驟620,並且因此在z/Architecture模式中執行操作,步驟622。無需模式切換,並且以z/Architecture模式中的處理直接繼續進行處理。因此,在一個實施例中,不需要以下步驟:自ESA/390模式切換至z/Architecture模式的信號處理器(SIGP)操作;關於SIGP操作是否為接受的操作的判定;在其為接受的操作時至z/Architecture的轉變;或在不接受SIGP操作時的錯誤指示。
在不執行上文所指示的步驟的情況下,計算環境(亦即,正被配置的環境,例如,單處理器、邏輯分區、VM客體)的所有處理器處於z/Architecture模式中。因此,如本文所描述,根據一個方面,自針對ESA/390及z/Architecture兩者配置的計算環境移除在ESA/390模式中引導或通電的能力。具體地說,儘管計算環境被配置為支持多種架構,但提供限制被配置架構中的至少一者的某些方面的能力,所述方面中的一者是在該架構中通電的能力。
在一個或多個優選實施例中,在z/Architecture模式中的通電提供一種機制以指定(1)邏輯分區(客體-1)及(2)邏輯分區中的一者及客體-2將在z/Architecture模式中引導及重設而無需在ESA/390模式中引導。可無條件地或在配置切換的控制下安裝此特徵。
修改關於PSW初始化的引導序列。舉例而言,在IPL結束時,加載絕對位置0至7處的IPL PSW。如當前所進行的一樣,在重設條件為ESA/390時,位12為1,從而形成有效ESA/390IPL PSW,並且程序繼續在ESA/390架構模式中執行指令。在安裝CZAM後,重設條件為z/Architecture,位12仍為1,從而形成有效ESA/390IPL PSW,但在16位元組z/Architecture當前PSW的形成期間反轉位12,如上文所定義。
除通電處理之外,亦可藉由安裝配置架構模式工具來改變或影響其他處理、行為和/或操作。這些受影響的處理、行為和/或操作特定於ESA/390及z/Architecture模式。然而,對於其他類型的架構,類似和/或不同的處理可受影響。在一個或多個優選實施例中可受影響的實例處理、行為和/或操作包括(例如):
(1)啟用自模式至自身(例如,自z/Architecture模式至z/Architecture模式)的切換而不產生錯誤(或忽略所述錯誤)。亦即,處理器可發出切換至z/Architecture模式的SIGP指令,並且如果已處於該模式中,則將不產生錯誤。先前,切換至與當前模式對應的模式的嘗試產生了錯誤。
(2)停用至ESA/390模式的切換。基於安裝及激活CZAM,停用至ESA/390的切換且現產生錯誤。如果位12未被設定為指示z/Architecture模式(由存儲裝置中為「1」的位12表示,該位被反轉為位「0」以在ESA/390PSW被轉換為有效z/Architecture PSW時表示PSW中的z/Architecture),藉由檢查PSW的位12及考慮到異常來阻止切換回至ESA/390。
(3)修改加載PSW操作以限制對位12的處置。如果安裝配置z/Architecture架構模式工具,則加載PSW在其第二操作數的位12不為1時識別到指定異常。加載PSW將其第二操作數的位0至32(只有位12被反轉)及操作數的位33至63分別作為當前PSW的位0至32及位97至127加載,並且其將當前PSW的位33至96設定為0。
參考圖7描述關於加載PSW指令的更多細節。在一個實施例中,加載PSW指令700包括:操作碼欄位702,其包括操作碼以指示加載PSW操作;基本欄位(B2)704;及位移欄位(D2)706。將通過B2欄位指定的通用寄存器的內容添加至D2欄位的內容以形成存儲裝置中的第二操作數的地址(被稱作第二操作數地址)。
在加載PSW指令的操作中,由16位元組PSW替換當前PSW,所述16位元組PSW由在通過第二操作數地址所指定的位置處的雙字的內容形成。
雙字的位12將為1;否則,視模型而定,可識別指定異常。如果安裝了配置z/Architecture架構模式工具,則在雙字的位12不為1時識別到指定異常。
將雙字的位0至32(只有位12被反轉)放置於當前PSW的位置0至32中。將雙字的位33至63放置於當前PSW的位置97至127中。將當前PSW的位33至96設定為0。
在取回操作數之前或之後及在完成操作之後,兩次執行串行化及檢查點同步功能。
將在雙字邊界上指定操作數;否則,識別指定異常。視模型而定,在操作數的位12為0時,可識別指定異常。
除了校驗位12之外,在加載待由指令加載的PSW欄位之前,未檢查其有效性。然而,緊接在加載之後,識別到指定異常且在以下中的任一者適用於新加載的PSW時發生程序中斷:
·位0、2至4、12或24至30中的任一者為1。
·位31及32兩者均為0,並且位97至103不全為0。
·位31及32分別為1及0。
在這些情況下,完成操作且所得指令長度碼為0。
基於所有尋址及保護異常抑止操作。
所得條件代碼:如加載的新PSW中所指定的那樣來設定所述代碼。
程序異常:
·存取(取回,操作數2)
·特權操作
·指定
編程備註:第二操作數應具有ESA/390PSW的格式。如果操作數的位12為0,則將在加載PSW的執行期間或之後識別指定異常。
在Plambeck等人的「Development and Attributes of z/Architecture」(IBM J.Res.&Dev.,第46卷,第4/5號,2002年7月/9月)中描述關於PSW的更多細節。
除了可歸因於配置架構模式工具的安裝而改變的以上處理、操作和/或行為以外,在一個或多個優選實施例中亦可改變重設模式,如下文所解釋。
(4)改變重設模式(例如,用於重設、清除重設及針對重設的其他動作)。在安裝了CZAM工具時,如果CPU重設是由(例如)加載正常鍵的激活而引起的,則CPU重設將架構模式設定為z/Architecture模式。
存在包括為ESA/390及z/Architecture模式的一部分的大量重設功能,其包括(例如)CPU重設、初始CPU重設、子系統重設、清除重設及通電重設,於下文中描述以上中的每一者。
CPU重設
CPU重設提供在受損信息量最少的情況下清除設備檢查指示及任何由此產生的CPU狀態的不可預測性的手段。具體地說,CPU重設用於在保存CPU狀態以用於分析或重續操作時清除檢查條件。如果未安裝配置z/Architecture架構模式(CZAM)工具,則在CPU重設是由加載正常鍵(操作者工具)的激活引起時,CPU重設將架構模式設定為ESA/390模式。在安裝了CZAM工具時,在CPU重設是由加載正常鍵的激活引起時,CPU重設將架構模式設定為z/Architecture模式。當CPU重設設定ESA/390模式時,其保存當前PSW以使得可通過將架構模式變回至z/Architecture的信號處理器「設定架構」命令還原PSW。
在一個實施例中,CPU重設引起以下動作:
1.終止當前指令或其他處理序列(諸如中斷)的執行,並且清除所有程序中斷及監督程序調用中斷條件。
2.清除在CPU本地的任何待決外部中斷條件。不清除浮動外部中斷條件。
3.清除在CPU本地的任何待決機器檢查中斷條件及錯誤指示,以及任何檢查停止狀態。不清除浮動機器檢查中斷條件。報告至配置中的所有CPU且已對CPU待決的任何機器檢查條件被稱為在CPU的本地。
4.清除預取回指令或操作數的所有複本。另外,清除由於在當前檢查點間隔中執行指令而待存儲的任何結果。
5.清除ART(存取寄存器轉換)後備緩衝器及轉換後備緩衝器中的表項。
6.如果重設是由配置中的任何CPU上的加載正常鍵的激活而引起的,則發生以下動作:
a.當未安裝CZAM工具時,將CPU的架構模式(及由於初始CPU重設或通過配置中的所有其他CPU執行的CPU重設,所有其他CPU的架構模式)自z/Architecture模式變為ESA/390模式。如果安裝了CZAM工具,則將CPU的架構模式(及由於初始CPU重設或通過配置中的所有其他CPU執行的CPU重設,所有其他CPU的架構模式)設定為z/Architecture模式。
b.當未安裝CZAM工具時,保存當前PSW以供還原z/Architecture模式的信號處理器「設定架構」命令隨後使用。
c.當未安裝CZAM工具時,將當前PSW自16個字節變為8個字節。八字節的PSW的位被設定為如下:將位0至11及13至32設定為等於16位元組的PSW的相同位;將位12設定為1;及將位33至63設定為等於16位元組的PSW的位97至127。
通過系統重設正常鍵或通過信號處理器CPU重設命令的激活引起的CPU重設及ESA/390模式中的任何CPU重設不影響所捕獲的z/Architecture-PSW寄存器(亦即,當CPU最後由於具有代碼0的「設定架構」命令或歸因於加載正常鍵的激活的CPU重設,而自z/Architecture模式進入ESA/390模式時保存的PSW)。
7.在已完成動作1至6之後,將CPU置於停止狀態中。當CCW型IPL序列遵循在該CPU上的重設功能時,CPU在重設功能完成時進入加載狀態且不必在重設操作的執行期間進入停止狀態。當列表引導式IPL序列遵循在該CPU上的重設功能時,CPU進入工作狀態且不必在重設操作的執行期間進入停止狀態。
寄存器、存儲裝置內容及在CPU外部的條件狀態藉由CPU重設保持不變。然而,如果在重設時改變內容的操作正在進行中,則寄存器的後續內容、位置或狀態是不可預測的。未通過CPU重設釋放在執行PERFORMLOCKED OPERATION(執行鎖定操作)時由CPU持有的鎖。
當在CPU正執行I/O指令或正執行I/O中斷時發起CPU中的重設功能時,可能完成或可能不完成CPU與通道子系統之間的當前操作,並且相關聯的通道子系統工具的由此產生的狀態可能不可預測。
編程備註:
1.將改變欄位的狀態、條件或內容的多數操作在CPU處於停止狀態時不可發生。然而,一些信號處理器功能及一些操作者功能可改變這些欄位。為消除在發出CPU重設時丟失欄位的可能性,CPU應停止且應無操作者功能在進行中。
2.如果架構模式變為ESA/390模式且當前PSW的位31為1,則PSW無效。
初始CPU重設
初始CPU重設提供以下功能:CPU重設連同當前PSW、捕獲的z/Architecture PSW、CPU定時器、時鐘比較器、前綴、突發事件地址控制、浮點控制及當日時間(TOD)可編程寄存器的初始化。如果未安裝CZAM工具,則在初始CPU重設是由加載正常鍵的激活引起時,初始CPU重設將架構模式設定為ESA/390模式。當安裝了CZAM工具時,在初始CPU重設是由加載正常鍵的激活引起時,初始CPU重設將架構模式設定為z/Architecture模式。
初始CPU重設將CPU重設功能與以下清除及初始化功能進行組合:
1.當未安裝CZAM工具時,如果加載正常鍵的激活引起重設,則將所述CPU(及配置中的所有其他CPU)的架構模式設定為ESA/390模式。否則,如果安裝了CZAM工具,則將所述CPU(及配置中的所有其他CPU)的架構模式設定為z/Architecture模式。
2.將當前PSW、捕獲的z/Architecture PSW、前綴、CPU定時器、時鐘比較器及TOD可編程寄存器的內容設定為0。當IPL序列遵循該CPU上的重設功能時,不必將PSW的內容設定為0。
3.將控制寄存器的內容設定為其初始z/Architecture值。設定控制寄存器的所有64個位而不考慮CPU是在ESA/390架構模式中還是在z/Architecture架構模式中
4.將浮點控制寄存器的內容設定為0。
5.將突發事件地址寄存器的內容初始化為0000000000000001十六進位。
這些清除及初始化功能包括驗證。
在CPU在操作結束時處於ESA/390架構模式中時將當前PSW設定為0使PSW無效,因為PSW位12在該模式中將為1。因此,在此情況下,如果在重設後將CPU置於工作狀態中而未首先引入新PSW,則識別指定異常。
子系統重設
子系統重設提供用於清除浮動中斷條件以及用於調用I/O系統重設的手段。
清除重設
清除重設使初始CPU重設及子系統重設被執行,並且另外,除TOD時鐘以外,清除或初始化配置中的所有CPU中的所有存儲位置及寄存器。此種清除用於調試程序及確保用戶隱私。清除重設亦解除PERFORMLOCKED OPERATION指令使用的所有鎖。如果未安裝CZAM工具,則清除重設將架構模式設定為ESA/390模式。在安裝了CZAM工具時,清除重設將架構模式設定為z/Architecture模式。清除並不影響外部存儲裝置,諸如,控制程序所使用以保存不可尋址頁面的內容的直接存取存儲設備。
清除重設將初始CPU重設功能與引起以下動作的初始化功能相組合:
1.在未安裝CZAM工具時,將配置中的所有CPU的架構模式設定為ESA/390模式。如果安裝了CZAM工具,則將配置中的所有CPU的架構模式設定為z/Architecture模式。
2.將配置中的所有CPU的存取寄存器、通用寄存器及浮點寄存器設定為0。將通用寄存器的所有64個位設定為0而不考慮在發起清除重設功能時,CPU是在ESA/390架構模式中還是在z/Architecture架構模式中。
3.使用有效塊檢查碼將配置中的主存儲裝置的內容及相關聯存儲鍵設定為0。
4.解除在執行PERFORM LOCKED OPERATION指令時由配置中的任何CPU使用的鎖。
5.執行子系統重設。
驗證包括在設定寄存器及清除存儲裝置及存儲鍵中。
編程備註:
1.架構模式未由系統重設正常鍵的激活或信號處理器CPU重設或初始CPU重設命令的執行而改變。配置中的所有CPU處於同一架構模式中。
2.由於CPU重設操作不影響將保持不變的欄位的內容,故CPU將不執行指令且將針對重設時的所有中斷而停用。除了CPU定時器的操作以及機器檢查中斷發生的可能性以外,可通過將CPU置於等待狀態中及通過針對I/O及外部中斷停用所述CPU來停止所有CPU活動。為避免在正更新CPU定時器或發生機器檢查中斷時引起重設的可能性,CPU將不處於停止狀態。
3.CPU重設、初始CPU重設、子系統重設及清除重設並不影響TOD時鐘的值及狀態。
4.CPU進入檢查停止狀態的條件取決於模型且包括妨礙當前操作的完成的故障。因此,如果在CPU處於檢查停止狀態中的同時執行CPU重設或初始CPU重設,則PSW、寄存器及存儲位置(包括在發生錯誤時存取的存儲鍵及存儲位置)的內容可具有不可預測值,並且在一些情況下,在通過所述重設清除檢查停止狀態後,內容可仍為錯誤的。在此情景下,需要清除重設來清除錯誤。
通電重設
將用於機器的組件的通電重設功能作為用於該組件的通電序列的一部分執行。可包括用於TOD時鐘、主存儲裝置、擴展存儲裝置及通道子系統的通電序列來作為CPU通電序列的一部分,或可單獨發起用於那些單元的通電序列。
CPU通電重設:通電重設引起初始CPU重設得以執行且可能引起或可能不引起I/O子系統重設在通道子系統中執行。使用有效塊檢查碼將通用寄存器、存取寄存器及浮點寄存器的內容清除為0。除非其由已通電的CPU持有,否則解除PERFORM LOCKED OPERATION所使用且與CPU相關聯的鎖。如果未安裝CZAM工具且重設與建立配置相關聯,則將CPU置於ESA/390模式中;否則,將CPU置於已在配置中的CPU的架構模式中。如果安裝了CZAM工具,則將CPU置於z/Architecture模式中。
可通過使用操作者工具人工發起CPU重設、初始CPU重設、子系統重設、及清除重設。初始CPU重設為初始程序加載功能的一部分。作為通電的一部分執行通電重設。
當未安裝CZAM工具時,如果通過系統重設清除鍵、加載正常鍵或加載清除鍵或通過建立配置的CPU通電重設來發起重設,則將架構模式設定為ESA/390模式;否則,架構模式不改變,不同之處在於通電重設將該模式設定為已處於所述配置中的CPU的該模式。如果安裝了CZAM工具,則將架構模式設定為z/Architecture模式。
下文描述可歸因於配置架構模式工具的安裝而改變的其他處理、操作和/或行為:
(5)在執行重設時,抑止所採取以促進在ESA/390與z/Architecture模式之間的變化的其他重設相關動作。當未安裝CZAM工具時,保存當前PSW以供還原z/Architecture模式的信號處理器「設定架構」命令隨後使用。當未安裝CZAM工具時,將當前PSW自16個字節變為8個字節。在一個實例中,八字節PSW的位被設定如下:將位0至11及13至32設定為等於16位元組PSW的相同位;將位12設定為1;及將位33至63設定為等於16位元組PSW的位97至127。當安裝了CZAM工具時,不保存PSW以供還原z/Architecture模式的信號處理器「設定架構」命令隨後使用,並且不將當前PSW自16位元組變為8位元組。
(6)改變用於以配置CPU SCLP(服務調用邏輯處理器)命令及加載鍵操作來配置CPU的處理。在由重設定義的模式中進行配置而非在ESA/390中進行配置。配置CPU SCLP命令將主體CPU置於已處於被配置狀態中的CPU的架構模式中。結合CPU通電重設將置於一配置中的至少第一CPU置於該架構模式,並且作為該重設的一部分,將其置於在CPU通電重設中定義的架構模式中。在模型設定被配置CPU的模式時,所述模型可替代地設定處於待用狀態的CPU的模式。
激活加載清除鍵或加載正常鍵分別如在清除重設或初始CPU重設中所定義的那樣來設定架構模式。
(7)改變SIGP以不允許「設定架構」命令將架構模式變為ESA/390。
參考圖8A描述信號處理器(SIGP)指令的一個實施例。在一個實施例中,信號處理器指令800具有多個欄位,包括(例如):具有指示信號處理器操作的操作碼的操作碼欄位(操作碼)802;第一寄存器欄位(R1)804;第二寄存器欄位(R3)806;基本欄位(B2)808及位移欄位(D2)810。R1表示通用寄存器,其內容為第一操作數;R3表示通用寄存器,其內容為第三操作數;且將由R2表示的寄存器的內容與D2中的位移相加以提供第二操作數的地址。
在運算中,將八位命令碼及(如果被調用)32位參數傳輸至由第三操作數中所含的CPU地址所表示的CPU。此結果由條件代碼指示且可由在第一操作數位置的位位置32至63中組合的狀態詳述。
第二操作數地址不用於尋址數據;相反,地址的位56至63含有八位命令碼。忽略第二操作數地址的位0至55。命令碼指定待由被尋址CPU執行的功能。在一個實例中,命令碼的指派及定義包括(例如)以下各者:
代碼
通用寄存器R3的位位置48至63中所含的16位二進位編號形成CPU地址。忽略寄存器的位0至47。當指定的命令為「設定架構」命令時,忽略CPU地址;配置中的所有其他CPU被認為已尋址。
在位位置32至63中含有32位參數的通用寄存器為R1或R1+1,其中任一者為奇數編號寄存器。這視是否提供參數的命令碼且使用其的目的而定。
在一個實例中,剛描述的操作數具有以下格式:
由R1表示的通用寄存器:位0至31未被使用;位32至63包括狀態;
由R1或R1+1表示的通用寄存器,其中任一者為奇數編號寄存器:位0至31未被使用;位32至63包括參數;
由R3表示的通用寄存器:位0至48未被使用;位49至63包括CPU地址;
第二操作數地址:位0至55未被使用;位56至63包括命令碼。
在運算開始之前及在運算完成之後,兩次執行串行化功能。
在接受命令碼且未返回非0狀態時,設定條件代碼0。當由此CPU(執行SIGP的CPU)產生或由已尋址的CPU返回狀態信息時,將狀態放置於通用寄存器R1的位位置32至63中,該寄存器的位0至31保持不變,並且設定條件代碼1。
當至已尋址的CPU的存取路徑忙碌或已尋址的CPU可操作但處於其不可回應命令碼的狀態中時,設定條件代碼2。
當已尋址的CPU不可操作(亦即,其未在安裝中提供,其不在配置中,其處於某些客戶工程師測試模式中的任一者中或其電源被關閉)時,設定條件代碼3。
所得條件代碼:
0接受命令碼
1存儲狀態
2忙碌
3不可操作
程序異常:
·特權操作
·事務約束
當在信號處理器指令的第二操作數地址的位位置56至63中指定「設定架構」信號處理器命令時,將參數寄存器的位位置56至63的內容用作指定配置中的所有CPU將被設定到的架構模式的代碼:代碼0指定ESA/390模式,並且代碼1及2指定z/Architecture模式。代碼1指定,對於配置中的所有CPU中的每一者,將當前ESA/390PSW變換為z/Architecture PSW。代碼2指定,將執行信號處理器的CPU的PSW變換為z/Architecture PSW,並且對於配置中的所有其他CPU中的每一者,將使用用於該CPU的捕獲的z/Architecture-PSW寄存器的值設定PSW。倘若捕獲的z/Architecture-PSW寄存器尚未通過重設設定為全部為0,則使用捕獲的z/Architecture-PSW寄存器的值設定PSW將還原CPU最後在z/Architecture模式中時所存在的PSW。
忽略參數寄存器的位0至55。忽略信號處理器指令的CPU地址寄存器的內容;配置中的所有其他CPU被認為已尋址。
當未安裝CZAM工具時,僅在以下情況中接受命令:代碼為0、1或2,CPU尚未處於由所述代碼指定的模式中,所有其他CPU中的每一者處於停止狀態抑或檢查停止狀態中,並且無其他條件妨礙接受命令。
當安裝了CZAM工具時,因為不準許返回至ESA/390模式,故不接受代碼0,並且由於CPU已處於z/Architecture架構模式,代碼1及2的指定產生指示無效參數及條件代碼1的完成。可以檢查也可以不檢查通常由「設定架構」命令驗證的其他前提條件。
如果接受,則在信號處理器的執行期間由所有CPU完成命令。在此實施例中,在任何情況下不同CPU皆處於相同架構模式中。
在一個實例中,如下完成「設定架構」命令:
·如果參數寄存器中的代碼不為0、1或2,或如果CPU已處於由所述代碼指定的架構模式中,則不接受命令。相反,將由信號處理器指令的R1欄位表示的通用寄存器的位55(無效參數)設定為1,並且設定條件代碼1。
·如果並非配置中的所有其他CPU處於停止或檢查停止狀態中,則不接受命令。相反,將由信號處理器指令的R1欄位表示的通用寄存器的位54(不正確狀態)設定為1,並且設定條件代碼1。
·如由代碼所指定的那樣來設定配置中的所有CPU的架構模式(例如,將用於控制操作的PSW的位12設定為指定架構模式,和/或設定計算環境中指示指定架構模式的另一指示)。
·如果命令將架構模式自ESA/390變為z/Architecture且代碼為1,則對於配置中的每一CPU,將八字節的當前PSW變為16位元組PSW,並且16位元組PSW的位被設定如下:將位0至11及13至32設定為等於八字節PSW的相同位;將位12及33至96設定為0;及將位97至127設定為等於八字節PSW的位33至63。此外,將變為z/Architecture前綴的位51的ESA/390前綴的位19設定為0。
如果代碼為2,則如在代碼1情況中一樣來設定執行信號處理器的CPU的PSW及所有CPU的前綴值。對於配置中的所有其他CPU中的每一者,使用捕獲的z/Architecture-PSW寄存器的值設定PSW。然而,如果CPU在架構模式轉變時或隨後執行不同於CPU重設的重設,則捕獲的z/Architecture-PSW寄存器已被設定為全部為0。
·如果命令將架構模式自z/Architecture變為ESA/390,則對於配置中的每一CPU,(1)將在執行信號處理器的CPU的情況下為更新後的PSW的當前PSW保存於捕獲的z/Architecture-PSW寄存器中,及(2)通過如下設定八字節PSW的位來將16位元組的當前PSW變為八字節PSW:將位0至11及13至32設定為等於16位元組PSW的相同位;將位12設定為1;及將位33至63設定為等於16位元組PSW的位97至127。變為ESA/390前綴的位19的z/Architecture前綴的位51保持不變。
·清除配置中的所有CPU的ALB及TLB的內容。
·對配置中的所有CPU執行串行化及檢查點同步功能。
如果命令將架構模式自z/Architecture變為ESA/390且信號處理器指令引起指令取回PER事件的出現,僅將指令地址的最右31個位存儲於ESA/390PER地址欄位中。
在一個實施例中,以下為關於CZAM的前提條件:所有其他CPU中的每一者處於停止或檢查停止狀態中,並且無其他條件妨礙接受命令。當安裝了CZAM工具時,因為不準許返回至ESA/390模式,故不接受代碼0,並且由於CPU已處於z/Architecture架構模式中,代碼1及2的指定產生指示無效參數及條件代碼1的完成。可以檢查也可以不檢查通常由「設定架構」命令驗證的其他前提條件。在又一實施例中,具有代碼1及2的SIGP指示成功完成而無需進一步指示。
參考圖8B描述與針對「設定架構」命令碼執行SIGP指令相關聯的處理的一個實施例。參考圖8B,計算環境的處理器執行SIGP指令且獲得指示「設定架構」操作的命令碼,步驟850。在一個實例中,命令碼包括在SIGP指令的第二操作數地址中。
另外,自(例如)通過SIGP指令指定的參數寄存器獲得待切換至的所請求架構模式,步驟852。此外,作出關於是否安裝了諸如CZAM的配置架構模式工具的判定,查詢854。在一個實例中,此通過工具指示符來判定。
如果未安裝CZAM,則作出關於CPU是否已處於所請求架構模式的進一步判定,查詢856。如果如此,則在(例如)由SIGP指令表示的寄存器中提供狀態,步驟858,並且將所述狀態視為錯誤,步驟860。然而,如果CPU未處於所請求的模式中,查詢856,則作出關於是否滿足由指令指定的其他條件(諸如,正被配置的計算環境的其他CPU是否處於停止狀態等)的判定,查詢862。如果不滿足所述條件,則處理繼續至步驟858。否則,接受命令,步驟864,並且架構模式將被改變。因此,如上文所描述設定PSW,步驟866,並且用於指令的此方面的處理結束,步驟868。
返回至查詢854,如果安裝了CZAM,則作出關於CPU是否處於所請求模式中的判定,查詢870。如果CPU已處於所請求模式中,則在一個實例中,提供CPU已處於所請求架構模式(例如,z/Architecture)中的狀態,步驟872。然而,在此實施例中,此狀態是可接受的且不被視為錯誤,步驟874。或者忽略該狀態,或在另一實施例中,可提供為非錯誤碼的條件代碼。在再一實施例中,狀態僅指示成功完成。其他可能性亦存在,以指示即使CPU已處於所請求架構模式也無錯誤。
返回至查詢870,然而如果CPU不處於所請求模式中,則不接受命令,因為返回至一個架構模式(例如,ESA/390)是非法的,步驟876。提供狀態,步驟878,該狀態被視為錯誤,步驟880。
在一個實施例中,當CZAM在系統中作為不可選的工具時,則可省略查詢854且控制可自步驟852直接傳遞至步驟870。在此實施例中,可不實施步驟854至868。
在另一實施例中,當接收切換至當前架構模式的命令時,在步驟874中可不接受所述命令且可指示錯誤。
可基於CAM的安裝改變的其他行為、處理和/或操作包括:
(8)對工具位的改變:將新位(例如,位138)添加至工具位以指示配置z/Architecture架構模式工具,並且將指示z/Architecture架構模式是否活動的位2設定為1(指示活動)。
如上文所描述,計算環境可在一個架構模式(例如ESA/390)中引導且接著切換至用於處理的另一架構模式(例如,z/Architecture);或計算環境可直接引導至其將要進行處理的架構模式(例如,z/Architecture)中。因此,根據一個或多個方面,提供控制實用工具(包括(但不限於)作業系統或不需要作業系統引導的其他獨立實用工具),其可在第一架構配置或第二架構配置中引導,在所述第一架構配置中,控制實用工具在一個架構模式(例如,ESA/390)中初始化且接著切換至另一架構模式(例如,z/Architecture),在所述第二架構配置中,控制實用工具在選定架構模式(例如,z/Architecture)中初始化且進行處理。在一個實施例中,選定架構模式為其中編寫控制實用工具的架構。
參考圖9描述與使控制實用工具在第一架構配置中引導相關聯的邏輯的一個實施例。首先,處理器(例如,硬體)設定待用於控制執行的程序狀態字(PSW),步驟900。在此實例中,硬體自存儲器加載PSW且所述PSW具有一個架構模式(例如,ESA/390)的格式。接著在一個架構模式中執行設定代碼,步驟902。舉例而言,控制實用工具開始執行由程序狀態字指定的第一組指令。此後,在一個實施例中,準備自一個架構模式ESA/390切換至諸如z/Architecture的另一架構模式,步驟904。舉例而言,控制實用工具通過使用命令碼(例如,「設定架構」命令碼)設定寄存器及將該寄存器傳遞至被稱作信號處理器指令的指令來準備進行模式切換。
處理器執行信號處理器指令以將處理器且因此將控制實用工具置於z/Architecture模式中,步驟906。此後,在一個實施例中,作出關於是否成功執行了信號處理器指令的判定,查詢908。如果存在信號處理器錯誤條件,則中止控制實用工具的引導,步驟910;否則,在z/Architecture模式中執行剩餘代碼,步驟912。
在另一實施例中,被編寫以用於選定架構(例如,z/Architecture)的控制實用工具直接在該架構中引導而不是在一個架構中引導且切換模式。參考圖10描述在不需要切換的系統(諸如,包括CZAM工具的系統)上使控制實用工具直接引導的邏輯的一個實施例。參考圖10,首先,處理器(例如,硬體)設定來自存儲裝置的程序狀態字,步驟1000。在一個實例中,自所選的絕對存儲位置(例如,位置0至7)產生16位元組的新程序狀態字(PSW)。新16位元組PSW例如從所選存儲雙字(例如,位置0至7)的內容形成。雙字的位12將為1;否則,可指示錯誤。(錯誤可為識別的指定異常、機器檢查或又一錯誤指示)。將新產生的PSW的位0至32設定為所選雙字的位0至32,只有位12被反轉。將新產生的PSW的位33至96設定為0。根據所選雙字的位33至63初始化新產生的PSW的位位置97至127。
此後,在z/Architecture模式中執行設定碼,因為系統已處於該模式中,步驟1002。此外,亦在z/Architecture模式中執行代碼的其餘部分,步驟1004。
儘管可取決於架構配置(例如,第一配置或第二配置)單獨使用以上引導序列,但在一個實施例中,提供在不考慮控制實用工具在其中引導的架構模式的情況下能夠使用的引導序列。亦即,提供能夠用於多個架構配置中的公用引導序列,所述多個架構配置包括(但不限於)第一架構配置及第二架構配置。
參考圖11描述與公用引導序列相關聯的邏輯的一個實施例。最初,處理器(例如,硬體)設定來自存儲裝置的程序狀態字,步驟1100。在此實施例中,架構模式可為多個模式中的任一者,包括傳統模式(諸如ESA/390)或增強型架構模式(諸如z/Architecture)。因此,程序狀態字反映處理器的初始架構模式。
此後,可執行指令的公共子集以執行某些量的設定,步驟1102。這些指令同樣適用於不同架構模式,儘管它們可基於模式而表現不同。所述指令是公用的,原因在於它們被定義在不同架構中且可被執行而不考慮當前架構模式。
除了執行指令的公共子集以執行某一設定以外和/或作為其一部分,執行模式切換而不考慮當前架構模式,步驟1104。如上所述,將命令碼放置在寄存器中且轉發至SIGP指令。執行SIGP指令以將環境置於z/Architecture模式中,步驟1106。具體地說,在一個實施例中,如果環境處於ESA/390中,則SIGP指令的執行將環境置於z/Architecture模式中。然而,如果環境已處於z/Architecture模式中,則SIGP指令的執行並不執行模式切換,並且相反提供環境已處於z/Architecture模式中的狀態。接受此狀態作為非錯誤。
接著在z/Architecture模式中執行代碼的其餘部分,步驟1108。
簡單引導序列的一個實例可包括(例如)用於初始化控制寄存器、使用命令寄存器加載寄存器以執行SIGP指令的一個或多個加載控制指令(LCTL)及SIGP指令。可在ESA/390或z/Architecture模式中發出這些指令及「類似」結果,以使得在完成SIGP之後,系統首先被配置且處於z/Architecture模式中。在至少一個實施例中,代碼可在完成SIGP指令後檢查條件代碼以判定系統首先是在ESA/390模式中配置(例如,藉助指示執行自ESA/390的成功切換的條件代碼值0)還是在z/Architecture中配置(例如,藉助指示由於系統已處於所請求架構模式中而未執行切換的條件代碼1)。
參考圖12描述使用公用引導序列以引導控制實用工具的另一實施例。在此實例中,處理器(例如,硬體)在處理器首先進行處理的架構模式中設定來自存儲裝置的PSW,如上文所描述,步驟1200。接著,檢查PSW的位12以判定計算環境的架構模式,查詢1202。在一個實施例中,為檢查PSW位,使用提取PSW指令。參考圖13描述提取PSW指令的一個實例。
參考圖13,在一個實施例中,提取PSW指令1300包括:操作碼1302,其包括指示提取PSW操作的操作碼;第一寄存器欄位(R1)1304及第二寄存器欄位(R2)1306。在操作中,將當前PSW的位0至31放置於第一操作數(由第一寄存器欄位指定的寄存器)的位位置32至63且操作數的位0至31保持不變。隨後,將當前PSW的位32至63放置於第二操作數(由第二寄存器欄位指定的寄存器)的位位置32至63且操作數的位0至31保持不變。在一個實例中,如果R2欄位為0,則不執行與第二操作數關聯的動作。
返回圖12,如果架構模式為(例如)ESA/390(例如,PSW位12=1),則在ESA/390中執行設定碼,步驟1204。處理器準備進行模式切換,步驟1206,並且SIGP指令用於將模式變為z/Architecture模式,步驟1208。此外,作出關於是否成功完成SIGP指令的判定,步驟1210。如果其未成功完成,則呈現錯誤,步驟1214。否則,在z/Architecture模式中執行代碼的其餘部分,步驟1216。
返回至查詢1202,如果PSW的位12的檢查指示計算環境處於z/Architecture模式(例如,PSW位12=0),則在z/Architecture模式中執行設定碼,步驟1215,並且處理繼續在z/Architecture中執行代碼的其餘部分,步驟1216。
參考圖14描述使用公用引導序列的又一實施例。在此實例中,處理器(例如,硬體)基於處理器首先在其中進行處理的架構模式設定來自存儲裝置的PSW,如上文所描述,步驟1400,並且使用指令的公共子集(例如,少量指令,諸如1至5個指令)執行設定碼,步驟1402。處理器準備進行模式切換,步驟1404,並且執行SIGP指令以切換至z/Architecture模式,步驟1406。
作出關於是否成功完成SIGP指令的判定,查詢1408。如果成功,則響應於在ESA/390模式中引導而執行某一z/Architecture代碼,步驟1410,並且在z/Architecture中執行代碼的其餘部分,步驟1412。舉例而言,在將執行軟體重設時,可保存指示應將重設執行至ESA/390模式中的指示符。在另一方面中,引導至ESA/390模式中的模型可使一些控制寄存器以與引導至z/Architecture模式中的模型不同的方式初始化,並且響應於已在ESA/390模式中引導的代碼能夠重新配置控制項以對應於對於z/Architecture優選的設定。
返回查詢1408,如果SIGP指令由於計算環境已處於z/Architecture模式中而不執行切換,則執行響應於已在z/Architecture模式中引導的某一z/Architecture代碼,步驟1414,並且亦在z/Architecture模式中執行代碼的其餘部分,步驟1412。舉例而言,編程人員可保存重設應執行至z/Architecture模式的指示符。在另一方面中,引導至z/Architecture模式中的模型可提供額外控制寄存器,它們可在步驟1414中初始化,如果系統在ESA/390模式中引導,則它們將不適於初始化。再次地,在此實施例中,SIGP可「失敗」,原因在於其可不執行切換,但不存在錯誤條件。此為SIGP的可接受用途。
除了控制實用工具的以上引導之外,亦提供控制實用工具歸因於重設的重新引導。在一個實施例中,存在通過將系統重設至特定模式(諸如,傳統模式(例如,ESA/390))及分支至引導加載器來重設整個機器且仿真重新引導的代碼。然而,在安裝CZAM的情況下,不發生此情況。因此,存在幾個其他選項,包括:(例如)判定當前模型是在傳統模式(例如,ESA/390)還是在增強型架構模式(例如,z/Architecture)中通電,將機器模式設定為對應模式,及根據機器模式分支至處於本機引導模式中的引導加載器;或將當前模型作為z/Architecture引導模型重新引導而不考慮本機硬體引導模式,亦即,執行軟體發起的重新初始化,如同其為z/Architecture重新引導(即使是在ESA/390系統上)那樣。此情況可能的原因在於其為軟體重新引導(亦被稱為熱重新引導),其中處理器如同重新引導而不退出至磁碟及再次加載整個控制實用工具那樣再循環。寄存器及PSW被初始化至相同狀態(如同執行了引導那樣),並且接著分支至引導序列的第一指令。
參考圖15描述重設的一個實施例。首先,處理器開始終止環境,包括(例如)斷開I/O,使機器停頓及總體上終止操作,步驟1500。此後,讀取工具位或另一指示符以判定是否安裝了CZAM,步驟1502。如果未安裝CZAM,查詢1504,則處理器通過使用SIGP指令的命令碼設定寄存器來準備進行模式切換,步驟1506,並且執行SIGP指令以切換至ESA/390模式,步驟1508。此後,對控制實用工具引導序列的開始執行分支,上文描述了其實例,步驟1510。接著在ESA/390模式中執行引導碼同時切換至z/Architecture模式。
返回至查詢1504,如果安裝了CZAM,則由於計算環境已處於z/Architecture模式中,故不需要切換,並且因此,如上所述,對控制實用工具引導序列的開始執行分支,步驟1514。接著在z/Architecture模式中執行引導碼,步驟1512。
在未提供CZAM工具指示符的一個實施例中,可替代地使用被保存作為步驟1410、1414的一部分的指示符來指示引導配置架構模式。
參考圖16描述重設邏輯的進一步實施例。首先,處理器開始終止環境,包括(例如)斷開I/O,使機器停頓及總體上終止操作,步驟1600。此後,讀取工具位或另一指示符以判定是否安裝了CZAM,步驟1602。如果未安裝CZAM,查詢1604,則處理器準備進行模式切換,步驟1606,並且執行SIGP指令以切換至ESA/390模式,步驟1608。此外,將PSW設定為重設PSW,步驟1610。舉例而言,在重設時將PSW初始化為已知值,例如,初始化為存儲在如本文中所描述的絕對位置0至7處的值,或通過架構規範所定義的固定值來初始化PSW。接著,如上文所描述,對控制實用工具引導碼的開始執行分支,步驟1612。接著在ESA/390模式中執行引導碼,同時切換至z/Architecture,步驟1614。
返回值查詢1604,如果安裝了CZAM,則不需要切換,將PSW設定成重設PSW,步驟1616,如上文所描述,對控制實用工具引導碼的開始執行分支,步驟1618,並且在z/Architecture模式中執行引導碼,步驟1614。
在重設的又一實施例中,如同處於z/Architecture模式中一樣執行重設,如參考圖17所描述。在此實施例中,首先,系統開始終止環境,步驟1700。接著,將PSW設定為重設z/Architecture PSW,步驟1702,並且對控制實用工具引導碼的開始執行分支,步驟1704。在z/Architecture模式中執行引導碼而不考慮機器是在ESA/390中還是本機地在z/Architecture中引導,步驟1706。
在另一方面中,提供檢測邏輯以判定被引導的控制實用工具是否與公用引導序列兼容。舉例而言,在本文中的實例中,編寫控制實用工具以用於一個特定架構(例如,z/Architecture),並且引導序列是基於此的。因此,如果結果是在未預期z/Architecture的情況下,編寫控制實用工具以用於另一架構(諸如ESA/390),則發生失配。
因此,在一個實施例中,在引導序列早期執行對於SIGP指令的檢查,在一個實例中,所述檢查將為關於控制實用工具是否意謂用於z/Architecture的指示。此邏輯可直接包括在實施引導序列的初始化的程序邏輯中,並且SIGP指令可包括在引導序列中,如圖11中所描述。
參考圖18描述此檢測邏輯的一個實施例。首先,執行引導序列中至多預定義數目的指令,步驟1800。如果已執行預定義數目(n)的指令而不執行SIGP指令,查詢1802,則採取校正動作,此是因為假定了控制實用工具不是公用引導實用工具,步驟1804。此動作包括(例如)停止執行、產生異常和/或提供通知。
返回至查詢1802,如果已執行SIGP,則如上文所描述,假定引導序列能夠繼續處理,步驟1806。
以上邏輯假定將在公用引導序列中發出SIGP。如果使用其中可不執行SIGP的其他類型的引導序列,則可使用其他檢測邏輯。在另一個實施例中,在控制實用工具適於在z/Architecture模式中本機地引導的系統上的獨佔式執行時,使用相同檢測邏輯,如(例如)參考圖10所描述。例如使用SIGP「設定架構」(或其他指示符,諸如包括(但不限於):指示正使z/Architecture應用引導的新定義的SIGP「斷言z/Architecture」)增強圖10的引導序列,以滿足圖18的控制邏輯的要求。
上文詳細描述使用公用引導序列使控制實用工具在多個架構配置中引導的能力。在具有此能力的情況下,處理器可使同一作業系統以及在計算環境上於ESA/390中引導且切換至z/Architecture的其他控制實用工具及於z/Architecture中引導的那些控制實用工具引導。在一個實例中,修改硬體,如果SIGP嘗試切換至同一架構模式,則不報告SIGP中的錯誤。
參考圖19描述關於公用引導序列的其他方面。首先,發起引導序列以在選定架構模式中使控制實用工具(諸如作業系統)引導,步驟1900。選定架構模式是基於選定架構的,控制實用工具被編寫以用於所述選定架構。控制實用工具被配置為以第一架構配置或第二架構配置中的至少一者被初始化,所述第一架構配置在一個架構中初始化且切換至用於處理的選定架構,所述第二架構配置在選定架構中進行初始化及處理。
執行引導序列,並且所述引導序列包括(例如)基於處理器的當前架構配置設定程序狀態字,步驟1902。此外,執行一個或多個指令而不考慮處理器將基於第一架構配置還是第二架構配置執行初始化,步驟1904。一個或多個指令可包括準備進行模式切換,步驟1906,其中處理器準備執行切換操作而不考慮處理器的架構模式。舉例而言,提供「設定架構」命令碼至SIGP指令以執行切換操作,步驟1908。切換操作請求對用於處理器的架構模式的切換而不考慮處理器將在所述一個架構中還是所述選定架構中執行初始化。切換操作將基於處理器將執行初始化的架構是所述一個架構還是選定架構而以不同方式執行。舉例而言,如果處理器處於所述一個架構中,則切換操作自一個架構切換至選定架構且控制實用工具的處理在選定架構中。然而,如果處理器已處於選定架構中,則切換操作請求自選定架構模式至選定架構模式的切換。此情況導致存儲指示處理器當前處於選定架構模式的狀態,但該狀態對切換操作的發布者而言被視為可接受的。亦即,其不被視為錯誤。在執行切換操作後,在選定架構中使控制實用工具引導並且執行代碼,步驟1910。
在本文所描述的流程中,可與指令的公共子集分開展示對模式切換操作的準備及SIGP指令。然而,它們可包括在公共子集中和/或與公共子集分離。
公用引導實用工具工具的多個方面可與一個或多個其他工具(包括例如CZAM工具及No-DAT工具)一起使用,CZAM工具及No-DAT工具分別描述於以下共同申請且共同轉讓的申請中:Michael K.Gschwind的「Architectural Mode Configuration」(IBM案號:POU920140021US1);及Gainey等人的「Managing Processing Associated with Selected Architectural Facilities」(IBM案號:POU920140020US1),以上申請中的每一者在此以全文引用的方式併入本文中。
參考圖20,在一個實例中,電腦程式產品2000包括(例如)將計算機可讀程序代碼裝置、邏輯和/或指令2004存儲於其上的一個或多個非暫時性計算機可讀存儲介質2002,以提供及促進一個或多個優選實施例。
本發明可以是系統、方法和/或電腦程式產品。電腦程式產品可以包括計算機可讀存儲介質,其上載有用於使處理器實現本發明的各個方面的計算機可讀程序指令。
計算機可讀存儲介質可以是可以保持和存儲由指令執行設備使用的指令的有形設備。計算機可讀存儲介質例如可以是但不限於電存儲設備、磁存儲設備、光存儲設備、電磁存儲設備、半導體存儲設備或者上述的任意合適的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:可攜式計算機盤、硬碟、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或快閃記憶體)、靜態隨機存取存儲器(SRAM)、可攜式壓縮盤只讀存儲器(CD-ROM)、數字多功能盤(DVD)、記憶棒、軟盤、機械編碼設備、例如其上存儲有指令的打孔卡或凹槽內凸起結構、以及上述的任意合適的組合。這裡所使用的計算機可讀存儲介質不被解釋為瞬時信號本身,諸如無線電波或者其他自由傳播的電磁波、通過波導或其他傳輸媒介傳播的電磁波(例如,通過光纖電纜的光脈衝)、或者通過電線傳輸的電信號。
這裡所描述的計算機可讀程序指令可以從計算機可讀存儲介質下載到各個計算/處理設備,或者通過網絡、例如網際網路、區域網、廣域網和/或無線網下載到外部計算機或外部存儲設備。網絡可以包括銅傳輸電纜、光纖傳輸、無線傳輸、路由器、防火牆、交換機、網關計算機和/或邊緣伺服器。每個計算/處理設備中的網絡適配卡或者網絡接口從網絡接收計算機可讀程序指令,並轉發該計算機可讀程序指令,以供存儲在各個計算/處理設備中的計算機可讀存儲介質中。
用於執行本發明操作的電腦程式指令可以是彙編指令、指令集架構(ISA)指令、機器指令、機器相關指令、微代碼、固件指令、狀態設置數據、或者以一種或多種程式語言的任意組合編寫的原始碼或目標代碼,所述程式語言包括面向對象的程式語言—諸如Smalltalk、C++等,以及常規的過程式程式語言—諸如「C」語言或類似的程式語言。計算機可讀程序指令可以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為一個獨立的軟體包執行、部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或伺服器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡—包括區域網(LAN)或廣域網(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用網際網路服務提供商來通過網際網路連接)。在一些實施例中,通過利用計算機可讀程序指令的狀態信息來個性化定製電子電路,例如可編程邏輯電路、現場可編程門陣列(FPGA)或可編程邏輯陣列(PLA),該電子電路可以執行計算機可讀程序指令,從而實現本發明的各個方面。
這裡參照根據本發明實施例的方法、裝置(系統)和電腦程式產品的流程圖和/或框圖描述了本發明的各個方面。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機可讀程序指令實現。
這些計算機可讀程序指令可以提供給通用計算機、專用計算機或其它可編程數據處理裝置的處理器,從而生產出一種機器,使得這些指令在通過計算機或其它可編程數據處理裝置的處理器執行時,產生了實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的裝置。也可以把這些計算機可讀程序指令存儲在計算機可讀存儲介質中,這些指令使得計算機、可編程數據處理裝置和/或其他設備以特定方式工作,從而,存儲有指令的計算機可讀介質則包括一個製造品,其包括實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的各個方面的指令。
也可以把計算機可讀程序指令加載到計算機、其它可編程數據處理裝置、或其它設備上,使得在計算機、其它可編程數據處理裝置或其它設備上執行一系列操作步驟,以產生計算機實現的過程,從而使得在計算機、其它可編程數據處理裝置、或其它設備上執行的指令實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作。
附圖中的流程圖和框圖顯示了根據本發明的多個實施例的系統、方法和電腦程式產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或指令的一部分,所述模塊、程序段或指令的一部分包含一個或多個用於實現規定的邏輯功能的可執行指令。在有些作為替換的實現中,方框中所標註的功能也可以以不同於附圖中所標註的順序發生。例如,兩個連續的方框實際上可以基本並行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執行規定的功能或動作的專用的基於硬體的系統來實現,或者可以用專用硬體與計算機指令的組合來實現。
除上述以外,可由供應客戶環境的管理的服務提供商提供、供應、部署、管理、服務一個或多個方面等。舉例而言,服務提供商可建立、維護、支持計算機代碼和/或執行用於一個或多個客戶的一個或多個方面的計算機基礎結構等。舉例而言,作為回報,服務提供商可在訂閱和/或收費協議下自客戶收取付款。另外或備選地,服務提供商可自廣告內容銷售至一個或多個第三方而收取付款。
在一個方面中,可部署一應用用於執行一個或多個優選實施例。作為一個實例,應用的部署包括提供可操作以執行一個或多個優選實施例的計算機基礎結構。
作為另一方面,可部署計算基礎結構,包括將計算機可讀程序代碼集成至計算系統中,其中程序代碼結合計算系統能夠執行一個或多個優選實施例。
作為又一方面,可提供一種用於集成計算基礎結構的處理,其包括將計算機可讀程序代碼集成至計算機系統中。計算機系統包括計算機可讀介質,其中計算機介質包括一個或多個優選實施例。程序代碼結合計算機系統能夠執行一個或多個優選實施例。
儘管上文描述各種實施例,但其僅為實例。舉例而言,其他架構的計算環境可用於結合及使用一個或多個優選實施例。此外,可使用不同指令、指令格式、指令欄位和/或指令值。此外,可使用其他引導及重新引導序列。許多變化是可能的。
此外,其他類型的計算環境可有益且可被使用。作為實例,適合於存儲和/或執行程序代碼的數據處理系統為可使用的,其包括直接或經由系統總線間接耦接至存儲器元件的至少兩個處理器。存儲器元件包括(例如)在程序代碼的實際執行期間所使用的本地存儲器、大容量存儲裝置及高速緩衝存儲器,所述存儲器元件對至少某程序代碼提供暫時存儲以便減少在執行期間必須自大容量存儲裝置取回程序代碼的次數。
輸入/輸出或I/O設備(包括(但不限於)鍵盤、顯示器、指點設備、DASD、磁帶、CD、DVD、拇指驅動器(thumb drive)及其他存儲介質等)可直接或經由中間I/O控制器耦接至所述系統。網絡適配器亦可耦接至系統以使得數據處理系統能夠經由中間專用或公共網絡耦接至其他數據處理系統或遠程印表機或存儲設備。數據機、電纜數據機及乙太網絡卡僅為可用類型的網絡適配器中的少數幾種。
參考圖21,描繪實施一個或多個優選實施例的主計算機系統5000的代表性組件。代表性主計算機5000包括與計算機存儲器(亦即,中央存儲裝置)5002通信的一個或多個CPU 5001,以及至存儲介質設備5011及網絡5010以用於與其他計算機或SAN及類似者通信的I/O接口。CPU 5001與具有架構化指令集及架構化功能性的架構兼容。CPU 5001可具有存取寄存器轉換(ART)5012,其包括ART後備緩衝器(ALB)5013,用於選擇待由用於將存儲器的程序地址(虛擬地址)轉換為實地址的動態地址轉換(DAT)5003使用的地址空間。DAT通常包括用於緩存轉換的轉換後備緩衝器(TLB)5007,以使得稍後對計算機存儲器5002的塊的存取不需要地址轉換的延遲。通常,在計算機存儲器5002與處理器5001之間使用高速緩存5009。高速緩存5009可為具有對一個以上CPU可用的大型高速緩存及在大型高速緩存與每一CPU之間具有較小較快(較低層級)高速緩存的分層結構。在一些實施中,分離較低層級的高速緩存以提供用於指令取回及數據存取的獨立低層級高速緩存。
在一個實施例中,指令由指令取回單元5004經由高速緩存5009自存儲器5002取回。在指令解碼單元5006中解碼指令且將其(在一些優選實施例中,與其他指令一起)分派至一個或多個指令執行單元5008。通常使用數個執行單元5008,例如算術執行單元、浮點執行單元及分支指令執行單元。由執行單元執行指令,從而在需要時自指令指定的寄存器或存儲器存取操作數。如果將自存儲器5002存取(加載或存儲)操作數,則加載/存儲單元5005通常在被執行指令的控制下處置存取。可在硬體電路中或在內部微碼(固件)中或由以上兩者的組合執行指令。
如所指出,計算機系統包括在本地(或主)存儲裝置中的信息,以及尋址、保護以及參考及改變記錄。尋址的一些方面包括地址的格式、地址空間的概念、各種類型的地址及將一種類型的地址轉換為另一類型的地址的方式。一些主存儲裝置包括永久指派的存儲位置。主存儲裝置向系統提供數據的直接可尋址的快速存取存儲。在可處理數據與程序兩者之前,將其(自輸入設備)加載至主存儲裝置中。
主存儲裝置可包括一個或多個更小的更快速存取的緩衝存儲器,其有時被稱為高速緩存。高速緩存通常與CPU或I/O處理器物理關聯。除了對性能的影響,對物理構造的影響及不同存儲介質的使用通常不可由程序觀測。
可針對指令及針對數據操作數維護獨立高速緩存。在被稱為高速緩存塊或高速緩存線(或簡稱為線)的整體邊界上以相連字節維護高速緩存內的信息。模型可提供EXTRACT CACHE ATTRIBUTE指令,其返回高速緩存線的字節大小。在另一實施例中,此信息可(例如)根據由Power架構平臺參考規範所指定的接口從固件獲得。模型亦可提供數據高速緩存塊碰觸(debt)、PREFETCH DATA及PREFETCH DATA RELATIVE LONG指令中的一者或多者,這影響至數據或指令高速緩存中的存儲的預取回或數據自所述高速緩存的釋放。
將存儲裝置視為位的長水平字串。對於多數操作,對存儲裝置的存取以從左至右的順序進行。將位字串再分為八個位的單元。八位單元被稱為字節,其為所有信息格式的基礎構建塊。通過唯一非負整數識別存儲裝置中的每一字節位置,其為該字節位置的地址或簡單地為字節地址。相鄰字節位置具有連續地址,在左側自0開始且以從左至右的順序進行。地址為無符號的二進位整數且為24個、31個或64個位。
信息在存儲裝置與CPU或通道子系統之間傳輸,一次一個字節或一組字節。除非另有指定,否則在(例如)Power ISA及z/Architecture中,存儲裝置中的一組字節由該組的最左字節尋址。該組中的字節的數目由待執行的操作隱含或顯式地指定。當用於CPU操作中時,一組字節被稱為欄位。在每一組字節內,在(例如)Power ISA及z/Architecture中,位以從左至右的順序編號。在Power ISA及z/Architecture中,最左位有時被稱作「高階」位,並且最右位被稱為「低階」位。然而,位編號並非存儲地址,僅可尋址字節。為對存儲裝置中的字節的個體位進行操作,存取整個字節。字節中的位從左至右(在例如z/Architecture中)被編號為0至7。針對24位地址,地址中的位可被編號為8至31或40至63,或針對31位地址,其被編號為1至31或33至63;針對64位地址,所述位被編號為0至63。在一個實例中,位8至31及1至31適用於處於為32個位寬的一位置(例如,寄存器)中的地址,而位40至63及33至63適用於處於64位寬位置中的地址。在多個字節的任何其他固定長度格式內,構成該格式的位自0開始連續編號。出於錯誤檢測的目的且優選地用於校正,一個或多個校驗位可隨每一字節或隨一組字節傳輸。這些校驗位由機器自動產生且不可由程序直接控制。存儲容量以字節數表達。當存儲裝置-操作數欄位的長度通過指令的操作碼暗示時,欄位被稱為具有固定長度,其可為一個、兩個、四個、八個或十六個字節。可針對一些指令暗示較大欄位。當不暗示而是顯式聲明存儲裝置-操作數欄位的長度時,欄位被稱為具有可變長度。可變長度操作數的長度可變化一個字節的增量(或對於一些指令,以兩個字節的倍數或其他倍數變化)。當將信息放置於存儲裝置中時,替換僅包括在指定欄位中的那些字節位置的內容,即使至存儲裝置的物理路徑的寬度可大於所存儲的欄位的長度。
某些信息單元將在存儲裝置中的整體邊界上。當信息單元的存儲地址為以字節為單位的單元長度的倍數時,對於該信息單元,邊界被稱為整體的。為整體邊界上的2、4、8 16及32位元組的欄位給出特殊名稱。半字(halfword)為二字節邊界上的兩個連續字節的組且為指令的基礎構建塊。字(word)為在四字節邊界上的四個連續字節的組。雙字(doubleword)為在八字節邊界上的八個連續字節的組。四倍字(quadword)為在16位元組邊界上的16個連續字節的組。八倍字(octoword)為在32位元組邊界上的32個連續字節的組。當存儲地址指定半字、字、雙字、四倍字及八倍字時,地址的二進位表示分別含有一個、兩個、三個、四個或五個最右0位。指令將在二字節整體邊界上。多數指令的存儲操作數不具有邊界對準要求。
在針對指令及數據操作數實施獨立高速緩存的設備上,無論存儲是否更改隨後取回的指令,如果程序存儲至隨後取回指令的高速緩存線中,則可能經歷顯著延遲。
在一個實例中,可通過軟體(有時被稱作許可內碼、固件、微碼、毫碼或微微碼及類似者,以上中的任一者將與一個或多個優選實施例相一致)實施該實施例。參考圖21,體現一個或多個方面的軟體程序代碼可由主機系統5000的處理器5001自長期存儲介質設備5011(諸如CD-ROM驅動器或磁帶驅動器或硬碟驅動器)存取。軟體程序代碼可體現於多種已知介質中的任一者上以與數據處理系統(諸如,磁碟、硬碟驅動器或CD-ROM)使用。代碼可分布於此類介質上,或可自計算機存儲器5002或一個計算機系統的存儲裝置經由至其他計算機系統的網絡5010分發給用戶,以供此類其他系統的用戶使用。
軟體程序代碼包括作業系統,其控制各種計算機組件及一個或多個應用程式的功能及交互。在程序代碼可用於由處理器5001進行處理的情況下,通常自存儲介質設備5011將程序代碼分頁至相對較高速度的計算機存儲裝置5002。在存儲器中、在物理介質上體現軟體程序代碼和/或經由網絡分發軟體程序代碼的技術及方法是公知的且本文將不對其進行進一步論述。在被創建及存儲於有形介質(包括(但不限於)電子存儲模塊(RAM)、快閃記憶體、光碟(CD)、DVD、磁帶及其類似者)上時,程序代碼常被稱作「電腦程式產品」。電腦程式產品介質通常可由優選地在計算機系統中的處理電路讀取以供處理電路執行。
圖22說明其中可實施一個或多個優選實施例的代表性工作站或伺服器硬體系統。圖22的系統5020包括代表性基本計算機系統5021,諸如個人計算機、工作站或伺服器,包括可選的周邊設備。基本計算機系統5021包括一個或多個處理器5026及用於根據已知技術連接系統5021的處理器5026與其他組件及啟用其間的通信的總線。總線將處理器5026連接至存儲器5025及長期存儲裝置5027,其可(例如)包括硬碟驅動器(包括(例如)磁介質、CD、DVD及快閃記憶體中的任一者)或磁帶驅動器。系統5021亦可包括用戶接口適配器,其經由總線將微處理器5026連接至一個或多個接口設備(諸如鍵盤5024、滑鼠5023、印表機/掃描儀5030,和/或其他接口設備),所述一個或多個接口設備可為任何用戶接口設備,諸如觸敏式屏幕、數位化輸入板(entry pad)等。總線亦經由顯示器適配器將顯示設備5022(諸如LCD屏幕或監視器)連接至微處理器5026。
系統5021可藉助能夠與網絡5029通信的網絡適配器與其他計算機或計算機的網絡通信5028。實例網絡適配器為通信通道、令牌環、乙太網或數據機。備選地,系統5021可使用諸如CDPD(蜂窩數字分組數據)卡的無線接口進行通信。系統5021可與區域網(LAN)或廣域網(WAN)中的此類其他計算機相關聯,或系統5021可為與另一計算機的客戶端/伺服器配置中的客戶端等。所有這些配置以及適當通信硬體及軟體在本領域中是公知的。
圖23說明其中可實施一個或多個優選實施例的數據處理網絡5040。數據處理網絡5040可包括多個個體網絡,諸如無線網絡及有線網絡,以上中的每一者可包括多個個體工作站5041、5042、5043、5044。另外,如本領域技術人員將了解的,可包括一個或多個LAN,其中LAN可包括耦接至主機處理器的多個智能工作站。
仍參考圖23,網絡亦可包括大型計算機或伺服器,諸如,網關計算機(客戶端伺服器5046)或應用伺服器(可存取數據存儲庫且亦可直接自工作站5045存取的遠程伺服器5048)。網關計算機5046充當至每一個體網絡的進入點。在將一個網絡連接協議連接至另一者時,需要網關。網關5046可藉助通信鏈路優選地耦接至另一網絡(例如,網際網路5047)。網關5046亦可使用通信鏈路直接耦接至一個或多個工作站5041、5042、5043、5044。網關計算機可利用可自國際商用機器公司獲得的IBM Power Systems伺服器及IBM System伺服器中的一者來實現。System為國際商業機器公司在全世界各地的註冊商標。
同時參考圖22及圖23,可體現一個或多個方面的軟體編程碼5031可由系統5020的處理器5026自諸如CD-ROM驅動器或硬碟驅動器的長期存儲介質5027存取。軟體編程碼可體現於多種已知介質中的任一者上以與數據處理系統(諸如,磁碟、硬碟驅動器或CD-ROM)使用。所述代碼可分布於此類介質上,或可自一個計算機系統的存儲器或存儲裝置經由至其他計算機系統的網絡分發給用戶,以供此類其他系統的用戶使用。
備選地,編程碼可體現於存儲器5025中且由處理器5026使用處理器總線存取。此類編程碼包括作業系統,其控制各種計算機組件及一個或多個應用程式5032的功能及交互。在程序代碼可用於由處理器5026進行處理的情況下,通常自存儲介質5027將程序代碼分頁至高速存儲器5025。在存儲器中、在物理介質上體現軟體編程碼和/或經由網絡分布軟體程序代碼的技術及方法是公知的且本文將不對其進行進一步論述。在被創建及存儲於有形介質(包括(但不限於)電子存儲模塊(RAM)、快閃記憶體、光碟(CD)、DVD、磁帶及其類似者)上時,程序代碼常被稱作「電腦程式產品」。電腦程式產品介質通常可由優選地在計算機系統中的處理電路讀取以供處理電路執行。
可最容易用於處理器的高速緩存(通常比處理器的其他高速緩存更快及更小)為最低(L1或層級1)的高速緩存且主存儲(主存儲器)為最高層級高速緩存(如果存在3個層級,則為L3)。最低層級高速緩存常劃分為保存待執行的機器指令的指令高速緩存(I-高速緩存)及保存數據操作數的數據高速緩存(D-高速緩存)。
參考圖24,描繪處理器5026的例示性處理器實施例。通常,一個或多個層級的高速緩存5053用於緩衝存儲器塊以便改進處理器性能。高速緩存5053為保存可能將使用的存儲器數據的高速緩存線的高速緩衝器。通常,高速緩存線為64個、128個或256個字節的存儲器數據。獨立高速緩存常用於緩存指令而非用於緩存數據。經常通過本領域中公知的各種「窺探(snoop)」算法提供高速緩存一致性(線的複本在存儲器及高速緩存中的同步)。處理器系統的主存儲裝置5025常被稱作高速緩存。在具有4個層級的高速緩存5053的處理器系統中,主存儲裝置5025有時被稱作層級5(L5)高速緩存,這是因為其通常更快且僅保存可用於計算機系統的非易失性存儲器(DASD、磁帶等)的一部分。主存儲裝置5025「緩存」由作業系統頁入及頁出主存儲裝置5025的數據頁面。
程序計數器(指令計數器)5061保持待執行的當前指令的地址追蹤。z/Architecture處理器中的程序計數器為64個位且可被截斷成31或24個位以支持先前尋址限制。Power架構處理器中的程序計數器為64個位且可被截斷成32個位以支持先前尋址限制。程序計數器通常體現於計算機的PSW(程序狀態字)中,以使得其在上下文切換期間持續。因此,正在進行中的具有程序計數器值的程序可由(例如)作業系統(自程序環境至作業系統環境的上下文切換)中斷。在程序不活動時,程序的PSW維持程序計數器值,並且在作業系統正在執行中時,使用作業系統的(PSW中的)程序計數器。通常,程序計數器的增量等於當前指令的字節數。RISC(精簡指令集計算)指令通常為長度固定的,而CISC(複雜指令集計算)指令通常為長度可變的。IBM z/Architecture的指令為具有2個、4個或6個字節的長度的CISC指令。IBM Power ISA的指令為具有4個字節的長度的RISC指令。通過(例如)分支指令的上下文切換操作或分支採取操作來修改程序計數器5061。在上下文切換操作中,將當前程序計數器值連同關於正執行的程序的其他狀態信息(諸如條件代碼)保存於程序狀態字中,並且加載新程序計數器值,該值指向新程序模塊的待執行的指令。執行分支採取操作以便通過將分支指令的結果加載至程序計數器5061中而準許程序作出決策或在程序內循環。
通常,指令取回單元5055用於代表處理器5026取回指令。取回單元取回「下一順序指令」、分支採取指令的目標指令或上下文切換後的程序的第一指令。現代指令取回單元常使用預取回技術以基於可使用預取回指令的可能性來以推測方式預取回指令。舉例而言,取回單元可取回16個字節的指令,其包括下一順序指令及額外字節的其他順序指令。
接著由處理器5026執行被取回的指令。在一個實施例中,將被取回的指令(多個)傳遞至取回單元的分派單元5056。分派單元將指令(多個)解碼且將關於已解碼指令(多個)的信息轉發至適當單元5057、5058、5060。執行單元5057通常將自指令取回單元5055接收關於已解碼算術指令的信息且將根據指令的操作碼對操作數執行算術運算。優選地自存儲器5025、架構化寄存器5059或自正被執行的指令的立即欄位提供操作數至執行單元5057。在存儲時,將執行結果存儲於存儲器5025、寄存器5059中或存儲於其他機器硬體(諸如控制寄存器、PSW寄存器及類似者)中。
使用動態地址轉換5062及可選地使用存取寄存器轉換5063將虛擬地址轉變為實地址。
處理器5026通常具有用於執行指令的功能的一個或多個單元5057、5058、5060。參考圖25A,執行單元5057可藉助接口連接邏輯5071與架構化通用寄存器5059、解碼/分派單元5056、加載存儲單元5060及其他處理器單元5065通信5071。執行單元5057可使用數個寄存器電路5067、5068、5069以保存信息,算術邏輯單元(ALU)5066將基於所述信息進行操作。ALU執行諸如加法、減法、乘法及除法的算術運算以及諸如「與」、「或」及「異或(XOR)」、循環及移位的邏輯功能。優選地,ALU支持設計相關的專用運算。其他電路可提供其他架構化工具5072,包括(例如)條件代碼及恢復支持邏輯。通常,將ALU運算的結果保存在輸出寄存器電路5070中,其可將結果轉發至多種其他處理功能。存在處理器單元的許多配置,本描述僅意欲提供對一個實施例的代表性理解。
ADD指令例如在具有算術和邏輯功能的執行單元5057中執行,而浮點指令例如在具有專門浮點能力的浮點執行中執行。優選地,執行單元通過針對操作數執行操作碼定義的功能來處理由指令標識的操作數。例如,執行單元5057可以對在由指令的寄存器欄位標識的兩個寄存器5059中找到的操作數執行ADD指令。
執行單元5057對兩個操作數執行算術加法並將結果存儲在第三操作數中,其中第三操作數可以是第三寄存器或兩個源寄存器之一。執行單元優選地使用算術邏輯單元(ALU)5066,算術邏輯單元(ALU)5066能夠執行各種邏輯功能(例如Shift、Rotate、「與」、「或」和「異或」)以及各種代數功能(包括加、減、乘、除中的任一種)。有些ALU 5066設計用於標量運算而有些用於浮點運算。根據體系結構,數據可以是大端(Big Endian)(其中最低有效字節在最高字節地址處)或小端(其中最低有效字節在最低字節地址處)。IBM z/Architecture是大端。IBM Power ISA支持大端和小端執行模式兩者。根據體系結構,帶符號欄位可以是符號以及1的補碼或2的補碼的量值。2的補碼數是有利的,因為ALU不需要設計減法功能,原因是採用2的補碼的負值或正值在ALU內僅需要加法。數字通常以速記法描述,例如其中一個12位欄位定義一個4,096位元組塊的地址,並且通常被描述為4KB(千字節)塊。
參考圖25B,通常將用於執行分支指令的分支指令信息發送到分支單元5058,分支單元5058通常採用分支預測算法(例如分支歷史表5082)以便在其他條件運算完成之前預測分支的結果。在條件運算完成之前,將取回並推測地執行當前分支指令的目標。當條件運算完成時,根據條件運算的條件以及推測的結果,將完成或丟棄推測地執行的分支指令。典型的分支指令可以測試條件碼並分支到目標地址,如果條件碼滿足分支指令的分支要求,則可以根據若干數值(例如包括在寄存器欄位或指令的立即欄位中找到的數值)計算目標地址。分支單元5058可以採用具有多個輸入寄存器電路5075、5076、5077以及一個輸出寄存器電路5080的ALU 5074。分支單元5058可以例如與通用寄存器5059、解碼分派單元5056或其他電路5073通信5081。
一組指令的執行可以因各種原因被中斷,這些原因例如包括由作業系統發起的上下文切換、導致上下文切換的程序異常或錯誤、導致上下文切換的I/O中斷信號或多個程序的多線程活動(在多線程環境中)。優選地,上下文切換操作將保存有關當前正在執行的程序的狀態信息,然後加載有關被調用的其他程序的狀態信息。例如,可以將狀態信息保存在硬體寄存器或存儲器中。狀態信息優選地包括指向要執行的下一指令的程序計數器值、條件碼、存儲器轉換信息以及架構寄存器內容。可以由硬體電路、應用程式、作業系統程序或固件代碼(微碼、微微碼或許可內碼(LIC))單獨或聯合實施上下文切換活動。
處理器根據指令定義的方法存取操作數。指令可使用指令的一部分的值提供立即操作數,可提供顯式指向通用寄存器或專用寄存器(例如,浮點寄存器)的一個或多個寄存器欄位。指令可利用由操作碼欄位識別為操作數的隱含寄存器。指令可利用操作數的存儲器位置。操作數的存儲器位置可由寄存器、立即欄位或寄存器及立即欄位的組合提供,如由以下各者所例示的:z/Architecture長位移工具,其中指令定義基寄存器、索引寄存器及立即欄位(位移欄位),以上各者加在一起提供(例如)存儲器中的操作數的地址;或Power ISA尋址模式,其中D-Form地址定義基寄存器及中間欄位(位移欄位),以上兩者加在一起提供存儲器中的操作數的地址;且其中X-Form地址定義基寄存器及索引寄存器,以上兩者加在一起提供存儲器中的操作數的地址。除非另有指示,否則本文中的位置通常暗示主存儲器(主存儲裝置)中的位置。
參考圖25C,處理器使用加載/存儲單元5060存取存儲裝置。加載/存儲單元5060可通過獲得存儲器5053中的目標操作數的地址及將所述操作數加載到寄存器5059或另一存儲器5053位置中來執行加載操作,或可通過獲得存儲器5053中的目標操作數的地址及將自寄存器5059或另一存儲器5053位置獲得的數據存儲於存儲器5053中的目標操作數位置來執行存儲操作。加載/存儲單元5060可為推測式的且可以以相對於指令順序無序的順序來存取存儲器;然而,加載/存儲單元5060用於對程序維持按次序執行指令的表象。加載/存儲單元5060可與通用寄存器5059、解碼/分派單元5056、高速緩存/存儲器接口5053或其他組件5083通信5084,並且包括各種寄存器電路5086、5087、5088及5089、ALU 5085及控制邏輯5090以計算存儲地址及提供管線定序以保持操作有序。一些操作可為無序的,但加載/存儲單元提供功能性以使無序操作對程序表現為已按次序執行,如本領域中公知的那樣。
優選地,應用程式「看到」的地址通常被稱為虛擬地址。虛擬地址有時被稱為「邏輯地址」和「有效地址」。這些地址是虛擬的,因為它們通過各種動態地址轉換(DAT)技術之一被重定向到物理存儲器位置,這些技術包括但不限於僅使用偏移值向虛擬地址添加前綴、通過一個或多個轉換錶轉換虛擬地址,所述轉換表優選地單獨或同時包括至少一個段表和頁表,優選地,所述段表具有指向頁表的表項。在z/Architecture中,提供了包括區第一表、區第二表、區第三表、段表以及可選的頁表的轉換層次結構。通常通過使用轉換後備緩衝器(TLB)提高地址轉換的性能,轉換後備緩衝器包括將虛擬地址映射到關聯的物理存儲器位置的表項。當DAT使用轉換表來轉換虛擬地址時,將創建表項。然後,虛擬地址的後續使用能夠使用快速TLB而不是緩慢順序轉換表存取的表項。可以由包括LRU(最近最少使用)在內的各種替換算法管理TLB內容。
如果處理器是多處理器系統的處理器,則每個處理器都有責任保持諸如I/O、高速緩存、TLB以及存儲器之類的共享資源互鎖以實現一致性。通常,將使用「窺探」技術保持高速緩存一致性。在窺探環境中,每個高速緩存行可以被標記為處於共享狀態、獨佔狀態、已更改狀態、無效狀態等中的任何一種狀態以便於共享。
I/O單元5054(圖24)提供用於附接至周邊設備(包括(例如)磁帶、光碟、印表機、顯示器及網絡)的構件給處理器。I/O單元通常由軟體驅動器呈現至電腦程式。在大型計算機(諸如來自的System z)中,通道適配器及開放系統適配器為在作業系統與周邊設備之間提供通信的大型計算機的I/O單元。在RISC伺服器(諸如,來自的Power Systems)中,專有適配器及開放系統適配器為在作業系統與周邊設備之間提供通信的I/O單元。
此外,其他類型的計算環境可受益於一個或多個方面。作為一實例,環境可包括仿真器(例如,軟體或其他仿真機制),其中特定架構(包括(例如)指令執行、架構化功能(諸如,地址轉換)及架構化寄存器)或其子集被仿真(例如,在具有處理器及存儲器的本機計算機系統上)。在此類環境中,仿真器的一個或多個仿真功能能夠實施一個或多個優選實施例,即使執行仿真器的計算機可能具有不同於正被仿真的能力的架構也是如此。作為一個實例,在仿真模式中,對特定指令或正被仿真的操作進行解碼,並且構建適當仿真功能以實施個體指令或操作。
在一仿真環境中,主計算機包括(例如):存儲器,其存儲指令及數據;指令取回單元,其自存儲器取回指令,並且可選地,提供所取回的指令的本地緩衝;指令解碼單元,其接收所取回的指令且判定已取回指令的類型;及指令執行單元,其執行所述指令。執行可包括將數據自存儲器加載至寄存器中;將數據自寄存器存儲回至存儲器;或執行某一類型的算術或邏輯運算(如由解碼單元所判定的)。在一個實例中,在軟體中實施每一單元。舉例而言,由所述單元執行的操作被實施為仿真器軟體內的一個或多個子例程。
更具體地說,在大型計算機中,經常由編程人員(通常為當今的「C」編程人員)藉助編譯器應用使用架構化機器指令。可本機地在Power Systems或z/Architecture伺服器中或替代地在執行其他架構的機器中執行存儲於存儲介質中的這些指令。這些指令可在現有及在未來大型計算機伺服器、Power Systems伺服器中及在的其他機器(例如,System x伺服器)上進行仿真。可在使用由AMD及其他公司製造的硬體的多種機器上運行Linux的機器中執行這些指令。除了在Power架構或z/Architecture下的該硬體上執行以外,可使用以及使用由Hercules、UMX或FSI(Fundamental Software公司)的仿真的機器,其中總體上執行處於仿真模式中。在仿真模式中,由本機處理器執行仿真軟體以仿真所仿真處理器的架構。Linux是Linus Torvalds在美國和/或其他國家的註冊商標。
本機處理器通常執行包括固件或本機作業系統的仿真軟體,以執行所仿真處理器的仿真。仿真軟體負責取回及執行所仿真的處理架構的指令。仿真軟體維護所仿真的程序計數器以保持對指令邊界的追蹤。仿真軟體可一次取回一個或多個所仿真的機器指令且將所述一個或多個所仿真的機器指令轉換為一組對應的本機機器指令以供本機處理器執行。這些轉換後的指令可被緩存,使得可實現更快的轉換。儘管如此,仿真軟體用於維持所仿真的處理器架構的架構規則以確保被編寫以用於所仿真處理器的作業系統及應用正確地進行操作。此外,仿真軟體用於提供由所仿真的處理器架構識別的資源,其包括(但不限於)控制寄存器、通用寄存器、浮點寄存器、包括(例如)段表及頁表的動態地址轉換功能、中斷機制、上下文切換機制、當日時間(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號,以上中的每一者在此以全文引用的方式併入本文中。
在圖26中,提供所仿真主計算機系統5092的一個實例,其仿真主機架構的主計算機系統5000'。在所仿真的主計算機系統5092中,主機處理器(CPU)5091為所仿真的主機處理器(或虛擬主機處理器)且包括仿真處理器5093,其具有不同於主計算機5000'的處理器5091的本機指令設定架構。所仿真的主計算機系統5092具有對仿真處理器5093可存取的存儲器5094。在本發明的該實例優選實施例中,存儲器5094被分區為主計算機存儲器5096部分及仿真例程5097部分。根據主計算機架構,主計算機存儲器5096可用於所仿真的主計算機5092的程序。仿真處理器5093執行架構與所仿真處理器5091的架構不同的架構化指令集的本機指令,所述本機指令自仿真例程存儲器5097獲得,並且所述仿真處理器可通過使用在順序及存取/解碼例程中獲得的一個或多個指令來從主計算機存儲器5096中的程序存取用於執行的主機指令,所述順序及存取/解碼例程可解碼所存取的主機指令(多個)以確定用於仿真所存取主機指令的功能的本機指令執行例程。舉例而言,被定義用於主計算機系統5000'架構的其他工具可由架構化工具例程仿真,所述工具包括諸如以下各者的工具:通用寄存器、控制寄存器、動態地址轉換及I/O子系統支持及處理器高速緩存。仿真例程亦可利用仿真處理器5093中可獲得的功能(諸如通用寄存器及虛擬地址的動態轉換)以改進仿真例程的性能。亦可提供專用硬體及卸載引擎以幫助處理器5093仿真主計算機5000'的功能。
在本發明的另一優選實施例中,一個或多個方面涉及雲計算。首先應當理解,儘管本公開包括關於雲計算的詳細描述,但其中記載的技術方案的實現卻不限於雲計算環境,而是能夠結合現在已知或以後開發的任何其它類型的計算環境而實現。
雲計算是一種服務交付模式,用於對共享的可配置計算資源池進行方便、按需的網絡訪問。可配置計算資源是能夠以最小的管理成本或與服務提供者進行最少的交互就能快速部署和釋放的資源,例如可以是網絡、網絡帶寬、伺服器、處理、內存、存儲、應用、虛擬機和服務。這種雲模式可以包括至少五個特徵、至少三個服務模型和至少四個部署模型。
特徵包括:
按需自助式服務:雲的消費者在無需與服務提供者進行人為交互的情況下能夠單方面自動地按需部署諸如伺服器時間和網絡存儲等的計算能力。
廣泛的網絡接入:計算能力可以通過標準機制在網絡上獲取,這種標準機制促進了通過不同種類的瘦客戶機平臺或厚客戶機平臺(例如行動電話、膝上型電腦、個人數字助理PDA)對雲的使用。
資源池:提供者的計算資源被歸入資源池並通過多租戶(multi-tenant)模式服務於多重消費者,其中按需將不同的實體資源和虛擬資源動態地分配和再分配。一般情況下,消費者不能控制或甚至並不知曉所提供的資源的確切位置,但可以在較高抽象程度上指定位置(例如國家、州或數據中心),因此具有位置無關性。
迅速彈性:能夠迅速、有彈性地(有時是自動地)部署計算能力,以實現快速擴展,並且能迅速釋放來快速縮小。在消費者看來,用於部署的可用計算能力往往顯得是無限的,並能在任意時候都能獲取任意數量的計算能力。
可測量的服務:雲系統通過利用適於服務類型(例如存儲、處理、帶寬和活躍用戶帳號)的某種抽象程度的計量能力,自動地控制和優化資源效用。可以監測、控制和報告資源使用情況,為服務提供者和消費者雙方提供透明度。
服務模型如下:
軟體即服務(SaaS):向消費者提供的能力是使用提供者在雲基礎架構上運行的應用。可以通過諸如網絡瀏覽器的瘦客戶機接口(例如基於網絡的電子郵件)從各種客戶機設備訪問應用。除了有限的特定於用戶的應用配置設置外,消費者既不管理也不控制包括網絡、伺服器、作業系統、存儲、乃至單個應用能力等的底層雲基礎架構。
平臺即服務(PaaS):向消費者提供的能力是在雲基礎架構上部署消費者創建或獲得的應用,這些應用利用提供者支持的程序設計語言和工具創建。消費者既不管理也不控制包括網絡、伺服器、作業系統或存儲的底層雲基礎架構,但對其部署的應用具有控制權,對應用託管環境配置可能也具有控制權。
基礎架構即服務(IaaS):向消費者提供的能力是消費者能夠在其中部署並運行包括作業系統和應用的任意軟體的處理、存儲、網絡和其他基礎計算資源。消費者既不管理也不控制底層的雲基礎架構,但是對作業系統、存儲和其部署的應用具有控制權,對選擇的網絡組件(例如主機防火牆)可能具有有限的控制權。
部署模型如下:
私有云:雲基礎架構單獨為某個組織運行。雲基礎架構可以由該組織或第三方管理並且可以存在於該組織內部或外部。
共同體云:雲基礎架構被若干組織共享並支持有共同利害關係(例如任務使命、安全要求、政策和合規考慮)的特定共同體。共同體雲可以由共同體內的多個組織或第三方管理並且可以存在於該共同體內部或外部。
公共云:雲基礎架構向公眾或大型產業群提供並由出售雲服務的組織擁有。
混合云:雲基礎架構由兩個或更多部署模型的雲(私有雲、共同體雲或公共雲)組成,這些雲依然是獨特的實體,但是通過使數據和應用能夠移植的標準化技術或私有技術(例如用於雲之間的負載平衡的雲突發流量分擔技術)綁定在一起。
雲計算環境是面向服務的,特點集中在無狀態性、低耦合性、模塊性和語意的互操作性。雲計算的核心是包含互連節點網絡的基礎架構。
現在參考圖27,其中顯示了雲計算節點的一個例子。雲計算節點6010僅僅是適合的雲計算節點的一個示例,不應對本發明優選實施例的功能和使用範圍帶來任何限制。總之,雲計算節點6010能夠被用來實現和/或執行以上所述的任何功能。
雲計算節點6010具有計算機系統/伺服器6012,其可與眾多其它通用或專用計算系統環境或配置一起操作。眾所周知,適於與計算機系統/伺服器6012一起操作的計算系統、環境和/或配置的例子包括但不限於:個人計算機系統、伺服器計算機系統、瘦客戶機、厚客戶機、手持或膝上設備、多處理器系統、基於微處理器的系統、機頂盒、可編程消費電子產品、網絡個人電腦、小型計算機系統﹑大型計算機系統和包括上述系統或設備中的任一者的分布式雲計算技術環境,等等。
計算機系統/伺服器6012可以在由計算機系統執行的計算機系統可執行指令(諸如程序模塊)的一般語境下描述。通常,程序模塊可以包括執行特定的任務或者實現特定的抽象數據類型的例程、程序、目標程序、組件、邏輯、數據結構等。計算機系統/伺服器6012可以在通過通信網絡連結的遠程處理設備執行任務的分布式雲計算環境中實施。在分布式雲計算環境中,程序模塊可以位於包括存儲設備的本地或遠程計算系統存儲介質上。
如圖27所示,雲計算節點6010中的計算機系統/伺服器6012以通用計算設備的形式表現。計算機系統/伺服器6012的組件可以包括但不限於:一個或者多個處理器或者處理單元6016,系統存儲器6028,連接不同系統組件(包括系統存儲器6028和處理單元6016)的總線6018。
總線6018表示幾類總線結構中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速埠,處理器或者使用多種總線結構中的任意總線結構的局域總線。舉例來說,這些體系結構包括但不限於工業標準體系結構(ISA)總線,微通道體系結構(MAC)總線,增強型ISA總線、視頻電子標準協會(VESA)局域總線以及外圍組件互連(PCI)總線。
計算機系統/伺服器6012典型地包括多種計算機系統可讀介質。這些介質可以是能夠被計算機系統/伺服器6012訪問的任意可獲得的介質,包括易失性和非易失性介質,可移動的和不可移動的介質。
系統存儲器6028可以包括易失性存儲器形式的計算機系統可讀介質,例如隨機存取存儲器(RAM)6030和/或高速緩存存儲器6032。計算機系統/伺服器6012可以進一步包括其它可移動/不可移動的、易失性/非易失性計算機系統存儲介質。僅作為舉例,存儲系統6034可以用於讀寫不可移動的、非易失性磁介質(圖中未顯示,通常稱為「硬碟驅動器」)。儘管圖中未示出,可以提供用於對可移動非易失性磁碟(例如「軟盤」)讀寫的磁碟驅動器,以及對可移動非易失性光碟(例如CD-ROM,DVD-ROM或者其它光介質)讀寫的光碟驅動器。在這些情況下,每個驅動器可以通過一個或者多個數據介質接口與總線6018相連。如以下將進一步示出和描述的,存儲器6028可以包括至少一個程序產品,該程序產品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執行本發明的優選實施例的功能。
作為實例而非限制,具有一組(至少一個)程序模塊6042的程序/實用工具6040,可以存儲在存儲器6028中,這樣的程序模塊6042包括但不限於作業系統、一個或者多個應用程式、其它程序模塊以及程序數據,這些示例中的每一個或某種組合中可能包括網絡環境的實現。程序模塊6042通常執行在此描述的本發明的優選實施例中的功能和/或方法。
計算機系統/伺服器6012也可以與一個或多個外部設備6014(例如鍵盤、指向設備、顯示器6024等)通信,還可與一個或者多個使得用戶能與該計算機系統/伺服器6012交互的設備通信,和/或與使得該計算機系統/伺服器6012能與一個或多個其它計算設備進行通信的任何設備(例如網卡,數據機等等)通信。這種通信可以通過輸入/輸出(I/O)接口6022進行。並且,計算機系統/伺服器6012還可以通過網絡適配器6020與一個或者多個網絡(例如區域網(LAN),廣域網(WAN)和/或公共網絡,例如網際網路)通信。如圖所示,網絡適配器6020通過總線6018與計算機系統/伺服器6012的其它組件通信。應當明白,儘管圖中未示出,其它硬體和/或軟體組件可以與計算機系統/伺服器6012一起操作,包括但不限於:微代碼、設備驅動器、冗餘處理單元、外部磁碟驅動陣列、RAID系統、磁帶驅動器以及數據備份存儲系統等。
現在參考圖28,其中顯示了示例性的雲計算環境6050。如圖所示,雲計算環境6050包括雲計算消費者使用的本地計算設備可以與其相通信的一個或者多個雲計算節點6010,本地計算設備例如可以是個人數字助理(PDA)或行動電話6054A,桌上型電腦6054B、筆記本電腦6054C和/或汽車計算機系統6054N。節點6010可以相互通信。可以在包括但不限於如上所述的私有雲、共同體雲、公共雲或混合雲或者它們的組合的一個或者多個網絡中將雲計算節點6010進行物理或虛擬分組(圖中未顯示)。這樣,雲的消費者無需在本地計算設備上維護資源就能請求雲計算環境6050提供的基礎架構即服務(IaaS)、平臺即服務(PaaS)和/或軟體即服務(SaaS)。應當理解,圖28顯示的各類計算設備6054A-N僅僅是示意性的,雲計算節點6010以及雲計算環境6050可以與任意類型網絡上和/或網絡可尋址連接的任意類型的計算設備(例如使用網絡瀏覽器)通信。
現在參考圖29,其中顯示了雲計算環境6050(圖28)提供的一組功能抽象層。首先應當理解,圖29所示的組件、層以及功能都僅僅是示意性的,本發明的優選實施例不限於此。如圖29所示,提供下列層和對應功能:
硬體和軟體層6060包括硬體和軟體組件。硬體組件的例子包括:主機,例如系統;基於RISC(精簡指令集計算機)體系結構的伺服器,例如IBM系統;IBM系統;IBM系統;存儲設備;網絡和網絡組件。軟體組件的例子包括:網絡應用伺服器軟體,例如IBM應用伺服器軟體;資料庫軟體,例如IBM資料庫軟體。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是國際商業機器公司在全世界各地的註冊商標)。
虛擬層6062提供一個抽象層,該層可以提供下列虛擬實體的例子:虛擬伺服器、虛擬存儲、虛擬網絡(包括虛擬私有網絡)、虛擬應用和作業系統,以及虛擬客戶端。
在一個實例中,管理層6064可以提供下述功能:資源供應功能:提供用於在雲計算環境中執行任務的計算資源和其它資源的動態獲取;計量和定價功能:在雲計算環境內對資源的使用進行成本跟蹤,並為此提供帳單和發票。在一個例子中,該資源可以包括應用軟體許可。安全功能:為雲的消費者和任務提供身份認證,為數據和其它資源提供保護。用戶門戶功能:為消費者和系統管理員提供對雲計算環境的訪問。服務水平管理功能:提供雲計算資源的分配和管理,以滿足必需的服務水平。服務水平協議(SLA)計劃和履行功能:為根據SLA預測的對雲計算資源未來需求提供預先安排和供應。
工作負載層6066提供雲計算環境可能實現的功能的示例。在該層中,可提供的工作負載或功能的示例包括:地圖繪製與導航;軟體開發及生命周期管理;虛擬教室的教學提供;數據分析處理;以及事務處理。
本文中所用的術語,僅僅是為了描述特定的優選實施例,而不意圖限定本發明。本文中所用的單數形式的「一」和「該」,旨在也包括複數形式,除非上下文中明確地另行指出。還要知道,「包含」和/或「包括」在本說明書中使用時,說明存在所指出的特徵、整體、步驟、操作、單元和/或組件,但是並不排除存在或增加一個或多個其它特徵、整體、步驟、操作、單元和/或組件,以及/或者它們的組合。
以下的權利要求中的對應結構、材料、操作以及所有功能性限定的裝置(means)或步驟的等同替換,旨在包括任何用於與在權利要求中具體指出的其它單元相組合地執行該功能的結構、材料或操作。所給出的對一個或多個優選實施例的描述其目的在於示意和描述,並非是窮盡性的,也並非是要將本發明限定到所表述的形式。對於所屬技術領域的普通技術人員來說,顯然可以作出許多修改和變型。對實施例的選擇和描述,是為了最好地解釋本發明的原理和實際應用,使所屬技術領域的普通技術人員能夠明了,本發明可以有適合所要的特定用途的具有各種改變的各種優選實施例。