TW201610708A - 用於可在多種架構中初始化之控制公用程式之共同開機順序 - Google Patents

用於可在多種架構中初始化之控制公用程式之共同開機順序 Download PDF

Info

Publication number
TW201610708A
TW201610708A TW104108516A TW104108516A TW201610708A TW 201610708 A TW201610708 A TW 201610708A TW 104108516 A TW104108516 A TW 104108516A TW 104108516 A TW104108516 A TW 104108516A TW 201610708 A TW201610708 A TW 201610708A
Authority
TW
Taiwan
Prior art keywords
architecture
processor
mode
architectural
instructions
Prior art date
Application number
TW104108516A
Other languages
English (en)
Other versions
TWI639090B (zh
Inventor
麥克K 齊史溫
Original Assignee
萬國商業機器公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 萬國商業機器公司 filed Critical 萬國商業機器公司
Publication of TW201610708A publication Critical patent/TW201610708A/zh
Application granted granted Critical
Publication of TWI639090B publication Critical patent/TWI639090B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)

Abstract

本發明提供一種共同開機順序設施,其使得一控制公用程式(例如,作為實例之作業系統、控制程式或其他獨立工具)能夠在不改變該開機順序之情況下以複數個組態開機。一作業系統或其他控制公用程式使用該共同開機順序以便能夠在一第一架構組態中抑或在一第二架構組態中開機,該第一架構組態在一個架構(例如ESA/390)中初始化且接著切換至(例如)用於處理之另一架構(例如z/Architecture),該第二架構組態在該另一架構(例如z/Architecture)中初始化及進行處理。

Description

用於可在多種架構中初始化之控制公用程式之共同開機順序
一或多項態樣大體上係關於運算環境之組態,且詳言之係關於支援多個組態。
運算環境提供一系列視環境之架構組態而定之能力及功能。已由紐約阿蒙克市之國際商業機器公司(International Business Machines Corporation,Armonk,New York)提供之兩種架構包括ESA/390及z/Architecture。
ESA/390為z/Architecture之舊版架構。然而,當引入z/Architecture時,ESA/390繼續受到支援。為在一個環境中支援兩種架構,遵循某些程序。舉例而言,在上電時,使ESA/390開機,且接著在需要時可進行至z/Architecture之切換。此允許傳統軟體繼續執行而無需改變。提供其他此類程序以便在一個環境中支援兩種架構組態。
經由提供一種用於在運算環境內初始化控制公用程式之電腦程式產品來克服先前技術之缺點及提供優點。電腦程式產品包括(例如)_電腦可讀儲存媒體,其可由處理電路讀取且儲存供該處理電路執行以用於執行一方法的指令。該方法包括(例如):藉由處理器執行開機順序以使該控制公用程式在基於所選架構之所選架構模式中開機, 該控制公用程式經撰寫以用於該所選架構且經組態以依第一架構組態或第二架構組態中之至少一者予以初始化,該第一架構組態在一個架構中初始化且切換至用於處理之所選架構,該第二架構組態在所選架構中初始化及進行處理,且其中執行該開機順序包括:執行一或多個指令而不考慮處理器是將基於第一架構組態還是基於第二架構組態執行初始化,該一或多個指令對一個架構及所選架構係共同的,原因在於該一或多個指令定義於該一個架構及該所選架構中,且該執行包含執行切換操作以請求對處理器之架構模式之切換而不考慮處理器是將在該一個架構還是在該所選架構中執行初始化,其中該切換操作基於該處理器將執行初始化之架構是該一個架構還是該所選架構而以不同方式執行,且基於執行該切換操作,該控制公用程式在該所選架構模式中開機。
本文亦描述及主張關於一或多項實施例之方法及系統。此外,本文亦描述且可主張關於一或多項實施例之服務。
實現了額外特徵及優點。本文中詳細描述了其他實施例及態樣且該等實施例及態樣被視為所主張發明之一部分。
100‧‧‧運算環境
102‧‧‧中央處理器複合體(CPC)
104‧‧‧處理器記憶體
106‧‧‧輸入/輸出(I/O)裝置
108‧‧‧控制單元
110‧‧‧中央處理器
111‧‧‧輸入/輸出子系統
112‧‧‧邏輯分割區
113‧‧‧處理器韌體
114‧‧‧邏輯分割區超管理器
115‧‧‧處理器韌體
120‧‧‧應用程式
122‧‧‧作業系統
124‧‧‧共同開機順序設施
130‧‧‧組態架構模式設施
200‧‧‧運算環境
202‧‧‧處理器/中央處理單元
204‧‧‧組態架構模式設施
206‧‧‧快取記憶體
208‧‧‧記憶體部分
210‧‧‧快取記憶體
212‧‧‧輸入/輸出(I/O)子系統
214‧‧‧外部I/O裝置
220‧‧‧控制公用程式
222‧‧‧共同開機順序
300‧‧‧運算環境
302‧‧‧原生中央處理單元(CPU)
304‧‧‧記憶體
306‧‧‧輸入/輸出裝置/介面
308‧‧‧匯流排
310‧‧‧原生暫存器
311‧‧‧組態架構模式設施
312‧‧‧模擬器程式碼
350‧‧‧客體指令
351‧‧‧共同開機順序
352‧‧‧指令擷取常式
354‧‧‧指令轉譯常式
356‧‧‧原生指令
360‧‧‧模擬控制常式
400‧‧‧步驟
402‧‧‧步驟
404‧‧‧步驟
406‧‧‧步驟
408‧‧‧步驟
420‧‧‧步驟
422‧‧‧步驟
424‧‧‧步驟
426‧‧‧查詢
428‧‧‧步驟
430‧‧‧步驟
500‧‧‧程式狀態字組
502‧‧‧Per遮罩
504‧‧‧DAT模式
506‧‧‧I/O遮罩
508‧‧‧外部遮罩
510‧‧‧PSW金鑰
512‧‧‧位元12
514‧‧‧機器檢查遮罩
516‧‧‧等待狀態
518‧‧‧問題狀態
520‧‧‧位址空間控制項
522‧‧‧條件碼
524‧‧‧程式遮罩
526‧‧‧擴展定址模式
528‧‧‧基本定址模式
530‧‧‧指令位址
600‧‧‧步驟
602‧‧‧步驟
604‧‧‧步驟
606‧‧‧步驟
608‧‧‧步驟
620‧‧‧步驟
622‧‧‧步驟
632‧‧‧步驟
700‧‧‧載入PSW指令
702‧‧‧作業碼欄位
704‧‧‧基本欄位
706‧‧‧位移欄位
800‧‧‧信號處理器指令
802‧‧‧操作碼欄位
804‧‧‧第一暫存器欄位
806‧‧‧第二暫存器欄位
808‧‧‧基本欄位
810‧‧‧位移欄位
850‧‧‧步驟
852‧‧‧步驟
854‧‧‧查詢
856‧‧‧查詢
858‧‧‧步驟
860‧‧‧步驟
862‧‧‧查詢
864‧‧‧步驟
866‧‧‧步驟
868‧‧‧步驟
870‧‧‧查詢
872‧‧‧步驟
874‧‧‧步驟
876‧‧‧步驟
878‧‧‧步驟
880‧‧‧步驟
900‧‧‧步驟
902‧‧‧步驟
904‧‧‧步驟
906‧‧‧步驟
908‧‧‧查詢
910‧‧‧步驟
912‧‧‧步驟
1000‧‧‧步驟
1002‧‧‧步驟
1004‧‧‧步驟
1100‧‧‧步驟
1102‧‧‧步驟
1104‧‧‧步驟
1106‧‧‧步驟
1108‧‧‧步驟
1200‧‧‧步驟
1202‧‧‧查詢
1204‧‧‧步驟
1206‧‧‧步驟
1208‧‧‧步驟
1212‧‧‧步驟
1214‧‧‧步驟
1215‧‧‧步驟
1216‧‧‧步驟
1300‧‧‧提取PSW指令
1302‧‧‧操作碼
1304‧‧‧第一暫存器欄位
1306‧‧‧第二暫存器欄位
1400‧‧‧步驟
1402‧‧‧步驟
1404‧‧‧步驟
1406‧‧‧步驟
1408‧‧‧查詢
1410‧‧‧步驟
1412‧‧‧步驟
1414‧‧‧步驟
1500‧‧‧步驟
1502‧‧‧步驟
1504‧‧‧查詢
1506‧‧‧步驟
1508‧‧‧步驟
1510‧‧‧步驟
1512‧‧‧步驟
1514‧‧‧步驟
1600‧‧‧步驟
1602‧‧‧步驟
1604‧‧‧查詢
1606‧‧‧步驟
1608‧‧‧步驟
1610‧‧‧步驟
1612‧‧‧步驟
1614‧‧‧步驟
1616‧‧‧步驟
1618‧‧‧步驟
1700‧‧‧步驟
1702‧‧‧步驟
1704‧‧‧步驟
1706‧‧‧步驟
1800‧‧‧步驟
1802‧‧‧查詢
1804‧‧‧步驟
1806‧‧‧步驟
1900‧‧‧步驟
1902‧‧‧步驟
1904‧‧‧步驟
1906‧‧‧步驟
1908‧‧‧步驟
1910‧‧‧步驟
2000‧‧‧電腦程式產品
2002‧‧‧電腦可讀儲存媒體
2004‧‧‧程式碼邏輯
5000‧‧‧主機電腦系統
5000'‧‧‧主機電腦系統
5001‧‧‧處理器
5002‧‧‧電腦記憶體/中央儲存器
5003‧‧‧動態位址轉譯
5004‧‧‧指令擷取單元
5005‧‧‧載入/儲存單元
5006‧‧‧指令解碼單元
5007‧‧‧轉譯後備緩衝器
5008‧‧‧指令執行單元
5009‧‧‧快取記憶體
5010‧‧‧網路
5011‧‧‧儲存媒體裝置
5012‧‧‧存取暫存器轉譯
5013‧‧‧ART後備緩衝器
5020‧‧‧系統
5021‧‧‧代表性基礎電腦系統
5022‧‧‧顯示裝置
5023‧‧‧滑鼠
5024‧‧‧鍵盤
5025‧‧‧記憶體
5026‧‧‧處理器
5027‧‧‧長期儲存器/儲存媒體
5028‧‧‧通信
5029‧‧‧網路
5030‧‧‧印表機/掃描器
5031‧‧‧軟體程式設計碼
5032‧‧‧應用程式
5040‧‧‧資料處理網路
5041‧‧‧工作站
5042‧‧‧工作站
5043‧‧‧工作站
5044‧‧‧工作站
5045‧‧‧工作站
5046‧‧‧用戶端伺服器/閘道器電腦
5047‧‧‧網際網路
5048‧‧‧遠端伺服器
5050‧‧‧使用者
5051‧‧‧使用者
5053‧‧‧快取記憶體
5054‧‧‧I/O單元
5055‧‧‧指令擷取單元
5056‧‧‧解碼/分派單元
5057‧‧‧執行單元
5058‧‧‧分支單元
5059‧‧‧架構化暫存器
5060‧‧‧載入/儲存單元
5061‧‧‧程式計數器
5062‧‧‧動態位址轉譯
5063‧‧‧存取暫存器轉譯
5065‧‧‧處理器單元
5066‧‧‧算術邏輯單元
5067‧‧‧暫存器電路
5068‧‧‧暫存器電路
5069‧‧‧暫存器電路
5070‧‧‧輸出暫存器電路
5071‧‧‧通信
5072‧‧‧架構化設施
5073‧‧‧電路
5074‧‧‧算術邏輯單元
5075‧‧‧輸入暫存器電路
5076‧‧‧輸入暫存器電路
5077‧‧‧輸入暫存器電路
5080‧‧‧輸出暫存器電路
5081‧‧‧通信
5082‧‧‧分支歷史表
5083‧‧‧元件
5084‧‧‧通信
5085‧‧‧算術邏輯單元
5086‧‧‧暫存器電路
5087‧‧‧暫存器電路
5088‧‧‧暫存器電路
5089‧‧‧暫存器電路
5090‧‧‧控制邏輯
5091‧‧‧主機處理器
5092‧‧‧所模擬主機電腦系統
5093‧‧‧模擬處理器
5094‧‧‧記憶體
5096‧‧‧主機電腦記憶體
5097‧‧‧模擬常式
6010‧‧‧雲端運算節點
6012‧‧‧電腦系統/伺服器
6014‧‧‧外部裝置
6016‧‧‧處理單元
6018‧‧‧匯流排
6020‧‧‧網路配接器
6022‧‧‧輸入/輸出(I/O)介面
6024‧‧‧顯示器
6028‧‧‧系統記憶體
6030‧‧‧隨機存取記憶體
6032‧‧‧快取記憶體
6034‧‧‧儲存系統
6040‧‧‧程式/公用程式
6042‧‧‧程式模組
6050‧‧‧雲端運算環境
6054A‧‧‧蜂巢式電話
6054B‧‧‧桌上型電腦
6054C‧‧‧膝上型電腦
6054N‧‧‧汽車電腦系統
6060‧‧‧硬體及軟體層
6062‧‧‧虛擬化層
6064‧‧‧管理層
6066‧‧‧工作負載層
在本說明書之結尾處之申請專利範圍中作為實例特別地指出且清楚地主張一或多項態樣。前述及其他目標、特徵及優點將自結合隨附圖式進行的以下詳細描述顯而易見,在該等隨附圖示中:圖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/架構。此允許傳統軟體繼續執行而無需改變。然而,可存在其中需要直接開機至z/Architecture中的情況。因此,提供一種共同開機順序,其使得控制公用程式能夠以透明方式以任一組態開機。舉例而言,經撰寫以用於z/Architecture之作業系統使用該開機順序以便在ESA/390中開機及接著切換至z/Architecture抑或直接開機至z/Architecture。儘管參考ESA/390及z/Architecture描述本文中之實施例,但一或多項態樣亦適用於其他架構。
參考圖1描述併入有及使用共同開機順序設施之一或多項態樣的運算環境的一項實例。參考圖1,在一項實例中,運算環境100係基於z/Architecture,該z/Architecture由紐約阿蒙克市之國際商業機器(IBM®)公司提供。z/Architecture描述於標題為「z/Architecture-Principles of Operation」之公開號為SA22-7932-09號之IBM出版物(2012年9月,第10版)中,該出版物在此以全文引用之方式併入本文中。儘管運算環境係基於z/Architecture的,但在一項實施例中,其亦支援一或多個其他架構組態,諸如ESA/390。
Z/ARCHITECTURE、IBM、Z/VM及Z/OS(下文所參考)為紐約阿蒙克市之國際商業機器公司之註冊商標。本文中使用之其他名稱可為國際商業機器公司或其他公司之註冊商標、商標或產品名稱。
作為一項實例,運算環境100包括中央處理器複合體(CPC)102,其經由一或多個控制單元108耦接至一或多個輸入/輸出(I/O)裝置106。中央處理器複合體102包括(例如)耦接至一或多個中央處理器(亦稱為中央處理單元(CPU))110及輸入/輸出子系統111之處理器記憶體 104(亦亦稱為主記憶體、主儲存器、中央儲存器),在下文描述中央處理器及輸入/輸出子系統中之每一者。
處理器記憶體104包括(例如)一或多個分割區112(例如,邏輯分割區)及處理器韌體113,該處理器韌體包括邏輯分割區超管理器114及其他處理器韌體115。邏輯分割區超管理器114之一項實例為紐約阿蒙克市之國際商業機器公司所提供之Processor Resource/System Manager(PR/SM)。
邏輯分割區充當獨立系統且其中具有一或多個應用程式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可包括:由紐約阿蒙克市之國際商用機器公司提供之PowerPC處理器或Power Systems伺服器;由加州帕洛阿爾托之惠普公司(Hewlett Packard Co.,Palo Alto,California)提供之具有英特爾安藤II(Intel Itanium II)處理器之HP Superdome;及/或基於由國際商用機器公司、惠普公司、英特爾公司、甲骨文公司(Oracle)或其他公司提供之架構之其他機器。
原生中央處理單元302包括一個或多個原生暫存器310,諸如在環境內進行處理期間使用之一或多個通用暫存器及/或一或多個專用暫存器,且視情況包括組態架構模式設施311。此等暫存器包括表示在任何特定時間點處之環境狀態之資訊。
此外,原生中央處理單元302執行儲存於記憶體304中之指令及程式碼。在一個特定實例中,中央處理單元執行儲存於記憶體304中之模擬器程式碼312。此程式碼使在一個架構中組態之運算環境能夠模擬一或多個其他架構。舉例而言,模擬器程式碼312允許基於除z/Architecture以外之架構之機器(諸如PowerPC處理器、Power Systems伺服器、HP Superdome伺服器或其他)模擬z/Architecture(及/或ESA/390)及執行基於z/Architecture開發之軟體及指令。
參考圖3B描述關於模擬器程式碼312之更多細節。儲存於記憶體304中之客體指令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),在該第二組態中,控制公用 程式在(例如)第二架構模式中初始化及進行處理。在一項實施例中,第一架構模式包括第一指令「設定架構」且具有支援特徵之第一集合,諸如31位元定址、使用32位元通用暫存器及各種設施。此外,第二架構模式包括第二指令「設定架構」且具有支援特徵之第二集合,諸如64位元定址、使用64位元通用暫存器及各種設施(諸如,動態位址轉譯及/或其他設施)。
在一項實施例中,藉由安裝組態架構模式設施而促進第二組態,開機公用程式以該第二組態在所選架構模式(諸如z/Architecture)中初始化且直接進行處理。如本文所描述,此設施提供用於運算環境(例如,處理器、LPAR、虛擬客體)之電源開啟或開機順序,該電源開啟或開機順序使運算環境在所選架構模式中開機。因此,在提供關於共同開機順序之更多細節之前,描述組態架構模式設施之態樣。然而,應注意,共同開機順序能力亦可用於不包括組態架構模式設施之環境中。
在一項實施例中,將組態架構模式(CAM)設施安裝在運算環境之一或多個處理器(例如中央處理單元)中以控制該環境之重組態。舉例而言,在將CAM安裝於支援複數個架構模式之運算環境中時,運算環境經重組態以使得限制至少一個架構模式之一或多項態樣的使用。
組態架構模式設施之一個特定實例為組態z/Architecture架構模式(CZAM)設施。CZAM之安裝藉由(例如)設施安裝指示符(例如,設定為(例如)一之位元138)指示。在一個特定實例中,當位元138經設定為一時,安裝CZAN設施,且在安裝時,正常重設及清除重設將組態置於z/Architecture架構模式中。因此,在一項實例中,指示z/Architecture架構模式為作用中的設施位元(例如,位元2)亦經設定為一。
基於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處之格式0 CCW用修飾符位元0、資料位址0、位元組計數24、鏈式命令及SL1旗標1及所有其他旗標0指定讀取命令。
當成功完成IPL輸入/輸出操作時,將用於IPL裝置之子系統識別字組儲存於所選之絕對儲存位置(例如,位置184至187),將0儲存於其他所選絕對儲存位置(例如,位置188至191),且自所選絕對儲存位置(例如,位置0至7)載入新程式狀態字組(program status word;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/390 PSW格式設定為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/390 PSW之大小及格式。因此,具有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/390 IPL PSW,且程式繼續在ESA/390架構模式中執行指令。在安裝CZAM後,重設條件為 z/Architecture,位元12仍為1,從而形成有效ESA/390 IPL 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模式(由儲存器中之位元12「1」表示,該位元經反轉為位元「0」以在ESA/390 PSW經轉譯為有效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/390 PSW之格式。若運算元之位元12為0,則將在載入PSW之執行期間或之後識別規格異常。
在Plambeck等人的「Development and Attributes of z/Architecture」(BM J.Res.& Dev.,第46卷,第4/5號,2002年7月/9月)中描述關於PSW之更多細節,該文獻在此以全文引用之方式併入本文中。
除了可歸因於組態架構模式設施之安裝而改變之以上處理程序、操作及/或行為以外,在一或多項實施例中亦可改變重設模式,如下文所解釋。
(4)改變重設模式(例如,用於重設、清除重設及針對重設之其他動作)。在安裝CZAM設施時,若CPU重設係由(例如)載入正常金鑰之啟動而引起的,則CPU重設將架構模式設定為z/Architecture模式。
存在經包括作為ESA/390及z/架構模式之部分的大量重設功能,其包括(例如)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之架構模式)自z/Architecture模式變為ESA/390模式。若安裝CZAM設施,則將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重設釋放在執行PERFORM LOCKED 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中之所有儲存位置及暫存器。此種清除用於偵錯程式及確保使用者隱私。清除重設亦解除PERFORM LOCKED OPERATION指令使用之所有鎖定。若未安裝CZAM設施,則清除重設將架構模式設定為ESA/390模式。在安裝CZAM設施時,清除重設將架構模式設定為z/Architecture模式。清除並不影響外部儲存器,諸如,控制程式所使用以保持不可定址頁面之內容之直接存取儲存裝置。
清除重設將初始CPU重設功能與引起以下動作之初始化功能進行組合:
1.在未安裝CZAM設施時,將組態中之所有CPU之架構模式設定為ESA/390模式。若安裝CZAM設施,則將組態中之所有CPU之架構模式設定為z/Architecture模式。
2.將組態中之所有CPU之存取暫存器、通用暫存器及浮點暫存器設定為0。將通用暫存器之所有64個位元設定為零而不考慮在起始清除重設功能時,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。當藉由此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/390 PSW轉變為z/Architecture PSW。代碼2指定,將執行信號處理器之CPU之PSW轉變為z/Architecture PSW,且對於組態中之所有其他CPU中之每一者,將使用用於彼CPU之經捕獲z/Architecture-PSW暫存器之值設定PSW。倘若經捕獲之z/Architecture-PSW暫存器尚未藉由重設設定為一切歸零,則使用經捕獲之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暫存器已經設定為一切歸零。
‧若命令將架構模式自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/390 PER位址欄位中。
在一項實施例中,以下為關於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。若使用其中可不執行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檔案號:POU920140021 US 1); 及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可具有存取暫存器轉譯(access register translation;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、816及32位元組之欄位給定特殊名稱。半字組(halfword)為二位元組邊界上之兩個連續位元組 之群組且為指令之基礎建置區塊。字組(word)為在四位元組邊界上之四個連續位元組之群組。雙字組(doubleword)為在八位元組邊界上之八個連續位元組之群組。四倍字組(quadword)為在16位元組邊界上之16個連續位元組之群組。八倍字組(octoword)為在32位元組邊界上之32個連續位元組之群組。當儲存位址指定半字組、字組、雙字組、四倍字組及八倍字組時,位址之二進位表示分別含有一個、兩個、三個、四個或五個最右零位元。指令將在二位元組積分邊界上。多數指令之儲存運算元不具有邊界對準要求。
在針對指令及資料運算元實施獨立快取記憶體之裝置上,無論儲存器是否更改隨後擷取之指令,若程式儲存至隨後擷取指令之快取線中,則可能經歷顯著延遲。
在一項實例中,可藉由軟體(有時被稱作特許內部碼、韌體、微碼、毫碼或微微碼及類似者,以上中之任一者將與一或多項實施例相一致)實踐實施例。參考圖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(cellular digital packet data;蜂巢式數位封包資料)卡之無線介面進行通信。系統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 z伺服器中之一者實施。
同時參考圖22及圖23,可體現一或多項態樣之軟體程式設計碼5031可由系統5020之處理器5026自諸如CD-ROM驅動機或硬碟機之長期儲存媒體5027存取。軟體程式設計碼可體現於多種已知媒體中之任一者上以與資料處理系統(諸如,磁片、硬碟機或CD-ROM)使用。程式碼可分佈於此類媒體上,或可自一個電腦系統之記憶體或儲存器經由至其他電腦系統之網路分佈至使用者,以供此類其他系統之使用者使用。
替代地,程式設計碼可體現於記憶體5025中且由處理器5026使用處理器匯流排存取。此類程式設計碼包括作業系統,其控制各種電腦組件及一或多個應用程式5032之功能及互動。在程式碼可用於由處理器5026進行處理之情況下,通常自儲存媒體5027將程式碼分頁至高速記憶體5025。熟知在記憶體中、在實體媒體上體現軟體程式設計碼及/或經由網路分佈軟體程式碼之技術及方法且本文將不對其進行進一步論述。在建立及儲存於有形媒體(包含(但不限於)電子記憶體模組(RAM)、快閃記憶體、光碟(CD)、DVD、磁帶及其類似者)上時,程 式碼常被稱作「電腦程式產品」。電腦程式產品媒體通常可由較佳地在電腦系統中之處理電路讀取以供處理電路執行。
可最容易用於處理器之快取記憶體(通常比處理器之其他快取記憶體更快及更小)為最低(L1或層級一)的快取記憶體且主儲存器(主記憶體)為最高層級快取記憶體(若存在3個層級,則為3)。最低層級快取記憶體常劃分為保存待執行之機器指令的指令快取記憶體(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,其能夠執行諸如移位、旋轉、「及」、「或」或「XOR」之多種邏輯函式以及包括加法、減法、乘法、除法中之任一者之多種代數函式。一些ALU 5066經設計用於純量運算,且一些用於浮點。視架構而定,資料可為位元 組由大到小(Big Endian)(其中最低有效位元組在最高位元組位址處)或為位元組由小到大(Little Endian)(其中最低有效位元組在最低位元組位址處)。IBM z/Architecture為位元組由大到小。IBM Power ISA支援位元組由大到小模式及位元組由小到大模式。有符號欄位可為符號或量值,視架構而定為1之補數或2之補數。由於2之補數中之負值或正值僅需要ALU內之加法,故2之補數有利的原因在於ALU不需要設計減法能力。通常以簡寫方式描述數字組,其中12位元欄位定義4,096位元組區塊之位址且通常描述為(例如)4千拜(千位元組)區塊。
參考圖25B,通常將用於執行分支指令之分支指令資訊發送至分支單元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之項目而非緩慢順序轉譯表存取。TLB內容可藉由包括LRU(最近最少使用)之多種替換演算法管理。
在處理器為多處理器系統之處理器的情況下,每一處理器具有為一致性而保持共用資源(諸如,I/O、快取記憶體、TLB及記憶體)聯鎖之責任。通常,「窺探」技術將用於維持快取一致性。在窺探環境中,每一快取線可標記為處於共用狀態、獨佔狀態、變化狀態、無效狀態及類似狀態中之任一者中以便促進共用。
I/O單元5054(圖24)提供用於附接至周邊裝置(包括(例如)磁帶、光碟、印表機、顯示器及網路)之構件給處理器。I/O單元常藉由軟體驅動器呈現至電腦程式。在大型電腦(諸如來自IBM®之System z)中,通道配接器及開放系統配接器為在作業系統與周邊裝置之間提供通信的大型電腦之I/O單元。在RISC伺服器(諸如,來自IBM®之Power Systems)中,專有配接器及開放系統配接器為在作業系統與周邊裝置 之間提供通信的I/O單元。
此外,其他類型之運算環境可受益於一或多項態樣。作為一實例,環境可包括模擬器(例如,軟體或其他模擬機制),其中特定架構(包括(例如)指令執行、架構化功能(諸如,位址轉譯)及架構化暫存器)或其子集得以模擬(例如,在具有處理器及記憶體之原生電腦系統上)。在此類環境中,模擬器之一或多個模擬功能可實施一或多項實施例,即使執行模擬器之電腦可具有不同於正經模擬之能力的架構亦如此。作為一項實例,在模擬模式中,對特定指令或正模擬之操作進行解碼,且建置適當模擬函式以實施個別指令或操作。
在一模擬環境中,主機電腦包括(例如):記憶體,其儲存指令及資料;指令擷取單元,其自記憶體擷取指令,且視情況,提供所擷取之指令的本端緩衝;指令解碼單元,其接收所擷取之指令且判定已擷取指令之類型;及指令執行單元,其執行該等指令。執行可包括將資料自記憶體載入至暫存器中;將資料自暫存器儲存回至記憶體;或執行某一類型之算術或邏輯運算(如藉由解碼單元所判定)。在一項實例中,在軟體中實施每一單元。舉例而言,由該等單元執行之操作經實施為模擬器軟體內之一或多個副常式。
更特定而言,在大型電腦中,架構化機器指令常由程式設計師(通常為當今的「C」程式設計師)藉助於編譯器應用程式使用。可原生地在Power Systems或z/Architecture IBM®伺服器中或替代地在執行其他架構之機器中執行儲存於儲存媒體中之該等指令。該等指令可在現有及在未來IBM®大型電腦伺服器、Power Systems伺服器中及在IBM®之其他機器(例如,System x伺服器)上進行模擬。可在使用由IBM®、Intel®、AMD及其他公司製造之硬體之多種機器上執行Linux的機器中執行該等指令。除了在Power架構或z/Architecture下之該硬體上執行以外,可使用Linux以及使用藉由Hercules、UMX或FSI (Fundamental Software公司)之模擬之機器,其中大體上執行處於模擬模式中。在模擬模式中,藉由原生處理器執行模擬軟體以模擬所模擬處理器之架構。
原生處理器通常執行包含韌體或原生作業系統之模擬軟體,以執行所模擬處理器之模擬。模擬軟體負責擷取及執行所模擬之處理架構之指令。模擬軟體維持所模擬之程式計數器以保持對指令邊界之追蹤。模擬軟體可一次擷取一或多個所模擬之機器指令且將該一或多個所模擬之機器指令轉譯為原生機器指令之對應群組以供原生處理器執行。該等經轉譯之指令可經快取,使得可實現更快的轉譯。儘管如此,模擬軟體係用於維持所模擬之處理器架構之架構規則以確保經撰寫以用於所模擬處理器之作業系統及應用程式正確地進行操作。此外,模擬軟體係用於提供藉由所模擬之處理器架構識別之資源,其包括(但不限於)控制暫存器、通用暫存器、浮點暫存器、包括(例如)段表及頁表之動態位址轉譯功能、中斷機制、上下文切換機制、當日時間(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)促進
資源集用:提供者之運算資源經集用以使用多租戶模型為多個消費者服務,其中根據需要動態指派及重新指派不同實體及虛擬資源。存在位置獨立性之意義,此在於:消費者通常不具有對已提供資源之確切位置的控制或知識,但可能能夠指定在較高抽象層級(例 如,國家、州或資料中心)處之位置。
快速靈活性:可快速且靈活地佈建能力(在一些情況下為自動地)以快捷地向外延展,及快速地釋放能力以快捷地向內縮回。對於消費者而言,可用於佈建之能力常顯現為無限的且可在任何時間以任何量來購買。
所量測服務:雲端系統藉由在適用於服務類型(例如,儲存、處理、頻寬及作用中使用者賬戶)之某一抽象層級下利用計量能力而自動控制及最佳化資源使用。可監視、控制及報告資源使用率,從而向已利用服務之提供者及消費者均提供透明度。
服務模型如下:軟體即服務(SaaS):提供給消費者之能力為使用在雲端基礎結構上執行之提供者之應用程式。可經由精簡型用戶端介面(諸如,web瀏覽器(例如,基於web之電子郵件))而自各種用戶端裝置存取該等應用程式。消費者並不管理或控制包括網路、伺服器、作業系統、儲存器,或甚至個別應用程式能力的底層雲端基礎結構,其中可能的例外為有限的使用者特定之應用程式組態設定。
平台即服務(PaaS):提供給消費者之能力為使用提供者所支援之程式設計語言及工具建立的消費者建立或獲得之應用程式部署至雲端基礎結構上。消費者不管理或控制底層雲端基礎結構(包括網路、伺服器、作業系統或儲存器),但具有對已部署應用程式及(可能地)應用程式主控環境組態之控制。
基礎結構即服務(IaaS):提供給消費者之能力為佈建處理、儲存、網絡及其他基礎運算資源,其中消費者能夠部署及執行可包括作業系統及應用程式之任意軟體。消費者並不管理或控制底層雲端基礎架構,但具有對作業系統、儲存器、所部署應用程式之控制,且可能地具有對所選擇的網路連接組件(例如,主機防火牆)之有限控制。
部署模型如下:私用雲端:該雲端基礎結構經操作僅用於一組織。該雲端基礎結構可藉由該組織或第三方管理且可存在於現場內或現場外。
群集雲端:該雲端基礎結構由數個組織共用且支援分擔問題(例如,任務、安全要求、策略及順應性考量)的特定群集。該雲端基礎結構可藉由該等組織或第三方管理且可存在於現場內或現場外。
公共雲端:可使該雲端基礎結構可用於普通大眾或大型工業集團且為出售雲端服務之組織所有。
混合雲端:該雲端基礎結構為兩個或兩個以上雲端(私用、群集或公共)之組合物,該等雲端保持獨特實體但藉由實現資料及應用程式攜帶性(例如,為了雲端之間負載平衡之雲端爆裂)的標準化或專有技術結合在一起。
藉由著重於無國界、低耦合、模組化及語義互操作性對雲端運算環境進行服務定向。在雲端運算之核心處為包含互連節點之網路的基礎架構。
現參考圖27,展示雲端運算節點之一實例之示意圖。雲端運算節點6010僅為合適雲端運算節點之一項實例,且不意欲表明關於本文中所描述的本發明之實施例的使用或功能性的範疇之任何限制。無論如何,雲端運算節點6010能夠被實施及/或執行在上文中所闡述的功能性中之任一者。
在雲端運算節點6010中,存在電腦系統/伺服器6012,其可使用大量其他通用或專用運算系統環境或組態操作。可適於與電腦系統/伺服器6012一起使用之熟知運算系統、環境及/或組態之實例包括(但不限於)個人電腦系統、伺服器電腦系統、精簡型用戶端、複雜型用戶端、手持型或膝上型裝置、多處理器系統、基於微處理器之系統、機上盒、可程式化消費型電子裝置、網路PC、迷你電腦系統、大型 主機電腦系統,及包括上述系統或裝置中之任一者的分散式雲端運算環境,及類似者。
電腦系統/伺服器6012可描述於正藉由電腦系統執行之諸如程式模組之電腦系統可執行指令之大體上下文中。大體而言,程式模組可包括執行特定任務或實施特定抽象資料類型之常式、程式、物件、組件、邏輯、資料結構等等。可在經由通信網路鏈接之任務由遠端處理裝置執行的分散式雲端運算環境中實踐電腦系統/伺服器6012。在分散式雲端運算環境中,程式模組可位於包括記憶體儲存裝置之本端電腦系統儲存媒體及遠端電腦系統儲存媒體中。
如圖27中所示,雲端運算節點6010中之電腦系統/伺服器6012以通用運算裝置之形式展示。電腦系統/伺服器6012之組件可包括(但不限於)一或多個處理器或處理單元6016、系統記憶體6028及匯流排6018,匯流排6018將包括系統記憶體6028之各種系統組件耦接至處理器6016。
匯流排6018表示任何數種類型之匯流排結構中之一或多者,包括記憶體匯流排或記憶體控制器、周邊匯流排、加速圖形埠及處理器或使用多種匯流排架構中之任一者之本端匯流排。藉由實例而非限制,此類架構包括工業標準架構(ISA)匯流排、微通道架構(MCA)匯流排、增強型ISA(EISA)匯流排、視訊電子標準協會(VESA)本端匯流排,及周邊組件互連(PCI)匯流排。
電腦系統/伺服器6012通常包括多種電腦系統可讀媒體。此類媒體可為可藉由電腦系統/伺服器6012存取之任何可用媒體,且其包括揮發性媒體及非揮發性媒體以及可卸除式媒體及不可卸除提取式媒體。
系統記憶體6028可包括呈揮發性記憶體之形式的電腦系統可讀媒體,諸如隨機存取記憶體(RAM)6030及/或快取記憶體6032。電腦 系統/伺服器6012可進一步包括其他可卸除式/不可卸除式、揮發性/非揮發性電腦系統儲存媒體。僅藉助於實例,可提供儲存系統6034以用於自不可卸除式、非揮發性磁性媒體(未展示且通常被稱為「硬碟機」)讀取及寫入至該磁性媒體。儘管未展示,但可提供用於自可卸除式、非揮發性磁碟(例如,「軟性磁碟」)讀取及寫入至可卸除式、非揮發性磁碟的磁碟機及用於自可卸除式、非揮發性光碟(諸如,CD-ROM、DVD-ROM或其他光學媒體)讀取或寫入至可卸除式、非揮發性光碟的光碟機。在此類例項中,每一例項可藉由一或多個資料媒體介面而連接至匯流排6018。如下文進一步描繪及描述,記憶體6028可包括至少一個程式產品,該至少一個程式產品具有經組態以實行本發明的實施例之功能的程式模組集合(例如,至少一個)。
藉由實例而非限制,具有程式模組6042之集合(至少一者)之程式/公用程式6040以及作業系統、一或多個應用程式、其他程式模組及程式資料可儲存於記憶體6028中。作業系統、一或多個應用程式、其他程式模組及程式資料中之每一者或其某種組合可包括網路連接環境之實施。程式模組6042大體上實行如本文中所描述的本發明之實施例的功能及/或方法。
電腦系統/伺服器6012亦可與以下各者通信:諸如鍵盤、指標裝置、顯示器6024等之一或多個外部裝置6014;使使用者能夠與電腦系統/伺服器6012互動之一或多個裝置;及/或使電腦系統/伺服器6012能夠與一或多個其他運算裝置通信之任何裝置(例如,網路卡、數據機等)。此類通信可經由輸入/輸出(I/O)介面6022發生。而且,電腦系統/伺服器6012可經由網路配接器6020與諸如區域網路(LAN)、一般廣域網路(WAN)及/或公用網路(例如網際網路)之一或多個網路通信。如所描繪,網路配接器6020經由匯流排6018與電腦系統/伺服器6012之其他組件通信。應理解,儘管未展示,但可結合電腦系統/伺服器6012 使用其他硬體及/或軟體組件。實例包括(但不限於):微碼、裝置驅動器、冗餘處理單元、外部磁碟驅動陣列、RAID系統、磁帶驅動機及資料存檔儲存系統等。
現參考圖28,描繪說明性雲端運算環境6050。如圖所示,雲端運算環境6050包含一或多個雲端運算節點6010,雲端消費者所使用之本端運算裝置(諸如個人數位助理(PDA)或蜂巢式電話6054A、桌上型電腦6054B、膝上型電腦6054C及/或汽車電腦系統6054N)可與該一或多個雲端運算節點通信。節點6010可彼此通信。可在如上文所描述之一或多個網路(諸如,私用、群集、公共或混合雲端)中或其組合中對該等節點進行實體或虛擬分組(未圖示)。此允許雲端運算環境6050佈建基礎結構、平台及/或軟體來作為服務,針對該等服務,雲端消費者不需要在本端運算裝置上維護資源。應理解在圖28中所展示之運算裝置6054A至6054N之類型意欲僅為說明性且運算節點6010及雲端運算環境6050可在任何類型之網路及/或網路可定址連接上與任何類型之電腦化裝置通信(例如,使用網頁瀏覽器)。
現參考圖29,展示藉由雲端運算環境6050(圖28)所提供之功能抽象層之集合。應預先理解在圖29中所展示之組件、層及功能意欲僅為說明性,且本發明之實施例不限於此。如所描繪,提供以下層及對應功能:硬體及軟體層6060包括硬體及軟體組件。硬體組件之實例包括:大型電腦(在一項實例中為IBM® zSeries®系統);基於RISC(精簡指令集電腦)架構之伺服器(在一項實例中為IBM pSeries®系統);IBM xSeries®系統;IBM BladeCenter®系統;儲存裝置;網路及網路連接組件。軟體組件之實例包括網路應用程式伺服器軟體(在一項實例中為IBM WebSphere®應用程式伺服器軟體)及資料庫軟體(在一項實例中為IBM DB2®資料庫軟體)。(IBM、zSeries、pSeries、xSeries、 BladeCenter、WebSphere及DB2為國際商用機器公司在全球範圍的許多行政轄區中註冊之商標。
虛擬化層6062提供抽象層,可自其提供虛擬實體之以下實例:虛擬伺服器;虛擬儲存器;虛擬網路(包括虛擬私用網路);虛擬應用程式及作業系統;及虛擬用戶端。
在一項實例中,管理層6064可提供下文所描述之功能。資源佈建提供用以在雲端運算環境內執行任務之運算資源及其他資源的動態採購。計量及定價隨著在雲端運算環境內利用資源而提供成本追蹤,及針對此等資源之消耗的記帳或發票。在一項實例中,此等資源可包含應用程式軟體授權。安全性提供針對雲端消費者及任務之身分驗證,以及針對資料及其他資源之保護。使用者入口網站為消費者及系統管理者提供對雲端運算環境之存取。服務等級管理提供雲端運算資源分配及管理,使得所要求之服務等級得以滿足。服務等級協議(SLA)計劃及履行提供針對根據SLA被預期未來要求之雲端運算資源的預配置及其採購。
工作負載層6066提供功能性之實例,可針對該功能性利用雲端運算環境。可自該層提供之工作負載及功能之實例包括:地圖建置及導航;軟體開發及生命週期管理;虛擬教室教育遞送;資料分析處理;及交易處理。
本文中所用之術語僅出於描述特定實施例之目的且並不意欲為限制性的。如本文中所使用,單數形式「一」及「該」意欲亦包括複數形式,除非上下文另有清晰指示。應進一步理解,當術語「包含」用於此說明書中時,其指定所敍述之特徵、整體、步驟、操作、元件及/或組件之存在,但並不排除一或多個其他特徵、整體、步驟、操作、元件、組件及/或其群組之存在或添加。
以下申請專利範圍中之所有構件或步驟加功能元件的對應結 構、材料、動作及等效物(若存在)意欲包括用於結合如特定主張之其他所主張元件執行功能的任何結構、材料或動作。一或多項實施例之描述已出於說明及描述之目的而得以呈現,但不意欲為窮盡性的或受限於所揭示之形式。許多修改及變化將對一般熟習此項技術者顯而易見。選擇及描述實施例以便最佳地解釋各種態樣及實際應用,且以使得一般熟習此項技術者能夠理解各種實施例及適於所涵蓋之特定用途的各種修改。
1100‧‧‧步驟
1102‧‧‧步驟
1104‧‧‧步驟
1106‧‧‧步驟
1108‧‧‧步驟

Claims (20)

  1. 一種用於在一運算環境中初始化一控制公用程式之電腦程式產品,該電腦程式產品包含:一電腦可讀儲存媒體,其可由一處理電路讀取且儲存供該處理電路執行以用於執行一方法之指令,該方法包含:藉由一處理器執行一開機順序以使該控制公用程式在基於一所選架構之一所選架構模式中開機,該控制公用程式經撰寫以用於該所選架構且經組態以依一第一架構組態或一第二架構組態中之至少一者予以初始化,該第一架構組態在一個架構中初始化且切換至用於處理之該所選架構,該第二架構組態在所選架構中初始化及進行處理,且其中執行該開機順序包含:執行一或多個指令而不考慮該處理器是將基於該第一架構組態還是基於該第二架構組態執行初始化,該一或多個指令對該一個架構及該所選架構係共同的,原因在於該一或多個指令定義於該一個架構及該所選架構中,且該執行包含執行一切換操作以請求對該處理器之架構模式之一切換而不考慮該處理器是將在該一個架構還是在該所選架構中執行初始化,其中該切換操作基於該處理器將執行初始化之架構是該一個架構還是該所選架構而以不同方式執行,且基於執行該切換操作,該控制公用程式在該所選架構模式中開機。
  2. 如請求項1之電腦程式產品,其中該控制公用程式包含一作業系統。
  3. 如請求項1之電腦程式產品,其中執行該開機順序包含: 基於該處理器是將在該一個架構還是該所選架構中執行初始化,以該一個架構或該所選架構之一格式設定一程式狀態字組;及準備模式切換以執行該切換操作。
  4. 如請求項1之電腦程式產品,其中執行該切換操作包含:自該一個架構切換至該所選架構,其中該控制公用程式之處理在該所選架構中。
  5. 如請求項1之電腦程式產品,其中執行該切換操作包含向該所選架構請求自該所選架構切換,且其中執行該切換操作導致儲存指示該處理器當前處於該所選架構模式中之狀態,該狀態對該切換操作之一發佈者係被視作可接受的。
  6. 如請求項5之電腦程式產品,其中該切換操作包含一信號處理器指令。
  7. 如請求項1之電腦程式產品,其中該一個架構使用31位元定址及32位元通用暫存器,且該所選架構使用64位元定址及64位元通用暫存器。
  8. 如請求項1之電腦程式產品,其中執行該開機順序包含:判定該控制公用程式是否經撰寫以用於該所選架構;及基於該控制公用程式經撰寫以用於該所選架構,繼續執行該開機順序。
  9. 如請求項1之電腦程式產品,其進一步包含:執行一重設以使該控制公用程式重新開機。
  10. 如請求項9之電腦程式產品,其中執行該重設包含:設定一程式狀態字組以反映該重設。
  11. 一種用於在一運算環境中初始化一控制公用程式之電腦系統,該電腦系統包含:一記憶體;及 一處理器,其與該記憶體通信,其中該電腦系統經組態以執行一方法,該方法包含:藉由一處理器執行一開機順序以使該控制公用程式在基於一所選架構之一所選架構模式中開機,該控制公用程式經撰寫以用於該所選架構且經組態以依一第一架構組態或一第二架構組態中之至少一者予以初始化,該第一架構組態在一個架構中初始化且切換至用於處理之該所選架構,該第二架構組態在所選架構中初始化及進行處理,且其中執行該開機順序包含:執行一或多個指令而不考慮該處理器是將基於該第一架構組態還是基於該第二架構組態執行初始化,該一或多個指令對該一個架構及該所選架構係共同的,原因在於該一或多個指令定義於該一個架構及該所選架構中,且該執行包含執行一切換操作以請求對該處理器之架構模式之一切換而不考慮該處理器是將在該一個架構還是在該所選架構中執行初始化,其中該切換操作基於該處理器將執行初始化之架構是該一個架構還是該所選架構而以不同方式執行,且基於執行該切換操作,該控制公用程式在該所選架構模式中開機。
  12. 如請求項11之電腦系統,其中執行該開機順序包含:基於該處理器是將在該一個架構還是該所選架構中執行初始化,以該一個架構或該所選架構之一格式設定一程式狀態字組;及準備模式切換以執行該切換操作。
  13. 如請求項11之電腦系統,其中執行該切換操作包含:自該一個架構切換至該所選架構,其中該控制公用程式之處理在該所選架 構中。
  14. 如請求項11之電腦系統,其中執行該切換操作包含向該所選架構請求自該所選架構切換,且其中執行該切換操作導致儲存指示該處理器當前處於該所選架構模式中之狀態,該狀態對該切換操作之一發佈者係被視作可接受的。
  15. 如請求項11之電腦系統,其中該一個架構使用31位元定址及32位元通用暫存器,且該所選架構使用64位元定址及64位元通用暫存器。
  16. 如請求項11之電腦系統,其中執行該開機順序包含:判定該控制公用程式是否經撰寫以用於該所選架構;及基於該控制公用程式經撰寫以用於該所選架構,繼續執行該開機順序。
  17. 如請求項11之電腦系統,其進一步包含:執行一重設以使該控制公用程式重新開機。
  18. 一種用於在一運算環境中初始化一控制公用程式之方法,該方法包含:藉由一處理器執行一開機順序以使該控制公用程式在基於一所選架構之一所選架構模式中開機,該控制公用程式經撰寫以用於該所選架構且經組態以依一第一架構組態或一第二架構組態中之至少一者予以初始化,該第一架構組態在一個架構中初始化且切換至用於處理之該所選架構,該第二架構組態在所選架構中初始化及進行處理,且其中執行該開機順序包含:執行一或多個指令而不考慮該處理器是將基於該第一架構組態還是基於該第二架構組態執行初始化,該一或多個指令對該一個架構及該所選架構係共同的,原因在於該一或多個指令定義於該一個架構及該所選架構中,且該執行包含執行一切換操作以請求對該處理器之架構模式之一切換而不考慮 該處理器是將在該一個架構還是在該所選架構中執行初始化,其中該切換操作基於該處理器將執行初始化之架構是該一個架構還是該所選架構而以不同方式執行,且基於執行該切換操作,該控制公用程式在該所選架構模式中開機。
  19. 如請求項18之方法,其中執行該開機順序之該步驟包含:基於該處理器是將在該一個架構還是該所選架構中執行初始化,以該一個架構或該所選架構之一格式設定一程式狀態字組;及準備模式切換以執行該切換操作。
  20. 如請求項18之方法,其中執行該切換操作包含向該所選架構請求自該所選架構切換,且其中執行該切換操作導致儲存指示該處理器當前處於該所選架構模式中之狀態,該狀態對該切換操作之一發佈者係被視作可接受的。
TW104108516A 2014-03-18 2015-03-17 用於可在多種架構中初始化之控制公用程式之共同開機順序 TWI639090B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/217,800 US9588774B2 (en) 2014-03-18 2014-03-18 Common boot sequence for control utility able to be initialized in multiple architectures
US14/217,800 2014-03-18

Publications (2)

Publication Number Publication Date
TW201610708A true TW201610708A (zh) 2016-03-16
TWI639090B TWI639090B (zh) 2018-10-21

Family

ID=54142192

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104108516A TWI639090B (zh) 2014-03-18 2015-03-17 用於可在多種架構中初始化之控制公用程式之共同開機順序

Country Status (22)

Country Link
US (2) US9588774B2 (zh)
EP (1) EP3120239B1 (zh)
JP (1) JP6437008B2 (zh)
KR (1) KR101918831B1 (zh)
CN (1) CN106133682B (zh)
AU (1) AU2015233763B2 (zh)
BR (1) BR112016021599B1 (zh)
CA (1) CA2940867C (zh)
DK (1) DK3120239T3 (zh)
ES (1) ES2746479T3 (zh)
HU (1) HUE045068T2 (zh)
IL (1) IL247819B (zh)
LT (1) LT3120239T (zh)
MX (1) MX2016011922A (zh)
PL (1) PL3120239T3 (zh)
PT (1) PT3120239T (zh)
RU (1) RU2665238C2 (zh)
SG (1) SG11201606096VA (zh)
SI (1) SI3120239T1 (zh)
TW (1) TWI639090B (zh)
WO (1) WO2015139917A1 (zh)
ZA (1) ZA201605468B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI670580B (zh) * 2017-01-19 2019-09-01 美商萬國商業機器公司 用於時鐘比較器正負號控制之電腦程式產品、電腦系統及電腦實施方法
US11327771B1 (en) 2021-07-16 2022-05-10 SambaNova Systems, Inc. Defect repair circuits for a reconfigurable data processor
TWI766211B (zh) * 2018-11-21 2022-06-01 美商聖巴諾瓦系統公司 可重組態資料處理器的組態加載和卸載
US11386038B2 (en) 2019-05-09 2022-07-12 SambaNova Systems, Inc. Control flow barrier and reconfigurable data processor
US11409540B1 (en) 2021-07-16 2022-08-09 SambaNova Systems, Inc. Routing circuits for defect repair for a reconfigurable data processor
US11487694B1 (en) 2021-12-17 2022-11-01 SambaNova Systems, Inc. Hot-plug events in a pool of reconfigurable data flow resources
US11556494B1 (en) 2021-07-16 2023-01-17 SambaNova Systems, Inc. Defect repair for a reconfigurable data processor for homogeneous subarrays
US11609769B2 (en) 2018-11-21 2023-03-21 SambaNova Systems, Inc. Configuration of a reconfigurable data processor using sub-files
US11782729B2 (en) 2020-08-18 2023-10-10 SambaNova Systems, Inc. Runtime patching of configuration files
US11928512B2 (en) 2019-07-08 2024-03-12 SambaNova Systems, Inc. Quiesce reconfigurable data processor
US11983140B2 (en) 2018-11-21 2024-05-14 SambaNova Systems, Inc. Efficient deconfiguration of a reconfigurable data processor

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582295B2 (en) 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration
US9588774B2 (en) 2014-03-18 2017-03-07 International Business Machines Corporation Common boot sequence for control utility able to be initialized in multiple architectures
US9916185B2 (en) 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities
US10234921B2 (en) * 2016-03-04 2019-03-19 Schneider Electric USA, Inc. Systems and methods for operating a virtual power environment
US10282327B2 (en) * 2017-01-19 2019-05-07 International Business Machines Corporation Test pending external interruption instruction
US10705825B2 (en) 2018-09-20 2020-07-07 Hewlett Packard Enterprise Development Lp Creation of images
CN110109707B (zh) * 2019-04-10 2022-05-31 广州视源电子科技股份有限公司 终端启动方法、装置及终端
WO2020236133A1 (en) * 2019-05-17 2020-11-26 Hewlett-Packard Development Company, L.P. Disabling software persistence
US11500653B2 (en) 2020-02-05 2022-11-15 International Business Machines Corporation Signal handling between programs associated with different addressing modes
CN112591152B (zh) * 2020-12-01 2023-01-31 上海航天控制技术研究所 空间站太阳翼控制系统
US20230043202A1 (en) * 2021-08-05 2023-02-09 International Business Machines Corporation Query and update of processor boost information

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0734021Y2 (ja) * 1989-04-13 1995-08-02 株式会社ダイフク 搬送設備
WO1994027215A1 (en) 1993-05-07 1994-11-24 Apple Computer, Inc. Method for decoding guest instructions for a host computer
JPH06332803A (ja) * 1993-05-25 1994-12-02 Hitachi Ltd 仮想計算機システムにおけるtlb制御方法
US5551013A (en) 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
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
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
US6199202B1 (en) 1998-01-06 2001-03-06 Hewlett-Packard Company Method and apparatus for the inter-operation of differing architectural and run time conventions
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
US20020147969A1 (en) 1998-10-21 2002-10-10 Richard A. Lethin Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method
US6772325B1 (en) 1999-10-01 2004-08-03 Hitachi, Ltd. Processor architecture and operation for exploiting improved branch control instruction
US6496971B1 (en) * 2000-02-07 2002-12-17 Xilinx, Inc. Supporting multiple FPGA configuration modes using dedicated on-chip processor
US7406682B2 (en) 2001-03-26 2008-07-29 Emc Corporation Translator-compiler for converting legacy management software
US7234037B2 (en) 2003-11-25 2007-06-19 International Business Machines Corporation Memory mapped Input/Output operations
US8024730B2 (en) 2004-03-31 2011-09-20 Intel Corporation Switching between protected mode environments utilizing virtual machine functionality
GB0407384D0 (en) 2004-03-31 2004-05-05 Ignios Ltd Resource management in a multicore processor
US7562209B2 (en) * 2004-04-07 2009-07-14 Marvell International, Ltd. Supporting different instruction set architectures during run time
US7339837B2 (en) * 2004-05-18 2008-03-04 Infineon Technologies Ag Configurable embedded processor
US7260702B2 (en) * 2004-06-30 2007-08-21 Microsoft Corporation Systems and methods for running a legacy 32-bit x86 virtual machine on a 64-bit x86 processor
US7308571B2 (en) 2004-10-06 2007-12-11 Intel Corporation Overriding processor configuration settings
US7647589B1 (en) 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US7562349B2 (en) 2005-04-25 2009-07-14 Sap Ag Version adaptation interface for integration of different virtual machines
US7496495B2 (en) 2005-05-12 2009-02-24 Microsoft Corporation Virtual operating system device communication relying on memory access violations
KR100663864B1 (ko) * 2005-06-16 2007-01-03 엘지전자 주식회사 멀티-코어 프로세서의 프로세서 모드 제어장치 및 방법
US7409537B2 (en) * 2005-10-06 2008-08-05 Microsoft Corporation Fast booting an operating system from an off state
JP2007207074A (ja) * 2006-02-03 2007-08-16 Ricoh Co Ltd オペレーションシステム、スレッド制御機構、及び情報処理装置
WO2007122640A2 (en) 2006-04-26 2007-11-01 Tata Consultancy Services A system and method for automated re-architectureing of legacy systems using object-oriented language
US8117614B2 (en) 2006-05-19 2012-02-14 International Business Machines Corporation Extract CPU time facility
US20080093277A1 (en) * 2006-06-13 2008-04-24 John Armour Cadence detection in a sequence of video fields
KR101120956B1 (ko) 2006-12-31 2012-03-05 쌘디스크 코포레이션 휴대용 멀티-플랫폼 부팅시스템과 아키텍쳐
US7739434B2 (en) 2008-01-11 2010-06-15 International Business Machines Corporation Performing a configuration virtual topology change and instruction therefore
US7734900B2 (en) 2008-01-11 2010-06-08 International Business Machines Corporation Computer configuration virtual topology discovery and instruction therefore
US8117417B2 (en) 2008-01-11 2012-02-14 International Business Machines Corporation Dynamic address translation with change record override
US8321861B2 (en) 2008-02-20 2012-11-27 Arm Limited Non-native program execution across multiple execution environments
US8086811B2 (en) 2008-02-25 2011-12-27 International Business Machines Corporation Optimizations of a perform frame management function issued by pageable guests
US8176280B2 (en) 2008-02-25 2012-05-08 International Business Machines Corporation Use of test protection instruction in computing environments that support pageable guests
US8301865B2 (en) 2009-06-29 2012-10-30 Oracle America, Inc. System and method to manage address translation requests
GB2478726B (en) 2010-03-15 2013-12-25 Advanced Risc Mach Ltd Mapping between registers used by multiple instruction sets
US9851969B2 (en) 2010-06-24 2017-12-26 International Business Machines Corporation Function virtualization facility for function query of a processor
US8479172B2 (en) 2010-11-23 2013-07-02 International Business Machines Corporation Virtual machine testing
US9141389B2 (en) 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
TW201248499A (en) 2011-05-18 2012-12-01 Asustek Comp Inc Method of swapping between operating systems applied to computer system
KR101780052B1 (ko) * 2011-08-24 2017-09-19 한국전자통신연구원 정보처리 시스템에서 운영체제 전환방법
TW201321949A (zh) 2011-11-23 2013-06-01 Inventec Corp 電源開機控制方法及其系統
US20140351563A1 (en) 2011-12-16 2014-11-27 Hyperion Core Inc. Advanced processor architecture
US9298469B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Management of multiple nested transactions
US9588774B2 (en) 2014-03-18 2017-03-07 International Business Machines Corporation Common boot sequence for control utility able to be initialized in multiple architectures
US9582295B2 (en) 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration
US9916185B2 (en) 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI670580B (zh) * 2017-01-19 2019-09-01 美商萬國商業機器公司 用於時鐘比較器正負號控制之電腦程式產品、電腦系統及電腦實施方法
US11609769B2 (en) 2018-11-21 2023-03-21 SambaNova Systems, Inc. Configuration of a reconfigurable data processor using sub-files
US11983140B2 (en) 2018-11-21 2024-05-14 SambaNova Systems, Inc. Efficient deconfiguration of a reconfigurable data processor
TWI766211B (zh) * 2018-11-21 2022-06-01 美商聖巴諾瓦系統公司 可重組態資料處理器的組態加載和卸載
US11386038B2 (en) 2019-05-09 2022-07-12 SambaNova Systems, Inc. Control flow barrier and reconfigurable data processor
US11580056B2 (en) 2019-05-09 2023-02-14 SambaNova Systems, Inc. Control barrier network for reconfigurable data processors
US11928512B2 (en) 2019-07-08 2024-03-12 SambaNova Systems, Inc. Quiesce reconfigurable data processor
US11782729B2 (en) 2020-08-18 2023-10-10 SambaNova Systems, Inc. Runtime patching of configuration files
US11556494B1 (en) 2021-07-16 2023-01-17 SambaNova Systems, Inc. Defect repair for a reconfigurable data processor for homogeneous subarrays
US11740911B2 (en) 2021-07-16 2023-08-29 SambaNova Systems, Inc. Switch for routing data in an array of functional configurable units
US11762665B2 (en) 2021-07-16 2023-09-19 SambaNova Systems, Inc. Defect avoidance in a multidimensional array of functional configurable units
US11409540B1 (en) 2021-07-16 2022-08-09 SambaNova Systems, Inc. Routing circuits for defect repair for a reconfigurable data processor
US11327771B1 (en) 2021-07-16 2022-05-10 SambaNova Systems, Inc. Defect repair circuits for a reconfigurable data processor
US11487694B1 (en) 2021-12-17 2022-11-01 SambaNova Systems, Inc. Hot-plug events in a pool of reconfigurable data flow resources

Also Published As

Publication number Publication date
WO2015139917A1 (en) 2015-09-24
CN106133682B (zh) 2019-04-09
LT3120239T (lt) 2019-09-25
TWI639090B (zh) 2018-10-21
CA2940867A1 (en) 2015-09-24
BR112016021599A2 (zh) 2017-08-15
KR20160128374A (ko) 2016-11-07
PT3120239T (pt) 2019-10-11
ZA201605468B (en) 2017-09-27
PL3120239T3 (pl) 2019-12-31
CN106133682A (zh) 2016-11-16
IL247819B (en) 2019-09-26
SI3120239T1 (sl) 2019-11-29
MX2016011922A (es) 2016-12-09
AU2015233763A1 (en) 2016-08-04
RU2665238C2 (ru) 2018-08-28
CA2940867C (en) 2022-05-10
RU2016126976A (ru) 2018-04-18
US9600292B2 (en) 2017-03-21
SG11201606096VA (en) 2016-08-30
EP3120239B1 (en) 2019-08-21
US9588774B2 (en) 2017-03-07
EP3120239A1 (en) 2017-01-25
US20150268966A1 (en) 2015-09-24
KR101918831B1 (ko) 2018-11-14
ES2746479T3 (es) 2020-03-06
JP2017511941A (ja) 2017-04-27
AU2015233763B2 (en) 2017-11-30
JP6437008B2 (ja) 2018-12-12
IL247819A0 (en) 2016-11-30
US20150268965A1 (en) 2015-09-24
BR112016021599B1 (pt) 2022-10-25
HUE045068T2 (hu) 2019-12-30
DK3120239T3 (da) 2019-09-30

Similar Documents

Publication Publication Date Title
US11023256B2 (en) Architectural mode configuration
TWI639090B (zh) 用於可在多種架構中初始化之控制公用程式之共同開機順序
US10747583B2 (en) Managing processing associated with selected architectural facilities
US20160255094A1 (en) Determining virtual adapter access controls in a computing environment
US9886293B2 (en) Ascertaining configuration of a virtual adapter in a computing environment